From c59072045ef878f489183561b53148a5ffd2b054 Mon Sep 17 00:00:00 2001 From: Andrey Ryabinin Date: Wed, 20 Jan 2016 15:00:55 -0800 Subject: [PATCH 0001/1149] UBSAN: run-time undefined behavior sanity checker commit c6d308534aef6c99904bf5862066360ae067abc4 upstream. UBSAN uses compile-time instrumentation to catch undefined behavior (UB). Compiler inserts code that perform certain kinds of checks before operations that could cause UB. If check fails (i.e. UB detected) __ubsan_handle_* function called to print error message. So the most of the work is done by compiler. This patch just implements ubsan handlers printing errors. GCC has this capability since 4.9.x [1] (see -fsanitize=undefined option and its suboptions). However GCC 5.x has more checkers implemented [2]. Article [3] has a bit more details about UBSAN in the GCC. [1] - https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Debugging-Options.html [2] - https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html [3] - http://developerblog.redhat.com/2014/10/16/gcc-undefined-behavior-sanitizer-ubsan/ Issues which UBSAN has found thus far are: Found bugs: * out-of-bounds access - 97840cb67ff5 ("netfilter: nfnetlink: fix insufficient validation in nfnetlink_bind") undefined shifts: * d48458d4a768 ("jbd2: use a better hash function for the revoke table") * 10632008b9e1 ("clockevents: Prevent shift out of bounds") * 'x << -1' shift in ext4 - http://lkml.kernel.org/r/<5444EF21.8020501@samsung.com> * undefined rol32(0) - http://lkml.kernel.org/r/<1449198241-20654-1-git-send-email-sasha.levin@oracle.com> * undefined dirty_ratelimit calculation - http://lkml.kernel.org/r/<566594E2.3050306@odin.com> * undefined roundown_pow_of_two(0) - http://lkml.kernel.org/r/<1449156616-11474-1-git-send-email-sasha.levin@oracle.com> * [WONTFIX] undefined shift in __bpf_prog_run - http://lkml.kernel.org/r/ WONTFIX here because it should be fixed in bpf program, not in kernel. signed overflows: * 32a8df4e0b33f ("sched: Fix odd values in effective_load() calculations") * mul overflow in ntp - http://lkml.kernel.org/r/<1449175608-1146-1-git-send-email-sasha.levin@oracle.com> * incorrect conversion into rtc_time in rtc_time64_to_tm() - http://lkml.kernel.org/r/<1449187944-11730-1-git-send-email-sasha.levin@oracle.com> * unvalidated timespec in io_getevents() - http://lkml.kernel.org/r/ * [NOTABUG] signed overflow in ktime_add_safe() - http://lkml.kernel.org/r/ [akpm@linux-foundation.org: fix unused local warning] [akpm@linux-foundation.org: fix __int128 build woes] Signed-off-by: Andrey Ryabinin Cc: Peter Zijlstra Cc: Sasha Levin Cc: Randy Dunlap Cc: Rasmus Villemoes Cc: Jonathan Corbet Cc: Michal Marek Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Yury Gribov Cc: Dmitry Vyukov Cc: Konstantin Khlebnikov Cc: Kostya Serebryany Cc: Johannes Berg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Ben Hutchings --- Documentation/ubsan.txt | 84 +++++ Makefile | 3 +- arch/x86/Kconfig | 1 + arch/x86/boot/Makefile | 1 + arch/x86/boot/compressed/Makefile | 1 + arch/x86/entry/vdso/Makefile | 1 + arch/x86/realmode/rm/Makefile | 1 + drivers/firmware/efi/libstub/Makefile | 1 + include/linux/sched.h | 3 + lib/Kconfig.debug | 1 + lib/Kconfig.ubsan | 29 ++ lib/Makefile | 3 + lib/ubsan.c | 456 ++++++++++++++++++++++++++ lib/ubsan.h | 84 +++++ mm/kasan/Makefile | 1 + scripts/Makefile.lib | 6 + scripts/Makefile.ubsan | 17 + 17 files changed, 692 insertions(+), 1 deletion(-) create mode 100644 Documentation/ubsan.txt create mode 100644 lib/Kconfig.ubsan create mode 100644 lib/ubsan.c create mode 100644 lib/ubsan.h create mode 100644 scripts/Makefile.ubsan diff --git a/Documentation/ubsan.txt b/Documentation/ubsan.txt new file mode 100644 index 000000000000..f58215ef5797 --- /dev/null +++ b/Documentation/ubsan.txt @@ -0,0 +1,84 @@ +Undefined Behavior Sanitizer - UBSAN + +Overview +-------- + +UBSAN is a runtime undefined behaviour checker. + +UBSAN uses compile-time instrumentation to catch undefined behavior (UB). +Compiler inserts code that perform certain kinds of checks before operations +that may cause UB. If check fails (i.e. UB detected) __ubsan_handle_* +function called to print error message. + +GCC has that feature since 4.9.x [1] (see -fsanitize=undefined option and +its suboptions). GCC 5.x has more checkers implemented [2]. + +Report example +--------------- + + ================================================================================ + UBSAN: Undefined behaviour in ../include/linux/bitops.h:110:33 + shift exponent 32 is to large for 32-bit type 'unsigned int' + CPU: 0 PID: 0 Comm: swapper Not tainted 4.4.0-rc1+ #26 + 0000000000000000 ffffffff82403cc8 ffffffff815e6cd6 0000000000000001 + ffffffff82403cf8 ffffffff82403ce0 ffffffff8163a5ed 0000000000000020 + ffffffff82403d78 ffffffff8163ac2b ffffffff815f0001 0000000000000002 + Call Trace: + [] dump_stack+0x45/0x5f + [] ubsan_epilogue+0xd/0x40 + [] __ubsan_handle_shift_out_of_bounds+0xeb/0x130 + [] ? radix_tree_gang_lookup_slot+0x51/0x150 + [] _mix_pool_bytes+0x1e6/0x480 + [] ? dmi_walk_early+0x48/0x5c + [] add_device_randomness+0x61/0x130 + [] ? dmi_save_one_device+0xaa/0xaa + [] dmi_walk_early+0x48/0x5c + [] dmi_scan_machine+0x278/0x4b4 + [] ? vprintk_default+0x1a/0x20 + [] ? early_idt_handler_array+0x120/0x120 + [] setup_arch+0x405/0xc2c + [] ? early_idt_handler_array+0x120/0x120 + [] start_kernel+0x83/0x49a + [] ? early_idt_handler_array+0x120/0x120 + [] x86_64_start_reservations+0x2a/0x2c + [] x86_64_start_kernel+0x16b/0x17a + ================================================================================ + +Usage +----- + +To enable UBSAN configure kernel with: + + CONFIG_UBSAN=y + +and to check the entire kernel: + + CONFIG_UBSAN_SANITIZE_ALL=y + +To enable instrumentation for specific files or directories, add a line +similar to the following to the respective kernel Makefile: + + For a single file (e.g. main.o): + UBSAN_SANITIZE_main.o := y + + For all files in one directory: + UBSAN_SANITIZE := y + +To exclude files from being instrumented even if +CONFIG_UBSAN_SANITIZE_ALL=y, use: + + UBSAN_SANITIZE_main.o := n + and: + UBSAN_SANITIZE := n + +Detection of unaligned accesses controlled through the separate option - +CONFIG_UBSAN_ALIGNMENT. It's off by default on architectures that support +unaligned accesses (CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y). One could +still enable it in config, just note that it will produce a lot of UBSAN +reports. + +References +---------- + +[1] - https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Debugging-Options.html +[2] - https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html diff --git a/Makefile b/Makefile index 98239d56924c..504a8b90cf4e 100644 --- a/Makefile +++ b/Makefile @@ -415,7 +415,7 @@ export MAKE AWK GENKSYMS INSTALLKERNEL PERL PYTHON UTS_MACHINE export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS -export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE CFLAGS_GCOV CFLAGS_KASAN +export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE CFLAGS_GCOV CFLAGS_KASAN CFLAGS_UBSAN export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_LDFLAGS_MODULE export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL @@ -794,6 +794,7 @@ endif include scripts/Makefile.kasan include scripts/Makefile.extrawarn +include scripts/Makefile.ubsan # Add any arch overrides and user supplied CPPFLAGS, AFLAGS and CFLAGS as the # last assignments diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 436639a31624..803b262eb0bf 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -30,6 +30,7 @@ config X86 select ARCH_HAS_PMEM_API if X86_64 select ARCH_HAS_MMIO_FLUSH select ARCH_HAS_SG_CHAIN + select ARCH_HAS_UBSAN_SANITIZE_ALL select ARCH_HAVE_NMI_SAFE_CMPXCHG select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI select ARCH_MIGHT_HAVE_PC_PARPORT diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile index c0cc2a6be0bf..4a3a140f26bf 100644 --- a/arch/x86/boot/Makefile +++ b/arch/x86/boot/Makefile @@ -60,6 +60,7 @@ clean-files += cpustr.h KBUILD_CFLAGS := $(USERINCLUDE) $(REALMODE_CFLAGS) -D_SETUP KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__ GCOV_PROFILE := n +UBSAN_SANITIZE := n $(obj)/bzImage: asflags-y := $(SVGA_MODE) diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile index efa6073ffa7e..7f6c157e5da5 100644 --- a/arch/x86/boot/compressed/Makefile +++ b/arch/x86/boot/compressed/Makefile @@ -33,6 +33,7 @@ KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector) KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__ GCOV_PROFILE := n +UBSAN_SANITIZE :=n LDFLAGS := -m elf_$(UTS_MACHINE) ifeq ($(CONFIG_RELOCATABLE),y) diff --git a/arch/x86/entry/vdso/Makefile b/arch/x86/entry/vdso/Makefile index 265c0ed68118..c854541d93ff 100644 --- a/arch/x86/entry/vdso/Makefile +++ b/arch/x86/entry/vdso/Makefile @@ -4,6 +4,7 @@ KBUILD_CFLAGS += $(DISABLE_LTO) KASAN_SANITIZE := n +UBSAN_SANITIZE := n VDSO64-$(CONFIG_X86_64) := y VDSOX32-$(CONFIG_X86_X32_ABI) := y diff --git a/arch/x86/realmode/rm/Makefile b/arch/x86/realmode/rm/Makefile index 2730d775ef9a..3e75fcf6b836 100644 --- a/arch/x86/realmode/rm/Makefile +++ b/arch/x86/realmode/rm/Makefile @@ -70,3 +70,4 @@ KBUILD_CFLAGS := $(LINUXINCLUDE) $(REALMODE_CFLAGS) -D_SETUP -D_WAKEUP \ -I$(srctree)/arch/x86/boot KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__ GCOV_PROFILE := n +UBSAN_SANITIZE := n diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile index 3c0467d3688c..b2a172d93a08 100644 --- a/drivers/firmware/efi/libstub/Makefile +++ b/drivers/firmware/efi/libstub/Makefile @@ -22,6 +22,7 @@ KBUILD_CFLAGS := $(cflags-y) \ GCOV_PROFILE := n KASAN_SANITIZE := n +UBSAN_SANITIZE := n lib-y := efi-stub-helper.o diff --git a/include/linux/sched.h b/include/linux/sched.h index 1c0193baea2a..90e11e40219a 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1632,6 +1632,9 @@ struct task_struct { struct held_lock held_locks[MAX_LOCK_DEPTH]; gfp_t lockdep_reclaim_gfp; #endif +#ifdef CONFIG_UBSAN + unsigned int in_ubsan; +#endif /* journalling filesystem info */ void *journal_info; diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 8c15b29d5adc..4bab98fe59a4 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -1853,3 +1853,4 @@ source "samples/Kconfig" source "lib/Kconfig.kgdb" +source "lib/Kconfig.ubsan" diff --git a/lib/Kconfig.ubsan b/lib/Kconfig.ubsan new file mode 100644 index 000000000000..49518fb48cab --- /dev/null +++ b/lib/Kconfig.ubsan @@ -0,0 +1,29 @@ +config ARCH_HAS_UBSAN_SANITIZE_ALL + bool + +config UBSAN + bool "Undefined behaviour sanity checker" + help + This option enables undefined behaviour sanity checker + Compile-time instrumentation is used to detect various undefined + behaviours in runtime. Various types of checks may be enabled + via boot parameter ubsan_handle (see: Documentation/ubsan.txt). + +config UBSAN_SANITIZE_ALL + bool "Enable instrumentation for the entire kernel" + depends on UBSAN + depends on ARCH_HAS_UBSAN_SANITIZE_ALL + default y + help + This option activates instrumentation for the entire kernel. + If you don't enable this option, you have to explicitly specify + UBSAN_SANITIZE := y for the files/directories you want to check for UB. + +config UBSAN_ALIGNMENT + bool "Enable checking of pointers alignment" + depends on UBSAN + default y if !HAVE_EFFICIENT_UNALIGNED_ACCESS + help + This option enables detection of unaligned memory accesses. + Enabling this option on architectures that support unalligned + accesses may produce a lot of false positives. diff --git a/lib/Makefile b/lib/Makefile index 7f1de26613d2..e710b082d38f 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -208,3 +208,6 @@ quiet_cmd_build_OID_registry = GEN $@ clean-files += oid_registry_data.c obj-$(CONFIG_UCS2_STRING) += ucs2_string.o +obj-$(CONFIG_UBSAN) += ubsan.o + +UBSAN_SANITIZE_ubsan.o := n diff --git a/lib/ubsan.c b/lib/ubsan.c new file mode 100644 index 000000000000..8799ae5e2e42 --- /dev/null +++ b/lib/ubsan.c @@ -0,0 +1,456 @@ +/* + * UBSAN error reporting functions + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Author: Andrey Ryabinin + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "ubsan.h" + +const char *type_check_kinds[] = { + "load of", + "store to", + "reference binding to", + "member access within", + "member call on", + "constructor call on", + "downcast of", + "downcast of" +}; + +#define REPORTED_BIT 31 + +#if (BITS_PER_LONG == 64) && defined(__BIG_ENDIAN) +#define COLUMN_MASK (~(1U << REPORTED_BIT)) +#define LINE_MASK (~0U) +#else +#define COLUMN_MASK (~0U) +#define LINE_MASK (~(1U << REPORTED_BIT)) +#endif + +#define VALUE_LENGTH 40 + +static bool was_reported(struct source_location *location) +{ + return test_and_set_bit(REPORTED_BIT, &location->reported); +} + +static void print_source_location(const char *prefix, + struct source_location *loc) +{ + pr_err("%s %s:%d:%d\n", prefix, loc->file_name, + loc->line & LINE_MASK, loc->column & COLUMN_MASK); +} + +static bool suppress_report(struct source_location *loc) +{ + return current->in_ubsan || was_reported(loc); +} + +static bool type_is_int(struct type_descriptor *type) +{ + return type->type_kind == type_kind_int; +} + +static bool type_is_signed(struct type_descriptor *type) +{ + WARN_ON(!type_is_int(type)); + return type->type_info & 1; +} + +static unsigned type_bit_width(struct type_descriptor *type) +{ + return 1 << (type->type_info >> 1); +} + +static bool is_inline_int(struct type_descriptor *type) +{ + unsigned inline_bits = sizeof(unsigned long)*8; + unsigned bits = type_bit_width(type); + + WARN_ON(!type_is_int(type)); + + return bits <= inline_bits; +} + +static s_max get_signed_val(struct type_descriptor *type, unsigned long val) +{ + if (is_inline_int(type)) { + unsigned extra_bits = sizeof(s_max)*8 - type_bit_width(type); + return ((s_max)val) << extra_bits >> extra_bits; + } + + if (type_bit_width(type) == 64) + return *(s64 *)val; + + return *(s_max *)val; +} + +static bool val_is_negative(struct type_descriptor *type, unsigned long val) +{ + return type_is_signed(type) && get_signed_val(type, val) < 0; +} + +static u_max get_unsigned_val(struct type_descriptor *type, unsigned long val) +{ + if (is_inline_int(type)) + return val; + + if (type_bit_width(type) == 64) + return *(u64 *)val; + + return *(u_max *)val; +} + +static void val_to_string(char *str, size_t size, struct type_descriptor *type, + unsigned long value) +{ + if (type_is_int(type)) { + if (type_bit_width(type) == 128) { +#if defined(CONFIG_ARCH_SUPPORTS_INT128) && defined(__SIZEOF_INT128__) + u_max val = get_unsigned_val(type, value); + + scnprintf(str, size, "0x%08x%08x%08x%08x", + (u32)(val >> 96), + (u32)(val >> 64), + (u32)(val >> 32), + (u32)(val)); +#else + WARN_ON(1); +#endif + } else if (type_is_signed(type)) { + scnprintf(str, size, "%lld", + (s64)get_signed_val(type, value)); + } else { + scnprintf(str, size, "%llu", + (u64)get_unsigned_val(type, value)); + } + } +} + +static bool location_is_valid(struct source_location *loc) +{ + return loc->file_name != NULL; +} + +static DEFINE_SPINLOCK(report_lock); + +static void ubsan_prologue(struct source_location *location, + unsigned long *flags) +{ + current->in_ubsan++; + spin_lock_irqsave(&report_lock, *flags); + + pr_err("========================================" + "========================================\n"); + print_source_location("UBSAN: Undefined behaviour in", location); +} + +static void ubsan_epilogue(unsigned long *flags) +{ + dump_stack(); + pr_err("========================================" + "========================================\n"); + spin_unlock_irqrestore(&report_lock, *flags); + current->in_ubsan--; +} + +static void handle_overflow(struct overflow_data *data, unsigned long lhs, + unsigned long rhs, char op) +{ + + struct type_descriptor *type = data->type; + unsigned long flags; + char lhs_val_str[VALUE_LENGTH]; + char rhs_val_str[VALUE_LENGTH]; + + if (suppress_report(&data->location)) + return; + + ubsan_prologue(&data->location, &flags); + + val_to_string(lhs_val_str, sizeof(lhs_val_str), type, lhs); + val_to_string(rhs_val_str, sizeof(rhs_val_str), type, rhs); + pr_err("%s integer overflow:\n", + type_is_signed(type) ? "signed" : "unsigned"); + pr_err("%s %c %s cannot be represented in type %s\n", + lhs_val_str, + op, + rhs_val_str, + type->type_name); + + ubsan_epilogue(&flags); +} + +void __ubsan_handle_add_overflow(struct overflow_data *data, + unsigned long lhs, + unsigned long rhs) +{ + + handle_overflow(data, lhs, rhs, '+'); +} +EXPORT_SYMBOL(__ubsan_handle_add_overflow); + +void __ubsan_handle_sub_overflow(struct overflow_data *data, + unsigned long lhs, + unsigned long rhs) +{ + handle_overflow(data, lhs, rhs, '-'); +} +EXPORT_SYMBOL(__ubsan_handle_sub_overflow); + +void __ubsan_handle_mul_overflow(struct overflow_data *data, + unsigned long lhs, + unsigned long rhs) +{ + handle_overflow(data, lhs, rhs, '*'); +} +EXPORT_SYMBOL(__ubsan_handle_mul_overflow); + +void __ubsan_handle_negate_overflow(struct overflow_data *data, + unsigned long old_val) +{ + unsigned long flags; + char old_val_str[VALUE_LENGTH]; + + if (suppress_report(&data->location)) + return; + + ubsan_prologue(&data->location, &flags); + + val_to_string(old_val_str, sizeof(old_val_str), data->type, old_val); + + pr_err("negation of %s cannot be represented in type %s:\n", + old_val_str, data->type->type_name); + + ubsan_epilogue(&flags); +} +EXPORT_SYMBOL(__ubsan_handle_negate_overflow); + + +void __ubsan_handle_divrem_overflow(struct overflow_data *data, + unsigned long lhs, + unsigned long rhs) +{ + unsigned long flags; + char rhs_val_str[VALUE_LENGTH]; + + if (suppress_report(&data->location)) + return; + + ubsan_prologue(&data->location, &flags); + + val_to_string(rhs_val_str, sizeof(rhs_val_str), data->type, rhs); + + if (type_is_signed(data->type) && get_signed_val(data->type, rhs) == -1) + pr_err("division of %s by -1 cannot be represented in type %s\n", + rhs_val_str, data->type->type_name); + else + pr_err("division by zero\n"); + + ubsan_epilogue(&flags); +} +EXPORT_SYMBOL(__ubsan_handle_divrem_overflow); + +static void handle_null_ptr_deref(struct type_mismatch_data *data) +{ + unsigned long flags; + + if (suppress_report(&data->location)) + return; + + ubsan_prologue(&data->location, &flags); + + pr_err("%s null pointer of type %s\n", + type_check_kinds[data->type_check_kind], + data->type->type_name); + + ubsan_epilogue(&flags); +} + +static void handle_missaligned_access(struct type_mismatch_data *data, + unsigned long ptr) +{ + unsigned long flags; + + if (suppress_report(&data->location)) + return; + + ubsan_prologue(&data->location, &flags); + + pr_err("%s misaligned address %p for type %s\n", + type_check_kinds[data->type_check_kind], + (void *)ptr, data->type->type_name); + pr_err("which requires %ld byte alignment\n", data->alignment); + + ubsan_epilogue(&flags); +} + +static void handle_object_size_mismatch(struct type_mismatch_data *data, + unsigned long ptr) +{ + unsigned long flags; + + if (suppress_report(&data->location)) + return; + + ubsan_prologue(&data->location, &flags); + pr_err("%s address %pk with insufficient space\n", + type_check_kinds[data->type_check_kind], + (void *) ptr); + pr_err("for an object of type %s\n", data->type->type_name); + ubsan_epilogue(&flags); +} + +void __ubsan_handle_type_mismatch(struct type_mismatch_data *data, + unsigned long ptr) +{ + + if (!ptr) + handle_null_ptr_deref(data); + else if (data->alignment && !IS_ALIGNED(ptr, data->alignment)) + handle_missaligned_access(data, ptr); + else + handle_object_size_mismatch(data, ptr); +} +EXPORT_SYMBOL(__ubsan_handle_type_mismatch); + +void __ubsan_handle_nonnull_return(struct nonnull_return_data *data) +{ + unsigned long flags; + + if (suppress_report(&data->location)) + return; + + ubsan_prologue(&data->location, &flags); + + pr_err("null pointer returned from function declared to never return null\n"); + + if (location_is_valid(&data->attr_location)) + print_source_location("returns_nonnull attribute specified in", + &data->attr_location); + + ubsan_epilogue(&flags); +} +EXPORT_SYMBOL(__ubsan_handle_nonnull_return); + +void __ubsan_handle_vla_bound_not_positive(struct vla_bound_data *data, + unsigned long bound) +{ + unsigned long flags; + char bound_str[VALUE_LENGTH]; + + if (suppress_report(&data->location)) + return; + + ubsan_prologue(&data->location, &flags); + + val_to_string(bound_str, sizeof(bound_str), data->type, bound); + pr_err("variable length array bound value %s <= 0\n", bound_str); + + ubsan_epilogue(&flags); +} +EXPORT_SYMBOL(__ubsan_handle_vla_bound_not_positive); + +void __ubsan_handle_out_of_bounds(struct out_of_bounds_data *data, + unsigned long index) +{ + unsigned long flags; + char index_str[VALUE_LENGTH]; + + if (suppress_report(&data->location)) + return; + + ubsan_prologue(&data->location, &flags); + + val_to_string(index_str, sizeof(index_str), data->index_type, index); + pr_err("index %s is out of range for type %s\n", index_str, + data->array_type->type_name); + ubsan_epilogue(&flags); +} +EXPORT_SYMBOL(__ubsan_handle_out_of_bounds); + +void __ubsan_handle_shift_out_of_bounds(struct shift_out_of_bounds_data *data, + unsigned long lhs, unsigned long rhs) +{ + unsigned long flags; + struct type_descriptor *rhs_type = data->rhs_type; + struct type_descriptor *lhs_type = data->lhs_type; + char rhs_str[VALUE_LENGTH]; + char lhs_str[VALUE_LENGTH]; + + if (suppress_report(&data->location)) + return; + + ubsan_prologue(&data->location, &flags); + + val_to_string(rhs_str, sizeof(rhs_str), rhs_type, rhs); + val_to_string(lhs_str, sizeof(lhs_str), lhs_type, lhs); + + if (val_is_negative(rhs_type, rhs)) + pr_err("shift exponent %s is negative\n", rhs_str); + + else if (get_unsigned_val(rhs_type, rhs) >= + type_bit_width(lhs_type)) + pr_err("shift exponent %s is too large for %u-bit type %s\n", + rhs_str, + type_bit_width(lhs_type), + lhs_type->type_name); + else if (val_is_negative(lhs_type, lhs)) + pr_err("left shift of negative value %s\n", + lhs_str); + else + pr_err("left shift of %s by %s places cannot be" + " represented in type %s\n", + lhs_str, rhs_str, + lhs_type->type_name); + + ubsan_epilogue(&flags); +} +EXPORT_SYMBOL(__ubsan_handle_shift_out_of_bounds); + + +void __noreturn +__ubsan_handle_builtin_unreachable(struct unreachable_data *data) +{ + unsigned long flags; + + ubsan_prologue(&data->location, &flags); + pr_err("calling __builtin_unreachable()\n"); + ubsan_epilogue(&flags); + panic("can't return from __builtin_unreachable()"); +} +EXPORT_SYMBOL(__ubsan_handle_builtin_unreachable); + +void __ubsan_handle_load_invalid_value(struct invalid_value_data *data, + unsigned long val) +{ + unsigned long flags; + char val_str[VALUE_LENGTH]; + + if (suppress_report(&data->location)) + return; + + ubsan_prologue(&data->location, &flags); + + val_to_string(val_str, sizeof(val_str), data->type, val); + + pr_err("load of value %s is not a valid value for type %s\n", + val_str, data->type->type_name); + + ubsan_epilogue(&flags); +} +EXPORT_SYMBOL(__ubsan_handle_load_invalid_value); diff --git a/lib/ubsan.h b/lib/ubsan.h new file mode 100644 index 000000000000..b2d18d4a53f5 --- /dev/null +++ b/lib/ubsan.h @@ -0,0 +1,84 @@ +#ifndef _LIB_UBSAN_H +#define _LIB_UBSAN_H + +enum { + type_kind_int = 0, + type_kind_float = 1, + type_unknown = 0xffff +}; + +struct type_descriptor { + u16 type_kind; + u16 type_info; + char type_name[1]; +}; + +struct source_location { + const char *file_name; + union { + unsigned long reported; + struct { + u32 line; + u32 column; + }; + }; +}; + +struct overflow_data { + struct source_location location; + struct type_descriptor *type; +}; + +struct type_mismatch_data { + struct source_location location; + struct type_descriptor *type; + unsigned long alignment; + unsigned char type_check_kind; +}; + +struct nonnull_arg_data { + struct source_location location; + struct source_location attr_location; + int arg_index; +}; + +struct nonnull_return_data { + struct source_location location; + struct source_location attr_location; +}; + +struct vla_bound_data { + struct source_location location; + struct type_descriptor *type; +}; + +struct out_of_bounds_data { + struct source_location location; + struct type_descriptor *array_type; + struct type_descriptor *index_type; +}; + +struct shift_out_of_bounds_data { + struct source_location location; + struct type_descriptor *lhs_type; + struct type_descriptor *rhs_type; +}; + +struct unreachable_data { + struct source_location location; +}; + +struct invalid_value_data { + struct source_location location; + struct type_descriptor *type; +}; + +#if defined(CONFIG_ARCH_SUPPORTS_INT128) && defined(__SIZEOF_INT128__) +typedef __int128 s_max; +typedef unsigned __int128 u_max; +#else +typedef s64 s_max; +typedef u64 u_max; +#endif + +#endif diff --git a/mm/kasan/Makefile b/mm/kasan/Makefile index 64710148941e..a61460d9f5b0 100644 --- a/mm/kasan/Makefile +++ b/mm/kasan/Makefile @@ -1,4 +1,5 @@ KASAN_SANITIZE := n +UBSAN_SANITIZE_kasan.o := n CFLAGS_REMOVE_kasan.o = -pg # Function splitter causes unnecessary splits in __asan_load1/__asan_store1 diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 79e86613712f..d7c2032d0fe4 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -129,6 +129,12 @@ _c_flags += $(if $(patsubst n%,, \ $(CFLAGS_KASAN)) endif +ifeq ($(CONFIG_UBSAN),y) +_c_flags += $(if $(patsubst n%,, \ + $(UBSAN_SANITIZE_$(basetarget).o)$(UBSAN_SANITIZE)$(CONFIG_UBSAN_SANITIZE_ALL)), \ + $(CFLAGS_UBSAN)) +endif + # If building the kernel in a separate objtree expand all occurrences # of -Idir to -I$(srctree)/dir except for absolute paths (starting with '/'). diff --git a/scripts/Makefile.ubsan b/scripts/Makefile.ubsan new file mode 100644 index 000000000000..8ab68679cfb5 --- /dev/null +++ b/scripts/Makefile.ubsan @@ -0,0 +1,17 @@ +ifdef CONFIG_UBSAN + CFLAGS_UBSAN += $(call cc-option, -fsanitize=shift) + CFLAGS_UBSAN += $(call cc-option, -fsanitize=integer-divide-by-zero) + CFLAGS_UBSAN += $(call cc-option, -fsanitize=unreachable) + CFLAGS_UBSAN += $(call cc-option, -fsanitize=vla-bound) + CFLAGS_UBSAN += $(call cc-option, -fsanitize=null) + CFLAGS_UBSAN += $(call cc-option, -fsanitize=signed-integer-overflow) + CFLAGS_UBSAN += $(call cc-option, -fsanitize=bounds) + CFLAGS_UBSAN += $(call cc-option, -fsanitize=object-size) + CFLAGS_UBSAN += $(call cc-option, -fsanitize=returns-nonnull-attribute) + CFLAGS_UBSAN += $(call cc-option, -fsanitize=bool) + CFLAGS_UBSAN += $(call cc-option, -fsanitize=enum) + +ifdef CONFIG_UBSAN_ALIGNMENT + CFLAGS_UBSAN += $(call cc-option, -fsanitize=alignment) +endif +endif From d451f4bce4e3f4492709ff7a108ef7fecc9030f8 Mon Sep 17 00:00:00 2001 From: Yang Shi Date: Thu, 11 Feb 2016 16:12:55 -0800 Subject: [PATCH 0002/1149] ubsan: cosmetic fix to Kconfig text commit 7707535ab95e2231b6d7f2bfb4f27558e83c4dc2 upstream. When enabling UBSAN_SANITIZE_ALL, the kernel image size gets increased significantly (~3x). So, it sounds better to have some note in Kconfig. And, fixed a typo. Signed-off-by: Yang Shi Acked-by: Andrey Ryabinin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Ben Hutchings --- lib/Kconfig.ubsan | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/Kconfig.ubsan b/lib/Kconfig.ubsan index 49518fb48cab..e07c1ba9ba13 100644 --- a/lib/Kconfig.ubsan +++ b/lib/Kconfig.ubsan @@ -18,6 +18,8 @@ config UBSAN_SANITIZE_ALL This option activates instrumentation for the entire kernel. If you don't enable this option, you have to explicitly specify UBSAN_SANITIZE := y for the files/directories you want to check for UB. + Enabling this option will get kernel image size increased + significantly. config UBSAN_ALIGNMENT bool "Enable checking of pointers alignment" @@ -25,5 +27,5 @@ config UBSAN_ALIGNMENT default y if !HAVE_EFFICIENT_UNALIGNED_ACCESS help This option enables detection of unaligned memory accesses. - Enabling this option on architectures that support unalligned + Enabling this option on architectures that support unaligned accesses may produce a lot of false positives. From e95943b12d51510debc2ae1590b4545ec51041a8 Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Sun, 24 Jan 2016 20:08:52 -0600 Subject: [PATCH 0003/1149] PM / sleep: declare __tracedata symbols as char[] rather than char commit f97238373b8662a6d580e204df2e7bcbfa43e27a upstream. Accessing more than one byte from a symbol declared simply 'char' is undefined behavior, as reported by UBSAN: UBSAN: Undefined behaviour in drivers/base/power/trace.c:178:18 load of address ffffffff8203fc78 with insufficient space for an object of type 'char' Avoid this by declaring the symbols as arrays. Signed-off-by: Eric Biggers Signed-off-by: Rafael J. Wysocki Signed-off-by: Ben Hutchings --- drivers/base/power/trace.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/base/power/trace.c b/drivers/base/power/trace.c index a311cfa4c5bd..a6975795e7f3 100644 --- a/drivers/base/power/trace.c +++ b/drivers/base/power/trace.c @@ -166,14 +166,14 @@ void generate_pm_trace(const void *tracedata, unsigned int user) } EXPORT_SYMBOL(generate_pm_trace); -extern char __tracedata_start, __tracedata_end; +extern char __tracedata_start[], __tracedata_end[]; static int show_file_hash(unsigned int value) { int match; char *tracedata; match = 0; - for (tracedata = &__tracedata_start ; tracedata < &__tracedata_end ; + for (tracedata = __tracedata_start ; tracedata < __tracedata_end ; tracedata += 2 + sizeof(unsigned long)) { unsigned short lineno = *(unsigned short *)tracedata; const char *file = *(const char **)(tracedata + 2); From fc1adfb6bccb6d929a32e0acb07bbc7c2b00651d Mon Sep 17 00:00:00 2001 From: Chris Bainbridge Date: Mon, 7 Mar 2016 11:10:00 +0100 Subject: [PATCH 0004/1149] x86/microcode/intel: Change checksum variables to u32 commit bc864af13f34d19c911f5691d87bdacc9ce109f5 upstream. Microcode checksum verification should be done using unsigned 32-bit values otherwise the calculation overflow results in undefined behaviour. This is also nicely documented in the SDM, section "Microcode Update Checksum": "To check for a corrupt microcode update, software must perform a unsigned DWORD (32-bit) checksum of the microcode update. Even though some fields are signed, the checksum procedure treats all DWORDs as unsigned. Microcode updates with a header version equal to 00000001H must sum all DWORDs that comprise the microcode update. A valid checksum check will yield a value of 00000000H." but for some reason the code has been using ints from the very beginning. In practice, this bug possibly manifested itself only when doing the microcode data checksum - apparently, currently shipped Intel microcode doesn't have an extended signature table for which we do checksum verification too. UBSAN: Undefined behaviour in arch/x86/kernel/cpu/microcode/intel_lib.c:105:12 signed integer overflow: -1500151068 + -2125470173 cannot be represented in type 'int' CPU: 0 PID: 0 Comm: swapper Not tainted 4.5.0-rc5+ #495 ... Call Trace: dump_stack ? inotify_ioctl ubsan_epilogue handle_overflow __ubsan_handle_add_overflow microcode_sanity_check get_matching_model_microcode.isra.2.constprop.8 ? early_idt_handler_common ? strlcpy ? find_cpio_data load_ucode_intel_bsp load_ucode_bsp ? load_ucode_bsp x86_64_start_kernel [ Expand and massage commit message. ] Signed-off-by: Chris Bainbridge Signed-off-by: Borislav Petkov Cc: hmh@hmh.eng.br Link: http://lkml.kernel.org/r/1456834359-5132-1-git-send-email-chris.bainbridge@gmail.com Signed-off-by: Thomas Gleixner Signed-off-by: Ben Hutchings --- arch/x86/kernel/cpu/microcode/intel_lib.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/x86/kernel/cpu/microcode/intel_lib.c b/arch/x86/kernel/cpu/microcode/intel_lib.c index b96896bcbdaf..99ca2c935777 100644 --- a/arch/x86/kernel/cpu/microcode/intel_lib.c +++ b/arch/x86/kernel/cpu/microcode/intel_lib.c @@ -49,7 +49,7 @@ int microcode_sanity_check(void *mc, int print_err) unsigned long total_size, data_size, ext_table_size; struct microcode_header_intel *mc_header = mc; struct extended_sigtable *ext_header = NULL; - int sum, orig_sum, ext_sigcount = 0, i; + u32 sum, orig_sum, ext_sigcount = 0, i; struct extended_signature *ext_sig; total_size = get_totalsize(mc_header); @@ -85,8 +85,8 @@ int microcode_sanity_check(void *mc, int print_err) /* check extended table checksum */ if (ext_table_size) { - int ext_table_sum = 0; - int *ext_tablep = (int *)ext_header; + u32 ext_table_sum = 0; + u32 *ext_tablep = (u32 *)ext_header; i = ext_table_size / DWSIZE; while (i--) @@ -102,7 +102,7 @@ int microcode_sanity_check(void *mc, int print_err) orig_sum = 0; i = (MC_HEADER_SIZE + data_size) / DWSIZE; while (i--) - orig_sum += ((int *)mc)[i]; + orig_sum += ((u32 *)mc)[i]; if (orig_sum) { if (print_err) pr_err("aborting, bad checksum\n"); From 1814e6998bd6b47015ee0991052137387d4ce951 Mon Sep 17 00:00:00 2001 From: Andrey Ryabinin Date: Tue, 15 Mar 2016 14:55:27 -0700 Subject: [PATCH 0005/1149] mm/page-writeback: fix dirty_ratelimit calculation commit d59b1087a98e402ed9a7cc577f4da435f9a555f5 upstream. Calculation of dirty_ratelimit sometimes is not correct. E.g. initial values of dirty_ratelimit == INIT_BW and step == 0, lead to the following result: UBSAN: Undefined behaviour in ../mm/page-writeback.c:1286:7 shift exponent 25600 is too large for 64-bit type 'long unsigned int' The fix is straightforward - make step 0 if the shift exponent is too big. Signed-off-by: Andrey Ryabinin Cc: Wu Fengguang Cc: Tejun Heo Cc: Andy Shevchenko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Ben Hutchings --- mm/page-writeback.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/mm/page-writeback.c b/mm/page-writeback.c index fd51ebfc423f..6d0dbde4503b 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -1162,6 +1162,7 @@ static void wb_update_dirty_ratelimit(struct dirty_throttle_control *dtc, unsigned long balanced_dirty_ratelimit; unsigned long step; unsigned long x; + unsigned long shift; /* * The dirty rate will match the writeout rate in long term, except @@ -1286,11 +1287,11 @@ static void wb_update_dirty_ratelimit(struct dirty_throttle_control *dtc, * rate itself is constantly fluctuating. So decrease the track speed * when it gets close to the target. Helps eliminate pointless tremors. */ - step >>= dirty_ratelimit / (2 * step + 1); - /* - * Limit the tracking speed to avoid overshooting. - */ - step = (step + 7) / 8; + shift = dirty_ratelimit / (2 * step + 1); + if (shift < BITS_PER_LONG) + step = DIV_ROUND_UP(step >> shift, 8); + else + step = 0; if (dirty_ratelimit < balanced_dirty_ratelimit) dirty_ratelimit += step; From 2cdcab354b675c5eba272627db2597b3f39ff66e Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 29 Jan 2016 15:17:51 +0100 Subject: [PATCH 0006/1149] perf/core: Fix Undefined behaviour in rb_alloc() commit 8184059e93c200757f5c0805dae0f14e880eab5d upstream. Sasha reported: [ 3494.030114] UBSAN: Undefined behaviour in kernel/events/ring_buffer.c:685:22 [ 3494.030647] shift exponent -1 is negative Andrey spotted that this is because: It happens if nr_pages = 0: rb->page_order = ilog2(nr_pages); Fix it by making both assignments conditional on nr_pages; since otherwise they should both be 0 anyway, and will be because of the kzalloc() used to allocate the structure. Reported-by: Sasha Levin Reported-by: Andrey Ryabinin Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Andy Lutomirski Cc: Arnaldo Carvalho de Melo Cc: Arnaldo Carvalho de Melo Cc: Borislav Petkov Cc: Brian Gerst Cc: David Ahern Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Link: http://lkml.kernel.org/r/20160129141751.GA407@worktop Signed-off-by: Ingo Molnar Signed-off-by: Ben Hutchings --- kernel/events/ring_buffer.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel/events/ring_buffer.c b/kernel/events/ring_buffer.c index 014b69528194..7beb02f40cb4 100644 --- a/kernel/events/ring_buffer.c +++ b/kernel/events/ring_buffer.c @@ -754,8 +754,10 @@ struct ring_buffer *rb_alloc(int nr_pages, long watermark, int cpu, int flags) rb->user_page = all_buf; rb->data_pages[0] = all_buf + PAGE_SIZE; - rb->page_order = ilog2(nr_pages); - rb->nr_pages = !!nr_pages; + if (nr_pages) { + rb->nr_pages = 1; + rb->page_order = ilog2(nr_pages); + } ring_buffer_init(rb, watermark, flags); From 09f8232e9c945f5ec0aeadbd04af3b5a2b7182b1 Mon Sep 17 00:00:00 2001 From: Andrey Ryabinin Date: Tue, 22 Mar 2016 14:27:45 -0700 Subject: [PATCH 0007/1149] ubsan: fix tree-wide -Wmaybe-uninitialized false positives commit dde5cf39d4d2cce71f2997c37210dd624d0e4bf6 upstream. -fsanitize=* options makes GCC less smart than usual and increase number of 'maybe-uninitialized' false-positives. So this patch does two things: * Add -Wno-maybe-uninitialized to CFLAGS_UBSAN which will disable all such warnings for instrumented files. * Remove CONFIG_UBSAN_SANITIZE_ALL from all[yes|mod]config builds. So the all[yes|mod]config build goes without -fsanitize=* and still with -Wmaybe-uninitialized. Signed-off-by: Andrey Ryabinin Reported-by: Fengguang Wu Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Ben Hutchings --- lib/Kconfig.ubsan | 5 +++++ scripts/Makefile.ubsan | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/lib/Kconfig.ubsan b/lib/Kconfig.ubsan index e07c1ba9ba13..39494af9a84a 100644 --- a/lib/Kconfig.ubsan +++ b/lib/Kconfig.ubsan @@ -13,6 +13,11 @@ config UBSAN_SANITIZE_ALL bool "Enable instrumentation for the entire kernel" depends on UBSAN depends on ARCH_HAS_UBSAN_SANITIZE_ALL + + # We build with -Wno-maybe-uninitilzed, but we still want to + # use -Wmaybe-uninitilized in allmodconfig builds. + # So dependsy bellow used to disable this option in allmodconfig + depends on !COMPILE_TEST default y help This option activates instrumentation for the entire kernel. diff --git a/scripts/Makefile.ubsan b/scripts/Makefile.ubsan index 8ab68679cfb5..77ce538268b5 100644 --- a/scripts/Makefile.ubsan +++ b/scripts/Makefile.ubsan @@ -14,4 +14,8 @@ ifdef CONFIG_UBSAN ifdef CONFIG_UBSAN_ALIGNMENT CFLAGS_UBSAN += $(call cc-option, -fsanitize=alignment) endif + + # -fsanitize=* options makes GCC less smart than usual and + # increase number of 'maybe-uninitialized false-positives + CFLAGS_UBSAN += $(call cc-option, -Wno-maybe-uninitialized) endif From d8289f349a9eaf47d59e042c8588322af10d2ad3 Mon Sep 17 00:00:00 2001 From: Nicolai Stange Date: Fri, 25 Mar 2016 14:22:14 -0700 Subject: [PATCH 0008/1149] mm/filemap: generic_file_read_iter(): check for zero reads unconditionally commit e7080a439a6f507abbc860847c33efc39b5c1c6d upstream. If - generic_file_read_iter() gets called with a zero read length, - the read offset is at a page boundary, - IOCB_DIRECT is not set - and the page in question hasn't made it into the page cache yet, then do_generic_file_read() will trigger a readahead with a req_size hint of zero. Since roundup_pow_of_two(0) is undefined, UBSAN reports UBSAN: Undefined behaviour in include/linux/log2.h:63:13 shift exponent 64 is too large for 64-bit type 'long unsigned int' CPU: 3 PID: 1017 Comm: sa1 Tainted: G L 4.5.0-next-20160318+ #14 [...] Call Trace: [...] [] ondemand_readahead+0x3aa/0x3d0 [] ? ondemand_readahead+0x3aa/0x3d0 [] ? find_get_entry+0x2d/0x210 [] page_cache_sync_readahead+0x63/0xa0 [] do_generic_file_read+0x80d/0xf90 [] generic_file_read_iter+0x185/0x420 [...] [] __vfs_read+0x256/0x3d0 [...] when get_init_ra_size() gets called from ondemand_readahead(). The net effect is that the initial readahead size is arch dependent for requested read lengths of zero: for example, since 1UL << (sizeof(unsigned long) * 8) evaluates to 1 on x86 while its result is 0 on ARMv7, the initial readahead size becomes 4 on the former and 0 on the latter. What's more, whether or not the file access timestamp is updated for zero length reads is decided differently for the two cases of IOCB_DIRECT being set or cleared: in the first case, generic_file_read_iter() explicitly skips updating that timestamp while in the latter case, it is always updated through the call to do_generic_file_read(). According to POSIX, zero length reads "do not modify the last data access timestamp" and thus, the IOCB_DIRECT behaviour is POSIXly correct. Let generic_file_read_iter() unconditionally check the requested read length at its entry and return immediately with success if it is zero. Signed-off-by: Nicolai Stange Cc: Al Viro Reviewed-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Ben Hutchings --- mm/filemap.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mm/filemap.c b/mm/filemap.c index c588d1222b2a..521bd370339c 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -1766,15 +1766,16 @@ generic_file_read_iter(struct kiocb *iocb, struct iov_iter *iter) ssize_t retval = 0; loff_t *ppos = &iocb->ki_pos; loff_t pos = *ppos; + size_t count = iov_iter_count(iter); + + if (!count) + goto out; /* skip atime */ if (iocb->ki_flags & IOCB_DIRECT) { struct address_space *mapping = file->f_mapping; struct inode *inode = mapping->host; - size_t count = iov_iter_count(iter); loff_t size; - if (!count) - goto out; /* skip atime */ size = i_size_read(inode); retval = filemap_write_and_wait_range(mapping, pos, pos + count - 1); From 61e02426527cd8392e3dbb9f7001e6b1331e5dce Mon Sep 17 00:00:00 2001 From: Adam Borowski Date: Wed, 27 Apr 2016 11:35:31 +0200 Subject: [PATCH 0009/1149] perf/x86/amd: Set the size of event map array to PERF_COUNT_HW_MAX commit 0a25556f84d5f79e68e9502bb1f32a43377ab2bf upstream. The entry for PERF_COUNT_HW_REF_CPU_CYCLES is not used on AMD, but is referenced by filter_events() which expects undefined events to have a value of 0. Found via KASAN: UBSAN: Undefined behaviour in arch/x86/events/amd/core.c:132:30 index 9 is out of range for type 'u64 [9]' UBSAN: Undefined behaviour in arch/x86/events/amd/core.c:132:9 load of address ffffffff81c021c8 with insufficient space for an object of type 'const u64' Signed-off-by: Adam Borowski Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Borislav Petkov Cc: Jiri Olsa Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Link: http://lkml.kernel.org/r/1461749731-30979-1-git-send-email-kilobyte@angband.pl Signed-off-by: Ingo Molnar [bwh: Backported to 4.4: adjust filename] Signed-off-by: Ben Hutchings --- arch/x86/kernel/cpu/perf_event_amd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kernel/cpu/perf_event_amd.c b/arch/x86/kernel/cpu/perf_event_amd.c index 1cee5d2d7ece..e671f3c2397e 100644 --- a/arch/x86/kernel/cpu/perf_event_amd.c +++ b/arch/x86/kernel/cpu/perf_event_amd.c @@ -115,7 +115,7 @@ static __initconst const u64 amd_hw_cache_event_ids /* * AMD Performance Monitor K7 and later. */ -static const u64 amd_perfmon_event_map[] = +static const u64 amd_perfmon_event_map[PERF_COUNT_HW_MAX] = { [PERF_COUNT_HW_CPU_CYCLES] = 0x0076, [PERF_COUNT_HW_INSTRUCTIONS] = 0x00c0, From fa5da33498ebe1c8c74c09313efecea4ce764ff4 Mon Sep 17 00:00:00 2001 From: Nicolai Stange Date: Tue, 22 Mar 2016 22:05:27 +0100 Subject: [PATCH 0010/1149] drm/radeon: don't include RADEON_HPD_NONE in HPD IRQ enable bitsets commit b2c0cbd657173f024138d6421774007690ceeffd upstream. The values of all but the RADEON_HPD_NONE members of the radeon_hpd_id enum transform 1:1 into bit positions within the 'enabled' bitset as assembled by evergreen_hpd_init(): enabled |= 1 << radeon_connector->hpd.hpd; However, if ->hpd.hpd happens to equal RADEON_HPD_NONE == 0xff, UBSAN reports UBSAN: Undefined behaviour in drivers/gpu/drm/radeon/evergreen.c:1867:16 shift exponent 255 is too large for 32-bit type 'int' [...] Call Trace: [] dump_stack+0xbc/0x117 [] ? _atomic_dec_and_lock+0x169/0x169 [] ubsan_epilogue+0xd/0x4e [] __ubsan_handle_shift_out_of_bounds+0x1fb/0x254 [] ? atom_execute_table+0x3e/0x50 [radeon] [] ? __ubsan_handle_load_invalid_value+0x158/0x158 [] ? radeon_get_pll_use_mask+0x130/0x130 [radeon] [] ? wake_up_klogd_work_func+0x60/0x60 [] ? vprintk_default+0x3e/0x60 [] evergreen_hpd_init+0x274/0x2d0 [radeon] [] ? evergreen_hpd_init+0x274/0x2d0 [radeon] [] radeon_modeset_init+0x8ce/0x18d0 [radeon] [] radeon_driver_load_kms+0x186/0x350 [radeon] [] drm_dev_register+0xc6/0x100 [drm] [] drm_get_pci_dev+0xe4/0x490 [drm] [] ? kfree+0x220/0x370 [] radeon_pci_probe+0x112/0x140 [radeon] [...] ===================================================================== radeon 0000:01:00.0: No connectors reported connected with modes At least on x86, there should be no user-visible impact as there 1 << 0xff == 1 << (0xff & 31) == 1 << 31 holds and 31 > RADEON_MAX_HPD_PINS. Thus, this patch is a cosmetic one. All of the above applies analogously to evergreen_hpd_fini(), r100_hpd_init(), r100_hpd_fini(), r600_hpd_init(), r600_hpd_fini(), rs600_hpd_init() and rs600_hpd_fini() Silence UBSAN by checking ->hpd.hpd for RADEON_HPD_NONE before oring it into the 'enabled' bitset in the *_init()- or the 'disabled' bitset in the *_fini()-functions respectively. Signed-off-by: Nicolai Stange Signed-off-by: Alex Deucher Signed-off-by: Ben Hutchings --- drivers/gpu/drm/radeon/evergreen.c | 6 ++++-- drivers/gpu/drm/radeon/r100.c | 6 ++++-- drivers/gpu/drm/radeon/r600.c | 6 ++++-- drivers/gpu/drm/radeon/rs600.c | 6 ++++-- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c index 32491355a1d4..6792df8ed01a 100644 --- a/drivers/gpu/drm/radeon/evergreen.c +++ b/drivers/gpu/drm/radeon/evergreen.c @@ -1864,7 +1864,8 @@ void evergreen_hpd_init(struct radeon_device *rdev) break; } radeon_hpd_set_polarity(rdev, radeon_connector->hpd.hpd); - enabled |= 1 << radeon_connector->hpd.hpd; + if (radeon_connector->hpd.hpd != RADEON_HPD_NONE) + enabled |= 1 << radeon_connector->hpd.hpd; } radeon_irq_kms_enable_hpd(rdev, enabled); } @@ -1907,7 +1908,8 @@ void evergreen_hpd_fini(struct radeon_device *rdev) default: break; } - disabled |= 1 << radeon_connector->hpd.hpd; + if (radeon_connector->hpd.hpd != RADEON_HPD_NONE) + disabled |= 1 << radeon_connector->hpd.hpd; } radeon_irq_kms_disable_hpd(rdev, disabled); } diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c index 9e7e2bf03b81..9c5f47099216 100644 --- a/drivers/gpu/drm/radeon/r100.c +++ b/drivers/gpu/drm/radeon/r100.c @@ -592,7 +592,8 @@ void r100_hpd_init(struct radeon_device *rdev) list_for_each_entry(connector, &dev->mode_config.connector_list, head) { struct radeon_connector *radeon_connector = to_radeon_connector(connector); - enable |= 1 << radeon_connector->hpd.hpd; + if (radeon_connector->hpd.hpd != RADEON_HPD_NONE) + enable |= 1 << radeon_connector->hpd.hpd; radeon_hpd_set_polarity(rdev, radeon_connector->hpd.hpd); } radeon_irq_kms_enable_hpd(rdev, enable); @@ -614,7 +615,8 @@ void r100_hpd_fini(struct radeon_device *rdev) list_for_each_entry(connector, &dev->mode_config.connector_list, head) { struct radeon_connector *radeon_connector = to_radeon_connector(connector); - disable |= 1 << radeon_connector->hpd.hpd; + if (radeon_connector->hpd.hpd != RADEON_HPD_NONE) + disable |= 1 << radeon_connector->hpd.hpd; } radeon_irq_kms_disable_hpd(rdev, disable); } diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c index cc2fdf0be37a..116373c24d08 100644 --- a/drivers/gpu/drm/radeon/r600.c +++ b/drivers/gpu/drm/radeon/r600.c @@ -1002,7 +1002,8 @@ void r600_hpd_init(struct radeon_device *rdev) break; } } - enable |= 1 << radeon_connector->hpd.hpd; + if (radeon_connector->hpd.hpd != RADEON_HPD_NONE) + enable |= 1 << radeon_connector->hpd.hpd; radeon_hpd_set_polarity(rdev, radeon_connector->hpd.hpd); } radeon_irq_kms_enable_hpd(rdev, enable); @@ -1055,7 +1056,8 @@ void r600_hpd_fini(struct radeon_device *rdev) break; } } - disable |= 1 << radeon_connector->hpd.hpd; + if (radeon_connector->hpd.hpd != RADEON_HPD_NONE) + disable |= 1 << radeon_connector->hpd.hpd; } radeon_irq_kms_disable_hpd(rdev, disable); } diff --git a/drivers/gpu/drm/radeon/rs600.c b/drivers/gpu/drm/radeon/rs600.c index 6244f4e44e9a..4b35213fe028 100644 --- a/drivers/gpu/drm/radeon/rs600.c +++ b/drivers/gpu/drm/radeon/rs600.c @@ -413,7 +413,8 @@ void rs600_hpd_init(struct radeon_device *rdev) default: break; } - enable |= 1 << radeon_connector->hpd.hpd; + if (radeon_connector->hpd.hpd != RADEON_HPD_NONE) + enable |= 1 << radeon_connector->hpd.hpd; radeon_hpd_set_polarity(rdev, radeon_connector->hpd.hpd); } radeon_irq_kms_enable_hpd(rdev, enable); @@ -439,7 +440,8 @@ void rs600_hpd_fini(struct radeon_device *rdev) default: break; } - disable |= 1 << radeon_connector->hpd.hpd; + if (radeon_connector->hpd.hpd != RADEON_HPD_NONE) + disable |= 1 << radeon_connector->hpd.hpd; } radeon_irq_kms_disable_hpd(rdev, disable); } From 4a509deab3f1e9eedf12acd47889eeac8376e3bc Mon Sep 17 00:00:00 2001 From: Adam Borowski Date: Sun, 8 May 2016 15:08:00 +0200 Subject: [PATCH 0011/1149] btrfs: fix int32 overflow in shrink_delalloc(). commit 8eb0dfdbda3f56bf7d248ed87fcc383df114ecbb upstream. UBSAN: Undefined behaviour in fs/btrfs/extent-tree.c:4623:21 signed integer overflow: 10808 * 262144 cannot be represented in type 'int [8]' If 8192<=items<16384, we request a writeback of an insane number of pages which is benign (everything will be written). But if items>=16384, the space reservation won't be enough. Signed-off-by: Adam Borowski Reviewed-by: David Sterba Signed-off-by: David Sterba Signed-off-by: Ben Hutchings --- fs/btrfs/extent-tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 47cdc6f3390b..a4d7dbe2619e 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -4568,7 +4568,7 @@ static void shrink_delalloc(struct btrfs_root *root, u64 to_reclaim, u64 orig, /* Calc the number of the pages we need flush for space reservation */ items = calc_reclaim_items_nr(root, to_reclaim); - to_reclaim = items * EXTENT_SIZE_PER_ITEM; + to_reclaim = (u64)items * EXTENT_SIZE_PER_ITEM; trans = (struct btrfs_trans_handle *)current->journal_info; block_rsv = &root->fs_info->delalloc_block_rsv; From 2f4c30a61b758fd2b94d73d5f56b3581ecaae897 Mon Sep 17 00:00:00 2001 From: Bartlomiej Zolnierkiewicz Date: Mon, 16 May 2016 09:54:47 -0600 Subject: [PATCH 0012/1149] blk-mq: fix undefined behaviour in order_to_size() commit b3a834b1596ac668df206aa2bb1f191c31f5f5e4 upstream. When this_order variable in blk_mq_init_rq_map() becomes zero the code incorrectly decrements the variable and passes the result to order_to_size() helper causing undefined behaviour: UBSAN: Undefined behaviour in block/blk-mq.c:1459:27 shift exponent 4294967295 is too large for 32-bit type 'unsigned int' CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.6.0-rc6-00072-g33656a1 #22 Fix the code by checking this_order variable for not having the zero value first. Reported-by: Meelis Roos Fixes: 320ae51feed5 ("blk-mq: new multi-queue block IO queueing mechanism") Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Jens Axboe Signed-off-by: Ben Hutchings --- block/blk-mq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index c3e461ec40e4..c58fdfdd9ea6 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -1494,7 +1494,7 @@ static struct blk_mq_tags *blk_mq_init_rq_map(struct blk_mq_tag_set *set, int to_do; void *p; - while (left < order_to_size(this_order - 1) && this_order) + while (this_order && left < order_to_size(this_order - 1)) this_order--; do { From f9f913aaf32041ccea347be462145b462c84a45e Mon Sep 17 00:00:00 2001 From: Sven Eckelmann Date: Tue, 16 Feb 2016 10:47:07 +0100 Subject: [PATCH 0013/1149] batman-adv: Fix integer overflow in batadv_iv_ogm_calc_tq commit d285f52cc0f23564fd61976d43fd5b991b4828f6 upstream. The undefined behavior sanatizer detected an signed integer overflow in a setup with near perfect link quality UBSAN: Undefined behaviour in net/batman-adv/bat_iv_ogm.c:1246:25 signed integer overflow: 8713350 * 255 cannot be represented in type 'int' The problems happens because the calculation of mixed unsigned and signed integers resulted in an integer multiplication. batadv_ogm_packet::tq (u8 255) * tq_own (u8 255) * tq_asym_penalty (int 134; max 255) * tq_iface_penalty (int 255; max 255) The tq_iface_penalty, tq_asym_penalty and inv_asym_penalty can just be changed to unsigned int because they are not expected to become negative. Fixes: c039876892e3 ("batman-adv: add WiFi penalty") Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli [bwh: Backported to 4.4: adjust context] Signed-off-by: Ben Hutchings --- net/batman-adv/bat_iv_ogm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c index 912d9c36fb1c..3fb6e9e8df7e 100644 --- a/net/batman-adv/bat_iv_ogm.c +++ b/net/batman-adv/bat_iv_ogm.c @@ -1140,9 +1140,10 @@ static int batadv_iv_ogm_calc_tq(struct batadv_orig_node *orig_node, u8 total_count; u8 orig_eq_count, neigh_rq_count, neigh_rq_inv, tq_own; unsigned int neigh_rq_inv_cube, neigh_rq_max_cube; - int tq_asym_penalty, inv_asym_penalty, if_num, ret = 0; + int if_num, ret = 0; + unsigned int tq_asym_penalty, inv_asym_penalty; unsigned int combined_tq; - int tq_iface_penalty; + unsigned int tq_iface_penalty; /* find corresponding one hop neighbor */ rcu_read_lock(); From f7ef22a4f7e6e81a2aad0698c65227cd1f62ea71 Mon Sep 17 00:00:00 2001 From: Oleg Nesterov Date: Mon, 23 May 2016 16:24:02 -0700 Subject: [PATCH 0014/1149] signal: move the "sig < SIGRTMIN" check into siginmask(sig) commit 5c8ccefdf46c5f87d87b694c7fbc04941c2c99a5 upstream. All the users of siginmask() must ensure that sig < SIGRTMIN. sig_fatal() doesn't and this is wrong: UBSAN: Undefined behaviour in kernel/signal.c:911:6 shift exponent 32 is too large for 32-bit type 'long unsigned int' the patch doesn't add the neccesary check to sig_fatal(), it moves the check into siginmask() and updates other callers. Link: http://lkml.kernel.org/r/20160517195052.GA15187@redhat.com Reported-by: Meelis Roos Signed-off-by: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Ben Hutchings --- include/linux/signal.h | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/include/linux/signal.h b/include/linux/signal.h index d80259afb9e5..d822bd15dddc 100644 --- a/include/linux/signal.h +++ b/include/linux/signal.h @@ -400,7 +400,9 @@ int unhandled_signal(struct task_struct *tsk, int sig); #else #define rt_sigmask(sig) sigmask(sig) #endif -#define siginmask(sig, mask) (rt_sigmask(sig) & (mask)) + +#define siginmask(sig, mask) \ + ((sig) < SIGRTMIN && (rt_sigmask(sig) & (mask))) #define SIG_KERNEL_ONLY_MASK (\ rt_sigmask(SIGKILL) | rt_sigmask(SIGSTOP)) @@ -421,14 +423,10 @@ int unhandled_signal(struct task_struct *tsk, int sig); rt_sigmask(SIGCONT) | rt_sigmask(SIGCHLD) | \ rt_sigmask(SIGWINCH) | rt_sigmask(SIGURG) ) -#define sig_kernel_only(sig) \ - (((sig) < SIGRTMIN) && siginmask(sig, SIG_KERNEL_ONLY_MASK)) -#define sig_kernel_coredump(sig) \ - (((sig) < SIGRTMIN) && siginmask(sig, SIG_KERNEL_COREDUMP_MASK)) -#define sig_kernel_ignore(sig) \ - (((sig) < SIGRTMIN) && siginmask(sig, SIG_KERNEL_IGNORE_MASK)) -#define sig_kernel_stop(sig) \ - (((sig) < SIGRTMIN) && siginmask(sig, SIG_KERNEL_STOP_MASK)) +#define sig_kernel_only(sig) siginmask(sig, SIG_KERNEL_ONLY_MASK) +#define sig_kernel_coredump(sig) siginmask(sig, SIG_KERNEL_COREDUMP_MASK) +#define sig_kernel_ignore(sig) siginmask(sig, SIG_KERNEL_IGNORE_MASK) +#define sig_kernel_stop(sig) siginmask(sig, SIG_KERNEL_STOP_MASK) #define sig_user_defined(t, signr) \ (((t)->sighand->action[(signr)-1].sa.sa_handler != SIG_DFL) && \ From ea33d84a1d11ec16e81df2488fc4a0178140206a Mon Sep 17 00:00:00 2001 From: Seung-Woo Kim Date: Mon, 20 Jun 2016 13:09:45 +0900 Subject: [PATCH 0015/1149] mmc: dw_mmc: remove UBSAN warning in dw_mci_setup_bus() commit 65257a0deed5aee66b4e3708944f0be62a64cabc upstream. This patch removes following UBSAN warnings in dw_mci_setup_bus(). UBSAN: Undefined behaviour in drivers/mmc/host/dw_mmc.c:1102:14 shift exponent 250 is too large for 32-bit type 'unsigned int' Call trace: [] dump_backtrace+0x0/0x380 [] show_stack+0x14/0x20 [] dump_stack+0xe0/0x120 [] ubsan_epilogue+0x18/0x68 [] __ubsan_handle_shift_out_of_bounds+0x18c/0x1bc [] dw_mci_setup_bus+0x3a0/0x438 [...] UBSAN: Undefined behaviour in drivers/mmc/host/dw_mmc.c:1132:27 shift exponent 250 is too large for 32-bit type 'unsigned int' Call trace: [] dump_backtrace+0x0/0x380 [] show_stack+0x14/0x20 [] dump_stack+0xe0/0x120 [] ubsan_epilogue+0x18/0x68 [] __ubsan_handle_shift_out_of_bounds+0x18c/0x1bc [] dw_mci_setup_bus+0x384/0x438 [...] The warnings are caused because of bit shift which is used to filter spamming message for CONFIG_MMC_CLKGATE, but the config is already removed. So this patch just removes the shift. Signed-off-by: Seung-Woo Kim Signed-off-by: Jaehoon Chung Signed-off-by: Ulf Hansson Signed-off-by: Ben Hutchings --- drivers/mmc/host/dw_mmc.c | 14 +++++--------- drivers/mmc/host/dw_mmc.h | 4 ---- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c index fb204ee6ff89..0b38014ad315 100644 --- a/drivers/mmc/host/dw_mmc.c +++ b/drivers/mmc/host/dw_mmc.c @@ -1102,12 +1102,11 @@ static void dw_mci_setup_bus(struct dw_mci_slot *slot, bool force_clkinit) div = (host->bus_hz != clock) ? DIV_ROUND_UP(div, 2) : 0; - if ((clock << div) != slot->__clk_old || force_clkinit) - dev_info(&slot->mmc->class_dev, - "Bus speed (slot %d) = %dHz (slot req %dHz, actual %dHZ div = %d)\n", - slot->id, host->bus_hz, clock, - div ? ((host->bus_hz / div) >> 1) : - host->bus_hz, div); + dev_info(&slot->mmc->class_dev, + "Bus speed (slot %d) = %dHz (slot req %dHz, actual %dHZ div = %d)\n", + slot->id, host->bus_hz, clock, + div ? ((host->bus_hz / div) >> 1) : + host->bus_hz, div); /* disable clock */ mci_writel(host, CLKENA, 0); @@ -1130,9 +1129,6 @@ static void dw_mci_setup_bus(struct dw_mci_slot *slot, bool force_clkinit) /* inform CIU */ mci_send_cmd(slot, sdmmc_cmd_bits, 0); - - /* keep the clock with reflecting clock dividor */ - slot->__clk_old = clock << div; } host->current_speed = clock; diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h index f695b58f0613..18fb8f5aaa34 100644 --- a/drivers/mmc/host/dw_mmc.h +++ b/drivers/mmc/host/dw_mmc.h @@ -242,9 +242,6 @@ extern int dw_mci_resume(struct dw_mci *host); * @queue_node: List node for placing this node in the @queue list of * &struct dw_mci. * @clock: Clock rate configured by set_ios(). Protected by host->lock. - * @__clk_old: The last updated clock with reflecting clock divider. - * Keeping track of this helps us to avoid spamming the console - * with CONFIG_MMC_CLKGATE. * @flags: Random state bits associated with the slot. * @id: Number of this slot. * @sdio_id: Number of this slot in the SDIO interrupt registers. @@ -259,7 +256,6 @@ struct dw_mci_slot { struct list_head queue_node; unsigned int clock; - unsigned int __clk_old; unsigned long flags; #define DW_MMC_CARD_PRESENT 0 From c11d66f2b6484e7c4f18266b24578ae5b1151019 Mon Sep 17 00:00:00 2001 From: Nicolas Iooss Date: Tue, 2 Aug 2016 14:03:10 -0700 Subject: [PATCH 0016/1149] UBSAN: fix typo in format string commit 901d805c33fc4c029fc6b2d94ee5fb7d30278045 upstream. handle_object_size_mismatch() used %pk to format a kernel pointer with pr_err(). This seemed to be a misspelling for %pK, but using this to format a kernel pointer does not make much sence here. Therefore use %p instead, like in handle_missaligned_access(). Link: http://lkml.kernel.org/r/20160730083010.11569-1-nicolas.iooss_linux@m4x.org Signed-off-by: Nicolas Iooss Acked-by: Andrey Ryabinin Cc: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Ben Hutchings --- lib/ubsan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ubsan.c b/lib/ubsan.c index 8799ae5e2e42..fb0409df1bcf 100644 --- a/lib/ubsan.c +++ b/lib/ubsan.c @@ -308,7 +308,7 @@ static void handle_object_size_mismatch(struct type_mismatch_data *data, return; ubsan_prologue(&data->location, &flags); - pr_err("%s address %pk with insufficient space\n", + pr_err("%s address %p with insufficient space\n", type_check_kinds[data->type_check_kind], (void *) ptr); pr_err("for an object of type %s\n", data->type->type_name); From 6972b611814111903158b9c0d8caa67aa6db34ba Mon Sep 17 00:00:00 2001 From: Vegard Nossum Date: Fri, 12 Aug 2016 20:10:44 +0200 Subject: [PATCH 0017/1149] rhashtable: fix shift by 64 when shrinking commit 12311959ecf8a3a64676c01b62ce67a0c5f0fd49 upstream. I got this: ================================================================================ UBSAN: Undefined behaviour in ./include/linux/log2.h:63:13 shift exponent 64 is too large for 64-bit type 'long unsigned int' CPU: 1 PID: 721 Comm: kworker/1:1 Not tainted 4.8.0-rc1+ #87 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org 04/01/2014 Workqueue: events rht_deferred_worker 0000000000000000 ffff88011661f8d8 ffffffff82344f50 0000000041b58ab3 ffffffff84f98000 ffffffff82344ea4 ffff88011661f900 ffff88011661f8b0 0000000000000001 ffff88011661f6b8 dffffc0000000000 ffffffff867f7640 Call Trace: [] dump_stack+0xac/0xfc [] ? _atomic_dec_and_lock+0xc4/0xc4 [] ubsan_epilogue+0xd/0x8a [] __ubsan_handle_shift_out_of_bounds+0x255/0x29a [] ? __ubsan_handle_out_of_bounds+0x180/0x180 [] ? nl80211_req_set_reg+0x256/0x2f0 [] ? print_context_stack+0x8a/0x160 [] ? amd_pmu_reset+0x341/0x380 [] rht_deferred_worker+0x1618/0x1790 [] ? rht_deferred_worker+0x1618/0x1790 [] ? rhashtable_jhash2+0x370/0x370 [] ? process_one_work+0x6fd/0x1970 [] process_one_work+0x79f/0x1970 [] ? process_one_work+0x6fd/0x1970 [] ? try_to_grab_pending+0x4c0/0x4c0 [] ? worker_thread+0x1c4/0x1340 [] worker_thread+0x55f/0x1340 [] ? __schedule+0x4df/0x1d40 [] ? process_one_work+0x1970/0x1970 [] ? process_one_work+0x1970/0x1970 [] kthread+0x237/0x390 [] ? __kthread_parkme+0x280/0x280 [] ? _raw_spin_unlock_irq+0x33/0x50 [] ret_from_fork+0x1f/0x40 [] ? __kthread_parkme+0x280/0x280 ================================================================================ roundup_pow_of_two() is undefined when called with an argument of 0, so let's avoid the call and just fall back to ht->p.min_size (which should never be smaller than HASH_MIN_SIZE). Cc: Herbert Xu Signed-off-by: Vegard Nossum Acked-by: Herbert Xu Signed-off-by: David S. Miller Signed-off-by: Ben Hutchings --- lib/rhashtable.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/rhashtable.c b/lib/rhashtable.c index 51282f579760..d7f5b4d035ff 100644 --- a/lib/rhashtable.c +++ b/lib/rhashtable.c @@ -324,12 +324,14 @@ static int rhashtable_expand(struct rhashtable *ht) static int rhashtable_shrink(struct rhashtable *ht) { struct bucket_table *new_tbl, *old_tbl = rht_dereference(ht->tbl, ht); - unsigned int size; + unsigned int nelems = atomic_read(&ht->nelems); + unsigned int size = 0; int err; ASSERT_RHT_MUTEX(ht); - size = roundup_pow_of_two(atomic_read(&ht->nelems) * 3 / 2); + if (nelems) + size = roundup_pow_of_two(nelems * 3 / 2); if (size < ht->p.min_size) size = ht->p.min_size; From 95de36adcff6e21a788a2da4dc21b5572e25fd7e Mon Sep 17 00:00:00 2001 From: Vegard Nossum Date: Sat, 13 Aug 2016 01:37:04 +0200 Subject: [PATCH 0018/1149] time: Avoid undefined behaviour in ktime_add_safe() commit 979515c5645830465739254abc1b1648ada41518 upstream. I ran into this: ================================================================================ UBSAN: Undefined behaviour in kernel/time/hrtimer.c:310:16 signed integer overflow: 9223372036854775807 + 50000 cannot be represented in type 'long long int' CPU: 2 PID: 4798 Comm: trinity-c2 Not tainted 4.8.0-rc1+ #91 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org 04/01/2014 0000000000000000 ffff88010ce6fb88 ffffffff82344740 0000000041b58ab3 ffffffff84f97a20 ffffffff82344694 ffff88010ce6fbb0 ffff88010ce6fb60 000000000000c350 ffff88010ce6f968 dffffc0000000000 ffffffff857bc320 Call Trace: [] dump_stack+0xac/0xfc [] ? _atomic_dec_and_lock+0xc4/0xc4 [] ubsan_epilogue+0xd/0x8a [] handle_overflow+0x202/0x23d [] ? val_to_string.constprop.6+0x11e/0x11e [] ? timerqueue_add+0x151/0x410 [] ? hrtimer_start_range_ns+0x3b8/0x1380 [] ? memset+0x31/0x40 [] __ubsan_handle_add_overflow+0xe/0x10 [] hrtimer_nanosleep+0x5d9/0x790 [] ? hrtimer_init_sleeper+0x80/0x80 [] ? __might_sleep+0x5b/0x260 [] common_nsleep+0x20/0x30 [] SyS_clock_nanosleep+0x197/0x210 [] ? SyS_clock_getres+0x150/0x150 [] ? __this_cpu_preempt_check+0x13/0x20 [] ? __context_tracking_exit.part.3+0x30/0x1b0 [] ? SyS_clock_getres+0x150/0x150 [] do_syscall_64+0x1b3/0x4b0 [] entry_SYSCALL64_slow_path+0x25/0x25 ================================================================================ Add a new ktime_add_unsafe() helper which doesn't check for overflow, but doesn't throw a UBSAN warning when it does overflow either. Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Richard Cochran Cc: Prarit Bhargava Signed-off-by: Vegard Nossum Signed-off-by: John Stultz Signed-off-by: Ben Hutchings --- include/linux/ktime.h | 7 +++++++ kernel/time/hrtimer.c | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/include/linux/ktime.h b/include/linux/ktime.h index 2b6a204bd8d4..3ffc69ebe967 100644 --- a/include/linux/ktime.h +++ b/include/linux/ktime.h @@ -63,6 +63,13 @@ static inline ktime_t ktime_set(const s64 secs, const unsigned long nsecs) #define ktime_add(lhs, rhs) \ ({ (ktime_t){ .tv64 = (lhs).tv64 + (rhs).tv64 }; }) +/* + * Same as ktime_add(), but avoids undefined behaviour on overflow; however, + * this means that you must check the result for overflow yourself. + */ +#define ktime_add_unsafe(lhs, rhs) \ + ({ (ktime_t){ .tv64 = (u64) (lhs).tv64 + (rhs).tv64 }; }) + /* * Add a ktime_t variable and a scalar nanosecond value. * res = kt + nsval: diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c index 17f7bcff1e02..1dc94768b5a3 100644 --- a/kernel/time/hrtimer.c +++ b/kernel/time/hrtimer.c @@ -312,7 +312,7 @@ EXPORT_SYMBOL_GPL(__ktime_divns); */ ktime_t ktime_add_safe(const ktime_t lhs, const ktime_t rhs) { - ktime_t res = ktime_add(lhs, rhs); + ktime_t res = ktime_add_unsafe(lhs, rhs); /* * We use KTIME_SEC_MAX here, the maximum timeout which we can From 438b51e46d3df587f360b448d2b5f0c4d2afd7e4 Mon Sep 17 00:00:00 2001 From: Seung-Woo Kim Date: Tue, 16 Aug 2016 23:22:01 +0900 Subject: [PATCH 0019/1149] pwm: samsung: Fix to use lowest div for large enough modulation bits commit 04d68dea26b0a409d44e87ea573a131b6dc67e78 upstream. From pwm_samsung_calc_tin(), there is routine to find the lowest divider possible to generate lower frequency than requested one. But it is always possible to generate requested frequency with large enough modulation bits except on s3c24xx, so this patch fixes to use lowest div for the case. This patch removes following UBSAN warning: UBSAN: Undefined behaviour in drivers/pwm/pwm-samsung.c:197:13 shift exponent 32 is too large for 32-bit type 'long unsigned int' [...] [] (ubsan_epilogue) from [] (__ubsan_handle_shift_out_of_bounds+0xd8/0x120) [] (__ubsan_handle_shift_out_of_bounds) from [] (pwm_samsung_config+0x508/0x6a4) [] (pwm_samsung_config) from [] (pwm_apply_state+0x174/0x40c) [] (pwm_apply_state) from [] (pwm_fan_probe+0xc8/0x488) [] (pwm_fan_probe) from [] (platform_drv_probe+0x70/0x150) [...] Cc: Tomasz Figa Signed-off-by: Seung-Woo Kim Reviewed-by: Krzysztof Kozlowski Signed-off-by: Thierry Reding Signed-off-by: Ben Hutchings --- drivers/pwm/pwm-samsung.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/pwm/pwm-samsung.c b/drivers/pwm/pwm-samsung.c index ada2d326dc3e..f113cda47032 100644 --- a/drivers/pwm/pwm-samsung.c +++ b/drivers/pwm/pwm-samsung.c @@ -193,9 +193,18 @@ static unsigned long pwm_samsung_calc_tin(struct samsung_pwm_chip *chip, * divider settings and choose the lowest divisor that can generate * frequencies lower than requested. */ - for (div = variant->div_base; div < 4; ++div) - if ((rate >> (variant->bits + div)) < freq) - break; + if (variant->bits < 32) { + /* Only for s3c24xx */ + for (div = variant->div_base; div < 4; ++div) + if ((rate >> (variant->bits + div)) < freq) + break; + } else { + /* + * Other variants have enough counter bits to generate any + * requested rate, so no need to check higher divisors. + */ + div = variant->div_base; + } pwm_samsung_set_divisor(chip, chan, BIT(div)); From d1ad3103a161a71f9d949d14fe6e0ff414cd5c1c Mon Sep 17 00:00:00 2001 From: Xie XiuQi Date: Tue, 6 Sep 2016 16:55:38 +0800 Subject: [PATCH 0020/1149] drm: fix signed integer overflow commit ae0119f5f73b1e9cf7177fbbeea68d74c5751def upstream. Use 1UL for unsigned long, or we'll meet a overflow issue with UBSAN. [ 15.589489] UBSAN: Undefined behaviour in drivers/gpu/drm/drm_hashtab.c:145:35 [ 15.589500] signed integer overflow: [ 15.589999] -2147483648 - 1 cannot be represented in type 'int' [ 15.590434] CPU: 2 PID: 294 Comm: plymouthd Not tainted 3.10.0-327.28.3.el7.x86_64 #1 [ 15.590653] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 01/07/2011 [ 15.591001] 1ffff1000670fe83 000000000d6b385e ffff88003387f3e0 ffffffff81ee3140 [ 15.591028] ffff88003387f3f8 ffffffff81ee31fd ffffffffa032f460 ffff88003387f560 [ 15.591044] ffffffff81ee46e2 0000002d00000009 0000000000000001 0000000041b58ab3 [ 15.591059] Call Trace: [ 15.591078] [] dump_stack+0x1e/0x20 [ 15.591093] [] ubsan_epilogue+0x12/0x55 [ 15.591109] [] handle_overflow+0x1ba/0x215 [ 15.591126] [] ? __ubsan_handle_negate_overflow+0x162/0x162 [ 15.591146] [] ? print_context_stack+0x9c/0x160 [ 15.591163] [] ? dump_trace+0x252/0x750 [ 15.591181] [] ? __list_add+0x93/0x160 [ 15.591197] [] __ubsan_handle_sub_overflow+0x2a/0x31 [ 15.591261] [] drm_ht_just_insert_please+0x1e0/0x200 [drm] [ 15.591290] [] ttm_base_object_init+0x10a/0x270 [ttm] [ 15.591316] [] ttm_vt_lock+0x28c/0x3a0 [ttm] [ 15.591343] [] ? ttm_write_lock+0x180/0x180 [ttm] [ 15.591362] [] ? kasan_unpoison_shadow+0x36/0x50 [ 15.591379] [] ? kasan_unpoison_shadow+0x36/0x50 [ 15.591396] [] ? kasan_unpoison_shadow+0x36/0x50 [ 15.591413] [] ? kasan_unpoison_shadow+0x36/0x50 [ 15.591442] [] vmw_master_set+0x121/0x470 [vmwgfx] [ 15.591459] [] ? __init_waitqueue_head+0x45/0x70 [ 15.591487] [] ? vmw_master_drop+0x310/0x310 [vmwgfx] [ 15.591535] [] drm_open+0x92a/0xc00 [drm] [ 15.591563] [] ? vmw_driver_open+0x170/0x170 [vmwgfx] [ 15.591610] [] ? drm_poll+0xe0/0xe0 [drm] [ 15.591661] [] drm_stub_open+0x224/0x330 [drm] [ 15.591711] [] ? drm_minor_acquire+0x240/0x240 [drm] [ 15.591727] [] chrdev_open+0x1fa/0x3f0 [ 15.591742] [] ? cdev_put+0x50/0x50 [ 15.591761] [] ? __fsnotify_parent+0x53/0x210 [ 15.591778] [] do_dentry_open+0x351/0x670 [ 15.591792] [] ? cdev_put+0x50/0x50 [ 15.591807] [] vfs_open+0xa2/0x170 [ 15.591824] [] do_last+0xccf/0x2c80 [ 15.591842] [] ? filename_create+0x320/0x320 [ 15.591858] [] ? path_init+0x1b9/0xa90 [ 15.591875] [] ? mountpoint_last+0x9a0/0x9a0 [ 15.591894] [] ? selinux_file_alloc_security+0xcf/0x130 [ 15.591911] [] path_openat+0x1e7/0xcc0 [ 15.591927] [] ? dump_trace+0x252/0x750 [ 15.591943] [] ? do_last+0x2c80/0x2c80 [ 15.591959] [] ? __list_add+0x93/0x160 [ 15.591974] [] ? save_stack_trace+0x7d/0xb0 [ 15.591989] [] do_filp_open+0xa4/0x160 [ 15.592004] [] ? user_path_mountpoint_at+0x50/0x50 [ 15.592022] [] ? __alloc_fd+0x175/0x300 [ 15.592039] [] do_sys_open+0x1b7/0x3f0 [ 15.592054] [] ? filp_open+0x80/0x80 [ 15.592070] [] SyS_open+0x32/0x40 [ 15.592088] [] system_call_fastpath+0x16/0x1b Signed-off-by: Xie XiuQi [seanpaul tweaked subject to remove "gpu/"] Signed-off-by: Sean Paul Link: http://patchwork.freedesktop.org/patch/msgid/1473152138-25335-1-git-send-email-xiexiuqi@huawei.com Signed-off-by: Ben Hutchings --- drivers/gpu/drm/drm_hashtab.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/drm_hashtab.c b/drivers/gpu/drm/drm_hashtab.c index c3b80fd65d62..fbbd9f0c2eef 100644 --- a/drivers/gpu/drm/drm_hashtab.c +++ b/drivers/gpu/drm/drm_hashtab.c @@ -142,7 +142,7 @@ int drm_ht_just_insert_please(struct drm_open_hash *ht, struct drm_hash_item *it unsigned long add) { int ret; - unsigned long mask = (1 << bits) - 1; + unsigned long mask = (1UL << bits) - 1; unsigned long first, unshifted_key; unshifted_key = hash_long(seed, bits); From 1e91612d65c67eec6aebb98d3745c069ba1f4a7b Mon Sep 17 00:00:00 2001 From: Xie XiuQi Date: Wed, 14 Sep 2016 07:41:16 +1000 Subject: [PATCH 0021/1149] xfs: fix signed integer overflow commit 79c350e45ebc5a718cc2d7114b45ad560069423d upstream. Use 1U for unsigned int to avoid a overflow warning from UBSAN. [ 31.910858] UBSAN: Undefined behaviour in fs/xfs/xfs_buf_item.c:889:25 [ 31.911252] signed integer overflow: [ 31.911478] -2147483648 - 1 cannot be represented in type 'int' [ 31.911846] CPU: 1 PID: 1011 Comm: tuned Tainted: G B ---- ------- 3.10.0-327.28.3.el7.x86_64 #1 [ 31.911857] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 01/07/2011 [ 31.911866] 1ffff1004069cd3b 0000000076bec3fd ffff8802034e69a0 ffffffff81ee3140 [ 31.911883] ffff8802034e69b8 ffffffff81ee31fd ffffffffa0ad79e0 ffff8802034e6b20 [ 31.911898] ffffffff81ee46e2 0000002d515470c0 0000000000000001 0000000041b58ab3 [ 31.911913] Call Trace: [ 31.911932] [] dump_stack+0x1e/0x20 [ 31.911947] [] ubsan_epilogue+0x12/0x55 [ 31.911964] [] handle_overflow+0x1ba/0x215 [ 31.912083] [] __ubsan_handle_sub_overflow+0x2a/0x31 [ 31.912204] [] xfs_buf_item_log+0x34b/0x3f0 [xfs] [ 31.912314] [] xfs_trans_log_buf+0x120/0x260 [xfs] [ 31.912402] [] xfs_btree_log_recs+0x80/0xc0 [xfs] [ 31.912490] [] xfs_btree_delrec+0x11a8/0x2d50 [xfs] [ 31.913589] [] xfs_btree_delete+0xc9/0x260 [xfs] [ 31.913762] [] xfs_free_ag_extent+0x63f/0xe20 [xfs] [ 31.914339] [] xfs_free_extent+0x2af/0x3e0 [xfs] [ 31.914641] [] xfs_bmap_finish+0x32b/0x4b0 [xfs] [ 31.914841] [] xfs_itruncate_extents+0x3b7/0x740 [xfs] [ 31.915216] [] xfs_setattr_size+0x60a/0x860 [xfs] [ 31.915471] [] xfs_vn_setattr+0x9a/0xe0 [xfs] [ 31.915590] [] notify_change+0x5c8/0x8a0 [ 31.915607] [] do_truncate+0x122/0x1d0 [ 31.915640] [] do_last+0x15de/0x2c80 [ 31.915707] [] path_openat+0x1e7/0xcc0 [ 31.915802] [] do_filp_open+0xa4/0x160 [ 31.915848] [] do_sys_open+0x1b7/0x3f0 [ 31.915879] [] SyS_open+0x32/0x40 [ 31.915897] [] system_call_fastpath+0x16/0x1b [ 240.086809] UBSAN: Undefined behaviour in fs/xfs/xfs_buf_item.c:866:34 [ 240.086820] signed integer overflow: [ 240.086830] -2147483648 - 1 cannot be represented in type 'int' [ 240.086846] CPU: 1 PID: 12969 Comm: rm Tainted: G B ---- ------- 3.10.0-327.28.3.el7.x86_64 #1 [ 240.086857] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 01/07/2011 [ 240.086868] 1ffff10040491def 00000000e2ea59c1 ffff88020248ef40 ffffffff81ee3140 [ 240.086885] ffff88020248ef58 ffffffff81ee31fd ffffffffa0ad79e0 ffff88020248f0c0 [ 240.086901] ffffffff81ee46e2 0000002d02488000 0000000000000001 0000000041b58ab3 [ 240.086915] Call Trace: [ 240.086938] [] dump_stack+0x1e/0x20 [ 240.086953] [] ubsan_epilogue+0x12/0x55 [ 240.086971] [] handle_overflow+0x1ba/0x215 ... Signed-off-by: Xie XiuQi Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner Signed-off-by: Ben Hutchings --- fs/xfs/xfs_buf_item.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index 7e986da34f6c..04b1d96e49c1 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -865,7 +865,7 @@ xfs_buf_item_log_segment( */ if (bit) { end_bit = MIN(bit + bits_to_set, (uint)NBWORD); - mask = ((1 << (end_bit - bit)) - 1) << bit; + mask = ((1U << (end_bit - bit)) - 1) << bit; *wordp |= mask; wordp++; bits_set = end_bit - bit; @@ -888,7 +888,7 @@ xfs_buf_item_log_segment( */ end_bit = bits_to_set - bits_set; if (end_bit) { - mask = (1 << end_bit) - 1; + mask = (1U << end_bit) - 1; *wordp |= mask; } } From d5a9624ada11aade27c75018a198c81df8b337d9 Mon Sep 17 00:00:00 2001 From: Eric Dumazet Date: Tue, 20 Sep 2016 18:06:17 -0700 Subject: [PATCH 0022/1149] net: get rid of an signed integer overflow in ip_idents_reserve() commit adb03115f4590baa280ddc440a8eff08a6be0cb7 upstream. Jiri Pirko reported an UBSAN warning happening in ip_idents_reserve() [] UBSAN: Undefined behaviour in ./arch/x86/include/asm/atomic.h:156:11 [] signed integer overflow: [] -2117905507 + -695755206 cannot be represented in type 'int' Since we do not have uatomic_add_return() yet, use atomic_cmpxchg() so that the arithmetics can be done using unsigned int. Fixes: 04ca6973f7c1 ("ip: make IP identifiers less predictable") Signed-off-by: Eric Dumazet Reported-by: Jiri Pirko Signed-off-by: David S. Miller Signed-off-by: Ben Hutchings --- net/ipv4/route.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/net/ipv4/route.c b/net/ipv4/route.c index b050cf980a57..a0270af75fa5 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c @@ -476,12 +476,18 @@ u32 ip_idents_reserve(u32 hash, int segs) atomic_t *p_id = ip_idents + hash % IP_IDENTS_SZ; u32 old = ACCESS_ONCE(*p_tstamp); u32 now = (u32)jiffies; - u32 delta = 0; + u32 new, delta = 0; if (old != now && cmpxchg(p_tstamp, old, now) == old) delta = prandom_u32_max(now - old); - return atomic_add_return(segs + delta, p_id) - segs; + /* Do not use atomic_add_return() as it makes UBSAN unhappy */ + do { + old = (u32)atomic_read(p_id); + new = old + delta + segs; + } while (atomic_cmpxchg(p_id, old, new) != old); + + return new - segs; } EXPORT_SYMBOL(ip_idents_reserve); From 73866b1b6b488570984a019568a8cc13d783c36f Mon Sep 17 00:00:00 2001 From: David Decotigny Date: Wed, 28 Sep 2016 11:00:04 -0700 Subject: [PATCH 0023/1149] mlx4: remove unused fields commit 5038056e6bd45788235e97e3bcfc43f96c52ca84 upstream. This also can address following UBSAN warnings: [ 36.640343] ================================================================================ [ 36.648772] UBSAN: Undefined behaviour in drivers/net/ethernet/mellanox/mlx4/fw.c:857:26 [ 36.656853] shift exponent 64 is too large for 32-bit type 'int' [ 36.663348] ================================================================================ [ 36.671783] ================================================================================ [ 36.680213] UBSAN: Undefined behaviour in drivers/net/ethernet/mellanox/mlx4/fw.c:861:27 [ 36.688297] shift exponent 35 is too large for 32-bit type 'int' [ 36.694702] ================================================================================ Tested: reboot with UBSAN, no warning. Signed-off-by: David Decotigny Acked-by: Eric Dumazet Reviewed-by: Tariq Toukan Signed-off-by: David S. Miller Signed-off-by: Ben Hutchings --- drivers/net/ethernet/mellanox/mlx4/fw.c | 4 ---- drivers/net/ethernet/mellanox/mlx4/fw.h | 2 -- 2 files changed, 6 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx4/fw.c b/drivers/net/ethernet/mellanox/mlx4/fw.c index 90db94e83fde..ebff502db8ff 100644 --- a/drivers/net/ethernet/mellanox/mlx4/fw.c +++ b/drivers/net/ethernet/mellanox/mlx4/fw.c @@ -760,12 +760,8 @@ int mlx4_QUERY_DEV_CAP(struct mlx4_dev *dev, struct mlx4_dev_cap *dev_cap) dev_cap->max_eqs = 1 << (field & 0xf); MLX4_GET(field, outbox, QUERY_DEV_CAP_RSVD_MTT_OFFSET); dev_cap->reserved_mtts = 1 << (field >> 4); - MLX4_GET(field, outbox, QUERY_DEV_CAP_MAX_MRW_SZ_OFFSET); - dev_cap->max_mrw_sz = 1 << field; MLX4_GET(field, outbox, QUERY_DEV_CAP_RSVD_MRW_OFFSET); dev_cap->reserved_mrws = 1 << (field & 0xf); - MLX4_GET(field, outbox, QUERY_DEV_CAP_MAX_MTT_SEG_OFFSET); - dev_cap->max_mtt_seg = 1 << (field & 0x3f); MLX4_GET(size, outbox, QUERY_DEV_CAP_NUM_SYS_EQ_OFFSET); dev_cap->num_sys_eqs = size & 0xfff; MLX4_GET(field, outbox, QUERY_DEV_CAP_MAX_REQ_QP_OFFSET); diff --git a/drivers/net/ethernet/mellanox/mlx4/fw.h b/drivers/net/ethernet/mellanox/mlx4/fw.h index 08de5555c2f4..711af4e506f3 100644 --- a/drivers/net/ethernet/mellanox/mlx4/fw.h +++ b/drivers/net/ethernet/mellanox/mlx4/fw.h @@ -78,9 +78,7 @@ struct mlx4_dev_cap { int max_eqs; int num_sys_eqs; int reserved_mtts; - int max_mrw_sz; int reserved_mrws; - int max_mtt_seg; int max_requester_per_qp; int max_responder_per_qp; int max_rdma_global; From 731bda7e106fd460702fa9836dae79579b74dd48 Mon Sep 17 00:00:00 2001 From: Daniel Cashman Date: Thu, 14 Jan 2016 15:19:53 -0800 Subject: [PATCH 0024/1149] mm: mmap: add new /proc tunable for mmap_base ASLR commit d07e22597d1d355829b7b18ac19afa912cf758d1 upstream. Address Space Layout Randomization (ASLR) provides a barrier to exploitation of user-space processes in the presence of security vulnerabilities by making it more difficult to find desired code/data which could help an attack. This is done by adding a random offset to the location of regions in the process address space, with a greater range of potential offset values corresponding to better protection/a larger search-space for brute force, but also to greater potential for fragmentation. The offset added to the mmap_base address, which provides the basis for the majority of the mappings for a process, is set once on process exec in arch_pick_mmap_layout() and is done via hard-coded per-arch values, which reflect, hopefully, the best compromise for all systems. The trade-off between increased entropy in the offset value generation and the corresponding increased variability in address space fragmentation is not absolute, however, and some platforms may tolerate higher amounts of entropy. This patch introduces both new Kconfig values and a sysctl interface which may be used to change the amount of entropy used for offset generation on a system. The direct motivation for this change was in response to the libstagefright vulnerabilities that affected Android, specifically to information provided by Google's project zero at: http://googleprojectzero.blogspot.com/2015/09/stagefrightened.html The attack presented therein, by Google's project zero, specifically targeted the limited randomness used to generate the offset added to the mmap_base address in order to craft a brute-force-based attack. Concretely, the attack was against the mediaserver process, which was limited to respawning every 5 seconds, on an arm device. The hard-coded 8 bits used resulted in an average expected success rate of defeating the mmap ASLR after just over 10 minutes (128 tries at 5 seconds a piece). With this patch, and an accompanying increase in the entropy value to 16 bits, the same attack would take an average expected time of over 45 hours (32768 tries), which makes it both less feasible and more likely to be noticed. The introduced Kconfig and sysctl options are limited by per-arch minimum and maximum values, the minimum of which was chosen to match the current hard-coded value and the maximum of which was chosen so as to give the greatest flexibility without generating an invalid mmap_base address, generally a 3-4 bits less than the number of bits in the user-space accessible virtual address space. When decided whether or not to change the default value, a system developer should consider that mmap_base address could be placed anywhere up to 2^(value) bits away from the non-randomized location, which would introduce variable-sized areas above and below the mmap_base address such that the maximum vm_area_struct size may be reduced, preventing very large allocations. This patch (of 4): ASLR only uses as few as 8 bits to generate the random offset for the mmap base address on 32 bit architectures. This value was chosen to prevent a poorly chosen value from dividing the address space in such a way as to prevent large allocations. This may not be an issue on all platforms. Allow the specification of a minimum number of bits so that platforms desiring greater ASLR protection may determine where to place the trade-off. Signed-off-by: Daniel Cashman Cc: Russell King Acked-by: Kees Cook Cc: Ingo Molnar Cc: Jonathan Corbet Cc: Don Zickus Cc: Eric W. Biederman Cc: Heinrich Schuchardt Cc: Josh Poimboeuf Cc: Kirill A. Shutemov Cc: Naoya Horiguchi Cc: Andrea Arcangeli Cc: Mel Gorman Cc: Thomas Gleixner Cc: David Rientjes Cc: Mark Salyzyn Cc: Jeff Vander Stoep Cc: Nick Kralevich Cc: Catalin Marinas Cc: Will Deacon Cc: "H. Peter Anvin" Cc: Hector Marco-Gisbert Cc: Borislav Petkov Cc: Ralf Baechle Cc: Heiko Carstens Cc: Martin Schwidefsky Cc: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Ben Hutchings --- Documentation/sysctl/vm.txt | 29 ++++++++++++++++ arch/Kconfig | 68 +++++++++++++++++++++++++++++++++++++ include/linux/mm.h | 11 ++++++ kernel/sysctl.c | 22 ++++++++++++ mm/mmap.c | 12 +++++++ 5 files changed, 142 insertions(+) diff --git a/Documentation/sysctl/vm.txt b/Documentation/sysctl/vm.txt index f72370b440b1..ee763f3d3b52 100644 --- a/Documentation/sysctl/vm.txt +++ b/Documentation/sysctl/vm.txt @@ -42,6 +42,8 @@ Currently, these files are in /proc/sys/vm: - min_slab_ratio - min_unmapped_ratio - mmap_min_addr +- mmap_rnd_bits +- mmap_rnd_compat_bits - nr_hugepages - nr_overcommit_hugepages - nr_trim_pages (only if CONFIG_MMU=n) @@ -485,6 +487,33 @@ against future potential kernel bugs. ============================================================== +mmap_rnd_bits: + +This value can be used to select the number of bits to use to +determine the random offset to the base address of vma regions +resulting from mmap allocations on architectures which support +tuning address space randomization. This value will be bounded +by the architecture's minimum and maximum supported values. + +This value can be changed after boot using the +/proc/sys/vm/mmap_rnd_bits tunable + +============================================================== + +mmap_rnd_compat_bits: + +This value can be used to select the number of bits to use to +determine the random offset to the base address of vma regions +resulting from mmap allocations for applications run in +compatibility mode on architectures which support tuning address +space randomization. This value will be bounded by the +architecture's minimum and maximum supported values. + +This value can be changed after boot using the +/proc/sys/vm/mmap_rnd_compat_bits tunable + +============================================================== + nr_hugepages Change the minimum size of the hugepage pool. diff --git a/arch/Kconfig b/arch/Kconfig index 4e949e58b192..ba1b626bca00 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -511,6 +511,74 @@ config ARCH_HAS_ELF_RANDOMIZE - arch_mmap_rnd() - arch_randomize_brk() +config HAVE_ARCH_MMAP_RND_BITS + bool + help + An arch should select this symbol if it supports setting a variable + number of bits for use in establishing the base address for mmap + allocations, has MMU enabled and provides values for both: + - ARCH_MMAP_RND_BITS_MIN + - ARCH_MMAP_RND_BITS_MAX + +config ARCH_MMAP_RND_BITS_MIN + int + +config ARCH_MMAP_RND_BITS_MAX + int + +config ARCH_MMAP_RND_BITS_DEFAULT + int + +config ARCH_MMAP_RND_BITS + int "Number of bits to use for ASLR of mmap base address" if EXPERT + range ARCH_MMAP_RND_BITS_MIN ARCH_MMAP_RND_BITS_MAX + default ARCH_MMAP_RND_BITS_DEFAULT if ARCH_MMAP_RND_BITS_DEFAULT + default ARCH_MMAP_RND_BITS_MIN + depends on HAVE_ARCH_MMAP_RND_BITS + help + This value can be used to select the number of bits to use to + determine the random offset to the base address of vma regions + resulting from mmap allocations. This value will be bounded + by the architecture's minimum and maximum supported values. + + This value can be changed after boot using the + /proc/sys/vm/mmap_rnd_bits tunable + +config HAVE_ARCH_MMAP_RND_COMPAT_BITS + bool + help + An arch should select this symbol if it supports running applications + in compatibility mode, supports setting a variable number of bits for + use in establishing the base address for mmap allocations, has MMU + enabled and provides values for both: + - ARCH_MMAP_RND_COMPAT_BITS_MIN + - ARCH_MMAP_RND_COMPAT_BITS_MAX + +config ARCH_MMAP_RND_COMPAT_BITS_MIN + int + +config ARCH_MMAP_RND_COMPAT_BITS_MAX + int + +config ARCH_MMAP_RND_COMPAT_BITS_DEFAULT + int + +config ARCH_MMAP_RND_COMPAT_BITS + int "Number of bits to use for ASLR of mmap base address for compatible applications" if EXPERT + range ARCH_MMAP_RND_COMPAT_BITS_MIN ARCH_MMAP_RND_COMPAT_BITS_MAX + default ARCH_MMAP_RND_COMPAT_BITS_DEFAULT if ARCH_MMAP_RND_COMPAT_BITS_DEFAULT + default ARCH_MMAP_RND_COMPAT_BITS_MIN + depends on HAVE_ARCH_MMAP_RND_COMPAT_BITS + help + This value can be used to select the number of bits to use to + determine the random offset to the base address of vma regions + resulting from mmap allocations for compatible applications This + value will be bounded by the architecture's minimum and maximum + supported values. + + This value can be changed after boot using the + /proc/sys/vm/mmap_rnd_compat_bits tunable + config HAVE_COPY_THREAD_TLS bool help diff --git a/include/linux/mm.h b/include/linux/mm.h index f0ffa01c90d9..ee18791531e4 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -51,6 +51,17 @@ extern int sysctl_legacy_va_layout; #define sysctl_legacy_va_layout 0 #endif +#ifdef CONFIG_HAVE_ARCH_MMAP_RND_BITS +extern const int mmap_rnd_bits_min; +extern const int mmap_rnd_bits_max; +extern int mmap_rnd_bits __read_mostly; +#endif +#ifdef CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS +extern const int mmap_rnd_compat_bits_min; +extern const int mmap_rnd_compat_bits_max; +extern int mmap_rnd_compat_bits __read_mostly; +#endif + #include #include #include diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 999e025bf68e..9bc9f56b8b3d 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -1568,6 +1568,28 @@ static struct ctl_table vm_table[] = { .mode = 0644, .proc_handler = proc_doulongvec_minmax, }, +#ifdef CONFIG_HAVE_ARCH_MMAP_RND_BITS + { + .procname = "mmap_rnd_bits", + .data = &mmap_rnd_bits, + .maxlen = sizeof(mmap_rnd_bits), + .mode = 0600, + .proc_handler = proc_dointvec_minmax, + .extra1 = (void *)&mmap_rnd_bits_min, + .extra2 = (void *)&mmap_rnd_bits_max, + }, +#endif +#ifdef CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS + { + .procname = "mmap_rnd_compat_bits", + .data = &mmap_rnd_compat_bits, + .maxlen = sizeof(mmap_rnd_compat_bits), + .mode = 0600, + .proc_handler = proc_dointvec_minmax, + .extra1 = (void *)&mmap_rnd_compat_bits_min, + .extra2 = (void *)&mmap_rnd_compat_bits_max, + }, +#endif { } }; diff --git a/mm/mmap.c b/mm/mmap.c index 455772a05e54..d99cef70ad18 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -58,6 +58,18 @@ #define arch_rebalance_pgtables(addr, len) (addr) #endif +#ifdef CONFIG_HAVE_ARCH_MMAP_RND_BITS +const int mmap_rnd_bits_min = CONFIG_ARCH_MMAP_RND_BITS_MIN; +const int mmap_rnd_bits_max = CONFIG_ARCH_MMAP_RND_BITS_MAX; +int mmap_rnd_bits __read_mostly = CONFIG_ARCH_MMAP_RND_BITS; +#endif +#ifdef CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS +const int mmap_rnd_compat_bits_min = CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN; +const int mmap_rnd_compat_bits_max = CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX; +int mmap_rnd_compat_bits __read_mostly = CONFIG_ARCH_MMAP_RND_COMPAT_BITS; +#endif + + static void unmap_region(struct mm_struct *mm, struct vm_area_struct *vma, struct vm_area_struct *prev, unsigned long start, unsigned long end); From 9bb16a0d15d1797b2435a1e905114c75912b69fa Mon Sep 17 00:00:00 2001 From: Daniel Cashman Date: Thu, 14 Jan 2016 15:19:57 -0800 Subject: [PATCH 0025/1149] arm: mm: support ARCH_MMAP_RND_BITS commit e0c25d958f78acfd5c97df5776eeba3e0684101b upstream. arm: arch_mmap_rnd() uses a hard-code value of 8 to generate the random offset for the mmap base address. This value represents a compromise between increased ASLR effectiveness and avoiding address-space fragmentation. Replace it with a Kconfig option, which is sensibly bounded, so that platform developers may choose where to place this compromise. Keep 8 as the minimum acceptable value. [arnd@arndb.de: ARM: avoid ARCH_MMAP_RND_BITS for NOMMU] Signed-off-by: Daniel Cashman Cc: Russell King Acked-by: Kees Cook Cc: Ingo Molnar Cc: Jonathan Corbet Cc: Don Zickus Cc: Eric W. Biederman Cc: Heinrich Schuchardt Cc: Josh Poimboeuf Cc: Kirill A. Shutemov Cc: Naoya Horiguchi Cc: Andrea Arcangeli Cc: Mel Gorman Cc: Thomas Gleixner Cc: David Rientjes Cc: Mark Salyzyn Cc: Jeff Vander Stoep Cc: Nick Kralevich Cc: Catalin Marinas Cc: Will Deacon Cc: "H. Peter Anvin" Cc: Hector Marco-Gisbert Cc: Borislav Petkov Cc: Ralf Baechle Cc: Heiko Carstens Cc: Martin Schwidefsky Cc: Benjamin Herrenschmidt Signed-off-by: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [bwh: Backported to 4.4: adjust context] Signed-off-by: Ben Hutchings --- arch/arm/Kconfig | 9 +++++++++ arch/arm/mm/mmap.c | 3 +-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 34e1569a11ee..a1b8ca129a8a 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -35,6 +35,7 @@ config ARM select HAVE_ARCH_BITREVERSE if (CPU_32v7M || CPU_32v7) && !CPU_32v6 select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL && !CPU_ENDIAN_BE32 select HAVE_ARCH_KGDB if !CPU_ENDIAN_BE32 + select HAVE_ARCH_MMAP_RND_BITS if MMU select HAVE_ARCH_SECCOMP_FILTER if (AEABI && !OABI_COMPAT) select HAVE_ARCH_TRACEHOOK select HAVE_BPF_JIT @@ -308,6 +309,14 @@ config MMU Select if you want MMU-based virtualised addressing space support by paged memory management. If unsure, say 'Y'. +config ARCH_MMAP_RND_BITS_MIN + default 8 + +config ARCH_MMAP_RND_BITS_MAX + default 14 if PAGE_OFFSET=0x40000000 + default 15 if PAGE_OFFSET=0x80000000 + default 16 + # # The "ARM system type" choice list is ordered alphabetically by option # text. Please add new entries in the option alphabetic order. diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c index 407dc786583a..4b4058db0781 100644 --- a/arch/arm/mm/mmap.c +++ b/arch/arm/mm/mmap.c @@ -173,8 +173,7 @@ unsigned long arch_mmap_rnd(void) { unsigned long rnd; - /* 8 bits of randomness in 20 address space bits */ - rnd = (unsigned long)get_random_int() % (1 << 8); + rnd = (unsigned long)get_random_int() & ((1 << mmap_rnd_bits) - 1); return rnd << PAGE_SHIFT; } From df2346420f7008ab9335c803be33d612c92ebcf4 Mon Sep 17 00:00:00 2001 From: Daniel Cashman Date: Thu, 14 Jan 2016 15:20:01 -0800 Subject: [PATCH 0026/1149] arm64: mm: support ARCH_MMAP_RND_BITS commit 8f0d3aa9de57662fe35d8bacfbd9d7ef85ffe98f upstream. arm64: arch_mmap_rnd() uses STACK_RND_MASK to generate the random offset for the mmap base address. This value represents a compromise between increased ASLR effectiveness and avoiding address-space fragmentation. Replace it with a Kconfig option, which is sensibly bounded, so that platform developers may choose where to place this compromise. Keep default values as new minimums. Signed-off-by: Daniel Cashman Cc: Russell King Acked-by: Kees Cook Cc: Ingo Molnar Cc: Jonathan Corbet Cc: Don Zickus Cc: Eric W. Biederman Cc: Heinrich Schuchardt Cc: Josh Poimboeuf Cc: Kirill A. Shutemov Cc: Naoya Horiguchi Cc: Andrea Arcangeli Cc: Mel Gorman Cc: Thomas Gleixner Cc: David Rientjes Cc: Mark Salyzyn Cc: Jeff Vander Stoep Cc: Nick Kralevich Cc: Catalin Marinas Cc: Will Deacon Cc: "H. Peter Anvin" Cc: Hector Marco-Gisbert Cc: Borislav Petkov Cc: Ralf Baechle Cc: Heiko Carstens Cc: Martin Schwidefsky Cc: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Ben Hutchings --- arch/arm64/Kconfig | 29 +++++++++++++++++++++++++++++ arch/arm64/mm/mmap.c | 8 ++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 14cdc6dea493..edf62be35adc 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -51,6 +51,8 @@ config ARM64 select HAVE_ARCH_JUMP_LABEL select HAVE_ARCH_KASAN if SPARSEMEM_VMEMMAP && !(ARM64_16K_PAGES && ARM64_VA_BITS_48) select HAVE_ARCH_KGDB + select HAVE_ARCH_MMAP_RND_BITS + select HAVE_ARCH_MMAP_RND_COMPAT_BITS if COMPAT select HAVE_ARCH_SECCOMP_FILTER select HAVE_ARCH_TRACEHOOK select HAVE_BPF_JIT @@ -104,6 +106,33 @@ config ARCH_PHYS_ADDR_T_64BIT config MMU def_bool y +config ARCH_MMAP_RND_BITS_MIN + default 14 if ARM64_64K_PAGES + default 16 if ARM64_16K_PAGES + default 18 + +# max bits determined by the following formula: +# VA_BITS - PAGE_SHIFT - 3 +config ARCH_MMAP_RND_BITS_MAX + default 19 if ARM64_VA_BITS=36 + default 24 if ARM64_VA_BITS=39 + default 27 if ARM64_VA_BITS=42 + default 30 if ARM64_VA_BITS=47 + default 29 if ARM64_VA_BITS=48 && ARM64_64K_PAGES + default 31 if ARM64_VA_BITS=48 && ARM64_16K_PAGES + default 33 if ARM64_VA_BITS=48 + default 14 if ARM64_64K_PAGES + default 16 if ARM64_16K_PAGES + default 18 + +config ARCH_MMAP_RND_COMPAT_BITS_MIN + default 7 if ARM64_64K_PAGES + default 9 if ARM64_16K_PAGES + default 11 + +config ARCH_MMAP_RND_COMPAT_BITS_MAX + default 16 + config NO_IOPORT_MAP def_bool y if !PCI diff --git a/arch/arm64/mm/mmap.c b/arch/arm64/mm/mmap.c index ed177475dd8c..4c893b5189dd 100644 --- a/arch/arm64/mm/mmap.c +++ b/arch/arm64/mm/mmap.c @@ -51,8 +51,12 @@ unsigned long arch_mmap_rnd(void) { unsigned long rnd; - rnd = (unsigned long)get_random_int() & STACK_RND_MASK; - +#ifdef CONFIG_COMPAT + if (test_thread_flag(TIF_32BIT)) + rnd = (unsigned long)get_random_int() & ((1 << mmap_rnd_compat_bits) - 1); + else +#endif + rnd = (unsigned long)get_random_int() & ((1 << mmap_rnd_bits) - 1); return rnd << PAGE_SHIFT; } From 9f330ceb756aadcf0384f38513743d195e369427 Mon Sep 17 00:00:00 2001 From: Daniel Cashman Date: Thu, 14 Jan 2016 15:20:06 -0800 Subject: [PATCH 0027/1149] x86: mm: support ARCH_MMAP_RND_BITS commit 9e08f57d684ac2f40685f55f659564bfd91a971e upstream. x86: arch_mmap_rnd() uses hard-coded values, 8 for 32-bit and 28 for 64-bit, to generate the random offset for the mmap base address. This value represents a compromise between increased ASLR effectiveness and avoiding address-space fragmentation. Replace it with a Kconfig option, which is sensibly bounded, so that platform developers may choose where to place this compromise. Keep default values as new minimums. Signed-off-by: Daniel Cashman Cc: Russell King Acked-by: Kees Cook Cc: Ingo Molnar Cc: Jonathan Corbet Cc: Don Zickus Cc: Eric W. Biederman Cc: Heinrich Schuchardt Cc: Josh Poimboeuf Cc: Kirill A. Shutemov Cc: Naoya Horiguchi Cc: Andrea Arcangeli Cc: Mel Gorman Cc: Thomas Gleixner Cc: David Rientjes Cc: Mark Salyzyn Cc: Jeff Vander Stoep Cc: Nick Kralevich Cc: Catalin Marinas Cc: Will Deacon Cc: "H. Peter Anvin" Cc: Hector Marco-Gisbert Cc: Borislav Petkov Cc: Ralf Baechle Cc: Heiko Carstens Cc: Martin Schwidefsky Cc: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Ben Hutchings --- arch/x86/Kconfig | 16 ++++++++++++++++ arch/x86/mm/mmap.c | 12 ++++++------ 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 436639a31624..ffbfa85271a3 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -82,6 +82,8 @@ config X86 select HAVE_ARCH_KASAN if X86_64 && SPARSEMEM_VMEMMAP select HAVE_ARCH_KGDB select HAVE_ARCH_KMEMCHECK + select HAVE_ARCH_MMAP_RND_BITS if MMU + select HAVE_ARCH_MMAP_RND_COMPAT_BITS if MMU && COMPAT select HAVE_ARCH_SECCOMP_FILTER select HAVE_ARCH_SOFT_DIRTY if X86_64 select HAVE_ARCH_TRACEHOOK @@ -183,6 +185,20 @@ config HAVE_LATENCYTOP_SUPPORT config MMU def_bool y +config ARCH_MMAP_RND_BITS_MIN + default 28 if 64BIT + default 8 + +config ARCH_MMAP_RND_BITS_MAX + default 32 if 64BIT + default 16 + +config ARCH_MMAP_RND_COMPAT_BITS_MIN + default 8 + +config ARCH_MMAP_RND_COMPAT_BITS_MAX + default 16 + config SBUS bool diff --git a/arch/x86/mm/mmap.c b/arch/x86/mm/mmap.c index 307f60ecfc6d..389939f74dd5 100644 --- a/arch/x86/mm/mmap.c +++ b/arch/x86/mm/mmap.c @@ -69,14 +69,14 @@ unsigned long arch_mmap_rnd(void) { unsigned long rnd; - /* - * 8 bits of randomness in 32bit mmaps, 20 address space bits - * 28 bits of randomness in 64bit mmaps, 40 address space bits - */ if (mmap_is_ia32()) - rnd = (unsigned long)get_random_int() % (1<<8); +#ifdef CONFIG_COMPAT + rnd = (unsigned long)get_random_int() & ((1 << mmap_rnd_compat_bits) - 1); +#else + rnd = (unsigned long)get_random_int() & ((1 << mmap_rnd_bits) - 1); +#endif else - rnd = (unsigned long)get_random_int() % (1<<28); + rnd = (unsigned long)get_random_int() & ((1 << mmap_rnd_bits) - 1); return rnd << PAGE_SHIFT; } From 96a30fea3bd25fec8b0a7ce2c7f5e9ee896d4b20 Mon Sep 17 00:00:00 2001 From: Daniel Cashman Date: Fri, 26 Feb 2016 15:19:34 -0800 Subject: [PATCH 0028/1149] drivers: char: random: add get_random_long() commit ec9ee4acd97c0039a61c0ae4f12705767ae62153 upstream. Commit d07e22597d1d ("mm: mmap: add new /proc tunable for mmap_base ASLR") added the ability to choose from a range of values to use for entropy count in generating the random offset to the mmap_base address. The maximum value on this range was set to 32 bits for 64-bit x86 systems, but this value could be increased further, requiring more than the 32 bits of randomness provided by get_random_int(), as is already possible for arm64. Add a new function: get_random_long() which more naturally fits with the mmap usage of get_random_int() but operates exactly the same as get_random_int(). Also, fix the shifting constant in mmap_rnd() to be an unsigned long so that values greater than 31 bits generate an appropriate mask without overflow. This is especially important on x86, as its shift instruction uses a 5-bit mask for the shift operand, which meant that any value for mmap_rnd_bits over 31 acts as a no-op and effectively disables mmap_base randomization. Finally, replace calls to get_random_int() with get_random_long() where appropriate. This patch (of 2): Add get_random_long(). Signed-off-by: Daniel Cashman Acked-by: Kees Cook Cc: "Theodore Ts'o" Cc: Arnd Bergmann Cc: Greg Kroah-Hartman Cc: Catalin Marinas Cc: Will Deacon Cc: Ralf Baechle Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: David S. Miller Cc: Thomas Gleixner Cc: Ingo Molnar Cc: H. Peter Anvin Cc: Al Viro Cc: Nick Kralevich Cc: Jeff Vander Stoep Cc: Mark Salyzyn Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Ben Hutchings --- drivers/char/random.c | 22 ++++++++++++++++++++++ include/linux/random.h | 1 + 2 files changed, 23 insertions(+) diff --git a/drivers/char/random.c b/drivers/char/random.c index 491a4dce13fe..d93dfebae0bb 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c @@ -1824,6 +1824,28 @@ unsigned int get_random_int(void) } EXPORT_SYMBOL(get_random_int); +/* + * Same as get_random_int(), but returns unsigned long. + */ +unsigned long get_random_long(void) +{ + __u32 *hash; + unsigned long ret; + + if (arch_get_random_long(&ret)) + return ret; + + hash = get_cpu_var(get_random_int_hash); + + hash[0] += current->pid + jiffies + random_get_entropy(); + md5_transform(hash, random_int_secret); + ret = *(unsigned long *)hash; + put_cpu_var(get_random_int_hash); + + return ret; +} +EXPORT_SYMBOL(get_random_long); + /* * randomize_range() returns a start address such that * diff --git a/include/linux/random.h b/include/linux/random.h index a75840c1aa71..9c29122037f9 100644 --- a/include/linux/random.h +++ b/include/linux/random.h @@ -34,6 +34,7 @@ extern const struct file_operations random_fops, urandom_fops; #endif unsigned int get_random_int(void); +unsigned long get_random_long(void); unsigned long randomize_range(unsigned long start, unsigned long end, unsigned long len); u32 prandom_u32(void); From af15046ce74bb0253a94d4adedd21df68aae7a89 Mon Sep 17 00:00:00 2001 From: Daniel Cashman Date: Fri, 26 Feb 2016 15:19:37 -0800 Subject: [PATCH 0029/1149] mm: ASLR: use get_random_long() commit 5ef11c35ce86b94bfb878b684de4cdaf96f54b2f upstream. Replace calls to get_random_int() followed by a cast to (unsigned long) with calls to get_random_long(). Also address shifting bug which, in case of x86 removed entropy mask for mmap_rnd_bits values > 31 bits. Signed-off-by: Daniel Cashman Acked-by: Kees Cook Cc: "Theodore Ts'o" Cc: Arnd Bergmann Cc: Greg Kroah-Hartman Cc: Catalin Marinas Cc: Will Deacon Cc: Ralf Baechle Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: David S. Miller Cc: Thomas Gleixner Cc: Ingo Molnar Cc: H. Peter Anvin Cc: Al Viro Cc: Nick Kralevich Cc: Jeff Vander Stoep Cc: Mark Salyzyn Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Ben Hutchings --- arch/arm/mm/mmap.c | 2 +- arch/arm64/mm/mmap.c | 4 ++-- arch/mips/mm/mmap.c | 4 ++-- arch/powerpc/kernel/process.c | 4 ++-- arch/powerpc/mm/mmap.c | 4 ++-- arch/sparc/kernel/sys_sparc_64.c | 2 +- arch/x86/mm/mmap.c | 6 +++--- fs/binfmt_elf.c | 2 +- 8 files changed, 14 insertions(+), 14 deletions(-) diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c index 4b4058db0781..66353caa35b9 100644 --- a/arch/arm/mm/mmap.c +++ b/arch/arm/mm/mmap.c @@ -173,7 +173,7 @@ unsigned long arch_mmap_rnd(void) { unsigned long rnd; - rnd = (unsigned long)get_random_int() & ((1 << mmap_rnd_bits) - 1); + rnd = get_random_long() & ((1UL << mmap_rnd_bits) - 1); return rnd << PAGE_SHIFT; } diff --git a/arch/arm64/mm/mmap.c b/arch/arm64/mm/mmap.c index 4c893b5189dd..232f787a088a 100644 --- a/arch/arm64/mm/mmap.c +++ b/arch/arm64/mm/mmap.c @@ -53,10 +53,10 @@ unsigned long arch_mmap_rnd(void) #ifdef CONFIG_COMPAT if (test_thread_flag(TIF_32BIT)) - rnd = (unsigned long)get_random_int() & ((1 << mmap_rnd_compat_bits) - 1); + rnd = get_random_long() & ((1UL << mmap_rnd_compat_bits) - 1); else #endif - rnd = (unsigned long)get_random_int() & ((1 << mmap_rnd_bits) - 1); + rnd = get_random_long() & ((1UL << mmap_rnd_bits) - 1); return rnd << PAGE_SHIFT; } diff --git a/arch/mips/mm/mmap.c b/arch/mips/mm/mmap.c index 5c81fdd032c3..353037699512 100644 --- a/arch/mips/mm/mmap.c +++ b/arch/mips/mm/mmap.c @@ -146,7 +146,7 @@ unsigned long arch_mmap_rnd(void) { unsigned long rnd; - rnd = (unsigned long)get_random_int(); + rnd = get_random_long(); rnd <<= PAGE_SHIFT; if (TASK_IS_32BIT_ADDR) rnd &= 0xfffffful; @@ -174,7 +174,7 @@ void arch_pick_mmap_layout(struct mm_struct *mm) static inline unsigned long brk_rnd(void) { - unsigned long rnd = get_random_int(); + unsigned long rnd = get_random_long(); rnd = rnd << PAGE_SHIFT; /* 8MB for 32bit, 256MB for 64bit */ diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index cf788d7d7e56..b7abf3cd2a67 100644 --- a/arch/powerpc/kernel/process.c +++ b/arch/powerpc/kernel/process.c @@ -1651,9 +1651,9 @@ static inline unsigned long brk_rnd(void) /* 8MB for 32bit, 1GB for 64bit */ if (is_32bit_task()) - rnd = (long)(get_random_int() % (1<<(23-PAGE_SHIFT))); + rnd = (get_random_long() % (1UL<<(23-PAGE_SHIFT))); else - rnd = (long)(get_random_int() % (1<<(30-PAGE_SHIFT))); + rnd = (get_random_long() % (1UL<<(30-PAGE_SHIFT))); return rnd << PAGE_SHIFT; } diff --git a/arch/powerpc/mm/mmap.c b/arch/powerpc/mm/mmap.c index 0f0502e12f6c..4087705ba90f 100644 --- a/arch/powerpc/mm/mmap.c +++ b/arch/powerpc/mm/mmap.c @@ -59,9 +59,9 @@ unsigned long arch_mmap_rnd(void) /* 8MB for 32bit, 1GB for 64bit */ if (is_32bit_task()) - rnd = (unsigned long)get_random_int() % (1<<(23-PAGE_SHIFT)); + rnd = get_random_long() % (1<<(23-PAGE_SHIFT)); else - rnd = (unsigned long)get_random_int() % (1<<(30-PAGE_SHIFT)); + rnd = get_random_long() % (1UL<<(30-PAGE_SHIFT)); return rnd << PAGE_SHIFT; } diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c index c690c8e16a96..b489e9759518 100644 --- a/arch/sparc/kernel/sys_sparc_64.c +++ b/arch/sparc/kernel/sys_sparc_64.c @@ -264,7 +264,7 @@ static unsigned long mmap_rnd(void) unsigned long rnd = 0UL; if (current->flags & PF_RANDOMIZE) { - unsigned long val = get_random_int(); + unsigned long val = get_random_long(); if (test_thread_flag(TIF_32BIT)) rnd = (val % (1UL << (23UL-PAGE_SHIFT))); else diff --git a/arch/x86/mm/mmap.c b/arch/x86/mm/mmap.c index 389939f74dd5..d2dc0438d654 100644 --- a/arch/x86/mm/mmap.c +++ b/arch/x86/mm/mmap.c @@ -71,12 +71,12 @@ unsigned long arch_mmap_rnd(void) if (mmap_is_ia32()) #ifdef CONFIG_COMPAT - rnd = (unsigned long)get_random_int() & ((1 << mmap_rnd_compat_bits) - 1); + rnd = get_random_long() & ((1UL << mmap_rnd_compat_bits) - 1); #else - rnd = (unsigned long)get_random_int() & ((1 << mmap_rnd_bits) - 1); + rnd = get_random_long() & ((1UL << mmap_rnd_bits) - 1); #endif else - rnd = (unsigned long)get_random_int() & ((1 << mmap_rnd_bits) - 1); + rnd = get_random_long() & ((1UL << mmap_rnd_bits) - 1); return rnd << PAGE_SHIFT; } diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c index 3a93755e880f..0c52941dd62c 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c @@ -651,7 +651,7 @@ static unsigned long randomize_stack_top(unsigned long stack_top) if ((current->flags & PF_RANDOMIZE) && !(current->personality & ADDR_NO_RANDOMIZE)) { - random_variable = (unsigned long) get_random_int(); + random_variable = get_random_long(); random_variable &= STACK_RND_MASK; random_variable <<= PAGE_SHIFT; } From b202ec6a6cace1fb904a09d5d409e040ee52a7d0 Mon Sep 17 00:00:00 2001 From: Joonsoo Kim Date: Tue, 15 Mar 2016 14:54:15 -0700 Subject: [PATCH 0030/1149] mm/slab: activate debug_pagealloc in SLAB when it is actually enabled commit a307ebd468e0b97c203f5a99a56a6017e4d1991a upstream. Signed-off-by: Joonsoo Kim Acked-by: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Cc: Jesper Dangaard Brouer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Ben Hutchings --- mm/slab.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/mm/slab.c b/mm/slab.c index 4765c97ce690..ed7eb6c92c81 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -1847,7 +1847,8 @@ static void slab_destroy_debugcheck(struct kmem_cache *cachep, if (cachep->flags & SLAB_POISON) { #ifdef CONFIG_DEBUG_PAGEALLOC - if (cachep->size % PAGE_SIZE == 0 && + if (debug_pagealloc_enabled() && + cachep->size % PAGE_SIZE == 0 && OFF_SLAB(cachep)) kernel_map_pages(virt_to_page(objp), cachep->size / PAGE_SIZE, 1); @@ -2187,7 +2188,8 @@ __kmem_cache_create (struct kmem_cache *cachep, unsigned long flags) * to check size >= 256. It guarantees that all necessary small * sized slab is initialized in current slab initialization sequence. */ - if (!slab_early_init && size >= kmalloc_size(INDEX_NODE) && + if (debug_pagealloc_enabled() && + !slab_early_init && size >= kmalloc_size(INDEX_NODE) && size >= 256 && cachep->object_size > cache_line_size() && ALIGN(size, cachep->align) < PAGE_SIZE) { cachep->obj_offset += PAGE_SIZE - ALIGN(size, cachep->align); @@ -2243,7 +2245,8 @@ __kmem_cache_create (struct kmem_cache *cachep, unsigned long flags) * poisoning, then it's going to smash the contents of * the redzone and userword anyhow, so switch them off. */ - if (size % PAGE_SIZE == 0 && flags & SLAB_POISON) + if (debug_pagealloc_enabled() && + size % PAGE_SIZE == 0 && flags & SLAB_POISON) flags &= ~(SLAB_RED_ZONE | SLAB_STORE_USER); #endif } @@ -2737,7 +2740,8 @@ static void *cache_free_debugcheck(struct kmem_cache *cachep, void *objp, set_obj_status(page, objnr, OBJECT_FREE); if (cachep->flags & SLAB_POISON) { #ifdef CONFIG_DEBUG_PAGEALLOC - if ((cachep->size % PAGE_SIZE)==0 && OFF_SLAB(cachep)) { + if (debug_pagealloc_enabled() && + (cachep->size % PAGE_SIZE) == 0 && OFF_SLAB(cachep)) { store_stackinfo(cachep, objp, caller); kernel_map_pages(virt_to_page(objp), cachep->size / PAGE_SIZE, 0); @@ -2874,7 +2878,8 @@ static void *cache_alloc_debugcheck_after(struct kmem_cache *cachep, return objp; if (cachep->flags & SLAB_POISON) { #ifdef CONFIG_DEBUG_PAGEALLOC - if ((cachep->size % PAGE_SIZE) == 0 && OFF_SLAB(cachep)) + if (debug_pagealloc_enabled() && + (cachep->size % PAGE_SIZE) == 0 && OFF_SLAB(cachep)) kernel_map_pages(virt_to_page(objp), cachep->size / PAGE_SIZE, 1); else From 85d3683a2ae6269fd0d74d9cf52da5d57a999172 Mon Sep 17 00:00:00 2001 From: Joonsoo Kim Date: Tue, 15 Mar 2016 14:54:18 -0700 Subject: [PATCH 0031/1149] mm/slab: use more appropriate condition check for debug_pagealloc commit 40323278b557a5909bbecfa181c91a3af7afbbe3 upstream. debug_pagealloc debugging is related to SLAB_POISON flag rather than FORCED_DEBUG option, although FORCED_DEBUG option will enable SLAB_POISON. Fix it. Signed-off-by: Joonsoo Kim Acked-by: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Cc: Jesper Dangaard Brouer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Ben Hutchings --- mm/slab.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mm/slab.c b/mm/slab.c index ed7eb6c92c81..62a7e4d3dde3 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -2180,7 +2180,6 @@ __kmem_cache_create (struct kmem_cache *cachep, unsigned long flags) else size += BYTES_PER_WORD; } -#if FORCED_DEBUG && defined(CONFIG_DEBUG_PAGEALLOC) /* * To activate debug pagealloc, off-slab management is necessary * requirement. In early phase of initialization, small sized slab @@ -2188,14 +2187,13 @@ __kmem_cache_create (struct kmem_cache *cachep, unsigned long flags) * to check size >= 256. It guarantees that all necessary small * sized slab is initialized in current slab initialization sequence. */ - if (debug_pagealloc_enabled() && + if (debug_pagealloc_enabled() && (flags & SLAB_POISON) && !slab_early_init && size >= kmalloc_size(INDEX_NODE) && size >= 256 && cachep->object_size > cache_line_size() && ALIGN(size, cachep->align) < PAGE_SIZE) { cachep->obj_offset += PAGE_SIZE - ALIGN(size, cachep->align); size = PAGE_SIZE; } -#endif #endif /* From e8ff32a6c3e97b509955461bd6959235eb4a0113 Mon Sep 17 00:00:00 2001 From: Joonsoo Kim Date: Tue, 15 Mar 2016 14:54:21 -0700 Subject: [PATCH 0032/1149] mm/slab: clean up DEBUG_PAGEALLOC processing code commit 40b44137971c2e5865a78f9f7de274449983ccb5 upstream. Currently, open code for checking DEBUG_PAGEALLOC cache is spread to some sites. It makes code unreadable and hard to change. This patch cleans up this code. The following patch will change the criteria for DEBUG_PAGEALLOC cache so this clean-up will help it, too. [akpm@linux-foundation.org: fix build with CONFIG_DEBUG_PAGEALLOC=n] Signed-off-by: Joonsoo Kim Cc: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Cc: Jesper Dangaard Brouer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Ben Hutchings --- include/linux/mm.h | 12 ++++-- mm/slab.c | 97 +++++++++++++++++++++++----------------------- 2 files changed, 57 insertions(+), 52 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index f0ffa01c90d9..b93d147439f9 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2148,14 +2148,18 @@ kernel_map_pages(struct page *page, int numpages, int enable) } #ifdef CONFIG_HIBERNATION extern bool kernel_page_present(struct page *page); -#endif /* CONFIG_HIBERNATION */ -#else +#endif /* CONFIG_HIBERNATION */ +#else /* CONFIG_DEBUG_PAGEALLOC */ static inline void kernel_map_pages(struct page *page, int numpages, int enable) {} #ifdef CONFIG_HIBERNATION static inline bool kernel_page_present(struct page *page) { return true; } -#endif /* CONFIG_HIBERNATION */ -#endif +#endif /* CONFIG_HIBERNATION */ +static inline bool debug_pagealloc_enabled(void) +{ + return false; +} +#endif /* CONFIG_DEBUG_PAGEALLOC */ #ifdef __HAVE_ARCH_GATE_AREA extern struct vm_area_struct *get_gate_vma(struct mm_struct *mm); diff --git a/mm/slab.c b/mm/slab.c index 62a7e4d3dde3..aa11af56f139 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -1670,6 +1670,14 @@ static void kmem_rcu_free(struct rcu_head *head) } #if DEBUG +static bool is_debug_pagealloc_cache(struct kmem_cache *cachep) +{ + if (debug_pagealloc_enabled() && OFF_SLAB(cachep) && + (cachep->size % PAGE_SIZE) == 0) + return true; + + return false; +} #ifdef CONFIG_DEBUG_PAGEALLOC static void store_stackinfo(struct kmem_cache *cachep, unsigned long *addr, @@ -1703,6 +1711,23 @@ static void store_stackinfo(struct kmem_cache *cachep, unsigned long *addr, } *addr++ = 0x87654321; } + +static void slab_kernel_map(struct kmem_cache *cachep, void *objp, + int map, unsigned long caller) +{ + if (!is_debug_pagealloc_cache(cachep)) + return; + + if (caller) + store_stackinfo(cachep, objp, caller); + + kernel_map_pages(virt_to_page(objp), cachep->size / PAGE_SIZE, map); +} + +#else +static inline void slab_kernel_map(struct kmem_cache *cachep, void *objp, + int map, unsigned long caller) {} + #endif static void poison_obj(struct kmem_cache *cachep, void *addr, unsigned char val) @@ -1781,6 +1806,9 @@ static void check_poison_obj(struct kmem_cache *cachep, void *objp) int size, i; int lines = 0; + if (is_debug_pagealloc_cache(cachep)) + return; + realobj = (char *)objp + obj_offset(cachep); size = cachep->object_size; @@ -1846,17 +1874,8 @@ static void slab_destroy_debugcheck(struct kmem_cache *cachep, void *objp = index_to_obj(cachep, page, i); if (cachep->flags & SLAB_POISON) { -#ifdef CONFIG_DEBUG_PAGEALLOC - if (debug_pagealloc_enabled() && - cachep->size % PAGE_SIZE == 0 && - OFF_SLAB(cachep)) - kernel_map_pages(virt_to_page(objp), - cachep->size / PAGE_SIZE, 1); - else - check_poison_obj(cachep, objp); -#else check_poison_obj(cachep, objp); -#endif + slab_kernel_map(cachep, objp, 1, 0); } if (cachep->flags & SLAB_RED_ZONE) { if (*dbg_redzone1(cachep, objp) != RED_INACTIVE) @@ -2237,16 +2256,6 @@ __kmem_cache_create (struct kmem_cache *cachep, unsigned long flags) if (flags & CFLGS_OFF_SLAB) { /* really off slab. No need for manual alignment */ freelist_size = calculate_freelist_size(cachep->num, 0); - -#ifdef CONFIG_PAGE_POISONING - /* If we're going to use the generic kernel_map_pages() - * poisoning, then it's going to smash the contents of - * the redzone and userword anyhow, so switch them off. - */ - if (debug_pagealloc_enabled() && - size % PAGE_SIZE == 0 && flags & SLAB_POISON) - flags &= ~(SLAB_RED_ZONE | SLAB_STORE_USER); -#endif } cachep->colour_off = cache_line_size(); @@ -2262,7 +2271,19 @@ __kmem_cache_create (struct kmem_cache *cachep, unsigned long flags) cachep->size = size; cachep->reciprocal_buffer_size = reciprocal_value(size); - if (flags & CFLGS_OFF_SLAB) { +#if DEBUG + /* + * If we're going to use the generic kernel_map_pages() + * poisoning, then it's going to smash the contents of + * the redzone and userword anyhow, so switch them off. + */ + if (IS_ENABLED(CONFIG_PAGE_POISONING) && + (cachep->flags & SLAB_POISON) && + is_debug_pagealloc_cache(cachep)) + cachep->flags &= ~(SLAB_RED_ZONE | SLAB_STORE_USER); +#endif + + if (OFF_SLAB(cachep)) { cachep->freelist_cache = kmalloc_slab(freelist_size, 0u); /* * This is a possibility for one of the kmalloc_{dma,}_caches. @@ -2489,9 +2510,6 @@ static void cache_init_objs(struct kmem_cache *cachep, for (i = 0; i < cachep->num; i++) { void *objp = index_to_obj(cachep, page, i); #if DEBUG - /* need to poison the objs? */ - if (cachep->flags & SLAB_POISON) - poison_obj(cachep, objp, POISON_FREE); if (cachep->flags & SLAB_STORE_USER) *dbg_userword(cachep, objp) = NULL; @@ -2515,10 +2533,11 @@ static void cache_init_objs(struct kmem_cache *cachep, slab_error(cachep, "constructor overwrote the" " start of an object"); } - if ((cachep->size % PAGE_SIZE) == 0 && - OFF_SLAB(cachep) && cachep->flags & SLAB_POISON) - kernel_map_pages(virt_to_page(objp), - cachep->size / PAGE_SIZE, 0); + /* need to poison the objs? */ + if (cachep->flags & SLAB_POISON) { + poison_obj(cachep, objp, POISON_FREE); + slab_kernel_map(cachep, objp, 0, 0); + } #else if (cachep->ctor) cachep->ctor(objp); @@ -2737,18 +2756,8 @@ static void *cache_free_debugcheck(struct kmem_cache *cachep, void *objp, set_obj_status(page, objnr, OBJECT_FREE); if (cachep->flags & SLAB_POISON) { -#ifdef CONFIG_DEBUG_PAGEALLOC - if (debug_pagealloc_enabled() && - (cachep->size % PAGE_SIZE) == 0 && OFF_SLAB(cachep)) { - store_stackinfo(cachep, objp, caller); - kernel_map_pages(virt_to_page(objp), - cachep->size / PAGE_SIZE, 0); - } else { - poison_obj(cachep, objp, POISON_FREE); - } -#else poison_obj(cachep, objp, POISON_FREE); -#endif + slab_kernel_map(cachep, objp, 0, caller); } return objp; } @@ -2875,16 +2884,8 @@ static void *cache_alloc_debugcheck_after(struct kmem_cache *cachep, if (!objp) return objp; if (cachep->flags & SLAB_POISON) { -#ifdef CONFIG_DEBUG_PAGEALLOC - if (debug_pagealloc_enabled() && - (cachep->size % PAGE_SIZE) == 0 && OFF_SLAB(cachep)) - kernel_map_pages(virt_to_page(objp), - cachep->size / PAGE_SIZE, 1); - else - check_poison_obj(cachep, objp); -#else check_poison_obj(cachep, objp); -#endif + slab_kernel_map(cachep, objp, 1, 0); poison_obj(cachep, objp, POISON_INUSE); } if (cachep->flags & SLAB_STORE_USER) From 1478a5b7701b194df6be79fdb5bf84f9e7262407 Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Tue, 15 Mar 2016 14:56:27 -0700 Subject: [PATCH 0033/1149] mm/page_poison.c: enable PAGE_POISONING as a separate option commit 8823b1dbc05fab1a8bec275eeae4709257c2661d upstream. Page poisoning is currently set up as a feature if architectures don't have architecture debug page_alloc to allow unmapping of pages. It has uses apart from that though. Clearing of the pages on free provides an increase in security as it helps to limit the risk of information leaks. Allow page poisoning to be enabled as a separate option independent of kernel_map pages since the two features do separate work. Because of how hiberanation is implemented, the checks on alloc cannot occur if hibernation is enabled. The runtime alloc checks can also be enabled with an option when !HIBERNATION. Credit to Grsecurity/PaX team for inspiring this work Signed-off-by: Laura Abbott Cc: Rafael J. Wysocki Cc: "Kirill A. Shutemov" Cc: Vlastimil Babka Cc: Michal Hocko Cc: Kees Cook Cc: Mathias Krause Cc: Dave Hansen Cc: Jianyu Zhan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Ben Hutchings --- Documentation/kernel-parameters.txt | 5 +++ include/linux/mm.h | 9 ++++ mm/Kconfig.debug | 25 ++++++++++- mm/Makefile | 2 +- mm/page_alloc.c | 2 + mm/{debug-pagealloc.c => page_poison.c} | 60 ++++++++++++++++++++----- 6 files changed, 89 insertions(+), 14 deletions(-) rename mm/{debug-pagealloc.c => page_poison.c} (67%) diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index c360f80c3473..37180e331185 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -2672,6 +2672,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted. we can turn it on. on: enable the feature + page_poison= [KNL] Boot-time parameter changing the state of + poisoning on the buddy allocator. + off: turn off poisoning + on: turn on poisoning + panic= [KNL] Kernel behaviour on panic: delay timeout > 0: seconds before rebooting timeout = 0: wait forever diff --git a/include/linux/mm.h b/include/linux/mm.h index b93d147439f9..56272e69c9a3 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2129,6 +2129,15 @@ static inline void vm_stat_account(struct mm_struct *mm, } #endif /* CONFIG_PROC_FS */ +#ifdef CONFIG_PAGE_POISONING +extern bool page_poisoning_enabled(void); +extern void kernel_poison_pages(struct page *page, int numpages, int enable); +#else +static inline bool page_poisoning_enabled(void) { return false; } +static inline void kernel_poison_pages(struct page *page, int numpages, + int enable) { } +#endif + #ifdef CONFIG_DEBUG_PAGEALLOC extern bool _debug_pagealloc_enabled; extern void __kernel_map_pages(struct page *page, int numpages, int enable); diff --git a/mm/Kconfig.debug b/mm/Kconfig.debug index 957d3da53ddd..35d68954ad34 100644 --- a/mm/Kconfig.debug +++ b/mm/Kconfig.debug @@ -27,4 +27,27 @@ config DEBUG_PAGEALLOC a resume because free pages are not saved to the suspend image. config PAGE_POISONING - bool + bool "Poison pages after freeing" + select PAGE_EXTENSION + select PAGE_POISONING_NO_SANITY if HIBERNATION + ---help--- + Fill the pages with poison patterns after free_pages() and verify + the patterns before alloc_pages. The filling of the memory helps + reduce the risk of information leaks from freed data. This does + have a potential performance impact. + + Note that "poison" here is not the same thing as the "HWPoison" + for CONFIG_MEMORY_FAILURE. This is software poisoning only. + + If unsure, say N + +config PAGE_POISONING_NO_SANITY + depends on PAGE_POISONING + bool "Only poison, don't sanity check" + ---help--- + Skip the sanity checking on alloc, only fill the pages with + poison on free. This reduces some of the overhead of the + poisoning feature. + + If you are only interested in sanitization, say Y. Otherwise + say N. diff --git a/mm/Makefile b/mm/Makefile index 2ed43191fc3b..cfdd481d27a5 100644 --- a/mm/Makefile +++ b/mm/Makefile @@ -48,7 +48,7 @@ obj-$(CONFIG_SPARSEMEM_VMEMMAP) += sparse-vmemmap.o obj-$(CONFIG_SLOB) += slob.o obj-$(CONFIG_MMU_NOTIFIER) += mmu_notifier.o obj-$(CONFIG_KSM) += ksm.o -obj-$(CONFIG_PAGE_POISONING) += debug-pagealloc.o +obj-$(CONFIG_PAGE_POISONING) += page_poison.o obj-$(CONFIG_SLAB) += slab.o obj-$(CONFIG_SLUB) += slub.o obj-$(CONFIG_KMEMCHECK) += kmemcheck.o diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 2bcdfbf8c36d..94e98734ecd9 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1004,6 +1004,7 @@ static bool free_pages_prepare(struct page *page, unsigned int order) PAGE_SIZE << order); } arch_free_page(page, order); + kernel_poison_pages(page, 1 << order, 0); kernel_map_pages(page, 1 << order, 0); return true; @@ -1399,6 +1400,7 @@ static int prep_new_page(struct page *page, unsigned int order, gfp_t gfp_flags, arch_alloc_page(page, order); kernel_map_pages(page, 1 << order, 1); + kernel_poison_pages(page, 1 << order, 1); kasan_alloc_pages(page, order); if (gfp_flags & __GFP_ZERO) diff --git a/mm/debug-pagealloc.c b/mm/page_poison.c similarity index 67% rename from mm/debug-pagealloc.c rename to mm/page_poison.c index 5bf5906ce13b..89d3bc773633 100644 --- a/mm/debug-pagealloc.c +++ b/mm/page_poison.c @@ -6,22 +6,48 @@ #include #include -static bool page_poisoning_enabled __read_mostly; +static bool __page_poisoning_enabled __read_mostly; +static bool want_page_poisoning __read_mostly; -static bool need_page_poisoning(void) +static int early_page_poison_param(char *buf) { - if (!debug_pagealloc_enabled()) - return false; + if (!buf) + return -EINVAL; + + if (strcmp(buf, "on") == 0) + want_page_poisoning = true; + else if (strcmp(buf, "off") == 0) + want_page_poisoning = false; - return true; + return 0; +} +early_param("page_poison", early_page_poison_param); + +bool page_poisoning_enabled(void) +{ + return __page_poisoning_enabled; +} + +static bool need_page_poisoning(void) +{ + return want_page_poisoning; } static void init_page_poisoning(void) { - if (!debug_pagealloc_enabled()) - return; + /* + * page poisoning is debug page alloc for some arches. If either + * of those options are enabled, enable poisoning + */ + if (!IS_ENABLED(CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC)) { + if (!want_page_poisoning && !debug_pagealloc_enabled()) + return; + } else { + if (!want_page_poisoning) + return; + } - page_poisoning_enabled = true; + __page_poisoning_enabled = true; } struct page_ext_operations page_poisoning_ops = { @@ -83,6 +109,9 @@ static void check_poison_mem(unsigned char *mem, size_t bytes) unsigned char *start; unsigned char *end; + if (IS_ENABLED(CONFIG_PAGE_POISONING_NO_SANITY)) + return; + start = memchr_inv(mem, PAGE_POISON, bytes); if (!start) return; @@ -95,9 +124,9 @@ static void check_poison_mem(unsigned char *mem, size_t bytes) if (!__ratelimit(&ratelimit)) return; else if (start == end && single_bit_flip(*start, PAGE_POISON)) - printk(KERN_ERR "pagealloc: single bit error\n"); + pr_err("pagealloc: single bit error\n"); else - printk(KERN_ERR "pagealloc: memory corruption\n"); + pr_err("pagealloc: memory corruption\n"); print_hex_dump(KERN_ERR, "", DUMP_PREFIX_ADDRESS, 16, 1, start, end - start + 1, 1); @@ -125,9 +154,9 @@ static void unpoison_pages(struct page *page, int n) unpoison_page(page + i); } -void __kernel_map_pages(struct page *page, int numpages, int enable) +void kernel_poison_pages(struct page *page, int numpages, int enable) { - if (!page_poisoning_enabled) + if (!page_poisoning_enabled()) return; if (enable) @@ -135,3 +164,10 @@ void __kernel_map_pages(struct page *page, int numpages, int enable) else poison_pages(page, numpages); } + +#ifndef CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC +void __kernel_map_pages(struct page *page, int numpages, int enable) +{ + /* This function does nothing, all work is done via poison pages */ +} +#endif From 8c93bf68987fa1ecba1d215e2fedf9c3143f4a3d Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Tue, 15 Mar 2016 14:56:30 -0700 Subject: [PATCH 0034/1149] mm/page_poisoning.c: allow for zero poisoning commit 1414c7f4f7d72d138fff35f00151d15749b5beda upstream. By default, page poisoning uses a poison value (0xaa) on free. If this is changed to 0, the page is not only sanitized but zeroing on alloc with __GFP_ZERO can be skipped as well. The tradeoff is that detecting corruption from the poisoning is harder to detect. This feature also cannot be used with hibernation since pages are not guaranteed to be zeroed after hibernation. Credit to Grsecurity/PaX team for inspiring this work Signed-off-by: Laura Abbott Acked-by: Rafael J. Wysocki Cc: "Kirill A. Shutemov" Cc: Vlastimil Babka Cc: Michal Hocko Cc: Kees Cook Cc: Mathias Krause Cc: Dave Hansen Cc: Jianyu Zhan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Ben Hutchings --- include/linux/mm.h | 2 ++ include/linux/poison.h | 4 ++++ kernel/power/hibernate.c | 17 +++++++++++++++++ mm/Kconfig.debug | 14 ++++++++++++++ mm/page_alloc.c | 11 ++++++++++- mm/page_ext.c | 10 ++++++++-- mm/page_poison.c | 7 +++++-- 7 files changed, 60 insertions(+), 5 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 56272e69c9a3..5d8beadd908d 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2132,10 +2132,12 @@ static inline void vm_stat_account(struct mm_struct *mm, #ifdef CONFIG_PAGE_POISONING extern bool page_poisoning_enabled(void); extern void kernel_poison_pages(struct page *page, int numpages, int enable); +extern bool page_is_poisoned(struct page *page); #else static inline bool page_poisoning_enabled(void) { return false; } static inline void kernel_poison_pages(struct page *page, int numpages, int enable) { } +static inline bool page_is_poisoned(struct page *page) { return false; } #endif #ifdef CONFIG_DEBUG_PAGEALLOC diff --git a/include/linux/poison.h b/include/linux/poison.h index 317e16de09e5..199ffec4bdf3 100644 --- a/include/linux/poison.h +++ b/include/linux/poison.h @@ -30,7 +30,11 @@ #define TIMER_ENTRY_STATIC ((void *) 0x74737461) /********** mm/debug-pagealloc.c **********/ +#ifdef CONFIG_PAGE_POISONING_ZERO +#define PAGE_POISON 0x00 +#else #define PAGE_POISON 0xaa +#endif /********** mm/slab.c **********/ /* diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c index 3124cebaec31..2fc1177383a0 100644 --- a/kernel/power/hibernate.c +++ b/kernel/power/hibernate.c @@ -1159,6 +1159,22 @@ static int __init kaslr_nohibernate_setup(char *str) return nohibernate_setup(str); } +static int __init page_poison_nohibernate_setup(char *str) +{ +#ifdef CONFIG_PAGE_POISONING_ZERO + /* + * The zeroing option for page poison skips the checks on alloc. + * since hibernation doesn't save free pages there's no way to + * guarantee the pages will still be zeroed. + */ + if (!strcmp(str, "on")) { + pr_info("Disabling hibernation due to page poisoning\n"); + return nohibernate_setup(str); + } +#endif + return 1; +} + __setup("noresume", noresume_setup); __setup("resume_offset=", resume_offset_setup); __setup("resume=", resume_setup); @@ -1167,3 +1183,4 @@ __setup("resumewait", resumewait_setup); __setup("resumedelay=", resumedelay_setup); __setup("nohibernate", nohibernate_setup); __setup("kaslr", kaslr_nohibernate_setup); +__setup("page_poison=", page_poison_nohibernate_setup); diff --git a/mm/Kconfig.debug b/mm/Kconfig.debug index 35d68954ad34..613437b03ebb 100644 --- a/mm/Kconfig.debug +++ b/mm/Kconfig.debug @@ -51,3 +51,17 @@ config PAGE_POISONING_NO_SANITY If you are only interested in sanitization, say Y. Otherwise say N. + +config PAGE_POISONING_ZERO + bool "Use zero for poisoning instead of random data" + depends on PAGE_POISONING + ---help--- + Instead of using the existing poison value, fill the pages with + zeros. This makes it harder to detect when errors are occurring + due to sanitization but the zeroing at free means that it is + no longer necessary to write zeros when GFP_ZERO is used on + allocation. + + Enabling page poisoning with this option will disable hibernation + + If unsure, say N diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 94e98734ecd9..4b3b5cb36844 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1384,15 +1384,24 @@ static inline int check_new_page(struct page *page) return 0; } +static inline bool free_pages_prezeroed(bool poisoned) +{ + return IS_ENABLED(CONFIG_PAGE_POISONING_ZERO) && + page_poisoning_enabled() && poisoned; +} + static int prep_new_page(struct page *page, unsigned int order, gfp_t gfp_flags, int alloc_flags) { int i; + bool poisoned = true; for (i = 0; i < (1 << order); i++) { struct page *p = page + i; if (unlikely(check_new_page(p))) return 1; + if (poisoned) + poisoned &= page_is_poisoned(p); } set_page_private(page, 0); @@ -1403,7 +1412,7 @@ static int prep_new_page(struct page *page, unsigned int order, gfp_t gfp_flags, kernel_poison_pages(page, 1 << order, 1); kasan_alloc_pages(page, order); - if (gfp_flags & __GFP_ZERO) + if (!free_pages_prezeroed(poisoned) && (gfp_flags & __GFP_ZERO)) for (i = 0; i < (1 << order); i++) clear_highpage(page + i); diff --git a/mm/page_ext.c b/mm/page_ext.c index 292ca7b8debd..2d864e64f7fe 100644 --- a/mm/page_ext.c +++ b/mm/page_ext.c @@ -106,12 +106,15 @@ struct page_ext *lookup_page_ext(struct page *page) struct page_ext *base; base = NODE_DATA(page_to_nid(page))->node_page_ext; -#ifdef CONFIG_DEBUG_VM +#if defined(CONFIG_DEBUG_VM) || defined(CONFIG_PAGE_POISONING) /* * The sanity checks the page allocator does upon freeing a * page can reach here before the page_ext arrays are * allocated when feeding a range of pages to the allocator * for the first time during bootup or memory hotplug. + * + * This check is also necessary for ensuring page poisoning + * works as expected when enabled */ if (unlikely(!base)) return NULL; @@ -180,12 +183,15 @@ struct page_ext *lookup_page_ext(struct page *page) { unsigned long pfn = page_to_pfn(page); struct mem_section *section = __pfn_to_section(pfn); -#ifdef CONFIG_DEBUG_VM +#if defined(CONFIG_DEBUG_VM) || defined(CONFIG_PAGE_POISONING) /* * The sanity checks the page allocator does upon freeing a * page can reach here before the page_ext arrays are * allocated when feeding a range of pages to the allocator * for the first time during bootup or memory hotplug. + * + * This check is also necessary for ensuring page poisoning + * works as expected when enabled */ if (!section->page_ext) return NULL; diff --git a/mm/page_poison.c b/mm/page_poison.c index 89d3bc773633..479e7ea2bea6 100644 --- a/mm/page_poison.c +++ b/mm/page_poison.c @@ -71,11 +71,14 @@ static inline void clear_page_poison(struct page *page) __clear_bit(PAGE_EXT_DEBUG_POISON, &page_ext->flags); } -static inline bool page_poison(struct page *page) +bool page_is_poisoned(struct page *page) { struct page_ext *page_ext; page_ext = lookup_page_ext(page); + if (!page_ext) + return false; + return test_bit(PAGE_EXT_DEBUG_POISON, &page_ext->flags); } @@ -137,7 +140,7 @@ static void unpoison_page(struct page *page) { void *addr; - if (!page_poison(page)) + if (!page_is_poisoned(page)) return; addr = kmap_atomic(page); From 09854763ebb9af9aef9884ed1a68bb3d307aa8d5 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Fri, 25 Nov 2016 18:04:23 +0000 Subject: [PATCH 0035/1149] CIP: Add -cip suffix to kernel release string Signed-off-by: Ben Hutchings --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 98239d56924c..57ddee0b3c3c 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ VERSION = 4 PATCHLEVEL = 4 SUBLEVEL = 30 -EXTRAVERSION = +EXTRAVERSION = -cip NAME = Blurry Fish Butt # *DOCUMENTATION* From 7eba3f5dd6f7fc97817b6826242138c7a1e0f293 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Fri, 13 Jan 2017 02:27:22 +0000 Subject: [PATCH 0036/1149] CIP: Add a number to the version suffix and move it out of Makefile We can potentially have more than one CIP release per kernel.org stable release, so make the version suffix -cip1. Defining the version suffix in the Makefile resulted in a conflict when I merged the linux-4.4.y branch, and that's going to happen in every future merge too. Instead of defining it there, put it in localversion-cip. Signed-off-by: Ben Hutchings --- Makefile | 2 +- localversion-cip | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 localversion-cip diff --git a/Makefile b/Makefile index 867863d9c037..341b05fb4f94 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ VERSION = 4 PATCHLEVEL = 4 SUBLEVEL = 42 -EXTRAVERSION = -cip +EXTRAVERSION = NAME = Blurry Fish Butt # *DOCUMENTATION* diff --git a/localversion-cip b/localversion-cip new file mode 100644 index 000000000000..5ce6abb54950 --- /dev/null +++ b/localversion-cip @@ -0,0 +1 @@ +-cip1 From 71836a9d4355fabe12975e3cca19993ec829a89d Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Fri, 10 Feb 2017 12:59:20 +0000 Subject: [PATCH 0037/1149] CIP: Bump version suffix to -cip2 after merge Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 5ce6abb54950..21e806b58f25 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip1 +-cip2 From a09e49b41e1bb15e0ec04a8a3b92728de7310c96 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Sun, 19 Mar 2017 18:23:33 +0000 Subject: [PATCH 0038/1149] CIP: Bump version suffix to -cip3 after merge Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 21e806b58f25..0c9838ed9b88 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip2 +-cip3 From d331184e2e9696bf9c16572aa547b3f062e75dba Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Wed, 24 May 2017 02:51:01 +0100 Subject: [PATCH 0039/1149] CIP: Bump version suffix to -cip4 after merge Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 0c9838ed9b88..710987bf29ce 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip3 +-cip4 From c40ae15de5e35e5155b869edabbbedabfda38a69 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Fri, 30 Jun 2017 19:25:26 +0100 Subject: [PATCH 0040/1149] CIP: Bump version suffix to -cip5 after merge Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 710987bf29ce..f6c9e0a9a498 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip4 +-cip5 From b17a0a5bbdd68d407d1b258385e4e567951592c3 Mon Sep 17 00:00:00 2001 From: Eugeniu Rosca Date: Tue, 6 Jun 2017 00:08:10 +0200 Subject: [PATCH 0041/1149] ravb: Fix use-after-free on `ifconfig eth0 down` commit 79514ef670e9e575a1fe36922268c439d0f0ca8a upstream. Commit a47b70ea86bd ("ravb: unmap descriptors when freeing rings") has introduced the issue seen in [1] reproduced on H3ULCB board. Fix this by relocating the RX skb ringbuffer free operation, so that swiotlb page unmapping can be done first. Freeing of aligned TX buffers is not relevant to the issue seen in [1]. Still, reposition TX free calls as well, to have all kfree() operations performed consistently _after_ dma_unmap_*()/dma_free_*(). [1] Console screenshot with the problem reproduced: salvator-x login: root root@salvator-x:~# ifconfig eth0 up Micrel KSZ9031 Gigabit PHY e6800000.ethernet-ffffffff:00: \ attached PHY driver [Micrel KSZ9031 Gigabit PHY] \ (mii_bus:phy_addr=e6800000.ethernet-ffffffff:00, irq=235) IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready root@salvator-x:~# root@salvator-x:~# ifconfig eth0 down ================================================================== BUG: KASAN: use-after-free in swiotlb_tbl_unmap_single+0xc4/0x35c Write of size 1538 at addr ffff8006d884f780 by task ifconfig/1649 CPU: 0 PID: 1649 Comm: ifconfig Not tainted 4.12.0-rc4-00004-g112eb07287d1 #32 Hardware name: Renesas H3ULCB board based on r8a7795 (DT) Call trace: [] dump_backtrace+0x0/0x3a4 [] show_stack+0x14/0x1c [] dump_stack+0xf8/0x150 [] print_address_description+0x7c/0x330 [] kasan_report+0x2e0/0x2f4 [] check_memory_region+0x20/0x14c [] memcpy+0x48/0x68 [] swiotlb_tbl_unmap_single+0xc4/0x35c [] unmap_single+0x90/0xa4 [] swiotlb_unmap_page+0xc/0x14 [] __swiotlb_unmap_page+0xcc/0xe4 [] ravb_ring_free+0x514/0x870 [] ravb_close+0x288/0x36c [] __dev_close_many+0x14c/0x174 [] __dev_close+0xc8/0x144 [] __dev_change_flags+0xd8/0x194 [] dev_change_flags+0x60/0xb0 [] devinet_ioctl+0x484/0x9d4 [] inet_ioctl+0x190/0x194 [] sock_do_ioctl+0x78/0xa8 [] sock_ioctl+0x110/0x3c4 [] vfs_ioctl+0x90/0xa0 [] do_vfs_ioctl+0x148/0xc38 [] SyS_ioctl+0x44/0x74 [] el0_svc_naked+0x24/0x28 The buggy address belongs to the page: page:ffff7e001b6213c0 count:0 mapcount:0 mapping: (null) index:0x0 flags: 0x4000000000000000() raw: 4000000000000000 0000000000000000 0000000000000000 00000000ffffffff raw: 0000000000000000 ffff7e001b6213e0 0000000000000000 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff8006d884f680: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ffff8006d884f700: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff >ffff8006d884f780: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ^ ffff8006d884f800: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ffff8006d884f880: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ================================================================== Disabling lock debugging due to kernel taint root@salvator-x:~# Fixes: a47b70ea86bd ("ravb: unmap descriptors when freeing rings") Signed-off-by: Eugeniu Rosca Acked-by: Sergei Shtylyov Signed-off-by: David S. Miller Signed-off-by: Ben Hutchings --- drivers/net/ethernet/renesas/ravb_main.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c index 1e61d4da72db..585e90f8341d 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -221,18 +221,6 @@ static void ravb_ring_free(struct net_device *ndev, int q) int ring_size; int i; - /* Free RX skb ringbuffer */ - if (priv->rx_skb[q]) { - for (i = 0; i < priv->num_rx_ring[q]; i++) - dev_kfree_skb(priv->rx_skb[q][i]); - } - kfree(priv->rx_skb[q]); - priv->rx_skb[q] = NULL; - - /* Free aligned TX buffers */ - kfree(priv->tx_align[q]); - priv->tx_align[q] = NULL; - if (priv->rx_ring[q]) { for (i = 0; i < priv->num_rx_ring[q]; i++) { struct ravb_ex_rx_desc *desc = &priv->rx_ring[q][i]; @@ -261,6 +249,18 @@ static void ravb_ring_free(struct net_device *ndev, int q) priv->tx_ring[q] = NULL; } + /* Free RX skb ringbuffer */ + if (priv->rx_skb[q]) { + for (i = 0; i < priv->num_rx_ring[q]; i++) + dev_kfree_skb(priv->rx_skb[q][i]); + } + kfree(priv->rx_skb[q]); + priv->rx_skb[q] = NULL; + + /* Free aligned TX buffers */ + kfree(priv->tx_align[q]); + priv->tx_align[q] = NULL; + /* Free TX skb ringbuffer. * SKBs are freed by ravb_tx_free() call above. */ From 7e93446865635e9e898a90eb4d6597644881b497 Mon Sep 17 00:00:00 2001 From: Willem de Bruijn Date: Sat, 18 Feb 2017 19:00:45 -0500 Subject: [PATCH 0042/1149] ipv6: release dst on error in ip6_dst_lookup_tail commit 00ea1ceebe0d9f2dc1cc2b7bd575a00100c27869 upstream. If ip6_dst_lookup_tail has acquired a dst and fails the IPv4-mapped check, release the dst before returning an error. Fixes: ec5e3b0a1d41 ("ipv6: Inhibit IPv4-mapped src address on the wire.") Signed-off-by: Willem de Bruijn Acked-by: Eric Dumazet Signed-off-by: David S. Miller Signed-off-by: Ben Hutchings --- net/ipv6/ip6_output.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index 19c0d67ce8c4..7d339fc1057f 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -1005,8 +1005,10 @@ static int ip6_dst_lookup_tail(struct net *net, const struct sock *sk, } #endif if (ipv6_addr_v4mapped(&fl6->saddr) && - !(ipv6_addr_v4mapped(&fl6->daddr) || ipv6_addr_any(&fl6->daddr))) - return -EAFNOSUPPORT; + !(ipv6_addr_v4mapped(&fl6->daddr) || ipv6_addr_any(&fl6->daddr))) { + err = -EAFNOSUPPORT; + goto out_err_release; + } return 0; From c1c84a526c2f1f3c981e202f489cee040eeda124 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Fri, 30 Jun 2017 19:35:44 +0100 Subject: [PATCH 0043/1149] CIP: Bump version suffix to -cip6 after cherry-picking fixes Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index f6c9e0a9a498..8b900f831287 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip5 +-cip6 From fb38a9f59b1409ad5c4c00d86b1dfc1773d2b255 Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Wed, 12 Jul 2017 10:21:06 +0100 Subject: [PATCH 0044/1149] sh_eth: add R8A7743/5 support Add support for the first two members of the Renesas RZ/G family, RZ/G1M/E (also known as R8A7743/5). The Ether core is the same as in the R-Car gen2 SoCs, so will share the code/data with them... Signed-off-by: Sergei Shtylyov Acked-by: Geert Uytterhoeven Signed-off-by: David S. Miller (cherry picked from commit c099ff3cdb9dd2281dee3dc4ef89fec1c516df22) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/net/sh_eth.txt | 2 ++ drivers/net/ethernet/renesas/Kconfig | 2 +- drivers/net/ethernet/renesas/sh_eth.c | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/net/sh_eth.txt b/Documentation/devicetree/bindings/net/sh_eth.txt index 2f6ec85fda8e..0115c85a2425 100644 --- a/Documentation/devicetree/bindings/net/sh_eth.txt +++ b/Documentation/devicetree/bindings/net/sh_eth.txt @@ -5,6 +5,8 @@ interface contains. Required properties: - compatible: "renesas,gether-r8a7740" if the device is a part of R8A7740 SoC. + "renesas,ether-r8a7743" if the device is a part of R8A7743 SoC. + "renesas,ether-r8a7745" if the device is a part of R8A7745 SoC. "renesas,ether-r8a7778" if the device is a part of R8A7778 SoC. "renesas,ether-r8a7779" if the device is a part of R8A7779 SoC. "renesas,ether-r8a7790" if the device is a part of R8A7790 SoC. diff --git a/drivers/net/ethernet/renesas/Kconfig b/drivers/net/ethernet/renesas/Kconfig index 270c4c9cac7f..0f865218e67e 100644 --- a/drivers/net/ethernet/renesas/Kconfig +++ b/drivers/net/ethernet/renesas/Kconfig @@ -27,7 +27,7 @@ config SH_ETH Renesas SuperH Ethernet device driver. This driver supporting CPUs are: - SH7619, SH7710, SH7712, SH7724, SH7734, SH7763, SH7757, - R8A7740, R8A777x and R8A779x. + R8A7740, R8A774x, R8A777x and R8A779x. config RAVB tristate "Renesas Ethernet AVB support" diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c index 480f3dae0780..c04b4ea8cdae 100644 --- a/drivers/net/ethernet/renesas/sh_eth.c +++ b/drivers/net/ethernet/renesas/sh_eth.c @@ -3055,6 +3055,8 @@ static struct sh_eth_plat_data *sh_eth_parse_dt(struct device *dev) static const struct of_device_id sh_eth_match_table[] = { { .compatible = "renesas,gether-r8a7740", .data = &r8a7740_data }, + { .compatible = "renesas,ether-r8a7743", .data = &r8a779x_data }, + { .compatible = "renesas,ether-r8a7745", .data = &r8a779x_data }, { .compatible = "renesas,ether-r8a7778", .data = &r8a777x_data }, { .compatible = "renesas,ether-r8a7779", .data = &r8a777x_data }, { .compatible = "renesas,ether-r8a7790", .data = &r8a779x_data }, From 2ea955ea7a1204a7d387decd4f099cb5d98ecb8e Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Wed, 12 Jul 2017 10:21:07 +0100 Subject: [PATCH 0045/1149] DT: irqchip: renesas-irqc: document R8A7743/5 support Renesas RZ/G SoC have the R-Car gen2 compatible IRQC interrupt controllers. Document RZ/G1[ME] (also known as R8A774[35]) SoC bindings. Signed-off-by: Sergei Shtylyov Acked-by: Geert Uytterhoeven Signed-off-by: Rob Herring (cherry picked from commit 87e5fc99b0280b492724cc7f2d8d9ad37b980087) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- .../devicetree/bindings/interrupt-controller/renesas,irqc.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt b/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt index ae5054c27c99..e3f052d8c11a 100644 --- a/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt +++ b/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt @@ -1,10 +1,12 @@ -DT bindings for the R-Mobile/R-Car interrupt controller +DT bindings for the R-Mobile/R-Car/RZ/G interrupt controller Required properties: - compatible: has to be "renesas,irqc-", "renesas,irqc" as fallback. Examples with soctypes are: - "renesas,irqc-r8a73a4" (R-Mobile APE6) + - "renesas,irqc-r8a7743" (RZ/G1M) + - "renesas,irqc-r8a7745" (RZ/G1E) - "renesas,irqc-r8a7790" (R-Car H2) - "renesas,irqc-r8a7791" (R-Car M2-W) - "renesas,irqc-r8a7792" (R-Car V2H) From a126849fcfc0a41cb9af67911e04cba46be986ef Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Wed, 12 Jul 2017 10:21:08 +0100 Subject: [PATCH 0046/1149] sh-sci: document R8A7743/5 support Renesas RZ/G SoC also have the SCIF, SCIFA, SCIFB, and HSCIF ports and they seem compatible with the R-Car gen2 SoC in this respect... Document RZ/G1[ME] (also known as R8A774[35]) SoC bindings. Signed-off-by: Sergei Shtylyov Acked-by: Simon Horman Acked-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman (cherry picked from commit c03e1b8703a4a0c8bac7f6b65d8fcb539ec62d82) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- .../devicetree/bindings/serial/renesas,sci-serial.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt index 73f825e5e644..cbcfdc07fd89 100644 --- a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt +++ b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt @@ -9,6 +9,14 @@ Required properties: - "renesas,scifb-r8a73a4" for R8A73A4 (R-Mobile APE6) SCIFB compatible UART. - "renesas,scifa-r8a7740" for R8A7740 (R-Mobile A1) SCIFA compatible UART. - "renesas,scifb-r8a7740" for R8A7740 (R-Mobile A1) SCIFB compatible UART. + - "renesas,scif-r8a7743" for R8A7743 (RZ/G1M) SCIF compatible UART. + - "renesas,scifa-r8a7743" for R8A7743 (RZ/G1M) SCIFA compatible UART. + - "renesas,scifb-r8a7743" for R8A7743 (RZ/G1M) SCIFB compatible UART. + - "renesas,hscif-r8a7743" for R8A7743 (RZ/G1M) HSCIF compatible UART. + - "renesas,scif-r8a7745" for R8A7745 (RZ/G1E) SCIF compatible UART. + - "renesas,scifa-r8a7745" for R8A7745 (RZ/G1E) SCIFA compatible UART. + - "renesas,scifb-r8a7745" for R8A7745 (RZ/G1E) SCIFB compatible UART. + - "renesas,hscif-r8a7745" for R8A7745 (RZ/G1E) HSCIF compatible UART. - "renesas,scif-r8a7778" for R8A7778 (R-Car M1) SCIF compatible UART. - "renesas,scif-r8a7779" for R8A7779 (R-Car H1) SCIF compatible UART. - "renesas,scif-r8a7790" for R8A7790 (R-Car H2) SCIF compatible UART. From 3233d25028a5897b0b6267240001371939e07b7f Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Wed, 12 Jul 2017 10:21:09 +0100 Subject: [PATCH 0047/1149] ARM: shmobile: r8a7743: basic SoC support Add minimal support for the RZ/G1M (R8A7743) SoC. Based on the original (and large) patch by Dmitry Shifrin . Signed-off-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit e920565a1cc4a352719b42ba5e83d952a9a26507) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- .../devicetree/bindings/arm/shmobile.txt | 2 ++ arch/arm/mach-shmobile/Kconfig | 4 +++ arch/arm/mach-shmobile/Makefile | 1 + arch/arm/mach-shmobile/setup-r8a7743.c | 34 +++++++++++++++++++ 4 files changed, 41 insertions(+) create mode 100644 arch/arm/mach-shmobile/setup-r8a7743.c diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt index 40bb9007cd0d..07b5818aea11 100644 --- a/Documentation/devicetree/bindings/arm/shmobile.txt +++ b/Documentation/devicetree/bindings/arm/shmobile.txt @@ -13,6 +13,8 @@ SoCs: compatible = "renesas,r8a73a4" - R-Mobile A1 (R8A77400) compatible = "renesas,r8a7740" + - RZ/G1M (R8A77430) + compatible = "renesas,r8a7743" - R-Car M1A (R8A77781) compatible = "renesas,r8a7778" - R-Car H1 (R8A77790) diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index 88734a5e10ca..09929a3c435e 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig @@ -64,6 +64,10 @@ config ARCH_R8A7740 select ARCH_RMOBILE select RENESAS_INTC_IRQPIN +config ARCH_R8A7743 + bool "RZ/G1M (R8A77430)" + select ARCH_RCAR_GEN2 + config ARCH_R8A7778 bool "R-Car M1A (R8A77781)" select ARCH_RCAR_GEN1 diff --git a/arch/arm/mach-shmobile/Makefile b/arch/arm/mach-shmobile/Makefile index a65c80ac9009..2db591241f77 100644 --- a/arch/arm/mach-shmobile/Makefile +++ b/arch/arm/mach-shmobile/Makefile @@ -9,6 +9,7 @@ obj-y := timer.o obj-$(CONFIG_ARCH_SH73A0) += setup-sh73a0.o obj-$(CONFIG_ARCH_R8A73A4) += setup-r8a73a4.o obj-$(CONFIG_ARCH_R8A7740) += setup-r8a7740.o +obj-$(CONFIG_ARCH_R8A7743) += setup-r8a7743.o obj-$(CONFIG_ARCH_R8A7778) += setup-r8a7778.o obj-$(CONFIG_ARCH_R8A7779) += setup-r8a7779.o pm-r8a7779.o obj-$(CONFIG_ARCH_R8A7790) += setup-r8a7790.o diff --git a/arch/arm/mach-shmobile/setup-r8a7743.c b/arch/arm/mach-shmobile/setup-r8a7743.c new file mode 100644 index 000000000000..a7ecb82d219f --- /dev/null +++ b/arch/arm/mach-shmobile/setup-r8a7743.c @@ -0,0 +1,34 @@ +/* + * r8a7743 processor support + * + * Copyright (C) 2016 Cogent Embedded, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation; of the License. + * + * 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. + */ + +#include + +#include + +#include "common.h" +#include "rcar-gen2.h" + +static const char * const r8a7743_boards_compat_dt[] __initconst = { + "renesas,r8a7743", + NULL, +}; + +DT_MACHINE_START(R8A7743_DT, "Generic R8A7743 (Flattened Device Tree)") + .init_early = shmobile_init_delay, + .init_time = rcar_gen2_timer_init, + .init_late = shmobile_init_late, + .reserve = rcar_gen2_reserve, + .dt_compat = r8a7743_boards_compat_dt, +MACHINE_END From ba8bde64b18b237f3b501638535d575332496763 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Wed, 12 Jul 2017 10:21:10 +0100 Subject: [PATCH 0048/1149] ARM: shmobile: Consolidate R8A7743 and R8A779[234] machine definitions The four SoCs use identical machine operations, consolidate them into two machine definitions in a single file. Signed-off-by: Laurent Pinchart Tested-by: Simon Horman Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit a0c4e2ccb31540f8972d8f36d32ace6b30e88e0f) Signed-off-by: Biju Das Conflicts: arch/arm/mach-shmobile/Makefile [modified]:arch/arm/mach-shmobile/setup-rcar-gen2.c Signed-off-by: Ben Hutchings --- arch/arm/mach-shmobile/Makefile | 3 --- arch/arm/mach-shmobile/setup-r8a7743.c | 34 ------------------------ arch/arm/mach-shmobile/setup-r8a7793.c | 33 ----------------------- arch/arm/mach-shmobile/setup-r8a7794.c | 33 ----------------------- arch/arm/mach-shmobile/setup-rcar-gen2.c | 32 ++++++++++++++++++++++ 5 files changed, 32 insertions(+), 103 deletions(-) delete mode 100644 arch/arm/mach-shmobile/setup-r8a7743.c delete mode 100644 arch/arm/mach-shmobile/setup-r8a7793.c delete mode 100644 arch/arm/mach-shmobile/setup-r8a7794.c diff --git a/arch/arm/mach-shmobile/Makefile b/arch/arm/mach-shmobile/Makefile index 2db591241f77..46202026382a 100644 --- a/arch/arm/mach-shmobile/Makefile +++ b/arch/arm/mach-shmobile/Makefile @@ -9,13 +9,10 @@ obj-y := timer.o obj-$(CONFIG_ARCH_SH73A0) += setup-sh73a0.o obj-$(CONFIG_ARCH_R8A73A4) += setup-r8a73a4.o obj-$(CONFIG_ARCH_R8A7740) += setup-r8a7740.o -obj-$(CONFIG_ARCH_R8A7743) += setup-r8a7743.o obj-$(CONFIG_ARCH_R8A7778) += setup-r8a7778.o obj-$(CONFIG_ARCH_R8A7779) += setup-r8a7779.o pm-r8a7779.o obj-$(CONFIG_ARCH_R8A7790) += setup-r8a7790.o obj-$(CONFIG_ARCH_R8A7791) += setup-r8a7791.o -obj-$(CONFIG_ARCH_R8A7793) += setup-r8a7793.o -obj-$(CONFIG_ARCH_R8A7794) += setup-r8a7794.o obj-$(CONFIG_ARCH_EMEV2) += setup-emev2.o obj-$(CONFIG_ARCH_R7S72100) += setup-r7s72100.o diff --git a/arch/arm/mach-shmobile/setup-r8a7743.c b/arch/arm/mach-shmobile/setup-r8a7743.c deleted file mode 100644 index a7ecb82d219f..000000000000 --- a/arch/arm/mach-shmobile/setup-r8a7743.c +++ /dev/null @@ -1,34 +0,0 @@ -/* - * r8a7743 processor support - * - * Copyright (C) 2016 Cogent Embedded, Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation; of the License. - * - * 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. - */ - -#include - -#include - -#include "common.h" -#include "rcar-gen2.h" - -static const char * const r8a7743_boards_compat_dt[] __initconst = { - "renesas,r8a7743", - NULL, -}; - -DT_MACHINE_START(R8A7743_DT, "Generic R8A7743 (Flattened Device Tree)") - .init_early = shmobile_init_delay, - .init_time = rcar_gen2_timer_init, - .init_late = shmobile_init_late, - .reserve = rcar_gen2_reserve, - .dt_compat = r8a7743_boards_compat_dt, -MACHINE_END diff --git a/arch/arm/mach-shmobile/setup-r8a7793.c b/arch/arm/mach-shmobile/setup-r8a7793.c deleted file mode 100644 index 5fce87f7f254..000000000000 --- a/arch/arm/mach-shmobile/setup-r8a7793.c +++ /dev/null @@ -1,33 +0,0 @@ -/* - * r8a7793 processor support - * - * Copyright (C) 2015 Ulrich Hecht - * - * 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; version 2 of the License. - * - * 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. - */ - -#include -#include - -#include "common.h" -#include "rcar-gen2.h" - -static const char * const r8a7793_boards_compat_dt[] __initconst = { - "renesas,r8a7793", - NULL, -}; - -DT_MACHINE_START(R8A7793_DT, "Generic R8A7793 (Flattened Device Tree)") - .init_early = shmobile_init_delay, - .init_time = rcar_gen2_timer_init, - .init_late = shmobile_init_late, - .reserve = rcar_gen2_reserve, - .dt_compat = r8a7793_boards_compat_dt, -MACHINE_END diff --git a/arch/arm/mach-shmobile/setup-r8a7794.c b/arch/arm/mach-shmobile/setup-r8a7794.c deleted file mode 100644 index d2b093033132..000000000000 --- a/arch/arm/mach-shmobile/setup-r8a7794.c +++ /dev/null @@ -1,33 +0,0 @@ -/* - * r8a7794 processor support - * - * Copyright (C) 2014 Renesas Electronics Corporation - * Copyright (C) 2014 Ulrich Hecht - * - * 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; version 2 of the License. - * - * 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. - */ - -#include -#include "common.h" -#include "rcar-gen2.h" -#include - -static const char * const r8a7794_boards_compat_dt[] __initconst = { - "renesas,r8a7794", - NULL, -}; - -DT_MACHINE_START(R8A7794_DT, "Generic R8A7794 (Flattened Device Tree)") - .init_early = shmobile_init_delay, - .init_late = shmobile_init_late, - .init_time = rcar_gen2_timer_init, - .reserve = rcar_gen2_reserve, - .dt_compat = r8a7794_boards_compat_dt, -MACHINE_END diff --git a/arch/arm/mach-shmobile/setup-rcar-gen2.c b/arch/arm/mach-shmobile/setup-rcar-gen2.c index 9eccde3c7b13..3b5f6ac24b84 100644 --- a/arch/arm/mach-shmobile/setup-rcar-gen2.c +++ b/arch/arm/mach-shmobile/setup-rcar-gen2.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include "common.h" #include "rcar-gen2.h" @@ -199,3 +200,34 @@ void __init rcar_gen2_reserve(void) &rcar_gen2_dma_contiguous, true); #endif } + +static const char * const rcar_gen2_boards_compat_dt[] __initconst = { + /* + * R8A7790 and R8A7791 can't be handled here as long as they need SMP + * initialization fallback. + */ + "renesas,r8a7793", + "renesas,r8a7794", + NULL, +}; + +DT_MACHINE_START(RCAR_GEN2_DT, "Generic R-Car Gen2 (Flattened Device Tree)") + .init_early = shmobile_init_delay, + .init_late = shmobile_init_late, + .init_time = rcar_gen2_timer_init, + .reserve = rcar_gen2_reserve, + .dt_compat = rcar_gen2_boards_compat_dt, +MACHINE_END + +static const char * const rz_g1_boards_compat_dt[] __initconst = { + "renesas,r8a7743", + NULL, +}; + +DT_MACHINE_START(RZ_G1_DT, "Generic RZ/G1 (Flattened Device Tree)") + .init_early = shmobile_init_delay, + .init_late = shmobile_init_late, + .init_time = rcar_gen2_timer_init, + .reserve = rcar_gen2_reserve, + .dt_compat = rz_g1_boards_compat_dt, +MACHINE_END From a953d57e1a6e57d669c98c7fe9482e352a3fb0cd Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Wed, 12 Jul 2017 10:21:11 +0100 Subject: [PATCH 0049/1149] ARM: shmobile: r8a7745: basic SoC support Add minimal support for the RZ/G1E (R8A7745) SoC. Signed-off-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven Acked-by: Rob Herring Signed-off-by: Simon Horman (cherry picked from commit 47802fd7c7c4735ddaf004e0f61371dcaa86f4ad) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/arm/shmobile.txt | 2 ++ arch/arm/mach-shmobile/Kconfig | 4 ++++ arch/arm/mach-shmobile/setup-rcar-gen2.c | 1 + 3 files changed, 7 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt index 07b5818aea11..b29d9c79c098 100644 --- a/Documentation/devicetree/bindings/arm/shmobile.txt +++ b/Documentation/devicetree/bindings/arm/shmobile.txt @@ -15,6 +15,8 @@ SoCs: compatible = "renesas,r8a7740" - RZ/G1M (R8A77430) compatible = "renesas,r8a7743" + - RZ/G1E (R8A77450) + compatible = "renesas,r8a7745" - R-Car M1A (R8A77781) compatible = "renesas,r8a7778" - R-Car H1 (R8A77790) diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index 09929a3c435e..602fc2d6d3a5 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig @@ -68,6 +68,10 @@ config ARCH_R8A7743 bool "RZ/G1M (R8A77430)" select ARCH_RCAR_GEN2 +config ARCH_R8A7745 + bool "RZ/G1E (R8A77450)" + select ARCH_RCAR_GEN2 + config ARCH_R8A7778 bool "R-Car M1A (R8A77781)" select ARCH_RCAR_GEN1 diff --git a/arch/arm/mach-shmobile/setup-rcar-gen2.c b/arch/arm/mach-shmobile/setup-rcar-gen2.c index 3b5f6ac24b84..3911716d215d 100644 --- a/arch/arm/mach-shmobile/setup-rcar-gen2.c +++ b/arch/arm/mach-shmobile/setup-rcar-gen2.c @@ -221,6 +221,7 @@ MACHINE_END static const char * const rz_g1_boards_compat_dt[] __initconst = { "renesas,r8a7743", + "renesas,r8a7745", NULL, }; From 7bac4ad3e40f5beb75f08a801677b2d155223df1 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Wed, 19 Jul 2017 14:42:46 +0100 Subject: [PATCH 0050/1149] CIP: Build essential clock driver for Renesas RZ/G1 platforms In mainline, clk-rcar-gen2 is selected by CONFIG_CLK_RCAR_GEN2 but here there is no such common config symbol and we need to select it for each platform. Signed-off-by: Ben Hutchings --- drivers/clk/shmobile/Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/clk/shmobile/Makefile b/drivers/clk/shmobile/Makefile index 97c71c885e4f..b339c0b6bb2f 100644 --- a/drivers/clk/shmobile/Makefile +++ b/drivers/clk/shmobile/Makefile @@ -2,6 +2,8 @@ obj-$(CONFIG_ARCH_EMEV2) += clk-emev2.o obj-$(CONFIG_ARCH_R7S72100) += clk-rz.o obj-$(CONFIG_ARCH_R8A73A4) += clk-r8a73a4.o obj-$(CONFIG_ARCH_R8A7740) += clk-r8a7740.o +obj-$(CONFIG_ARCH_R8A7743) += clk-rcar-gen2.o +obj-$(CONFIG_ARCH_R8A7745) += clk-rcar-gen2.o obj-$(CONFIG_ARCH_R8A7778) += clk-r8a7778.o obj-$(CONFIG_ARCH_R8A7779) += clk-r8a7779.o obj-$(CONFIG_ARCH_R8A7790) += clk-rcar-gen2.o From e8e9ee59ffddcc70218cd32186cfaff90359d500 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 20 Jul 2017 09:48:53 +0100 Subject: [PATCH 0051/1149] of: Add vendor prefix for iWave Systems Technologies Pvt. Ltd This patch adds vendor prefix for iWave Systems Technologies Pvt. Ltd. Website: http://www.iwavesystems.com/ Signed-off-by: Biju Das Reviewed-by: Chris Paterson Acked-by: Geert Uytterhoeven Signed-off-by: Rob Herring (cherry picked from commit 9b6782e7f0efc2bf483e000b95fc7c06322a0703) Signed-off-by: Chris Paterson Conflicts: Documentation/devicetree/bindings/vendor-prefixes.txt Signed-off-by: Chris Paterson Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt index 55df1d444e9f..626475286e12 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt @@ -119,6 +119,7 @@ intercontrol Inter Control Group invensense InvenSense Inc. isee ISEE 2007 S.L. isil Intersil +iwave iWave Systems Technologies Pvt. Ltd. jedec JEDEC Solid State Technology Association karo Ka-Ro electronics GmbH keymile Keymile GmbH From aef4a56fd35467c1a4705c02ee558bd0fc28c072 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 20 Jul 2017 09:48:54 +0100 Subject: [PATCH 0052/1149] ARM: shmobile: document iW-RainboW-G20M-Qseven-RZG1M system on module Document the iW-RainboW-G20M-Qseven-RZG1M device tree bindings, listing it as a supported system on module. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 427bc40375df765b6146ce917d5a3d3832482935) Signed-off-by: Chris Paterson Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/arm/shmobile.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt index b29d9c79c098..90b6bd82377f 100644 --- a/Documentation/devicetree/bindings/arm/shmobile.txt +++ b/Documentation/devicetree/bindings/arm/shmobile.txt @@ -49,6 +49,8 @@ Boards: compatible = "renesas,gose", "renesas,r8a7793" - Henninger compatible = "renesas,henninger", "renesas,r8a7791" + - iWave Systems RZ/G1M Qseven System On Module (iW-RainboW-G20M-Qseven) + compatible = "iwave,g20m", "renesas,r8a7743" - Koelsch (RTP0RC7791SEB00010S) compatible = "renesas,koelsch", "renesas,r8a7791" - Kyoto Microcomputer Co. KZM-A9-Dual From 5da5ea379251ce63d3f21bf65ad7d335265beefc Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 20 Jul 2017 09:48:55 +0100 Subject: [PATCH 0053/1149] ARM: shmobile: document iW-RainboW-G20D-Qseven-RZG1M board Document the iW-RainboW-G20D-Qseven-RZG1M device tree bindings, listing it as a supported board. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 9086120f8b883034940e5228c83824ed21999537) Signed-off-by: Chris Paterson Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/arm/shmobile.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt index 90b6bd82377f..7ec024c41705 100644 --- a/Documentation/devicetree/bindings/arm/shmobile.txt +++ b/Documentation/devicetree/bindings/arm/shmobile.txt @@ -49,6 +49,8 @@ Boards: compatible = "renesas,gose", "renesas,r8a7793" - Henninger compatible = "renesas,henninger", "renesas,r8a7791" + - iWave Systems RZ/G1M Qseven Development Platform (iW-RainboW-G20D-Qseven) + compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7743" - iWave Systems RZ/G1M Qseven System On Module (iW-RainboW-G20M-Qseven) compatible = "iwave,g20m", "renesas,r8a7743" - Koelsch (RTP0RC7791SEB00010S) From c64c9ac286d4fe6fe4372a5dc4e615d8de4182af Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Mon, 21 Aug 2017 01:26:05 +0100 Subject: [PATCH 0054/1149] CIP: Bump version suffix to -cip7 after Renesas platform support backports Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 8b900f831287..9d10d6b47141 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip6 +-cip7 From 85bb5cd88634226c03aba6513f73286eb5acaf62 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Mon, 21 Aug 2017 01:26:55 +0100 Subject: [PATCH 0055/1149] CIP: Bump version suffix to -cip8 after merge Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 9d10d6b47141..7adc9cb17fbd 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip7 +-cip8 From 497f2599e9626f3cd22a35473a397120b0639bb7 Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 20:52:28 +0200 Subject: [PATCH 0056/1149] stmmac: Add support for SIMATIC IOT2000 platform commit 212c7fd614377fef4415d94856a59e9f484aa439 upstream. The IOT2000 is industrial controller platform, derived from the Intel Galileo Gen2 board. The variant IOT2020 comes with one LAN port, the IOT2040 has two of them. They can be told apart based on the board asset tag in the DMI table. Based on patch by Sascha Weisenberger. Signed-off-by: Jan Kiszka Signed-off-by: Sascha Weisenberger Reviewed-by: Andy Shevchenko Signed-off-by: David S. Miller Signed-off-by: Ben Hutchings --- .../net/ethernet/stmicro/stmmac/stmmac_pci.c | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c index d71a721ea61c..3491e98bffc5 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c @@ -36,6 +36,7 @@ */ struct stmmac_pci_dmi_data { const char *name; + const char *asset_tag; unsigned int func; int phy_addr; }; @@ -50,6 +51,7 @@ struct stmmac_pci_info { static int stmmac_pci_find_phy_addr(struct stmmac_pci_info *info) { const char *name = dmi_get_system_info(DMI_BOARD_NAME); + const char *asset_tag = dmi_get_system_info(DMI_BOARD_ASSET_TAG); unsigned int func = PCI_FUNC(info->pdev->devfn); struct stmmac_pci_dmi_data *dmi; @@ -61,8 +63,12 @@ static int stmmac_pci_find_phy_addr(struct stmmac_pci_info *info) return 1; for (dmi = info->dmi; dmi->name && *dmi->name; dmi++) { - if (!strcmp(dmi->name, name) && dmi->func == func) + if (!strcmp(dmi->name, name) && dmi->func == func) { + /* If asset tag is provided, match on it as well. */ + if (dmi->asset_tag && strcmp(dmi->asset_tag, asset_tag)) + continue; return dmi->phy_addr; + } } return -ENODEV; @@ -138,6 +144,24 @@ static struct stmmac_pci_dmi_data quark_pci_dmi_data[] = { .func = 6, .phy_addr = 1, }, + { + .name = "SIMATIC IOT2000", + .asset_tag = "6ES7647-0AA00-0YA2", + .func = 6, + .phy_addr = 1, + }, + { + .name = "SIMATIC IOT2000", + .asset_tag = "6ES7647-0AA00-1YA2", + .func = 6, + .phy_addr = 1, + }, + { + .name = "SIMATIC IOT2000", + .asset_tag = "6ES7647-0AA00-1YA2", + .func = 7, + .phy_addr = 1, + }, {} }; From fcb9c294371b79168115e0ef0911208fc7709331 Mon Sep 17 00:00:00 2001 From: Alison Schofield Date: Wed, 30 Aug 2017 20:52:29 +0200 Subject: [PATCH 0057/1149] iio: core: implement iio_device_{claim|release}_direct_mode() commit 08a33805518e7845486f88287e8aace6f8439391 upstream. It is often the case that the driver wants to be sure a device stays in direct mode while it is executing a task or series of tasks. To accomplish this today, the driver performs this sequence: 1) take the device state lock, 2) verify it is not in a buffered mode, 3) execute some tasks, and 4) release that lock. This patch introduces a pair of helper functions that simplify these steps and make it more semantically expressive. iio_device_claim_direct_mode() If the device is not in any buffered mode it is guaranteed to stay that way until iio_release_direct_mode() is called. iio_device_release_direct_mode() Release the claim. Device is no longer guaranteed to stay in direct mode. Signed-off-by: Alison Schofield Signed-off-by: Jonathan Cameron Signed-off-by: Ben Hutchings --- drivers/iio/industrialio-core.c | 39 +++++++++++++++++++++++++++++++++ include/linux/iio/iio.h | 2 ++ 2 files changed, 41 insertions(+) diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c index 131b434af994..dc0701f0ab03 100644 --- a/drivers/iio/industrialio-core.c +++ b/drivers/iio/industrialio-core.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include "iio_core.h" #include "iio_core_trigger.h" @@ -1363,6 +1364,44 @@ void devm_iio_device_unregister(struct device *dev, struct iio_dev *indio_dev) } EXPORT_SYMBOL_GPL(devm_iio_device_unregister); +/** + * iio_device_claim_direct_mode - Keep device in direct mode + * @indio_dev: the iio_dev associated with the device + * + * If the device is in direct mode it is guaranteed to stay + * that way until iio_device_release_direct_mode() is called. + * + * Use with iio_device_release_direct_mode() + * + * Returns: 0 on success, -EBUSY on failure + */ +int iio_device_claim_direct_mode(struct iio_dev *indio_dev) +{ + mutex_lock(&indio_dev->mlock); + + if (iio_buffer_enabled(indio_dev)) { + mutex_unlock(&indio_dev->mlock); + return -EBUSY; + } + return 0; +} +EXPORT_SYMBOL_GPL(iio_device_claim_direct_mode); + +/** + * iio_device_release_direct_mode - releases claim on direct mode + * @indio_dev: the iio_dev associated with the device + * + * Release the claim. Device is no longer guaranteed to stay + * in direct mode. + * + * Use with iio_device_claim_direct_mode() + */ +void iio_device_release_direct_mode(struct iio_dev *indio_dev) +{ + mutex_unlock(&indio_dev->mlock); +} +EXPORT_SYMBOL_GPL(iio_device_release_direct_mode); + subsys_initcall(iio_init); module_exit(iio_exit); diff --git a/include/linux/iio/iio.h b/include/linux/iio/iio.h index 19c94c9acc81..b6edc8dcbe61 100644 --- a/include/linux/iio/iio.h +++ b/include/linux/iio/iio.h @@ -527,6 +527,8 @@ void iio_device_unregister(struct iio_dev *indio_dev); int devm_iio_device_register(struct device *dev, struct iio_dev *indio_dev); void devm_iio_device_unregister(struct device *dev, struct iio_dev *indio_dev); int iio_push_event(struct iio_dev *indio_dev, u64 ev_code, s64 timestamp); +int iio_device_claim_direct_mode(struct iio_dev *indio_dev); +void iio_device_release_direct_mode(struct iio_dev *indio_dev); extern struct bus_type iio_bus_type; From 3bfcac40fe4ed5d6308a036e524641a09933a137 Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 20:52:30 +0200 Subject: [PATCH 0058/1149] iio: adc: Add support for TI ADC108S102 and ADC128S102 commit 7e87d11c9bda75816ced8d0895e8d24e5c52833a upstream. This is an upstream port of an IIO driver for the TI ADC108S102 and ADC128S102. The former can be found on the Intel Galileo Gen2 and the Siemens SIMATIC IOT2000. For those boards, ACPI-based enumeration is included. Due to the lack of regulators under ACPI, we hard-code the voltage provided to the VA pin of the ADC to 5 V, the value used on Galileo and IOT2000. For DT usage, the regulator "vref-supply" provides this information. Note that DT usage has not been tested. Original author: Bogdan Pricop Ported from Intel Galileo Gen2 BSP to Intel Yocto kernel: Todor Minchev . Signed-off-by: Jan Kiszka Signed-off-by: Jonathan Cameron [Jan: remove parameter from iio_get_time_ns for 4.4] Signed-off-by: Ben Hutchings --- .../bindings/iio/adc/ti-adc108s102.txt | 18 + drivers/iio/adc/Kconfig | 12 + drivers/iio/adc/Makefile | 1 + drivers/iio/adc/ti-adc108s102.c | 348 ++++++++++++++++++ 4 files changed, 379 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/adc/ti-adc108s102.txt create mode 100644 drivers/iio/adc/ti-adc108s102.c diff --git a/Documentation/devicetree/bindings/iio/adc/ti-adc108s102.txt b/Documentation/devicetree/bindings/iio/adc/ti-adc108s102.txt new file mode 100644 index 000000000000..bbbbb4a9f58f --- /dev/null +++ b/Documentation/devicetree/bindings/iio/adc/ti-adc108s102.txt @@ -0,0 +1,18 @@ +* Texas Instruments' ADC108S102 and ADC128S102 ADC chip + +Required properties: + - compatible: Should be "ti,adc108s102" + - reg: spi chip select number for the device + - vref-supply: The regulator supply for ADC reference voltage + +Recommended properties: + - spi-max-frequency: Definition as per + Documentation/devicetree/bindings/spi/spi-bus.txt + +Example: +adc@0 { + compatible = "ti,adc108s102"; + reg = <0>; + vref-supply = <&vdd_supply>; + spi-max-frequency = <1000000>; +}; diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig index bda6bbe4479c..5c9d65101e9b 100644 --- a/drivers/iio/adc/Kconfig +++ b/drivers/iio/adc/Kconfig @@ -324,6 +324,18 @@ config TI_ADC081C This driver can also be built as a module. If so, the module will be called ti-adc081c. +config TI_ADC108S102 + tristate "Texas Instruments ADC108S102 and ADC128S102 driver" + depends on SPI + select IIO_BUFFER + select IIO_TRIGGERED_BUFFER + help + Say yes here to build support for Texas Instruments ADC108S102 and + ADC128S102 ADC. + + To compile this driver as a module, choose M here: the module will + be called ti-adc108s102. + config TI_ADC128S052 tristate "Texas Instruments ADC128S052/ADC122S021" depends on SPI diff --git a/drivers/iio/adc/Makefile b/drivers/iio/adc/Makefile index 99b37a963a1e..4f942eae584a 100644 --- a/drivers/iio/adc/Makefile +++ b/drivers/iio/adc/Makefile @@ -31,6 +31,7 @@ obj-$(CONFIG_QCOM_SPMI_IADC) += qcom-spmi-iadc.o obj-$(CONFIG_QCOM_SPMI_VADC) += qcom-spmi-vadc.o obj-$(CONFIG_ROCKCHIP_SARADC) += rockchip_saradc.o obj-$(CONFIG_TI_ADC081C) += ti-adc081c.o +obj-$(CONFIG_TI_ADC108S102) += ti-adc108s102.o obj-$(CONFIG_TI_ADC128S052) += ti-adc128s052.o obj-$(CONFIG_TI_AM335X_ADC) += ti_am335x_adc.o obj-$(CONFIG_TWL4030_MADC) += twl4030-madc.o diff --git a/drivers/iio/adc/ti-adc108s102.c b/drivers/iio/adc/ti-adc108s102.c new file mode 100644 index 000000000000..0b438bfdaea3 --- /dev/null +++ b/drivers/iio/adc/ti-adc108s102.c @@ -0,0 +1,348 @@ +/* + * TI ADC108S102 SPI ADC driver + * + * Copyright (c) 2013-2015 Intel Corporation. + * Copyright (c) 2017 Siemens AG + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope 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. + * + * This IIO device driver is designed to work with the following + * analog to digital converters from Texas Instruments: + * ADC108S102 + * ADC128S102 + * The communication with ADC chip is via the SPI bus (mode 3). + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * In case of ACPI, we use the hard-wired 5000 mV of the Galileo and IOT2000 + * boards as default for the reference pin VA. Device tree users encode that + * via the vref-supply regulator. + */ +#define ADC108S102_VA_MV_ACPI_DEFAULT 5000 + +/* + * Defining the ADC resolution being 12 bits, we can use the same driver for + * both ADC108S102 (10 bits resolution) and ADC128S102 (12 bits resolution) + * chips. The ADC108S102 effectively returns a 12-bit result with the 2 + * least-significant bits unset. + */ +#define ADC108S102_BITS 12 +#define ADC108S102_MAX_CHANNELS 8 + +/* + * 16-bit SPI command format: + * [15:14] Ignored + * [13:11] 3-bit channel address + * [10:0] Ignored + */ +#define ADC108S102_CMD(ch) ((u16)(ch) << 11) + +/* + * 16-bit SPI response format: + * [15:12] Zeros + * [11:0] 12-bit ADC sample (for ADC108S102, [1:0] will always be 0). + */ +#define ADC108S102_RES_DATA(res) ((u16)res & GENMASK(11, 0)) + +struct adc108s102_state { + struct spi_device *spi; + struct regulator *reg; + u32 va_millivolt; + /* SPI transfer used by triggered buffer handler*/ + struct spi_transfer ring_xfer; + /* SPI transfer used by direct scan */ + struct spi_transfer scan_single_xfer; + /* SPI message used by ring_xfer SPI transfer */ + struct spi_message ring_msg; + /* SPI message used by scan_single_xfer SPI transfer */ + struct spi_message scan_single_msg; + + /* + * SPI message buffers: + * tx_buf: |C0|C1|C2|C3|C4|C5|C6|C7|XX| + * rx_buf: |XX|R0|R1|R2|R3|R4|R5|R6|R7|tt|tt|tt|tt| + * + * tx_buf: 8 channel read commands, plus 1 dummy command + * rx_buf: 1 dummy response, 8 channel responses, plus 64-bit timestamp + */ + __be16 rx_buf[13] ____cacheline_aligned; + __be16 tx_buf[9] ____cacheline_aligned; +}; + +#define ADC108S102_V_CHAN(index) \ + { \ + .type = IIO_VOLTAGE, \ + .indexed = 1, \ + .channel = index, \ + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | \ + BIT(IIO_CHAN_INFO_SCALE), \ + .address = index, \ + .scan_index = index, \ + .scan_type = { \ + .sign = 'u', \ + .realbits = ADC108S102_BITS, \ + .storagebits = 16, \ + .endianness = IIO_BE, \ + }, \ + } + +static const struct iio_chan_spec adc108s102_channels[] = { + ADC108S102_V_CHAN(0), + ADC108S102_V_CHAN(1), + ADC108S102_V_CHAN(2), + ADC108S102_V_CHAN(3), + ADC108S102_V_CHAN(4), + ADC108S102_V_CHAN(5), + ADC108S102_V_CHAN(6), + ADC108S102_V_CHAN(7), + IIO_CHAN_SOFT_TIMESTAMP(8), +}; + +static int adc108s102_update_scan_mode(struct iio_dev *indio_dev, + unsigned long const *active_scan_mask) +{ + struct adc108s102_state *st = iio_priv(indio_dev); + unsigned int bit, cmds; + + /* + * Fill in the first x shorts of tx_buf with the number of channels + * enabled for sampling by the triggered buffer. + */ + cmds = 0; + for_each_set_bit(bit, active_scan_mask, ADC108S102_MAX_CHANNELS) + st->tx_buf[cmds++] = cpu_to_be16(ADC108S102_CMD(bit)); + + /* One dummy command added, to clock in the last response */ + st->tx_buf[cmds++] = 0x00; + + /* build SPI ring message */ + st->ring_xfer.tx_buf = &st->tx_buf[0]; + st->ring_xfer.rx_buf = &st->rx_buf[0]; + st->ring_xfer.len = cmds * sizeof(st->tx_buf[0]); + + spi_message_init_with_transfers(&st->ring_msg, &st->ring_xfer, 1); + + return 0; +} + +static irqreturn_t adc108s102_trigger_handler(int irq, void *p) +{ + struct iio_poll_func *pf = p; + struct iio_dev *indio_dev = pf->indio_dev; + struct adc108s102_state *st = iio_priv(indio_dev); + int ret; + + ret = spi_sync(st->spi, &st->ring_msg); + if (ret < 0) + goto out_notify; + + /* Skip the dummy response in the first slot */ + iio_push_to_buffers_with_timestamp(indio_dev, + (u8 *)&st->rx_buf[1], + iio_get_time_ns()); + +out_notify: + iio_trigger_notify_done(indio_dev->trig); + + return IRQ_HANDLED; +} + +static int adc108s102_scan_direct(struct adc108s102_state *st, unsigned int ch) +{ + int ret; + + st->tx_buf[0] = cpu_to_be16(ADC108S102_CMD(ch)); + ret = spi_sync(st->spi, &st->scan_single_msg); + if (ret) + return ret; + + /* Skip the dummy response in the first slot */ + return be16_to_cpu(st->rx_buf[1]); +} + +static int adc108s102_read_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + int *val, int *val2, long m) +{ + struct adc108s102_state *st = iio_priv(indio_dev); + int ret; + + switch (m) { + case IIO_CHAN_INFO_RAW: + ret = iio_device_claim_direct_mode(indio_dev); + if (ret) + return ret; + + ret = adc108s102_scan_direct(st, chan->address); + + iio_device_release_direct_mode(indio_dev); + + if (ret < 0) + return ret; + + *val = ADC108S102_RES_DATA(ret); + + return IIO_VAL_INT; + case IIO_CHAN_INFO_SCALE: + if (chan->type != IIO_VOLTAGE) + break; + + *val = st->va_millivolt; + *val2 = chan->scan_type.realbits; + + return IIO_VAL_FRACTIONAL_LOG2; + default: + break; + } + + return -EINVAL; +} + +static const struct iio_info adc108s102_info = { + .read_raw = &adc108s102_read_raw, + .update_scan_mode = &adc108s102_update_scan_mode, + .driver_module = THIS_MODULE, +}; + +static int adc108s102_probe(struct spi_device *spi) +{ + struct adc108s102_state *st; + struct iio_dev *indio_dev; + int ret; + + indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); + if (!indio_dev) + return -ENOMEM; + + st = iio_priv(indio_dev); + + if (ACPI_COMPANION(&spi->dev)) { + st->va_millivolt = ADC108S102_VA_MV_ACPI_DEFAULT; + } else { + st->reg = devm_regulator_get(&spi->dev, "vref"); + if (IS_ERR(st->reg)) + return PTR_ERR(st->reg); + + ret = regulator_enable(st->reg); + if (ret < 0) { + dev_err(&spi->dev, "Cannot enable vref regulator\n"); + return ret; + } + + ret = regulator_get_voltage(st->reg); + if (ret < 0) { + dev_err(&spi->dev, "vref get voltage failed\n"); + return ret; + } + + st->va_millivolt = ret / 1000; + } + + spi_set_drvdata(spi, indio_dev); + st->spi = spi; + + indio_dev->name = spi->modalias; + indio_dev->dev.parent = &spi->dev; + indio_dev->modes = INDIO_DIRECT_MODE; + indio_dev->channels = adc108s102_channels; + indio_dev->num_channels = ARRAY_SIZE(adc108s102_channels); + indio_dev->info = &adc108s102_info; + + /* Setup default message */ + st->scan_single_xfer.tx_buf = st->tx_buf; + st->scan_single_xfer.rx_buf = st->rx_buf; + st->scan_single_xfer.len = 2 * sizeof(st->tx_buf[0]); + + spi_message_init_with_transfers(&st->scan_single_msg, + &st->scan_single_xfer, 1); + + ret = iio_triggered_buffer_setup(indio_dev, NULL, + &adc108s102_trigger_handler, NULL); + if (ret) + goto error_disable_reg; + + ret = iio_device_register(indio_dev); + if (ret) { + dev_err(&spi->dev, "Failed to register IIO device\n"); + goto error_cleanup_triggered_buffer; + } + return 0; + +error_cleanup_triggered_buffer: + iio_triggered_buffer_cleanup(indio_dev); + +error_disable_reg: + regulator_disable(st->reg); + + return ret; +} + +static int adc108s102_remove(struct spi_device *spi) +{ + struct iio_dev *indio_dev = spi_get_drvdata(spi); + struct adc108s102_state *st = iio_priv(indio_dev); + + iio_device_unregister(indio_dev); + iio_triggered_buffer_cleanup(indio_dev); + + regulator_disable(st->reg); + + return 0; +} + +#ifdef CONFIG_OF +static const struct of_device_id adc108s102_of_match[] = { + { .compatible = "ti,adc108s102" }, + { } +}; +MODULE_DEVICE_TABLE(of, adc108s102_of_match); +#endif + +#ifdef CONFIG_ACPI +static const struct acpi_device_id adc108s102_acpi_ids[] = { + { "INT3495", 0 }, + { } +}; +MODULE_DEVICE_TABLE(acpi, adc108s102_acpi_ids); +#endif + +static const struct spi_device_id adc108s102_id[] = { + { "adc108s102", 0 }, + { } +}; +MODULE_DEVICE_TABLE(spi, adc108s102_id); + +static struct spi_driver adc108s102_driver = { + .driver = { + .name = "adc108s102", + .of_match_table = of_match_ptr(adc108s102_of_match), + .acpi_match_table = ACPI_PTR(adc108s102_acpi_ids), + }, + .probe = adc108s102_probe, + .remove = adc108s102_remove, + .id_table = adc108s102_id, +}; +module_spi_driver(adc108s102_driver); + +MODULE_AUTHOR("Bogdan Pricop "); +MODULE_DESCRIPTION("Texas Instruments ADC108S102 and ADC128S102 driver"); +MODULE_LICENSE("GPL v2"); From 1c13458f34989b65fa37dcabbe5a562ec22bc4be Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 20:52:31 +0200 Subject: [PATCH 0059/1149] mfd: intel_quark_i2c_gpio: Use dmi_system_id table for retrieving frequency commit b518d4adb83e3e139d3de96d172d9b4dec6def09 upstream. Avoids reimplementation of DMI matching in intel_quark_i2c_setup. Signed-off-by: Jan Kiszka Reviewed-by: Andy Shevchenko Signed-off-by: Lee Jones Signed-off-by: Ben Hutchings --- drivers/mfd/intel_quark_i2c_gpio.c | 33 ++++++++++++------------------ 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/drivers/mfd/intel_quark_i2c_gpio.c b/drivers/mfd/intel_quark_i2c_gpio.c index 042137465300..57d4396dab5d 100644 --- a/drivers/mfd/intel_quark_i2c_gpio.c +++ b/drivers/mfd/intel_quark_i2c_gpio.c @@ -60,19 +60,18 @@ struct intel_quark_mfd { struct clk_lookup *i2c_clk_lookup; }; -struct i2c_mode_info { - const char *name; - unsigned int i2c_scl_freq; -}; - -static const struct i2c_mode_info platform_i2c_mode_info[] = { +static const struct dmi_system_id dmi_platform_info[] = { { - .name = "Galileo", - .i2c_scl_freq = 100000, + .matches = { + DMI_EXACT_MATCH(DMI_BOARD_NAME, "Galileo"), + }, + .driver_data = (void *)100000, }, { - .name = "GalileoGen2", - .i2c_scl_freq = 400000, + .matches = { + DMI_EXACT_MATCH(DMI_BOARD_NAME, "GalileoGen2"), + }, + .driver_data = (void *)400000, }, {} }; @@ -167,8 +166,7 @@ static void intel_quark_unregister_i2c_clk(struct pci_dev *pdev) static int intel_quark_i2c_setup(struct pci_dev *pdev, struct mfd_cell *cell) { - const char *board_name = dmi_get_system_info(DMI_BOARD_NAME); - const struct i2c_mode_info *info; + const struct dmi_system_id *dmi_id; struct dw_i2c_platform_data *pdata; struct resource *res = (struct resource *)cell->resources; struct device *dev = &pdev->dev; @@ -188,14 +186,9 @@ static int intel_quark_i2c_setup(struct pci_dev *pdev, struct mfd_cell *cell) /* Normal mode by default */ pdata->i2c_scl_freq = 100000; - if (board_name) { - for (info = platform_i2c_mode_info; info->name; info++) { - if (!strcmp(board_name, info->name)) { - pdata->i2c_scl_freq = info->i2c_scl_freq; - break; - } - } - } + dmi_id = dmi_first_match(dmi_platform_info); + if (dmi_id) + pdata->i2c_scl_freq = (uintptr_t)dmi_id->driver_data; cell->platform_data = pdata; cell->pdata_size = sizeof(*pdata); From fd6b5291a711ba2e5d0c73279cb2caa73e042892 Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 20:52:32 +0200 Subject: [PATCH 0060/1149] mfd: intel_quark_i2c_gpio: Add support for SIMATIC IOT2000 platform commit 842086d2b5a6cec23d598edffb5137c72b265c50 upstream. The SIMATIC IOT2020 and IOT2040 are derived from the Galileo Gen2 board and share its I2C frequency. Signed-off-by: Sascha Weisenberger Signed-off-by: Jan Kiszka Reviewed-by: Andy Shevchenko Signed-off-by: Lee Jones Signed-off-by: Ben Hutchings --- drivers/mfd/intel_quark_i2c_gpio.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/mfd/intel_quark_i2c_gpio.c b/drivers/mfd/intel_quark_i2c_gpio.c index 57d4396dab5d..1c09604978d3 100644 --- a/drivers/mfd/intel_quark_i2c_gpio.c +++ b/drivers/mfd/intel_quark_i2c_gpio.c @@ -73,6 +73,22 @@ static const struct dmi_system_id dmi_platform_info[] = { }, .driver_data = (void *)400000, }, + { + .matches = { + DMI_EXACT_MATCH(DMI_BOARD_NAME, "SIMATIC IOT2000"), + DMI_EXACT_MATCH(DMI_BOARD_ASSET_TAG, + "6ES7647-0AA00-0YA2"), + }, + .driver_data = (void *)400000, + }, + { + .matches = { + DMI_EXACT_MATCH(DMI_BOARD_NAME, "SIMATIC IOT2000"), + DMI_EXACT_MATCH(DMI_BOARD_ASSET_TAG, + "6ES7647-0AA00-1YA2"), + }, + .driver_data = (void *)400000, + }, {} }; From 9c66ed01aa099c4af246da42ea1941ed6996b618 Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Thu, 3 Dec 2015 15:14:13 +0100 Subject: [PATCH 0061/1149] gpio: add a data pointer to gpio_chip commit b08ea35a3296ee25c4cb53a977b752266dafa2c2 upstream. This adds a void * pointer to gpio_chip so that driver can assign and retrieve some states. This is done to get rid of container_of() calls for gpio_chips embedded inside state containers, so we can remove the need to have the gpio_chip or later (planned) struct gpio_device be dynamically allocated at registration time, so that its struct device can be properly reference counted and not bound to its parent device (e.g. a platform_device) but instead live on after unregistration if it is opened by e.g. a char device or sysfs. The data is added with the new function gpiochip_add_data() and for compatibility we add static inline wrapper function gpiochip_add() that will call gpiochip_add_data() with NULL as argument. The latter will be removed once we have exorcised gpiochip_add() from the kernel. gpiochip_get_data() is added as a static inline accessor for drivers to quickly get their data out. Signed-off-by: Linus Walleij [bwh: Backported to 4.4: adjust context] Signed-off-by: Ben Hutchings --- drivers/gpio/gpiolib.c | 10 ++++++---- include/linux/gpio/driver.h | 14 +++++++++++++- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 06d345b087f8..66fa17615d7c 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -280,7 +280,7 @@ static int gpiochip_set_desc_names(struct gpio_chip *gc) } /** - * gpiochip_add() - register a gpio_chip + * gpiochip_add_data() - register a gpio_chip * @chip: the chip to register, with chip->base initialized * Context: potentially before irqs will work * @@ -288,7 +288,7 @@ static int gpiochip_set_desc_names(struct gpio_chip *gc) * because the chip->base is invalid or already associated with a * different chip. Otherwise it returns zero as a success code. * - * When gpiochip_add() is called very early during boot, so that GPIOs + * When gpiochip_add_data() is called very early during boot, so that GPIOs * can be freely used, the chip->dev device must be registered before * the gpio framework's arch_initcall(). Otherwise sysfs initialization * for GPIOs will fail rudely. @@ -296,7 +296,7 @@ static int gpiochip_set_desc_names(struct gpio_chip *gc) * If chip->base is negative, this requests dynamic assignment of * a range of valid GPIOs. */ -int gpiochip_add(struct gpio_chip *chip) +int gpiochip_add_data(struct gpio_chip *chip, void *data) { unsigned long flags; int status = 0; @@ -308,6 +308,8 @@ int gpiochip_add(struct gpio_chip *chip) if (!descs) return -ENOMEM; + chip->data = data; + spin_lock_irqsave(&gpio_lock, flags); if (base < 0) { @@ -389,7 +391,7 @@ int gpiochip_add(struct gpio_chip *chip) chip->label ? : "generic"); return status; } -EXPORT_SYMBOL_GPL(gpiochip_add); +EXPORT_SYMBOL_GPL(gpiochip_add_data); /** * gpiochip_remove() - unregister a gpio_chip diff --git a/include/linux/gpio/driver.h b/include/linux/gpio/driver.h index d1baebf350d8..424d11f4fa05 100644 --- a/include/linux/gpio/driver.h +++ b/include/linux/gpio/driver.h @@ -23,6 +23,7 @@ struct seq_file; * @dev: optional device providing the GPIOs * @cdev: class device used by sysfs interface (may be NULL) * @owner: helps prevent removal of modules exporting active GPIOs + * @data: per-instance data assigned by the driver * @list: links gpio_chips together for traversal * @request: optional hook for chip-specific activation, such as * enabling module power and clock; may sleep @@ -92,6 +93,7 @@ struct gpio_chip { struct device *dev; struct device *cdev; struct module *owner; + void *data; struct list_head list; int (*request)(struct gpio_chip *chip, @@ -166,7 +168,11 @@ extern const char *gpiochip_is_requested(struct gpio_chip *chip, unsigned offset); /* add/remove chips */ -extern int gpiochip_add(struct gpio_chip *chip); +extern int gpiochip_add_data(struct gpio_chip *chip, void *data); +static inline int gpiochip_add(struct gpio_chip *chip) +{ + return gpiochip_add_data(chip, NULL); +} extern void gpiochip_remove(struct gpio_chip *chip); extern struct gpio_chip *gpiochip_find(void *data, int (*match)(struct gpio_chip *chip, void *data)); @@ -175,6 +181,12 @@ extern struct gpio_chip *gpiochip_find(void *data, int gpiochip_lock_as_irq(struct gpio_chip *chip, unsigned int offset); void gpiochip_unlock_as_irq(struct gpio_chip *chip, unsigned int offset); +/* get driver data */ +static inline void *gpiochip_get_data(struct gpio_chip *chip) +{ + return chip->data; +} + struct gpio_chip *gpiod_to_chip(const struct gpio_desc *desc); #ifdef CONFIG_GPIOLIB_IRQCHIP From e27baf84541c78bf17d70f3bea59573163529e91 Mon Sep 17 00:00:00 2001 From: Laxman Dewangan Date: Mon, 15 Feb 2016 16:32:09 +0530 Subject: [PATCH 0062/1149] gpio: Add devm_ apis for gpiochip_add_data and gpiochip_remove commit 0cf3292cde22f8843ae5d1eeb8466d8121243c1a upstream. Add device managed APIs devm_gpiochip_add_data() and devm_gpiochip_remove() for the APIs gpiochip_add_data() and gpiochip_remove(). This helps in reducing code in error path and sometimes removal of .remove callback for driver unbind. Signed-off-by: Laxman Dewangan Signed-off-by: Ben Hutchings --- drivers/gpio/gpiolib.c | 74 +++++++++++++++++++++++++++++++++++++ include/linux/gpio/driver.h | 4 ++ 2 files changed, 78 insertions(+) diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 66fa17615d7c..c96dd9af9b2e 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -433,6 +433,80 @@ void gpiochip_remove(struct gpio_chip *chip) } EXPORT_SYMBOL_GPL(gpiochip_remove); +static void devm_gpio_chip_release(struct device *dev, void *res) +{ + struct gpio_chip *chip = *(struct gpio_chip **)res; + + gpiochip_remove(chip); +} + +static int devm_gpio_chip_match(struct device *dev, void *res, void *data) + +{ + struct gpio_chip **r = res; + + if (!r || !*r) { + WARN_ON(!r || !*r); + return 0; + } + + return *r == data; +} + +/** + * devm_gpiochip_add_data() - Resource manager piochip_add_data() + * @dev: the device pointer on which irq_chip belongs to. + * @chip: the chip to register, with chip->base initialized + * Context: potentially before irqs will work + * + * Returns a negative errno if the chip can't be registered, such as + * because the chip->base is invalid or already associated with a + * different chip. Otherwise it returns zero as a success code. + * + * The gpio chip automatically be released when the device is unbound. + */ +int devm_gpiochip_add_data(struct device *dev, struct gpio_chip *chip, + void *data) +{ + struct gpio_chip **ptr; + int ret; + + ptr = devres_alloc(devm_gpio_chip_release, sizeof(*ptr), + GFP_KERNEL); + if (!ptr) + return -ENOMEM; + + ret = gpiochip_add_data(chip, data); + if (ret < 0) { + devres_free(ptr); + return ret; + } + + *ptr = chip; + devres_add(dev, ptr); + + return 0; +} +EXPORT_SYMBOL_GPL(devm_gpiochip_add_data); + +/** + * devm_gpiochip_remove() - Resource manager of gpiochip_remove() + * @dev: device for which which resource was allocated + * @chip: the chip to remove + * + * A gpio_chip with any GPIOs still requested may not be removed. + */ +void devm_gpiochip_remove(struct device *dev, struct gpio_chip *chip) +{ + int ret; + + ret = devres_release(dev, devm_gpio_chip_release, + devm_gpio_chip_match, chip); + if (!ret) + WARN_ON(ret); +} +EXPORT_SYMBOL_GPL(devm_gpiochip_remove); + /** * gpiochip_find() - iterator for locating a specific gpio_chip * @data: data to pass to match function diff --git a/include/linux/gpio/driver.h b/include/linux/gpio/driver.h index 424d11f4fa05..de502c7e4171 100644 --- a/include/linux/gpio/driver.h +++ b/include/linux/gpio/driver.h @@ -174,6 +174,10 @@ static inline int gpiochip_add(struct gpio_chip *chip) return gpiochip_add_data(chip, NULL); } extern void gpiochip_remove(struct gpio_chip *chip); +extern int devm_gpiochip_add_data(struct device *dev, struct gpio_chip *chip, + void *data); +extern void devm_gpiochip_remove(struct device *dev, struct gpio_chip *chip); + extern struct gpio_chip *gpiochip_find(void *data, int (*match)(struct gpio_chip *chip, void *data)); From 85003649699c0c4b108c4c0b22b33cd1e9ac8c0b Mon Sep 17 00:00:00 2001 From: Christophe JAILLET Date: Fri, 27 Jan 2017 12:56:42 +0100 Subject: [PATCH 0063/1149] gpiolib: Fix a WARN_ON that can never trigger commit 3988d663c02fc050afddb78953e8b0cad83e9905 upstream. "if (!x) WARN_ON(x)" can never trigger. Signed-off-by: Christophe JAILLET Signed-off-by: Linus Walleij Signed-off-by: Ben Hutchings --- drivers/gpio/gpiolib.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index c96dd9af9b2e..9a9399e6ca60 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -502,8 +502,7 @@ void devm_gpiochip_remove(struct device *dev, struct gpio_chip *chip) ret = devres_release(dev, devm_gpio_chip_release, devm_gpio_chip_match, chip); - if (!ret) - WARN_ON(ret); + WARN_ON(ret); } EXPORT_SYMBOL_GPL(devm_gpiochip_remove); From bf87ec55af77c0b1beed5a93291fd45f77eec962 Mon Sep 17 00:00:00 2001 From: Mika Westerberg Date: Wed, 30 Aug 2017 20:52:33 +0200 Subject: [PATCH 0064/1149] pwm: pca9685: Allow any of the 16 PWMs to be used as a GPIO commit bccec89f0a35f65302734d1cdb01479df0f33ac9 upstream. The PCA9685 controller has full on/off bit for each PWM channel. Setting this bit bypasses the PWM control and the line works just as it would be a GPIO. Furthermore in Intel Galileo it is actually used as GPIO output for discreet muxes on the board. This patch adds GPIO output only support for the driver so that we can control the muxes on Galileo using standard GPIO interfaces available in the kernel. GPIO and PWM functionality is exclusive so only one can be active at a time on a single PWM channel. Signed-off-by: Mika Westerberg Acked-by: Linus Walleij Signed-off-by: Thierry Reding [Jan: adjusted gpio.parent to .dev for 4.4] Signed-off-by: Jan Kiszka Signed-off-by: Ben Hutchings --- drivers/pwm/pwm-pca9685.c | 164 +++++++++++++++++++++++++++++++++++++- 1 file changed, 163 insertions(+), 1 deletion(-) diff --git a/drivers/pwm/pwm-pca9685.c b/drivers/pwm/pwm-pca9685.c index 01a6a83f625d..cad6cdf06d03 100644 --- a/drivers/pwm/pwm-pca9685.c +++ b/drivers/pwm/pwm-pca9685.c @@ -20,8 +20,10 @@ */ #include +#include #include #include +#include #include #include #include @@ -80,6 +82,10 @@ struct pca9685 { int active_cnt; int duty_ns; int period_ns; +#if IS_ENABLED(CONFIG_GPIOLIB) + struct mutex lock; + struct gpio_chip gpio; +#endif }; static inline struct pca9685 *to_pca(struct pwm_chip *chip) @@ -87,6 +93,151 @@ static inline struct pca9685 *to_pca(struct pwm_chip *chip) return container_of(chip, struct pca9685, chip); } +#if IS_ENABLED(CONFIG_GPIOLIB) +static int pca9685_pwm_gpio_request(struct gpio_chip *gpio, unsigned int offset) +{ + struct pca9685 *pca = gpiochip_get_data(gpio); + struct pwm_device *pwm; + + mutex_lock(&pca->lock); + + pwm = &pca->chip.pwms[offset]; + + if (pwm->flags & (PWMF_REQUESTED | PWMF_EXPORTED)) { + mutex_unlock(&pca->lock); + return -EBUSY; + } + + pwm_set_chip_data(pwm, (void *)1); + + mutex_unlock(&pca->lock); + return 0; +} + +static void pca9685_pwm_gpio_free(struct gpio_chip *gpio, unsigned int offset) +{ + struct pca9685 *pca = gpiochip_get_data(gpio); + struct pwm_device *pwm; + + mutex_lock(&pca->lock); + pwm = &pca->chip.pwms[offset]; + pwm_set_chip_data(pwm, NULL); + mutex_unlock(&pca->lock); +} + +static bool pca9685_pwm_is_gpio(struct pca9685 *pca, struct pwm_device *pwm) +{ + bool is_gpio = false; + + mutex_lock(&pca->lock); + + if (pwm->hwpwm >= PCA9685_MAXCHAN) { + unsigned int i; + + /* + * Check if any of the GPIOs are requested and in that case + * prevent using the "all LEDs" channel. + */ + for (i = 0; i < pca->gpio.ngpio; i++) + if (gpiochip_is_requested(&pca->gpio, i)) { + is_gpio = true; + break; + } + } else if (pwm_get_chip_data(pwm)) { + is_gpio = true; + } + + mutex_unlock(&pca->lock); + return is_gpio; +} + +static int pca9685_pwm_gpio_get(struct gpio_chip *gpio, unsigned int offset) +{ + struct pca9685 *pca = gpiochip_get_data(gpio); + struct pwm_device *pwm = &pca->chip.pwms[offset]; + unsigned int value; + + regmap_read(pca->regmap, LED_N_ON_H(pwm->hwpwm), &value); + + return value & LED_FULL; +} + +static void pca9685_pwm_gpio_set(struct gpio_chip *gpio, unsigned int offset, + int value) +{ + struct pca9685 *pca = gpiochip_get_data(gpio); + struct pwm_device *pwm = &pca->chip.pwms[offset]; + unsigned int on = value ? LED_FULL : 0; + + /* Clear both OFF registers */ + regmap_write(pca->regmap, LED_N_OFF_L(pwm->hwpwm), 0); + regmap_write(pca->regmap, LED_N_OFF_H(pwm->hwpwm), 0); + + /* Set the full ON bit */ + regmap_write(pca->regmap, LED_N_ON_H(pwm->hwpwm), on); +} + +static int pca9685_pwm_gpio_get_direction(struct gpio_chip *chip, + unsigned int offset) +{ + /* Always out */ + return 0; +} + +static int pca9685_pwm_gpio_direction_input(struct gpio_chip *gpio, + unsigned int offset) +{ + return -EINVAL; +} + +static int pca9685_pwm_gpio_direction_output(struct gpio_chip *gpio, + unsigned int offset, int value) +{ + pca9685_pwm_gpio_set(gpio, offset, value); + + return 0; +} + +/* + * The PCA9685 has a bit for turning the PWM output full off or on. Some + * boards like Intel Galileo actually uses these as normal GPIOs so we + * expose a GPIO chip here which can exclusively take over the underlying + * PWM channel. + */ +static int pca9685_pwm_gpio_probe(struct pca9685 *pca) +{ + struct device *dev = pca->chip.dev; + + mutex_init(&pca->lock); + + pca->gpio.label = dev_name(dev); + pca->gpio.dev = dev; + pca->gpio.request = pca9685_pwm_gpio_request; + pca->gpio.free = pca9685_pwm_gpio_free; + pca->gpio.get_direction = pca9685_pwm_gpio_get_direction; + pca->gpio.direction_input = pca9685_pwm_gpio_direction_input; + pca->gpio.direction_output = pca9685_pwm_gpio_direction_output; + pca->gpio.get = pca9685_pwm_gpio_get; + pca->gpio.set = pca9685_pwm_gpio_set; + pca->gpio.base = -1; + pca->gpio.ngpio = PCA9685_MAXCHAN; + pca->gpio.can_sleep = true; + + return devm_gpiochip_add_data(dev, &pca->gpio, pca); +} +#else +static inline bool pca9685_pwm_is_gpio(struct pca9685 *pca, + struct pwm_device *pwm) +{ + return false; +} + +static inline int pca9685_pwm_gpio_probe(struct pca9685 *pca) +{ + return 0; +} +#endif + static int pca9685_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm, int duty_ns, int period_ns) { @@ -253,6 +404,9 @@ static int pca9685_pwm_request(struct pwm_chip *chip, struct pwm_device *pwm) { struct pca9685 *pca = to_pca(chip); + if (pca9685_pwm_is_gpio(pca, pwm)) + return -EBUSY; + if (pca->active_cnt++ == 0) return regmap_update_bits(pca->regmap, PCA9685_MODE1, MODE1_SLEEP, 0x0); @@ -334,7 +488,15 @@ static int pca9685_pwm_probe(struct i2c_client *client, pca->chip.base = -1; pca->chip.can_sleep = true; - return pwmchip_add(&pca->chip); + ret = pwmchip_add(&pca->chip); + if (ret < 0) + return ret; + + ret = pca9685_pwm_gpio_probe(pca); + if (ret < 0) + pwmchip_remove(&pca->chip); + + return ret; } static int pca9685_pwm_remove(struct i2c_client *client) From 1f2d0a8a8ca6fbad628021241d0fb8911410662d Mon Sep 17 00:00:00 2001 From: Sven Van Asbroeck Date: Wed, 30 Aug 2017 20:52:34 +0200 Subject: [PATCH 0065/1149] pwm: pca9685: Fix GPIO-only operation commit c40c461e1944b9cfb520e04184ec1e5c80fb210b upstream. GPIO-only driver operation never clears the SLEEP bit, which can cause the GPIOs to become unusable. Example: 1. user requests first PWM -> driver clears SLEEP bit 2. user frees last PWM -> driver sets SLEEP bit 3. user requests GPIO 4. user switches GPIO on -> output does not turn on because SLEEP bit is set Prevent this behaviour by letting the runtime PM framework control the SLEEP bit. This will put the chip to SLEEP if no PWMs/GPIOs are exported or in use. Fixes: bccec89f0a35 ("Allow any of the 16 PWMs to be used as a GPIO") Reported-by: Sven Van Asbroeck Signed-off-by: Sven Van Asbroeck Suggested-by: Mika Westerberg Reviewed-by: Mika Westerberg Signed-off-by: Thierry Reding Signed-off-by: Ben Hutchings --- drivers/pwm/pwm-pca9685.c | 112 +++++++++++++++++++++++++++----------- 1 file changed, 79 insertions(+), 33 deletions(-) diff --git a/drivers/pwm/pwm-pca9685.c b/drivers/pwm/pwm-pca9685.c index cad6cdf06d03..d2b92e940e38 100644 --- a/drivers/pwm/pwm-pca9685.c +++ b/drivers/pwm/pwm-pca9685.c @@ -30,6 +30,7 @@ #include #include #include +#include /* * Because the PCA9685 has only one prescaler per chip, changing the period of @@ -79,7 +80,6 @@ struct pca9685 { struct pwm_chip chip; struct regmap *regmap; - int active_cnt; int duty_ns; int period_ns; #if IS_ENABLED(CONFIG_GPIOLIB) @@ -111,20 +111,10 @@ static int pca9685_pwm_gpio_request(struct gpio_chip *gpio, unsigned int offset) pwm_set_chip_data(pwm, (void *)1); mutex_unlock(&pca->lock); + pm_runtime_get_sync(pca->chip.dev); return 0; } -static void pca9685_pwm_gpio_free(struct gpio_chip *gpio, unsigned int offset) -{ - struct pca9685 *pca = gpiochip_get_data(gpio); - struct pwm_device *pwm; - - mutex_lock(&pca->lock); - pwm = &pca->chip.pwms[offset]; - pwm_set_chip_data(pwm, NULL); - mutex_unlock(&pca->lock); -} - static bool pca9685_pwm_is_gpio(struct pca9685 *pca, struct pwm_device *pwm) { bool is_gpio = false; @@ -177,6 +167,19 @@ static void pca9685_pwm_gpio_set(struct gpio_chip *gpio, unsigned int offset, regmap_write(pca->regmap, LED_N_ON_H(pwm->hwpwm), on); } +static void pca9685_pwm_gpio_free(struct gpio_chip *gpio, unsigned int offset) +{ + struct pca9685 *pca = gpiochip_get_data(gpio); + struct pwm_device *pwm; + + pca9685_pwm_gpio_set(gpio, offset, 0); + pm_runtime_put(pca->chip.dev); + mutex_lock(&pca->lock); + pwm = &pca->chip.pwms[offset]; + pwm_set_chip_data(pwm, NULL); + mutex_unlock(&pca->lock); +} + static int pca9685_pwm_gpio_get_direction(struct gpio_chip *chip, unsigned int offset) { @@ -238,6 +241,16 @@ static inline int pca9685_pwm_gpio_probe(struct pca9685 *pca) } #endif +static void pca9685_set_sleep_mode(struct pca9685 *pca, int sleep) +{ + regmap_update_bits(pca->regmap, PCA9685_MODE1, + MODE1_SLEEP, sleep ? MODE1_SLEEP : 0); + if (!sleep) { + /* Wait 500us for the oscillator to be back up */ + udelay(500); + } +} + static int pca9685_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm, int duty_ns, int period_ns) { @@ -252,19 +265,20 @@ static int pca9685_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm, if (prescale >= PCA9685_PRESCALE_MIN && prescale <= PCA9685_PRESCALE_MAX) { + /* + * putting the chip briefly into SLEEP mode + * at this point won't interfere with the + * pm_runtime framework, because the pm_runtime + * state is guaranteed active here. + */ /* Put chip into sleep mode */ - regmap_update_bits(pca->regmap, PCA9685_MODE1, - MODE1_SLEEP, MODE1_SLEEP); + pca9685_set_sleep_mode(pca, 1); /* Change the chip-wide output frequency */ regmap_write(pca->regmap, PCA9685_PRESCALE, prescale); /* Wake the chip up */ - regmap_update_bits(pca->regmap, PCA9685_MODE1, - MODE1_SLEEP, 0x0); - - /* Wait 500us for the oscillator to be back up */ - udelay(500); + pca9685_set_sleep_mode(pca, 0); pca->period_ns = period_ns; } else { @@ -406,21 +420,15 @@ static int pca9685_pwm_request(struct pwm_chip *chip, struct pwm_device *pwm) if (pca9685_pwm_is_gpio(pca, pwm)) return -EBUSY; - - if (pca->active_cnt++ == 0) - return regmap_update_bits(pca->regmap, PCA9685_MODE1, - MODE1_SLEEP, 0x0); + pm_runtime_get_sync(chip->dev); return 0; } static void pca9685_pwm_free(struct pwm_chip *chip, struct pwm_device *pwm) { - struct pca9685 *pca = to_pca(chip); - - if (--pca->active_cnt == 0) - regmap_update_bits(pca->regmap, PCA9685_MODE1, MODE1_SLEEP, - MODE1_SLEEP); + pca9685_pwm_disable(chip, pwm); + pm_runtime_put(chip->dev); } static const struct pwm_ops pca9685_pwm_ops = { @@ -493,22 +501,54 @@ static int pca9685_pwm_probe(struct i2c_client *client, return ret; ret = pca9685_pwm_gpio_probe(pca); - if (ret < 0) + if (ret < 0) { pwmchip_remove(&pca->chip); + return ret; + } + + /* the chip comes out of power-up in the active state */ + pm_runtime_set_active(&client->dev); + /* + * enable will put the chip into suspend, which is what we + * want as all outputs are disabled at this point + */ + pm_runtime_enable(&client->dev); - return ret; + return 0; } static int pca9685_pwm_remove(struct i2c_client *client) { struct pca9685 *pca = i2c_get_clientdata(client); + int ret; - regmap_update_bits(pca->regmap, PCA9685_MODE1, MODE1_SLEEP, - MODE1_SLEEP); + ret = pwmchip_remove(&pca->chip); + if (ret) + return ret; + pm_runtime_disable(&client->dev); + return 0; +} - return pwmchip_remove(&pca->chip); +#ifdef CONFIG_PM +static int pca9685_pwm_runtime_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct pca9685 *pca = i2c_get_clientdata(client); + + pca9685_set_sleep_mode(pca, 1); + return 0; } +static int pca9685_pwm_runtime_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct pca9685 *pca = i2c_get_clientdata(client); + + pca9685_set_sleep_mode(pca, 0); + return 0; +} +#endif + static const struct i2c_device_id pca9685_id[] = { { "pca9685", 0 }, { /* sentinel */ }, @@ -531,11 +571,17 @@ static const struct of_device_id pca9685_dt_ids[] = { MODULE_DEVICE_TABLE(of, pca9685_dt_ids); #endif +static const struct dev_pm_ops pca9685_pwm_pm = { + SET_RUNTIME_PM_OPS(pca9685_pwm_runtime_suspend, + pca9685_pwm_runtime_resume, NULL) +}; + static struct i2c_driver pca9685_i2c_driver = { .driver = { .name = "pca9685-pwm", .acpi_match_table = ACPI_PTR(pca9685_acpi_ids), .of_match_table = of_match_ptr(pca9685_dt_ids), + .pm = &pca9685_pwm_pm, }, .probe = pca9685_pwm_probe, .remove = pca9685_pwm_remove, From a135e6be12c2cbfaeb6dde5c522bdb6e2e04b75f Mon Sep 17 00:00:00 2001 From: Yong Li Date: Wed, 30 Aug 2017 20:52:35 +0200 Subject: [PATCH 0066/1149] gpio: pca953x: add PCAL9535 interrupt support for Galileo Gen2 commit 44896beae605b93f2232301befccb7ef42953198 upstream. Galileo Gen2 board uses the PCAL9535 as the GPIO expansion, it is different from PCA9535 and includes interrupt mask/status registers, The current driver does not support the interrupt registers configuration, it causes some gpio pins cannot trigger interrupt events, this patch fix this issue. The original patch was submitted by Josef Ahmad http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-quark/tree/recipes-kernel/linux/files/0015-Quark-GPIO-1-2-quark.patch Signed-off-by: Yong Li Reviewed-by: Andy Shevchenko Signed-off-by: Linus Walleij Signed-off-by: Ben Hutchings --- drivers/gpio/gpio-pca953x.c | 42 ++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c index c844d7eccb6c..b45ba6be69ef 100644 --- a/drivers/gpio/gpio-pca953x.c +++ b/drivers/gpio/gpio-pca953x.c @@ -39,8 +39,13 @@ #define PCA957X_MSK 6 #define PCA957X_INTS 7 +#define PCAL953X_IN_LATCH 34 +#define PCAL953X_INT_MASK 37 +#define PCAL953X_INT_STAT 38 + #define PCA_GPIO_MASK 0x00FF #define PCA_INT 0x0100 +#define PCA_PCAL 0x0200 #define PCA953X_TYPE 0x1000 #define PCA957X_TYPE 0x2000 #define PCA_TYPE_MASK 0xF000 @@ -78,7 +83,7 @@ static const struct i2c_device_id pca953x_id[] = { MODULE_DEVICE_TABLE(i2c, pca953x_id); static const struct acpi_device_id pca953x_acpi_ids[] = { - { "INT3491", 16 | PCA953X_TYPE | PCA_INT, }, + { "INT3491", 16 | PCA953X_TYPE | PCA_INT | PCA_PCAL, }, { } }; MODULE_DEVICE_TABLE(acpi, pca953x_acpi_ids); @@ -403,6 +408,18 @@ static void pca953x_irq_bus_sync_unlock(struct irq_data *d) struct pca953x_chip *chip = to_pca(gc); u8 new_irqs; int level, i; + u8 invert_irq_mask[MAX_BANK]; + + if (chip->driver_data & PCA_PCAL) { + /* Enable latch on interrupt-enabled inputs */ + pca953x_write_regs(chip, PCAL953X_IN_LATCH, chip->irq_mask); + + for (i = 0; i < NBANK(chip); i++) + invert_irq_mask[i] = ~chip->irq_mask[i]; + + /* Unmask enabled interrupts */ + pca953x_write_regs(chip, PCAL953X_INT_MASK, invert_irq_mask); + } /* Look for any newly setup interrupt */ for (i = 0; i < NBANK(chip); i++) { @@ -464,6 +481,29 @@ static bool pca953x_irq_pending(struct pca953x_chip *chip, u8 *pending) u8 trigger[MAX_BANK]; int ret, i, offset = 0; + if (chip->driver_data & PCA_PCAL) { + /* Read the current interrupt status from the device */ + ret = pca953x_read_regs(chip, PCAL953X_INT_STAT, trigger); + if (ret) + return false; + + /* Check latched inputs and clear interrupt status */ + ret = pca953x_read_regs(chip, PCA953X_INPUT, cur_stat); + if (ret) + return false; + + for (i = 0; i < NBANK(chip); i++) { + /* Apply filter for rising/falling edge selection */ + pending[i] = (~cur_stat[i] & chip->irq_trig_fall[i]) | + (cur_stat[i] & chip->irq_trig_raise[i]); + pending[i] &= trigger[i]; + if (pending[i]) + pending_seen = true; + } + + return pending_seen; + } + switch (chip->chip_type) { case PCA953X_TYPE: offset = PCA953X_INPUT; From 2b8d9f28ded7007f4baba5a0db4551a3da3021d0 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Wed, 30 Aug 2017 21:05:58 +0200 Subject: [PATCH 0067/1149] serial: exar: split out the exar code from 8250_pci commit d0aeaa83f0b0f7a92615bbdd6b1f96812f7dcfd2 upstream. Add the serial driver for the Exar chips. And also register the platform device for the GPIO provided by the Exar chips. Reviewed-by: Andy Shevchenko Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- drivers/tty/serial/8250/8250_exar.c | 396 ++++++++++++++++++++++++++++ drivers/tty/serial/8250/Kconfig | 4 + drivers/tty/serial/8250/Makefile | 1 + 3 files changed, 401 insertions(+) create mode 100644 drivers/tty/serial/8250/8250_exar.c diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/8250_exar.c new file mode 100644 index 000000000000..e6b44a75a5e0 --- /dev/null +++ b/drivers/tty/serial/8250/8250_exar.c @@ -0,0 +1,396 @@ +/* + * Probe module for 8250/16550-type Exar chips PCI serial ports. + * + * Based on drivers/tty/serial/8250/8250_pci.c, + * + * Copyright (C) 2017 Sudip Mukherjee, All Rights Reserved. + * + * 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. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "8250.h" + +#define PCI_DEVICE_ID_COMMTECH_4224PCIE 0x0020 +#define PCI_DEVICE_ID_COMMTECH_4228PCIE 0x0021 +#define PCI_DEVICE_ID_COMMTECH_4222PCIE 0x0022 +#define PCI_DEVICE_ID_EXAR_XR17V4358 0x4358 +#define PCI_DEVICE_ID_EXAR_XR17V8358 0x8358 + +#define UART_EXAR_MPIOINT_7_0 0x8f /* MPIOINT[7:0] */ +#define UART_EXAR_MPIOLVL_7_0 0x90 /* MPIOLVL[7:0] */ +#define UART_EXAR_MPIO3T_7_0 0x91 /* MPIO3T[7:0] */ +#define UART_EXAR_MPIOINV_7_0 0x92 /* MPIOINV[7:0] */ +#define UART_EXAR_MPIOSEL_7_0 0x93 /* MPIOSEL[7:0] */ +#define UART_EXAR_MPIOOD_7_0 0x94 /* MPIOOD[7:0] */ +#define UART_EXAR_MPIOINT_15_8 0x95 /* MPIOINT[15:8] */ +#define UART_EXAR_MPIOLVL_15_8 0x96 /* MPIOLVL[15:8] */ +#define UART_EXAR_MPIO3T_15_8 0x97 /* MPIO3T[15:8] */ +#define UART_EXAR_MPIOINV_15_8 0x98 /* MPIOINV[15:8] */ +#define UART_EXAR_MPIOSEL_15_8 0x99 /* MPIOSEL[15:8] */ +#define UART_EXAR_MPIOOD_15_8 0x9a /* MPIOOD[15:8] */ + +struct exar8250; + +/** + * struct exar8250_board - board information + * @num_ports: number of serial ports + * @reg_shift: describes UART register mapping in PCI memory + */ +struct exar8250_board { + unsigned int num_ports; + unsigned int reg_shift; + bool has_slave; + int (*setup)(struct exar8250 *, struct pci_dev *, + struct uart_8250_port *, int); + void (*exit)(struct pci_dev *pcidev); +}; + +struct exar8250 { + unsigned int nr; + struct exar8250_board *board; + int line[0]; +}; + +static int default_setup(struct exar8250 *priv, struct pci_dev *pcidev, + int idx, unsigned int offset, + struct uart_8250_port *port) +{ + const struct exar8250_board *board = priv->board; + unsigned int bar = 0; + + port->port.iotype = UPIO_MEM; + port->port.mapbase = pci_resource_start(pcidev, bar) + offset; + port->port.membase = pcim_iomap_table(pcidev)[bar] + offset; + port->port.regshift = board->reg_shift; + + return 0; +} + +static int +pci_connect_tech_setup(struct exar8250 *priv, struct pci_dev *pcidev, + struct uart_8250_port *port, int idx) +{ + unsigned int offset = idx * 0x200; + unsigned int baud = 1843200; + + port->port.uartclk = baud * 16; + return default_setup(priv, pcidev, idx, offset, port); +} + +static int +pci_xr17c154_setup(struct exar8250 *priv, struct pci_dev *pcidev, + struct uart_8250_port *port, int idx) +{ + unsigned int offset = idx * 0x200; + unsigned int baud = 921600; + + port->port.uartclk = baud * 16; + return default_setup(priv, pcidev, idx, offset, port); +} + +static void setup_gpio(u8 __iomem *p) +{ + writeb(0x00, p + UART_EXAR_MPIOINT_7_0); + writeb(0x00, p + UART_EXAR_MPIOLVL_7_0); + writeb(0x00, p + UART_EXAR_MPIO3T_7_0); + writeb(0x00, p + UART_EXAR_MPIOINV_7_0); + writeb(0x00, p + UART_EXAR_MPIOSEL_7_0); + writeb(0x00, p + UART_EXAR_MPIOOD_7_0); + writeb(0x00, p + UART_EXAR_MPIOINT_15_8); + writeb(0x00, p + UART_EXAR_MPIOLVL_15_8); + writeb(0x00, p + UART_EXAR_MPIO3T_15_8); + writeb(0x00, p + UART_EXAR_MPIOINV_15_8); + writeb(0x00, p + UART_EXAR_MPIOSEL_15_8); + writeb(0x00, p + UART_EXAR_MPIOOD_15_8); +} + +static void * +xr17v35x_register_gpio(struct pci_dev *pcidev) +{ + struct platform_device *pdev; + + pdev = platform_device_alloc("gpio_exar", PLATFORM_DEVID_AUTO); + if (!pdev) + return NULL; + + platform_set_drvdata(pdev, pcidev); + if (platform_device_add(pdev) < 0) { + platform_device_put(pdev); + return NULL; + } + + return pdev; +} + +static int +pci_xr17v35x_setup(struct exar8250 *priv, struct pci_dev *pcidev, + struct uart_8250_port *port, int idx) +{ + const struct exar8250_board *board = priv->board; + unsigned int offset = idx * 0x400; + unsigned int baud = 7812500; + u8 __iomem *p; + int ret; + + port->port.uartclk = baud * 16; + /* + * Setup the uart clock for the devices on expansion slot to + * half the clock speed of the main chip (which is 125MHz) + */ + if (board->has_slave && idx >= 8) + port->port.uartclk /= 2; + + p = pci_ioremap_bar(pcidev, 0); + if (!p) + return -ENOMEM; + + /* Setup Multipurpose Input/Output pins. */ + if (idx == 0) + setup_gpio(p); + + writeb(0x00, p + UART_EXAR_8XMODE); + writeb(UART_FCTR_EXAR_TRGD, p + UART_EXAR_FCTR); + writeb(128, p + UART_EXAR_TXTRG); + writeb(128, p + UART_EXAR_RXTRG); + iounmap(p); + + ret = default_setup(priv, pcidev, idx, offset, port); + if (ret) + return ret; + + if (idx == 0) + port->port.private_data = + xr17v35x_register_gpio(pcidev); + + return 0; +} + +static void pci_xr17v35x_exit(struct pci_dev *pcidev) +{ + struct exar8250 *priv = pci_get_drvdata(pcidev); + struct uart_8250_port *port = serial8250_get_port(priv->line[0]); + struct platform_device *pdev = port->port.private_data; + + platform_device_unregister(pdev); + port->port.private_data = NULL; +} + +static int +exar_pci_probe(struct pci_dev *pcidev, const struct pci_device_id *ent) +{ + unsigned int nr_ports, i, bar = 0, maxnr; + struct exar8250_board *board; + struct uart_8250_port uart; + struct exar8250 *priv; + int rc; + + board = (struct exar8250_board *)ent->driver_data; + if (!board) + return -EINVAL; + + rc = pcim_enable_device(pcidev); + if (rc) + return rc; + + maxnr = pci_resource_len(pcidev, bar) >> (board->reg_shift + 3); + + nr_ports = board->num_ports ? board->num_ports : pcidev->device & 0x0f; + + priv = devm_kzalloc(&pcidev->dev, sizeof(*priv) + + sizeof(unsigned int) * nr_ports, + GFP_KERNEL); + if (!priv) + return -ENOMEM; + + priv->board = board; + + memset(&uart, 0, sizeof(uart)); + uart.port.flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF | UPF_SHARE_IRQ + | UPF_EXAR_EFR; + uart.port.irq = pcidev->irq; + uart.port.dev = &pcidev->dev; + + for (i = 0; i < nr_ports && i < maxnr; i++) { + rc = board->setup(priv, pcidev, &uart, i); + if (rc) { + dev_err(&pcidev->dev, "Failed to setup port %u\n", i); + break; + } + + dev_dbg(&pcidev->dev, "Setup PCI port: port %lx, irq %d, type %d\n", + uart.port.iobase, uart.port.irq, uart.port.iotype); + + priv->line[i] = serial8250_register_8250_port(&uart); + if (priv->line[i] < 0) { + dev_err(&pcidev->dev, + "Couldn't register serial port %lx, irq %d, type %d, error %d\n", + uart.port.iobase, uart.port.irq, + uart.port.iotype, priv->line[i]); + break; + } + } + priv->nr = i; + pci_set_drvdata(pcidev, priv); + return 0; +} + +static void exar_pci_remove(struct pci_dev *pcidev) +{ + struct exar8250 *priv = pci_get_drvdata(pcidev); + unsigned int i; + + for (i = 0; i < priv->nr; i++) + serial8250_unregister_port(priv->line[i]); + + if (priv->board->exit) + priv->board->exit(pcidev); +} + +static int __maybe_unused exar_suspend(struct device *dev) +{ + struct pci_dev *pcidev = to_pci_dev(dev); + struct exar8250 *priv = pci_get_drvdata(pcidev); + unsigned int i; + + for (i = 0; i < priv->nr; i++) + if (priv->line[i] >= 0) + serial8250_suspend_port(priv->line[i]); + + /* Ensure that every init quirk is properly torn down */ + if (priv->board->exit) + priv->board->exit(pcidev); + + return 0; +} + +static int __maybe_unused exar_resume(struct device *dev) +{ + struct pci_dev *pcidev = to_pci_dev(dev); + struct exar8250 *priv = pci_get_drvdata(pcidev); + unsigned int i; + + for (i = 0; i < priv->nr; i++) + if (priv->line[i] >= 0) + serial8250_resume_port(priv->line[i]); + + return 0; +} + +static SIMPLE_DEV_PM_OPS(exar_pci_pm, exar_suspend, exar_resume); + +static const struct exar8250_board pbn_connect = { + .setup = pci_connect_tech_setup, +}; + +static const struct exar8250_board pbn_exar_ibm_saturn = { + .num_ports = 1, + .setup = pci_xr17c154_setup, +}; + +static const struct exar8250_board pbn_exar_XR17C15x = { + .setup = pci_xr17c154_setup, +}; + +static const struct exar8250_board pbn_exar_XR17V35x = { + .setup = pci_xr17v35x_setup, + .exit = pci_xr17v35x_exit, +}; + +static const struct exar8250_board pbn_exar_XR17V4358 = { + .num_ports = 12, + .has_slave = true, + .setup = pci_xr17v35x_setup, + .exit = pci_xr17v35x_exit, +}; + +static const struct exar8250_board pbn_exar_XR17V8358 = { + .num_ports = 16, + .has_slave = true, + .setup = pci_xr17v35x_setup, + .exit = pci_xr17v35x_exit, +}; + +#define CONNECT_DEVICE(devid, sdevid, bd) { \ + PCI_DEVICE_SUB( \ + PCI_VENDOR_ID_EXAR, \ + PCI_DEVICE_ID_EXAR_##devid, \ + PCI_SUBVENDOR_ID_CONNECT_TECH, \ + PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_##sdevid), 0, 0, \ + (kernel_ulong_t)&bd \ + } + +#define EXAR_DEVICE(vend, devid, bd) { \ + PCI_VDEVICE(vend, PCI_DEVICE_ID_##devid), (kernel_ulong_t)&bd \ + } + +#define IBM_DEVICE(devid, sdevid, bd) { \ + PCI_DEVICE_SUB( \ + PCI_VENDOR_ID_EXAR, \ + PCI_DEVICE_ID_EXAR_##devid, \ + PCI_VENDOR_ID_IBM, \ + PCI_SUBDEVICE_ID_IBM_##sdevid), 0, 0, \ + (kernel_ulong_t)&bd \ + } + +static struct pci_device_id exar_pci_tbl[] = { + CONNECT_DEVICE(XR17C152, UART_2_232, pbn_connect), + CONNECT_DEVICE(XR17C154, UART_4_232, pbn_connect), + CONNECT_DEVICE(XR17C158, UART_8_232, pbn_connect), + CONNECT_DEVICE(XR17C152, UART_1_1, pbn_connect), + CONNECT_DEVICE(XR17C154, UART_2_2, pbn_connect), + CONNECT_DEVICE(XR17C158, UART_4_4, pbn_connect), + CONNECT_DEVICE(XR17C152, UART_2, pbn_connect), + CONNECT_DEVICE(XR17C154, UART_4, pbn_connect), + CONNECT_DEVICE(XR17C158, UART_8, pbn_connect), + CONNECT_DEVICE(XR17C152, UART_2_485, pbn_connect), + CONNECT_DEVICE(XR17C154, UART_4_485, pbn_connect), + CONNECT_DEVICE(XR17C158, UART_8_485, pbn_connect), + + IBM_DEVICE(XR17C152, SATURN_SERIAL_ONE_PORT, pbn_exar_ibm_saturn), + + /* Exar Corp. XR17C15[248] Dual/Quad/Octal UART */ + EXAR_DEVICE(EXAR, EXAR_XR17C152, pbn_exar_XR17C15x), + EXAR_DEVICE(EXAR, EXAR_XR17C154, pbn_exar_XR17C15x), + EXAR_DEVICE(EXAR, EXAR_XR17C158, pbn_exar_XR17C15x), + + /* Exar Corp. XR17V[48]35[248] Dual/Quad/Octal/Hexa PCIe UARTs */ + EXAR_DEVICE(EXAR, EXAR_XR17V352, pbn_exar_XR17V35x), + EXAR_DEVICE(EXAR, EXAR_XR17V354, pbn_exar_XR17V35x), + EXAR_DEVICE(EXAR, EXAR_XR17V358, pbn_exar_XR17V35x), + EXAR_DEVICE(EXAR, EXAR_XR17V4358, pbn_exar_XR17V4358), + EXAR_DEVICE(EXAR, EXAR_XR17V8358, pbn_exar_XR17V8358), + EXAR_DEVICE(COMMTECH, COMMTECH_4222PCIE, pbn_exar_XR17V35x), + EXAR_DEVICE(COMMTECH, COMMTECH_4224PCIE, pbn_exar_XR17V35x), + EXAR_DEVICE(COMMTECH, COMMTECH_4228PCIE, pbn_exar_XR17V35x), + { 0, } +}; +MODULE_DEVICE_TABLE(pci, exar_pci_tbl); + +static struct pci_driver exar_pci_driver = { + .name = "exar_serial", + .probe = exar_pci_probe, + .remove = exar_pci_remove, + .driver = { + .pm = &exar_pci_pm, + }, + .id_table = exar_pci_tbl, +}; +module_pci_driver(exar_pci_driver); + +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("Exar Serial Dricer"); +MODULE_AUTHOR("Sudip Mukherjee "); diff --git a/drivers/tty/serial/8250/Kconfig b/drivers/tty/serial/8250/Kconfig index 6412f1455beb..92e3697a771c 100644 --- a/drivers/tty/serial/8250/Kconfig +++ b/drivers/tty/serial/8250/Kconfig @@ -116,6 +116,10 @@ config SERIAL_8250_PCI Note that serial ports on NetMos 9835 Multi-I/O cards are handled by the parport_serial driver, enabled with CONFIG_PARPORT_SERIAL. +config SERIAL_8250_EXAR + tristate "8250/16550 PCI device support" + depends on SERIAL_8250_PCI + config SERIAL_8250_HP300 tristate depends on SERIAL_8250 && HP300 diff --git a/drivers/tty/serial/8250/Makefile b/drivers/tty/serial/8250/Makefile index e177f8681ada..ce75a9241d36 100644 --- a/drivers/tty/serial/8250/Makefile +++ b/drivers/tty/serial/8250/Makefile @@ -9,6 +9,7 @@ obj-$(CONFIG_SERIAL_8250) += 8250.o 8250_base.o 8250_base-$(CONFIG_SERIAL_8250_DMA) += 8250_dma.o obj-$(CONFIG_SERIAL_8250_GSC) += 8250_gsc.o obj-$(CONFIG_SERIAL_8250_PCI) += 8250_pci.o +obj-$(CONFIG_SERIAL_8250_EXAR) += 8250_exar.o obj-$(CONFIG_SERIAL_8250_HP300) += 8250_hp300.o obj-$(CONFIG_SERIAL_8250_CS) += serial_cs.o obj-$(CONFIG_SERIAL_8250_ACORN) += 8250_acorn.o From ca81dfbf3f6ee1ec9d142c8f4fd6c696c9a04430 Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 21:05:59 +0200 Subject: [PATCH 0068/1149] serial: 8250_pci: Use symbolic constants for EXAR's MPIO registers commit b6fce7382d72274336aeafe6e44da755a371ed32 upstream. Less magic that only requires comments. Signed-off-by: Jan Kiszka Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- drivers/tty/serial/8250/8250_pci.c | 55 ++++++++++++++++++------------ 1 file changed, 34 insertions(+), 21 deletions(-) diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c index cf3da51a3536..cf7f6151e66a 100644 --- a/drivers/tty/serial/8250/8250_pci.c +++ b/drivers/tty/serial/8250/8250_pci.c @@ -1755,6 +1755,19 @@ static int pci_eg20t_init(struct pci_dev *dev) #define PCI_DEVICE_ID_EXAR_XR17V4358 0x4358 #define PCI_DEVICE_ID_EXAR_XR17V8358 0x8358 +#define UART_EXAR_MPIOINT_7_0 0x8f /* MPIOINT[7:0] */ +#define UART_EXAR_MPIOLVL_7_0 0x90 /* MPIOLVL[7:0] */ +#define UART_EXAR_MPIO3T_7_0 0x91 /* MPIO3T[7:0] */ +#define UART_EXAR_MPIOINV_7_0 0x92 /* MPIOINV[7:0] */ +#define UART_EXAR_MPIOSEL_7_0 0x93 /* MPIOSEL[7:0] */ +#define UART_EXAR_MPIOOD_7_0 0x94 /* MPIOOD[7:0] */ +#define UART_EXAR_MPIOINT_15_8 0x95 /* MPIOINT[15:8] */ +#define UART_EXAR_MPIOLVL_15_8 0x96 /* MPIOLVL[15:8] */ +#define UART_EXAR_MPIO3T_15_8 0x97 /* MPIO3T[15:8] */ +#define UART_EXAR_MPIOINV_15_8 0x98 /* MPIOINV[15:8] */ +#define UART_EXAR_MPIOSEL_15_8 0x99 /* MPIOSEL[15:8] */ +#define UART_EXAR_MPIOOD_15_8 0x9a /* MPIOOD[15:8] */ + static int pci_xr17c154_setup(struct serial_private *priv, const struct pciserial_board *board, @@ -1797,18 +1810,18 @@ pci_xr17v35x_setup(struct serial_private *priv, * Setup Multipurpose Input/Output pins. */ if (idx == 0) { - writeb(0x00, p + 0x8f); /*MPIOINT[7:0]*/ - writeb(0x00, p + 0x90); /*MPIOLVL[7:0]*/ - writeb(0x00, p + 0x91); /*MPIO3T[7:0]*/ - writeb(0x00, p + 0x92); /*MPIOINV[7:0]*/ - writeb(0x00, p + 0x93); /*MPIOSEL[7:0]*/ - writeb(0x00, p + 0x94); /*MPIOOD[7:0]*/ - writeb(0x00, p + 0x95); /*MPIOINT[15:8]*/ - writeb(0x00, p + 0x96); /*MPIOLVL[15:8]*/ - writeb(0x00, p + 0x97); /*MPIO3T[15:8]*/ - writeb(0x00, p + 0x98); /*MPIOINV[15:8]*/ - writeb(0x00, p + 0x99); /*MPIOSEL[15:8]*/ - writeb(0x00, p + 0x9a); /*MPIOOD[15:8]*/ + writeb(0x00, p + UART_EXAR_MPIOINT_7_0); + writeb(0x00, p + UART_EXAR_MPIOLVL_7_0); + writeb(0x00, p + UART_EXAR_MPIO3T_7_0); + writeb(0x00, p + UART_EXAR_MPIOINV_7_0); + writeb(0x00, p + UART_EXAR_MPIOSEL_7_0); + writeb(0x00, p + UART_EXAR_MPIOOD_7_0); + writeb(0x00, p + UART_EXAR_MPIOINT_15_8); + writeb(0x00, p + UART_EXAR_MPIOLVL_15_8); + writeb(0x00, p + UART_EXAR_MPIO3T_15_8); + writeb(0x00, p + UART_EXAR_MPIOINV_15_8); + writeb(0x00, p + UART_EXAR_MPIOSEL_15_8); + writeb(0x00, p + UART_EXAR_MPIOOD_15_8); } writeb(0x00, p + UART_EXAR_8XMODE); writeb(UART_FCTR_EXAR_TRGD, p + UART_EXAR_FCTR); @@ -1844,20 +1857,20 @@ pci_fastcom335_setup(struct serial_private *priv, switch (priv->dev->device) { case PCI_DEVICE_ID_COMMTECH_4222PCI335: case PCI_DEVICE_ID_COMMTECH_4224PCI335: - writeb(0x78, p + 0x90); /* MPIOLVL[7:0] */ - writeb(0x00, p + 0x92); /* MPIOINV[7:0] */ - writeb(0x00, p + 0x93); /* MPIOSEL[7:0] */ + writeb(0x78, p + UART_EXAR_MPIOLVL_7_0); + writeb(0x00, p + UART_EXAR_MPIOINV_7_0); + writeb(0x00, p + UART_EXAR_MPIOSEL_7_0); break; case PCI_DEVICE_ID_COMMTECH_2324PCI335: case PCI_DEVICE_ID_COMMTECH_2328PCI335: - writeb(0x00, p + 0x90); /* MPIOLVL[7:0] */ - writeb(0xc0, p + 0x92); /* MPIOINV[7:0] */ - writeb(0xc0, p + 0x93); /* MPIOSEL[7:0] */ + writeb(0x00, p + UART_EXAR_MPIOLVL_7_0); + writeb(0xc0, p + UART_EXAR_MPIOINV_7_0); + writeb(0xc0, p + UART_EXAR_MPIOSEL_7_0); break; } - writeb(0x00, p + 0x8f); /* MPIOINT[7:0] */ - writeb(0x00, p + 0x91); /* MPIO3T[7:0] */ - writeb(0x00, p + 0x94); /* MPIOOD[7:0] */ + writeb(0x00, p + UART_EXAR_MPIOINT_7_0); + writeb(0x00, p + UART_EXAR_MPIO3T_7_0); + writeb(0x00, p + UART_EXAR_MPIOOD_7_0); } writeb(0x00, p + UART_EXAR_8XMODE); writeb(UART_FCTR_EXAR_TRGD, p + UART_EXAR_FCTR); From 83fe9df5916a2bf3ed8dd4223aa88a3ca7423368 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Wed, 30 Aug 2017 21:06:00 +0200 Subject: [PATCH 0069/1149] serial: 8250_pci: remove exar code commit 5d1a2388edee77930c8b542cf8be0c92342dbeb4 upstream. Remove the Exar specific codes from 8250_pci and blacklist those chips so that the new Exar serial driver binds to the devices. Reviewed-by: Andy Shevchenko Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- drivers/tty/serial/8250/8250_pci.c | 336 +---------------------------- drivers/tty/serial/8250/Kconfig | 1 + 2 files changed, 4 insertions(+), 333 deletions(-) diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c index cf7f6151e66a..b961d688ab48 100644 --- a/drivers/tty/serial/8250/8250_pci.c +++ b/drivers/tty/serial/8250/8250_pci.c @@ -1752,9 +1752,6 @@ static int pci_eg20t_init(struct pci_dev *dev) #endif } -#define PCI_DEVICE_ID_EXAR_XR17V4358 0x4358 -#define PCI_DEVICE_ID_EXAR_XR17V8358 0x8358 - #define UART_EXAR_MPIOINT_7_0 0x8f /* MPIOINT[7:0] */ #define UART_EXAR_MPIOLVL_7_0 0x90 /* MPIOLVL[7:0] */ #define UART_EXAR_MPIO3T_7_0 0x91 /* MPIO3T[7:0] */ @@ -1767,71 +1764,6 @@ static int pci_eg20t_init(struct pci_dev *dev) #define UART_EXAR_MPIOINV_15_8 0x98 /* MPIOINV[15:8] */ #define UART_EXAR_MPIOSEL_15_8 0x99 /* MPIOSEL[15:8] */ #define UART_EXAR_MPIOOD_15_8 0x9a /* MPIOOD[15:8] */ - -static int -pci_xr17c154_setup(struct serial_private *priv, - const struct pciserial_board *board, - struct uart_8250_port *port, int idx) -{ - port->port.flags |= UPF_EXAR_EFR; - return pci_default_setup(priv, board, port, idx); -} - -static inline int -xr17v35x_has_slave(struct serial_private *priv) -{ - const int dev_id = priv->dev->device; - - return ((dev_id == PCI_DEVICE_ID_EXAR_XR17V4358) || - (dev_id == PCI_DEVICE_ID_EXAR_XR17V8358)); -} - -static int -pci_xr17v35x_setup(struct serial_private *priv, - const struct pciserial_board *board, - struct uart_8250_port *port, int idx) -{ - u8 __iomem *p; - - p = pci_ioremap_bar(priv->dev, 0); - if (p == NULL) - return -ENOMEM; - - port->port.flags |= UPF_EXAR_EFR; - - /* - * Setup the uart clock for the devices on expansion slot to - * half the clock speed of the main chip (which is 125MHz) - */ - if (xr17v35x_has_slave(priv) && idx >= 8) - port->port.uartclk = (7812500 * 16 / 2); - - /* - * Setup Multipurpose Input/Output pins. - */ - if (idx == 0) { - writeb(0x00, p + UART_EXAR_MPIOINT_7_0); - writeb(0x00, p + UART_EXAR_MPIOLVL_7_0); - writeb(0x00, p + UART_EXAR_MPIO3T_7_0); - writeb(0x00, p + UART_EXAR_MPIOINV_7_0); - writeb(0x00, p + UART_EXAR_MPIOSEL_7_0); - writeb(0x00, p + UART_EXAR_MPIOOD_7_0); - writeb(0x00, p + UART_EXAR_MPIOINT_15_8); - writeb(0x00, p + UART_EXAR_MPIOLVL_15_8); - writeb(0x00, p + UART_EXAR_MPIO3T_15_8); - writeb(0x00, p + UART_EXAR_MPIOINV_15_8); - writeb(0x00, p + UART_EXAR_MPIOSEL_15_8); - writeb(0x00, p + UART_EXAR_MPIOOD_15_8); - } - writeb(0x00, p + UART_EXAR_8XMODE); - writeb(UART_FCTR_EXAR_TRGD, p + UART_EXAR_FCTR); - writeb(128, p + UART_EXAR_TXTRG); - writeb(128, p + UART_EXAR_RXTRG); - iounmap(p); - - return pci_default_setup(priv, board, port, idx); -} - #define PCI_DEVICE_ID_COMMTECH_4222PCI335 0x0004 #define PCI_DEVICE_ID_COMMTECH_4224PCI335 0x0002 #define PCI_DEVICE_ID_COMMTECH_2324PCI335 0x000a @@ -1945,9 +1877,6 @@ pci_wch_ch38x_setup(struct serial_private *priv, #define PCI_VENDOR_ID_AGESTAR 0x5372 #define PCI_DEVICE_ID_AGESTAR_9375 0x6872 #define PCI_VENDOR_ID_ASIX 0x9710 -#define PCI_DEVICE_ID_COMMTECH_4224PCIE 0x0020 -#define PCI_DEVICE_ID_COMMTECH_4228PCIE 0x0021 -#define PCI_DEVICE_ID_COMMTECH_4222PCIE 0x0022 #define PCI_DEVICE_ID_BROADCOM_TRUMANAGE 0x160a #define PCI_DEVICE_ID_AMCC_ADDIDATA_APCI7800 0x818e #define PCI_DEVICE_ID_INTEL_QRK_UART 0x0936 @@ -2451,65 +2380,6 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = { .init = pci_timedia_init, .setup = pci_timedia_setup, }, - /* - * Exar cards - */ - { - .vendor = PCI_VENDOR_ID_EXAR, - .device = PCI_DEVICE_ID_EXAR_XR17C152, - .subvendor = PCI_ANY_ID, - .subdevice = PCI_ANY_ID, - .setup = pci_xr17c154_setup, - }, - { - .vendor = PCI_VENDOR_ID_EXAR, - .device = PCI_DEVICE_ID_EXAR_XR17C154, - .subvendor = PCI_ANY_ID, - .subdevice = PCI_ANY_ID, - .setup = pci_xr17c154_setup, - }, - { - .vendor = PCI_VENDOR_ID_EXAR, - .device = PCI_DEVICE_ID_EXAR_XR17C158, - .subvendor = PCI_ANY_ID, - .subdevice = PCI_ANY_ID, - .setup = pci_xr17c154_setup, - }, - { - .vendor = PCI_VENDOR_ID_EXAR, - .device = PCI_DEVICE_ID_EXAR_XR17V352, - .subvendor = PCI_ANY_ID, - .subdevice = PCI_ANY_ID, - .setup = pci_xr17v35x_setup, - }, - { - .vendor = PCI_VENDOR_ID_EXAR, - .device = PCI_DEVICE_ID_EXAR_XR17V354, - .subvendor = PCI_ANY_ID, - .subdevice = PCI_ANY_ID, - .setup = pci_xr17v35x_setup, - }, - { - .vendor = PCI_VENDOR_ID_EXAR, - .device = PCI_DEVICE_ID_EXAR_XR17V358, - .subvendor = PCI_ANY_ID, - .subdevice = PCI_ANY_ID, - .setup = pci_xr17v35x_setup, - }, - { - .vendor = PCI_VENDOR_ID_EXAR, - .device = PCI_DEVICE_ID_EXAR_XR17V4358, - .subvendor = PCI_ANY_ID, - .subdevice = PCI_ANY_ID, - .setup = pci_xr17v35x_setup, - }, - { - .vendor = PCI_VENDOR_ID_EXAR, - .device = PCI_DEVICE_ID_EXAR_XR17V8358, - .subvendor = PCI_ANY_ID, - .subdevice = PCI_ANY_ID, - .setup = pci_xr17v35x_setup, - }, /* * Xircom cards */ @@ -2758,27 +2628,6 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = { .subdevice = PCI_ANY_ID, .setup = pci_fastcom335_setup, }, - { - .vendor = PCI_VENDOR_ID_COMMTECH, - .device = PCI_DEVICE_ID_COMMTECH_4222PCIE, - .subvendor = PCI_ANY_ID, - .subdevice = PCI_ANY_ID, - .setup = pci_xr17v35x_setup, - }, - { - .vendor = PCI_VENDOR_ID_COMMTECH, - .device = PCI_DEVICE_ID_COMMTECH_4224PCIE, - .subvendor = PCI_ANY_ID, - .subdevice = PCI_ANY_ID, - .setup = pci_xr17v35x_setup, - }, - { - .vendor = PCI_VENDOR_ID_COMMTECH, - .device = PCI_DEVICE_ID_COMMTECH_4228PCIE, - .subvendor = PCI_ANY_ID, - .subdevice = PCI_ANY_ID, - .setup = pci_xr17v35x_setup, - }, /* * Broadcom TruManage (NetXtreme) */ @@ -2993,15 +2842,6 @@ enum pci_board_num_t { pbn_computone_6, pbn_computone_8, pbn_sbsxrsio, - pbn_exar_XR17C152, - pbn_exar_XR17C154, - pbn_exar_XR17C158, - pbn_exar_XR17V352, - pbn_exar_XR17V354, - pbn_exar_XR17V358, - pbn_exar_XR17V4358, - pbn_exar_XR17V8358, - pbn_exar_ibm_saturn, pbn_pasemi_1682M, pbn_ni8430_2, pbn_ni8430_4, @@ -3650,76 +3490,6 @@ static struct pciserial_board pci_boards[] = { .uart_offset = 256, .reg_shift = 4, }, - /* - * Exar Corp. XR17C15[248] Dual/Quad/Octal UART - * Only basic 16550A support. - * XR17C15[24] are not tested, but they should work. - */ - [pbn_exar_XR17C152] = { - .flags = FL_BASE0, - .num_ports = 2, - .base_baud = 921600, - .uart_offset = 0x200, - }, - [pbn_exar_XR17C154] = { - .flags = FL_BASE0, - .num_ports = 4, - .base_baud = 921600, - .uart_offset = 0x200, - }, - [pbn_exar_XR17C158] = { - .flags = FL_BASE0, - .num_ports = 8, - .base_baud = 921600, - .uart_offset = 0x200, - }, - [pbn_exar_XR17V352] = { - .flags = FL_BASE0, - .num_ports = 2, - .base_baud = 7812500, - .uart_offset = 0x400, - .reg_shift = 0, - .first_offset = 0, - }, - [pbn_exar_XR17V354] = { - .flags = FL_BASE0, - .num_ports = 4, - .base_baud = 7812500, - .uart_offset = 0x400, - .reg_shift = 0, - .first_offset = 0, - }, - [pbn_exar_XR17V358] = { - .flags = FL_BASE0, - .num_ports = 8, - .base_baud = 7812500, - .uart_offset = 0x400, - .reg_shift = 0, - .first_offset = 0, - }, - [pbn_exar_XR17V4358] = { - .flags = FL_BASE0, - .num_ports = 12, - .base_baud = 7812500, - .uart_offset = 0x400, - .reg_shift = 0, - .first_offset = 0, - }, - [pbn_exar_XR17V8358] = { - .flags = FL_BASE0, - .num_ports = 16, - .base_baud = 7812500, - .uart_offset = 0x400, - .reg_shift = 0, - .first_offset = 0, - }, - [pbn_exar_ibm_saturn] = { - .flags = FL_BASE0, - .num_ports = 1, - .base_baud = 921600, - .uart_offset = 0x200, - }, - /* * PA Semi PWRficient PA6T-1682M on-chip UART */ @@ -3909,6 +3679,9 @@ static const struct pci_device_id blacklist[] = { { PCI_VDEVICE(INTEL, 0x081d), }, { PCI_VDEVICE(INTEL, 0x1191), }, { PCI_VDEVICE(INTEL, 0x19d8), }, + + /* Exar devices */ + { PCI_VDEVICE(EXAR, PCI_ANY_ID), }, }; /* @@ -4347,58 +4120,6 @@ static struct pci_device_id serial_pci_tbl[] = { PCI_VENDOR_ID_AFAVLAB, PCI_SUBDEVICE_ID_AFAVLAB_P061, 0, 0, pbn_b0_4_1152000 }, - { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17C152, - PCI_SUBVENDOR_ID_CONNECT_TECH, - PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_2_232, 0, 0, - pbn_b0_2_1843200_200 }, - { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17C154, - PCI_SUBVENDOR_ID_CONNECT_TECH, - PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_4_232, 0, 0, - pbn_b0_4_1843200_200 }, - { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17C158, - PCI_SUBVENDOR_ID_CONNECT_TECH, - PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_8_232, 0, 0, - pbn_b0_8_1843200_200 }, - { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17C152, - PCI_SUBVENDOR_ID_CONNECT_TECH, - PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_1_1, 0, 0, - pbn_b0_2_1843200_200 }, - { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17C154, - PCI_SUBVENDOR_ID_CONNECT_TECH, - PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_2_2, 0, 0, - pbn_b0_4_1843200_200 }, - { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17C158, - PCI_SUBVENDOR_ID_CONNECT_TECH, - PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_4_4, 0, 0, - pbn_b0_8_1843200_200 }, - { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17C152, - PCI_SUBVENDOR_ID_CONNECT_TECH, - PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_2, 0, 0, - pbn_b0_2_1843200_200 }, - { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17C154, - PCI_SUBVENDOR_ID_CONNECT_TECH, - PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_4, 0, 0, - pbn_b0_4_1843200_200 }, - { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17C158, - PCI_SUBVENDOR_ID_CONNECT_TECH, - PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_8, 0, 0, - pbn_b0_8_1843200_200 }, - { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17C152, - PCI_SUBVENDOR_ID_CONNECT_TECH, - PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_2_485, 0, 0, - pbn_b0_2_1843200_200 }, - { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17C154, - PCI_SUBVENDOR_ID_CONNECT_TECH, - PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_4_485, 0, 0, - pbn_b0_4_1843200_200 }, - { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17C158, - PCI_SUBVENDOR_ID_CONNECT_TECH, - PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_8_485, 0, 0, - pbn_b0_8_1843200_200 }, - { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17C152, - PCI_VENDOR_ID_IBM, PCI_SUBDEVICE_ID_IBM_SATURN_SERIAL_ONE_PORT, - 0, 0, pbn_exar_ibm_saturn }, - { PCI_VENDOR_ID_SEALEVEL, PCI_DEVICE_ID_SEALEVEL_U530, PCI_ANY_ID, PCI_ANY_ID, 0, 0, pbn_b2_bt_1_115200 }, @@ -5126,45 +4847,6 @@ static struct pci_device_id serial_pci_tbl[] = { { PCI_VENDOR_ID_DCI, PCI_DEVICE_ID_DCI_PCCOM8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, pbn_b3_8_115200 }, - - /* - * Exar Corp. XR17C15[248] Dual/Quad/Octal UART - */ - { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17C152, - PCI_ANY_ID, PCI_ANY_ID, - 0, - 0, pbn_exar_XR17C152 }, - { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17C154, - PCI_ANY_ID, PCI_ANY_ID, - 0, - 0, pbn_exar_XR17C154 }, - { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17C158, - PCI_ANY_ID, PCI_ANY_ID, - 0, - 0, pbn_exar_XR17C158 }, - /* - * Exar Corp. XR17V[48]35[248] Dual/Quad/Octal/Hexa PCIe UARTs - */ - { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17V352, - PCI_ANY_ID, PCI_ANY_ID, - 0, - 0, pbn_exar_XR17V352 }, - { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17V354, - PCI_ANY_ID, PCI_ANY_ID, - 0, - 0, pbn_exar_XR17V354 }, - { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17V358, - PCI_ANY_ID, PCI_ANY_ID, - 0, - 0, pbn_exar_XR17V358 }, - { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17V4358, - PCI_ANY_ID, PCI_ANY_ID, - 0, - 0, pbn_exar_XR17V4358 }, - { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17V8358, - PCI_ANY_ID, PCI_ANY_ID, - 0, - 0, pbn_exar_XR17V8358 }, /* * Pericom PI7C9X795[1248] Uno/Dual/Quad/Octal UART */ @@ -5788,18 +5470,6 @@ static struct pci_device_id serial_pci_tbl[] = { PCI_ANY_ID, PCI_ANY_ID, 0, 0, pbn_b0_8_1152000_200 }, - { PCI_VENDOR_ID_COMMTECH, PCI_DEVICE_ID_COMMTECH_4222PCIE, - PCI_ANY_ID, PCI_ANY_ID, - 0, - 0, pbn_exar_XR17V352 }, - { PCI_VENDOR_ID_COMMTECH, PCI_DEVICE_ID_COMMTECH_4224PCIE, - PCI_ANY_ID, PCI_ANY_ID, - 0, - 0, pbn_exar_XR17V354 }, - { PCI_VENDOR_ID_COMMTECH, PCI_DEVICE_ID_COMMTECH_4228PCIE, - PCI_ANY_ID, PCI_ANY_ID, - 0, - 0, pbn_exar_XR17V358 }, /* Fintek PCI serial cards */ { PCI_DEVICE(0x1c29, 0x1104), .driver_data = pbn_fintek_4 }, diff --git a/drivers/tty/serial/8250/Kconfig b/drivers/tty/serial/8250/Kconfig index 92e3697a771c..f69b0905468f 100644 --- a/drivers/tty/serial/8250/Kconfig +++ b/drivers/tty/serial/8250/Kconfig @@ -119,6 +119,7 @@ config SERIAL_8250_PCI config SERIAL_8250_EXAR tristate "8250/16550 PCI device support" depends on SERIAL_8250_PCI + default SERIAL_8250 config SERIAL_8250_HP300 tristate From c3dabea8bd1bb68f3950f58a3fd455296ce45b11 Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 21:06:01 +0200 Subject: [PATCH 0070/1149] serial: exar: Fix mapping of port I/O resources commit 24572af4fb6ce0726dbe12b0286de11d25ff008b upstream. pcim_iomap_table only returns the table of mapping, it does not perform them. For that, we need to call pcim_iomap, but only if that mapping was not done before. Fixes: d0aeaa83f0b0 ("serial: exar: split out the exar code from 8250_pci") Signed-off-by: Jan Kiszka Reviewed-by: Andy Shevchenko Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- drivers/tty/serial/8250/8250_exar.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/8250_exar.c index e6b44a75a5e0..58469d9d6515 100644 --- a/drivers/tty/serial/8250/8250_exar.c +++ b/drivers/tty/serial/8250/8250_exar.c @@ -72,6 +72,9 @@ static int default_setup(struct exar8250 *priv, struct pci_dev *pcidev, const struct exar8250_board *board = priv->board; unsigned int bar = 0; + if (!pcim_iomap_table(pcidev)[bar] && !pcim_iomap(pcidev, bar, 0)) + return -ENOMEM; + port->port.iotype = UPIO_MEM; port->port.mapbase = pci_resource_start(pcidev, bar) + offset; port->port.membase = pcim_iomap_table(pcidev)[bar] + offset; From c61d1eba3c05724bc04ba6a22c967a3834bda105 Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 21:06:02 +0200 Subject: [PATCH 0071/1149] serial: exar: Fix initialization of EXAR registers for ports > 0 commit 5b5f252d67afd7bd5b923c664206d60800bf5054 upstream. So far, pci_xr17v35x_setup always initialized 8XMODE, FCTR & Co. for port 0 because it used the address of that port instead of moving the pointer according to the port number. Fix this and remove the unneeded temporary ioremap by moving default_setup up and reusing the membase it fills into the port structure. Fixes: 14faa8cce88e ("tty/8250 Add support for Commtech's Fastcom Async-335 and Fastcom Async-PCIe cards") Signed-off-by: Jan Kiszka Reviewed-by: Andy Shevchenko Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- drivers/tty/serial/8250/8250_exar.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/8250_exar.c index 58469d9d6515..f489f25643c5 100644 --- a/drivers/tty/serial/8250/8250_exar.c +++ b/drivers/tty/serial/8250/8250_exar.c @@ -157,27 +157,23 @@ pci_xr17v35x_setup(struct exar8250 *priv, struct pci_dev *pcidev, if (board->has_slave && idx >= 8) port->port.uartclk /= 2; - p = pci_ioremap_bar(pcidev, 0); - if (!p) - return -ENOMEM; + ret = default_setup(priv, pcidev, idx, offset, port); + if (ret) + return ret; - /* Setup Multipurpose Input/Output pins. */ - if (idx == 0) - setup_gpio(p); + p = port->port.membase; writeb(0x00, p + UART_EXAR_8XMODE); writeb(UART_FCTR_EXAR_TRGD, p + UART_EXAR_FCTR); writeb(128, p + UART_EXAR_TXTRG); writeb(128, p + UART_EXAR_RXTRG); - iounmap(p); - ret = default_setup(priv, pcidev, idx, offset, port); - if (ret) - return ret; + if (idx == 0) { + /* Setup Multipurpose Input/Output pins. */ + setup_gpio(p); - if (idx == 0) - port->port.private_data = - xr17v35x_register_gpio(pcidev); + port->port.private_data = xr17v35x_register_gpio(pcidev); + } return 0; } From c4c06c5c5748ee3601efaddc87c66d158aefab04 Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 21:06:03 +0200 Subject: [PATCH 0072/1149] serial: exar: Fix feature control register constants commit 7795753661f1a9423c3c8fbde322f6a2a8b94b68 upstream. According to the XR17V352 manual, bit 4 is IrDA control and bit 5 for 485. Fortunately, no driver used them so far. Signed-off-by: Jan Kiszka Reviewed-by: Andy Shevchenko Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- include/uapi/linux/serial_reg.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/uapi/linux/serial_reg.h b/include/uapi/linux/serial_reg.h index 1e5ac4e776da..cdb9f97a63c7 100644 --- a/include/uapi/linux/serial_reg.h +++ b/include/uapi/linux/serial_reg.h @@ -366,8 +366,8 @@ #define UART_EXAR_DVID 0x8d /* Device identification */ #define UART_EXAR_FCTR 0x08 /* Feature Control Register */ -#define UART_FCTR_EXAR_IRDA 0x08 /* IrDa data encode select */ -#define UART_FCTR_EXAR_485 0x10 /* Auto 485 half duplex dir ctl */ +#define UART_FCTR_EXAR_IRDA 0x10 /* IrDa data encode select */ +#define UART_FCTR_EXAR_485 0x20 /* Auto 485 half duplex dir ctl */ #define UART_FCTR_EXAR_TRGA 0x00 /* FIFO trigger table A */ #define UART_FCTR_EXAR_TRGB 0x60 /* FIFO trigger table B */ #define UART_FCTR_EXAR_TRGC 0x80 /* FIFO trigger table C */ From 92665cc1ae4f5349e778980eedd9ade67704c121 Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 21:06:04 +0200 Subject: [PATCH 0073/1149] serial: exar: Move Commtech adapters to 8250_exar as well commit fc6cc9615779183f07d6ff4065368a732d09f49e upstream. Those are Exar-based, too. With the required refactoring of the code to fit into 8250_exar, we automatically fix the same issue pci_xr17v35x_setup had before: 8XMODE, FCTL, TXTRG and RXTRG were always only set for port 0. Now they are initialized for the correct target port by using port.membase. Now we can also cleanly fix the blacklist of 8250_pci so that all Commtech devices are rejected and 8250_exar can handle them. Signed-off-by: Jan Kiszka Reviewed-by: Andy Shevchenko Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- drivers/tty/serial/8250/8250_exar.c | 83 ++++++++++++++++- drivers/tty/serial/8250/8250_pci.c | 139 +--------------------------- 2 files changed, 79 insertions(+), 143 deletions(-) diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/8250_exar.c index f489f25643c5..9af4266eff96 100644 --- a/drivers/tty/serial/8250/8250_exar.c +++ b/drivers/tty/serial/8250/8250_exar.c @@ -24,11 +24,15 @@ #include "8250.h" -#define PCI_DEVICE_ID_COMMTECH_4224PCIE 0x0020 -#define PCI_DEVICE_ID_COMMTECH_4228PCIE 0x0021 -#define PCI_DEVICE_ID_COMMTECH_4222PCIE 0x0022 -#define PCI_DEVICE_ID_EXAR_XR17V4358 0x4358 -#define PCI_DEVICE_ID_EXAR_XR17V8358 0x8358 +#define PCI_DEVICE_ID_COMMTECH_4224PCI335 0x0002 +#define PCI_DEVICE_ID_COMMTECH_4222PCI335 0x0004 +#define PCI_DEVICE_ID_COMMTECH_2324PCI335 0x000a +#define PCI_DEVICE_ID_COMMTECH_2328PCI335 0x000b +#define PCI_DEVICE_ID_COMMTECH_4224PCIE 0x0020 +#define PCI_DEVICE_ID_COMMTECH_4228PCIE 0x0021 +#define PCI_DEVICE_ID_COMMTECH_4222PCIE 0x0022 +#define PCI_DEVICE_ID_EXAR_XR17V4358 0x4358 +#define PCI_DEVICE_ID_EXAR_XR17V8358 0x8358 #define UART_EXAR_MPIOINT_7_0 0x8f /* MPIOINT[7:0] */ #define UART_EXAR_MPIOLVL_7_0 0x90 /* MPIOLVL[7:0] */ @@ -83,6 +87,55 @@ static int default_setup(struct exar8250 *priv, struct pci_dev *pcidev, return 0; } +static int +pci_fastcom335_setup(struct exar8250 *priv, struct pci_dev *pcidev, + struct uart_8250_port *port, int idx) +{ + unsigned int offset = idx * 0x200; + unsigned int baud = 1843200; + u8 __iomem *p; + int err; + + port->port.flags |= UPF_EXAR_EFR; + port->port.uartclk = baud * 16; + + err = default_setup(priv, pcidev, idx, offset, port); + if (err) + return err; + + p = port->port.membase; + + writeb(0x00, p + UART_EXAR_8XMODE); + writeb(UART_FCTR_EXAR_TRGD, p + UART_EXAR_FCTR); + writeb(32, p + UART_EXAR_TXTRG); + writeb(32, p + UART_EXAR_RXTRG); + + /* + * Setup Multipurpose Input/Output pins. + */ + if (idx == 0) { + switch (pcidev->device) { + case PCI_DEVICE_ID_COMMTECH_4222PCI335: + case PCI_DEVICE_ID_COMMTECH_4224PCI335: + writeb(0x78, p + UART_EXAR_MPIOLVL_7_0); + writeb(0x00, p + UART_EXAR_MPIOINV_7_0); + writeb(0x00, p + UART_EXAR_MPIOSEL_7_0); + break; + case PCI_DEVICE_ID_COMMTECH_2324PCI335: + case PCI_DEVICE_ID_COMMTECH_2328PCI335: + writeb(0x00, p + UART_EXAR_MPIOLVL_7_0); + writeb(0xc0, p + UART_EXAR_MPIOINV_7_0); + writeb(0xc0, p + UART_EXAR_MPIOSEL_7_0); + break; + } + writeb(0x00, p + UART_EXAR_MPIOINT_7_0); + writeb(0x00, p + UART_EXAR_MPIO3T_7_0); + writeb(0x00, p + UART_EXAR_MPIOOD_7_0); + } + + return 0; +} + static int pci_connect_tech_setup(struct exar8250 *priv, struct pci_dev *pcidev, struct uart_8250_port *port, int idx) @@ -291,6 +344,21 @@ static int __maybe_unused exar_resume(struct device *dev) static SIMPLE_DEV_PM_OPS(exar_pci_pm, exar_suspend, exar_resume); +static const struct exar8250_board pbn_fastcom335_2 = { + .num_ports = 2, + .setup = pci_fastcom335_setup, +}; + +static const struct exar8250_board pbn_fastcom335_4 = { + .num_ports = 4, + .setup = pci_fastcom335_setup, +}; + +static const struct exar8250_board pbn_fastcom335_8 = { + .num_ports = 8, + .setup = pci_fastcom335_setup, +}; + static const struct exar8250_board pbn_connect = { .setup = pci_connect_tech_setup, }; @@ -375,6 +443,11 @@ static struct pci_device_id exar_pci_tbl[] = { EXAR_DEVICE(COMMTECH, COMMTECH_4222PCIE, pbn_exar_XR17V35x), EXAR_DEVICE(COMMTECH, COMMTECH_4224PCIE, pbn_exar_XR17V35x), EXAR_DEVICE(COMMTECH, COMMTECH_4228PCIE, pbn_exar_XR17V35x), + + EXAR_DEVICE(COMMTECH, COMMTECH_4222PCI335, pbn_fastcom335_2), + EXAR_DEVICE(COMMTECH, COMMTECH_4224PCI335, pbn_fastcom335_4), + EXAR_DEVICE(COMMTECH, COMMTECH_2324PCI335, pbn_fastcom335_4), + EXAR_DEVICE(COMMTECH, COMMTECH_2328PCI335, pbn_fastcom335_8), { 0, } }; MODULE_DEVICE_TABLE(pci, exar_pci_tbl); diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c index b961d688ab48..8437fec53126 100644 --- a/drivers/tty/serial/8250/8250_pci.c +++ b/drivers/tty/serial/8250/8250_pci.c @@ -1752,67 +1752,6 @@ static int pci_eg20t_init(struct pci_dev *dev) #endif } -#define UART_EXAR_MPIOINT_7_0 0x8f /* MPIOINT[7:0] */ -#define UART_EXAR_MPIOLVL_7_0 0x90 /* MPIOLVL[7:0] */ -#define UART_EXAR_MPIO3T_7_0 0x91 /* MPIO3T[7:0] */ -#define UART_EXAR_MPIOINV_7_0 0x92 /* MPIOINV[7:0] */ -#define UART_EXAR_MPIOSEL_7_0 0x93 /* MPIOSEL[7:0] */ -#define UART_EXAR_MPIOOD_7_0 0x94 /* MPIOOD[7:0] */ -#define UART_EXAR_MPIOINT_15_8 0x95 /* MPIOINT[15:8] */ -#define UART_EXAR_MPIOLVL_15_8 0x96 /* MPIOLVL[15:8] */ -#define UART_EXAR_MPIO3T_15_8 0x97 /* MPIO3T[15:8] */ -#define UART_EXAR_MPIOINV_15_8 0x98 /* MPIOINV[15:8] */ -#define UART_EXAR_MPIOSEL_15_8 0x99 /* MPIOSEL[15:8] */ -#define UART_EXAR_MPIOOD_15_8 0x9a /* MPIOOD[15:8] */ -#define PCI_DEVICE_ID_COMMTECH_4222PCI335 0x0004 -#define PCI_DEVICE_ID_COMMTECH_4224PCI335 0x0002 -#define PCI_DEVICE_ID_COMMTECH_2324PCI335 0x000a -#define PCI_DEVICE_ID_COMMTECH_2328PCI335 0x000b - -static int -pci_fastcom335_setup(struct serial_private *priv, - const struct pciserial_board *board, - struct uart_8250_port *port, int idx) -{ - u8 __iomem *p; - - p = pci_ioremap_bar(priv->dev, 0); - if (p == NULL) - return -ENOMEM; - - port->port.flags |= UPF_EXAR_EFR; - - /* - * Setup Multipurpose Input/Output pins. - */ - if (idx == 0) { - switch (priv->dev->device) { - case PCI_DEVICE_ID_COMMTECH_4222PCI335: - case PCI_DEVICE_ID_COMMTECH_4224PCI335: - writeb(0x78, p + UART_EXAR_MPIOLVL_7_0); - writeb(0x00, p + UART_EXAR_MPIOINV_7_0); - writeb(0x00, p + UART_EXAR_MPIOSEL_7_0); - break; - case PCI_DEVICE_ID_COMMTECH_2324PCI335: - case PCI_DEVICE_ID_COMMTECH_2328PCI335: - writeb(0x00, p + UART_EXAR_MPIOLVL_7_0); - writeb(0xc0, p + UART_EXAR_MPIOINV_7_0); - writeb(0xc0, p + UART_EXAR_MPIOSEL_7_0); - break; - } - writeb(0x00, p + UART_EXAR_MPIOINT_7_0); - writeb(0x00, p + UART_EXAR_MPIO3T_7_0); - writeb(0x00, p + UART_EXAR_MPIOOD_7_0); - } - writeb(0x00, p + UART_EXAR_8XMODE); - writeb(UART_FCTR_EXAR_TRGD, p + UART_EXAR_FCTR); - writeb(32, p + UART_EXAR_TXTRG); - writeb(32, p + UART_EXAR_RXTRG); - iounmap(p); - - return pci_default_setup(priv, board, port, idx); -} - static int pci_wch_ch353_setup(struct serial_private *priv, const struct pciserial_board *board, @@ -2596,38 +2535,6 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = { .subdevice = PCI_ANY_ID, .setup = pci_asix_setup, }, - /* - * Commtech, Inc. Fastcom adapters - * - */ - { - .vendor = PCI_VENDOR_ID_COMMTECH, - .device = PCI_DEVICE_ID_COMMTECH_4222PCI335, - .subvendor = PCI_ANY_ID, - .subdevice = PCI_ANY_ID, - .setup = pci_fastcom335_setup, - }, - { - .vendor = PCI_VENDOR_ID_COMMTECH, - .device = PCI_DEVICE_ID_COMMTECH_4224PCI335, - .subvendor = PCI_ANY_ID, - .subdevice = PCI_ANY_ID, - .setup = pci_fastcom335_setup, - }, - { - .vendor = PCI_VENDOR_ID_COMMTECH, - .device = PCI_DEVICE_ID_COMMTECH_2324PCI335, - .subvendor = PCI_ANY_ID, - .subdevice = PCI_ANY_ID, - .setup = pci_fastcom335_setup, - }, - { - .vendor = PCI_VENDOR_ID_COMMTECH, - .device = PCI_DEVICE_ID_COMMTECH_2328PCI335, - .subvendor = PCI_ANY_ID, - .subdevice = PCI_ANY_ID, - .setup = pci_fastcom335_setup, - }, /* * Broadcom TruManage (NetXtreme) */ @@ -2739,10 +2646,6 @@ enum pci_board_num_t { pbn_b0_4_1152000, - pbn_b0_2_1152000_200, - pbn_b0_4_1152000_200, - pbn_b0_8_1152000_200, - pbn_b0_4_1250000, pbn_b0_2_1843200, @@ -2948,27 +2851,6 @@ static struct pciserial_board pci_boards[] = { .uart_offset = 8, }, - [pbn_b0_2_1152000_200] = { - .flags = FL_BASE0, - .num_ports = 2, - .base_baud = 1152000, - .uart_offset = 0x200, - }, - - [pbn_b0_4_1152000_200] = { - .flags = FL_BASE0, - .num_ports = 4, - .base_baud = 1152000, - .uart_offset = 0x200, - }, - - [pbn_b0_8_1152000_200] = { - .flags = FL_BASE0, - .num_ports = 8, - .base_baud = 1152000, - .uart_offset = 0x200, - }, - [pbn_b0_4_1250000] = { .flags = FL_BASE0, .num_ports = 4, @@ -3682,6 +3564,7 @@ static const struct pci_device_id blacklist[] = { /* Exar devices */ { PCI_VDEVICE(EXAR, PCI_ANY_ID), }, + { PCI_VDEVICE(COMMTECH, PCI_ANY_ID), }, }; /* @@ -5451,26 +5334,6 @@ static struct pci_device_id serial_pci_tbl[] = { PCI_ANY_ID, PCI_ANY_ID, 0, 0, pbn_wch384_4 }, - /* - * Commtech, Inc. Fastcom adapters - */ - { PCI_VENDOR_ID_COMMTECH, PCI_DEVICE_ID_COMMTECH_4222PCI335, - PCI_ANY_ID, PCI_ANY_ID, - 0, - 0, pbn_b0_2_1152000_200 }, - { PCI_VENDOR_ID_COMMTECH, PCI_DEVICE_ID_COMMTECH_4224PCI335, - PCI_ANY_ID, PCI_ANY_ID, - 0, - 0, pbn_b0_4_1152000_200 }, - { PCI_VENDOR_ID_COMMTECH, PCI_DEVICE_ID_COMMTECH_2324PCI335, - PCI_ANY_ID, PCI_ANY_ID, - 0, - 0, pbn_b0_4_1152000_200 }, - { PCI_VENDOR_ID_COMMTECH, PCI_DEVICE_ID_COMMTECH_2328PCI335, - PCI_ANY_ID, PCI_ANY_ID, - 0, - 0, pbn_b0_8_1152000_200 }, - /* Fintek PCI serial cards */ { PCI_DEVICE(0x1c29, 0x1104), .driver_data = pbn_fintek_4 }, { PCI_DEVICE(0x1c29, 0x1108), .driver_data = pbn_fintek_8 }, From 55246cb2141fa2bfba8dd74aee25365586961c39 Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 21:06:05 +0200 Subject: [PATCH 0074/1149] serial: pci: Remove unused pci_boards entries commit 0d560a1d549379e46139fb9eeae0b43328c76dea upstream. Became obsolete with the split-out of 8250_exar. Signed-off-by: Jan Kiszka Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- drivers/tty/serial/8250/8250_pci.c | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c index 8437fec53126..144d23aa6e6d 100644 --- a/drivers/tty/serial/8250/8250_pci.c +++ b/drivers/tty/serial/8250/8250_pci.c @@ -2651,10 +2651,6 @@ enum pci_board_num_t { pbn_b0_2_1843200, pbn_b0_4_1843200, - pbn_b0_2_1843200_200, - pbn_b0_4_1843200_200, - pbn_b0_8_1843200_200, - pbn_b0_1_4000000, pbn_b0_bt_1_115200, @@ -2871,24 +2867,6 @@ static struct pciserial_board pci_boards[] = { .uart_offset = 8, }, - [pbn_b0_2_1843200_200] = { - .flags = FL_BASE0, - .num_ports = 2, - .base_baud = 1843200, - .uart_offset = 0x200, - }, - [pbn_b0_4_1843200_200] = { - .flags = FL_BASE0, - .num_ports = 4, - .base_baud = 1843200, - .uart_offset = 0x200, - }, - [pbn_b0_8_1843200_200] = { - .flags = FL_BASE0, - .num_ports = 8, - .base_baud = 1843200, - .uart_offset = 0x200, - }, [pbn_b0_1_4000000] = { .flags = FL_BASE0, .num_ports = 1, From cc4512d3da0998e48a26a1efd5d02dec3d915d95 Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Wed, 30 Aug 2017 21:06:06 +0200 Subject: [PATCH 0075/1149] serial: 8250_EXAR: fix duplicate Kconfig text and add missing help text commit 49e1590c2ead870f4ae5568816241c4cb9bc1606 upstream. In commit d0aeaa83f0b0f7a92615bbdd6b1f96812f7dcfd2 ("serial: exar: split out the exar code from 8250_pci") the exar driver got its own Kconfig. However the text for the new option was never changed from the original 8250_PCI text, and hence it appears confusing when you get asked the same question twice: 8250/16550 PCI device support (SERIAL_8250_PCI) [Y/n/m/?] (NEW) 8250/16550 PCI device support (SERIAL_8250_EXAR) [Y/n/m] (NEW) Adding to the confusion, is that there is no help text for this new option to indicate it is specific to a certain family of cards. Fix both issues at the same time, as well as the space vs. tab issues introduced in the same commit. Fixes: d0aeaa83f0b0 ("serial: exar: split out the exar code from 8250_pci") Cc: Jiri Slaby Cc: linux-serial@vger.kernel.org Signed-off-by: Paul Gortmaker Acked-by: Sudip Mukherjee Reviewed-by: Andy Shevchenko Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- drivers/tty/serial/8250/Kconfig | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/tty/serial/8250/Kconfig b/drivers/tty/serial/8250/Kconfig index f69b0905468f..bf7b5b5f2868 100644 --- a/drivers/tty/serial/8250/Kconfig +++ b/drivers/tty/serial/8250/Kconfig @@ -117,9 +117,13 @@ config SERIAL_8250_PCI by the parport_serial driver, enabled with CONFIG_PARPORT_SERIAL. config SERIAL_8250_EXAR - tristate "8250/16550 PCI device support" - depends on SERIAL_8250_PCI + tristate "8250/16550 Exar/Commtech PCI/PCIe device support" + depends on SERIAL_8250_PCI default SERIAL_8250 + help + This builds support for XR17C1xx, XR17V3xx and some Commtech + 422x PCIe serial cards that are not covered by the more generic + SERIAL_8250_PCI option. config SERIAL_8250_HP300 tristate From 9ab0d0e312d660a76cea2bb2adda3a08b3abc265 Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 21:06:07 +0200 Subject: [PATCH 0076/1149] serial: exar: Preconfigure xr17v35x MPIOs as output commit 7dea8165f1d6434dc7572004363f86339f0f4322 upstream. This is the safe default for GPIOs with unknown external wiring. Signed-off-by: Jan Kiszka Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- drivers/tty/serial/8250/8250_exar.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/8250_exar.c index 9af4266eff96..8d392ad207cf 100644 --- a/drivers/tty/serial/8250/8250_exar.c +++ b/drivers/tty/serial/8250/8250_exar.c @@ -164,13 +164,13 @@ static void setup_gpio(u8 __iomem *p) writeb(0x00, p + UART_EXAR_MPIOLVL_7_0); writeb(0x00, p + UART_EXAR_MPIO3T_7_0); writeb(0x00, p + UART_EXAR_MPIOINV_7_0); - writeb(0x00, p + UART_EXAR_MPIOSEL_7_0); + writeb(0xff, p + UART_EXAR_MPIOSEL_7_0); writeb(0x00, p + UART_EXAR_MPIOOD_7_0); writeb(0x00, p + UART_EXAR_MPIOINT_15_8); writeb(0x00, p + UART_EXAR_MPIOLVL_15_8); writeb(0x00, p + UART_EXAR_MPIO3T_15_8); writeb(0x00, p + UART_EXAR_MPIOINV_15_8); - writeb(0x00, p + UART_EXAR_MPIOSEL_15_8); + writeb(0xff, p + UART_EXAR_MPIOSEL_15_8); writeb(0x00, p + UART_EXAR_MPIOOD_15_8); } From b23b56c59feea06a3f4fbf6bb6b231449c659ea7 Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 21:06:08 +0200 Subject: [PATCH 0077/1149] serial: exar: Leave MPIOs as output for Commtech adapters commit bea8be656185a2808a2f255f4a91ff18215a9d0c upstream. Commtech adapters apparently need the original setting as outputs, see https://marc.info/?l=linux-gpio&m=149557425201323&w=2. Account for that. Fixes: 7dea8165f1d6 ("serial: exar: Preconfigure xr17v35x MPIOs as output") Signed-off-by: Jan Kiszka Reviewed-by: Andy Shevchenko Reviewed-by: Linus Walleij Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- drivers/tty/serial/8250/8250_exar.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/8250_exar.c index 8d392ad207cf..e78ed54a696b 100644 --- a/drivers/tty/serial/8250/8250_exar.c +++ b/drivers/tty/serial/8250/8250_exar.c @@ -158,19 +158,26 @@ pci_xr17c154_setup(struct exar8250 *priv, struct pci_dev *pcidev, return default_setup(priv, pcidev, idx, offset, port); } -static void setup_gpio(u8 __iomem *p) +static void setup_gpio(struct pci_dev *pcidev, u8 __iomem *p) { + /* + * The Commtech adapters required the MPIOs to be driven low. The Exar + * devices will export them as GPIOs, so we pre-configure them safely + * as inputs. + */ + u8 dir = pcidev->vendor == PCI_VENDOR_ID_EXAR ? 0xff : 0x00; + writeb(0x00, p + UART_EXAR_MPIOINT_7_0); writeb(0x00, p + UART_EXAR_MPIOLVL_7_0); writeb(0x00, p + UART_EXAR_MPIO3T_7_0); writeb(0x00, p + UART_EXAR_MPIOINV_7_0); - writeb(0xff, p + UART_EXAR_MPIOSEL_7_0); + writeb(dir, p + UART_EXAR_MPIOSEL_7_0); writeb(0x00, p + UART_EXAR_MPIOOD_7_0); writeb(0x00, p + UART_EXAR_MPIOINT_15_8); writeb(0x00, p + UART_EXAR_MPIOLVL_15_8); writeb(0x00, p + UART_EXAR_MPIO3T_15_8); writeb(0x00, p + UART_EXAR_MPIOINV_15_8); - writeb(0xff, p + UART_EXAR_MPIOSEL_15_8); + writeb(dir, p + UART_EXAR_MPIOSEL_15_8); writeb(0x00, p + UART_EXAR_MPIOOD_15_8); } @@ -223,7 +230,7 @@ pci_xr17v35x_setup(struct exar8250 *priv, struct pci_dev *pcidev, if (idx == 0) { /* Setup Multipurpose Input/Output pins. */ - setup_gpio(p); + setup_gpio(pcidev, p); port->port.private_data = xr17v35x_register_gpio(pcidev); } From 38555f147cd7f4ee3c7bb2c406ccaefd7031a440 Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 21:06:09 +0200 Subject: [PATCH 0078/1149] serial: uapi: Add support for bus termination commit e8759ad17d41913dfeb49736ca7fbfbc96f32c54 upstream. The Siemens IOT2040 comes with a RS485 interface that allows to enable or disable bus termination via software. Add a bit to the flags field of serial_rs485 that applications can set in order to request this feature from the hardware. This seems generic enough to add it for everyone. Existing driver will simply ignore it when set. Signed-off-by: Sascha Weisenberger Signed-off-by: Jan Kiszka Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- include/uapi/linux/serial.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/uapi/linux/serial.h b/include/uapi/linux/serial.h index 25331f9faa76..7934e3247b45 100644 --- a/include/uapi/linux/serial.h +++ b/include/uapi/linux/serial.h @@ -121,6 +121,9 @@ struct serial_rs485 { #define SER_RS485_RTS_AFTER_SEND (1 << 2) /* Logical level for RTS pin after sent*/ #define SER_RS485_RX_DURING_TX (1 << 4) +#define SER_RS485_TERMINATE_BUS (1 << 5) /* Enable bus + termination + (if supported) */ __u32 delay_rts_before_send; /* Delay before send (milliseconds) */ __u32 delay_rts_after_send; /* Delay after send (milliseconds) */ __u32 padding[5]; /* Memory is cheap, new structs From 90afa976f81d015d4f273cab0a25d77ab7e3a593 Mon Sep 17 00:00:00 2001 From: Sudip Mukherjee Date: Wed, 30 Aug 2017 21:06:12 +0200 Subject: [PATCH 0079/1149] gpio: exar: add gpio for exar cards commit 6596e59e63cd4c0c0b787ce8c1e8bdd1d957b16e upstream. Exar XR17V352/354/358 chips have 16 multi-purpose inputs/outputs which can be controlled using gpio interface. Add the gpio specific code. Signed-off-by: Sudip Mukherjee Signed-off-by: Linus Walleij [Jan: adjusted gpio_chip.parent to .dev for 4.4] Signed-off-by: Ben Hutchings --- drivers/gpio/Kconfig | 7 ++ drivers/gpio/Makefile | 1 + drivers/gpio/gpio-exar.c | 200 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 208 insertions(+) create mode 100644 drivers/gpio/gpio-exar.c diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index 469dc378adeb..398b909ddecb 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -184,6 +184,13 @@ config GPIO_ETRAXFS help Say yes here to support the GPIO controller on Axis ETRAX FS SoCs. +config GPIO_EXAR + tristate "Support for GPIO pins on XR17V352/354/358" + depends on SERIAL_8250_EXAR + help + Selecting this option will enable handling of GPIO pins present + on Exar XR17V352/354/358 chips. + config GPIO_GE_FPGA bool "GE FPGA based GPIO" depends on GE_FPGA diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile index 986dbd838cea..68efdb54f8a7 100644 --- a/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile @@ -37,6 +37,7 @@ obj-$(CONFIG_GPIO_DWAPB) += gpio-dwapb.o obj-$(CONFIG_GPIO_EM) += gpio-em.o obj-$(CONFIG_GPIO_EP93XX) += gpio-ep93xx.o obj-$(CONFIG_GPIO_ETRAXFS) += gpio-etraxfs.o +obj-$(CONFIG_GPIO_EXAR) += gpio-exar.o obj-$(CONFIG_GPIO_F7188X) += gpio-f7188x.o obj-$(CONFIG_GPIO_GE_FPGA) += gpio-ge.o obj-$(CONFIG_GPIO_GRGPIO) += gpio-grgpio.o diff --git a/drivers/gpio/gpio-exar.c b/drivers/gpio/gpio-exar.c new file mode 100644 index 000000000000..4fd6aea59c75 --- /dev/null +++ b/drivers/gpio/gpio-exar.c @@ -0,0 +1,200 @@ +/* + * GPIO driver for Exar XR17V35X chip + * + * Copyright (C) 2015 Sudip Mukherjee + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +#include +#include +#include +#include +#include +#include +#include +#include + +#define EXAR_OFFSET_MPIOLVL_LO 0x90 +#define EXAR_OFFSET_MPIOSEL_LO 0x93 +#define EXAR_OFFSET_MPIOLVL_HI 0x96 +#define EXAR_OFFSET_MPIOSEL_HI 0x99 + +#define DRIVER_NAME "gpio_exar" + +static DEFINE_IDA(ida_index); + +struct exar_gpio_chip { + struct gpio_chip gpio_chip; + struct mutex lock; + int index; + void __iomem *regs; + char name[20]; +}; + +static void exar_update(struct gpio_chip *chip, unsigned int reg, int val, + unsigned int offset) +{ + struct exar_gpio_chip *exar_gpio = gpiochip_get_data(chip); + int temp; + + mutex_lock(&exar_gpio->lock); + temp = readb(exar_gpio->regs + reg); + temp &= ~BIT(offset); + if (val) + temp |= BIT(offset); + writeb(temp, exar_gpio->regs + reg); + mutex_unlock(&exar_gpio->lock); +} + +static int exar_set_direction(struct gpio_chip *chip, int direction, + unsigned int offset) +{ + unsigned int bank = offset / 8; + unsigned int addr; + + addr = bank ? EXAR_OFFSET_MPIOSEL_HI : EXAR_OFFSET_MPIOSEL_LO; + exar_update(chip, addr, direction, offset % 8); + return 0; +} + +static int exar_direction_output(struct gpio_chip *chip, unsigned int offset, + int value) +{ + return exar_set_direction(chip, 0, offset); +} + +static int exar_direction_input(struct gpio_chip *chip, unsigned int offset) +{ + return exar_set_direction(chip, 1, offset); +} + +static int exar_get(struct gpio_chip *chip, unsigned int reg) +{ + struct exar_gpio_chip *exar_gpio = gpiochip_get_data(chip); + int value; + + mutex_lock(&exar_gpio->lock); + value = readb(exar_gpio->regs + reg); + mutex_unlock(&exar_gpio->lock); + + return !!value; +} + +static int exar_get_direction(struct gpio_chip *chip, unsigned int offset) +{ + unsigned int bank = offset / 8; + unsigned int addr; + int val; + + addr = bank ? EXAR_OFFSET_MPIOSEL_HI : EXAR_OFFSET_MPIOSEL_LO; + val = exar_get(chip, addr) >> (offset % 8); + + return !!val; +} + +static int exar_get_value(struct gpio_chip *chip, unsigned int offset) +{ + unsigned int bank = offset / 8; + unsigned int addr; + int val; + + addr = bank ? EXAR_OFFSET_MPIOLVL_LO : EXAR_OFFSET_MPIOLVL_HI; + val = exar_get(chip, addr) >> (offset % 8); + + return !!val; +} + +static void exar_set_value(struct gpio_chip *chip, unsigned int offset, + int value) +{ + unsigned int bank = offset / 8; + unsigned int addr; + + addr = bank ? EXAR_OFFSET_MPIOLVL_HI : EXAR_OFFSET_MPIOLVL_LO; + exar_update(chip, addr, value, offset % 8); +} + +static int gpio_exar_probe(struct platform_device *pdev) +{ + struct pci_dev *pcidev = platform_get_drvdata(pdev); + struct exar_gpio_chip *exar_gpio; + void __iomem *p; + int index, ret; + + if (pcidev->vendor != PCI_VENDOR_ID_EXAR) + return -ENODEV; + + /* + * Map the pci device to get the register addresses. + * We will need to read and write those registers to control + * the GPIO pins. + * Using managed functions will save us from unmaping on exit. + * As the device is enabled using managed functions by the + * UART driver we can also use managed functions here. + */ + p = pcim_iomap(pcidev, 0, 0); + if (!p) + return -ENOMEM; + + exar_gpio = devm_kzalloc(&pcidev->dev, sizeof(*exar_gpio), GFP_KERNEL); + if (!exar_gpio) + return -ENOMEM; + + mutex_init(&exar_gpio->lock); + + index = ida_simple_get(&ida_index, 0, 0, GFP_KERNEL); + + sprintf(exar_gpio->name, "exar_gpio%d", index); + exar_gpio->gpio_chip.label = exar_gpio->name; + exar_gpio->gpio_chip.dev = &pcidev->dev; + exar_gpio->gpio_chip.direction_output = exar_direction_output; + exar_gpio->gpio_chip.direction_input = exar_direction_input; + exar_gpio->gpio_chip.get_direction = exar_get_direction; + exar_gpio->gpio_chip.get = exar_get_value; + exar_gpio->gpio_chip.set = exar_set_value; + exar_gpio->gpio_chip.base = -1; + exar_gpio->gpio_chip.ngpio = 16; + exar_gpio->regs = p; + exar_gpio->index = index; + + ret = devm_gpiochip_add_data(&pcidev->dev, + &exar_gpio->gpio_chip, exar_gpio); + if (ret) + goto err_destroy; + + platform_set_drvdata(pdev, exar_gpio); + + return 0; + +err_destroy: + ida_simple_remove(&ida_index, index); + mutex_destroy(&exar_gpio->lock); + return ret; +} + +static int gpio_exar_remove(struct platform_device *pdev) +{ + struct exar_gpio_chip *exar_gpio = platform_get_drvdata(pdev); + + ida_simple_remove(&ida_index, exar_gpio->index); + mutex_destroy(&exar_gpio->lock); + + return 0; +} + +static struct platform_driver gpio_exar_driver = { + .probe = gpio_exar_probe, + .remove = gpio_exar_remove, + .driver = { + .name = DRIVER_NAME, + }, +}; + +module_platform_driver(gpio_exar_driver); + +MODULE_ALIAS("platform:" DRIVER_NAME); +MODULE_DESCRIPTION("Exar GPIO driver"); +MODULE_AUTHOR("Sudip Mukherjee "); +MODULE_LICENSE("GPL"); From 9993a658c431677d52a91f7ea116d2c2240cd9da Mon Sep 17 00:00:00 2001 From: Axel Lin Date: Wed, 30 Aug 2017 21:06:13 +0200 Subject: [PATCH 0080/1149] gpio: exar: Set proper output level in exar_direction_output commit eddeae073760aa3186e2fa0d14a12794687fa786 upstream. Current code does not set output level in exar_direction_output, fix it. Also move the direction_output/direction_input code block to avoid forward declaration for exar_set_value(). Signed-off-by: Axel Lin Signed-off-by: Linus Walleij Signed-off-by: Ben Hutchings --- drivers/gpio/gpio-exar.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/drivers/gpio/gpio-exar.c b/drivers/gpio/gpio-exar.c index 4fd6aea59c75..866302332373 100644 --- a/drivers/gpio/gpio-exar.c +++ b/drivers/gpio/gpio-exar.c @@ -59,17 +59,6 @@ static int exar_set_direction(struct gpio_chip *chip, int direction, return 0; } -static int exar_direction_output(struct gpio_chip *chip, unsigned int offset, - int value) -{ - return exar_set_direction(chip, 0, offset); -} - -static int exar_direction_input(struct gpio_chip *chip, unsigned int offset) -{ - return exar_set_direction(chip, 1, offset); -} - static int exar_get(struct gpio_chip *chip, unsigned int reg) { struct exar_gpio_chip *exar_gpio = gpiochip_get_data(chip); @@ -116,6 +105,18 @@ static void exar_set_value(struct gpio_chip *chip, unsigned int offset, exar_update(chip, addr, value, offset % 8); } +static int exar_direction_output(struct gpio_chip *chip, unsigned int offset, + int value) +{ + exar_set_value(chip, offset, value); + return exar_set_direction(chip, 0, offset); +} + +static int exar_direction_input(struct gpio_chip *chip, unsigned int offset) +{ + return exar_set_direction(chip, 1, offset); +} + static int gpio_exar_probe(struct platform_device *pdev) { struct pci_dev *pcidev = platform_get_drvdata(pdev); From 305c90a63c910d02a45d26a2b2f2e84a74326dda Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 21:06:14 +0200 Subject: [PATCH 0081/1149] gpio-exar/8250-exar: Fix passing in of parent PCI device commit d3936d7437e388f3a91995e8f07fb82affff2f0d upstream. This fixes reloading of the GPIO driver for the same platform device instance as created by the exar UART driver: First of all, the driver sets drvdata to its own value during probing and does not restore the original value on exit. But this won't help anyway as the core clears drvdata after the driver left. Set the platform device parent instead. Signed-off-by: Jan Kiszka Reviewed-by: Andy Shevchenko Acked-by: Linus Walleij Acked-by: Greg Kroah-Hartman Signed-off-by: Linus Walleij Signed-off-by: Ben Hutchings --- drivers/gpio/gpio-exar.c | 2 +- drivers/tty/serial/8250/8250_exar.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/gpio/gpio-exar.c b/drivers/gpio/gpio-exar.c index 866302332373..f956b8fd67ca 100644 --- a/drivers/gpio/gpio-exar.c +++ b/drivers/gpio/gpio-exar.c @@ -119,7 +119,7 @@ static int exar_direction_input(struct gpio_chip *chip, unsigned int offset) static int gpio_exar_probe(struct platform_device *pdev) { - struct pci_dev *pcidev = platform_get_drvdata(pdev); + struct pci_dev *pcidev = to_pci_dev(pdev->dev.parent); struct exar_gpio_chip *exar_gpio; void __iomem *p; int index, ret; diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/8250_exar.c index e78ed54a696b..6cab7b0512f3 100644 --- a/drivers/tty/serial/8250/8250_exar.c +++ b/drivers/tty/serial/8250/8250_exar.c @@ -190,7 +190,8 @@ xr17v35x_register_gpio(struct pci_dev *pcidev) if (!pdev) return NULL; - platform_set_drvdata(pdev, pcidev); + pdev->dev.parent = &pcidev->dev; + if (platform_device_add(pdev) < 0) { platform_device_put(pdev); return NULL; From 4a6e57d56a13ff5eecb7dd996a9a6e04ccd9b5ef Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 21:06:15 +0200 Subject: [PATCH 0082/1149] gpio: exar: Allocate resources on behalf of the platform device commit 5dab5872e59390aa9cca26ee629b95f7179f6c77 upstream. Do not allocate resources on behalf of the parent device but on our own. Otherwise, cleanup does not properly work if gpio-exar is removed but not the parent device. Signed-off-by: Jan Kiszka Reviewed-by: Andy Shevchenko Acked-by: Linus Walleij Signed-off-by: Linus Walleij Signed-off-by: Ben Hutchings --- drivers/gpio/gpio-exar.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpio/gpio-exar.c b/drivers/gpio/gpio-exar.c index f956b8fd67ca..01f60ac86430 100644 --- a/drivers/gpio/gpio-exar.c +++ b/drivers/gpio/gpio-exar.c @@ -139,7 +139,7 @@ static int gpio_exar_probe(struct platform_device *pdev) if (!p) return -ENOMEM; - exar_gpio = devm_kzalloc(&pcidev->dev, sizeof(*exar_gpio), GFP_KERNEL); + exar_gpio = devm_kzalloc(&pdev->dev, sizeof(*exar_gpio), GFP_KERNEL); if (!exar_gpio) return -ENOMEM; @@ -160,7 +160,7 @@ static int gpio_exar_probe(struct platform_device *pdev) exar_gpio->regs = p; exar_gpio->index = index; - ret = devm_gpiochip_add_data(&pcidev->dev, + ret = devm_gpiochip_add_data(&pdev->dev, &exar_gpio->gpio_chip, exar_gpio); if (ret) goto err_destroy; From 4613af45df20c45f608fd545de6f66fe767751d3 Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 21:06:16 +0200 Subject: [PATCH 0083/1149] gpio: exar: Fix reading of directions and values commit 7f45a875da46a112f781c25cfa9bcb93aaed4712 upstream. First, the logic for translating a register bit to the return code of exar_get_direction and exar_get_value were wrong. And second, there was a flip regarding the register bank in exar_get_direction. Signed-off-by: Jan Kiszka Reviewed-by: Andy Shevchenko Acked-by: Linus Walleij Signed-off-by: Linus Walleij Signed-off-by: Ben Hutchings --- drivers/gpio/gpio-exar.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpio/gpio-exar.c b/drivers/gpio/gpio-exar.c index 01f60ac86430..5e0f16738e26 100644 --- a/drivers/gpio/gpio-exar.c +++ b/drivers/gpio/gpio-exar.c @@ -68,7 +68,7 @@ static int exar_get(struct gpio_chip *chip, unsigned int reg) value = readb(exar_gpio->regs + reg); mutex_unlock(&exar_gpio->lock); - return !!value; + return value; } static int exar_get_direction(struct gpio_chip *chip, unsigned int offset) @@ -78,7 +78,7 @@ static int exar_get_direction(struct gpio_chip *chip, unsigned int offset) int val; addr = bank ? EXAR_OFFSET_MPIOSEL_HI : EXAR_OFFSET_MPIOSEL_LO; - val = exar_get(chip, addr) >> (offset % 8); + val = exar_get(chip, addr) & BIT(offset % 8); return !!val; } @@ -89,8 +89,8 @@ static int exar_get_value(struct gpio_chip *chip, unsigned int offset) unsigned int addr; int val; - addr = bank ? EXAR_OFFSET_MPIOLVL_LO : EXAR_OFFSET_MPIOLVL_HI; - val = exar_get(chip, addr) >> (offset % 8); + addr = bank ? EXAR_OFFSET_MPIOLVL_HI : EXAR_OFFSET_MPIOLVL_LO; + val = exar_get(chip, addr) & BIT(offset % 8); return !!val; } From 169dab21f6d94be5d05053b24248af0eb8ec45ae Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 21:06:17 +0200 Subject: [PATCH 0084/1149] gpio-exar/8250-exar: Do not even instantiate a GPIO device for Commtech cards commit a39f2fe7165647c2cd7bdbebb3d04061035e520f upstream. Commtech adapters need the MPIOs for internal purposes, and the gpio-exar driver already refused to pick them up. But there is actually no point in even creating the underlying platform device. Signed-off-by: Jan Kiszka Reviewed-by: Andy Shevchenko Acked-by: Linus Walleij Acked-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- drivers/gpio/gpio-exar.c | 3 --- drivers/tty/serial/8250/8250_exar.c | 4 +++- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/gpio/gpio-exar.c b/drivers/gpio/gpio-exar.c index 5e0f16738e26..0a79436d8ba7 100644 --- a/drivers/gpio/gpio-exar.c +++ b/drivers/gpio/gpio-exar.c @@ -124,9 +124,6 @@ static int gpio_exar_probe(struct platform_device *pdev) void __iomem *p; int index, ret; - if (pcidev->vendor != PCI_VENDOR_ID_EXAR) - return -ENODEV; - /* * Map the pci device to get the register addresses. * We will need to read and write those registers to control diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/8250_exar.c index 6cab7b0512f3..e907f79b4766 100644 --- a/drivers/tty/serial/8250/8250_exar.c +++ b/drivers/tty/serial/8250/8250_exar.c @@ -233,7 +233,9 @@ pci_xr17v35x_setup(struct exar8250 *priv, struct pci_dev *pcidev, /* Setup Multipurpose Input/Output pins. */ setup_gpio(pcidev, p); - port->port.private_data = xr17v35x_register_gpio(pcidev); + if (pcidev->vendor == PCI_VENDOR_ID_EXAR) + port->port.private_data = + xr17v35x_register_gpio(pcidev); } return 0; From 9369c8cd1857e073db17329aba161917e3abe494 Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 21:06:18 +0200 Subject: [PATCH 0085/1149] gpio: exar: Fix iomap request commit 8847f5f9ef554269d2a06100b311d363b9727da6 upstream. The UART driver already maps the resource for us. Trying to do this here only fails and leaves us with a non-working device. Signed-off-by: Jan Kiszka Reviewed-by: Andy Shevchenko Acked-by: Linus Walleij Signed-off-by: Ben Hutchings --- drivers/gpio/gpio-exar.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/drivers/gpio/gpio-exar.c b/drivers/gpio/gpio-exar.c index 0a79436d8ba7..fdb1b1491a18 100644 --- a/drivers/gpio/gpio-exar.c +++ b/drivers/gpio/gpio-exar.c @@ -125,14 +125,10 @@ static int gpio_exar_probe(struct platform_device *pdev) int index, ret; /* - * Map the pci device to get the register addresses. - * We will need to read and write those registers to control - * the GPIO pins. - * Using managed functions will save us from unmaping on exit. - * As the device is enabled using managed functions by the - * UART driver we can also use managed functions here. + * The UART driver must have mapped region 0 prior to registering this + * device - use it. */ - p = pcim_iomap(pcidev, 0, 0); + p = pcim_iomap_table(pcidev)[0]; if (!p) return -ENOMEM; From b2b98fc610a57365acd74f3fd04fc27b6927b48c Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 21:06:19 +0200 Subject: [PATCH 0086/1149] gpio-exar/8250-exar: Rearrange gpiochip parenthood commit 4076cf08ac7673aca7d4dd9ddf18045d08dbc292 upstream. Set the parent of the exar gpiochip to its platform device, like other gpiochips are doing it. In order to keep the relationship discoverable for ACPI systems, set the platform device companion to the PCI device. Signed-off-by: Jan Kiszka Reviewed-by: Andy Shevchenko Acked-by: Linus Walleij Signed-off-by: Ben Hutchings --- drivers/gpio/gpio-exar.c | 2 +- drivers/tty/serial/8250/8250_exar.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-exar.c b/drivers/gpio/gpio-exar.c index fdb1b1491a18..0ee6d5735d0c 100644 --- a/drivers/gpio/gpio-exar.c +++ b/drivers/gpio/gpio-exar.c @@ -142,7 +142,7 @@ static int gpio_exar_probe(struct platform_device *pdev) sprintf(exar_gpio->name, "exar_gpio%d", index); exar_gpio->gpio_chip.label = exar_gpio->name; - exar_gpio->gpio_chip.dev = &pcidev->dev; + exar_gpio->gpio_chip.dev = &pdev->dev; exar_gpio->gpio_chip.direction_output = exar_direction_output; exar_gpio->gpio_chip.direction_input = exar_direction_input; exar_gpio->gpio_chip.get_direction = exar_get_direction; diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/8250_exar.c index e907f79b4766..477d1b8af107 100644 --- a/drivers/tty/serial/8250/8250_exar.c +++ b/drivers/tty/serial/8250/8250_exar.c @@ -9,6 +9,7 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License. */ +#include #include #include #include @@ -191,6 +192,7 @@ xr17v35x_register_gpio(struct pci_dev *pcidev) return NULL; pdev->dev.parent = &pcidev->dev; + ACPI_COMPANION_SET(&pdev->dev, ACPI_COMPANION(&pcidev->dev)); if (platform_device_add(pdev) < 0) { platform_device_put(pdev); From 92d0ffe5ce86662582877871b048075b394b131c Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 21:06:20 +0200 Subject: [PATCH 0087/1149] serial: exar: Factor out platform hooks commit 0d963ebf57d4c6374b3a33050a18af23c1e2ede1 upstream. This prepares the addition of IOT2040 platform support by preparing the needed setup and rs485_config hooks. Signed-off-by: Jan Kiszka Reviewed-by: Andy Shevchenko Acked-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- drivers/tty/serial/8250/8250_exar.c | 32 ++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/8250_exar.c index 477d1b8af107..fd721097f179 100644 --- a/drivers/tty/serial/8250/8250_exar.c +++ b/drivers/tty/serial/8250/8250_exar.c @@ -50,6 +50,11 @@ struct exar8250; +struct exar8250_platform { + int (*rs485_config)(struct uart_port *, struct serial_rs485 *); + int (*register_gpio)(struct pci_dev *, struct uart_8250_port *); +}; + /** * struct exar8250_board - board information * @num_ports: number of serial ports @@ -183,7 +188,7 @@ static void setup_gpio(struct pci_dev *pcidev, u8 __iomem *p) } static void * -xr17v35x_register_gpio(struct pci_dev *pcidev) +__xr17v35x_register_gpio(struct pci_dev *pcidev) { struct platform_device *pdev; @@ -202,17 +207,36 @@ xr17v35x_register_gpio(struct pci_dev *pcidev) return pdev; } +static int xr17v35x_register_gpio(struct pci_dev *pcidev, + struct uart_8250_port *port) +{ + if (pcidev->vendor == PCI_VENDOR_ID_EXAR) + port->port.private_data = + __xr17v35x_register_gpio(pcidev); + + return 0; +} + +static const struct exar8250_platform exar8250_default_platform = { + .register_gpio = xr17v35x_register_gpio, +}; + static int pci_xr17v35x_setup(struct exar8250 *priv, struct pci_dev *pcidev, struct uart_8250_port *port, int idx) { const struct exar8250_board *board = priv->board; + const struct exar8250_platform *platform; unsigned int offset = idx * 0x400; unsigned int baud = 7812500; u8 __iomem *p; int ret; + platform = &exar8250_default_platform; + port->port.uartclk = baud * 16; + port->port.rs485_config = platform->rs485_config; + /* * Setup the uart clock for the devices on expansion slot to * half the clock speed of the main chip (which is 125MHz) @@ -235,12 +259,10 @@ pci_xr17v35x_setup(struct exar8250 *priv, struct pci_dev *pcidev, /* Setup Multipurpose Input/Output pins. */ setup_gpio(pcidev, p); - if (pcidev->vendor == PCI_VENDOR_ID_EXAR) - port->port.private_data = - xr17v35x_register_gpio(pcidev); + ret = platform->register_gpio(pcidev, port); } - return 0; + return ret; } static void pci_xr17v35x_exit(struct pci_dev *pcidev) From b0287dad66f2503642e42a67073c575885fae476 Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 21:06:21 +0200 Subject: [PATCH 0088/1149] gpio-exar/8250-exar: Make set of exported GPIOs configurable commit 380b1e2f3a2f32bfe9c0aa85a68629eb99b043c0 upstream. On the SIMATIC, IOT2040 only a single pin is exportable as GPIO, the rest is required to operate the UART. To allow modeling this case, expand the platform device data structure to specify a (consecutive) pin subset for exporting by the gpio-exar driver. Signed-off-by: Jan Kiszka Reviewed-by: Andy Shevchenko [Jan: replace unavailable platform dev properties with pdata for 4.4] Signed-off-by: Ben Hutchings --- drivers/gpio/gpio-exar.c | 48 +++++++++++++------------ drivers/tty/serial/8250/8250_exar.c | 14 ++++++-- include/linux/platform_data/gpio-exar.h | 21 +++++++++++ 3 files changed, 57 insertions(+), 26 deletions(-) create mode 100644 include/linux/platform_data/gpio-exar.h diff --git a/drivers/gpio/gpio-exar.c b/drivers/gpio/gpio-exar.c index 0ee6d5735d0c..749f62821492 100644 --- a/drivers/gpio/gpio-exar.c +++ b/drivers/gpio/gpio-exar.c @@ -15,6 +15,7 @@ #include #include #include +#include #define EXAR_OFFSET_MPIOLVL_LO 0x90 #define EXAR_OFFSET_MPIOSEL_LO 0x93 @@ -31,6 +32,7 @@ struct exar_gpio_chip { int index; void __iomem *regs; char name[20]; + unsigned int first_pin; }; static void exar_update(struct gpio_chip *chip, unsigned int reg, int val, @@ -51,11 +53,12 @@ static void exar_update(struct gpio_chip *chip, unsigned int reg, int val, static int exar_set_direction(struct gpio_chip *chip, int direction, unsigned int offset) { - unsigned int bank = offset / 8; - unsigned int addr; + struct exar_gpio_chip *exar_gpio = gpiochip_get_data(chip); + unsigned int addr = (offset + exar_gpio->first_pin) / 8 ? + EXAR_OFFSET_MPIOSEL_HI : EXAR_OFFSET_MPIOSEL_LO; + unsigned int bit = (offset + exar_gpio->first_pin) % 8; - addr = bank ? EXAR_OFFSET_MPIOSEL_HI : EXAR_OFFSET_MPIOSEL_LO; - exar_update(chip, addr, direction, offset % 8); + exar_update(chip, addr, direction, bit); return 0; } @@ -73,36 +76,33 @@ static int exar_get(struct gpio_chip *chip, unsigned int reg) static int exar_get_direction(struct gpio_chip *chip, unsigned int offset) { - unsigned int bank = offset / 8; - unsigned int addr; - int val; - - addr = bank ? EXAR_OFFSET_MPIOSEL_HI : EXAR_OFFSET_MPIOSEL_LO; - val = exar_get(chip, addr) & BIT(offset % 8); + struct exar_gpio_chip *exar_gpio = gpiochip_get_data(chip); + unsigned int addr = (offset + exar_gpio->first_pin) / 8 ? + EXAR_OFFSET_MPIOSEL_HI : EXAR_OFFSET_MPIOSEL_LO; + unsigned int bit = (offset + exar_gpio->first_pin) % 8; - return !!val; + return !!(exar_get(chip, addr) & BIT(bit)); } static int exar_get_value(struct gpio_chip *chip, unsigned int offset) { - unsigned int bank = offset / 8; - unsigned int addr; - int val; - - addr = bank ? EXAR_OFFSET_MPIOLVL_HI : EXAR_OFFSET_MPIOLVL_LO; - val = exar_get(chip, addr) & BIT(offset % 8); + struct exar_gpio_chip *exar_gpio = gpiochip_get_data(chip); + unsigned int addr = (offset + exar_gpio->first_pin) / 8 ? + EXAR_OFFSET_MPIOLVL_HI : EXAR_OFFSET_MPIOLVL_LO; + unsigned int bit = (offset + exar_gpio->first_pin) % 8; - return !!val; + return !!(exar_get(chip, addr) & BIT(bit)); } static void exar_set_value(struct gpio_chip *chip, unsigned int offset, int value) { - unsigned int bank = offset / 8; - unsigned int addr; + struct exar_gpio_chip *exar_gpio = gpiochip_get_data(chip); + unsigned int addr = (offset + exar_gpio->first_pin) / 8 ? + EXAR_OFFSET_MPIOLVL_HI : EXAR_OFFSET_MPIOLVL_LO; + unsigned int bit = (offset + exar_gpio->first_pin) % 8; - addr = bank ? EXAR_OFFSET_MPIOLVL_HI : EXAR_OFFSET_MPIOLVL_LO; - exar_update(chip, addr, value, offset % 8); + exar_update(chip, addr, value, bit); } static int exar_direction_output(struct gpio_chip *chip, unsigned int offset, @@ -119,6 +119,7 @@ static int exar_direction_input(struct gpio_chip *chip, unsigned int offset) static int gpio_exar_probe(struct platform_device *pdev) { + const struct gpio_exar_pdata *pdata = pdev->dev.platform_data; struct pci_dev *pcidev = to_pci_dev(pdev->dev.parent); struct exar_gpio_chip *exar_gpio; void __iomem *p; @@ -149,9 +150,10 @@ static int gpio_exar_probe(struct platform_device *pdev) exar_gpio->gpio_chip.get = exar_get_value; exar_gpio->gpio_chip.set = exar_set_value; exar_gpio->gpio_chip.base = -1; - exar_gpio->gpio_chip.ngpio = 16; + exar_gpio->gpio_chip.ngpio = pdata->ngpios; exar_gpio->regs = p; exar_gpio->index = index; + exar_gpio->first_pin = pdata->first_pin; ret = devm_gpiochip_add_data(&pdev->dev, &exar_gpio->gpio_chip, exar_gpio); diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/8250_exar.c index fd721097f179..8a4864825915 100644 --- a/drivers/tty/serial/8250/8250_exar.c +++ b/drivers/tty/serial/8250/8250_exar.c @@ -20,6 +20,7 @@ #include #include #include +#include #include @@ -188,7 +189,8 @@ static void setup_gpio(struct pci_dev *pcidev, u8 __iomem *p) } static void * -__xr17v35x_register_gpio(struct pci_dev *pcidev) +__xr17v35x_register_gpio(struct pci_dev *pcidev, + const struct gpio_exar_pdata *pdata) { struct platform_device *pdev; @@ -199,7 +201,8 @@ __xr17v35x_register_gpio(struct pci_dev *pcidev) pdev->dev.parent = &pcidev->dev; ACPI_COMPANION_SET(&pdev->dev, ACPI_COMPANION(&pcidev->dev)); - if (platform_device_add(pdev) < 0) { + if (platform_device_add_data(pdev, pdata, sizeof(*pdata)) < 0 || + platform_device_add(pdev) < 0) { platform_device_put(pdev); return NULL; } @@ -207,12 +210,17 @@ __xr17v35x_register_gpio(struct pci_dev *pcidev) return pdev; } +static const struct gpio_exar_pdata exar_gpio_pdata = { + .first_pin = 0, + .ngpios = 16, +}; + static int xr17v35x_register_gpio(struct pci_dev *pcidev, struct uart_8250_port *port) { if (pcidev->vendor == PCI_VENDOR_ID_EXAR) port->port.private_data = - __xr17v35x_register_gpio(pcidev); + __xr17v35x_register_gpio(pcidev, &exar_gpio_pdata); return 0; } diff --git a/include/linux/platform_data/gpio-exar.h b/include/linux/platform_data/gpio-exar.h new file mode 100644 index 000000000000..9e98780e5938 --- /dev/null +++ b/include/linux/platform_data/gpio-exar.h @@ -0,0 +1,21 @@ +/* + * GPIO handling for Exar XR17V35X chip + * + * Copyright (c) 2017 Siemens AG + * + * Written by Jan Kiszka + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#ifndef __GPIO_EXAR_PDATA_H +#define __GPIO_EXAR_PDATA_H + +struct gpio_exar_pdata { + unsigned int first_pin; + unsigned int ngpios; +}; + +#endif /* __GPIO_EXAR_PDATA_H */ From 3d0de85c6511c43457abf65bd1246877e4a2b60b Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 21:06:22 +0200 Subject: [PATCH 0089/1149] serial: exar: Add support for IOT2040 device commit 413058df4331ce29f9934a5870d582c7e71fe15f upstream. This implements the setup of RS232 and the switch-over to RS485 or RS422 for the Siemens IOT2040. That uses an EXAR XR17V352 with external logic to switch between the different modes. The external logic is controlled via MPIO pins of the EXAR controller. Only pin 10 can be exported as GPIO on the IOT2040. It is connected to an LED. As the XR17V352 used on the IOT2040 is not equipped with an external EEPROM, it cannot present itself as IOT2040-variant via subvendor/ subdevice IDs. Thus, we have to check via DMI for the target platform. Co-developed with Sascha Weisenberger. Signed-off-by: Sascha Weisenberger Signed-off-by: Jan Kiszka Reviewed-by: Andy Shevchenko Acked-by: Greg Kroah-Hartman [Jan: replaced properties with pdata for 4.4] Signed-off-by: Ben Hutchings --- drivers/tty/serial/8250/8250_exar.c | 128 +++++++++++++++++++++++++++- 1 file changed, 127 insertions(+), 1 deletion(-) diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/8250_exar.c index 8a4864825915..be82707d6cb8 100644 --- a/drivers/tty/serial/8250/8250_exar.c +++ b/drivers/tty/serial/8250/8250_exar.c @@ -10,6 +10,7 @@ * the Free Software Foundation; either version 2 of the License. */ #include +#include #include #include #include @@ -49,6 +50,43 @@ #define UART_EXAR_MPIOSEL_15_8 0x99 /* MPIOSEL[15:8] */ #define UART_EXAR_MPIOOD_15_8 0x9a /* MPIOOD[15:8] */ +#define UART_EXAR_RS485_DLY(x) ((x) << 4) + +/* + * IOT2040 MPIO wiring semantics: + * + * MPIO Port Function + * ---- ---- -------- + * 0 2 Mode bit 0 + * 1 2 Mode bit 1 + * 2 2 Terminate bus + * 3 - + * 4 3 Mode bit 0 + * 5 3 Mode bit 1 + * 6 3 Terminate bus + * 7 - + * 8 2 Enable + * 9 3 Enable + * 10 - Red LED + * 11..15 - + */ + +/* IOT2040 MPIOs 0..7 */ +#define IOT2040_UART_MODE_RS232 0x01 +#define IOT2040_UART_MODE_RS485 0x02 +#define IOT2040_UART_MODE_RS422 0x03 +#define IOT2040_UART_TERMINATE_BUS 0x04 + +#define IOT2040_UART1_MASK 0x0f +#define IOT2040_UART2_SHIFT 4 + +#define IOT2040_UARTS_DEFAULT_MODE 0x11 /* both RS232 */ +#define IOT2040_UARTS_GPIO_LO_MODE 0x88 /* reserved pins as input */ + +/* IOT2040 MPIOs 8..15 */ +#define IOT2040_UARTS_ENABLE 0x03 +#define IOT2040_UARTS_GPIO_HI_MODE 0xF8 /* enable & LED as outputs */ + struct exar8250; struct exar8250_platform { @@ -229,18 +267,106 @@ static const struct exar8250_platform exar8250_default_platform = { .register_gpio = xr17v35x_register_gpio, }; +static int iot2040_rs485_config(struct uart_port *port, + struct serial_rs485 *rs485) +{ + bool is_rs485 = !!(rs485->flags & SER_RS485_ENABLED); + u8 __iomem *p = port->membase; + u8 mask = IOT2040_UART1_MASK; + u8 mode, value; + + if (is_rs485) { + if (rs485->flags & SER_RS485_RX_DURING_TX) + mode = IOT2040_UART_MODE_RS422; + else + mode = IOT2040_UART_MODE_RS485; + + if (rs485->flags & SER_RS485_TERMINATE_BUS) + mode |= IOT2040_UART_TERMINATE_BUS; + } else { + mode = IOT2040_UART_MODE_RS232; + } + + if (port->line == 3) { + mask <<= IOT2040_UART2_SHIFT; + mode <<= IOT2040_UART2_SHIFT; + } + + value = readb(p + UART_EXAR_MPIOLVL_7_0); + value &= ~mask; + value |= mode; + writeb(value, p + UART_EXAR_MPIOLVL_7_0); + + value = readb(p + UART_EXAR_FCTR); + if (is_rs485) + value |= UART_FCTR_EXAR_485; + else + value &= ~UART_FCTR_EXAR_485; + writeb(value, p + UART_EXAR_FCTR); + + if (is_rs485) + writeb(UART_EXAR_RS485_DLY(4), p + UART_MSR); + + port->rs485 = *rs485; + + return 0; +} + +static const struct gpio_exar_pdata iot2040_gpio_pdata = { + .first_pin = 10, + .ngpios = 1, +}; + +static int iot2040_register_gpio(struct pci_dev *pcidev, + struct uart_8250_port *port) +{ + u8 __iomem *p = port->port.membase; + + writeb(IOT2040_UARTS_DEFAULT_MODE, p + UART_EXAR_MPIOLVL_7_0); + writeb(IOT2040_UARTS_GPIO_LO_MODE, p + UART_EXAR_MPIOSEL_7_0); + writeb(IOT2040_UARTS_ENABLE, p + UART_EXAR_MPIOLVL_15_8); + writeb(IOT2040_UARTS_GPIO_HI_MODE, p + UART_EXAR_MPIOSEL_15_8); + + port->port.private_data = + __xr17v35x_register_gpio(pcidev, &iot2040_gpio_pdata); + + return 0; +} + +static const struct exar8250_platform iot2040_platform = { + .rs485_config = iot2040_rs485_config, + .register_gpio = iot2040_register_gpio, +}; + +static const struct dmi_system_id exar_platforms[] = { + { + .matches = { + DMI_EXACT_MATCH(DMI_BOARD_NAME, "SIMATIC IOT2000"), + DMI_EXACT_MATCH(DMI_BOARD_ASSET_TAG, + "6ES7647-0AA00-1YA2"), + }, + .driver_data = (void *)&iot2040_platform, + }, + {} +}; + static int pci_xr17v35x_setup(struct exar8250 *priv, struct pci_dev *pcidev, struct uart_8250_port *port, int idx) { const struct exar8250_board *board = priv->board; const struct exar8250_platform *platform; + const struct dmi_system_id *dmi_match; unsigned int offset = idx * 0x400; unsigned int baud = 7812500; u8 __iomem *p; int ret; - platform = &exar8250_default_platform; + dmi_match = dmi_first_match(exar_platforms); + if (dmi_match) + platform = dmi_match->driver_data; + else + platform = &exar8250_default_platform; port->port.uartclk = baud * 16; port->port.rs485_config = platform->rs485_config; From de260dc8514cd2c0f8a530b5cf62c3a5273a8972 Mon Sep 17 00:00:00 2001 From: Matt Fleming Date: Wed, 30 Aug 2017 21:13:43 +0200 Subject: [PATCH 0090/1149] efi: Move efi_status_to_err() to drivers/firmware/efi/ commit 806b0351c9ff9890c1ef0ba2c46237baef49ac79 upstream. Move efi_status_to_err() to the architecture independent code as it's generally useful in all bits of EFI code where there is a need to convert an efi_status_t to a kernel error value. Signed-off-by: Matt Fleming Acked-by: Ard Biesheuvel Cc: Borislav Petkov Cc: Kweh Hock Leong Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: joeyli Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/1461614832-17633-27-git-send-email-matt@codeblueprint.co.uk Signed-off-by: Ingo Molnar Signed-off-by: Ben Hutchings --- drivers/firmware/efi/efi.c | 33 +++++++++++++++++++++++++++++++++ drivers/firmware/efi/vars.c | 33 --------------------------------- include/linux/efi.h | 2 ++ 3 files changed, 35 insertions(+), 33 deletions(-) diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c index 3b52677f459a..33d60992a580 100644 --- a/drivers/firmware/efi/efi.c +++ b/drivers/firmware/efi/efi.c @@ -663,3 +663,36 @@ u64 __weak efi_mem_attributes(unsigned long phys_addr) } return 0; } + +int efi_status_to_err(efi_status_t status) +{ + int err; + + switch (status) { + case EFI_SUCCESS: + err = 0; + break; + case EFI_INVALID_PARAMETER: + err = -EINVAL; + break; + case EFI_OUT_OF_RESOURCES: + err = -ENOSPC; + break; + case EFI_DEVICE_ERROR: + err = -EIO; + break; + case EFI_WRITE_PROTECTED: + err = -EROFS; + break; + case EFI_SECURITY_VIOLATION: + err = -EACCES; + break; + case EFI_NOT_FOUND: + err = -ENOENT; + break; + default: + err = -EINVAL; + } + + return err; +} diff --git a/drivers/firmware/efi/vars.c b/drivers/firmware/efi/vars.c index 6f182fd91a6d..38e36526ba02 100644 --- a/drivers/firmware/efi/vars.c +++ b/drivers/firmware/efi/vars.c @@ -318,39 +318,6 @@ check_var_size(u32 attributes, unsigned long size) return fops->query_variable_store(attributes, size); } -static int efi_status_to_err(efi_status_t status) -{ - int err; - - switch (status) { - case EFI_SUCCESS: - err = 0; - break; - case EFI_INVALID_PARAMETER: - err = -EINVAL; - break; - case EFI_OUT_OF_RESOURCES: - err = -ENOSPC; - break; - case EFI_DEVICE_ERROR: - err = -EIO; - break; - case EFI_WRITE_PROTECTED: - err = -EROFS; - break; - case EFI_SECURITY_VIOLATION: - err = -EACCES; - break; - case EFI_NOT_FOUND: - err = -ENOENT; - break; - default: - err = -EINVAL; - } - - return err; -} - static bool variable_is_present(efi_char16_t *variable_name, efi_guid_t *vendor, struct list_head *head) { diff --git a/include/linux/efi.h b/include/linux/efi.h index 47be3ad7d3e5..774e9a0d49f1 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h @@ -999,6 +999,8 @@ static inline void efi_reboot(enum reboot_mode reboot_mode, const char *__unused) {} #endif +extern int efi_status_to_err(efi_status_t status); + /* * Variable Attributes */ From 03f417a59c6e2d6c62b7e2571049244bfc70e033 Mon Sep 17 00:00:00 2001 From: Matt Fleming Date: Wed, 30 Aug 2017 21:13:44 +0200 Subject: [PATCH 0091/1149] efi: Add 'capsule' update support commit f0133f3c5b8bb34ec4dec50c27e7a655aeee8935 upstream. The EFI capsule mechanism allows data blobs to be passed to the EFI firmware. A common use case is performing firmware updates. This patch just introduces the main infrastructure for interacting with the firmware, and a driver that allows users to upload capsules will come in a later patch. Once a capsule has been passed to the firmware, the next reboot must be performed using the ResetSystem() EFI runtime service, which may involve overriding the reboot type specified by reboot=. This ensures the reset value returned by QueryCapsuleCapabilities() is used to reset the system, which is required for the capsule to be processed. efi_capsule_pending() is provided for this purpose. At the moment we only allow a single capsule blob to be sent to the firmware despite the fact that UpdateCapsule() takes a 'CapsuleCount' parameter. This simplifies the API and shouldn't result in any downside since it is still possible to send multiple capsules by repeatedly calling UpdateCapsule(). Signed-off-by: Matt Fleming Cc: Ard Biesheuvel Cc: Borislav Petkov Cc: Bryan O'Donoghue Cc: Kweh Hock Leong Cc: Mark Salter Cc: Peter Jones Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: joeyli Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/1461614832-17633-28-git-send-email-matt@codeblueprint.co.uk Signed-off-by: Ingo Molnar Signed-off-by: Ben Hutchings --- drivers/firmware/efi/Makefile | 1 + drivers/firmware/efi/capsule.c | 300 +++++++++++++++++++++++++++++++++ drivers/firmware/efi/reboot.c | 12 +- include/linux/efi.h | 14 ++ 4 files changed, 326 insertions(+), 1 deletion(-) create mode 100644 drivers/firmware/efi/capsule.c diff --git a/drivers/firmware/efi/Makefile b/drivers/firmware/efi/Makefile index ec379a4164cc..54b19cdbfcf8 100644 --- a/drivers/firmware/efi/Makefile +++ b/drivers/firmware/efi/Makefile @@ -10,6 +10,7 @@ KASAN_SANITIZE_runtime-wrappers.o := n obj-$(CONFIG_EFI) += efi.o vars.o reboot.o +obj-$(CONFIG_EFI) += capsule.o obj-$(CONFIG_EFI_VARS) += efivars.o obj-$(CONFIG_EFI_ESRT) += esrt.o obj-$(CONFIG_EFI_VARS_PSTORE) += efi-pstore.o diff --git a/drivers/firmware/efi/capsule.c b/drivers/firmware/efi/capsule.c new file mode 100644 index 000000000000..0de55944ac0b --- /dev/null +++ b/drivers/firmware/efi/capsule.c @@ -0,0 +1,300 @@ +/* + * EFI capsule support. + * + * Copyright 2013 Intel Corporation; author Matt Fleming + * + * This file is part of the Linux kernel, and is made available under + * the terms of the GNU General Public License version 2. + */ + +#define pr_fmt(fmt) "efi: " fmt + +#include +#include +#include +#include +#include +#include + +typedef struct { + u64 length; + u64 data; +} efi_capsule_block_desc_t; + +static bool capsule_pending; +static int efi_reset_type = -1; + +/* + * capsule_mutex serialises access to both capsule_pending and + * efi_reset_type. + */ +static DEFINE_MUTEX(capsule_mutex); + +/** + * efi_capsule_pending - has a capsule been passed to the firmware? + * @reset_type: store the type of EFI reset if capsule is pending + * + * To ensure that the registered capsule is processed correctly by the + * firmware we need to perform a specific type of reset. If a capsule is + * pending return the reset type in @reset_type. + * + * This function will race with callers of efi_capsule_update(), for + * example, calling this function while somebody else is in + * efi_capsule_update() but hasn't reached efi_capsue_update_locked() + * will miss the updates to capsule_pending and efi_reset_type after + * efi_capsule_update_locked() completes. + * + * A non-racy use is from platform reboot code because we use + * system_state to ensure no capsules can be sent to the firmware once + * we're at SYSTEM_RESTART. See efi_capsule_update_locked(). + */ +bool efi_capsule_pending(int *reset_type) +{ + bool rv = false; + + mutex_lock(&capsule_mutex); + if (!capsule_pending) + goto out; + + if (reset_type) + *reset_type = efi_reset_type; + rv = true; +out: + mutex_unlock(&capsule_mutex); + return rv; +} + +/* + * Whitelist of EFI capsule flags that we support. + * + * We do not handle EFI_CAPSULE_INITIATE_RESET because that would + * require us to prepare the kernel for reboot. Refuse to load any + * capsules with that flag and any other flags that we do not know how + * to handle. + */ +#define EFI_CAPSULE_SUPPORTED_FLAG_MASK \ + (EFI_CAPSULE_PERSIST_ACROSS_RESET | EFI_CAPSULE_POPULATE_SYSTEM_TABLE) + +/** + * efi_capsule_supported - does the firmware support the capsule? + * @guid: vendor guid of capsule + * @flags: capsule flags + * @size: size of capsule data + * @reset: the reset type required for this capsule + * + * Check whether a capsule with @flags is supported by the firmware + * and that @size doesn't exceed the maximum size for a capsule. + * + * No attempt is made to check @reset against the reset type required + * by any pending capsules because of the races involved. + */ +int efi_capsule_supported(efi_guid_t guid, u32 flags, size_t size, int *reset) +{ + efi_capsule_header_t *capsule; + efi_status_t status; + u64 max_size; + int rv = 0; + + if (flags & ~EFI_CAPSULE_SUPPORTED_FLAG_MASK) + return -EINVAL; + + capsule = kmalloc(sizeof(*capsule), GFP_KERNEL); + if (!capsule) + return -ENOMEM; + + capsule->headersize = capsule->imagesize = sizeof(*capsule); + memcpy(&capsule->guid, &guid, sizeof(efi_guid_t)); + capsule->flags = flags; + + status = efi.query_capsule_caps(&capsule, 1, &max_size, reset); + if (status != EFI_SUCCESS) { + rv = efi_status_to_err(status); + goto out; + } + + if (size > max_size) + rv = -ENOSPC; +out: + kfree(capsule); + return rv; +} +EXPORT_SYMBOL_GPL(efi_capsule_supported); + +/* + * Every scatter gather list (block descriptor) page must end with a + * continuation pointer. The last continuation pointer of the last + * page must be zero to mark the end of the chain. + */ +#define SGLIST_PER_PAGE ((PAGE_SIZE / sizeof(efi_capsule_block_desc_t)) - 1) + +/* + * How many scatter gather list (block descriptor) pages do we need + * to map @count pages? + */ +static inline unsigned int sg_pages_num(unsigned int count) +{ + return DIV_ROUND_UP(count, SGLIST_PER_PAGE); +} + +/** + * efi_capsule_update_locked - pass a single capsule to the firmware + * @capsule: capsule to send to the firmware + * @sg_pages: array of scatter gather (block descriptor) pages + * @reset: the reset type required for @capsule + * + * Since this function must be called under capsule_mutex check + * whether efi_reset_type will conflict with @reset, and atomically + * set it and capsule_pending if a capsule was successfully sent to + * the firmware. + * + * We also check to see if the system is about to restart, and if so, + * abort. This avoids races between efi_capsule_update() and + * efi_capsule_pending(). + */ +static int +efi_capsule_update_locked(efi_capsule_header_t *capsule, + struct page **sg_pages, int reset) +{ + efi_physical_addr_t sglist_phys; + efi_status_t status; + + lockdep_assert_held(&capsule_mutex); + + /* + * If someone has already registered a capsule that requires a + * different reset type, we're out of luck and must abort. + */ + if (efi_reset_type >= 0 && efi_reset_type != reset) { + pr_err("Conflicting capsule reset type %d (%d).\n", + reset, efi_reset_type); + return -EINVAL; + } + + /* + * If the system is getting ready to restart it may have + * called efi_capsule_pending() to make decisions (such as + * whether to force an EFI reboot), and we're racing against + * that call. Abort in that case. + */ + if (unlikely(system_state == SYSTEM_RESTART)) { + pr_warn("Capsule update raced with reboot, aborting.\n"); + return -EINVAL; + } + + sglist_phys = page_to_phys(sg_pages[0]); + + status = efi.update_capsule(&capsule, 1, sglist_phys); + if (status == EFI_SUCCESS) { + capsule_pending = true; + efi_reset_type = reset; + } + + return efi_status_to_err(status); +} + +/** + * efi_capsule_update - send a capsule to the firmware + * @capsule: capsule to send to firmware + * @pages: an array of capsule data pages + * + * Build a scatter gather list with EFI capsule block descriptors to + * map the capsule described by @capsule with its data in @pages and + * send it to the firmware via the UpdateCapsule() runtime service. + * + * @capsule must be a virtual mapping of the first page in @pages + * (@pages[0]) in the kernel address space. That is, a + * capsule_header_t that describes the entire contents of the capsule + * must be at the start of the first data page. + * + * Even though this function will validate that the firmware supports + * the capsule guid, users will likely want to check that + * efi_capsule_supported() returns true before calling this function + * because it makes it easier to print helpful error messages. + * + * If the capsule is successfully submitted to the firmware, any + * subsequent calls to efi_capsule_pending() will return true. @pages + * must not be released or modified if this function returns + * successfully. + * + * Callers must be prepared for this function to fail, which can + * happen if we raced with system reboot or if there is already a + * pending capsule that has a reset type that conflicts with the one + * required by @capsule. Do NOT use efi_capsule_pending() to detect + * this conflict since that would be racy. Instead, submit the capsule + * to efi_capsule_update() and check the return value. + * + * Return 0 on success, a converted EFI status code on failure. + */ +int efi_capsule_update(efi_capsule_header_t *capsule, struct page **pages) +{ + u32 imagesize = capsule->imagesize; + efi_guid_t guid = capsule->guid; + unsigned int count, sg_count; + u32 flags = capsule->flags; + struct page **sg_pages; + int rv, reset_type; + int i, j; + + rv = efi_capsule_supported(guid, flags, imagesize, &reset_type); + if (rv) + return rv; + + count = DIV_ROUND_UP(imagesize, PAGE_SIZE); + sg_count = sg_pages_num(count); + + sg_pages = kzalloc(sg_count * sizeof(*sg_pages), GFP_KERNEL); + if (!sg_pages) + return -ENOMEM; + + for (i = 0; i < sg_count; i++) { + sg_pages[i] = alloc_page(GFP_KERNEL); + if (!sg_pages[i]) { + rv = -ENOMEM; + goto out; + } + } + + for (i = 0; i < sg_count; i++) { + efi_capsule_block_desc_t *sglist; + + sglist = kmap(sg_pages[i]); + if (!sglist) { + rv = -ENOMEM; + goto out; + } + + for (j = 0; j < SGLIST_PER_PAGE && count > 0; j++) { + u64 sz = min_t(u64, imagesize, PAGE_SIZE); + + sglist[j].length = sz; + sglist[j].data = page_to_phys(*pages++); + + imagesize -= sz; + count--; + } + + /* Continuation pointer */ + sglist[j].length = 0; + + if (i + 1 == sg_count) + sglist[j].data = 0; + else + sglist[j].data = page_to_phys(sg_pages[i + 1]); + + kunmap(sg_pages[i]); + } + + mutex_lock(&capsule_mutex); + rv = efi_capsule_update_locked(capsule, sg_pages, reset_type); + mutex_unlock(&capsule_mutex); + +out: + for (i = 0; rv && i < sg_count; i++) { + if (sg_pages[i]) + __free_page(sg_pages[i]); + } + + kfree(sg_pages); + return rv; +} +EXPORT_SYMBOL_GPL(efi_capsule_update); diff --git a/drivers/firmware/efi/reboot.c b/drivers/firmware/efi/reboot.c index 9c59d1c795d1..62ead9b9d871 100644 --- a/drivers/firmware/efi/reboot.c +++ b/drivers/firmware/efi/reboot.c @@ -9,7 +9,8 @@ int efi_reboot_quirk_mode = -1; void efi_reboot(enum reboot_mode reboot_mode, const char *__unused) { - int efi_mode; + const char *str[] = { "cold", "warm", "shutdown", "platform" }; + int efi_mode, cap_reset_mode; if (!efi_enabled(EFI_RUNTIME_SERVICES)) return; @@ -30,6 +31,15 @@ void efi_reboot(enum reboot_mode reboot_mode, const char *__unused) if (efi_reboot_quirk_mode != -1) efi_mode = efi_reboot_quirk_mode; + if (efi_capsule_pending(&cap_reset_mode)) { + if (efi_mode != cap_reset_mode) + printk(KERN_CRIT "efi: %s reset requested but pending " + "capsule update requires %s reset... Performing " + "%s reset.\n", str[efi_mode], str[cap_reset_mode], + str[cap_reset_mode]); + efi_mode = cap_reset_mode; + } + efi.reset_system(efi_mode, EFI_SUCCESS, 0, NULL); } diff --git a/include/linux/efi.h b/include/linux/efi.h index 774e9a0d49f1..4899c679622d 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h @@ -122,6 +122,13 @@ typedef struct { u32 imagesize; } efi_capsule_header_t; +/* + * EFI capsule flags + */ +#define EFI_CAPSULE_PERSIST_ACROSS_RESET 0x00010000 +#define EFI_CAPSULE_POPULATE_SYSTEM_TABLE 0x00020000 +#define EFI_CAPSULE_INITIATE_RESET 0x00040000 + /* * Allocation types for calls to boottime->allocate_pages. */ @@ -1215,6 +1222,13 @@ int efivars_sysfs_init(void); #define EFIVARS_DATA_SIZE_MAX 1024 #endif /* CONFIG_EFI_VARS */ +extern bool efi_capsule_pending(int *reset_type); + +extern int efi_capsule_supported(efi_guid_t guid, u32 flags, + size_t size, int *reset); + +extern int efi_capsule_update(efi_capsule_header_t *capsule, + struct page **pages); #ifdef CONFIG_EFI_RUNTIME_MAP int efi_runtime_map_init(struct kobject *); From 44c4f1f53c2bbd1eaaebd80a7a01ccc689f1b7fc Mon Sep 17 00:00:00 2001 From: Matt Fleming Date: Wed, 30 Aug 2017 21:13:45 +0200 Subject: [PATCH 0092/1149] x86/efi: Force EFI reboot to process pending capsules commit 87615a34d561ef59bd0cffc73256a21220dfdffd upstream. If an EFI capsule has been sent to the firmware we must match the type of EFI reset against that required by the capsule to ensure it is processed correctly. Force an EFI reboot if a capsule is pending for the next reset. Signed-off-by: Matt Fleming Cc: Ard Biesheuvel Cc: Borislav Petkov Cc: Kweh Hock Leong Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: joeyli Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/1461614832-17633-29-git-send-email-matt@codeblueprint.co.uk Signed-off-by: Ingo Molnar Signed-off-by: Ben Hutchings --- arch/x86/kernel/reboot.c | 9 +++++++++ include/linux/efi.h | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c index f660d63f40fe..01d9e1edda07 100644 --- a/arch/x86/kernel/reboot.c +++ b/arch/x86/kernel/reboot.c @@ -535,6 +535,15 @@ static void native_machine_emergency_restart(void) mode = reboot_mode == REBOOT_WARM ? 0x1234 : 0; *((unsigned short *)__va(0x472)) = mode; + /* + * If an EFI capsule has been registered with the firmware then + * override the reboot= parameter. + */ + if (efi_capsule_pending(NULL)) { + pr_info("EFI capsule is pending, forcing EFI reboot.\n"); + reboot_type = BOOT_EFI; + } + for (;;) { /* Could also try the reset bit in the Hammer NB */ switch (reboot_type) { diff --git a/include/linux/efi.h b/include/linux/efi.h index 4899c679622d..5a0b8f7a54c8 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h @@ -1004,6 +1004,12 @@ static inline bool efi_enabled(int feature) } static inline void efi_reboot(enum reboot_mode reboot_mode, const char *__unused) {} + +static inline bool +efi_capsule_pending(int *reset_type) +{ + return false; +} #endif extern int efi_status_to_err(efi_status_t status); From 2fe033c12fb5fba6e897bef3762981f6735cfba3 Mon Sep 17 00:00:00 2001 From: "Kweh, Hock Leong" Date: Wed, 30 Aug 2017 21:13:46 +0200 Subject: [PATCH 0093/1149] efi: Add misc char driver interface to update EFI firmware commit 65117f1aa1b2d145fd5ca376bde642794d0aae1b upstream. This patch introduces a kernel module to expose a capsule loader interface (misc char device file note) for users to upload capsule binaries. Example: cat firmware.bin > /dev/efi_capsule_loader Any upload error will be returned while doing "cat" through file operation write() function call. Signed-off-by: Kweh, Hock Leong [ Update comments and Kconfig text ] Signed-off-by: Matt Fleming Reviewed-by: Bryan O'Donoghue Acked-by: Greg Kroah-Hartman Cc: Andy Lutomirski Cc: Ard Biesheuvel Cc: Borislav Petkov Cc: Peter Jones Cc: Peter Zijlstra Cc: Sam Protsenko Cc: Thomas Gleixner Cc: joeyli Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/1461614832-17633-30-git-send-email-matt@codeblueprint.co.uk Signed-off-by: Ingo Molnar Signed-off-by: Ben Hutchings --- drivers/firmware/efi/Kconfig | 10 + drivers/firmware/efi/Makefile | 1 + drivers/firmware/efi/capsule-loader.c | 343 ++++++++++++++++++++++++++ 3 files changed, 354 insertions(+) create mode 100644 drivers/firmware/efi/capsule-loader.c diff --git a/drivers/firmware/efi/Kconfig b/drivers/firmware/efi/Kconfig index e1670d533f97..de221bbde9c9 100644 --- a/drivers/firmware/efi/Kconfig +++ b/drivers/firmware/efi/Kconfig @@ -87,6 +87,16 @@ config EFI_RUNTIME_WRAPPERS config EFI_ARMSTUB bool +config EFI_CAPSULE_LOADER + tristate "EFI capsule loader" + depends on EFI + help + This option exposes a loader interface "/dev/efi_capsule_loader" for + users to load EFI capsules. This driver requires working runtime + capsule support in the firmware, which many OEMs do not provide. + + Most users should say N. + endmenu config UEFI_CPER diff --git a/drivers/firmware/efi/Makefile b/drivers/firmware/efi/Makefile index 54b19cdbfcf8..2c8562de3a5f 100644 --- a/drivers/firmware/efi/Makefile +++ b/drivers/firmware/efi/Makefile @@ -19,3 +19,4 @@ obj-$(CONFIG_EFI_RUNTIME_MAP) += runtime-map.o obj-$(CONFIG_EFI_RUNTIME_WRAPPERS) += runtime-wrappers.o obj-$(CONFIG_EFI_STUB) += libstub/ obj-$(CONFIG_EFI_FAKE_MEMMAP) += fake_mem.o +obj-$(CONFIG_EFI_CAPSULE_LOADER) += capsule-loader.o diff --git a/drivers/firmware/efi/capsule-loader.c b/drivers/firmware/efi/capsule-loader.c new file mode 100644 index 000000000000..c99c24bc79b0 --- /dev/null +++ b/drivers/firmware/efi/capsule-loader.c @@ -0,0 +1,343 @@ +/* + * EFI capsule loader driver. + * + * Copyright 2015 Intel Corporation + * + * This file is part of the Linux kernel, and is made available under + * the terms of the GNU General Public License version 2. + */ + +#define pr_fmt(fmt) "efi: " fmt + +#include +#include +#include +#include +#include +#include +#include + +#define NO_FURTHER_WRITE_ACTION -1 + +struct capsule_info { + bool header_obtained; + int reset_type; + long index; + size_t count; + size_t total_size; + struct page **pages; + size_t page_bytes_remain; +}; + +/** + * efi_free_all_buff_pages - free all previous allocated buffer pages + * @cap_info: pointer to current instance of capsule_info structure + * + * In addition to freeing buffer pages, it flags NO_FURTHER_WRITE_ACTION + * to cease processing data in subsequent write(2) calls until close(2) + * is called. + **/ +static void efi_free_all_buff_pages(struct capsule_info *cap_info) +{ + while (cap_info->index > 0) + __free_page(cap_info->pages[--cap_info->index]); + + cap_info->index = NO_FURTHER_WRITE_ACTION; +} + +/** + * efi_capsule_setup_info - obtain the efi capsule header in the binary and + * setup capsule_info structure + * @cap_info: pointer to current instance of capsule_info structure + * @kbuff: a mapped first page buffer pointer + * @hdr_bytes: the total received number of bytes for efi header + **/ +static ssize_t efi_capsule_setup_info(struct capsule_info *cap_info, + void *kbuff, size_t hdr_bytes) +{ + efi_capsule_header_t *cap_hdr; + size_t pages_needed; + int ret; + void *temp_page; + + /* Only process data block that is larger than efi header size */ + if (hdr_bytes < sizeof(efi_capsule_header_t)) + return 0; + + /* Reset back to the correct offset of header */ + cap_hdr = kbuff - cap_info->count; + pages_needed = ALIGN(cap_hdr->imagesize, PAGE_SIZE) >> PAGE_SHIFT; + + if (pages_needed == 0) { + pr_err("%s: pages count invalid\n", __func__); + return -EINVAL; + } + + /* Check if the capsule binary supported */ + ret = efi_capsule_supported(cap_hdr->guid, cap_hdr->flags, + cap_hdr->imagesize, + &cap_info->reset_type); + if (ret) { + pr_err("%s: efi_capsule_supported() failed\n", + __func__); + return ret; + } + + cap_info->total_size = cap_hdr->imagesize; + temp_page = krealloc(cap_info->pages, + pages_needed * sizeof(void *), + GFP_KERNEL | __GFP_ZERO); + if (!temp_page) { + pr_debug("%s: krealloc() failed\n", __func__); + return -ENOMEM; + } + + cap_info->pages = temp_page; + cap_info->header_obtained = true; + + return 0; +} + +/** + * efi_capsule_submit_update - invoke the efi_capsule_update API once binary + * upload done + * @cap_info: pointer to current instance of capsule_info structure + **/ +static ssize_t efi_capsule_submit_update(struct capsule_info *cap_info) +{ + int ret; + void *cap_hdr_temp; + + cap_hdr_temp = kmap(cap_info->pages[0]); + if (!cap_hdr_temp) { + pr_debug("%s: kmap() failed\n", __func__); + return -EFAULT; + } + + ret = efi_capsule_update(cap_hdr_temp, cap_info->pages); + kunmap(cap_info->pages[0]); + if (ret) { + pr_err("%s: efi_capsule_update() failed\n", __func__); + return ret; + } + + /* Indicate capsule binary uploading is done */ + cap_info->index = NO_FURTHER_WRITE_ACTION; + pr_info("%s: Successfully upload capsule file with reboot type '%s'\n", + __func__, !cap_info->reset_type ? "RESET_COLD" : + cap_info->reset_type == 1 ? "RESET_WARM" : + "RESET_SHUTDOWN"); + return 0; +} + +/** + * efi_capsule_write - store the capsule binary and pass it to + * efi_capsule_update() API + * @file: file pointer + * @buff: buffer pointer + * @count: number of bytes in @buff + * @offp: not used + * + * Expectation: + * - A user space tool should start at the beginning of capsule binary and + * pass data in sequentially. + * - Users should close and re-open this file note in order to upload more + * capsules. + * - After an error returned, user should close the file and restart the + * operation for the next try otherwise -EIO will be returned until the + * file is closed. + * - An EFI capsule header must be located at the beginning of capsule + * binary file and passed in as first block data of write operation. + **/ +static ssize_t efi_capsule_write(struct file *file, const char __user *buff, + size_t count, loff_t *offp) +{ + int ret = 0; + struct capsule_info *cap_info = file->private_data; + struct page *page; + void *kbuff = NULL; + size_t write_byte; + + if (count == 0) + return 0; + + /* Return error while NO_FURTHER_WRITE_ACTION is flagged */ + if (cap_info->index < 0) + return -EIO; + + /* Only alloc a new page when previous page is full */ + if (!cap_info->page_bytes_remain) { + page = alloc_page(GFP_KERNEL); + if (!page) { + pr_debug("%s: alloc_page() failed\n", __func__); + ret = -ENOMEM; + goto failed; + } + + cap_info->pages[cap_info->index++] = page; + cap_info->page_bytes_remain = PAGE_SIZE; + } + + page = cap_info->pages[cap_info->index - 1]; + + kbuff = kmap(page); + if (!kbuff) { + pr_debug("%s: kmap() failed\n", __func__); + ret = -EFAULT; + goto failed; + } + kbuff += PAGE_SIZE - cap_info->page_bytes_remain; + + /* Copy capsule binary data from user space to kernel space buffer */ + write_byte = min_t(size_t, count, cap_info->page_bytes_remain); + if (copy_from_user(kbuff, buff, write_byte)) { + pr_debug("%s: copy_from_user() failed\n", __func__); + ret = -EFAULT; + goto fail_unmap; + } + cap_info->page_bytes_remain -= write_byte; + + /* Setup capsule binary info structure */ + if (!cap_info->header_obtained) { + ret = efi_capsule_setup_info(cap_info, kbuff, + cap_info->count + write_byte); + if (ret) + goto fail_unmap; + } + + cap_info->count += write_byte; + kunmap(page); + + /* Submit the full binary to efi_capsule_update() API */ + if (cap_info->header_obtained && + cap_info->count >= cap_info->total_size) { + if (cap_info->count > cap_info->total_size) { + pr_err("%s: upload size exceeded header defined size\n", + __func__); + ret = -EINVAL; + goto failed; + } + + ret = efi_capsule_submit_update(cap_info); + if (ret) + goto failed; + } + + return write_byte; + +fail_unmap: + kunmap(page); +failed: + efi_free_all_buff_pages(cap_info); + return ret; +} + +/** + * efi_capsule_flush - called by file close or file flush + * @file: file pointer + * @id: not used + * + * If a capsule is being partially uploaded then calling this function + * will be treated as upload termination and will free those completed + * buffer pages and -ECANCELED will be returned. + **/ +static int efi_capsule_flush(struct file *file, fl_owner_t id) +{ + int ret = 0; + struct capsule_info *cap_info = file->private_data; + + if (cap_info->index > 0) { + pr_err("%s: capsule upload not complete\n", __func__); + efi_free_all_buff_pages(cap_info); + ret = -ECANCELED; + } + + return ret; +} + +/** + * efi_capsule_release - called by file close + * @inode: not used + * @file: file pointer + * + * We will not free successfully submitted pages since efi update + * requires data to be maintained across system reboot. + **/ +static int efi_capsule_release(struct inode *inode, struct file *file) +{ + struct capsule_info *cap_info = file->private_data; + + kfree(cap_info->pages); + kfree(file->private_data); + file->private_data = NULL; + return 0; +} + +/** + * efi_capsule_open - called by file open + * @inode: not used + * @file: file pointer + * + * Will allocate each capsule_info memory for each file open call. + * This provided the capability to support multiple file open feature + * where user is not needed to wait for others to finish in order to + * upload their capsule binary. + **/ +static int efi_capsule_open(struct inode *inode, struct file *file) +{ + struct capsule_info *cap_info; + + cap_info = kzalloc(sizeof(*cap_info), GFP_KERNEL); + if (!cap_info) + return -ENOMEM; + + cap_info->pages = kzalloc(sizeof(void *), GFP_KERNEL); + if (!cap_info->pages) { + kfree(cap_info); + return -ENOMEM; + } + + file->private_data = cap_info; + + return 0; +} + +static const struct file_operations efi_capsule_fops = { + .owner = THIS_MODULE, + .open = efi_capsule_open, + .write = efi_capsule_write, + .flush = efi_capsule_flush, + .release = efi_capsule_release, + .llseek = no_llseek, +}; + +static struct miscdevice efi_capsule_misc = { + .minor = MISC_DYNAMIC_MINOR, + .name = "efi_capsule_loader", + .fops = &efi_capsule_fops, +}; + +static int __init efi_capsule_loader_init(void) +{ + int ret; + + if (!efi_enabled(EFI_RUNTIME_SERVICES)) + return -ENODEV; + + ret = misc_register(&efi_capsule_misc); + if (ret) + pr_err("%s: Failed to register misc char file note\n", + __func__); + + return ret; +} +module_init(efi_capsule_loader_init); + +static void __exit efi_capsule_loader_exit(void) +{ + misc_deregister(&efi_capsule_misc); +} +module_exit(efi_capsule_loader_exit); + +MODULE_DESCRIPTION("EFI capsule firmware binary loader"); +MODULE_LICENSE("GPL v2"); From 9b2096e619c29e9b2bef97a9da37b6d553e98bdd Mon Sep 17 00:00:00 2001 From: Matt Fleming Date: Wed, 30 Aug 2017 21:13:47 +0200 Subject: [PATCH 0094/1149] efi/capsule: Move 'capsule' to the stack in efi_capsule_supported() commit fb7a84cac03541f4da18dfa25b3f4767d4efc6fc upstream. Dan Carpenter reports that passing the address of the pointer to the kmalloc()'d memory for 'capsule' is dangerous: "drivers/firmware/efi/capsule.c:109 efi_capsule_supported() warn: did you mean to pass the address of 'capsule' 108 109 status = efi.query_capsule_caps(&capsule, 1, &max_size, reset); ^^^^^^^^ If we modify capsule inside this function call then at the end of the function we aren't freeing the original pointer that we allocated." Ard Biesheuvel noted that we don't even need to call kmalloc() since the object we allocate isn't very big and doesn't need to persist after the function returns. Place 'capsule' on the stack instead. Suggested-by: Ard Biesheuvel Reported-by: Dan Carpenter Signed-off-by: Matt Fleming Acked-by: Ard Biesheuvel Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Bryan O'Donoghue Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Kweh Hock Leong Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: joeyli Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/1462570771-13324-4-git-send-email-matt@codeblueprint.co.uk Signed-off-by: Ingo Molnar Signed-off-by: Ben Hutchings --- drivers/firmware/efi/capsule.c | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/drivers/firmware/efi/capsule.c b/drivers/firmware/efi/capsule.c index 0de55944ac0b..61e51249ef40 100644 --- a/drivers/firmware/efi/capsule.c +++ b/drivers/firmware/efi/capsule.c @@ -90,33 +90,26 @@ bool efi_capsule_pending(int *reset_type) */ int efi_capsule_supported(efi_guid_t guid, u32 flags, size_t size, int *reset) { - efi_capsule_header_t *capsule; + efi_capsule_header_t capsule; + efi_capsule_header_t *cap_list[] = { &capsule }; efi_status_t status; u64 max_size; - int rv = 0; if (flags & ~EFI_CAPSULE_SUPPORTED_FLAG_MASK) return -EINVAL; - capsule = kmalloc(sizeof(*capsule), GFP_KERNEL); - if (!capsule) - return -ENOMEM; - - capsule->headersize = capsule->imagesize = sizeof(*capsule); - memcpy(&capsule->guid, &guid, sizeof(efi_guid_t)); - capsule->flags = flags; + capsule.headersize = capsule.imagesize = sizeof(capsule); + memcpy(&capsule.guid, &guid, sizeof(efi_guid_t)); + capsule.flags = flags; - status = efi.query_capsule_caps(&capsule, 1, &max_size, reset); - if (status != EFI_SUCCESS) { - rv = efi_status_to_err(status); - goto out; - } + status = efi.query_capsule_caps(cap_list, 1, &max_size, reset); + if (status != EFI_SUCCESS) + return efi_status_to_err(status); if (size > max_size) - rv = -ENOSPC; -out: - kfree(capsule); - return rv; + return -ENOSPC; + + return 0; } EXPORT_SYMBOL_GPL(efi_capsule_supported); From 752339dc74d03062165bbc05cd36dd9cf46871ea Mon Sep 17 00:00:00 2001 From: Austin Christ Date: Wed, 30 Aug 2017 21:13:48 +0200 Subject: [PATCH 0095/1149] efi/capsule: Allocate whole capsule into virtual memory commit 6862e6ad95e984991a6ceec592cf67831658f928 upstream. According to UEFI 2.6 section 7.5.3, the capsule should be in contiguous virtual memory and firmware may consume the capsule immediately. To correctly implement this functionality, the kernel driver needs to vmap the entire capsule at the time it is made available to firmware. The virtual allocation of the capsule update has been changed from kmap, which was only allocating the first page of the update, to vmap, and allocates the entire data payload. Signed-off-by: Austin Christ Signed-off-by: Matt Fleming Reviewed-by: Matt Fleming Reviewed-by: Lee, Chun-Yi Cc: # v4.7 Cc: Andy Lutomirski Cc: Ard Biesheuvel Cc: Borislav Petkov Cc: Brian Gerst Cc: Bryan O'Donoghue Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Josh Poimboeuf Cc: Kweh Hock Leong Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/1470912120-22831-3-git-send-email-matt@codeblueprint.co.uk Signed-off-by: Ingo Molnar Signed-off-by: Ben Hutchings --- drivers/firmware/efi/capsule-loader.c | 8 +++++--- drivers/firmware/efi/capsule.c | 6 +++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/firmware/efi/capsule-loader.c b/drivers/firmware/efi/capsule-loader.c index c99c24bc79b0..9ae6c116c474 100644 --- a/drivers/firmware/efi/capsule-loader.c +++ b/drivers/firmware/efi/capsule-loader.c @@ -16,6 +16,7 @@ #include #include #include +#include #define NO_FURTHER_WRITE_ACTION -1 @@ -108,14 +109,15 @@ static ssize_t efi_capsule_submit_update(struct capsule_info *cap_info) int ret; void *cap_hdr_temp; - cap_hdr_temp = kmap(cap_info->pages[0]); + cap_hdr_temp = vmap(cap_info->pages, cap_info->index, + VM_MAP, PAGE_KERNEL); if (!cap_hdr_temp) { - pr_debug("%s: kmap() failed\n", __func__); + pr_debug("%s: vmap() failed\n", __func__); return -EFAULT; } ret = efi_capsule_update(cap_hdr_temp, cap_info->pages); - kunmap(cap_info->pages[0]); + vunmap(cap_hdr_temp); if (ret) { pr_err("%s: efi_capsule_update() failed\n", __func__); return ret; diff --git a/drivers/firmware/efi/capsule.c b/drivers/firmware/efi/capsule.c index 61e51249ef40..1106773468b2 100644 --- a/drivers/firmware/efi/capsule.c +++ b/drivers/firmware/efi/capsule.c @@ -194,9 +194,9 @@ efi_capsule_update_locked(efi_capsule_header_t *capsule, * map the capsule described by @capsule with its data in @pages and * send it to the firmware via the UpdateCapsule() runtime service. * - * @capsule must be a virtual mapping of the first page in @pages - * (@pages[0]) in the kernel address space. That is, a - * capsule_header_t that describes the entire contents of the capsule + * @capsule must be a virtual mapping of the complete capsule update in the + * kernel address space, as the capsule can be consumed immediately. + * A capsule_header_t that describes the entire contents of the capsule * must be at the start of the first data page. * * Even though this function will validate that the firmware supports From 9941c91ebd05999d58da97edb3c41a39ff1cd846 Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 21:13:49 +0200 Subject: [PATCH 0096/1149] efi/capsule: Fix return code on failing kmap/vmap commit fb153dc53f0eb8e8ad6a69f773e44c2d12daa5d0 upstream. If kmap or vmap fail, it means we ran out of memory. There are no user-provided addressed involved that would justify EFAULT. Signed-off-by: Jan Kiszka Signed-off-by: Ard Biesheuvel Reviewed-by: Matt Fleming Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/20170602135207.21708-3-ard.biesheuvel@linaro.org Signed-off-by: Ingo Molnar Signed-off-by: Ben Hutchings --- drivers/firmware/efi/capsule-loader.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/firmware/efi/capsule-loader.c b/drivers/firmware/efi/capsule-loader.c index 9ae6c116c474..91e91f7a8807 100644 --- a/drivers/firmware/efi/capsule-loader.c +++ b/drivers/firmware/efi/capsule-loader.c @@ -113,7 +113,7 @@ static ssize_t efi_capsule_submit_update(struct capsule_info *cap_info) VM_MAP, PAGE_KERNEL); if (!cap_hdr_temp) { pr_debug("%s: vmap() failed\n", __func__); - return -EFAULT; + return -ENOMEM; } ret = efi_capsule_update(cap_hdr_temp, cap_info->pages); @@ -185,7 +185,7 @@ static ssize_t efi_capsule_write(struct file *file, const char __user *buff, kbuff = kmap(page); if (!kbuff) { pr_debug("%s: kmap() failed\n", __func__); - ret = -EFAULT; + ret = -ENOMEM; goto failed; } kbuff += PAGE_SIZE - cap_info->page_bytes_remain; From 89ebb47e55a1fafa59604c2dc6ba2423b5220f5e Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 21:13:50 +0200 Subject: [PATCH 0097/1149] efi/capsule: Remove pr_debug() on ENOMEM or EFAULT commit 7367633f0bfd783ae5838141f3af88bba6c45eb9 upstream. Both cases are not worth a debug log message - the error code is telling enough. Signed-off-by: Jan Kiszka Signed-off-by: Ard Biesheuvel Reviewed-by: Matt Fleming Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/20170602135207.21708-4-ard.biesheuvel@linaro.org Signed-off-by: Ingo Molnar Signed-off-by: Ben Hutchings --- drivers/firmware/efi/capsule-loader.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/drivers/firmware/efi/capsule-loader.c b/drivers/firmware/efi/capsule-loader.c index 91e91f7a8807..7b57dda2417d 100644 --- a/drivers/firmware/efi/capsule-loader.c +++ b/drivers/firmware/efi/capsule-loader.c @@ -88,10 +88,8 @@ static ssize_t efi_capsule_setup_info(struct capsule_info *cap_info, temp_page = krealloc(cap_info->pages, pages_needed * sizeof(void *), GFP_KERNEL | __GFP_ZERO); - if (!temp_page) { - pr_debug("%s: krealloc() failed\n", __func__); + if (!temp_page) return -ENOMEM; - } cap_info->pages = temp_page; cap_info->header_obtained = true; @@ -111,10 +109,8 @@ static ssize_t efi_capsule_submit_update(struct capsule_info *cap_info) cap_hdr_temp = vmap(cap_info->pages, cap_info->index, VM_MAP, PAGE_KERNEL); - if (!cap_hdr_temp) { - pr_debug("%s: vmap() failed\n", __func__); + if (!cap_hdr_temp) return -ENOMEM; - } ret = efi_capsule_update(cap_hdr_temp, cap_info->pages); vunmap(cap_hdr_temp); @@ -171,7 +167,6 @@ static ssize_t efi_capsule_write(struct file *file, const char __user *buff, if (!cap_info->page_bytes_remain) { page = alloc_page(GFP_KERNEL); if (!page) { - pr_debug("%s: alloc_page() failed\n", __func__); ret = -ENOMEM; goto failed; } @@ -184,7 +179,6 @@ static ssize_t efi_capsule_write(struct file *file, const char __user *buff, kbuff = kmap(page); if (!kbuff) { - pr_debug("%s: kmap() failed\n", __func__); ret = -ENOMEM; goto failed; } @@ -193,7 +187,6 @@ static ssize_t efi_capsule_write(struct file *file, const char __user *buff, /* Copy capsule binary data from user space to kernel space buffer */ write_byte = min_t(size_t, count, cap_info->page_bytes_remain); if (copy_from_user(kbuff, buff, write_byte)) { - pr_debug("%s: copy_from_user() failed\n", __func__); ret = -EFAULT; goto fail_unmap; } From 67fee9305af59fafd504cb4798f447bf6987569f Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 21:13:51 +0200 Subject: [PATCH 0098/1149] efi/capsule: Clean up pr_err/_info() messages commit 5dce14b9d1a29cf76331f0fe8eb7efd63e0fcb9a upstream. Avoid __func__, improve the information provided by some of the messages. Signed-off-by: Jan Kiszka Signed-off-by: Ard Biesheuvel Reviewed-by: Matt Fleming Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/20170602135207.21708-5-ard.biesheuvel@linaro.org Signed-off-by: Ingo Molnar Signed-off-by: Ben Hutchings --- drivers/firmware/efi/capsule-loader.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/drivers/firmware/efi/capsule-loader.c b/drivers/firmware/efi/capsule-loader.c index 7b57dda2417d..3fb91e1597a9 100644 --- a/drivers/firmware/efi/capsule-loader.c +++ b/drivers/firmware/efi/capsule-loader.c @@ -70,7 +70,7 @@ static ssize_t efi_capsule_setup_info(struct capsule_info *cap_info, pages_needed = ALIGN(cap_hdr->imagesize, PAGE_SIZE) >> PAGE_SHIFT; if (pages_needed == 0) { - pr_err("%s: pages count invalid\n", __func__); + pr_err("invalid capsule size"); return -EINVAL; } @@ -79,8 +79,7 @@ static ssize_t efi_capsule_setup_info(struct capsule_info *cap_info, cap_hdr->imagesize, &cap_info->reset_type); if (ret) { - pr_err("%s: efi_capsule_supported() failed\n", - __func__); + pr_err("capsule not supported\n"); return ret; } @@ -115,14 +114,14 @@ static ssize_t efi_capsule_submit_update(struct capsule_info *cap_info) ret = efi_capsule_update(cap_hdr_temp, cap_info->pages); vunmap(cap_hdr_temp); if (ret) { - pr_err("%s: efi_capsule_update() failed\n", __func__); + pr_err("capsule update failed\n"); return ret; } /* Indicate capsule binary uploading is done */ cap_info->index = NO_FURTHER_WRITE_ACTION; - pr_info("%s: Successfully upload capsule file with reboot type '%s'\n", - __func__, !cap_info->reset_type ? "RESET_COLD" : + pr_info("Successfully upload capsule file with reboot type '%s'\n", + !cap_info->reset_type ? "RESET_COLD" : cap_info->reset_type == 1 ? "RESET_WARM" : "RESET_SHUTDOWN"); return 0; @@ -207,8 +206,7 @@ static ssize_t efi_capsule_write(struct file *file, const char __user *buff, if (cap_info->header_obtained && cap_info->count >= cap_info->total_size) { if (cap_info->count > cap_info->total_size) { - pr_err("%s: upload size exceeded header defined size\n", - __func__); + pr_err("capsule upload size exceeded header defined size\n"); ret = -EINVAL; goto failed; } @@ -242,7 +240,7 @@ static int efi_capsule_flush(struct file *file, fl_owner_t id) struct capsule_info *cap_info = file->private_data; if (cap_info->index > 0) { - pr_err("%s: capsule upload not complete\n", __func__); + pr_err("capsule upload not complete\n"); efi_free_all_buff_pages(cap_info); ret = -ECANCELED; } @@ -321,8 +319,7 @@ static int __init efi_capsule_loader_init(void) ret = misc_register(&efi_capsule_misc); if (ret) - pr_err("%s: Failed to register misc char file note\n", - __func__); + pr_err("Unable to register capsule loader device\n"); return ret; } From a5b71fc8cb26f4477f0bf8545e6865c37c64fbec Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 21:13:52 +0200 Subject: [PATCH 0099/1149] efi/capsule: Adjust return type of efi_capsule_setup_info() commit 41b0c376951417d1b37448957b30f766b10d3090 upstream. We actually expect int at the caller and never return any size information. Signed-off-by: Jan Kiszka Signed-off-by: Ard Biesheuvel Reviewed-by: Matt Fleming Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/20170602135207.21708-6-ard.biesheuvel@linaro.org Signed-off-by: Ingo Molnar Signed-off-by: Ben Hutchings --- drivers/firmware/efi/capsule-loader.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/firmware/efi/capsule-loader.c b/drivers/firmware/efi/capsule-loader.c index 3fb91e1597a9..37d3f6ec2d28 100644 --- a/drivers/firmware/efi/capsule-loader.c +++ b/drivers/firmware/efi/capsule-loader.c @@ -53,8 +53,8 @@ static void efi_free_all_buff_pages(struct capsule_info *cap_info) * @kbuff: a mapped first page buffer pointer * @hdr_bytes: the total received number of bytes for efi header **/ -static ssize_t efi_capsule_setup_info(struct capsule_info *cap_info, - void *kbuff, size_t hdr_bytes) +static int efi_capsule_setup_info(struct capsule_info *cap_info, + void *kbuff, size_t hdr_bytes) { efi_capsule_header_t *cap_hdr; size_t pages_needed; From 497f7201e7e823b2b6b04babce724ee3253bf3bf Mon Sep 17 00:00:00 2001 From: Ard Biesheuvel Date: Wed, 30 Aug 2017 21:13:53 +0200 Subject: [PATCH 0100/1149] efi/capsule-loader: Use a cached copy of the capsule header commit 82c3768b8d68c40ecde92338899c838b7c674ffb upstream. Instead of kmapping the capsule data twice, copy the capsule header into the capsule info struct we keep locally. This is an improvement by itself, but will also enable handling of non-standard header formats more easily. Signed-off-by: Ard Biesheuvel Reviewed-by: Matt Fleming Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/20170602135207.21708-7-ard.biesheuvel@linaro.org Signed-off-by: Ingo Molnar Signed-off-by: Ben Hutchings --- drivers/firmware/efi/capsule-loader.c | 41 +++++++++++---------------- 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/drivers/firmware/efi/capsule-loader.c b/drivers/firmware/efi/capsule-loader.c index 37d3f6ec2d28..5b012a467d7d 100644 --- a/drivers/firmware/efi/capsule-loader.c +++ b/drivers/firmware/efi/capsule-loader.c @@ -21,13 +21,13 @@ #define NO_FURTHER_WRITE_ACTION -1 struct capsule_info { - bool header_obtained; - int reset_type; - long index; - size_t count; - size_t total_size; - struct page **pages; - size_t page_bytes_remain; + efi_capsule_header_t header; + int reset_type; + long index; + size_t count; + size_t total_size; + struct page **pages; + size_t page_bytes_remain; }; /** @@ -56,7 +56,6 @@ static void efi_free_all_buff_pages(struct capsule_info *cap_info) static int efi_capsule_setup_info(struct capsule_info *cap_info, void *kbuff, size_t hdr_bytes) { - efi_capsule_header_t *cap_hdr; size_t pages_needed; int ret; void *temp_page; @@ -66,8 +65,9 @@ static int efi_capsule_setup_info(struct capsule_info *cap_info, return 0; /* Reset back to the correct offset of header */ - cap_hdr = kbuff - cap_info->count; - pages_needed = ALIGN(cap_hdr->imagesize, PAGE_SIZE) >> PAGE_SHIFT; + kbuff -= cap_info->count; + memcpy(&cap_info->header, kbuff, sizeof(cap_info->header)); + pages_needed = ALIGN(cap_info->header.imagesize, PAGE_SIZE) / PAGE_SIZE; if (pages_needed == 0) { pr_err("invalid capsule size"); @@ -75,15 +75,16 @@ static int efi_capsule_setup_info(struct capsule_info *cap_info, } /* Check if the capsule binary supported */ - ret = efi_capsule_supported(cap_hdr->guid, cap_hdr->flags, - cap_hdr->imagesize, + ret = efi_capsule_supported(cap_info->header.guid, + cap_info->header.flags, + cap_info->header.imagesize, &cap_info->reset_type); if (ret) { pr_err("capsule not supported\n"); return ret; } - cap_info->total_size = cap_hdr->imagesize; + cap_info->total_size = cap_info->header.imagesize; temp_page = krealloc(cap_info->pages, pages_needed * sizeof(void *), GFP_KERNEL | __GFP_ZERO); @@ -91,7 +92,6 @@ static int efi_capsule_setup_info(struct capsule_info *cap_info, return -ENOMEM; cap_info->pages = temp_page; - cap_info->header_obtained = true; return 0; } @@ -104,15 +104,8 @@ static int efi_capsule_setup_info(struct capsule_info *cap_info, static ssize_t efi_capsule_submit_update(struct capsule_info *cap_info) { int ret; - void *cap_hdr_temp; - cap_hdr_temp = vmap(cap_info->pages, cap_info->index, - VM_MAP, PAGE_KERNEL); - if (!cap_hdr_temp) - return -ENOMEM; - - ret = efi_capsule_update(cap_hdr_temp, cap_info->pages); - vunmap(cap_hdr_temp); + ret = efi_capsule_update(&cap_info->header, cap_info->pages); if (ret) { pr_err("capsule update failed\n"); return ret; @@ -192,7 +185,7 @@ static ssize_t efi_capsule_write(struct file *file, const char __user *buff, cap_info->page_bytes_remain -= write_byte; /* Setup capsule binary info structure */ - if (!cap_info->header_obtained) { + if (cap_info->header.headersize == 0) { ret = efi_capsule_setup_info(cap_info, kbuff, cap_info->count + write_byte); if (ret) @@ -203,7 +196,7 @@ static ssize_t efi_capsule_write(struct file *file, const char __user *buff, kunmap(page); /* Submit the full binary to efi_capsule_update() API */ - if (cap_info->header_obtained && + if (cap_info->header.headersize > 0 && cap_info->count >= cap_info->total_size) { if (cap_info->count > cap_info->total_size) { pr_err("capsule upload size exceeded header defined size\n"); From c374d06d3a249216068f39df205c0fcf732bcafa Mon Sep 17 00:00:00 2001 From: Ard Biesheuvel Date: Wed, 30 Aug 2017 21:13:54 +0200 Subject: [PATCH 0101/1149] efi/capsule-loader: Redirect calls to efi_capsule_setup_info() via weak alias commit 3fabd628d5ea24b02ddb1230ffca1df0f779f84e upstream. To allow platform specific code to hook into the capsule loading routines, indirect calls to efi_capsule_setup_info() via a weak alias of __efi_capsule_setup_info(), allowing platforms to redefine the former but still use the latter. Tested-by: Bryan O'Donoghue Signed-off-by: Ard Biesheuvel Cc: Linus Torvalds Cc: Matt Fleming Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/20170602135207.21708-9-ard.biesheuvel@linaro.org Signed-off-by: Ingo Molnar Signed-off-by: Ben Hutchings --- drivers/firmware/efi/capsule-loader.c | 56 +++++++++++++-------------- include/linux/efi.h | 12 ++++++ 2 files changed, 39 insertions(+), 29 deletions(-) diff --git a/drivers/firmware/efi/capsule-loader.c b/drivers/firmware/efi/capsule-loader.c index 5b012a467d7d..f7fdeab0bc37 100644 --- a/drivers/firmware/efi/capsule-loader.c +++ b/drivers/firmware/efi/capsule-loader.c @@ -20,16 +20,6 @@ #define NO_FURTHER_WRITE_ACTION -1 -struct capsule_info { - efi_capsule_header_t header; - int reset_type; - long index; - size_t count; - size_t total_size; - struct page **pages; - size_t page_bytes_remain; -}; - /** * efi_free_all_buff_pages - free all previous allocated buffer pages * @cap_info: pointer to current instance of capsule_info structure @@ -46,28 +36,13 @@ static void efi_free_all_buff_pages(struct capsule_info *cap_info) cap_info->index = NO_FURTHER_WRITE_ACTION; } -/** - * efi_capsule_setup_info - obtain the efi capsule header in the binary and - * setup capsule_info structure - * @cap_info: pointer to current instance of capsule_info structure - * @kbuff: a mapped first page buffer pointer - * @hdr_bytes: the total received number of bytes for efi header - **/ -static int efi_capsule_setup_info(struct capsule_info *cap_info, - void *kbuff, size_t hdr_bytes) +int __efi_capsule_setup_info(struct capsule_info *cap_info) { size_t pages_needed; int ret; void *temp_page; - /* Only process data block that is larger than efi header size */ - if (hdr_bytes < sizeof(efi_capsule_header_t)) - return 0; - - /* Reset back to the correct offset of header */ - kbuff -= cap_info->count; - memcpy(&cap_info->header, kbuff, sizeof(cap_info->header)); - pages_needed = ALIGN(cap_info->header.imagesize, PAGE_SIZE) / PAGE_SIZE; + pages_needed = ALIGN(cap_info->total_size, PAGE_SIZE) / PAGE_SIZE; if (pages_needed == 0) { pr_err("invalid capsule size"); @@ -84,7 +59,6 @@ static int efi_capsule_setup_info(struct capsule_info *cap_info, return ret; } - cap_info->total_size = cap_info->header.imagesize; temp_page = krealloc(cap_info->pages, pages_needed * sizeof(void *), GFP_KERNEL | __GFP_ZERO); @@ -96,6 +70,30 @@ static int efi_capsule_setup_info(struct capsule_info *cap_info, return 0; } +/** + * efi_capsule_setup_info - obtain the efi capsule header in the binary and + * setup capsule_info structure + * @cap_info: pointer to current instance of capsule_info structure + * @kbuff: a mapped first page buffer pointer + * @hdr_bytes: the total received number of bytes for efi header + * + * Platforms with non-standard capsule update mechanisms can override + * this __weak function so they can perform any required capsule + * image munging. See quark_quirk_function() for an example. + **/ +int __weak efi_capsule_setup_info(struct capsule_info *cap_info, void *kbuff, + size_t hdr_bytes) +{ + /* Only process data block that is larger than efi header size */ + if (hdr_bytes < sizeof(efi_capsule_header_t)) + return 0; + + memcpy(&cap_info->header, kbuff, sizeof(cap_info->header)); + cap_info->total_size = cap_info->header.imagesize; + + return __efi_capsule_setup_info(cap_info); +} + /** * efi_capsule_submit_update - invoke the efi_capsule_update API once binary * upload done @@ -186,7 +184,7 @@ static ssize_t efi_capsule_write(struct file *file, const char __user *buff, /* Setup capsule binary info structure */ if (cap_info->header.headersize == 0) { - ret = efi_capsule_setup_info(cap_info, kbuff, + ret = efi_capsule_setup_info(cap_info, kbuff - cap_info->count, cap_info->count + write_byte); if (ret) goto fail_unmap; diff --git a/include/linux/efi.h b/include/linux/efi.h index 5a0b8f7a54c8..b386097e45bc 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h @@ -129,6 +129,18 @@ typedef struct { #define EFI_CAPSULE_POPULATE_SYSTEM_TABLE 0x00020000 #define EFI_CAPSULE_INITIATE_RESET 0x00040000 +struct capsule_info { + efi_capsule_header_t header; + int reset_type; + long index; + size_t count; + size_t total_size; + struct page **pages; + size_t page_bytes_remain; +}; + +int __efi_capsule_setup_info(struct capsule_info *cap_info); + /* * Allocation types for calls to boottime->allocate_pages. */ From 31ee1c7508ae8831578cf4cb4df1b5dedf60693b Mon Sep 17 00:00:00 2001 From: Ard Biesheuvel Date: Wed, 30 Aug 2017 21:13:55 +0200 Subject: [PATCH 0102/1149] efi/capsule-loader: Use page addresses rather than struct page pointers commit 2a457fb31df62c6b482f78e4f74aaed99271f44d upstream. To give some leeway to code that handles non-standard capsule headers, let's keep an array of page addresses rather than struct page pointers. This gives special implementations of efi_capsule_setup_info() the opportunity to mangle the payload a bit before it is presented to the firmware, without putting any knowledge of the nature of such quirks into the generic code. Tested-by: Bryan O'Donoghue Signed-off-by: Ard Biesheuvel Cc: Linus Torvalds Cc: Matt Fleming Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/20170602135207.21708-10-ard.biesheuvel@linaro.org Signed-off-by: Ingo Molnar Signed-off-by: Ben Hutchings --- drivers/firmware/efi/capsule-loader.c | 12 ++++++++---- drivers/firmware/efi/capsule.c | 7 ++++--- include/linux/efi.h | 4 ++-- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/drivers/firmware/efi/capsule-loader.c b/drivers/firmware/efi/capsule-loader.c index f7fdeab0bc37..feeafb673c07 100644 --- a/drivers/firmware/efi/capsule-loader.c +++ b/drivers/firmware/efi/capsule-loader.c @@ -20,6 +20,10 @@ #define NO_FURTHER_WRITE_ACTION -1 +#ifndef phys_to_page +#define phys_to_page(x) pfn_to_page((x) >> PAGE_SHIFT) +#endif + /** * efi_free_all_buff_pages - free all previous allocated buffer pages * @cap_info: pointer to current instance of capsule_info structure @@ -31,7 +35,7 @@ static void efi_free_all_buff_pages(struct capsule_info *cap_info) { while (cap_info->index > 0) - __free_page(cap_info->pages[--cap_info->index]); + __free_page(phys_to_page(cap_info->pages[--cap_info->index])); cap_info->index = NO_FURTHER_WRITE_ACTION; } @@ -161,12 +165,12 @@ static ssize_t efi_capsule_write(struct file *file, const char __user *buff, goto failed; } - cap_info->pages[cap_info->index++] = page; + cap_info->pages[cap_info->index++] = page_to_phys(page); cap_info->page_bytes_remain = PAGE_SIZE; + } else { + page = phys_to_page(cap_info->pages[cap_info->index - 1]); } - page = cap_info->pages[cap_info->index - 1]; - kbuff = kmap(page); if (!kbuff) { ret = -ENOMEM; diff --git a/drivers/firmware/efi/capsule.c b/drivers/firmware/efi/capsule.c index 1106773468b2..4a867c65d740 100644 --- a/drivers/firmware/efi/capsule.c +++ b/drivers/firmware/efi/capsule.c @@ -218,7 +218,7 @@ efi_capsule_update_locked(efi_capsule_header_t *capsule, * * Return 0 on success, a converted EFI status code on failure. */ -int efi_capsule_update(efi_capsule_header_t *capsule, struct page **pages) +int efi_capsule_update(efi_capsule_header_t *capsule, phys_addr_t *pages) { u32 imagesize = capsule->imagesize; efi_guid_t guid = capsule->guid; @@ -257,10 +257,11 @@ int efi_capsule_update(efi_capsule_header_t *capsule, struct page **pages) } for (j = 0; j < SGLIST_PER_PAGE && count > 0; j++) { - u64 sz = min_t(u64, imagesize, PAGE_SIZE); + u64 sz = min_t(u64, imagesize, + PAGE_SIZE - (u64)*pages % PAGE_SIZE); sglist[j].length = sz; - sglist[j].data = page_to_phys(*pages++); + sglist[j].data = *pages++; imagesize -= sz; count--; diff --git a/include/linux/efi.h b/include/linux/efi.h index b386097e45bc..23a2a274bc6c 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h @@ -135,7 +135,7 @@ struct capsule_info { long index; size_t count; size_t total_size; - struct page **pages; + phys_addr_t *pages; size_t page_bytes_remain; }; @@ -1246,7 +1246,7 @@ extern int efi_capsule_supported(efi_guid_t guid, u32 flags, size_t size, int *reset); extern int efi_capsule_update(efi_capsule_header_t *capsule, - struct page **pages); + phys_addr_t *pages); #ifdef CONFIG_EFI_RUNTIME_MAP int efi_runtime_map_init(struct kobject *); From 4402c9a7ee3b29166f00da60e86c31723be8023c Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 30 Aug 2017 21:13:56 +0200 Subject: [PATCH 0103/1149] efi/capsule: Add support for Quark security header commit 2959c95d510cc45b246ba727eb8fdf8b601c6eec upstream. The firmware for Quark X102x prepends a security header to the capsule which is needed to support the mandatory secure boot on this processor. The header can be detected by checking for the "_CSH" signature and - to avoid any GUID conflict - validating its size field to contain the expected value. Then we need to look for the EFI header right after the security header and pass the real header to __efi_capsule_setup_info. To be minimal invasive and maximal safe, the quirk version of efi_capsule_setup_info() is only effective on Quark processors. Tested-by: Bryan O'Donoghue Signed-off-by: Jan Kiszka Signed-off-by: Ard Biesheuvel Reviewed-by: Andy Shevchenko Cc: Linus Torvalds Cc: Matt Fleming Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/20170602135207.21708-11-ard.biesheuvel@linaro.org Signed-off-by: Ingo Molnar Signed-off-by: Ben Hutchings --- arch/x86/platform/efi/quirks.c | 137 +++++++++++++++++++++++++++++++++ drivers/firmware/efi/Kconfig | 9 +++ 2 files changed, 146 insertions(+) diff --git a/arch/x86/platform/efi/quirks.c b/arch/x86/platform/efi/quirks.c index 1c7380da65ff..f0361323a805 100644 --- a/arch/x86/platform/efi/quirks.c +++ b/arch/x86/platform/efi/quirks.c @@ -10,12 +10,66 @@ #include #include #include +#include #define EFI_MIN_RESERVE 5120 #define EFI_DUMMY_GUID \ EFI_GUID(0x4424ac57, 0xbe4b, 0x47dd, 0x9e, 0x97, 0xed, 0x50, 0xf0, 0x9f, 0x92, 0xa9) +#define QUARK_CSH_SIGNATURE 0x5f435348 /* _CSH */ +#define QUARK_SECURITY_HEADER_SIZE 0x400 + +/* + * Header prepended to the standard EFI capsule on Quark systems the are based + * on Intel firmware BSP. + * @csh_signature: Unique identifier to sanity check signed module + * presence ("_CSH"). + * @version: Current version of CSH used. Should be one for Quark A0. + * @modulesize: Size of the entire module including the module header + * and payload. + * @security_version_number_index: Index of SVN to use for validation of signed + * module. + * @security_version_number: Used to prevent against roll back of modules. + * @rsvd_module_id: Currently unused for Clanton (Quark). + * @rsvd_module_vendor: Vendor Identifier. For Intel products value is + * 0x00008086. + * @rsvd_date: BCD representation of build date as yyyymmdd, where + * yyyy=4 digit year, mm=1-12, dd=1-31. + * @headersize: Total length of the header including including any + * padding optionally added by the signing tool. + * @hash_algo: What Hash is used in the module signing. + * @cryp_algo: What Crypto is used in the module signing. + * @keysize: Total length of the key data including including any + * padding optionally added by the signing tool. + * @signaturesize: Total length of the signature including including any + * padding optionally added by the signing tool. + * @rsvd_next_header: 32-bit pointer to the next Secure Boot Module in the + * chain, if there is a next header. + * @rsvd: Reserved, padding structure to required size. + * + * See also QuartSecurityHeader_t in + * Quark_EDKII_v1.2.1.1/QuarkPlatformPkg/Include/QuarkBootRom.h + * from https://downloadcenter.intel.com/download/23197/Intel-Quark-SoC-X1000-Board-Support-Package-BSP + */ +struct quark_security_header { + u32 csh_signature; + u32 version; + u32 modulesize; + u32 security_version_number_index; + u32 security_version_number; + u32 rsvd_module_id; + u32 rsvd_module_vendor; + u32 rsvd_date; + u32 headersize; + u32 hash_algo; + u32 cryp_algo; + u32 keysize; + u32 signaturesize; + u32 rsvd_next_header; + u32 rsvd[2]; +}; + static efi_char16_t efi_dummy_name[6] = { 'D', 'U', 'M', 'M', 'Y', 0 }; static bool efi_no_storage_paranoia; @@ -288,3 +342,86 @@ bool efi_poweroff_required(void) { return !!acpi_gbl_reduced_hardware; } + +#ifdef CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH + +static int qrk_capsule_setup_info(struct capsule_info *cap_info, void **pkbuff, + size_t hdr_bytes) +{ + struct quark_security_header *csh = *pkbuff; + + /* Only process data block that is larger than the security header */ + if (hdr_bytes < sizeof(struct quark_security_header)) + return 0; + + if (csh->csh_signature != QUARK_CSH_SIGNATURE || + csh->headersize != QUARK_SECURITY_HEADER_SIZE) + return 1; + + /* Only process data block if EFI header is included */ + if (hdr_bytes < QUARK_SECURITY_HEADER_SIZE + + sizeof(efi_capsule_header_t)) + return 0; + + pr_debug("Quark security header detected\n"); + + if (csh->rsvd_next_header != 0) { + pr_err("multiple Quark security headers not supported\n"); + return -EINVAL; + } + + *pkbuff += csh->headersize; + cap_info->total_size = csh->headersize; + + /* + * Update the first page pointer to skip over the CSH header. + */ + cap_info->pages[0] += csh->headersize; + + return 1; +} + +#define ICPU(family, model, quirk_handler) \ + { X86_VENDOR_INTEL, family, model, X86_FEATURE_ANY, \ + (unsigned long)&quirk_handler } + +static const struct x86_cpu_id efi_capsule_quirk_ids[] = { + ICPU(5, 9, qrk_capsule_setup_info), /* Intel Quark X1000 */ + { } +}; + +int efi_capsule_setup_info(struct capsule_info *cap_info, void *kbuff, + size_t hdr_bytes) +{ + int (*quirk_handler)(struct capsule_info *, void **, size_t); + const struct x86_cpu_id *id; + int ret; + + if (hdr_bytes < sizeof(efi_capsule_header_t)) + return 0; + + cap_info->total_size = 0; + + id = x86_match_cpu(efi_capsule_quirk_ids); + if (id) { + /* + * The quirk handler is supposed to return + * - a value > 0 if the setup should continue, after advancing + * kbuff as needed + * - 0 if not enough hdr_bytes are available yet + * - a negative error code otherwise + */ + quirk_handler = (typeof(quirk_handler))id->driver_data; + ret = quirk_handler(cap_info, &kbuff, hdr_bytes); + if (ret <= 0) + return ret; + } + + memcpy(&cap_info->header, kbuff, sizeof(cap_info->header)); + + cap_info->total_size += cap_info->header.imagesize; + + return __efi_capsule_setup_info(cap_info); +} + +#endif diff --git a/drivers/firmware/efi/Kconfig b/drivers/firmware/efi/Kconfig index de221bbde9c9..8dfeee3b9e54 100644 --- a/drivers/firmware/efi/Kconfig +++ b/drivers/firmware/efi/Kconfig @@ -97,6 +97,15 @@ config EFI_CAPSULE_LOADER Most users should say N. +config EFI_CAPSULE_QUIRK_QUARK_CSH + boolean "Add support for Quark capsules with non-standard headers" + depends on X86 && !64BIT + select EFI_CAPSULE_LOADER + default y + help + Add support for processing Quark X1000 EFI capsules, whose header + layout deviates from the layout mandated by the UEFI specification. + endmenu config UEFI_CPER From 1983a7a65ba5b8056f7926df275ac94991278f56 Mon Sep 17 00:00:00 2001 From: Matt Fleming Date: Fri, 6 May 2016 22:39:27 +0100 Subject: [PATCH 0104/1149] efi/capsule: Make efi_capsule_pending() lockless commit 62075e581802ea1842d5d3c490a7e46330bdb9e1 upstream. Taking a mutex in the reboot path is bogus because we cannot sleep with interrupts disabled, such as when rebooting due to panic(), BUG: sleeping function called from invalid context at kernel/locking/mutex.c:97 in_atomic(): 0, irqs_disabled(): 1, pid: 7, name: rcu_sched Call Trace: dump_stack+0x63/0x89 ___might_sleep+0xd8/0x120 __might_sleep+0x49/0x80 mutex_lock+0x20/0x50 efi_capsule_pending+0x1d/0x60 native_machine_emergency_restart+0x59/0x280 machine_emergency_restart+0x19/0x20 emergency_restart+0x18/0x20 panic+0x1ba/0x217 In this case all other CPUs will have been stopped by the time we execute the platform reboot code, so 'capsule_pending' cannot change under our feet. We wouldn't care even if it could since we cannot wait for it complete. Also, instead of relying on the external 'system_state' variable just use a reboot notifier, so we can set 'stop_capsules' while holding 'capsule_mutex', thereby avoiding a race where system_state is updated while we're in the middle of efi_capsule_update_locked() (since CPUs won't have been stopped at that point). Signed-off-by: Matt Fleming Cc: Andy Lutomirski Cc: Ard Biesheuvel Cc: Borislav Petkov Cc: Brian Gerst Cc: Bryan O'Donoghue Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Kweh Hock Leong Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: joeyli Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/1462570771-13324-2-git-send-email-matt@codeblueprint.co.uk Signed-off-by: Ingo Molnar Signed-off-by: Ben Hutchings --- drivers/firmware/efi/capsule.c | 35 ++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/drivers/firmware/efi/capsule.c b/drivers/firmware/efi/capsule.c index 4a867c65d740..57f85256feb2 100644 --- a/drivers/firmware/efi/capsule.c +++ b/drivers/firmware/efi/capsule.c @@ -22,11 +22,12 @@ typedef struct { } efi_capsule_block_desc_t; static bool capsule_pending; +static bool stop_capsules; static int efi_reset_type = -1; /* * capsule_mutex serialises access to both capsule_pending and - * efi_reset_type. + * efi_reset_type and stop_capsules. */ static DEFINE_MUTEX(capsule_mutex); @@ -50,18 +51,13 @@ static DEFINE_MUTEX(capsule_mutex); */ bool efi_capsule_pending(int *reset_type) { - bool rv = false; - - mutex_lock(&capsule_mutex); if (!capsule_pending) - goto out; + return false; if (reset_type) *reset_type = efi_reset_type; - rv = true; -out: - mutex_unlock(&capsule_mutex); - return rv; + + return true; } /* @@ -169,7 +165,7 @@ efi_capsule_update_locked(efi_capsule_header_t *capsule, * whether to force an EFI reboot), and we're racing against * that call. Abort in that case. */ - if (unlikely(system_state == SYSTEM_RESTART)) { + if (unlikely(stop_capsules)) { pr_warn("Capsule update raced with reboot, aborting.\n"); return -EINVAL; } @@ -292,3 +288,22 @@ int efi_capsule_update(efi_capsule_header_t *capsule, phys_addr_t *pages) return rv; } EXPORT_SYMBOL_GPL(efi_capsule_update); + +static int capsule_reboot_notify(struct notifier_block *nb, unsigned long event, void *cmd) +{ + mutex_lock(&capsule_mutex); + stop_capsules = true; + mutex_unlock(&capsule_mutex); + + return NOTIFY_DONE; +} + +static struct notifier_block capsule_reboot_nb = { + .notifier_call = capsule_reboot_notify, +}; + +static int __init capsule_reboot_register(void) +{ + return register_reboot_notifier(&capsule_reboot_nb); +} +core_initcall(capsule_reboot_register); From 9acfc179058c61bca03721a2d53923489fa6e7af Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Thu, 31 Aug 2017 15:34:06 +0100 Subject: [PATCH 0105/1149] ARM: dts: r8a7743: initial SoC device tree The initial R8A7743 SoC device tree including CPU0, GIC, timer, SYSC, RST, CPG, and the required clock descriptions. Based on the original (and large) patch by Dmitry Shifrin . Signed-off-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 34e8d993a68ae459ad98c27afc07647e439deacc) (removed SYSC, RST and CPG nodes) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 96 ++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 arch/arm/boot/dts/r8a7743.dtsi diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi new file mode 100644 index 000000000000..337e61405077 --- /dev/null +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -0,0 +1,96 @@ +/* + * Device Tree Source for the r8a7743 SoC + * + * Copyright (C) 2016 Cogent Embedded Inc. + * Copyright (C) 2017 Renesas Electronics Corp. + * + * This file is licensed under the terms of the GNU General Public License + * version 2. This program is licensed "as is" without any warranty of any + * kind, whether express or implied. + */ + +#include +#include + +/ { + compatible = "renesas,r8a7743"; + #address-cells = <2>; + #size-cells = <2>; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu0: cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a15"; + reg = <0>; + clock-frequency = <1500000000>; + next-level-cache = <&L2_CA15>; + }; + + L2_CA15: cache-controller@0 { + compatible = "cache"; + reg = <0>; + cache-unified; + cache-level = <2>; + }; + }; + + soc { + compatible = "simple-bus"; + interrupt-parent = <&gic>; + + #address-cells = <2>; + #size-cells = <2>; + ranges; + + gic: interrupt-controller@f1001000 { + compatible = "arm,gic-400"; + #interrupt-cells = <3>; + #address-cells = <0>; + interrupt-controller; + reg = <0 0xf1001000 0 0x1000>, + <0 0xf1002000 0 0x1000>, + <0 0xf1004000 0 0x2000>, + <0 0xf1006000 0 0x2000>; + interrupts = ; + }; + + timer { + compatible = "arm,armv7-timer"; + interrupts = , + , + , + ; + }; + }; + + /* External root clock */ + extal_clk: extal { + compatible = "fixed-clock"; + #clock-cells = <0>; + /* This value must be overridden by the board. */ + clock-frequency = <0>; + }; + + /* External USB clock - can be overridden by the board */ + usb_extal_clk: usb_extal { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <48000000>; + }; + + /* External SCIF clock */ + scif_clk: scif { + compatible = "fixed-clock"; + #clock-cells = <0>; + /* This value must be overridden by the board. */ + clock-frequency = <0>; + }; +}; From 9683f2eba952bc0df90ec8262f87e89835352f9a Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 31 Aug 2017 15:34:07 +0100 Subject: [PATCH 0106/1149] ARM: shmobile: r8a7743: Add clock index macros for DT sources Add macros usable by device tree sources to reference r8a7743 clocks by index. This is based on the work done by Laurent Pinchart for the r8a7791 SoC. Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- include/dt-bindings/clock/r8a7743-clock.h | 166 ++++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 include/dt-bindings/clock/r8a7743-clock.h diff --git a/include/dt-bindings/clock/r8a7743-clock.h b/include/dt-bindings/clock/r8a7743-clock.h new file mode 100644 index 000000000000..a5c7e387e66d --- /dev/null +++ b/include/dt-bindings/clock/r8a7743-clock.h @@ -0,0 +1,166 @@ +/* + * Copyright (C) 2017 Renesas Electronics Corp. + * Copyright 2013 Ideas On Board SPRL + * + * 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. + */ + +#ifndef __DT_BINDINGS_CLOCK_R8A7743_H__ +#define __DT_BINDINGS_CLOCK_R8A7743_H__ + +/* CPG */ +#define R8A7743_CLK_MAIN 0 +#define R8A7743_CLK_PLL0 1 +#define R8A7743_CLK_PLL1 2 +#define R8A7743_CLK_PLL3 3 +#define R8A7743_CLK_LB 4 +#define R8A7743_CLK_QSPI 5 +#define R8A7743_CLK_SDH 6 +#define R8A7743_CLK_SD0 7 +#define R8A7743_CLK_Z 8 +#define R8A7743_CLK_RCAN 9 + +/* MSTP0 */ +#define R8A7743_CLK_MSIOF0 0 + +/* MSTP1 */ +#define R8A7743_CLK_VCP0 1 +#define R8A7743_CLK_VPC0 3 +#define R8A7743_CLK_ADG 6 +#define R8A7743_CLK_TSIF0 8 +#define R8A7743_CLK_TMU1 11 +#define R8A7743_CLK_3DG 12 +#define R8A7743_CLK_2DDMAC 15 +#define R8A7743_CLK_FDP1_1 18 +#define R8A7743_CLK_FDP1_0 19 +#define R8A7743_CLK_TMU3 21 +#define R8A7743_CLK_TMU2 22 +#define R8A7743_CLK_CMT0 24 +#define R8A7743_CLK_TMU0 25 +#define R8A7743_CLK_VSP1_DU1 27 +#define R8A7743_CLK_VSP1_DU0 28 +#define R8A7743_CLK_VSP1_S 31 + +/* MSTP2 */ +#define R8A7743_CLK_SCIFA2 2 +#define R8A7743_CLK_SCIFA1 3 +#define R8A7743_CLK_SCIFA0 4 +#define R8A7743_CLK_MSIOF2 5 +#define R8A7743_CLK_SCIFB0 6 +#define R8A7743_CLK_SCIFB1 7 +#define R8A7743_CLK_MSIOF1 8 +#define R8A7743_CLK_SCIFB2 16 +#define R8A7743_CLK_SYS_DMAC1 18 +#define R8A7743_CLK_SYS_DMAC0 19 + +/* MSTP3 */ +#define R8A7743_CLK_TPU0 4 +#define R8A7743_CLK_SDHI3 11 +#define R8A7743_CLK_SDHI2 12 +#define R8A7743_CLK_SDHI0 14 +#define R8A7743_CLK_MMCIF0 15 +#define R8A7743_CLK_IIC0 18 +#define R8A7743_CLK_PCIEC 19 +#define R8A7743_CLK_IIC1 23 +#define R8A7743_CLK_SSUSB 28 +#define R8A7743_CLK_CMT1 29 +#define R8A7743_CLK_USBDMAC0 30 +#define R8A7743_CLK_USBDMAC1 31 + +/* MSTP4 */ +#define R8A7743_CLK_RWDT 4 +#define R8A7743_CLK_USB_DDM 6 +#define R8A7743_CLK_IRQC 7 +#define R8A7743_CLK_INTC_SYS 8 + +/* MSTP5 */ +#define R8A7743_CLK_AUDIO_DMAC1 1 +#define R8A7743_CLK_AUDIO_DMAC0 2 +#define R8A7743_CLK_THERMAL 22 +#define R8A7743_CLK_PWM 23 +#define R8A7743_CLK_BOOT_ROM 26 + +/* MSTP7 */ +#define R8A7743_CLK_USB_EHCI 3 +#define R8A7743_CLK_HSUSB 4 +#define R8A7743_CLK_HSCIF2 13 +#define R8A7743_CLK_SCIF5 14 +#define R8A7743_CLK_SCIF4 15 +#define R8A7743_CLK_HSCIF1 16 +#define R8A7743_CLK_HSCIF0 17 +#define R8A7743_CLK_SCIF3 18 +#define R8A7743_CLK_SCIF2 19 +#define R8A7743_CLK_SCIF1 20 +#define R8A7743_CLK_SCIF0 21 +#define R8A7743_CLK_DU1 23 +#define R8A7743_CLK_DU0 24 +#define R8A7743_CLK_LVDS0 26 + +/* MSTP8 */ +#define R8A7743_CLK_IPMMU_SGX 0 +#define R8A7743_CLK_VIN2 9 +#define R8A7743_CLK_VIN1 10 +#define R8A7743_CLK_VIN0 11 +#define R8A7743_CLK_ETHERAVB 12 +#define R8A7743_CLK_ETHER 13 +#define R8A7743_CLK_SATA1 14 +#define R8A7743_CLK_SATA0 15 +#define R8A7743_CLK_DCU 30 + +/* MSTP9 */ +#define R8A7743_CLK_GPIO7 4 +#define R8A7743_CLK_GPIO6 5 +#define R8A7743_CLK_GPIO5 7 +#define R8A7743_CLK_GPIO4 8 +#define R8A7743_CLK_GPIO3 9 +#define R8A7743_CLK_GPIO2 10 +#define R8A7743_CLK_GPIO1 11 +#define R8A7743_CLK_GPIO0 12 +#define R8A7743_CLK_RCAN1 15 +#define R8A7743_CLK_RCAN0 16 +#define R8A7743_CLK_QSPI_MOD 17 +#define R8A7743_CLK_I2C5 25 +#define R8A7743_CLK_IICDVFS 26 +#define R8A7743_CLK_I2C4 27 +#define R8A7743_CLK_I2C3 28 +#define R8A7743_CLK_I2C2 29 +#define R8A7743_CLK_I2C1 30 +#define R8A7743_CLK_I2C0 31 + +/* MSTP10 */ +#define R8A7743_CLK_SSI_ALL 5 +#define R8A7743_CLK_SSI9 6 +#define R8A7743_CLK_SSI8 7 +#define R8A7743_CLK_SSI7 8 +#define R8A7743_CLK_SSI6 9 +#define R8A7743_CLK_SSI5 10 +#define R8A7743_CLK_SSI4 11 +#define R8A7743_CLK_SSI3 12 +#define R8A7743_CLK_SSI2 13 +#define R8A7743_CLK_SSI1 14 +#define R8A7743_CLK_SSI0 15 +#define R8A7743_CLK_SCU_ALL 17 +#define R8A7743_CLK_SCU_DVC1 18 +#define R8A7743_CLK_SCU_DVC0 19 +#define R8A7743_CLK_SCU_CTU1_MIX1 20 +#define R8A7743_CLK_SCU_CTU0_MIX0 21 +#define R8A7743_CLK_SCU_SRC9 22 +#define R8A7743_CLK_SCU_SRC8 23 +#define R8A7743_CLK_SCU_SRC7 24 +#define R8A7743_CLK_SCU_SRC6 25 +#define R8A7743_CLK_SCU_SRC5 26 +#define R8A7743_CLK_SCU_SRC4 27 +#define R8A7743_CLK_SCU_SRC3 28 +#define R8A7743_CLK_SCU_SRC2 29 +#define R8A7743_CLK_SCU_SRC1 30 +#define R8A7743_CLK_SCU_SRC0 31 + +/* MSTP11 */ +#define R8A7743_CLK_SCIFA3 6 +#define R8A7743_CLK_SCIFA4 7 +#define R8A7743_CLK_SCIFA5 8 + +#endif /* __DT_BINDINGS_CLOCK_R8A7743_H__ */ From 7350a0d6d76fed728a1c76604dee1b12bc0a0a88 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 31 Aug 2017 15:34:08 +0100 Subject: [PATCH 0107/1149] clk: shmobile: Document r8a7743 CPG clock support Document r8a7743 CPG clock support. Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- .../devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt index 2a9a8edc8f35..986b8a12c399 100644 --- a/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt +++ b/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt @@ -8,6 +8,7 @@ CPG Module Stop (MSTP) Clocks. Required Properties: - compatible: Must be one of + - "renesas,r8a7743-cpg-clocks" for the r8a7743 CPG - "renesas,r8a7790-cpg-clocks" for the r8a7790 CPG - "renesas,r8a7791-cpg-clocks" for the r8a7791 CPG - "renesas,r8a7793-cpg-clocks" for the r8a7793 CPG From bf7a835c65c3060ccabd1cd08e210dd138810109 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 31 Aug 2017 15:34:09 +0100 Subject: [PATCH 0108/1149] clk: shmobile: Document r8a7743 CPG DIV6 clock support Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- .../devicetree/bindings/clock/renesas,cpg-div6-clocks.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt index 38dcf0370143..2990615d6a3e 100644 --- a/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt +++ b/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt @@ -9,6 +9,7 @@ Required Properties: - compatible: Must be one of the following - "renesas,r8a73a4-div6-clock" for R8A73A4 (R-Mobile APE6) DIV6 clocks - "renesas,r8a7740-div6-clock" for R8A7740 (R-Mobile A1) DIV6 clocks + - "renesas,r8a7743-div6-clock" for R8A7743 (RZ/G1M) DIV6 clocks - "renesas,r8a7790-div6-clock" for R8A7790 (R-Car H2) DIV6 clocks - "renesas,r8a7791-div6-clock" for R8A7791 (R-Car M2-W) DIV6 clocks - "renesas,r8a7793-div6-clock" for R8A7793 (R-Car M2-N) DIV6 clocks From d1be0af494b2048708562d454fd085fe47b469f1 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 31 Aug 2017 15:34:10 +0100 Subject: [PATCH 0109/1149] clk: shmobile: Document r8a7743 MSTP clock support Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- .../devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt index 16ed18155160..f444798ad7ce 100644 --- a/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt +++ b/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt @@ -13,6 +13,7 @@ Required Properties: - "renesas,r7s72100-mstp-clocks" for R7S72100 (RZ) MSTP gate clocks - "renesas,r8a73a4-mstp-clocks" for R8A73A4 (R-Mobile APE6) MSTP gate clocks - "renesas,r8a7740-mstp-clocks" for R8A7740 (R-Mobile A1) MSTP gate clocks + - "renesas,r8a7743-mstp-clocks" for R8A7743 (RZ/G1M) MSTP gate clocks - "renesas,r8a7778-mstp-clocks" for R8A7778 (R-Car M1) MSTP gate clocks - "renesas,r8a7779-mstp-clocks" for R8A7779 (R-Car H1) MSTP gate clocks - "renesas,r8a7790-mstp-clocks" for R8A7790 (R-Car H2) MSTP gate clocks From 687a64a66d9316b03fc12ccb7773b4213e9e6632 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 31 Aug 2017 15:34:11 +0100 Subject: [PATCH 0110/1149] ARM: dts: r8a7743: Add clocks Declare all core clocks and DIV6 clocks, as well as all MSTP clocks. Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 432 +++++++++++++++++++++++++++++++++ 1 file changed, 432 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 337e61405077..341d56fd5bf7 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -11,6 +11,7 @@ #include #include +#include / { compatible = "renesas,r8a7743"; @@ -26,6 +27,7 @@ compatible = "arm,cortex-a15"; reg = <0>; clock-frequency = <1500000000>; + clocks = <&cpg_clocks R8A7743_CLK_Z>; next-level-cache = <&L2_CA15>; }; @@ -69,6 +71,436 @@ ; }; + + clocks { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + /* Special CPG clocks */ + cpg_clocks: cpg_clocks@e6150000 { + compatible = "renesas,r8a7743-cpg-clocks", + "renesas,rcar-gen2-cpg-clocks"; + reg = <0 0xe6150000 0 0x1000>; + clocks = <&extal_clk &usb_extal_clk>; + #clock-cells = <1>; + clock-output-names = "main", "pll0", "pll1", + "pll3", "lb", "qspi", + "sdh", "sd0", "z", "rcan"; + #power-domain-cells = <0>; + }; + + /* Variable factor clocks */ + sd2_clk: sd2_clk@e6150078 { + compatible = "renesas,r8a7743-div6-clock", + "renesas,cpg-div6-clock"; + reg = <0 0xe6150078 0 4>; + clocks = <&pll1_div2_clk>; + #clock-cells = <0>; + clock-output-names = "sd2"; + }; + sd3_clk: sd3_clk@e615026c { + compatible = "renesas,r8a7743-div6-clock", + "renesas,cpg-div6-clock"; + reg = <0 0xe615026c 0 4>; + clocks = <&pll1_div2_clk>; + #clock-cells = <0>; + clock-output-names = "sd3"; + }; + mmc0_clk: mmc0_clk@e6150240 { + compatible = "renesas,r8a7743-div6-clock", + "renesas,cpg-div6-clock"; + reg = <0 0xe6150240 0 4>; + clocks = <&pll1_div2_clk>; + #clock-cells = <0>; + clock-output-names = "mmc0"; + }; + + /* Fixed factor clocks */ + pll1_div2_clk: pll1_div2_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7743_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; + clock-output-names = "pll1_div2"; + }; + zg_clk: zg_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7743_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <3>; + clock-mult = <1>; + clock-output-names = "zg"; + }; + zx_clk: zx_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7743_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <3>; + clock-mult = <1>; + clock-output-names = "zx"; + }; + zs_clk: zs_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7743_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <6>; + clock-mult = <1>; + clock-output-names = "zs"; + }; + hp_clk: hp_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7743_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <12>; + clock-mult = <1>; + clock-output-names = "hp"; + }; + b_clk: b_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7743_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <12>; + clock-mult = <1>; + clock-output-names = "b"; + }; + p_clk: p_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7743_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <24>; + clock-mult = <1>; + clock-output-names = "p"; + }; + cl_clk: cl_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7743_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <48>; + clock-mult = <1>; + clock-output-names = "cl"; + }; + m2_clk: m2_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7743_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <8>; + clock-mult = <1>; + clock-output-names = "m2"; + }; + rclk_clk: rclk_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7743_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <(48 * 1024)>; + clock-mult = <1>; + clock-output-names = "rclk"; + }; + oscclk_clk: oscclk_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7743_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <(12 * 1024)>; + clock-mult = <1>; + clock-output-names = "oscclk"; + }; + zb3_clk: zb3_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7743_CLK_PLL3>; + #clock-cells = <0>; + clock-div = <4>; + clock-mult = <1>; + clock-output-names = "zb3"; + }; + zb3d2_clk: zb3d2_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7743_CLK_PLL3>; + #clock-cells = <0>; + clock-div = <8>; + clock-mult = <1>; + clock-output-names = "zb3d2"; + }; + ddr_clk: ddr_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7743_CLK_PLL3>; + #clock-cells = <0>; + clock-div = <8>; + clock-mult = <1>; + clock-output-names = "ddr"; + }; + mp_clk: mp_clk { + compatible = "fixed-factor-clock"; + clocks = <&pll1_div2_clk>; + #clock-cells = <0>; + clock-div = <15>; + clock-mult = <1>; + clock-output-names = "mp"; + }; + cp_clk: cp_clk { + compatible = "fixed-factor-clock"; + clocks = <&extal_clk>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; + clock-output-names = "cp"; + }; + + /* Gate clocks */ + mstp0_clks: mstp0_clks@e6150130 { + compatible = "renesas,r8a7743-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150130 0 4>, <0 0xe6150030 0 4>; + clocks = <&mp_clk>; + #clock-cells = <1>; + clock-indices = ; + clock-output-names = "msiof0"; + }; + mstp1_clks: mstp1_clks@e6150134 { + compatible = "renesas,r8a7743-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>; + clocks = <&zs_clk>, <&zs_clk>, <&p_clk>, + <&zg_clk>, <&zs_clk>, <&zs_clk>, + <&zs_clk>, <&p_clk>, <&p_clk>, + <&rclk_clk>, <&cp_clk>, <&zs_clk>, + <&zs_clk>, <&zs_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7743_CLK_VCP0 R8A7743_CLK_VPC0 + R8A7743_CLK_TMU1 R8A7743_CLK_3DG + R8A7743_CLK_2DDMAC R8A7743_CLK_FDP1_1 + R8A7743_CLK_FDP1_0 R8A7743_CLK_TMU3 + R8A7743_CLK_TMU2 R8A7743_CLK_CMT0 + R8A7743_CLK_TMU0 R8A7743_CLK_VSP1_DU1 + R8A7743_CLK_VSP1_DU0 R8A7743_CLK_VSP1_S + >; + clock-output-names = + "vcp0", "vpc0", "tmu1", "3dg", + "2ddmac", "fdp1-1", "fdp1-0", "tmu3", + "tmu2", "cmt0", "tmu0", "vsp1-du1", + "vsp1-du0", "vsp1-sy"; + }; + mstp2_clks: mstp2_clks@e6150138 { + compatible = "renesas,r8a7743-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>; + clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>, + <&mp_clk>, <&mp_clk>, <&mp_clk>, + <&mp_clk>, <&mp_clk>, <&zs_clk>, + <&zs_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7743_CLK_SCIFA2 R8A7743_CLK_SCIFA1 + R8A7743_CLK_SCIFA0 R8A7743_CLK_MSIOF2 + R8A7743_CLK_SCIFB0 R8A7743_CLK_SCIFB1 + R8A7743_CLK_MSIOF1 R8A7743_CLK_SCIFB2 + R8A7743_CLK_SYS_DMAC1 + R8A7743_CLK_SYS_DMAC0 + >; + clock-output-names = + "scifa2", "scifa1", "scifa0", "msiof2", + "scifb0", "scifb1", "msiof1", "scifb2", + "sys-dmac1", "sys-dmac0"; + }; + mstp3_clks: mstp3_clks@e615013c { + compatible = "renesas,r8a7743-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe615013c 0 4>, <0 0xe6150048 0 4>; + clocks = <&cp_clk>, <&sd3_clk>, <&sd2_clk>, + <&cpg_clocks R8A7743_CLK_SD0>, + <&mmc0_clk>, <&hp_clk>, <&mp_clk>, + <&hp_clk>, <&mp_clk>, <&rclk_clk>, + <&hp_clk>, <&hp_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7743_CLK_TPU0 R8A7743_CLK_SDHI3 + R8A7743_CLK_SDHI2 R8A7743_CLK_SDHI0 + R8A7743_CLK_MMCIF0 R8A7743_CLK_IIC0 + R8A7743_CLK_PCIEC R8A7743_CLK_IIC1 + R8A7743_CLK_SSUSB R8A7743_CLK_CMT1 + R8A7743_CLK_USBDMAC0 + R8A7743_CLK_USBDMAC1 + >; + clock-output-names = + "tpu0", "sdhi3", "sdhi2", "sdhi0", + "mmcif0", "i2c7", "pciec", "i2c8", + "ssusb", "cmt1", "usbdmac0", + "usbdmac1"; + }; + mstp4_clks: mstp4_clks@e6150140 { + compatible = "renesas,r8a7743-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>; + clocks = <&cp_clk>; + #clock-cells = <1>; + clock-indices = ; + clock-output-names = "irqc"; + }; + mstp5_clks: mstp5_clks@e6150144 { + compatible = "renesas,r8a7743-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150144 0 4>, <0 0xe615003c 0 4>; + clocks = <&hp_clk>, <&hp_clk>, + <&extal_clk>, <&p_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7743_CLK_AUDIO_DMAC0 + R8A7743_CLK_AUDIO_DMAC1 + R8A7743_CLK_THERMAL R8A7743_CLK_PWM + >; + clock-output-names = "audmac0", "audmac1", + "thermal", "pwm"; + }; + mstp7_clks: mstp7_clks@e615014c { + compatible = "renesas,r8a7743-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>; + clocks = <&mp_clk>, <&hp_clk>, <&zs_clk>, + <&p_clk>, <&p_clk>, <&zs_clk>, + <&zs_clk>, <&p_clk>, <&p_clk>, + <&p_clk>, <&p_clk>, <&zx_clk>, + <&zx_clk>, <&zx_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7743_CLK_USB_EHCI R8A7743_CLK_HSUSB + R8A7743_CLK_HSCIF2 R8A7743_CLK_SCIF5 + R8A7743_CLK_SCIF4 R8A7743_CLK_HSCIF1 + R8A7743_CLK_HSCIF0 R8A7743_CLK_SCIF3 + R8A7743_CLK_SCIF2 R8A7743_CLK_SCIF1 + R8A7743_CLK_SCIF0 R8A7743_CLK_DU1 + R8A7743_CLK_DU0 R8A7743_CLK_LVDS0 + >; + clock-output-names = + "ehci", "hsusb", "hscif2", "scif5", + "scif4", "hscif1", "hscif0", "scif3", + "scif2", "scif1", "scif0", "du1", + "du0", "lvds0"; + }; + mstp8_clks: mstp8_clks@e6150990 { + compatible = "renesas,r8a7743-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>; + clocks = <&zx_clk>, <&zg_clk>, <&zg_clk>, + <&zg_clk>, <&hp_clk>, <&p_clk>, + <&zs_clk>, <&zs_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7743_CLK_IPMMU_SGX + R8A7743_CLK_VIN2 R8A7743_CLK_VIN1 + R8A7743_CLK_VIN0 R8A7743_CLK_ETHERAVB + R8A7743_CLK_ETHER R8A7743_CLK_SATA1 + R8A7743_CLK_SATA0 + >; + clock-output-names = + "ipmmu_sgx", "vin2", "vin1", "vin0", + "etheravb", "ether", "sata1", "sata0"; + }; + mstp9_clks: mstp9_clks@e6150994 { + compatible = "renesas,r8a7743-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150994 0 4>, <0 0xe61509a4 0 4>; + clocks = <&cp_clk>, <&cp_clk>, <&cp_clk>, + <&cp_clk>, <&cp_clk>, <&cp_clk>, + <&cp_clk>, <&cp_clk>, <&p_clk>, + <&p_clk>, + <&cpg_clocks R8A7743_CLK_QSPI>, + <&hp_clk>, <&cp_clk>, <&hp_clk>, + <&hp_clk>, <&hp_clk>, <&hp_clk>, + <&hp_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7743_CLK_GPIO7 R8A7743_CLK_GPIO6 + R8A7743_CLK_GPIO5 R8A7743_CLK_GPIO4 + R8A7743_CLK_GPIO3 R8A7743_CLK_GPIO2 + R8A7743_CLK_GPIO1 R8A7743_CLK_GPIO0 + R8A7743_CLK_RCAN1 R8A7743_CLK_RCAN0 + R8A7743_CLK_QSPI_MOD R8A7743_CLK_I2C5 + R8A7743_CLK_IICDVFS R8A7743_CLK_I2C4 + R8A7743_CLK_I2C3 R8A7743_CLK_I2C2 + R8A7743_CLK_I2C1 R8A7743_CLK_I2C0 + >; + clock-output-names = + "gpio7", "gpio6", "gpio5", "gpio4", + "gpio3", "gpio2", "gpio1", "gpio0", + "rcan1", "rcan0", "qspi_mod", "i2c5", + "i2c6", "i2c4", "i2c3", "i2c2", "i2c1", + "i2c0"; + }; + mstp10_clks: mstp10_clks@e6150998 { + compatible = "renesas,r8a7743-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150998 0 4>, <0 0xe61509a8 0 4>; + clocks = <&p_clk>, + <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, + <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, + <&p_clk>, <&p_clk>, + <&p_clk>, + <&mstp10_clks R8A7743_CLK_SCU_ALL>, + <&mstp10_clks R8A7743_CLK_SCU_ALL>, + <&mstp10_clks R8A7743_CLK_SCU_ALL>, + <&mstp10_clks R8A7743_CLK_SCU_ALL>, + <&mstp10_clks R8A7743_CLK_SCU_ALL>, + <&mstp10_clks R8A7743_CLK_SCU_ALL>, + <&mstp10_clks R8A7743_CLK_SCU_ALL>, + <&mstp10_clks R8A7743_CLK_SCU_ALL>, + <&mstp10_clks R8A7743_CLK_SCU_ALL>, + <&mstp10_clks R8A7743_CLK_SCU_ALL>, + <&mstp10_clks R8A7743_CLK_SCU_ALL>, + <&mstp10_clks R8A7743_CLK_SCU_ALL>, + <&mstp10_clks R8A7743_CLK_SCU_ALL>, + <&mstp10_clks R8A7743_CLK_SCU_ALL>; + + #clock-cells = <1>; + clock-indices = < + R8A7743_CLK_SSI_ALL + R8A7743_CLK_SSI9 R8A7743_CLK_SSI8 + R8A7743_CLK_SSI7 R8A7743_CLK_SSI6 + R8A7743_CLK_SSI5 R8A7743_CLK_SSI4 + R8A7743_CLK_SSI3 R8A7743_CLK_SSI2 + R8A7743_CLK_SSI1 R8A7743_CLK_SSI0 + R8A7743_CLK_SCU_ALL + R8A7743_CLK_SCU_DVC1 + R8A7743_CLK_SCU_DVC0 + R8A7743_CLK_SCU_CTU1_MIX1 + R8A7743_CLK_SCU_CTU0_MIX0 + R8A7743_CLK_SCU_SRC9 + R8A7743_CLK_SCU_SRC8 + R8A7743_CLK_SCU_SRC7 + R8A7743_CLK_SCU_SRC6 + R8A7743_CLK_SCU_SRC5 + R8A7743_CLK_SCU_SRC4 + R8A7743_CLK_SCU_SRC3 + R8A7743_CLK_SCU_SRC2 + R8A7743_CLK_SCU_SRC1 + R8A7743_CLK_SCU_SRC0 + >; + clock-output-names = + "ssi-all", + "ssi9", "ssi8", "ssi7", "ssi6", "ssi5", + "ssi4", "ssi3", "ssi2", "ssi1", "ssi0", + "scu-all", + "scu-dvc1", "scu-dvc0", + "scu-ctu1-mix1", "scu-ctu0-mix0", + "scu-src9", "scu-src8", "scu-src7", + "scu-src6", "scu-src5", "scu-src4", + "scu-src3", "scu-src2", "scu-src1", + "scu-src0"; + }; + mstp11_clks: mstp11_clks@e615099c { + compatible = "renesas,r8a7743-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe615099c 0 4>, <0 0xe61509ac 0 4>; + clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7743_CLK_SCIFA3 R8A7743_CLK_SCIFA4 + R8A7743_CLK_SCIFA5 + >; + clock-output-names = "scifa3", "scifa4", + "scifa5"; + }; + }; }; /* External root clock */ From 5d409e024cff7b5bfa974d730386b813e9b95434 Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Thu, 31 Aug 2017 15:34:12 +0100 Subject: [PATCH 0111/1149] ARM: dts: r8a7743: add SYS-DMAC support Describe SYS-DMAC0/1 in the R8A7743 device tree. Based on the original (and large) patch by Dmitry Shifrin . Signed-off-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 6ed5ed500a5c67eed7b76e5353f7bca3b3daae92) Signed-off-by: Biju Das Conflicts: arch/arm/boot/dts/r8a7743.dtsi Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 62 ++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 341d56fd5bf7..310d6e6db9e0 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -72,6 +72,68 @@ IRQ_TYPE_LEVEL_LOW)>; }; + dmac0: dma-controller@e6700000 { + compatible = "renesas,rcar-dmac"; + reg = <0 0xe6700000 0 0x20000>; + interrupts = ; + interrupt-names = "error", + "ch0", "ch1", "ch2", "ch3", + "ch4", "ch5", "ch6", "ch7", + "ch8", "ch9", "ch10", "ch11", + "ch12", "ch13", "ch14"; + clocks = <&mstp2_clks R8A7743_CLK_SYS_DMAC0>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <15>; + }; + + dmac1: dma-controller@e6720000 { + compatible = "renesas,rcar-dmac"; + reg = <0 0xe6720000 0 0x20000>; + interrupts = ; + interrupt-names = "error", + "ch0", "ch1", "ch2", "ch3", + "ch4", "ch5", "ch6", "ch7", + "ch8", "ch9", "ch10", "ch11", + "ch12", "ch13", "ch14"; + clocks = <&mstp2_clks R8A7743_CLK_SYS_DMAC1>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <15>; + }; + clocks { #address-cells = <2>; #size-cells = <2>; From 435ea80e5a2c1a18314e7deb1bad4b5a7674fddf Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Thu, 31 Aug 2017 15:34:13 +0100 Subject: [PATCH 0112/1149] ARM: dts: r8a7743: add [H]SCIF{A|B} support Describe [H]SCIF{|A|B} ports in the R8A7743 device tree. Based on the original (and large) patch by Dmitry Shifrin . Signed-off-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven [simon: consistently use tabs for indentation] Signed-off-by: Simon Horman (cherry picked from commit 809c01342691469456489bbe87d2d79ed9638631) Signed-off-by: Biju Das Conflicts: arch/arm/boot/dts/r8a7743.dtsi Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 243 +++++++++++++++++++++++++++++++++ 1 file changed, 243 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 310d6e6db9e0..4c5a31705abb 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -134,6 +134,249 @@ dma-channels = <15>; }; + scifa0: serial@e6c40000 { + compatible = "renesas,scifa-r8a7743", "renesas,scifa"; + reg = <0 0xe6c40000 0 0x40>; + interrupts = ; + clocks = <&mstp2_clks R8A7743_CLK_SCIFA0>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x21>, <&dmac0 0x22>, + <&dmac1 0x21>, <&dmac1 0x22>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifa1: serial@e6c50000 { + compatible = "renesas,scifa-r8a7743", "renesas,scifa"; + reg = <0 0xe6c50000 0 0x40>; + interrupts = ; + clocks = <&mstp2_clks R8A7743_CLK_SCIFA1>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x25>, <&dmac0 0x26>, + <&dmac1 0x25>, <&dmac1 0x26>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifa2: serial@e6c60000 { + compatible = "renesas,scifa-r8a7743", "renesas,scifa"; + reg = <0 0xe6c60000 0 0x40>; + interrupts = ; + clocks = <&mstp2_clks R8A7743_CLK_SCIFA2>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x27>, <&dmac0 0x28>, + <&dmac1 0x27>, <&dmac1 0x28>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifa3: serial@e6c70000 { + compatible = "renesas,scifa-r8a7743", "renesas,scifa"; + reg = <0 0xe6c70000 0 0x40>; + interrupts = ; + clocks = <&mstp11_clks R8A7743_CLK_SCIFA3>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x1b>, <&dmac0 0x1c>, + <&dmac1 0x1b>, <&dmac1 0x1c>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifa4: serial@e6c78000 { + compatible = "renesas,scifa-r8a7743", "renesas,scifa"; + reg = <0 0xe6c78000 0 0x40>; + interrupts = ; + clocks = <&mstp11_clks R8A7743_CLK_SCIFA4>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x1f>, <&dmac0 0x20>, + <&dmac1 0x1f>, <&dmac1 0x20>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifa5: serial@e6c80000 { + compatible = "renesas,scifa-r8a7743", "renesas,scifa"; + reg = <0 0xe6c80000 0 0x40>; + interrupts = ; + clocks = <&mstp11_clks R8A7743_CLK_SCIFA5>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x23>, <&dmac0 0x24>, + <&dmac1 0x23>, <&dmac1 0x24>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifb0: serial@e6c20000 { + compatible = "renesas,scifb-r8a7743", "renesas,scifb"; + reg = <0 0xe6c20000 0 0x100>; + interrupts = ; + clocks = <&mstp2_clks R8A7743_CLK_SCIFB0>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x3d>, <&dmac0 0x3e>, + <&dmac1 0x3d>, <&dmac1 0x3e>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifb1: serial@e6c30000 { + compatible = "renesas,scifb-r8a7743", "renesas,scifb"; + reg = <0 0xe6c30000 0 0x100>; + interrupts = ; + clocks = <&mstp2_clks R8A7743_CLK_SCIFB1>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x19>, <&dmac0 0x1a>, + <&dmac1 0x19>, <&dmac1 0x1a>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifb2: serial@e6ce0000 { + compatible = "renesas,scifb-r8a7743", "renesas,scifb"; + reg = <0 0xe6ce0000 0 0x100>; + interrupts = ; + clocks = <&mstp2_clks R8A7743_CLK_SCIFB2>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x1d>, <&dmac0 0x1e>, + <&dmac1 0x1d>, <&dmac1 0x1e>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scif0: serial@e6e60000 { + compatible = "renesas,scif-r8a7743", "renesas,scif"; + reg = <0 0xe6e60000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A7743_CLK_SCIF0>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x29>, <&dmac0 0x2a>, + <&dmac1 0x29>, <&dmac1 0x2a>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scif1: serial@e6e68000 { + compatible = "renesas,scif-r8a7743", "renesas,scif"; + reg = <0 0xe6e68000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A7743_CLK_SCIF1>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x2d>, <&dmac0 0x2e>, + <&dmac1 0x2d>, <&dmac1 0x2e>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scif2: serial@e6e58000 { + compatible = "renesas,scif-r8a7743", "renesas,scif"; + reg = <0 0xe6e58000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A7743_CLK_SCIF2>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x2b>, <&dmac0 0x2c>, + <&dmac1 0x2b>, <&dmac1 0x2c>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scif3: serial@e6ea8000 { + compatible = "renesas,scif-r8a7743", "renesas,scif"; + reg = <0 0xe6ea8000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A7743_CLK_SCIF3>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x2f>, <&dmac0 0x30>, + <&dmac1 0x2f>, <&dmac1 0x30>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scif4: serial@e6ee0000 { + compatible = "renesas,scif-r8a7743", "renesas,scif"; + reg = <0 0xe6ee0000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A7743_CLK_SCIF4>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0xfb>, <&dmac0 0xfc>, + <&dmac1 0xfb>, <&dmac1 0xfc>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scif5: serial@e6ee8000 { + compatible = "renesas,scif-r8a7743", "renesas,scif"; + reg = <0 0xe6ee8000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A7743_CLK_SCIF5>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0xfd>, <&dmac0 0xfe>, + <&dmac1 0xfd>, <&dmac1 0xfe>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + hscif0: serial@e62c0000 { + compatible = "renesas,hscif-r8a7743", "renesas,hscif"; + reg = <0 0xe62c0000 0 0x60>; + interrupts = ; + clocks = <&mstp7_clks R8A7743_CLK_HSCIF0>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x39>, <&dmac0 0x3a>, + <&dmac1 0x39>, <&dmac1 0x3a>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + hscif1: serial@e62c8000 { + compatible = "renesas,hscif-r8a7743", "renesas,hscif"; + reg = <0 0xe62c8000 0 0x60>; + interrupts = ; + clocks = <&mstp7_clks R8A7743_CLK_HSCIF1>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x4d>, <&dmac0 0x4e>, + <&dmac1 0x4d>, <&dmac1 0x4e>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + hscif2: serial@e62d0000 { + compatible = "renesas,hscif-r8a7743", "renesas,hscif"; + reg = <0 0xe62d0000 0 0x60>; + interrupts = ; + clocks = <&mstp7_clks R8A7743_CLK_HSCIF2>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x3b>, <&dmac0 0x3c>, + <&dmac1 0x3b>, <&dmac1 0x3c>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + clocks { #address-cells = <2>; #size-cells = <2>; From c40f2ce4b2b45276780ab7f1f59f92de499289ef Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Thu, 31 Aug 2017 15:34:14 +0100 Subject: [PATCH 0113/1149] ARM: dts: r8a7743: add Ether support Define the generic R8A7743 part of the Ether device node. Based on the original (and large) patch by Dmitry Shifrin . Signed-off-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 75f97fb45e6297e3fbaf837fc30850cf724c8f83) Signed-off-by: Biju Das Conflicts: arch/arm/boot/dts/r8a7743.dtsi Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 4c5a31705abb..91ee5676ccfa 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -377,6 +377,18 @@ status = "disabled"; }; + ether: ethernet@ee700000 { + compatible = "renesas,ether-r8a7743"; + reg = <0 0xee700000 0 0x400>; + interrupts = ; + clocks = <&mstp8_clks R8A7743_CLK_ETHER>; + power-domains = <&cpg_clocks>; + phy-mode = "rmii"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + clocks { #address-cells = <2>; #size-cells = <2>; From bdcd17cc4219a6a4369b0a7e839f692c14224998 Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Thu, 31 Aug 2017 15:34:15 +0100 Subject: [PATCH 0114/1149] ARM: dts: r8a7743: add IRQC support Describe the IRQC interrupt controller in the R8A7743 device tree. Signed-off-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit ef0ca50774495c4ca4d1211252c8ee5af5136187) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 91ee5676ccfa..c58f150c9cab 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -60,6 +60,25 @@ IRQ_TYPE_LEVEL_HIGH)>; }; + irqc: interrupt-controller@e61c0000 { + compatible = "renesas,irqc-r8a7743", "renesas,irqc"; + #interrupt-cells = <2>; + interrupt-controller; + reg = <0 0xe61c0000 0 0x200>; + interrupts = , + , + , + , + , + , + , + , + , + ; + clocks = <&mstp4_clks R8A7743_CLK_IRQC>; + power-domains = <&cpg_clocks>; + }; + timer { compatible = "arm,armv7-timer"; interrupts = Date: Thu, 31 Aug 2017 15:34:16 +0100 Subject: [PATCH 0115/1149] ARM: dts: r8a7743: Link ARM GIC to clock and clock domain Link the ARM GIC to the INTC-SYS module clock, and add it to the SYSC "always-on" PM Domain, so it can be power managed using that clock. Note that currently the GIC-400 driver doesn't support module clocks nor Runtime PM, so this must be handled as a critical clock. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 7add1da17ac8d5c4a2ecc967843ca5b55ce35fa6) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index c58f150c9cab..523082273437 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -58,6 +58,9 @@ <0 0xf1006000 0 0x2000>; interrupts = ; + clocks = <&mstp4_clks R8A7743_CLK_INTC_SYS>; + clock-names = "clk"; + power-domains = <&cpg_clocks>; }; irqc: interrupt-controller@e61c0000 { From 21147ec3a84a8fd21ba10933b5d2f3cbfb125fcb Mon Sep 17 00:00:00 2001 From: Marc Zyngier Date: Thu, 31 Aug 2017 15:34:17 +0100 Subject: [PATCH 0116/1149] ARM: DTS: Fix register map for virt-capable GIC Since everybody copied my own mistake from the DT binding example, let's address all the offenders in one swift go. Most of them got the CPU interface size wrong (4kB, while it should be 8kB), except for both keystone platforms which got the control interface wrong (4kB instead of 8kB). In a few cases where I knew for sure what implementation was used, I've added the "arm,gic-400" compatible string. I'm 99% sure that this is what everyone is using, but short of having the TRM for all the other SoCs, I've left them alone. Acked-by: Shawn Guo Acked-by: Tony Lindgren Acked-by: Santosh Shilimkar Acked-by: Krzysztof Kozlowski Acked-by: Maxime Ripard Acked-by: Antoine Tenart Acked-by: Arnd Bergmann Acked-by: Matthias Brugger Acked-by: Heiko Stuebner Reviewed-by: Javier Martinez Canillas Signed-off-by: Marc Zyngier Signed-off-by: Arnd Bergmann (cherry picked from commit 387720c93812f1e702c20c667cb003a356e24a6c) Signed-off-by: Biju Das [Backported only for r8a7743 SoC] Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 523082273437..8aa869e16112 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -53,7 +53,7 @@ #address-cells = <0>; interrupt-controller; reg = <0 0xf1001000 0 0x1000>, - <0 0xf1002000 0 0x1000>, + <0 0xf1002000 0 0x2000>, <0 0xf1004000 0 0x2000>, <0 0xf1006000 0 0x2000>; interrupts = Date: Thu, 31 Aug 2017 15:34:18 +0100 Subject: [PATCH 0117/1149] ARM: dts: r8a7743: Fix SCIFB0 dmas indentation Fixes: 809c013426914694 ("ARM: dts: r8a7743: add [H]SCIF{A|B} support") Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit c8290f9f2e1d119512e1821fc13d1d145aa23f77) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 8aa869e16112..9227ab4ae013 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -241,7 +241,7 @@ clocks = <&mstp2_clks R8A7743_CLK_SCIFB0>; clock-names = "sci_ick"; dmas = <&dmac0 0x3d>, <&dmac0 0x3e>, - <&dmac1 0x3d>, <&dmac1 0x3e>; + <&dmac1 0x3d>, <&dmac1 0x3e>; dma-names = "tx", "rx", "tx", "rx"; power-domains = <&cpg_clocks>; status = "disabled"; From 28e67be8795f62da726117f99d87cd9e74312f85 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 31 Aug 2017 15:34:19 +0100 Subject: [PATCH 0118/1149] ARM: dts: r8a7743: Remove unit-address and reg from integrated cache The Cortex-A15 cache controller is an integrated controller, and thus the device node representing it should not have a unit-addresses or reg property. Fixes: 34e8d993a68ae459 ("ARM: dts: r8a7743: initial SoC device tree") Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 37f0c804e57ac93ca37a98aa5a210c6b73e6572a) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 9227ab4ae013..fde63273dfa0 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -31,9 +31,8 @@ next-level-cache = <&L2_CA15>; }; - L2_CA15: cache-controller@0 { + L2_CA15: cache-controller-0 { compatible = "cache"; - reg = <0>; cache-unified; cache-level = <2>; }; From a299a9cec0b7eba18d5b51e03144cde4358b3186 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 31 Aug 2017 15:34:20 +0100 Subject: [PATCH 0119/1149] ARM: dts: iwg20m: Add iWave RZG1M Qseven SOM Add support for iWave RZG1M Qseven System On Module. http://www.iwavesystems.com/rz-g1m-qseven-module.html Signed-off-by: Biju Das Reviewed-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit aabf13bac0046a1add4a3c39881ffb0abe692542) Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743-iwg20m.dtsi | 29 +++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 arch/arm/boot/dts/r8a7743-iwg20m.dtsi diff --git a/arch/arm/boot/dts/r8a7743-iwg20m.dtsi b/arch/arm/boot/dts/r8a7743-iwg20m.dtsi new file mode 100644 index 000000000000..001ca9144f4b --- /dev/null +++ b/arch/arm/boot/dts/r8a7743-iwg20m.dtsi @@ -0,0 +1,29 @@ +/* + * Device Tree Source for the iWave-RZG1M-20M Qseven SOM + * + * Copyright (C) 2017 Renesas Electronics Corp. + * + * This file is licensed under the terms of the GNU General Public License + * version 2. This program is licensed "as is" without any warranty of any + * kind, whether express or implied. + */ + +#include "r8a7743.dtsi" + +/ { + compatible = "iwave,g20m", "renesas,r8a7743"; + + memory@40000000 { + device_type = "memory"; + reg = <0 0x40000000 0 0x20000000>; + }; + + memory@200000000 { + device_type = "memory"; + reg = <2 0x00000000 0 0x20000000>; + }; +}; + +&extal_clk { + clock-frequency = <20000000>; +}; From 5a45798adb6afe933155ce461bed8269ed183c7e Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 31 Aug 2017 15:34:21 +0100 Subject: [PATCH 0120/1149] ARM: dts: iwg20d-q7: Add support for iWave G20D-Q7 board based on RZ/G1M Add support for iWave RainboW-G20D-Qseven board based on RZ/G1M. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit ad2c0558d0494b420cadd6e887ddab2cd4e27e48) Conflicts: arch/arm/boot/dts/Makefile Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/r8a7743-iwg20d-q7.dts | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 arch/arm/boot/dts/r8a7743-iwg20d-q7.dts diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 30bbc3746130..f8fd69254b61 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -544,6 +544,7 @@ dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += \ r7s72100-genmai.dtb \ r8a73a4-ape6evm.dtb \ r8a7740-armadillo800eva.dtb \ + r8a7743-iwg20d-q7.dtb \ r8a7778-bockw.dtb \ r8a7779-marzen.dtb \ r8a7790-lager.dtb \ diff --git a/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts b/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts new file mode 100644 index 000000000000..9b54783cc2a5 --- /dev/null +++ b/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts @@ -0,0 +1,25 @@ +/* + * Device Tree Source for the iWave-RZG1M Qseven carrier board + * + * Copyright (C) 2017 Renesas Electronics Corp. + * + * This file is licensed under the terms of the GNU General Public License + * version 2. This program is licensed "as is" without any warranty of any + * kind, whether express or implied. + */ + +/dts-v1/; +#include "r8a7743-iwg20m.dtsi" + +/ { + model = "iWave Systems RainboW-G20D-Qseven board based on RZ/G1M"; + compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7743"; + + aliases { + serial0 = &scif0; + }; +}; + +&scif0 { + status = "okay"; +}; From 4da08cc671406a6d902518f6f111217239b9dce0 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Thu, 31 Aug 2017 15:34:22 +0100 Subject: [PATCH 0121/1149] ARM: shmobile: defconfig: Enable r8a774[35] SoCs Enable recently added r8a7743 (RZ/G1M) and r8a7745 (RZ/G1E) SoCs. Signed-off-by: Simon Horman Acked-by: Geert Uytterhoeven (cherry picked from commit d234e29dae04b224a63e39bc29938fa77819b3f1) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/configs/shmobile_defconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/configs/shmobile_defconfig b/arch/arm/configs/shmobile_defconfig index 3aef019c0de7..fb8094aa919c 100644 --- a/arch/arm/configs/shmobile_defconfig +++ b/arch/arm/configs/shmobile_defconfig @@ -14,6 +14,8 @@ CONFIG_ARCH_EMEV2=y CONFIG_ARCH_R7S72100=y CONFIG_ARCH_R8A73A4=y CONFIG_ARCH_R8A7740=y +CONFIG_ARCH_R8A7743=y +CONFIG_ARCH_R8A7745=y CONFIG_ARCH_R8A7778=y CONFIG_ARCH_R8A7779=y CONFIG_ARCH_R8A7790=y From 4f010d3faec109ba6187b8d156f4dca05f13f941 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Thu, 31 Aug 2017 15:34:23 +0100 Subject: [PATCH 0122/1149] ARM: multi_v7_defconfig: Enable r8a774[35] SoCs Enable recently added r8a7743 (RZ/G1M) and r8a7745 (RZ/G1E) SoCs. Signed-off-by: Simon Horman Acked-by: Geert Uytterhoeven (cherry picked from commit e37278d83e348eb53029452e65892780359b6bea) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/configs/multi_v7_defconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig index cd7b198fc79e..f1ba3fbec768 100644 --- a/arch/arm/configs/multi_v7_defconfig +++ b/arch/arm/configs/multi_v7_defconfig @@ -80,6 +80,8 @@ CONFIG_ARCH_EMEV2=y CONFIG_ARCH_R7S72100=y CONFIG_ARCH_R8A73A4=y CONFIG_ARCH_R8A7740=y +CONFIG_ARCH_R8A7743=y +CONFIG_ARCH_R8A7745=y CONFIG_ARCH_R8A7778=y CONFIG_ARCH_R8A7779=y CONFIG_ARCH_R8A7790=y From 150c93757c219a45c30e64e9917e73fd6ec2a1f4 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 10 Aug 2017 14:14:54 +0100 Subject: [PATCH 0123/1149] pinctrl: sh-pfc: Add PINMUX_SINGLE() Add a macro to describe a pinmux configuration for a single-function pin. Signed-off-by: Geert Uytterhoeven Acked-by: Kuninori Morimoto Acked-by: Laurent Pinchart (cherry picked from commit dcd803bebcfc0fae9c2d3d5063210e9225fe4b1b) Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/sh_pfc.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/sh_pfc.h b/drivers/pinctrl/sh-pfc/sh_pfc.h index 7b373d43d981..fb2de5297609 100644 --- a/drivers/pinctrl/sh-pfc/sh_pfc.h +++ b/drivers/pinctrl/sh-pfc/sh_pfc.h @@ -198,6 +198,14 @@ struct sh_pfc_soc_info { #define PINMUX_IPSR_MSEL(ipsr, fn, ms) \ PINMUX_DATA(fn##_MARK, FN_##ms, FN_##ipsr, FN_##fn) +/* + * Describe a pinmux configuration for a single-function pin with GPIO + * capability. + * - fn: Function name + */ +#define PINMUX_SINGLE(fn) \ + PINMUX_DATA(fn##_MARK, FN_##fn) + /* * GP port style (32 ports banks) */ From 2b27dea25bec0aa86fbeb9ed3d302d64bd094d12 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 10 Aug 2017 14:14:55 +0100 Subject: [PATCH 0124/1149] pinctrl: sh-pfc: r8a7791: Use PINMUX_SINGLE() instead of raw PINMUX_DATA() Signed-off-by: Geert Uytterhoeven Acked-by: Kuninori Morimoto Acked-by: Laurent Pinchart (cherry picked from commit bc3341ddaea26756c76965a7e0e95c6a8e01c857) Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 34 ++++++++++++++-------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c index 42ffa8708abc..d3e087693645 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c @@ -787,23 +787,23 @@ enum { static const u16 pinmux_data[] = { PINMUX_DATA_GP_ALL(), /* PINMUX_DATA(GP_M_N_DATA, GP_M_N_FN...), */ - PINMUX_DATA(EX_CS0_N_MARK, FN_EX_CS0_N), - PINMUX_DATA(RD_N_MARK, FN_RD_N), - PINMUX_DATA(AUDIO_CLKA_MARK, FN_AUDIO_CLKA), - PINMUX_DATA(VI0_CLK_MARK, FN_VI0_CLK), - PINMUX_DATA(VI0_DATA0_VI0_B0_MARK, FN_VI0_DATA0_VI0_B0), - PINMUX_DATA(VI0_DATA1_VI0_B1_MARK, FN_VI0_DATA1_VI0_B1), - PINMUX_DATA(VI0_DATA2_VI0_B2_MARK, FN_VI0_DATA2_VI0_B2), - PINMUX_DATA(VI0_DATA4_VI0_B4_MARK, FN_VI0_DATA4_VI0_B4), - PINMUX_DATA(VI0_DATA5_VI0_B5_MARK, FN_VI0_DATA5_VI0_B5), - PINMUX_DATA(VI0_DATA6_VI0_B6_MARK, FN_VI0_DATA6_VI0_B6), - PINMUX_DATA(VI0_DATA7_VI0_B7_MARK, FN_VI0_DATA7_VI0_B7), - PINMUX_DATA(USB0_PWEN_MARK, FN_USB0_PWEN), - PINMUX_DATA(USB0_OVC_MARK, FN_USB0_OVC), - PINMUX_DATA(USB1_PWEN_MARK, FN_USB1_PWEN), - PINMUX_DATA(USB1_OVC_MARK, FN_USB1_OVC), - PINMUX_DATA(DU0_DOTCLKIN_MARK, FN_DU0_DOTCLKIN), - PINMUX_DATA(SD1_CLK_MARK, FN_SD1_CLK), + PINMUX_SINGLE(EX_CS0_N), + PINMUX_SINGLE(RD_N), + PINMUX_SINGLE(AUDIO_CLKA), + PINMUX_SINGLE(VI0_CLK), + PINMUX_SINGLE(VI0_DATA0_VI0_B0), + PINMUX_SINGLE(VI0_DATA1_VI0_B1), + PINMUX_SINGLE(VI0_DATA2_VI0_B2), + PINMUX_SINGLE(VI0_DATA4_VI0_B4), + PINMUX_SINGLE(VI0_DATA5_VI0_B5), + PINMUX_SINGLE(VI0_DATA6_VI0_B6), + PINMUX_SINGLE(VI0_DATA7_VI0_B7), + PINMUX_SINGLE(USB0_PWEN), + PINMUX_SINGLE(USB0_OVC), + PINMUX_SINGLE(USB1_PWEN), + PINMUX_SINGLE(USB1_OVC), + PINMUX_SINGLE(DU0_DOTCLKIN), + PINMUX_SINGLE(SD1_CLK), /* IPSR0 */ PINMUX_IPSR_DATA(IP0_0, D0), From bb5a96c8a0add34de7b45b03dd228cf1fd18e9c7 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 10 Aug 2017 14:14:56 +0100 Subject: [PATCH 0125/1149] pinctrl: sh-pfc: r8a7791: Add SCIF_CLK support Add pins, groups, and a function for SCIF_CLK, which is the external clock source for the Baud Rate Generator for External Clock (BRG) on (H)SCIF. Signed-off-by: Geert Uytterhoeven Acked-by: Linus Walleij (cherry picked from commit a4c8a6d2f6ed3686ce0cc789ed9213f579ebd4ad) Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c index d3e087693645..f8ec926bf4d0 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c @@ -3602,6 +3602,23 @@ static const unsigned int scifb2_data_d_pins[] = { static const unsigned int scifb2_data_d_mux[] = { SCIFB2_RXD_D_MARK, SCIFB2_TXD_D_MARK, }; + +/* - SCIF Clock ------------------------------------------------------------- */ +static const unsigned int scif_clk_pins[] = { + /* SCIF_CLK */ + RCAR_GP_PIN(2, 29), +}; +static const unsigned int scif_clk_mux[] = { + SCIF_CLK_MARK, +}; +static const unsigned int scif_clk_b_pins[] = { + /* SCIF_CLK */ + RCAR_GP_PIN(7, 19), +}; +static const unsigned int scif_clk_b_mux[] = { + SCIF_CLK_B_MARK, +}; + /* - SDHI0 ------------------------------------------------------------------ */ static const unsigned int sdhi0_data1_pins[] = { /* D0 */ @@ -4510,6 +4527,8 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(scifb2_data_c), SH_PFC_PIN_GROUP(scifb2_clk_c), SH_PFC_PIN_GROUP(scifb2_data_d), + SH_PFC_PIN_GROUP(scif_clk), + SH_PFC_PIN_GROUP(scif_clk_b), SH_PFC_PIN_GROUP(sdhi0_data1), SH_PFC_PIN_GROUP(sdhi0_data4), SH_PFC_PIN_GROUP(sdhi0_ctrl), @@ -4976,6 +4995,11 @@ static const char * const scifb2_groups[] = { "scifb2_data_d", }; +static const char * const scif_clk_groups[] = { + "scif_clk", + "scif_clk_b", +}; + static const char * const sdhi0_groups[] = { "sdhi0_data1", "sdhi0_data4", @@ -5126,6 +5150,7 @@ static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(scifb0), SH_PFC_FUNCTION(scifb1), SH_PFC_FUNCTION(scifb2), + SH_PFC_FUNCTION(scif_clk), SH_PFC_FUNCTION(sdhi0), SH_PFC_FUNCTION(sdhi1), SH_PFC_FUNCTION(sdhi2), From 3d0a0aed1883dc581394da27cb8198856d2b8d58 Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Thu, 10 Aug 2017 14:14:57 +0100 Subject: [PATCH 0126/1149] pinctrl: sh-pfc: r8a7791: add EtherAVB pin groups Add the EtherAVB pin groups to the R8A7791 PFC driver. Also add the copyright for all the Cogent Embedded's past work on this file. Signed-off-by: Sergei Shtylyov Signed-off-by: Geert Uytterhoeven (cherry picked from commit 59508084e10642e8533cfd82327486ed24c73af4) Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 93 ++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c index f8ec926bf4d0..2086b06e422f 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c @@ -2,6 +2,7 @@ * r8a7791 processor support - PFC hardware block. * * Copyright (C) 2013 Renesas Electronics Corporation + * Copyright (C) 2014-2015 Cogent Embedded, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 @@ -1740,6 +1741,82 @@ static const unsigned int audio_clkout_mux[] = { AUDIO_CLKOUT_MARK, }; +/* - AVB -------------------------------------------------------------------- */ +static const unsigned int avb_link_pins[] = { + RCAR_GP_PIN(5, 14), +}; +static const unsigned int avb_link_mux[] = { + AVB_LINK_MARK, +}; +static const unsigned int avb_magic_pins[] = { + RCAR_GP_PIN(5, 11), +}; +static const unsigned int avb_magic_mux[] = { + AVB_MAGIC_MARK, +}; +static const unsigned int avb_phy_int_pins[] = { + RCAR_GP_PIN(5, 16), +}; +static const unsigned int avb_phy_int_mux[] = { + AVB_PHY_INT_MARK, +}; +static const unsigned int avb_mdio_pins[] = { + RCAR_GP_PIN(5, 12), RCAR_GP_PIN(5, 9), +}; +static const unsigned int avb_mdio_mux[] = { + AVB_MDC_MARK, AVB_MDIO_MARK, +}; +static const unsigned int avb_mii_pins[] = { + RCAR_GP_PIN(5, 18), RCAR_GP_PIN(5, 19), RCAR_GP_PIN(5, 20), + RCAR_GP_PIN(5, 21), + + RCAR_GP_PIN(5, 0), RCAR_GP_PIN(5, 1), RCAR_GP_PIN(5, 2), + RCAR_GP_PIN(5, 3), + + RCAR_GP_PIN(5, 8), RCAR_GP_PIN(5, 13), RCAR_GP_PIN(5, 10), + RCAR_GP_PIN(5, 15), RCAR_GP_PIN(5, 26), RCAR_GP_PIN(5, 27), + RCAR_GP_PIN(5, 28), RCAR_GP_PIN(5, 29), +}; +static const unsigned int avb_mii_mux[] = { + AVB_TXD0_MARK, AVB_TXD1_MARK, AVB_TXD2_MARK, + AVB_TXD3_MARK, + + AVB_RXD0_MARK, AVB_RXD1_MARK, AVB_RXD2_MARK, + AVB_RXD3_MARK, + + AVB_RX_ER_MARK, AVB_RX_CLK_MARK, AVB_RX_DV_MARK, + AVB_CRS_MARK, AVB_TX_EN_MARK, AVB_TX_ER_MARK, + AVB_TX_CLK_MARK, AVB_COL_MARK, +}; +static const unsigned int avb_gmii_pins[] = { + RCAR_GP_PIN(5, 18), RCAR_GP_PIN(5, 19), RCAR_GP_PIN(5, 20), + RCAR_GP_PIN(5, 21), RCAR_GP_PIN(5, 22), RCAR_GP_PIN(5, 23), + RCAR_GP_PIN(5, 24), RCAR_GP_PIN(5, 25), + + RCAR_GP_PIN(5, 0), RCAR_GP_PIN(5, 1), RCAR_GP_PIN(5, 2), + RCAR_GP_PIN(5, 3), RCAR_GP_PIN(5, 4), RCAR_GP_PIN(5, 5), + RCAR_GP_PIN(5, 6), RCAR_GP_PIN(5, 7), + + RCAR_GP_PIN(5, 8), RCAR_GP_PIN(5, 13), RCAR_GP_PIN(5, 10), + RCAR_GP_PIN(5, 15), RCAR_GP_PIN(5, 30), RCAR_GP_PIN(5, 17), + RCAR_GP_PIN(5, 26), RCAR_GP_PIN(5, 27), RCAR_GP_PIN(5, 28), + RCAR_GP_PIN(5, 29), +}; +static const unsigned int avb_gmii_mux[] = { + AVB_TXD0_MARK, AVB_TXD1_MARK, AVB_TXD2_MARK, + AVB_TXD3_MARK, AVB_TXD4_MARK, AVB_TXD5_MARK, + AVB_TXD6_MARK, AVB_TXD7_MARK, + + AVB_RXD0_MARK, AVB_RXD1_MARK, AVB_RXD2_MARK, + AVB_RXD3_MARK, AVB_RXD4_MARK, AVB_RXD5_MARK, + AVB_RXD6_MARK, AVB_RXD7_MARK, + + AVB_RX_ER_MARK, AVB_RX_CLK_MARK, AVB_RX_DV_MARK, + AVB_CRS_MARK, AVB_GTX_CLK_MARK, AVB_GTXREFCLK_MARK, + AVB_TX_EN_MARK, AVB_TX_ER_MARK, AVB_TX_CLK_MARK, + AVB_COL_MARK, +}; + /* - CAN -------------------------------------------------------------------- */ static const unsigned int can0_data_pins[] = { @@ -4275,6 +4352,12 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(audio_clk_b_b), SH_PFC_PIN_GROUP(audio_clk_c), SH_PFC_PIN_GROUP(audio_clkout), + SH_PFC_PIN_GROUP(avb_link), + SH_PFC_PIN_GROUP(avb_magic), + SH_PFC_PIN_GROUP(avb_phy_int), + SH_PFC_PIN_GROUP(avb_mdio), + SH_PFC_PIN_GROUP(avb_mii), + SH_PFC_PIN_GROUP(avb_gmii), SH_PFC_PIN_GROUP(can0_data), SH_PFC_PIN_GROUP(can0_data_b), SH_PFC_PIN_GROUP(can0_data_c), @@ -4616,6 +4699,15 @@ static const char * const audio_clk_groups[] = { "audio_clkout", }; +static const char * const avb_groups[] = { + "avb_link", + "avb_magic", + "avb_phy_int", + "avb_mdio", + "avb_mii", + "avb_gmii", +}; + static const char * const can0_groups[] = { "can0_data", "can0_data_b", @@ -5105,6 +5197,7 @@ static const char * const vin2_groups[] = { static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(audio_clk), + SH_PFC_FUNCTION(avb), SH_PFC_FUNCTION(can0), SH_PFC_FUNCTION(can1), SH_PFC_FUNCTION(du), From 75389f188ce415cdbf2860c27648e9f75b499346 Mon Sep 17 00:00:00 2001 From: Jacopo Mondi Date: Thu, 10 Aug 2017 14:14:58 +0100 Subject: [PATCH 0127/1149] pinctrl: sh-pfc: r8a7791: Add ADI pinconf support Add pin configuration support for Gyro-ADC, named ADI on r8a7791 SoC. Signed-off-by: Jacopo Mondi Tested-by: Marek Vasut Signed-off-by: Geert Uytterhoeven (cherry picked from commit 07254d835dfc1e06a8cdfb565e7371176a4b93f9) Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 86 ++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c index 2086b06e422f..601726fcee3b 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c @@ -1695,6 +1695,72 @@ static const struct sh_pfc_pin pinmux_pins[] = { PINMUX_GPIO_GP_ALL(), }; +/* - ADI -------------------------------------------------------------------- */ +static const unsigned int adi_common_pins[] = { + /* ADIDATA, ADICS/SAMP, ADICLK */ + RCAR_GP_PIN(6, 24), RCAR_GP_PIN(6, 25), RCAR_GP_PIN(6, 26), +}; +static const unsigned int adi_common_mux[] = { + /* ADIDATA, ADICS/SAMP, ADICLK */ + ADIDATA_MARK, ADICS_SAMP_MARK, ADICLK_MARK, +}; +static const unsigned int adi_chsel0_pins[] = { + /* ADICHS 0 */ + RCAR_GP_PIN(6, 27), +}; +static const unsigned int adi_chsel0_mux[] = { + /* ADICHS 0 */ + ADICHS0_MARK, +}; +static const unsigned int adi_chsel1_pins[] = { + /* ADICHS 1 */ + RCAR_GP_PIN(6, 28), +}; +static const unsigned int adi_chsel1_mux[] = { + /* ADICHS 1 */ + ADICHS1_MARK, +}; +static const unsigned int adi_chsel2_pins[] = { + /* ADICHS 2 */ + RCAR_GP_PIN(6, 29), +}; +static const unsigned int adi_chsel2_mux[] = { + /* ADICHS 2 */ + ADICHS2_MARK, +}; +static const unsigned int adi_common_b_pins[] = { + /* ADIDATA B, ADICS/SAMP B, ADICLK B */ + RCAR_GP_PIN(5, 25), RCAR_GP_PIN(5, 26), RCAR_GP_PIN(5, 27), +}; +static const unsigned int adi_common_b_mux[] = { + /* ADIDATA B, ADICS/SAMP B, ADICLK B */ + ADIDATA_B_MARK, ADICS_SAMP_B_MARK, ADICLK_B_MARK, +}; +static const unsigned int adi_chsel0_b_pins[] = { + /* ADICHS B 0 */ + RCAR_GP_PIN(5, 28), +}; +static const unsigned int adi_chsel0_b_mux[] = { + /* ADICHS B 0 */ + ADICHS0_B_MARK, +}; +static const unsigned int adi_chsel1_b_pins[] = { + /* ADICHS B 1 */ + RCAR_GP_PIN(5, 29), +}; +static const unsigned int adi_chsel1_b_mux[] = { + /* ADICHS B 1 */ + ADICHS1_B_MARK, +}; +static const unsigned int adi_chsel2_b_pins[] = { + /* ADICHS B 2 */ + RCAR_GP_PIN(5, 30), +}; +static const unsigned int adi_chsel2_b_mux[] = { + /* ADICHS B 2 */ + ADICHS2_B_MARK, +}; + /* - Audio Clock ------------------------------------------------------------ */ static const unsigned int audio_clk_a_pins[] = { /* CLK */ @@ -4347,6 +4413,14 @@ static const unsigned int vin2_clk_mux[] = { }; static const struct sh_pfc_pin_group pinmux_groups[] = { + SH_PFC_PIN_GROUP(adi_common), + SH_PFC_PIN_GROUP(adi_chsel0), + SH_PFC_PIN_GROUP(adi_chsel1), + SH_PFC_PIN_GROUP(adi_chsel2), + SH_PFC_PIN_GROUP(adi_common_b), + SH_PFC_PIN_GROUP(adi_chsel0_b), + SH_PFC_PIN_GROUP(adi_chsel1_b), + SH_PFC_PIN_GROUP(adi_chsel2_b), SH_PFC_PIN_GROUP(audio_clk_a), SH_PFC_PIN_GROUP(audio_clk_b), SH_PFC_PIN_GROUP(audio_clk_b_b), @@ -4691,6 +4765,17 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(vin2_clk), }; +static const char * const adi_groups[] = { + "adi_common", + "adi_chsel0", + "adi_chsel1", + "adi_chsel2", + "adi_common_b", + "adi_chsel0_b", + "adi_chsel1_b", + "adi_chsel2_b", +}; + static const char * const audio_clk_groups[] = { "audio_clk_a", "audio_clk_b", @@ -5196,6 +5281,7 @@ static const char * const vin2_groups[] = { }; static const struct sh_pfc_function pinmux_functions[] = { + SH_PFC_FUNCTION(adi), SH_PFC_FUNCTION(audio_clk), SH_PFC_FUNCTION(avb), SH_PFC_FUNCTION(can0), From c9f2820b1a0f41b3caab0381cb4d010e4f7ffd1d Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Thu, 10 Aug 2017 14:14:59 +0100 Subject: [PATCH 0128/1149] pinctrl: sh-pfc: r8a7791: Add missing HSCIF1 pinmux data The R8A7791 PFC driver was apparently based on the preliminary revisions of the user's manual, which omitted the HSCIF1 group E signals in the IPSR4 register description. This would cause HSCIF1's probe to fail with the messages like below: sh-pfc e6060000.pfc: cannot locate data/mark enum_id for mark 1989 sh-sci e62c8000.serial: Error applying setting, reverse things back sh-sci: probe of e62c8000.serial failed with error -22 Add the neceassary PINMUX_IPSR_MSEL() invocations for the HSCK1_E, HCTS1#_E, and HRTS1#_E signals... Fixes: 508845196238 ("pinctrl: sh-pfc: r8a7791 PFC support") Signed-off-by: Sergei Shtylyov Signed-off-by: Geert Uytterhoeven (cherry picked from commit da7a692fbbab07f4e9798b5b52798f6e3256dd8f) Signed-off-by: Biju Das Conflicts: drivers/pinctrl/sh-pfc/pfc-r8a7791.c Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c index 601726fcee3b..4fbf715fd1b1 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c @@ -1014,14 +1014,17 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP4_12_10, SCL2, SEL_IIC2_0), PINMUX_IPSR_MSEL(IP4_12_10, GPS_CLK_B, SEL_GPS_1), PINMUX_IPSR_MSEL(IP4_12_10, GLO_Q0_D, SEL_GPS_3), + PINMUX_IPSR_MSEL(IP4_12_10, HSCK1_E, SEL_HSCIF1_4), PINMUX_IPSR_DATA(IP4_15_13, SSI_WS2), PINMUX_IPSR_MSEL(IP4_15_13, SDA2, SEL_IIC2_0), PINMUX_IPSR_MSEL(IP4_15_13, GPS_SIGN_B, SEL_GPS_1), PINMUX_IPSR_MSEL(IP4_15_13, RX2_E, SEL_SCIF2_4), PINMUX_IPSR_MSEL(IP4_15_13, GLO_Q1_D, SEL_GPS_3), + PINMUX_IPSR_MSEL(IP4_15_13, HCTS1_N_E, SEL_HSCIF1_4), PINMUX_IPSR_DATA(IP4_18_16, SSI_SDATA2), PINMUX_IPSR_MSEL(IP4_18_16, GPS_MAG_B, SEL_GPS_1), PINMUX_IPSR_MSEL(IP4_18_16, TX2_E, SEL_SCIF2_4), + PINMUX_IPSR_MSEL(IP4_18_16, HRTS1_N_E, SEL_HSCIF1_4), PINMUX_IPSR_DATA(IP4_19, SSI_SCK34), PINMUX_IPSR_DATA(IP4_20, SSI_WS34), PINMUX_IPSR_DATA(IP4_21, SSI_SDATA3), From f09ee207d6ade4b088a2edbbec439a86eb4eadb5 Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Thu, 10 Aug 2017 14:15:00 +0100 Subject: [PATCH 0129/1149] pinctrl: sh-pfc: r8a7791: Add missing DVC_MUTE signal The R8A7791 PFC driver was apparently based on the preliminary revisions of the user's manual, which omitted the DVC_MUTE signal altogether in the PFC section. The modern manual has the signal described, so just add the necassary data to the driver... Fixes: 508845196238 ("pinctrl: sh-pfc: r8a7791 PFC support") Signed-off-by: Sergei Shtylyov Signed-off-by: Geert Uytterhoeven (cherry picked from commit 3908632fb829d73317c64c3d04f584b49f62e4ae) Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c index 4fbf715fd1b1..8232305c6733 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c @@ -207,7 +207,7 @@ enum { /* IPSR6 */ FN_AUDIO_CLKB, FN_STP_OPWM_0_B, FN_MSIOF1_SCK_B, - FN_SCIF_CLK, FN_BPFCLK_E, + FN_SCIF_CLK, FN_DVC_MUTE, FN_BPFCLK_E, FN_AUDIO_CLKC, FN_SCIFB0_SCK_C, FN_MSIOF1_SYNC_B, FN_RX2, FN_SCIFA2_RXD, FN_FMIN_E, FN_AUDIO_CLKOUT, FN_MSIOF1_SS1_B, FN_TX2, FN_SCIFA2_TXD, @@ -577,7 +577,7 @@ enum { /* IPSR6 */ AUDIO_CLKB_MARK, STP_OPWM_0_B_MARK, MSIOF1_SCK_B_MARK, - SCIF_CLK_MARK, BPFCLK_E_MARK, + SCIF_CLK_MARK, DVC_MUTE_MARK, BPFCLK_E_MARK, AUDIO_CLKC_MARK, SCIFB0_SCK_C_MARK, MSIOF1_SYNC_B_MARK, RX2_MARK, SCIFA2_RXD_MARK, FMIN_E_MARK, AUDIO_CLKOUT_MARK, MSIOF1_SS1_B_MARK, TX2_MARK, SCIFA2_TXD_MARK, @@ -1097,6 +1097,7 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP6_2_0, STP_OPWM_0_B, SEL_SSP_1), PINMUX_IPSR_MSEL(IP6_2_0, MSIOF1_SCK_B, SEL_SOF1_1), PINMUX_IPSR_MSEL(IP6_2_0, SCIF_CLK, SEL_SCIF_0), + PINMUX_IPSR_DATA(IP6_2_0, DVC_MUTE), PINMUX_IPSR_MSEL(IP6_2_0, BPFCLK_E, SEL_FM_4), PINMUX_IPSR_DATA(IP6_5_3, AUDIO_CLKC), PINMUX_IPSR_MSEL(IP6_5_3, SCIFB0_SCK_C, SEL_SCIFB_2), @@ -5903,7 +5904,7 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { 0, 0, /* IP6_2_0 [3] */ FN_AUDIO_CLKB, FN_STP_OPWM_0_B, FN_MSIOF1_SCK_B, - FN_SCIF_CLK, 0, FN_BPFCLK_E, + FN_SCIF_CLK, FN_DVC_MUTE, FN_BPFCLK_E, 0, 0, } }, { PINMUX_CFG_REG_VAR("IPSR7", 0xE606003C, 32, From 4064457a41f07cdc0783ec93177440ab7f5ccae3 Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Thu, 10 Aug 2017 14:15:02 +0100 Subject: [PATCH 0130/1149] pinctrl: sh-pfc: r8a7791: Fix IPSR comment typos The IPSR field names in the comments have been fat-fingered in a couple places -- fix those silly typos... Fixes: 508845196238 ("pinctrl: sh-pfc: r8a7791 PFC support") Signed-off-by: Sergei Shtylyov Signed-off-by: Geert Uytterhoeven (cherry picked from commit 0cbdc11482d72ad164e33ef7cc57b01e8b61e40d) Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c index 8232305c6733..69a8541036d0 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c @@ -5715,7 +5715,7 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { }, { PINMUX_CFG_REG_VAR("IPSR2", 0xE6060028, 32, 2, 3, 2, 2, 2, 2, 3, 3, 3, 3, 2, 2, 3) { - /* IP2_31_20 [2] */ + /* IP2_31_30 [2] */ 0, 0, 0, 0, /* IP2_29_27 [3] */ FN_EX_CS3_N, FN_ATADIR0_N, FN_MSIOF2_TXD, @@ -5735,7 +5735,7 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { /* IP2_15_13 [3] */ FN_A24, FN_DREQ2, FN_IO3, FN_TX1, FN_SCIFA1_TXD, 0, 0, 0, - /* IP2_12_0 [3] */ + /* IP2_12_10 [3] */ FN_A23, FN_IO2, FN_BPFCLK_B, FN_RX0, FN_SCIFA0_RXD, 0, 0, 0, /* IP2_9_7 [3] */ @@ -6046,7 +6046,7 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { /* IP10_24_22 [3] */ FN_VI0_R1, FN_VI2_DATA2, FN_GLO_I1_B, FN_TS_SCK0_C, FN_ATAG1_N, 0, 0, 0, - /* IP10_21_29 [3] */ + /* IP10_21_19 [3] */ FN_VI0_R0, FN_VI2_DATA1, FN_GLO_I0_B, FN_TS_SDATA0_C, FN_ATACS11_N, 0, 0, 0, From 3d69cf7aae89f20f8592ac5278252bd568f7b585 Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Thu, 10 Aug 2017 14:15:03 +0100 Subject: [PATCH 0131/1149] pinctrl: sh-pfc: r8a7791: Grand I2C rename The R8A7791 PFC driver was apparently based on the preliminary revisions of the user's manual, which called all the I2C signals {SCL|SDA} and MOD_SEL register fields SEL_IIC without making a difference between two types of the I2C controllers used. The recent manual calls the signals {I2C|IIC}_{SCL|SDA> and the MOD_SEL fields SEL_{I2C|IIC} finally making this difference. Follow the suit... Signed-off-by: Sergei Shtylyov Signed-off-by: Geert Uytterhoeven (cherry picked from commit e1b5f32dc2c3c70d091b2e259ec4dc8e3ae3d745) Signed-off-by: Biju Das Conflicts: drivers/pinctrl/sh-pfc/pfc-r8a7791.c Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 461 ++++++++++++++------------- 1 file changed, 234 insertions(+), 227 deletions(-) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c index 69a8541036d0..22831d8a6a70 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c @@ -123,22 +123,22 @@ enum { /* IPSR0 */ FN_D0, FN_D1, FN_D2, FN_D3, FN_D4, FN_D5, FN_D6, FN_D7, FN_D8, FN_D9, FN_D10, FN_D11, FN_D12, FN_D13, FN_D14, FN_D15, - FN_A0, FN_ATAWR0_N_C, FN_MSIOF0_SCK_B, FN_SCL0_C, FN_PWM2_B, + FN_A0, FN_ATAWR0_N_C, FN_MSIOF0_SCK_B, FN_I2C0_SCL_C, FN_PWM2_B, FN_A1, FN_MSIOF0_SYNC_B, FN_A2, FN_MSIOF0_SS1_B, FN_A3, FN_MSIOF0_SS2_B, FN_A4, FN_MSIOF0_TXD_B, FN_A5, FN_MSIOF0_RXD_B, FN_A6, FN_MSIOF1_SCK, /* IPSR1 */ - FN_A7, FN_MSIOF1_SYNC, FN_A8, FN_MSIOF1_SS1, FN_SCL0, - FN_A9, FN_MSIOF1_SS2, FN_SDA0, + FN_A7, FN_MSIOF1_SYNC, FN_A8, FN_MSIOF1_SS1, FN_I2C0_SCL, + FN_A9, FN_MSIOF1_SS2, FN_I2C0_SDA, FN_A10, FN_MSIOF1_TXD, FN_MSIOF1_TXD_D, - FN_A11, FN_MSIOF1_RXD, FN_SCL3_D, FN_MSIOF1_RXD_D, - FN_A12, FN_FMCLK, FN_SDA3_D, FN_MSIOF1_SCK_D, + FN_A11, FN_MSIOF1_RXD, FN_I2C3_SCL_D, FN_MSIOF1_RXD_D, + FN_A12, FN_FMCLK, FN_I2C3_SDA_D, FN_MSIOF1_SCK_D, FN_A13, FN_ATAG0_N_C, FN_BPFCLK, FN_MSIOF1_SS1_D, FN_A14, FN_ATADIR0_N_C, FN_FMIN, FN_FMIN_C, FN_MSIOF1_SYNC_D, FN_A15, FN_BPFCLK_C, FN_A16, FN_DREQ2_B, FN_FMCLK_C, FN_SCIFA1_SCK_B, - FN_A17, FN_DACK2_B, FN_SDA0_C, + FN_A17, FN_DACK2_B, FN_I2C0_SDA_C, FN_A18, FN_DREQ1, FN_SCIFA1_RXD_C, FN_SCIFB1_RXD_C, /* IPSR2 */ @@ -149,8 +149,8 @@ enum { FN_A23, FN_IO2, FN_BPFCLK_B, FN_RX0, FN_SCIFA0_RXD, FN_A24, FN_DREQ2, FN_IO3, FN_TX1, FN_SCIFA1_TXD, FN_A25, FN_DACK2, FN_SSL, FN_DREQ1_C, FN_RX1, FN_SCIFA1_RXD, - FN_CS0_N, FN_ATAG0_N_B, FN_SCL1, - FN_CS1_N_A26, FN_ATADIR0_N_B, FN_SDA1, + FN_CS0_N, FN_ATAG0_N_B, FN_I2C1_SCL, + FN_CS1_N_A26, FN_ATADIR0_N_B, FN_I2C1_SDA, FN_EX_CS1_N, FN_MSIOF2_SCK, FN_EX_CS2_N, FN_ATAWR0_N, FN_MSIOF2_SYNC, FN_EX_CS3_N, FN_ATADIR0_N, FN_MSIOF2_TXD, FN_ATAG0_N, FN_EX_WAIT1, @@ -173,12 +173,13 @@ enum { FN_SSI_WS0129, FN_HTX0_C, FN_HTX2_C, FN_SCIFB0_TXD_C, FN_SCIFB2_TXD_C, /* IPSR4 */ - FN_SSI_SDATA0, FN_SCL0_B, FN_SCL7_B, FN_MSIOF2_SCK_C, - FN_SSI_SCK1, FN_SDA0_B, FN_SDA7_B, FN_MSIOF2_SYNC_C, FN_GLO_I0_D, - FN_SSI_WS1, FN_SCL1_B, FN_SCL8_B, FN_MSIOF2_TXD_C, FN_GLO_I1_D, - FN_SSI_SDATA1, FN_SDA1_B, FN_SDA8_B, FN_MSIOF2_RXD_C, - FN_SSI_SCK2, FN_SCL2, FN_GPS_CLK_B, FN_GLO_Q0_D, FN_HSCK1_E, - FN_SSI_WS2, FN_SDA2, FN_GPS_SIGN_B, FN_RX2_E, + FN_SSI_SDATA0, FN_I2C0_SCL_B, FN_IIC0_SCL_B, FN_MSIOF2_SCK_C, + FN_SSI_SCK1, FN_I2C0_SDA_B, FN_IIC0_SDA_B, FN_MSIOF2_SYNC_C, + FN_GLO_I0_D, + FN_SSI_WS1, FN_I2C1_SCL_B, FN_IIC1_SCL_B, FN_MSIOF2_TXD_C, FN_GLO_I1_D, + FN_SSI_SDATA1, FN_I2C1_SDA_B, FN_IIC1_SDA_B, FN_MSIOF2_RXD_C, + FN_SSI_SCK2, FN_I2C2_SCL, FN_GPS_CLK_B, FN_GLO_Q0_D, FN_HSCK1_E, + FN_SSI_WS2, FN_I2C2_SDA, FN_GPS_SIGN_B, FN_RX2_E, FN_GLO_Q1_D, FN_HCTS1_N_E, FN_SSI_SDATA2, FN_GPS_MAG_B, FN_TX2_E, FN_HRTS1_N_E, FN_SSI_SCK34, FN_SSI_WS34, FN_SSI_SDATA3, @@ -214,10 +215,10 @@ enum { FN_IRQ0, FN_SCIFB1_RXD_D, FN_INTC_IRQ0_N, FN_IRQ1, FN_SCIFB1_SCK_C, FN_INTC_IRQ1_N, FN_IRQ2, FN_SCIFB1_TXD_D, FN_INTC_IRQ2_N, - FN_IRQ3, FN_SCL4_C, FN_MSIOF2_TXD_E, FN_INTC_IRQ3_N, - FN_IRQ4, FN_HRX1_C, FN_SDA4_C, FN_MSIOF2_RXD_E, FN_INTC_IRQ4_N, - FN_IRQ5, FN_HTX1_C, FN_SCL1_E, FN_MSIOF2_SCK_E, - FN_IRQ6, FN_HSCK1_C, FN_MSIOF1_SS2_B, FN_SDA1_E, FN_MSIOF2_SYNC_E, + FN_IRQ3, FN_I2C4_SCL_C, FN_MSIOF2_TXD_E, FN_INTC_IRQ3_N, + FN_IRQ4, FN_HRX1_C, FN_I2C4_SDA_C, FN_MSIOF2_RXD_E, FN_INTC_IRQ4_N, + FN_IRQ5, FN_HTX1_C, FN_I2C1_SCL_E, FN_MSIOF2_SCK_E, + FN_IRQ6, FN_HSCK1_C, FN_MSIOF1_SS2_B, FN_I2C1_SDA_E, FN_MSIOF2_SYNC_E, FN_IRQ7, FN_HCTS1_N_C, FN_MSIOF1_TXD_B, FN_GPS_CLK_C, FN_GPS_CLK_D, FN_IRQ8, FN_HRTS1_N_C, FN_MSIOF1_RXD_B, FN_GPS_SIGN_C, FN_GPS_SIGN_D, @@ -261,16 +262,16 @@ enum { FN_DU1_DB5, FN_LCDOUT21, FN_TX3, FN_SCIFA3_TXD, FN_CAN1_TX, /* IPSR9 */ - FN_DU1_DB6, FN_LCDOUT22, FN_SCL3_C, FN_RX3, FN_SCIFA3_RXD, - FN_DU1_DB7, FN_LCDOUT23, FN_SDA3_C, FN_SCIF3_SCK, FN_SCIFA3_SCK, + FN_DU1_DB6, FN_LCDOUT22, FN_I2C3_SCL_C, FN_RX3, FN_SCIFA3_RXD, + FN_DU1_DB7, FN_LCDOUT23, FN_I2C3_SDA_C, FN_SCIF3_SCK, FN_SCIFA3_SCK, FN_DU1_DOTCLKIN, FN_QSTVA_QVS, FN_DU1_DOTCLKOUT0, FN_QCLK, FN_DU1_DOTCLKOUT1, FN_QSTVB_QVE, FN_CAN0_TX, - FN_TX3_B, FN_SCL2_B, FN_PWM4, + FN_TX3_B, FN_I2C2_SCL_B, FN_PWM4, FN_DU1_EXHSYNC_DU1_HSYNC, FN_QSTH_QHS, FN_DU1_EXVSYNC_DU1_VSYNC, FN_QSTB_QHE, FN_DU1_EXODDF_DU1_ODDF_DISP_CDE, FN_QCPV_QDE, - FN_CAN0_RX, FN_RX3_B, FN_SDA2_B, + FN_CAN0_RX, FN_RX3_B, FN_I2C2_SDA_B, FN_DU1_DISP, FN_QPOLA, FN_DU1_CDE, FN_QPOLB, FN_PWM4_B, FN_VI0_CLKENB, FN_TX4, FN_SCIFA4_TXD, FN_TS_SDATA0_D, @@ -278,15 +279,15 @@ enum { FN_VI0_HSYNC_N, FN_TX5, FN_SCIFA5_TXD, FN_TS_SDEN0_D, FN_VI0_VSYNC_N, FN_RX5, FN_SCIFA5_RXD, FN_TS_SPSYNC0_D, FN_VI0_DATA3_VI0_B3, FN_SCIF3_SCK_B, FN_SCIFA3_SCK_B, - FN_VI0_G0, FN_SCL8, FN_STP_IVCXO27_0_C, FN_SCL4, + FN_VI0_G0, FN_IIC1_SCL, FN_STP_IVCXO27_0_C, FN_I2C4_SCL, FN_HCTS2_N, FN_SCIFB2_CTS_N, FN_ATAWR1_N, /* IPSR10 */ - FN_VI0_G1, FN_SDA8, FN_STP_ISCLK_0_C, FN_SDA4, + FN_VI0_G1, FN_IIC1_SDA, FN_STP_ISCLK_0_C, FN_I2C4_SDA, FN_HRTS2_N, FN_SCIFB2_RTS_N, FN_ATADIR1_N, - FN_VI0_G2, FN_VI2_HSYNC_N, FN_STP_ISD_0_C, FN_SCL3_B, + FN_VI0_G2, FN_VI2_HSYNC_N, FN_STP_ISD_0_C, FN_I2C3_SCL_B, FN_HSCK2, FN_SCIFB2_SCK, FN_ATARD1_N, - FN_VI0_G3, FN_VI2_VSYNC_N, FN_STP_ISEN_0_C, FN_SDA3_B, + FN_VI0_G3, FN_VI2_VSYNC_N, FN_STP_ISEN_0_C, FN_I2C3_SDA_B, FN_HRX2, FN_SCIFB2_RXD, FN_ATACS01_N, FN_VI0_G4, FN_VI2_CLKENB, FN_STP_ISSYNC_0_C, FN_HTX2, FN_SCIFB2_TXD, FN_SCIFB0_SCK_D, @@ -300,13 +301,13 @@ enum { FN_TS_SCK0_C, FN_ATAG1_N, FN_VI0_R2, FN_VI2_DATA3, FN_GLO_Q0_B, FN_TS_SDEN0_C, FN_VI0_R3, FN_VI2_DATA4, FN_GLO_Q1_B, FN_TS_SPSYNC0_C, - FN_VI0_R4, FN_VI2_DATA5, FN_GLO_SCLK_B, FN_TX0_C, FN_SCL1_D, + FN_VI0_R4, FN_VI2_DATA5, FN_GLO_SCLK_B, FN_TX0_C, FN_I2C1_SCL_D, /* IPSR11 */ - FN_VI0_R5, FN_VI2_DATA6, FN_GLO_SDATA_B, FN_RX0_C, FN_SDA1_D, - FN_VI0_R6, FN_VI2_DATA7, FN_GLO_SS_B, FN_TX1_C, FN_SCL4_B, + FN_VI0_R5, FN_VI2_DATA6, FN_GLO_SDATA_B, FN_RX0_C, FN_I2C1_SDA_D, + FN_VI0_R6, FN_VI2_DATA7, FN_GLO_SS_B, FN_TX1_C, FN_I2C4_SCL_B, FN_VI0_R7, FN_GLO_RFON_B, FN_RX1_C, FN_CAN0_RX_E, - FN_SDA4_B, FN_HRX1_D, FN_SCIFB0_RXD_D, + FN_I2C4_SDA_B, FN_HRX1_D, FN_SCIFB0_RXD_D, FN_VI1_HSYNC_N, FN_AVB_RXD0, FN_TS_SDATA0_B, FN_TX4_B, FN_SCIFA4_TXD_B, FN_VI1_VSYNC_N, FN_AVB_RXD1, FN_TS_SCK0_B, FN_RX4_B, FN_SCIFA4_RXD_B, FN_VI1_CLKENB, FN_AVB_RXD2, FN_TS_SDEN0_B, @@ -316,15 +317,15 @@ enum { FN_VI1_DATA3, FN_AVB_RX_ER, FN_VI1_DATA4, FN_AVB_MDIO, FN_VI1_DATA5, FN_AVB_RX_DV, FN_VI1_DATA6, FN_AVB_MAGIC, FN_VI1_DATA7, FN_AVB_MDC, - FN_ETH_MDIO, FN_AVB_RX_CLK, FN_SCL2_C, - FN_ETH_CRS_DV, FN_AVB_LINK, FN_SDA2_C, + FN_ETH_MDIO, FN_AVB_RX_CLK, FN_I2C2_SCL_C, + FN_ETH_CRS_DV, FN_AVB_LINK, FN_I2C2_SDA_C, /* IPSR12 */ - FN_ETH_RX_ER, FN_AVB_CRS, FN_SCL3, FN_SCL7, - FN_ETH_RXD0, FN_AVB_PHY_INT, FN_SDA3, FN_SDA7, + FN_ETH_RX_ER, FN_AVB_CRS, FN_I2C3_SCL, FN_IIC0_SCL, + FN_ETH_RXD0, FN_AVB_PHY_INT, FN_I2C3_SDA, FN_IIC0_SDA, FN_ETH_RXD1, FN_AVB_GTXREFCLK, FN_CAN0_TX_C, - FN_SCL2_D, FN_MSIOF1_RXD_E, - FN_ETH_LINK, FN_AVB_TXD0, FN_CAN0_RX_C, FN_SDA2_D, FN_MSIOF1_SCK_E, + FN_I2C2_SCL_D, FN_MSIOF1_RXD_E, + FN_ETH_LINK, FN_AVB_TXD0, FN_CAN0_RX_C, FN_I2C2_SDA_D, FN_MSIOF1_SCK_E, FN_ETH_REFCLK, FN_AVB_TXD1, FN_SCIFA3_RXD_B, FN_CAN1_RX_C, FN_MSIOF1_SYNC_E, FN_ETH_TXD1, FN_AVB_TXD2, FN_SCIFA3_TXD_B, @@ -355,23 +356,23 @@ enum { FN_SD1_CMD, FN_REMOCON_B, FN_SD1_DATA0, FN_SPEEDIN_B, FN_SD1_DATA1, FN_IETX_B, FN_SD1_DATA2, FN_IECLK_B, FN_SD1_DATA3, FN_IERX_B, - FN_SD1_CD, FN_PWM0, FN_TPU_TO0, FN_SCL1_C, + FN_SD1_CD, FN_PWM0, FN_TPU_TO0, FN_I2C1_SCL_C, /* IPSR14 */ - FN_SD1_WP, FN_PWM1_B, FN_SDA1_C, + FN_SD1_WP, FN_PWM1_B, FN_I2C1_SDA_C, FN_SD2_CLK, FN_MMC_CLK, FN_SD2_CMD, FN_MMC_CMD, FN_SD2_DATA0, FN_MMC_D0, FN_SD2_DATA1, FN_MMC_D1, FN_SD2_DATA2, FN_MMC_D2, FN_SD2_DATA3, FN_MMC_D3, - FN_SD2_CD, FN_MMC_D4, FN_SCL8_C, FN_TX5_B, FN_SCIFA5_TXD_C, - FN_SD2_WP, FN_MMC_D5, FN_SDA8_C, FN_RX5_B, FN_SCIFA5_RXD_C, + FN_SD2_CD, FN_MMC_D4, FN_IIC1_SCL_C, FN_TX5_B, FN_SCIFA5_TXD_C, + FN_SD2_WP, FN_MMC_D5, FN_IIC1_SDA_C, FN_RX5_B, FN_SCIFA5_RXD_C, FN_MSIOF0_SCK, FN_RX2_C, FN_ADIDATA, FN_VI1_CLK_C, FN_VI1_G0_B, FN_MSIOF0_SYNC, FN_TX2_C, FN_ADICS_SAMP, FN_VI1_CLKENB_C, FN_VI1_G1_B, FN_MSIOF0_TXD, FN_ADICLK, FN_VI1_FIELD_C, FN_VI1_G2_B, FN_MSIOF0_RXD, FN_ADICHS0, FN_VI1_DATA0_C, FN_VI1_G3_B, FN_MSIOF0_SS1, FN_MMC_D6, FN_ADICHS1, FN_TX0_E, - FN_VI1_HSYNC_N_C, FN_SCL7_C, FN_VI1_G4_B, + FN_VI1_HSYNC_N_C, FN_IIC0_SCL_C, FN_VI1_G4_B, FN_MSIOF0_SS2, FN_MMC_D7, FN_ADICHS2, FN_RX0_E, - FN_VI1_VSYNC_N_C, FN_SDA7_C, FN_VI1_G5_B, + FN_VI1_VSYNC_N_C, FN_IIC0_SDA_C, FN_VI1_G5_B, /* IPSR15 */ FN_SIM0_RST, FN_IETX, FN_CAN1_TX_D, @@ -436,18 +437,18 @@ enum { /* MOD_SEL3 */ FN_SEL_HSCIF2_0, FN_SEL_HSCIF2_1, FN_SEL_HSCIF2_2, FN_SEL_HSCIF2_3, FN_SEL_CANCLK_0, FN_SEL_CANCLK_1, FN_SEL_CANCLK_2, FN_SEL_CANCLK_3, - FN_SEL_IIC8_0, FN_SEL_IIC8_1, FN_SEL_IIC8_2, - FN_SEL_IIC7_0, FN_SEL_IIC7_1, FN_SEL_IIC7_2, - FN_SEL_IIC4_0, FN_SEL_IIC4_1, FN_SEL_IIC4_2, - FN_SEL_IIC3_0, FN_SEL_IIC3_1, FN_SEL_IIC3_2, FN_SEL_IIC3_3, + FN_SEL_IIC1_0, FN_SEL_IIC1_1, FN_SEL_IIC1_2, + FN_SEL_IIC0_0, FN_SEL_IIC0_1, FN_SEL_IIC0_2, + FN_SEL_I2C4_0, FN_SEL_I2C4_1, FN_SEL_I2C4_2, + FN_SEL_I2C3_0, FN_SEL_I2C3_1, FN_SEL_I2C3_2, FN_SEL_I2C3_3, FN_SEL_SCIF3_0, FN_SEL_SCIF3_1, FN_SEL_SCIF3_2, FN_SEL_SCIF3_3, FN_SEL_IEB_0, FN_SEL_IEB_1, FN_SEL_IEB_2, FN_SEL_MMC_0, FN_SEL_MMC_1, FN_SEL_SCIF5_0, FN_SEL_SCIF5_1, - FN_SEL_IIC2_0, FN_SEL_IIC2_1, FN_SEL_IIC2_2, FN_SEL_IIC2_3, - FN_SEL_IIC1_0, FN_SEL_IIC1_1, FN_SEL_IIC1_2, FN_SEL_IIC1_3, - FN_SEL_IIC1_4, - FN_SEL_IIC0_0, FN_SEL_IIC0_1, FN_SEL_IIC0_2, + FN_SEL_I2C2_0, FN_SEL_I2C2_1, FN_SEL_I2C2_2, FN_SEL_I2C2_3, + FN_SEL_I2C1_0, FN_SEL_I2C1_1, FN_SEL_I2C1_2, FN_SEL_I2C1_3, + FN_SEL_I2C1_4, + FN_SEL_I2C0_0, FN_SEL_I2C0_1, FN_SEL_I2C0_2, /* MOD_SEL4 */ FN_SEL_SOF1_0, FN_SEL_SOF1_1, FN_SEL_SOF1_2, FN_SEL_SOF1_3, @@ -485,22 +486,23 @@ enum { D0_MARK, D1_MARK, D2_MARK, D3_MARK, D4_MARK, D5_MARK, D6_MARK, D7_MARK, D8_MARK, D9_MARK, D10_MARK, D11_MARK, D12_MARK, D13_MARK, D14_MARK, D15_MARK, - A0_MARK, ATAWR0_N_C_MARK, MSIOF0_SCK_B_MARK, SCL0_C_MARK, PWM2_B_MARK, + A0_MARK, ATAWR0_N_C_MARK, MSIOF0_SCK_B_MARK, I2C0_SCL_C_MARK, + PWM2_B_MARK, A1_MARK, MSIOF0_SYNC_B_MARK, A2_MARK, MSIOF0_SS1_B_MARK, A3_MARK, MSIOF0_SS2_B_MARK, A4_MARK, MSIOF0_TXD_B_MARK, A5_MARK, MSIOF0_RXD_B_MARK, A6_MARK, MSIOF1_SCK_MARK, /* IPSR1 */ - A7_MARK, MSIOF1_SYNC_MARK, A8_MARK, MSIOF1_SS1_MARK, SCL0_MARK, - A9_MARK, MSIOF1_SS2_MARK, SDA0_MARK, + A7_MARK, MSIOF1_SYNC_MARK, A8_MARK, MSIOF1_SS1_MARK, I2C0_SCL_MARK, + A9_MARK, MSIOF1_SS2_MARK, I2C0_SDA_MARK, A10_MARK, MSIOF1_TXD_MARK, MSIOF1_TXD_D_MARK, - A11_MARK, MSIOF1_RXD_MARK, SCL3_D_MARK, MSIOF1_RXD_D_MARK, - A12_MARK, FMCLK_MARK, SDA3_D_MARK, MSIOF1_SCK_D_MARK, + A11_MARK, MSIOF1_RXD_MARK, I2C3_SCL_D_MARK, MSIOF1_RXD_D_MARK, + A12_MARK, FMCLK_MARK, I2C3_SDA_D_MARK, MSIOF1_SCK_D_MARK, A13_MARK, ATAG0_N_C_MARK, BPFCLK_MARK, MSIOF1_SS1_D_MARK, A14_MARK, ATADIR0_N_C_MARK, FMIN_MARK, FMIN_C_MARK, MSIOF1_SYNC_D_MARK, A15_MARK, BPFCLK_C_MARK, A16_MARK, DREQ2_B_MARK, FMCLK_C_MARK, SCIFA1_SCK_B_MARK, - A17_MARK, DACK2_B_MARK, SDA0_C_MARK, + A17_MARK, DACK2_B_MARK, I2C0_SDA_C_MARK, A18_MARK, DREQ1_MARK, SCIFA1_RXD_C_MARK, SCIFB1_RXD_C_MARK, /* IPSR2 */ @@ -513,8 +515,8 @@ enum { A24_MARK, DREQ2_MARK, IO3_MARK, TX1_MARK, SCIFA1_TXD_MARK, A25_MARK, DACK2_MARK, SSL_MARK, DREQ1_C_MARK, RX1_MARK, SCIFA1_RXD_MARK, - CS0_N_MARK, ATAG0_N_B_MARK, SCL1_MARK, - CS1_N_A26_MARK, ATADIR0_N_B_MARK, SDA1_MARK, + CS0_N_MARK, ATAG0_N_B_MARK, I2C1_SCL_MARK, + CS1_N_A26_MARK, ATADIR0_N_B_MARK, I2C1_SDA_MARK, EX_CS1_N_MARK, MSIOF2_SCK_MARK, EX_CS2_N_MARK, ATAWR0_N_MARK, MSIOF2_SYNC_MARK, EX_CS3_N_MARK, ATADIR0_N_MARK, MSIOF2_TXD_MARK, @@ -541,14 +543,15 @@ enum { SCIFB0_TXD_C_MARK, SCIFB2_TXD_C_MARK, /* IPSR4 */ - SSI_SDATA0_MARK, SCL0_B_MARK, SCL7_B_MARK, MSIOF2_SCK_C_MARK, - SSI_SCK1_MARK, SDA0_B_MARK, SDA7_B_MARK, + SSI_SDATA0_MARK, I2C0_SCL_B_MARK, IIC0_SCL_B_MARK, MSIOF2_SCK_C_MARK, + SSI_SCK1_MARK, I2C0_SDA_B_MARK, IIC0_SDA_B_MARK, MSIOF2_SYNC_C_MARK, GLO_I0_D_MARK, - SSI_WS1_MARK, SCL1_B_MARK, SCL8_B_MARK, + SSI_WS1_MARK, I2C1_SCL_B_MARK, IIC1_SCL_B_MARK, MSIOF2_TXD_C_MARK, GLO_I1_D_MARK, - SSI_SDATA1_MARK, SDA1_B_MARK, SDA8_B_MARK, MSIOF2_RXD_C_MARK, - SSI_SCK2_MARK, SCL2_MARK, GPS_CLK_B_MARK, GLO_Q0_D_MARK, HSCK1_E_MARK, - SSI_WS2_MARK, SDA2_MARK, GPS_SIGN_B_MARK, RX2_E_MARK, + SSI_SDATA1_MARK, I2C1_SDA_B_MARK, IIC1_SDA_B_MARK, MSIOF2_RXD_C_MARK, + SSI_SCK2_MARK, I2C2_SCL_MARK, GPS_CLK_B_MARK, GLO_Q0_D_MARK, + HSCK1_E_MARK, + SSI_WS2_MARK, I2C2_SDA_MARK, GPS_SIGN_B_MARK, RX2_E_MARK, GLO_Q1_D_MARK, HCTS1_N_E_MARK, SSI_SDATA2_MARK, GPS_MAG_B_MARK, TX2_E_MARK, HRTS1_N_E_MARK, SSI_SCK34_MARK, SSI_WS34_MARK, SSI_SDATA3_MARK, @@ -584,12 +587,12 @@ enum { IRQ0_MARK, SCIFB1_RXD_D_MARK, INTC_IRQ0_N_MARK, IRQ1_MARK, SCIFB1_SCK_C_MARK, INTC_IRQ1_N_MARK, IRQ2_MARK, SCIFB1_TXD_D_MARK, INTC_IRQ2_N_MARK, - IRQ3_MARK, SCL4_C_MARK, MSIOF2_TXD_E_MARK, INTC_IRQ3_N_MARK, - IRQ4_MARK, HRX1_C_MARK, SDA4_C_MARK, + IRQ3_MARK, I2C4_SCL_C_MARK, MSIOF2_TXD_E_MARK, INTC_IRQ3_N_MARK, + IRQ4_MARK, HRX1_C_MARK, I2C4_SDA_C_MARK, MSIOF2_RXD_E_MARK, INTC_IRQ4_N_MARK, - IRQ5_MARK, HTX1_C_MARK, SCL1_E_MARK, MSIOF2_SCK_E_MARK, + IRQ5_MARK, HTX1_C_MARK, I2C1_SCL_E_MARK, MSIOF2_SCK_E_MARK, IRQ6_MARK, HSCK1_C_MARK, MSIOF1_SS2_B_MARK, - SDA1_E_MARK, MSIOF2_SYNC_E_MARK, + I2C1_SDA_E_MARK, MSIOF2_SYNC_E_MARK, IRQ7_MARK, HCTS1_N_C_MARK, MSIOF1_TXD_B_MARK, GPS_CLK_C_MARK, GPS_CLK_D_MARK, IRQ8_MARK, HRTS1_N_C_MARK, MSIOF1_RXD_B_MARK, @@ -636,17 +639,17 @@ enum { DU1_DB5_MARK, LCDOUT21_MARK, TX3_MARK, SCIFA3_TXD_MARK, CAN1_TX_MARK, /* IPSR9 */ - DU1_DB6_MARK, LCDOUT22_MARK, SCL3_C_MARK, RX3_MARK, SCIFA3_RXD_MARK, - DU1_DB7_MARK, LCDOUT23_MARK, SDA3_C_MARK, + DU1_DB6_MARK, LCDOUT22_MARK, I2C3_SCL_C_MARK, RX3_MARK, SCIFA3_RXD_MARK, + DU1_DB7_MARK, LCDOUT23_MARK, I2C3_SDA_C_MARK, SCIF3_SCK_MARK, SCIFA3_SCK_MARK, DU1_DOTCLKIN_MARK, QSTVA_QVS_MARK, DU1_DOTCLKOUT0_MARK, QCLK_MARK, DU1_DOTCLKOUT1_MARK, QSTVB_QVE_MARK, CAN0_TX_MARK, - TX3_B_MARK, SCL2_B_MARK, PWM4_MARK, + TX3_B_MARK, I2C2_SCL_B_MARK, PWM4_MARK, DU1_EXHSYNC_DU1_HSYNC_MARK, QSTH_QHS_MARK, DU1_EXVSYNC_DU1_VSYNC_MARK, QSTB_QHE_MARK, DU1_EXODDF_DU1_ODDF_DISP_CDE_MARK, QCPV_QDE_MARK, - CAN0_RX_MARK, RX3_B_MARK, SDA2_B_MARK, + CAN0_RX_MARK, RX3_B_MARK, I2C2_SDA_B_MARK, DU1_DISP_MARK, QPOLA_MARK, DU1_CDE_MARK, QPOLB_MARK, PWM4_B_MARK, VI0_CLKENB_MARK, TX4_MARK, SCIFA4_TXD_MARK, TS_SDATA0_D_MARK, @@ -654,15 +657,15 @@ enum { VI0_HSYNC_N_MARK, TX5_MARK, SCIFA5_TXD_MARK, TS_SDEN0_D_MARK, VI0_VSYNC_N_MARK, RX5_MARK, SCIFA5_RXD_MARK, TS_SPSYNC0_D_MARK, VI0_DATA3_VI0_B3_MARK, SCIF3_SCK_B_MARK, SCIFA3_SCK_B_MARK, - VI0_G0_MARK, SCL8_MARK, STP_IVCXO27_0_C_MARK, SCL4_MARK, + VI0_G0_MARK, IIC1_SCL_MARK, STP_IVCXO27_0_C_MARK, I2C4_SCL_MARK, HCTS2_N_MARK, SCIFB2_CTS_N_MARK, ATAWR1_N_MARK, /* IPSR10 */ - VI0_G1_MARK, SDA8_MARK, STP_ISCLK_0_C_MARK, SDA4_MARK, + VI0_G1_MARK, IIC1_SDA_MARK, STP_ISCLK_0_C_MARK, I2C4_SDA_MARK, HRTS2_N_MARK, SCIFB2_RTS_N_MARK, ATADIR1_N_MARK, - VI0_G2_MARK, VI2_HSYNC_N_MARK, STP_ISD_0_C_MARK, SCL3_B_MARK, + VI0_G2_MARK, VI2_HSYNC_N_MARK, STP_ISD_0_C_MARK, I2C3_SCL_B_MARK, HSCK2_MARK, SCIFB2_SCK_MARK, ATARD1_N_MARK, - VI0_G3_MARK, VI2_VSYNC_N_MARK, STP_ISEN_0_C_MARK, SDA3_B_MARK, + VI0_G3_MARK, VI2_VSYNC_N_MARK, STP_ISEN_0_C_MARK, I2C3_SDA_B_MARK, HRX2_MARK, SCIFB2_RXD_MARK, ATACS01_N_MARK, VI0_G4_MARK, VI2_CLKENB_MARK, STP_ISSYNC_0_C_MARK, HTX2_MARK, SCIFB2_TXD_MARK, SCIFB0_SCK_D_MARK, @@ -676,13 +679,15 @@ enum { TS_SCK0_C_MARK, ATAG1_N_MARK, VI0_R2_MARK, VI2_DATA3_MARK, GLO_Q0_B_MARK, TS_SDEN0_C_MARK, VI0_R3_MARK, VI2_DATA4_MARK, GLO_Q1_B_MARK, TS_SPSYNC0_C_MARK, - VI0_R4_MARK, VI2_DATA5_MARK, GLO_SCLK_B_MARK, TX0_C_MARK, SCL1_D_MARK, + VI0_R4_MARK, VI2_DATA5_MARK, GLO_SCLK_B_MARK, TX0_C_MARK, + I2C1_SCL_D_MARK, /* IPSR11 */ - VI0_R5_MARK, VI2_DATA6_MARK, GLO_SDATA_B_MARK, RX0_C_MARK, SDA1_D_MARK, - VI0_R6_MARK, VI2_DATA7_MARK, GLO_SS_B_MARK, TX1_C_MARK, SCL4_B_MARK, + VI0_R5_MARK, VI2_DATA6_MARK, GLO_SDATA_B_MARK, RX0_C_MARK, + I2C1_SDA_D_MARK, + VI0_R6_MARK, VI2_DATA7_MARK, GLO_SS_B_MARK, TX1_C_MARK, I2C4_SCL_B_MARK, VI0_R7_MARK, GLO_RFON_B_MARK, RX1_C_MARK, CAN0_RX_E_MARK, - SDA4_B_MARK, HRX1_D_MARK, SCIFB0_RXD_D_MARK, + I2C4_SDA_B_MARK, HRX1_D_MARK, SCIFB0_RXD_D_MARK, VI1_HSYNC_N_MARK, AVB_RXD0_MARK, TS_SDATA0_B_MARK, TX4_B_MARK, SCIFA4_TXD_B_MARK, VI1_VSYNC_N_MARK, AVB_RXD1_MARK, TS_SCK0_B_MARK, @@ -694,16 +699,16 @@ enum { VI1_DATA3_MARK, AVB_RX_ER_MARK, VI1_DATA4_MARK, AVB_MDIO_MARK, VI1_DATA5_MARK, AVB_RX_DV_MARK, VI1_DATA6_MARK, AVB_MAGIC_MARK, VI1_DATA7_MARK, AVB_MDC_MARK, - ETH_MDIO_MARK, AVB_RX_CLK_MARK, SCL2_C_MARK, - ETH_CRS_DV_MARK, AVB_LINK_MARK, SDA2_C_MARK, + ETH_MDIO_MARK, AVB_RX_CLK_MARK, I2C2_SCL_C_MARK, + ETH_CRS_DV_MARK, AVB_LINK_MARK, I2C2_SDA_C_MARK, /* IPSR12 */ - ETH_RX_ER_MARK, AVB_CRS_MARK, SCL3_MARK, SCL7_MARK, - ETH_RXD0_MARK, AVB_PHY_INT_MARK, SDA3_MARK, SDA7_MARK, + ETH_RX_ER_MARK, AVB_CRS_MARK, I2C3_SCL_MARK, IIC0_SCL_MARK, + ETH_RXD0_MARK, AVB_PHY_INT_MARK, I2C3_SDA_MARK, IIC0_SDA_MARK, ETH_RXD1_MARK, AVB_GTXREFCLK_MARK, CAN0_TX_C_MARK, - SCL2_D_MARK, MSIOF1_RXD_E_MARK, + I2C2_SCL_D_MARK, MSIOF1_RXD_E_MARK, ETH_LINK_MARK, AVB_TXD0_MARK, CAN0_RX_C_MARK, - SDA2_D_MARK, MSIOF1_SCK_E_MARK, + I2C2_SDA_D_MARK, MSIOF1_SCK_E_MARK, ETH_REFCLK_MARK, AVB_TXD1_MARK, SCIFA3_RXD_B_MARK, CAN1_RX_C_MARK, MSIOF1_SYNC_E_MARK, ETH_TXD1_MARK, AVB_TXD2_MARK, SCIFA3_TXD_B_MARK, @@ -734,15 +739,17 @@ enum { SD1_CMD_MARK, REMOCON_B_MARK, SD1_DATA0_MARK, SPEEDIN_B_MARK, SD1_DATA1_MARK, IETX_B_MARK, SD1_DATA2_MARK, IECLK_B_MARK, SD1_DATA3_MARK, IERX_B_MARK, - SD1_CD_MARK, PWM0_MARK, TPU_TO0_MARK, SCL1_C_MARK, + SD1_CD_MARK, PWM0_MARK, TPU_TO0_MARK, I2C1_SCL_C_MARK, /* IPSR14 */ - SD1_WP_MARK, PWM1_B_MARK, SDA1_C_MARK, + SD1_WP_MARK, PWM1_B_MARK, I2C1_SDA_C_MARK, SD2_CLK_MARK, MMC_CLK_MARK, SD2_CMD_MARK, MMC_CMD_MARK, SD2_DATA0_MARK, MMC_D0_MARK, SD2_DATA1_MARK, MMC_D1_MARK, SD2_DATA2_MARK, MMC_D2_MARK, SD2_DATA3_MARK, MMC_D3_MARK, - SD2_CD_MARK, MMC_D4_MARK, SCL8_C_MARK, TX5_B_MARK, SCIFA5_TXD_C_MARK, - SD2_WP_MARK, MMC_D5_MARK, SDA8_C_MARK, RX5_B_MARK, SCIFA5_RXD_C_MARK, + SD2_CD_MARK, MMC_D4_MARK, IIC1_SCL_C_MARK, TX5_B_MARK, + SCIFA5_TXD_C_MARK, + SD2_WP_MARK, MMC_D5_MARK, IIC1_SDA_C_MARK, RX5_B_MARK, + SCIFA5_RXD_C_MARK, MSIOF0_SCK_MARK, RX2_C_MARK, ADIDATA_MARK, VI1_CLK_C_MARK, VI1_G0_B_MARK, MSIOF0_SYNC_MARK, TX2_C_MARK, ADICS_SAMP_MARK, @@ -750,9 +757,9 @@ enum { MSIOF0_TXD_MARK, ADICLK_MARK, VI1_FIELD_C_MARK, VI1_G2_B_MARK, MSIOF0_RXD_MARK, ADICHS0_MARK, VI1_DATA0_C_MARK, VI1_G3_B_MARK, MSIOF0_SS1_MARK, MMC_D6_MARK, ADICHS1_MARK, TX0_E_MARK, - VI1_HSYNC_N_C_MARK, SCL7_C_MARK, VI1_G4_B_MARK, + VI1_HSYNC_N_C_MARK, IIC0_SCL_C_MARK, VI1_G4_B_MARK, MSIOF0_SS2_MARK, MMC_D7_MARK, ADICHS2_MARK, RX0_E_MARK, - VI1_VSYNC_N_C_MARK, SDA7_C_MARK, VI1_G5_B_MARK, + VI1_VSYNC_N_C_MARK, IIC0_SDA_C_MARK, VI1_G5_B_MARK, /* IPSR15 */ SIM0_RST_MARK, IETX_MARK, CAN1_TX_D_MARK, @@ -826,7 +833,7 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_DATA(IP0_18_16, A0), PINMUX_IPSR_MSEL(IP0_18_16, ATAWR0_N_C, SEL_LBS_2), PINMUX_IPSR_MSEL(IP0_18_16, MSIOF0_SCK_B, SEL_SOF0_1), - PINMUX_IPSR_MSEL(IP0_18_16, SCL0_C, SEL_IIC0_2), + PINMUX_IPSR_MSEL(IP0_18_16, I2C0_SCL_C, SEL_I2C0_2), PINMUX_IPSR_DATA(IP0_18_16, PWM2_B), PINMUX_IPSR_DATA(IP0_20_19, A1), PINMUX_IPSR_MSEL(IP0_20_19, MSIOF0_SYNC_B, SEL_SOF0_1), @@ -846,20 +853,20 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP1_1_0, MSIOF1_SYNC, SEL_SOF1_0), PINMUX_IPSR_DATA(IP1_3_2, A8), PINMUX_IPSR_MSEL(IP1_3_2, MSIOF1_SS1, SEL_SOF1_0), - PINMUX_IPSR_MSEL(IP1_3_2, SCL0, SEL_IIC0_0), + PINMUX_IPSR_MSEL(IP1_3_2, I2C0_SCL, SEL_I2C0_0), PINMUX_IPSR_DATA(IP1_5_4, A9), PINMUX_IPSR_MSEL(IP1_5_4, MSIOF1_SS2, SEL_SOF1_0), - PINMUX_IPSR_MSEL(IP1_5_4, SDA0, SEL_IIC0_0), + PINMUX_IPSR_MSEL(IP1_5_4, I2C0_SDA, SEL_I2C0_0), PINMUX_IPSR_DATA(IP1_7_6, A10), PINMUX_IPSR_MSEL(IP1_7_6, MSIOF1_TXD, SEL_SOF1_0), PINMUX_IPSR_MSEL(IP1_7_6, MSIOF1_TXD_D, SEL_SOF1_3), PINMUX_IPSR_DATA(IP1_10_8, A11), PINMUX_IPSR_MSEL(IP1_10_8, MSIOF1_RXD, SEL_SOF1_0), - PINMUX_IPSR_MSEL(IP1_10_8, SCL3_D, SEL_IIC3_3), + PINMUX_IPSR_MSEL(IP1_10_8, I2C3_SCL_D, SEL_I2C3_3), PINMUX_IPSR_MSEL(IP1_10_8, MSIOF1_RXD_D, SEL_SOF1_3), PINMUX_IPSR_DATA(IP1_13_11, A12), PINMUX_IPSR_MSEL(IP1_13_11, FMCLK, SEL_FM_0), - PINMUX_IPSR_MSEL(IP1_13_11, SDA3_D, SEL_IIC3_3), + PINMUX_IPSR_MSEL(IP1_13_11, I2C3_SDA_D, SEL_I2C3_3), PINMUX_IPSR_MSEL(IP1_13_11, MSIOF1_SCK_D, SEL_SOF1_3), PINMUX_IPSR_DATA(IP1_16_14, A13), PINMUX_IPSR_MSEL(IP1_16_14, ATAG0_N_C, SEL_LBS_2), @@ -878,7 +885,7 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP1_25_23, SCIFA1_SCK_B, SEL_SCIFA1_1), PINMUX_IPSR_DATA(IP1_28_26, A17), PINMUX_IPSR_MSEL(IP1_28_26, DACK2_B, SEL_LBS_1), - PINMUX_IPSR_MSEL(IP1_28_26, SDA0_C, SEL_IIC0_2), + PINMUX_IPSR_MSEL(IP1_28_26, I2C0_SDA_C, SEL_I2C0_2), PINMUX_IPSR_DATA(IP1_31_29, A18), PINMUX_IPSR_MSEL(IP1_31_29, DREQ1, SEL_LBS_0), PINMUX_IPSR_MSEL(IP1_31_29, SCIFA1_RXD_C, SEL_SCIFA1_2), @@ -918,10 +925,10 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP2_18_16, SCIFA1_RXD, SEL_SCIFA1_0), PINMUX_IPSR_DATA(IP2_20_19, CS0_N), PINMUX_IPSR_MSEL(IP2_20_19, ATAG0_N_B, SEL_LBS_1), - PINMUX_IPSR_MSEL(IP2_20_19, SCL1, SEL_IIC1_0), + PINMUX_IPSR_MSEL(IP2_20_19, I2C1_SCL, SEL_I2C1_0), PINMUX_IPSR_DATA(IP2_22_21, CS1_N_A26), PINMUX_IPSR_MSEL(IP2_22_21, ATADIR0_N_B, SEL_LBS_1), - PINMUX_IPSR_MSEL(IP2_22_21, SDA1, SEL_IIC1_0), + PINMUX_IPSR_MSEL(IP2_22_21, I2C1_SDA, SEL_I2C1_0), PINMUX_IPSR_DATA(IP2_24_23, EX_CS1_N), PINMUX_IPSR_MSEL(IP2_24_23, MSIOF2_SCK, SEL_SOF2_0), PINMUX_IPSR_DATA(IP2_26_25, EX_CS2_N), @@ -993,30 +1000,30 @@ static const u16 pinmux_data[] = { /* IPSR4 */ PINMUX_IPSR_MSEL(IP4_1_0, SSI_SDATA0, SEL_SSI0_0), - PINMUX_IPSR_MSEL(IP4_1_0, SCL0_B, SEL_IIC0_1), - PINMUX_IPSR_MSEL(IP4_1_0, SCL7_B, SEL_IIC7_1), + PINMUX_IPSR_MSEL(IP4_1_0, I2C0_SCL_B, SEL_I2C0_1), + PINMUX_IPSR_MSEL(IP4_1_0, IIC0_SCL_B, SEL_IIC0_1), PINMUX_IPSR_MSEL(IP4_1_0, MSIOF2_SCK_C, SEL_SOF2_2), PINMUX_IPSR_MSEL(IP4_4_2, SSI_SCK1, SEL_SSI1_0), - PINMUX_IPSR_MSEL(IP4_4_2, SDA0_B, SEL_IIC0_1), - PINMUX_IPSR_MSEL(IP4_4_2, SDA7_B, SEL_IIC7_1), + PINMUX_IPSR_MSEL(IP4_4_2, I2C0_SDA_B, SEL_I2C0_1), + PINMUX_IPSR_MSEL(IP4_4_2, IIC0_SDA_B, SEL_IIC0_1), PINMUX_IPSR_MSEL(IP4_4_2, MSIOF2_SYNC_C, SEL_SOF2_2), PINMUX_IPSR_MSEL(IP4_4_2, GLO_I0_D, SEL_GPS_3), PINMUX_IPSR_MSEL(IP4_7_5, SSI_WS1, SEL_SSI1_0), - PINMUX_IPSR_MSEL(IP4_7_5, SCL1_B, SEL_IIC1_1), - PINMUX_IPSR_MSEL(IP4_7_5, SCL8_B, SEL_IIC8_1), + PINMUX_IPSR_MSEL(IP4_7_5, I2C1_SCL_B, SEL_I2C1_1), + PINMUX_IPSR_MSEL(IP4_7_5, IIC1_SCL_B, SEL_IIC1_1), PINMUX_IPSR_MSEL(IP4_7_5, MSIOF2_TXD_C, SEL_SOF2_2), PINMUX_IPSR_MSEL(IP4_7_5, GLO_I1_D, SEL_GPS_3), PINMUX_IPSR_MSEL(IP4_9_8, SSI_SDATA1, SEL_SSI1_0), - PINMUX_IPSR_MSEL(IP4_9_8, SDA1_B, SEL_IIC1_1), - PINMUX_IPSR_MSEL(IP4_9_8, SDA8_B, SEL_IIC8_1), + PINMUX_IPSR_MSEL(IP4_9_8, I2C1_SDA_B, SEL_I2C1_1), + PINMUX_IPSR_MSEL(IP4_9_8, IIC1_SDA_B, SEL_IIC1_1), PINMUX_IPSR_MSEL(IP4_9_8, MSIOF2_RXD_C, SEL_SOF2_2), PINMUX_IPSR_DATA(IP4_12_10, SSI_SCK2), - PINMUX_IPSR_MSEL(IP4_12_10, SCL2, SEL_IIC2_0), + PINMUX_IPSR_MSEL(IP4_12_10, I2C2_SCL, SEL_I2C2_0), PINMUX_IPSR_MSEL(IP4_12_10, GPS_CLK_B, SEL_GPS_1), PINMUX_IPSR_MSEL(IP4_12_10, GLO_Q0_D, SEL_GPS_3), PINMUX_IPSR_MSEL(IP4_12_10, HSCK1_E, SEL_HSCIF1_4), PINMUX_IPSR_DATA(IP4_15_13, SSI_WS2), - PINMUX_IPSR_MSEL(IP4_15_13, SDA2, SEL_IIC2_0), + PINMUX_IPSR_MSEL(IP4_15_13, I2C2_SDA, SEL_I2C2_0), PINMUX_IPSR_MSEL(IP4_15_13, GPS_SIGN_B, SEL_GPS_1), PINMUX_IPSR_MSEL(IP4_15_13, RX2_E, SEL_SCIF2_4), PINMUX_IPSR_MSEL(IP4_15_13, GLO_Q1_D, SEL_GPS_3), @@ -1119,22 +1126,22 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP6_13_12, SCIFB1_TXD_D, SEL_SCIFB1_3), PINMUX_IPSR_DATA(IP6_13_12, INTC_IRQ2_N), PINMUX_IPSR_DATA(IP6_15_14, IRQ3), - PINMUX_IPSR_MSEL(IP6_15_14, SCL4_C, SEL_IIC4_2), + PINMUX_IPSR_MSEL(IP6_15_14, I2C4_SCL_C, SEL_I2C4_2), PINMUX_IPSR_MSEL(IP6_15_14, MSIOF2_TXD_E, SEL_SOF2_4), PINMUX_IPSR_DATA(IP6_15_14, INTC_IRQ4_N), PINMUX_IPSR_DATA(IP6_18_16, IRQ4), PINMUX_IPSR_MSEL(IP6_18_16, HRX1_C, SEL_HSCIF1_2), - PINMUX_IPSR_MSEL(IP6_18_16, SDA4_C, SEL_IIC4_2), + PINMUX_IPSR_MSEL(IP6_18_16, I2C4_SDA_C, SEL_I2C4_2), PINMUX_IPSR_MSEL(IP6_18_16, MSIOF2_RXD_E, SEL_SOF2_4), PINMUX_IPSR_DATA(IP6_18_16, INTC_IRQ4_N), PINMUX_IPSR_DATA(IP6_20_19, IRQ5), PINMUX_IPSR_MSEL(IP6_20_19, HTX1_C, SEL_HSCIF1_2), - PINMUX_IPSR_MSEL(IP6_20_19, SCL1_E, SEL_IIC1_4), + PINMUX_IPSR_MSEL(IP6_20_19, I2C1_SCL_E, SEL_I2C1_4), PINMUX_IPSR_MSEL(IP6_20_19, MSIOF2_SCK_E, SEL_SOF2_4), PINMUX_IPSR_DATA(IP6_23_21, IRQ6), PINMUX_IPSR_MSEL(IP6_23_21, HSCK1_C, SEL_HSCIF1_2), PINMUX_IPSR_MSEL(IP6_23_21, MSIOF1_SS2_B, SEL_SOF1_1), - PINMUX_IPSR_MSEL(IP6_23_21, SDA1_E, SEL_IIC1_4), + PINMUX_IPSR_MSEL(IP6_23_21, I2C1_SDA_E, SEL_I2C1_4), PINMUX_IPSR_MSEL(IP6_23_21, MSIOF2_SYNC_E, SEL_SOF2_4), PINMUX_IPSR_DATA(IP6_26_24, IRQ7), PINMUX_IPSR_MSEL(IP6_26_24, HCTS1_N_C, SEL_HSCIF1_2), @@ -1264,12 +1271,12 @@ static const u16 pinmux_data[] = { /* IPSR9 */ PINMUX_IPSR_DATA(IP9_2_0, DU1_DB6), PINMUX_IPSR_DATA(IP9_2_0, LCDOUT22), - PINMUX_IPSR_MSEL(IP9_2_0, SCL3_C, SEL_IIC3_2), + PINMUX_IPSR_MSEL(IP9_2_0, I2C3_SCL_C, SEL_I2C3_2), PINMUX_IPSR_MSEL(IP9_2_0, RX3, SEL_SCIF3_0), PINMUX_IPSR_MSEL(IP9_2_0, SCIFA3_RXD, SEL_SCIFA3_0), PINMUX_IPSR_DATA(IP9_5_3, DU1_DB7), PINMUX_IPSR_DATA(IP9_5_3, LCDOUT23), - PINMUX_IPSR_MSEL(IP9_5_3, SDA3_C, SEL_IIC3_2), + PINMUX_IPSR_MSEL(IP9_5_3, I2C3_SDA_C, SEL_I2C3_2), PINMUX_IPSR_MSEL(IP9_5_3, SCIF3_SCK, SEL_SCIF3_0), PINMUX_IPSR_MSEL(IP9_5_3, SCIFA3_SCK, SEL_SCIFA3_0), PINMUX_IPSR_MSEL(IP9_6, DU1_DOTCLKIN, SEL_DIS_0), @@ -1280,7 +1287,7 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_DATA(IP9_10_8, QSTVB_QVE), PINMUX_IPSR_MSEL(IP9_10_8, CAN0_TX, SEL_CAN0_0), PINMUX_IPSR_MSEL(IP9_10_8, TX3_B, SEL_SCIF3_1), - PINMUX_IPSR_MSEL(IP9_10_8, SCL2_B, SEL_IIC2_1), + PINMUX_IPSR_MSEL(IP9_10_8, I2C2_SCL_B, SEL_I2C2_1), PINMUX_IPSR_DATA(IP9_10_8, PWM4), PINMUX_IPSR_DATA(IP9_11, DU1_EXHSYNC_DU1_HSYNC), PINMUX_IPSR_DATA(IP9_11, QSTH_QHS), @@ -1290,7 +1297,7 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_DATA(IP9_15_13, QCPV_QDE), PINMUX_IPSR_MSEL(IP9_15_13, CAN0_RX, SEL_CAN0_0), PINMUX_IPSR_MSEL(IP9_15_13, RX3_B, SEL_SCIF3_1), - PINMUX_IPSR_MSEL(IP9_15_13, SDA2_B, SEL_IIC2_1), + PINMUX_IPSR_MSEL(IP9_15_13, I2C2_SDA_B, SEL_I2C2_1), PINMUX_IPSR_DATA(IP9_16, DU1_DISP), PINMUX_IPSR_DATA(IP9_16, QPOLA), PINMUX_IPSR_DATA(IP9_18_17, DU1_CDE), @@ -1316,32 +1323,32 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP9_28_27, SCIF3_SCK_B, SEL_SCIF3_1), PINMUX_IPSR_MSEL(IP9_28_27, SCIFA3_SCK_B, SEL_SCIFA3_1), PINMUX_IPSR_DATA(IP9_31_29, VI0_G0), - PINMUX_IPSR_MSEL(IP9_31_29, SCL8, SEL_IIC8_0), + PINMUX_IPSR_MSEL(IP9_31_29, IIC1_SCL, SEL_IIC1_0), PINMUX_IPSR_MSEL(IP9_31_29, STP_IVCXO27_0_C, SEL_SSP_2), - PINMUX_IPSR_MSEL(IP9_31_29, SCL4, SEL_IIC4_0), + PINMUX_IPSR_MSEL(IP9_31_29, I2C4_SCL, SEL_I2C4_0), PINMUX_IPSR_MSEL(IP9_31_29, HCTS2_N, SEL_HSCIF2_0), PINMUX_IPSR_MSEL(IP9_31_29, SCIFB2_CTS_N, SEL_SCIFB2_0), PINMUX_IPSR_DATA(IP9_31_29, ATAWR1_N), /* IPSR10 */ PINMUX_IPSR_DATA(IP10_2_0, VI0_G1), - PINMUX_IPSR_MSEL(IP10_2_0, SDA8, SEL_IIC8_0), + PINMUX_IPSR_MSEL(IP10_2_0, IIC1_SDA, SEL_IIC1_0), PINMUX_IPSR_MSEL(IP10_2_0, STP_ISCLK_0_C, SEL_SSP_2), - PINMUX_IPSR_MSEL(IP10_2_0, SDA4, SEL_IIC4_0), + PINMUX_IPSR_MSEL(IP10_2_0, I2C4_SDA, SEL_I2C4_0), PINMUX_IPSR_MSEL(IP10_2_0, HRTS2_N, SEL_HSCIF2_0), PINMUX_IPSR_MSEL(IP10_2_0, SCIFB2_RTS_N, SEL_SCIFB2_0), PINMUX_IPSR_DATA(IP10_2_0, ATADIR1_N), PINMUX_IPSR_DATA(IP10_5_3, VI0_G2), PINMUX_IPSR_DATA(IP10_5_3, VI2_HSYNC_N), PINMUX_IPSR_MSEL(IP10_5_3, STP_ISD_0_C, SEL_SSP_2), - PINMUX_IPSR_MSEL(IP10_5_3, SCL3_B, SEL_IIC3_1), + PINMUX_IPSR_MSEL(IP10_5_3, I2C3_SCL_B, SEL_I2C3_1), PINMUX_IPSR_MSEL(IP10_5_3, HSCK2, SEL_HSCIF2_0), PINMUX_IPSR_MSEL(IP10_5_3, SCIFB2_SCK, SEL_SCIFB2_0), PINMUX_IPSR_DATA(IP10_5_3, ATARD1_N), PINMUX_IPSR_DATA(IP10_8_6, VI0_G3), PINMUX_IPSR_DATA(IP10_8_6, VI2_VSYNC_N), PINMUX_IPSR_MSEL(IP10_8_6, STP_ISEN_0_C, SEL_SSP_2), - PINMUX_IPSR_MSEL(IP10_8_6, SDA3_B, SEL_IIC3_1), + PINMUX_IPSR_MSEL(IP10_8_6, I2C3_SDA_B, SEL_I2C3_1), PINMUX_IPSR_MSEL(IP10_8_6, HRX2, SEL_HSCIF2_0), PINMUX_IPSR_MSEL(IP10_8_6, SCIFB2_RXD, SEL_SCIFB2_0), PINMUX_IPSR_DATA(IP10_8_6, ATACS01_N), @@ -1386,24 +1393,24 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_DATA(IP10_31_29, VI2_DATA5), PINMUX_IPSR_MSEL(IP10_31_29, GLO_SCLK_B, SEL_GPS_1), PINMUX_IPSR_MSEL(IP10_31_29, TX0_C, SEL_SCIF0_2), - PINMUX_IPSR_MSEL(IP10_31_29, SCL1_D, SEL_IIC1_3), + PINMUX_IPSR_MSEL(IP10_31_29, I2C1_SCL_D, SEL_I2C1_3), /* IPSR11 */ PINMUX_IPSR_DATA(IP11_2_0, VI0_R5), PINMUX_IPSR_DATA(IP11_2_0, VI2_DATA6), PINMUX_IPSR_MSEL(IP11_2_0, GLO_SDATA_B, SEL_GPS_1), PINMUX_IPSR_MSEL(IP11_2_0, RX0_C, SEL_SCIF0_2), - PINMUX_IPSR_MSEL(IP11_2_0, SDA1_D, SEL_IIC1_3), + PINMUX_IPSR_MSEL(IP11_2_0, I2C1_SDA_D, SEL_I2C1_3), PINMUX_IPSR_DATA(IP11_5_3, VI0_R6), PINMUX_IPSR_DATA(IP11_5_3, VI2_DATA7), PINMUX_IPSR_MSEL(IP11_5_3, GLO_SS_B, SEL_GPS_1), PINMUX_IPSR_MSEL(IP11_5_3, TX1_C, SEL_SCIF1_2), - PINMUX_IPSR_MSEL(IP11_5_3, SCL4_B, SEL_IIC4_1), + PINMUX_IPSR_MSEL(IP11_5_3, I2C4_SCL_B, SEL_I2C4_1), PINMUX_IPSR_DATA(IP11_8_6, VI0_R7), PINMUX_IPSR_MSEL(IP11_8_6, GLO_RFON_B, SEL_GPS_1), PINMUX_IPSR_MSEL(IP11_8_6, RX1_C, SEL_SCIF1_2), PINMUX_IPSR_MSEL(IP11_8_6, CAN0_RX_E, SEL_CAN0_4), - PINMUX_IPSR_MSEL(IP11_8_6, SDA4_B, SEL_IIC4_1), + PINMUX_IPSR_MSEL(IP11_8_6, I2C4_SDA_B, SEL_I2C4_1), PINMUX_IPSR_MSEL(IP11_8_6, HRX1_D, SEL_HSCIF1_3), PINMUX_IPSR_MSEL(IP11_8_6, SCIFB0_RXD_D, SEL_SCIFB_3), PINMUX_IPSR_MSEL(IP11_11_9, VI1_HSYNC_N, SEL_VI1_0), @@ -1442,29 +1449,29 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_DATA(IP11_27, AVB_MDC), PINMUX_IPSR_DATA(IP11_29_28, ETH_MDIO), PINMUX_IPSR_DATA(IP11_29_28, AVB_RX_CLK), - PINMUX_IPSR_MSEL(IP11_29_28, SCL2_C, SEL_IIC2_2), + PINMUX_IPSR_MSEL(IP11_29_28, I2C2_SCL_C, SEL_I2C2_2), PINMUX_IPSR_DATA(IP11_31_30, ETH_CRS_DV), PINMUX_IPSR_DATA(IP11_31_30, AVB_LINK), - PINMUX_IPSR_MSEL(IP11_31_30, SDA2_C, SEL_IIC2_2), + PINMUX_IPSR_MSEL(IP11_31_30, I2C2_SDA_C, SEL_I2C2_2), /* IPSR12 */ PINMUX_IPSR_DATA(IP12_1_0, ETH_RX_ER), PINMUX_IPSR_DATA(IP12_1_0, AVB_CRS), - PINMUX_IPSR_MSEL(IP12_1_0, SCL3, SEL_IIC3_0), - PINMUX_IPSR_MSEL(IP12_1_0, SCL7, SEL_IIC7_0), + PINMUX_IPSR_MSEL(IP12_1_0, I2C3_SCL, SEL_I2C3_0), + PINMUX_IPSR_MSEL(IP12_1_0, IIC0_SCL, SEL_IIC0_0), PINMUX_IPSR_DATA(IP12_3_2, ETH_RXD0), PINMUX_IPSR_DATA(IP12_3_2, AVB_PHY_INT), - PINMUX_IPSR_MSEL(IP12_3_2, SDA3, SEL_IIC3_0), - PINMUX_IPSR_MSEL(IP12_3_2, SDA7, SEL_IIC7_0), + PINMUX_IPSR_MSEL(IP12_3_2, I2C3_SDA, SEL_I2C3_0), + PINMUX_IPSR_MSEL(IP12_3_2, IIC0_SDA, SEL_IIC0_0), PINMUX_IPSR_DATA(IP12_6_4, ETH_RXD1), PINMUX_IPSR_DATA(IP12_6_4, AVB_GTXREFCLK), PINMUX_IPSR_MSEL(IP12_6_4, CAN0_TX_C, SEL_CAN0_2), - PINMUX_IPSR_MSEL(IP12_6_4, SCL2_D, SEL_IIC2_3), + PINMUX_IPSR_MSEL(IP12_6_4, I2C2_SCL_D, SEL_I2C2_3), PINMUX_IPSR_MSEL(IP12_6_4, MSIOF1_RXD_E, SEL_SOF1_4), PINMUX_IPSR_DATA(IP12_9_7, ETH_LINK), PINMUX_IPSR_DATA(IP12_9_7, AVB_TXD0), PINMUX_IPSR_MSEL(IP12_9_7, CAN0_RX_C, SEL_CAN0_2), - PINMUX_IPSR_MSEL(IP12_9_7, SDA2_D, SEL_IIC2_3), + PINMUX_IPSR_MSEL(IP12_9_7, I2C2_SDA_D, SEL_I2C2_3), PINMUX_IPSR_MSEL(IP12_9_7, MSIOF1_SCK_E, SEL_SOF1_4), PINMUX_IPSR_DATA(IP12_12_10, ETH_REFCLK), PINMUX_IPSR_DATA(IP12_12_10, AVB_TXD1), @@ -1556,12 +1563,12 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_DATA(IP13_30_28, SD1_CD), PINMUX_IPSR_DATA(IP13_30_28, PWM0), PINMUX_IPSR_DATA(IP13_30_28, TPU_TO0), - PINMUX_IPSR_MSEL(IP13_30_28, SCL1_C, SEL_IIC1_2), + PINMUX_IPSR_MSEL(IP13_30_28, I2C1_SCL_C, SEL_I2C1_2), /* IPSR14 */ PINMUX_IPSR_DATA(IP14_1_0, SD1_WP), PINMUX_IPSR_DATA(IP14_1_0, PWM1_B), - PINMUX_IPSR_MSEL(IP14_1_0, SDA1_C, SEL_IIC1_2), + PINMUX_IPSR_MSEL(IP14_1_0, I2C1_SDA_C, SEL_I2C1_2), PINMUX_IPSR_DATA(IP14_2, SD2_CLK), PINMUX_IPSR_DATA(IP14_2, MMC_CLK), PINMUX_IPSR_DATA(IP14_3, SD2_CMD), @@ -1576,12 +1583,12 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_DATA(IP14_7, MMC_D3), PINMUX_IPSR_DATA(IP14_10_8, SD2_CD), PINMUX_IPSR_DATA(IP14_10_8, MMC_D4), - PINMUX_IPSR_MSEL(IP14_10_8, SCL8_C, SEL_IIC8_2), + PINMUX_IPSR_MSEL(IP14_10_8, IIC1_SCL_C, SEL_IIC1_2), PINMUX_IPSR_MSEL(IP14_10_8, TX5_B, SEL_SCIF5_1), PINMUX_IPSR_MSEL(IP14_10_8, SCIFA5_TXD_C, SEL_SCIFA5_2), PINMUX_IPSR_DATA(IP14_13_11, SD2_WP), PINMUX_IPSR_DATA(IP14_13_11, MMC_D5), - PINMUX_IPSR_MSEL(IP14_13_11, SDA8_C, SEL_IIC8_2), + PINMUX_IPSR_MSEL(IP14_13_11, IIC1_SDA_C, SEL_IIC1_2), PINMUX_IPSR_MSEL(IP14_13_11, RX5_B, SEL_SCIF5_1), PINMUX_IPSR_MSEL(IP14_13_11, SCIFA5_RXD_C, SEL_SCIFA5_2), PINMUX_IPSR_MSEL(IP14_16_14, MSIOF0_SCK, SEL_SOF0_0), @@ -1607,14 +1614,14 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP14_28_26, ADICHS1, SEL_RAD_0), PINMUX_IPSR_MSEL(IP14_28_26, TX0_E, SEL_SCIF0_4), PINMUX_IPSR_MSEL(IP14_28_26, VI1_HSYNC_N_C, SEL_VI1_2), - PINMUX_IPSR_MSEL(IP14_28_26, SCL7_C, SEL_IIC7_2), + PINMUX_IPSR_MSEL(IP14_28_26, IIC0_SCL_C, SEL_IIC0_2), PINMUX_IPSR_DATA(IP14_28_26, VI1_G4_B), PINMUX_IPSR_MSEL(IP14_31_29, MSIOF0_SS2, SEL_SOF0_0), PINMUX_IPSR_MSEL(IP14_31_29, MMC_D7, SEL_MMC_0), PINMUX_IPSR_MSEL(IP14_31_29, ADICHS2, SEL_RAD_0), PINMUX_IPSR_MSEL(IP14_31_29, RX0_E, SEL_SCIF0_4), PINMUX_IPSR_MSEL(IP14_31_29, VI1_VSYNC_N_C, SEL_VI1_2), - PINMUX_IPSR_MSEL(IP14_31_29, SDA7_C, SEL_IIC7_2), + PINMUX_IPSR_MSEL(IP14_31_29, IIC0_SDA_C, SEL_IIC0_2), PINMUX_IPSR_DATA(IP14_31_29, VI1_G5_B), /* IPSR15 */ @@ -2347,21 +2354,21 @@ static const unsigned int i2c0_pins[] = { RCAR_GP_PIN(0, 24), RCAR_GP_PIN(0, 25), }; static const unsigned int i2c0_mux[] = { - SCL0_MARK, SDA0_MARK, + I2C0_SCL_MARK, I2C0_SDA_MARK, }; static const unsigned int i2c0_b_pins[] = { /* SCL, SDA */ RCAR_GP_PIN(2, 2), RCAR_GP_PIN(2, 3), }; static const unsigned int i2c0_b_mux[] = { - SCL0_B_MARK, SDA0_B_MARK, + I2C0_SCL_B_MARK, I2C0_SDA_B_MARK, }; static const unsigned int i2c0_c_pins[] = { /* SCL, SDA */ RCAR_GP_PIN(0, 16), RCAR_GP_PIN(1, 1), }; static const unsigned int i2c0_c_mux[] = { - SCL0_C_MARK, SDA0_C_MARK, + I2C0_SCL_C_MARK, I2C0_SDA_C_MARK, }; /* - I2C1 ------------------------------------------------------------------- */ static const unsigned int i2c1_pins[] = { @@ -2369,35 +2376,35 @@ static const unsigned int i2c1_pins[] = { RCAR_GP_PIN(1, 10), RCAR_GP_PIN(1, 11), }; static const unsigned int i2c1_mux[] = { - SCL1_MARK, SDA1_MARK, + I2C1_SCL_MARK, I2C1_SDA_MARK, }; static const unsigned int i2c1_b_pins[] = { /* SCL, SDA */ RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 5), }; static const unsigned int i2c1_b_mux[] = { - SCL1_B_MARK, SDA1_B_MARK, + I2C1_SCL_B_MARK, I2C1_SDA_B_MARK, }; static const unsigned int i2c1_c_pins[] = { /* SCL, SDA */ RCAR_GP_PIN(6, 14), RCAR_GP_PIN(6, 15), }; static const unsigned int i2c1_c_mux[] = { - SCL1_C_MARK, SDA1_C_MARK, + I2C1_SCL_C_MARK, I2C1_SDA_C_MARK, }; static const unsigned int i2c1_d_pins[] = { /* SCL, SDA */ RCAR_GP_PIN(4, 25), RCAR_GP_PIN(4, 26), }; static const unsigned int i2c1_d_mux[] = { - SCL1_D_MARK, SDA1_D_MARK, + I2C1_SCL_D_MARK, I2C1_SDA_D_MARK, }; static const unsigned int i2c1_e_pins[] = { /* SCL, SDA */ RCAR_GP_PIN(7, 15), RCAR_GP_PIN(7, 16), }; static const unsigned int i2c1_e_mux[] = { - SCL1_E_MARK, SDA1_E_MARK, + I2C1_SCL_E_MARK, I2C1_SDA_E_MARK, }; /* - I2C2 ------------------------------------------------------------------- */ static const unsigned int i2c2_pins[] = { @@ -2405,28 +2412,28 @@ static const unsigned int i2c2_pins[] = { RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 7), }; static const unsigned int i2c2_mux[] = { - SCL2_MARK, SDA2_MARK, + I2C2_SCL_MARK, I2C2_SDA_MARK, }; static const unsigned int i2c2_b_pins[] = { /* SCL, SDA */ RCAR_GP_PIN(3, 26), RCAR_GP_PIN(3, 29), }; static const unsigned int i2c2_b_mux[] = { - SCL2_B_MARK, SDA2_B_MARK, + I2C2_SCL_B_MARK, I2C2_SDA_B_MARK, }; static const unsigned int i2c2_c_pins[] = { /* SCL, SDA */ RCAR_GP_PIN(5, 13), RCAR_GP_PIN(5, 14), }; static const unsigned int i2c2_c_mux[] = { - SCL2_C_MARK, SDA2_C_MARK, + I2C2_SCL_C_MARK, I2C2_SDA_C_MARK, }; static const unsigned int i2c2_d_pins[] = { /* SCL, SDA */ RCAR_GP_PIN(5, 17), RCAR_GP_PIN(5, 18), }; static const unsigned int i2c2_d_mux[] = { - SCL2_D_MARK, SDA2_D_MARK, + I2C2_SCL_D_MARK, I2C2_SDA_D_MARK, }; /* - I2C3 ------------------------------------------------------------------- */ static const unsigned int i2c3_pins[] = { @@ -2434,28 +2441,28 @@ static const unsigned int i2c3_pins[] = { RCAR_GP_PIN(5, 15), RCAR_GP_PIN(5, 16), }; static const unsigned int i2c3_mux[] = { - SCL3_MARK, SDA3_MARK, + I2C3_SCL_MARK, I2C3_SDA_MARK, }; static const unsigned int i2c3_b_pins[] = { /* SCL, SDA */ RCAR_GP_PIN(4, 15), RCAR_GP_PIN(4, 16), }; static const unsigned int i2c3_b_mux[] = { - SCL3_B_MARK, SDA3_B_MARK, + I2C3_SCL_B_MARK, I2C3_SDA_B_MARK, }; static const unsigned int i2c3_c_pins[] = { /* SCL, SDA */ RCAR_GP_PIN(3, 22), RCAR_GP_PIN(3, 23), }; static const unsigned int i2c3_c_mux[] = { - SCL3_C_MARK, SDA3_C_MARK, + I2C3_SCL_C_MARK, I2C3_SDA_C_MARK, }; static const unsigned int i2c3_d_pins[] = { /* SCL, SDA */ RCAR_GP_PIN(0, 27), RCAR_GP_PIN(0, 28), }; static const unsigned int i2c3_d_mux[] = { - SCL3_D_MARK, SDA3_D_MARK, + I2C3_SCL_D_MARK, I2C3_SDA_D_MARK, }; /* - I2C4 ------------------------------------------------------------------- */ static const unsigned int i2c4_pins[] = { @@ -2463,21 +2470,21 @@ static const unsigned int i2c4_pins[] = { RCAR_GP_PIN(4, 13), RCAR_GP_PIN(4, 14), }; static const unsigned int i2c4_mux[] = { - SCL4_MARK, SDA4_MARK, + I2C4_SCL_MARK, I2C4_SDA_MARK, }; static const unsigned int i2c4_b_pins[] = { /* SCL, SDA */ RCAR_GP_PIN(4, 27), RCAR_GP_PIN(4, 28), }; static const unsigned int i2c4_b_mux[] = { - SCL4_B_MARK, SDA4_B_MARK, + I2C4_SCL_B_MARK, I2C4_SDA_B_MARK, }; static const unsigned int i2c4_c_pins[] = { /* SCL, SDA */ RCAR_GP_PIN(7, 13), RCAR_GP_PIN(7, 14), }; static const unsigned int i2c4_c_mux[] = { - SCL4_C_MARK, SDA4_C_MARK, + I2C4_SCL_C_MARK, I2C4_SDA_C_MARK, }; /* - I2C7 ------------------------------------------------------------------- */ static const unsigned int i2c7_pins[] = { @@ -2485,21 +2492,21 @@ static const unsigned int i2c7_pins[] = { RCAR_GP_PIN(5, 15), RCAR_GP_PIN(5, 16), }; static const unsigned int i2c7_mux[] = { - SCL7_MARK, SDA7_MARK, + IIC0_SCL_MARK, IIC0_SDA_MARK, }; static const unsigned int i2c7_b_pins[] = { /* SCL, SDA */ RCAR_GP_PIN(2, 2), RCAR_GP_PIN(2, 3), }; static const unsigned int i2c7_b_mux[] = { - SCL7_B_MARK, SDA7_B_MARK, + IIC0_SCL_B_MARK, IIC0_SDA_B_MARK, }; static const unsigned int i2c7_c_pins[] = { /* SCL, SDA */ RCAR_GP_PIN(6, 28), RCAR_GP_PIN(6, 29), }; static const unsigned int i2c7_c_mux[] = { - SCL7_C_MARK, SDA7_C_MARK, + IIC0_SCL_C_MARK, IIC0_SDA_C_MARK, }; /* - I2C8 ------------------------------------------------------------------- */ static const unsigned int i2c8_pins[] = { @@ -2507,21 +2514,21 @@ static const unsigned int i2c8_pins[] = { RCAR_GP_PIN(4, 13), RCAR_GP_PIN(4, 14), }; static const unsigned int i2c8_mux[] = { - SCL8_MARK, SDA8_MARK, + IIC1_SCL_MARK, IIC1_SDA_MARK, }; static const unsigned int i2c8_b_pins[] = { /* SCL, SDA */ RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 5), }; static const unsigned int i2c8_b_mux[] = { - SCL8_B_MARK, SDA8_B_MARK, + IIC1_SCL_B_MARK, IIC1_SDA_B_MARK, }; static const unsigned int i2c8_c_pins[] = { /* SCL, SDA */ RCAR_GP_PIN(6, 22), RCAR_GP_PIN(6, 23), }; static const unsigned int i2c8_c_mux[] = { - SCL8_C_MARK, SDA8_C_MARK, + IIC1_SCL_C_MARK, IIC1_SDA_C_MARK, }; /* - INTC ------------------------------------------------------------------- */ static const unsigned int intc_irq0_pins[] = { @@ -5642,7 +5649,7 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { FN_A1, FN_MSIOF0_SYNC_B, 0, 0, /* IP0_18_16 [3] */ - FN_A0, FN_ATAWR0_N_C, FN_MSIOF0_SCK_B, FN_SCL0_C, FN_PWM2_B, + FN_A0, FN_ATAWR0_N_C, FN_MSIOF0_SCK_B, FN_I2C0_SCL_C, FN_PWM2_B, 0, 0, 0, /* IP0_15 [1] */ FN_D15, 0, @@ -5683,7 +5690,7 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { FN_A18, FN_DREQ1, FN_SCIFA1_RXD_C, 0, FN_SCIFB1_RXD_C, 0, 0, 0, /* IP1_28_26 [3] */ - FN_A17, FN_DACK2_B, 0, FN_SDA0_C, + FN_A17, FN_DACK2_B, 0, FN_I2C0_SDA_C, 0, 0, 0, 0, /* IP1_25_23 [3] */ FN_A16, FN_DREQ2_B, FN_FMCLK_C, 0, FN_SCIFA1_SCK_B, @@ -5698,17 +5705,17 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { FN_A13, FN_ATAG0_N_C, FN_BPFCLK, FN_MSIOF1_SS1_D, 0, 0, 0, 0, /* IP1_13_11 [3] */ - FN_A12, FN_FMCLK, FN_SDA3_D, FN_MSIOF1_SCK_D, + FN_A12, FN_FMCLK, FN_I2C3_SDA_D, FN_MSIOF1_SCK_D, 0, 0, 0, 0, /* IP1_10_8 [3] */ - FN_A11, FN_MSIOF1_RXD, FN_SCL3_D, FN_MSIOF1_RXD_D, + FN_A11, FN_MSIOF1_RXD, FN_I2C3_SCL_D, FN_MSIOF1_RXD_D, 0, 0, 0, 0, /* IP1_7_6 [2] */ FN_A10, FN_MSIOF1_TXD, 0, FN_MSIOF1_TXD_D, /* IP1_5_4 [2] */ - FN_A9, FN_MSIOF1_SS2, FN_SDA0, 0, + FN_A9, FN_MSIOF1_SS2, FN_I2C0_SDA, 0, /* IP1_3_2 [2] */ - FN_A8, FN_MSIOF1_SS1, FN_SCL0, 0, + FN_A8, FN_MSIOF1_SS1, FN_I2C0_SCL, 0, /* IP1_1_0 [2] */ FN_A7, FN_MSIOF1_SYNC, 0, 0, } @@ -5726,9 +5733,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { /* IP2_24_23 [2] */ FN_EX_CS1_N, FN_MSIOF2_SCK, 0, 0, /* IP2_22_21 [2] */ - FN_CS1_N_A26, FN_ATADIR0_N_B, FN_SDA1, 0, + FN_CS1_N_A26, FN_ATADIR0_N_B, FN_I2C1_SDA, 0, /* IP2_20_19 [2] */ - FN_CS0_N, FN_ATAG0_N_B, FN_SCL1, 0, + FN_CS0_N, FN_ATAG0_N_B, FN_I2C1_SCL, 0, /* IP2_18_16 [3] */ FN_A25, FN_DACK2, FN_SSL, FN_DREQ1_C, FN_RX1, FN_SCIFA1_RXD, 0, 0, @@ -5811,23 +5818,23 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { FN_SSI_SDATA2, FN_GPS_MAG_B, FN_TX2_E, FN_HRTS1_N_E, 0, 0, 0, 0, /* IP4_15_13 [3] */ - FN_SSI_WS2, FN_SDA2, FN_GPS_SIGN_B, FN_RX2_E, + FN_SSI_WS2, FN_I2C2_SDA, FN_GPS_SIGN_B, FN_RX2_E, FN_GLO_Q1_D, FN_HCTS1_N_E, 0, 0, /* IP4_12_10 [3] */ - FN_SSI_SCK2, FN_SCL2, FN_GPS_CLK_B, FN_GLO_Q0_D, FN_HSCK1_E, + FN_SSI_SCK2, FN_I2C2_SCL, FN_GPS_CLK_B, FN_GLO_Q0_D, FN_HSCK1_E, 0, 0, 0, /* IP4_9_8 [2] */ - FN_SSI_SDATA1, FN_SDA1_B, FN_SDA8_B, FN_MSIOF2_RXD_C, + FN_SSI_SDATA1, FN_I2C1_SDA_B, FN_IIC1_SDA_B, FN_MSIOF2_RXD_C, /* IP4_7_5 [3] */ - FN_SSI_WS1, FN_SCL1_B, FN_SCL8_B, FN_MSIOF2_TXD_C, FN_GLO_I1_D, - 0, 0, 0, + FN_SSI_WS1, FN_I2C1_SCL_B, FN_IIC1_SCL_B, FN_MSIOF2_TXD_C, + FN_GLO_I1_D, 0, 0, 0, /* IP4_4_2 [3] */ - FN_SSI_SCK1, FN_SDA0_B, FN_SDA7_B, + FN_SSI_SCK1, FN_I2C0_SDA_B, FN_IIC0_SDA_B, FN_MSIOF2_SYNC_C, FN_GLO_I0_D, 0, 0, 0, /* IP4_1_0 [2] */ - FN_SSI_SDATA0, FN_SCL0_B, FN_SCL7_B, FN_MSIOF2_SCK_C, } + FN_SSI_SDATA0, FN_I2C0_SCL_B, FN_IIC0_SCL_B, FN_MSIOF2_SCK_C, } }, { PINMUX_CFG_REG_VAR("IPSR5", 0xE6060034, 32, 3, 3, 2, 2, 2, 3, 2, 3, 3, 3, 3, 3) { @@ -5881,15 +5888,15 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { 0, 0, 0, /* IP6_23_21 [3] */ FN_IRQ6, FN_HSCK1_C, FN_MSIOF1_SS2_B, - FN_SDA1_E, FN_MSIOF2_SYNC_E, + FN_I2C1_SDA_E, FN_MSIOF2_SYNC_E, 0, 0, 0, /* IP6_20_19 [2] */ - FN_IRQ5, FN_HTX1_C, FN_SCL1_E, FN_MSIOF2_SCK_E, + FN_IRQ5, FN_HTX1_C, FN_I2C1_SCL_E, FN_MSIOF2_SCK_E, /* IP6_18_16 [3] */ - FN_IRQ4, FN_HRX1_C, FN_SDA4_C, FN_MSIOF2_RXD_E, FN_INTC_IRQ4_N, - 0, 0, 0, + FN_IRQ4, FN_HRX1_C, FN_I2C4_SDA_C, FN_MSIOF2_RXD_E, + FN_INTC_IRQ4_N, 0, 0, 0, /* IP6_15_14 [2] */ - FN_IRQ3, FN_SCL4_C, FN_MSIOF2_TXD_E, FN_INTC_IRQ3_N, + FN_IRQ3, FN_I2C4_SCL_C, FN_MSIOF2_TXD_E, FN_INTC_IRQ3_N, /* IP6_13_12 [2] */ FN_IRQ2, FN_SCIFB1_TXD_D, FN_INTC_IRQ2_N, 0, /* IP6_11_10 [2] */ @@ -5994,7 +6001,7 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { { PINMUX_CFG_REG_VAR("IPSR9", 0xE6060044, 32, 3, 2, 2, 2, 2, 2, 2, 1, 3, 1, 1, 3, 1, 1, 3, 3) { /* IP9_31_29 [3] */ - FN_VI0_G0, FN_SCL8, FN_STP_IVCXO27_0_C, FN_SCL4, + FN_VI0_G0, FN_IIC1_SCL, FN_STP_IVCXO27_0_C, FN_I2C4_SCL, FN_HCTS2_N, FN_SCIFB2_CTS_N, FN_ATAWR1_N, 0, /* IP9_28_27 [2] */ FN_VI0_DATA3_VI0_B3, FN_SCIF3_SCK_B, FN_SCIFA3_SCK_B, 0, @@ -6012,7 +6019,7 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { FN_DU1_DISP, FN_QPOLA, /* IP9_15_13 [3] */ FN_DU1_EXODDF_DU1_ODDF_DISP_CDE, FN_QCPV_QDE, - FN_CAN0_RX, FN_RX3_B, FN_SDA2_B, + FN_CAN0_RX, FN_RX3_B, FN_I2C2_SDA_B, 0, 0, 0, /* IP9_12 [1] */ FN_DU1_EXVSYNC_DU1_VSYNC, FN_QSTB_QHE, @@ -6020,24 +6027,24 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { FN_DU1_EXHSYNC_DU1_HSYNC, FN_QSTH_QHS, /* IP9_10_8 [3] */ FN_DU1_DOTCLKOUT1, FN_QSTVB_QVE, FN_CAN0_TX, - FN_TX3_B, FN_SCL2_B, FN_PWM4, + FN_TX3_B, FN_I2C2_SCL_B, FN_PWM4, 0, 0, /* IP9_7 [1] */ FN_DU1_DOTCLKOUT0, FN_QCLK, /* IP9_6 [1] */ FN_DU1_DOTCLKIN, FN_QSTVA_QVS, /* IP9_5_3 [3] */ - FN_DU1_DB7, FN_LCDOUT23, FN_SDA3_C, + FN_DU1_DB7, FN_LCDOUT23, FN_I2C3_SDA_C, FN_SCIF3_SCK, FN_SCIFA3_SCK, 0, 0, 0, /* IP9_2_0 [3] */ - FN_DU1_DB6, FN_LCDOUT22, FN_SCL3_C, FN_RX3, FN_SCIFA3_RXD, + FN_DU1_DB6, FN_LCDOUT22, FN_I2C3_SCL_C, FN_RX3, FN_SCIFA3_RXD, 0, 0, 0, } }, { PINMUX_CFG_REG_VAR("IPSR10", 0xE6060048, 32, 3, 2, 2, 3, 3, 2, 2, 3, 3, 3, 3, 3) { /* IP10_31_29 [3] */ - FN_VI0_R4, FN_VI2_DATA5, FN_GLO_SCLK_B, FN_TX0_C, FN_SCL1_D, + FN_VI0_R4, FN_VI2_DATA5, FN_GLO_SCLK_B, FN_TX0_C, FN_I2C1_SCL_D, 0, 0, 0, /* IP10_28_27 [2] */ FN_VI0_R3, FN_VI2_DATA4, FN_GLO_Q1_B, FN_TS_SPSYNC0_C, @@ -6062,22 +6069,22 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { FN_HTX2, FN_SCIFB2_TXD, FN_SCIFB0_SCK_D, 0, 0, /* IP10_8_6 [3] */ - FN_VI0_G3, FN_VI2_VSYNC_N, FN_STP_ISEN_0_C, FN_SDA3_B, + FN_VI0_G3, FN_VI2_VSYNC_N, FN_STP_ISEN_0_C, FN_I2C3_SDA_B, FN_HRX2, FN_SCIFB2_RXD, FN_ATACS01_N, 0, /* IP10_5_3 [3] */ - FN_VI0_G2, FN_VI2_HSYNC_N, FN_STP_ISD_0_C, FN_SCL3_B, + FN_VI0_G2, FN_VI2_HSYNC_N, FN_STP_ISD_0_C, FN_I2C3_SCL_B, FN_HSCK2, FN_SCIFB2_SCK, FN_ATARD1_N, 0, /* IP10_2_0 [3] */ - FN_VI0_G1, FN_SDA8, FN_STP_ISCLK_0_C, FN_SDA4, + FN_VI0_G1, FN_IIC1_SDA, FN_STP_ISCLK_0_C, FN_I2C4_SDA, FN_HRTS2_N, FN_SCIFB2_RTS_N, FN_ATADIR1_N, 0, } }, { PINMUX_CFG_REG_VAR("IPSR11", 0xE606004C, 32, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 3) { /* IP11_31_30 [2] */ - FN_ETH_CRS_DV, FN_AVB_LINK, FN_SDA2_C, 0, + FN_ETH_CRS_DV, FN_AVB_LINK, FN_I2C2_SDA_C, 0, /* IP11_29_28 [2] */ - FN_ETH_MDIO, FN_AVB_RX_CLK, FN_SCL2_C, 0, + FN_ETH_MDIO, FN_AVB_RX_CLK, FN_I2C2_SCL_C, 0, /* IP11_27 [1] */ FN_VI1_DATA7, FN_AVB_MDC, /* IP11_26 [1] */ @@ -6110,13 +6117,13 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { 0, 0, 0, /* IP11_8_6 [3] */ FN_VI0_R7, FN_GLO_RFON_B, FN_RX1_C, FN_CAN0_RX_E, - FN_SDA4_B, FN_HRX1_D, FN_SCIFB0_RXD_D, 0, + FN_I2C4_SDA_B, FN_HRX1_D, FN_SCIFB0_RXD_D, 0, /* IP11_5_3 [3] */ - FN_VI0_R6, FN_VI2_DATA7, FN_GLO_SS_B, FN_TX1_C, FN_SCL4_B, + FN_VI0_R6, FN_VI2_DATA7, FN_GLO_SS_B, FN_TX1_C, FN_I2C4_SCL_B, 0, 0, 0, /* IP11_2_0 [3] */ - FN_VI0_R5, FN_VI2_DATA6, FN_GLO_SDATA_B, FN_RX0_C, FN_SDA1_D, - 0, 0, 0, } + FN_VI0_R5, FN_VI2_DATA6, FN_GLO_SDATA_B, FN_RX0_C, + FN_I2C1_SDA_D, 0, 0, 0, } }, { PINMUX_CFG_REG_VAR("IPSR12", 0xE6060050, 32, 2, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 2, 2) { @@ -6148,16 +6155,16 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { 0, 0, 0, /* IP12_9_7 [3] */ FN_ETH_LINK, FN_AVB_TXD0, FN_CAN0_RX_C, - FN_SDA2_D, FN_MSIOF1_SCK_E, + FN_I2C2_SDA_D, FN_MSIOF1_SCK_E, 0, 0, 0, /* IP12_6_4 [3] */ FN_ETH_RXD1, FN_AVB_GTXREFCLK, FN_CAN0_TX_C, - FN_SCL2_D, FN_MSIOF1_RXD_E, + FN_I2C2_SCL_D, FN_MSIOF1_RXD_E, 0, 0, 0, /* IP12_3_2 [2] */ - FN_ETH_RXD0, FN_AVB_PHY_INT, FN_SDA3, FN_SDA7, + FN_ETH_RXD0, FN_AVB_PHY_INT, FN_I2C3_SDA, FN_IIC0_SDA, /* IP12_1_0 [2] */ - FN_ETH_RX_ER, FN_AVB_CRS, FN_SCL3, FN_SCL7, } + FN_ETH_RX_ER, FN_AVB_CRS, FN_I2C3_SCL, FN_IIC0_SCL, } }, { PINMUX_CFG_REG_VAR("IPSR13", 0xE6060054, 32, 1, 3, 1, 1, 1, 2, 1, 3, 3, 1, 1, 1, 1, 1, 1, @@ -6165,7 +6172,7 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { /* IP13_31 [1] */ 0, 0, /* IP13_30_28 [3] */ - FN_SD1_CD, FN_PWM0, FN_TPU_TO0, FN_SCL1_C, + FN_SD1_CD, FN_PWM0, FN_TPU_TO0, FN_I2C1_SCL_C, 0, 0, 0, 0, /* IP13_27 [1] */ FN_SD1_DATA3, FN_IERX_B, @@ -6214,10 +6221,10 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 2) { /* IP14_31_29 [3] */ FN_MSIOF0_SS2, FN_MMC_D7, FN_ADICHS2, FN_RX0_E, - FN_VI1_VSYNC_N_C, FN_SDA7_C, FN_VI1_G5_B, 0, + FN_VI1_VSYNC_N_C, FN_IIC0_SDA_C, FN_VI1_G5_B, 0, /* IP14_28_26 [3] */ FN_MSIOF0_SS1, FN_MMC_D6, FN_ADICHS1, FN_TX0_E, - FN_VI1_HSYNC_N_C, FN_SCL7_C, FN_VI1_G4_B, 0, + FN_VI1_HSYNC_N_C, FN_IIC0_SCL_C, FN_VI1_G4_B, 0, /* IP14_25_23 [3] */ FN_MSIOF0_RXD, FN_ADICHS0, 0, FN_VI1_DATA0_C, FN_VI1_G3_B, 0, 0, 0, @@ -6233,10 +6240,10 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { FN_VI1_CLK_C, FN_VI1_G0_B, 0, 0, /* IP14_13_11 [3] */ - FN_SD2_WP, FN_MMC_D5, FN_SDA8_C, FN_RX5_B, FN_SCIFA5_RXD_C, + FN_SD2_WP, FN_MMC_D5, FN_IIC1_SDA_C, FN_RX5_B, FN_SCIFA5_RXD_C, 0, 0, 0, /* IP14_10_8 [3] */ - FN_SD2_CD, FN_MMC_D4, FN_SCL8_C, FN_TX5_B, FN_SCIFA5_TXD_C, + FN_SD2_CD, FN_MMC_D4, FN_IIC1_SCL_C, FN_TX5_B, FN_SCIFA5_TXD_C, 0, 0, 0, /* IP14_7 [1] */ FN_SD2_DATA3, FN_MMC_D3, @@ -6251,7 +6258,7 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { /* IP14_2 [1] */ FN_SD2_CLK, FN_MMC_CLK, /* IP14_1_0 [2] */ - FN_SD1_WP, FN_PWM1_B, FN_SDA1_C, 0, } + FN_SD1_WP, FN_PWM1_B, FN_I2C1_SDA_C, 0, } }, { PINMUX_CFG_REG_VAR("IPSR15", 0xE606005C, 32, 2, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2) { @@ -6428,14 +6435,14 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { /* SEL_CANCLK [2] */ FN_SEL_CANCLK_0, FN_SEL_CANCLK_1, FN_SEL_CANCLK_2, FN_SEL_CANCLK_3, - /* SEL_IIC8 [2] */ - FN_SEL_IIC8_0, FN_SEL_IIC8_1, FN_SEL_IIC8_2, 0, - /* SEL_IIC7 [2] */ - FN_SEL_IIC7_0, FN_SEL_IIC7_1, FN_SEL_IIC7_2, 0, - /* SEL_IIC4 [2] */ - FN_SEL_IIC4_0, FN_SEL_IIC4_1, FN_SEL_IIC4_2, 0, - /* SEL_IIC3 [2] */ - FN_SEL_IIC3_0, FN_SEL_IIC3_1, FN_SEL_IIC3_2, FN_SEL_IIC3_3, + /* SEL_IIC1 [2] */ + FN_SEL_IIC1_0, FN_SEL_IIC1_1, FN_SEL_IIC1_2, 0, + /* SEL_IIC0 [2] */ + FN_SEL_IIC0_0, FN_SEL_IIC0_1, FN_SEL_IIC0_2, 0, + /* SEL_I2C4 [2] */ + FN_SEL_I2C4_0, FN_SEL_I2C4_1, FN_SEL_I2C4_2, 0, + /* SEL_I2C3 [2] */ + FN_SEL_I2C3_0, FN_SEL_I2C3_1, FN_SEL_I2C3_2, FN_SEL_I2C3_3, /* SEL_SCIF3 [2] */ FN_SEL_SCIF3_0, FN_SEL_SCIF3_1, FN_SEL_SCIF3_2, FN_SEL_SCIF3_3, /* SEL_IEB [2] */ @@ -6446,14 +6453,14 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { FN_SEL_SCIF5_0, FN_SEL_SCIF5_1, /* RESERVED [2] */ 0, 0, 0, 0, - /* SEL_IIC2 [2] */ - FN_SEL_IIC2_0, FN_SEL_IIC2_1, FN_SEL_IIC2_2, FN_SEL_IIC2_3, - /* SEL_IIC1 [3] */ - FN_SEL_IIC1_0, FN_SEL_IIC1_1, FN_SEL_IIC1_2, FN_SEL_IIC1_3, - FN_SEL_IIC1_4, + /* SEL_I2C2 [2] */ + FN_SEL_I2C2_0, FN_SEL_I2C2_1, FN_SEL_I2C2_2, FN_SEL_I2C2_3, + /* SEL_I2C1 [3] */ + FN_SEL_I2C1_0, FN_SEL_I2C1_1, FN_SEL_I2C1_2, FN_SEL_I2C1_3, + FN_SEL_I2C1_4, 0, 0, 0, - /* SEL_IIC0 [2] */ - FN_SEL_IIC0_0, FN_SEL_IIC0_1, FN_SEL_IIC0_2, 0, + /* SEL_I2C0 [2] */ + FN_SEL_I2C0_0, FN_SEL_I2C0_1, FN_SEL_I2C0_2, 0, /* RESERVED [2] */ 0, 0, 0, 0, /* RESERVED [2] */ From 1e2ef7cc870df7fb8f153ee93704aee6efe443b7 Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Thu, 10 Aug 2017 14:15:04 +0100 Subject: [PATCH 0132/1149] pinctrl: sh-pfc: r8a7791: Add R8A7743 support Renesas RZ/G1M (R8A7743) is pin compatible with R-Car M2-W/N (R8A7791/3), however it doesn't have several automotive specific peripherals. Annotate all the items that only exist on the R-Car SoCs and only supply the pin groups/functions existing on a given SoC... Signed-off-by: Sergei Shtylyov Acked-by: Rob Herring [geert: Drop annotations, as they are implied by pin groups/functions] Signed-off-by: Geert Uytterhoeven (cherry picked from commit 8df62701496d26b2c2578502e704a7a84993b2ba) Signed-off-by: Biju Das Conflicts: drivers/pinctrl/sh-pfc/pfc-r8a7791.c drivers/pinctrl/sh-pfc/sh_pfc.h Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- .../bindings/pinctrl/renesas,pfc-pinctrl.txt | 1 + drivers/pinctrl/sh-pfc/Kconfig | 5 + drivers/pinctrl/sh-pfc/Makefile | 1 + drivers/pinctrl/sh-pfc/core.c | 6 + drivers/pinctrl/sh-pfc/core.h | 1 + drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 881 +++++++++--------- 6 files changed, 474 insertions(+), 421 deletions(-) diff --git a/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt index ffadb7a371f6..39897191ecf5 100644 --- a/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt @@ -13,6 +13,7 @@ Required Properties: - "renesas,pfc-emev2": for EMEV2 (EMMA Mobile EV2) compatible pin-controller. - "renesas,pfc-r8a73a4": for R8A73A4 (R-Mobile APE6) compatible pin-controller. - "renesas,pfc-r8a7740": for R8A7740 (R-Mobile A1) compatible pin-controller. + - "renesas,pfc-r8a7743": for R8A7743 (RZ/G1M) compatible pin-controller. - "renesas,pfc-r8a7778": for R8A7778 (R-Mobile M1) compatible pin-controller. - "renesas,pfc-r8a7779": for R8A7779 (R-Car H1) compatible pin-controller. - "renesas,pfc-r8a7790": for R8A7790 (R-Car H2) compatible pin-controller. diff --git a/drivers/pinctrl/sh-pfc/Kconfig b/drivers/pinctrl/sh-pfc/Kconfig index 35d6e95fa21f..10d5513f2c36 100644 --- a/drivers/pinctrl/sh-pfc/Kconfig +++ b/drivers/pinctrl/sh-pfc/Kconfig @@ -35,6 +35,11 @@ config PINCTRL_PFC_R8A7740 depends on ARCH_R8A7740 select PINCTRL_SH_PFC +config PINCTRL_PFC_R8A7743 + def_bool y + depends on ARCH_R8A7743 + select PINCTRL_SH_PFC + config PINCTRL_PFC_R8A7778 def_bool y depends on ARCH_R8A7778 diff --git a/drivers/pinctrl/sh-pfc/Makefile b/drivers/pinctrl/sh-pfc/Makefile index 173305fa3811..93905003e5c0 100644 --- a/drivers/pinctrl/sh-pfc/Makefile +++ b/drivers/pinctrl/sh-pfc/Makefile @@ -6,6 +6,7 @@ obj-$(CONFIG_PINCTRL_SH_PFC) += sh-pfc.o obj-$(CONFIG_PINCTRL_PFC_EMEV2) += pfc-emev2.o obj-$(CONFIG_PINCTRL_PFC_R8A73A4) += pfc-r8a73a4.o obj-$(CONFIG_PINCTRL_PFC_R8A7740) += pfc-r8a7740.o +obj-$(CONFIG_PINCTRL_PFC_R8A7743) += pfc-r8a7791.o obj-$(CONFIG_PINCTRL_PFC_R8A7778) += pfc-r8a7778.o obj-$(CONFIG_PINCTRL_PFC_R8A7779) += pfc-r8a7779.o obj-$(CONFIG_PINCTRL_PFC_R8A7790) += pfc-r8a7790.o diff --git a/drivers/pinctrl/sh-pfc/core.c b/drivers/pinctrl/sh-pfc/core.c index 699efb1a8c45..c71572c8f863 100644 --- a/drivers/pinctrl/sh-pfc/core.c +++ b/drivers/pinctrl/sh-pfc/core.c @@ -453,6 +453,12 @@ static const struct of_device_id sh_pfc_of_table[] = { .data = &r8a7740_pinmux_info, }, #endif +#ifdef CONFIG_PINCTRL_PFC_R8A7743 + { + .compatible = "renesas,pfc-r8a7743", + .data = &r8a7743_pinmux_info, + }, +#endif #ifdef CONFIG_PINCTRL_PFC_R8A7778 { .compatible = "renesas,pfc-r8a7778", diff --git a/drivers/pinctrl/sh-pfc/core.h b/drivers/pinctrl/sh-pfc/core.h index 62f53b22ae85..d8d0edd471bf 100644 --- a/drivers/pinctrl/sh-pfc/core.h +++ b/drivers/pinctrl/sh-pfc/core.h @@ -69,6 +69,7 @@ int sh_pfc_config_mux(struct sh_pfc *pfc, unsigned mark, int pinmux_type); extern const struct sh_pfc_soc_info emev2_pinmux_info; extern const struct sh_pfc_soc_info r8a73a4_pinmux_info; extern const struct sh_pfc_soc_info r8a7740_pinmux_info; +extern const struct sh_pfc_soc_info r8a7743_pinmux_info; extern const struct sh_pfc_soc_info r8a7778_pinmux_info; extern const struct sh_pfc_soc_info r8a7779_pinmux_info; extern const struct sh_pfc_soc_info r8a7790_pinmux_info; diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c index 22831d8a6a70..33d135784111 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c @@ -1,8 +1,8 @@ /* - * r8a7791 processor support - PFC hardware block. + * r8a7791/r8a7743 processor support - PFC hardware block. * - * Copyright (C) 2013 Renesas Electronics Corporation - * Copyright (C) 2014-2015 Cogent Embedded, Inc. + * Copyright (C) 2017 Renesas Electronics Corporation + * Copyright (C) 2014-2017 Cogent Embedded, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 @@ -4423,357 +4423,364 @@ static const unsigned int vin2_clk_mux[] = { VI2_CLK_MARK, }; -static const struct sh_pfc_pin_group pinmux_groups[] = { - SH_PFC_PIN_GROUP(adi_common), - SH_PFC_PIN_GROUP(adi_chsel0), - SH_PFC_PIN_GROUP(adi_chsel1), - SH_PFC_PIN_GROUP(adi_chsel2), - SH_PFC_PIN_GROUP(adi_common_b), - SH_PFC_PIN_GROUP(adi_chsel0_b), - SH_PFC_PIN_GROUP(adi_chsel1_b), - SH_PFC_PIN_GROUP(adi_chsel2_b), - SH_PFC_PIN_GROUP(audio_clk_a), - SH_PFC_PIN_GROUP(audio_clk_b), - SH_PFC_PIN_GROUP(audio_clk_b_b), - SH_PFC_PIN_GROUP(audio_clk_c), - SH_PFC_PIN_GROUP(audio_clkout), - SH_PFC_PIN_GROUP(avb_link), - SH_PFC_PIN_GROUP(avb_magic), - SH_PFC_PIN_GROUP(avb_phy_int), - SH_PFC_PIN_GROUP(avb_mdio), - SH_PFC_PIN_GROUP(avb_mii), - SH_PFC_PIN_GROUP(avb_gmii), - SH_PFC_PIN_GROUP(can0_data), - SH_PFC_PIN_GROUP(can0_data_b), - SH_PFC_PIN_GROUP(can0_data_c), - SH_PFC_PIN_GROUP(can0_data_d), - SH_PFC_PIN_GROUP(can0_data_e), - SH_PFC_PIN_GROUP(can0_data_f), - SH_PFC_PIN_GROUP(can1_data), - SH_PFC_PIN_GROUP(can1_data_b), - SH_PFC_PIN_GROUP(can1_data_c), - SH_PFC_PIN_GROUP(can1_data_d), - SH_PFC_PIN_GROUP(can_clk), - SH_PFC_PIN_GROUP(can_clk_b), - SH_PFC_PIN_GROUP(can_clk_c), - SH_PFC_PIN_GROUP(can_clk_d), - SH_PFC_PIN_GROUP(du_rgb666), - SH_PFC_PIN_GROUP(du_rgb888), - SH_PFC_PIN_GROUP(du_clk_out_0), - SH_PFC_PIN_GROUP(du_clk_out_1), - SH_PFC_PIN_GROUP(du_sync), - SH_PFC_PIN_GROUP(du_oddf), - SH_PFC_PIN_GROUP(du_cde), - SH_PFC_PIN_GROUP(du_disp), - SH_PFC_PIN_GROUP(du0_clk_in), - SH_PFC_PIN_GROUP(du1_clk_in), - SH_PFC_PIN_GROUP(du1_clk_in_b), - SH_PFC_PIN_GROUP(du1_clk_in_c), - SH_PFC_PIN_GROUP(eth_link), - SH_PFC_PIN_GROUP(eth_magic), - SH_PFC_PIN_GROUP(eth_mdio), - SH_PFC_PIN_GROUP(eth_rmii), - SH_PFC_PIN_GROUP(hscif0_data), - SH_PFC_PIN_GROUP(hscif0_clk), - SH_PFC_PIN_GROUP(hscif0_ctrl), - SH_PFC_PIN_GROUP(hscif0_data_b), - SH_PFC_PIN_GROUP(hscif0_ctrl_b), - SH_PFC_PIN_GROUP(hscif0_data_c), - SH_PFC_PIN_GROUP(hscif0_clk_c), - SH_PFC_PIN_GROUP(hscif1_data), - SH_PFC_PIN_GROUP(hscif1_clk), - SH_PFC_PIN_GROUP(hscif1_ctrl), - SH_PFC_PIN_GROUP(hscif1_data_b), - SH_PFC_PIN_GROUP(hscif1_data_c), - SH_PFC_PIN_GROUP(hscif1_clk_c), - SH_PFC_PIN_GROUP(hscif1_ctrl_c), - SH_PFC_PIN_GROUP(hscif1_data_d), - SH_PFC_PIN_GROUP(hscif1_data_e), - SH_PFC_PIN_GROUP(hscif1_clk_e), - SH_PFC_PIN_GROUP(hscif1_ctrl_e), - SH_PFC_PIN_GROUP(hscif2_data), - SH_PFC_PIN_GROUP(hscif2_clk), - SH_PFC_PIN_GROUP(hscif2_ctrl), - SH_PFC_PIN_GROUP(hscif2_data_b), - SH_PFC_PIN_GROUP(hscif2_ctrl_b), - SH_PFC_PIN_GROUP(hscif2_data_c), - SH_PFC_PIN_GROUP(hscif2_clk_c), - SH_PFC_PIN_GROUP(hscif2_data_d), - SH_PFC_PIN_GROUP(i2c0), - SH_PFC_PIN_GROUP(i2c0_b), - SH_PFC_PIN_GROUP(i2c0_c), - SH_PFC_PIN_GROUP(i2c1), - SH_PFC_PIN_GROUP(i2c1_b), - SH_PFC_PIN_GROUP(i2c1_c), - SH_PFC_PIN_GROUP(i2c1_d), - SH_PFC_PIN_GROUP(i2c1_e), - SH_PFC_PIN_GROUP(i2c2), - SH_PFC_PIN_GROUP(i2c2_b), - SH_PFC_PIN_GROUP(i2c2_c), - SH_PFC_PIN_GROUP(i2c2_d), - SH_PFC_PIN_GROUP(i2c3), - SH_PFC_PIN_GROUP(i2c3_b), - SH_PFC_PIN_GROUP(i2c3_c), - SH_PFC_PIN_GROUP(i2c3_d), - SH_PFC_PIN_GROUP(i2c4), - SH_PFC_PIN_GROUP(i2c4_b), - SH_PFC_PIN_GROUP(i2c4_c), - SH_PFC_PIN_GROUP(i2c7), - SH_PFC_PIN_GROUP(i2c7_b), - SH_PFC_PIN_GROUP(i2c7_c), - SH_PFC_PIN_GROUP(i2c8), - SH_PFC_PIN_GROUP(i2c8_b), - SH_PFC_PIN_GROUP(i2c8_c), - SH_PFC_PIN_GROUP(intc_irq0), - SH_PFC_PIN_GROUP(intc_irq1), - SH_PFC_PIN_GROUP(intc_irq2), - SH_PFC_PIN_GROUP(intc_irq3), - SH_PFC_PIN_GROUP(mlb_3pin), - SH_PFC_PIN_GROUP(mmc_data1), - SH_PFC_PIN_GROUP(mmc_data4), - SH_PFC_PIN_GROUP(mmc_data8), - SH_PFC_PIN_GROUP(mmc_ctrl), - SH_PFC_PIN_GROUP(msiof0_clk), - SH_PFC_PIN_GROUP(msiof0_sync), - SH_PFC_PIN_GROUP(msiof0_ss1), - SH_PFC_PIN_GROUP(msiof0_ss2), - SH_PFC_PIN_GROUP(msiof0_rx), - SH_PFC_PIN_GROUP(msiof0_tx), - SH_PFC_PIN_GROUP(msiof0_clk_b), - SH_PFC_PIN_GROUP(msiof0_sync_b), - SH_PFC_PIN_GROUP(msiof0_ss1_b), - SH_PFC_PIN_GROUP(msiof0_ss2_b), - SH_PFC_PIN_GROUP(msiof0_rx_b), - SH_PFC_PIN_GROUP(msiof0_tx_b), - SH_PFC_PIN_GROUP(msiof0_clk_c), - SH_PFC_PIN_GROUP(msiof0_sync_c), - SH_PFC_PIN_GROUP(msiof0_ss1_c), - SH_PFC_PIN_GROUP(msiof0_ss2_c), - SH_PFC_PIN_GROUP(msiof0_rx_c), - SH_PFC_PIN_GROUP(msiof0_tx_c), - SH_PFC_PIN_GROUP(msiof1_clk), - SH_PFC_PIN_GROUP(msiof1_sync), - SH_PFC_PIN_GROUP(msiof1_ss1), - SH_PFC_PIN_GROUP(msiof1_ss2), - SH_PFC_PIN_GROUP(msiof1_rx), - SH_PFC_PIN_GROUP(msiof1_tx), - SH_PFC_PIN_GROUP(msiof1_clk_b), - SH_PFC_PIN_GROUP(msiof1_sync_b), - SH_PFC_PIN_GROUP(msiof1_ss1_b), - SH_PFC_PIN_GROUP(msiof1_ss2_b), - SH_PFC_PIN_GROUP(msiof1_rx_b), - SH_PFC_PIN_GROUP(msiof1_tx_b), - SH_PFC_PIN_GROUP(msiof1_clk_c), - SH_PFC_PIN_GROUP(msiof1_sync_c), - SH_PFC_PIN_GROUP(msiof1_rx_c), - SH_PFC_PIN_GROUP(msiof1_tx_c), - SH_PFC_PIN_GROUP(msiof1_clk_d), - SH_PFC_PIN_GROUP(msiof1_sync_d), - SH_PFC_PIN_GROUP(msiof1_ss1_d), - SH_PFC_PIN_GROUP(msiof1_rx_d), - SH_PFC_PIN_GROUP(msiof1_tx_d), - SH_PFC_PIN_GROUP(msiof1_clk_e), - SH_PFC_PIN_GROUP(msiof1_sync_e), - SH_PFC_PIN_GROUP(msiof1_rx_e), - SH_PFC_PIN_GROUP(msiof1_tx_e), - SH_PFC_PIN_GROUP(msiof2_clk), - SH_PFC_PIN_GROUP(msiof2_sync), - SH_PFC_PIN_GROUP(msiof2_ss1), - SH_PFC_PIN_GROUP(msiof2_ss2), - SH_PFC_PIN_GROUP(msiof2_rx), - SH_PFC_PIN_GROUP(msiof2_tx), - SH_PFC_PIN_GROUP(msiof2_clk_b), - SH_PFC_PIN_GROUP(msiof2_sync_b), - SH_PFC_PIN_GROUP(msiof2_ss1_b), - SH_PFC_PIN_GROUP(msiof2_ss2_b), - SH_PFC_PIN_GROUP(msiof2_rx_b), - SH_PFC_PIN_GROUP(msiof2_tx_b), - SH_PFC_PIN_GROUP(msiof2_clk_c), - SH_PFC_PIN_GROUP(msiof2_sync_c), - SH_PFC_PIN_GROUP(msiof2_rx_c), - SH_PFC_PIN_GROUP(msiof2_tx_c), - SH_PFC_PIN_GROUP(msiof2_clk_d), - SH_PFC_PIN_GROUP(msiof2_sync_d), - SH_PFC_PIN_GROUP(msiof2_ss1_d), - SH_PFC_PIN_GROUP(msiof2_ss2_d), - SH_PFC_PIN_GROUP(msiof2_rx_d), - SH_PFC_PIN_GROUP(msiof2_tx_d), - SH_PFC_PIN_GROUP(msiof2_clk_e), - SH_PFC_PIN_GROUP(msiof2_sync_e), - SH_PFC_PIN_GROUP(msiof2_rx_e), - SH_PFC_PIN_GROUP(msiof2_tx_e), - SH_PFC_PIN_GROUP(pwm0), - SH_PFC_PIN_GROUP(pwm0_b), - SH_PFC_PIN_GROUP(pwm1), - SH_PFC_PIN_GROUP(pwm1_b), - SH_PFC_PIN_GROUP(pwm2), - SH_PFC_PIN_GROUP(pwm2_b), - SH_PFC_PIN_GROUP(pwm3), - SH_PFC_PIN_GROUP(pwm4), - SH_PFC_PIN_GROUP(pwm4_b), - SH_PFC_PIN_GROUP(pwm5), - SH_PFC_PIN_GROUP(pwm5_b), - SH_PFC_PIN_GROUP(pwm6), - SH_PFC_PIN_GROUP(qspi_ctrl), - SH_PFC_PIN_GROUP(qspi_data2), - SH_PFC_PIN_GROUP(qspi_data4), - SH_PFC_PIN_GROUP(qspi_ctrl_b), - SH_PFC_PIN_GROUP(qspi_data2_b), - SH_PFC_PIN_GROUP(qspi_data4_b), - SH_PFC_PIN_GROUP(scif0_data), - SH_PFC_PIN_GROUP(scif0_data_b), - SH_PFC_PIN_GROUP(scif0_data_c), - SH_PFC_PIN_GROUP(scif0_data_d), - SH_PFC_PIN_GROUP(scif0_data_e), - SH_PFC_PIN_GROUP(scif1_data), - SH_PFC_PIN_GROUP(scif1_data_b), - SH_PFC_PIN_GROUP(scif1_clk_b), - SH_PFC_PIN_GROUP(scif1_data_c), - SH_PFC_PIN_GROUP(scif1_data_d), - SH_PFC_PIN_GROUP(scif2_data), - SH_PFC_PIN_GROUP(scif2_data_b), - SH_PFC_PIN_GROUP(scif2_clk_b), - SH_PFC_PIN_GROUP(scif2_data_c), - SH_PFC_PIN_GROUP(scif2_data_e), - SH_PFC_PIN_GROUP(scif3_data), - SH_PFC_PIN_GROUP(scif3_clk), - SH_PFC_PIN_GROUP(scif3_data_b), - SH_PFC_PIN_GROUP(scif3_clk_b), - SH_PFC_PIN_GROUP(scif3_data_c), - SH_PFC_PIN_GROUP(scif3_data_d), - SH_PFC_PIN_GROUP(scif4_data), - SH_PFC_PIN_GROUP(scif4_data_b), - SH_PFC_PIN_GROUP(scif4_data_c), - SH_PFC_PIN_GROUP(scif5_data), - SH_PFC_PIN_GROUP(scif5_data_b), - SH_PFC_PIN_GROUP(scifa0_data), - SH_PFC_PIN_GROUP(scifa0_data_b), - SH_PFC_PIN_GROUP(scifa1_data), - SH_PFC_PIN_GROUP(scifa1_clk), - SH_PFC_PIN_GROUP(scifa1_data_b), - SH_PFC_PIN_GROUP(scifa1_clk_b), - SH_PFC_PIN_GROUP(scifa1_data_c), - SH_PFC_PIN_GROUP(scifa2_data), - SH_PFC_PIN_GROUP(scifa2_clk), - SH_PFC_PIN_GROUP(scifa2_data_b), - SH_PFC_PIN_GROUP(scifa3_data), - SH_PFC_PIN_GROUP(scifa3_clk), - SH_PFC_PIN_GROUP(scifa3_data_b), - SH_PFC_PIN_GROUP(scifa3_clk_b), - SH_PFC_PIN_GROUP(scifa3_data_c), - SH_PFC_PIN_GROUP(scifa3_clk_c), - SH_PFC_PIN_GROUP(scifa4_data), - SH_PFC_PIN_GROUP(scifa4_data_b), - SH_PFC_PIN_GROUP(scifa4_data_c), - SH_PFC_PIN_GROUP(scifa5_data), - SH_PFC_PIN_GROUP(scifa5_data_b), - SH_PFC_PIN_GROUP(scifa5_data_c), - SH_PFC_PIN_GROUP(scifb0_data), - SH_PFC_PIN_GROUP(scifb0_clk), - SH_PFC_PIN_GROUP(scifb0_ctrl), - SH_PFC_PIN_GROUP(scifb0_data_b), - SH_PFC_PIN_GROUP(scifb0_clk_b), - SH_PFC_PIN_GROUP(scifb0_ctrl_b), - SH_PFC_PIN_GROUP(scifb0_data_c), - SH_PFC_PIN_GROUP(scifb0_clk_c), - SH_PFC_PIN_GROUP(scifb0_data_d), - SH_PFC_PIN_GROUP(scifb0_clk_d), - SH_PFC_PIN_GROUP(scifb1_data), - SH_PFC_PIN_GROUP(scifb1_clk), - SH_PFC_PIN_GROUP(scifb1_ctrl), - SH_PFC_PIN_GROUP(scifb1_data_b), - SH_PFC_PIN_GROUP(scifb1_clk_b), - SH_PFC_PIN_GROUP(scifb1_data_c), - SH_PFC_PIN_GROUP(scifb1_clk_c), - SH_PFC_PIN_GROUP(scifb1_data_d), - SH_PFC_PIN_GROUP(scifb2_data), - SH_PFC_PIN_GROUP(scifb2_clk), - SH_PFC_PIN_GROUP(scifb2_ctrl), - SH_PFC_PIN_GROUP(scifb2_data_b), - SH_PFC_PIN_GROUP(scifb2_clk_b), - SH_PFC_PIN_GROUP(scifb2_ctrl_b), - SH_PFC_PIN_GROUP(scifb2_data_c), - SH_PFC_PIN_GROUP(scifb2_clk_c), - SH_PFC_PIN_GROUP(scifb2_data_d), - SH_PFC_PIN_GROUP(scif_clk), - SH_PFC_PIN_GROUP(scif_clk_b), - SH_PFC_PIN_GROUP(sdhi0_data1), - SH_PFC_PIN_GROUP(sdhi0_data4), - SH_PFC_PIN_GROUP(sdhi0_ctrl), - SH_PFC_PIN_GROUP(sdhi0_cd), - SH_PFC_PIN_GROUP(sdhi0_wp), - SH_PFC_PIN_GROUP(sdhi1_data1), - SH_PFC_PIN_GROUP(sdhi1_data4), - SH_PFC_PIN_GROUP(sdhi1_ctrl), - SH_PFC_PIN_GROUP(sdhi1_cd), - SH_PFC_PIN_GROUP(sdhi1_wp), - SH_PFC_PIN_GROUP(sdhi2_data1), - SH_PFC_PIN_GROUP(sdhi2_data4), - SH_PFC_PIN_GROUP(sdhi2_ctrl), - SH_PFC_PIN_GROUP(sdhi2_cd), - SH_PFC_PIN_GROUP(sdhi2_wp), - SH_PFC_PIN_GROUP(ssi0_data), - SH_PFC_PIN_GROUP(ssi0_data_b), - SH_PFC_PIN_GROUP(ssi0129_ctrl), - SH_PFC_PIN_GROUP(ssi0129_ctrl_b), - SH_PFC_PIN_GROUP(ssi1_data), - SH_PFC_PIN_GROUP(ssi1_data_b), - SH_PFC_PIN_GROUP(ssi1_ctrl), - SH_PFC_PIN_GROUP(ssi1_ctrl_b), - SH_PFC_PIN_GROUP(ssi2_data), - SH_PFC_PIN_GROUP(ssi2_ctrl), - SH_PFC_PIN_GROUP(ssi3_data), - SH_PFC_PIN_GROUP(ssi34_ctrl), - SH_PFC_PIN_GROUP(ssi4_data), - SH_PFC_PIN_GROUP(ssi4_ctrl), - SH_PFC_PIN_GROUP(ssi5_data), - SH_PFC_PIN_GROUP(ssi5_ctrl), - SH_PFC_PIN_GROUP(ssi6_data), - SH_PFC_PIN_GROUP(ssi6_ctrl), - SH_PFC_PIN_GROUP(ssi7_data), - SH_PFC_PIN_GROUP(ssi7_data_b), - SH_PFC_PIN_GROUP(ssi78_ctrl), - SH_PFC_PIN_GROUP(ssi78_ctrl_b), - SH_PFC_PIN_GROUP(ssi8_data), - SH_PFC_PIN_GROUP(ssi8_data_b), - SH_PFC_PIN_GROUP(ssi9_data), - SH_PFC_PIN_GROUP(ssi9_data_b), - SH_PFC_PIN_GROUP(ssi9_ctrl), - SH_PFC_PIN_GROUP(ssi9_ctrl_b), - SH_PFC_PIN_GROUP(usb0), - SH_PFC_PIN_GROUP(usb1), - VIN_DATA_PIN_GROUP(vin0_data, 24), - VIN_DATA_PIN_GROUP(vin0_data, 20), - SH_PFC_PIN_GROUP(vin0_data18), - VIN_DATA_PIN_GROUP(vin0_data, 16), - VIN_DATA_PIN_GROUP(vin0_data, 12), - VIN_DATA_PIN_GROUP(vin0_data, 10), - VIN_DATA_PIN_GROUP(vin0_data, 8), - SH_PFC_PIN_GROUP(vin0_sync), - SH_PFC_PIN_GROUP(vin0_field), - SH_PFC_PIN_GROUP(vin0_clkenb), - SH_PFC_PIN_GROUP(vin0_clk), - SH_PFC_PIN_GROUP(vin1_data8), - SH_PFC_PIN_GROUP(vin1_sync), - SH_PFC_PIN_GROUP(vin1_field), - SH_PFC_PIN_GROUP(vin1_clkenb), - SH_PFC_PIN_GROUP(vin1_clk), - VIN_DATA_PIN_GROUP(vin1_b_data, 24), - VIN_DATA_PIN_GROUP(vin1_b_data, 20), - SH_PFC_PIN_GROUP(vin1_b_data18), - VIN_DATA_PIN_GROUP(vin1_b_data, 16), - VIN_DATA_PIN_GROUP(vin1_b_data, 12), - VIN_DATA_PIN_GROUP(vin1_b_data, 10), - VIN_DATA_PIN_GROUP(vin1_b_data, 8), - SH_PFC_PIN_GROUP(vin1_b_sync), - SH_PFC_PIN_GROUP(vin1_b_field), - SH_PFC_PIN_GROUP(vin1_b_clkenb), - SH_PFC_PIN_GROUP(vin1_b_clk), - SH_PFC_PIN_GROUP(vin2_data8), - SH_PFC_PIN_GROUP(vin2_sync), - SH_PFC_PIN_GROUP(vin2_field), - SH_PFC_PIN_GROUP(vin2_clkenb), - SH_PFC_PIN_GROUP(vin2_clk), +static const struct { + struct sh_pfc_pin_group common[341]; + struct sh_pfc_pin_group r8a779x[9]; +} pinmux_groups = { + .common = { + SH_PFC_PIN_GROUP(audio_clk_a), + SH_PFC_PIN_GROUP(audio_clk_b), + SH_PFC_PIN_GROUP(audio_clk_b_b), + SH_PFC_PIN_GROUP(audio_clk_c), + SH_PFC_PIN_GROUP(audio_clkout), + SH_PFC_PIN_GROUP(avb_link), + SH_PFC_PIN_GROUP(avb_magic), + SH_PFC_PIN_GROUP(avb_phy_int), + SH_PFC_PIN_GROUP(avb_mdio), + SH_PFC_PIN_GROUP(avb_mii), + SH_PFC_PIN_GROUP(avb_gmii), + SH_PFC_PIN_GROUP(can0_data), + SH_PFC_PIN_GROUP(can0_data_b), + SH_PFC_PIN_GROUP(can0_data_c), + SH_PFC_PIN_GROUP(can0_data_d), + SH_PFC_PIN_GROUP(can0_data_e), + SH_PFC_PIN_GROUP(can0_data_f), + SH_PFC_PIN_GROUP(can1_data), + SH_PFC_PIN_GROUP(can1_data_b), + SH_PFC_PIN_GROUP(can1_data_c), + SH_PFC_PIN_GROUP(can1_data_d), + SH_PFC_PIN_GROUP(can_clk), + SH_PFC_PIN_GROUP(can_clk_b), + SH_PFC_PIN_GROUP(can_clk_c), + SH_PFC_PIN_GROUP(can_clk_d), + SH_PFC_PIN_GROUP(du_rgb666), + SH_PFC_PIN_GROUP(du_rgb888), + SH_PFC_PIN_GROUP(du_clk_out_0), + SH_PFC_PIN_GROUP(du_clk_out_1), + SH_PFC_PIN_GROUP(du_sync), + SH_PFC_PIN_GROUP(du_oddf), + SH_PFC_PIN_GROUP(du_cde), + SH_PFC_PIN_GROUP(du_disp), + SH_PFC_PIN_GROUP(du0_clk_in), + SH_PFC_PIN_GROUP(du1_clk_in), + SH_PFC_PIN_GROUP(du1_clk_in_b), + SH_PFC_PIN_GROUP(du1_clk_in_c), + SH_PFC_PIN_GROUP(eth_link), + SH_PFC_PIN_GROUP(eth_magic), + SH_PFC_PIN_GROUP(eth_mdio), + SH_PFC_PIN_GROUP(eth_rmii), + SH_PFC_PIN_GROUP(hscif0_data), + SH_PFC_PIN_GROUP(hscif0_clk), + SH_PFC_PIN_GROUP(hscif0_ctrl), + SH_PFC_PIN_GROUP(hscif0_data_b), + SH_PFC_PIN_GROUP(hscif0_ctrl_b), + SH_PFC_PIN_GROUP(hscif0_data_c), + SH_PFC_PIN_GROUP(hscif0_clk_c), + SH_PFC_PIN_GROUP(hscif1_data), + SH_PFC_PIN_GROUP(hscif1_clk), + SH_PFC_PIN_GROUP(hscif1_ctrl), + SH_PFC_PIN_GROUP(hscif1_data_b), + SH_PFC_PIN_GROUP(hscif1_data_c), + SH_PFC_PIN_GROUP(hscif1_clk_c), + SH_PFC_PIN_GROUP(hscif1_ctrl_c), + SH_PFC_PIN_GROUP(hscif1_data_d), + SH_PFC_PIN_GROUP(hscif1_data_e), + SH_PFC_PIN_GROUP(hscif1_clk_e), + SH_PFC_PIN_GROUP(hscif1_ctrl_e), + SH_PFC_PIN_GROUP(hscif2_data), + SH_PFC_PIN_GROUP(hscif2_clk), + SH_PFC_PIN_GROUP(hscif2_ctrl), + SH_PFC_PIN_GROUP(hscif2_data_b), + SH_PFC_PIN_GROUP(hscif2_ctrl_b), + SH_PFC_PIN_GROUP(hscif2_data_c), + SH_PFC_PIN_GROUP(hscif2_clk_c), + SH_PFC_PIN_GROUP(hscif2_data_d), + SH_PFC_PIN_GROUP(i2c0), + SH_PFC_PIN_GROUP(i2c0_b), + SH_PFC_PIN_GROUP(i2c0_c), + SH_PFC_PIN_GROUP(i2c1), + SH_PFC_PIN_GROUP(i2c1_b), + SH_PFC_PIN_GROUP(i2c1_c), + SH_PFC_PIN_GROUP(i2c1_d), + SH_PFC_PIN_GROUP(i2c1_e), + SH_PFC_PIN_GROUP(i2c2), + SH_PFC_PIN_GROUP(i2c2_b), + SH_PFC_PIN_GROUP(i2c2_c), + SH_PFC_PIN_GROUP(i2c2_d), + SH_PFC_PIN_GROUP(i2c3), + SH_PFC_PIN_GROUP(i2c3_b), + SH_PFC_PIN_GROUP(i2c3_c), + SH_PFC_PIN_GROUP(i2c3_d), + SH_PFC_PIN_GROUP(i2c4), + SH_PFC_PIN_GROUP(i2c4_b), + SH_PFC_PIN_GROUP(i2c4_c), + SH_PFC_PIN_GROUP(i2c7), + SH_PFC_PIN_GROUP(i2c7_b), + SH_PFC_PIN_GROUP(i2c7_c), + SH_PFC_PIN_GROUP(i2c8), + SH_PFC_PIN_GROUP(i2c8_b), + SH_PFC_PIN_GROUP(i2c8_c), + SH_PFC_PIN_GROUP(intc_irq0), + SH_PFC_PIN_GROUP(intc_irq1), + SH_PFC_PIN_GROUP(intc_irq2), + SH_PFC_PIN_GROUP(intc_irq3), + SH_PFC_PIN_GROUP(mmc_data1), + SH_PFC_PIN_GROUP(mmc_data4), + SH_PFC_PIN_GROUP(mmc_data8), + SH_PFC_PIN_GROUP(mmc_ctrl), + SH_PFC_PIN_GROUP(msiof0_clk), + SH_PFC_PIN_GROUP(msiof0_sync), + SH_PFC_PIN_GROUP(msiof0_ss1), + SH_PFC_PIN_GROUP(msiof0_ss2), + SH_PFC_PIN_GROUP(msiof0_rx), + SH_PFC_PIN_GROUP(msiof0_tx), + SH_PFC_PIN_GROUP(msiof0_clk_b), + SH_PFC_PIN_GROUP(msiof0_sync_b), + SH_PFC_PIN_GROUP(msiof0_ss1_b), + SH_PFC_PIN_GROUP(msiof0_ss2_b), + SH_PFC_PIN_GROUP(msiof0_rx_b), + SH_PFC_PIN_GROUP(msiof0_tx_b), + SH_PFC_PIN_GROUP(msiof0_clk_c), + SH_PFC_PIN_GROUP(msiof0_sync_c), + SH_PFC_PIN_GROUP(msiof0_ss1_c), + SH_PFC_PIN_GROUP(msiof0_ss2_c), + SH_PFC_PIN_GROUP(msiof0_rx_c), + SH_PFC_PIN_GROUP(msiof0_tx_c), + SH_PFC_PIN_GROUP(msiof1_clk), + SH_PFC_PIN_GROUP(msiof1_sync), + SH_PFC_PIN_GROUP(msiof1_ss1), + SH_PFC_PIN_GROUP(msiof1_ss2), + SH_PFC_PIN_GROUP(msiof1_rx), + SH_PFC_PIN_GROUP(msiof1_tx), + SH_PFC_PIN_GROUP(msiof1_clk_b), + SH_PFC_PIN_GROUP(msiof1_sync_b), + SH_PFC_PIN_GROUP(msiof1_ss1_b), + SH_PFC_PIN_GROUP(msiof1_ss2_b), + SH_PFC_PIN_GROUP(msiof1_rx_b), + SH_PFC_PIN_GROUP(msiof1_tx_b), + SH_PFC_PIN_GROUP(msiof1_clk_c), + SH_PFC_PIN_GROUP(msiof1_sync_c), + SH_PFC_PIN_GROUP(msiof1_rx_c), + SH_PFC_PIN_GROUP(msiof1_tx_c), + SH_PFC_PIN_GROUP(msiof1_clk_d), + SH_PFC_PIN_GROUP(msiof1_sync_d), + SH_PFC_PIN_GROUP(msiof1_ss1_d), + SH_PFC_PIN_GROUP(msiof1_rx_d), + SH_PFC_PIN_GROUP(msiof1_tx_d), + SH_PFC_PIN_GROUP(msiof1_clk_e), + SH_PFC_PIN_GROUP(msiof1_sync_e), + SH_PFC_PIN_GROUP(msiof1_rx_e), + SH_PFC_PIN_GROUP(msiof1_tx_e), + SH_PFC_PIN_GROUP(msiof2_clk), + SH_PFC_PIN_GROUP(msiof2_sync), + SH_PFC_PIN_GROUP(msiof2_ss1), + SH_PFC_PIN_GROUP(msiof2_ss2), + SH_PFC_PIN_GROUP(msiof2_rx), + SH_PFC_PIN_GROUP(msiof2_tx), + SH_PFC_PIN_GROUP(msiof2_clk_b), + SH_PFC_PIN_GROUP(msiof2_sync_b), + SH_PFC_PIN_GROUP(msiof2_ss1_b), + SH_PFC_PIN_GROUP(msiof2_ss2_b), + SH_PFC_PIN_GROUP(msiof2_rx_b), + SH_PFC_PIN_GROUP(msiof2_tx_b), + SH_PFC_PIN_GROUP(msiof2_clk_c), + SH_PFC_PIN_GROUP(msiof2_sync_c), + SH_PFC_PIN_GROUP(msiof2_rx_c), + SH_PFC_PIN_GROUP(msiof2_tx_c), + SH_PFC_PIN_GROUP(msiof2_clk_d), + SH_PFC_PIN_GROUP(msiof2_sync_d), + SH_PFC_PIN_GROUP(msiof2_ss1_d), + SH_PFC_PIN_GROUP(msiof2_ss2_d), + SH_PFC_PIN_GROUP(msiof2_rx_d), + SH_PFC_PIN_GROUP(msiof2_tx_d), + SH_PFC_PIN_GROUP(msiof2_clk_e), + SH_PFC_PIN_GROUP(msiof2_sync_e), + SH_PFC_PIN_GROUP(msiof2_rx_e), + SH_PFC_PIN_GROUP(msiof2_tx_e), + SH_PFC_PIN_GROUP(pwm0), + SH_PFC_PIN_GROUP(pwm0_b), + SH_PFC_PIN_GROUP(pwm1), + SH_PFC_PIN_GROUP(pwm1_b), + SH_PFC_PIN_GROUP(pwm2), + SH_PFC_PIN_GROUP(pwm2_b), + SH_PFC_PIN_GROUP(pwm3), + SH_PFC_PIN_GROUP(pwm4), + SH_PFC_PIN_GROUP(pwm4_b), + SH_PFC_PIN_GROUP(pwm5), + SH_PFC_PIN_GROUP(pwm5_b), + SH_PFC_PIN_GROUP(pwm6), + SH_PFC_PIN_GROUP(qspi_ctrl), + SH_PFC_PIN_GROUP(qspi_data2), + SH_PFC_PIN_GROUP(qspi_data4), + SH_PFC_PIN_GROUP(qspi_ctrl_b), + SH_PFC_PIN_GROUP(qspi_data2_b), + SH_PFC_PIN_GROUP(qspi_data4_b), + SH_PFC_PIN_GROUP(scif0_data), + SH_PFC_PIN_GROUP(scif0_data_b), + SH_PFC_PIN_GROUP(scif0_data_c), + SH_PFC_PIN_GROUP(scif0_data_d), + SH_PFC_PIN_GROUP(scif0_data_e), + SH_PFC_PIN_GROUP(scif1_data), + SH_PFC_PIN_GROUP(scif1_data_b), + SH_PFC_PIN_GROUP(scif1_clk_b), + SH_PFC_PIN_GROUP(scif1_data_c), + SH_PFC_PIN_GROUP(scif1_data_d), + SH_PFC_PIN_GROUP(scif2_data), + SH_PFC_PIN_GROUP(scif2_data_b), + SH_PFC_PIN_GROUP(scif2_clk_b), + SH_PFC_PIN_GROUP(scif2_data_c), + SH_PFC_PIN_GROUP(scif2_data_e), + SH_PFC_PIN_GROUP(scif3_data), + SH_PFC_PIN_GROUP(scif3_clk), + SH_PFC_PIN_GROUP(scif3_data_b), + SH_PFC_PIN_GROUP(scif3_clk_b), + SH_PFC_PIN_GROUP(scif3_data_c), + SH_PFC_PIN_GROUP(scif3_data_d), + SH_PFC_PIN_GROUP(scif4_data), + SH_PFC_PIN_GROUP(scif4_data_b), + SH_PFC_PIN_GROUP(scif4_data_c), + SH_PFC_PIN_GROUP(scif5_data), + SH_PFC_PIN_GROUP(scif5_data_b), + SH_PFC_PIN_GROUP(scifa0_data), + SH_PFC_PIN_GROUP(scifa0_data_b), + SH_PFC_PIN_GROUP(scifa1_data), + SH_PFC_PIN_GROUP(scifa1_clk), + SH_PFC_PIN_GROUP(scifa1_data_b), + SH_PFC_PIN_GROUP(scifa1_clk_b), + SH_PFC_PIN_GROUP(scifa1_data_c), + SH_PFC_PIN_GROUP(scifa2_data), + SH_PFC_PIN_GROUP(scifa2_clk), + SH_PFC_PIN_GROUP(scifa2_data_b), + SH_PFC_PIN_GROUP(scifa3_data), + SH_PFC_PIN_GROUP(scifa3_clk), + SH_PFC_PIN_GROUP(scifa3_data_b), + SH_PFC_PIN_GROUP(scifa3_clk_b), + SH_PFC_PIN_GROUP(scifa3_data_c), + SH_PFC_PIN_GROUP(scifa3_clk_c), + SH_PFC_PIN_GROUP(scifa4_data), + SH_PFC_PIN_GROUP(scifa4_data_b), + SH_PFC_PIN_GROUP(scifa4_data_c), + SH_PFC_PIN_GROUP(scifa5_data), + SH_PFC_PIN_GROUP(scifa5_data_b), + SH_PFC_PIN_GROUP(scifa5_data_c), + SH_PFC_PIN_GROUP(scifb0_data), + SH_PFC_PIN_GROUP(scifb0_clk), + SH_PFC_PIN_GROUP(scifb0_ctrl), + SH_PFC_PIN_GROUP(scifb0_data_b), + SH_PFC_PIN_GROUP(scifb0_clk_b), + SH_PFC_PIN_GROUP(scifb0_ctrl_b), + SH_PFC_PIN_GROUP(scifb0_data_c), + SH_PFC_PIN_GROUP(scifb0_clk_c), + SH_PFC_PIN_GROUP(scifb0_data_d), + SH_PFC_PIN_GROUP(scifb0_clk_d), + SH_PFC_PIN_GROUP(scifb1_data), + SH_PFC_PIN_GROUP(scifb1_clk), + SH_PFC_PIN_GROUP(scifb1_ctrl), + SH_PFC_PIN_GROUP(scifb1_data_b), + SH_PFC_PIN_GROUP(scifb1_clk_b), + SH_PFC_PIN_GROUP(scifb1_data_c), + SH_PFC_PIN_GROUP(scifb1_clk_c), + SH_PFC_PIN_GROUP(scifb1_data_d), + SH_PFC_PIN_GROUP(scifb2_data), + SH_PFC_PIN_GROUP(scifb2_clk), + SH_PFC_PIN_GROUP(scifb2_ctrl), + SH_PFC_PIN_GROUP(scifb2_data_b), + SH_PFC_PIN_GROUP(scifb2_clk_b), + SH_PFC_PIN_GROUP(scifb2_ctrl_b), + SH_PFC_PIN_GROUP(scifb2_data_c), + SH_PFC_PIN_GROUP(scifb2_clk_c), + SH_PFC_PIN_GROUP(scifb2_data_d), + SH_PFC_PIN_GROUP(scif_clk), + SH_PFC_PIN_GROUP(scif_clk_b), + SH_PFC_PIN_GROUP(sdhi0_data1), + SH_PFC_PIN_GROUP(sdhi0_data4), + SH_PFC_PIN_GROUP(sdhi0_ctrl), + SH_PFC_PIN_GROUP(sdhi0_cd), + SH_PFC_PIN_GROUP(sdhi0_wp), + SH_PFC_PIN_GROUP(sdhi1_data1), + SH_PFC_PIN_GROUP(sdhi1_data4), + SH_PFC_PIN_GROUP(sdhi1_ctrl), + SH_PFC_PIN_GROUP(sdhi1_cd), + SH_PFC_PIN_GROUP(sdhi1_wp), + SH_PFC_PIN_GROUP(sdhi2_data1), + SH_PFC_PIN_GROUP(sdhi2_data4), + SH_PFC_PIN_GROUP(sdhi2_ctrl), + SH_PFC_PIN_GROUP(sdhi2_cd), + SH_PFC_PIN_GROUP(sdhi2_wp), + SH_PFC_PIN_GROUP(ssi0_data), + SH_PFC_PIN_GROUP(ssi0_data_b), + SH_PFC_PIN_GROUP(ssi0129_ctrl), + SH_PFC_PIN_GROUP(ssi0129_ctrl_b), + SH_PFC_PIN_GROUP(ssi1_data), + SH_PFC_PIN_GROUP(ssi1_data_b), + SH_PFC_PIN_GROUP(ssi1_ctrl), + SH_PFC_PIN_GROUP(ssi1_ctrl_b), + SH_PFC_PIN_GROUP(ssi2_data), + SH_PFC_PIN_GROUP(ssi2_ctrl), + SH_PFC_PIN_GROUP(ssi3_data), + SH_PFC_PIN_GROUP(ssi34_ctrl), + SH_PFC_PIN_GROUP(ssi4_data), + SH_PFC_PIN_GROUP(ssi4_ctrl), + SH_PFC_PIN_GROUP(ssi5_data), + SH_PFC_PIN_GROUP(ssi5_ctrl), + SH_PFC_PIN_GROUP(ssi6_data), + SH_PFC_PIN_GROUP(ssi6_ctrl), + SH_PFC_PIN_GROUP(ssi7_data), + SH_PFC_PIN_GROUP(ssi7_data_b), + SH_PFC_PIN_GROUP(ssi78_ctrl), + SH_PFC_PIN_GROUP(ssi78_ctrl_b), + SH_PFC_PIN_GROUP(ssi8_data), + SH_PFC_PIN_GROUP(ssi8_data_b), + SH_PFC_PIN_GROUP(ssi9_data), + SH_PFC_PIN_GROUP(ssi9_data_b), + SH_PFC_PIN_GROUP(ssi9_ctrl), + SH_PFC_PIN_GROUP(ssi9_ctrl_b), + SH_PFC_PIN_GROUP(usb0), + SH_PFC_PIN_GROUP(usb1), + VIN_DATA_PIN_GROUP(vin0_data, 24), + VIN_DATA_PIN_GROUP(vin0_data, 20), + SH_PFC_PIN_GROUP(vin0_data18), + VIN_DATA_PIN_GROUP(vin0_data, 16), + VIN_DATA_PIN_GROUP(vin0_data, 12), + VIN_DATA_PIN_GROUP(vin0_data, 10), + VIN_DATA_PIN_GROUP(vin0_data, 8), + SH_PFC_PIN_GROUP(vin0_sync), + SH_PFC_PIN_GROUP(vin0_field), + SH_PFC_PIN_GROUP(vin0_clkenb), + SH_PFC_PIN_GROUP(vin0_clk), + SH_PFC_PIN_GROUP(vin1_data8), + SH_PFC_PIN_GROUP(vin1_sync), + SH_PFC_PIN_GROUP(vin1_field), + SH_PFC_PIN_GROUP(vin1_clkenb), + SH_PFC_PIN_GROUP(vin1_clk), + VIN_DATA_PIN_GROUP(vin1_b_data, 24), + VIN_DATA_PIN_GROUP(vin1_b_data, 20), + SH_PFC_PIN_GROUP(vin1_b_data18), + VIN_DATA_PIN_GROUP(vin1_b_data, 16), + VIN_DATA_PIN_GROUP(vin1_b_data, 12), + VIN_DATA_PIN_GROUP(vin1_b_data, 10), + VIN_DATA_PIN_GROUP(vin1_b_data, 8), + SH_PFC_PIN_GROUP(vin1_b_sync), + SH_PFC_PIN_GROUP(vin1_b_field), + SH_PFC_PIN_GROUP(vin1_b_clkenb), + SH_PFC_PIN_GROUP(vin1_b_clk), + SH_PFC_PIN_GROUP(vin2_data8), + SH_PFC_PIN_GROUP(vin2_sync), + SH_PFC_PIN_GROUP(vin2_field), + SH_PFC_PIN_GROUP(vin2_clkenb), + SH_PFC_PIN_GROUP(vin2_clk), + }, + .r8a779x = { + SH_PFC_PIN_GROUP(adi_common), + SH_PFC_PIN_GROUP(adi_chsel0), + SH_PFC_PIN_GROUP(adi_chsel1), + SH_PFC_PIN_GROUP(adi_chsel2), + SH_PFC_PIN_GROUP(adi_common_b), + SH_PFC_PIN_GROUP(adi_chsel0_b), + SH_PFC_PIN_GROUP(adi_chsel1_b), + SH_PFC_PIN_GROUP(adi_chsel2_b), + SH_PFC_PIN_GROUP(mlb_3pin), + } }; static const char * const adi_groups[] = { @@ -5291,65 +5298,72 @@ static const char * const vin2_groups[] = { "vin2_clk", }; -static const struct sh_pfc_function pinmux_functions[] = { - SH_PFC_FUNCTION(adi), - SH_PFC_FUNCTION(audio_clk), - SH_PFC_FUNCTION(avb), - SH_PFC_FUNCTION(can0), - SH_PFC_FUNCTION(can1), - SH_PFC_FUNCTION(du), - SH_PFC_FUNCTION(du0), - SH_PFC_FUNCTION(du1), - SH_PFC_FUNCTION(eth), - SH_PFC_FUNCTION(hscif0), - SH_PFC_FUNCTION(hscif1), - SH_PFC_FUNCTION(hscif2), - SH_PFC_FUNCTION(i2c0), - SH_PFC_FUNCTION(i2c1), - SH_PFC_FUNCTION(i2c2), - SH_PFC_FUNCTION(i2c3), - SH_PFC_FUNCTION(i2c4), - SH_PFC_FUNCTION(i2c7), - SH_PFC_FUNCTION(i2c8), - SH_PFC_FUNCTION(intc), - SH_PFC_FUNCTION(mlb), - SH_PFC_FUNCTION(mmc), - SH_PFC_FUNCTION(msiof0), - SH_PFC_FUNCTION(msiof1), - SH_PFC_FUNCTION(msiof2), - SH_PFC_FUNCTION(pwm0), - SH_PFC_FUNCTION(pwm1), - SH_PFC_FUNCTION(pwm2), - SH_PFC_FUNCTION(pwm3), - SH_PFC_FUNCTION(pwm4), - SH_PFC_FUNCTION(pwm5), - SH_PFC_FUNCTION(pwm6), - SH_PFC_FUNCTION(qspi), - SH_PFC_FUNCTION(scif0), - SH_PFC_FUNCTION(scif1), - SH_PFC_FUNCTION(scif2), - SH_PFC_FUNCTION(scif3), - SH_PFC_FUNCTION(scif4), - SH_PFC_FUNCTION(scif5), - SH_PFC_FUNCTION(scifa0), - SH_PFC_FUNCTION(scifa1), - SH_PFC_FUNCTION(scifa2), - SH_PFC_FUNCTION(scifa3), - SH_PFC_FUNCTION(scifa4), - SH_PFC_FUNCTION(scifa5), - SH_PFC_FUNCTION(scifb0), - SH_PFC_FUNCTION(scifb1), - SH_PFC_FUNCTION(scifb2), - SH_PFC_FUNCTION(scif_clk), - SH_PFC_FUNCTION(sdhi0), - SH_PFC_FUNCTION(sdhi1), - SH_PFC_FUNCTION(sdhi2), - SH_PFC_FUNCTION(ssi), - SH_PFC_FUNCTION(usb0), - SH_PFC_FUNCTION(usb1), - SH_PFC_FUNCTION(vin0), - SH_PFC_FUNCTION(vin1), - SH_PFC_FUNCTION(vin2), +static const struct { + struct sh_pfc_function common[56]; + struct sh_pfc_function r8a779x[2]; +} pinmux_functions = { + .common = { + SH_PFC_FUNCTION(audio_clk), + SH_PFC_FUNCTION(avb), + SH_PFC_FUNCTION(can0), + SH_PFC_FUNCTION(can1), + SH_PFC_FUNCTION(du), + SH_PFC_FUNCTION(du0), + SH_PFC_FUNCTION(du1), + SH_PFC_FUNCTION(eth), + SH_PFC_FUNCTION(hscif0), + SH_PFC_FUNCTION(hscif1), + SH_PFC_FUNCTION(hscif2), + SH_PFC_FUNCTION(i2c0), + SH_PFC_FUNCTION(i2c1), + SH_PFC_FUNCTION(i2c2), + SH_PFC_FUNCTION(i2c3), + SH_PFC_FUNCTION(i2c4), + SH_PFC_FUNCTION(i2c7), + SH_PFC_FUNCTION(i2c8), + SH_PFC_FUNCTION(intc), + SH_PFC_FUNCTION(mmc), + SH_PFC_FUNCTION(msiof0), + SH_PFC_FUNCTION(msiof1), + SH_PFC_FUNCTION(msiof2), + SH_PFC_FUNCTION(pwm0), + SH_PFC_FUNCTION(pwm1), + SH_PFC_FUNCTION(pwm2), + SH_PFC_FUNCTION(pwm3), + SH_PFC_FUNCTION(pwm4), + SH_PFC_FUNCTION(pwm5), + SH_PFC_FUNCTION(pwm6), + SH_PFC_FUNCTION(qspi), + SH_PFC_FUNCTION(scif0), + SH_PFC_FUNCTION(scif1), + SH_PFC_FUNCTION(scif2), + SH_PFC_FUNCTION(scif3), + SH_PFC_FUNCTION(scif4), + SH_PFC_FUNCTION(scif5), + SH_PFC_FUNCTION(scifa0), + SH_PFC_FUNCTION(scifa1), + SH_PFC_FUNCTION(scifa2), + SH_PFC_FUNCTION(scifa3), + SH_PFC_FUNCTION(scifa4), + SH_PFC_FUNCTION(scifa5), + SH_PFC_FUNCTION(scifb0), + SH_PFC_FUNCTION(scifb1), + SH_PFC_FUNCTION(scifb2), + SH_PFC_FUNCTION(scif_clk), + SH_PFC_FUNCTION(sdhi0), + SH_PFC_FUNCTION(sdhi1), + SH_PFC_FUNCTION(sdhi2), + SH_PFC_FUNCTION(ssi), + SH_PFC_FUNCTION(usb0), + SH_PFC_FUNCTION(usb1), + SH_PFC_FUNCTION(vin0), + SH_PFC_FUNCTION(vin1), + SH_PFC_FUNCTION(vin2), + }, + .r8a779x = { + SH_PFC_FUNCTION(adi), + SH_PFC_FUNCTION(mlb), + } }; static const struct pinmux_cfg_reg pinmux_config_regs[] = { @@ -6517,6 +6531,27 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { { }, }; +#ifdef CONFIG_PINCTRL_PFC_R8A7743 +const struct sh_pfc_soc_info r8a7743_pinmux_info = { + .name = "r8a77430_pfc", + .unlock_reg = 0xe6060000, /* PMMR */ + + .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, + + .pins = pinmux_pins, + .nr_pins = ARRAY_SIZE(pinmux_pins), + .groups = pinmux_groups.common, + .nr_groups = ARRAY_SIZE(pinmux_groups.common), + .functions = pinmux_functions.common, + .nr_functions = ARRAY_SIZE(pinmux_functions.common), + + .cfg_regs = pinmux_config_regs, + + .pinmux_data = pinmux_data, + .pinmux_data_size = ARRAY_SIZE(pinmux_data), +}; +#endif + #ifdef CONFIG_PINCTRL_PFC_R8A7791 const struct sh_pfc_soc_info r8a7791_pinmux_info = { .name = "r8a77910_pfc", @@ -6526,10 +6561,12 @@ const struct sh_pfc_soc_info r8a7791_pinmux_info = { .pins = pinmux_pins, .nr_pins = ARRAY_SIZE(pinmux_pins), - .groups = pinmux_groups, - .nr_groups = ARRAY_SIZE(pinmux_groups), - .functions = pinmux_functions, - .nr_functions = ARRAY_SIZE(pinmux_functions), + .groups = pinmux_groups.common, + .nr_groups = ARRAY_SIZE(pinmux_groups.common) + + ARRAY_SIZE(pinmux_groups.r8a779x), + .functions = pinmux_functions.common, + .nr_functions = ARRAY_SIZE(pinmux_functions.common) + + ARRAY_SIZE(pinmux_functions.r8a779x), .cfg_regs = pinmux_config_regs, @@ -6547,10 +6584,12 @@ const struct sh_pfc_soc_info r8a7793_pinmux_info = { .pins = pinmux_pins, .nr_pins = ARRAY_SIZE(pinmux_pins), - .groups = pinmux_groups, - .nr_groups = ARRAY_SIZE(pinmux_groups), - .functions = pinmux_functions, - .nr_functions = ARRAY_SIZE(pinmux_functions), + .groups = pinmux_groups.common, + .nr_groups = ARRAY_SIZE(pinmux_groups.common) + + ARRAY_SIZE(pinmux_groups.r8a779x), + .functions = pinmux_functions.common, + .nr_functions = ARRAY_SIZE(pinmux_functions.common) + + ARRAY_SIZE(pinmux_functions.r8a779x), .cfg_regs = pinmux_config_regs, From 17bdcb59ba162ee4c250c2285714ea509682ef55 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 21 Sep 2017 17:54:22 +0100 Subject: [PATCH 0133/1149] CIP: Bump version suffix to -cip9 after Siemens and Renesas platform backports Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 7adc9cb17fbd..d9d4b933640b 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip8 +-cip9 From e31dce32b15f0689af5e4fa4a3bbd3c625051bc5 Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Fri, 29 Sep 2017 18:28:03 +0100 Subject: [PATCH 0134/1149] ARM: dts: r8a7743: add PFC support Define the generic R8A7743 part of the PFC device node. Signed-off-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 328968b60231e522ea7e81ae0c83f59f13626a85) Signed-off-by: Biju Das Signed-off-by: Chris Paterson Conflicts: arch/arm/boot/dts/r8a7743.dtsi Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index fde63273dfa0..7f4d8c0f280b 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -1,7 +1,7 @@ /* * Device Tree Source for the r8a7743 SoC * - * Copyright (C) 2016 Cogent Embedded Inc. + * Copyright (C) 2016-2017 Cogent Embedded Inc. * Copyright (C) 2017 Renesas Electronics Corp. * * This file is licensed under the terms of the GNU General Public License @@ -93,6 +93,11 @@ IRQ_TYPE_LEVEL_LOW)>; }; + pfc: pin-controller@e6060000 { + compatible = "renesas,pfc-r8a7743"; + reg = <0 0xe6060000 0 0x250>; + }; + dmac0: dma-controller@e6700000 { compatible = "renesas,rcar-dmac"; reg = <0 0xe6700000 0 0x20000>; From 53f3df33f922133d342284e965b9074a839b5778 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Sep 2017 18:28:04 +0100 Subject: [PATCH 0135/1149] ARM: dts: iwg20d-q7: Add pinctl support for scif0 Adding pinctrl support for scif0 interface. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 7095f279c03a05cf9007001852b939236edc2897) Signed-off-by: Biju Das Signed-off-by: Chris Paterson Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743-iwg20d-q7.dts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts b/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts index 9b54783cc2a5..497aec00cfac 100644 --- a/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts +++ b/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts @@ -20,6 +20,16 @@ }; }; +&pfc { + scif0_pins: scif0 { + groups = "scif0_data_d"; + function = "scif0"; + }; +}; + &scif0 { + pinctrl-0 = <&scif0_pins>; + pinctrl-names = "default"; + status = "okay"; }; From 5f1c7db1cd0f77a8eb601a58aba7dc4b9497f78e Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Sep 2017 18:28:05 +0100 Subject: [PATCH 0136/1149] gpio: rcar: Add R8A7743 (RZ/G1M) support Renesas RZ/G1M (R8A7743) SoC GPIO blocks are identical to the R-Car Gen2 family. Add support for its GPIO controllers. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Acked-by: Geert Uytterhoeven Acked-by: Rob Herring Signed-off-by: Linus Walleij (cherry picked from commit 85bb4646f8908eb786dfa19a6bb2ff1423dc8aa4) Signed-off-by: Biju Das Signed-off-by: Chris Paterson Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt | 1 + drivers/gpio/gpio-rcar.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt index f60e2f477e93..036fdb21dc70 100644 --- a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt +++ b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt @@ -3,6 +3,7 @@ Required Properties: - compatible: should contain one of the following. + - "renesas,gpio-r8a7743": for R8A7743 (RZ/G1M) compatible GPIO controller. - "renesas,gpio-r8a7778": for R8A7778 (R-Mobile M1) compatible GPIO controller. - "renesas,gpio-r8a7779": for R8A7779 (R-Car H1) compatible GPIO controller. - "renesas,gpio-r8a7790": for R8A7790 (R-Car H2) compatible GPIO controller. diff --git a/drivers/gpio/gpio-rcar.c b/drivers/gpio/gpio-rcar.c index 2a8122444614..22c8517d3c1b 100644 --- a/drivers/gpio/gpio-rcar.c +++ b/drivers/gpio/gpio-rcar.c @@ -330,6 +330,10 @@ static const struct gpio_rcar_info gpio_rcar_info_gen2 = { static const struct of_device_id gpio_rcar_of_table[] = { { + .compatible = "renesas,gpio-r8a7743", + /* RZ/G1 GPIO is identical to R-Car Gen2. */ + .data = &gpio_rcar_info_gen2, + }, { .compatible = "renesas,gpio-r8a7790", .data = &gpio_rcar_info_gen2, }, { From dcba0fc5e4a7d7b72c0a2eb89337725a5a620a6f Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Sep 2017 18:28:06 +0100 Subject: [PATCH 0137/1149] ARM: dts: r8a7743: Add GPIO support Describe GPIO blocks in the R8A7743 device tree. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 16ffb25335d7e91cebae9c29252536ddbeac96fa) (modified the clocks and power-domains property, removed resets property) Signed-off-by: Biju Das Signed-off-by: Chris Paterson Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 112 +++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 7f4d8c0f280b..7fc00eed16b0 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -62,6 +62,118 @@ power-domains = <&cpg_clocks>; }; + gpio0: gpio@e6050000 { + compatible = "renesas,gpio-r8a7743", + "renesas,gpio-rcar"; + reg = <0 0xe6050000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 0 32>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7743_CLK_GPIO0>; + power-domains = <&cpg_clocks>; + }; + + gpio1: gpio@e6051000 { + compatible = "renesas,gpio-r8a7743", + "renesas,gpio-rcar"; + reg = <0 0xe6051000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 32 26>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7743_CLK_GPIO1>; + power-domains = <&cpg_clocks>; + }; + + gpio2: gpio@e6052000 { + compatible = "renesas,gpio-r8a7743", + "renesas,gpio-rcar"; + reg = <0 0xe6052000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 64 32>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7743_CLK_GPIO2>; + power-domains = <&cpg_clocks>; + }; + + gpio3: gpio@e6053000 { + compatible = "renesas,gpio-r8a7743", + "renesas,gpio-rcar"; + reg = <0 0xe6053000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 96 32>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7743_CLK_GPIO3>; + power-domains = <&cpg_clocks>; + }; + + gpio4: gpio@e6054000 { + compatible = "renesas,gpio-r8a7743", + "renesas,gpio-rcar"; + reg = <0 0xe6054000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 128 32>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7743_CLK_GPIO4>; + power-domains = <&cpg_clocks>; + }; + + gpio5: gpio@e6055000 { + compatible = "renesas,gpio-r8a7743", + "renesas,gpio-rcar"; + reg = <0 0xe6055000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 160 32>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7743_CLK_GPIO5>; + power-domains = <&cpg_clocks>; + }; + + gpio6: gpio@e6055400 { + compatible = "renesas,gpio-r8a7743", + "renesas,gpio-rcar"; + reg = <0 0xe6055400 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 192 32>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7743_CLK_GPIO6>; + power-domains = <&cpg_clocks>; + }; + + gpio7: gpio@e6055800 { + compatible = "renesas,gpio-r8a7743", + "renesas,gpio-rcar"; + reg = <0 0xe6055800 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 224 26>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7743_CLK_GPIO7>; + power-domains = <&cpg_clocks>; + }; + irqc: interrupt-controller@e61c0000 { compatible = "renesas,irqc-r8a7743", "renesas,irqc"; #interrupt-cells = <2>; From 4508ae6aa0c86bb2faf44966a71856196b24366a Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Fri, 29 Sep 2017 18:28:07 +0100 Subject: [PATCH 0138/1149] ravb: add fallback compatibility strings Add fallback compatibility strings for R-Car Gen 2 & 3 SoC Families. This is in keeping with the fallback scheme being adopted wherever appropriate for drivers for Renesas SoCs. Signed-off-by: Simon Horman Acked-by: Rob Herring Signed-off-by: David S. Miller (cherry picked from commit 0e8743611a76ced8b0971b6894f982ce89624cc4) Signed-off-by: Biju Das Signed-off-by: Chris Paterson Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/net/renesas,ravb.txt | 9 ++++++++- drivers/net/ethernet/renesas/ravb_main.c | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/net/renesas,ravb.txt b/Documentation/devicetree/bindings/net/renesas,ravb.txt index b486f3f5f6a3..7555116b5db2 100644 --- a/Documentation/devicetree/bindings/net/renesas,ravb.txt +++ b/Documentation/devicetree/bindings/net/renesas,ravb.txt @@ -7,6 +7,13 @@ Required properties: - compatible: "renesas,etheravb-r8a7790" if the device is a part of R8A7790 SoC. "renesas,etheravb-r8a7794" if the device is a part of R8A7794 SoC. "renesas,etheravb-r8a7795" if the device is a part of R8A7795 SoC. + "renesas,etheravb-rcar-gen2" for generic R-Car Gen 2 compatible interface. + "renesas,etheravb-rcar-gen3" for generic R-Car Gen 3 compatible interface. + + When compatible with the generic version, nodes must list the + SoC-specific version corresponding to the platform first + followed by the generic version. + - reg: offset and length of (1) the register block and (2) the stream buffer. - interrupts: A list of interrupt-specifiers, one for each entry in interrupt-names. @@ -37,7 +44,7 @@ Optional properties: Example: ethernet@e6800000 { - compatible = "renesas,etheravb-r8a7795"; + compatible = "renesas,etheravb-r8a7795", "renesas,etheravb-rcar-gen3"; reg = <0 0xe6800000 0 0x800>, <0 0xe6a00000 0 0x10000>; interrupt-parent = <&gic>; interrupts = , diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c index 585e90f8341d..c7b3c25db1bc 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -1688,7 +1688,9 @@ static int ravb_mdio_release(struct ravb_private *priv) static const struct of_device_id ravb_match_table[] = { { .compatible = "renesas,etheravb-r8a7790", .data = (void *)RCAR_GEN2 }, { .compatible = "renesas,etheravb-r8a7794", .data = (void *)RCAR_GEN2 }, + { .compatible = "renesas,etheravb-rcar-gen2", .data = (void *)RCAR_GEN2 }, { .compatible = "renesas,etheravb-r8a7795", .data = (void *)RCAR_GEN3 }, + { .compatible = "renesas,etheravb-rcar-gen3", .data = (void *)RCAR_GEN3 }, { } }; MODULE_DEVICE_TABLE(of, ravb_match_table); From d80dbf7dd9fe5ef5090fd45d8a456ba6398e673d Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Sep 2017 18:28:08 +0100 Subject: [PATCH 0139/1149] dt-bindings: net: ravb : Add support for r8a7743 SoC Add a new compatible string for the RZ/G1M (R8A7743) SoC. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Reviewed-by: Simon Horman Signed-off-by: David S. Miller (cherry picked from commit b3a703c7a698bcc0938fe22ba74d32593ad6e662) (Documented r8a7743 SoC) Signed-off-by: Biju Das Signed-off-by: Chris Paterson Conflicts: Documentation/devicetree/bindings/net/renesas,ravb.txt Signed-off-by: Chris Paterson Signed-off-by: Ben Hutchings --- .../devicetree/bindings/net/renesas,ravb.txt | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/Documentation/devicetree/bindings/net/renesas,ravb.txt b/Documentation/devicetree/bindings/net/renesas,ravb.txt index 7555116b5db2..715b8ce5321e 100644 --- a/Documentation/devicetree/bindings/net/renesas,ravb.txt +++ b/Documentation/devicetree/bindings/net/renesas,ravb.txt @@ -4,15 +4,20 @@ This file provides information on what the device node for the Ethernet AVB interface contains. Required properties: -- compatible: "renesas,etheravb-r8a7790" if the device is a part of R8A7790 SoC. - "renesas,etheravb-r8a7794" if the device is a part of R8A7794 SoC. - "renesas,etheravb-r8a7795" if the device is a part of R8A7795 SoC. - "renesas,etheravb-rcar-gen2" for generic R-Car Gen 2 compatible interface. - "renesas,etheravb-rcar-gen3" for generic R-Car Gen 3 compatible interface. +- compatible: Must contain one or more of the following: + - "renesas,etheravb-r8a7743" for the R8A7743 SoC. + - "renesas,etheravb-r8a7790" for the R8A7790 SoC. + - "renesas,etheravb-r8a7794" for the R8A7794 SoC. + - "renesas,etheravb-rcar-gen2" as a fallback for the above + R-Car Gen2 and RZ/G1 devices. - When compatible with the generic version, nodes must list the - SoC-specific version corresponding to the platform first - followed by the generic version. + - "renesas,etheravb-r8a7795" for the R8A7795 SoC. + - "renesas,etheravb-rcar-gen3" as a fallback for the above + R-Car Gen3 devices. + + When compatible with the generic version, nodes must list the + SoC-specific version corresponding to the platform first followed by + the generic version. - reg: offset and length of (1) the register block and (2) the stream buffer. - interrupts: A list of interrupt-specifiers, one for each entry in From c1350bdef4daed3978c5c4dc5081e46e6e51e8da Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Sep 2017 18:28:09 +0100 Subject: [PATCH 0140/1149] ARM: shmobile: defconfig: Enable Ethernet AVB The iWave RZ/G1M Q7 SOM supports Gigabit Ethernet Phy (Micrel KSZ9031MNX). Gigabit Ethernet support is available in Renesas AVB driver. To increase hardware support enable the driver in the shmobile_defconfig multiplatform configuration. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit ff53e6064fd8badaf52ce5c13eeefd84c2e14332) Signed-off-by: Biju Das Signed-off-by: Chris Paterson Signed-off-by: Ben Hutchings --- arch/arm/configs/shmobile_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/shmobile_defconfig b/arch/arm/configs/shmobile_defconfig index fb8094aa919c..e8a2d0b3c617 100644 --- a/arch/arm/configs/shmobile_defconfig +++ b/arch/arm/configs/shmobile_defconfig @@ -78,6 +78,7 @@ CONFIG_NETDEVICES=y # CONFIG_NET_VENDOR_MICREL is not set # CONFIG_NET_VENDOR_NATSEMI is not set CONFIG_SH_ETH=y +CONFIG_RAVB=y # CONFIG_NET_VENDOR_SEEQ is not set CONFIG_SMSC911X=y # CONFIG_NET_VENDOR_STMICRO is not set From 6eb0ff1fb4c25dd5763a797c4cb5ba758fb1c494 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Sep 2017 18:28:10 +0100 Subject: [PATCH 0141/1149] ARM: dts: r8a7743: Add Ethernet AVB support Add Ethernet AVB support for r8a7743 SoC. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Reviewed-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 278a1df198625dde663978266de549e8317267cf) (Modified clocks, power-domains property and removed resets property) Signed-off-by: Biju Das Signed-off-by: Chris Paterson Conflicts: arch/arm/boot/dts/r8a7743.dtsi Signed-off-by: Chris Paterson Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 7fc00eed16b0..586427021db8 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -527,6 +527,18 @@ status = "disabled"; }; + avb: ethernet@e6800000 { + compatible = "renesas,etheravb-r8a7743", + "renesas,etheravb-rcar-gen2"; + reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>; + interrupts = ; + clocks = <&mstp8_clks R8A7743_CLK_ETHERAVB>; + power-domains = <&cpg_clocks>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + clocks { #address-cells = <2>; #size-cells = <2>; From df917bc7c3713aacea727c39ef734a420f6c4309 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Sep 2017 18:28:11 +0100 Subject: [PATCH 0142/1149] ARM: dts: iwg20d-q7: Add Ethernet AVB support Define the iWave RainboW-G20D-Qseven board dependent part of the Ethernet AVB device node. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 9e70afe39eeb33488f0d18131b023b92c1493db8) Signed-off-by: Biju Das Signed-off-by: Chris Paterson Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743-iwg20d-q7.dts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts b/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts index 497aec00cfac..081af0192851 100644 --- a/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts +++ b/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts @@ -17,6 +17,7 @@ aliases { serial0 = &scif0; + ethernet0 = &avb; }; }; @@ -25,6 +26,11 @@ groups = "scif0_data_d"; function = "scif0"; }; + + avb_pins: avb { + groups = "avb_mdio", "avb_gmii"; + function = "avb"; + }; }; &scif0 { @@ -33,3 +39,18 @@ status = "okay"; }; + +&avb { + pinctrl-0 = <&avb_pins>; + pinctrl-names = "default"; + + phy-handle = <&phy3>; + phy-mode = "gmii"; + renesas,no-ether-link; + status = "okay"; + + phy3: ethernet-phy@3 { + reg = <3>; + micrel,led-mode = <1>; + }; +}; From 4ab64a0227b9c2383eff926bb5434294d82091f0 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Fri, 29 Sep 2017 18:28:12 +0100 Subject: [PATCH 0143/1149] pinctrl: sh-pfc: r8a7791: Add missing mmc_data8_b pin group Pins D6 and D7 of the MMC interface can be muxed to two different sets of pins, but currently only one set is supported. Add a pin group for the alternative set to fix this. Signed-off-by: Geert Uytterhoeven Reviewed-by: Chris Paterson Tested-by: Chris Paterson (cherry picked from commit 2bf147a836918b14aae7aba2e598fa18a73e4f19) Signed-off-by: Biju Das Signed-off-by: Chris Paterson Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c index 33d135784111..351842e310d6 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c @@ -2593,6 +2593,17 @@ static const unsigned int mmc_data8_mux[] = { MMC_D0_MARK, MMC_D1_MARK, MMC_D2_MARK, MMC_D3_MARK, MMC_D4_MARK, MMC_D5_MARK, MMC_D6_MARK, MMC_D7_MARK, }; +static const unsigned int mmc_data8_b_pins[] = { + /* D[0:7] */ + RCAR_GP_PIN(6, 18), RCAR_GP_PIN(6, 19), + RCAR_GP_PIN(6, 20), RCAR_GP_PIN(6, 21), + RCAR_GP_PIN(6, 22), RCAR_GP_PIN(6, 23), + RCAR_GP_PIN(6, 6), RCAR_GP_PIN(6, 7), +}; +static const unsigned int mmc_data8_b_mux[] = { + MMC_D0_MARK, MMC_D1_MARK, MMC_D2_MARK, MMC_D3_MARK, + MMC_D4_MARK, MMC_D5_MARK, MMC_D6_B_MARK, MMC_D7_B_MARK, +}; static const unsigned int mmc_ctrl_pins[] = { /* CLK, CMD */ RCAR_GP_PIN(6, 16), RCAR_GP_PIN(6, 17), @@ -4424,7 +4435,7 @@ static const unsigned int vin2_clk_mux[] = { }; static const struct { - struct sh_pfc_pin_group common[341]; + struct sh_pfc_pin_group common[342]; struct sh_pfc_pin_group r8a779x[9]; } pinmux_groups = { .common = { @@ -4527,6 +4538,7 @@ static const struct { SH_PFC_PIN_GROUP(mmc_data1), SH_PFC_PIN_GROUP(mmc_data4), SH_PFC_PIN_GROUP(mmc_data8), + SH_PFC_PIN_GROUP(mmc_data8_b), SH_PFC_PIN_GROUP(mmc_ctrl), SH_PFC_PIN_GROUP(msiof0_clk), SH_PFC_PIN_GROUP(msiof0_sync), @@ -4959,6 +4971,7 @@ static const char * const mmc_groups[] = { "mmc_data1", "mmc_data4", "mmc_data8", + "mmc_data8_b", "mmc_ctrl", }; From fbadcf6fdf22d4e2c5a8e2a0f2a797f1b119bef7 Mon Sep 17 00:00:00 2001 From: Chris Paterson Date: Fri, 29 Sep 2017 18:28:13 +0100 Subject: [PATCH 0144/1149] dt-bindings: mmc: sh_mmcif: Document r8a7743 DT bindings Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Ulf Hansson (cherry picked from commit 62b1ab2a71c4d3acb59e109fadb5fec3430642ed) Signed-off-by: Biju Das Signed-off-by: Chris Paterson Conflicts: Documentation/devicetree/bindings/mmc/renesas,mmcif.txt Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/mmc/renesas,mmcif.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/mmc/renesas,mmcif.txt b/Documentation/devicetree/bindings/mmc/renesas,mmcif.txt index cae29eb5733d..0c9ac548ac56 100644 --- a/Documentation/devicetree/bindings/mmc/renesas,mmcif.txt +++ b/Documentation/devicetree/bindings/mmc/renesas,mmcif.txt @@ -9,6 +9,7 @@ Required properties: - compatible: should be "renesas,mmcif-", "renesas,sh-mmcif" as a fallback. Examples with are: - "renesas,mmcif-r8a7740" for the MMCIF found in r8a7740 SoCs + - "renesas,mmcif-r8a7743" for the MMCIF found in r8a7743 SoCs - "renesas,mmcif-r8a7790" for the MMCIF found in r8a7790 SoCs - "renesas,mmcif-r8a7791" for the MMCIF found in r8a7791 SoCs - "renesas,mmcif-r8a7794" for the MMCIF found in r8a7794 SoCs From e8c145a4df86b573fb73390ebd3f55db428ae8c3 Mon Sep 17 00:00:00 2001 From: Chris Paterson Date: Fri, 29 Sep 2017 18:28:14 +0100 Subject: [PATCH 0145/1149] ARM: dts: r8a7743: Add MMCIF0 support Add the MMCIF0 device to the r8a7743 device tree. Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 873038ddc34b62b55b2ad919995d3f70be12f192) (modified the clocks and power-domains property, removed resets property) Signed-off-by: Biju Das Signed-off-by: Chris Paterson Conflicts: arch/arm/boot/dts/r8a7743.dtsi Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 586427021db8..a9dda2842b95 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -539,6 +539,21 @@ status = "disabled"; }; + mmcif0: mmc@ee200000 { + compatible = "renesas,mmcif-r8a7743", + "renesas,sh-mmcif"; + reg = <0 0xee200000 0 0x80>; + interrupts = ; + clocks = <&mstp3_clks R8A7743_CLK_MMCIF0>; + dmas = <&dmac0 0xd1>, <&dmac0 0xd2>, + <&dmac1 0xd1>, <&dmac1 0xd2>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + reg-io-width = <4>; + max-frequency = <97500000>; + status = "disabled"; + }; + clocks { #address-cells = <2>; #size-cells = <2>; From 1eed9ee8c098dd8c817f6feef3a6fd8d736b9983 Mon Sep 17 00:00:00 2001 From: Chris Paterson Date: Fri, 29 Sep 2017 18:28:15 +0100 Subject: [PATCH 0146/1149] ARM: dts: iwg20m: Add MMCIF0 support Define the iwg20m board dependent part of the MMCIF0 device node. Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit a03633abae89b5ab9d99c95e6dbf7cf15e5a441e) Signed-off-by: Biju Das Signed-off-by: Chris Paterson Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743-iwg20m.dtsi | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743-iwg20m.dtsi b/arch/arm/boot/dts/r8a7743-iwg20m.dtsi index 001ca9144f4b..f78dbc542a82 100644 --- a/arch/arm/boot/dts/r8a7743-iwg20m.dtsi +++ b/arch/arm/boot/dts/r8a7743-iwg20m.dtsi @@ -22,8 +22,34 @@ device_type = "memory"; reg = <2 0x00000000 0 0x20000000>; }; + + reg_3p3v: 3p3v { + compatible = "regulator-fixed"; + regulator-name = "3P3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-boot-on; + }; }; &extal_clk { clock-frequency = <20000000>; }; + +&pfc { + mmcif0_pins: mmc { + groups = "mmc_data8_b", "mmc_ctrl"; + function = "mmc"; + }; +}; + +&mmcif0 { + pinctrl-0 = <&mmcif0_pins>; + pinctrl-names = "default"; + + vmmc-supply = <®_3p3v>; + bus-width = <8>; + non-removable; + status = "okay"; +}; From 04509a7dbaf1a43de7496965c16e2dc5237d4b7f Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Fri, 29 Sep 2017 18:28:16 +0100 Subject: [PATCH 0147/1149] ARM: dts: iwg20m: Correct indentation of mmcif0 properties Fixes: 4658c4b789d8e2ae ("ARM: dts: iwg20m: Add MMCIF0 support") Signed-off-by: Geert Uytterhoeven Reviewed-by: Chris Paterson Signed-off-by: Simon Horman (cherry picked from commit bf38b9ac16c5c8a82d63c79391dd64c5924fc00b) Signed-off-by: Biju Das Signed-off-by: Chris Paterson Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743-iwg20m.dtsi | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/arch/arm/boot/dts/r8a7743-iwg20m.dtsi b/arch/arm/boot/dts/r8a7743-iwg20m.dtsi index f78dbc542a82..ff7993818637 100644 --- a/arch/arm/boot/dts/r8a7743-iwg20m.dtsi +++ b/arch/arm/boot/dts/r8a7743-iwg20m.dtsi @@ -45,11 +45,11 @@ }; &mmcif0 { - pinctrl-0 = <&mmcif0_pins>; - pinctrl-names = "default"; + pinctrl-0 = <&mmcif0_pins>; + pinctrl-names = "default"; - vmmc-supply = <®_3p3v>; - bus-width = <8>; - non-removable; - status = "okay"; + vmmc-supply = <®_3p3v>; + bus-width = <8>; + non-removable; + status = "okay"; }; From 0466de39fea899353c58a71025ce18c0f4f6b1c2 Mon Sep 17 00:00:00 2001 From: Chris Paterson Date: Fri, 29 Sep 2017 18:28:17 +0100 Subject: [PATCH 0148/1149] ARM: debug-ll: Add support for r8a7743 Enable low-level debugging support for RZ/G1M (r8a7743). RZ/G1M uses SCIF0 for the debug console, like most of the R-Car Gen2 SoCs. Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit fcfbb6f144065f301f60555e5475434f2956eeb8) (removed r8a7792 SoC from the patch) Signed-off-by: Biju Das Signed-off-by: Chris Paterson Conflicts: arch/arm/Kconfig.debug Signed-off-by: Ben Hutchings --- arch/arm/Kconfig.debug | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index ddbb361267d8..9b2b59c52948 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -817,12 +817,12 @@ choice via SCIF2 on Renesas R-Car H1 (R8A7779). config DEBUG_RCAR_GEN2_SCIF0 - bool "Kernel low-level debugging messages via SCIF0 on R8A7790/R8A7791/R8A7793" - depends on ARCH_R8A7790 || ARCH_R8A7791 || ARCH_R8A7793 + bool "Kernel low-level debugging messages via SCIF0 on R-Car Gen2 and RZ/G1" + depends on ARCH_R8A7743 || ARCH_R8A7790 || ARCH_R8A7791 || ARCH_R8A7793 help Say Y here if you want kernel low-level debugging support - via SCIF0 on Renesas R-Car H2 (R8A7790), M2-W (R8A7791), or - M2-N (R8A7793). + via SCIF0 on Renesas RZ/G1M (R8A7743), R-Car H2 (R8A7790), + M2-W (R8A7791), or M2-N (R8A7793). config DEBUG_RCAR_GEN2_SCIF2 bool "Kernel low-level debugging messages via SCIF2 on R8A7794" From 6554f615ebdc829cb9912f6df3baab57d361e21f Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Wed, 11 Oct 2017 17:25:10 +0100 Subject: [PATCH 0149/1149] CIP: Bump version suffix to -cip10 after Renesas platform backports Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index d9d4b933640b..4e18b030f244 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip9 +-cip10 From f04888a3eab98d363c576b215185aaddb6aea744 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Sun, 15 Oct 2017 18:16:33 +0100 Subject: [PATCH 0150/1149] scsi: sg: Re-fix off by one in sg_fill_request_table() Commit 109bade9c625 ("scsi: sg: use standard lists for sg_requests") introduced an off-by-one error in sg_ioctl(), which was fixed by commit bd46fc406b30 ("scsi: sg: off by one in sg_ioctl()"). Unfortunately commit 4759df905a47 ("scsi: sg: factor out sg_fill_request_table()") moved that code, and reintroduced the bug (perhaps due to a botched rebase). Fix it again. Fixes: 4759df905a47 ("scsi: sg: factor out sg_fill_request_table()") Cc: stable@vger.kernel.org Signed-off-by: Ben Hutchings --- drivers/scsi/sg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c index 39e8b5dc23fa..38f77e127349 100644 --- a/drivers/scsi/sg.c +++ b/drivers/scsi/sg.c @@ -848,7 +848,7 @@ sg_fill_request_table(Sg_fd *sfp, sg_req_info_t *rinfo) val = 0; list_for_each_entry(srp, &sfp->rq_list, entry) { - if (val > SG_MAX_QUEUE) + if (val >= SG_MAX_QUEUE) break; rinfo[val].req_state = srp->done + 1; rinfo[val].problem = From a1eef0cae1404f02ab0c91abc41625b00ff631ee Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Wed, 18 Oct 2017 01:19:59 +0100 Subject: [PATCH 0151/1149] Revert "bsg-lib: don't free job in bsg_prepare_job" This reverts commit 668cee82cd28d2c38a99f7cbddf3b3fd58f257b9, which was commit f507b54dccfd8000c517d740bc45f20c74532d18 upstream. There is no bsg_prepare_job() function to be fixed here, and the backported commit changed a different function. Signed-off-by: Ben Hutchings --- block/bsg-lib.c | 1 + 1 file changed, 1 insertion(+) diff --git a/block/bsg-lib.c b/block/bsg-lib.c index 341b8d858e67..650f427d915b 100644 --- a/block/bsg-lib.c +++ b/block/bsg-lib.c @@ -147,6 +147,7 @@ static int bsg_create_job(struct device *dev, struct request *req) failjob_rls_rqst_payload: kfree(job->request_payload.sg_list); failjob_rls_job: + kfree(job); return -ENOMEM; } From 7980a89d308c8015a6205993066030da64816e8c Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Wed, 18 Oct 2017 01:21:24 +0100 Subject: [PATCH 0152/1149] Revert "USB: devio: Don't corrupt user memory" This reverts commit b74a45450f80a56a3aca515dd147bd95b18394bf, which was commit fa1ed74eb1c233be6131ec92df21ab46499a15b6 upstream. It limited the length of data copied out to a buggy application, but also limited the length of the kernel buffer. This might make it possible to overflow the latter, which would be much worse. Signed-off-by: Ben Hutchings --- drivers/usb/core/devio.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c index bd9419213d06..873ba02d59e6 100644 --- a/drivers/usb/core/devio.c +++ b/drivers/usb/core/devio.c @@ -1417,11 +1417,7 @@ static int proc_do_submiturb(struct usb_dev_state *ps, struct usbdevfs_urb *uurb totlen += isopkt[u].length; } u *= sizeof(struct usb_iso_packet_descriptor); - if (totlen <= uurb->buffer_length) - uurb->buffer_length = totlen; - else - WARN_ONCE(1, "uurb->buffer_length is too short %d vs %d", - totlen, uurb->buffer_length); + uurb->buffer_length = totlen; break; default: From 6ba08f116ce81730a0ac53b208617e8fc189bfa3 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Wed, 18 Oct 2017 01:29:37 +0100 Subject: [PATCH 0153/1149] CIP: Bump version suffix to -cip11 after merge and fixes Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 4e18b030f244..a7efddb5ccbe 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip10 +-cip11 From edeed5f910db5962f4ecc097ad6d935a33041ee0 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 14 Sep 2017 14:23:01 -0700 Subject: [PATCH 0154/1149] firmware: delete in-kernel firmware commit 5620a0d1aacd554ebebcff373e31107bb1ef7769 upstream. The last firmware change for the in-kernel firmware source code was back in 2013. Everyone has been relying on the out-of-tree linux-firmware package for a long long time. So let's drop it, it's baggage we don't need to keep dragging around (and having to fix random kbuild issues over time...) Cc: Kyle McMartin Cc: Andrew Morton Cc: Michal Marek Cc: Masahiro Yamada Acked-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman [Jan: backport to 4.4] Signed-off-by: Jan Kiszka Signed-off-by: Ben Hutchings --- Makefile | 16 +- firmware/.gitignore | 6 - firmware/3com/typhoon.bin.ihex | 2819 ---- firmware/Makefile | 237 - firmware/README.AddingFirmware | 45 - firmware/WHENCE | 854 - firmware/acenic/tg1.bin.ihex | 4573 ------ firmware/acenic/tg2.bin.ihex | 4844 ------ firmware/adaptec/starfire_rx.bin.ihex | 53 - firmware/adaptec/starfire_tx.bin.ihex | 53 - firmware/advansys/3550.bin.ihex | 317 - firmware/advansys/38C0800.bin.ihex | 336 - firmware/advansys/38C1600.bin.ihex | 398 - firmware/advansys/mcode.bin.ihex | 147 - firmware/atmsar11.HEX | 204 - firmware/av7110/Boot.S | 109 - firmware/av7110/bootcode.bin.ihex | 15 - firmware/bnx2/bnx2-mips-06-6.2.1.fw.ihex | 5818 ------- firmware/bnx2/bnx2-mips-09-6.2.1a.fw.ihex | 6512 -------- firmware/bnx2/bnx2-rv2p-06-6.0.15.fw.ihex | 366 - firmware/bnx2/bnx2-rv2p-09-6.0.17.fw.ihex | 392 - firmware/bnx2/bnx2-rv2p-09ax-6.0.17.fw.ihex | 425 - firmware/bnx2x/bnx2x-e1-6.2.9.0.fw.ihex | 9484 ----------- firmware/bnx2x/bnx2x-e1h-6.2.9.0.fw.ihex | 13192 --------------- firmware/bnx2x/bnx2x-e2-6.2.9.0.fw.ihex | 15473 ------------------ firmware/cis/.gitignore | 1 - firmware/cis/3CCFEM556.cis.ihex | 13 - firmware/cis/3CXEM556.cis.ihex | 13 - firmware/cis/COMpad2.cis.ihex | 11 - firmware/cis/COMpad4.cis.ihex | 9 - firmware/cis/DP83903.cis.ihex | 14 - firmware/cis/LA-PCM.cis.ihex | 20 - firmware/cis/MT5634ZLX.cis.ihex | 11 - firmware/cis/NE2K.cis.ihex | 8 - firmware/cis/PCMLM28.cis.ihex | 18 - firmware/cis/PE-200.cis.ihex | 9 - firmware/cis/PE520.cis.ihex | 9 - firmware/cis/RS-COM-2P.cis.ihex | 10 - firmware/cis/SW_555_SER.cis.ihex | 12 - firmware/cis/SW_7xx_SER.cis.ihex | 13 - firmware/cis/SW_8xx_SER.cis.ihex | 13 - firmware/cis/tamarack.cis.ihex | 10 - firmware/cpia2/stv0672_vp4.bin.ihex | 73 - firmware/cxgb3/ael2005_opt_edc.bin.ihex | 69 - firmware/cxgb3/ael2005_twx_edc.bin.ihex | 93 - firmware/cxgb3/ael2020_twx_edc.bin.ihex | 100 - firmware/cxgb3/t3b_psram-1.1.0.bin.ihex | 162 - firmware/cxgb3/t3c_psram-1.1.0.bin.ihex | 162 - firmware/dsp56k/bootstrap.asm | 98 - firmware/dsp56k/bootstrap.bin.ihex | 26 - firmware/e100/d101m_ucode.bin.ihex | 38 - firmware/e100/d101s_ucode.bin.ihex | 38 - firmware/e100/d102e_ucode.bin.ihex | 38 - firmware/edgeport/boot.H16 | 29 - firmware/edgeport/boot2.H16 | 28 - firmware/edgeport/down.H16 | 29 - firmware/edgeport/down2.H16 | 29 - firmware/edgeport/down3.bin.ihex | 815 - firmware/emi26/bitstream.HEX | 4391 ----- firmware/emi26/firmware.HEX | 1261 -- firmware/emi26/loader.HEX | 116 - firmware/emi62/bitstream.HEX | 6107 ------- firmware/emi62/loader.HEX | 107 - firmware/emi62/midi.HEX | 1266 -- firmware/emi62/spdif.HEX | 1257 -- firmware/ess/maestro3_assp_kernel.fw.ihex | 120 - firmware/ess/maestro3_assp_minisrc.fw.ihex | 51 - firmware/ihex2fw.c | 281 - firmware/kaweth/new_code.bin.ihex | 206 - firmware/kaweth/new_code_fix.bin.ihex | 40 - firmware/kaweth/trigger_code.bin.ihex | 13 - firmware/kaweth/trigger_code_fix.bin.ihex | 3 - firmware/keyspan/mpr.HEX | 104 - firmware/keyspan/usa18x.HEX | 141 - firmware/keyspan/usa19.HEX | 101 - firmware/keyspan/usa19qi.HEX | 101 - firmware/keyspan/usa19qw.HEX | 142 - firmware/keyspan/usa19w.HEX | 141 - firmware/keyspan/usa28.HEX | 148 - firmware/keyspan/usa28x.HEX | 141 - firmware/keyspan/usa28xa.HEX | 141 - firmware/keyspan/usa28xb.HEX | 142 - firmware/keyspan/usa49w.HEX | 145 - firmware/keyspan/usa49wlc.HEX | 153 - firmware/keyspan_pda/keyspan_pda.HEX | 83 - firmware/keyspan_pda/keyspan_pda.S | 1124 -- firmware/keyspan_pda/xircom_pgs.HEX | 87 - firmware/keyspan_pda/xircom_pgs.S | 1192 -- firmware/korg/k1212.dsp.ihex | 987 -- firmware/matrox/g200_warp.H16 | 28 - firmware/matrox/g400_warp.H16 | 44 - firmware/mts_cdma.fw.ihex | 867 - firmware/mts_edge.fw.ihex | 881 - firmware/mts_gsm.fw.ihex | 867 - firmware/myricom/lanai.bin.ihex | 4771 ------ firmware/ositech/Xilinx7OD.bin.ihex | 177 - firmware/qlogic/1040.bin.ihex | 2111 --- firmware/qlogic/12160.bin.ihex | 1771 -- firmware/qlogic/1280.bin.ihex | 2008 --- firmware/qlogic/isp1000.bin.ihex | 1158 -- firmware/qlogic/sd7220.fw.ihex | 513 - firmware/r128/r128_cce.bin.ihex | 129 - firmware/radeon/R100_cp.bin.ihex | 130 - firmware/radeon/R200_cp.bin.ihex | 130 - firmware/radeon/R300_cp.bin.ihex | 130 - firmware/radeon/R420_cp.bin.ihex | 130 - firmware/radeon/R520_cp.bin.ihex | 130 - firmware/radeon/R600_me.bin.ihex | 1345 -- firmware/radeon/R600_pfp.bin.ihex | 145 - firmware/radeon/RS600_cp.bin.ihex | 130 - firmware/radeon/RS690_cp.bin.ihex | 130 - firmware/radeon/RS780_me.bin.ihex | 1345 -- firmware/radeon/RS780_pfp.bin.ihex | 145 - firmware/radeon/RV610_me.bin.ihex | 1345 -- firmware/radeon/RV610_pfp.bin.ihex | 145 - firmware/radeon/RV620_me.bin.ihex | 1345 -- firmware/radeon/RV620_pfp.bin.ihex | 145 - firmware/radeon/RV630_me.bin.ihex | 1345 -- firmware/radeon/RV630_pfp.bin.ihex | 145 - firmware/radeon/RV635_me.bin.ihex | 1345 -- firmware/radeon/RV635_pfp.bin.ihex | 145 - firmware/radeon/RV670_me.bin.ihex | 1345 -- firmware/radeon/RV670_pfp.bin.ihex | 145 - firmware/radeon/RV710_me.bin.ihex | 341 - firmware/radeon/RV710_pfp.bin.ihex | 213 - firmware/radeon/RV730_me.bin.ihex | 341 - firmware/radeon/RV730_pfp.bin.ihex | 213 - firmware/radeon/RV770_me.bin.ihex | 341 - firmware/radeon/RV770_pfp.bin.ihex | 213 - firmware/sb16/alaw_main.csp.ihex | 87 - firmware/sb16/ima_adpcm_capture.csp.ihex | 121 - firmware/sb16/ima_adpcm_init.csp.ihex | 70 - firmware/sb16/ima_adpcm_playback.csp.ihex | 122 - firmware/sb16/mulaw_main.csp.ihex | 84 - firmware/sun/cassini.bin.ihex | 143 - firmware/tehuti/bdx.bin.ihex | 2678 --- firmware/ti_3410.fw.ihex | 862 - firmware/ti_5052.fw.ihex | 862 - firmware/tigon/tg3.bin.ihex | 175 - firmware/tigon/tg3_tso.bin.ihex | 446 - firmware/tigon/tg3_tso5.bin.ihex | 252 - firmware/ttusb-budget/dspbootcode.bin.ihex | 820 - firmware/vicam/firmware.H16 | 7 - firmware/whiteheat.HEX | 1097 -- firmware/whiteheat_loader.HEX | 314 - firmware/whiteheat_loader_debug.HEX | 403 - firmware/yam/1200.bin.ihex | 342 - firmware/yam/9600.bin.ihex | 342 - firmware/yamaha/ds1_ctrl.fw.ihex | 769 - firmware/yamaha/ds1_dsp.fw.ihex | 9 - firmware/yamaha/ds1e_ctrl.fw.ihex | 769 - firmware/yamaha/yss225_registers.bin.ihex | 998 -- scripts/Makefile.fwinst | 70 - 153 files changed, 1 insertion(+), 129169 deletions(-) delete mode 100644 firmware/.gitignore delete mode 100644 firmware/3com/typhoon.bin.ihex delete mode 100644 firmware/Makefile delete mode 100644 firmware/README.AddingFirmware delete mode 100644 firmware/WHENCE delete mode 100644 firmware/acenic/tg1.bin.ihex delete mode 100644 firmware/acenic/tg2.bin.ihex delete mode 100644 firmware/adaptec/starfire_rx.bin.ihex delete mode 100644 firmware/adaptec/starfire_tx.bin.ihex delete mode 100644 firmware/advansys/3550.bin.ihex delete mode 100644 firmware/advansys/38C0800.bin.ihex delete mode 100644 firmware/advansys/38C1600.bin.ihex delete mode 100644 firmware/advansys/mcode.bin.ihex delete mode 100644 firmware/atmsar11.HEX delete mode 100644 firmware/av7110/Boot.S delete mode 100644 firmware/av7110/bootcode.bin.ihex delete mode 100644 firmware/bnx2/bnx2-mips-06-6.2.1.fw.ihex delete mode 100644 firmware/bnx2/bnx2-mips-09-6.2.1a.fw.ihex delete mode 100644 firmware/bnx2/bnx2-rv2p-06-6.0.15.fw.ihex delete mode 100644 firmware/bnx2/bnx2-rv2p-09-6.0.17.fw.ihex delete mode 100644 firmware/bnx2/bnx2-rv2p-09ax-6.0.17.fw.ihex delete mode 100644 firmware/bnx2x/bnx2x-e1-6.2.9.0.fw.ihex delete mode 100644 firmware/bnx2x/bnx2x-e1h-6.2.9.0.fw.ihex delete mode 100644 firmware/bnx2x/bnx2x-e2-6.2.9.0.fw.ihex delete mode 100644 firmware/cis/.gitignore delete mode 100644 firmware/cis/3CCFEM556.cis.ihex delete mode 100644 firmware/cis/3CXEM556.cis.ihex delete mode 100644 firmware/cis/COMpad2.cis.ihex delete mode 100644 firmware/cis/COMpad4.cis.ihex delete mode 100644 firmware/cis/DP83903.cis.ihex delete mode 100644 firmware/cis/LA-PCM.cis.ihex delete mode 100644 firmware/cis/MT5634ZLX.cis.ihex delete mode 100644 firmware/cis/NE2K.cis.ihex delete mode 100644 firmware/cis/PCMLM28.cis.ihex delete mode 100644 firmware/cis/PE-200.cis.ihex delete mode 100644 firmware/cis/PE520.cis.ihex delete mode 100644 firmware/cis/RS-COM-2P.cis.ihex delete mode 100644 firmware/cis/SW_555_SER.cis.ihex delete mode 100644 firmware/cis/SW_7xx_SER.cis.ihex delete mode 100644 firmware/cis/SW_8xx_SER.cis.ihex delete mode 100644 firmware/cis/tamarack.cis.ihex delete mode 100644 firmware/cpia2/stv0672_vp4.bin.ihex delete mode 100644 firmware/cxgb3/ael2005_opt_edc.bin.ihex delete mode 100644 firmware/cxgb3/ael2005_twx_edc.bin.ihex delete mode 100644 firmware/cxgb3/ael2020_twx_edc.bin.ihex delete mode 100644 firmware/cxgb3/t3b_psram-1.1.0.bin.ihex delete mode 100644 firmware/cxgb3/t3c_psram-1.1.0.bin.ihex delete mode 100644 firmware/dsp56k/bootstrap.asm delete mode 100644 firmware/dsp56k/bootstrap.bin.ihex delete mode 100644 firmware/e100/d101m_ucode.bin.ihex delete mode 100644 firmware/e100/d101s_ucode.bin.ihex delete mode 100644 firmware/e100/d102e_ucode.bin.ihex delete mode 100644 firmware/edgeport/boot.H16 delete mode 100644 firmware/edgeport/boot2.H16 delete mode 100644 firmware/edgeport/down.H16 delete mode 100644 firmware/edgeport/down2.H16 delete mode 100644 firmware/edgeport/down3.bin.ihex delete mode 100644 firmware/emi26/bitstream.HEX delete mode 100644 firmware/emi26/firmware.HEX delete mode 100644 firmware/emi26/loader.HEX delete mode 100644 firmware/emi62/bitstream.HEX delete mode 100644 firmware/emi62/loader.HEX delete mode 100644 firmware/emi62/midi.HEX delete mode 100644 firmware/emi62/spdif.HEX delete mode 100644 firmware/ess/maestro3_assp_kernel.fw.ihex delete mode 100644 firmware/ess/maestro3_assp_minisrc.fw.ihex delete mode 100644 firmware/ihex2fw.c delete mode 100644 firmware/kaweth/new_code.bin.ihex delete mode 100644 firmware/kaweth/new_code_fix.bin.ihex delete mode 100644 firmware/kaweth/trigger_code.bin.ihex delete mode 100644 firmware/kaweth/trigger_code_fix.bin.ihex delete mode 100644 firmware/keyspan/mpr.HEX delete mode 100644 firmware/keyspan/usa18x.HEX delete mode 100644 firmware/keyspan/usa19.HEX delete mode 100644 firmware/keyspan/usa19qi.HEX delete mode 100644 firmware/keyspan/usa19qw.HEX delete mode 100644 firmware/keyspan/usa19w.HEX delete mode 100644 firmware/keyspan/usa28.HEX delete mode 100644 firmware/keyspan/usa28x.HEX delete mode 100644 firmware/keyspan/usa28xa.HEX delete mode 100644 firmware/keyspan/usa28xb.HEX delete mode 100644 firmware/keyspan/usa49w.HEX delete mode 100644 firmware/keyspan/usa49wlc.HEX delete mode 100644 firmware/keyspan_pda/keyspan_pda.HEX delete mode 100644 firmware/keyspan_pda/keyspan_pda.S delete mode 100644 firmware/keyspan_pda/xircom_pgs.HEX delete mode 100644 firmware/keyspan_pda/xircom_pgs.S delete mode 100644 firmware/korg/k1212.dsp.ihex delete mode 100644 firmware/matrox/g200_warp.H16 delete mode 100644 firmware/matrox/g400_warp.H16 delete mode 100644 firmware/mts_cdma.fw.ihex delete mode 100644 firmware/mts_edge.fw.ihex delete mode 100644 firmware/mts_gsm.fw.ihex delete mode 100644 firmware/myricom/lanai.bin.ihex delete mode 100644 firmware/ositech/Xilinx7OD.bin.ihex delete mode 100644 firmware/qlogic/1040.bin.ihex delete mode 100644 firmware/qlogic/12160.bin.ihex delete mode 100644 firmware/qlogic/1280.bin.ihex delete mode 100644 firmware/qlogic/isp1000.bin.ihex delete mode 100644 firmware/qlogic/sd7220.fw.ihex delete mode 100644 firmware/r128/r128_cce.bin.ihex delete mode 100644 firmware/radeon/R100_cp.bin.ihex delete mode 100644 firmware/radeon/R200_cp.bin.ihex delete mode 100644 firmware/radeon/R300_cp.bin.ihex delete mode 100644 firmware/radeon/R420_cp.bin.ihex delete mode 100644 firmware/radeon/R520_cp.bin.ihex delete mode 100644 firmware/radeon/R600_me.bin.ihex delete mode 100644 firmware/radeon/R600_pfp.bin.ihex delete mode 100644 firmware/radeon/RS600_cp.bin.ihex delete mode 100644 firmware/radeon/RS690_cp.bin.ihex delete mode 100644 firmware/radeon/RS780_me.bin.ihex delete mode 100644 firmware/radeon/RS780_pfp.bin.ihex delete mode 100644 firmware/radeon/RV610_me.bin.ihex delete mode 100644 firmware/radeon/RV610_pfp.bin.ihex delete mode 100644 firmware/radeon/RV620_me.bin.ihex delete mode 100644 firmware/radeon/RV620_pfp.bin.ihex delete mode 100644 firmware/radeon/RV630_me.bin.ihex delete mode 100644 firmware/radeon/RV630_pfp.bin.ihex delete mode 100644 firmware/radeon/RV635_me.bin.ihex delete mode 100644 firmware/radeon/RV635_pfp.bin.ihex delete mode 100644 firmware/radeon/RV670_me.bin.ihex delete mode 100644 firmware/radeon/RV670_pfp.bin.ihex delete mode 100644 firmware/radeon/RV710_me.bin.ihex delete mode 100644 firmware/radeon/RV710_pfp.bin.ihex delete mode 100644 firmware/radeon/RV730_me.bin.ihex delete mode 100644 firmware/radeon/RV730_pfp.bin.ihex delete mode 100644 firmware/radeon/RV770_me.bin.ihex delete mode 100644 firmware/radeon/RV770_pfp.bin.ihex delete mode 100644 firmware/sb16/alaw_main.csp.ihex delete mode 100644 firmware/sb16/ima_adpcm_capture.csp.ihex delete mode 100644 firmware/sb16/ima_adpcm_init.csp.ihex delete mode 100644 firmware/sb16/ima_adpcm_playback.csp.ihex delete mode 100644 firmware/sb16/mulaw_main.csp.ihex delete mode 100644 firmware/sun/cassini.bin.ihex delete mode 100644 firmware/tehuti/bdx.bin.ihex delete mode 100644 firmware/ti_3410.fw.ihex delete mode 100644 firmware/ti_5052.fw.ihex delete mode 100644 firmware/tigon/tg3.bin.ihex delete mode 100644 firmware/tigon/tg3_tso.bin.ihex delete mode 100644 firmware/tigon/tg3_tso5.bin.ihex delete mode 100644 firmware/ttusb-budget/dspbootcode.bin.ihex delete mode 100644 firmware/vicam/firmware.H16 delete mode 100644 firmware/whiteheat.HEX delete mode 100644 firmware/whiteheat_loader.HEX delete mode 100644 firmware/whiteheat_loader_debug.HEX delete mode 100644 firmware/yam/1200.bin.ihex delete mode 100644 firmware/yam/9600.bin.ihex delete mode 100644 firmware/yamaha/ds1_ctrl.fw.ihex delete mode 100644 firmware/yamaha/ds1_dsp.fw.ihex delete mode 100644 firmware/yamaha/ds1e_ctrl.fw.ihex delete mode 100644 firmware/yamaha/yss225_registers.bin.ihex delete mode 100644 scripts/Makefile.fwinst diff --git a/Makefile b/Makefile index 1a49b758298c..08c4e55b7e44 100644 --- a/Makefile +++ b/Makefile @@ -557,7 +557,7 @@ scripts: scripts_basic include/config/auto.conf include/config/tristate.conf \ # Objects we will link into vmlinux / subdirs we need to visit init-y := init/ -drivers-y := drivers/ sound/ firmware/ +drivers-y := drivers/ sound/ net-y := net/ libs-y := lib/ core-y := usr/ @@ -1043,16 +1043,6 @@ headerdep: $(Q)find $(srctree)/include/ -name '*.h' | xargs --max-args 1 \ $(srctree)/scripts/headerdep.pl -I$(srctree)/include -# --------------------------------------------------------------------------- -# Firmware install -INSTALL_FW_PATH=$(INSTALL_MOD_PATH)/lib/firmware -export INSTALL_FW_PATH - -PHONY += firmware_install -firmware_install: FORCE - @mkdir -p $(objtree)/firmware - $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_install - # --------------------------------------------------------------------------- # Kernel headers @@ -1122,7 +1112,6 @@ modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin $(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order @$(kecho) ' Building modules, stage 2.'; $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost - $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_modbuild modules.builtin: $(vmlinux-dirs:%=%/modules.builtin) $(Q)$(AWK) '!x[$$0]++' $^ > $(objtree)/modules.builtin @@ -1158,7 +1147,6 @@ _modinst_: # boot script depmod is the master version. PHONY += _modinst_post _modinst_post: _modinst_ - $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_modinst $(call cmd,depmod) ifeq ($(CONFIG_MODULE_SIG), y) @@ -1278,8 +1266,6 @@ help: @echo '* vmlinux - Build the bare kernel' @echo '* modules - Build all modules' @echo ' modules_install - Install all modules to INSTALL_MOD_PATH (default: /)' - @echo ' firmware_install- Install all firmware to INSTALL_FW_PATH' - @echo ' (default: $$(INSTALL_MOD_PATH)/lib/firmware)' @echo ' dir/ - Build all files in dir and below' @echo ' dir/file.[ois] - Build specified target only' @echo ' dir/file.lst - Build specified mixed source/assembly target only' diff --git a/firmware/.gitignore b/firmware/.gitignore deleted file mode 100644 index d9c69017bc9a..000000000000 --- a/firmware/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.gen.S -*.fw -*.bin -*.csp -*.dsp -ihex2fw diff --git a/firmware/3com/typhoon.bin.ihex b/firmware/3com/typhoon.bin.ihex deleted file mode 100644 index d7a83bea0c3b..000000000000 --- a/firmware/3com/typhoon.bin.ihex +++ /dev/null @@ -1,2819 +0,0 @@ -:10000000545950484F4F4E000200000009000000B4 -:100010000000FFFFCB99B1D44CB8D04B3202D4EEE4 -:10002000737E0B139BC0AEF440010000E8FC00009F -:100030000000FFFF390000EA050000EA040000EAC2 -:10004000030000EA020000EA010000EA320200EACE -:10005000C51400EA07002DE90E00A0E100100FE131 -:10006000D0209FE512FF2FE1FEFFFFEA010080E0B4 -:10007000042081E4010050E1FCFFFF1A0EF0A0E132 -:1000800000A0A0E10EB0A0E10000A0E3A8109FE551 -:10009000000081E5A4109FE5000081E50116A0E3C2 -:1000A000000091E5010080E3000081E5D700A0E3B6 -:1000B00000F021E188D09FE5DB00A0E300F021E122 -:1000C0007CD09FE5D200A0E300F021E174D09FE551 -:1000D000D100A0E300F021E16CD09FE59B1400EB80 -:1000E000D300A0E300F021E160D09FE560009FE530 -:1000F00060109FE560209FE5DBFFFFEB5C009FE564 -:100100005C109FE50020A0E3D7FFFFEB54009FE5C4 -:1001100054109FE5D4FFFFEB0A00A0E10BF0A0E133 -:10012000D310A0E301F021E1D4FFFFEB3CA09FE559 -:100130001AFF2FE1C6FFFFEA1521FFFF0C00100098 -:100140001C0010003C380080FC370080FC3F008021 -:100150007C340080800F000080300080ADDEADDE9A -:10016000B0BB000024AB20404829000028050080D7 -:10017000BDBA214000000000FFFF000000000000A9 -:1001800000000000FFFF00000000000058570000C2 -:10019000864B00006001FFFFB0B5071C124D002424 -:1001A000286800281ED0381C104904F07BFD2968FF -:1001B000C0460860002815D038010D4940181923A1 -:1001C000DB01C018416B80290CD2013141632868E2 -:1001D000C169C0462960390741600462C762B0BC8A -:1001E00008BC1847201CFAE7E8170080EE0500005D -:1001F000A01C008002490A68C046C26108607047BE -:10020000E81700807047000070470000704700004A -:1002100000000FE10010A0E1C01081E301F021E136 -:100220001EFF2FE100F021E11EFF2FE100000FE192 -:10023000C00080E300F021E11EFF2FE100000FE18C -:10024000C000C0E300F021E11EFF2FE100000FE13C -:10025000400080E300F021E11EFF2FE100000FE1EC -:10026000800010E3800080E300F021E10000001234 -:100270001EFF2FE1000050E300000FE18000C013DB -:1002800000F021E11EFF2FE100000FE18000C0E33C -:1002900000F021E11EFF2FE1910000E01EFF2FE1A1 -:1002A000012080E0010080E01EFF2FE180B5084FB3 -:1002B000642804D3642038630020C04303E038631B -:1002C000044905F001FB7863B86380BC08BC18479B -:1002D000680E00808813000080B4104B00221F6B52 -:1002E000642F03D209680968490802D2101C80BC37 -:1002F0007047191CDB6B4F6BBB4205D24068000492 -:10030000000C1818C863F1E74168054B19434160B8 -:100310000448C16B0131C1630220E8E7680E008028 -:10032000000000800C2B008090B5071C154C0020AD -:10033000216B64290BD2B96E490808D3216CA26BDA -:10034000914207D2FA1D3932528B8918216490BC30 -:1003500008BC1847786A396BC0464862386B02F0AF -:100360002DFE381C02F0E8FA0120BB231B01E11826 -:10037000C87305490A6C12180A6404498A6D121878 -:100380008A65E4E7680E00800C2B0080A42A0080B8 -:1003900080B40A48C06D02231840094A0021002891 -:1003A00003D0D163116480BC7047064807687B1C8A -:1003B00003600A2FF7D30160F3E70000A42A00804E -:1003C000680E0080E001008070470204120C000CEF -:1003D00010180A04120C090C51180818010C05D049 -:1003E0000104090C000C0818010CF9D10004000CE0 -:1003F000704780B40022002918D04F087B1E002FC0 -:1004000006D00788BA1802301F1C013B002FF8D114 -:10041000490803D300880006000E8218100C05D08E -:100420001004000C110C4218100CF9D11004000C2F -:1004300080BC704780B58389C789FB18078AFB1881 -:10044000478AFB18407A0002C718380C05D03804D8 -:10045000000C3B0CC718380CF9D1081C111CFFF715 -:10046000C8FF011C381CFFF7B0FF80BC08BC184750 -:1004700090B5022382681A400027002A0FD00A4A4A -:100480009369013393610A688B689A1800681C1895 -:1004900057810969101CFFF7ACFFC0436081381C0D -:1004A00090BC08BC184700000C2B008090B50423BA -:1004B00082681A400027002A11D04A6852090ED3D8 -:1004C000094A136A01331362CB6802689C1801233E -:1004D0009B07083A1A43126800F02EF82082381C55 -:1004E00090BC08BC184700000C2B008090B58023FE -:1004F00082681A400024002A15D04A68920912D353 -:100500000B4AD3690133D361CB6802689F1801237A -:100510009B07083A1A43126800F00EF8002800D131 -:100520000448C046F880201C90BC08BC1847000056 -:100530000C2B0080FFFF0000B0B5141C051C0F1C25 -:100540003869B96841183868FFF753FFC0430104A0 -:10055000090C201CFFF739FF041CB86879694018A2 -:10056000696888420CD22A681218091A101C00F017 -:1005700005F9C0430104090C201CFFF726FF041CE9 -:10058000E0430004000CB0BC08BC184780B5071C51 -:10059000B86BC0081AD3B86AF96B4018796C00F0D0 -:1005A000EDF8C0430104090C0A4807D02023B969BB -:1005B0001943B961016B0131016307E0FF23013386 -:1005C000B9691943B961416A01314162002080BCB7 -:1005D00008BC18470C2B008080B5071CB86B41097C -:1005E0001CD3C0081AD3F81D3930007B062815D15A -:1005F000381C00F053F8011C0A4807D04023B969A1 -:100600001943B961816B0131816307E001239B02CA -:10061000B9691943B961C16A0131C162002080BC66 -:1006200008BC18470C2B0080B0B5071CB86B8109BB -:100630002CD3C0082AD3F81D3930007B112825D1CE -:10064000B86A396C401801239B07063018430068CC -:1006500005042D0C0F4C11D0381C00F01FF8002899 -:100660000CD0A84202D10C4B984207D08023B86925 -:100670001843B861606B0130606307E001235B02DF -:10068000B8691843B861A06A0130A0620020B0BC0C -:1006900008BC18470C2B0080FFFF0000F0B5FFB02E -:1006A00099B0041CE06B616C091803AA8518A36A51 -:1006B00000208A080132979207D082009F5803AE2B -:1006C000B750979A01308242F7D8606A01239B079E -:1006D000043018430068C046029002AF3F8803A868 -:1006E000FFF787FEC0430104090C381CFFF76DFEBD -:1006F000071CE06BA16C4018616A01239B0708315D -:1007000019430968C046019101A90988013188424D -:100710000CD2A26A1218091A101C00F02FF8C0435C -:100720000104090C381CFFF750FE071CA889E98951 -:100730000818298A0818698A0818697A09020818A5 -:10074000A16C626C891A0A04120C1102120A11437C -:100750000904090C0918080C05D00804000C090C40 -:100760004118080CF9D1381CFFF72FFEC0430004D4 -:10077000000C7FB019B0F0BC08BC1847B0B4002220 -:1007800000292ED083079B0FDC0047180425EF1BA0 -:10079000BF07BF0FFF008008800059180331890888 -:1007A0004D1E02C8E140A1406B1E002D09D00C0473 -:1007B000240CA218090C8A1802C81C1C013B002C2E -:1007C000F5D1B940081CF8400104090C8918000C47 -:1007D0004218100C05D01004000C110C4218100C1B -:1007E000F9D11004000CB0BC7047000090B4002098 -:1007F0000127114942001218D20053189C680123A6 -:100800009B0723431B681B031B0B8A581203120B05 -:1008100093420CD101300428ECD30848C06A01038C -:10082000090B0748006F0003000B814202D0381CFF -:1008300090BC70470020FBE7A803008000401440F4 -:10084000680E008098B4144AC04600928300134892 -:10085000C05807033F0B1248C0580203120B11483F -:10086000C0580003000B104CE45801239B0723439E -:100870001B689B00CC000121984201D1081C09E0B3 -:10088000984203D9101ADA1B801800E0181A844223 -:10089000F4D3002098BC704755555555200400806E -:1008A00028040080080400801804008080B4130429 -:1008B00000D0013A80000B1C13490F58C0463B6022 -:1008C0000B58C0465A600A580832104B1B589A42BF -:1008D00001D30F4A12580F4B1F5801239B073B436C -:1008E0001B689B0017033F0B9F4206D10A48C16853 -:1008F0000131C160012080BC7047084B1B58C046C5 -:100900001A600A500020F6E70804008028040080DE -:100910002004008018040080A08220401004008081 -:10092000FF5F2DE948FEFFEB01B6A0E301B18BE2CA -:10093000028AA0E3017AA0E301A9A0E30156A0E3A3 -:10094000C8609FE5C8909FE514409BE5000054E314 -:100950002C00000A030A14E31100000A0C0096E5BB -:10096000000050E32100000A010A14E30500000A18 -:100970001C0096E5010AC0E31C0086E51C0085E525 -:10098000147085E5060000EA020A14E30400000A78 -:100990001C0096E5020AC0E31C0086E51C0085E504 -:1009A000148085E5010914E30400000A1C0096E5A3 -:1009B0000109C0E31C0086E51C0085E514A085E55F -:1009C000020014E34000001B010014E35400001B6C -:1009D000020B14E36700001B010B14E32000001B53 -:1009E000180099E5010080E2180089E5D5FFFFEACB -:1009F0001C0096E5010AC0E31C0086E51C0085E5A5 -:100A0000147085E5E1FFFFEAFF5FBDE804F05EE2F8 -:100A1000680E00800883204010101FE5143091E517 -:100A20000020C3E1142081E50116A0E30C2081E53C -:100A30000B12A0E3000081E518109FE5B024D1E17E -:100A4000012082E2B024C1E13C2091E5000082E176 -:100A50003C0081E51EFF2FE1A0822040FFFFFFEA5E -:100A6000FEFFFFEA010BA0E30116A0E3140081E5FD -:100A7000001A81E1242091E570001FE500000000CC -:100A8000242080E5281091E500000000281080E572 -:100A90002C2090E5012082E22C2080E53F0001E23D -:100AA0003F0050E31EFF2F1118009FE5001090E556 -:100AB000011081E2001080E50218A0E30B02A0E320 -:100AC000001080E51EFF2FE1300400800106A0E346 -:100AD000010180E2001090E5010811E30B10A0E392 -:100AE000021981E20500001A002090E54228B0E1D9 -:100AF0000500001A000090E5020C10E30200000A55 -:100B00000607A0E34C1180E5030000EA0C009FE516 -:100B100000000000401080E5FFFFFFEAFEFFFFEA53 -:100B2000000000800106A0E3010180E2001090E5D2 -:100B3000010811E30C10A0E3021981E20500001A7C -:100B4000002090E54228B0E10500001A000090E581 -:100B5000020C10E30200000A0607A0E34C1180E536 -:100B6000030000EA4C001FE500000000401080E593 -:100B7000FFFFFFEAFEFFFFEA021BA0E30106A0E37E -:100B8000141080E51EFF2FE180211FE5143092E54F -:100B900000000000003080E51C0092E5000000002D -:100BA000000081E50010A0E3141082E50106A0E337 -:100BB0001C1082E50C1080E51C1092E5000000007E -:100BC0001C1080E51EFF2FE1C0211FE50000000082 -:100BD0001C1082E50116A0E3140082E50C0081E5FB -:100BE0001C0092E5000000001C0081E51EFF2FE1C3 -:100BF00080B50F1C381C00F017F8002802D0381CF4 -:100C000000F092F8002080BC08BC184780B50F1C8B -:100C1000381C00F009F8002802D0381C00F084F8D5 -:100C2000002080BC08BC1847F0B407683A78D207A7 -:100C3000D20F0024002A03D0FF220132426000E0DC -:100C400044603A7B7B7B1B021A43812A08D1012333 -:100C50005B0242681A4342600422BF18826000E0CF -:100C600084603A7B7B7B1B021A43082A06D1062349 -:100C700041681943416081680E313CE0C123DB00CB -:100C80009A4203D14168244B19433EE0234B9A42D8 -:100C900004D101231B034168194336E01302120AF1 -:100CA0001206120E1A431204120C2E3A1C4B9A42D0 -:100CB0002DD80125426815434560BA7BFB7B1B029A -:100CC0001A43184B9A4222D1FB1D093344CB9B0790 -:100CD000DB0EDA405B4220339E401643032E18D1D0 -:100CE000397D7B7D1B021943082907D10421294343 -:100CF000416081681631816001210AE0C123DB0077 -:100D0000994204D1012189032943416000E08460B4 -:100D10000021081CF0BC70470240000081800000E8 -:100D2000AE050000AAAA000080B44268D1083FD3F3 -:100D300001688368591802398F783F073F0F052FE4 -:100D400003D1DA1D0D32C26005E0BF00DB19C360BC -:100D500008231A4342608A781207120F9200026138 -:100D60000A794B791B021A431302120A1206120E59 -:100D70001A431204120C4261CA7A062A03D11023C4 -:100D800042681A4310E0112A03D1202342681A4313 -:100D90000AE0332A03D1402342681A4304E0322A8E -:100DA00003D1802342681A434260C97AC046017663 -:100DB00080BC70470A78C04602604B781B021A4319 -:100DC00002608B781B041A430260C978090611433C -:100DD0000160704780B5071C4868800926D3B86A4F -:100DE000C968401801239B070230184300680004BB -:100DF000000C11239B02984218D1786A396BC046C7 -:100E00004862386B02F0DAF8381C01F095FD0120D9 -:100E10000749C046C87307494A6C12184A64064914 -:100E20008A6D12188A6580BC08BC18470020FAE752 -:100E3000181A00800C2B0080A42A0080810719D08A -:100E40008008800001239B07011D18430068194397 -:100E500009680202120E1206000AFF231B04184042 -:100E600010430A0A1206120E104309021B0A194007 -:100E70000843704701239B071843006801060202DC -:100E8000FF231B041A401143020A1B0A1A40114394 -:100E9000000E0843EDE70000F0B50423816B194014 -:100EA0000022002946D0C71D3937397B332901D0AC -:100EB00032293FD1016BC0464A65C41D2D34CD1D7A -:100EC0002D3500229300E658C046EE500132072A25 -:100ED000F8D3826AC0464A63826AC0468A627A8BC5 -:100EE000CB1D39335A83406AC046486212480127F5 -:100EF0004268002A10D1C268002A13D14269002A30 -:100F00000DD10161C160016A022902D3203007714D -:100F10000CE000F013F809E0C268002A02D1016178 -:100F2000C16003E00269C04651650161381CF0BC34 -:100F300008BC1847101CFAE76C06008080B51E49F3 -:100F40000022CB68002B34D0C81DF9308362CB68F7 -:100F50009B6AC046C362CF697B00DF197F02174BD3 -:100F6000FF18FF37653783630763CB1DFF335A33A1 -:100F70001A72CB69002B01D0CA6101E00123CB6159 -:100F80000F1CC968496A098901314163F81DFF30A6 -:100F90003A30426002828260C260381C00F0CEFAB1 -:100FA000386A01303862381C00F00AF880BC08BC8E -:100FB0001847101CFAE700006C060080ACAB20401C -:100FC000F0B5071CF91DF931886AC21D2D320123C5 -:100FD0009B0708321A43C86A12681204120C801860 -:100FE0008279C3791B021A431302120A1206120EE7 -:100FF0001A431204120C02389204920C0026254D5A -:10100000EC1DFF343A34002A04D0208A01239B02CD -:1010100018432BE001239B07C21D0D321A431268AF -:1010200012041230184300680004000C1043031C23 -:10103000F81DFF304A308278C86B191C02F002F8A4 -:10104000002804DA208AFF23013318430EE0F91D3B -:10105000FF313A3108600104090C381C00F01CF81B -:10106000002814D1208A01235B0218432082218AA0 -:10107000381C00F0A2FBE86801239B07543018439A -:101080000068C046E860301CF0BC08BC184701206E -:10109000FAE700006C060080F8B5071CFC1DF93467 -:1010A000A06BA66AC51D0D353848C06A4B0059189B -:1010B0004901421801208007104300680004000C19 -:1010C000009001239B07D01D053018430068381C91 -:1010D000291C00F0C2FAA888410701D0002051E085 -:1010E00029890918606B8142F8D86989EA888918CA -:1010F0008142F3D80098012825D1E06AF16B4018AD -:10110000716CFA1DCD3201F033F9FA1DFF323A321B -:10111000E06A51694018C31D0333002081005E5806 -:10112000C919FF3101314E6101300428F6D3E06A5C -:1011300051694018C11D0531002000224300CA52E8 -:1011400001300628FAD3291C114A0020FFF7AEFB14 -:1011500001225204606B02430120216BFFF7A6FBC2 -:1011600001225204606B02430020E16AFFF79EFBFC -:10117000A16B084A0120FFF799FB03200649C046EE -:1011800048620120F8BC08BC184700004C2A0080C7 -:101190005400030014000F006C070080F0B58DB000 -:1011A0000020B54AD51DF935686201200005B34914 -:1011B000C0460860A86AC41D2D34B148C06AD71D56 -:1011C000FF373A3739684B00591849014018012355 -:1011D0009B07C11D05311943096808301843006891 -:1011E000C0460990FF231B021840000A0A900A9883 -:1011F000A44E012859D1286BA2688018A24A2169FF -:101200000904090C01F026F9286B79694018C11D01 -:10121000053100208200984BD318FF3301335B69FE -:10122000C0468B5001300428F4D30020311C8200CA -:10123000561801239B0733431B6804AEB35001309B -:101240000328F4D300200890904942008B5AB25AE8 -:10125000934213D08E48C1890131C181B8680028FA -:1012600003D1388A1023184371E0388A4023184389 -:101270006DE000F011F901F067FFF5E0013006289C -:10128000E3D3089800280CD1B868411CB960002845 -:1012900003D1388A0123184302E0388A0423184313 -:1012A000388278680130786062E00A9802285FD15D -:1012B0000998400C73D301239B07E01D01301843AC -:1012C0000068E11D0D311943096840180C3800040D -:1012D000000C00218A006B4BD61801239B07334377 -:1012E0001B6804AEB35001310329F3D30021831EE0 -:1012F0000C93684A166BC0460B968A000C9B9B1891 -:101300000B9E9E1901239B0733431B686E46B35007 -:1013100001310429F1D369468B1C07930021089100 -:1013200004AE4A00079B9B5AB25A934211D05848C8 -:10133000C1890131C181F868411CF960002803D1DD -:10134000388A2023184302E0388A802318433882E1 -:101350008FE701310629E4D3089900290DD1F968F6 -:101360004A1CFA60002904D1398A0223194303E098 -:101370000CE0398A082319433982296B08180123A4 -:101380009B07013818430068C046207601239B075D -:10139000E01D1130184300680106090E00E019E055 -:1013A00035482A6BC046EA6204294FD10121C61D87 -:1013B000FF365A3631720A9902291ED10999090E4F -:1013C00049061AD1E11D0531194309680906090EBC -:1013D00008391AE001239B07E01D0130184300681B -:1013E000E11D0D311943096840180004000CF9682B -:1013F0004A1CFA600029BCD1B6E701239B07E11D16 -:101400000531194309680906090EA160E86AC0465A -:101410002060201CFFF788FC207E332801D0322872 -:1014200011D10121144CC046F960B960201C00F0B4 -:1014300085F8286BA96AC0468862201CFFF7C0FDAA -:10144000002811D10EE00020307211E0332901D0C4 -:1014500032290DD1071C00F071F8381CFFF7B0FDE0 -:10146000002801D101F070FE0DB0F0BC08BC184797 -:1014700000F012F8F6E700006C060080000000B0F3 -:101480004C2A0080ACAB20404007008082070080DF -:101490000C2B00806C070080F0B5254841680131B5 -:1014A0004160244FF91DF9310024886AFA68C0466A -:1014B00094610422FB68C046DA601022FB68C046D3 -:1014C0009A61FA1DFF325A32137A1B4A002B0BD055 -:1014D000158A2E0A360233232B409B001E43CC2351 -:1014E0002B409B0833431382128AFB68C046DA8381 -:1014F0004A6BFB68C046DA810A6BC0468262C462EE -:10150000C31D39334A6BC0465A83042302681A4309 -:101510000260886A01F032FAF86801239B075430B0 -:1015200018430068C046F860F0BC08BC18470000CB -:101530000C2B00806C060080AC07008080B5C11DBC -:10154000F9318A6A01239B07D11D45311943096886 -:101550000B061B0E0127C11DFF314A31332B05D16C -:101560008B70011C101C00F00FF806E0322B08D124 -:101570008B70011C101C00F03CF8381C80BC08BCAF -:10158000184700208870F9E790B4CA1DF932332754 -:10159000CC1DFF344A34D36AC046A770FF314131B5 -:1015A000076CC0464F61FB18391C9F1E01239B0727 -:1015B000FC1C23431B681B061B0E9B001B041B0CFF -:1015C000C9180831016401239B07B91C1943096834 -:1015D00034300176F81D0130184300680004B91D4D -:1015E0001943D06309680904090C0843D06390BC0F -:1015F0007047B0B5CA1DF932C51D2D353220CF1D3B -:10160000FF374A37D36AC046B870CC1DFF343A342E -:10161000E868C04660611030E8606069C018871EE5 -:1016200001239B07381D184300680004B91C1943A7 -:10163000D06309680904090C0843D063F81D03301E -:10164000FFF7FCFB2062F81D0730FFF7F7FB606235 -:1016500000202876B0BC08BC1847F7B581B00198C7 -:10166000C71DF937B86A01239B07D41D05342343EE -:101670001C68FF23FE3323407F6B3F043B430B601A -:1016800034301C1C80232340019FFF374137002B3F -:101690003CD00C23009300239D00AE1836696D18D2 -:1016A0006E610133052BF7D300239D00AE18766AD7 -:1016B0006D18AE620133052BF7D3019BFF33513315 -:1016C0009B78332B0ED101239B07C51D01352B437E -:1016D0001B68C0464B8101239B07C51D0D352B435D -:1016E0001B6816E07B69C0464B8101239B07C51D23 -:1016F0000D352B431B687D695D1B01239B07C61DB0 -:10170000013633431B68EB180C3B02E000230093C7 -:101710004B81CB80630949D301239B07C41D05344A -:1017200023431B68C0460B8101239B07C41D0D3456 -:1017300023431B680C891B1B009C1C1B01239B075C -:1017400008301843006820188880386A040EFF2388 -:101750001B0403401B0A1C43FF231B0203401B0204 -:10176000234300061843C860786A070EFF231B0452 -:1017700003401B0A1F43FF231B0203401B023B4382 -:10178000000618430861D06BC046C863906BC04622 -:101790000864506CC0464864106CC0468864D06CC5 -:1017A000C046C864906CC046086502E000230B8107 -:1017B0008B8004B0F0BC08BC184700B50F4A938971 -:1017C00001339381C21DF9320423906AC046C3607D -:1017D00010238361CB0A01D318238361C183516B2A -:1017E000C046C181516BC21D393251830423016847 -:1017F0001943016001F0C2F808BC18470C2B0080A7 -:10180000B0B51B4C206A02281BD20020E71D1937F7 -:101810003871E168E01DF930002915D0426A002ACC -:1018200012D101250AE0FFF789FB002809D1206ABF -:10183000022800D33D71E068002802D038790028E2 -:10184000F1D0B0BC08BC1847406A0028F9D1002983 -:10185000F7D16069002804D00648006803F0A8FCAE -:10186000EFE760680028ECD000F05AF8E9E70000E4 -:101870006C06008034040080B0B5071C2023B868D3 -:1018800018400124002500280BD1386A002803D114 -:10189000281CB0BC08BC18471F48016E0131016606 -:1018A00003E04868C423184003D1386A00F00CFCF8 -:1018B0002FE0381C00F01CFC381C00F07BFAB868E4 -:1018C000C00802D3386A00F0D1FBB868396AC04654 -:1018D0008860386AC046C56010484168002911D147 -:1018E000C168002909D14169002906D1396AC04679 -:1018F0008160416000F014F80BE0396AC0468160F5 -:10190000416006E0396A8268C046D160396AC046E3 -:101910008160201CBDE70000A42A00806C060080C6 -:1019200090B50B4C6768002F0FD0381C00F012F8F0 -:1019300000280AD16068C068C0466060381C00F0AA -:10194000C3FB002090BC08BC18470120FAE7000048 -:101950006C060080F0B5071CFE1D4936307840004B -:10196000C019858B334C344B9D423CD0381C211C14 -:101970002A1C00F01DF93148806A5821694340183B -:1019800001239B07184300680004000C2C4D01281C -:101990001AD13078C019C11D1931087A3A688018F7 -:1019A000097BEA1D213200F0E3FC3078C0192030B9 -:1019B000007939684018C11D05310020002342001C -:1019C0008B5201300628FAD3A08841070BD1218918 -:1019D000091878680004000C814204D86189E28803 -:1019E0008918814203D90020F0BC08BC1847211C8B -:1019F000144A0020FEF75AFF01225204786802437D -:101A000001203968FEF752FF012252047868024330 -:101A100000203968FEF74AFF0B490C4A0120FEF707 -:101A200045FF0120E91D193148710221EA1DF932F3 -:101A30005162D9E728AC2040FFFF00004C2A00800B -:101A40006C0600805400030014AC20401400070012 -:101A5000F0B583B000214F48C21DF9325162012117 -:101A6000C9044D4AC0461160C11D19314979002988 -:101A700004D14A48006803F09BFB87E0454847686B -:101A8000FC1D493421784800C019808B444A926A71 -:101A900058235843151801239B07EA1D05321A43A2 -:101AA000126808352B431D68FF231B022B401B0ABD -:101AB0003C4D012B24D1C819C11D1931087A3A684F -:101AC0008018394A097B00F0C5FC2078C019203005 -:101AD0000079396841180020820053199B6E6E46C8 -:101AE000B35001300328F7D3CA1D053269460020E0 -:101AF0004300CD5AC046D55201300628F8D32DE018 -:101B0000022B2BD1110A29D300218A0053199B6E75 -:101B10006E46B35001310329F7D321784900C91922 -:101B2000098F3A688B186A4600214D00565BC04603 -:101B30005E5301310629F8D319498A6A13181A6DC0 -:101B4000009D5540194AD66875401D65896A081878 -:101B5000416D029B59409269514041652078411E78 -:101B6000217000280DD0381CFFF7F4FE00280DD19D -:101B7000084A5068C068C0465060381C00F0A4FA9B -:101B800002E0381C00F073FA01F0DEFA03B0F0BC9A -:101B900008BC18476C060080000000B038040080C4 -:101BA0004C2A0080ACAB2040940600800883204083 -:101BB000F0B582B0694B9F6A58235A43BA18C31DC7 -:101BC00049331F7801239B07D41D013423431D682B -:101BD00043681C0401239B07D61D053633431B684D -:101BE0001C4342231C430C60FF2636022E40012377 -:101BF0005B029E4274D16B0C2BD3C31920331B792B -:101C0000C0464B817B001B181B8F4C891B1BCB8054 -:101C10000024A6000196B318DE1D093601239B0798 -:101C200033431B68019E761873610134052CF0D391 -:101C30000024A6000096B318DE1D1D3601239B0765 -:101C400033431B68009E7618B3620134052CF0D331 -:101C500006E000234B81CB8040239C430C60231C77 -:101C60006B0E4AD3C31920331B7910330B817B00D1 -:101C70001B181B8F0F89DB1B8B8001239B07D41D37 -:101C8000353423431B68C046CB6301239B07D41D17 -:101C9000313423431B68C0460B64AB0E21D20123B1 -:101CA0009B07D41D3D3423431B68C0464B6401236E -:101CB0009B07D41D393423431B68C0468B64012322 -:101CC0009B07D41D453423431B68C046CB640123C6 -:101CD0009B07D41D413423431B68C0460B6500E0BD -:101CE0000FE0FB1F013B1B041B0C0768FF18036977 -:101CF000081C391C00F034F82CE000230B818B8089 -:101D000028E000238B800B81C31920331B7AC04647 -:101D10004B817B001818008EC046C88000208700C9 -:101D2000BB18DC1D093401239B0723431B687F1864 -:101D30007B6101300528F2D300208700BB18DC1D31 -:101D40001D3401239B0723431B687F18BB620130AE -:101D50000528F2D302B0F0BC08BC18474C2A00801A -:101D600080B41F1C3B0C18D2176D114BC046DF60AE -:101D7000526DC0461A61C7601A69C0460261D868D0 -:101D8000C0460880D868000C48801869C046888022 -:101D90001869000CC88080BC70474A8812040B8800 -:101DA0001A43C2608A88C988090411430161F2E7B5 -:101DB0002C070080F1B588B000220898006A089BC3 -:101DC0009968490A02D30127FF0300E00027038B2B -:101DD000002B19D0A349896A1C1C58236343C918D6 -:101DE00001239B075839194309680904090C022982 -:101DF00002D108231F4307E0418B002902D00C23A6 -:101E00001F4301E004231F43838A002B18D0954908 -:101E1000896A1C1C58236343C91801239B0758393E -:101E2000194309680904090C022901D10F4307E08D -:101E3000C18A002902D003231F4301E001231F436D -:101E4000C11D393107914B890C891C192404240CBC -:101E5000089D2D68C0460195C9887D081AD31A1CB3 -:101E6000C31D19331A72079A9289C0461A73079ACA -:101E70001289C04602860487828A013A828301223F -:101E80001971089B1B685B185B789B001B041B0C7B -:101E900008335918BB0847D3079B5B8985180695FB -:101EA00020352B72079B9B89C0462B73079B1B8990 -:101EB0002E1C55002D1805952B86002A01D0C38AAB -:101EC00000E0838A013B059DC046AB833171654BC1 -:101ED0009D6A059B9E8B58237343EB18DD1D0135CE -:101EE00001239B072B431D682B0E5B0601D1083194 -:101EF00000E0103181235B021D409D4203D1E31FAE -:101F0000053B1C04240C059BC0461C87089B1B68D2 -:101F10001B19103B9B7B069D40352B702B780233A1 -:101F2000E31A1C04240C0132BB089B076DD08318F4 -:101F3000203304931972019B5D1801239B072B43E7 -:101F40001B681B071B0F9B00049EC0463373009544 -:101F50002B781B071B0F9B00049DC0462B73009D15 -:101F6000EB78AD781B021D432B022D0A2D062D0E9A -:101F70002B4355002D182B86049BC0465972049B99 -:101F80001B7B2E1C049DC0466B73338EC04673862C -:101F9000009D2B781B071B0F9B001B041B0C591863 -:101FA00004253D400ED03487038B013BB383131CC3 -:101FB0001B1820331971019B5B185B789B00591823 -:101FC000083101323B0937D3002D01D0438B00E0AB -:101FD000038B55002D18013BAB83831803932033EB -:101FE0001971204B9D6A53001B1802939E8B582336 -:101FF0007343EB18DD1D013501239B072B431D683F -:102000002B0E5B0602D1083101E015E0103181236F -:102010005B021D409D4203D1E31F053B1C04240CC1 -:10202000029BC0461C87089B1B681B19103B9B7BAF -:10203000039C403423700132079BC046D980511E57 -:10204000C31D493319700761042A06D2064953009B -:102050001B1899830132042AF9D309B0F0BC08BCDB -:10206000184700004C2A0080FFFF0000704780B531 -:102070008CB0071C12480168013101603868C04605 -:1020800000907868C0460190B868C04602900D483C -:102090004168C968C0464160381C00F04FF8B86814 -:1020A000400906D31023029818430290684602F0B4 -:1020B000E1FF684602F09AFE0CB080BC08BC1847ED -:1020C0000C2B00806C06008000B58CB00168C04607 -:1020D00000914168054B1943019100F02FF86846C3 -:1020E00002F084FE0CB008BC18470000000000A0FD -:1020F000026A0368C04613604068C04650604032C0 -:102100004868C0469080C868C046D0804869C046CC -:1021100010818868C0465081087EC0469073086967 -:10212000C0469081704704490868002800D1704774 -:10213000C268C0460A60FAE76C06008002490A6875 -:10214000C046C260086070476C060080B0B40022D0 -:10215000124F7C7F01347C770323FC1D19343862D5 -:10216000796223720E4C25686B0C05D223681B0C18 -:1021700010D12468A30A0DD301230A4FC046FB6285 -:10218000094F0A4BC046DF6099605860101C186008 -:102190000132FBE7101C38640132FBE700000080CD -:1021A00000001040C000180002810000400118002B -:1021B000F0B5474F3868474E474D07235B02EC1890 -:1021C00000281DD1206B013020634449C0460860BF -:1021D00043484169002913D0C11D6931097B002999 -:1021E0000ED001239B07016D19430968C046816128 -:1021F000C269914204D0F16C0131F16401F050FEEA -:102200003868012817D137484169002913D0C11D0A -:102210006931097B00290ED001239B07016D194309 -:102220000968C0468161C269914204D0F16C0131F4 -:10223000F16401F035FE386802282FD1BB231B0161 -:10224000EE18707B002803D00020707300F04AFD68 -:10225000307B002802D0786802F0AAFF1B23DB0144 -:10226000E818C08B04260640E06AB04214D0F86833 -:102270000130F860192811D31B48017B00290DD1CA -:10228000FF3041304078002808D1B86802F090FF54 -:102290000020F860E66201E00020F860386803285A -:1022A0000BD1EC1D7934E06B800802D3022002F0E0 -:1022B00007FC0223E06B9843E06338680130386024 -:1022C000032801D900203860F0BC08BC1847000082 -:1022D0003C040080A0822040680E0080400118006D -:1022E000642D0080E42C008028050080B0B41D48D7 -:1022F000848A1D4A138AC11D093101279C4203D1DA -:10230000438A548AA34210D00B78002B0DD04B780F -:10231000002B0AD0448B938A9C4204DC134BC046AA -:102320005F60978201E001339382C38B5C1CC4839E -:10233000848BA3420EDB848A058B0023AC4205DA32 -:10234000448AC58AAC4201DA4B7000E04F70438288 -:102350008382C383418AC0465182808AC0461082EC -:10236000B0BC7047E80E00803C04008040011800BB -:10237000F7B591B06B46841E129914291AD9002022 -:1023800081006758C046575001300006000E1028E3 -:10239000F6D3002105208700D6594F1C3D062D0E8F -:1023A0000F1CBF00DE51291C01300006000E102852 -:1023B000F1D309E0002081006358C046535001303A -:1023C0000006000E0628F6D30020E070207260722E -:1023D000A072207360731299142937D969468E1C34 -:1023E00091780907090F890014390D062D16002769 -:1023F000002D1BDDF01910A900F03DF800280ED0CB -:10240000002010A90978002909DD0022391872542A -:1024100001300006000E10A909788842F6DB10A8EA -:102420000078381807063F0EAF42E3DB6846E21D2E -:102430000D320021AB085F1C08D08B00C458C04689 -:10244000D45001310906090E8F42F6D814B0F0BC01 -:1024500008BC184790B4871E002089084B1C08D080 -:1024600081005458C0467C5001300006000E834263 -:10247000F6D890BC704780B40278D206D20E002302 -:102480000127012A01DC0F7011E04078C046087076 -:10249000142A04D10848017A0131017207E0022AA6 -:1024A00005D0052A03D0062A01D0152A02D1181C0E -:1024B00080BC7047381CFBE7E082204000B50F4825 -:1024C00001231B06416999431A094161D16000212A -:1024D000A12252039161191C094AC04611601B23B5 -:1024E000DB01C0188069002803D002F061FE08BC3F -:1024F00018470448418801314180F8E7680E0080A0 -:10250000000000B0E082204070470000F0B586B0C7 -:10251000954AD068D71D7937012809D13889002814 -:1025200006D1D06F022301689943016014203881DD -:102530008E4C616A8E48C36B5918C163A06A192317 -:10254000DB01D418A062216A0903090B814205D17D -:10255000012040048749C0460860F3E0BB8A581C4C -:10256000B8823D8B01200021AB4204DBD31D8933AF -:102570005870B982F98333239B01D31805935B69A3 -:102580000F2B73D200217C4FC0463961216A8A68C3 -:102590001204120C4B681E0C3604FD1F093D002E60 -:1025A00005D13B2A03D30123DB029A4201D9A87348 -:1025B000C8E001239B07083119430968C04603910D -:1025C00003A9098801310904090C798249090531F7 -:1025D0000906090E694EC04602966948436AC0461C -:1025E0000193836AC0460093C21D113280690003C3 -:1025F000000B9268B3071A431268904201D1012080 -:102600000DE0904205D9009B181A019BD21A82183E -:1026100000E0121A01200901914200D30020012894 -:1026200065D151492069002862D005994869013077 -:1026300048610220216AC046086000F0A7FC786368 -:10264000BE604949226AA36BD318666BB34200D9B6 -:10265000226BC046BA62BA6A0C32FA620022FA6190 -:1026600003AA5288D20903D3012200E07BE000E0F4 -:1026700000227A607A68C0460260788A414E6028FB -:1026800004DCB083788AC046F08308E06020B08321 -:10269000798AF86A4218636B9A4203D8F183002260 -:1026A0003A6305E0216BC0463963616B081AF08319 -:1026B0002D49786B4268C046BA608268C046FA60AD -:1026C0000269C0467A614069C046B8612E4BC8189D -:1026D000049000F037F9049800F088F800F0F6FA5A -:1026E000788AF18B884204D1F96A081804E038E04E -:1026F00032E03A6B1018401A810702D0800880003F -:102700000430616B091AA26B914200D2206BC04663 -:102710002062E87B002808D00022EA730599486906 -:1027200001384861786B00F073FA1848806A8006B7 -:10273000800E01280AD1206A0003000B0B4CA16A0D -:10274000884203D006B0F0BC08BC18470120400402 -:102750000849C046086006E0E068002801D000F0A3 -:10276000B5FA0120A873EDE7680E00800040144020 -:10277000A42A0080000000B0281A00805555555545 -:10278000A8030080681A0080C40B000000001040FD -:1027900080B5071C786A4089FF210131014010484B -:1027A00002D1816C01318164796A4989490B02D275 -:1027B000416C013141640B48416A01314162786AE0 -:1027C000396BC0464862386B00F0F8FB381C00F0EB -:1027D000B3F801200449C046C87380BC08BC184740 -:1027E000A42A0080A0822040181A0080F8B5071C97 -:1027F0000022F91D61310D1C786AC04600904089A5 -:10280000030C01D2400A03D2381CFFF7C1FF67E076 -:102810003548C06B00091FD3087840081CD200203F -:102820004300CC5A314E9E1933239B01F3181B8869 -:102830009C420ED0B869396BC0468861F868396B24 -:10284000C046C860381C00F027F9381C00F074F846 -:1028500046E001300328E3DB022043005C18E488F3 -:10286000224E9E1933239B01F3181B889C4203D1EF -:1028700001230138D842F0DC0123D842C4D01B4EDA -:102880000B231B02F0184069002824D07D630098B8 -:102890004089000C1FD200242D239B01F018C06B2F -:1028A000351C002817D0FE1D2D36A20052192D23ED -:1028B0009B01D218D26B381C311C02F07BFC012822 -:1028C0000ED00134A00040192D239B01C018C06B0D -:1028D0000028EAD101E0012A02D0381C00F008F8F3 -:1028E000F8BC08BC18470000E81A0080680E008099 -:1028F00080B5071CB869396BC0468861F868396BC8 -:10290000C046C860786A4089010C0ED2400A0CD3D8 -:102910003868400802D3381C02F00CFC381C00F068 -:10292000BBF8381C00F008F802E0381CFFF730FF55 -:10293000012080BC08BC18470121006B406AC046DA -:1029400001607047B0B4C11D3931098B8908090491 -:10295000090C846AC21D6132002000290CDD870049 -:102960003D1901239B072B431B68C046D3510130FF -:102970000004000C8842F2DBB0BC7047F0B5A0B098 -:1029800001239B07C11D213119430968C0460B91E2 -:10299000C11D533119431F91096801AFFA1D393226 -:1029A0001E9217AB59803A4901239B070A6A1343C9 -:1029B000CC1D113489690903090B2269E568C046F9 -:1029C0001D95FC1D3934648B640905342406240EDE -:1029D0001C94561A1B961C9C2E4AC0460092012637 -:1029E0001D9D1A68914201D1321C0BE0914203D91E -:1029F000521B1B9EB51800E0551A01222401AC425F -:102A000000D30022012AE6D1910701430968C0469C -:102A100039609307011D19430968C0467960C11DDB -:102A2000013119430968C046B9601F9909681E9AA7 -:102A3000C0465183C11D1D3119430968C046386322 -:102A40007962C11D113119430968C046B961C11DC0 -:102A5000053119430968C046F960C11D1731194392 -:102A60000968C046F9830E3018430068C046F881F3 -:102A70003868400802D3381C02F05CFB381C00F0B8 -:102A80000BF8381CFFF758FF20B0F0BC08BC184703 -:102A9000A803008055555555F8B5071CF81D393069 -:102AA000418B394A914200DD4283428BC0460092FD -:102AB00001203A1D06CABB6A02F00EFF334AC04627 -:102AC0000092334E306A334CE16D4118386BC31DB0 -:102AD00005330120726A02F0FBFEE06D183000251C -:102AE000B16A814201D8E56500E0E0652F239B01D2 -:102AF000201CE16DE41822689200274BC0469950D3 -:102B00002648C16B4A0805D349084900C163012022 -:102B100001F0D6FF224A1F48C11D89310B78002BD6 -:102B200002D04978002900D11E4AC0460092206890 -:102B30008000194BC31805CEC11D1131012002F0D0 -:102B4000C7FE1448216801312160172900D3256090 -:102B5000396BC0460D65796A3A6BC04651623323C2 -:102B60009B01C0188168002903D1396BC046816080 -:102B700004E0396BC268C0461165396BC046C1605C -:102B8000F8BC08BC18470000EA0500001800140251 -:102B90007C290080680E008044822040E80E00807E -:102BA0000400000204000003F0B5114EFF250135BA -:102BB000104FC0463560786901387861BC68002CD8 -:102BC00010D0206DC046B860201C00F021F8201CF9 -:102BD00000F004FA0848806A000C0007E9D1F0BC54 -:102BE00008BC18470548C1790131C171F7E70000F9 -:102BF000000000B0281B008000001040A082204090 -:102C0000012080030149C04608607047000000B001 -:102C100090B5071C3868C00809D31D48016A0139FE -:102C2000016220300079002801D0FEF7E9FD012380 -:102C30009B07F81D1D3018430068164C616A8142DD -:102C400021D1011C194309680904090C01291AD171 -:102C500000F022F86062606A216A884205D0012192 -:102C60008907014309680904F2D051218903626A86 -:102C7000236B9A4202D1606BA26B801A0438C86041 -:102C800090BC08BC18470020796AC0460860F7E786 -:102C90006C060080E81A008001239B07C11D0131EA -:102CA000194309680904090C08180D30810702D07E -:102CB00080088000043004498A6B12184B6B9A42DA -:102CC00000D9086B70470000E81A008000B504487E -:102CD000C068102801D300F005F808BC18470000B0 -:102CE000E81A008088B50C4F3879002811D10B49BB -:102CF000102002F0F5FD00280BD001203871084AA1 -:102D0000C046009207484268074B0168002002F065 -:102D1000DFFD88BC08BC1847F81A0080F52CFFFFBF -:102D2000100035027C2900804480204090B50120AD -:102D300040021049C04608600F4F1021F81D3D3079 -:102D400002F04CFC1923DB01FC18E068002801D0DC -:102D500000F014F80020C9231B01F9180871E0687D -:102D6000102804D30120BB231B01F918487390BC21 -:102D700008BC1847000000B0680E0080F8B537485E -:102D80001923DB01C118C968354D102900D910215C -:102D900069623248C16C006E814207D9081A07097E -:102DA0000024686AB84212D2071C10E081422AD27D -:102DB0002C4A526B101A0709686AB84205D90C09E7 -:102DC0003919884203D2C41B01E00024071C3E19B4 -:102DD0003001254902F084FD00283DD02348002C15 -:102DE0001AD11E493A016F62096E8C181D4D6B6B2A -:102DF000A34200D8E41A1E4B1A430092EA6A511803 -:102E00002A6B031C20E01B48016B01310163002089 -:102E10006862F8BC08BC1847104924013F01112220 -:102E200052053A436E6200920E4DEA6A096E5118DD -:102E3000031C061C00202A6B02F04AFD0C4A2243A8 -:102E40000092BB19E96A2A6B002002F041FD034899 -:102E5000C046046600F010F80120DAE7680E008032 -:102E6000281B00807C2900805D2EFFFF44802040CD -:102E700000003602A08220400448016E044A8030DF -:102E8000D1600223C16B1943C1637047680E008093 -:102E900090EE2040F0B584B0012080021C49C0466D -:102EA000086000271B4E33239B01F518686A002831 -:102EB0001DD9194C6846102102F090FB684600F0BD -:102EC00033F8002804D015494869013048610AE008 -:102ED0001349607B01306073887901308871114833 -:102EE000006802F065F9686A0137B842E2D8BB238E -:102EF0001B01F018817B002903D000218173FFF7AB -:102F000005FBFFF7E3FE04B0F0BC08BC1847000067 -:102F1000000000B0680E0080B0822040088320408E -:102F2000A08220405804008090B4174F1923DB0181 -:102F3000F9180022CB68002B23D0013BCB60332350 -:102F40009B01FF18BB691C6DC046BC610468C0468C -:102F50005C604468C0469C608468C0461C61C06870 -:102F6000C04658611A650869421C0A61002803D0EE -:102F7000386AC046036500E0FB613B62181C90BCE8 -:102F80007047101CFBE70000680E00800A4A3323DC -:102F90009B01D118C8691923DB01D2181369002BD2 -:102FA00006D0013B1361CA69126DC046CA61704701 -:102FB00000211161FBE70000680E0080064A1169DC -:102FC0004B1C13614032002901D0D16900E000217F -:102FD0000165D06170470000E81A0080064AD16898 -:102FE0004B1CD3604032002901D0916900E00021E0 -:102FF0000165906170470000E81A008090B40021DC -:103000000F4A9789926A4B001B189B8A002B12D09B -:10301000BB4210DC1C1C58236343D318DC1F493C03 -:1030200001239B0723431B681B061B0E032B02D0A7 -:10303000002090BC704701310429E4D30120F8E757 -:103040004C2A0080F7B586B03D4A071CD1698F40F5 -:10305000031C146AE3405F40079E8E407740CF40D8 -:103060009469C0460594031CA34000251469C0461A -:103070000494002C5DD91C1C324E26439469E64012 -:10308000331C0396536AC0460293D26AC04601922B -:10309000BB00029AD258131C059CE340039CA34238 -:1030A0003ED18A40CA40141C63001B195B01019A7F -:1030B000D21801239B07D61D013633431B681B061C -:1030C0001B0E032B2CD101239B07D61D51363343F6 -:1030D0001B68079E1E40009601239B07D61D49369C -:1030E00033431B6883421BD101239B07D61D4D36FA -:1030F00033431B68009EB34212D101239B071A433E -:1031000012681204120C089B322B04D1022A07D138 -:10311000200400140FE0089B332B01D1012AF7D0C3 -:10312000049A0137974200D30027049A0135AA4236 -:10313000AED80020C04309B0F0BC08BC184700005E -:103140004C2A008000000080F0B5274D68690028F7 -:1031500006D02648006802F02BF8F0BC08BC1847DF -:10316000234C0026A068234F002816D00FE0286AC1 -:10317000022802D3012038710FE0A660FDF7DEFEC1 -:103180000028EAD1286A022801D301203871E868B2 -:10319000002802D038790028E9D0686800281BD0C0 -:1031A0000120A060FEF7BCFB0028D6D1686800288B -:1031B000F6D111E00028D0D1286A022802D30120DC -:1031C0003871CAE7A660FDF7B9FE0028C5D1286AA4 -:1031D000022801D301203871E8680028BDD0387971 -:1031E0000028E7D0B9E700006C0600805C0400808E -:1031F0004C2A00808C060080704700007047000059 -:103200007047000090B540201D49C046086001F09D -:103210009DFC03231B07416819400C0F6101091B2A -:103220008900184A8F1801213980816AC046796562 -:10323000416AC0467967B96CFA6C8918B964002193 -:10324000F964BA6B3B6DD218BA633965426A2032B1 -:103250005171796D7A6FD26DC0461160FCF7CAFF6B -:103260002001094940181923DB01C018416B0139BD -:103270004163786F01F0C6FB90BC08BC18470000A2 -:10328000000000B05C2B0080A01C0080F0B5402046 -:103290001249C046086001F059FC071C406803232E -:1032A0001B071840060F7001801B80000C49441852 -:1032B000B86AC0466065786AC0466067806F051D61 -:1032C000E563B969281C02F089F9381C211C321CFD -:1032D0002B1C00F020F8F0BC08BC1847000000B020 -:1032E0005C2B0080F0B54B6F9B6F1F1DCF63056893 -:1032F00000238469A40808D09C002E59C0463E5182 -:103300008469A40801339C42F6D83B1C00F003F802 -:10331000F0BC08BC1847FFB581B0041C1D1C0F1C75 -:103320004648016901310161F91D5131BD650091C6 -:10333000201CFDF75DFCF86D400936D2B86D067BA8 -:10334000437B1B021E431721490201730B0A43737F -:103350000099201CFDF74CFCB86DC0460673330A7B -:103360004373F86D400920D260680104090C03988A -:1033700001F0CCFC6068324B18436060201C01F007 -:1033800035FD00257D60BD603D647D64201CFCF73B -:1033900031FF38884023184338807D622948C04671 -:1033A000B862381C00F0A0FB44E0206801239B07B2 -:1033B000083818430068C046786460680204120C3C -:1033C000786E0126C11D0D318A4202D23A64081C72 -:1033D0000EE041198989F023194009098900401834 -:1033E000F860F96161680904090C814216D23964F8 -:1033F00063681904090C401A033080088200A06138 -:10340000206809189B186360C31F053B381C00F037 -:10341000B6FA7E80201C00F0BFFB0BE0B968081AEA -:1034200000257862BD62381C00F03CFC201C391C71 -:1034300000F064F805B0F0BC08BC18470C2B008005 -:1034400000000080010000C0F0B5041C0F1C386CA7 -:10345000F96B0D18216841180020A269002A0BD9C8 -:103460008200561801239B0733431B68C046AB50AC -:10347000A26901308242F3D8786EF96B0918898904 -:10348000F0231940090989004018F860F9612068A3 -:1034900001239B07083818430168786CFCF795FFF7 -:1034A000786460680104090CF868814219D23964B3 -:1034B00063681904090C401A033080088200A06177 -:1034C000206809189B186360C31F053B381C00F077 -:1034D00056FA01207880201C00F05EFBF0BC08BC8E -:1034E0001847B968081A78620020B862381C00F0E2 -:1034F000D9FB201C391C00F001F8EFE7F0B584B0CF -:10350000041C0F1C8E4841690131416103200007F2 -:1035100061680840060F0A04120C20681118FB6845 -:10352000D21A7B689D1AC31F053B381C2A1C00F069 -:1035300026FA00207880201C00F02EFB60684019DD -:103540000104090C6060301C01F0E0FB7D4E0B2390 -:103550001B02F0180069002819D000252D239B01BB -:10356000F018C068002812D0AA0092192D239B01E0 -:10357000D218D268201C391C01F01CFE0135A800AD -:1035800080192D239B01C018C0680028ECD1F86B6E -:10359000011F8A1CFA63FA687D6C00F0BBF9C04316 -:1035A0000104090C281CFCF710FF0390F96B3A6E1C -:1035B0008E182068121801927A6E8D1811180291D7 -:1035C000C81D0930E060B1880802090A0906090E21 -:1035D00008430004000C78616868010EFF221204A1 -:1035E0000240120A1143FF2212020240120211434A -:1035F000000608433861A88909231B021840B861F6 -:10360000A8899843A881A8890299C046888100208A -:103610007080B080708168602882B96E301CFCF7C1 -:10362000E8FE3886FA69301C291CFCF703FF78860F -:103630003D8E788E0399FCF7C8FE00906068000408 -:10364000000C396E411A0904090C7A6E821A1304AF -:103650001B0C1A021B0A1A431604360CBA68824263 -:1036600001D2002000E0101AB86008020912090611 -:10367000090E08430104090C0198C0464180281C2A -:10368000FCF7A3FE051C0098311CFCF79EFE061CEF -:1036900078690004000C0102000A08430104090CC7 -:1036A0000198C0468180281CFCF78FFE79690131A2 -:1036B000C0437961019AC04650813869010EFF22EA -:1036C00012040240120A1143FF22120202401202A7 -:1036D000114300060143301CFCF777FE39697A6814 -:1036E00089183961B968002909D102998989BA69AB -:1036F0001143029AC0469181B969FCF766FE2082A7 -:1037000000206082F86D410816D3800A0AD36068F1 -:1037100010380104090C0802090A08432168C04650 -:10372000088209E060680C380104090C0802090AE3 -:1037300008432168C046888104B0F0BC08BC184723 -:103740000C2B0080680E0080F1B584B06E4D2869A6 -:10375000012204998A409043286104984301181A71 -:103760008000161C69494418E06BC0460090A068B0 -:10377000002801D1002626E06548416901314161F8 -:103780000498FCF709FD071C03D128693043286120 -:10379000B5E0A0686568A84200D2051CA16CA942EA -:1037A00016D2401A626A101A00266062A660A662EB -:1037B00020884823184320800D1C09D1381CFCF7B1 -:1037C00019FD032060806660201C00F08DF996E0F2 -:1037D000E16838680918C31F053B201C02392A1C00 -:1037E00000F0CDF8381C00F0D7F9E0684619786889 -:1037F000304378600498311C01F088FA216E0098FB -:1038000008180190701A0004000C616E711A0A0405 -:10381000120C1102120A11430904090C029101024F -:10382000000A08430104090C0198C0464180208E1B -:10383000FCF7CBFD061C608E0299FCF7C6FD0390D9 -:1038400060690104090C0802090A08430104090C13 -:103850000198C0468180301CFCF7B7FD61690131D9 -:10386000C04361610199C0464881606E0099461865 -:103870002069010EFF2212040240120A1143FF22A6 -:1038800012020240120211430006014371600398C4 -:10389000FCF79BFD216949192161A168491BA160C1 -:1038A00006D1B189A2691143B181A169FCF78DFDEF -:1038B0003882616E386809180E31F960E268009943 -:1038C000043800F04CF802207882E06D410816D3ED -:1038D000800A0AD3786810380104090C0802090A22 -:1038E00008433968C046C88109E078680C3801048B -:1038F000090C0802090A08433968C046488105B026 -:10390000F0BC08BC18470000D02C00805C2B008065 -:103910000C2B0080F7B5031C0F1C00201C6826042C -:10392000311C1D1DFCF751FD40C7029AD11C8908AE -:1039300001394A1E029200290DD0210C10CD22041B -:103940000A43111C161CFCF740FD40C702994A1E91 -:1039500002920029F1D103B0F0BC08BC18478008DE -:10396000800089088900033293085A1E002B05D075 -:1039700008C908C0131C013A002BF9D17047FFB5E4 -:1039800086B0171C00260698806CC01B0699C0469E -:1039900088640120C0050699896BC046019106998B -:1039A0004C6B67E02168C04602916168C046039194 -:1039B000A168C046049102A94988B94208D202AD63 -:1039C0006D8802A949887F1A002102AB598019E04D -:1039D00002A94988C91B02AB59803D1C002701215F -:1039E0004906079B9A07920F0DD0EB06DB0E08D015 -:1039F0001E2B08D31E2B02D1032A04D101E0022A78 -:103A000001D301260021294301430A1C0091002013 -:103A10000399049A079B01F05BFF079949190791E5 -:103A2000002E0AD01D4AC04600921D48016D426D0D -:103A30000020079B01F04CFF002602A840880028C8 -:103A40000CD00398401903900298C0462060039858 -:103A5000C04660600498C046A06003E00198013849 -:103A6000019010340698C046446301980699C046F8 -:103A700088630020002F02D00199002992D1094AC1 -:103A8000C04600920648016D426D0020099B01F07E -:103A90001FFF0AB0F0BC08BC18470000010000027C -:103AA0007C2900800400530290B50C1C071C386868 -:103AB00001239B07083818430168388AFCF785FC06 -:103AC000C043F968C0460880788A3968081A3860A7 -:103AD000381C01F08BF9381CFCF78CFB201CFFF71D -:103AE00033FE90BC08BC184780B501888A0921D3F1 -:103AF000CA091FD28A081DD3002101804180476F67 -:103B0000406DFA1D19325171FA6DC04610603A6E5F -:103B1000C04610600C48C0468163C16B490849002B -:103B2000C163012000F0CCFF381C00F06BFF80BCAB -:103B300008BC184780231943018001884909F6D23F -:103B400000F0B0F8F3E70000E80E0080F0B5071CC5 -:103B5000101C0D1C00245E1E002B19D00168C046ED -:103B6000396041880C194168C04679608168C04657 -:103B7000B960C168C046F96010301037E96A814207 -:103B800002D8281C00F0ECFF311C013E0029E5D1D1 -:103B9000201CF0BC08BC18470021C16105490A6817 -:103BA000002A01D1086002E04A68C046D06148603E -:103BB00070470000D02C008003490868002802D01C -:103BC000C269C0460A607047D02C0080002181671E -:103BD00005498A68002A01D1886002E0CA68C046A7 -:103BE0009067C86070470000D02C00800349886847 -:103BF000002802D0826FC0468A607047D02C0080B7 -:103C000000B580201349C0460860FFF7D5FF0028A3 -:103C10001BD003231B07416819400A0F5101891A61 -:103C200089000D4BC9184B88002B04D1111CFFF7DC -:103C30003BFF08BC1847012B02D1FFF705FCF8E752 -:103C4000022BF6D1FFF74EFBF3E70448016D01317B -:103C50000165EEE7000000B05C2B0080A0822040F0 -:103C600000B520200D49C0460860FFF7BFFF0028BF -:103C70000ED0018820231943018001881023994325 -:103C800001800188090A01D3FFF72EFF08BC1847FD -:103C90000348016D01310165F8E70000000000B044 -:103CA000A082204098B5071C2248C04600902248B8 -:103CB000C31D4133416D826D806C0003000B9C6815 -:103CC00001239B0723431B68984200D10CE09842D4 -:103CD00003D9101A591A411800E0191A01201029A5 -:103CE00000D8002000281FD0786AF96AC046086012 -:103CF000B86AF96AC0464860104AC0460092FB6A3A -:103D00000F48426D0320396A01F0E2FD3888102324 -:103D1000184338803888402398433880381CFFF790 -:103D200055FF98BC08BC1847388840231843388092 -:103D3000F7E7000055555555A8030080080011020B -:103D40007C290080B0B540202C49C046086000F0B6 -:103D5000FDFE071C406803231B071840050F680180 -:103D6000401B8000264944182088022318432080E5 -:103D70002088410834D3400840002080A06CE16CCA -:103D80004018A0640020E064A16B226D8918A16333 -:103D90002065B86AC046606503231B077868184031 -:103DA000786061683631942904D8382318437860E4 -:103DB000382003E09423184378609420B861396870 -:103DC00078680204120C201CCB1F053BFFF7D7FDBF -:103DD00002206080381CFFF7DFFEB0BC08BC18472B -:103DE000381CFCF707FA2801064940181923DB01A3 -:103DF000C018416B01394163EFE70000000000B0DB -:103E00005C2B0080A01C008090B500270F4C0DE0BB -:103E1000426B013A4263002A05DC026BC0464263F2 -:103E2000C06A01F0C6F901370B2F07D2380100191B -:103E300033239B01C018816A0029E9D10120400683 -:103E40000349C046086090BC08BC1847680E008053 -:103E5000000000B01048C1680131C1600F49C86856 -:103E6000012817D1C81D79300289002A12D0013AE1 -:103E700002810289002A0DD14289002A08D1C96F26 -:103E800002230A681A430A6004210181012100E02B -:103E9000002141817047000008832040680E0080A7 -:103EA000B0B5071C0123F81D693003731E48C21DFD -:103EB0007932548A611C5182D58A0021AC4204DBDC -:103EC000C41D893463705182D18301239B073A6DED -:103ED0001A431268C046BA61FB699A4206D1F86C6F -:103EE0001249C0460860B0BC08BC184779614169F6 -:103EF000FA6C9143416101200005C16038690228D4 -:103F0000F1D0B869F969411A01D5786D4118381CAA -:103F100000F00EF8F9690918F961786D8142E2D371 -:103F2000081AF861DFE70000680E0080000000B0AA -:103F3000F8B5041C0F1CFF2321339F4201D9FF2732 -:103F40002137E16E381C01F0CBFC2D4D002813D138 -:103F5000E01D4930017A012319430172294AC04604 -:103F600000922948016D426D00202B1C01F0B0FC2D -:103F70000020F8BC08BC18472069013020612349A3 -:103F8000C81DB930026B92005118C0310F61016B2E -:103F900001318907890F0163206BC219616D8A4263 -:103FA00003D8232212053A4305E0091A7E1A07D1E5 -:103FB000232212050A430092616E0918A26E10E0D6 -:103FC000112252050A430092616E09180020A26E68 -:103FD0002B1C01F07DFC2322120532430092616EFE -:103FE000A26E00202B1C01F073FC206BC01900098D -:103FF0000001616D814200D8401A2063381CB8E787 -:104000004480204004001B027C290080680E008050 -:1040100080B50120C0030D49C04608600C49C81D89 -:104020004930027A0027002A03D00772081CFFF7E4 -:1040300037FF0849C81D4930027A002A03D00772A9 -:10404000081CFFF72DFF80BC08BC1847000000B01B -:10405000642D0080E42C008090B5071C10201849C6 -:10406000C0460860F8680130F8601648C41DB934CD -:10407000616B89000918C03109697A689200D21908 -:104080005164616B89000818C0300169786880004C -:10409000C019C06B01F0A2FA01237868584078601B -:1040A000606B01308007800F6063F81D1930407924 -:1040B000002802D1381C00F007F890BC08BC184753 -:1040C000000000B0680E008090B5071C3948C06839 -:1040D000002805D0B86AC068800901D3022000E03A -:1040E000786FFCF759F8041C06D10120F91D19312D -:1040F000087190BC08BC1847F86C2F49C04608608E -:10410000BA6A381C211C00F059F86762002803D1F4 -:10411000201C00F00BFDECE7F96D0968091809098E -:1041200009017A6D8A4200D8891AA162B9688900AA -:10413000C9194A6C002A07D04A6C121A4A648008CE -:104140008000B96A0818B8623868B96A8000C01976 -:10415000426B91420ED300214164B86A39688900EC -:10416000C919496B401AB862B9688900C919C96B85 -:104170004018B862B8688100C919496C0029B8D1E3 -:10418000B96AFA6B9142B4D03A6C9142B1D0012332 -:104190005840B8608000C019C06BC046B862F8686B -:1041A000002801D00138F86038690028A1D0013812 -:1041B00038619EE768190080000000B0F7B590B044 -:1041C000041C0D1C00200590029000220192F94869 -:1041D000C06AC046A861A06881000919496BC04641 -:1041E0002060E162129AD068C046A860129A5178A5 -:1041F000C0460C91F048C0460390D71D0937E06ACD -:10420000C11B0909E31D19330C9AC0460F93EB4BF0 -:10421000C0460E93914201D3B84221D8E1680229E9 -:104220001ED201200F99C04648710020039901F069 -:1042300057FB002803D10E9BD86B0130D8630120B7 -:10424000800600276860AF61DD4AC0460092DD4805 -:10425000016D426DDC4B002001F03AFB381C5CE341 -:10426000B84203D8201C00F07BFC071CD748C0686C -:10427000002864D038784007400F032860D10598A3 -:1042800001300006000E05903878F023184058D110 -:10429000E06AC01B00090C99884202D2E06802283B -:1042A00005D3CB49886800F083FF061C06D1039B29 -:1042B000281C391C221C00F08BFC16E12E62F868C9 -:1042C00000280DD0B889002803D0C149C96800F082 -:1042D00070FFF889002803D0BD49C96800F069FF64 -:1042E0007A68C0467261B968C046B161301CB8498D -:1042F000096800F05EFF002817D1301CB4494968F6 -:1043000000F057FF1037E06AB84203D8201C00F0D5 -:1043100027FC071C6868AF4B184368600020A86141 -:10432000AC23A8689843A860B0E0A869A82801D287 -:10433000A820A8611037E06AB8426CD89CE0A5E0DC -:10434000A4E0102868D103231B0768681840010FF8 -:104350004801401A8000A04A821801927888420BD6 -:1043600031D3820B2FD39D48C04603900220019A7F -:10437000C046108078880005000D019AC046506044 -:10438000B868019AC04690607868019AC046106289 -:104390000020019AC0469064019AC046906388024A -:1043A0008F494018019AC0465063019A50683630D0 -:1043B000942801D8382000E09420A8611037E06AE2 -:1043C000B84228D858E07A88920B03D38548C04673 -:1043D000039023E0012212030240834B1DD003937C -:1043E0000005000D019AC0465060B868019AC046A9 -:1043F00090607868019AC04610620020019AC04619 -:104400009064019AC0469063880275494018019AE9 -:10441000C046506302E033E02AE0039301200F9985 -:10442000C0464871129A50780599431A0B93103779 -:10443000E06AB84203D8201C00F092FB071C019AE6 -:10444000506B916B090140180B9B211C3A1CFFF724 -:104450007DFB019AC046D064019A0B9BC046136550 -:1044600001235B066868184368600020A8610DE0BE -:104470001037E06AB84203D8201C00F071FB071C1B -:1044800038784007400F032800D1F8E6A86903995F -:1044900001F026FA00282AD1381C211C00F079FBF3 -:1044A000A868800904D3301C4949496800F081FE9E -:1044B0004149002001F014FA002804D10E9BD86B6A -:1044C0000130D86311E001200F99C0464871800681 -:1044D00000276860AF613A4AC04600923948016DD2 -:1044E000426D394B002001F0F3F9002015E20598E8 -:1044F0000C99081A0004000C0C900B900C980028E2 -:1045000003D001200F99C04648712868C046049026 -:1045100000260020089000220A920C9801380D9085 -:10452000A3E078888A1B1204120C904205DD0792E2 -:10453000801A0004000C089000E0079008980028FA -:1045400007D10D980A9A904207DD079830188842E3 -:1045500003D80120400506901CE01120400506907C -:10456000A8688C23184002D12048C0460690B107A5 -:10457000890F0FD00798C006C00E08D01E2809DB8F -:104580001E2802D1032905D101E0022902D301200E -:104590000290DEE70A9A002A04D10123DB0506987F -:1045A00018430690079806990843021C0090049847 -:1045B00083191DE0E80E00800149FFFF280F0080ED -:1045C000040012027C290080448020406819008089 -:1045D00060040080000000805C2B00805532FFFFEB -:1045E000AC5E21400D3DFFFFCD31FFFF00003202E8 -:1045F00000203A1D06CA01F06BF907983618029898 -:10460000002816D0A8688C23184004D109235B0425 -:104610000698184306900698C24A024300920498EE -:104620008319C148016D426D002001F051F900204D -:104630000290089800280BD10B9B013B0B9310377D -:10464000E06AB8420CD8201C00F08AFA071C07E088 -:104650007868079A801878607888079A801A788036 -:104660000A9A501C0204120C0A920C980A9A82426E -:1046700003DAA969B14200D953E7A869B0426BD106 -:10468000A868010969D2089A002A56D00C990A9A9A -:104690008A423EDBB107890F0CD0089AD206D20EAF -:1046A0000BD01E2A06DB1E2A02D1032905D001E009 -:1046B000022902D20299002921D0089AC04600920C -:1046C0000498831900203A1D06CA01F001F90898E0 -:1046D0003618A8688C23184002D00120400600E05C -:1046E0009248012202430092049883198E48016D7A -:1046F000426D002001F0ECF80020029015E08C23C0 -:10470000184002D00120400600E08848089A024381 -:1047100000E0089AC04600920498831900203A1DD0 -:1047200006CA01F0D5F8089836181037E06AB84282 -:1047300003D8201C00F014FA071C6868800E6BD2A6 -:104740000A98C04609900C9988425CDA0D9809993C -:10475000884203D07A881EE05FE05EE0788801221C -:1047600052060243A9688C23194002D109235B0435 -:104770001A43B107890F0ED0C306DB0E08D01E2BDB -:1047800009DB1E2B02D1032905D101E0022902D346 -:1047900001210291021C0998002802D10123DB05A6 -:1047A0001A4300920498831900203A1D06CA01F0AA -:1047B0008FF87888861910370298002814D0A868D6 -:1047C0008C23184002D00120400600E05748012207 -:1047D00002430092049883195348016D426D0020F2 -:1047E00001F076F800200290E06AB84203D8201C5D -:1047F00000F0B6F9071C099801300004000C09907C -:104800000C998842A2DB686830430104090C686097 -:10481000E86A00F07BFA28E027E0A868000914D3D2 -:104820006868800E15D2019A002A12D0019A506B46 -:104830000B9B211C3A1CFFF789F9019AC046906432 -:10484000019A0B9BC046936303E0E86A311C00F0B9 -:104850005DFA686830436860A869B04205D9000411 -:10486000000C801B00F0EEF9AE61A8688C231840A4 -:104870000BD02F4AC04600920498C31F053B2A481C -:10488000016D426D002001F023F801239B07206D8C -:1048900018430068C046A061E169814212D02269D4 -:1048A000022A0FD2411A01D5606D4118201CFFF772 -:1048B0003FFBE1694018E061616D884224D3401AF2 -:1048C000E06121E081421FD1206902281CD2012031 -:1048D000606118484169E26C0A4342618169E36C96 -:1048E0009943816101210905CA608069C046086158 -:1048F0008B02206D18430068C046A061E1698142C7 -:1049000002D0201CFFF7CCFA281C00F00FF90C98FD -:104910000599401800011030686113B0F0BC08BC64 -:1049200018470000010000027C29008000001202EC -:1049300004005202680E0080F0B540202D49C046A8 -:10494000086000F003F9071C8169446AA06F00F059 -:1049500045FE0020E11D193148717968C90E09D35F -:10496000F86A000124494018244BC0180168013935 -:10497000016036E0E16D0968226EC0461160204E8C -:10498000F51D79350123E96B1943E963B96AE26DD5 -:10499000C0461160B96A226EC04611606169002983 -:1049A00004D1A96B0131A963082907D3A8630120A9 -:1049B00000F086F8E86B40084000E8637868810EF4 -:1049C0000FD20B231B02F118C968002906D000087A -:1049D00004D2201C391C00F043F802E0381C00F01F -:1049E00005FA381CFBF706FC201C00F00BF8F0BCA5 -:1049F00008BC1847000000B0A01C0080B40C0000E8 -:104A0000680E008080B5071CF81D19300179002957 -:104A100004D000210171381CFFF756FBF86802280A -:104A20000DD0B8688000C219506C002811D0B86A47 -:104A3000417809011031526B101A884205D3381C95 -:104A4000FFF742FB80BC08BC1847381CFFF728FA68 -:104A5000F8E778688000C019C06BC046B862F1E71B -:104A6000B0B587B00F1C806FC04600900024134D76 -:104A70000B231B02E8188069002817D06946A200A2 -:104A800052190B231B02D2189269381C00F092FBBA -:104A9000002809D10134A00040190B231B02C018C3 -:104AA00080690028EAD101E0012802D0381C00F01A -:104AB0009DF907B0B0BC08BC18470000680E008024 -:104AC000B8B5C207D20F164C164901D0082208E02B -:104AD000820805D30C22A4180B68DF1D153703E0EC -:104AE0001C220B68DF1D09370F4B1D78002D13D0DA -:104AF0005B78002B10D001235B061A43002801D1FC -:104B00005B081A4300924A680120391C231C00F0FC -:104B1000DFFEB8BC08BC184703231B061A43F1E7A5 -:104B200090EE20407C290080F80E00800021C161B9 -:104B300005498A68002A01D1886002E0CA68C04637 -:104B4000D061C86070470000280F00800349886862 -:104B5000002802D0C269C0468A607047280F0080D2 -:104B6000011C0123886858408860CA68013ACA60FD -:104B70000A69013A80000A614218D06B536BC04643 -:104B8000CB620B689B005918496C536CC91851646F -:104B900070478A6892005218D36B834217D1D01D98 -:104BA0003D300A6892005218526C03689A1A0260EB -:104BB0000123886858408860CA680132CA600A695F -:104BC0000132800040180A61406BC046C8627047DD -:104BD000B8B5041C1D1C171C081C391CFFF7D9FF95 -:104BE0000020291C00F07CFE0120F91D19314871BC -:104BF000800660600020A061064AC0460092064818 -:104C0000016D426D054B002000F062FEB8BC08BC8F -:104C100018470000040012027C29008044802040D4 -:104C200006490A681018086001235B02984203D9FC -:104C300003490A7901320A7170470000E42D0080AF -:104C4000A08220408008800006490A681018086089 -:104C500001235B02984203D903490A7901320A71A0 -:104C600070470000E42D0080A082204003308008BF -:104C7000800006490A681018086001235B02984208 -:104C800003D903490A7901320A717047E42D008083 -:104C9000A0822040024841790131417170470000F3 -:104CA000A082204090B48200174B9A588B0702D004 -:104CB00089080B1D01E08908CB1C1169D768124CCB -:104CC000800020584068B94203D1814219D9116847 -:104CD00017E00024B94209D9814212D91168781A23 -:104CE00000D50330801098420BD807E0814205D8E8 -:104CF000781A00D503308010984202D8201C90BC4E -:104D00007047C81D0530FAE77004008080B5800048 -:104D10000F4A1758880702D08808043001E0880835 -:104D2000033039697A68914209D93968C0463961D6 -:104D3000F9687A68914202D93968C046F960810001 -:104D4000386900F0D1FD386180BC08BC184700000C -:104D50007004008090B50321090701400C0F010485 -:104D6000090C012292070240A3001C4FFF5889073B -:104D7000890F0004000C8008002900D00130002AAF -:104D800001D0023000E00330F9687A68914202D91C -:104D90003968C046F9608100F86800F0A5FDF86048 -:104DA0000F480069002805D00120A04002D0201C37 -:104DB000FEF7CAFC0B49C81D193003790022002BED -:104DC00005D10949C81D19300379002B03D00271A0 -:104DD000081CFFF779F990BC08BC184770040080E4 -:104DE000D02C0080642D0080E42C0080B0B52B49CD -:104DF0000979002903D14168294B19434160816831 -:104E0000490802D30921090401E00D2109040CC855 -:104E1000083819438768BB0A03D343685B0800D38B -:104E20000131406803231B071840070FF8001D4C91 -:104E300000192368C01850300079012810D160682B -:104E400001280DD0101C00F071F838010019192349 -:104E5000DB01C018416B01394163B0BC08BC184785 -:104E6000380100191923DB01C018036B5D1C0563B1 -:104E7000BD022D19DB00EB1880331963DA62816BF8 -:104E8000013181630121B940226811432160016B26 -:104E90008029E2D300210163DFE70000280F0080B2 -:104EA00000000080A01C0080F0B51F4E7068002834 -:104EB00036D10024B168481CC9008919B060326835 -:104EC000891860310D7B082800D3B460280180194F -:104ED0001923DB01C018876B002F21D0C16A4B1C3E -:104EE000AA029219C90051188031C362CA6A096BBB -:104EF000013F8763802B00D3C462002F06D10127B6 -:104F0000AF403B1CDB4337683B403360436B013BA6 -:104F10004363101C371C00F009F878680028C9D0DA -:104F2000F0BC08BC18470000A01C0080F0B5CD0FF5 -:104F3000ED07012400272E4B2E4A002D1DD0D86AE4 -:104F40000130D862101C5269002A12D00269531C29 -:104F50009200121803619161416901314161026956 -:104F60000F2A00D307610F2900D34460F0BC08BCAE -:104F70001847081CFFF7EEFEF8E715696E1CAD0038 -:104F8000AD181661A96155690135556116690F2E75 -:104F900000D317610F2D00D354608C02A40A164F62 -:104FA0003A6FFD68F91D7931012D0CD1DB6D5B087D -:104FB00009D30B89002B06D1FD6F033B2E683340CC -:104FC0002B6014230B8110608007800A20430304A8 -:104FD00000D001385060096A0832914200D8074A6F -:104FE000000D02D35120800382613A67BEE70000C2 -:104FF000A42A0080A01C0080680E008024A7204006 -:10500000B0B5002804D10120C0051649C04608608B -:10501000154C00256769002F16D0E068411C800000 -:105020000019E1608069013FFFF794FEE0680F28F6 -:1050300000D3E560E068800000198069000801D3B2 -:10504000002FEAD1676103E00848016D0131016575 -:1050500065602068002801D0FFF726FFB0BC08BCBF -:1050600018470000000000B0A01C0080A082204073 -:1050700000207047B0B41023826813400021002B39 -:1050800015D00C4B1A401201812414430268156894 -:10509000131D80CB1B68043A026020C280C208C284 -:1050A0001460426801239B0704321A434260081CC3 -:1050B000B0BC704700F0FF0FF0B48268530934D3DE -:1050C0001B4B1A4012018126164303681D681F1DE1 -:1050D00010CF3F68043B036020C310C380C31E6031 -:1050E00043681F1D01239B073B434360CB6B181F85 -:1050F000C86380CB80C01C681F1D031D0460381C62 -:105100003F68C0461F601F1D43681C04240C812398 -:1051100023433B604068000C000410437860086E35 -:1051200004300866486E043048660020F0BC7047C2 -:1051300000F0FF0F80B4816A01239B07CA1D05326E -:105140001A431268CF1D01373B431B68C046CB6032 -:1051500001239B070F1D3B431B68C0468B60012347 -:105160009B070B431B680CC10262016BC0460A62BD -:105170000423816919438161026BC0469161816A90 -:1051800004318162026BC0469162C11D39314A8B84 -:10519000043A4A83498B026B40325183C1890439F6 -:1051A000C181C168006BC046C160002080BC7047EF -:1051B00000470847104718472047284730473847D7 -:1051C00030402DE90CC09DE50C48A0E12448B0E139 -:1051D0001E00000A01C04CE21840A0E364519FE5A4 -:1051E000945020E0005090E5144090E5003085E5B3 -:1051F00004C085E5081085E50C2085E5101090E5D4 -:10520000105085E2010055E10C509055040055E125 -:105210000500000A041090E5005080E5005081E58B -:105220000000A0E33040BDE81EFF2FE1003093E511 -:10523000082090E5013183E3023683E3030055E162 -:10524000143080E5F2FFFF1A0100A0E3F4FFFFEA4B -:1052500001061CE3F1FFFF0AEC109FE502C6CCE358 -:10526000542091E5E4309FE5501091E5D9FFFFEA25 -:10527000F0472DE920C09DE50C68A0E12668B0E16B -:105280002500000A1840A0E3B8509FE5940000E014 -:10529000050080E0084090E5048090E50070A0E300 -:1052A0001FC0A0E302C48CE3005090E5109090E58D -:1052B00014A090E5003085E504C085E5081085E57B -:1052C0000C2085E5105085E2090055E10C50905501 -:1052D0000A0055E11500000A037017E2201081E270 -:1052E000203083E20A00000A006096E2017087E243 -:1052F0000900000A206046E2200056E3ECFFFFCAE6 -:105300000070A0E301C046E202C48CE30060A0E3A9 -:10531000E7FFFFEA005088E5F2FFFFEA0010A0E394 -:10532000005080E50100A0E1F047BDE81EFF2FE13D -:1053300000A094E50A0055E114A080E5E5FFFF1AFE -:105340000110A0E3F5FFFFEAA80300807C2900809C -:105350000080204068829FE50B92A0E364A29FE555 -:1053600058B09AE50EF0A0E154B09AE51EFF2FE187 -:105370003F402DE900004FE11F0000E2120050E322 -:105380005400000A00000FE18000C0E300F021E1BA -:105390000450A0E3004099E5090000EA020014E38C -:1053A0005300001B800014E35900001B200014E38D -:1053B0005900001B020714E35900001B010614E307 -:1053C0005900001B080014E34500001B020514E30C -:1053D0004A00001B020814E34B00001BE50E14E317 -:1053E0000700000A042098E50C1098E5043052E20A -:1053F0003C30A0B3043088E5020091E70FE0A0E163 -:1054000010FF2FE1015055E20300000A004099E52A -:105410000C009AE5000014E11BFF2F1108009AE52B -:10542000000014E10B00000A010C14E398019F1521 -:105430000FE0A01110FF2F11020414E38C019F153F -:105440000FE0A01110FF2F11010914E380019F1537 -:105450000FE0A01110FF2F1104009AE5000014E1E5 -:105460001600000A54E08FE2040014E340009A158D -:1054700010FF2F11020A14E344009A1510FF2F1198 -:10548000020914E348009A1510FF2F11010214E3DA -:105490004C009A1510FF2F11010414E350009A15C7 -:1054A00010FF2F11010A14E32100001B020014E376 -:1054B0000E00001B10009AE5000014E11C00001B08 -:1054C000004099E50450A0E3004094E21BFF2F1137 -:1054D0003F40BDE804F05EE2C00080E300F061E11F -:1054E000FAFFFFEA18009AE51C109AE511FF2FE178 -:1054F00054B09AE51C109AE514009AE511FF2FE1CB -:1055000020109AE50000A0E311FF2FE124109AE596 -:1055100011FF2FE128109AE511FF2FE12C109AE5D9 -:1055200011FF2FE130109AE511FF2FE134109AE5B9 -:1055300011FF2FE1FEFFFFEA38E09AE53C109AE503 -:1055400018009AE511FF2FE138E09AE53C109AE542 -:1055500014009AE511FF2FE164209FE5003092E5E9 -:10556000003053E00A0000BA003082E50C0092E5FA -:10557000083092E5001091E20300000A031080E772 -:10558000043053E23C30A0B3083082E50100A0E3D0 -:105590001EFF2FE13C109FE5000091E5010080E235 -:1055A000000081E50000A0E3F8FFFFEA10009FE59E -:1055B000081090E5041051E23C10A0B3081080E5FB -:1055C0001EFF2FE1E42D0080CC040080712BFFFF33 -:1055D000D13DFFFFC92BFFFFA0822040C91C8908D5 -:1055E00089000123854A5B07184313685B18136021 -:1055F000001F81A35B1A18470420A0E50420A0E542 -:105600000420A0E50420A0E50420A0E50420A0E5F6 -:105610000420A0E50420A0E50420A0E50420A0E5E6 -:105620000420A0E50420A0E50420A0E50420A0E5D6 -:105630000420A0E50420A0E50420A0E50420A0E5C6 -:105640000420A0E50420A0E50420A0E50420A0E5B6 -:105650000420A0E50420A0E50420A0E50420A0E5A6 -:105660000420A0E50420A0E50420A0E50420A0E596 -:105670000420A0E50420A0E50420A0E50420A0E586 -:105680000420A0E50420A0E50420A0E50420A0E576 -:105690000420A0E50420A0E50420A0E50420A0E566 -:1056A0000420A0E50420A0E50420A0E50420A0E556 -:1056B0000420A0E50420A0E50420A0E50420A0E546 -:1056C0000420A0E50420A0E50420A0E50420A0E536 -:1056D0000420A0E50420A0E50420A0E50420A0E526 -:1056E0000420A0E50420A0E50420A0E50420A0E516 -:1056F0000420A0E50420A0E50420A0E50420A0E506 -:105700000420A0E50420A0E50420A0E50420A0E5F5 -:105710000420A0E50420A0E50420A0E50420A0E5E5 -:105720000420A0E50420A0E50420A0E50420A0E5D5 -:105730000420A0E50420A0E50420A0E50420A0E5C5 -:105740000420A0E50420A0E50420A0E50420A0E5B5 -:105750000420A0E50420A0E50420A0E50420A0E5A5 -:105760000420A0E50420A0E50420A0E50420A0E595 -:105770000420A0E50420A0E50420A0E50420A0E585 -:105780000420A0E50420A0E50420A0E50420A0E575 -:105790000420A0E50420A0E50420A0E50420A0E565 -:1057A0000420A0E50420A0E50420A0E50420A0E555 -:1057B0000420A0E50420A0E50420A0E50420A0E545 -:1057C0000420A0E50420A0E50420A0E50420A0E535 -:1057D0000420A0E50420A0E50420A0E50420A0E525 -:1057E0000420A0E50420A0E50420A0E50420A0E515 -:1057F0000420A0E50420A0E51EFF2FE1E42D008099 -:1058000098009FE598109FE5012040E094309FE5C7 -:10581000000091E5030050E10300001A041081E24A -:10582000042052E20000000AF8FFFFEA78009FE53A -:10583000002080E574009FE574109FE5012040E0A2 -:1058400060309FE5000091E5030050E10300001A7D -:10585000041081E2042052E20000000AF8FFFFEA8F -:1058600050009FE5002080E54C009FE54C109FE52F -:10587000012040E02C309FE5000091E5030050E15D -:105880000300001A041081E2042052E20000000A22 -:10589000F8FFFFEA28009FE5002080E51EFF2FE1CA -:1058A0007C34008080300080ADDEADDEC00400803E -:1058B000FC37008080340080C4040080FC3F0080FE -:1058C00040380080C80400807847000071EAFFEA91 -:1058D0007847000039FEFFEA7847000063FEFFEAE0 -:1058E000784700001BFFFFEA784700006BEAFFEAF9 -:1058F00000000000FFFF00000000008028040000FE -:10590000F83D00000001008000FF000000000000E2 -:10591000B90BFFFF00000000D50BFFFF03FF06548B -:10592000030000007504FFFF00000000A105FFFF59 -:1059300004FF075403000000B504FFFF000000004F -:10594000F105FFFF05FF0554030000003904FFFFC8 -:10595000000000005505FFFF01FF040003000000E8 -:105960004118FFFF00000000610EFFFF02FF020868 -:1059700000000000A102FFFF00000000F102FFFF95 -:10598000FFFF0144030000000000000000000000D1 -:105990009D0DFFFF0600FF00000000003D50FFFFCF -:1059A0008150FFFF00000000FFFFFF00000000002B -:1059B000000000000000000000000000FFFFFF00EA -:1059C00000000000000000000000000000000000D7 -:1059D000FFFFFF00000000000000000000000000CA -:1059E00000000000000000000000000048050080EA -:1059F000117521401B7521403175214049752140A9 -:105A000055752140637521407D752140A975214060 -:105A10006D762140C5762140D3762140DD76214048 -:105A2000E776214099772140A7772140B57721403B -:105A3000617821405F7C2140E97C2140897D2140C3 -:105A4000BD7E2140C97E2140297F21408D7F21409C -:105A5000B97F2140DD7F21401D80214045802140CC -:105A60008D8021409D802140C5802140D5802140EE -:105A70001D8121405B812140B18121401182214063 -:105A80001B8221401F8221408D822140D9822140EA -:105A9000318321406D832140D183214009842140FD -:105AA0001984214051842140618421407584214022 -:105AB0009D842140A7842140B18421401585214047 -:105AC0004585214051852140C5852140CF85214014 -:105AD000D9852140E3852140ED852140F78521408E -:105AE000018621400B8621401586214001892140F5 -:105AF0001F86214029862140338621403D86214052 -:105B0000658621406F862140D1862140DB86214079 -:105B1000E5862140EF862140F98621409D74214091 -:105B20000387214069872140B5872140F9872140BB -:105B3000098821409D742140558821405988214081 -:105B40005D882140B5882140DD882140E9882140D9 -:105B5000ED882140F1882140F5882140F9882140D5 -:105B6000FD8821402D852140898521409D7421405B -:105B70009D7421400D8921409D742140E174214094 -:105B80009D7421409D7421409D7421409D7421404D -:105B90009D7421409D7421406B782140F57B21400C -:105BA000317C2140000000000000000000000000E7 -:105BB000000000005C0118405801184024A3204058 -:105BC00024A7204000000000000000006C011840E5 -:105BD000680118402483204024A3204000000000D6 -:105BE000000000007C01184078011840000000000F -:105BF0000000000000000000000000008C011840C0 -:105C00008801184024A9204024AB20400000000057 -:105C10000000000000000000080012001800120040 -:105C20000C0012001C00120024A82040A4A8204050 -:105C3000A4A8204024A9204000000000D1A82140B1 -:105C40002DAA21400000000089702140C9A12140F7 -:105C50000000000000000000010000000000000043 -:105C600057892140D1A82140C52FFFFF0521FFFF03 -:105C7000EF20FFFF59A72140342E0080482E0080DE -:105C80005C2E008030333A31313A31310030372FD9 -:105C900032332F3031003030303031353639004337 -:105CA0006F707972696768742028632920323030F8 -:105CB000312033436F6D20436F72706F726174696E -:105CC0006F6E0A00081000030000000000000000D2 -:105CD000000000008C53FFFF27F07DFD0001000253 -:105CE000DA0E820001406404642D0080E42C008000 -:105CF000693EFFFFC94FFFFFD524FFFFC93BFFFFF0 -:105D0000293CFFFF191AFFFF6511FFFFCC53FFFF6E -:105D10002140FFFF8970214049722140D93FFFFF98 -:105D2000219A21408524FFFF6453FFFF8C53FFFF1E -:105D300000000000FFFF0000803000800000000035 -:105D4000FFFF000000002040B05000007B0E00006C -:105D5000006E21400000000000000000ED8921409D -:105D60008B892140A58C2140058D2140CD8D21407E -:105D70008B8B2140A98E2140158F2140698B2140BA -:105D80000000000000000000000000000000000013 -:105D90000000000000000000000000000000000003 -:105DA0000000000059BD2140C1BD21402DBE214051 -:105DB00000200A4A0B231B02D1182D239B01D31864 -:105DC0008861D860D8638032C86008614861D06259 -:105DD0000348C0464860886070470000680E008035 -:105DE000FE030000F0B584B00C1C051C00230093DA -:105DF000FFF7DEFF68490B231B02CF1878682840A5 -:105E00000022F8603A61BA6822407A610C1C4109AC -:105E100003D2510901D2800A02D3604800F0C2F8CF -:105E20000120F968490903D27969490900D20020A3 -:105E30000006000E03F0D4FAF868002870D00023A2 -:105E400002930193544A01231843F8600020D51DA2 -:105E500079350395012400214F4DFA68224039D04D -:105E60008A00521892004E4B9B5C1E1C834204D049 -:105E70004B4BD3185B7883422CD1494BD218D37843 -:105E8000039DED6AAB4202D9039DC046EB625368A5 -:105E90005B0801D30123009386420AD19568029BD7 -:105EA0005E1C02969B003C4E9E190B231B02F318AE -:105EB0009D61537883420DD1D268019B5D1C019591 -:105EC0009B00354D5D192D239B01EB18DA603A6973 -:105ED00001323A61640001310B29BDD30130092838 -:105EE000B8D30020029B99002B4A89180B231B0270 -:105EF000C9188861019B990089182D239B01C91835 -:105F0000C860009B002B0CD1810089180B231B0259 -:105F1000C918CB69C0468B6101300B28F4D308E067 -:105F200007E0039DE86A302803D23020039DC04675 -:105F3000E862194A786900282AD000210123184311 -:105F40007861002001240022134E7B69234010D089 -:105F500093009B189B00124D5B199D78854208D1D8 -:105F60001D690B1C9B009E192D239B01F318DD63FB -:105F70000131640001320B2AE6D301300928E1D354 -:105F800000208900044A89182D239B01C918C86381 -:105F900004B0F0BC08BC1847680E00803053FFFF07 -:105FA0000001008000470847104718477847C0465F -:105FB00018C09FE51CFF2FE17847C04610C09FE541 -:105FC0001CFF2FE17847C04608C09FE51CFF2FE16A -:105FD0003852FFFF8851FFFFD5B02140F0B50420B3 -:105FE0001A49012508601A4FBB231B01F8180573D5 -:105FF0001848416B2C0500207A6E174B8A421DD041 -:10600000197B002917D1D91DFF313A3149781E1C5F -:10601000002910D1B06010207060104A1049FFF7BD -:10602000C3FF002807D035730423B8691843B8614B -:10603000206100F017F8F0BC08BC1847187304235F -:10604000B8699843B8612061F5E70000000000B02E -:10605000680E008000011840280500802055FFFFD1 -:106060007D712140F8B5154F396C1548406E0C1AFA -:10607000144E7168144DA14206D8144A0A43009286 -:10608000B96B0918FA6B11E01122520522430092F4 -:10609000B96B09180020FA6B2B1CFFF78DFF706895 -:1060A000001B0A4A02430092B96BFA6B00202B1CBA -:1060B000FFF782FFF8BC08BC184700007C2900806D -:1060C000680E0080280500804480204000003702D0 -:1060D000F0B52B4FB8687968C0192030294AFFF70E -:1060E00063FF0120C0022849C0460860B968381C17 -:1060F000264D0024264EEF1D7937002931D1316815 -:106100000A78120A03D20473F0BC08BC1847497815 -:1061100000290CD1051C406800F03EF9306800F001 -:1061200067F8002826D12C73FFF758FF22E00901F9 -:10613000071C4160081C174A1749FFF735FF002864 -:1061400007D13C730423A86998439904A8610861A6 -:10615000DAE7102000F020F91020B860FFF782FF86 -:10616000D2E7051C406800F017F9306800F040F8ED -:106170000028D8D00223F86B1843F863C4E7000066 -:1061800028050080A555FFFF000000B0680E0080C4 -:10619000E40100802055FFFF7D71214090B5012072 -:1061A00040031049002708600F4CE01DFF303A30D3 -:1061B0004770E06980000019006900F0D7F8E069D5 -:1061C000002801D0E76101E00120E06107480223D7 -:1061D000C16B1943C1632773FFF700FF90BC08BC74 -:1061E00018470000000000B028050080E80E00807D -:1061F00080B584B0071C78886D2803DB381C00F05C -:10620000F7F817E080000D490958381CFFF7CBFE5E -:1062100000280FD13978C9090CD36946381C00F021 -:10622000CFF86846002100F00BF8002801D10120CA -:1062300000E0002004B080BC08BC1847E8010080E2 -:10624000F0B582B0021C414BDD1DFF353A352F7889 -:10625000002F01D0002700E001272F702F78FB00CE -:10626000DB195B013A4FDC1940780001C71D093783 -:1062700000208300D658C046E65001300428F8D3E9 -:1062800000290FD00022BB08019383420BD9131CB5 -:106290009B00CB588600A351019B01300132834201 -:1062A000F5D800E010272B48026D806E2A49824203 -:1062B00003D8821ACB6C9A1A00E0121ABA4205D897 -:1062C0002648816B01318163012037E0C319CA6C14 -:1062D000934208D8224A3A4300920A1C496C091892 -:1062E000926C231C12E0161A00961B49496C09187F -:1062F0001948826C0320231CFFF75EFEB81B184A66 -:1063000002430092A3191448826C416C0320FFF7EA -:1063100053FE01200D49C04668708A6992005218E8 -:1063200017618A69002A02D000278F6100E0886126 -:106330000C480223C16B1943C163002001270A499D -:10634000C0464F7302B0F0BC08BC18472805008057 -:1063500050BA2040680E00807C290080A082204036 -:1063600000001902E80E0080181A008007498A6EA2 -:106370001018074AD26C13041B0C834200D8801AF1 -:106380008866886E0349C04648617047680E008081 -:106390007C29008090EE204006494A6E1018064A7B -:1063A000126C824200D8801A4866486E0349C04683 -:1063B00008617047680E00807C29008090EE2040C4 -:1063C00005220A608288C0468A8000224A7040887E -:1063D000C0464880CA808A60CA6070470522026051 -:1063E0000022828042704180C2808260C260704719 -:1063F00080B584B0071C0E48416B0131416369468A -:10640000381CFFF7DDFF3868C0460090452000AB20 -:1064100018700127DF8068460021FFF711FF002870 -:1064200001D1381C00E0002004B080BC08BC184733 -:10643000A082204000B584B0C188094AC04691813D -:106440006946FFF7BDFF0120400201AB5880684656 -:106450000021FFF7F5FE012004B008BC184700003A -:10646000E80E008000B5FFF7C3FF08BC1847012005 -:106470000349C0460871A121490388600020704784 -:10648000280F008000200449C0460871FF21A12286 -:106490005203013191607047280F00800220A12132 -:1064A000490388600020704701204002A121490370 -:1064B000886000207047C088C006C00EA121490333 -:1064C00048610249C046C86300207047E81A00804E -:1064D00080B584B008490F6B6946FFF771FFF80675 -:1064E000C00E01AB588068460021FFF7A9FE0120CD -:1064F00004B080BC08BC18478000144080B585B04B -:10650000071C6946381CFFF75BFFF88804A903F0F5 -:10651000C9FF01AB588001A8408800280FD001A80E -:1065200040888008033880080130043B5870049884 -:106530000168C04602914068C046039005E000A88B -:1065400000784023184300AB18700498C11D013136 -:106550006846FFF775FE012005B080BC08BC1847EF -:1065600090B584B0144F397B002920D1F91DFF313B -:106570003A31497800291AD110490522009208229F -:1065800000AB5A809880062000AB58700024DC8055 -:106590000868C04602904868C046039001203873DE -:1065A00068460831FFF74CFE002800D03C7304B069 -:1065B00090BC08BC1847000028050080A42A008071 -:1065C00090B584B0071C6946381CFFF7F9FEBA681D -:1065D0000D4C0E48002A05D10D49FFF7E4FC0028B8 -:1065E0000CDA05E0B9880B4BFFF7DFFC002805DA71 -:1065F00001AB5C8068460021FFF722FE002004B05A -:1066000090BC08BC18470000FFFF00000D76214039 -:10661000C1BD214059BD214000B5C08803F02EFF07 -:10662000002008BC184700B5FFF7E2FE08BC184779 -:1066300000B5FFF7DDFE08BC184700B5011C0220BD -:1066400000F002F808BC1847B0B5C6B0071C081C1B -:106650006946FFF7B5FE2148FFF7A4FC041C204A59 -:106660000021381CFFF7A0FC002827D004A91D4AF0 -:10667000381CFFF799FC04A80023012F06D10CAAAF -:1066800002320021136001311029FBD30168042973 -:1066900004D9890803398908013100E0191C00ABCD -:1066A000597006A90978C046D9800068C046029092 -:1066B0000798C0460390043308AD02E0452000ABC4 -:1066C00018700949201CFFF76EFC6846291CFFF76B -:1066D000B7FD012046B0B0BC08BC18472402FFFF3C -:1066E00059B121409DAF21403C02FFFF00B5011C84 -:1066F000022000F010F808BC184700B5011C01206A -:10670000FFF7A2FF08BC184700B5011C012000F0EC -:1067100002F808BC1847F0B5C7B0041C0F1C381CA1 -:1067200001A9FFF74DFE2148FFF73CFC0090787867 -:106730000001BA680430FC2A25D8FF2309339842A7 -:1067400021D8192C1FD8FD88F868C0460590F91D7E -:10675000093106AB00207E78002E0DDD40C940C314 -:1067600040C940C340C940C340C940C301300004D0 -:10677000000C7E788642F1DC201C05A92B1CFFF75B -:1067800021FC002805D001A800784023184301AB64 -:10679000187007490098FFF706FC002101A8FFF7D1 -:1067A0004FFD012047B0F0BC08BC18472402FFFF92 -:1067B0003C02FFFF00B5FFF71BFE08BC1847F0B511 -:1067C000C6B0071CFC88254D6868013069466860C2 -:1067D000381CFFF7F5FD102C08D300A800784023E3 -:1067E000184300AB18700220D88017E07878820038 -:1067F000FB1D09330020B968002A15D940CB0F1CB6 -:106800000131BE420DD000AA127840231A4300ABDA -:106810001A700422DA800290039104336846002142 -:1068200015E001309042E9D300AB5C7002946968D6 -:10683000C0460391A20000201033002A05D90F1C86 -:1068400080C3013001319042F9D3684604A9FFF7B3 -:10685000F7FC012046B0F0BC08BC18479C03008040 -:1068600090B4234800680121420900D30021002789 -:106870003A1C430B00D2022211431E4A2024D36843 -:10688000012B2ED1800A00D200240C43201C1B2394 -:10689000DB01D118898B090B00D204273843D16F53 -:1068A0000968090A07D2D11D793109680968090AFE -:1068B00001D308231843E3231B01D1188979032945 -:1068C00002D1FF23013318430B49096A10224B0AF6 -:1068D00000D2002210438907890F8901084390BC28 -:1068E0007047400C00D200240C43201CECE7000051 -:1068F00000001040680E0080C0001840F0B53A4C0F -:10690000201C04F007FA3948E3231B01C718B979A2 -:10691000374EC51D7935062962D202A35B5C5B0048 -:106920009F44001C030E1E374E550120B8710020F5 -:10693000B060FFF795FF0523984300F06FF80CE077 -:10694000FFF78EFFC00806D3B068411CB1600A286B -:1069500003D9042000E00220B8716422201C2BE03F -:10696000061CC06F80230168194301600320B871C1 -:10697000201C204A002104F099F9F06F04230168DB -:10698000994301602868016819430160F0BC08BCA4 -:1069900018470521B971296804230A689A430A60D7 -:1069A000C06F016819430160FFF75AFF08231843BD -:1069B00000F034F8201C104A002104F077F9E5E7D4 -:1069C000FFF74EFF0423184300F028F8DEE700200D -:1069D000296860230A689A430A60FFF7E3FAD5E75B -:1069E0000620B871D2E70000A9792140680E008026 -:1069F0009C030080307500001027000000B50020C7 -:106A00000449C046887104480122002104F04EF96F -:106A100008BC1847981C0080A979214090B5071C34 -:106A200031480068790803D31023011C994301E021 -:106A3000102101432D4CE268012A05D12279002A58 -:106A400002D001239B021943814202D0012000059C -:106A50000160E068012820D11B23DB01E018808B56 -:106A6000F90804D30123DB02011C994301E0012151 -:106A7000C902814202D0002002F01AFB380907D374 -:106A8000E06F8023016899430160E018006800E02E -:106A9000E06F80230168194301601548016A780995 -:106AA00003D3FF200130084303E0FF23081C013318 -:106AB000984380088000BA099207920F10438842D9 -:106AC00002D00C49C0460862E168012908D1790A60 -:106AD00006D3FF2304331840032801D1FFF78EFFAC -:106AE00090BC08BC1847000000001040680E0080F1 -:106AF000C0001840C000180080B5FFF7B1FE800943 -:106B00001BD20F48E3231B01C1184A79002A14D174 -:106B100001224A7100278030006860230168994390 -:106B20000160084806E0022002F08CFC072002F019 -:106B30005BFC381CFFF736FAF5E780BC08BC184749 -:106B4000680E0080F401FFFF00B584B06946FFF7CE -:106B500037FCFFF785FE01AB588008480068C04647 -:106B600002900748006AC046039068460021FFF77C -:106B700067FB012004B008BC18470000000010406B -:106B8000C000184080B584B0071C6946381CFFF768 -:106B900017FCF888FFF742FFFFF762FE01AB588051 -:106BA00068460021FFF74CFB012004B080BC08BC04 -:106BB0001847B0B5C6B0C7886946FFF701FC012485 -:106BC0001A4B9F420AD900A800784023184300AB13 -:106BD00018700220D8806846002120E01448FFF792 -:106BE000E1F9051C134A381C04A9FFF7DDF9124925 -:106BF000281CFFF7D8F9012F06D10CA9002000228C -:106C00000A6001301028FBD3102000AB58700498A4 -:106C1000C04602900598C0460390684606A9FFF753 -:106C20000FFB201C46B0B0BC08BC1847FF01000099 -:106C30002402FFFF9DAF21403C02FFFFF0B5C6B02C -:106C4000071C6946381CFFF7BBFBFC8878780125D8 -:106C5000102801D1192C09D900A800784023184325 -:106C600000AB18700220D880043327E0B868C04613 -:106C70000490F868C046059006AAFB1D0933002160 -:106C8000787800280DDD002040CB40C201300004A0 -:106C9000000C0428F8DB481C0104090C78788842B1 -:106CA000F1DC0B48FFF77EF9071C0A4A201C04A9F7 -:106CB000FFF77AF90849381CFFF775F96846002193 -:106CC000FFF7BEFA281C46B0F0BC08BC184700000D -:106CD0002402FFFFC5AF21403C02FFFFF0B584B0A6 -:106CE000041C0027E688A26847490879002808D0D4 -:106CF000002E01D0012E01D1012701E0042E00D188 -:106D0000032601254148052E66D202A39B5D5B0048 -:106D10009F44001C0306080C10000580002303E0BC -:106D2000058005E000230380438006E00023038004 -:106D3000458002E0FF2301330380CB1D79339E8918 -:106D400001235B029E4202DBD207D20F00E0012248 -:106D50006D235B01C9188988FF23E133994301231F -:106D600019430688FF339E420DD1FF20E1300843CE -:106D7000002A04D101239B029843011C20E0012139 -:106D8000890201431CE0012E0AD14088012804D168 -:106D900060231943002A13D00CE0202319430FE08D -:106DA000002E0DD14088012808D1FF2381331943DB -:106DB000002A05D001239B02194301E080231943D7 -:106DC000042002F075F909214902002002F070F94F -:106DD000002F02D1002012E0FFE76946201CFFF7D8 -:106DE000EFFA00A800784023184300AB1870022087 -:106DF000D880684600210433FFF722FA281C04B02B -:106E0000F0BC08BC18470000680E0080881C008099 -:106E1000C0885121890308620020704780B5164F51 -:106E2000F868012807D137239B01F818408A802190 -:106E300001431B2007E06D235B01F818808B0121C3 -:106E400049030143102002F033F9012071235B0153 -:106E5000F918088048801B23DB01F818808B012378 -:106E60001B039843412109020143002002F020F94D -:106E7000002080BC08BC1847680E008080B5174F02 -:106E8000F868012808D137239B01F818408A80232D -:106E90009843011C1B2008E06D235B01F818808BD0 -:106EA00001235B039843011C102002F001F9FF202D -:106EB00071235B01F918013008801B23DB01F818EE -:106EC000808B41231B029843092149020143002082 -:106ED00002F0EEF8002080BC08BC1847680E008065 -:106EE00080B584B00849CF6A6946FFF769FAB805EA -:106EF000800D01AB588068460021FFF7A1F9012001 -:106F000004B080BC08BC184740001440C0889F23D0 -:106F100018400549C96A1B235B011940084303490E -:106F2000C046C86200207047400014404000140072 -:106F300080B584B00D490F6A012F01D1FF0307E02E -:106F4000022F01D13F0303E0002F01D10127FF02EF -:106F50006946FFF735FA01AB5F8068460021FFF70D -:106F60006FF9012004B080BC08BC18470020144011 -:106F7000C288A1204003002101235B039A4201D172 -:106F8000022204E00123DB039A4202D101220262C1 -:106F900000E00162081C704790B584B0071C02F045 -:106FA0009FF86946041C381CFFF70AFA01AB5C80A5 -:106FB000094FF86DC046029068460021FFF740F97E -:106FC000F86DC007C00F0549C046C862012004B073 -:106FD00090BC08BC18470000A42A0080681C0080F0 -:106FE000C0880249C04648610020704780001400F4 -:106FF00000B584B06946FFF7E3F90648C06801AB05 -:10700000588068460021FFF71BF9012004B008BC36 -:107010001847000080001440C0880249C046C8607C -:10702000002070478000140080B584B069468768EE -:10703000FFF7C6F9202F07D278000C4940181B2310 -:10704000DB01C018808B06E000A8007840231843BD -:1070500000AB1870022001AB588068460021FFF792 -:10706000EFF8012004B080BC08BC1847680E00800F -:1070700000B584B0C1888268202A04D2101C02F0B6 -:1070800017F8002010E06946FFF79AF900A8007889 -:107090004023184300AB18700220D88068460021B6 -:1070A0000433FFF7CDF8012004B008BC184790B5B1 -:1070B00084B0C7886946FFF783F91048FEF772FF6E -:1070C0000220391C02F0F2FF002806D00220391CF1 -:1070D00002F036FF01AB588002E0452000AB18708B -:1070E0000749201CFEF75FFF68460021FFF7A8F85C -:1070F000012004B090BC08BC184700002402FFFF28 -:107100003C02FFFFB0B584B0C78869468468FFF7CA -:1071100057F91048FEF746FF0F4A0220391CFEF7C8 -:1071200043FF002806D00D4B0220391C221CFEF71D -:107130003CFF02E0452000AB18700949281CFEF70F -:1071400032FF68460021FFF77BF8012004B0B0BC95 -:1071500008BC18472402FFFF59B1214059B0214013 -:107160003C02FFFF00B5FFF743F908BC18470020B9 -:10717000704780B4C288194BA1214903002A03D16A -:10718000186B1023984304E0012A04D1186B1023D4 -:10719000184348611FE0022A1DD1C2688768002099 -:1071A0003B1CC340DB07DB0F9B0203430B61013039 -:1071B0000004000C2028F3DB0020131CC340DB0775 -:1071C000DB0F9B02C71D19373B430B6101300004E5 -:1071D000000C2028F1DB002080BC704780001440A8 -:1071E00080B4C28881681002120A10430204120C93 -:1071F0000C48C04602600C4BC0461A800A0C1702AD -:1072000012123A431204120C42605A800904090C0B -:107210000A02090A11430904090C816099800020BF -:1072200080BC704740001400281B0080B0B584B0BB -:1072300013490A681204120C1302121213434A680B -:107240001204120C1F1C1302121213438968090442 -:10725000090C0A02091211430C04240C69461D1C76 -:10726000FFF7AEF801AB5F80280420430290684628 -:107270000021FEF7E5FF012004B0B0BC08BC1847B0 -:1072800040001440C18882680802090A08430004CB -:10729000000C0A49C046C860100C030200121843D3 -:1072A0000004000C08611004000C0202000A1043E4 -:1072B0000004000C486100207047000040001400EA -:1072C00090B584B0164BD9680904090C0A0209125A -:1072D00011431A691204120C170212123A435B6925 -:1072E0001B041B0C1F021B123B431F043F0C0523F6 -:1072F0000093848801AB1C800024043B5C704088B0 -:1073000000AB5880D980100438430290039468463B -:107310000021FEF795FF012004B090BC08BC18477F -:107320004000144000B584B00B498A6A05210091E1 -:10733000818801AB19800021043B5970408800AB63 -:107340005880DA80029103916846FEF779FF0120A8 -:1073500004B008BC18470000C0001440C0880249AF -:10736000C046886200207047C000140000B584B099 -:107370000B490A6A05210091818801AB198000211F -:10738000043B5970408800AB5880DA800291039129 -:107390006846FEF755FF012004B008BC18470000FE -:1073A000C0001440C0880249C046086200207047EF -:1073B000C000140000B5C0880249FEF7F4FD0020AB -:1073C00008BC18477502FFFF00B584B06946FEF798 -:1073D000F7FF0648006B01AB588068460021FEF7B6 -:1073E0002FFF012004B008BC18470000680E008081 -:1073F00000B5FEF7FDFF08BC184700B5FEF7F8FF23 -:1074000008BC184700B5FEF7F3FF08BC184780B565 -:10741000071C1048FEF7C6FD01204002A1214903C8 -:10742000886000210C48C04601710C480268520C6B -:1074300005D20268120C06D10068800A03D30848FE -:10744000C046C76002E00748C0460764081C80BC0D -:1074500008BC1847D5942140280F00800000104038 -:10746000400118000000008000B501200349C0461B -:1074700008721220FFF7CBFF08BC1847881C008059 -:1074800000B501200349C04648721520FFF7BFFF31 -:1074900008BC1847881C008000B501F0F9FF0120E6 -:1074A00008BC184780B584B0071CF88802F0FEF8C5 -:1074B00000280CD16946381CFEF782FF064801AB54 -:1074C000588068460021FEF7BBFE012000E0002046 -:1074D00004B080BC08BC1847FFFF000080B584B032 -:1074E0006946FEF76DFF012701AB5F80094881897E -:1074F0000904C2891143029181880904C0880843A4 -:10750000039068460021FEF79BFE381C04B080BC47 -:1075100008BC18474C2A008000B5FEF769FF08BC7C -:10752000184700B5FEF764FF08BC184700B5FEF722 -:107530005FFF08BC184700B5FEF75AFF08BC1847A4 -:1075400000B5FEF755FF08BC184700B5FEF750FF21 -:1075500008BC184700B5FEF74BFF08BC184700B53C -:10756000FEF746FF08BC184700B5FEF741FF08BC10 -:10757000184700B5FEF73CFF08BC184700B5FEF7FA -:1075800037FF08BC184700B5FEF732FF08BC1847A4 -:1075900000B58CB008A9FEF713FF694608A802F0F1 -:1075A000A9FF022008AB5870694608A8FEF748FEFC -:1075B00001200CB008BC184700B5FEF719FF08BC45 -:1075C000184790B584B0071C6946381CFEF7F8FED2 -:1075D000FA8812490124C81D8930002A0FD004708E -:1075E0004470B868000C8031C882B868C04608830F -:1075F000F868000C4883F868C046888302E00021E0 -:1076000001704170064801AB588068460021FEF7C2 -:1076100017FE201C04B090BC08BC1847680E008000 -:10762000FFFF000000B5FEF7E3FE08BC184700B5F9 -:10763000FEF7DEFE08BC184700B5FEF7D9FE08BC11 -:10764000184700B5FEF7D4FE08BC184700B5FEF792 -:10765000CFFE08BC184790B584B0071C6946381C9B -:10766000FEF7AEFEF8880324E40404430323DB049E -:107670009C4202D30F4B9C4206D90F4801AB588065 -:1076800068460021FEF7DCFD0120800720430068EA -:10769000002100AB5970FA88C046DA80029003914D -:1076A00068460433FEF7CCFD012004B090BC08BC52 -:1076B00018470000E0001800FFFF000080B584B00C -:1076C000071C6946381CFEF77BFEF8880323DB04A1 -:1076D0001843984202D30A4B984208D9094801AB93 -:1076E000588068460021FEF7ABFD012003E0B96831 -:1076F000C0460160002004B080BC08BC18470000F0 -:10770000E0001800FFFF000080B586B002A9FEF778 -:1077100057FE012702AB5F700020D8800A484168FD -:10772000C04604918168C0460591C168C046009179 -:107730004069C0460190694602A8FEF781FD381CE9 -:1077400006B080BC08BC18476819008000B5C16845 -:107750008068FEF747FB002008BC184700207047F0 -:1077600090B584B0041C0F1C68465021FEF736FE0D -:1077700001AB5C80029768460021FEF761FD04B012 -:1077800090BC08BC184780B584B0071C68465121DE -:10779000FEF724FE01AB5F8068460021FEF750FD36 -:1077A00004B080BC08BC1847002070470020704718 -:1077B00090B584B0002712490968124A126B102351 -:1077C0001A400124002A00D001278A0C03D33A046E -:1077D000120C02271743C90C03D33904090C0427E0 -:1077E0000F436946FEF7ECFD01AB5F806846002160 -:1077F000FEF726FD201C04B090BC08BC1847000012 -:1078000000001040C000184000B584B06946FEF783 -:10781000D7FD0648C06D01AB588068460021FEF7D1 -:107820000FFD012004B008BC18470000A42A008006 -:1078300000B5FEF7DDFD08BC184770470020704713 -:1078400000207047002070470020704700207047DC -:107850000020704700B5FEF7CBFD08BC18470000BC -:1078600080B585B001A9FEF7ABFD002001AB5870D3 -:107870000C49C9680127012902D10397049701E047 -:1078800003970490684601F033FD02AB0098C046B0 -:107890005880002101A8FEF7D3FC381C05B080BC3D -:1078A00008BC1847680E0080704704490020002279 -:1078B0000A70013001316828FAD37047A082204055 -:1078C0000022884203D3401A01328842FBD2101CA6 -:1078D0007047884202D3401A8842FCD2704790B465 -:1078E000011CFF27042927DA0020144A43001B1833 -:1078F000DB00D458630C1AD24B005918C9005758F2 -:1079000043001B18DB00D75089189A184F68C046EF -:1079100057608B68C04693600B69C04613614B6922 -:10792000C0465361C968C046D16090BC7047013001 -:107930000006000E0428D9DB381CF6E740AB2040D7 -:10794000F7B5C4B0041C0020469A112111406ED036 -:1079500000277900C919C900574A5158490C03D268 -:1079600001300006000E04E0791C0F063F0E042FC4 -:10797000EFDB00285BD0002600220092402300218C -:10798000002002AA00F088FA04A9002082008A5888 -:107990001206120EA24203D1721C1606360E04E025 -:1079A00001300006000E1028F0DB002E3DD0042C24 -:1079B0003ED1800008584001800D00220092102323 -:1079C000002102AA00F068FA0021019102A805999D -:1079D000490C890529D0C1680A06120E459B9A42B6 -:1079E00011D1C0684001860D002200920C230021B5 -:1079F000301C02AA00F050FA0199029D481C0106B1 -:107A0000090E01910EE04801860D0022009210231C -:107A10000021301C02AA00F03FFA02A80599490C87 -:107A20008905D8D1019900290FD1FF203DE040E020 -:107A3000800008584001860D002200920C2300218E -:107A4000301C02AA00F028FA029D01200004469A88 -:107A500010437900C919C900174AC0465050301C5C -:107A60008E1870601020042C00D00C20041CB06014 -:107A700000202021469A1140202900D0281C306186 -:107A80002819FF21FF3008300931FFF719FF4301A2 -:107A90001818C000001B706100205021469A114048 -:107AA000502900D1281CF060381C47B0F0BC08BC3D -:107AB0001847FF20F9E7000040AB204080B40023C6 -:107AC0000022002906D9875C7B401B061B0E013271 -:107AD0008A42F8D3D8430006000E80BC7047F0B548 -:107AE000C6B0042807DA41000918C9004591414A87 -:107AF00051584B0C02D20020C04376E001235B04B6 -:107B0000194043001818C0003A4A1418002961D0DF -:107B1000002102912069A168451830D0FF21681E1C -:107B20000931FFF7CDFE616840180190019881424C -:107B300002D1A668AF1B09E00026FF21281C0931ED -:107B4000FFF7C7FE071C01D1FF270937002200926B -:107B50000198311C03AA3B1C00F09EF903A8391CB4 -:107B6000FFF7ACFFC043029948400106090E02919D -:107B7000ED1BA068A84200D10025002DCED80299A7 -:107B8000CF43002200920C230021606803AA00F07A -:107B900083F92069C04603900598000A000239065F -:107BA000090E08430590FF231B02984305900C2102 -:107BB00003A8FFF783FFFF231B02059999430006E3 -:107BC000000E0002084305900C230021606803AA00 -:107BD00000F0CAF900204599064AC0465050C143FA -:107BE0006160A160E1602161616146B0F0BC08BCE8 -:107BF0001847000040AB2040B0B44C42002900DBE5 -:107C00000C1C0027FF43042821DA124D43001818EA -:107C1000C0004019012A05D0022A09D0032A16D132 -:107C200001690BE0002912DB02698A420FD305E0EB -:107C3000002907DAC168A14209D3091BC160C068E5 -:107C4000B0BC7047C168091902699142F6D9381C65 -:107C5000F6E7000040AB2040F0B584B0171C0D1CC7 -:107C60000021029142001218D2002C498B581B06A9 -:107C70001B0E01930023DB43042802DA019840081D -:107C800001D2181C46E05418E068C21921698A42E2 -:107C900000D90F1A002F3CD9A068E1684018FF21D5 -:107CA0000931FFF70DFE61684618A068E1684018C9 -:107CB000FF210931FFF70DFEC219FF2109318A4268 -:107CC00014D9019AC04600920B1A0393011C301C70 -:107CD0002A1C00F0E1F8E068039BC018E060039BF9 -:107CE0005D19FF1A02981818029010E0019AC04618 -:107CF0000092011C301C2A1C3B1C00F0CDF8E068EF -:107D0000C019ED19E0600298C01902900027002FF9 -:107D1000C2D8029804B0F0BC08BC184740AB204061 -:107D2000F0B583B0171C0D1C002101914200121800 -:107D3000D200029230498A581206120E0024E443FF -:107D4000042801DA500901D2201C51E0029A54188B -:107D5000E068C2196069824201D92269871A002F3E -:107D600045D9254EA068E1684018FF210931FFF789 -:107D7000A7FD616840180090A068E1684018FF21E5 -:107D80000931FFF7A6FD029AB15801235B0419439C -:107D9000B150C119FF220932914213D9131A011CA3 -:107DA00000982A1C1E1C00F0DFF8E0688019751985 -:107DB000E0602169884200D92061BF1B019830181A -:107DC000019012E0011C009E301C2A1C3B1C00F09C -:107DD000CBF8E068C019ED19E0602169884200D94C -:107DE00020610198C01901900027002FB9D801988F -:107DF00003B0F0BC08BC184740AB2040B0B5C3B0DE -:107E00000C1C0027FA43042806DA41000918C900AF -:107E1000144845586B0C04D2101C43B0B0BC08BCCD -:107E2000184762091BD300220092081840680C23EF -:107E3000002101AA00F030F8112C0DD0122C0DD029 -:107E4000132C05D0142C0AD103980004070E06E069 -:107E5000039807063F0E02E0019F00E0029F381CD6 -:107E6000DBE7000040AB20400349002000220A5419 -:107E700001306028FBD3704740AB204000B502F0D2 -:107E80006FFA572002F0CCF902F040F9000AFBD358 -:107E900002F04EFA08BC1847F0B582B0079D141CDA -:107EA0001F1C304AD26F202316689E431660331C75 -:107EB000FF2201322A4040020843050A061C000C3A -:107EC0000190002A20D002F04BFA532002F0A8F9CA -:107ED0000198C046009002F0A3F9281C02F0A0F916 -:107EE000301C02F09DF902F023FAFFF7C7FF02F001 -:107EF00037FA542002F094F9009802F091F9281C06 -:107F000002F08EF9301C14E002F02AFA522002F03E -:107F100087F9019802F084F9281C02F081F9301CDD -:107F200002F07EF9002002F07BF9002002F078F9DF -:107F3000002002F075F9002002F072F9002F05D937 -:107F400002F0E4F820700134013FF9D102F0F0F9B9 -:107F5000044AD06F202301681943016002B0F0BCCD -:107F600008BC1847680E0080F0B582B0141C1F1CB6 -:107F700042020A43151C012854D02C49C86F202303 -:107F800002689A430260C86F402301681943016088 -:107F900002F0E6F9532002F043F9280C061C02F027 -:107FA0003FF9280A0190009002F03AF9281C02F0EB -:107FB00037F902F0BDF9FFF761FF02F0D1F9842033 -:107FC00002F02EF9301C02F02BF9009802F028F98B -:107FD000281C02F025F9002F05D92078013402F081 -:107FE0001FF9013FF9D102F0A3F902F0B9F983209A -:107FF00002F016F9301C02F013F9019802F010F9A2 -:10800000281C02F00DF902F093F9FFF737FF07493A -:10801000C86F402302689A430260C86F202301683A -:108020001943016002B0F0BC08BC1847680E00801C -:108030007047000080B501F08FF8064FC046F86029 -:1080400001F0F2F8788001F0B1F8387180BC08BC1A -:1080500018470000680E008000B501F005F90249DC -:10806000C046088008BC1847680E00800B48C168ED -:10807000012911D1C16F02230A681A430A60C16F36 -:1080800080230A681A430A60C118086882230268BC -:108090001A4302600020088170470000680E0080CB -:1080A000F0B44A49CA1D9D32002000278300D750F2 -:1080B00001301728FAD3464C00208200A750013027 -:1080C0002028FAD3434A00208300D75001302028CB -:1080D000FAD3A76197614F658F653F4DC0462F600A -:1080E0006F60AF60AF61EF602F616F610020C10012 -:1080F00009184901354BC9188600CB1DF933344C9A -:108100003419E36311235B01CB1863630D239B01D7 -:10811000CB18B418E36323235B01C91861630130F2 -:108120000228E4DB2948C11DF931294CC046A1626F -:10813000616B0D239B01E162C1189162516BC046D6 -:10814000D1620821E1642549C046216524490B69B3 -:10815000C0466365C31D4D33E36525668B68C04625 -:108160006366CB68C046A3661E4BC046E3662767BE -:108170000B23DB01C318A36767670126E31D69337F -:108180006661E7611F730223D364174BC046136512 -:10819000CB69C0465365C31D5133D3652B1D136690 -:1081A0004B69C04653668969C04691660F49C0460F -:1081B000D16616670F23DB01C01890675667D76139 -:1081C000D01D693056610773F0BC7047680E00809F -:1081D000E42C0080642D008090EE204030011800D7 -:1081E0007C2900800055FFFF380118001055FFFF63 -:1081F00090B400211E4ABB231B01D718F973192321 -:10820000DB01D0180124CD231B01D318C1611C70E0 -:1082100033239B01D3189960B97359612F239B01B4 -:10822000D3181960134B5127BF0303633B60846964 -:10823000E4184463043C7C600124E40284630E4C33 -:10824000C046BC60046BC04644628469E4180B4BB2 -:10825000E318FB60036BC0468362436AC046036257 -:10826000C16351649164D165D16690BC70470000D0 -:10827000680E008000002040FC070000FCF7FFFFB4 -:1082800090B400221B49C9231B01C81802710120A8 -:10829000BB231B01CB1858731748031C0027DC1D98 -:1082A000C1341C65231C01373F2FF8D31A651923ED -:1082B000DB01CF1833239B01CB183A619861402032 -:1082C000F860DA611A62CA640A660C48C046C26085 -:1082D0000B48006BC006C00EF8630A480168C04630 -:1082E00019804168C04659808068C046988090BC1B -:1082F00070470000680E008090BC204090EE204047 -:10830000800014404000144000200A49C046087311 -:10831000CB1DFF333A338861C8611870064AC046E6 -:1083200010655066906608705870BB231B01D11809 -:108330000873704728050080680E0080F0B42F494C -:108340002F4AC046116101239B02C81850612D4875 -:10835000C0461062DB00C3185362002313635363EB -:10836000294A2A4FD41DFF34FA3414C7083F3B6111 -:108370001C1F7C61264FC0463960B8617961F86284 -:108380003B637B64BA64FA65224FFE1DF936224DC9 -:10839000EC1D793426625126B6033761246AC04643 -:1083A00074612F671D4D09277F04EC1D75347C60B7 -:1083B0003D601B4CC0463C61E61D75367E61194F21 -:1083C000C0467C603D600F1C0021FF2401341D1C51 -:1083D0008B00FD500131A142FAD3011C002001277E -:1083E000FF028300CD500130B842FAD30020810053 -:1083F000555001308028FAD3F0BC704724A32040A8 -:10840000400118002483204024A920408001180046 -:10841000A803008024A72040680E008024A82040E4 -:10842000A4A8204008040080B8B52C48FDF7BAFD88 -:1084300001202B490A68520C06D20A68120C02D19C -:108440000A68920A00D200200406240E254AD71D8D -:108450000D37002300209D0078510133042BFAD3FF -:1084600001273F055061F860D061F8610023DB43CC -:1084700093613B6113623B6200271B4B8D68C046D2 -:1084800000958D69C0460095002C0BD0DD6BC04671 -:1084900000959D6BC04600955D6BC04600951D6BB9 -:1084A000C04600950137402FE8D300276C460123D2 -:1084B0005B071C4301E0206001370D682B0902D2E5 -:1084C000802FF8D301E0802F03D308494B6E01338E -:1084D0004B66D062B8BC08BC18470000F401FFFF2F -:1084E00000001040680E008000011840A08220406B -:1084F00090B400210E4F0F4A00204C01641AA400D2 -:10850000A318586098601864586410535880CC00C1 -:10851000E4199867DC6201310329EED30649C046AD -:10852000086048608860C860086190BC70470000BF -:10853000AC6621405C2B0080D02C00806421054873 -:10854000C04601630021C943416381630021C163C7 -:1085500001647047680E008080B4012040020A491F -:10856000C04608603C20486088600848C046C86033 -:108570000020074A8700CB68C046DA510130102836 -:10858000F8D380BC70470000E42D0080F42D0080FB -:108590005D4CFFFF1249134867239B01CA1806C0B0 -:1085A0000838114BCA18C160826001610F49104838 -:1085B000A7239B01CA1806C008380E4BCA18C16011 -:1085C000826001610C480D4967239B01C21805C1F7 -:1085D0000839054BC218C8608A60086170470000FE -:1085E000AC1E2140482E0080FC1F0000ACEE204055 -:1085F000342E0080FC2F0000AC3E21405C2E008019 -:1086000090B40021404C00200A0112191923DB010B -:10861000D218D06210635063906301310329F3D301 -:108620003A49C04608634863886320600121E31D1E -:108630005933606019711872987198725971587233 -:10864000D871D872E21D4932117319709073987005 -:1086500051735970D073D8701171117290719072FA -:1086600050715072D071D07218730222E71D6937B1 -:108670003A709973BA7058737870D873F87039710A -:108680003A72B971B97278717A72F971F972397393 -:10869000E31D79331A70B973997078735A70F9734E -:1086A000D9701A711A7299719A7258715A72D97175 -:1086B000DA721973E71D89373A709973B970587374 -:1086C0007A70D973F97039713A72B971B972787177 -:1086D0007A72F971F9723A73E31D99331A70B973AA -:1086E0009A7078735A70F973DA7019711A729971F5 -:1086F000997258715A72D971D9722061E0606061C3 -:10870000A06090BC70470000A01C0080E8190080A9 -:10871000812000020149C04688627047C0001400F1 -:1087200009490A4BC818043BC91808600021C21D3A -:108730002932C261101C01310829F8D3C11F29391F -:108740000020C86170470000680E008084090000A6 -:1087500006480749C0460880488000208880C880B5 -:1087600088600449C046486188617047FFFF000087 -:108770004C2A00806C06008000210648C21D193278 -:10878000C1600161C16101621171FF30013041625C -:10879000704700006C06008009480A4BC04618600C -:1087A0000021C21D4D32C260101C01311429F8D3C2 -:1087B000C11F4D390020C8605860986070470000A4 -:1087C000D80700806C06008000B50B490B48FDF708 -:1087D000EAFB0B48006A0123DB0398430949C046C2 -:1087E00008620948C168012904D1C06F802301686B -:1087F0001943016008BC1847C1BD2140759821404C -:10880000C0001840C0001800680E008000B50F4876 -:10881000C168012904D1C06F8023016899430160B8 -:108820000B4B0C480C4A0021FDF7BFFB0B48418D58 -:10883000013141850021C1850948006A0123DB031C -:1088400018430849C046086208BC1847680E0080F3 -:1088500059BD214075982140B80B000000000080F0 -:10886000C0001840C0001800F0B51B4C1026E0688E -:10887000012808D16088002805D12079002802D17C -:108880001920A06700E0A667002007235B02E51817 -:10889000C143E86169625908A1277F0379600F210C -:1088A0007960E11DB93108710120B8604002B860FB -:1088B00000F04CFA00F0F0FA0420B860072078616C -:1088C0007E601B23DB01E018C08B04231840E862A4 -:1088D000F0BC08BC18470000680E008090B4021C71 -:1088E0000020FF2301339A4208D0012900D1012042 -:1088F000002A01D10223184390BC70471B4AD76855 -:108900001A4B19791C1C37239B01E318012F0DD139 -:108910005788002F0AD100290AD1598B0A0900D3A0 -:1089200002204909E8D301231843E5E7002903D0D1 -:10893000988A8007800FDFE76D235B01D1188A8852 -:10894000FF27013717400A49C98803D04B0A01D3D2 -:108950000320D1E7130A03D30B0A01D30220CBE78C -:10896000D209C9D3C909C7D30120C5E7680E008061 -:10897000081C0080F0B5C1B0012000075249C04674 -:10898000086052484269400DA1214903486050489F -:10899000C06A504B1843002103031B0B4E4C276F3A -:1089A0003D032D0BE71D7937AB421CD0E31D793316 -:1089B0001B6AC046409301239B0703431B68CC00FE -:1089C0006E46335101239B07061D33431B686C44DD -:1089D000636008300131409B834200D83F48030365 -:1089E0001B0BAB42E7D1002001231B0313403C4C7F -:1089F00003D0636A0133636209E0130B03D3236A74 -:108A00000133236203E0374B5C6D01345C65002960 -:108A100009D0031CDC00231C6B445C680130230D6F -:108A200001D28842F5D1304C25686B0C05D2236801 -:108A30001B0C08D12468A30A05D320242B4BC04665 -:108A40005C6200245C62254B234C5126B6032367ED -:108A500033613D6AC04675610225A12676037560C3 -:108A60000125B560E61DB9363571884221D0251C37 -:108A7000C3006C46E4582E6F6B4434605B682C6F07 -:108A8000C04663602B6F08332B673C6AA34202D356 -:108A9000124BC0462B67031CDB006B445C68013043 -:108AA000230D04D35124A4032B6FC046A361884235 -:108AB000DED1100B03D30E490120FDF774FA41B04B -:108AC000F0BC08BC18470000000000B000011440D2 -:108AD0000040144000002040680E008024A7204081 -:108AE000A42A0080A082204000001040C00018008E -:108AF000C94FFFFFF0B40021002307220624474F8F -:108B0000C0463C613A610133202BF9D304253D6115 -:108B100005233B613C613A613C613A613D613B61E7 -:108B20003F4DAB6FDE0802231E40042333433B61FD -:108B3000052333433B61AB6F9E0802231E40042391 -:108B400033433B61052333433B61AB6F5E08022334 -:108B50001E40042333433B61052333433B6102231F -:108B6000AE6F1E40042333433B61052333433B6117 -:108B7000AB6F5D0002231D4004232B433B610523A3 -:108B80002B433B61C50802231D4004232B433B615B -:108B900005232B433B61850802231D4004232B43FF -:108BA0003B6105232B433B61450802231D40042301 -:108BB0002B433B6105232B433B61022505400423E6 -:108BC0002B433B6105232B433B61400002231840AC -:108BD000042303433B6105231843386100253D61AD -:108BE00001233B613D613B6100203D610D4B1B69F1 -:108BF00049001E1C02233340194301233B6101300D -:108C00001028F2D302203861032038613C613A61B8 -:108C10003C613A6138614808F0BC7047800014003C -:108C2000680E008080001440F0B40024072306275B -:108C3000444AC046176113610134202CF9D304263D -:108C4000166105241461176107231361166114610D -:108C5000176113613C4B9B6FDD0802231D402B1CE9 -:108C60003343136125431561374B9B6F9D080223E6 -:108C70001D402B1C3343136125431561324B9B6F01 -:108C80005D0802231D402B1C3343136125431561EE -:108C90002D4B9D6F02231D402B1C33431361254335 -:108CA0001561294B9B6F5D0002231D402B1C334334 -:108CB000136125431561C50802231D402B1C334356 -:108CC000136125431561850802231D402B1C334386 -:108CD000136125431561450802231D402B1C3343B6 -:108CE000136125431561022505402B1C3343136195 -:108CF00025431561400002231840031C33431361D0 -:108D000020431061176107231361166114614C0041 -:108D100000200F21251CCD4002231D4004232B439E -:108D2000136105232B431361013001391028F1D35E -:108D30001761072313611761136103201061F0BCF1 -:108D40007047000080001400680E0080F0B54F4DA1 -:108D5000082102202A1CFDF727F94D4C71235B01E5 -:108D6000E71838801A2102202A1CFDF71DF97880A7 -:108D7000207900280BD000203880E068012810D12D -:108D80004448006801239B02184399020860E06888 -:108D9000012806D16088002803D1F9211220FFF7AD -:108DA00043FF0121C9030020FFF73EFF00257D2678 -:108DB000F60000E001350020FFF79CFE000C01D317 -:108DC000B542F7D3002505E0032109030020FFF792 -:108DD0002BFF01350020FFF78DFE400B01D2B5427D -:108DE000F2D30420FFF786FEFF23E13398430121ED -:108DF00001433888FF230133984203D12F235B01BD -:108E0000194316E0012809D17888012803D12323CA -:108E10005B0119430DE0202319430AE0002808D123 -:108E20007888012803D10B23DB01194301E080235B -:108E300019430420FFF7F8FE092149020020FFF73B -:108E4000F3FEE06800280CD100211B20FFF7ECFEA8 -:108E50001A20FFF74FFE0121C90301431A20FFF733 -:108E6000E3FE002703E0082F01D30F2F08D9381C99 -:108E7000FFF740FE790009191B23DB01C91888831D -:108E80000137202FEFD3F0BC08BC1847EDAF2140CD -:108E9000680E00800000104081B013480168C04691 -:108EA00000914168C04600918168C0460091C16848 -:108EB000C04600910169C04600914169C0460091D9 -:108EC0008169C0460091C169C0460091016AC046EF -:108ED0000091416AC0460091816AC0460091C06A13 -:108EE000C046009001B0704700081440F0B583B050 -:108EF000684D1B23DB01EF18F88B0422024002921D -:108F000071235B01E8180188C04601914088C04682 -:108F10000090002403E0082C01D30F2C08D9201C5A -:108F2000FFF7E8FD610049191B23DB01C91888839D -:108F30000134202CEFD3584CE069002815D0574E4F -:108F40002025013D5349E06930400BD068004018AE -:108F500037239B01C018818B281CFFF765FEE06951 -:108F6000B043E0617608002DEBD10120FFF7C2FD90 -:108F70004849C046F883F88BC20825D3CA68012A3D -:108F800013D10A79002A1FD1498800291CD10199DF -:108F9000434A002905D0012916D1518BC90813D2A3 -:108FA0000FE0518B09090FD20BE00A79002A0BD18F -:108FB0006D235B01C9188A88C988114049090907CE -:108FC00002D104239843F883F88B04210140029ACC -:108FD0001FD0B98B4A0B27D3800925D3FF230198D3 -:108FE0000133984220D000250098012800D10502C5 -:108FF0000198002802D101235B031D43A94213D02D -:109000000020291CFFF710FEBD830020C0436062D2 -:109010000AE0B88B400B07D2092149020020FFF774 -:1090200003FE09204002B883F88BC0082DD31D48E9 -:10903000C76A01980099FFF751FCC207D20F1A497D -:1090400003D00423CD6D2B4303E00423CD6D9D435A -:109050002B1CCB65830803D30223CD6D2B4303E088 -:109060000223CD6D9D432B1CCB65616A81420CD0E0 -:1090700060620E48002A03D0FF212131394303E00A -:10908000FF2321339F43391CC16203B0F0BC08BCED -:1090900018470000680E0080681C008000000080F7 -:1090A000281C008040001440A42A008040001400C6 -:1090B00090B4012220280FD243000F1C07495C18EE -:1090C00037239B01E3189F83824007235B02C91863 -:1090D000101CCA691043C86190BC7047680E0080BC -:1090E0000B4840690B49C98B04220A400A4906D043 -:1090F0000123DB0298430123CA6D1A4305E00123D3 -:10910000DB021843CA6D52085200CA65704700005E -:1091100080001440E81B0080A42A008000B584B0C1 -:10912000FFF7DEFF011C05200090002001AB188036 -:10913000043B58701B2200AB5A80D9800549C96D89 -:10914000C0460291039068460021FDF779F804B00B -:1091500008BC1847A42A00800F480168490C05D2B2 -:109160000168090C06D10068800A03D30B48006827 -:10917000000C01E00A48806C0004000C094B984286 -:1091800005D00233984202D0074B984201D101200A -:1091900070470020FCE7000000001040000018406D -:1091A00000000080049900000799000090B4012499 -:1091B000211C18480268520C06D20268120C02D117 -:1091C0000068800A00D200210906090E124F134AD6 -:1091D00002D03868000C00E0906C0004000C104BCA -:1091E000984208D00233984205D00E4B984202D0E4 -:1091F000023B98420CD1002902D0F86A000C00E032 -:10920000D06C400A00D200242006000E90BC7047AB -:109210000020FBE700001040000018400000008024 -:1092200004990000079900000C480168490C05D218 -:109230000168090C05D10068800A02D308488068DB -:1092400001E00848406C0004000C0021032803D012 -:10925000400801D301207047081CFCE700001040C3 -:109260000000184000000080F0B501271A4C256866 -:10927000FFF772FF031C194A022101261848012B2F -:109280001BD1CB041E605523036000234360066896 -:10929000552E1BD1AA26066043600368AA2B15D160 -:1092A0000923036005230F4FC0463B6003230E4F85 -:1092B000C0463B601160076808E008232360042370 -:1092C0000A4FC0463B60116006602768C0462560B3 -:1092D000381CF0BC08BC18470000204000002440A7 -:1092E0000000224000002A400000264000002840E4 -:1092F00080B5071CFFF730FF012805D11948006829 -:109300001949496B084022E018480168490C05D208 -:109310000168090C06D10068800A03D3144800686C -:10932000000C01E01348806C0004000C124BC018C4 -:1093300008280BD201A31B5C5B009F4405030703B5 -:1093400007070503032002E0012000E000200121BF -:109350003860800700D100210806000E80BC08BCE0 -:1093600018470000346E21400000114000001040FA -:109370000000184000000080FE66FFFFF0B582B0DC -:10938000071C01200190FFF7E7FE012813D1382FB9 -:1093900001D0A82F07D10026F643341CA82F02D1F4 -:1093A000301C0096351C1120000406624462856260 -:1093B0000099C046C16200210848C0460160382FAC -:1093C00001D0A82F05D101210160A82F01D10321CF -:1093D0000160019802B0F0BC08BC1847346E21400F -:1093E000704700007047000090B5071C124C2168C0 -:1093F000124881420BD00023211CE21DC13200E043 -:1094000008C19142FCD32060C820A0806772380157 -:1094100000F018F827720A48C046E060092F00DB08 -:109420000027E019017D01310175E0880130E080FD -:10943000012090BC08BC184700000080EEFFC0D09F -:109440000810000380B4084AD11D89310B7A202B03 -:1094500001D300230B72071C087A431C0B7280187F -:109460009030477280BC704700000080074901229D -:109470001204086802400120002A06D10A68120C72 -:1094800002D10968890A00D200207047000010400C -:1094900090B5071C094C381C211CFCF791FF381CA7 -:1094A00000F00EF80123D84201D1000CE080002129 -:1094B000201CFCF7C5FE90BC08BC1847C4662140C0 -:1094C000F8B5071C797A76480023764C01295DD1DE -:1094D000A288C0460092A1898A4274DAFA7A002AE8 -:1094E00015D07A6C002A12D08A4210D8009A511CEA -:1094F000A180A188C0464181786C6B4EC046F08047 -:10950000A06A5823796C59434018C11A28E0228870 -:1095100001321204120C22808A4200DB23800022D6 -:10952000002969DD5F4CA46A5E4B1D8858236B439C -:10953000E318DE1D013601239B0733431B681B061E -:1095400015D15849009A01328A808A88C0464281E2 -:1095500008880130544EC046F080582068432118D6 -:10956000381C00F039FBF0880004001495E04D4BE6 -:1095700001352D042D0C1D808D4201DB00251D8041 -:109580000132120412149142CEDC81E0E188E289BA -:10959000914218DAF97A00292FD0796C4904490CE4 -:1095A00079642AD0E289914227D8E1880131E180AB -:1095B000E188C04681810123DB03786C18433A4E71 -:1095C000C046F08000E063E0E06A796C4B00591817 -:1095D00049014018C11F5939381C00F00FFBE06ADF -:1095E000796C4A0052185201801801390904090C9B -:1095F000603800F089FBB6E74AE061880131090470 -:10960000090C6180E289914200DB63800021002A1D -:109610003EDD244CE46A234B5D886B005B195B01E3 -:10962000E318DE1D013601239B0733431B681B062D -:1096300020D11C4EF1880131F180F188C046818132 -:1096400070880123DB03013018431749C046C880E6 -:109650006800401940012118381C00F0CFFA7188C9 -:109660004A0052185201F06A801800F04DFB0E4972 -:10967000C88879E70B4B01352D042D0C5D80954290 -:1096800001DB00255D800131090409148A42C2DC36 -:109690000189013101810020C043F8BC08BC184792 -:1096A0004C2B00804C2A0080C4662140F0B4061C7C -:1096B0000123DB0333400124444F0020444A454D3D -:1096C000D11D3931002B41D0E303F31A73D0EE8959 -:1096D0009E4271D3EE88002E6DD0ED6A5E1E73003F -:1096E0009B195B01ED18AE683606360E032E02D0CC -:1096F000CE890136CE814035AD8BAD00354E766AD0 -:10970000C0467051558901355581324EF26AD218E2 -:109710009060F26AD2189063F26AD218D063F26A4B -:10972000D2181064F26AD2185064F26AD2189064A7 -:10973000F26AD218D064F0880138F080F088C04610 -:1097400088812449002839D14F8037E0002E38D94C -:10975000AB89B34230D3AB88002B2CD05389013373 -:1097600053812A1CAD6A5823013E7343ED18AE683D -:109770003606360E032E02D0CE890136CE81A86081 -:10978000956AED18A863956AED18E863956AED1877 -:109790002864956AED186864956AED18A864956A5E -:1097A000EB18D8649088013890809088C046488132 -:1097B000002803D101E004E003E01780201CF0BC86 -:1097C0007047CA890132CA81F9E70000FFFF000033 -:1097D0000C2B00804C2A008000B50021416010490C -:1097E0004A68002A10D1CA68002A04D0CA1D19325A -:1097F0001279002A08D04A69002A0BD18861486191 -:1098000000F010F808BC18474A69002A02D18861A4 -:109810004861F7E78A69C04650608861F2E7000056 -:109820006C060080B0B52A48406900284CD0082258 -:10983000C1680A400027274BD91DB931002A11D031 -:109840000422254CC0460C61244CC0464C62244C7A -:10985000C0468C62234CC046CC62234CC0460C638D -:109860004F6312E00522214CC0460C61204CC046DB -:109870004C62204CC0468C621F4CC046CC621F4CD0 -:10988000C0460C631E4CC0464C634024CC824F83C0 -:109890001C4F0021002A0CD98C0005196D6A7D40EF -:1098A000E418FF340134656201319142F4D3102988 -:1098B00007D28A00D218FF320132576201311029D3 -:1098C000F7D3114900F022F8B0BC08BC18470000DB -:1098D0006C060080ACAB20402801400001234567A6 -:1098E00089ABCDEFFEDCBA987654321020014000EF -:1098F00067452301EFCDAB8998BADCFE1032547670 -:10990000C3D2E1F03636363630802040B0B50F1C79 -:10991000154DE91DC931154C231C154A0020FCF7D3 -:1099200044FBE91DFF311E31231C0D1C114A01208F -:10993000FCF73BFB291C231C0E4A0020FCF735FBDF -:10994000391C231C0C4A0120FCF72FFB00210B487B -:10995000C21D193251710121FF3001304162081CD2 -:10996000B0BC08BC18470000ACAB20407508FFFF36 -:109970002800030040000200140007006C0600806D -:10998000F0B5374A506901239B0708301843006837 -:109990000106090E334B012949D11F68191C324BAE -:1099A0009F4204D1FFF73EFFF0BC08BC18470023DC -:1099B0009F00CC595569EF193C610133052BF7D352 -:1099C000000A0002022318435369C0469860506998 -:1099D0000823C2681340254FFA1DB932002B02D06C -:1099E0000423234C01E00523224CC046146140248B -:1099F000D48200245483204C0022002B0CD99500E3 -:109A00004619766A6640ED19FF3501356E620132FE -:109A10009A42F4D3102A07D29300DB19FF330133A3 -:109A20005C620132102AF7D3FFF770FFBCE7002118 -:109A30008F00DC595569EF197C6201310529F7D394 -:109A4000000A0002032318435169C0468860506928 -:109A50004068C04650610948FCF7A4FAA4E700003A -:109A60006C0600803080204067452301ACAB20406D -:109A700028014000200140005C5C5C5C1131FFFF6C -:109A8000F0B5071C3B483C4C08212060A180002019 -:109A90002081E18060813948C046E0603848C04696 -:109AA00020613848C04660613748C046A0613748E9 -:109AB000C046E0613648C04620623648C046606213 -:109AC0003548C046A0623548C046E0623448C046CA -:109AD00020633448C04660633348C046A0633348BF -:109AE000C046E0633248C04620643248C0466064E5 -:109AF0003148C046A0643148C046E0643048C046A2 -:109B000020653049C868020489694A40E31D7933F9 -:109B10000904C943C0434840E11DB931DA63086014 -:109B2000294D211C2B1C294A0020FCF73EFA284A0B -:109B3000E11DB53101202B1C0E1CFCF736FA244A1E -:109B40000020311C2B1CFCF730FAE11D4D312B1C81 -:109B5000204A0120FCF729FAE01D5D300168002948 -:109B6000FCD0606DC0463865206EC0467865F0BC9C -:109B700008BC1847800008008CB92040818148BD8E -:109B80007956238C930C82951D0E12CF9B3BC0E916 -:109B9000E6557C8299F67802D1D72573728C331002 -:109BA000F703F1426C9B4AA7828E23A990B1828E63 -:109BB000DC3FFB2900622245882BF1851261D173BD -:109BC0006EB11116088320407508FFFF5400030092 -:109BD000080002001400030080B50F1C391C00F0BF -:109BE00033F8381CFFF74CFF03480189013101812C -:109BF00080BC08BC184700000C2B008090B5041CEA -:109C00000F1C201C391C00F01FF8E068010EFF2219 -:109C100012040240120A1143FF22120202401202F1 -:109C200011430006084338652069C04678656069BD -:109C3000C046B865034801890131018190BC08BC68 -:109C4000184700000C2B008090B5002293001F18CD -:109C5000BF695B185F620132052AF7D3077AFB08F8 -:109C600003D30023920052181362076BC0468F6320 -:109C7000C76AC046CF63876BC0460F64476BC04658 -:109C80004F64076CC0468F64C26BC046CA64C2880A -:109C9000C0460A80827A1206037A1B041A43C388DC -:109CA0001B021A43437ADB071A438A60171C837A24 -:109CB0005A0805D314221C1CA30802D2152200E066 -:109CC0000022007A430810D3C00802D38820104332 -:109CD00001E0802010433A0A120201231A43C860AF -:109CE0008A60081CFFF778FD05E0380A00020323AC -:109CF00018438860CA60034801890131018190BC22 -:109D000008BC18470C2B0080F0B4026D144C151CD5 -:109D1000E769BD40131C266AF3405D402E1C456D6B -:109D2000BD406E402B1C351CFD402F1CBB00656ADE -:109D3000EB58002B08D0236901379F4200D300273E -:109D4000BE00AE59002EF7D1A469A2401143054BC5 -:109D50001943BA00A95040308783F0BC7047000017 -:109D60004C2A00800000008080B4002200230029DB -:109D700005D907787A40013001338B42F9D3D043BB -:109D80000006000E80BC7047F0B5071C0024FF26BB -:109D90000936201C00F09AF800F0B8F9051C00F014 -:109DA000C7FA3D70281C01370134B442F1D3F0BC2E -:109DB00008BC184780B500F093F800F0A7F9071C1D -:109DC00000F0B6FA380AF6D380BC08BC1847F3B5E1 -:109DD00082B002984102532000F064F800F0A8FA23 -:109DE000FFF7E8FF0024002001902E2000900025BE -:109DF00000270298012804D10098844201D300264C -:109E000009E00198411C019100F060F800F07EF932 -:109E1000061C00F08DFAF800864035430134013706 -:109E2000042FE6D3039920C10391FF2309339C42F9 -:109E3000DDD304B0F0BC08BC1847F0B5041C0F1CFF -:109E4000012C2AD01648C06F4023016819430160D5 -:109E5000002620CFB100842000F024F8281C00F058 -:109E6000DFF9280A00F0DCF9280C00F0D9F9280EF7 -:109E700000F0D6F900F05CFA0136422EE9D3610217 -:109E8000832000F00FF800F053FAFFF793FF044827 -:109E9000C06F4023016899430160F0BC08BC1847BB -:109EA000680E008090B5041C0F1C00F059FA201CAD -:109EB00000F0B6F9380C00F0B3F9380A00F0B0F948 -:109EC000381C00F0ADF990BC08BC184700B5011C67 -:109ED0005420FFF7E7FF002000F0A2F908BC184764 -:109EE00000B500F03DFA572000F09AF908BC184779 -:109EF00090B5084FFA6F202314689C431460231C0C -:109F0000FFF765FFF86F202301681943016090BCDB -:109F100008BC1847680E008090B5084FFA6F2023E0 -:109F200014689C431460231CFFF787FFF86F2023FD -:109F300001681943016090BC08BC1847680E008096 -:109F4000F0B5041C0F1C184EF06F202301689943D4 -:109F5000016061025320FFF7A5FF00F0E9F9FFF768 -:109F600029FFF81D0530012C03D1222F01D3002732 -:109F70000FE0441CFFF7AAFF00F0C8F8071C00F030 -:109F8000D7F9201CFFF7A2FF00F0C0F8051C00F075 -:109F9000CFF9F06F2023016819430160280238438C -:109FA000F0BC08BC18470000680E0080F0B5C2B0D5 -:109FB000141C0D1C071C012F2FD07902194EF06FB5 -:109FC000202302689A4302605320FFF76BFF00F0E2 -:109FD000AFF9FFF7EFFE6846FFF7D6FE6A46E81DC9 -:109FE00005301454210A68444170684600990C30C9 -:109FF000FFF7BAFE02AB18700020587068460C21BB -:10A00000FFF7B2FE02AB58706946381CFFF715FF28 -:10A01000F06F202301681943016042B0F0BC08BC16 -:10A0200018470000680E0080FFB5C2B0071C012F62 -:10A0300001D1012036E06B460020C44310C301303B -:10A040004228FBD368460C30031C0024002A0AD99E -:10A050000E88C04606700E883612467002300231F5 -:10A0600002349442F4D30092181C111CFFF77CFEBA -:10A07000041C0020019002AB1C7058709D70684653 -:10A080000C21FFF771FE02AB5870459B1D062D0E8B -:10A09000AC4203D16946381CFFF73EFF0120AC42B9 -:10A0A00000D1002046B0F0BC08BC1847B0B5C2B023 -:10A0B0000F1C4102144CE06F202302689A43026097 -:10A0C0005320FFF7EFFE00F033F9FFF773FE684609 -:10A0D000FFF75AFEE06F20230168194302AD0160CB -:10A0E0006D78002402AB5C7068460C21FFF73CFEE3 -:10A0F000A84202D10098874201D3201C00E0012031 -:10A1000042B0B0BC08BC1847680E0080FC466047EF -:10A110000000A0E3B4229FE5B4329FE50110A0E364 -:10A12000001082E5001082E50010A0E3001082E537 -:10A13000001082E5001093E5810380E10110A0E3A7 -:10A14000001082E5001082E50010A0E3001082E517 -:10A15000001082E5001093E5010380E10110A0E307 -:10A16000001082E5001082E50010A0E3001082E5F7 -:10A17000001082E5001093E5810280E10110A0E368 -:10A18000001082E5001082E50010A0E3001082E5D7 -:10A19000001082E5001093E5010280E10110A0E3C8 -:10A1A000001082E5001082E50010A0E3001082E5B7 -:10A1B000001082E5001093E5810180E10110A0E329 -:10A1C000001082E5001082E50010A0E3001082E597 -:10A1D000001082E5001093E5010180E10110A0E389 -:10A1E000001082E5001082E50010A0E3001082E577 -:10A1F000001082E5001093E5810080E10110A0E3EA -:10A20000001082E5001082E50010A0E3001082E556 -:10A21000001082E5001093E5010080E11EFF2FE1B0 -:10A22000FC466047A4219FE5A8319FE5A013A0E16B -:10A23000001083E50110A0E3001082E5001082E524 -:10A240000010A0E3001082E5001082E52013A0E1D9 -:10A25000001083E50110A0E3001082E5001082E504 -:10A260000010A0E3001082E5001082E5A012A0E13A -:10A27000001083E50110A0E3001082E5001082E5E4 -:10A280000010A0E3001082E5001082E52012A0E19A -:10A29000001083E50110A0E3001082E5001082E5C4 -:10A2A0000010A0E3001082E5001082E5A011A0E1FB -:10A2B000001083E50110A0E3001082E5001082E5A4 -:10A2C0000010A0E3001082E5001082E52011A0E15B -:10A2D000001083E50110A0E3001082E5001082E584 -:10A2E0000010A0E3001082E5001082E5A010A0E1BC -:10A2F000001083E50110A0E3001082E5001082E564 -:10A300000010A0E3001082E5001082E50010A0E13B -:10A31000001083E50110A0E3001082E5001082E543 -:10A320000010A0E3001082E5001082E51EFF2FE17F -:10A33000FC466047A0309FE50110A0E3001083E5D4 -:10A34000001083E5001083E5001083E5001083E52D -:10A35000001083E5001083E5001083E51EFF2FE168 -:10A36000FC46604770309FE50010A0E3001083E5D5 -:10A37000001083E5001083E5001083E5001083E5FD -:10A38000001083E5001083E5001083E51EFF2FE138 -:10A39000FC46604734209FE53C309FE50010A0E379 -:10A3A000001082E5001082E50110A0E3001083E5B3 -:10A3B000001083E5001083E5001083E5001083E5BD -:10A3C000001083E5001083E5001083E51EFF2FE1F8 -:10A3D000F80018400401184000011840FC00184023 -:10A3E00080B500F00CF80027381C00F047F8781C06 -:10A3F00007043F0C0C2FF7DD80BC08BC18471D4834 -:10A4000002681D498B69D218026002668A6A436835 -:10A410009B184360934202D2826801328260C26814 -:10A420000B6AD218C2604269CB68D2184261C26915 -:10A430008B68D218C26102690B69D2180261826905 -:10A440000B68D2188261026BCB69D21802634A6A28 -:10A45000436B9B184363934202D2826B0132826347 -:10A46000C26B4B69D218C263026CC96A511801648D -:10A4700070470000A42A00800008144088B569468F -:10A4800000F017F881080AD00020002907D900221F -:10A490008300009FC046FA5001308842F8D388BC40 -:10A4A00008BC184700B500F004F80004000C08BC14 -:10A4B0001847002200280AD001280AD002280CD010 -:10A4C000032802D107481C220860101C7047064868 -:10A4D00004E0064850220860F7E705486822086053 -:10A4E000F3E7000008832040A42A00800C2B0080A2 -:10A4F000A082204080B40322C280154AC0468260F8 -:10A50000144A12880132C2600020134A135CC0460C -:10A510000B70013001310828F8D320220A70013174 -:10A5200000200E4B1F5CC0460F700130013108281F -:10A53000F8D30A7001310020094A135CC0460B7041 -:10A54000013001310828F8D30020087080BC704722 -:10A5500008100003680E00807C04008085040080E1 -:10A560008E04008000B501230A48C11D89314B705B -:10A5700000220A7064218030C182018343837D21DF -:10A58000C9008183C28304480122002100F08EFBB0 -:10A5900008BC1847680E0080B522FFFF00B5FFF722 -:10A5A000E1FF13480222002100F080FB0123D84282 -:10A5B0000AD11048C11D3931CA880132CA80817957 -:10A5C00001318171FDF770F90B48C068012805D190 -:10A5D0000A487D22D200002100F068FB0848FBF702 -:10A5E000E1FC08482822002100F060FB08BC184765 -:10A5F0007921FFFFA0822040680E0080A57B2140CA -:10A60000952CFFFF5903FFFF00B510200F49C046EE -:10A6100008600F4A0F486421FBF7C6FC0E48012270 -:10A62000120401680A400821002A05D10268120CB0 -:10A6300007D10068800A04D30848C046C16008BC3E -:10A6400018470748C0460164F9E70000000000B061 -:10A65000A555FFFF7C290080000010404001180034 -:10A6600000000080F8B527480122120401680A4062 -:10A670000721002A05D10268120C06D10068800A61 -:10A6800003D32148C046C16002E02048C0460164AF -:10A690001F48FBF787FC1F48C16BFF29FCD1816B6A -:10A6A000426B161C0F1C1C4C102360691843606120 -:10A6B000A16999431D04A161E860A069C0462861B1 -:10A6C000164A17496420FBF76FFC164AC0460092F1 -:10A6D000154B0020391C321CFBF76EFC1348C16877 -:10A6E0000829FCD11248FBF75DFC102360699843F0 -:10A6F0006061E8600120E3231B01E118C871F8BC28 -:10A7000008BC1847000010404001180000000080FD -:10A710000402FFFF00011840680E00802055FFFF73 -:10A72000B5B621406400300244802040400118400A -:10A73000F401FFFF00B5FDF701FF0648FBF732FC0F -:10A74000FDF7D6FEFEF704F8FEF716F8FEF724F83C -:10A7500008BC18479103FFFF90B5FDF76BFC344F21 -:10A760000024F968F81D793001290FD13149C0461C -:10A77000F9673149C04601603049C0460C604C6001 -:10A780008C60CC600C614C618C6104E0F91D7D3102 -:10A79000F96712C008380068602301681943016036 -:10A7A000F86F2023016819430160F86F40230168A6 -:10A7B0009943016000F054F8FDF74EFC00F05EF99B -:10A7C000FDF773F8FFF70CFEFDF72EFEFDF7B6FD63 -:10A7D000FDF7C2FEFDF754FDFDF70AFDFDF794FD00 -:10A7E00000F01AFAFDF79CFFFDF70AFFFDF7D2FE15 -:10A7F000FDF73CFCFBF7DCFAFFF79CFF71235B01E4 -:10A80000F8180472447207235B02F8180463F868AE -:10A81000012802D1A820FEF7B1FD0948C0464462D4 -:10A8200000F018FA0748FBF7BDFB90BC08BC1847BE -:10A83000680E008000011140040111400001110068 -:10A84000C0001800158F214000B50448FBF7AAFB93 -:10A85000FDF75EFFFDF724FC08BC18471599214061 -:10A86000FA210348C046416240214162704700001E -:10A87000C000180007484169074B194341618269CC -:10A880009A43826101221205D1608069C04610613D -:10A8900070470000680E0080FEAF9A1000B50248B5 -:10A8A000FBF780FB08BC1847C857FFFFF0B5244CE6 -:10A8B00001210904206801400920224E224D00296F -:10A8C00005D12168090C04D12168890A01D3F060FF -:10A8D00000E028641D48FBF765FB1D4F1D49886992 -:10A8E00001308861387A002802D1787A00281FD098 -:10A8F0001948FBF757FB1948FBF754FB0028FAD11E -:10A90000387A002802D01648FBF74CFB01210904D5 -:10A91000206801401420002905D12168090C04D1C8 -:10A920002168890A01D3F06001E02864FFE7FEE7AF -:10A93000FFF765FD0B48FBF735FBFFF7AFFFCDE7F2 -:10A940000000104040011800000000800402FFFFDA -:10A95000881C008008832040F401FFFFB507FFFF3B -:10A960000000FFFF999F21400020074A01210905AF -:10A970005061C860D061C8610323DB04034A012130 -:10A98000D1635860FCE70000680E0080C00018002A -:10A9900080B5C0B0012200210A20FCF7D1FF071CBE -:10A9A000FF2F28D06946FF22381C0132FDF754F9E9 -:10A9B000FF23013398421BD10D98000918D3381C8E -:10A9C000FDF78DF80E4901221204086802400D4877 -:10A9D00005D10A68120C06D10968890A03D30A490D -:10A9E000C046C86002E00949C0460864FFF7BCFFE2 -:10A9F000381CFDF774F840B080BC08BC1847000054 -:10AA00000000104007800000400118000000008096 -:10AA100000B5174901221204086802400620002AE6 -:10AA200005D10A68120C06D10968890A03D31149B5 -:10AA3000C046C86002E01049C04608640320FEF723 -:10AA4000D3FCFBF70DFF01231843FBF7E7FFFFF7EC -:10AA500083FEFFF79DFFFFF705FEFFF7F5FEFFF70B -:10AA600009FFFFF79BFDFFF721FF08BC1847000017 -:10AA7000000010404001180000000080F0B4464A79 -:10AA80000121C903454D1923DB01EC18A161288878 -:10AA90004004434BC018871A0420AF60414EC046A3 -:10AAA000B0610820C8234343BB4221D941003D4E39 -:10AAB000C0463161B66920239B1B3A4EC046F36104 -:10AAC000103B33628B00FF1A4008814217D3B82332 -:10AAD0004343BB4208D9411E324BC0469981D981BC -:10AAE0004000023858610AE001308142EFD206E0AE -:10AAF0002C4EB3690133B36140008842D2D92A4950 -:10AB00000020A3699B0807D0284B8700CB51A76979 -:10AB1000BF0801308742F8D82249C0468A628C8932 -:10AB200058206043871800200022002C0ADD58239B -:10AB300043438C6AE31801300004000C9A608B894F -:10AB40008342F4DCCF62CC89600000194001C71950 -:10AB50000020002C0BDD43001B185B01CC6AE318BE -:10AB600001300004000C9A60CB898342F3DC4F6211 -:10AB700000200B69002B07D987004B6AC046DA51C9 -:10AB80000B6901308342F7D8496A800008180438FD -:10AB90002861F0BC70470000B0BE2140680E008004 -:10ABA000000020404C2A00800000204000ADDE0064 -:10ABB0000A4801231B06416999431A094161D16082 -:10ABC0000021A122520391611B23DB01C018816186 -:10ABD000012000065905086070470000680E0080DB -:10ABE00080B4021C0B481B23DB01C3189A610123AC -:10ABF0001B0642691A43426187699F4301231B0573 -:10AC00008761DA608069C0461861A12040038161D4 -:10AC100080BC7047680E008080B5FFF7C9FF002038 -:10AC200000F020F800200949002203015F183323B7 -:10AC30009B01FB189A6201300B28F6D304480122CD -:10AC4000002100F033F880BC08BC1847680E008073 -:10AC50001D3EFFFF00B5024800F004F808BC18478D -:10AC6000A861000080B4012212050F4BA121490305 -:10AC700000280ED0C861181C59695301194341615D -:10AC800087699F438761D1608069C046106180BC3D -:10AC90007047181C5F6901235B069F434761D760BB -:10ACA0000020C861F3E70000680E0080B0B4071C04 -:10ACB0000020174C03011D1933239B01EB189D6ADB -:10ACC000BD4205D11D6B954202D1DB6A8B421CD07F -:10ACD00001300B28EED3002003011D1933239B0103 -:10ACE000EB189B6A002B09D103011C1933239B012C -:10ACF000E3181A63D9625A639F6202E001300B289D -:10AD0000EAD30B2801D10020C043B0BC704700003B -:10AD1000680E008090B4011C00220120164F01E053 -:10AD2000002A07D10301DC1933239B01E3189B6937 -:10AD30008B4211D10201D21933239B01D218936A9D -:10AD4000C0469361D36AC046D361136BC046136299 -:10AD5000536BC0465362012201300B28E0D3074BEE -:10AD6000002A02D19A688A4203D10021996090BCDE -:10AD700070470020C043FAE7680E0080E81B00809F -:10AD80000B2817DA0C4901235B068A691343012259 -:10AD900012058B6113610001401833239B01C01819 -:10ADA000036BC0464363530188699843886110610F -:10ADB000012070470020FCE7680E008090B4084A2C -:10ADC000D0690021074FD369834202D9FC1A2018A9 -:10ADD00000E0C01A0918181CB942F4D990BC704799 -:10ADE00000201440A861000090B5071C0024002F2B -:10ADF00004D3FFF7E3FF0134BC42FAD990BC08BC8E -:04AE000018470000EF -:00000001FF -/* ver 03.001.008 */ -/* - * Copyright 1999-2004 3Com Corporation. All Rights Reserved. - * - * Redistribution and use in source and binary forms of the 3c990img.h - * microcode software are permitted provided that the following conditions - * are met: - * 1. Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistribution 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. The name of 3Com may not be used to endorse or promote products - * derived from this software without specific prior written permission - * - * THIS SOFTWARE IS PROVIDED BY 3COM ``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 AUTHOR 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. - * - * USER ACKNOWLEDGES AND AGREES THAT PURCHASE OR USE OF THE 3c990img.h - * MICROCODE SOFTWARE WILL NOT CREATE OR GIVE GROUNDS FOR A LICENSE BY - * IMPLICATION, ESTOPPEL, OR OTHERWISE IN ANY INTELLECTUAL PROPERTY RIGHTS - * (PATENT, COPYRIGHT, TRADE SECRET, MASK WORK, OR OTHER PROPRIETARY RIGHT) - * EMBODIED IN ANY OTHER 3COM HARDWARE OR SOFTWARE EITHER SOLELY OR IN - * COMBINATION WITH THE 3c990img.h MICROCODE SOFTWARE - */ diff --git a/firmware/Makefile b/firmware/Makefile deleted file mode 100644 index e297e1b52636..000000000000 --- a/firmware/Makefile +++ /dev/null @@ -1,237 +0,0 @@ -# -# kbuild file for firmware/ -# - -# Create $(fwabs) from $(CONFIG_EXTRA_FIRMWARE_DIR) -- if it doesn't have a -# leading /, it's relative to $(srctree). -fwdir := $(subst $(quote),,$(CONFIG_EXTRA_FIRMWARE_DIR)) -fwabs := $(addprefix $(srctree)/,$(filter-out /%,$(fwdir)))$(filter /%,$(fwdir)) - -fw-external-y := $(subst $(quote),,$(CONFIG_EXTRA_FIRMWARE)) - -# There are three cases to care about: -# 1. Building kernel with CONFIG_FIRMWARE_IN_KERNEL=y -- $(fw-shipped-y) should -# include the firmware files to include, according to .config -# 2. 'make modules_install', which will install firmware for modules, and -# _also_ for the in-kernel drivers when CONFIG_FIRMWARE_IN_KERNEL=n -# 3. 'make firmware_install', which installs all firmware, unconditionally. - -# For the former two cases we want $(fw-shipped-y) and $(fw-shipped-m) to be -# accurate. In the latter case it doesn't matter -- it'll use $(fw-shipped-all). -# But be aware that the config file might not be included at all. - -ifdef CONFIG_ACENIC_OMIT_TIGON_I -acenic-objs := acenic/tg2.bin -fw-shipped- += acenic/tg1.bin -else -acenic-objs := acenic/tg1.bin acenic/tg2.bin -endif -fw-shipped-$(CONFIG_ACENIC) += $(acenic-objs) -fw-shipped-$(CONFIG_ADAPTEC_STARFIRE) += adaptec/starfire_rx.bin \ - adaptec/starfire_tx.bin -fw-shipped-$(CONFIG_ATARI_DSP56K) += dsp56k/bootstrap.bin -fw-shipped-$(CONFIG_ATM_AMBASSADOR) += atmsar11.fw -fw-shipped-$(CONFIG_BNX2X) += bnx2x/bnx2x-e1-6.2.9.0.fw \ - bnx2x/bnx2x-e1h-6.2.9.0.fw \ - bnx2x/bnx2x-e2-6.2.9.0.fw -fw-shipped-$(CONFIG_BNX2) += bnx2/bnx2-mips-09-6.2.1a.fw \ - bnx2/bnx2-rv2p-09-6.0.17.fw \ - bnx2/bnx2-rv2p-09ax-6.0.17.fw \ - bnx2/bnx2-mips-06-6.2.1.fw \ - bnx2/bnx2-rv2p-06-6.0.15.fw -fw-shipped-$(CONFIG_CASSINI) += sun/cassini.bin -fw-shipped-$(CONFIG_CHELSIO_T3) += cxgb3/t3b_psram-1.1.0.bin \ - cxgb3/t3c_psram-1.1.0.bin \ - cxgb3/ael2005_opt_edc.bin \ - cxgb3/ael2005_twx_edc.bin \ - cxgb3/ael2020_twx_edc.bin -fw-shipped-$(CONFIG_DRM_MGA) += matrox/g200_warp.fw matrox/g400_warp.fw -fw-shipped-$(CONFIG_DRM_R128) += r128/r128_cce.bin -fw-shipped-$(CONFIG_DRM_RADEON) += radeon/R100_cp.bin radeon/R200_cp.bin \ - radeon/R300_cp.bin radeon/R420_cp.bin \ - radeon/RS690_cp.bin radeon/RS600_cp.bin \ - radeon/R520_cp.bin \ - radeon/R600_pfp.bin radeon/R600_me.bin \ - radeon/RV610_pfp.bin radeon/RV610_me.bin \ - radeon/RV630_pfp.bin radeon/RV630_me.bin \ - radeon/RV620_pfp.bin radeon/RV620_me.bin \ - radeon/RV635_pfp.bin radeon/RV635_me.bin \ - radeon/RV670_pfp.bin radeon/RV670_me.bin \ - radeon/RS780_pfp.bin radeon/RS780_me.bin \ - radeon/RV770_pfp.bin radeon/RV770_me.bin \ - radeon/RV730_pfp.bin radeon/RV730_me.bin \ - radeon/RV710_pfp.bin radeon/RV710_me.bin -fw-shipped-$(CONFIG_DVB_AV7110) += av7110/bootcode.bin -fw-shipped-$(CONFIG_DVB_TTUSB_BUDGET) += ttusb-budget/dspbootcode.bin -fw-shipped-$(CONFIG_E100) += e100/d101m_ucode.bin e100/d101s_ucode.bin \ - e100/d102e_ucode.bin -fw-shipped-$(CONFIG_MYRI_SBUS) += myricom/lanai.bin -fw-shipped-$(CONFIG_PCMCIA_PCNET) += cis/LA-PCM.cis cis/PCMLM28.cis \ - cis/DP83903.cis cis/NE2K.cis \ - cis/tamarack.cis cis/PE-200.cis \ - cis/PE520.cis -fw-shipped-$(CONFIG_PCMCIA_3C589) += cis/3CXEM556.cis -fw-shipped-$(CONFIG_PCMCIA_3C574) += cis/3CCFEM556.cis -fw-shipped-$(CONFIG_SERIAL_8250_CS) += cis/MT5634ZLX.cis cis/RS-COM-2P.cis \ - cis/COMpad2.cis cis/COMpad4.cis \ - cis/SW_555_SER.cis cis/SW_7xx_SER.cis \ - cis/SW_8xx_SER.cis -fw-shipped-$(CONFIG_PCMCIA_SMC91C92) += ositech/Xilinx7OD.bin -fw-shipped-$(CONFIG_SCSI_ADVANSYS) += advansys/mcode.bin advansys/38C1600.bin \ - advansys/3550.bin advansys/38C0800.bin -fw-shipped-$(CONFIG_SCSI_QLOGIC_1280) += qlogic/1040.bin qlogic/1280.bin \ - qlogic/12160.bin -fw-shipped-$(CONFIG_SCSI_QLOGICPTI) += qlogic/isp1000.bin -fw-shipped-$(CONFIG_INFINIBAND_QIB) += qlogic/sd7220.fw -fw-shipped-$(CONFIG_SND_KORG1212) += korg/k1212.dsp -fw-shipped-$(CONFIG_SND_MAESTRO3) += ess/maestro3_assp_kernel.fw \ - ess/maestro3_assp_minisrc.fw -fw-shipped-$(CONFIG_SND_SB16_CSP) += sb16/mulaw_main.csp sb16/alaw_main.csp \ - sb16/ima_adpcm_init.csp \ - sb16/ima_adpcm_playback.csp \ - sb16/ima_adpcm_capture.csp -fw-shipped-$(CONFIG_SND_YMFPCI) += yamaha/ds1_ctrl.fw yamaha/ds1_dsp.fw \ - yamaha/ds1e_ctrl.fw -fw-shipped-$(CONFIG_SND_WAVEFRONT) += yamaha/yss225_registers.bin -fw-shipped-$(CONFIG_TEHUTI) += tehuti/bdx.bin -fw-shipped-$(CONFIG_TIGON3) += tigon/tg3.bin tigon/tg3_tso.bin \ - tigon/tg3_tso5.bin -fw-shipped-$(CONFIG_TYPHOON) += 3com/typhoon.bin -fw-shipped-$(CONFIG_USB_EMI26) += emi26/loader.fw emi26/firmware.fw \ - emi26/bitstream.fw -fw-shipped-$(CONFIG_USB_EMI62) += emi62/loader.fw emi62/bitstream.fw \ - emi62/spdif.fw emi62/midi.fw -fw-shipped-$(CONFIG_USB_KAWETH) += kaweth/new_code.bin kaweth/trigger_code.bin \ - kaweth/new_code_fix.bin \ - kaweth/trigger_code_fix.bin -ifdef CONFIG_FIRMWARE_IN_KERNEL -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_MPR) += keyspan/mpr.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA18X) += keyspan/usa18x.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA19) += keyspan/usa19.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA19QI) += keyspan/usa19qi.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA19QW) += keyspan/usa19qw.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA19W) += keyspan/usa19w.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA28) += keyspan/usa28.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA28XA) += keyspan/usa28xa.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA28XB) += keyspan/usa28xb.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA28X) += keyspan/usa28x.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA49W) += keyspan/usa49w.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA49WLC) += keyspan/usa49wlc.fw -else -fw-shipped- += keyspan/mpr.fw keyspan/usa18x.fw keyspan/usa19.fw \ - keyspan/usa19qi.fw keyspan/usa19qw.fw keyspan/usa19w.fw \ - keyspan/usa28.fw keyspan/usa28xa.fw keyspan/usa28xb.fw \ - keyspan/usa28x.fw keyspan/usa49w.fw keyspan/usa49wlc.fw -endif -fw-shipped-$(CONFIG_USB_SERIAL_TI) += ti_3410.fw ti_5052.fw \ - mts_cdma.fw mts_gsm.fw mts_edge.fw -fw-shipped-$(CONFIG_USB_SERIAL_EDGEPORT) += edgeport/boot.fw edgeport/boot2.fw \ - edgeport/down.fw edgeport/down2.fw -fw-shipped-$(CONFIG_USB_SERIAL_EDGEPORT_TI) += edgeport/down3.bin -fw-shipped-$(CONFIG_USB_SERIAL_WHITEHEAT) += whiteheat_loader.fw whiteheat.fw \ - # whiteheat_loader_debug.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_PDA) += keyspan_pda/keyspan_pda.fw -fw-shipped-$(CONFIG_USB_SERIAL_XIRCOM) += keyspan_pda/xircom_pgs.fw -fw-shipped-$(CONFIG_USB_VICAM) += vicam/firmware.fw -fw-shipped-$(CONFIG_VIDEO_CPIA2) += cpia2/stv0672_vp4.bin -fw-shipped-$(CONFIG_YAM) += yam/1200.bin yam/9600.bin - -fw-shipped-all := $(fw-shipped-y) $(fw-shipped-m) $(fw-shipped-) - -quiet_cmd_ihex = IHEX $@ - cmd_ihex = $(OBJCOPY) -Iihex -Obinary $< $@ - -quiet_cmd_ihex2fw = IHEX2FW $@ - cmd_ihex2fw = $(objtree)/$(obj)/ihex2fw $< $@ - -quiet_cmd_h16tofw = H16TOFW $@ - cmd_h16tofw = $(objtree)/$(obj)/ihex2fw -w $< $@ - -quiet_cmd_fwbin = MK_FW $@ - cmd_fwbin = FWNAME="$(patsubst firmware/%.gen.S,%,$@)"; \ - FWSTR="$(subst /,_,$(subst .,_,$(subst -,_,$(patsubst \ - firmware/%.gen.S,%,$@))))"; \ - ASM_WORD=$(if $(CONFIG_64BIT),.quad,.long); \ - ASM_ALIGN=$(if $(CONFIG_64BIT),3,2); \ - PROGBITS=$(if $(CONFIG_ARM),%,@)progbits; \ - echo "/* Generated by firmware/Makefile */" > $@;\ - echo " .section .rodata" >>$@;\ - echo " .p2align $${ASM_ALIGN}" >>$@;\ - echo "_fw_$${FWSTR}_bin:" >>$@;\ - echo " .incbin \"$(2)\"" >>$@;\ - echo "_fw_end:" >>$@;\ - echo " .section .rodata.str,\"aMS\",$${PROGBITS},1" >>$@;\ - echo " .p2align $${ASM_ALIGN}" >>$@;\ - echo "_fw_$${FWSTR}_name:" >>$@;\ - echo " .string \"$$FWNAME\"" >>$@;\ - echo " .section .builtin_fw,\"a\",$${PROGBITS}" >>$@;\ - echo " .p2align $${ASM_ALIGN}" >>$@;\ - echo " $${ASM_WORD} _fw_$${FWSTR}_name" >>$@;\ - echo " $${ASM_WORD} _fw_$${FWSTR}_bin" >>$@;\ - echo " $${ASM_WORD} _fw_end - _fw_$${FWSTR}_bin" >>$@; - -# One of these files will change, or come into existence, whenever -# the configuration changes between 32-bit and 64-bit. The .S files -# need to change when that happens. -wordsize_deps := $(wildcard include/config/64bit.h include/config/32bit.h \ - include/config/ppc32.h include/config/ppc64.h \ - include/config/superh32.h include/config/superh64.h \ - include/config/x86_32.h include/config/x86_64.h) - -$(patsubst %,$(obj)/%.gen.S, $(fw-shipped-y)): %: $(wordsize_deps) - $(call cmd,fwbin,$(patsubst %.gen.S,%,$@)) -$(patsubst %,$(obj)/%.gen.S, $(fw-external-y)): %: $(wordsize_deps) \ - include/config/extra/firmware/dir.h - $(call cmd,fwbin,$(fwabs)/$(patsubst $(obj)/%.gen.S,%,$@)) - -# The .o files depend on the binaries directly; the .S files don't. -$(patsubst %,$(obj)/%.gen.o, $(fw-shipped-y)): %.gen.o: % -$(patsubst %,$(obj)/%.gen.o, $(fw-external-y)): $(obj)/%.gen.o: $(fwdir)/% - -# .ihex is used just as a simple way to hold binary files in a source tree -# where binaries are frowned upon. They are directly converted with objcopy. -$(obj)/%: $(obj)/%.ihex - $(call cmd,ihex) - -# Don't depend on ihex2fw if we're installing and it already exists. -# Putting it after | in the dependencies doesn't seem sufficient when -# we're installing after a cross-compile, because ihex2fw has dependencies -# on stuff like /usr/lib/gcc/ppc64-redhat-linux/4.3.0/include/stddef.h and -# thus wants to be rebuilt. Which it can't be, if the prebuilt kernel tree -# is exported read-only for someone to run 'make install'. -ifeq ($(INSTALL):$(wildcard $(obj)/ihex2fw),install:$(obj)/ihex2fw) -ihex2fw_dep := -else -ihex2fw_dep := $(obj)/ihex2fw -endif - -# .HEX is also Intel HEX, but where the offset and length in each record -# is actually meaningful, because the firmware has to be loaded in a certain -# order rather than as a single binary blob. Thus, we convert them into our -# more compact binary representation of ihex records () -$(obj)/%.fw: $(obj)/%.HEX $(ihex2fw_dep) - $(call cmd,ihex2fw) - -# .H16 is our own modified form of Intel HEX, with 16-bit length for records. -$(obj)/%.fw: $(obj)/%.H16 $(ihex2fw_dep) - $(call cmd,h16tofw) - -obj-y += $(patsubst %,%.gen.o, $(fw-external-y)) -obj-$(CONFIG_FIRMWARE_IN_KERNEL) += $(patsubst %,%.gen.o, $(fw-shipped-y)) - -ifeq ($(KBUILD_SRC),) -# Makefile.build only creates subdirectories for O= builds, but external -# firmware might live outside the kernel source tree -_dummy := $(foreach d,$(addprefix $(obj)/,$(dir $(fw-external-y))), $(shell [ -d $(d) ] || mkdir -p $(d))) -endif - -# Remove .S files and binaries created from ihex -# (during 'make clean' .config isn't included so they're all in $(fw-shipped-)) -targets := $(fw-shipped-) $(patsubst $(obj)/%,%, \ - $(shell find $(obj) -name \*.gen.S 2>/dev/null)) - -# Without this, built-in.o won't be created when it's empty, and the -# final vmlinux link will fail. -obj- := dummy - -hostprogs-y := ihex2fw diff --git a/firmware/README.AddingFirmware b/firmware/README.AddingFirmware deleted file mode 100644 index bcb5f46aff83..000000000000 --- a/firmware/README.AddingFirmware +++ /dev/null @@ -1,45 +0,0 @@ - - DO NOT ADD FIRMWARE TO THIS DIRECTORY. - ====================================== - -This directory is only here to contain firmware images extracted from old -device drivers which predate the common use of request_firmware(). - -As we update those drivers to use request_firmware() and keep a clean -separation between code and firmware, we put the extracted firmware -here. - -This directory is _NOT_ for adding arbitrary new firmware images. The -place to add those is the separate linux-firmware repository: - - git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git - -That repository contains all these firmware images which have been -extracted from older drivers, as well various new firmware images which -we were never permitted to include in a GPL'd work, but which we _have_ -been permitted to redistribute under separate cover. - -To submit firmware to that repository, please send either a git binary -diff or preferably a git pull request to: - linux-firmware@kernel.org -and also cc: to related mailing lists. - -Your commit should include an update to the WHENCE file clearly -identifying the licence under which the firmware is available, and -that it is redistributable. If the licence is long and involved, it's -permitted to include it in a separate file and refer to it from the -WHENCE file. -And if it were possible, a changelog of the firmware itself. - -Ideally, your commit should contain a Signed-Off-By: from someone -authoritative on the licensing of the firmware in question (i.e. from -within the company that owns the code). - - -WARNING: -======= - -Don't send any "CONFIDENTIALITY STATEMENT" in your e-mail, patch or -request. Otherwise your firmware _will never be accepted_. - -Maintainers are really busy, so don't expect a prompt reply. diff --git a/firmware/WHENCE b/firmware/WHENCE deleted file mode 100644 index 0c4d96dee9b6..000000000000 --- a/firmware/WHENCE +++ /dev/null @@ -1,854 +0,0 @@ - ********** - * WHENCE * - ********** - -This file attempts to document the origin and licensing information, -if known, for each piece of firmware distributed for use with the Linux -kernel. - --------------------------------------------------------------------------- - -Driver: ambassador -- Madge Ambassador (Collage PCI 155 Server) ATM NIC. - -File: firmware/atmsar11.fw - -Licence: Allegedly GPLv2+, but no source visible. Marked: - - Madge Ambassador ATM Adapter microcode. - Copyright (C) 1995-1999 Madge Networks Ltd. - - This microcode data is placed under the terms of the GNU General - Public License. The GPL is contained in /usr/doc/copyright/GPL on a - Debian system and in the file COPYING in the Linux kernel source. - - We would prefer you not to distribute modified versions without - consultation and not to ask for assembly/other microcode source. - --------------------------------------------------------------------------- - -Driver: korg1212 -- Korg 1212 IO audio device - -File: korg/k1212.dsp - -Licence: Unknown - -Found in alsa-firmware package in hex form; no licensing information. - --------------------------------------------------------------------------- - -Driver: maestro3 -- ESS Allegro Maestro3 audio device - -File: ess/maestro3_assp_kernel.fw -File: ess/maestro3_assp_minisrc.fw - -Licence: Unknown - -Found in alsa-firmware package in hex form with a comment claiming to -be GPLv2+, but without source -- and with another comment saying "ESS -drops binary dsp code images on our heads, but we don't get to see -specs on the dsp." - --------------------------------------------------------------------------- - -Driver: ymfpci -- Yamaha YMF724/740/744/754 audio devices - -File: yamaha/ds1_ctrl.fw -File: yamaha/ds1_dsp.fw -File: yamaha/ds1e_ctrl.fw - -Licence: Unknown - -Found alsa-firmware package in hex form, with the following comment: - Copyright (c) 1997-1999 Yamaha Corporation. All Rights Reserved. - --------------------------------------------------------------------------- - -Driver: SCSI_ADVANSYS - AdvanSys SCSI - -File: advansys/mcode.bin -File: advansys/3550.bin -File: advansys/38C0800.bin -File: advansys/38C1600.bin - -Licence: BSD, no source available. - -Found in hex form in kernel source. - --------------------------------------------------------------------------- - -Driver: SCSI_QLOGIC_1280 - Qlogic QLA 1240/1x80/1x160 SCSI support - -File: qlogic/1040.bin -File: qlogic/1280.bin -File: qlogic/12160.bin - -Licence: Allegedly GPLv2+, but no source visible. Marked: - - QLOGIC LINUX SOFTWARE - QLogic ISP1280/ device driver for Linux 2.2.x and 2.4.x - Copyright (C) 2001 Qlogic Corporation (www.qlogic.com) - --------------------------------------------------------------------------- - -Driver: kaweth -- USB KLSI KL5USB101-based Ethernet device - -File: kaweth/new_code.bin -File: kaweth/new_code_fix.bin -File: kaweth/trigger_code.bin -File: kaweth/trigger_code_fix.bin - -Licence: Unknown - -Found in hex form in the kernel source. - --------------------------------------------------------------------------- - -Driver: ttusb-budget -- Technotrend/Hauppauge Nova-USB devices - -File: ttusb-budget/dspbootcode.bin - -Licence: Unknown - -Found in hex form in the kernel source. - --------------------------------------------------------------------------- - -Driver: keyspan -- USB Keyspan USA-xxx serial device - -File: keyspan/mpr.fw -File: keyspan/usa18x.fw -File: keyspan/usa19.fw -File: keyspan/usa19qi.fw -File: keyspan/usa19qw.fw -File: keyspan/usa19w.fw -File: keyspan/usa28.fw -File: keyspan/usa28xa.fw -File: keyspan/usa28xb.fw -File: keyspan/usa28x.fw -File: keyspan/usa49w.fw -File: keyspan/usa49wlc.fw - -Converted from Intel HEX files, used in our binary representation of ihex. - -Original licence information: - - Copyright (C) 1999-2001 - Keyspan, A division of InnoSys Incorporated ("Keyspan") - - as an unpublished work. This notice does not imply unrestricted or - public access to the source code from which this firmware image is - derived. Except as noted below this firmware image may not be - reproduced, used, sold or transferred to any third party without - Keyspan's prior written consent. All Rights Reserved. - - Permission is hereby granted for the distribution of this firmware - image as part of a Linux or other Open Source operating system kernel - in text or binary form as required. - - This firmware may not be modified and may only be used with - Keyspan hardware. Distribution and/or Modification of the - keyspan.c driver which includes this firmware, in whole or in - part, requires the inclusion of this statement." - --------------------------------------------------------------------------- - -Driver: keyspan_pda -- USB Keyspan PDA single-port serial device - -File: keyspan_pda/keyspan_pda.fw -Source: keyspan_pda/keyspan_pda.S - -File: keyspan_pda/xircom_pgs.fw -Source: keyspan_pda/xircom_pgs.S - -Licence: GPLv2+ - -Compiled from original 8051 source into Intel HEX, used in our binary ihex form. - --------------------------------------------------------------------------- - -Driver: emi26 -- EMI 2|6 USB Audio interface - -File: emi26/bitstream.fw -Info: VERSION=1.1.1.131 DATE=2001dec06 - -File: emi26/firmware.fw -Info: VERSION=1.0.2.916 DATE=12.02.2002 - -File: emi26/loader.fw - -Converted from Intel HEX files, used in our binary representation of ihex. - -Original licence information: -/* - * This firmware is for the Emagic EMI 2|6 Audio Interface - * - * The firmware contained herein is Copyright (c) 1999-2002 Emagic - * as an unpublished work. This notice does not imply unrestricted - * or public access to this firmware which is a trade secret of Emagic, - * and which may not be reproduced, used, sold or transferred to - * any third party without Emagic's written consent. All Rights Reserved. - * - * Permission is hereby granted for the distribution of this firmware - * image as part of a Linux or other Open Source operating system kernel - * in text or binary form as required. - * - * This firmware may not be modified and may only be used with the - * Emagic EMI 2|6 Audio Interface. Distribution and/or Modification of - * any driver which includes this firmware, in whole or in part, - * requires the inclusion of this statement. - */ - --------------------------------------------------------------------------- - -Driver: emi62 -- EMI 6|2m USB Audio interface - -File: emi62/bitstream.fw -Info: VERSION=1.0.0.191 DATE= 2002oct28 - -File: emi62/loader.fw -Source: EMILOAD.HEX -Info: VERSION=1.0.2.002 DATE=10.01.2002 - -File: emi62/midi.fw -Source: EMI62MFW.HEX -Info: VERSION=1.04.062 DATE=16.10.2002 - -File: emi62/spdif.fw -Source: EMI62SFW.HEX -Info: VERSION=1.04.062 DATE=16.10.2002 - -Converted from Intel HEX files, used in our binary representation of ihex. - -Original licence information: None - --------------------------------------------------------------------------- - -Driver: ti_usb_3410_5052 -- USB TI 3410/5052 serial device - -File: ti_3410.fw -Info: firmware 9/10/04 FW3410_Special_StartWdogOnStartPort - -File: ti_5052.fw -Info: firmware 9/18/04 - -Licence: Allegedly GPLv2+, but no source visible. Marked: - Copyright (C) 2004 Texas Instruments - -Found in hex form in kernel source. - --------------------------------------------------------------------------- - -Driver: ti_usb_3410_5052 -- Multi-Tech USB cell modems - -File: mts_cdma.fw -File: mts_gsm.fw -File: mts_edge.fw - -Licence: "all firmware components are redistributable in binary form" - per support@multitech.com - Copyright (C) 2005 Multi-Tech Systems, Inc. - -Found in hex form in ftp://ftp.multitech.com/wireless/wireless_linux.zip - --------------------------------------------------------------------------- - -Driver: whiteheat -- USB ConnectTech WhiteHEAT serial device - -File: whiteheat.fw -Version: 4.06 - -File: whiteheat_loader.fw -File: whiteheat_loader_debug.fw - -Licence: Allegedly GPLv2, but no source visible. Marked: - Copyright (C) 2000-2002 ConnectTech Inc - -Debug loader claims the following behaviour: - Port 1 LED flashes when the vend_ax program is running - Port 2 LED flashes when any SETUP command arrives - Port 3 LED flashes when any valid VENDOR request occurs - Port 4 LED flashes when the EXTERNAL RAM DOWNLOAD request occurs - -Converted from Intel HEX files, used in our binary representation of ihex. - --------------------------------------------------------------------------- - -Driver: CPiA2 -- cameras based on Vision's CPiA2 - -File: cpia2/stv0672_vp4.bin - -Licence: Allegedly GPLv2+, but no source visible. Marked: - Copyright (C) 2001 STMicroelectronics, Inc. - Contact: steve.miller@st.com - Description: This file contains patch data for the CPiA2 (stv0672) VP4. - -Found in hex form in kernel source. - --------------------------------------------------------------------------- - -Driver: DABUSB -- Digital Audio Broadcasting (DAB) Receiver for USB and Linux - -File: dabusb/firmware.fw -File: dabusb/bitstream.bin - -Licence: Distributable - - * Copyright (C) 1999 BayCom GmbH - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that redistributions of source - * code retain the above copyright notice and this comment without - * modification. - --------------------------------------------------------------------------- - -Driver: USB_VICAM -- USB 3com HomeConnect (aka vicam) - -File: vicam/firmware.fw - -Licence: Unknown - -Found in hex form in kernel source. - --------------------------------------------------------------------------- - -Driver: USB_SERIAL_EDGEPORT - USB Inside Out Edgeport Serial Driver - -File: edgeport/boot.fw -File: edgeport/boot2.fw -File: edgeport/down.fw -File: edgeport/down2.fw - -Licence: Allegedly GPLv2+, but no source visible. Marked: -//************************************************************** -//* Edgeport/4 Binary Image -//* Generated by HEX2C v1.06 -//* Copyright (C) 1998 Inside Out Networks, All rights reserved. -//************************************************************** - -Found in hex form in kernel source. - --------------------------------------------------------------------------- - -Driver: USB_SERIAL_EDGEPORT_TI - USB Inside Out Edgeport Serial Driver -(TI Devices) - -File: edgeport/down3.bin - -Licence: -//************************************************************** -//* Edgeport Binary Image (for TI based products) -//* Generated by TIBin2C v2.00 (watchport) -//* Copyright (C) 2001 Inside Out Networks, All rights reserved. -//************************************************************** - -Found in hex form in kernel source. - --------------------------------------------------------------------------- - -Driver: ATARI_DSP56K - Atari DSP56k support - -File: dsp56k/bootstrap.bin -Source: dsp56k/bootstrap.asm - -Licence: GPLv2 or later - -DSP56001 assembler, possibly buildable with a56 from -http://www.zdomain.com/a56.html - --------------------------------------------------------------------------- - -Driver: SND_SB16_CSP - Sound Blaster 16/AWE CSP support - -File: sb16/mulaw_main.csp -File: sb16/alaw_main.csp -File: sb16/ima_adpcm_init.csp -File: sb16/ima_adpcm_playback.csp -File: sb16/ima_adpcm_capture.csp - -Licence: Allegedly GPLv2+, but no source visible. Marked: -/* - * Copyright (c) 1994 Creative Technology Ltd. - * Microcode files for SB16 Advanced Signal Processor - */ - -Found in hex form in kernel source. - --------------------------------------------------------------------------- - -Driver: CASSINI - Sun Cassini - -File: sun/cassini.bin - -Licence: Unknown - -Found in hex form in kernel source. - --------------------------------------------------------------------------- - -Driver: cxgb3 - Chelsio Terminator 3 1G/10G Ethernet adapter - -File: cxgb3/t3b_psram-1.1.0.bin.ihex -File: cxgb3/t3c_psram-1.1.0.bin.ihex -file: cxgb3/t3fw-7.4.0.bin.ihex - -License: GPLv2 or OpenIB.org BSD license, no source visible - --------------------------------------------------------------------------- - -Driver: cxgb3 - Chelsio Terminator 3 1G/10G Ethernet adapter - -File: cxgb3/ael2005_opt_edc.bin.ihex -File: cxgb3/ael2005_twx_edc.bin.ihex -File: cxgb3/ael2020_twx_edc.bin.ihex - -Licence: - * Copyright (c) 2007-2009 NetLogic Microsystems, Inc. - * - * Permission is hereby granted for the distribution of this firmware - * data in hexadecimal or equivalent format, provided this copyright - * notice is accompanying it. - -Found in hex form in kernel source. - --------------------------------------------------------------------------- - -Driver: e100 -- Intel PRO/100 Ethernet NIC - -File: e100/d101m_ucode.bin -File: e100/d101s_ucode.bin -File: e100/d102e_ucode.bin - -Licence: Unknown - -Found in hex form in kernel source. - --------------------------------------------------------------------------- - -Driver: acenic -- Alteon AceNIC Gigabit Ethernet card - -File: acenic/tg1.bin -File: acenic/tg2.bin - -Licence: Unknown - -Found in hex form in kernel source, but source allegedly available at -http://alteon.shareable.org/ - --------------------------------------------------------------------------- - -Driver: tigon3 -- Broadcom Tigon3 based gigabit Ethernet cards - -File: tigon/tg3.bin -File: tigon/tg3_tso.bin -File: tigon/tg3_tso5.bin - -Licence: - * Firmware is: - * Derived from proprietary unpublished source code, - * Copyright (C) 2000-2003 Broadcom Corporation. - * - * Permission is hereby granted for the distribution of this firmware - * data in hexadecimal or equivalent format, provided this copyright - * notice is accompanying it. - -Found in hex form in kernel source. - --------------------------------------------------------------------------- - -Driver: ADAPTEC_STARFIRE - Adaptec Starfire/DuraLAN support - -File: adaptec/starfire_rx.bin -File: adaptec/starfire_tx.bin - -Licence: Allegedly GPLv2, but no source visible. - -Found in hex form in kernel source, with the following notice: - - BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE IT IS LICENSED "AS IS" AND - THERE IS NO WARRANTY FOR THE PROGRAM, INCLUDING BUT NOT LIMITED TO THE - IMPLIED WARRANTIES OF MERCHANTIBILITY OR FITNESS FOR A PARTICULAR PURPOSE - (TO THE EXTENT PERMITTED BY APPLICABLE LAW). USE OF THE PROGRAM IS AT YOUR - OWN RISK. IN NO EVENT WILL ADAPTEC OR ITS LICENSORS BE LIABLE TO YOU FOR - DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES - ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM. - --------------------------------------------------------------------------- - -Driver: TEHUTI - Tehuti Networks 10G Ethernet - -File: tehuti/bdx.bin - -Licence: - - Copyright (C) 2007 Tehuti Networks Ltd. - - Permission is hereby granted for the distribution of this firmware data - in hexadecimal or equivalent format, provided this copyright notice is - accompanying it. - -Found in hex form in kernel source. - --------------------------------------------------------------------------- - -Driver: TYPHOON - 3cr990 series Typhoon - -File: 3com/typhoon.bin - -Licence: -/* - * Copyright 1999-2004 3Com Corporation. All Rights Reserved. - * - * Redistribution and use in source and binary forms of the 3c990img.h - * microcode software are permitted provided that the following conditions - * are met: - * 1. Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistribution 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. The name of 3Com may not be used to endorse or promote products - * derived from this software without specific prior written permission - * - * THIS SOFTWARE IS PROVIDED BY 3COM ``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 AUTHOR 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. - * - * USER ACKNOWLEDGES AND AGREES THAT PURCHASE OR USE OF THE 3c990img.h - * MICROCODE SOFTWARE WILL NOT CREATE OR GIVE GROUNDS FOR A LICENSE BY - * IMPLICATION, ESTOPPEL, OR OTHERWISE IN ANY INTELLECTUAL PROPERTY RIGHTS - * (PATENT, COPYRIGHT, TRADE SECRET, MASK WORK, OR OTHER PROPRIETARY RIGHT) - * EMBODIED IN ANY OTHER 3COM HARDWARE OR SOFTWARE EITHER SOLELY OR IN - * COMBINATION WITH THE 3c990img.h MICROCODE SOFTWARE - */ - -Found in hex form in kernel source. - --------------------------------------------------------------------------- - -Driver: YAM - YAM driver for AX.25 - -File: yam/1200.bin -File: yam/9600.bin - -Licence: - * (C) F6FBB 1998 - -Found in hex form in kernel source. - --------------------------------------------------------------------------- - -Driver: PCMCIA_PCNET - NE2000 compatible PCMCIA adapter - -File: cis/LA-PCM.cis - cis/PCMLM28.cis - cis/DP83903.cis - cis/NE2K.cis - cis/tamarack.cis - cis/PE-200.cis - cis/PE520.cis - -Licence: GPL - -Originally developed by the pcmcia-cs project - --------------------------------------------------------------------------- - -Driver: PCMCIA_3C589 - 3Com PCMCIA adapter - -File: cis/3CXEM556.cis - -Licence: GPL - -Originally developed by the pcmcia-cs project - --------------------------------------------------------------------------- - -Driver: PCMCIA_3C574 - 3Com PCMCIA adapter - -File: cis/3CCFEM556.cis - -Licence: GPL - -Originally developed by the pcmcia-cs project - --------------------------------------------------------------------------- - -Driver: SERIAL_8250_CS - Serial PCMCIA adapter - -File: cis/MT5634ZLX.cis - cis/RS-COM-2P.cis - cis/COMpad2.cis - cis/COMpad4.cis - cis/SW_555_SER.cis - cis/SW_7xx_SER.cis - cis/SW_8xx_SER.cis - -Licence: GPL - -Originally developed by the pcmcia-cs project - --------------------------------------------------------------------------- - -Driver: PCMCIA_SMC91C92 - SMC 91Cxx PCMCIA - -File: ositech/Xilinx7OD.bin - -Licence: Allegedly GPL, but no source visible. Marked: - This file contains the firmware of Seven of Diamonds from OSITECH. - (Special thanks to Kevin MacPherson of OSITECH) - -Found in hex form in kernel source. - --------------------------------------------------------------------------- - -Driver: SCSI_QLOGICPTI - PTI Qlogic, ISP Driver - -File: qlogic/isp1000.bin - -Licence: Unknown - -Found in hex form in kernel source. - --------------------------------------------------------------------------- - -Driver: MYRI_SBUS - MyriCOM Gigabit Ethernet - -File: myricom/lanai.bin - -Licence: Unknown - -Found in hex form in kernel source. - --------------------------------------------------------------------------- - -Driver: bnx2x: Broadcom Everest - -File: bnx2x/bnx2x-e1-6.2.9.0.fw -File: bnx2x/bnx2x-e1h-6.2.9.0.fw -File: bnx2x/bnx2x-e2-6.2.9.0.fw - -License: - Copyright (c) 2007-2011 Broadcom Corporation - - This file contains firmware data derived from proprietary unpublished - source code, Copyright (c) 2007-2011 Broadcom Corporation. - - Permission is hereby granted for the distribution of this firmware data - in hexadecimal or equivalent format, provided this copyright notice is - accompanying it. - - -Found in hex form in kernel source. - --------------------------------------------------------------------------- - -Driver: BNX2 - Broadcom NetXtremeII - -File: bnx2/bnx2-mips-06-6.2.1.fw -File: bnx2/bnx2-rv2p-06-6.0.15.fw -File: bnx2/bnx2-mips-09-6.2.1a.fw -File: bnx2/bnx2-rv2p-09-6.0.17.fw -File: bnx2/bnx2-rv2p-09ax-6.0.17.fw - -Licence: - - This file contains firmware data derived from proprietary unpublished - source code, Copyright (c) 2004 - 2010 Broadcom Corporation. - - Permission is hereby granted for the distribution of this firmware data - in hexadecimal or equivalent format, provided this copyright notice is - accompanying it. - -Found in hex form in kernel source. - --------------------------------------------------------------------------- - -Driver: DVB AV7110 -- AV7110 cards - -File: av7110/bootcode.bin - -Licence: GPLv2 or later - -ARM assembly source code available at http://www.linuxtv.org/downloads/firmware/Boot.S - --------------------------------------------------------------------------- - -Driver: wavefront - ISA WaveFront sound card - -File: yamaha/yss225_registers.bin - -Licence: Allegedly GPLv2+, but no source visible. - -Found in hex form in kernel source, with the following comment: - Copyright (c) 1998-2002 by Paul Davis - --------------------------------------------------------------------------- - -Driver: mga - Matrox G200/G400/G550 - -File: matrox/g200_warp.fw -File: matrox/g400_warp.fw - -Licence: - -Copyright 1999 Matrox Graphics Inc. -All Rights Reserved. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -MATROX GRAPHICS INC., OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE -OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Found in hex form in kernel source. - --------------------------------------------------------------------------- - -Driver: r128 - ATI Rage 128 - -File: r128/r128_cce.bin - -Licence: - -Copyright 2000 Advanced Micro Devices, Inc. - - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - -Found in decimal form in kernel source. - --------------------------------------------------------------------------- - -Driver: radeon - ATI Radeon - -File: radeon/R100_cp.bin -File: radeon/R200_cp.bin -File: radeon/R300_cp.bin -File: radeon/R420_cp.bin -File: radeon/RS600_cp.bin -File: radeon/RS690_cp.bin -File: radeon/R520_cp.bin -File: radeon/R600_pfp.bin -File: radeon/R600_me.bin -File: radeon/RV610_pfp.bin -File: radeon/RV610_me.bin -File: radeon/RV630_pfp.bin -File: radeon/RV630_me.bin -File: radeon/RV620_pfp.bin -File: radeon/RV620_me.bin -File: radeon/RV635_pfp.bin -File: radeon/RV635_me.bin -File: radeon/RV670_pfp.bin -File: radeon/RV670_me.bin -File: radeon/RS780_pfp.bin -File: radeon/RS780_me.bin -File: radeon/RV770_pfp.bin -File: radeon/RV770_me.bin -File: radeon/RV730_pfp.bin -File: radeon/RV730_me.bin -File: radeon/RV710_pfp.bin -File: radeon/RV710_me.bin - -Licence: - - * Copyright 2007-2009 Advanced Micro Devices, Inc. - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE - * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION - * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Found in hex form in kernel source. - --------------------------------------------------------------------------- - -Driver: ib_qib - QLogic Infiniband - -File: qlogic/sd7220.fw - -Licence: - - * Copyright (c) 2007, 2008 QLogic Corporation. All rights reserved. - * - * This software is available to you under a choice of one of two - * licenses. You may choose to be licensed under the terms of the GNU - * General Public License (GPL) Version 2, available from the file - * COPYING in the main directory of this source tree, or the - * OpenIB.org BSD license below: - * - * Redistribution and use in source and binary forms, with or - * without modification, are permitted provided that the following - * conditions are met: - * - * - Redistributions of source code must retain the above - * copyright notice, this list of conditions and the following - * disclaimer. - * - * - 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. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - -Found in hex form in kernel source. - --------------------------------------------------------------------------- diff --git a/firmware/acenic/tg1.bin.ihex b/firmware/acenic/tg1.bin.ihex deleted file mode 100644 index bef2659d3645..000000000000 --- a/firmware/acenic/tg1.bin.ihex +++ /dev/null @@ -1,4573 +0,0 @@ -:100000000C040B0000004000000040001000000342 -:10001000000000000000000D0000000D3C1D00016C -:100020008FBD5C5403A0F0213C100000261040005E -:100030000C00100C000000000000000D27BDFFD8D0 -:100040003C1CC0003C1B0013377BD8000000D021B3 -:100050003C17001336F7541802E02021340583E8DA -:10006000AFBF00240C002488AFB000200C0023E8B0 -:10007000000000003C040001248451A42405000178 -:1000800002E03021000038213C10000126107E5093 -:10009000AFB000100C002403AFBB00143C02000FF3 -:1000A0003442FFFF020210240362102B10400009AB -:1000B000240500033C040001248451B002003021D7 -:1000C000036038213C020010AFA200100C00240392 -:1000D000AFA00014000020213405C0003C01000145 -:1000E00000370821A02083B03C010001003708211F -:1000F000A02083B23C01000100370821A02083B377 -:100100003C01000100370821AC2083B4A2E004D8F0 -:10011000000418C02484000100771021AC40727CD8 -:1001200000771021AC40728002E31021A445727C5C -:100130002C8200201440FFF7000418C0000020218A -:100140003405C000000418C0248400010077102189 -:10015000AC40737C00771021AC40738002E3102127 -:10016000A445737C2C8200805440FFF7000418C023 -:10017000AF800054AF80011C8F82004434420040A5 -:10018000AF8200448F82004434420020AF8200449A -:100190008F420218304200021040000900000000A7 -:1001A0008F4202203C030002346300040043102508 -:1001B000AEE204C48F42021C0800107434420004F2 -:1001C0008F4202203C0300023463000600431025E6 -:1001D000AEE204C48F42021C34420006AEE204CCFC -:1001E0008F420218304200101040000A0000000048 -:1001F0008F42021C34420004AEE204C88F42022047 -:100200003C03000A34630004004310250800108AF0 -:10021000AEE204C08F4202203C03000A34630006B1 -:1002200000431025AEE204C08F42021C3442000697 -:10023000AEE204C88F4202183042020010400003B0 -:100240002402000108001091A2E27248A2E0724864 -:1002500024020001AF8200A0AF8200B08F8300545F -:100260008F82005408001099246300648F82005428 -:10027000006210232C4200651440FFFC00000000C7 -:10028000AF8000448F4202088F43020CAEE20010A0 -:10029000AEE300148EE400108EE5001426E2003078 -:1002A000AEE2002824020490AEE20018AF84009071 -:1002B000AF8500948EE20028AF8200B496E2001A67 -:1002C000AF82009C8F8200B08EE304CC00431025E7 -:1002D000AF8200B08F8200B0304200041440FFFDB6 -:1002E000000000008EE204508EE30454AEE304FCF0 -:1002F0008EE204FC2442E0002C4220011440000D58 -:1003000026E400308EE204508EE304543C040001E5 -:10031000248451BC3C050001AFA00010AFA0001424 -:100320008EE704FC34A5F0000C00240300603021AB -:1003300026E400300C0024882405040027440080B3 -:100340000C0024882405008026E4777C0C00248897 -:10035000240504008F42025C26E40094AEE20060B3 -:100360008F4202602745020024060008AEE20068C2 -:10037000240200060C00249AAEE200643C023B9A80 -:100380003442CA000000202124030002AEE30074BE -:10039000AEE30070AEE2006C240203E8AEE20104BA -:1003A00024020001AEE30100AEE2010C3C030001B7 -:1003B0000064182190635C2002E410212484000171 -:1003C000A043009C2C82000F1440FFF800000000A6 -:1003D0008F82004002E418212484000100021702E9 -:1003E00024420030A062009C02E41021A040009C46 -:1003F00096E2046A30420003144000090000000045 -:1004000096E2047A30420003504001313C03080078 -:1004100096E2046A304200031040002A3C020700C2 -:1004200096E2047A30420003104000263C020700A6 -:1004300096E3047A96E2046A146200223C02070002 -:100440008EE204C024030001A2E34E2034420E00D9 -:10045000AEE204C08F420218304201001040000595 -:10046000000000003C0200012442E1680800111D68 -:10047000000211003C0200012442D35C0002110082 -:10048000000211823C030800004310253C010001DA -:10049000AC2212383C0200012442F6800002110016 -:1004A000000211823C030800004310253C010001BA -:1004B000AC2212788EE2000034424000080012386C -:1004C000AEE2000034423000AFA200188EE206080F -:1004D0008F43022824420001304900FF512300E2EB -:1004E000AFA000108EE20608000210C000571021D5 -:1004F0008FA300188FA4001CAC43060CAC4406105C -:100500008F8701202762380024E800200102102B89 -:1005100050400001276830008F820128110200043A -:10052000000000008F820124150200070000102146 -:100530008EE201A40000302124420001AEE201A4B9 -:10054000080011A08EE201A48EE40608000420C079 -:10055000008018218EE404308EE5043400A32821A5 -:1005600000A3302B0082202100862021ACE4000073 -:10057000ACE500048EE3060824020008A4E2000EA5 -:100580002402000DACE20018ACE9001C000318C006 -:100590002463060C02E31021ACE200088EE204C4DE -:1005A000ACE20010AF88012092E24E2014400037E8 -:1005B000240600018EE24E30000210C02442503862 -:1005C00002E220218C830000240200071462001F35 -:1005D000000000008EE34E308EE24E341062001BAD -:1005E000240300408C82000424420001AC820004F9 -:1005F0008EE24E348EE54E30244200011043000757 -:10060000000000008EE24E342442000110A20005DA -:10061000000000000800118A0000000014A000057E -:10062000000000008F82012824420020AF820128B0 -:100630008F8201288C8200042C420011504000134C -:10064000AC800000080011A0000000008EE24E30D7 -:100650002403004024420001504300030000102105 -:100660008EE24E3024420001AEE24E308EE24E3039 -:10067000000210C02442503802E220212402000768 -:10068000AC82000024020001AC82000454C0000CC3 -:10069000AEE906083C040001248451C8AFA0001054 -:1006A000AFA000148EE606088F4702283C0500091B -:1006B0000C00240334A5F000080012230000000001 -:1006C0008F830120276238002466002000C2102B8F -:1006D00050400001276630008F82012810C20004BC -:1006E000000000008F82012414C2000700000000F7 -:1006F0008EE201A40000302124420001AEE201A4F8 -:10070000080012078EE201A48EE20608AC62001C0B -:100710008EE404A08EE504A42462001CAC620008F0 -:1007200024020008A462000E24020011AC6200182A -:10073000AC640000AC6500048EE204C4AC6200103E -:10074000AF86012092E24E201440003724060001BB -:100750008EE24E30000210C02442503802E22021C6 -:100760008C830000240200121462001F00000000AD -:100770008EE34E308EE24E341062001B24030040A4 -:100780008C82000424420001AC8200048EE24E34CC -:100790008EE54E30244200011043000700000000A7 -:1007A0008EE24E342442000110A200050000000039 -:1007B000080011F10000000014A000050000000076 -:1007C0008F82012824420020AF8201288F820128D5 -:1007D0008C8200042C42001150400013AC800000B9 -:1007E00008001207000000008EE24E302403004093 -:1007F0002442000150430003000010218EE24E30DD -:1008000024420001AEE24E308EE24E30000210C0B3 -:100810002442503802E2202124020012AC8200005F -:1008200024020001AC82000414C0001B0000000080 -:100830003C040001248451D0AFA00010AFA00014EC -:100840008EE606088F4702283C0500090C002403A9 -:1008500034A5F0018EE201B024420001AEE201B005 -:10086000080012238EE201B03C040001248451DC14 -:10087000AFA000148EE606088F4702283C05000949 -:100880000C00240334A5F0058EE201AC24420001E3 -:10089000AEE201AC8EE201AC8EE201603C040001EC -:1008A000248451E83405F00124420001AEE20160E5 -:1008B0008EE201600000302100003821AFA000105E -:1008C0000C002403AFA00014080012380000000040 -:1008D0003C0200012442F5A800021100000211822E -:1008E000004310253C010001AC22127896E2045A24 -:1008F00030420003104000253C050FFF8EE204C883 -:1009000034A5FFFF34420A00AEE204C88EE304C8F7 -:100910003C040001248451F424020001A2E204EC0E -:10092000A2E204ED3C020002006218253C02000134 -:100930002442A3900045102400021082AEE304C8B4 -:100940003C030800004310253C010001AC221220AA -:100950003C0200012442ADD4004510240002108264 -:10096000004310253C010001AC22128096E6045A97 -:100970000000382124050011AFA000100C00240352 -:10098000AFA0001408001268000000003C02000143 -:100990002442A9D400021100000211823C03080085 -:1009A000004310253C010001AC22128096E2046A4B -:1009B00030420010144000090000000096E2047A62 -:1009C00030420010104001120000000096E2046A5C -:1009D00030420010104000053C02070096E2047A05 -:1009E00030420010144001023C0207003442300043 -:1009F000AFA200188EE206088F43022824420001AD -:100A0000304900FF512300E2AFA000108EE206083B -:100A1000000210C0005710218FA300188FA4001CE3 -:100A2000AC43060CAC4406108F87012027623800C7 -:100A300024E800200102102B5040000127683000FC -:100A40008F82012811020004000000008F8201241F -:100A500015020007000010218EE201A400003021E1 -:100A600024420001AEE201A4080012EA8EE201A4D1 -:100A70008EE40608000420C0008018218EE40430B3 -:100A80008EE5043400A3282100A3302B008220210E -:100A900000862021ACE40000ACE500048EE30608EB -:100AA00024020008A4E2000E2402000DACE20018AB -:100AB000ACE9001C000318C02463060C02E31021FB -:100AC000ACE200088EE204C4ACE20010AF88012062 -:100AD00092E24E2014400037240600018EE24E3090 -:100AE000000210C02442503802E220218C83000012 -:100AF000240200071462001F000000008EE34E3045 -:100B00008EE24E341062001B240300408C820004ED -:100B100024420001AC8200048EE24E348EE54E3059 -:100B20002442000110430007000000008EE24E3412 -:100B30002442000110A2000500000000080012D4A9 -:100B40000000000014A00005000000008F820128B2 -:100B500024420020AF8201288F8201288C82000469 -:100B60002C42001150400013AC800000080012EA33 -:100B7000000000008EE24E302403004024420001B9 -:100B800050430003000010218EE24E302442000149 -:100B9000AEE24E308EE24E30000210C02442503899 -:100BA00002E2202124020007AC820000240200019E -:100BB000AC82000454C0000CAEE906083C040001FD -:100BC000248451C8AFA00010AFA000148EE6060820 -:100BD0008F4702283C0500090C00240334A5F000CF -:100BE0000800136D000000008F8301202762380089 -:100BF0002466002000C2102B504000012766300000 -:100C00008F82012810C20004000000008F8201249E -:100C100014C20007000000008EE201A40000302191 -:100C200024420001AEE201A4080013518EE201A4A7 -:100C30008EE20608AC62001C8EE404A08EE504A4DB -:100C40002462001CAC62000824020008A462000EAA -:100C500024020011AC620018AC640000AC65000412 -:100C60008EE204C4AC620010AF86012092E24E20F6 -:100C700014400037240600018EE24E30000210C0FE -:100C80002442503802E220218C830000240200120A -:100C90001462001F000000008EE34E308EE24E34DE -:100CA0001062001B240300408C82000424420001D7 -:100CB000AC8200048EE24E348EE54E3024420001B8 -:100CC00010430007000000008EE24E342442000171 -:100CD00010A20005000000000800133B0000000007 -:100CE00014A00005000000008F820128244200208B -:100CF000AF8201288F8201288C8200042C420011CF -:100D000050400013AC8000000800135100000000A8 -:100D10008EE24E3024030040244200015043000381 -:100D2000000010218EE24E3024420001AEE24E302F -:100D30008EE24E30000210C02442503802E22021E0 -:100D400024020012AC82000024020001AC820004E4 -:100D500014C0001B000000003C040001248451D09A -:100D6000AFA00010AFA000148EE606088F4702283F -:100D70003C0500090C00240334A5F0018EE201B00B -:100D800024420001AEE201B00800136D8EE201B012 -:100D90003C040001248451DCAFA000148EE6060858 -:100DA0008F4702283C0500090C00240334A5F005F8 -:100DB0008EE201AC24420001AEE201AC8EE201AC55 -:100DC0008EE201603C040001248451E83405F00205 -:100DD00024420001AEE201608EE201600000302199 -:100DE00000003821AFA000100C002403AFA00014B5 -:100DF00096E6047A96E7046A3C04000124845200D3 -:100E000024050012AFA000100C002403AFA00014B2 -:100E10000C004500000000000C002318000000003A -:100E20003C06000134C63800AEE00608AF40022898 -:100E3000AF40022C96E304588EE400003C0512D823 -:100E400034A5C35827623800AEE2725827623800D2 -:100E5000AEE2726027623800AEE27264036610216F -:100E6000AEE272702402FFFFAEE004D4AEE004E014 -:100E7000AEE004E4AEE004F0A2E004F4AEE00E0C58 -:100E8000AEE00E18AEE00E10AEE00E14AEE00E1C9A -:100E9000AEE0724CAEE05244AEE05240AEE0523CA6 -:100EA000AEE07250AEE07254AEE0725CAEE07268DA -:100EB000AEE004D02463FFFF00852025AEE304F8F4 -:100EC000AEE40000AF800060AF8200643C0201002D -:100ED000AFA200188EE206088F43022824420001C8 -:100EE000304900FF512300E2AFA000108EE2060857 -:100EF000000210C0005710218FA300188FA4001CFF -:100F0000AC43060CAC4406108F87012027623800E2 -:100F100024E800200102102B504000012768300017 -:100F20008F82012811020004000000008F8201243A -:100F300015020007000010218EE201A400003021FC -:100F400024420001AEE201A4080014228EE201A4B2 -:100F50008EE40608000420C0008018218EE40430CE -:100F60008EE5043400A3282100A3302B0082202129 -:100F700000862021ACE40000ACE500048EE3060806 -:100F800024020008A4E2000E2402000DACE20018C6 -:100F9000ACE9001C000318C02463060C02E3102116 -:100FA000ACE200088EE204C4ACE20010AF8801207D -:100FB00092E24E2014400037240600018EE24E30AB -:100FC000000210C02442503802E220218C8300002D -:100FD000240200071462001F000000008EE34E3060 -:100FE0008EE24E341062001B240300408C82000409 -:100FF00024420001AC8200048EE24E348EE54E3075 -:101000002442000110430007000000008EE24E342D -:101010002442000110A20005000000000800140C8A -:101020000000000014A00005000000008F820128CD -:1010300024420020AF8201288F8201288C82000484 -:101040002C42001150400013AC8000000800142214 -:10105000000000008EE24E302403004024420001D4 -:1010600050430003000010218EE24E302442000164 -:10107000AEE24E308EE24E30000210C024425038B4 -:1010800002E2202124020007AC82000024020001B9 -:10109000AC82000454C0000CAEE906083C04000118 -:1010A000248451C8AFA00010AFA000148EE606083B -:1010B0008F4702283C0500090C00240334A5F000EA -:1010C000080014A5000000008F830120276238006B -:1010D0002466002000C2102B50400001276630001B -:1010E0008F82012810C20004000000008F820124BA -:1010F00014C20007000000008EE201A400003021AD -:1011000024420001AEE201A4080014898EE201A489 -:101110008EE20608AC62001C8EE404A08EE504A4F6 -:101120002462001CAC62000824020008A462000EC5 -:1011300024020011AC620018AC640000AC6500042D -:101140008EE204C4AC620010AF86012092E24E2011 -:1011500014400037240600018EE24E30000210C019 -:101160002442503802E220218C8300002402001225 -:101170001462001F000000008EE34E308EE24E34F9 -:101180001062001B240300408C82000424420001F2 -:10119000AC8200048EE24E348EE54E3024420001D3 -:1011A00010430007000000008EE24E34244200018C -:1011B00010A20005000000000800147300000000E9 -:1011C00014A00005000000008F82012824420020A6 -:1011D000AF8201288F8201288C8200042C420011EA -:1011E00050400013AC80000008001489000000008B -:1011F0008EE24E302403004024420001504300039D -:10120000000010218EE24E3024420001AEE24E304A -:101210008EE24E30000210C02442503802E22021FB -:1012200024020012AC82000024020001AC820004FF -:1012300014C0001B000000003C040001248451D0B5 -:10124000AFA00010AFA000148EE606088F4702285A -:101250003C0500090C00240334A5F0018EE201B026 -:1012600024420001AEE201B0080014A58EE201B0F4 -:101270003C040001248451DCAFA000148EE6060873 -:101280008F4702283C0500090C00240334A5F00513 -:101290008EE201AC24420001AEE201AC8EE201AC70 -:1012A0008EE2015424420001AEE201540C0014DC31 -:1012B0008EE201548F8200A0304200041440FFFDF2 -:1012C000000000008F8200403042000114400008FE -:1012D000000000008F43010424020001106200049A -:1012E000000000008F420264104000060000000071 -:1012F0008EE2017C24420001AEE2017C080014C5AC -:101300008EE2017C8F82004434420004AF820044AC -:101310008EE2017824420001AEE201788EE201788B -:101320008F8200D88F8300D400431023AEE2726C0A -:101330008EE2726C1C4000033C030001004310214C -:10134000AEE2726C0C004064000000000C004440EF -:10135000AF8002288FBF00248FB0002003E0000878 -:1013600027BD002803E000080000000003E000089B -:101370000000000000000000000000002402002C1B -:10138000AF820050AEE072748F420238AEE27278E3 -:101390008F82005424420067AF820058AEE07B8801 -:1013A000AEE07B8CAEE07B843C010001003708217D -:1013B000AC2083BC3C0100010037082103E0000899 -:1013C000A02083B927BDFFD8AFBF0024AFB0002055 -:1013D0008F8200543C0300018C635CD82442006778 -:1013E0001060000DAF8200583C0200010057102130 -:1013F000904283B8104000053C0302003C0100010C -:101400000037082108001503A02083B88EE20000F1 -:1014100000431025AEE200008F4202183042010066 -:10142000104000C6000000008F8200B0304200046F -:10143000104000C2000000003C03000100771821AA -:101440008C6383D08F820104146200B4000000001A -:101450003C030001007718218C6383D48F8200B491 -:10146000146200AE000000008F8200B03C030080D8 -:10147000004310241040000D000000008F82011C6A -:1014800034420002AF82011C8F8200B02403FFFBB4 -:1014900000431024AF8200B08F82011C2403FFFDA3 -:1014A00000431024080015CCAF82011C3C0300014E -:1014B000007718218C6383D08F820104146200822C -:1014C000000000003C030001007718218C6383D4E6 -:1014D0008F8200B41462007C000000003C07000111 -:1014E00000F738218CE783D08F8200B03C040001E4 -:1014F00024845270AFA00014AFA200108F8600B0F9 -:101500003C0500050C00240334A509008F82011C52 -:1015100034420002AF82011C8F8301048F8200B02D -:1015200034420001AF8200B0AF8301048F830120F9 -:10153000276238002466002000C2102B50400001B2 -:10154000276630008F82012810C2000400000000CE -:101550008F82012414C20006000000008EE201A464 -:1015600024420001AEE201A4080015A08EE201A40D -:101570008F4402088F45020C26E20030AC6200085E -:1015800024020400A462000E2402000FAC620018C2 -:10159000AC60001CAC640000AC6500048EE204C4C6 -:1015A000AC620010AF86012092E24E20144000375A -:1015B000000000008EE24E30000210C0244250387D -:1015C00002E220218C830000240200071462001F25 -:1015D000000000008EE34E308EE24E341062001B9D -:1015E000240300408C82000424420001AC820004E9 -:1015F0008EE24E348EE54E30244200011043000747 -:10160000000000008EE24E342442000110A20005CA -:10161000000000000800158A0000000014A000056A -:10162000000000008F82012824420020AF820128A0 -:101630008F8201288C8200042C420011504000133C -:10164000AC800000080015A0000000008EE24E30C3 -:1016500024030040244200015043000300001021F5 -:101660008EE24E3024420001AEE24E308EE24E3029 -:10167000000210C02442503802E220212402000758 -:10168000AC82000024020001AC8200048F82011CA5 -:101690002403FFFD00431024AF82011C8EE201E40D -:1016A0003C07000100F738218CE783D02442000179 -:1016B000AEE201E48EE201E43C0400012484527CA9 -:1016C000080015BDAFA000108F8201043C0100018D -:1016D00000370821AC2283D08F8200B43C07000180 -:1016E00000F738218CE783D03C0400012484528425 -:1016F0003C01000100370821AC2283D4AFA00010C8 -:10170000AFA000148F8600B03C0500050C00240338 -:1017100034A50900080015CC000000008F820104E8 -:101720003C01000100370821AC2283D08F8200B435 -:101730003C01000100370821AC2283D48EE2727490 -:1017400092E304F42442006714600006AEE272746F -:101750008EE272748F4302340043102B1440007BDE -:10176000000000008EE304E48EE204F8146200043A -:101770000000000092E204F450400074A2E004F47F -:101780008F830120276238002466002000C2102BBE -:1017900050400001276630008F82012810C20004EB -:1017A000000000008F82012414C200070000000026 -:1017B0008EE201A40000802124420001AEE201A4D7 -:1017C000080016378EE201A48EE204E4AC62001C2D -:1017D0008EE404B08EE504B42462001CAC62000800 -:1017E00024020008A462000E24020011AC6200185A -:1017F000AC640000AC6500048EE204C4AC6200106E -:10180000AF86012092E24E201440003724100001E0 -:101810008EE24E30000210C02442503802E22021F5 -:101820008C830000240200121462001F00000000DC -:101830008EE34E308EE24E341062001B24030040D3 -:101840008C82000424420001AC8200048EE24E34FB -:101850008EE54E30244200011043000700000000D6 -:101860008EE24E342442000110A200050000000068 -:10187000080016210000000014A000050000000070 -:101880008F82012824420020AF8201288F82012804 -:101890008C8200042C42001150400013AC800000E8 -:1018A00008001637000000008EE24E30240300408E -:1018B0002442000150430003000010218EE24E300C -:1018C00024420001AEE24E308EE24E30000210C0E3 -:1018D0002442503802E2202124020012AC8200008F -:1018E00024020001AC8200045600000B2410000109 -:1018F0008EE204E43C0400012484528CAFA0001466 -:10190000AFA200108EE606088F4702283C050009AA -:101910000C00240334A5F006160000032402000185 -:1019200008001650A2E204F48EE201702442000185 -:10193000AEE201708EE201708EE204E4A2E004F4F3 -:10194000AEE004F0AEE07274AEE204F88EE20E1C7B -:101950001040006D000000008F83012027623800D6 -:101960002466002000C2102B504000012766300082 -:101970008F82012810C20004000000008F82012421 -:1019800014C20007000000008EE201A400008021C4 -:1019900024420001AEE201A4080016AD8EE201A4CB -:1019A0008EE2724CAC62001C8EE404A88EE504AC9E -:1019B0002462001CAC62000824020008A462000E2D -:1019C00024020011AC620018AC640000AC65000495 -:1019D0008EE204C4AC620010AF86012092E24E2079 -:1019E00014400037241000018EE24E30000210C077 -:1019F0002442503802E220218C830000240200128D -:101A00001462001F000000008EE34E308EE24E3460 -:101A10001062001B240300408C8200042442000159 -:101A2000AC8200048EE24E348EE54E30244200013A -:101A300010430007000000008EE24E3424420001F3 -:101A400010A200050000000008001697000000002A -:101A500014A00005000000008F820128244200200D -:101A6000AF8201288F8201288C8200042C42001151 -:101A700050400013AC800000080016AD00000000CC -:101A80008EE24E3024030040244200015043000304 -:101A9000000010218EE24E3024420001AEE24E30B2 -:101AA0008EE24E30000210C02442503802E2202163 -:101AB00024020012AC82000024020001AC82000467 -:101AC0005600000B241000018EE2724C3C04000111 -:101AD00024845298AFA00014AFA200108EE6724C7E -:101AE0008F4702803C0500090C00240334A5F00850 -:101AF00056000001AEE00E1C8EE20174244200018B -:101B0000AEE201748EE201748EE24E2410400019A0 -:101B100000000000AEE04E248F8200403042000101 -:101B200014400008000000008F430104240200015B -:101B300010620004000000008F42026410400006A2 -:101B4000000000008EE2017C24420001AEE2017C34 -:101B5000080016DA8EE2017C8F82004434420004D1 -:101B6000AF8200448EE2017824420001AEE20178A7 -:101B70008EE201788EE272782442FF99AEE27278AA -:101B80008EE272781C4002AD000000008F420238E5 -:101B9000104002AA000000003C0200010057102182 -:101BA000904283E0144002A5000000008F420080B4 -:101BB000AEE2004C8F4200C0AEE200488F4200848B -:101BC000AEE200388F420084AEE202448F420088C9 -:101BD000AEE202488F42008CAEE2024C8F4200908F -:101BE000AEE202508F420094AEE202548F4200985F -:101BF000AEE202588F42009CAEE2025C8F4200A02F -:101C0000AEE202608F4200A4AEE202648F4200A8FE -:101C1000AEE202688F4200ACAEE2026C8F4200B0CE -:101C2000AEE202708F4200B4AEE202748F4200B89E -:101C3000AEE202788F4200BC24040001AEE2027CD6 -:101C4000AEE0003C00041080005710218EE3003C01 -:101C50008C42024424840001006218212C82000F6F -:101C6000AEE3003C1440FFF8000410808F4200CC2B -:101C7000AEE200508F4200D0AEE200548F830120CC -:101C8000276238002466002000C2102B504000015B -:101C9000276630008F82012810C200040000000077 -:101CA0008F82012414C20007000000008EE201A40C -:101CB0000000802124420001AEE201A40800177553 -:101CC0008EE201A48F4402088F45020C26E2003008 -:101CD000AC62000824020400A462000E2402000F7B -:101CE000AC620018AC60001CAC640000AC65000481 -:101CF0008EE204C4AC620010AF86012092E24E2056 -:101D000014400037241000018EE24E30000210C053 -:101D10002442503802E220218C8300002402000774 -:101D20001462001F000000008EE34E308EE24E343D -:101D30001062001B240300408C8200042442000136 -:101D4000AC8200048EE24E348EE54E302442000117 -:101D500010430007000000008EE24E3424420001D0 -:101D600010A20005000000000800175F000000003E -:101D700014A00005000000008F82012824420020EA -:101D8000AF8201288F8201288C8200042C4200112E -:101D900050400013AC8000000800177500000000E0 -:101DA0008EE24E30240300402442000150430003E1 -:101DB000000010218EE24E3024420001AEE24E308F -:101DC0008EE24E30000210C02442503802E2202140 -:101DD00024020007AC82000024020001AC8200044F -:101DE000120002123C020400AFA200183C020001E3 -:101DF00000571021904283B01040010B00000000FA -:101E00008EE206088F43022824420001304A00FF78 -:101E1000514300FDAFA000108EE20608000210C082 -:101E2000005710218FA300188FA4001CAC43060C90 -:101E3000AC4406108F8300548F8200542469003212 -:101E4000012210232C4200331040006A0000582168 -:101E500024180008240F000D240D0007240C004056 -:101E6000240E00018F8701202762380024E800201B -:101E70000102102B50400001276830008F8201289A -:101E800011020004000000008F82012415020007E7 -:101E9000000010218EE201A40000802124420001F4 -:101EA000AEE201A4080017F38EE201A48EE4060856 -:101EB000000420C0008018218EE404308EE5043434 -:101EC00000A3282100A3302B00822021008620219E -:101ED000ACE40000ACE500048EE20608A4F8000EB5 -:101EE000ACEF0018ACEA001C000210C02442060C43 -:101EF00002E21021ACE200088EE204C4ACE2001061 -:101F0000AF88012092E24E201440003324100001DB -:101F10008EE24E30000210C02442503802E22021EE -:101F20008C820000144D001F000000008EE34E3034 -:101F30008EE24E341062001B000000008C82000410 -:101F400024420001AC8200048EE24E348EE34E3017 -:101F500024420001104C0007000000008EE24E34C5 -:101F6000244200011062000500000000080017E094 -:101F70000000000014600005000000008F820128AE -:101F800024420020AF8201288F8201288C82000425 -:101F90002C42001150400010AC800000080017F3E4 -:101FA000000000008EE24E3024420001504C00033D -:101FB000000010218EE24E3024420001AEE24E308D -:101FC0008EE24E30000210C02442503802E220213E -:101FD000AC8D0000AC8E000456000006240B0001FE -:101FE0008F820054012210232C4200331440FF9DA5 -:101FF00000000000316300FF24020001146200773A -:102000003C050009AEEA06088F8300548F82005415 -:1020100024690032012210232C4200331040006159 -:1020200000005821240D0008240C0011240800127F -:1020300024070040240A00018F8301202762380012 -:102040002466002000C2102B50400001276630009B -:102050008F82012810C20004000000008F8201243A -:1020600014C20007000000008EE201A400008021DD -:1020700024420001AEE201A40800185F8EE201A430 -:102080008EE20608AC62001C8EE404A08EE504A477 -:102090002462001CAC620008A46D000EAC6C001839 -:1020A000AC640000AC6500048EE204C4AC620010B5 -:1020B000AF86012092E24E2014400033241000012C -:1020C0008EE24E30000210C02442503802E220213D -:1020D0008C8200001448001F000000008EE34E3088 -:1020E0008EE24E341062001B000000008C8200045F -:1020F00024420001AC8200048EE24E348EE34E3066 -:102100002442000110470007000000008EE24E3418 -:102110002442000110620005000000000800184C75 -:102120000000000014600005000000008F820128FC -:1021300024420020AF8201288F8201288C82000473 -:102140002C42001150400010AC8000000800185FC5 -:10215000000000008EE24E30244200015047000390 -:10216000000010218EE24E3024420001AEE24E30DB -:102170008EE24E30000210C02442503802E220218C -:10218000AC880000AC8A000456000006240B000155 -:102190008F820054012210232C4200331440FFA6EA -:1021A00000000000316300FF2402000114620003FC -:1021B0003C0500090800197C241000013C040001C2 -:1021C000248452A4AFA00010AFA000148F86012079 -:1021D0008F8701240800187B34A5F0113C0400010E -:1021E000248452B0AFA00010AFA000148F8601204D -:1021F0008F87012434A5F0100C00240300008021F7 -:102200000800197C000000003C040001248452BC3A -:10221000AFA000148EE606088F4702283C0500098F -:102220000800197534A5F00F8EE206088F430228C6 -:1022300024420001304900FF512300E2AFA000100A -:102240008EE20608000210C0005710218FA300186C -:102250008FA4001CAC43060CAC4406108F870120F1 -:102260002762380024E800200102102B50400001B2 -:10227000276830008F82012811020004000000004E -:102280008F82012415020007000010218EE201A4B4 -:102290000000802124420001AEE201A4080018F7EA -:1022A0008EE201A48EE40608000420C000801821FC -:1022B0008EE404308EE5043400A3282100A3302BE3 -:1022C0000082202100862021ACE40000ACE500045F -:1022D0008EE3060824020008A4E2000E2402000D8A -:1022E000ACE20018ACE9001C000318C02463060C23 -:1022F00002E31021ACE200088EE204C4ACE200105C -:10230000AF88012092E24E201440003724100001D3 -:102310008EE24E30000210C02442503802E22021EA -:102320008C830000240200071462001F00000000DC -:102330008EE34E308EE24E341062001B24030040C8 -:102340008C82000424420001AC8200048EE24E34F0 -:102350008EE54E30244200011043000700000000CB -:102360008EE24E342442000110A20005000000005D -:10237000080018E10000000014A0000500000000A3 -:102380008F82012824420020AF8201288F820128F9 -:102390008C8200042C42001150400013AC800000DD -:1023A000080018F7000000008EE24E3024030040C1 -:1023B0002442000150430003000010218EE24E3001 -:1023C00024420001AEE24E308EE24E30000210C0D8 -:1023D0002442503802E2202124020007AC8200008F -:1023E00024020001AC8200045600000CAEE906088D -:1023F0003C040001248452C8AFA00010AFA0001418 -:102400008EE606088F4702283C0500090C002403CD -:1024100034A5F0000800197C000000008F83012023 -:10242000276238002466002000C2102B50400001B3 -:10243000276630008F82012810C2000400000000CF -:102440008F82012414C20007000000008EE201A464 -:102450000000802124420001AEE201A40800195EC0 -:102460008EE201A48EE20608AC62001C8EE404A099 -:102470008EE504A42462001CAC620008240200085B -:10248000A462000E24020011AC620018AC640000CB -:10249000AC6500048EE204C4AC620010AF8601207B -:1024A00092E24E2014400037241000018EE24E309C -:1024B000000210C02442503802E220218C83000028 -:1024C000240200121462001F000000008EE34E3050 -:1024D0008EE24E341062001B240300408C82000404 -:1024E00024420001AC8200048EE24E348EE54E3070 -:1024F0002442000110430007000000008EE24E3429 -:102500002442000110A20005000000000800194844 -:102510000000000014A00005000000008F820128C8 -:1025200024420020AF8201288F8201288C8200047F -:102530002C42001150400013AC8000000800195ECE -:10254000000000008EE24E302403004024420001CF -:1025500050430003000010218EE24E30244200015F -:10256000AEE24E308EE24E30000210C024425038AF -:1025700002E2202124020012AC82000024020001A9 -:10258000AC8200045600001D241000013C04000130 -:10259000248452D0AFA00010AFA000148EE606082D -:1025A0008F4702283C0500090C00240334A5F001E4 -:1025B0008EE201B024420001AEE201B00800197CB5 -:1025C0008EE201B03C040001248452DCAFA0001470 -:1025D0008EE606088F4702283C05000934A5F00561 -:1025E0000C002403000000008EE201AC00008021FA -:1025F00024420001AEE201AC8EE201AC1200000CFC -:10260000240200013C01000100370821A02083B012 -:102610008F4202388EE3015824630001AEE3015873 -:102620008EE301580800198CAEE272782402000192 -:102630003C01000100370821A02283B03C020001C8 -:102640008C425CD810400187000000008EE27B8441 -:1026500024430001284200C9144001A4AEE37B8456 -:102660008EE204D43042000214400119AEE07B84B3 -:102670008EE204D43C0306003463100034420002AE -:10268000AEE204D4AFA300188EE206088F430228FE -:1026900024420001304A00FF514300FDAFA000106A -:1026A0008EE20608000210C0005710218FA3001808 -:1026B0008FA4001CAC43060CAC4406108F8300545E -:1026C0008F82005424690032012210232C420033EF -:1026D0001040006A0000582124180008240F000D43 -:1026E000240D0007240C0040240E00018F870120D8 -:1026F0002762380024E800200102102B504000011E -:10270000276830008F8201281102000400000000B9 -:102710008F82012415020007000010218EE201A41F -:102720000000802124420001AEE201A408001A1535 -:102730008EE201A48EE40608000420C00080182167 -:102740008EE404308EE5043400A3282100A3302B4E -:102750000082202100862021ACE40000ACE50004CA -:102760008EE20608A4F8000EACEF0018ACEA001CDC -:10277000000210C02442060C02E21021ACE2000864 -:102780008EE204C4ACE20010AF88012092E24E2039 -:1027900014400033241000018EE24E30000210C0BD -:1027A0002442503802E220218C820000144D001F88 -:1027B000000000008EE34E308EE24E341062001BAB -:1027C000000000008C82000424420001AC8200045E -:1027D0008EE24E348EE34E3024420001104C00074E -:1027E000000000008EE24E34244200011062000519 -:1027F0000000000008001A0200000000146000053C -:10280000000000008F82012824420020AF820128AE -:102810008F8201288C8200042C420011504000104D -:10282000AC80000008001A15000000008EE24E3057 -:1028300024420001504C0003000010218EE24E3073 -:1028400024420001AEE24E308EE24E30000210C053 -:102850002442503802E22021AC8D0000AC8E0004EE -:1028600056000006240B00018F8200540122102321 -:102870002C4200331440FF9D00000000316300FF34 -:102880002402000154620078AFA00010AEEA0608EE -:102890008F8300548F820054246900320122102358 -:1028A0002C4200331040006100005821240D000824 -:1028B000240C00112408001224070040240A0001FF -:1028C0008F830120276238002466002000C2102B6D -:1028D00050400001276630008F82012810C200049A -:1028E000000000008F82012414C2000700000000D5 -:1028F0008EE201A40000802124420001AEE201A486 -:1029000008001A818EE201A48EE20608AC62001C67 -:102910008EE404A08EE504A42462001CAC620008CE -:10292000A46D000EAC6C0018AC640000AC65000433 -:102930008EE204C4AC620010AF86012092E24E2009 -:1029400014400033241000018EE24E30000210C00B -:102950002442503802E220218C8200001448001FDB -:10296000000000008EE34E308EE24E341062001BF9 -:10297000000000008C82000424420001AC820004AC -:102980008EE24E348EE34E302442000110470007A1 -:10299000000000008EE24E34244200011062000567 -:1029A0000000000008001A6E00000000146000051E -:1029B000000000008F82012824420020AF820128FD -:1029C0008F8201288C8200042C420011504000109C -:1029D000AC80000008001A81000000008EE24E303A -:1029E0002442000150470003000010218EE24E30C7 -:1029F00024420001AEE24E308EE24E30000210C0A2 -:102A00002442503802E22021AC880000AC8A000445 -:102A100056000006240B00018F820054012210236F -:102A20002C4200331440FFA600000000316300FF79 -:102A30002402000110620022000000003C0400019A -:102A4000248452A4AFA00010AFA000148F860120F0 -:102A50008F8701243C0500090C00240334A5F011E4 -:102A600008001AAD000000003C040001248452B0AC -:102A7000AFA000148F8601208F8701243C05000938 -:102A80000C00240334A5F01008001AAD000000006B -:102A90003C040001248452BCAFA000148EE606085A -:102AA0008F4702283C0500090C00240334A5F00FD1 -:102AB0008EE201AC24420001AEE201AC8EE201AC38 -:102AC0008EE2015C24420001AEE2015C8EE2015C18 -:102AD0008EE204D430420001104000550000000096 -:102AE0008F42021830420080104000290000000090 -:102AF0008F82004434420040AF8200448EE27B7CEF -:102B0000004028218EE200C08EE300C424060000AD -:102B10002407FFFF00002021004610241444000D6C -:102B2000006718241465000B000000008EE27B8013 -:102B3000004028218EE200E08EE300E40000202126 -:102B40000046102414440003006718241065000B8D -:102B5000000000008EE200C08EE300C48EE400E0BE -:102B60008EE500E4AEE37B7CAEE57B808F820044A3 -:102B70003842002008001B38AF8200448F82004496 -:102B80002403FFDF0043102408001B38AF820044F9 -:102B90008F8200442403FFDF00431024AF820044EF -:102BA0008EE27B7C004028218EE200C08EE300C4D0 -:102BB000240600002407FFFF000020210046102407 -:102BC0001444000D006718241465000B0000000079 -:102BD0008EE27B80004028218EE200E08EE300E45C -:102BE000000020210046102414440003006718242C -:102BF0001065000B000000008EE200C08EE300C4F0 -:102C00008EE400E08EE500E4AEE37B7CAEE57B8005 -:102C10008F8200443842004008001B38AF820044D5 -:102C20008F8200443442004008001B38AF820044C9 -:102C30008F82004434420040AF8200448EE27B8C9D -:102C4000244300012842001514400028AEE37B8C89 -:102C50008F82004438420020AF82004408001B38B5 -:102C6000AEE07B8C8EE204D43042000110400011B3 -:102C7000000000008F42021830420080104000091E -:102C8000000000008F82004434420020AF820044E4 -:102C90008F8200442403FFBF0043102408001B362A -:102CA000AF8200448F8200443442006008001B362B -:102CB000AF8200448F82004434420040AF8200441F -:102CC0008EE27B88244300012842138914400005CA -:102CD000AEE37B888F82004438420020AF820044FC -:102CE000AEE07B880C004603000000008FBF00248C -:102CF0008FB0002003E0000827BD002827BDFFB8E3 -:102D0000AFBF0044AFB60040AFB5003CAFB4003831 -:102D1000AFB30034AFB20030AFB1002CAFB0002879 -:102D20008F96006432C200041040000C240200049C -:102D3000AF8200648F420114AEE204E08F82006033 -:102D400034420008AF8200608EE2016C2442000130 -:102D5000AEE2016C080022F48EE2016C32C2000186 -:102D60001040000424020001AF820064080022F435 -:102D70000000000032C200021440000C3C050003B9 -:102D80003C0400012484535434A5000102C03021C6 -:102D900000003821AFA000100C002403AFA00014E5 -:102DA0002402FFF8080022F4AF8200648F43022C53 -:102DB0008F42010C5062000CAFA000108F42022C19 -:102DC00000021080005A10218C420300AFA20020A4 -:102DD0008F42022C24070001244200013042003FB0 -:102DE00008001B80AF42022C3C0400012484536085 -:102DF000AFA000148F46022C8F47010C3C05000346 -:102E00000C00240334A5F01F0000382114E0000357 -:102E100000000000080022EDAF96006493A200209D -:102E20002443FFFF2C62001110400658000310805D -:102E30003C010001002208218C22541800400008A7 -:102E4000000000008FA2002030420FFFAEE20E0C07 -:102E50008F82006034420200AF8200608EE201186F -:102E600024420001AEE20118080022E88EE20118B7 -:102E70008FA20020240300013C010001003708213B -:102E8000A02383B130420FFFAEE252388F82006040 -:102E900034420100AF8200608EE20144244200010E -:102EA000AEE20144080022E88EE201448FA2002035 -:102EB0000002120000022502240200011082000517 -:102EC00024020002108200092402FFFE08001BC930 -:102ED000AFA000108EE204D4AEE40070AEE4007443 -:102EE0003442000108001BBDAEE204D48EE304D4DA -:102EF000AEE40070AEE4007400621824AEE304D4C3 -:102F00008F8400540004144200041C8200431021EA -:102F100000041CC20043102300041D0200431021C2 -:102F200000041D420043102308001BD0AEE20078CD -:102F30003C0400012484536CAFA000148FA6002031 -:102F40003C0500030C00240334A500048EE20110AC -:102F500024420001AEE20110080022E88EE20110D6 -:102F6000274402120C0022FE240500063049001FEF -:102F7000000920C002E410219442727C30424000DB -:102F80001040000A0097102197430212A443727E5A -:102F90008F43021400971021AC43728002E4182181 -:102FA0003402800008001C79A462727C9443727E13 -:102FB000974202121462000602E4102100971021C9 -:102FC0008C4372808F4202141062009F02E4102131 -:102FD0009442727C304280001040002A2406FFFF99 -:102FE00000002021000410C002E210219442737CF2 -:102FF000304240005440000500803021248400010C -:103000002C8200801440FFF8000410C004C100109E -:10301000000618C0000610C0005718218C63737C8E -:1030200000571021AFA300108C4273803C040001B4 -:1030300024845378AFA200148F4702143C05000388 -:103040000C00240334A5001308001C903C02080067 -:103050009744021200771021A444737E8F44021417 -:103060000077102102E31821AC4473803402800001 -:10307000A462737C000910C002E2102108001C79D0 -:10308000A446727C02E410219445727C08001C2E38 -:10309000000510C09443737E97420212146200062A -:1030A000000510C0009710218C4373808F420214DA -:1030B00010620065000510C002E210219445737C87 -:1030C000000510C002E210219442737C304280005F -:1030D0001040FFF000971021000520C0009710213C -:1030E0009443737E97420212146200062406FFFF87 -:1030F000009710218C4373808F420214106200539A -:103100003C02080000002021000410C002E210214F -:103110009442737C304240005440000500803021CE -:10312000248400012C8200801440FFF8000410C0A9 -:1031300004C10023000618C0000910C00057182160 -:103140008C63727C00571021AFA300108C427280F8 -:103150003C04000124845384AFA200148F4702145E -:103160003C0500030C00240334A5F01708001C9054 -:103170003C0208008F43021000B71021AC43777C5B -:103180008F43021400B71021AC4377803C0200014A -:10319000005710218C4283B4244200013C010001FD -:1031A00000370821AC2283B43C03000100771821CA -:1031B0008C6383B402E5102108001C82A443777C51 -:1031C0009744021200771021A444737E8F440214A6 -:1031D0000077102102E31821AC4473803402800090 -:1031E000A462737C000510C002E21021A446737C27 -:1031F00000002021000428C002E510219442777CC1 -:103200001040FFDC248400012C8200805440FFFA2F -:10321000000428C092E204D81040000624020001F5 -:103220008EE304DC012210040062182508001C8FC4 -:10323000AEE304DC8F830228240200010122100483 -:1032400000621825AF8302283C02080034421000B7 -:10325000AFA200188EE206088F4302282442000124 -:10326000304A00FF514300FDAFA000108EE2060877 -:10327000000210C0005710218FA300188FA4001C5B -:10328000AC43060CAC4406108F8300548F8200546C -:1032900024690032012210232C4200331040006ABE -:1032A0000000582124100008240F000D240D0007F1 -:1032B000240C0040240E00018F8701202762380073 -:1032C00024E800200102102B504000012768300044 -:1032D0008F82012811020004000000008F82012467 -:1032E00015020007000010218EE201A40000382121 -:1032F00024420001AEE201A408001D088EE201A4F0 -:103300008EE40608000420C0008018218EE40430FA -:103310008EE5043400A3282100A3302B0082202155 -:1033200000862021ACE40000ACE500048EE2060833 -:10333000A4F0000EACEF0018ACEA001C000210C0B4 -:103340002442060C02E21021ACE200088EE204C422 -:10335000ACE20010AF88012092E24E20144000330E -:10336000240700018EE24E30000210C02442503883 -:1033700002E220218C820000144D001F000000009A -:103380008EE34E308EE24E341062001B00000000CF -:103390008C82000424420001AC8200048EE24E3490 -:1033A0008EE34E3024420001104C00070000000064 -:1033B0008EE24E342442000110620005000000003D -:1033C00008001CF50000000014600005000000006B -:1033D0008F82012824420020AF8201288F82012899 -:1033E0008C8200042C42001150400010AC80000080 -:1033F00008001D08000000008EE24E30244200014B -:10340000504C0003000010218EE24E302442000197 -:10341000AEE24E308EE24E30000210C024425038F0 -:1034200002E22021AC8D0000AC8E000454E00006C6 -:10343000240B00018F820054012210232C42003300 -:103440001440FF9D00000000316300FF24020001D2 -:1034500054620078AFA00010AEEA06088F830054D3 -:103460008F82005424690032012210232C42003341 -:103470001040006100005821240E0008240D0011A6 -:10348000240A001224080040240C00018F8301202C -:10349000276238002466002000C2102B5040000133 -:1034A000276630008F82012810C20004000000004F -:1034B0008F82012414C20007000000008EE201A4E4 -:1034C0000000382124420001AEE201A408001D746E -:1034D0008EE201A48EE20608AC62001C8EE404A019 -:1034E0008EE504A42462001CAC620008A46E000EE9 -:1034F000AC6D0018AC640000AC6500048EE204C43E -:10350000AC620010AF86012092E24E2014400033DE -:10351000240700018EE24E30000210C024425038D1 -:1035200002E220218C820000144A001F00000000EB -:103530008EE34E308EE24E341062001B000000001D -:103540008C82000424420001AC8200048EE24E34DE -:103550008EE34E30244200011048000700000000B6 -:103560008EE24E342442000110620005000000008B -:1035700008001D610000000014600005000000004C -:103580008F82012824420020AF8201288F820128E7 -:103590008C8200042C42001150400010AC800000CE -:1035A00008001D74000000008EE24E30244200012D -:1035B00050480003000010218EE24E3024420001EA -:1035C000AEE24E308EE24E30000210C0244250383F -:1035D00002E22021AC8A0000AC8C000454E000061A -:1035E000240B00018F820054012210232C4200334F -:1035F0001440FFA600000000316300FF2402000118 -:1036000010620022000000003C040001248453905A -:10361000AFA00010AFA000148F8601208F87012477 -:103620003C0500090C00240334A5F01108001DA07E -:10363000000000003C0400012484539CAFA000144F -:103640008F8601208F8701243C0500090C0024038C -:1036500034A5F01008001DA0000000003C0400018B -:10366000248453A8AFA000148EE606088F470228D2 -:103670003C0500090C00240334A5F00F8EE201ACD8 -:1036800024420001AEE201AC8EE201AC8EE20124E4 -:1036900024420001AEE2012408001F978EE20124BB -:1036A000274402120C0022FE240500063049001FA8 -:1036B000000928C002E510219442727C304280004B -:1036C0001040002F02E510219442727C30424000ED -:1036D0001440001C00B710219443727E97420212DE -:1036E0001462001800B710218C4372808F420214BC -:1036F00054620016AFA2001092E204D810400007F6 -:10370000240200018EE304DC0122100400021027D1 -:103710000062182408001DC9AEE304DC8F83022870 -:10372000012210040002102700621824AF8302282F -:10373000000910C002E218213402C00008001E4E29 -:10374000A462727C8F420214AFA20010000910C064 -:10375000005710218C42727C3C040001248453B435 -:103760003C050003AFA200148F47021034A5F01CE3 -:103770000C0024030120302108001E833C020800B5 -:1037800000B710219443727E97420212146200190E -:10379000000918C000B710218C4372808F420214B8 -:1037A00014620014000918C002E510219447727CCD -:1037B000000720C0009710219443737E00B71021AA -:1037C000A443727E009710218C43738000B71021B0 -:1037D000AC43728002E410219443737C02E5102113 -:1037E000A443727C02E418213402C00008001E4E7B -:1037F000A462737C02E310219447727C00003021A4 -:10380000000720C002E410219442737C0000402194 -:10381000304280001440002500E028210060502143 -:10382000340BC000009710219443737E974202121C -:103830005462001500E02821009710218C4373800A -:103840008F4202145462001000E02821110000068B -:1038500002E410219443737C000510C002E21021A1 -:1038600008001E1AA443737C9443737C02EA10215F -:10387000A443727C000710C002E21021A44B737CA9 -:1038800008001E2824060001000510C002E21021D5 -:103890009447737C000720C002E410219442737C9B -:1038A000304280001040FFDF2508000130C200FFD9 -:1038B0001440002500002021000720C0009710219F -:1038C0009443737E974202121462000F000910C0E5 -:1038D000009710218C4373808F4202141462000AF7 -:1038E000000910C002E418213402C00015000015C0 -:1038F000A462737C000910C002E218213402800027 -:1039000008001E4EA462727C005710218C42727C0B -:103910003C040001248453C03C050003AFA2001006 -:10392000000710C0005710218C42737C34A5001E84 -:10393000012030210C002403AFA2001408001E83D4 -:103940003C02080000002021000428C000B710211C -:103950009443777E974202125462002B2484000124 -:1039600000B710218C4377808F42021454620026E6 -:10397000248400013C020001005710218C4283B4D2 -:103980002442FFFF3C01000100370821AC2283B430 -:103990003C020001005710218C4283B4008090212A -:1039A0000242102B1040000E24B1777C24B07784A3 -:1039B00002F0202102F128210C00249024060008A6 -:1039C000263100083C020001005710218C4283B4CC -:1039D000265200010242102B1440FFF52610000869 -:1039E0003C040001009720218C8483B42405000846 -:1039F000000420C02484777C0C00248802E4202169 -:103A000008001E833C0208002C8200801440FFCF77 -:103A1000000428C03C02080034422000AFA2001875 -:103A20008EE206088F43022824420001304A00FF3C -:103A3000514300FDAFA000108EE20608000210C046 -:103A4000005710218FA300188FA4001CAC43060C54 -:103A5000AC4406108F8300548F82005424690032D6 -:103A6000012210232C4200331040006A000058212C -:103A700024100008240F000D240D0007240C004022 -:103A8000240E00018F8701202762380024E80020DF -:103A90000102102B50400001276830008F8201285E -:103AA00011020004000000008F82012415020007AB -:103AB000000010218EE201A4000038212442000100 -:103AC000AEE201A408001EFB8EE201A48EE406080B -:103AD000000420C0008018218EE404308EE50434F8 -:103AE00000A3282100A3302B008220210086202162 -:103AF000ACE40000ACE500048EE20608A4F0000E81 -:103B0000ACEF0018ACEA001C000210C02442060C06 -:103B100002E21021ACE200088EE204C4ACE2001024 -:103B2000AF88012092E24E201440003324070001A8 -:103B30008EE24E30000210C02442503802E22021B2 -:103B40008C820000144D001F000000008EE34E30F8 -:103B50008EE24E341062001B000000008C820004D4 -:103B600024420001AC8200048EE24E348EE34E30DB -:103B700024420001104C0007000000008EE24E3489 -:103B800024420001106200050000000008001EE849 -:103B90000000000014600005000000008F82012872 -:103BA00024420020AF8201288F8201288C820004E9 -:103BB0002C42001150400010AC80000008001EFB99 -:103BC000000000008EE24E3024420001504C000301 -:103BD000000010218EE24E3024420001AEE24E3051 -:103BE0008EE24E30000210C02442503802E2202102 -:103BF000AC8D0000AC8E000454E00006240B0001E4 -:103C00008F820054012210232C4200331440FF9D68 -:103C100000000000316300FF2402000154620078BC -:103C2000AFA00010AEEA06088F8300548F820054C4 -:103C300024690032012210232C420033104000611D -:103C400000005821240E0008240D0011240A00123F -:103C500024080040240C00018F83012027623800D3 -:103C60002466002000C2102B50400001276630005F -:103C70008F82012810C20004000000008F820124FE -:103C800014C20007000000008EE201A400003821E9 -:103C900024420001AEE201A408001F678EE201A4E5 -:103CA0008EE20608AC62001C8EE404A08EE504A43B -:103CB0002462001CAC620008A46E000EAC6D0018FB -:103CC000AC640000AC6500048EE204C4AC62001079 -:103CD000AF86012092E24E201440003324070001F9 -:103CE0008EE24E30000210C02442503802E2202101 -:103CF0008C820000144A001F000000008EE34E304A -:103D00008EE24E341062001B000000008C82000422 -:103D100024420001AC8200048EE24E348EE34E3029 -:103D20002442000110480007000000008EE24E34DB -:103D300024420001106200050000000008001F542A -:103D40000000000014600005000000008F820128C0 -:103D500024420020AF8201288F8201288C82000437 -:103D60002C42001150400010AC80000008001F677A -:103D7000000000008EE24E30244200015048000353 -:103D8000000010218EE24E3024420001AEE24E309F -:103D90008EE24E30000210C02442503802E2202150 -:103DA000AC8A0000AC8C000454E00006240B000137 -:103DB0008F820054012210232C4200331440FFA6AE -:103DC00000000000316300FF2402000110620022A5 -:103DD000000000003C04000124845390AFA00010B8 -:103DE000AFA000148F8601208F8701243C050009B5 -:103DF0000C00240334A5F01108001F9300000000FC -:103E00003C0400012484539CAFA000148F86012041 -:103E10008F8701243C0500090C00240334A5F01011 -:103E200008001F93000000003C040001248453A8F4 -:103E3000AFA000148EE606088F4702283C05000953 -:103E40000C00240334A5F00F8EE201AC24420001E3 -:103E5000AEE201AC8EE201AC8EE201282442000108 -:103E6000AEE201288EE201288EE2016424420001C4 -:103E7000AEE20164080022E88EE201648FA2002015 -:103E80000002120000021D0224020001106200055F -:103E9000240200021062000D0000000008001FB79D -:103EA000AFA0001092E204D81440000624020001E2 -:103EB0008F820228AEE204DC2402FFFFAF820228D8 -:103EC0002402000108001FBEA2E204D892E204D836 -:103ED0005040000CA2E004D88EE204DCAF8202283D -:103EE00008001FBEA2E004D83C040001248453C88B -:103EF000AFA000148FA600203C0500030C00240393 -:103F000034A5F0098EE2013C24420001AEE2013CFE -:103F1000080022E88EE2013C8FA20020000212007D -:103F20000002250224020001108200052402000282 -:103F30001082000F0000000008001FE3AFA0001077 -:103F40008F8202203C0308FF3463FFFF00431024EC -:103F500034420008AF820220240200013C0100012B -:103F600000370821A02283B208001FEAAEE401084E -:103F70008F8202203C0308FF3463FFF700431024C4 -:103F8000AF8202203C01000100370821A02083B24B -:103F900008001FEAAEE401083C040001248453D465 -:103FA000AFA000148FA600203C0500030C002403E2 -:103FB00034A5F00A8EE2012C24420001AEE2012C6D -:103FC000080022E88EE2012C8FA2002000021200DD -:103FD00000021D02240200011062000524020002FA -:103FE0001062000E0000000008002011AFA00010B9 -:103FF0008F8202203C0308FF3463FFFF004310243C -:1040000034420008AF820220240200013C0100017A -:104010000037082108002018A02283B33C020001C9 -:1040200000571021904283B23C0100010037082163 -:104030001440000EA02083B38F8202203C0308FFAF -:104040003463FFF70043102408002018AF820220D9 -:104050003C040001248453E0AFA000148FA600208C -:104060003C0500030C00240334A5F00B8EE2011480 -:1040700024420001AEE20114080022E88EE201149D -:1040800027840208274502000C00249A2406000811 -:1040900026E40094274502000C00249A2406000818 -:1040A0008EE2013424420001AEE20134080022E82D -:1040B0008EE201348F460248000020210C00510896 -:1040C000240500048EE2013024420001AEE20130FA -:1040D000080022E88EE201308EF301CC8EF401D08C -:1040E0008EF501D88EE2014026E400302442000122 -:1040F000AEE201408EF001408EF100748EF200704D -:104100000C00248824050400AEF301CCAEF401D0E9 -:10411000AEF501D8AEF00140AEF10074AEF2007021 -:104120008F42025C26E40094AEE200608F4202609F -:104130002745020024060008AEE2006824020006BB -:104140000C00249AAEE200643C023B9A3442CA005E -:10415000AEE2006C240203E8240400022403000100 -:10416000AEE20104AEE40100AEE3010C8F82022056 -:10417000304200081040000400000000AEE30108D7 -:104180000800206100002021AEE401080000202189 -:104190003C0300010064182190635C3002E41021AC -:1041A00024840001A043009C2C82000F1440FFF8DF -:1041B000000000008F82004002E4182124840001E6 -:1041C0000002170224420030A062009C02E4102189 -:1041D000080022E8A040009C240200013C010001EC -:1041E00000370821A02283E0240B040024080014D7 -:1041F000240A0040240900018F8301002762300057 -:104200002466002000C2102B5040000127662800C1 -:104210008F82010810C20004000000008F82010498 -:1042200014C2000726E200308EE201A80000382107 -:1042300024420001AEE201A8080020A88EE201A8F5 -:104240008EE404B88EE504BCAC620008A46B000EDA -:10425000AC680018AC60001CAC640000AC650004E5 -:104260008EE204CCAC620010AF86010092E204EC56 -:104270001440000E240700018EE24E282442000163 -:10428000504A0003000010218EE24E282442000113 -:10429000AEE24E288EE24E28000210C024424E3874 -:1042A00002E21021AC480000AC49000410E0FFD24B -:1042B00000000000080022E8000000003C020900A5 -:1042C000AEE05238AEE0523CAEE05240AEE0524476 -:1042D000AEE001D03C01000100370821A02083B1ED -:1042E000AFA200188EE206088F4302282442000184 -:1042F000304A00FF514300FDAFA000108EE20608D7 -:10430000000210C0005710218FA300188FA4001CBA -:10431000AC43060CAC4406108F8300548F820054CB -:1043200024690032012210232C4200331040006A1D -:104330000000582124100008240F000D240D000750 -:10434000240C0040240E00018F87012027623800D2 -:1043500024E800200102102B5040000127683000A3 -:104360008F82012811020004000000008F820124C6 -:1043700015020007000010218EE201A40000382180 -:1043800024420001AEE201A40800212C8EE201A427 -:104390008EE40608000420C0008018218EE404305A -:1043A0008EE5043400A3282100A3302B00822021B5 -:1043B00000862021ACE40000ACE500048EE2060893 -:1043C000A4F0000EACEF0018ACEA001C000210C014 -:1043D0002442060C02E21021ACE200088EE204C482 -:1043E000ACE20010AF88012092E24E20144000336E -:1043F000240700018EE24E30000210C024425038E3 -:1044000002E220218C820000144D001F00000000F9 -:104410008EE34E308EE24E341062001B000000002E -:104420008C82000424420001AC8200048EE24E34EF -:104430008EE34E3024420001104C000700000000C3 -:104440008EE24E342442000110620005000000009C -:1044500008002119000000001460000500000000A1 -:104460008F82012824420020AF8201288F820128F8 -:104470008C8200042C42001150400010AC800000DF -:104480000800212C000000008EE24E302442000182 -:10449000504C0003000010218EE24E3024420001F7 -:1044A000AEE24E308EE24E30000210C02442503850 -:1044B00002E22021AC8D0000AC8E000454E0000626 -:1044C000240B00018F820054012210232C42003360 -:1044D0001440FF9D00000000316300FF2402000132 -:1044E00054620078AFA00010AEEA06088F83005433 -:1044F0008F82005424690032012210232C420033A1 -:104500001040006100005821240E0008240D001105 -:10451000240A001224080040240C00018F8301208B -:10452000276238002466002000C2102B5040000192 -:10453000276630008F82012810C2000400000000AE -:104540008F82012414C20007000000008EE201A443 -:104550000000382124420001AEE201A408002198A5 -:104560008EE201A48EE20608AC62001C8EE404A078 -:104570008EE504A42462001CAC620008A46E000E48 -:10458000AC6D0018AC640000AC6500048EE204C49D -:10459000AC620010AF86012092E24E20144000333E -:1045A000240700018EE24E30000210C02442503831 -:1045B00002E220218C820000144A001F000000004B -:1045C0008EE34E308EE24E341062001B000000007D -:1045D0008C82000424420001AC8200048EE24E343E -:1045E0008EE34E3024420001104800070000000016 -:1045F0008EE24E34244200011062000500000000EB -:104600000800218500000000146000050000000083 -:104610008F82012824420020AF8201288F82012846 -:104620008C8200042C42001150400010AC8000002D -:1046300008002198000000008EE24E302442000164 -:1046400050480003000010218EE24E302442000149 -:10465000AEE24E308EE24E30000210C0244250389E -:1046600002E22021AC8A0000AC8C000454E0000679 -:10467000240B00018F820054012210232C420033AE -:104680001440FFA600000000316300FF2402000177 -:1046900010620022000000003C04000124845390BA -:1046A000AFA00010AFA000148F8601208F870124D7 -:1046B0003C0500090C00240334A5F011080021C4B6 -:1046C000000000003C0400012484539CAFA00014AF -:1046D0008F8601208F8701243C0500090C002403EC -:1046E00034A5F010080021C4000000003C040001C3 -:1046F000248453A8AFA000148EE606088F47022832 -:104700003C0500090C00240334A5F00F8EE201AC37 -:1047100024420001AEE201AC8EE201AC8EE2012047 -:1047200024420001AEE201208EE201208EE2016807 -:1047300024420001AEE20168080022E88EE201682E -:104740008F42025C26E40094AEE200608F42026079 -:1047500027450200240600080C00249AAEE20068F7 -:104760008F8202203042000814400002240200011F -:1047700024020002AEE201088EE2011C2442000184 -:10478000AEE2011C080022E88EE2011C3C0400019C -:10479000248453ECAFA00010AFA000148FA600201B -:1047A0003C0500030C00240334A5F00F93A2002065 -:1047B0003C0307003463100000431025AFA200182B -:1047C0008EE206088F43022824420001304900FF90 -:1047D000512300E2AFA000108EE20608000210C0D4 -:1047E000005710218FA300188FA4001CAC43060CA7 -:1047F000AC4406108F8701202762380024E800208F -:104800000102102B50400001276830008F820128E0 -:1048100011020004000000008F820124150200072D -:10482000000010218EE201A4000038212442000182 -:10483000AEE201A40800225D8EE201A48EE4060827 -:10484000000420C0008018218EE404308EE504347A -:1048500000A3282100A3302B0082202100862021E4 -:10486000ACE40000ACE500048EE306082402000876 -:10487000A4E2000E2402000DACE20018ACE9001C1A -:10488000000318C02463060C02E31021ACE2000808 -:104890008EE204C4ACE20010AF88012092E24E2008 -:1048A00014400037240700018EE24E30000210C091 -:1048B0002442503802E220218C83000024020007A9 -:1048C0001462001F000000008EE34E308EE24E3472 -:1048D0001062001B240300408C820004244200016B -:1048E000AC8200048EE24E348EE54E30244200014C -:1048F00010430007000000008EE24E342442000105 -:1049000010A200050000000008002247000000007F -:1049100014A00005000000008F820128244200201E -:10492000AF8201288F8201288C8200042C42001162 -:1049300050400013AC8000000800225D0000000021 -:104940008EE24E3024030040244200015043000315 -:10495000000010218EE24E3024420001AEE24E30C3 -:104960008EE24E30000210C02442503802E2202174 -:1049700024020007AC82000024020001AC82000483 -:1049800054E0000CAEE906083C040001248453F412 -:10499000AFA00010AFA000148EE606088F470228D3 -:1049A0003C0500090C00240334A5F000080022E0B7 -:1049B000000000008F830120276238002466002059 -:1049C00000C2102B50400001276630008F82012862 -:1049D00010C20004000000008F82012414C20007EE -:1049E000000000008EE201A40000382124420001F2 -:1049F000AEE201A4080022C48EE201A48EE2060801 -:104A0000AC62001C8EE404A08EE504A42462001CA9 -:104A1000AC62000824020008A462000E2402001107 -:104A2000AC620018AC640000AC6500048EE204C403 -:104A3000AC620010AF86012092E24E201440003795 -:104A4000240700018EE24E30000210C0244250388C -:104A500002E220218C830000240200121462001F55 -:104A6000000000008EE34E308EE24E341062001BD8 -:104A7000240300408C82000424420001AC82000424 -:104A80008EE24E348EE54E30244200011043000782 -:104A9000000000008EE24E342442000110A2000506 -:104AA00000000000080022AE0000000014A0000575 -:104AB000000000008F82012824420020AF820128DC -:104AC0008F8201288C8200042C4200115040001378 -:104AD000AC800000080022C4000000008EE24E30CE -:104AE0002403004024420001504300030000102131 -:104AF0008EE24E3024420001AEE24E308EE24E3065 -:104B0000000210C02442503802E220212402001288 -:104B1000AC82000024020001AC82000414E0001BFF -:104B2000000000003C040001248453FCAFA00010EE -:104B3000AFA000148EE606088F4702283C05000946 -:104B40000C00240334A5F0018EE201B024420001E0 -:104B5000AEE201B0080022E08EE201B03C040001A8 -:104B600024845408AFA000148EE606088F4702285C -:104B70003C0500090C00240334A5F0058EE201ACCD -:104B800024420001AEE201AC8EE201AC8EE20150A3 -:104B900024420001AEE201508EE201508EE201603B -:104BA00024420001AEE201608EE201608F43022CDC -:104BB0008F42010C1462000924020002AF820064DB -:104BC0008F82006414400005000000008F43022C17 -:104BD0008F42010C1462F875000000008FBF004482 -:104BE0008FB600408FB5003C8FB400388FB30034CF -:104BF0008FB200308FB1002C8FB0002803E0000886 -:104C000027BD004827BDFFF82408FFFF10A00014AF -:104C1000000048213C0AEDB8354A83209087000007 -:104C200024840001000030210107102630420001D9 -:104C30001040000200081842006A18260060402157 -:104C400024C600012CC200081440FFF700073842B8 -:104C5000252900010125102B1440FFF00000000061 -:104C60000100102103E0000827BD000827BDFFE870 -:104C700027642800AFBF00100C0024882405100012 -:104C800024020021AF800100AF800104AF80010841 -:104C9000AF800110AF800114AF800118AF800120F8 -:104CA000AF800124AF800128AF800130AF80013494 -:104CB000AF800138AEE04E28AEE04E2CAEE04E3074 -:104CC000AEE04E34AF82011C8F42021830420040E9 -:104CD00010400004000000008F82011C34420004D8 -:104CE000AF82011C8FBF001003E0000827BD001831 -:104CF00027BDFFE0AFBF00188F820104AFA20010F4 -:104D00008F8201003C050002AFA200148F8600B024 -:104D10008F87011C3C040001248454C00C00240330 -:104D200034A5F0008F8300B03C027F00006218249D -:104D30003C020400106200290043102B14400008BC -:104D40003C0220003C020100106200243C020200F0 -:104D50001062001100000000080023740000000031 -:104D6000106200083C0240001462001C00000000B9 -:104D70008EE2019024420001AEE20190080023740B -:104D80008EE201908EE2018C24420001AEE2018CA1 -:104D9000080023748EE2018C8F82011C34420002D1 -:104DA000AF82011C8F8301048F8200B03442000166 -:104DB000AF8200B0AF8301048F82011C2403FFFD8A -:104DC00000431024AF82011C8EE201A024420001A6 -:104DD000AEE201A0080023778EE201A08F8200B02E -:104DE00034420001AF8200B08FBF001803E000081A -:104DF00027BD002027BDFFE0AFBF001CAFB00018EB -:104E00008F820120AFA200108F8201243C05000197 -:104E1000AFA200148F8600A08F87011C3C04000104 -:104E2000248454CC0C00240334A5F0008F8300A00C -:104E30003C027F00006218243C0204001062005310 -:104E4000000080210043102B144000083C04200087 -:104E50003C0201001062004D3C0202001062003A68 -:104E600000000000080023E00000000010640003C0 -:104E70003C02400014620045000000008F8200A048 -:104E80000044102410400006000000008EE201944F -:104E900024420001AEE20194080023A98EE20194AD -:104EA0008EE2019824420001AEE201988EE2019860 -:104EB0008F82011C34420002AF82011C8F82011CD0 -:104EC000304202001040001B000000008F8300A051 -:104ED0008F8401248F8200AC14400007240200015B -:104EE0003C0200013442F0000062102450400001F6 -:104EF00024100001240200011200000DAF8200A066 -:104F00008F8201242442FFE0AF8201248F8201249A -:104F10008F820124276330000043102B10400005CE -:104F2000276237E0AF820124080023CA0000000096 -:104F3000AF8401248F82011C2403FFFD0043102451 -:104F4000080023E3AF82011C8F82011C344200025F -:104F5000AF82011C8F8301248F8200A034420001A4 -:104F6000AF8200A0AF8301248F82011C2403FFFDC8 -:104F700000431024AF82011C8EE2019C24420001F8 -:104F8000AEE2019C080023E38EE2019C8F8200A028 -:104F900034420001AF8200A08FBF001C8FB0001808 -:104FA00003E0000827BD0020000000003C020001D3 -:104FB0008C425C5827BDFFE8AFBF001414400012BC -:104FC000AFB000103C10000126105DD0020020217F -:104FD0000C0024882405200026021FE03C0100016B -:104FE000AC225D943C010001AC225D90AF420250C6 -:104FF00024022000AF500254AF42025824020001A4 -:105000003C010001AC225C588FBF00148FB000102F -:1050100003E0000827BD00183C0300018C635D9489 -:105020008C8200008FA800108FA90014AC620000D1 -:105030003C0200018C425D948C830004AC4300046C -:10504000AC4500088F8400542443FFE0AC460010B8 -:10505000AC470014AC480018AC49001C3C010001EE -:10506000AC235D94AC44000C3C02000124425DD0B2 -:105070000062182B10600005000000003C020001D7 -:105080008C425D903C010001AC225D943C03000128 -:105090008C635D943C0200018C425C40AC62000079 -:1050A0003C0300018C635D943C0200018C425C4037 -:1050B000AC62000403E00008AF4302503C0300016F -:1050C0008C635D943C0200018C425C4027BDFFD0A4 -:1050D000AFB400208FB40040AFB00010008080213A -:1050E000AFB500248FB500448FA40048AFB10014C1 -:1050F00000A08821AFBF0028AFB3001CAFB20018DA -:10510000AC6200003C0500018CA55D943C020001EE -:105110008C425C4000C0902100E098211080000685 -:10512000ACA2000424A500080C002490240600185A -:105130000800244E0000000024A400080C0024886D -:10514000240500183C0200018C425D943C050001DE -:1051500024A55DD02442FFE03C010001AC225D9417 -:105160000045102B10400005000000003C0200012B -:105170008C425D903C010001AC225D943C03000137 -:105180008C635D948E020000AC6200003C03000161 -:105190008C635D948E020004AC620004AC71000864 -:1051A0008F8400542462FFE03C010001AC225D9436 -:1051B0000045102BAC720010AC730014AC740018D6 -:1051C000AC75001C10400005AC64000C3C020001F2 -:1051D0008C425D903C010001AC225D943C030001D7 -:1051E0008C635D943C0200018C425C40AC62000028 -:1051F0003C0300018C635D943C0200018C425C40E6 -:10520000AC620004AF4302508FBF00288FB500246A -:105210008FB400208FB3001C8FB200188FB1001420 -:105220008FB0001003E0000827BD003010A000057B -:1052300000000000AC80000024A5FFFC14A0FFFDCE -:105240002484000403E000080000000010C00007F0 -:10525000000000008C8200002484000424C6FFFCAF -:10526000ACA2000014C0FFFB24A5000403E000086A -:105270000000000010C00007000000008CA2000029 -:1052800024A5000424C6FFFCAC82000014C0FFFB70 -:105290002484000403E000080000000003E000088C -:1052A0000000000027BDFFD8AFBF00208EE304E45C -:1052B0008EE204E010620436000000008EE204E496 -:1052C0008EE304FC00021100006260219587000853 -:1052D0008D8A00008D8B0004958D000A8EE2725C31 -:1052E0008EE3726C30E4FFFF004410210062182B43 -:1052F0001060001531A200048F8200D88EE372582E -:1053000000431023AEE2726C8EE2726C1C4000030C -:105310003C03000100431021AEE2726C8EE2725C2D -:105320008EE3726C004410210062182B106000069E -:1053300031A200048EE201B824420001AEE201B8BD -:10534000080028E18EE201B81040024031A20200BC -:105350001040014D0000482196E2045A30420010EE -:1053600010400149000000008F84010027623000D6 -:105370002485002000A2102B504000012765280042 -:105380008F82010810A20004000000008F82010437 -:1053900014A200062402000C8EE201A8244200019F -:1053A000AEE201A80800252C8EE201A8AC8A00001C -:1053B000AC8B00048EE3726424060005A482000E08 -:1053C000AC860018AC8300088EE204E4AC82001CBA -:1053D0008EE204C8AC820010AF85010092E204ECBA -:1053E00014400036240900018EE24E28000210C04D -:1053F00024424E3802E220218C8200001446001F15 -:10540000000000008EE34E288EE24E2C1062001B3E -:10541000240300408C82000424420001AC8200047A -:105420008EE24E2C8EE54E282442000110430007E8 -:10543000000000008EE24E2C2442000110A2000564 -:1054400000000000080025160000000014A0000560 -:10545000000000008F82010824420020AF82010872 -:105460008F8201088C8200042C42001150400013EE -:10547000AC8000000800252C000000008EE24E28C1 -:105480002403004024420001504300030000102187 -:105490008EE24E2824420001AEE24E288EE24E28D3 -:1054A000000210C024424E3802E2202124020005EE -:1054B000AC82000024020001AC8200041520000A26 -:1054C0003C040001AFAB00108EE272643C040001AA -:1054D000248457303C050004AFA200148EE604E497 -:1054E000080028BE34A5F1148EE2726434843800BA -:1054F00003641821244200100043102B1440007351 -:10550000000000008EE27264244800100364102141 -:105510000102102B144000023C02FFFF0102402157 -:105520008F8501002762300024A6002000C2102BC6 -:1055300050400001276628008F82010810C2000435 -:10554000000000008F82010414C200072563000CD4 -:105550008EE201A80000482124420001AEE201A829 -:10556000080025A08EE201A82C64000C0144102143 -:10557000ACA20000ACA3000424E2FFF4A4A2000E3D -:1055800024020006ACA80008ACA200188EE204E4D5 -:10559000ACA2001C8EE204C83C03000200431025AC -:1055A000ACA20010AF86010092E204EC1440003778 -:1055B000240900018EE24E28000210C024424E3819 -:1055C00002E220218C830000240200051462001FE7 -:1055D000000000008EE34E288EE24E2C1062001B6D -:1055E000240300408C82000424420001AC820004A9 -:1055F0008EE24E2C8EE54E28244200011043000717 -:10560000000000008EE24E2C2442000110A2000592 -:10561000000000000800258A0000000014A000051A -:10562000000000008F82010824420020AF820108A0 -:105630008F8201088C8200042C420011504000131C -:10564000AC800000080025A0000000008EE24E287B -:1056500024030040244200015043000300001021B5 -:105660008EE24E2824420001AEE24E288EE24E2801 -:10567000000210C024424E3802E22021240200051C -:10568000AC82000024020001AC8200041520000A54 -:105690002508FFFCAFAB00108EE272643C040001F1 -:1056A000248457303C050004AFA200148EE604E4C5 -:1056B000080028BE34A5F12534028100A5020000AF -:1056C0009582000E0800261DA50200028F850100AC -:1056D0002762300024A6002000C2102B5040000199 -:1056E000276628008F82010810C200040000000015 -:1056F0008F82010414C200072563000C8EE201A80A -:105700000000482124420001AEE201A80800260D55 -:105710008EE201A82C64000C01441021ACA2000010 -:10572000ACA300048EE3726424E2FFF4A4A2000E92 -:1057300024020006ACA2001824630010ACA30008E9 -:105740008EE204E4ACA2001C8EE204C83C0300021A -:1057500000431025ACA20010AF86010092E204ECD9 -:1057600014400037240900018EE24E28000210C0C8 -:1057700024424E3802E220218C83000024020005DE -:105780001462001F000000008EE34E288EE24E2CB3 -:105790001062001B240300408C820004244200019C -:1057A000AC8200048EE24E2C8EE54E28244200018D -:1057B00010430007000000008EE24E2C244200013E -:1057C00010A2000500000000080025F700000000FE -:1057D00014A00005000000008F8201082442002070 -:1057E000AF8201088F8201088C8200042C420011D4 -:1057F00050400013AC8000000800260D000000009F -:105800008EE24E282403004024420001504300034E -:10581000000010218EE24E2824420001AEE24E2804 -:105820008EE24E28000210C024424E3802E22021AF -:1058300024020005AC82000024020001AC820004B6 -:105840001520000A34028100AFAB00108EE27264B2 -:105850003C040001248457303C050004AFA200142E -:105860008EE604E4080028BE34A5F0158EE37264C9 -:10587000A462000C8EE372649582000EA462000E96 -:105880000800268124E700048F840100276230008D -:105890002485002000A2102B50400001276528001D -:1058A0008F82010810A20004000000008F82010412 -:1058B00014A20007240200068EE201A8000048217D -:1058C00024420001AEE201A8080026778EE201A87A -:1058D000AC8A0000AC8B00048EE37264A487000ED7 -:1058E000AC820018AC8300088EE204E4AC82001C99 -:1058F0008EE204C83C03000200431025AC82001075 -:10590000AF85010092E204EC144000372409000145 -:105910008EE24E28000210C024424E3802E22021BE -:105920008C830000240200051462001F00000000A8 -:105930008EE34E288EE24E2C1062001B24030040A2 -:105940008C82000424420001AC8200048EE24E2CC2 -:105950008EE54E282442000110430007000000009D -:105960008EE24E2C2442000110A20005000000002F -:10597000080026610000000014A0000500000000DF -:105980008F82010824420020AF8201088F82010823 -:105990008C8200042C42001150400013AC800000A7 -:1059A00008002677000000008EE24E282403004005 -:1059B0002442000150430003000010218EE24E28D3 -:1059C00024420001AEE24E288EE24E28000210C0B2 -:1059D00024424E3802E2202124020005AC8200005D -:1059E00024020001AC820004152000093C050004DB -:1059F000AFAB00108EE272643C0400012484573087 -:105A0000AFA200148EE604E4080028BE34A5F0041A -:105A10008EE2725C30E7FFFF00471021AEE2725C5D -:105A20008EE204E48EE304FC8EE47258000211005E -:105A300000431021AC44000C8EE27258AFA2001853 -:105A40008EE3725CAFA3001C8EE2725C2C42003CC1 -:105A500010400004246200012403FFFE00431024D0 -:105A6000AFA2001C8EE272643C06000134C638000E -:105A70008EE3725C2405FFF80047102124420007E2 -:105A80000045102424630007AEE272588EE2726C67 -:105A90008EE472580065182400431023AEE2726C45 -:105AA000036610210082202B148000043C03FFFFBA -:105AB0008EE2725800431021AEE272588EE27258A4 -:105AC000AEE272648F8200F024470008276218005B -:105AD00000E2102B50400001276710008F8200F475 -:105AE00014E20007000000008EE201B4000048212B -:105AF00024420001AEE201B4080026C48EE201B4E3 -:105B00008F8200F0240900018FA300188FA4001CCD -:105B1000AC430000AC440004AF8700F01520001235 -:105B2000000D11428F8200F0AFA200108F8200F4AE -:105B30003C0400012484573CAFA200148FA6001837 -:105B40008FA7001C3C0500040C00240334A5F005BD -:105B50008EE2008824420001AEE200888EE20088D6 -:105B6000080028D3AEE0725C304300032402000238 -:105B70001062001628620003104000052402000194 -:105B80001062000800000000080027030000000069 -:105B90002402000310620017000000000800270321 -:105BA000000000008EE200E88EE300EC24630001B8 -:105BB0002C64000100441021AEE200E8AEE300ECEA -:105BC0008EE200E8080027038EE300EC8EE200F08E -:105BD0008EE300F4246300012C64000100441021D2 -:105BE000AEE200F0AEE300F48EE200F0080027031E -:105BF0008EE300F48EE200F88EE300FC24630001E3 -:105C00002C64000100441021AEE200F8AEE300FC79 -:105C10008EE200F88EE300FC8EE2725C8EE400E01F -:105C20008EE500E4004018210000102100A3282187 -:105C300000A3302B0082202100862021AEE400E06A -:105C4000AEE500E4080028D3AEE0725C30E2FFFF6E -:105C5000104001C131A202001040014D0000482156 -:105C600096E2045A30420010104001490000000042 -:105C70008F840100276230002485002000A2102BB1 -:105C800050400001276528008F82010810A20004FF -:105C9000000000008F82010414A200062402000C00 -:105CA0008EE201A824420001AEE201A80800276E9E -:105CB0008EE201A8AC8A0000AC8B00048EE3726413 -:105CC00024060005A482000EAC860018AC830008F0 -:105CD0008EE204E4AC82001C8EE204C8AC820010A8 -:105CE000AF85010092E204EC144000362409000163 -:105CF0008EE24E28000210C024424E3802E22021DB -:105D00008C8200001446001F000000008EE34E2825 -:105D10008EE24E2C1062001B240300408C82000493 -:105D200024420001AC8200048EE24E2C8EE54E2807 -:105D30002442000110430007000000008EE24E2CB8 -:105D40002442000110A200050000000008002758AE -:105D50000000000014A00005000000008F82010870 -:105D600024420020AF8201088F8201088C82000447 -:105D70002C42001150400013AC8000000800276E38 -:105D8000000000008EE24E2824030040244200015F -:105D900050430003000010218EE24E2824420001EF -:105DA000AEE24E288EE24E28000210C024424E3849 -:105DB00002E2202124020005AC820000240200013E -:105DC000AC8200041520000A3C040001AFAB0010B7 -:105DD0008EE272643C040001248457303C050004C8 -:105DE000AFA200148EE604E4080028BE34A5F01427 -:105DF0008EE2726434843800036418212442001057 -:105E00000043102B14400073000000008EE2726407 -:105E100024480010036410210102102B14400002DA -:105E20003C02FFFF010240218F8501002762300004 -:105E300024A6002000C2102B504000012766280035 -:105E40008F82010810C20004000000008F8201044C -:105E500014C200072563000C8EE201A8000048214F -:105E600024420001AEE201A8080027E28EE201A868 -:105E70002C64000C01441021ACA20000ACA300046F -:105E800024E2FFF4A4A2000E24020006ACA800083D -:105E9000ACA200188EE204E4ACA2001C8EE204C89E -:105EA0003C03000200431025ACA20010AF860100A5 -:105EB00092E204EC14400037240900018EE24E28DF -:105EC000000210C024424E3802E220218C830000E0 -:105ED000240200051462001F000000008EE34E281B -:105EE0008EE24E2C1062001B240300408C820004C2 -:105EF00024420001AC8200048EE24E2C8EE54E2836 -:105F00002442000110430007000000008EE24E2CE6 -:105F10002442000110A2000500000000080027CC68 -:105F20000000000014A00005000000008F8201089E -:105F300024420020AF8201088F8201088C82000475 -:105F40002C42001150400013AC800000080027E2F2 -:105F5000000000008EE24E2824030040244200018D -:105F600050430003000010218EE24E28244200011D -:105F7000AEE24E288EE24E28000210C024424E3877 -:105F800002E2202124020005AC820000240200016C -:105F9000AC8200041520000A2508FFFCAFAB0010FE -:105FA0008EE272643C040001248457303C050004F6 -:105FB000AFA200148EE604E4080028BE34A5F01554 -:105FC00034028100A50200009582000E0800285FBF -:105FD000A50200028F8501002762300024A6002060 -:105FE00000C2102B50400001276628008F82010854 -:105FF00010C20004000000008F82010414C20007D8 -:106000002563000C8EE201A8000048212442000113 -:10601000AEE201A80800284F8EE201A82C64000C13 -:1060200001441021ACA20000ACA300048EE3726412 -:1060300024E2FFF4A4A2000E24020006ACA2001881 -:1060400024630010ACA300088EE204E4ACA2001CA0 -:106050008EE204C83C03000200431025ACA20010ED -:10606000AF86010092E204EC1440003724090001DD -:106070008EE24E28000210C024424E3802E2202157 -:106080008C830000240200051462001F0000000041 -:106090008EE34E288EE24E2C1062001B240300403B -:1060A0008C82000424420001AC8200048EE24E2C5B -:1060B0008EE54E2824420001104300070000000036 -:1060C0008EE24E2C2442000110A2000500000000C8 -:1060D000080028390000000014A00005000000009E -:1060E0008F82010824420020AF8201088F820108BC -:1060F0008C8200042C42001150400013AC80000040 -:106100000800284F000000008EE24E2824030040C3 -:106110002442000150430003000010218EE24E286B -:1061200024420001AEE24E288EE24E28000210C04A -:1061300024424E3802E2202124020005AC820000F5 -:1061400024020001AC8200041520000A3402810000 -:10615000AFAB00108EE272643C040001248457301F -:106160003C050004AFA200148EE604E4080028BE3B -:1061700034A5F0168EE37264A462000C8EE37264A0 -:106180009582000EA462000E080028C224E70004D5 -:106190008F83010027623000246400200082102BCE -:1061A00050400001276428008F82010810820004FB -:1061B000000000008F8201041482000724050005FE -:1061C0008EE201A80000482124420001AEE201A8AD -:1061D000080028B68EE201A8AC6A0000AC6B00048F -:1061E0008EE27264A467000EAC650018AC62000811 -:1061F0008EE204E4AC62001C8EE204C8AC620010C3 -:10620000AF84010092E204EC14400036240900013E -:106210008EE24E28000210C024424E3802E22021B5 -:106220008C8200001445001F000000008EE34E2801 -:106230008EE24E2C1062001B240300408C8200046E -:1062400024420001AC8200048EE24E2C8EE54E28E2 -:106250002442000110430007000000008EE24E2C93 -:106260002442000110A2000500000000080028A040 -:106270000000000014A00005000000008F8201084B -:1062800024420020AF8201088F8201088C82000422 -:106290002C42001150400013AC800000080028B6CA -:1062A000000000008EE24E2824030040244200013A -:1062B00050430003000010218EE24E2824420001CA -:1062C000AEE24E288EE24E28000210C024424E3824 -:1062D00002E2202124020005AC8200002402000119 -:1062E000AC8200041520000B3C0500043C040001B6 -:1062F00024845748AFAB0010AFA000148EE604E42E -:1063000034A5F0170C00240330E7FFFF080028E154 -:10631000000000008EE272643C05000130E4FFFFE3 -:1063200000441021AEE272648EE2725C8EE372640D -:1063300034A5380000441021AEE2725C03651021E0 -:106340000062182B146000043C03FFFF8EE27264AD -:1063500000431021AEE272648EE304E496E2045836 -:10636000246300012442FFFF00621824AEE304E42A -:106370008EE304E48EE204E01462000500000000F5 -:106380008F8200602403FFF700431024AF82006077 -:106390008FBF002003E0000827BD002827BDFFE0D5 -:1063A000AFBF00188EE304E88EE204E010620189BA -:1063B000000000008EE204E88EE304FC00021100FD -:1063C000006218219467000892E204ED8C680000D6 -:1063D0008C69000410400023946A000A8EE204C80D -:1063E00034460400314202001040001F000000004B -:1063F00096E2045A304200101040001B3C0280001C -:106400003C01000100370821AC2283D88EE272647F -:106410009464000E3C05000134A5380024420004B9 -:10642000AEE272648EE372640004240003651021FE -:106430003C01000100370821AC2483DC0062182BEA -:106440001460000524E700048EE272643C03FFFF41 -:1064500000431021AEE272648EE2726408002917D4 -:10646000AEE272588EE604C88EE2726C30E4FFFF32 -:106470000044102A10400015000000008F8200D850 -:106480008EE3725800431023AEE2726C8EE2726C9F -:106490001C4000070044102A8EE2726C3C0300018D -:1064A00000431021AEE2726C8EE2726C0044102A3E -:1064B00010400006000000008EE201B824420001F6 -:1064C000AEE201B808002A728EE201B83C02000177 -:1064D000005710218C4283D85440000124E7FFFC70 -:1064E00031420004104000B930E2FFFF3C020001DD -:1064F000005710218C4283D81040002F00005021FB -:106500008F840100276230002485002000A2102B18 -:1065100050400001276528008F82010810A2003238 -:10652000000000008F82010410A2002F2402001539 -:10653000AC880000AC8900048EE37264A487000E6E -:10654000AC820018AC8300088EE204E83C03000132 -:10655000007718218C6383DCAC8600100043102583 -:10656000AC82001CAF85010092E204EC144000668E -:10657000240A00018EE24E28240300402442000138 -:1065800050430003000010218EE24E2824420001F7 -:10659000AEE24E288EE24E28000210C024424E3851 -:1065A00002E2182124020015AC620000240200015E -:1065B000080029BFAC6200048F840100276230000C -:1065C0002485002000A2102B5040000127652800E0 -:1065D0008F82010810A20004000000008F820104D5 -:1065E00014A20006240200068EE201A82442000143 -:1065F000AEE201A8080029BF8EE201A8AC88000025 -:10660000AC8900048EE37264A487000EAC8200188B -:10661000AC8300088EE204E8AC860010AC82001C5B -:10662000AF85010092E204EC14400037240A000117 -:106630008EE24E28000210C024424E3802E2202191 -:106640008C830000240200051462001F000000007B -:106650008EE34E288EE24E2C1062001B2403004075 -:106660008C82000424420001AC8200048EE24E2C95 -:106670008EE54E2824420001104300070000000070 -:106680008EE24E2C2442000110A200050000000002 -:10669000080029A90000000014A000050000000067 -:1066A0008F82010824420020AF8201088F820108F6 -:1066B0008C8200042C42001150400013AC8000007A -:1066C000080029BF000000008EE24E28240300408D -:1066D0002442000150430003000010218EE24E28A6 -:1066E00024420001AEE24E288EE24E28000210C085 -:1066F00024424E3802E2202124020005AC82000030 -:1067000024020001AC8200041540000A24020001AA -:10671000AFA900108EE272643C040001248457305B -:106720003C050004AFA200148EE604E408002A4FE2 -:1067300034A5F204A2E204ED8EE204E88EE304FC48 -:106740008EE472583C06000134C638003C0100015A -:1067500000370821AC2083D83C0100010037082114 -:10676000AC2083DC0002110000431021AC44000C7B -:106770008EE272642405FFF830E3FFFF004310212E -:10678000244200070045102424630007AEE272583B -:106790008EE2726C8EE47258006518240043102358 -:1067A000AEE2726C036610210082202B148000047C -:1067B0003C03FFFF8EE2725800431021AEE2725894 -:1067C0008EE2725808002A64AEE2726410400073D0 -:1067D000000000008F830100276230002464002045 -:1067E0000082102B14400002000050212764280072 -:1067F0008F82010810820004000000008F820104D3 -:1068000014820006240500058EE201A8244200013E -:10681000AEE201A808002A468EE201A8AC6800009A -:10682000AC6900048EE27264A467000EAC650018C7 -:10683000AC6200088EE204E8AC660010AC62001C9A -:10684000AF84010092E204EC14400036240A0001F7 -:106850008EE24E28000210C024424E3802E220216F -:106860008C8200001445001F000000008EE34E28BB -:106870008EE24E2C1062001B240300408C82000428 -:1068800024420001AC8200048EE24E2C8EE54E289C -:106890002442000110430007000000008EE24E2C4D -:1068A0002442000110A200050000000008002A3068 -:1068B0000000000014A00005000000008F82010805 -:1068C00024420020AF8201088F8201088C820004DC -:1068D0002C42001150400013AC80000008002A46F2 -:1068E000000000008EE24E282403004024420001F4 -:1068F00050430003000010218EE24E282442000184 -:10690000AEE24E288EE24E28000210C024424E38DD -:1069100002E2202124020005AC82000024020001D2 -:10692000AC8200041540000C30E5FFFF3C04000180 -:10693000248457483C050004AFA90010AFA0001400 -:106940008EE604E434A5F2370C00240330E7FFFFA1 -:1069500008002A72000000008EE2726400451021D7 -:10696000AEE272648EE2726C8EE372643C040001EB -:1069700034843800A2E004ED00451023AEE2726CCE -:10698000036410210062182B146000043C03FFFF15 -:106990008EE2726400431021AEE272648EE304E87A -:1069A00096E20458246300012442FFFF0062182489 -:1069B000AEE304E88EE304E88EE204E0146200052E -:1069C000000000008F8200602403FFF700431024C2 -:1069D000AF8200608FBF001803E0000827BD0020D1 -:1069E00027BDFFE0AFBF001CAFB000188F820100D1 -:1069F0008EE34E2C8F8201048F8501082402004013 -:106A00002463000150620003000010218EE24E2C2E -:106A100024420001AEE24E2C8EE24E2C8EE34E2C30 -:106A2000000210C024424E3802E220218EE24E289D -:106A30008C8700041462000700A030218F820108B7 -:106A400024420020AF8201088F82010808002AA298 -:106A5000AC8000008EE24E2C240300402442000152 -:106A600050430003000010218EE24E2C244200010E -:106A7000000210C024424E3802E220218C82000421 -:106A80008F8301080002114000621821AF830108C2 -:106A9000AC8000008CC200182443FFFE2C6200135F -:106AA000104000C1000310803C01000100220821B9 -:106AB0008C22577000400008000000008EE204F0B5 -:106AC00000471021AEE204F08EE204F08F43023C56 -:106AD0000043102B144000BE000000008EE304E4CD -:106AE0008EE204F8506200BAA2E004F48F83012021 -:106AF000276238002466002000C2102B504000019D -:106B0000276630008F82012810C2000400000000B8 -:106B10008F82012414C20007000000008EE201A44D -:106B20000000802124420001AEE201A408002B12E3 -:106B30008EE201A48EE204E4AC62001C8EE404B098 -:106B40008EE504B42462001CAC6200082402000834 -:106B5000A462000E24020011AC620018AC640000B4 -:106B6000AC6500048EE204C4AC620010AF86012064 -:106B700092E24E2014400037241000018EE24E3085 -:106B8000000210C02442503802E220218C83000011 -:106B9000240200121462001F000000008EE34E3039 -:106BA0008EE24E341062001B240300408C820004ED -:106BB00024420001AC8200048EE24E348EE54E3059 -:106BC0002442000110430007000000008EE24E3412 -:106BD0002442000110A200050000000008002AFC69 -:106BE0000000000014A00005000000008F820128B2 -:106BF00024420020AF8201288F8201288C82000469 -:106C00002C42001150400013AC80000008002B12F1 -:106C1000000000008EE24E302403004024420001B8 -:106C200050430003000010218EE24E302442000148 -:106C3000AEE24E308EE24E30000210C02442503898 -:106C400002E2202124020012AC8200002402000192 -:106C5000AC8200045600000B241000018EE204E414 -:106C60003C04000124845754AFA00014AFA20010CC -:106C70008EE606088F4702283C0500090C00240315 -:106C800034A5F006160000032402000108002B7151 -:106C9000A2E204F48EE2017024420001AEE201702F -:106CA0008EE201708EE204E4A2E004F4AEE004F0AF -:106CB000AEE204F88F42023C50400045AEE07274F0 -:106CC0008EE2018424420001AEE201848EE201845E -:106CD00008002B71AEE072748EE2050424030040BC -:106CE0002442000150430003000010218EE20504FD -:106CF00024420001AEE205048EE205048CC30018B4 -:106D000000021080005710218C4405082402000363 -:106D10001462000F000000003C0200010057102127 -:106D2000904283B110400014000000008EE201D0B8 -:106D30008EE3524000441021AEE201D08EE201D831 -:106D400000641821306300FF08002B59AEE3524065 -:106D50008EE201CC8EE30E1000441021AEE201CC95 -:106D60008EE201D800641821306301FFAEE30E10FB -:106D700000441021AEE201D88EE20000344200400F -:106D800008002B71AEE200008EE2014C3C010001D4 -:106D900000370821A02083E024420001AEE2014C2C -:106DA00008002B718EE2014C94C7000E8CC2001CAF -:106DB0003C04000124845760AFA60014AFA2001069 -:106DC0008CC600183C0500080C00240334A50910EB -:106DD0008FBF001C8FB0001803E0000827BD002003 -:106DE00027BDFF98AFBF0060AFBE005CAFB60058D4 -:106DF000AFB50054AFB40050AFB3004CAFB20048D1 -:106E0000AFB10044AFB000408F8301088F8201040E -:106E1000AFA00024106203E7AFA0002C3C1E0001CD -:106E200037DE38003C0BFFFF8F9301088E6200189D -:106E30008F8301042443FFFE2C620014104003CF13 -:106E4000000310803C010001002208218C2257C061 -:106E500000400008000000009663000E8EE2725CA5 -:106E60008EE404F000431021AEE2725C8E63001CDD -:106E700096E2045824840001AEE404F02463000187 -:106E80002442FFFF00621824AEE304E48F42023C78 -:106E90000082202B148003B9000000008F830120A2 -:106EA000276238002466002000C2102B50400001E9 -:106EB000276630008F82012810C200040000000005 -:106EC0008F82012414C20007000000008EE201A49A -:106ED0000000802124420001AEE201A408002BFE44 -:106EE0008EE201A48EE204E4AC62001C8EE404B0E5 -:106EF0008EE504B42462001CAC6200082402000881 -:106F0000A462000E24020011AC620018AC64000000 -:106F1000AC6500048EE204C4AC620010AF860120B0 -:106F200092E24E2014400037241000018EE24E30D1 -:106F3000000210C02442503802E220218C8300005D -:106F4000240200121462001F000000008EE34E3085 -:106F50008EE24E341062001B240C00408C82000430 -:106F600024420001AC8200048EE24E348EE34E30A7 -:106F700024420001104C0007000000008EE24E3455 -:106F800024420001106200050000000008002BE808 -:106F90000000000014600005000000008F8201283E -:106FA00024420020AF8201288F8201288C820004B5 -:106FB0002C42001150400013AC80000008002BFE52 -:106FC000000000008EE24E30240C004024420001FC -:106FD000504C0003000010218EE24E30244200018C -:106FE000AEE24E308EE24E30000210C024425038E5 -:106FF00002E2202124020012240C0001AC820000D5 -:10700000AC8C00045600000D241000018EE204E454 -:107010003C04000124845754AFA00014AFA2001018 -:107020008EE606088F4702283C05000934A5F006C5 -:107030000C002403AFAB00388FAB00381200030AFA -:10704000240C000108002F1900000000966C001CA1 -:10705000AFAC002C9662001E3C0C8000AFAC00244C -:10706000AE62001C8E75001C8EE204FC8EE404FCF3 -:1070700000151900006210218C52000C92E27B98DE -:10708000006418219476000A1440000332C2000202 -:10709000AEF27BA4AEF57B9C1040004B000080213B -:1070A00096E2045A304200021040004700000000FF -:1070B0008E63001C8EE204FC00032100008210217C -:1070C0008C42000C037E1821244200220043102B26 -:1070D0001440000A240500148EE204FC00821021F2 -:1070E0008C44000CAFAB00380C002F752484000ECC -:1070F0008FAB003808002C523050FFFF8EE204FCAA -:10710000008210218C42000C9450000E9443001019 -:10711000944400129445001402038021020480214B -:107120000205802194430016944400189445001AE7 -:107130000203802102048021020580219443001C67 -:107140009444001E94420020020380210204802106 -:107150000202802100101C023202FFFF0062802127 -:107160008E63001C8EE204FC001024020003290040 -:1071700000A210218C43000C3202FFFF008280210C -:10718000037E1021246300180062182B146000098C -:10719000000000008EE204FC00A210218C43000CD1 -:1071A000001010273C01FFFF0023082108002C6F6E -:1071B000A42200188EE204FC00A210218C43000CD3 -:1071C00000101027A462001896E2045A00008821DB -:1071D00030420008144000630000A0218E63001CB0 -:1071E0008EE204FC0003310000C210218C42000C2E -:1071F000037E1821244200220043102B1440003546 -:10720000000000008EE204FC00C210218C42000C41 -:1072100024470010037E102100E2102B5040000193 -:1072200000EB38218EE204FC94F1000000C2102132 -:107230008C42000C24470016037E102100E2102B24 -:10724000144000022634FFEC00EB38218EE204FCEF -:1072500090E3000100C210218C42000C2447001A68 -:10726000037E102100E2102B1440000202838821CB -:1072700000EB382194E2000024E70002022288217A -:10728000037E102100E2102B5040000100EB38215A -:1072900094E2000024E7000202228821037E1021EC -:1072A00000E2102B5040000100EB382194E2000076 -:1072B00024E7000202228821037E102100E2102B25 -:1072C0005040000100EB382194E2000008002CD06F -:1072D000022288218EE204FC00C210218C43000CA3 -:1072E0008EE204FC947100108EE304FC00C21021B5 -:1072F0008C44000C00C318218C62000C2634FFEC77 -:10730000908400178EE304FC9442001A02848821C2 -:1073100000C318218C65000C8EE304FC0222882136 -:107320008EE204FC00C3182100C210218C44000C22 -:107330008C62000C94A3001C9484001E94420020D4 -:1073400002238821022488210222882100111C02A4 -:107350003222FFFF0062882100111C023222FFFF4F -:107360000062882132C20001104000B2000000001B -:1073700096E2045A30420001104000AE32C2008052 -:10738000104000080000000092E27B9814400005C5 -:1073900000000000240C0001A2EC7B98AEF57B9C61 -:1073A000AEF27BA48EE304FC001511000043102113 -:1073B0008C47000C037E182124E2000E0043102BA2 -:1073C0001440000800E020212405000E0C002F7559 -:1073D000AFAB00383042FFFF8FAB003808002D09FB -:1073E0000202802194E6000024E7000294E50000F8 -:1073F00024E7000294E3000024E7000294E2000086 -:1074000024E7000294E4000024E700020206802141 -:1074100002058021020380210202802194E2000003 -:1074200094E30002020480210202802102038021F1 -:1074300000101C023202FFFF0062802100101C02BB -:107440003202FFFF8EE47B9C0062802114950004D1 -:107450003205FFFF9662001608002D17005120210B -:107460009662001600542021000414023083FFFFAE -:1074700000432021008520230004140200822021E3 -:107480003084FFFF508000013404FFFF8EE27BA4B4 -:1074900024430017037E10210062102B504000018E -:1074A000006B182190630000240200111462003167 -:1074B000240200068EE27BA4037E182124420028C9 -:1074C0000043102B14400018000000008EE27B9C4B -:1074D00012A2000A32C201008EE27BA43C01FFFF2F -:1074E00000220821942200280082202100041C028E -:1074F0003082FFFF0062202132C2010014400004EC -:107500000004102792E27B98144000020004102728 -:107510003044FFFF8EE27BA43C01FFFF00220821E4 -:1075200008002D8AA42400288EE27B9C12A2000869 -:1075300032C201008EE27BA4944200280082202106 -:1075400000041C023082FFFF0062202132C20100D1 -:10755000144000040004102792E27B9814400002BB -:10756000000410273044FFFF8EE27BA408002D8A20 -:10757000A44400281462002F037E18218EE27BA40D -:10758000244200320043102B144000180000000079 -:107590008EE27B9C12A2000A32C201008EE27BA422 -:1075A0003C01FFFF002208219422003200822021AA -:1075B00000041C023082FFFF0062202132C2010061 -:1075C000144000040004102792E27B98144000024B -:1075D000000410273044FFFF8EE27BA43C01FFFF34 -:1075E0000022082108002D8AA42400328EE27B9C10 -:1075F00012A2000832C201008EE27BA49442003243 -:107600000082202100041C023082FFFF0062202142 -:1076100032C20100144000040004102792E27B985B -:1076200014400002000410273044FFFF8EE27BA4C8 -:10763000A44400328FAC00241180002C037E18215A -:107640008E420000AE42FFFC2642000A0043102B8F -:107650001440001B3403810026430004037E1021E4 -:107660000062102B1440000300602021006B1821E1 -:10767000006020218C62000024630004AE42000000 -:10768000037E10210062102B50400001006B182176 -:107690008C620000AC82000034028100A462000011 -:1076A00024630002037E10210062102B5040000171 -:1076B000006B182197AC002E08002DB4A46C0000BC -:1076C0008E4200048E440008A643000897AC002EAA -:1076D000A64C000AAE420000AE4400049662000EC2 -:1076E0002652FFFC24420004A662000E9662000EA1 -:1076F0008EE3725C00621821AEE3725CAFB20018D8 -:107700008EE3725CAFA3001C8EE2725C2C42003CE4 -:1077100010400004246200012403FFFE00431024F3 -:10772000AFA2001C32C200801040000C32C2010027 -:107730008EE27BA824430001000210C000571021F4 -:10774000AEE37BA88FA300188FA4001CAC437BACD6 -:10775000AC447BB008002EA0AEE0725C104000721A -:10776000000000008EE27BA824430001000210C04C -:1077700000571021AEE37BA88FA300188FA4001C34 -:10778000AC437BACAC447BB08EE27BA81040006382 -:1077900000004821000050218F8200F0244800089A -:1077A000276218000102102B5040000127681000CA -:1077B0008F8200F415020007000000008EE201B481 -:1077C0000000802124420001AEE201B408002DFA3D -:1077D0008EE201B48F8300F02410000101571021C4 -:1077E0008C447BAC8C457BB0AC640000AC65000481 -:1077F000AF8800F01600000602EA10218EE2008831 -:1078000024420001AEE2008808002E3F8EE200888C -:107810008C427BB08EE400E08EE500E48EE67B9C3B -:10782000004018210000102100A3282100A3382BBC -:1078300000822021008720218EE204FC00C9302133 -:1078400000063100AEE400E0AEE500E400C2302105 -:1078500094C2000A240C00020002114230430003CB -:10786000106C00162862000310400005240C000173 -:10787000106C00080000000008002E3F000000000F -:10788000240C0003106C00170000000008002E3FBD -:10789000000000008EE200E88EE300EC24630001AB -:1078A0002C64000100441021AEE200E8AEE300ECDD -:1078B0008EE200E808002E3F8EE300EC8EE200F03E -:1078C0008EE300F4246300012C64000100441021C5 -:1078D000AEE200F0AEE300F48EE200F008002E3FCE -:1078E0008EE300F48EE200F88EE300FC24630001D6 -:1078F0002C64000100441021AEE200F8AEE300FC6D -:107900008EE200F88EE300FC8EE27BA825290001C0 -:107910000122102B1440FFA0254A0008A2E07B980A -:1079200008002E9FAEE07BA88F8200F0244700085D -:107930002762180000E2102B50400001276710005A -:107940008F8200F414E20007000000008EE201B410 -:107950000000802124420001AEE201B408002E5D47 -:107960008EE201B48F8200F0241000018FA3001872 -:107970008FA4001CAC430000AC440004AF8700F0AF -:1079800016000007000000008EE20088244200017B -:10799000AEE200888EE2008808002EA0AEE0725CA5 -:1079A0008EE2725C8EE400E08EE500E4240C0002BE -:1079B000004018210000102100A3282100A3302B33 -:1079C000008220210086202100161142304300034E -:1079D000AEE400E0AEE500E4106C00172C6200039A -:1079E00010400005240C0001106C0008000000008D -:1079F00008002EA0AEE0725C240C0003106C00198D -:107A00000000000008002EA0AEE0725C8EE200E8EC -:107A10008EE300EC246300012C640001004410217B -:107A2000AEE200E8AEE300EC8EE200E88EE300ECAC -:107A300008002EA0AEE0725C8EE200F08EE300F44F -:107A4000246300012C64000100441021AEE200F028 -:107A5000AEE300F48EE200F08EE300F408002EA006 -:107A6000AEE0725C8EE200F88EE300FC246300015D -:107A70002C64000100441021AEE200F8AEE300FCEB -:107A80008EE200F88EE300FCAEE0725C8E62001CB9 -:107A900096E304588EE404F0244200012463FFFFBF -:107AA0000043102424840001AEE204E4AEE404F0B8 -:107AB0008F42023C0082202B148000B000000000A6 -:107AC0008F830120276238002466002000C2102B1B -:107AD00050400001276630008F82012810C2000448 -:107AE000000000008F82012414C200070000000083 -:107AF0008EE201A40000802124420001AEE201A434 -:107B000008002F078EE201A48EE204E4AC62001CA0 -:107B10008EE404B08EE504B42462001CAC6200085C -:107B200024020008A462000E24020011AC620018B6 -:107B3000AC640000AC6500048EE204C4AC620010CA -:107B4000AF86012092E24E2014400037241000013D -:107B50008EE24E30000210C02442503802E2202152 -:107B60008C830000240200121462001F0000000039 -:107B70008EE34E308EE24E341062001B240C004027 -:107B80008C82000424420001AC8200048EE24E3458 -:107B90008EE34E3024420001104C0007000000002C -:107BA0008EE24E3424420001106200050000000005 -:107BB00008002EF100000000146000050000000025 -:107BC0008F82012824420020AF8201288F82012861 -:107BD0008C8200042C42001150400013AC80000045 -:107BE00008002F07000000008EE24E30240C0040F9 -:107BF00024420001504C0003000010218EE24E3060 -:107C000024420001AEE24E308EE24E30000210C03F -:107C10002442503802E2202124020012240C0001E8 -:107C2000AC820000AC8C00045600000D2410000152 -:107C30008EE204E43C04000124845754AFA00014F5 -:107C4000AFA200108EE606088F4702283C05000907 -:107C500034A5F0060C002403AFAB00388FAB00381E -:107C600016000003240C000108002F5CA2EC04F4B1 -:107C70008EE2017024420001AEE201708EE20170DA -:107C80008EE204E4A2E004F4AEE004F0AEE072742C -:107C9000AEE204F88F42023C1040003800000000C1 -:107CA0008EE2018424420001AEE2018408002F5CD0 -:107CB0008EE201848EE20504240C0040244200017F -:107CC000504C0003000010218EE205042442000104 -:107CD000AEE205048EE205048E630018240C000356 -:107CE0000002108000571021146C000F8C4405080E -:107CF0003C02000100571021904283B11040001453 -:107D0000000000008EE201D08EE3524000441021BA -:107D1000AEE201D08EE201D800641821306300FF8A -:107D200008002F4FAEE352408EE201CC8EE30E10DE -:107D300000441021AEE201CC8EE201D8006418218B -:107D4000306301FFAEE30E1000441021AEE201D813 -:107D50008EE200003442004008002F5CAEE20000DA -:107D60008EE2014C3C01000100370821A02083E095 -:107D700024420001AEE2014C8EE2014C8F820108E8 -:107D800024420020AF8201088F8201088F820108FF -:107D9000276330000043102B1440000227622800A4 -:107DA000AF8201088F8301088F8201041462FC1ED8 -:107DB000000000008FBF00608FBE005C8FB60058CF -:107DC0008FB500548FB400508FB3004C8FB2004871 -:107DD0008FB100448FB0004003E0000827BD006869 -:107DE0000005284310A0000D000030213C030001D5 -:107DF000346338003C07FFFF036310210082102B1F -:107E00005040000100872021948200002484000259 -:107E100024A5FFFF14A0FFF800C2302100061C02B9 -:107E200030C2FFFF0062302100061C0230C2FFFF9B -:107E30000062302103E0000830C2FFFF27BDFF8849 -:107E4000240F0001AFBF0070AFBE006CAFB600687A -:107E5000AFB50064AFB40060AFB3005CAFB2005820 -:107E6000AFB10054AFB00050A3A00027AFAF002CBB -:107E70008EE204D400008021304200011440002A28 -:107E8000A3A000378F8700E08F8800C48F8200E8AE -:107E900000E220232C8210005040000124841000B6 -:107EA000000420C2008018218EE400C88EE500CCBA -:107EB0000000102100A3282100A3302B00822021E4 -:107EC00000862021AEE400C8AEE500CC8F8300C858 -:107ED0003C02000A3442EFFF010320230044102B30 -:107EE000104000033C02000A3442F00000822021CE -:107EF000008018218EE400C08EE500C4000010212F -:107F000000A3282100A3302B0082202100862021FD -:107F1000AEE400C0AEE500C4AF8800C8AF8700E49F -:107F2000080034CCAF8700E83C0200010057102164 -:107F3000904283C01040000B000000003C14000180 -:107F40000297A0218E9483C43C13000102779821EC -:107F50008E7383C83C1200010257902108003193B0 -:107F60008E5283CC8F8300E08F8200E410430007A1 -:107F7000000088218F8200E4241100018C4300005E -:107F80008C440004AFA30018AFA4001C1620000E00 -:107F90003C02FFFF8F8200C4AFA200108F8200C896 -:107FA0003C04000124845870AFA200148F8600E0C6 -:107FB0008F8700E43C0500060C00240334A5F00084 -:107FC000080034CC000000008FA3001C8FB2001802 -:107FD0003074FFFF2694FFFC00621024104000580C -:107FE000024098213C020080006210241040000AE8 -:107FF0003C0400408EE2007C24420001AEE2007CA2 -:108000008EE2007C8EE201FC24420001AEE201FC23 -:10801000080034C68EE201FC3C0600043C0B000163 -:108020003C0A00023C0500103C0900088EE200807A -:108030003C0800203407800024420001AEE20080AA -:108040008EE200808FA2001C0044182410660021DC -:1080500000C3102B1440000700000000106B00113B -:1080600000000000106A0015000000000800304900 -:10807000000420421065002300A3102B14400005CB -:1080800000000000106900190000000008003049DD -:108090000004204210680021000000000800304960 -:1080A000000420428EE2003424420001AEE200349B -:1080B0008EE2003408003049000420428EE201ECD8 -:1080C00024420001AEE201EC8EE201EC08003049EE -:1080D000000420428EE201F024420001AEE201F0F1 -:1080E0008EE201F008003049000420428EE201F4E3 -:1080F00024420001AEE201F48EE201F408003049AE -:10810000000420428EE2003024420001AEE2003042 -:108110008EE2003008003049000420428EE201F86F -:1081200024420001AEE201F88EE201F80004204290 -:108130001087047C000000000800300E00000000E2 -:108140003C02000100571021904283B21440008489 -:10815000240200013C03000100771821906383B3DF -:108160001462007F3C0201008E4300000062102474 -:108170001040006F2402FFFF14620005241000016C -:10818000964300043402FFFF1062007500000000F7 -:1081900092E204D814400072000000003C0200018A -:1081A000005710218C4283B4284200051040002063 -:1081B000000038213C020001005710218C4283B49A -:1081C000184000160000282196660000000520C017 -:1081D000009710219442777E1446000900971021E1 -:1081E0009443778096620002146200050097102184 -:1081F00094437782966200045062000824070001CD -:108200003C020001005710218C4283B424A50001D8 -:1082100000A2102A5440FFEE000520C030E200FF0B -:108220001040044000000000080030D500000000AD -:10823000024020210C0022FE240500063044001FCD -:10824000000428C002E510219442727C30424000B4 -:108250001440043400B710219443727E96620000EB -:108260001462000B000418C000B710219443728000 -:108270009662000214620006000418C000B71021C4 -:10828000944372829662000410620035000418C0A4 -:1082900002E310219442727C304280001440042199 -:1082A00002E31021944B727C96670000000B28C0FB -:1082B00000B710219442737E080030B700003021CF -:1082C000000420C002E410219443737C02E41021D6 -:1082D000944B737C3063800014600010000B28C046 -:1082E00000B710219442737E1447FFF501602021EE -:1082F00000B7102194437380966200025462FFF12C -:10830000000420C000B710219443738296620004D9 -:108310005462FFEC000420C02406000130C200FFBC -:108320001040040000000000080030D500000000EC -:108330009743020296420000146203FA0000000014 -:108340009743020496420002146203F60000000004 -:108350009743020696420004146203F200000000F4 -:10836000924200003A030001304200010043102411 -:10837000104000742402FFFF8E63000014620004AA -:108380003402FFFF966300041062006F240F0002A6 -:108390003C02000100571021904283B21440006A51 -:1083A000240F000392E204D854400068AFAF002CC1 -:1083B0003C020001005710218C4283B42842000582 -:1083C00010400020000038213C020001005710211D -:1083D0008C4283B4184000160000282196660000E5 -:1083E000000520C0009710219442777E14460009B2 -:1083F0000097102194437780966200021462000572 -:10840000009710219443778296620004506200081E -:10841000240700013C020001005710218C4283B464 -:1084200024A5000100A2102A5440FFEE000520C040 -:1084300030E200FF14400044240F0003080034C65B -:1084400000000000024020210C0022FE240500064E -:108450003044001F000428C002E510219442727CC1 -:1084600030424000144003AF00B710219443727EA5 -:10847000966200001462000B000418C000B71021BF -:10848000944372809662000214620006000418C0D1 -:1084900000B7102194437282966200041062002794 -:1084A000000418C002E310219442727C3042800024 -:1084B0001440039C02E31021944B727C96670000E9 -:1084C000000B28C000B710219442737E0800313C95 -:1084D00000003021000420C002E410219443737C8A -:1084E00002E41021944B737C306380001460001010 -:1084F000000B28C000B710219442737E1447FFF58B -:108500000160202100B7102194437380966200021D -:108510005462FFF1000420C000B71021944373821D -:10852000966200045462FFEC000420C0240600019F -:1085300030C200FF1040037B000000000800314FF4 -:10854000240F0003240F0001AFAF002C8F42026004 -:108550000054102B1040003A000000008F8300E40C -:108560008F8200E01062000324630008AF8300E400 -:10857000AF8300E88EE400C08EE500C402801821BD -:108580000000102100A3282100A3302B008220210D -:1085900000862021AEE400C0AEE500C48EE20058A3 -:1085A00024420001AEE200588EE200588EE2007CC8 -:1085B00024420001AEE2007C8EE2007C8F8200E06B -:1085C000AFA200108F8200E43C040001248458789C -:1085D000AFA200148FA600188FA7001C3C05000650 -:1085E0000C00240334A5F003080034CC0000000084 -:1085F0008EE25240AFA200108EE252443C040001D1 -:1086000024845884AFA200148EE60E108EE70E1854 -:108610003C0500060C00240334A5F0028EE201C0E4 -:1086200024420001AEE201C08EE200008EE301C0F0 -:108630002403FFBF0043102408003470AEE20000A2 -:1086400096E204680054102B104000030000000064 -:10865000240F0001A3AF0027128003012416000796 -:1086600024150040241E0001240E00128EE2724CDC -:108670008F43028024420001304207FF106202D380 -:108680000000000093A2002710400014000000002A -:108690008EE352408EE252441062000926ED5244AD -:1086A0008EE652448EE35244000211402442524866 -:1086B00002E2802124630001080031BF306B00FF1B -:1086C00092E272481440FFCA000000008EE201E00E -:1086D00024420001AEE201E08EE201E08EE30E10E2 -:1086E0008EE20E181062FFC226ED0E188EE60E18EE -:1086F0008EE30E180002114024420E2002E2802177 -:1087000024630001306B01FF96E2046A30420010DE -:1087100010400019000000009642000C340F810048 -:10872000144F0015000000003C020001005710210A -:10873000904283C014400010000000009642000EDA -:10874000A60200168E4200088E4300048E440000EC -:108750002694FFFCAE42000CAE430008AE44000479 -:108760009602000E26730004240F0001A3AF003709 -:1087700034420200A602000E8E0200008E030004A6 -:108780003C04000134843800306A0007026A9823F0 -:10879000036410210262102B10400005028AA02100 -:1087A00002641023036218233C0200200043982334 -:1087B000268200072404FFF89603000A0044602480 -:1087C000006A1821006C102B104000020180382133 -:1087D00000603821AE1300188F88012024E20007C2 -:1087E0000044382427623800250900200122102B7C -:1087F00050400001276930008F82012811220004B7 -:10880000000000008F82012415220007014018217A -:108810008EE201A40000882124420001AEE201A4FE -:108820000800324C8EE201A48E0400008E05000484 -:1088300000001021AD130008A507000EAD160018AA -:10884000AD06001C00A3302B00A3282300822023A8 -:1088500000862023AD040000AD0500048EE204C0B4 -:10886000AD020010AF89012092E24E201440003387 -:10887000241100018EE24E30000210C02442503814 -:1088800002E220218C8200001456001F000000002C -:108890008EE34E308EE24E341062001B000000006A -:1088A0008C82000424420001AC8200048EE24E342B -:1088B0008EE34E30244200011055000700000000F6 -:1088C0008EE24E34244200011062000500000000D8 -:1088D00008003239000000001460000500000000AC -:1088E0008F82012824420020AF8201288F82012834 -:1088F0008C8200042C42001150400010AC8000001B -:108900000800324C000000008EE24E30244200018C -:1089100050550003000010218EE24E302442000129 -:10892000AEE24E308EE24E30000210C0244250388B -:1089300002E22021AC960000AC9E00041620001834 -:108940003C0500068E0200183C0400012484589067 -:10895000AFA200108E0200008E03000434A5F009BF -:10896000020030210C002403AFA3001493A20037AF -:1089700010400216340F81008E4200048E4300081E -:108980008E44000CA64F000CAE420000AE43000423 -:10899000AE4400089602001608003470A642000E8D -:1089A00014EC0168028A1823960C000A9603000E44 -:1089B000028A1023A602000A34620004A602000EF6 -:1089C0008F88012027623800250900200122102B02 -:1089D00014400002306AFFFF276930008F820128AF -:1089E00011220004000000008F82012415220007DC -:1089F000240400208EE201A400008821244200010A -:108A0000AEE201A4080032CA8EE201A48EE5724CE7 -:108A10008EE604908EE70494A504000E240400045E -:108A2000AD100008AD0400180005294000A0182171 -:108A30000000102100E3382100E3202B00C2302188 -:108A400000C43021AD060000AD0700048EE2724C78 -:108A5000AD02001C8EE204C4AD020010AF890120FB -:108A600092E24E2014400033241100018EE24E3079 -:108A7000000210C02442503802E220218C82000003 -:108A80001456001F000000008EE34E308EE24E347C -:108A90001062001B000000008C82000424420001D0 -:108AA000AC8200048EE24E348EE34E30244200014C -:108AB00010550007000000008EE24E3424420001F1 -:108AC0001062000500000000080032B7000000003E -:108AD00014600005000000008F820128244200205D -:108AE000AF8201288F8201288C8200042C42001161 -:108AF00050400010AC800000080032CA00000000A6 -:108B00008EE24E3024420001505500030000102137 -:108B10008EE24E3024420001AEE24E308EE24E3004 -:108B2000000210C02442503802E22021AC9600001E -:108B3000AC9E00041620000D00000000A60C000AE8 -:108B4000A60A000E8F820100AFA200108F820104DE -:108B50003C0400012484589C3C050006AFA200148C -:108B60008EE6724C0800343B34A5F00B3C0100014A -:108B700000370821A02083C0ADAB00008EE201D8F1 -:108B80008EE3724C2442FFFFAEE201D88EE201D8A0 -:108B900024630001306307FF26E2524415A2000659 -:108BA000AEE3724C8EE201D02442FFFFAEE201D070 -:108BB000080032EF8EE201D08EE201CC2442FFFFAA -:108BC000AEE201CC8EE201CC8F4202401040007335 -:108BD000000000008EE20E1C24420001AEE20E1CDA -:108BE0008F4302400043102B144001760000A02167 -:108BF0008F830120276238002466002000C2102BDA -:108C000050400001276630008F82012810C2000406 -:108C1000000000008F82012414C200070000000041 -:108C20008EE201A40000882124420001AEE201A4EA -:108C30000800334F8EE201A48EE2724CAC62001C3D -:108C40008EE404A88EE504AC2462001CAC6200082B -:108C500024020008A462000E24020011AC62001875 -:108C6000AC640000AC6500048EE204C4AC62001089 -:108C7000AF86012092E24E201440003324110001FF -:108C80008EE24E30000210C02442503802E2202111 -:108C90008C820000144E001F000000008EE34E3056 -:108CA0008EE24E341062001B000000008C82000433 -:108CB00024420001AC8200048EE24E348EE34E303A -:108CC0002442000110550007000000008EE24E34DF -:108CD0002442000110620005000000000800333C3F -:108CE0000000000014600005000000008F820128D1 -:108CF00024420020AF8201288F8201288C82000448 -:108D00002C42001150400010AC8000000800334F8E -:108D1000000000008EE24E30244200015055000356 -:108D2000000010218EE24E3024420001AEE24E30AF -:108D30008EE24E30000210C02442503802E2202160 -:108D4000AC8E0000AC9E00045620000D24110001E2 -:108D50008EE2724C3C040001248458A8AFA0001499 -:108D6000AFA200108EE6724C8F4702803C050009CE -:108D700034A5F0080C002403AFAE00488FAE0048C5 -:108D800056200001AEE00E1C8EE201882442000154 -:108D9000AEE20188080033C88EE201888F8301208B -:108DA000276238002466002000C2102B50400001CA -:108DB000276630008F82012810C2000400000000E6 -:108DC0008F82012414C20007000000008EE201A47B -:108DD0000000882124420001AEE201A4080033BA59 -:108DE0008EE201A48EE2724CAC62001C8EE404A8F8 -:108DF0008EE504AC2462001CAC620008240200086A -:108E0000A462000E24020011AC620018AC640000E1 -:108E1000AC6500048EE204C4AC620010AF86012091 -:108E200092E24E2014400033241100018EE24E30B5 -:108E3000000210C02442503802E220218C8200003F -:108E4000144E001F000000008EE34E308EE24E34C0 -:108E50001062001B000000008C820004244200010C -:108E6000AC8200048EE24E348EE34E302442000188 -:108E700010550007000000008EE24E34244200012D -:108E80001062000500000000080033A70000000089 -:108E900014600005000000008F8201282442002099 -:108EA000AF8201288F8201288C8200042C4200119D -:108EB00050400010AC800000080033BA00000000F1 -:108EC0008EE24E3024420001505500030000102174 -:108ED0008EE24E3024420001AEE24E308EE24E3041 -:108EE000000210C02442503802E22021AC8E000063 -:108EF000AC9E00041620000D000000008EE2724CB3 -:108F00003C040001248458A8AFA00014AFA20010B4 -:108F10008EE6724C8F4702803C05000934A5F008AC -:108F20000C002403AFAE00488FAE00488EE20174FF -:108F300024420001AEE201748EE201740800346E36 -:108F40000000A021960C000A0183102B5440000160 -:108F500001801821A603000A8F88012027623800AB -:108F6000250900200122102B504000012769300004 -:108F70008F82012811220004000000008F8201244A -:108F800015220007240400208EE201A4000088219D -:108F900024420001AEE201A40800342F8EE201A4B5 -:108FA0008EE5724C8EE604908EE70494A504000EC4 -:108FB00024040004AD100008AD0400180005294089 -:108FC00000A018210000102100E3382100E3202B2D -:108FD00000C2302100C43021AD060000AD070004FE -:108FE0008EE2724CAD02001C8EE204C4AD02001091 -:108FF000AF89012092E24E20144000332411000179 -:109000008EE24E30000210C02442503802E220218D -:109010008C8200001456001F000000008EE34E30CA -:109020008EE24E341062001B000000008C820004AF -:1090300024420001AC8200048EE24E348EE34E30B6 -:109040002442000110550007000000008EE24E345B -:109050002442000110620005000000000800341CDA -:109060000000000014600005000000008F8201284D -:1090700024420020AF8201288F8201288C820004C4 -:109080002C42001150400010AC8000000800342F2A -:10909000000000008EE24E302442000150550003D3 -:1090A000000010218EE24E3024420001AEE24E302C -:1090B0008EE24E30000210C02442503802E22021DD -:1090C000AC960000AC9E00041620001D00000000BD -:1090D000A60C000A8F820100AFA200108F8201044B -:1090E0003C0400012484589C3C050006AFA20014F7 -:1090F0008EE6724C34A5F00D0C00240302003821DA -:1091000093A2003710400031340F81008E420004DA -:109110008E4300088E44000CA64F000CAE420000A7 -:10912000AE430004AE44000896020016A642000EAC -:109130009602000E3042FDFF08003470A602000EB9 -:109140008EE201D82442FFFFAEE201D88EE201D8C0 -:109150008EE201CC3C04001F3C01000100370821D5 -:10916000A03E83C02442FFFFAEE201CC9603000A7A -:109170003484FFFF8EE201CC006A1821026398213B -:109180000093202B108000033C02FFF534421000B6 -:1091900002629821ADAB00008EE2724C24420001C5 -:1091A000304207FFAEE2724C8F4202401040000492 -:1091B0000283A0238EE20E1C24420001AEE20E1CAC -:1091C000A3A000271680FD290000000012800024C3 -:1091D000000000003C01000100370821AC3483C4CA -:1091E0003C01000100370821AC3383C83C01000179 -:1091F00000370821AC3283CC93A20037104000081E -:10920000000000003C020001005710218C4283CC7A -:10921000244200043C01000100370821AC2283CC29 -:109220008EE2724C8F43028024420001304207FFDD -:1092300014620006000000008EE201C42442000116 -:10924000AEE201C4080034CC8EE201C48EE201BC5F -:1092500024420001AEE201BC080034CC8EE201BC25 -:1092600097A4001E2484FFFC008018218EE400C017 -:109270008EE500C40000102100A3282100A3302B9C -:109280000082202100862021AEE400C0AEE500C4AB -:109290008FAF002C2402000211E2000F29E200032C -:1092A000144000172402000315E20015000000001E -:1092B0008EE200D08EE300D4246300012C64000110 -:1092C00000441021AEE200D0AEE300D48EE200D024 -:1092D000080034C68EE300D48EE200D88EE300DCB2 -:1092E000246300012C64000100441021AEE200D888 -:1092F000AEE300DC8EE200D8080034C68EE300DC6A -:109300008EE200C88EE300CC246300012C640001CF -:1093100000441021AEE200C8AEE300CC8EE200C8EB -:109320008EE300CC8F8300E48F8200E010620003A4 -:1093300024630008AF8300E4AF8300E88FBF0070B0 -:109340008FBE006C8FB600688FB500648FB400606C -:109350008FB3005C8FB200588FB100548FB00050B3 -:1093600003E0000827BD007827BDFFB0AFB500447B -:109370000000A821AFB0003000008021AFBF004C3A -:10938000AFB60048AFB40040AFB3003CAFB2003856 -:10939000AFB100348EE204D4241400013042000145 -:1093A0001440002A0000B0218F8700E08F8800C49D -:1093B0008F8200E800E220232C8210005040000140 -:1093C00024841000000420C2008018218EE400C80C -:1093D0008EE500CC0000102100A3282100A3302B33 -:1093E0000082202100862021AEE400C8AEE500CC3A -:1093F0008F8300C83C02000A3442EFFF01032023A0 -:109400000044102B104000033C02000A3442F000DC -:1094100000822021008018218EE400C08EE500C467 -:109420000000102100A3282100A3302B008220215E -:1094300000862021AEE400C0AEE500C4AF8800C8BD -:10944000AF8700E408003850AF8700E83C02000115 -:1094500000571021904283C01040000B0000000014 -:109460003C130001027798218E7383C43C110001E4 -:10947000023788218E3183C83C12000102579021A7 -:10948000080036E88E5283CC8F8300E08F8200E4A0 -:1094900010430007000048218F8200E424090001E6 -:1094A0008C4300008C440004AFA30018AFA4001C40 -:1094B0001520000E3C02FFFF8F8200C4AFA20010F7 -:1094C0008F8200C83C04000124845870AFA20014AD -:1094D0008F8600E08F8700E43C0500060C00240323 -:1094E00034A5F00008003850000000008FA3001CD5 -:1094F0008FB200183073FFFF2673FFFC0062102448 -:1095000010400058024088213C0200800062102474 -:109510001040000A3C0400408EE2007C244200011E -:10952000AEE2007C8EE2007C8EE201FC244200016F -:10953000AEE201FC0800384A8EE201FC3C06000461 -:109540003C0B00013C0A00023C0500103C090008ED -:109550008EE200803C080020340780002442000195 -:10956000AEE200808EE200808FA2001C004418242E -:109570001066002100C3102B1440000700000000FB -:10958000106B001100000000106A001500000000C0 -:1095900008003592000420421065002300A3102B20 -:1095A00014400005000000001069001900000000D0 -:1095B00008003592000420421068002100000000DD -:1095C00008003592000420428EE20034244200015B -:1095D000AEE200348EE200340800359200042042EE -:1095E0008EE201EC24420001AEE201EC8EE201ECDD -:1095F00008003592000420428EE201F0244200016E -:10960000AEE201F08EE201F0080035920004204243 -:109610008EE201F424420001AEE201F48EE201F494 -:1096200008003592000420428EE2003024420001FE -:10963000AEE200308EE20030080035920004204295 -:109640008EE201F824420001AEE201F88EE201F858 -:1096500000042042108702B70000000008003557C0 -:10966000000000003C02000100571021904283B22C -:1096700014400084240200013C03000100771821FB -:10968000906383B31462007F3C0201008E430000AC -:10969000006210241040006F2402FFFF14620005D6 -:1096A00024100001964300043402FFFF106200758D -:1096B0000000000092E204D8144000720000000094 -:1096C0003C020001005710218C4283B4284200055F -:1096D00010400020000038213C02000100571021FA -:1096E0008C4283B418400016000028219626000002 -:1096F000000520C0009710219442777E144600098F -:10970000009710219443778096220002146200058E -:10971000009710219443778296220004506200083B -:10972000240700013C020001005710218C4283B441 -:1097300024A5000100A2102A5440FFEE000520C01D -:1097400030E200FF1040027B000000000800361EDF -:1097500000000000024020210C0022FE240500062B -:109760003044001F000428C002E510219442727C9E -:10977000304240001440026F00B710219443727EC3 -:10978000962200001462000B000418C000B71021DC -:10979000944372809622000214620006000418C0EE -:1097A00000B71021944372829622000410620035A3 -:1097B000000418C002E310219442727C3042800001 -:1097C0001440025C02E310219448727C962700004A -:1097D000000828C000B710219442737E08003600AC -:1097E00000003021000420C002E410219443737C67 -:1097F00002E410219448737C3063800014600010F0 -:10980000000828C000B710219442737E1447FFF56A -:109810000100202100B7102194437380962200029A -:109820005462FFF1000420C000B7102194437382FA -:10983000962200045462FFEC000420C024060001BC -:1098400030C200FF1040023B000000000800361E3E -:1098500000000000974302029642000014620235A5 -:109860000000000097430204964200021462023195 -:109870000000000097430206964200041462022D85 -:1098800000000000924200003A0300013042000153 -:1098900000431024104000742402FFFF8E230000B8 -:1098A000146200043402FFFF962300041062006F6C -:1098B000241400023C02000100571021904283B2A0 -:1098C0001440006A2414000392E204D81440006794 -:1098D000000000003C020001005710218C4283B4BC -:1098E0002842000510400020000038213C02000101 -:1098F000005710218C4283B4184000160000282124 -:1099000096260000000520C0009710219442777E23 -:109910001446000900971021944377809622000294 -:109920001462000500971021944377829622000468 -:1099300050620008240700013C020001005710217A -:109940008C4283B424A5000100A2102A5440FFEEEB -:10995000000520C030E200FF14400044241400033E -:109960000800384A00000000024020210C0022FEBE -:10997000240500063044001F000428C002E5102121 -:109980009442727C30424000144001EA00B710213A -:109990009443727E962200001462000B000418C0EB -:1099A00000B71021944372809622000214620006D0 -:1099B000000418C000B7102194437282962200045C -:1099C00010620027000418C002E310219442727C48 -:1099D00030428000144001D702E310219448727C89 -:1099E00096270000000828C000B710219442737E1B -:1099F0000800368500003021000420C002E4102158 -:109A00009443737C02E410219448737C306380009B -:109A100014600010000828C000B710219442737E23 -:109A20001447FFF50100202100B7102194437380F3 -:109A3000962200025462FFF1000420C000B71021FA -:109A400094437382962200045462FFEC000420C009 -:109A50002406000130C200FF104001B600000000E3 -:109A60000800369824140003241400018F42026079 -:109A70000053102B10400049000000008F8300E4C9 -:109A80008F8200E01062000324630008AF8300E4CB -:109A9000AF8300E88EE400C08EE500C402601821A8 -:109AA0000000102100A3282100A3302B00822021D8 -:109AB00000862021AEE400C0AEE500C48EE200586E -:109AC00024420001AEE200588EE200588EE2007C93 -:109AD00024420001AEE2007C8EE2007C8F8200E036 -:109AE000AFA200108F8200E43C0400012484587867 -:109AF000AFA200148FA600188FA7001C3C0500061B -:109B00000C00240334A5F0030800385000000000C6 -:109B10008EE25240AFA200108EE252443C0400019B -:109B200024845884AFA200148EE60E108EE70E181F -:109B30000C00240334A5F0028EE201C0244200018F -:109B4000AEE201C08EE200008EE301C02403FFBF3D -:109B500000431024080037F8AEE200008EE25240C5 -:109B6000AFA200108EE252443C04000124845884C9 -:109B7000AFA200148EE60E108EE70E183C0500060C -:109B80000C00240334A5F0028EE201C0244200013F -:109B9000AEE201C0080037F88EE201C096E2046828 -:109BA0000053102B544000013C158000126001311D -:109BB0003C0C001F358CFFFF8EE2724C8F430280FD -:109BC00024420001304207FF10620108000000003B -:109BD00012A00014000000008EE352408EE25244B6 -:109BE0001062000926EE52448EEB52448EE352443A -:109BF000000211402442524802E280212463000105 -:109C000008003712306800FF92E272481440FFC02B -:109C10003C0500068EE201E024420001AEE201E0D4 -:109C20008EE201E08EE30E108EE20E181062FFCB82 -:109C300026EE0E188EEB0E180000A8218EE30E18EB -:109C40000002114024420E2002E280212463000120 -:109C5000306801FF96E2046A30420010104000179D -:109C6000340281009643000C1462001400000000CE -:109C70003C02000100571021904283C01440000FA5 -:109C8000000000009642000EA60200168E42000858 -:109C90008E4300048E4400002673FFFCAE42000C8D -:109CA000AE430008AE4400049602000E26310004C4 -:109CB0002416000134420200A602000E9603000A98 -:109CC000026050210073102B1040000202606821D6 -:109CD000006050212D42003D1040002A0000382134 -:109CE0009623000C2402080054620027AE110018CD -:109CF0003C02000100571021904283C054400022D2 -:109D0000AE110018262200170182102B10400013FC -:109D1000000000003C02FFF5005110219042101796 -:109D2000384300062C630001384200112C42000128 -:109D30000062182510600013262200100182102BEB -:109D40001040000E000000003C07FFF500F1382134 -:109D500094E710100800375E24E7000E92220017E7 -:109D6000384300062C630001384200112C420001E8 -:109D70000062182550600004AE11001896270010EC -:109D800024E7000EAE1100183C020001005710211C -:109D9000904283C00002102B14E0000200024EC06B -:109DA000014038218F83012027623800246600207B -:109DB00000C2102B50400001276630008F8201281E -:109DC00010C20004000000008F82012414C20007AA -:109DD0002402000B8EE201A400004821244200016D -:109DE000AEE201A4080037BF8EE201A48E04000099 -:109DF0008E050004AC62001801751025004910257D -:109E0000AC710008A467000EAC62001CAC640000DA -:109E1000AC6500048EE204C0AC620010AF86012085 -:109E200092E24E2014400038240900018EE24E30A8 -:109E3000000210C02442503802E220218C8300002E -:109E40002402000714620020000000008EE34E3060 -:109E50008EE24E341062001C000000008C82000470 -:109E600024420001AC8200048EE34E348EE54E3075 -:109E7000240200402463000110620007000000007B -:109E80008EE24E342442000110A2000500000000C2 -:109E9000080037A90000000014A000050000000021 -:109EA0008F82012824420020AF8201288F8201285E -:109EB0008C8200042C42001150400013AC80000042 -:109EC000080037BF000000008EE24E30240300403F -:109ED0002442000150430003000010218EE24E3066 -:109EE00024420001AEE24E308EE24E30000210C03D -:109EF0002442503802E2202124020007AC820000F4 -:109F000024020001AC820004152000183C05000664 -:109F10008E0200183C04000124845890AFA2001067 -:109F20008E0200008E03000434A5F00902003021E7 -:109F30000C002403AFA3001432C200FF1040002B1A -:109F4000340281008E4300048E4400088E45000CCC -:109F5000A642000CAE430000AE440004AE4500082B -:109F600096020016080037F8A642000E154D000AAA -:109F7000000000009602000EA613000A34420004FE -:109F8000A602000E3C01000100370821A02083C07A -:109F9000080037F6000098219604000A0093102B61 -:109FA00010400002026018210080182124020001E4 -:109FB000A603000A3C01000100370821A02283C04B -:109FC0009604000A022488210191102B10400003FE -:109FD0003C02FFF5344210000222882102649823DB -:109FE0000000A8211660FEF4ADC800001260002138 -:109FF00032C200FF3C01000100370821AC3383C4AA -:10A000003C01000100370821AC3183C83C0100014C -:10A010000037082110400008AC3283CC3C0200011C -:10A02000005710218C4283CC244200043C010001E3 -:10A0300000370821AC2283CC8EE2724C8F43028021 -:10A040002442000114620006000000008EE201C4F8 -:10A0500024420001AEE201C4080038508EE201C47F -:10A060008EE201BC24420001AEE201BC080038507F -:10A070008EE201BC97A4001E2484FFFC00801821FE -:10A080008EE400C08EE500C40000102100A328214A -:10A0900000A3302B00822021008620212402000210 -:10A0A000AEE400C0AEE500C41282000F2A820003B5 -:10A0B000144000172402000316820015000000005F -:10A0C0008EE200D08EE300D4246300012C640001F2 -:10A0D00000441021AEE200D0AEE300D48EE200D006 -:10A0E0000800384A8EE300D48EE200D88EE300DC0C -:10A0F000246300012C64000100441021AEE200D86A -:10A10000AEE300DC8EE200D80800384A8EE300DCC3 -:10A110008EE200C88EE300CC246300012C640001B1 -:10A1200000441021AEE200C8AEE300CC8EE200C8CD -:10A130008EE300CC8F8300E48F8200E01062000386 -:10A1400024630008AF8300E4AF8300E88FBF004CB6 -:10A150008FB600488FB500448FB400408FB3003CE9 -:10A160008FB200388FB100348FB0003003E00008A8 -:10A1700027BD005027BDFF90AFB600600000B021A2 -:10A18000AFBF0068AFBE0064AFB5005CAFB40058AD -:10A19000AFB30054AFB20050AFB1004CAFB0004805 -:10A1A0008EE204D400008821241500013042000111 -:10A1B0001440002AA3A0002F8F8700E08F8800C4DE -:10A1C0008F8200E800E220232C8210005040000122 -:10A1D00024841000000420C2008018218EE400C8EE -:10A1E0008EE500CC0000102100A3282100A3302B15 -:10A1F0000082202100862021AEE400C8AEE500CC1C -:10A200008F8300C83C02000A3442EFFF0103202381 -:10A210000044102B104000033C02000A3442F000BE -:10A2200000822021008018218EE400C08EE500C449 -:10A230000000102100A3282100A3302B0082202140 -:10A2400000862021AEE400C0AEE500C4AF8800C89F -:10A25000AF8700E408003C5BAF8700E83C020001E8 -:10A2600000571021904283C01040000B00000000F6 -:10A270003C130001027798218E7383C43C100001C7 -:10A28000021780218E1083C83C12000102579021D2 -:10A2900008003A598E5283CC8F8300E08F8200E40D -:10A2A00010430007000038218F8200E424070001DA -:10A2B0008C4300008C440004AFA30018AFA4001C22 -:10A2C00014E0000E3C02FFFF8F8200C4AFA200101A -:10A2D0008F8200C83C040001248458B4AFA200144B -:10A2E0008F8600E08F8700E43C0500060C00240305 -:10A2F00034A5F20008003C5B000000008FA3001CA6 -:10A300008FB200183073FFFF2673FFFC0062102429 -:10A3100010400058024080213C020080006210245E -:10A320001040000A3C0400408EE2007C2442000100 -:10A33000AEE2007C8EE2007C8EE201FC2442000151 -:10A34000AEE201FC08003C558EE201FC3C06000434 -:10A350003C0B00013C0A00023C0500103C090008CF -:10A360008EE200803C080020340780002442000177 -:10A37000AEE200808EE200808FA2001C0044182410 -:10A380001066002100C3102B1440000700000000DD -:10A39000106B001100000000106A001500000000A2 -:10A3A00008003916000420421065002300A3102B7A -:10A3B00014400005000000001069001900000000B2 -:10A3C0000800391600042042106800210000000037 -:10A3D00008003916000420428EE2003424420001B5 -:10A3E000AEE200348EE20034080039160004204248 -:10A3F0008EE201EC24420001AEE201EC8EE201ECBF -:10A4000008003916000420428EE201F024420001C7 -:10A41000AEE201F08EE201F008003916000420429D -:10A420008EE201F424420001AEE201F48EE201F476 -:10A4300008003916000420428EE200302442000158 -:10A44000AEE200308EE200300800391600042042EF -:10A450008EE201F824420001AEE201F88EE201F83A -:10A46000000420421087033E00000000080038DB93 -:10A47000000000003C02000100571021904283B20E -:10A4800014400084240200013C03000100771821DD -:10A49000906383B31462007F3C0201008E4300008E -:10A4A000006210241040006F2402FFFF14620005B8 -:10A4B00024110001964300043402FFFF106200756E -:10A4C0000000000092E204D8144000720000000076 -:10A4D0003C020001005710218C4283B42842000541 -:10A4E00010400020000038213C02000100571021DC -:10A4F0008C4283B418400016000028219606000004 -:10A50000000520C0009710219442777E1446000970 -:10A510000097102194437780960200021462000590 -:10A52000009710219443778296020004506200083D -:10A53000240700013C020001005710218C4283B423 -:10A5400024A5000100A2102A5440FFEE000520C0FF -:10A5500030E200FF1040030200000000080039A2B2 -:10A5600000000000024020210C0022FE240500060D -:10A570003044001F000428C002E510219442727C80 -:10A5800030424000144002F600B710219443727E1E -:10A59000960200001462000B000418C000B71021DE -:10A5A000944372809602000214620006000418C0F0 -:10A5B00000B71021944372829602000410620035A5 -:10A5C000000418C002E310219442727C30428000E3 -:10A5D000144002E302E31021944D727C96070000C0 -:10A5E000000D28C000B710219442737E0800398402 -:10A5F00000003021000420C002E410219443737C49 -:10A6000002E41021944D737C3063800014600010CC -:10A61000000D28C000B710219442737E1447FFF547 -:10A6200001A0202100B710219443738096020002FC -:10A630005462FFF1000420C000B7102194437382DC -:10A64000960200045462FFEC000420C024060001BE -:10A6500030C200FF104002C200000000080039A212 -:10A66000000000009743020296420000146202BC00 -:10A67000000000009743020496420002146202B8F0 -:10A68000000000009743020696420004146202B4E0 -:10A6900000000000924200003A2300013042000115 -:10A6A00000431024104000742402FFFF8E030000BA -:10A6B000146200043402FFFF960300041062006F6E -:10A6C000241500023C02000100571021904283B281 -:10A6D0001440006A2415000392E204D81440006775 -:10A6E000000000003C020001005710218C4283B49E -:10A6F0002842000510400020000038213C020001E3 -:10A70000005710218C4283B4184000160000282105 -:10A7100096060000000520C0009710219442777E25 -:10A720001446000900971021944377809602000296 -:10A73000146200050097102194437782960200046A -:10A7400050620008240700013C020001005710215C -:10A750008C4283B424A5000100A2102A5440FFEECD -:10A76000000520C030E200FF14400044241500031F -:10A7700008003C5500000000024020210C0022FE91 -:10A78000240500063044001F000428C002E5102103 -:10A790009442727C304240001440027100B7102194 -:10A7A0009443727E960200001462000B000418C0ED -:10A7B00000B71021944372809602000214620006D2 -:10A7C000000418C000B7102194437282960200045E -:10A7D00010620027000418C002E310219442727C2A -:10A7E000304280001440025E02E31021944D727CDE -:10A7F00096070000000D28C000B710219442737E18 -:10A8000008003A0900003021000420C002E41021B1 -:10A810009443737C02E41021944D737C3063800078 -:10A8200014600010000D28C000B710219442737E00 -:10A830001447FFF501A0202100B710219443738035 -:10A84000960200025462FFF1000420C000B71021FC -:10A8500094437382960200045462FFEC000420C00B -:10A860002406000130C200FF1040023D000000003D -:10A8700008003A1C24150003241500018F420260D1 -:10A880000053102B10400036000000008F8300E4BE -:10A890008F8200E01062000324630008AF8300E4AD -:10A8A000AF8300E88EE400C08EE500C4026018218A -:10A8B0000000102100A3282100A3302B00822021BA -:10A8C00000862021AEE400C0AEE500C48EE2005850 -:10A8D00024420001AEE200588EE200588EE2007C75 -:10A8E00024420001AEE2007C8EE2007C8F8200E018 -:10A8F000AFA200108F8200E43C040001248458C001 -:10A90000AFA200148FA600188FA7001C3C050006FC -:10A910000C00240334A5F20308003C5B0000000097 -:10A920008EE25240AFA200108EE252443C0400017D -:10A93000248458CCAFA200148EE60E108EE70E18B9 -:10A940003C0500060C00240334A5F2028EE201C08F -:10A9500024420001AEE201C008003C028EE201C0C8 -:10A9600096E204680053102B544000013C1680000E -:10A97000126001CB3C0E001F35CEFFFF3C0FFFF5F0 -:10A9800035EF1000241E00408EE2724C8F4302808F -:10A9900024420001304207FF1062019E00000000C7 -:10A9A00012C00012000000008EE352408EE25244BA -:10A9B0001062000A26F852448EF45244AFB80024C4 -:10A9C0008EE35244000211402442524802E28821A0 -:10A9D0002463000108003A85306D00FF8EE201E03B -:10A9E00024420001AEE201E08EE201E08EE30E10AF -:10A9F0008EE20E181062FFCA26F80E188EF40E189A -:10AA00000000B021AFB800248EE30E180002114000 -:10AA100024420E2002E2882124630001306D01FFF0 -:10AA200096E2046A3042001010400018340281009F -:10AA30009643000C14620015000000003C02000167 -:10AA400000571021904283C0144000100000000005 -:10AA50009642000EA62200168E4200088E43000485 -:10AA60008E4400002673FFFCAE42000CAE4300088B -:10AA7000AE4400049622000E2610000424180001A3 -:10AA8000A3B8002F34420200A622000E8E2200003E -:10AA90008E2300043C04000134843800020030217D -:10AAA000306A0007020A8023036410210202102B7F -:10AAB00010400005026A9821020410230362182343 -:10AAC0003C02002000438023266200079623000AF0 -:10AAD0002418FFF80058C824006A18210079102BA8 -:10AAE00010400002032060210060602101801821D5 -:10AAF000246200072418FFF800586024026C102B11 -:10AB000014400004019328230183282308003AC33A -:10AB100000C3102100D31021004A202301C4102BB0 -:10AB200054400001008F202125420040004C102B92 -:10AB3000144000350000582194C3000C2402080082 -:10AB400054620032AE2600183C020001005710216A -:10AB5000904283C05440002DAE26001824C2001736 -:10AB600001C2102B10400013000000003C02FFF552 -:10AB70000046102190421017384300062C63000154 -:10AB8000384200112C4200010062182510600014A8 -:10AB900024C2001001C2102B1040000E0000000063 -:10ABA0003C0BFFF501665821956B101008003AF434 -:10ABB0002562000E90C20017384300062C63000186 -:10ABC000384200112C420001006218251060000577 -:10ABD0000160182194CB00102562000E004A582114 -:10ABE00001601821246200072418FFF80058582437 -:10ABF00000C31021004A202301C4102B1040000282 -:10AC000001632823008F2021AE2600183C0200019A -:10AC100000571021904283C00002102B000216C082 -:10AC200015600002AFA2004401805821308200016B -:10AC3000104000070000402190880000248400019B -:10AC400001C4102B1040000224A5FFFF008F20211B -:10AC500050A0001200081C022CA20002544000095F -:10AC600024A5FFFF948200002484000201024021F9 -:10AC700001C4102B1040000624A5FFFE08003B2154 -:10AC8000008F20219082000000021200010240216A -:10AC900014A0FFF22CA2000200081C023102FFFFE8 -:10ACA000006240213108FFFF0140282111400011BE -:10ACB000020020212CA200025440000924A5FFFF1D -:10ACC00094820000248400020102402101C4102B60 -:10ACD0001040000624A5FFFE08003B38008F20210D -:10ACE00090820000000212000102402114A0FFF235 -:10ACF0002CA2000200081C023102FFFF006240216A -:10AD000000081C023102FFFF8F89012000624021F0 -:10AD100027623800252300200062102B1440000217 -:10AD20003108FFFF276330008F8201281062000482 -:10AD3000000000008F8201241462000701402821D6 -:10AD40008EE201A40000382124420001AEE201A4F9 -:10AD500008003BC98EE201A48E2600008E27000465 -:10AD6000000814003448000BAD300008A52B000E7D -:10AD7000AD2800188FB8004400002021029610254D -:10AD800000581025AD22001C00E5102B00E53823EB -:10AD900000C4302300C23023AD260000AD270004DC -:10ADA0008EE204C0AD220010AF83012092E24E205B -:10ADB0001440005F240700012502FFEE2C42000230 -:10ADC00014400003240200111502002400000000BA -:10ADD0008EE24E30000210C02442503802E22021A0 -:10ADE0008C830000240200121462000F0000000097 -:10ADF0008EE34E308EE24E341062000B00000000F5 -:10AE00008C82000424420001AC8200048EE24E34A5 -:10AE10008EE34E3024420001105E002A0000000044 -:10AE200008003BA8000000008EE24E3024420001E2 -:10AE3000505E0003000010218EE24E3024420001DB -:10AE4000AEE24E308EE24E30000210C02442503846 -:10AE500002E2202108003BC6240200128EE24E309E -:10AE6000000210C02442503802E220218C830000EE -:10AE7000240200071462001F000000008EE34E3021 -:10AE80008EE24E341062001B000000008C82000431 -:10AE900024420001AC8200048EE24E348EE34E3038 -:10AEA00024420001105E0007000000008EE24E34D4 -:10AEB00024420001106200050000000008003BB4BD -:10AEC0000000000014600005000000008F820128CF -:10AED00024420020AF8201288F8201288C82000446 -:10AEE0002C42001150400012AC80000008003BC909 -:10AEF000000000008EE24E3024420001505E00034C -:10AF0000000010218EE24E3024420001AEE24E30AD -:10AF10008EE24E30000210C02442503802E220215E -:10AF200024020007AC82000024020001AC8200046D -:10AF300014E000193C0500063C04000124845890EC -:10AF40008E22001834A5F209AFA200108E22000054 -:10AF50008E23000402203021016038210C002403DC -:10AF6000AFA3001493A2002F1040002A34028100E6 -:10AF70008E4300048E4400088E45000CA642000C4F -:10AF8000AE430000AE440004AE4500089622001611 -:10AF900008003C02A642000E1599000A026A182316 -:10AFA0009622000EA623000A34420004A622000EB8 -:10AFB0003C01000100370821A02083C008003BFFAE -:10AFC000000098219624000A0083102B54400001B1 -:10AFD0000080182124020001A623000A3C01000180 -:10AFE00000370821A02283C09622000A004A1821B7 -:10AFF0000203802101D0102B54400001020F802158 -:10B00000026398230000B0218FB800241660FE5E12 -:10B01000AF0D000012600022000000003C010001A2 -:10B0200000370821AC3383C43C01000100370821FC -:10B03000AC3083C83C01000100370821AC3283CC1E -:10B0400093A2002F10400008000000003C02000105 -:10B05000005710218C4283CC244200043C010001A3 -:10B0600000370821AC2283CC8F4302808EE2724CE1 -:10B0700014620006000000008EE201C424420001B8 -:10B08000AEE201C408003C5B8EE201C48EE201BC6A -:10B0900024420001AEE201BC08003C5B8EE201BC30 -:10B0A00097A4001E2484FFFC008018218EE400C0B9 -:10B0B0008EE500C40000102100A3282100A3302B3E -:10B0C000008220210086202124020002AEE400C07C -:10B0D000AEE500C412A2000F2AA20003144000171C -:10B0E0002402000316A20015000000008EE200D02A -:10B0F0008EE300D4246300012C640001004410217D -:10B10000AEE200D0AEE300D48EE200D008003C55A1 -:10B110008EE300D48EE200D88EE300DC24630001CD -:10B120002C64000100441021AEE200D8AEE300DC44 -:10B130008EE200D808003C558EE300DC8EE200C8A9 -:10B140008EE300CC246300012C6400010044102134 -:10B15000AEE200C8AEE300CC8EE200C88EE300CCC5 -:10B160008F8300E48F8200E01062000324630008F4 -:10B17000AF8300E4AF8300E88FBF00688FBE006438 -:10B180008FB600608FB5005C8FB400588FB3005449 -:10B190008FB200508FB1004C8FB0004803E0000820 -:10B1A00027BD007027BDFFE0AFBF00188EE30E146F -:10B1B0008EE20E0C10620074000000008EE30E0C94 -:10B1C0008EE20E1400622023048200012484020017 -:10B1D0008EE30E188EE20E140043102B1440000470 -:10B1E000240202008EE30E1408003C7D0043182365 -:10B1F0008EE20E188EE30E14004310232443FFFF4B -:10B20000008048210069102A544000010060482154 -:10B210008F8701002762300024E800200102102BF4 -:10B2200050400001276828008F82010811020004A5 -:10B23000000000008F8201041502000700001021A9 -:10B240008EE201A80000202124420001AEE201A804 -:10B2500008003CBF8EE201A88EE40E1400042140D9 -:10B26000008018218EE404608EE5046400A3282188 -:10B2700000A3302B0082202100862021ACE40000B6 -:10B28000ACE500048EE30E1400091140A4E2000EA8 -:10B2900024020002ACE200180003194024630E20CF -:10B2A00002E31021ACE200088EE20E14ACE2001CB6 -:10B2B0008EE204CCACE20010AF88010092E204EC14 -:10B2C00014400011240400018EE24E2824030040A3 -:10B2D0002442000150430003000010218EE24E285A -:10B2E00024420001AEE24E288EE24E28000210C039 -:10B2F00024424E3802E2182124020002AC6200000F -:10B3000024020001AC6200041480000E24030040FB -:10B310008EE20E14AFA200108EE20E183C0500075C -:10B32000AFA200148EE60E0C8EE70E103C04000156 -:10B33000248458D40C00240334A5F00108003CDD1B -:10B34000000000008EE2050024420001504300038B -:10B35000000010218EE2050024420001AEE205004B -:10B360008EE205000002108000571021AC4905084C -:10B370008EE20E1400491021304201FFAEE20E149D -:10B380008EE30E148EE20E0C146200050000000025 -:10B390008F8200602403FDFF00431024AF82006011 -:10B3A0008FBF001803E0000827BD002027BDFFE085 -:10B3B000AFBF00188EE3523C8EE252381062007428 -:10B3C000000000008EE352388EE2523C00622023DF -:10B3D00004820001248401008EE352448EE2523C38 -:10B3E0000043102B14400004240201008EE3523C61 -:10B3F00008003CFF004318238EE252448EE3523C87 -:10B40000004310232443FFFF008048210069102AD5 -:10B4100054400001006048218F87010027623000FE -:10B4200024E800200102102B50400001276828006A -:10B430008F82010811020004000000008F820104C5 -:10B4400015020007000010218EE201A80000202153 -:10B4500024420001AEE201A808003D418EE201A8AD -:10B460008EE4523C00042140008018218EE40470D8 -:10B470008EE5047400A3282100A3302B0082202134 -:10B4800000862021ACE40000ACE500048EE3523CD1 -:10B4900000091140A4E2000E24020003ACE20018EF -:10B4A000000319402463524802E31021ACE2000873 -:10B4B0008EE2523CACE2001C8EE204CCACE2001006 -:10B4C000AF88010092E204EC144000112404000152 -:10B4D0008EE24E2824030040244200015043000322 -:10B4E000000010218EE24E2824420001AEE24E28D8 -:10B4F0008EE24E28000210C024424E3802E218218B -:10B5000024020003AC62000024020001AC620004CB -:10B510001480000E240300408EE2523CAFA20010C3 -:10B520008EE252443C050007AFA200148EE652386A -:10B530008EE752403C040001248458E00C002403B0 -:10B5400034A5F01008003D5F000000008EE2050009 -:10B550002442000150430003000010218EE2050048 -:10B5600024420001AEE205008EE2050000021080D8 -:10B5700000571021AC4905088EE2523C00491021C9 -:10B58000304200FFAEE2523C8EE3523C8EE2523833 -:10B5900014620005000000008F8200602403FEFF9B -:10B5A00000431024AF8200608FBF001803E0000842 -:10B5B00027BD00208F8201208EE34E348F8201242C -:10B5C0008F8601282402004024630001506200039A -:10B5D000000010218EE24E3424420001AEE24E34CF -:10B5E0008EE24E348EE44E348EE34E30000210C0B4 -:10B5F000244250381483000702E228218F82012858 -:10B6000024420020AF8201288F82012808003D9249 -:10B61000ACA000008EE24E3424030040244200011E -:10B6200050430003000010218EE24E3424420001FA -:10B63000000210C02442503802E228218CA20004EB -:10B640008F8301280002114000621821AF83012876 -:10B65000ACA000008CC200182443FFFE2C62001234 -:10B6600010400008000310803C0100010022082166 -:10B670008C2258F000400008000000002402000165 -:10B68000AEE24E2403E000080000000027BDFFC822 -:10B69000AFBF0030AFB5002CAFB40028AFB300246B -:10B6A000AFB20020AFB1001CAFB000188F830128EB -:10B6B0008F820124106202B0000098213C11001F0B -:10B6C0003631FFFF3C12FFF53652100024150012F0 -:10B6D000241400408F8C01288F82012824420020EE -:10B6E000AF8201289182001B8F8301282443FFFE33 -:10B6F0002C6200121040029C000310803C010001EB -:10B70000002208218C225948004000080000000057 -:10B710008F42021830420100104000070000000074 -:10B720009583001695820018006218230003140206 -:10B7300000431021A58200168D82001C3C0380006E -:10B740003044FFFF004368243C03080000431824F2 -:10B7500011A00004AD84001C0004114008003DD875 -:10B76000244252480004114024420E2002E2582193 -:10B770009562000E3042FFFC10600004A562000ECE -:10B780009584001608003EC0000000008D69001876 -:10B7900000004021952A000025290002952700007D -:10B7A0002529000295260000252900029525000084 -:10B7B0002529000295240000252900029523000078 -:10B7C0002529000295220000252900020147502169 -:10B7D000014650210145502101445021014350218F -:10B7E00001425021000A1C023142FFFF0062502139 -:10B7F000000A1C023142FFFF0062502196E2046AF7 -:10B80000314EFFFF30420002104000440000502142 -:10B81000252200140222102B1040001401201821B0 -:10B820002405000A000020210223102B54400001AF -:10B8300000721821946200002463000224A5FFFF17 -:10B8400014A0FFF90082202100041C023082FFFFB7 -:10B8500000622021000414023083FFFF0043102106 -:10B860003042FFFF08003E3301425021952A00007C -:10B8700025290002952800002529000295270000AF -:10B8800025290002952600002529000295250000A3 -:10B890002529000295230000252900029522000099 -:10B8A0002529000295240000252900020148502185 -:10B8B00001475021014650210145502101435021AB -:10B8C000014250219522000095230002014450219D -:10B8D0000142502101435021000A1C023142FFFF66 -:10B8E00000625021000A1C023142FFFF0062502119 -:10B8F0003148FFFF510000013408FFFF8D6200183E -:10B900009443000C2402080054620005A56800104E -:10B910009562000E34420002A562000EA568001078 -:10B9200096E2046A000028213042000814400056C4 -:10B93000000030218D630018246200240222102BA5 -:10B9400010400034246900100229102B54400001DB -:10B950000132482195250000246900140229102B8A -:10B960001040000224A5FFEC01324821952200007E -:10B9700030420FFF144000032529000208003E60FA -:10B98000241300010000982100A030210229102B6F -:10B990005440000101324821912200012529000272 -:10B9A00000A228210229102B544000010132482115 -:10B9B000252900020229102B5440000101324821A0 -:10B9C000952200002529000200A228210229102B1F -:10B9D000544000010132482195220000252900022F -:10B9E00000A228210229102B5440000101324821D5 -:10B9F000952200002529000200A228210229102BEF -:10BA000054400001013248219522000008003E996F -:10BA100000A2282194650010946200142469001685 -:10BA200030420FFF1440000324A5FFEC08003E8CB9 -:10BA3000241300010000982100A03021912300016F -:10BA400025290004952200002529000295240000E4 -:10BA50002529000200A3282100A228219522000008 -:10BA60009523000200A4282100A2282100A3282158 -:10BA700000051C0230A2FFFF0062282100051C0205 -:10BA800030A2FFFF0062282196E2046A30420001E2 -:10BA90001040001E0000202195820016004E202339 -:10BAA0000004140200822021326200FF5040000294 -:10BAB000008620210085202100041402008220211C -:10BAC0003084FFFF508000013404FFFF8D620018B6 -:10BAD000244300170223102B544000010072182148 -:10BAE00090620000384300112C63000138420006C8 -:10BAF0002C420001006218251060000400000000C4 -:10BB00009562000E34420001A562000E9562000E9F -:10BB1000240A00023042000410400002A564001212 -:10BB2000240A00048F88012027623800250900209C -:10BB30000122102B50400001276930008F8201281C -:10BB400011220004000000008F820124152200074A -:10BB5000240400208EE201A4000080212442000180 -:10BB6000AEE201A408003F4F8EE201A48EE5724CC4 -:10BB70008EE604908EE70494AD0B0008A504000E39 -:10BB8000AD0A00180005294000A01821000010216E -:10BB900000E3382100E3202B00C2302100C4302113 -:10BBA000AD060000AD0700048EE2724C004D10257A -:10BBB000AD02001C8EE204C4AD020010AF8901206A -:10BBC00092E24E2014400060241000012543FFEE55 -:10BBD0002C630002394200112C420001006218253A -:10BBE00010600024000000008EE24E30000210C001 -:10BBF0002442503802E220218C8200001455000FAC -:10BC0000000000008EE34E308EE24E341062000BD6 -:10BC1000000000008C82000424420001AC82000479 -:10BC20008EE24E348EE34E30244200011054002B3D -:10BC30000000000008003F2E000000008EE24E30A1 -:10BC40002442000150540003000010218EE24E30C7 -:10BC500024420001AEE24E308EE24E30000210C0AF -:10BC60002442503802E220212402000108003F4E05 -:10BC7000AC9500008EE24E30000210C024425038D5 -:10BC800002E220218C830000240200071462001FBE -:10BC9000000000008EE34E308EE24E341062001B36 -:10BCA000000000008C82000424420001AC820004E9 -:10BCB0008EE24E348EE34E302442000110540007D1 -:10BCC000000000008EE24E342442000110620005A4 -:10BCD0000000000008003F3A00000000146000056A -:10BCE000000000008F82012824420020AF8201283A -:10BCF0008F8201288C8200042C42001150400012D7 -:10BD0000AC80000008003F4F000000008EE24E3083 -:10BD10002442000150540003000010218EE24E30F6 -:10BD200024420001AEE24E308EE24E30000210C0DE -:10BD30002442503802E2202124020007AC82000095 -:10BD400024020001AC8200041600000D0000000077 -:10BD50008F8201203C04000124845938AFA00014D4 -:10BD6000AFA200108D86001C8F8701243C050008BF -:10BD70000C00240334A50001080040570000000017 -:10BD80008EE2724C24420001304207FF11A00006EF -:10BD9000AEE2724C8EE201D02442FFFFAEE201D04F -:10BDA00008003F6B8EE201D08EE201CC2442FFFFFF -:10BDB000AEE201CC8EE201CC8EE201D82442FFFF3C -:10BDC000AEE201D8080040578EE201D88F4202400F -:10BDD000104000E5000000008EE20E1C244200012D -:10BDE00008004057AEE20E1C9582001EAD82001C7A -:10BDF0008F42024010400072000000008EE20E1CD4 -:10BE000024420001AEE20E1C8F4302400043102B7F -:10BE1000144000D5000000008F8301202762380005 -:10BE20002466002000C2102B50400001276630001D -:10BE30008F82012810C20004000000008F820124BC -:10BE400014C20007000000008EE201A4000080215F -:10BE500024420001AEE201A408003FDA8EE201A410 -:10BE60008EE2724CAC62001C8EE404A88EE504AC39 -:10BE70002462001CAC62000824020008A462000EC8 -:10BE800024020011AC620018AC640000AC65000430 -:10BE90008EE204C4AC620010AF86012092E24E2014 -:10BEA00014400034241000018EE24E30000210C015 -:10BEB0002442503802E220218C8200001455001FD9 -:10BEC000000000008EE34E308EE24E341062001B04 -:10BED000000000008C82000424420001AC820004B7 -:10BEE0008EE24E348EE34E3024420001105400079F -:10BEF000000000008EE24E34244200011062000572 -:10BF00000000000008003FC60000000014600005AB -:10BF1000000000008F82012824420020AF82012807 -:10BF20008F8201288C8200042C42001150400011A5 -:10BF3000AC80000008003FDA000000008EE24E30C6 -:10BF40002442000150540003000010218EE24E30C4 -:10BF500024420001AEE24E308EE24E30000210C0AC -:10BF60002442503802E2202124020001AC95000056 -:10BF7000AC8200045600000B241000018EE2724CCB -:10BF80003C040001248458A8AFA00014AFA2001004 -:10BF90008EE6724C8F4702803C0500090C0024039A -:10BFA00034A5F00856000001AEE00E1C8EE20188B8 -:10BFB00024420001AEE20188080040508EE2018870 -:10BFC0008F830120276238002466002000C2102BD6 -:10BFD00050400001276630008F82012810C2000403 -:10BFE000000000008F82012414C20007000000003E -:10BFF0008EE201A40000802124420001AEE201A4EF -:10C00000080040448EE201A48EE2724CAC62001C37 -:10C010008EE404A88EE504AC2462001CAC62000827 -:10C0200024020008A462000E24020011AC62001871 -:10C03000AC640000AC6500048EE204C4AC62001085 -:10C04000AF86012092E24E201440003424100001FB -:10C050008EE24E30000210C02442503802E220210D -:10C060008C8200001455001F000000008EE34E304B -:10C070008EE24E341062001B000000008C8200042F -:10C0800024420001AC8200048EE24E348EE34E3036 -:10C090002442000110540007000000008EE24E34DC -:10C0A000244200011062000500000000080040303A -:10C0B0000000000014600005000000008F820128CD -:10C0C00024420020AF8201288F8201288C82000444 -:10C0D0002C42001150400011AC8000000800404488 -:10C0E000000000008EE24E30244200015054000354 -:10C0F000000010218EE24E3024420001AEE24E30AC -:10C100008EE24E30000210C02442503802E220215C -:10C1100024020001AC950000AC8200041600000B64 -:10C12000000000008EE2724C3C040001248458A8F8 -:10C13000AFA00014AFA200108EE6724C8F470280B1 -:10C140003C0500090C00240334A5F0088EE20174BC -:10C1500024420001AEE20174080040578EE20174EF -:10C1600024020001AEE24E248F8301288F82012435 -:10C170001462FD58000000008FBF00308FB5002C06 -:10C180008FB400288FB300248FB200208FB1001C21 -:10C190008FB0001803E0000827BD003827BDFFE876 -:10C1A000278402082745020024060008AFBF0014B8 -:10C1B0000C00249AAFB000100000202124100001D0 -:10C1C0002402241FAF900210AF900200AF8002043F -:10C1D000AF8202148F460248240300043C02004050 -:10C1E0003C010001AC235CC43C010001AC235CC8F1 -:10C1F0003C010001AC205D9C3C010001AC225CC014 -:10C200003C010001AC235CC80C005108240500046B -:10C210000C004822000000008EE200003C03FEFFFC -:10C220003463FFFD00431024AEE200003C023C00FA -:10C23000AF82021C3C01000100370821AC3083AC06 -:10C240008FBF00148FB0001003E0000827BD001856 -:10C2500027BDFFE03C05000834A50400AFBF00186F -:10C26000AFA00010AFA000148F8602003C040001B4 -:10C27000248459F00C002403000038218EE202804F -:10C2800024420001AEE202808EE202808F8302002F -:10C290003C023F00006218248FBF00183C020400DB -:10C2A00003E0000827BD002027BDFFD8AFBF002056 -:10C2B000AFB1001CAFB000188F9002208EE20214C4 -:10C2C0000000382124420001AEE202148EE2021482 -:10C2D0003C02030002021024104000273C1104001D -:10C2E0000C00429B000000003C02010002021024EE -:10C2F00010400007000000008EE2021824420001F6 -:10C30000AEE202188EE20218080040C63C03FDFFB0 -:10C310008EE2021C24420001AEE2021C8EE2021CEC -:10C320003C03FDFF3463FFFF3C0808FF3508FFFFB7 -:10C330008EE200003C040001248459FC3C05000806 -:10C340000200302100431024AEE200008F82022060 -:10C35000000038213C03030000481024004310254E -:10C36000AF820220AFA000100C002403AFA0001485 -:10C370000800429600000000021110241040001F27 -:10C380003C0240008F830224240214021462000B3A -:10C390003C03FDFF3C04000124845A083C050008CE -:10C3A000AFA00010AFA000148F86022434A5FFFFB9 -:10C3B0000C002403000038213C03FDFF8EE2000046 -:10C3C0003463FFFF02002021004310240C004E5470 -:10C3D000AEE200008EE2022024420001AEE2022022 -:10C3E0008EE202208F8202203C0308FF3463FFFFAD -:10C3F0000043102408004295005110250202102429 -:10C4000010400142000000008EE2022C2442000194 -:10C41000AEE2022C8EE2022C8F8202203C0308FF47 -:10C420003463FFFF0043102434420004AF82022033 -:10C430008F8300548F8200540800410E2463000251 -:10C440008F820054006210232C4200031440FFFC32 -:10C45000000000008F8600E08F8400E430C20007F7 -:10C4600010400012000000008F8300E42402FFF857 -:10C4700000C210241043000D000000008F82005401 -:10C480008F8300E014C30009244400508F820054BD -:10C49000008210232C4200511040000400000000D4 -:10C4A0008F8200E010C2FFF9000000008F8202209E -:10C4B0003C0308FF3463FFFD00431024AF820220D9 -:10C4C0008F8600E030C20007104000032402FFF80E -:10C4D00000C23024AF8600E08F8300C43C02001FFE -:10C4E0003442FFFF246800080048102B104000036E -:10C4F0003C02FFF534421000010240218F8B00C83E -:10C500008F8501208F8401240800414500006021AF -:10C51000276238000082102B504000012764300051 -:10C5200010A40010318200FF8C82001838430007ED -:10C530002C6300013842000B2C42000100621825D8 -:10C540005060FFF3248400208EE20240240C00019E -:10C5500024420001AEE202408EE202408C8B0008D1 -:10C56000318200FF14400065000000003C02000121 -:10C5700000571021904283C014400060000000006A -:10C580008F8400E400C41023000218C30462000179 -:10C59000246302008F8900C410600005240200019A -:10C5A0001062000900000000080041870000000040 -:10C5B0008EE202300120582124420001AEE2023016 -:10C5C000080041BC8EE202308EE202343C05000AD3 -:10C5D00024420001AEE202348C8B000034A5F0004E -:10C5E0008EE20234012B182300A3102B54400001CB -:10C5F000006518212C62233F144000400000000019 -:10C600008F8200E824420008AF8200E88F8200E8B1 -:10C610008F8200E40120582124420008AF8200E408 -:10C62000080041BC8F8200E48EE202383C03000A1D -:10C6300024420001AEE202388C8400003463F00032 -:10C640008EE20238008838230067102B5440000126 -:10C6500000E338213C02000334420D400047102B18 -:10C660001040000300000000080041BC0080582179 -:10C670008F8200E424440008AF8400E48F8400E447 -:10C68000108600183C05000A34A5F0003C0A00039F -:10C69000354A0D408EE2007C24420001AEE2007C6F -:10C6A0008C8300008EE2007C0068382300A7102BEA -:10C6B0005440000100E538210147102B5440000789 -:10C6C000006058218F8200E424440008AF8400E415 -:10C6D0008F8400E41486FFEF00000000148600053C -:10C6E0000000000001205821AF8600E4080041BC92 -:10C6F000AF8600E8AF8400E4AF8400E88F8200C812 -:10C700003C03000A3463F000004838230067102B14 -:10C710005440000100E338213C02000334420D3F45 -:10C720000047102B544000070000602101683823A7 -:10C730000067102B5440000300E33821080041CF6C -:10C740003C0200033C02000334420D3F0047102B23 -:10C7500014400016318200FF144000060000000063 -:10C760003C02000100571021904283C01040000F8E -:10C77000000000008EE2023C3C04FDFF8EE300005E -:10C780003484FFFF24420001AEE2023C8EE2023C10 -:10C7900024020001006418243C0100010037082134 -:10C7A000A02283B80800422CAEE30000AF8B00C883 -:10C7B0008F8300C88F8200C43C04000A3484F000D8 -:10C7C000006238230087102B5440000100E4382118 -:10C7D0003C02000334420D400047102B2CE30001C3 -:10C7E0000043102510400008000000008F82022046 -:10C7F0003C0308FF3463FFFF004310243C03400068 -:10C8000000431025AF8202208F8600E08F8400E471 -:10C8100010C4002A000000008EE2007C24420001C7 -:10C82000AEE2007C8EE2007C24C2FFF8AF8200E022 -:10C830003C0200018C427E303C0300088F8600E001 -:10C84000004310241040001D0000000010C4001B15 -:10C85000240DFFF83C0A000A354AF0003C0C008029 -:10C86000248500082762280050A2000127651800CF -:10C870008C8800048C8200008CA900003103FFFF2B -:10C8800000431021004D102424430010006B102B96 -:10C8900054400001006A1821012B102B5440000164 -:10C8A000012A482110690002010C1025AC82000405 -:10C8B00000A0202114C4FFEB248500088F820220F1 -:10C8C0003C0308FF3463FFFF00431024344200029E -:10C8D000AF8202208F8300548F82005408004237B9 -:10C8E000246300018F820054006210232C42000256 -:10C8F0001440FFFC000000008F8202203C0308FF70 -:10C900003463FFFB00431024AF8202200601005570 -:10C91000000000008EE2022824420001AEE202285C -:10C920008EE202288F8202203C0308FF3463FFFF5F -:10C930000043102434420004AF8202208F8300544D -:10C940008F82005408004251246300028F820054F9 -:10C95000006210232C4200031440FFFC0000000082 -:10C960008F8600E030C20007104000120000000077 -:10C970008F8300E42402FFF800C210241043000D4E -:10C98000000000008F8200548F8300E014C3000970 -:10C99000244400328F820054008210232C42003342 -:10C9A00010400004000000008F8200E010C2FFF978 -:10C9B000000000008F8202203C0308FF3463FFFD6B -:10C9C00000431024AF8202208F8600E030C20007AF -:10C9D000104000032402FFF800C23024AF8600E0BC -:10C9E000240301F58F8200E800673823000718C090 -:10C9F00000431021AF8200E88F8200E8AF8200E49C -:10CA00008EE2007C3C0408FF3484FFFF00471021C5 -:10CA1000AEE2007C8F8202203C038000346300027F -:10CA20000044102400431025AF8202208F8300545D -:10CA30008F8200540800428D246300018F820054CD -:10CA4000006210232C4200021440FFFC0000000092 -:10CA50008F8202203C0308FF3463FFFB0043102455 -:10CA6000AF8202208FBF00208FB1001C8FB0001852 -:10CA700003E0000827BD00283C0200018C425CD87E -:10CA800027BDFFD810400012AFBF00203C040001BA -:10CA900024845A143C050008240200013C010001D2 -:10CAA00000370821AC2283ACAFA00010AFA0001467 -:10CAB0008F86022034A504983C010001AC205CD88C -:10CAC0003C010001AC225CCC0C00240300003821A6 -:10CAD0008F4202683C037FFF3463FFFF0043102452 -:10CAE000AF4202688EE204D08EE404D42403FFFE39 -:10CAF00000431024308400021080011EAEE204D0F6 -:10CB00008EE204D42403FFFD00431024AEE204D4DB -:10CB10008F8200443C03060034632000344200202E -:10CB2000AF820044AFA300188EE206088F430228AC -:10CB300024420001304A00FF514300FEAFA0001024 -:10CB40008EE20608000210C0005710218FA30018C3 -:10CB50008FA4001CAC43060CAC4406108F83005419 -:10CB60008F82005424690032012210232C420033AA -:10CB70001040006A0000582124180008240F000DFE -:10CB8000240D0007240C0040240E00018F87012093 -:10CB90002762380024E800200102102B50400001D9 -:10CBA000276830008F820128110200040000000075 -:10CBB0008F82012415020007000010218EE201A4DB -:10CBC0000000282124420001AEE201A40800433DF8 -:10CBD0008EE201A48EE40608000420C00080182123 -:10CBE0008EE404308EE5043400A3282100A3302B0A -:10CBF0000082202100862021ACE40000ACE5000486 -:10CC00008EE20608A4F8000EACEF0018ACEA001C97 -:10CC1000000210C02442060C02E21021ACE200081F -:10CC20008EE204C4ACE20010AF88012092E24E20F4 -:10CC300014400033240500018EE24E30000210C083 -:10CC40002442503802E220218C820000144D001F43 -:10CC5000000000008EE34E308EE24E341062001B66 -:10CC6000000000008C82000424420001AC82000419 -:10CC70008EE24E348EE34E3024420001104C000709 -:10CC8000000000008EE24E342442000110620005D4 -:10CC9000000000000800432A0000000014600005A6 -:10CCA000000000008F82012824420020AF8201286A -:10CCB0008F8201288C8200042C4200115040001009 -:10CCC000AC8000000800433D000000008EE24E30C2 -:10CCD00024420001504C0003000010218EE24E302F -:10CCE00024420001AEE24E308EE24E30000210C00F -:10CCF0002442503802E22021AC8D0000AC8E0004AA -:10CD000054A00006240B00018F820054012210233E -:10CD10002C4200331440FF9D00000000316300FFEF -:10CD20002402000154620079AFA00010AEEA0608A8 -:10CD30008F8300548F820054246900320122102313 -:10CD40002C4200331040006100005821240D0008DF -:10CD5000240C00112408001224070040240A0001BA -:10CD60008F830120276238002466002000C2102B28 -:10CD700050400001276630008F82012810C2000455 -:10CD8000000000008F82012414C200070000000090 -:10CD90008EE201A40000282124420001AEE201A499 -:10CDA000080043A98EE201A48EE20608AC62001CD2 -:10CDB0008EE404A08EE504A42462001CAC6200088A -:10CDC000A46D000EAC6C0018AC640000AC650004EF -:10CDD0008EE204C4AC620010AF86012092E24E20C5 -:10CDE00014400033240500018EE24E30000210C0D2 -:10CDF0002442503802E220218C8200001448001F97 -:10CE0000000000008EE34E308EE24E341062001BB4 -:10CE1000000000008C82000424420001AC82000467 -:10CE20008EE24E348EE34E3024420001104700075C -:10CE3000000000008EE24E34244200011062000522 -:10CE40000000000008004396000000001460000588 -:10CE5000000000008F82012824420020AF820128B8 -:10CE60008F8201288C8200042C4200115040001057 -:10CE7000AC800000080043A9000000008EE24E30A4 -:10CE80002442000150470003000010218EE24E3082 -:10CE900024420001AEE24E308EE24E30000210C05D -:10CEA0002442503802E22021AC880000AC8A000401 -:10CEB00054A00006240B00018F820054012210238D -:10CEC0002C4200331440FFA600000000316300FF35 -:10CED0002402000154620003AFA00010080043D6F2 -:10CEE000000000003C04000124845A20AFA000147C -:10CEF0008F8601208F8701243C0500090C00240344 -:10CF000034A5F011080043D6000000003C040001E5 -:10CF100024845A2CAFA000148F8601208F8701240F -:10CF20003C0500090C00240334A5F010080043D68A -:10CF3000000000003C04000124845A38AFA0001413 -:10CF40008EE606088F4702283C0500090C002403E2 -:10CF500034A5F00F8EE201AC24420001AEE201AC38 -:10CF60008EE201AC8EE2015C24420001AEE2015C83 -:10CF70008EE2015C8FBF002003E0000827BD00287F -:10CF80003C0200018C425CD827BDFFE01440000D3C -:10CF9000AFBF00183C04000124845A443C0500083B -:10CFA000AFA00010AFA000148F86022034A5049912 -:10CFB000240200013C010001AC225CD80C002403D7 -:10CFC000000038218EE204D03C03000100771821D4 -:10CFD000946383B23442000110600007AEE204D0D3 -:10CFE0008F8202203C0308FF3463FFFF00431024BC -:10CFF00034420008AF820220000020210C0052A21F -:10D0000024050004AF4202688FBF001803E0000847 -:10D0100027BD00200000000000000000000000000C -:10D020000000000000000000000000000000000000 -:10D0300000000000000000000000000000000000F0 -:10D0400000000000000000000000000000000000E0 -:10D0500000000000000000000000000000000000D0 -:10D0600000000000000000000000000000000000C0 -:10D0700000000000000000000000000000000000B0 -:10D0800000000000000000000000000000000000A0 -:10D090000000000000000000000000000000000090 -:10D0A0000000000000000000000000000000000080 -:10D0B0000000000000000000000000000000000070 -:10D0C0000000000000000000000000000000000060 -:10D0D0000000000000000000000000000000000050 -:10D0E0000000000000000000000000000000000040 -:10D0F0000000000000000000000000000000000030 -:10D100000000000000000000000000003C120001D0 -:10D11000265212003C1400018E945C503C10000119 -:10D12000261011203C15C00036B500608E8A000024 -:10D130008EB30000026A400B0248000A0200F82188 -:10D14000000000000000000D0000000000000000D2 -:10D1500000000000000000000000000000000000CF -:10D1600000000000000000000000000000000000BF -:10D1700000000000000000000000000000000000AF -:10D18000000000000000000000000000000000009F -:10D19000000000000000000000000000000000008F -:10D1A000000000000000000000000000000000007F -:10D1B000000000000000000000000000000000006F -:10D1C000000000000000000000000000000000005F -:10D1D000000000000000000000000000000000004F -:10D1E000000000000000000000000000000000003F -:10D1F000000000000000000000000000000000002F -:10D20000000000000000000000000000080014D62C -:10D2100000000000080014D83C0A0001080014D8DF -:10D220003C0A0002080014D800000000080024A6F0 -:10D2300000000000080014D83C0A0003080014D8BD -:10D240003C0A000408002F8C00000000080014D8DD -:10D250003C0A000508003CE80000000008003C66AD -:10D2600000000000080014D83C0A0006080014D88A -:10D270003C0A0007080014D800000000080014D879 -:10D2800000000000080014D80000000008002A7503 -:10D2900000000000080014D83C0A000B080014D855 -:10D2A0003C0A000C080014D83C0A000D0800237A40 -:10D2B000000000000800233900000000080014D816 -:10D2C0003C0A000E08001B3C00000000080024A4DB -:10D2D00000000000080014D83C0A000F080040A716 -:10D2E000000000000800409100000000080014D871 -:10D2F0003C0A0010080014EE00000000080014D8DA -:10D300003C0A0011080014D83C0A0012080014D886 -:10D310003C0A0013000000000000000000000000B4 -:10D3200000000000000000000000000000000000FD -:10D3300000000000000000000000000000000000ED -:10D3400000000000000000000000000000000000DD -:10D3500000000000000000000000000000000000CD -:10D3600000000000000000000000000000000000BD -:10D3700000000000000000000000000000000000AD -:10D38000000000000000000000000000000000009D -:10D39000000000000000000000000000000000008D -:10D3A000000000000000000000000000000000007D -:10D3B000000000000000000000000000000000006D -:10D3C000000000000000000000000000000000005D -:10D3D000000000000000000000000000000000004D -:10D3E000000000000000000000000000000000003D -:10D3F000000000000000000000000000000000002D -:10D400000000000000000000000000003C030001DC -:10D4100034633800240500802404001F2406FFFF25 -:10D4200024020001AF80021CAF820200AF82022002 -:10D4300003631021AF8200C003631021AF8200C4D8 -:10D4400003631021AF8200C827623800AF8200D08A -:10D4500027623800AF8200D427623800AF8200D83C -:10D4600027621800AF8200E027621800AF8200E454 -:10D4700027621800AF8200E827621000AF8200F038 -:10D4800027621000AF8200F427621000AF8200F81C -:10D49000ACA000002484FFFF1486FFFD24A5000437 -:10D4A0008F8300403C02F000006218243C025000D0 -:10D4B0001062000C0043102B144000063C02600078 -:10D4C0003C024000106200082402080008004539B0 -:10D4D0000000000010620004240208000800453922 -:10D4E00000000000240207003C010001AC225CDCCB -:10D4F00003E000080000000027BDFFD8AFBF0024F4 -:10D50000AFB000208F8300548F8200543C01000193 -:10D51000AC205CC408004545246300648F8200543D -:10D52000006210232C4200651440FFFC0000000044 -:10D530000C004D71000000002404000100002821AF -:10D5400027A60018340280000C00498EA7A20018FC -:10D550008F8300548F820054080045562463006472 -:10D560008F820054006210232C4200651440FFFC9F -:10D5700024040001240500010C00494C27A60018D2 -:10D580008F8300548F820054080045622463006436 -:10D590008F820054006210232C4200651440FFFC6F -:10D5A00024040001240500010C00494C27A60018A2 -:10D5B0008F8300548F8200540800456E24630064FA -:10D5C0008F820054006210232C4200651440FFFC3F -:10D5D000240400013C06000124C65DA00C00494C57 -:10D5E000240500028F8300548F8200540800457B7D -:10D5F000246300648F820054006210232C42006573 -:10D600001440FFFC24040001240500033C10000129 -:10D6100026105DA20C00494C0200302197A600188C -:10D620003C07000194E75DA03C04000124845AB04B -:10D63000AFA00014960200003C05000D34A50100C7 -:10D640000C002403AFA2001097A200181040004C59 -:10D6500024036040960200003042FFF01443000AA9 -:10D66000240200203C03000194635DA05462000981 -:10D6700024027830240200033C010001AC225CC487 -:10D68000080045AC240200053C03000194635DA042 -:10D69000240278301462000F240300103C020001C1 -:10D6A00094425DA23042FFF01443000A24020003BA -:10D6B0003C010001AC225CC4240200063C010001D4 -:10D6C000AC225DB03C010001AC225DBC080045E627 -:10D6D0003C09FFF03C0200018C425CC43C030001A9 -:10D6E00094635DA0344200013C010001AC225CC4A3 -:10D6F000240200151462000F000000003C0200012B -:10D7000094425DA23042FFF03843F4202C630001C4 -:10D710003842F4302C4200010062182510600005E8 -:10D72000240200033C010001AC225DBC080045E678 -:10D730003C09FFF03C03000194635DA024027810D3 -:10D740001462000B240200023C02000194425DA21C -:10D750003042FFF0144000062402000224020004BC -:10D760003C010001AC225DBC080045E63C09FFF02D -:10D770003C010001AC225DBC080045E63C09FFF01D -:10D780003C0200018C425CC4240300013C01000106 -:10D79000AC235DBC344200043C010001AC225CC4FB -:10D7A0003C09FFF03529BDC03C0600018CC65CC4B5 -:10D7B0003C04000124845AB0240200013C01000111 -:10D7C000AC225CCC8F8200543C0700018CE75DBC2E -:10D7D0003C03000194635DA03C08000195085DA234 -:10D7E0003C05000D34A501003C010001AC205CC8E3 -:10D7F000004910213C010001AC225DACAFA3001038 -:10D800000C002403AFA800148FBF00248FB00020A9 -:10D8100003E0000827BD002827BDFFE83C05000104 -:10D820008CA55CC8240600042402000114A2001484 -:10D83000AFBF00103C0200018C427E3C30428000B1 -:10D84000104000053C04000F3C0300018C635DBCEC -:10D8500008004617348442403C0400043C030001A5 -:10D860008C635DBC348493E02402000514620016CE -:10D87000000000003C04003D0800462F34840900ED -:10D880003C0200018C427E3830428000104000058E -:10D890003C04001E3C0300018C635DBC0800462A6A -:10D8A000348484803C04000F3C0300018C635DBC25 -:10D8B000348442402402000514620003000000008A -:10D8C0003C04007A348412003C0200018C425DACBE -:10D8D0008F83005400441021004310230044102B78 -:10D8E00014400037000000003C0200018C425CD074 -:10D8F00014400033000000003C01000110C000256E -:10D90000AC205CE03C0900018D295CC424070001C7 -:10D910003C0440003C08000125087E3C250AFFFC31 -:10D920000005284214A0000224C6FFFF24050008B9 -:10D9300000A91024104000100000000014A70008E7 -:10D94000000000008D020000004410241040000A76 -:10D95000000000003C0100010800465BAC255CE0D3 -:10D960008D4200000044102410400003000000001D -:10D970003C010001AC275CE03C0200018C425CE011 -:10D980000006182B2C420001004310245440FFE5F0 -:10D99000000528428F8200543C0300018C635CE048 -:10D9A0003C010001AC225DAC1060002A24020001A1 -:10D9B0003C010001AC255CC83C010001AC225CCC00 -:10D9C0003C0200018C425CE010400022000000009C -:10D9D0003C0200018C425CCC1040000A2402000191 -:10D9E0003C010001AC205CCC3C0100010037082167 -:10D9F000AC2283AC3C010001AC205D4C3C01000139 -:10DA0000AC225D043C030001007718218C6383ACD9 -:10DA10002402000810620005240200010C00469553 -:10DA20000000000008004692000000003C030001D6 -:10DA30008C635CC8106200072402000E3C030001E6 -:10DA40008C637DD010620003000000000C004E5477 -:10DA50008F8402208FBF001003E0000827BD00184C -:10DA600027BDFFE03C02FDFFAFBF00188EE30000C2 -:10DA70003C0500018CA55CC83C0400018C845CF072 -:10DA80003442FFFF0062182414A40008AEE3000033 -:10DA90003C030001007718218C6383AC3C02000139 -:10DAA0008C425CF410620008000000003C0200019F -:10DAB000005710218C4283AC3C010001AC255CF086 -:10DAC0003C010001AC225CF43C0300018C635CC8A7 -:10DAD00024020002106201692C620003104000055C -:10DAE0002402000110620008000000000800481C29 -:10DAF0000000000024020004106200B124020001B2 -:10DB00000800481D000000003C02000100571021E1 -:10DB10008C4283AC2443FFFF2C6200081040015A62 -:10DB2000000310803C010001002208218C225AC809 -:10DB300000400008000000003C0300018C635DBC55 -:10DB40002402000514620014000000003C020001E1 -:10DB50008C425CD41040000A240200030C004822CE -:10DB600000000000240200023C01000100370821EF -:10DB7000AC2283AC3C010001080046E0AC205CD440 -:10DB80003C01000100370821AC2283AC3C010001BC -:10DB90000800481FAC205C600C0048220000000018 -:10DBA0003C0200018C425CD43C010001AC205C6072 -:10DBB000104000DD240200023C0100010037082172 -:10DBC000AC2283AC3C0100010800481FAC205CD4AF -:10DBD0003C0300018C635DBC240200051462000359 -:10DBE000240200013C010001AC225D000C0049CF81 -:10DBF000000000003C0300018C635D000800478EBC -:10DC0000240200113C0500018CA55CC83C06000103 -:10DC10008CC67E3C0C005108000020212402000527 -:10DC20003C010001AC205CD43C010001003708211C -:10DC30000800481FAC2283AC3C04000124845ABC79 -:10DC40003C05000F34A50100000030210000382100 -:10DC5000AFA000100C002403AFA000140800481F60 -:10DC6000000000008F8202203C03F70000431025D3 -:10DC7000080047B7AF8202208F8202203C030004D5 -:10DC800000431024144000A9240200078F8300548D -:10DC90003C0200018C425DA42463D8F000431023B1 -:10DCA0002C422710144000F8240200010800481DEF -:10DCB000000000003C0500018CA55CC80C0052A2CD -:10DCC000000020210C005386000020213C030001AD -:10DCD0008C637E34046100EA240200013C020008E7 -:10DCE0000062102410400006000000008F82021421 -:10DCF0003C03FFFF00431024080047413442251F26 -:10DD00008F8202143C03FFFF004310243442241F7F -:10DD1000AF8202148EE200003C0302000043102593 -:10DD2000AEE200008F8202202403FFFB0043102498 -:10DD3000AF8202208F82022034420002AF82022092 -:10DD4000240200083C01000100370821AC2283AC0A -:10DD50008F8202203C03000400431024144000057D -:10DD6000000000008F8202203C03F70000431025D2 -:10DD7000AF8202203C0300018C635DBC24020005DD -:10DD80001462000A000000003C02000194425DA2FF -:10DD900024429FBC2C4200041040000424040018BC -:10DDA000240500020C004D93240600200C0043DDE6 -:10DDB000000000003C0100010800481FAC205D503D -:10DDC0003C020001005710218C4283AC2443FFFF2A -:10DDD0002C620008104000AC000310803C010001E0 -:10DDE000002208218C225AE80040000800000000B0 -:10DDF0000C00429B000000003C010001AC205CCC08 -:10DE0000AF8002043C0100010C004822AC207E20BF -:10DE1000240200013C010001AC225CE42402000267 -:10DE20003C010001003708210800481FAC2283ACE8 -:10DE30000C00489F000000003C0300018C635CE480 -:10DE40002402000914620090240200033C01000136 -:10DE5000003708210800481FAC2283AC3C020001B7 -:10DE60008C427E3830424000104000050000000027 -:10DE70008F8200443C03FFFF0800479F34637FFF0D -:10DE80008F8200442403FF7F00431024AF820044AC -:10DE90008F830054080047B9240200048F83005484 -:10DEA0003C0200018C425DA42463D8F0004310239F -:10DEB0002C42271014400074240200053C0100018C -:10DEC000003708210800481FAC2283AC8F82022053 -:10DED0003C03F70000431025AF820220AF8002040C -:10DEE0003C010001AC207E208F83005424020006F8 -:10DEF0003C01000100370821AC2283AC3C01000149 -:10DF00000800481FAC235DA48F8300543C0200012D -:10DF10008C425DA42463FFF6004310232C42000AC8 -:10DF20001440005900000000240200073C010001D9 -:10DF3000003708210800481FAC2283AC8F820220E2 -:10DF40003C04F70000441025AF8202208F8202209B -:10DF50003C03030000431024144000050000182176 -:10DF60008F8202202403000100441025AF8202208A -:10DF700010600043240200018F8202143C03FFFF63 -:10DF80003C0400018C845D98004310243442251F1A -:10DF9000AF820214240200083C010001003708216E -:10DFA0001080000BAC2283AC3C0200018C425D74FB -:10DFB00014400007240200013C010001AC227DD086 -:10DFC0000C004E548F8402200800480C0000000012 -:10DFD0008F8202203C0300080043102414400017E5 -:10DFE0002402000E3C010001AC227DD08EE2000034 -:10DFF000000020213C030200004310250C00538642 -:10E00000AEE200008F8202202403FFFB00431024B5 -:10E01000AF8202208F820220344200020C0043DDD6 -:10E02000AF8202203C0500018CA55CC80C0052A206 -:10E03000000020210800481F000000003C020001F1 -:10E040008C425D7410400010000000003C02000192 -:10E050008C425D702442FFFF3C010001AC225D70E8 -:10E0600014400009240200023C010001AC205D7450 -:10E070003C0100010800481FAC225D702402000131 -:10E080003C010001AC225CCC8FBF001803E000080B -:10E0900027BD00208F8202008F8202208F82022003 -:10E0A00034420004AF8202208F8202003C0600014D -:10E0B0008CC65CC834420004AF8202002402000215 -:10E0C00010C2003A2CC200031040000524020001D7 -:10E0D00010C20008000000000800486800000000AE -:10E0E0002402000410C20013240200010800486842 -:10E0F000000000003C0300018C635CB83C0200019E -:10E100008C425CC03C0400018C845CDC3C0500015A -:10E110008CA55CBCAF860200AF860220346300226F -:10E1200000441025004510253442000208004867CD -:10E13000AF8302003C0300018C635D98AF82020054 -:10E1400010600009AF8202203C0200018C425D7425 -:10E15000144000053C033F003C0200018C425CB0CF -:10E160000800485B346300E03C0200018C425CB074 -:10E170003C033F00346300E200431025AF820200FD -:10E180003C0300018C635CB43C04F7003C020001DA -:10E190008C425CC03C0500018CA55CDC0064182549 -:10E1A0000043102500451025AF82022003E000083F -:10E1B000000000008F8202203C0300018C635CC8D9 -:10E1C00034420004AF820220240200011062000FDA -:10E1D000000000008F8300548F82005424630002EB -:10E1E000006210232C4200031040001100000000C8 -:10E1F0008F820054006210232C4200031040000C58 -:10E200000000000008004879000000008F830054DF -:10E210008F82005408004885246300078F820054D1 -:10E22000006210232C4200081440FFFC0000000094 -:10E230008F8400E0308200071040000D00000000D5 -:10E240008F8200548F8300E014830009244500323C -:10E250008F82005400A210232C420033104000048F -:10E26000000000008F8200E01082FFF90000000033 -:10E270008F8202202403FFFD00431024AF8202207E -:10E2800003E00008000000003C0300018C635CE434 -:10E290003C0200018C425CE8506200042463FFFFF2 -:10E2A0003C010001AC235CE82463FFFF2C62000901 -:10E2B0001040009D000310803C0100010022082155 -:10E2C0008C225B0800400008000000008F820044A0 -:10E2D00034428080AF8200448F8300540800493864 -:10E2E000240200028F8300543C0200018C425DA88E -:10E2F0002463D8F0004310232C4227101440008AD6 -:10E300002402000308004945000000008F820044F9 -:10E310003C03FFFF34637FFF00431024AF820044BF -:10E320008F83005408004938240200048F8300546E -:10E330003C0200018C425DA82463FFF600431023D9 -:10E340002C42000A144000782402000508004945C8 -:10E35000000000008F8202203C03F70000431025DC -:10E36000AF8202208F8202202403FFFB004310248F -:10E37000AF8202208F82022034420002AF8202204C -:10E380003C023F00344200E0AF8202008F82020074 -:10E390002403FFFD00431024AF8202002404000187 -:10E3A0003405FFFFAF8402048F8300548F82005432 -:10E3B000080048EC246300018F820054006210239F -:10E3C0002C4200021440FFFC000000008F82022457 -:10E3D0000004204000A4102B1040FFF200000000B9 -:10E3E0008F8202203C03F70000431025AF820220F9 -:10E3F0008F8202143C03FFFF004310243442251F88 -:10E40000AF8202148F8202202403FFFB00431024FA -:10E41000AF8202208F8202203C04F700348400087F -:10E4200034420002AF8202208F8202203C033F0070 -:10E43000346300E200441025AF820220AF83020063 -:10E440008F8400F0276217F81482000224850008E8 -:10E45000276510008F8200F410A200073C038000A3 -:10E46000346300403C02000124425C70AC82000036 -:10E47000AC830004AF8500F08F8300540800493856 -:10E48000240200068F8300543C0200018C425DA8E8 -:10E490002463FFF6004310232C42000A144000229C -:10E4A0002402000708004945000000008F8200E0B8 -:10E4B000AF8200E48F8200E0AF8200E88F8202200A -:10E4C00034420004AF8202208F8202202403FFF72F -:10E4D00000431024AF8202208F82004434428080A7 -:10E4E000AF8200448F830054240200083C010001E5 -:10E4F000AC225CE43C01000108004947AC235DA864 -:10E500008F8300543C0200018C425DA82463D8F044 -:10E51000004310232C42271014400003240200095A -:10E520003C010001AC225CE403E0000800000000B4 -:10E5300000000000000000000000000027BDFFD820 -:10E54000AFB2001800809021AFB3001C00A098214A -:10E55000AFB1001400C08821AFB0001000008021CE -:10E56000AFBF0020A62000000C004D4B240400018A -:10E57000261000012E0200201440FFFB00000000C6 -:10E580000C004D4B000020210C004D4B24040001D9 -:10E590000C004D4B240400010C004D4B00002021C9 -:10E5A000241000100250102410400002000020210E -:10E5B000240400010C004D4B001080421600FFFAAD -:10E5C0000250102424100010027010241040000289 -:10E5D00000002021240400010C004D4B001080425B -:10E5E0001600FFFA027010240C004D7134108000E8 -:10E5F0000C004D71000000000C004D2B00000000CD -:10E600005040000500108042962200000050102566 -:10E61000A6220000001080421600FFF70000000054 -:10E620000C004D71000000008FBF00208FB3001C54 -:10E630008FB200188FB100148FB0001003E00008F3 -:10E6400027BD002827BDFFD8AFB100140080882166 -:10E65000AFB2001800A09021AFB3001C00C09821F9 -:10E66000AFB0001000008021AFBF00200C004D4B68 -:10E6700024040001261000012E0200201440FFFB9C -:10E68000000000000C004D4B000020210C004D4B01 -:10E69000240400010C004D4B000020210C004D4BC8 -:10E6A0002404000124100010023010241040000245 -:10E6B00000002021240400010C004D4B001080427A -:10E6C0001600FFFA0230102424100010025010240B -:10E6D0001040000200002021240400010C004D4BDA -:10E6E000001080421600FFFA025010240C004D4B1F -:10E6F000240400010C004D4B000020213410800048 -:10E7000096620000005010241040000200002021FA -:10E71000240400010C004D4B001080421600FFF84D -:10E72000000000000C004D71000000008FBF0020B1 -:10E730008FB3001C8FB200188FB100148FB000107F -:10E7400003E0000827BD00283C0300018C635D0046 -:10E750003C0200018C425D4827BDFFD8AFBF0020BE -:10E76000AFB1001C10620003AFB000183C01000103 -:10E77000AC235D482463FFFF2C6200131040034963 -:10E78000000310803C010001002208218C225B3034 -:10E7900000400008000000000C004D7100008021C6 -:10E7A00034028000A7A2001027B100100C004D4BCE -:10E7B00024040001261000012E0200201440FFFB5B -:10E7C000000000000C004D4B000020210C004D4BC0 -:10E7D000240400010C004D4B000020210C004D4B87 -:10E7E0002404000124100010320200011040000235 -:10E7F00000002021240400010C004D4B0010804239 -:10E800001600FFFA32020001241000100C004D4BDC -:10E8100000002021001080421600FFFC00000000D4 -:10E820000C004D4B240400010C004D4B0000202136 -:10E830003410800096220000005010241040000286 -:10E8400000002021240400010C004D4B00108042E8 -:10E850001600FFF8000000000C004D7100000000E1 -:10E8600008004D242402000227B10010A7A00010C8 -:10E87000000080210C004D4B2404000126100001F3 -:10E880002E0200201440FFFB000000000C004D4B46 -:10E89000000020210C004D4B240400010C004D4BC6 -:10E8A000240400010C004D4B000020212410001016 -:10E8B0003202000110400002000020212404000167 -:10E8C0000C004D4B001080421600FFFA320200018E -:10E8D000241000100C004D4B00002021001080423D -:10E8E0001600FFFC000000000C004D713410800089 -:10E8F0000C004D71000000000C004D2B00000000CA -:10E900005040000500108042962200000050102563 -:10E91000A6220000001080421600FFF70000000051 -:10E920000C004D710000000097A2001030428000E2 -:10E93000144002DC2402000308004D240000000003 -:10E9400024021200A7A2001027B1001000008021AD -:10E950000C004D4B24040001261000012E02002063 -:10E960001440FFFB000000000C004D4B0000202174 -:10E970000C004D4B240400010C004D4B00002021E5 -:10E980000C004D4B24040001241000103202000141 -:10E990001040000200002021240400010C004D4B17 -:10E9A000001080421600FFFA32020001241000100D -:10E9B0000C004D4B00002021001080421600FFFC8F -:10E9C000000000000C004D4B240400010C004D4BD6 -:10E9D00000002021341080009622000000501024F6 -:10E9E0001040000200002021240400010C004D4BC7 -:10E9F000001080421600FFF8000000000C004D716E -:10EA0000000000008F83005408004D16240200040B -:10EA10008F8300543C0200018C425DB82463FF9C4C -:10EA2000004310232C4200641440029E2402000282 -:10EA30003C0300018C635DBC106202972C620003F2 -:10EA40001440029624020011240200031062000503 -:10EA500024020004106202912402000F08004D24D9 -:10EA60002402001108004D24240200052402001491 -:10EA7000A7A2001027B10010000080210C004D4B10 -:10EA800024040001261000012E0200201440FFFB88 -:10EA9000000000000C004D4B000020210C004D4BED -:10EAA000240400010C004D4B000020210C004D4BB4 -:10EAB0002404000124100010320200011040000262 -:10EAC00000002021240400010C004D4B0010804266 -:10EAD0001600FFFA32020001241000103202001268 -:10EAE0001040000200002021240400010C004D4BC6 -:10EAF000001080421600FFFA320200120C004D4B4B -:10EB0000240400010C004D4B000020213410800033 -:10EB10009622000000501024104000020000202126 -:10EB2000240400010C004D4B001080421600FFF839 -:10EB3000000000000C004D71000000008F830054A5 -:10EB400008004D16240200068F8300543C02000189 -:10EB50008C425DB82463FF9C004310232C42006468 -:10EB6000144002502402000708004D240000000059 -:10EB700024020006A7A2001027B100100000802187 -:10EB80000C004D4B24040001261000012E02002031 -:10EB90001440FFFB000000000C004D4B0000202142 -:10EBA0000C004D4B240400010C004D4B00002021B3 -:10EBB0000C004D4B2404000124100010320200010F -:10EBC0001040000200002021240400010C004D4BE5 -:10EBD000001080421600FFFA3202000124100010DB -:10EBE0003202001310400002000020212404000122 -:10EBF0000C004D4B001080421600FFFA3202001349 -:10EC00000C004D4B240400010C004D4B0000202152 -:10EC100034108000962200000050102410400002A2 -:10EC200000002021240400010C004D4B0010804204 -:10EC30001600FFF8000000000C004D7100000000FD -:10EC40008F83005408004D16240200088F8300545F -:10EC50003C0200018C425DB82463FF9C00431023FA -:10EC60002C4200641440020F2402000908004D24C5 -:10EC70000000000027B10010A7A0001000008021B4 -:10EC80000C004D4B24040001261000012E02002030 -:10EC90001440FFFB000000000C004D4B0000202141 -:10ECA0000C004D4B240400010C004D4B24040001CA -:10ECB0000C004D4B000020212410001032020001F6 -:10ECC0001040000200002021240400010C004D4BE4 -:10ECD000001080421600FFFA3202000124100010DA -:10ECE000320200181040000200002021240400011C -:10ECF0000C004D4B001080421600FFFA3202001843 -:10ED00000C004D71341080000C004D7100000000AB -:10ED10000C004D2B00000000504000050010804208 -:10ED20009622000000501025A6220000001080420C -:10ED30001600FFF7000000000C004D71000080215C -:10ED400097A2001027B1001034420001A7A20010C2 -:10ED50000C004D4B24040001261000012E0200205F -:10ED60001440FFFB000000000C004D4B0000202170 -:10ED70000C004D4B240400010C004D4B00002021E1 -:10ED80000C004D4B2404000124100010320200013D -:10ED90001040000200002021240400010C004D4B13 -:10EDA000001080421600FFFA320200012410001009 -:10EDB000320200181040000200002021240400014B -:10EDC0000C004D4B001080421600FFFA3202001872 -:10EDD0000C004D4B240400010C004D4B0000202181 -:10EDE00034108000962200000050102410400002D1 -:10EDF00000002021240400010C004D4B0010804233 -:10EE00001600FFF8000000000C004D71000000002B -:10EE10008F83005408004D162402000A8F8300548B -:10EE20003C0200018C425DB82463FF9C0043102328 -:10EE30002C4200641440019B2402000B08004D2466 -:10EE40000000000027B10010A7A0001000008021E2 -:10EE50000C004D4B24040001261000012E0200205E -:10EE60001440FFFB000000000C004D4B000020216F -:10EE70000C004D4B240400010C004D4B24040001F8 -:10EE80000C004D4B00002021241000103202000124 -:10EE90001040000200002021240400010C004D4B12 -:10EEA000001080421600FFFA320200012410001008 -:10EEB000320200171040000200002021240400014B -:10EEC0000C004D4B001080421600FFFA3202001772 -:10EED0000C004D71341080000C004D7100000000DA -:10EEE0000C004D2B00000000504000050010804237 -:10EEF0009622000000501025A6220000001080423B -:10EF00001600FFF7000000000C004D71000080218A -:10EF100097A2001027B1001034420700A7A20010EA -:10EF20000C004D4B24040001261000012E0200208D -:10EF30001440FFFB000000000C004D4B000020219E -:10EF40000C004D4B240400010C004D4B000020210F -:10EF50000C004D4B2404000124100010320200016B -:10EF60001040000200002021240400010C004D4B41 -:10EF7000001080421600FFFA320200012410001037 -:10EF8000320200171040000200002021240400017A -:10EF90000C004D4B001080421600FFFA32020017A1 -:10EFA0000C004D4B240400010C004D4B00002021AF -:10EFB00034108000962200000050102410400002FF -:10EFC00000002021240400010C004D4B0010804261 -:10EFD0001600FFF8000000000C004D71000000005A -:10EFE0008F83005408004D162402000C8F830054B8 -:10EFF0003C0200018C425DB82463FF9C0043102357 -:10F000002C420064144001272402001208004D2401 -:10F010000000000027B10010A7A000100000802110 -:10F020000C004D4B24040001261000012E0200208C -:10F030001440FFFB000000000C004D4B000020219D -:10F040000C004D4B240400010C004D4B2404000126 -:10F050000C004D4B00002021241000103202000152 -:10F060001040000200002021240400010C004D4B40 -:10F07000001080421600FFFA320200012410001036 -:10F08000320200141040000200002021240400017C -:10F090000C004D4B001080421600FFFA32020014A3 -:10F0A0000C004D71341080000C004D710000000008 -:10F0B0000C004D2B00000000504000050010804265 -:10F0C0009622000000501025A62200000010804269 -:10F0D0001600FFF7000000000C004D7100008021B9 -:10F0E00097A2001027B1001034420010A7A2001010 -:10F0F0000C004D4B24040001261000012E020020BC -:10F100001440FFFB000000000C004D4B00002021CC -:10F110000C004D4B240400010C004D4B000020213D -:10F120000C004D4B24040001241000103202000199 -:10F130001040000200002021240400010C004D4B6F -:10F14000001080421600FFFA320200012410001065 -:10F1500032020014104000020000202124040001AB -:10F160000C004D4B001080421600FFFA32020014D2 -:10F170000C004D4B240400010C004D4B00002021DD -:10F18000341080009622000000501024104000022D -:10F1900000002021240400010C004D4B001080428F -:10F1A0001600FFF8000000000C004D710000000088 -:10F1B0008F83005408004D16240200138F830054DF -:10F1C0003C0200018C425DB82463FF9C0043102385 -:10F1D0002C420064144000B32402000D08004D24AA -:10F1E0000000000027B10010A7A00010000080213F -:10F1F0000C004D4B24040001261000012E020020BB -:10F200001440FFFB000000000C004D4B00002021CB -:10F210000C004D4B240400010C004D4B2404000154 -:10F220000C004D4B00002021241000103202000180 -:10F230001040000200002021240400010C004D4B6E -:10F24000001080421600FFFA320200012410001064 -:10F2500032020018104000020000202124040001A6 -:10F260000C004D4B001080421600FFFA32020018CD -:10F270000C004D71341080000C004D710000000036 -:10F280000C004D2B00000000504000050010804293 -:10F290009622000000501025A62200000010804297 -:10F2A0001600FFF7000000000C004D7100008021E7 -:10F2B00097A2001027B100103042FFFEA7A2001055 -:10F2C0000C004D4B24040001261000012E020020EA -:10F2D0001440FFFB000000000C004D4B00002021FB -:10F2E0000C004D4B240400010C004D4B000020216C -:10F2F0000C004D4B240400012410001032020001C8 -:10F300001040000200002021240400010C004D4B9D -:10F31000001080421600FFFA320200012410001093 -:10F3200032020018104000020000202124040001D5 -:10F330000C004D4B001080421600FFFA32020018FC -:10F340000C004D4B240400010C004D4B000020210B -:10F35000341080009622000000501024104000025B -:10F3600000002021240400010C004D4B00108042BD -:10F370001600FFF8000000000C004D7100000000B6 -:10F380008F83005408004D162402000E240208400A -:10F39000A7A2001027B10010000080210C004D4BE7 -:10F3A00024040001261000012E0200201440FFFB5F -:10F3B000000000000C004D4B000020210C004D4BC4 -:10F3C000240400010C004D4B000020210C004D4B8B -:10F3D0002404000124100010320200011040000239 -:10F3E00000002021240400010C004D4B001080423D -:10F3F0001600FFFA3202000124100010320200133E -:10F400001040000200002021240400010C004D4B9C -:10F41000001080421600FFFA320200130C004D4B20 -:10F42000240400010C004D4B00002021341080000A -:10F4300096220000005010241040000200002021FD -:10F44000240400010C004D4B001080421600FFF810 -:10F45000000000000C004D71000000008F8300547C -:10F46000240200103C010001AC225D003C010001BF -:10F4700008004D26AC235DB88F8300543C02000188 -:10F480008C425DB82463FF9C004310232C4200642F -:10F490001440000400000000240200113C0100019F -:10F4A000AC225D008FBF00208FB1001C8FB0001810 -:10F4B00003E0000827BD00288F8500448F820044A8 -:10F4C0003C030001004310253C030008AF820044C8 -:10F4D0008F8400548F82005400A3282408004D37E5 -:10F4E000248400018F820054008210232C420002E9 -:10F4F0001440FFFC000000008F8200443C03FFFE2C -:10F500003463FFFF00431024AF8200448F83005414 -:10F510008F82005408004D45246300018F820054FF -:10F52000006210232C4200021440FFFC0000000087 -:10F5300003E0000800A010218F8300443C02FFF08C -:10F540003442FFFF00042480006218243C020002C1 -:10F550000082202500641825AF8300448F82004478 -:10F560003C03FFFE3463FFFF00431024AF820044DE -:10F570008F8300548F82005408004D5E2463000185 -:10F580008F820054006210232C4200021440FFFCC2 -:10F59000000000008F8200443C030001004310255E -:10F5A000AF8200448F8300548F82005408004D6B5B -:10F5B000246300018F820054006210232C42000259 -:10F5C0001440FFFC0000000003E000080000000001 -:10F5D0008F8200443C03FFF03463FFFF004310249C -:10F5E000AF8200448F8200443C0300010043102599 -:10F5F000AF8200448F8300548F82005408004D7FF7 -:10F60000246300018F820054006210232C42000208 -:10F610001440FFFC000000008F8200443C03FFFE0A -:10F620003463FFFF00431024AF8200448F830054F3 -:10F630008F82005408004D8D246300018F82005496 -:10F64000006210232C4200021440FFFC0000000066 -:10F6500003E000080000000027BDFFC8AFB300248E -:10F6600000809821AFB5002C00A0A821AFB20020E7 -:10F6700000C0902132A2FFFFAFBF0030AFB400281E -:10F68000AFB1001CAFB0001814400034A7B2001096 -:10F690003271FFFF27B20010000080210C004D4B9B -:10F6A00024040001261000012E0200201440FFFB5C -:10F6B000000000000C004D4B000020210C004D4BC1 -:10F6C000240400010C004D4B000020210C004D4B88 -:10F6D0002404000124100010320200011040000236 -:10F6E00000002021240400010C004D4B001080423A -:10F6F0001600FFFA3202000124100010023010241C -:10F700001040000200002021240400010C004D4B99 -:10F71000001080421600FFFA023010240C004D4BFE -:10F72000240400010C004D4B000020213410800007 -:10F7300096420000005010241040000200002021DA -:10F74000240400010C004D4B001080421200007593 -:10F750000000000008004DC9000000003274FFFFE7 -:10F7600027B10010A7A00010000080210C004D4B15 -:10F7700024040001261000012E0200201440FFFB8B -:10F78000000000000C004D4B000020210C004D4BF0 -:10F79000240400010C004D4B240400010C004D4BCF -:10F7A000000020212410001032020001104000024D -:10F7B00000002021240400010C004D4B0010804269 -:10F7C0001600FFFA320200012410001002901024EB -:10F7D0001040000200002021240400010C004D4BC9 -:10F7E000001080421600FFFA029010240C004D71A8 -:10F7F000341080000C004D71000000000C004D2BF7 -:10F8000000000000504000050010804296220000D9 -:10F8100000501025A6220000001080421600FFF7BD -:10F82000000000000C004D710000000032A5FFFF39 -:10F830002402000154A200042402000297A2001036 -:10F8400008004E140052102514A200063271FFFF6A -:10F8500097A200100012182700431024A7A200103E -:10F860003271FFFF27B20010000080210C004D4BC9 -:10F8700024040001261000012E0200201440FFFB8A -:10F88000000000000C004D4B000020210C004D4BEF -:10F89000240400010C004D4B000020210C004D4BB6 -:10F8A0002404000124100010320200011040000264 -:10F8B00000002021240400010C004D4B0010804268 -:10F8C0001600FFFA3202000124100010023010244A -:10F8D0001040000200002021240400010C004D4BC8 -:10F8E000001080421600FFFA023010240C004D4B2D -:10F8F000240400010C004D4B000020213410800036 -:10F900009642000000501024104000020000202108 -:10F91000240400010C004D4B001080421600FFF83B -:10F92000000000000C004D71000000008FBF00308F -:10F930008FB5002C8FB400288FB300248FB2002025 -:10F940008FB1001C8FB0001803E0000827BD0038FD -:10F9500000000000000000000000000027BDFFE8DC -:10F96000AFBF00103C030001007718218C6383AC0B -:10F97000240200081462022C008030213C020001A5 -:10F980008C425D9814400033000000008F850224F3 -:10F9900038A300202C63000138A200102C42000183 -:10F9A000006218251460000D38A300302C6300019C -:10F9B00038A204002C4200010062182514600007E0 -:10F9C00038A304022C63000138A204042C42000175 -:10F9D0000062182510600005000000000C00429B2A -:10F9E0000000000008004E8D2402000E0C0043DDD4 -:10F9F000000000003C0500018CA55CC80C0052A270 -:10FA0000000020213C0300018C635CC82402000438 -:10FA1000146200052403FFFB3C0200018C425CC41D -:10FA200008004E892403FFF73C0200018C425CC4AD -:10FA3000004310243C010001AC225CC42402000EEF -:10FA40003C0100010C00429BAC227DD00800508795 -:10FA5000000000008F8202203C03040000431024B9 -:10FA6000104000272403FFBF8F8502243C020001C1 -:10FA70008C427DDC00A32024004310241482000C5F -:10FA8000000000003C0200018C427DE024420001A5 -:10FA90003C010001AC227DE02C4200021440000831 -:10FAA000240200013C01000108004EADAC227E00A2 -:10FAB0003C010001AC207DE03C010001AC207E0057 -:10FAC0003C0200018C427E001040000630A2004043 -:10FAD00010400004240200013C01000108004EB85F -:10FAE000AC227E043C010001AC207E043C010001FC -:10FAF000AC257DDC3C01000108004EC8AC207E1026 -:10FB0000240200013C010001AC227E103C010001F6 -:10FB1000AC207E003C010001AC207DE03C010001F6 -:10FB2000AC207E043C010001AC207DDC3C030001E4 -:10FB30008C637DD03C0200018C427DD410620003B6 -:10FB40003C0202003C010001AC237DD400C2102421 -:10FB5000104000072463FFFF8F820220240300016E -:10FB60003C010001AC235CCC080050853C03F7004D -:10FB70002C62000E104001A8000310803C0100011F -:10FB8000002208218C225B80004000080000000059 -:10FB90003C010001AC207E003C010001AC207DE076 -:10FBA0003C010001AC207DDC3C010001AC207E0466 -:10FBB0003C010001AC207DF83C010001AC207DF04F -:10FBC0000C00486AAF800224240200023C010001BC -:10FBD000AC227DD03C0200018C427E1014400056C5 -:10FBE0003C03FDFF8EE200003463FFFF004310245E -:10FBF0000C00429BAEE20000AF8002048F82020044 -:10FC00002403FFFD00431024AF8202003C010001E9 -:10FC1000AC207E208F8300543C0200018C427DF892 -:10FC2000240400013C010001AC247E0C24420001AC -:10FC30003C010001AC227DF82C4200043C01000193 -:10FC4000AC237DF414400006240200033C010001B3 -:10FC5000AC245CCC3C01000108005083AC207DF852 -:10FC60003C01000108005083AC227DD08F830054FA -:10FC70003C0200018C427DF42463D8F00043102341 -:10FC80002C42271014400003240200043C01000110 -:10FC9000AC227DD03C0200018C427E101440002634 -:10FCA0003C03FDFF8EE200003463FFFF004310249D -:10FCB00008005083AEE200003C0400018C845D9C8F -:10FCC0003C0100010C00508AAC207DE83C020001A0 -:10FCD0008C427E1CAF8202043C0200018C427E10EA -:10FCE000144000153C03FDFF8EE200003463FFFF6B -:10FCF00000431024AEE200008F8202043042003044 -:10FD00001440013C240200023C0300018C637E1C71 -:10FD1000240200053C010001AC227DD03C01000121 -:10FD200008005083AC237E203C0200018C427E10F0 -:10FD3000104000103C03FDFF3C0200018C425D6C52 -:10FD4000244200013C010001AC225D6C2C42000207 -:10FD500014400131240200013C010001AC225D7419 -:10FD60003C010001AC205D6C3C01000108005083A7 -:10FD7000AC225CCC8EE200003463FFFF0043102411 -:10FD8000AEE200003C0200018C427E0010400122E5 -:10FD9000000000003C0200018C427DDC1040011E8E -:10FDA000000000003C010001AC227E082402000398 -:10FDB0003C010001AC227DE0080050242402000632 -:10FDC0003C010001AC207DE88F82020434420040F7 -:10FDD000AF8202043C0200018C427E202403000713 -:10FDE0003C010001AC237DD0344200403C010001C5 -:10FDF000AC227E203C0200018C427E0010400005B7 -:10FE0000000000003C0200018C427DDC104000F943 -:10FE1000240200023C05000124A57DE08CA2000024 -:10FE20002C424E21104000F3240200023C0200014B -:10FE30008C427E04104000F82404FFBF3C02000105 -:10FE40008C427DDC3C0300018C637E08004410245E -:10FE50000064182410430004240200013C01000146 -:10FE600008005083AC227DD024020003ACA2000025 -:10FE7000240200083C010001AC227DD03C020001BC -:10FE80008C427E0C1040000C240200013C04000156 -:10FE90000C0050978C847DDC3C0200018C427E2853 -:10FEA00014400005240200013C0200018C427E2423 -:10FEB00010400006240200013C010001AC225CCC91 -:10FEC0003C01000108005083AC207DF83C02000199 -:10FED0008C427DF03C0300018C637DDC2C420001F0 -:10FEE000000210C0306300083C010001AC227DF02C -:10FEF0003C010001AC237DEC8F83005424020009F7 -:10FF00003C010001AC227DD03C010001080050837F -:10FF1000AC237DF48F8300543C0200018C427DF4BD -:10FF20002463D8F0004310232C422710144000A86B -:10FF3000000000003C0200018C427E0010400005E1 -:10FF4000000000003C0200018C427DDC104000A952 -:10FF5000240200023C03000124637DE08C62000067 -:10FF60002C424E21104000A3240200023C0200015A -:10FF70008C427E0C1040000E000000003C0200018C -:10FF80008C427DDC3C010001AC207E0C30420080C4 -:10FF90001040002F2402000C8F82020430420080A7 -:10FFA0001440000C24020003080050112402000C2D -:10FFB0003C0200018C427DDC304200801440000590 -:10FFC000240200038F820204304200801040001F90 -:10FFD00024020003AC6200002402000A3C0100017C -:10FFE000AC227DD03C04000124847E188C82000069 -:10FFF0003C0300018C637DF000431025AF820204B6 -:020000021000EC -:100000008C8300003C0400018C847DF02402000BF2 -:100010003C010001AC227DD0006418253C010001A8 -:10002000AC237E203C05000124A57DE08CA20000CD -:100030002C424E211040006F240200023C020001BD -:100040008C427E1010400005000000002402000CCD -:100050003C01000108005083AC227DD03C0200012D -:100060008C427E001040006C000000003C04000147 -:100070008C847DDC1080005E308200083C0300012F -:100080008C637DEC10620064240200033C010001DB -:10009000AC247E08ACA20000240200063C01000152 -:1000A00008005083AC227DD08F82020034420002CF -:1000B000AF8202008F8300542402000D3C01000136 -:1000C000AC227DD03C010001AC237DF48F83005431 -:1000D0003C0200018C427DF42463D8F000431023DD -:1000E0002C4227101440003A000000003C0200019E -:1000F0008C427E10104000292402000E3C030001B7 -:100100008C637E243C01000114600015AC227DD07C -:100110000C0043DD000000003C0500018CA55CC81C -:100120000C0052A2000020213C0300018C635CC83B -:1001300024020004146200052403FFFB3C020001BA -:100140008C425CC4080050522403FFF73C020001BB -:100150008C425CC4004310243C010001AC225CC40E -:100160008EE200003C03020000431025AEE20000D6 -:100170008F8202243C010001AC227E2C8F8202205F -:100180002403FFFB00431024AF8202208F82022051 -:100190003442000208005083AF8202203C0200017A -:1001A0008C427E0010400005000000003C0200016F -:1001B0008C427DDC1040000F240200023C02000152 -:1001C0008C427DE02C424E211040000A24020002A5 -:1001D0003C0200018C427E001040000F0000000035 -:1001E0003C0200018C427DDC1440000B000000004A -:1001F000240200023C01000108005083AC227DD0A3 -:100200003C0200018C427E00104000030000000010 -:100210000C00429B000000008F8202203C03F7008C -:1002200000431025AF8202208FBF001003E00008BA -:1002300027BD00183C03000124637E288C62000067 -:1002400010400005344220003C010001AC227E1C1D -:1002500008005095AC6000003C010001AC247E1CFD -:1002600003E000080000000027BDFFE030820030FE -:10027000AFBF00183C010001AC227E24144000678F -:100280003C02FFFF34421F0E008210241440006124 -:1002900024020030308220001040005D3083800056 -:1002A00000031A0230820001000212003C04000127 -:1002B0008C845D9C00621825000331C23C03000160 -:1002C00024635D78308280000002120230840001D5 -:1002D0000004220000441025000239C200061080EC -:1002E0000043102100471021904300002402000128 -:1002F00010620025000000001060000724020002C8 -:1003000010620013240200031062002C3C05000F51 -:10031000080050F9000000008F8202002403FEFF55 -:1003200000431024AF8202008F8202203C03FFFEB4 -:100330003463FFFF00431024AF8202203C01000120 -:10034000AC207E443C01000108005104AC207E4CEE -:100350008F82020034420100AF8202008F820220AD -:100360003C03FFFE3463FFFF00431024AF820220F2 -:10037000240201003C010001AC227E443C0100014A -:1003800008005104AC207E4C8F8202002403FEFF43 -:1003900000431024AF8202008F8202203C03000140 -:1003A00000431025AF8202203C010001AC207E44B6 -:1003B0003C01000108005104AC237E4C8F820200F6 -:1003C00034420100AF8202008F8202203C03000110 -:1003D00000431025AF820220240201003C010001ED -:1003E000AC227E443C01000108005104AC237E4C49 -:1003F00034A5FFFF3C04000124845BB8AFA30010C8 -:100400000C002403AFA000140800510400000000F9 -:10041000240200303C010001AC227E288FBF00186E -:1004200003E0000827BD00200000000027BDFFC832 -:10043000AFB2002800809021AFB3002C00A098211B -:10044000AFB0002000C080213C04000124845BD0B8 -:100450003C0500093C0200018C425CC834A59001B7 -:100460000240302102603821AFBF0030AFB100241C -:10047000A7A0001AAFB000140C002403AFA2001014 -:1004800024020002126200832E6200031040000565 -:10049000240200011262000A000000000800529BC2 -:1004A0000000000024020004126200FA2402000886 -:1004B000126200F93C02FFEC0800529B00000000B1 -:1004C0003C0200018C425CC4304200021440000433 -:1004D000001289403C02FFFB3442FFFF02028024ED -:1004E0003C01000100310821AC307E3C3C02400060 -:1004F000020210241040004E001023C2308400304D -:10050000001013823042001C3C03000124635D088C -:1005100000431021008238213C02002002021024F6 -:1005200010400006240201003C01000100310821B6 -:10053000AC227E40080051503C0200803C0100018A -:1005400000310821AC207E403C02008002021024D1 -:1005500010400006001219403C0200013C0100015D -:10056000002308210800515CAC227E480012114093 -:100570003C01000100220821AC207E4894E40000E8 -:100580003C0300018C635DBC240200051062001076 -:10059000A7A400183202400010400002348240003C -:1005A000A7A200182404000194E20002240500041C -:1005B00024E60002344200010C00498EA4E200024D -:1005C00024040001000028210C00498E27A60018F1 -:1005D0003C0200018C425CC8241100013C01000176 -:1005E000AC315CD414530004320280000C00429BF6 -:1005F00000000000320280001040011F00000000D7 -:100600000C00429B000000003C0300018C635DBCB9 -:100610002402000510620118240200023C010001BE -:10062000AC315CCC3C0100010800529BAC225CC8A0 -:10063000240400012405000427B0001A0C00498E90 -:100640000200302124040001000028210C00498E02 -:10065000020030213C020001005110218C427E3406 -:100660003C0400018C845CC83C03BFFF3463FFFF83 -:100670003C010001AC335CD4004310243C01000178 -:1006800000310821109300FAAC227E340800529BFE -:10069000000000003C02200002021024104000056F -:1006A000240200013C010001AC225D98080051AD1C -:1006B000001289403C010001AC205D980012894085 -:1006C0003C01000100310821AC307E383C02400082 -:1006D0000202102414400016000000003C02000139 -:1006E0008C425D9810400008240400042405000199 -:1006F0000C004D9324062000240200013C0100015F -:1007000000370821AC2283AC3C02000100511021CB -:100710008C427E303C03BFFF3463FFFF0043102454 -:100720003C0100010031082108005299AC227E30C2 -:100730003C0200018C425D98104000283C0300A060 -:10074000020310245443000D3C0200203C0200012F -:100750008C425D9C240301003C0100010031082112 -:10076000AC237E443C0300013C0100010031082120 -:10077000AC237E4C080051F03442040002021024E5 -:1007800010400008240301003C0200018C425D9CE3 -:100790003C01000100310821AC237E44080051F0E7 -:1007A000344208003C020080020210241040002E57 -:1007B0003C0300013C0200018C425D9C3C010001B5 -:1007C00000310821AC237E4C34420C003C01000176 -:1007D000AC225D9C08005218240400013C02002059 -:1007E0000202102410400006240201003C01000116 -:1007F00000310821AC227E44080052013C020080F6 -:100800003C01000100310821AC207E443C02008004 -:100810000202102410400007001219403C0200019F -:100820003C01000100230821AC227E4C0800520F3D -:1008300024040001001211403C01000100220821A3 -:10084000AC207E4C240400010000282127B0001EAB -:100850000C00494C02003021240400010000282132 -:100860000C00494C02003021240400012405000141 -:1008700027B0001C0C00494C020030212404000168 -:10088000240500010C00494C020030210800529957 -:10089000000000003C02FFEC3442FFFF0202802413 -:1008A0003C02000802028025001211403C010001B8 -:1008B00000220821AC307E383C02200002021024C5 -:1008C00010400009000000003C0200018C425D74F1 -:1008D00014400005240200013C010001AC225D9897 -:1008E0000800523A3C0240003C010001AC205D98F7 -:1008F0003C024000020210241440001E00000000D0 -:100900003C0200018C425D983C010001AC205CE09F -:1009100010400007240220203C010001AC225D9C15 -:10092000240200013C01000100370821AC2283AC05 -:100930003C04BFFF001219403C020001004310219B -:100940008C427E303C0500018CA55CC83484FFFFDE -:10095000004410243C01000100230821AC227E3019 -:100960002402000110A20044000000000800529977 -:10097000000000003C0200018C425D981040001C09 -:10098000240220003C010001AC225D9C3C0300A03D -:100990000203102414430005001211403402A00089 -:1009A0003C01000108005294AC225D9C3C03000114 -:1009B000006218218C637E383C0200200062102403 -:1009C00010400004240220013C0100010800529460 -:1009D000AC225D9C3C020080006210241040001F8D -:1009E0003402A0013C01000108005294AC225D9C3D -:1009F0003C0200200202102410400007001219409F -:100A0000240201003C01000100230821AC227E44A5 -:100A1000080052883C020080001211403C01000195 -:100A200000220821AC207E443C02008002021024F7 -:100A300010400006001219403C0200013C01000178 -:100A40000023082108005294AC227E4C0012114071 -:100A50003C01000100220821AC207E4C3C03000137 -:100A60008C635CC8240200011062000300000000D7 -:100A70000C00429B000000008FBF00308FB3002CA1 -:100A80008FB200288FB100248FB0002003E000084F -:100A900027BD003827BDFFD8AFB2002000809021CD -:100AA000AFB1001C0000882124020002AFBF002467 -:100AB000AFB00018A7A0001210A200D3A7A000108A -:100AC0002CA20003104000052402000110A2000A1D -:100AD00000128140080053800220102124020004EB -:100AE00010A2007D2402000810A2007C0012294000 -:100AF00008005380022010213C03000100701821DF -:100B00008C637E3C3C0240000062102414400009CB -:100B1000240400013C027FFF3442FFFF006288246E -:100B20003C01000100300821AC317E3408005380C4 -:100B300002201021240500010C00494C27A60010BA -:100B400024040001240500010C00494C27A60010D4 -:100B500097A2001030420004104000343C114000C5 -:100B60003C0200018C425DBC2443FFFF2C62000666 -:100B700010400034000310803C01000100220821D5 -:100B80008C225BE00040000800000000240400010B -:100B90002405001127B000120C00494C020030213E -:100BA00024040001240500110C00494C02003021EE -:100BB00097A5001230A24000104000023C04001033 -:100BC0003C0400083C0300010800530130A28000EF -:100BD000240400012405001427B000120C00494C25 -:100BE0000200302124040001240500140C00494CAB -:100BF0000200302197A5001230A210001040000220 -:100C00003C0400103C0400083C03000130A2080032 -:100C1000544000013C0300023C02800002221025E7 -:100C2000006418250800530E004388253C1100017C -:100C3000023088218E317E3C3C027FFF3442FFFF30 -:100C4000022288243C0200018C425CD81040001D26 -:100C5000001211403C0200018C425D9810400002DD -:100C60003C02200002228825001211403C010001B4 -:100C7000002208218C227E40104000033C0200200C -:100C800008005322022288253C02FFDF3442FFFF86 -:100C900002228824001211403C0100010022082198 -:100CA0008C227E48104000033C0200800800532D37 -:100CB000022288253C02FF7F3442FFFF0222882463 -:100CC000001211403C01000100220821AC317E34A9 -:100CD0000800538002201021001229403C0300012B -:100CE000006518218C637E383C02400000621024AD -:100CF000144000083C027FFF3442FFFF006288245A -:100D00003C01000100250821AC317E3008005380F1 -:100D1000022010213C0200018C425CD810400033BC -:100D20003C11C00C3C0200018C425D743C04C00CC0 -:100D3000348420003C0300018C635D980002102B7A -:100D40000002102300441024106000030051882585 -:100D50003C022000022288253C02000100451021AF -:100D60008C427E44104000033C0200200800535D8A -:100D7000022288253C02FFDF3442FFFF0222882442 -:100D8000001211403C010001002208218C227E4CFF -:100D9000104000033C0200800800536802228825AE -:100DA0003C02FF7F3442FFFF022288243C02000104 -:100DB0008C425D60104000023C020800022288253F -:100DC0003C0200018C425D64104000023C020400C1 -:100DD000022288253C0200018C425D68104000061A -:100DE0003C0201000800537B022288253C027FFF61 -:100DF0003442FFFF00628824001211403C010001D0 -:100E000000220821AC317E30022010218FBF002447 -:100E10008FB200208FB1001C8FB0001803E00008D3 -:100E200027BD002827BDFFD8AFB400200080A02137 -:100E3000AFBF0024AFB3001CAFB20018AFB10014B5 -:100E4000AFB000108F9002003C0300018C635CC8BF -:100E50008F93022024020002106200632C620003C0 -:100E600010400005240200011062000A001419401D -:100E70000800544800000000240200041062005AD8 -:100E800024020008106200590014914008005448E0 -:100E9000000000003C040001008320218C847E3C83 -:100EA0003C110001022388218E317E343C02400037 -:100EB000008210241040003E3C0200080222102450 -:100EC00010400020361000023C02000100431021B7 -:100ED0008C427E4010400005361000203610010084 -:100EE0003C020020080053BD022288252402FEFF98 -:100EF000020280243C02FFDF3442FFFF02228824EA -:100F0000001411403C010001002208218C227E487F -:100F1000104000053C020001026298253C0200805E -:100F2000080053DC022288253C02FFFE3442FFFF0A -:100F3000026298243C02FF7F3442FFFF080053DC2A -:100F4000022288242402FEDF020280243C02FFFEEB -:100F50003442FFFF026298243C02FF5F3442FFFFED -:100F6000022288243C01000100230821AC207E409D -:100F70003C01000100230821AC207E480C00486A97 -:100F800000000000AF900200AF9302208F82022089 -:100F90002403FFFB00431024AF8202208F82022033 -:100FA00034420002AF820220080053F300141140C3 -:100FB0008F8202002403FFFD004310240C00486AC6 -:100FC000AF8202003C02BFFF3442FFFF0C00429B95 -:100FD00002228824001411403C0100010022082153 -:100FE00008005448AC317E34001491403C040001A8 -:100FF000009220218C847E383C110001023288212D -:101000008E317E303C0240000082102414400011DA -:10101000000000003C0200018C425D981440000674 -:101020003C02BFFF8F820200344200020C00486A7B -:10103000AF8202003C02BFFF3442FFFF0C00429B24 -:10104000022288243C010001003208210800544893 -:10105000AC317E303C0200018C425D9810400005AE -:101060003C0200203C0200018C425D741040002BC9 -:101070003C0200200082102410400007361000209F -:10108000240201003C01000100320821AC227E4410 -:1010900008005428361001003C01000100320821EC -:1010A000AC207E442402FEFF020280243C02008029 -:1010B0000082102410400007001419403C02000177 -:1010C0003C01000100230821AC227E4C0800543969 -:1010D00002629825001411403C0100010022082101 -:1010E000AC207E4C3C02FFFE3442FFFF026298249B -:1010F0000C00486A00000000AF900200AF9302208D -:101100008F8202202403FFFB00431024AF820220C1 -:101110008F82022034420002AF820220001411406C -:101120003C01000100220821AC317E308FBF002439 -:101130008FB400208FB3001C8FB200188FB1001441 -:101140008FB0001003E0000827BD00282448656127 -:101150006465723A202F70726F6A656374732F72C0 -:1011600063732F73772F67652F2E2F6E69632F663A -:10117000772F636F6D6D6F6E2F66776D61696E2E61 -:10118000632C7620312E312E322E313120313939F7 -:10119000382F30342F32372032323A31333A34322A -:1011A00020736875616E6720457870202400000008 -:1011B0007468655F4441574E00000000535441433A -:1011C0004B5F312000000000426164536E64526E38 -:1011D000670000003F456E71457674003F6E6F51A9 -:1011E00064457650000000006576526E6746756C67 -:1011F0006C000000496C6C436F6E66527800000012 -:1012000053656E64436B53756D00000052656376E1 -:10121000566C616E0000000000000000244865610B -:101220006465723A202F70726F6A656374732F72EF -:1012300063732F73772F67652F2E2F6E69632F6669 -:10124000772F636F6D6D6F6E2F74696D65722E638E -:101250002C7620312E312E322E3820313939382F4C -:1012600030372F33312031373A35383A343520731F -:101270006875616E6720457870202400542D446D98 -:101280006152643100000000542D446D61424200FF -:10129000542D446D613200003F6E6F5164547845A7 -:1012A000000000003F6E6F5164527845000000005E -:1012B000656E714D4576504661696C00656E714D85 -:1012C00045764661696C00006661696C456E454D06 -:1012D000000000003F456E71457674003F6E6F510F -:1012E00064457650000000006576526E6746756C66 -:1012F0006C00000000000000000000002448656150 -:101300006465723A202F70726F6A656374732F720E -:1013100063732F73772F67652F2E2F6E69632F6688 -:10132000772F636F6D6D6F6E2F636F6D6D616E6480 -:101330002E632C7620312E312E322E313020313951 -:1013400039382F31312F31382031373A31313A3174 -:101350003820736875616E6720457870202400001E -:101360003F4D626F78457674000000004E4F636F0A -:101370006D616E6400000000687374655F455252D1 -:1013800000000000412D45727242756300000000AC -:101390004552524F522D416464000000656E714DFC -:1013A0004576504661696C00656E714D45764661C3 -:1013B000696C00006661696C456E454D0000000077 -:1013C000442D4572724C617374000000442D4572C7 -:1013D000723200006D4373744D6445525200000038 -:1013E00070726F6D4D6445525200000046696C7416 -:1013F0004D64455252000000636D645F45525200D7 -:101400003F456E71457674003F6E6F51644576506E -:10141000000000006576526E6746756C6C00000037 -:101420000000000000006EA000007FBC00006E38CD -:1014300000008734000082B00000878000008780B1 -:1014400000006F540000769400007F0C000080A81C -:10145000000080740000878000007E70000080CC57 -:1014600000006E64000081CC00000000244865612B -:101470006465723A202F70726F6A656374732F729D -:1014800063732F73772F67652F2E2F6E69632F6617 -:10149000772F636F6D6D6F6E2F646D612E632C7689 -:1014A00020312E312E322E3320313939382F30343D -:1014B0002F32372032323A31333A34312073687563 -:1014C000616E67204578702024000000646D6172B1 -:1014D0006441544E00000000646D61777241544EC7 -:1014E00000000000000000000000000024486561CA -:1014F0006465723A202F70726F6A656374732F721D -:1015000063732F73772F67652F2E2F6E69632F6696 -:10151000772F636F6D6D6F6E2F74726163652E63CD -:101520002C7620312E312E322E3220313939382F7F -:1015300030342F32372032323A31333A353020735B -:101540006875616E672045787020240024486561C5 -:101550006465723A202F70726F6A656374732F72BC -:1015600063732F73772F67652F2E2F6E69632F6636 -:10157000772F636F6D6D6F6E2F646174612E632CB6 -:101580007620312E312E322E3220313939382F301B -:10159000342F32372032323A31333A3430207368C4 -:1015A00075616E67204578702024000046575F56AD -:1015B000455253494F4E3A2023312046726920410B -:1015C000707220372031373A35353A34382050445C -:1015D000542032303030000046575F434F4D504961 -:1015E0004C455F54494D453A2031373A35353A3408 -:1015F0003800000046575F434F4D50494C455F420D -:10160000593A2064657672637300000046575F4361 -:101610004F4D50494C455F484F53543A20636F6DCE -:10162000707574650000000046575F434F4D504988 -:101630004C455F444F4D41494E3A20656E672E61DF -:101640006374656F6E2E636F6D00000046575F43D5 -:101650004F4D50494C45523A20676363207665727E -:1016600073696F6E20322E372E32000000000000AA -:101670000000000000000000000000002448656138 -:101680006465723A202F70726F6A656374732F728B -:1016900063732F73772F67652F2E2F6E69632F6605 -:1016A000772F636F6D6D6F6E2F6D656D2E632C766A -:1016B00020312E312E322E3220313939382F30342C -:1016C0002F32372032323A31333A3434207368754E -:1016D000616E672045787020240000002448656111 -:1016E0006465723A202F70726F6A656374732F722B -:1016F00063732F73772F67652F2E2F6E69632F66A5 -:10170000772F636F6D6D6F6E2F73656E642E632C14 -:101710007620312E312E322E313120313939382F89 -:1017200031322F32322031373A31373A3535207362 -:101730006875616E6720457870202400736E64645C -:10174000654E6F51200000006E6F454E515F54583A -:1017500000000000736E6464744E6F51200000003E -:101760003F6E6F516454784500000000756E6B72D7 -:101770006474797065000000000000000000ACCCCB -:101780000000ACCC0000AD9C0000AAB00000AAB0E4 -:101790000000AD9C0000AD9C0000AD9C0000AD9C25 -:1017A0000000AD9C0000AD9C0000AD9C0000AD9C15 -:1017B0000000AD9C0000AD9C0000AD9C0000AD9C05 -:1017C0000000AD9C0000AD7C000000000000BCA843 -:1017D0000000BCA80000BD700000AE4C0000B05876 -:1017E0000000BD700000BD700000BD700000BD7045 -:1017F0000000BD700000BD700000BD700000BD7035 -:101800000000BD700000BD700000BD700000BD7024 -:101810000000BD700000BD540000B0402448656168 -:101820006465723A202F70726F6A656374732F72E9 -:1018300063732F73772F67652F2E2F6E69632F6663 -:10184000772F636F6D6D6F6E2F726563762E632CCD -:101850007620312E312E322E313920313939382F40 -:1018600030372F32342032313A33303A303520732A -:101870006875616E6720457870202400706B52781F -:101880004552520066726D324C617267650000000D -:1018900072784E6F527842640000000072785144B2 -:1018A0006D61444600000000727851446D6142460B -:1018B000000000003F6E6F51645278450000000048 -:1018C000706B5278455252730000000066726D32A0 -:1018D0004C7267530000000072784E6F42645300F0 -:1018E0003F724264446D6146000000003F724A420C -:1018F00064446D4600000000000000000000F6781F -:101900000000F6780000F6780000F6780000F6781F -:101910000000F6780000F6780000F6780000F6780F -:101920000000F6780000F6780000F6780000F678FF -:101930000000F6780000F6780000F6700000F670FF -:101940000000F670572D444D41456E4600000000E2 -:10195000000000000000FDC00001015C0000FDDC93 -:101960000001015C0001015C0001015C0001015CFF -:101970000001015C0001015C0000F7040001015C52 -:101980000001015C0001015C0001015C0001015CDF -:101990000001015400010154000101542448656113 -:1019A0006465723A202F70726F6A656374732F7268 -:1019B00063732F73772F67652F2E2F6E69632F66E2 -:1019C000772F636F6D6D6F6E2F6D61632E632C7655 -:1019D00020312E312E322E313220313939382F300C -:1019E000342F32372032323A31333A34322073686E -:1019F00075616E6720457870202400006D61637406 -:101A00007841544E000000004E7453796E264C6BA2 -:101A10000000000072656D61737372740000000055 -:101A20006C696E6B444F574E00000000656E714D3F -:101A30004576504661696C00656E714D457646612C -:101A4000696C00006661696C456E454D00000000E0 -:101A50006C696E6B55500000000000002448656101 -:101A60006465723A202F70726F6A656374732F72A7 -:101A700063732F73772F67652F2E2F6E69632F6621 -:101A8000772F636F6D6D6F6E2F636B73756D2E6344 -:101A90002C7620312E312E322E3220313939382F0A -:101AA00030342F32372032323A31333A33392073DF -:101AB0006875616E672045787020240050726F62EF -:101AC00065506879000000006C6E6B4153535254AE -:101AD0000000000000011B2C00011BC400011BF8CA -:101AE00000011C2C00011C5800011C6C00011CA8EA -:101AF0000001207C00011DE400011E2400011E5095 -:101B000000011E9000011EC000011EFC00011F30DC -:101B10000001207C000122C0000122D80001230026 -:101B2000000123200001234800012478000124A0A3 -:101B3000000124F40001251C000000000001278C96 -:101B40000001285C0001293400012A0400012A60F8 -:101B500000012B3C00012B6400012C4000012C688B -:101B600000012E1000012E3800012FE0000131D8B5 -:101B70000001346C000133800001346C00013498A2 -:101B800000013008000131B00000000000013B847A -:101B900000013BC800013C6000013CAC00013D1C61 -:101BA00000013DB400013DE800013E7000013F0826 -:101BB00000013FD8000140180001409C000140C0D6 -:101BC000000141F4646F42617365506700000000DA -:101BD00000000000000000000000000073746D6150 -:101BE000634C4E4B000000000000000000014C3828 -:101BF00000014C3800014B8000014BC400014C38FF -:101C000000014C380000000000000000000000004F -:101C100000000000000000000000000000000000C4 -:101C2000000000000000000000000000416C74652E -:101C30006F6E204163654E4943205600416C7465C8 -:101C40006F6E204163654E49432056004242424236 -:101C50000000000000000000000000000013541805 -:101C60000013E7FC0000000000000000000000007E -:101C70000000000000000000000000000060CF0035 -:101C800000000060CF000000000000000000000025 -:101C90000000000000000000000000000000000044 -:101CA0000000000000000000000000000000000034 -:101CB0000000000000000000000000000000000024 -:101CC0000000000000000000000000000000000014 -:101CD0000000000000000000000000030000000001 -:101CE00000000001000000000000000000000000F3 -:101CF00000000001000000000000000100000000E2 -:101D000000000000000000000000000000000001D2 -:101D100000000001000000000000000000000000C2 -:101D20000000000000000000010000002100000091 -:101D30001200014000000000000000002000000030 -:101D4000120000A0000000001200006012000180DC -:101D5000120001E000000000000000000000000090 -:101D60000000000100000000000000000000000072 -:101D70000000000000000000000000000000000261 -:101D8000000000000000000000030001000000014E -:0C1D900000030201000000000000000041 -:00000001FF -/* tg1 firmware v12.4.11 */ diff --git a/firmware/acenic/tg2.bin.ihex b/firmware/acenic/tg2.bin.ihex deleted file mode 100644 index a9ff4f431f22..000000000000 --- a/firmware/acenic/tg2.bin.ihex +++ /dev/null @@ -1,4844 +0,0 @@ -:100000000C040B0000004000000040000000000055 -:1000100010000003000000000000000D0000000DB3 -:100020003C1D00018FBD6D2003A0F0213C1000009D -:10003000261040000C0010C0000000000000000D61 -:100040003C1D00018FBD6D2403A0F0213C10000079 -:10005000261040000C0017E0000000000000000D1A -:100060000000000000000000000000000000000090 -:100070000000000000000000000000000000000080 -:100080000000000000000000000000000000000070 -:100090000000000000000000000000000000000060 -:1000A0000000000000000000000000000000000050 -:1000B0000000000000000000000000000000000040 -:1000C0000000000000000000000000000000000030 -:1000D0000000000000000000000000000000000020 -:1000E0000000000000000000000000000000000010 -:1000F0000000000000000000000000000000000000 -:1001000000000000000000000000000002000008E5 -:10011000000000000800172F3C0A00010800172FFC -:100120003C0A00020800172F0000000008002CAC59 -:100130000000000008002C4F000000000800172FEE -:100140003C0A00040800328A0000000008001A522D -:10015000000000000800394D00000000080038F4DD -:10016000000000000800172F3C0A0006080039BBF9 -:100170003C0A00070800172F3C0A00080800172F48 -:100180003C0A000908003A130000000008002EA6EF -:10019000000000000800172F3C0A000B0800172F72 -:1001A0003C0A000C0800172F3C0A000D080028FB31 -:1001B0000000000008002890000000000800172F31 -:1001C0003C0A000E0800208C0000000008001964A2 -:1001D0000000000008001A040000000008003CA60F -:1001E0000000000008003C94000000000800172FE9 -:1001F000000000000800191A000000000800172F76 -:10020000000000000800172F3C0A00130800172FF9 -:100210003C0A001400000000000000000000000084 -:1002200000000000000000000000000000000000CE -:1002300000000000000000000000000000000000BE -:1002400000000000000000000000000000000000AE -:10025000000000000000000000000000000000009E -:10026000000000000000000000000000000000008E -:10027000000000000000000000000000000000007E -:10028000000000000000000000000000000000006E -:10029000000000000000000000000000000000005E -:1002A000000000000000000000000000000000004E -:1002B000000000000000000000000000000000003E -:1002C000000000000000000000000000000000002E -:1002D000000000000000000000000000000000001E -:1002E000000000000000000000000000000000000E -:1002F00000000000000000000000000000000000FE -:1003000000000000000000000000000027BDFFE02A -:100310003C1CC000AFBF001CAFB000188F82014072 -:1003200024030003AF8300EC344200040C002B20B4 -:10033000AF8201403C0100C00C001763AC203FFCC1 -:10034000004018213C0200103C010001AC236E9CCF -:10035000106200110043102B144000023C020020E8 -:100360003C0200081062000C240501003C0600015C -:100370008CC66E9C3C04000124845C74000038210F -:10038000AFA000100C002B3BAFA000143C020020DB -:100390003C010001AC226E9C240200083C010001DB -:1003A000AC226EB42402001F3C010001AC226EC4DA -:1003B000240200163C010001AC226E983C05FFFEB1 -:1003C00034A56F083C0200018C426E9C3C03000285 -:1003D000246390103C0400018C846CC400431023FF -:1003E00014800002004580212610FA382402F00013 -:1003F000020280240C00178502002021020228231B -:100400003C0400200082182300651823247BB000E0 -:100410003C03FFFE3463BF080363B8213C0600BF02 -:1004200034C6F0003C0700018CE76CC03C0300BF01 -:100430003463E000008520233C010001AC246EA859 -:10044000008220233C010001AC256E90000528426B -:100450003C010001AC226E8427620FFC3C010001CC -:10046000AC226D2027621FFC00DB3023007B1823A9 -:100470003C010001AC246E883C010001AC256EAC4F -:100480003C010001AC226D24AF86015010E0001148 -:10049000AF8302503C1D00018FBD6CCC03A0F02146 -:1004A0000C001749000000003C0200018C426CD097 -:1004B0003C0300018C636CD42442FE0024630200E0 -:1004C0003C010001AC226CD03C0100011000000492 -:1004D000AC236CD43C1D00018FBD6D2003A0F02126 -:1004E0003C0200018C426CC41040000D26FAFA3820 -:1004F0003C0200018C426CD03C0300018C636CD444 -:100500003C1A00018F5A6CD42442FA38246305C87F -:100510003C010001AC226CD03C010001AC236CD446 -:100520003C0200018C426CC8144000030000000033 -:100530003C010001AC206CD00C0011510000000007 -:100540008FBF001C8FB0001803E0000827BD0020FB -:100550003C0200018C426CD03C0300018C636CD4E3 -:1005600027BDFF98AFB000483C1000018E1066B860 -:10057000AFB200503C12000026524100AFBF0060F5 -:10058000AFBE005CAFB50058AFB30054AFB1004C84 -:10059000AFA20034AFA30030AFA00010AFA0001492 -:1005A0008F8600403C04000124845C802405020006 -:1005B0003C010001AC326E800C002B3B0200382164 -:1005C0008F8300403C02F000006218243C0260006F -:1005D0001062000BA3A0003F240E00013C040001A8 -:1005E00024845C88A3AE003FAFA00010AFA000142D -:1005F0008F860040240503000C002B3B02003821AD -:100600008F8202403C03000100431025AF8202406C -:10061000AF8000488F8200481440000500000000B1 -:10062000AF8000488F8200481040000400000000A6 -:10063000AF8000481000000302E02021AF80004C92 -:1006400002E020213C0500010C002BA834A540F855 -:10065000034020210C002BA8240505C83C02000102 -:100660008C426EA83C0D00018DAD6E883C030001EC -:100670008C636E843C0800018D086E903C0900017B -:100680008D296EAC3C0A00018D4A6EB43C0B000112 -:100690008D6B6EC43C0C00018D8C6E983C04000187 -:1006A00024845C9424050400AF42013C8F42013C49 -:1006B0002406000124070001AF400000AF4D0138BF -:1006C000AF430144AF480148AF49014CAF4A015024 -:1006D000AF4B0154AF4C01582442FF80AF42014060 -:1006E00024020001AFA200100C002B3BAFA00014AD -:1006F0008F420138AFA200108F42013CAFA200141C -:100700008F4601448F4701483C04000124845CA0CB -:100710000C002B3B24050500AFB70010AFBA001446 -:100720008F46014C8F4701503C04000124845CAC8F -:100730000C002B3B240506003C0200018C426E9C01 -:10074000036038213C06000224C690102448FFFFB5 -:100750000106182400E810240043102B1040000666 -:10076000240509003C04000124845CB8AFA80010F3 -:100770000C002B3BAFA000148F82000CAFA2001026 -:100780008F82003CAFA200148F8600008F87000488 -:100790003C04000124845CC40C002B3B24051000A5 -:1007A0008C0202208C0302248C0602188C07021C87 -:1007B0003C04000124845CCC24051100AFA200108D -:1007C0000C002B3BAFA30014AF800054AF80011C82 -:1007D0008C020218304200021040000900000000A4 -:1007E0008C0202203C030002346300040043102505 -:1007F000AF42000C8C02021C1000000834420004BE -:100800008C0202203C0300023463000600431025E2 -:10081000AF42000C8C02021C34420006AF420014AE -:100820008C020218304200101040000A0000000044 -:100830008C02021C34420004AF4200108C020220E1 -:100840003C03000A34630004004310251000000933 -:10085000AF4200088C0202203C03000A3463000609 -:1008600000431025AF4200088C02021C34420006EF -:10087000AF42001024020001AF8200A0AF8200B09E -:100880008F8300548F820054AF8000D0AF8000C0AF -:1008900010000002246300648F8200540062102361 -:1008A0002C4200651440FFFC000000008C0402088C -:1008B0008C05020C26E20028AEE2002024020490FF -:1008C000AEE20010AEE40008AEE5000C26E400083D -:1008D0008C8200008C830004AF820090AF83009470 -:1008E0008C820018AF8200B49482000AAF82009C10 -:1008F0008F420014AF8200B08F8200B030420004FB -:100900001440FFFD000000008F8200B03C03EF00A8 -:100910000043102410400021000000008F8200B42A -:10092000AFA200108F8200908F8300943C040001DE -:1009300024845CD4AFA300148F8600B08F87009C02 -:100940003C0500010C002B3B34A5200D3C040001AC -:1009500024845CE0240203C0AFA20010AFA0001406 -:100960008F8601443C07000124E75CE80C002B3B28 -:100970003405DEAD8F82011C34420002AF82011CBF -:100980008F82022034420004AF8202208F82014015 -:100990003C03000100431025AF82014096E204723F -:1009A00096E6045296E70462AFA2001096E2048233 -:1009B0003C04000124845D14240512000C002B3B30 -:1009C000AFA2001496F0045232020001104000025F -:1009D0000000B02124160001320200025440000140 -:1009E00036D60002320200085440000136D6000418 -:1009F000320200105440000136D6000832020020B6 -:100A00005440000136D6001032020040544000012C -:100A100036D60020320200805440000136D6004015 -:100A200096E6048230C202005440000136D64000EF -:100A300096E304723062020010400003306201004D -:100A40001000000336D620005440000136D61000B6 -:100A500096F0046232C24000144000043207009B4A -:100A600030C2009B14E20007240E000132C22000B5 -:100A70001440000D320200013062009B10E20009B8 -:100A8000240E00013C04000124845D202405130091 -:100A900002003821A3AE003FAFA300100C002B3B97 -:100AA000AFA00014320200015440000136D600808D -:100AB000320200025440000136D601003202000822 -:100AC0005440000136D602003202001054400001AA -:100AD00036D60400320200805440000136D60800A9 -:100AE0008C02021830420200104000023C02000852 -:100AF00002C2B0258C0202183042080010400002E9 -:100B00003C02008002C2B0258C0202183042040070 -:100B1000104000023C02010002C2B0258C02021803 -:100B200030420100104000023C02020002C2B02527 -:100B30008C02021830420080104000023C02040087 -:100B400002C2B0258C020218304220001040000280 -:100B50003C02001002C2B0258C0202183042400054 -:100B6000104000023C02002002C2B0258C02021894 -:100B700030421000104000023C02004002C2B0258A -:100B80008EE204988EE3049CAF420160AF4301649F -:100B90008EE204A08EE304A4AF420168AF43016C6F -:100BA0008EE204A88EE304ACAF420170AF4301743F -:100BB0008EE204288EE3042CAF420178AF43017C1F -:100BC0008EE204488EE3044CAF420180AF430184BF -:100BD0008EE204588EE3045CAF420188AF43018C7F -:100BE0008EE204688EE3046CAF420190AF4301943F -:100BF0008EE204788EE3047CAF420198AF43019CFF -:100C00008EE204888EE3048CAF4201A0AF4301A4BE -:100C10008EE204B08EE304B424040080AF4201A845 -:100C2000AF4301AC0C002BA8240500808C02025CB1 -:100C300027440224AF4201F08C0202602405020026 -:100C4000240600080C002BBFAF4201F83C043B9A7D -:100C50003484CA0000003821240200062403000264 -:100C6000AF4201F4240203E8AF430204AF430200A1 -:100C7000AF4401FCAF42029424020001AF43029052 -:100C8000AF42029C3C0300010067182190636CD8BE -:100C90000347102124E70001A043022C2CE2000F9F -:100CA0001440FFF80347182124E700013C08000125 -:100CB000350840F88F8200403C04000124845D2CFC -:100CC000240514000002170224420030A062022C06 -:100CD00003471021A040022C8C07021802C03021CB -:100CE000240205C8AFA200100C002B3BAFA80014D3 -:100CF0003C04000124845D383C05000024A55C8090 -:100D00002406001027B100300220382127B3003418 -:100D10000C0017A3AFB300103C0300018C636CC838 -:100D20001060000A004080218FA300302405FF00DE -:100D30008FA20034246400FF008520240083182340 -:100D400000431023AFA20034AFA400303C040001E4 -:100D500024845D443C05000024A5410024060108CC -:100D6000022038210C0017A3AFB3001000409021DF -:100D700032C200033C010001AC326E8010400045DD -:100D8000022038218F8200503C03001000431024C1 -:100D900010400016000000008C0202183042004093 -:100DA0001040000F240200018F8200508C030218B3 -:100DB000240E00013C04000124845D50A3AE003FDA -:100DC000AFA20010AFA300148F87004024051500C8 -:100DD0000C002B3B02C0302110000004000000007A -:100DE0003C01000100370821A02240F43C0400012E -:100DF00024845D5C3C05000124A55B403C060001A9 -:100E000024C65BAC00C530238F42001027B30030EE -:100E10000260382127B1003434420A00AF4200108A -:100E20000C0017A3AFB100103C04000124845D70D6 -:100E30003C05000124A5B7143C06000124C6BA9065 -:100E400000C5302302603821AF4201080C0017A30F -:100E5000AFB100103C04000124845D8C3C0500010E -:100E600024A5BE583C06000124C6C90000C5302395 -:100E7000026038213C010001AC226EF40C0017A383 -:100E8000AFB100103C04000124845DA410000024D4 -:100E9000240516003C04000124845DAC3C050001DF -:100EA00024A5A10C3C06000124C6A23800C53023AD -:100EB0000C0017A3AFB300103C04000124845DBCF8 -:100EC0003C05000124A5B2B03C06000124C6B70CC5 -:100ED00000C5302302203821AF4201080C0017A3BF -:100EE000AFB300103C04000124845DD03C05000138 -:100EF00024A5BA983C06000124C6BE5000C5302384 -:100F0000022038213C010001AC226EF40C0017A332 -:100F1000AFB300103C04000124845DE424051650A6 -:100F200002C03021000038213C010001AC226EF8E3 -:100F3000AFA000100C002B3BAFA0001432C2002069 -:100F40001040002127A700303C04000124845DF0FC -:100F50003C05000124A5B13C3C06000124C6B2A812 -:100F600000C5302324022000AF42001C27A2003419 -:100F70000C0017A3AFA20010000219000003198291 -:100F80003C04080000641825AE4300282403001028 -:100F9000AF43003C96E30450AF4300408F43004012 -:100FA0003C04000124845E04AFA00014AFA3001031 -:100FB0008F47001C240516603C010001AC226EF036 -:100FC0001000002532C600208EE204488EE3044C57 -:100FD000AF43001C8F42001C2442E0002C42200141 -:100FE0001440000A240E00013C04000124845E1019 -:100FF000A3AE003FAFA00010AFA000148F46001CAE -:10100000240517000C002B3B000038213C02000097 -:1010100024425CBC00021100000211823C03080063 -:1010200000431025AE42002824020008AF42003CD5 -:1010300096E20450AF4200408F4200403C04000161 -:1010400024845E1CAFA00014AFA200108F47001CC8 -:101050002405180032C600200C002B3B00000000C5 -:101060003C050FFF3C0300018C636EF434A5FFFFC9 -:10107000024030213C0200018C426EF83C04080022 -:101080000065182400031882006418250045102408 -:101090000002108200441025ACC2008032C20180E0 -:1010A00010400056ACC300208F82005C3C030080DF -:1010B000004310241040000D000000008F820050FB -:1010C000AFA200108F82005C240E00013C040001DE -:1010D00024845E28A3AE003FAFA200148F87004097 -:1010E000240519000C002B3B02C030218F820050D8 -:1010F0003C030010004310241040001600000000C4 -:101100008C020218304200401040000F24020001FF -:101110008F8200508C030218240E00013C04000151 -:1011200024845D50A3AE003FAFA20010AFA3001413 -:101130008F870040240520000C002B3B02C030218B -:1011400010000004000000003C01000100370821ED -:10115000A02240F43C04000124845E343C050001DC -:1011600024A55AC03C06000124C65B3800C53023C4 -:101170008F42000827B300300260382127B10034C5 -:1011800034420E00AF4200080C0017A3AFB10010AC -:101190003C04000124845E4C3C05000124A5D8B425 -:1011A0003C06000124C6E3C800C530230260382194 -:1011B000AF42010C0C0017A3AFB100103C040001BA -:1011C00024845E643C05000124A5E9AC3C060001D2 -:1011D00024C6F0F000C53023026038213C01000134 -:1011E000AC226F040C0017A3AFB100103C04000147 -:1011F00024845E7C10000027240521003C040001AB -:1012000024845E843C05000124A59FC83C0600019F -:1012100024C6A10400C5302327B1003002203821A4 -:1012200027B300340C0017A3AFB300103C04000137 -:1012300024845E943C05000124A5CAD43C06000128 -:1012400024C6D8AC00C5302302203821AF42010C9F -:101250000C0017A3AFB300103C04000124845EA46B -:101260003C05000124A5E84C3C06000124C6E9A485 -:1012700000C53023022038213C010001AC226F045C -:101280000C0017A3AFB300103C04000124845EB827 -:101290002405215002C03021000038213C0100010A -:1012A000AC226F10AFA000100C002B3BAFA00014BD -:1012B0003C110FFF3C0300018C636F043631FFFFCC -:1012C000024098213C0200018C426F103C0E080045 -:1012D0000071182400031882006E18250051102494 -:1012E00000021082004E1025AE630038AE62007816 -:1012F0008C02021830420040144000042402000115 -:101300003C01000100370821A02240F43C04000108 -:1013100024845EC43C05000124A5E3D03C06000102 -:1013200024C6E52C00C5302327BE003003C0382179 -:1013300027B500340C0017A3AFB500103C01000125 -:10134000AC226EFC00511024000210823C0E0800FA -:10135000004E1025AE62005032C220001040000640 -:1013600003C038213C02000024425CBC022210244D -:101370001000000F000210823C04000124845ED89B -:101380003C05000124A5E5343C06000124C6E6E442 -:1013900000C530230C0017A3AFB500103C010001BD -:1013A000AC226F1400511024000210823C0E080081 -:1013B000004E1025AE62004832C2400010400005C9 -:1013C00027A700303C02000024425CBC1000000E45 -:1013D000000211003C04000124845EF03C05000181 -:1013E00024A5E6EC3C06000124C6E84400C53023F1 -:1013F00027A200340C0017A3AFA200103C0100018B -:10140000AC226F0800021100000211823C030800A8 -:1014100000431025AE4200603C04000124845F08B4 -:101420003C05000124A582303C06000124C68650FC -:1014300000C5302327B100300220382127B3003403 -:101440000C0017A3AFB300103C0E0FFF35CEFFFF0B -:101450003C04000124845F143C05000024A564685A -:101460003C06000024C6658800C5302302203821D0 -:101470000240F0213C010001AC226EDC004E102441 -:10148000000210823C15080000551025AFAE004444 -:10149000AFC200B80C0017A3AFB300103C040001AA -:1014A00024845F203C05000024A565903C060000D4 -:1014B00024C668088FAE004400C5302302203821BE -:1014C0003C010001AC226ED0004E102400021082BC -:1014D00000551025AFC200E80C0017A3AFB30010F1 -:1014E0003C04000124845F383C05000024A56810FA -:1014F0003C06000024C669408FAE004400C530237E -:10150000022038213C010001AC226EC8004E10249C -:101510000002108200551025AFC200C00C0017A3B6 -:10152000AFB300103C04000124845F503C0500016F -:1015300024A5FAD03C06000124C6FBA88FAE0044C7 -:1015400000C53023022038213C010001AC226ED4BA -:10155000004E10240002108200551025AFC200C8B2 -:101560000C0017A3AFB300103C04000124845F5C9F -:101570003C05000124A5C93C3C06000124C6CA2044 -:1015800000C5302302203821AF4201100C0017A300 -:10159000AFB300103C04000124845F6C3C050001E3 -:1015A00024A5C9103C06000124C6C93400C5302357 -:1015B00002203821AF4201240C0017A3AFB3001062 -:1015C0003C04000124845F7C3C05000124A55A8072 -:1015D0003C06000124C65AAC00C530230220382145 -:1015E000AF420120AF4201140C0017A3AFB30010AB -:1015F0003C04000124845F883C05000124A5F29886 -:101600003C06000124C6F6B400C530230220382170 -:10161000AF4201180C0017A3AFB300108FAE004407 -:101620003C010001AC226F18004E10240002108211 -:10163000005510250C003FC3AFC200D00C003C4049 -:10164000000000000C0027A800000000AC000228E9 -:10165000AC00022C96E204502442FFFFAF42003857 -:1016600096E20460AF42008032C2400014400003A2 -:101670000000000096E20480AF42008496E70490E8 -:1016800050E000012407080024E2FFFFAF42008879 -:10169000AF42007C2402080010E2000F32C240007A -:1016A000104000032402040010E2000B00000000C0 -:1016B000240E00013C04000124845F98A3AE003F87 -:1016C00096E604902405217002C03821AFA00010D6 -:1016D0000C002B3BAFA000148F4301388F4401381E -:1016E00024020001A34205C2AF430094AF44009816 -:1016F000AFA00010AFA000148F4600808F47008479 -:101700003C04000124845FA40C002B3B2405220030 -:101710000C0024A43C1108003C1433D83694CB5858 -:101720003C020800344200803C04000124845FB085 -:101730003C05000024A55D003C06000024C65D1C9D -:1017400000C5302327A70030AF8200602402FFFFCE -:10175000AF82006427A200340C0017A3AFA20010D0 -:101760003C010001AC226EB800021100000211829F -:10177000005110250C0018FCAE4200008F82024080 -:101780003C03000100431025AF8202403C020000F0 -:1017900024424034AF820244AF8002408F82006016 -:1017A00000511024144000053C0308008F820060A3 -:1017B000004310241040FFFD000000000C003C4DD1 -:1017C000000088213C020100AFA200208F530018C6 -:1017D000240200FF56620001267100018C020228DB -:1017E0001622000E001330C08F42033C2442000139 -:1017F000AF42033C8F42033C8C0202283C040001B0 -:1018000024845C243C050009AFA00014AFA20010A2 -:101810008FA600201000003F34A5010000D7102142 -:101820008FA300208FA40024AC4304C0AC4404C4A4 -:1018300000C018218F4401788F45017C00001021E1 -:1018400024070004AFA70010AFB100148F48000CAC -:1018500024C604C002E63021AFA800188F48010C4E -:101860002407000800A3282100A3482B0082202180 -:101870000100F809008920211440000B240700080A -:101880008F820120AFA200108F8201243C0400014E -:1018900024845C2C3C050009AFA200148FA6002014 -:1018A0001000001C34A502008F4401608F450164C4 -:1018B0008F43000CAF5100188F86012024020010C6 -:1018C000AFA20010AFB10014AFA300188F42010CFB -:1018D0000040F80924C6001C14400010000000005D -:1018E0008F42034024420001AF4203408F42034035 -:1018F0008F820120AFA200108F8201243C040001DE -:1019000024845C343C050009AFA200148FA600209B -:1019100034A503000C002B3B026038218F4202E407 -:1019200024420001AF4202E48F4202E493A2003F4E -:10193000104000693C02070034423000AFA200288A -:101940008F530018240200FF126200020000882159 -:10195000267100018C0202281622000E001330C0EE -:101960008F42033C24420001AF42033C8F42033CC0 -:101970008C0202283C04000124845C243C050009FC -:10198000AFA00014AFA200108FA600281000003FE7 -:1019900034A5010000D710218FA300288FA4002CAC -:1019A000AC4304C0AC4404C400C018218F44017887 -:1019B0008F45017C0000102124070004AFA7001010 -:1019C000AFB100148F48000C24C604C002E63021D9 -:1019D000AFA800188F48010C2407000800A3282195 -:1019E00000A3482B008220210100F8090089202152 -:1019F0001440000B240700088F820120AFA20010C2 -:101A00008F8201243C04000124845C2C3C050009E5 -:101A1000AFA200148FA600281000001C34A50200FD -:101A20008F4401608F4501648F43000CAF51001853 -:101A30008F86012024020010AFA20010AFB1001465 -:101A4000AFA300188F42010C0040F80924C6001C07 -:101A500014400010000000008F42034024420001A7 -:101A6000AF4203408F4203408F820120AFA200109B -:101A70008F8201243C04000124845C343C0500096D -:101A8000AFA200148FA6002834A503000C002B3B46 -:101A9000026038218F4202F024420001AF4202F07E -:101AA0008F4202F03C04000124845FC0AFA000100C -:101AB000AFA000148FA60028240523000C002B3BA8 -:101AC0000000382110000004000000008C020264B5 -:101AD00010400005000000008F8200A0304200048A -:101AE0001440FFFA000000008F82004434420004DA -:101AF000AF8200448F42030824420001AF42030832 -:101B00008F4203088F8200D88F8300D400431023B4 -:101B10002442FF80AF4200908F4200902842FF8114 -:101B200010400006240200018F4200908F430144C0 -:101B300000431021AF42009024020001AF42008C0C -:101B400032C2000810400006000000008F8202141C -:101B50003C0381003042FFFF00431025AF82021496 -:101B60003C0300018C636D94306200021040000958 -:101B7000306200013C04000124845FCC3C0500007D -:101B800024A56D503C06000024C671C81000001248 -:101B900000C5302310400009000000003C04000193 -:101BA00024845FDC3C05000024A571D03C060000C5 -:101BB00024C676781000000800C530233C040001DC -:101BC00024845FEC3C05000024A569483C06000025 -:101BD00024C66D4800C5302327A7003027A2003453 -:101BE0000C0017A3AFA200103C010001AC226ECC88 -:101BF0003C0200018C426ECC3C0308000002110044 -:101C00000002118200431025AE4200408F8200A0E6 -:101C1000AFA200108F8200B0AFA200148F86005CCC -:101C20008F87011C3C04000124845FFC3C010001FF -:101C3000AC366EA43C010001AC206E943C01000166 -:101C4000AC3C6E8C3C010001AC3B6EBC3C01000125 -:101C5000AC376EC03C010001AC3A6EA00C002B3BCF -:101C6000240524008F820200AFA200108F82022080 -:101C7000AFA200148F8600448F8700503C040001FF -:101C8000248460080C002B3B240525008F83006012 -:101C90000074100B0242000A0200F821000000004C -:101CA0000000000D8FBF00608FBE005C8FB5005834 -:101CB0008FB300548FB200508FB1004C8FB00048EA -:101CC00003E0000827BD006827BDFFE03C040001D9 -:101CD00024846014240526000000302100003821EF -:101CE000AFBF0018AFA000100C002B3BAFA000143A -:101CF0008FBF001803E0000827BD002003E00008A4 -:101D00000000000003E000080000000000000000E8 -:101D100000000000000000000000000000000000C3 -:101D200003E000080000000003E0000800000000DD -:101D300027BDFDE027A500183C04DEAD3484BEEFCE -:101D4000AFBF02188F8201503C03001F3463FFFFB6 -:101D5000AFA4001800A2282300A328248CA200000E -:101D60001044000A00000000AFA500108CA2000083 -:101D7000AFA200148F8601508F8702503C040001EF -:101D80002484601C0C002B3B240527008FBF021805 -:101D900003E0000827BD022027BDFFE03C06ABBAE8 -:101DA00034C6BABEAFB000183C1000043C07007F38 -:101DB00034E7FFFFAFBF001C001028408E04000076 -:101DC0008CA30000ACA00000AE0600008CA20000B6 -:101DD000ACA3000010460005AE04000000A0802166 -:101DE00000F0102B1040FFF5001028403C040001CB -:101DF00024846028240528000200302100003821B6 -:101E0000AFA000100C002B3BAFA00014020010216B -:101E10008FBF001C8FB0001803E0000827BD002012 -:101E20008C0202243047003F10E000100080302177 -:101E3000000028212403002000E3102410400002A9 -:101E40000006304200A62821000318421460FFFB60 -:101E500000E310242402F00000A228243402FFFF33 -:101E60000045102B144000033C0200011000000844 -:101E70003C0200013442FFFF008518230043102B71 -:101E80001440000300A010213C02FFFE008210213C -:101E900003E000080000000027BDFFD0AFB5002818 -:101EA0008FB50040AFB2002000A09021AFB1001C60 -:101EB00024C60003AFBF002CAFB30024AFB000189E -:101EC0008EA200002403FFFC00C380240050102BCE -:101ED0001440001B00E088218E330000AFB00010DA -:101EE0008EA20000AFA200148E270000240530004F -:101EF0000C002B3B024030218E230000007020217B -:101F00000064102B10400007024028218CA2000022 -:101F1000AC620000246300040064102B1440FFFB3B -:101F200024A500048EA2000000501023AEA20000E1 -:101F30008E220000005010211000000BAE22000085 -:101F40002402002DA0820000AFB000108EA200007D -:101F500002409821AFA200148E2700002405310012 -:101F60000C002B3B02603021026010218FBF002C3F -:101F70008FB500288FB300248FB200208FB1001CD2 -:101F80008FB0001803E0000827BD003027BDFFE830 -:101F90003C1CC0003C05FFFE3C0300018C636E84CA -:101FA0003C0400018C846E9034A5BF0824021FFC01 -:101FB0003C010001AC226CD03C0200C03C0100019D -:101FC000AC226CD43C020020AFBF00103C0100C02A -:101FD000AC201FFC0043102300441023245BB000FE -:101FE0000365B8213C1D00018FBD6CCC03A0F0211E -:101FF0003C0400C0348402003C1A00C03C0300C012 -:10200000346307C824021DFC3C010001AC226CD0E3 -:10201000240218343C010001AC246CD43C010001C2 -:10202000AC226CD03C010001AC236CD40C00180D28 -:10203000375A02008FBF001003E0000827BD0018C8 -:1020400027BDFFC83C04000124846034240532000D -:102050003C0200018C426CD03C0300018C636CD4C8 -:102060000000302103603821AFBF0030AFB3002C37 -:10207000AFB20028AFB10024AFB00020AFA2001C67 -:10208000AFA30018AFB700100C002B3BAFBA001481 -:102090000C001916000000008F8202403442000438 -:1020A000AF82024024020001AF4200003C02000166 -:1020B00000571021904240F4104000922403FFFC8E -:1020C0003C1000012610AC733C1200012652A84CB3 -:1020D00002121023004380248FA3001C3C04000143 -:1020E000248460400070102B1440001A27B300189D -:1020F0008FB100182405300002403021AFB000102D -:10210000AFA300140C002B3B022038218FA3001832 -:10211000007020210064102B104000070240302185 -:102120008CC20000AC620000246300040064102B29 -:102130001440FFFB24C600048FA2001C0050102393 -:10214000AFA2001C8E620000005010211000000A97 -:10215000AE6200000240882124053100AFB00010BB -:10216000AFA300148FA70018022030212402002DF5 -:102170000C002B3BA0820000240700208FA3001C32 -:102180003C0400012484605C241200203C01000116 -:10219000AC316EB02C6200201440001D27B1001835 -:1021A0008FB00018240530003C06000124C66F5093 -:1021B000AFA70010AFA300140C002B3B0200382186 -:1021C0008FA300183C04000124846F502465002074 -:1021D0000065102B10400007000000008C820000FA -:1021E000AC620000246300040065102B1440FFFB68 -:1021F000248400048FA2001C00521023AFA2001CF4 -:102200008E220000005210211000000BAE220000B0 -:102210003C10000126106F5024053100AFA70010BC -:10222000AFA300148FA70018020030212402002D54 -:102230000C002B3BA0820000240700203C0400017E -:10224000248460708FA3001C241200203C01000134 -:10225000AC306EE42C6200201440001D27B1001841 -:102260008FB00018240530003C06000124C66F70B2 -:10227000AFA70010AFA300140C002B3B02003821C5 -:102280008FA300183C04000124846F702465002093 -:102290000065102B10400007000000008C82000039 -:1022A000AC620000246300040065102B1440FFFBA7 -:1022B000248400048FA2001C00521023AFA2001C33 -:1022C0008E220000005210211000000BAE220000F0 -:1022D0003C10000126106F7024053100AFA70010DC -:1022E000AFA300148FA70018020030212402002D94 -:1022F0000C002B3BA08200003C01000110000031CB -:10230000AC306EE03C1000012610821F3C12000130 -:102310002652809C02121023004380248FA3001CAD -:102320003C040001248460840070102B1440001AC7 -:1023300027B300188FB10018240530000240302167 -:10234000AFB00010AFA300140C002B3B02203821CB -:102350008FA30018007020210064102B104000078C -:10236000024030218CC20000AC62000024630004F3 -:102370000064102B1440FFFB24C600048FA2001C35 -:1023800000501023AFA2001C8E62000000501021EC -:102390001000000AAE6200000240882124053100CE -:1023A000AFB00010AFA300148FA700180220302197 -:1023B0002402002D0C002B3BA08200003C010001F8 -:1023C000AC316EB03C0300018C636EB0240204009B -:1023D0000060F809AF8200708FBF00308FB3002C0F -:1023E0008FB200288FB100248FB0002003E00008D6 -:1023F00027BD003800000000000000008F82004070 -:102400003C03F000004310243C036000144300062A -:10241000000000008F8200502403FF80004310243E -:1024200034420055AF8200508F820054244203E8AA -:10243000AF820058240201F4AF4200E024020004FD -:10244000AF4200E824020002AF4001B0AF4000E418 -:10245000AF4200DCAF4000D8AF4000D403E000083A -:10246000AF4000D08F8200542442000503E00008F2 -:10247000AF82007827BDFFE8AFBF00108F82005405 -:10248000244203E8AF8200583C02080002C2102434 -:10249000104000043C02F7FF3442FFFF02C2B024A8 -:1024A000369400403C0200018C426DA81040001799 -:1024B0003C0202003C0300018C636F1C106000169C -:1024C0000282A0253C0200018C426E44144000129E -:1024D0003C0202003C0200018C426D943042000339 -:1024E0001440000D3C0202008F8302243C020002D3 -:1024F0008C428FEC106200083C0202000C003DAFE1 -:1025000000000000100000043C0202000C00419694 -:10251000000000003C02020002C210241040000330 -:10252000000000000C001F4B000000008F4200D88C -:102530008F4300DC24420001AF4200D80043102B3F -:102540001440000300000000AF4000D83694008023 -:102550008C0302381060000C000000008F4201B0B4 -:10256000244203E8AF4201B00043102B14400006A0 -:1025700000000000934205C5144000030000000065 -:102580000C001DA0000000008FBF001003E0000839 -:1025900027BD001803E000080000000027BDFFD899 -:1025A000AFBF00208F43002C8F42003810620059CB -:1025B000000000003C02000100571021904240F052 -:1025C00010400026240700088F4401708F450174D5 -:1025D0008F48000C8F86012024020020AFA200103B -:1025E000AFA30014AFA800188F42010C0040F809F7 -:1025F00024C6001C14400011240200013C0100010B -:1026000000370821A02240F08F820124AFA20010E1 -:102610008F8201283C04000124846128AFA20014A9 -:102620008F46002C8F8701203C0500090C002B3BB6 -:1026300034A509001000005C000000008F42030078 -:1026400024420001AF4203008F4203008F42002C5E -:10265000A34005C110000027AF4200388F4401702D -:102660008F4501748F43002C8F48000C8F8601200A -:1026700024020080AFA20010AFA30014AFA800187E -:102680008F42010C0040F80924C6001C14400011C0 -:10269000240200013C01000100370821A02240F182 -:1026A0008F820124AFA200108F8201283C04000118 -:1026B00024846134AFA200148F46002C8F87012040 -:1026C0003C0500090C002B3B34A51100100000361E -:1026D000000000008F4203008F43002C24420001C1 -:1026E000AF4203008F42030024020001A34205C150 -:1026F000AF4300383C01000100370821A02040F121 -:102700003C01000100370821A02040F01000002605 -:10271000AF400034934205C11040001D000000008E -:10272000A34005C18F8200403042000114400008E0 -:10273000000020218C0301042402000150620005E6 -:10274000240400018C020264104000030080102168 -:102750002404000100801021104000060000000049 -:102760008F42030C24420001AF42030C100000080A -:102770008F42030C8F82004434420004AF82004435 -:102780008F42030824420001AF4203088F4203082E -:102790003C01000100370821A02040F03C0100016D -:1027A00000370821A02040F18F42000010400007B0 -:1027B00000000000AF80004C8F82004C1040FFFDF5 -:1027C000000000001000000500000000AF8000487D -:1027D0008F8200481040FFFD000000008F820060E3 -:1027E0003C03FF7F3463FFFF00431024AF8200608F -:1027F0008F420000104000030000000010000002A3 -:10280000AF80004CAF8000488FBF002003E000087D -:1028100027BD002803E000080000000027BDFFD806 -:10282000AFBF00208F4300448F42007C106200291C -:10283000240700088F4401688F45016C8F48000C05 -:102840008F86012024020040AFA20010AFA3001425 -:10285000AFA800188F42010C0040F80924C6001CE4 -:1028600014400011240200013C010001003708213E -:10287000A02240F28F820124AFA200108F82012893 -:102880003C0400012484613CAFA200148F46004444 -:102890008F8701203C0500090C002B3B34A5130059 -:1028A0001000000F000000008F42030424420001CA -:1028B000AF4203048F4203048F420044AF42007CC6 -:1028C0003C01000100370821A02040F21000000464 -:1028D000AF4000783C01000100370821A02040F201 -:1028E0008F4200001040000700000000AF80004C45 -:1028F0008F82004C1040FFFD00000000100000051A -:1029000000000000AF8000488F8200481040FFFDAB -:10291000000000008F8200603C03FEFF3463FFFF75 -:1029200000431024AF8200608F420000104000037B -:102930000000000010000002AF80004CAF80004893 -:102940008FBF002003E0000827BD002803E0000837 -:10295000000000003C0200018C426DA827BDFFA8CA -:10296000AFBF0050AFBE004CAFB50048AFB300449E -:10297000AFB20040AFB1003CAFB00038104000D55E -:102980008F9000448F4200D0244300012842000B66 -:10299000144000E4AF4300D08F42000430420002F4 -:1029A0001440009CAF4000D08F4200043C03000163 -:1029B0008C636D9834420002AF420004240200018F -:1029C000146200033C020600100000023442300092 -:1029D00034421000AFA200208F4A0018AFAA003482 -:1029E00027AA0020AFAA002C8FAA0034240200FFDF -:1029F0001142000200001821254300018C02022828 -:102A0000006098211662000E3C0500098F42033CCD -:102A100024420001AF42033C8F42033C8C02022857 -:102A20008FA700343C0400012484610CAFA0001483 -:102A3000AFA200108FA600201000007034A5050082 -:102A40008FAA0034000A38C000F710218FA300209D -:102A50008FA40024AC4304C0AC4404C48F8300544E -:102A60008F820054247103E8022210232C4203E9D0 -:102A70001040001B0000A82100E09021265E04C049 -:102A80008F4401788F45017C02401821240A0004FC -:102A9000AFAA0010AFB300148F48000C0000102143 -:102AA00002FE3021AFA800188F48010C240700084F -:102AB00000A3282100A3482B008220210100F8094F -:102AC0000089202154400006241500018F82005403 -:102AD000022210232C4203E91440FFE90000000009 -:102AE00032A200FF54400018AF5300188F42037801 -:102AF00024420001AF4203788F4203788F82012085 -:102B00008FAA002C8FA70034AFA200108F8201245F -:102B10003C04000124846118AFA200148D4600001B -:102B20003C0500091000003534A506008F4203085B -:102B30002415000124420001AF4203088F4203081C -:102B40001000001E32A200FF8F8300548F820054B9 -:102B5000247103E8022210232C4203E910400016DE -:102B60000000A8213C1E0020241200108F42000CFF -:102B70008F4401608F4501648F860120AFB2001041 -:102B8000AFB30014005E1025AFA200188F42010CF5 -:102B9000240700080040F80924C6001C1440FFE385 -:102BA000000000008F820054022210232C4203E90F -:102BB0001440FFEE0000000032A200FF144000119C -:102BC0003C0500098F42037824420001AF4203789C -:102BD0008F4203788F8201208FAA002C8FA70034A8 -:102BE000AFA200108F8201243C04000124846120E4 -:102BF000AFA200148D46000034A507000C002B3B4B -:102C0000000000008F4202EC24420001AF4202ECBF -:102C10008F4202EC8F4200043042000150400029F4 -:102C2000361000403C02040002C210241040001381 -:102C30002404FFDF8F4202508F4302548F4401B4BB -:102C400014640006361000408F4202708F430274F5 -:102C50008F4401B8106400072402FFDF8F42025046 -:102C60008F4302548F4402708F450274100000128B -:102C70003A1000201000002B020280248F420250E4 -:102C80008F4302548F4501B414650006020480246A -:102C90008F4202708F4302748F4401B85064002148 -:102CA000361000408F4202508F4302548F4402700E -:102CB0008F4502743A100040AF4301B41000001970 -:102CC000AF4501B88F4200D4244300011000001129 -:102CD000284200338F4200043042000110400009B6 -:102CE0003C02040002C21024104000042402FFDF52 -:102CF000020280241000000B361000401000000972 -:102D0000361000608F4200D436100040244300018A -:102D1000284201F514400003AF4300D4AF4000D473 -:102D20003A100020AF9000442402FF7F0282A024CA -:102D30008FBF00508FBE004C8FB500488FB300444A -:102D40008FB200408FB1003C8FB0003803E0000824 -:102D500027BD005803E00008000000003C0200010D -:102D60008C426DA827BDFFB0AFBF0048AFBE004486 -:102D7000AFB50040AFB3003CAFB20038AFB10034E4 -:102D8000104000C7AFB000308F4200D02443000194 -:102D90002842000B144000DAAF4300D08F420004F9 -:102DA0003042000214400097AF4000D08F42000430 -:102DB0003C0300018C636D9834420002AF42000472 -:102DC00024020001146200033C020600100000020D -:102DD0003442300034421000AFA20020000018211D -:102DE0008F5E001827AA0020240200FF13C20002F1 -:102DF000AFAA002C27C300018C020228006090219A -:102E00001642000E001E38C08F42033C24420001CF -:102E1000AF42033C8F42033C8C0202283C04000179 -:102E20002484610C3C050009AFA00014AFA200107F -:102E30008FA600201000006D34A5050000F71021BA -:102E40008FA300208FA40024AC4304C0AC4404C46E -:102E50008F8300548F820054247003E802021023F1 -:102E60002C4203E91040001B0000982100E088215B -:102E7000263504C08F4401788F45017C022018213B -:102E8000240A0004AFAA0010AFB200148F48000C4F -:102E90000000102102F53021AFA800188F48010C66 -:102EA0002407000800A3282100A3482B008220212A -:102EB0000100F80900892021544000062413000174 -:102EC0008F820054020210232C4203E91440FFE9D0 -:102ED00000000000326200FF54400017AF5200189B -:102EE0008F42037824420001AF4203788F42037877 -:102EF0008F8201208FAA002CAFA200108F820124A4 -:102F00003C040001248461183C050009AFA20014B0 -:102F10008D4600001000003534A506008F420308DE -:102F20002413000124420001AF4203088F4203082A -:102F30001000001E326200FF8F8300548F82005405 -:102F4000247003E8020210232C4203E9104000160B -:102F5000000098213C150020241100108F42000C25 -:102F60008F4401608F4501648F860120AFB100104E -:102F7000AFB2001400551025AFA200188F42010C0B -:102F8000240700080040F80924C6001C1440FFE391 -:102F9000000000008F820054020210232C4203E93B -:102FA0001440FFEE00000000326200FF14400011E8 -:102FB000000000008F42037824420001AF420378F2 -:102FC0008F4203788F8201208FAA002CAFA20010BD -:102FD0008F8201243C040001248461203C05000907 -:102FE000AFA200148D46000034A507000C002B3B57 -:102FF00003C038218F4202EC24420001AF4202ECB0 -:103000008F4202EC8F420004304200011040001851 -:10301000240400018F4202508F4302548F4501B4B3 -:103020003C01000114650006A0246CF18F4202707F -:103030008F4302748F4401B8106400210000000027 -:103040008F4202508F4302543C04000190846CF084 -:103050008F4602708F47027438840001AF4301B479 -:10306000AF4701B83C01000110000025A0246CF01E -:103070008F4200D43C010001A0206CF024430001E9 -:10308000284200331440001EAF4300D43C0200012C -:1030900090426CF1AF4000D410000017384200019C -:1030A0008F42000430420001104000080000000080 -:1030B0000C00565A000020213C010001A0206CF1B8 -:1030C0003C0100011000000EA0206CF08F4200D4E3 -:1030D0003C010001A0206CF024430001284201F5CE -:1030E00014400007AF4300D43C02000190426CF151 -:1030F000AF4000D4004210263C010001A0226CF138 -:103100003C0300018C636D98240200021462000CE1 -:103110003C0300023C03000190636CF124020001B7 -:103120005462001F000020213C02000190426CF01C -:103130001443001B24040005100000192404000699 -:103140003C0200028C428FF4004310241040000B1C -:10315000240200013C03000190636CF154620010F2 -:10316000000020213C02000190426CF01443000C4E -:10317000240400031000000A240400043C0300019E -:1031800090636CF114620006000020213C020001F3 -:1031900090426CF024040001504400012404000219 -:1031A0000C00565A000000002402FF7F0282A02477 -:1031B0008FBF00488FBE00448FB500408FB3003CE6 -:1031C0008FB200388FB100348FB0003003E00008B8 -:1031D00027BD005003E00008000000003C02000191 -:1031E0008C426DA827BDFFB0AFBF0048AFBE004402 -:1031F000AFB50040AFB3003CAFB20038AFB1003460 -:10320000104000DEAFB000308F4200D03C0400011F -:103210008C846D98244300012842000BAF4400E8E1 -:10322000144000FEAF4300D08F4200043042000241 -:1032300014400095AF4000D08F4200043442000299 -:10324000AF42000424020001148200033C02060085 -:10325000100000023442300034421000AFA20020BF -:10326000000018218F5E001827AA0020240200FF0A -:1032700013C20002AFAA002C27C300018C0202284F -:10328000006090211642000E001E38C08F42033CA1 -:1032900024420001AF42033C8F42033C8C020228CF -:1032A0003C0400012484610C3C050009AFA000141B -:1032B000AFA200108FA600201000006D34A50500FD -:1032C00000F710218FA300208FA40024AC4304C07A -:1032D000AC4404C48F8300548F820054247003E8EC -:1032E000020210232C4203E91040001B0000982129 -:1032F00000E08821263504C08F4401788F45017C89 -:1033000002201821240A0004AFAA0010AFB2001452 -:103310008F48000C0000102102F53021AFA80018E2 -:103320008F48010C2407000800A3282100A3482B84 -:10333000008220210100F809008920215440000664 -:10334000241300018F820054020210232C4203E94F -:103350001440FFE900000000326200FF54400017F3 -:10336000AF5200188F42037824420001AF42037825 -:103370008F4203788F8201208FAA002CAFA2001009 -:103380008F8201243C040001248461183C0500095B -:10339000AFA200148D4600001000003534A50600D1 -:1033A0008F4203082413000124420001AF420308A6 -:1033B0008F4203081000001E326200FF8F8300540A -:1033C0008F820054247003E8020210232C4203E988 -:1033D00010400016000098213C1500202411001018 -:1033E0008F42000C8F4401608F4501648F8601205D -:1033F000AFB10010AFB2001400551025AFA20018F5 -:103400008F42010C240700080040F80924C6001C64 -:103410001440FFE3000000008F82005402021023DA -:103420002C4203E91440FFEE00000000326200FF6E -:1034300014400011000000008F4203782442000174 -:10344000AF4203788F4203788F8201208FAA002C2D -:10345000AFA200108F8201243C040001248461206B -:103460003C050009AFA200148D46000034A50700FA -:103470000C002B3B03C038218F4202EC2442000198 -:10348000AF4202EC8F4202EC8F4200043042000156 -:10349000104000333C02040002C210241040001708 -:1034A00000000000934205C08F4402508F45025433 -:1034B0008F4301B43442002014A30006A34205C088 -:1034C0008F4202708F4302748F4401B81064000869 -:1034D000000000008F4202508F430254934405C005 -:1034E0008F4602708F470274100000163884004027 -:1034F000934205C010000048304200BF934205C00F -:103500008F4402508F4502548F4301B4304200BFB4 -:1035100014A30006A34205C08F4202708F430274B9 -:103520008F4401B81064000B000000008F4202506D -:103530008F430254934405C08F4602708F47027434 -:1035400038840020AF4301B4AF4701B81000003306 -:10355000A34405C0934205C01000002F3442002050 -:10356000934205C08F4300D434420020A34205C0DB -:103570002462000110000023286300338F4200E41E -:103580008F4300E024420001AF4200E40043102AD0 -:1035900014400006240300018F4200E81443000297 -:1035A000AF4000E424030004AF4300E88F4200046E -:1035B000304200011040000D3C02040002C2102401 -:1035C0001040000700000000934205C03442004054 -:1035D000A34205C0934205C01000000F304200DF37 -:1035E000934205C01000000C34420060934205C0B5 -:1035F0008F4300D434420020A34205C0246200015E -:10360000286300FB14600005AF4200D4934205C05C -:10361000AF4000D438420040A34205C0934205C0E9 -:103620008F4300E83042007FA34205C0240200011E -:103630001462000500000000934405C0000421024C -:1036400010000003348400F0934405C03484000F5C -:103650000C005640000000002402FF7F0282A024DC -:103660008FBF00488FBE00448FB500408FB3003C31 -:103670008FB200388FB100348FB0003003E0000803 -:1036800027BD005003E000080000000027BDFFB088 -:10369000274401C026E30028246504000065102BA0 -:1036A000AFBF0048AFBE0044AFB50040AFB3003C71 -:1036B000AFB20038AFB1003410400007AFB00030F7 -:1036C0008C820000AC620000246300040065102BB3 -:1036D0001440FFFB248400048C020080AEE200440E -:1036E0008C0200C0AEE200408C020084AEE20030EA -:1036F0008C020084AEE2023C8C020088AEE2024002 -:103700008C02008CAEE202448C020090AEE20248D1 -:103710008C020094AEE2024C8C020098AEE20250A1 -:103720008C02009CAEE202548C0200A0AEE2025871 -:103730008C0200A4AEE2025C8C0200A8AEE2026041 -:103740008C0200ACAEE202648C0200B0AEE2026811 -:103750008C0200B4AEE2026C8C0200B8AEE20270E1 -:103760008C0200BC24040001AEE20274AEE000341E -:1037700000041080005710218EE300348C42023C7C -:1037800024840001006218212C82000FAEE3003473 -:103790001440FFF8000410808C0200CCAEE2004818 -:1037A0008C0200D0AEE2004C8C0200E0AEE201F8E8 -:1037B0008C0200E4AEE201FC8C0200E8AEE2020002 -:1037C0008C0200ECAEE202048C0200F0AEE20208D1 -:1037D0008EE400C08EE500C48C0200FC0045102B76 -:1037E0001040000B000000008EE200C08EE300C419 -:1037F0002404000124050000006518210065302B19 -:103800000044102100461021AEE200C0AEE300C427 -:103810008C0200FC8EE400C08EE500C42408FFFF8B -:1038200024090000004018210000102100882024F5 -:1038300000A928240082202500A32825AEE400C08A -:10384000AEE500C48EE400D08EE500D48C0200F416 -:103850000045102B1040000B000000008EE200D04D -:103860008EE300D424040001240500000065182123 -:103870000065302B0044102100461021AEE200D03C -:10388000AEE300D48C0200F48EE400D08EE500D4C8 -:1038900000401821000010210088202400A92824BD -:1038A0000082202500A32825AEE400D0AEE500D498 -:1038B0008EE400C88EE500CC8C0200F80045102B89 -:1038C0001040000B000000008EE200C88EE300CC28 -:1038D0002404000124050000006518210065302B38 -:1038E0000044102100461021AEE200C8AEE300CC37 -:1038F0008C0200F88EE400C88EE500CC0040182150 -:10390000000010210088202400A9282400822025FE -:1039100000A3282524020008AEE400C8AEE500CCD0 -:10392000AFA20010AFA000148F42000C8C0402085C -:103930008C05020CAFA200188F42010C26E600286D -:103940000040F80924070400104000F03C02040085 -:10395000AFA20020934205C6104000890000182144 -:103960008F5E001827AA0020240200FF13C2000265 -:10397000AFAA002C27C300018C020228006090210E -:103980001642000E001E38C08F42033C2442000144 -:10399000AF42033C8F42033C8C0202283C040001EE -:1039A0002484610C3C050009AFA00014AFA20010F4 -:1039B0008FA600201000006B34A5050000F7102131 -:1039C0008FA300208FA40024AC4304C0AC4404C4E3 -:1039D0008F8300548F820054247003E80202102366 -:1039E0002C4203E91040001B0000982100E08821D0 -:1039F000263504C08F4401788F45017C02201821B0 -:103A0000240A0004AFAA0010AFB200148F48000CC3 -:103A10000000102102F53021AFA800188F48010CDA -:103A20002407000800A3282100A3482B008220219E -:103A30000100F809008920215440000624130001E8 -:103A40008F820054020210232C4203E91440FFE944 -:103A500000000000326200FF54400017AF5200180F -:103A60008F42037824420001AF4203788F420378EB -:103A70008F8201208FAA002CAFA200108F82012418 -:103A80003C040001248461183C050009AFA2001425 -:103A90008D4600001000003334A506008F42030855 -:103AA0002413000124420001AF4203088F4203089F -:103AB0001000001C326200FF8F8300548F8200547C -:103AC000247003E8020210232C4203E91040001482 -:103AD00000009821241100108F42000C8F440160D7 -:103AE0008F4501648F860120AFB10010AFB2001482 -:103AF000AFA200188F42010C240700080040F8090B -:103B000024C6001C1440FFE5000000008F82005412 -:103B1000020210232C4203E91440FFEF00000000D2 -:103B2000326200FF54400012240200018F420378E9 -:103B300024420001AF4203788F4203788F82012034 -:103B40008FAA002CAFA200108F8201243C04000138 -:103B5000248461203C050009AFA200148D460000BA -:103B600034A507000C002B3B03C0382100001021B6 -:103B70001440005B240200011000006500000000FA -:103B80008F510018240200FF122200020000802141 -:103B9000263000018C0202281602000E001130C0EF -:103BA0008F42033C24420001AF42033C8F42033C5E -:103BB0008C0202283C040001248460F43C050009C6 -:103BC000AFA00014AFA200108FA600201000003F8D -:103BD00034A5010000D710218FA300208FA400245A -:103BE000AC4304C0AC4404C400C018218F44017825 -:103BF0008F45017C0000102124070004AFA70010AE -:103C0000AFB000148F48000C24C604C002E6302177 -:103C1000AFA800188F48010C2407000800A3282132 -:103C200000A3482B008220210100F80900892021EF -:103C30001440000B240700088F820120AFA200105F -:103C40008F8201243C040001248460FC3C050009AF -:103C5000AFA200148FA600201000001C34A50200A3 -:103C60008F4401608F4501648F43000CAF500018F2 -:103C70008F86012024020010AFA20010AFB0001404 -:103C8000AFA300188F42010C0040F80924C6001CA5 -:103C900054400011240200018F42034024420001DD -:103CA000AF4203408F4203408F820120AFA2001039 -:103CB0008F8201243C040001248461043C05000936 -:103CC000AFA200148FA6002034A503000C002B3BEC -:103CD00002203821000010211040000D24020001B4 -:103CE0008F4202E8A34005C6AF4001B02442000164 -:103CF000AF4202E88F4202E88EE201502442000106 -:103D0000AEE20150100000038EE2015024020001D7 -:103D1000A34205C68FBF00488FBE00448FB5004048 -:103D20008FB3003C8FB200388FB100348FB00030B9 -:103D300003E0000827BD005027BDFFD8AFBF00201B -:103D40008F8200B030420004104000680000000084 -:103D50008F4301288F8201041462000500000000D7 -:103D60008F4301308F8200B4106200060000000013 -:103D70008F820104AF4201288F8200B41000005BE3 -:103D8000AF4201308F8200B03C030080004310241A -:103D90001040000D000000008F82011C3442000220 -:103DA000AF82011C8F8200B02403FFFB004310246C -:103DB000AF8200B08F82011C2403FFFD004310245A -:103DC0001000004AAF82011C8F4301288F8201043A -:103DD00014620005000000008F4301308F8200B4A0 -:103DE00010620010000000008F820104AF42012821 -:103DF0008F8200B48F430128AF420130AFA300107F -:103E00008F4201303C04000124846144AFA20014BD -:103E10008F86011C8F8700B03C0500051000003123 -:103E200034A509008F420128AFA200108F42013053 -:103E30003C04000124846150AFA200148F86011C51 -:103E40008F8700B03C0500050C002B3B34A510000B -:103E50008F82011C34420002AF82011C8F83010457 -:103E60008F8200B034420001AF8200B0240200080B -:103E7000AF830104AFA20010AFA000148F42000C6A -:103E80008C0402088C05020CAFA200188F42010CB2 -:103E900026E600280040F809240704008F82011C50 -:103EA0002403FFFD00431024AF82011C8EE201DCDD -:103EB00024420001AEE201DC8EE201DC8F420128E7 -:103EC000AFA200108F4201303C0400012484615CE9 -:103ED000AFA200148F86011C8F8700B03C0500053F -:103EE00034A511000C002B3B000000008F8200A0C5 -:103EF0003042000410400069000000008F43012C94 -:103F00008F82012414620005000000008F430134F9 -:103F10008F8200A410620006000000008F8201243E -:103F2000AF42012C8F8200A41000005CAF4201342C -:103F30008F8200A03C030080004310241040000D3D -:103F4000000000008F82011C34420002AF82011C7D -:103F50008F8200A02403FFFB00431024AF8200A047 -:103F60008F82011C2403FFFD004310241000004B2E -:103F7000AF82011C8F43012C8F8201241462000543 -:103F8000000000008F4301348F8200A410620010F3 -:103F9000000000008F820124AF42012C8F8200A418 -:103FA0008F43012CAF420134AFA300108F42013484 -:103FB0003C04000124846168AFA200148F86011CB8 -:103FC0008F8700A03C0500051000003234A51200C8 -:103FD0008F42012CAFA200108F4201343C0400013B -:103FE00024846174AFA200148F86011C8F8700A007 -:103FF0003C0500050C002B3B34A513008F82011CEF -:1040000034420002AF82011C8F8301248F8200A002 -:1040100034420001AF8200A024020080AF8301245B -:10402000AFA20010AFA000148F4200148C0402084D -:104030008C05020CAFA200188F4201083C0600015B -:1040400024C66ED80040F809240700048F82011CA2 -:104050002403FFFD00431024AF82011C8EE201DC2B -:1040600024420001AEE201DC8EE201DC8F42012C31 -:10407000AFA200108F4201343C040001248461800F -:10408000AFA200148F86011C8F8700A03C0500059D -:1040900034A514000C002B3B000000008FBF002053 -:1040A00003E0000827BD00283C0810002407000199 -:1040B0003C0600803C0501008F82007000481024FF -:1040C0001040FFFD000000008F82005424420005D4 -:1040D000AF8200788C040234108000160000182192 -:1040E0003C020001005710218C4240E824420005A8 -:1040F0003C01000100370821AC2240E83C020001ED -:10410000005710218C4240E80044102B1440000955 -:10411000000000003C0300803C0100010037082142 -:10412000AC2040E83C010001003708211000000BE2 -:10413000A02740F03C02000100571021904240F0BF -:1041400054400006006618253C020001005710216B -:10415000904240F154400001006618258C04023062 -:1041600010800013000000003C02000100571021E5 -:104170008C4240EC244200053C010001003708213C -:10418000AC2240EC3C020001005710218C4240EC74 -:104190000044102B14400006000000003C01000108 -:1041A00000370821AC2040EC1000000600651825FF -:1041B0003C02000100571021904240F2544000019F -:1041C000006518251060FFBC000000008F42000051 -:1041D0001040000700000000AF80004C8F82004CB0 -:1041E0001040FFFD0000000010000005000000006E -:1041F000AF8000488F8200481040FFFD00000000A3 -:104200008F82006000431025AF8200608F42000063 -:1042100010400003000000001000FFA7AF80004C1A -:104220001000FFA5AF80004803E000080000000078 -:1042300000000000000000000000000027BDFFE0BB -:10424000AFBF00188F86006430C200041040002504 -:10425000240400048C020114AF420020AF840064E7 -:104260008F4202FC24420001AF4202FC8F4202FC5A -:104270008F820064304200041440000500000000FA -:104280008C0301148F4200201462FFF20000000032 -:104290008F420000104000078F43003CAF80004C6D -:1042A0008F82004C1040FFFD000000001000000550 -:1042B00000000000AF8000488F8200481040FFFDE2 -:1042C000000000008F82006000431025AF82006074 -:1042D0008F42000010400073000000001000006FCB -:1042E0000000000030C20008104000202404000834 -:1042F0008C02011CAF420048AF8400648F4202A8C8 -:1043000024420001AF4202A88F4202A88F820064BB -:104310003042000814400005000000008C03011C1E -:104320008F4200481462FFF2000000008F4200003C -:104330001040000700000000AF80004C8F82004C4E -:104340001040FFFD0000000010000005000000000C -:10435000AF8000488F8200481040FFFD0000000041 -:104360008F8200601000FFD93442020030C200206A -:1043700010400023240400208C02012CAF4200686E -:10438000AF8400648F4202D824420001AF4202D8B9 -:104390008F4202D88F820064304200201440000512 -:1043A00032C240008C03012C8F4200681462FFF27D -:1043B00032C24000144000023C02000102C2B0259B -:1043C0008F4200001040000700000000AF80004C4A -:1043D0008F82004C1040FFFD00000000100000051F -:1043E00000000000AF8000488F8200481040FFFDB1 -:1043F000000000008F8200601000FFB4344208000B -:1044000030C2001010400029240400108C02012446 -:10441000AF420058AF8400648F4202D424420001AE -:10442000AF4202D48F4202D48F8200643042001027 -:104430001440000532C220008C0301248F42005832 -:104440001462FFF232C220005040000136D68000D4 -:104450008F4200001040000700000000AF80004CB9 -:104460008F82004C1040FFFD00000000100000058E -:1044700000000000AF8000488F8200481040FFFD20 -:10448000000000008F82006034420100AF820060B3 -:104490008F42000010400003000000001000006C7C -:1044A000AF80004C1000006AAF80004830C20001AD -:1044B0001040000424020001AF8200641000006478 -:1044C0000000000030C200021440000B3C05000355 -:1044D0003C0400012484624434A505000000382116 -:1044E000AFA000100C002B3BAFA000142402FFC0B3 -:1044F00010000057AF8200648C05022C8C02010C66 -:1045000010A20048000510808C46030024A2000180 -:104510003045003F24020003AC05022C00061E02B9 -:1045200010620005240200101062001D30C20FFF4F -:1045300010000039000000008F4302A88F440000E3 -:1045400030C20FFFAF42004824630001AF4302A80E -:10455000108000078F4202A8AF80004C8F82004C71 -:104560001040FFFD000000001000000500000000EA -:10457000AF8000488F8200481040FFFD000000001F -:104580008F82006034420200AF8200608F420000E0 -:104590001040001F000000001000001B0000000081 -:1045A000AF42005832C220005040000136D6800091 -:1045B0008F4202D48F43000024420001AF4202D454 -:1045C000106000078F4202D4AF80004C8F82004CF5 -:1045D0001040FFFD0000000010000005000000007A -:1045E000AF8000488F8200481040FFFD00000000AF -:1045F0008F82006034420100AF8200608F42000071 -:10460000104000030000000010000006AF80004CC6 -:1046100010000004AF8000480C00219600C020214B -:10462000004028218C02010C14A200022402000286 -:10463000AF8200648F8200643042000214400004A4 -:10464000000000008C02010C14A2FFAC000000006E -:104650008FBF001803E0000827BD002003E000081A -:104660000000000027BDFFA0AFB000400080802107 -:10467000001016022442FFFF304300FF2C6200139B -:10468000AFBF0058AFBE0054AFB50050AFB3004C41 -:10469000AFB20048AFB10044104001F3AFA5003401 -:1046A000000310803C010001002208218C22628856 -:1046B00000400008000000000010130230440FFF0B -:1046C0002402000110820005240200021082000C66 -:1046D0002402FFFE100000243C0500038F43000469 -:1046E0003C0200018C426F04AF440200AF4402045C -:1046F0003C0400018C846E801000000934630001CA -:104700008F430004AF440200AF4402043C040001A4 -:104710008C846E80006218243C0200012442CA2866 -:104720000002110000021182AF4300043C030800A4 -:1047300000431025AC8200388F84005400041442DA -:1047400000041C820043102100041CC200431023FB -:1047500000041D020043102100041D4200431023E9 -:1047600010000009AF4202083C040001248462509A -:1047700034A510000200302100003821AFA0001045 -:104780000C002B3BAFA000148F4202A0244200017A -:10479000AF4202A01000021F8F4202A027B00028E3 -:1047A00002002021240502100C002BBF2406000863 -:1047B0000C00251802002021100002160000000045 -:1047C0008FAA003427A40028000A1880254200017F -:1047D0003042003FAFA200348C6503008FAA003442 -:1047E000000210808C430300254200013042003F4C -:1047F000AFA20034AC02022CAFA500280C00251893 -:10480000AFA3002C100002030000000027B0002816 -:1048100002002021240502100C002BBF24060008F2 -:104820000C00265702002021100001FA00000000B1 -:104830008FAA003427A40028000A1880254200010E -:104840003042003FAFA200348C6503008FAA0034D1 -:10485000000210808C430300254200013042003FDB -:10486000AFA20034AC02022CAFA500280C002657E2 -:10487000AFA3002C100001E700000000001013029D -:1048800030430FFF240200011062000524020002E1 -:104890001062001E3C020002100000333C050003C1 -:1048A0003C03000202C310245440003702C3B02569 -:1048B0008F8202283C01000100370821AC2238D841 -:1048C0008F82022C3C01000100370821AC2238DC29 -:1048D0008F8202303C01000100370821AC2238E011 -:1048E0008F8202343C01000100370821AC2238E4F9 -:1048F0002402FFFFAF820228AF82022CAF82023077 -:10490000AF8202341000002002C3B02502C210247E -:10491000104000123C02FFFD3C0200010057102134 -:104920008C4238D8AF8202283C0200010057102187 -:104930008C4238DCAF82022C3C020001005710216F -:104940008C4238E0AF8202303C0200010057102157 -:104950008C4238E4AF8202343C02FFFD3442FFFF58 -:104960001000000902C2B0243C0400012484625CEF -:1049700034A511000200302100003821AFA0001042 -:104980000C002B3BAFA000148F4202CC244200014C -:10499000AF4202CC1000019F8F4202CC00101302E4 -:1049A00030450FFF2402000110A20005240200027E -:1049B00010A2000D3C0408FF100000143C05000389 -:1049C0003C0208FF3442FFFF8F8302203C040004B6 -:1049D00002C4B0250062182434630008AF830220AB -:1049E00010000012AF4502983484FFF73C03FFFB30 -:1049F0008F8202203463FFFF02C3B02400441024DE -:104A0000AF82022010000009AF4502983C0400016B -:104A10002484626834A5120002003021000038218D -:104A2000AFA000100C002B3BAFA000148F4202BCC3 -:104A300024420001AF4202BC100001768F4202BC4A -:104A400027840208240502000C002BBF240600085E -:104A500027440224240502000C002BBF2406000872 -:104A60008F4202C424420001AF4202C41000016917 -:104A70008F4202C40010130230430FFF24020001D2 -:104A8000106200112862000250400005240200025A -:104A90001060000700000000100000170000000078 -:104AA0001062000F00000000100000130000000062 -:104AB0008C060248000020210C005104240500044B -:104AC00010000007000000008C06024800002021B2 -:104AD0000C00510424050004100000100000000028 -:104AE0008C06024C000020210C005104240500011A -:104AF0001000000A000000003C04000124846274DD -:104B00003C05000334A513000200302100003821C9 -:104B1000AFA000100C002B3BAFA000148F4202C0CE -:104B200024420001AF4202C01000013A8F4202C08D -:104B30000C002426000000001000013600000000D8 -:104B400024020001A34205C5241001008F4401A8DE -:104B50008F4501ACAFB00010AFA000148F4200141D -:104B6000AFA200188F42010826E600280040F8098D -:104B7000240704001040FFF500000000100001258C -:104B8000000000003C03FFFF34637FFF8F42036897 -:104B90008F44036002C3B02400001821AF400058C6 -:104BA000AF40005CAF400060AF40006400441023A1 -:104BB000AF4203683C020900AF400360AFA200208F -:104BC0008F5E001827AA0020240200FF13C20002F3 -:104BD000AFAA003C27C300018C020228006090218C -:104BE0001642000E001E38C08F42033C24420001D2 -:104BF000AF42033C8F42033C8C0202283C0400017C -:104C00002484620C3C050009AFA00014AFA2001080 -:104C10008FA600201000006B34A5050000F71021BE -:104C20008FA300208FA40024AC4304C0AC4404C470 -:104C30008F8300548F820054247003E802021023F3 -:104C40002C4203E91040001B0000982100E088215D -:104C5000263504C08F4401788F45017C022018213D -:104C6000240A0004AFAA0010AFB200148F48000C51 -:104C70000000102102F53021AFA800188F48010C68 -:104C80002407000800A3282100A3482B008220212C -:104C90000100F80900892021544000062413000176 -:104CA0008F820054020210232C4203E91440FFE9D2 -:104CB00000000000326200FF54400017AF5200189D -:104CC0008F42037824420001AF4203788F42037879 -:104CD0008F8201208FAA003CAFA200108F82012496 -:104CE0003C040001248462183C050009AFA20014B2 -:104CF0008D4600001000003334A506008F420308E3 -:104D00002413000124420001AF4203088F4203082C -:104D10001000001C326200FF8F8300548F82005409 -:104D2000247003E8020210232C4203E9104000140F -:104D300000009821241100108F42000C8F44016064 -:104D40008F4501648F860120AFB10010AFB200140F -:104D5000AFA200188F42010C240700080040F80998 -:104D600024C6001C1440FFE5000000008F820054A0 -:104D7000020210232C4203E91440FFEF0000000060 -:104D8000326200FF14400011000000008F420378DF -:104D900024420001AF4203788F4203788F820120C2 -:104DA0008FAA003CAFA200108F8201243C040001B6 -:104DB000248462203C050009AFA200148D46000047 -:104DC00034A507000C002B3B03C038218F4202B0F2 -:104DD00024420001AF4202B08F4202B08F4202F87B -:104DE00024420001AF4202F81000008A8F4202F80C -:104DF0008C02025C27440224AF4201F08C02026064 -:104E000024050200240600080C002BBFAF4201F865 -:104E10008F82022030420008144000022402000168 -:104E200024020002AF4202988F4202AC24420001E9 -:104E3000AF4202AC100000778F4202AC3C0200FF90 -:104E40003442FFFF0202182432C2018014400006DF -:104E50003402FFFB0043102B14400003000000004D -:104E60001000006CAF4300BC3C040001248462804D -:104E70003C05000334A51500020030210000382154 -:104E8000AFA000100C002B3BAFA000143C020700A9 -:104E90003442100000101E0200621825AFA300204B -:104EA0008F510018240200FF12220002000080210E -:104EB000263000018C0202281602000E001130C0BC -:104EC0008F42033C24420001AF42033C8F42033C2B -:104ED0008C0202283C040001248461F43C05000992 -:104EE000AFA00014AFA200108FA600201000003F5A -:104EF00034A5010000D710218FA300208FA4002427 -:104F0000AC4304C0AC4404C400C018218F440178F1 -:104F10008F45017C0000102124070004AFA700107A -:104F2000AFB000148F48000C24C604C002E6302144 -:104F3000AFA800188F48010C2407000800A32821FF -:104F400000A3482B008220210100F80900892021BC -:104F50001440000B240700088F820120AFA200102C -:104F60008F8201243C040001248461FC3C0500097B -:104F7000AFA200148FA600201000001C34A5020070 -:104F80008F4401608F4501648F43000CAF500018BF -:104F90008F86012024020010AFA20010AFB00014D1 -:104FA000AFA300188F42010C0040F80924C6001C72 -:104FB00014400010000000008F4203402442000112 -:104FC000AF4203408F4203408F820120AFA2001006 -:104FD0008F8201243C040001248462043C05000902 -:104FE000AFA200148FA6002034A503000C002B3BB9 -:104FF000022038218F4202E024420001AF4202E049 -:105000008F4202E08F4202F024420001AF4202F0E0 -:105010008F4202F08FA200348FBF00588FBE005421 -:105020008FB500508FB3004C8FB200488FB1004451 -:105030008FB0004003E0000827BD006027BDFFF8E7 -:105040002408FFFF10A00014000048213C0AEDB81E -:10505000354A83209087000024840001000030211D -:1050600001071026304200011040000200081842DB -:10507000006A18260060402124C600012CC20008E6 -:105080001440FFF700073842252900010125102BA5 -:105090001440FFF0000000000100102103E00008B0 -:1050A00027BD000827BDFFB0AFBF0048AFBE00441A -:1050B000AFB50040AFB3003CAFB20038AFB1003481 -:1050C000AFB000308F870220AFA700248F87020087 -:1050D000AFA7002C8F8202203C0308FF3463FFFF40 -:1050E0000043102434420004AF8202208F82020069 -:1050F0003C03C0FF3463FFFF00431024344200042C -:10510000AF8202008F5303588F55035C8F5E03609C -:105110008F470364AFA700148F470368AFA7001C35 -:105120008F4202D0274401C024420001AF4202D086 -:105130008F5002D08F5102048F5202000C002BA816 -:1051400024050400AF530358AF55035CAF5E036002 -:105150008FA70014AF4703648FA7001CAF470368F5 -:10516000AF5002D0AF510204AF5202008C02025C79 -:1051700027440224AF4201F08C02026024050200A1 -:1051800024060008AF4201F8240200060C002BBFE1 -:10519000AF4201F43C023B9A3442CA00AF4201FCE8 -:1051A000240203E82404000224030001AF42029415 -:1051B000AF440290AF43029C8F820220304200082D -:1051C0001040000400000000AF43029810000003EC -:1051D00000003021AF440298000030213C03000160 -:1051E0000066182190636D000346102124C600015B -:1051F000A043022C2CC2000F1440FFF803461821D4 -:1052000024C600018F820040240400802405008011 -:105210000002170224420030A062022C0346102133 -:105220000C002BA8A040022C8FA7002430E2000421 -:1052300014400006000000008F8202203C0308FF9B -:105240003463FFFB00431024AF8202208FA7002CA1 -:1052500030E2000414400006000000008F820200CB -:105260003C03C0FF3463FFFB00431024AF82020005 -:105270008FBF00488FBE00448FB500408FB3003C05 -:105280008FB200388FB100348FB0003003E00008D7 -:1052900027BD00500000000000000000AF400104E6 -:1052A00024040001000410C002E21821248200013D -:1052B0003C01000100230821A42234D00040202119 -:1052C0002C8200801440FFF8000410C0240200016A -:1052D0003C01000100370821A42038D0AF42010072 -:1052E000AF800228AF80022CAF800230AF80023442 -:1052F00003E000080000000027BDFFE8AFBF001476 -:10530000AFB000108F420104284200051040002673 -:10531000008080213C0200018F430104344230D0E0 -:1053200002E22021000318C00062182102E31821C4 -:105330000083102B1040001500001021960700007C -:1053400024840006246600069482FFFC14470009AA -:10535000000028219483FFFE9602000214620006DA -:1053600000A0102194820000960300040043102640 -:105370002C45000100A010211440000924840008DD -:105380000086102B1440FFF000001021304200FF77 -:1053900014400030240200011000002E00001021F3 -:1053A0001000FFFA24020001020020210C00240C4E -:1053B000240500063042007F000218C002E31021DD -:1053C0003C01000100220821942230D01040FFF25D -:1053D00002E310213C06000100C2302194C630D007 -:1053E00010C0FFED3C080001350834D296070000DC -:1053F000000610C000572021008820219482000060 -:10540000144700090000282194830002960200023C -:105410001462000600A01021948200049603000488 -:10542000004310262C45000100A010211440000765 -:10543000000610C002E210213C06000100C230212B -:1054400094C634D014C0FFEB000610C010C0FFD2C9 -:10545000240200018FBF00148FB0001003E0000889 -:1054600027BD001803E000080000000027BDFFB0C2 -:1054700000801021AFB00030245000020200202133 -:1054800024050006AFB1003400408821AFBF0048BA -:10549000AFBE0044AFB50040AFB3003C0C00240CDD -:1054A000AFB200383047007F000710C002E2102181 -:1054B0003C05000100A2282194A530D050A0001C7A -:1054C00000A030213C090001352934D29628000281 -:1054D000000510C00057202100892021948200007F -:1054E0001448000900003021948300029602000253 -:1054F0001462000600C01021948200049603000488 -:10550000004310262C46000100C010211440000763 -:10551000000510C002E210213C05000100A2282174 -:1055200094A534D014A0FFEB000510C000A03021DA -:1055300010C00014000610C0005718213C010001E3 -:10554000002308218C2334D000571021AFA3001072 -:105550003C010001002208218C2234D43C040001CB -:1055600024846394AFA200148E2600008E270004CA -:105570003C0500040C002B3B34A504001000006324 -:105580003C0208008F45010010A00006000510C075 -:1055900002E210213C01000100220821942234D0B3 -:1055A000AF42010000A0302114C00011000628C045 -:1055B000000710C002E21021AFA700103C0100015B -:1055C00000220821942230D03C040001248463A0EE -:1055D000AFA200148E2600008E2700043C050004B4 -:1055E0000C002B3B34A50500100000483C020800CD -:1055F00000B718213C02000196040000344234D266 -:1056000000621821A46400008E020002000720C07E -:10561000AC62000202E410213C0300010062182188 -:10562000946330D002E510213C01000100220821E2 -:10563000A42334D002E410213C01000100220821FF -:10564000A42630D08F420104244200012842008069 -:105650001040000F3C0200028F4201043C04000194 -:10566000348430D296030000000210C0005710218D -:1056700000441021A44300008E030002AC4300024A -:105680008F42010424420001AF4201043C020002A7 -:1056900002C2102410400011000721423C03000107 -:1056A000346338D824020003004410230002108021 -:1056B0000057202100832021005710210043102192 -:1056C00030E5001F8C4300002402000100A21004FA -:1056D000006218251000000CAC83000024020003B7 -:1056E0000044102300021080005C2821005C10217F -:1056F00030E4001F8C4302282402000100821004C1 -:1057000000621825ACA302283C02080034421000B5 -:1057100000001821AFA200208F5E001827AA0020E9 -:10572000240200FF13C20002AFAA002C27C300010D -:105730008C020228006090211642000E001E38C024 -:105740008F42033C24420001AF42033C8F42033CA2 -:105750008C0202283C0400012484635C3C0500099F -:10576000AFA00014AFA200108FA600201000006BA5 -:1057700034A5050000F710218FA300208FA400247A -:10578000AC4304C0AC4404C48F8300548F820054E3 -:10579000247003E8020210232C4203E91040001B8E -:1057A0000000982100E08821263504C08F4401784C -:1057B0008F45017C02201821240A0004AFAA0010A2 -:1057C000AFB200148F48000C0000102102F5302108 -:1057D000AFA800188F48010C2407000800A3282157 -:1057E00000A3482B008220210100F8090089202114 -:1057F00054400006241300018F820054020210233B -:105800002C4203E91440FFE900000000326200FF6F -:1058100054400017AF5200188F4203782442000111 -:10582000AF4203788F4203788F8201208FAA002C29 -:10583000AFA200108F8201243C040001248463681D -:105840003C050009AFA200148D4600001000003393 -:1058500034A506008F4203082413000124420001EE -:10586000AF4203088F4203081000001C326200FFA1 -:105870008F8300548F820054247003E802021023A7 -:105880002C4203E91040001400009821241100105C -:105890008F42000C8F4401608F4501648F86012088 -:1058A000AFB10010AFB20014AFA200188F42010CCC -:1058B000240700080040F80924C6001C1440FFE536 -:1058C000000000008F820054020210232C4203E9E2 -:1058D0001440FFEF00000000326200FF144000118E -:1058E000000000008F42037824420001AF42037899 -:1058F0008F4203788F8201208FAA002CAFA2001064 -:105900008F8201243C040001248463703C0500095B -:10591000AFA200148D46000034A507000C002B3BFD -:1059200003C038218F4202B424420001AF4202B4C6 -:105930008F4202B48F4202F424420001AF4202F4CB -:105940008F4202F48FBF00488FBE00448FB50040E5 -:105950008FB3003C8FB200388FB100348FB000306D -:1059600003E0000827BD005027BDFFA000801021E4 -:10597000AFB00040245000020200202124050006A0 -:10598000AFB1004400408821AFBF0058AFBE005403 -:10599000AFB50050AFB3004C0C00240CAFB20048C0 -:1059A0003048007F000810C002E210213C060001D0 -:1059B00000C2302194C630D010C0001C0000382135 -:1059C0003C0A0001354A34D296290002000610C074 -:1059D00000572021008A20219482000014490009E8 -:1059E000000028219483000296020002146200063F -:1059F00000A01021948200049603000400431026A6 -:105A00002C45000100A0102114400008000610C021 -:105A100000C0382102E210213C06000100C2302102 -:105A200094C634D014C0FFEA000610C014C00011A0 -:105A3000AFA70028000810C002E21021AFA8001094 -:105A40003C01000100220821942230D03C040001D6 -:105A5000248463ACAFA200148E2600008E270004BD -:105A60003C0500040C002B3B34A509001000007518 -:105A70003C02080010E0000C000610C002E21021F9 -:105A80003C03000100621821946334D0000710C069 -:105A900002E210213C01000100220821A42334D09D -:105AA0001000000B3C04000102E210213C03000145 -:105AB00000621821946334D0000810C002E2102163 -:105AC0003C01000100220821A42330D03C04000145 -:105AD000348430D08F430100000610C002E2102150 -:105AE0003C01000100220821A42334D08F4201048C -:105AF00002E438210000282118400029AF460100A7 -:105B000024E6000694C3FFFC96020000146200091C -:105B10000000202194C3FFFE9602000214620006DA -:105B20000080102194C20000960300040043102658 -:105B30002C440001008010215040001424A50001D5 -:105B40008F4201042442FFFF00A2102A1040000BE4 -:105B500024E40004948200068C830008A482FFFEE3 -:105B6000AC8300008F42010424A500012442FFFF02 -:105B700000A2102A1440FFF7248400088F42010479 -:105B80002442FFFF10000006AF4201048F420104CF -:105B900024C6000800A2102A1440FFDA24E70008F7 -:105BA000000810C002E210213C010001002208217F -:105BB000942230D0144000233C0208003C02000232 -:105BC00002C2102410400012000821423C030001D0 -:105BD000346338D8240200030044102300021080EC -:105BE000005720210083202100571021004310215D -:105BF0003105001F240300018C42000000A318049B -:105C000000031827004310241000000DAC82000090 -:105C1000240200030044102300021080005C2821AD -:105C2000005C10213104001F240300018C42022873 -:105C3000008318040003182700431024ACA2022894 -:105C40003C0208003442200000001821AFA20020CE -:105C50008F5E001827AB0020240200FF13C2000251 -:105C6000AFAB003427C300018C02022800609021F2 -:105C70001642000E001E38C08F42033C2442000131 -:105C8000AF42033C8F42033C8C0202283C040001DB -:105C90002484635C3C050009AFA00014AFA200108F -:105CA0008FA600201000006B34A5050000F710211E -:105CB0008FA300208FA40024AC4304C0AC4404C4D0 -:105CC0008F8300548F820054247003E80202102353 -:105CD0002C4203E91040001B0000982100E08821BD -:105CE000263504C08F4401788F45017C022018219D -:105CF000240B0004AFAB0010AFB200148F48000CAF -:105D00000000102102F53021AFA800188F48010CC7 -:105D10002407000800A3282100A3482B008220218B -:105D20000100F809008920215440000624130001D5 -:105D30008F820054020210232C4203E91440FFE931 -:105D400000000000326200FF54400017AF520018FC -:105D50008F42037824420001AF4203788F420378D8 -:105D60008F8201208FAB0034AFA200108F820124FC -:105D70003C040001248463683C050009AFA20014C0 -:105D80008D6600001000003334A506008F42030822 -:105D90002413000124420001AF4203088F4203088C -:105DA0001000001C326200FF8F8300548F82005469 -:105DB000247003E8020210232C4203E9104000146F -:105DC00000009821241100108F42000C8F440160C4 -:105DD0008F4501648F860120AFB10010AFB200146F -:105DE000AFA200188F42010C240700080040F809F8 -:105DF00024C6001C1440FFE5000000008F82005400 -:105E0000020210232C4203E91440FFEF00000000BF -:105E1000326200FF14400011000000008F4203783E -:105E200024420001AF4203788F4203788F82012021 -:105E30008FAB0034AFA200108F8201243C0400011C -:105E4000248463703C050009AFA200148D66000035 -:105E500034A507000C002B3B03C038218F4202B849 -:105E600024420001AF4202B88F4202B88F4202F4CE -:105E700024420001AF4202F48F4202F48FBF005867 -:105E80008FBE00548FB500508FB3004C8FB20048C6 -:105E90008FB100448FB0004003E0000827BD0060D0 -:105EA00000000000000000000000000027BDFFE02F -:105EB00027644000AFBF00180C002BA82405100079 -:105EC0003C03000134632CC03C04000134842EC820 -:105ED00024020020AF82011C02E31021AF800100E8 -:105EE000AF800104AF800108AF800110AF800114C2 -:105EF000AF800118AF800120AF800124AF8001285E -:105F0000AF800130AF800134AF800138AF4200EC88 -:105F100002E31021AF4200F002E41021AF4200F48E -:105F200002E41021AF4200F83C02000100571021AA -:105F3000904240F41440001C3C0500018F82011C7B -:105F40003C040001248464703C05000134420001DB -:105F5000AF82011CAFA00010AFA000148F86011CFF -:105F600034A501000C002B3B000038218C020218E4 -:105F70003042004010400014000000008F82011CDD -:105F80003C0400012484647C3C050001344200048C -:105F9000AF82011CAFA00010AFA000148F86011CBF -:105FA0001000000734A502003C040001248464842E -:105FB000AFA00010AFA000148F86011C34A5030011 -:105FC0000C002B3B000038218FBF001803E00008B5 -:105FD00027BD00208FA900108F83012C8FAA0014E9 -:105FE0008FAB00181060000A27624FE014620002B5 -:105FF00024680020276848008F82012811020004CD -:10600000000000008F82012415020007000000003C -:106010008F4303340000102124630001AF43033495 -:10602000100000398F430334AC640000AC650004F9 -:10603000AC660008A467000EAC690018AC6A001CCE -:10604000AC6B0010AC620014AF8801208F4200FCE2 -:106050008F4400F42442FFFFAF4200FC8C8200001A -:10606000104900053042FF8F104000193122FF8F88 -:10607000104000183C0200018C8300042C620010C8 -:10608000104000133C02000124630001AC830004B3 -:106090008F4300F8344230C802E2102154620004F9 -:1060A000246200083C02000134422EC802E21021A2 -:1060B00014440015240200018F820128244200208C -:1060C000AF8201288F8201281000000F24020001F6 -:1060D0003C020001344230C802E210215482000424 -:1060E000248200083C02000134422EC802E2102142 -:1060F0000040202124020001AF4400F4AC890000DC -:10610000AC8200042402000103E00008000000004B -:1061100003E00008000000008FA900108F83010C2D -:106120008FAA00148FAB00181060000A276247E0A6 -:106130001462000224680020276840008F82010852 -:1061400011020004000000008F8201041502000704 -:10615000000000008F430338000010212463000179 -:10616000AF430338100000358F430338AC640000A0 -:10617000AC650004AC660008A467000EAC690018AA -:10618000AC6A001CAC6B0010AC620014AF8801005C -:106190008F4400EC8C820000304200061040001951 -:1061A00031220006104000183C0200018C830004DC -:1061B0002C620010104000133C0200012463000117 -:1061C000AC8300048F4300F034422EC002E2102161 -:1061D00054620004246200083C02000134422CC0D6 -:1061E00002E2102114440015240200018F820108EC -:1061F00024420020AF8201088F8201081000000FA6 -:10620000240200013C02000134422EC002E21021AF -:1062100054820004248200083C02000134422CC055 -:1062200002E210210040202124020001AF4400ECD2 -:10623000AC890000AC8200042402000103E00008E5 -:106240000000000003E000080000000027BDFFD8A8 -:106250003C0400012484648C3C050001AFBF002491 -:10626000AFB20020AFB1001CAFB000188F90010496 -:106270008F9100B08F92011C34A525008F82010000 -:106280000240302102203821AFA200100C002B3B2D -:10629000AFB000148E020008AFA200108E02000CF6 -:1062A0003C04000124846498AFA200148E06000010 -:1062B0008E0700043C0500010C002B3B34A5251083 -:1062C0008E020018AFA200108E02001C3C040001D8 -:1062D000248464A4AFA200148E0600108E0700145C -:1062E0003C0500010C002B3B34A525203C027F001F -:1062F000022210243C030800544300163C03020011 -:106300008F82009C3042FFFF144000123C030200C9 -:106310003C040001248464B03C05000234A5F03044 -:10632000000030210000382136420002AF82011CFB -:1063300036220001AF8200B0AF900104AF92011C81 -:10634000AFA000100C002B3BAFA0001410000024E5 -:106350000000000002C310241040000D022310248E -:106360001040000B36420002AF82011C36220001B1 -:10637000AF8200B0AF900104AF92011C8F42033096 -:1063800024420001AF420330100000158F42033059 -:106390003C040001248464B8240202A9AFA20010C6 -:1063A000AFA000148F8601443C07000124E764C0BD -:1063B0000C002B3B3405DEAD8F82011C3442000201 -:1063C000AF82011C8F82022034420004AF8202207F -:1063D0008F8201403C03000100431025AF82014041 -:1063E0008FBF00248FB200208FB1001C8FB0001827 -:1063F00003E0000827BD002827BDFFD83C040001AA -:10640000248464E83C050001AFBF0024AFB2002043 -:10641000AFB1001CAFB000188F9001248F9100A085 -:106420008F92011C34A526008F820120024030216A -:1064300002203821AFA200100C002B3BAFB000149B -:106440008E020008AFA200108E02000C3C04000176 -:10645000248464F4AFA200148E0600008E070004AA -:106460003C0500010C002B3B34A526108E020018C1 -:10647000AFA200108E02001C3C04000124846500C1 -:10648000AFA200148E0600108E0700143C05000118 -:106490000C002B3B34A526203C027F000222102456 -:1064A0003C030800544300163C0302008F8200ACFA -:1064B0003042FFFF144000123C0302003C04000184 -:1064C0002484650C3C05000134A5F0300000302127 -:1064D0000000382136420002AF82011C3622000142 -:1064E000AF8200A0AF900124AF92011CAFA00010BA -:1064F0000C002B3BAFA00014100000240000000093 -:1065000002C310241040000D022310241040000B81 -:1065100036420002AF82011C36220001AF8200A089 -:10652000AF900124AF92011C8F42032C2442000142 -:10653000AF42032C100000158F42032C3C040001D5 -:10654000248464B8240202E2AFA20010AFA00014B9 -:106550008F8601443C07000124E764C00C002B3BFC -:106560003405DEAD8F82011C34420002AF82011C73 -:106570008F82022034420004AF8202208F820140C9 -:106580003C03000100431025AF8201408FBF00246F -:106590008FB200208FB1001C8FB0001803E00008FC -:1065A00027BD00280000602100005021000030219C -:1065B0000000282100006821000048210000782107 -:1065C000000070218F8801248F8701041580002E20 -:1065D0008F8B011C11A00014316208008F820120F2 -:1065E00010460029000000003C0400018C846EE489 -:1065F0008CC200008CC30004AC820000AC83000499 -:106600008CC20008AC82000894C2000EA482000E66 -:106610008CC20010240C0001AC8200108CC200144B -:106620001000001224C600201040001700000000D7 -:106630003C0400018C846EE48D0200008D03000494 -:10664000AC820000AC8300048D020008AC8200081C -:106650009502000EA482000E8D0200102506002077 -:10666000AC8200108D020014240C000100C018211F -:10667000AC82001427624FE00043102B544000010D -:1066800027634800006030211540002F316201006F -:1066900011200014316280008F8201001045002A11 -:1066A000316201003C0400018C846EE08CA2000089 -:1066B0008CA30004AC820000AC8300048CA2000810 -:1066C000AC82000894A2000EA482000E8CA20010DE -:1066D000240A0001AC8200108CA2001410000012E9 -:1066E00024A5002010400018316201003C04000184 -:1066F0008C846EE08CE200008CE30004AC8200002D -:10670000AC8300048CE20008AC82000894E2000E26 -:10671000A482000E8CE2001024E50020AC82001060 -:106720008CE20014240A000100A01821AC8200149D -:10673000276247E00043102B5440000127634000CC -:1067400000602821316201005440001D31621000B8 -:1067500011A0000931A20800104000042502002009 -:106760008F8200A8A5E2000025020020AF8201244C -:106770008F8801240000682111800011316210000F -:106780003C0400018C846EE48C8200008C83000445 -:10679000AF820080AF8300848C820008AF8200A4A7 -:1067A0009482000EAF8200AC8C8200100000602149 -:1067B000AF8200A08C8D00108C8F0014316210000D -:1067C0001440FF82000000001120000F3122080059 -:1067D000104000043C0200028F8200B8A5C20000F5 -:1067E0003C020002012210241040000424E2002098 -:1067F0008F8200B4AF8200D424E20020AF82010473 -:106800008F870104000048211140FF700000000044 -:106810003C0400018C846EE08C8200008C830004B8 -:10682000AF820090AF8300948C820008AF8200B4E6 -:106830009482000EAF82009C8C82001000005021D8 -:10684000AF8200B08C8900101000FF608C8E0014A5 -:1068500003E0000800000000000060210000582153 -:106860000000302100002821000068210000502194 -:1068700000007821000070218F8801248F87010497 -:106880003C1801001580002E8F89011C11A00014F6 -:10689000312208008F8201201046002900000000EC -:1068A0003C0400018C846EE48CC200008CC30004A4 -:1068B000AC820000AC8300048CC20008AC820008EB -:1068C00094C2000EA482000E8CC20010240C0001A1 -:1068D000AC8200108CC200141000001224C60020EC -:1068E00010400017000000003C0400018C846EE49E -:1068F0008D0200008D030004AC820000AC83000414 -:106900008D020008AC8200089502000EA482000EE1 -:106910008D02001025060020AC8200108D020014AC -:10692000240C000100C01821AC82001427624FE043 -:106930000043102B544000012763480000603021C1 -:106940001560002F31220100114000143122800017 -:106950008F8201001045002A312201003C04000111 -:106960008C846EE08CA200008CA30004AC8200003A -:10697000AC8300048CA20008AC82000894A2000E34 -:10698000A482000E8CA20010240B0001AC82001027 -:106990008CA200141000001224A500201040001842 -:1069A000312201003C0400018C846EE08CE2000086 -:1069B0008CE30004AC820000AC8300048CE200088D -:1069C000AC82000894E2000EA482000E8CE200105B -:1069D00024E50020AC8200108CE20014240B00019E -:1069E00000A01821AC820014276247E00043102B5E -:1069F000544000012763400000602821312201003B -:106A00005440001D3122100011A0000931A20800DD -:106A100010400004250200208F8200A8A5E200009B -:106A200025020020AF8201248F8801240000682104 -:106A300011800011312210003C0400018C846EE4AE -:106A40008C8200008C830004AF820080AF830084BE -:106A50008C820008AF8200A49482000EAF8200AC4A -:106A60008C82001000006021AF8200A08C8D00108D -:106A70008C8F00143122100014400022000000000E -:106A80001140000F31420800104000043C02000297 -:106A90008F8200B8A5C200003C020002014210240F -:106AA0001040000424E200208F8200B4AF8200D4A2 -:106AB00024E20020AF8201048F87010400005021EE -:106AC00011600010000000003C0400018C846EE0A6 -:106AD0008C8200008C830004AF820090AF8300940E -:106AE0008C820008AF8200B49482000EAF82009CBA -:106AF0008C82001000005821AF8200B08C8A0010F8 -:106B00008C8E00148F8200703C0310000043102410 -:106B10001040FF5C000000008F82005424420005FA -:106B2000AF8200788C040234108000160000182117 -:106B30003C020001005710218C4240E8244200052D -:106B40003C01000100370821AC2240E83C02000172 -:106B5000005710218C4240E80044102B14400009DB -:106B6000240200013C0300803C01000100370821A1 -:106B7000AC2040E83C010001003708211000000C67 -:106B8000A02240F03C02000100571021904240F04A -:106B9000144000063C0200803C0200010057102116 -:106BA000904240F1104000023C0200800062182533 -:106BB0008C04023010800013000000003C02000131 -:106BC000005710218C4240EC244200053C0100019A -:106BD00000370821AC2240EC3C0200010057102194 -:106BE0008C4240EC0044102B1440000600000000D2 -:106BF0003C01000100370821AC2040EC10000006E9 -:106C0000007818253C02000100571021904240F204 -:106C100054400001007818251060FF1A00000000A1 -:106C20008F4200001040000700000000AF80004CC1 -:106C30008F82004C1040FFFD000000001000000596 -:106C400000000000AF8000488F8200481040FFFD28 -:106C5000000000008F82006000431025AF820060BA -:106C60008F42000010400003000000001000FF05EC -:106C7000AF80004C1000FF03AF80004803E0000825 -:106C80000000000000000000000000003C020001C5 -:106C90008C426D2827BDFFE8AFBF001414400012DE -:106CA000AFB000103C10000126106F9002002021B0 -:106CB0000C002BA82405200026021FE03C01000147 -:106CC000AC226EEC3C010001AC226EE8AC0202503A -:106CD00024022000AC100254AC020258240200012D -:106CE0003C010001AC226D288FBF00148FB0001052 -:106CF00003E0000827BD00183C0900018D296EEC57 -:106D00008C8200008FA300108FA80014AD22000019 -:106D10008C820004AD250008AD2200048F8200544F -:106D2000AD260010AD270014AD230018AD28001CBF -:106D3000AD22000C2529FFE03C02000124426F90A7 -:106D40000122102B10400003000000003C0900014C -:106D50008D296EE83C0200018C426D10AD220000CE -:106D60003C0200018C426D103C010001AC296EEC2C -:106D7000AD220004AC09025003E00008000000004E -:106D800027BDFFD0AFB000103C1000018E106EEC9C -:106D90003C0200018C426D10AFB1001400808821CC -:106DA000AFBE00248FBE00408FA40048AFB20018D1 -:106DB00000A09021AFBF0028AFB50020AFB3001CEA -:106DC000AE0200003C0200018C426D1000C0982110 -:106DD00000E0A82110800006AE020004260500088D -:106DE0000C002BB324060018100000052610FFE04D -:106DF000260400080C002BA8240500182610FFE02C -:106E00003C03000124636F900203102B1040000329 -:106E1000000000003C1000018E106EE88E22000081 -:106E2000AE0200008E220004AE120008AE02000482 -:106E30008F820054AE130010AE150014AE1E001861 -:106E40008FA80044AE08001CAE02000C2610FFE024 -:106E50000203102B10400003000000003C10000152 -:106E60008E106EE83C0200018C426D10AE020000F4 -:106E70003C0200018C426D103C010001AC306EEC14 -:106E8000AE020004AC1002508FBF00288FBE002459 -:106E90008FB500208FB3001C8FB200188FB1001483 -:106EA0008FB0001003E0000827BD003000851821D6 -:106EB0000083102B1040000600000000AC80000092 -:106EC000248400040083102B5440FFFDAC8000009C -:106ED00003E000080000000000A6182100A3102B0A -:106EE00010400007000000008C820000ACA20000EF -:106EF00024A5000400A3102B1440FFFB24840004ED -:106F000003E0000800000000008618210083102B19 -:106F100010400007000000008CA20000AC820000BE -:106F2000248400040083102B1440FFFB24A50004DC -:106F300003E00008000000000006308000861821F1 -:106F40000083102B1040000600000000AC850000FC -:106F5000248400040083102B5440FFFDAC85000006 -:106F600003E00008000000000000000026E5002803 -:106F700000A03021274301C08F4D03588F47035C89 -:106F80008F4803608F4903648F4A03688F4B020464 -:106F90008F4C0200246404000064102B1040000891 -:106FA0003C0208FF8CC20000AC62000024630004B5 -:106FB0000064102B1440FFFB24C600043C0208FFB1 -:106FC0003442FFFF3C03C0FFAF4D0358AF47035CA3 -:106FD000AF480360AF490364AF4A0368AF4B020494 -:106FE000AF4C02008F8402203463FFFF8F860200C3 -:106FF000008210243442000400C3182434630004C7 -:10700000AF820220AF8302008CA20214AC02008483 -:107010008CA20218AC0200888CA2021CAC02008C6C -:107020008CA20220AC0200908CA20224AC0200943C -:107030008CA20228AC0200988CA2022CAC02009C0C -:107040008CA20230AC0200A08CA20234AC0200A4DC -:107050008CA20238AC0200A88CA2023CAC0200ACAC -:107060008CA20240AC0200B08CA20244AC0200B47C -:107070008CA20248AC0200B88CA2024CAC0200BC4C -:107080008CA2001CAC0200808CA20018AC0200C0D4 -:107090008CA20020AC0200CC8CA20024AC0200D058 -:1070A0008CA201D0AC0200E08CA201D4AC0200E4BE -:1070B0008CA201D8AC0200E88CA201DCAC0200EC8E -:1070C0008CA201E0AC0200F08CA200988CA3009C82 -:1070D000AC0300FC8CA200A88CA300ACAC0300F4B1 -:1070E0008CA200A08CA300A430840004AC0300F8A0 -:1070F0001480000730C200048F8202203C0308FF86 -:107100003463FFFB00431024AF82022030C200042E -:1071100014400006000000008F8202003C03C0FF04 -:107120003463FFFB00431024AF8202008F4202DC75 -:10713000A34005C524420001AF4202DC8F4202DCBD -:1071400003E000080000000027BDFFD8AFBF002407 -:10715000AFB000208F4300248F420020106200381F -:10716000000000008F4300208F4200240062202393 -:1071700004810003000000008F42004000822021B3 -:107180008F4300308F4200240043102B1440000531 -:10719000000000008F4300408F42002410000005D3 -:1071A000006210238F4200308F43002400431023DD -:1071B0002442FFFF00406021008C102A544000014F -:1071C000008060218F4A00248F4900408F480024AE -:1071D0008F4401808F4501848F4600248F4B001C13 -:1071E00024070001AFA7001000084100010018218A -:1071F000014C50212529FFFF01498024AFB0001424 -:107200008F4700140000102100063100AFA70018BE -:1072100000A3282100A3382B0082202100872021F1 -:107220008F420108016630210040F809000C390046 -:1072300054400001AF5000248F4300248F420020AF -:1072400014620018000000008F4200001040000788 -:1072500000000000AF80004C8F82004C1040FFFD0A -:10726000000000001000000500000000AF80004892 -:107270008F8200481040FFFD000000008F820060F8 -:107280002403FFEF00431024AF8200608F42000010 -:10729000104000030000000010000002AF80004C0E -:1072A000AF8000488FBF00248FB0002003E00008AB -:1072B00027BD002803E000080000000027BDFFC034 -:1072C00032C20020AFBF0038AFB30034AFB20030DD -:1072D000AFB1002C10400004AFB000288F5300283D -:1072E00010000002000000008F5300208F42003089 -:1072F000105300EB000211008F43001C006280213C -:107300008E0400008E050004961200088F42009043 -:107310009611000A3246FFFF0046102A104000175F -:10732000000000008F8200D88F4300980043102394 -:107330002442DCBEAF4200908F4200902842DCBF66 -:1073400010400005000000008F4200908F43014470 -:1073500000431021AF4200908F4200900046102A57 -:1073600010400006000000008F4203482442000144 -:10737000AF420348100000E18F4203488F8200FCB7 -:1073800014400006000000008F4203442442000124 -:10739000AF420344100000D98F420344934205C218 -:1073A0001040000B32C200081040000832220200D8 -:1073B000104000063C0340009602000EAF4300ACB4 -:1073C0000002140010000002AF4200B0AF4000AC59 -:1073D000322200041040007F3222080010400003D7 -:1073E0003247FFFF100000022402002024020004A4 -:1073F000AFA200108F420030AFA200148F420010E5 -:107400003C03000200431025AFA200188F460098ED -:107410008F4201080040F80900000000104000B74A -:10742000000000008F42009C8F4300940242102114 -:10743000AF42009CAE03000C8F4200AC104000082D -:107440003C0340008F42009400431025AFA200206F -:107450008F42009C8F4300B01000000400431025B1 -:107460008F420094AFA200208F42009CAFA2002464 -:107470008F8200FC8FA300208FA40024AC43000067 -:10748000AC44000424420008AF8200F08F42009C0C -:107490008F4402708F4502740040182100001021B3 -:1074A00000A3282100A3302B008220210086202168 -:1074B0003223006024020040AF440270AF450274E2 -:1074C000106200172C6200411040000524020020C9 -:1074D00010620008240200011000002600000000D5 -:1074E0002402006010620019240200011000002133 -:1074F000000000008F4202788F43027C2463000169 -:107500002C64000100441021AF420278AF43027C9A -:107510008F4202788F43027C100000162402000183 -:107520008F4202808F430284246300012C64000197 -:1075300000441021AF420280AF4302848F42028098 -:107540008F4302841000000B240200018F42028846 -:107550008F43028C246300012C640001004410213D -:10756000AF420288AF43028C8F4202888F43028C65 -:1075700024020001A34205C28F4200983244FFFF5B -:107580002406FFF88F45013C0044102124420007E7 -:107590000046102424840007AF4200948F420090DC -:1075A0008F43009400862024004410230065182B8C -:1075B00014600005AF4200908F4200948F43014455 -:1075C00000431023AF4200948F4200941000002328 -:1075D000AF40009C3247FFFF50E0002232C2002043 -:1075E000144000022402001024020002AFA2001086 -:1075F0008F420030AFA200148F420010AFA20018DB -:107600008F4600988F4201080040F80900000000F2 -:107610001040003A3245FFFF8F4200988F430090A0 -:107620008F46013C00451021AF4200988F42009CDC -:107630008F440098A34005C200651823AF43009013 -:10764000004510210086202B14800005AF42009CCD -:107650008F4200988F43014400431023AF420098AB -:1076600032C2002010400005000000008F42035885 -:107670002442FFFFAF4203588F4203588F4200302D -:107680008F430040244200012463FFFF0043102485 -:10769000AF4200308F420030145300180000000049 -:1076A0008F4200001040000700000000AF80004C37 -:1076B0008F82004C1040FFFD00000000100000050C -:1076C00000000000AF8000488F8200481040FFFD9E -:1076D000000000008F8200602403FFF700431024A5 -:1076E000AF8200608F4200001040000300000000E5 -:1076F00010000002AF80004CAF8000488FBF003800 -:107700008FB300348FB200308FB1002C8FB00028BF -:1077100003E0000827BD004003E00008000000006F -:1077200027BDFFD032C20020AFBF002CAFB200286F -:10773000AFB1002410400004AFB000208F520028E9 -:1077400010000002000000008F5200208F42003025 -:10775000105200B5000211008F43001C006280210E -:107760008E0400008E050004961100088F420090E0 -:107770009607000A3226FFFF0046102A1040001725 -:10778000000000008F8200D88F4300980043102330 -:107790002442DC46AF4200908F4200902842DC47F2 -:1077A00010400005000000008F4200908F4301440C -:1077B00000431021AF4200908F4200900046102AF3 -:1077C00010400006000000008F42034824420001E0 -:1077D000AF420348100000AB8F4203488F8600FC85 -:1077E00010C0000C000000008F8200F42403FFF89A -:1077F0000043102400461023000218C35860000103 -:10780000246301008F42008C0043102B14400006BB -:10781000000712C28F42034424420001AF420344D6 -:10782000100000988F420344934305C21060000F7C -:10783000304600018F4200103448040032C2000874 -:107840001040000830E20200104000063C034000F7 -:107850009602000EAF4300AC0002140010000004BA -:10786000AF4200B010000002AF4000AC8F480010E3 -:1078700030E20004104000453227FFFF8F4900AC82 -:107880001120000530C200FF144000062402004011 -:10789000100000042402000814400002240200200A -:1078A00024020004AFA200108F4300301120000416 -:1078B000AFA300148F4200B000621025AFA20014E5 -:1078C0003C02000201021025AFA200188F4600986A -:1078D0008F4201080040F8090000000010400069D4 -:1078E0003224FFFF8F42008C8F430094244200011A -:1078F000AF42008C24020001AE03000CA34205C27B -:107900008F4200982406FFF88F45013C0044102167 -:10791000244200070046102424840007AF4200944C -:107920008F4200908F43009400862024004410234F -:107930000065182B14600005AF4200908F42009440 -:107940008F43014400431023AF4200948F430094BF -:107950008F4201400043102B10400009000000003E -:107960008F43013C8F4400948F4200908F45013833 -:107970000064182300431023AF420090AF450094E9 -:107980008F4200941000001FAF42009810E0001DCD -:1079900030C200FF14400002240200102402000242 -:1079A000AFA200108F420030AFA80018AFA20014A1 -:1079B0008F4600988F4201080040F809000000003F -:1079C000104000303225FFFF8F4200988F44013C69 -:1079D00000451021AF4200988F4200908F430098DD -:1079E000A34005C2004510230064182B1460000555 -:1079F000AF4200908F4200988F4301440043102310 -:107A0000AF4200988F4200308F4300402442000173 -:107A10002463FFFF00431024AF4200308F42003048 -:107A200014520018000000008F42000010400007B0 -:107A300000000000AF80004C8F82004C1040FFFD22 -:107A4000000000001000000500000000AF800048AA -:107A50008F8200481040FFFD000000008F82006010 -:107A60002403FFF700431024AF8200608F42000020 -:107A7000104000030000000010000002AF80004C26 -:107A8000AF8000488FBF002C8FB200288FB1002438 -:107A90008FB0002003E0000827BD003003E000089D -:107AA0000000000027BDFFD83C02000134422EC078 -:107AB000AFBF00208F4300F08F84010802E2102145 -:107AC00054620004246200083C02000134422CC0CD -:107AD00002E2102100401821AF4300F0AC6000002A -:107AE0008F4200EC8C660004146200043C0200012A -:107AF000248200201000000FAF8201088F4300F0A5 -:107B000034422EC002E210215462000424620008B4 -:107B10003C02000134422CC002E210210040182136 -:107B20008C6200040002114000821021AF82010823 -:107B3000AC6000008C85001830A200361040006C4C -:107B400030A200018C82001C8F4300408F4400341F -:107B5000244200012463FFFF0043102400862021FB -:107B6000AF42002C30A2003014400006AF44003475 -:107B70008F4200348C03023C0043102B144000B4AD -:107B80000000000032C20010104000282407000846 -:107B90008F4401708F4501748F43002C8F48000C77 -:107BA0008F86012024020080AFA20010AFA3001432 -:107BB000AFA800188F42010C0040F80924C6001C31 -:107BC00014400011240200013C010001003708218B -:107BD000A02240F18F820124AFA200108F820128E1 -:107BE0003C040001248467C4AFA200148F46002C1B -:107BF0008F8701203C0500090C002B3B34A51100A8 -:107C000010000036000000008F4203008F43002C5C -:107C100024420001AF4203008F420300240200010E -:107C2000A34205C110000026AF4300388F44017005 -:107C30008F4501748F43002C8F48000C8F860120E4 -:107C400024020020AFA20010AFA30014AFA80018B8 -:107C50008F42010C0040F80924C6001C144000119A -:107C6000240200013C01000100370821A02240F05D -:107C70008F820124AFA200108F8201283C040001F2 -:107C8000248467B8AFA200148F46002C8F87012090 -:107C90003C0500090C002B3B34A509001000000F27 -:107CA000000000008F42030024420001AF420300A5 -:107CB0008F4203008F42002CA34005C1AF42003821 -:107CC0003C01000100370821A02040F13C010001E7 -:107CD00000370821A02040F0AF4000348F42031449 -:107CE00024420001AF420314100000598F420314D4 -:107CF0001040002230A270008C85001C8F420028AA -:107D000000A2202304810003000000008F420040F5 -:107D1000008220218F4203588F430000AF45002886 -:107D20000044102110600007AF420358AF80004CA0 -:107D30008F82004C1040FFFD000000001000000585 -:107D400000000000AF8000488F8200481040FFFD17 -:107D5000000000008F82006034420008AF820060A3 -:107D60008F420000104000030000000010000038A7 -:107D7000AF80004C10000036AF8000481040002F4C -:107D800030A210001040000C30A240008C83001C78 -:107D90008F420050006220230482000124840200EC -:107DA0008F42035C00441021AF42035C8F420368A2 -:107DB0001000001AAF4300501040000C32C2800087 -:107DC0008C83001C8F42007000622023048200011B -:107DD000248404008F42036400441021AF420364F2 -:107DE0008F4203681000000DAF4300701040000E7A -:107DF0003C0208008C83001C8F420060006220233C -:107E000004820001248401008F4203600044102199 -:107E1000AF4203608F420368AF430060004410210B -:107E2000AF4203683C02080002C210245040000820 -:107E300036940040100000060000000030A201004F -:107E400010400003000000000C002BD800000000D0 -:107E50008FBF002003E0000827BD002803E00008D2 -:107E60000000000027BDFFA8AFBF0050AFBE004C10 -:107E7000AFB50048AFB30044AFB20040AFB1003C73 -:107E8000AFB000388F91010826220020AF82010890 -:107E90008E3200180000A82132420024104001BA9E -:107EA0000000F0218E26001C8F43001C00061100EC -:107EB000006218218C70000C9604000C962D0016A0 -:107EC0009473000A2C8305DD388288702C420001EF -:107ED00000621825106000150000282132C2004001 -:107EE00010400015240208009603001414620012CA -:107EF0003402AAAA9603000E146200070000202193 -:107F00009603001024020300146200040080102174 -:107F1000960200122C4400010080102154400006FB -:107F200024050016100000040000000024020800D0 -:107F3000508200012405000E934205C3144000083E -:107F400000005821240B000132620180AF4500A8D7 -:107F5000AF5000A010400002AF4600A4A34B05C3E1 -:107F600010A0008502054021910200000000382188 -:107F70003042000F0002508032C200021040001256 -:107F8000010A1821326200021040001032C20001C2 -:107F900001002021948200002484000200E23821A4 -:107FA0000083102B1440FFFB30E2FFFF00071C0290 -:107FB0000062382100071C0230E2FFFF0062382116 -:107FC00000071027A502000A32C200011040006A13 -:107FD0003262000110400068000000008F4200A8DB -:107FE00010400065000000008F4200A08F4300A8F1 -:107FF00000431021904C0009318900FF392300060D -:108000000003182B392200110002102B00621824E3 -:108010001060000C3C0500068F4200A43C040001E7 -:10802000248467D4AFA200108F4200A034A546007C -:10803000012038210C002B3BAFA200141000004E91 -:108040000000000032C20004144000130000282188 -:10805000316200FF1440000400000000950200029D -:108060001000000D004A28239505000C9502000E13 -:108070009503001000A2282100A3282195030012D7 -:10808000910400099502000200A3282100A42821E0 -:10809000004A102300A2282102002021948200001F -:1080A0002484000200E238210088102B1440FFFBDA -:1080B00000071C0230E2FFFF0062382100071C02AB -:1080C00030E2FFFF0062382101A5282100051C02D3 -:1080D00030A2FFFF0062282100051C0230A2FFFF32 -:1080E0000062282100A728230005140200A22821ED -:1080F00030A5FFFF50A000013405FFFF316200FFF3 -:1081000014400008318300FF8F4300A08F4200A875 -:1081100000624021910200003042000F00025080B6 -:10812000318300FF2402000614620003010A1021BB -:10813000100000022444001024440006316200FFB5 -:1081400014400006000000009482000000A22821D4 -:1081500000051C0230A2FFFF00622821934205C3E4 -:10816000104000033262010050400003A48500006B -:1081700000052827A48500009622000E8F43009C4E -:108180000062182132A200FF10400007AF43009C9C -:108190003C02400002021025AFA200208F42009C4A -:1081A00010000003005E1025AFB000208F42009C3D -:1081B000AFA2002432620080104000103262010041 -:1081C0008F4200B424430001000210C00057102168 -:1081D000AF4300B48FA300208FA400243C01000112 -:1081E00000220821AC2338E83C01000100220821CC -:1081F000AC2438EC100000A532C20020104000640E -:10820000000000008F4200B424430001000210C0AF -:1082100000571021AF4300B48FA300208FA4002487 -:108220003C01000100220821AC2338E83C01000198 -:1082300000220821AC2438EC8F4200B410400051D9 -:10824000000038213C090001352938E83C08001FAE -:108250003508FFFF240BFFFF340AFFFF000710C0A3 -:1082600000571021004910218C4300008C44000469 -:10827000AFA30028AFA4002C8F8200FC8FA300289E -:108280008FA4002CAC430000AC440004244200083E -:10829000AF8200F08F42008C2442FFFFAF42008C7F -:1082A00097A2002E8F4402708F450274004018215F -:1082B0000000102100A3282100A3302B00822021E0 -:1082C00000862021AF440270AF4502748FA20028BF -:1082D0000048102490430000306300011460000B3C -:1082E000004020218F4202788F43027C24630001EA -:1082F0002C64000100441021AF420278AF43027C9D -:108300008F4202781000001A8F43027C8C8200009A -:10831000144B000E0000000094820004144A000B6D -:10832000000000008F4202888F43028C246300010A -:108330002C64000100441021AF420288AF43028C3C -:108340008F4202881000000A8F43028C8F42028005 -:108350008F430284246300012C6400010044102137 -:10836000AF420280AF4302848F4202808F43028477 -:108370008F4200B424E7000100E2102B1440FFB844 -:10838000000710C0A34005C31000003FAF4000B479 -:108390008F8200FC8FA300208FA40024AC43000038 -:1083A000AC44000424420008AF8200F08F42009CDD -:1083B0008F46008C8F4402708F4502740040182154 -:1083C0000000102124C6FFFFAF46008C00A3282127 -:1083D00000A3302B0082202100862021AF440270B0 -:1083E000AF45027492020000304200011440000CBC -:1083F0002402FFFF8F4202788F43027C2463000136 -:108400002C64000100441021AF420278AF43027C8B -:108410008F4202788F43027C1000001C32C2002081 -:108420008E0300001462000F3402FFFF9603000465 -:108430001462000C000000008F4202888F43028CFF -:10844000246300012C64000100441021AF42028823 -:10845000AF43028C8F4202888F43028C1000000BC6 -:1084600032C200208F4202808F43028424630001C5 -:108470002C64000100441021AF420280AF4302840B -:108480008F4202808F43028432C2002010400005D8 -:10849000AF40009C8F4203582442FFFFAF42035875 -:1084A0008F4203588E22001C8F430040244200015B -:1084B0002463FFFF00431024AF42002C32420060CF -:1084C0001440000832C200108F42003424420001E0 -:1084D000AF4200348C03023C0043102B14400102D5 -:1084E00032C2001010400018240700088F440170A9 -:1084F0008F4501748F43002C8F48000C8F8601201C -:1085000024020080AFA20010AFA30014AFA800188F -:108510008F42010C0040F80924C6001C104000479F -:10852000240200018F4203008F43002C24420001EB -:10853000AF4203008F42030024020001A34205C1A1 -:108540001000007CAF4300388F4401708F450174E8 -:108550008F43002C8F48000C8F86012024020020BE -:10856000AFA20010AFA30014AFA800188F42010CF7 -:108570000040F80924C6001C1040005724020001E6 -:10858000100000650000000032420012104000752B -:10859000324200019622000E8F43009C0062182197 -:1085A00032C2002010400005AF43009C8F420358A8 -:1085B0002442FFFFAF4203588F4203588E22001C13 -:1085C0008F430040244200012463FFFF0043102436 -:1085D000AF42002C324200101440000832C200109A -:1085E0008F42003424420001AF4200348C03023C2D -:1085F0000043102B144000BC32C200101040002871 -:10860000240700088F4401708F4501748F43002CAC -:108610008F48000C8F86012024020080AFA200103A -:10862000AFA30014AFA800188F42010C0040F80956 -:1086300024C6001C14400011240200013C0100016A -:1086400000370821A02240F18F820124AFA2001040 -:108650008F8201283C040001248467C4AFA2001467 -:108660008F46002C8F8701203C0500090C002B3B16 -:1086700034A5110010000036000000008F420300F6 -:108680008F43002C24420001AF4203008F420300BD -:1086900024020001A34205C110000026AF430038A8 -:1086A0008F4401708F4501748F43002C8F48000C5C -:1086B0008F86012024020020AFA20010AFA3001477 -:1086C000AFA800188F42010C0040F80924C6001C16 -:1086D00014400011240200013C0100010037082170 -:1086E000A02240F08F820124AFA200108F820128C7 -:1086F0003C040001248467B8AFA200148F46002C0C -:108700008F8701203C0500090C002B3B34A5090094 -:108710001000000F000000008F42030024420001FF -:10872000AF4203008F4203008F42002CA34005C1DB -:10873000AF4200383C01000100370821A02040F181 -:108740003C01000100370821A02040F0AF40003478 -:108750008F42031424420001AF4203141000006250 -:108760008F42031410400022324270008E25001CFC -:108770008F42002800A22023048100030000000093 -:108780008F420040008220218F4203588F43000017 -:10879000AF4500280044102110600007AF42035885 -:1087A000AF80004C8F82004C1040FFFD00000000A5 -:1087B0001000000500000000AF8000488F820048D4 -:1087C0001040FFFD000000008F820060344200086E -:1087D000AF8200608F4200001040000300000000E4 -:1087E00010000041AF80004C1000003FAF800048F7 -:1087F0001040002F324210001040000C3242400066 -:108800008E23001C8F42005000622023048200014E -:10881000248402008F42035C00441021AF42035CB9 -:108820008F4203681000001AAF4300501040000C44 -:1088300032C280008E23001C8F4200700062202311 -:1088400004820001248404008F4203640044102148 -:10885000AF4203648F4203681000000DAF43007005 -:108860001040000E3C0208008E23001C8F42006066 -:108870000062202304820001248401008F420360EF -:1088800000441021AF4203608F420368AF43006091 -:1088900000441021AF4203683C02080002C21024C9 -:1088A00050400011369400401000000F00000000FE -:1088B0003242004810400007241500018E22001C9F -:1088C0003C03FFFF0043F0243042FFFF1000FD7522 -:1088D000AE22001C324201001040000300000000E4 -:1088E0000C002BD8000000008FBF00508FBE004C42 -:1088F0008FB500488FB300448FB200408FB1003C69 -:108900008FB0003803E0000827BD005803E00008DE -:108910000000000000000000000000008F8300E461 -:108920008F8200E02404FFF8004410240062102627 -:108930000002102B0002102303E000080062102444 -:1089400003E000080000000027BDFFE0AFBF001CEF -:10895000AFB000188F8600C48F8400E08F8500E4DC -:108960002402FFF80082182410A3000927623FF8B0 -:1089700014A2000224A200082762300000408021D7 -:1089800016030005308200041040000400C02021BE -:1089900010000022000010218E0400008F42011CF4 -:1089A00014A20003000000008F420120AF42011416 -:1089B0008CA300008F420148008318230043102B32 -:1089C00010400003000000008F420148006218219F -:1089D00094A20006244200500062102B1440000FA5 -:1089E00000A01021AFA40010AFA300148CA60000BB -:1089F0008CA700043C0400010C002B3B24846894E9 -:108A00008F42020C24420001AF42020C8F42020C42 -:108A100000001021AF9000E8AF9000E48FBF001C71 -:108A20008FB0001803E0000827BD002003E0000815 -:108A3000000000008F8400E08F8800C48F8300E86E -:108A40002402FFF80082382400E320232C82100047 -:108A50005040000124841000000420C2008018212E -:108A60008F4402588F45025C0000102100A328218A -:108A700000A3302B0082202100862021AF44025821 -:108A8000AF45025C8F8300C88F4201480103202359 -:108A90000082102B14400004008018218F420148EE -:108AA00000822021008018218F4402508F450254FB -:108AB0000000102100A3282100A3302B00822021D8 -:108AC00000862021AF440250AF450254AF8800C851 -:108AD000AF8700E4AF8700E803E000080000000073 -:108AE00027BDFF30240A0001AFBF00C8AFBE00C4DD -:108AF000AFB500C0AFB300BCAFB200B8AFB100B407 -:108B0000AFB000B0A3A00097AFA00044AFAA005C34 -:108B1000934205C4A7A0008E1040000AA7A00086BB -:108B20008F4B00C4AFAB00648F4A00C0AFAA006C8B -:108B30008F4B00CCAFAB00748F4A00C810000129E6 -:108B4000AFAA007C8F4201140040F8090000000029 -:108B50000040302110C0034F000000008CC2000014 -:108B60008CC30004AFA20020AFA300248FAB00246D -:108B70008FAA00203162FFFF2442FFFCAFA2006CED -:108B80003C02000602C21024AFAB007C144000156A -:108B9000AFAA006491420000304200011040001171 -:108BA0002402FFFF8D430000146200043402FFFF23 -:108BB000954300041062000B000000000C0024BB71 -:108BC0008FA40064304200FF144000060000000043 -:108BD0008F4201180040F809000000001000032D2A -:108BE000000000008FA200243C03FFBF3463FFFF9E -:108BF000004310243C03FFFF0043182414600003CB -:108C0000AFA2002410000040000018213C020080A8 -:108C10000062102410400007000000008F42038C07 -:108C200024420001AF42038C8F42038C10000036B7 -:108C3000240300018F42021024420001AF420210BF -:108C40008F4202103C020001006210241040000616 -:108C50003C0200028F4201C424420001AF4201C421 -:108C60008F4201C43C020002006210241040000642 -:108C70003C0200048F42037C24420001AF42037C8B -:108C80008F42037C3C020004006210241040000666 -:108C90003C0200088F42038024420001AF4203805F -:108CA0008F4203803C02000800621024104000063E -:108CB0003C0200108F42038424420001AF4203842F -:108CC0008F4203843C020010006210241040000612 -:108CD0003C0200208F4201C024420001AF4201C08B -:108CE0008F4201C03C0200200062102410400006A8 -:108CF000240300018F42038824420001AF4203880D -:108D00008F420388240300018C0202608FAB006C49 -:108D1000004B102B10400014307000FF8F4201E810 -:108D200024420001AF4201E88F4201E88FAA007C93 -:108D30008F8200E0354A0100AFAA007CAFA200108C -:108D40008F8200E4241000013C040001248468A008 -:108D5000AFA200148FA600208FA700243C050007B7 -:108D60000C002B3B34A50800120000103C020080D0 -:108D700002C210241440000E32C204008FAB007CEB -:108D80003C020080344201000162102410400005C2 -:108D9000000000008F42020C24420001AF42020C8E -:108DA0008F42020C100002B08FA3006C32C204008C -:108DB00010400015340281008FAA00649543000C16 -:108DC000146200123C020100240B0200A7AB008ECB -:108DD0009542000E8D4300088D4400048D4500002F -:108DE0008FAA006C8FAB0064254AFFFCAFAA006C11 -:108DF000A7A20086AD63000CAD640008AD65000459 -:108E0000256B0004AFAB00643C02010002C21024D9 -:108E100010400004000000008FAA006C254A0004E6 -:108E2000AFAA006C8F4200BC5040000AAFA0007493 -:108E30008FAB006C004B102B50400006AFA00074AD -:108E40008F4200BC01621023AFA200748F4A00BCA5 -:108E5000AFAA006C8F4200808FAB006C004B102BD0 -:108E60001040005632C280001040005E240A000309 -:108E700032C210001040005BAFAA005C1000005826 -:108E8000240B00048F4203502403FFBF0283A0245D -:108E900024420001AF4203501000024F8F420350A2 -:108EA00002C2B0252402FFBF0282A0248F830128C2 -:108EB0003C040001248468D026620001AFA20014A3 -:108EC000AFA300108F8601208F8701243C05000787 -:108ED0000C002B3B34A522501000023F0000000084 -:108EE00002C2B0252402FFBF0282A0248F83012882 -:108EF0003C040001248468D024020002AFA20014C4 -:108F0000AFA300108F8601208F8701243C05000746 -:108F10000C002B3B34A524501000022F0000000051 -:108F20008EA200008EA300043C040001248468E8A3 -:108F3000AFB00010AFBE00148EA7001834A52800F3 -:108F40000C002B3B006030211000022300000000C9 -:108F5000A6B1000A8F8201243C040001248468F039 -:108F6000AFBE0014AFA200108F4600448F870120CF -:108F70003C0500070C002B3B34A530001000021606 -:108F800000000000A6B1000AA6B2000E8F820124E4 -:108F90003C040001248468FCAFBE0014AFA20010A2 -:108FA0008F4600448F8701203C0500070C002B3BB7 -:108FB00034A5320010000208000000008F42008437 -:108FC0008FAA006C004A102B144000073C020001DD -:108FD00002C210241040000400000000240B000214 -:108FE000AFAB005C8FAA006C1140021B27AB0020C6 -:108FF000AFAB00A43C0A001F354AFFFFAFAA009C9C -:109000008FAB005C240A0001556A0021240A00028B -:109010008F4300548F4200501062000B274B0054C6 -:109020008F5E00543403ECC0AFAB004C27C200018C -:10903000304201FFAFA20054001E11400043102136 -:109040001000006B02E2A8218F4200448FAA006C3E -:109050003C040001248468ACAFAA0014AFA2001045 -:109060008F4600548F4700503C0500070C002B3BF7 -:1090700034A513008F4303502402FFBF0282A024B3 -:1090800024630001AF430350100001D38F4203500B -:10909000156A001D000000008F4300748F420070AD -:1090A0001062000A274B00748F5E0074AFAB004C57 -:1090B00027C20001304203FFAFA20054001E11403E -:1090C00024426CC01000004A02E2A8218F420044F2 -:1090D0008FAA006C3C040001248468B83C0500079A -:1090E000AFAA0014AFA200108F4600748F47007023 -:1090F00034A51500240B00010C002B3BAFAB005C2A -:109100001000FFC3000000008F4300648F42006026 -:109110001062001A274A00648F5E00648FAB005C07 -:10912000AFAA004C27C20001304200FFAFA200549A -:10913000240200041562000E001E1140001E118062 -:1091400024420CC002E21021AFA200449442002A43 -:109150008FAA00448FAB006C004B102B10400024F2 -:1091600025550020240A000110000021A3AA009721 -:1091700024424CC01000001E02E2A8218F4200448D -:109180008FAB006C3C040001248468C4AFAB0014B6 -:10919000AFA200108F4600648F4700603C050007B7 -:1091A0000C002B3B34A518003C02000802C210241E -:1091B0001440FF34000000008F420370240A0001B5 -:1091C000AFAA005C24420001AF4203701000FF9080 -:1091D0008F42037027A3003600131040006218214D -:1091E000946200000044102110000020A4620000DE -:1091F0008FAB0064AEAB001893A2009710400072D2 -:10920000000098218FAA00448FA4006C8FA300A4B3 -:1092100025420020AFA2002825420008AFA200305E -:1092200025420010AFAA002CAFA200349542002ABC -:10923000A7A2003895420018A7A2003A9542001A4A -:10924000A7A2003C9542001CA7A2003E9462001811 -:1092500024630002008220231880FFDE26730001B1 -:109260002E6200041440FFF9000000008F4200FC51 -:109270002665000100A2102A1440002B24030001DF -:109280008F83012C10600023000000008F820124D6 -:109290000043102300022143588000012484004031 -:1092A0008F820128004310230002194358600001F7 -:1092B000246300400064102A544000010060202113 -:1092C000AF4400FC8F4200FC00A2102A10400011A5 -:1092D0002403000110000015306200FF8FAB006412 -:1092E00096070018AFAB00108E2200083C04000166 -:1092F000248468DC8C4300048C42000034A52400E4 -:10930000024030210C002B3BAFA300141000002BB7 -:10931000000000008F4203340000182124420001A5 -:10932000AF4203348F420334306200FF5040FEDC12 -:109330003C02080012600021000090218FB100A4BF -:10934000022080218E220008960700188FA6006454 -:109350008C4400008C450004240A0001AFAA0010D0 -:10936000AFBE00148F420008AFA200188F42010C5C -:109370000040F809000000001040FFD83C0500073D -:10938000960200188FAB00648FAA009C01625821DE -:10939000014B102B10400004AFAB00648F4201481A -:1093A00001625823AFAB0064261000022652000170 -:1093B0000253102B1440FFE3263100048FB0006CE1 -:1093C0001000003697B100388F4200FC24050002DF -:1093D00000A2102A1440001B240300018F83012CDB -:1093E00010600013000000008F820124004310234E -:1093F0000002214358800001248400408F8201280C -:109400000043102300021943586000012463004008 -:109410000064102A5440000100602021AF4400FC89 -:109420008F4200FC00A2102A144000062403000111 -:109430008F4203340000182124420001AF4203345C -:109440008F420334306200FF1040FEA53C0208004A -:1094500096B1000A8FB0006C3223FFFF0070102B12 -:1094600054400001006080218EA400008EA50004FD -:10947000240B0001AFAB0010AFBE00148F420008F8 -:109480008FA60064AFA200188F42010C0040F809BB -:10949000020038211040FEA23C05000796A3000EF2 -:1094A00097AA008E1140000700609021934205C4E6 -:1094B000144000040000000097AB0086006A1825E5 -:1094C000A6AB00168FAA007C3C02FFFF01421024CD -:1094D00010400003000A140234630400A6A2001422 -:1094E0008FAB006C560B0072A6A3000E3462000412 -:1094F000A6A2000E8FAA0074016A1021A6A2000A7B -:109500008F4300448F4401A08F4501A434028000A2 -:10951000AFA200108F42004402A030212407002097 -:10952000AFA200148F42000C0003194000604821D4 -:10953000AFA200188F42010C0000402100A9282191 -:1095400000A9182B008820210040F8090083202161 -:109550005040FE7FA6B2000E8F420368AFA0006CA1 -:10956000A34005C42442FFFFAF4203688FAB005CF9 -:10957000240A00018F420368156A0006240A0002CB -:109580008F42035C2442FFFFAF42035C1000000CDB -:109590008F42035C156A0006000000008F420364DE -:1095A0002442FFFFAF420364100000058F420364B2 -:1095B0008F4203602442FFFFAF4203608F4203608B -:1095C0008FAA00548FAB004CAD6A00008F4200445C -:1095D0008F4400888F430078244200010044102407 -:1095E00024630001AF420044AF4300788C02024084 -:1095F0000062182B14600075240700088F4401686E -:109600008F45016C8F4300448F48000C8F860120EA -:1096100024020040AFA20010AFA30014AFA80018AE -:109620008F42010C0040F80924C6001C14400011B0 -:10963000240B00013C01000100370821A02B40F25F -:109640008F820124AFA200108F8201283C04000108 -:109650002484688CAFA200148F4600448F870120B9 -:109660003C0500090C002B3B34A513001000000B37 -:10967000000000008F42030424420001AF420304B3 -:109680008F4203048F420044AF42007C3C01000142 -:1096900000370821A02040F2AF4000788F42031825 -:1096A00024420001AF420318100000488F42031803 -:1096B000A6B0000A8F4300448F4401A08F4501A447 -:1096C00034028000AFA200108F42004402A030217B -:1096D00024070020AFA200148F42000C00031940A1 -:1096E00000604821AFA200188F42010C0000402109 -:1096F00000A9282100A9182B008820210040F80982 -:10970000008320211040FE1F240A0001A34A05C443 -:109710008FAB006C8FAA006401705823AFAB006C54 -:109720008FAB009C01505021016A102B10400004A7 -:10973000AFAA00648F42014801425023AFAA0064DF -:109740008F4203682442FFFFAF4203688FAA005C88 -:10975000240B00018F420368154B0006240B000206 -:109760008F42035C2442FFFFAF42035C1000000CF9 -:109770008F42035C114B0006000000008F42036023 -:109780002442FFFFAF420360100000058F420360D8 -:109790008F4203642442FFFFAF4203648F4203649D -:1097A0008FAB00548FAA004CAD4B00008F42004499 -:1097B0008F4400888F430078244200010044102425 -:1097C00024630001AF420044AF4300788FAA006CCD -:1097D0001540FE0B000000008FAB006C1160001EF6 -:1097E00000000000934205C4104000090000000082 -:1097F0008FAA0064AF4A00C4AF4B00C08FAB007C9F -:10980000AF4B00C88FAA00741000000EAF4A00CC06 -:1098100097AB008E1160000B340381008FA20020F3 -:109820008C46000CA443000C97AA00868C440004CC -:109830008C450008A44A000EAC440000AC4500046E -:10984000AC4600088F42034C24420001AF42034C57 -:10985000100000108F42034C8FAB007C3164FFFF7F -:109860002484FFFC008018218F4402508F4502544D -:109870008F4601180000102100A3282100A3382BD7 -:109880000082202100872021AF44025000C0F80947 -:10989000AF4502548FBF00C88FBE00C48FB500C053 -:1098A0008FB300BC8FB200B88FB100B48FB000B0DE -:1098B00003E0000827BD00D003E00008000000001E -:1098C00027BDFF38240B0001AFBF00C0AFBE00BCF6 -:1098D000AFB500B8AFB300B4AFB200B0AFB100AC39 -:1098E000AFB000A8A3A00087AFA00044AFAB005C5E -:1098F000934205C4A7A0007610400007A7A0007EF1 -:109900008F4C00C0AFAC00648F4B00C88F5E00C4AA -:1099100010000130AFAB006C8F4201140040F80919 -:10992000000000000040302110C002A10000000033 -:109930008CC200008CC30004AFA20020AFA300249F -:109940008FAC00248FBE00203182FFFF2442FFFC39 -:10995000AFA200643C02000602C2102414400015AD -:10996000AFAC006C93C20000304200011040001107 -:109970002402FFFF8FC30000146200043402FFFFC3 -:1099800097C300041062000B000000000C0024BB11 -:1099900003C02021304200FF1440000600000000F8 -:1099A0008F4201180040F8090000000010000280FA -:1099B000000000008FA200243C03FFBF3463FFFFC0 -:1099C000004310243C03FFFF0043182414600003ED -:1099D000AFA2002410000040000080213C02008063 -:1099E0000062102410400007000000008F42038C2A -:1099F00024420001AF42038C8F42038C10000036DA -:109A0000241000018F42021024420001AF420210D4 -:109A10008F4202103C020001006210241040000638 -:109A20003C0200028F4201C424420001AF4201C443 -:109A30008F4201C43C020002006210241040000664 -:109A40003C0200048F42037C24420001AF42037CAD -:109A50008F42037C3C020004006210241040000688 -:109A60003C0200088F42038024420001AF42038081 -:109A70008F4203803C020008006210241040000660 -:109A80003C0200108F42038424420001AF42038451 -:109A90008F4203843C020010006210241040000634 -:109AA0003C0200208F4201C024420001AF4201C0AD -:109AB0008F4201C03C0200200062102410400006CA -:109AC000241000018F42038824420001AF42038822 -:109AD0008F420388241000018C0202608FAB006467 -:109AE000004B102B10400015320200FF8F4201E89E -:109AF00024420001AF4201E88F4201E88FAC006CC4 -:109B00008F8200E0358C0100AFAC006CAFA200107A -:109B10008F8200E4241000013C040001248468A02A -:109B2000AFA200148FA600208FA700243C050007D9 -:109B30000C002B3B34A53600320200FF1040001011 -:109B40003C02008002C210241440000E32C2040005 -:109B50008FAB006C3C020080344201000162102493 -:109B600010400005000000008F42020C244200015A -:109B7000AF42020C8F42020C100002028FA300645D -:109B800032C20400104000123402810097C3000C5E -:109B90001462000F00000000240C0200A7AC007645 -:109BA00097C2000E8FC300088FC400048FAB0064FF -:109BB0008FC50000256BFFFCAFAB0064A7A2007E41 -:109BC000AFC3000CAFC40008AFC5000427DE00041B -:109BD0008FA70064320200FF144000343C020100F1 -:109BE00097C4000C2C8305DD388288702C4200015C -:109BF00000621825106000150000282132C20800FC -:109C0000104000152402080097C3001414620012CB -:109C10003402AAAA97C3000E146200070000202194 -:109C200097C3001024020300146200040080102176 -:109C300097C200122C4400010080102154400006FD -:109C40002405001610000004000000002402080093 -:109C5000508200012405000E10A0001303C520212E -:109C6000248300093C02001F3442FFFF0043102BF5 -:109C700010400003000000008F42014800621823DA -:109C800090620000384300062C6300013842001146 -:109C90002C42000100621825106000043C02010003 -:109CA00094820002004538213C02010002C21024C7 -:109CB0005040000EAFA700648FAC006410EC0008A9 -:109CC0003C0500073C040001248469088FA6006459 -:109CD00034A54000AFA000100C002B3BAFA0001437 -:109CE0008FAB0064256B0004AFAB00648F42008033 -:109CF0008FAC0064004C102B1040002C32C280004E -:109D000010400034240B000332C210001040003118 -:109D1000AFAB005C1000002E240C00048F420350F7 -:109D20002403FFBF0283A02424420001AF4203505A -:109D3000100001738F4203503C02080002C2B0259C -:109D40002402FFBF0282A0248F8301283C0400016B -:109D5000248468D026620001AFA20014AFA30010D3 -:109D60008F8601208F8701243C0500070C002B3BC8 -:109D700034A5530010000162000000008EA2000014 -:109D80008EA300043C040001248468E8AFB00010F6 -:109D9000AFB100148EA7001834A559000C002B3B5E -:109DA0000060302110000156000000008F42008446 -:109DB0008FAB0064004B102B144000073C020001E5 -:109DC00002C210241040000400000000240C000215 -:109DD000AFAC005C8FAB00641160016627AC002063 -:109DE000AFAC008C8FAB005C240C0001556C0021E3 -:109DF000240C00028F4300548F4200501062000B6D -:109E0000274B00548F5100543403ECC0AFAB004CCF -:109E100026220001304201FFAFA200540011114080 -:109E2000004310211000006B02E2A8218F42004481 -:109E30008FAC00643C040001248468ACAFAC001417 -:109E4000AFA200108F4600548F4700503C0500071A -:109E50000C002B3B34A543008F4303502402FFBF6B -:109E60000282A02424630001AF43035010000124A8 -:109E70008F420350156C001D000000008F430074DA -:109E80008F4200701062000A274B00748F510074DB -:109E9000AFAB004C26220001304203FFAFA20054BA -:109EA0000011114024426CC01000004A02E2A821B7 -:109EB0008F4200448FAC00643C040001248468B8E5 -:109EC0003C050007AFAC0014AFA200108F46007431 -:109ED0008F47007034A54500240B00010C002B3B7C -:109EE000AFAB005C1000FFC3000000008F430064B4 -:109EF0008F4200601062001A274C00648F5100648A -:109F00008FAB005CAFAC004C26220001304200FF5A -:109F1000AFA20054240200041562000E001111408B -:109F20000011118024420CC002E21021AFA20044B3 -:109F30009442002A8FAC00448FAB0064004B102B7E -:109F40001040002425950020240C00011000002161 -:109F5000A3AC008724424CC01000001E02E2A821DE -:109F60008F4200448FAB00643C040001248468C429 -:109F7000AFAB0014AFA200108F4600648F470060A3 -:109F80003C0500070C002B3B34A548003C020008B0 -:109F900002C210241440FF61000000008F420370D1 -:109FA000240C0001AFAC005C24420001AF420370FE -:109FB0001000FF908F42037027A30036001310405B -:109FC0000062182194620000004410211000001F5C -:109FD000A4620000AEBE001893A200871040008467 -:109FE000000098218FAB00448FA400648FA3008CE5 -:109FF00025620020AFA2002825620008AFA2003031 -:10A0000025620010AFAB002CAFA200349562002A8D -:10A01000A7A2003895620018A7A2003A9562001A1C -:10A02000A7A2003C9562001CA7A2003E9462001803 -:10A0300024630002008220231880FFDF26730001C2 -:10A040002E6200041440FFF9000000008F4200FC63 -:10A050000262102A14400030240300018F83012C77 -:10A0600010600028000000008F82012400431023AC -:10A070000002214358800001248400408F8201287F -:10A08000004310230002194358600001246300407C -:10A090000064102A5440000100602021AF4400FCFD -:10A0A0008F4200FC0262102A1040001624030001B7 -:10A0B0001000001A306200FF8FAC008C00101040BE -:10A0C000004C10219447001800101080004C102103 -:10A0D000AFBE00108C4200083C040001248468DC00 -:10A0E0003C0500078C4300048C42000034A5550059 -:10A0F000020030210C002B3BAFA3001410000039EC -:10A10000000000008F4203340000182124420001A7 -:10A11000AF4203348F420334306200FF1040FF0629 -:10A12000000080218F4300082402FBFF1260002DF5 -:10A13000006250243C0B4000022B40258FB1008C64 -:10A140002669FFFF022090218E4200089627001802 -:10A150008C4400008C45000456090004240B0001C7 -:10A16000240C000210000002AFAC0010AFAB0010D6 -:10A1700016000004AFA800148F420008100000026F -:10A18000AFA20018AFAA00188F42010C03C0302103 -:10A19000AFA80098AFA9009C0040F809AFAA00A0A2 -:10A1A0008FA800988FA9009C8FAA00A01040FFC222 -:10A1B0003C02001F962300183442FFFF03C3F02126 -:10A1C000005E102B10400003263100028F42014830 -:10A1D00003C2F023261000010213102B1440FFDAF3 -:10A1E000265200048FB000641000001A0000000026 -:10A1F00096A3000A8FB000640070102B5440000139 -:10A20000006080218EA400008EA500048FAB005C4E -:10A21000240C0002AFAC0010934305C4000B1700E0 -:10A2200010600003022230253C02080000C23025E5 -:10A23000AFA600148F420008AFA200188F42010C95 -:10A2400003C030210040F809020038211040FECB45 -:10A250003C05000797AC00761180000796A3000E1E -:10A26000934205C4144000040000000097AB007E38 -:10A27000006C1825A6AB00168FAC006C3C02FFFFEB -:10A280000182102410400003000C14023463040007 -:10A29000A6A20014A6B0000A8FAB0064560B0006FD -:10A2A00003D0F02134620004AFA00064A6A2000E27 -:10A2B0001000000DA34005C48FAC00643C02001FD9 -:10A2C0003442FFFF005E102B01906023AFAC0064AE -:10A2D000A6A3000E240B000110400003A34B05C4ED -:10A2E0008F42014803C2F0238FAB00548FAC004C67 -:10A2F000AD8B00008FAC00641580FEBA000000003A -:10A300008FAB00641160001B00000000934205C485 -:10A310001040000600000000AF5E00C4AF4B00C05C -:10A320008FAC006C1000000EAF4C00C897AB0076ED -:10A330001160000B340381008FA200208C46000CBA -:10A34000A443000C97AC007E8C4400048C450008AC -:10A35000A44C000EAC440000AC450004AC46000820 -:10A360008F42034C24420001AF42034C1000001006 -:10A370008F42034C8FAB006C3164FFFF2484FFFCE1 -:10A38000008018218F4402508F4502548F460118D7 -:10A390000000102100A3282100A3382B00822021D7 -:10A3A00000872021AF44025000C0F809AF45025495 -:10A3B0008FBF00C08FBE00BC8FB500B88FB300B494 -:10A3C0008FB200B08FB100AC8FB000A803E00008DE -:10A3D00027BD00C803E000080000000027BDFFD82B -:10A3E000AFBF0024AFB000208F43004C8F42004825 -:10A3F00010620034000000008F4300488F42004C80 -:10A400000062202304820001248402008F43005450 -:10A410008F42004C0043102B144000042402020021 -:10A420008F43004C10000005004310238F4200545E -:10A430008F43004C004310232442FFFF0040502173 -:10A44000008A102A54400001008050218F49004C9E -:10A450008F48004C8F4401888F45018C8F46004CFB -:10A4600024071000AFA70010000841400100182188 -:10A47000012A4821313001FFAFB000148F4700148A -:10A480000000102100063140AFA7001800A32821CA -:10A4900000A3382B00822021008720213402ECC049 -:10A4A00000C230218F42010802E630210040F80945 -:10A4B000000A394054400001AF50004C8F43004C1B -:10A4C0008F42004814620018000000008F42000014 -:10A4D0001040000700000000AF80004C8F82004C4D -:10A4E0001040FFFD0000000010000005000000000B -:10A4F000AF8000488F8200481040FFFD0000000040 -:10A500008F8200602403FDFF00431024AF820060AF -:10A510008F42000010400003000000001000000205 -:10A52000AF80004CAF8000488FBF00248FB0002068 -:10A5300003E0000827BD002803E000080000000039 -:10A5400027BDFFD8AFBF0024AFB000208F43005C11 -:10A550008F42005810620049000000008F430058ED -:10A560008F42005C006220230482000124840100E9 -:10A570008F4300648F42005C0043102B14400004A2 -:10A58000240201008F43005C1000000500431023EB -:10A590008F4200648F43005C004310232442FFFF7E -:10A5A000004038210087102A5440000100803821E3 -:10A5B0008F42005C00471021305000FF32C2100073 -:10A5C00010400015240820008F49005C8F44019042 -:10A5D0008F4501948F46005C00073980AFA80010BA -:10A5E000AFB000148F4800140009498001201821E1 -:10A5F0000000102100A3282100A3482B0082202165 -:10A600000089202100063180AFA800188F42010880 -:10A610001000001424C60CC08F49005C8F440190C8 -:10A620008F4501948F46005C00073940AFA80010A9 -:10A63000AFB000148F4800140009494001201821D0 -:10A640000000102100A3282100A3482B0082202114 -:10A650000089202100063140AFA800188F42010870 -:10A6600024C64CC00040F80902E6302154400001E5 -:10A67000AF50005C8F43005C8F420058146200189A -:10A68000000000008F4200001040000700000000A2 -:10A69000AF80004C8F82004C1040FFFD0000000096 -:10A6A0001000000500000000AF8000488F820048C5 -:10A6B0001040FFFD000000008F8200602403FEFFB9 -:10A6C00000431024AF8200608F420000104000035E -:10A6D0000000000010000002AF80004CAF80004876 -:10A6E0008FBF00248FB0002003E0000827BD0028A2 -:10A6F00003E000080000000027BDFFD8AFBF002422 -:10A70000AFB000208F43006C8F42006810620033AE -:10A71000000000008F4300688F42006C006220231D -:10A7200004820001248404008F4300748F42006C73 -:10A730000043102B14400004240204008F43006CDB -:10A7400010000005004310238F4200748F43006CFB -:10A75000004310232442FFFF00405021008A102AAA -:10A7600054400001008050218F49006C8F48006CDC -:10A770008F4401988F45019C8F46006C2407400050 -:10A78000AFA700100008414001001821012A48210C -:10A79000313003FFAFB000148F47001400001021C8 -:10A7A0000006314024C66CC0AFA7001800A32821C2 -:10A7B00000A3382B00822021008720218F4201082E -:10A7C00002E630210040F809000A394054400001F7 -:10A7D000AF50006C8F43006C8F4200681462001809 -:10A7E000000000008F420000104000070000000041 -:10A7F000AF80004C8F82004C1040FFFD0000000035 -:10A800001000000500000000AF8000488F82004863 -:10A810001040FFFD000000008F8200602403F7FF5E -:10A8200000431024AF8200608F42000010400003FC -:10A830000000000010000002AF80004CAF80004814 -:10A840008FBF00248FB0002003E0000827BD002840 -:10A8500003E00008000000008F4200FC3C03000100 -:10A860008F4400F8346330C824420001AF4200FC3A -:10A870008F85012802E310215482000424820008FD -:10A880003C02000134422EC802E21021004018218F -:10A89000AF4300F8AC6000008F4200F41462000483 -:10A8A0003C02000124A200201000000FAF8201280A -:10A8B0008F4300F8344230C802E210215462000491 -:10A8C000246200083C02000134422EC802E210213A -:10A8D000004018218C6200040002114000A21021E7 -:10A8E000AF820128AC6000008CA3001830620070B9 -:10A8F0001040002D30620020104000043C02001087 -:10A9000002C210241040000D000000003062004020 -:10A91000104000043C02002002C210241040000736 -:10A9200000000000306200101040001F3C02004098 -:10A9300002C210241440001C000000008F8200405E -:10A940003042000114400008000020218C03010463 -:10A950002402000150620005240400018C020264FC -:10A960001040000300801021240400010080102109 -:10A9700010400006000000008F42030C244200013A -:10A98000AF42030C100000088F42030C8F8200447A -:10A9900034420004AF8200448F4203082442000185 -:10A9A000AF4203088F42030803E0000800000000E4 -:10A9B00003E000080000000027BDFF98AFBF006063 -:10A9C000AFBE005CAFB50058AFB30054AFB200509B -:10A9D000AFB1004CAFB000488F4200FC24420001F0 -:10A9E000AF4200FC8F88012825020020AF82012899 -:10A9F0008D030018306200701040002E306200207D -:10AA0000104000043C02001002C210241040000D4F -:10AA10000000000030620040104000043C020020B2 -:10AA200002C2102410400007000000003062001035 -:10AA3000104001A93C02004002C21024144001A6AB -:10AA4000000000008F8200403042000114400008E6 -:10AA5000000020218C030104240200015062000543 -:10AA6000240400018C0202641040000300801021C5 -:10AA700024040001008010211040000600000000A6 -:10AA80008F42030C24420001AF42030C10000192DC -:10AA90008F42030C8F82004434420004AF82004492 -:10AAA0008F42030824420001AF4203081000018ACC -:10AAB0008F420308306200021040014B3C02080044 -:10AAC0008D1E001C001E5702AFAA0034950A001606 -:10AAD00003C22024AFAA00248FAA0034240200015C -:10AAE0001542000633DEFFFF001E11403403ECC0A8 -:10AAF000004310211000001002E2A82124020002ED -:10AB00001542000524020003001E114024426CC0BF -:10AB10001000000902E2A82115420005001E118064 -:10AB2000001E114024424CC01000000302E2A82184 -:10AB30000057102124550CE096A2000E304AFFFC6D -:10AB40003042040010400003AFAA002C100000E1C6 -:10AB500000008821108000040000882197B10026A1 -:10AB6000100000DDA6B100128EB30018966A000C2A -:10AB7000A7AA003E97A5003E2CA305DD38A2887049 -:10AB80002C420001006218251060001500002021F1 -:10AB900032C2080010400015240208009663001419 -:10ABA000146200123402AAAA9663000E146200070F -:10ABB00000002821966300102402030014620004A0 -:10ABC00000A01021966200122C45000100A0102167 -:10ABD0005440000624040016100000040000000089 -:10ABE0002402080050A200012404000E108000B9C5 -:10ABF00002649021924200003042000F00028080E7 -:10AC000032C2010010400020025018213C020020F6 -:10AC10000043102B1440000E024020210000282188 -:10AC2000948200002484000200A228210083102BBB -:10AC30001440FFFB30A2FFFF00051C020062282128 -:10AC400000051C0230A2FFFF10000009006228214D -:10AC50008F4701488F420110001028423C06002017 -:10AC60000040F809AFA800403045FFFF8FA8004022 -:10AC700050A000013405FFFF8FAA002C354A0002C6 -:10AC800010000002AFAA002C0000282132C2008070 -:10AC900010400090A6A50010264300093C02001FAA -:10ACA0003442FFFF0043102B10400003000000005F -:10ACB0008F420148006218239066000030C200FFF6 -:10ACC000384300062C630001384200112C42000179 -:10ACD000006218251060007F24020800000088210F -:10ACE00097A3003E1462000F0260202196710000BD -:10ACF0009662000296630004966400060222882190 -:10AD00000223882102248821966200089663000AA3 -:10AD10009664000C0222882102238821100000077B -:10AD200002248821948200002484000202228821C7 -:10AD30000092102B1440FFFB0000000000111C02C9 -:10AD40003222FFFF0062882100111C023222FFFF25 -:10AD50000062882132C2020010400003264400062F -:10AD60001000003E000080213C05001F34A5FFFFBD -:10AD700000A4102B10400003000000008F42014887 -:10AD8000008220239482000030421FFF1040000404 -:10AD90002644000C96420002100000300050802330 -:10ADA0009642000226430014005080233C020020FB -:10ADB0000043102B1440000A00D080219642000C62 -:10ADC000020280219642000E964300109644001223 -:10ADD0000202802102038021100000200204802151 -:10ADE00000A4102B10400003000000008F42014817 -:10ADF0000082202394820000248400020202802129 -:10AE000000A4102B10400003000000008F420148F6 -:10AE10000082202394820000248400020202802108 -:10AE200000A4102B10400003000000008F420148D6 -:10AE300000822023948200002484000202028021E8 -:10AE400000A4102B10400003000000008F420148B6 -:10AE50000082202394820000020280213C02010033 -:10AE600002C210241040000E000000008FAA002C27 -:10AE7000314200041040000A000000009504000E5A -:10AE8000026420210C003EEC2484FFFC3042FFFFD2 -:10AE90000222882100111C023222FFFF0062882159 -:10AEA0008FAA002401518823001114020222882154 -:10AEB0000230882100111402022288213231FFFF62 -:10AEC000522000013411FFFF8FAA002C354A0001E7 -:10AED000AFAA002CA6B1001297AA002EA6AA000EB7 -:10AEE0008FAA002C314200041040000224091000F7 -:10AEF000340980008F4800448F4401A08F4501A48D -:10AF0000AFA900108F4900440008414001001821FA -:10AF1000AFA900148F48000C02A0302124070020A4 -:10AF2000AFA800188F48010C0000102100A32821B1 -:10AF300000A3482B008220210100F809008920216C -:10AF40001440000B000000008F8201283C04000127 -:10AF500024846914AFBE0014AFA200108F860124B0 -:10AF60008F8701203C0500070C002B3B34A599205E -:10AF70008F4203682442FFFFAF4203688F420044C0 -:10AF80008F4300882442000100431024AF42004454 -:10AF90008FAA00348F440368240200011542000682 -:10AFA000240200028F42035C2442FFFFAF42035C95 -:10AFB000100000498F42035C1542000600000000AB -:10AFC0008F4203642442FFFFAF420364100000423B -:10AFD0008F4203648F4203602442FFFFAF4203604D -:10AFE0001000003D8F4203603062100010400005E9 -:10AFF000306280008F420078244200011000003649 -:10B00000AF42007810400034000000008F4200780A -:10B0100024420001AF4200788C0302400043102B11 -:10B020001440002D240700088F4401688F45016CEF -:10B030008F4300448F48000C8F860120240200407B -:10B04000AFA20010AFA30014AFA800188F42010CEC -:10B050000040F80924C6001C14400011240200011D -:10B060003C01000100370821A02240F28F82012418 -:10B07000AFA200108F8201283C0400012484688C58 -:10B08000AFA200148F4600448F8701203C050009C1 -:10B090000C002B3B34A513001000000B0000000037 -:10B0A0008F42030424420001AF4203048F42030491 -:10B0B0008F420044AF42007C3C0100010037082170 -:10B0C000A02040F2AF4000788F42031824420001D4 -:10B0D000AF4203188F4203188FBF00608FBE005C21 -:10B0E0008FB500588FB300548FB200508FB1004C11 -:10B0F0008FB0004803E0000827BD006803E00008A7 -:10B100000000000000000000000000008F42013C31 -:10B11000AF8200C08F42013CAF8200C48F42013C2D -:10B12000AF8200C88F420138AF8200D08F42013811 -:10B13000AF8200D48F42013803E00008AF8200D80C -:10B1400027BDFFE02784020824050200AFBF0018D6 -:10B150000C002BBF240600088C0202040C004012D5 -:10B16000AF8202103C0200018C426D94304200021A -:10B170001040000E000020218C060248240200022C -:10B180003C010001AC226D980C0051042405000222 -:10B19000000020218C060248240200013C0100012D -:10B1A000AC226D9810000011240500018C060248A5 -:10B1B000240200043C010001AC226D980C005104F3 -:10B1C000240500043C0200018C426D9430420001D1 -:10B1D00010400008240200013C010001AC226D98DF -:10B1E00000002021240500013C06601B0C005104D6 -:10B1F000000000003C040001248469D08F4201500B -:10B200008F4301543C0500088F4601580002164048 -:10B21000000319403463040300431025000633C0C3 -:10B2200000461025AF82021CAFA00010AFA0001492 -:10B230008F86021C34A502000C002B3B0000382135 -:10B240003C010001AC206D903C010001AC206DA8D8 -:10B250008FBF001803E0000827BD002027BDFFE0D6 -:10B260003C05000834A50300AFBF0018AFA00010D4 -:10B27000AFA000148F8602003C040001248469DC26 -:10B280000C002B3B000038218F42041024420001A7 -:10B29000AF4204108F4204108FBF001803E0000873 -:10B2A00027BD002027BDFFD8AFBF0020AFB1001CD5 -:10B2B000AFB000188F4203A424420001AF4203A4A0 -:10B2C0008F4203A48F9002208F8200E0AFA2001073 -:10B2D0008F8200E4AFA200148F8600C48F8700C85D -:10B2E0003C040001248469E80C002B3B0200282167 -:10B2F0003C04400002041024504000B43C0401000F -:10B300008F4203BC24420001AF4203BC8F4203BC06 -:10B310008F8700C48F8300C88F42014800671823BD -:10B320000043102B10400003000000008F42014832 -:10B330000062182110600005000000008F42014CDF -:10B340000043102B1040000B000000008F8200E033 -:10B350008F430124AF42011CAF4301148F820220AE -:10B360003C0308FF3463FFFB00431024100000CEB1 -:10B37000004410258F8202203C0308FF3463FFFF46 -:10B380000043102434420004AF8202208F8200E088 -:10B390008F430124AF42011CAF4301148F8600C8C4 -:10B3A0008F8401208F8301241000000500002821D4 -:10B3B0001462000224620020276248000040182125 -:10B3C0001064000C30A200FF8C62001830420003B1 -:10B3D0001040FFF727624FE08F4203D024050001A1 -:10B3E00024420001AF4203D08F4203D08C66000894 -:10B3F00030A200FF1440005800000000934205C432 -:10B4000014400055000000008F8700C48F8800E0C2 -:10B410008F8400E42402FFF8010240240104102379 -:10B42000000218C3046200012463020010600005DA -:10B430002402000110620009000000001000001F3B -:10B44000000000008F4203C000E0302124420001D0 -:10B45000AF4203C0100000408F4203C08F4203C4BC -:10B4600024420001AF4203C48C8600008F42014891 -:10B470008F4303C400E618230043102B1040000440 -:10B480002C62233F8F420148006218212C62233F27 -:10B4900014400031000000008F42020C24420001E1 -:10B4A000AF42020C8F42020C00E0302124820008DF -:10B4B000AF8200E410000028AF8200E88F4203C88A -:10B4C00024420001AF4203C88F4203C88C850000AC -:10B4D0008F42014800A718230043102B104000039F -:10B4E000000000008F420148006218218F42014C89 -:10B4F0000043102B5440000A00A030218F42020C60 -:10B5000024420001AF42020C8F42020C2482000848 -:10B51000AF8200E48F8400E41488FFECAF8400E87D -:10B520001488000D27623000148200022482FFF884 -:10B5300027623FF8944300063C02001F3442FFFF9D -:10B5400000C330210046102B104000030000000013 -:10B550008F42014800C23023AF8600C88F8300C4E9 -:10B560008F42014800C318230043102B10400003F2 -:10B57000000000008F4201480062182110600005A1 -:10B58000000000008F42014C0043102B5040000887 -:10B590003C02FDFF8F8202203C0308FF3463FFFB67 -:10B5A000004310243C0340001000003F00431025DE -:10B5B0008F4303CC3442FFFF0282A02424630001A6 -:10B5C000AF4303CC100000398F4203CC0204102497 -:10B5D0001040000E3C1102008F4203A824420001DB -:10B5E000AF4203A88F4203A88F8202203C0308FFCA -:10B5F0003463FFFF00431024004410250C003DAFCE -:10B60000AF82022010000029000000000211102467 -:10B61000504000083C1104008F4203AC244200015A -:10B62000AF4203AC0C003DAF8F4203AC10000019D9 -:10B6300000000000021110241040001C0000000057 -:10B640008F83022424021402146200093C050008BE -:10B650003C040001248469F4AFA00010AFA00014E2 -:10B660008F86022434A505000C002B3B00003821F6 -:10B670008F4203B024420001AF4203B08F4203B0B7 -:10B680008F82022002002021344200020C004E9CD6 -:10B69000AF8202208F8202203C0308FF3463FFFF49 -:10B6A0000043102400511025AF8202208FBF0020DC -:10B6B0008FB1001C8FB0001803E0000827BD0028E0 -:10B6C00003E00008000000003C0200018C426DA86D -:10B6D00027BDFFB0AFBF0048AFBE0044AFB50040CC -:10B6E000AFB3003CAFB20038AFB100341040000F30 -:10B6F000AFB000303C04000124846A003C0500081F -:10B70000AFA00010AFA000148F86022034A5060061 -:10B71000240200013C010001AC206DA83C010001A5 -:10B72000AC226D9C0C002B3B000038213C037FFFBA -:10B730008C0202683463FFFF3C04FDFF00431024C9 -:10B74000AC0202688F4200043484FFFF30420002E2 -:10B75000104000920284A0243C040600348420009F -:10B760008F420004000028212403FFFD0043102421 -:10B77000AF420004AFA400208F5E001827AA00206B -:10B78000240200FF13C20002AFAA002C27C500014B -:10B790008C02022800A090211642000E001E38C024 -:10B7A0008F42033C24420001AF42033C8F42033CE2 -:10B7B0008C0202283C040001248469983C0500099D -:10B7C000AFA00014AFA200108FA600201000006DE3 -:10B7D00034A5050000F710218FA300208FA40024BA -:10B7E000AC4304C0AC4404C48F8300548F82005423 -:10B7F000247003E8020210232C4203E91040001BCE -:10B800000000982100E08821263504C08F4401788B -:10B810008F45017C02201821240A0004AFAA0010E1 -:10B82000AFB200148F48000C0000102102F5302147 -:10B83000AFA800188F48010C2407000800A3282196 -:10B8400000A3482B008220210100F8090089202153 -:10B8500054400006241300018F820054020210237A -:10B860002C4203E91440FFE900000000326200FFAF -:10B8700054400017AF5200188F4203782442000151 -:10B88000AF4203788F4203788F8201208FAA002C69 -:10B89000AFA200108F8201243C040001248469A41B -:10B8A0003C050009AFA200148D46000010000035D1 -:10B8B00034A506008F42030824130001244200012E -:10B8C000AF4203088F4203081000001E326200FFDF -:10B8D0008F8300548F820054247003E802021023E7 -:10B8E0002C4203E910400016000098213C1500206E -:10B8F000241100108F42000C8F4401608F450164B9 -:10B900008F860120AFB10010AFB200140055102592 -:10B91000AFA200188F42010C240700080040F8096C -:10B9200024C6001C1440FFE3000000008F82005476 -:10B93000020210232C4203E91440FFEE0000000035 -:10B94000326200FF14400011000000008F420378B3 -:10B9500024420001AF4203788F4203788F82012096 -:10B960008FAA002CAFA200108F8201243C0400019A -:10B97000248469AC3C050009AFA200148D46000088 -:10B9800034A507000C002B3B03C038218F4202EC8A -:10B9900024420001AF4202EC8F4202EC8FBF00480C -:10B9A0008FBE00448FB500408FB3003C8FB200388B -:10B9B0008FB100348FB0003003E0000827BD005085 -:10B9C0003C0200018C426DA827BDFFE01440000D31 -:10B9D000AFBF00183C04000124846A0C3C05000839 -:10B9E000AFA00010AFA000148F86022034A507007E -:10B9F000240200013C010001AC226DA80C002B3B8D -:10BA0000000038213C02000402C21024104000074C -:10BA1000000000008F8202203C0308FF3463FFFF18 -:10BA20000043102434420008AF8202203C0500018C -:10BA30008CA56D982402000114A2000700002021AB -:10BA40000C00529B24050001AC02026C8C03026CBA -:10BA5000100000063C0200070C00529B0000202151 -:10BA6000AC0202688C0302683C02000700621824E2 -:10BA70003C0200025062000D3C0205F50043102B11 -:10BA8000144000063C0200043C0200011062000960 -:10BA90003C0200981000000B000000001462000936 -:10BAA0003C023B9A100000043442CA00100000021D -:10BAB0003442E10034429680AF4201FC8F4201FCE7 -:10BAC000AEE200648FBF001803E0000827BD00202D -:10BAD0000000000000000000000000000086102BA5 -:10BAE000504000010087202300C410230002484377 -:10BAF0000125102B1040001B00091040008240213E -:10BB00000088102B104000070000182194820000CC -:10BB100024840002006218210088102B1440FFFBCF -:10BB2000000000000060202100C7302300A910237E -:10BB30000002104000C2282100C5102B1040000751 -:10BB40000000182194C2000024C6000200621821DF -:10BB500000C5102B1440FFFB000000001000000D7A -:10BB60000083202100051040008228210085102B31 -:10BB70001040000700001821948200002484000275 -:10BB8000006218210085102B1440FFFB000000000C -:10BB90000060202100041C023082FFFF006220218F -:10BBA00000041C023082FFFF0062202103E0000835 -:10BBB0003082FFFF03E00008000000000080282121 -:10BBC00030A200011040002B3C03001F3463FFFF34 -:10BBD00024A200040062102B544000070065102BC3 -:10BBE00090A2000190A4000390A3000090A5000281 -:10BBF0001000002A00441021104000030000000043 -:10BC00008F42014800A2282390A4000024A500012F -:10BC10000065102B10400003000000008F42014817 -:10BC200000A2282390A2000024A500010002120017 -:10BC3000008220210065102B10400003000000004E -:10BC40008F42014800A2282390A2000024A50001F1 -:10BC5000008220210065102B10400003000000002E -:10BC60008F42014800A2282390A200001000002D5E -:10BC7000000212003463FFFF24A200040062102BB4 -:10BC80005440000A0065102B90A2000090A400020E -:10BC900090A3000190A500030044102100021200AF -:10BCA00000651821100000200043202110400003EF -:10BCB000000000008F42014800A2282390A200004B -:10BCC00024A50001000222000065102B1040000393 -:10BCD000000000008F42014800A2282390A200002B -:10BCE00024A50001008220210065102B10400003D4 -:10BCF000000000008F42014800A2282390A200000B -:10BD000024A5000100021200008220210065102BF2 -:10BD100010400003000000008F42014800A22823C9 -:10BD200090A200000082202100041C023082FFFF4C -:10BD30000062202100041C023082FFFF00622021EB -:10BD400003E000083082FFFF000000008F82022025 -:10BD500034420002AF8202203C0200028C428FF883 -:10BD60003042400010400054240400018F82020041 -:10BD700024067FFF8F830200304500022402FFFD6E -:10BD800000621824AF830200AF8402048F83005442 -:10BD90008F82005410000002246300018F8200543F -:10BDA000006210232C4200021440FFFC000000003F -:10BDB0008F8202241444004D0004204000C4102B44 -:10BDC0001040FFF1000000008F82020000451025A6 -:10BDD000AF8202008F82022034428000AF820220B4 -:10BDE0008F8300548F8200541000000224630001EE -:10BDF0008F820054006210232C4200021440FFFC8A -:10BE0000000000008F8202203C0300040043102445 -:10BE10001440000F000000008F8202203C03FFFF4F -:10BE200034637FFF00431024AF8202208F830054CD -:10BE30008F82005410000002246300018F8200549E -:10BE4000006210232C4200021440FFFC000000009E -:10BE50008F8202203C030004004310241440000D94 -:10BE6000000000008F82022034428000AF82022056 -:10BE70008F8300548F82005410000002246300015D -:10BE80008F820054006210232C4200021440FFFCF9 -:10BE9000000000008F8202203C03000400431024B5 -:10BEA0001040001B000010218F830220240200019B -:10BEB000100000153C04F7008F8202203C04F700BC -:10BEC00000441025AF8202208F8202202403FFFD50 -:10BED00000431024AF8202208F8202203C03030023 -:10BEE000004310241440000300000000100000086C -:10BEF000000010218F82022034420002AF82022013 -:10BF00008F8302202402000100641825AF830220E1 -:10BF100003E0000800000000000020213C050100B3 -:10BF200024020001AF80021CAF820200AF82022017 -:10BF300027625000AF8200C027625000AF8200C469 -:10BF400027625000AF8200C827625000AF8200D045 -:10BF500027625000AF8200D427625000AF8200D821 -:10BF600027623000AF8200E027623000AF8200E439 -:10BF700027623000AF8200E827622800AF8200F01D -:10BF800027622800AF8200F427622800AF8200F801 -:10BF9000000418C02484000103631021AC45300460 -:10BFA00003631021AC403000288202001440FFF9E6 -:10BFB000000418C000002021000418C024840001DF -:10BFC00003631021AC40280403631021AC40280017 -:10BFD000288201001440FFF9000418C0AF80023C21 -:10BFE0002403008024040100AC60000024630004EA -:10BFF0000064102B5440FFFDAC6000008F830040B4 -:10C000003C02F000006218243C0250001062000C58 -:10C010000043102B144000063C0260003C0240002C -:10C020001062000824020800100000080000000050 -:10C030001062000424020800100000040000000048 -:10C04000240207003C010001AC226DAC03E00008B3 -:10C05000000000003C0200018C426DBC27BDFFD0F7 -:10C06000AFBF002CAFB20028AFB10024AFB00020AA -:10C070003C01000110400005AC206D940C004D9E69 -:10C08000000000003C010001AC206DBC8F83005417 -:10C090008F82005410000002246300648F820054D9 -:10C0A000006210232C4200651440FFFC00000000D9 -:10C0B0000C004DB9000000002404000100002821FC -:10C0C00027A60018340280000C0045BEA7A2001865 -:10C0D0008F8300548F820054100000022463006498 -:10C0E0008F820054006210232C4200651440FFFC34 -:10C0F00024040001240500010C00457C27A600183B -:10C100008F8300548F820054100000022463006467 -:10C110008F820054006210232C4200651440FFFC03 -:10C1200024040001240500010C00457C27A600180A -:10C130008F8300548F820054100000022463006437 -:10C140008F820054006210232C4200651440FFFCD3 -:10C15000240400013C06000124C66F240C00457C29 -:10C16000240500028F8300548F82005410000002C7 -:10C17000246300648F820054006210232C42006507 -:10C180001440FFFC24040001240500033C100001BE -:10C1900026106F260C00457C0200302197A600185F -:10C1A0003C07000194E76F243C04000124846AE00A -:10C1B000AFA00014960200003C05000D34A501005C -:10C1C0000C002B3BAFA2001097A200181040004DAE -:10C1D00024036040960200003042FFF01443000C3C -:10C1E000240200203C03000194636F241462000BBE -:10C1F00024027830240200033C010001AC226D943B -:10C20000240200053C0100011000003FAC226F3405 -:10C210003C03000194636F24240278301462000C04 -:10C22000240300103C02000194426F263042FFF0CC -:10C2300014430007240200033C010001AC226D946A -:10C24000240200063C0100011000002FAC226F34D4 -:10C250003C0200018C426D943C03000194636F2406 -:10C26000344200013C010001AC226D94240200150F -:10C270001462000B000000003C02000194426F2693 -:10C280003042FFF03843F4202C6300013842F43090 -:10C290002C420001006218251460001B24020003D8 -:10C2A0003C03000194636F2424027810146200168A -:10C2B000240200023C02000194426F263042FFF04B -:10C2C00014400011240200021000000F2402000498 -:10C2D0003C0200018C426D94344200083C01000194 -:10C2E000AC226D941000005E240200043C020001A8 -:10C2F0008C426D94344200043C010001100000AFF8 -:10C30000AC226D94240200013C010001AC226F407C -:10C310003C0200018C426D9430420002144000B295 -:10C320003C09FFF024020E00AF8202388F840054D3 -:10C330008F820054240300083C010001AC236D9857 -:10C3400010000002248401F48F8200540082102324 -:10C350002C4201F51440FFFC3C0200C8344201FBB2 -:10C36000AF8202388F8300548F8200541000000285 -:10C37000246301F48F820054006210232C4201F5E3 -:10C380001440FFFC00008021241200012411000948 -:10C390000C004482000000003C010001AC326DB48E -:10C3A0000C004547000000003C0200018C426DB4C7 -:10C3B0001451FFFB3C0200C8344201F6AF82023840 -:10C3C0008F8300548F820054100000022463000AFF -:10C3D0008F820054006210232C42000B1440FFFC9B -:10C3E000000000008F820220240400013442000279 -:10C3F000AF8202208F83020024057FFF2402FFFD0D -:10C4000000621824AF830200AF8402048F830054BB -:10C410008F82005410000002246300018F820054B8 -:10C42000006210232C4200021440FFFC00000000B8 -:10C430008F8202241444000534028000000420404E -:10C4400000A4102B1040FFF0340280001082FFA0E7 -:10C45000261000012E0200141440FFCD2402000417 -:10C460003C010001AC226D980000802124120009DB -:10C470003C11FFFF36313F7F0C004482000000007A -:10C48000240200013C010001AC226DB40C004547C0 -:10C49000000000003C0200018C426DB41452FFFB0E -:10C4A000000000008F82004400511024344250806C -:10C4B000AF8200448F8300548F820054100000022A -:10C4C0002463000A8F820054006210232C42000B68 -:10C4D0001440FFFC000000008F8200440051102433 -:10C4E0003442F080AF8200448F8300548F82005426 -:10C4F000100000022463000A8F820054006210239F -:10C500002C42000B1440FFFC000000008F82022030 -:10C510003C03F70000431025AF8202208F830054B4 -:10C520008F82005410000002246300648F82005444 -:10C53000006210232C4200651440FFFC0000000044 -:10C540008F8202202404000134420002AF820220C4 -:10C550008F83020024057FFF2402FFFD0062182460 -:10C56000AF830200AF8402048F8300548F82005493 -:10C5700010000002246300018F8200540062102327 -:10C580002C4200021440FFFC000000008F820224B5 -:10C5900014440005340280000004204000A4102B45 -:10C5A0001040FFF0340280001082FF50261000017E -:10C5B0002E0200641440FFB0000000003C020001A5 -:10C5C0008C426D9430420004144000073C09FFF097 -:10C5D0008F8200443C03FFFF34633F7F00431024FD -:10C5E000AF8200443C09FFF03529BDC03C06000184 -:10C5F0008CC66D943C04000124846AE0240200018E -:10C600003C010001AC226D9C8F8200543C0700016C -:10C610008CE76F403C03000194636F243C080001E9 -:10C6200095086F263C05000D34A501003C01000172 -:10C63000AC206D98004910213C010001AC226F3004 -:10C64000AFA300100C002B3BAFA800148FBF002C31 -:10C650008FB200288FB100248FB0002003E00008C3 -:10C6600027BD003027BDFFE83C0500018CA56D9873 -:10C67000240600042402000114A20014AFBF00101D -:10C680003C0200028C428FFC3042800010400005CA -:10C690003C04000F3C0300018C636F401000000558 -:10C6A000348442403C0400043C0300018C636F402E -:10C6B000348493E024020005146200160000000098 -:10C6C0003C04003D10000013348409003C020002C9 -:10C6D0008C428FF830428000104000053C04001E60 -:10C6E0003C0300018C636F4010000005348484809B -:10C6F0003C04000F3C0300018C636F4034844240D3 -:10C700002402000514620003000000003C04007ACB -:10C71000348412003C0200018C426F308F8300543D -:10C7200000441021004310230044102B1440004CFF -:10C73000000000003C0200018C426DA01440004843 -:10C74000000000003C01000110C00025AC206DB0CD -:10C750003C0900018D296D94240700013C04400030 -:10C760003C08000225088FFC250AFFFC0005284232 -:10C7700014A0000224C6FFFF2405000800A910240D -:10C78000104000100000000014A700080000000086 -:10C790008D020000004410241040000A0000000038 -:10C7A0003C01000110000007AC256DB08D42000077 -:10C7B0000044102410400003000000003C01000170 -:10C7C000AC276DB03C0200018C426DB00006182B06 -:10C7D0002C420001004310245440FFE5000528428C -:10C7E0008F8200543C0300018C636DB03C0100015A -:10C7F000AC226F301060003B240200053C030001B6 -:10C800008C636F403C010001AC256D9814620012EE -:10C81000240200013C0200028C428FF83C032000FD -:10C820003463500000431024144000062402000129 -:10C830003C010001AC206F1C3C010001AC226D9852 -:10C84000240200013C010001AC226E243C010001E5 -:10C85000AC226DA4240200013C010001AC226D9CBD -:10C860003C0200018C426DB01040001E0000000030 -:10C870003C0200018C426D9C104000082402000123 -:10C880003C010001AC206D9CAEE204B83C0100010B -:10C89000AC206E1C3C010001AC226DD48EE304B8C8 -:10C8A0002402000810620005240200010C00423935 -:10C8B000000000001000000B000000003C0300011D -:10C8C0008C636D98106200072402000E3C03000286 -:10C8D0008C638F9010620003000000000C004E9CDF -:10C8E0008F8402208FBF001003E0000827BD0018CE -:10C8F00027BDFFE03C03FDFF3C0400018C846D98E4 -:10C900003C0200018C426DC03463FFFF0283A0240F -:10C9100014820006AFBF00188EE304B83C02000189 -:10C920008C426DC410620006000000008EE204B864 -:10C930003C010001AC246DC03C010001AC226DC47F -:10C940003C0300018C636D98240200021062019C7C -:10C950002C62000310400005240200011062000A4E -:10C960000000000010000226000000002402000465 -:10C97000106200B6240200081062010A24020001BD -:10C980001000021F000000008EE204B82443FFFFE5 -:10C990002C6200081040021C000310803C010001C2 -:10C9A000002208218C226AF80040000800000000E4 -:10C9B0003C0300018C636F402402000514620010E8 -:10C9C000000000003C0200018C426DA410400008F1 -:10C9D000240200030C004482000000002402000234 -:10C9E000AEE204B83C01000110000002AC206DA4CE -:10C9F000AEE204B83C01000110000203AC206D302F -:10CA00000C004482000000003C0200018C426DA436 -:10CA10003C010001AC206D301440017A2402000278 -:10CA20001000019D240200073C0300018C636F404D -:10CA30002402000514620003240200013C010001ED -:10CA4000AC226DD00C0045FF000000003C0300014B -:10CA50008C636DD010000174240200113C050001AC -:10CA60008CA56D983C0600028CC68FFC0C0051040E -:10CA700000002021240200053C010001AC206DA42F -:10CA8000100001E1AEE204B83C04000124846AEC29 -:10CA90003C05000F34A501000000302100003821C2 -:10CAA000AFA000100C002B3BAFA00014100001D66B -:10CAB000000000008F8202203C0300040043102489 -:10CAC00014400175240200078F8300543C020001CA -:10CAD0008C426F282463D8F0004310232C42271087 -:10CAE00014400003240200013C010001AC226D9CB3 -:10CAF0003C0200028C428FFC30425000104001C2C8 -:10CB0000000000008F820220304280001040017D32 -:10CB10000000000010000175000000003C0500014D -:10CB20008CA56D980C00529B000020210C00551B19 -:10CB3000000020213C0300028C638FF4046101B0EB -:10CB4000240200013C02000800621024104000068C -:10CB5000000000008F8202143C03FFFF00431024FA -:10CB6000100000053442251F8F8202143C03FFFF92 -:10CB7000004310243442241FAF8202148F8202200B -:10CB80003C03020034420002AF820220240200086B -:10CB9000AEE204B88F8202200283A0253C03000489 -:10CBA0000043102414400016000000003C02000264 -:10CBB0008C428FFC304250001040000D00000000FD -:10CBC0008F820220304280001040000600000000EA -:10CBD0008F8202203C03FFFF34637FFF10000003BD -:10CBE000004310248F82022034428000AF82022052 -:10CBF0008F8202203C03F70000431025AF82022001 -:10CC00003C0300018C636F40240200051462000A9B -:10CC1000000000003C02000194426F2624429FBCA9 -:10CC20002C420004104000042404001824050002D3 -:10CC30000C004DDB240600200C003E6D00000000BF -:10CC40003C01000110000170AC206E208EE204B89F -:10CC50002443FFFF2C6200081040016B000310808A -:10CC60003C010001002208218C226B1800400008C2 -:10CC7000000000000C004547000000003C030001DC -:10CC80008C636DB4100000E8240200093C0200022D -:10CC90008C428FF830424000104000040000000039 -:10CCA0008F820044100000063442F0808F820044DE -:10CCB0003C03FFFF34633F7F004310243442A080D5 -:10CCC000AF8200448F830054100000EA2402000465 -:10CCD0008F8300543C0200018C426F282463D8F0FB -:10CCE000004310232C422710144001472402000562 -:10CCF000100000D8000000008F8202203C03F700E3 -:10CD000000431025AF820220AF8002043C010002E4 -:10CD1000100000D6AC208FE08F8300543C0200014D -:10CD20008C426F282463FFF6004310232C42000A34 -:10CD30001440013524020007100000D70000000055 -:10CD40000C003F50000000001040012D24020001A3 -:10CD50008F8202143C03FFFF3C0400018C846F1C93 -:10CD6000004310243442251FAF820214240200081D -:10CD700010800005AEE204B83C0200018C426E4413 -:10CD800010400064240200018F8202203C0300084E -:10CD9000004310241040006A3C020200100000789A -:10CDA000000000008EE204B82443FFFF2C6200075D -:10CDB00010400115000310803C01000100220821F1 -:10CDC0008C226B3800400008000000000C003DAFD2 -:10CDD000000000003C010001AC206D9CAF8002040B -:10CDE0003C0100020C004482AC208FE024020001D0 -:10CDF0003C010001AC226DB42402000210000102CB -:10CE0000AEE204B80C004547000000003C030001FE -:10CE10008C636DB410000084240200093C020002FF -:10CE20008C428FF830424000104000033C0200C8A2 -:10CE300010000002344201F6344201FEAF82023893 -:10CE40008F8300541000008B240200048F83005451 -:10CE50003C0200018C426F282463D8F00043102369 -:10CE60002C422710144000E824020005100000792D -:10CE7000000000008F8202203C03F70000431025D1 -:10CE8000AF820220AF8002043C0100021000007754 -:10CE9000AC208FE08F8300543C0200018C426F284D -:10CEA0002463FFF6004310232C42000A144000D6EE -:10CEB0002402000710000078000000000C003F5022 -:10CEC00000000000104000CE240200018F820214F6 -:10CED0003C03FFFF3C0400018C846F1C00431024C2 -:10CEE0003442251FAF820214240200081080000F74 -:10CEF000AEE204B83C0200018C426E441440000BC8 -:10CF0000000000008F82022034420002AF82022023 -:10CF1000240200013C010002AC228F900C004E9CC8 -:10CF20008F84022010000016000000008F82022073 -:10CF30003C03000800431024144000113C0202008E -:10CF40000282A0252402000E3C010002AC228F9038 -:10CF50000C00551B000020218F8202203442000269 -:10CF60000C003E6DAF8202203C0500018CA56D983F -:10CF70000C00529B00002021100000A300000000C4 -:10CF80003C0200018C426E441040009F00000000F3 -:10CF90003C0200018C426E402442FFFF3C01000134 -:10CFA000AC226E4014400098240200023C010001B3 -:10CFB000AC206E443C01000110000093AC226E4096 -:10CFC0008EE204B82443FFFF2C6200071040008E5D -:10CFD000000310803C010001002208218C226B58C4 -:10CFE00000400008000000003C0200018C426DA4DB -:10CFF00010400018240200050C00448200000000CC -:10D0000024020002AEE204B83C0100011000007EE0 -:10D01000AC206DA40C004963000000003C0300013B -:10D020008C636DD42402000614620077240200038E -:10D0300010000075AEE204B83C0500018CA56D98A7 -:10D040003C0600028CC68FF80C0051040000202121 -:10D05000240200051000006CAEE204B88F820220AA -:10D060003C03F70000431025AF8202208F83005459 -:10D0700024020006AEE204B83C0100011000006288 -:10D08000AC236F288F8202203C030004004310244D -:10D0900010400003240200071000005BAEE204B859 -:10D0A0008F8300543C0200018C426F282463D8F027 -:10D0B000004310232C4227101440000324020001D7 -:10D0C0003C010001AC226D9C3C0200028C428FF8B6 -:10D0D000304250001040004C000000008F820220BF -:10D0E0003042800010400007000000008F820220C4 -:10D0F0003C03FFFF34637FFF004310241000004215 -:10D10000AF8202208F820220344280001000003E55 -:10D11000AF8202203C0500018CA56D980C00529B4B -:10D12000000020210C00551B000020213C020002C1 -:10D130008C428FF004410032240200018F820214DD -:10D140003C03FFFF004310243442251FAF8202142A -:10D1500024020008AEE204B88F82022034420002AA -:10D16000AF8202208F8202203C030004004310247F -:10D1700014400016000000003C0200028C428FF8B0 -:10D18000304250001040000D000000008F8202204D -:10D190003042800010400006000000008F82022014 -:10D1A0003C03FFFF34637FFF1000000300431024A3 -:10D1B0008F82022034428000AF8202208F820220C0 -:10D1C0003C03F70000431025AF8202203C0200011F -:10D1D00094426F2624429FBC2C420004104000045D -:10D1E00024040018240500020C004DDB2406002056 -:10D1F0000C003E6D00000000100000030000000065 -:10D200003C010001AC226D9C8FBF001803E00008B8 -:10D2100027BD00208F8202008F8202208F82022091 -:10D2200034420004AF8202208F8202003C050001DC -:10D230008CA56D9834420004AF82020024020002E3 -:10D2400010A2004B2CA20003104000052402000194 -:10D2500010A2000A00000000100000B10000000051 -:10D260002402000410A200722402000810A200850B -:10D270003C02F0FF100000AA000000008F83005065 -:10D280003C02F0FF3442FFFF3C0400018C846F40FD -:10D29000006218243C0207000062182524020E00D8 -:10D2A0002484FFFB2C840002AF830050AF85020072 -:10D2B000AF85022014800006AF8202388F820044BE -:10D2C0003C03FFFF34633F7F00431024AF820044E0 -:10D2D0003C0300018C636F402402000514620004CB -:10D2E000000000008F82004434425000AF820044AE -:10D2F0003C0200018C426D883C0300018C636F404E -:10D30000344200222463FFFC2C6300021460000CF2 -:10D31000AF8202003C0200018C426DAC3C03000174 -:10D320008C636D903C0400018C846D8C34428000D1 -:10D3300000621825006418251000000A34620002FB -:10D340003C0200018C426D903C0300018C636DAC8B -:10D350003C0400018C846D8C004310250044102592 -:10D3600034420002AF8202201000002F240200018C -:10D3700024020E01AF8202388F8300503C02F0FF7E -:10D380003442FFFF3C0400018C846F1C00621824AF -:10D390003C020D000062182524020001AF830050FA -:10D3A000AF820200AF820220108000053C033F00E4 -:10D3B0003C0200018C426D80100000043463007058 -:10D3C0003C0200018C426D803463007200431025E2 -:10D3D000AF8202003C0300018C636D843C02F700C5 -:10D3E000006218253C0200018C426D903C04000153 -:10D3F0008C846DAC3C0500018CA56F40004310256A -:10D4000000441025AF8202202402000514A2000669 -:10D41000240200018F8200442403AFFF0043102444 -:10D42000AF820044240200011000003DAF820238A8 -:10D430008F8300503C02F0FF3442FFFF3C040001A8 -:10D440008C846F1C006218243C020A0000621825BC -:10D4500024020001AF830050AF8202001080001E42 -:10D46000AF8202203C0200018C426E441440001A3C -:10D470003C033F003C0200018C426D801000001A0A -:10D48000346300E08F8300503C0400018C846F1CE7 -:10D490003442FFFF006218241080000FAF83005059 -:10D4A0003C0200018C426E441440000B3C043F00DF -:10D4B0003C0300018C636D80348400E02402000191 -:10D4C000AF820200AF82022000641825AF83020001 -:10D4D000100000083C05F7003C0200018C426D8002 -:10D4E0003C033F00346300E200431025AF8202009A -:10D4F0003C05F70034A580003C0300018C636D847B -:10D500003C0200018C426D903C0400018C846DACA7 -:10D51000006518250043102500441025AF82022025 -:10D5200003E00008000000003C0300018C636DB4C0 -:10D530003C0200018C426DB810620003240200021C -:10D540003C010001AC236DB81062001D2C62000389 -:10D55000104000252402000114620023240200046C -:10D560003C0300018C636D981062000624020008E1 -:10D570001462000C3C0200C8344201FB1000000998 -:10D58000AF82023824020E01AF8202388F8200443B -:10D590003C03FFFF34633F7F00431024344200808C -:10D5A000AF8200448F830054240200023C0100013A -:10D5B000AC226DB43C0100011000000BAC236F2CB9 -:10D5C0008F8300543C0200018C426F2C2463D8F0FE -:10D5D000004310232C4227101440000324020009AA -:10D5E0003C010001AC226DB403E000080000000023 -:10D5F00000000000000000000000000027BDFFD870 -:10D60000AFB2001800809021AFB3001C00A0982199 -:10D61000AFB1001400C08821AFB00010000080211D -:10D62000AFBF0020A62000000C004D7824040001AC -:10D63000261000012E0200201440FFFB0000000015 -:10D640000C004D78000020210C004D7824040001CE -:10D650000C004D78240400010C004D7800002021BE -:10D66000241000100250102410400002000020215D -:10D67000240400010C004D78001080421600FFFACF -:10D6800002501024241000100270102410400002D8 -:10D6900000002021240400010C004D78001080427D -:10D6A0001600FFFA027010240C004DB934108000EF -:10D6B0000C004DB9000000000C004D5800000000A7 -:10D6C00050400005001080429622000000501025B6 -:10D6D000A6220000001080421600FFF700000000A4 -:10D6E0000C004DB9000000008FBF00208FB3001C5C -:10D6F0008FB200188FB100148FB0001003E0000843 -:10D7000027BD002827BDFFD8AFB1001400808821B5 -:10D71000AFB2001800A09021AFB3001C00C0982148 -:10D72000AFB0001000008021AFBF00200C004D788A -:10D7300024040001261000012E0200201440FFFBEB -:10D74000000000000C004D78000020210C004D78F6 -:10D75000240400010C004D78000020210C004D78BD -:10D760002404000124100010023010241040000294 -:10D7700000002021240400010C004D78001080429C -:10D780001600FFFA0230102424100010025010245A -:10D790001040000200002021240400010C004D78FC -:10D7A000001080421600FFFA025010240C004D7841 -:10D7B000240400010C004D7800002021341080006A -:10D7C000966200000050102410400002000020214A -:10D7D000240400010C004D78001080421600FFF870 -:10D7E000000000000C004DB9000000008FBF0020B9 -:10D7F0008FB3001C8FB200188FB100148FB00010CF -:10D8000003E0000827BD00283C0400018C846DD093 -:10D810003C0200018C426E1827BDFFD8AFBF00202C -:10D82000AFB1001C10820003AFB000183C01000132 -:10D83000AC246E183C0300018C636F402402000589 -:10D84000146200052483FFFF0C0049630000000000 -:10D850001000034C000000002C620013104003492C -:10D86000000310803C010001002208218C226B8003 -:10D8700000400008000000000C004DB900008021AD -:10D8800034028000A7A2001027B100100C004D78D0 -:10D8900024040001261000012E0200201440FFFB8A -:10D8A000000000000C004D78000020210C004D7895 -:10D8B000240400010C004D78000020210C004D785C -:10D8C0002404000124100010320200011040000264 -:10D8D00000002021240400010C004D78001080423B -:10D8E0001600FFFA32020001241000100C004D78DF -:10D8F00000002021001080421600FFFC0000000004 -:10D900000C004D78240400010C004D78000020210B -:10D9100034108000962200000050102410400002B5 -:10D9200000002021240400010C004D7800108042EA -:10D930001600FFF8000000000C004DB900000000C8 -:10D940001000030E2402000227B10010A7A000104F -:10D95000000080210C004D782404000126100001F5 -:10D960002E0200201440FFFB000000000C004D7848 -:10D97000000020210C004D78240400010C004D789B -:10D98000240400010C004D78000020212410001018 -:10D990003202000110400002000020212404000196 -:10D9A0000C004D78001080421600FFFA3202000190 -:10D9B000241000100C004D7800002021001080423F -:10D9C0001600FFFC000000000C004DB93410800070 -:10D9D0000C004DB9000000000C004D580000000084 -:10D9E0005040000500108042962200000050102593 -:10D9F000A6220000001080421600FFF70000000081 -:10DA00000C004DB90000000097A2001030428000C9 -:10DA1000144002DC24020003100002D800000000C1 -:10DA200024021200A7A2001027B1001000008021DC -:10DA30000C004D7824040001261000012E02002065 -:10DA40001440FFFB000000000C004D780000202176 -:10DA50000C004D78240400010C004D7800002021BA -:10DA60000C004D7824040001241000103202000143 -:10DA70001040000200002021240400010C004D7819 -:10DA8000001080421600FFFA32020001241000103C -:10DA90000C004D7800002021001080421600FFFC91 -:10DAA000000000000C004D78240400010C004D78AB -:10DAB0000000202134108000962200000050102425 -:10DAC0001040000200002021240400010C004D78C9 -:10DAD000001080421600FFF8000000000C004DB955 -:10DAE000000000008F8300541000029624020004FE -:10DAF0008F8300543C0200018C426F3C2463FF9CE6 -:10DB0000004310232C4200641440029E24020002B1 -:10DB10003C0300018C636F40106202972C6200038B -:10DB20001440029624020011240200031062000532 -:10DB300024020004106202912402000F1000028FE0 -:10DB4000240200111000028D24020005240200149A -:10DB5000A7A2001027B10010000080210C004D7812 -:10DB600024040001261000012E0200201440FFFBB7 -:10DB7000000000000C004D78000020210C004D78C2 -:10DB8000240400010C004D78000020210C004D7889 -:10DB90002404000124100010320200011040000291 -:10DBA00000002021240400010C004D780010804268 -:10DBB0001600FFFA32020001241000103202001297 -:10DBC0001040000200002021240400010C004D78C8 -:10DBD000001080421600FFFA320200120C004D784D -:10DBE000240400010C004D78000020213410800036 -:10DBF0009622000000501024104000020000202156 -:10DC0000240400010C004D78001080421600FFF83B -:10DC1000000000000C004DB9000000008F8300548C -:10DC200010000248240200068F8300543C020001C9 -:10DC30008C426F3C2463FF9C004310232C42006401 -:10DC400014400250240200071000024C00000000A3 -:10DC500024020006A7A2001027B1001000008021B6 -:10DC60000C004D7824040001261000012E02002033 -:10DC70001440FFFB000000000C004D780000202144 -:10DC80000C004D78240400010C004D780000202188 -:10DC90000C004D7824040001241000103202000111 -:10DCA0001040000200002021240400010C004D78E7 -:10DCB000001080421600FFFA32020001241000100A -:10DCC0003202001310400002000020212404000151 -:10DCD0000C004D78001080421600FFFA320200134B -:10DCE0000C004D78240400010C004D780000202128 -:10DCF00034108000962200000050102410400002D2 -:10DD000000002021240400010C004D780010804206 -:10DD10001600FFF8000000000C004DB900000000E4 -:10DD20008F83005410000207240200088F830054E0 -:10DD30003C0200018C426F3C2463FF9C0043102393 -:10DD40002C4200641440020F240200091000020B50 -:10DD50000000000027B10010A7A0001000008021E3 -:10DD60000C004D7824040001261000012E02002032 -:10DD70001440FFFB000000000C004D780000202143 -:10DD80000C004D78240400010C004D78240400019F -:10DD90000C004D78000020212410001032020001F8 -:10DDA0001040000200002021240400010C004D78E6 -:10DDB000001080421600FFFA320200012410001009 -:10DDC000320200181040000200002021240400014B -:10DDD0000C004D78001080421600FFFA3202001845 -:10DDE0000C004DB9341080000C004DB9000000004B -:10DDF0000C004D580000000050400005001080420B -:10DE00009622000000501025A6220000001080423B -:10DE10001600FFF7000000000C004DB90000802143 -:10DE200097A2001027B1001034420001A7A20010F1 -:10DE30000C004D7824040001261000012E02002061 -:10DE40001440FFFB000000000C004D780000202172 -:10DE50000C004D78240400010C004D7800002021B6 -:10DE60000C004D782404000124100010320200013F -:10DE70001040000200002021240400010C004D7815 -:10DE8000001080421600FFFA320200012410001038 -:10DE9000320200181040000200002021240400017A -:10DEA0000C004D78001080421600FFFA3202001874 -:10DEB0000C004D78240400010C004D780000202156 -:10DEC0003410800096220000005010241040000200 -:10DED00000002021240400010C004D780010804235 -:10DEE0001600FFF8000000000C004DB90000000013 -:10DEF0008F830054100001932402000A8F83005482 -:10DF00003C0200018C426F3C2463FF9C00431023C1 -:10DF10002C4200641440019B2402000B1000019766 -:10DF20000000000027B10010A7A000100000802111 -:10DF30000C004D7824040001261000012E02002060 -:10DF40001440FFFB000000000C004D780000202171 -:10DF50000C004D78240400010C004D7824040001CD -:10DF60000C004D7800002021241000103202000126 -:10DF70001040000200002021240400010C004D7814 -:10DF8000001080421600FFFA320200012410001037 -:10DF9000320200171040000200002021240400017A -:10DFA0000C004D78001080421600FFFA3202001774 -:10DFB0000C004DB9341080000C004DB90000000079 -:10DFC0000C004D5800000000504000050010804239 -:10DFD0009622000000501025A6220000001080426A -:10DFE0001600FFF7000000000C004DB90000802172 -:10DFF00097A2001027B1001034420700A7A200101A -:10E000000C004D7824040001261000012E0200208F -:10E010001440FFFB000000000C004D7800002021A0 -:10E020000C004D78240400010C004D7800002021E4 -:10E030000C004D782404000124100010320200016D -:10E040001040000200002021240400010C004D7843 -:10E05000001080421600FFFA320200012410001066 -:10E0600032020017104000020000202124040001A9 -:10E070000C004D78001080421600FFFA32020017A3 -:10E080000C004D78240400010C004D780000202184 -:10E09000341080009622000000501024104000022E -:10E0A00000002021240400010C004D780010804263 -:10E0B0001600FFF8000000000C004DB90000000041 -:10E0C0008F8300541000011F2402000C8F83005422 -:10E0D0003C0200018C426F3C2463FF9C00431023F0 -:10E0E0002C42006414400127240200121000012376 -:10E0F0000000000027B10010A7A000100000802140 -:10E100000C004D7824040001261000012E0200208E -:10E110001440FFFB000000000C004D78000020219F -:10E120000C004D78240400010C004D7824040001FB -:10E130000C004D7800002021241000103202000154 -:10E140001040000200002021240400010C004D7842 -:10E15000001080421600FFFA320200012410001065 -:10E1600032020014104000020000202124040001AB -:10E170000C004D78001080421600FFFA32020014A5 -:10E180000C004DB9341080000C004DB900000000A7 -:10E190000C004D5800000000504000050010804267 -:10E1A0009622000000501025A62200000010804298 -:10E1B0001600FFF7000000000C004DB900008021A0 -:10E1C00097A2001027B1001034420010A7A200103F -:10E1D0000C004D7824040001261000012E020020BE -:10E1E0001440FFFB000000000C004D7800002021CF -:10E1F0000C004D78240400010C004D780000202113 -:10E200000C004D782404000124100010320200019B -:10E210001040000200002021240400010C004D7871 -:10E22000001080421600FFFA320200012410001094 -:10E2300032020014104000020000202124040001DA -:10E240000C004D78001080421600FFFA32020014D4 -:10E250000C004D78240400010C004D7800002021B2 -:10E26000341080009622000000501024104000025C -:10E2700000002021240400010C004D780010804291 -:10E280001600FFF8000000000C004DB9000000006F -:10E290008F830054100000AB240200138F830054BE -:10E2A0003C0200018C426F3C2463FF9C004310231E -:10E2B0002C420064144000B32402000D100000AF93 -:10E2C0000000000027B10010A7A00010000080216E -:10E2D0000C004D7824040001261000012E020020BD -:10E2E0001440FFFB000000000C004D7800002021CE -:10E2F0000C004D78240400010C004D78240400012A -:10E300000C004D7800002021241000103202000182 -:10E310001040000200002021240400010C004D7870 -:10E32000001080421600FFFA320200012410001093 -:10E3300032020018104000020000202124040001D5 -:10E340000C004D78001080421600FFFA32020018CF -:10E350000C004DB9341080000C004DB900000000D5 -:10E360000C004D5800000000504000050010804295 -:10E370009622000000501025A622000000108042C6 -:10E380001600FFF7000000000C004DB900008021CE -:10E3900097A2001027B100103042FFFEA7A2001084 -:10E3A0000C004D7824040001261000012E020020EC -:10E3B0001440FFFB000000000C004D7800002021FD -:10E3C0000C004D78240400010C004D780000202141 -:10E3D0000C004D78240400012410001032020001CA -:10E3E0001040000200002021240400010C004D78A0 -:10E3F000001080421600FFFA3202000124100010C3 -:10E400003202001810400002000020212404000104 -:10E410000C004D78001080421600FFFA32020018FE -:10E420000C004D78240400010C004D7800002021E0 -:10E43000341080009622000000501024104000028A -:10E4400000002021240400010C004D7800108042BF -:10E450001600FFF8000000000C004DB9000000009D -:10E460008F830054100000372402000E240208405D -:10E47000A7A2001027B10010000080210C004D78E9 -:10E4800024040001261000012E0200201440FFFB8E -:10E49000000000000C004D78000020210C004D7899 -:10E4A000240400010C004D78000020210C004D7860 -:10E4B0002404000124100010320200011040000268 -:10E4C00000002021240400010C004D78001080423F -:10E4D0001600FFFA3202000124100010320200136D -:10E4E0001040000200002021240400010C004D789F -:10E4F000001080421600FFFA320200130C004D7823 -:10E50000240400010C004D7800002021341080000C -:10E51000962200000050102410400002000020212C -:10E52000240400010C004D78001080421600FFF812 -:10E53000000000000C004DB9000000008F83005463 -:10E54000240200103C010001AC226DD03C0100010E -:10E550001000000CAC236F3C8F8300543C02000180 -:10E560008C426F3C2463FF9C004310232C420064C8 -:10E570001440000400000000240200113C010001CE -:10E58000AC226DD08FBF00208FB1001C8FB000185F -:10E5900003E0000827BD00283C0300018C636D9850 -:10E5A00027BDFFC824020002AFBF0034AFB2003065 -:10E5B000AFB1002C14620004AFB000283C1200027E -:10E5C000100000038E528FF83C1200028E528FFC16 -:10E5D0003C0300018C636DD43C0200018C426E1C34 -:10E5E000506200042463FFFF3C010001AC236E1C59 -:10E5F0002463FFFF2C6200061040037700031080A5 -:10E600003C010001002208218C226BD80040000848 -:10E610000000000000002021000028210C004DDB3C -:10E6200034068000240400102405000224060002A1 -:10E63000240200020C004DDBA7A2001824020002F5 -:10E640003C01000110000364AC226DD427B1001816 -:10E65000A7A00018000080210C004D7824040001C0 -:10E66000261000012E0200201440FFFB00000000D5 -:10E670000C004D78000020210C004D78240400018E -:10E680000C004D78240400010C004D78000020217E -:10E69000241000103202000110400002000020216E -:10E6A000240400010C004D78001080421600FFFA8F -:10E6B00032020001241000100C004D7800002021CF -:10E6C000001080421600FFFC000000000C004DB955 -:10E6D000341080000C004DB9000000000C004D58B3 -:10E6E000000000005040000500108042962200000B -:10E6F00000501025A6220000001080421600FFF7EF -:10E70000000000000C004DB90000000097A20018A6 -:10E710003042800014400004240200033C01000148 -:10E72000AC226DD4240200033C0100011000032A36 -:10E73000AC226DD42404001024050002240600023B -:10E74000240200020C004DDBA7A200183C030001CC -:10E750008C636E2024020001146201E1000080211C -:10E7600027B10018A7A000180C004D782404000160 -:10E77000261000012E0200201440FFFB00000000C4 -:10E780000C004D78000020210C004D78240400017D -:10E790000C004D78240400010C004D78000020216D -:10E7A000241000103202000110400002000020215D -:10E7B000240400010C004D78001080421600FFFA7E -:10E7C0003202000124100010320200181040000232 -:10E7D00000002021240400010C004D78001080422C -:10E7E0001600FFFA320200180C004DB934108000F8 -:10E7F0000C004DB9000000000C004D580000000056 -:10E800005040000500108042962200000050102564 -:10E81000A6220000001080421600FFF70000000052 -:10E820000C004DB90000802127B10018A7A00018E6 -:10E830000C004D7824040001261000012E02002057 -:10E840001440FFFB000000000C004D780000202168 -:10E850000C004D78240400010C004D7824040001C4 -:10E860000C004D780000202124100010320200011D -:10E870001040000200002021240400010C004D780B -:10E88000001080421600FFFA32020001241000102E -:10E890003202001810400002000020212404000170 -:10E8A0000C004D78001080421600FFFA320200186A -:10E8B0000C004DB9341080000C004DB90000000070 -:10E8C0000C004D5800000000504000050010804230 -:10E8D0009622000000501025A62200000010804261 -:10E8E0001600FFF7000000000C004DB90000802169 -:10E8F00024040018000028210C004DDB2406040429 -:10E90000A7A0001A0C004D78240400012610000175 -:10E910002E0200201440FFFB000000000C004D7888 -:10E92000000020210C004D78240400010C004D78DB -:10E93000240400010C004D78000020212410001058 -:10E9400032020001104000020000202124040001D6 -:10E950000C004D78001080421600FFFA32020001D0 -:10E960002410001032020018104000020000202184 -:10E97000240400010C004D78001080421600FFFABC -:10E98000320200180C004DB9341080000C004DB953 -:10E99000000000000C004D58000000005040000531 -:10E9A0000010804297A2001A00501025A7A2001A5A -:10E9B000001080421600FFF7000000000C004DB967 -:10E9C00000008021A7A0001A0C004D78240400014B -:10E9D000261000012E0200201440FFFB0000000062 -:10E9E0000C004D78000020210C004D78240400011B -:10E9F0000C004D78240400010C004D78000020210B -:10EA000024100010320200011040000200002021FA -:10EA1000240400010C004D78001080421600FFFA1B -:10EA200032020001241000103202001810400002CF -:10EA300000002021240400010C004D7800108042C9 -:10EA40001600FFFA320200180C004DB93410800095 -:10EA50000C004DB9000000000C004D5800000000F3 -:10EA6000504000050010804297A2001A0050102567 -:10EA7000A7A2001A001080421600FFF70000000055 -:10EA80000C004DB900008021A7A0001C0C004D789F -:10EA900024040001261000012E0200201440FFFB78 -:10EAA000000000000C004D78000020210C004D7883 -:10EAB000240400010C004D78240400010C004D7862 -:10EAC00000002021241000100C004D7800002021AF -:10EAD000001080421600FFFC00000000241000100F -:10EAE0003202001E10400002000020212404000118 -:10EAF0000C004D78001080421600FFFA3202001E12 -:10EB00000C004DB9341080000C004DB9000000001D -:10EB10000C004D58000000005040000500108042DD -:10EB200097A2001C00501025A7A2001C00108042D4 -:10EB30001600FFF7000000000C004DB90000802116 -:10EB4000A7A0001C0C004D78240400012610000131 -:10EB50002E0200201440FFFB000000000C004D7846 -:10EB6000000020210C004D78240400010C004D7899 -:10EB7000240400010C004D78000020212410001016 -:10EB80000C004D7800002021001080421600FFFC90 -:10EB900000000000241000103202001E104000028D -:10EBA00000002021240400010C004D780010804258 -:10EBB0001600FFFA3202001E0C004DB9341080001E -:10EBC0000C004DB9000000000C004D580000000082 -:10EBD000504000050010804297A2001C00501025F4 -:10EBE000A7A2001C001080421600FFF700000000E2 -:10EBF0000C004DB90000802124020002A7A2001ED3 -:10EC00000C004D7824040001261000012E02002083 -:10EC10001440FFFB000000000C004D780000202194 -:10EC20000C004D78240400010C004D7800002021D8 -:10EC30000C004D7824040001241000100C004D78C5 -:10EC400000002021001080421600FFFC00000000A0 -:10EC5000241000103202001E10400002000020218B -:10EC6000240400010C004D78001080421600FFFAC9 -:10EC70003202001E0C004D78240400010C004D7877 -:10EC8000000020213410800097A2001E00501024A4 -:10EC90001040000200002021240400010C004D78E7 -:10ECA000001080421600FFF8000000000C004DB973 -:10ECB00000008021A7A000200C004D782404000152 -:10ECC000261000012E0200201440FFFB000000006F -:10ECD0000C004D78000020210C004D782404000128 -:10ECE0000C004D78240400010C004D780000202118 -:10ECF000241000100C004D780000202100108042EC -:10ED00001600FFFC00000000241000103202001E5C -:10ED10001040000200002021240400010C004D7866 -:10ED2000001080421600FFFA3202001E0C004DB99E -:10ED3000341080000C004DB9000000000C004D584C -:10ED400000000000504000050010804297A2002003 -:10ED500000501025A7A20020001080421600FFF7E7 -:10ED6000000000000C004DB900008021A7A0002089 -:10ED70000C004D7824040001261000012E02002012 -:10ED80001440FFFB000000000C004D780000202123 -:10ED90000C004D78240400010C004D78240400017F -:10EDA0000C004D7800002021241000100C004D783C -:10EDB00000002021001080421600FFFC000000002F -:10EDC000241000103202001E10400002000020211A -:10EDD000240400010C004D78001080421600FFFA58 -:10EDE0003202001E0C004DB9341080000C004DB9E9 -:10EDF000000000000C004D580000000050400005CD -:10EE00000010804297A2002000501025A7A20020E9 -:10EE1000001080421600FFF7000000000C004DB902 -:10EE200000008021A7A000220C004D7824040001DE -:10EE3000261000012E0200201440FFFB00000000FD -:10EE40000C004D78000020210C004D7824040001B6 -:10EE50000C004D78000020210C004D7824040001A6 -:10EE6000241000100C004D7800002021001080427A -:10EE70001600FFFC00000000241000100C004D786C -:10EE800000002021001080421600FFFC000000005E -:10EE90000C004D78240400010C004D780000202166 -:10EEA0003410800097A2002200501024104000026D -:10EEB00000002021240400010C004D780010804245 -:10EEC0001600FFF8000000000C004DB90000000023 -:10EED00024040018240500020C004DDB2406000465 -:10EEE0003C1000018E106E24240200011602011D48 -:10EEF000000000003C02000194426F263C0100012A -:10EF0000AC206E2424429FBC2C4200041040000C14 -:10EF100024040009240500010C004DDB2406040034 -:10EF200024040018240500010C004DDB24060020F9 -:10EF300024040018240500010C004DDB24062000E9 -:10EF40003C02400002421024104001233C022000F9 -:10EF50000242102410400004000000003C010001A7 -:10EF600010000003AC306F1C3C010001AC206F1C92 -:10EF70003C0300018C636F3424020005146200F925 -:10EF8000000000003C0200018C426F1C1040006732 -:10EF90003C0200040242102410400011A7A00018F7 -:10EFA0003C02000802421024104000022402020029 -:10EFB000A7A200183C0200100242102410400004D6 -:10EFC0000000000097A2001834420100A7A2001818 -:10EFD00097A600182404000910000004000028214E -:10EFE0002404000900002821000030210C004DDB22 -:10EFF0000000000024020001A7A2001A3C02000841 -:10F00000024210241040000C3C0200020242102474 -:10F010001040000224020101A7A2001A3C020001D4 -:10F0200002421024104000053C02001097A2001A72 -:10F0300034420040A7A2001A3C02001002421024F1 -:10F040001040000E3C020002024210241040000555 -:10F050003C02000197A2001A34420080A7A2001AC5 -:10F060003C02000102421024104000053C0300A0B5 -:10F0700097A2001A34420020A7A2001A3C0300A065 -:10F0800002431024544300043C02002097A2001ABB -:10F090001000000C344204000242102450400004CE -:10F0A0003C02008097A2001A1000000634420800BB -:10F0B00002421024104000040000000097A2001A31 -:10F0C00034420C00A7A2001A97A6001A24040004D8 -:10F0D0000C004DDB000028213C02000402421024F9 -:10F0E00010400004A7A0001C32425000144000044D -:10F0F00000000000324240001040000500002021C6 -:10F100000C004CF902402021100000960000000085 -:10F1100097A6001C0000282134C612000C004DDB0D -:10F12000A7A6001C1000008F00000000024210245F -:10F1300010400004A7A00018324250001440000400 -:10F140000000000032424000104000053C02001068 -:10F150000C004CF90240202110000019A7A0001A51 -:10F1600002421024104000040000000097A2001882 -:10F1700010000004A7A2001897A200183442010052 -:10F18000A7A200183C020001024210241040000413 -:10F190000000000097A2001810000004A7A20018A9 -:10F1A00097A2001834422000A7A2001897A60018C2 -:10F1B000000020210C004DDB00002821A7A0001A30 -:10F1C000000080210C004D7824040001261000016D -:10F1D0002E0200201440FFFB000000000C004D78C0 -:10F1E000000020210C004D78240400010C004D7813 -:10F1F000240400010C004D78000020212410001090 -:10F20000320200011040000200002021240400010D -:10F210000C004D78001080421600FFFA3202000107 -:10F22000241000100C004D780000202100108042B6 -:10F230001600FFFC000000000C004DB934108000E7 -:10F240000C004DB9000000000C004D5800000000FB -:10F25000504000050010804297A2001A005010256F -:10F26000A7A2001A001080421600FFF7000000005D -:10F270000C004DB900008021A7A0001A0C004D78A9 -:10F2800024040001261000012E0200201440FFFB80 -:10F29000000000000C004D78000020210C004D788B -:10F2A000240400010C004D78240400010C004D786A -:10F2B0000000202124100010320200011040000242 -:10F2C00000002021240400010C004D780010804231 -:10F2D0001600FFFA32020001241000100C004D78D5 -:10F2E00000002021001080421600FFFC00000000FA -:10F2F0000C004DB9341080000C004DB90000000026 -:10F300000C004D58000000005040000500108042E5 -:10F3100097A2001A00501025A7A2001A00108042E0 -:10F320001600FFF7000000000C004DB900000000BF -:10F330003C04000124846BCC97A6001897A7001A00 -:10F340003C0200018C426D983C0300018C636F1CF1 -:10F350003C05000D34A50205AFA200100C002B3BAC -:10F36000AFA300148F830054240200043C01000169 -:10F37000AC226DD43C01000110000017AC236F38A3 -:10F380008F8300543C0200018C426F382463FF9C41 -:10F39000004310232C4200641440000F00000000C2 -:10F3A0008F820220240300053C010001AC236DD4B0 -:10F3B0003C03F7000043102510000007AF82022035 -:10F3C000240200063C010001AC226DD4240200118D -:10F3D0003C010001AC226DD08FBF00348FB20030F1 -:10F3E0008FB1002C8FB0002803E0000827BD003843 -:10F3F00027BDFFD8AFB0001800808021AFB1001C3E -:10F40000000088213202400010400013AFBF0020EE -:10F410003C020010020210242C42000100021023C2 -:10F42000304341003C020001020210241440000657 -:10F43000347140003C020002020210241440000219 -:10F440003471600034714040000020210000282108 -:10F45000100000360220302132021000104000352A -:10F4600000002021000028210C004DDB2406004074 -:10F4700024040018000028210C004DDB24060C0099 -:10F4800024040017000028210C004DDB2406040092 -:10F4900024040016000028210C004DDB2406000681 -:10F4A00024040017000028210C004DDB2406250051 -:10F4B00024040016000028210C004DDB2406000661 -:10F4C00024040017000028210C004DDB2406460010 -:10F4D00024040016000028210C004DDB2406000641 -:10F4E00024040017000028210C004DDB24066700CF -:10F4F00024040016000028210C004DDB2406000621 -:10F500002404001F000028210C004DDB24060010FD -:10F5100024040009000028210C004DDB24061500FE -:10F52000240400090000282124061D000C004DDBE6 -:10F53000000000003C04000124846BF03C05000E38 -:10F5400034A501000200302102203821AFA00010B4 -:10F550000C002B3BAFA000148FBF00208FB1001C0C -:10F560008FB0001803E0000827BD00288F850044F5 -:10F570008F8200443C030001004310253C03000837 -:10F58000AF8200448F8400548F82005400A328244B -:10F5900010000002248400018F8200540082102396 -:10F5A0002C4200021440FFFC000000008F82004447 -:10F5B0003C03FFFE3463FFFF00431024AF8200448E -:10F5C0008F8300548F8200541000000224630001D6 -:10F5D0008F820054006210232C4200021440FFFC72 -:10F5E0000000000003E0000800A010218F83004409 -:10F5F0003C02FFF03442FFFF000424800062182424 -:10F600003C0200020082202500641825AF830044DC -:10F610008F8200443C03FFFE3463FFFF004310244D -:10F62000AF8200448F8300548F8200541000000288 -:10F63000246300018F820054006210232C420002D8 -:10F640001440FFFC000000008F8200443C030001D6 -:10F6500000431025AF8200448F8300548F820054F2 -:10F6600010000002246300018F8200540062102306 -:10F670002C4200021440FFFC0000000003E00008E0 -:10F68000000000008F8200442403FF7F0043102409 -:10F69000AF8200448F8300548F8200541000000218 -:10F6A000246300018F820054006210232C42000268 -:10F6B0001440FFFC000000008F82004434420080B0 -:10F6C000AF8200448F8300548F82005410000002E8 -:10F6D000246300018F820054006210232C42000238 -:10F6E0001440FFFC0000000003E0000800000000E0 -:10F6F0008F8200443C03FFF03463FFFF004310247B -:10F70000AF8200448F8200443C0300010043102577 -:10F71000AF8200448F8300548F8200541000000297 -:10F72000246300018F820054006210232C420002E7 -:10F730001440FFFC000000008F8200443C03FFFEE9 -:10F740003463FFFF00431024AF8200448F830054D2 -:10F750008F82005410000002246300018F82005445 -:10F76000006210232C4200021440FFFC0000000045 -:10F7700003E000080000000027BDFFC8AFB300246D -:10F7800000809821AFBE002C00A0F021AFB2002075 -:10F7900000C0902133C2FFFFAFBF0030AFB50028DB -:10F7A000AFB1001CAFB0001814400034A7B2001075 -:10F7B0003271FFFF27B20010000080210C004D784D -:10F7C00024040001261000012E0200201440FFFB3B -:10F7D000000000000C004D78000020210C004D7846 -:10F7E000240400010C004D78000020210C004D780D -:10F7F0002404000124100010320200011040000215 -:10F8000000002021240400010C004D7800108042EB -:10F810001600FFFA320200012410001002301024FA -:10F820001040000200002021240400010C004D784B -:10F83000001080421600FFFA023010240C004D78B0 -:10F84000240400010C004D780000202134108000B9 -:10F8500096420000005010241040000200002021B9 -:10F86000240400010C004D78001080421200007545 -:10F87000000000001000FFF6000000003275FFFFDE -:10F8800027B10010A7A00010000080210C004D78C7 -:10F8900024040001261000012E0200201440FFFB6A -:10F8A000000000000C004D78000020210C004D7875 -:10F8B000240400010C004D78240400010C004D7854 -:10F8C000000020212410001032020001104000022C -:10F8D00000002021240400010C004D78001080421B -:10F8E0001600FFFA320200012410001002B01024AA -:10F8F0001040000200002021240400010C004D787B -:10F90000001080421600FFFA02B010240C004DB91E -:10F91000341080000C004DB9000000000C004D5860 -:10F9200000000000504000050010804296220000B8 -:10F9300000501025A6220000001080421600FFF79C -:10F94000000000000C004DB90000000033C5FFFFAF -:10F950002402000154A200042402000297A2001015 -:10F96000100000060052102514A200063271FFFF9D -:10F9700097A200100012182700431024A7A200101D -:10F980003271FFFF27B20010000080210C004D787B -:10F9900024040001261000012E0200201440FFFB69 -:10F9A000000000000C004D78000020210C004D7874 -:10F9B000240400010C004D78000020210C004D783B -:10F9C0002404000124100010320200011040000243 -:10F9D00000002021240400010C004D78001080421A -:10F9E0001600FFFA32020001241000100230102429 -:10F9F0001040000200002021240400010C004D787A -:10FA0000001080421600FFFA023010240C004D78DE -:10FA1000240400010C004D780000202134108000E7 -:10FA200096420000005010241040000200002021E7 -:10FA3000240400010C004D78001080421600FFF8ED -:10FA4000000000000C004DB9000000008FBF003026 -:10FA50008FBE002C8FB500288FB300248FB20020FA -:10FA60008FB1001C8FB0001803E0000827BD0038DC -:10FA700000000000000000000000000027BDFFE8BB -:10FA8000AFBF00108EE304B824020008146201E046 -:10FA9000000000003C0200018C426F1C1440000575 -:10FAA000000000000C003DAF8F840224100001D83C -:10FAB000000000008F8202203C0300080043102455 -:10FAC00010400026240200018F8402248F8202202D -:10FAD0003C03040000431024104000060000000016 -:10FAE0003C010002AC208FA03C0100021000000B82 -:10FAF000AC208FC03C03000224638FA08C62000006 -:10FB000024420001AC6200002C42000214400003B9 -:10FB1000240200013C010002AC228FC03C02000222 -:10FB20008C428FC01040000630820040104000041C -:10FB3000240200013C01000210000003AC228FC42B -:10FB40003C010002AC208FC43C010002AC248F9C1D -:10FB50003C0100021000000BAC208FD03C010002E1 -:10FB6000AC228FD03C010002AC208FC03C010002CF -:10FB7000AC208FA03C010002AC208FC43C010002ED -:10FB8000AC208F9C3C0300028C638F903C020002EF -:10FB90008C428F94506200042463FFFF3C010002FA -:10FBA000AC238F942463FFFF2C62000E104001945D -:10FBB000000310803C010001002208218C226C000F -:10FBC0000040000800000000240200023C01000286 -:10FBD000AC208FC03C010002AC208FA03C01000291 -:10FBE000AC208F9C3C010002AC208FC43C01000281 -:10FBF000AC208FB83C010002AC208FB0AF80022453 -:10FC00003C010002AC228F903C0200028C428FD05B -:10FC10001440004F3C02FDFF3442FFFF0C003DAF9B -:10FC20000282A024AF8002048F8202002403FFFD21 -:10FC300000431024AF8202003C010002AC208FE0A0 -:10FC40008F8300543C0200028C428FB824040001D0 -:10FC50003C010002AC248FCC244200013C01000294 -:10FC6000AC228FB82C4200043C010002AC238FB4BC -:10FC700014400006240200033C010001AC246D9CEA -:10FC80003C0100021000015EAC208FB83C01000274 -:10FC90001000015BAC228F908F8300543C02000265 -:10FCA0008C428FB42463D8F0004310232C422710D9 -:10FCB00014400003240200043C010002AC228F9097 -:10FCC0003C0200028C428FD0144000213C02FDFF18 -:10FCD0003442FFFF1000014A0282A0243C040001CC -:10FCE0008C846F203C0100020C005084AC208FA853 -:10FCF0003C0200028C428FDCAF8202043C02000214 -:10FD00008C428FD0144000123C03FDFF8F8202040E -:10FD10003463FFFF304200301440012F0283A024DF -:10FD20003C0300028C638FDC240200053C010002CE -:10FD3000AC228F903C01000210000131AC238FE017 -:10FD40003C0200028C428FD0104000103C02FDFFAC -:10FD50003C0200018C426E3C244200013C01000147 -:10FD6000AC226E3C2C42000214400125240200010A -:10FD70003C010001AC226E443C010001AC206E3C11 -:10FD80003C0100011000011EAC226D9C3C030002EE -:10FD90008C638FC03442FFFF106001190282A024DF -:10FDA0003C0200028C428F9C1040011500000000B4 -:10FDB0003C010002AC228FC8240200033C01000277 -:10FDC000AC228FA0100000B8240200063C01000203 -:10FDD000AC208FA88F82020434420040AF8202041C -:10FDE0003C0200028C428FE0240300073C01000229 -:10FDF000AC238F90344200403C010002AC228FE0E3 -:10FE00003C0200028C428FC0104000050000000040 -:10FE10003C0200028C428F9C104000F02402000241 -:10FE20003C05000224A58FA08CA200002C424E218C -:10FE3000104000EA240200023C0200028C428FC4FF -:10FE4000104000EF2404FFBF3C0200028C428F9C54 -:10FE50003C0300028C638FC8004410240064182403 -:10FE600010430004240200013C010002100000E4E1 -:10FE7000AC228F9024020003ACA2000024020008F0 -:10FE80003C010002AC228F903C0200028C428FCCDD -:10FE90001040000C240200013C0400020C005091B0 -:10FEA0008C848F9C3C0200028C428FE81440000539 -:10FEB000240200013C0200028C428FE41040000644 -:10FEC000240200013C010001AC226D9C3C010002B7 -:10FED000100000CBAC208FB83C0200028C428FB0E7 -:10FEE0003C0300028C638F9C2C420001000210C076 -:10FEF000306300083C010002AC228FB03C010002DC -:10FF0000AC238FAC8F830054240200093C01000213 -:10FF1000AC228F903C010002100000B9AC238FB4DA -:10FF20008F8300543C0200028C428FB42463D8F0CB -:10FF3000004310232C4227101440009F00000000B3 -:10FF40003C0200028C428FC01040000500000000FF -:10FF50003C0200028C428F9C104000A02402000250 -:10FF60003C03000224638FA08C6200002C424E21CF -:10FF70001040009A240200023C0200028C428FCC06 -:10FF80001040000E000000003C0200028C428F9CDA -:10FF90003C010002AC208FCC304200801040002F8A -:10FFA0002402000C8F820204304200801440000CB6 -:10FFB00024020003100000292402000C3C0200026D -:10FFC0008C428F9C304200801440000524020003C4 -:10FFD0008F820204304200801040001F2402000380 -:10FFE000AC6200002402000A3C010002AC228F90A7 -:10FFF0003C04000224848FD88C8200003C03000261 -:020000021000EC -:100000008C638FB000431025AF8202048C83000004 -:100010003C0400028C848FB02402000B3C010002DF -:10002000AC228F90006418253C010002AC238FE0C5 -:100030003C05000224A58FA08CA200002C424E217A -:1000400010400066240200023C0200028C428FD065 -:1000500010400005000000002402000C3C010002DA -:1000600010000067AC228F903C0200028C428FC0CF -:1000700010400063000000003C0400028C848F9C50 -:1000800010800055308200083C0300028C638FAC66 -:100090001062005B240200033C010002AC248FC804 -:1000A000ACA20000240200063C0100021000005433 -:1000B000AC228F908F82020034420002AF82020095 -:1000C0008F8300542402000D3C010002AC228F906B -:1000D0003C010002AC238FB48F8300543C02000229 -:1000E0008C428FB42463D8F0004310232C42271095 -:1000F00014400031000000003C0200028C428FD00E -:10010000104000202402000E3C0300028C638FE4A8 -:100110003C01000214600015AC228F900C003E6D73 -:10012000000000003C0500018CA56D980C00529B5E -:10013000000020213C0300018C636D982402000420 -:10014000146200052403FFFB3C0200018C426D9405 -:10015000100000032403FFF73C0200018C426D9461 -:10016000004310243C010001AC226D948F830224D3 -:100170003C0202003C010002AC238FEC1000002086 -:100180000282A0253C0200028C428FC01040000574 -:10019000000000003C0200028C428F9C1040000FC7 -:1001A000240200023C0200028C428FA02C424E210D -:1001B0001040000A240200023C0200028C428FC060 -:1001C0001040000F000000003C0200028C428F9C97 -:1001D0001440000B00000000240200023C01000259 -:1001E00010000007AC228F903C0200028C428FC0AE -:1001F00010400003000000000C003DAF00000000B4 -:100200008F8202203C03F70000431025AF820220BA -:100210008FBF001003E0000827BD00183C03000258 -:1002200024638FE88C6200001040000534422000F7 -:100230003C010002AC228FDC10000003AC60000027 -:100240003C010002AC248FDC03E000080000000049 -:1002500027BDFFE030820030AFBF00183C01000234 -:10026000AC228FE4144000673C02FFFF34421F0EB3 -:1002700000821024144000612402003030822000EB -:100280001040005D3083800000031A0230820001BC -:10029000000212003C0400018C846F2000621825CB -:1002A000000331C23C03000124636E4830828000A9 -:1002B00000021202308400010004220000441025D4 -:1002C000000239C2000610800043102100471021AF -:1002D000904300002402000110620025000000008D -:1002E00010600007240200021062001324020003C1 -:1002F0001062002C3C05000F1000003700000000C9 -:100300008F8202002403FEFF00431024AF8202000C -:100310008F8202203C03FFFE3463FFFF0043102462 -:10032000AF8202203C010002AC2090043C0100029C -:1003300010000034AC20900C8F8202003442010087 -:10034000AF8202008F8202203C03FFFE3463FFFF76 -:1003500000431024AF820220240201003C0100026D -:10036000AC2290043C01000210000026AC20900C4E -:100370008F8202002403FEFF00431024AF8202009C -:100380008F8202203C03000100431025AF8202202F -:100390003C010002AC2090043C0100021000001956 -:1003A000AC23900C8F82020034420100AF82020025 -:1003B0008F8202203C03000100431025AF820220FF -:1003C000240201003C010002AC2290043C01000226 -:1003D0001000000CAC23900C34A5FFFF3C0400017E -:1003E00024846C38AFA300100C002B3BAFA000148A -:1003F0001000000400000000240200303C01000254 -:10040000AC228FE88FBF001803E0000827BD002052 -:1004100000000000000000000000000027BDFFC831 -:10042000AFB2002800809021AFB3002C00A098212B -:10043000AFB0002000C080213C04000124846C5037 -:100440003C0500093C0200018C426D9834A59001E6 -:100450000240302102603821AFBF0030AFB100242C -:10046000A7A0001AAFB000140C002B3BAFA20010E5 -:1004700024020002126200832E6200031040000575 -:10048000240200011262000A000000001000017343 -:100490000000000024020004126200F82402000898 -:1004A000126200F73C02FFEC1000016C000000003B -:1004B0003C0200018C426D94304200021440000462 -:1004C000001289403C02FFFB3442FFFF02028024FD -:1004D0003C01000200310821AC308FFC3C0240009E -:1004E000020210241040004E001023C2308400305D -:1004F000001013823042001C3C03000124636DD8BD -:1005000000431021008238213C0200200202102406 -:1005100010400006240201003C01000200310821C5 -:10052000AC229000100000053C0200803C0100025B -:1005300000310821AC2090003C020080020210240F -:1005400010400006001219403C0200013C0100026C -:100550000023082110000005AC2290080012114071 -:100560003C01000200220821AC20900894E4000025 -:100570003C0300018C636F402402000510620010F0 -:10058000A7A400183202400010400002348240004C -:10059000A7A200182404000194E20002240500042C -:1005A00024E60002344200010C0045BEA4E2000231 -:1005B00024040001000028210C0045BE27A60018D5 -:1005C0003C0200018C426D98241100013C010001A5 -:1005D000AC316DA414530004320280000C003DAF16 -:1005E00000000000320280001040011C00000000EA -:1005F0000C003DAF000000003C0300018C636F4025 -:100600002402000510620115240200023C010001D1 -:10061000AC316D9C3C01000110000110AC226D98C2 -:10062000240400012405000427B0001A0C0045BE74 -:100630000200302124040001000028210C0045BEE6 -:10064000020030213C020002005110218C428FF444 -:100650003C0400018C846D983C03BFFF3463FFFFB2 -:100660003C010001AC336DA4004310243C010002A6 -:1006700000310821109300F7AC228FF4100000F72E -:10068000000000003C02200002021024104000057F -:10069000240200013C010001AC226F1C1000000488 -:1006A000001289403C010001AC206F1C00128940FF -:1006B0003C01000200310821AC308FF83C024000C0 -:1006C0000202102414400014000000003C0200014B -:1006D0008C426F1C10400006240400042405000115 -:1006E0000C004DDB2406200024020001AEE204B819 -:1006F0003C020002005110218C428FF03C03BFFFEE -:100700003463FFFF004310243C0100020031082144 -:10071000100000D0AC228FF03C0200018C426F1C14 -:10072000104000283C0300A0020310245443000D95 -:100730003C0200203C0200018C426F202403010097 -:100740003C01000200310821AC2390043C0300016D -:100750003C01000200310821AC23900C1000001570 -:100760003442040002021024104000082403010057 -:100770003C0200018C426F203C0100020031082144 -:10078000AC2390041000000B344208003C020080AF -:10079000020210241040002E3C0300013C02000124 -:1007A0008C426F203C01000200310821AC23900CE8 -:1007B00034420C003C010001AC226F2010000025E7 -:1007C000240400013C020020020210241040000614 -:1007D000240201003C01000200310821AC229004F7 -:1007E000100000053C0200803C010002003108219D -:1007F000AC2090043C02008002021024104000074C -:10080000001219403C0200013C01000200230821B3 -:10081000AC22900C100000062404000100121140CC -:100820003C01000200220821AC20900C24040001AD -:100830000000282127B0001E0C00457C020030215A -:1008400024040001000028210C00457C0200302116 -:10085000240400012405000127B0001C0C00457C85 -:100860000200302124040001240500010C00457C15 -:100870000200302110000077000000003C02FFEC75 -:100880003442FFFF020280243C020008020280255D -:10089000001211403C01000200220821AC308FF808 -:1008A0003C02200002021024104000090000000059 -:1008B0003C0200018C426E441440000524020001F9 -:1008C0003C010001AC226F1C100000043C024000FF -:1008D0003C010001AC206F1C3C02400002021024CD -:1008E0001440001D24020E013C0300018C636F1CA8 -:1008F000AF8202383C010001AC206DB010600005F1 -:10090000240220203C010001AC226F2024020001BF -:10091000AEE204B83C04BFFF001219403C020002E2 -:10092000004310218C428FF03C0500018CA56D988E -:100930003484FFFF004410243C01000200230821FE -:10094000AC228FF02402000110A20044000000003D -:1009500010000040000000003C0200018C426F1CAF -:100960001040001C240220003C010001AC226F203A -:100970003C0300A0020310241443000500121140A0 -:100980003402A0003C0100011000002DAC226F20B9 -:100990003C030002006218218C638FF83C020020A7 -:1009A0000062102410400004240220013C010001D8 -:1009B00010000023AC226F203C0200800062102453 -:1009C0001040001F3402A0013C0100011000001C77 -:1009D000AC226F203C0200200202102410400007CD -:1009E00000121940240201003C01000200230821EA -:1009F000AC229004100000063C020080001211405E -:100A00003C01000200220821AC2090043C0200803E -:100A10000202102410400006001219403C0200019E -:100A20003C0100020023082110000005AC22900CBC -:100A3000001211403C01000200220821AC20900C61 -:100A40003C0300018C636D982402000110620003D6 -:100A5000000000000C003DAF000000008FBF003020 -:100A60008FB3002C8FB200288FB100248FB00020EC -:100A700003E0000827BD003827BDFFB0AFB3003C3E -:100A800000009821AFB500400000A821AFB10034AC -:100A90000000882124020002AFBF0048AFBE00441E -:100AA000AFB20038AFB00030AFA4002CA7A0001A3E -:100AB000A7A00018A7A00020A7A0001EA7A00022A2 -:100AC00010A20130A7A0001C2CA2000310400005BA -:100AD0002402000110A2000A3C0240001000025D46 -:100AE000022010212402000410A2020A240200089D -:100AF00010A202080220102110000256000000007F -:100B00008FA8002C000881403C03000200701821CF -:100B10008C638FFC0062102414400009240400013F -:100B20003C027FFF3442FFFF006288243C01000248 -:100B300000300821AC318FF4100002460220102151 -:100B4000240500010C00457C27A6001824040001A0 -:100B5000240500010C00457C27A6001897A2001868 -:100B600030420004104000D93C1140003C0200011A -:100B70008C426F402443FFFF2C620006104000D9D6 -:100B8000000310803C010001002208218C226C68C7 -:100B900000400008000000002404000124050011AA -:100BA00027B0001A0C00457C02003021240400010B -:100BB000240500110C00457C0200302197A3001A87 -:100BC00030624000104000023C1500103C15000847 -:100BD00030628000104000AA3C130001100000A801 -:100BE0003C130002240400012405001427B0001A5D -:100BF0000C00457C0200302124040001240500146F -:100C00000C00457C0200302197A3001A30621000CE -:100C1000104000023C1500103C150008306208002E -:100C2000104000973C130001100000953C13000297 -:100C3000240400012405001927B0001C0C00457C89 -:100C40000200302124040001240500190C00457C19 -:100C50000200302197A2001C304307002402040048 -:100C600010620027286204011040000E24020200D6 -:100C70001062001F286202011040000524020100DA -:100C80005062001E3C1300011000001E24040001ED -:100C900024020300506200193C13000210000019E6 -:100CA00024040001240206001062000D28620601DF -:100CB00010400005240205005062000B3C130002A6 -:100CC0001000001024040001240207001462000D2B -:100CD000240400013C1300041000000A3C15000825 -:100CE000100000063C130004100000053C1500082D -:100CF0003C130001100000023C1500083C150010D8 -:100D0000240400012405001827B0001E0C00457CB7 -:100D10000200302124040001240500180C00457C49 -:100D2000020030218FA8002C97A7001E0008114058 -:100D30003C06000200C230218CC68FF497A200222C -:100D40003C10000126106C5C02002021AFA20010B4 -:100D500097A2001C3C05000C34A503030C002B3BA0 -:100D6000AFA200143C020004166200103C02000115 -:100D70008F84005424030001240200023C0100017E -:100D8000AC236D9C3C010001AC226D983C0100013C -:100D9000AC236DA43C010001AC236E243C01000196 -:100DA000AC246F301000004F02B388251662003962 -:100DB0003C0280003C0200018C426E201440001E68 -:100DC0002404001800002021000028210C004DDB25 -:100DD000340680008F8300548F82005402B388252C -:100DE00010000002246300328F820054006210233E -:100DF0002C4200331440FFFC000000008F8300549D -:100E0000240200013C010001AC226E203C010001E3 -:100E1000AC226D9C3C010001AC226D983C010001AC -:100E2000AC226DA43C010001AC226E243C01000107 -:100E30001000002CAC236F30000028210C004DDB8B -:100E400024060404000020212405001E27A6001803 -:100E5000240200020C0045BEA7A2001800002021B9 -:100E60000000282127A600180C0045BEA7A00018E6 -:100E700024040018240500020C004DDB24060004A5 -:100E80003C0280000222102502B318251000001534 -:100E90000043882502221025027518250043882565 -:100EA0000200202197A6001C3C0700018CE76D98EA -:100EB0003C05000C34A50326AFB300100C002B3BFF -:100EC000AFB1001410000007000000003C11000248 -:100ED000023088218E318FFC3C027FFF3442FFFFBD -:100EE000022288243C0200018C426DA81040001EA2 -:100EF000000000003C0200018C426F1C1040000208 -:100F00003C022000022288258FA8002C00081140F6 -:100F10003C010002002208218C22900010400003B6 -:100F20003C02002010000005022288253C02FFDF61 -:100F30003442FFFF022288248FA8002C00081140B1 -:100F40003C010002002208218C229008104000037E -:100F50003C02008010000004022288253C02FF7F32 -:100F60003442FFFF022288248FA8002C0008114081 -:100F70003C01000200220821AC318FF41000013541 -:100F8000022010218FA8002C0008F1403C03000231 -:100F9000007E18218C638FF83C0240000062102410 -:100FA00014400009240400013C027FFF3442FFFF8B -:100FB000006288243C010002003E0821AC318FF021 -:100FC0001000012402201021000028210C00457C83 -:100FD00027A6001824040001000028210C00457CED -:100FE00027A60018240400012405000127B20020D0 -:100FF0000C00457C0240302124040001240500013E -:101000000C00457C0240302124040001240500042A -:1010100027B1001E0C00457C022030212404000171 -:10102000240500040C00457C02203021240400012A -:101030002405000527B000220C00457C0200302169 -:1010400024040001240500050C00457C0200302129 -:1010500024040001240500100C00457C27A600187C -:1010600024040001240500100C00457C27A600186C -:10107000240400012405000A0C00457C02403021B4 -:10108000240400012405000A0C00457C02403021A4 -:1010900024040001240500180C00457C02203021A6 -:1010A00024040001240500180C00457C0220302196 -:1010B00024040001240500010C00457C27A600182B -:1010C00024040001240500010C00457C27A600181B -:1010D00097A2001830420004104000663C11400006 -:1010E0003C0300018C636F34240200051462006726 -:1010F000240400012405001927B0001C0C00457CC5 -:101100000200302124040001240500190C00457C54 -:101110000200302197A2001C304307002402040083 -:1011200010620027286204011040000E2402020011 -:101130001062001F28620201104000052402010015 -:101140005062001E3C1300011000001E3C0200040F -:1011500024020300506200193C1300021000001921 -:101160003C020004240206001062000D2862060101 -:1011700010400005240205005062000B3C130002E1 -:10118000100000103C020004240207001462000D4D -:101190003C0200043C1300041000000A3C15000847 -:1011A000100000063C130004100000053C15000868 -:1011B0003C130001100000023C1500083C15001013 -:1011C0003C020004126200173C0280008F8200542F -:1011D000241000013C010001AC306D9C3C01000179 -:1011E000AC306D983C010001AC306DA43C010001B5 -:1011F000AC306E243C010001AC226F303C02000197 -:101200001662002202758825000020210000282196 -:101210000C004DDB340680003C0100011000001B77 -:10122000AC306E200222102502B318250043882519 -:1012300097A6001C3C0200018C426F1C3C07000179 -:101240008CE76D983C04000124846C5CAFA2001014 -:1012500097A2001E3C05000C34A503233C010001AD -:10126000AC206E200C002B3BAFA200141000000736 -:10127000000000003C110002023E88218E318FF0F8 -:101280003C027FFF3442FFFF022288243C0200011F -:101290008C426DA810400069000000003C02000173 -:1012A0008C426F1C104000023C0220000222882564 -:1012B0008FA8002C000811403C01000200220821E8 -:1012C0008C229004104000033C0200201000000516 -:1012D000022288253C02FFDF3442FFFF02228824DD -:1012E0008FA8002C000811403C01000200220821B8 -:1012F0008C22900C104000033C0200801000004F34 -:10130000022288253C02FF7F3442FFFF1000004B81 -:10131000022288248FA8002C000829403C030002E8 -:10132000006518218C638FF83C0240000062102495 -:10133000144000083C027FFF3442FFFF0062882413 -:101340003C01000200250821AC318FF01000004163 -:10135000022010213C0200018C426DA81040003494 -:101360003C11C00C3C0200018C426E443C04C00C99 -:10137000348420003C0300018C636F1C0002102B9E -:10138000000210230044102410600003005188253F -:101390003C022000022288253C0200020045102168 -:1013A0008C429004104000033C0200201000000416 -:1013B000022288253C02FFDF3442FFFF02228824FC -:1013C0008FA8002C000811403C01000200220821D7 -:1013D0008C22900C104000033C020080100000049E -:1013E000022288253C02FF7F3442FFFF022288242C -:1013F0003C0200018C426E30104000023C020800AA -:10140000022288253C0200018C426E34104000020A -:101410003C020400022288253C0200018C426E3806 -:10142000104000063C020100100000040222882542 -:101430003C027FFF3442FFFF006288248FA8002C0B -:10144000000811403C01000200220821AC318FF05D -:10145000022010218FBF00488FBE00448FB500408E -:101460008FB3003C8FB200388FB100348FB00030A2 -:1014700003E0000827BD005027BDFFD0AFB2002811 -:1014800000809021AFBF002CAFB10024AFB000208E -:101490008F8402003C1000018E106D988F86022010 -:1014A000240200021202005C2E020003104000051C -:1014B000240200011202000A001219401000010C5F -:1014C0000000000024020004120200BF24020008F1 -:1014D000120200BE00128940100001050000000049 -:1014E0003C05000200A328218CA58FFC3C100002C3 -:1014F000020380218E108FF43C02400000A21024D1 -:10150000104000383C020008020210241040002065 -:10151000348400023C020002004310218C429000FF -:101520001040000534840020348401003C02002077 -:1015300010000006020280252402FEFF0082202403 -:101540003C02FFDF3442FFFF020280240012114000 -:101550003C010002002208218C2290081040000566 -:101560003C02000100C230253C0200801000001641 -:10157000020280253C02FFFE3442FFFF00C23024FD -:101580003C02FF7F3442FFFF1000000F0202802464 -:101590002402FEDF008220243C02FFFE3442FFFFD3 -:1015A00000C230243C02FF5F3442FFFF020280246D -:1015B0003C01000200230821AC2090003C01000205 -:1015C00000230821AC209008AF840200AF860220DF -:1015D0008F82022034420002AF8202201000000AF3 -:1015E000001211403C02BFFF3442FFFF8F83020014 -:1015F000020280242402FFFD006218240C003DAF8B -:10160000AF830200001211403C01000200220821B9 -:10161000100000B7AC308FF43C0200018C426F1C0C -:101620001040006924050004240400010C00457CDE -:1016300027A6001824040001240500050C00457CA1 -:1016400027A6001A97A3001897A2001A3C040001CD -:1016500024846E4830630C0000031A8230420C0070 -:1016600000021282A7A2001A00021080004410217A -:1016700000431021A7A30018904800002402000195 -:101680003103FFFF106200292862000210400005AC -:101690000000000010600009000000001000003D84 -:1016A0000000000010700013240200031062002CE0 -:1016B0000000000010000037000000008F820200D0 -:1016C0002403FEFF00431024AF8202008F82022019 -:1016D0003C03FFFE3463FFFF00431024AF8202206F -:1016E0003C010002AC2090043C01000210000032DA -:1016F000AC20900C8F82020034420100AF820200C5 -:101700008F8202203C03FFFE3463FFFF004310245E -:10171000AF820220240201003C010002AC229004AE -:101720003C01000210000024AC20900C8F820200CB -:101730002403FEFF00431024AF8202008F820220A8 -:101740003C03000100431025AF8202203C0100024F -:10175000AC2090043C01000210000017AC23900C58 -:101760008F82020034420100AF8202008F82022089 -:101770003C03000100431025AF8202202402010037 -:101780003C010002AC2290043C0100021000000A5F -:10179000AC23900C3C04000124846C8097A6001AB2 -:1017A00097A700183C05000134A5FFFFAFA8001063 -:1017B0000C002B3BAFA000148F82020034420002C9 -:1017C0001000004BAF820200001289403C0500026D -:1017D00000B128218CA58FF83C1000020211802155 -:1017E0008E108FF03C02400000A210241440001024 -:1017F000000000003C0200018C426F1C14400005F8 -:101800003C02BFFF8F82020034420002AF8202001E -:101810003C02BFFF3442FFFF0C003DAF02028024B8 -:101820003C0100020031082110000031AC308FF083 -:101830003C0200018C426F1C104000053C0200205D -:101840003C0200018C426E44104000253C02002006 -:1018500000A210241040000734840020240201005C -:101860003C01000200310821AC2290041000000667 -:10187000348401003C01000200310821AC209004B6 -:101880002402FEFF008220243C02008000A21024DB -:1018900010400007001219403C0200013C01000208 -:1018A00000230821AC22900C1000000800C2302553 -:1018B000001211403C01000200220821AC20900CD3 -:1018C0003C02FFFE3442FFFF00C23024AF8402001E -:1018D000AF8602208F82022034420002AF820220B3 -:1018E000001211403C01000200220821AC308FF0B0 -:1018F0008FBF002C8FB200288FB100248FB0002042 -:1019000003E0000827BD003000000000000018219F -:10191000308400FF2405FFDF2406FFBF00641007AA -:101920003042000110400004000000008F8200449B -:1019300010000003344200408F820044004610240F -:10194000AF8200448F82004434420020AF820044C2 -:101950008F82004400451024AF82004424630001BC -:10196000286200085440FFEE0064100703E00008FE -:10197000000000002C8200081040001B0000000046 -:101980002405FFDF2406FFBF000418803C0200018D -:1019900024426E60006218212464000490620000FA -:1019A00010400004000000008F820044100000037B -:1019B000344200408F82004400461024AF8200442D -:1019C0008F82004434420020AF8200448F82004462 -:1019D00000451024AF820044246300010064102BF2 -:1019E0001440FFEE0000000003E0000800000000CB -:1019F0000000000000000000000000008F8400C410 -:101A00008F8600E08F8700E42402FFF800C22824BC -:101A100010E5001A27623FF814E2000224E80008EB -:101A200027683000550500048D0A000030C200040C -:101A300014400012008050218CE900008F42013CCC -:101A4000014948230049182B94EB0006106000025E -:101A500025630050004948210123182B5040000302 -:101A60008F4201FC03E0000800E01021AF8800E88D -:101A700024420001AF4201FCAF8800E403E000080B -:101A80000000102103E00008000000008F8300E444 -:101A900027623FF81062000424620008AF8200E869 -:101AA00003E00008AF8200E427623000AF8200E864 -:101AB00003E00008AF8200E403E00008000000003B -:101AC0000000000000000000000000008F880120DE -:101AD00027624FE08F8301281502000225090020AC -:101AE00027694800112300128FA20010AD040000E6 -:101AF000AD050004AD060008A507000E8FA3001475 -:101B0000AD0200188FA20018AD03001C25030016BB -:101B1000AD020010AD030014AF8901208F4300FC1B -:101B2000240200012463FFFF03E00008AF4300FC30 -:101B30008F430324000010212463000103E0000808 -:101B4000AF43032403E00008000000008F88010079 -:101B5000276247E08F830108150200022509002053 -:101B6000276940001123000F8FA20010AD04000070 -:101B7000AD050004AD060008A507000E8FA30014F4 -:101B8000AD0200188FA20018AD03001C250300163B -:101B9000AD020010AD030014AF89010003E000089E -:101BA000240200018F430328000010212463000158 -:101BB00003E00008AF43032803E000080000000032 -:101BC00000000000000000000000000024486561E3 -:101BD0006465723A202F70726F6A656374732F7236 -:101BE00063732F73772F67652F2E2F6E69632F66B0 -:101BF00077322F636F6D6D6F6E2F66776D61696ED3 -:101C00002E632C7620312E312E322E343520313970 -:101C100039392F30312F32342030303A31303A35A3 -:101C20003520736875616E67204578702024000048 -:101C3000657674526E674600516576744600000002 -:101C400051657674505F46004D657674526E6746F6 -:101C5000000000004D516576744600004D516576D8 -:101C6000505F46005173436F6E495F4600000000AD -:101C70005173436F6E734600517250726F64460029 -:101C80006261644D656D537A0000000068775665A7 -:101C900072000000626164487756657200000000BF -:101CA0002A2A4441574E5F41000000007478527860 -:101CB0004266537A00000000626641746E4D726B9A -:101CC000000000007265645A6F6E6531000000000C -:101CD000706369436F6E660067656E436F6E660082 -:101CE0002A646D615244666C000000002A50414E27 -:101CF00049432A002E2E2F2E2E2F2E2E2F2E2E2F02 -:101D00002E2E2F7372632F6E69632F6677322F63C7 -:101D10006F6D6D6F6E2F66776D61696E2E6300005B -:101D2000726362466C616773000000006261645216 -:101D30007852636200000000676C6F62466C6773E4 -:101D4000000000002B5F646973705F6C6F6F700040 -:101D50002B65765F68616E646C65720063616E749A -:101D600031446D61000000002B715F646D615F7430 -:101D70006F5F6E69635F636B73756D002B685F7374 -:101D8000656E645F646174615F72656164795F63ED -:101D90006B73756D000000002B685F646D615F728E -:101DA000645F6173736973745F636B73756D000057 -:101DB00074436B736D4F6E002B715F646D615F7464 -:101DC0006F5F6E69630000002B685F73656E645F10 -:101DD000646174615F726561647900002B685F649F -:101DE0006D615F72645F61737369737400000000FA -:101DF00074436B736D4F6666000000002B685F7361 -:101E0000656E645F62645F72656164790000000002 -:101E10006873745352696E67000000006261645316 -:101E200052696E67000000006E69635352696E6705 -:101E30000000000077446D61416C6C4100000000BF -:101E40002B715F646D615F746F5F686F73745F6344 -:101E50006B73756D000000002B685F6D61635F72CE -:101E6000785F636F6D705F636B73756D000000006A -:101E70002B685F646D615F77725F61737369737400 -:101E80005F636B73756D000072436B736D4F6E0013 -:101E90002B715F646D615F746F5F686F73740000B6 -:101EA0002B685F6D61635F72785F636F6D700000B8 -:101EB0002B685F646D615F77725F617373697374C0 -:101EC0000000000072436B736D4F666600000000F7 -:101ED0002B685F726563765F62645F7265616479C7 -:101EE000000000002B685F726563765F6A756D6243 -:101EF0006F5F62645F726561647900002B685F7276 -:101F00006563765F6D696E695F62645F7265616467 -:101F1000790000002B6D685F636F6D6D616E64000A -:101F20002B685F74696D6572000000002B685F6448 -:101F30006F5F7570646174655F74785F636F6E73F3 -:101F4000000000002B685F646F5F757064617465EA -:101F50005F72785F70726F64000000002B636B73B8 -:101F6000756D3136000000002B7065656B5F6D612B -:101F7000635F72785F7761002B7065656B5F6D6181 -:101F8000635F7278000000002B6465715F6D6163B0 -:101F90005F7278002B685F6D61635F72785F617458 -:101FA000746E0000626164526574537A0000000030 -:101FB000727842644266537A000000002B6E756CA2 -:101FC0006C5F68616E646C657200000066774F70CC -:101FD0004661696C000000002B685F757064617475 -:101FE000655F6C65643400002B685F7570646174B4 -:101FF000655F6C65643600002B685F7570646174A2 -:10200000655F6C6564320000696E74537461746559 -:10201000000000002A2A696E697443700000000005 -:102020002373637265616D0069537461636B4572FC -:102030000000000070726F62654D656D0000000069 -:102040002A2A4441574E5F42000000002B73775FFD -:10205000646D615F6173736973745F706C75735FD6 -:1020600074696D65720000002B267072656C6F617B -:10207000645F77725F646573637200002B26707211 -:10208000656C6F61645F72645F64657363720000A6 -:102090002B685F68665F74696D65720024486561CE -:1020A0006465723A202F70726F6A656374732F7261 -:1020B00063732F73772F67652F2E2F6E69632F66DB -:1020C00077322F636F6D6D6F6E2F74696D65722E31 -:1020D000632C7620312E312E322E33352031393992 -:1020E000392F30312F32372031393A30393A3530C3 -:1020F0002068617965732045787020240000000015 -:10210000657674526E67460051657674460000002D -:1021100051657674505F46004D657674526E674621 -:10212000000000004D516576744600004D51657603 -:10213000505F46005173436F6E495F4600000000D8 -:102140005173436F6E734600517250726F64460054 -:10215000542D446D6152643200000000542D446DD2 -:102160006152643100000000542D446D615264429C -:1021700000000000542D446D6157723200000000D1 -:10218000542D446D6157723100000000542D446D90 -:1021900061577242000000000000000024486561A1 -:1021A0006465723A202F70726F6A656374732F7260 -:1021B00063732F73772F67652F2E2F6E69632F66DA -:1021C00077322F636F6D6D6F6E2F636F6D6D616E04 -:1021D000642E632C7620312E312E322E323820316F -:1021E0003939392F30312F32302031393A34393AB8 -:1021F000343920736875616E67204578702024003B -:10220000657674526E67460051657674460000002C -:1022100051657674505F46004D657674526E674620 -:10222000000000004D516576744600004D51657602 -:10223000505F46005173436F6E495F4600000000D7 -:102240005173436F6E734600517250726F64460053 -:102250003F48636D644D6278000000003F636D6429 -:1022600048737453000000003F636D644D634D6418 -:10227000000000003F636D6450726F6D000000004D -:102280003F636D644C696E6B000000003F636D64DA -:1022900045727200000086AC00008E5C00008E5C0F -:1022A00000008DE400008B7800008E3000008E5C12 -:1022B00000008790000088000000899000008A6874 -:1022C00000008A3400008E5C0000887000008B24BF -:1022D00000008E5C00008B34000087B4000088246E -:1022E00000000000000000000000000024486561BC -:1022F0006465723A202F70726F6A656374732F720F -:1023000063732F73772F67652F2E2F6E69632F6688 -:1023100077322F636F6D6D6F6E2F6D636173742EE7 -:10232000632C7620312E312E322E38203139393837 -:102330002F31322F30382030323A33363A3336208C -:10234000736875616E672045787020240000000076 -:10235000657674526E6746005165767446000000DB -:1023600051657674505F46004D657674526E6746CF -:10237000000000004D516576744600004D516576B1 -:10238000505F46005173436F6E495F460000000086 -:102390005173436F6E734600517250726F64460002 -:1023A0006164644D63447570000000006164644DB5 -:1023B0006346756C0000000064656C4D634E6F45AC -:1023C00000000000000000000000000024486561DB -:1023D0006465723A202F70726F6A656374732F722E -:1023E00063732F73772F67652F2E2F6E69632F66A8 -:1023F00077322F636F6D6D6F6E2F646D612E632C5E -:102400007620312E312E322E323420313939382F88 -:1024100031322F32312030303A33333A3039207371 -:102420006875616E67204578702024006576745267 -:102430006E674600516576744600000051657674FB -:10244000505F46004D657674526E6746000000008E -:102450004D516576744600004D516576505F4600DB -:102460005173436F6E495F46000000005173436F24 -:102470006E734600517250726F6446007377446DFC -:10248000614F66660000000031446D614F6E0000D0 -:102490007377446D614F6E002372446D6141544EF9 -:1024A0000000000072446D6141544E300000000095 -:1024B00072446D6141544E310000000072446D6100 -:1024C000344762002A50414E49432A002E2E2F2EB7 -:1024D0002E2F2E2E2F2E2E2F2E2E2F7372632F6E19 -:1024E00069632F6677322F636F6D6D6F6E2F646D2A -:1024F000612E63002377446D6141544E000000005B -:1025000077446D6141544E300000000077446D61A6 -:1025100041544E310000000077446D613447620041 -:102520000000000000000000000000002448656179 -:102530006465723A202F70726F6A656374732F72CC -:1025400063732F73772F67652F2E2F6E69632F6646 -:1025500077322F636F6D6D6F6E2F74726163652EAE -:10256000632C7620312E312E322E352031393938F8 -:102570002F30392F33302031383A35303A32382045 -:10258000736875616E672045787020240000000034 -:102590000000000000000000000000002448656109 -:1025A0006465723A202F70726F6A656374732F725C -:1025B00063732F73772F67652F2E2F6E69632F66D6 -:1025C00077322F636F6D6D6F6E2F646174612E6350 -:1025D0002C7620312E312E322E31322031393939BC -:1025E0002F30312F32302031393A34393A353120D9 -:1025F000736875616E6720457870202400000000C4 -:1026000046575F56455253494F4E3A202331204694 -:1026100072692041707220372031373A35373A35A8 -:1026200032205044542032303030000046575F434F -:102630004F4D50494C455F54494D453A2031373A4A -:1026400035373A353200000046575F434F4D504909 -:102650004C455F42593A206465767263730000000E -:1026600046575F434F4D50494C455F484F53543A8E -:1026700020636F6D707574650000000046575F43FE -:102680004F4D50494C455F444F4D41494E3A2065AE -:102690006E672E616374656F6E2E636F6D00000050 -:1026A00046575F434F4D50494C45523A206763634C -:1026B0002076657273696F6E20322E372E320000DD -:1026C00000000000120411000000000024486561B1 -:1026D0006465723A202F70726F6A656374732F722B -:1026E00063732F73772F67652F2E2F6E69632F66A5 -:1026F00077322F636F6D6D6F6E2F6D656D2E632C4E -:102700007620312E312E322E3520313939382F3086 -:10271000392F33302031383A35303A303820736829 -:1027200075616E672045787020240000244865613B -:102730006465723A202F70726F6A656374732F72CA -:1027400063732F73772F67652F2E2F6E69632F6644 -:1027500077322F636F6D6D6F6E2F73656E642E63AE -:102760002C7620312E312E322E3434203139393826 -:102770002F31322F32312030303A33333A31382052 -:10278000736875616E672045787020240000000032 -:10279000657674526E674600516576744600000097 -:1027A00051657674505F46004D657674526E67468B -:1027B000000000004D516576744600004D5165766D -:1027C000505F46005173436F6E495F460000000042 -:1027D0005173436F6E734600517250726F644600BE -:1027E00069736E745463705500000000244865617D -:1027F0006465723A202F70726F6A656374732F720A -:1028000063732F73772F67652F2E2F6E69632F6683 -:1028100077322F636F6D6D6F6E2F726563762E63E7 -:102820002C7620312E312E322E3533203139393964 -:102830002F30312F31362030323A35353A3433208B -:10284000736875616E672045787020240000000071 -:10285000657674526E6746005165767446000000D6 -:1028600051657674505F46004D657674526E6746CA -:10287000000000004D516576744600004D516576AC -:10288000505F46005173436F6E495F460000000081 -:102890005173436F6E734600517250726F644600FD -:1028A000724D616343686B300000000072784672BD -:1028B0006D324C670000000072784E6F53744264B2 -:1028C0000000000072784E6F4D6942640000000005 -:1028D00072784E6F4A6D4264000000007278436B5C -:1028E000446D614600000000727851446D457846A1 -:1028F00000000000727851446D61460072785144C6 -:102900004C42644600000000727851446D426446B7 -:1029100000000000727843726350616400000000A0 -:1029200072536D51446D614600000000244865619A -:102930006465723A202F70726F6A656374732F72C8 -:1029400063732F73772F67652F2E2F6E69632F6642 -:1029500077322F636F6D6D6F6E2F6D61632E632CF9 -:102960007620312E312E322E323220313939382F25 -:1029700031322F30382030323A33363A3330207308 -:102980006875616E67204578702024006576745202 -:102990006E67460051657674460000005165767496 -:1029A000505F46004D657674526E67460000000029 -:1029B0004D516576744600004D516576505F460076 -:1029C0005173436F6E495F46000000005173436FBF -:1029D0006E734600517250726F6446006D616354AD -:1029E000687265730000000023744D616341544EAA -:1029F0000000000023724D616341544E000000004E -:102A000072656D4173737274000000006C696E6BC7 -:102A1000444F574E000000006C696E6B555000002B -:102A20000000000000000000000000002448656174 -:102A30006465723A202F70726F6A656374732F72C7 -:102A400063732F73772F67652F2E2F6E69632F6641 -:102A500077322F636F6D6D6F6E2F636B73756D2E95 -:102A6000632C7620312E312E322E392031393939EE -:102A70002F30312F31342030303A30333A3438204F -:102A8000736875616E67204578702024000000002F -:102A9000657674526E674600516576744600000094 -:102AA00051657674505F46004D657674526E674688 -:102AB000000000004D516576744600004D5165766A -:102AC000505F46005173436F6E495F46000000003F -:102AD0005173436F6E734600517250726F644600BB -:102AE00000000000000000000000000050726F6253 -:102AF00065506879000000006C6E6B41535352546E -:102B000000000000000109A400010A1C00010A5095 -:102B100000010A7C0001105000010AA800010B10FE -:102B2000000111FC00010DC000010C6800010C80C7 -:102B300000010CC400010CEC00010D0C00010D346F -:102B4000000111FC00010DC000010DF800010E1084 -:102B500000010E4000010E6800010E8800010EB059 -:102B60000000000000010FDC000110080001102C23 -:102B7000000111FC00011050000110780001110843 -:102B80000000000000000000000000000001186CC0 -:102B90000001193C00011A1400011AE400011B4055 -:102BA00000011C1C00011C4400011D2000011D48E7 -:102BB00000011EF000011F18000120C0000122B812 -:102BC0000001254C000124600001254C00012578FE -:102BD000000120E8000122907273745F676D6969DB -:102BE00000000000000126080001264000012728FF -:102BF00000013374000133B4000133CC7365746C8D -:102C00006F6F7000000000000000000000013BBC7E -:102C100000013BFC00013C8C00013CD000013D3434 -:102C200000013DC000013DF400013E7C00013F1465 -:102C300000013FE400014024000140A8000140CC15 -:102C4000000141DC646F4261736550670000000061 -:102C500000000000000000000000000073746D61BF -:102C6000634C4E4B000000006765746D636C6E6BC7 -:102C70000000000000014ED800014ED800014B8C2E -:102C800000014BD800014C2400014ED87365746DCF -:102C90006163616374000000000000000000000038 -:102CA0000000000000000000000000000000000024 -:102CB0000000000000000000000000000000000014 -:102CC0000000000000000000000000000000000103 -:102CD000000000010000000100C001FC00003FFCFA -:102CE00000C00000416C74656F6E204163654E4901 -:102CF000432056000000000000000000000000001B -:102D0000000000000000000000000000416C74653D -:102D10006F6E204163654E49432056004242424255 -:102D2000000000000000000000000000001FFFFC89 -:102D3000001FFF7C000000000000000000000000F9 -:102D40000000000000000000000000000060CF0054 -:102D500000000060CF000000000000000000000044 -:102D60000000000000000000000000000000000063 -:102D70000000000000000000000000000000000053 -:102D80000000000000000000000000000000000043 -:102D90000000000000000000000000000000000033 -:102DA0000000000000000000000000030000000020 -:102DB0000000000100000000000000000000000012 -:102DC0000000000100000000000000010000000001 -:102DD00000000000000000000000000000000001F2 -:102DE00000000001000000000000000000000000E2 -:102DF00000000000000000000100000021000000B1 -:102E0000120001400000000000000000200000004F -:102E1000120000A0000000001200006012000180FB -:102E2000120001E0000000000000000000000000AF -:102E30000000000100000000000000000000000091 -:102E40000000000000000000000000000000000280 -:102E5000000000000000000000030001000000016D -:102E60000003020100000000000000000101010158 -:102E70000101010000010100010100010001000148 -:0C2E800001000101000001010000000041 -:00000001FF -/* tg2 firmware v12.4.11 */ diff --git a/firmware/adaptec/starfire_rx.bin.ihex b/firmware/adaptec/starfire_rx.bin.ihex deleted file mode 100644 index 6b1fae0d18eb..000000000000 --- a/firmware/adaptec/starfire_rx.bin.ihex +++ /dev/null @@ -1,53 +0,0 @@ -:10000000010003DC00000000040004210000008661 -:10001000800000150000180E8100001500006664C5 -:100020001A0040AB00000B06142000110000000075 -:10003000142040220000AAAA14204022000003003D -:1000400014204022000000001A0040AB00000B14F6 -:1000500014200011000000008300001500000002C1 -:10006000040000210000000000000010000000005B -:1000700004000421000000870000001000000000C0 -:1000800000000010000000000000801500000000CB -:100090000000003E00000000000000100000000012 -:1000A0008200001500004000009E8050000000000B -:1000B000030080150000000086008015000000008D -:1000C00082000015000080000100001C00000000FC -:1000D000000050A00000010C4E20D011000060086C -:1000E0001420D012000040080000F09000007000C2 -:1000F0000000C8B0000030000000404000000000D8 -:10010000001080150000000000A2C1500000400057 -:1001100000A400B000000014000000200000000057 -:100120002500400D0000252500047220000031004C -:10013000009340700000000000000020000000005C -:1001400000924460000001842B20C01100000000D8 -:100150000000C42000000540360140180000422D78 -:100160001420001100000000009244600000018390 -:100170003200001F0000003402AC00150000000235 -:1001800000A601100000000842200011000000003D -:1001900000924060000001030000001E000000000B -:1001A00000000020000001000000001E0000000010 -:1001B00000924460000000860000408000000000C3 -:1001C0000092C0700000000000924060000001003A -:1001D0000000C8900000500000A6C1100000000000 -:1001E00000B0C09000000012021C001500000000CA -:1001F0003200001F0000003400924460000005102F -:100200004421001100000000420000110000000025 -:1002100083000015000000400092446000000508C3 -:100220004501401800004545008080500000000056 -:10023000622080120000000082000015000008000B -:100240001520001100000000000000100000000058 -:10025000000000100000000000000010000000007E -:10026000000000100000000000000010000000006E -:10027000800000150000EEA4810000150000005F62 -:1002800000000060000000000000412000000000AD -:1002900000004A000000400000924460000001900D -:1002A0005601401A000059561400001100000000C9 -:1002B0000093405000000018009300500000001808 -:1002C0003601403A0000002D000643A9000000005E -:1002D0000000C420000001405601401A0000595699 -:1002E00014000011000000000000001000000000D9 -:1002F0000000001000000000000642A900000000FD -:1003000000024420000001835601401A00005956A3 -:1003100082000015000020001520001100000000E0 -:1003200082000015000000101520001100000000E0 -:1003300082000015000000101520001100000000D0 -:00000001FF diff --git a/firmware/adaptec/starfire_tx.bin.ihex b/firmware/adaptec/starfire_tx.bin.ihex deleted file mode 100644 index 6b1fae0d18eb..000000000000 --- a/firmware/adaptec/starfire_tx.bin.ihex +++ /dev/null @@ -1,53 +0,0 @@ -:10000000010003DC00000000040004210000008661 -:10001000800000150000180E8100001500006664C5 -:100020001A0040AB00000B06142000110000000075 -:10003000142040220000AAAA14204022000003003D -:1000400014204022000000001A0040AB00000B14F6 -:1000500014200011000000008300001500000002C1 -:10006000040000210000000000000010000000005B -:1000700004000421000000870000001000000000C0 -:1000800000000010000000000000801500000000CB -:100090000000003E00000000000000100000000012 -:1000A0008200001500004000009E8050000000000B -:1000B000030080150000000086008015000000008D -:1000C00082000015000080000100001C00000000FC -:1000D000000050A00000010C4E20D011000060086C -:1000E0001420D012000040080000F09000007000C2 -:1000F0000000C8B0000030000000404000000000D8 -:10010000001080150000000000A2C1500000400057 -:1001100000A400B000000014000000200000000057 -:100120002500400D0000252500047220000031004C -:10013000009340700000000000000020000000005C -:1001400000924460000001842B20C01100000000D8 -:100150000000C42000000540360140180000422D78 -:100160001420001100000000009244600000018390 -:100170003200001F0000003402AC00150000000235 -:1001800000A601100000000842200011000000003D -:1001900000924060000001030000001E000000000B -:1001A00000000020000001000000001E0000000010 -:1001B00000924460000000860000408000000000C3 -:1001C0000092C0700000000000924060000001003A -:1001D0000000C8900000500000A6C1100000000000 -:1001E00000B0C09000000012021C001500000000CA -:1001F0003200001F0000003400924460000005102F -:100200004421001100000000420000110000000025 -:1002100083000015000000400092446000000508C3 -:100220004501401800004545008080500000000056 -:10023000622080120000000082000015000008000B -:100240001520001100000000000000100000000058 -:10025000000000100000000000000010000000007E -:10026000000000100000000000000010000000006E -:10027000800000150000EEA4810000150000005F62 -:1002800000000060000000000000412000000000AD -:1002900000004A000000400000924460000001900D -:1002A0005601401A000059561400001100000000C9 -:1002B0000093405000000018009300500000001808 -:1002C0003601403A0000002D000643A9000000005E -:1002D0000000C420000001405601401A0000595699 -:1002E00014000011000000000000001000000000D9 -:1002F0000000001000000000000642A900000000FD -:1003000000024420000001835601401A00005956A3 -:1003100082000015000020001520001100000000E0 -:1003200082000015000000101520001100000000E0 -:1003300082000015000000101520001100000000D0 -:00000001FF diff --git a/firmware/advansys/3550.bin.ihex b/firmware/advansys/3550.bin.ihex deleted file mode 100644 index 6809b0d84e4f..000000000000 --- a/firmware/advansys/3550.bin.ihex +++ /dev/null @@ -1,317 +0,0 @@ -:10000000DD2DD504000000F200F0001618E400FC1D -:10001000010048E4BE18188003F6020000FAFFFF52 -:10002000280E9EE7FF0082E700EA00F601E609E7F6 -:1000300055F001F601FA08000300040018F410005E -:1000400000EC85F0BC00D5F08E0C385400E61EF0B4 -:1000500086F0B4009857D0010C1C3E1C0C00BB006D -:10006000AA18028032F001FC880CC6120213184054 -:10007000005701EA3C006C016E0104123E570080FB -:1000800003E6B600C00001013E01DA0F221008129B -:10009000024AB95403581B8030E44BE4200032007C -:1000A0003E00800024013C0168016A017001720178 -:1000B000740176017801620A920C2C102E1006133E -:1000C0004C1CBB553C5604804AE402EE5BF0B1F098 -:1000D00003F706F703FC0F004000BE000001B00864 -:1000E00030136415321C381C4E1C10440248004C5E -:1000F00004EA5DF004F602FC0500340036009800C6 -:10010000CC0020014E014E0B1E0E0C100A120413DF -:100110004013301C004EBD56068300DC05F009F08C -:1001200059F0A7F0B8F00EF70600190033009B0055 -:10013000A400B500BA00D000E100E700DE03560AD3 -:10014000140E021004100A1036100A131213521360 -:1001500010151415AC16201C341C361C08443844E9 -:1001600091440A454846014868548355B0570158A0 -:10017000835905E60BF00CF05CF04BF404F805F83D -:1001800002FA03FA04FC05FC07000A000D001C003B -:100190009E00A800AA00B900E00022012601790112 -:1001A0007A01C001C2017C025A03EA04E807680828 -:1001B0006908BA08E909060B3A0E00101A10ED108A -:1001C000F11006120C1316131E1382134214D614C8 -:1001D0008A15C617D2176B18121C461C9C32004099 -:1001E0000E47484741488948804C00544455E555DE -:1001F00014567757BF57405C0680089003A1FE9CB9 -:10020000F02902FEB80CFF100000D0FECC1800CF81 -:10021000FE8001FF030000FE9315FE0F05FF38006E -:1002200000FE572400FE48004FFF04000010FF09A5 -:100230000000FF080101FF08FFFFFF270000FF107B -:10024000FFFFFF0F0000FE7856FE3412FF21000072 -:10025000FE04F7CF2A670B01FECE0EFE04F7CF6730 -:100260000B3C2AFE3DF0FE0202FE20F09CFE91F0C7 -:10027000FEF001FE90F0FEF001FE8FF09C05513B78 -:1002800002FED40C01FE440DFEDD12FEFC10FE2821 -:100290001C05FEA600FED3124718FEA600B5FE48B8 -:1002A000F0FE8602FE49F0FEA002FE4AF0FEBE020B -:1002B000FE46F0FE5002FE47F0FE5602FE43F0FE00 -:1002C0004402FE44F0FE4802FE45F0FE4C02170BCD -:1002D000A0170618960229FE001CDEFE021CDDFE99 -:1002E0001E1CFEE91001FE2017FEE710FE06FCC7EB -:1002F0000A6B019E0229144D379701FE640F0A6BA9 -:100300000182FEBD100A6B0182FEAD10FE161CFEBE -:10031000581C170618962A2529FE3DF0FE020221D8 -:10032000FE9402FE5A1CEAFE141C14FE300037979D -:1003300001FE540F1706189602D01E20071034FE37 -:10034000691017061896FE04EC20463D1220FE05A3 -:10035000F6C701FE5216094A4C35112D3C8A01E6BA -:1003600002290A40010E07005D016FFE1810FE41D0 -:10037000580A99010EFEC85464FE0C0301E60229D6 -:100380002A46FE02E827F8FE9E43F7FE27F0FEDC31 -:1003900001FE074BFE20F09CFE401C25D2FE26F0FD -:1003A000FE5603FEA0F0FE4403FE11F09CFEEF108B -:1003B000FE9FF0FE6403EB0FFE1100025A2AFE4876 -:1003C0001CEB09041DFE1813231E98AC12980A405A -:1003D000010EAC7501FEBC1511CA25D2FE01F0D28A -:1003E000FE82F0FE9203EC11FEE40065FEA40325FC -:1003F000321FFEB4030143FE06F0FEC4038D81FEEE -:100400000AF0FE7A060222056B2816FEF604142C6A -:1004100001338FFE660202D1EB2A671AFE671BF8D2 -:10042000F7FE481C70016E870A40010E070016D3C4 -:100430000ACA010E7460597627056B28FE10121443 -:100440002C01338FFE660202D1BC7DBD7F25226563 -:10045000FE3C041FFE380468FEA000FE9B57FE4EC3 -:10046000122BFF02001001081FFEE0042B01081FE1 -:1004700022302ED5FE4C44FE4C1260FE4448132C14 -:10048000FE4C5464D3467627FAEFFE621309041D2E -:10049000FE2A132F077EA5FE2010132CFE4C546459 -:1004A000D3FAEF8609041DFE08132F077E6E090498 -:1004B0001DFE1C1214920904063B14C401338FFE66 -:1004C000700C02222B11FEE600FE1C90F903149220 -:1004D00001330229FE425B671AFE4659F8F7FE8790 -:1004E00080FE31E44F09040BFE7813FE2080071ACA -:1004F000FE7012490406FE601305FEA2002816FED7 -:100500008005FE31E46A49040BFE4A1305FEA00093 -:1005100028FE42125E01082532F1010826FE9805E8 -:1005200011FEE3002349FE4AF0FE6A05FE49F0FE93 -:1005300064058324FE2100A124FE2200A0244CFE99 -:100540000948010826FE9805FEE2084904C53B015A -:1005500086240612CC37FE270109041DFE2212470D -:1005600001A714920904063B14C401338FFE700CDA -:10057000022205FE9C0028FE3E12055028FE36137E -:100580004701A726FE08060A06490419FE02125F63 -:1005900001FEAA141FFEFE05119A014311FEE5009B -:1005A0000550B40C5005C628FE6212053F28FE5ABD -:1005B0001301FE141801FE6618FE4348B719136CA8 -:1005C000FF020057488B1C3D85B7694701A726FEEF -:1005D000720649041BDF890A4D01FED8141FFE680C -:1005E00006119A014311FEE500053FB40C3F1706C2 -:1005F00001A7EC7270016E8711FEE200010825323E -:10060000FE0AF0FEA6068CFE5C07FE06F0FE6407FE -:100610008D81022209040BFE2E12151A0108150005 -:1006200001081500010815000108FE99A40108152C -:100630000002FE320861041BFE381209041B6E150D -:10064000FE1B000108150001081500010815000136 -:100650000815060108150002D9664CFE3A555FFEE2 -:100660009A814B1DBAFE32070A1DFE096FAFFECA02 -:1006700045FE3212622C85667B01082532FE0AF0A7 -:10068000FE32078D818CFE5C070222014302FE8A46 -:1006900006151902FE8A06FE9CF7D4FE2C90FEAECB -:1006A0009077FECA070C541855094A6A351E200770 -:1006B00010FE0E1274FE808037206327FE0610FEA7 -:1006C00083E7C4A1FE0340094A4F3501A8ADFE1FD0 -:1006D00040125801A5FE0850FE8A50FE4451FEC645 -:1006E0005183FBFE8A900C521853FE0C90FE8E90A4 -:1006F000FE4050FEC2500C39183AFE4A1009046AF6 -:10070000FE2A12FE2C90FEAE900C54185509044F90 -:100710008501A8FE1F801258FE4490FEC6900C561C -:100720001857FBFE8A900C521853FE4090FEC29060 -:100730000C39183A0C38184E094A19352A13FE4E4E -:100740001165FE4808FE9EF0FE5C08B116322A7361 -:10075000DDB8FE8008B9FE9E088CFE7408FE06F027 -:10076000FE7A088D8102220143FEC9101519FEC9C7 -:1007700010610406FE101261040B4509040BFE68AB -:1007800012FE2E1C02FE240A6104064561040BFEC3 -:100790005212FE2C1CFEAAF0FE1E09FEACF0FEBE9C -:1007A00008FE8A10AAFEF310FEADF0FECA0802FE93 -:1007B000240AABFEE710FE2BF09DE91CFE00FEFEB6 -:1007C0001C12B5FED2F09DFE76181C1A169D05CBA4 -:1007D0001C06169DB86DB96DAAABFEB110705E2BEC -:1007E000149201330FFE3500FE01F05A0F7C025ABD -:1007F000FE74181CFE00F8166D671B01FE440D3BCD -:1008000001E61E2774671A026D09040B21FE060A11 -:1008100009046AFE8212090419FE66131E58ACFC14 -:10082000FE8380FEC844FE2E13FE0491FE86916373 -:1008300027FE4059FEC15977D7055431550C7B1816 -:100840007CBE54BF5501A8AD63271258C038C14EB5 -:1008500079566857F4F5FE04FA38FE05FA4E01A5FC -:10086000A2230C7B0C7C79566857FE1210090419E0 -:1008700016D77939683A0904FEF700350552315325 -:10088000FE1058FE9158FE1459FE9559026D090448 -:100890001916D70904FEF70035FE3A55FE19815F97 -:1008A000FE1090FE9290FED7102F079B16FEC608F2 -:1008B000119B09040BFE14130539313A77FEC60863 -:1008C000FE0C58FE8D58026D2347FE1980DE090488 -:1008D0000BFE1A12FE6C19FE1941E9B5FED1F0D9D2 -:1008E000147A01330FFE4400FE8E10FE6C19BE39DF -:1008F000FEED19BF3AFE0C51FE8E51E91CFE00FFC1 -:1009000034FE7410B5FED2F0FEB20AFE76181C1A40 -:100910008405CB1C06FE08130FFE1600025AFED1FA -:10092000F0FEC40A147A01330FFE1700FE4210FED7 -:10093000CEF0FECA0AFE3C10FECDF0FED60A0FFE37 -:100940002200025AFECBF0FEE20A0FFE2400025AF9 -:10095000FED0F0FEEC0A0F93DCFECFF0FEF60A0F9D -:100960004CFE1010FECCF0D96104193B0FFE1200B2 -:100970002A13FE4E1165FE0C0BFE9EF0FE200BB1FD -:1009800016322A73DDB822B9222AEC65FE2C0B251B -:10099000328CFE480B8D81B8D4B9D402220143FEBB -:1009A000DB1011FEE800AAAB70BC7DBD7FFE89F0B4 -:1009B00022302ED8BC7DBD7F01081F22302ED6B13B -:1009C000450FFE4200025A7806FE814916FE380C99 -:1009D00009040BFE44130F004B0BFE54124BFE2870 -:1009E0000021FEA60C0A40010E07005D3EFE280015 -:1009F000FEE21001E701E80A9901FE320E59112DBD -:100A0000016F02290FFE44004B0BDF3E0BFEB410BA -:100A100001863E0BFEAA100186FE1982FE3446A313 -:100A20003E0B0FFE4300FE9610094A0B3501E7010D -:100A3000E859112D016F670B593C8A02FE2A030900 -:100A4000040B843E0B0F00FE5C1061041BFE581269 -:100A500009041BFE5013FE1C1CFE9DF0FE5C0CFEE8 -:100A60001C1CFE9DF0FE620C094A1B35FEA9100FEE -:100A7000FE1500FE04E60B5F5C0FFE1300FE101077 -:100A80000FFE4700A10FFE4100A00FFE240087AA21 -:100A9000AB70056B2821D15FFE04E61BFE9D41FE75 -:100AA0001C425901DA0229EA140B3795A914FE31C8 -:100AB00000379701FE540F02D03CFE06ECC9EE3E13 -:100AC0001DFECE45343CFE06EAC9FE474B89FE7545 -:100AD000570551FE9856FE38120A42010EFE444850 -:100AE0004609041DFE1A130A40010E47FE41580A2A -:100AF00099010EFE49548EFE2A0D02FE2A030A5168 -:100B0000FEEE14EE3E1DFECE45343CFECE47FEAD5D -:100B10001302291E200710FE9E1223124D1294125A -:100B2000CE1E2D47372DB1E0FEBCF0FEEC0D1306B6 -:100B3000124D01FEE21505FE380131FE3A0177FE45 -:100B4000F00DFE02ECCE62005DFE04EC2046FE05D8 -:100B5000F6FE340101FE5216FBFE48F40DFE18139A -:100B6000AFFE02EACE627AFEC513141B3795A95C6C -:100B700005FE38011CFEF0FF0CFE600105FE3A0187 -:100B80000CFE62013D12202406122D112D8A13063F -:100B90000323031E4DFEF7121E94AC1294077AFE37 -:100BA0007113FE241C141A3795A9FED910B6FE0342 -:100BB000DCFE7357FE805D03B6FE03DCFE5B57FE72 -:100BC000805D03FE0357B623FE00CC03FE0357B639 -:100BD000750309044CFE2213FE1C800706FE1A133F -:100BE000FE1E80E1FE1D80A4FE0C90FE0E13FE0E84 -:100BF00090A3FE3C90FE30F40BFE3C50A001FE8220 -:100C0000162F072DE001FEBC1509041D4501E70163 -:100C1000E811FEE90009044CFE2C1301FE1416FE37 -:100C20001E1CFE1490FE96900CFE640118FE6601D8 -:100C300009044FFE1212FE038074FE01EC20FE80B8 -:100C4000401220632711C8591E20ED762003FE08AC -:100C50001C05FEAC00FE065805FEAE00FE0758055A -:100C6000FEB000FE085805FEB200FE0958FE0A1C40 -:100C7000246912C9230C500C3F1340485F171DFE16 -:100C8000904DFE915421FE080F3E10134248174C20 -:100C9000FE904DFE915421FE1E0F24101220782C40 -:100CA000461E20ED762011C8F6FED6F0FE320FEA81 -:100CB00070FE141CFE101CFE181C033CFE0C14EEEF -:100CC000FE07E61DFECE47FEF513030186782C468F -:100CD000FAEFFE42132F072DFE34130A42010EB025 -:100CE000FE3612F0FE454801E3FE00CCB0FEF313E1 -:100CF0003D750710A30A80010EFE805C016FFE0E99 -:100D000010077E45F6FED6F0FE6C0F03FE445874C5 -:100D1000FE01EC97FE9E40FE9DE700FE9CE71B76E1 -:100D20002701DAFEDD102ABC7DBD7F302ED5071BE2 -:100D3000FE4812070BFE5612071AFE301207C216A3 -:100D4000FE3E1107FE230016FE4A11070616FEA8F6 -:100D5000110719FE12120700162214C201339F2B2D -:100D600001088C43032BFE62080ACA01FE320E11F1 -:100D70007E02292B2F079BFED9137939683A77FE1B -:100D8000FC1009046AFE7212C038C14EF4F58EFEE2 -:100D9000C6101E58FE2613057B317C77FE820C0C94 -:100DA000541855230C7B0C7C01A82469731258013C -:100DB000A5C038C14EFE0455FEA555FE04FA38FE06 -:100DC00005FA4EFE911005563157FE4056FEE1568B -:100DD0000C56185783C038C14EF4F505523153FEF6 -:100DE0000056FEA1560C52185309046AFE1E121E2C -:100DF00058FE1F4005543155FE2C50FEAE5005568E -:100E00003157FE4450FEC65005523153FE0850FE85 -:100E10008A500539313AFE4050FEC250025C240629 -:100E200012CD025B2B01081F44302ED5070621444A -:100E30002F079B215B016E1C3D164409040BE279D0 -:100E400039683AFE0A5534FE8B55BE39BF3AFE0C5E -:100E500051FE8E51025BFE1981AFFE1941025B2BE0 -:100E6000010825321FA2302ED84B1AFEA6124B0BBA -:100E70003B0244010825321FA2302ED6071A214416 -:100E800001081FA2302EFEE809FEC2496005FE9C43 -:100E9000002884490419349FFEBB454B00453E069B -:100EA000783DFEDA14016E87FE4B45E22F079AE18A -:100EB00005C62884053F28345E025BFEC05DFEF84F -:100EC00014FE03170550B40C505E2B0108265C017C -:100ED000FEAA14025C010825321F44302ED60706F4 -:100EE000214401FE8E13FE4258FE8214FEA4148794 -:100EF000FE4AF40B1644FE4AF406FE0C122F079A23 -:100F000085025B053FB40C3F5E2B0108265C01FEA9 -:100F1000D814025C130665FECA1226FEE01272F1B6 -:100F200001082372038FFEDC1225FEDC121FFECAAD -:100F3000125E2B0108FED510136CFF020057488B80 -:100F40001CFEFF7FFE3056FE005C03136CFF0200A8 -:100F500057488B1C3DFE3056FE005C03136CFF02AD -:100F60000057488B03136CFF020057488BFE0B5849 -:100F7000030A5001820A3F018203FC1C10FF030098 -:100F800054FE00F41948FE007DFE017DFE027DFE48 -:100F9000037C63270C521853BE56BF5703FE6208EA -:100FA000FE824AFEE11AFE835A740301FE1418FE03 -:100FB00042485F608901081FFEA214302ED8010844 -:100FC0001FFEA214302EFEE80AFEC15905C628FEF7 -:100FD000CC1249041BFEC41323621BE24BC364FE04 -:100FE000E8133B130617C378DBFE7810FF02835526 -:100FF000A1FF028355621AA4BBFE30008EE4172CB9 -:101000001306FE5610620BE1BBFE64008EE40AFE7E -:10101000640017931306FE28106206FE6013BBFEE1 -:10102000C8008EE40AFEC800174D130683BBFE906D -:1010300001BAFE4E1489FE1210FE43F494FE56F0DF -:10104000FE6014FE04F46CFE43F493FEF310F90109 -:10105000FE22131C3DFE1013FE0017FE4DE469BA7C -:10106000FE9C14B769FE1C10FE0017FE4DE419BA71 -:10107000FE9C14B719836023FE4DF400DF8913062C -:10108000FEB456FEC3580360130B03150601082671 -:10109000E5150B010826E5151A010826E572FE89FB -:1010A000490108031506010826A6151A010826A6F7 -:1010B0001506010826A6FE8949010826A672FE89A2 -:1010C0004A01080360031ECC0706FE4413AD12CC90 -:1010D000FE49F4003B729F5EFE01ECFE2701F10128 -:1010E000082F07FEE300FE20131FFE5A152312CD22 -:1010F00001431ECD070645094A0635030A42010E83 -:10110000ED880710A40A80010E880A51019E030A87 -:1011100080010E88FE80E710071084FE455801E329 -:1011200088030A42010E880A51019E030A42010EF9 -:10113000FE8080F2FE49E410A40A80010EF20A51FA -:1011400001820317107166FE6001FE18DFFE19DED2 -:10115000FE241CFE1DF71D90FEF61501FEFC16E098 -:10116000911D66FE2C01FE2F1903AE21FEE615FE31 -:10117000DA1017107105FE6401FE00F419FE18580C -:1011800005FE6601FE19589119FE3C90FE30F406EA -:10119000FE3C5066FE3800FE0F79FE1CF71990FEEB -:1011A0004016FEB6143403AE21FE1816FE9C10172E -:1011B0001071FE835AFE18DFFE19DEFE1DF738900F -:1011C000FE6216FE9414FE10139138661BFEAF19D2 -:1011D000FE98E70003AE21FE5616FE6C1017107144 -:1011E000FE30BCFEB2BC91C5661BFE0F79FE1CF73B -:1011F000C590FE9A16FE5C143403AE21FE8616FEE0 -:101200004210FE02F61071FE18FE54FE19FE55FC47 -:10121000FE1DF74F90FEC016FE3614FE1C13914FB4 -:1012200047FE8358FEAF19FE80E710FE81E71011DC -:10123000FEDD006327036327FE124521FEB016146E -:10124000063795A90229FE39F0FE04172303FE7E16 -:10125000181C1A5D130D037105CB1C06FEEF12FE60 -:10126000E110782C462F072DFE3C13FE8214FE421F -:10127000133C8A0A42010EB0FE3E12F0FE454801C0 -:10128000E3FE00CCB0FEF3133D750710A30A800106 -:101290000EF2016FFE1610077E85FE4014FE24122A -:1012A000F6FED6F0FE2417170B03FE9CE70B0FFE8D -:1012B000150059762701DA1706033C8A094A1D35BD -:1012C000112D016F170603FE3890FEBA9079C7689A -:1012D000C8FE485534FEC955031E98731298030A78 -:1012E00099010EF00A40010EFE494416FEF01773F4 -:1012F00075030A42010E0710450A51019E0A40017A -:101300000E737503FE4EE41A64FE241805FE900069 -:10131000FE3A455BFE4EE4C264FE361805FE9200BE -:10132000FE02E61BDCFE4EE4FE0B0064FE481805E0 -:10133000FE9400FE02E619FE081005FE9600FE026D -:10134000E62CFE4E45FE0C12AFFF046854DE1C690D -:1013500003077AFE5AF0FE741824FE0900FE3410CA -:10136000071BFE5AF0FE821824C3FE2610071A5DE2 -:10137000242CDC070B5D2493FE0E1007065D244D24 -:101380009FAD0314FE09000133FE04FE7D057FF9C5 -:101390000325FECA18FE14F00865FEC61803FF1ADE -:0213A00000004B -:00000001FF -/* Microcode buffer is kept after initialization for error recovery. */ diff --git a/firmware/advansys/38C0800.bin.ihex b/firmware/advansys/38C0800.bin.ihex deleted file mode 100644 index a60b447ff74a..000000000000 --- a/firmware/advansys/38C0800.bin.ihex +++ /dev/null @@ -1,336 +0,0 @@ -:10000000D83F0D05000000F200F000FC001618E4D7 -:10001000010048E4188003F60200CE1900FAFFFF41 -:100020001C0F00F69EE7FF0082E700EA01FA01E6F6 -:1000300009E755F001F60300040010001EF085F0FA -:1000400018F40800BC00385400ECD5F0820D00E62E -:1000500086F0B1F0985701FCB400D4010C1C3E1C92 -:100060003C00BB000010BA19028032F07C0D021374 -:10007000BA131840005701EA02FC03FC3E006C0171 -:100080006E0174017601B9543E57008003E6B60054 -:10009000C00001013E017A01CA08CE1016110412F7 -:1000A0000812024ABB553C5603581B8030E44BE40F -:1000B0005DF002FA200032004000800024013C0183 -:1000C00068016A017001720178017C01620A860D83 -:1000D00006134C1C04804AE402EE5BF003F70C00AC -:1000E0000F004700BE00000120115C16321C381CB6 -:1000F0004E1C1044004C04EA5CF0A7F004F603FA2E -:100100000500340036009800CC0020014E014A0B57 -:10011000420C120F0C1022110A120413301C024858 -:10012000004E42544455BD56068300DC05F009F0EC -:1001300059F0B8F04BF406F70EF704FC05FC060086 -:10014000190033009B00A400B500BA00D000E10004 -:10015000E700E203080F021004100A100A130C1340 -:1001600012132414341404160816A417201C341C6B -:10017000361C0844384491440A45484601486854AE -:100180003A558355E555B0570158835905E60BF0AC -:100190000CF004F805F807000A001C001E009E0081 -:1001A000A800AA00B900E0002201260179017E0121 -:1001B000C401C60180025E03EE049A06F8076208D5 -:1001C00068086908D608E909FA0B2E0F12101A10F0 -:1001D000ED10F1102A1106120C123E121013161314 -:1001E0001E134614761482143615CA156B18BE18E1 -:1001F000CA18E619121C461C9C3200400E47FE9C91 -:10020000F02B02FEAC0DFF100000D7FEE81900D65F -:10021000FE8401FF030000FE9315FE0F05FF38006A -:1002200000FE572400FE4C005BFF04000011FF0994 -:100230000000FF080101FF08FFFFFF270000FF107B -:10024000FFFFFF110000FE7856FE3412FF21000070 -:10025000FE04F7D62C990A01FEC20FFE04F7D699C8 -:100260000A422CFE3DF0FE0602FE20F0A7FE91F0B1 -:10027000FEF401FE90F0FEF401FE8FF0A7035D4D49 -:1002800002FEC80D01FE380EFEDD12FEFC10FE2837 -:100290001C03FEA600FED3124114FEA600C2FE48B7 -:1002A000F0FE8A02FE49F0FEA402FE4AF0FEC202FF -:1002B000FE46F0FE5402FE47F0FE5A02FE43F0FEF8 -:1002C0004802FE44F0FE4C02FE45F0FE5002180AC1 -:1002D000AA180614A1022BFE001CE7FE021CE6FE73 -:1002E0001E1CFEE91001FE1818FEE710FE06FCCEEB -:1002F000097001A8022B155939A201FE5810097086 -:100300000187FEBD1009700187FEAD10FE161CFEB0 -:10031000581C180614A12C1C2BFE3DF0FE060223CF -:10032000FE9802FE5A1CF8FE141C15FE300039A27D -:1003300001FE4810180614A102D72220071135FE2D -:100340006910180614A1FE04EC204F431320FE058B -:10035000F6CE01FE4A1708545837122F429201FE7A -:100360008216022B0946010E0700660173FE181063 -:10037000FE415809A4010EFEC8546BFE100301FE95 -:100380008216022B2C4FFE02E82AFEBF57FE9E4328 -:10039000FE7757FE27F0FEE001FE074BFE20F0A798 -:1003A000FE401C1CD9FE26F0FE5A03FEA0F0FE48BB -:1003B00003FE11F0A7FEEF10FE9FF0FE6803F91098 -:1003C000FE110002652CFE481CF908051BFE1813DF -:1003D0002122A3B713A30946010EB77801FEB41674 -:1003E00012D11CD9FE01F0D9FE82F0FE9603FA125A -:1003F000FEE40027FEA8031C341DFEB803014BFEDB -:1004000006F0FEC8039586FE0AF0FE8A0602240363 -:10041000702817FEFA04156D01367BFE6A0202D8B9 -:10042000F92C9919FE671BFEBF57FE7757FE481C33 -:100430007401AF8C0946010E070017DA09D1010ECD -:100440008D5164792A037028FE1012156D01367BD8 -:10045000FE6A0202D8C781C8831C2427FE40041DFF -:10046000FE3C043BFEA000FE9B57FE4E122DFF02F9 -:100470000010010B1DFEE4042D010B1D243331DEA1 -:10048000FE4C44FE4C1251FE44480F6FFE4C546B20 -:10049000DA4F792AFE0680FE4847FE621308051BE4 -:1004A000FE2A13320782FE5213FE20100F6FFE4CFD -:1004B000546BDAFE0680FE4847FE401308051BFE1B -:1004C0000813320782FE301308051BFE1C12159D0F -:1004D0000805064D15FE0D0001367BFE640D022455 -:1004E0002D12FEE600FE1C90FE405C04159D0136B8 -:1004F000022BFE425B9919FE4659FEBF57FE775705 -:10050000FE8780FE31E45B08050AFE8413FE20802E -:100510000719FE7C12530506FE6C1303FEA2002889 -:1005200017FE9005FE31E45A53050AFE561303FEEA -:10053000A00028FE4E1267FF02001027FE48051C8F -:1005400034FE8948FF02001027FE560526FEA80546 -:1005500012FEE3002153FE4AF0FE7605FE49F0FE4E -:1005600070058825FE2100AB25FE2200AA2558FE35 -:100570000948FF02001027FE860526FEA805FEE2B8 -:10058000085305CB4D01B0250613D339FE270108CA -:10059000051BFE22124101B2159D0805064D15FEF0 -:1005A0000D0001367BFE640D022403FE9C0028EB47 -:1005B000035C28FE36134101B226FE1806090653D5 -:1005C000051FFE02125001FE9E151DFE0E0612A50D -:1005D000014B12FEE500035CC10C5C03CD28FE62FA -:1005E00012034528FE5A1301FE0C1901FE7619FE6E -:1005F0004348C4CC0F71FF02005752931E438BC473 -:100600006E4101B226FE820653051AE9910959018D -:10061000FECC151DFE780612A5014B12FEE5000367 -:1006200045C10C45180601B2FA767401AF8C12FE72 -:10063000E20027DB1C34FE0AF0FEB60694FE6C07CF -:10064000FE06F0FE74079586022408050AFE2E12A7 -:100650001619010B1600010B1600010B1600010BF9 -:10066000FE99A4010B160002FE420868051AFE3826 -:100670001208051AFE301316FE1B00010B160001AE -:100680000B1600010B1600010B1606010B160002DB -:10069000E26C58BE50FE9A81551B7AFE4207091B38 -:1006A000FE096FBAFECA45FE3212696D8B6C7F2758 -:1006B000FE54071C34FE0AF0FE4207958694FE6C39 -:1006C000070224014B02DB161F02DBFE9CF7DCFE57 -:1006D0002C90FEAE9056FEDA070C60146108545A56 -:1006E0003722200711FE0E128DFE808039206A2AE3 -:1006F000FE0610FE83E7FE4800ABFE034008545B95 -:100700003701B3B8FE1F40136201EFFE0850FE8AA6 -:1007100050FE4451FEC65188FE0890FE8A900C5E41 -:10072000145FFE0C90FE8E90FE4050FEC2500C3DB9 -:10073000143EFE4A1008055AFE2A12FE2C90FEAE08 -:10074000900C60146108055B8B01B3FE1F8013627F -:10075000FE4490FEC6900C3F1440FE0890FE8A9026 -:100760000C5E145FFE4090FEC2900C3D143E0C2EB9 -:10077000143C210C490C6308541F372C0FFE4E11FA -:1007800027DDFE9EF0FE7608BC17342C77E6C5FE0A -:100790009A08C6FEB80894FE8E08FE06F0FE94087D -:1007A00095860224014BFEC910161FFEC91068056C -:1007B00006FE101268050A4E08050AFE9012FE2E6B -:1007C0001C02FE180B6805064E68050AFE7A12FE2A -:1007D0002C1CFEAAF0FED209FEACF0FE000902FEBF -:1007E000DE09FEB7F0FEFC08FE02F61A50FE701895 -:1007F000FEF118FE4055FEE155FE1058FE9158FEE0 -:100800001459FE95591C85FE8CF0FEFC08FEACF0D8 -:10081000FEF008B5FECB10FEADF0FE0C0902FE188E -:100820000BB6FEBF10FE2BF085F41EFE00FEFE1C74 -:1008300012C2FED2F085FE76181E19178503D21E4D -:10084000061785C54AC64AB5B6FE891074672D15C8 -:100850009D013610FE3500FE01F06510800265FE38 -:100860009880FE19E40AFE1A1251FE1982FE6C18D5 -:10087000FE4454BEFE1981FE74188F9017FECE08F8 -:10088000024A08055AEC032E293C0C3F14409B2ECB -:100890009C3CFE6C18FEED18FE4454FEE5543A3FB5 -:1008A0003B40034929638FFEE354FE7418FEF5189C -:1008B0008FFEE35490C056FECE08024AFE37F0FE8B -:1008C000DA09FE8BF0FE6009024A08050A23FEFAE7 -:1008D0000A3A493B6356FE3E0A0FFEC007419800A4 -:1008E000ADFE0159FE52F0FE0C0A8F7AFE240A3A40 -:1008F000498FFEE35457497D63FE1458FE95580214 -:100900004A3A493B63FE1459FE9559BE574957630D -:10091000024A08055AFE821208051FFE661322626B -:10092000B7FE03A1FE8380FEC844FE2E13FE049191 -:10093000FE86916A2AFE4059FEC15956E00360299D -:10094000610C7F148057607D6101B3B86A2A13621D -:100950009B2E9C3C3A3F3B4090C0FE04FA2EFE0585 -:10096000FA3C01EFFE3610210C7F0C803A3F3B40F1 -:10097000E408051F17E03A3D3B3E0805FEF7003747 -:10098000035E295FFE1058FE915857497D6302FEB1 -:10099000F40908051F17E00805FEF70037BEFE1929 -:1009A0008150FE1090FE9290FED3103207A617FEE3 -:1009B000080912A608050AFE1413033D293E56FE37 -:1009C0000809FE0C58FE8D58024A2141FE1980E7A5 -:1009D00008050AFE1A12FE6C19FE1941F4C2FED176 -:1009E000F0E2157E013610FE4400FE8E10FE6C19FA -:1009F000573DFEED197D3EFE0C51FE8E51F41EFE5C -:100A000000FF35FE7410C2FED2F0FEA60BFE761873 -:100A10001E198A03D21E06FE081310FE1600026578 -:100A2000FED1F0FEB80B157E013610FE1700FE4217 -:100A300010FECEF0FEBE0BFE3C10FECDF0FECA0B4B -:100A400010FE22000265FECBF0FED60B10FE240045 -:100A50000265FED0F0FEE00B109EE5FECFF0FEEA50 -:100A60000B1058FE1010FECCF0E268051F4D10FE72 -:100A700012002C0FFE4E1127FE000CFE9EF0FE14FD -:100A80000CBC17342C77E6C524C6242CFA27FE208C -:100A90000C1C3494FE3C0C9586C5DCC6DC0224019B -:100AA0004BFEDB1012FEE800B5B674C781C883FEAA -:100AB00089F0243331E1C781C88327FE660C1D24E9 -:100AC0003331DFBC4E10FE420002657C06FE8149D8 -:100AD00017FE2C0D08050AFE44131000550AFE549B -:100AE0001255FE280023FE9A0D0946010E070066E6 -:100AF00044FE2800FEE21001F501F609A401FE26DD -:100B00000F64122F0173022B10FE4400550AE944B2 -:100B10000AFEB41001B0440AFEAA1001B0FE198208 -:100B2000FE3446AC440A10FE4300FE961008540AF8 -:100B30003701F501F664122F0173990A644292029B -:100B4000FE2E0308050A8A440A1000FE5C106805A0 -:100B50001AFE581208051AFE5013FE1C1CFE9DF0CA -:100B6000FE500DFE1C1CFE9DF0FE560D08541A375B -:100B7000FEA91010FE1500FE04E60A50FE2E10100D -:100B8000FE1300FE1010106FAB10FE4100AA10FE05 -:100B900024008CB5B67403702823D850FE04E61ADE -:100BA000FE9D41FE1C426401E3022BF8150A39A0A8 -:100BB000B415FE310039A201FE481002D742FE06EC -:100BC000ECD0FC441BFECE453542FE06EAD0FE4783 -:100BD0004B91FE7557035DFE9856FE381209480189 -:100BE0000EFE44484F08051BFE1A130946010E412C -:100BF000FE415809A4010EFE495496FE1E0E02FE47 -:100C00002E03095DFEEE14FC441BFECE453542FE6C -:100C1000CE47FEAD13022B22200711FE9E12211398 -:100C200059139F13D5222F41392FBCADFEBCF0FEC6 -:100C3000E00E0F06135901FEDA1603FE380129FEF5 -:100C40003A0156FEE40EFE02ECD5690066FE04ECA5 -:100C5000204FFE05F6FE340101FE4A17FE0890FE05 -:100C600048F40DFE1813BAFE02EAD5697EFEC513DC -:100C7000151A39A0B4FE2E1003FE38011EFEF0FF37 -:100C80000CFE600103FE3A010CFE620143132025B5 -:100C900006132F122F920F060421042259FEF71279 -:100CA000229FB7139F077EFE7113FE241C1519396E -:100CB000A0B4FED910C3FE03DCFE7357FE805D04B2 -:100CC000C3FE03DCFE5B57FE805D04FE0357C321B9 -:100CD000FE00CC04FE0357C37804080558FE221317 -:100CE000FE1C800706FE1A13FE1E80EDFE1D80AE60 -:100CF000FE0C90FE0E13FE0E90ACFE3C90FE30F407 -:100D00000AFE3C50AA01FE7A1732072FAD01FEB44D -:100D10001608051B4E01F501F612FEE900080558FC -:100D2000FE2C1301FE0C17FE1E1CFE1490FE969066 -:100D30000CFE640114FE660108055BFE1212FE0340 -:100D4000808DFE01EC20FE804013206A2A12CF64C1 -:100D50002220FB792004FE081C03FEAC00FE06588E -:100D600003FEAE00FE075803FEB000FE085803FE67 -:100D7000B200FE0958FE0A1C256E13D0210C5C0C33 -:100D8000450F465250181BFE904DFE915423FEFC19 -:100D90000F44110F48521858FE904DFE915423E411 -:100DA000251113207C6F4F2220FB792012CFFE14D7 -:100DB00056FED6F0FE2610F874FE141CFE101CFE23 -:100DC000181C0442FE0C14FCFE07E61BFECE47FE78 -:100DD000F5130401B07C6F4FFE0680FE4847FE42CB -:100DE0001332072FFE34130948010EBBFE3612FEE4 -:100DF0004148FE454801F0FE00CCBBFEF3134378AA -:100E00000711AC0984010EFE805C0173FE0E100711 -:100E1000824EFE1456FED6F0FE601004FE44588D3D -:100E2000FE01ECA2FE9E40FE9DE700FE9CE71A79C3 -:100E30002A01E3FEDD102CC781C8833331DE071A97 -:100E4000FE4812070AFE56120719FE301207C9178C -:100E5000FE321207FE230017EB070617FE9C12074F -:100E60001FFE12120700172415C90136A92D010B08 -:100E7000944B042DDD09D101FE260F1282022B2D89 -:100E80003207A6FED9133A3D3B3E56FEF011080547 -:100E90005AFE72129B2E9C3C90C096FEBA112262A2 -:100EA000FE2613037F298056FE760D0C6014612107 -:100EB0000C7F0C8001B3256E77136201EF9B2E9C93 -:100EC0003CFE0455FEA555FE04FA2EFE05FA3CFE36 -:100ED0009110033F2940FE4056FEE1560C3F14405E -:100EE000889B2E9C3C90C0035E295FFE0056FEA1AD -:100EF000560C5E145F08055AFE1E122262FE1F4049 -:100F000003602961FE2C50FEAE50033F2940FE4491 -:100F100050FEC650035E295FFE0850FE8A50033D16 -:100F2000293EFE4050FEC2500289250613D40272AB -:100F30002D010B1D4C3331DE0706234C3207A6234F -:100F40007201AF1E43174C08050AEE3A3D3B3EFEC8 -:100F50000A5535FE8B55573D7D3EFE0C51FE8E5198 -:100F60000272FE1981BAFE194102722D010B1C3466 -:100F70001DE83331E15519FEA612550A4D024C0108 -:100F80000B1C341DE83331DF0719234C010B1DE81E -:100F90003331FEE809FEC2495103FE9C00288A5302 -:100FA000051F35A9FEBB4555004E44067C43FEDABD -:100FB0001401AF8CFE4B45EE3207A5ED03CD288A18 -:100FC00003452835670272FEC05DFEF814FE031764 -:100FD000035CC10C5C672D010B268901FE9E150286 -:100FE00089010B1C341D4C3331DF0706234C01F102 -:100FF000FE4258F1FEA4148CFE4AF40A174CFE4A35 -:10100000F406EA3207A58B02720345C10C45672D31 -:10101000010B268901FECC1502890F0627FEBE139F -:1010200026FED41376FE8948010B2176047BFED080 -:10103000131CFED0131DFEBE13672D010BFED51031 -:101040000F71FF02005752931EFEFF7FFE3056FEC7 -:10105000005C040F71FF02005752931E43FE30568E -:10106000FE005C040F71FF0200575293040F71FFE2 -:101070000200575293FE0B5804095C018709450191 -:101080008704FE03A11E11FF030054FE00F41F524B -:10109000FE007DFE017DFE027DFE037C6A2A0C5E61 -:1010A000145F573F7D4004DDFE824AFEE11AFE8355 -:1010B0005A8D0401FE0C19FE4248505191010B1D3E -:1010C000FE96153331E1010B1DFE96153331FEE816 -:1010D0000AFEC15903CD28FECC1253051AFEC413D3 -:1010E00021691AEE55CA6BFEDC144D0F0618CA7C36 -:1010F00030FE7810FF028355ABFF0283556919AEAD -:1011000098FE300096F2186D0F06FE5610690AED33 -:1011100098FE640096F209FE6400189E0F06FE28F1 -:10112000106906FE601398FEC80096F209FEC8001A -:1011300018590F068898FE90017AFE421591E4FE38 -:1011400043F49FFE56F0FE5415FE04F471FE43F482 -:101150009EFEF310FE405C01FE16141E43ECFE00E2 -:1011600017FE4DE46E7AFE9015C46EFE1C10FE0054 -:1011700017FE4DE4CC7AFE9015C4CC885121FE4D6B -:10118000F400E9910F06FEB456FEC35804510F0A4D -:10119000041606010B26F3160A010B26F316190195 -:1011A0000B26F376FE8949010B041606010B26B1C6 -:1011B0001619010B26B11606010B26B1FE8949014D -:1011C0000B26B176FE894A010B04510422D307068F -:1011D000FE4813B813D3FE49F4004D76A967FE010B -:1011E000ECFE2701FE8948FF02001027FE2E163272 -:1011F00007FEE300FE20131DFE52162113D4014BFF -:1012000022D407064E08540637040948010EFB8E07 -:101210000711AE0984010E8E095D01A8040984013D -:101220000E8EFE80E71107118AFE455801F08E04EC -:101230000948010E8E095D01A8040948010EFE80CF -:1012400080FE804CFE49E411AE0984010EFE804C04 -:10125000095D0187041811756CFE6001FE18DFFE40 -:1012600019DEFE241CFE1DF71B97FEEE1601FEF490 -:1012700017AD9A1B6CFE2C01FE2F1904B923FEDE5C -:1012800016FEDA1018117503FE6401FE00F41FFE4D -:10129000185803FE6601FE19589A1FFE3C90FE3056 -:1012A000F406FE3C506CFE3800FE0F79FE1CF71F62 -:1012B00097FE3817FEB6143504B923FE1017FE9CAE -:1012C00010181175FE835AFE18DFFE19DEFE1DF799 -:1012D0002E97FE5A17FE9414EC9A2E6C1AFEAF1934 -:1012E000FE98E70004B923FE4E17FE6C1018117526 -:1012F000FE30BCFEB2BC9ACB6C1AFE0F79FE1CF716 -:10130000CB97FE9217FE5C143504B923FE7E17FEC0 -:101310004210FE02F61175FE18FE60FE19FE61FE17 -:1013200003A1FE1DF75B97FEB817FE3614FE1C13D3 -:101330009A5B41FE8358FEAF19FE80E711FE81E7FC -:101340001112FEDD006A2A046A2AFE124523FEA855 -:1013500017150639A0B4022BFE39F0FEFC17210444 -:10136000FE7E181E19660F0D047503D21E06FEEFD1 -:1013700012FEE1107C6F4F32072FFE3C13F1FE424C -:101380001342920948010EBBEBFE4148FE4548015D -:10139000F0FE00CCBBFEF31343780711AC098401C7 -:1013A0000EFE804C0173FE161007828BFE4014FE69 -:1013B0002412FE1456FED6F0FE1C18180A04FE9CD9 -:1013C000E70A10FE150064792A01E3180604429228 -:1013D00008541B37122F0173180604FE3890FEBA0A -:1013E000903ACE3BCFFE485535FEC9550422A3772F -:1013F00013A30409A4010EFE41480946010EFE494B -:101400004417FEE8187778040948010E07114E09C1 -:101410005D01A80946010E777804FE4EE4196BFEC3 -:101420001C1903FE9000FE3A45FE2C10FE4EE4C946 -:101430006BFE2E1903FE9200FE02E61AE5FE4EE454 -:10144000FE0B006BFE401903FE9400FE02E61FFE39 -:10145000081003FE9600FE02E66DFE4E45EABAFF56 -:10146000046854E71E6EFE081CFE6719FE0A1CFE87 -:101470001AF4FE0004EAFE48F4197AFE74190F19F2 -:1014800004077EFE5AF0FE841925FE0900FE341082 -:10149000071AFE5AF0FE921925CAFE261007196691 -:1014A000256DE5070A66259EFE0E1007066625597E -:1014B000A9B80415FE09000136FE04FE810383FE6F -:1014C000405C041CF7FE14F00B27FED6191CF77BBA -:0C14D000F7FE82F0FEDA1904FFCC0000E9 -:00000001FF -/* Microcode buffer is kept after initialization for error recovery. */ diff --git a/firmware/advansys/38C1600.bin.ihex b/firmware/advansys/38C1600.bin.ihex deleted file mode 100644 index 18c7c4862046..000000000000 --- a/firmware/advansys/38C1600.bin.ihex +++ /dev/null @@ -1,398 +0,0 @@ -:1000000077EF0406000000F2001600FC001000F07C -:1000100018E40100041E48E403F6F7132E1E020044 -:100020000717C05F00FAFFFF040000F609E782E748 -:1000300085F086F04E109EE7FF0055F001F60300B4 -:10004000985701E600EA00EC01FA18F40800F01DE8 -:10005000385432F01000C20E1EF0D5F0BC004BE454 -:1000600000E6B1F0B40002133E1CC8473E00D801C0 -:1000700006130C1C5E1E0057C85701FCBC0EA212D2 -:10008000B9540080620A5A12C8153E1E1840BD5667 -:1000900003E601EA5CF00F0020006C016E0104121F -:1000A0000413BB553C563E5703584AE44000B60083 -:1000B000BB00C000000101013E01580A44100A12B1 -:1000C0004C1C4E1C024A30E405E60C003C0080004B -:1000D00024013C0168016A0170017201740176011A -:1000E00078017C01C60E0C10AC12AE12161A321C2E -:1000F0006E1E02483A55C95702EE5BF003F706F749 -:1001000003FC06001E00BE00E1000C12181A701A53 -:10011000301C381C1044004CB057405C4DE404EADD -:100120005DF0A7F004F602FC05000900190032009A -:1001300033003400360098009E00CC0020014E01B0 -:1001400079013C09680D021004103A1008120A13D4 -:100150004016501600174A19004E0054015800DC92 -:1001600005F009F059F0B8F048F40EF70A009B00CA -:100170009C00A400B500BA00D000E700F0036908B5 -:10018000E9095C0CB612BC19D81B201C341C361CA7 -:10019000421D0844384491440A45484689486854F9 -:1001A0008355835931E402E607F008F00BF00CF0B8 -:1001B0004BF404F805F802FA03FA04FC05FC070006 -:1001C000A800AA00B900E000E500220126016001B4 -:1001D0007A018201C801CA0186026A031805B207C2 -:1001E0006808100D06100A100E1012106010ED10A5 -:1001F000F310061210121E120C130E131013FE9C95 -:10020000F03505FEEC0EFF100000E9FE341F00E89B -:10021000FE8801FF030000FE9315FE0F05FF380066 -:1002200000FE572400FE4C0065FF0400001AFF0981 -:100230000000FF080101FF08FFFFFF270000FF107B -:10024000FFFFFF130000FE7856FE3412FF2100006E -:10025000FE04F7E8377D0D01FE4A11FE04F7E87D44 -:100260000D5137FE3DF0FE0C02FE20F0BCFE91F079 -:10027000FEF801FE90F0FEF801FE8FF0BC03674D22 -:1002800005FE080F01FE780FFEDD1205FE0E03FECF -:10029000281C03FEA600FED1123E22FEA600ACFEE4 -:1002A00048F0FE9002FE49F0FEAA02FE4AF0FEC8A7 -:1002B00002FE46F0FE5A02FE47F0FE6002FE43F0E8 -:1002C000FE4E02FE44F0FE5202FE45F0FE56021CB7 -:1002D0000DA21C0722B70535FE001CFEF110FE0220 -:1002E0001CF5FE1E1CFEE910015FFEE710FE06FC79 -:1002F000DE0A8101A305351F9547B801FEE4110A06 -:1003000081015CFEBD100A81015CFEAD10FE161C71 -:10031000FE581C1C0722B7372A35FE3DF0FE0C02A2 -:100320002BFE9E02FE5A1CFE121CFE141C1FFE30E9 -:100330000047B801FED4111C0722B705E9212C099A -:100340001A31FE69101C0722B7FE04EC2C6001FE76 -:100350001E1E202CFE05F6DE01FE621B010C614A0A -:100360004415565101FE9E1E01FE961A05350A5788 -:1003700001180900360185FE1810FE41580ABA011D -:1003800018FEC8547BFE1C0301FE961A0535376023 -:10039000FE02E830FEBF57FE9E43FE7757FE27F071 -:1003A000FEE401FE074BFE20F0BCFE401C2AEBFEE3 -:1003B00026F0FE6603FEA0F0FE5403FE11F0BCFE24 -:1003C000EF10FE9FF0FE7403FE461C19FE1100059F -:1003D0007037FE481CFE461C010C0628FE1813262A -:1003E00021B9C720B90A570118C78901FEC81A15D3 -:1003F000E12AEBFE01F0EBFE82F0FEA403FE9C324C -:1004000015FEE4002FFEB6032A3C16FEC60301418A -:10041000FE06F0FED603AFA0FE0AF0FEA2070529F5 -:1004200003811E1BFE24051F6301428FFE7002051F -:10043000EAFE461C377D1DFE671BFEBF57FE775741 -:10044000FE481C7501A6860A57011809001BEC0A14 -:10045000E101187750408D3003811EF81F6301427F -:100460008FFE700205EAD799D89C2A292FFE4E04E8 -:1004700016FE4A047EFEA000FE9B57FE541232FF79 -:10048000020010010816FE02053201081629272570 -:10049000EEFE4C44FE581250FE44481334FE4C54B9 -:1004A0007BEC608D3001FE4E1EFE4847FE7C130142 -:1004B0000C0628FE32130143099BFE6813FE26102A -:1004C0001334FE4C547BEC01FE4E1EFE4847FE5496 -:1004D00013010C0628A50143099BFE4013010C06DD -:1004E00028F91F7F010C06074D1FFE0D0001428FEA -:1004F000FEA40E05293215FEE6000FFE1C9004FE38 -:100500009C933A0B0E8B021F7F01420535FE425B26 -:100510007D1DFE4659FEBF57FE77570FFE878004AC -:10052000FE8783FEC9470B0ED065010C060DFE98B1 -:10053000130FFE208004FEA083330B0E091DFE84E2 -:100540001201380607FE701303FEA2001E1BFEDA1E -:1005500005D0540138060DFE581303FEA0001EFE00 -:1005600050125EFF0200102FFE90052A3CCCFF02C5 -:1005700000102FFE9E0517FEF40515FEE300260170 -:1005800038FE4AF0FEC005FE49F0FEBA05712EFEA7 -:100590002100F12EFE2200A22E4AFE0948FF020091 -:1005A000102FFED00517FEF405FEE208013806FE06 -:1005B0001C004D01A72E0720E447FE2701010C0671 -:1005C00028FE24123E01841F7F010C06074D1FFEEA -:1005D0000D0001428FFEA40E052903E61EFECA137C -:1005E00003B61EFE401203661EFE38133E0184173A -:1005F000FE72060A0701380624FE02124F01FE565B -:100600001916FE68061582014115E203668A106616 -:10061000039A1EFE701203551EFE681301C60912CE -:1006200048FE92062E1201FEAC1DFE434862801366 -:1006300058FF02005752AD233F4E62493E018417D6 -:10064000FEEA0601380612F7450A9501FE841916DE -:10065000FEE0061582014115E203558A10551C077C -:100660000184FEAE10036F1EFE9E133E0184039AAA -:100670001EFE1A1201380612FC01C601FEAC1DFE58 -:1006800043486280F0450A9503B61EF801380624F7 -:1006900036FE02F60771788C004D62493E2D934E6E -:1006A000D00D17FE9A0701FEC01916FE90072620EE -:1006B0009E1582014115E2219E0907FB03E6FE58C3 -:1006C0005710E605FE2A06036F8A106F1C07018487 -:1006D000FE9C325F7501A68615FEE2002FED2A3CD6 -:1006E000FE0AF0FECE07AEFE9608FE06F0FE9E085D -:1006F000AFA00529010C060DFE2E12141D010814D1 -:100700000001081400010814000108FE99A4010862 -:10071000140005FEC60901760612FE3A12010C0607 -:1007200012FE301314FE1B0001081400010814000F -:1007300001081400010814070108140005EF7C4AA1 -:10074000784F0FFE9A8104FE9A83FECB470B0E2D45 -:100750002848FE6C080A28FE096FCAFECA45FE3208 -:100760001253634E7C972FFE7E082A3CFE0AF0FE51 -:100770006C08AFA0AEFE96080529014105ED1424D2 -:1007800005EDFE9CF79F01FEAE1EFE185801FEBE51 -:100790001EFE9958FE7818FEF9188EFE1609106A8A -:1007A000226B010C615444212C091AF87701FE7E5A -:1007B0001E472C7A30F0FE83E7FE3F0071FE0340B7 -:1007C000010C61654401C2C8FE1F40206E01FE6A33 -:1007D00016FE0850FE8A50FE4451FEC651FE10100F -:1007E00001FECE1E01FEDE1E1068226901FEEE1E15 -:1007F00001FEFE1EFE4050FEC250104B224CFE8AEF -:1008000010010C0654FE501201FEAE1E01FEBE1E6B -:10081000106A226B010C06654E01C20FFE1F800498 -:10082000FE9F83330B0E206E0FFE449004FEC49394 -:100830003A0BFEC69004FEC693790B0E106C226D27 -:1008400001FECE1E01FEDE1E106822690FFE4090E2 -:1008500004FEC0933A0BFEC29004FEC293790B0EC5 -:10086000104B224C10642234010C6124443713FED7 -:100870004E112FFEDE09FE9EF0FEF209FE01481B1E -:100880003C3788F5D4FE1E0AD5FE420AD2FE1E0A67 -:10089000D3FE420AAEFE120AFE06F0FE180AAFA010 -:1008A00005290141FEC1101424FEC110017606077E -:1008B000FE14120176060D5D010C060DFE7412FE8B -:1008C0002E1C05FE1A0C017606075D0176060D4109 -:1008D000FE2C1CFEAAF0FECE0AFEACF0FE660AFE5E -:1008E0009210C4F6FEADF0FE720A05FE1A0CC5FEAB -:1008F000E710FE2BF0BFFE6B1823FE00FEFE1C125D -:10090000ACFED2F0BFFE7618231D1BBF03E3230706 -:100910001BBFD45BD55BD25BD35BC4C5FEA910758E -:100920005E321F7F014219FE3500FE01F0701998FA -:100930000570FE741823FE00F81B5B7D1201FE7823 -:100940000F4D01FE961A2130777D1D055B010C06C7 -:100950000D2BFEE20B010C0654FEA612010C062420 -:10096000FE8813216EC701FE1E1F0FFE838004FE4A -:100970008383FEC9470B0EFEC844FE42130FFE04DC -:100980009104FE8493FECA570BFE869104FE869363 -:10099000FECB570B0E7A30FE4059FEC1598E4003F4 -:1009A0006A3B6B10972298D96ADA6B01C2C87A3019 -:1009B000206EDB64DC34916C7E6DFE4455FEE555A3 -:1009C000FE04FA64FE05FA3401FE6A16A3261097A7 -:1009D0001098916C7E6DFE1410010C06241B409142 -:1009E0004B7E4C010C06FEF7004403683B69FE1089 -:1009F00058FE9158FE1459FE9559055B010C0624CA -:100A00001B40010C06FEF700447801FE8E1E4F0FBE -:100A1000FE109004FE90933A0BFE929004FE929387 -:100A2000790B0EFEBD10014309BB1BFE6E0A15BB00 -:100A3000010C060DFE1413034B3B4C8EFE6E0AFE9A -:100A40000C58FE8D58055B263E0FFE198004FE995A -:100A500083330B0EFEE510010C060DFE1A12FE6C20 -:100A600019FE1941FE6B18ACFED1F0EF1F92014246 -:100A700019FE4400FE9010FE6C19D94BFEED19DAF8 -:100A80004CFE0C51FE8E51FE6B1823FE00FF31FE12 -:100A90007610ACFED2F0FEBA0CFE7618231D5D0374 -:100AA000E32307FE081319FE16000570FED1F0FEC1 -:100AB000CC0C1F92014219FE17005CFECEF0FED254 -:100AC0000CFE3E10FECDF0FEDE0C19FE220005707D -:100AD000FECBF0FEEA0C19FE24000570FED0F0FEFD -:100AE000F40C1994FE1C10FECFF0FEFE0C194AF314 -:100AF000FECCF0EF017606244D19FE12003713FEEE -:100B00004E112FFE160DFE9EF0FE2A0DFE01481B13 -:100B10003C3788F5D429D529D229D32937FE9C32F0 -:100B20002FFE3E0D2A3CAEFE620DAFA0D49FD59F96 -:100B3000D29FD39F05290141FED31015FEE800C4C2 -:100B4000C575D799D89CFE89F0292725BED799D895 -:100B50009C2FFE8C0D16292725BDFE0148A419FEE9 -:100B6000420005709007FE81491BFE640E010C06D1 -:100B70000DFE441319002D0DFE54122DFE28002BDE -:100B8000FEDA0E0A57011809003646FE2800FEFA62 -:100B90001001FEF41C01FE001D0ABA01FE581040AF -:100BA00015560185053519FE44002D0DF7460DFE3D -:100BB000CC1001A7460DFEC21001A70FFE1982043A -:100BC000FE9983FECC470B0EFE3446A5460D19FE5A -:100BD0004300FEA210010C610D4401FEF41C01FE55 -:100BE000001D40155601857D0D405101FE9E1E05DC -:100BF000FE3A03010C060D5D460D1900FE62100160 -:100C0000760612FE5C12010C0612FE5213FE1C1C2C -:100C1000FE9DF0FE8E0EFE1C1CFE9DF0FE940E014D -:100C20000C611244FE9F1019FE1500FE04E60D4FE4 -:100C3000FE2E1019FE1300FE101019FE4700F119C8 -:100C4000FE4100A219FE240086C4C57503811E2B37 -:100C5000EA4FFE04E612FE9D41FE1C424001F405EF -:100C600035FE121C1F0D47B5C31FFE310047B801EA -:100C7000FED41105E951FE06ECE0FE0E474628FEC3 -:100C8000CE453151FE06EAE0FE474B45FE7557035F -:100C900067FE9856FE38120A5A0118FE4448600151 -:100CA0000C0628FE18130A5701183EFE41580ABACE -:100CB000FEFA14FE4954B0FE5E0F05FE3A030A67C1 -:100CC000FEE014FE0E474628FECE453151FECE47CB -:100CD000FEAD130535212C091AFE98122620962008 -:100CE000E7FE081CFE7C19FEFD19FE0A1C03E5FE4A -:100CF0004855A53BFE6201FEC95531FE741001FE48 -:100D0000F01A03FE38013BFE3A018EFE1E10FE0271 -:100D1000ECE7530036FE04EC2C60FE05F6FE3401D1 -:100D200001FE621B01FECE1EB211FE1813CAFE02A6 -:100D3000EAE75392FEC3131F1247B5C3FE2A1003FE -:100D4000FE380123FEF0FF10E503FE3A0110FE62BB -:100D50000101FE1E1E202C155601FE9E1E130702C9 -:100D600026022196C720960992FE79131F1D47B5CA -:100D7000C3FEE110CFFE03DCFE7357FE805D02CFA1 -:100D8000FE03DCFE5B57FE805D02FE0357CF26FEAE -:100D900000CC02FE0357CF8902010C064AFE4E1317 -:100DA0000FFE1C8004FE9C83330B0E0907FE3A13D2 -:100DB0000FFE1E8004FE9E83330B0EFE2A130FFED1 -:100DC0001D8004FE9D83FEF9130EFE1C1301FEEE32 -:100DD0001EACFE141301FEFE1EFE8158FA01FE0E2B -:100DE0001FFE30F40DFE3C50A201FE921B01430990 -:100DF00056FB01FEC81A010C0628A401FEF41C01D2 -:100E0000FE001D15FEE900010C064AFE4E1301FE10 -:100E1000221BFE1E1C0FFE149004FE94933A0BFE40 -:100E2000969004FE9693790B0E10FE640122FE66E6 -:100E300001010C0665F90FFE038004FE8383330B6A -:100E40000E77FE01EC2CFE8040202C7A3015DF401E -:100E5000212CFE00408D2C02FE081C03FEAC00FE7F -:100E6000065803FEAE00FE075803FEB000FE085809 -:100E700003FEB200FE0958FE0A1C2E4920E026108F -:100E8000661055106F1357524F1C28FE904DFE915F -:100E9000542BFE8811461A135A521C4AFE904DFEDE -:100EA00091542BFE9E112E1A202C903460212CFE82 -:100EB00000408D2C15DFFE1456FED6F0FEB211FE5A -:100EC000121C75FE141CFE101CFE181C0251FE0C98 -:100ED00014FE0E47FE07E628FECE47FEF51302017C -:100EE000A7903460FE0680FE4847FE4213FE028053 -:100EF0000956FE34130A5A0118CBFE3612FE414839 -:100F0000FE454801FEB216FE00CCCBFEF3133F892E -:100F1000091AA50A9D0118FE805C0185F2099BA4AF -:100F2000FE1456FED6F0FEEC1102FE445877FE0188 -:100F3000ECB8FE9E40FE9DE700FE9CE7128D30015E -:100F4000F4FEDD1037D799D89C2725EE0912FE480C -:100F500012090DFE5612091DFE301209DD1BFEC4DA -:100F60001309FE23001BFED01309071BFE341409CE -:100F700024FE121209001B291FDD0142A1320108C3 -:100F8000AE410232FE62080AE101FE5810159B05CF -:100F90003532014309BBFED713914B7E4C8EFE8048 -:100FA00013010C0654FE7212DB64DC34FE4455FE61 -:100FB000E555B0FE4A13216EFE261303973B988E2B -:100FC000FEB60E106A226B261097109801C22E49A9 -:100FD00088206E01FE6A16DB64DC34FE0455FEA533 -:100FE00055FE04FA64FE05FA34FE8F10036C3B6D67 -:100FF000FE4056FEE156106C226D71DB64DC34FE5F -:101000004455FEE55503683B69FE0056FEA15610A7 -:10101000682269010C0654F9216EFE1F40036A3BE9 -:101020006BFE2C50FEAE50036C3B6DFE4450FEC672 -:101030005003683B69FE0850FE8A50034B3B4CFE50 -:101040004050FEC25005732E07209E0572320108E3 -:10105000163D2725EE09072B3D014309BB2B7201E5 -:10106000A6233F1B3D010C060DFE1E13914B7E4C2B -:10107000FE0A5531FE8B55D94BDA4CFE0C51FE8ED3 -:1010800051057201FE8E1ECAFE1941057232010819 -:101090002A3C16C02725BE2D1DC02D0D832D7F1B7C -:1010A000FE6615053D01082A3C16C02725BD091D11 -:1010B0002B3D010816C02725FEE809FEC249500352 -:1010C000B61E830138062431A1FEBB452D00A4467F -:1010D00007903F01FEF81501A686FE4B45FE201342 -:1010E00001430982FE1613039A1E5D03551E315EED -:1010F0000572FEC05D01A7FE031703668A10665ED7 -:10110000320108177301FE5619057301082A3C16AF -:101110003D2725BD09072B3D01FEBE16FE4258FEA8 -:10112000E81401A686FE4AF40D1B3DFE4AF407FEB4 -:101130000E12014309824E057203558A10555E3224 -:101140000108177301FE8419057301082A3C163D36 -:101150002725BD09122B3D01FEE8178BFEAA14FEC0 -:10116000B61486A8B20D1B3DB207FE0E120143094C -:10117000824E0572036F8A106F5E32010817730189 -:10118000FEC019057313072FFECC1517FEE2155F7D -:10119000CC0108265F028FFEDE152AFEDE1516FE44 -:1011A000CC155E320108FED5101358FF02005752CD -:1011B000AD23FEFF7FFE3056FE005C021358FF0297 -:1011C000005752AD233FFE3056FE005C021358FF1D -:1011D00002005752AD021358FF02005752FE005E44 -:1011E000021358FF02005752ADFE0B58020A660167 -:1011F0005C0A55015C0A6F015C0201FE1E1F231A86 -:10120000FF030054FE00F424520FFE007C04FE078E -:101210007C3A0B0EFE0071FEF918FE7A19FEFB19DE -:10122000FE1AF700FE1BF7007A3010682269D96CAD -:10123000DA6D02FE6208FE824AFEE11AFE835A77E8 -:101240000201C6FE42484F5045010816FEE017272E -:1012500025BE010816FEE0172725FEE80AFEC15943 -:10126000039A1EFEDA1201380612FED0132653121C -:1012700048FE0817D1125312FE1E132DB47BFE2612 -:10128000174D13071CB49004FE7810FF028355F12C -:10129000FF028355531DFE1213D6FE3000B0FE80B0 -:1012A000171C631307FE5610530DFE1613D6FE646B -:1012B00000B0FE80170AFE64001C941307FE28107D -:1012C0005307FE6013D6FEC800B0FE80170AFEC8A2 -:1012D000001C95130771D6FE900148FE8C1745F34C -:1012E000FE43F496FE56F0FE9E17FE04F458FE43AD -:1012F000F494F68B01FE2416233FFCA88C4948FE8B -:10130000DA176249FE1C10A88C8048FEDA1762804A -:10131000715026FE4DF400F7451307FEB456FEC388 -:10132000580250130D02503E784F45010816A92768 -:1013300025BEFE03EAFE7E01010816A92725FEE967 -:101340000A010816A92725FEE90AFE05EAFE7F0123 -:10135000010816A92725FE6909FE02EAFE8001019F -:101360000816A92725FEE80847FE810103B61E835B -:101370000138062431A278F2530736FE34F43FA137 -:1013800078039A1E830138061231F04F45FE901003 -:10139000FE405A233FFB8C4948FEAA186249718CD3 -:1013A0008048FEAA186280FEB456FE405D01C60168 -:1013B000FEAC1DFE0217FEC845FE5AF0FEC018FE28 -:1013C00043482D9336FE34F4FE0011FE40102DB438 -:1013D00036FE34F404FE34102DFE0B00364663FE58 -:1013E0002810FEC049FF020054B2FE900148FEFAE8 -:1013F0001845FE1CF43FF3FE40F496FE56F0FE0C3A -:1014000019FE04F458FE40F494F63E2D934ED00D90 -:1014100021FE7F01FEC846FE24138C005D2621FEBE -:101420007E01FEC845FE141321FE8001FE4845FAE8 -:1014300021FE8101FEC8444E260213070278455062 -:10144000130D021407010817FE8219140D01081765 -:10145000FE8219141D010817FE82195FFE894901D9 -:1014600008021407010817C1141D010817C1140749 -:10147000010817C1FE8949010817C15FFE894A01A9 -:1014800008025002140701081774147F010817742A -:10149000141201081774FE89490108177414000119 -:1014A000081774FE894A01081774FE0949010817D4 -:1014B000745FCC01080221E40907FE4C13C820E444 -:1014C000FE49F4004D5FA15EFE01ECFE2701CCFF5A -:1014D0000200102FFE3E1A014309FEE300FE221314 -:1014E00016FE641A26209E0141219E09075D010C0B -:1014F000610744020A5A0118FE0040AA091AFE12A6 -:10150000130A9D0118AA0A6701A3020A9D0118AADD -:10151000FE80E71A091A5DFE455801FEB216AA02BE -:101520000A5A0118AA0A6701A3020A5A011801FE01 -:101530007E1EFE804CFE49E41AFE12130A9D01181D -:10154000FE804C0A67015C021C1A877CE5FE18DFEE -:10155000FE19DEFE241CFE1DF728B1FE041B01FE51 -:101560002A1CFAB3287CFE2C01FE2F1902C92BFE7F -:10157000F41AFEFA101C1A8703FE6401FE00F4241C -:10158000FE185803FE6601FE1958B32401FE0E1F13 -:10159000FE30F407FE3C507CFE3800FE0F79FE1C46 -:1015A000F724B1FE501BFED4143102C92BFE261BBA -:1015B000FEBA101C1A87FE835AFE18DFFE19DEFEE3 -:1015C0001DF754B1FE721BFEB214FCB3547C12FE24 -:1015D000AF19FE98E70002C92BFE661BFE8A101C9D -:1015E0001A878B0FFE309004FEB0933A0BFE18580A -:1015F000FE329004FEB2933A0BFE19580EA8B34A7D -:101600007C12FE0F79FE1CF74AB1FEC61BFE5E146B -:101610003102C92BFE961B5CFE02F61A87FE18FEED -:101620006AFE19FE6B01FE1E1FFE1DF765B1FEEE80 -:101630001BFE3614FE1C13B3653EFE8358FEAF1925 -:10164000FE80E71AFE81E71A15FEDD007A30027A85 -:1016500030FE12452BFEDC1B1F0747B5C30535FEC8 -:1016600039F0752602FE7E18231D361311028703FA -:10167000E32307FEEF12FEE110903460FE028009C2 -:1016800056FE3C13FE8214FE421351FE06830A5A94 -:101690000118CBFE3E12FE4148FE454801FEB2163F -:1016A000FE00CCCBFEF3133F89091AA50A9D011851 -:1016B000FE804C0185FE1610099B4EFE4014FE2450 -:1016C00012FE1456FED6F0FE521C1C0D02FE9CE7C4 -:1016D0000D19FE1500408D3001F41C070251FE0665 -:1016E00083FE1880612844155601851C0702FE38C8 -:1016F00090FEBA9091DE7EDFFE485531FEC955025C -:1017000021B98820B9020ABA0118FE41480A5701D6 -:1017100018FE49441BFE1E1D8889020A5A01180939 -:101720001AA40A6701A30A570118888902FE4EE429 -:101730001D7BFE521D03FE9000FE3A45FE2C10FE5E -:101740004EE4DD7BFE641D03FE9200D112FE1A10F2 -:10175000FE4EE4FE0B007BFE761D03FE9400D124BA -:10176000FE081003FE9600D163FE4E4583CAFF04B7 -:101770006854FEF1102349FE081CFE6719FE0A1C7E -:10178000FE1AF4FE000483B21D48FEAA1D131D02BA -:101790000992FE5AF0FEBA1D2E93FE34100912FE75 -:1017A0005AF0FEC81D2EB4FE2610091D362E63FE0B -:1017B0001A10090D362E94F20907362E95A1C8028B -:1017C0001F930142FE04FE99039C8B022AFE1C1EFD -:1017D000FE14F0082FFE0C1E2AFE1C1E8FFE1C1E7F -:1017E000FE82F0FE101E020F3F04FE8083330B0EBC -:1017F000020FFE188004FE9883330B0E020FFE02C8 -:101800008004FE8283330B0E020FFE068004FE86E8 -:1018100083330B0E020FFE1B8004FE9B83330B0EE3 -:10182000020FFE048004FE8483330B0E020FFE8041 -:101830008004FE8083FEC9470B0E020FFE1981044F -:10184000FE9983FECA470B0E020FFE068304FE8636 -:1018500083FECE470B0E020FFE2C9004FEAC933A93 -:101860000B0E020FFEAE9004FEAE93790B0E020F2C -:10187000FE089004FE88933A0B0E020FFE8A900435 -:10188000FE8A93790B0E020FFE0C9004FE8C933AA5 -:101890000B0E020FFE8E9004FE8E93790B0E020F3C -:1018A000FE3C9004FEBC933A0B0E028B0FFE0380AD -:0E18B00004FE8383330B770EA802FF66000050 -:00000001FF -/* Microcode buffer is kept after initialization for error recovery. */ diff --git a/firmware/advansys/mcode.bin.ihex b/firmware/advansys/mcode.bin.ihex deleted file mode 100644 index cd160d938667..000000000000 --- a/firmware/advansys/mcode.bin.ihex +++ /dev/null @@ -1,147 +0,0 @@ -:100000003F452C01010301190F0000000000000012 -:10001000000000000F0F0F0F0F0F0F0F0000000068 -:1000200000000000000000000000000000000000D0 -:1000300000000000000000000000000000000000C0 -:100040000000000000000000C3120D0501000000C8 -:1000500000FF000000000000FF80FFFF0100000023 -:10006000000000000000002300000000000700FF67 -:1000700000000000FFFFFF00000000000000E48817 -:100080000000000080734804360000A2C2008073A4 -:1000900003233640B600360005D60CD212DA00A291 -:1000A000C20092801E985000F5004898DF23366009 -:1000B000B60092804F00F5004898EF233660B600F6 -:1000C000928080629280004615EE13EA020109D800 -:1000D000CD044D0000A3D600A6977F2304618401C0 -:1000E000E684D2C18073CD044D0000A3DA01A69747 -:1000F000C681C28880738077000101A1FE004F0095 -:10010000849707A6080100330300C288030301DEB9 -:10011000C288CE006960CE0002034A6000A2780166 -:10012000806307A62401788103038063E20007A6A9 -:10013000340100330400C2880307020104CA0D23FE -:1001400068984D04048505D80D236898CD041523BF -:10015000F888FB23026182018063020306A3620127 -:1001600000330A00C2884E0007A36E0100330B0063 -:10017000C288CD04362D00331A00C288500488810D -:1001800006AB820188814E0007A39201500000A3B4 -:100190003C0100057C814697020105C60423A001AD -:1001A0001523A101BE81FD23026182010ADA4A0002 -:1001B000066100A0B4018063CD04362D00331B001E -:1001C000C28806236898CD04E684060100A2D40103 -:1001D000576000A0DA01E6848023A001E6848073E2 -:1001E0004B00066100A2000204010CDE020103CCF8 -:1001F0004F008497FC810823024182014F006297DF -:1002000048048480F0970046560003C00123E800AC -:1002100081730629034206E203EE6BEB1123F88893 -:100220000498F0808073807707A42A027C9506A644 -:10023000340203A64C044682040103D8B4986A969B -:100240004682FE95806783038063B62D02A66C020A -:1002500007A65A0206A65E0203A66202C2887C9521 -:100260004882609648820423A0011423A1013C84A3 -:1002700004010CDCE0232561EF0014014F04A80108 -:100280006F00A5010323A40106239C01242B1C015C -:1002900002A6AA0207A65A0206A65E0203A6200428 -:1002A00001A6B40200A6B40200331200C288000EF8 -:1002B0008063004300A08C024D0404010BDCE723A3 -:1002C00004618401103112351401EC006C38003FD8 -:1002D0000000EA821823046118A0E2020401A2C807 -:1002E00000331F00C28808310A350C390E3D7E9854 -:1002F000B62D01A6140300A6140307A60C0306A638 -:10030000100303A6200402A66C0200333300C28847 -:100310007C95EE826096EE82829880427E9864E4BC -:1003200004012DC83105070100A2540300438701D1 -:10033000050586987E9800A6160307A64C0303A61B -:100340003C0406A6500301A6160300332500C2880C -:100350007C95328360963283040110CE07C8050570 -:10036000EB0400330020C020816272830001050588 -:10037000FFA27A03B1010823B2012E8305051501FE -:1003800000A29A03EC006E0095016C38003F00005B -:1003900001A6960300A69603108480427E9801A6CB -:1003A000A40300A6BC031084A898804201A6A4035D -:1003B00007A6B203D4837C95A88300332F00C2889C -:1003C000A898804200A6BC0307A6CA03D4837C95E4 -:1003D000C08300332600C288382B80328036042345 -:1003E000A0011223A101108407F006A4F403806B7E -:1003F000806705238303806303A60E0407A6060413 -:1004000006A60A0400331700C2887C95F483609620 -:10041000F483208407F006A42004806B8067052302 -:1004200083038063B62D03A63C0407A6340406A606 -:10043000380400333000C2887C9520846096208484 -:100440001D0106CC00330084C0200023EA00816235 -:10045000A20D806307A65A0400331800C288030364 -:100460008063A30107A46404230100A286040AA0F8 -:100470007604E00000331D00C2880BA08204E00077 -:1004800000331E00C2884223F888002322A3E6041A -:10049000082322A3A204282322A3AE04022322A31A -:1004A000C4044223F8884A00066100A0AE04452334 -:1004B000F888049800A2C004B49800330082C020D9 -:1004C0008162E8814723F88804010BDE0498B49820 -:1004D00000330081C0208162140100A00002432388 -:1004E000F8880423A0014423A10180734D0003A3D5 -:1004F000F40400332700C288040104DC0223A201B3 -:100500000423A001049826954B00F6004F044F00E9 -:1005100000A3220500057600066100A21C050A85DD -:100520004697CD04248548048480020103DA8023A1 -:10053000820134850223A0014A00066100A2400521 -:100540001D0104D6FF2386414B60CB00FF238001B1 -:1005500049008101040102C830018001F704030150 -:1005600049048001C90000050001FFA0600577046F -:100570000123EA005D00FEC700620023EA00006379 -:1005800007A4F805030302A08E05F48500332D00AF -:10059000C28804A0B80580630023DF004A0006611A -:1005A00000A2A4051D0106D60223024182015000CB -:1005B00062970485042302418201048508A0BE05D8 -:1005C000F48503A0C405F48501A0CE0588008063EE -:1005D000CC8607A0EE055F00002BDF0800A2E60531 -:1005E0008067806301A27A067C8506236898482389 -:1005F000F88807238000068780637C850023DF005E -:1006000000634A00066100A236061D0116D4C0230D -:1006100007418303806306A61C0600333700C288A7 -:100620001D0101D620236360830380630223DF0062 -:1006300007A67C05EF046F0000634B000641CB006A -:100640005200066100A24E061D0103CAC0230741E5 -:1006500000631D0104CC00330083C020816280232D -:1006600007410063806708238303806300630123DD -:10067000DF0006A6840607A67C058067806300333A -:100680000040C020816200630000FE958303806308 -:1006900006A6940607A67C05000001A01407002BFF -:1006A000400E8063010006A6AA0607A67C05400E40 -:1006B0008063004300A0A20606A6BC0607A67C0530 -:1006C0008067400E806307A67C050023DF0000637F -:1006D00007A6D60600332A00C28803038063890078 -:1006E0000A2B07A6E80600332900C288004300A2AF -:1006F000F406C00E8063DE86C00E00330080C0208A -:100700008162040102DA80637C85807B806306A6B7 -:100710008C0600332C00C2880CA22E07FE958303A2 -:10072000806306A62C0707A67C0500333D00C2881F -:1007300000008067830380630CA0440707A67C0544 -:10074000BF2304618401E6840063F0040101F10029 -:100750000001F20001058001720471008101700442 -:10076000800581050063F004F20072040101F100CC -:1007700070008101700471008101720080017104B8 -:100780007000800170040063F004F2007204000144 -:10079000F10070008001700471008001720081011D -:1007A000710470008101700400630023B3018305AC -:1007B000A301A201A1010123A0010001C80003A11E -:1007C000C40700330700C28880058105040111C8F1 -:1007D0004800B001B1010823B201050148040043FB -:1007E00000A2E4070005DA870001C800FF238001AA -:1007F00005050063F7041A09F6086E040002804339 -:100800007608800277040063F7041A09F6086E047C -:10081000000200A0140816880043760880027704BE -:100820000063F3040023F40074008043F400CF401D -:1008300000A2440874040201F7C9F6D9000101A11D -:10084000240804982695248873040063F30475042F -:100850005A88020104D84697049826954A8875005C -:1008600000A3640800054E8873040063807B8063E6 -:1008700006A6760800333E00C28880678303806343 -:100880000063382B9C88382B928832093105929866 -:100890000505B209006300320036003A003E0063ED -:1008A00080328036803A803EB43D0063382B40323F -:1008B0004036403A403E00635A20C94000A0B40888 -:1008C0005D00FEC300638073E6200223E8008273AC -:1008D000FFFD80731323F8886620C0200423A00145 -:1008E000A123A1018162E28880738077680000A261 -:1008F000800003C2F1C74123F8881123A10104231A -:04090000A001E684E8 -:00000001FF -/* Microcode buffer is kept after initialization for error recovery. */ diff --git a/firmware/atmsar11.HEX b/firmware/atmsar11.HEX deleted file mode 100644 index dfddc190ac24..000000000000 --- a/firmware/atmsar11.HEX +++ /dev/null @@ -1,204 +0,0 @@ -:04000000A0D0F0009C -:2C008000401A680000000000335B007C13600005335B10003C1AA0C0375A018003400008000000001760FFFB335B400020 -:2C00AC00401A700013600003241B0FC0AF9B45002508000803400008420000108F810C9032220002104000033C03A0D174 -:2C00D8002463F8100060F809242100011000001AAF810C9082020011AF900C480441000A34420080967D000296020012A4 -:2C01040000000000105D00110000000004110161A66200021000000DAE62000C34848000A20200114D01FFFF000000005E -:2C0130008F834C0000000000AF830FEC00E0F80903E03821000414000440FFF700000000AF80460C8E1000084D01FFFF36 -:2C015C00000000008F834C004900001DAF830FEC8F820CBC8F9D0C4C2442000197BE0000AF820CBC13C00009ACA200D872 -:2C018800A7A000003C0100D1003E08259422002C0411013FA4220002AC22000CAC2000108F9E0C5427BD000217BE00028C -:2C01B4008CA200C08F9D0C508F970FC8AF9D0C4C12E20005878040023C02A0D12442F94C0040F8090000000000E0F8094A -:2C01E00003E038214500FFDC8E11000C3C1300D1001111022C4304001060FFB900021180026298218E76003C32220008C1 -:2C020C001440FFB78E7700348E7500303C03CFB016C0000302D5102B041100BE000000001040FFA6007018264D01FFFFE5 -:2C023800000000008F824C00AF974C00AF820FECAC7600100260902132220002104000078F944A009602003A3484000492 -:2C02640014400003AF820FBC3C029000AF820FBC8E10000832943F008E11000C2694FF00128000733C1300D14901007162 -:2C0290003237000816E0006F001111022C4304001060006C0002B980000417400440003A027798211272002326D60030E0 -:2C02BC00AE56003C8E76003C8E7700348E7500303C03CFB016C0000302D5102B0411009100000000104000602E8210006B -:2C02E80014400009007018264D01FFFF000000008F824C00AF974C00AC760010AE4200341000FFD0AF80460C00E0F8090D -:2C03140003E038213C03CFB000701826AE4600344D01FFFF000000008F824C00AF974C00AF820FECAC7600101000FFC382 -:2C034000AF80460C02D5102B104000423C17CFB02E8210001440000602F0B8264D01FFFF00000000AEF600101000FFB8E9 -:2C036C00AF80460C00E0F80903E038214D01FFFF000000008F824C00AF864C00AEF60010AF820FEC1000FFAEAF80460C7F -:2C0398003084FFFB8E5700383242FFC000021182A7820FB8AF970FB4865D002A865E0008A79D0FBA279D0F1833DE00604B -:2C03C40003BEE821001EF0C203BEE8218F970C584D01FFFF000000008F834C008FA2001C12E300033C030C403C1EC0008B -:2C03F000AF9E0FBCAC620FB48FA300182442000C14430002AF80460C8FA20014AE40003CAFA2001C8E76003C8E7700340D -:2C041C008E7500303C03CFB016C0000302D5102B0411003C00000000007018264D01FFFF00000000ACA500E410400032D6 -:2C044800AF974C001000FF7FAC760010000417400440000726D60030AE56003C00E0F80903E03821AF80460C1000FF393E -:2C047400AE4600348E5700383242FFC000021182A7820FB8AF970FB48F970C5800E0F80903E0382112E600033C030C4029 -:2C04A0003C02C000AF820FBC865D002A865E0008A79D0FBA279D0F1833DE006003BEE821001EF0C203BEE8218FA2001C23 -:2C04CC004D01FFFF000000008F974C00AC620FB43084FFFB8FA300182442000C14430002AF80460C8FA20014AE40003CC2 -:2C04F800AFA2001C4D01FFFF00000000ACA500E41000FF13AF974C0000E0F80903E038211000FF0F000000001040005B50 -:2C052400867E0008279D0F1833DE006003BEE821001E10C203A2E8218FB700088FA2000C8EF6000412E2002886620008BC -:2C05500082030010000217400441001924630001106000173C02D1B0005010264D01FFFF000000008F9E4C00AC56001008 -:2C057C0026D6FFFE860200103C03CFB034632000A662002A8EE2000026F70008AE6200388FA20020AFB700082417FFFF46 -:2C05A80002C2A8214D01FFFF00000000AF9E4C0003E00008AE7500308EE2000026F70008AE6200388FA20020AFB70008DB -:2C05D4002417FFFFA677002A02C2A8213C03CFB003E00008AE750030001E18C2006518218C6300C88FA200100000000064 -:2C0600000062B0231EC000038FA1000412C0001B0022B0232EC30041146000023C1500402416004000161E80000318829E -:2C062C00007518254D01FFFF000000008F954C00001EB84000771821AC624D00005610211441000227830D008FA200004D -:2C06580002E3B821AFA2001002D71821AFA3000C4D01FFFF000000008EF600041000FFB5AF954C003C16DEADAE76003C82 -:2C068400AE60003826D5FFFF0000102103E00008AE7500302C430AB2106000052C4324B21000000424020AB210000002AF -:2C06B000240224B11060FFFD304301FF000318403C1DA0D127BDD6CC007D1821946300000002EA4200031C0027BDFFFBC1 -:2C06DC0003E0000803A3100624030FC0AF83450010000002012060213C0CCFB011E000560189602685FE00000000000089 -:2C07080013C000473C02CFB007C0002D001E1F8004610034001E1FC0046000093C02D3B000E0F80903E038214D01FFFF10 -:2C073400000000008F864C008F990FEC1000000BAF994C0001E2782600E0F80903E038214D01FFFF000000008F864C001B -:2C076000AF994C00ADEF20103C02D3B001E278268F820FC08F830FC4AF824D008DE20004A5E00000AC6200008C62000094 -:2C078C0024020380AF824D008F824D008F820F1424630004146200022419FFFF8F830F10ACA500E4AF830FC44D01FFFF93 -:2C07B800000000008F824C801000001FADE2003C00E0F80903E038214D01FFFF00000000A5E000008F864C001580002238 -:2C07E400AF8F45401000001701E2782600E0F80903E038214D01FFFF000000008F864C00AF994C00ADEF20103C02CFB097 -:2C08100001E27826A5E000004D01FFFF00000000100000078F994C0000E0F80903E038214D01FFFF000000008F864C0015 -:2C083C008F990FEC1580000AAF8F45000000782110000014AF19001400E0F80903E038214D01FFFF000000001180FFF8C1 -:2C0868008F864C0085220000012078210440000A8D290008130B0004000C1602AF1900148D7900140160C021AF994C0084 -:2C089400AD8E40103042003F01C27021000417800440018B8F824A0030818000304200041440FF8D8D4B00001020000C47 -:2C08C00030847FFF8F820C480120F021244300348C5D000C24420004AFDD000C1462FFFC27DE0004A52100001000FF82E0 -:2C08EC00250800081160005800000000857D00088D63000C9562000A8D41000407A1002600621821A563000A00031C026D -:2C091800041101A0000318C0001D16C00441001F27A2008000021CC00461000E0040E82127BD0080956200009563000293 -:2C0944003442000CAD22000C24020100A52200109562002CA5230014A5220012A520001634028000A5220000A57D0008D2 -:2C09700007A0000C8F820C4C8F830C502441FFE80023F02B13C000020020102124420400945E00002441FFFE17C0FFF994 -:2C099C00AD620010A44B0000142B001CAD400000AD400004254A00083142007F1440000E00041780044100038F820FE03A -:2C09C800100000063484000134840002244200083442100038421000AF820FE0354A0100394A010039420080AF820FE4B9 -:2C09F400001D14C00441000333A2EFFF1000FF3CA562000807A0009F33A2FFFE10000021A56200088D620024001D1CC01D -:2C0A200004610004AD42000033A3EFFF1000FF31A563000807A0000533A3FFFEA56300088D4B00001000FFAA000000001E -:2C0A4C001000008E25080008254A00083142007F1440000E00041780044100038F820FE010000006348400013484000274 -:2C0A7800244200083442100038421000AF820FE0354A0100394A010039420080AF820FE4110000038D4B00001000FF9303 -:2C0AA4002508FFF88F820FD88F830FDC8F810FD41062001D246200084D01FFFF000000008F8C4C00847F00003C1E00D11C -:2C0AD00033FD03FF001D5980017E5821857E0008001DE900001E0F0003E1F82507E00003AF820FDC879E0CA0278B0C986E -:2C0AFC0007C100423C0208403C01F7B08D62002000230826AC2200008C620004946300022442FFF8004310211000004E12 -:2C0B2800AD6200208F820FD087830CA014220007278B0C98410000513C018000ACA100E08CA100C4000000001022004C4E -:2C0B54000022E8238F9F0F0C07A10002AF810FD403E2E8232FA30041146000023C1E0040241D0040001D1E800003188256 -:2C0B8000007E18254D01FFFF000000008F8C4C00AC624CC0005D1021145F000227830CC08F820F0803A3F021AF820FD059 -:2C0BAC00AF9E0FD84D01FFFF000000001000FFC3246200088D63000C8D7D0010A563000A13A0000200031C02A7A00000F8 -:2C0BD800000318C0041100EF006818214D01FFFF000000008F820C448F830C40AD620010A5630004A563000610000021FC -:2C0C0400AF8C4C00A57D00008C7D000494630002AC5D4C4027A20008AD62001803A3E82127BDFFF4AD7D001C27BD0004D4 -:2C0C3000AD7D002037C18001001E17C00441FFE0A56100084D01FFFF000000008F820C448F830C40AD620010A563000478 -:2C0C5C00A56300068F820FD88F830FDC4D01FFFF000000001462FF9524620008AF8C4C0087830CA0278B0C980461FE97F8 -:2C0C88000004170004400005956200001178000600000000AF0E0010A70D00043084FFF7956D00048D6E001025ADFFD075 -:2C0CB40005A1FE8FAD22000C3C0CFFB001896026000D182225AD00308D7E00188D61001C4D01FFFF00000000103E0036B9 -:2C0CE0008F9D4C003C010840AC3E4C4027DE000811A00017AD7E0018000DF600019E60254D01FFFF00000000AD8E40105F -:2C0D0C008F8D0C40957E00068F8E0C4403CDF021A57E0006000CF782000C0E0203C1F021001E0F80000C6200000C6202C2 -:2C0D38000181602533DE003C019E60213401000110000008A5210000957E00064D01FFFF000000008F8D0C408F8E0C44CD -:2C0D640003CDF021A57E00064D01FFFF0000000001A3F02B17C000080003F60001A36823019E6025018960264D01FFF7CF -:2C0D9000000000001000FE58AF9D4C008D7E00188D61001C00000000143EFFCE006D18234D01FFFF000000002C61000864 -:2C0DBC001020001795610008000000000001FF8007E0000B34210002006D182100031E000183602501896026240D002CC0 -:2C0DE800A56100084D01FFFF000000001000FE40AF9D4C003C1F0C40AFFE4FA83021FFFDA56100083C0CD3CF358CE0006E -:2C0E140010000008340300023C1F0C40AFFE4FA811A0FFF9000DF60034030003019E6025018960263484000834420002C4 -:2C0E4000AD22000C95620006A5230000AD2200384D01FFFF00000000857E00088F820FA897830FACAD22000433C17FFFA6 -:2C0E6C00AD600010A56100081060FE20AF9D4C00A57E00080003190030633FF0A56300008F820FB03C030840AC624C4007 -:2C0E980024430008AD63001897830FAE2442FFF400621821AD63001C4D01FFFF000000008F8D0C408F830C44A56D000474 -:2C0EC400A56D0006AD6300101000FE0AAF9D4C008F820FE000040FC08C4300000421001B8F9F0FE48C5D0004AC4000043A -:2C0EF0001060000EAC400000000000009462002800000000005F10208C4100040000000010200003AC43000410000002B6 -:2C0F1C00AC230024AC43000017A3FFF48C6300248F820FE03BFF0080244200083442100038421000AF820FE0AF9F0FE46E -:2C0F48001000FE573084FFFE1060001000000000947D00280000000003BFE8208FA10004AFA30004102000038C5E000439 -:2C0F740010000002AC230024AFA300008C61002417C3FE48AC410000AC400004AC4000001000FE443084FFFD2C6201006F -:2C0FA0001440000E006A10213143007F01431823004318233062007FA562002800621823000319028F820FE02463FFF8BF -:2C0FCC000062182134631000100000033863100034430100386301008C6200040000000010400003AC6B000403E000089A -:0C0FF800AC4B002403E00008AC6B0000D0 -:02000004A0D08A -:2CD5000000000002A0D0E00000000000000010000000000600000008000000000000000800000002A0D0D64800000000F7 -:2CD52C00000008880000000000000000000000000000000024313200243132002431320000000000244D43522420436FB2 -:2CD558007079726967687420286329204D61646765204E6574776F726B73204C746420313939352E20416C6C207269674C -:2CD584006874732072657365727665642E004D6164676520416D6261737361646F722076312E303100000000000000012C -:2CD5B00000000001000000000000000000000000000000000000000000000000000000000000000000000000000000004E -:2CD5DC00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023 -:2CD608000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F6 -:0CD6340000000000FFF0400000000000BB -:2CF000000C343E2D000000003C1CA0D1279C56383C1DA0D127BDDFD03C08A0D12508DFD0AF8780080C343C1300000000E4 -:2CF02C00240400030097000D3C08BFC0350802308D08000000000000010000080000000027BDFFD0AFBF001CAFB1001864 -:2CF05800AFB000143C11FFF0000080213C18005637183B7926190200172000020319001A0007000D2401FFFF172100056B -:2CF08400000000003C01800017010002000000000006000D00001012001018403C05A0D124A5D6CC00A32021A4820000C5 -:2CF0B000261000012A0102001420FFEA000000003C06A0D124C6F9E43C07A0D124E7D648ACE600003C08A0D12508FB14D9 -:2CF0DC00ACE800043C09A0D12529FC94ACE900083C0AA0D1254AFCD4ACEA000C3C0BA0D1256BFBA8ACEB00103C0CA0D15C -:2CF10800258CFBC4ACEC00143C0DA0D125ADFBE0ACED00183C0EA0D125CEFBFCACEE001C3C0FA0D125EFFC18ACEF0020AD -:2CF134003C18A0D12718FC34ACF800243C19A0D12739FC50ACF900283C02A0D12442FC60ACE2002C3C03A0D12463FC70A6 -:2CF16000ACE300303C04A0D12484FC80ACE400343C05A0D124A5FCB4ACE500383C06A0D124C6FE08ACE6003C3C08A0D111 -:2CF18C002508FE90ACE800403C09A0D12529FA38ACE900443C0AA0D1254AFA74ACEA0048241000133C0BA0D1256BF9D8E7 -:2CF1B800001060803C0EA0D125CED64801CC6821ADAB0000261000012A0100201420FFF6000000008F988000000000006F -:2CF1E400AF0001008F828000241903FFA4590202000080218F86800024030FFF0010204024C7038000E42821A4A30000C1 -:2CF21000261000012A0100081420FFF7000000008F89800034089C40AD2803A08F8B80003C0A00FF354AFFFFAD6A03A4FC -:2CF23C00000080218F8F8000240C0FFF0010684025F80300030D7021A5CC0000261000012A0100081420FFF700000000AB -:2CF268008F82800034199C40AC5903208F8480003C0300FF3463FFFFAC8303248F868000240502FFA4C502023C08A0C00C -:2CF29400350801803C09A0D12529D5B8250A00288D0B00008D0C0004AD2B0000AD2C000425080008150AFFFA252900081B -:2CF2C0004002600000000000AFA20028240300223C04A0E034840014AC8300008FA500280000000034A6100100C01021CB -:2CF2EC00AFA600283C07FFBF34E7FFFF00C7382400E01021AFA7002840876000000000003C0800023508D8903C09FFFE59 -:2CF3180035290130AD2800008FAA00283C0BF000014B582501601021AFAB002801606021408C6000000000000000802141 -:2CF3440000107080022E7821ADE00000261000012A0104001420FFFA00000000241800013C19A0E8AF380000240200117C -:2CF370003C03A0F034630017A06200003C04F0EB348400703C05FFF034A54A00ACA400003C06FCEB34C60070ACA6000027 -:2CF39C003C07FFF034E74700ACE00000000080213C08FFF035080FC03C09FFF035294500AD280000261000012A01000433 -:2CF3C8001420FFF800000000000080213C0ADEAD001059803C0100D1002B0821AC2A003C3C0100D1002B0821AC200030C1 -:2CF3F4003C0100D1002B0821AC200038240DFFFF3C0100D1002B0821AC2D0014001071003C0100D1002B0821A42E000054 -:2CF420003C0100D1002B0821A4200004241800203C0100D1002B0821A43800083C0100D1002B0821AC200010261000017F -:2CF44C002A0104001420FFE00000000000008021001018C03C05A0D124A5E00000A32021AC8000003C07A0D124E7E000BF -:2CF4780024E8000401033021ACC00000261000012A0100091420FFF300000000240903803C0AFFF0354A4D00AD4900005F -:2CF4A4003C0CA080358C009CAD8000003C0DA08035AD00A0ADA000003C0E11003C0FA08035EF00A8ADEE000041010003A0 -:2CF4D000000000004100FFFF000000003C18A080371800E08F1900003C01A0D1AC39D6C80C343D43032020218FB00014DE -:2CF4FC008FBF001C8FB1001803E0000827BD00300080B8213C1CFFF0A3800C84A3800C888F90440000002021AF800CBC7E -:2CF52800240200A827830F002C5D004017A0000C3C1DFFB003A3E826AFB740000000000000000000000000004D01FFFFF6 -:2CF55400000000002442FFC0246300401000FFF326F700401040000D000000000002EE003C01004003A1E8253C01FFF099 -:2CF5800003A1E82603A3E826AFB740000000000000000000000000004D01FFFF000000003C05A0808F820F08000000007E -:2CF5AC00AF820FD4AF820FD0ACA200C48F820F100000000000021D82AF830FC000031D80004310233C01A0800041102542 -:2CF5D800AF820FC4AF820F108F820F1400000000004310233C01A08000411025AF820F1424030003279D0F1824BE00C823 -:2CF6040027810D008FA2000000000000AFA20010AFC20000AFA10008AFA1000C8FA2001400000000AFA2001C27BD0024B4 -:2CF6300027DE0004242100401460FFF32463FFFF8F820F0000000000AF820FC8ACA200C0278208002403000FAC4000002C -:2CF65C00244200041460FFFD2463FFFF8F830FC000000000AF834D008F834D008F830F148F820F102463FFFCAC40000091 -:2CF688001443FFFE2442000424020380AF824D00279D0F1827A100908FA200148FA3001800000000006218232C7F004017 -:2CF6B40017E000093C1F004037FF080003A0F0214D01FFFF00000000AFE20000244200401000FFF62463FFC01060000659 -:2CF6E00037FF080000031E0003E3F8254D01FFFF00000000AFE2000027BD002417A1FFE800000000000038218FC200145A -:2CF70C008FC3001800000000006218232C7F004013E000043C1F004000030E001000000203E1F8252403004037FF080084 -:2CF73800241E03E7000008214D01FFFF00000000AFE20000002308214900FFFB000000008780400217C0FFF827DEFFFFCA -:2CF7640014E0000434E7400003E7F8251000FFF0AF810C60AF810C5C3C01A0D18C22D6C8000000003C01A080AC2200E0E7 -:2CF790003C01A0808C2000E0AF800FB4A7800FB8A7800FBAA7800FBCA7800FBE27820CC0AF820FDCAF820FD83C02A0D156 -:2CF7BC002442DACCAF820C4CAF820C5024420400AF820C542402001E3C03FFF0247D0040AC7D000803A018211440FFFC55 -:2CF7E8002442FFFF3C1DFFF0AC7D00083C02C7043442DD7BAF820C583C07000024E7015808343FA9000000008E620038B9 -:2CF8140000000000144000058F830C9412A000222463000110000020AF830C94AF820FB43262FFC0000211828663002A70 -:2CF84000A7820FB83C02A000AF820FBCA7830FBA867E0008279D0F1833DE006003BEE821001EF0C203BEE8218FA2001CC6 -:2CF86C003C030C404D01FFFF000000008F974C00AC620FB48FA300182442000C14430003000000008FA2001400000000FB -:2CF89800AFA2001C4D01FFFF00000000ACA500E4AF974C0003E00008AE60003C3C0DA0D125ADD50011A00021000000005C -:2CF8C4008DA90000000000001120001D000000008DAA00048DAB00088DAC000C0009474005010004000000003C08A0D185 -:2CF8F0002508D638014850210009478005010007000000001180000D00000000AD400000254A00041000FFFB258CFFFC66 -:2CF91C0011800007000000008D6E0000256B0004AD4E0000254A00041000FFF9258CFFFC1000FFE125AD001003E00008B9 -:2CF94800000000003C021040AC574FF0000000000000000000000000000000004D01FFFF000000008F820FFC000000005B -:2CF974003042001F000210803C17A0D102E2B82126F7D6488EF700000000000002E00008000000002402FFFFAF820FFCB9 -:2CF9A0008F970FC83C021040AC570FF08F820F0426F7001016E20004AF970FC88F970F0000000000AF970FC84D01FFFFA6 -:2CF9CC000000000003E00008000000003C1FA0D127FFF02C1000FFED8F970FF03C0200D132F703FF0017B98002E2B825AA -:2CF9F800AEE0003C2402FFFFAEE20030AEE2001497830FF497820FF83C1D000027BD0698A6E30008A6E20002AF9F0FE819 -:2CFA240003A0F809A6E2002C8F9F0FE81000FFD9AEE2000C8F970FF03C0200D132F703FF0017B98002E2B82597820FF429 -:2CFA50003C03000024630698A6E20002AF9F0FE80060F809A6E2002C8F9F0FE81000FFCAAEE2000C8F970FF03C0200D174 -:2CFA7C0032F703FF0017B98002E2B82597820FF40000000096E30008A6E2000800431026304200601040FFBD8EE2003CF2 -:2CFAA800AEE0003C1040FFBA3C028800AF820FBC8EE20038AEE0003830630060279D0F1803A3E821000318C203A3E82116 -:2CFAD4008FA3001C1040FFAFAF820FB43C020C40AC430FB48FA200182463000C14430003000000008FA30014000000000E -:2CFB0000AFA3001C4D01FFFF000000001000FFA2000000008F970FF03C0200D1A7970FB80017B98032F7FFC002E2B82140 -:2CFB2C00AEE000303C02DEAD8EE3003CAEE2003C8EE200381060FF95AEE000383C038800AF830FBC86E3000827970F1821 -:2CFB58003063006002E3B821000318C202E3B8218EE3001C1040FF8AAF820FB43C020C40AC430FB48EE200182463000C84 -:2CFB840014430003000000008EE3001400000000AEE3001C4D01FFFF000000001000FF7D000000008F820FF08F970FF4B8 -:2CFBB0009041000000000000003708251000FF76A04100008F820FF08F970FF49441000000000000003708251000FF6F9E -:2CFBDC00A44100008F820FF08F970FF48C41000000000000003708251000FF68AC4100008F820FF08F970FF49041000040 -:2CFC080002E0B827003708241000FF61A04100008F820FF08F970FF49441000002E0B827003708241000FF5AA4410000DB -:2CFC34008F820FF08F970FF48C41000002E0B827003708241000FF53AC4100008F820FF08F970FF41000FF4FA05700009D -:2CFC60008F820FF08F970FF41000FF4BA45700008F820FF08F970FF41000FF47AC5700008F820FF0000000008C4200007A -:2CFC8C001000FF42AF820FF43C01A0C28C22C00000000000AF820FF03C01A0C28C22C0041000FF3AAF820FF43C01A0D14E -:2CFCB8008C22D5AC00000000AF820FF03C01A0D18C22D5B01000FF32AF820FF43C02A0F0AC400000905701530000000076 -:2CFCE400A3970C809057015700000000A3970C819057015B00000000A3970C879057015F00000000A3970C8690570163BA -:2CFD10000000000032F70007A3970C859057019300000000A3970C8B9057019700000000A3970C8A9057019B00000000AE -:2CFD3C0032F70007A3970C899057000B0000000032F700E000170942905700470000000032F700780037082590570067BE -:2CFD68000000000032F7000F0017B9C000370825905700C70000000032F7002F0017BAC000370825905701470000000019 -:2CFD940032F7001E0017BC0000370825905701830000000032F700600017BC0000370825AF810C8C3C0218408F970FC83F -:2CFDC000000000008F970FF000000000AC570C800000000000000000000000000000000000000000000000004D01FFFF17 -:2CFDEC00000000003C02A0D12442F998AF800C90AF800C94004000080000000087970FF03C1300D1A67700083C030000C2 -:2CFE180024630520AF9F0FE80060F809240200018F9F0FE81040FEDA97970FF027830F18007718210017B8C202E3B821FB -:2CFE44003C028800AF820FBC8E620038A7800FB8AF820FB48EE3001C3C020C40AC430FB48EE200182463000C1443000487 -:2CFE7000AEE3001C8EE3001400000000AEE3001C4D01FFFF000000001000FFDF000000008F820C5C8F830C60AF820FF026 -:2CFE9C001000FEBEAF830FF423890800012018212402000F206C0040AC6C0008018018211440FFFC2042FFFFAC69000884 -:2CFEC800278B0C98A56000002403FFFFAD6300143402000134420020A5620008278A0E000140102100001821AC40000038 -:2CFEF400246300042C6C01001580FFFC244200043C02A0D12442E000AF820FE03C1800D1012060210000682100007821C6 -:28FF20000000582100004021400260000000000034424001408260003C020000244206F800400008000000007A -:00000001FF -/* - Madge Ambassador ATM Adapter microcode. - Copyright (C) 1995-1999 Madge Networks Ltd. - - This microcode data is placed under the terms of the GNU General - Public License. The GPL is contained in /usr/doc/copyright/GPL on a - Debian system and in the file COPYING in the Linux kernel source. - - We would prefer you not to distribute modified versions without - consultation and not to ask for assembly/other microcode source. -*/ - -First record is start address in a __be32. diff --git a/firmware/av7110/Boot.S b/firmware/av7110/Boot.S deleted file mode 100644 index d562fdc2908f..000000000000 --- a/firmware/av7110/Boot.S +++ /dev/null @@ -1,109 +0,0 @@ -/* - Boot.S: boot loader for Siemens DVB-S card - - Copyright (C) 2001 Convergence integrated media GmbH - Written by Ralph Metzler - - Copyright (C) 2006 Matthieu CASTET - - 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - -*/ - -/* - check AV711x_3_1.pdf for some hardware infos - build it with : - $ cc -mbig-endian -c Boot.S - $ ld -Ttext 0x2c000000 -EB -o Boot Boot.o - $ objcopy -Obinary Boot -*/ - - .text - .align - .globl _start -_start: - b reset // reset vector - movs pc, r14 // undefined - subs pc, r14, #4 // SWI - subs pc, r14, #4 // prefetch abort - subs pc, r14, #8 // data abort - subs pc, r14, #4 // reserved - subs pc, r14, #4 // IRQ - subs pc, r14, #4 // FIQ - - .word tbl // table needed by firmware ROM -tbl: .word (endtbl - tbl) - .word 0 - .word conf -endtbl: .word 0 -conf: .word 0xa5a55a5a - .word 0x001f1555 - .word 0x00000009 - -reset: ldr r13, buffer - ldr r4, flag - mov r0, #0 - str r0, [r4] - str r0, [r4, #4] - - ldr r1, wait_address - ldr r2, flag_address - ldr r3, sram - -copycode: // copy the code HW Sram - ldmia r1!, {r5-r12} - stmia r3!, {r5-r12} - cmp r1, r2 - ble copycode - ldr pc, sram // jump to the copied code - -wait: ldrh r1, [r4] // wait for flag!=0 - cmp r1, #0 - beq wait - - mov r1, r13 // buffer address - ldr r3, [r4,#4] // destaddr - - ldrh r2, [r4,#2] // get segment length - add r2, r2, #63 // round length to next 64 bytes - movs r2, r2, lsr #6 // and divide by 64 - moveq r0, #2 // if 0, set flag to 2, else signal - strh r0, [r4] // that buffer is accepted by setting to 0 - beq wait - -copyloop: - ldmia r1!, {r5-r12} - stmia r3!, {r5-r12} - ldmia r1!, {r5-r12} - stmia r3!, {r5-r12} - subs r2, r2, #1 - bne copyloop - - eor r13, r13, #0x1400 // switch to other buffer - b wait - -// flag is stored at 0x2c0003f8, length at 0x2c0003fa, -// destaddr at 0x2c0003fc - -flag: .word 0x2c0003f8 - - -// buffer 1 is at 0x2c000400, buffer 2 at 0x2c001000 - -buffer: .word 0x2c000400 - -sram: .word 0x9e000800 -wait_address: .word wait -flag_address: .word flag diff --git a/firmware/av7110/bootcode.bin.ihex b/firmware/av7110/bootcode.bin.ihex deleted file mode 100644 index 26a2993e0723..000000000000 --- a/firmware/av7110/bootcode.bin.ihex +++ /dev/null @@ -1,15 +0,0 @@ -:10000000EA00000EE1B0F00EE25EF004E25EF00401 -:10001000E25EF008E25EF004E25EF004E25EF0040C -:100020002C0000240000000C000000002C00003414 -:1000300000000000A5A55A5A001F15550000000930 -:10004000E59FD07CE59F4074E3A00000E5840000BC -:10005000E5840004E59F1070E59F2070E59F306403 -:10006000E8B11FE0E8A31FE0E1510002DAFFFFFB67 -:10007000E59FF050E1D410B0E35100000AFFFFFC0F -:10008000E1A0100DE5943004E1D420B2E282203FDB -:10009000E1B0232203A00002E1C400B00AFFFFF494 -:1000A000E8B11FE0E8A31FE0E8B11FE0E8A31FE00C -:1000B000E25220011AFFFFF9E22DDB05EAFFFFEC17 -:1000C0002C0003F82C0004009E0008002C00007493 -:0400D0002C0000C040 -:00000001FF diff --git a/firmware/bnx2/bnx2-mips-06-6.2.1.fw.ihex b/firmware/bnx2/bnx2-mips-06-6.2.1.fw.ihex deleted file mode 100644 index 4c43b26af0a6..000000000000 --- a/firmware/bnx2/bnx2-mips-06-6.2.1.fw.ihex +++ /dev/null @@ -1,5818 +0,0 @@ -:10000000080001180800000000004A68000000C84D -:1000100000000000000000000000000008004A6826 -:100020000000001400004B30080000A00800000091 -:100030000000569400004B44080058200000008443 -:100040000000A1D808005694000001580000A25CEE -:100050000800321008000000000072D00000A3B4B5 -:10006000000000000000000000000000080072D046 -:100070000000002400011684080004900800040019 -:10008000000017D4000116A80000000000000000C6 -:100090000000000000000000000000000000000060 -:1000A000080000A80800000000003BFC00012E7CB6 -:1000B0000000000000000000000000000000000040 -:0800C000000000000000000038 -:0800C8000A00004600000000E0 -:1000D000000000000000000D636F6D362E322E31DF -:1000E0000000000006020102000000000000000302 -:1000F000000000C800000032000000030000000003 -:1001000000000000000000000000000000000000EF -:1001100000000010000001360000EA600000000549 -:1001200000000000000000000000000000000008C7 -:1001300000000000000000000000000000000000BF -:1001400000000000000000000000000000000000AF -:10015000000000000000000000000000000000009F -:10016000000000020000000000000000000000008D -:10017000000000000000000000000000000000007F -:10018000000000000000000000000010000000005F -:10019000000000000000000000000000000000005F -:1001A000000000000000000000000000000000004F -:1001B000000000000000000000000000000000003F -:1001C000000000000000000000000000000000002F -:1001D000000000000000000000000000000000001F -:1001E0000000000010000003000000000000000DEF -:1001F0000000000D3C02080024424AA03C03080015 -:1002000024634B9CAC4000000043202B1480FFFD76 -:10021000244200043C1D080037BD7FFC03A0F021F0 -:100220003C100800261001183C1C0800279C4AA01E -:100230000E000168000000000000000D27470100CB -:1002400090E3000B2402001A94E5000814620028D1 -:10025000000020218CE200003C0308008C63004475 -:1002600094E60014000211C20002104030A4000203 -:10027000005A10212463000130A50004A446008028 -:100280003C010800AC23004410A000190004202BFE -:100290008F4202B804410008240400013C02080017 -:1002A0008C420060244200013C010800AC22006046 -:1002B00003E00008008010218CE2002094E3001687 -:1002C00000002021AF4202808CE20004A743028498 -:1002D000AF4202883C021000AF4202B83C02080064 -:1002E0008C42005C244200013C010800AC22005C0E -:1002F00003E00008008010212747010090E3000B75 -:100300002402000394E50008146200280000202164 -:100310008CE200003C0308008C63004494E6001467 -:10032000000211C20002104030A40002005A102145 -:100330002463000130A50004A44600803C010800AD -:10034000AC23004410A000190004202B8F4202B8F7 -:1003500004410008240400013C0208008C420060B3 -:10036000244200013C010800AC22006003E00008C8 -:10037000008010218CE2002094E300160000202170 -:10038000AF4202808CE20004A7430284AF4202889D -:100390003C021000AF4202B83C0208008C42005CF4 -:1003A000244200013C010800AC22005C03E000088C -:1003B000008010218F4301002402010050620003DD -:1003C000000311C20000000D000311C20002104022 -:1003D000005A1021A440008003E000080000102112 -:1003E0009362000003E00008AF80000003E0000813 -:1003F0000000102103E00008000010212402010089 -:1004000014820008000000003C0208008C4200FC3E -:10041000244200013C010800AC2200FC0A0000DD7F -:1004200030A200203C0208008C42008424420001DB -:100430003C010800AC22008430A2002010400008DB -:1004400030A300103C0208008C4201082442000145 -:100450003C010800AC22010803E000080000000095 -:1004600010600008000000003C0208008C420104FB -:10047000244200013C010800AC22010403E0000812 -:10048000000000003C0208008C42010024420001F0 -:100490003C010800AC22010003E00008000000005D -:1004A00027BDFFE8AFBF0010274401009483000878 -:1004B000306200041040001B306600028F4202B818 -:1004C00004410008240500013C0208008C42006041 -:1004D000244200013C010800AC2200600A0001290E -:1004E0008FBF00108C82002094830016000028210A -:1004F000AF4202808C820004A7430284AF4202888C -:100500003C021000AF4202B83C0208008C42005C82 -:10051000244200013C010800AC22005C0A000129D1 -:100520008FBF001010C00006006028218F4401001A -:100530000E0000CD000000000A0001282405000183 -:100540008F8200088F4301045043000700002821D8 -:100550008F4401000E0000CD000000008F42010416 -:10056000AF820008000028218FBF001000A01021DA -:1005700003E0000827BD001827BDFFE8AFBF001447 -:10058000AFB00010974201083043700024022000F1 -:100590001062000B286220011440002F000010217F -:1005A00024024000106200250000000024026000C8 -:1005B00010620026000010210A0001658FBF0014A0 -:1005C00027500100920200091040001A2403000184 -:1005D0003C0208008C420020104000160000182148 -:1005E0000E00049300000000960300083C0608007B -:1005F00094C64B5E8E0400188F8200209605000C76 -:1006000000031C0000661825AC440000AC45000443 -:1006100024040001AC400008AC40000CAC400010C9 -:10062000AC400014AC4000180E0004B8AC43001CF1 -:10063000000018210A000164006010210E0003254B -:10064000000000000A000164000010210E000EE905 -:1006500000000000000010218FBF00148FB00010B8 -:1006600003E0000827BD001827BDFFE0AFB2001867 -:100670003C036010AFBF001CAFB10014AFB000105E -:100680008C6450002402FF7F3C1A800000822024EA -:100690003484380C24020037AC6450003C1208004B -:1006A00026524AD8AF42000824020C80AF420024F0 -:1006B0003C1B80083C06080024C60324024010218D -:1006C0002404001D2484FFFFAC4600000481FFFDCC -:1006D000244200043C020800244204B03C0108000B -:1006E000AC224AE03C020800244202303C010800EF -:1006F000AC224AE43C020800244201743C03080096 -:100700002463032C3C040800248403D83C0508001F -:1007100024A538F03C010800AC224B403C02080004 -:10072000244202EC3C010800AC264B243C010800AA -:10073000AC254B343C010800AC234B3C3C01080089 -:10074000AC244B443C010800AC224B483C0108005F -:10075000AC234ADC3C010800AC204AE83C0108001C -:10076000AC204AEC3C010800AC204AF03C010800F7 -:10077000AC204AF43C010800AC204AF83C010800D7 -:10078000AC204AFC3C010800AC204B003C010800B6 -:10079000AC244B043C010800AC204B083C01080091 -:1007A000AC204B0C3C010800AC204B103C01080075 -:1007B000AC204B143C010800AC204B183C01080055 -:1007C000AC264B1C3C010800AC264B203C01080029 -:1007D000AC254B303C010800AC234B380E000623FF -:1007E000000000003C028000344200708C42000097 -:1007F000AF8200143C0308008C6300208F82000449 -:10080000104300043C0280000E00045BAF83000430 -:100810003C028000344600703C0308008C6300A05A -:100820003C0208008C4200A4104300048F84001492 -:100830003C010800AC2300A4A743009E8CCA000022 -:100840003C0308008C6300BC3C0208008C4200B8EA -:100850000144202300641821000040210064202B63 -:1008600000481021004410213C010800AC2300BCCA -:100870003C010800AC2200B88F5100003222000772 -:100880001040FFDCAF8A00148CC600003C05080055 -:100890008CA500BC3C0408008C8400B800CA30233E -:1008A00000A628210000102100A6302B0082202164 -:1008B00000862021322700013C010800AC2500BC45 -:1008C0003C010800AC2400B810E0001F32220002F6 -:1008D0008F420100AF4200208F420104AF4200A8C6 -:1008E0009342010B0E0000C6305000FF2E02001E86 -:1008F00054400004001010800E0000C90A000213CA -:1009000000000000005210218C4200000040F80955 -:1009100000000000104000053C0240008F4301042D -:100920003C026020AC4300143C024000AF4201385E -:100930003C0208008C420034244200013C010800C3 -:10094000AC220034322200021040000E3222000499 -:100950008F4201400E0000C6AF4200200E000295FB -:10096000000000003C024000AF4201783C02080059 -:100970008C420038244200013C010800AC220038BF -:10098000322200041040FF983C0280008F42018018 -:100990000E0000C6AF4200208F43018024020F00EA -:1009A00014620005000000008F420188A742009CED -:1009B0000A0002483C0240009362000024030050F9 -:1009C000304200FF144300083C0240000E00027B4E -:1009D00000000000544000043C0240000E000D7571 -:1009E000000000003C024000AF4201B83C02080099 -:1009F0008C42003C244200013C010800AC22003C37 -:100A00000A0001C83C0280003C0290003442000110 -:100A100000822025AF4400208F4200200440FFFECA -:100A20000000000003E00008000000003C0280001D -:100A3000344200010082202503E00008AF4400207A -:100A400027BDFFE0AFB10014AFB0001000808821D7 -:100A5000AFBF00180E00025030B000FF9362007D5F -:100A60000220202102028025A370007D8F70007477 -:100A70003C0280000E000259020280241600000988 -:100A80008FBF00188F4201F80440FFFE24020002CD -:100A9000AF5101C0A34201C43C021000AF4201F8B3 -:100AA0008FBF00188FB100148FB0001003E0000852 -:100AB00027BD002027BDFFE8AFBF0010974201848B -:100AC0008F440188304202001040000500002821B8 -:100AD0000E000FAA000000000A00028D240500018C -:100AE0003C02FF0004800005008218243C02040040 -:100AF000506200019362003E240500018FBF001088 -:100B000000A0102103E0000827BD0018A360002208 -:100B10008F4401400A00025E2405000127BDFFE862 -:100B2000AFBF0014AFB0001093620000304400FF6C -:100B300038830020388200300003182B0002102B6D -:100B40000062182410600003240200501482008008 -:100B50008FBF001493620005304200011040007CFA -:100B60008FBF0014934201482443FFFF2C6200050D -:100B7000104000788FB00010000310803C03080084 -:100B800024634A68004310218C42000000400008A2 -:100B9000000000000E0002508F4401408F70000CD6 -:100BA0008F4201441602000224020001AF62000CD1 -:100BB0000E0002598F4401408F420144145000043A -:100BC0008FBF00148FB000100A000F2027BD00183F -:100BD0008F62000C0A0003040000000097620010FE -:100BE0008F4301443042FFFF1462001A00000000EE -:100BF00024020001A76200108F4202380443001053 -:100C00008F4201403C02003F3446F0003C0560004A -:100C10003C04FFC08CA22BBC0044182400461024C6 -:100C20000002130200031D82106200390000000060 -:100C30008F4202380440FFF7000000008F4201405D -:100C4000AF4202003C021000AF4202380A00032209 -:100C50008FBF0014976200100A0003040000000018 -:100C60000E0002508F440140976200128F430144EE -:100C70003050FFFF1603000224020001A762001299 -:100C80000E0002598F4401408F42014416020004B5 -:100C90008FBF00148FB000100A00029127BD00180A -:100CA000976200120A00030400000000976200141B -:100CB0008F4301443042FFFF14620006240200010A -:100CC0008FBF00148FB00010A76200140A00124AF0 -:100CD00027BD0018976200141440001D8FBF001438 -:100CE0000A00031C00000000976200168F430144B5 -:100CF0003042FFFF1462000B240200018FBF00147A -:100D00008FB00010A76200160A000B1227BD001852 -:100D10009742007824420004A76200100A000322D0 -:100D20008FBF001497620016240300013042FFFFBA -:100D3000144300078FBF00143C0208008C4200706F -:100D4000244200013C010800AC2200708FBF001457 -:100D50008FB0001003E0000827BD001827BDFFE892 -:100D6000AFBF0014AFB000108F50010093620000BD -:100D700093430109304400FF2402001F106200A5C4 -:100D80002862002010400018240200382862000A5F -:100D90001040000C2402000B286200081040002CB8 -:100DA00000000000046000E52862000214400028F2 -:100DB00024020006106200268FBF00140A00041FE0 -:100DC0008FB000101062005E2862000B144000DC3F -:100DD0008FBF00142402000E106200738FB0001049 -:100DE0000A00041F00000000106200C028620039E1 -:100DF0001040000A2402008024020036106200CA5B -:100E000028620037104000B424020035106200C18F -:100E10008FBF00140A00041F8FB000101062002B57 -:100E20002862008110400006240200C82402003914 -:100E3000106200B48FBF00140A00041F8FB00010AE -:100E4000106200998FBF00140A00041F8FB00010B9 -:100E50003C0208008C420020104000B98FBF0014F3 -:100E60000E000493000000008F4201008F830020D9 -:100E70009745010C97460108AC6200008F420104BF -:100E80003C04080094844B5E00052C00AC62000416 -:100E90008F4201180006340000C43025AC620008FF -:100EA0008F42011C24040001AC62000C9342010A31 -:100EB00000A22825AC650010AC600014AC600018DE -:100EC000AC66001C0A0003F58FBF00143C0208004A -:100ED0008C4200201040009A8FBF00140E00049333 -:100EE00000000000974401083C03080094634B5E37 -:100EF0009745010C000422029746010E8F820020C4 -:100F0000000426000083202500052C003C030080FF -:100F100000A6282500832025AC400000AC4000043A -:100F2000AC400008AC40000CAC450010AC400014D4 -:100F3000AC400018AC44001C0A0003F42404000177 -:100F40009742010C14400015000000009362000558 -:100F50003042001014400011000000000E0002504A -:100F6000020020219362000502002021344200107B -:100F70000E000259A36200059362000024030020C2 -:100F8000304200FF1043006D020020218FBF00148B -:100F90008FB000100A000FC027BD00180000000D20 -:100FA0000A00041E8FBF00143C0208008C4200207F -:100FB000104000638FBF00140E0004930000000077 -:100FC0008F4201048F8300209744010C3C050800E8 -:100FD00094A54B5EAC6200009762002C00042400D4 -:100FE0003042FFFF008220253C02400E00A228254F -:100FF000AC640004AC600008AC60000CAC60001095 -:10100000AC600014AC600018AC65001C0A0003F46E -:10101000240400010E00025002002021A7600008F5 -:101020000E00025902002021020020210E00025E63 -:10103000240500013C0208008C42002010400040C2 -:101040008FBF00140E000493000000009742010CB3 -:101050008F8300203C05080094A54B5E000214001D -:10106000AC700000AC620004AC6000088F64004CFF -:101070003C02401F00A22825AC64000C8F62005087 -:1010800024040001AC6200108F620054AC620014B2 -:10109000AC600018AC65001C8FBF00148FB000104E -:1010A0000A0004B827BD0018240200205082002541 -:1010B0008FB000100E000F0A020020211040002007 -:1010C0008FBF0014020020218FB0001000002821E3 -:1010D0000A00025E27BD0018020020218FBF001405 -:1010E0008FB000100A00058027BD00189745010C3D -:1010F000020020218FBF00148FB000100A0005A04D -:1011000027BD0018020020218FB000100A0005C57D -:1011100027BD00189345010D020020218FB000105B -:101120000A00060F27BD0018020020218FBF0014FF -:101130008FB000100A0005EB27BD00188FBF001408 -:101140008FB0001003E0000827BD00188F4202781E -:101150000440FFFE2402000234840080AF440240B9 -:10116000A34202443C02100003E00008AF420278B0 -:101170003C04080094844B6A3C0208008C424B7487 -:101180003083FFFF000318C000431021AF42003C32 -:101190003C0208008C424B70AF4200383C020050C9 -:1011A00034420008AF4200300000000000000000A0 -:1011B000000000008F420000304200201040FFFD80 -:1011C000000000008F4204003C010800AC224B608C -:1011D0008F4204043C010800AC224B643C02002016 -:1011E000AF420030000000003C02080094424B680F -:1011F0003C03080094634B6C3C05080094A54B6EBF -:1012000024840001004310213083FFFF3C010800CB -:10121000A4224B683C010800A4244B6A1465000317 -:10122000000000003C010800A4204B6A03E0000815 -:10123000000000003C05000A27BDFFE80345282107 -:101240003C04080024844B50AFBF00100E00051D65 -:101250002406000A3C02080094424B523C0308005A -:1012600094634B6E3042000F244200030043180485 -:1012700024027FFF0043102B10400002AF83001CAC -:101280000000000D0E00042A000000003C020800CF -:1012900094424B5A8FBF001027BD001803E000088E -:1012A000A74200A23C02000A034210219443000618 -:1012B0003C02080094424B5A3C010800A4234B56C0 -:1012C000004310238F83001C00021400000214034B -:1012D0000043102B03E000083842000127BDFFE85F -:1012E000AFBF00103C02000A0342102194420006E6 -:1012F0003C010800A4224B560E00047700000000B9 -:101300005440FFF93C02000A8FBF001003E00008C0 -:1013100027BD001827BDFFE8AFBF00100E000477FF -:101320000000000010400003000000000E000485D3 -:10133000000000003C0208008C424B608FBF001090 -:1013400027430400AF4200383C0208008C424B6443 -:1013500027BD0018AF830020AF42003C3C020005CF -:10136000AF42003003E00008AF8000188F82001801 -:101370003C0300060002114000431025AF4200303C -:101380000000000000000000000000008F4200008C -:10139000304200101040FFFD27420400AF820020C1 -:1013A00003E00008AF8000183C0608008CC64B64C0 -:1013B0008F8500188F8300203C02080094424B5A0E -:1013C00027BDFFE024A50001246300202442000182 -:1013D00024C70020AFB10014AFB00010AFBF001899 -:1013E000AF850018AF8300203C010800A4224B5AAF -:1013F000309000FF3C010800AC274B6404C100089A -:101400000000882104E00006000000003C02080003 -:101410008C424B60244200013C010800AC224B602E -:101420003C02080094424B5A3C03080094634B680A -:101430000010202B004310262C42000100441025F0 -:10144000144000048F830018240200101462000F5F -:10145000000000000E0004A9241100013C03080054 -:1014600094634B5A3C02080094424B681462000398 -:10147000000000000E00042A000000001600000317 -:10148000000000000E000493000000003C03080070 -:1014900094634B5E3C02080094424B5C2463000161 -:1014A0003064FFFF3C010800A4234B5E148200035C -:1014B000000000003C010800A4204B5E1200000662 -:1014C000000000003C02080094424B5AA74200A2D0 -:1014D0000A00050B022010210E0004770000000016 -:1014E00010400004022010210E00048500000000BE -:1014F000022010218FBF00188FB100148FB0001090 -:1015000003E0000827BD00203084FFFF30A5FFFF67 -:101510000000182110800007000000003082000148 -:101520001040000200042042006518210A00051343 -:101530000005284003E000080060102110C00006EC -:1015400024C6FFFF8CA2000024A50004AC8200008A -:101550000A00051D2484000403E0000800000000C8 -:1015600010A0000824A3FFFFAC86000000000000CC -:10157000000000002402FFFF2463FFFF1462FFFA53 -:101580002484000403E0000800000000240200019D -:10159000AF62000CA7620010A7620012A7620014DD -:1015A00003E00008A76200163082007F034210218A -:1015B0003C08000E004818213C0208008C42002024 -:1015C00027BDFFD82407FF80AFB3001CAFB20018BF -:1015D000AFB10014AFB00010AFBF00200080802179 -:1015E00030B100FF0087202430D200FF1040002FD0 -:1015F00000009821AF44002C9062000024030050AA -:10160000304200FF1443000E000000003C020800BE -:101610008C4200E00202102100471024AF42002C4F -:101620003C0208008C4200E0020210213042007FA0 -:101630000342102100481021944200D43053FFFF90 -:101640000E000493000000003C02080094424B5E30 -:101650008F8300200011340000C2302500122C00BE -:101660003C02400000C2302534A50001AC700000EF -:101670008FBF0020AC6000048FB20018AC7300086C -:101680008FB10014AC60000C8FB3001CAC6500106F -:101690008FB00010AC60001424040001AC6000188E -:1016A00027BD00280A0004B8AC66001C8FBF0020CC -:1016B0008FB3001C8FB200188FB100148FB00010D0 -:1016C00003E0000827BD00289343010F2402001007 -:1016D0001062000E2865001110A0000724020012FD -:1016E000240200082405003A1062000600003021A0 -:1016F00003E0000800000000240500351462FFFC30 -:10170000000030210A000538000000008F420074FC -:1017100024420FA003E00008AF62000C27BDFFE8E1 -:10172000AFBF00100E00025E240500018FBF001045 -:1017300024020001A762001227BD00182402000144 -:1017400003E00008A360002227BDFFE0AFB1001452 -:10175000AFB00010AFBF001830B1FFFF0E00025055 -:10176000008080219362003F24030004304200FF88 -:101770001443000C02002021122000082402000A59 -:101780000E00053100000000936200052403FFFEF7 -:1017900000431024A362000524020012A362003F4C -:1017A000020020210E000259A360008116200003D0 -:1017B000020020210E0005950000000002002021FB -:1017C000322600FF8FBF00188FB100148FB00010B9 -:1017D000240500380A00053827BD002027BDFFE09A -:1017E000AFBF001CAFB20018AFB10014AFB0001013 -:1017F0000E000250008080210E0005310000000024 -:101800009362003F24120018305100FF123200038F -:101810000200202124020012A362003F936200050F -:101820002403FFFE004310240E000259A3620005AA -:10183000020020212405002016320007000030217C -:101840008FBF001C8FB200188FB100148FB0001032 -:101850000A00025E27BD00208FBF001C8FB2001857 -:101860008FB100148FB00010240500390A0005382C -:1018700027BD002027BDFFE8AFB00010AFBF0014A8 -:101880009742010C2405003600808021144000108E -:10189000304600FF0E00025000000000240200123B -:1018A000A362003F93620005344200100E00053130 -:1018B000A36200050E00025902002021020020212F -:1018C0000E00025E240500200A000604000000004D -:1018D0000E000538000000000E000250020020211A -:1018E000936200232403FF9F020020210043102461 -:1018F0008FBF00148FB00010A36200230A000259AA -:1019000027BD001827BDFFE0AFBF0018AFB100141E -:10191000AFB0001030B100FF0E00025000808021F7 -:10192000240200120E000531A362003F0E0002598E -:101930000200202102002021022030218FBF001848 -:101940008FB100148FB00010240500350A0005384F -:1019500027BD0020A380002C03E00008A380002DF9 -:101960008F4202780440FFFE8F820034AF42024073 -:1019700024020002A34202443C02100003E00008DB -:10198000AF4202783C0360008C6254003042000891 -:101990001440FFFD000000008C625408AF82000C70 -:1019A00024020052AC605408AC645430AC6254342D -:1019B0002402000803E00008AC6254003C0260000E -:1019C0008C42540030420008104000053C03600087 -:1019D0008C625400304200081440FFFD00000000FB -:1019E0008F83000C3C02600003E00008AC43540805 -:1019F00090A3000024020005008040213063003FD6 -:101A000000004821146200050000502190A2001C33 -:101A100094A3001E304900FF306AFFFFAD00000CA8 -:101A2000AD000010AD000024950200148D05001CCF -:101A30008D0400183042FFFF0049102300021100FE -:101A4000000237C3004038210086202300A2102B5B -:101A50000082202300A72823AD05001CAD04001838 -:101A6000A5090014A5090020A50A001603E0000836 -:101A7000A50A00228F4201F80440FFFE2402000262 -:101A8000AF4401C0A34201C43C02100003E00008BF -:101A9000AF4201F83C0208008C4200B427BDFFE8C9 -:101AA000AFBF001424420001AFB000103C01080099 -:101AB000AC2200B48F4300243C02001F30AA00FF78 -:101AC0003442FF8030D800FF006280240080F8217B -:101AD00030EF00FF1158003B01405821240CFF80DB -:101AE0003C19000A3163007F000310C00003194055 -:101AF000006218213C0208008C4200DC25680001CD -:101B0000310D007F03E21021004310213043007F9C -:101B100003431821004C102400794821AF420024CF -:101B20008D220024016C1824006C7026AD22000C5C -:101B30008D220024310800FFAD22001095220014F0 -:101B4000952300208D27001C3042FFFF3063FFFFEC -:101B50008D2600180043102300021100000227C345 -:101B60000040282100C4302300E2102B00C23023A3 -:101B700000E53823AD27001CAD2600189522002073 -:101B8000A522001495220022154B000AA52200165A -:101B90008D2300248D220008254600013145008058 -:101BA0001462000430C4007F108F000238AA008045 -:101BB00000C0502151AF000131C800FF1518FFC906 -:101BC000010058218F8400343082007F03421821A5 -:101BD0003C02000A006218212402FF8000822024B7 -:101BE000AF440024A06A0079A06A00838C62005090 -:101BF0008F840034AC6200708C6500743C027FFFFF -:101C00003442FFFF00A228240E00066BAC6500746E -:101C1000AF5000248FBF00148FB0001003E0000805 -:101C200027BD001827BDFFC0AFBE0038AFB70034D6 -:101C3000AFB5002CAFB20020AFB1001CAFB00018A0 -:101C4000AFBF003CAFB60030AFB40028AFB3002444 -:101C50008F4500248F4600288F43002C3C02001F34 -:101C60003442FF800062182400C230240080A82182 -:101C7000AFA3001400A2F0240E00062FAFA60010A0 -:101C80003C0208008C4200E02410FF8003608821A1 -:101C900002A2102100501024AF4200243C02080090 -:101CA0008C4200E002A210213042007F0342182142 -:101CB0003C02000A00629021924200D293630084A9 -:101CC000305700FF306300FF24020001106200342F -:101CD000036020212402000214620036000000008C -:101CE0000E001216024028219223008392220083C4 -:101CF0003063007F3042007F000210C000031940B3 -:101D0000006218213C0208008C4200DC02A2102173 -:101D10000043382100F01024AF42002892250078BB -:101D20009224008330E2007F034218213C02000C21 -:101D300014850007006280212402FFFFA24200F107 -:101D40002402FFFFA64200F20A0007272402FFFF39 -:101D500096020020A24200F196020022A64200F262 -:101D60008E020024AE4200F492220083A24200F0D0 -:101D70008E4200C8AE4200FC8E4200C4AE4200F863 -:101D80008E220050AE4201008E4200CCAE420104D1 -:101D9000922200853042003F0A0007823442004010 -:101DA0000E00123902402821922200850A00078283 -:101DB0003042003F936200852403FFDF3042003F42 -:101DC000A36200859362008500431024A36200850E -:101DD0009363008393620078307400FF304200FF09 -:101DE00010540036240AFF803C0C000C3283007F24 -:101DF000000310C000031940006218213C020800D3 -:101E00008C4200DC268800013109007F02A21021EB -:101E10000043382130E2007F0342182100EA1024F9 -:101E2000AF420028006C80218E020024028A182410 -:101E3000006A5826AE02000C8E020024310800FF12 -:101E4000AE02001096020014960300208E07001CBC -:101E50003042FFFF3063FFFF8E060018004310235F -:101E600000021100000227C30040282100C43023D3 -:101E700000E2102B00C2302300E53823AE07001C1F -:101E8000AE06001896020020A60200149602002258 -:101E9000A602001692220079304200FF105400077B -:101EA0000000000051370001316800FF92220078E5 -:101EB000304200FF1448FFCD0100A0219222008390 -:101EC000A22200798E2200500A0007E2AE220070A2 -:101ED000A22200858E22004C2405FF80AE42010C18 -:101EE0009222008534420020A2220085924200D135 -:101EF0003C0308008C6300DC305400FF3C02080007 -:101F00008C4200E400143140001420C002A31821C8 -:101F100000C4202102A210210064382100461021B3 -:101F20000045182400E52824AF450028AF43002CC5 -:101F30003042007F924400D030E3007F03422821EA -:101F4000034318213C02000C006280213C02000E79 -:101F5000309600FF00A298211296002A000000008F -:101F60008E02000C02002021026028211040002572 -:101F7000261000280E00064A000000009262000DA4 -:101F800026830001307400FF3042007FA262000D02 -:101F90002404FF801697FFF0267300203C020800FF -:101FA0008C4200DC0000A02102A210210044102479 -:101FB000AF4200283C0208008C4200E43C030800C9 -:101FC0008C6300DC02A2102100441024AF42002CDC -:101FD0003C0208008C4200E402A318213063007F19 -:101FE00002A210213042007F034220210343182126 -:101FF0003C02000C006280213C02000E0A0007A493 -:10200000008298218E4200D8AE2200508E4200D825 -:10201000AE22007092250083924600D19223008365 -:10202000924400D12402FF8000A228243063007F64 -:10203000308400FF00A628250064182A10600002E2 -:1020400030A500FF38A50080A2250083A2250079D5 -:102050000E00063D000000009222007E02A020211A -:10206000A222007A8E2300743C027FFF3442FFFFDD -:10207000006218240E00066BAE2300748FA20010BD -:10208000AF5E00248FBF003CAF4200288FBE0038F7 -:102090008FA200148FB700348FB600308FB5002C9C -:1020A0008FB400288FB300248FB200208FB1001CA2 -:1020B0008FB0001827BD004003E00008AF42002C9D -:1020C00090A2000024420001A0A200003C030800EE -:1020D0008C6300F4304200FF1443000F0080302175 -:1020E000A0A000003C0208008C4200E48F84003471 -:1020F000008220213082007F034218213C02000C24 -:10210000006218212402FF8000822024ACC300005A -:1021100003E00008AF4400288C8200002442002025 -:1021200003E00008AC82000094C200003C080800F4 -:10213000950800CA30E7FFFF008048210102102106 -:10214000A4C2000094C200003042FFFF00E2102B46 -:1021500054400001A4C7000094A200003C03080002 -:102160008C6300CC24420001A4A2000094A20000D1 -:102170003042FFFF544300078F8600280107102BD1 -:10218000A4A000005440000101003821A4C70000B1 -:102190008F8600288CC4001CAF44003C94A2000031 -:1021A0008F43003C3042FFFF000210C00062182144 -:1021B000AF43003C8F42003C008220231880000483 -:1021C000000000008CC200180A00084324420001ED -:1021D0008CC20018AF4200383C020050344200105C -:1021E000AF420030000000000000000000000000CE -:1021F0008F420000304200201040FFFD0000000030 -:102200008F420404AD2200048F420400AD2200007E -:102210003C020020AF42003003E000080000000054 -:1022200027BDFFE0AFB20018AFB10014AFB000108F -:10223000AFBF001C94C2000000C080213C12080007 -:10224000965200C624420001A60200009603000038 -:1022500094E2000000E03021144300058FB100300B -:102260000E000818024038210A000875000000001E -:102270008C8300048C820004244200400461000727 -:10228000AC8200048C8200040440000400000000C2 -:102290008C82000024420001AC8200009602000003 -:1022A0003042FFFF50520001A600000096220000BD -:1022B00024420001A62200008F82002896230000FD -:1022C00094420016144300048FBF001C2402000136 -:1022D000A62200008FBF001C8FB200188FB100141F -:1022E0008FB0001003E0000827BD00208F89002870 -:1022F00027BDFFE0AFBF00188D220028274804004B -:1023000030E700FFAF4200388D22002CAF8800304C -:10231000AF42003C3C020005AF420030000000002C -:1023200000000000000000000000000000000000AD -:10233000000000008C82000C8C82000CAD020000BA -:102340008C820010AD0200048C820018AD020008DF -:102350008C82001CAD02000C8CA20014AD02001097 -:102360008C820020AD02001490820005304200FFF4 -:1023700000021200AD0200188CA20018AD02001C71 -:102380008CA2000CAD0200208CA20010AD02002433 -:102390008CA2001CAD0200288CA20020AD02002CF3 -:1023A000AD060030AD000034978300263402FFFFF5 -:1023B00014620002006020213404FFFF10E00011CD -:1023C000AD04003895230036952400362402000120 -:1023D0003063FFFF000318C20069182190650040B8 -:1023E000308400070082100400451025A0620040E0 -:1023F0008F820028944200563042FFFF0A0008DC1A -:10240000AD02003C952300369524003624020001DD -:102410003063FFFF000318C2006918219065004077 -:1024200030840007008210040002102700451024A9 -:10243000A0620040AD00003C000000000000000071 -:10244000000000003C02000634420040AF42003071 -:102450000000000000000000000000008F420000AB -:10246000304200101040FFFD8F860028AF880030FA -:1024700024C2005624C7003C24C4002824C50032CE -:1024800024C600360E000856AFA200108FBF0018F9 -:1024900003E0000827BD00208F8300243C060800CD -:1024A0008CC600E88F82003430633FFF0003198040 -:1024B00000461021004310212403FF803046007F96 -:1024C00000431024AF420028034618213C02000CB0 -:1024D0000062302190C2000D30A500FF00003821BD -:1024E00034420010A0C2000D8F8900288F8A00247A -:1024F00095230036000A13823048000324020001AD -:10250000A4C3000E1102000B2902000210400005B6 -:10251000240200021100000C240300010A0009201B -:102520000000182111020006000000000A00092026 -:10253000000018218CC2002C0A000920244300014D -:102540008CC20014244300018CC200180043102BDD -:1025500050400009240700012402002714A20003B0 -:10256000000000000A00092C240700019522003E0B -:1025700024420001A522003E000A138230430003DA -:102580002C62000210400009008028211460000421 -:102590000000000094C200360A00093C3046FFFFEC -:1025A0008CC600380A00093C008028210000302138 -:1025B0003C04080024844B780A00088900000000CD -:1025C000274901008D22000C9523000601202021BF -:1025D000000216023046003F3063FFFF240200274E -:1025E00000C0282128C7002810C2000EAF83002495 -:1025F00010E00008240200312402002110C200096A -:102600002402002510C200079382002D0A00095BF6 -:102610000000000010C200059382002D0A00095B33 -:10262000000000000A0008F4000000000A0006266E -:102630000000000095230006912400058D25000C64 -:102640008D2600108D2700188D28001C8D29002054 -:10265000244200013C010800A4234B7E3C010800F9 -:10266000A0244B7D3C010800AC254B843C010800B4 -:10267000AC264B883C010800AC274B903C0108007D -:10268000AC284B943C010800AC294B9803E00008AF -:10269000A382002D8F87002827BDFFC0AFB3003471 -:1026A000AFB20030AFB1002CAFB00028AFBF0038E0 -:1026B0003C0208008C4200D094E3003030B0FFFFB1 -:1026C000005010073045FFFF3063FFFF00C0982126 -:1026D000A7A200103C110800963100C614A3000602 -:1026E0003092FFFF8CE2002424420030AF42003CD5 -:1026F0000A0009948CE2002094E200323042FFFF8D -:1027000054A2000827A400188CE2002C24420030B8 -:10271000AF42003C8CE20028AF4200380A0009A218 -:102720008F84002827A5001027A60020022038212A -:102730000E000818A7A000208FA200182442003025 -:10274000AF4200388FA2001CAF42003C8F840028AB -:102750003C020005AF42003094820034274304005D -:102760003042FFFF0202102B14400007AF830030FD -:1027700094820054948300340202102100431023F9 -:102780000A0009B63043FFFF94830054948200345A -:102790000223182100501023006218233063FFFF2A -:1027A000948200163042FFFF144300030000000033 -:1027B0000A0009C424030001948200163042FFFF7E -:1027C0000043102B104000058F82003094820016C9 -:1027D000006210233043FFFF8F820030AC530000B3 -:1027E000AC400004AC520008AC43000C3C020006B4 -:1027F00034420010AF420030000000000000000032 -:10280000000000008F420000304200101040FFFD29 -:10281000001018C2006418219065004032040007BF -:10282000240200018FBF00388FB300348FB2003014 -:102830008FB1002C8FB000280082100400451025B5 -:1028400027BD004003E00008A062004027BDFFA8AC -:10285000AFB60050AFB5004CAFB40048AFB30044C2 -:10286000AFB1003CAFBF0054AFB20040AFB00038D2 -:102870008C9000003C0208008C4200E88F860034F7 -:10288000960300022413FF8000C2302130633FFF13 -:102890000003198000C3382100F3102490B2000017 -:1028A000AF42002C9203000230E2007F034230214D -:1028B0003C02000E00C28821306300C024020040A8 -:1028C0000080A82100A0B021146200260000A021F1 -:1028D0008E3400388E2200181440000224020001B9 -:1028E000AE2200189202000D304200201440001564 -:1028F0008F8200343C0308008C6300DC001238C077 -:10290000001231400043102100C730210046382119 -:1029100030E300073C02008030E6007800C230253A -:102920000343182100F31024AF4208002463090078 -:10293000AF4608108E2200188C6300080043102157 -:10294000AE2200188E22002C8E2300182442000193 -:102950000062182B1060003D000000000A000A7899 -:1029600000000000920300022402FFC00043102474 -:10297000304200FF1440000524020001AE2200187E -:10298000962200360A000A613054FFFF8E2200149E -:1029900024420001AE22001892020000000216003C -:1029A0000002160304410029000000009602000204 -:1029B00027A4001000802821A7A20016960200027A -:1029C00024070001000030213042FFFFAF820024C5 -:1029D0000E000889AFA0001C960300023C0408000A -:1029E0008C8400E88F82003430633FFF000319803D -:1029F00000441021004310213043007F3C05000CAF -:102A00000053102403431821AF4200280065182109 -:102A10009062000D001221403042007FA062000D44 -:102A20003C0308008C6300E48F82003400431021D3 -:102A30000044382130E2007F03421021004510217C -:102A400000F31824AF430028AEA200009222000D2C -:102A5000304200101040001302A020218F83002874 -:102A60008EA40000028030219462003E2442FFFFC9 -:102A7000A462003E948400029625000E3084FFFF7D -:102A80000E00097330A5FFFF8F82002894430034A5 -:102A90009622000E1443000302A02021240200010C -:102AA000A382002C02C028210E0007FE00000000B7 -:102AB0008FBF00548FB600508FB5004C8FB40048C4 -:102AC0008FB300448FB200408FB1003C8FB000380C -:102AD00003E0000827BD00588F82002827BDFFD0E3 -:102AE000AFB40028AFB20020AFBF002CAFB30024BA -:102AF000AFB1001CAFB00018904400D0904300D19B -:102B00000000A021309200FFA3A30010306300FF5B -:102B10008C5100D88C5300DC1072002B2402000171 -:102B20003C0308008C6300E493A400108F820034FF -:102B30002406FF800004214000431021004410219E -:102B40003043007F00461024AF4200280343182181 -:102B50003C02000C006218218C62000427A40014BF -:102B600027A50010022280210270102304400015C6 -:102B7000AFA300149062000D00C21024304200FF89 -:102B800014400007020088219062000D344200408A -:102B90000E0007FEA062000D0A000ABD93A20010FD -:102BA0000E0009E1241400018F830028AC7000D8C6 -:102BB00093A20010A06200D193A200101452FFD87B -:102BC0000000000024020001168200048FBF002CC8 -:102BD0000E000626000000008FBF002C8FB40028D6 -:102BE0008FB300248FB200208FB1001C8FB000186B -:102BF00003E0000827BD003027BDFFD8AFB3001C9D -:102C0000AFB20018AFB10014AFB00010AFBF0020DA -:102C10000080982100E0802130B1FFFF0E00049376 -:102C200030D200FF000000000000000000000000A3 -:102C30008F820020AC510000AC520004AC5300085D -:102C4000AC40000CAC400010AC400014AC4000188C -:102C50003C03080094634B5E02038025AC50001CCB -:102C6000000000000000000000000000240400013B -:102C70008FBF00208FB3001C8FB200188FB10014DB -:102C80008FB000100A0004B827BD002827BDFFE858 -:102C9000AFB00010AFBF001430A5FFFF30C600FF7B -:102CA0000080802124020C80AF420024000000003C -:102CB0000000000000000000000000000000000014 -:102CC0000E000ACC000000003C040800248400E050 -:102CD0008C8200002403FF808FBF001402021021A9 -:102CE00000431024AF4200248C8200003C03000A01 -:102CF000020280213210007F035010218FB000109B -:102D00000043102127BD001803E00008AF8200280F -:102D100027BDFFE8AFBF00108F4401403C0308000F -:102D20008C6300E02402FF80AF840034008318210C -:102D300000621024AF4200243C02000803424021FC -:102D4000950500023063007F3C02000A034318210E -:102D50000062182130A5FFFF3402FFFF0000302180 -:102D60003C07602010A20006AF8300282402FFFF6A -:102D7000A5020002946500D40E000AF130A5FFFF01 -:102D80008FBF001024020C8027BD001803E000084C -:102D9000AF4200243C020008034240219502000299 -:102DA0003C0A0800954A00C63046FFFF14C00007E1 -:102DB0003402FFFF8F8200288F8400343C0760209C -:102DC000944500D40A000B5A30A5FFFF10C200241E -:102DD0008F87002894E2005494E400163045FFFFEA -:102DE00000A6102300A6182B3089FFFF10600004F6 -:102DF0003044FFFF00C51023012210233044FFFFA1 -:102E0000008A102B1040000C012A1023240200011C -:102E1000A50200162402FFFFA502000294E500D4DB -:102E20008F8400340000302130A5FFFF3C07602074 -:102E30000A000AF1000000000044102A10400008B7 -:102E4000000000009502001630420001104000040E -:102E5000000000009742007E24420014A5020016E4 -:102E600003E00008000000008F84002827BDFFE079 -:102E7000AFBF0018948200349483003E1060001AA3 -:102E80003048FFFF9383002C2402000114620027C6 -:102E90008FBF00188F820028000818C23108000771 -:102EA000006218212447003A244900542444002099 -:102EB000244500302446003490620040304200FF38 -:102EC0000102100730420001104000168FBF0018A9 -:102ED0000E000856AFA900108F82002894420034DB -:102EE0000A000B733048FFFF94830036948200344D -:102EF0001043000E8FBF001894820036A482003465 -:102F000094820056A48200548C82002CAC8200244F -:102F100094820032A48200309482003CA482003A61 -:102F20008FBF00180A000B3327BD002003E0000804 -:102F300027BD002027BDFFE8AFBF00108F4A01006A -:102F40003C0508008CA500E03C02080090424B8440 -:102F50003C0C0800958C4B7E01452821304B003FEE -:102F600030A2007F03424021396900323C02000A4E -:102F70003963003F2C630001010240212D2900012B -:102F80002402FF8000A2282401234825AF8A0034B0 -:102F900000801821AF450024000030210080282146 -:102FA00024070001AF8800283C04080024844B78E3 -:102FB000AF8C002415200007A380002D24020020E0 -:102FC0005562000F006020213402FFFF5582000C83 -:102FD000006020212402002015620005000000008E -:102FE0008C6300142402FFFF106200070000000041 -:102FF0000E000889000000000A000BD0000000004D -:103000000E0008F4016028210E000B68000000008B -:103010008FBF001024020C8027BD001803E00008B9 -:10302000AF4200243C0208008C4200E027BDFFA014 -:10303000AFB1003C008210212411FF80AFBE0058C8 -:10304000AFB70054AFB20040AFB00038AFBF005CC4 -:10305000AFB60050AFB5004CAFB40048AFB30044BA -:10306000005110248F4800248F4900288F470028E2 -:10307000AF4200243C0208008C4200E00080902116 -:1030800024060006008210213042007F03421821EE -:103090003C02000A006280213C02001F3442FF8093 -:1030A00000E2382427A40010260500F00122F024B5 -:1030B0000102B8240E00051DAFA700308FA2001832 -:1030C000AE0200C48FA2001CAE0200C88FA2002472 -:1030D000AE0200CC93A40010920300D12402FF8022 -:1030E0000082102400431025304900FF3083007F08 -:1030F0003122007F0062102A10400004000310C03B -:1031000001311026304900FF000310C000031940B0 -:10311000006218213C0208008C4200DC920400D2BC -:10312000024210210043102100511024AF42002818 -:1031300093A300103063007F000310C00003194008 -:10314000006218213C0208008C4200DC024210217F -:10315000004310213042007F034218213C02000C42 -:10316000006240218FA300142402FFFF1062003090 -:10317000309500FF93A2001195030014304400FF26 -:103180003063FFFF0064182B1060000D000000008A -:10319000950400148D07001C8D0600183084FFFF75 -:1031A00000442023000421000000102100E4382105 -:1031B00000E4202B00C230210A000C4A00C4302158 -:1031C000950400148D07001C8D0600183084FFFF45 -:1031D000008220230004210000001021008018211B -:1031E00000C2302300E4202B00C4302300E3382346 -:1031F000AD07001CAD06001893A20011A502001433 -:1032000097A20012A50200168FA20014AD020010B2 -:103210008FA20014AD02000C93A20011A5020020A1 -:1032200097A20012A50200228FA20014AD02002472 -:103230002406FF80024610243256007FAF4200244D -:10324000035618213C02000A006280218E02004CC5 -:103250008FA200203124007F000428C0AE0200505D -:103260008FA200200004214000852821AE020070BA -:1032700093A2001001208821A202008393A20010D3 -:10328000A2020079920200853042003FA20200852E -:103290003C0208008C4200DC024210210045102153 -:1032A00000461024AF42002C3C0208008C4200E48F -:1032B0003C0308008C6300DC024210210044102112 -:1032C00000461024AF4200283C0208008C4200E473 -:1032D00002431821006518210242102100441021E8 -:1032E0003042007F3063007F93A50010034220210D -:1032F000034318213C02000E006240213C02000CF6 -:1033000010B1008C008248213233007F1660001912 -:103310002404FF803C0208008C4200DC02421021A1 -:1033200000441024AF42002C3C0208008C4200E410 -:103330003C0308008C6300DC02421021004410248E -:10334000AF4200283C0208008C4200E402431821EE -:103350003063007F024210213042007F034220216F -:10336000034318213C02000E006240213C02000C85 -:10337000008248219124000D2414FF8000001021B8 -:1033800000942025A124000D950400029505001449 -:103390008D07001C3084FFFF30A5FFFF8D0600184D -:1033A000008520230004210000E4382100C23021E0 -:1033B00000E4202B00C43021AD07001CAD0600182E -:1033C00095020002A5020014A50000168D02000857 -:1033D000AD0200108D020008AD02000C9502000243 -:1033E000A5020020A50000228D020008AD020024E5 -:1033F0009122000D30420040104000422622000180 -:103400003C0208008C4200E0A3B300283C10000AF4 -:103410000242102100541024AF4200243C02080054 -:103420008C4200E0A380002C27A4002C0242102133 -:103430003042007F03421821007018218C6200D8AE -:103440008D26000427A50028AFA9002C00461021D6 -:10345000AC6200D80E0009E1AF83002893A30028D6 -:103460008F8200280E000626A04300D10E000B68B4 -:103470000000000002541024AF4200243C02080067 -:103480008C4200DC00132940001320C000A420213E -:10349000024210210044102100541024AF42002C9D -:1034A0003C0208008C4200E43C0308008C6300DC12 -:1034B00003563021024210210045102100541024EF -:1034C000AF4200283C0208008C4200E4024318216D -:1034D0000064182102421021004510213042007F73 -:1034E0003063007F03422021034318213C02000E79 -:1034F000006240213C02000C00D080210082482163 -:10350000262200013043007F14750005304400FF7F -:103510002403FF800223102400431026304400FFC0 -:1035200093A2001000808821250800281444FF760B -:103530002529002093A400108FA300142402FFFF6C -:103540001062000A308900FF2482000124830001F8 -:103550003042007F14550005306900FF2403FF80CE -:103560000083102400431026304900FF92020078A7 -:10357000305300FF11330032012088213C02080043 -:103580008C4200DC3225007F000520C00005294068 -:1035900000A42021024210212406FF8000441021B3 -:1035A00000461024AF42002C3C0308008C6300DC72 -:1035B0003C0208008C4200E4024318210242102120 -:1035C0000045102100641821004610243063007F5C -:1035D000AF420028034318213C02000E0062402144 -:1035E0003C0208008C4200E48D06000C0100202102 -:1035F00002421021004510213042007F0342182171 -:103600003C02000C0062482110C0000D012028215E -:103610000E00064A000000002402FF800222182447 -:1036200026240001006228263082007F1455000203 -:10363000308300FF30A300FF1473FFD000608821A7 -:103640008E0300743C027FFF3442FFFF00621824A7 -:10365000AE0300740E00066B02402021AF57002419 -:103660008FA20030AF5E00288FBF005C8FBE005875 -:103670008FB700548FB600508FB5004C8FB4004800 -:103680008FB300448FB200408FB1003C8FB0003840 -:1036900027BD006003E00008AF42002C27BDFFD823 -:1036A000AFB1001CAFBF0020AFB000182751018898 -:1036B000922200032408FF803C03000A3047007F69 -:1036C000A3A700108F4601803C0208008C4200E056 -:1036D000AF86003400C2282100A81024AF42002485 -:1036E0009224000030A2007F0342102100431021E9 -:1036F000AF8200283084007F24020002148200255B -:10370000000719403C0208008C4200E400C210216E -:103710000043282130A2007F0342182100A8102472 -:10372000AF4200283C02000C006218219062000D9C -:10373000AFA3001400481025A062000D8FA3001451 -:103740009062000D304200405040006A8FBF002060 -:103750008F860028A380002C27A400148CC200D8D8 -:103760008C63000427A50010004310210E0009E11E -:10377000ACC200D893A300108F8200280E0006264A -:10378000A04300D10E000B68000000000A000E0BE1 -:103790008FBF00200E00062F00C020210E00063D26 -:1037A000000000003C020008034280219223000137 -:1037B0009202007B1443004F8FBF00209222000032 -:1037C0003044007F24020004108200172882000584 -:1037D00010400006240200052402000310820007A6 -:1037E0008FB1001C0A000E0C0000000010820012B5 -:1037F0008FBF00200A000E0C8FB1001C92050083C1 -:10380000920600788E0700748F84003430A500FF84 -:1038100000073E0230C600FF0E00067330E7007F4F -:103820000A000E0B8FBF00200E000BD78F840034D0 -:103830000A000E0B8FBF002024020C80AF42002430 -:103840009202003E30420040104000200000000084 -:103850009202003E00021600000216030441000618 -:10386000000000008F8400340E0005A024050093A2 -:103870000A000E0B8FBF00209202003F24030018A5 -:10388000304200FF1443000C8F84003424050039BB -:103890000E000538000030210E0002508F840034E5 -:1038A00024020012A202003F0E0002598F8400344D -:1038B0000A000E0B8FBF0020240500360E000538CD -:1038C000000030210A000E0B8FBF00200E000250B6 -:1038D0008F8400349202000534420020A2020005C9 -:1038E0000E0002598F8400340E000FC08F84003404 -:1038F0008FBF00208FB1001C8FB0001824020C80F5 -:1039000027BD002803E00008AF42002427BDFFE8E0 -:10391000AFB00010AFBF001427430100946200084D -:103920000002140000021403044100020000802180 -:103930002410000194620008304200801040001AF8 -:10394000020010219462000830422000104000164E -:10395000020010218C6300183C021C2D344219ED2A -:10396000240600061062000F3C0760213C0208009C -:103970008C4200D4104000078F8200288F830028DB -:10398000906200623042000F34420040A062006248 -:103990008F8200288F840034944500D40E000AF1F1 -:1039A00030A5FFFF020010218FBF00148FB0001060 -:1039B00003E0000827BD001827BDFFE0AFB10014E9 -:1039C000AFB00010A380002CAFBF00188F450100DE -:1039D0003C0308008C6300E02402FF80AF850034C4 -:1039E00000A318213064007F0344202100621824C2 -:1039F0003C02000A00822021AF430024275001002E -:103A00008E0200148C8300DCAF8400280043102356 -:103A100018400004000088218E0200140E000A8461 -:103A2000AC8200DC9202000B24030002304200FF53 -:103A30001443002F0000000096020008304300FFEE -:103A40002402008214620005240200840E00093E54 -:103A5000000000000A000E97000000001462000938 -:103A6000240200818F8200288F8400343C0760216B -:103A7000944500D49206000530A5FFFF0A000E868B -:103A800030C600FF14620027000000009202000A06 -:103A9000304300FF306200201040000430620040DC -:103AA0008F8400340A000E82240600401040000477 -:103AB000000316008F8400340A000E8224060041A1 -:103AC00000021603044100178F84003424060042CC -:103AD0008F8200283C076019944500D430A5FFFF71 -:103AE0000E000AF1000000000A000E97000000001E -:103AF0009202000B24030016304200FF1043000620 -:103B0000000000009202000B24030017304200FF67 -:103B100014430004000000000E000E11000000001D -:103B2000004088210E000B68000000009202000A8D -:103B3000304200081040000624020C808F850028C7 -:103B40003C0400080E0011EE0344202124020C80E6 -:103B5000AF4200248FBF0018022010218FB0001048 -:103B60008FB1001403E0000827BD002027BDFFE847 -:103B7000AFBF0014AFB000108F5000243C0308000A -:103B80008C6300E08F4501002402FF8000A3182110 -:103B90003064007F03442021006218243C02000AA4 -:103BA00000822021AF850034AF4300249082006260 -:103BB000AF8400283042000F34420050A0820062DF -:103BC0003C02001F3442FF800E00062602028024C1 -:103BD000AF5000248FBF00148FB0001003E0000826 -:103BE00027BD00183C0208008C4200201040001D38 -:103BF0002745010090A300093C0200080342202150 -:103C000024020018546200033C0200080A000ED887 -:103C10002402000803422021240200161462000539 -:103C20002402001724020012A082003F0A000EE2C4 -:103C300094A700085462000694A700089362000548 -:103C40002403FFFE00431024A362000594A700088C -:103C500090A6001B8CA4000094A500060A000ACCC4 -:103C600000073C0003E000080000000027440100BA -:103C700094820008304500FF38A3008238A20084F7 -:103C80002C6300012C420001006218251060000620 -:103C9000240200839382002D1040000D00000000DC -:103CA0000A000B9B0000000014A2000524A2FF8064 -:103CB0008F4301043C02602003E00008AC43001481 -:103CC000304200FF2C420002104000032402002278 -:103CD0000A000E3C0000000014A2000300000000D7 -:103CE0000A000EA9000000000A000EC70000000034 -:103CF0009363007E9362007A144300090000202140 -:103D00009362000024030050304200FF144300047B -:103D1000240400019362007E24420001A362007E1D -:103D200003E00008008010218F4201F80440FFFEEC -:103D300024020002AF4401C0A34201C43C021000AF -:103D400003E00008AF4201F827BDFFE8AFBF001055 -:103D50009362003F2403000A304200FF14430046F0 -:103D6000000000008F6300548F62004C1062007DE1 -:103D7000036030219362000024030050304200FFB2 -:103D80001443002F000000008F4401403C02080053 -:103D90008C4200E02403FF800082102100431024A5 -:103DA000AF4200243C0208008C4200E08F650054C2 -:103DB0003C03000A008220213084007F034410214C -:103DC00000431021AC4501089762003C8F63004C12 -:103DD0003042FFFF0002104000621821AF63005C18 -:103DE0008F6300548F64004C9762003C006418237A -:103DF0003042FFFF00031843000210400043102A26 -:103E000010400006000000008F6200548F63004CD9 -:103E1000004310230A000F58000210439762003C31 -:103E20003042FFFF00021040ACC2006424020001D7 -:103E3000A0C0007CA0C2008424020C80AF420024F9 -:103E40000E000F0A8F440140104000478FBF001042 -:103E50008F4301408F4201F80440FFFE240200021C -:103E6000AF4301C0A34201C43C021000AF4201F8BD -:103E70000A000FA88FBF00109362003F24030010B8 -:103E8000304200FF14430004000000008F44014052 -:103E90000A000F94000028219362003F24030016BB -:103EA000304200FF1443000424020014A362003FC8 -:103EB0000A000FA2000000008F62004C8F630050C8 -:103EC00000431023044100288FBF0010936200813B -:103ED00024420001A3620081936200812C4200040D -:103EE00014400010000000009362003F240300040F -:103EF000304200FF14430006000000008F440140E0 -:103F00008FBF0010240500930A0005A027BD0018EC -:103F10008F440140240500938FBF00100A00060F54 -:103F200027BD00188F4401400E0002500000000021 -:103F30008F6200542442FFFFAF6200548F62005032 -:103F40002442FFFFAF6200500E0002598F4401402F -:103F50008F4401408FBF0010240500040A00025E58 -:103F600027BD00188FBF001003E0000827BD001810 -:103F70008F4201889363007E00021402304400FFE8 -:103F8000306300FF1464000D0000000093620080A5 -:103F9000304200FF1044000900000000A3640080CC -:103FA0009362000024030050304200FF14430004D9 -:103FB000000000000A0006D78F440180A36400803F -:103FC00003E000080000000027BDFFE8AFB00010CC -:103FD000AFBF00149362000524030030304200306C -:103FE00014430089008080213C0208008C4200209C -:103FF00010400080020020210E0004930000000009 -:104000008F850020ACB000009362003E9363003FB8 -:10401000304200FF00021200306300FF0043102511 -:10402000ACA2000493620082000216000002160394 -:1040300004410005000000003C0308008C630048B8 -:104040000A000FE6000000009362003E304200408C -:10405000144000030000182193620081304300FFE8 -:104060009362008200031E00304200FF0002140031 -:1040700000621825ACA300088F620040ACA2000CBF -:104080008F620048ACA200108F62004CACA20014FA -:104090008F6200508F63004C0043102304410003E3 -:1040A000000000000A000FFA8F62004C8F6200507F -:1040B000ACA200183C02080094424B5E3C03C00BCB -:1040C00000002021004310250E0004B8ACA2001C03 -:1040D0008F6200548F840020AC8200008F620058F1 -:1040E000AC8200048F62005CAC8200088F620060CA -:1040F0008F43007400431021AC82000C8F62006477 -:10410000AC820010976300689762006A00031C008D -:104110003042FFFF00621825AC83001493620082D6 -:1041200024030080304200FF14430003000000001D -:104130000A00102EAC8000188F63000C24020001CE -:104140001062000E2402FFFF9362003E30420040E6 -:104150001440000A2402FFFF8F63000C8F4200749A -:10416000006218233C020800006210241440000280 -:10417000000028210060282100051043AC820018AF -:104180003C02080094424B5E3C03C00C000020211E -:10419000004310258F8300200E0004B8AC62001C81 -:1041A0008F6200188F8300203C05080094A54B5EA9 -:1041B00024040001AC620000AC6000048F66006C57 -:1041C0003C02400D00A22825AC6600088F6200DC8E -:1041D000AC62000CAC600010936200050002160097 -:1041E000AC620014AC6000180E0004B8AC65001C92 -:1041F000020020218FBF00148FB00010A3600005C3 -:104200000A00042127BD00188FBF00148FB00010D2 -:1042100003E0000827BD00189742007C30C600FF6D -:10422000A08600843047FFFF2402000514C2000B63 -:1042300024E3465090A201122C42000710400007D0 -:1042400024E30A0090A30112240200140062100467 -:1042500000E210210A0010663047FFFF3067FFFFC1 -:1042600003E00008A4870014AC87004C8CA201086E -:104270000080402100A0482100E2102330C600FF4A -:104280001840000393AA001324E2FFFCACA201082B -:1042900030C2000110400008000000008D020050F4 -:1042A00000E2102304410013240600058D0200548F -:1042B00010E20010000000008D02005414E2001A09 -:1042C000000000003C0208008C4200D83042002070 -:1042D0001040000A2402000191030078910200833B -:1042E000144300062402000101002021012028219E -:1042F000240600040A00105400000000A1000084FD -:1043000011400009A50200148F4301008F4201F8FB -:104310000440FFFE24020002AF4301C0A34201C4D7 -:104320003C021000AF4201F803E00008000000006A -:1043300027BDFFE88FA90028AFBF001000804021F3 -:1043400000E918231860007330C600FFA080007CCD -:10435000A08000818CA2010800E210230440004DDF -:10436000000000008C8200509483003C8C84006428 -:10437000004748233063FFFF012318210083202BCF -:1043800010800004000000008D0200640A0010B7D5 -:1043900000E210219502003C3042FFFF0122102173 -:1043A00000E21021AD02005C9502003C8D03005C30 -:1043B0003042FFFF0002104000E210210043102BAA -:1043C00010400003000000000A0010C68D02005CCF -:1043D0009502003C3042FFFF0002104000E2102135 -:1043E000AD02005CA1000084AD07004C8CA2010866 -:1043F00000E210231840000224E2FFFCACA20108F6 -:1044000030C200011040000A000000008D02005080 -:1044100000E2102304410004010020218D02005419 -:1044200014E20003000000000A0010E82406000562 -:104430008D02005414E200478FBF00103C020800B8 -:104440008C4200D8304200201040000A24020001B3 -:1044500091030078910200831443000624020001B6 -:1044600001002021240600048FBF00100A00105410 -:1044700027BD0018A1000084A50200148F4301008D -:104480008F4201F80440FFFE240200020A00110DD1 -:10449000000000008C82005C004910230043102BB8 -:1044A00054400001AC87005C9502003C3042FFFFA5 -:1044B0000062102B14400007240200029502003C09 -:1044C0008D03005C3042FFFF00621821AD03005CE9 -:1044D00024020002AD07004CA10200840E000F0A66 -:1044E0008F4401001040001B8FBF00108F4301005C -:1044F0008F4201F80440FFFE24020002AF4301C0D6 -:10450000A34201C43C021000AF4201F80A0011238B -:104510008FBF001030C200101040000E8FBF00107F -:104520008C83005C9482003C006918233042FFFFBA -:10453000006218213C023FFF3444FFFF0083102B30 -:10454000544000010080182101231021AD02005CBD -:104550008FBF001003E0000827BD001827BDFFE84B -:104560008FAA0028AFBF00100080402100EA482336 -:104570001920002130C600FF8C83005C8C8200640F -:10458000006A18230043102B5040001000691821C6 -:1045900094A2011001221021A4A2011094A20110E2 -:1045A0003042FFFF0043102B1440000A3C023FFF43 -:1045B00094A2011000431023A4A201109482003C95 -:1045C0003042FFFF0A00114200621821A4A001102E -:1045D0003C023FFF3444FFFF0083102B5440000196 -:1045E0000080182100671021AD02005CA100007C52 -:1045F0000A00118AA100008130C200101040003C66 -:10460000000000008C820050004A1023184000383F -:10461000000000009082007C24420001A082007C07 -:104620009082007C3C0308008C630024304200FF31 -:104630000043102B1440005C8FBF00108CA20108B7 -:1046400000E2102318400058000000008C83005442 -:104650009482003C006A18233042FFFF0003184395 -:10466000000210400043102A104000050000000026 -:104670008C820054004A10230A001171000210437A -:104680009482003C3042FFFF00021040AD02006403 -:104690009502003C8D0400649503003C3042FFFF0E -:1046A00000021040008220213063FFFF00831821A8 -:1046B00001431021AD02005C8D020054ACA2010840 -:1046C00024020002A10200840E000F0A8F440100A0 -:1046D000104000358FBF00108F4301008F4201F85A -:1046E0000440FFFE240200020A0011B30000000093 -:1046F000AD07004C8CA2010800E210231840000214 -:1047000024E2FFFCACA2010830C200011040000A04 -:10471000000000008D02005000E21023044100045C -:10472000010020218D02005414E20003000000006B -:104730000A0011AA240600058D02005414E2001A92 -:104740008FBF00103C0208008C4200D8304200208D -:104750001040000A240200019103007891020083B6 -:104760001443000624020001010020212406000455 -:104770008FBF00100A00105427BD0018A10000844C -:10478000A50200148F4301008F4201F80440FFFE90 -:1047900024020002AF4301C0A34201C43C02100046 -:1047A000AF4201F88FBF001003E0000827BD0018DA -:1047B0008FAA00108C8200500080402130C600FF7C -:1047C000004A102300A048211840000700E01821EB -:1047D00024020001A0800084A0A00112A482001481 -:1047E0000A001125AFAA0010A0800081AD07004C7F -:1047F0008CA2010800E210231840000224E2FFFC12 -:10480000ACA2010830C20001104000080000000006 -:104810008D0200500062102304410013240600059D -:104820008D02005410620010000000008D02005440 -:1048300014620011000000003C0208008C4200D805 -:10484000304200201040000A240200019103007849 -:10485000910200831443000624020001010020217C -:1048600001202821240600040A0010540000000042 -:10487000A1000084A502001403E00008000000006D -:1048800027BDFFE0AFBF0018274201009046000A95 -:104890008C4800148C8B004C9082008430C900FF3F -:1048A00001681823304A00FF1C60001A2D460006DC -:1048B000240200010142100410C00016304300031E -:1048C000012030210100382114600007304C000C19 -:1048D00015800009304200301440000B8FBF0018D3 -:1048E0000A001214000000000E001125AFAB0010EA -:1048F0000A0012148FBF00180E00109AAFAB001000 -:104900000A0012148FBF0018AFAB00100E0011BACE -:10491000AFAA00148FBF001803E0000827BD0020D5 -:1049200024020003A08200848C82005403E000086B -:10493000ACA201083C0200080342182190620081E9 -:10494000240600433C07601924420001A062008154 -:10495000906300813C0208008C4200C0306300FF7D -:10496000146200102403FF803C0208008C4200E027 -:104970000082102100431024AF4200243C020800B2 -:104980008C4200E03C03000A008210213042007F8C -:104990000342102100431021944500D40A000AF17B -:1049A00030A5FFFF03E000080000000027BDFFE086 -:1049B000AFBF0018AFB10014AFB000108F4201803C -:1049C0000080802100A088210E00121B00402021C1 -:1049D000A20000848E0200548FBF00188FB0001018 -:1049E000AE2201088FB1001403E0000827BD0020AB -:1049F00027BDFFE03C020008AFB00010AFBF0018B9 -:104A0000AFB10014034280218F5101409203008412 -:104A10008E0400508E02004C14820040306600FF6D -:104A20003C0208008C4200E02403FF800222102197 -:104A300000431024AF4200243C0208008C4200E0F6 -:104A40009744007C92050081022210213042007FB1 -:104A5000034218213C02000A0062182114A0000B36 -:104A60003084FFFF2402000554C20014248205DCB8 -:104A70009062011224420001A062011224020C8003 -:104A8000AF4200240A00127324020005A060011244 -:104A90002402000514C20009248205DC9202008170 -:104AA0002C4200075040000524820A009203008136 -:104AB0002402001400621004008210213044FFFF21 -:104AC000A60400140E00121B022020219602003CB6 -:104AD0008E03004C022020213042FFFF00021040D4 -:104AE000006218210E000250AE03005C9202007DAD -:104AF00002202021344200400E000259A202007D13 -:104B00008F4201F80440FFFE24020002AF5101C0B1 -:104B1000A34201C43C021000AF4201F88FBF00184D -:104B20008FB100148FB0001003E0000827BD0020F3 -:104B300008000ACC08000B1408000B9808000BE4CE -:044B400008000C203D -:0C4B44000A000028000000000000000033 -:104B50000000000D6370362E322E31000000000080 -:104B60000602010400000000000000000000000038 -:104B70000000000000000000000000000000000035 -:104B80000000000000000000000000000000002005 -:104B90000000000000000000000000000000000015 -:104BA0000000000000000000000000000000000005 -:104BB00000000000000000000000000000000001F4 -:104BC0000000002B000000000000000400030D4066 -:104BD00000000000000000000000000000000000D5 -:104BE00000000000000000001000000300000000B2 -:104BF0000000000D0000000D3C020800244258A4F3 -:104C00003C03080024635F70AC4000000043202B8D -:104C10001480FFFD244200043C1D080037BD7FFCCA -:104C200003A0F0213C100800261000A03C1C080046 -:104C3000279C58A40E0001AC000000000000000DED -:104C400027BDFFE83C096018AFBF00108D2C500055 -:104C5000240DFF7F24080031018D5824356A380C5B -:104C600024070C003C1A8000AD2A50003C04800A46 -:104C7000AF4800083C1B8008AF4700240E00091510 -:104C8000AF8400100E0008D8000000000E000825B8 -:104C9000000000000E001252000000003C046016EC -:104CA0008C8500003C06FFFF3C02535300A61824ED -:104CB0001062004734867C0094C201F2A780002C69 -:104CC00010400003A78000CC38581E1EA798002C67 -:104CD00094C201F810400004978300CC38591E1E7E -:104CE000A79900CC978300CC2C7F006753E000018C -:104CF000240300669784002C2C82040114400002D7 -:104D000000602821240404003C0760008CE904387A -:104D10002403103C3128FFFF1103001F30B9FFFFAF -:104D200057200010A38000CE24020050A38200CEA2 -:104D3000939F00CE53E0000FA78500CCA78000CC46 -:104D4000978500CC8FBF0010A780002CA78000346F -:104D5000A78000E63C010800AC25008003E00008C5 -:104D600027BD0018939F00CE57E0FFF5A78000CC29 -:104D7000A78500CC978500CC8FBF0010A784002C9E -:104D8000A7800034A78000E63C010800AC25008025 -:104D900003E0000827BD0018A38000CE8CCB003CA8 -:104DA000316A00011140000E0000000030A7FFFF33 -:104DB00010E0FFDE240200508CCC00C831860001D8 -:104DC00014C0FFDC939F00CE0A00007A2402005139 -:104DD0008C8F00043C0E60000A00005D01EE302163 -:104DE0008CEF0808240D5708000F740211CD000441 -:104DF00030B8FFFF240500660A00007B240404008D -:104E00001700FFCC939F00CE0A00007A24020050C6 -:104E10008F8600103089FFFF000939408CC30010D5 -:104E20003C08005000E82025AF4300388CC5001432 -:104E300027420400AF82001CAF45003CAF44003065 -:104E40000000000000000000000000000000000062 -:104E50000000000000000000000000000000000052 -:104E60008F4B0000316A00201140FFFD0000000060 -:104E700003E00008000000008F840010948A001AEC -:104E80008C8700243149FFFF000940C000E8302131 -:104E9000AF46003C8C8500248F43003C00A31023C8 -:104EA00018400029000000008C8B002025620001C2 -:104EB0003C0D005035AC0008AF420038AF4C00301C -:104EC00000000000000000000000000000000000E2 -:104ED00000000000000000000000000000000000D2 -:104EE0008F4F000031EE002011C0FFFD00000000D8 -:104EF0008F4A04003C080020AC8A00108F4904044B -:104F0000AC890014AF4800300000000094860018FF -:104F10009487001C00C71821A48300189485001AE8 -:104F200024A20001A482001A9498001A9499001EE9 -:104F3000133800030000000003E000080000000038 -:104F400003E00008A480001A8C8200200A0000DC24 -:104F50003C0D00500A0000CD000000003C0308009A -:104F60008C6300208F82001827BDFFE810620008C4 -:104F7000AFBF00100E000104AF8300183C0308000F -:104F80008C63002024040001106400048F89001049 -:104F90008FBF001003E0000827BD00188FBF00106E -:104FA0003C076012A520000A9528000A34E500108D -:104FB00027BD00183106FFFF03E00008ACA60090F3 -:104FC0003C0208008C42002027BDFFC8AFBF003460 -:104FD000AFBE0030AFB7002CAFB60028AFB500248D -:104FE000AFB40020AFB3001CAFB20018AFB10014D3 -:104FF00010400050AFB000108F840010948600065F -:105000009483000A00C3282330B6FFFF12C0004A71 -:105010008FBF003494890018948A000A012A402323 -:105020003102FFFF02C2382B14E0000202C020212F -:10503000004020212C8C0005158000020080A0215A -:10504000241400040E0000B3028020218F8700107A -:1050500002809821AF80001494ED000A028088211C -:105060001280004E31B2FFFF3C1770003C1540002B -:105070003C1E60008F8F001C8DEE000001D71824AD -:10508000507500500220202102A3802B160000350D -:105090003C182000507800470220202124100001F5 -:1050A0008F83001414600039029158230230F823D2 -:1050B0000250C82133F1FFFF1620FFEE3332FFFF0D -:1050C0008F8700103C110020AF510030000000001D -:1050D00094E6000A3C1E601237D5001002662821B3 -:1050E000A4E5000A94E2000A94F2000A94F400187D -:1050F0003057FFFF1292003BAEB700908CED0014CA -:105100008CE400100013714001AE4021000E5FC31B -:10511000010E502B008B4821012A1821ACE8001405 -:10512000ACE3001002D3382330F6FFFF16C0FFB9FE -:105130008F8400108FBF00348FBE00308FB7002CDB -:105140008FB600288FB500248FB400208FB3001CC9 -:105150008FB200188FB100148FB0001003E0000868 -:1051600027BD0038107E001B000000001477FFCC24 -:10517000241000010E00159B000000008F83001416 -:105180001060FFCB0230F823029158238F87001064 -:10519000017020210A0001973093FFFF8F830014D4 -:1051A0001460FFCB3C110020AF5100300A000163B6 -:1051B000000000000E00077D024028210A00015770 -:1051C000004080210E00033A024028210A000157C6 -:1051D000004080210E001463022020210A000157A4 -:1051E000004080210E0000CD000000000A0001797F -:1051F00002D3382327BDFFE8AFB00010AFBF0014C3 -:105200000E00003F000000003C028000345000709F -:105210000A0001BA8E0600008F4F000039EE00012F -:1052200031C20001104000248F8600A88E070000C4 -:105230003C0C08008D8C003C3C0908008D2900388E -:1052400000E66823018D28210000502100AD302B9D -:10525000012A4021010620213C010800AC25003C28 -:10526000AF8700A83C010800AC2400380E000106FE -:10527000000000003C0308008C6300701060FFE633 -:10528000006020213C0508008CA500683C06080051 -:105290008CC6006C0E00152A000000003C010800BE -:1052A000AC2000708F4F000039EE000131C20001C8 -:1052B0001440FFDE8F8600A88E0A00008F8B00A8A6 -:1052C0003C0508008CA5003C3C0408008C84003898 -:1052D000014B482300A938210082182100E9402B06 -:1052E000006810213C010800AC27003C3C0108008C -:1052F000AC2200388F5F01002419FF0024180C0035 -:1053000003F9202410980012AF840000AF4400205D -:10531000936D0000240C002031A600FF10CC001279 -:10532000240E005010CE00043C194000AF59013843 -:105330000A0001B3000000000E0011C800000000C8 -:105340003C194000AF5901380A0001B300000000C9 -:105350000E00011F000000003C194000AF59013849 -:105360000A0001B3000000008F58010000802821CE -:10537000330F00FF01E020210E0002F1AF8F000487 -:105380003C194000AF5901380A0001B30000000089 -:1053900000A4102B2403000110400009000030215C -:1053A0000005284000A4102B04A0000300031840AF -:1053B0005440FFFC000528405060000A0004182BF0 -:1053C0000085382B54E000040003184200C3302548 -:1053D00000852023000318421460FFF900052842CD -:1053E0000004182B03E0000800C310218F4201B80D -:1053F0000440FFFE00000000AF4401803C031000A9 -:1054000024040040AF450184A3440188A3460189D8 -:10541000A747018A03E00008AF4301B83084FFFFCB -:105420000080382130A5FFFF000020210A00022A59 -:10543000240600803087FFFF8CA40000240600387B -:105440000A00022A000028218F8300388F8600304E -:105450001066000B008040213C07080024E75A1822 -:10546000000328C000A710218C4400002463000121 -:10547000108800053063000F5466FFFA000328C04F -:1054800003E00008000010213C07080024E75A1C34 -:1054900000A7302103E000088CC200003C0390000C -:1054A0003462000100822025AF4400208F45002097 -:1054B00004A0FFFE0000000003E000080000000060 -:1054C0003C038000346200010082202503E00008D4 -:1054D000AF44002027BDFFE0AFB100143091FFFFC3 -:1054E000AFB00010AFBF00181220001300A0802141 -:1054F0008CA2000024040002240601401040000F8A -:10550000004028210E000C5C00000000000010216B -:10551000AE000000022038218FBF00188FB10014A8 -:105520008FB0001000402021000028210000302111 -:105530000A00022A27BD00208CA200000220382188 -:105540008FBF00188FB100148FB0001000402021D1 -:1055500000002821000030210A00022A27BD002077 -:1055600000A010213087FFFF8CA500048C440000B0 -:105570000A00022A2406000627BDFFE0AFB0001093 -:10558000AFBF0018AFB100149363003E00808021CC -:105590000080282130620040000020211040000FD0 -:1055A0008E1100000E000851022020219367000098 -:1055B0002404005030E500FF50A400128E0F0000BC -:1055C000022020218FBF00188FB100148FB000106F -:1055D000A762013C0A00091127BD00200E000287C6 -:1055E000000000000E0008510220202193670000F7 -:1055F0002404005030E500FF14A4FFF20220202113 -:105600008E0F00003C1008008E1000503C0D000C66 -:10561000240BFF8001F05021314E007F01DA602120 -:10562000018D4021014B4824AF4900280220202150 -:105630008FBF00188FB100148FB00010A50200D6E4 -:1056400027BD00200A000911AF8800D027BDFFE068 -:10565000AFBF0018AFB10014AFB0001093660001E7 -:10566000008080210E00025630D1000493640005B2 -:10567000001029C2A765000034830040A363000521 -:105680000E00025F020020210E00091302002021FB -:1056900024020001AF62000C02002821A762001062 -:1056A00024040002A762001224060140A76200142D -:1056B0000E000C5CA76200161620000F8FBF0018AA -:1056C000978C00343C0B08008D6B00782588FFFF19 -:1056D0003109FFFF256A0001012A382B10E000067E -:1056E000A78800343C0F6006240E001635ED00102C -:1056F000ADAE00508FBF00188FB100148FB00010F6 -:1057000003E0000827BD002027BDFFE0AFB1001473 -:10571000AFBF0018AFB0001000A088211080000AB1 -:105720003C03600024020080108200120000000090 -:105730000000000D8FBF00188FB100148FB0001053 -:1057400003E0000827BD00208C682BF80500FFFE51 -:1057500000000000AC712BC08FBF00188FB1001487 -:105760008FB000103C09100027BD002003E00008A6 -:10577000AC692BF80E00025600A0202193650005AD -:10578000022020210E00025F30B000FF2403003E03 -:105790001603FFE7000000008F4401780480FFFE3D -:1057A000240700073C061000AF51014002202021D1 -:1057B000A34701448FBF00188FB100148FB00010B1 -:1057C000AF4601780A0002C227BD002027BDFFE8CE -:1057D000AFBF0014AFB000108F50002000000000D9 -:1057E0000E000913AF440020AF5000208FBF0014FB -:1057F0008FB0001003E0000827BD00183084FFFFC1 -:10580000008038212406003500A020210A00022A49 -:10581000000028213084FFFF008038212406003654 -:1058200000A020210A00022A0000282127BDFFD065 -:10583000AFB3001C3093FFFFAFB50024AFB2001828 -:10584000AFBF0028AFB40020AFB10014AFB000105C -:1058500030B5FFFF12600027000090218F90001CE0 -:105860008E0300003C0680002402004000033E023C -:1058700000032C0230E4007F006688241482001D9F -:1058800030A500FF8F8300282C68000A510000100B -:105890008F910014000358803C0C0800258C56940E -:1058A000016C50218D49000001200008000000001B -:1058B00002B210213045FFFF0E000236240400849E -:1058C000162000028F90001CAF8000288F910014DA -:1058D000260C002026430001018080213072FFFF4A -:1058E00016200004AF8C001C0253502B1540FFDC27 -:1058F00000000000024010218FBF00288FB5002457 -:105900008FB400208FB3001C8FB200188FB1001429 -:105910008FB0001003E0000827BD0030240E0034D3 -:1059200014AE00F9000000009203000E241F168040 -:105930003C07000CA36300219202000D0347C8211D -:105940003C066000A3620020961100123C0A7FFF13 -:10595000354CFFFFA771003C960B00102403000597 -:105960003168FFFFAF6800848E05001CAF5F002820 -:105970008F3800008CC4444803057826008F3021FE -:10598000AF66004C8F69004C24CE00013C057F00BF -:10599000AF6900508F740050AF740054AF66007050 -:1059A000AF6E00588F6D005824140050AF6D005C2E -:1059B000A3600023AF6C0064A36300378E02001461 -:1059C000AF6200488F710048AF7100248E0B001841 -:1059D000AF6B006C9208000CA3680036937F003E0A -:1059E00037F90020A379003E8F78007403058024E6 -:1059F000360F4000AF6F007493640000308900FFE1 -:105A0000513402452404FF803C04080024845A9841 -:105A10000E00028D000000003C1008008E105A9805 -:105A20000E00025602002021240600042407000173 -:105A3000A366007D020020210E00025FA36700051F -:105A40008F5F017807E0FFFE240B0002AF5001409A -:105A5000A34B01448F90001C3C081000AF48017814 -:105A60000A000362AF8000282CAD003751A0FF98D8 -:105A70008F9100140005A0803C180800271856BC20 -:105A8000029878218DEE000001C00008000000009F -:105A90002418000614B80011000000003C0808009B -:105AA0008D085A9824040005AF4800208E1F001866 -:105AB000AF7F00188F79004CAF79001C8F650050C4 -:105AC000122000C0AF6500700A000362AF84002896 -:105AD0002406000710A60083240300063C050800E6 -:105AE00024A55A980E000264240400818F90001CA3 -:105AF0000011102B0A000362AF8200282407000463 -:105B000014A7FFF6240500503C1808008F185A9877 -:105B1000AF5800208E0F0008AF6F00408E090008BC -:105B2000AF6900448E14000CAF7400488E0E001054 -:105B3000AF6E004C8E0D0010AF6D00848E0A001405 -:105B4000AF6A00508E0C0018AF6C00548E04001C1D -:105B5000AF64005893630000306B00FF116501D8FB -:105B6000000000008F7400488F6900400289702394 -:105B700005C000042404008C1620FFDE240200036C -:105B8000240400823C05080024A55A980E000287D0 -:105B9000000000008F90001C000010210A0003622A -:105BA000AF820028240F000514AFFFCC240520008D -:105BB0003C0708008CE75A98AF4700208E06000487 -:105BC000AF66005C9208000824100008A36800215A -:105BD0008F9F001C93F90009A37900208F86001C79 -:105BE00090D8000A330400FF10900011000000005C -:105BF0002885000914A0006924020002240A00205C -:105C0000108A000B34058000288D002115A00008A3 -:105C100024054000240E0040108E00053C050001C4 -:105C200024140080109400023C050002240540006A -:105C30008F7800743C19FF00031980240205782531 -:105C4000AF6F007490C4000BA36400818F84001CAC -:105C50009489000C11200192000000009490000C27 -:105C60002406FFBF24050004A770003C908F000E9F -:105C7000A36F003E8F84001C9089000FA369003F32 -:105C80008F8B001C8D6E00108F54007401D468231C -:105C9000AF6D00608D6A0014AF6A0064956C0018E7 -:105CA000A76C00689563001AA763006A8D62001CE8 -:105CB000AF62006C9167000EA367003E9368003EE0 -:105CC0000106F8241220014BA37F003E8F90001C98 -:105CD0000A000362AF8500282407002214A7FF7F73 -:105CE000240300073C0B08008D6B5A981220000C0F -:105CF000AF4B00200A000362AF830028240C00335E -:105D000010AC0014240A00283C05080024A55A9869 -:105D10000E00023C240400810A0003EB8F90001C5B -:105D20003C04080024845A980E00028D00000000F4 -:105D30009363000024110050306200FF10510135C0 -:105D4000000000008F90001C000018210A00036270 -:105D5000AF8300283C0D08008DAD5A9824040081C3 -:105D6000AF4D00203C05080024A55A980E00023CC7 -:105D7000A36A00348F90001C240200090A00036209 -:105D8000AF82002802B288213225FFFF0E000236C2 -:105D9000240400840A0003628F90001C1082FFA478 -:105DA00024050400288B000311600170240C0004FA -:105DB000240300015483FF9E240540000A00043B95 -:105DC000240501003C04080024845A988F62004C8A -:105DD0000E00028D8F6300508F90001C0000202168 -:105DE0000A000362AF8400288E1000042404008A95 -:105DF000AF50002093790005333800021700015F8F -:105E0000020028219368002302002821311F00206E -:105E100017E0015A2404008D9367003F2406001206 -:105E200030E200FF10460155240400810E000256A6 -:105E30000200202193630023240500040200202196 -:105E4000346B0042A36B00230E00025FA365007D4C -:105E50008F4401780480FFFE240A0002AF50014005 -:105E6000A34A01448F90001C3C0C1000AF4C0178F9 -:105E70000A0003EC0011102B8E1000042404008A89 -:105E8000AF500020936E000531CD000215A0001622 -:105E900002002821936F003F2414000402002821EF -:105EA00031E900FF11340010240400810E00025675 -:105EB000020020219362002324080012241FFFFE09 -:105EC00034460020A3660023A368003F93790005B1 -:105ED00002002021033FC0240E00025FA3780005CA -:105EE00002002821000020210E00033400000000E1 -:105EF0000A0003EB8F90001C8E1000043C03000886 -:105F00000343A021AF500020928B000024050050D5 -:105F1000316400FF10850161240700880200202100 -:105F2000000028210E00022A2406000E928D000097 -:105F3000240EFF800200282101AE8025A2900000DF -:105F4000240400040E000C5C240600300A0003EB5D -:105F50008F90001C8E0800043C14080026945A9868 -:105F60003C010800AC285A98AF480020921F00035B -:105F700033F9000413200002240200122402000658 -:105F8000A362003F920B001B2404FFC03165003F59 -:105F900000A43825A367003E9206000330C200012A -:105FA00014400132000000008E020008AE8200089A -:105FB0003C0208008C425AA010400131000249C244 -:105FC000A76900088E14000C240C0001240300149F -:105FD000AF74002C8E0E0010AF6E0030960D0016C0 -:105FE000A76D0038960A0014A76A003AAF6C000C3F -:105FF000A76C0010A76C0012A76C0014A76C001609 -:1060000012200136A3630034920F000331F0000226 -:106010002E1100018F90001C262200080A00036246 -:10602000AF8200288E0400043C0E0008034E30218D -:10603000AF4400208E05000890CD0000240C0050D5 -:1060400031AA00FF114C00862407008824060009AD -:106050000E00022A000000000A0003EB8F90001CD3 -:106060008E04001C0E00024100000000104000F4ED -:10607000004050218F89001C240700890140202105 -:106080008D25001C240600010E00022A00000000DD -:106090000A0003EB8F90001C960D00023C140800D0 -:1060A00026945A9831AA0004514000B83C10600070 -:1060B0008E0E001C3C010800AC2E5A98AF4E0020FA -:1060C000920700102408001430E200FF144800D6A4 -:1060D00000000000960B00023163000114600165AE -:1060E000000000008E020004AE8200083C1408008C -:1060F0008E945AA01280015B000000008F7400741F -:106100003C0380002404000102835825AF6B007417 -:10611000A3600005AF64000C3C0708008CE75AA0A0 -:106120008F86001CA7640010000711C2A76400122C -:10613000A7640014A7640016A76200088CC80008B2 -:1061400024040002AF68002C8CC5000CAF65003041 -:1061500090DF0010A37F00348F99001C9330001152 -:10616000A37000358F98001C930F0012A36F0036A8 -:106170008F89001C912E0013A36E00378F90001C96 -:10618000960D0014A76D0038960A0016A76A003A0B -:106190008E0C0018AF6C00245620FDCCAF84002874 -:1061A0003C05080024A55A980E0002640000202136 -:1061B0008F90001C0A0004A7000020218E1000040C -:1061C00024070081AF500020936900233134001070 -:1061D000128000170000000002002021000028218A -:1061E0002406001F0E00022A000000000A0003EB34 -:1061F0008F90001C3C05080024A55A980E000287C9 -:10620000240400828F90001C000028210A000362F1 -:10621000AF8500283C0408008C845A980E0014E8CE -:10622000000000008F90001C0A000482000018216A -:106230000E00025602002021937800230200202144 -:10624000370F00100E00025FA36F002300003821FB -:1062500002002021000028210A0005A82406001FB2 -:10626000920F000C31E90001112000030000000032 -:106270009618000EA4D8002C921F000C33F90002CF -:1062800013200005000038218E0200149608001229 -:10629000ACC2001CA4C8001A0A0005432406000969 -:1062A0003C05080024A55A980E0002872404008BA0 -:1062B0008F90001C0011282B0A000362AF85002874 -:1062C000AF6000843C0A08008D4A5A983C0D0800D3 -:1062D0008DAD0050240CFF803C02000C014D1821B4 -:1062E000006C2024AF4400288E070014306B007F20 -:1062F000017A282100A2C821AF2700D88E060014F9 -:10630000AF9900D0AF2600DC8E080010251FFFFEDD -:106310000A000408AF3F01083C0508008CA55A9804 -:106320003C1908008F39005024CCFFFE00B9C02171 -:1063300003047824AF4F00283C1408008E945A9828 -:106340003C0908008D2900500289702131CD007F61 -:1063500001BA502101478021AE0600D8AF9000D08D -:10636000AE0000DC0A0003B1AE0C0108548CFE3014 -:10637000240540000A00043B240510000E00032EF3 -:10638000000000000A0003EB8F90001C8E0F442CCD -:106390003C186C62370979703C010800AC205A98AF -:1063A00015E9000824050140979F00349786002CCA -:1063B0000280282103E6C82B132000112404009238 -:1063C000240501400E000C7A240400023C01080060 -:1063D000AC225A98AF4200203C0508008CA55A9880 -:1063E00010A00005240400830E00084500000000F2 -:1063F00010400009240400833C05080024A55A9895 -:106400000E000264000000008F90001C0011202B81 -:106410000A000362AF8400280E0008490000000053 -:106420000A00055F8F90001C0E00084D0000000060 -:106430003C05080024A55A980A00062F2404008B66 -:10644000240400040E000C7A240500301440002AB5 -:10645000004050218F89001C240700830140202127 -:106460008D25001C0A000551240600018E04000839 -:106470000E000241000000000A00051BAE82000869 -:106480003C05080024A55A980E00023C240400870D -:106490008F90001C0A0005360011102B8F830038E6 -:1064A0008F8600301066FE9D000038213C070800F2 -:1064B00024E75A1C000320C0008728218CAC000070 -:1064C00011900061246A00013143000F5466FFFA05 -:1064D000000320C00A0004F6000038213C05080033 -:1064E00024A55A980E000287240400828F90001C75 -:1064F0000A000536000010213C0B0008034B202148 -:106500002403005024070001AF420020A0830000B4 -:10651000A08700018F82001C90480004A08800180A -:106520008F85001C90A60005A08600198F9F001C77 -:1065300093F90006A099001A8F90001C921800078A -:10654000A098001B8F94001C928F0008A08F001C45 -:106550008F89001C912E0009A08E001D8F8D001CBC -:1065600091AC000AA08C001E8F8B001C3C0C080014 -:10657000258C5A1C9163000B3C0B0800256B5A18A4 -:10658000A083001F8F87001C90E8000CA0880020CB -:106590008F82001C9045000D24024646A0850021F4 -:1065A0008F86001C90DF000EA09F00228F99001C98 -:1065B0009330000FA09000238F98001C93140010BC -:1065C000A09400248F8F001C91E90011A089002560 -:1065D0008F89001C8F8E00308F900038952D00140D -:1065E000000E18C025C80001A48D002895270016AC -:1065F000006C3021006BC821A487002A9525001863 -:106600003108000FA485002CA482002E8D3F001CB1 -:10661000ACCA0000AF88003011100006AF3F000088 -:10662000000038218D25001C014020210A00055161 -:1066300024060001250C00013184000F00003821E0 -:106640000A0006B8AF8400383C07080024E75A184F -:106650000087302100003821ACA000000A0004F6B9 -:10666000ACC000003C05080024A55A980A00062F7B -:10667000240400878E0400040E0002410000000084 -:106680000A00056AAE8200083084FFFF30C600FFB2 -:106690008F4201B80440FFFE00064400010430258B -:1066A0003C07200000C720253C031000AF400180BC -:1066B000AF450184AF44018803E00008AF4301B84F -:1066C00027BDFFE8AFB00010AFBF00143C0760006B -:1066D000240600021080000600A080210010102B6C -:1066E0008FBF00148FB0001003E0000827BD001812 -:1066F0003C09600EAD2000348CE5201C8F82001C0C -:106700002408FFFC00A81824ACE3201C0E0006D1CE -:106710008C45000C0010102B8FBF00148FB00010A0 -:1067200003E0000827BD00183C02600E344701005A -:1067300024090018274A040000000000000000009F -:10674000000000003C06005034C30200AF44003893 -:10675000AF45003CAF430030014018218F4B000093 -:10676000316800201100FFFD2406007F2408FFFF90 -:106770008C6C000024C6FFFF24630004ACEC000016 -:1067800014C8FFFB24E70004000000000000000024 -:10679000000000003C0F0020AF4F00300000000060 -:1067A00024AD020001A5702B2529FFFF008E2021BA -:1067B0001520FFE101A0282103E0000800000000EF -:1067C00027BDFFE0AFB10014AFBF0018AFB000109D -:1067D0003C05600E8CA20034008088211440000625 -:1067E0003C0460008C87201C2408FFFC00E8302457 -:1067F00034C30001AC83201C8F8B001C24090001D2 -:10680000ACA90034956900028D6500148D70000CF0 -:106810002D2400818D6700048D660008108000071C -:106820008D6A00102D2C00041580000E30CE00075C -:10683000312D000311A0000B000000002404008B88 -:10684000020028210E0006D1240600030011102B9F -:106850008FBF00188FB100148FB0001003E0000844 -:1068600027BD002015C0FFF62404008B3C03002048 -:10687000AF4300300000000024020001AF8200148A -:106880000000000000000000000000003C1F01505C -:10689000013FC825253800033C0F600EAF47003884 -:1068A00000181882AF46003C35E8003CAF59003074 -:1068B000274704008F4400003086002010C0FFFDF1 -:1068C00000000000106000082466FFFF2403FFFFA3 -:1068D0008CEB000024C6FFFF24E70004AD0B000092 -:1068E00014C3FFFB250800043C08600EAD09003806 -:1068F0000000000000000000000000003C07002035 -:10690000AF470030000000000E0006F901402021D2 -:1069100002002821000020210E0006D124060003D9 -:106920000011102B8FBF00188FB100148FB0001012 -:1069300003E0000827BD002027BDFFE0AFB200182C -:106940003092FFFFAFB10014AFBF001CAFB000101A -:106950001640000D000088210A0007AA022010211D -:1069600024050001508500278CE5000C0000000D77 -:10697000262300013071FFFF24E200200232382B71 -:1069800010E00019AF82001C8F8200141440001622 -:106990008F87001C3C0670003C0320008CE5000043 -:1069A00000A62024148300108F84003C00054402BC -:1069B0003C09800000A980241480FFE9310600FF13 -:1069C0002CCA00095140FFEB262300010006688015 -:1069D0003C0E080025CE579801AE60218D8B00003B -:1069E0000160000800000000022010218FBF001C81 -:1069F0008FB200188FB100148FB0001003E00008B0 -:106A000027BD00200E0006D1240400841600FFD804 -:106A10008F87001C0A00078BAF80003C90EF0002BC -:106A200000002021240600090E0006D1000F2E00D0 -:106A30008F87001C0010102B0A00078BAF82003CD0 -:106A4000020028210E0006DF240400018F87001CAD -:106A50000A00078BAF82003C020028210E0006DFEF -:106A6000000020210A0007C38F87001C0E00071FAB -:106A7000020020210A0007C38F87001C30B0FFFFEF -:106A8000001019C08F5801B80700FFFE3C1F2004FA -:106A90003C191000AF430180AF400184AF5F018813 -:106AA000AF5901B80A00078C262300013082FFFF8E -:106AB00014400003000018210004240224030010E5 -:106AC000308500FF14A000053087000F2466000801 -:106AD0000004220230C300FF3087000F14E00005DD -:106AE000308900032468000400042102310300FF00 -:106AF0003089000315200005388B0001246A00024C -:106B000000042082314300FF388B00013164000112 -:106B100010800002246C0001318300FF03E00008B4 -:106B200000601021308BFFFF000B394230E600FF80 -:106B30003C09080025295998000640800109602178 -:106B40008D8700003164001F240A0001008A1804A8 -:106B500030A500FF00E3202514A000020003102749 -:106B600000E22024240F000100CF700401096821F5 -:106B7000000E282714800005ADA400008F86000CAD -:106B800000A6102403E00008AF82000C8F88000CE0 -:106B900001C8102503E00008AF82000C3C06001F6E -:106BA0003C0360003084FFFF34C5FF8024020020D6 -:106BB000AC602008AC60200CAC602010AC652014E8 -:106BC000AC642018AC62200000000000000000004F -:106BD00003E000080000000027BDFFE82402FFFFDB -:106BE000AFBF0010AF82000C000020213C0608005F -:106BF00024C659982405FFFF248900010004408021 -:106C00003124FFFF010618212C87002014E0FFFA31 -:106C1000AC6500000E0008160000202124020001CF -:106C20003C04600024050020AC822018AC852000C4 -:106C3000000000000000000000000000244A0001E5 -:106C40003142FFFF2C46040014C0FFF78FBF001035 -:106C500003E0000827BD00188F8300082C620400A1 -:106C600003E00008384200018F830008246200011D -:106C700003E00008AF8200088F8300082462FFFF52 -:106C800003E00008AF82000827BDFFE0AFB10014A9 -:106C9000AFBF0018AFB000108F6B00303C06600033 -:106CA00000808821ACCB20088F6A002C3C02800039 -:106CB00024030008ACCA200C9769003A9768003892 -:106CC00000092C003107FFFF00A72025ACC42010CD -:106CD000ACC22014ACC32000000000000000000083 -:106CE000000000003C0360008C6D200031AC000807 -:106CF0001580FFF9000000008C6E201405C00020F4 -:106D0000000000000E0007DA8F84000C00024080B3 -:106D10003C09080025295998010938218CE4000014 -:106D20000E0007DA00028140020220213090FFFFAE -:106D3000020020210E0007F8000028213C0C8000F2 -:106D4000022C58253210FFFF3C116000240A00205D -:106D5000AE2B2014AE302018AE2A20000000000018 -:106D60000000000000000000020010218FBF00188A -:106D70008FB100148FB0001003E0000827BD002081 -:106D80008C6620143C02001F3443FF803C1FFFE848 -:106D900000C3C02437F9080003198021001079C20C -:106DA0003C0C8000022C582531F0FFFF3C116000A4 -:106DB000240A0020AE2B2014AE302018AE2A20006A -:106DC0000000000000000000000000000200102190 -:106DD0008FBF00188FB100148FB0001003E00008BF -:106DE00027BD002027BDFFE8AFB000103402FFFF31 -:106DF0003090FFFFAFBF00141202000602002021F6 -:106E00000E00081600000000020020210E0007F806 -:106E1000240500018F8400088FBF00148FB000107C -:106E20002483FFFF27BD001803E00008AF8300089C -:106E3000000439C230E6003F00043B42000718401E -:106E4000240210002CC4002024C8FFE0AF42002C14 -:106E5000246300011480000330A900FF00071840DC -:106E6000310600FF0003608024080001019A5821C8 -:106E70003C0A000E00C82804016A382111200005D0 -:106E8000000530278CE900000125302503E00008CB -:106E9000ACE600008CEE000001C6682403E00008A8 -:106EA000ACED000027BDFFE8AFBF0014AFB000108D -:106EB0003C0460008C8508083403F00030A2F00028 -:106EC00050430006240200018C8708083404E000C7 -:106ED00030E6F00010C4001E24020002AF82004021 -:106EE0003C1060003C0A0200AE0A0814240910009D -:106EF0003C08000E8E03440003482021AF49002CBB -:106F0000240501200E000CC0000030218F830040BA -:106F1000106000043C021691240B0001106B000E5F -:106F20003C023D2C344F0090AE0F44088FBF00143C -:106F30008FB000103C0C6000240E10003C0D0200CD -:106F400027BD0018AD8E442003E00008AD8D081069 -:106F50000A0008E7AF8000403C0218DA344F009086 -:106F6000AE0F44088FBF00148FB000103C0C6000BF -:106F7000240E10003C0D020027BD0018AD8E4420E9 -:106F800003E00008AD8D08100A0008BB24050001CD -:106F90000A0008BB000028213C08080025085DA461 -:106FA0002404FFFF010018212402001E2442FFFFD9 -:106FB000AC6400000441FFFD246300043C070800AA -:106FC00024E75E208CE5FFFC2404001C240600015D -:106FD000308A001F0146480424840001000910275C -:106FE0002C8300201460FFFA00A22824ACE5FFFCEB -:106FF0003C05666634A4616E3C06080024C65EE06B -:10700000AF840058AF88009C2404FFFF00C0182103 -:107010002402001F2442FFFFAC6400000441FFFD76 -:10702000246300043C0766663C05080024A55EA0B6 -:10703000AF86004834E6616EAF8600982404FFFFF7 -:1070400000A018212402000F2442FFFFAC640000BE -:107050000441FFFD246300043C0B66663C06080007 -:1070600024C65E203568616EAF8500A4AF880070CD -:107070002404FFFF00C018212402001F2442FFFF48 -:10708000AC6400000441FFFD246300043C0D66660F -:107090003C0A0800254A5F6035AC616EAF860090FF -:1070A000AF8C005C2404FFFF014018212402000380 -:1070B0002442FFFFAC6400000441FFFD2463000490 -:1070C0003C09080025295F708D27FFFC2404000679 -:1070D000240500013099001F0325C0042484000109 -:1070E000001878272C8E002015C0FFFA00EF3824F6 -:1070F000AD27FFFC3C09666624030400240403DC7E -:1071000024050200240600663522616E3C08080052 -:1071100025085AA4AF820074AF830044AF83006C8B -:10712000AF830050AF830084AF8A008CAF840064CB -:10713000AF85004CAF860054AF840078AF85006007 -:10714000AF86008001001821240200022442FFFFC4 -:10715000AC6000000441FFFD24630004240400032C -:107160002403000C3C0A0800254A5AB0AF8A006884 -:107170000A00098E2405FFFF000418802484000102 -:10718000006858212C8700C014E0FFFBAD650000AB -:107190003C0E666635CD616E240C17A024081800DD -:1071A000AF8D0088AF8C009403E00008AF88007CAE -:1071B0002484007F000421C200004021000030210F -:1071C00000003821000028210A0009A5AF8400A092 -:1071D0001060000624E7000100C4302124A500014E -:1071E0002CC20BF51440FFFA2CA300663C090800E2 -:1071F00025295F6001201821240200032442FFFF9B -:10720000AC6000000441FFFD2463000410E0001A9C -:1072100024E3FFFF0003294210A0000A0000202100 -:107220002406FFFF3C03080024635F602484000100 -:107230000085502BAC660000250800011540FFFBBF -:107240002463000430E2001F10400008000868803A -:10725000240C0001004C38040008588001692821E2 -:1072600024E6FFFF03E00008ACA6000001A94021CE -:107270002409FFFFAD09000003E000080000000042 -:10728000AF4400283C04000C034420210005288260 -:107290000A000CC000003021000421803C03600083 -:1072A000AC6410080000000000052980AC65100CDB -:1072B0000000000003E000088C62100C27BDFFE80E -:1072C0000080282124040038AFBF00140E0009D527 -:1072D000AFB0001024040E00AF4400283C10000C96 -:1072E00003502021240500100E000CC000003021A6 -:1072F00003501021AC400000AC40000424040038CE -:107300008FBF00148FB0001024053FFF27BD001869 -:107310000A0009D58C430000000421803C03600072 -:10732000AC641008000000008C62100C03E0000840 -:107330000002118227BDFFC8AFB400208F940068FF -:10734000AFBE0030AFB7002CAFB600280000B821A8 -:107350000080B021241E00C0AFBF0034AFB50024B0 -:10736000AFB3001CAFB20018AFB10014AFB0001043 -:107370000A000A12AFA5003C504000018F9400683B -:1073800027DEFFFF13C00028269400048E92000021 -:107390003C03080024635DA01240FFF70283102B1A -:1073A0003C04080024845AA4028410230002A8C0CC -:1073B000000098210A000A212411000100118840D0 -:1073C000122000260000000002B380210251282470 -:1073D0000200202110A0FFF9267300010E0009DE33 -:1073E000000000000016684032EC000101AC2021D2 -:1073F0000E0009D5020028218F89009426F700018C -:107400008FA6003C3AEB0001316A00012528FFFFFE -:107410000011382702CAB021AF88009416E6FFE7B2 -:1074200002479024AE92000002E010218FBF00348A -:107430008FBE00308FB7002C8FB600288FB5002488 -:107440008FB400208FB3001C8FB200188FB10014CE -:107450008FB0001003E0000827BD00383C0E080084 -:1074600025CE5DA0028E102B0A000A0DAE92000000 -:1074700027BDFFD8AFB10014AFB00010AFBF0020E0 -:10748000AFB3001CAFB2001800A0882110A0001FED -:10749000000480403C13080026735AA40A000A5ACC -:1074A0002412000112200019261000010E0009F517 -:1074B00002002021000231422444FFA0000618806F -:1074C0003045001F2C8217A1007318212631FFFFC1 -:1074D0001040FFF400B230048C690000020020214B -:1074E00024053FFF012640241500FFEE0126382524 -:1074F0000E0009D5AC6700008F8A009426100001A9 -:10750000254700011620FFE9AF8700948FBF0020B8 -:107510008FB3001C8FB200188FB100148FB0001011 -:1075200003E0000827BD00288F85009C00805821BB -:107530000000402100004821240A001F3C0C0800E4 -:10754000258C5E1C3C0D080025AD5DA48CA60000BA -:1075500050C000140000402100AD1023000238C0CC -:10756000240300010A000A930000202115000003F3 -:1075700000E410212448202400004821252900018E -:10758000512B00132506DFDC106000062484000167 -:1075900000C3702415C0FFF5000318400A000A91CB -:1075A0000000402110AC002624A300040060282124 -:1075B000254AFFFF1540FFE5AF85009C512B0004D5 -:1075C0002506DFDC0000402103E000080100102157 -:1075D0000006614230C5001F000C50803C070800C7 -:1075E00024E75DA424040001014730211120000F8D -:1075F00000A420043C05080024A55E20148000059A -:107600002529FFFF24C6000410C50011000000005A -:10761000240400018CCF00000004C0270004204097 -:1076200001F868241520FFF5ACCD00008F99007893 -:1076300001001021032B482303E00008AF890078E4 -:107640003C05080024A55DA40A000A9B0000402117 -:107650003C06080024C65DA40A000AB42404000104 -:10766000308800FF240200021102000A24030003F4 -:107670001103005C8F8900A4240400041104005F3E -:1076800024050005110500670000182103E000082B -:10769000006010218F8900483C0C0800258C5EE0BA -:1076A0003C04080024845F60240300201060000F65 -:1076B00000005821240D0002240E00033C0F080096 -:1076C00025EF5EE08D27000014E0000B30F9FFFF8E -:1076D000252900040124C02B53000001018048210A -:1076E0002463FFFF5460FFF88D270000016018211C -:1076F00003E0000800601021132000323C0500FF69 -:1077000030E200FF004030211040004200005021D4 -:1077100024050001000020210005C84000A6C02467 -:1077200017000003332500FF14A0FFFB2484000191 -:10773000012CC023001828C000AA6021008C502111 -:107740003144001F240C0001008C18040003102792 -:1077500000E23024110D0041AD260000110E004C56 -:10776000000A1840110D00368F87006C510E00562C -:107770008F8C0060240D0004110D005A8F8E008440 -:10778000240E0005150EFFDA01601821240B1430B9 -:1077900011400006000018218F8400A0246300011E -:1077A000006A402B1500FFFD016458218F8A00807C -:1077B000AF89008C016018212549FFFF0A000AEB00 -:1077C000AF89008000E52024000736021080FFD03A -:1077D000240A001800075402314600FF0A000AF389 -:1077E000240A00103C0C0800258C5EA03C04080014 -:1077F00024845EE00A000ADA240300103C0C08002E -:10780000258C5E203C04080024845EA00A000AD96E -:107810008F89009000071A02306600FF0A000AF301 -:10782000240A00088F89008C3C0C0800258C5F60BE -:107830003C04080024845F700A000ADA2403000470 -:10784000000A4080250B003024E6FFFF016018216C -:10785000AF8900480A000AEBAF86006C000AC982B3 -:10786000001978803C07080024E75EA001E720218A -:10787000000A18428C8F00003079001F032C380456 -:107880000007C02701F860240A000B08AC8C000038 -:10789000000331420006288000AF28213062001F1B -:1078A0008CB8000024630001004CC804000321428E -:1078B000001938270004108003073024004F2021CE -:1078C0000A000B4CACA60000000A68C025AB0032D1 -:1078D000258AFFFF01601821AF8900A40A000AEB86 -:1078E000AF8A0060254B1030AF89009001601821ED -:1078F00025C9FFFF0A000AEBAF8900843086000724 -:107900002CC2000610400014000000000006408059 -:107910003C030800246357BC010338218CE40000B9 -:1079200000800008000000002409000310A9000ED8 -:1079300000000000240A000510AA000B000000004F -:10794000240B000110AB0008000000008F8C00A089 -:1079500010AC00050000000003E00008000010214A -:107960000A000A7900A020210A000AC700C02021CD -:1079700027BDFFE8308400FF240300021083000BC2 -:10798000AFBF0010240600031086003A240800044C -:1079900010880068240E0005108E007F2CAF143074 -:1079A0008FBF001003E0000827BD00182CA2003094 -:1079B0001440FFFC8FBF001024A5FFD0000531C28A -:1079C000000668803C07080024E75EE001A730213C -:1079D0008CC900000005288230AC001F240B000178 -:1079E000018B50048F840048012A4025ACC8000058 -:1079F0008C83000050600001AF8600488F98006CB7 -:107A000030AE000124A6FFFF270F000115C00002C1 -:107A1000AF8F006C24A600010006414200082080C0 -:107A2000008718218C79000030C2001F2406000155 -:107A30000046F804033F382410E0FFDA8FBF00103F -:107A40000005C182001870803C0F080025EF5EA081 -:107A500001CF48218D2B00000005684231A5001F91 -:107A600000A66004016C502527BD001803E0000843 -:107A7000AD2A00002CA7003014E0FFCA8FBF001011 -:107A800030B900071723FFC724A8FFCE00086A02F9 -:107A9000000D60803C0B0800256B5EA0018B30213F -:107AA0008CC40000000828C230AA001F240800016E -:107AB000014848048F8200A400891825ACC3000047 -:107AC0008C5F000053E00001AF8600A40005704009 -:107AD000000E7942000F28803C04080024845EE0F8 -:107AE00000A418218C6B000025DF000131CD001FA0 -:107AF000001F514201A86004016C4825000A108053 -:107B0000AC690000004428218CA600008F9800601A -:107B100033F9001F8FBF00100328380400C77825F1 -:107B2000270E000127BD0018ACAF000003E00008DD -:107B3000AF8E006024A5EFD02CB804001300FF998D -:107B40008FBF001000053142000658803C0A080033 -:107B5000254A5E20016A30218CC4000030A3001F3A -:107B600024090001006910048F9900900082F82513 -:107B7000ACDF00008F27000050E00001AF860090CE -:107B80008F8D00848FBF001027BD001825AC000129 -:107B900003E00008AF8C008415E0FF828FBF001067 -:107BA0008F8600A0000610400046F821001F21002B -:107BB00003E4C8210019384024F8143000B8402BE1 -:107BC0001100FF788FBF001024A4EBD00E00021329 -:107BD00000C0282100027942000F70803C0D08008F -:107BE00025AD5F6001CD20218C8B0000304C001F43 -:107BF00024060001018618048F89008C016350253A -:107C0000AC8A00008D25000050A00001AF84008CDC -:107C10008F9800808FBF001027BD00182708000133 -:107C200003E00008AF88008030A5000724030003AC -:107C300010A3001028A2000414400008240700022A -:107C40002403000410A300152408000510A8000F49 -:107C50008F8500A003E000080000000014A7FFFDCE -:107C60000080282114C3FFFB240400020A000B8BB0 -:107C700000000000240900050080282110C9FFFB36 -:107C80002404000303E000080000000014C5FFF115 -:107C9000008028210A000B8B24040005240A00011F -:107CA0000080282110CAFFF12404000403E000082A -:107CB0000000000027BDFFE0AFB00010000581C24A -:107CC0002603FFD024C5003F2C6223D024C6007FAA -:107CD000AFB20018AFB10014AFBF001C309100FF6D -:107CE000000691C2000529820200202110400008F0 -:107CF0002403FFFF0E000A4B0000000002002021B9 -:107D0000022028210E000C390240302100001821E9 -:107D10008FBF001C8FB200188FB100148FB00010FD -:107D20000060102103E0000827BD002027BDFFD818 -:107D300024A2007FAFB3001CAFB20018000299C2AA -:107D4000309200FF24A3003F02402021026028213E -:107D5000AFB10014AFB00010AFBF00200E000B6E2B -:107D60000003898200408021004020210220282138 -:107D700014400009000018218FBF00208FB3001CA1 -:107D80008FB200188FB100148FB000100060102166 -:107D900003E0000827BD00280E0009FC00000000D9 -:107DA00000402821020020211051FFF3001019C0CB -:107DB0000E000A4B00000000020020210240282192 -:107DC0000E000C39026030218FBF00208FB3001CE1 -:107DD0008FB200188FB100148FB00010000018216E -:107DE0000060102103E0000827BD00283084FFFF59 -:107DF00030A5FFFF1080000700001821308200012D -:107E00001040000200042042006518211480FFFB8E -:107E10000005284003E000080060102110C00007A2 -:107E2000000000008CA2000024C6FFFF24A500046F -:107E3000AC82000014C0FFFB2484000403E00008AF -:107E40000000000010A0000824A3FFFFAC86000083 -:107E500000000000000000002402FFFF2463FFFF79 -:107E60001462FFFA2484000403E00008000000000C -:107E700030A5FFFF8F4201B80440FFFE3C076015AC -:107E800000A730253C031000AF440180AF400184BF -:107E9000AF46018803E00008AF4301B88F8500D0EA -:107EA0002C864000008018218CA700840087102BAE -:107EB00014400010000000008CA800842D06400033 -:107EC00050C0000F240340008CAA0084008A482B75 -:107ED000512000018CA3008400035A42000B208033 -:107EE0003C05080024A558200085182103E000085F -:107EF0008C62000014C0FFF4000000002403400066 -:107F000000035A42000B20803C05080024A558209D -:107F10000085182103E000088C6200008F8300D0E8 -:107F2000906600D024C50001A06500D08F8500D0E8 -:107F3000906400D090A200D210440017000000000E -:107F4000936C00788F8B00BC318A00FFA16A000C13 -:107F500025490001938700C4312200FF3048007F8B -:107F60001107000B00026827A36200788F4E01788A -:107F700005C0FFFE8F9900B0241800023C0F1000CE -:107F8000AF590140A358014403E00008AF4F017806 -:107F90000A000D0931A20080A0A000D00A000CFF49 -:107FA000000000008F8700D027BDFFC8AFBF0030A2 -:107FB000AFB7002CAFB60028AFB50024AFB4002097 -:107FC000AFB3001CAFB20018AFB10014AFB00010D7 -:107FD00094E300E094E200E2104300D72405FFFFA1 -:107FE0003C047FFF3497FFFF2415FF800A000DF04B -:107FF0003C16000E108A00D18FBF00308F9100B068 -:108000003C1808008F18005C001230C0001291402C -:108010000311702101D57824AF4F002C94EC00E2BD -:1080200031CD007F01BA5821318A7FFF0176482186 -:10803000000A804002091021945300003C08080007 -:108040008D0800580246C02132733FFF001319808B -:10805000010320210224282130BF007F03FAC82118 -:1080600000B5A024AF54002C0336A0218E87001049 -:108070008E8F003003785821256D008800EF702323 -:10808000240C0002AE8E0010AF8D00ACA16C0088F5 -:10809000976A003C8E8400308F9100AC0E000CD6A5 -:1080A0003150FFFF00024B80020940253C02420094 -:1080B00001022025AE2400048E8300048F8D00ACC5 -:1080C0008E860000240E0008ADA3001CADA600188B -:1080D000ADA0000CADA00010929F000A33F900FF84 -:1080E000A5B90014968500083C1F000CA5A5001634 -:1080F0009298000A331100FFA5B100209690000865 -:1081000024180005A5B00022ADA00024928F000B1A -:108110002410C00031E700FFA5A70002A1AE0001B6 -:108120008E8C00308F8B00AC8F8400B0AD6C00085B -:108130003C0A08008D4A005401444821013540247E -:10814000AF4800283C0208008C4200540044302113 -:1081500030C3007F007AC821033F282102458821CF -:10816000AF9100BCAF8500C0A23800008F8A00BC70 -:108170002403FFBF2418FFDF954F000201F03824CD -:1081800000F37025A54E0002914D000231AC003F76 -:10819000358B0040A14B00028F8600BC8F8900D038 -:1081A000ACC000048D28007C3C098000ACC80008ED -:1081B00090C4000D3082007FA0C2000D8F8500BCEE -:1081C00090BF000D03E3C824A0B9000D8F9100BC3F -:1081D0009233000D02789024A232000D8E9000346C -:1081E0008F8B00BCAD7000108E87002C8E8F0030FE -:1081F00000EF7023AD6E0014916D001831AC007F5C -:10820000A16C00188F9F00BC8E8A00308FE8001888 -:10821000015720240109302400C41025AFE20018C2 -:108220009283000AA3E3001C969900088F8500BC86 -:108230008F9800D0A4B9001E8E9000308E8400303C -:108240000E0002138F0500848F8500D0000291403C -:108250000002990090AF00BC0253882100403021F9 -:1082600031E7000210E0000302118021000290803B -:108270000212802190B900BC3327000410E00002F4 -:108280000006F880021F80218E9800308F8B00BC82 -:1082900024068000330F0003000F702331CD00034C -:1082A000020D6021AD6C000494A400E294AA00E2E7 -:1082B00094B000E231497FFF2522000130537FFF57 -:1082C0000206182400734025A4A800E294A400E24A -:1082D0003C1408008E94006030917FFF123400221D -:1082E000000000000E000CF6000000008F8700D098 -:1082F0000000282194F300E094F000E21213000F34 -:108300008FBF003090E900D090E800D1313200FFFB -:10831000310400FF0244302B14C0FF36264A00010E -:1083200090EE00D2264B000131CD00FF008D602180 -:10833000158BFF338F9100B08FBF00308FB7002CAB -:108340008FB600288FB500248FB400208FB3001C97 -:108350008FB200188FB100148FB0001000A0102150 -:1083600003E0000827BD003894A300E20066402423 -:10837000A4A800E290A400E290B900E2309100FFCE -:108380000011A1C20014F827001F39C03332007F4A -:10839000024730250A000DE8A0A600E23084FFFF66 -:1083A00030A5FFFFAF440018AF45001C03E00008F4 -:1083B0008F42001427BDFFB8AFB000208F9000D0CF -:1083C0003084FFFFAFA40010AFBF0044AFBE004039 -:1083D000AFB7003CAFB60038AFB50034AFB4003033 -:1083E000AFB3002CAFB20028AFB10024A7A0001893 -:1083F000920600D1920500D030C400FF30A300FFE8 -:108400000064102B10400122AFA00014920900D08C -:108410008FB50010312800FF0088382324F4FFFFB7 -:108420000014882B0015982B02339024524001260B -:108430008FB40014961E0012961F00108FB7001004 -:1084400003DFC823001714000019C400000224032E -:108450000018140302E2B02A52C00001004020219B -:108460000284282B10A0000200801821028018210D -:1084700000033C0000071C033064FFFF2C8600094A -:1084800014C000020060B821241700088E0A0008FA -:10849000001769808E09000C31ABFFFF3C0C001007 -:1084A000016C402527520400AF4A0038AF9200B853 -:1084B000AF49003CAF480030000000000000000061 -:1084C00000000000000000000000000000000000AC -:1084D00000000000000000008F4F000031EE00207F -:1084E00011C0FFFD0017982A027110240A000E83A4 -:1084F0000000B02155E001019258000131130080C5 -:10850000126001CF012020219655001232A5FFFFF5 -:108510000E000CCBA7B500188F9000D00291A023BD -:1085200026CD00018F9100B8000DB4000016B403F1 -:108530002638004002D7582A0014882B2405000151 -:108540000300902101711024AF9800B8AFA500146A -:10855000104001BC8F8900B03C0C08008D8C005489 -:10856000240BFF80921E00D001895021014B28244A -:10857000921900D0AF4500288E4700103C08080033 -:108580008D0800583C1808008F18005430E33FFF56 -:108590000003218001043021012658212402FF809C -:1085A0000162F824920C00D0AF5F002C92480000CA -:1085B00033D100FF333500FF0309982100117140CA -:1085C000001578C0326D007F01CF382101BA282113 -:1085D000318300FF3164007F3C0A000C00AA88212F -:1085E0000367F02100033140009A10213108003F59 -:1085F0003C1F000E00D1C021005F982127D90088C0 -:108600002D150008AF9100C0AF9900ACAF9800BC29 -:10861000AF9300B412A0018A00008821240E00014B -:10862000010E4004310D005D11A0FFB2310F0002B8 -:108630008E4A00283C0300803C04FFEFAE6A000035 -:108640008E450024A260000A3488FFFFAE65000456 -:108650009247002C3C1FFF9F37FEFFFFA267000CD4 -:108660008E62000C3C180040A267000B00433025CE -:1086700000C8C824033E88240238A825AE75000C23 -:108680008E490004AE6000183C0F00FFAE69001474 -:108690008E4D002C35EEFFFF8F8B00B001AE6024B5 -:1086A000AE6C00108E470008A660000896450012C8 -:1086B000AE6700208E42000C30B03FFF00105180AA -:1086C000AE6200248E5E0014014B182130A400011C -:1086D000AE7E00288E590018000331C2000443808A -:1086E000AE79002C8E51001C00C8F821A67F001C1A -:1086F000AE710030965800028E550020A678001EFC -:10870000AE75003492490033313000045600000544 -:10871000925000008F8C00D08D8B007CAE6B0030AF -:10872000925000008F8F00BCA1F00000924E0033E9 -:1087300031CD000251A00007925E00018F8900BC7C -:108740002418FF80913100000311A825A1350000F5 -:10875000925E00018F9900BC2409FFBF240BFFDF4C -:10876000A33E00018F9500BC92B8000D3311007F2D -:10877000A2B1000D8F8E00BC91D0000D02097824AB -:10878000A1CF000D8F8800BC8E6D0014910A000DE2 -:108790002DAC0001000C2940014B382400E51825C0 -:1087A000A103000D964200128F8800BC8F8700D075 -:1087B000A50200028E45000490FF00BC30A4000317 -:1087C0000004302330DE000300BE102133F9000224 -:1087D00017200002244400342444003090E200BCFE -:1087E00000A2302430DF000417E0000224830004DC -:1087F000008018218F8F00AC24090002AD03000413 -:10880000A1E90000924E003F8F8D00ACA1AE0001A7 -:108810008F9500AC924C003F8E440004A6AC000241 -:10882000976B003C0E000CD63170FFFF00025380A6 -:10883000020A38253C05420000E51825AEA30004D5 -:108840008F8600AC8E480038ACC800188E440034C7 -:10885000ACC4001CACC0000CACC00010A4C0001420 -:10886000A4C00016A4C00020A4C00022ACC00024F4 -:108870008E6400145080000124040001ACC4000880 -:108880000E000CF6241100010A000E768F9000D025 -:10889000920F00D2920E00D08FB5001031EB00FF86 -:1088A00031CD00FF008D6023016C50212554FFFF66 -:1088B0000014882B0015982B023390241640FEDDFF -:1088C000000000008FB400148FBF00448FBE004032 -:1088D0003A8200018FB7003C8FB600388FB5003464 -:1088E0008FB400308FB3002C8FB200288FB10024DA -:1088F0008FB0002003E0000827BD0048331100209E -:10890000122000EF24150001921E00BC241F00015C -:108910000000A82133D900011320000DAFBF001CB7 -:108920008E4400148E0800840088102B144000022E -:10893000008030218E0600848E03006400C3A82BC3 -:1089400016A0000200C020218E0400640080A8212F -:108950008E4700148E05006400E5302B14C0000221 -:1089600000E020218E0400640095F02313C0000471 -:108970008FAC001C240A0002AFAA001C8FAC001CA4 -:10898000028C582B156000A8000018218E4F00386B -:108990008E6D000C3C0E0080AE6F00008E4A0034DD -:1089A0003C10FF9F01AE5825AE6A00049246003F7E -:1089B000360CFFFF016C38243C0500203C03FFEF20 -:1089C000A266000B00E510253468FFFF8F8700B812 -:1089D0000048F8243C04000803E4C825AE79000CE4 -:1089E0008CF80014AE60001802BE7821AE78001436 -:1089F0008CF10018AE71001C8CE90008AE690024EF -:108A00008CEE000CAE6F002CAE600028AE6E002025 -:108A1000A6600038A660003A8CED001401B58023F2 -:108A2000021E902312400011AE72001090EA003D29 -:108A30008E6500048E640000000A310000A6C82183 -:108A4000000010210326402B0082F82103E8C021FA -:108A5000AE790004AE78000090F1003DA271000AEA -:108A60008F8900B895320006A67200088F9800AC76 -:108A70002419000202A02021A31900009769003CDC -:108A80008F9200AC0E000CD63131FFFF00027B80CC -:108A90008F8500B8022F68253C0E420001AE80256C -:108AA000AE5000048F8400AC8CAC0038AC8C001845 -:108AB0008CAB0034AC8B001CAC80000CAC80001084 -:108AC000A4800014A4800016A4800020A4800022AA -:108AD000AC80002490A7003FA487000212A00135BB -:108AE0002403000153C0000290A2003D90A2003E6A -:108AF00024480001A08800018F9F00ACAFF500085A -:108B00008F8300D024070034906600BC30C500027B -:108B100050A00001240700308F9200B88F8A00BC5B -:108B2000906D00BC924B00002412C00032A50003DF -:108B3000A14B00008F8600B88F8800BC240200047F -:108B400090C400010045182330790003A1040001FE -:108B50008F8A00BC8F9F00B800F53821955800021D -:108B600097E9001200F9382103128824312F3FFFC2 -:108B7000022F7025A54E00029150000231A800047A -:108B8000320C003F358B0040A14B000212A00002C6 -:108B90008F8500BC00E838218F8E00D0ACA7000480 -:108BA000240BFFBF8DCD007C2EA400012403FFDF2A -:108BB000ACAD000890B0000D00044140320C007FC5 -:108BC000A0AC000D8F8600BC90CA000D014B102494 -:108BD000A0C2000D8F8700BC90E5000D00A3F82413 -:108BE00003E8C825A0F9000D8F9100B88F8D00BC57 -:108BF0008E380020ADB800108E290024ADA90014D5 -:108C00008E2F0028ADAF00188E2E002C0E000CF613 -:108C1000ADAE001C8FB0001C240C0002120C00EE44 -:108C20008F9000D08FA3001C006088211460000288 -:108C30000060A8210000A02156A0FE390291A023C7 -:108C40000014882B8FA90010960700103C1E0020EE -:108C50000136402302C750213112FFFFA60A00103F -:108C6000AFB20010AF5E0030000000009617001099 -:108C7000961300121277008F000000008E05000C82 -:108C80008E0B00080016698000AD7021000DC7C36F -:108C900001CDA82B0178782101F56021AE0E000CE2 -:108CA000AE0C00088FB300100013B82B02378024DD -:108CB0001200FF048F9000D00A000E3C000000005C -:108CC0008E4D0038A6600008240B0003AE6D000036 -:108CD0008E500034A260000A8F9800B8AE70000475 -:108CE0003C0500809311003FA26B000C8E6F000CBE -:108CF0003C0EFF9FA271000B01E5102535CCFFFF54 -:108D00003C03FFEF8F9200B8004C30243464FFFF27 -:108D100000C4F824AE7F000C8E590014964800124F -:108D20008F8A00B0AE7900108E490014AE60001832 -:108D3000AE600020AE690014AE6000248E470018BB -:108D400031093FFF0009F180AE6700288E4D000811 -:108D500003CA802131180001AE6D00308E4F000C27 -:108D60008F8C00AC001089C200185B80022B282178 -:108D7000240E0002A665001CA6600036AE6F002C13 -:108D8000A18E00009763003C8F8A00AC3C04420037 -:108D90003062FFFF00443025AD4600048F9F00B8CD -:108DA000240700012411C0008FF30038240600348A -:108DB000AD5300188FF90034AD59001CAD40000CC4 -:108DC000AD400010A5400014A5400016A5400020AD -:108DD000A5400022AD400024A5550002A147000196 -:108DE0008F9E00AC8F8800B88F9200BCAFD5000872 -:108DF000910D0000A24D00008F9000B88F8B00BC39 -:108E000092180001A17800018F8400BC94850002B3 -:108E100000B1782401E97025A48E0002908C000234 -:108E20003183003FA08300028F8300D08F8400BC79 -:108E3000906200BC305300025260000124060030F2 -:108E4000AC8600048C6F007C2403FFBF02A0882145 -:108E5000AC8F0008908E000D31CC007FA08C000DEF -:108E60008F8600BC90C2000D00432024A0C4000DDA -:108E70008F8900BC913F000D37F90020A139000D0A -:108E80008F8800B88F9300BC8D070020AE6700105C -:108E90008D0A0024AE6A00148D1E0028AE7E0018D4 -:108EA0008D12002C0E000CF6AE72001C0A00103D54 -:108EB0008F9000D0960E00148E03000431CCFFFF7B -:108EC000000C10C000622021AF44003C8E1F000443 -:108ED0008F46003C03E6C8231B20003C0000000036 -:108EE0008E0F000025E200013C05001034B500089B -:108EF000AF420038AF550030000000000000000015 -:108F00000000000000000000000000000000000061 -:108F100000000000000000008F580000330B00200C -:108F20001160FFFD000000008F5304003C0D002085 -:108F3000AE1300088F570404AE17000CAF4D00307D -:108F4000000000003C0608008CC600442416000106 -:108F500010D600BD00000000961F00123C0508005E -:108F60008CA5004000BFC821A61900129609001464 -:108F700025270001A6070014960A00143144FFFFBC -:108F80005486FF498FB30010A60000140E000E1681 -:108F900030A5FFFF3C0408008C84002496030012D7 -:108FA0000044102300623023A60600120A00105964 -:108FB0008FB30010A08300018F8200AC2404000155 -:108FC000AC4400080A000FF08F8300D08E0200002E -:108FD0000A0010EA3C0500108F8200C08FA7001C19 -:108FE000921800D0920B00D0920E00D0331100FFE7 -:108FF000316900FF00117940000928C001E56021B6 -:1090000031C300FF036C50210003314000C2C8216E -:10901000255F0088AF9F00ACAF9900BCA1470088D6 -:109020009768003C03C020218F9100AC0E000CD645 -:109030003110FFFF00026B80020DC0253C0442008E -:109040008F8D00B803045825AE2B00048DA900387D -:109050008F8B00AC0000882100118100AD690018E1 -:109060008DAF00343C087FFF3504FFFFAD6F001C5F -:1090700091AC003E8D65001C8D660018000C190037 -:10908000000C770200A33821020E102500E3F82B14 -:1090900000C2C821033F5021AD67001CAD6A001813 -:1090A000AD60000CAD60001091B8003E24050005D5 -:1090B00003C45024A578001495A9000403C02021FE -:1090C000A569001691AF003EA56F002095B1000480 -:1090D000A5710022AD60002491AE003FA56E000294 -:1090E00091B0003E91AC003D01901023244300015B -:1090F000A16300018F8600AC8F9F00BCACDE00082E -:10910000A3E500008F9000BC8F9900B82405FFBF35 -:1091100096070002973800120247782433093FFF70 -:1091200001E98825A6110002921200022418FFDF2F -:10913000324E003F35CD0040A20D00028F8600BCAC -:109140008F8C00D02412FFFFACC000048D8B007CFC -:109150003C0C8000ACCB000890C2000D3043007F77 -:10916000A0C3000D8F8700BC90FF000D03E5C8244D -:10917000A0F9000D8F9100BC9229000D01387824D0 -:10918000A22F000D8F9000BCAE120010AE1500147F -:10919000920E00182415FF8002AE6825A20D00185B -:1091A0008F8500BC8F8300B88CAB0018016C102435 -:1091B000004A3025ACA600189068003EA0A8001C0C -:1091C0008F9F00B88F8700BC8F9800D097F900045C -:1091D000A4F9001E0E0002138F0500848F8600D0B4 -:1091E000000279400002490090D200BC01E98821C8 -:1091F000004028213255000212A0000303D1202193 -:109200000002A8800095202190CD00BC31B200045E -:109210001240000333DF0003000540800088202156 -:10922000240600048F9E00BC00DFC8233327000300 -:1092300000875021AFCA00040E000CF6A665003866 -:109240000A0010388F9000D0961E00123C080800CB -:109250008D080024011E9021A61200120A00105948 -:109260008FB3001027BDFFE03C1808008F18005096 -:10927000AFB00010AFBF0018AFB10014AF8400B0A2 -:1092800093710074030478212410FF8031EE007F75 -:109290003225007F01F0582401DA68213C0C000AD5 -:1092A000A38500C401AC2821AF4B002494A9001071 -:1092B0009768000690A600620080382124020030E2 -:1092C0000109202330C300F0AF8500D010620019DF -:1092D0003090FFFF90AE0062240DFFF0240A005092 -:1092E00001AE6024318B00FF116A002F00000000E6 -:1092F00016000007241F0C00AF5F00248FB100147C -:109300008FBF00188FB0001003E0000827BD0020B9 -:109310000E000E1C02002021241F0C00AF5F002451 -:109320008FB100148FBF00188FB0001003E0000849 -:1093300027BD002094A200E094A400E290BF011396 -:10934000008218263079FFFF33E700C014E00009DF -:109350002F31000116000038000000005620FFE603 -:10936000241F0C000E000D18000000000A0011ED73 -:10937000241F0C001620FFDE000000000E000D1858 -:10938000000000001440FFDC241F0C001600002227 -:109390008F8300D0906901133122003FA062011336 -:1093A0000A0011ED241F0C0094AF00D48F8600D466 -:1093B00000E02821240400050E000C5C31F0FFFFC2 -:1093C0001440000524030003979100E600001821D3 -:1093D0002625FFFFA78500E68F5801B80700FFFE8E -:1093E0003C196013AF400180241F0C00AF50018472 -:1093F000007938253C101000AF4701888FB1001468 -:10940000AF5001B8AF5F00248FB000108FBF0018BD -:1094100003E0000827BD00200E000E1C02002021E2 -:109420005040FFB5241F0C008F8300D090690113BA -:109430000A0012163122003F0E000E1C02002021ED -:109440001440FFAD241F0C00122000078F8300D0B2 -:10945000906801133106003F34C20040A06201133E -:109460000A0011ED241F0C000E000D180000000072 -:109470005040FFA1241F0C008F8300D0906801137F -:109480003106003F0A00124634C20040AF9B00C8BC -:1094900003E00008AF8000EC3089FFFF0009404284 -:1094A0002D020041000921801440000200095040B3 -:1094B00024080040000830C0000811400046582130 -:1094C000256701A800E2C821272F007F2418FF800C -:1094D00001F818240064302100CA702125CC00FF57 -:1094E000240DFF00018D202425650088240A0088B2 -:1094F0003C010800AC2A004C3C010800AC2500509F -:10950000AF8400D43C010800AC2900603C01080095 -:10951000AC2800643C010800AC2700543C01080062 -:10952000AC2300583C010800AC26005C03E00008B6 -:1095300000000000308300FF30C6FFFF30E400FF72 -:109540008F4201B80440FFFE00034C00012438257F -:109550003C08600000E820253C031000AF45018076 -:10956000AF460184AF44018803E00008AF4301B86F -:109570008F86001C3C096012352700108CCB00043C -:109580003C0C600E35850010316A00062D48000144 -:10959000ACE800C48CC40004ACA431808CC20008C8 -:1095A00094C30002ACA2318403E00008A78300E466 -:1095B0003C0308008C6300508F8400E88F86001CF9 -:1095C0002402FF800064C0210302C824AF59002890 -:1095D0008CCD00043305007F00BA78213C0E000CCE -:1095E00001EE2821ACAD00588CC80008AF8500D032 -:1095F0003C076012ACA8005C8CCC001034E8001072 -:10960000ACAC000C8CCB000CACAB000894AA0014E2 -:109610003C0208008C42004425490001A4A9001422 -:1096200094A400143083FFFF106200178F8400D0D1 -:109630003C0A08008D4A0040A4AA00128CCE0018F3 -:10964000AC8E00248CCD0014AC8D00208CC700188B -:10965000AC87002C8CCC001424060001AC8C0028B4 -:109660008D0B00BC5166001A8D0200B48D0200B84B -:10967000A482003A948F003AA48F003C948800D4CE -:1096800003E000083102FFFF3C0908008D29002497 -:10969000A4A000148F8400D0A4A900128CCE0018BE -:1096A000AC8E00248CCD0014AC8D00208CC700182B -:1096B000AC87002C8CCC001424060001AC8C002854 -:1096C0008D0B00BC5566FFEA8D0200B88D0200B418 -:1096D000A482003A948F003AA48F003C948800D46E -:1096E00003E000083102FFFF8F86001C3C0C0800DD -:1096F0008D8C0050240BFF808CCD00083C03000CA7 -:10970000000D51C0018A4021010B4824AF8A00E8B6 -:10971000AF49002890C700073105007F00BA10212B -:109720000043282130E4000410800039AF8500D0C8 -:1097300090CF000731EE000811C000380000000093 -:109740008CD9000C8CC400140324C02B13000030EF -:10975000000000008CC2000CACA200648CCD00188C -:109760002402FFF8ACAD00688CCC0010ACAC0080DB -:109770008CCB000CACAB00848CCA001CACAA007C67 -:1097800090A900BC01224024A0A800BC90C30007FF -:109790003067000810E000048F8500D090AF00BC57 -:1097A00035EE0001A0AE00BC90D9000733380001AF -:1097B000130000088F8300D08F8700D0240400346A -:1097C00090E800BC35030002A0E300BC8F8300D00A -:1097D000AC6400C090C900073126000210C000052B -:1097E00000000000906A00BC35420004A06200BC8A -:1097F0008F8300D09065011330AD003FA06D011341 -:109800008F8C00D0958B00D403E000083162FFFFFD -:109810008CC200140A001305000000000A001306A1 -:10982000ACA0006427BDFFD8AFB000108F90001C23 -:10983000AFBF0024AFB40020AFB20018AFB1001426 -:10984000AFB3001C9613000E3C07600A3C14600680 -:109850003264FFFF369300100E00125534F40410EA -:109860008F8400D43C11600E0E00099B363100102D -:10987000920E00153C0708008CE700603C12601255 -:1098800031CD000FA38D00F08E0E00048E0D000868 -:1098900096080012961F00109619001A9618001EBE -:1098A000960F001C310CFFFF33EBFFFF332AFFFF45 -:1098B0003309FFFF31E6FFFF3C010800AC2B0040FD -:1098C0003C010800AC2C00243C010800AC2A0044F8 -:1098D000AE293178AE26317C92020015960300162F -:1098E00036520010304400FF3065FFFF3C06080090 -:1098F0008CC60064AE243188AE4500B492080014D2 -:1099000096190018241F0001011FC004332FFFFF08 -:109910003C0508008CA50058AE5800B8AE4F00BCFE -:10992000920C0014AF8E00D8AF8D00DC318B00FF9D -:10993000AE4B00C0920A0015AE670048AE66004C00 -:10994000314900FFAE4900C8AE65007C3C03080009 -:109950008C6300503C0408008C84004C3C080800D8 -:109960008D0800543C0208008C42005C8FBF00242C -:10997000AE6300808FB00010AE8300748FB3001C04 -:10998000AE22319CAE4200DCAE2731A0AE2631A41F -:10999000AE24318CAE233190AE283194AE2531986F -:1099A000AE870050AE860054AE8500708FB10014B3 -:1099B000AE4700E0AE4600E4AE4400CCAE4300D07B -:1099C000AE4800D4AE4500D88FB400208FB2001846 -:1099D00003E0000827BD002827BDFFE0AFB1001459 -:1099E000AFBF0018241100010E000845AFB00010F1 -:1099F00010510005978400E6978300CC0083102B5C -:109A0000144000088F8500D4240700028FBF00187F -:109A10008FB100148FB0001000E0102103E00008A7 -:109A200027BD00200E000C7A24040005AF8200E858 -:109A30001040FFF6240700020E0008498F90001C1A -:109A4000979F00E68F9900E88F8D00C827EF0001EF -:109A5000240E0050AF590020A78F00E6A1AE0000F1 -:109A60003C0C08008D8C00648F8600C8240A80009E -:109A7000000C5E00ACCB0074A4C0000694C9000AC0 -:109A8000241FFF803C0D000C012AC024A4D8000A2A -:109A900090C8000A24182000011F1825A0C3000A3E -:109AA0008F8700C8A0E000788F8500C800003821AB -:109AB000A0A000833C0208008C4200508F8400E884 -:109AC0000044782101FFC824AF590028960B0002FA -:109AD00031EE007F01DA6021018D3021A4CB00D46A -:109AE000960A0002AF8600D03C0E000425492401EE -:109AF000A4C900E68E080004ACC800048E03000868 -:109B0000ACC30000A4C00010A4C00014A0C000D0CA -:109B10008F8500D02403FFBFA0A000D13C04080023 -:109B20008C8400648F8200D0A04400D28E1F000C71 -:109B30008F8A00D0978F00E4AD5F001C8E19001053 -:109B400024100030AD590018A5400030A551005434 -:109B5000A5510056A54F0016AD4E0068AD580080C7 -:109B6000AD580084914D006231AC000F358B001070 -:109B7000A14B00628F8600D090C900633128007F1E -:109B8000A0C800638F8400D02406FFFF9085006387 -:109B900000A31024A08200638F9100D000E0102168 -:109BA000923F00BC37F90001A23900BC8F8A00D077 -:109BB000938F00F0AD580064AD5000C0914E00D3BB -:109BC000000F690031CC000F018D5825A14B00D347 -:109BD0008F8500D08F8900DCACA900E88F8800D881 -:109BE0008FBF00188FB100148FB0001027BD002068 -:109BF000ACA800ECA4A600D6A4A000E0A4A000E2BB -:109C000003E000080000000027BDFFE0AFB0001037 -:109C10008F90001CAFB10014AFBF00188E19000464 -:109C20003C1808008F180050240FFF80001989C0CD -:109C30000238702131CD007F01CF602401BA50215C -:109C40003C0B000CAF4C0028014B4021950900D47F -:109C5000950400D68E0700043131FFFFAF8800D095 -:109C60000E000913000721C08E0600048F8300C870 -:109C7000000629C0AF4500209064003E30820040BD -:109C8000144000068F8400D0341FFFFF948300D659 -:109C90003062FFFF145F000400000000948400D6CF -:109CA0000E0008A83084FFFF8E050004022030213A -:109CB0008FBF00188FB100148FB000102404002251 -:109CC00000003821000529C00A00127C27BD0020B1 -:109CD00027BDFFE0AFB100143091FFFFAFB000101F -:109CE000AFBF00181220001D000080218F86001CCD -:109CF0008CC500002403000600053F020005140285 -:109D000030E4000714830015304500FF2CA800063E -:109D10001100004D000558803C0C0800258C57D4DC -:109D2000016C50218D490000012000080000000056 -:109D30008F8E00EC240D000111CD005900000000B1 -:109D4000260B00013170FFFF24CA00200211202BD6 -:109D5000014030211480FFE6AF8A001C0200102170 -:109D60008FBF00188FB100148FB0001003E00008FF -:109D700027BD0020938700CE14E00038240400148F -:109D80000E001338000000008F86001C2402000122 -:109D90000A00147FAF8200EC8F8900EC24080002D7 -:109DA0001128003B2404001300002821000030216A -:109DB000240700010E00127C000000000A00147F3E -:109DC0008F86001C8F8700EC2405000214E5FFF647 -:109DD000240400120E0012E9000000008F8500E844 -:109DE00000403021240400120E00127C00003821B3 -:109DF0000A00147F8F86001C8F8300EC241F000351 -:109E0000147FFFD0260B00010E00129B0000000003 -:109E10008F8500E800403021240200022404001055 -:109E200000003821AF8200EC0E00127C0000000020 -:109E30000A00147F8F86001C8F8F00EC240600021E -:109E400011E6000B0000000024040010000028218F -:109E5000000030210A00149C240700010000282182 -:109E60000E00127C000030210A00147F8F86001C37 -:109E70000E0013A500000000144000128F99001C72 -:109E80008F86001C240200030A00147FAF8200ECBE -:109E90000E001431000000000A00147F8F86001CA1 -:109EA0000E00128B000000002402000224040014A3 -:109EB0000000282100003021000038210A0014B9D8 -:109EC000AF8200EC004038212404001097380002D3 -:109ED000000028210E00127C3306FFFF0A00147FC9 -:109EE0008F86001C8F8400C83C077FFF34E6FFFF8D -:109EF0008C8500742402000100A61824AC83007431 -:109F000003E00008A082000510A000362CA200800B -:109F1000274A04003C0B000524090080104000077C -:109F20002408008030A6000F00C540212D030081C9 -:109F30001460000200A0482124080080AF4B0030CC -:109F400000000000000000000000000011000009F7 -:109F500000003821014030218C8D000024E70004EE -:109F600000E8602BACCD0000248400041580FFFACB -:109F700024C60004000000000000000000000000F3 -:109F80003C0E0006010E3825AF47003000000000EF -:109F900000000000000000008F4F000031E80010BA -:109FA0001100FFFD000000008F42003C8F43003C89 -:109FB0000049C8210323C02B130000040000000047 -:109FC0008F4C003825860001AF4600388F47003C93 -:109FD00000A9282300E96821AF4D003C14A0FFCE62 -:109FE0002CA2008003E000080000000027BDFFD085 -:109FF0003C020002AFB100143C11000CAF45003828 -:10A00000AFB3001CAF46003C00809821AF42003047 -:10A0100024050088AF44002803512021AFBF002849 -:10A02000AFB50024AFB40020AFB200180E0014F199 -:10A03000AFB000103C1F08008FFF004C3C18080018 -:10A040008F1800642410FF8003F3A82132B9007F29 -:10A0500002B078240018A0C0033A70210018914083 -:10A0600001D12021AF4F00280E0014F10254282105 -:10A070003C0D08008DAD00502405012001B358218E -:10A08000316C007F01705024019A48210131202158 -:10A090000E0014F1AF4A00283C0808008D08005457 -:10A0A0003C0508008CA500640113382130E6007FD0 -:10A0B00000F0182400DA202100912021AF4300286D -:10A0C0000E0014F1000529403C0208008C420058A3 -:10A0D0003C1008008E1000601200001C0053882104 -:10A0E0002415FF800A0015743C14000C3226007FF2 -:10A0F0000235182400DA202102402821AF4300282D -:10A10000009420210E0014F12610FFC01200000F51 -:10A11000023288212E05004110A0FFF42412100005 -:10A120003226007F001091800235182400DA2021A9 -:10A1300002402821AF430028009420210E0014F192 -:10A14000000080211600FFF3023288213C0B08003A -:10A150008D6B005C240AFF802405000201734021FE -:10A16000010A4824AF4900283C0408009484006296 -:10A170003110007F021A88213C07000C0E000CAA47 -:10A180000227982100402821026020218FBF00284B -:10A190008FB500248FB400208FB3001C8FB200183D -:10A1A0008FB100148FB000100A0014F127BD0030E9 -:10A1B0008F83001C8C62000410400003000000002C -:10A1C00003E00008000000008C6400108C650008AB -:08A1D0000A00152A8C66000C40 -:08A1D800000000000000001B64 -:10A1E0000000000F0000000A000000080000000648 -:10A1F000000000050000000500000004000000044D -:10A200000000000300000003000000030000000342 -:10A210000000000300000002000000020000000235 -:10A220000000000200000002000000020000000226 -:10A230000000000200000002000000020000000216 -:10A240000000000200000002000000020000000206 -:0CA25000000000010000000100000001FF -:04A25C0008000F24C3 -:10A2600008000D6C08000FB80800106008000F4CC3 -:10A2700008000F8C0800119408000D88080011B820 -:10A2800008000DD8080015540800151C08000D889A -:10A2900008000D8808000D880800124008001240D0 -:10A2A00008000D8808000D88080014E008000D88DB -:10A2B00008000D8808000D8808000D88080013B4F8 -:10A2C00008000D8808000D8808000D8808000D881A -:10A2D00008000D8808000D8808000D8808000D880A -:10A2E00008000D8808000D8808000D8808000D88FA -:10A2F00008000D8808000D8808000FAC08000D88C4 -:10A3000008000D880800167808000D8808000D88E0 -:10A3100008000D8808000D8808000D8808000D88C9 -:10A3200008000D8808000D8808000D8808000D88B9 -:10A3300008000D8808000D8808000D8808000D88A9 -:10A3400008000D8808000D8808000D88080014100A -:10A3500008000D8808000D8808001334080012A4B6 -:10A3600008001E2C08001EFC08001F1408001F28EF -:10A3700008001F3808001E2C08001E2C08001E2C88 -:10A3800008001ED808002E1408002E1C08002DE41A -:10A3900008002DF008002DFC08002E08080052F4DB -:10A3A000080052B40800528008005254080052308D -:04A3B000080051EC64 -:0CA3B4000A000C84000000000000000003 -:10A3C0000000000D727870362E322E310000000031 -:10A3D0000602010300000000000000010000000070 -:10A3E000000000000000000000000000000000006D -:10A3F000000000000000000000000000000000005D -:10A40000000000000000000000000000000000004C -:10A41000000000000000000000000000000000003C -:10A42000000000000000000000000000000000002C -:10A43000000000000000000000000000000000001C -:10A44000000000000000000000000000000000000C -:10A4500000000000000000000000000000000000FC -:10A4600000000000000000000000000000000000EC -:10A4700000000000000000000000000000000000DC -:10A4800000000000000000000000000000000000CC -:10A4900000000000000000000000000000000000BC -:10A4A00000000000000000000000000000000000AC -:10A4B000000000000000000000000000000000009C -:10A4C000000000000000000000000000000000008C -:10A4D000000000000000000000000000000000007C -:10A4E000000000000000000000000000000000006C -:10A4F000000000000000000000000000000000005C -:10A50000000000000000000000000000000000004B -:10A51000000000000000000000000000000000003B -:10A52000000000000000000000000000000000002B -:10A53000000000000000000000000000000000001B -:10A54000000000000000000000000000000000000B -:10A5500000000000000000000000000000000000FB -:10A5600000000000000000000000000000000000EB -:10A5700000000000000000000000000000000000DB -:10A5800000000000000000000000000000000000CB -:10A5900000000000000000000000000000000000BB -:10A5A00000000000000000000000000000000000AB -:10A5B000000000000000000000000000000000009B -:10A5C000000000000000000000000000000000008B -:10A5D000000000000000000000000000000000007B -:10A5E000000000000000000000000000000000006B -:10A5F000000000000000000000000000000000005B -:10A60000000000000000000000000000000000004A -:10A61000000000000000000000000000000000003A -:10A62000000000000000000000000000000000002A -:10A63000000000000000000000000000000000001A -:10A64000000000000000000000000000000000000A -:10A6500000000000000000000000000000000000FA -:10A6600000000000000000000000000000000000EA -:10A6700000000000000000000000000000000000DA -:10A6800000000000000000000000000000000000CA -:10A6900000000000000000000000000000000000BA -:10A6A00000000000000000000000000000000000AA -:10A6B000000000000000000000000000000000009A -:10A6C000000000000000000000000000000000008A -:10A6D000000000000000000000000000000000007A -:10A6E000000000000000000000000000000000006A -:10A6F000000000000000000000000000000000005A -:10A700000000000000000000000000000000000049 -:10A710000000000000000000000000000000000039 -:10A720000000000000000000000000000000000029 -:10A730000000000000000000000000000000000019 -:10A740000000000000000000000000000000000009 -:10A7500000000000000000000000000000000000F9 -:10A7600000000000000000000000000000000000E9 -:10A7700000000000000000000000000000000000D9 -:10A7800000000000000000000000000000000000C9 -:10A7900000000000000000000000000000000000B9 -:10A7A00000000000000000000000000000000000A9 -:10A7B0000000000000000000000000000000000099 -:10A7C0000000000000000000000000000000000089 -:10A7D0000000000000000000000000000000000079 -:10A7E0000000000000000000000000000000000069 -:10A7F0000000000000000000000000000000000059 -:10A800000000000000000000000000000000000048 -:10A810000000000000000000000000000000000038 -:10A820000000000000000000000000000000000028 -:10A830000000000000000000000000000000000018 -:10A840000000000000000000000000000000000008 -:10A8500000000000000000000000000000000000F8 -:10A8600000000000000000000000000000000000E8 -:10A8700000000000000000000000000000000000D8 -:10A8800000000000000000000000000000000000C8 -:10A8900000000000000000000000000000000000B8 -:10A8A00000000000000000000000000000000000A8 -:10A8B0000000000000000000000000000000000098 -:10A8C0000000000000000000000000000000000088 -:10A8D0000000000000000000000000000000000078 -:10A8E0000000000000000000000000000000000068 -:10A8F0000000000000000000000000000000000058 -:10A900000000000000000000000000000000000047 -:10A910000000000000000000000000000000000037 -:10A920000000000000000000000000000000000027 -:10A930000000000000000000000000000000000017 -:10A940000000000000000000000000000000000007 -:10A9500000000000000000000000000000000000F7 -:10A9600000000000000000000000000000000000E7 -:10A9700000000000000000000000000000000000D7 -:10A9800000000000000000000000000000000000C7 -:10A9900000000000000000000000000000000000B7 -:10A9A00000000000000000000000000000000000A7 -:10A9B0000000000000000000000000000000000097 -:10A9C0000000000000000000000000000000000087 -:10A9D0000000000000000000000000000000000077 -:10A9E0000000000000000000000000000000000067 -:10A9F0000000000000000000000000000000000057 -:10AA00000000000000000000000000000000000046 -:10AA10000000000000000000000000000000000036 -:10AA20000000000000000000000000000000000026 -:10AA30000000000000000000000000000000000016 -:10AA40000000000000000000000000000000000006 -:10AA500000000000000000000000000000000000F6 -:10AA600000000000000000000000000000000000E6 -:10AA700000000000000000000000000000000000D6 -:10AA800000000000000000000000000000000000C6 -:10AA900000000000000000000000000000000000B6 -:10AAA00000000000000000000000000000000000A6 -:10AAB0000000000000000000000000000000000096 -:10AAC0000000000000000000000000000000000086 -:10AAD0000000000000000000000000000000000076 -:10AAE0000000000000000000000000000000000066 -:10AAF0000000000000000000000000000000000056 -:10AB00000000000000000000000000000000000045 -:10AB10000000000000000000000000000000000035 -:10AB20000000000000000000000000000000000025 -:10AB30000000000000000000000000000000000015 -:10AB40000000000000000000000000000000000005 -:10AB500000000000000000000000000000000000F5 -:10AB600000000000000000000000000000000000E5 -:10AB700000000000000000000000000000000000D5 -:10AB800000000000000000000000000000000000C5 -:10AB900000000000000000000000000000000000B5 -:10ABA00000000000000000000000000000000000A5 -:10ABB0000000000000000000000000000000000095 -:10ABC0000000000000000000000000000000000085 -:10ABD0000000000000000000000000000000000075 -:10ABE0000000000000000000000000000000000065 -:10ABF0000000000000000000000000000000000055 -:10AC00000000000000000000000000000000000044 -:10AC10000000000000000000000000000000000034 -:10AC20000000000000000000000000000000000024 -:10AC30000000000000000000000000000000000014 -:10AC40000000000000000000000000000000000004 -:10AC500000000000000000000000000000000000F4 -:10AC600000000000000000000000000000000000E4 -:10AC700000000000000000000000000000000000D4 -:10AC800000000000000000000000000000000000C4 -:10AC900000000000000000000000000000000000B4 -:10ACA00000000000000000000000000000000000A4 -:10ACB0000000000000000000000000000000000094 -:10ACC0000000000000000000000000000000000084 -:10ACD0000000000000000000000000000000000074 -:10ACE0000000000000000000000000000000000064 -:10ACF0000000000000000000000000000000000054 -:10AD00000000000000000000000000000000000043 -:10AD10000000000000000000000000000000000033 -:10AD20000000000000000000000000000000000023 -:10AD30000000000000000000000000000000000013 -:10AD40000000000000000000000000000000000003 -:10AD500000000000000000000000000000000000F3 -:10AD600000000000000000000000000000000000E3 -:10AD700000000000000000000000000000000000D3 -:10AD800000000000000000000000000000000000C3 -:10AD900000000000000000000000000000000000B3 -:10ADA00000000000000000000000000000000000A3 -:10ADB0000000000000000000000000000000000093 -:10ADC0000000000000000000000000000000000083 -:10ADD0000000000000000000000000000000000073 -:10ADE0000000000000000000000000000000000063 -:10ADF0000000000000000000000000000000000053 -:10AE00000000000000000000000000000000000042 -:10AE10000000000000000000000000000000000032 -:10AE20000000000000000000000000000000000022 -:10AE30000000000000000000000000000000000012 -:10AE40000000000000000000000000000000000002 -:10AE500000000000000000000000000000000000F2 -:10AE600000000000000000000000000000000000E2 -:10AE700000000000000000000000000000000000D2 -:10AE800000000000000000000000000000000000C2 -:10AE900000000000000000000000000000000000B2 -:10AEA00000000000000000000000000000000000A2 -:10AEB0000000000000000000000000000000000092 -:10AEC0000000000000000000000000000000000082 -:10AED0000000000000000000000000000000000072 -:10AEE0000000000000000000000000000000000062 -:10AEF0000000000000000000000000000000000052 -:10AF00000000000000000000000000000000000041 -:10AF10000000000000000000000000000000000031 -:10AF20000000000000000000000000000000000021 -:10AF30000000000000000000000000000000000011 -:10AF40000000000000000000000000000000000001 -:10AF500000000000000000000000000000000000F1 -:10AF600000000000000000000000000000000000E1 -:10AF700000000000000000000000000000000000D1 -:10AF800000000000000000000000000000000000C1 -:10AF900000000000000000000000000000000000B1 -:10AFA00000000000000000000000000000000000A1 -:10AFB0000000000000000000000000000000000091 -:10AFC0000000000000000000000000000000000081 -:10AFD0000000000000000000000000000000000071 -:10AFE0000000000000000000000000000000000061 -:10AFF0000000000000000000000000000000000051 -:10B000000000000000000000000000000000000040 -:10B010000000000000000000000000000000000030 -:10B020000000000000000000000000000000000020 -:10B030000000000000000000000000000000000010 -:10B040000000000000000000000000000000000000 -:10B0500000000000000000000000000000000000F0 -:10B0600000000000000000000000000000000000E0 -:10B0700000000000000000000000000000000000D0 -:10B0800000000000000000000000000000000000C0 -:10B0900000000000000000000000000000000000B0 -:10B0A00000000000000000000000000000000000A0 -:10B0B0000000000000000000000000000000000090 -:10B0C0000000000000000000000000000000000080 -:10B0D0000000000000000000000000000000000070 -:10B0E0000000000000000000000000000000000060 -:10B0F0000000000000000000000000000000000050 -:10B10000000000000000000000000000000000003F -:10B11000000000000000000000000000000000002F -:10B12000000000000000000000000000000000001F -:10B13000000000000000000000000000000000000F -:10B1400000000000000000000000000000000000FF -:10B1500000000000000000000000000000000000EF -:10B1600000000000000000000000000000000000DF -:10B1700000000000000000000000000000000000CF -:10B1800000000000000000000000000000000000BF -:10B1900000000000000000000000000000000000AF -:10B1A000000000000000000000000000000000009F -:10B1B000000000000000000000000000000000008F -:10B1C000000000000000000000000000000000007F -:10B1D000000000000000000000000000000000006F -:10B1E000000000000000000000000000000000005F -:10B1F000000000000000000000000000000000004F -:10B20000000000000000000000000000000000003E -:10B21000000000000000000000000000000000002E -:10B22000000000000000000000000000000000001E -:10B23000000000000000000000000000000000000E -:10B2400000000000000000000000000000000000FE -:10B2500000000000000000000000000000000000EE -:10B2600000000000000000000000000000000000DE -:10B2700000000000000000000000000000000000CE -:10B2800000000000000000000000000000000000BE -:10B2900000000000000000000000000000000000AE -:10B2A000000000000000000000000000000000009E -:10B2B000000000000000000000000000000000008E -:10B2C000000000000000000000000000000000007E -:10B2D000000000000000000000000000000000006E -:10B2E000000000000000000000000000000000005E -:10B2F000000000000000000000000000000000004E -:10B30000000000000000000000000000000000003D -:10B31000000000000000000000000000000000002D -:10B32000000000000000000000000000000000001D -:10B33000000000000000000000000000000000000D -:10B3400000000000000000000000000000000000FD -:10B3500000000000000000000000000000000000ED -:10B3600000000000000000000000000000000000DD -:10B3700000000000000000000000000000000000CD -:10B3800000000000000000000000000000000000BD -:10B3900000000000000000000000000000000000AD -:10B3A000000000000000000000000000000000009D -:10B3B000000000000000000000000000000000008D -:10B3C000000000000000000000000000000000007D -:10B3D000000000000000000000000000000000006D -:10B3E000000000000000000000000000000000005D -:10B3F000000000000000000000000000000000004D -:10B40000000000000000000000000000000000003C -:10B41000000000000000000000000000000000002C -:10B42000000000000000000000000000000000001C -:10B43000000000000000000000000000000000000C -:10B4400000000000000000000000000000000000FC -:10B4500000000000000000000000000000000000EC -:10B4600000000000000000000000000000000000DC -:10B4700000000000000000000000000000000000CC -:10B4800000000000000000000000000000000000BC -:10B4900000000000000000000000000000000000AC -:10B4A000000000000000000000000000000000009C -:10B4B000000000000000000000000000000000008C -:10B4C000000000000000000000000000000000007C -:10B4D000000000000000000000000000000000006C -:10B4E000000000000000000000000000000000005C -:10B4F000000000000000000000000000000000004C -:10B50000000000000000000000000000000000003B -:10B51000000000000000000000000000000000002B -:10B52000000000000000000000000000000000001B -:10B53000000000000000000000000000000000000B -:10B5400000000000000000000000000000000000FB -:10B5500000000000000000000000000000000000EB -:10B5600000000000000000000000000000000000DB -:10B5700000000000000000000000000000000000CB -:10B5800000000000000000000000000000000000BB -:10B5900000000000000000000000000000000000AB -:10B5A000000000000000000000000000000000009B -:10B5B000000000000000000000000000000000008B -:10B5C000000000000000000000000000000000007B -:10B5D000000000000000000000000000000000006B -:10B5E000000000000000000000000000000000005B -:10B5F000000000000000000000000000000000004B -:10B60000000000000000000000000000000000003A -:10B61000000000000000000000000000000000002A -:10B62000000000000000000000000000000000001A -:10B63000000000000000000000000000000000000A -:10B6400000000000000000000000000000000000FA -:10B6500000000000000000000000000000000000EA -:10B6600000000000000000000000000000000000DA -:10B6700000000000000000000000000000000000CA -:10B6800000000000000000000000000000000000BA -:10B6900000000000000000000000000000000000AA -:10B6A000000000000000000000000000000000009A -:10B6B000000000000000000000000000000000008A -:10B6C000000000000000000000000000000000007A -:10B6D000000000000000000000000000000000006A -:10B6E000000000000000000000000000000000005A -:10B6F000000000000000000000000000000000004A -:10B700000000000000000000000000000000000039 -:10B710000000000000000000000000000000000029 -:10B720000000000000000000000000000000000019 -:10B730000000000000000000000000000000000009 -:10B7400000000000000000000000000000000000F9 -:10B7500000000000000000000000000000000000E9 -:10B7600000000000000000000000000000000000D9 -:10B7700000000000000000000000000000000000C9 -:10B7800000000000000000000000000000000000B9 -:10B7900000000000000000000000000000000000A9 -:10B7A0000000000000000000000000000000000099 -:10B7B0000000000000000000000000000000000089 -:10B7C0000000000000000000000000000000000079 -:10B7D0000000000000000000000000000000000069 -:10B7E0000000000000000000000000000000000059 -:10B7F0000000000000000000000000000000000049 -:10B800000000000000000000000000000000000038 -:10B810000000000000000000000000000000000028 -:10B820000000000000000000000000000000000018 -:10B830000000000000000000000000000000000008 -:10B8400000000000000000000000000000000000F8 -:10B8500000000000000000000000000000000000E8 -:10B8600000000000000000000000000000000000D8 -:10B8700000000000000000000000000000000000C8 -:10B8800000000000000000000000000000000000B8 -:10B8900000000000000000000000000000000000A8 -:10B8A0000000000000000000000000000000000098 -:10B8B0000000000000000000000000000000000088 -:10B8C0000000000000000000000000000000000078 -:10B8D0000000000000000000000000000000000068 -:10B8E0000000000000000000000000000000000058 -:10B8F0000000000000000000000000000000000048 -:10B900000000000000000000000000000000000037 -:10B910000000000000000000000000000000000027 -:10B920000000000000000000000000000000000017 -:10B930000000000000000000000000000000000007 -:10B9400000000000000000000000000000000000F7 -:10B9500000000000000000000000000000000000E7 -:10B9600000000000000000000000000000000000D7 -:10B9700000000000000000000000000000000000C7 -:10B9800000000000000000000000000000000000B7 -:10B9900000000000000000000000000000000000A7 -:10B9A0000000000000000000000000000000000097 -:10B9B0000000000000000000000000000000000087 -:10B9C0000000000000000000000000000000000077 -:10B9D0000000000000000000000000000000000067 -:10B9E0000000000000000000000000000000000057 -:10B9F0000000000000000000000000000000000047 -:10BA00000000000000000000000000000000000036 -:10BA10000000000000000000000000000000000026 -:10BA20000000000000000000000000000000000016 -:10BA30000000000000000000000000000000000006 -:10BA400000000000000000000000000000000000F6 -:10BA500000000000000000000000000000000000E6 -:10BA600000000000000000000000000000000000D6 -:10BA700000000000000000000000000000000000C6 -:10BA800000000000000000000000000000000000B6 -:10BA900000000000000000000000000000000000A6 -:10BAA0000000000000000000000000000000000096 -:10BAB0000000000000000000000000000000000086 -:10BAC0000000000000000000000000000000000076 -:10BAD0000000000000000000000000000000000066 -:10BAE0000000000000000000000000000000000056 -:10BAF0000000000000000000000000000000000046 -:10BB00000000000000000000000000000000000035 -:10BB10000000000000000000000000000000000025 -:10BB20000000000000000000000000000000000015 -:10BB30000000000000000000000000000000000005 -:10BB400000000000000000000000000000000000F5 -:10BB500000000000000000000000000000000000E5 -:10BB600000000000000000000000000000000000D5 -:10BB700000000000000000000000000000000000C5 -:10BB800000000000000000000000000000000000B5 -:10BB900000000000000000000000000000000000A5 -:10BBA0000000000000000000000000000000000095 -:10BBB0000000000000000000000000000000000085 -:10BBC0000000000000000000000000000000000075 -:10BBD0000000000000000000000000000000000065 -:10BBE0000000000000000000000000000000000055 -:10BBF0000000000000000000000000000000000045 -:10BC00000000000000000000000000000000000034 -:10BC10000000000000000000000000000000000024 -:10BC20000000000000000000000000000000000014 -:10BC30000000000000000000000000000000000004 -:10BC400000000000000000000000000000000000F4 -:10BC500000000000000000000000000000000000E4 -:10BC600000000000000000000000000000000000D4 -:10BC700000000000000000000000000000000000C4 -:10BC800000000000000000000000000000000000B4 -:10BC900000000000000000000000000000000000A4 -:10BCA0000000000000000000000000000000000094 -:10BCB0000000000000000000000000000000000084 -:10BCC0000000000000000000000000000000000074 -:10BCD0000000000000000000000000000000000064 -:10BCE0000000000000000000000000000000000054 -:10BCF0000000000000000000000000000000000044 -:10BD00000000000000000000000000000000000033 -:10BD10000000000000000000000000000000000023 -:10BD20000000000000000000000000000000000013 -:10BD30000000000000000000000000000000000003 -:10BD400000000000000000000000000000000000F3 -:10BD500000000000000000000000000000000000E3 -:10BD600000000000000000000000000000000000D3 -:10BD700000000000000000000000000000000000C3 -:10BD800000000000000000000000000000000000B3 -:10BD900000000000000000000000000000000000A3 -:10BDA0000000000000000000000000000000000093 -:10BDB0000000000000000000000000000000000083 -:10BDC0000000000000000000000000000000000073 -:10BDD0000000000000000000000000000000000063 -:10BDE0000000000000000000000000000000000053 -:10BDF0000000000000000000000000000000000043 -:10BE00000000000000000000000000000000000032 -:10BE10000000000000000000000000000000000022 -:10BE20000000000000000000000000000000000012 -:10BE30000000000000000000000000000000000002 -:10BE400000000000000000000000000000000000F2 -:10BE500000000000000000000000000000000000E2 -:10BE600000000000000000000000000000000000D2 -:10BE700000000000000000000000000000000000C2 -:10BE800000000000000000000000000000000000B2 -:10BE900000000000000000000000000000000000A2 -:10BEA0000000000000000000000000000000000092 -:10BEB0000000000000000000000000000000000082 -:10BEC0000000000000000000000000000000000072 -:10BED0000000000000000000000000000000000062 -:10BEE0000000000000000000000000000000000052 -:10BEF0000000000000000000000000000000000042 -:10BF00000000000000000000000000000000000031 -:10BF10000000000000000000000000000000000021 -:10BF20000000000000000000000000000000000011 -:10BF30000000000000000000000000000000000001 -:10BF400000000000000000000000000000000000F1 -:10BF500000000000000000000000000000000000E1 -:10BF600000000000000000000000000000000000D1 -:10BF700000000000000000000000000000000000C1 -:10BF800000000000000000000000000000000000B1 -:10BF900000000000000000000000000000000000A1 -:10BFA0000000000000000000000000000000000091 -:10BFB0000000000000000000000000000000000081 -:10BFC0000000000000000000000000000000000071 -:10BFD0000000000000000000000000000000000061 -:10BFE0000000000000000000000000000000000051 -:10BFF0000000000000000000000000000000000041 -:10C000000000000000000000000000000000000030 -:10C010000000000000000000000000000000000020 -:10C020000000000000000000000000000000000010 -:10C030000000000000000000000000000000000000 -:10C0400000000000000000000000000000000000F0 -:10C0500000000000000000000000000000000000E0 -:10C0600000000000000000000000000000000000D0 -:10C0700000000000000000000000000000000000C0 -:10C0800000000000000000000000000000000000B0 -:10C0900000000000000000000000000000000000A0 -:10C0A0000000000000000000000000000000000090 -:10C0B0000000000000000000000000000000000080 -:10C0C0000000000000000000000000000000000070 -:10C0D0000000000000000000000000000000000060 -:10C0E0000000000000000000000000000000000050 -:10C0F0000000000000000000000000000000000040 -:10C10000000000000000000000000000000000002F -:10C11000000000000000000000000000000000001F -:10C12000000000000000000000000000000000000F -:10C1300000000000000000000000000000000000FF -:10C1400000000000000000000000000000000000EF -:10C1500000000000000000000000000000000000DF -:10C1600000000000000000000000000000000000CF -:10C1700000000000000000000000000000000000BF -:10C1800000000000000000000000000000000000AF -:10C19000000000000000000000000000000000009F -:10C1A000000000000000000000000000000000008F -:10C1B000000000000000000000000000000000007F -:10C1C000000000000000000000000000000000006F -:10C1D000000000000000000000000000000000005F -:10C1E000000000000000000000000000000000004F -:10C1F000000000000000000000000000000000003F -:10C20000000000000000000000000000000000002E -:10C21000000000000000000000000000000000001E -:10C22000000000000000000000000000000000000E -:10C2300000000000000000000000000000000000FE -:10C2400000000000000000000000000000000000EE -:10C2500000000000000000000000000000000000DE -:10C2600000000000000000000000000000000000CE -:10C2700000000000000000000000000000000000BE -:10C2800000000000000000000000000000000000AE -:10C29000000000000000000000000000000000009E -:10C2A000000000000000000000000000000000008E -:10C2B000000000000000000000000000000000007E -:10C2C000000000000000000000000000000000006E -:10C2D000000000000000000000000000000000005E -:10C2E000000000000000000000000000000000004E -:10C2F000000000000000000000000000000000003E -:10C30000000000000000000000000000000000002D -:10C31000000000000000000000000000000000001D -:10C32000000000000000000000000000000000000D -:10C3300000000000000000000000000000000000FD -:10C3400000000000000000000000000000000000ED -:10C3500000000000000000000000000000000000DD -:10C3600000000000000000000000000000000000CD -:10C3700000000000000000000000000000000000BD -:10C3800000000000000000000000000000000000AD -:10C39000000000000000000000000000000000009D -:10C3A000000000000000000000000000000000008D -:10C3B000000000000000000000000000000000007D -:10C3C000000000000000000000000000000000006D -:10C3D000000000000000000000000000000000005D -:10C3E000000000000000000000000000000000004D -:10C3F000000000000000000000000000000000003D -:10C40000000000000000000000000000000000002C -:10C41000000000000000000000000000000000001C -:10C42000000000000000000000000000000000000C -:10C4300000000000000000000000000000000000FC -:10C4400000000000000000000000000000000000EC -:10C4500000000000000000000000000000000000DC -:10C4600000000000000000000000000000000000CC -:10C4700000000000000000000000000000000000BC -:10C4800000000000000000000000000000000000AC -:10C49000000000000000000000000000000000009C -:10C4A000000000000000000000000000000000008C -:10C4B000000000000000000000000000000000007C -:10C4C000000000000000000000000000000000006C -:10C4D000000000000000000000000000000000005C -:10C4E000000000000000000000000000000000004C -:10C4F000000000000000000000000000000000003C -:10C50000000000000000000000000000000000002B -:10C51000000000000000000000000000000000001B -:10C52000000000000000000000000000000000000B -:10C5300000000000000000000000000000000000FB -:10C5400000000000000000000000000000000000EB -:10C5500000000000000000000000000000000000DB -:10C5600000000000000000000000000000000000CB -:10C5700000000000000000000000000000000000BB -:10C5800000000000000000000000000000000000AB -:10C59000000000000000000000000000000000009B -:10C5A000000000000000000000000000000000008B -:10C5B000000000000000000000000000000000007B -:10C5C000000000000000000000000000000000006B -:10C5D000000000000000000000000000000000005B -:10C5E000000000000000000000000000000000004B -:10C5F000000000000000000000000000000000003B -:10C60000000000000000000000000000000000002A -:10C61000000000000000000000000000000000001A -:10C62000000000000000000000000000000000000A -:10C6300000000000000000000000000000000000FA -:10C6400000000000000000000000000000000000EA -:10C6500000000000000000000000000000000000DA -:10C6600000000000000000000000000000000000CA -:10C6700000000000000000000000000000000000BA -:10C6800000000000000000000000000000000000AA -:10C69000000000000000000000000000000000009A -:10C6A000000000000000000000000000000000008A -:10C6B000000000000000000000000000000000007A -:10C6C000000000000000000000000000000000006A -:10C6D000000000000000000000000000000000005A -:10C6E000000000000000000000000000000000004A -:10C6F000000000000000000000000000000000003A -:10C700000000000000000000000000000000000029 -:10C710000000000000000000000000000000000019 -:10C720000000000000000000000000000000000009 -:10C7300000000000000000000000000000000000F9 -:10C7400000000000000000000000000000000000E9 -:10C7500000000000000000000000000000000000D9 -:10C7600000000000000000000000000000000000C9 -:10C7700000000000000000000000000000000000B9 -:10C7800000000000000000000000000000000000A9 -:10C790000000000000000000000000000000000099 -:10C7A0000000000000000000000000000000000089 -:10C7B0000000000000000000000000000000000079 -:10C7C0000000000000000000000000000000000069 -:10C7D0000000000000000000000000000000000059 -:10C7E0000000000000000000000000000000000049 -:10C7F0000000000000000000000000000000000039 -:10C800000000000000000000000000000000000028 -:10C810000000000000000000000000000000000018 -:10C820000000000000000000000000000000000008 -:10C8300000000000000000000000000000000000F8 -:10C8400000000000000000000000000000000000E8 -:10C8500000000000000000000000000000000000D8 -:10C8600000000000000000000000000000000000C8 -:10C8700000000000000000000000000000000000B8 -:10C8800000000000000000000000000000000000A8 -:10C890000000000000000000000000000000000098 -:10C8A0000000000000000000000000000000000088 -:10C8B0000000000000000000000000000000000078 -:10C8C0000000000000000000000000000000000068 -:10C8D0000000000000000000000000000000000058 -:10C8E0000000000000000000000000000000000048 -:10C8F0000000000000000000000000000000000038 -:10C900000000000000000000000000000000000027 -:10C910000000000000000000000000000000000017 -:10C920000000000000000000000000000000000007 -:10C9300000000000000000000000000000000000F7 -:10C9400000000000000000000000000000000000E7 -:10C9500000000000000000000000000000000000D7 -:10C9600000000000000000000000000000000000C7 -:10C9700000000000000000000000000000000000B7 -:10C9800000000000000000000000000000000000A7 -:10C990000000000000000000000000000000000097 -:10C9A0000000000000000000000000000000000087 -:10C9B0000000000000000000000000000000000077 -:10C9C0000000000000000000000000000000000067 -:10C9D0000000000000000000000000000000000057 -:10C9E0000000000000000000000000000000000047 -:10C9F0000000000000000000000000000000000037 -:10CA00000000000000000000000000000000000026 -:10CA10000000000000000000000000000000000016 -:10CA20000000000000000000000000000000000006 -:10CA300000000000000000000000000000000000F6 -:10CA400000000000000000000000000000000000E6 -:10CA500000000000000000000000000000000000D6 -:10CA600000000000000000000000000000000000C6 -:10CA700000000000000000000000000000000000B6 -:10CA800000000000000000000000000000000000A6 -:10CA90000000000000000000000000000000000096 -:10CAA0000000000000000000000000000000000086 -:10CAB0000000000000000000000000000000000076 -:10CAC0000000000000000000000000000000000066 -:10CAD0000000000000000000000000000000000056 -:10CAE0000000000000000000000000000000000046 -:10CAF0000000000000000000000000000000000036 -:10CB00000000000000000000000000000000000025 -:10CB10000000000000000000000000000000000015 -:10CB20000000000000000000000000000000000005 -:10CB300000000000000000000000000000000000F5 -:10CB400000000000000000000000000000000000E5 -:10CB500000000000000000000000000000000000D5 -:10CB600000000000000000000000000000000000C5 -:10CB700000000000000000000000000000000000B5 -:10CB800000000000000000000000000000000000A5 -:10CB90000000000000000000000000000000000095 -:10CBA0000000000000000000000000000000000085 -:10CBB0000000000000000000000000000000000075 -:10CBC0000000000000000000000000000000000065 -:10CBD0000000000000000000000000000000000055 -:10CBE0000000000000000000000000000000000045 -:10CBF0000000000000000000000000000000000035 -:10CC00000000000000000000000000000000000024 -:10CC10000000000000000000000000000000000014 -:10CC20000000000000000000000000000000000004 -:10CC300000000000000000000000000000000000F4 -:10CC400000000000000000000000000000000000E4 -:10CC500000000000000000000000000000000000D4 -:10CC600000000000000000000000000000000000C4 -:10CC700000000000000000000000000000000000B4 -:10CC800000000000000000000000000000000000A4 -:10CC90000000000000000000000000000000000094 -:10CCA0000000000000000000000000000000000084 -:10CCB0000000000000000000000000000000000074 -:10CCC0000000000000000000000000000000000064 -:10CCD0000000000000000000000000000000000054 -:10CCE0000000000000000000000000000000000044 -:10CCF0000000000000000000000000000000000034 -:10CD00000000000000000000000000000000000023 -:10CD10000000000000000000000000000000000013 -:10CD20000000000000000000000000000000000003 -:10CD300000000000000000000000000000000000F3 -:10CD400000000000000000000000000000000000E3 -:10CD500000000000000000000000000000000000D3 -:10CD600000000000000000000000000000000000C3 -:10CD700000000000000000000000000000000000B3 -:10CD800000000000000000000000000000000000A3 -:10CD90000000000000000000000000000000000093 -:10CDA0000000000000000000000000000000000083 -:10CDB0000000000000000000000000000000000073 -:10CDC0000000000000000000000000000000000063 -:10CDD0000000000000000000000000000000000053 -:10CDE0000000000000000000000000000000000043 -:10CDF0000000000000000000000000000000000033 -:10CE00000000000000000000000000000000000022 -:10CE10000000000000000000000000000000000012 -:10CE20000000000000000000000000000000000002 -:10CE300000000000000000000000000000000000F2 -:10CE400000000000000000000000000000000000E2 -:10CE500000000000000000000000000000000000D2 -:10CE600000000000000000000000000000000000C2 -:10CE700000000000000000000000000000000000B2 -:10CE800000000000000000000000000000000000A2 -:10CE90000000000000000000000000000000000092 -:10CEA0000000000000000000000000000000000082 -:10CEB0000000000000000000000000000000000072 -:10CEC0000000000000000000000000000000000062 -:10CED0000000000000000000000000000000000052 -:10CEE0000000000000000000000000000000000042 -:10CEF0000000000000000000000000000000000032 -:10CF00000000000000000000000000000000000021 -:10CF10000000000000000000000000000000000011 -:10CF20000000000000000000000000000000000001 -:10CF300000000000000000000000000000000000F1 -:10CF400000000000000000000000000000000000E1 -:10CF500000000000000000000000000000000000D1 -:10CF600000000000000000000000000000000000C1 -:10CF700000000000000000000000000000000000B1 -:10CF800000000000000000000000000000000000A1 -:10CF90000000000000000000000000000000000091 -:10CFA0000000000000000000000000000000000081 -:10CFB0000000000000000000000000000000000071 -:10CFC0000000000000000000000000000000000061 -:10CFD0000000000000000000000000000000000051 -:10CFE0000000000000000000000000000000000041 -:10CFF0000000000000000000000000000000000031 -:10D000000000000000000000000000000000000020 -:10D010000000000000000000000000000000000010 -:10D020000000000000000000000000000000000000 -:10D0300000000000000000000000000000000000F0 -:10D0400000000000000000000000000000000000E0 -:10D0500000000000000000000000000000000000D0 -:10D0600000000000000000000000000000000000C0 -:10D0700000000000000000000000000000000000B0 -:10D0800000000000000000000000000000000000A0 -:10D090000000000000000000000000000000000090 -:10D0A0000000000000000000000000000000000080 -:10D0B0000000000000000000000000000000000070 -:10D0C0000000000000000000000000000000000060 -:10D0D0000000000000000000000000000000000050 -:10D0E0000000000000000000000000000000000040 -:10D0F0000000000000000000000000000000000030 -:10D10000000000000000000000000000000000001F -:10D11000000000000000000000000000000000000F -:10D1200000000000000000000000000000000000FF -:10D1300000000000000000000000000000000000EF -:10D1400000000000000000000000000000000000DF -:10D1500000000000000000000000000000000000CF -:10D1600000000000000000000000000000000000BF -:10D1700000000000000000000000000000000000AF -:10D18000000000000000000000000000000000009F -:10D19000000000000000000000000000000000008F -:10D1A000000000000000000000000000000000007F -:10D1B000000000000000000000000000000000006F -:10D1C000000000000000000000000000000000005F -:10D1D000000000000000000000000000000000004F -:10D1E000000000000000000000000000000000003F -:10D1F000000000000000000000000000000000002F -:10D20000000000000000000000000000000000001E -:10D21000000000000000000000000000000000000E -:10D2200000000000000000000000000000000000FE -:10D2300000000000000000000000000000000000EE -:10D2400000000000000000000000000000000000DE -:10D2500000000000000000000000000000000000CE -:10D2600000000000000000000000000000000000BE -:10D2700000000000000000000000000000000000AE -:10D28000000000000000000000000000000000009E -:10D29000000000000000000000000000000000008E -:10D2A000000000000000000000000000000000007E -:10D2B000000000000000000000000000000000006E -:10D2C000000000000000000000000000000000005E -:10D2D000000000000000000000000000000000004E -:10D2E000000000000000000000000000000000003E -:10D2F000000000000000000000000000000000002E -:10D30000000000000000000000000000000000001D -:10D31000000000000000000000000000000000000D -:10D3200000000000000000000000000000000000FD -:10D3300000000000000000000000000000000000ED -:10D3400000000000000000000000000000000000DD -:10D3500000000000000000000000000000000000CD -:10D3600000000000000000000000000000000000BD -:10D3700000000000000000000000000000000000AD -:10D38000000000000000000000000000000000009D -:10D39000000000000000000000000000000000008D -:10D3A000000000000000000000000000000000007D -:10D3B000000000000000000000000000000000006D -:10D3C000000000000000000000000000000000005D -:10D3D000000000000000000000000000000000004D -:10D3E000000000000000000000000000000000003D -:10D3F000000000000000000000000000000000002D -:10D40000000000000000000000000000000000001C -:10D41000000000000000000000000000000000000C -:10D4200000000000000000000000000000000000FC -:10D4300000000000000000000000000000000000EC -:10D4400000000000000000000000000000000000DC -:10D4500000000000000000000000000000000000CC -:10D4600000000000000000000000000000000000BC -:10D4700000000000000000000000000000000000AC -:10D48000000000000000000000000000000000009C -:10D49000000000000000000000000000000000008C -:10D4A000000000000000000000000000000000007C -:10D4B000000000000000000000000000000000006C -:10D4C000000000000000000000000000000000005C -:10D4D000000000000000000000000000000000004C -:10D4E000000000000000000000000000000000003C -:10D4F000000000000000000000000000000000002C -:10D50000000000000000000000000000000000001B -:10D51000000000000000000000000000000000000B -:10D5200000000000000000000000000000000000FB -:10D5300000000000000000000000000000000000EB -:10D5400000000000000000000000000000000000DB -:10D5500000000000000000000000000000000000CB -:10D5600000000000000000000000000000000000BB -:10D5700000000000000000000000000000000000AB -:10D58000000000000000000000000000000000009B -:10D59000000000000000008000000000000000000B -:10D5A000000000000000000000000000000000007B -:10D5B00000000000000000000000000A0000000061 -:10D5C0000000000000000000100000030000000048 -:10D5D0000000000D0000000D3C02080024427320F2 -:10D5E0003C030800246377ACAC4000000043202BD0 -:10D5F0001480FFFD244200043C1D080037BD7FFC61 -:10D6000003A0F0213C100800261032103C1C08003A -:10D61000279C73200E0010FE000000000000000D8B -:10D6200030A5FFFF30C600FF274301808F4201B8BD -:10D630000440FFFE24020002AC640000A465000860 -:10D64000A066000AA062000B3C021000AC67001844 -:10D6500003E00008AF4201B83C0360008C624FF861 -:10D660000440FFFE3C020200AC644FC0AC624FC4F9 -:10D670003C02100003E00008AC624FF89482000CFA -:10D680002486001400A0382100021302000210803A -:10D690000082402100C8102B1040005700000000FD -:10D6A00090C300002C6200095040005190C200015C -:10D6B000000310803C030800246372D00043102153 -:10D6C0008C420000004000080000000090C30001F0 -:10D6D0002402000A1462003A000000000106102330 -:10D6E0002C42000A1440003624C600028CE20000DE -:10D6F00034420100ACE2000090C2000090C300017F -:10D7000090C4000290C5000300031C000002160034 -:10D710000043102500042200004410250045102578 -:10D7200024C60004ACE2000490C2000090C30001D3 -:10D7300090C4000290C500030002160000031C0004 -:10D740000043102500042200004410250045102548 -:10D7500024C600040A000CB8ACE2000890C3000123 -:10D76000240200041462001624C6000290C20000C5 -:10D7700090C400018CE30000000212000044102558 -:10D780003463000424C60002ACE2000C0A000CB8AA -:10D79000ACE3000090C300012402000314620008FF -:10D7A00024C600028CE2000090C3000024C60001E1 -:10D7B00034420008A0E300100A000CB8ACE20000FC -:10D7C00003E000082402000190C3000124020002CB -:10D7D0001062000224C40002010020210A000CB8DB -:10D7E000008030210A000CB824C6000190C200015C -:10D7F0000A000CB800C2302103E00008000010212C -:10D8000027BDFFE8AFBF0014AFB000100E00130239 -:10D8100000808021936200052403FFFE0200202186 -:10D82000004310248FBF00148FB00010A3620005C6 -:10D830000A00130B27BD001827BDFFE8AFB000108A -:10D84000AFBF00140E000F3C0080802193620000E7 -:10D8500024030050304200FF14430004240201005E -:10D86000AF4201800A000D3002002021AF4001804C -:10D87000020020218FBF00148FB000100A000FE7B4 -:10D8800027BD001827BDFF80AFBE0078AFB700747A -:10D89000AFB20060AFBF007CAFB60070AFB5006C38 -:10D8A000AFB40068AFB30064AFB1005CAFB0005874 -:10D8B0008F5001283C0208008C4231A02403FF80D5 -:10D8C0009365003F0202102100431024AF42002460 -:10D8D0003C0208008C4231A09364000530B200FF86 -:10D8E000020210213042007F034218210004202749 -:10D8F0003C02000A0062182130840001AF8300144A -:10D900000000F0210000B82114800053AFA00050A7 -:10D9100093430116934401128F450104306300FFC5 -:10D920003C020001308400FF00A2282403431021A0 -:10D9300003441821245640002467400014A001CD60 -:10D940002402000193620000304300FF2402002003 -:10D950001062000524020050106200060000000062 -:10D960000A000D74000000000000000D0A000D7D8B -:10D97000AFA000303C1E080027DE736C0A000D7D4E -:10D98000AFA000303C0208008C4200DC24420001C1 -:10D990003C010800AC2200DC0E00139F00000000D8 -:10D9A0000A000F318FBF007C8F4201043C0300202E -:10D9B00092D3000D004310240002202B00042140CC -:10D9C000AFA400308F4301043C02004000621824E1 -:10D9D000146000023485004000802821326200205B -:10D9E000AFA500301440000234A6008000A0302112 -:10D9F00010C0000BAFA6003093C500088F67004C25 -:10DA00000200202100052B0034A5008130A5F08103 -:10DA10000E000C9B30C600FF0A000F2E0000000015 -:10DA20009362003E304200401040000F2402000488 -:10DA300056420007240200120200202100E02821A3 -:10DA40000E0013F702C030210A000F318FBF007C97 -:10DA500016420005000000000E000D2100002021EC -:10DA60000A000F318FBF007C9743011A96C4000E45 -:10DA700093620035326500043075FFFF00442004D6 -:10DA8000AFA400548ED1000410A000158ED400085D -:10DA90009362003E3042004010400007000000004A -:10DAA0000E0013E0022020211040000D00000000B5 -:10DAB0000A000F2E000000008F6200440222102393 -:10DAC0000440016A000000008F6200480222102317 -:10DAD00004410166240400160A000E218FC20004CE -:10DAE0008F6200480222102304400008000000005A -:10DAF0003C0208008C423100244200013C01080035 -:10DB0000AC2231000A000F23000000008F620040A9 -:10DB100002221023184000128F8400143C020800D7 -:10DB20008C423100327300FC0000A8212442000125 -:10DB30003C010800AC2231008F6300409482011C3C -:10DB4000022318233042FFFF0043102A50400010E8 -:10DB50002402000C8F6200400A000DF20222102302 -:10DB60009483011C9762003C0043102B1040000678 -:10DB7000000000009482011C00551023A482011CA7 -:10DB80000A000DF72402000CA480011C2402000CE2 -:10DB9000AFA200308F620040005120231880000D9A -:10DBA00002A4102A1440012600000000149500066B -:10DBB00002A410233A620001304200011440012007 -:10DBC0000000000002A41023022488210A000E098C -:10DBD0003055FFFF00002021326200021040001A81 -:10DBE000326200109362003E30420040504000110B -:10DBF0008FC200040E00130202002021240200182C -:10DC0000A362003F936200052403FFFE020020216F -:10DC1000004310240E00130BA362000524040039F6 -:10DC2000000028210E0013C9240600180A000F3036 -:10DC300024020001240400170040F809000000003D -:10DC40000A000F302402000110400108000000000B -:10DC50008F63004C8F620054028210231C4001032A -:10DC600002831023044200010060A021AFA4001829 -:10DC7000AFB10010AFB50014934201208F65004092 -:10DC80009763003C304200FF034210210044102102 -:10DC90008FA400543063FFFF244240000083182B00 -:10DCA0008FA40030AFA20020AFA50028008320255C -:10DCB000AFA40030AFA50024AFA0002CAFB4003457 -:10DCC0009362003E30420008504000118FC20000B5 -:10DCD00002C0202127A500380E000CB2AFA00038EA -:10DCE0005440000B8FC200008FA200383042010068 -:10DCF000504000078FC200008FA3003C8F6200607D -:10DD00000062102304430001AF6300608FC2000073 -:10DD10000040F80927A400108FA200303042000212 -:10DD200054400001327300FE9362003E30420040D6 -:10DD3000104000378FA200248F6200541682001A10 -:10DD40003262000124020014124200102A4200151F -:10DD500010400006240200162402000C12420007A4 -:10DD6000326200010A000E7D000000001242000530 -:10DD7000326200010A000E7D000000000A000E78E9 -:10DD80002417000E0A000E78241700100A000E7CDB -:10DD900024170012936200232403FFBD00431024C4 -:10DDA000A362002332620001104000198FA20024F8 -:10DDB0002402000C1242000E2A42000D1040000600 -:10DDC0002402000E2402000A124200078FA200243F -:10DDD0000A000E9524420001124200088FA200247E -:10DDE0000A000E95244200010A000E932417000831 -:10DDF0002402000E16E20002241700162417001059 -:10DE00008FA2002424420001AFA200248FA200248C -:10DE10008FA300148F76004000431021AF620040B2 -:10DE20008F8200149442011C104000090000000081 -:10DE30008F6200488F6400409763003C00441023C9 -:10DE40003063FFFF0043102A104000088FA20054E7 -:10DE5000936400368F6300403402FFFC008210049C -:10DE600000621821AF6300488FA200548FA60030D3 -:10DE70000282902130C200081040000E0000000015 -:10DE80008F6200581642000430C600FF9742011A04 -:10DE90005040000134C6001093C500088FA700341D -:10DEA0000200202100052B0034A500800E000C9BF1 -:10DEB00030A5F0808F620040005610231840001BF0 -:10DEC0008FA200183C0208008C42319830420010AA -:10DED0001040000D24020001976200681440000AFF -:10DEE000240200018F8200149442011C1440000699 -:10DEF00024020001A76200689742007A244200646D -:10DF00000A000EE9A7620012A76200120E001302B7 -:10DF1000020020219362007D2403000102002021E1 -:10DF2000344200010A000EE7AFA300501840000A77 -:10DF3000000000000E001302020020219362007D09 -:10DF40002403000102002021AFA30050344200044A -:10DF50000E00130BA362007D9362003E304200402E -:10DF60001440000C326200011040000A0000000062 -:10DF70008F6300408FC20004240400182463000152 -:10DF80000040F809AF6300408FA200300A000F3054 -:10DF9000304200048F620058105200100000000050 -:10DFA0008F620018022210231C4000082404000184 -:10DFB0008F62001816220009000000008F62001C0A -:10DFC000028210230440000500000000AF720058D8 -:10DFD000AFA40050AF710018AF74001C12E0000B2A -:10DFE0008FA200500E00130202002021A377003FF1 -:10DFF0000E00130B0200202102E030212404003720 -:10E000000E0013C9000028218FA200501040000309 -:10E01000000000000E000CA90200202112A0000543 -:10E02000000018218FA2003030420004504000113F -:10E0300000601021240300010A000F30006010214D -:10E040000E001302020020219362007D02002021B5 -:10E05000344200040E00130BA362007D0E000CA9D5 -:10E06000020020210A000F3024020001AF400044CA -:10E07000240200018FBF007C8FBE00788FB7007430 -:10E080008FB600708FB5006C8FB400688FB30064DA -:10E090008FB200608FB1005C8FB0005803E00008C1 -:10E0A00027BD00808F4201B80440FFFE2402080013 -:10E0B000AF4201B803E00008000000003C02000885 -:10E0C00003421021944200483084FFFF2484001250 -:10E0D0003045FFFF10A0001700A4102B10400016C1 -:10E0E00024020003934201202403001AA343018B5E -:10E0F000304200FF2446FFFE8F82000000A6182B4E -:10E100003863000100021382004310241040000510 -:10E110008F84000434820001A746019403E00008C4 -:10E12000AF8200042402FFFE0082102403E00008F6 -:10E13000AF8200042402000303E00008A342018B25 -:10E1400027BDFFE0AFB10014AFB00010AFBF0018A3 -:10E1500030B0FFFF30D1FFFF8F4201B80440FFFE17 -:10E1600000000000AF440180AF4400200E000F42C9 -:10E17000020020218F8300008F840004A750019AA1 -:10E18000A750018EA74301908F8300083082800042 -:10E19000AF4301A8A75101881040000E8F820004F0 -:10E1A00093420116304200FC24420004005A102120 -:10E1B0008C4240003042FFFF144000068F82000472 -:10E1C0003C02FFFF34427FFF00821024AF82000434 -:10E1D0008F8200042403BFFF00431024A74201A63E -:10E1E0009743010C8F42010400031C003042FFFFE3 -:10E1F00000621825AF4301AC3C021000AF4201B8E9 -:10E200008FBF00188FB100148FB0001003E000081A -:10E2100027BD00208F470070934201128F830000BA -:10E2200027BDFFF0304200FF00022882306201006B -:10E23000000030211040004324A40003306240005D -:10E24000104000103062200000041080005A10219D -:10E250008C43400024A4000400041080AFA30000FD -:10E26000005A10218C424000AFA2000493420116D4 -:10E27000304200FC005A10218C4240000A000FC0BE -:10E28000AFA200081040002F0000302100041080D1 -:10E29000005A10218C43400024A400040004108084 -:10E2A000AFA30000005A10218C424000AFA000082C -:10E2B000AFA200048FA80008000030210000202138 -:10E2C000240A00083C0908002529010003A41021A4 -:10E2D000148A000300042A001100000A0000000054 -:10E2E00090420000248400012C83000C00A2102125 -:10E2F00000021080004910218C4200001460FFF3DE -:10E3000000C230263C0408008C8431048F42007027 -:10E310002C83002010600009004738233C030800CC -:10E32000246331080004108000431021248300017D -:10E33000AC4700003C010800AC233104AF86000864 -:10E340002406000100C0102103E0000827BD0010D2 -:10E350003C0208008C42003827BDFFD0AFB5002436 -:10E36000AFB40020AFB10014AFBF0028AFB3001CA2 -:10E37000AFB20018AFB00010000088213C150800B3 -:10E3800026B50038144000022454FFFF0000A021ED -:10E390009742010E8F8400003042FFFF308340001F -:10E3A0001060000A245200043C0200200082102465 -:10E3B00050400007308280008F8200042403BFFF9A -:10E3C000008318240A0010103442100030828000AC -:10E3D0001040000A3C020020008210241040000778 -:10E3E0008F8200043C03FFFF34637FFF0083182407 -:10E3F00034428000AF820004AF8300000E000F980B -:10E400000000000014400007000000009743011EB8 -:10E410009742011C3063FFFF0002140000621825C0 -:10E42000AF8300089742010C8F4340003045FFFF47 -:10E430003402FFFF14620003000000000A001028ED -:10E44000241100208F42400030420100544000015E -:10E45000241100108F8400003082100050400014FE -:10E4600036310001308200201440000B3C021000C5 -:10E47000008210245040000E363100013C030E0093 -:10E480003C020DFF008318243442FFFF0043102B91 -:10E4900050400007363100013C0208008C42002C3D -:10E4A000244200013C010800AC22002C363100055A -:10E4B0003C0608008CC6003454C000238F85000041 -:10E4C0008F820004304240005440001F8F850000BE -:10E4D0003C021F01008210243C0310005443001A28 -:10E4E0008F85000030A20200144000178F850000C5 -:10E4F0003250FFFF363100028F4201B80440FFFE68 -:10E5000000000000AF400180020020210E000F42F9 -:10E51000AF4000208F8300042402BFFFA750019A60 -:10E52000006218248F820000A750018EA751018835 -:10E53000A74301A6A74201903C021000AF4201B8D8 -:10E540000A0010F5000010213C02100000A2102467 -:10E550001040003A0000000010C0000F0000000052 -:10E5600030A201001040000C3C0302003C020F00EE -:10E5700000A2102410430008000000008F82000851 -:10E58000005410240055102190420004244200043D -:10E590000A00109F000221C00000000000051602C2 -:10E5A0003050000F3A0300022E4203EF38420001C0 -:10E5B0002C6300010062182414600073240200011F -:10E5C0003C0308008C6300D02E06000C386200016A -:10E5D0002C4200010046102414400015001021C0F8 -:10E5E0002602FFFC2C4200045440001100002021B0 -:10E5F000386200022C420001004610241040000343 -:10E60000000512420A00109F000020210010182B64 -:10E610000043102450400006001021C000002021BB -:10E620003245FFFF0E000F633226FFFB001021C0B2 -:10E630003245FFFF0A0010F2362600028F424000EA -:10E640003C0308008C630024304201001040004667 -:10E6500030620001322200043070000D14400002CC -:10E660002413000424130002000512C238420001E2 -:10E670002E4303EF304200013863000100431025B0 -:10E68000104000033231FFFB2402FFFB0202802412 -:10E6900010C000183202000130A201001040001525 -:10E6A000320200013C020F0000A210243C030200D1 -:10E6B0001043000F8F8200082403FFFE0203802412 -:10E6C00000541024005510219042000402333025DC -:10E6D0002442000412000002000221C03226FFFF83 -:10E6E0000E000F633245FFFF1200002700001021CB -:10E6F000320200011040000D320200042402000129 -:10E7000012020002023330253226FFFF00002021D2 -:10E710000E000F633245FFFF2402FFFE0202802439 -:10E7200012000019000010213202000410400016EF -:10E7300024020001240200041202000202333025E8 -:10E740003226FFFF3245FFFF0E000F632404010055 -:10E750002402FFFB020280241200000B00001021A3 -:10E760000A0010F5240200011040000700001021EB -:10E770003245FFFF36260002000020210E000F6305 -:10E7800000000000000010218FBF00288FB500247A -:10E790008FB400208FB3001C8FB200188FB100140B -:10E7A0008FB0001003E0000827BD003027BDFFD068 -:10E7B000AFB000103C04600CAFBF002CAFB6002817 -:10E7C000AFB50024AFB40020AFB3001CAFB2001847 -:10E7D000AFB100148C8250002403FF7F3C1A8000EC -:10E7E000004310243442380CAC8250002402000351 -:10E7F0003C106000AF4200088E0208083C1B8008F5 -:10E800003C010800AC2000203042FFF038420010EC -:10E810002C4200010E001B85AF8200183C04FFFF54 -:10E820003C020400348308063442000CAE0219484E -:10E83000AE03194C3C0560168E0219808CA30000B3 -:10E840003442020000641824AE0219803C02535383 -:10E850001462000334A47C008CA200040050202128 -:10E860008C82007C8C830078AF820010AF83000C18 -:10E870008F55000032A200031040FFFD32A20001BC -:10E880001040013D32A200028F420128AF42002019 -:10E890008F4201048F430100AF8200000E000F3C45 -:10E8A000AF8300043C0208008C4200C01040000806 -:10E8B0008F8400003C0208008C4200C42442000106 -:10E8C0003C010800AC2200C40A00126900000000EC -:10E8D0003C020010008210241440010C8F830004BD -:10E8E0003C0208008C4200203C0308008C63003886 -:10E8F00000008821244200013C010800AC220020D5 -:10E900003C16080026D60038146000022474FFFF6D -:10E910000000A0219742010E308340003042FFFFEB -:10E920001060000A245200043C02002000821024DF -:10E9300050400007308280008F8200042403BFFF14 -:10E94000008318240A0011703442100030828000C5 -:10E950001040000A3C0200200082102410400007F2 -:10E960008F8200043C03FFFF34637FFF0083182481 -:10E9700034428000AF820004AF8300000E000F9885 -:10E980000000000014400007000000009743011E33 -:10E990009742011C3063FFFF00021400006218253B -:10E9A000AF8300089742010C8F4340003045FFFFC2 -:10E9B0003402FFFF14620003000000000A00118807 -:10E9C000241100208F4240003042010054400001D9 -:10E9D000241100108F840000308210005040001479 -:10E9E00036310001308200201440000B3C02100040 -:10E9F000008210245040000E363100013C030E000E -:10EA00003C020DFF008318243442FFFF0043102B0B -:10EA100050400007363100013C0208008C42002CB7 -:10EA2000244200013C010800AC22002C36310005D4 -:10EA30003C0608008CC6003454C000238F850000BB -:10EA40008F820004304240005440001F8F85000038 -:10EA50003C021F01008210243C0310005443001AA2 -:10EA60008F85000030A20200144000178F8500003F -:10EA70003250FFFF363100028F4201B80440FFFEE2 -:10EA800000000000AF400180020020210E000F4274 -:10EA9000AF4000208F8300042402BFFFA750019ADB -:10EAA000006218248F820000A750018EA7510188B0 -:10EAB000A74301A6A74201903C021000AF4201B853 -:10EAC0000A001267000010213C02100000A210246E -:10EAD0001040003A0000000010C0000F00000000CD -:10EAE00030A201001040000C3C0302003C020F0069 -:10EAF00000A2102410430008000000008F820008CC -:10EB000000541024005610219042000424420004B6 -:10EB10000A0011FF000221C00000000000051602DB -:10EB20003050000F3A0300022E4203EF384200013A -:10EB30002C63000100621824146000852402000187 -:10EB40003C0308008C6300D02E06000C38620001E4 -:10EB50002C4200010046102414400015001021C072 -:10EB60002602FFFC2C42000454400011000020212A -:10EB7000386200022C42000100461024504000037D -:10EB8000000512420A0011FF000020210010182B7E -:10EB90000043102450400006001021C00000202136 -:10EBA0003245FFFF0E000F633226FFFB001021C02D -:10EBB0003245FFFF0A001252362600028F42400003 -:10EBC0003C0308008C6300243042010010400046E2 -:10EBD00030620001322200043070000D1440000247 -:10EBE0002413000424130002000512C2384200015D -:10EBF0002E4303EF3042000138630001004310252B -:10EC0000104000033231FFFB2402FFFB020280248C -:10EC100010C000183202000130A20100104000159F -:10EC2000320200013C020F0000A210243C0302004B -:10EC30001043000F8F8200082403FFFE020380248C -:10EC40000054102400561021904200040233302555 -:10EC50002442000412000002000221C03226FFFFFD -:10EC60000E000F633245FFFF120000390000102133 -:10EC7000320200011040000D3202000424020001A3 -:10EC800012020002023330253226FFFF000020214D -:10EC90000E000F633245FFFF2402FFFE02028024B4 -:10ECA0001200002B00001021320200041040002846 -:10ECB0002402000124020004120200020233302563 -:10ECC0003226FFFF3245FFFF0E000F6324040100D0 -:10ECD0002402FFFB020280241200001D000010210C -:10ECE0000A001267240200015040001900001021A0 -:10ECF0003245FFFF36260002000020210E000F6380 -:10ED0000000000000A001267000010212402BFFF6B -:10ED1000006210241040000800000000240287FF59 -:10ED200000621024144000083C020060008210249D -:10ED300010400005000000000E000D34000000002F -:10ED40000A001267000000000E0012C70000000059 -:10ED5000104000063C0240008F4301243C0260202A -:10ED6000AC430014000000003C024000AF420138F8 -:10ED70000000000032A200021040FEBD00000000B2 -:10ED80008F4201403C044000AF4200208F430148C5 -:10ED90003C02700000621824106400420000000071 -:10EDA0000083102B144000063C0260003C0220004F -:10EDB000106200073C0240000A0012C3000000007D -:10EDC0001062003C3C0240000A0012C30000000038 -:10EDD0008F4501408F4601448F42014800021402D2 -:10EDE000304300FF240200041462000A274401801B -:10EDF0008F4201B80440FFFE2402001CAC850000D5 -:10EE0000A082000B3C021000AF4201B80A0012C3FE -:10EE10003C0240002402000914620012000616029F -:10EE2000000229C0AF4500208F4201B80440FFFE18 -:10EE30002402000124030003AF450180A343018B9A -:10EE4000A740018EA740019AA7400190AF4001A8BA -:10EE5000A7420188A74201A6AF4001AC3C021000C6 -:10EE6000AF4201B88F4201B80440FFFE000000002D -:10EE7000AC8500008F42014800021402A482000801 -:10EE800024020002A082000B8F420148A4820010DD -:10EE90003C021000AC860024AF4201B80A0012C345 -:10EEA0003C0240000E001310000000000A0012C3D4 -:10EEB0003C0240000E001BBA000000003C02400073 -:10EEC000AF420178000000000A00112F000000008E -:10EED0008F4201003042003E144000112402000124 -:10EEE000AF4000488F420100304207C0104000058B -:10EEF00000000000AF40004CAF40005003E00008AD -:10EF000024020001AF400054AF4000408F42010096 -:10EF10003042380054400001AF4000442402000158 -:10EF200003E00008000000008F4201B80440FFFE2B -:10EF300024020001AF440180AF400184A74501884D -:10EF4000A342018A24020002A342018B9742014A94 -:10EF500014C00004A7420190AF4001A40A0012EFC0 -:10EF60003C0210008F420144AF4201A43C02100059 -:10EF7000AF4001A803E00008AF4201B88F4201B8DA -:10EF80000440FFFE24020002AF440180AF4401842C -:10EF9000A7450188A342018AA342018B9742014AF7 -:10EFA000A7420190AF4001A48F420144AF4201A8A3 -:10EFB0003C02100003E00008AF4201B83C029000A0 -:10EFC0003442000100822025AF4400208F420020FF -:10EFD0000440FFFE0000000003E000080000000005 -:10EFE0003C028000344200010082202503E000083A -:10EFF000AF44002027BDFFE8AFBF0014AFB0001042 -:10F000008F50014093430149934201489344014882 -:10F01000306300FF304200FF00021200006228252A -:10F020002402001910620076308400802862001AE1 -:10F030001040001C24020020240200081062007707 -:10F04000286200091040000E2402000B2402000177 -:10F0500010620034286200025040000524020006BD -:10F0600050600034020020210A00139A00000000C2 -:10F0700010620030020020210A00139A00000000F4 -:10F080001062003B2862000C504000022402000E77 -:10F090002402000910620056020020210A00139A7F -:10F0A0000000000010620056286200211040000F8E -:10F0B000240200382402001C106200582862001D3F -:10F0C000104000062402001F2402001B1062004CA6 -:10F0D000000000000A00139A000000001062004ABD -:10F0E000020020210A00139A00000000106200456F -:10F0F0002862003910400007240200802462FFCB00 -:10F100002C42000210400045020020210A00139604 -:10F110000000302110620009000000000A00139A6C -:10F12000000000001480003D020020210A0013901E -:10F130008FBF00140A001396240600018F4201B805 -:10F140000440FFFE24020002A342018BA745018870 -:10F150009742014AA74201908F420144A74201927F -:10F160003C021000AF4201B80A00139C8FBF00148C -:10F170009742014A144000290000000093620005F4 -:10F180003042000414400025000000000E0013026D -:10F190000200202193620005020020213442000475 -:10F1A0000E00130BA36200059362000530420004B9 -:10F1B00014400002000000000000000D93620000F7 -:10F1C00024030020304200FF14430014000000001C -:10F1D0008F4201B80440FFFE24020005AF500180B9 -:10F1E000A342018B3C0210000A00139AAF4201B8FF -:10F1F0008FBF00148FB000100A0012F227BD001854 -:10F200000000000D02002021000030218FBF0014FB -:10F210008FB000100A0012DD27BD00180000000D9D -:10F220008FBF00148FB0001003E0000827BD001846 -:10F2300027BDFFE8AFBF00100E000F3C000000002C -:10F24000AF4001808FBF0010000020210A000FE7AF -:10F2500027BD00183084FFFF30A5FFFF00001821F4 -:10F260001080000700000000308200011040000202 -:10F2700000042042006518210A0013AB0005284055 -:10F2800003E000080060102110C0000624C6FFFF44 -:10F290008CA2000024A50004AC8200000A0013B573 -:10F2A0002484000403E000080000000010A000080F -:10F2B00024A3FFFFAC860000000000000000000057 -:10F2C0002402FFFF2463FFFF1462FFFA248400047A -:10F2D00003E0000800000000308300FF30A500FFBD -:10F2E00030C600FF274701808F4201B80440FFFE6F -:10F2F000000000008F42012834634000ACE20000AF -:10F3000024020001ACE00004A4E30008A0E2000A2B -:10F3100024020002A0E2000B3C021000A4E5001051 -:10F32000ACE00024ACE00028A4E6001203E00008F2 -:10F33000AF4201B827BDFFE8AFBF00109362003FA6 -:10F3400024030012304200FF1043000D00803021E2 -:10F350008F620044008210230440000A8FBF001017 -:10F360008F620048240400390000282100C21023C5 -:10F3700004410004240600120E0013C9000000001E -:10F380008FBF00102402000103E0000827BD001811 -:10F3900027BDFFC8AFB20030AFB1002CAFBF003403 -:10F3A000AFB0002890C5000D0080902130A400105F -:10F3B0001080000B00C088218CC300088F620054AD -:10F3C0001062000730A20005144000B524040001BB -:10F3D0000E000D21000020210A0014BB0040202156 -:10F3E00030A200051040000930A30012108000ACCC -:10F3F000240400018E2300088F620054146200A9C7 -:10F400008FBF00340A00142C240400382402001298 -:10F41000146200A3240400010220202127A500106B -:10F420000E000CB2AFA000101040001102402021CD -:10F430008E220008AF620084AF6000400E0013020D -:10F44000000000009362007D024020213442002031 -:10F450000E00130BA362007D0E000CA902402021B8 -:10F46000240400382405008D0A0014B82406001274 -:10F470009362003E304200081040000F8FA200103F -:10F4800030420100104000078FA300148F6200601B -:10F490000062102304430008AF6300600A001441B7 -:10F4A00000000000AF6000609362003E2403FFF79D -:10F4B00000431024A362003E9362003E30420008E5 -:10F4C000144000022406000300003021936200343F -:10F4D000936300378F640084304200FF306300FF85 -:10F4E00000661821000318800043282100A4202B67 -:10F4F0001080000B000000009763003C8F620084C6 -:10F500003063FFFF004510230062182B14600004D5 -:10F51000000000008F6200840A00145D0045802313 -:10F520009762003C3050FFFF8FA300103062000450 -:10F5300010400004000628808FA2001C0A001465F9 -:10F540000202102B2E02021850400003240202185F -:10F550000A00146E020510233063000410600003DB -:10F56000004510238FA2001C00451023004080217D -:10F570002C42008054400001241000800E00130231 -:10F580000240202124020001AF62000C9362003E81 -:10F59000001020403042007FA362003E8E22000413 -:10F5A00024420001AF620040A770003C8F6200500F -:10F5B0009623000E00431021AF6200588F62005066 -:10F5C00000441021AF62005C8E220004AF6200187C -:10F5D0008E220008AF62001C8FA20010304200088B -:10F5E0005440000A93A20020A360003693620036C4 -:10F5F0002403FFDFA36200359362003E0043102422 -:10F60000A362003E0A0014988E220008A36200350F -:10F610008E220008AF62004C8F6200248F6300408E -:10F6200000431021AF6200489362000024030050A1 -:10F63000304200FF144300122403FF803C02080004 -:10F640008C4231A00242102100431024AF42002816 -:10F650003C0208008C4231A08E2400083C03000CC0 -:10F66000024210213042007F03421021004310214A -:10F67000AC4400D88E230008AF820014AC4300DCF9 -:10F680000E00130B02402021240400380000282122 -:10F690002406000A0E0013C9000000002404000123 -:10F6A0008FBF00348FB200308FB1002C8FB0002894 -:10F6B0000080102103E0000827BD003827BDFFF8B7 -:10F6C00027420180AFA20000308A00FF8F4201B8BC -:10F6D0000440FFFE000000008F4601283C020800A5 -:10F6E0008C4231A02403FF80AF86004800C2102165 -:10F6F00000431024AF4200243C0208008C4231A099 -:10F700008FA900008FA8000000C210213042007FA6 -:10F71000034218213C02000A00621821946400D4BC -:10F720008FA700008FA5000024020002AF83001401 -:10F73000A0A2000B8FA30000354260003084FFFFC1 -:10F74000A4E200083C021000AD260000AD04000455 -:10F75000AC60002427BD0008AF4201B803E00008F8 -:10F76000240200018F88003C938200288F830014BC -:10F770003C07080024E7777800481023304200FF58 -:10F78000304900FC246500888F860040304A000321 -:10F790001120000900002021248200048CA3000015 -:10F7A000304400FF0089102AACE3000024A50004C7 -:10F7B0001440FFF924E70004114000090000202153 -:10F7C0002482000190A30000304400FF008A102B27 -:10F7D000A0E3000024A500011440FFF924E7000184 -:10F7E00030C20003144000048F85003C3102000346 -:10F7F0001040000D0000000010A0000900002021B2 -:10F800002482000190C30000304400FF0085102BCB -:10F81000A0E3000024C600011440FFF924E7000122 -:10F8200003E00008000000001100FFFD000020219F -:10F83000248200048CC30000304400FF0088102B99 -:10F84000ACE3000024C600041440FFF924E70004E0 -:10F8500003E00008000000008F83003C9382002832 -:10F8600030C600FF30A500FF00431023304300FFE7 -:10F870008F820014008038210043102114C0000240 -:10F88000244800880083382130E20003144000053A -:10F8900030A2000314400003306200031040000D4A -:10F8A0000000000010A000090000202124820001B7 -:10F8B00090E30000304400FF0085102BA1030000FE -:10F8C00024E700011440FFF92508000103E00008C7 -:10F8D0000000000010A0FFFD000020212482000491 -:10F8E0008CE30000304400FF0085102BAD030000C6 -:10F8F00024E700041440FFF92508000403E0000891 -:10F90000000000000080482130AAFFFF30C600FF41 -:10F9100030E7FFFF274801808F4201B80440FFFE17 -:10F920008F820048AD0200008F420124AD02000426 -:10F930008D220020A5070008A102000A240200165B -:10F94000A102000B934301208D2200088D240004A6 -:10F95000306300FF004310219783003A00441021D8 -:10F960008D250024004310233C0308008C6331A044 -:10F970008F840014A502000C246300E82402FFFF1A -:10F98000A50A000EA5030010A5060012AD0500187B -:10F99000AD020024948201142403FFF73042FFFFDC -:10F9A000AD0200288C820118AD02002C3C02100030 -:10F9B000AD000030AF4201B88D220020004310247A -:10F9C00003E00008AD2200208F82001430E7FFFF23 -:10F9D00000804821904200D330A5FFFF30C600FFD1 -:10F9E0000002110030420F0000E238252748018054 -:10F9F0008F4201B80440FFFE8F820048AD02000034 -:10FA00008F420124AD0200048D220020A5070008CA -:10FA1000A102000A24020017A102000B9343012057 -:10FA20008D2200088D240004306300FF0043102164 -:10FA30009783003A004410218F8400140043102360 -:10FA40003C0308008C6331A0A502000CA505000E44 -:10FA5000246300E8A5030010A5060012AD00001401 -:10FA60008D220024AD0200188C82005CAD02001CC7 -:10FA70008C820058AD0200202402FFFFAD0200245A -:10FA8000948200E63042FFFFAD02002894820060BD -:10FA9000948300BE30427FFF3063FFFF00021200FC -:10FAA00000431021AD02002C3C021000AD000030DC -:10FAB000AF4201B8948200BE2403FFF700A21021D8 -:10FAC000A48200BE8D2200200043102403E0000821 -:10FAD000AD220020274301808F4201B80440FFFE81 -:10FAE0008F8200249442001C3042FFFF000211C0AC -:10FAF000AC62000024020019A062000B3C0210005E -:10FB0000AC60003003E00008AF4201B88F87002CE2 -:10FB100030C300FF8F4201B80440FFFE8F820048CF -:10FB200034636000ACA2000093820044A0A20005F0 -:10FB30008CE20010A4A20006A4A300088C8200207E -:10FB40002403FFF7A0A2000A24020002A0A2000BD7 -:10FB50008CE20000ACA200108CE20004ACA2001405 -:10FB60008CE2001CACA200248CE20020ACA2002895 -:10FB70008CE2002CACA2002C8C820024ACA20018D9 -:10FB80003C021000AF4201B88C82002000431024D8 -:10FB900003E00008AC8200208F86001427BDFFE838 -:10FBA000AFBF0014AFB0001090C20063304200201D -:10FBB0001040000830A500FF8CC2007C2403FFDF4A -:10FBC00024420001ACC2007C90C2006300431024B8 -:10FBD000A0C2006310A000238F830014275001806F -:10FBE000020028210E0015D6240600828F82001400 -:10FBF000904200633042004050400019A38000440E -:10FC00008F83002C8F4201B80440FFFE8F82004892 -:10FC1000AE02000024026082A60200082402000254 -:10FC2000A202000B8C620008AE0200108C62000C75 -:10FC3000AE0200148C620014AE0200188C62001830 -:10FC4000AE0200248C620024AE0200288C620028E0 -:10FC5000AE02002C3C021000AF4201B8A380004469 -:10FC60008F8300148FBF00148FB000109062006368 -:10FC700027BD00183042007FA06200639782003ADF -:10FC80008F86003C8F850014938300280046102344 -:10FC9000A782003AA4A000E490A400638F820040F1 -:10FCA000AF83003C2403FFBF0046102100832024C3 -:10FCB000AF820040A0A400638F820014A04000BD6A -:10FCC0008F82001403E00008A44000BE8F8A001455 -:10FCD00027BDFFE0AFB10014AFB000108F88003C2B -:10FCE000AFBF00189389001C954200E430D100FF9B -:10FCF0000109182B0080802130AC00FF3047FFFF46 -:10FD00000000582114600003310600FF012030215B -:10FD1000010958239783003A0068102B1440003CD7 -:10FD20000000000014680007240200018E02002079 -:10FD30002403FFFB34E7800000431024AE020020C0 -:10FD40002402000134E70880158200053165FFFFB9 -:10FD50000E001554020020210A00169102002021F5 -:10FD60000E001585020020218F8400482743018062 -:10FD70008F4201B80440FFFE24020018AC6400006A -:10FD8000A062000B8F840014948200E6A46200102D -:10FD90003C021000AC600030AF4201B894820060B9 -:10FDA00024420001A4820060948200603C030800A9 -:10FDB0008C63318830427FFF5443000F02002021C2 -:10FDC000948200602403800000431024A482006019 -:10FDD0009082006090830060304200FF000211C2F8 -:10FDE00000021027000211C03063007F0062182556 -:10FDF000A083006002002021022028218FBF00186C -:10FE00008FB100148FB000100A0015F927BD002033 -:10FE1000914200632403FF8000431025A142006348 -:10FE20009782003A3048FFFF110000209383001CA6 -:10FE30008F840014004B1023304600FF948300E4AD -:10FE40002402EFFF0168282B00621824A48300E439 -:10FE500014A000038E020020010058210000302170 -:10FE60002403FFFB34E7800000431024AE0200208F -:10FE700024020001158200053165FFFF0E001554B4 -:10FE8000020020210A0016B99783003A0E0015855A -:10FE9000020020219783003A8F82003CA780003A1D -:10FEA00000431023AF82003C9383001C8F82001418 -:10FEB0008FBF00188FB100148FB0001027BD002035 -:10FEC00003E00008A04300BD938200442403000126 -:10FED00027BDFFE8004330042C420020AFB00010E3 -:10FEE000AFBF00142410FFFE10400005274501801D -:10FEF0003C0208008C4231900A0016D600461024BD -:10FF00003C0208008C423194004610241440000743 -:10FF1000240600848F8300142410FFFF9062006287 -:10FF20003042000F34420040A06200620E0015D63D -:10FF300000000000020010218FBF00148FB00010DD -:10FF400003E0000827BD00188F83002427BDFFE0D1 -:10FF5000AFB20018AFB10014AFB00010AFBF001CBB -:10FF60009062000D00A0902130D100FF3042007F50 -:10FF7000A062000D8F8500148E4300180080802140 -:10FF80008CA2007C146200052402000E90A2006383 -:10FF9000344200200A0016FFA0A200630E0016C51E -:10FFA000A38200442403FFFF104300472404FFFF03 -:10FFB00052200045000020218E4300003C0200102A -:10FFC00000621024504000043C020008020020217E -:10FFD0000A00170E24020015006210245040000988 -:10FFE0008E45000002002021240200140E0016C5D8 -:10FFF000A38200442403FFFF104300332404FFFFC7 -:020000040001F9 -:100000008E4500003C02000200A2102410400016A1 -:100010003C0200048F8600248CC200148CC30010A4 -:100020008CC40014004310230044102B50400005E2 -:10003000020020218E43002C8CC2001010620003AD -:10004000020020210A00173F240200123C02000493 -:1000500000A210245040001C00002021020020219A -:100060000A00173F2402001300A2102410400006CB -:100070008F8300248C620010504000130000202168 -:100080000A001739020020218C6200105040000441 -:100090008E42002C020020210A00173F240200118A -:1000A00050400009000020210200202124020017F6 -:1000B0000E0016C5A38200442403FFFF1043000274 -:1000C0002404FFFF000020218FBF001C8FB2001806 -:1000D0008FB100148FB000100080102103E00008E1 -:1000E00027BD00208F83001427BDFFD8AFB40020A8 -:1000F000AFB3001CAFB20018AFB10014AFB0001026 -:10010000AFBF0024906200638F91002C2412FFFF88 -:100110003442004092250000A06200638E2200104D -:100120000080982130B0003F105200060360A021EB -:100130002402000D0E0016C5A38200441052005484 -:100140002404FFFF8F8300148E2200188C63007C30 -:1001500010430007026020212402000E0E0016C585 -:10016000A38200442403FFFF104300492404FFFF3F -:1001700024040020120400048F83001490620063A2 -:1001800034420020A06200638F85003410A000205C -:1001900000000000560400048F8200140260202139 -:1001A0000A0017902402000A9683000A9442006015 -:1001B0003042FFFF144300048F8200202404FFFD1F -:1001C0000A0017B7AF82003C3C0208008C42318C19 -:1001D0000045102B14400006026020210000282159 -:1001E0000E001646240600010A0017B70000202161 -:1001F0002402002D0E0016C5A38200442403FFFF35 -:10020000104300232404FFFF0A0017B70000202139 -:10021000160400058F8400148E2300142402FFFFAF -:100220005062001802602021948200602442000184 -:10023000A4820060948200603C0308008C633188D3 -:1002400030427FFF5443000F0260202194820060FF -:100250002403800000431024A48200609082006088 -:1002600090830060304200FF000211C2000210279C -:10027000000211C03063007F00621825A083006077 -:10028000026020210E0015F9240500010000202144 -:100290008FBF00248FB400208FB3001C8FB20018D2 -:1002A0008FB100148FB000100080102103E000080F -:1002B00027BD00288F83001427BDFFE8AFB00010D2 -:1002C000AFBF0014906200638F87002C00808021F4 -:1002D000344200408CE60010A06200633C0308003A -:1002E0008C6331B030C23FFF0043102B1040004EF2 -:1002F0008F8500302402FF8090A3000D004310245E -:10030000304200FF504000490200202100061382C5 -:10031000304800032402000255020044020020215C -:1003200094A2001C8F85001424030023A4A20114AE -:100330008CE60000000616023042003F1043001019 -:100340003C0300838CE300188CA2007C1062000642 -:100350002402000E0E0016C5A38200442403FFFFF2 -:10036000104300382404FFFF8F8300149062006361 -:1003700034420020A06200630A0017FC8F8300242F -:1003800000C31024144300078F83002490A200624E -:100390003042000F34420020A0A20062A38800383F -:1003A0008F8300249062000D3042007FA062000D18 -:1003B0008F83003410600018020020218F840030E9 -:1003C0008C8200100043102B1040000924020018FA -:1003D000020020210E0016C5A38200442403FFFF63 -:1003E000104300182404FFFF0A00182400002021F5 -:1003F0008C820010240500010200202100431023FC -:100400008F830024240600010E001646AC62001003 -:100410000A001824000020210E0015F9240500010F -:100420000A00182400002021020020212402000DCF -:100430008FBF00148FB0001027BD00180A0016C52A -:10044000A38200448FBF00148FB0001000801021E1 -:1004500003E0000827BD001827BDFFC8AFB2002089 -:10046000AFBF0034AFB60030AFB5002CAFB400283A -:10047000AFB30024AFB1001CAFB000188F46012805 -:100480003C0308008C6331A02402FF80AF86004843 -:1004900000C318213065007F03452821006218241D -:1004A0003C02000AAF43002400A2282190A200626F -:1004B00000809021AF850014304200FF000211023D -:1004C000A382003890A200BC304200021440000217 -:1004D00024030034240300308F820014A3830028F7 -:1004E000938300388C4200C0A3800044AF82003C5C -:1004F00024020004106203148F84003C8E44000424 -:10050000508003118F84003C8E4200103083FFFF27 -:10051000A784003A106002F7AF8200408F84001475 -:100520002403FF809082006300621024304200FFA9 -:10053000144002C79785003A9383003824020002D2 -:1005400030B6FFFF14620005000088219382002866 -:100550002403FFFD0A001B11AF82003C8F82003C88 -:1005600002C2102B144002998F8400400E0014EC3C -:1005700000000000938300283C040800248477785E -:10058000240200341462002EAF84002C3C0A0800C0 -:100590008D4A77A82402FFFFAFA200100080382107 -:1005A0002405002F3C09080025297378240800FF42 -:1005B0002406FFFF90E2000024A3FFFF00062202B2 -:1005C00000C21026304200FF0002108000491021B6 -:1005D0008C420000306500FF24E7000114A8FFF5FD -:1005E0000082302600061027AFA20014AFA2001030 -:1005F0000000282127A7001027A6001400C51023FB -:100600009044000324A2000100A71821304500FFF8 -:100610002CA200041440FFF9A06400008FA2001077 -:100620001142000724020005024020210E0016C5D9 -:10063000A38200442403FFFF104300642404FFFF4F -:100640003C0208009042777C104000098F82001421 -:10065000024020212402000C0E0016C5A382004493 -:100660002403FFFF104300592404FFFF8F8200146E -:10067000A380001C3C0308008C63777C8C440080C2 -:100680003C0200FF3442FFFF006218240083202B4D -:1006900010800008AF83003402402021240200199A -:1006A0000E0016C5A38200442403FFFF1043004739 -:1006B0002404FFFF8F87003C9782003A8F85003427 -:1006C000AF8700200047202310A0003BA784003AFA -:1006D0008F86001430A200030002102390C300BCD8 -:1006E0003050000300B0282100031882307300014D -:1006F0000013108000A228213C0308008C6331A065 -:100700008F8200483084FFFF0085202B004310219A -:1007100010800011244200888F84002C1082000E6B -:100720003C033F013C0208008C42777800431024D0 -:100730003C0325001443000630E500FF8C820000D6 -:10074000ACC200888C8200100A0018E9ACC2009884 -:100750000E001529000030219382001C8F850014A3 -:100760008F830040020238218F82003CA387001C47 -:1007700094A400E4006218218F82003434841000B5 -:10078000AF83004000503021A4A400E41260000EAA -:10079000AF86003C24E20004A382001C94A200E483 -:1007A00024C30004AF83003C34422000A4A200E430 -:1007B0000A001906000020218F820040AF80003C13 -:1007C00000471021AF820040000020212414FFFFC9 -:1007D000109402092403FFFF3C0808008D08778865 -:1007E0003C0208008C4231B03C03080090637778EB -:1007F00031043FFF0082102B1040001B3067003F88 -:100800003C0208008C4231A88F83004800042180FC -:1008100000621821006418213062007F0342282101 -:100820003C02000C00A228213C020080344200015E -:100830003066007800C230252402FF800062102458 -:10084000AF42002830640007AF4208048F820014D2 -:100850000344202124840940AF460814AF850024B6 -:10086000AF840030AC4301189383003824020003A6 -:10087000146201C7240200012402002610E201C90B -:1008800028E2002710400013240200322402002234 -:1008900010E201C428E200231040000824020024D2 -:1008A0002402002010E201B02402002110E2013FE6 -:1008B000024020210A001AF32402000B10E201B9C1 -:1008C0002402002510E20010024020210A001AF341 -:1008D0002402000B10E201A628E2003310400006BB -:1008E0002402003F2402003110E200920240202145 -:1008F0000A001AF32402000B10E2019D024020219D -:100900000A001AF32402000B8F90002C3C0308000D -:100910008C6331B08F8500308E0400100000A82158 -:100920008CB3001430823FFF0043102B8CB10020A9 -:10093000504001870240202190A3000D2402FF8037 -:1009400000431024304200FF50400181024020212A -:1009500000041382304200031440017D0240202134 -:1009600094A3001C8F8200148E040028A443011459 -:100970008CA20010026218231064000302402021A0 -:100980000A00197C2402001F8F82003400621021AB -:100990000262102B104000088F83002402402021A7 -:1009A000240200180E0016C5A38200441054016CE6 -:1009B0002404FFFF8F8300248F8400348C62001096 -:1009C0000224882100441023AC6200108F8200149E -:1009D000AC7100208C4200680051102B10400009BF -:1009E0008F830030024020212402001D0E0016C516 -:1009F000A38200442403FFFF104301592404FFFF96 -:100A00008F8300308E0200248C6300241043000783 -:100A1000024020212402001C0E0016C5A3820044BF -:100A20002403FFFF1043014E2404FFFF8F840024A2 -:100A30008C82002424420001AC8200241233000482 -:100A40008F8200148C4200685622000E8E02000035 -:100A50008E0200003C030080004310241440000D6F -:100A60002402001A024020210E0016C5A382004471 -:100A70002403FFFF1043013A2404FFFF0A0019BAC0 -:100A80008E0200143C0300800043102450400003F9 -:100A90008E020014AC8000208E0200142411FFFF8F -:100AA000105100062402001B024020210E0016C532 -:100AB000A38200441051012A2404FFFF8E0300008A -:100AC0003C02000100621024104000123C02008031 -:100AD0000062102414400008024020212402001A61 -:100AE0000E0016C5A38200442403FFFF1043011C1F -:100AF0002404FFFF02402021020028210E0016E5F9 -:100B0000240600012403FFFF104301152404FFFF06 -:100B1000241500018F83002402A0302102402021EF -:100B20009462003624050001244200010A001AD70D -:100B3000A46200368F90002C3C0308008C6331B017 -:100B40008E13001032623FFF0043102B10400089CB -:100B50008F8400302402FF809083000D0043102416 -:100B6000304200FF104000842402000D0013138265 -:100B700030420003240300011443007F2402000DCF -:100B80009082000D30420008544000048F820034EF -:100B9000024020210A001A082402002450400004C8 -:100BA0008E03000C024020210A001A0824020027AC -:100BB0008C82002054620006024020218E0300082F -:100BC0008C820024506200098E0200140240202111 -:100BD000240200200E0016C5A382004410540071A8 -:100BE0002403FFFF0A001A3D8F8400242411FFFF15 -:100BF000145100048F860014024020210A001A3884 -:100C0000240200258E0300188CC2007C10620003B1 -:100C10002402000E0A001A38024020218E0300240C -:100C20008C82002810620003240200210A001A3876 -:100C3000024020218E0500288C82002C10A2000387 -:100C40002402001F0A001A38024020218E03002CC3 -:100C500014600003240200230A001A3802402021F5 -:100C60008CC200680043102B1040000324020026B1 -:100C70000A001A38024020218C82001400651821D5 -:100C80000043102B104000088F84002402402021D4 -:100C9000240200220E0016C5A38200441051004118 -:100CA0002403FFFF8F8400242403FFF79082000DAC -:100CB00000431024A082000D8F8600143C0308001E -:100CC0008C6331AC8F82004894C400E08F8500248F -:100CD0000043102130847FFF000420400044102195 -:100CE0003043007F034320213C03000E008320217A -:100CF0002403FF8000431024AF42002CA493000083 -:100D00008CA2002824420001ACA200288CA2002C56 -:100D10008E03002C00431021ACA2002C8E02002C6C -:100D2000ACA200308E020014ACA2003494A2003AAF -:100D300024420001A4A2003A94C600E03C0208004C -:100D40008C4231B024C4000130837FFF1462000F55 -:100D500000803021240280000082302430C2FFFF56 -:100D6000000213C2304200FF000210270A001A7668 -:100D7000000233C02402000D024020210E0016C5DF -:100D8000A38200440A001A7C004018218F820014BC -:100D900002402021240500010E0015F9A44600E0C0 -:100DA000000018210A001B0E006088218F90002C83 -:100DB0003C0308008C6331B08E05001030A23FFF69 -:100DC0000043102B104000612402FF808F8400300C -:100DD0009083000D00431024304200FF5040005C1F -:100DE000024020218F8200341040000B0005138246 -:100DF0008F8200149763000A944200603042FFFF24 -:100E000014430005000513828F8200202404FFFD97 -:100E10000A001AEBAF82003C304200031440000E7F -:100E20000000000092020002104000058E03002422 -:100E300050600015920300030A001AA70240202107 -:100E40008C82002450620010920300030240202193 -:100E50000A001AAF2402000F9082000D30420008F1 -:100E60005440000992030003024020212402001094 -:100E70000E0016C5A38200442403FFFF1043003870 -:100E80002404FFFF92030003240200025462000CBA -:100E9000920200038F820034544000099202000342 -:100EA000024020212402002C0E0016C5A38200441B -:100EB0002403FFFF1043002A2404FFFF92020003D3 -:100EC0000200282102402021384600102CC60001D3 -:100ED0002C4200010E0016E5004630252410FFFFCD -:100EE0001050001F2404FFFF8F8300341060001394 -:100EF000024020213C0208008C42318C0043102B20 -:100F00001440000700000000000028212406000112 -:100F10000E001646000000000A001AEB0000202117 -:100F20002402002D0E0016C5A38200441050000CB0 -:100F30002404FFFF0A001AEB000020210E0015F91F -:100F4000240500010A001AEB0000202102402021A4 -:100F50002402000D0E0016C5A3820044004020218B -:100F60000A001B0E008088211514000E00000000EE -:100F70000E00174C024020210A001B0E0040882161 -:100F80000E0016C5A38200440A001B0E00408821F3 -:100F900014620017022018212402002314E2000525 -:100FA0002402000B0E0017C0024020210A001B0E75 -:100FB0000040882102402021A38200440E0016C573 -:100FC0002411FFFF0A001B0F0220182130A500FF8B -:100FD0000E001529240600019783003A8F82003CF9 -:100FE000A780003A00431023AF82003C0220182162 -:100FF0001220003E9782003A2402FFFD5462003E18 -:101000008E4300208E4200048F830014005610236C -:10101000AE420004906200633042007FA062006331 -:101020008E4200208F840014A780003A34420002D0 -:10103000AE420020A48000E4908200632403FFBF3E -:1010400000431024A08200630A001B518E4300203D -:101050009082006300621024304200FF10400023A1 -:101060009782003A90820088908300BD2485008892 -:101070003042003F2444FFE02C820020A383001C68 -:1010800010400019AF85002C2402000100821804D2 -:10109000306200191440000C3C028000344200020F -:1010A000006210241440000B306200201040000F3A -:1010B0009782003A90A600010240202124050001F9 -:1010C0000A001B4B30C60001024020210A001B4AC7 -:1010D00024050001024020210000282124060001EF -:1010E0000E001646000000009782003A1440FD0CE6 -:1010F0008F8400148E4300203062000410400012E0 -:101100008F84003C2402FFFB00621024AE420020CA -:10111000274301808F4201B80440FFFE8F820048C0 -:10112000AC6200008F420124AC62000424026083A0 -:10113000A462000824020002A062000B3C0210001E -:10114000AF4201B88F84003C8F8300148FBF0034FE -:101150008FB600308FB5002C8FB400288FB30024D9 -:101160008FB200208FB1001C8FB000182402000144 -:1011700027BD003803E00008AC6400C030A500FFC4 -:101180002403000124A900010069102B1040000C69 -:1011900000004021240A000100A31023004A380463 -:1011A00024630001308200010069302B10400002EE -:1011B000000420420107402554C0FFF800A310237B -:1011C00003E00008010010213C020800244260A452 -:1011D0003C010800AC22736C3C0208002442530816 -:1011E0003C010800AC2273702402000627BDFFE01A -:1011F0003C010800A02273743C021EDCAFB2001850 -:10120000AFB10014AFBF001CAFB0001034526F413B -:1012100000008821240500080E001B7202202021F6 -:10122000001180803C07080024E773780002160054 -:1012300002071821AC6200000000282124A200014E -:101240003045FFFF8C6200002CA60008044100021C -:10125000000220400092202614C0FFF8AC64000079 -:10126000020780218E0400000E001B72240500205E -:10127000262300013071FFFF2E2301001460FFE5DB -:10128000AE0200008FBF001C8FB200188FB1001497 -:101290008FB0001003E0000827BD002027BDFFD855 -:1012A000AFB3001CAFB20018AFBF0020AFB1001445 -:1012B000AFB000108F5101408F48014800089402E0 -:1012C000324300FF311300FF8F4201B80440FFFE9C -:1012D00027500180AE1100008F420144AE0200048D -:1012E00024020002A6120008A202000B240200142D -:1012F000AE1300241062002528620015104000087B -:101300002402001524020010106200302402001292 -:10131000106200098FBF00200A001CAD8FB3001CB3 -:101320001062007024020022106200378FBF00207C -:101330000A001CAD8FB3001C3C0208008C4231A097 -:101340002403FF800222102100431024AF42002416 -:101350003C0208008C4231A0022210213042007F62 -:10136000034218213C02000A00621821166000BCEA -:10137000AF830014906200623042000F34420030AC -:10138000A06200620A001CAC8FBF00203C04600019 -:101390008C832C083C02F0033442FFFF00621824C7 -:1013A000AC832C083C0208008C4231A08C832C08B2 -:1013B000244200740002108200021480006218258A -:1013C000AC832C080A001CAC8FBF00203C02080034 -:1013D0008C4231A02403FF800222102100431024FC -:1013E000AF4200243C0208008C4231A03C03000ABA -:1013F000022210213042007F0342102100431021BD -:101400000A001CABAF8200143C0208008C4231A0E1 -:101410002405FF800222102100451024AF42002441 -:101420003C0208008C4231A0022210213042007F91 -:10143000034218213C02000A0062182190620063F6 -:1014400000A21024304200FF10400085AF8300143A -:1014500024620088944300123C0208008C4231A8A8 -:1014600030633FFF00031980022210210043102146 -:101470003043007F03432021004510243C03000C2F -:1014800000832021AF4200289082000D00A210248A -:10149000304200FF10400072AF8400249082000DA3 -:1014A000304200101440006F8FBF00200E0015C89E -:1014B000000000008F4201B80440FFFE0000000061 -:1014C000AE1100008F420144AE020004240200026B -:1014D000A6120008A202000BAE1300240A001CACE6 -:1014E0008FBF00202406FF8002261024AF42002078 -:1014F0003C0208008C4231A031043FFF00042180EF -:101500000222102100461024AF4200243C030800B0 -:101510008C6331A83C0208008C4231A03227007F46 -:101520000223182102221021006418213042007F7A -:101530003064007F034228213C02000A0066182420 -:1015400000A22821034420213C02000C008220211B -:10155000AF4300283C020008034718210062902195 -:10156000AF850014AF8400240E0015C8010080214F -:101570008F4201B80440FFFE8F8200248F84001444 -:10158000274501809042000DACB10000A4B00006D8 -:10159000000216000002160300021027000237C2E4 -:1015A00014C00016248200889442001232033FFFC8 -:1015B00030423FFF14430012240260829083006394 -:1015C0002402FF8000431024304200FF5040000CF2 -:1015D00024026082908200623042000F3442004058 -:1015E000A082006224026084A4A200082402000DEC -:1015F000A0A200050A001C963C022700240260827B -:10160000A4A20008A0A000053C02270000061C00C0 -:101610000062182524020002A0A2000BACA3001057 -:10162000ACA00014ACA00024ACA00028ACA0002CFE -:101630008E42004C8F840024ACA200189083000DD1 -:101640002402FF8000431024304200FF10400005B8 -:101650008FBF00209082000D3042007FA082000DDD -:101660008FBF00208FB3001C8FB200188FB1001401 -:101670008FB000103C02100027BD002803E00008D6 -:04168000AF4201B8BC -:0C1684000800343008003430080033A89F -:10169000080033E0080034140800343808003438F7 -:0816A00008003438080033187B -:0816A8000A000124000000000B -:1016B000000000000000000D747061362E322E31E3 -:1016C0000000000006020101000000000000000010 -:1016D000000000000000000000000000000000000A -:1016E00000000000000000000000000000000000FA -:1016F00000000000000000000000000000000000EA -:1017000000000000000000000000000000000000D9 -:1017100000000000000000000000000000000000C9 -:1017200000000000000000000000000000000000B9 -:101730000000000000000000000000001000000396 -:10174000000000000000000D0000000D3C02080039 -:1017500024421C003C03080024632094AC40000099 -:101760000043202B1480FFFD244200043C1D080090 -:1017700037BD2FFC03A0F0213C1008002610049078 -:101780003C1C0800279C1C000E00015C00000000AF -:101790000000000D3084FFFF308200078F850018A5 -:1017A00010400002248300073064FFF800853021D8 -:1017B00030C41FFF03441821247B4000AF85001C68 -:1017C000AF84001803E00008AF4400843084FFFFBA -:1017D000308200078F8500208F860028104000028D -:1017E000248300073064FFF8008520210086182B31 -:1017F00014600002AF8500240086202303442821C2 -:1018000034068000AF840020AF44008000A6202171 -:1018100003E00008AF84003827BDFFD8AFB3001C39 -:10182000AFB20018AFB00010AFBF0024AFB40020BB -:10183000AFB100143C0860088D1450002418FF7FDD -:101840003C1A8000029898243672380CAD12500071 -:101850008F5100083C07601C3C08600036300001D6 -:10186000AF500008AF800018AF400080AF40008448 -:101870008CE600088D0F08083C0760168CEC000011 -:1018800031EEFFF039CA00103C0DFFFF340B800031 -:101890003C030080034B48212D440001018D282486 -:1018A0003C0253533C010800AC230420AF890038AC -:1018B000AF860028AF840010275B400014A200030D -:1018C00034E37C008CF90004032818218C7F007C11 -:1018D0008C6500783C0280003C0B08008D6B048C0A -:1018E0003C0A08008D4A048834520070AF85003CE1 -:1018F000AF9F00403C13080026731C440240A02107 -:101900008E4800008F46000038C30001306400019B -:1019100010800017AF880034028048218D2F00000E -:101920003C0508008CA5045C3C1808008F1804587E -:1019300001E8102300A280210000C8210202402BF0 -:1019400003198821022838213C010800AC30045CCE -:101950003C010800AC2704588F4E000039CD00012F -:1019600031AC00011580FFED01E04021AF8F003464 -:101970008E5100003C0708008CE7045C3C0D080019 -:101980008DAD04580228802300F0602100007021F2 -:101990000190302B01AE1821006620213C01080087 -:1019A000AC2C045C3C010800AC2404588F460108B0 -:1019B0008F47010030C92000AF860000AF87000CC0 -:1019C0001120000A00C040213C1808008F18042C88 -:1019D000270800013C010800AC28042C3C184000FA -:1019E000AF5801380A000196000000009749010431 -:1019F00000002821014550213122FFFF01625821BA -:101A00000162F82B015F502130D902003C0108002F -:101A1000AC2B048C3C010800AC2A0488172000156C -:101A200024040F0010E400130000000024080D003F -:101A300010E8023B30CD000611A0FFE93C18400041 -:101A4000936E00002409001031C400F01089027167 -:101A500024020070108202E58F880014250F000117 -:101A6000AF8F00143C184000AF5801380A000196AF -:101A700000000000974C01041180FFD93C18400081 -:101A800030C34000146000A1000000008F460178C0 -:101A900004C0FFFE8F87003824100800240F0008C0 -:101AA0008CE30008AF500178A74F0140A7400142E6 -:101AB000974E01048F86000031C9FFFF30CD000131 -:101AC00011A002E1012040212531FFFE241800026F -:101AD000A75801463228FFFFA75101483C190800CA -:101AE0008F39043C172002D08F8C000C30DF00208F -:101AF00017E00002240400092404000130C20C0095 -:101B0000240504005045000134840004A744014A20 -:101B10003C1108008E3104203C1800483C100001A4 -:101B20000238182530CF00020070282511E000048B -:101B3000000018213C19010000B9282524030001E8 -:101B400030DF000453E00005AF8300083C060010BE -:101B500000A6282524030001AF830008AF4510002C -:101B60000000000000000000000000000000000075 -:101B70008F83000810600023000000008F451000D4 -:101B800004A1FFFE000000001060001E0000000025 -:101B90008F4410003C0C0020008C102410400019D1 -:101BA0008F8E000031CD000211A000160000000051 -:101BB000974F101415E0001300000000975910080B -:101BC0003338FFFF27110006001118820003308010 -:101BD00000C7282132300001322300031200032CF9 -:101BE0008CA200000000000D00C7F821AFE2000049 -:101BF0003C0508008CA5043024A600013C01080027 -:101C0000AC2604308F6D00003402FFFFAF8D00045E -:101C10008CEC0000118202A6000020218CED000057 -:101C200031AC01001180028A000000003C02080073 -:101C30008C4204743C0308008C63044C3C1F080075 -:101C40008FFF04703C1808008F18044800483821A2 -:101C50000068802100E8282B03E430210208402B93 -:101C60000304882100C57021022878213C01080066 -:101C7000AC30044C3C010800AC2F04483C01080087 -:101C8000AC2704743C010800AC2E04708F8400184B -:101C90000120302131290007249F000833F91FFF5C -:101CA00003594021AF84001CAF990018251B400048 -:101CB000AF590084112000038F83002024C2000745 -:101CC0003046FFF88F84002800C3282100A4302B61 -:101CD00014C00002AF83002400A428230345602120 -:101CE000340D8000018D10213C0F1000AF850020C5 -:101CF000AF820038AF450080AF4F01788F88001465 -:101D0000250F00010A0001EFAF8F00148F62000859 -:101D10008F670000240500300007760231C300F011 -:101D2000106500A7240F0040546FFF4C8F880014EB -:101D30008F4B01780560FFFE0000000030CA0200F2 -:101D400015400003000612820000000D00061282FA -:101D5000304D0003000D4900012D18210003808043 -:101D6000020D402100086080019380218E1F000039 -:101D700017E00002000000000000000D8F6E00045C -:101D800005C202BD92070006920E000592020004F1 -:101D90003C090001000E18800070F8218FED00183A -:101DA000277100082448000501A96021000830823D -:101DB000AFEC0018022020210E00059E260500141D -:101DC000920A00068F7900043C0B7FFF000A2080F6 -:101DD000009178218DF800043566FFFF0326282442 -:101DE00003053821ADE70004920E0005920D0004B2 -:101DF000960C0008000E10800051C8218F230000AF -:101E0000974901043C07FFFF006758243128FFFF72 -:101E1000010DF82103EC50233144FFFF016430250C -:101E2000AF26000092030007241800011078027505 -:101E3000240F0003106F0285000000008E050010C3 -:101E40002419000AA7590140A7450142921800042D -:101E50008F860000240F0001A7580144A7400146C7 -:101E60009747010430D100023C050041A7470148D3 -:101E700000001821A74F014A1220000330CB0004B4 -:101E80003C0501412403000151600005AF830008B7 -:101E90003C06001000A6282524030001AF8300089B -:101EA000AF4510000000000000000000000000002E -:101EB000000000008F8A00081140000400000000AC -:101EC0008F4410000481FFFE000000008F6B0000B3 -:101ED000920800043C1108008E310444AF8B0004CA -:101EE00097590104311800FF3C0E08008DCE0440C4 -:101EF0003325FFFF03053821022760210000102150 -:101F0000250F000A31E8FFFF0187482B01C2682135 -:101F100001A9F821311000073C010800AC2C044451 -:101F20003C010800AC3F0440120000038F8C0018F5 -:101F30002506000730C8FFF8010C682131BF1FFFDC -:101F4000AF8C001CAF9F0018AF5F00849744010462 -:101F5000035F80213084FFFF308A000711400003B7 -:101F6000261B4000248900073124FFF88F820020BF -:101F70008F850028008220210085702B15C000026B -:101F8000AF820024008520233C0B08008D6B048C5D -:101F90003C0A08008D4A04880344882134038000E9 -:101FA000022310213C0F1000AF840020AF820038C4 -:101FB000AF440080AF4F01780A0002968F8800146A -:101FC0008F5001780600FFFE30D10200162000037A -:101FD000000612820000000D00061282305F00032E -:101FE000001F1900007F302100062080009FC821BB -:101FF00000194880013380218E1800001300000270 -:10200000000000000000000D8F6C000C058001FB3B -:102010008F870038240E0001AE0E00008CE300080C -:10202000A20000078F65000400055402314D00FF37 -:1020300025A80005000830822CCB00411560000265 -:10204000A20A00040000000D8F7800043C03FFFF8B -:1020500000E02821330BFFFF256C000B000C1082E1 -:1020600000022080008748218D3F000026040014D4 -:10207000A618000803E3C8240E00059EAD39000031 -:102080008F4F01083C11100001F1382410E001AB22 -:1020900000000000974D01049208000725AAFFECFC -:1020A000350600023144FFFFA2060007960600082D -:1020B0002CC7001354E0000592030007921100079B -:1020C000362F0001A20F0007920300072418000119 -:1020D000107801C224090003106901D58F880038E7 -:1020E00030CBFFFF257100020011788331E400FF3F -:1020F00000042880A20F000500A848218D2D0000B3 -:10210000974A01043C0EFFFF01AEF8243143FFFF64 -:10211000006B1023244CFFFE03ECC825AD390000F2 -:10212000920600053C03FFF63462FFFF30D800FF43 -:102130000018388000F08821922F00143C04FF7FA3 -:102140003487FFFF31EE000F01C65821316500FFD3 -:1021500000055080015068218DAC00200148F82115 -:10216000A20B00060182C824AE0C000CAFF9000CD3 -:10217000920900068E11000C032778240009C08004 -:102180000310702195C60026030828210227202469 -:10219000AE04000CADCF0020ADC60024ACA60010EC -:1021A0008F8800003C0B08008D6B048C3C0A0800F3 -:1021B0008D4A0488241F001024190002A75F0140E3 -:1021C000A7400142A7400144A7590146974901048D -:1021D00024070001310600022538FFFEA7580148F8 -:1021E0003C050009A747014A10C000030000182160 -:1021F0003C05010924030001310C00045180000555 -:10220000AF8300083C08001000A828252403000123 -:10221000AF830008AF451000000000000000000080 -:1022200000000000000000009205000424AE00023F -:1022300031CD0007000D182330620007AE020010F8 -:102240008F90000812000004000000008F4F100063 -:1022500005E1FFFE000000008F7100008F8E001866 -:102260003C0308008C630444AF91000497450104CB -:1022700025CF001031E61FFF30A2FFFFAF8E001CFC -:10228000AF860018AF4600842449FFFE3C0C0800CE -:102290008D8C0440974D010401208021000947C323 -:1022A0000070C02131A9FFFF0310F82B0188C8215D -:1022B000033F202103463821313100073C0108004B -:1022C000AC3804443C010800AC2404401220000354 -:1022D00024FB40002527000730E9FFF88F86002007 -:1022E0008F8400280126382100E4C02B170000024B -:1022F000AF86002400E438230347202134198000EE -:10230000009910213C0F1000AF870020AF820038E9 -:10231000AF470080AF4F01780A0002968F88001403 -:102320009747010410E0FDAE3C1840008F5801783B -:102330000700FFFE30C5400010A000033C1F00084E -:102340000000000D3C1F0008AF5F01402410080092 -:102350008F860000AF5001789744010430D9000106 -:10236000132000ED3086FFFF24CCFFFE240D000279 -:10237000A74D0146A74C01488F9100182408000D75 -:10238000A748014A8F630000262F000831E21FFF93 -:102390000342702130C90007AF830004AF91001CD5 -:1023A000AF82001800C03821AF4200841120000322 -:1023B00025DB400024D800073307FFF88F85002075 -:1023C0008F84002800E5302100C4382B14E000027F -:1023D000AF85002400C430238F8400140346F82105 -:1023E000340C8000AF86002003EC8021AF460080D3 -:1023F000249900013C0610003C184000AF460178CB -:10240000AF900038AF990014AF5801380A00019618 -:10241000000000008F630000975101043067FFFF48 -:102420003228FFFF8F4F017805E0FFFE30EC0007F8 -:10243000000CF82333F0000724F9FFFE2404000AFF -:10244000A7440140A7500142A7590144A7400146B3 -:10245000A74801488F45010830B800201700000246 -:10246000240300092403000130CD0002A743014AE0 -:102470003C04004111A00003000018213C0401416C -:102480002403000130C9000451200005AF83000877 -:102490003C0600100086202524030001AF830008BD -:1024A000AF44100000000000000000000000000029 -:1024B000000000008F8E000811C000040000000022 -:1024C0008F4210000441FFFE000000008F7F0000DB -:1024D000276400088F91003CAF9F0004948500089A -:1024E0009490000A9499000C30AFFFFF0010C400D4 -:1024F0003323FFFF11F100A6030320253C0E080043 -:102500008DCE04443C0C08008D8C044000E88821EA -:102510002626FFFE01C628210000682100A6F82B10 -:10252000018D2021009F80213C010800AC2504443E -:102530003C010800AC30044024E200083042FFFFB8 -:102540003047000710E000038F830018244F000776 -:1025500031E2FFF83106FFFF30C800070043802159 -:1025600032191FFF0359C021AF83001CAF99001817 -:10257000271B4000AF590084110000038F8C0020FE -:1025800024C5000730A6FFF88F84002800CC28213E -:1025900000A4F82B17E00002AF8C002400A428232D -:1025A000AF850020AF4500803C0408008C840434D3 -:1025B00003454821340E8000012E6821108000055B -:1025C000AF8D0038939100172406000E12260011DB -:1025D0002407043F3C021000AF4201788F880014AA -:1025E000250F00010A0001EFAF8F00140E0005C493 -:1025F00000E020218F8800143C0B08008D6B048CB8 -:102600003C0A08008D4A0488250F00010A0001EFEA -:10261000AF8F00143C021000A7470148AF42017879 -:102620000A0004CE8F88001424040F001184003D9A -:1026300030CE002015C0000224030009240300014D -:102640000A00021AA743014A0A00020DA7400146E8 -:1026500094EF000894F1000A94F0000C8F8C003C79 -:10266000001174003207FFFF31EDFFFF11AC00379E -:1026700001C720253C1808008F1804443C0F0800AF -:102680008DEF0440000080210308682101A8382B49 -:1026900001F0702101C760213C010800AC2D044409 -:1026A0003C010800AC2C04400A00027A8F84001818 -:1026B0003C0208008C42047C3C0308008C630454F8 -:1026C0003C1F08008FFF04783C1808008F18045046 -:1026D000004838210068802100E8282B03E43021DD -:1026E0000208402B0304882100C5702102287821AC -:1026F0003C010800AC3004543C010800AC2F0450ED -:102700003C010800AC27047C3C010800AC2E047896 -:102710000A00027A8F840018A74001460A00043597 -:102720008F91001830CD002015A0FFC52403000DA7 -:10273000240300050A00021AA743014A974E010428 -:1027400025C5FFF00A00038130A4FFFF8F980040E9 -:102750001498FFC8000010213C0508008CA5046CEB -:102760003C1F08008FFF046800A8C8210328302BF5 -:1027700003E22021008640213C010800AC39046CB2 -:102780003C010800AC2804680A00027A8F84001813 -:102790008F8C0040148CFF5900E8C8213C180800B9 -:1027A0008F18046C3C1108008E3104682723FFFE4B -:1027B00003034821000010210123302B0222702145 -:1027C00001C668213C010800AC29046C3C010800EA -:1027D000AC2D04680A0004A524E200088F880038A4 -:1027E0003C03FFFF8D02000C0043F82403E4C825DE -:1027F000AD19000C0A00038F30CBFFFF0A0003C3A2 -:10280000AE000000974A0104920400048E26000CDA -:10281000014458212579FFF200C7C0243325FFFF6A -:1028200003053825AE27000C0A0002E68E050010CD -:102830003C0DFFFF8D0A0010014D582401646025F6 -:10284000AD0C00100A00038F30CBFFFF974301044B -:10285000920E00048E290010006E1021244DFFEE10 -:102860000127602431A8FFFF0188F825AE3F001042 -:102870000A0002E68E0500108E0F000CAE0000006C -:1028800000078880023028210A0002B8ACAF00207F -:102890001460000D3058FFFF3C04FFFF0044682423 -:1028A00001A47026000E602B000D102B004CF824A4 -:1028B00013E00002000000000000000D8CAF0000DB -:1028C0000A00025001E410253B03FFFF0003882BA0 -:1028D0000018802B0211202410800002000000004C -:1028E0000000000D8CB900000A0002503722FFFFE3 -:1028F0003084FFFF30A5FFFF108000070000182183 -:1029000030820001104000020004204200651821BE -:102910001480FFFB0005284003E000080060102140 -:1029200010C00007000000008CA2000024C6FFFFBA -:1029300024A50004AC82000014C0FFFB2484000422 -:1029400003E000080000000010A0000824A3FFFF1F -:10295000AC86000000000000000000002402FFFF21 -:102960002463FFFF1462FFFA2484000403E00008DC -:1029700000000000308EFFFF30D8FFFF00057C0014 -:1029800001F8602539CDFFFF01AC5021014C582BD7 -:10299000014B4821000944023127FFFF00E83021A4 -:1029A0000006240230C5FFFF00A418213862FFFF93 -:1029B00003E000083042FFFF3C0C08008D8C0484CB -:1029C000240BFF8027BDFFD001845021014B4824F8 -:1029D000AF4900203C0808008D080484AFB20020F5 -:1029E000AFB00018AFBF0028AFB30024AFB1001CD8 -:1029F000936600040104382130E4007F009A10211E -:102A00003C0300080043902130C500200360802172 -:102A10003C080111277B000814A000022646007024 -:102A20002646006C9213000497510104920F000493 -:102A30003267000F322EFFFF31ED004001C728231F -:102A400011A0000500004821925900BC3338000451 -:102A50001700009000000000924300BC307F00048B -:102A600013E0000F0000000010A0000D00000000A7 -:102A7000960E0002240AFF8000A7602125CDFFFEEC -:102A8000A74D1016920B0004014B2024308200FF4A -:102A900010400085010C40253C0F0400010F40252B -:102AA0008F5301780660FFFE2404000AA74401400A -:102AB000960D00022404000931AC0007000C5823D5 -:102AC000316A0007A74A0142960200022443FFFE32 -:102AD000A7430144A7400146975F0104A75F01484F -:102AE0008F590108333800205300000124040001ED -:102AF000920F000431EE001015C000023483001064 -:102B000000801821A743014A0000000000000000D7 -:102B10000000000000000000AF48100000000000AE -:102B20000000000000000000000000008F511000B5 -:102B30000621FFFE3113FFFF1260000300000000BA -:102B40008F481018ACC8000096030006307FFFFFC6 -:102B500027F900020019988200138880023B302177 -:102B60008CD800001520005700183402920300048E -:102B70002405FF8000A3F82433F100FF1220002C6D -:102B800000000000924700BC30F200021240002812 -:102B900000000000974B100C2562FFFEA7421016A4 -:102BA000000000003C0A040035490030AF49100025 -:102BB0000000000000000000000000000000000015 -:102BC0008F4C10000581FFFE000000009749100C9B -:102BD0008F51101C00C020213127FFFF24F200304C -:102BE000001218820003288000BBF8213226FFFF64 -:102BF000AFF100000E0005B300112C020013C880D5 -:102C0000033B98218E78000000027400AFB80010DA -:102C10008FA80010310FFFFFAFAF00108FA400107E -:102C200001C46825AFAD00108FA60010AE6600008D -:102C300097730008976D000A9766000C8F8A003C16 -:102C4000000D5C0030CCFFFF3262FFFF104A0036FF -:102C5000016C2025960600023C10100024D30008C9 -:102C60000E00013B3264FFFF974C01040E00014946 -:102C70003184FFFFAF5001788FBF00288FB300244D -:102C80008FB200208FB1001C8FB0001803E0000845 -:102C900027BD003010A0FF700000000024A5FFFC3D -:102CA0000A0005EC240900048CD10000AF51101873 -:102CB0008F5301780660FF7A2404000A0A00060197 -:102CC0000000000000A7C8218F8800388F4E101C1C -:102CD0000019C0820018788001E82021AC8E000025 -:102CE000000E2C0200C020210E0005B331C6FFFFEC -:102CF000023B28218CAD000000025400004030212E -:102D0000AFAD00108FAC0010318BFFFFAFAB0010E8 -:102D10008FA2001001424825AFA900108FA7001014 -:102D20000A000631ACA700008F8F0040148FFFC946 -:102D30000000000097420104960B00023C050800C9 -:102D40008CA5046C3049FFFF316AFFFF3C1108007D -:102D50008E310468012A382124F2FFFE00B240219E -:102D60000012FFC30112C82B023FC021031920210A -:102D70003C010800AC28046C3C010800AC24046849 -:102D80000A00066B0000000000A4102B1040000990 -:102D9000240300010005284000A4102B04A0000318 -:102DA000000318405440FFFC000528401060000755 -:102DB000000000000085302B14C000020003184200 -:102DC000008520231460FFFB0005284203E0000873 -:102DD000008010218F85002C27BDFFE800053027DB -:102DE0002CC300012CA40002008310251040000316 -:102DF000AFBF00102405007FAF85002C00052827F9 -:102E000030A5FFFF0E000592240426F58F830030C5 -:102E1000240402BD004030210083382B10E000095B -:102E200024050001000420400083102B04800003CF -:102E3000000528405440FFFC0004204010A000087A -:102E400000C350210064402B1500000200052842F9 -:102E50000064182314A0FFFB0004204200C350218B -:102E60008FBF0010000A4C02312200FF27BD00185E -:0C2E7000AF8A002C03E00008AF8900309E -:042E7C000A00002A1E -:102E800000000000000000000000000D74787036A3 -:102E90002E322E310000000006020100000000006A -:102EA000000001360000EA600000000000000000A1 -:102EB0000000000000000000000000000000000012 -:102EC0000000000000000000000000000000000002 -:102ED00000000000000000000000000000000016DC -:102EE00000000000000000000000000000000000E2 -:102EF00000000000000000000000000000000000D2 -:102F000000000000000000000000000000000000C1 -:102F1000000000000000138800000000000005DC35 -:102F2000000000000000000010000003000000008E -:102F30000000000D0000000D3C02080024423C206F -:102F40003C03080024633DD4AC4000000043202B28 -:102F50001480FFFD244200043C1D080037BD7FFCA7 -:102F600003A0F0213C100800261000A83C1C08001B -:102F7000279C3C200E0002BA000000000000000D5B -:102F80008F8300383C088000350700708CE5000016 -:102F9000008330253C02900000C22025AF85003020 -:102FA000AF4400208F4900200520FFFE3C03800035 -:102FB000346200708C4500008F8600303C19080098 -:102FC0008F39007C3C0E08008DCE007800A62023AF -:102FD00003245821000078210164682B01CF60216F -:102FE000018D50213C010800AC2B007C3C01080005 -:102FF000AC2A007803E00008000000000A0000414D -:10300000240400018F8400383C05800034A20001B4 -:103010000082182503E00008AF43002003E0000809 -:10302000000010213084FFFF30A5FFFF1080000753 -:1030300000001821308200011040000200042042EC -:10304000006518211480FFFB0005284003E00008FC -:103050000060102110C00007000000008CA20000DA -:1030600024C6FFFF24A50004AC82000014C0FFFBAF -:103070002484000403E000080000000010A0000801 -:1030800024A3FFFFAC860000000000000000000049 -:103090002402FFFF2463FFFF1462FFFA248400046C -:1030A00003E0000800000000308AFFFF93A800132F -:1030B000A74A014497490E1630C600FF3C02100093 -:1030C000A7490146AF450148A3460152A748015A06 -:1030D000AF4701608FA400188FA30014A7440158C4 -:1030E000AF43015403E00008AF42017803E0000859 -:1030F000000000003C038000346200708C49000036 -:103100008F8800002484000727BDFFF83084FFF873 -:10311000AF890030974D008A31ACFFFFAFAC0000A3 -:103120008FAB0000016850232547FFFF30E61FFFEB -:1031300000C4282B14A0FFF73C0C8000358B0070D6 -:103140008D6A00003C0708008CE700843C060800FC -:103150008CC6008000081082014918230002788084 -:1031600000E370210000202101C3C82B00C4C0214E -:1031700001FA4021031948212502400027BD00081B -:103180003C010800AC2E00843C010800AC29008002 -:1031900003E00008000000008F8200002486000782 -:1031A00030C5FFF800A2182130641FFF03E00008BB -:1031B000AF8400008F8700388F8A004027BDFFB89A -:1031C0008F860044AFB60040AFBF0044AFB5003CAF -:1031D000AFB40038AFB30034AFB20030AFB1002CA1 -:1031E000AFB000288F4501048D4900ACAF47008087 -:1031F0008CC8002000A938230000B021AF480E1071 -:103200008F440E1000004821AF440E148CC20024DD -:10321000AF420E188F430E18AF430E1C10E001256D -:103220002D230001936B0008116000D40000000002 -:10323000976E001031CDFFFF00ED602B158000CFA1 -:103240000000000097700010320FFFFFAF4F0E001C -:103250008F520000325100081220FFFD00000000D4 -:1032600097540E088F460E043285FFFF30B30001DD -:1032700012600132000000000000000D30B8A040D4 -:1032800024150040131500C030A9A0001120012D05 -:1032900000000000937F000813E000080000000019 -:1032A00097630010306BFFFF00CB402B1100000331 -:1032B00030AC00401180012300000000A785003CD5 -:1032C000AF8600349366000800E02821AFA70020F5 -:1032D00014C0012427B30020AF60000C9782003C8B -:1032E0003047400014E00002240300162403000EBF -:1032F00024194007A363000AAF790014938A003EA3 -:103300008F740014315800070018AA4002959025C8 -:10331000AF7200149784003C8F700014309100103D -:1033200002117825AF6F0014978E003C31CD000854 -:1033300011A00147000028218F6700143C021000F3 -:103340003C0C810000E22825AF65001497460E0A68 -:103350002408000E3405FFFC30C3FFFF006C582525 -:10336000AF6B0004A3680002937F000A27E9000402 -:10337000A369000A9786003C9363000A30CC1F00C3 -:10338000000C598301634021251F0028A37F0009F9 -:1033900097490E0CA769001093790009272A0002AB -:1033A000315800070018A82332B10007A371000BA1 -:1033B00093740009976400108F910034978F003C3C -:1033C000329200FF024480210205702131ED00405D -:1033D00011A0000531C4FFFF0091282B3C12800092 -:1033E00010A000140000A0210224382B14E0011BBF -:1033F0008FA500208F4D0E14AF4D0E108F420E1C66 -:10340000AF420E18AF440E008F4F000031EE00089F -:1034100011C0FFFD0000000097540E0800808821B5 -:1034200000009021A794003C8F500E04241400014A -:10343000AF900034976400103095FFFF8E68000055 -:103440000111F82317E00009AE7F00008F6500141A -:103450008F8B004434A60040AF6600148F4C0E10D2 -:10346000AD6C00208F430E18AD63002493670008F5 -:1034700014E000D2000000000E00009E24040010A2 -:103480008F8900483C08320000402821312600FF87 -:103490000006FC0003E8502525390001AF990048DB -:1034A000AC4A0000937800099370000A330400FFCF -:1034B00000047400320F00FF01CF6825AC4D0004FA -:1034C0008F820048064000EAACA20008ACA0000CC5 -:1034D0009783003C306B0008156000022628000628 -:1034E00026280002974E0E148F450E1C8F6700048D -:1034F000936D000231C4FFFF31A200FFAFA20010A4 -:103500008F6C0014AFA800180E00008BAFAC001435 -:10351000240400100E0000C7000000008E7200009E -:1035200016400005000000008F6400142405FFBF52 -:1035300000859824AF7300148F79000C033538216F -:10354000AF67000C9375000816A00008000000008B -:1035500012800006000000008F7F00143C0BEFFF7C -:103560003568FFFE03E84824AF690014A37400081F -:103570008FA500200A00024602202021AF470E003E -:103580000A0000F5000000008F5901780720FFFEB7 -:10359000241F08008F840000AF5F0178974B008ADA -:1035A000316AFFFF014448232528FFFF31021FFF36 -:1035B0002C4300081460FFF9000000008F8E0048C3 -:1035C0008F8D003800C048210344202125C600010A -:1035D000240C0F00AF86004800E938232486400001 -:1035E00031CA00FF11AC0005240800019391003E90 -:1035F0003230000700107A4035E80001000AAC00C4 -:103600003C18010002B8A025AC9440008F930048FC -:1036100030B2003630A40008ACD30004108000970C -:1036200001123025974E0E0A8F8D00003C0281005A -:1036300031CCFFFF25AB0008018240253C03100080 -:1036400031651FFF25390006241F000EAF480160B9 -:1036500000C33025A75F015AAF850000A759015864 -:1036600014E0000A8F93003824120F0052720002F7 -:103670002416000134C600408F580E108F94004469 -:10368000AE9800208F550E18AE9500248F450E146D -:10369000AF4501448F590E1CAF590148A34A01524E -:1036A0003C0A1000AF460154AF4A017814E0FEDD39 -:1036B0002D2300010076A025128000178FBF004443 -:1036C0008F84003824160F0010960084000000003C -:1036D0008F45017804A0FFFE24150F001095006EA1 -:1036E000000000008F470E14240202403C1F10000F -:1036F000AF4701448F440E1CAF440148A340015220 -:10370000A740015AAF400160A7400158AF420154A1 -:10371000AF5F01788FBF00448FB600408FB5003C8B -:103720008FB400388FB300348FB200308FB1002CCB -:103730008FB0002803E0000827BD004814C0FED069 -:1037400030B8A0408F420E148F84004400004821FE -:10375000AC8200208F510E1CAC9100240A00020E96 -:103760002D2300018F910034978A003C3C12800089 -:103770000220A821315800401700FF300000A0218E -:10378000976900108F9200343139FFFF13320035F2 -:1037900000002021008048211480FEA000A03821D4 -:1037A0008F420E148F840044AC8200208F510E1C77 -:1037B000AC9100240A00020E2D230001936A000937 -:1037C0009378000B315000FF330F00FF020F702180 -:1037D00025C2000A3050FFFF0E00009E020020218B -:1037E0008F8600483C1F410024CD0001AF8D00486A -:1037F000936C000930C600FF00064400318300FFCF -:10380000246B0002010B4825013FC825AC5900007C -:103810008F67000C97440E1400F22825AC45000475 -:103820008F450E1C8F670004936A00023084FFFFEF -:10383000315800FFAFB800108F6F0014AFB10018FF -:103840000E00008BAFAF00140A0001A60200202179 -:10385000AF6000040A00013EA36000020A000246B5 -:1038600000002021000090210A00017024140001B2 -:103870003C1280000A000195ACB2000C8F91000050 -:1038800025240002A744015826300008320F1FFFEC -:103890000A0001F9AF8F0000AF40014C1120002C4D -:1038A000000000008F590E10AF5901448F430E18CD -:1038B000240200403C1F1000AF430148A3400152C6 -:1038C000A740015AAF400160A7400158AF420154E0 -:1038D000AF5F01780A0002278FBF00441120000665 -:1038E0000000000097460E0830CC00401580000212 -:1038F000000000000000000D8F4D017805A0FFFEC4 -:103900000000000097530E103C120500240E20000A -:10391000326AFFFF0152C025AF58014C8F4F0E1481 -:103920003C021000AF4F01448F500E1CAF500148B5 -:10393000A34001528F840038A740015AAF40016074 -:10394000A7400158AF4E01540A000215AF4201785A -:103950008F490E14AF4901448F430E1C0A00028E9A -:10396000240200403C0E20FF27BDFFE03C1A8000EF -:103970003C0F800835CDFFFDAFBF001CAFB2001873 -:10398000AFB10014AFB00010AF8F0040AF4D0E00CC -:103990000000000000000000000000000000000027 -:1039A000000000003C0C00FF358BFFFDAF4B0E000C -:1039B0003C0660048CC95000240AFF7F3C11600063 -:1039C000012A40243507380CACC750008E24043837 -:1039D00024050009AF4500083083FFFF38622F71CE -:1039E0002450C0B3AF8000480E000068AF800000D4 -:1039F00052000001AE20442C0E0004353C11800022 -:103A00000E000ED9363000708F8A00403C1208003C -:103A100026523C88020088218E0800008F5F00003B -:103A20003BF900013338000113000017AF88003064 -:103A3000022048218D2700003C0F08008DEF006C0C -:103A40003C0C08008D8C006800E8C02301F8282198 -:103A50000000682100B8302B018D582101664021FB -:103A60003C010800AC25006C3C010800AC28006853 -:103A70008F44000038830001306200011440FFEDE4 -:103A800000E04021AF8700308E0C00003C050800AC -:103A90008CA5006C3C0408008C84006801883023ED -:103AA00000A638210000102100E6402B00821821DA -:103AB0000068F8213C010800AC27006C3C010800BC -:103AC000AC3F00688F49010025590088AF99004438 -:103AD000AF890038AF4900208E070000AF87003063 -:103AE0008F4D017805A0FFFE000000008E0600004B -:103AF0003C0B08008D6B00743C0408008C84007043 -:103B000000C728230165F8210000102103E5402BA0 -:103B10000082382100E8C821240908003C0108007F -:103B2000AC3F00743C010800AC390070AF4901782B -:103B300093580108A398003E938F003E31EE000198 -:103B400015C000158F830038240E0D00106E00196B -:103B5000240F0F00106F001D00000000915900009D -:103B600024180050332900FF113800043C1F400086 -:103B7000AF5F01380A0002E7000000000E00090EE6 -:103B8000000000008F8A00403C1F4000AF5F0138FA -:103B90000A0002E700000000938D003E31AC0006F1 -:103BA000000C51000E0000CE0152D8210A00034340 -:103BB0008F8A00403C1B0800277B3D080E0000CE8A -:103BC000000000000A0003438F8A00403C1B0800ED -:103BD000277B3D280E0000CE000000000A000343B2 -:103BE0008F8A004090AA00018FAB00108CAC0010AF -:103BF0003C0300FF8D680004AD6C00208CAD001408 -:103C000000E060213462FFFFAD6D00248CA7001836 -:103C10003C09FF000109C024AD6700288CAE001CE0 -:103C20000182C82403197825AD6F0004AD6E002C05 -:103C30008CAD0008314A00FFAD6D001C94A9000254 -:103C40003128FFFFAD68001090A70000A5600002BA -:103C5000A1600004A167000090A30002306200FF91 -:103C60000002198210600005240500011065000E95 -:103C70000000000003E00008A16A00018CD80028C1 -:103C8000354A0080AD7800188CCF0014AD6F001459 -:103C90008CCE0030AD6E00088CC4002CA16A0001EF -:103CA00003E00008AD64000C8CCD001CAD6D001865 -:103CB0008CC90014AD6900148CC80024AD680008DC -:103CC0008CC70020AD67000C8CC200148C8300648C -:103CD0000043C82B13200007000000008CC2001412 -:103CE000144CFFE400000000354A008003E00008A7 -:103CF000A16A00018C8200640A00039900000000A0 -:103D000090AA000027BDFFF88FA9001CA3AA0000FD -:103D10008FAE00003C0FFF808FA8001835E2FFFF38 -:103D20008CCD002C01C26024AFAC0000A1200004A7 -:103D300000E06021A7A000028FB800008D270004DA -:103D40000188182100A0582100C05021006D2826AC -:103D50003C06FF7F3C0F00FF2CAD000135EEFFFF5E -:103D600034D9FFFF3C02FF0003193024000D1DC0B1 -:103D7000010EC82400E2C02400C370250319782571 -:103D8000AD2E0000AD2F00048D450024AFAE000025 -:103D9000AD2500088D4D00202405FFFFAD2D000C42 -:103DA000956800023107FFFFAD27001091660018EB -:103DB00030C200FF000219C2506000018D4500347E -:103DC000AD2500148D67000827BD0008AD27001C35 -:103DD0008C8B00CCAD2C0028AD20002CAD2B00240A -:103DE000AD20001803E00008AD20002027BDFFE053 -:103DF000AFB20018AFB10014AFB00010AFBF001CDD -:103E00009098000000C088213C0D00FF330F007F18 -:103E1000A0CF0000908E000135ACFFFF3C0AFF00F0 -:103E2000A0CE000194A6001EA22000048CAB0014BA -:103E30008E29000400A08021016C2824012A40243E -:103E40000080902101052025A6260002AE24000452 -:103E500026050020262400080E0000762406000215 -:103E600092470000260500282624001400071E00A3 -:103E70000003160324060004044000032403FFFF8C -:103E8000965900023323FFFF0E000076AE23001088 -:103E9000262400248FBF001C8FB200188FB100149D -:103EA0008FB0001024050003000030210A000080BC -:103EB00027BD002027BDFFD8AFB1001CAFB0001850 -:103EC000AFBF002090A80000240200018FB0003C8A -:103ED0003103003F00808821106200148FAA00384F -:103EE000240B0005506B0016AFAA001000A0202183 -:103EF00000C028210E0003DC02003021922400BC07 -:103F0000308300021060000326060030ACC00000C1 -:103F100024C600048FBF00208FB1001C8FB0001892 -:103F200000C0102103E0000827BD0028014038210F -:103F30000E00035AAFB000100A0004200000000079 -:103F40000E0003A1AFB000140A000420000000001E -:103F50003C02000A034218213C04080024843D6C02 -:103F60002405001A000030210A000080AF830054AD -:103F70003C038000346200708C48000000A058218F -:103F800000C04821308A00FFAF8800308F4401789C -:103F90000480FFFE3C0C8000358600708CC500005C -:103FA0003C0308008C6300743C1808008F180070F4 -:103FB00000A82023006468210000C82101A4782BF8 -:103FC0000319702101CF60213C010800AC2D007461 -:103FD0003C010800AC2C00708F480E14AF4801441F -:103FE000AF47014CA34A0152A74B01589346010821 -:103FF00030C5000854A0000135291000934B09007A -:1040000024070050316A00FF11470007000000003C -:104010008F450E1CAF450148AF4901543C091000C3 -:1040200003E00008AF490178934D010831A800086A -:104030001100001000000000934F010831EE001045 -:1040400051C00001352900083C04080090843DD08F -:10405000A34401508F4309A4AF4301488F4209A0F4 -:10406000AF420144AF4901543C09100003E000088D -:10407000AF4901783C1908008F393D8C333800086E -:104080005700FFF1352900080A0004730000000002 -:1040900024070040AF470814AF4008108F4209447E -:1040A0008F4309508F4409548F45095C8F46094C52 -:1040B000AF820064AF830050AF84004CAF85005CDA -:1040C00003E00008AF8600609346010930C5007F19 -:1040D000000518C0000521400083102103E00008FE -:1040E000244200883C09080091293D9124A800023F -:1040F0003C05110000093C0000E8302500C51825EA -:1041000024820008AC83000003E00008AC800004B7 -:104110009347010B8F4A002C974F09083C18000E5B -:104120000358482131EEFFFF000E41C0AF48002C7C -:1041300097430908952C001A0080402124030001B0 -:10414000318BFFFFAC8B00008D2D001C00A058218F -:1041500000C06021AC8D00048D24002030E70040B9 -:10416000AD04000891220019304400031083004878 -:104170002885000214A00062240600021086005662 -:1041800024190003109900660000000010E0003AB6 -:10419000000000003C07080094E73D8624E200018F -:1041A000934F0934934709219525002A31EE00FFEA -:1041B000000E488230ED00FF978700580009360056 -:1041C000000D1C003044FFFF00C310250044C02533 -:1041D00000A778213C19400003197025000F4C00FE -:1041E000AD090004AD0E0000934D09203C0300060C -:1041F00025090014000D360000C32025AD04000879 -:104200008F59092C24E5000130A27FFFAD19000C65 -:104210008F580930A782005825020028AD180010D9 -:104220008F4F0938AD0F0014AD2B00048F4E09409D -:10423000AD2E0008934D09373C05080090A53D9030 -:104240008F4409488F46094031A700FF00EC182130 -:10425000008678230003C7000005CC000319602501 -:1042600031E8FFFC01885825AD2B000CAD20001073 -:1042700003E00008AF4A002C3C0D080095AD3D86D8 -:104280003C0E080095CE3D800A0004C901AE102105 -:104290003C05080094A53D8A3C06080094C63D8074 -:1042A0003C18080097183D7C952E002400A6782124 -:1042B00001F86823000E240025A2FFF200821825D1 -:1042C00024190800AD03000CAD190014AD00001056 -:1042D0000A0004C425080018952600249525002806 -:1042E0000006C40000057C00370E810035ED080093 -:1042F000AD0E000CAD0D00100A0004C4250800141A -:104300001480FFA200000000952400240004140083 -:1043100034430800AD03000C0A0004C42508001053 -:104320003C03080094633D8A3C05080094A53D8049 -:104330003C06080094C63D7C953900249538002839 -:10434000006520210086782300196C000018740095 -:1043500025E2FFEE01C2202535A3810024190800C3 -:10436000AD03000CAD040010AD190018AD00001431 -:104370000A0004C42508001C03E00008240201F41C -:1043800027BDFFE8AFB00010AFBF00140E00006003 -:104390000080802124050040AF4508148F83005021 -:1043A0008F84004C8F85005C0070182100641023FE -:1043B00018400004AF830050AF6300548F66005470 -:1043C000AF86004C1200000C000000008F44007407 -:1043D000936800813409FA002D07000710E00005FA -:1043E00000891021936C0081240B01F4018B50048F -:1043F00001441021AF62000C8F4E095C01C5682397 -:1044000019A000048FBF00148F4F095CAF8F005CB0 -:104410008FBF00148FB000100A00006227BD001883 -:104420008F8400648F8300508F82004CAF640044FF -:10443000AF63005003E00008AF6200543C0380000B -:10444000346200708C43000027BDFFF8308700FF06 -:1044500030A900FF30C800FFAF8300308F440178DF -:104460000480FFFE3C028000345900708F38000049 -:10447000A3A700033C0708008CE700748FAC000082 -:104480003C0608008CC60070030378233C0E7FFFB7 -:1044900000EFC82135CDFFFF00005021018D2824F9 -:1044A00000CA1821000847C0032F202B00A81025A0 -:1044B0000064C021AFA200003C010800AC390074C8 -:1044C0003C010800AC380070934F010AA3A0000221 -:1044D0003C0E80FFA3AF00018FAC0000312B007FAA -:1044E00035CDFFFF018D4824000B5600012A4025E1 -:1044F000240730002406FF803C05100027BD00087B -:10450000AF48014CAF470154A7400158A3460152A0 -:1045100003E00008AF45017827BDFFE8AFBF0014F6 -:10452000AFB000108F6500743C068000309000FF33 -:1045300000A620250E000060AF64007493630005A0 -:10454000346200080E000062A36200050200202110 -:104550008FBF00148FB00010240500052406000151 -:104560000A00057027BD001827BDFFE03C0380004E -:10457000AFB00010AFBF0018AFB1001434620070CC -:104580008C470000309000FF30A800FFAF8700305C -:104590008F4401780480FFFE3C18800037110070C2 -:1045A0008E2F00003C0D08008DAD00743C0A080001 -:1045B0008D4A007001E7702301AE282100005821C8 -:1045C00000AE302B014B4821012638213C01080068 -:1045D000AC250074000088213C010800AC27007065 -:1045E0001100000F000000008F6200742619FFFF09 -:1045F0003208007F0002FE0233E5007F150000064E -:10460000332200FF2407FF800207202624A3FFFF98 -:1046100000838025320200FF004080212411100811 -:104620000E000060000000008F49081831250004CA -:1046300014A0FFFD3218007F001878C000187140E8 -:1046400001CF682125AC0088AF4C0818274A0980A3 -:104650008D4B0020AF4B01448D460024AF460148EE -:10466000A35001500E000062A74001580220102103 -:104670008FBF00188FB100148FB0001003E0000846 -:1046800027BD002027BDFFE8308400FFAFBF00102A -:104690000E0005BB30A500FF8F8300508FBF0010B8 -:1046A000344500402404FF903C02100027BD001850 -:1046B000AF43014CA3440152AF45015403E000084D -:1046C000AF4201789343093E306200081040000D6C -:1046D0003C0901013528080AAC8800008F470074A6 -:1046E000AC8700043C06080090C63D9030C5001021 -:1046F00050A00006AC8000088F6A0060AC8A0008F9 -:104700002484000C03E00008008010210A00062227 -:104710002484000C27BDFFE8AFBF0014AFB0001029 -:104720009346093F00A050210005288000853823CA -:1047300030C200FF240300063C09080095293D868D -:1047400024E8FFD8240500041043003724060002A3 -:104750009750093C3C0F020400063400320EFFFF64 -:1047600001CF6825AC8D0000934C093E318B0020B1 -:104770001160000800000000934309363C02010369 -:10478000345F0300307900FF033FC0252405000893 -:10479000AC98000493430934935909210005F88229 -:1047A000306200FF0002C082332F00FF00186E004D -:1047B000000F740001AE6025018920253C094000EE -:1047C00000898025ACF0FFD8934309378F4F094803 -:1047D0008F580940306200FF004AC821033F702112 -:1047E00001F86023000E6F0001A650253185FFFC03 -:1047F000001F58800145482501683821AD09002077 -:104800000E00006024F00028240400040E00006262 -:10481000A364003F020010218FBF00148FB000106E -:1048200003E0000827BD00180A0006352406001220 -:1048300027BDFFD024090010AFB60028AFB5002473 -:10484000AFB40020AFB10014AFB000103C010800BD -:10485000A0293D90AFBF002CAFB3001CAFB2001831 -:1048600097480908309400FF3C02000E3107FFFF13 -:10487000000731C0AF46002C974409089344010B50 -:1048800030B500FF03428021308300300000B021AA -:104890001060012500008821240C00043C01080060 -:1048A000A02C3D90934B093E000B5600000A2E03AE -:1048B00004A0016000000000AF400048934F010BCE -:1048C00031EE002011C00006000000009358093EA0 -:1048D00000189E00001396030640018900000000A6 -:1048E0009344010B30830040106000038F9300500D -:1048F0008F8200502453FFFF9347093E30E60008A3 -:1049000014C0000224120003000090219619002C0C -:1049100093580934934F0937A7990058330C00FF77 -:1049200031EE00FF024E6821000D5880016C5021CD -:10493000015140213C010800A4283D869205001841 -:1049400030A900FF010918213C010800A4233D887B -:104950009211001816200002000000000000000D57 -:104960003C010800A4233D8A3C010800A4203D80AE -:104970003C010800A4203D7C935F010B3063FFFFE6 -:1049800033F00040120000022464000A2464000B8B -:104990003091FFFF0E00009E022020219358010B52 -:1049A0003C08080095083D8A0040202100185982E3 -:1049B000316700010E00049A01072821934C010B76 -:1049C0008F4B002C974E09083C0F000E034F4021DF -:1049D00031CDFFFF000D51C0AF4A002C97430908AD -:1049E0009505001A004038212404000130A9FFFF7A -:1049F000AC4900008D06001C00404821318A00406F -:104A0000AC4600048D020020ACE2000891030019BE -:104A100030630003106400EC2879000217200118AD -:104A2000241000021070010C241F0003107F011ECF -:104A300000000000114000DE000000003C090800FA -:104A400095293D8625220001935F0934934E092163 -:104A50009504002A33F900FF0019C08231CF00FF0E -:104A6000978E005800184600000F6C00010D80253D -:104A70003045FFFF02051025008E50213C03400009 -:104A800000433025000A6400ACEC0004ACE60000F2 -:104A9000935F09203C19000624EC0014001FC60097 -:104AA00003197825ACEF00088F48092C25CD0001AB -:104AB00031A57FFFACE8000C8F500930A785005866 -:104AC00024E80028ACF000108F4409380100802150 -:104AD000ACE40014AD9300048F530940AD9300087B -:104AE000934A09373C19080093393D908F43094890 -:104AF0008F460940314200FF0052F82100667023C2 -:104B0000001F7F000019C40001F8282531CDFFFCEB -:104B100000AD2025AD84000CAD800010AF4B002C03 -:104B2000934B093E317300081260000D3C060101F1 -:104B300034CC080AACEC00288F530074AD13000489 -:104B40003C0B0800916B3D903167001050E0000372 -:104B5000AD0000088F6A0060AD0A00082510000C47 -:104B600012C0003D000000009343093F24160006D8 -:104B700024060004306200FF105600C9240700021A -:104B80009758093C3C0F0204330DFFFF01AF40254D -:104B9000AE0800009345093E30A4002010800008B4 -:104BA00000000000935309363C0B0103357F0300DE -:104BB000327900FF033F7025AE0E00042406000882 -:104BC000934F093493480921312AFFFF31ED00FF4B -:104BD000000D1082310300FF0002B60000032C001C -:104BE00002C56025018A9825001220803C094000FA -:104BF0000204502302695825AD4BFFD8935F093753 -:104C00008F4F09488F58094033F900FF0332702154 -:104C10000006B08201D668210007440001F828236D -:104C2000000D1F000068302530A2FFFC2547FFD88B -:104C300000C260250016808002074821ACEC0020ED -:104C4000253000280E00006024120004A372003FEB -:104C50000E000062000000009347010B30F200409C -:104C6000124000053C1900FF8E180000372EFFFF90 -:104C7000030E3024AE0600000E0000C702202021E3 -:104C80003C10080092103D90321100031220000FDA -:104C900002A028218F89005025330001AF930050D6 -:104CA000AF7300508F6B00540173F8231BE00002B8 -:104CB000026020218F640054AF6400548F4C007454 -:104CC000258401F4AF64000C02A028210280202179 -:104CD000A76000680E0005BB3C1410008F850050D3 -:104CE00034550006AF45014C8F8A00488FBF002C19 -:104CF0008FB3001C25560001AF9600488FB20018F4 -:104D0000A34A01528FB60028AF5501548FB1001449 -:104D1000AF5401788FB500248FB400208FB00010FD -:104D200003E0000827BD00309358093E00189E009C -:104D3000001396030642003624110002934409230F -:104D4000308300021060FEDD8F8600608F8200508D -:104D500014C2FEDA000000000E0000600000000037 -:104D60009369003F24070016312800FF1107000C4B -:104D7000240500083C0C0800918C3D90358B000107 -:104D80003C010800A02B3D90936A003F314300FF97 -:104D900010650065240D000A106D005E2402000CF1 -:104DA0000E000062000000000A00069000000000F3 -:104DB0003C09080095293D863C0A0800954A3D803B -:104DC0000A0006F3012A10213C09080095293D8AB2 -:104DD0003C04080094843D803C06080094C63D7C59 -:104DE00095030024012410210046F8230003CC0081 -:104DF00027F0FFF20330C025240F0800ACF8000CA8 -:104E0000ACEF0014ACE000100A0006EE24E7001836 -:104E10003C010800A0313D90935F093E241600013B -:104E200033F900201720FEA5241100080A0006907F -:104E3000241100048F6E00848F4D094011A0FE9E46 -:104E4000AF8E0050240F00143C010800A02F3D90AD -:104E50000A00068F00000000950E0024950D002822 -:104E6000000E6400000D2C003589810034A6080076 -:104E7000ACE9000CACE600100A0006EE24E70014D2 -:104E80001460FEEC000000009502002400021C00EB -:104E900034640800ACE4000C0A0006EE24E70010BD -:104EA0000A000741240700123C02080094423D8A90 -:104EB0003C06080094C63D803C03080094633D7C9A -:104EC00095100024951900280046F82103E3C0231B -:104ED00000106C0000197400270FFFEE01CF282589 -:104EE00035AC8100ACEC000CACE5001024070800E8 -:104EF000AD2700182527001C0A0006EEAD2000147F -:104F00008F7F004CAF7F00548F7900540A000699C0 -:104F1000AF790050A362003F0E0000620000000065 -:104F20000A00069000000000240200140A0008276E -:104F3000A362003F27BDFFE8308400FFAFBF001031 -:104F40000E0005BB30A500FF9378007E9379007FAB -:104F5000936E00809368007A332F00FF001866007C -:104F6000000F6C0031CB00FF018D4825000B520073 -:104F70008FBF0010012A3825310600FF344470002D -:104F800000E628252402FF813C03100027BD0018FD -:104F9000AF45014CAF440154A342015203E0000865 -:104FA000AF43017827BDFFD8AFB20018AFB10014EE -:104FB000AFB00010AFBF0020AFB3001C9342010997 -:104FC000308600FF30B000FF000618C23204000235 -:104FD0003071000114800005305200FF9367000516 -:104FE00030E5000810A0000D30C80010024020215C -:104FF0000E0005A702202821240400018FBF0020F5 -:105000008FB3001C8FB200188FB100148FB0001046 -:105010000080102103E0000827BD002815000032A1 -:105020000000000093430109000028213062007F46 -:10503000000220C00002F94003E49821267900888C -:10504000033B98218E7800248E6F0008130F0046D2 -:10505000000000008F640084241800020004FD8218 -:1050600033F900031338007C0000000093660083CE -:10507000934A0109514600043205007C10A00060EB -:10508000000000003205007C14A0005302402021E3 -:1050900016200006320400018E7F00248F5901047F -:1050A00017F9FFD600002021320400011080000A09 -:1050B000024020218F4209408F9300641053000664 -:1050C000000000000E00066D022028218F430940D9 -:1050D000AF630044024020210E0006020220282176 -:1050E0000A000860240400013C0908008D290064BE -:1050F000252600013C010800AC26006416000012C1 -:10510000000000008F6D00843C0E00C001AE6024E2 -:1051100015800005024020210E00082E02202821C3 -:105120000A00086024040001240500040E00057034 -:1051300024060001024020210E00082E0220282112 -:105140000A000860240400010E000041240400014C -:10515000936B007D020B50250E000062A36A007D58 -:105160000A0008A38F6D00848F6600748F480104C5 -:105170008E67002400064E021507FFB63126007F19 -:10518000936B008326440001308A007F1146004360 -:10519000316300FF5464FFB08F6400842645000132 -:1051A00030B1007F30A200FF122600042405000168 -:1051B000004090210A00087624110001240FFF808E -:1051C000024F702401CF9026324200FF0040902110 -:1051D0000A000876241100010E00066D0220282125 -:1051E000321800301300FFAA321000820240202142 -:1051F0000E0005A7022028210A00086024040001EF -:105200008F6E00743C0F80002405000301CF9025B1 -:10521000AF72007493710083240600010E000570C4 -:10522000322400FF0E00004124040001936D007D34 -:10523000020D60250E000062A36C007D3C0B08008F -:105240008D6B0054257000013C010800AC30005407 -:105250000A000860240400018F6800743C09800083 -:105260002405000401093825AF67007493630083A7 -:10527000240600010E000570306400FF0E0000419E -:10528000240400019362007D020298250E00006252 -:10529000A373007D0A00086024040001324D0080E1 -:1052A00039AC0080546CFF6C8F6400840A0008C91C -:1052B0002645000127BDFFC83C0A0008AFBF0030EB -:1052C000AFB5002CAFB40028AFB30024AFB20020BC -:1052D000AFB1001CAFB00018034AD8212409004028 -:1052E000AF490814AF4008108F4209448F4309505A -:1052F0008F4609548F47095C8F48094C9344010835 -:105300009345010BAF820064308400FF30A500FF9D -:10531000AF830050AF86004CAF87005C0E00084A98 -:10532000AF8800601440017D8FBF0030A760006827 -:10533000934D0900240B00503C15080026B53D484C -:1053400031AC00FF3C12080026523D58118B00037F -:10535000000000000000A8210000902193510109E5 -:105360008F9F005024040010322E007F000E68C072 -:10537000000E6140018D282124B40088AF54081824 -:105380008F4901048F4A09A43C0B000E034BC02136 -:10539000012A10233C010800AC223D6C8F430958C0 -:1053A0003C010800A0243D9097470908007F302366 -:1053B0003C010800AC263D7030E8FFFF0008C9C082 -:1053C0003C010800AC3F3D94AF59002C97420908BE -:1053D0009710002C8EB10000930F001803749821D1 -:1053E000A7900058AF9300440220F80931F000FF65 -:1053F000304E000215C001B2304F000111E0014FE4 -:10540000000000009343093E3066000814C000020B -:10541000241400030000A0218F5809A424130001C4 -:105420003C010800AC383D98934F0934935109373B -:1054300031EC00FF322E00FF028E6821000D288023 -:1054400000AC5021015058213C010800A42B3D889C -:105450003C010800A42A3D8693490934312200FF0B -:1054600002022021249000103C010800A4303D8459 -:10547000240700068F9F00503C010800AC273D8C9C -:105480008F88005C8F59095800008021011F282354 -:1054900004A00149033F20230480014700A4302BCE -:1054A00010C00149000000003C010800AC253D701F -:1054B0008E4200000040F809000000003043000266 -:1054C000146000F80040882130440001548000102E -:1054D0008E4200043C0908008D293D743C0AC0003E -:1054E000012A8025AF500E008F45000030AB000828 -:1054F0001160FFFD00000000974D0E082410000110 -:10550000A78D003C8F4C0E04AF8C00348E420004FB -:105510000040F8090000000002228825322E000217 -:1055200015C00180000000003C09080095293D7C61 -:105530003C06080094C63D883C0A0800954A3D7E1A -:105540003C1908008F393D74012660213C18080081 -:105550008F183D983C03080094633D92018A2021F6 -:105560008F4E09400329F821248F000203E32821EC -:10557000031968213C010800A42C3D8AAF8E006409 -:105580003C010800AC2D3D983C010800A4253D805D -:105590000E00009E31E4FFFF8F870048004020216D -:1055A0003C010800A0273D918E42000824E800013C -:1055B000AF8800480040F809000000009344010B48 -:1055C0008F4C002C974A09083C0B000E034B4021DE -:1055D0003149FFFF000919C08F8B0050AF43002CE9 -:1055E000974309089506001A00403821308A004088 -:1055F00030DFFFFFAC5F00008D19001C0040482128 -:10560000AC5900048D180020AC580008910F001907 -:1056100031E30003107300F0000000002862000274 -:105620001440010924050002106500FD240D00034B -:10563000106D010D00000000114000D900000000B5 -:105640003C0A0800954A3D8625420001934D0934E5 -:1056500093580921950E002A31A300FF00032082F0 -:10566000331F00FF9798005800047E00001FCC00F5 -:1056700001F940253049FFFF0109102501D83021EB -:105680003C0540000045502500066C00ACED0004D0 -:10569000ACEA0000934309203C04000624ED00140A -:1056A0000003FE0003E4C825ACF900088F49092C6B -:1056B000270F000131EE7FFFACE9000C8F48093065 -:1056C000A78E005824E90028ACE800108F4509385F -:1056D00001204021ACE50014ADAB00048F4209402D -:1056E000ADA20008934B09373C1F080093FF3D9083 -:1056F0008F4309488F4A0940316600FF00D42021BA -:10570000006A78230004C700001FCC000319282575 -:1057100031EEFFFC00AE1025ADA2000CADA00010D4 -:10572000AF4C002C934C093E318B00085160000FA8 -:105730008E58000C3C06010134CA080AACEA002865 -:105740008F4B0074AD2B00043C0C0800918C3D90F5 -:105750003187001050E00003AD2000088F62006028 -:10576000AD2200082528000C8E58000C0300F80913 -:10577000010020213C19080097393D8A3C1F080090 -:1057800097FF3D7E033F782125E900020E0000C708 -:105790003124FFFF3C0E08008DCE3D6C3C08080014 -:1057A0008D083D7401C828233C010800AC253D6CE0 -:1057B00014A00006000000003C0308008C633D8C30 -:1057C000346400403C010800AC243D8C12000070A1 -:1057D0008F8C00448F470E108F900044AE0700203E -:1057E0008F4D0E18AE0D00243C10080096103D8021 -:1057F0000E0000600000000024020040AF420814C8 -:105800008F8600508F8A004C00D01821006A5823E0 -:1058100019600004AF830050AF6300548F650054DB -:10582000AF85004C1200000C000000008F44007493 -:10583000936800813409FA002D0E000711C000059D -:1058400000891821937F0081241901F403F9780459 -:1058500001E41821AF63000C8F44095C8F83005C66 -:105860000083C0231B000003000000008F50095C70 -:10587000AF90005C0E000062000000008F8C0050B2 -:105880008E4700103C010800AC2C3D9400E0F80964 -:10589000000000003C0D08008DAD3D6C55A0FEF5EC -:1058A000240700068F450024975909088F8B006450 -:1058B0008F9400503C0F001F978200588F86005431 -:1058C0008F93004C3328FFFF35E9FF8000A9502457 -:1058D000000871C032320100AF4E0024A4C2002C77 -:1058E000AF4A0024AF6B0044AF740050AF73005454 -:1058F0001640008032380010570000868EA4000445 -:10590000322300405460001B8EB100088EB0000CA2 -:105910000200F809000000008FBF00308FB5002C96 -:105920008FB400288FB300248FB200208FB1001CE9 -:105930008FB0001803E0000827BD00389347010925 -:105940008F8800380007FE0003E8C825AF590080A3 -:105950008F5809A08F5309A4AFB80010AF580E1488 -:105960008FB40010AF540E10AF530E1C0A00096222 -:10597000AF530E180220F809000000008EB0000C92 -:105980000200F809000000000A000AA88FBF0030DA -:10599000A5800020A59300220A000A5BAD93002495 -:1059A0003C09080095293D863C06080094C63D80C8 -:1059B0000A0009F4012610213C010800AC203D70CA -:1059C0000A00098E8E4200003C010800AC243D70A4 -:1059D0000A00098E8E4200003C03080094633D8A51 -:1059E0003C04080094843D803C1F080097FF3D7CE8 -:1059F000951800240064C821033F782300186C0028 -:105A000025EEFFF201AE2825AC45000C240208006B -:105A1000ACE20014ACE000100A0009EF24E7001823 -:105A200095060024950900280006240000091C00A2 -:105A3000349F810034790800ACFF000CACF90010F1 -:105A40000A0009EF24E700141460FEFB00000000C8 -:105A50009518002400187C0035EE0800ACEE000C10 -:105A60000A0009EF24E700103C07080094E73D8096 -:105A70003C04080094843D8A3C03080094633D7C08 -:105A800095190024951800280087F82103E378234E -:105A90002407080000192C0000186C0025EEFFEE0A -:105AA00001AE302534A28100AD2700182527001C47 -:105AB000AD22000CAD2600100A0009EFAD20001445 -:105AC00093520109000028210E000602324400FF13 -:105AD0008FBF00308FB5002C8FB400288FB3002407 -:105AE0008FB200208FB1001C8FB0001803E00008B7 -:105AF00027BD0038935F010933E400FF0E00066DF7 -:105B000000002821323800105300FF7E322300406D -:105B10008EA400040080F809000000000A000AA218 -:105B2000322300401200FF5F000000008F540E146B -:105B30008F920044AE5400208F530E1C0A000A8A34 -:105B4000AE5300248F82001C008040213C040100E1 -:105B50009047008530E3002010600009000000003D -:105B60003C0708008CE73D948F83001800E3202356 -:105B7000048000089389000414E30003010020213D -:105B800003E00008008010213C04010003E000084D -:105B9000008010211120000B006738238F8C00201B -:105BA00024090034918B00BC316A0002514000018D -:105BB0002409003000E9682B15A0FFF10100202125 -:105BC00000E938232419FFFC00B9C02400F9782427 -:105BD00000F8702B15C0FFEA01E8202130C2000355 -:105BE0000002182314C000123069000300003021A5 -:105BF00000A9702101C6682100ED602B1180FFE033 -:105C00003C0401002D2F00010006482B010538211E -:105C100001E9302414C0FFDA24E4FFFC2419FFFC5E -:105C200000B9C0240308202103E0000800801021EF -:105C30008F8B002024060004916A00BC31440004CC -:105C40001480FFEC00A970210A000B5E00003021D7 -:105C500027BDFFE8AFBF00108F460100934A01093E -:105C60003C1F08008FFF00902407FF80314F00FF8A -:105C700031E8007F0008614003E6C821032CC02101 -:105C800027090120012770243C010800A02F3DD0E6 -:105C9000AF4E080C3C0D08008DAD00903C04008018 -:105CA0003482000301A65821016C182124650120CB -:105CB00030AA007801424025AF48081C3C1F08006C -:105CC0008FFF00908F88004003E6C0213319000742 -:105CD00003074824033A7821AF49002825E909C081 -:105CE000952E00023C0D08008DAD008C3C0A08008A -:105CF0008D4A009031CC3FFF01A61821000C59803D -:105D0000006B282100A72024AF44002C952200021C -:105D10003C1F08008FFF008C9107008530593FFF22 -:105D200003E678210019C1800146702101F868213D -:105D300031CC007F31AB007F019A2821017A5021BC -:105D40003C03000C3C04000E00A328210144102158 -:105D500030E6002027470980AF82002CAF88001C66 -:105D6000AF890024AF85002010C00006AF8700284F -:105D70008D0200508CA4010C0044302318C0007721 -:105D800000000000910C0085240DFFDF018D3824F8 -:105D9000A10700858F8B001C8F8900248F87002826 -:105DA0008D65004CAF850018912F000D31EE00205D -:105DB00011C000170000000024090001A38900049D -:105DC000AF80000C8CE400248F85000C240A0008AE -:105DD000AF800008AF8000103C010800A42A3D7E7F -:105DE0003C010800A4203D920E000B32000030213F -:105DF0008F8500248FBF0010AF82001490A8000D83 -:105E000027BD00180008394203E0000830E2000115 -:105E1000913F00022418000133F900FF001921828C -:105E200010980039240800021088005B8F86002C2F -:105E30008CE5002414A0001B8F9F002091220000FD -:105E4000240A00053046003F10CA00472404000120 -:105E50008F860008A3840004AF860010AF86000C74 -:105E60008CE400248F85000C240A00083C01080003 -:105E7000A42A3D7E3C010800A4203D920E000B3276 -:105E8000000000008F8500248FBF0010AF82001437 -:105E900090A8000D27BD00180008394203E0000853 -:105EA00030E200018CF800088CF900248FEE00C469 -:105EB000A38000048CE40024AF8E000C8F85000CBE -:105EC0008F86000803197823240A0008AF8F00107A -:105ED0003C010800A42A3D7E3C010800A4203D921C -:105EE0000E000B32000000008F8500248FBF0010D1 -:105EF000AF82001490A8000D27BD00180008394299 -:105F000003E0000830E20001912300003062003F0E -:105F1000104400278F8500208CE400241480002189 -:105F2000000000008D2E00183C187FFF8F85002098 -:105F3000370FFFFF01CF1824AF8300088F9F0008A1 -:105F40008CA8008403E8C82B1720000203E020215E -:105F50008CA400840A000BEDAF8400088CA3010C14 -:105F60000A000BCBAF8300188D2C00188F86000819 -:105F70003C0D7FFF8F89002035A3FFFF018358244C -:105F800024040001AF8B0010AD2000CCA3840004DA -:105F90000A000BF9AF86000C8CCA00140A000BED46 -:105FA000AF8A00088CA300C80A000C30AF83000839 -:105FB0008F84002C8CAC00648C8D0014018D582BC8 -:105FC00011600004000000008CA200640A000C3084 -:105FD000AF8200088C8200140A000C30AF820008E7 -:105FE0008F85000C27BDFFE0AFBF0018AFB10014D4 -:105FF00014A00007AFB000108F8600242402000513 -:1060000090C400003083003F106200B68F840020EF -:106010008F91000800A080218F8C00283C0508008B -:106020008CA53D708D8B000431663FFF00C5502B61 -:106030005540000100C02821938D000411A0007379 -:1060400000B0F82B8F98002024040034930F00BC7C -:1060500031EE000251C000012404003000A4C82B1E -:10606000172000D10000000000A4282300B0F82B66 -:106070003C010800A4243D7C17E0006802002021B8 -:106080003C0308008C633D6C0083102B54400001DE -:10609000008018218F8800243C010800AC233D7447 -:1060A000000048219104000D308300205060000161 -:1060B0008F490E188F8300140123382B10E00059EC -:1060C000000000003C0408008C843D7400895821C5 -:1060D000006B502B114000560090602B006930235C -:1060E00000C020213C010800AC263D7412000003D2 -:1060F000241FFFFC1090008A32270003009FC82451 -:106100003C010800AC393D743C010800A4203D92DC -:106110008F84000C120400078F830020AF910008C9 -:10612000020020218C7100CCAF90000C26300001C1 -:10613000AC7000CC3C0208008C423D748F8A001089 -:10614000240700180082202301422823AF84000C7A -:1061500010800002AF850010240700108F86001CFD -:106160003C010800A0273D902407004090CC00850A -:10617000318B00C0116700408F8D001414A00015F2 -:1061800000002021934A01098F420974314500FF24 -:106190000002260224A300013090007F3071007FAE -:1061A0001230007A2407FF80A0C300833C09080056 -:1061B0008D293D8C8F880024240D0002352C000889 -:1061C0003C010800A02D3DD13C010800AC2C3D8CC9 -:1061D00024040010910E000D31C6002010C00005EF -:1061E00000801821240800013C010800AC283D74FF -:1061F000348300018FBF00188FB100148FB00010DE -:106200000060102103E0000827BD00203C010800C9 -:10621000A4203D7C13E0FF9A020020210A000C819B -:1062200000A020213C0408008C843D740090602B69 -:106230001180FFAE000000003C0F080095EF3D7C90 -:1062400001E4702101C6682B11A000072C82000414 -:106250003C1F60008FF954043338003F1700FFE5FE -:10626000240300422C8200041040FFA024030042BB -:106270000A000CDF8FBF0018152DFFC000000000C2 -:106280008CDF00743C0380002405FF8003E3C825F5 -:10629000ACD9007490D80085240E000424040010AA -:1062A000330F003F01E54025A0C800858F880024FA -:1062B0003C010800A02E3DD1240300019106000DF1 -:1062C00030C9002015200003000000003C03080036 -:1062D0008C633D743C010800AC233D6C0A000CD675 -:1062E000000000008F8700108C88008400E8282BB5 -:1062F00014A0000200E088218C9100842409000190 -:10630000A38900048F440E18022028210E000B32AE -:1063100002203021022080210A000C67AF82001485 -:1063200000071823306600033C010800A4263D92B4 -:10633000122000058F8C0020918B00BC316A000474 -:106340001540001524CD00043C0F080095EF3D9248 -:1063500001E4702100AE302B50C0FF6E8F84000C22 -:106360002C85000514A0FFA32403004230980003ED -:1063700017000002009818232483FFFC3C0108004A -:10638000AC233D740A000CA30000000000A75824B1 -:106390000A000CCB016718263C010800A42D3D9291 -:1063A0000A000D33000000003C010800AC203D74E1 -:1063B0000A000CDE240300428F83001014600007E3 -:1063C000000010218F88002424050005910600009C -:1063D00030C400FF108500030000000003E0000847 -:1063E00000000000910A0018314900FF000939C27D -:1063F00014E0FFFA8F85001C3C04080094843D7C67 -:106400003C0308008C633D943C1908008F393D74AF -:106410003C0F080095EF3D920064C0218CAD005404 -:106420000319702101CF6021018D58231960001DCF -:1064300000000000910E001C8F8C002C974B0E105A -:1064400031CD00FF8D850004016D30238D88000063 -:1064500030CEFFFF000E510000AAC82100003821F5 -:1064600001072021032A182B0083C021AD990004C5 -:10647000AD980000918F000A01CF6821A18D000A1C -:106480008F88002C974B0E12A50B0008950A003838 -:1064900025490001A50900389107000D34E60008E0 -:1064A000A106000D03E000080000000027BDFFE08A -:1064B000938700048F8F00248FAD00143C0E7FFF64 -:1064C0008F89000C35C8FFFFAFBF001CAFB00018AC -:1064D00001A8182491EA000D000717C03C1FBFFF58 -:1064E000006258252D2E00018F90001837F9FFFF0C -:1064F0003C1808008F183D943C0F080095EF3D8A2A -:1065000001796824000E47803C07EFFF3C05F0FF4F -:1065100001A818253149002034E2FFFF34ACFFFF09 -:106520000310582327A500102406000225EA0002C4 -:106530000062182400808021152000020000402104 -:106540008F480E1CA7AA0012056000372407000020 -:1065500030FF00FF001FCF008F8B001C0079382513 -:10656000AFA70014916F00853C08080091083D9189 -:106570003C18DFFF31EE00C0370AFFFF000E182B7A -:106580003C1F080097FF3D8400EA6824A3A800117F -:106590000003174001A248258FB90010AFA90014CD -:1065A0003C0A0800914A3D93A7BF00168FA800142B -:1065B000032CC0243C0B01003C0F0FFF030B1825DC -:1065C0003147000335EEFFFF010C68240007160079 -:1065D000006EF8243C09700001A2C82503E9582583 -:1065E000AFB90014AFAB00100E000076A3A00015E9 -:1065F0008F8C0024260200089186000D30C40020F4 -:10660000108000068FBF001C3C05080094A53D804B -:1066100024B0FFFF3C010800A4303D808FB000187B -:1066200003E0000827BD00208F9800140118502BAC -:106630005540FFC7240700010A000DB630FF00FFD8 -:106640009382000427BDFFE0AFBF00181040000F89 -:10665000008050218F880024240B00058F890008BA -:10666000910700008F8400200100282130E3003FC3 -:106670008F86002C106B000800003821AFA9001095 -:106680000E00040EAFAA0014A38000048FBF0018F0 -:1066900003E0000827BD00208D1900183C0F0800FA -:1066A0008DEF3D748F9800103C027FFF8D08001421 -:1066B000345FFFFF033F682401F8702101AE6023BF -:1066C00001883821AFA900100E00040EAFAA0014F3 -:1066D0000A000E04A38000048F8700243C050800F4 -:1066E00094A53D923C0208008C423D8C90E6000D42 -:1066F0000005240030C300201060002C0044402519 -:106700008F85001C00006021240B000190A30085F0 -:1067100000004821240A00013C0F800035EE007083 -:106720008DC70000AF8700308F5801780700FFFE4B -:106730003C038000347900708F3800003C0508006D -:106740008CA500743C0D08008DAD00700307782304 -:1067500000AF38210000102100EF302B01A22021D2 -:10676000008618213C010800AC2700743C01080099 -:10677000AC230070AF4B01483C1908008F393D94A1 -:10678000A7490144A74A0146AF59014C3C0B0800F8 -:10679000916B3D91A34B0152AF4801543C0810004E -:1067A000A74C015803E00008AF4801788F4B0E1C3E -:1067B0003C0A08008D4A3D7497490E16974D0E14F9 -:1067C00001456021312AFFFF0A000E2731A9FFFF92 -:1067D0008F8300249064000D308200201040002937 -:1067E000000000000000482100005021000040216E -:1067F0003C07800034EB00708D670000AF870030ED -:106800008F4C01780580FFFE3C0D800035AC007098 -:106810008D8B00003C0508008CA500743C0408002A -:106820008C8400700167302300A6782100001021BD -:1068300001E6C82B0082C021031970213C01080029 -:10684000AC2F00743C010800AC2E0070AF49014829 -:106850003C0D08008DAD3D94A7480144240900403B -:10686000A74A01463C081000240AFF91AF4D014C95 -:10687000A34A0152AF490154A740015803E0000860 -:10688000AF4801788F490E1897460E1297450E10A3 -:1068900030CAFFFF0A000E5D30A8FFFF8F8300247F -:1068A00027BDFFF89064000D308200201040003AB0 -:1068B00000000000240B000100004821240A000110 -:1068C0003C088000350700708CE30000AF83003087 -:1068D0008F4C01780580FFFE3C0E80003C040800D0 -:1068E00090843DD035C700708CEC00003C0508005A -:1068F0008CA50074A3A400033C1908008F39007014 -:106900008FAD00000183302300A638210000102144 -:106910000322782100E6C02B01F8602101AE40255A -:10692000AFA800003C010800AC2700743C0108003F -:10693000AC2C00709346010A3C04080090843DD1C1 -:10694000A3A00002A3A600018FA300003C0580FFC6 -:106950003099007F34A2FFFF006278240019C6003E -:1069600001F87025240D3000AF4E014C27BD000802 -:10697000AF4D0154A7400158AF4B0148A74901440E -:10698000A74A01463C091000240AFF80A34A01528D -:1069900003E00008AF4901788F4B0E1897460E129E -:1069A00097450E1030CAFFFF0A000E9130A9FFFF75 -:1069B0008F85001C2402008090A40085308300C0D5 -:1069C000106200058F8600208F8800088F87000CDA -:1069D000ACC800C8ACC700C403E000080000000059 -:1069E0003C0A0800254A39543C09080025293A2068 -:1069F0003C08080025082DD43C07080024E73B3458 -:106A00003C06080024C637C43C05080024A5353CD4 -:106A10003C040800248431643C0308002463385C8F -:106A20003C020800244236303C010800AC2A3D50AC -:106A30003C010800AC293D4C3C010800AC283D4815 -:106A40003C010800AC273D543C010800AC263D64E5 -:106A50003C010800AC253D5C3C010800AC243D58DD -:106A60003C010800AC233D683C010800AC223D60BD -:086A700003E000080000000033 -:00000001FF -/* - * This file contains firmware data derived from proprietary unpublished - * source code, Copyright (c) 2004 - 2009 Broadcom Corporation. - * - * Permission is hereby granted for the distribution of this firmware data - * in hexadecimal or equivalent format, provided this copyright notice is - * accompanying it. - */ diff --git a/firmware/bnx2/bnx2-mips-09-6.2.1a.fw.ihex b/firmware/bnx2/bnx2-mips-09-6.2.1a.fw.ihex deleted file mode 100644 index 05e710248d2c..000000000000 --- a/firmware/bnx2/bnx2-mips-09-6.2.1a.fw.ihex +++ /dev/null @@ -1,6512 +0,0 @@ -:10000000080001180800000000005594000000C816 -:1000100000000000000000000000000008005594EF -:10002000000000380000565C080000A00800000036 -:100030000000574400005694080059200000008436 -:100040000000ADD808005744000001C00000AE5CBD -:100050000800321008000000000092340000B01CBC -:1000600000000000000000000000000008009234C2 -:100070000000033C00014250080004900800040006 -:10008000000012FC0001458C000000000000000090 -:1000900000000000080016FC000000040001588861 -:1000A000080000A80800000000003D000001588C76 -:1000B00000000000000000000000000008003D00FB -:0800C000000000300001958CE6 -:0800C8000A00004600000000E0 -:1000D000000000000000000D636F6D362E322E31DF -:1000E00061000000060201020000000000000003A1 -:1000F000000000C800000032000000030000000003 -:1001000000000000000000000000000000000000EF -:1001100000000010000001360000EA600000000549 -:1001200000000000000000000000000000000008C7 -:1001300000000000000000000000000000000000BF -:1001400000000000000000000000000000000000AF -:10015000000000000000000000000000000000009F -:10016000000000020000000000000000000000008D -:10017000000000000000000000000000000000007F -:10018000000000000000000000000010000000005F -:10019000000000000000000000000000000000005F -:1001A000000000000000000000000000000000004F -:1001B000000000000000000000000000000000003F -:1001C000000000000000000000000000000000002F -:1001D000000000000000000000000000000000001F -:1001E0000000000010000003000000000000000DEF -:1001F0000000000D3C020800244256083C030800A1 -:1002000024635754AC4000000043202B1480FFFDB2 -:10021000244200043C1D080037BD9FFC03A0F021D0 -:100220003C100800261001183C1C0800279C5608AA -:100230000E000256000000000000000D27BDFFB4B4 -:10024000AFA10000AFA20004AFA30008AFA4000C50 -:10025000AFA50010AFA60014AFA70018AFA8001CF0 -:10026000AFA90020AFAA0024AFAB0028AFAC002C90 -:10027000AFAD0030AFAE0034AFAF0038AFB8003C28 -:10028000AFB90040AFBC0044AFBF00480E001544FA -:10029000000000008FBF00488FBC00448FB90040B1 -:1002A0008FB8003C8FAF00388FAE00348FAD003078 -:1002B0008FAC002C8FAB00288FAA00248FA90020C0 -:1002C0008FA8001C8FA700188FA600148FA5001000 -:1002D0008FA4000C8FA300088FA200048FA1000040 -:1002E00027BD004C3C1B60108F7A5030377B502864 -:1002F00003400008AF7A00008F82002427BDFFE092 -:10030000AFB00010AFBF0018AFB100148C42000CAA -:100310003C1080008E110100104000348FBF001887 -:100320000E000D84000000008F85002024047FFF54 -:100330000091202BACB100008E030104960201084D -:1003400000031C003042FFFF00621825ACA300042C -:100350009202010A96030114304200FF3063FFFF4E -:100360000002140000431025ACA200089603010C03 -:100370009602010E00031C003042FFFF00621825A8 -:10038000ACA3000C960301109602011200031C009E -:100390003042FFFF00621825ACA300108E02011846 -:1003A000ACA200148E02011CACA20018148000083C -:1003B0008F820024978200003C0420050044182509 -:1003C00024420001ACA3001C0A0000C6A782000062 -:1003D0003C0340189442001E00431025ACA2001CB0 -:1003E0000E000DB8240400018FBF00188FB1001457 -:1003F0008FB000100000102103E0000827BD00208E -:100400003C0780008CE202B834E50100044100089A -:10041000240300013C0208008C42006024420001D9 -:100420003C010800AC22006003E0000800601021DD -:100430003C0208008C42005C8CA4002094A30016AF -:100440008CA6000494A5000E24420001ACE40280B6 -:100450002463FFFC3C010800AC22005C3C0210005D -:10046000A4E30284A4E5028600001821ACE6028819 -:10047000ACE202B803E000080060102127BDFFE0F5 -:100480003C028000AFB0001034420100AFBF001C3E -:10049000AFB20018AFB100148C43000094450008BF -:1004A0002462FE002C42038110400003000381C23D -:1004B0000A00010226100004240201001462000553 -:1004C0003C1180003C02800890420004305000FF44 -:1004D0003C11800036320100964300143202000FB6 -:1004E00000021500004310253C0308008C63004403 -:1004F00030A40004AE220080246300013C01080007 -:10050000AC2300441080000730A200028FBF001C03 -:100510008FB200188FB100148FB000100A0000CE07 -:1005200027BD00201040002D0000182130A20080BF -:1005300010400005362200708E44001C0E000C672F -:10054000240500A0362200708C4400008F82000C2D -:10055000008210232C43012C10600004AF82001095 -:10056000240300010A000145AF84000C8E42000400 -:100570003C036020AF84000CAC6200143C02080015 -:100580008C42005850400015000018218C62000475 -:10059000240301FE304203FF144300100000182121 -:1005A0002E020004104000032E0200080A00014041 -:1005B0000000802114400003000000000A000140F8 -:1005C0002610FFF90000000D2402000202021004B0 -:1005D0003C036000AC626914000018218FBF001C4E -:1005E0008FB200188FB100148FB00010006010217E -:1005F00003E0000827BD00203C0480008C8301003C -:1006000024020100506200033C0280080000000D3B -:100610003C02800890430004000010213063000F6A -:1006200000031D0003E00008AC8300800004188074 -:100630002782FF9C00621821000410C00044102390 -:100640008C640000000210C03C030800246356E4E0 -:10065000004310213C038000AC64009003E00008DC -:10066000AF8200243C0208008C42011410400019A3 -:100670003084400030A2007F000231C03C02020002 -:100680001080001400A218253C026020AC43001426 -:100690003C0408008C8456B83C0308008C630110AD -:1006A0003C02800024050900AC4500200086202182 -:1006B000246300013C028008AC4400643C01080053 -:1006C000AC2301103C010800AC2456B803E000083C -:1006D000000000003C02602003E00008AC4500146C -:1006E00003E000080000102103E0000800001021D2 -:1006F00030A2000810400008240201003C0208005B -:100700008C42010C244200013C010800AC22010C87 -:1007100003E0000800000000148200080000000050 -:100720003C0208008C4200FC244200013C0108000D -:10073000AC2200FC0A0001A330A200203C02080009 -:100740008C420084244200013C010800AC22008459 -:1007500030A200201040000830A200103C02080027 -:100760008C420108244200013C010800AC2201082F -:1007700003E0000800000000104000080000000036 -:100780003C0208008C420104244200013C010800A4 -:10079000AC22010403E00008000000003C02080055 -:1007A0008C420100244200013C010800AC220100FF -:1007B00003E000080000000027BDFFE0AFB1001417 -:1007C0003C118000AFB20018AFBF001CAFB00010EA -:1007D0003632010096500008320200041040000733 -:1007E000320300028FBF001C8FB200188FB10014BB -:1007F0008FB000100A0000CE27BD00201060000B53 -:10080000020028218E2401000E00018A0000000051 -:100810003202008010400003240500A10E000C6786 -:100820008E44001C0A0001E3240200018E2301040F -:100830008F82000810430006020028218E24010048 -:100840000E00018A000000008E220104AF82000821 -:10085000000010218FBF001C8FB200188FB1001450 -:100860008FB0001003E0000827BD00202C82000498 -:1008700014400002000018212483FFFD240200021E -:10088000006210043C03600003E00008AC626914DD -:1008900027BDFFE0AFBF001CAFB20018AFB100141E -:1008A000AFB000103C048000948201083043700017 -:1008B000240220001062000A2862200154400052E5 -:1008C0008FBF001C24024000106200482402600018 -:1008D0001062004A8FBF001C0A0002518FB200183C -:1008E00034820100904300098C5000189451000C90 -:1008F000240200091062001C0000902128620009F7 -:10090000144000218F8200242402000A5062001249 -:10091000323100FF2402000B1062000F00000000C3 -:100920002402000C146200188F8200243C0208008C -:100930008C4256B824030900AC83002000501021DB -:100940003C038008AC6200643C010800AC2256B84D -:100950000A0002508FBF001C0E0001E900102602A1 -:100960000A0002308F8200240E0001E900102602E6 -:100970003C0380089462001A8C72000C3042FFFF26 -:10098000020280258F8200248C42000C5040001E01 -:100990008FBF001C0E000D84000000003C02800090 -:1009A00034420100944300088F82002400031C009D -:1009B0009444001E8F82002000641825AC50000073 -:1009C00024040001AC510004AC520008AC40000CFF -:1009D000AC400010AC400014AC4000180E000DB844 -:1009E000AC43001C0A0002508FBF001C0E000440E4 -:1009F000000000000A0002508FBF001C0E000C9F78 -:100A0000000000008FBF001C8FB200188FB10014CF -:100A10008FB000100000102103E0000827BD002067 -:100A200027BDFFD8AFB400203C036010AFBF002447 -:100A3000AFB3001CAFB20018AFB10014AFB00010DC -:100A40008C6450002402FF7F3C1408002694563822 -:100A5000008220243484380CAC6450003C028000B6 -:100A6000240300370E0014B0AC4300083C07080014 -:100A700024E70618028010212404001D2484FFFFAF -:100A8000AC4700000481FFFD244200043C02080042 -:100A9000244207C83C010800AC2256403C02080032 -:100AA000244202303C030800246306203C04080072 -:100AB000248403B43C05080024A506F03C06080085 -:100AC00024C62C9C3C010800AC2256803C02080045 -:100AD000244205303C010800AC2756843C01080044 -:100AE000AC2656943C010800AC23569C3C010800FF -:100AF000AC2456A03C010800AC2556A43C010800DB -:100B0000AC2256A83C010800AC23563C3C0108002E -:100B1000AC2456443C010800AC2056603C0108005F -:100B2000AC2556643C010800AC2056703C0108001E -:100B3000AC27567C3C010800AC2656903C010800CE -:100B4000AC2356980E00056E00000000AF80000C2C -:100B50003C0280008C5300008F8300043C0208009C -:100B60008C420020106200213262000700008821C0 -:100B70002792FF9C3C100800261056E43C02080017 -:100B80008C42002024050001022518040043202483 -:100B90008F820004004310245044000C26310001D1 -:100BA00010800008AF9000248E4300003C028000BB -:100BB000AC4300900E000D4BAE05000C0A0002C1C4 -:100BC00026310001AE00000C263100012E22000269 -:100BD000261000381440FFE9265200043C020800A9 -:100BE0008C420020AF820004326200071040FFD91F -:100BF0003C028000326200011040002D326200028F -:100C00003C0580008CA2010000002021ACA2002045 -:100C10008CA301042C42078110400008ACA300A85B -:100C200094A2010824032000304270001443000302 -:100C30003C02800890420005304400FF0E0001593C -:100C4000000000003C0280009042010B304300FF96 -:100C50002C62001E54400004000310800E00018628 -:100C60000A0002EC00000000005410218C42000039 -:100C70000040F80900000000104000043C02800021 -:100C80008C4301043C026020AC4300143C02080089 -:100C90008C4200343C0440003C03800024420001AC -:100CA000AC6401383C010800AC220034326200021E -:100CB00010400010326200043C1080008E0201409F -:100CC000000020210E000159AE0200200E00038317 -:100CD000000000003C024000AE0201783C02080027 -:100CE0008C420038244200013C010800AC2200384C -:100CF000326200041040FF973C0280003C108000EC -:100D00008E020180000020210E000159AE02002059 -:100D10008E03018024020F00546200073C02800809 -:100D20008E0201883C0300E03042FFFF00431025A3 -:100D30000A000328AE020080344200809042000086 -:100D400024030050304200FF14430007000000005D -:100D50000E000362000000001440000300000000C9 -:100D60000E000971000000003C0208008C42003CAB -:100D70003C0440003C03800024420001AC6401B804 -:100D80003C010800AC22003C0A0002A33C028000A7 -:100D90003C02900034420001008220253C02800089 -:100DA000AC4400203C0380008C6200200440FFFE25 -:100DB0000000000003E00008000000003C0280008A -:100DC000344300010083202503E00008AC440020E8 -:100DD00027BDFFE0AFB10014AFB000100080882144 -:100DE000AFBF00180E00033230B000FF8F83FF94B6 -:100DF000022020219062002502028025A07000259B -:100E00008C7000183C0280000E00033D020280241A -:100E10001600000B8FBF00183C0480008C8201F884 -:100E20000440FFFE348201C024030002AC510000E4 -:100E3000A04300043C021000AC8201F88FBF0018F0 -:100E40008FB100148FB0001003E0000827BD002010 -:100E500027BDFFE83C028000AFBF00103442018094 -:100E6000944300048C4400083063020010600005C5 -:100E7000000028210E00100C000000000A0003787A -:100E8000240500013C02FF000480000700821824B2 -:100E90003C02040014620004240500018F82FF94C8 -:100EA00090420008240500018FBF001000A010210F -:100EB00003E0000827BD00188F82FF982405000179 -:100EC000A040001A3C028000344201400A00034264 -:100ED0008C4400008F85FF9427BDFFE0AFBF001C4E -:100EE000AFB20018AFB10014AFB0001090A2000074 -:100EF000304400FF38830020388200300003182B74 -:100F00000002102B0062182410600003240200501D -:100F1000148200A88FBF001C90A20005304200017F -:100F2000104000A48FBF001C3C02800034420140EE -:100F3000904200082443FFFF2C6200051040009EF1 -:100F40008FB20018000310803C030800246355ACE6 -:100F5000004310218C420000004000080000000007 -:100F60003C028000345101400E0003328E24000008 -:100F70008F92FF948E2200048E50000C1602000205 -:100F800024020001AE42000C0E00033D8E2400003E -:100F90008E220004145000068FBF001C8FB2001870 -:100FA0008FB100148FB000100A000F7827BD002009 -:100FB0008E42000C0A000419000000003C0480006E -:100FC0003482014094A300108C4200043063FFFF80 -:100FD0001443001C0000000024020001A4A2001021 -:100FE0008C8202380441000F3C0380003C02003F29 -:100FF0003448F0003C0760003C06FFC08CE22BBC8C -:1010000000461824004810240002130200031D8229 -:10101000106200583C0280008C8202380440FFF7C6 -:101020003C038000346201408C44000034620200C2 -:10103000AC4400003C021000AC6202380A00043BE1 -:101040008FBF001C94A200100A00041900000000C9 -:10105000240200201482000F3C0280003C03800028 -:1010600094A20012346301408C6300043042FFFFFD -:10107000146200050000000024020001A4A2001276 -:101080000A0004028FBF001C94A200120A00041977 -:1010900000000000345101400E0003328E24000095 -:1010A0008F92FF948E230004964200123050FFFF6F -:1010B0001603000224020001A64200120E00033DA6 -:1010C0008E2400008E220004160200068FBF001C32 -:1010D0008FB200188FB100148FB000100A00037C8B -:1010E00027BD0020964200120A00041900000000EB -:1010F0003C03800094A20014346301408C6300041C -:101100003042FFFF14620008240200018FBF001C60 -:101110008FB200188FB100148FB00010A4A2001479 -:101120000A00146327BD002094A20014144000217B -:101130008FBF001C0A000435000000003C03800043 -:1011400094A20016346301408C6300043042FFFF18 -:101150001462000D240200018FBF001C8FB2001822 -:101160008FB100148FB00010A4A200160A000B1457 -:1011700027BD00209442007824420004A4A200105D -:101180000A00043B8FBF001C94A200162403000138 -:101190003042FFFF144300078FBF001C3C020800D1 -:1011A0008C420070244200013C010800AC22007017 -:1011B0008FBF001C8FB200188FB100148FB00010C9 -:1011C00003E0000827BD002027BDFFD8AFB20018FC -:1011D0008F92FF94AFB10014AFBF0020AFB3001CDB -:1011E000AFB000103C028000345101008C5001006F -:1011F0009242000092230009304400FF2402001FA5 -:10120000106200AB28620020104000192402003850 -:101210002862000A1040000D2402000B286200081A -:101220001040002E8F820024046001042862000216 -:101230001440002A8F820024240200061062002637 -:101240008FBF00200A00055F8FB3001C1062006092 -:101250002862000B144000FA8FBF00202402000E09 -:10126000106200788F8200240A00055F8FB3001C93 -:10127000106200D2286200391040000A2402008067 -:1012800024020036106200E528620037104000C3D7 -:1012900024020035106200D98FBF00200A00055FCC -:1012A0008FB3001C1062002D2862008110400006E0 -:1012B000240200C824020039106200C98FBF002038 -:1012C0000A00055F8FB3001C106200A28FBF0020D0 -:1012D0000A00055F8FB3001C8F8200248C42000C33 -:1012E000104000D78FBF00200E000D8400000000CA -:1012F0003C038000346301008C6200008F85002075 -:10130000946700089466000CACA200008C64000492 -:101310008F82002400063400ACA400049448001E10 -:101320008C62001800073C0000E83825ACA20008D9 -:101330008C62001C24040001ACA2000C9062000A24 -:1013400000C23025ACA60010ACA00014ACA0001860 -:10135000ACA7001C0A00051D8FBF00208F8200244F -:101360008C42000C104000B68FBF00200E000D8490 -:10137000000000008F820024962400089625000CAF -:101380009443001E000422029626000E8F82002045 -:10139000000426000083202500052C003C0300806B -:1013A00000A6282500832025AC400000AC400004A6 -:1013B000AC400008AC40000CAC450010AC40001440 -:1013C000AC400018AC44001C0A00051C24040001B9 -:1013D0009622000C14400018000000009242000504 -:1013E0003042001014400014000000000E000332D0 -:1013F0000200202192420005020020213442001008 -:101400000E00033DA242000592420000240300208A -:10141000304200FF10430089020020218FBF0020CE -:101420008FB3001C8FB200188FB100148FB0001062 -:101430000A00107527BD00280000000D0A00055E97 -:101440008FBF00208C42000C1040007D8FBF002019 -:101450000E000D84000000008E2200048F84002006 -:101460009623000CAC8200003C0280089445002CBE -:101470008F82002400031C0030A5FFFF9446001E4D -:101480003C02400E0065182500C23025AC830004E4 -:10149000AC800008AC80000CAC800010AC80001464 -:1014A000AC800018AC86001C0A00051C2404000156 -:1014B0000E000332020020218F93FF9802002021AA -:1014C0000E00033DA660000C020020210E00034226 -:1014D000240500018F8200248C42000C104000582B -:1014E0008FBF00200E000D84000000009622000C2B -:1014F0008F83002000021400AC700000AC62000476 -:10150000AC6000088E4400388F820024AC64000C6C -:101510008E46003C9445001E3C02401FAC66001005 -:1015200000A228258E62000424040001AC6200148D -:10153000AC600018AC65001C8FBF00208FB3001C8E -:101540008FB200188FB100148FB000100A000DB8D0 -:1015500027BD0028240200201082003A8FB3001C0F -:101560000E000F5E00000000104000358FBF00200D -:101570003C0480008C8201F80440FFFE348201C0EC -:1015800024030002AC500000A04300043C02100001 -:10159000AC8201F80A00055E8FBF00200200202106 -:1015A0008FBF00208FB3001C8FB200188FB10014C2 -:1015B0008FB000100A000EA727BD00289625000C4A -:1015C000020020218FBF00208FB3001C8FB20018B3 -:1015D0008FB100148FB000100A000ECC27BD002878 -:1015E000020020218FB3001C8FB200188FB10014AD -:1015F0008FB000100A000EF727BD00289225000DBD -:10160000020020218FB3001C8FB200188FB100148C -:101610008FB000100A000F4827BD002802002021CB -:101620008FBF00208FB3001C8FB200188FB1001441 -:101630008FB000100A000F1F27BD00288FBF0020A9 -:101640008FB3001C8FB200188FB100148FB0001040 -:1016500003E0000827BD00283C0580008CA202782A -:101660000440FFFE34A2024024030002AC44000008 -:10167000A04300043C02100003E00008ACA2027882 -:10168000A380001803E00008A38000193C03800039 -:101690008C6202780440FFFE8F82001CAC62024024 -:1016A00024020002A06202443C02100003E0000891 -:1016B000AC6202783C02600003E000088C425404F3 -:1016C0009083003024020005008040213063003FF9 -:1016D0000000482114620005000050219082004C57 -:1016E0009483004E304900FF306AFFFFAD00000CCC -:1016F000AD000010AD000024950200148D05001C03 -:101700008D0400183042FFFF004910230002110031 -:10171000000237C3004038210086202300A2102B8E -:101720000082202300A72823AD05001CAD0400186B -:10173000A5090014A5090020A50A001603E0000869 -:10174000A50A002203E000080000000027BDFFD822 -:10175000AFB200183C128008AFB40020AFB3001C39 -:10176000AFB10014AFBF0024AFB00010365101007C -:101770003C0260008C4254049222000C3C1408008D -:10178000929400F7304300FF2402000110620032FF -:101790000080982124020002146200353650008037 -:1017A0000E00143D000000009202004C2403FF8054 -:1017B0003C0480003042007F000211C024420240FD -:1017C0000262102100431824AC8300949245000863 -:1017D0009204004C3042007F3C03800614850007D1 -:1017E000004380212402FFFFA22200112402FFFFF8 -:1017F000A62200120A0005D22402FFFF9602002052 -:10180000A222001196020022A62200128E020024BB -:101810003C048008AE2200143485008090A2004C65 -:1018200034830100A06200108CA2003CAC6200185E -:101830008C820068AC6200F48C820064AC6200F0C0 -:101840008C82006CAC6200F824020001A0A2006847 -:101850000A0005EE3C0480080E001456000000004B -:1018600036420080A04000680A0005EE3C04800873 -:10187000A2000068A20000690A0006293C02800854 -:10188000348300808C62003834850100AC62006CC7 -:1018900024020001A062006990A200D59083000894 -:1018A000305100FF3072007F12320019001111C058 -:1018B00024420240026210212403FF8000431824C6 -:1018C0003C048000AC8300943042007F3C038006DF -:1018D000004380218E02000C1040000D02002021E8 -:1018E0000E00057E0000000026220001305100FF9E -:1018F0009203003C023410260002102B0002102339 -:101900003063007F022288240A0005F8A203003C0D -:101910003C088008350401008C8200E03507008017 -:10192000ACE2003C8C8200E0AD02000090E5004C8F -:10193000908600D590E3004C908400D52402FF806F -:1019400000A228243063007F308400FF00A62825F1 -:101950000064182A1060000230A500FF38A500803E -:10196000A0E5004CA10500093C0280089043000E50 -:10197000344400803C058000A043000A8C8300189A -:101980003C027FFF3442FFFF00621824AC83001842 -:101990008CA201F80440FFFE00000000ACB301C0BF -:1019A0008FBF00248FB400208FB3001C8FB20018AB -:1019B0008FB100148FB0001024020002A0A201C455 -:1019C00027BD00283C02100003E00008ACA201F88B -:1019D00090A2000024420001A0A200003C030800E5 -:1019E0008C6300F4304200FF144300020080302179 -:1019F000A0A0000090A200008F84001C000211C073 -:101A00002442024024830040008220212402FF80DF -:101A1000008220243063007F3C02800A006218218B -:101A20003C028000AC44002403E00008ACC300008A -:101A300094820006908300058C85000C8C86001033 -:101A40008C8700188C88001C8C8400203C010800C6 -:101A5000A42256C63C010800A02356C53C0108003C -:101A6000AC2556CC3C010800AC2656D03C01080001 -:101A7000AC2756D83C010800AC2856DC3C010800D5 -:101A8000AC2456E003E00008000000003C0280089F -:101A9000344201008C4400343C038000346504006F -:101AA000AC6400388C420038AF850028AC62003C42 -:101AB0003C020005AC6200300000000000000000A5 -:101AC00003E00008000000003C020006308400FF34 -:101AD000008220253C028000AC4400300000000061 -:101AE00000000000000000003C0380008C62000049 -:101AF000304200101040FFFD3462040003E0000893 -:101B0000AF82002894C200003C080800950800CA73 -:101B100030E7FFFF0080482101021021A4C200002D -:101B200094C200003042FFFF00E2102B544000013D -:101B3000A4C7000094A200003C0308008C6300CC02 -:101B400024420001A4A2000094A200003042FFFF42 -:101B5000144300073C0280080107102BA4A00000DA -:101B60005440000101003821A4C700003C02800855 -:101B7000344601008CC3002894A200003C0480007D -:101B80003042FFFE000210C000621021AC82003C17 -:101B90008C82003C006218231860000400000000E2 -:101BA0008CC200240A0006BA244200018CC2002420 -:101BB000AC8200383C020050344200103C038000EC -:101BC000AC620030000000000000000000000000D7 -:101BD0008C620000304200201040FFFD0000000039 -:101BE00094A200003C04800030420001000210C0BA -:101BF000004410218C430400AD2300008C420404F7 -:101C0000AD2200043C02002003E00008AC8200305A -:101C100027BDFFE0AFB20018AFB10014AFB00010A5 -:101C2000AFBF001C94C2000000C080213C1208001D -:101C3000965200C624420001A6020000960300004E -:101C400094E2000000E03021144300058FB1003021 -:101C50000E00068F024038210A0006F10000000045 -:101C60008C8300048C82000424420040046100073D -:101C7000AC8200048C8200040440000400000000D8 -:101C80008C82000024420001AC8200009602000019 -:101C90003042FFFF50520001A600000096220000D3 -:101CA00024420001A62200003C02800834420100C8 -:101CB000962300009442003C144300048FBF001C94 -:101CC00024020001A62200008FBF001C8FB2001862 -:101CD0008FB100148FB0001003E0000827BD002072 -:101CE00027BDFFE03C028008AFBF0018344201006E -:101CF0008C4800343C03800034690400AC68003830 -:101D00008C42003830E700FFAF890028AC62003C0D -:101D10003C020005AC620030000000000000000042 -:101D200000000000000000000000000000000000B3 -:101D30008C82000C8C82000C97830016AD22000070 -:101D40008C82001000604021AD2200048C820018BB -:101D5000AD2200088C82001CAD22000C8CA2001465 -:101D6000AD2200108C820020AD220014908200056C -:101D7000304200FF00021200AD2200188CA20018B1 -:101D8000AD22001C8CA2000CAD2200208CA2001001 -:101D9000AD2200248CA2001CAD2200288CA20020C1 -:101DA000AD22002C3402FFFFAD260030AD20003400 -:101DB000506200013408FFFFAD28003850E00011E8 -:101DC0003C0280083C048008348401009482005066 -:101DD0003042FFFFAD22003C9483004494850044D0 -:101DE000240200013063FFFF000318C200641821C1 -:101DF0009064006430A5000700A210040A00075C8C -:101E00000044102534420100AD20003C94430044BE -:101E1000944400443063FFFF000318C2006218219D -:101E200030840007906500642402000100821004E1 -:101E30000002102700451024A0620064000000008A -:101E400000000000000000003C0200063442004098 -:101E50003C038000AC620030000000000000000085 -:101E6000000000008C620000304200101040FFFDB6 -:101E70003C06800834C201503463040034C7014A70 -:101E800034C4013434C5014034C60144AFA200104B -:101E90000E0006D2AF8300288FBF001803E00008B1 -:101EA00027BD00208F8300143C0608008CC600E884 -:101EB0008F82001C30633FFF000319800046102111 -:101EC000004310212403FF80004318243C068000B7 -:101ED000ACC300283042007F3C03800C004330211B -:101EE00090C2000D30A500FF0000382134420010E0 -:101EF000A0C2000D8F8900143C028008344201000A -:101F00009443004400091382304800032402000176 -:101F1000A4C3000E1102000B2902000210400005AC -:101F2000240200021100000C240300010A0007A48F -:101F30000000182111020006000000000A0007A49A -:101F4000000018218CC2002C0A0007A424430001C1 -:101F50008CC20014244300018CC200180043102BD3 -:101F60005040000A240700012402002714A20003A5 -:101F70003C0380080A0007B1240700013463010014 -:101F80009462004C24420001A462004C00091382B8 -:101F9000304300032C620002104000090080282119 -:101FA000146000040000000094C200340A0007C15D -:101FB0003046FFFF8CC600380A0007C10080282188 -:101FC000000030213C040800248456C00A000706A3 -:101FD0000000000027BDFF90AFB60068AFB50064F9 -:101FE000AFB40060AFB3005CAFB20058AFB1005403 -:101FF000AFBF006CAFB000508C9000000080B021EB -:102000003C0208008C4200E8960400328F83001CDA -:102010002414FF8030843FFF0062182100042180D7 -:1020200000641821007410243C13800000A090214B -:1020300090A50000AE620028920400323C02800CA1 -:102040003063007F00628821308400C02402004099 -:10205000148200320000A8218E3500388E2200182C -:102060001440000224020001AE2200189202003C3B -:10207000304200201440000E8F83001C000511C068 -:102080002442024000621821306400783C02008043 -:102090000082202500741824AE630800AE64081086 -:1020A0008E2200188E03000800431021AE22001873 -:1020B0008E22002C8E230018244200010062182B6F -:1020C0001060004300000000924200002442000122 -:1020D000A24200003C0308008C6300F4304200FF81 -:1020E00050430001A2400000924200008F84001C77 -:1020F000000211C024420240248300403063007F6C -:10210000008220213C02800A0094202400621821D1 -:10211000AE6400240A0008D2AEC30000920300326D -:102120002402FFC000431024304200FF1440000589 -:1021300024020001AE220018962200340A00084250 -:102140003055FFFF8E22001424420001AE220018F9 -:102150009202003000021600000216030441001C27 -:10216000000000009602003227A400100080282101 -:10217000A7A20016960200320000302124070001B9 -:102180003042FFFFAF8200140E000706AFA0001C14 -:10219000960200328F83001C3C0408008C8400E807 -:1021A00030423FFF000211800064182100621821B4 -:1021B00000741024AE62002C3063007F3C02800E5D -:1021C000006218219062000D3042007FA062000D75 -:1021D0009222000D304200105040007892420000E0 -:1021E0003C028008344401009482004C8EC30000FD -:1021F0003C130800967300C62442FFFFA482004CE3 -:10220000946200329623000E3054FFFF3070FFFFBF -:102210003C0308008C6300D000701807A7A30038A7 -:102220009482003E3063FFFF3042FFFF14620007DC -:10223000000000008C8200303C038000244200300B -:10224000AC62003C0A00086A8C82002C9482004038 -:102250003042FFFF5462000927A400408C820038FE -:102260003C03800024420030AC62003C8C8200348D -:10227000AC6200380A0008793C03800027A50038CA -:1022800027A60048026038210E00068FA7A000484C -:102290008FA300403C02800024630030AC43003830 -:1022A0008FA30044AC43003C3C0380003C0200058B -:1022B000AC6200303C028008344401009482004249 -:1022C000346304003042FFFF0202102B1440000769 -:1022D000AF8300289482004E9483004202021021B2 -:1022E000004310230A00088F3043FFFF9483004E01 -:1022F00094820042026318210050102300621823C8 -:102300003063FFFF3C028008344401009482003CAB -:102310003042FFFF14430003000000000A00089F42 -:10232000240300019482003C3042FFFF0062102B26 -:10233000144000058F8200289482003C0062102324 -:102340003043FFFF8F820028AC550000AC400004F2 -:10235000AC540008AC43000C3C02000634420010B0 -:102360003C038000AC620030000000000000000070 -:10237000000000008C620000304200101040FFFDA1 -:102380003C04800834840100001018C20064182145 -:102390009065006432020007240600010046100424 -:1023A00000451025A0620064948300429622000E2E -:1023B00050430001A386001892420000244200010D -:1023C000A24200003C0308008C6300F4304200FF8E -:1023D00050430001A2400000924200008F84001C84 -:1023E000000211C0244202402483004000822021C8 -:1023F0002402FF80008220243063007F3C02800A98 -:10240000006218213C028000AC440024AEC30000EE -:102410008FBF006C8FB600688FB500648FB400600A -:102420008FB3005C8FB200588FB100548FB0005052 -:1024300003E0000827BD007027BDFFD8AFB3001C24 -:10244000AFB20018AFB10014AFB00010AFBF0020A2 -:102450000080982100E0802130B1FFFF0E000D8444 -:1024600030D200FF0000000000000000000000006B -:102470008F8200208F830024AC510000AC520004F6 -:10248000AC530008AC40000CAC400010AC40001451 -:10249000AC4000189463001E02038025AC50001C61 -:1024A0000000000000000000000000002404000103 -:1024B0008FBF00208FB3001C8FB200188FB10014A3 -:1024C0008FB000100A000DB827BD002830A5FFFF0F -:1024D0000A0008DC30C600FF3C02800834430100DB -:1024E0009462000E3C080800950800C63046FFFFC5 -:1024F00014C000043402FFFF946500EA0A000929B1 -:102500008F84001C10C20027000000009462004E5F -:102510009464003C3045FFFF00A6102300A6182B52 -:102520003087FFFF106000043044FFFF00C5102318 -:1025300000E210233044FFFF0088102B1040000EF3 -:1025400000E810233C028008344401002403000109 -:1025500034420080A44300162402FFFFA482000E30 -:10256000948500EA8F84001C0000302130A5FFFF15 -:102570000A0009013C0760200044102A10400009AD -:102580003C0280083443008094620016304200010F -:10259000104000043C0280009442007E244200145B -:1025A000A462001603E000080000000027BDFFE061 -:1025B0003C028008AFBF001CAFB0001834420100DD -:1025C000944300429442004C104000193068FFFFD1 -:1025D0009383001824020001146200298FBF001C9D -:1025E0003C06800834D00100000810C200501021C1 -:1025F000904200643103000734C70148304200FFB5 -:10260000006210073042000134C9014E34C4012C6D -:1026100034C5013E1040001634C601420E0006D2F9 -:10262000AFA90010960200420A0009463048FFFF99 -:102630003C028008344401009483004494820042A8 -:102640001043000F8FBF001C94820044A4820042FC -:1026500094820050A482004E8C820038AC820030FC -:1026600094820040A482003E9482004AA4820048E2 -:102670008FBF001C8FB000180A00090427BD00207E -:102680008FB0001803E0000827BD002027BDFFA081 -:10269000AFB1004C3C118000AFBF0058AFB3005445 -:1026A000AFB20050AFB000483626018890C2000398 -:1026B0003044007FA3A400108E32018090C200003D -:1026C0003043007F240200031062003BAF92001CE5 -:1026D00028620004104000062402000424020002C4 -:1026E000106200098FBF00580A000B0F8FB300540F -:1026F0001062004D240200051062014E8FBF005889 -:102700000A000B0F8FB30054000411C002421021C5 -:102710002404FF8024420240004410242643004049 -:10272000AE2200243063007F3C02800A0062182140 -:102730009062003CAFA3003C00441025A062003C26 -:102740008FA3003C9062003C304200401040016C7E -:102750008FBF00583C108008A3800018361001007D -:102760008E0200E08C63003427A4003C27A50010F3 -:10277000004310210E0007C3AE0200E093A2001038 -:102780003C038000A20200D58C6202780440FFFE68 -:102790008F82001CAC62024024020002A06202444C -:1027A0003C021000AC6202780E0009390000000003 -:1027B0000A000B0E8FBF00583C05800890C3000133 -:1027C00090A2000B1443014E8FBF005834A4008028 -:1027D0008C8200189082004C90A200083C0260009D -:1027E0008C4254048C8300183C027FFF3442FFFF6C -:1027F000006218243C0208008C4200B4AC8300182C -:102800003C038000244200013C010800AC2200B4DB -:102810008C6201F80440FFFE8F82001CAC6201C094 -:102820000A000AD6240200023C10800890C300016E -:102830009202000B144301328FBF005827A40018E6 -:1028400036050110240600033C0260008C4254044B -:102850000E000E470000000027A40028360501F0F6 -:102860000E000E47240600038FA200283603010045 -:10287000AE0200648FA2002CAE0200688FA200306E -:10288000AE02006C93A40018906300D52402FF8070 -:102890000082102400431025304900FF3084007F5F -:1028A0003122007F0082102A544000013929008023 -:1028B000000411C0244202402403FF800242102180 -:1028C00000431024AE220094264200403042007F94 -:1028D0003C038006004340218FA3001C2402FFFF1D -:1028E000AFA800403C130800927300F71062003359 -:1028F00093A2001995030014304400FF3063FFFFDA -:102900000064182B106000100000000095040014F3 -:102910008D07001C8D0600183084FFFF0044202323 -:102920000004210000E438210000102100E4202BE5 -:1029300000C2302100C43021AD07001CAD060018D4 -:102940000A000A2F93A20019950400148D07001C99 -:102950008D0600183084FFFF008220230004210030 -:10296000000010210080182100C2302300E4202B39 -:1029700000C4302300E33823AD07001CAD06001867 -:1029800093A200198FA30040A462001497A2001A1A -:10299000A46200168FA2001CAC6200108FA2001C63 -:1029A000AC62000C93A20019A462002097A2001A46 -:1029B000A46200228FA2001CAC6200243C048008A8 -:1029C000348300808C6200388FA20020012088218F -:1029D000AC62003C8FA20020AC82000093A20018E1 -:1029E000A062004C93A20018A0820009A0600068B9 -:1029F00093A20018105100512407FF803229007F54 -:102A0000000911C024420240024210213046007FDA -:102A10003C03800000471024AC6200943C02800616 -:102A200000C2302190C2003CAFA60040000020212F -:102A300000471025A0C2003C8FA80040950200026C -:102A4000950300148D07001C3042FFFF3063FFFF29 -:102A50008D060018004310230002110000E2382107 -:102A600000E2102B00C4302100C23021AD07001C51 -:102A7000AD06001895020002A5020014A50000167C -:102A80008D020008AD0200108D020008AD02000C9E -:102A900095020002A5020020A50000228D02000878 -:102AA000AD0200249102003C304200401040001A68 -:102AB000262200013C108008A3A90038A38000183A -:102AC000361001008E0200E08D03003427A4004080 -:102AD00027A50038004310210E0007C3AE0200E016 -:102AE00093A200383C038000A20200D58C620278D9 -:102AF0000440FFFE8F82001CAC62024024020002F0 -:102B0000A06202443C021000AC6202780E00093957 -:102B100000000000262200013043007F14730004EF -:102B2000004020212403FF8002231024004320269C -:102B300093A200180A000A4B309100FF93A40018DA -:102B40008FA3001C2402FFFF1062000A308900FFDF -:102B500024820001248300013042007F14530005C9 -:102B6000306900FF2403FF800083102400431026F7 -:102B7000304900FF3C028008904200080120882173 -:102B8000305000FF123000193222007F000211C0C5 -:102B900002421021244202402403FF8000431824F3 -:102BA0003C048000AC8300943042007F3C038006EC -:102BB000004310218C43000C004020211060000BCA -:102BC000AFA200400E00057E000000002623000199 -:102BD0002405FF803062007F145300020225202468 -:102BE000008518260A000AAF307100FF3C048008F7 -:102BF000348400808C8300183C027FFF3442FFFF46 -:102C000000621824AC8300183C0380008C6201F839 -:102C10000440FFFE00000000AC7201C0240200026C -:102C2000A06201C43C021000AC6201F80A000B0E65 -:102C30008FBF00583C04800890C300019082000BB5 -:102C40001443002F8FBF0058349000809202000878 -:102C500030420040104000200000000092020008B6 -:102C60000002160000021603044100050240202164 -:102C70000E000ECC240500930A000B0E8FBF0058E7 -:102C80009202000924030018304200FF1443000D93 -:102C900002402021240500390E000E64000030217E -:102CA0000E0003328F84001C8F82FF9424030012D5 -:102CB000A04300090E00033D8F84001C0A000B0E88 -:102CC0008FBF0058240500360E000E64000030212E -:102CD0000A000B0E8FBF00580E0003320240202165 -:102CE000920200058F84001C344200200E00033D38 -:102CF000A20200050E0010758F84001C8FBF0058C3 -:102D00008FB300548FB200508FB1004C8FB0004889 -:102D100003E0000827BD00603C0280083445010044 -:102D20003C0280008C42014094A3000E0000302140 -:102D300000402021AF82001C3063FFFF3402FFFF00 -:102D4000106200063C0760202402FFFFA4A2000ED0 -:102D500094A500EA0A00090130A5FFFF03E000087E -:102D60000000000027BDFFC83C0280003C06800830 -:102D7000AFB5002CAFB1001CAFBF0030AFB400281E -:102D8000AFB30024AFB20020AFB00018345101003F -:102D900034C501008C4301008E2200148CA400E491 -:102DA0000000A821AF83001C0044102318400052EB -:102DB000A38000188E22001400005021ACA200E471 -:102DC00090C3000890A200D53073007FA3A200102A -:102DD0008CB200E08CB400E4304200FF1053003BA2 -:102DE00093A200108F83001C2407FF80000211C0F3 -:102DF0000062102124420240246300400047102456 -:102E00003063007F3C0980003C08800A006818217C -:102E1000AD2200248C62003427A4001427A50010E2 -:102E2000024280210290102304400028AFA3001426 -:102E30009062003C00E21024304200FF1440001970 -:102E4000020090219062003C34420040A062003CAD -:102E50008F86001C93A3001024C200403042007FE4 -:102E6000004828213C0208008C4200F42463000141 -:102E7000306400FF14820002A3A30010A3A000107E -:102E800093A20010AFA50014000211C0244202401A -:102E900000C2102100471024AD2200240A000B4577 -:102EA00093A200100E0007C3000000003C0280083F -:102EB00034420100AC5000E093A30010240A00014A -:102EC000A04300D50A000B4593A200102402000184 -:102ED000154200093C0380008C6202780440FFFE2A -:102EE0008F82001CAC62024024020002A0620244F5 -:102EF0003C021000AC6202789222000B2403000214 -:102F0000304200FF144300720000000096220008C7 -:102F1000304300FF24020082146200402402008437 -:102F20003C028000344901008D22000C95230006EC -:102F3000000216023063FFFF3045003F24020027E5 -:102F400010A2000FAF83001428A200281040000830 -:102F5000240200312402002110A2000924020025CD -:102F600010A20007938200190A000BBD00000000A8 -:102F700010A20007938200190A000BBD0000000098 -:102F80000E000777012020210A000C3D0000000000 -:102F90003C0380008C6202780440FFFE8F82001C9C -:102FA000AC62024024020002A06202443C02100013 -:102FB000AC6202780A000C3D000000009523000678 -:102FC000912400058D25000C8D2600108D270018FA -:102FD0008D28001C8D290020244200013C0108009E -:102FE000A42356C63C010800A02456C53C01080095 -:102FF000AC2556CC3C010800AC2656D03C0108005C -:10300000AC2756D83C010800AC2856DC3C0108002F -:10301000AC2956E00A000C3DA38200191462000A94 -:10302000240200813C02800834420100944500EAF9 -:10303000922600058F84001C30A5FFFF30C600FFDC -:103040000A000BFE3C0760211462005C00000000D7 -:103050009222000A304300FF306200201040000737 -:10306000306200403C02800834420100944500EA8E -:103070008F84001C0A000BFC24060040104000074F -:10308000000316003C02800834420100944500EA27 -:103090008F84001C0A000BFC24060041000216036A -:1030A000044100463C02800834420100944500EA95 -:1030B0008F84001C2406004230A5FFFF3C076019E6 -:1030C0000E000901000000000A000C3D0000000095 -:1030D0009222000B24040016304200FF1044000628 -:1030E0003C0680009222000B24030017304200FFB0 -:1030F000144300320000000034C5010090A2000B10 -:10310000304200FF1444000B000080218CA20020FC -:103110008CA400202403FF800043102400021140EF -:103120003084007F004410253C032000004310251C -:10313000ACC2083094A2000800021400000214037C -:10314000044200012410000194A2000830420080D3 -:103150005040001A0200A82194A20008304220002A -:10316000504000160200A8218CA300183C021C2D20 -:10317000344219ED106200110200A8213C0208003F -:103180008C4200D4104000053C0280082403000457 -:1031900034420100A04300FC3C028008344201009C -:1031A000944500EA8F84001C2406000630A5FFFF2A -:1031B0000E0009013C0760210200A8210E00093918 -:1031C000000000009222000A304200081040000473 -:1031D00002A010210E0013790000000002A01021AF -:1031E0008FBF00308FB5002C8FB400288FB3002420 -:1031F0008FB200208FB1001C8FB0001803E00008D0 -:1032000027BD00382402FF80008220243C02900069 -:1032100034420007008220253C028000AC4400209C -:103220003C0380008C6200200440FFFE0000000090 -:1032300003E00008000000003C0380002402FF803F -:10324000008220243462000700822025AC64002024 -:103250008C6200200440FFFE0000000003E0000834 -:103260000000000027BDFFD8AFB3001CAFB10014B1 -:10327000AFB00010AFBF0020AFB200183C1180000B -:103280003C0280088E32002034530100AE2400201E -:10329000966300EA000514003C074000004738250B -:1032A00000A08021000030210E0009013065FFFFE1 -:1032B000240200A1160200022402FFFFA2620009FC -:1032C000AE3200208FBF00208FB3001C8FB20018D9 -:1032D0008FB100148FB0001003E0000827BD002854 -:1032E0003C0280082403000527BDFFE834420100AA -:1032F000A04300FCAFBF00103C0280008C420100E4 -:10330000240500A1004020210E000C67AF82001CA4 -:103310003C0380008C6202780440FFFE8F82001C18 -:103320008FBF001027BD0018AC62024024020002CB -:10333000A06202443C021000AC62027803E0000884 -:103340000000000027BDFFE83C068000AFBF001072 -:1033500034C7010094E20008304400FF3883008243 -:10336000388200842C6300012C4200010062182581 -:103370001060002D24020083938200195040003B0E -:103380008FBF00103C020800904256CC8CC4010054 -:103390003C06080094C656C63045003F38A30032AC -:1033A00038A2003F2C6300012C4200010062182566 -:1033B000AF84001CAF860014A380001914600007BE -:1033C00000E020212402002014A2001200000000CE -:1033D0003402FFFF14C2000F00000000240200208E -:1033E00014A2000500E028218CE300142402FFFF52 -:1033F0005062000B8FBF00103C040800248456C0AC -:10340000000030210E000706240700010A000CD638 -:103410008FBF00100E000777000000008FBF001064 -:103420000A00093927BD001814820004240200850F -:103430008CC501040A000CE1000020211482000662 -:103440002482FF808CC50104240440008FBF00103B -:103450000A00016727BD0018304200FF2C4200021D -:1034600010400004240200228FBF00100A000B2726 -:1034700027BD0018148200048F8200248FBF001023 -:103480000A000C8627BD00188C42000C1040001E5C -:1034900000E0282190E300092402001814620003D0 -:1034A000240200160A000CFC240300081462000722 -:1034B00024020017240300123C02800834420080DA -:1034C000A04300090A000D0994A7000854620007F0 -:1034D00094A700088F82FF942404FFFE9043000508 -:1034E00000641824A043000594A7000890A6001BC0 -:1034F0008CA4000094A500068FBF001000073C00BC -:103500000A0008DC27BD00188FBF001003E0000888 -:1035100027BD00188F8500243C04800094A2002A57 -:103520008CA30034000230C02402FFF000C210243B -:1035300000621821AC83003C8CA200303C03800068 -:10354000AC8200383C02005034420010AC620030C3 -:103550000000000000000000000000008C6200007D -:10356000304200201040FFFD30C20008104000062D -:103570003C0280008C620408ACA200208C62040C27 -:103580000A000D34ACA200248C430400ACA300203C -:103590008C420404ACA200243C0300203C028000C6 -:1035A000AC4300303C0480008C8200300043102487 -:1035B0001440FFFD8F8600243C020040AC820030A6 -:1035C00094C3002A94C2002894C4002C94C5002EF1 -:1035D00024630001004410213064FFFFA4C20028CE -:1035E00014850002A4C3002AA4C0002A03E0000836 -:1035F000000000008F84002427BDFFE83C05800404 -:1036000024840010AFBF00100E000E472406000AED -:103610008F840024948200129483002E3042000F85 -:10362000244200030043180424027FFF0043102BB0 -:1036300010400002AC8300000000000D0E000D13CE -:10364000000000008F8300248FBF001027BD0018EA -:10365000946200149463001A3042000F00021500B7 -:10366000006218253C02800003E00008AC4300A083 -:103670008F8300243C028004944400069462001A64 -:103680008C650000A4640016004410233042FFFF44 -:103690000045102B03E00008384200018F8400240D -:1036A0003C0780049486001A8C85000094E2000692 -:1036B000A482001694E3000600C310233042FFFFEB -:1036C0000045102B384200011440FFF8A483001677 -:1036D00003E00008000000008F8400243C02800406 -:1036E000944200069483001A8C850000A482001680 -:1036F000006210233042FFFF0045102B38420001CA -:103700005040000D8F850024006030213C0780046C -:1037100094E20006A482001694E3000600C310237E -:103720003042FFFF0045102B384200011440FFF8E3 -:10373000A48300168F8500243C03800034620400BB -:103740008CA40020AF820020AC6400388CA200243E -:10375000AC62003C3C020005AC62003003E00008B3 -:10376000ACA000048F8400243C0300068C8200047B -:1037700000021140004310253C038000AC62003081 -:103780000000000000000000000000008C6200004B -:10379000304200101040FFFD34620400AC80000491 -:1037A00003E00008AF8200208F86002427BDFFE0E1 -:1037B000AFB10014AFB00010AFBF00188CC300044D -:1037C0008CC500248F820020309000FF94C4001A22 -:1037D00024630001244200202484000124A7002047 -:1037E000ACC30004AF820020A4C4001AACC70024FC -:1037F00004A100060000882104E2000594C2001A1A -:103800008CC2002024420001ACC2002094C2001AE5 -:1038100094C300282E040001004310262C4200010E -:10382000004410245040000594C2001A24020001F4 -:10383000ACC2000894C2001A94C300280010202BC8 -:10384000004310262C4200010044102514400007BC -:10385000000000008CC20008144000042402001084 -:103860008CC300041462000F8F8500240E000DA786 -:10387000241100018F820024944300289442001AEE -:1038800014430003000000000E000D1300000000B0 -:10389000160000048F8500240E000D840000000037 -:1038A0008F85002494A2001E94A4001C24420001D1 -:1038B0003043FFFF14640002A4A2001EA4A0001E57 -:1038C0001200000A3C02800494A2001494A3001A7F -:1038D0003042000F00021500006218253C028000F3 -:1038E000AC4300A00A000E1EACA0000894420006E3 -:1038F00094A3001A8CA40000A4A200160062102356 -:103900003042FFFF0044102B384200011040000DF0 -:1039100002201021006030213C07800494E2000660 -:10392000A4A2001694E3000600C310233042FFFF58 -:103930000044102B384200011440FFF8A4A30016E5 -:10394000022010218FBF00188FB100148FB000101B -:1039500003E0000827BD002003E00008000000008D -:103960008F82002C3C03000600021140004310250A -:103970003C038000AC62003000000000000000004A -:10398000000000008C620000304200101040FFFD7B -:1039900034620400AF82002803E00008AF80002CEE -:1039A00003E000080000102103E000080000000010 -:1039B0003084FFFF30A5FFFF0000182110800007B2 -:1039C000000000003082000110400002000420428C -:1039D000006518210A000E3D0005284003E000089C -:1039E0000060102110C0000624C6FFFF8CA200005A -:1039F00024A50004AC8200000A000E4724840004C1 -:103A000003E000080000000010A0000824A3FFFF4E -:103A1000AC86000000000000000000002402FFFF50 -:103A20002463FFFF1462FFFA2484000403E000080B -:103A3000000000003C0280083442008024030001A2 -:103A4000AC43000CA4430010A4430012A443001490 -:103A500003E00008A44300168F82002427BDFFD88E -:103A6000AFB3001CAFB20018AFB10014AFB000107C -:103A7000AFBF00208C47000C248200802409FF8007 -:103A80003C08800E3043007F008080213C0A80008B -:103A9000004920240068182130B100FF30D200FF17 -:103AA00010E000290000982126020100AD44002CFE -:103AB000004928243042007F004820219062000005 -:103AC00024030050304200FF1443000400000000B3 -:103AD000AD45002C948200EA3053FFFF0E000D84A8 -:103AE000000000008F8200248F83002000112C0032 -:103AF0009442001E001224003484000100A22825F4 -:103B00003C02400000A22825AC7000008FBF0020BE -:103B1000AC6000048FB20018AC7300088FB10014C1 -:103B2000AC60000C8FB3001CAC6400108FB00010B0 -:103B3000AC60001424040001AC60001827BD00280C -:103B40000A000DB8AC65001C8FBF00208FB3001CAD -:103B50008FB200188FB100148FB0001003E000087E -:103B600027BD00283C06800034C201009043000FAE -:103B7000240200101062000E2865001110A000073A -:103B800024020012240200082405003A10620006F4 -:103B90000000302103E0000800000000240500358B -:103BA0001462FFFC000030210A000E6400000000D7 -:103BB0008CC200748F83FF9424420FA003E000089E -:103BC000AC62000C27BDFFE8AFBF00100E0003423F -:103BD000240500013C0480088FBF0010240200016E -:103BE00034830080A462001227BD00182402000163 -:103BF00003E00008A080001A27BDFFE0AFB2001864 -:103C0000AFB10014AFB00010AFBF001C30B2FFFF67 -:103C10000E000332008088213C028008345000806E -:103C20009202000924030004304200FF1443000CF8 -:103C30003C028008124000082402000A0E000E5BBD -:103C400000000000920200052403FFFE0043102440 -:103C5000A202000524020012A20200093C02800810 -:103C600034420080022020210E00033DA0400027A6 -:103C700016400003022020210E000EBF00000000AD -:103C800002202021324600FF8FBF001C8FB2001897 -:103C90008FB100148FB00010240500380A000E64A4 -:103CA00027BD002027BDFFE0AFBF001CAFB200184A -:103CB000AFB10014AFB000100E00033200808021BD -:103CC0000E000E5B000000003C02800834450080BE -:103CD00090A2000924120018305100FF1232000394 -:103CE0000200202124020012A0A2000990A20005D7 -:103CF0002403FFFE004310240E00033DA0A2000594 -:103D00000200202124050020163200070000302187 -:103D10008FBF001C8FB200188FB100148FB000103D -:103D20000A00034227BD00208FBF001C8FB200187D -:103D30008FB100148FB00010240500390A000E6402 -:103D400027BD002027BDFFE83C028000AFB0001077 -:103D5000AFBF0014344201009442000C2405003629 -:103D60000080802114400012304600FF0E00033214 -:103D7000000000003C02800834420080240300124E -:103D8000A043000990430005346300100E000E5B51 -:103D9000A04300050E00033D020020210200202167 -:103DA0000E000342240500200A000F3C0000000022 -:103DB0000E000E64000000000E00033202002021FD -:103DC0003C0280089043001B2405FF9F0200202135 -:103DD000006518248FBF00148FB00010A043001B93 -:103DE0000A00033D27BD001827BDFFE0AFBF001844 -:103DF000AFB10014AFB0001030B100FF0E000332BD -:103E0000008080213C02800824030012344200809C -:103E10000E000E5BA04300090E00033D02002021AE -:103E200002002021022030218FBF00188FB1001422 -:103E30008FB00010240500350A000E6427BD002055 -:103E40003C0480089083000E9082000A1443000B0B -:103E5000000028218F82FF942403005024050001D4 -:103E600090420000304200FF1443000400000000B4 -:103E70009082000E24420001A082000E03E00008A0 -:103E800000A010213C0380008C6201F80440FFFE7A -:103E900024020002AC6401C0A06201C43C02100014 -:103EA00003E00008AC6201F827BDFFE0AFB20018E4 -:103EB0003C128008AFB10014AFBF001CAFB00010BF -:103EC00036510080922200092403000A304200FF8C -:103ED0001443003E000000008E4300048E22003890 -:103EE000506200808FBF001C92220000240300500B -:103EF000304200FF144300253C0280008C42014008 -:103F00008E4300043642010002202821AC43001CED -:103F10009622005C8E2300383042FFFF00021040E2 -:103F200000621821AE23001C8E4300048E2400384A -:103F30009622005C006418233042FFFF0003184300 -:103F4000000210400043102A10400006000000004C -:103F50008E4200048E230038004310230A000FAA6B -:103F6000000220439622005C3042FFFF0002204006 -:103F70003C0280083443010034420080ACA4002C91 -:103F8000A040002424020001A062000C0E000F5E7D -:103F900000000000104000538FBF001C3C02800056 -:103FA0008C4401403C0380008C6201F80440FFFE19 -:103FB00024020002AC6401C0A06201C43C021000F3 -:103FC000AC6201F80A0010078FBF001C92220009A2 -:103FD00024030010304200FF144300043C02800020 -:103FE0008C4401400A000FEE0000282192220009B3 -:103FF00024030016304200FF14430006240200147C -:10400000A22200093C0280008C4401400A001001F9 -:104010008FBF001C8E2200388E23003C00431023EB -:10402000044100308FBF001C92220027244200016F -:10403000A2220027922200272C42000414400016DE -:104040003C1080009222000924030004304200FF4B -:10405000144300093C0280008C4401408FBF001CC7 -:104060008FB200188FB100148FB000102405009398 -:104070000A000ECC27BD00208C440140240500938B -:104080008FBF001C8FB200188FB100148FB00010CA -:104090000A000F4827BD00208E0401400E000332A5 -:1040A000000000008E4200042442FFFFAE420004E4 -:1040B0008E22003C2442FFFFAE22003C0E00033D56 -:1040C0008E0401408E0401408FBF001C8FB2001887 -:1040D0008FB100148FB00010240500040A000342C1 -:1040E00027BD00208FB200188FB100148FB00010D0 -:1040F00003E0000827BD00203C0680008CC2018838 -:104100003C038008346500809063000E00021402B6 -:10411000304400FF306300FF1464000E3C0280084E -:1041200090A20026304200FF104400098F82FF94C5 -:10413000A0A400262403005090420000304200FF5B -:1041400014430006000000000A0005A18CC4018091 -:104150003C02800834420080A044002603E00008AE -:104160000000000027BDFFE030E700FFAFB20018FD -:10417000AFBF001CAFB10014AFB0001000809021A1 -:1041800014E0000630C600FF000000000000000D33 -:10419000000000000A001060240001163C038008A3 -:1041A0009062000E304200FF14460023346200800B -:1041B00090420026304200FF1446001F000000001D -:1041C0009062000F304200FF1446001B0000000008 -:1041D0009062000A304200FF144600038F90FF9463 -:1041E0000000000D8F90FF948F82FF983C1180009B -:1041F000AE05003CAC450000A066000A0E0003328C -:104200008E240100A20000240E00033D8E24010034 -:104210003C0380008C6201F80440FFFE240200028F -:10422000AC7201C0A06201C43C021000AC6201F893 -:104230000A0010618FBF001C000000000000000D8C -:10424000000000002400013F8FBF001C8FB2001847 -:104250008FB100148FB0001003E0000827BD0020CC -:104260008F83FF943C0280008C44010034420100A3 -:104270008C65003C9046001B0A00102724070001B3 -:104280003C0280089043000E9042000A0043102632 -:10429000304200FF03E000080002102B27BDFFE0C2 -:1042A0003C028008AFB10014AFB00010AFBF0018DF -:1042B0003450008092020005240300303042003068 -:1042C00014430085008088218F8200248C42000CDA -:1042D000104000828FBF00180E000D840000000007 -:1042E0008F860020ACD100009202000892030009E2 -:1042F000304200FF00021200306300FF004310252F -:10430000ACC200049202004D000216000002160327 -:1043100004410005000000003C0308008C630048D5 -:104320000A00109F3C1080089202000830420040B2 -:10433000144000030000182192020027304300FFC0 -:104340003C108008361100809222004D00031E00B0 -:10435000304200FF0002140000621825ACC30008C0 -:104360008E2400308F820024ACC4000C8E250034D3 -:104370009443001E3C02C00BACC50010006218251F -:104380008E22003800002021ACC200148E22003C96 -:10439000ACC200180E000DB8ACC3001C8E020004A5 -:1043A0008F8400203C058000AC8200008E2200201B -:1043B000AC8200048E22001CAC8200088E220058C1 -:1043C0008CA3007400431021AC82000C8E22002CC0 -:1043D000AC8200108E2200408E23004400021400A4 -:1043E00000431025AC8200149222004D240300806B -:1043F000304200FF1443000400000000AC800018AD -:104400000A0010E38F8200248E23000C2402000196 -:104410001062000E2402FFFF92220008304200408A -:104420001440000A2402FFFF8E23000C8CA20074AB -:10443000006218233C0208000062102414400002AD -:10444000000028210060282100051043AC820018DC -:104450008F820024000020219443001E3C02C00CE7 -:10446000006218258F8200200E000DB8AC43001C9E -:104470003C038008346201008C4200008F850020DC -:10448000346300808FBF0018ACA20000ACA0000411 -:104490008C6400488F8200248FB10014ACA4000803 -:1044A000ACA0000CACA00010906300059446001E68 -:1044B0003C02400D00031E0000C23025ACA30014D6 -:1044C0008FB00010ACA0001824040001ACA6001CA2 -:1044D0000A000DB827BD00208FBF00188FB100144F -:1044E0008FB0001003E0000827BD00203C028000D0 -:1044F0009443007C3C02800834460100308400FF75 -:104500003065FFFF2402000524A34650A0C4000C20 -:104510005482000C3065FFFF90C2000D2C42000752 -:104520001040000724A30A0090C3000D24020014C9 -:104530000062100400A210210A00111F3045FFFF85 -:104540003065FFFF3C0280083442008003E0000831 -:10455000A44500143C03800834680080AD05003891 -:10456000346701008CE2001C308400FF00A210239D -:104570001840000330C600FF24A2FFFCACE2001C80 -:1045800030820001504000083C0380088D02003C4E -:1045900000A2102304410012240400058C620004D0 -:1045A00010A2000F3C0380088C62000414A2001EBD -:1045B000000000003C0208008C4200D8304200207D -:1045C000104000093C0280083462008090630008BB -:1045D0009042004C144300043C0280082404000470 -:1045E0000A00110900000000344300803442010039 -:1045F000A040000C24020001A462001410C0000AB4 -:104600003C0280008C4401003C0380008C6201F875 -:104610000440FFFE24020002AC6401C0A06201C499 -:104620003C021000AC6201F803E00008000000004A -:1046300027BDFFE800A61823AFBF00101860008058 -:10464000308800FF3C02800834470080A0E000244E -:1046500034440100A0E000278C82001C00A210233B -:1046600004400056000000008CE2003C94E3005C33 -:104670008CE4002C004530233063FFFF00C3182179 -:104680000083202B1080000400E018218CE2002C15 -:104690000A00117800A2102194E2005C3042FFFF72 -:1046A00000C2102100A21021AC62001C3C02800854 -:1046B000344400809482005C8C83001C3042FFFFF5 -:1046C0000002104000A210210043102B10400004F3 -:1046D000000000008C82001C0A00118B3C06800840 -:1046E0009482005C3042FFFF0002104000A21021C3 -:1046F0003C06800834C3010034C70080AC82001C33 -:10470000A060000CACE500388C62001C00A21023F5 -:104710001840000224A2FFFCAC62001C3102000120 -:10472000104000083C0380088CE2003C00A21023EB -:1047300004410012240400058CC2000410A20010E1 -:104740008FBF00108C62000414A2004F8FBF0010B6 -:104750003C0208008C4200D8304200201040000A81 -:104760003C02800834620080906300089042004C54 -:10477000144300053C028008240400048FBF00108D -:104780000A00110927BD001834430080344201009B -:10479000A040000C24020001A46200143C0280002E -:1047A0008C4401003C0380008C6201F80440FFFE51 -:1047B000240200020A0011D8000000008CE2001C54 -:1047C000004610230043102B54400001ACE5001CB0 -:1047D00094E2005C3042FFFF0062102B144000079F -:1047E0002402000294E2005C8CE3001C3042FFFFD4 -:1047F00000621821ACE3001C24020002ACE5003882 -:104800000E000F5EA082000C1040001F8FBF001032 -:104810003C0280008C4401003C0380008C6201F863 -:104820000440FFFE24020002AC6401C0A06201C487 -:104830003C021000AC6201F80A0011F08FBF0010BA -:1048400031020010104000108FBF00103C028008A1 -:10485000344500808CA3001C94A2005C00661823E1 -:104860003042FFFF006218213C023FFF3444FFFF4B -:104870000083102B544000010080182100C3102138 -:10488000ACA2001C8FBF001003E0000827BD001879 -:1048900027BDFFE800C0402100A63023AFBF0010B5 -:1048A00018C00026308A00FF3C028008344900808E -:1048B0008D24001C8D23002C008820230064182BDD -:1048C0001060000F344701008CE2002000461021E8 -:1048D000ACE200208CE200200044102B1440000BBE -:1048E0003C023FFF8CE2002000441023ACE2002099 -:1048F0009522005C3042FFFF0A0012100082202146 -:10490000ACE00020008620213C023FFF3443FFFF43 -:104910000064102B54400001006020213C028008FC -:104920003442008000851821AC43001CA0400024C4 -:10493000A04000270A0012623C03800831420010A8 -:10494000104000433C0380083C06800834C40080CB -:104950008C82003C004810235840003E34660080A2 -:104960009082002424420001A0820024908200242E -:104970003C0308008C630024304200FF0043102BEE -:10498000144000688FBF001034C201008C42001C2C -:1049900000A2102318400063000000008CC3000434 -:1049A0009482005C006818233042FFFF0003184324 -:1049B000000210400043102A1040000500000000D3 -:1049C0008CC20004004810230A0012450002104364 -:1049D0009482005C3042FFFF000210403C068008D9 -:1049E000AC82002C34C5008094A2005C8CA4002C06 -:1049F00094A3005C3042FFFF00021040008220219F -:104A00003063FFFF0083202101041021ACA2001CB1 -:104A10008CC2000434C60100ACC2001C2402000297 -:104A20000E000F5EA0C2000C1040003E8FBF0010B1 -:104A30003C0280008C4401003C0380008C6201F841 -:104A40000440FFFE240200020A001292000000004F -:104A500034660080ACC50038346401008C82001CD0 -:104A600000A210231840000224A2FFFCAC82001C0C -:104A7000314200015040000A3C0380088CC2003CD7 -:104A800000A2102304430014240400058C620004D7 -:104A900014A200033C0380080A00128424040005C9 -:104AA0008C62000414A2001F8FBF00103C0208009B -:104AB0008C4200D8304200201040000A3C0280089E -:104AC00034620080906300089042004C144300055B -:104AD0003C028008240400048FBF00100A00110962 -:104AE00027BD00183443008034420100A040000C70 -:104AF00024020001A46200143C0280008C440100E6 -:104B00003C0380008C6201F80440FFFE2402000296 -:104B1000AC6401C0A06201C43C021000AC6201F8A8 -:104B20008FBF001003E0000827BD001827BDFFE875 -:104B30003C0A8008AFBF0010354900808D22003C40 -:104B400000C04021308400FF004610231840009D23 -:104B500030E700FF354701002402000100A63023A2 -:104B6000A0E0000CA0E0000DA522001418C0002455 -:104B7000308200108D23001C8D22002C0068182329 -:104B80000043102B1040000F000000008CE20020BA -:104B900000461021ACE200208CE200200043102BE4 -:104BA0001440000B3C023FFF8CE200200043102326 -:104BB000ACE200209522005C3042FFFF0A0012C1E7 -:104BC00000621821ACE00020006618213C023FFF83 -:104BD0003446FFFF00C3102B5440000100C01821D1 -:104BE0003C0280083442008000651821AC43001C60 -:104BF000A0400024A04000270A00130F3C038008B7 -:104C0000104000403C0380088D22003C00481023E7 -:104C10005840003D34670080912200242442000166 -:104C2000A1220024912200243C0308008C6300246C -:104C3000304200FF0043102B1440009A8FBF001039 -:104C40008CE2001C00A21023184000960000000017 -:104C50008D4300049522005C006818233042FFFF5A -:104C600000031843000210400043102A10400005C2 -:104C7000012020218D420004004810230A0012F276 -:104C8000000210439522005C3042FFFF00021040FA -:104C90003C068008AC82002C34C5008094A2005CE5 -:104CA0008CA4002C94A3005C3042FFFF0002104053 -:104CB000008220213063FFFF0083182101031021AF -:104CC000ACA2001C8CC2000434C60100ACC2001CA3 -:104CD000240200020E000F5EA0C2000C1040007102 -:104CE0008FBF00103C0280008C4401003C03800018 -:104CF0008C6201F80440FFFE240200020A0013390E -:104D00000000000034670080ACE500383466010024 -:104D10008CC2001C00A210231840000224A2FFFC39 -:104D2000ACC2001C30820001504000083C038008E7 -:104D30008CE2003C00A2102304430051240400052F -:104D40008C62000410A2003E3C0380088C620004C8 -:104D500054A200548FBF00103C0208008C4200D8BF -:104D600030420020104000063C028008346200807F -:104D7000906300089042004C104300403C028008C1 -:104D80003443008034420100A040000C24020001A2 -:104D9000A46200143C0280008C4401003C038000AB -:104DA0008C6201F80440FFFE24020002AC6401C0E2 -:104DB000A06201C43C021000AC6201F80A00137743 -:104DC0008FBF001024020005A120002714E2000A72 -:104DD0003C038008354301009062000D2C42000620 -:104DE000504000053C0380089062000D2442000101 -:104DF000A062000D3C03800834670080ACE50038F9 -:104E0000346601008CC2001C00A21023184000026E -:104E100024A2FFFCACC2001C308200015040000AFA -:104E20003C0380088CE2003C00A2102304410014E3 -:104E3000240400058C62000414A200033C038008D3 -:104E40000A00136E240400058C62000414A20015ED -:104E50008FBF00103C0208008C4200D83042002076 -:104E60001040000A3C028008346200809063000811 -:104E70009042004C144300053C02800824040004C6 -:104E80008FBF00100A00110927BD001834430080AD -:104E900034420100A040000C24020001A46200146E -:104EA0008FBF001003E0000827BD00183C0B8008EE -:104EB00027BDFFE83C028000AFBF00103442010074 -:104EC000356A00809044000A356901008C45001461 -:104ED0008D4800389123000C308400FF0105102319 -:104EE0001C4000B3306700FF2CE20006504000B1C8 -:104EF0008FBF00102402000100E2300430C2000322 -:104F00005440000800A8302330C2000C144000A117 -:104F100030C20030144000A38FBF00100A00143BC1 -:104F20000000000018C00024308200108D43001CD7 -:104F30008D42002C006818230043102B1040000FF6 -:104F4000000000008D22002000461021AD2200202C -:104F50008D2200200043102B1440000B3C023FFF29 -:104F60008D22002000431023AD2200209542005CDA -:104F70003042FFFF0A0013AF00621821AD2000206D -:104F8000006618213C023FFF3446FFFF00C3102B90 -:104F90005440000100C018213C02800834420080C7 -:104FA00000651821AC43001CA0400024A04000274D -:104FB0000A0013FD3C038008104000403C038008B9 -:104FC0008D42003C004810231840003D34670080AB -:104FD0009142002424420001A14200249142002475 -:104FE0003C0308008C630024304200FF0043102B78 -:104FF000144000708FBF00108D22001C00A21023EF -:105000001840006C000000008D6300049542005CB5 -:10501000006818233042FFFF0003184300021040CD -:105020000043102A10400005014020218D62000439 -:10503000004810230A0013E0000210439542005C70 -:105040003042FFFF000210403C068008AC82002C7A -:1050500034C5008094A2005C8CA4002C94A3005C56 -:105060003042FFFF00021040008220213063FFFF2A -:105070000083182101031021ACA2001C8CC2000483 -:1050800034C60100ACC2001C240200020E000F5EF8 -:10509000A0C2000C104000478FBF00103C028000EF -:1050A0008C4401003C0380008C6201F80440FFFE48 -:1050B000240200020A00142D000000003467008062 -:1050C000ACE50038346601008CC2001C00A210233D -:1050D0001840000224A2FFFCACC2001C3082000178 -:1050E0005040000A3C0380088CE2003C00A21023E0 -:1050F00004430014240400058C62000414A200037D -:105100003C0380080A00141F240400058C6200047C -:1051100014A200288FBF00103C0208008C4200D867 -:10512000304200201040000A3C02800834620080B7 -:10513000906300089042004C144300053C02800834 -:10514000240400048FBF00100A00110927BD0018B5 -:105150003443008034420100A040000C24020001CE -:10516000A46200143C0280008C4401003C038000D7 -:105170008C6201F80440FFFE24020002AC6401C00E -:10518000A06201C43C021000AC6201F80A00143BAA -:105190008FBF00108FBF0010010030210A00115A8C -:1051A00027BD0018010030210A00129927BD001800 -:1051B0008FBF001003E0000827BD00183C038008E3 -:1051C0003464010024020003A082000C8C620004FD -:1051D00003E00008AC82001C3C05800834A300807A -:1051E0009062002734A501002406004324420001F8 -:1051F000A0620027906300273C0208008C42004810 -:10520000306300FF146200043C07602194A500EAAB -:105210000A00090130A5FFFF03E0000800000000BC -:1052200027BDFFE8AFBF00103C0280000E00144411 -:105230008C4401803C02800834430100A060000CD3 -:105240008C4200048FBF001027BD001803E0000847 -:10525000AC62001C27BDFFE03C028008AFBF001815 -:10526000AFB10014AFB000103445008034460100E7 -:105270003C0880008D09014090C3000C8CA4003CC8 -:105280008CA200381482003B306700FF9502007C3E -:1052900090A30027146000093045FFFF2402000599 -:1052A00054E200083C04800890C2000D2442000132 -:1052B000A0C2000D0A00147F3C048008A0C0000DAD -:1052C0003C048008348201009042000C2403000555 -:1052D000304200FF1443000A24A205DC348300801E -:1052E000906200272C4200075040000524A20A00CB -:1052F00090630027240200140062100400A2102111 -:105300003C108008361000803045FFFF012020212E -:105310000E001444A60500149602005C8E030038AB -:105320003C1180003042FFFF000210400062182153 -:10533000AE03001C0E0003328E24014092020025B1 -:1053400034420040A20200250E00033D8E2401409D -:105350008E2401403C0380008C6201F80440FFFE73 -:1053600024020002AC6401C0A06201C43C0210002F -:10537000AC6201F88FBF00188FB100148FB000101D -:1053800003E0000827BD00203C0360103C02080039 -:1053900024420174AC62502C8C6250003C048000AA -:1053A00034420080AC6250003C0208002442547C2D -:1053B0003C010800AC2256003C020800244254384C -:1053C0003C010800AC2256043C020002AC840008F8 -:1053D000AC82000C03E000082402000100A0302190 -:1053E0003C1C0800279C56083C0200023C050400B7 -:1053F00000852826008220260004102B2CA5000101 -:105400002C840001000210803C0308002463560035 -:105410000085202500431821108000030000102182 -:10542000AC6600002402000103E000080000000058 -:105430003C1C0800279C56083C0200023C05040066 -:1054400000852826008220260004102B2CA50001B0 -:105450002C840001000210803C03080024635600E5 -:105460000085202500431821108000050000102130 -:105470003C02080024425438AC62000024020001BF -:1054800003E00008000000003C0200023C030400AE -:1054900000821026008318262C4200012C63000194 -:1054A000004310251040000B000028213C1C080080 -:1054B000279C56083C0380008C62000824050001EC -:1054C00000431025AC6200088C62000C00441025DB -:1054D000AC62000C03E0000800A010213C1C080096 -:1054E000279C56083C0580008CA3000C0004202754 -:1054F000240200010064182403E00008ACA3000C9F -:105500003C020002148200063C0560008CA208D018 -:105510002403FFFE0043102403E00008ACA208D0DF -:105520003C02040014820005000000008CA208D098 -:105530002403FFFD00431024ACA208D003E00008C0 -:10554000000000003C02601A344200108C430080CE -:1055500027BDFFF88C440084AFA3000093A3000094 -:10556000240200041462001AAFA4000493A20001F4 -:105570001040000797A300023062FFFC3C0380004C -:10558000004310218C4200000A001536AFA200042F -:105590003062FFFC3C03800000431021AC4400005B -:1055A000A3A000003C0560008CA208D02403FFFEED -:1055B0003C04601A00431024ACA208D08FA300045E -:1055C0008FA2000034840010AC830084AC82008081 -:1055D00003E0000827BD000827BDFFE8AFBF0010AB -:1055E0003C1C0800279C56083C0280008C43000CA1 -:1055F0008C420004004318243C0200021060001496 -:10560000006228243C0204003C04000210A00005B3 -:10561000006210243C0208008C4256000A00155B10 -:1056200000000000104000073C0404003C02080099 -:105630008C4256040040F809000000000A00156082 -:10564000000000000000000D3C1C0800279C5608CC -:0C5650008FBF001003E0000827BD001809 -:04565C008008024080 -:1056600080080100800800808008000000000C8095 -:105670000000320008000E9808000EF408000F88A1 -:1056800008001028080010748008010080080080BD -:04569000800800008E -:0C5694000A0000280000000000000000D8 -:1056A0000000000D6370362E322E316100000000C4 -:1056B00006020104000000000000000000000000DD -:1056C000000000000000000038003C000000000066 -:1056D00000000000000000000000000000000020AA -:1056E00000000000000000000000000000000000BA -:1056F00000000000000000000000000000000000AA -:10570000000000000000000021003800000000013F -:105710000000002B000000000000000400030D400A -:105720000000000000000000000000000000000079 -:105730000000000000000000100000030000000056 -:105740000000000D0000000D3C020800244259AC8E -:105750003C03080024635BF4AC4000000043202BB2 -:105760001480FFFD244200043C1D080037BD9FFC4F -:1057700003A0F0213C100800261000A03C1C0800EB -:10578000279C59AC0E0002F6000000000000000D3E -:1057900027BDFFB4AFA10000AFA20004AFA3000873 -:1057A000AFA4000CAFA50010AFA60014AFA700185F -:1057B000AFA8001CAFA90020AFAA0024AFAB0028FF -:1057C000AFAC002CAFAD0030AFAE0034AFAF00389F -:1057D000AFB8003CAFB90040AFBC0044AFBF004819 -:1057E0000E000820000000008FBF00488FBC00445E -:1057F0008FB900408FB8003C8FAF00388FAE0034B7 -:105800008FAD00308FAC002C8FAB00288FAA002406 -:105810008FA900208FA8001C8FA700188FA6001446 -:105820008FA500108FA4000C8FA300088FA2000486 -:105830008FA1000027BD004C3C1B60188F7A5030B0 -:10584000377B502803400008AF7A000000A01821E1 -:1058500000801021008028213C0460003C0760008B -:105860002406000810600006348420788C42000072 -:10587000ACE220088C63000003E00008ACE3200CDD -:105880000A000F8100000000240300403C02600079 -:1058900003E00008AC4320003C0760008F86000452 -:1058A0008CE520740086102100A2182B14600007DC -:1058B000000028218F8AFDA024050001A1440013C7 -:1058C0008F89000401244021AF88000403E0000810 -:1058D00000A010218F84FDA08F8500049086001306 -:1058E00030C300FF00A31023AF82000403E00008D0 -:1058F000A08000138F84FDA027BDFFE8AFB000108B -:10590000AFBF001490890011908700112402002875 -:10591000312800FF3906002830E300FF2485002CE1 -:105920002CD00001106200162484001C0E00006EB2 -:10593000000000008F8FFDA03C05600024020204DF -:1059400095EE003E95ED003C000E5C0031ACFFFF93 -:10595000016C5025ACAA2010520000012402000462 -:10596000ACA22000000000000000000000000000C9 -:105970008FBF00148FB0001003E0000827BD00188F -:105980000A0000A6000028218F85FDA027BDFFD8B2 -:10599000AFBF0020AFB3001CAFB20018AFB100140E -:1059A000AFB000100080982190A4001124B0001C1A -:1059B00024B1002C308300FF386200280E000090D4 -:1059C0002C5200010E00009800000000020020216F -:1059D0001240000202202821000028210E00006E43 -:1059E000000000008F8DFDA03C0880003C05600099 -:1059F00095AC003E95AB003C02683025000C4C0095 -:105A0000316AFFFF012A3825ACA7201024020202C8 -:105A1000ACA6201452400001240200028FBF0020D7 -:105A20008FB3001C8FB200188FB100148FB000101C -:105A300027BD002803E00008ACA2200027BDFFE03E -:105A4000AFB20018AFB10014AFB00010AFBF001C70 -:105A50003C1160008E2320748F82000430D0FFFF41 -:105A600030F2FFFF1062000C2406008F0E00006E63 -:105A7000000000003C06801F0010440034C5FF00F9 -:105A80000112382524040002AE2720100000302126 -:105A9000AE252014AE2420008FBF001C8FB200184A -:105AA0008FB100148FB0001000C0102103E0000877 -:105AB00027BD002027BDFFE0AFB0001030D0FFFFB2 -:105AC000AFBF0018AFB100140E00006E30F1FFFF41 -:105AD00000102400009180253C036000AC70201071 -:105AE0008FBF00188FB100148FB000102402000483 -:105AF000AC62200027BD002003E000080000102158 -:105B000027BDFFE03C046018AFBF0018AFB1001420 -:105B1000AFB000108C8850002403FF7F34028071E6 -:105B20000103382434E5380C241F00313C1980006F -:105B3000AC8550003C11800AAC8253BCAF3F0008DA -:105B40000E00054CAF9100400E00050A3C116000AC -:105B50000E00007D000000008E3008083C0F570941 -:105B60002418FFF00218602435EEE00035EDF00057 -:105B7000018E5026018D58262D4600012D69000109 -:105B8000AF86004C0E000D09AF8900503C06601630 -:105B90008CC700003C0860148D0500A03C03FFFF8B -:105BA00000E320243C02535300052FC2108200550D -:105BB00034D07C00960201F2A780006C10400003F4 -:105BC000A780007C384B1E1EA78B006C960201F844 -:105BD000104000048F8D0050384C1E1EA78C007C96 -:105BE0008F8D005011A000058F83004C240E0020E3 -:105BF000A78E007CA78E006C8F83004C1060000580 -:105C00009785007C240F0020A78F007CA78F006C55 -:105C10009785007C2CB8008153000001240500808A -:105C20009784006C2C91040152200001240404008C -:105C30001060000B3C0260008FBF00188FB1001491 -:105C40008FB0001027BD0020A784006CA785007CC2 -:105C5000A380007EA780007403E00008A780009264 -:105C60008C4704382419103C30FFFFFF13F9000360 -:105C700030A8FFFF1100004624030050A380007EDF -:105C80009386007E50C00024A785007CA780007CFE -:105C90009798007CA780006CA7800074A780009272 -:105CA0003C010800AC3800800E00078700000000AF -:105CB0003C0F60008DED0808240EFFF03C0B600ED9 -:105CC000260C0388356A00100000482100002821B6 -:105CD00001AE20243C105709AF8C0010AF8A004859 -:105CE000AF89001810900023AF8500148FBF0018F3 -:105CF0008FB100148FB0001027BD002003E0000812 -:105D0000AF80005400055080014648218D260004D4 -:105D10000A00014800D180219798007CA784006C7C -:105D2000A7800074A78000923C010800AC38008076 -:105D30000E000787000000003C0F60008DED080892 -:105D4000240EFFF03C0B600E260C0388356A001011 -:105D5000000048210000282101AE20243C105709F2 -:105D6000AF8C0010AF8A0048AF8900181490FFDF95 -:105D7000AF85001424110001AF9100548FBF0018AB -:105D80008FB100148FB0001003E0000827BD002081 -:105D90000A00017BA383007E3083FFFF8F880040D1 -:105DA0008F87003C000321403C0580003C020050EE -:105DB000008248253C0660003C0A010034AC040027 -:105DC0008CCD08E001AA58241160000500000000F5 -:105DD0008CCF08E024E7000101EA7025ACCE08E092 -:105DE0008D19001001805821ACB900388D180014AD -:105DF000ACB8003CACA9003000000000000000007E -:105E00000000000000000000000000000000000092 -:105E100000000000000000003C0380008C640000D3 -:105E2000308200201040FFFD3C0F60008DED08E047 -:105E30003C0E010001AE18241460FFE100000000D8 -:105E4000AF87003C03E00008AF8B00588F8500400F -:105E5000240BFFF03C06800094A7001A8CA90024B4 -:105E600030ECFFFF000C38C000EB5024012A402129 -:105E7000ACC8003C8CA400248CC3003C00831023DD -:105E800018400033000000008CAD002025A2000166 -:105E90003C0F0050ACC2003835EE00103C068000CC -:105EA000ACCE003000000000000000000000000048 -:105EB00000000000000000000000000000000000E2 -:105EC000000000003C0480008C9900003338002062 -:105ED0001300FFFD30E20008104000173C0980006D -:105EE0008C880408ACA800108C83040CACA30014AC -:105EF0003C1900203C188000AF19003094AE001807 -:105F000094AF001C01CF3021A4A6001894AD001A54 -:105F100025A70001A4A7001A94AB001A94AC001E98 -:105F2000118B00030000000003E0000800000000E7 -:105F300003E00008A4A0001A8D2A0400ACAA0010F7 -:105F40008D240404ACA400140A0002183C1900209B -:105F50008CA200200A0002003C0F00500A0001EE53 -:105F60000000000027BDFFE8AFBF00100E000232A6 -:105F7000000000008F8900408FBF00103C038000AC -:105F8000A520000A9528000A9527000427BD0018BF -:105F90003105FFFF30E6000F0006150000A22025A6 -:105FA00003E00008AC6400803C0508008CA50020DC -:105FB0008F83000C27BDFFE8AFB00010AFBF001407 -:105FC00010A300100000802124040001020430040A -:105FD00000A6202400C3102450440006261000010F -:105FE000001018802787FDA41480000A006718217C -:105FF000261000012E0900025520FFF38F83000CAC -:10600000AF85000C8FBF00148FB0001003E00008B4 -:1060100027BD00188C6800003C058000ACA8002457 -:106020000E000234261000013C0508008CA500205B -:106030000A0002592E0900022405000100851804F7 -:106040003C0408008C84002027BDFFC8AFBF00348B -:1060500000831024AFBE0030AFB7002CAFB60028CD -:10606000AFB50024AFB40020AFB3001CAFB200182E -:10607000AFB1001410400051AFB000108F84004049 -:10608000948700069488000A00E8302330D5FFFF8B -:1060900012A0004B8FBF0034948B0018948C000A20 -:1060A000016C50233142FFFF02A2482B1520000251 -:1060B00002A02021004020212C8F000515E00002C5 -:1060C00000809821241300040E0001C102602021E9 -:1060D0008F87004002609021AF80004494F4000A52 -:1060E000026080211260004E3291FFFF3C1670006A -:1060F0003C1440003C1E20003C1760008F99005863 -:106100008F380000031618241074004F0283F82BF8 -:1061100017E0003600000000107E00478F86004424 -:1061200014C0003A2403000102031023022320219B -:106130003050FFFF1600FFF13091FFFF8F870040C6 -:106140003C1100203C108000AE11003094EB000A9E -:106150003C178000024B5021A4EA000A94E9000A8F -:1061600094E800043123FFFF3106000F00062D00E4 -:106170000065F025AEFE008094F3000A94F6001846 -:1061800012D30036001221408CFF00148CF4001052 -:1061900003E468210000C02101A4782B029870213B -:1061A00001CF6021ACED0014ACEC001002B238233A -:1061B00030F5FFFF16A0FFB88F8400408FBF00347A -:1061C0008FBE00308FB7002C8FB600288FB500240B -:1061D0008FB400208FB3001C8FB200188FB1001451 -:1061E0008FB0001003E0000827BD00381477FFCC03 -:1061F0008F8600440E000EE202002021004018218C -:106200008F86004410C0FFC9020310230270702360 -:106210008F87004001C368210A0002E431B2FFFF0A -:106220008F86004414C0FFC93C1100203C10800040 -:106230000A0002AEAE1100300E00046602002021FA -:106240000A0002DB00401821020020210E0009395B -:10625000022028210A0002DB004018210E0001EE76 -:10626000000000000A0002C702B2382327BDFFC8A1 -:10627000AFB7002CAFB60028AFB50024AFB40020F4 -:10628000AFB3001CAFB20018AFB10014AFB0001034 -:10629000AFBF00300E00011B241300013C047FFF40 -:1062A0003C0380083C0220003C010800AC20007048 -:1062B0003496FFFF34770080345200033C1512C03F -:1062C000241400013C1080002411FF800E000245C0 -:1062D000000000008F8700488F8B00188F89001402 -:1062E0008CEA00EC8CE800E8014B302B01092823F4 -:1062F00000A6102314400006014B18231440000E82 -:106300003C05800002A3602B1180000B0000000000 -:106310003C0560008CEE00EC8CED00E88CA4180CC1 -:10632000AF8E001804800053AF8D00148F8F0010C3 -:10633000ADF400003C0580008CBF00003BF900017B -:10634000333800011700FFE13C0380008C6201003C -:1063500024060C0010460009000000008C680100B3 -:106360002D043080548000103C0480008C690100B2 -:106370002D2331811060000C3C0480008CAA0100A8 -:1063800011460004000020218CA6010024C5FF81D5 -:1063900030A400FF8E0B01000E000269AE0B00243A -:1063A0000A00034F3C0480008C8D01002DAC3300AB -:1063B00011800022000000003C0708008CE70098D4 -:1063C00024EE00013C010800AC2E00983C04800043 -:1063D0008C8201001440000300000000566000148D -:1063E0003C0440008C9F01008C9801000000982123 -:1063F00003F1C82400193940330F007F00EF7025E6 -:1064000001D26825AC8D08308C8C01008C85010090 -:10641000258B0100017130240006514030A3007F1C -:106420000143482501324025AC8808303C04400037 -:10643000AE0401380A00030E000000008C99010030 -:10644000240F0020AC99002092F80000330300FFD5 -:10645000106F000C241F0050547FFFDD3C048000AF -:106460008C8401000E00154E000000000A00034F4E -:106470003C04800000963824ACA7180C0A000327BF -:106480008F8F00108C8501000E0008F72404008017 -:106490000A00034F3C04800000A4102B24030001D9 -:1064A00010400009000030210005284000A4102BF6 -:1064B00004A00003000318405440FFFC00052840DE -:1064C0005060000A0004182B0085382B54E00004AB -:1064D0000003184200C33025008520230003184222 -:1064E0001460FFF9000528420004182B03E000089F -:1064F00000C310213084FFFF30C600FF3C0780003E -:106500008CE201B80440FFFE00064C000124302557 -:106510003C08200000C820253C031000ACE00180AE -:10652000ACE50184ACE4018803E00008ACE301B809 -:106530003C0660008CC5201C2402FFF03083020062 -:10654000308601001060000E00A2282434A500014E -:106550003087300010E0000530830C0034A50004C3 -:106560003C04600003E00008AC85201C1060FFFDC7 -:106570003C04600034A5000803E00008AC85201C42 -:1065800054C0FFF334A500020A0003B03087300086 -:1065900027BDFFE8AFB00010AFBF00143C0760009C -:1065A000240600021080001100A080218F83005873 -:1065B0000E0003A78C6400188F8200580000202171 -:1065C000240600018C45000C0E000398000000001A -:1065D0001600000224020003000010218FBF0014E7 -:1065E0008FB0001003E0000827BD00188CE8201CC5 -:1065F0002409FFF001092824ACE5201C8F870058EE -:106600000A0003CD8CE5000C3C02600E00804021A6 -:1066100034460100240900180000000000000000BA -:10662000000000003C0A00503C0380003547020097 -:10663000AC68003834640400AC65003CAC670030E2 -:106640008C6C0000318B00201160FFFD2407FFFFE0 -:106650002403007F8C8D00002463FFFF248400044A -:10666000ACCD00001467FFFB24C60004000000004E -:10667000000000000000000024A402000085282B78 -:106680003C0300203C0E80002529FFFF010540212E -:10669000ADC300301520FFE00080282103E0000892 -:1066A000000000008F82005827BDFFD8AFB3001C48 -:1066B000AFBF0020AFB20018AFB10014AFB00010F0 -:1066C00094460002008098218C5200182CC300814F -:1066D0008C4800048C4700088C51000C8C49001039 -:1066E000106000078C4A00142CC4000414800013AE -:1066F00030EB000730C5000310A0001000000000C0 -:106700002410008B02002021022028210E00039873 -:10671000240600031660000224020003000010217A -:106720008FBF00208FB3001C8FB200188FB10014F0 -:106730008FB0001003E0000827BD00281560FFF1AE -:106740002410008B3C0C80003C030020241F00011F -:10675000AD830030AF9F0044000000000000000047 -:10676000000000002419FFF024D8000F031978243A -:106770003C1000D0AD88003801F0702524CD000316 -:106780003C08600EAD87003C35850400AD8E0030BE -:10679000000D38823504003C3C0380008C6B000007 -:1067A000316200201040FFFD0000000010E00008F2 -:1067B00024E3FFFF2407FFFF8CA800002463FFFFF2 -:1067C00024A50004AC8800001467FFFB24840004A7 -:1067D0003C05600EACA60038000000000000000080 -:1067E000000000008F8600543C0400203C0780001D -:1067F000ACE4003054C000060120202102402021DA -:106800000E0003A7000080210A00041D02002021C1 -:106810000E0003DD01402821024020210E0003A7C5 -:10682000000080210A00041D0200202127BDFFE096 -:10683000AFB200183092FFFFAFB10014AFBF001C21 -:10684000AFB000101640000D000088210A0004932C -:106850000220102124050003508500278CE5000C40 -:106860000000000D262800013111FFFF24E2002066 -:106870000232802B12000019AF8200588F82004430 -:10688000144000168F8700583C0670003C0320001F -:106890008CE5000000A62024148300108F84006083 -:1068A000000544023C09800000A980241480FFE90F -:1068B000310600FF2CCA000B5140FFEB26280001D7 -:1068C000000668803C0E080025CE575801AE6021B6 -:1068D0008D8B0000016000080000000002201021E4 -:1068E0008FBF001C8FB200188FB100148FB0001042 -:1068F00003E0000827BD00200E0003982404008454 -:106900001600FFD88F8700580A000474AF8000601B -:10691000020028210E0003BF240400018F870058C5 -:106920000A000474AF820060020028210E0003BF39 -:10693000000020210A0004A38F8700580E000404E1 -:10694000020020218F8700580A000474AF82006083 -:1069500030AFFFFF000F19C03C0480008C9001B8DD -:106960000600FFFE3C1920043C181000AC83018097 -:10697000AC800184AC990188AC9801B80A00047518 -:106980002628000190E2000390E30002000020218D -:106990000002FE0000033A0000FF2825240600083C -:1069A0000E000398000000001600FFDC2402000324 -:1069B0008F870058000010210A000474AF82006025 -:1069C00090E8000200002021240600090A0004C308 -:1069D00000082E0090E4000C240900FF308500FF21 -:1069E00010A900150000302190F9000290F8000372 -:1069F000308F00FF94EB000400196E000018740043 -:106A0000000F62000186202501AE5025014B28258C -:106A10003084FF8B0A0004C32406000A90E30002BE -:106A200090FF0004000020210003360000DF28252D -:106A30000A0004C32406000B0A0004D52406008BB8 -:106A4000000449C23127003F000443423C02800059 -:106A500000082040240316802CE60020AC43002CC4 -:106A600024EAFFE02482000114C0000330A900FFE3 -:106A700000801021314700FF000260803C0D800043 -:106A8000240A0001018D20213C0B000E00EA28049D -:106A9000008B302111200005000538278CCE000026 -:106AA00001C5382503E00008ACC700008CD8000001 -:106AB0000307782403E00008ACCF000027BDFFE007 -:106AC000AFB10014AFB00010AFBF00183C076000BA -:106AD0008CE408083402F0003C1160003083F000C0 -:106AE000240501C03C04800E000030211062000625 -:106AF000241000018CEA08083149F0003928E00030 -:106B00000008382B000780403C0D0200AE2D081411 -:106B1000240C16803C0B80008E2744000E000F8B47 -:106B2000AD6C002C120000043C02169124050001FB -:106B3000120500103C023D2C345800E0AE384408E9 -:106B40003C1108008E31007C8FBF00183C066000AD -:106B500000118540360F16808FB100148FB00010E1 -:106B60003C0E020027BD0020ACCF442003E000080B -:106B7000ACCE08103C0218DA345800E0AE384408B5 -:106B80003C1108008E31007C8FBF00183C0660006D -:106B900000118540360F16808FB100148FB00010A1 -:106BA0003C0E020027BD0020ACCF442003E00008CB -:106BB000ACCE08100A0004EB240500010A0004EB27 -:106BC0000000282124020400A7820024A780001CC2 -:106BD000000020213C06080024C65A582405FFFF67 -:106BE00024890001000440803124FFFF01061821A0 -:106BF0002C87002014E0FFFAAC6500002404040098 -:106C0000A7840026A780001E000020213C06080063 -:106C100024C65AD82405FFFF248D0001000460809B -:106C200031A4FFFF018658212C8A00201540FFFA6D -:106C3000AD650000A7800028A7800020A780002263 -:106C4000000020213C06080024C65B582405FFFFF5 -:106C5000249900010004C0803324FFFF030678213B -:106C60002C8E000415C0FFFAADE500003C05600065 -:106C70008CA73D002403E08F00E31024344601403C -:106C800003E00008ACA63D002487007F000731C266 -:106C900024C5FFFF000518C2246400013082FFFFF5 -:106CA000000238C0A78400303C010800AC27003047 -:106CB000AF80002C0000282100002021000030219E -:106CC0002489000100A728213124FFFF2CA81701E7 -:106CD000110000032C8300801460FFF924C600011A -:106CE00000C02821AF86002C10C0001DA786002AF6 -:106CF00024CAFFFF000A11423C08080025085B581F -:106D00001040000A00002021004030212407FFFF2E -:106D1000248E00010004688031C4FFFF01A86021B7 -:106D20000086582B1560FFFAAD87000030A2001FC7 -:106D30005040000800043080240300010043C804D0 -:106D400000041080004878212738FFFF03E0000886 -:106D5000ADF8000000C820212405FFFFAC8500002D -:106D600003E000080000000030A5FFFF30C6FFFF71 -:106D700030A8001F0080602130E700FF0005294295 -:106D80000000502110C0001D24090001240B000147 -:106D900025180001010B2004330800FF0126782686 -:106DA000390E00202DED00012DC2000101A2182591 -:106DB0001060000D014450250005C880032C4021BF -:106DC0000100182110E0000F000A20278D040000A8 -:106DD000008A1825AD03000024AD00010000402109 -:106DE0000000502131A5FFFF252E000131C9FFFF12 -:106DF00000C9102B1040FFE72518000103E0000830 -:106E0000000000008D0A0000014440240A0005D162 -:106E1000AC68000027BDFFE830A5FFFF30C6FFFFCC -:106E2000AFB00010AFBF001430E7FFFF00005021EB -:106E30003410FFFF0000602124AF001F00C0482174 -:106E4000241800012419002005E0001601E010219B -:106E50000002F943019F682A0009702B01AE40240B -:106E600011000017000C18800064102110E00005CC -:106E70008C4B000000F840040008382301675824B8 -:106E800000003821154000410000402155600016E7 -:106E90003169FFFF258B0001316CFFFF05E1FFEC3D -:106EA00001E0102124A2003E0002F943019F682A5C -:106EB0000009702B01AE40241500FFEB000C188078 -:106EC000154600053402FFFF020028210E0005B51B -:106ED00000003821020010218FBF00148FB0001075 -:106EE00003E0000827BD00181520000301601821E9 -:106EF000000B1C0224080010306A00FF154000053A -:106F0000306E000F250D000800031A0231A800FFA3 -:106F1000306E000F15C00005307F000325100004FF -:106F200000031902320800FF307F000317E000055C -:106F3000386900012502000200031882304800FF72 -:106F4000386900013123000110600004310300FFA3 -:106F5000250A0001314800FF310300FF000C6940A1 -:106F600001A34021240A000110CAFFD53110FFFF00 -:106F7000246E000131C800FF1119FFC638C9000195 -:106F80002D1F002053E0001C258B0001240D000163 -:106F90000A000648240E002051460017258B0001E8 -:106FA00025090001312800FF2D0900205120001281 -:106FB000258B000125430001010D5004014B1024D5 -:106FC000250900011440FFF4306AFFFF3127FFFF5D -:106FD00010EE000C2582FFFF304CFFFF0000502117 -:106FE0003410FFFF312800FF2D0900205520FFF24B -:106FF00025430001258B0001014648260A000602B0 -:10700000316CFFFF00003821000050210A000654B7 -:107010003410FFFF27BDFFD8AFB0001030F0FFFFE6 -:10702000AFB10014001039423211FFE000071080A8 -:10703000AFB3001C00B1282330D3FFFFAFB200185C -:1070400030A5FFFF00809021026030210044202104 -:10705000AFBF00200E0005E03207001F022288218A -:107060003403FFFF0240202102002821026030216A -:1070700000003821104300093231FFFF02201021A7 -:107080008FBF00208FB3001C8FB200188FB1001487 -:107090008FB0001003E0000827BD00280E0005E0B7 -:1070A0000000000000408821022010218FBF002036 -:1070B0008FB3001C8FB200188FB100148FB0001076 -:1070C00003E0000827BD0028000424003C03600002 -:1070D000AC603D0810A00002348210063482101605 -:1070E00003E00008AC623D0427BDFFE0AFB0001034 -:1070F000309000FF2E020006AFBF001810400008BD -:10710000AFB10014001030803C03080024635784A2 -:1071100000C328218CA400000080000800000000AB -:10712000000020218FBF00188FB100148FB0001015 -:107130000080102103E0000827BD00209791002A5D -:1071400016200051000020213C020800904200332C -:107150000A0006BB00000000978D002615A0003134 -:10716000000020210A0006BB2402000897870024A3 -:1071700014E0001A00001821006020212402000100 -:107180001080FFE98FBF0018000429C2004530219C -:1071900000A6582B1160FFE43C0880003C0720004B -:1071A000000569C001A76025AD0C00203C038008E4 -:1071B0002402001F2442FFFFAC6000000441FFFDD9 -:1071C0002463000424A5000100A6702B15C0FFF560 -:1071D000000569C00A0006A58FBF00189787001C2C -:1071E0003C04080024845A58240504000E0006605C -:1071F00024060001978B002424440001308AFFFFFD -:107200002569FFFF2D48040000402821150000409B -:10721000A789002424AC3800000C19C00A0006B964 -:10722000A780001C9787001E3C04080024845AD8BD -:10723000240504000E00066024060001979900262C -:10724000244400013098FFFF272FFFFF2F0E04007A -:107250000040882115C0002CA78F0026A780001EA3 -:107260003A020003262401003084FFFF0E00068D41 -:107270002C4500010011F8C027F00100001021C0CA -:107280000A0006BB240200089785002E978700227B -:107290003C04080024845B580E00066024060001AC -:1072A0009787002A8F89002C2445000130A8FFFF12 -:1072B00024E3FFFF0109302B0040802114C0001897 -:1072C000A783002AA7800022978500300E000F7543 -:1072D00002002021244A05003144FFFF0E00068DE4 -:1072E000240500013C05080094A500320E000F752E -:1072F00002002021244521003C0208009042003376 -:107300000A0006BB000521C00A0006F3A784001E80 -:1073100024AC3800000C19C00A0006B9A784001C70 -:107320000A00070DA7850022308400FF27BDFFE873 -:107330002C820006AFBF0014AFB000101040001543 -:1073400000A03821000440803C0308002463579CBF -:10735000010328218CA40000008000080000000028 -:1073600024CC007F000751C2000C59C23170FFFFCE -:107370002547C40030E5FFFF2784001C02003021B0 -:107380000E0005B52407000197860028020620217B -:10739000A78400288FBF00148FB0001003E00008FE -:1073A00027BD00183C0508008CA50030000779C2F5 -:1073B0000E00038125E4DF003045FFFF3C04080098 -:1073C00024845B58240600010E0005B52407000143 -:1073D000978E002A8FBF00148FB0001025CD0001BA -:1073E00027BD001803E00008A78D002A0007C9C2C6 -:1073F0002738FF00001878C231F0FFFF3C04080076 -:1074000024845AD802002821240600010E0005B564 -:1074100024070001978D0026260E0100000E84002F -:1074200025AC00013C0B6000A78C0026AD603D0838 -:1074300036040006000030213C0760008CE23D0469 -:10744000305F000617E0FFFD24C9000100061B00A5 -:10745000312600FF006440252CC50004ACE83D0443 -:1074600014A0FFF68FBF00148FB0001003E00008D7 -:1074700027BD0018000751C22549C8002406000195 -:10748000240700013C04080024845A580E0005B566 -:107490003125FFFF978700248FBF00148FB00010A5 -:1074A00024E6000127BD001803E00008A786002499 -:1074B0003C0660183C090800252900FCACC9502C8A -:1074C0008CC850003C0580003C020002350700805B -:1074D000ACC750003C04080024841FE03C030800B3 -:1074E00024631F98ACA50008ACA2000C3C01080066 -:1074F000AC2459A43C010800AC2359A803E00008BF -:107500002402000100A030213C1C0800279C59AC3B -:107510003C0C04003C0B0002008B3826008C4026FB -:107520002CE200010007502B2D050001000A4880C5 -:107530003C030800246359A4004520250123182199 -:107540001080000300001021AC660000240200013E -:1075500003E00008000000003C1C0800279C59AC18 -:107560003C0B04003C0A0002008A3026008B3826BF -:107570002CC200010006482B2CE5000100094080C8 -:107580003C030800246359A4004520250103182169 -:1075900010800005000010213C0C0800258C1F986D -:1075A000AC6C00002402000103E0000800000000B1 -:1075B0003C0900023C080400008830260089382677 -:1075C0002CC30001008028212CE400010083102539 -:1075D0001040000B000030213C1C0800279C59ACD7 -:1075E0003C0A80008D4E00082406000101CA68256F -:1075F000AD4D00088D4C000C01855825AD4B000C9D -:1076000003E0000800C010213C1C0800279C59AC76 -:107610003C0580008CA6000C0004202724020001F9 -:1076200000C4182403E00008ACA3000C3C020002D4 -:107630001082000B3C0560003C070400108700032B -:107640000000000003E00008000000008CA908D042 -:10765000240AFFFD012A402403E00008ACA808D05A -:107660008CA408D02406FFFE0086182403E000083E -:10767000ACA308D03C05601A34A600108CC300806F -:1076800027BDFFF88CC50084AFA3000093A40000C1 -:107690002402001010820003AFA5000403E00008DC -:1076A00027BD000893A7000114E0001497AC000266 -:1076B00097B800023C0F8000330EFFFC01CF682119 -:1076C000ADA50000A3A000003C0660008CC708D058 -:1076D0002408FFFE3C04601A00E82824ACC508D04A -:1076E0008FA300048FA200003499001027BD00086A -:1076F000AF22008003E00008AF2300843C0B800031 -:10770000318AFFFC014B48218D2800000A00080C3B -:10771000AFA8000427BDFFE8AFBF00103C1C080065 -:10772000279C59AC3C0580008CA4000C8CA2000462 -:107730003C0300020044282410A0000A00A31824DF -:107740003C0604003C0400021460000900A610245A -:107750001440000F3C0404000000000D3C1C080015 -:10776000279C59AC8FBF001003E0000827BD00180C -:107770003C0208008C4259A40040F80900000000B7 -:107780003C1C0800279C59AC0A0008358FBF00102C -:107790003C0208008C4259A80040F8090000000093 -:1077A0000A00083B000000003C0880008D0201B880 -:1077B0000440FFFE35090180AD2400003C031000A9 -:1077C00024040040AD250004A1240008A1260009DE -:1077D000A527000A03E00008AD0301B83084FFFFCD -:1077E0000080382130A5FFFF000020210A00084555 -:1077F000240600803087FFFF8CA400002406003898 -:107800000A000845000028218F8300788F860070C9 -:107810001066000B008040213C07080024E75B68ED -:10782000000328C000A710218C440000246300013D -:10783000108800053063000F5466FFFA000328C06B -:1078400003E00008000010213C07080024E75B6CFF -:1078500000A7302103E000088CC200003C03900028 -:1078600034620001008220253C038000AC640020CB -:107870008C65002004A0FFFE0000000003E000086B -:10788000000000003C0280003443000100832025FA -:1078900003E00008AC44002027BDFFE0AFB10014B6 -:1078A0003091FFFFAFB00010AFBF001812200013DF -:1078B00000A080218CA20000240400022406020003 -:1078C0001040000F004028210E0007250000000096 -:1078D00000001021AE000000022038218FBF0018E8 -:1078E0008FB100148FB0001000402021000028212B -:1078F000000030210A00084527BD00208CA20000AE -:10790000022038218FBF00188FB100148FB00010F3 -:107910000040202100002821000030210A000845F5 -:1079200027BD002000A010213087FFFF8CA5000498 -:107930008C4400000A000845240600068F83FD9C45 -:1079400027BDFFE8AFBF0014AFB00010906700087C -:10795000008010210080282130E600400000202116 -:1079600010C000088C5000000E0000BD0200202155 -:10797000020020218FBF00148FB000100A000548BC -:1079800027BD00180E0008A4000000000E0000BD76 -:1079900002002021020020218FBF00148FB00010B0 -:1079A0000A00054827BD001827BDFFE0AFB0001052 -:1079B0008F90FD9CAFBF001CAFB20018AFB1001498 -:1079C00092060001008088210E00087230D2000467 -:1079D00092040005001129C2A6050000348300406E -:1079E000A20300050E00087C022020210E00054A9B -:1079F0000220202124020001AE02000C02202821D6 -:107A0000A602001024040002A602001224060200AE -:107A1000A60200140E000725A60200161640000F4D -:107A20008FBF001C978C00743C0B08008D6B007896 -:107A30002588FFFF3109FFFF256A0001012A382B45 -:107A400010E00006A78800743C0F6006240E0016A4 -:107A500035ED0010ADAE00508FBF001C8FB2001886 -:107A60008FB100148FB0001003E0000827BD002084 -:107A700027BDFFE0AFB10014AFBF0018AFB00010DA -:107A80001080000400A088212402008010820007DA -:107A9000000000000000000D8FBF00188FB100141F -:107AA0008FB0001003E0000827BD00200E00087210 -:107AB00000A020218F86FD9C0220202190C500057A -:107AC0000E00087C30B000FF2403003E1603FFF1D7 -:107AD0003C0680008CC401780480FFFE34C801405D -:107AE000240900073C071000AD11000002202021EE -:107AF000A10900048FBF00188FB100148FB00010CF -:107B0000ACC701780A0008C527BD002027BDFFE0EB -:107B1000AFB00010AFBF0018AFB100143C10800030 -:107B20008E110020000000000E00054AAE04002067 -:107B3000AE1100208FBF00188FB100148FB000105D -:107B400003E0000827BD00203084FFFF00803821BB -:107B50002406003500A020210A0008450000282145 -:107B60003084FFFF008038212406003600A0202149 -:107B70000A0008450000282127BDFFD0AFB500242A -:107B80003095FFFFAFB60028AFB40020AFBF002C88 -:107B9000AFB3001CAFB20018AFB10014AFB000100B -:107BA00030B6FFFF12A000270000A0218F920058DE -:107BB0008E4300003C0680002402004000033E0289 -:107BC00000032C0230E4007F006698241482001D1C -:107BD00030A500FF8F8300682C68000A1100001098 -:107BE0008F8D0044000358803C0C0800258C57B84A -:107BF000016C50218D4900000120000800000000A8 -:107C000002D4302130C5FFFF0E0008522404008446 -:107C1000166000028F920058AF8000688F8D00447C -:107C20002659002026980001032090213314FFFFDD -:107C300015A00004AF9900580295202B1480FFDC9A -:107C400000000000028010218FBF002C8FB600289A -:107C50008FB500248FB400208FB3001C8FB20018A2 -:107C60008FB100148FB0001003E0000827BD003072 -:107C70002407003414A70149000000009247000EB9 -:107C80008F9FFDA08F90FD9C24181600A3E700197C -:107C90009242000D3C0880003C07800CA3E20018D3 -:107CA000964A00123C0D60003C117FFFA60A005C62 -:107CB000964400103623FFFF240200053099FFFF91 -:107CC000AE1900548E46001CAD1800288CEF000041 -:107CD0008DAE444801E6482601C93021AE06003881 -:107CE0008E05003824CB00013C0E7F00AE05003C21 -:107CF0008E0C003CAFEC0004AE0B00208E13002075 -:107D0000AE13001CA3E0001BAE03002CA3E2001284 -:107D10008E4A001424130050AE0A00348E0400343E -:107D2000AFE400148E590018AE1900489258000CA8 -:107D3000A218004E920D000835AF0020A20F0008D7 -:107D40008E090018012E282434AC4000AE0C001817 -:107D5000920B0000317200FF1253027F2403FF8058 -:107D60003C04080024845BE80E0008AA0000000020 -:107D70003C1108008E315BE80E00087202202021C1 -:107D80002405000424080001A2050025022020216A -:107D90000E00087CA20800053C0580008CB001782C -:107DA0000600FFFE8F92005834AE0140240F0002FF -:107DB0003C091000ADD10000A1CF0004ACA90178AE -:107DC0000A000962AF8000682CAD003751A0FF9413 -:107DD0008F8D0044000580803C110800263157E05B -:107DE000021178218DEE000001C0000800000000A3 -:107DF0002411000414B1008C3C0780003C080800EA -:107E00008D085BE88F86FD9CACE800208E4500085D -:107E10008F99FDA0240D0050ACC500308E4C000899 -:107E2000ACCC00508E4B000CACCB00348E43001019 -:107E3000ACC300388E4A0010ACCA00548E42001405 -:107E4000ACC2003C8E5F0018AF3F00048E50001C97 -:107E5000ACD0002090C40000309800FF130D024AFF -:107E6000000000008CC400348CD00030009030231F -:107E700004C000F12404008C126000EE2402000310 -:107E80000A000962AF8200682419000514B900666F -:107E90003C0580003C0808008D085BE88F86FD9C4F -:107EA000ACA800208E4C00048F8AFDA0240720007F -:107EB000ACCC001C924B000824120008A14B001906 -:107EC0008F82005890430009A14300188F85005805 -:107ED00090BF000A33E400FF1092001028890009C7 -:107EE000152000BA240E0002240D0020108D000B76 -:107EF000340780002898002117000008240740005C -:107F000024100040109000053C0700012419008057 -:107F1000109900023C070002240740008CC20018A0 -:107F20003C03FF00004350240147F825ACDF001854 -:107F300090B2000BA0D200278F8300589464000CED -:107F4000108001FE000000009467000C3C1F8000C0 -:107F50002405FFBFA4C7005C9063000E2407000443 -:107F6000A0C300088F820058904A000FA0CA0009E1 -:107F70008F8900588D3200108FE400740244C823AA -:107F8000ACD900588D300014ACD0002C95380018B6 -:107F9000330DFFFFACCD00409531001A322FFFFFAB -:107FA000ACCF00448D2E001CACCE00489128000EB2 -:107FB000A0C8000890CC000801855824126001B6C2 -:107FC000A0CB00088F9200580A000962AF870068B2 -:107FD0002406000614A600143C0E80003C0F080086 -:107FE0008DEF5BE88F85FD98ADCF00208E4900189E -:107FF0008F86FD9C8F8BFDA0ACA900008CC800383B -:1080000024040005ACA800048CCC003C1260008164 -:10801000AD6C00000A000962AF84006824110007FB -:1080200010B1004B240400063C05080024A55BE8C1 -:108030000E000881240400818F9200580013102B39 -:108040000A000962AF820068241F002314BFFFF6F4 -:108050003C0C80003C0508008CA55BE88F8BFDA0E4 -:10806000AD8500208F91FD9C8E4600042564002084 -:1080700026450014AE260028240600030E000F81BA -:10808000257000308F87005802002021240600034D -:108090000E000F8124E500083C04080024845BE8FE -:1080A0000E0008AA0000000092230000240A0050DD -:1080B000306200FF544AFFE18F9200580E000F6CAF -:1080C000000000000A000A6A8F920058240800335A -:1080D00014A800323C0380003C1108008E315BE89C -:1080E0008F8FFDA0AC7100208E420008240D002867 -:1080F0008F89FD9CADE200308E4A000C24060009F9 -:10810000ADEA00348E5F0010ADFF00388E440014DD -:10811000ADE400208E590018ADF900248E58001CE3 -:10812000ADF80028A1ED00118E4E00041260003160 -:10813000AD2E00288F9200580A000962AF860068B1 -:10814000240D002214ADFFB8000000002404000735 -:108150003C1008008E105BE83C188000AF10002037 -:108160005660FEAEAF8400683C04080024845BE8DF -:108170000E0008AA241300508F84FD9C90920000EA -:10818000325900FF1333014B000000008F9200585A -:10819000000020210A000962AF8400683C05080045 -:1081A00024A55BE80E000858240400810A000A6A2E -:1081B0008F92005802D498213265FFFF0E000852BA -:1081C000240400840A0009628F920058108EFF5325 -:1081D000240704002887000310E00179241100041B -:1081E000240F0001548FFF4D240740000A000A228B -:1081F000240701003C05080024A55BE80E0008A444 -:10820000240400828F920058000030210A00096285 -:10821000AF8600683C04080024845BE88CC2003808 -:108220000E0008AA8CC3003C8F9200580A000AC0B6 -:1082300000002021240400823C05080024A55BE8FE -:108240000E0008A4000000008F92005800001021CA -:108250000A000962AF8200688E5000048F91FD9C75 -:108260003C078000ACF00020922C00050200282181 -:10827000318B0002156001562404008A8F92FDA004 -:108280002404008D9245001B30A6002014C001502C -:1082900002002821922E00092408001231C900FF93 -:1082A0001128014B240400810E00087202002021D5 -:1082B0009258001B240F000402002021370D0042B9 -:1082C000A24D001B0E00087CA22F00253C0580005B -:1082D0008CA401780480FFFE34B90140241F000201 -:1082E000AF300000A33F00048F9200583C101000F4 -:1082F000ACB001780A000A6B0013102B8E500004FA -:108300008F91FD9C3C038000AC700020922A0005F8 -:108310000200282131420002144000172404008A80 -:10832000922C00092412000402002821318B00FF46 -:1083300011720011240400810E0008720200202135 -:108340008F89FDA0240800122405FFFE912F001B39 -:108350000200202135EE0020A12E001BA2280009DA -:108360009226000500C538240E00087CA2270005CF -:1083700002002821000020210E0009330000000027 -:108380000A000A6A8F9200588E4C00043C07800055 -:108390003C10080026105BE8ACEC00203C01080013 -:1083A000AC2C5BE8924B0003317100041220013BBE -:1083B0008F84FD9C24020006A0820009924F001BBE -:1083C000240EFFC031E9003F012E4025A08800089F -:1083D0009245000330A6000114C0013200000000E5 -:1083E0008E420008AE0200083C0208008C425BF09E -:1083F000104001318F90FDA0000219C28F8DFD9CAD -:10840000A603000C8E4A000C24180001240400145A -:10841000AE0A002C8E420010AE02001C965F0016C1 -:10842000A61F003C96590014A619003EADB8000CDA -:10843000A5B80010A5B80012A5B80014A5B800167C -:1084400012600144A2040011925100033232000272 -:108450002E5300018F920058266200080A0009621C -:10846000AF8200688E4400043C1980003C068008FE -:10847000AF2400208E45000890D80000240D005045 -:10848000331100FF122D009C2407008824060009E8 -:108490000E000845000000000A000A6A8F9200588A -:1084A0008E5000043C0980003C118008AD30002053 -:1084B0009228000024050050310400FF10850110AF -:1084C0002407008802002021000028210E00084512 -:1084D0002406000E922D00002418FF80020028219F -:1084E00001B8802524040004240600300E0007256E -:1084F000A23000000A000A6A8F9200588E500004D1 -:108500008F91FDA03C028000AC500020923F001BE8 -:1085100033F900101320006C240700810200202191 -:10852000000028212406001F0E000845000000005E -:108530000A000A6A8F9200588E44001C0E00085DE3 -:1085400000000000104000E3004048218F880058E0 -:1085500024070089012020218D05001C240600012C -:108560000E000845000000000A000A6A8F920058B9 -:10857000964900023C10080026105BE831280004F0 -:10858000110000973C0460008E4E001C3C0F8000E0 -:10859000ADEE00203C010800AC2E5BE896470002DF -:1085A00030E40001148000E6000000008E42000468 -:1085B000AE0200083C1008008E105BF0120000ECC8 -:1085C0003C0F80008F92FD9C241000018E4E0018FD -:1085D0008F8DFDA08F9FFD9801CF4825AE490018D3 -:1085E000A2400005AE50000C3C0808008D085BF06E -:1085F0008F840058A6500010000839C2A6500012FF -:10860000A6500014A6500016A5A7000C8C8C0008DC -:108610008F8B00588F8A0058ADAC002C8D63000CF6 -:1086200024070002ADA3001C91460010A1A6001172 -:108630008F82005890450011A3E500088F990058DB -:1086400093380012A258004E8F910058922F0013B9 -:10865000A1AF00128F920058964E0014A5AE003CB8 -:1086600096490016A5A9003E8E480018ADA8001432 -:108670005660FD6AAF8700683C05080024A55BE8EA -:108680000E000881000020218F9200580000382140 -:108690000A000962AF8700683C05080024A55BE872 -:1086A0000E0008A4240400828F9200580A000A4D8C -:1086B000000038210E000F6C000000008F9200585F -:1086C0000A000AC0000020210E00087202002021CA -:1086D0009223001B02002021346A00100E00087C47 -:1086E000A22A001B000038210200202100002821BE -:1086F0000A000BA52406001F9242000C305F000107 -:1087000013E0000300000000964A000EA4CA002CEB -:10871000924B000C316300025060000600003821CB -:108720008E470014964C0012ACC7001CA4CC001A53 -:10873000000038210A000B7F240600093C050800D0 -:1087400024A55BE80E0008A42404008B8F92005837 -:108750000A000A4D0013382B3C0C08008D8C5BE896 -:1087600024DFFFFE25930100326B007F016790211B -:1087700002638824AD110028AE4600E0AE4000E45C -:108780000A0009B3AE5F001CACC000543C0D0800E9 -:108790008DAD5BE83C18800C37090100ACED00287A -:1087A0008E510014AD3100E08E4F0014AD2F00E467 -:1087B0008E4E001025C7FFFE0A0009F4AD27001CED -:1087C0005491FDD6240740000A000A222407100015 -:1087D0000E00092D000000000A000A6A8F9200585E -:1087E0008C83442C3C12DEAD3651BEEF3C010800B8 -:1087F000AC205BE810710062000000003C196C6264 -:1088000037387970147800082404000297850074C2 -:108810009782006C2404009200A2F82B13E0001948 -:1088200002002821240400020E00069524050200FF -:108830003C068000ACC200203C010800AC225BE892 -:108840001040000D8F8C0058240A002824040003D7 -:10885000918B0010316300FF546A00012404000171 -:108860000E0000810000000010400004240400837A -:108870000A000BC28F920058240400833C050800B4 -:1088800024A55BE80E000881000000008F920058CC -:108890000013382B0A000962AF8700680A000B49F1 -:1088A000240200128E4400080E00085D0000000043 -:1088B0000A000B55AE0200083C05080024A55BE841 -:1088C0000E000858240400878F9200580A000B728B -:1088D0000013102B240400040E000695240500301C -:1088E0001440002A004048218F8800582407008344 -:1088F000012020218D05001C0A000BB32406000175 -:108900008F8300788F8600701066FEEE000038219D -:108910003C07080024E75B6C000320C00087282187 -:108920008CAE000011D0005D246F000131E3000F18 -:108930005466FFFA000320C00A000B8C00003821A7 -:108940008E4400040E00085D000000000A000BC801 -:10895000AE0200083C05080024A55BE80E0008A450 -:10896000240400828F9200580A000B72000010212C -:108970003C05080024A55BE80A000C7C2404008761 -:108980008C83442C0A000C5B3C196C628F88005865 -:108990003C0780083C0C8000240B0050240A000196 -:1089A000AD820020A0EB0000A0EA000191030004CA -:1089B000A0E3001891040005A0E400199106000648 -:1089C0003C04080024845B6CA0E6001A91020007B6 -:1089D0003C06080024C65B68A0E2001B9105000865 -:1089E000A0E5001C911F0009A0FF001D9119000ABD -:1089F000A0F9001E9118000BA0F8001F9112000CA6 -:108A0000A0F200209111000DA0F100219110000EA4 -:108A1000A0F00022910F000FA0EF0023910E001094 -:108A2000A0EE0024910D0011A0ED0025950C00147E -:108A3000A4EC0028950B00168F8A00708F920078A6 -:108A4000A4EB002A95030018000A10C02545000178 -:108A5000A4E3002C8D1F001C0044C0210046C82147 -:108A600030A5000FAF3F0000AF09000010B20006B4 -:108A7000AF850070000038218D05001C01202021E9 -:108A80000A000BB32406000124AD000131A7000F3A -:108A9000AF8700780A000CF9000038213C06080076 -:108AA00024C65B680086902100003821ACA000003D -:108AB0000A000B8CAE4000003C0482013C036000C5 -:108AC00034820E02AC603D68AF80009803E000087D -:108AD000AC623D6C27BDFFE8AFB000103090FFFFE7 -:108AE000001018422C620041AFBF00141440000275 -:108AF00024040080240300403C010800AC300060E6 -:108B00003C010800AC2300640E000F7500602821B2 -:108B1000244802BF2409FF8001092824001039805D -:108B2000001030408FBF00148FB0001000A720212C -:108B300000861821AF8300803C010800AC25005856 -:108B40003C010800AC24005C03E0000827BD0018CD -:108B5000308300FF30C6FFFF30E400FF3C08800098 -:108B60008D0201B80440FFFE000354000144382583 -:108B70003C09600000E920253C031000AD050180A0 -:108B8000AD060184AD04018803E00008AD0301B81F -:108B90008F8500583C0A6012354800108CAC0004E8 -:108BA0003C0D600E35A60010318B00062D690001CA -:108BB000AD0900C48CA70004ACC731808CA20008AA -:108BC00094A40002ACC231848CA3001C0460000396 -:108BD000A784009003E00008000000008CAF00189C -:108BE000ACCF31D08CAE001C03E00008ACCE31D449 -:108BF0008F8500588F87FF288F86FF308CAE00044A -:108C00003C0F601235E80010ACEE00788CAD000827 -:108C1000ACED007C8CAC0010ACCC004C8CAB000CF0 -:108C2000ACCB004894CA00543C0208008C4200447B -:108C300025490001A4C9005494C400543083FFFFA7 -:108C400010620017000000003C0208008C42004047 -:108C5000A4C200528CA30018ACE300308CA2001414 -:108C6000ACE2002C8CB90018ACF900388CB80014B8 -:108C700024050001ACF800348D0600BC50C5001975 -:108C80008D0200B48D0200B8A4E2004894E40048CC -:108C9000A4E4004A94E800EA03E000083102FFFF80 -:108CA0003C0208008C420024A4C00054A4C200521C -:108CB0008CA30018ACE300308CA20014ACE2002CB2 -:108CC0008CB90018ACF900388CB8001424050001E8 -:108CD000ACF800348D0600BC54C5FFEB8D0200B823 -:108CE0008D0200B4A4E2004894E40048A4E4004AE1 -:108CF00094E800EA03E000083102FFFF8F86005885 -:108D00003C0480008CC900088CC80008000929C0F8 -:108D1000000839C0AC87002090C30007306200040F -:108D20001040003EAF85009490CB0007316A0008E8 -:108D30001140003D8F87FF2C8CCD000C8CCE001491 -:108D400001AE602B11800036000000008CC2000CC8 -:108D5000ACE200708CCB00188F85FF288F88FF3025 -:108D6000ACEB00748CCA00102402FFF8ACAA00D847 -:108D70008CC9000CAD0900608CC4001CACA400D0F0 -:108D800090E3007C0062C824A0F9007C90D8000722 -:108D9000330F000811E000040000000090ED007C9B -:108DA00035AC0001A0EC007C90CF000731EE000153 -:108DB00011C000060000000090E3007C241800347D -:108DC00034790002A0F9007CACB800DC90C2000746 -:108DD0003046000210C000040000000090E8007C53 -:108DE00035040004A0E4007C90ED007D3C0B600E97 -:108DF000356A001031AC003FA0EC007D8D4931D4C4 -:108E00003127000110E00002240E0001A0AE00098D -:108E100094AF00EA03E0000831E2FFFF8F87FF2CE8 -:108E20000A000DAF8CC200140A000DB0ACE0007057 -:108E30008F8C005827BDFFD8AFB3001CAFB200180D -:108E4000AFB00010AFBF0020AFB10014918F00157C -:108E50003C13600E3673001031EB000FA38B009CA7 -:108E60008D8F00048D8B0008959F0012959900103E -:108E70009584001A9598001E958E001C33EDFFFF17 -:108E8000332AFFFF3089FFFF3308FFFF31C7FFFFA1 -:108E90003C010800AC2D00243C010800AC29004432 -:108EA0003C010800AC2A0040AE683178AE67317CE6 -:108EB00091850015959100163C12601236520010F3 -:108EC00030A200FF3230FFFFAE623188AE5000B4F6 -:108ED00091830014959F0018240600010066C804C1 -:108EE00033F8FFFFAE5900B8AE5800BC918E0014A5 -:108EF000AF8F00843C08600631CD00FFAE4D00C04E -:108F0000918A00159584000E3C07600A314900FFE4 -:108F1000AF8B00883084FFFFAE4900C835110010C8 -:108F20000E000D1034F004103C0208008C4200606A -:108F30003C0308008C6300643C0608008CC60058A3 -:108F40003C0508008CA5005C8F8400808FBF00204A -:108F5000AE23004CAE65319CAE030054AE4500DC40 -:108F6000AE6231A0AE6331A4AE663198AE22004845 -:108F70008FB3001CAE0200508FB10014AE4200E06F -:108F8000AE4300E4AE4600D88FB000108FB2001898 -:108F90000A00057D27BD0028978500929783007CF5 -:108FA00027BDFFE8AFB0001000A3102BAFBF001427 -:108FB000240400058F900058104000552409000239 -:108FC0000E0006958F850080AF8200942404000374 -:108FD0001040004F240900023C0680000E00008172 -:108FE000ACC2002024070001240820001040004DDE -:108FF00024040005978E00928F8AFF2C24090050CC -:1090000025C50001A7850092A14900003C0D08007C -:109010008DAD0064240380008F84FF28000D66005E -:10902000AD4C0018A5400006954B000A8F85FF3017 -:109030002402FF8001633024A546000A915F000AE4 -:109040000000482103E2C825A159000AA0A0000899 -:10905000A140004CA08000D5961800029783009094 -:109060003C020004A49800EA960F00022418FFBFF7 -:1090700025EE2401A48E00BE8E0D0004ACAD00448C -:109080008E0C0008ACAC0040A4A00050A4A000547A -:109090008E0B000C240C0030AC8B00288E060010C8 -:1090A000AC860024A480003EA487004EA487005014 -:1090B000A483003CAD420074AC8800D8ACA800602A -:1090C000A08700FC909F00D433F9007FA09900D4C2 -:1090D000909000D402187824A08F00D4914E007C88 -:1090E00035CD0001A14D007C938B009CAD480070F4 -:1090F000AC8C00DCA08B00D68F8800888F87008422 -:10910000AC8800C4AC8700C8A5400078A540007AB0 -:109110008FBF00148FB000100120102103E0000861 -:1091200027BD00188F8500940E0007258F860080CC -:109130000A000E9F2409000227BDFFE0AFB0001017 -:109140008F900058AFB10014AFBF00188E09000413 -:109150000E00054A000921C08E0800048F84FF28F4 -:109160008F82FF30000839C03C068000ACC7002069 -:10917000948500EA904300131460001C30B1FFFF97 -:109180008F8CFF2C918B0008316A00401540000B3A -:10919000000000008E0D0004022030218FBF001857 -:1091A0008FB100148FB00010240400220000382179 -:1091B000000D29C00A000D2F27BD00200E000098C9 -:1091C000000000008E0D0004022030218FBF001827 -:1091D0008FB100148FB00010240400220000382149 -:1091E000000D29C00A000D2F27BD00200E000090A1 -:1091F000000000008E0D0004022030218FBF0018F7 -:109200008FB100148FB00010240400220000382118 -:10921000000D29C00A000D2F27BD002027BDFFE04B -:10922000AFB200183092FFFFAFB00010AFBF001C0C -:10923000AFB100141240001E000080218F8600583C -:109240008CC500002403000600053F02000514023F -:1092500030E4000714830016304500FF2CA80006F8 -:1092600011000040000558803C0C0800258C58BCBB -:10927000016C50218D490000012000080000000011 -:109280008F8E0098240D000111CD005024020002A1 -:10929000AF820098260900013130FFFF24C800206A -:1092A0000212202B010030211480FFE5AF88005806 -:1092B000020010218FBF001C8FB200188FB1001464 -:1092C0008FB0001003E0000827BD00209387007EC8 -:1092D00054E00034000030210E000DE700000000D3 -:1092E0008F8600580A000EFF240200018F87009825 -:1092F0002405000210E50031240400130000282199 -:1093000000003021240700010E000D2F0000000096 -:109310000A000F008F8600588F83009824020002F5 -:109320001462FFF6240400120E000D9A00000000E3 -:109330008F85009400403021240400120E000D2F70 -:10934000000038210A000F008F8600588F83009894 -:109350002411000310710029241F0002107FFFCE8A -:1093600026090001240400100000282100003021FB -:109370000A000F1D240700018F91009824060002A7 -:109380001626FFF9240400100E000E410000000014 -:10939000144000238F9800588F8600580A000EFF53 -:1093A00024020003240400140E000D2F00002821C5 -:1093B0008F8600580A000EFF240200020E000EA93C -:1093C000000000000A000F008F8600580E000D3FBD -:1093D00000000000241900022404001400002821C9 -:1093E0000000302100003821AF9900980E000D2FA9 -:1093F000000000000A000F008F8600580E000D5775 -:10940000000000008F8500942419000200403021E4 -:1094100024040010000038210A000F56AF9900986C -:109420000040382124040010970F0002000028217A -:109430000E000D2F31E6FFFF8F8600580A000F0047 -:10944000AF9100988F84FF2C3C077FFF34E6FFFF2D -:109450008C8500182402000100A61824AC83001893 -:1094600003E00008A08200053084FFFF30A5FFFF65 -:109470001080000700001821308200011040000217 -:1094800000042042006518211480FFFB00052840DD -:1094900003E000080060102110C000070000000079 -:1094A0008CA2000024C6FFFF24A50004AC820000AB -:1094B00014C0FFFB2484000403E000080000000047 -:1094C00010A0000824A3FFFFAC86000000000000ED -:1094D000000000002402FFFF2463FFFF1462FFFA74 -:1094E0002484000403E0000800000000000411C010 -:1094F00003E000082442024027BDFFE8AFB000109F -:1095000000808021AFBF00140E000F9600A0202124 -:1095100000504821240AFF808FBF00148FB0001034 -:10952000012A30243127007F3C08800A3C042100B6 -:1095300000E8102100C428253C03800027BD001846 -:10954000AC650024AF820038AC400000AC6500245C -:1095500003E00008AC4000403C0D08008DAD005811 -:1095600000056180240AFF8001A45821016C482174 -:10957000012A30243127007F3C08800C3C04210064 -:1095800000E8102100C428253C038000AC650028B9 -:10959000AF82003403E00008AC40002430A5FFFF98 -:1095A0003C0680008CC201B80440FFFE3C086015F8 -:1095B00000A838253C031000ACC40180ACC0018475 -:1095C000ACC7018803E00008ACC301B83C0D08003B -:1095D0008DAD005800056180240AFF8001A4582148 -:1095E000016C4021010A4824000931403107007F05 -:1095F00000C728253C04200000A418253C02800058 -:10960000AC43083003E00008AF80003427BDFFE81A -:10961000AFB0001000808021AFBF00140E000F9685 -:1096200000A0202100504821240BFF80012B502452 -:10963000000A39403128007F3C0620008FBF00140B -:109640008FB0001000E8282534C2000100A21825C0 -:109650003C04800027BD0018AC83083003E00008FC -:10966000AF8000383C0580088CA700603C0680086D -:109670000087102B144000112C8340008CA8006040 -:109680002D0340001060000F240340008CC90060CF -:109690000089282B14A00002008018218CC30060D0 -:1096A00000035A42000B30803C0A0800254A59202A -:1096B00000CA202103E000088C8200001460FFF340 -:1096C0002403400000035A42000B30803C0A08008B -:1096D000254A592000CA202103E000088C8200009E -:1096E0003C05800890A60008938400AB24C20001CA -:1096F000304200FF3043007F1064000C0002382726 -:10970000A0A200083C0480008C85017804A0FFFE24 -:109710008F8A00A0240900023C081000AC8A014096 -:10972000A089014403E00008AC8801780A00101BFE -:1097300030E2008027BDFFD8AFB200188F9200A49E -:10974000AFBF0020AFB3001CAFB00010AFB100142A -:109750008F9300348E5900283C1000803C0EFFEFA0 -:10976000AE7900008E580024A260000A35CDFFFFBC -:10977000AE7800049251002C3C0BFF9F356AFFFF2E -:10978000A271000C8E6F000C3C080040A271000B0F -:1097900001F06025018D4824012A382400E8302595 -:1097A000AE66000C8E450004AE6000183C0400FF5D -:1097B000AE6500148E43002C3482FFFFA6600008C3 -:1097C0000062F824AE7F00108E5900088F9000A030 -:1097D000964E0012AE7900208E51000C31D83FFF1A -:1097E00000187980AE7100248E4D001401F06021C4 -:1097F00031CB0001AE6D00288E4A0018000C41C22A -:10980000000B4B80AE6A002C8E46001C01093821EB -:10981000A667001CAE660030964500028E4400200C -:10982000A665001EAE64003492430033306200042B -:1098300054400006924700003C0280083443010077 -:109840008C7F00D0AE7F0030924700008F860038BA -:10985000A0C700309245003330A4000250800007BA -:10986000925100018F880038240BFF80910A00304C -:10987000014B4825A1090030925100018F9000381A -:10988000240CFFBF2404FFDFA21100318F8D0038AC -:109890003C1880083711008091AF003C31EE007F0A -:1098A000A1AE003C8F890038912B003C016C502404 -:1098B000A12A003C8F9F00388E68001493E6003C7C -:1098C0002D0700010007114000C4282400A218251C -:1098D000A3E3003C8F87003896590012A4F90032A8 -:1098E0008E450004922E007C30B0000300107823D7 -:1098F00031ED000300AD102131CC000215800002D3 -:1099000024460034244600303C0280083443008062 -:10991000907F007C00BFC824333800041700000289 -:1099200024C2000400C010218F98003824190002BE -:10993000ACE20034A3190000924F003F8F8E003834 -:109940003C0C8008358B0080A1CF00018F9100383E -:10995000924D003F8E440004A62D0002956A005CE3 -:109960000E000FF43150FFFF00024B800209382532 -:109970003C08420000E82825AE2500048E4400384B -:109980008F850038ACA400188E460034ACA6001CAD -:10999000ACA0000CACA00010A4A00014A4A0001661 -:1099A000A4A00020A4A00022ACA000248E62001479 -:1099B00050400001240200018FBF00208FB3001C23 -:1099C0008FB200188FB100148FB00010ACA2000845 -:1099D0000A00101327BD002827BDFFC83C058008DA -:1099E00034A40080AFBF0034AFBE0030AFB7002C4E -:1099F000AFB60028AFB50024AFB40020AFB3001C51 -:109A0000AFB20018AFB10014AFB00010948300786B -:109A10009482007A104300512405FFFF0080F0215A -:109A20000A0011230080B821108B004D8FBF003435 -:109A30008F8600A03C1808008F18005C2411FF805E -:109A40003C1680000306782101F18024AED0002C62 -:109A500096EE007A31EC007F3C0D800E31CB7FFF1B -:109A6000018D5021000B4840012AA82196A4000036 -:109A70003C0808008D0800582405FF8030953FFF02 -:109A800001061821001539800067C8210325F82434 -:109A90003C02010003E290253338007F3C11800C2A -:109AA000AED20028031190219250000D320F000415 -:109AB00011E0003702E0982196E3007A96E8007AF8 -:109AC00096E5007A2404800031077FFF24E300013B -:109AD00030627FFF00A4F82403E2C825A6F9007ACB -:109AE00096E6007A3C1408008E94006030D67FFF22 -:109AF00012D400C1000000008E5800188F8400A00E -:109B000002A028212713FFFF0E000FCEAE53002C1A -:109B100097D5007897D4007A12950010000028217C -:109B20003C098008352401003C0A8008914800085F -:109B3000908700D53114007F30E400FF0284302B81 -:109B400014C0FFB9268B0001938E00AB268C000158 -:109B5000008E682115ACFFB78F8600A08FBF003440 -:109B60008FBE00308FB7002C8FB600288FB5002431 -:109B70008FB400208FB3001C8FB200188FB1001477 -:109B80008FB0001000A0102103E0000827BD0038AE -:109B900000C020210E000F99028028218E4B00105A -:109BA0008E4C00308F84003824090002016C502351 -:109BB000AE4A0010A089000096E3005C8E4400309D -:109BC0008F9100380E000FF43070FFFF00024380C9 -:109BD000020838253C02420000E22825AE25000498 -:109BE0008E5F00048F8A00388E590000240B000815 -:109BF000AD5F001CAD590018AD40000CAD40001029 -:109C00009246000A240400052408C00030D000FF5A -:109C1000A550001496580008A55800169251000A45 -:109C20003C188008322F00FFA54F0020964E0008F8 -:109C300037110100A54E0022AD400024924D000BCB -:109C400031AC00FFA54C0002A14B00018E49003051 -:109C50008F830038240BFFBFAC690008A06400307C -:109C60008F9000382403FFDF9607003200E8282495 -:109C700000B51025A6020032921F003233F9003FD2 -:109C800037260040A20600328F8C0038AD800034A9 -:109C90008E2F00D0AD8F0038918E003C3C0F7FFF9F -:109CA00031CD007FA18D003C8F84003835EEFFFF61 -:109CB000908A003C014B4824A089003C8F850038E5 -:109CC00090A8003C01033824A0A7003C8E42003439 -:109CD0008F9100383C038008AE2200408E59002C42 -:109CE0008E5F0030033F3023AE26004492300048A0 -:109CF0003218007FA23800488F8800388E4D00301F -:109D00008D0C004801AE582401965024014B482583 -:109D1000AD0900489244000AA104004C964700088F -:109D20008F850038A4A7004E8E5000308E4400303E -:109D30000E0003818C65006092F9007C0002F940FE -:109D4000004028210002110003E2302133360002D6 -:109D500012C00003020680210005B0800216802197 -:109D6000926D007C31B30004126000020005708027 -:109D7000020E80218E4B00308F8800382405800031 -:109D8000316A0003000A4823312400030204182129 -:109D9000AD03003496E4007A96F0007A96F1007AEA -:109DA00032027FFF2447000130FF7FFF0225C824D5 -:109DB000033F3025A6E6007A96F8007A3C120800A8 -:109DC0008E520060330F7FFF11F200180000000078 -:109DD0008F8400A00E000FCE02A028218F8400A047 -:109DE0000E000FDE028028210E001013000000007C -:109DF0000A00111F0000000096F1007A022480245E -:109E0000A6F0007A92EF007A92EB007A31EE00FF32 -:109E1000000E69C2000D6027000C51C03169007F3F -:109E2000012A20250A001119A2E4007A96E6007A98 -:109E300000C5C024A6F8007A92EF007A92F3007A67 -:109E400031F200FF001271C2000E6827000DB1C090 -:109E5000326C007F01962825A2E5007A0A0011D015 -:109E60008F8400A03C0380003084FFFF30A5FFFFFB -:109E7000AC640018AC65001C03E000088C620014A0 -:109E800027BDFFA03C068008AFBF005CAFBE0058F6 -:109E9000AFB70054AFB60050AFB5004CAFB40048F8 -:109EA000AFB30044AFB20040AFB1003CAFB0003838 -:109EB00034C80100910500D590C700083084FFFF29 -:109EC00030A500FF30E2007F0045182AAFA4001043 -:109ED000A7A00018A7A0002610600055AFA000148E -:109EE00090CA00083149007F00A9302324D3FFFF26 -:109EF0000013802B8FB400100014902B02128824C2 -:109F0000522000888FB300143C03800894790052DB -:109F1000947E00508FB60010033EC0230018BC0092 -:109F2000001714030016FC0002C2A82A16A00002A3 -:109F3000001F2C030040282100133C0000072403CD -:109F400000A4102A5440000100A020212885000907 -:109F500014A000020080A021241400083C0C8008FA -:109F60008D860048001459808D88004C3C03800089 -:109F70003169FFFF3C0A0010012A202534710400DA -:109F8000AC660038AF9100A4AC68003CAC64003013 -:109F900000000000000000000000000000000000C1 -:109FA00000000000000000000000000000000000B1 -:109FB0008C6E000031CD002011A0FFFD0014782A26 -:109FC00001F01024104000390000A8213C16800840 -:109FD00092D700083C1280008E44010032F6007FC8 -:109FE0000E000F9902C028218E3900108E44010006 -:109FF0000000902133373FFF0E000FB102E028210F -:10A00000923800003302003F2C500008520000102C -:10A0100000008821000210803C030800246358E4FB -:10A020000043F8218FFE000003C00008000000007C -:10A0300090CF0008938C00AB31EE007F00AE682318 -:10A04000018D58210A0012172573FFFF0000882197 -:10A050003C1E80008FC401000E000FCE02E02821BC -:10A060008FC401000E000FDE02C028211220000F55 -:10A070000013802B8F8B00A426A400010004AC00E9 -:10A08000027298230015AC032578004002B4B02A70 -:10A090000013802B241700010300882102D0102414 -:10A0A000AF9800A41440FFC9AFB700143C07800864 -:10A0B00094E200508FAE00103C05800002A288217F -:10A0C0003C060020A4F10050ACA6003094F40050EF -:10A0D00094EF005201D51823306CFFFF11F4001EDD -:10A0E000AFAC00108CEF004C001561808CF500487F -:10A0F00001EC28210000202100AC582B02A4C02133 -:10A10000030BB021ACE5004CACF600488FB4001056 -:10A110000014902B021288241620FF7C3C03800838 -:10A120008FB300148FBF005C8FBE00583A620001ED -:10A130008FB700548FB600508FB5004C8FB40048D5 -:10A140008FB300448FB200408FB1003C8FB0003815 -:10A1500003E0000827BD006094FE00548CF2004428 -:10A1600033C9FFFE0009C8C00259F821ACBF003C4A -:10A170008CE800448CAD003C010D50231940003B9D -:10A18000000000008CF7004026E20001ACA200387D -:10A190003C05005034A700103C038000AC67003041 -:10A1A00000000000000000000000000000000000AF -:10A1B000000000000000000000000000000000009F -:10A1C0008C7800003316002012C0FFFD3C1180087F -:10A1D000962200543C1580003C068008304E000159 -:10A1E000000E18C0007578218DEC04003C070800B3 -:10A1F0008CE700443C040020ACCC00488DF40404FF -:10A20000240B0001ACD4004C10EB0260AEA4003073 -:10A21000963900523C0508008CA5004000B99021F9 -:10A22000A6320052963F005427ED0001A62D00549F -:10A230009626005430C4FFFF5487FF2F8FB40010C0 -:10A2400030A5FFFF0E0011F4A62000543C070800C3 -:10A250008CE70024963E00520047B82303D74823DA -:10A26000A62900520A0012198FB400108CE2004097 -:10A270000A0012BE00000000922400012407000121 -:10A280003085007F14A7001C97AD00268E2B00148C -:10A29000240CC000316A3FFF01AC48243C06080092 -:10A2A0008CC60060012A402531043FFF0086882BC0 -:10A2B00012200011A7A800263C0508008CA5005814 -:10A2C0008F9100A0000439802402FF8000B1182182 -:10A2D0000067F82103E2F02433F8007F3C1280008D -:10A2E0003C19800EAE5E002C0319702191D0000D38 -:10A2F000360F0004A1CF000D0E001028241200011B -:10A30000241100013C1E80008FC401000E000FCEFE -:10A3100002E028218FC401000E000FDE02C02821B8 -:10A320001620FF558F8B00A40A0012860013802B85 -:10A330008F8600A490C80001310400201080019194 -:10A34000241000013C048008348B0080916A007C5A -:10A350008F9E0034AFA0002C314900011120000F66 -:10A36000AFB000288CCD00148C8E006001AE602B45 -:10A370001580000201A038218C8700603C188008FD -:10A38000370300808C70007000F0782B15E000021D -:10A3900000E020218C640070AFA4002C3C028008F7 -:10A3A000344500808CD200148CBF0070025FC82B33 -:10A3B00017200002024020218CA400708FA7002CDF -:10A3C0000087182310600003AFA3003024050002AB -:10A3D000AFA500288FA400280264882B162000BA9D -:10A3E000000018218CD000388FCE000C3C0F00806C -:10A3F000AFD000008CCD00343C0CFF9F01CF58251E -:10A40000AFCD000490CA003F3586FFFF01662024CF -:10A410003C0900203C08FFEFA3CA000B0089382547 -:10A420003511FFFF00F118243C0500088F8700A4B8 -:10A430000065C825AFD9000C8CE20014AFC000182D -:10A440008FA60030AFC200148CF800188FB0002C1B -:10A450003C1FFFFBAFD8001C8CEF000837F2FFFF5A -:10A4600003326824AFCF00248CEC000C020670216C -:10A47000AFCD000CA7C00038A7C0003AAFCE002C6B -:10A48000AFCC0020AFC000288CEA00148FAB002CAA -:10A49000014B48230126402311000011AFC80010D2 -:10A4A00090EB003D8FC900048FC80000000B5100E5 -:10A4B000012A28210000102100AA882B010218215E -:10A4C0000071F821AFC50004AFDF000090F2003D3D -:10A4D000A3D2000A8F9900A497380006A7D80008D5 -:10A4E0008F910038240800023C038008A228000055 -:10A4F0003465008094BF005C8FA4002C33F0FFFF14 -:10A500000E000FF48F9200380002CB808F8500A4DC -:10A51000021978253C18420001F87025AE4E00045F -:10A520008F8400388CAD0038AC8D00188CAC0034B2 -:10A53000AC8C001CAC80000CAC800010A48000141B -:10A54000A4800016A4800020A4800022AC800024F7 -:10A5500090A6003F8FA7002CA486000250E0019235 -:10A56000240700018FA200305040000290A2003D5D -:10A5700090A2003E244A0001A08A00018F84003886 -:10A580008FA9002CAC8900083C128008364D008051 -:10A5900091AC007C3186000214C000022407003414 -:10A5A000240700308F8500A43C198008373F0080C5 -:10A5B00090B0000093F9007C240E0004A0900030BD -:10A5C0008F8F00A48FB8002C8F8D003891F200017E -:10A5D0003304000301C46023A1B200318F8E003820 -:10A5E0008F8600A42402C00095CA003294C90012CC -:10A5F0008FAB002C0142402431233FFF010388250B -:10A60000A5D1003291D000323185000300EBF82152 -:10A610003218003F370F0040A1CF00328FA4002C2A -:10A6200003E5382133280004108000028F850038AC -:10A6300000E838213C0A8008ACA700343549010005 -:10A640008D2800D08FA3002C2419FFBFACA80038A0 -:10A6500090B1003C2C640001240FFFDF3227007F03 -:10A66000A0A7003C8F98003800049140931F003C45 -:10A6700003F98024A310003C8F8C0038918E003C9D -:10A6800001CF682401B23025A186003C8F8900A447 -:10A690008F8800388D2B0020AD0B00408D220024C8 -:10A6A000AD0200448D2A0028AD0A00488D23002CFD -:10A6B0000E001013AD03004C8FB1002824070002D8 -:10A6C000122700118FA300280003282B00058023E8 -:10A6D0000270982400608021006090210A00126FAF -:10A6E0000010882B962900128F8400A00000902172 -:10A6F0003125FFFFA7A900180E000FC22411000189 -:10A700000A00131D3C1E80003C0B80003C12800898 -:10A710008D640100924900088F92FF340E000F995A -:10A720003125007F8F9900388FA700288FA4003033 -:10A73000A3270000965F005C33F0FFFF0E000FF4CC -:10A740008F91003800026B80020D80253C0842008A -:10A750008F8D00A402085025AE2A00048DA5003874 -:10A760008F8A003800007821000F1100AD450018D5 -:10A770008DB800343C047FFF3488FFFFAD58001CC7 -:10A7800091A6003E8D4C001C8D4900180006190052 -:10A79000000677020183C821004E58250323882B29 -:10A7A000012B382100F1F821AD59001CAD5F0018D4 -:10A7B000AD40000CAD40001091B0003E8FA40030C1 -:10A7C00024090005A550001495A500042419C00013 -:10A7D00000884024A545001691B8003EA5580020E9 -:10A7E00095AF0004A54F0022AD40002491AE003F7C -:10A7F000A54E000291A6003E91AC003D01861023BB -:10A80000244B0001A14B00018F9100388FA3003031 -:10A810003C028008344B0100AE230008A22900301E -:10A820008F8C00388F8700A4959F003294F000121F -:10A830002407FFBF033FC02432053FFF03057825EF -:10A84000A58F0032918E00322418FFDF31CD003FFA -:10A8500035A60040A18600328F910038240DFFFFFD -:10A86000240CFF80AE2000348D6A00D0AE2A003860 -:10A870009223003C3069007FA229003C8F90003871 -:10A880003C0380009219003C0327F824A21F003CDF -:10A890008F8E003891C5003C00B87824A1CF003CD1 -:10A8A0008F8A00383C0E8008AD4D00408FA6002CEA -:10A8B000AD46004491420048004C5825A14B004849 -:10A8C0008F9000388F9900A48E09004801238824B6 -:10A8D00002283825AE070048933F003EA21F004CD7 -:10A8E0008F9800A48F8F003897050004A5E5004ECF -:10A8F0000E0003818DC500609246007C8FAC003055 -:10A9000000026940000291000040282130CB000283 -:10A9100001B21021156000AA018230213C0E80088E -:10A9200035C20080904C007C31830004106000032D -:10A930008FB900300005788000CF3021241F00043B -:10A940008F910038332D000303ED8023320800037C -:10A9500000C85021AE2A00343C188000A7C500383A -:10A960003C0680088F04010090DE00080E000FDE18 -:10A9700033C5007F0E001013000000000A00140D04 -:10A980008FA300288F9800348CC90038241F00033F -:10A99000A7000008AF0900008CC50034A300000A1E -:10A9A0008F9900A4AF0500043C080080932D003F60 -:10A9B000A31F000C8F0A000C3C02FF9FA30D000B8D -:10A9C0000148F0253451FFFF3C12FFEF8F9900A49E -:10A9D00003D170243646FFFF01C61824AF03000CD4 -:10A9E0008F2C0014972900128F8400A0AF0C001048 -:10A9F0008F2F0014AF000018AF000020AF0F00141D -:10AA0000AF0000248F270018312F3FFF000F59801F -:10AA1000AF0700288F2500080164F821312D0001BF -:10AA2000AF0500308F31000C8F920038001F51C2EB -:10AA3000000D438001481021241E00023C068008BE -:10AA4000A702001CA7000034AF11002CA25E00007A -:10AA500034D20080964E005C8F9900383C0342004F -:10AA600031CCFFFF01833825AF2700048F8B00A472 -:10AA7000240500012402C0008D640038240700343E -:10AA8000AF2400188D690034AF29001CAF20000CE2 -:10AA9000AF200010A7200014A7200016A720002038 -:10AAA000A7200022AF200024A7300002A325000128 -:10AAB0008F8800388F9F00A4AD10000893ED000030 -:10AAC000A10D00308F8A00A48F98003891510001A9 -:10AAD000A31100318F8B0038957E003203C27024A1 -:10AAE00001CF6025A56C0032916300323064003FD5 -:10AAF000A16400329249007C3125000214A00002BA -:10AB00008F840038240700303C198008AC8700345B -:10AB1000373201008E5F00D0240AFFBF020090216F -:10AB2000AC9F0038908D003C31A8007FA088003C8D -:10AB30008F9E003893C2003C004A8824A3D1003C79 -:10AB40008F8300380010882B9066003C34CE0020A4 -:10AB5000A06E003C8F8400A48F9800388C8C00205D -:10AB6000AF0C00408C8F0024AF0F00448C8700286E -:10AB7000AF0700488C8B002CAF0B004C0E0010135D -:10AB80003C1E80000A0012700000000094C80052B1 -:10AB90003C0A08008D4A002401488821A4D10052B3 -:10ABA0000A0012198FB40010A08700018F840038AA -:10ABB000240B0001AC8B00080A0013BE3C12800875 -:10ABC000000520800A0014A200C4302127BDFFE048 -:10ABD0003C0D8008AFB20018AFB00010AFBF001C32 -:10ABE000AFB1001435B200808E4C001835A80100BA -:10ABF000964B000695A70050910900FC000C5602E8 -:10AC0000016728233143007F312600FF240200031F -:10AC1000AF8300A8AF8400A010C2001B30B0FFFFBC -:10AC2000910600FC2412000530C200FF10520033D0 -:10AC300000000000160000098FBF001C8FB2001832 -:10AC40008FB100148FB00010240D0C003C0C80005C -:10AC500027BD002003E00008AD8D00240E0011FB8D -:10AC6000020020218FBF001C8FB200188FB100148A -:10AC70008FB00010240D0C003C0C800027BD00207C -:10AC800003E00008AD8D0024965800789651007AB4 -:10AC9000924E007D0238782631E8FFFF31C400C0B3 -:10ACA000148000092D11000116000037000000007B -:10ACB0005620FFE28FBF001C0E0010D100000000E4 -:10ACC0000A00156A8FBF001C1620FFDA0000000082 -:10ACD0000E0010D1000000001440FFD88FBF001CF0 -:10ACE0001600002200000000925F007D33E2003F6A -:10ACF000A242007D0A00156A8FBF001C950900EA78 -:10AD00008F86008000802821240400050E0007257E -:10AD10003130FFFF978300923C0480002465FFFFE1 -:10AD2000A78500928C8A01B80540FFFE0000000054 -:10AD3000AC8001808FBF001CAC9001848FB20018E2 -:10AD40008FB100148FB000103C0760133C0B100053 -:10AD5000240D0C003C0C800027BD0020AC8701882E -:10AD6000AC8B01B803E00008AD8D00240E0011FB90 -:10AD7000020020215040FFB18FBF001C925F007D78 -:10AD80000A00159733E2003F0E0011FB020020215C -:10AD90001440FFAA8FBF001C122000070000000013 -:10ADA0009259007D3330003F36020040A242007DC0 -:10ADB0000A00156A8FBF001C0E0010D100000000B1 -:10ADC0005040FF9E8FBF001C9259007D3330003FE2 -:08ADD0000A0015C6360200401E -:08ADD800000000000000001B58 -:10ADE0000000000F0000000A00000008000000063C -:10ADF0000000000500000005000000040000000441 -:10AE00000000000300000003000000030000000336 -:10AE10000000000300000002000000020000000229 -:10AE2000000000020000000200000002000000021A -:10AE3000000000020000000200000002000000020A -:10AE400000000002000000020000000200000002FA -:0CAE5000000000010000000100000001F3 -:04AE5C008008010069 -:10AE6000800800808008000000000C000000308096 -:10AE7000080011D00800127C08001294080012A8E3 -:10AE8000080012BC080011D0080011D0080012F010 -:10AE90000800132C080013400800138808001A8CBF -:10AEA00008001A8C08001AC408001AC408001AD82E -:10AEB00008001AA808001D0008001CCC08001D5836 -:10AEC00008001D5808001DE008001D108008024001 -:10AED000080027340800256C0800275C080027F4C8 -:10AEE0000800293C0800298808002AAC080029B479 -:10AEF00008002A38080025DC08002EDC08002EA4F3 -:10AF000008002588080025880800258808002B20CF -:10AF100008002B20080025880800258808002DD06F -:10AF2000080025880800258808002588080025884D -:10AF300008002E0C080025880800258808002588B0 -:10AF4000080025880800258808002588080025882D -:10AF5000080025880800258808002588080025881D -:10AF6000080025880800258808002588080029A8E9 -:10AF7000080025880800258808002E680800258814 -:10AF800008002588080025880800258808002588ED -:10AF900008002588080025880800258808002588DD -:10AFA00008002588080025880800258808002588CD -:10AFB00008002588080025880800258808002588BD -:10AFC00008002CF4080025880800258808002C6853 -:10AFD00008002BC408003CE408003CB808003C848E -:10AFE00008003C5808003C3808003BEC8008010091 -:10AFF00080080080800800008008008008004C6401 -:10B0000008004C9C08004BE408004C6408004C64A9 -:0CB01000080049B808004C6408005050CB -:04B01C000A000C8496 -:10B0200000000000000000000000000D7278703683 -:10B030002E322E31610000000602010300000000E4 -:10B0400000000001000000000000000000000000FF -:10B0500000000000000000000000000000000000F0 -:10B0600000000000000000000000000000000000E0 -:10B0700000000000000000000000000000000000D0 -:10B0800000000000000000000000000000000000C0 -:10B0900000000000000000000000000000000000B0 -:10B0A00000000000000000000000000000000000A0 -:10B0B0000000000000000000000000000000000090 -:10B0C0000000000000000000000000000000000080 -:10B0D0000000000000000000000000000000000070 -:10B0E0000000000000000000000000000000000060 -:10B0F0000000000000000000000000000000000050 -:10B10000000000000000000000000000000000003F -:10B11000000000000000000000000000000000002F -:10B12000000000000000000000000000000000001F -:10B13000000000000000000000000000000000000F -:10B1400000000000000000000000000000000000FF -:10B1500000000000000000000000000000000000EF -:10B1600000000000000000000000000000000000DF -:10B1700000000000000000000000000000000000CF -:10B1800000000000000000000000000000000000BF -:10B1900000000000000000000000000000000000AF -:10B1A000000000000000000000000000000000009F -:10B1B000000000000000000000000000000000008F -:10B1C000000000000000000000000000000000007F -:10B1D000000000000000000000000000000000006F -:10B1E000000000000000000000000000000000005F -:10B1F000000000000000000000000000000000004F -:10B20000000000000000000000000000000000003E -:10B21000000000000000000000000000000000002E -:10B22000000000000000000000000000000000001E -:10B23000000000000000000000000000000000000E -:10B2400000000000000000000000000000000000FE -:10B2500000000000000000000000000000000000EE -:10B2600000000000000000000000000000000000DE -:10B2700000000000000000000000000000000000CE -:10B2800000000000000000000000000000000000BE -:10B2900000000000000000000000000000000000AE -:10B2A000000000000000000000000000000000009E -:10B2B000000000000000000000000000000000008E -:10B2C000000000000000000000000000000000007E -:10B2D000000000000000000000000000000000006E -:10B2E000000000000000000000000000000000005E -:10B2F000000000000000000000000000000000004E -:10B30000000000000000000000000000000000003D -:10B31000000000000000000000000000000000002D -:10B32000000000000000000000000000000000001D -:10B33000000000000000000000000000000000000D -:10B3400000000000000000000000000000000000FD -:10B3500000000000000000000000000000000000ED -:10B3600000000000000000000000000000000000DD -:10B3700000000000000000000000000000000000CD -:10B3800000000000000000000000000000000000BD -:10B3900000000000000000000000000000000000AD -:10B3A000000000000000000000000000000000009D -:10B3B000000000000000000000000000000000008D -:10B3C000000000000000000000000000000000007D -:10B3D000000000000000000000000000000000006D -:10B3E000000000000000000000000000000000005D -:10B3F000000000000000000000000000000000004D -:10B40000000000000000000000000000000000003C -:10B41000000000000000000000000000000000002C -:10B42000000000000000000000000000000000001C -:10B43000000000000000000000000000000000000C -:10B4400000000000000000000000000000000000FC -:10B4500000000000000000000000000000000000EC -:10B4600000000000000000000000000000000000DC -:10B4700000000000000000000000000000000000CC -:10B4800000000000000000000000000000000000BC -:10B4900000000000000000000000000000000000AC -:10B4A000000000000000000000000000000000009C -:10B4B000000000000000000000000000000000008C -:10B4C000000000000000000000000000000000007C -:10B4D000000000000000000000000000000000006C -:10B4E000000000000000000000000000000000005C -:10B4F000000000000000000000000000000000004C -:10B50000000000000000000000000000000000003B -:10B51000000000000000000000000000000000002B -:10B52000000000000000000000000000000000001B -:10B53000000000000000000000000000000000000B -:10B5400000000000000000000000000000000000FB -:10B5500000000000000000000000000000000000EB -:10B5600000000000000000000000000000000000DB -:10B5700000000000000000000000000000000000CB -:10B5800000000000000000000000000000000000BB -:10B5900000000000000000000000000000000000AB -:10B5A000000000000000000000000000000000009B -:10B5B000000000000000000000000000000000008B -:10B5C000000000000000000000000000000000007B -:10B5D000000000000000000000000000000000006B -:10B5E000000000000000000000000000000000005B -:10B5F000000000000000000000000000000000004B -:10B60000000000000000000000000000000000003A -:10B61000000000000000000000000000000000002A -:10B62000000000000000000000000000000000001A -:10B63000000000000000000000000000000000000A -:10B6400000000000000000000000000000000000FA -:10B6500000000000000000000000000000000000EA -:10B6600000000000000000000000000000000000DA -:10B6700000000000000000000000000000000000CA -:10B6800000000000000000000000000000000000BA -:10B6900000000000000000000000000000000000AA -:10B6A000000000000000000000000000000000009A -:10B6B000000000000000000000000000000000008A -:10B6C000000000000000000000000000000000007A -:10B6D000000000000000000000000000000000006A -:10B6E000000000000000000000000000000000005A -:10B6F000000000000000000000000000000000004A -:10B700000000000000000000000000000000000039 -:10B710000000000000000000000000000000000029 -:10B720000000000000000000000000000000000019 -:10B730000000000000000000000000000000000009 -:10B7400000000000000000000000000000000000F9 -:10B7500000000000000000000000000000000000E9 -:10B7600000000000000000000000000000000000D9 -:10B7700000000000000000000000000000000000C9 -:10B7800000000000000000000000000000000000B9 -:10B7900000000000000000000000000000000000A9 -:10B7A0000000000000000000000000000000000099 -:10B7B0000000000000000000000000000000000089 -:10B7C0000000000000000000000000000000000079 -:10B7D0000000000000000000000000000000000069 -:10B7E0000000000000000000000000000000000059 -:10B7F0000000000000000000000000000000000049 -:10B800000000000000000000000000000000000038 -:10B810000000000000000000000000000000000028 -:10B820000000000000000000000000000000000018 -:10B830000000000000000000000000000000000008 -:10B8400000000000000000000000000000000000F8 -:10B8500000000000000000000000000000000000E8 -:10B8600000000000000000000000000000000000D8 -:10B8700000000000000000000000000000000000C8 -:10B8800000000000000000000000000000000000B8 -:10B8900000000000000000000000000000000000A8 -:10B8A0000000000000000000000000000000000098 -:10B8B0000000000000000000000000000000000088 -:10B8C0000000000000000000000000000000000078 -:10B8D0000000000000000000000000000000000068 -:10B8E0000000000000000000000000000000000058 -:10B8F0000000000000000000000000000000000048 -:10B900000000000000000000000000000000000037 -:10B910000000000000000000000000000000000027 -:10B920000000000000000000000000000000000017 -:10B930000000000000000000000000000000000007 -:10B9400000000000000000000000000000000000F7 -:10B9500000000000000000000000000000000000E7 -:10B9600000000000000000000000000000000000D7 -:10B9700000000000000000000000000000000000C7 -:10B9800000000000000000000000000000000000B7 -:10B9900000000000000000000000000000000000A7 -:10B9A0000000000000000000000000000000000097 -:10B9B0000000000000000000000000000000000087 -:10B9C0000000000000000000000000000000000077 -:10B9D0000000000000000000000000000000000067 -:10B9E0000000000000000000000000000000000057 -:10B9F0000000000000000000000000000000000047 -:10BA00000000000000000000000000000000000036 -:10BA10000000000000000000000000000000000026 -:10BA20000000000000000000000000000000000016 -:10BA30000000000000000000000000000000000006 -:10BA400000000000000000000000000000000000F6 -:10BA500000000000000000000000000000000000E6 -:10BA600000000000000000000000000000000000D6 -:10BA700000000000000000000000000000000000C6 -:10BA800000000000000000000000000000000000B6 -:10BA900000000000000000000000000000000000A6 -:10BAA0000000000000000000000000000000000096 -:10BAB0000000000000000000000000000000000086 -:10BAC0000000000000000000000000000000000076 -:10BAD0000000000000000000000000000000000066 -:10BAE0000000000000000000000000000000000056 -:10BAF0000000000000000000000000000000000046 -:10BB00000000000000000000000000000000000035 -:10BB10000000000000000000000000000000000025 -:10BB20000000000000000000000000000000000015 -:10BB30000000000000000000000000000000000005 -:10BB400000000000000000000000000000000000F5 -:10BB500000000000000000000000000000000000E5 -:10BB600000000000000000000000000000000000D5 -:10BB700000000000000000000000000000000000C5 -:10BB800000000000000000000000000000000000B5 -:10BB900000000000000000000000000000000000A5 -:10BBA0000000000000000000000000000000000095 -:10BBB0000000000000000000000000000000000085 -:10BBC0000000000000000000000000000000000075 -:10BBD0000000000000000000000000000000000065 -:10BBE0000000000000000000000000000000000055 -:10BBF0000000000000000000000000000000000045 -:10BC00000000000000000000000000000000000034 -:10BC10000000000000000000000000000000000024 -:10BC20000000000000000000000000000000000014 -:10BC30000000000000000000000000000000000004 -:10BC400000000000000000000000000000000000F4 -:10BC500000000000000000000000000000000000E4 -:10BC600000000000000000000000000000000000D4 -:10BC700000000000000000000000000000000000C4 -:10BC800000000000000000000000000000000000B4 -:10BC900000000000000000000000000000000000A4 -:10BCA0000000000000000000000000000000000094 -:10BCB0000000000000000000000000000000000084 -:10BCC0000000000000000000000000000000000074 -:10BCD0000000000000000000000000000000000064 -:10BCE0000000000000000000000000000000000054 -:10BCF0000000000000000000000000000000000044 -:10BD00000000000000000000000000000000000033 -:10BD10000000000000000000000000000000000023 -:10BD20000000000000000000000000000000000013 -:10BD30000000000000000000000000000000000003 -:10BD400000000000000000000000000000000000F3 -:10BD500000000000000000000000000000000000E3 -:10BD600000000000000000000000000000000000D3 -:10BD700000000000000000000000000000000000C3 -:10BD800000000000000000000000000000000000B3 -:10BD900000000000000000000000000000000000A3 -:10BDA0000000000000000000000000000000000093 -:10BDB0000000000000000000000000000000000083 -:10BDC0000000000000000000000000000000000073 -:10BDD0000000000000000000000000000000000063 -:10BDE0000000000000000000000000000000000053 -:10BDF0000000000000000000000000000000000043 -:10BE00000000000000000000000000000000000032 -:10BE10000000000000000000000000000000000022 -:10BE20000000000000000000000000000000000012 -:10BE30000000000000000000000000000000000002 -:10BE400000000000000000000000000000000000F2 -:10BE500000000000000000000000000000000000E2 -:10BE600000000000000000000000000000000000D2 -:10BE700000000000000000000000000000000000C2 -:10BE800000000000000000000000000000000000B2 -:10BE900000000000000000000000000000000000A2 -:10BEA0000000000000000000000000000000000092 -:10BEB0000000000000000000000000000000000082 -:10BEC0000000000000000000000000000000000072 -:10BED0000000000000000000000000000000000062 -:10BEE0000000000000000000000000000000000052 -:10BEF0000000000000000000000000000000000042 -:10BF00000000000000000000000000000000000031 -:10BF10000000000000000000000000000000000021 -:10BF20000000000000000000000000000000000011 -:10BF30000000000000000000000000000000000001 -:10BF400000000000000000000000000000000000F1 -:10BF500000000000000000000000000000000000E1 -:10BF600000000000000000000000000000000000D1 -:10BF700000000000000000000000000000000000C1 -:10BF800000000000000000000000000000000000B1 -:10BF900000000000000000000000000000000000A1 -:10BFA0000000000000000000000000000000000091 -:10BFB0000000000000000000000000000000000081 -:10BFC0000000000000000000000000000000000071 -:10BFD0000000000000000000000000000000000061 -:10BFE0000000000000000000000000000000000051 -:10BFF0000000000000000000000000000000000041 -:10C000000000000000000000000000000000000030 -:10C010000000000000000000000000000000000020 -:10C020000000000000000000000000000000000010 -:10C030000000000000000000000000000000000000 -:10C0400000000000000000000000000000000000F0 -:10C0500000000000000000000000000000000000E0 -:10C0600000000000000000000000000000000000D0 -:10C0700000000000000000000000000000000000C0 -:10C0800000000000000000000000000000000000B0 -:10C0900000000000000000000000000000000000A0 -:10C0A0000000000000000000000000000000000090 -:10C0B0000000000000000000000000000000000080 -:10C0C0000000000000000000000000000000000070 -:10C0D0000000000000000000000000000000000060 -:10C0E0000000000000000000000000000000000050 -:10C0F0000000000000000000000000000000000040 -:10C10000000000000000000000000000000000002F -:10C11000000000000000000000000000000000001F -:10C12000000000000000000000000000000000000F -:10C1300000000000000000000000000000000000FF -:10C1400000000000000000000000000000000000EF -:10C1500000000000000000000000000000000000DF -:10C1600000000000000000000000000000000000CF -:10C1700000000000000000000000000000000000BF -:10C1800000000000000000000000000000000000AF -:10C19000000000000000000000000000000000009F -:10C1A000000000000000000000000000000000008F -:10C1B000000000000000000000000000000000007F -:10C1C000000000000000000000000000000000006F -:10C1D000000000000000000000000000000000005F -:10C1E000000000000000000000000000000000004F -:10C1F000000000000000000000000000000000003F -:10C20000000000000000000000000000000000002E -:10C21000000000000000000000000000000000001E -:10C22000000000000000000000000000000000000E -:10C2300000000000000000000000000000000000FE -:10C2400000000000000000000000000000000000EE -:10C2500000000000000000000000000000000000DE -:10C2600000000000000000000000000000000000CE -:10C2700000000000000000000000000000000000BE -:10C2800000000000000000000000000000000000AE -:10C29000000000000000000000000000000000009E -:10C2A000000000000000000000000000000000008E -:10C2B000000000000000000000000000000000007E -:10C2C000000000000000000000000000000000006E -:10C2D000000000000000000000000000000000005E -:10C2E000000000000000000000000000000000004E -:10C2F000000000000000000000000000000000003E -:10C30000000000000000000000000000000000002D -:10C31000000000000000000000000000000000001D -:10C32000000000000000000000000000000000000D -:10C3300000000000000000000000000000000000FD -:10C3400000000000000000000000000000000000ED -:10C3500000000000000000000000000000000000DD -:10C3600000000000000000000000000000000000CD -:10C3700000000000000000000000000000000000BD -:10C3800000000000000000000000000000000000AD -:10C39000000000000000000000000000000000009D -:10C3A000000000000000000000000000000000008D -:10C3B000000000000000000000000000000000007D -:10C3C000000000000000000000000000000000006D -:10C3D000000000000000000000000000000000005D -:10C3E000000000000000000000000000000000004D -:10C3F000000000000000000000000000000000003D -:10C40000000000000000000000000000000000002C -:10C41000000000000000000000000000000000001C -:10C42000000000000000000000000000000000000C -:10C4300000000000000000000000000000000000FC -:10C4400000000000000000000000000000000000EC -:10C4500000000000000000000000000000000000DC -:10C4600000000000000000000000000000000000CC -:10C4700000000000000000000000000000000000BC -:10C4800000000000000000000000000000000000AC -:10C49000000000000000000000000000000000009C -:10C4A000000000000000000000000000000000008C -:10C4B000000000000000000000000000000000007C -:10C4C000000000000000000000000000000000006C -:10C4D000000000000000000000000000000000005C -:10C4E000000000000000000000000000000000004C -:10C4F000000000000000000000000000000000003C -:10C50000000000000000000000000000000000002B -:10C51000000000000000000000000000000000001B -:10C52000000000000000000000000000000000000B -:10C5300000000000000000000000000000000000FB -:10C5400000000000000000000000000000000000EB -:10C5500000000000000000000000000000000000DB -:10C5600000000000000000000000000000000000CB -:10C5700000000000000000000000000000000000BB -:10C5800000000000000000000000000000000000AB -:10C59000000000000000000000000000000000009B -:10C5A000000000000000000000000000000000008B -:10C5B000000000000000000000000000000000007B -:10C5C000000000000000000000000000000000006B -:10C5D000000000000000000000000000000000005B -:10C5E000000000000000000000000000000000004B -:10C5F000000000000000000000000000000000003B -:10C60000000000000000000000000000000000002A -:10C61000000000000000000000000000000000001A -:10C62000000000000000000000000000000000000A -:10C6300000000000000000000000000000000000FA -:10C6400000000000000000000000000000000000EA -:10C6500000000000000000000000000000000000DA -:10C6600000000000000000000000000000000000CA -:10C6700000000000000000000000000000000000BA -:10C6800000000000000000000000000000000000AA -:10C69000000000000000000000000000000000009A -:10C6A000000000000000000000000000000000008A -:10C6B000000000000000000000000000000000007A -:10C6C000000000000000000000000000000000006A -:10C6D000000000000000000000000000000000005A -:10C6E000000000000000000000000000000000004A -:10C6F000000000000000000000000000000000003A -:10C700000000000000000000000000000000000029 -:10C710000000000000000000000000000000000019 -:10C720000000000000000000000000000000000009 -:10C7300000000000000000000000000000000000F9 -:10C7400000000000000000000000000000000000E9 -:10C7500000000000000000000000000000000000D9 -:10C7600000000000000000000000000000000000C9 -:10C7700000000000000000000000000000000000B9 -:10C7800000000000000000000000000000000000A9 -:10C790000000000000000000000000000000000099 -:10C7A0000000000000000000000000000000000089 -:10C7B0000000000000000000000000000000000079 -:10C7C0000000000000000000000000000000000069 -:10C7D0000000000000000000000000000000000059 -:10C7E0000000000000000000000000000000000049 -:10C7F0000000000000000000000000000000000039 -:10C800000000000000000000000000000000000028 -:10C810000000000000000000000000000000000018 -:10C820000000000000000000000000000000000008 -:10C8300000000000000000000000000000000000F8 -:10C8400000000000000000000000000000000000E8 -:10C8500000000000000000000000000000000000D8 -:10C8600000000000000000000000000000000000C8 -:10C8700000000000000000000000000000000000B8 -:10C8800000000000000000000000000000000000A8 -:10C890000000000000000000000000000000000098 -:10C8A0000000000000000000000000000000000088 -:10C8B0000000000000000000000000000000000078 -:10C8C0000000000000000000000000000000000068 -:10C8D0000000000000000000000000000000000058 -:10C8E0000000000000000000000000000000000048 -:10C8F0000000000000000000000000000000000038 -:10C900000000000000000000000000000000000027 -:10C910000000000000000000000000000000000017 -:10C920000000000000000000000000000000000007 -:10C9300000000000000000000000000000000000F7 -:10C9400000000000000000000000000000000000E7 -:10C9500000000000000000000000000000000000D7 -:10C9600000000000000000000000000000000000C7 -:10C9700000000000000000000000000000000000B7 -:10C9800000000000000000000000000000000000A7 -:10C990000000000000000000000000000000000097 -:10C9A0000000000000000000000000000000000087 -:10C9B0000000000000000000000000000000000077 -:10C9C0000000000000000000000000000000000067 -:10C9D0000000000000000000000000000000000057 -:10C9E0000000000000000000000000000000000047 -:10C9F0000000000000000000000000000000000037 -:10CA00000000000000000000000000000000000026 -:10CA10000000000000000000000000000000000016 -:10CA20000000000000000000000000000000000006 -:10CA300000000000000000000000000000000000F6 -:10CA400000000000000000000000000000000000E6 -:10CA500000000000000000000000000000000000D6 -:10CA600000000000000000000000000000000000C6 -:10CA700000000000000000000000000000000000B6 -:10CA800000000000000000000000000000000000A6 -:10CA90000000000000000000000000000000000096 -:10CAA0000000000000000000000000000000000086 -:10CAB0000000000000000000000000000000000076 -:10CAC0000000000000000000000000000000000066 -:10CAD0000000000000000000000000000000000056 -:10CAE0000000000000000000000000000000000046 -:10CAF0000000000000000000000000000000000036 -:10CB00000000000000000000000000000000000025 -:10CB10000000000000000000000000000000000015 -:10CB20000000000000000000000000000000000005 -:10CB300000000000000000000000000000000000F5 -:10CB400000000000000000000000000000000000E5 -:10CB500000000000000000000000000000000000D5 -:10CB600000000000000000000000000000000000C5 -:10CB700000000000000000000000000000000000B5 -:10CB800000000000000000000000000000000000A5 -:10CB90000000000000000000000000000000000095 -:10CBA0000000000000000000000000000000000085 -:10CBB0000000000000000000000000000000000075 -:10CBC0000000000000000000000000000000000065 -:10CBD0000000000000000000000000000000000055 -:10CBE0000000000000000000000000000000000045 -:10CBF0000000000000000000000000000000000035 -:10CC00000000000000000000000000000000000024 -:10CC10000000000000000000000000000000000014 -:10CC20000000000000000000000000000000000004 -:10CC300000000000000000000000000000000000F4 -:10CC400000000000000000000000000000000000E4 -:10CC500000000000000000000000000000000000D4 -:10CC600000000000000000000000000000000000C4 -:10CC700000000000000000000000000000000000B4 -:10CC800000000000000000000000000000000000A4 -:10CC90000000000000000000000000000000000094 -:10CCA0000000000000000000000000000000000084 -:10CCB0000000000000000000000000000000000074 -:10CCC0000000000000000000000000000000000064 -:10CCD0000000000000000000000000000000000054 -:10CCE0000000000000000000000000000000000044 -:10CCF0000000000000000000000000000000000034 -:10CD00000000000000000000000000000000000023 -:10CD10000000000000000000000000000000000013 -:10CD20000000000000000000000000000000000003 -:10CD300000000000000000000000000000000000F3 -:10CD400000000000000000000000000000000000E3 -:10CD500000000000000000000000000000000000D3 -:10CD600000000000000000000000000000000000C3 -:10CD700000000000000000000000000000000000B3 -:10CD800000000000000000000000000000000000A3 -:10CD90000000000000000000000000000000000093 -:10CDA0000000000000000000000000000000000083 -:10CDB0000000000000000000000000000000000073 -:10CDC0000000000000000000000000000000000063 -:10CDD0000000000000000000000000000000000053 -:10CDE0000000000000000000000000000000000043 -:10CDF0000000000000000000000000000000000033 -:10CE00000000000000000000000000000000000022 -:10CE10000000000000000000000000000000000012 -:10CE20000000000000000000000000000000000002 -:10CE300000000000000000000000000000000000F2 -:10CE400000000000000000000000000000000000E2 -:10CE500000000000000000000000000000000000D2 -:10CE600000000000000000000000000000000000C2 -:10CE700000000000000000000000000000000000B2 -:10CE800000000000000000000000000000000000A2 -:10CE90000000000000000000000000000000000092 -:10CEA0000000000000000000000000000000000082 -:10CEB0000000000000000000000000000000000072 -:10CEC0000000000000000000000000000000000062 -:10CED0000000000000000000000000000000000052 -:10CEE0000000000000000000000000000000000042 -:10CEF0000000000000000000000000000000000032 -:10CF00000000000000000000000000000000000021 -:10CF10000000000000000000000000000000000011 -:10CF20000000000000000000000000000000000001 -:10CF300000000000000000000000000000000000F1 -:10CF400000000000000000000000000000000000E1 -:10CF500000000000000000000000000000000000D1 -:10CF600000000000000000000000000000000000C1 -:10CF700000000000000000000000000000000000B1 -:10CF800000000000000000000000000000000000A1 -:10CF90000000000000000000000000000000000091 -:10CFA0000000000000000000000000000000000081 -:10CFB0000000000000000000000000000000000071 -:10CFC0000000000000000000000000000000000061 -:10CFD0000000000000000000000000000000000051 -:10CFE0000000000000000000000000000000000041 -:10CFF0000000000000000000000000000000000031 -:10D000000000000000000000000000000000000020 -:10D010000000000000000000000000000000000010 -:10D020000000000000000000000000000000000000 -:10D0300000000000000000000000000000000000F0 -:10D0400000000000000000000000000000000000E0 -:10D0500000000000000000000000000000000000D0 -:10D0600000000000000000000000000000000000C0 -:10D0700000000000000000000000000000000000B0 -:10D0800000000000000000000000000000000000A0 -:10D090000000000000000000000000000000000090 -:10D0A0000000000000000000000000000000000080 -:10D0B0000000000000000000000000000000000070 -:10D0C0000000000000000000000000000000000060 -:10D0D0000000000000000000000000000000000050 -:10D0E0000000000000000000000000000000000040 -:10D0F0000000000000000000000000000000000030 -:10D10000000000000000000000000000000000001F -:10D11000000000000000000000000000000000000F -:10D1200000000000000000000000000000000000FF -:10D1300000000000000000000000000000000000EF -:10D1400000000000000000000000000000000000DF -:10D1500000000000000000000000000000000000CF -:10D1600000000000000000000000000000000000BF -:10D1700000000000000000000000000000000000AF -:10D18000000000000000000000000000000000009F -:10D19000000000000000000000000000000000008F -:10D1A000000000000000000000000000000000007F -:10D1B000000000000000000000000000000000006F -:10D1C000000000000000000000000000000000005F -:10D1D000000000000000000000000000000000004F -:10D1E000000000000000000000000000000000003F -:10D1F000000000000000000000000000000000002F -:10D20000000000000000000000000000000000001E -:10D21000000000000000000000000000000000000E -:10D2200000000000000000000000000000000000FE -:10D2300000000000000000000000000000000000EE -:10D2400000000000000000000000000000000000DE -:10D2500000000000000000000000000000000000CE -:10D2600000000000000000000000000000000000BE -:10D2700000000000000000000000000000000000AE -:10D28000000000000000000000000000000000009E -:10D29000000000000000000000000000000000008E -:10D2A000000000000000000000000000000000007E -:10D2B000000000000000000000000000000000006E -:10D2C000000000000000000000000000000000005E -:10D2D000000000000000000000000000000000004E -:10D2E000000000000000000000000000000000003E -:10D2F000000000000000000000000000000000002E -:10D30000000000000000000000000000000000001D -:10D31000000000000000000000000000000000000D -:10D3200000000000000000000000000000000000FD -:10D3300000000000000000000000000000000000ED -:10D3400000000000000000000000000000000000DD -:10D3500000000000000000000000000000000000CD -:10D3600000000000000000000000000000000000BD -:10D3700000000000000000000000000000000000AD -:10D38000000000000000000000000000000000009D -:10D39000000000000000000000000000000000008D -:10D3A000000000000000000000000000000000007D -:10D3B000000000000000000000000000000000006D -:10D3C000000000000000000000000000000000005D -:10D3D000000000000000000000000000000000004D -:10D3E000000000000000000000000000000000003D -:10D3F000000000000000000000000000000000002D -:10D40000000000000000000000000000000000001C -:10D41000000000000000000000000000000000000C -:10D4200000000000000000000000000000000000FC -:10D4300000000000000000000000000000000000EC -:10D4400000000000000000000000000000000000DC -:10D4500000000000000000000000000000000000CC -:10D4600000000000000000000000000000000000BC -:10D4700000000000000000000000000000000000AC -:10D48000000000000000000000000000000000009C -:10D49000000000000000000000000000000000008C -:10D4A000000000000000000000000000000000007C -:10D4B000000000000000000000000000000000006C -:10D4C000000000000000000000000000000000005C -:10D4D000000000000000000000000000000000004C -:10D4E000000000000000000000000000000000003C -:10D4F000000000000000000000000000000000002C -:10D50000000000000000000000000000000000001B -:10D51000000000000000000000000000000000000B -:10D5200000000000000000000000000000000000FB -:10D5300000000000000000000000000000000000EB -:10D5400000000000000000000000000000000000DB -:10D5500000000000000000000000000000000000CB -:10D5600000000000000000000000000000000000BB -:10D5700000000000000000000000000000000000AB -:10D58000000000000000000000000000000000009B -:10D59000000000000000000000000000000000008B -:10D5A000000000000000000000000000000000007B -:10D5B000000000000000000000000000000000006B -:10D5C000000000000000000000000000000000005B -:10D5D000000000000000000000000000000000004B -:10D5E000000000000000000000000000000000003B -:10D5F000000000000000000000000000000000002B -:10D60000000000000000000000000000000000001A -:10D61000000000000000000000000000000000000A -:10D6200000000000000000000000000000000000FA -:10D6300000000000000000000000000000000000EA -:10D6400000000000000000000000000000000000DA -:10D6500000000000000000000000000000000000CA -:10D6600000000000000000000000000000000000BA -:10D6700000000000000000000000000000000000AA -:10D68000000000000000000000000000000000009A -:10D69000000000000000000000000000000000008A -:10D6A000000000000000000000000000000000007A -:10D6B000000000000000000000000000000000006A -:10D6C000000000000000000000000000000000005A -:10D6D000000000000000000000000000000000004A -:10D6E000000000000000000000000000000000003A -:10D6F000000000000000000000000000000000002A -:10D700000000000000000000000000000000000019 -:10D710000000000000000000000000000000000009 -:10D7200000000000000000000000000000000000F9 -:10D7300000000000000000000000000000000000E9 -:10D7400000000000000000000000000000000000D9 -:10D7500000000000000000000000000000000000C9 -:10D7600000000000000000000000000000000000B9 -:10D7700000000000000000000000000000000000A9 -:10D780000000000000000000000000000000000099 -:10D790000000000000000000000000000000000089 -:10D7A0000000000000000000000000000000000079 -:10D7B0000000000000000000000000000000000069 -:10D7C0000000000000000000000000000000000059 -:10D7D0000000000000000000000000000000000049 -:10D7E0000000000000000000000000000000000039 -:10D7F0000000000000000000000000000000000029 -:10D800000000000000000000000000000000000018 -:10D810000000000000000000000000000000000008 -:10D8200000000000000000000000000000000000F8 -:10D8300000000000000000000000000000000000E8 -:10D8400000000000000000000000000000000000D8 -:10D8500000000000000000000000000000000000C8 -:10D8600000000000000000000000000000000000B8 -:10D8700000000000000000000000000000000000A8 -:10D880000000000000000000000000000000000098 -:10D890000000000000000000000000000000000088 -:10D8A0000000000000000000000000000000000078 -:10D8B0000000000000000000000000000000000068 -:10D8C0000000000000000000000000000000000058 -:10D8D0000000000000000000000000000000000048 -:10D8E0000000000000000000000000000000000038 -:10D8F0000000000000000000000000000000000028 -:10D900000000000000000000000000000000000017 -:10D910000000000000000000000000000000000007 -:10D9200000000000000000000000000000000000F7 -:10D9300000000000000000000000000000000000E7 -:10D9400000000000000000000000000000000000D7 -:10D9500000000000000000000000000000000000C7 -:10D9600000000000000000000000000000000000B7 -:10D9700000000000000000000000000000000000A7 -:10D980000000000000000000000000000000000097 -:10D990000000000000000000000000000000000087 -:10D9A0000000000000000000000000000000000077 -:10D9B0000000000000000000000000000000000067 -:10D9C0000000000000000000000000000000000057 -:10D9D0000000000000000000000000000000000047 -:10D9E0000000000000000000000000000000000037 -:10D9F0000000000000000000000000000000000027 -:10DA00000000000000000000000000000000000016 -:10DA10000000000000000000000000000000000006 -:10DA200000000000000000000000000000000000F6 -:10DA300000000000000000000000000000000000E6 -:10DA400000000000000000000000000000000000D6 -:10DA500000000000000000000000000000000000C6 -:10DA600000000000000000000000000000000000B6 -:10DA700000000000000000000000000000000000A6 -:10DA80000000000000000000000000000000000096 -:10DA90000000000000000000000000000000000086 -:10DAA0000000000000000000000000000000000076 -:10DAB0000000000000000000000000000000000066 -:10DAC0000000000000000000000000000000000056 -:10DAD0000000000000000000000000000000000046 -:10DAE0000000000000000000000000000000000036 -:10DAF0000000000000000000000000000000000026 -:10DB00000000000000000000000000000000000015 -:10DB10000000000000000000000000000000000005 -:10DB200000000000000000000000000000000000F5 -:10DB300000000000000000000000000000000000E5 -:10DB400000000000000000000000000000000000D5 -:10DB500000000000000000000000000000000000C5 -:10DB600000000000000000000000000000000000B5 -:10DB700000000000000000000000000000000000A5 -:10DB80000000000000000000000000000000000095 -:10DB90000000000000000000000000000000000085 -:10DBA0000000000000000000000000000000000075 -:10DBB0000000000000000000000000000000000065 -:10DBC0000000000000000000000000000000000055 -:10DBD0000000000000000000000000000000000045 -:10DBE0000000000000000000000000000000000035 -:10DBF0000000000000000000000000000000000025 -:10DC00000000000000000000000000000000000014 -:10DC10000000000000000000000000000000000004 -:10DC200000000000000000000000000000000000F4 -:10DC300000000000000000000000000000000000E4 -:10DC400000000000000000000000000000000000D4 -:10DC500000000000000000000000000000000000C4 -:10DC600000000000000000000000000000000000B4 -:10DC700000000000000000000000000000000000A4 -:10DC80000000000000000000000000000000000094 -:10DC90000000000000000000000000000000000084 -:10DCA0000000000000000000000000000000000074 -:10DCB0000000000000000000000000000000000064 -:10DCC0000000000000000000000000000000000054 -:10DCD0000000000000000000000000000000000044 -:10DCE0000000000000000000000000000000000034 -:10DCF0000000000000000000000000000000000024 -:10DD00000000000000000000000000000000000013 -:10DD10000000000000000000000000000000000003 -:10DD200000000000000000000000000000000000F3 -:10DD300000000000000000000000000000000000E3 -:10DD400000000000000000000000000000000000D3 -:10DD500000000000000000000000000000000000C3 -:10DD600000000000000000000000000000000000B3 -:10DD700000000000000000000000000000000000A3 -:10DD80000000000000000000000000000000000093 -:10DD90000000000000000000000000000000000083 -:10DDA0000000000000000000000000000000000073 -:10DDB0000000000000000000000000000000000063 -:10DDC0000000000000000000000000000000000053 -:10DDD0000000000000000000000000000000000043 -:10DDE0000000000000000000000000000000000033 -:10DDF0000000000000000000000000000000000023 -:10DE00000000000000000000000000000000000012 -:10DE10000000000000000000000000000000000002 -:10DE200000000000000000000000000000000000F2 -:10DE300000000000000000000000000000000000E2 -:10DE400000000000000000000000000000000000D2 -:10DE500000000000000000000000000000000000C2 -:10DE600000000000000000000000000000000000B2 -:10DE700000000000000000000000000000000000A2 -:10DE80000000000000000000000000000000000092 -:10DE90000000000000000000000000000000000082 -:10DEA0000000000000000000000000000000000072 -:10DEB0000000000000000000000000000000000062 -:10DEC0000000000000000000000000000000000052 -:10DED0000000000000000000000000000000000042 -:10DEE0000000000000000000000000000000000032 -:10DEF0000000000000000000000000000000000022 -:10DF00000000000000000000000000000000000011 -:10DF10000000000000000000000000000000000001 -:10DF200000000000000000000000000000000000F1 -:10DF300000000000000000000000000000000000E1 -:10DF400000000000000000000000000000000000D1 -:10DF500000000000000000000000000000000000C1 -:10DF600000000000000000000000000000000000B1 -:10DF700000000000000000000000000000000000A1 -:10DF80000000000000000000000000000000000091 -:10DF90000000000000000000000000000000000081 -:10DFA0000000000000000000000000000000000071 -:10DFB0000000000000000000000000000000000061 -:10DFC0000000000000000000000000000000000051 -:10DFD0000000000000000000000000000000000041 -:10DFE0000000000000000000000000000000000031 -:10DFF0000000000000000000000000000000000021 -:10E000000000000000000000000000000000000010 -:10E010000000000000000000000000000000000000 -:10E0200000000000000000000000000000000000F0 -:10E0300000000000000000000000000000000000E0 -:10E0400000000000000000000000000000000000D0 -:10E0500000000000000000000000000000000000C0 -:10E0600000000000000000000000000000000000B0 -:10E0700000000000000000000000000000000000A0 -:10E080000000000000000000000000000000000090 -:10E090000000000000000000000000000000000080 -:10E0A0000000000000000000000000000000000070 -:10E0B0000000000000000000000000000000000060 -:10E0C0000000000000000000000000000000000050 -:10E0D0000000000000000000000000000000000040 -:10E0E0000000000000000000000000000000000030 -:10E0F0000000000000000000000000000000000020 -:10E10000000000000000000000000000000000000F -:10E1100000000000000000000000000000000000FF -:10E1200000000000000000000000000000000000EF -:10E1300000000000000000000000000000000000DF -:10E1400000000000000000000000000000000000CF -:10E1500000000000000000000000000000000000BF -:10E1600000000000000000000000000000000000AF -:10E17000000000000000000000000000000000009F -:10E18000000000000000000000000000000000008F -:10E19000000000000000000000000000000000007F -:10E1A000000000000000000000000000000000006F -:10E1B000000000000000000000000000000000005F -:10E1C000000000000000000000000000000000004F -:10E1D000000000000000000000000000000000003F -:10E1E000000000000000000000000000000000002F -:10E1F000000000000000000000000000000000809F -:10E20000000000000000000000000000000000000E -:10E2100000000000000000000000000000000000FE -:10E220000000000A000000000000000000000000E4 -:10E2300010000003000000000000000D0000000DB1 -:10E240003C020801244295A03C030801246397DCAA -:10E25000AC4000000043202B1480FFFD244200044A -:10E260003C1D080037BD9FFC03A0F0213C100800B6 -:10E27000261032103C1C0801279C95A00E0012BEEF -:10E28000000000000000000D3C02800030A5FFFFF0 -:10E2900030C600FF344301803C0880008D0901B87E -:10E2A0000520FFFE00000000AC6400002404000212 -:10E2B000A4650008A066000AA064000BAC67001803 -:10E2C0003C03100003E00008AD0301B83C0560000A -:10E2D0008CA24FF80440FFFE00000000ACA44FC029 -:10E2E0003C0310003C040200ACA44FC403E000084F -:10E2F000ACA34FF89486000C00A050212488001491 -:10E3000000062B0200051080004448210109182B4B -:10E310001060001100000000910300002C6400094F -:10E320005080000991190001000360803C0D080134 -:10E3300025AD9234018D58218D67000000E0000862 -:10E340000000000091190001011940210109302B42 -:10E3500054C0FFF29103000003E000080000102108 -:10E360000A000CCC25080001910F0001240E000AC0 -:10E3700015EE00400128C8232F38000A1700003D81 -:10E38000250D00028D580000250F0006370E0100F4 -:10E39000AD4E0000910C000291AB000191A400026F -:10E3A00091A60003000C2E00000B3C0000A71025D6 -:10E3B00000041A000043C8250326C025AD580004F8 -:10E3C000910E000691ED000191E7000291E5000336 -:10E3D000000E5E00000D6400016C30250007220075 -:10E3E00000C41025004518252508000A0A000CCC99 -:10E3F000AD430008910F000125040002240800022B -:10E4000055E80001012020210A000CCC00804021A9 -:10E41000910C0001240B0003158B00160000000076 -:10E420008D580000910E000225080003370D0008EA -:10E43000A14E00100A000CCCAD4D00009119000156 -:10E44000240F0004172F000B0000000091070002AA -:10E45000910400038D43000000072A0000A410254A -:10E460003466000425080004AD42000C0A000CCC00 -:10E47000AD46000003E000082402000127BDFFE8CC -:10E48000AFBF0014AFB000100E00164E0080802108 -:10E490003C0480083485008090A600052403FFFE1C -:10E4A0000200202100C310248FBF00148FB0001081 -:10E4B000A0A200050A00165827BD001827BDFFE8D6 -:10E4C000AFB00010AFBF00140E000FD40080802149 -:10E4D0003C06800834C5008090A40000240200504F -:10E4E000308300FF106200073C09800002002021F9 -:10E4F0008FBF00148FB00010AD2001800A00108F74 -:10E5000027BD0018240801003C07800002002021DC -:10E510008FBF00148FB00010ACE801800A00108F8C -:10E5200027BD001827BDFF783C058008AFBE0080DE -:10E53000AFB7007CAFB3006CAFB10064AFBF008475 -:10E54000AFB60078AFB50074AFB40070AFB200687A -:10E55000AFB0006034A600803C0580008CB201287A -:10E5600090C400098CA701043C020001309100FF17 -:10E5700000E218240000B8210000F021106000071C -:10E58000000098213C0908008D2931F02413000176 -:10E59000252800013C010800AC2831F0ACA0008423 -:10E5A00090CC0005000C5827316A0001154000721C -:10E5B000AFA0005090CD00002406002031A400FF41 -:10E5C00010860018240E0050108E009300000000EA -:10E5D0003C1008008E1000DC260F00013C010800F2 -:10E5E000AC2F00DC0E0016C7000000000040182110 -:10E5F0008FBF00848FBE00808FB7007C8FB60078FD -:10E600008FB500748FB400708FB3006C8FB2006848 -:10E610008FB100648FB000600060102103E000083B -:10E6200027BD00880000000D3C1F8000AFA0003017 -:10E6300097E501168FE201043C04002030B9FFFF8A -:10E64000004438240007182B00033140AFA60030E7 -:10E650008FF5010437F80C003C1600400338802188 -:10E6600002B6A02434C40040128000479215000D69 -:10E6700032A800201500000234860080008030217E -:10E6800014C0009FAFA600303C0D800835A6008066 -:10E6900090CC0008318B0040516000063C06800899 -:10E6A000240E0004122E00A8240F0012122F003294 -:10E6B0003C06800834C401003C0280009447011AE3 -:10E6C0009619000E909F00088E18000830E3FFFF97 -:10E6D00003F9B00432B40004AFB6005CAFA3005835 -:10E6E0008E1600041280002EAFB8005434C3008090 -:10E6F000906800083105004014A0002500000000CB -:10E700008C70005002D090230640000500000000ED -:10E710008C71003402D1A82306A201678EE20008A2 -:10E72000126000063C1280003C1508008EB531F4E2 -:10E7300026B600013C010800AC3631F4AE4000447E -:10E74000240300018FBF00848FBE00808FB7007C40 -:10E750008FB600788FB500748FB400708FB3006CE3 -:10E760008FB200688FB100648FB00060006010212C -:10E7700003E0000827BD00880E000D2800002021BE -:10E780000A000D75004018210A000D9500C02021D7 -:10E790000E00171702C020211440FFE10000000006 -:10E7A0003C0B8008356400808C8A003402CA482300 -:10E7B0000520001D000000003C1E08008FDE310017 -:10E7C00027D700013C010800AC3731001260000679 -:10E7D000024020213C1408008E9431F42690000160 -:10E7E0003C010800AC3031F40E00164E3C1E80088F -:10E7F00037CD008091B700250240202136EE00047D -:10E800000E001658A1AE00250E000CAC02402021CF -:10E810000A000DCA240300013C17080126F796A040 -:10E820000A000D843C1F80008C86003002C66023E5 -:10E830001980000C2419000C908F004F3C14080024 -:10E840008E94310032B500FC35ED0001268E0001BA -:10E850003C010800AC2E3100A08D004FAFA0005845 -:10E860002419000CAFB900308C9800300316A02397 -:10E870001A80010B8FA300580074F82A17E0FFD309 -:10E88000000000001074002A8FA5005802D4B021A7 -:10E8900000B410233044FFFFAFA4005832A8000298 -:10E8A0001100002E32AB00103C15800836B00080FD -:10E8B0009216000832D30040526000FB8EE200083E -:10E8C0000E00164E02402021240A0018A20A000958 -:10E8D000921100052409FFFE024020210229902404 -:10E8E0000E001658A2120005240400390000282149 -:10E8F0000E0016F2240600180A000DCA24030001B7 -:10E9000092FE000C3C0A800835490080001EBB00C6 -:10E910008D27003836F10081024020213225F08118 -:10E920000E000C9B30C600FF0A000DC10000000065 -:10E930003AA7000130E300011460FFA402D4B02123 -:10E940000A000E1D00000000024020210E001734B6 -:10E95000020028210A000D75004018211160FF7087 -:10E960003C0F80083C0D800835EE00808DC40038D7 -:10E970008FA300548DA60004006660231D80FF68ED -:10E98000000000000064C02307020001AFA400548F -:10E990003C1F08008FFF31E433F9000113200015FC -:10E9A0008FAC00583C07800094E3011A10600012FD -:10E9B0003C0680080E002161024020213C03080132 -:10E9C000906396D13064000214800145000000007D -:10E9D000306C0004118000078FAC0058306600FBDB -:10E9E0003C010801A02696D132B500FCAFA000582A -:10E9F0008FAC00583C06800834D30080AFB40018B8 -:10EA0000AFB60010AFAC00143C088000950B01209D -:10EA10008E6F0030966A005C8FA3005C8FBF003061 -:10EA20003169FFFF3144FFFF8FAE005401341021E4 -:10EA3000350540000064382B0045C82103E7C02598 -:10EA4000AFB90020AFAF0028AFB80030AFAF00249F -:10EA5000AFA0002CAFAE0034926D000831B40008B6 -:10EA6000168000BB020020218EE200040040F8095D -:10EA700027A400108FAF003031F300025660000170 -:10EA800032B500FE3C048008349F008093F90008F2 -:10EA900033380040530000138FA400248C850004F9 -:10EAA0008FA7005410A700D52404001432B0000131 -:10EAB0001200000C8FA400242414000C1234011A3C -:10EAC0002A2D000D11A001022413000E240E000AAD -:10EAD000522E0001241E00088FAF002425E40001FF -:10EAE000AFA400248FAA00143C0B80083565008079 -:10EAF000008A48218CB10030ACA9003090A4004EAF -:10EB00008CA700303408FFFF0088180400E3F821C8 -:10EB1000ACBF00348FA600308FB900548FB8005CB2 -:10EB200030C200081040000B033898218CAC002044 -:10EB3000119300D330C600FF92EE000C8FA7003473 -:10EB400002402021000E6B0035B400800E000C9BAB -:10EB50003285F0803C028008345000808E0F0030F7 -:10EB600001F1302318C00097264800803C070800B8 -:10EB70008CE731E42404FF80010418243118007F5D -:10EB80003C1F80003C19800430F10001AFE300908D -:10EB900012200006031928213C030801906396D136 -:10EBA00030690008152000C6306A00F73C10800864 -:10EBB00036040080908C004F318B000115600042BC -:10EBC000000000003C0608008CC6319830CE0010D2 -:10EBD00051C0004230F9000190AF006B55E0003F9A -:10EBE00030F9000124180001A0B8006B3C1180002E -:10EBF0009622007A24470064A48700123C0D800806 -:10EC000035A5008090B40008329000401600000442 -:10EC10003C03800832AE000115C0008B00000000EC -:10EC2000346400808C86002010D3000A3463010015 -:10EC30008C67000002C7782319E000978FBF00544B -:10EC4000AC93002024130001AC760000AFB3005059 -:10EC5000AC7F000417C0004E000000008FA90050D8 -:10EC60001520000B000000003C030801906396D1C2 -:10EC7000306A00011140002E8FAB0058306400FE56 -:10EC80003C010801A02496D10A000D75000018214E -:10EC90000E000CAC024020210A000F1300000000FF -:10ECA0000A000E200000A0210040F80924040017EB -:10ECB0000A000DCA240300010040F80924040016CC -:10ECC0000A000DCA240300019094004F240DFFFE9A -:10ECD000028D2824A085004F30F900011320000682 -:10ECE0003C0480083C030801906396D1307F0010FB -:10ECF00017E00051306800EF34900080240A0001D2 -:10ED0000024020210E00164EA60A00129203002592 -:10ED100024090001AFA90050346200010240202103 -:10ED20000E001658A20200250A000EF93C0D8008BC -:10ED30001160FE83000018218FA5003030AC000464 -:10ED40001180FE2C8FBF00840A000DCB240300012C -:10ED500027A500380E000CB6AFA000385440FF4382 -:10ED60008EE200048FB40038329001005200FF3F61 -:10ED70008EE200048FA3003C8E6E0058006E682364 -:10ED800005A3FF39AE6300580A000E948EE200041A -:10ED90000E00164E024020213C038008346800809B -:10EDA000024020210E001658A11E000903C0302188 -:10EDB000240400370E0016F2000028210A000F116B -:10EDC0008FA900508FAB00185960FF8D3C0D800853 -:10EDD0000E00164E02402021920C00252405000151 -:10EDE000AFA5005035820004024020210E001658C5 -:10EDF000A20200250A000EF93C0D800812240059D9 -:10EE00002A2300151060004D240900162408000C68 -:10EE10005628FF2732B000013C0A8008914C001BA5 -:10EE20002406FFBD241E000E01865824A14B001BA2 -:10EE30000A000EA532B000013C010801A02896D1BD -:10EE40000A000EF93C0D80088CB500308EFE0008DB -:10EE50002404001826B6000103C0F809ACB600303F -:10EE60003C030801906396D13077000116E0FF81E2 -:10EE7000306A00018FB200300A000D753243000481 -:10EE80003C1080009605011A50A0FF2B34C60010DC -:10EE90000A000EC892EE000C8C6200001456FF6D42 -:10EEA000000000008C7800048FB9005403388823D8 -:10EEB0000621FF638FBF00540A000F0E0000000000 -:10EEC0003C010801A02A96D10A000F3030F9000158 -:10EED0001633FF028FAF00240A000EB0241E00106C -:10EEE0000E00164E024020213C0B80083568008041 -:10EEF00091090025240A0001AFAA0050353300040F -:10EF0000024020210E001658A11300253C050801DF -:10EF100090A596D130A200FD3C010801A02296D117 -:10EF20000A000E6D004018212411000E53D1FEEA94 -:10EF3000241E00100A000EAF241E00165629FEDC07 -:10EF400032B000013C0A8008914C001B2406FFBD32 -:10EF5000241E001001865824A14B001B0A000EA598 -:10EF600032B000010A000EA4241E00123C038000EF -:10EF70008C6201B80440FFFE24040800AC6401B8B0 -:10EF800003E000080000000030A5FFFF30C6FFFFCF -:10EF90003C0780008CE201B80440FFFE34EA0180A7 -:10EFA000AD440000ACE400203C0480089483004899 -:10EFB0003068FFFF11000016AF88000824AB001274 -:10EFC000010B482B512000133C04800034EF01005A -:10EFD00095EE00208F890000240D001A31CCFFFF30 -:10EFE00031274000A14D000B10E000362583FFFEC5 -:10EFF0000103C02B170000348F9900048F88000490 -:10F00000A5430014350700010A001003AF87000470 -:10F010003C04800024030003348201808F890000B7 -:10F020008F870004A043000B3C088000350C018052 -:10F03000A585000EA585001A8F85000C30EB800099 -:10F04000A5890010AD850028A58600081160000F75 -:10F050008F85001435190100972A00163158FFFCDE -:10F06000270F000401E870218DCD400031A6FFFF7D -:10F0700014C000072403BFFF3C02FFFF34487FFF9A -:10F0800000E83824AF8700048F8500142403BFFFF5 -:10F090003C04800000E3582434830180A46B0026E4 -:10F0A000AC69002C10A0000300054C02A465001000 -:10F0B000A46900263C071000AC8701B803E00008F3 -:10F0C000000000008F990004240AFFFE032A382460 -:10F0D0000A001003AF87000427BDFFE88FA20028B5 -:10F0E00030A5FFFF30C6FFFFAFBF0010AF87000C99 -:10F0F000AF820014AF8000040E000FDBAF80000071 -:10F100008FBF001027BD001803E00008AF80001477 -:10F110003C06800034C4007034C701008C8A0000B3 -:10F1200090E500128F84000027BDFFF030A300FFA0 -:10F13000000318823082400010400037246500032D -:10F140000005C8800326C0218F0E4000246F0004F4 -:10F15000000F6880AFAE000001A660218D8B4000DB -:10F16000AFAB000494E900163128FFFC01063821FA -:10F170008CE64000AFA600088FA9000800003021EF -:10F18000000028213C07080024E701000A0010675E -:10F19000240800089059000024A500012CAC000CA4 -:10F1A0000079C0210018788001E770218DCD000022 -:10F1B0001180000600CD302603A5102114A8FFF50C -:10F1C00000051A005520FFF4905900003C0480000F -:10F1D000348700703C0508008CA531048CE30000E6 -:10F1E0002CA2002010400009006A38230005488046 -:10F1F0003C0B0800256B3108012B402124AA00019B -:10F20000AD0700003C010800AC2A310400C0102109 -:10F2100003E0000827BD0010308220001040000BE2 -:10F2200000055880016648218D24400024680004B0 -:10F2300000083880AFA4000000E618218C6540006B -:10F24000AFA000080A001057AFA500040000000D91 -:10F250000A0010588FA9000827BDFFE03C07800076 -:10F2600034E60100AFBF001CAFB20018AFB100140C -:10F27000AFB0001094C5000E8F87000030A4FFFFD0 -:10F280002483000430E2400010400010AF830028C7 -:10F290003C09002000E940241100000D30EC800002 -:10F2A0008F8A0004240BBFFF00EB38243543100085 -:10F2B000AF87000030F220001640000B3C1900041C -:10F2C000241FFFBF0A0010B7007F102430EC80001D -:10F2D000158000423C0E002030F220001240FFF862 -:10F2E0008F8300043C19000400F9C0241300FFF5CB -:10F2F000241FFFBF34620040AF82000430E20100EF -:10F300001040001130F010008F83002C10600006B8 -:10F310003C0F80003C05002000E52024148000C044 -:10F320003C0800043C0F800035EE010095CD001E26 -:10F3300095CC001C31AAFFFF000C5C00014B482556 -:10F34000AF89000C30F010001200000824110001F9 -:10F3500030F100201620008B3C18100000F890249B -:10F36000164000823C040C002411000130E801002A -:10F370001500000B3C0900018F85000430A94000F6 -:10F38000152000073C0900013C0C1F0100EC58242B -:10F390003C0A1000116A01183C1080003C09000171 -:10F3A00000E9302410C000173C0B10003C18080086 -:10F3B0008F1800243307000214E0014024030001E9 -:10F3C0008FBF001C8FB200188FB100148FB00010D7 -:10F3D0000060102103E0000827BD002000EE682433 -:10F3E00011A0FFBE30F220008F8F00043C11FFFF00 -:10F3F00036307FFF00F0382435E380000A0010A685 -:10F40000AF87000000EB102450400065AF8000245F -:10F410008F8C002C3C0D0F0000ED18241580008807 -:10F42000AF83001030E8010011000086938F0010B8 -:10F430003C0A0200106A00833C1280003650010032 -:10F44000920500139789002A3626000230AF00FF8C -:10F4500025EE0004000E19C03C0480008C9801B811 -:10F460000700FFFE34880180AD0300003C198008CE -:10F47000AC830020973100483225FFFF10A0015CCB -:10F48000AF8500082523001200A3F82B53E0015993 -:10F490008F850004348D010095AC00202402001AF1 -:10F4A00030E44000318BFFFFA102000B108001927D -:10F4B0002563FFFE00A3502B154001908F8F0004A1 -:10F4C000A50300148F88000435050001AF850004F2 -:10F4D0003C08800035190180A729000EA729001AD1 -:10F4E0008F89000C30B18000A7270010AF290028B9 -:10F4F000A72600081220000E3C04800035020100FF -:10F50000944C0016318BFFFC256400040088182100 -:10F510008C7F400033E6FFFF14C000053C048000F0 -:10F520003C0AFFFF354D7FFF00AD2824AF85000466 -:10F53000240EBFFF00AE402434850180A4A800261D -:10F54000ACA7002C3C071000AC8701B800001821C4 -:10F550008FBF001C8FB200188FB100148FB0001045 -:10F560000060102103E0000827BD00203C020BFFD3 -:10F5700000E41824345FFFFF03E3C82B5320FF7B14 -:10F58000241100013C0608008CC6002C24C5000193 -:10F590003C010800AC25002C0A0010D42411000501 -:10F5A0008F85002410A0002FAF80001090A30000D2 -:10F5B000146000792419000310A0002A30E601002D -:10F5C00010C000CC8F860010241F000210DF00C97D -:10F5D0008F8B000C3C0708008CE7003824E4FFFF09 -:10F5E00014E0000201641824000018213C0D0800FA -:10F5F00025AD0038006D1021904C00048F85002847 -:10F6000025830004000321C030A5FFFF3626000239 -:10F610000E000FDB000000000A00114D0000182151 -:10F6200000E8302414C0FF403C0F80000E00103D65 -:10F63000000000008F8700000A0010CAAF82000C93 -:10F64000938F00103C18080127189620000F90C0D7 -:10F6500002588021AF9000248F85002414A0FFD38E -:10F66000AF8F00103C0480008C86400030C5010044 -:10F6700010A000BC322300043C0C08008D8C002438 -:10F6800024120004106000C23190000D3C04800080 -:10F690008C8D40003402FFFF11A201003231FFFBCC -:10F6A0008C884000310A01005540000124110010EF -:10F6B00030EE080011C000BE2419FFFB8F9800280F -:10F6C0002F0F03EF51E000010219802430E90100FF -:10F6D00011200014320800018F87002C14E000FB79 -:10F6E0008F8C000C3C05800034AB0100917F00132F -:10F6F00033E300FF246A00042403FFFE0203802496 -:10F70000000A21C012000002023230253226FFFF1B -:10F710000E000FDB9785002A1200FF290000182138 -:10F72000320800011100000D32180004240E0001FF -:10F73000120E0002023230253226FFFF9785002A82 -:10F740000E000FDB00002021240FFFFE020F80249B -:10F750001200FF1B00001821321800045300FF188C -:10F760002403000102323025241200045612000145 -:10F770003226FFFF9785002A0E000FDB24040100CC -:10F780002419FFFB021988241220FF0D0000182104 -:10F790000A0010E9240300011079009C00003021C8 -:10F7A00090AD00012402000211A200BE30EA004028 -:10F7B00090B90001241800011338007F30E900409F -:10F7C0008CA600049785002A00C020210E000FDBC4 -:10F7D0003626000200004021010018218FBF001CC6 -:10F7E0008FB200188FB100148FB00010006010218C -:10F7F00003E0000827BD0020360F010095EE000C45 -:10F8000031CD020015A0FEE63C0900013C1880083D -:10F81000971200489789002A362600023248FFFFD7 -:10F82000AF8800083C0380008C7101B80620FFFE01 -:10F83000346A0180AD4000001100008E3C0F800052 -:10F84000253F0012011FC82B1320008B240E00033C -:10F85000346C0100958B00202402001A30E4400033 -:10F860003163FFFFA142000B108000A72463FFFE5D -:10F870000103682B15A000A52408FFFE34A5000194 -:10F88000A5430014AF8500043C0480002412BFFF90 -:10F8900000B2802434850180A4A9000EA4A9001A16 -:10F8A000A4A60008A4B00026A4A700103C071000DE -:10F8B000AC8701B80A00114D000018213C038000FC -:10F8C00034640100949F000E3C1908008F3900D861 -:10F8D0002404008033E5FFFF273100013C010800CC -:10F8E000AC3100D80E000FDB240600030A00114DD6 -:10F8F00000001821240A000210CA00598F85002830 -:10F900003C0308008C6300D0240E0001106E005EE2 -:10F910002CCF000C24D2FFFC2E5000041600002136 -:10F9200000002021241800021078001B2CD9000CA4 -:10F9300024DFFFF82FE900041520FF330000202109 -:10F9400030EB020051600004000621C054C00022C8 -:10F9500030A5FFFF000621C030A5FFFF0A00117D82 -:10F96000362600023C0908008D29002431300001B0 -:10F970005200FEF7000018219785002A3626000263 -:10F980000E000FDB000020210A00114D000018219D -:10F990000A00119C241200021320FFE624DFFFF866 -:10F9A0000000202130A5FFFF0A00117D362600024D -:10F9B0000A0011AC021980245120FF828CA6000499 -:10F9C0003C05080190A5962110A0FF7E24080001A7 -:10F9D0000A0011F0010018210E000FDB3226000191 -:10F9E0008F8600108F8500280A00124F000621C064 -:10F9F0008F8500043C18800024120003371001801A -:10FA0000A212000B0A00112E3C08800090A30001F6 -:10FA1000241100011071FF70240800012409000264 -:10FA20005069000430E60040240800010A0011F08B -:10FA30000100182150C0FFFD240800013C0C80008B -:10FA4000358B01009563001094A40002307FFFFF06 -:10FA5000509FFF62010018210A001284240800014F -:10FA60002CA803EF1100FE56240300010A001239EE -:10FA700000000000240E000335EA0180A14E000BB7 -:10FA80000A00121C3C04800011E0FFA2000621C005 -:10FA900030A5FFFF0A00117D362600020A0011A5DD -:10FAA000241100201140FFC63C1280003650010096 -:10FAB000960F001094AE000231E80FFF15C8FFC08A -:10FAC000000000000A0011E690B900013C060800A1 -:10FAD0008CC6003824C4FFFF14C00002018418241F -:10FAE000000018213C0D080025AD0038006D1021E4 -:10FAF0000A0011B6904300048F8F0004240EFFFE0D -:10FB00000A00112C01EE28242408FFFE0A00121A14 -:10FB100000A8282427BDFFC8AFB00010AFBF003435 -:10FB20003C10600CAFBE0030AFB7002CAFB6002861 -:10FB3000AFB50024AFB40020AFB3001CAFB20018C3 -:10FB4000AFB100148E0E5000240FFF7F3C068000E2 -:10FB500001CF682435AC380C240B0003AE0C5000E8 -:10FB6000ACCB00083C010800AC2000200E001819A6 -:10FB7000000000003C0A0010354980513C06601628 -:10FB8000AE09537C8CC700003C0860148D0500A0B2 -:10FB90003C03FFFF00E320243C02535300051FC237 -:10FBA0001482000634C57C000003A08002869821E0 -:10FBB0008E7200043C116000025128218CBF007C31 -:10FBC0008CA200783C1E600037C420203C05080150 -:10FBD00024A59264AF820018AF9F001C0E0016DDB2 -:10FBE0002406000A3C190001273996203C01080030 -:10FBF000AC3931DC0E0020D4AF8000148FD7080858 -:10FC00002418FFF03C15570902F8B02412D502F56C -:10FC100024040001AF80002C3C1480003697018042 -:10FC20003C1E080127DE9624369301008E900000CA -:10FC30003205000310A0FFFD3207000110E000882C -:10FC4000320600028E7100283C048000AE91002034 -:10FC50008E6500048E66000000A0382100C040219F -:10FC60008C8301B80460FFFE3C0B0010240A0800DE -:10FC700000AB4824AC8A01B8552000E0240BBFFF3C -:10FC80009675000E3C1208008E52002030AC4000E9 -:10FC900032AFFFFF264E000125ED00043C010800B5 -:10FCA000AC2E0020118000E8AF8D00283C18002009 -:10FCB00000B8B02412C000E530B980002408BFFFAE -:10FCC00000A8382434C81000AF87000030E62000B8 -:10FCD00010C000E92409FFBF3C03000400E328240E -:10FCE00010A00002010910243502004030EA010092 -:10FCF00011400010AF8200048F8B002C11600007B0 -:10FD00003C0D002000ED6024118000043C0F000435 -:10FD100000EF702411C00239000000009668001E38 -:10FD20009678001C3115FFFF0018B40002B690252C -:10FD3000AF92000C30F910001320001324150001BD -:10FD400030FF002017E0000A3C04100000E41024FB -:10FD50001040000D3C0A0C003C090BFF00EA18247F -:10FD60003525FFFF00A3302B10C0000830ED010047 -:10FD70003C0C08008D8C002C24150005258B0001FF -:10FD80003C010800AC2B002C30ED010015A0000B4D -:10FD90003C0500018F85000430AE400055C00007CF -:10FDA0003C0500013C161F0100F690243C0F10009A -:10FDB000124F01CE000000003C05000100E5302498 -:10FDC00010C000AF3C0C10003C1F08008FFF002447 -:10FDD00033E90002152000712403000100601021A6 -:10FDE000104000083C0680003C08800035180100E7 -:10FDF0008F0F00243C056020ACAF00140000000011 -:10FE00003C0680003C194000ACD9013800000000DD -:10FE10005220001332060002262B0140262C0080BF -:10FE2000240EFF80016E2024018E6824000D1940ED -:10FE3000318A007F0004A9403172007F3C16200007 -:10FE400036C20002006A482502B2382500E2882541 -:10FE50000122F825ACDF0830ACD1083032060002B0 -:10FE600010C0FF723C188000370501408CA80000CC -:10FE700024100040AF08002090AF000831E300706C -:10FE8000107000D428790041532000082405006038 -:10FE9000241100201071000E3C0A40003C09800033 -:10FEA000AD2A01780A001304000000001465FFFB6E -:10FEB0003C0A40000E001FF1000000003C0A400018 -:10FEC0003C098000AD2A01780A00130400000000FC -:10FED00090A90009241F00048CA70000312800FF0E -:10FEE000111F01B22503FFFA2C7200061240001404 -:10FEF0003C0680008CA9000494A4000A310500FF90 -:10FF000000095E022D6A00083086FFFF15400002DE -:10FF10002567000424070003240C000910AC01FA33 -:10FF200028AD000A11A001DE2410000A240E0008EA -:10FF300010AE0028000731C000C038213C06800008 -:10FF40008CD501B806A0FFFE34D20180AE47000078 -:10FF500034CB0140916E0008240300023C0A4000AB -:10FF600031C400FF00046A0001A86025A64C000807 -:10FF7000A243000B9562000A3C0810003C09800077 -:10FF8000A64200108D670004AE470024ACC801B83B -:10FF9000AD2A01780A001304000000003C0A80002A -:10FFA000354401009483000E3C0208008C4200D8C6 -:10FFB000240400803065FFFF245500013C01080047 -:10FFC000AC3500D80E000FDB240600030A001370C6 -:10FFD000000018210009320230D900FF2418000166 -:10FFE0001738FFD5000731C08F910020262200016D -:10FFF000AF8200200A0013C800C0382100CB2024A3 -:020000040001F9 -:10000000AF85000010800008AF860004240D87FF34 -:1000100000CD6024158000083C0E006000AE302446 -:1000200010C00005000000000E000D42000000009E -:100030000A001371000000000E0016050000000009 -:100040000A0013710000000030B980005320FF1F28 -:10005000AF8500003C02002000A2F82453E0FF1B03 -:10006000AF8500003C07FFFF34E47FFF00A4382485 -:100070000A00132B34C880000A001334010910242D -:1000800000EC58245160005AAF8000248F8D002C62 -:100090003C0E0F0000EE182415A00075AF83001071 -:1000A00030EF010011E00073939800103C12020041 -:1000B000107200703C06800034D9010093280013B0 -:1000C0009789002A36A60002311800FF271600047F -:1000D000001619C03C0480008C8501B804A0FFFE06 -:1000E00034880180AD0300003C158008AC830020FB -:1000F00096BF004833E5FFFF10A001BCAF850008A4 -:100100002523001200A3102B504001B98F85000455 -:10011000348D010095AC0020240B001A30E440001F -:10012000318AFFFFA10B000B108001BA2543FFFEAF -:1001300000A3702B15C001B88F9600048F8F0004A8 -:10014000A503001435E50001AF8500043C088000DC -:1001500035150180A6A9000EA6A9001A8F89000CEA -:1001600030BF8000A6A70010AEA90028A6A60008F0 -:1001700013E0000F3C0F8000350C0100958B00163A -:10018000316AFFFC25440004008818218C6240007D -:100190003046FFFF14C000072416BFFF3C0EFFFFD0 -:1001A00035CD7FFF00AD2824AF8500043C0F8000D3 -:1001B0002416BFFF00B6902435E50180A4B20026C6 -:1001C000ACA7002C3C071000ADE701B80A00137083 -:1001D000000018210E00165D000000003C0A4000DF -:1001E0003C098000AD2A01780A00130400000000D9 -:1001F0008F85002410A00027AF80001090A300007E -:10020000106000742409000310690101000030210E -:1002100090AE0001240D000211CD014230EF0040EC -:1002200090A90001241F0001113F000930E20040A5 -:100230008CA600049785002A00C020210E000FDB49 -:1002400036A60002000040210A00137001001821A8 -:100250005040FFF88CA600043C07080190E7962167 -:1002600010E0FFF4240800010A00137001001821B7 -:10027000939800103C1F080127FF96200018C8C063 -:10028000033F4021AF8800248F85002414A0FFDBAA -:10029000AF9800103C0480008C86400030C50100FF -:1002A00010A0008732AB00043C0C08008D8C0024A9 -:1002B00024160004156000033192000D241600027C -:1002C0003C0480008C8E4000340DFFFF11CD0113E3 -:1002D00032B5FFFB8C984000330F010055E0000160 -:1002E0002415001030E80800110000382409FFFB35 -:1002F0008F9F00282FF903EF53200001024990241B -:1003000030E2010010400014325F00018F87002CA2 -:1003100014E0010E8F8C000C3C0480003486010038 -:1003200090C5001330AA00FF25430004000321C03C -:100330002419FFFE025990241240000202B6302513 -:1003400032A6FFFF0E000FDB9785002A1240FEA3A6 -:1003500000001821325F000113E0000D3247000455 -:10036000240900011249000202B6302532A6FFFF1F -:100370009785002A0E000FDB000020212402FFFEDB -:10038000024290241240FE950000182132470004DA -:1003900050E0FE922403000102B63025241600042A -:1003A0005656000132A6FFFF9785002A0E000FDB8C -:1003B000240401002403FFFB0243A82412A0FE87AB -:1003C000000018210A001370240300010A0014B968 -:1003D0000249902410A0FFAF30E5010010A00017E3 -:1003E0008F8600102403000210C300148F84000CB9 -:1003F0003C0608008CC6003824CAFFFF14C0000267 -:10040000008A1024000010213C0E080025CE003880 -:10041000004E682191AC00048F850028258B0004D4 -:10042000000B21C030A5FFFF36A600020E000FDB37 -:10043000000000000A00137000001821240F0002C1 -:1004400010CF0088241600013C0308008C6300D004 -:100450001076008D8F85002824D9FFFC2F280004FA -:100460001500006300002021241F0002107F005DA2 -:100470002CC9000C24C3FFF82C6200041440FFE9CF -:100480000000202130EA020051400004000621C093 -:1004900054C0000530A5FFFF000621C030A5FFFFB6 -:1004A0000A00150436A600020E000FDB32A600017A -:1004B0008F8600108F8500280A001520000621C0B5 -:1004C0003C0A08008D4A0024315200015240FE438C -:1004D000000018219785002A36A600020E000FDBC7 -:1004E000000020210A001370000018219668000CFB -:1004F000311802005700FE313C0500013C1F800806 -:1005000097F900489789002A36A600023328FFFF92 -:10051000AF8800083C0380008C7501B806A0FFFE80 -:100520003C04800034820180AC400000110000B621 -:1005300024180003252A0012010A182B106000B2AB -:1005400000000000966F00203C0E8000240D001A71 -:1005500031ECFFFF35CA018030EB4000A14D000BAC -:10056000116000B02583FFFE0103902B164000AE02 -:100570002416FFFE34A50001A5430014AF85000436 -:100580002419BFFF00B94024A6E9000EA6E9001A0D -:10059000A6E60008A6E80026A6E700103C07100023 -:1005A000AE8701B80A001370000018213C048000D7 -:1005B0008C8201B80440FFFE349601802415001C93 -:1005C000AEC70000A2D5000B3C071000AC8701B8F5 -:1005D0003C0A40003C098000AD2A01780A0013045F -:1005E000000000005120FFA424C3FFF800002021D8 -:1005F00030A5FFFF0A00150436A600020E00103DCC -:10060000000000008F8700000A001346AF82000C34 -:1006100090A30001241500011075FF0B24080001B0 -:10062000240600021066000430E2004024080001A5 -:100630000A001370010018215040FFFD240800013A -:100640003C0C8000358B0100956A001094A40002D8 -:100650003143FFFF5083FDE1010018210A00158599 -:10066000240800018F8500282CB203EF1240FDDB27 -:10067000240300013C0308008C6300D02416000111 -:100680001476FF7624D9FFFC2CD8000C1300FF72DF -:10069000000621C030A5FFFF0A00150436A600029F -:1006A00010B00037240F000B14AFFE23000731C039 -:1006B000312600FF00065600000A4E0305220047BF -:1006C00030C6007F0006F8C03C16080126D69620EA -:1006D00003F68021A2000001A20000003C0F600090 -:1006E0008DF918202405000100C588040011302769 -:1006F0000326C024000731C000C03821ADF81820FF -:100700000A0013C8A60000028F850020000731C030 -:1007100024A2FFFF0A0013F6AF8200200A0014B2E1 -:100720002415002011E0FECC3C1980003728010080 -:100730009518001094B6000233120FFF16D2FEC6B1 -:10074000000000000A00148290A900013C0B080080 -:100750008D6B0038256DFFFF15600002018D1024A0 -:10076000000010213C080800250800380048C0217E -:10077000930F000425EE00040A0014C5000E21C0EA -:1007800000065202241F00FF115FFDEB000731C07D -:10079000000A20C03C0E080125CE9620008EA8211C -:1007A000009E602100095C02240D00013C076000EE -:1007B000A2AD0000AD860000A2AB00018CF21820B3 -:1007C00024030001014310040242B025ACF61820B6 -:1007D00000C038210A0013C8A6A900020A0015AA01 -:1007E000AF8000200A0012FFAF84002C8F85000428 -:1007F0003C1980002408000337380180A308000B4F -:100800000A00144D3C088000A2F8000B0A00155A9B -:100810002419BFFF8F9600042412FFFE0A00144B18 -:1008200002D228242416FFFE0A00155800B62824F8 -:100830003C038000346401008C85000030A2003E3F -:100840001440000800000000AC6000488C870000E5 -:1008500030E607C010C0000500000000AC60004C8E -:10086000AC60005003E0000824020001AC600054BA -:10087000AC6000408C880000310438001080FFF923 -:10088000000000002402000103E00008AC60004406 -:100890003C0380008C6201B80440FFFE3467018095 -:1008A000ACE4000024080001ACE00004A4E500086A -:1008B00024050002A0E8000A34640140A0E5000B12 -:1008C0009483000A14C00008A4E30010ACE00024E4 -:1008D0003C07800034E901803C041000AD20002872 -:1008E00003E00008ACE401B88C8600043C0410006E -:1008F000ACE600243C07800034E90180AD200028EC -:1009000003E00008ACE401B83C0680008CC201B8EA -:100910000440FFFE34C7018024090002ACE400005B -:10092000ACE40004A4E50008A0E9000A34C50140D5 -:10093000A0E9000B94A8000A3C041000A4E80010F1 -:10094000ACE000248CA30004ACE3002803E0000822 -:10095000ACC401B83C039000346200010082202541 -:100960003C038000AC6400208C65002004A0FFFEE6 -:100970000000000003E00008000000003C028000CE -:10098000344300010083202503E00008AC4400202C -:1009900027BDFFE03C098000AFBF0018AFB10014D5 -:1009A000AFB00010352801408D10000091040009FF -:1009B0009107000891050008308400FF30E600FF31 -:1009C00000061A002C820081008330251040002A86 -:1009D00030A50080000460803C0D080125AD928C9C -:1009E000018D58218D6A00000140000800000000C0 -:1009F0003C038000346201409445000A14A0001EAC -:100A00008F91FCBC9227000530E6000414C0001A48 -:100A1000000000000E00164E02002021922A000560 -:100A200002002021354900040E001658A2290005B5 -:100A30009228000531040004148000020000000028 -:100A40000000000D922D0000240B002031AC00FFAF -:100A5000158B00093C0580008CAE01B805C0FFFE77 -:100A600034B10180AE3000003C0F100024100005AE -:100A7000A230000BACAF01B80000000D8FBF001812 -:100A80008FB100148FB0001003E0000827BD0020D4 -:100A90000200202100C028218FBF00188FB1001450 -:100AA0008FB00010240600010A00161D27BD00208B -:100AB0000000000D0200202100C028218FBF001877 -:100AC0008FB100148FB00010000030210A00161DF5 -:100AD00027BD002014A0FFE8000000000200202134 -:100AE0008FBF00188FB100148FB0001000C02821F4 -:100AF0000A00163B27BD00203C0780008CEE01B8A1 -:100B000005C0FFFE34F00180241F0002A21F000B6D -:100B100034F80140A60600089719000A3C0F10009F -:100B2000A61900108F110004A6110012ACEF01B835 -:100B30000A0016998FBF001827BDFFE8AFBF00104D -:100B40000E000FD4000000003C0280008FBF001098 -:100B500000002021AC4001800A00108F27BD001842 -:100B60003084FFFF30A5FFFF108000070000182130 -:100B7000308200011040000200042042006518216C -:100B80001480FFFB0005284003E0000800601021EE -:100B900010C00007000000008CA2000024C6FFFF68 -:100BA00024A50004AC82000014C0FFFB24840004D0 -:100BB00003E000080000000010A0000824A3FFFFCD -:100BC000AC86000000000000000000002402FFFFCF -:100BD0002463FFFF1462FFFA2484000403E000088A -:100BE000000000003C03800027BDFFF83462018054 -:100BF000AFA20000308C00FF30AD00FF30CE00FF10 -:100C00003C0B80008D6401B80480FFFE00000000F2 -:100C10008FA900008D6801288FAA00008FA700000F -:100C20008FA400002405000124020002A085000A10 -:100C30008FA30000359940003C051000A062000B16 -:100C40008FB800008FAC00008FA600008FAF0000AF -:100C500027BD0008AD280000AD400004AD80002491 -:100C6000ACC00028A4F90008A70D0010A5EE0012E2 -:100C700003E00008AD6501B83C06800827BDFFE829 -:100C800034C50080AFBF001090A7000924020012F5 -:100C900030E300FF1062000B008030218CA8005070 -:100CA00000882023048000088FBF00108CAA003425 -:100CB000240400390000282100CA4823052000052B -:100CC000240600128FBF00102402000103E0000878 -:100CD00027BD00180E0016F2000000008FBF0010A4 -:100CE0002402000103E0000827BD001827BDFFC84B -:100CF000AFB20030AFB00028AFBF0034AFB1002CAE -:100D000000A0802190A5000D30A6001010C000109A -:100D1000008090213C0280088C4400048E0300086F -:100D20001064000C30A7000530A6000510C0009329 -:100D3000240400018FBF00348FB200308FB1002C2B -:100D40008FB000280080102103E0000827BD003884 -:100D500030A7000510E0000F30AB001210C00006F5 -:100D6000240400013C0980088E0800088D25000439 -:100D70005105009C240400388FBF00348FB200302E -:100D80008FB1002C8FB000280080102103E00008F4 -:100D900027BD0038240A0012156AFFE6240400016A -:100DA0000200202127A500100E000CB6AFA00010F5 -:100DB0001440007C3C19800837240080909800087B -:100DC000331100081220000A8FA7001030FF010025 -:100DD00013E000A48FA300148C8600580066102333 -:100DE000044000043C0A8008AC8300588FA7001020 -:100DF0003C0A800835480080910900083124000829 -:100E00001480000224080003000040213C1F8008D9 -:100E100093F1001193F9001237E600808CCC005456 -:100E2000333800FF03087821322D00FF000F708057 -:100E300001AE282100AC582B1160006F00000000AB -:100E400094CA005C8CC900543144FFFF0125102373 -:100E50000082182B14600068000000008CCB005446 -:100E60000165182330EC00041180006C000830800C -:100E70008FA8001C0068102B1040006230ED0004A9 -:100E8000006610232C46008010C00002004088211C -:100E9000241100800E00164E024020213C0D8008D7 -:100EA00035A6008024070001ACC7000C90C80008DC -:100EB0000011484035A70100310C007FA0CC00088C -:100EC0008E05000424AB0001ACCB0030A4D1005C43 -:100ED0008CCA003C9602000E01422021ACC40020C6 -:100EE0008CC3003C0069F821ACDF001C8E190004A3 -:100EF000ACF900008E180008ACF800048FB10010A7 -:100F0000322F000855E0004793A60020A0C0004EF5 -:100F100090D8004E2411FFDFA0F8000890CF000801 -:100F200001F17024A0CE00088E0500083C0B80085B -:100F300035690080AD2500388D6A00148D2200309F -:100F40002419005001422021AD24003491230000D7 -:100F5000307F00FF13F90036264F01000E001658AF -:100F60000240202124040038000028210E0016F23F -:100F70002406000A0A001757240400010E000D2859 -:100F8000000020218FBF00348FB200308FB1002CC1 -:100F90008FB00028004020210080102103E00008CD -:100FA00027BD00388E0E00083C0F800835F0008009 -:100FB000AE0E005402402021AE0000300E00164E4E -:100FC00000000000920D00250240202135AC0020D9 -:100FD0000E001658A20C00250E000CAC0240202179 -:100FE000240400382405008D0E0016F22406001299 -:100FF0000A0017572404000194C5005C0A001792E8 -:1010000030A3FFFF2407021811A0FF9E00E6102363 -:101010008FAE001C0A00179A01C610230A0017970A -:101020002C620218A0E600080A0017C48E0500080A -:101030002406FF8001E6C0243C118000AE38002861 -:101040008E0D000831E7007F3C0E800C00EE602121 -:10105000AD8D00E08E080008AF8C00380A0017D074 -:10106000AD8800E4AC800058908500082403FFF7A9 -:1010700000A33824A08700080A0017758FA7001066 -:101080003C05080024A560A83C04080024846FF4F3 -:101090003C020800244260B0240300063C01080121 -:1010A000AC2596A03C010801AC2496A43C010801A3 -:1010B000AC2296A83C010801A02396AC03E00008EE -:1010C0000000000003E00008240200013C02800050 -:1010D000308800FF344701803C0680008CC301B893 -:1010E0000460FFFE000000008CC501282418FF806A -:1010F0003C0D800A24AF010001F8702431EC007F20 -:10110000ACCE0024018D2021ACE50000948B00EAD8 -:101110003509600024080002316AFFFFACEA0004D0 -:1011200024020001A4E90008A0E8000BACE00024C0 -:101130003C071000ACC701B8AF84003803E00008DA -:10114000AF85006C938800488F8900608F820038DB -:1011500030C600FF0109382330E900FF01221821C1 -:1011600030A500FF2468008810C000020124382147 -:101170000080382130E400031480000330AA00030B -:101180001140000D312B000310A0000900001021B8 -:1011900090ED0000244E000131C200FF0045602B9D -:1011A000A10D000024E700011580FFF925080001CA -:1011B00003E00008000000001560FFF300000000DD -:1011C00010A0FFFB000010218CF80000245900043F -:1011D000332200FF0045782BAD18000024E70004FF -:1011E00015E0FFF92508000403E0000800000000F6 -:1011F00093850048938800588F8700600004320070 -:101200003103007F00E5102B30C47F001040000F39 -:10121000006428258F8400383C0980008C8A00EC0B -:10122000AD2A00A43C03800000A35825AC6B00A0AD -:101230008C6C00A00580FFFE000000008C6D00ACEF -:10124000AC8D00EC03E000088C6200A80A00188254 -:101250008F840038938800593C0280000080502120 -:10126000310300FEA383005930ABFFFF30CC00FFF9 -:1012700030E7FFFF344801803C0980008D2401B82D -:101280000480FFFE8F8D006C24180016AD0D000049 -:101290008D2201248F8D0038AD0200048D5900206D -:1012A000A5070008240201C4A119000AA118000B17 -:1012B000952F01208D4E00088D4700049783005C18 -:1012C0008D59002401CF302100C7282100A32023FD -:1012D0002418FFFFA504000CA50B000EA5020010AA -:1012E000A50C0012AD190018AD18002495AF00E848 -:1012F0003C0B10002407FFF731EEFFFFAD0E002876 -:101300008DAC0084AD0C002CAD2B01B88D460020B7 -:1013100000C7282403E00008AD4500208F8800386E -:101320000080582130E7FFFF910900D63C02800081 -:1013300030A5FFFF312400FF00041A00006750258C -:1013400030C600FF344701803C0980008D2C01B875 -:101350000580FFFE8F82006C240F0017ACE20000B6 -:101360008D390124ACF900048D780020A4EA00082E -:10137000241901C4A0F8000AA0EF000B9523012056 -:101380008D6E00088D6D00049784005C01C35021B0 -:10139000014D602101841023A4E2000CA4E5000E9D -:1013A000A4F90010A4E60012ACE000148D7800242B -:1013B000240DFFFFACF800188D0F007CACEF001C73 -:1013C0008D0E00783C0F1000ACEE0020ACED002438 -:1013D000950A00BE240DFFF73146FFFFACE600285A -:1013E000950C00809504008231837FFF0003CA00C2 -:1013F0003082FFFF0322C021ACF8002CAD2F01B8D2 -:10140000950E00828D6A002000AE3021014D282407 -:10141000A506008203E00008AD6500203C028000C4 -:10142000344501803C0480008C8301B80460FFFED9 -:101430008F8A0044240600199549001C3128FFFFBB -:10144000000839C0ACA70000A0A6000B3C051000A6 -:1014500003E00008AC8501B88F87004C0080402174 -:1014600030C400FF3C0680008CC201B80440FFFE7F -:101470008F89006C9383006834996000ACA90000E8 -:10148000A0A300058CE20010240F00022403FFF744 -:10149000A4A20006A4B900088D180020A0B8000A74 -:1014A000A0AF000B8CEE0000ACAE00108CED000481 -:1014B000ACAD00148CEC001CACAC00248CEB002018 -:1014C000ACAB00288CEA002C3C071000ACAA002C26 -:1014D0008D090024ACA90018ACC701B88D05002007 -:1014E00000A3202403E00008AD0400208F8600380C -:1014F00027BDFFE0AFB10014AFBF0018AFB00010C0 -:1015000090C300D430A500FF3062002010400008D6 -:10151000008088218CCB00D02409FFDF256A0001E0 -:10152000ACCA00D090C800D401093824A0C700D4A8 -:1015300014A000403C0C80008F840038908700D4B9 -:101540002418FFBF2406FFEF30E3007FA08300D400 -:10155000979F005C8F8200608F8D003803E2C82364 -:10156000A799005CA5A000BC91AF00D401F870243D -:10157000A1AE00D48F8C0038A18000D78F8A0038AC -:10158000A5400082AD4000EC914500D400A658244F -:10159000A14B00D48F9000348F8400609786005C4C -:1015A0000204282110C0000FAF850034A38000582A -:1015B0003C0780008E2C000894ED01208E2B000447 -:1015C000018D5021014B8021020620233086FFFF30 -:1015D00030C8000F3909000131310001162000091F -:1015E000A3880058938600488FBF00188FB100145D -:1015F0008FB0001027BD0020AF85006403E0000815 -:10160000AF86006000C870238FBF00189386004823 -:101610008FB100148FB0001034EF0C00010F28219F -:1016200027BD0020ACEE0084AF85006403E0000815 -:10163000AF86006035900180020028210E00190F4E -:10164000240600828F840038908600D430C5004084 -:1016500050A0FFBAA38000688F85004C3C06800034 -:101660008CCD01B805A0FFFE8F89006C2408608234 -:1016700024070002AE090000A6080008A207000B1C -:101680008CA300083C0E1000AE0300108CA2000CCE -:10169000AE0200148CBF0014AE1F00188CB90018E5 -:1016A000AE1900248CB80024AE1800288CAF002896 -:1016B000AE0F002CACCE01B80A001948A380006818 -:1016C0008F8A003827BDFFE0AFB10014AFB0001023 -:1016D0008F880060AFBF00189389003C954200BC22 -:1016E00030D100FF0109182B0080802130AC00FFB1 -:1016F0003047FFFF0000582114600003310600FF4F -:1017000001203021010958239783005C0068202BB9 -:101710001480002700000000106800562419000102 -:101720001199006334E708803165FFFF0E0018C08F -:10173000020020218F83006C3C07800034E601808A -:101740003C0580008CAB01B80560FFFE240A001840 -:101750008F840038ACC30000A0CA000B948900BE7F -:101760003C081000A4C90010ACC00030ACA801B8FF -:101770009482008024430001A4830080949F008011 -:101780003C0608008CC6318833EC7FFF1186005E72 -:101790000000000002002021022028218FBF001835 -:1017A0008FB100148FB000100A00193427BD00203B -:1017B000914400D42403FF8000838825A15100D4E4 -:1017C0009784005C3088FFFF51000023938C003C1D -:1017D0008F8500382402EFFF008B782394AE00BC85 -:1017E0000168502B31E900FF01C26824A4AD00BCA0 -:1017F00051400039010058213C1F800037E60100AC -:101800008CD800043C190001031940245500000144 -:1018100034E740008E0A00202403FFFB241100015E -:1018200001432024AE0400201191002D34E78000F4 -:1018300002002021012030210E0018C03165FFFF79 -:101840009787005C8F890060A780005C0127802358 -:10185000AF900060938C003C8F8B00388FBF0018D6 -:101860008FB100148FB0001027BD002003E00008E6 -:10187000A16C00D73C0D800035AA01008D48000402 -:101880003C0900010109282454A0000134E740006C -:101890008E0F00202418FFFB34E7800001F870242D -:1018A00024190001AE0E00201599FF9F34E708802F -:1018B000020020210E00188E3165FFFF020020215A -:1018C000022028218FBF00188FB100148FB00010A4 -:1018D0000A00193427BD00200A0019F7000048212A -:1018E00002002021012030210E00188E3165FFFFFB -:1018F0009787005C8F890060A780005C01278023A8 -:101900000A001A0EAF900060948C0080241F8000A3 -:10191000019F3024A4860080908B0080908F0080EF -:10192000316700FF0007C9C20019C027001871C045 -:1019300031ED007F01AE2825A08500800A0019DF67 -:1019400002002021938500682403000127BDFFE8E1 -:1019500000A330042CA20020AFB00010AFBF0014D1 -:1019600000C01821104000132410FFFE3C0708009F -:101970008CE7319000E610243C088000350501809A -:1019800014400005240600848F890038240A0004CE -:101990002410FFFFA12A00FC0E00190F0000000018 -:1019A000020010218FBF00148FB0001003E0000868 -:1019B00027BD00183C0608008CC631940A001A574F -:1019C00000C310248F87004427BDFFE0AFB200188A -:1019D000AFB10014AFB00010AFBF001C30D000FF9B -:1019E00090E6000D00A088210080902130C5007F86 -:1019F000A0E5000D8F8500388E2300188CA200D042 -:101A00001062002E240A000E0E001A4AA38A0068F3 -:101A10002409FFFF104900222404FFFF5200002088 -:101A2000000020218E2600003C0C001000CC582421 -:101A3000156000393C0E000800CE682455A0003F18 -:101A4000024020213C18000200D880241200001F10 -:101A50003C0A00048F8700448CE200148CE30010E1 -:101A60008CE500140043F82303E5C82B1320000580 -:101A7000024020218E24002C8CF1001010910031A6 -:101A80000240202124020012A38200680E001A4A9C -:101A90002412FFFF105200022404FFFF0000202147 -:101AA0008FBF001C8FB200188FB100148FB00010D0 -:101AB0000080102103E0000827BD002090A800D47A -:101AC000350400200A001A80A0A400D400CA4824CB -:101AD0001520000B8F8B00448F8D00448DAC0010BF -:101AE0001580000B024020218E2E002C51C0FFECEF -:101AF00000002021024020210A001A9B2402001726 -:101B00008D66001050C0FFE6000020210240202119 -:101B10000A001A9B24020011024020212402001511 -:101B20000E001A4AA3820068240FFFFF104FFFDC4B -:101B30002404FFFF0A001A8A8E2600000A001AC138 -:101B4000240200143C08000400C8382450E0FFD4EC -:101B500000002021024020210A001A9B24020013C9 -:101B60008F85003827BDFFD8AFB3001CAFB2001877 -:101B7000AFB10014AFB00010AFBF002090A700D4E9 -:101B80008F90004C2412FFFF34E2004092060000C8 -:101B9000A0A200D48E0300100080982110720006CD -:101BA00030D1003F2408000D0E001A4AA3880068B7 -:101BB000105200252404FFFF8F8A00388E09001878 -:101BC0008D4400D01124000702602021240C000E57 -:101BD0000E001A4AA38C0068240BFFFF104B001A5A -:101BE0002404FFFF24040020122400048F8D0038F9 -:101BF00091AF00D435EE0020A1AE00D48F85005403 -:101C000010A00019000000001224004A8F9800382C -:101C10008F92FCBC971000809651000A5230004809 -:101C20008F9300403C1F08008FFF318C03E5C82BC9 -:101C30001720001E02602021000028210E0019A993 -:101C400024060001000020218FBF00208FB3001C5C -:101C50008FB200188FB100148FB0001000801021D7 -:101C600003E0000827BD00285224002A8E05001436 -:101C70008F840038948A008025490001A48900805F -:101C8000948800803C0208008C42318831077FFF35 -:101C900010E2000E00000000026020210E00193446 -:101CA000240500010A001B0B000020212402002D46 -:101CB0000E001A4AA38200682403FFFF1443FFE1C9 -:101CC0002404FFFF0A001B0C8FBF002094990080A2 -:101CD000241F800024050001033FC024A498008035 -:101CE00090920080908E0080325100FF001181C2DE -:101CF00000107827000F69C031CC007F018D582576 -:101D0000A08B00800E001934026020210A001B0BFA -:101D1000000020212406FFFF54A6FFD68F84003840 -:101D2000026020210E001934240500010A001B0B5B -:101D300000002021026020210A001B252402000A45 -:101D40002404FFFD0A001B0BAF9300608F8800384E -:101D500027BDFFE8AFB00010AFBF0014910A00D458 -:101D60008F87004C00808021354900408CE60010B0 -:101D7000A10900D43C0208008C4231B030C53FFFBD -:101D800000A2182B106000078F850050240DFF80E3 -:101D900090AE000D01AE6024318B00FF156000088D -:101DA0000006C382020020212403000D8FBF00140F -:101DB0008FB0001027BD00180A001A4AA3830068DC -:101DC00033060003240F000254CFFFF70200202146 -:101DD00094A2001C8F85003824190023A4A200E8D7 -:101DE0008CE8000000081E02307F003F13F9003528 -:101DF0003C0A00838CE800188CA600D0110600086D -:101E0000000000002405000E0E001A4AA385006899 -:101E10002407FFFF104700182404FFFF8F850038B8 -:101E200090A900D435240020A0A400D48F8C0044B5 -:101E3000918E000D31CD007FA18D000D8F83005458 -:101E40001060001C020020218F8400508C9800102C -:101E50000303782B11E0000D241900180200202143 -:101E6000A39900680E001A4A2410FFFF10500002C8 -:101E70002404FFFF000020218FBF00148FB000104A -:101E80000080102103E0000827BD00188C86001098 -:101E90008F9F00440200202100C31023AFE20010F6 -:101EA000240500010E0019A9240600010A001B9751 -:101EB000000020210E001934240500010A001B97A0 -:101EC00000002021010A5824156AFFD98F8C004494 -:101ED000A0A600FC0A001B84A386005A30A500FFC0 -:101EE0002406000124A9000100C9102B1040000C99 -:101EF00000004021240A000100A61823308B0001B5 -:101F000024C60001006A3804000420421160000267 -:101F100000C9182B010740251460FFF800A61823FC -:101F200003E000080100102127BDFFD8AFB0001862 -:101F30008F90004CAFB1001CAFBF00202403FFFF07 -:101F40002411002FAFA30010920600002405000802 -:101F500026100001006620260E001BB0308400FF12 -:101F600000021E003C021EDC34466F410A001BD8F2 -:101F70000000102110A00009008018212445000154 -:101F800030A2FFFF2C4500080461FFFA0003204047 -:101F90000086202614A0FFF9008018210E001BB037 -:101FA000240500208FA300102629FFFF313100FFF8 -:101FB00000034202240700FF1627FFE20102182651 -:101FC00000035027AFAA0014AFAA00100000302170 -:101FD00027A8001027A7001400E6782391ED00033E -:101FE00024CE000100C8602131C600FF2CCB0004C4 -:101FF0001560FFF9A18D00008FA200108FBF002097 -:102000008FB1001C8FB0001803E0000827BD002826 -:1020100027BDFFD0AFB3001CAFB00010AFBF00288A -:10202000AFB50024AFB40020AFB20018AFB10014B8 -:102030003C0C80008D880128240FFF803C06800A1C -:1020400025100100250B0080020F68243205007F57 -:10205000016F7024AD8E009000A62821AD8D002464 -:1020600090A600FC3169007F3C0A8004012A1821F7 -:10207000A386005A9067007C00809821AF830030CF -:1020800030E20002AF88006CAF85003800A0182154 -:10209000144000022404003424040030A3840048C7 -:1020A0008C7200DC30D100FF24040004AF92006089 -:1020B00012240004A38000688E7400041680001EA1 -:1020C0003C0880009386005930C7000150E0000FA3 -:1020D0008F8600608CA400848CA800842413FF8069 -:1020E00000936024000C49403110007F01307825B6 -:1020F0003C19200001F9682530DF00FE3C03800018 -:10210000AC6D0830A39F00598F8600608FBF0028F8 -:102110008FB500248FB400208FB3001C8FB200183D -:102120008FB100148FB000102402000127BD0030D1 -:1021300003E00008ACA600DC8E7F000895020120B9 -:102140008E67001003E2C8213326FFFF30D8000F4E -:1021500033150001AF87003416A00058A39800582B -:1021600035090C000309382100D81823AD03008479 -:10217000AF8700648E6A00043148FFFF1100007EC3 -:10218000A78A005C90AC00D42407FF8000EC3024C8 -:1021900030CB00FF1560004B9786005C938E005A91 -:1021A000240D000230D5FFFF11CD02A20000A021B6 -:1021B0008F85006002A5802B160000BC9388004824 -:1021C0003C11800096240120310400FF1485008812 -:1021D0008F8400648F9800343312000356400085CA -:1021E00030A500FF8F900064310C00FF24060034FE -:1021F00011860095AF90004C9204000414800119E0 -:102200008F8E0038A380003C8E0D00048DC800D84E -:102210003C0600FF34CCFFFF01AC30240106182B34 -:1022200014600121AF8600548F8700609798005C8E -:10223000AF8700400307402310C000C7A788005C99 -:102240008F91003030C3000300035823922A007C92 -:102250003171000302261021000A20823092000111 -:102260000012488000492821311FFFFF03E5C82BD9 -:10227000132001208F8800388F8500348F880064F8 -:102280001105025A3C0E3F018E0600003C0C250051 -:1022900000CE682411AC01638F84004C30E500FF50 -:1022A0000E00184A000030218F8800388F870060A8 -:1022B0008F8500340A001DB78F8600540A001C5613 -:1022C000AF87006490AC00D400EC2024309000FF75 -:1022D000120000169386005990B5008890B400D77C -:1022E00024A8008832A2003F2446FFE02CD1002021 -:1022F000A394003C1220000CAF88004C240E000177 -:1023000000CE2004308A00191540012B3C068000C5 -:1023100034D80002009858241560022E3092002014 -:1023200016400234000000009386005930CE0001B0 -:1023300011C0000F9788005C8CA900848CAF0084CA -:102340002410FF800130C8240019194031ED007FAE -:10235000006D38253C1F200000FF902530CB00FE8B -:102360003C188000AF120830A38B00599788005C9E -:102370001500FF84000000008E630020306C000414 -:102380001180FF51938600592404FFFB0064302420 -:102390003C038000AE660020346601808C7301B877 -:1023A0000660FFFE8F8E006C346A01003C15000150 -:1023B000ACCE00008C62012424076085ACC200040E -:1023C0008D54000402958824522000012407608364 -:1023D000241200023C1810003C0B8000A4C7000827 -:1023E000A0D2000BAD7801B80A001C2B93860059CF -:1023F00030A500FF0E00184A240600018F88006CEB -:102400003C05800034A90900250201889388004812 -:10241000304A0007304B00783C0340802407FF809F -:102420000163C825014980210047F824310C00FFD1 -:1024300024060034ACBF0800AF90004CACB90810C3 -:102440005586FF6E920400048F8400388E11003090 -:10245000908E00D431CD001015A000108F83006045 -:102460002C6F000515E000E400000000909800D4F7 -:102470002465FFFC331200101640000830A400FF52 -:102480008F9F00648F99003413F90004388700018E -:1024900030E20001144001C8000000000E001BC320 -:1024A000000000000A001DF8000000008F84006496 -:1024B00030C500FF0E00184A24060001938E004824 -:1024C000240A003411CA00A08F8500388F8600606E -:1024D0009783005C3062FFFF00C28823AF910060E9 -:1024E000A780005C1280FF90028018212414FFFD59 -:1024F0005474FFA28E6300208E6900042403FFBF82 -:10250000240BFFEF0135C823AE79000490AF00D44F -:1025100031ED007FA0AD00D48E6600208F9800388A -:10252000A780005C34DF0002AE7F0020A70000BC63 -:10253000931200D402434024A30800D48F9500389E -:10254000AEA000EC92AE00D401CB5024A2AA00D4DD -:102550000A001CD78F8500388F910034AF8000604F -:1025600002275821AF8B0034000020212403FFFFF5 -:10257000108301B48F8500388E0C00103C0D0800CC -:102580008DAD31B09208000031843FFF008D802B6B -:1025900012000023310D003F3C1908008F3931A88B -:1025A0008F9F006C000479802408FF80033F202166 -:1025B000008FC821938500590328F8243C06008029 -:1025C0003C0F800034D80001001F91403331007F60 -:1025D0008F8600380251502535EE0940332B0078A4 -:1025E000333000073C0310003C02800C017890253A -:1025F000020E48210143C0250222382134AE0001D9 -:10260000ADFF0804AF890050ADF20814AF87004455 -:10261000ADFF0028ACD90084ADF80830A38E005976 -:102620009383005A240700035067002825A3FFE086 -:10263000240C0001146CFFAB8F850038241100239B -:1026400011B10084000000002402000B0260202170 -:102650000E001A4AA38200680040A0210A001D3221 -:102660008F85003802602021240B000C0E001A4ACE -:10267000A38B0068240AFFFF104AFFBC2404FFFF5D -:102680008F8E0038A380003C8E0D00048DC800D8CA -:102690003C0600FF34CCFFFF01AC30240106182BB0 -:1026A0001060FEE1AF860054026020212412001960 -:1026B0000E001A4AA3920068240FFFFF104FFFABD1 -:1026C0002404FFFF0A001C838F8600542C74002012 -:1026D0001280FFDE2402000B000328803C11080159 -:1026E0002631949000B148218D2D000001A00008F2 -:1026F000000000008F85003400A710219385003C66 -:10270000AF82003402251821A383003C951F00BC32 -:102710000226282137F91000A51900BC5240FF926B -:10272000AF850060246A0004A38A003C950900BCC0 -:1027300024A40004AF84006035322000A51200BC40 -:102740000A001D54000020218F8600602CCB00055C -:102750001560FF609783005C3072FFFF00D240235A -:102760002D18000513000003306400FF24DFFFFC78 -:1027700033E400FF8F8500648F86003410A60004C8 -:10278000388F000131ED000115A001380000000074 -:102790008F840038908C00D435870010A08700D437 -:1027A0008F8500388F8600609783005CACA000ECBA -:1027B0000A001D2F3062FFFF8CAA00848CB50084B4 -:1027C0003C041000014710240002894032B4007F0D -:1027D0000234302500C460253C0880002405000137 -:1027E00002602021240600010E0019A9AD0C08305A -:1027F0000A001CC38F8500388C8200EC1222FE7EFA -:102800000260202124090005A38900680E001A4AED -:102810002411FFFF1451FE782404FFFF0A001D5508 -:102820002403FFFF8F8F004C8F8800388DF8000045 -:10283000AD1800888DE70010AD0700988F87006005 -:102840000A001DB78F8600542407FFFF118700057B -:10285000000000000E001B4C026020210A001D90A9 -:102860000040A0210E001AD1026020210A001D9014 -:102870000040A0218F90004C3C0908008D2931B008 -:102880008E11001032323FFF0249682B11A0000C5C -:10289000240AFF808F85005090AE000D014E102459 -:1028A000304C00FF11800007026020210011C3821C -:1028B00033030003240B0001106B0105000000002E -:1028C000026020212418000D0E001A4AA398006807 -:1028D000004020218F8500380A001D320080A02191 -:1028E0008F90004C3C0A08008D4A31B08F85005013 -:1028F0008E0400100000A0218CB1001430823FFF34 -:10290000004A602B8CB200205180FFEE0260202133 -:1029100090B8000D240BFF800178702431C300FFB4 -:102920005060FFE80260202100044382310600036A -:1029300014C0FFE40260202194BF001C8F9900386E -:102940008E060028A73F00E88CAF0010022F20233E -:1029500014C40139026020218F83005400C3682110 -:10296000022D382B14E00135240200188F8A004410 -:102970008F820030024390218D4B00100163702341 -:10298000AD4E0010AD5200208C4C00740192282BEB -:1029900014A00156026020218F8400508E0800246C -:1029A0008C86002411060007026020212419001CD7 -:1029B0000E001A4AA3990068240FFFFF104FFFC5AD -:1029C0002404FFFF8F8400448C87002424FF00012F -:1029D000AC9F0024125101338F8D00308DB10074F3 -:1029E000123201303C0B00808E0E000001CB5024CF -:1029F00015400075000000008E0300142411FFFF35 -:102A000010710006026020212418001B0E001A4AD3 -:102A1000A39800681051FFAF2404FFFF8E0300004D -:102A20003C0800010068302410C000133C04008002 -:102A30000064A024168000090200282102602021E1 -:102A40002419001A0E001A4AA3990068240FFFFFE8 -:102A5000104FFFA02404FFFF020028210260202164 -:102A60000E001A6A240600012410FFFF1050FF997F -:102A70002404FFFF241400018F9F004402602021E2 -:102A80000280302197F1003424050001262700013F -:102A9000A7E700340E0019A9000000000000202163 -:102AA0008F8500380A001D320080A0218F90004CD5 -:102AB0003C1408008E9431B08E07001030E83FFFC0 -:102AC0000114302B10C000618F860050241FFF803E -:102AD00090C5000D03E52024309200FF5240005CB9 -:102AE000026020218F8D005411A0000700078B8207 -:102AF0008F8500388F89FCBC94AF00809539000A1F -:102B0000132F00F68F870040322C000315800063DE -:102B10000000000092020002104000D700000000F8 -:102B20008E0A0024154000D8026020219204000380 -:102B300024060002308800FF15060005308500FFDE -:102B40008F940054528000F202602021308500FFF3 -:102B500038AD00102DA400012CBF000103E4302586 -:102B6000020028210E001A6A026020212410FFFFB3 -:102B7000105000BE8F8500388F830054106000C451 -:102B8000240500013C1908008F39318C0323782B70 -:102B900015E000B12409002D026020210000282149 -:102BA0000E0019A9240600018F85003800001821A5 -:102BB0000A001D320060A0210E0018750000000000 -:102BC0000A001DF800000000AC8000200A001E78FA -:102BD0008E03001400002821026020210E0019A994 -:102BE000240600010A001CC38F8500380A001DB7A7 -:102BF0008F8800388CB000848CB900843C031000AE -:102C00000207482400096940332F007F01AFF825EF -:102C100003E32825ACC50830910700012405000115 -:102C2000026020210E0019A930E600010A001CC331 -:102C30008F850038938F00482403FFFD0A001D3460 -:102C4000AF8F00600A001D342403FFFF02602021C3 -:102C50002410000D0E001A4AA390006800401821AD -:102C60008F8500380A001D320060A0210E00187503 -:102C7000000000009783005C8F8600603070FFFFCB -:102C800000D048232D3900051320FE128F8500380F -:102C9000ACA200EC0A001D2F3062FFFF90C3000DB4 -:102CA000307800085700FFA2920400030260202140 -:102CB000240200100E001A4AA38200682403FFFFBA -:102CC0005443FF9B920400030A001F128F850038B3 -:102CD00090A8000D3106000810C000958F94005494 -:102CE0001680009E026020218E0F000C8CA4002014 -:102CF00055E40005026020218E1F00088CB90024D5 -:102D000013F9003A02602021240200200E001A4A22 -:102D1000A38200682405FFFF1045FEEE2404FFFF98 -:102D20008F8F0044240CFFF72403FF8091E9000DEE -:102D30003C14800E3C0B8000012CC824A1F9000D2E -:102D40008F8F00303C0708008CE731AC8F8D006C12 -:102D500095E500788F99004400ED902130BF7FFF0A -:102D6000001F20400244302130C8007F00C3C0242F -:102D700001147021AD78002CA5D100008F2A002805 -:102D800025420001AF2200288F29002C8E0C002C38 -:102D9000012C6821AF2D002C8E07002CAF270030AE -:102DA0008E050014AF250034973F003A27E4000158 -:102DB000A724003A95F200783C1008008E1031B03C -:102DC0002643000130717FFF1230005C006030212B -:102DD0008F83003002602021240500010E00193489 -:102DE000A46600780A001EA1000020218E070014AE -:102DF0002412FFFF10F200638F8C00388E09001838 -:102E00008D8D00D0152D005D026020218E0A0024DA -:102E10008CA2002811420053240200210E001A4AFD -:102E2000A38200681452FFBE2404FFFF8F85003880 -:102E30000A001D320080A0212402001F0E001A4A41 -:102E4000A38200682409FFFF1049FEA22404FFFFAB -:102E50000A001E548F830054026020210E001A4A7B -:102E6000A38900681450FF518F8500382403FFFFA9 -:102E70000A001D320060A0218CCE00248E0B00249D -:102E8000116EFF2A026020210A001F262402000F73 -:102E90000E001934026020218F8500380A001EE5DB -:102EA000000018218E0900003C05008001259024B7 -:102EB0001640FF452402001A026020210E001A4A23 -:102EC000A3820068240CFFFF144CFECB2404FFFFF8 -:102ED0008F8500380A001D320080A0212403FFFDE9 -:102EE0000060A0210A001D32AF8700602418001D79 -:102EF0000E001A4AA39800682403FFFF1443FEA69D -:102F00002404FFFF8F8500380A001D320080A021B5 -:102F10002412002C0E001A4AA39200682403FFFF1B -:102F20001043FF508F8500380A001ECC9204000326 -:102F3000026020210A001F3C24020024240B800090 -:102F4000006B702431CAFFFF000A13C2305100FF2A -:102F5000001180270A001F6D001033C00A001F3CBB -:102F6000240200278E0600288CAE002C10CE00080C -:102F7000026020210A001F802402001F0A001F8017 -:102F80002402000E026020210A001F802402002576 -:102F90008E04002C1080000D8F8300308C7800741C -:102FA0000304582B5560000C026020218CA80014EB -:102FB0000086A0210114302B10C0FF5A8F8F0044CF -:102FC000026020210A001F802402002202602021CA -:102FD0000A001F80240200230A001F80240200260A -:102FE00027BDFFD8AFB3001CAFB10014AFBF0020A6 -:102FF000AFB20018AFB000103C0280008C5201400C -:103000008C4B01483C048000000B8C02322300FFF3 -:10301000317300FF8C8501B804A0FFFE349001805D -:10302000AE1200008C8701442464FFF024060002E5 -:103030002C830013AE070004A6110008A206000BA3 -:10304000AE1300241060004F8FBF002000044880A2 -:103050003C0A0801254A9510012A40218D040000F0 -:1030600000800008000000003C0308008C6331A8C9 -:1030700031693FFF0009998000728021021370219D -:103080002405FF80264D0100264C00803C02800074 -:1030900031B1007F3198007F31CA007F3C1F800A28 -:1030A0003C1980043C0F800C01C5202401A530246C -:1030B00001853824014F1821AC460024023F4021ED -:1030C00003194821AC470090AC440028AF8300446A -:1030D000AF880038AF8900300E00190001608021F0 -:1030E0003C0380008C6B01B80560FFFE8F870044B5 -:1030F0008F8600383465018090E8000DACB2000086 -:10310000A4B0000600082600000416030002902761 -:10311000001227C21080008124C20088241F608210 -:10312000A4BF0008A0A0000524020002A0A2000B7A -:103130008F8B0030000424003C0827000088902575 -:10314000ACB20010ACA00014ACA00024ACA00028CD -:10315000ACA0002C8D6900382413FF80ACA90018A6 -:1031600090E3000D02638024320500FF10A00005EB -:103170008FBF002090ED000D31AC007FA0EC000D62 -:103180008FBF00208FB3001C8FB200188FB10014C6 -:103190008FB000103C0A10003C0E800027BD0028B4 -:1031A00003E00008ADCA01B8265F01002405FF80D6 -:1031B00033F8007F3C06800003E578243C19800A40 -:1031C00003192021ACCF0024908E00D400AE6824D7 -:1031D00031AC00FF11800024AF840038248E0088B9 -:1031E00095CD00123C0C08008D8C31A831AB3FFF0F -:1031F00001924821000B5180012A40210105202421 -:10320000ACC400283107007F3C06800C00E620217A -:103210009083000D00A31024304500FF10A0FFD8BC -:10322000AF8400449098000D330F001015E0FFD5D7 -:103230008FBF00200E001900000000003C0380003A -:103240008C7901B80720FFFE00000000AE120000DC -:103250008C7F0144AE1F0004A61100082411000257 -:10326000A211000BAE1300243C130801927396D0F8 -:10327000327000015200FFC38FBF00200E00213DBD -:10328000024020210A00205A8FBF00203C1260001B -:103290008E452C083C03F0033462FFFF00A2F824A3 -:1032A000AE5F2C088E582C083C1901C003199825D4 -:1032B000AE532C080A00205A8FBF0020264D010073 -:1032C00031AF007F3C10800A240EFF8001F02821DE -:1032D00001AE60243C0B8000AD6C00241660FFA89A -:1032E000AF85003824110003A0B100FC0A00205A69 -:1032F0008FBF002026480100310A007F3C0B800A66 -:103300002409FF80014B3021010920243C07800063 -:10331000ACE400240A002059AF860038944E001215 -:10332000320C3FFF31CD3FFF15ACFF7D241F608283 -:1033300090D900D42418FF800319782431EA00FFC3 -:103340001140FF770000000024070004A0C700FC24 -:103350008F870044241160842406000DA4B1000866 -:10336000A0A600050A002044240200023C0400013B -:10337000248496BC24030014240200FE3C010800AF -:10338000AC2431EC3C010800AC2331E83C010801DD -:10339000A42296D83C040801248496D80000182161 -:1033A00000643021A0C30004246300012C6500FFE9 -:1033B00054A0FFFC006430213C07080024E7010012 -:1033C00003E00008AF87007800A058210080482162 -:1033D0000000102114A00012000050210A00213921 -:1033E000000000003C010801A42096D83C0508011B -:1033F00094A596D88F8200783C0C0801258C96D82D -:1034000000E2182100AC2021014B302BA0890004E0 -:1034100000001021A460000810C0003901004821FC -:103420008F8600780009384000E940210008388084 -:1034300000E6282190A8000B90B9000A000820405F -:1034400000881021000218800066C021A319000A1C -:103450008F85007800E5782191EE000A91E6000B57 -:10346000000E684001AE6021000C20800085102114 -:10347000A046000B3C030801906396D21060002226 -:103480002462FFFF8F8300383C010801A02296D2FE -:10349000906C00FF1180000400000000906E00FF9F -:1034A00025CDFFFFA06D00FF3C190801973996D884 -:1034B000272300013078FFFF2F0F00FF11E0FFC925 -:1034C000254A00013C010801A42396D83C050801C7 -:1034D00094A596D88F8200783C0C0801258C96D84C -:1034E00000E2182100AC2021014B302BA089000400 -:1034F00000001021A460000814C0FFC90100482189 -:1035000003E000080000000003E0000824020002BD -:1035100027BDFFE0248501002407FF80AFB0001025 -:10352000AFBF0018AFB1001400A718243C108000F2 -:1035300030A4007F3C06800A008628218E110024DA -:10354000AE03002490A200FF14400008AF850038AD -:10355000A0A000098FBF0018AE1100248FB1001485 -:103560008FB0001003E0000827BD002090A900FDE7 -:1035700090A800FF312400FF0E0020EB310500FF72 -:103580008F8500388FBF0018A0A00009AE1100245D -:103590008FB100148FB0001003E0000827BD002099 -:1035A00027BDFFD0AFB20020AFB1001CAFB00018F4 -:1035B000AFBF002CAFB40028AFB300243C0980009B -:1035C0009533011635320C00952F011A3271FFFF29 -:1035D000023280218E08000431EEFFFF248B0100AF -:1035E000010E6821240CFF8025A5FFFF016C5024EB -:1035F0003166007F3C07800AAD2A002400C73021D5 -:10360000AF850074AF8800703C010801A02096D1FE -:1036100090C300090200D02100809821306300FF90 -:103620002862000510400048AF8600382864000278 -:103630001480008E24140001240D00053C010801B3 -:10364000A02D96B590CC00FD3C010801A02096B6B7 -:103650003C010801A02096B790CB000A240AFF8005 -:10366000318500FF014B4824312700FF10E0000C9A -:10367000000058213C128008365100808E2F003007 -:103680008CD0005C01F0702305C0018E8F87007024 -:1036900090D4000A3284007FA0C4000A8F860038CC -:1036A0003C118008363000808E0F00308F8700700C -:1036B00000EF702319C000EE0000000090D4000954 -:1036C00024120002328400FF109202470000000022 -:1036D0008CC2005800E2F82327F9FFFF1B200130BD -:1036E0000000000090C500092408000430A300FF7A -:1036F00010680057240A00013C010801A02A96B571 -:1037000090C900FF252700013C010801A02796B4BD -:103710003C030801906396B5240600051066006A14 -:103720002C780005130000C4000090210003F880ED -:103730003C0408012484955C03E4C8218F25000023 -:1037400000A0000800000000241800FF1078005CB2 -:103750000000000090CC000A90CA00093C08080153 -:10376000910896D13187008000EA48253C01080184 -:10377000A02996BC90C500FD3C140801929496D2F5 -:10378000311100013C010801A02596BD90DF00FE2B -:103790003C010801A03F96BE90D200FF3C01080109 -:1037A000A03296BF8CD900543C010801AC3996C0B8 -:1037B0008CD000583C010801AC3096C48CC3005C2E -:1037C0003C010801AC3496CC3C010801AC2396C8FE -:1037D000162000088FBF002C8FB400288FB3002460 -:1037E0008FB200208FB1001C8FB0001803E00008DA -:1037F00027BD00303C1180009624010E0E000FD42E -:103800003094FFFF3C0B08018D6B96D40260382189 -:1038100002802821AE2B01803C1308018E7396B4E0 -:1038200001602021240600830E00102FAFB300108A -:103830008FBF002C8FB400288FB300248FB20020DC -:103840008FB1001C8FB0001803E0000827BD0030C6 -:103850003C1808008F1831FC270F00013C010800BC -:10386000AC2F31FC0A0021CE000000001474FFB917 -:1038700000000000A0C000FF3C0508008CA531E45A -:103880003C0308008C6331E03C0208008C423204A7 -:103890008F99003834A80001241F00023C01080160 -:1038A000AC2396D43C010801A02896D03C01080125 -:1038B000A02296D3A33F00090A0021878F860038F3 -:1038C0000E00213D000000000A0021CE8F86003846 -:1038D0003C1F080193FF96B42419000113F9022933 -:1038E0008F8700703C100801921096B83C060801C2 -:1038F00090C696B610C000050200A0213C04080145 -:10390000908496B9109001E48F8700780010884069 -:103910008F9F0078023048210009C880033F702142 -:1039200095D80008270F0001A5CF00083C04080126 -:10393000908496B93C05080190A596B60E0020EB40 -:10394000000000008F8700780230202100043080C2 -:1039500000C720218C8500048F82007400A24023C0 -:1039600005020006AC8200048C8A00008F83007080 -:10397000014310235C400001AC8300008F860038B7 -:1039800090CB00FF2D6C00025580002D2414000107 -:103990000230F821001F40800107282190B9000B58 -:1039A0008CAE00040019C04003197821000F188064 -:1039B000006710218C4D000001AE88232630FFFFE8 -:1039C0005E00001F241400018C4400048CAA000037 -:1039D000008A482319200019240E00043C01080124 -:1039E000A02E96B590AD000B8CAB0004000D884066 -:1039F000022D802100101080004710218C4400040B -:103A000001646023058202009443000890DF00FEF9 -:103A100090B9000B33E500FF54B900040107A02161 -:103A2000A0D400FE8F8700780107A0219284000BAC -:103A30000E0020EB240500018F86003824140001BD -:103A4000125400962E500001160000423C08FFFF61 -:103A5000241900021659FF3F00000000A0C000FF1B -:103A60008F860038A0D200090A0021CE8F86003848 -:103A700090C700092404000230E300FF1064016FC6 -:103A800024090004106901528F8800748CCE005400 -:103A9000010E682325B100010620017524180004D9 -:103AA0003C010801A03896B53C010801A02096B45D -:103AB00090D400FD90D200FF2E4F000215E0FF14BD -:103AC000328400FF000438408F89007890DF00FFC7 -:103AD00000E41021000220800089C8212FE50002A7 -:103AE0009324000B14A0FF0A2407000200041840CE -:103AF0000064802100105880016928218CAC0004EA -:103B0000010C50230540FF02000000003C030801A7 -:103B1000906396B614600005246F00013C01080113 -:103B2000A02496B93C010801A02796B73C010801E2 -:103B3000A02F96B690CE00FF24E7000131CD00FF04 -:103B400001A7882B1220FFE990A4000B0A0021BDD9 -:103B5000000000003C0508018CA596B43C1200044E -:103B600000A8F82413F20006240200053C0908010D -:103B7000912996B5152000022402000324020005B5 -:103B80003C010801A02296D190C700FF14E001205B -:103B900024020002A0C200090A0021CE8F8600384C -:103BA00090CC00FF1180FEDA240A00018F8C007493 -:103BB0008F890078240F0003018068211160001EA6 -:103BC000240E0002000540400105A02100142080C1 -:103BD000008990218E510004019180230600FECCC3 -:103BE000000000003C020801904296B61440000517 -:103BF000245800013C010801A02A96B73C010801A5 -:103C0000A02596B93C010801A03896B690DF00FFC8 -:103C1000010510210002C88033E500FF254A00019C -:103C20000329202100AA402B1500FEB99085000B26 -:103C30001560FFE5000540400005404001051821E2 -:103C4000000310803C010801A02A96B43C01080141 -:103C5000A02596B8004918218C64000400E4F823DC -:103C600027F9FFFF1F20FFE9000000008C63000020 -:103C700000E358230560013A01A3882310E30117EC -:103C80000184C0231B00FEA2000000003C010801CB -:103C9000A02E96B50A0022FC240B0001240E00047D -:103CA000A0CE00093C0D08008DAD31F88F8600389C -:103CB00025A200013C010800AC2231F80A0021CE07 -:103CC000000000008CD9005C00F9C0231F00FE7BBF -:103CD000000000008CDF005C10FFFF658F84007423 -:103CE0008CC3005C00834023250200011C40FF6060 -:103CF000000000008CC9005C2487000100E9282B2B -:103D000010A0FE943C0D80008DAB01043C0C000122 -:103D1000016C50241140FE8F240200103C01080168 -:103D2000A02296D10A0021CE000000008F910074DD -:103D30008F86003826220001ACC2005C0A0022896E -:103D4000241400018F8700382404FF80000088219C -:103D500090E9000A2414000101243025A0E6000A9D -:103D60003C05080190A596B63C040801908496B9DC -:103D70000E0020EB000000008F8600388F85007851 -:103D800090C800FD310700FF000740400107F821FF -:103D9000001FC0800305C8219323000BA0C300FDB2 -:103DA0008F8500788F86003803056021918F000B86 -:103DB000000F704001CF6821000D808002051021A6 -:103DC0008C4B0000ACCB00548D8400048F830074B6 -:103DD0000064502319400002248200012462000183 -:103DE00001074821ACC2005C0009308000C54021B9 -:103DF00000E02021240500010E0020EB9110000BB3 -:103E00008F86003890C500FF10A0FF0C0010704096 -:103E10008F85007801D06821000D10800045582161 -:103E20008D6400008F8C00740184502325470001AD -:103E300004E0FF02263100013C030801906396B6BE -:103E40002E2F0002247800013C010801A03896B60C -:103E50003C010801A03496B711E0FEF802003821B9 -:103E60000A00235C000740408F8400388F83007471 -:103E70008C85005800A340230502FE9AAC830058AD -:103E80000A002232000000003C07080190E796D2A9 -:103E9000240200FF10E200BE8F8600383C110801AA -:103EA000963196DA3C030801246396D82625000152 -:103EB0003230FFFF30ABFFFF020360212D6A00FFAD -:103EC0001540008D918700043C010801A42096DA7A -:103ED0008F8800380007484001272821911800FFEB -:103EE000000530802405000127140001A11400FF03 -:103EF0003C120801925296D28F8800788F8E007003 -:103F0000264F000100C820213C010801A02F96D2B5 -:103F1000AC8E00008F8D0074A4850008AC8D000469 -:103F20003C030801906396B4146000770000902170 -:103F30003C010801A02596B4A087000B8F8C007867 -:103F400000CC5021A147000A8F820038A04700FD15 -:103F50008F840038A08700FE8F8600388F9F007006 -:103F6000ACDF00548F990074ACD900588F8D007865 -:103F70000127C02100185880016DA021928F000AEE -:103F8000000F704001CF182100038880022D80218E -:103F9000A207000B8F86007801666021918A000BD2 -:103FA000000A1040004A20210004288000A6402179 -:103FB000A107000A3C07800834E900808D22003008 -:103FC0008F860038ACC2005C0A00228924140001EC -:103FD00090CA00FF1540FEAD8F880074A0C4000990 -:103FE0000A0021CE8F860038A0C000FD8F980038CF -:103FF00024060001A30000FE3C010801A02696B59E -:104000003C010801A02096B40A0021BD0000000078 -:1040100090CB00FF3C040801908496D3316C00FFE4 -:104020000184502B1540000F2402000324020004D9 -:10403000A0C200090A0021CE8F86003890C3000A72 -:104040002410FF8002035824316C00FF1180FDC151 -:10405000000000003C010801A02096B50A0021BD27 -:1040600000000000A0C200090A0021CE8F8600389F -:1040700090D4000A2412FF8002544824312800FF03 -:104080001500FFF4240200083C010801A02296D18B -:104090000A0021CE00000000001088408F8B0070C5 -:1040A000023018210003688001A72021AC8B00009A -:1040B0008F8A0074240C0001A48C0008AC8A0004D0 -:1040C0003C05080190A596B62402000110A2FE1E30 -:1040D00024A5FFFF0A0022489084000B0184A0233E -:1040E0001A80FD8B000000003C010801A02E96B54F -:1040F0000A0022FC240B00013C010801A42596DAE9 -:104100000A0023AE8F880038240B0001106B0022B8 -:104110008F9800388F85003890BF00FF33F900FF7B -:104120001079002B000000003C1F080193FF96B897 -:10413000001FC840033FC0210018A08002887821DA -:1041400091EE000AA08E000A8F8D00783C030801D2 -:10415000906396B800CD88210A0023D4A223000BD7 -:10416000263000010600003101A490230640002BF8 -:10417000240200033C010801A02F96B50A0022FC8E -:10418000240B00018F8900380A002232AD27005429 -:104190000A00228824120001931400FDA094000B51 -:1041A0008F8800388F8F0078910E00FE00CF682135 -:1041B000A1AE000A8F910038A22700FD8F83007006 -:1041C0008F900038AE0300540A0023D58F8D0078FD -:1041D00090B000FEA090000A8F8B00388F8C007882 -:1041E000916A00FD00CC1021A04A000B8F8400389A -:1041F000A08700FE8F8600748F850038ACA600581B -:104200000A0023D58F8D007894B80008ACA4000470 -:10421000030378210A00227CA4AF00083C010801B6 -:10422000A02296B50A0021BD0000000090CF000931 -:10423000240D000431EE00FF11CDFD8524020001A4 -:104240003C010801A02296B50A0021BD0000000033 -:10425000080033440800334408003420080033F4D5 -:10426000080033D808003328080033280800332812 -:104270000800334C8008010080080080800800009E -:104280005F865437E4AC62CC50103A4536621985EB -:10429000BF14C0E81BC27A1E84F4B556094EA6FEB0 -:1042A0007DDA01E7C04D748108005A7408005AB8DD -:1042B00008005A5C08005A5C08005A5C08005A5C06 -:1042C00008005A7408005A5C08005A5C08005AC07A -:1042D00008005A5C080059D408005A5C08005A5C6F -:1042E00008005AC008005A5C08005A5C08005A5C72 -:1042F00008005A5C08005A5C08005A5C08005A5CC6 -:1043000008005A5C08005A5C08005A5C08005A947D -:1043100008005A5C08005A9408005A5C08005A5C6D -:1043200008005A5C08005A9808005A9408005A5C21 -:1043300008005A5C08005A5C08005A5C08005A5C85 -:1043400008005A5C08005A5C08005A5C08005A5C75 -:1043500008005A5C08005A5C08005A5C08005A5C65 -:1043600008005A5C08005A5C08005A5C08005A5C55 -:1043700008005A5C08005A5C08005A5C08005A9809 -:1043800008005A9808005A5C08005A9808005A5CBD -:1043900008005A5C08005A5C08005A5C08005A5C25 -:1043A00008005A5C08005A5C08005A5C08005A5C15 -:1043B00008005A5C08005A5C08005A5C08005A5C05 -:1043C00008005A5C08005A5C08005A5C08005A5CF5 -:1043D00008005A5C08005A5C08005A5C08005A5CE5 -:1043E00008005A5C08005A5C08005A5C08005A5CD5 -:1043F00008005A5C08005A5C08005A5C08005A5CC5 -:1044000008005A5C08005A5C08005A5C08005A5CB4 -:1044100008005A5C08005A5C08005A5C08005A5CA4 -:1044200008005A5C08005A5C08005A5C08005A5C94 -:1044300008005A5C08005A5C08005A5C08005A5C84 -:1044400008005A5C08005A5C08005A5C08005A5C74 -:1044500008005A5C08005A5C08005A5C08005A5C64 -:1044600008005A5C08005A5C08005A5C08005A5C54 -:1044700008005A5C08005A5C08005A5C08005A5C44 -:1044800008005A5C08005A5C08005A5C08005A5C34 -:1044900008005A5C08005A5C08005A5C08005A5C24 -:1044A00008005A5C08005A5C08005ADC0800782CA6 -:1044B00008007A90080078380800762C08007838D0 -:1044C000080078C4080078380800762C0800762C9C -:1044D0000800762C0800762C0800762C0800762C34 -:1044E0000800762C0800762C0800762C0800762C24 -:1044F00008007858080078480800762C0800762CC8 -:104500000800762C0800762C0800762C0800762C03 -:104510000800762C0800762C0800762C0800762CF3 -:104520000800762C0800762C08007848080082D80D -:1045300008008164080082A008008164080082707D -:104540000800804C080081640800816408008164D0 -:1045500008008164080081640800816408008164A7 -:104560000800816408008164080081640800816497 -:10457000080081640800818C08008D1008008E6C92 -:0C45800008008E4C080088B408008D284C -:04458C000A000124FC -:1045900000000000000000000000000D7470613693 -:1045A0002E322E31610000000602010100000000E1 -:1045B00000000000000000000000000000000000FB -:1045C00000000000000000000000000000000000EB -:1045D00000000000000000000000000000000000DB -:1045E00000000000000000000000000000000000CB -:1045F00000000000000000000000000000000000BB -:1046000000000000000000000000000000000000AA -:10461000000000000000000000000000000000009A -:1046200010000003000000000000000D0000000D5D -:104630003C020800244217203C03080024632A108F -:10464000AC4000000043202B1480FFFD24420004F6 -:104650003C1D080037BD2FFC03A0F0213C100800D2 -:10466000261004903C1C0800279C17200E000262B4 -:10467000000000000000000D2402FF8027BDFFE0C5 -:1046800000821024AFB00010AF420020AFBF00186E -:10469000AFB10014936500043084007F03441821F7 -:1046A0003C0200080062182130A500200360802130 -:1046B0003C080111277B000814A000022466005C5E -:1046C00024660058920200049743010492040004F7 -:1046D0003047000F3063FFFF30840040006728231D -:1046E00010800009000048219202000530420004B9 -:1046F000104000050000000010A0000300000000B2 -:1047000024A5FFFC240900049202000530420004A5 -:10471000104000120000000010A000100000000077 -:104720009602000200A72021010440252442FFFE3A -:10473000A7421016920300042402FF8000431024B5 -:10474000304200FF104000033C0204000A000174E4 -:10475000010240258CC20000AF4210188F42017840 -:104760000440FFFE2402000AA74201409602000214 -:1047700024040009304200070002102330420007E1 -:10478000A7420142960200022442FFFEA7420144D2 -:10479000A740014697420104A74201488F42010801 -:1047A0003042002050400001240400019202000425 -:1047B00030420010144000023483001000801821A1 -:1047C000A743014A000000000000000000000000B4 -:1047D00000000000AF4810000000000000000000D2 -:1047E00000000000000000008F4210000441FFFEA6 -:1047F0003102FFFF10400007000000009202000499 -:104800003042004014400003000000008F421018A6 -:10481000ACC20000960200063042FFFF24420002B4 -:10482000000210430002104003628821962200001B -:104830001120000D3044FFFF00A710218F830038A6 -:104840008F45101C000210820002108000431021CE -:10485000AC45000030A6FFFF0E00058D00052C02C0 -:1048600000402021A6220000920300042402FF80C1 -:1048700000431024304200FF1040001F00000000E1 -:1048800092020005304200021040001B00000000B0 -:104890009742100C2442FFFEA742101600000000B1 -:1048A0003C02040034420030AF421000000000001F -:1048B0000000000000000000000000008F42100017 -:1048C0000441FFFE000000009742100C8F45101CB1 -:1048D0003042FFFF244200300002108200021080AC -:1048E000005B1021AC45000030A6FFFF0E00058DD7 -:1048F00000052C02A6220000960400022484000871 -:104900000E0001E93084FFFF974401040E0001F717 -:104910003084FFFF8FBF00188FB100148FB00010DC -:104920003C02100027BD002003E00008AF420178E0 -:104930003084FFFF308200078F8500241040000282 -:10494000248300073064FFF800A4102130421FFFC9 -:1049500003421821247B4000AF850028AF82002449 -:1049600003E00008AF4200843084FFFF3082000F74 -:104970008F85002C8F860034104000022483000FA6 -:104980003064FFF000A410210046182BAF850030E2 -:104990000046202314600002AF82002CAF84002C5C -:1049A0008F82002C340480000342182100641821F7 -:1049B000AF83003803E00008AF4200808F8200140C -:1049C000104000088F8200048F82FFDC1440000535 -:1049D0008F8200043C02FFBF3442FFFF008220248C -:1049E0008F82000430430006240200021062000F90 -:1049F0003C0201012C620003504000052402000427 -:104A00001060000F3C0200010A00023000000000AC -:104A100010620005240200061462000C3C02011121 -:104A20000A000229008210253C0200110082102594 -:104A3000AF421000240200010A000230AF82000CD5 -:104A400000821025AF421000AF80000C0000000073 -:104A5000000000000000000003E00008000000006B -:104A60008F82000C10400004000000008F421000F4 -:104A70000441FFFE0000000003E000080000000009 -:104A80008F8200102443F800000231C224C2FFF0DC -:104A90002C63030110600003000210420A00025759 -:104AA000AC8200008F85001800C5102B1440000B4D -:104AB0000000182100C51023244700018F82001C2C -:104AC00000A210212442FFFF0046102B5440000496 -:104AD0002402FFFF0A000257AC8700002402FFFFF8 -:104AE0000A000260AC8200008C82000000021940C3 -:104AF000006218210003188000621821000318804A -:104B00003C0208002442175C0062182103E0000800 -:104B10000060102127BDFFD8AFBF0020AFB1001C3F -:104B2000AFB000183C0460088C8250002403FF7F63 -:104B30003C066000004310243442380CAC82500024 -:104B40008CC24C1C3C1A8000000216023042000F3E -:104B500010400007AF82001C8CC34C1C3C02001F9D -:104B60003442FC0000621824000319C2AF8300180D -:104B70008F420008275B400034420001AF4200082A -:104B8000AF8000243C02601CAF400080AF40008436 -:104B90008C4500088CC308083402800003422021A1 -:104BA0002402FFF0006218243C0200803C0108004F -:104BB000AC2204203C025709AF8400381462000480 -:104BC000AF850034240200010A000292AF82001473 -:104BD000AF8000148F4200003842000130420001D3 -:104BE0001440FFFC8F8200141040001600000000EB -:104BF00097420104104000058F83000014600007F5 -:104C00002462FFFF0A0002A72C62000A2C62001037 -:104C1000504000048F83000024620001AF82000036 -:104C20008F8300002C62000A144000032C620007EE -:104C30000A0002AEAF80FFDC104000022402000137 -:104C4000AF82FFDC8F4301088F44010030622000F7 -:104C5000AF83000410400008AF8400103C0208003D -:104C60008C42042C244200013C010800AC22042C9C -:104C70000A00058A3C0240003065020014A00003CF -:104C800024020F001482026024020D0097420104E6 -:104C9000104002C83C02400030624000144000ADA9 -:104CA0008F8200388C4400088F4201780440FFFE58 -:104CB00024020800AF42017824020008A742014004 -:104CC000A7400142974201048F8400043051FFFF46 -:104CD0003082000110400007022080212623FFFEC1 -:104CE000240200023070FFFFA74201460A0002DBE7 -:104CF000A7430148A74001463C0208008C42043CFF -:104D00001440000D8F8300103082002014400002F8 -:104D10002403000924030001006020218F83001078 -:104D2000240209005062000134840004A744014AAF -:104D30000A0002F60000000024020F0014620005C1 -:104D400030820020144000062403000D0A0002F502 -:104D50002403000514400002240300092403000179 -:104D6000A743014A3C0208008C4204203C0400484E -:104D70000E00020C004420250E0002350000000049 -:104D80008F82000C1040003E000000008F42100097 -:104D90003C03002000431024104000398F8200049F -:104DA000304200021040003600000000974210140C -:104DB0001440003300000000974210088F8800382C -:104DC0003042FFFF244200060002188200033880B0 -:104DD00000E83021304300018CC400001060000462 -:104DE000304200030000000D0A00033700E81021E4 -:104DF000544000103084FFFF3C05FFFF0085202455 -:104E0000008518260003182B0004102B00431024E3 -:104E10001040000500000000000000000000000D30 -:104E200000000000240002228CC200000A000336A9 -:104E3000004520253883FFFF0003182B0004102BAA -:104E40000043102410400005000000000000000096 -:104E50000000000D000000002400022B8CC20000A6 -:104E60003444FFFF00E81021AC4400003C0208007D -:104E70008C420430244200013C010800AC22043082 -:104E80008F6200008F840038AF8200088C8300009E -:104E90003402FFFF1462000F000010213C050800DF -:104EA0008CA504543C0408008C84045000B02821D4 -:104EB00000B0302B00822021008620213C01080018 -:104EC000AC2504543C010800AC2404500A000580C1 -:104ED000240400088C820000304201001040000FC2 -:104EE000000010213C0508008CA5044C3C0408007F -:104EF0008C84044800B0282100B0302B008220218F -:104F0000008620213C010800AC25044C3C0108002F -:104F1000AC2404480A000580240400083C0508006D -:104F20008CA504443C0408008C84044000B0282173 -:104F300000B0302B00822021008620213C01080097 -:104F4000AC2504443C010800AC2404400A00058060 -:104F5000240400088F6200088F620000000216021D -:104F6000304300F0240200301062000524020040AB -:104F7000106200E08F8200200A00058824420001B0 -:104F800014A0000500000000000000000000000D5B -:104F900000000000240002568F4201780440FFFE0A -:104FA000000000000E00023D27A400101440000580 -:104FB00000408021000000000000000D0000000003 -:104FC0002400025D8E020000104000050000000079 -:104FD000000000000000000D00000000240002603E -:104FE0008F62000C04430003240200010A00042E17 -:104FF000AE000000AE0200008F8200388C4800082E -:10500000A20000078F65000C8F64000430A3FFFF2F -:105010000004240200852023308200FF0043102179 -:1050200024420005000230832CC20081A605000A3C -:1050300014400005A2040004000000000000000D60 -:1050400000000000240002788F8500380E0005ABB8 -:10505000260400148F6200048F430108A602000892 -:105060003C021000006218241060000800000000DC -:1050700097420104920300072442FFEC34630002CC -:105080003045FFFF0A0003C3A20300079742010453 -:105090002442FFF03045FFFF960600082CC20013A3 -:1050A00054400005920300079202000734420001B9 -:1050B000A20200079203000724020001106200050B -:1050C000240200031062000B8F8200380A0003E004 -:1050D00030C6FFFF8F8200383C04FFFF8C43000C7A -:1050E0000064182400651825AC43000C0A0003E096 -:1050F00030C6FFFF3C04FFFF8C43001000641824FF -:1051000000651825AC43001030C6FFFF24C2000222 -:1051100000021083A20200058F830038304200FF96 -:1051200000021080004328218CA800008CA20000FF -:1051300024030004000217021443001200000000C0 -:10514000974201043C03FFFF010318243042FFFF94 -:10515000004610232442FFFE00624025ACA8000058 -:1051600092030005306200FF000210800050102101 -:10517000904200143042000F004310210A00041531 -:10518000A20200068CA40004974201049603000AC0 -:105190003088FFFF3042FFFF004610232442FFD635 -:1051A0000002140001024025ACA80004920200078E -:1051B000920400052463002800031883006418216A -:1051C00034420004A2030006A20200078F820004FA -:1051D0002403FFFB3442000200431024AF8200048A -:1051E000920300068F87003800031880007010219A -:1051F0008C4400203C02FFF63442FFFF0082402432 -:1052000000671821AE04000CAC68000C9205000683 -:105210003C03FF7F8E02000C0005288000B0202197 -:105220003463FFFF010330249488002600A728215F -:1052300000431024AE02000CAC860020AC88002491 -:10524000ACA8001024020010A74201402402000272 -:10525000A7400142A7400144A742014697420104EA -:105260003C0400082442FFFEA7420148240200013A -:105270000E00020CA742014A9603000A92020004A3 -:105280000043102124420002304200070002102394 -:10529000304200070E000235AE0200108F6200009F -:1052A0003C0308008C63044424040010AF8200080F -:1052B000974201043042FFFF2442FFFE00403821A4 -:1052C000000237C33C0208008C42044000671821EA -:1052D0000067282B00461021004510213C010800E2 -:1052E000AC2304443C010800AC2204400A0005152C -:1052F0000000000014A000050000000000000000F5 -:105300000000000D000000002400030A8F42017815 -:105310000440FFFE000000000E00023D27A4001420 -:105320001440000500408021000000000000000D36 -:1053300000000000240003118E020000544000060B -:1053400092020007000000000000000D00000000B5 -:105350002400031C920200073042000410400005A4 -:105360008F8200042403FFFB344200020043102418 -:10537000AF8200048F620004044300089202000719 -:10538000920200068E03000CAE00000000021080A6 -:1053900000501021AC43002092020007304200046C -:1053A000544000099602000A920200053C030001E5 -:1053B00000021080005010218C46001800C33021DC -:1053C000AC4600189602000A9206000427710008F5 -:1053D0000220202100C2302124C600052605001429 -:1053E0000E0005AB00063082920400068F650004B3 -:1053F0003C027FFF00042080009120218C83000468 -:105400003442FFFF00A2282400651821AC83000469 -:105410009202000792040005920300043042000447 -:105420001040001496070008308400FF000420801C -:10543000009120218C860004974201049605000A01 -:10544000306300FF3042FFFF004310210045102170 -:1054500030E3FFFF004310232442FFD830C6FFFF94 -:105460000002140000C23025AC8600040A0004C902 -:1054700092030007308500FF0005288000B1282135 -:105480008CA4000097420104306300FF3042FFFF0C -:1054900000431021004710233C03FFFF008320241A -:1054A0003042FFFF00822025ACA4000092030007D9 -:1054B0002402000110620006000000002402000324 -:1054C00010620011000000000A0004EC8E030010BE -:1054D00097420104920300049605000A8E24000CF2 -:1054E00000431021004510212442FFF23C03FFFF3E -:1054F000008320243042FFFF00822025AE24000CD0 -:105500000A0004EC8E030010974201049203000489 -:105510009605000A8E24001000431021004510213A -:105520002442FFEE3C03FFFF008320243042FFFFB4 -:1055300000822025AE2400108E0300102402000AF1 -:10554000A7420140A74301429603000A92020004C9 -:105550003C04004000431021A7420144A7400146FB -:1055600097420104A7420148240200010E00020CE8 -:10557000A742014A0E000235000000008F620000C1 -:105580009203000400002021AF820008974201042A -:105590009606000A3042FFFF0062182100602821B1 -:1055A0003C0308008C6304443C0208008C42044025 -:1055B00000651821004410210065382B0047102198 -:1055C0003C010800AC2304443C010800AC22044028 -:1055D00092040004008620212484000A3084FFFF06 -:1055E0000E0001E900000000974401043084FFFF31 -:1055F0000E0001F7000000003C021000AF420178ED -:105600000A0005878F82002014820027306200067E -:1056100097420104104000673C02400030624000A5 -:105620001040000500000000000000000000000D18 -:1056300000000000240004208F4201780440FFFE97 -:1056400024020800AF42017824020008A74201406A -:10565000A74001428F8200049743010430420001B9 -:10566000104000073070FFFF2603FFFE24020002F7 -:10567000A7420146A74301480A00053F2402000D46 -:10568000A74001462402000DA742014A8F62000094 -:1056900024040008AF8200080E0001E900000000A9 -:1056A0000A00051902002021104000423C0240007F -:1056B00093620000304300F02402001010620005E5 -:1056C00024020070106200358F8200200A000588D5 -:1056D000244200018F620000974301043050FFFF15 -:1056E0003071FFFF8F4201780440FFFE3202000755 -:1056F00000021023304200072403000A2604FFFEA4 -:10570000A7430140A7420142A7440144A7400146E4 -:10571000A75101488F420108304200201440000286 -:105720002403000924030001A743014A0E00020CD0 -:105730003C0400400E000235000000003C07080059 -:105740008CE70444021110212442FFFE3C060800AD -:105750008CC604400040182100E3382100001021CD -:105760008F65000000E3402B00C2302126040008B2 -:1057700000C830213084FFFFAF8500083C010800DD -:10578000AC2704443C010800AC2604400E0001E9AB -:10579000000000000A000519022020210E00013B34 -:1057A000000000008F82002024420001AF82002010 -:1057B0003C024000AF4201380A00029200000000A3 -:1057C0003084FFFF30C6FFFF00052C0000A628250F -:1057D0003882FFFF004510210045282B004510218D -:1057E00000021C023042FFFF0043102100021C0295 -:1057F0003042FFFF004310213842FFFF03E0000862 -:105800003042FFFF3084FFFF30A5FFFF000018216A -:1058100010800007000000003082000110400002EC -:1058200000042042006518210A0005A10005284057 -:1058300003E000080060102110C0000624C6FFFF2E -:105840008CA2000024A50004AC8200000A0005AB75 -:105850002484000403E000080000000010A00008F9 -:1058600024A3FFFFAC860000000000000000000041 -:105870002402FFFF2463FFFF1462FFFA2484000464 -:0858800003E000080000000035 -:04588800000000011B -:04588C000A00002AE4 -:1058900000000000000000000000000D7478703669 -:1058A0002E322E31610000000602010000000000CF -:1058B000000001360000EA60000000000000000067 -:1058C00000000000000000000000000000000000D8 -:1058D00000000000000000000000000000000000C8 -:1058E00000000000000000000000000000000016A2 -:1058F00000000000000000000000000000000000A8 -:105900000000000000000000000000000000000097 -:105910000000000000000000000000000000000087 -:10592000000000000000138800000000000005DCFB -:105930000000000000000000100000030000000054 -:105940000000000D0000000D3C02080024423D68EC -:105950003C0308002463401CAC4000000043202BA3 -:105960001480FFFD244200043C1D080037BD7FFC6D -:1059700003A0F0213C100800261000A83C1C0800E1 -:10598000279C3D680E00044E000000000000000D42 -:1059900027BDFFB4AFA10000AFA20004AFA3000871 -:1059A000AFA4000CAFA50010AFA60014AFA700185D -:1059B000AFA8001CAFA90020AFAA0024AFAB0028FD -:1059C000AFAC002CAFAD0030AFAE0034AFAF00389D -:1059D000AFB8003CAFB90040AFBC0044AFBF004817 -:1059E0000E000591000000008FBF00488FBC0044EE -:1059F0008FB900408FB8003C8FAF00388FAE0034B5 -:105A00008FAD00308FAC002C8FAB00288FAA002404 -:105A10008FA900208FA8001C8FA700188FA6001444 -:105A20008FA500108FA4000C8FA300088FA2000484 -:105A30008FA1000027BD004C3C1B60048F7A5030C2 -:105A4000377B502803400008AF7A00008F86003C67 -:105A50003C0390003C0280000086282500A32025FE -:105A6000AC4400203C0380008C67002004E0FFFE73 -:105A70000000000003E00008000000000A000070C1 -:105A8000240400018F85003C3C0480003483000125 -:105A900000A3102503E00008AC82002003E000080A -:105AA000000010213084FFFF30A5FFFF10800007A9 -:105AB0000000182130820001104000020004204242 -:105AC000006518211480FFFB0005284003E0000852 -:105AD0000060102110C00007000000008CA2000030 -:105AE00024C6FFFF24A50004AC82000014C0FFFB05 -:105AF0002484000403E000080000000010A0000857 -:105B000024A3FFFFAC86000000000000000000009E -:105B10002402FFFF2463FFFF1462FFFA24840004C1 -:105B200003E000080000000090AA00318FAB0010D5 -:105B30008CAC00403C0300FF8D680004AD6C00207D -:105B40008CAD004400E060213462FFFFAD6D0024A5 -:105B50008CA700483C09FF000109C024AD6700285C -:105B60008CAE004C0182C82403197825AD6F000467 -:105B7000AD6E002C8CAD0038314A00FFAD6D001CBD -:105B800094A900323128FFFFAD68001090A70030C3 -:105B9000A5600002A1600004A167000090A300328C -:105BA000306200FF00021982106000052405000128 -:105BB0001065000E0000000003E00008A16A00016B -:105BC0008CD80028354A0080AD7800188CCF00149E -:105BD000AD6F00148CCE0030AD6E00088CC4002C6C -:105BE000A16A000103E00008AD64000C8CCD001C2C -:105BF000AD6D00188CC90014AD6900148CC8002468 -:105C0000AD6800088CC70020AD67000C8CC2001482 -:105C10008C8300700043C82B132000070000000095 -:105C20008CC20014144CFFE400000000354A0080D0 -:105C300003E00008A16A00018C8200700A0000E6FF -:105C4000000000009089003027BDFFF88FA8001CDD -:105C5000A3A900008FA300003C0DFF8035A2FFFF29 -:105C60008CAC002C00625824AFAB0000A1000004F3 -:105C700000C05821A7A000028D06000400A0482102 -:105C80000167C8218FA50000008050213C18FF7FCC -:105C9000032C20263C0E00FF2C8C0001370FFFFF49 -:105CA00035CDFFFF3C02FF0000AFC82400EDC0244B -:105CB00000C27824000C1DC00323682501F870255C -:105CC000AD0D0000AD0E00048D240024AFAD00002A -:105CD000AD0400088D2C00202404FFFFAD0C000C47 -:105CE0009547003230E6FFFFAD06001091450048B1 -:105CF00030A200FF000219C2506000018D24003460 -:105D0000AD0400148D4700388FAA001827BD000885 -:105D1000AD0B0028AD0A0024AD07001CAD00002C1F -:105D2000AD00001803E00008AD00002027BDFFE033 -:105D3000AFB20018AFB10014AFB00010AFBF001C7D -:105D40009098003000C088213C0D00FF330F007F89 -:105D5000A0CF0000908E003135ACFFFF3C0AFF0061 -:105D6000A0CE000194A6001EA22000048CAB00145B -:105D70008E29000400A08021016C2824012A4024DF -:105D80000080902101052025A6260002AE240004F3 -:105D900026050020262400080E000092240600029A -:105DA00092470030260500282624001400071E0014 -:105DB0000003160324060004044000032403FFFF2D -:105DC000965900323323FFFF0E000092AE230010DD -:105DD000262400248FBF001C8FB200188FB100143E -:105DE0008FB0001024050003000030210A00009C41 -:105DF00027BD002027BDFFD8AFB1001CAFB00018F1 -:105E0000AFBF002090A900302402000100E0502123 -:105E10003123003F00A040218FB000400080882146 -:105E200000C04821106200148FA70038240B000521 -:105E300000A0202100C02821106B00130200302197 -:105E40000E000128000000009225007C30A4000212 -:105E50001080000326030030AE000030260300341B -:105E60008FBF00208FB1001C8FB000180060102180 -:105E700003E0000827BD00280E0000A7AFB0001007 -:105E80000A00016F000000008FA3003C01002021E8 -:105E90000120282101403021AFA300100E0000EEA8 -:105EA000AFB000140A00016F000000003C06800043 -:105EB00034C20E008C4400108F850044ACA4002036 -:105EC0008C43001803E00008ACA300243C068000CB -:105ED00034C20E008C4400148F850044ACA4002012 -:105EE0008C43001C03E00008ACA300249382000C48 -:105EF0001040001B2483000F2404FFF000643824AA -:105F000010E00019978B00109784000E9389000D04 -:105F10003C0A601C0A0001AC0164402301037021AB -:105F2000006428231126000231C2FFFF30A2FFFFC8 -:105F30000047302B50C0000E00E448218D4D000C6E -:105F400031A3FFFF00036400000C2C0304A1FFF346 -:105F50000000302130637FFF0A0001A42406000105 -:105F600003E00008000000009784000E00E44821D0 -:105F70003123FFFF3168FFFF0068382B54E0FFF842 -:105F8000A783000E938A000D11400005240F000125 -:105F9000006BC023A380000D03E00008A798000E4B -:105FA000006BC023A38F000D03E00008A798000E2C -:105FB00003E000080000000027BDFFE8AFB00010BC -:105FC0003C10800036030140308BFFFF93AA002B6A -:105FD000AFBF0014A46B000436040E0094880016B2 -:105FE00030C600FF8FA90030A4680006AC65000829 -:105FF000A0660012A46A001AAC6700208FA5002CCE -:10600000A4690018012020210E000198AC6500143D -:106010003C021000AE0201788FBF00148FB0001058 -:1060200003E0000827BD00188F85000024840007C6 -:1060300027BDFFF83084FFF83C06800094CB008A2F -:10604000316AFFFFAFAA00008FA90000012540239D -:106050002507FFFF30E31FFF0064102B1440FFF7FC -:1060600000056882000D288034CC400000AC10216F -:1060700003E0000827BD00088F8200002486000787 -:1060800030C5FFF800A2182130641FFF03E00008AC -:10609000AF8400008F87003C8F84004427BDFFB091 -:1060A000AFB70044AFB40038AFB1002CAFBF004869 -:1060B000AFB60040AFB5003CAFB30034AFB2003074 -:1060C000AFB000283C0B80008C860024AD670080B8 -:1060D0008C8A002035670E0035690100ACEA00109B -:1060E0008C8800248D2500040000B821ACE800183D -:1060F0008CE3001000A688230000A021ACE300146C -:106100008CE20018ACE2001C122000FE00E0B0217E -:10611000936C0008118000F400000000976F0010DD -:1061200031EEFFFF022E682B15A000EF00000000EB -:10613000977200103250FFFFAED000003C03800089 -:106140008C740000329300081260FFFD0000000014 -:1061500096D800088EC700043305FFFF30B5000154 -:1061600012A000E4000000000000000D30BFA040BD -:106170002419004013F9011B30B4A000128000DF85 -:106180000000000093730008126000080000000087 -:10619000976D001031ACFFFF00EC202B1080000346 -:1061A00030AE004011C000D500000000A7850040BF -:1061B000AF8700389363000802202821AFB1002088 -:1061C000146000F527B40020AF60000C978F0040EA -:1061D00031F1400016200002240300162403000EB3 -:1061E00024054007A363000AAF650014938A0042A8 -:1061F0008F7000143155000100151240020248252D -:10620000AF690014979F00408F78001433F9001095 -:1062100003194025AF6800149792004032470008E8 -:1062200010E0016E000000008F6700143C121000A7 -:106230003C11800000F27825AF6F001436230E0069 -:10624000946E000A3C0D81002406000E31CCFFFF45 -:10625000018D2025AF640004A36600029373000A39 -:106260003406FFFC266B0004A36B000A97980040DD -:10627000330820001100015F000000003C05800091 -:1062800034A90E00979900409538000C978700407C -:10629000001940423312C0003103000300127B0397 -:1062A00030F11000006F68250011720301AE602507 -:1062B000000C20C0A764001297930040936A000A64 -:1062C000001359823175003C02AA10212450003C71 -:1062D000A3700009953F000C33F93FFFA779001028 -:1062E00097700012936900090130F82127E5000238 -:1062F00030B900070019C02333080007A368000B5A -:106300009371000997720012976F0010322700FFF7 -:106310008F910038978D004000F21821006F702196 -:1063200001C6602131A6004010C000053185FFFF85 -:1063300000B1102B3C128000104000170000982183 -:106340000225A82B56A0013E8FA500203C0480000A -:10635000348A0E008D5300143C068000AD530010AB -:106360008D4B001CAD4B0018AD4500008CCD0000DE -:1063700031AC00081180FFFD34CE0E0095C300083B -:1063800000A0882100009021A78300408DC6000452 -:1063900024130001AF860038976F001031F5FFFF1E -:1063A0008E9F000003F1282310A0011FAE8500007E -:1063B00093620008144000DD000000000E0001E7B9 -:1063C000240400108F900048004028213C02320035 -:1063D000320600FF000654000142F825260900019C -:1063E000AF890048ACBF000093790009977800128C -:1063F000936F000A332800FF3303FFFF01033821A6 -:1064000000076C0031EE00FF01AE6025ACAC00046B -:106410008F840048978B0040316A20001140010AA8 -:10642000ACA4000897640012308BFFFF06400108FF -:10643000ACAB000C978E004031C5000814A00002E0 -:1064400026280006262800023C1F800037E70E00A1 -:1064500094F900148CE5001C8F6700049378000207 -:106460003324FFFF330300FFAFA300108F6F00142E -:10647000AFA800180E0001CBAFAF00142404001029 -:106480000E0001FB000000008E9200001640000587 -:10649000000000008F7800142403FFBF0303A02432 -:1064A000AF7400148F67000C00F5C821AF79000CA1 -:1064B0009375000816A00008000000001260000696 -:1064C000000000008F6800143C0AEFFF3549FFFE12 -:1064D0000109F824AF7F0014A37300088FA50020E2 -:1064E0000A00034F02202021AED100000A00022D35 -:1064F0003C03800014E0FF1E30BFA0400E0001905E -:106500000000A0212E9100010237B02512C0001812 -:106510008FBF00488F87003C24170F0010F700D46E -:106520003C0680008CD901780720FFFE241F0F0055 -:1065300010FF00F634CA0E008D56001434C7014017 -:1065400024080240ACF600048D49001C3C141000E5 -:10655000ACE90008A0E00012A4E0001AACE00020C2 -:10656000A4E00018ACE80014ACD401788FBF004858 -:106570008FB700448FB600408FB5003C8FB4003811 -:106580008FB300348FB200308FB1002C8FB0002851 -:1065900003E0000827BD00508F9100389788004025 -:1065A0003C1280000220A8213107004014E0FF7C4B -:1065B00000009821977900108F9200383338FFFF40 -:1065C000131200A8000020210080A021108000F3F9 -:1065D00000A088211620FECE000000000A00031F44 -:1065E0002E9100013C0380008C6201780440FFFE84 -:1065F000240808008F860000AC6801783C03800006 -:10660000946D008A31ACFFFF01865823256AFFFF95 -:1066100031441FFF2C8900081520FFF900000000FD -:106620008F8F0048347040008F83003C00E0A02131 -:10663000240E0F0025E70001AF87004800D030216D -:10664000023488233C08800031F500FF106E0005FD -:106650002407000193980042331300010013924075 -:1066600036470001001524003C0A0100008A482535 -:10667000ACC900008F82004830BF003630B9000836 -:10668000ACC200041320009900FF982535120E00BB -:106690009650000A8F8700003C0F81003203FFFFF5 -:1066A00024ED000835060140006F60253C0E100007 -:1066B00031AB1FFF269200062405000EACCC002053 -:1066C000026E9825A4C5001AAF8B0000A4D2001852 -:1066D000162000083C1080008F89003C24020F0027 -:1066E0005122000224170001367300400E00018879 -:1066F0003C10800036060E008CCB0014360A014098 -:1067000002402021AD4B00048CC5001CAD450008A3 -:10671000A1550012AD5300140E0001983C15100055 -:10672000AE1501780A00035200000000936F0009C3 -:10673000976E0012936D000B31E500FF00AE202133 -:1067400031AC00FF008C80212602000A3050FFFF90 -:106750000E0001E7020020218F8600483C03410023 -:106760003C05800024CB0001AF8B0048936A0009F0 -:106770009769001230C600FF315F00FF3128FFFF2C -:1067800003E8382124F900020006C4000319782523 -:1067900001E37025AC4E00008F6D000C34A40E0098 -:1067A000948B001401B26025AC4C00048C85001C55 -:1067B0008F670004936A00023164FFFF314900FFD4 -:1067C000AFA900108F680014AFB100180E0001CB04 -:1067D000AFA800140A0002FD02002021AF600004EF -:1067E000A360000297980040330820001500FEA324 -:1067F00000003021A760001297840040936B000ACC -:106800003C10800030931F0000135183014BA821DE -:1068100026A20028A362000936090E00953F000C4D -:106820000A000295A77F00108F70001436090040FF -:106830000E000188AF6900140A0002C900000000C0 -:106840000A00034F000020210641FEFAACA0000C14 -:106850008CAC000C3C0D8000018D90250A0002EAF2 -:10686000ACB2000C000090210A0002C52413000104 -:10687000128000073C028000344B0E009566000831 -:1068800030D3004012600049000000003C06800048 -:106890008CD001780600FFFE34C50E0094B50010C0 -:1068A0003C03050034CC014032B8FFFF03039025C0 -:1068B000AD92000C8CAF0014240D20003C0410009D -:1068C000AD8F00048CAE001CAD8E0008A1800012BC -:1068D000A580001AAD800020A5800018AD8D0014A1 -:1068E000ACC401780A0003263C0680008F9F00009C -:1068F000351801402692000227F9000833281FFFAF -:10690000A71200180A000391AF8800003C02800023 -:1069100034450140ACA0000C1280001B34530E0023 -:1069200034510E008E370010ACB700048E240018CE -:106930003C0B8000ACA400083570014024040040EA -:10694000A20000128FBF0048A600001A8FB70044B3 -:10695000AE0000208FB60040A60000188FB5003CA6 -:10696000AE0400148FB400388FB300348FB20030FF -:106970008FB1002C8FB000283C02100027BD0050C2 -:1069800003E00008AD6201788E660014ACA6000436 -:106990008E64001C0A00042A3C0B80000E0001904B -:1069A0002E9100010A0003200237B02500000000EC -:1069B0000000000D00000000240003690A0004012B -:1069C0003C06800027BDFFD8AFBF00203C098000F7 -:1069D0003C1F20FFAFB200183C07600035320E00AC -:1069E0002402001037F9FFFDACE23008AFB3001C01 -:1069F000AFB10014AFB00010AE59000000000000AD -:106A00000000000000000000000000000000000086 -:106A10003C1800FF3713FFFDAE5300003C0B600431 -:106A20008D7050002411FF7F3C0E0002021178246B -:106A300035EC380C35CD0109ACED4C18240A0009B1 -:106A4000AD6C50008CE80438AD2A0008AD2000146D -:106A50008CE54C1C3106FFFF38C42F7100051E0267 -:106A60003062000F2486C0B310400007AF820008D8 -:106A70008CE54C1C3C09001F3528FC0000A818249C -:106A8000000321C2AF8400048CF108083C0F5709B1 -:106A90002412F0000232702435F0001001D060267C -:106AA00001CF68262DAA00012D8B0001014B38254E -:106AB00050E00009A380000C3C1F601C8FF8000808 -:106AC00024190001A399000C33137C00A793001034 -:106AD000A780000EA380000DAF80004814C0000303 -:106AE000AF8000003C066000ACC0442C0E0005B92D -:106AF0003C1080000E000F1A361101003C120800F5 -:106B000026523DD03C13080026733E508E030000F1 -:106B100038640001308200011440FFFC3C0B800A05 -:106B20008E2600002407FF8024C90240312A007FFE -:106B3000014B402101272824AE060020AF880044E5 -:106B4000AE0500243C048000AF86003C8C8C0178AC -:106B50000580FFFE24180800922F0008AC980178E9 -:106B6000A38F0042938E004231CD000111A0000F8F -:106B700024050D0024DFF8002FF903011320001C69 -:106B8000000629C224A4FFF0000410420002314094 -:106B90000E00020200D2D8213C0240003C068000D8 -:106BA000ACC201380A0004A00000000010C5002398 -:106BB000240D0F0010CD00273C1F800837F90080FE -:106BC00093380000240E0050330F00FF15EEFFF342 -:106BD0003C0240000E000A36000000003C0240006B -:106BE0003C068000ACC201380A0004A0000000008E -:106BF0008F83000400A3402B1500000B8F8B00082F -:106C0000006B50212547FFFF00E5482B15200006AB -:106C100000A36023000C19400E0002020073D8216B -:106C20000A0004C43C0240000000000D0E000202F5 -:106C3000000000000A0004C43C0240003C1B0800A5 -:106C4000277B3F500E000202000000000A0004C42F -:106C50003C0240003C1B0800277B3F700E000202F4 -:106C6000000000000A0004C43C0240003C0660042E -:106C70003C09080025290104ACC9502C8CC85000DF -:106C80003C0580003C02000235070080ACC7500084 -:106C90003C040800248415A43C0308002463155C0C -:106CA000ACA50008ACA2000C3C010800AC243D607F -:106CB0003C010800AC233D6403E00008240200010D -:106CC00000A030213C1C0800279C3D683C0C0400BF -:106CD0003C0B0002008B3826008C40262CE2000181 -:106CE0000007502B2D050001000A48803C030800D6 -:106CF00024633D60004520250123182110800003F6 -:106D000000001021AC6600002402000103E000082E -:106D1000000000003C1C0800279C3D683C0B040060 -:106D20003C0A0002008A3026008B38262CC2000163 -:106D30000006482B2CE50001000940803C030800B8 -:106D400024633D60004520250103182110800005C3 -:106D5000000010213C0C0800258C155CAC6C000078 -:106D60002402000103E00008000000003C090002CA -:106D70003C08040000883026008938262CC3000116 -:106D8000008028212CE40001008310251040000B16 -:106D9000000030213C1C0800279C3D683C0A800014 -:106DA0008D4E00082406000101CA6825AD4D00087B -:106DB0008D4C000C01855825AD4B000C03E00008FC -:106DC00000C010213C1C0800279C3D683C05800049 -:106DD0008CA6000C000420272402000100C4182403 -:106DE00003E00008ACA3000C3C0200021082000B80 -:106DF0003C0560003C070400108700030000000011 -:106E000003E00008000000008CA908D0240AFFFD60 -:106E1000012A402403E00008ACA808D08CA408D0C4 -:106E20002406FFFE0086182403E00008ACA308D067 -:106E30003C05601A34A600108CC3008027BDFFF803 -:106E40008CC50084AFA3000093A4000024020001BD -:106E500010820003AFA5000403E0000827BD00086E -:106E600093A7000114E0001497AC000297B8000249 -:106E70003C0F8000330EFFFC01CF6821ADA5000060 -:106E8000A3A000003C0660008CC708D02408FFFEC9 -:106E90003C04601A00E82824ACC508D08FA3000485 -:106EA0008FA200003499001027BD0008AF22008097 -:106EB00003E00008AF2300843C0B8000318AFFFC14 -:106EC000014B48218D2800000A00057DAFA8000471 -:106ED00027BDFFE8AFBF00103C1C0800279C3D68A1 -:106EE0003C0580008CA4000C8CA200043C03000232 -:106EF0000044282410A0000A00A318243C06040023 -:106F00003C0400021460000900A610241440000F85 -:106F10003C0404000000000D3C1C0800279C3D6858 -:106F20008FBF001003E0000827BD00183C020800D6 -:106F30008C423D600040F809000000003C1C080045 -:106F4000279C3D680A0005A68FBF00103C02080080 -:106F50008C423D640040F809000000000A0005ACC6 -:106F600000000000000411C003E0000824420240B9 -:106F70003C04080024843FB42405001A0A00009C45 -:106F80000000302127BDFFE0AFB000103C108000B2 -:106F9000AFBF0018AFB100143611010092220009F2 -:106FA0000E0005B63044007F8E3F00008F89003C04 -:106FB0003C0F008003E26021258800400049F82151 -:106FC000240DFF80310E00783198007835F90001EA -:106FD00035F100020319382501D14825010D30246F -:106FE00003ED5824018D2824240A00402404008045 -:106FF000240300C0AE0B0024AE000810AE0A081433 -:10700000AE040818AE03081CAE050804AE0708203D -:10701000AE060808AE090824360909009539000CA7 -:107020003605098033ED007F3338FFFF001889C033 -:10703000AE110800AE0F0828952C000C8FBF001869 -:107040008FB10014318BFFFF000B51C0AE0A002C32 -:107050008CA400508FB000108CA3003C8D2700043E -:107060008CA8001C8CA600383C0E800A01AE1021B2 -:1070700027BD0020AF820044AF840050AF8300548E -:10708000AF87004CAF88005C03E00008AF8600606B -:107090003C09080091293FD924A800023C051100B1 -:1070A00000093C0000E8302500C5182524820008AE -:1070B000AC83000003E00008AC8000043C098000C1 -:1070C000352309009128010B906A00112402002841 -:1070D00000804821314700FF00A0702100C06821D6 -:1070E0003108004010E20002340C86DD240C080058 -:1070F0003C0A800035420A9A94470000354B0A9CAE -:1071000035460AA030F9FFFFAD3900008D78000048 -:10711000354B0A8024040001AD3800048CCF0000F8 -:10712000AD2F00089165001930A300031064009092 -:1071300028640002148000AF240500021065009E40 -:10714000240F0003106F00B435450AA4240A080078 -:10715000118A0048000000005100003D3C0B8000F7 -:107160003C048000348309009067001230E200FF85 -:10717000004D7821000FC880272400013C0A8000C0 -:10718000354F090091E50019354C09808D8700289D -:1071900030A300FF00031500004758250004C40079 -:1071A0003C19600001793025370806FFAD26000044 -:1071B000AD2800048DEA002C25280028AD2A0008FF -:1071C0008DEC0030AD2C000C8DE50034AD250010A9 -:1071D0008DE400383C05800034AC093CAD2400143B -:1071E0008DE3001CAD2300188DE70020AD27001CA7 -:1071F0008DE20024AD2200208DF9002834A2010088 -:10720000AD3900248D830000AD0E000434B90900AF -:10721000AD0300008C47000C25020014AD070008E8 -:10722000932B00123C04080090843FD8AD0000105E -:10723000317800FF030D302100064F0000047C0070 -:10724000012F702535CDFFFC03E00008AD0D000CCB -:1072500035780900930600123C05080094A53FC844 -:1072600030C800FF010D5021000A60800A00063C72 -:10727000018520211500005B000000003C0808008B -:1072800095083FCE3C06080094C63FC80106102171 -:107290003C0B80003579090093380011932A0019BE -:1072A00035660A80330800FF94CF002A0008608208 -:1072B000314500FF978A0058000C1E00000524008D -:1072C0003047FFFF006410250047C02501EA302148 -:1072D0003C0B4000030B402500066400AD28000075 -:1072E000AD2C0004932500183C030006252800144B -:1072F00000053E0000E31025AD2200088F24002C7D -:107300003C05800034AC093CAD24000C8F38001CD7 -:1073100034A20100254F0001AD3800108D8300001C -:10732000AD0E000431EB7FFFAD0300008C47000C75 -:1073300034B90900A78B0058AD070008932B001241 -:107340003C04080090843FD825020014317800FFE7 -:10735000030D302100064F0000047C00012F702532 -:1073600035CDFFFCAD00001003E00008AD0D000CB2 -:107370003C02080094423FD23C05080094A53FC857 -:1073800035440AA43C07080094E73FC4948B0000EE -:107390000045C8210327C023000B1C002706FFF26D -:1073A00000665025AD2A000CAD200010AD2C001455 -:1073B0000A00063025290018354F0AA495E500007B -:1073C000956400280005140000043C003459810035 -:1073D00000EC5825AD39000CAD2B00100A0006302A -:1073E000252900143C0C0800958C3FCE0A0006812C -:1073F000258200015460FF56240A080035580AA46B -:107400009706000000061C00006C5025AD2A000CF9 -:107410000A000630252900103C03080094633FD27F -:107420003C07080094E73FC83C0F080095EF3FC4B5 -:1074300094A400009579002800671021004F58237C -:1074400000041C00001934002578FFEE00D87825D0 -:10745000346A8100AD2A000CAD2F0010AD2000145D -:10746000AD2C00180A0006302529001C03E0000896 -:10747000240207D027BDFFE0AFB20018AFB100145F -:10748000AFB00010AFBF001C0E00007C0080882150 -:107490008F8800548F87004C3C05800834B20080F0 -:1074A000011128213C10800024020080240300C028 -:1074B00000A72023AE0208183C068008AE03081C73 -:1074C00018800004AF850054ACC500048CC90004CA -:1074D000AF89004C12200009360409800E0006F81E -:1074E00000000000924C00278E0B007401825004B3 -:1074F000014B3021AE46000C360409808C8E001CF6 -:107500008F8F005C01CF682319A000048FBF001C7F -:107510008C90001CAF90005C8FBF001C8FB20018D5 -:107520008FB100148FB000100A00007E27BD00202C -:107530008F8600508F8300548F82004C3C0580085A -:1075400034A40080AC860050AC83003C03E000080B -:10755000ACA200043C0308008C63005427BDFFF874 -:10756000308400FF2462000130A500FF3C010800C8 -:10757000AC22005430C600FF3C0780008CE8017844 -:107580000500FFFE3C0C7FFFA3A400038FAA0000B0 -:10759000358BFFFF014B4824000627C001244025FE -:1075A000AFA8000034E201009043000AA3A000024B -:1075B0003C1980FFA3A300018FAF000030AE007F15 -:1075C0003738FFFF01F86024000E6E003C0A0020EF -:1075D00034E50140018D5825354920002406FF80FF -:1075E0003C04100027BD0008ACAB000CACA9001493 -:1075F000A4A00018A0A6001203E00008ACE40178E3 -:10760000308800FF30A700FF3C0380008C620178C7 -:107610000440FFFE3C0C8000358A0A008D4B0020A0 -:107620003584014035850980AC8B00048D490024E8 -:107630000007302B00061540AC890008A088001018 -:1076400090A3004CA083002D03E00008A480001844 -:1076500027BDFFE8308400FFAFBF00100E00075DBC -:1076600030A500FF8F8300548FBF00103C068000C0 -:1076700034C50140344700402404FF903C02100010 -:1076800027BD0018ACA3000CA0A40012ACA70014E6 -:1076900003E00008ACC2017827BDFFE03C08800889 -:1076A000AFBF001CAFB20018AFB10014AFB00010F4 -:1076B000351000808E0600183C078000309200FFD5 -:1076C00000C72025AE0400180E00007C30B100FF7A -:1076D00092030005346200080E00007EA20200053D -:1076E000024020210E0007710220282102402021A3 -:1076F0008FBF001C8FB200188FB100148FB0001024 -:1077000024050005240600010A00073227BD0020D9 -:107710003C05800034A309809066000830C2000850 -:107720001040000F3C0A01013549080AAC890000ED -:107730008CA80074AC8800043C07080090E73FD890 -:1077400030E5001050A00008AC8000083C0D800817 -:1077500035AC00808D8B0058AC8B00082484000C65 -:1077600003E00008008010210A0007B52484000C03 -:1077700027BDFFE83C098000AFB00010AFBF001488 -:107780003526098090C800092402000600A058216F -:10779000310300FF35270900008080212405000403 -:1077A0001062007B2408000294CF005C3C0E0204AF -:1077B00031EDFFFF01AE6025AE0C000090CA00085D -:1077C00031440020108000080000000090C2004EEC -:1077D0003C1F010337F90300305800FF031930251F -:1077E00024050008AE06000490F9001190E600128E -:1077F00090E40011333800FF0018708230CF00FF92 -:1078000001CF5021014B6821308900FF31AAFFFFD1 -:1078100039230028000A60801460002C020C4823E1 -:1078200090E400123C198000372F0100308C00FFDB -:10783000018B1821000310800045F821001F8400EF -:10784000360706FFAD270004373F090093EC00110F -:1078500093EE0012372609800005C0828DE4000CEB -:107860008CC5003431CD00FF01AB10210058182128 -:1078700000A4F8230008840000033F0000F0302536 -:1078800033F9FFFF318F00FC00D97025015820210A -:1078900001E9682100045080ADAE000C0E00007CB0 -:1078A000012A80213C088008240B00043505008053 -:1078B0000E00007EA0AB0009020010218FBF001453 -:1078C0008FB0001003E0000827BD001890EC0011F5 -:1078D00090E300193C18080097183FCE318200FF52 -:1078E0000002F882307000FF001FCE0000103C0044 -:1078F0000327302500D870253C0F400001CF6825B4 -:107900003C198000AD2D0000373F090093EC0011B9 -:1079100093EE0012372F0100372609800005C08240 -:107920008DE4000C8CC5003431CD00FF01AB10217B -:107930000058182100A4F8230008840000033F0029 -:1079400000F0302533F9FFFF318F00FC00D970259E -:107950000158202101E9682100045080ADAE000CDF -:107960000E00007C012A80213C088008240B0004C2 -:10797000350500800E00007EA0AB0009020010213A -:107980008FBF00148FB0001003E0000827BD00185F -:107990000A0007C72408001227BDFFD03C0380005F -:1079A000AFB60028AFB50024AFB40020AFB10014CB -:1079B000AFBF002CAFB3001CAFB20018AFB00010C7 -:1079C0003467010090E6000B309400FF30B500FFF3 -:1079D00030C200300000B021104000990000882122 -:1079E000346409809088000800082E0000051E03FA -:1079F000046000C0240400048F8600543C01080089 -:107A0000A0243FD83C0C8000AD8000483C0480009E -:107A1000348E010091CD000B31A5002010A000078D -:107A20003C0780003493098092720008001286009F -:107A300000107E0305E000C43C1F800834EC010008 -:107A4000918A000B34EB09809169000831440040B1 -:107A50000004402B3123000800C898231460000262 -:107A600024120003000090213C10800036180A8088 -:107A700036040900970E002C9083001190890012A3 -:107A800093050018307F00FF312800FF02481021C5 -:107A90000002C880930D0018033F782101F13021C6 -:107AA00030B100FF00D11821A78E00583C0108001A -:107AB000A4263FCE3C010800A4233FD015A000021D -:107AC000000000000000000D920B010B3065FFFF6D -:107AD0003C010800A4233FD2316A00403C01080069 -:107AE000A4203FC83C010800A4203FC4114000026C -:107AF00024A4000A24A4000B3091FFFF0E0001E72C -:107B0000022020219206010B3C0C0800958C3FD2EC -:107B1000004020210006698231A700010E00060105 -:107B20000187282100402021026028210E00060C38 -:107B3000024030210E0007A10040202116C000693C -:107B4000004020219212010B3256004012C0000565 -:107B50003C0500FF8C93000034AEFFFF026E8024D2 -:107B6000AC9000000E0001FB022020213C0F080019 -:107B700091EF3FD831F10003122000163C1380082A -:107B80008F8200543C09800835280080245F000162 -:107B9000AD1F003C3C0580088CB9000403E02021A7 -:107BA000033FC0231B000002AF9F00548CA40004BD -:107BB0000E0006F8ACA400043C0780008CEB0074B7 -:107BC0003C04800834830080004B5021AC6A000CD8 -:107BD0003C138008367000800280202102A02821FA -:107BE000A200006B0E00075D3C1480008F920054D1 -:107BF000368C0140AD92000C8F8600483C15100079 -:107C0000344D000624D60001AF9600488FBF002CEB -:107C1000A18600128FB60028AD8D00148FB3001C12 -:107C2000AE9501788FB200188FB500248FB4002074 -:107C30008FB100148FB0001003E0000827BD0030A2 -:107C400034640980908F0008000F7600000E6E03E8 -:107C500005A00033347F090093F8001B241900109D -:107C60003C010800A0393FD8331300021260FF67BF -:107C70008F8600548F8200601446FF653C048000AC -:107C80000E00007C000000003C0480083485008069 -:107C900090A8000924060016310300FF1066000DAD -:107CA0000000000090AB00093C07080090E73FD8B7 -:107CB00024090008316400FF34EA00013C01080097 -:107CC000A02A3FD81089002F240C000A108C00280D -:107CD0002402000C0E00007E000000000A00086074 -:107CE0008F8600540E0007B9024028210A0008AE12 -:107CF000004020213C0B8008356A00808D460054EE -:107D00008CE9000C1120FF3DAF86005424070014BD -:107D10003C010800A0273FD80A00085F3C0C800007 -:107D200090910008241200023C010800A0323FD8C4 -:107D3000323000201200000B241600018F86005400 -:107D40000A0008602411000837F800808F0200380C -:107D5000AFE200048FF90004AF19003C0A00086C80 -:107D60003C0780008F8600540A000860241100043C -:107D7000A0A200090E00007E000000000A000860BA -:107D80008F860054240200140A00093AA0A20009B8 -:107D900027BDFFE8AFB000103C108000AFBF00145B -:107DA00036020100904400090E00075D2405000121 -:107DB0003C0480089099000E34830080909F000F4F -:107DC000906F00269089000A33F800FF00196E00BA -:107DD0000018740031EC00FF01AE5025000C5A0071 -:107DE000014B3825312800FF36030140344560003F -:107DF00000E830252402FF813C041000AC66000C32 -:107E00008FBF0014AC650014A0620012AE040178AC -:107E10008FB0001003E0000827BD001827BDFFE861 -:107E2000308400FFAFBF00100E00075D30A500FFDB -:107E30003C05800034A40140344700402406FF92F2 -:107E4000AC870014A08600128F8300548FBF0010EF -:107E50003C02100027BD0018AC83000C03E00008B2 -:107E6000ACA2017827BDFFD8AFB00010308400FF6E -:107E700030B000FF3C058000AFB10014AFBF002060 -:107E8000AFB3001CAFB20018000410C234A601004A -:107E900032030002305100011460000790D2000943 -:107EA0003C098008353300809268000531070008DE -:107EB00010E0000C308A0010024020210E000783E1 -:107EC00002202821240200018FBF00208FB3001C54 -:107ED0008FB200188FB100148FB0001003E00008BB -:107EE00027BD00281540003434A50A008CB80024B2 -:107EF0008CAF0008130F004B000038213C0D8008A8 -:107F000035B30080926C006824060002318B00FFBC -:107F1000116600843C06800034C201009263004C6C -:107F200090590009307F00FF53F900043213007CA0 -:107F300010E00069000000003213007C5660005C15 -:107F40000240202116200009320D00013C0C800067 -:107F500035840100358B0A008D6500248C86000471 -:107F600014A6FFD900001021320D000111A0000E4F -:107F7000024020213C188000371001008E0F000CB9 -:107F80008F8E005011EE0008000000000E00084324 -:107F9000022028218E19000C3C1F800837F0008039 -:107FA000AE190050024020210E0007710220282146 -:107FB0000A00098F240200013C0508008CA500641A -:107FC00024A400013C010800AC2400641600000D4C -:107FD00000000000022028210E000771024020212D -:107FE000926E0068240C000231CD00FF11AC00221B -:107FF000024020210E000941000000000A00098F04 -:10800000240200010E00007024040001926B002580 -:10801000020B30250E00007EA26600250A0009D35F -:10802000022028218E6200188CDF00048CB9002405 -:1080300000021E0217F9FFB13065007F9268004C04 -:10804000264400013093007F12650040310300FF99 -:108050001464FFAB3C0D80082647000130F1007F1F -:1080600030E200FF1225000B2407000100409021A0 -:108070000A00099C24110001240500040E000732A7 -:10808000240600010E000941000000000A00098FCB -:10809000240200012405FF8002452024008590264B -:1080A000324200FF004090210A00099C2411000187 -:1080B0000E000843022028213207003010E0FFA103 -:1080C00032100082024020210E0007830220282166 -:1080D0000A00098F240200018E6900180240202145 -:1080E00002202821012640250E000964AE680018F0 -:1080F0009264004C24050003240600010E000732A0 -:10810000308400FF0E0000702404000192710025ED -:10811000021150250E00007EA26A00250A00098F78 -:10812000240200018E6F00183C18800002402021BC -:1081300001F87025022028210E000771AE6E00188C -:108140009264004C0A000A1B24050004324A008095 -:10815000394900801469FF6A3C0D80080A0009F45F -:108160002647000127BDFFC0AFB000183C108000BB -:10817000AFBF0038AFB70034AFB60030AFB5002C9A -:10818000AFB40028AFB30024AFB200200E0005BE8C -:10819000AFB1001C360201009045000B0E000976BD -:1081A00090440008144000E78FBF00383C08800866 -:1081B00035070080A0E0006B3606098090C50000FE -:1081C000240300503C17080026F73F9030A400FF1E -:1081D0003C13080026733FA0108300033C1080006E -:1081E0000000B82100009821241F00103611010062 -:1081F00036120A00361509808E5800248E34000489 -:108200008EAF00208F8C00543C010800A03F3FD867 -:1082100036190A80972B002C8EF60000932A00183E -:108220000298702301EC68233C010800AC2E3FB497 -:108230003C010800AC2D3FB83C010800AC2C3FDCF1 -:10824000A78B005802C0F809315400FF30490002E2 -:10825000152000E930420001504000C49227000977 -:1082600092A9000831280008150000022415000317 -:108270000000A8213C0A80003543090035440A006B -:108280008C8D00249072001190700012907F00116C -:10829000325900FF321100FF02B110210002C080EC -:1082A00033EF00FF0319B021028F702102D4602147 -:1082B00025CB00103C010800A4363FCE3C0108004D -:1082C000AC2D3FE03C010800A42C3FD03C0108004D -:1082D000A42B3FCC355601003554098035510E0092 -:1082E0008F8700548F89005C8E850020240800064B -:1082F000012730233C010800AC283FD400A72823E5 -:1083000004C000B50000902104A000B300C5502BAC -:10831000114000B5000000003C010800AC263FB849 -:108320008E6200000040F8090000000030460002A4 -:1083300014C0007400408021304B000155600011D2 -:108340008E6200043C0D08008DAD3FBC3C0EC000A9 -:108350003C04800001AE6025AE2C00008C9800002B -:10836000330F000811E0FFFD00000000963F0008F9 -:1083700024120001A79F00408E390004AF990038F5 -:108380008E6200040040F80900000000020280250F -:1083900032030002146000B3000000003C09080032 -:1083A00095293FC43C06080094C63FD03C0A08000B -:1083B000954A3FC63C0708008CE73FBC0126702168 -:1083C0003C0308008C633FE03C08080095083FDA56 -:1083D00001CA20218ED9000C00E92821249F000227 -:1083E00000A878210067C02133E4FFFFAF99005057 -:1083F0003C010800AC383FE03C010800A42F3FC816 -:108400003C010800A42E3FD20E0001E7000000004E -:108410008F8D0048004020213C010800A02D3FD94D -:108420008E62000825AC0001AF8C00480040F809BE -:10843000000000008F85005402A030210E00060CC1 -:10844000004020210E0007A1004020218E6B000C6F -:108450000160F809004020213C0A0800954A3FD2FB -:108460003C06080094C63FC6014648212528000264 -:108470000E0001FB3104FFFF3C0508008CA53FB452 -:108480003C0708008CE73FBC00A720233C01080004 -:10849000AC243FB414800006000000003C02080039 -:1084A0008C423FD4344B00403C010800AC2B3FD4FD -:1084B000124000438F8E00448E2D00108F92004496 -:1084C000AE4D00208E2C0018AE4C00243C04080059 -:1084D00094843FC80E0006FA000000008F9F0054ED -:1084E0008E6700103C010800AC3F3FDC00E0F8095B -:1084F000000000003C1908008F393FB41720FF79B5 -:108500008F870054979300583C11800E321601005B -:108510000E000729A633002C16C0004532030010B8 -:108520005460004C8EE50004320800405500001DE8 -:108530008EF000088EE4000C0080F80900000000B6 -:108540008FBF00388FB700348FB600308FB5002C46 -:108550008FB400288FB300248FB200208FB1001C8D -:108560008FB0001803E0000827BD00408F86003C54 -:1085700036110E0000072E0000A62025AE04008054 -:108580008E4300208E500024AFA30010AE230014B1 -:108590008FB20010AE320010AE30001C0A000A7517 -:1085A000AE3000180200F809000000008EE4000C54 -:1085B0000080F809000000000A000B2E8FBF003871 -:1085C00024180001240F0001A5C00020A5D8002216 -:1085D0000A000B10ADCF00243C010800AC203FB8CE -:1085E0000A000AA68E6200003C010800AC253FB8D4 -:1085F0000A000AA68E620000922400090E0007718C -:10860000000028218FBF00388FB700348FB60030AC -:108610008FB5002C8FB400288FB300248FB20020B8 -:108620008FB1001C8FB0001803E0000827BD004088 -:108630003C14800092950109000028210E00084397 -:1086400032A400FF320300105060FFB8320800402F -:108650008EE5000400A0F809000000000A000B28C5 -:10866000320800405240FFA8979300588E340014FF -:108670008F930044AE7400208E35001CAE7500242C -:108680000A000B1F979300588F820014000421806A -:1086900003E00008008210213C07800834E20080DB -:1086A0009043006900804021106000093C040100F3 -:1086B0003C0708008CE73FDC8F83003000E3202379 -:1086C000048000089389001C14E3000301002021AA -:1086D00003E00008008010213C04010003E00008D2 -:1086E000008010211120000B006738233C0D800012 -:1086F00035AC0980918B007C316A0002114000206A -:108700002409003400E9702B15C0FFF1010020217D -:1087100000E938232403FFFC00A3C82400E3C0249D -:1087200000F9782B15E0FFEA0308202130C400038C -:108730000004102314C0001430490003000030214D -:1087400000A9782101E6702100EE682B11A0FFE05E -:108750003C0401002D3800010006C82B010548210A -:108760000319382414E0FFDA2524FFFC2402FFFC5F -:1087700000A218240068202103E0000800801021D6 -:108780000A000B9E240900303C0C800035860980CD -:1087900090CB007C316A00041540FFE924060004F8 -:1087A0000A000BAD000030213C0308008C63005C24 -:1087B0008F82001827BDFFE0AFBF0018AFB10014D3 -:1087C00010620005AFB00010000329C024A402808D -:1087D000AF840014AF8300183C10800036020A00FA -:1087E00094450032361101000E000B7F30A43FFF8C -:1087F0008E240000241FFF803C1100800082C021D5 -:10880000031F60243309007F000CC9400329402561 -:10881000330E0078362F00033C0D1000010D50255B -:1088200001CF5825AE0C002836080980AE0C080C84 -:10883000AE0B082CAE0A0830910300693C06800C90 -:108840000126382110600006AF8700348D09003CF6 -:108850008D03006C0123382318E000820000000023 -:108860003C0B8008356A00803C108000A140006904 -:10887000360609808CC200383C06800034C50A00E8 -:1088800090A8003C310C00201180001AAF8200300B -:10889000240D00013C0E800035D10A00A38D001C80 -:1088A000AF8000248E2400248F850024240D00082E -:1088B000AF800020AF8000283C010800A42D3FC6F7 -:1088C0003C010800A4203FDA0E000B830000302199 -:1088D0009228003C8FBF00188FB100148FB0001099 -:1088E00000086142AF82002C27BD002003E0000891 -:1088F0003182000190B80032240E0001330F00FFD6 -:10890000000F2182108E004124190002109900648A -:1089100034C40AC03C03800034640A008C8F0024F5 -:1089200015E0001E34660900909F003024180005F1 -:1089300033F9003F1338004E240300018F860020D6 -:10894000A383001CAF860028AF8600243C0E800065 -:1089500035D10A008E2400248F850024240D0008C0 -:108960003C010800A42D3FC63C010800A4203FDACA -:108970000E000B83000000009228003C8FBF0018FF -:108980008FB100148FB0001000086142AF82002C3C -:1089900027BD002003E00008318200018C8A000816 -:1089A0008C8B00248CD000643C0E800035D10A00F2 -:1089B000014B2823AF900024A380001CAF85002822 -:1089C0008E2400248F8600208F850024240D00082B -:1089D0003C010800A42D3FC63C010800A4203FDA5A -:1089E0000E000B83000000009228003C8FBF00188F -:1089F0008FB100148FB0001000086142AF82002CCC -:108A000027BD002003E000083182000190A2003061 -:108A10003051003F5224002834C50AC08CB00024D5 -:108A20001600002234CB09008CA600483C0A7FFFC8 -:108A30003545FFFF00C510243C0E8000AF820020AA -:108A400035C509008F8800208CAD0060010D602BBA -:108A500015800002010020218CA400600A000C2275 -:108A6000AF8400208D02006C0A000BFC3C068000E5 -:108A70008C8200488F8600203C097FFF3527FFFF4E -:108A8000004788243C04800824030001AF9100289B -:108A9000AC80006CA383001C0A000C30AF8600245D -:108AA0008C9F00140A000C22AF9F00208D6200688A -:108AB0000A000C6C3C0E800034C409808C89007064 -:108AC0008CA300140123382B10E0000400000000E8 -:108AD0008C8200700A000C6C3C0E80008CA200148A -:108AE0000A000C6C3C0E80008F85002427BDFFE03F -:108AF000AFBF0018AFB1001414A00008AFB0001051 -:108B00003C04800034870A0090E60030240200050F -:108B100030C3003F106200B9348409008F910020F7 -:108B200000A080213C048000348E0A008DCD00041A -:108B30003C0608008CC63FB831A73FFF00E6602B1B -:108B40005580000100E03021938F001C11E0007877 -:108B500000D0282B349F098093F9007C3338000221 -:108B6000130000792403003400C3102B144000D9F3 -:108B70000000000000C3302300D0282B3C01080077 -:108B8000A4233FC414A0006E020018213C04080076 -:108B90008C843FB40064402B55000001006020210C -:108BA0003C05800034A90A00912A003C3C010800E1 -:108BB000AC243FBC31430020146000030000482176 -:108BC00034AB0E008D6900188F88002C0128202BF3 -:108BD0001080005F000000003C0508008CA53FBC31 -:108BE00000A96821010D602B1180005C00B0702B82 -:108BF0000109382300E028213C010800AC273FBCD4 -:108C000012000003240AFFFC10B0008D3224000380 -:108C100000AA18243C010800A4203FDA3C01080007 -:108C2000AC233FBC006028218F840024120400067E -:108C30003C0B80088D6C006C02002021AF9100205D -:108C400025900001AD70006C8F8D00280085882371 -:108C5000AF91002401A52023AF8400281220000238 -:108C600024070018240700103C18800837060080ED -:108C700090CF00683C010800A0273FD824070001DE -:108C800031EE00FF11C700470000000014800018FB -:108C9000000028213C06800034D1098034CD010039 -:108CA00091A600098E2C001824C40001000C860235 -:108CB0003205007F308B007F1165007F2407FF8025 -:108CC0003C19800837290080A124004C3C0808008A -:108CD0008D083FD4241800023C010800A038401938 -:108CE000350F00083C010800AC2F3FD424050010CC -:108CF0003C02800034440A009083003C307F002016 -:108D000013E0000500A02021240A00013C01080016 -:108D1000AC2A3FBC34A400018FBF00188FB10014EF -:108D20008FB000100080102103E0000827BD002054 -:108D30003C010800A4203FC410A0FF9402001821A9 -:108D40000A000CC000C018210A000CB72403003030 -:108D50003C0508008CA53FBC00B0702B11C0FFA8DB -:108D6000000000003C19080097393FC40325C021CA -:108D70000307782B11E000072CAA00043C036000D5 -:108D80008C625404305F003F17E0FFE3240400428C -:108D90002CAA00041140FF9A240400420A000D246A -:108DA0008FBF00181528FFB9000000008CCA0018FA -:108DB0003C1F800024020002015F1825ACC300188C -:108DC00037F90A00A0C200689329003C240400047B -:108DD00000A01021312800203C010800A0244019E7 -:108DE0001100000224050010240200013C010800CB -:108DF000AC223FB40A000D1A3C0280008F88002884 -:108E00008C8900600109282B14A000020100882130 -:108E10008C9100603C048000348B0E008D6400183F -:108E2000240A00010220282102203021A38A001CEC -:108E30000E000B83022080210A000CA6AF82002CBA -:108E40000004582312200007316400033C0E800008 -:108E500035C7098090ED007C31AC00041580001905 -:108E6000248F00043C010800A4243FDA3C1F0800C2 -:108E700097FF3FDA03E5C82100D9C02B1300FF6B31 -:108E80008F8400242CA6000514C0FFA324040042F4 -:108E900030A200031440000200A2182324A3FFFC08 -:108EA0003C010800AC233FBC3C010800A4203FDA91 -:108EB0000A000CE70060282100C770240A000D0D8D -:108EC00001C720263C010800A42F3FDA0A000D78D4 -:108ED000000000003C010800AC203FBC0A000D234C -:108EE000240400428F8300283C05800034AA0A0035 -:108EF0001460000600001021914700302406000590 -:108F000030E400FF108600030000000003E00008CA -:108F100000000000914B0048316900FF000941C288 -:108F20001500FFFA3C0680083C04080094843FC406 -:108F30003C0308008C633FDC3C1908008F393FBCC0 -:108F40003C0F080095EF3FDA0064C0218CCD00048F -:108F50000319702101CF602134AB0E00018D28234D -:108F600018A0001D00000000914F004C8F8C0034B1 -:108F7000956D001031EE00FF8D89000401AE3023A5 -:108F80008D8A000030CEFFFF000E29000125C82188 -:108F900000003821014720210325182B0083C02120 -:108FA000AD990004AD980000918F000A01CF6821AF -:108FB000A18D000A956500128F8A0034A54500082E -:108FC000954B003825690001A54900389148000DEE -:108FD00035070008A147000D03E00008000000006D -:108FE00027BDFFD8AFB000189388001C8FB00014C5 -:108FF0003C0A80003C197FFF8F8700243738FFFF31 -:10900000AFBF0020AFB1001C355F0A000218182462 -:1090100093EB003C00087FC03C02BFFF006F60255F -:109020002CF000013449FFFF3C1F08008FFF3FDC9C -:109030008F9900303C18080097183FD20189782496 -:10904000001047803C07EFFF3C05F0FF01E81825C2 -:109050003C1180003169002034E2FFFF34ADFFFF96 -:10906000362E098027A500102406000203F960238C -:10907000270B0002354A0E00006218240080802170 -:1090800015200002000040218D48001CA7AB0012F3 -:10909000058000392407000030E800FF00083F0089 -:1090A000006758253C028008AFAB0014344F0080A5 -:1090B00091EA00683C08080091083FD93C09DFFFAD -:1090C000352CFFFF000AF82B3C02080094423FCCED -:1090D000A3A80011016CC024001FCF40031918255C -:1090E0008FA70010AFA300143C0C0800918C3FDB4D -:1090F000A7A200168FAB001400ED48243C0F01001E -:109100003C0A0FFF012FC82531980003355FFFFF90 -:10911000016D40243C027000033F382400181E00FB -:1091200000E2482501037825AFAF0014AFA9001075 -:1091300091CC007C0E000092A3AC0015362D0A00E5 -:1091400091A6003C30C400201080000626020008D2 -:109150003C11080096313FC8262EFFFF3C01080055 -:10916000A42E3FC88FBF00208FB1001C8FB0001805 -:1091700003E0000827BD00288F8B002C010B502B2B -:109180005540FFC5240700010A000E0430E800FF27 -:109190009383001C3C02800027BDFFD834480A009E -:1091A00000805021AFBF002034460AC001002821B2 -:1091B0001060000E3444098091070030240B000534 -:1091C0008F89002030EC003F118B000B000038210C -:1091D000AFA900103C0B80088D69006CAFAA001885 -:1091E0000E00015AAFA90014A380001C8FBF0020FD -:1091F00003E0000827BD00288D1F00483C18080028 -:109200008F183FBC8F9900283C027FFF8D080044D7 -:109210003443FFFFAFA900103C0B80088D69006C40 -:1092200003E370240319782101CF682301A83821B2 -:10923000AFAA00180E00015AAFA900140A000E5878 -:10924000A380001C3C05800034A60A0090C7003CA7 -:109250003C06080094C63FDA3C0208008C423FD42A -:1092600030E30020000624001060001E0044382572 -:109270003C0880083505008090A300680000482164 -:109280002408000100002821240400013C0680007D -:109290008CCD017805A0FFFE34CF0140ADE8000879 -:1092A0003C0208008C423FDCA5E50004A5E4000672 -:1092B000ADE2000C3C04080090843FD93C038008D8 -:1092C00034790080A1E40012ADE70014A5E900188C -:1092D0009338004C3C0E1000A1F8002D03E000086C -:1092E000ACCE017834A90E008D28001C3C0C08007F -:1092F0008D8C3FBC952B0016952A001401864821C1 -:109300003164FFFF0A000E803145FFFF3C048000FE -:1093100034830A009065003C30A200201040001900 -:1093200034870E0000004021000038210000202179 -:109330003C0680008CC901780520FFFE34CA01403C -:1093400034CF010091EB0009AD4800083C0E080045 -:109350008DCE3FDC240DFF91240C00403C08100012 -:10936000A5440004A5470006AD4E000CA14D001217 -:10937000AD4C0014A5400018A14B002D03E00008DF -:10938000ACC801788CE8001894E6001294E4001050 -:1093900030C7FFFF0A000EA93084FFFF3C048000A5 -:1093A00034830A009065003C30A200201040002762 -:1093B00027BDFFF82409000100003821240800011E -:1093C0003C0680008CCA01780540FFFE3C0280FF0D -:1093D00034C40100908D00093C0C0800918C4019A8 -:1093E000A3AD00038FAB00003185007F3459FFFF30 -:1093F00001665025AFAA00009083000AA3A00002D6 -:1094000000057E00A3A300018FB8000034CB01400B -:10941000240C30000319702401CF6825AD6D000CB9 -:1094200027BD0008AD6C0014A5600018AD690008E8 -:10943000A56700042409FF80A56800063C08100009 -:10944000A169001203E00008ACC8017834870E005F -:109450008CE9001894E6001294E4001030C8FFFF75 -:109460000A000ECD3087FFFF27BDFFE0AFB100142B -:109470003C118000AFB00010AFBF001836380A00B2 -:10948000970F0032363001000E000B7F31E43FFFB2 -:109490008E0E0000240DFF803C04200001C25821E4 -:1094A000016D6024000C4940316A007F012A40258B -:1094B000010438253C048008AE270830348600803B -:1094C00090C500682403000230A200FF104300048E -:1094D0008F9F00208F990024AC9F0068AC99006496 -:1094E0008FBF00188FB100148FB0001003E0000888 -:1094F00027BD00203C0A0800254A3A803C090800A4 -:1095000025293B103C08080025082F1C3C070800B3 -:1095100024E73BDC3C06080024C639043C0508006F -:1095200024A536583C0408002484325C3C0308001F -:10953000246339B83C020800244237543C01080037 -:10954000AC2A3F983C010800AC293F943C0108003C -:10955000AC283F903C010800AC273F9C3C01080030 -:10956000AC263FAC3C010800AC253FA43C01080000 -:10957000AC243FA03C010800AC233FB03C010800F4 -:0C958000AC223FA803E00008000000003F -:04958C008000094012 -:109590008000090080080100800800808008000029 -:1095A000800E0000800800808008000080000A8093 -:0C95B00080000A00800009808000090093 -:00000001FF -/* - * This file contains firmware data derived from proprietary unpublished - * source code, Copyright (c) 2004 - 2009 Broadcom Corporation. - * - * Permission is hereby granted for the distribution of this firmware data - * in hexadecimal or equivalent format, provided this copyright notice is - * accompanying it. - */ diff --git a/firmware/bnx2/bnx2-rv2p-06-6.0.15.fw.ihex b/firmware/bnx2/bnx2-rv2p-06-6.0.15.fw.ihex deleted file mode 100644 index dcc443e210f5..000000000000 --- a/firmware/bnx2/bnx2-rv2p-06-6.0.15.fw.ihex +++ /dev/null @@ -1,366 +0,0 @@ -:1000000000000000000008F800000058000000098F -:1000100000000000000000000000000000000000E0 -:1000200000000000000000000000000000000000D0 -:1000300000000CF000000950000000050000000066 -:1000400000000000000000000000000000000000B0 -:080050000000000000000000A8 -:0800580000000010B180000659 -:100060000000001F0106000F000000080500FFFF50 -:10007000000000180002000000000008050000FF5A -:10008000000000180002000000000008AC000001A1 -:1000900000000008078000000000000C2F80000115 -:1000A000000000002B000000000000002B8000007A -:1000B0000000001091E1000200000008AC00000107 -:1000C00000000010203F003B00000010213F000313 -:1000D0000000001020BF0015000000188000FFFD88 -:1000E0000000000C1F800002000000188000FFF9D3 -:1000F00000000008B1000001000000082C8000B0E2 -:10010000000000082D000008000000082D800001FC -:10011000000000188000003C0000000B2FDF0002F0 -:100120000000000C1F800002000000002C070000EF -:100130000000001091DE0000000000188000FFEFBA -:100140000000000B2FDF00020000000C1F800000E9 -:10015000000000002C0700000000001091DE0000ED -:10016000000000188000FFEA0000000C1F80000261 -:10017000000000188000FFE80000000802240025AD -:1001800000000018000400000000001880000000BB -:10019000000000188000001B0000001880000042D2 -:1001A000000000188000000000000018800000001F -:1001B000000000188000000000000018800000000F -:1001C00000000018800000000000001880000000FF -:1001D00000000018800000000000001880000000EF -:1001E00000000018800000000000001880000000DF -:1001F000000000188000008E000000188000000041 -:1002000000000018800000000000001880000000BE -:1002100000000018800000000000001880000000AE -:10022000000000188000000000000018800000009E -:10023000000000188000008D00000018800000B74A -:10024000000000188000008400000018800000DA20 -:10025000000000188000002B000000188000000043 -:10026000000000188000006B0000001091D4000016 -:100270000000000C298000010000000C1F8000011C -:10028000000000082A0000020000000807800000AB -:10029000000000188000FFC4000000080380010077 -:1002A00000000010B73C0E000000001880000000A5 -:1002B000000000180002000000000000068200009C -:1002C00000000010B18F000400000010B18F140373 -:1002D000000000082A0000010000001091D4000076 -:1002E000000000000780140000000018000D00004E -:1002F00000000000050200000000001091DE000078 -:1003000000000018000A0000000000000682000043 -:100310000000001091DE0000000000090561FFFFF1 -:1003200000000010918A00020000000830E1FFFF89 -:10033000000000188000FFA9000000010561140002 -:1003400000000010918A000200000008B0E10001E6 -:1003500000000018000D00000000000006820000F0 -:100360000000001091DE0000000000090562FFFFA0 -:1003700000000010918A0002000000083162FFFFB7 -:10038000000000188000FF9F0000000105621400BB -:1003900000000010918A000200000008B162000114 -:1003A00000000018000D000000000010B1A0B01304 -:1003B0000000000B2FDF0002000000002C200000D6 -:1003C000000000082C800000000000082D00000044 -:1003D0000000001091D40000000000080500005546 -:1003E000000000188000FFDB000000082D80011CC9 -:1003F00000000010001F0000000000188000FFE255 -:100400000000000F476000080000000F060E00010A -:10041000000000000F580000000000000A64000007 -:10042000000000000AE50000000000090B66FFFF65 -:10043000000000000D6100000000001880000015A1 -:100440000000000F476000080000000B2FDF0002D3 -:10045000000000082C800000000000082D000000B3 -:100460000000001091D40000000000082D80011C45 -:100470000000000F060E000100000010001F000029 -:10048000000000000F580000000000188000FFD09E -:10049000000000000A640000000000000AE50000FF -:1004A000000000090B66FFFF000000000D61000066 -:1004B00000000000026200000000000002E00000F6 -:1004C0000000000B2FDF00020000000030050000DC -:1004D000000000003104000000000000309A00001D -:1004E000000000100060000A00000008051600016E -:1004F00000000010BA9A140300000000030000007E -:100500000000001880000006000000188000FF6C4A -:1005100000000010B60614040000000803060001E5 -:10052000000000082A000001000000188000FF7190 -:10053000000000000C961800000000090C99FFFF55 -:1005400000000004CC99340000000010BA992C027D -:10055000000000080F8000000000000C298000014E -:100560000000000C295200010000000C295200007C -:100570000000000822800002000000080200000EB7 -:10058000000000080280001A00000010B1C40A0236 -:1005900000000008020000030000000C1F800001A2 -:1005A000000000002ADF0000000000002A00080010 -:1005B000000000188000FF600000000B2FDF000229 -:1005C0000000001091D40000000000082A00000183 -:1005D000000000002C2000000000001091D400005A -:1005E000000000082C800000000000082D00000022 -:1005F000000000082D80011C000000188000FF9FF3 -:10060000000000082C800006000000082D000006F5 -:1006100000000000308000000000000031000000F9 -:10062000000000082D8000060000000C2980000159 -:100630000000000C1F8000010000001091DE00008F -:10064000000000002ADF0000000000082A0000105F -:100650000000000807800000000000188000FF4B29 -:100660000000001091D4000000000008050000AA5E -:10067000000000188000FF890000000C29800001A4 -:100680000000000C1F800001000000082A00000983 -:10069000000000188000FF440000001091D400000A -:1006A0000000000805000055000000188000FF82CF -:1006B0000000001091A0B00200000010B1E6620737 -:1006C0000000000B2FDF0002000000002C310000B2 -:1006D000000000092CB1007F000000082CD90000A8 -:1006E000000000082D000000000000082D80010D12 -:1006F00000000010B1A8000600000010205F0000FC -:10070000000000002C200000000000002CA70000CA -:10071000000000082D000010000000082D800108D6 -:10072000000000188000FF7A00000010B1A6001041 -:1007300000000010001F00000000000F0F30000735 -:10074000000000000A600000000000000AE1000054 -:100750000000000F4B620008000000090B1600FFAC -:10076000000000000D620000000000090D1A00FFEB -:1007700000000010073000030000000C0D1A0008F4 -:100780000000000C0B1600080000000F4CE30018DE -:10079000000000000C992C0000000004CC993400EB -:1007A000000000080F8000000000000C29800001FC -:1007B0000000000033310000000000082200001695 -:1007C000000000002ADF0000000000082A00000CE2 -:1007D00000000010009F0000000000002C2000001E -:1007E0000000000C1F800001000000188000FF19AD -:1007F0000000001091D4000000000008050000AACD -:10080000000000188000FF570000000F472200087A -:1008100000000009070E000F00000008070E000886 -:1008200000000008028000010000000702851C0093 -:1008300000000008828500010000000002854C00D5 -:100840000000000742851C0000000003C3AA5200FC -:100850000000000003B10E00000000074B071C0061 -:100860000000000F0F3000070000000F0A96000381 -:10087000000000000A955C00000000004A005A00D9 -:10088000000000000C960A00000000090C99FFFF10 -:10089000000000080D00FFFF00000010BA992C02B4 -:1008A000000000080F80000500000010B1A800083B -:1008B00000000010205F00000000000B2FDF00028E -:1008C000000000002C200000000000002CA7000009 -:1008D000000000082D000010000000082D80010815 -:1008E000000000188000FF420000000C2980000179 -:1008F00000000010001F00000000000C1F8000011D -:10090000000000002ADF0000000000082A00000D9F -:10091000000000188000FEF40000001091D40000D8 -:100920000000000805000055000000188000FF329C -:100930000000000C298000010000000C1F80000155 -:10094000000000082A000007000000188000FEEDEB -:1009500000000010B18000040000001F0106000F1D -:1009600000000008050000FF000000180002000061 -:10097000000000002A00000000000010B1D40000B8 -:100980000000001091DE0000000000102053000065 -:1009900000000010001F0000000000002F80AA00CF -:1009A0000000000C29800001000000080254000E25 -:1009B000000000002C400000000000000F4000007C -:1009C0000000001800040000000000188000001162 -:1009D000000000188000001200000018800000389D -:1009E00000000018800000DF00000018800000DE1A -:1009F00000000018800000DD00000018800000DD0D -:100A0000000000188000000000000018800000F6C0 -:100A100000000018800000D90000001880000000CD -:100A200000000018800000FA000000188000014853 -:100A3000000000188000005A00000018800000C468 -:100A400000000018800000C500000018800000D2DF -:100A5000000000002A000000000000188000FFE4F1 -:100A6000000000002A0000000000000C29800000A7 -:100A7000000000188000FFE10000001800020000E4 -:100A8000000000000502000000000010B99A2C21AF -:100A900000000010205F0000000000002C1E00007D -:100AA000000000082C800006000000082D00000651 -:100AB000000000082D80010200000000000000007E -:100AC0000000001091DE0000000000000D61000039 -:100AD00000000018000A00000000000005020000ED -:100AE00000000010B99A2C1600000010205F0000D2 -:100AF0000000000009D80000000000002C1E0000CB -:100B0000000000082C8000B2000000082D00000A40 -:100B1000000000082D80010200000000000000001D -:100B20000000001091DE0000000000000D620000D7 -:100B3000000000002C13000000000018000A000054 -:100B4000000000000502000000000010B99A2C0906 -:100B500000000010205F0000000000002C1E0000BC -:100B6000000000082C800006000000082D00006A2C -:100B7000000000082D8001020000000000000000BD -:100B80000000001091DE0000000000000D7A00005F -:100B900000000018000A0000000000002A00000009 -:100BA0000000000822000001000000000D610000AC -:100BB0000000001021C2002400000010B1C6000295 -:100BC00000000010234200A2000000090B66FFFF96 -:100BD00000000010BA9A2C20000000000A640000F7 -:100BE000000000000AE50000000000000C0000000A -:100BF000000000000B800000000000080CC600127E -:100C0000000000188000FFD0000000080F800003E3 -:100C1000000000000000000000000010009F000025 -:100C2000000000082711001200000000669000007C -:100C300000000010B198000300000010001F000029 -:100C4000000000080F8000040000000822000003DC -:100C5000000000082C80000C000000082D00000C93 -:100C600000000010009F00000000001091C6000569 -:100C700000000010001F000000000010BA9A2C03B2 -:100C8000000000080F800004000000188000FFFD35 -:100C900000000000259600000000000C29800000E4 -:100CA0000000000032140000000000003295000037 -:100CB0000000000573662C000000000031E32E00E8 -:100CC000000000082D800010000000188000FF9632 -:100CD00000000000230000000000000925E6FFFFDF -:100CE000000000082200000B0000000C6952000008 -:100CF0000000000C29800000000000188000FF9018 -:100D0000000000002A000000000000082C800040C5 -:100D1000000000082D000020000000082D80011CAC -:100D200000000008220000010000001091DE000019 -:100D30000000000F42EA001000000010004F000405 -:100D400000000010B746920000000008024900129F -:100D500000000010B5840A00000000000D610000D2 -:100D600000000010BA663457000000088305001226 -:100D700000000010004F00020000000003490000C6 -:100D80000000000183068C000000000083C60C00F8 -:100D900000000010B1870013000000000B6E00007F -:100DA000000000090569FFFF00000010918A0002A1 -:100DB0000000000834E9FFFF000000188000FF7504 -:100DC000000000010569140000000010918A000273 -:100DD00000000008B4E9000100000010BAE92C4846 -:100DE0000000000086692C000000000002000000E6 -:100DF0000000000902EAFFFF00000010000C0002E2 -:100E00000000000002040A000000000F460C000170 -:100E10000000000F0285000100000010918C01FC11 -:100E200000000010B7040E3F000000000D6100003C -:100E3000000000000A640000000000000AE5000055 -:100E4000000000090B66FFFF000000000C0000001E -:100E5000000000000B800000000000080C8600125B -:100E6000000000080F8000030000000C2952000061 -:100E700000000010009F0000000000082711001271 -:100E80000000000066900000000000002306000043 -:100E900000000010B198000500000010001F0000C5 -:100EA000000000080F8000040000000000000000A7 -:100EB00000000010001F00000000000032140000BD -:100EC00000000000329500000000000031E32E0019 -:100ED0000000000573662C0000000000259600004D -:100EE00000000010B18700160000000C29800000EF -:100EF0000000000F0F6B0007000000000D690000EC -:100F0000000000000A6C0000000000000AED000074 -:100F1000000000000B6E0000000000000B800000CD -:100F2000000000000C870000000000080F80000394 -:100F300000000010205300000000000C6952000166 -:100F400000000010001F00000000000022C58C00FF -:100F500000000000231B000000000000271100001B -:100F6000000000002690000000000010B8170E03DB -:100F70000000000C29800000000000188000FFF62F -:100F800000000010B1980002000000080F8000046B -:100F9000000000082200001A000000082C80000C4D -:100FA000000000082D00000C000000082D8000103B -:100FB00000000010001F0000000000000D6E000087 -:100FC00000000003E7CF34000000000C298000007F -:100FD0000000001091DE000000000010B187000743 -:100FE00000000000361400000000000036950000EC -:100FF0000000000037160000000000082C800050A0 -:10100000000000082D000030000000082D80000CBA -:10101000000000188000FF2D0000000023000000E9 -:101020000000000925E6FFFF000000000B6E000035 -:1010300000000003E7CF2C00000000082200001B86 -:101040000000000C695200000000000C2980000024 -:10105000000000188000FF25000000002A000000AA -:10106000000000188000FF23000000002A0000009C -:101070000000000C298000000000001091DE00003C -:10108000000000082C80001A000000082D00001A43 -:101090000000000573660000000000082D800002BB -:1010A00000000000318000000000001091DE000010 -:1010B000000000082C80000C000000082D00000C2F -:1010C000000000082D800004000000188000FF16BA -:1010D0000000001880000000000000188000FF14CD -:1010E000000000002A00000000000010001F0000A7 -:1010F000000000000F008000000000080F800007C3 -:10110000000000188000001B00000000280A0000FA -:101110000000000005020000000000082200000995 -:1011200000000000290000000000000F65680010AA -:1011300000000000248A000000000003F66C940008 -:1011400000000010B972A0040000000C73E7001941 -:101150000000000C21420004000000003CF80000E8 -:101160000000000C29800000000000102053000047 -:1011700000000008220000080000000C614200048A -:1011800000000018000A0000000000000502000036 -:101190000000000C6142000000000010014200034A -:1011A0000000000C33E7001D0000000C614200024B -:1011B00000000018000A0000000000002A000000E3 -:1011C00000000010001F00000000000F0F47000784 -:1011D000000000080F8000080000000C29800000BB -:1011E00000000010009F0000000000188000FEF2C8 -:1011F0000000000033510000000000002A00000041 -:1012000000000010B1C600230000000F0F500007BF -:10121000000000000A600000000000000AE1000079 -:101220000000000F4B620008000000090B1600FFD1 -:101230000000000F4C620010000000000D62000072 -:10124000000000090D1A00FF000000100750000305 -:101250000000000C0D1A00080000000C0B1600081E -:10126000000000000CC60000000000000B80000021 -:101270000000000006980000000000080F80000336 -:101280000000001006C200040000000C290000024B -:1012900000000010264200020000000C295200034A -:1012A000000000082200000100000010009F000064 -:1012B00000000000231B00000000000027111A009E -:1012C00000000000669000000000000C29520000A1 -:1012D00000000010B19732090000000C29800000C6 -:1012E00000000000069800000000001020530000DD -:1012F0000000000C295200030000000022C58C00F1 -:1013000000000010001F0000000000080F80000314 -:10131000000000188000FFF300000010B1C80013A7 -:1013200000000010B1C600030000000C298000007E -:1013300000000010205300000000000C29520000A3 -:101340000000000C295200030000001006C2000239 -:101350000000000C295200020000000022C58C0091 -:1013600000000000276500000000000026E40000E7 -:10137000000000082200001600000010B1C60003A3 -:10138000000000002348000000000010B1800005AC -:1013900000000000234800000000000C298000002D -:1013A0000000000F0F50000700000018800000121E -:1013B00000000008220000160000000C2980000038 -:1013C0000000000030140000000000003095000014 -:1013D0000000001007500003000000090B1600FF7A -:1013E000000000090D1A00FF0000000F3116000870 -:1013F000000000003162340000000003F1623000A0 -:1014000000000010205F0000000000002C510000D0 -:10141000000000092CD1007F000000082CD900003A -:10142000000000082D000000000000082D80000CC6 -:1014300000000000000000000000001091DE00002D -:101440000000001005C20004000000080F80000723 -:10145000000000003300000000000010009F0000AA -:10146000000000188000FEA3000000002A00000019 -:101470000000000F0F50000700000010B1C6002D43 -:101480000000000F4742000800000009070E000F8F -:1014900000000008070E000800000010001F0000F8 -:1014A00000000008090000010000000709121C00EC -:1014B00000000003CBCA9200000000000B97A200BE -:1014C0000000000742171C00000000000B04000091 -:1014D0000000000F0A840003000000000A959C0031 -:1014E000000000004A009A0000000008821200017B -:1014F000000000010C170800000000000C978C0091 -:101500000000000002180000000000080D00FFFFAE -:10151000000000080F8000060000000C29000000F9 -:101520000000001006C200040000000C2952000256 -:1015300000000010264200020000000C29520003A7 -:10154000000000082200000100000010009F0000C1 -:1015500000000010B197320C00000000231B0000B7 -:101560000000000027110800000000006690000045 -:101570000000000C2980000000000000021800009C -:1015800000000010205300000000000C295200034E -:101590000000000022C5360000000010001F0000FF -:1015A000000000080F800006000000188000FFF413 -:1015B00000000000231B00000000000027110800AD -:1015C000000000006690000000000010B1C8000B91 -:1015D0000000000C298000000000001020530000D3 -:1015E0000000000C295200000000000C29520003EA -:1015F0000000001006C200020000000C2952000288 -:101600000000000022C58C000000000027650000DB -:101610000000000026E40000000000002348000055 -:1016200000000008220000170000000C29800000C4 -:1016300000000010001F0000000000188000FE687D -:00000001FF -/* - * This file contains firmware data derived from proprietary unpublished - * source code, Copyright (c) 2004 - 2009 Broadcom Corporation. - * - * Permission is hereby granted for the distribution of this firmware data - * in hexadecimal or equivalent format, provided this copyright notice is - * accompanying it. - */ diff --git a/firmware/bnx2/bnx2-rv2p-09-6.0.17.fw.ihex b/firmware/bnx2/bnx2-rv2p-09-6.0.17.fw.ihex deleted file mode 100644 index 435203d64305..000000000000 --- a/firmware/bnx2/bnx2-rv2p-09-6.0.17.fw.ihex +++ /dev/null @@ -1,392 +0,0 @@ -:1000000000000000000008F800000058000000098F -:1000100000000000000000000000000000000000E0 -:1000200000000000000000000000000000000000D0 -:1000300000000E88000009500000000500000000CC -:1000400000000000000000000000000000000000B0 -:080050000000000000000000A8 -:0800580000000010B180000659 -:100060000000001F05060011000000080500FFFF4A -:10007000000000180002000000000008050000FF5A -:10008000000000180002000000000008AC000001A1 -:1000900000000008078000000000000C2F80000115 -:1000A000000000002B000000000000002B8000007A -:1000B0000000001091E1000200000008AC00000107 -:1000C00000000010203F003B00000010213F000313 -:1000D0000000001020BF0015000000188000FFFD88 -:1000E0000000000C1F800002000000188000FFF9D3 -:1000F00000000008B1000001000000082C80010C85 -:10010000000000082D000008000000082D800001FC -:10011000000000188000003C0000000B2FDF0002F0 -:100120000000000C1F800002000000002C070000EF -:100130000000001091DE0000000000188000FFEFBA -:100140000000000B2FDF00020000000C1F800000E9 -:10015000000000002C0700000000001091DE0000ED -:10016000000000188000FFEA0000000C1F80000261 -:10017000000000188000FFE80000000802240025AD -:1001800000000018000400000000001880000000BB -:10019000000000188000001B0000001880000042D2 -:1001A000000000188000000000000018800000001F -:1001B000000000188000000000000018800000000F -:1001C00000000018800000000000001880000000FF -:1001D00000000018800000000000001880000000EF -:1001E00000000018800000000000001880000000DF -:1001F000000000188000008E000000188000000041 -:1002000000000018800000000000001880000000BE -:1002100000000018800000000000001880000000AE -:10022000000000188000000000000018800000009E -:10023000000000188000008D00000018800000B74A -:10024000000000188000008400000018800000DA20 -:10025000000000188000002B000000188000000043 -:10026000000000188000006B0000001091D4000016 -:100270000000000C298000010000000C1F8000011C -:10028000000000082A0000020000000807800000AB -:10029000000000188000FFC4000000080380010077 -:1002A00000000010B73C0E000000001880000000A5 -:1002B000000000180002000000000000068200009C -:1002C00000000010B18F000400000010B18F140373 -:1002D000000000082A0000010000001091D4000076 -:1002E000000000000780140000000018000D00004E -:1002F00000000000050200000000001091DE000078 -:1003000000000018000A0000000000000682000043 -:100310000000001091DE0000000000090561FFFFF1 -:1003200000000010918A00020000000830E1FFFF89 -:10033000000000188000FFA9000000010561140002 -:1003400000000010918A000200000008B0E10001E6 -:1003500000000018000D00000000000006820000F0 -:100360000000001091DE0000000000090562FFFFA0 -:1003700000000010918A0002000000083162FFFFB7 -:10038000000000188000FF9F0000000105621400BB -:1003900000000010918A000200000008B162000114 -:1003A00000000018000D000000000010B1A0B01304 -:1003B0000000000B2FDF0002000000002C200000D6 -:1003C000000000082C800000000000082D00000044 -:1003D0000000001091D40000000000080500005546 -:1003E000000000188000FFDB000000082D80011CC9 -:1003F00000000010001F0000000000188000FFE255 -:100400000000000F476000080000000F060E00010A -:10041000000000000F580000000000000A64000007 -:10042000000000000AE50000000000090B66FFFF65 -:10043000000000000D6100000000001880000015A1 -:100440000000000F476000080000000B2FDF0002D3 -:10045000000000082C800000000000082D000000B3 -:100460000000001091D40000000000082D80011C45 -:100470000000000F060E000100000010001F000029 -:10048000000000000F580000000000188000FFD09E -:10049000000000000A640000000000000AE50000FF -:1004A000000000090B66FFFF000000000D61000066 -:1004B00000000000026200000000000002E00000F6 -:1004C0000000000B2FDF00020000000030050000DC -:1004D000000000003104000000000000309A00001D -:1004E000000000100060000A00000008051600016E -:1004F00000000010BA9A140300000000030000007E -:100500000000001880000006000000188000FF6C4A -:1005100000000010B60614040000000803060001E5 -:10052000000000082A000001000000188000FF7190 -:10053000000000000C961800000000090C99FFFF55 -:1005400000000004CC99340000000010BA992C027D -:10055000000000080F8000000000000C298000014E -:100560000000000C295200010000000C295200007C -:100570000000000822800002000000080200000EB7 -:10058000000000080280001A00000010B1C40A0236 -:1005900000000008020000030000000C1F800001A2 -:1005A000000000002ADF0000000000002A00080010 -:1005B000000000188000FF600000000B2FDF000229 -:1005C0000000001091D40000000000082A00000183 -:1005D000000000002C2000000000001091D400005A -:1005E000000000082C800000000000082D00000022 -:1005F000000000082D80011C000000188000FF9FF3 -:10060000000000082C800006000000082D000006F5 -:1006100000000000308000000000000031000000F9 -:10062000000000082D8000060000000C2980000159 -:100630000000000C1F8000010000001091DE00008F -:10064000000000002ADF0000000000082A0000105F -:100650000000000807800000000000188000FF4B29 -:100660000000001091D4000000000008050000AA5E -:10067000000000188000FF890000000C29800001A4 -:100680000000000C1F800001000000082A00000983 -:10069000000000188000FF440000001091D400000A -:1006A0000000000805000055000000188000FF82CF -:1006B0000000001091A0B00200000010B1E6620737 -:1006C0000000000B2FDF0002000000002C310000B2 -:1006D000000000092CB1007F000000082CD90000A8 -:1006E000000000082D000000000000082D80010D12 -:1006F00000000010B1A8000600000010205F0000FC -:10070000000000002C200000000000002CA70000CA -:10071000000000082D000010000000082D800108D6 -:10072000000000188000FF7A00000010B1A6001041 -:1007300000000010001F00000000000F0F30000735 -:10074000000000000A600000000000000AE1000054 -:100750000000000F4B620008000000090B1600FFAC -:10076000000000000D620000000000090D1A00FFEB -:1007700000000010073000030000000C0D1A0008F4 -:100780000000000C0B1600080000000F4CE30018DE -:10079000000000000C992C0000000004CC993400EB -:1007A000000000080F8000000000000C29800001FC -:1007B0000000000033310000000000082200001695 -:1007C000000000002ADF0000000000082A00000CE2 -:1007D00000000010009F0000000000002C2000001E -:1007E0000000000C1F800001000000188000FF19AD -:1007F0000000001091D4000000000008050000AACD -:10080000000000188000FF570000000F472200087A -:1008100000000009070E000F00000008070E000886 -:1008200000000008028000010000000702851C0093 -:1008300000000008828500010000000002854C00D5 -:100840000000000742851C0000000003C3AA5200FC -:100850000000000003B10E00000000074B071C0061 -:100860000000000F0F3000070000000F0A96000381 -:10087000000000000A955C00000000004A005A00D9 -:10088000000000000C960A00000000090C99FFFF10 -:10089000000000080D00FFFF00000010BA992C02B4 -:1008A000000000080F80000500000010B1A800083B -:1008B00000000010205F00000000000B2FDF00028E -:1008C000000000002C200000000000002CA7000009 -:1008D000000000082D000010000000082D80010815 -:1008E000000000188000FF420000000C2980000179 -:1008F00000000010001F00000000000C1F8000011D -:10090000000000002ADF0000000000082A00000D9F -:10091000000000188000FEF40000001091D40000D8 -:100920000000000805000055000000188000FF329C -:100930000000000C298000010000000C1F80000155 -:10094000000000082A000007000000188000FEEDEB -:1009500000000010B18000040000001F0506001117 -:1009600000000008050000FF000000180002000061 -:10097000000000002A00000000000010B1D40000B8 -:100980000000001091DE0000000000102053000065 -:1009900000000010001F0000000000002F80AA00CF -:1009A0000000000C29800001000000080254000F24 -:1009B000000000002C400000000000000F4000007C -:1009C000000000092952003F000000180004000048 -:1009D00000000018800000110000001880000012C4 -:1009E000000000188000003800000018800001118D -:1009F0000000001880000110000000188000010FA6 -:100A0000000000188000010F0000001880000000A6 -:100A10000000001880000128000000188000010B71 -:100A20000000001880000000000000188000012C69 -:100A3000000000188000017A000000188000005AB1 -:100A400000000018800000C400000018800000C5ED -:100A50000000001880000104000000002A000000CF -:100A6000000000188000FFE3000000002A000000E2 -:100A70000000000C29800000000000188000FFE04A -:100A80000000001800020000000000000502000045 -:100A900000000010B99A2C2100000010205F000017 -:100AA000000000002C1E0000000000082C80000642 -:100AB000000000082D000006000000082D80010243 -:100AC00000000000000000000000001091DE0000A7 -:100AD000000000000D61000000000018000A000086 -:100AE000000000000502000000000010B99A2C165A -:100AF00000000010205F00000000000009D8000086 -:100B0000000000002C1E0000000000082C80010ED8 -:100B1000000000082D00000A000000082D800102DE -:100B200000000000000000000000001091DE000046 -:100B3000000000000D620000000000002C13000007 -:100B400000000018000A000000000000050200007C -:100B500000000010B99A2C0900000010205F00006E -:100B6000000000002C1E0000000000082C80000681 -:100B7000000000082D00006A000000082D8001021E -:100B800000000000000000000000001091DE0000E6 -:100B9000000000000D7A000000000018000A0000AC -:100BA000000000002A0000000000000822000001F0 -:100BB000000000000D6100000000001021C20024B0 -:100BC00000000010B1C6000200000010234200A285 -:100BD000000000090B66FFFF00000010BA9A2C20ED -:100BE000000000000A640000000000000AE50000A8 -:100BF000000000000C000000000000000B8000005E -:100C0000000000080CC60012000000188000FFD091 -:100C1000000000080F80000300000000000000003A -:100C200000000010009F00000000000827110012C3 -:100C3000000000006690000000000010B198000362 -:100C400000000010001F0000000000080F800004DA -:100C50000000000822000003000000082C80000CA7 -:100C6000000000082D00000C00000010009F000094 -:100C70000000001091C6000500000010001F0000D9 -:100C800000000010BA9A2C03000000080F80000436 -:100C9000000000188000FFFD000000002596000005 -:100CA0000000000C29800000000000003214000049 -:100CB00000000000329500000000000573662C0063 -:100CC0000000000031E32E00000000082D8000101D -:100CD000000000188000FF950000000023000000C5 -:100CE0000000000925E6FFFF000000082200000BBD -:100CF0000000000C695200000000000C2980000078 -:100D0000000000188000FF8F000000002A00000093 -:100D1000000000082C800040000000082D0000208A -:100D2000000000082D80011C0000000822000001C6 -:100D30000000001091DE00000000000F42EA0010E9 -:100D400000000010004F000400000010B7469200A1 -:100D5000000000080249001200000010B5840A00DB -:100D6000000000000D61000000000010BA6634575A -:100D7000000000088305001200000010004F000270 -:100D800000000000034900000000000183068C0001 -:100D90000000000083C60C0000000010B1870013A3 -:100DA000000000000B6E0000000000090569FFFF55 -:100DB00000000010918A00020000000834E9FFFFE3 -:100DC000000000188000FF74000000010569140095 -:100DD00000000010918A000200000008B4E9000140 -:100DE00000000010BAE92C480000000086692C00C1 -:100DF00000000000020000000000000902EAFFFFFE -:100E000000000010000C00020000000002040A00B4 -:100E10000000000F460C00010000000F02850001D9 -:100E200000000010918C01FC00000010B7040E3F80 -:100E3000000000000D610000000000000A640000D6 -:100E4000000000000AE50000000000090B66FFFF3B -:100E5000000000000C000000000000000B800000FB -:100E6000000000080C860012000000080F8000033C -:100E70000000000C2952000000000010009F00003C -:100E8000000000082711001200000000669000001A -:100E9000000000002306000000000010B1980005CB -:100EA00000000010001F0000000000080F80000478 -:100EB000000000000000000000000010001F000003 -:100EC0000000000032140000000000003295000015 -:100ED0000000000031E32E000000000573662C00C6 -:100EE000000000002596000000000010B1870016E9 -:100EF0000000000C298000000000000F0F6B0007AD -:100F0000000000000D690000000000000A6C0000F5 -:100F1000000000000AED0000000000000B6E000061 -:100F2000000000000B800000000000000C870000A3 -:100F3000000000080F800003000000102053000094 -:100F40000000000C6952000100000010001F0000AA -:100F50000000000022C58C0000000000231B0000E0 -:100F60000000000027110000000000002690000093 -:100F700000000010B8170E030000000C29800000CC -:100F8000000000188000FFF600000010B198000279 -:100F9000000000080F800004000000082200001A72 -:100FA000000000082C80000C000000082D00000C40 -:100FB000000000082D80001000000010001F00003D -:100FC000000000000D6E000000000003E7CF3400B9 -:100FD0000000000C298000000000001091DE0000DD -:100FE00000000010B1870007000000003614000068 -:100FF00000000000369500000000000037160000D9 -:10100000000000082C800050000000082D00003077 -:10101000000000082D80000C000000188000FF2C4C -:1010200000000000230000000000000925E6FFFF8B -:10103000000000000B6E000000000003E7CF2C0052 -:10104000000000082200001B0000000C6952000094 -:101050000000000C29800000000000188000FF2420 -:10106000000000002A000000000000188000FF229D -:10107000000000002A0000000000000C2980000091 -:101080000000001091DE0000000000082C80001A13 -:10109000000000082D00001A000000057366000023 -:1010A000000000082D8000020000000031800000D8 -:1010B0000000001091DE0000000000082C80000CF1 -:1010C000000000082D00000C000000082D80000426 -:1010D000000000188000FF150000000806660001EF -:1010E00000000010BA9A197F000000000A64000096 -:1010F000000000000AE50000000000090B66FFFF89 -:10110000000000000C000000000000000B80000048 -:10111000000000080CC60012000000188000FF2E1E -:10112000000000080F800003000000000000000025 -:1011300000000010009F00000000000827110012AE -:10114000000000006690000000000010919B32003B -:10115000000000100293000000000010B19800038E -:1011600000000010001F0000000000080F800004B5 -:101170000000000C2980000000000010001F00008B -:1011800000000010BA9A2C000000000031E32E008D -:10119000000000000B800000000000008CCC8C00E0 -:1011A00000000010B5CC8C02000000080C8000018B -:1011B000000000188000FF1B000000080F800003E3 -:1011C00000000010205300000000000C69520001D4 -:1011D0000000000022C58C0000000010009F0000ED -:1011E0000000000027110000000000002690000011 -:1011F00000000000231B000000000010B198000355 -:1012000000000010001F0000000000080F80000414 -:101210000000000822000003000000082C80000CE1 -:10122000000000082D00000C00000010009F0000CE -:1012300000000000259600000000000C298000003E -:101240000000000032140000000000003295000091 -:101250000000000573662C000000000031E32E0042 -:10126000000000082D800010000000188000FEE241 -:10127000000000188000FEE1000000002A000000CD -:1012800000000010001F0000000000000F008000A0 -:10129000000000080F800007000000188000001BFD -:1012A00000000000280A0000000000000502000005 -:1012B00000000008220000090000000029000000D2 -:1012C0000000000F6568001000000000248A000084 -:1012D00000000003F66C940000000010B972A00436 -:1012E0000000000C73E700190000000C214200040C -:1012F000000000003CF800000000000C2980000005 -:101300000000001020530000000000082200000828 -:101310000000000C6142000400000018000A0000F8 -:1013200000000000050200000000000C6142000007 -:1013300000000010014200030000000C33E7001D14 -:101340000000000C6142000200000018000A0000CA -:10135000000000002A00000000000010001F000034 -:101360000000000F0F470007000000080F80000872 -:101370000000000C2980000000000010009F000009 -:10138000000000188000FEBF000000003351000084 -:10139000000000002A00000000000010B1C6002379 -:1013A0000000000F0F500007000000000A6000005E -:1013B000000000000AE100000000000F4B6200087E -:1013C000000000090B1600FF0000000F4C62001027 -:1013D000000000000D620000000000090D1A00FF6F -:1013E00000000010075000030000000C0D1A000858 -:1013F0000000000C0B160008000000000CC60000E6 -:10140000000000000B8000000000000006980000B3 -:10141000000000080F8000030000001006C2000456 -:101420000000000C2900000200000010264200020B -:101430000000000C295200030000000822000001F7 -:1014400000000010009F000000000000231B0000AF -:101450000000000027111A00000000006690000044 -:101460000000000C2952000000000010B197320962 -:101470000000000C29800000000000000698000019 -:1014800000000010205300000000000C295200034F -:101490000000000022C58C0000000010001F0000AA -:1014A000000000080F800003000000188000FFF318 -:1014B00000000010B1C8001300000010B1C6000306 -:1014C0000000000C298000000000001020530000E4 -:1014D0000000000C295200000000000C29520003FB -:1014E0000000001006C200020000000C2952000299 -:1014F0000000000022C58C000000000027650000ED -:101500000000000026E40000000000082200001691 -:1015100000000010B1C600030000000023480000D6 -:1015200000000010B180000500000000234800000A -:101530000000000C298000000000000F0F50000781 -:1015400000000018800000120000000822000016B1 -:101550000000000C29800000000000003014000092 -:10156000000000003095000000000010075000034C -:10157000000000090B1600FF000000090D1A00FF13 -:101580000000000F31160008000000003162340036 -:1015900000000003F162300000000010205F000036 -:1015A000000000002C510000000000092CD1007F39 -:1015B000000000082CD90000000000082D000000E9 -:1015C000000000082D80000C00000000000000005A -:1015D0000000001091DE00000000001005C20004B1 -:1015E000000000080F80000700000000330000002A -:1015F00000000010009F0000000000188000FE7036 -:10160000000000002A0000000000000F0F5000073B -:1016100000000010B1C6002D0000000F4742000876 -:1016200000000009070E000F00000008070E000868 -:1016300000000010001F0000000000080900000169 -:101640000000000709121C0000000003CBCA920032 -:10165000000000000B97A2000000000742171C00CA -:10166000000000000B0400000000000F0A840003CB -:10167000000000000A959C00000000004A009A004B -:101680000000000882120001000000010C17080091 -:10169000000000000C978C00000000000218000001 -:1016A000000000080D00FFFF000000080F8000068A -:1016B0000000000C290000000000001006C2000419 -:1016C0000000000C29520002000000102642000217 -:1016D0000000000C29520003000000082200000155 -:1016E00000000010009F000000000010B197320CB5 -:1016F00000000000231B000000000000271108006C -:1017000000000000669000000000000C298000002E -:10171000000000000218000000000010205300002C -:101720000000000C295200030000000022C5360012 -:1017300000000010001F0000000000080F800006DD -:10174000000000188000FFF400000000231B0000D0 -:101750000000000027110800000000006690000053 -:1017600000000010B1C8000B0000000C2980000030 -:1017700000000010205300000000000C295200005F -:101780000000000C295200030000001006C20002F5 -:101790000000000C295200020000000022C58C004D -:1017A00000000000276500000000000026E40000A3 -:1017B000000000002348000000000008220000177D -:1017C0000000000C2980000000000010001F000035 -:0817D000000000188000FE3546 -:00000001FF -/* - * This file contains firmware data derived from proprietary unpublished - * source code, Copyright (c) 2004 - 2009 Broadcom Corporation. - * - * Permission is hereby granted for the distribution of this firmware data - * in hexadecimal or equivalent format, provided this copyright notice is - * accompanying it. - */ diff --git a/firmware/bnx2/bnx2-rv2p-09ax-6.0.17.fw.ihex b/firmware/bnx2/bnx2-rv2p-09ax-6.0.17.fw.ihex deleted file mode 100644 index d2f275788f16..000000000000 --- a/firmware/bnx2/bnx2-rv2p-09ax-6.0.17.fw.ihex +++ /dev/null @@ -1,425 +0,0 @@ -:100000000000000000000970000000580000000916 -:1000100000000000000000000000000000000000E0 -:1000200000000000000000000000000000000000D0 -:1000300000001010000009C80000000500000000CA -:1000400000000000000000000000000000000000B0 -:080050000000000000000000A8 -:0800580000000010B180000659 -:100060000000001F03060011000000080500FFFF4C -:10007000000000180002000000000008050000FF5A -:10008000000000180002000000000008AC000001A1 -:1000900000000008078000000000000C2F80000115 -:1000A000000000002B000000000000002B8000007A -:1000B0000000001091E1000200000008AC00000107 -:1000C00000000010203F003B00000010213F000313 -:1000D0000000001020BF0015000000188000FFFD88 -:1000E0000000000C1F800002000000188000FFF9D3 -:1000F00000000008B1000001000000082C80010C85 -:10010000000000082D000008000000082D800001FC -:10011000000000188000004F0000000B2FDF0002DD -:100120000000000C1F800002000000002C070000EF -:100130000000001091DE0000000000188000FFEFBA -:100140000000000B2FDF00020000000C1F800000E9 -:10015000000000002C0700000000001091DE0000ED -:10016000000000188000FFEA0000000C1F80000261 -:10017000000000188000FFE80000000802240025AD -:1001800000000018000400000000001880000000BB -:10019000000000188000001B0000001880000055BF -:1001A000000000188000000000000018800000001F -:1001B000000000188000000000000018800000000F -:1001C00000000018800000000000001880000000FF -:1001D00000000018800000000000001880000000EF -:1001E00000000018800000000000001880000000DF -:1001F000000000188000009D000000188000000032 -:1002000000000018800000000000001880000000BE -:1002100000000018800000000000001880000000AE -:10022000000000188000000000000018800000009E -:10023000000000188000009C00000018800000C62C -:10024000000000188000009300000018800000E902 -:10025000000000188000003E000000188000000030 -:10026000000000188000007A0000001091D4000007 -:100270000000000C298000010000000C1F8000011C -:10028000000000082A0000020000000807800000AB -:10029000000000188000FFC4000000080380010077 -:1002A00000000010B73C0E000000001880000000A5 -:1002B000000000000202000000000000029A00009E -:1002C00000000000060C2C0000000004C60C3400E6 -:1002D00000000010001F000000000010BA8C2C0C61 -:1002E000000000080696000400000009068DFFFCCF -:1002F00000000004CD051A0000000004CC9A18008C -:100300000000001020D700000000000C2B56000059 -:1003100000000000000000000000000000000000DD -:100320000000001020D70000000000080F8000012E -:1003300000000010B18001F400000010001F000058 -:100340000000000C6B5600000000001800040000C4 -:10035000000000000682000000000010B18F0004C1 -:1003600000000010B18F1403000000082A000001F3 -:100370000000001091D4000000000000078014006D -:1003800000000018000D0000000000000502000041 -:100390000000001091DE000000000018000A0000BC -:1003A00000000000068200000000001091DE000046 -:1003B000000000090561FFFF00000010918A0002A3 -:1003C0000000000830E1FFFF000000188000FF96E9 -:1003D000000000010561140000000010918A000275 -:1003E00000000008B0E1000100000018000D00004E -:1003F00000000000068200000000001091DE0000F6 -:10040000000000090562FFFF00000010918A000251 -:10041000000000083162FFFF000000188000FF8C20 -:10042000000000010562140000000010918A000223 -:1004300000000008B162000100000018000D00007B -:1004400000000010B1A0B0130000000B2FDF00026D -:10045000000000002C200000000000082C8000009C -:10046000000000082D0000000000001091D40000E2 -:100470000000000805000055000000188000FFDBA8 -:10048000000000082D80011C00000010001F00006B -:10049000000000188000FFE20000000F4760000825 -:1004A0000000000F060E0001000000000F580000C1 -:1004B000000000000A640000000000000AE50000DF -:1004C000000000090B66FFFF000000000D61000046 -:1004D00000000018800000150000000F47600008B1 -:1004E0000000000B2FDF0002000000082C8000003D -:1004F000000000082D0000000000001091D4000052 -:10050000000000082D80011C0000000F060E0001F5 -:1005100000000010001F0000000000000F58000045 -:10052000000000188000FFD0000000000A640000F6 -:10053000000000000AE50000000000090B66FFFF54 -:10054000000000000D6100000000000002620000D9 -:100550000000000002E000000000000B2FDF00029E -:100560000000000030050000000000003104000021 -:1005700000000000309A0000000000100060000A37 -:10058000000000080516000100000010BA9A1403CC -:1005900000000000030000000000001880000006BA -:1005A000000000188000FF5900000010B606140477 -:1005B0000000000803060001000000082A000001F6 -:1005C000000000188000FF5E000000188000FF9D02 -:1005D0000000000C298000010000000C29520001DD -:1005E0000000000C295200000000000822800002D8 -:1005F000000000080200000E000000080280001A3F -:1006000000000010B1C40A0200000008020000034C -:100610000000000C1F800001000000002ADF000025 -:10062000000000002A000800000000188000FF51B0 -:100630000000000B2FDF00020000001091D400002A -:10064000000000082A000001000000002C2000002B -:100650000000001091D40000000000082C80000071 -:10066000000000082D000000000000082D80011C83 -:10067000000000188000FFA3000000082C80000686 -:10068000000000082D00000600000000308000007F -:100690000000000031000000000000082D8000066E -:1006A0000000000C298000010000000C1F800001E8 -:1006B0000000001091DE0000000000002ADF0000B2 -:1006C000000000082A000010000000080780000059 -:1006D000000000188000FF3C0000001091D40000D2 -:1006E00000000008050000AA000000188000FF8D2F -:1006F0000000000C298000010000000C1F80000198 -:10070000000000082A000009000000188000FF35E2 -:100710000000001091D40000000000080500005502 -:10072000000000188000FF860000001091A0B002B9 -:1007300000000010B1E662070000000B2FDF00028E -:10074000000000002C310000000000092CB1007FE7 -:10075000000000082CD90000000000082D00000057 -:10076000000000082D80010D00000010B1A8000657 -:1007700000000010205F0000000000002C2000009E -:10078000000000002CA70000000000082D00001051 -:10079000000000082D800108000000188000FF7E86 -:1007A00000000010B1A6001000000010001F0000A3 -:1007B0000000000F0F300007000000000A6000007A -:1007C000000000000AE100000000000F4B6200087A -:1007D000000000090B1600FF000000000D62000081 -:1007E000000000090D1A00FF000000100730000390 -:1007F0000000000C0D1A00080000000C0B16000889 -:100800000000000F4CE30018000000000C992C00C1 -:1008100000000004CC993400000000080F800000A4 -:100820000000000C298000010000000033310000AE -:100830000000000822000016000000002ADF00006F -:10084000000000082A00000C00000010009F0000BB -:10085000000000002C2000000000000C1F800001A0 -:10086000000000188000FF0A0000001091D4000072 -:1008700000000008050000AA000000188000FF5BCF -:100880000000000F4722000800000009070E000FBB -:1008900000000008070E00080000000802800001A8 -:1008A0000000000702851C0000000008828500018E -:1008B0000000000002854C000000000742851C007B -:1008C00000000003C3AA52000000000003B10E00A4 -:1008D000000000074B071C000000000F0F3000074E -:1008E0000000000F0A960003000000000A955C005B -:1008F000000000004A005A00000000000C960A00A8 -:10090000000000090C99FFFF000000080D00FFFF28 -:1009100000000010BA992C02000000080F800005AA -:1009200000000010B1A8000800000010205F0000C7 -:100930000000000B2FDF0002000000002C20000050 -:10094000000000002CA70000000000082D0000108F -:10095000000000082D800108000000188000FF46FC -:100960000000000C2980000100000010001F0000A2 -:100970000000000C1F800001000000002ADF0000C2 -:10098000000000082A00000D000000188000FEE5AD -:100990000000001091D40000000000080500005580 -:1009A000000000188000FF360000000C29800001C4 -:1009B0000000000C1F800001000000082A00000752 -:0809C000000000188000FEDEBB -:0809C80000000010B1800004E2 -:1009D0000000001F0306001100000008050000FFD2 -:1009E0000000001800020000000000002A000000C3 -:1009F00000000010B1D400000000001091DE0000E3 -:100A0000000000102053000000000010001F000034 -:100A10000000000C6BD70001000000002F80AA002E -:100A20000000000C298000010000000802540010A2 -:100A3000000000002C400000000000000F400000FB -:100A4000000000092952003F0000001800040000C7 -:100A50000000001880000011000000188000001243 -:100A600000000018800000470000001880000137D7 -:100A700000000018800001360000001880000135D9 -:100A80000000001880000135000000188000000000 -:100A9000000000188000014F0000001880000131A4 -:100AA00000000018800000000000001880000155C0 -:100AB00000000018800001A6000000188000006DF2 -:100AC00000000018800000E400000018800000E52D -:100AD000000000188000012A000000002A00000029 -:100AE000000000188000FFE2000000002A00000063 -:100AF0000000000C29800000000000188000FFDFCB -:100B00000000000003820000000000188000FFDAEF -:100B1000000000010C161400000000008C181400E6 -:100B20000000001091980003000000080C960002DD -:100B300000000010B1800003000000080C960001C6 -:100B4000000000000C000000000000000D19000073 -:100B5000000000080F8000010000000000000000FD -:100B600000000010001F00000000000C6BD7000107 -:100B700000000010011301F300000018000700003E -:100B8000000000000502000000000010B99A2C21AE -:100B900000000010205F0000000000002C1E00007C -:100BA000000000082C800006000000082D00000650 -:100BB000000000082D80010200000000000000007D -:100BC0000000001091DE0000000000000D61000038 -:100BD00000000018000A00000000000005020000EC -:100BE00000000010B99A2C1600000010205F0000D1 -:100BF0000000000009D80000000000002C1E0000CA -:100C0000000000082C80010E000000082D00000AE2 -:100C1000000000082D80010200000000000000001C -:100C20000000001091DE0000000000000D620000D6 -:100C3000000000002C13000000000018000A000053 -:100C4000000000000502000000000010B99A2C0905 -:100C500000000010205F0000000000002C1E0000BB -:100C6000000000082C800006000000082D00006A2B -:100C7000000000082D8001020000000000000000BC -:100C80000000001091DE0000000000000D7A00005E -:100C900000000018000A0000000000002A00000008 -:100CA0000000000822000001000000000D610000AB -:100CB0000000001021C2002800000010B1C6000290 -:100CC00000000010234200B3000000090B66FFFF84 -:100CD00000000010BA9A2C24000000000A640000F2 -:100CE000000000000AE50000000000000C00000009 -:100CF000000000000B800000000000080CC600127D -:100D0000000000188000FFD0000000080F800003E2 -:100D1000000000000000000000000010001F0000A4 -:100D20000000000C6BD70001000000082711001222 -:100D3000000000006690000000000010B198000460 -:100D400000000010001F00000000000C6BD7000125 -:100D5000000000080F8000040000000822000003CB -:100D6000000000082C80000C000000082D00000C82 -:100D700000000010001F00000000000C6BD70001F5 -:100D80000000001091C6000600000010001F0000C7 -:100D90000000000C6BD7000100000010BA9A2C0371 -:100DA000000000080F800004000000188000FFFC15 -:100DB00000000000259600000000000C29800000C3 -:100DC0000000000032140000000000003295000016 -:100DD0000000000573662C000000000031E32E00C7 -:100DE000000000082D800010000000188000FF8126 -:100DF00000000000230000000000000925E6FFFFBE -:100E0000000000082200000B0000000C69520000E6 -:100E10000000000C29800000000000188000FF7B0B -:100E2000000000002A000000000000082C800040A4 -:100E3000000000082D000020000000082D80011C8B -:100E400000000008220000010000001091DE0000F8 -:100E50000000000F42EA001000000010004F0004E4 -:100E600000000010B746920000000008024900127E -:100E700000000010B5840A00000000000D610000B1 -:100E800000000010BA6634640000000883050012F8 -:100E900000000010004F00020000000003490000A5 -:100EA0000000000183068C000000000083C60C00D7 -:100EB00000000010B1870013000000000B6E00005E -:100EC000000000090569FFFF00000010918A000280 -:100ED0000000000834E9FFFF000000188000FF60F8 -:100EE000000000010569140000000010918A000252 -:100EF00000000008B4E9000100000010BAE92C5518 -:100F00000000000086692C000000000002000000C4 -:100F10000000000902EAFFFF00000010000C0002C0 -:100F20000000000002040A000000000F460C00014F -:100F30000000000F0285000100000010918C01FCF0 -:100F400000000010B7040E4C000000000D6100000E -:100F5000000000000A640000000000000AE5000034 -:100F6000000000090B66FFFF000000000C000000FD -:100F7000000000000B800000000000080C8600123A -:100F8000000000080F8000030000000C2952000040 -:100F900000000010001F00000000000C6BD70001D3 -:100FA00000000008271100120000000066900000F9 -:100FB000000000002306000000000010B1980007A8 -:100FC00000000010001F00000000000C6BD70001A3 -:100FD000000000080F800004000000000000000076 -:100FE00000000010001F00000000000C6BD7000183 -:100FF00000000000321400000000000032950000E4 -:101000000000000031E32E000000000573662C0094 -:10101000000000002596000000000010B187001FAE -:101020000000000C298000000000000F0F6B00077B -:10103000000000000D690000000000000A6C0000C4 -:10104000000000000AED0000000000000B6E000030 -:10105000000000000B800000000000000C87000072 -:10106000000000188000FF2F000000010C16140083 -:10107000000000008C181400000000080C9600010D -:101080000000001091980002000000080C99000177 -:10109000000000000D190000000000000C0000001E -:1010A000000000080F800001000000102053000025 -:1010B0000000000C6952000100000010001F000039 -:1010C0000000000C6BD700010000000022C58C005E -:1010D00000000000231200000000000027110000A3 -:1010E000000000002690000000000010B8170E035A -:1010F0000000000C29800000000000188000FFEDB7 -:101100000000000082970E0000000000A3120A00F9 -:10111000000000082200001A000000082C80000CCB -:10112000000000082D00000C000000082D800010B9 -:1011300000000010001F00000000000C6BD7000131 -:10114000000000000D6E000000000003E7CF340037 -:101150000000000C298000000000001091DE00005B -:1011600000000010B18700070000000036140000E6 -:101170000000000036950000000000003716000057 -:10118000000000082C800050000000082D000030F6 -:10119000000000082D80000C000000188000FF0BEC -:1011A00000000000230000000000000925E6FFFF0A -:1011B000000000000B6E000000000003E7CF2C00D1 -:1011C000000000082200001B0000000C6952000013 -:1011D0000000000C29800000000000188000FF03C0 -:1011E000000000002A000000000000188000FF013D -:1011F000000000002A0000000000000C2980000010 -:101200000000001091DE0000000000082C80001A91 -:10121000000000082D00001A0000000573660000A1 -:10122000000000082D800002000000003180000056 -:101230000000001091DE0000000000082C80000C6F -:10124000000000082D00000C000000082D800004A4 -:10125000000000188000FEF400000008066600018F -:1012600000000010BA9A1972000000000A64000021 -:10127000000000000AE50000000000090B66FFFF07 -:10128000000000000C000000000000000B800000C7 -:10129000000000080CC60012000000188000FF1DAE -:1012A000000000080F8000030000000000000000A4 -:1012B00000000010001F00000000000C6BD70001B0 -:1012C00000000008271100120000000066900000D6 -:1012D00000000010919B32000000001002930000FB -:1012E00000000010B198000300000010001F000073 -:1012F0000000000C6BD70001000000080F80000404 -:101300000000000C2980000000000010001F0000F9 -:101310000000000C6BD7000100000010BA9A2C00EE -:101320000000000031E32E00000000000B800000F0 -:10133000000000008CCC8C0000000010B5CC8C02AA -:10134000000000080C800001000000188000FF076A -:10135000000000080F800003000000102053000070 -:101360000000000C695200010000000022C58C0042 -:1013700000000010001F00000000000C6BD70001EF -:10138000000000002711000000000000269000006F -:1013900000000000231B000000000010B1980003B3 -:1013A00000000010001F00000000000C6BD70001BF -:1013B000000000080F800004000000082200000365 -:1013C000000000082C80000C000000082D00000C1C -:1013D00000000010001F00000000000C6BD700018F -:1013E00000000000259600000000000C298000008D -:1013F00000000000321400000000000032950000E0 -:101400000000000573662C000000000031E32E0090 -:10141000000000082D800010000000188000FEBBB6 -:10142000000000188000FEBA000000002A00000042 -:1014300000000010001F00000000000C6BD700012E -:10144000000000000F008000000000080F8000076F -:10145000000000188000001C00000000280A0000A6 -:101460000000000005020000000000082200000942 -:1014700000000000290000000000000F6568001057 -:1014800000000000248A000000000003F66C9400B5 -:1014900000000010B972A0040000000C73E70019EE -:1014A0000000000C21420004000000003CF8000095 -:1014B0000000000C298000000000001020530000F4 -:1014C00000000008220000080000000C6142000437 -:1014D00000000018000A00000000000005020000E3 -:1014E0000000000C614200000000001001420003F7 -:1014F0000000000C33E7001D0000000C61420002F8 -:1015000000000018000A0000000000002A0000008F -:1015100000000010001F00000000000C6BD700014D -:101520000000000F0F470007000000080F800008B0 -:101530000000000C2980000000000010001F0000C7 -:101540000000000C6BD70001000000188000FE9521 -:101550000000000033510000000000002A000000DD -:1015600000000010B1C600250000000F0F5000075A -:10157000000000000A600000000000000AE1000016 -:101580000000000F4B620008000000090B1600FF6E -:101590000000000F4C620010000000000D6200000F -:1015A000000000090D1A00FF0000001007500003A2 -:1015B0000000000C0D1A00080000000C0B160008BB -:1015C000000000000CC60000000000000B800000BE -:1015D0000000000006980000000000080F800003D3 -:1015E0000000001006C200040000000C29000002E8 -:1015F00000000010264200020000000C29520003E7 -:10160000000000082200000100000010001F000080 -:101610000000000C6BD7000100000000231B00003D -:101620000000000027111A00000000006690000072 -:101630000000000C2952000000000010B197320A8F -:101640000000000C29800000000000000698000047 -:1016500000000010205300000000000C295200037D -:101660000000000022C58C0000000010001F0000D8 -:101670000000000C6BD70001000000080F80000381 -:10168000000000188000FFF100000010B1C8001336 -:1016900000000010B1C600030000000C298000000B -:1016A00000000010205300000000000C2952000030 -:1016B0000000000C295200030000001006C20002C6 -:1016C0000000000C295200020000000022C58C001E -:1016D00000000000276500000000000026E4000074 -:1016E000000000082200001600000010B1C6000330 -:1016F000000000002348000000000010B180000539 -:1017000000000000234800000000000C29800000B9 -:101710000000000F0F5000070000001880000012AA -:1017200000000008220000160000000C29800000C4 -:1017300000000000301400000000000030950000A0 -:101740000000001007500003000000090B1600FF06 -:10175000000000090D1A00FF0000000F31160008FC -:10176000000000003162340000000003F16230002C -:1017700000000010205F0000000000002C5100005D -:10178000000000092CD1007F000000082CD90000C7 -:10179000000000082D000000000000082D80000C53 -:1017A00000000000000000000000001091DE0000BA -:1017B0000000001005C20005000000080F800007AF -:1017C000000000003300000000000010001F0000B7 -:1017D0000000000C6BD70001000000188000FE43E1 -:1017E000000000002A0000000000000F0F5000075A -:1017F00000000010B1C600300000000F4742000892 -:1018000000000009070E000F00000008070E000886 -:1018100000000010001F00000000000C6BD700014A -:1018200000000008090000010000000709121C0068 -:1018300000000003CBCA9200000000000B97A2003A -:101840000000000742171C00000000000B0400000D -:101850000000000F0A840003000000000A959C00AD -:10186000000000004A009A000000000882120001F7 -:10187000000000010C170800000000000C978C000D -:101880000000000002180000000000080D00FFFF2B -:10189000000000080F8000060000000C2900000076 -:1018A0000000001006C200040000000C29520002D3 -:1018B00000000010264200020000000C2952000324 -:1018C000000000082200000100000010001F0000BE -:1018D0000000000C6BD7000100000010B197320D22 -:1018E00000000000231B000000000000271108007A -:1018F00000000000669000000000000C298000003D -:10190000000000000218000000000010205300003A -:101910000000000C295200030000000022C5360020 -:1019200000000010001F00000000000C6BD7000139 -:10193000000000080F800006000000188000FFF281 -:1019400000000000231B0000000000002711080019 -:10195000000000006690000000000010B1C8000BFD -:101960000000000C2980000000000010205300003F -:101970000000000C295200000000000C2952000356 -:101980000000001006C200020000000C29520002F4 -:101990000000000022C58C00000000002765000048 -:1019A0000000000026E400000000000023480000C2 -:1019B00000000008220000170000000C2980000031 -:1019C00000000010001F00000000000C6BD7000199 -:0819D000000000188000FE0475 -:00000001FF -/* - * This file contains firmware data derived from proprietary unpublished - * source code, Copyright (c) 2004 - 2009 Broadcom Corporation. - * - * Permission is hereby granted for the distribution of this firmware data - * in hexadecimal or equivalent format, provided this copyright notice is - * accompanying it. - */ diff --git a/firmware/bnx2x/bnx2x-e1-6.2.9.0.fw.ihex b/firmware/bnx2x/bnx2x-e1-6.2.9.0.fw.ihex deleted file mode 100644 index 0ed7f5891184..000000000000 --- a/firmware/bnx2x/bnx2x-e1-6.2.9.0.fw.ihex +++ /dev/null @@ -1,9484 +0,0 @@ -:1000000000003BB0000000680000070C00003C202E -:1000100000001AF8000043300000007C00005E3051 -:1000200000007A2C00005EB0000000B00000D8E0B4 -:10003000000080200000D99800000088000159C00D -:100040000000398800015A5000000090000193E040 -:100050000000AC040001947800000FFC0002408016 -:100060000000000400025080020400480000000F5D -:100070000204005400000045020400580000000083 -:100080000204005C0000000602040070000000048E -:1000900002040078000000000204007C1217000037 -:1000A00002040080221700000204008432170000BE -:1000B00006040088000000050204009C12150000E0 -:1000C000020400A022150000020400A43215000062 -:1000D000060400A800000004020400B8021000009A -:1000E000020400BC00100000020400C01010000058 -:1000F000020400C420100000020400C830100000F8 -:10010000060400CC00000004020400DC0010000023 -:10011000020400E012140000020400E422140000B3 -:10012000020400E832140000060400EC00000004A1 -:100130000104012400000000010401280000000067 -:100140000104012C00000000010401300000000047 -:1001500002040004000000FF02040008000000FF89 -:100160000204000C000000FF02040010000000FF69 -:1001700002040014000000FF02040018000000FF49 -:100180000204001C000000FF02040020000000FF29 -:10019000020400240000003E0204002800000000C9 -:1001A0000204002C0000003F020400300000003F69 -:1001B000020400340000003F020400380000000088 -:1001C0000204003C0000003F020400400000003F29 -:1001D000020400440000003F020420080000021155 -:1001E0000204200C0000020002042010000002049F -:1001F00002042014000002190204201C0000FFFF6A -:10020000020420200000FFFF020420240000FFFF62 -:10021000020420280000FFFF0604203800000080B0 -:100220000204223807FFFFFF0204223C0000003FC7 -:100230000204224007FFFFFF020422440000000FD7 -:1002400001042248000000000104224C00000000CC -:1002500001042250000000000104225400000000AC -:1002600001042258000000000104225C000000008C -:10027000010422600000000001042264000000006C -:1002800001042268000000000104226C000000004C -:10029000010422700000000001042274000000002C -:1002A00001042278000000000104227C000000000C -:1002B000020424BC000000010C042000000003E83C -:1002C0000A042000000000010B0420000000000AC6 -:1002D0000605400000000D0002050044000000205B -:1002E00002050048000000320205009002150020BF -:1002F000020500940215002002050098000000305D -:100300000205009C08100000020500A00000003358 -:10031000020500A400000030020500A80000003122 -:10032000020500AC00000002020500B0000000055C -:10033000020500B400000006020500B8000000023B -:10034000020500BC00000002020500C00000000021 -:10035000020500C400000005020500C800000002FC -:10036000020500CC00000002020500D000000002DF -:10037000020500D400000001020501140000000184 -:100380000205011C0000000102050120000000021E -:1003900002050204000000010205020C00000040FA -:1003A00002050210000000400205021C00000020AF -:1003B00002050220000000130205022400000020B4 -:1003C000060502400000000A04050280002000002B -:1003D000020500500000000702050054000000075D -:1003E00002050058000000000205005C0000000843 -:1003F0000605006000000004020500D800000006A9 -:10040000020500E00000000D020500E40000002DE0 -:10041000020500E800000000020500EC00000020DA -:10042000020500F000000000020500F400000020BA -:10043000020500F800000000020500FC000000209A -:100440000205000400000001020500080000000190 -:100450000205000C00000001020500100000000170 -:100460000205001400000001020500180000000150 -:100470000205001C00000001020500200000000130 -:100480000205002400000001020500280000000110 -:100490000205002C000000010205003000000001F0 -:1004A00002050034000000010205003800000001D0 -:1004B0000205003C000000010205004000000001B0 -:1004C0000406100002000020020600DC000000010B -:1004D000010600D80000000004060200000302200C -:1004E000020600DC0000000002060068000000B800 -:1004F0000206007800000114010600B800000000A8 -:10050000010600C8000000000206006C000000B8F0 -:100510000206007C00000114010600BC000000007F -:10052000010600CC0000000007180400007B00005A -:100530000818076000140223071C00002A040000AA -:10054000071C800032110A82071D00001E0C1707CD -:10055000081D4550575602250118000000000000F4 -:10056000011800040000000001180008000000004D -:100570000118000C0000000001180010000000002D -:100580000118001400000000021800200000000103 -:1005900002180024000000020218002800000003D6 -:1005A0000218002C000000000218003000000004B7 -:1005B000021800340000000102180038000000009A -:1005C0000218003C00000001021800400000000476 -:1005D000021800440000000002180048000000015A -:1005E0000218004C00000003021800500000000038 -:1005F0000218005400000001021800580000000416 -:100600000218005C000000000218006000000001F9 -:1006100002180064000000030218006800000000D7 -:100620000218006C000000010218007000000004B5 -:100630000218007400000000021800780000000496 -:100640000218007C00000003061800800000000271 -:10065000021800A400003FFF021800A8000003FFDA -:1006600002180224000000000218023400000000FA -:100670000218024C00000000021802E4000000FF13 -:100680000618100000000400021B8BC000000001CF -:10069000021B800000000034021B80400000001894 -:1006A000021B80800000000C021B80C000000020A4 -:1006B0000C1B83000007A1200A1B830000000138E7 -:1006C0000B1B8300000013880A1B834000000000FE -:1006D0000C1B8340000001F40B1B8340000000054D -:1006E000021B83800007A120021B83C0000001F4CD -:1006F000061A100000000273041A19CC0001022728 -:10070000061A2008000000C8061A20000000000297 -:10071000041A499800040228061A2E280000000234 -:10072000061A2E2000000002061A0800000000022F -:10073000061A080800000004061A08180000000243 -:10074000041A08B00002022C061A2FD0000000067E -:10075000041A2FE80002022E041A2FC000040230EF -:10076000041A300000010234061A300400000003AD -:10077000041A301000010235061A3014000000037C -:10078000041A302000010236061A3024000000034B -:10079000041A303000010237061A3034000000031A -:1007A000041A304000010238061A304400000003E9 -:1007B000041A305000010239061A305400000003B8 -:1007C000041A30600001023A061A30640000000387 -:1007D000041A30700001023B061A30740000000356 -:1007E000041A30800001023C061A30840000000325 -:1007F000041A30900001023D061A309400000003F4 -:10080000041A30A00001023E061A30A400000003C2 -:10081000041A30B00001023F061A30B40000000391 -:10082000041A30C000010240061A30C40000000360 -:10083000041A30D000010241061A30D4000000032F -:10084000041A30E000010242061A30E400000003FE -:10085000041A30F000010243061A30F400000003CD -:10086000041A310000010244061A3104000000039A -:10087000041A311000010245061A31140000000369 -:10088000041A312000010246061A31240000000338 -:10089000041A313000010247061A31340000000307 -:1008A000041A314000010248061A314400000003D6 -:1008B000041A315000010249061A315400000003A5 -:1008C000041A31600001024A061A31640000000374 -:1008D000041A31700001024B061A31740000000343 -:1008E000041A31800001024C061A31840000000312 -:1008F000041A31900001024D061A319400000003E1 -:10090000041A31A00001024E061A31A400000003AF -:10091000041A31B00001024F061A31B4000000037E -:10092000041A31C000010250061A31C4000000034D -:10093000041A31D000010251061A31D4000000031C -:10094000041A31E000010252061A31E400000003EB -:10095000041A31F000010253061A31F400000003BA -:10096000041A320000010254061A32040000000387 -:10097000041A321000010255061A32140000000356 -:10098000041A322000010256061A32240000000325 -:10099000041A323000010257061A323400000003F4 -:1009A000041A324000010258061A324400000003C3 -:1009B000041A325000010259061A32540000000392 -:1009C000041A32600001025A061A32640000000361 -:1009D000041A32700001025B061A32740000000330 -:1009E000041A32800001025C061A328400000003FF -:1009F000041A32900001025D061A329400000003CE -:100A0000041A32A00001025E061A32A4000000039C -:100A1000041A32B00001025F061A32B4000000036B -:100A2000041A32C000010260061A32C4000000033A -:100A3000041A32D000010261061A32D40000000309 -:100A4000041A32E000010262061A32E400000003D8 -:100A5000041A32F000010263061A32F400000003A7 -:100A6000041A330000010264061A33040000000374 -:100A7000041A331000010265061A33140000000343 -:100A8000041A332000010266061A33240000000312 -:100A9000041A333000010267061A333400000003E1 -:100AA000041A334000010268061A334400000003B0 -:100AB000041A335000010269061A3354000000037F -:100AC000041A33600001026A061A3364000000034E -:100AD000041A33700001026B061A3374000000031D -:100AE000041A33800001026C061A338400000003EC -:100AF000041A33900001026D061A339400000003BB -:100B0000041A33A00001026E061A33A40000000389 -:100B1000041A33B00001026F061A33B40000000358 -:100B2000041A33C000010270061A33C40000000327 -:100B3000041A33D000010271061A33D400000003F6 -:100B4000041A33E000010272061A33E400000003C5 -:100B5000041A33F000010273061A33F40000000394 -:100B6000041A340000010274061A34040000000361 -:100B7000041A341000010275061A34140000000330 -:100B8000041A342000010276061A342400000003FF -:100B9000041A343000010277061A343400000003CE -:100BA000041A344000010278061A3444000000039D -:100BB000041A345000010279061A3454000000036C -:100BC000041A34600001027A061A3464000000033B -:100BD000041A34700001027B061A3474000000030A -:100BE000041A34800001027C061A348400000003D9 -:100BF000041A34900001027D061A349400000003A8 -:100C0000041A34A00001027E061A34A40000000376 -:100C1000041A34B00001027F061A34B40000000345 -:100C2000041A34C000010280061A34C40000000314 -:100C3000041A34D000010281061A34D400000003E3 -:100C4000041A34E000010282061A34E400000003B2 -:100C5000041A34F000010283061A34F40000000381 -:100C6000041A350000010284061A3504000000034E -:100C7000041A351000010285061A3514000000031D -:100C8000041A352000010286061A352400000003EC -:100C9000041A353000010287061A353400000003BB -:100CA000041A354000010288061A3544000000038A -:100CB000041A355000010289061A35540000000359 -:100CC000041A35600001028A061A35640000000328 -:100CD000041A35700001028B061A357400000003F7 -:100CE000041A35800001028C061A358400000003C6 -:100CF000041A35900001028D061A35940000000395 -:100D0000041A35A00001028E061A35A40000000363 -:100D1000041A35B00001028F061A35B40000000332 -:100D2000041A35C000010290061A35C40000000301 -:100D3000041A35D000010291061A35D400000003D0 -:100D4000041A35E000010292061A35E4000000039F -:100D5000041A35F000010293061A35F4000000036E -:100D6000041A360000010294061A3604000000033B -:100D7000041A361000010295061A3614000000030A -:100D8000041A362000010296061A362400000003D9 -:100D9000041A363000010297061A363400000003A8 -:100DA000041A364000010298061A36440000000377 -:100DB000041A365000010299061A36540000000346 -:100DC000041A36600001029A061A36640000000315 -:100DD000041A36700001029B061A367400000003E4 -:100DE000041A36800001029C061A368400000003B3 -:100DF000041A36900001029D061A36940000000382 -:100E0000041A36A00001029E061A36A40000000350 -:100E1000041A36B00001029F061A36B4000000031F -:100E2000041A36C0000102A0061A36C400000003EE -:100E3000041A36D0000102A1061A36D400000003BD -:100E4000041A36E0000102A2061A36E4000000038C -:100E5000041A36F0000102A3061A36F4000000035B -:100E6000041A3700000102A4061A37040000000328 -:100E7000041A3710000102A5061A371400000003F7 -:100E8000041A3720000102A6061A372400000003C6 -:100E9000041A3730000102A7061A37340000000395 -:100EA000041A3740000102A8061A37440000000364 -:100EB000041A3750000102A9061A37540000000333 -:100EC000041A3760000102AA061A37640000000302 -:100ED000041A3770000102AB061A377400000003D1 -:100EE000041A3780000102AC061A378400000003A0 -:100EF000041A3790000102AD061A3794000000036F -:100F0000041A37A0000102AE061A37A4000000033D -:100F1000041A37B0000102AF061A37B4000000030C -:100F2000041A37C0000102B0061A37C400000003DB -:100F3000041A37D0000102B1061A37D400000003AA -:100F4000041A37E0000102B2061A37E40000000379 -:100F5000041A37F0000102B3061A37F40000000348 -:100F6000041A3800000102B4061A38040000000315 -:100F7000041A3810000102B5061A381400000003E4 -:100F8000041A3820000102B6061A382400000003B3 -:100F9000041A3830000102B7061A38340000000382 -:100FA000041A3840000102B8061A38440000000351 -:100FB000041A3850000102B9061A38540000000320 -:100FC000041A3860000102BA061A386400000003EF -:100FD000041A3870000102BB061A387400000003BE -:100FE000041A3880000102BC061A3884000000038D -:100FF000041A3890000102BD061A3894000000035C -:10100000041A38A0000102BE061A38A4000000032A -:10101000041A38B0000102BF061A38B400000003F9 -:10102000041A38C0000102C0061A38C400000003C8 -:10103000041A38D0000102C1061A38D40000000397 -:10104000041A38E0000102C2061A38E40000000366 -:10105000041A38F0000102C3061A38F40000000335 -:10106000041A3900000102C4061A39040000000302 -:10107000041A3910000102C5061A391400000003D1 -:10108000041A3920000102C6061A392400000003A0 -:10109000041A3930000102C7061A3934000000036F -:1010A000041A3940000102C8061A3944000000033E -:1010B000041A3950000102C9061A3954000000030D -:1010C000041A3960000102CA061A396400000003DC -:1010D000041A3970000102CB061A397400000003AB -:1010E000041A3980000102CC061A3984000000037A -:1010F000041A3990000102CD061A39940000000349 -:10110000041A39A0000102CE061A39A40000000317 -:10111000041A39B0000102CF061A39B400000003E6 -:10112000041A39C0000102D0061A39C400000003B5 -:10113000041A39D0000102D1061A39D40000000384 -:10114000041A39E0000102D2061A39E40000000353 -:10115000041A39F0000102D3061A39F40000000322 -:10116000041A3A00000102D4061A3A0400000003EF -:10117000041A3A10000102D5061A3A1400000003BE -:10118000041A3A20000102D6061A3A24000000038D -:10119000041A3A30000102D7061A3A34000000035C -:1011A000041A3A40000102D8061A3A44000000032B -:1011B000041A3A50000102D9061A3A5400000003FA -:1011C000041A3A60000102DA061A3A6400000003C9 -:1011D000041A3A70000102DB061A3A740000000398 -:1011E000041A3A80000102DC061A3A840000000367 -:1011F000041A3A90000102DD061A3A940000000336 -:10120000041A3AA0000102DE061A3AA40000000304 -:10121000041A3AB0000102DF061A3AB400000003D3 -:10122000041A3AC0000102E0061A3AC400000003A2 -:10123000041A3AD0000102E1061A3AD40000000371 -:10124000041A3AE0000102E2061A3AE40000000340 -:10125000041A3AF0000102E3061A3AF4000000030F -:10126000041A3B00000102E4061A3B0400000003DC -:10127000041A3B10000102E5061A3B1400000003AB -:10128000041A3B20000102E6061A3B24000000037A -:10129000041A3B30000102E7061A3B340000000349 -:1012A000041A3B40000102E8061A3B440000000318 -:1012B000041A3B50000102E9061A3B5400000003E7 -:1012C000041A3B60000102EA061A3B6400000003B6 -:1012D000041A3B70000102EB061A3B740000000385 -:1012E000041A3B80000102EC061A3B840000000354 -:1012F000041A3B90000102ED061A3B940000000323 -:10130000041A3BA0000102EE061A3BA400000003F1 -:10131000041A3BB0000102EF061A3BB400000003C0 -:10132000041A3BC0000102F0061A3BC4000000038F -:10133000041A3BD0000102F1061A3BD4000000035E -:10134000041A3BE0000102F2061A3BE4000000032D -:10135000041A3BF0000102F3061A3BF400000003FC -:10136000041A3C00000102F4061A3C0400000003C9 -:10137000041A3C10000102F5061A3C140000000398 -:10138000041A3C20000102F6061A3C240000000367 -:10139000041A3C30000102F7061A3C340000000336 -:1013A000041A3C40000102F8061A3C440000000305 -:1013B000041A3C50000102F9061A3C5400000003D4 -:1013C000041A3C60000102FA061A3C6400000003A3 -:1013D000041A3C70000102FB061A3C740000000372 -:1013E000041A3C80000102FC061A3C840000000341 -:1013F000041A3C90000102FD061A3C940000000310 -:10140000041A3CA0000102FE061A3CA400000003DE -:10141000041A3CB0000102FF061A3CB400000003AD -:10142000041A3CC000010300061A3CC4000000037B -:10143000041A3CD000010301061A3CD4000000034A -:10144000041A3CE000010302061A3CE40000000319 -:10145000041A3CF000010303061A3CF400000003E8 -:10146000041A3D0000010304061A3D0400000003B5 -:10147000041A3D1000010305061A3D140000000384 -:10148000041A3D2000010306061A3D240000000353 -:10149000041A3D3000010307061A3D340000000322 -:1014A000041A3D4000010308061A3D4400000003F1 -:1014B000041A3D5000010309061A3D5400000003C0 -:1014C000041A3D600001030A061A3D64000000038F -:1014D000041A3D700001030B061A3D74000000035E -:1014E000041A3D800001030C061A3D84000000032D -:1014F000041A3D900001030D061A3D9400000003FC -:10150000041A3DA00001030E061A3DA400000003CA -:10151000041A3DB00001030F061A3DB40000000399 -:10152000041A3DC000010310061A3DC40000000368 -:10153000041A3DD000010311061A3DD40000000337 -:10154000041A3DE000010312061A3DE40000000306 -:10155000041A3DF000010313061A3DF400000003D5 -:10156000041A3E0000010314061A3E0400000003A2 -:10157000041A3E1000010315061A3E140000000371 -:10158000041A3E2000010316061A3E240000000340 -:10159000041A3E3000010317061A3E34000000030F -:1015A000041A3E4000010318061A3E4400000003DE -:1015B000041A3E5000010319061A3E5400000003AD -:1015C000041A3E600001031A061A3E64000000037C -:1015D000041A3E700001031B061A3E74000000034B -:1015E000041A3E800001031C061A3E84000000031A -:1015F000041A3E900001031D061A3E9400000003E9 -:10160000041A3EA00001031E061A3EA400000003B7 -:10161000041A3EB00001031F061A3EB40000000386 -:10162000041A3EC000010320061A3EC40000000355 -:10163000041A3ED000010321061A3ED40000000324 -:10164000041A3EE000010322061A3EE400000003F3 -:10165000041A3EF000010323061A3EF400000003C2 -:10166000041A3F0000010324061A3F04000000038F -:10167000041A3F1000010325061A3F14000000035E -:10168000041A3F2000010326061A3F24000000032D -:10169000041A3F3000010327061A3F3400000003FC -:1016A000041A3F4000010328061A3F4400000003CB -:1016B000041A3F5000010329061A3F54000000039A -:1016C000041A3F600001032A061A3F640000000369 -:1016D000041A3F700001032B061A3F740000000338 -:1016E000041A3F800001032C061A3F840000000307 -:1016F000041A3F900001032D061A3F9400000003D6 -:10170000041A3FA00001032E061A3FA400000003A4 -:10171000041A3FB00001032F061A3FB40000000373 -:10172000041A3FC000010330061A3FC40000000342 -:10173000041A3FD000010331061A3FD40000000311 -:10174000041A3FE000010332061A3FE400000007DC -:10175000041A4CB000080333061A400000000124AC -:10176000021A492000000000061A2500000000109F -:10177000061A258000000012061A09C00000004861 -:10178000061A080000000002061A082000000012D5 -:10179000041A2FB00002033B041A4CF00002033D70 -:1017A000061A500000000004061A449000000124AC -:1017B000021A492400000000061A2540000000100B -:1017C000061A25C800000012061A0AE000000048A8 -:1017D000061A081000000002061A0868000000122D -:1017E000041A2FB80002033F041A4CF80002034108 -:1017F000061A5010000000040200A468000AFFDC72 -:101800000200A280000000010200A294071D29111D -:101810000200A298000000000200A29C009C042488 -:101820000200A2A0000000000200A2A40000020921 -:101830000200A4FCFF000000020100B4000000014F -:10184000020100B800000001020100DC00000001FC -:10185000020101000000000102010104000000017A -:101860000201007C0030000002010084000000281A -:101870000201008C000000000201013000000004A1 -:101880000201025C000000010201032800000000C8 -:101890000201055400000030020100C400000001F4 -:1018A000020100CC00000001020100F8000000016C -:1018B000020100F000000001020100800030000081 -:1018C00002010088000000280201009000000000D2 -:1018D0000201013400000004020102DC00000001EA -:1018E0000201032C0000000002010564000000302A -:1018F000020100C800000001020100D00000000148 -:10190000020100FC00000001020100F400000001DF -:10191000020C100000000028020C200800000A1130 -:10192000020C200C00000A00020C201000000A0427 -:10193000020C201C0000FFFF020C20200000FFFF13 -:10194000020C20240000FFFF020C20280000FFFFF3 -:10195000020C203800000020020C203C0000002176 -:10196000020C204000000022020C20440000002352 -:10197000020C204800000024020C204C000000252E -:10198000020C205000000026020C2054000000270A -:10199000020C205800000028020C205C00000029E6 -:1019A000020C20600000002A020C20640000002BC2 -:1019B000020C20680000002C020C206C0000002D9E -:1019C000020C20700000002E020C20740000002F7A -:1019D000020C207800000010060C207C0000004F54 -:1019E000020C21B800000001020C21BC0000000123 -:1019F000020C21C000000001020C21C40000000103 -:101A0000020C21C800000001020C21CC00000001E2 -:101A1000020C21D000000001020C21D400000001C2 -:101A2000020C21D800000001020C21DC00000001A2 -:101A3000020C21E000000001020C21E40000000182 -:101A4000020C21E800000001020C21EC0000000162 -:101A5000020C21F000000001020C21F40000000142 -:101A6000020C21F800000001060C21FC0000000F10 -:101A7000020C223807FFFFFF020C223C0000003F4F -:101A8000020C224007FFFFFF020C22440000000F5F -:101A9000010C224800000000010C224C0000000054 -:101AA000010C225000000000010C22540000000034 -:101AB000010C225800000000010C225C0000000014 -:101AC000010C226000000000010C226400000000F4 -:101AD000010C226800000000010C226C00000000D4 -:101AE000010C227000000000010C227400000000B4 -:101AF000010C227800000000010C227C0000000094 -:101B0000020C24BC000000010C0C2000000003E8C3 -:101B10000A0C2000000000010B0C20000000000A4D -:101B2000020C400800000562020C400C0000055148 -:101B3000020C401000000555020C40140000057214 -:101B4000020C401C0000FFFF020C40200000FFFFC1 -:101B5000020C40240000FFFF020C40280000FFFFA1 -:101B6000020C403800000046020C403C0000000C13 -:101B7000060C40400000005E020C41B8000000016D -:101B8000060C41BC0000001F020C423807FFFFFF9B -:101B9000020C423C0000003F020C424007FFFFFFE6 -:101BA000020C42440000000F010C424800000000FB -:101BB000010C424C00000000010C425000000000EB -:101BC000010C425400000000010C425800000000CB -:101BD000010C425C00000000010C426000000000AB -:101BE000010C426400000000010C4268000000008B -:101BF000010C426C00000000010C4270000000006B -:101C0000010C427400000000010C4278000000004A -:101C1000010C427C00000000010C4280000000002A -:101C2000020C44C0000000010C0C4000000003E85E -:101C30000A0C4000000000010B0C40000000000AEC -:101C4000060D400000000A00020D004400000032B2 -:101C5000020D008C02150020020D009002150020DC -:101C6000020D009408100000020D009800000033DF -:101C7000020D009C00000002020D00A00000000008 -:101C8000020D00A400000005020D00A800000005E0 -:101C9000060D00AC00000002020D00B400000002BE -:101CA000020D00B800000003020D00BC000000029D -:101CB000020D00C000000001020D00C8000000027B -:101CC000020D00CC00000002020D015C00000001CA -:101CD000020D016400000001020D01680000000215 -:101CE000020D020400000001020D020C00000020A1 -:101CF000020D021000000040020D0214000000401E -:101D0000020D022000000003020D02240000001852 -:101D1000060D028000000012040D030000180343AA -:101D2000060D03600000000C020D004C00000001D5 -:101D3000020D005000000002020D005400000000DF -:101D4000020D005800000008060D005C00000004B1 -:101D5000020D00C400000004020D0114000000097F -:101D6000020D011800000029020D011C0000000AEC -:101D7000020D01200000002A020D012400000000D5 -:101D8000020D012800000020020D012C00000000BF -:101D9000020D013000000020020D0134000000009F -:101DA000020D013800000020020D013C000000007F -:101DB000020D014000000020020D0144000000005F -:101DC000020D014800000020020D00040000000187 -:101DD000020D000800000001020D000C00000001CF -:101DE000020D001000000001020D001400000001AF -:101DF000020D001800000001020D001C000000018F -:101E0000020D002000000001020D0024000000016E -:101E1000020D002800000001020D002C000000014E -:101E2000020D003000000001020D0034000000012E -:101E3000020D003800000001020D003C000000010E -:101E4000060E200000000800020E004C00000032C8 -:101E5000020E009402150020020E009802150020C8 -:101E6000020E009C00000030020E00A008100000CE -:101E7000020E00A400000033020E00A80000003093 -:101E8000020E00AC00000031020E00B000000002A3 -:101E9000020E00B400000004020E00B800000000B2 -:101EA000020E00BC00000002020E00C00000000292 -:101EB000020E00C400000000020E00C80000000274 -:101EC000020E00CC00000007020E00D0000000024D -:101ED000020E00D400000002020E00D80000000133 -:101EE000020E014400000001020E014C000000013E -:101EF000020E015000000002020E02040000000168 -:101F0000020E020C00000040020E02100000004011 -:101F1000020E021C00000004020E0220000000203D -:101F2000020E02240000000E020E02280000001B18 -:101F3000060E030000000012040E0280001B035B6B -:101F4000060E02EC00000005020E00540000000C1A -:101F5000020E00580000000C020E005C00000000A1 -:101F6000020E006000000010060E00640000000475 -:101F7000020E00DC00000003020E01100000000F42 -:101F8000020E01140000002F020E011800000000D4 -:101F9000020E011C00000020020E000400000001DF -:101FA000020E000800000001020E000C00000001FB -:101FB000020E001000000001020E001400000001DB -:101FC000020E001800000001020E001C00000001BB -:101FD000020E002000000001020E0024000000019B -:101FE000020E002800000001020E002C000000017B -:101FF000020E003000000001020E0034000000015B -:10200000020E003800000001020E003C000000013A -:10201000020E004000000001020E0044000000011A -:102020000730040000AF0000083007680013037693 -:10203000073400003305000007348000327F0CC2F3 -:10204000073500001A951962083539E058C403783D -:10205000013000000000000001300004000000001A -:1020600001300008000000000130000C00000000FA -:1020700001300010000000000130001400000000DA -:1020800002300020000000010230002400000002A5 -:1020900002300028000000030230002C0000000085 -:1020A0000230003000000004023000340000000163 -:1020B00002300038000000000230003C0000000147 -:1020C0000230004000000004023000440000000024 -:1020D00002300048000000010230004C0000000304 -:1020E00002300050000000000230005400000001E7 -:1020F00002300058000000040230005C00000000C4 -:1021000002300060000000010230006400000003A3 -:1021100002300068000000000230006C0000000186 -:102120000230007000000004023000740000000063 -:1021300002300078000000040230007C0000000340 -:102140000630008000000002023000A400003FFFC3 -:10215000023000A8000003FF02300224000000004B -:1021600002300234000000000230024C0000000087 -:10217000023002E40000FFFF0630200000000800EB -:1021800002338BC000000001023380000000001AFF -:10219000023380400000004E0233808000000010B7 -:1021A000023380C0000000200C3383000007A12010 -:1021B0000A338300000001380B33830000001388CA -:1021C0000A338340000000000C338340000001F418 -:1021D0000B33834000000005023383800007A120F9 -:1021E000023383C0000001F406322A88000000C2D6 -:1021F00006322008000000C806322000000000025D -:10220000063223E80000004004322E580004037A0E -:10221000063250A000000004063250B80000000250 -:102220000632508000000006043250980002037EFF -:10223000063250000000002006323000000004008A -:1022400006321C0000000004043218300002038033 -:10225000063224E8000000B402322DB00000000075 -:1022600006324000000000B40632300000000020BA -:10227000063231000000002006323200000000204B -:102280000632330000000020063234000000002037 -:102290000632350000000020063236000000002023 -:1022A000063237000000002006323800000000200F -:1022B000063239000000002006323A0000000020FB -:1022C00006323B000000002006323C0000000020E7 -:1022D00006323D000000002006323E0000000020D3 -:1022E00006323F000000002006321C1000000002F1 -:1022F000063245A000000024063227B8000000B4D2 -:1023000002322DB400000000063242D0000000B4BA -:1023100006323080000000200632318000000020AC -:102320000632328000000020063233800000002098 -:102330000632348000000020063235800000002084 -:102340000632368000000020063237800000002070 -:10235000063238800000002006323980000000205C -:1023600006323A800000002006323B800000002048 -:1023700006323C800000002006323D800000002034 -:1023800006323E800000002006323F800000002020 -:1023900006321C20000000020632463000000024F5 -:1023A0000720040000870000082007800010038237 -:1023B000072400003165000007248000081D0C5A26 -:1023C00008248EB06C9003840120000000000000FF -:1023D00001200004000000000120000800000000AF -:1023E0000120000C0000000001200010000000008F -:1023F0000120001400000000022000200000000165 -:102400000220002400000002022000280000000337 -:102410000220002C00000000022000300000000418 -:1024200002200034000000010220003800000000FB -:102430000220003C000000010220004000000004D7 -:1024400002200044000000000220004800000001BB -:102450000220004C00000003022000500000000099 -:102460000220005400000001022000580000000477 -:102470000220005C0000000002200060000000015B -:102480000220006400000003022000680000000039 -:102490000220006C00000001022000700000000417 -:1024A00002200074000000000220007800000004F8 -:1024B0000220007C000000030620008000000002D3 -:1024C000022000A400003FFF022000A8000003FF3C -:1024D000022002240000000002200234000000005C -:1024E0000220024C00000000022002E40000FFFF76 -:1024F000062020000000080002238BC0000000011D -:10250000022380000000001002238040000000121F -:102510000223808000000030022380C00000000EF3 -:102520000C2383000007A1200A2383000000013848 -:102530000B238300000013880A238340000000005F -:102540000C238340000001F40B23834000000005AE -:10255000022383800007A120022383C0000001F42E -:10256000062250000000004206222008000000C899 -:10257000062220000000000206224000000000C6E3 -:1025800004224318000503860622432C0000000B9A -:10259000042243580005038B0622436C0000000B05 -:1025A0000422439800050390062243AC0000000B70 -:1025B000042243D800050395062243EC0000000BDB -:1025C000042244180005039A0622442C0000000B44 -:1025D000042244580005039F0622446C0000000BAF -:1025E00004224498000503A4062244AC0000000B1A -:1025F000042244D8000503A9062244EC0000000B85 -:1026000004224518000503AE0622452C0000000BED -:1026100004224558000503B30622456C0000000B58 -:1026200004224598000503B8062245AC0000000BC3 -:10263000042245D8000503BD062245EC0000000B2E -:1026400004224618000503C20622462C0000000B97 -:1026500004224658000503C70622466C0000000B02 -:1026600004224698000503CC062246AC0000000B6D -:10267000042246D8000503D1062246EC0000000BD8 -:1026800004224718000503D60622472C0000000B41 -:1026900004224758000503DB0622476C0000000BAC -:1026A00004224798000503E0062247AC0000000B17 -:1026B000042247D8000503E5062247EC0000000B82 -:1026C00004224818000503EA0622482C0000000BEB -:1026D00004224858000503EF0622486C0000000B56 -:1026E00004224898000503F4062248AC0000000BC1 -:1026F000042248D8000503F9062248EC0000000B2C -:1027000004224918000503FE0622492C0000000B94 -:1027100004224958000504030622496C0000000BFE -:102720000422499800050408062249AC0000000B69 -:10273000042249D80005040D062249EC0000000BD4 -:1027400004224A180005041206224A2C0000000B3D -:1027500004224A580005041706224A6C0000000BA8 -:1027600004224A980005041C06224AAC0000000B13 -:1027700004224AD80005042106224AEC0000000584 -:1027800006224B000000001704224B5C00010426C7 -:1027900006224B600000000304224B6C000104275A -:1027A000062238000000004006223000000002002F -:1027B000042251C00004042806221000000000C0BA -:1027C000062215C00000024004221EC80008042C86 -:1027D0000622390000000008022251180000000003 -:1027E000062251D00000000606221300000000025D -:1027F00006221410000000300622392000000008D4 -:102800000222511C00000000062251E800000006D0 -:102810000622130800000002062214D00000003037 -:102820000216100000000028021700080000000235 -:102830000217002C000000030217003C00000004F7 -:1028400002170044000000000217004800000002C8 -:102850000217004C0000009002170050000000908A -:102860000217005400800090021700580810000062 -:10287000021700600000008A021700640000008058 -:1028800002170068000000810217006C0000008041 -:10289000021700700000000602170078000007D041 -:1028A0000217007C0000076C02170038007C10043F -:1028B000021700040000000F06164024000000026A -:1028C000021640700000001C0216420800000001C1 -:1028D0000216421000000001021642200000000112 -:1028E00002164228000000010216423000000001DA -:1028F000021642380000000102164260000000018A -:102900000C16401C0003D0900A16401C0000009CCE -:102910000B16401C000009C40216403000000008DD -:10292000021640340000000C02164038000000106F -:102930000216404400000020021640000000000182 -:10294000021640D8000000010216400800000001F5 -:102950000216400C000000010216401000000001A9 -:10296000021642400000000002164248000000002B -:1029700006164270000000020216425000000000DD -:1029800002164258000000000616428000000002B5 -:1029900002166008000006140216600C0000060013 -:1029A00002166010000006040216601C0000FFFF03 -:1029B000021660200000FFFF021660240000FFFFE7 -:1029C000021660280000FFFF021660380000002099 -:1029D0000216603C00000020061660400000000265 -:1029E00002166048000000230216604C000000241C -:1029F00002166050000000250216605400000026F8 -:102A000002166058000000270216605C00000029D2 -:102A1000021660600000002A021660640000002BAD -:102A2000021660680000002C0216606C0000002D89 -:102A30000616607000000012021660B80000000167 -:102A4000021660BC00000001061660C00000003ED7 -:102A5000021661B800000001061661BC0000001FEC -:102A60000216623807FFFFFF0216623C0000003FBB -:102A70000216624007FFFFFF021662440000000FCB -:102A800001166248000000000116624C00000000C0 -:102A900001166250000000000116625400000000A0 -:102AA00001166258000000000116625C0000000080 -:102AB0000116626000000000011662640000000060 -:102AC00001166268000000000116626C0000000040 -:102AD0000116627000000000011662740000000020 -:102AE00001166278000000000116627C0000000000 -:102AF000021664BC000000010C166000000003E830 -:102B00000A166000000000010B1660000000000AB9 -:102B100002168040000000060216804400000005F6 -:102B2000021680480000000A0216804C00000005D2 -:102B30000216805400000002021680CC000000043F -:102B4000021680D000000004021680D400000004A9 -:102B5000021680D800000004021680DC0000000489 -:102B6000021680E000000004021680E40000000469 -:102B7000021680E800000004021688040000000429 -:102B8000021680300000007C021680340000003DF8 -:102B9000021680380000003F0216803C0000009CB6 -:102BA000021680F000000007061680F40000000501 -:102BB0000216880C010101010216810800000000C4 -:102BC0000216810C000000040216811000000004AF -:102BD0000216811400000002021688100801200469 -:102BE00002168118000000050216811C0000000575 -:102BF0000216812000000005021681240000000555 -:102C00000216882C200810010216812800000008F6 -:102C10000216812C00000006021681300000000719 -:102C200002168134000000000216883001010120E4 -:102C300006168138000000040216883401010101E3 -:102C400006168148000000040216883801010101BF -:102C500006168158000000040216883C010101019B -:102C6000061681680000000302168174000000014E -:102C7000021688400101010102168178000000015E -:102C80000216817C00000001021681800000000114 -:102C9000021681840000000102168844010101012E -:102CA00002168188000000010216818C00000004D9 -:102CB00002168190000000040216819400000002B8 -:102CC00002168848080120040216819800000005B9 -:102CD0000216819C00000005021681A0000000057C -:102CE000021681A4000000050216881420081001B5 -:102CF000021681A800000008021681AC0000000640 -:102D0000021681B000000007021681B40000000125 -:102D10000216881801010120021681B80000000186 -:102D2000021681BC00000001021681C000000001F3 -:102D3000021681C4000000010216881C0101010175 -:102D4000021681C800000001021681CC00000001BB -:102D5000021681D000000001021681D4000000019B -:102D60000216882001010101021681D8000000012D -:102D7000021681DC00000001021681E00000000163 -:102D8000021681E4000000010216882401010101FD -:102D9000021681E800000001021681EC000000012B -:102DA000021681F0000000010216882801010101CD -:102DB00002168240FFFF003F061682440000000218 -:102DC0000216824CFFFF003F0216825000000100F5 -:102DD000021682540000010006168258000000020C -:102DE00002168260000000C002168264000000C06B -:102DF0000216826800001E000216826C00001E008F -:102E0000021682700000400002168274000040002A -:102E100002168278000080000216827C000080008A -:102E2000021682800000200002168284000020002A -:102E30000616828800000007021682A40000000126 -:102E4000061682A80000000A021681F400000C0891 -:102E5000021681F800000040021681FC000001000B -:102E600002168200000000200216820400000017F3 -:102E700002168208000000800216820C0000020088 -:102E8000021682100000000002168218FFFF01FFE8 -:102E900002168214FFFF01FF0216823C000000139D -:102EA000021680900000013F021680600000014081 -:102EB00002168064000001400616806800000002CF -:102EC00002168070000000C0061680740000000723 -:102ED0000216809C00000048021680A000000048F6 -:102EE000061680A400000002021680AC0000004814 -:102EF000061680B00000000702168238000080002D -:102F000002168234000025E40216809400007FFF40 -:102F100002168220000000070216821C0000000733 -:102F2000021682280000000002168224FFFFFFFF25 -:102F300002168230000000000216822CFFFFFFFF05 -:102F4000021680EC000000FF0214000000000001E7 -:102F50000214000C000000010214004000000001F7 -:102F60000214004400007FFF0214000C0000000067 -:102F700002140000000000000214006C00000000B9 -:102F800002140004000000010214003000000001DF -:102F900002140004000000000214005C00000000A5 -:102FA00002140008000000010214003400000001B7 -:102FB000021400080000000002140060000000007D -:102FC00006028000000020000202005800000032CB -:102FD000020200A003150020020200A40315002035 -:102FE000020200A801000030020200AC081000003C -:102FF000020200B000000033020200B40000003002 -:10300000020200B800000031020200BC0000000310 -:10301000020200C000000006020200C4000000031B -:10302000020200C800000003020200CC00000002FF -:10303000020200D000000000020200D400000002E2 -:10304000020200DC00000000020200E000000006B6 -:10305000020200E400000004020200E80000000296 -:10306000020200EC00000002020200F00000000179 -:10307000020200FC00000006020201200000000025 -:103080000202013400000002020201B0000000014F -:103090000202020C00000001020202140000000102 -:1030A00002020218000000020202040400000001F3 -:1030B0000202040C00000040020204100000004064 -:1030C0000202041C00000004020204200000002090 -:1030D0000202042400000002020204280000001F73 -:1030E00006020500000000120402048000200434DF -:1030F000020200600000000F0202006400000007EE -:1031000002020068000000000202006C0000000ED5 -:103110000602007000000004020200F40000000437 -:103120000202000400000001020200080000000189 -:103130000202000C00000001020200100000000169 -:103140000202001400000001020200180000000149 -:103150000202001C00000001020200200000000129 -:103160000202002400000001020200280000000109 -:103170000202002C000000010202003000000001E9 -:1031800002020034000000010202003800000001C9 -:103190000202003C000000010202004000000001A9 -:1031A0000202004400000001020200480000000189 -:1031B0000202004C00000001020200500000000169 -:1031C00002020108000000C802020118000000020B -:1031D000020201C400000000020201CC0000000055 -:1031E000020201D400000002020201DC0000000221 -:1031F000020201E4000000FF020201EC000000FFF7 -:103200000202010C000000C80202011C00000002C2 -:10321000020201C800000000020201D0000000000C -:10322000020201D800000002020201E000000002D8 -:10323000020201E8000000FF020201F0000000FFAE -:1032400007280400008E00000828076800130454B3 -:10325000072C000033C80000072C800038050CF351 -:10326000072D000038B61AF5072D800007762923B0 -:10327000082D8CB04E6A04560128000000000000A2 -:1032800001280004000000000128000800000000E0 -:103290000128000C000000000128001000000000C0 -:1032A0000128001400000000022800200000000196 -:1032B0000228002400000002022800280000000369 -:1032C0000228002C0000000002280030000000044A -:1032D000022800340000000102280038000000002D -:1032E0000228003C00000001022800400000000409 -:1032F00002280044000000000228004800000001ED -:103300000228004C000000030228005000000000CA -:1033100002280054000000010228005800000004A8 -:103320000228005C0000000002280060000000018C -:10333000022800640000000302280068000000006A -:103340000228006C00000001022800700000000448 -:103350000228007400000000022800780000000429 -:103360000228007C00000003062800800000000204 -:10337000022800A400003FFF022800A8000003FF6D -:10338000022802240000000002280234000000008D -:103390000228024C00000000022802E40000FFFFA7 -:1033A0000628200000000800022B8BC0000000014E -:1033B000022B800000000000022B8040000000185B -:1033C000022B80800000000C022B80C000000066F1 -:1033D0000C2B83000007A1200A2B8300000001387A -:1033E0000B2B8300000013880A2B83400000000091 -:1033F0000C2B8340000001F40B2B834000000005E0 -:10340000022B83800007A120022B83C0000001F45F -:10341000062A3D4800000004042A3D5800020458D2 -:10342000062A3D6000000006062A30000000004821 -:10343000062A2008000000C8062A2000000000021A -:10344000062A31280000008E062A33680000000397 -:10345000042A33740001045A062A3A780000000254 -:10346000042A3A800002045B042A3A700002045DD8 -:10347000042A3E280002045F042A3EB000040461CE -:10348000042A250000020465062A25080000010020 -:10349000062A297000000004042A29600004046739 -:1034A000042A2F480002046B062A3378000000D853 -:1034B000022A3A3800000000062A3A88000000324A -:1034C000042A3D880010046D062A502000000002E6 -:1034D000062A503000000002062A500000000002B8 -:1034E000062A501000000002022A50B80000000115 -:1034F000062A50480000000E042A3D780002047D90 -:10350000062A3C1800000026022A50400000000055 -:10351000062A36D8000000D8022A3A3C00000000F3 -:10352000062A3B5000000032042A3DC80010047FE8 -:10353000062A502800000002062A50380000000227 -:10354000062A500800000002062A50180000000257 -:10355000022A50BC00000001062A50800000000E24 -:10356000042A3D800002048F062A3CB00000002699 -:10357000022A504400000000021010080000000160 -:103580000210101000000264021010000003D000AE -:10359000021010040000003D091018000200049100 -:1035A00009101100001006910610114000000008DB -:1035B00009101160000806A1061011800000000229 -:1035C00009101188000606A9061011A000000018B5 -:1035D000021010100000000006102400000000E09F -:1035E0000210201C0000000002102020000000013A -:1035F000021020C0000000010210200400000001A1 -:10360000021020080000000109103C00000506AF70 -:1036100009103C20000506B409103800000506B961 -:1036200002104028000000100210404400003FFF3C -:103630000210405800280000021040840084924A82 -:1036400006104C000000010002104058000000006D -:103650000610806800000004021080000000108046 -:1036600006108028000000020210803800000010C0 -:10367000021080400000FFFF021080440000FFFFA6 -:1036800002108050000000000210810000000000C5 -:10369000061081200000000202108008000002B520 -:1036A0000210801000000000061082000000004A96 -:1036B000021081080001FFFF061081400000000297 -:1036C0000210800000001A80061090000000002404 -:1036D000061091200000004A061093700000004A76 -:1036E000061095C00000004A0210800400001080FF -:1036F00006108030000000020210803C0000001024 -:10370000021080480000FFFF0210804C0000FFFF05 -:10371000021080540000000002108104000000002C -:1037200006108128000000020210800C000002B583 -:103730000210801400000000061084000000004AFF -:103740000210810C0001FFFF0610814800000002FA -:103750000210800400001A800610909000000024DF -:10376000061092480000004A061094980000004A93 -:10377000061096E80000004A0212049000E383401D -:103780000212051400003C10021205200000000285 -:1037900002120494FFFFFFFF02120498FFFFFFFFD5 -:1037A0000212049CFFFFFFFF021204A0FFFFFFFFB5 -:1037B000021204A4FFFFFFFF021204A8FFFFFFFF95 -:1037C000021204ACFFFFFFFF021204B0FFFFFFFF75 -:1037D000021204B8FFFFFFFF021204BCFFFFFFFF4D -:1037E000021204C0FFFFFFFF021204C4FFFFFFFF2D -:1037F000021204C8FFFFFFFF021204CCFFFFFFFF0D -:10380000021204D0FFFFFFFF021204DCFFFFFFFFE4 -:10381000021204E0FFFFFFFF021204E4FFFFFFFFBC -:10382000021204E8FFFFFFFF021204ECFFFFFFFF9C -:10383000021204F0FFFFFFFF021204F4FFFFFFFF7C -:10384000021204F8FFFFFFFF021204FCFFFFFFFF5C -:1038500002120500FFFFFFFF02120504FFFFFFFF3A -:1038600002120508FFFFFFFF0212050CFFFFFFFF1A -:1038700002120510FFFFFFFF021204D4FFFF3330D6 -:10388000021204D8FFFF3340021204B4F0003000EB -:1038900002120390000000080212039C00000008BE -:1038A000061203A000000002021203BC0000000484 -:1038B000021203C400000004021203D00000000042 -:1038C000021203DC000000000212036C0000000181 -:1038D000021203680000003F021201BC0000004019 -:1038E000021201C000001808021201C400000803FF -:1038F000021201C800000803021201CC00000040BF -:10390000021201D000000003021201D400000803DB -:10391000021201D800000803021201DC00000803B3 -:10392000021201E000010003021201E4000008039A -:10393000021201E800000803021201EC000000037B -:10394000021201F000000003021201F40000000363 -:10395000021201F800000003021201FC0000000343 -:103960000212020000000003021202040000000321 -:1039700002120208000000030212020C0000000301 -:1039800002120210000000030212021400000003E1 -:1039900002120218000000030212021C00000003C1 -:1039A00002120220000000030212022400000003A1 -:1039B00002120228000024030212022C0000002F31 -:1039C0000212023000000009021202340000001945 -:1039D00002120238000001840212023C000001833E -:1039E0000212024000000306021202440000001905 -:1039F00002120248000000060212024C00000306F8 -:103A000002120250000003060212025400000306D4 -:103A10000212025800000C860212025C000003062B -:103A20000212026000000306021202640000000697 -:103A300002120268000000060212026C000000067A -:103A4000021202700000000602120274000000065A -:103A500002120278000000060212027C000000063A -:103A6000021202800000000602120284000000061A -:103A700002120288000000060212028C00000006FA -:103A800002120290000000060212029400000006DA -:103A900002120298000000060212029C00000006BA -:103AA000021202A000000306021202A4000000138A -:103AB000021202A800000006021202B00000100468 -:103AC000021202B400001004021203240010644029 -:103AD0000212032800106440021201B0000000012D -:103AE0000600A000000000160200A06CBF5C0000F1 -:103AF0000200A070FFF51FEF0200A0740000FFFF9E -:103B00000200A078F00003E00200A07C00000000AA -:103B10000200A0800000A0000600A08400000005B4 -:103B20000200A0980FE000000600A09C0000001416 -:103B30000200A0EC555400000200A0F05555555568 -:103B40000200A0F4000055550200A0F8F0000000AB -:103B50000200A0FC555400000200A1005555555527 -:103B60000200A104000055550200A108F000000069 -:103B70000600A22C000000040200A0600000030761 -:103B80000200A10CBF5C00000200A110FFF51FEFB6 -:103B90000200A1140000FFFF0200A118F00003E0E2 -:103BA0000200A11C000000000200A1200000A000F3 -:103BB0000600A124000000050200A1380FE000006B -:103BC0000600A13C000000140200A18C5554000026 -:103BD0000200A190555555550200A194000055557D -:103BE0000200A198F00000000200A19C55540000C2 -:103BF0000200A1A0555555550200A1A4000055553D -:103C00000200A1A8F00000000600A23C0000000491 -:103C10000200A06400000307000000000000000094 -:103C20000000002E00000000000000000000000066 -:103C30000000000000000000000000000000000084 -:103C40000000000000000000000000000000000074 -:103C50000000000000000000000000000000000064 -:103C60000000000000000000000000000000000054 -:103C70000000000000000000002E004D00000000C9 -:103C80000000000000000000000000000000000034 -:103C90000000000000000000000000000000000024 -:103CA00000000000004D008B00000000000000003C -:103CB0000000000000000000000000000000000004 -:103CC00000000000000000000000000000000000F4 -:103CD000008B009000900094009400980000000079 -:103CE00000000000000000000000000000000000D4 -:103CF000000000000000000000000000009802DE4C -:103D000002DE02E802E802F200000000000000000B -:103D100000000000000000000000000000000000A3 -:103D20000000000000000000000000000000000093 -:103D30000000000000000000000000000000000083 -:103D40000000000000000000000000000000000073 -:103D50000000000000000000000000000000000063 -:103D60000000000000000000000000000000000053 -:103D70000000000000000000000000000000000043 -:103D80000000000000000000000000000000000033 -:103D90000000000000000000000000000000000023 -:103DA0000000000000000000000000000000000013 -:103DB0000000000000000000000000000000000003 -:103DC00000000000000000000000000000000000F3 -:103DD000000000000000000002F202FA00000000F3 -:103DE00000000000000000000000000000000000D3 -:103DF00000000000000000000000000000000000C3 -:103E000000000000000000000000000000000000B2 -:103E100000000000000000000000000000000000A2 -:103E20000000000000000000000000000000000092 -:103E300002FA02FF02FF030A030A03150000000052 -:103E40000000000000000000000000000000000072 -:103E50000000000000000000000000000000000062 -:103E60000000000000000000000000000000000052 -:103E70000000000000000000000000000000000042 -:103E80000000000000000000031503160000000001 -:103E90000000000000000000000000000000000022 -:103EA0000000000000000000000000000000000012 -:103EB000000000000316035700000000000000008F -:103EC00000000000000000000000000000000000F2 -:103ED00000000000000000000000000000000000E2 -:103EE0000357037B000000000000000000000000FA -:103EF00000000000000000000000000000000000C2 -:103F0000000000000000000000000000037B03BB75 -:103F100000000000000000000000000000000000A1 -:103F20000000000000000000000000000000000091 -:103F3000000000000000000003BB03F700000000C9 -:103F40000000000000000000000000000000000071 -:103F50000000000000000000000000000000000061 -:103F60000000000003F7043D043D045204520467BE -:103F70000000000000000000000000000000000041 -:103F80000000000000000000000000000000000031 -:103F9000046704ED04ED04F204F204F700000000ED -:103FA0000000000000000000000000000000000011 -:103FB00000000000000000000000000004F704F80A -:103FC00000000000000000000000000000000000F1 -:103FD00000000000000000000000000000000000E1 -:103FE000000000000000000004F8050A00000000C6 -:103FF00000000000000000000000000000000000C1 -:1040000000000000000000000000000000000000B0 -:1040100000000000050A051F051F052205220525D1 -:104020000000000000000000000000000000000090 -:104030000000000000000000000000000000000080 -:1040400005250555000000000000000000000000EC -:104050000000000000000000000000000000000060 -:10406000000000000000000000000000055505DC15 -:104070000000000000000000000000000000000040 -:104080000000000000000000000000000000000030 -:10409000000000000000000005DC05E305E305E783 -:1040A00005E705EB00000000000000000000000034 -:1040B0000000000000000000000000000000000000 -:1040C0000000000005EB062B062B06330633063BEB -:1040D00000000000000000000000000000000000E0 -:1040E00000000000000000000000000000000000D0 -:1040F000063B068806880695069506A20000000085 -:1041000000000000000000000000000000000000AF -:1041100000000000000000000000000006A206AE43 -:10412000000000000000000000000000000000008F -:10413000000000000000000000000000000000007F -:10414000000000000000000006AE06B40000000001 -:10415000000000000000000000000000000000005F -:10416000000000000000000000000000000000004F -:104170000000000006B406B70000000000000000C8 -:10418000000000000000000000000000000000002F -:10419000000000000000000000000000000000001F -:1041A00006B706BD0000000000000000000000008F -:1041B00000000000000000000000000000000000FF -:1041C00000000000000000000000000006BD06BE68 -:1041D00006BE06D006D006E2000000000000000087 -:1041E00000000000000000000000000000000000CF -:1041F000000000000000000006E2074F0000000081 -:1042000000000000000000000000000000000000AE -:10421000000000000000000000000000000000009E -:1042200000000000074F0750075007630763077639 -:10423000000000000000000000000000000000007E -:10424000000000000000000000000000000000006E -:10425000000000000000000000000000000000005E -:10426000000000000000000000000000000000004E -:10427000000000000000000000000000000000003E -:10428000000000000000000000000000000000002E -:10429000000000000000000000000000000000001E -:1042A000000000000000000000000000000000000E -:1042B00000000000000000000000000000000000FE -:1042C00000000000000000000000000000000000EE -:1042D00000000000000000000000000000000000DE -:1042E00000000000000000000000000000000000CE -:1042F00000000000000000000000000000000000BE -:1043000000000000000000000000000000000000AD -:10431000000000000000000000000000000000009D -:10432000000000000000000000000000000000008D -:1043300000010000000204C00003098000040E40D8 -:1043400000051300000617C000071C80000821406C -:1043500000092600000A2AC0000B2F80000C344000 -:10436000000D3900000E3DC0000F42800010474094 -:1043700000114C00001250C00013558000145A4028 -:1043800000155F00001663C00017688000186D40BC -:1043900000197200001A76C0001B7B80001C804050 -:1043A000001D8500001E89C0001F8E800000934004 -:1043B00000002000000040000000600000008000BD -:1043C0000000A0000000C0000000E00000010000AC -:1043D0000001200000014000000160000001800099 -:1043E0000001A0000001C0000001E0000002000088 -:1043F0000002200000024000000260000002800075 -:104400000002A0000002C0000002E0000003000063 -:104410000003200000034000000360000003800050 -:104420000003A0000003C0000003E000000400003F -:10443000000420000004400000046000000480002C -:104440000004A0000004C0000004E000000500001B -:104450000005200000054000000560000005800008 -:104460000005A0000005C0000005E00000060000F7 -:1044700000062000000640000006600000068000E4 -:104480000006A0000006C0000006E00000070000D3 -:1044900000072000000740000007600000078000C0 -:1044A0000007A0000007C0000007E00000080000AF -:1044B000000820000008400000086000000880009C -:1044C0000008A0000008C0000008E000000900008B -:1044D0000009200000094000000960000009800078 -:1044E0000009A0000009C0000009E000000A000067 -:1044F000000A2000000A4000000A6000000A800054 -:10450000000AA000000AC000000AE000000B000042 -:10451000000B2000000B4000000B6000000B80002F -:10452000000BA000000BC000000BE000000C00001E -:10453000000C2000000C4000000C6000000C80000B -:10454000000CA000000CC000000CE000000D0000FA -:10455000000D2000000D4000000D6000000D8000E7 -:10456000000DA000000DC000000DE000000E0000D6 -:10457000000E2000000E4000000E6000000E8000C3 -:10458000000EA000000EC000000EE000000F0000B2 -:10459000000F2000000F4000000F6000000F80009F -:1045A000000FA000000FC000000FE000001000008E -:1045B000001020000010400000106000001080007B -:1045C0000010A0000010C0000010E000001100006A -:1045D0000011200000114000001160000011800057 -:1045E0000011A0000011C0000011E0000012000046 -:1045F0000012200000124000001260000012800033 -:104600000012A0000012C0000012E0000013000021 -:10461000001320000013400000136000001380000E -:104620000013A0000013C0000013E00000140000FD -:1046300000142000001440000014600000148000EA -:104640000014A0000014C0000014E00000150000D9 -:1046500000152000001540000015600000158000C6 -:104660000015A0000015C0000015E00000160000B5 -:1046700000162000001640000016600000168000A2 -:104680000016A0000016C0000016E0000017000091 -:10469000001720000017400000176000001780007E -:1046A0000017A0000017C0000017E000001800006D -:1046B000001820000018400000186000001880005A -:1046C0000018A0000018C0000018E0000019000049 -:1046D0000019200000194000001960000019800036 -:1046E0000019A0000019C0000019E000001A000025 -:1046F000001A2000001A4000001A6000001A800012 -:10470000001AA000001AC000001AE000001B000000 -:10471000001B2000001B4000001B6000001B8000ED -:10472000001BA000001BC000001BE000001C0000DC -:10473000001C2000001C4000001C6000001C8000C9 -:10474000001CA000001CC000001CE000001D0000B8 -:10475000001D2000001D4000001D6000001D8000A5 -:10476000001DA000001DC000001DE000001E000094 -:10477000001E2000001E4000001E6000001E800081 -:10478000001EA000001EC000001EE000001F000070 -:10479000001F2000001F4000001F6000001F80005D -:1047A000001FA000001FC000001FE000002000004C -:1047B0000020200000204000002060000020800039 -:1047C0000020A0000020C0000020E0000021000028 -:1047D0000021200000214000002160000021800015 -:1047E0000021A0000021C0000021E0000022000004 -:1047F00000222000002240000022600000228000F1 -:104800000022A0000022C0000022E00000230000DF -:1048100000232000002340000023600000238000CC -:104820000023A0000023C0000023E00000240000BB -:1048300000242000002440000024600000248000A8 -:104840000024A0000024C0000024E0000025000097 -:104850000025200000254000002560000025800084 -:104860000025A0000025C0000025E0000026000073 -:104870000026200000264000002660000026800060 -:104880000026A0000026C0000026E000002700004F -:10489000002720000027400000276000002780003C -:1048A0000027A0000027C0000027E000002800002B -:1048B0000028200000284000002860000028800018 -:1048C0000028A0000028C0000028E0000029000007 -:1048D00000292000002940000029600000298000F4 -:1048E0000029A0000029C0000029E000002A0000E3 -:1048F000002A2000002A4000002A6000002A8000D0 -:10490000002AA000002AC000002AE000002B0000BE -:10491000002B2000002B4000002B6000002B8000AB -:10492000002BA000002BC000002BE000002C00009A -:10493000002C2000002C4000002C6000002C800087 -:10494000002CA000002CC000002CE000002D000076 -:10495000002D2000002D4000002D6000002D800063 -:10496000002DA000002DC000002DE000002E000052 -:10497000002E2000002E4000002E6000002E80003F -:10498000002EA000002EC000002EE000002F00002E -:10499000002F2000002F4000002F6000002F80001B -:1049A000002FA000002FC000002FE000003000000A -:1049B00000302000003040000030600000308000F7 -:1049C0000030A0000030C0000030E00000310000E6 -:1049D00000312000003140000031600000318000D3 -:1049E0000031A0000031C0000031E00000320000C2 -:1049F00000322000003240000032600000328000AF -:104A00000032A0000032C0000032E000003300009D -:104A1000003320000033400000336000003380008A -:104A20000033A0000033C0000033E0000034000079 -:104A30000034200000344000003460000034800066 -:104A40000034A0000034C0000034E0000035000055 -:104A50000035200000354000003560000035800042 -:104A60000035A0000035C0000035E0000036000031 -:104A7000003620000036400000366000003680001E -:104A80000036A0000036C0000036E000003700000D -:104A900000372000003740000037600000378000FA -:104AA0000037A0000037C0000037E00000380000E9 -:104AB00000382000003840000038600000388000D6 -:104AC0000038A0000038C0000038E00000390000C5 -:104AD00000392000003940000039600000398000B2 -:104AE0000039A0000039C0000039E000003A0000A1 -:104AF000003A2000003A4000003A6000003A80008E -:104B0000003AA000003AC000003AE000003B00007C -:104B1000003B2000003B4000003B6000003B800069 -:104B2000003BA000003BC000003BE000003C000058 -:104B3000003C2000003C4000003C6000003C800045 -:104B4000003CA000003CC000003CE000003D000034 -:104B5000003D2000003D4000003D6000003D800021 -:104B6000003DA000003DC000003DE000003E000010 -:104B7000003E2000003E4000003E6000003E8000FD -:104B8000003EA000003EC000003EE000003F0000EC -:104B9000003F2000003F4000003F6000003F8000D9 -:104BA000003FA000003FC000003FE000003FE001E8 -:104BB00000000000000001FF0000020000007FF87C -:104BC00000007FF80000016A0000150000000001ED -:104BD0000000FF00000000000000FF0000000000D7 -:104BE00000000000140AFF000000000100000000A7 -:104BF00000201001000000000100860000000100FC -:104C00000000860200008604000086060000860878 -:104C10000000860A0000860C0000860E0000861048 -:104C20000000861200008614000086160000861818 -:104C30000000861A0000861C0000861E00008620E8 -:104C400000008622000086240000862600008628B8 -:104C50000000862A0000862C0000862E0000863088 -:104C60000000863200008634000086360000863858 -:104C70000000863A0000863C0000863E0000864028 -:104C800000008642000086440000864600008648F8 -:104C90000000864A0000864C0000864E00008650C8 -:104CA0000000865200008654000086560000865898 -:104CB0000000865A0000865C0000865E0000866068 -:104CC0000000866200008664000086660000866838 -:104CD0000000866A0000866C0000866E0000867008 -:104CE00000008672000086740000867600008678D8 -:104CF0000000867A0000867C0000867E00008680A8 -:104D00000000868200008684000086860000868877 -:104D10000000868A0000868C0000868E0000869047 -:104D20000000869200008694000086960000869817 -:104D30000000869A0000869C0000869E000086A0E7 -:104D4000000086A2000086A4000086A6000086A8B7 -:104D5000000086AA000086AC000086AE000086B087 -:104D6000000086B2000086B4000086B6000086B857 -:104D7000000086BA000086BC000086BE000086C027 -:104D8000000086C2000086C4000086C6000086C8F7 -:104D9000000086CA000086CC000086CE000086D0C7 -:104DA000000086D2000086D4000086D6000086D897 -:104DB000000086DA000086DC000086DE000086E067 -:104DC000000086E2000086E4000086E6000086E837 -:104DD000000086EA000086EC000086EE000086F007 -:104DE000000086F2000086F4000086F6000086F8D7 -:104DF000000086FA000086FC000086FE00008700A6 -:104E00000000870200008704000087060000870872 -:104E10000000870A0000870C0000870E0000871042 -:104E20000000871200008714000087160000871812 -:104E30000000871A0000871C0000871E00008720E2 -:104E400000008722000087240000872600008728B2 -:104E50000000872A0000872C0000872E0000873082 -:104E60000000873200008734000087360000873852 -:104E70000000873A0000873C0000873E0000874022 -:104E800000008742000087440000874600008748F2 -:104E90000000874A0000874C0000874E00008750C2 -:104EA0000000875200008754000087560000875892 -:104EB0000000875A0000875C0000875E0000876062 -:104EC0000000876200008764000087660000876832 -:104ED0000000876A0000876C0000876E0000877002 -:104EE00000008772000087740000877600008778D2 -:104EF0000000877A0000877C0000877E00008780A2 -:104F00000000878200008784000087860000878871 -:104F10000000878A0000878C0000878E0000879041 -:104F20000000879200008794000087960000879811 -:104F30000000879A0000879C0000879E000087A0E1 -:104F4000000087A2000087A4000087A6000087A8B1 -:104F5000000087AA000087AC000087AE000087B081 -:104F6000000087B2000087B4000087B6000087B851 -:104F7000000087BA000087BC000087BE000087C021 -:104F8000000087C2000087C4000087C6000087C8F1 -:104F9000000087CA000087CC000087CE000087D0C1 -:104FA000000087D2000087D4000087D6000087D891 -:104FB000000087DA000087DC000087DE000087E061 -:104FC000000087E2000087E4000087E6000087E831 -:104FD000000087EA000087EC000087EE000087F001 -:104FE000000087F2000087F4000087F6000087F8D1 -:104FF000000087FA000087FC000087FEFFFFFFFF2C -:10500000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:10501000FFFFFFFFFFFFFFFFFFFFFFFF0000000399 -:1050200000BEBC20000000000000000500000003DE -:1050300000BEBC20000000000000000500002000B1 -:10504000000040C000006180000082400000A3001A -:105050000000C3C00000E4800001054000012600FC -:10506000000146C000016780000188400001A900DE -:105070000001C9C00001EA8000020B4000022C00C0 -:1050800000024CC000026D8000028E400002AF00A2 -:105090000002CFC00002F08000001140000080003C -:1050A000000103800001870000020A8000028E00D8 -:1050B00000031180000395000004188000049C0088 -:1050C00000051F800005A300000626800006AA0038 -:1050D00000072D800007B100000834800008B800E8 -:1050E00000093B800009BF00000A4280000AC60098 -:1050F000000B4980000BCD00000C5080000CD40048 -:10510000000D578000005B0000007FF800007FF872 -:1051100000000166000015000000FF000000000014 -:105120000000FF0000000000000019000000000067 -:1051300000000000FFFFFFFF00007FF800007FF885 -:1051400000000361000015000000FF000FFFFFFFDB -:105150000000FF000FFFFFFF000000FF0000FF0046 -:105160000FFFFFFF0000FF000FFFFFFF000000FF29 -:105170000000FF000FFFFFFF0000FF000FFFFFFF19 -:10518000000000FF0000FF000FFFFFFF0000FF0016 -:105190000FFFFFFF000000FF0000FF000FFFFFFFF9 -:1051A0000000FF000FFFFFFF000000FF0000FF00F6 -:1051B0000FFFFFFF0000FF000FFFFFFF000000FFD9 -:1051C0000000FF000FFFFFFF0000FF000FFFFFFFC9 -:1051D000000000FF0000FF000FFFFFFF0000FF00C6 -:1051E0000FFFFFFF000000FF0000FF000FFFFFFFA9 -:1051F0000000FF000FFFFFFF000000FF0000FF00A6 -:105200000FFFFFFF0000FF000FFFFFFF000000FF88 -:105210000000FF000FFFFFFF0000FF000FFFFFFF78 -:10522000000000FF0000FF000FFFFFFF0000FF0075 -:105230000FFFFFFF000000FF0000FF000FFFFFFF58 -:105240000000FF000FFFFFFF000000FF0000FF0055 -:105250000FFFFFFF0000FF000FFFFFFF000000FF38 -:105260000000FF000FFFFFFF0000FF000FFFFFFF28 -:10527000000000FF0000FF000FFFFFFF0000FF0025 -:105280000FFFFFFF000000FF0000FF000FFFFFFF08 -:105290000000FF000FFFFFFF000000FF0000FF0005 -:1052A0000FFFFFFF0000FF000FFFFFFF000000FFE8 -:1052B0000000FF000FFFFFFF0000FF000FFFFFFFD8 -:1052C000000000FF0000FF000FFFFFFF0000FF00D5 -:1052D0000FFFFFFF000000FF0000FF000FFFFFFFB8 -:1052E0000000FF000FFFFFFF000000FF0000FF00B5 -:1052F0000FFFFFFF0000FF000FFFFFFF000000FF98 -:105300000000FF000FFFFFFF0000FF000FFFFFFF87 -:10531000000000FF0000FF000FFFFFFF0000FF0084 -:105320000FFFFFFF000000FF0000FF000FFFFFFF67 -:105330000000FF000FFFFFFF000000FF0000FF0064 -:105340000FFFFFFF0000FF000FFFFFFF000000FF47 -:105350000000FF000FFFFFFF0000FF000FFFFFFF37 -:10536000000000FF0000FF000FFFFFFF0000FF0034 -:105370000FFFFFFF000000FF0000FF000FFFFFFF17 -:105380000000FF000FFFFFFF000000FF0000FF0014 -:105390000FFFFFFF0000FF000FFFFFFF000000FFF7 -:1053A0000000FF000FFFFFFF0000FF000FFFFFFFE7 -:1053B000000000FF0000FF000FFFFFFF0000FF00E4 -:1053C0000FFFFFFF000000FF000000FF000000FFD4 -:1053D0000000FF00000000000000FF0000000000CF -:1053E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:1053F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:1054000000001000000020800000310000004180FA -:1054100000005200000062800000730000008380E2 -:10542000000094000000A4800000B5000000C580CA -:105430000000D6000000E6800000F70000010780B1 -:105440000001180000012880000139000001498096 -:1054500000015A0000016A8000017B0000018B807E -:1054600000019C000001AC800001BD000001CD8066 -:105470000001DE000001EE8000000F0000000000CF -:1054800000007FF800007FF80000021D00001500FA -:1054900010000000000028AD00010001FFFFFFFF29 -:1054A000FFFFFFFF00090206CCCCCCC17058103CB6 -:1054B000000000000000FF00000000000000FF00EE -:1054C000000000000000000000000001CCCC020140 -:1054D000CCCCCCCCCCCC0201CCCCCCCC00000000D1 -:1054E000FFFFFFFF0000FFFF000000000000FFFFC4 -:1054F000000000000000FFFF000000000000FFFFB0 -:10550000000000000000FFFF000000000000FFFF9F -:10551000000000000000FFFF000000000000FFFF8F -:1055200000000000000E0000011600D60000FFFF82 -:10553000000000000000FFFF000000000000FFFF6F -:10554000000000000000FFFF000000000000FFFF5F -:10555000000000000000FFFF000000000000FFFF4F -:10556000000000000000FFFF0000000000720000CB -:10557000012300F3FFFFFFF3318FFFFF0C30C30C5B -:10558000C30C30C3CF3CF300F3CF3CF30000CF3C5F -:10559000CDCDCDCDFFFFFFF130EFFFFF0C30C30CC1 -:1055A000C30C30C3CF3CF300F3CF3CF30001CF3C3E -:1055B000CDCDCDCDFFFFFFF6305FFFFF0C30C30C2C -:1055C000C30C30C3CF3CF300F3CF3CF30002CF3C1D -:1055D000CDCDCDCDFFFFF4061CBFFFFF0C30C305C2 -:1055E000C30C30C3CF300014F3CF3CF30004CF3CE6 -:1055F000CDCDCDCDFFFFFFF2304FFFFF0C30C30C00 -:10560000C30C30C3CF3CF300F3CF3CF30008CF3CD6 -:10561000CDCDCDCDFFFFFFFA302FFFFF0C30C30CF7 -:10562000C30C30C3CF3CF300F3CF3CF30010CF3CAE -:10563000CDCDCDCDFFFFFFF731EFFFFF0C30C30C19 -:10564000C30C30C3CF3CF300F3CF3CF30020CF3C7E -:10565000CDCDCDCDFFFFFFF5302FFFFF0C30C30CBC -:10566000C30C30C3CF3CF300F3CF3CF30040CF3C3E -:10567000CDCDCDCDFFFFFFF3318FFFFF0C30C30C3D -:10568000C30C30C3CF3CF300F3CF3CF30000CF3C5E -:10569000CDCDCDCDFFFFFFF1310FFFFF0C30C30C9F -:1056A000C30C30C3CF3CF300F3CF3CF30001CF3C3D -:1056B000CDCDCDCDFFFFFFF6305FFFFF0C30C30C2B -:1056C000C30C30C3CF3CF300F3CF3CF30002CF3C1C -:1056D000CDCDCDCDFFFFF4061CBFFFFF0C30C305C1 -:1056E000C30C30C3CF300014F3CF3CF30004CF3CE5 -:1056F000CDCDCDCDFFFFFFF2304FFFFF0C30C30CFF -:10570000C30C30C3CF3CF300F3CF3CF30008CF3CD5 -:10571000CDCDCDCDFFFFFFFA302FFFFF0C30C30CF6 -:10572000C30C30C3CF3CF300F3CF3CF30010CF3CAD -:10573000CDCDCDCDFFFFFFF730EFFFFF0C30C30C19 -:10574000C30C30C3CF3CF300F3CF3CF30020CF3C7D -:10575000CDCDCDCDFFFFFFF5304FFFFF0C30C30C9B -:10576000C30C30C3CF3CF300F3CF3CF30040CF3C3D -:10577000CDCDCDCDFFFFFFFF30CFFFFF0C30C30CF1 -:10578000C30C30C3CF3CF3CCF3CF3CF30000CF3C91 -:10579000CDCDCDCDFFFFFFFF30CFFFFF0C30C30CD1 -:1057A000C30C30C3CF3CF3CCF3CF3CF30001CF3C70 -:1057B000CDCDCDCDFFFFFFFF30CFFFFF0C30C30CB1 -:1057C000C30C30C3CF3CF3CCF3CF3CF30002CF3C4F -:1057D000CDCDCDCDFFFFFFFF30CFFFFF0C30C30C91 -:1057E000C30C30C3CF3CF3CCF3CF3CF30004CF3C2D -:1057F000CDCDCDCDFFFFFFFF30CFFFFF0C30C30C71 -:10580000C30C30C3CF3CF3CCF3CF3CF30008CF3C08 -:10581000CDCDCDCDFFFFFFFF30CFFFFF0C30C30C50 -:10582000C30C30C3CF3CF3CCF3CF3CF30010CF3CE0 -:10583000CDCDCDCDFFFFFFFF30CFFFFF0C30C30C30 -:10584000C30C30C3CF3CF3CCF3CF3CF30020CF3CB0 -:10585000CDCDCDCDFFFFFFFF30CFFFFF0C30C30C10 -:10586000C30C30C3CF3CF3CCF3CF3CF30040CF3C70 -:10587000CDCDCDCDFFFFFFF3320FFFFF0C30C30CBA -:10588000C30C30C3CF3CF300F3CF3CF30000CF3C5C -:10589000CDCDCDCDFFFFFFF1310FFFFF0C30C30C9D -:1058A000C30C30C3CF3CF300F3CF3CF30001CF3C3B -:1058B000CDCDCDCDFFFFFFF6305FFFFF0C30C30C29 -:1058C000C30C30C3CF3CF300F3CF3CF30002CF3C1A -:1058D000CDCDCDCDFFFFF4061CBFFFFF0C30C305BF -:1058E000C30C30C3CF300014F3CF3CF30004CF3CE3 -:1058F000CDCDCDCDFFFFFFF2304FFFFF0C30C30CFD -:10590000C30C30C3CF3CF300F3CF3CF30008CF3CD3 -:10591000CDCDCDCDFFFFFF8A042FFFFF0C30C30C90 -:10592000C30C30C3CF3CC000F3CF3CF30010CF3CDE -:10593000CDCDCDCDFFFFFF9705CFFFFF0C30C30CC2 -:10594000C30C30C3CF3CC000F3CF3CF30020CF3CAE -:10595000CDCDCDCDFFFFFFF5310FFFFF0C30C30CD8 -:10596000C30C30C3CF3CF300F3CF3CF30040CF3C3B -:10597000CDCDCDCDFFFFFFF3300FFFFF0C30C30CBB -:10598000C30C30C3CF3CF300F3CF3CF30000CF3C5B -:10599000CDCDCDCDFFFFFFF1300FFFFF0C30C30C9D -:1059A000C30C30C3CF3CF300F3CF3CF30001CF3C3A -:1059B000CDCDCDCDFFFFFFF6305FFFFF0C30C30C28 -:1059C000C30C30C3CF3CF300F3CF3CF30002CF3C19 -:1059D000CDCDCDCDFFFFF4061CBFFFFF0C30C305BE -:1059E000C30C30C3CF300014F3CF3CF30004CF3CE2 -:1059F000CDCDCDCDFFFFFFF2304FFFFF0C30C30CFC -:105A0000C30C30C3CF3CF300F3CF3CF30008CF3CD2 -:105A1000CDCDCDCDFFFFFFFA302FFFFF0C30C30CF3 -:105A2000C30C30C3CF3CF300F3CF3CF30010CF3CAA -:105A3000CDCDCDCDFFFFFF97040FFFFF0C30C30C82 -:105A4000C30C30C3CF3CC000F3CF3CF30020CF3CAD -:105A5000CDCDCDCDFFFFFFF5300FFFFF0C30C30CD8 -:105A6000C30C30C3CF3CF300F3CF3CF30040CF3C3A -:105A7000CDCDCDCDFFFFFFFF30CFFFFF0C30C30CEE -:105A8000C30C30C3CF3CF3CCF3CF3CF30000CF3C8E -:105A9000CDCDCDCDFFFFFFFF30CFFFFF0C30C30CCE -:105AA000C30C30C3CF3CF3CCF3CF3CF30001CF3C6D -:105AB000CDCDCDCDFFFFFFFF30CFFFFF0C30C30CAE -:105AC000C30C30C3CF3CF3CCF3CF3CF30002CF3C4C -:105AD000CDCDCDCDFFFFFFFF30CFFFFF0C30C30C8E -:105AE000C30C30C3CF3CF3CCF3CF3CF30004CF3C2A -:105AF000CDCDCDCDFFFFFFFF30CFFFFF0C30C30C6E -:105B0000C30C30C3CF3CF3CCF3CF3CF30008CF3C05 -:105B1000CDCDCDCDFFFFFFFF30CFFFFF0C30C30C4D -:105B2000C30C30C3CF3CF3CCF3CF3CF30010CF3CDD -:105B3000CDCDCDCDFFFFFFFF30CFFFFF0C30C30C2D -:105B4000C30C30C3CF3CF3CCF3CF3CF30020CF3CAD -:105B5000CDCDCDCDFFFFFFFF30CFFFFF0C30C30C0D -:105B6000C30C30C3CF3CF3CCF3CF3CF30040CF3C6D -:105B7000CDCDCDCDFFFFFFFF30CFFFFF0C30C30CED -:105B8000C30C30C3CF3CF3CCF3CF3CF30000CF3C8D -:105B9000CDCDCDCDFFFFFFFF30CFFFFF0C30C30CCD -:105BA000C30C30C3CF3CF3CCF3CF3CF30001CF3C6C -:105BB000CDCDCDCDFFFFFFFF30CFFFFF0C30C30CAD -:105BC000C30C30C3CF3CF3CCF3CF3CF30002CF3C4B -:105BD000CDCDCDCDFFFFFFFF30CFFFFF0C30C30C8D -:105BE000C30C30C3CF3CF3CCF3CF3CF30004CF3C29 -:105BF000CDCDCDCDFFFFFFFF30CFFFFF0C30C30C6D -:105C0000C30C30C3CF3CF3CCF3CF3CF30008CF3C04 -:105C1000CDCDCDCDFFFFFFFF30CFFFFF0C30C30C4C -:105C2000C30C30C3CF3CF3CCF3CF3CF30010CF3CDC -:105C3000CDCDCDCDFFFFFFFF30CFFFFF0C30C30C2C -:105C4000C30C30C3CF3CF3CCF3CF3CF30020CF3CAC -:105C5000CDCDCDCDFFFFFFFF30CFFFFF0C30C30C0C -:105C6000C30C30C3CF3CF3CCF3CF3CF30040CF3C6C -:105C7000CDCDCDCDFFFFFFFF30CFFFFF0C30C30CEC -:105C8000C30C30C3CF3CF3CCF3CF3CF30000CF3C8C -:105C9000CDCDCDCDFFFFFFFF30CFFFFF0C30C30CCC -:105CA000C30C30C3CF3CF3CCF3CF3CF30001CF3C6B -:105CB000CDCDCDCDFFFFFFFF30CFFFFF0C30C30CAC -:105CC000C30C30C3CF3CF3CCF3CF3CF30002CF3C4A -:105CD000CDCDCDCDFFFFFFFF30CFFFFF0C30C30C8C -:105CE000C30C30C3CF3CF3CCF3CF3CF30004CF3C28 -:105CF000CDCDCDCDFFFFFFFF30CFFFFF0C30C30C6C -:105D0000C30C30C3CF3CF3CCF3CF3CF30008CF3C03 -:105D1000CDCDCDCDFFFFFFFF30CFFFFF0C30C30C4B -:105D2000C30C30C3CF3CF3CCF3CF3CF30010CF3CDB -:105D3000CDCDCDCDFFFFFFFF30CFFFFF0C30C30C2B -:105D4000C30C30C3CF3CF3CCF3CF3CF30020CF3CAB -:105D5000CDCDCDCDFFFFFFFF30CFFFFF0C30C30C0B -:105D6000C30C30C3CF3CF3CCF3CF3CF30040CF3C6B -:105D7000CDCDCDCD000C0000000700C00002813069 -:105D8000000B81580002021000010230000F024097 -:105D900000010330000C0000000800C00002814038 -:105DA000000B81680002022000010240000702503F -:105DB000000202C000100000000801000002818003 -:105DC000000B81A80002026000018280000E829810 -:105DD0000008038000028000000B8028000200E021 -:105DE000000101000000811000000118CCCCCCCCD7 -:105DF000CCCCCCCCCCCCCCCCCCCCCCCC00002000F3 -:105E0000CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCD2 -:105E100000002000CCCCCCCCCCCCCCCCCCCCCCCCD2 -:105E2000CCCCCCCC00002000000000000000000022 -:105E30001F8B080000000000000BFB51CFC0F003D7 -:105E40008ABB5819180238107C7AE0A58C94E9DFD7 -:105E5000C8CCC0B00388AF02F17E66D2F5B34A2346 -:105E6000D8F7241818182419184E893130EC9244A8 -:105E700088E702D5084A3130DC858A0500D967A554 -:105E8000E81B4EA39836F8BB3A2AFF912A84CE87A6 -:105E900089A3C93F86CA6F5480D03FD5B19BBB0947 -:105EA0002A0F00FE694F6760030000000000000039 -:105EB0001F8B080000000000000BED7D0B7854D50F -:105EC000B9E8DACFD933994C7642422610700703ED -:105ED000040D30208FA85427E1D1E0E5E8F0462EEC -:105EE000CA80AF0892448D356D39373B6412020287 -:105EF0008ECAA1B4A53A207AA247DBD4464B7BF5E3 -:105F0000DC206A73DAD37B9152A52DB6413D281669 -:105F100068F49403BDD796BBFE7FAD3DD97B672661 -:105F20000F5FDF395F1B3EDD597BAFBDD6BFFEF78C -:105F3000FAFF7FEDA8A297A8971072117EAE256494 -:105F40009D4008C9EBBD5AF78916AD26B9845405A2 -:105F500055632B7DB65E0A1B8DD3E8FD4BC4D01371 -:105F600004EE8F9B432611A2C07B05844C85FF4D18 -:105F70002744CE691D1EF5D37BD2AA2CB85AE3590B -:105F8000D72A99107D2A3CDF362ED5F3E4FC09A5EB -:105F9000A75B23F873710C21F5C76F9CFF8AD5A608 -:105FA000FF8D2499B9272FA7BFCC24332F4A847C97 -:105FB00054B828ABD3483FDE070D5DBA3C9690F34A -:105FC0000D2BE6BF32B6EFF3F512A96D2FED7BFF77 -:105FD0002AA2215E8866AA9189BDEB5E4F48A72759 -:105FE0008790CD859BD87A7329B2AEA4F7DBFE45A6 -:105FF000974B7AE15C2FD37E53FBAE871013C7B566 -:10600000C649BE9FE872BCEF7E2F391E7F9FC8F441 -:10601000DF0C42B00B5DFF74217A2DDCF7142E32B9 -:1060200047D0F6FA67CA49B4343DFC497A7D42F854 -:10603000ADF7D2D291F7FB687F530BA1EF9D54E3EC -:10604000D75F45F9E8BDEF4BA14DC0477BC6CF21D7 -:10605000017A9F303EB2E8746A7FD3F054FC918E8F -:106060004E7F4FBCC87F167F5589ABB23AC927E730 -:10607000AF3B80BF326CFCD5BEB8DFF13E297FC597 -:10608000DCFCC5F171BA9DAD9FEC1EC6E8C2E9E526 -:10609000A64F5ABA7CD2F7FAF2D316C0ABA77DB19D -:1060A0003982A4E0270EAF45AF4F0BEF407C444848 -:1060B0001CE94C484482F97BEFB36B469921009F61 -:1060C000D1E6615847904D4582B7B6DC2D52380372 -:1060D00024D13AAE88B6BBD72C00B803C7E79F02DD -:1060E00079680E5568B3E97AF569C643F3E835A3D4 -:1060F0005417603D5B89084A808E576D969702BDA4 -:1061000008B69F366F099B80071226643821F7F185 -:106110003511221A326DABF0EB9854EB504927C37E -:106120008770D1D3F7FD74EB577BDF23178BE0FF2C -:10613000F71058DF40EF91287BCFA4FF00DF39AE86 -:1061400071F439B46DE3FB00B1B5E9F3A3F00BE2F0 -:10615000FBEE2F64BE6CB24F33A87E504B443D0122 -:10616000FD89912DD37646255544F03C480E528A40 -:106170000C489766422ADB811F493B5938B117BE4C -:106180005344C0F514DCBE734D0B555DE7CAFC21CA -:10619000E0F3A04EC8B09CBEEBD9D6401979BCAD97 -:1061A0001D7A0EF93F46F9680C7DDF0C317BB8B5DE -:1061B000E4653D6A93EF0C41E07CE9E60F62C83389 -:1061C00040CC8055E8B5440C7B039F9E3F64171E6E -:1061D00007CB1FFEA88D3E64E8F40A72BF61B0FCD5 -:1061E000F169E7B3E8DA57AE1A2DBA6A84D2614B87 -:1061F000F1A294FE477ABAEE23D03FA384841329F8 -:10620000DE1B25085C0E4C87BEC12BA58F9424EFA6 -:10621000BD0E7A49F93356ECED071F52AE131FD667 -:10622000B8DE7AC97897AA4422EB228CA7C2789468 -:106230004FB7041F3609958773C0DB141F527C4A81 -:1062400027B44931413EA43F9D026D7B83E1C45692 -:10625000E48304D2C582CF63880EFCCAB93E479B53 -:10626000AC30053BFCDE7A15E150D147A0E3E87481 -:10627000408A0AD94F3A816F2D7E0536B87829B405 -:10628000BFEEE08356632A4945078B5F01AD8C5F03 -:10629000BF3E38FDE29E6F8913DE41BFE7978D93C5 -:1062A000363B94FE3D999CB4E84391580503D8F8D9 -:1062B00060B3420E089309692A5C46A2F4EE667840 -:1062C00044ED580B5C0BC03F9C8A7A81B40932C004 -:1062D00069D95512CCC17ED30503C713B55AD42B47 -:1062E000923FCCEC2B7F9E1E2E36FF70231ED629AC -:1062F0007EF3493C2C52FA505D19EA24A037C304BE -:10630000F88084185F48DC4FB7DE8F717EF692A369 -:10631000F83ED5AEA68EF6CC29C77325FA908EB37B -:10632000A584243C48A7B8066DB94426B02FA0FA2E -:10633000C95F40FB6759EC2F2D0801FC59DCBE9268 -:10634000599CBF05AACF289EFDD39CF2ED73C9BF0F -:10635000CCED711F7D96663F615DDDFEDB6302F76C -:10636000DF32881FE9CDDF27FED4FEAAE5B75978D2 -:10637000CD1309E293FC54493C51C4D746DBF7BC2A -:10638000959D80759B159135CD140FE6DB42A809CC -:10639000E829877BB2E8F3934F4AB85FCA5B567F20 -:1063A00009CCB7BDC11C5B6CF307B7CBB51AE09B3A -:1063B000F28566B7173790E80B826DFFE509B68C5A -:1063C0002D1E86FCF7767709980A01F9CFEB8F0529 -:1063D0005F05B9E4F793F8B1B7A5BEEDDC7CC2ED7B -:1063E000E50DE5613A6F2BE8AE11F8D814283CAD05 -:1063F00005ACFD93C6E1E5603F5B3359FBA3C6776F -:10640000C28DC817512D42EFD5138E972E8A17A42F -:10641000BF916FB7AFEEAB7BFD3B64DD077CB6D7BA -:106420009F735D09D8CF32310468DF1B3BA2AFB147 -:10643000E1E39B9E8A37001F2349422040BF582E2C -:10644000CA8FE5CF01E341BB80CB5321398CFD4698 -:10645000477ACA15B8B5427F19AE2DC1E7B2519E31 -:10646000C81CFD24CABF245CBC7CF0F29E6EBD013A -:10647000814452F9F3F74B392857816974DD0EBD19 -:106480005EA8233FF271BF063402FD914D619A0C64 -:106490007A24BE229262BC9F0822F6D3C01E5C41C1 -:1064A000D150B8ACECDFE87A352D3CE5550A97279A -:1064B000D71F32116C66270C2E039E78A306F82591 -:1064C000472502F2AF158623B7019F924858A0F7DF -:1064D000B56038B4D5E8BB3E9530FB9043AF179913 -:1064E0007C13E87F4F9E8EFD09D80B6B5D63002EF9 -:1064F00015E1FA0CE89D2B4E1F98CE23487B3918E6 -:10650000B374F4FEACE99CEE7D377D030293AFFBE0 -:106510009BCE874D2A4F2DC7055102A5182F46BA8D -:10652000689C2EE795A8067EE396AF8A641F6D3FB0 -:106530005ADFBF9F12033FC563B39B3AA3DFC8BBBB -:10654000F4A9C042E9DEDB7597589948C14F9522FE -:10655000D3FB5BEE7A383E16E8F98A73BFA7AC0A24 -:10656000A35F4AF77D95400FEB3D6F31B34F643F1A -:106570005D0FEDAF707FE47CDEA22C92621EEBBA61 -:10658000C7057F21C5732AB9B94FE2FED54E36BE85 -:10659000E5EF9C2FE87F7C0B3F172A4572B814C9A2 -:1065A000EA23A57C3114EF8549BF3B0FDB1EFE2893 -:1065B000512BFA08D8BDC2CE72B82AA4A711F8741C -:1065C0009748AA52C1B7561211BEC230DD7A50BDEB -:1065D0005F688AA099C8BD9281F7F357D51E5428E9 -:1065E0005D5A47911098994B603CD0AB07BD683F0E -:1065F000D55C92F0523DFD5AD1574CB0CB7A21096F -:10660000032C7A2DEC39E97FD4BE1AF4B9B2316A81 -:10661000225CC108EE110E152D437AB750FFCEC390 -:1066200016E2E0A71653EC04BE8DD3F1C11F8C1BFC -:106630001528AFE782D4F2C3CFC7147E6BBF712990 -:10664000C485282901CE0932C2494762F4D4195EB3 -:1066500046EE9E453AA9DD69CDDE85F2605E495081 -:106660005E6572D814C0CEC80953A4F0C6AA983E7D -:106670005072E382DD8EED21D107ED7C23EB9DE8A6 -:10668000FFB5FE595A910AAFD522D36FF7717D78C5 -:106690005E699F8FFE4633958FA2BEFDC39C0EDFC1 -:1066A0008E2D7A703CEA336697ACE75D82E18863B1 -:1066B0008EBCA0E27ADC7ECD3CEED7B41452BF068D -:1066C000E59D2C003F2683F3470B608F3EF76493D4 -:1066D0008449E1C8007F86FA25A494F9251AFD07AC -:1066E000FA2F7F85D39FF1B8FC9674FECCD784C86F -:1066F0000F50DF515505F0EF16E2F3C701BE0BE86E -:106700007ED2E8BBEE2EBE9F9C2B6D2B6AA1703D06 -:10671000962B3AF861349797C78879E2227D1E2F2D -:10672000140D803B5E2FE23ACE19CC6F27EF7A1D15 -:1067300076A2D95CA4119BFED9C1E5695B83E69082 -:106740005BF7D5AFC6A391147A4BE7F4C99815C689 -:10675000F8873F9440FAC33A53F9E90F945668FD1D -:10676000E93FB9445D83F82BAC3825C3B5CCBD5F98 -:106770004A3DAEFB4AEC7EA694BEDF60AF5B289E2E -:10678000DE561CFE78A704FB2E93A0FFE70D5153A5 -:106790001580AB3E1CE0F786A8B8C1B5BBBC12EEB5 -:1067A0001BB3221AC891659FBDA1C856B89FF52595 -:1067B000790BD0CB5B2E8A12A59F269B24C7263748 -:1067C00053E1A68DBF33A9BAB4E3438B7EA512FC77 -:1067D00054522892B1148ECD1F3768763A75D16D18 -:1067E00008DBB73AF9265EDFBF9EFDB47CF173D1BA -:1067F0008A8738E9853FF67808A77392FE7DE21A0A -:10680000FF39E8AD71FA19947E9B0CA027D3177459 -:10681000E385FE435C33C3D08E1B8668DAF4D8C7A9 -:10682000620EE241BE20A35EDABDA6250CF4D2E9D9 -:1068300018405A7A0DA7B2DB5D828A7245F5C655BB -:10684000D27454C802C43FE74A1B91DE8F517A8349 -:106850001E7B8CD4765DCCED957F2DAAA21FDFD553 -:10686000689637160F456F52F8A85F47F630FFE578 -:1068700012CB7FF97BCA2783F057CE53A3C1EDB16A -:1068800017F84AEEA62C4DE12ADCC8EC26F86A3946 -:10689000B46D50BBD729F4F2A387CFA394260E8FF3 -:1068A000477A3BEDD363852F0B1EB06FC5CCBEA9D5 -:1068B000666718F44CA098DA2782F66735E06744DB -:1068C00049BC1CDA2377CFC3757C1BFC503FD8171B -:1068D00082F8F8A698683429CD7CE148A728C1FE43 -:1068E00099E0FECEA29F7B5E6AF5909EBE6C712FF2 -:1068F000D029507B189669B77BD5525EAF3D1C51AD -:10690000D289EAD6ED2FA4F513FE2CF1FDD8CCC622 -:10691000306D8F825FA93FB9537CBC11F663114F74 -:10692000B81EE9EEDA4724E3503CDEBDB6CC122AAD -:1069300063F96FE83C7776291400027E80648F0348 -:10694000DD097689EA9BB5DCAEDD4A2201787886DE -:1069500088185F3B438E04AEB0F1E14E4965F3B455 -:106960002A6F43FCDE8AEFDE16676D4BFFDCB1DB7E -:10697000D9BE9D2C1A0EF1DBDB772AB8FE3B5DFBFE -:10698000D698A4E3B87790DA16C043B342D04F58F4 -:10699000AB1319E2B11B7EF89D19B04FF836B72B37 -:1069A0001F50FE326CFA679D3FA1C27EF69D8E2B72 -:1069B000965D4DE0FD44CB08D89767939476F496A6 -:1069C00056277C03C1EF8697904DFDC221B7092958 -:1069D000E3874F4982236E58AF052641D0E4BC9728 -:1069E0005DCD0AA63FCCDF7A134DE0274A06EF5F64 -:1069F0003B99E5396A67C275A0F77EC6FDD1A1BE95 -:106A00007738CD7B1BB46E15F8BF46362B05B137F2 -:106A10005EA529B5E19120C707CA3B471247BFD6FB -:106A200041F6AB14FBE9E786F794AE99E2E4BE7059 -:106A3000DF40A26F81DC9D17A3D51827E0707B0093 -:106A4000CF125C65A427C64F8A605E7FAB9005714C -:106A5000940EF44FBC86ECA0778DA507A85E82B893 -:106A60004F4689F3B93BAED293A46B27CA1786442D -:106A7000E992029ABF53027FB14C3E9DEC4FE7ABC7 -:106A800086754DC64EA85FEAB87EA926C683B3A612 -:106A9000A17C61BCAE6EFE1813E0A8CB3342A60108 -:106AA0006A3414C6315C7C5573412009DBFEBB4659 -:106AB000EE51418E6AA8FEB6DFBF27C8E2C9E9F4ED -:106AC000B64234C35F027EAD88789274DAB6ADFB0D -:106AD000A3B850D9CEF655594BFAD917DF1364F144 -:106AE000E2B55BC666B1B88B535F9DE5F6E127CF93 -:106AF0003CAE76839E79FAC4F5B0CEF5FF53221AE8 -:106B00009DF7EC3399A413ED464205BBB1AE434A61 -:106B1000690F096962F9F3EF6522BDD63DE7492C9B -:106B2000A0EFAF7BE19D4984C2777653CF6B23C141 -:106B30009F7E5A607171B37BD2627A7F9D4C56A75B -:106B40008AB34C90D93EE4F48F325680FC0A6D072C -:106B50006FC671DB972B6057AD7E86AC20BFD27EAF -:106B600068B7CDA784C45821157C2C1F71FA2981E0 -:106B7000C17740C1FDDFBAB6BD6A94C251D3F621D8 -:106B8000EA8BD9DF7B360078A8392039FCB89A36F1 -:106B9000A9D33309AF27E00A71566106F009E797D8 -:106BA0008E0D185FAD6E7FE0432900EF3BF516C5F3 -:106BB0004BA813F0FAA6145A00ED1FFC63C0A0A85E -:106BC000FAE0F01301C02B1D778D9A05717C277FA9 -:106BD000C3F81772FA8E47391DF3BD35ED5BD87CCB -:106BE0002EBDF801FC52D0370E1B919D7974D23620 -:106BF000B83CEFFA67CF3D6AD2F94E3FF7FB474DFD -:106C00000AF75D7FF9F747BF0E72F9CF5E1DF47A80 -:106C1000CDD3BF0C101B1FAE9359FCE0EC28BA85F6 -:106C2000A2FDCEFECA930087E0EC4BEF8D36E87AEA -:106C3000CF7EFF4FC30DDABFEEA5B9F9B0FEBAE7BC -:106C400067E7F7E7C7009F263C76B81238BE714069 -:106C500060CEC28BFCEAA2CBA18E43A301CE33C788 -:106C60003CB83FABA1F7EAA7029D36A09D85F6464A -:106C70008ADFEA67367F08FAA12F9ECD912206BFF0 -:106C8000A81A0C029DDF9987F4223D681FDDFD6B79 -:106C90008E523A4E4E4FB773E46315F45CCD335BBE -:106CA000D87C2EBA9D815FAEEC4BB7CD2EBA9D231A -:106CB000773D560089D78E618E3C8275ED8D9F475A -:106CC000B222FDE8074BFE07C22BE659285C4BE5D4 -:106CD000F0376490A3E73292745D00747DF6DC684F -:106CE00042F9E27DA5E766B0073D2F79F47DF4FE19 -:106CF000BA97DE44B93AFBFCEBAA81768CF805EA38 -:106D0000579E25C99FC3E06756339F93D4ECCFECC1 -:106D1000F4047AE9539D58586904F0FE09BC9F6059 -:106D2000FC5E9D38B8444841AFD7E5314CFF27F2AF -:106D3000102F1BF6FF46257E271D8532A0E389799B -:106D4000703F1D1DADF5EBB0FE99367AEE6772EA25 -:106D5000EE5F4DE511EC5D92AE09E14D92422ECF12 -:106D6000EEF5C860EFCE825F95326FCAFC99A1E65E -:106D7000577E263BEBAF92F9158E87F4FCC1E47B7E -:106D8000A0F50D157F3F920D1CD78DC7D31FA7D639 -:106D9000F7EF717D514DCCCA1197F6F5436412316E -:106DA0004716F5C27B1A36A894FF4E3F2D613CA8CA -:106DB000A5FD10EA6DB79EA84E13DFBC20333FA19E -:106DC000FAC0C149A0CF4EBFFC23E4CFEA674EA86A -:106DD000102F7EADED076A7769AF3C803D48D8EC57 -:106DE000C1E9EF1E9CC4F4001D3F059D14858D5F15 -:106DF000F3A273FC9A673E748CBFDE6C47FF60A001 -:106E0000793E90C3CB61BD1F1C5608E8D10FDAA5AF -:106E1000CA547EED07DC1E5A786A797DDE6F200F3A -:106E200036ED88CF00BBD9B1299CBF1DFCB5230A24 -:106E300001BD4DE4F0EF3DB4DDF1BACF80FC74C785 -:106E400091659261DB87FED085CF9947CDD9997442 -:106E5000BC99DD9169E0A2BAF546D971BAAFB2F139 -:106E600041DDEB95F9A0EF611F6A8C87F94241D8AB -:106E7000E74A8179952C7F2DEADE94F69A8DA7F862 -:106E80002318AF5274311923837147924423C45796 -:106E900089DFEFCE4F44347B1E6AC5E183B0C5CC99 -:106EA0005DFC62018C132031FD24FA9F2474B11F14 -:106EB000FFCB9D8FB0F09994BF34F9890CFDE6E0CB -:106EC00041D277BCBE7998A806F1ED16FFDAD6223A -:106ED0005B1EA625D8270F3357A178681548CA78B6 -:106EE000ED78A562BE9287BBE368AAE737294CAE6E -:106EF000AE25DDF7AE0138232C9F33CB85AF2F7144 -:106F00007CFDF364BA70AA42CBC1B3A2F89DBD2444 -:106F10001C53E8FDB9AB7A2E7F19BBF37C8E395E2A -:106F2000BC983178FC0D356F17F12CBA5D1944DE31 -:106F30002E5DFEB8170E93EFC7731C798C436FDD7F -:106F4000AF75639EA1B6B5C816F71BDEE92561CC07 -:106F5000E319E81F0EEFBCF39BB741DC39B730E40F -:106F6000257DC7912F5C8D71232B9F2F17863B2189 -:106F7000DE2FEB46B984F32C0F437E61B3C1F205DB -:106F80009B83FDC7F56628D16605E351D7E0B8A21B -:106F9000C6EB0F06B9CE6F2C0E209E0314CF20EF48 -:106FA000B8FF81F51D1778DEBCDB94207F78221BAB -:106FB000F305019994403CE0BCE00B6DC27C823348 -:106FC0006F9E8E7FB7CB26E6CD5B8D3E79F3EF28A3 -:106FD000B67C8396266FAEF99760DE5C23367FB76A -:106FE000A8B75FAFDCB9F2E63016C665B6CF86B893 -:106FF0004C733671E4CD9B41F0AF22E439E5EAD918 -:107000005877E6E5CFCD59B3C3F63639FE32B679B7 -:10701000FCE98FCDE73641FFDC91A416EBD4E40800 -:10702000596AD383EF292C4EBB4109FF50B1D71DBC -:10703000717EB0F23F87DE7A0FF90AAE63285E9B5D -:10704000295F7990AF4E11BB5EB5AE16FF341BFDC4 -:10705000F3857A610AC6CD92EDA0897C110846C3FA -:10706000E114EF4DF230B9B7E60D94513D4AE54DCC -:107070003122988F5275BAE135060F7F3AB82C3E0F -:107080006D36C6B03A289D60FD5EFA754C63714C52 -:10709000887051B876DD787BA83F3FC75AE70C254A -:1070A0007CD28EF7DC4B52D7EF56AB6CDDCD9155D1 -:1070B0002CBF5EE5CCA742FADA1E679D2E44FF5D29 -:1070C000C13821CBA78A5A84E7474C2B3E1E4CC6B9 -:1070D000C30DA833BCCB047DA8AC6A3705B8E6B2B3 -:1070E0007C4AAE16FD58B1D90759EF6672EBCA0F4C -:1070F000CE954E0F09BF565DDCD6061DFDF42D0D55 -:10710000416C6F6E30F0DAD210C6FB6E3A361B2F30 -:10711000076FC1BA341FC665D38DFF604308C789A6 -:107120003594B1F178DE9C90CC26E02B55B4E46523 -:1071300018B6FD127F6E163481FC6D17D8F36B5AAA -:107140002E4579B3F86787D17F5C5A4ACC403E1808 -:10715000EAF87DF9F527B8CEE6597ED4AF03C951D8 -:1071600056279B77B0F328497BC1E6D9314BC379C9 -:1071700076E40E304F9CCD3330FC0C5FDB0E9EC2AC -:107180003A0485F203A828450FA7AED3E3F2D677D9 -:107190001C0FEAF9E620AB0B538BFD6150FECD06C8 -:1071A000CF3716B27CA35A32BC02EEABA1CBB04EA5 -:1071B0005C2DF5633E4F2D1E7E0BB4B71DDCA25730 -:1071C00080FD2814435E03EC76379173516C307E5A -:1071D000AB1697DC06FD7590630AC7280FDB6FA915 -:1071E000C557DD01EF1F9CF29AD144FB3717FA42D5 -:1071F0001E90B76ED9C1FF83D61385CE3C1A91A9D4 -:10720000BEA0FA6BDB94DB4B503E355B9D648A7A03 -:10721000419BDED8A0DAF4864AE6988087747A87A4 -:10722000DADFFBD4BCBEE358EF6F5022F52AEA85C3 -:107230000871D6BBA7CE675BF400370BF2917230B2 -:1072400059A7B7A060786F7EDBAAD373E7B5E3F4E4 -:107250005FAABCB6BBFEFCB3AAD3DBA926EBF446FF -:10726000419DDE8F1512EA84BCFC2FA5D03EA32FD2 -:10727000DFB9C7739FB7A0FE8F06FB9C7472F9330A -:10728000D5993F2D88BAE87EABD731DF2B202FA5CB -:1072900003EB979155CE7146D53AEB6A2FA9CF7182 -:1072A000B48BCC118EFE97B68E713C1F1BBFCCF1F8 -:1072B0007CFCEEA98EF684C4558EFE97B75538DA5D -:1072C00013DBAF73F49F7C6091A33DA573A5A3FF6F -:1072D000155D6B1DCFA71F5EE7783EF3D83D8EF698 -:1072E00095DD5F73F4AFA7EE900A729BCBEB9073C2 -:1072F000F3457B9EB6358FDA25BACFDF9147190665 -:10730000E3DFACAE4B658F937943F77BB2A1867513 -:10731000CCFB8F9B035722D7A13D958DE11506DE4F -:107320009F310FAE649AB3BE5635587D32ECE39C64 -:10733000F502CE3A6355DA86793ACFF12F77099381 -:10734000FAD2552D74CAC160EB9415C3F5DE10E571 -:10735000E2BC2517A3A85C60FCED6309CFB5CCC9DE -:1073600044FFC2B69F423C5AFBA96B34120317D3A9 -:10737000928BF2553D235FC56ED63ECA230EA52ED5 -:10738000CE92BF804DEFC37EC5D233CD6583D3AFE0 -:1073900052E20A873FE9BE3605D6A5D38F051E9B6C -:1073A0007FEFD68F339448213CD7E4B0496CF11A73 -:1073B00052AB38E01E2C9C9FD40EDC45198EA4D015 -:1073C000E32AA9C5BAAB9615610C02903AE2E0D364 -:1073D0009D8BFF47198C4BFDC219CE7532BFD0ED86 -:1073E0004F53FD86FEF40EEA4FA3BD73E947AAA7EB -:1073F0004C5EFF65303F82E943F73A3F2F3FFADFAB -:10740000C059ED875E81A25025EE0FF34402FBC305 -:10741000E6599120C4E7ACBA79EBBD56CFA5384EFA -:107420002C5715217E19EB9A8BF1FA262DAAB13C27 -:107430007114C769CA16F5547562751E962FD6EA7F -:107440001F18BBBF9FB88BA69268AA78DA4E0FCBE5 -:1074500007C5F4B55D604733F35403F6DCAD074F61 -:1074600045208E2497C93AECD70905E61D5B7E8F2F -:107470009028C699B4A0887657ABDF81F30F04EF4C -:10748000CD1E819FFBD8D22FBC5E3575DC251DBC7F -:107490005B00DE6903C3EB05788B60FE6D387F8D82 -:1074A000C748897F85842B6703DD4E7C3982E95686 -:1074B000CA36201F3BCAD8BE9C1A02077F5BFB1C42 -:1074C000CADF0F7BF2B07E15F9DA3AE770A347C73F -:1074D000792CBA92C21C8C6B04A2B1B1C594DF3274 -:1074E000A36C3FDFAB9F181F652A6102F12CD92FD7 -:1074F000627E50E5F110ABDF1F383E9B667523BD01 -:10750000365F29934D426F9D75AC90AE6B72EFBAAA -:10751000FE8F279BF1279FD7479664615D8AF44CC5 -:10752000B03FBDEDE3F872EBEFEF79B8FE2E20052A -:107530004C7F972E877C77BA71DC7E4C3D8FF30EA3 -:10754000BDBE9E9F2FF0DFD30571262BCE4782D381 -:1075500052C6E57BF1CAF295BDF45D6E7452FAC96C -:10756000D3A7629EDC3AAF40D599B35E98D3D7A239 -:10757000AB15472741163FB2E8EC4DE2734FBFF819 -:10758000F482BC5CD1179FBFF2F07CC37F317CBE1C -:10759000023E0DBD6666B2F3E9E4D05709E6A50ADE -:1075A0009D7268BD67F1BB7BFD7FFA2FCA4FD6FA8B -:1075B0002D7E48DFDF4CB9AFB1F2AB999CDF343898 -:1075C000654515CFAB656FB75E0AFBD7A01FF77D8A -:1075D0009965313CDFAB105307BD9069ED6BF879CD -:1075E00023AB5EC957EAF4CB34D7FE45E575517D30 -:1075F000CEDB72FFCD7D8E2A895F17BD266B69F2C7 -:1076000063833C7FB48BE7EB0AEAE28DB01F2EB8B0 -:1076100095D5FBEF51C86AA8AF1C51658ABE5CC8FE -:10762000DF147D3F83AEBFE0C5871A4702496E3540 -:107630008AC0CD7846331C76B8E0AE78B98F3D9FCE -:1076400002E33CA531BD5B5019C773CE4DCF8FCF40 -:10765000023FE195B796EB101FF828B718F74F6770 -:107660005EF08441FF9FC921555817F6C2CCD7C0A0 -:107670008FFF7D43578E6CE39333DF7D7D86428998 -:1076800074E6B9D767C848AC8463FE0D177F310331 -:10769000E0362B48492DE4EF7495C0B8351ACB97E6 -:1076A00059F53EBB86AB2D70FDA9379BC513F3C5BD -:1076B0001DD0AE878018F80D3C9E7FF5696339D4E4 -:1076C0005F66772902D4E33D2498A69F5ECF9F781A -:1076D00048003F4BEDAC85300BBD1F3A042837C73F -:1076E000B27DC9F922525244F5BEEF70ED78F4A78D -:1076F0005DF54E16FFCBB309E6FB7A6ED41260AF90 -:10770000B7CBC6375681FD5E25633DCE76F930CACC -:10771000859B8EC7BD639CF5B93C1E7DE8AD3BE201 -:10772000E5F4FD7BA688C8AFFE1353B2480AF9DD25 -:10773000DE5086F3070ADEAE2C07B03EA67767F46C -:10774000EE93FC3231B3A889548A4453A178F1975F -:1077500011F2B68DEF5A4412D6E9F3171A088ED3F8 -:10776000D1A0E1B5AD411F5B4C3706DF6A08E27579 -:10777000678381D7871B4AF0F9830D2187DCC37C9F -:107780006F97F0760A7FE5F3BA3ED040E7B5C1B116 -:107790006B22957A4AAF5D3C1FF540E9D4ACB5FD4C -:1077A000C4C1F634740D9B3396230BEA4DEBF4BD44 -:1077B0005BFB817F4FA3B07A11F83577CB917DA821 -:1077C0001FA3058B6CFA91FA6D0584B2E2BD2D23DF -:1077D000E6CC29407944799976388AFE7841302E72 -:1077E000401CB1E028BB6F9DB7407A5141FB61EE70 -:1077F0001C4101BD594ADA012CB5344A2A68FF9967 -:10780000794BCAE13E99E8BC3F4365F20DE356D09F -:10781000EB6C2DF2236D3A7CA763B7F92C5DCF1F7B -:107820003B3C06E4791E7CF94F2AEC0B62BF5235D3 -:10783000F0630A5E3C81750F31A15B85CAD8E35ABB -:10784000F51C99EA19DC0C627C952A16CA2731D0FE -:10785000B118FFEC89CDF1C37997E8297BFF5DBEB4 -:10786000E8DDFCE448580B523E4AE62FD6C7C27406 -:10787000D3F902CF5F1CD7D6C5CC4268D3FE53588C -:107880003B46DF7F213B3A52CC86A28BAA58D79742 -:10789000A06DF5AF8A41BDED9B5CEF107FB408E4AD -:1078A0002DD9D6693BD3D696599B68EC6AAD77C380 -:1078B000A13FBD067AAEFA45A11D40A37A8FE1FF34 -:1078C000C0435877DBD6D0A5C7144E7F8B0E542407 -:1078D000270409D6D3A909213186EA8F09FCFB14B4 -:1078E00005D3C24623E8D7841202BD19F231BF7115 -:1078F00042828E6393AB0969BE8382795FA0E336CF -:107900005637ECE6AF67BD2C3F504FCCAD90072308 -:10791000CF283AE623799CF2B465E7F87EF52E2F5E -:107920006B2A9B4CDF65A07FD6C818075B5F142FBE -:1079300057E93CEB7F5414A29615F24A58D7B03E53 -:10794000BB7DF854969772B41FE275B4C16C331BBB -:10795000CE0F541F786834D4055493F8CD5F037864 -:10796000FF95E51F4F1DBC32EB6ADADE40DB107F6E -:10797000DDD0F1BA1AA5FD8671B8AB3BA65C07EB6A -:10798000ABDE2612B188C967783CC573387E994C46 -:10799000F9E49AAD23E77A299D9F1A13D645CA07C1 -:1079A0002B7DE39A3568ABFA04909B95BE89CDC0D8 -:1079B00057EB27F2EF359089AF86655E2F45F96268 -:1079C000D8968618D427EC5F59791D98D9E122936F -:1079D0005BCA88983F94B26398B7F843333BEF0291 -:1079E00029FD8D940EC532E992E97597CAE867B60C -:1079F000C8182FA6F75B95A940977818CF57B432CF -:107A0000BD3FF6450FC69D8B6BC377A25FA097E283 -:107A10003E653449FE605EFA12F88D8E335E27E5CE -:107A2000700EE1C75E162F2C5EB16C3DBC27652E33 -:107A3000F1E1BE5C62E7A0C8B7599C7A979868D715 -:107A400040CE03C548DF5D01C617E6C3A5C817FBD6 -:107A5000C58ACBEE86B8A4B066EBBF005DB38B09D8 -:107A6000D015EEDF43EFEFE7F494B2433AD06F3F27 -:107A7000A7672C219A501F63DD7F41587B27C8DB05 -:107A80003AEFF373348AD7E19E707C18A5C39DDE6C -:107A9000E763C102A4C3188DE2FDCE2D1D316D1424 -:107AA0001DA7313C42B7B5C7FF997A23989FEC4098 -:107AB0007996B31F5E07F24E9FBFA2D1753E95C364 -:107AC000F5057F5E3C26A93FC284DA1AA9B1579F0B -:107AD00068D43E14DBFACFA1FAE0C947591DFBF583 -:107AE000743E9077BA0ECCFFF64C9013509FE5A3EE -:107AF000B080DFE29B3806EBF3E8BA09F8253D13C6 -:107B000065B4B3561CDB3341C4F812F4077EF08D24 -:107B100062FDA9A044406FCA8532EE5765694F786F -:107B20008201E16396D715F485786ED55B62CBE36D -:107B300092DE3A606C17E1676E1CEDB19EEE029129 -:107B4000FA95B9C7170AA3E9787778B9BF9D4BFDB5 -:107B50006D7A7FBD97E9A5FB23E69721C4418CEEA2 -:107B600002D44F243215AEF93715E747FBB14B7DF0 -:107B7000FDEA6EF41F76F8539FD39CEE63FBF92663 -:107B8000FF111DF8AD9E50F907B9D019BF59FAC3BE -:107B90003A9FE0AE27B6F48992CDD65837BF221F60 -:107BA000F480CCEB93643DA4437D6579E634F4FB2B -:107BB0009EF432BD271DBCF20638A7A1FE2BCB0BCD -:107BC000EDF146319ED45340DA815FE56098D8F3F9 -:107BD000BF963E6869D0F0FAC4D4711520274F4C87 -:107BE0001D5EA153193834E9C75D90673AB787C95C -:107BF000EFB9C3B7E1F9C773268B37015B615CB29C -:107C0000F3113CAFFBB81C7910EB6AA13E8282B441 -:107C10002DDB59BF55CCF16272FDD4ACB0E79B1B94 -:107C200058FC58BD7039C6B554AEC73DD15BF1DCC8 -:107C30008687DA32385FA911D364DF3B6078D00AD7 -:107C40009DDFC3502F4CC2F74D2F8B1F59F522EEED -:107C5000BA100B9E191C9EBEE7329CF4B0F65F165C -:107C60001DACF7EB8470BEDE0FDFD45C9048C2160B -:107C7000FFE8ADEF56F1FE59A88BCF823A9E68FC23 -:107C8000EA22908304EE8FBCFE3A42F8F795904FBB -:107C900083728FBD0E3DC35517DF475E0C67DB5DFA -:107CA00017B11E9883D7F1613DAB4CBE29507A9F26 -:107CB000C9F8ED0CF06B6BA87AD02040249B3ACC2D -:107CC0007F96FBFBF28B7787471A363E170CC73E31 -:107CD000A1FAC0428C23D4ECF763BD7F35E8BFC95D -:107CE000706EC0ECF238CE0B843BA13E4F39C0C65B -:107CF0007B12E0A1F7FFA85715C0BA8FC3FE270F6C -:107D0000EC495462875E0E231E62DEF031A2337DA1 -:107D100026539E88655BFAAC3A061B865D2A71F88D -:107D20004BBB7CBCEDAB8EC54A7BEB3F8E6BFF0F34 -:107D3000F59B55DF715CFB0FF48776A9F14ED07788 -:107D4000E60B1E03EC177D1FCFEF9A2B4BD00EC412 -:107D50008AC808C0C32BD92AEAB9D8F39E7DA0E708 -:107D6000666BD13735DBBEE14CF61BA361FF956234 -:107D70003CD331DEA8A18D47E7EF00BC5ACF5FC9E5 -:107D8000DE85E716E97B06E60D0B0F8F5E43DBC34E -:107D90005FF0E0B9216BBFE9E6CB7C2E5F2DAEF33F -:107DA000802AC89B1FF46D2DCA9927E8CC8359728D -:107DB000A75E98E0C8073C097696D24F95A310A21B -:107DC000A4CF4BF1B9C9F9AC85D723A49F2727CD00 -:107DD0003C57A03CA79F67069777C2E558D693DF2C -:107DE00085E9E7DCA03B4FE2D653D6D5D253DFE29C -:107DF000FC2993E8153E3ACFBA44FB3C1FBE1D9DBB -:107E0000047EF0071A3B0755D2F6D0CB609EBFE93F -:107E100009DFEF9D8EE7BEFEC99B37747958E923D1 -:107E2000BC2EB38F1E62FED5ADCC5FAD9B3F15FD62 -:107E3000BBBAED6374FB3945F7B5EA4286430F0DD3 -:107E4000F31AFC7B7B26EAA3AA0B017CFED9CDE7C3 -:107E5000759C5FE93B9F1F9F5BF3DDE5D2B38726EF -:107E6000FD74179C73AFFBBE227A6CF3D47D9FD751 -:107E7000FF7BA9DE75CA7B18E45D2E22C9FA2ED0DD -:107E80000FDB54AB1D6E9E330BFC5A9B7E2803FF09 -:107E9000ABF77DF8CEDD361FEF6F56A6EE9FE1EA19 -:107EA0003FC61A7F21F677C393D43FB01FA3FDE5E9 -:107EB0003F7B2CF8507F3D24BAC6CBB1E6BF11C73B -:107EC000B3FCEE8BDADA574D19F8345E0EFBA79E41 -:107ED000DB8801DF9F785C0EF94276BED518BF566D -:107EE0005DB8D441EF5EBC8F73DC7FAF21E8A8D7CB -:107EF000BD235A8775DA1779FCA98A7AE6F8DE9EDF -:107F0000918E3ADDBFC1F149E1B83A0D1CD77CC171 -:107F1000701439E4B3178E62C7FD4F0AC7428DE96A -:107F2000AFE5FC3A5767E766E71A42A889DE9A4B45 -:107F3000EF7B29AF7F995E357A9D2B13D38FDF4579 -:107F40004DB0FEB40DFBFB1BFE7CEFBBD762A22A3B -:107F5000E8A82B90789DB75BEFC0396F56EFA63934 -:107F6000BE0F675D7D12ABD774DFFFD0C7F0F28D17 -:107F7000CBAB09F8D3D4574F796E6D975FE0DFFB39 -:107F80000C8A8E38376F5B75BE9F155C72069BEF4F -:107F90001B975F4F20AE2BE7A6FEBEDD413F83BFA0 -:107FA000450B639D784CEFFFBB349F149EE14978ED -:107FB000AE413C4969F0546BC1A3B3BC604BF0F3D4 -:107FC00081A724C3A25BFFF8D9CAE126172E413E40 -:107FD00092389D5A60FF96A2BF95FF68D13E5FF828 -:107FE000C383A4EF73195F0C7D170D92BEC55C0EA1 -:107FF0005AF4CF179E5B0709CF7516BF05C348AF6C -:10800000CF0B9EAF0C129E6316BD8CCF173FAD49B0 -:10801000FEEF1F9EBF70B8F333581CA4A5849D27A4 -:10802000F14991078B8481E5C257ECDC676B853E93 -:10803000679DCDBBCEBAAF74EBFC355F673A795A1A -:10804000A924F2807EC71A583CE00DBE3FF9755551 -:108050005326C6E75DF3B404F765F617B7F9EF5595 -:10806000CE73B903C9F1A40C96FFB931EA7C6FF95C -:108070008A0C571D9989FD2CFCA51BEFAF056F617C -:1080800048620E026F145F5945FDEC1B3E6B7CA5E8 -:1080900093BBA1E22BA60F0D5F03C9FB5786882F68 -:1080A0004B5EFF5AF1950FF89AFE37FE1A2CBE165A -:1080B000FD4D1E8784AF5B872A8FDCAFFD6BC5D774 -:1080C00060E5D1BD6FA3FBBB507FDF17F8ACF1E7D4 -:1080D0009EFFD3E2D11A6F659A7D5E3A7C0E0487CB -:1080E00075FDD03748BCBAF79F5F345E5DF37F6A99 -:1080F000BCF2F1868CD701E0B0AEF220E5DBF2EB0A -:10810000DAD4D4DF111D97C9BEE3365EA83D321F15 -:10811000F2C77F27617EFAC89E391BECF540E33237 -:1081200099BF7DA472F606889F9E8B6460EDD9513D -:1081300031F4F36990575EC4DE738F7F84E3CB9391 -:10814000996DC57FF380AE47238BFB954752695BE2 -:1081500017E68D6CF495FAE2FB0831B64F833CC408 -:1081600082D47058744E37EF50E97B34F2F890F4B3 -:10817000CF40EBFD0FFF9841EA9F04F6CB25C9BF26 -:10818000BB7319E0B34D64F570C7E156017CD78D20 -:1081900060A7E52BF2F7029DEECE64F9C30ED5D8A9 -:1081A00000F913CFE2050F6452BA1D5D9A2DD8CFA6 -:1081B0005FCEC964FBAF19AB52EFBB16723EE87DD0 -:1081C0005F20E353F07798F75BBA8A7D7F8CC8E134 -:1081D000518B6CE74ED7BB9EF7A1476600E1389AFA -:1081E000E6DCFF02FEFEF225FDBF4F6AD9F77D28CF -:1081F000DF8DB29F7B4DF219978F33FEE8D24C7A18 -:108200007D43887EE73EE0A3097E766E4826455092 -:108210007F658D932B934E95E2FD5DC5180579CD55 -:1082200014E3DC9C393DFD38E9F06AADC79A074498 -:1082300011BED333576371C46961426641FCD013E8 -:10824000BA9BE50F191FE4F03AC499B5198946D8CD -:10825000F7CA749D36783BFEEFECFF06CF3B8E8865 -:108260003A9E6F77E16120FDD094C9F2C9B952748A -:108270009317F226AB8594DFB1DB98C9FEDED1A45B -:10828000CC64BD14CE336E675481EF5F2C9359FEDE -:108290008B90E8A885B6F927717E73BF972BB17ACA -:1082A00023F22693E7B67DEB46A5929F5F70399D3A -:1082B0009459E2A8735C12B95B01F95CB260A162E7 -:1082C000F8E1B981E32FE570B4A9D15153FCBD7831 -:1082D0004AAB87387E3A8E459BE0BB1FABEB05ACC3 -:1082E0001328DDC8F86EF5C683E2067ADDCBE56FAC -:1082F00021D0C036DE77395DDBF6F94603FC6DC967 -:10830000FC0D1D98C271F36E82F99027B79F6E81A4 -:108310007C48B74078FEE4C64AA86BE8E6F56D2FC6 -:10832000D3E78D80BF397928DFE3367E5807FAB965 -:108330004325785EE6775B3C09384F60F14B524F3E -:108340006C3CDF00F5C38FA89D13816FF29A6AEF32 -:108350004B953F7D89D3E18FFE48562A3FD0BA5ACC -:10836000FADCEAB748369454FD1757BAEC1A877B03 -:1083700098A7F30C4991C74CF261A27F3FED975C3F -:108380008FFFC295E75D722C759CF1579C7FDB12C5 -:1083900015EBD16E991E3C8762C163E12BD76478DF -:1083A0005AB64472E8DBD50B325C7E0FC3EB0D1E70 -:1083B000E35158C723FB7E3A11CF51B9EC834F8A62 -:1083C000AAF0FC0ED2A9809E785F32F0FA4683F3C1 -:1083D000EFBCBC41A2DBA783FDAC9752CAD51F39C5 -:1083E000FFBCB1E296A5087F4CD201FE13AB865DBF -:1083F0005F06FA65851282EFA69F88DD9B799B6DEB -:10840000FD49BFC605D7AFAB6EE9D76E2D5FE1A4BE -:108410005B9BCAFC02F33A268777521E9D85FCD5EA -:10842000BD7D269DFF482267CA56D69DC0DF995A5A -:10843000CC7F7F5F8CEE9849F5CD2991E549CCAF93 -:1084400030BDB16467A41952A7A7EAAF78A99BF61B -:10845000F30618DFFDB6BE7FFBE8E6A7713B9DFE85 -:10846000DE8C634485F7A375A9EDC1B7F50CFEF763 -:10847000C442A341BFDCB43175BFFF05CC4CE13928 -:10848000F517A92A557CF22A9DC1BB3A92FAFDAB99 -:10849000F44CF61CEC520A3C9F0B64703DA78F060F -:1084A0003DBD3A0DBC1F060208EF3BCDF7DF04755A -:1084B00020EFBBBE03FF4E80F1C5C100E3EF53FBCD -:1084C000562A7940A71641077E783B3B3401F86D68 -:1084D0004DEC049E7739C0F1FCA62F3225301DE407 -:1084E00065D1DC3C4A978E55242418E9F5FF9501A7 -:1084F000E637E4F2782DB57FEF82FDA3AFBE8BFEA9 -:10850000871C1E7DE34456020575E0A744731DD603 -:1085100019EEF3B1BA52129A6EF7E3BFCCE138B557 -:108520007F68F45E1A71F9417DFCBF7835CEBB3FA0 -:108530004387BA94239552E7B514C893FB33F0FBF5 -:10854000B86EB94837FF50FDC053FB87E6070EB43D -:10855000EE0D81A241F981E72A1FD9310DE4488D42 -:108560004F4AA57F2D3D7D94C7DFDDFC635DBFCA0B -:10857000F9E8FD44FF70DDB1DB09CF4DB54E782C35 -:1085800079793FD1E45B0378229D13ED7E299933FD -:108590007D003BCBF253E9E0DCEED213C07940879B -:1085A0003BB9BEF96DFD23013B1DDCEB3F25F2FD20 -:1085B000C1A3AC2E776C644D459ED1CB9FDFFA9C56 -:1085C000F8D2B233EE71FEB3F3A165E706E2C3DC85 -:1085D00034799C4970D099BEBF46D655C8D74F0A4A -:1085E00018AC4DF47970548B94F1BA51628C86F3C7 -:1085F0005FA7F6F9F0EF43995B3D89B15404DEDFE4 -:1086000077F504FB7A7EC5F974F5926CFCFCC4FB2B -:1086100062687E3ED69D49F81DB7378EE5CC83F65D -:10862000238745D0D0E4A6BA3512ACEF8D00DB77B6 -:10863000AEDEF83AFA8343E5F3D5B54EFB7F155F1E -:1086400047D2CF927BA601FFA4C3C36B1C0F4B2361 -:108650000BE7827EBE65A380FAF627300E5DC82D3B -:108660007218F5368931FB48348A0F6A424EC022AF -:10867000001FFFC0BF5B254754FB39B9DBB6DD3FA8 -:1086800017FC43B7BCACC8627C5C91C5ECC29BBE16 -:10869000E81F40DF5BFAF96DA1F6603EEDB231A054 -:1086A0005BDF094639B5D6B391C345FDB467F1FB2D -:1086B000C57C7DA4C7C56F62BCFAC780FF0A0DFDEB -:1086C000029F87EA7DA88B7EDC877554965C59FEF5 -:1086D0008EFBFD6572D4E13766661539FC77B71FEE -:1086E000F2377B91BAFF15595FACBDB836EBB3B129 -:1086F00017C3389FB9ED4652AE5BD8799013C73E89 -:108700009A9B4AAE239F100EB73CBFBFCFC7BE9BFC -:108710007C4D26EA9DDEFD547E02F6CB6EB980FDCF -:10872000147CF7E3917D3F9B0875BD27B6DF7F532F -:108730002A7ACED299DF44BAF31DF1BCB50182F595 -:10874000DF84CEF7846D7CEBBDA4BC0C10BF5CB69F -:10875000F24ADC4FBEB1F2EAD16B4AFBEE2BFAF4DF -:1087600017A2FFB014E66DE4FBE91D9EAA7DA9F6F1 -:10877000811CAF7DE3C44EFF7EE9C6F266D8526F1E -:10878000CAB8E64BD114F327F7351B53C7E31EE4F1 -:108790007A2AB9AF31E9BE86E2A37B9514289BD62D -:1087A000BBAFE9363F9F7DCDEF48CFCF67A2FCA797 -:1087B00086EF7B167FA9D11D5752F84ED1FD8F0948 -:1087C000F223D2F7805FBE957ABFF6387FEF771B32 -:1087D00087A8AF8E39F733E9E4EF7B9F91FCB5A909 -:1087E0003DA3400FFC6EEFC76FDD0FEBD9EB437C71 -:1087F000BBC789E812DF5FF8906F2DFBDCA132FD6B -:10880000FFBBBF1B817F37DB2D1F84C4AFBF8A3EF8 -:108810003FBE4F9C02DF596CDB9751956A9FB35E58 -:1088200017787CC919EF21DCBF5BCAF94DDFF774FB -:10883000AD3D1EFD26D757561CE07F67313BBB641C -:10884000C14215E23DB725E34D04372BFA65857B20 -:10885000E1FB17BFE4E7B9CCB59929CFC7FD86E3A3 -:1088600077A038C48A55CE38C19205FDDB9B938929 -:10887000D47559163FA79B6FA8F6A52D31B4BCD867 -:1088800040EB1CA10FCEBE2C25B55F8278C73212FB -:1088900052E0BA84D44EFC3145E5C9DD8B119E5FB0 -:1088A0005A7FFFF8E37B27DAFD98FF0F11FE85A1C1 -:1088B00000800000000000001F8B08000000000086 -:1088C000000BDD7D0B7854459670DDBEFD4AD24924 -:1088D0003A9DEEBC091D020818620742001FD02114 -:1088E0004482B2DA810041519A87184948A2E2CA0B -:1088F000FEBA438720467466C2AA8CBFE3B80D82D5 -:10890000EB286AA2D1418CD8A0F8D8D59DA0AE8B17 -:10891000B3E846C7415E4322A32BB3CB0CFF39A774 -:10892000AAD2F7DE744370C7FDF6FBE338D7BAB7B7 -:108930009EE77D4E9DAAB63915C63C8C7D5B73FBC8 -:108940005F4D628CFDABB579BCD3C1D859FC9B1E81 -:108950007DFECB3AC6221731F6E13A3B8BD8A01CFC -:1089600036558563D4FB53AA8931E8E85FE1C14AF3 -:10897000190B2D50C33B94C1F5B2705CACB7785E57 -:108980006A30463FF2B9A04665113BA3BFB3F06F12 -:10899000CD9C245DF922A753F4D39A182C62EC885D -:1089A0001CF7513EEE91307F2FFBBB488C7B247C23 -:1089B000EE716F7E04C61D131DE78666FDB8BD2CE3 -:1089C000B48AB9619C70A2734701C3FF8CD8264456 -:1089D000DBEF759A08AEEC48A689653076876C1B8C -:1089E00067BC0F057C8DF56BCC7E8B161FB7A77A05 -:1089F00069FEB25C33473F4F6F8A938FCB9CF981FE -:108A000064C68E6E4BF4133CA6258747C13C2BED04 -:108A10002CE480793EF8E4C59FB1118C2D13F8AF9A -:108A2000097C6D41781C35F5DF938CEBFAC0E4DCF2 -:108A30000143951DF45BB4F0BB2B85C3EFE8F673DF -:108A4000C3EFAE143ECF7955FAF9CD3F98A82B1B52 -:108A5000D7FBEF7F7BEF04ECF7DFFFF63B8BB6FF36 -:108A600005A77359243D5A5E52ABF8C34583C77DB1 -:108A700029D53A24B8BF6480E392D3F9D4BF5B65AB -:108A8000CD1D31D655EEB453FDF981728B07E0B997 -:108A9000FC6EC5A74017339CBC9FE566E6EF80F9E6 -:108AA00030B337BF1AE0EE696DBE2310A39FFF23DA -:108AB000E0FD8D23901A8BCFE4F363410FB2DE0209 -:108AC00073D012ABFEC25A3D7C7B19AB8A35FF1FB7 -:108AD0003B395F0E951EE5F8C6FA439DC7DD820E51 -:108AE000D36D91DF33155E9C807ECA2E605C437D22 -:108AF000E3B8F73BF5F8338E7FF4CF6A5D2C38BCD2 -:108B000026F83F1800FA89F93D99BE7FC0DA1B7735 -:108B1000137F27F9762018B62FFF09A09DAD9C7D05 -:108B2000C75BF09A25A614D0FA16070E5412BB9D07 -:108B300079B018F1FE6DD5833F2985A91DB5065B77 -:108B400093A1C1D1F58A2FE41D3CCE07B84E90A366 -:108B50001FA13CBD08FB639C6E67C2FF65333646B0 -:108B6000F5D7A3506177D9BC3B347CEB5EFBDD3A93 -:108B700056CCD853D6C0FA64783FFAEEAFD73094CB -:108B8000792C4CF3FEC2E2BB85E0CD18F1FDA16D5E -:108B90008EAD9BA05E6A0A97938CF9F203E335725F -:108BA000C2ECA4F250F1F3611CFC5CA89C92EB8C2B -:108BB000370E409EE6377786A34D4965ACCBEABDBC -:108BC00009D7D33F3BC1B90D5038D7EABF1AE1F3FB -:108BD000C10193A9A580BA35239DCEE343B0826B32 -:108BE0000AEE1F578AF2C7E24F80A954431B36157D -:108BF000E868862384FD957E38E719C4CF83B536AF -:108C0000AF8AFD4DF37EAA4279EE5536EF7AE8AF92 -:108C1000AC67C45E37F43F7F8EE264D07EE6EC51F1 -:108C20009E5E585FD25AE8270747B8B7AAC2CCD889 -:108C3000D3F89F97323E6180C55C45965F6C9B0977 -:108C4000F2609CA7CBE40050AF4C7BB1CD0EFDDEB3 -:108C5000D312C872A6C1D236DFD7661FC658468661 -:108C6000BF67BA8FB1D99BEFAFB25F01EB7C54B451 -:108C70000F3DD0E6CF63EC5553B04081EFCD9B77ED -:108C80005499015EEE4239FE2B6DFECB613D57DDFE -:108C9000B2630DF4BF25ED9FAACC38EFC572FC9EE0 -:108CA000AA8A9130FFCB65F95FEC385F77926C0F41 -:108CB000F39DC298654474FEE62C18DF25CB9F54C3 -:108CC000CD84F13F2E6FAE30C3F8C7D2FEBDAD6884 -:108CD0002C6393E7943BFD50EEDBFC1F5549809FCE -:108CE0002E06740AE53F6C3E4DF377AB26DE7FE837 -:108CF0008F34BFB2C5A171F85D617F6AAB8275AF79 -:108D0000B6F7BE85E4DAB43664CF4091A4703AB1C8 -:108D10005B9AFDB9003BCBAEF2482E4DA79DD36BBD -:108D20005E643CEAB181F218288FD794B378B96BAE -:108D30003D5B124BDE76BAB81EEE4A8CFDBD228D2D -:108D4000CB03801BE993D483CCBF33865E1997E6AF -:108D5000A07EF627B290DD15E5B76B8187A7005F8F -:108D6000323B9FA7EC6790FE48E3729F85AE75216A -:108D7000DFCCC12E60E9853E258474CD9A93C2A3D1 -:108D8000907658C43C0FF5876AA2F97A5465493544 -:108D9000F49791C8829DF0F4A4332A437B7FA723E4 -:108DA000DADF7B82EE2B0B03DBB1BFCACCEC92D6B1 -:108DB00082683F30EF0DF609BA799BA7B8F0FBDC6B -:108DC000925B8B34F02CE2EB003AA07630CC33D3BC -:108DD000810FBA7AC68DD804F3FB06E5AE27BAAE8A -:108DE000B29EB91606F5B6B8843CF1F2F69E0A2E8C -:108DF0007FFA6F4D0A6F43FEB4FB4A104FB2DD0D90 -:108E000002EE15F7CEF919D66BE8B1301BD45BD35F -:108E1000599EC9CEA1171B4E5FC6C213356573C4D8 -:108E20008A72A7E1F4347A5F71EF7B56E453ECC7A2 -:108E30000BEB5A93E0CFF421DC5A63E39FB1169A0F -:108E400047C3E934169AA87DCFE114EDDF4DDFCF9B -:108E5000B7AE687F2A0BA79FAB3F2B7D1F80BB5906 -:108E6000C0DD1A7B9E1B04FD20BC4D1AFA9A2FE828 -:108E70000DA49F1FE5E1A16B8AB6A1BC8F8EBB9E9E -:108E8000FAEF32031ED10EEC49F4A25D5C66E6F205 -:108E9000B3ACC7E50C2951FA907421F1DAE56A2EDA -:108EA000A7F5562BCE6D0583E775BF9C97D0A79984 -:108EB0008B83EA52CDFC243F40FF5DA2FFD229C440 -:108EC0003FBFE0F4027C7303F22FDA2DB80E5F642B -:108ED000FCDCE4C1F33F0DE4854FC02387FF5F391D -:108EE000C2A80724DC06C33FF73CF8CCA7EF653DDA -:108EF000FBACB8CE86387CFB802B85DA651E8CA453 -:108F000078A1DE19617774754C4CB80CF9628E89C2 -:108F1000A108C375A3BD5A36206FAF7C7706C8DBA6 -:108F2000CC8132C85B2FE26140FE46ECF668FD1F43 -:108F3000B9AE9CBD01E4B5DB06F82F223BD4CE349C -:108F4000FEC4EE346EBF4D09B29876CBDFB9927590 -:108F500072ECFFAEAD60BF85F599D3B8DE9FD21B32 -:108F600052102F92AF8D72EA13C18F1F8BE7FFBC97 -:108F70009C52CE23A7AA859CE2EFF783998FF53206 -:108F80003222E315D089CBDE9D380AFD99DBB2543D -:108F9000EF97C057F314DFB067A1DF1ABBF79E64E9 -:108FA0006F944E6A98DDEB40B883D17416F5FE9C41 -:108FB000042AE31FDA25A7DA154E87CC9B5A333EE5 -:108FC000BE1C92F3B82DCB4AE32DBB6F546A503BC5 -:108FD0003FA127AEB5459E658583F95C9661FEABE2 -:108FE0004DAAE6BB83EBB3B1C9FE6FD2D00E555884 -:108FF0002DCDC7602F3904DF19EDA587B16F0FFDA7 -:109000002F62233E3691739AD9660B33DE24847E19 -:109010006A660713FC1A313568E8C0EECAA3792CDA -:109020005E081F2F01A6B4BF71C9971A3E7A07E7E1 -:10903000437A213209F934C1C57476DE623590A7CE -:10904000A0DD9A69F3A19C013C111CF62730730244 -:109050008CFB363C116F95EAAD7B2D6EA403C5D712 -:109060004AD0DF2AFC5616417D73EDF424B25BD959 -:1090700099DB4756033C3C499C6EA11FBBE8C74E99 -:109080007422E4DEAFF3C76E43FD24E5A7C4033BBF -:10909000A3527FF2FB7EA53ACF09E5FD9E8B4A5A8B -:1090A00015BDFD83F650D47E4ABF6F16F0E3E4AAE7 -:1090B0008E880958A825E4997D27D4AF4CE26B1E11 -:1090C000E9E27A707F41484DC1FE46C13AE0D55B86 -:1090D00089C1A26647141F60E304117F1956783ACC -:1090E000387FE0739F8BF3D99C748E942DE9BC9CE0 -:1090F00091C2EB1BE9ED49F17D95C2F1BBA99CCB77 -:109100000963BDE92EDEDF6A7BA82A6384D6BE0A26 -:1091100030A44333E37696DF25E8A482C3ABE2DED6 -:10912000C5A9A837BFED999FCA8AA272F41E25E887 -:10913000F441FD7B2C819F52BCE35F5486FE883551 -:109140002DE87441BDF4A4D8FEF24D621EE9E84F4B -:1091500043BD9F087FC772FA62F2B317BAB83C4B9F -:10916000C9AA21798E30F4A29FC2FA434E0DFE5255 -:10917000A798747E83E57431B5BF70BBA1248EDDE2 -:1091800050AAB31BE4B846FBE1D37559347FD9FE2E -:1091900086AC8F2A99A6FE8DACF71EECEFC635B9CA -:1091A000BA38513CBBE32E011FB4134231E765D5F9 -:1091B000BDFF14FCC49076FC237CFCE8B849C06871 -:1091C000D171FD2EFFDD2EE2A7CB9D872F864702B2 -:1091D000BC5749DF90DC07BDE4DFEA207D5485F20F -:1091E0005AFA47C8F7CE54A4F1F20DAE491AFD2839 -:1091F000DA19E5D09F453CE3CF4E6EFFA51E94F6ED -:1092000062A25751A2FA66B0BE127AC62017CF6783 -:109210005F03BD86B4FADFD8EF53AEEF6B5716C6C7 -:10922000A18FD1FF237665D9E541753CCACD2A854A -:109230008D82C7E4997A3DDFEDE2FE47B72B49A75F -:10924000E7E72ED6D78B60BD49F84C1A92BFA2D55E -:10925000438A8AF28EF7D728E8A1E0D807562FC8AC -:10926000DFFF1276D017E9FEB791AE3624A614A31D -:109270007ED8FAA78A315B61DEFDEF5B7CDBB0BB99 -:109280005D9C3ECA17AD6935C37B4B87E2B4318D17 -:10929000DE5ADB79C90A58EF0792FEDD7C1D0DEE20 -:1092A0008875248C9BD3C0C7CFEBD8AB9835F22DF3 -:1092B000AF8ED73BE4B2E8F45EAF287F26FD0F16F1 -:1092C0006EA92CC5FA7EF326107D391D0AC583735D -:1092D0009A01004007393EDEBFC31756961745D79F -:1092E000D966AA2E42BDD09691E443BD30D61D3C2E -:1092F0008CF4DF70281241304D3ED46346FBAEC281 -:10930000EDFF0ADFCB757A55670ECAD5A4437C7E84 -:10931000ED067A070B59D0F9362E6F55F60E437CC1 -:10932000A0EC80F132D68F21BD24EB67B8849EC8B3 -:1093300060C117C8AE626D8CF0C5681D19EB47930C -:109340007D2FF119B5A3C64E403BAAF0818879194B -:10935000B4DBFD58ECF8BC45E81158074BF744D78F -:10936000118F2FA41E93F52C71FC6849EF4955B15C -:10937000ED53D000F4BD7C91FB3A5C77C3062BB370 -:109380002951F857B803E9389F9C8EAD0AC246D2DE -:10939000D706D7D34A2EACEFF65B985365F1E7DBDF -:1093A000B0F6C54B5668FC2DE89FF0B1D5CAEAB4BB -:1093B000FA54FA1317A773FD73A73B3002C76DDC8D -:1093C000B5D98AF8BD65FBE7566DBC7BD03A8608F7 -:1093D0002FA58EFB290DB5F630AEB37C9199F057D1 -:1093E000BFC11A4679D4B0B33362427BFA6EE6430A -:1093F0007E6FE8E87C2B07E092DBE09FA47AA3FD78 -:10940000E53684159C4F0610610FF979112BEA6738 -:10941000235DA33D8C76C95B099CDF4F943B420AD8 -:10942000C0EF8425D880F54E6427F942055178BFF6 -:10943000DD39EB1D05583AF9055B049F6DA66D59A2 -:1094400076A8D736CEEA433AAA700767A5037C5CB4 -:10945000E64017B64F7327FB5AA0ADD7C626907EBD -:109460001E221C261BE861F2DD9C4FFE263D45DADC -:109470007B13500E2D4D4F96F612C9A7B72C7C1DAD -:109480001B189FEF3E977F01D1ABD345E3E63444F1 -:1094900014B4F78DE346E9C9BFF842E81BEC3C2B56 -:1094A000CAF57A2167CA176D577EABA1837A3064FB -:1094B000905E72766E55D00F84EF2D956EAACF6CAC -:1094C000286776F2FD887AF87E9346AEC875C49018 -:1094D0002FB7217C1D877ADEE4F22542F427E76B63 -:1094E000C4E78FD2B91D77259805F4DE1A1AE385F3 -:1094F000FEDE1A9148FD497E37F2E78F049DE7D4DE -:109500006E57306EE04EE276A39C9FACF745FA8C26 -:10951000F5389FC9553D0487D5B566C29B9C4FA5BC -:10952000353012FDAF76D1DFBE859F597BA1FCD0CF -:10953000AF0E103DAE6E57FCE417B41FB0CEC7F8A7 -:109540005CE8972AC663AFE62609DBF2D201D22394 -:109550005777F138C1EAAE4EF37247944E0B8EED59 -:10956000BB11E96C75878D2528883FBE5E239D82DF -:109570007C21BA67212BED67817C0C913C65C1028F -:10958000F447A4FCDD27EC4BE6E0EF9F10F396FDDB -:1095900046E56602D17BC1B109FBEC00CFD53EC5E3 -:1095A00007A612D8DBBC1EF41F21F9CBD808F4CBD8 -:1095B00064FF46F8FD5AC8D518787E3E3D861E9158 -:1095C0007AB5E0F1190C9F127F660177D9EF9E748E -:1095D000BE9FB527DD4CFD6F28E7F1EB0D16AE3FC2 -:1095E00036B4D8C3C8D76FA75DF98E520C707259C4 -:1095F00023F8DC6F5AD680DFF7E7F079B499D68F7D -:1096000069E6FAEBF574C25F0AE3F289CBA3875EE1 -:10961000E4F2A421E4203FB12158B382F61FDC0913 -:109620003EB4F759F04DEBFCE4283D18F1EB7D61B9 -:10963000AFD50BDFAFEEE07C10855B5847B720E776 -:1096400008EFFB5C723F2258807005FFBD05E30CFC -:10965000D27F4F591C08257B07F36BBAF0DF27092F -:10966000FFDD32C5FE17F5DFEBD7FE5336965765A3 -:10967000BD4B4FC92FE027EAF8EA84F0DB0E08BCA7 -:10968000FF41D04B7D6907F143FD97CDC4478E2A3A -:109690002E4F1C87F47290B11F8BF53F40FD54266E -:1096A000755CA9A23FFCF78AB395C59FF7CD4AF335 -:1096B0003F4F45BC74AAB42FC5CE80555F06704D90 -:1096C000103010F52C6E1EF73EF1142002F9D2DC9A -:1096D0006C3D97FD7BBE7E59E42305F15D2F607DD7 -:1096E0006267C5D4DF613CF1A954DF2858FAF19DC7 -:1096F000F3FEE677D0FEC4F6E93ED4D3EED600D131 -:109700004FBF27C1877143B70A962DD0434BC71B64 -:109710002997E1BED833974C40B999E7E67C79ECBC -:1097200045752DC267FD3F3C3F0DBFD7879574B48B -:109730001B4F3CF5F77F46BD58B7BD093D0DD6FA26 -:10974000CCEB64879BC25BF9FBA752C9BE3CFAC451 -:10975000E66908F7D68E56FA7EEC89AD54DEF70F2F -:10976000CFEFF94FB43702293EAC77ECC5CD3FFAC5 -:109770004FA4F39A141FAEA32168E6FBB692BE8DE8 -:1097800072AB732FF1A9A497AB51EF229C6AB9FC7D -:1097900091F4FC85D8575A56E1684379F6C5A6E49A -:1097A000BA58F144BF582FC65C488ED52A144F6B67 -:1097B00003AAC1B8465B229B82CFA4A2883517C6F4 -:1097C00059B8B8731AD93DA1CF5762FD79BB12D8E9 -:1097D000268ABF61F016EC7F2275C6C683183C0C42 -:1097E0007E32F4BEFD2CD8D71F5B309643FDE9ECEA -:1097F000FF796DEFFE11E5688DBD77AFC71B7DDF8B -:1098000026E234509FF44ED99AD8F1D02AB743D0EB -:109810002DD79B395DD5795E921336DF288D5D3A61 -:10982000EC60F32610432CA7AEE74A5CC75563965D -:109830004E24BAC0381FEA9F9083FA5F8D714AE0C8 -:10984000B3456ECE4F194EE6BE14C6AF3433B703E0 -:109850009F8C7D642139B283FA05FB83EC2AEFEB00 -:109860000B77A03DB2C512CC9E84FDB409BDB59D59 -:10987000CF1BDA3B71BF14FA735E3A81FAE9B1B8D3 -:10988000A87D88B79FB5BD4589CE1728351FF51629 -:10989000F657EA403D13AA25FC78ADB4AE635825CF -:1098A0009BD65D7CC3F828FF1AE33B28CF701FF8D6 -:1098B0004E77F96DEE49D1A78CFB18E1F9327E871E -:1098C000757FEBF6D3933D95AED32BF1EC957D0BE5 -:1098D0004F72FDFBEAE7246F1A918E71FCE0973A14 -:1098E000FDBB5CD2F12B9F131D2FDFC5F56FE3AEDF -:1098F000122BD2EDF1757EF65B30401BC53EEB16A8 -:10990000A57725C5795E497062FCEEA4D037F50FC6 -:109910007C7E18F74747ECCA26BFFEE42B09B5D872 -:10992000CF7E9389E0B97FDBC55B5B15ED3CB93F2A -:10993000007630916A23D8A9DC0E5EB119FDB3D54B -:1099400075CC87FCDF68A09FC65D07885EA41D5CA0 -:10995000F0F8DC15DCFE4CF025A0FF3693DBA30C01 -:10996000EC51AC9F3633DC6225FA2A2943FADAB788 -:1099700070CF46D4E38D339913FBDF32CCFF4A2EF0 -:10998000AD476198CFB2C5D23EC30CEDB7547A9DB6 -:10999000004980DB76B27BD918ABD0732BC85E6EE2 -:1099A000CCBADE477C669407AFB490DDD5E84DA411 -:1099B000F95CBD4BB98DDB230EC6E7AF107D5E1D94 -:1099C000BE2C8CFBCABF17F093703C69E9B911E15A -:1099D00071F2252044F87EF54C4EAF69333B488E3A -:1099E000BCFDCA2CD2E3922E935FB6913E77999D2F -:1099F0008A8FF4DA3C9B16AFED16AE97D2849E297F -:109A00007C80E33722F82922F440C46DD5C75B9CE3 -:109A1000A162D4BBBF17F8273182F25DC893D52B62 -:109A200022C44F0D3B797F6E9BBFE4760DFDBA2BB0 -:109A3000B85E94717FDC07A88E212F7EE7E6FAB12D -:109A4000E0F1659BD15EBE0AF08E2A25678C90A35B -:109A5000401708B79CBA00D1C155EE9B7D6A01ED55 -:109A60001F909FD8DF6265B1E23C47851CF5A407D3 -:109A70004A31DEECC94C263BC7A3969B12B05D89E8 -:109A8000E2DBE6A5FD4DB2F3FA3DD9BE6D3A7E0F9D -:109A9000949AA0DE918C648EE7F0AFCD73C7231F3C -:109AA0007AA59FAEB3FB06FBDBDC6E9CD31E2A4679 -:109AB0003F44EE5F4838845B126BB5F2B34FC02170 -:109AC0003C96C7F3C1BE7750FCDA09E3A05FBFED57 -:109AD000B227B85FDF4AE31F74F3784625AC0FED79 -:109AE000364F61600DD7A7C9BE58F0B853E079DF93 -:109AF000C21B4BD0AF6CAC71F890DF1E7A55594643 -:109B0000F48CC141F4B7832B080F0CF080FCC082A9 -:109B1000DC2F6D6C0E8463D37B35F15F23F29F42A3 -:109B2000F44EF176A0F730A777AEFFA4DF8FF2B145 -:109B30003AC67EA8942F8DD6DED148C7921F1AA7A9 -:109B4000F58E46B80D559E9CB400FF23FF001C9077 -:109B50007F24BF24EFE67CB2A9C55B8EDF37553288 -:109B600067AB461F19FD259C27FA9D52AE8F7507DE -:109B70000A3D1807304536621E8594C38DBBEF1B26 -:109B80001D2BCF4DCA61BB99CB377B3829DCAAA1ED -:109B90002FDCDB4B9E404FCADB495A1B3B2E52E663 -:109BA000718878FDD0F222325097A3BCD996144622 -:109BB0007925E344C67EC778145D3C46FA2DB8BFCC -:109BC00080F5E77A38BD547AB89CB85E3CE5FC2550 -:109BD000FD7B4DC1CF319F289EFE92EDFE52712B31 -:109BE000398ED4A346FCCBFD115C4F7551FC7AED48 -:109BF0007BB97C32D2E372C1275E5C2BD47B4EEC06 -:109C0000670DC62FEF87D59A75F96F6DA6CEBA5836 -:109C1000F12FB9BFC11E320F29BF6EEF3A9E47F533 -:109C20009CC8A7658BCDBA7C2A87CFDB82F1D3197C -:109C3000F6821295C6E571ACE469EC6BD4C3C5BB82 -:109C4000DAC7609E9227A0DF1FC9AC4DD4ED3F64F8 -:109C5000075DBA726E5D8EAEFEB0E611BAEFC3D785 -:109C60008ED37D2F084DD0950BDB2ED5D51FD53E3D -:109C7000439F8FFBC855BAFA63C37375E54D2D1D1D -:109C8000B588978B9FBA4ED76E86D9692E01B88E4C -:109C9000EF58A6CF1333C033F5CF6A4C3A7CD2537A -:109CA00040789D61D6E70B5FB24B0F0F4C8BC3FE24 -:109CB0008A99E86FDA9109E7CA632D66E66F7A65DB -:109CC000FB82C1F4C0ECBDBE400C3F53D2B92C1B8B -:109CD000F7B1A4FCB850FA8B374F497FF1BEC78368 -:109CE000DBBB1EB90FC3E16219804BADEF5C70B1F5 -:109CF0009C0F2E0CE092FCFDE162EC6F7D5223E59F -:109D0000037F84058D7DDC2BF84896178452B91E9D -:109D10000ACC3B8F1DCDE3C0411BDF9F347EB7676C -:109D200070B9361AE640F019225F7F26F070281EBF -:109D30005FAFFD7A7F26CAEF2A467EB3B3B9E56BE3 -:109D4000D45B4BCC1186F4FF9058CF169117FAC80C -:109D50003A27F5F3A8D87F7C6C9D97DE3FBE6E0C4A -:109D60003DC3EB7CF47EDBBA29F4DC0EF61C3E9F8F -:109D70005C5745CFA7D605A8DED3EB6AE9B9735D7A -:109D800090CF6B10BE5819D93981F498F1D2A52122 -:109D9000754878626A5E4C7D19B71F75F139F3C852 -:109DA000D71E5A34FB4D0DFF666524BB0F630EE3CF -:109DB000643619F733CFD7FEBB75B5B3DF1C3574E6 -:109DC0003E92F4C4CEA48F8EC5D741913FF9BB8794 -:109DD000CF6E0A15C5875794CE62C3A9C67E3207D7 -:109DE0009DF562B41934ED0F1AF8B826981AD36E9F -:109DF000A811F4596BE3FBEF8B0CFCFD92F8FE52BB -:109E000006D7779FC49133576798A43F6FA1FDC0D1 -:109E1000417CF7932B62C1777F8657C7C78B820639 -:109E2000BC1AFAF9C4D23ECC1783CFCED78F5C9F31 -:109E3000B1DDC3195C6EBDF8FF297F7E725332F924 -:109E40000F08378F66FD9FDC94541B2B2EF35A06A8 -:109E5000DF0705EB9C15B8C8D40F59D1561CC3BCFD -:109E60007C9F77A413E343320F203EBD9A298E4492 -:109E7000305407C315F0E1B51642FFE68171226642 -:109E80001CC7678AEA59CCA9619A731EEA607A8076 -:109E9000F6212BE5EFF4E6D0BEFF05D213531F1BCE -:109EA00075AE7DBA41ED2F50CEECF881E58CE473B0 -:109EB00076E6C151B1F4642D8E7D29AC63CBD4FB21 -:109EC00049CE9CA7DF0B855FADDA4BFBD64386DF1F -:109ED0002EF790E2526BED29C50CFCBAEF12F83365 -:109EE0003483F1F3589F2584D1CE3F20E6098EFFBD -:109EF00025DCAF6E9E8CCF7FCE0A7C9801ED975902 -:109F0000B99F383EC3FF119613C53EB035D3BA1181 -:109F10009FCCC9D7718958C74693371FD7F1A5E29F -:109F20001B8B7E8AD314F6E1338545C6F3BCBB7028 -:109F300010FDB3F48B13BDE8DF268E66AC87E2E13B -:109F4000BE048C9B5993FAFF7124F2FBEB268C30F4 -:109F5000B2E79D7CBECF3F924BFB2AE801A17C2853 -:109F6000C6F730F54D688743FB6B59F018CEEFA864 -:109F7000D31E32C1BC8A677FE1C27CA8E7BB67D031 -:109F80003E42E4293564C5730B3D27FEEE6AE8EFD7 -:109F9000921E0BC59B2F612AC9F37A337B00F926E9 -:109FA0001E3C8FFF75ECFCAE2B32B9DC93795BC69F -:109FB000EF79E2FBF13879C48E4CAE17647E8C45A4 -:109FC000E6C778FCE7CC8FB118F2632CE600C37DBE -:109FD00060CB407ECC6246F931D08F363FE6F88CBC -:109FE000D8F3708B79584E27C5E93785DE1F1F716E -:109FF000EE755A4E27E8F2ACA3ED1DF43E5E7ECE20 -:10A000007831FEF138F9496307FACF66A1746D3BE8 -:10A010002F9FF7C03879F4DD62C8F3897EE7F93DF8 -:10A020001BD2389DECCD72BA9742D74B59AF05E998 -:10A030007489C36DC1F85180F93AE9DC8ED9D2DF59 -:10A040002BF96E04D6337F8176B609242DDAD94BED -:10A05000D65ABEE8D5C8A96ABFBECCB0BE46EE6E21 -:10A06000CA6234DFC4716328AFEF14F3A63ACF217C -:10A070003717DB55BB59B3DE4371EC865B05FC0E2D -:10A0800065C786DF7599DCEE88771EE2D6CC14DDD5 -:10A0900039BDDB9DE7969708DF60BAB67F231EDCEB -:10A0A000F4FD7C70F6E0E61AC6D1CA159EBFFF1714 -:10A0B00087779A3857C5CF05580C79E89BB2B8FC1A -:10A0C0008BCE9BE7A17FE40CDC9E8972D1EC1DADA9 -:10A0D0003D07D065F6274D80E72121778C70D99D0B -:10A0E000C9ED37E3BABB443E7DA2CA9A3B35F0378F -:10A0F000AEF73941E7B2FE060BDFBF82BF801DF02D -:10A100007203E372EFE1CC11222F3CCD8CF270315F -:10A11000EF82DDE07C8BF693249C07C14FC0DD0805 -:10A12000C700F3DE8879DBE783674796FF6184CB5E -:10A13000D203895694FF37DAFBF7A38FDADB63FA91 -:10A1400078243C3F778C3CBC9DE1FEDB9897F7C1BF -:10A1500033658A8FE751B09964EF28A15CF5ECC5AF -:10A1600043B77736A604C7207F7C29F2AEA53EDA36 -:10A1700098736C34E6CF7B5DE5ABB23C1477F7A700 -:10A18000231DBD66E374F408F404E5A63D63B7A29D -:10A190009E79302B5887F5641E1FF3F78FC63C84D9 -:10A1A0000B8513FC59908ECE07A7273219E1E75093 -:10A1B0004A6C3AF94D1C3A31F2079D2F2BFDE1F81C -:10A1C00043C253EE5BC8F9D565713A944F093763C2 -:10A1D000FE505D9649D4E3F9880F660508CE7DC32D -:10A1E000BE3E9C00733F64C8F792CF93421E9D6FA2 -:10A1F000FD12DE3F941C3E94187B7EA6ACA1E1E7E5 -:10A20000879A5FBD9C5F71ECF965660D0D7E01D686 -:10A21000FF59DA0FA0C700CFF58867B6A19FE4E326 -:10A220002157EC79960D799E41CB0FA16F257DB317 -:10A23000D0D23ADAAFCF4A8CB95FBF00FC27F47FA7 -:10A240008CFBF6727F1EE407ADB7C6DE7F633AE291 -:10A250007DA65877068BA4E17EE61E1BC5FF8DEB1D -:10A26000BF42D011C0AB82E035A79FE2188746C736 -:10A27000960B15C6FA6D7C9C78E70BAECE528674B1 -:10A28000BE80950629FE576E774454C0C36D021FE9 -:10A29000D6DC553EB40FCBB3DE3B88EB04F89F18F9 -:10A2A00080A7269FEFD8BA779C232DF1E576BDFADB -:10A2B0004259738CF5043DC11BB3347E50FD53EFFE -:10A2C0003A476AF0359EF59AF8F9E87E93CE2FCE9C -:10A2D0006417E41757639F988FE00A903E40FD8013 -:10A2E0007A67E3EEA925884CB433309FA73F3991B4 -:10A2F000E4686BCEA563BC1A7886B2A47DA9C6B10A -:10A300001BFF7BF9FF51BB49D1D9AFD1FECDF45E24 -:10A31000E2A7DCF18F31F111F4F8EF213DE6F26FA5 -:10A32000C4A7117EA17B2F4FA3F30508BFE9D1FE7F -:10A3300006F01F07CF1D1E7F3BF6D720CED1283257 -:10A340008F6F205E61761EB647E13D54BC248A784B -:10A350001AD80D8F211D586D821F9983CE874BBB54 -:10A360008519EC1B3686FBB73764BDF7478CF76C55 -:10A370004CE12CBBF14709E4072E519C565C37D8C1 -:10A380001F9FFE1CEA0759E4D3BBC83F9476469250 -:10A390007A3669E8F394FEF2F9F2A9F7A13D06F3E3 -:10A3A000996172D0FEE63E585F36C88D1956FE2C74 -:10A3B0009F055405FDCD50F3BA7B615EDFB2338952 -:10A3C00057C0F3A78CC361CD81DFB9D01F9D61B6A3 -:10A3D0001CD3CA2D63BCE38DAC6437E151C43BBED2 -:10A3E00065737E7D31C2E57217C1A5F8959999DA3A -:10A3F00078CB40BC43AC635E682997A7063927E554 -:10A4000099C9CEEF11617EE6756650DC88C33DA424 -:10A41000303394AF90657452A07CB9409282ED6164 -:10A42000DD5788275B16CC423983693C381E787F1C -:10A4300059F86C9DEAF3E273BA1230F3798479DE4D -:10A44000216BCEC3FA267BAFCACFE7C10C32B0BDB9 -:10A450001C8F9793457943CDA91B6FF20E8E633005 -:10A460004732D9BD5631AFA34E47C804EF6D8EC8F1 -:10A4700051CA4F154F63BCE33B532884F9D977AADF -:10A48000619A6F128B447A303E61071098288EF0E3 -:10A4900007E403F06E1A719E09CE5391BB18E6399A -:10A4A000FA152CA71BF491C7B186F29E3D01B3416A -:10A4B0000F0515E49BCC5AE37BBD7EB2B343741EFB -:10A4C000488904B2CEA69F3F5E638CD35866701451 -:10A4D000F7DFC2EDDE8F13793B4917E9D95CFF3610 -:10A4E000BAAC8CF25D32EC76B4DB4F261FC12397F9 -:10A4F000A837DA506FD82D7E8287D41FABBB6E652C -:10A50000889FC65DD50CE5E86F14BEFF19BA41A15E -:10A510003C05796F436D117B1F5AB2A6EC1134CE06 -:10A52000FC7782373440B9E63D363E02F54AA6074D -:10A530002AF17E96D6F1CCB71ECAAD09C1675FC2BB -:10A54000F51C50A99F26712E963167FD4EE87FEBD2 -:10A5500075C37C9B704915FD1B310FA8FF3EE6C4F7 -:10A56000BC9141747A06D607F87F02CB30EFA6156E -:10A57000C15FDC01F5B3DF633EAA23BEA32F82785F -:10A5800053043DE0FBE9F0BE49D04D61B7C2F7EF9F -:10A59000DD36CA9F600733895FE6DBF9384DDDE5BC -:10A5A000D74E827915F64C24321E09F531BF093396 -:10A5B0000C787E1D237FD9587F24D6F752B48AE7C2 -:10A5C000D5E458E9FE2326E4DC6403BF5D16A57FCD -:10A5D000FA5E22CA4D421FE9F804FB01FFDC5FC6A8 -:10A5E000B7F3A99D9BF3838FC93FCEB797B2E81FFE -:10A5F000F65B111D87E4EF4CF16DFFA2D994D73DB6 -:10A60000D91CD98B7C7D9978968827F2B51DE0B846 -:10A61000D0DCBCDF03EB495BCB7C2D38CA626F2BEF -:10A62000F657CA022AC2B9CC795F2BCE6FEAE20391 -:10A63000E9485F4F6617123D5D6EF715260089B435 -:10A640004EF1F99CF0AA76B14270995F6B0F63FEF0 -:10A65000DAFC81FB7A82050B806F160615718E3E3F -:10A6600058B058138F95797D0B6CE047C7DA77CED9 -:10A67000E67A5CB66F12E74EE4F76DD90E9E5F99ED -:10A680007D655336E557F07C67E0FBDBB22745E597 -:10A69000088C4BF928F398DF82EB9A27F856F2FDE5 -:10A6A0007CFFED64B7CE0FE8EDCFDF281CDFA145BE -:10A6B0000AD9830B6BCF6D9FB664CBFDDE3C27C5FB -:10A6C000B799D4479CAEA4DC9E8B7A1CE56D15E847 -:10A6D0006D8D7DBCF8CE3369D42EF3C9D56787471D -:10A6E000CFB93419CEB9348A732E4DBB5A2C1948C0 -:10A6F000EFE29C4B53F7E71BB5F97D124E83CFB9C0 -:10A70000F4535EE3026B782F9EFF59B00AD608F52A -:10A71000DF10E722DEC4731113A274947C5D4284BF -:10A72000E7CDF9297F2FCF99E4C37C9336D304CAB0 -:10A73000176A4B49F669F37336B53457623D99276A -:10A7400024CFB52C88B31FFC9C906B5B149EAF1577 -:10A750005A6427787B5476507B4EDF5318A03CB95F -:10A76000A66C2F8DB345C41130AF74223CC3608EEC -:10A77000717CF1F646F900FD6DC0FE2A0A7D941F3A -:10A780005391CAF3CC3CE98192DB8AA2FDD674F3E3 -:10A79000BCBC9AC0D76FF1FCDAEA5284A7519E4B39 -:10A7A000FA32CA75A0BF7D488FDF99B8DE89CAF733 -:10A7B000C0A29BA0BFBEF7AD943FC7EEF62B1668B4 -:10A7C000F7E2BB4E1F9EA7DB501EA8AEA4EF663A71 -:10A7D000EF9751CB2236F85EFA9E751BE6EDD5B1A8 -:10A7E000762BF65767D05BAB1C6F5A913F576DB70E -:10A7F00044E99161BEA1AF10055DC3CE41710F92D6 -:10A800003F522E19E9988DD4CB9F12296F412E709B -:10A810007DB598EB39F6A482F19FBEE423AAF09FA0 -:10A8200049DE4D9242CA20E72775BF4DF6CA3490E3 -:10A830000FE89F29582EA6FA5406F93906F3472F38 -:10A840006389445F83EC0431AFD28179737B48CA5A -:10A85000C5F2298CE17D06122F300ED1B3DCAF9BFF -:10A8600084F7F0C0F33231EE9D267F5144413CB174 -:10A87000B0A910ED8820D93B46FBA7CCDE9C6487AD -:10A88000F54D61ED241727EF7F93E424E0F92CCAFE -:10A8900099D798C4B3CF8E72A61213FF547CEAF1F5 -:10A8A00034CBF19019E1342BCB888F9019E13ADB4E -:10A8B0003B084F744EC01F074F7E2947985E8E1489 -:10A8C000B033FC5CF27D6FDD817EEFF9EC900F3DE3 -:10A8D000C1AC1C929F7A7B245E5E5D418EE382F266 -:10A8E000EAFA2CDC4FB894F5AEDCA90CA68B93FBEE -:10A8F000D7AA591AFA9174B95BE4D92BAF8BBCDD96 -:10A90000D264D27351BDC8F15F264A97225D69F0C7 -:10A910007FC5AE84880AF45622DA5F8AF43021AA11 -:10A9200017232687D70AE36E547C6D6A0CBC67B880 -:10A93000BCA4FF269AFC2AD953CC978E7806BC4F2C -:10A9400043784DB177B49A619E87ADBE9FA3BF5245 -:10A95000CEBC84F772837EA970D498913F2BEC46CD -:10A96000FCFA09EF95CE41EF4DDF07EFC311EF522F -:10A970007F0CC1FE04BC2FCC89B15F180FEFC1EF73 -:10A98000897723BE25DF7726382B1C18D7ADE3F94E -:10A99000C413DF1FD98AE58CD50574CEA533CDF756 -:10A9A000067D6FE6DF4B7BFC2ADE9F58B806BE4370 -:10A9B000B9B3205081E5A6B50AC9CB491F055BB1E3 -:10A9C0003CF26EFEBD647DF31B780F595388B7DFF0 -:10A9D0007D7423DD2711DE28DA97B75760B9A98D7A -:10A9E000B7FF2AD91E42FFBAEC60B815DF8F7D8011 -:10A9F000CF43DA75D3059D752A2FBC41EDDA79BBBB -:10AA00009BDFB227927C1276DA34B1CEE98FF175F2 -:10AA1000BA7F7B559517E8F0A6FE9005E9E0B0A94E -:10AA2000A18CE4651C7FAB5C69CFC3E72C900B8CD9 -:10AA3000F00DF43982E79B6E83211ECBE17686CC44 -:10AA4000D3C47CF16A0DBE1ECBE17127592FC3C55B -:10AA5000785EF1A3C964B7CA3CD2C8CF98827100AE -:10AA60005C23E9D73879A5B30A9B495FCE1A2EF348 -:10AA7000497BCDCB60DC92B37FB832967FFD8418E2 -:10AA8000F788C87F97EFEBC20526F43F3A9178E844 -:10AA90001EB3DAF7D12EE94C63BA7B423A0B78B990 -:10AAA000F3D19A1FB7E5017C4DCDE6100AFD7C85F8 -:10AAB000EE3DB9A68745525306CF7F96994578DE7D -:10AAC000039FFFCA56EBB64D1A3B7DBE141B978FF2 -:10AAD000223D5223F024E5C57C812FE0EFDDC8DF65 -:10AAE0000BECCD64172E12F2FD1616A638C52D06F6 -:10AAF000FEAE777CF399C984F1303D1FAF86E970D3 -:10AB0000BDD0FFF82700FFBA47929DA8E75777E826 -:10AB1000EBD53DF2FE416E5FE9F9BC4EF27958CFBC -:10AB2000E76038703EFFD938DA7F91E7FA12ECFD22 -:10AB30009F855874BD03FADDC07F0978CE6F0CFA8B -:10AB40002D269E5F28CA72DC53ED5C0F87400F0BE9 -:10AB50003F8744EDA943B3C3480F25827F251F9744 -:10AB6000087D3E485F5719FD9887883F268A928462 -:10AB7000BBD4CFD00FE967796E10F4F2FB7EF2EF11 -:10AB8000C1FFC4798ED3F3CB2605E47341D45F01B2 -:10AB9000BC7D8D7803796CE7718A7686F22CAEDD08 -:10ABA000EF5813D3EE074947FB0083EDFD88CE8EA7 -:10ABB00037E22B9E5D3F80AF04B09792D08F67C481 -:10ABC0001FFF88CF21E475809C76E4C690D3D67DA4 -:10ABD000BC5EFFD6048A17C8F8B8E437258FDBD5EA -:10ABE000EF66F95DB9B8FF20FA3F74EB2CDAAFFEDF -:10ABF00086F969BF1AF38D7263E44BE07EF5064D6A -:10AC00009CF4505AECB8F5F05CCEEF4B72F9BAC632 -:10AC10007BFC5E1CEF8895C7C58F248A670ADF57C7 -:10AC2000B83897C7B9978867B9781E1179D8475C43 -:10AC3000FA78BAAC5721C6F9729DDDBE412357BCE4 -:10AC40003FB335A3BEF2148ABCF5359C5EFB5E496A -:10AC5000DBAABDAFED9ADCF22508474FA1DF9A8D44 -:10AC6000719657B85E6834F75A31BFE41A77702A84 -:10AC70007E6FF432FF0BD88FB7D73A0FE0DC27F6A0 -:10AC8000E9FB2CDCDFE84BE04F39AF6B72AB97E0B0 -:10AC90007AFB6EED25F93050AEEE25FEBF2637402B -:10ACA000E3F6CD97DF45F9C7BCCC847F582EF882F8 -:10ACB000E2BC31E2BA83E3B8FAFB679AACB1F7972A -:10ACC000595EB22E3E7B43378F1BDE68671B73E1F4 -:10ACD000FB92EE4CF21FEA5242A39D14C7FBEFC554 -:10ACE0005DFB86F5D0BA3695F7E73F5A4AFBB814B4 -:10ACF000F759DDFD36C9B9D5924FBAF47C522FF021 -:10AD00007BBEFD0F635C7C08FCB32616FFBC8CFA8F -:10AD1000C91285FF6D220FA9526DA8C0B8D0A91520 -:10AD20008CCEBFDEF6AE4AF474DBB30ADD0721ED4C -:10AD3000B3D502BEF1D683E707BC1AF981E707BC99 -:10AD40001AFF0CCF0F68CB787E405B1FCF0F68BF18 -:10AD5000E3F901ED773C3FA02D97B0E5AD18676BA7 -:10AD60006A63CEB0979F27D0B6C7F304DA329E2726 -:10AD7000D0B6C7F304DAF229C6E178EA3195E2F4F5 -:10AD800078AE40DBFEE677276621DD7425F03C32A5 -:10AD900016F2F714015C5608B8E079036D7FC753CB -:10ADA000AE7C8701DDADE85939079F97EC5AA5EBDA -:10ADB000AF5E6D203A64ED5CEE36C33F243FD52292 -:10ADC00015E7F1ED2E85A517E0FDE106FDD9BD796A -:10ADD000238A9E5BC2FAF7F54C13AF2D181C977FA0 -:10ADE0003957E421E6B01C6D9C264A070E5F04D754 -:10ADF000FF91EA8B450725ECA2548ACFBCA362ECF5 -:10AE0000817DC59AB75CAE68E2F70678D8B2F4F4F3 -:10AE100090E0D5D343D2183D3D24FBF4F4903A455D -:10AE20004F0F69FE71E7846F7A959E3E8CF09D020C -:10AE3000FF207C27E0CD9018578275629CF72F0584 -:10AE4000DF2F72C5BE8780EFB7ECF20A87973ED737 -:10AE5000D8CBA2F649E93BCDB4496B8C7B4A384A42 -:10AE60003B41C62F2731EEA7DBF1BC6521DA01DCBF -:10AE70007F43FD8F7C7ED8CAFD36A420949337B1E2 -:10AE800020C9A39B0CFAFF66C74356D4FF83D60B99 -:10AE90001617DE1B685C2FDA514C134F32EA7FA580 -:10AEA0005B892417E372BBA55C0E9E2563C7AF0CBC -:10AEB000455EFCDEE1B7E579681C662FD3C57B6390 -:10AEC000DA73721E122E727C1B6B56B3909EC718DB -:10AED000ED2FBDBF2CFD6BEA54138F96FEB1F44FDE -:10AEE0008C7056871790DD35D129FDE29EEBF1BDC0 -:10AEF000F4878D7EE8F9F6A5E68594DE9F1744ED8C -:10AF0000C92BC4739E8817C1B27EFB6FD0F872C57F -:10AF10003B0CC79BBBFB220FD2CB46A59919E6770A -:10AF2000F055E84735F5A7F3F84B50B75FF5B6D2C3 -:10AF30004BF35EC0FCF7E0B351C4D31ABBDEA67D71 -:10AF4000D4C62E1E2F60BBF47831DAFBAB5887B520 -:10AF500040196CEF37B01EEACF68DF0FA293F3E819 -:10AF6000F18E3C79DF16CF1760422ED50978C5F3F4 -:10AF70000BCC08E0A9D1FB3B811FE6E54D8AE6D169 -:10AF800066B8C08F51310FC36B8D9527C5F0721510 -:10AF9000B049973B6A484E2C6F1B1497B0123FB5CF -:10AFA0009F7B7DD20EB81F7C377C96E67979DC20BA -:10AFB00071CE3B7EFC5CDA93AF3DFFD164E5E70EDA -:10AFC00059B3FE7CFEDA3C933C3FA50E65FD83E160 -:10AFD000FAFDF2F265FE01C0EF2E2DFCE43E825C2C -:10AFE000CFEF27F53C89F1433579A61DFD5AAF2BEC -:10AFF000D882F5871DEC3DACA03C7378293FE4E492 -:10B00000AEA31FA3FF2ED7C758EF16BCDFB66E97AF -:10B010004AFE60DDAE37C82E8AEFEFB50FDCA32005 -:10B02000F6377E126B5E32AFB9522D4AEDD5D8E9B4 -:10B030004B851F307978E0216C57FA615E0ACED7D4 -:10B0400032A283EEC5EABF83DBC16E95CD44F881A1 -:10B05000DEE37ADF61A67D077752484D413B6E29DA -:10B06000E3F7D0F99A7D482AEAB0228AD366DCA1B8 -:10B0700006D0FEFE74CDF2343CAF9C91BC22AD10E4 -:10B080009ED36DFC5E9A0CC514E0E74E97A5E13D9A -:10B090002037D8F8BE7CC15F27450A81DF5EB7F252 -:10B0A000FB46DD4941BABFA03F4DA5F91C5B074BEC -:10B0B0001B85FB1EDF4CC47B0772CE3826E07CB2BA -:10B0C000C5BD163FCAE3F7DC1C7FF6BB89E8AFAA13 -:10B0D000671D74BE5DD29FBB30B6BFB242C0A3D164 -:10B0E000C3F3DE4F0AFBF190D86F9579F06BC43E45 -:10B0F000E0A1D103F78379302FA431C19FBA10E3C7 -:10B10000110754CA6BFFC6E94F4D23BB99E7B3AF94 -:10B1100011F6C34991F7B966F68C4CF42FE2E54B72 -:10B120001FC8E376EF0F755FA5CC3F8D0B873433D7 -:10B13000335F42F72E05CE55EFD53FAB31E1795A5B -:10B140007C8F9737DF97A7E8F2E21B312F1E5EADA9 -:10B1500079A53C939D235FBA11EF23D7E4D7A09F35 -:10B1600086EB6BC4FBC8E99ED213744F07F683F7D6 -:10B17000869DEFDEC815621E8D984F9EAE7DCFF97D -:10B1800039DABF9BBE3F2DE0F6F43BA6AA6D31E64F -:10B1900099378CCBA7711E7300F7252F8EF07B3F5C -:10B1A000E3D593E7B8E3CDAB6B46EF8D386FCCCFEB -:10B1B0008C355ECA304E2772BE5DAEDE9501BE9FF5 -:10B1C00037BA3A595376F6E7CFD5C8D7D9023F5D9B -:10B1D00057F5E6D37D00B3B9FF1A0FCF65E66605D4 -:10B1E000E190E00A06D11E91F715E37DC63CCF231E -:10B1F000744E7C47E1ACEACE1F0C86B395BECBFE05 -:10B20000A4DC39FA884A72E7E807821F99DFA19423 -:10B21000A1BEE27C7594F1B8EED176FEFB1FCB8225 -:10B22000A02B407E2CDD5E3F070F1FAFDC3171236A -:10B230008A7F7C7F37C89FA5598C4D83E7B20DFA72 -:10B24000FDB16FD903A4E7563C60D467012BCAD97E -:10B25000950FE9EBD7B107BE46FBA0CE60F76608B5 -:10B26000BD6BB47F670C13F66F192BBB90734E8FB9 -:10B2700030FFEC61A4FFF97EDB24B19F6EACFFBC14 -:10B2800097D3C36D3BFE60C59F048AD7EF319017FB -:10B2900023A1DF13EB9CF45C32CC5F330CDA350D69 -:10B2A0000B2EC471FA0E70389F6A38B592E2D2B58F -:10B2B000DC0EB0E1252BF09FB6EBEDE447DF8BF71A -:10B2C0008C019C6D366E5F48BB4A556F57F1275B0A -:10B2D000A6FE6E451AAECFFDCCAC2AF43F3CCF247F -:10B2E000F9111F9BCAFD2528BF37553B689F78ABD6 -:10B2F00089DF4368B7F1FDB9F0D353F7613878645B -:10B30000C7E619E86738BBF746302ED166E2FBAFD7 -:10B310006DD398B8C79A8FD7D45DDD89F3CAAF01D2 -:10B32000790FFD6D2AF0973835FD33612F350A5CB2 -:10B33000F4BD76D14FF1DEAB9FBF43E62AAC730478 -:10B34000C5BFC6314E3732BF847E1B43132F3A012F -:10B35000FA8769CE3F8FEB50229614BA5F8FE2D8FE -:10B360000DEB2319D7A3FEFC25DFAF95F373BF9E2A -:10B370003D03E3FD529F5E8FF96D18071676EF22AD -:10B3800026FFF87E41ADA0EB45C2DEBD3E89C37904 -:10B3900019F3D1F9ABEBEC2C05E3CBD757744CA2E6 -:10B3A000FBAFEB2D6968AFC8B8773CBCC78BCF3417 -:10B3B0003E99CCEFCB51FA476327C73006521ACDDE -:10B3C000B737F6B36398E0E7D1C24E1BC9FCB8CFDC -:10B3D000D2B8E722CAC7B725F27D35906F76C4EBA5 -:10B3E0007ED4E7B0EE5B5E4D88F07DE3B0B81787A2 -:10B3F00085683F664F26ED2BB80BFDB4EF7ED2D2A9 -:10B400009B4FF200E49702BA73CFB04FAE31E3FD29 -:10B410002039604741F9F82F0E5F83BFCFD238A2A1 -:10B420007725DE179EFEF8595E1ED77B18CBC31E0C -:10B430004FBC96CA137A57AA509EF278D6B5D41E3E -:10B440001D2820ACCAC7875F8BE7FC8E89F825F3DF -:10B45000F5D23D418DBB2F3269E38325F95C4E1F48 -:10B460004BE0F58E15B0257311DE637A476B7F379D -:10B47000C1932FED526E97C975CA762C2B76FFEFCC -:10B480000B3D708BB8DF677A126B4BE0FB1521B474 -:10B49000AFDEECBE88E0F2C2309780572FDDDB28AC -:10B4A000FB319EEF97E3AE42BD8D72DDA23F4FF4BC -:10B4B0001BA12F609C0D344E91BF04EFE5699C9B4E -:10B4C000578278037C9905BECCDC0FDC4A78C67EB7 -:10B4D000D38A498F4CC43CB137CF40FD82E8BC8D44 -:10B4E000F471588C734B2BDF67EA4F2B243A9A9EEA -:10B4F000C4ED3F560AF003393645C0AD245F9CE3E6 -:10B5000019C043A642FDB70AF8E5F1FA17BADED32F -:10B510003FD07A3578F263DEF19BBBC6129EA60C53 -:10B52000D0C1665D3FC75A0CEDA6F0BC94465721CA -:10B53000B5BB57DCB32FEF2DC67605D06E7A45FF2D -:10B5400044E407796F1B0B4D2367BD41488B817B1A -:10B55000D83A787E0A1BE9E7F711CD9D532AD6E742 -:10B5600014EB736AEFA51BE0C38FFAF36B34F75249 -:10B57000CBF703701FE8AF6882E84FC7CFB1FA433B -:10B58000BE88878F71F97F617CC8791AE0390067BE -:10B59000C3FC243C918FA95D919E9FE43C87E59B71 -:10B5A00084BF6DE0E782EF399EC8EF5FFD37221F51 -:10B5B000D2ABA7E7D55D0526DC3F95EDDA3A5A0216 -:10B5C00028E765BCDBD6551D42FDD7D45D4E799B7F -:10B5D000AB7FF5ECCB2168BFEAF987533099F6A829 -:10B5E000B93D03EDDC861DF7A4F871BFC41C4A41C8 -:10B5F000F97934AC56C53A0F181278907654A3D026 -:10B6000037C79EBEFF1A84C77FECB038518F363DD6 -:10B61000658BD8280E720BD95150FE9C97EFFD1AFE -:10B62000FDD2A65D7A3B69D53F3C9CE1257A0AE5CF -:10B630009AF08C0B8BE43278366EB7F8226E1E4F80 -:10B6400084615813EBDF88F333B6C7799C06BC37A7 -:10B6500075A84BF13CAFF13B4812B2C39ABAEE2742 -:10B66000BBAB491B67003CD4C5B1BB6ECDD7E75B14 -:10B670004BB8B0B087EC9AD65FFEACF87307DEA784 -:10B68000F94F294A91565FAE27389DEA58FEF7BB1D -:10B69000BDF1F5EA49B40B6CDA761CAFDE5D0AED5C -:10B6A00049B06EFE6CB04452D0CF6FD86AF181E6DB -:10B6B000650DCF3EF124EE87B04F6C74FF41FDB3B2 -:10B6C000FB3FBE14CAF59D16F71C3E7D879211C53F -:10B6D0004F9397DB27121FAB5EDC4FF70CE27BB476 -:10B6E0006B255EEA3BF75AD9F8C1F0ABE8D82B7E60 -:10B6F00077C1809F8ECFAFA4FB3C7FF99D15E9FAFF -:10B70000E81E8565160C6E5FB7757F0AD21FC209E9 -:10B71000FD4B89A701BC0DC257E49ADDA5548FE209 -:10B720001AF1F036379FF178D0AF9E7D0E7F07B0CB -:10B73000EE37361FAEBFEEB9DB53701D5F999B39F4 -:10B740007DFFE29E0C3F8C5B67096538E9C9DFD756 -:10B750003D7E07D1DDCD07EEC8E0BFA7E1CF364D76 -:10B76000A17566E3FA6E7A6C3EAD6F250B12DDD5DE -:10B77000FD82C727BE15BFC760C4E769C11F5F6DE3 -:10B78000B3E18F64B0AF30111DF3083F50459EEF19 -:10B79000AD4C7B8F0558DC54FE56C407DE1FD0032A -:10B7A000CCCE3471D9A6EDF7F6207E8E0DF367E28C -:10B7B000BE1AC02124E0A5E0FDBAEA81CA4C8E1F62 -:10B7C000E635CBB832D8DF15F81EEBF758FC09C5C3 -:10B7D000BA7662BF9E8F2FE31330EF44DCF7FB2A6B -:10B7E00023F6B9ADD1C31521DF580FD3D2573C7E14 -:10B7F000DF7E1FD1D5371F71BE690C5757D1F71E99 -:10B800004B048F163786F7D628240F6CBAFB9F0699 -:10B81000E862BB45F0B3FE3BCCD3AC68E1BB87E745 -:10B82000D5AE7CC8A6BB0F214A37D6E8FB82287F5D -:10B830004A3FEA66C1FFC6F51AE5C11F0CF2803D1A -:10B84000E619D2BD320D96F0938F22FF02BFA29F60 -:10B85000D9F0AC85FCFCE33BDFF8F83AA0F3E31D3C -:10B86000926FF572D5C8B7752F4C62B1F8F6B8C3B0 -:10B87000C762F22DBC8FC9B78EE83E8D97FD7072FE -:10B88000F5E63872356FB8F11C4B512AE6BA1F7BCA -:10B89000BA7E38C5050C7095FEAC515EBE9CEF8D2E -:10B8A000292F195E41A581A3849FA4C755CFACA6BB -:10B8B0007106E856D2A5A4DB01BA1C945FA983A344 -:10B8C000F1FB17288F2645F16E590F7E0ADAB1AFCA -:10B8D000A9F43B287D30978D00F7BE9D05B40F7A03 -:10B8E0008FB0F3FB9CFD2918D7BB47F815FD184F07 -:10B8F0004C8DBEEF4F10790381FE94348D5DF47949 -:10B90000B79A82765C6F38F6EFC9CA7B2A7BE3FC74 -:10B91000DEAC3CBF54A93AF2D7629CB69DEF4FAE65 -:10B9200068599882F18CBEEE42FA3DA19BDE057FFC -:10B9300017E6DB27E39A21BF39BB2C7ABFE9111642 -:10B94000A2FDCAE5DDF5B45F688C83AC74D4A4E2D3 -:10B950007EA0310E7233E641611EF263FAF7AB301E -:10B960003E827832D05310E9297B303DAD1C2EF653 -:10B970005F4B58896EFF55C8B54AB5E8A7689FF474 -:10B9800081DF8EF120A616FD1AF5E9B7E8C723037B -:10B99000843C44A7F5C12332CF8AE85AD29DD17F97 -:10B9A000373E4FBCF469199E076A78F9DF8A7F0E2B -:10B9B000CF132F7F32FA552CFFEA5FF3FF8D0DAEC8 -:10B9C0005FB1E78FE4AFF4EDB1D17CFAF6BC9D7FB7 -:10B9D000179677DB7C38DFBEF536FE7BD07B92E9AD -:10B9E000DEE9BE613CCED6FADA77C5BDA4A7361033 -:10B9F000DEFE6E38BF2FF654F77F7D86F7AB9EEAEA -:10BA0000B67931EED0B42789FCF0A6DD09744F7CFD -:10BA1000DF6BDF9569E345FFDDF5348AF3167DC9F9 -:10BA2000AC16F35BFAD2B8BFD6F4EAD4275A0AD0E0 -:10BA30002EDD4BF71657BCFEA762943F7D2F70BBDF -:10BA400002FCF3C77113F117C3BB7F6A998AE78DB4 -:10BA500018F9D553BD7FBA36E48805170E873E80A6 -:10BA600003AE0BE042F775C78347D7707E0FFFFF29 -:10BA70003E787C4DFE4243F764E2A3285C14FEFB53 -:10BA800023DDC961BB42EBE7EFF77C578C76D2F13F -:10BA90008E16D2FBE75BF787FF6BE9E0FBAE5B89B5 -:10BAA0000C65DDA7FED7AE9BD3FFDAE15C3F19F949 -:10BAB00060309DFFEAAFA9FC5CB28FE66BE0FFFF50 -:10BAC00007ABA359F3008000000000001F8B0800A3 -:10BAD00000000000000BCD3C0B7814D5B9FFECCC76 -:10BAE0003E926CC22604084260F2244A1E0B791072 -:10BAF0001EA99B842008E206A4A2222EF8E015923B -:10BB000008B6C66ACD622202F5B6516CAF6DD16F30 -:10BB10004141DADA6B8A41B1025D10115AAAAB8257 -:10BB2000A246BA52AB50031B41052ABDDEFFFFCF30 -:10BB30004CB233243CFCAEDFD7E423C733E7CC3927 -:10BB4000FFFB75CE18498599ADB9004DDB4EE587F1 -:10BB5000B1056806280648526D00FD004E6CFDFADE -:10BB600090944CAD5D853480BAED710045D8FE31BE -:10BB70002600124064DBA9129F13E01BFAB912A041 -:10BB8000A3119718D6DD37B71D9B3F2CB917A7D443 -:10BB9000BCF041FEAFB1ED78E1BDEC97A9FFE2BB8F -:10BBA000433EC0B6D606BE565C2F120F3337213C3B -:10BBB0009144F000EE5FF7F2E8A796E1FE8BDB3EE2 -:10BBC0009F4DFBD76C1D0532F62BFFF4EFFC30CDFB -:10BBD000DF2479C4F3F88003E1AADC7E463CDF7EF3 -:10BBE0002A1FB0FD6C93149413B0FF807D7E80D625 -:10BBF000ED05EF118477F17F22DE3B6CB7E278C36D -:10BC00005095E1EBC67B870DF208DFBDB3697E641A -:10BC10007BBCCB9E46F0FD7B0844E17F21BCBDFF91 -:10BC2000B1FC3E3FDE007E86DB2A7B1DE908DFC3D8 -:10BC3000100CA9D83E0830B1D5792E3C3FA6C16280 -:10BC40007A0F42D01F4006F123272F9C0209D4AE61 -:10BC5000FA5CCEA7F7A74D4C4338FCAAC5BD5EA53C -:10BC60001916A6C38AC1EEC02A840B14EFFCB5D8FE -:10BC7000B70EAD71AFE215EE042801F881435BAF5A -:10BC8000FF948912AED7B40CE1C2759AFA595C4D93 -:10BC9000B88EA25A82F67C6E3FA2F6A1FE57EFA1A3 -:10BCA0007D15A70D82DABBDFE03F27603F47EBE35E -:10BCB0007EB199517DFC17033B5D0AEE1FE35620D0 -:10BCC0008028D921EA7D9C7F93EA62BAC442C0EF02 -:10BCD000725E3A9D7E4F83FD7AA793993E3ADDCE00 -:10BCE000A1138083DE57E8BF08FFE45521D2430546 -:10BCF000147F58E0237D23113DDD290E5CCFDAE768 -:10BD00000EF72A899FAB4A89F69E85FE2C31D01703 -:10BD1000E9E789C9EFA673D47A8CBF99CE974A5FB9 -:10BD20009D2F31308DF91C33D8E90E20FC0FAA82EB -:10BD3000EE0F22DD25A99BBE3ADDCC7CF093EC14FE -:10BD400077D3BFBB1DE7FA64383312BE41E2FA2B4A -:10BD500020A71ED7A992C785FDB8FE89D238B79D06 -:10BD6000F44582A03412DBF2FE15807874A4DA1454 -:10BD70006ACB3A11A72878AF3CED00250ABF72487C -:10BD800034F43B52B3F9FD4AC740C37B1D034B1D3E -:10BD9000F4BCCA956698FF464C423E14D07B1326ED -:10BDA000D2F85529971BDE9B7AB863CD1C6CAF95F2 -:10BDB000C245241C1D7B675510BD26A9230CF3B674 -:10BDC000A059217DEEAC9203EB901ED552B07F3E80 -:10BDD000D26D72CE68237C128C273C6B2C285A388B -:10BDE000EF1A77B961FCDAD2498675AB3DD5867E0C -:10BDF0004DC357A0F40518DB70169442B4E3C15646 -:10BE0000C3FB857BB618E627EC03391EDB11FBD597 -:10BE1000266A0BDB434924BEB6BE0EBFA50F8A704F -:10BE2000D85B89E840C991FA57A86D70203DF0F9B8 -:10BE3000A918D122BF58CEFD8762024D08EF294BC9 -:10BE4000C04774B85B0EE4501B3BE88E7C48073853 -:10BE50009AF2B0DC87E0075FA78A7230FA8B401352 -:10BE6000F5AF3CDB2AFBC80E6F94FDB602E2FB94F3 -:10BE7000B8BF92DD6D9580F85EE3B47802E4B792C6 -:10BE80005AF39746C9D7673F845BBCB9E7EAEB8BA7 -:10BE900059E596345CBF39C5D3B283EC66C587B328 -:10BEA000E5F473E7814BE90CEB7449A7F7BC4583D4 -:10BEB000511EE5F8F10EB2EBB19532E30557590387 -:10BEC000EB719DE516778CA6FCEC5F5D13AC6B49BE -:10BED000AFD7A409FB10FB175025843FB6AF4FCE58 -:10BEE000A3F77E26C17AE8DEEFD652603CB2D22CB0 -:10BEF000420F1457BF9BF3E8FD787EBFA454D011C6 -:10BF0000A6580259B864C241F76E2BF657E7EC7792 -:10BF10009119689B72D82F235DDA0E86CA24D4A5A6 -:10BF2000010F979FCC14F3210BFB6D39E3E3F2D89B -:10BF30008FE558C8CE2C41B347766647D93339E4EC -:10BF400027965C7EC500E8C1BEE96DC26909D4C20E -:10BF5000EEFE9A3495E14A50C2407A9D705AE171E2 -:10BF600068C8B690FDD1D74F98A5BEBB94E0D86302 -:10BF7000852CDA5EF12C223C565DD1AEAE623C04DB -:10BF8000DE00E1142FA2FA4FF4932A315609A7DC00 -:10BF90001C7F2E1CFFDC589CA8221E7DCBDD896EE9 -:10BFA0006A7F8F441FC374F7131D7E4A7F2EA3DE62 -:10BFB000DAD0781CDF4836518C0701E57A954D1BA5 -:10BFC000279382FDBE9236EE5FEB1D4F7C958DF37D -:10BFD0000BD2BBE67B1C29DDEB7BD7AE0D35F748DA -:10BFE0004F3BFBE55513AC01BB7431748DBB005D59 -:10BFF00013045DCFA2F5C77DEE72887D3E96D421F5 -:10C00000246FAB2D68053200F6BB7CD7935CC7CAA2 -:10C01000C13C7A3E37C133A00CE5AFCDE619720FB3 -:10C02000D9956D31EE75F85EF59D9F3DDE407A3D08 -:10C03000F59F39CD24378A276E24EE53E7FA8AED2F -:10C0400041959CDB87E29D2E3A923CE39E3FB5747E -:10C05000F7C93E2474D3D59389E3ABA2E8EC709082 -:10C06000FD12FD47D3DABC4CA7DB1C4CA7A59A4EAA -:10C070003527428B05F5E1A46BC3F7491E4E6EB41C -:10C0800002C54D6D3448FE32C7C17A05C9E1946AD4 -:10C09000D483BC372D5E8ACBDA513E3C241FF5D9C0 -:10C0A00086F54E8E7B37290FDF3B99AC24117D1628 -:10C0B000866D4CB79B1508DAD15EB625DF5659CE92 -:10C0C000FAA1F278ABB6CE6B599EFBD2D8EF8C7743 -:10C0D0007D8278499E31F237C37BE71779D04F7460 -:10C0E000FB8874AE2334937A9783E6724780E2CC60 -:10C0F000BAD265B9E41F9624660F00C4A36EBCC40F -:10C10000FEB6AEE10BA6BBBEBE725A06B56F777F18 -:10C110007C86CAF640513C2C0FCA691B8FD7349CD1 -:10C12000643B8EE0A491DE742C13F6AEC50AB754BE -:10C13000635BF3BFF22DD538BF06430CF617B0D3BF -:10C14000B624CA1E42EBE75D76BF0079B77ACA5BB8 -:10C15000B16467AB25D70C401C8EA6BBAA95D1D87D -:10C160008F71CD90B0DFB6EE8C97FBA9AE1916ECAF -:10C17000EF4ABB498C0F74FDDCE206F87CDD5DA262 -:10C180009FE63A40FD0FD31EA95606623F5EC8C126 -:10C190006FD26AABFDB9245F4EA6CB891571AC1F77 -:10C1A000BDD1795EC3CB06BA9C332E4BB778C96E2E -:10C1B000CC1476F1D8CA416B391ECA0C65D39E5B8C -:10C1C000D344FCDA1F79538AFF5E45BD77201D9268 -:10C1D00033C063C1F9C92FA23FA2F91F878610FDA2 -:10C1E000E6BD181394901F8B9F78C546FE68AEACD1 -:10C1F00066935EBD3FCCB793E4E3787C88FBF31A8B -:10C20000B6335C29592E61A75D9DB95E94CFF9D0F4 -:10C2100062A3F1F9A01C26BF614161A6B866A173B3 -:10C22000978DE2B2854F5B0F87A3FCEA22081F229D -:10C230003DAD79D67A381CE57F81DE8F92AFC3168B -:10C240000187A2D163AE1C9A6D13701D20B816270A -:10C25000617C2F93BB08F5F7715C5493C379494A0D -:10C260002C90DC2DBFECFD7C5F0F7EB0B511FD3E48 -:10C27000AADCA6C62DDCAEC135C9EE0C50C23637DD -:10C28000AE53ABD9E592D0611B44BD7F42A36B9FF7 -:10C290002D128FEBF6A27B3C5ED025D733C2827085 -:10C2A0002C9EB66F1CF145E7E79571D01A93C47CBC -:10C2B000716B7C71135F74FA233D0B157C6FD7593A -:10C2C0007C2FAD27B9D0E92FE06D8B15F6A27373E3 -:10C2D0000CC74D66F8E3D205BC3A1E43D3CF0FFF1F -:10C2E000D0F4EF06FEA1E9428FCD78E87AAC3FD7D3 -:10C2F000F5D88CB70EF7A5CB59C8763172A6DB9965 -:10C300005AF0E5D0FABA5DD1E9ACC3A9D3AB8DF24E -:10C31000A11EE0541A5E32E0A3842A28898071E9C4 -:10C32000E9C28EB54E02E283D2B095E75D2A3EBAED -:10C33000BDED0D2FDDCE9AF1D3EDAD8EA76E7775E5 -:10C340007CCBD090B03DC4349EF2AC2B4FFB0C7133 -:10C3500070392C30C4C9958E3B0DFD2AD73D86F926 -:10C3600057A52C338C4F52571AC627E73C62E85F1B -:10C37000E3FEA5298E5F6B8AE37F63181F170E719A -:10C38000DCFD7AE344509047DF3BD2C9F177B0D16E -:10C39000C5FD9D8D29DCEE6A5459BF7737E670BB29 -:10C3A000A7D1CDCFFFDC58CAEDBE460FB7A1462FAF -:10C3B000B766BB30F5F9EB15CA574A432D9564CAE9 -:10C3C0007764F87E928EF47BC312688A473A8D6A4E -:10C3D00017F139CC37FBE35387EE25BFEEB2B9C96D -:10C3E0001F36EF182DA93DC47309E8EF3C51F292B6 -:10C3F00030250C1E8A7BD03DF7245F2DE916964729 -:10C4000032FB807A37D301D664D4B79933257713BA -:10C41000F0733F24711BF4E1F85405FCE4FFAB9D7D -:10C420004AD09EC0A0791D08E70C0126D8699CFC63 -:10C4300077725F85E2D6EBE821C22B7B64F81E3E63 -:10C440009F51FA97339437DFE86CB5929CDCB0E7E4 -:10C450008163F7E23834FB8B493FBAE206FFFB9673 -:10C460004B891B5A28AE443A462477C843F14EA262 -:10C47000E28ECE07F4F6B674910F4C6DF2CB0948FC -:10C48000CFCE3781E3385D1F11BF1504BFAE17D57E -:10C490002E25382C81FCFD239534BF66BFCA74D18C -:10C4A000F542D7033D0FD4F5A04A7EB689E69F3802 -:10C4B000089C4F8FEAF01D799EF034C59DA59D2DF7 -:10C4C0009594975D286F1C73BAF5159AB7BDD1C7BF -:10C4D00072B4B57126B7C1C6F99A7CD6737F57631B -:10C4E00003F77737FAB9DDD3B84293CF161EDFD7FB -:10C4F000F838F75F6F0C6872BA919F8FCF10FEF714 -:10C500008B50E50092BF17D3451D071CE59C478063 -:10C5100022DA8B95939A9497453C65920FB35CE829 -:10C52000F200683724A4D78DE867C93FDC04FEBC5D -:10C5300039D8CE9CD7621D2B7D7BB958E86CE6F8C4 -:10C54000C36C0F174090EDDDB9F65DC4FF17B2EF75 -:10C5500032E6ABE4AF74FBB718C2BC9E5DBED34DF0 -:10C56000F594EFCEAFB834BF0273687E57DE1DDBA3 -:10C570003E5BB65C38EF2E1A2CF8AAE7DD183F02B6 -:10C58000F9E54840E6B87A7E5A4B02E7DDA59D09F9 -:10C5900014072CD826333F30CF540622DFE6697CBF -:10C5A000EB80E03BC49779E3E6715D6EFE1A233EB3 -:10C5B0000B9DD7F509AA3DC6693DE2590B0F7F4E89 -:10C5C000F5B95A8D5EFC1CE16968BF61D2AEA879ED -:10C5D0003119F1C99FC49142C128A207C2EF0E923E -:10C5E0009EED9759CF7A938BE3989F909C9F6A9C7E -:10C5F000396917CAFDF1B38D9C7F25653CF2887FB0 -:10C60000DC77C7AFB559DEA1199C0F856DA43F3A01 -:10C61000FF96938D44B8975738029468478A5D0A0D -:10C62000ED1F913C723CF1E323702F43FA956F7D2F -:10C63000ED20E947B9C3C9E708884447343F47EFCD -:10C64000F7353971DEA87D1E99C2F7E25DE1269AC1 -:10C65000A6FB1BDDFF8CEDE8947D5C17C8643D02F2 -:10C66000CC25BEC9B8783D32E79B4D946FA2413AC4 -:10C67000E99CC0F09E0C829B9E77D7B544BD69ECC7 -:10C68000598F9C80F02DD7F2C3D11F7B198E6A87FA -:10C69000CA7268D7F2497B8A053C517474D97C1BF5 -:10C6A000A9FE097F8CE13AAF19BEC919C28EAB4908 -:10C6B000DEC94C5FA79A4D794395DCB1E1D7240FD1 -:10C6C0006D716E3BBE67B6B7BA7DEB2D6EAF739DD5 -:10C6D000EC318ED4DB3A8B38371859A91652FE4705 -:10C6E000F125E5857A9E689EEFCBAA989DD18FEBC8 -:10C6F000AB210FC1E5B29C574EEB1A3E3F6F9EA691 -:10C70000EF5FB7ADD83537AA0EB226433F5F505C16 -:10C710009F38BAF976B1FC2DEB9C69F03FFFE9F147 -:10C72000DA540C7324D4A13C2920E20810F1C42C63 -:10C7300008713B1B3AB9F5A124513B17DCDCDE063E -:10C740005E6EBFCEF4AD26B989583BFB931E1F7BAE -:10C75000E1EB5C928B63DF1BEB4A53BBFDABEE6FEF -:10C760002FD5AFC6D2F9520FF2B041935BDD6EF711 -:10C77000CA1F93DD8E8C40FB807046368B73B148A8 -:10C780007C6C80CE0174FB007E63BCA8DB8BC2593D -:10C79000EE37B85EB84FE6BAA5D97E5429228F0786 -:10C7A000C59D43F5517DFF260BCC2739DB88ED1F56 -:10C7B000108F3EB3C28A1A85CF760D8FF21BC60347 -:10C7C000E52F535D223FAC724032E57370F664EEA4 -:10C7D0000C340453291E45791E95E4F913D1DBFF6F -:10C7E000D0B8443E7F20FB3314F9F79138B7810568 -:10C7F00052200BE9B1A54DF4F36E4F64FC6E82201C -:10C80000F3F166085B09FF5B00D8EECE0195DB5BB8 -:10C81000C1C3FCC495E3F2D10EDDDEA68C5C857845 -:10C82000162475A6937EE68D7E2F4942B8F229FE26 -:10C8300075726D6605C5293A1E964C81C765999E2D -:10C84000B709BE82A4D0AAD514176EB600C5859FBD -:10C850008EBEE70E88F2AB2559150769DE73923854 -:10C860002FF46FB38BBA1A74F6F746C5E35F6756B9 -:10C870001E22BDFF07C1C6F9EF2A3E47AA7609DA94 -:10C88000C3F87E4C037C6F8837AF27FDF4B37D2C53 -:10C89000205A8A3AA11F4A795FEE7FF5D417D5CD89 -:10C8A000021F3FC5632559BE08ED5760435348F04A -:10C8B0003F610FACE3B8A97E08D52FE63D69B7907C -:10C8C0001F7F0FED309D9B7ED0E8E0F643CC6FA834 -:10C8D000FD1BE637D47E84F90DB57FC7FC86DADB15 -:10C8E0004F8F402102F861A6E77F33CE8347EF7672 -:10C8F00046E0119160664FE77DA73244FE91DFF676 -:10C90000F1037124075B6437C969DE6685EB10C7E4 -:10C91000B78E0AC869D174F5C565221CF95BDE7E45 -:10C92000746C11BDA7B8249C7F7CCBC9FE9C379941 -:10C93000E0EBA2C7369BA08706EF7389A155F4FEF2 -:10C94000739BD30942B42320E490F8D9431D0D60B2 -:10C9500019F3F1F50C113F5D6BEF2C8A3EDF040AF1 -:10C9600019A85EA9F9992AF96C423857ABDB8E26D3 -:10C97000B9CE7C83F6F3EF117A887C35D4252A353D -:10C9800039D4DBBC6D362FE9D373DBDE993619E978 -:10C990003075CCA46259ED9E5F98D98FF7CD1B7D81 -:10C9A000E657AB93793E9F5BDC006BAB5C38EF26C0 -:10C9B000C78E57890437BB3EAA4AC4FE2D29D26EC2 -:10C9C0006AE7A8691392C80E4080F7B935A77C378B -:10C9D00089D81477B58DFC7239295594DDAD74C4AE -:10C9E000D1496A57BFCAD5D7D0BF2A659061FE2406 -:10C9F00035C3303E3967B8615CDF778ABBD0308F92 -:10CA0000F495E266C483F90EEB653E97C9DBFCC57D -:10CA1000FB8B18FF1B8A08FF08D2CF8681C591D2F5 -:10CA200095BF584D6663F3CE043EA735C5A735DBE9 -:10CA30009EDAED517B8F4FBF84AD3DC675B5BDC449 -:10CA400075171B9FA2FD7894EC47C10BD7F1B9FB7A -:10CA500073A3CF5CA6225EBE4C8C5BC9EE99E2D676 -:10CA60008816B79AE5A74B4E2555C8CD5E19280EF6 -:10CA7000D2E357B3FC003CA0F97FD15EAA9E4F7D64 -:10CA80004BF8AB7F90BEF78D966BAD35D5230A6C16 -:10CA9000E857A84EF85719D6D183B308874EFF8CB4 -:10CAA0006EB987DBD6BE3AB0889FFBE371CB5AAD37 -:10CAB0003EF1AB4CED9CBF66C7AB0393BBC7E1AE89 -:10CAC0008F0CF3E13E69B7A1DF9C66EC3F5CBE3B97 -:10CAD000FAFDDEECD0BC3577DA7C54977E4CD42955 -:10CAE000CDE33A3C553B633C642F95AD76CE876AE7 -:10CAF0005D1EAE9F28BDD44F74BB70830CF53DD92D -:10CB0000B7F5DABA5376C680FC2DD67D0F6585E081 -:10CB1000F1BF28FCCC7B7D3CE08DDAA73553C47D8A -:10CB2000C7125B7EFC15CE3BF612B889F4C712859E -:10CB3000BDCD6FFBD462213F112BE425DF15B62458 -:10CB4000D17D97F9717E3A4FAE5B10EFA773A38248 -:10CB5000F4CE771CC8FA2D4FFB1E75A0DCBD6FB15B -:10CB600018FC4E846C1DF67764FAA691DF99BC33ED -:10CB70002668F916F8ECC804E1D72A84BECF26B996 -:10CB8000D1CFC5D0D4D43D08867332C29FFA679EF8 -:10CB9000BEF5ADC728EEDD2BF41F879DE67CF4A61D -:10CBA000A87C14D608FD75E02FC5390B77B5D828B9 -:10CBB0004FFAAEF4BE3DD3D9ADDFC3CED5675DDF4E -:10CBC000EB0E087D3FB1F5CBB7C8AE9F407F17ADE8 -:10CBD000EF5D7E51D3F3BAC765D647FDF9F1ADF2EB -:10CBE000C4400FF47D4D930370651BCECD96949D8C -:10CBF0009A467E6DC93685CF037BF3D7752B8CE7BC -:10CC000064CF6DB7CF17E7C8028F88EE4FB77D9915 -:10CC1000549E2BDA657C5EDBA2D91D11C7A01FB51F -:10CC200026931FAD96B8FE7660DB00BE9F714082F2 -:10CC3000A03A9297B8CE817C9B2E96A3E74E8AC7E6 -:10CC4000202547A17DA669FC9CAED585666C9B918D -:10CC500045FC7AA76DEE010FA19795C1F2733DF8DF -:10CC6000391E3C90E84DA57B0A539B847C1F48EC01 -:10CC7000ECA03AD281B23889CEA370FDE6E878EF15 -:10CC800080D59B5ACF78E9E79357C8DFC45D421E31 -:10CC9000ACD943E4A75F12F91CCBBF32F06196AB6D -:10CCA0000510D8EDC17D6BDD418E4B1781C8EBCDF2 -:10CCB000F17CEDB8CF6CE417CCF967F9961D07E964 -:10CCC000DCE39C3A84495E2F547730E7BDBDD50F35 -:10CCD0004625790BB3A2EA7EE6F8BC2B0ED5E3A875 -:10CCE000F5717C2EF44AD97F1F5F84FDBBD6C7B98E -:10CCF00028CF3EFAA4DD4F76F9E83A7B40C2F1A393 -:10CD0000499DED94771CDD94E7C615609E45FDDDD9 -:10CD1000B3E4D77F6B65B90030DE6B58527637DFEE -:10CD2000FF5BB23E5EA27B389022C6F59C4F7E260A -:10CD30009EE38205CF0FE4734EDDBF907ED0B9F441 -:10CD40009127623C14E41FDD33BD0FD5FB3A2C7FE5 -:10CD5000E0F37C90EF3B44E7F58B36C48FA4F801F9 -:10CD60007281F9367FDDE57CBEF973C53783F0AF9C -:10CD70007CE69A0174AF6CC1DBFD80F0896C7D9E0E -:10CD8000CFFFBAE3F49EE3BB135B33FA406E379DEB -:10CD9000F43AE08AA7977989EFC5922ACE69A0DE96 -:10CDA0003388E4624B35D0BA2365716FB473651C68 -:10CDB000C7A566B9ABC91271608D5E6FE80B8E14A2 -:10CDC000D21F1F301D222B87AFA3F3B0E6AC24CDBA -:10CDD0004F77664F8BBA975825B7D7BE4CF2B9C676 -:10CDE000CE75908E989ECFC11AB21279FE3C87F113 -:10CDF000DCBCB6E18CB19F8BF91DBE3FB2492DBCA6 -:10CE000013DBA51AFD57A77AEFCDC2F717B63EF28E -:10CE1000C23EA6CB9A1FBE4FFBEE718AFACB3E41B3 -:10CE20003F73FC3FCF21EA1C006B797FFDF9A74FD0 -:10CE3000BCCBE7AB9F6E1E9E2DCE8D439FFC3A8DE3 -:10CE4000CF8B0FDD8BEDA63D6F315FCCF09E73EE87 -:10CE500027498C6F0DE1D197CE77BD8F109CC80804 -:10CE6000CEDBE6AECA63FAE9E76F91A33DE7273A66 -:10CE70009CFAFA3A7CFAFAFABC27B3441E335BCB2D -:10CE80000F8ED942C7F91CFD85E112D5F7BA9E274E -:10CE900085F213A3E4E5BBAAA7DFA8D5430E5A96F3 -:10CEA000FDC046F7E45A575B7DD176EF12EBE85DA3 -:10CEB00071A00754577FE14AD86F21724A7F3AEF39 -:10CEC000D3FAA40CD81FA78127113C746F506B6153 -:10CED000A12F85EBE4B49E4CD71003DC6F2A77AB0F -:10CEE000D45E29791571EF2BC0F23F01EA07131EBA -:10CEF000164798CFC5F47B2E3312975F9386FB3588 -:10CF0000F783E514C7345B855EF8E7C471FEA6D3EA -:10CF100049F733E0CA35F8976617A80AAE3353814C -:10CF200015D624316F28D2F9C09EB9AF529CF0AE0D -:10CF300052DF8FF67DCFF9589E64A1F82E104F393D -:10CF4000E2FB6FFDB6F8AF38F703F09439517EAECF -:10CF50007BCDC176DF5C8FB81D7CDC9F0761EB1752 -:10CF6000F8DEDF46FF6BFD4EE8C6EB6F63BEDA4CC2 -:10CF7000F9C14D890F14D3FBFA3D4CF37DBFA32EAD -:10CF800027DF0B34DFFBBB167C9F91DD3A65F1D5C3 -:10CF90008AFA47FD28F2BF91441B48383FD24FA37D -:10CFA000C731607A44ACDAFB9FABDC2FAA1CC9F511 -:10CFB0004838A5B23D1E6BF23745C32D220FFB4604 -:10CFC000CC2FEB540CFEA6A840ABDB7CAD725C7A98 -:10CFD000E569E5BCFEE8A16C61CF8AFA5AEA7B8A72 -:10CFE0000FD56CA13F4D1094053E224E18DB2557FE -:10CFF0001E99F857ABF56BC99FA13C45121C7EBA30 -:10D00000E83876AB90AFB14A7007B5685DA181E2B0 -:10D010008A2DE8EF7438E88C306538CBC1185D3E56 -:10D0200071AD59386FB954CF798B83E2196C574978 -:10D030002186E37BD0C9AD47F3E315E0E6763C7883 -:10D04000B945F9E47622B4707B35B4723B0542C22F -:10D05000EF5F116C627F06F7B9F8DC62D23C0BC55A -:10D060001B45D7F79C2F546874EA9D0EA87025972E -:10D070004E8709807A97D1033D06E7B0FD30D3C3D0 -:10D08000AC9F651096593FC93064509D40653DADD9 -:10D09000040FF7AB2E920EA5619FC2751A333D2A7D -:10D0A0007B968BC91A3DFE950D2C1F3A9FEECF56ED -:10D0B000F9B9CE2FD4AB14927F331FF5E745711524 -:10D0C00027E96AFA1DD9C3A7D3BDAAA2C28AA5645B -:10D0D00092EFDE30663ADDAB2A1A5BF13C1D79DE59 -:10D0E000933D4EF40B2A0AAD6ECC5AA4B2E9E3711B -:10D0F000BE4FBB970C33457C7D9716B7F896FDC0A5 -:10D10000ED423DF1A53ADD849F03837BAA7FCA19D6 -:10D11000E27C70C8C4E04E2BCE3BA4F8E664537C9E -:10D12000E00826A848F7BB9655F1BDB5876C62BEEE -:10D13000DD2EEAB03A5EF8DC1F83FD4D9B862F950D -:10D14000D27BDF1FD7ADA5757DCBB2FCA4AFBECD22 -:10D15000925B70B262C04CD4CF8E9015A81EAAEF1D -:10D16000939DEA5B9ACDE7BAD95C271BA4C5331D12 -:10D170009B860F27BEDC9FADDDC34A4E2B24BA2D04 -:10D180004BF5DE4FF323F142BEEED7F8D05BBB2167 -:10D19000DB735F76F1B9CF23FF4000F0FD9F65FBA5 -:10D1A0001EA0F5EAE2CEB27F3F3EE2EDE5E1B46ECD -:10D1B00039959049B310EF260F046CEC07B4FBEAE5 -:10D1C000DA7955E4765C07E950E4F53591491B3589 -:10D1D000ABB384EC27AEFB5FBCAE2D3C6404BEF762 -:10D1E000D8F44336216783859C697668DBF6BDF702 -:10D1F0000E125D2F44E955DDF6335F7D80F4AB3BC5 -:10D20000E174D3F46E7DFAE552CE27C169B01BBA42 -:10D210009E8DD962E7B87AECD6CB6FA779656FB7E8 -:10D2200067105E57B687F91C2CB2EDDD41020E3D4A -:10D23000DF38257D1BBF4BE7B49CC76D16E7B44BA9 -:10D24000A4FA57E2A9FF7BC9ED47F83FD5FC869EBB -:10D2500017CFD7F05ABC77FD72AA8BCC5F73EB1453 -:10D26000BEC7131079838ABFA4FF5FC23E3E1F5F13 -:10D27000B4D19C4F74DA88FF8B5B4DF781281FA6D1 -:10D280007B0FD1F6BD877C787BB6764E9B0AA98C46 -:10D29000873CAB8FAF077B67CE771F07CFAB2C9F49 -:10D2A000E09569FF62A5E77AC273DDDFD3B03ECCBB -:10D2B000D3F6263A3939DFB589FBC24F2C75BBA8A6 -:10D2C000AFE9E75A9495528AA33B7FC9F2AFBFA753 -:10D2D000EBEB8215E25E36ACE9CB3257B0C1EE2102 -:10D2E000BE166C18C0F905E6411CF7ADDD605F4164 -:10D2F000FDA60763FD7201D5933B2FA3BA4A538C59 -:10D30000F8CE89DC23DD132D4817758E33BA5DD72F -:10D31000FCBA7EDFB62BFF89CFE67BCD5DE361C52E -:10D32000906F3469F17311C1477160BD55E44F319D -:10D3300002FE1D6F7E3F8EE2D8CD8A378EEAD2275D -:10D34000F6A7F7811EE8A6B7C5E85EE03CE78CC506 -:10D35000EF4EC9381FBF8A1ED7EEA76BF2F9C7463A -:10D360000FFCDDDACD0F1DAF2AF9D94A1BD5396E76 -:10D370000317D53D96EC7DAA89BEB759B212B8A263 -:10D380007082FE50BE70C4C2E7E063F616A6903C01 -:10D39000B669F68ECE85D528B92AA1A210CE2F1E49 -:10D3A0000C01FAFE28468D05352A2F8ECB4932F422 -:10D3B000E3DD9719DEEF539A6E1807BF27945BD20F -:10D3C0001DBF267AAE30CC7F2861027F8F5316BAFC -:10D3D00083EB4A7D278E348CDB51AEE99E037C21A2 -:10D3E000E29F52FC65BF0AF532C139360CF02B942E -:10D3F000BB311DC6F8A834DCC27960CC7EC590D79D -:10D40000DB2F5067BA7C98A6578361B0B00F667A5D -:10D410001BEF432CD92B731CB7241503CFB4DEE9C3 -:10D42000ADEB9F4EF77E5E23DD07CC34D279A0CFE3 -:10D4300048E741F38D744EAD37D279688391AE6978 -:10D440007E231D33568C31CCCF6AA930F4873D7EC4 -:10D45000B561FEE5816986FEF08D371AE6E7B5CE47 -:10D46000358C176C59785EBE8F082E318C9BF95E17 -:10D47000B8E74726395498CEC5DAF7593AFFFDF890 -:10D480004BFC1F0BDE3E4189CA81FE26D2C7FF2F0F -:10D49000FE2F18A69D23E8FCBF48BB7A95E687CDF2 -:10D4A000DF794D8D13F6E6F53D27F67BB0FF865A02 -:10D4B000684DA1B8498B0FBCFA798429EFD3F39456 -:10D4C0006B4B25D3397D8CE19CFE42F7DA8A4341D0 -:10D4D000437FC47EF17DD4C883EE57A82DFED823A8 -:10D4E000477F0F35FA0B76CBE7E49DFAFD383D6FA9 -:10D4F00082E627390F9DA5C34F4A50726E7D51CFEA -:10D500004FCD79AB9EAF9EFBBD95884BEE967BCB06 -:10D510006345FEAAE7ADDF070F7F5776D560DFDAF8 -:10D520006168FF654B675F1AD7F359222C9D1B4733 -:10D5300088B0FCDDCC3BD33DB9FC3D2AD7BD174AB2 -:10D540006F4FA77BFE08BE2B5C22CA3FF4F3D2309C -:10D55000DFEF68BDC3926B7921BEFBFA98CF86D00E -:10D560007AFF334CC46F76192984FE67C02C0FD024 -:10D57000F351499EE768BEF97EB6B935DF1B6A6B89 -:10D580000C72ABB8DC7C6FC75C1F0C5B548E3BFD30 -:10D590003F92F89ECE6704DCE8EE78E5C40A2BC71C -:10D5A0002BA0E5E3376BF4D7EB16B3347C0EE31214 -:10D5B000F3D1FFDEBCE535E6CBA2940EADDE51CF54 -:10D5C000F1F5AD839D23F91E9AA7D02DEA5C7A1D53 -:10D5D00063D0257D5F7221FC17A51C35D491E0D95D -:10D5E000BE1775BEDD8DB758FFF04A518F3CBC3277 -:10D5F00095EBDFDDEB1FE77AD2CDF56F1AF4E296FB -:10D6000086F70C7A30C7FF91613C9CDC69A5FA6112 -:10D61000F88581136E42FA1DDB6CE7EFA1510E3ADB -:10D6200088AFFAFAE195C3C7F3779517C4F3338649 -:10D63000A3BD31C4FCD5F13CD47890FBE1C630B732 -:10D64000663CF53A85DEDA76420EDDCFEF9462DD98 -:10D65000541736D72FEEB6A89F901E3C9493AEC5B4 -:10D660006BF5055EE69FA857B46BDF97B66BDF9747 -:10D67000B66BDF8BB66BDF87B66BDF8146ACCE1542 -:10D6800054D76897C4BD9F5992E7C939B85FDA602B -:10D690009F3387E2FE859DF90AEE5357109E2D2198 -:10D6A0009FF3FAF9FAD07309D38581FC3D919FEF7E -:10D6B000871DB1F8F3E9FB9BC91BB3AEA33CF0484F -:10D6C000ACFF384522953969D751DE77C426F4700E -:10D6D000FAC6D8EB48EF3EC6C5083FFF4B92A82BD1 -:10D6E00039C336FA7E6A6AB26F504EB1B8F7C5DFF9 -:10D6F000CDE073924BBDCE19B18A3830A2C583E913 -:10D7000039E21C302347C4AD7A5B463CC7E7D3A956 -:10D7100065FD7C389BBF375963078A5F717FFEBE0A -:10D7200046BF6762FEFE66E49FECFC9D845E0F2DA3 -:10D73000C949E375E8BB1CD2CBE49FC4B1DD82705C -:10D7400068087DC7D305EF7EF15DE531AA2347D593 -:10D750009F4B72441D066E03C377408BF71E3E44F9 -:10D7600079D6FBC37C6388AE732D6A09F17571C2EB -:10D770000EAE774DC951795F8497F145FBD34C7C50 -:10D780005AEC08737DEC42F5F0DEF03F767BE8174B -:10D79000B95CFF55F3F93B3C6D5F84630AD15FC709 -:10D7A0005B87A37B9DF3CBBF5ED7D5FB9F3EF1503C -:10D7B000B65697BFC5DB833FBD55A34BBBB5E73A14 -:10D7C000FAFD1A7FCFE1CF3000AADBDB63D14760DF -:10D7D0005BAFD1E9D80D880FD7273C2388BF8BA733 -:10D7E00039F9FB737D7D5CC7F787F3ECB33AD5BBA2 -:10D7F00090F05F582FEAEEFA7844127CF5AF14757A -:10D80000D0C5DBDF3B44FF1F8405CFE415727EAF3C -:10D81000BD6FA633D297BF8B9A2B8B732BA4EFDDF2 -:10D82000C46773BDFDDBD235922ACE57236BCF0C74 -:10D83000A17B648BE9DE1A7D1FA6D5AFA0CD5897DA -:10D84000427AF9A95E71EE7914F0B9965DF3237608 -:10D85000FDFDC18AE1FD634EEF4F893E2F687603DF -:10D86000E7072CB87F9B9E279BEA286D2151EF6C20 -:10D870004BB1719C4CF10EF9273DDEB9EB4D51EFE8 -:10D88000BC2B4DC4D1041FF1573AB89BE3842EFF43 -:10D890002FB955A29FD3EA0BD0FEE05BCAFE4B1E08 -:10D8A0008AFCA5F38B3F5FADD503843F2CD6FC5F8C -:10D8B00031AD43014E6E1FF68B45DABE183F72DD67 -:10D8C0006D34F89A04305ADD6CE56E431DE1FF00BB -:10D8D00090CECABD504500000000000000000000CE -:10D8E0001F8B080000000000000BFB51CFC0F003AD -:10D8F0000917B1A1F26FA0F1B33851F9BF5951F92D -:10D9000097D0F884B02E1303C30A46D2F420E39DC7 -:10D9100040FD0780F838109F6322DF1C103E210C69 -:10D92000F48F1803C34220DD0DA4AF00F11F207E49 -:10D9300004E44B8B30306801F1325106864420BD3F -:10D940000688CB4520FA4E02E96651F2ECD4E3A1F9 -:10D95000CCCDA39832BC411A955FA3C2C0B05695F6 -:10D9600081E1931A84BF02499E5D9D81A15605C243 -:10D9700036956360E807AA59208DDD5C33A0FC046E -:10D98000A0BCB83A840F00134DDDCB680300000043 -:10D9900000000000000000001F8B080000000000D5 -:10D9A000000BCD3D097855D599FF5DDEBEE42679A3 -:10D9B000819705B8090183067C09612DE24D8C1819 -:10D9C0006C8A2F88364E197DA0D56859223235B61B -:10D9D000DABC4012C2A6416D8741A52F5A2D525A7A -:10D9E000A3624B67D4792C1DD1B1355AAA76A49D78 -:10D9F000C8388E5A65E242AB558739FF7FCE4DEE6F -:10DA0000BD7909A89DF98ACBE1DC7B96FFFCE7DFB5 -:10DA1000CF7FEE73CB3E80090027F1CFB900574B83 -:10DA2000009037548237D608118026CDAD6F2A0674 -:10DA3000F886123BAC57B1E763E5D8FD3A3E9F5CF0 -:10DA40000B610005DBE703C4F07FACDFFAE0BA311D -:10DA500089207BA62CCDC2D21CDF2C9B5400AD129A -:10DA6000DF6F999CE9BD5942CA35D0EF05FA73B210 -:10DA700004A0E5E86FA71E32EBECBF0208455E0F7D -:10DA8000B0BFCC8259271580F7828BB3D230F278A1 -:10DA90006FB5769FA54E02F853EBCB530F4D1AFE90 -:10DAA000FE1B0A34F7960F7F3E0BD8A433101F4994 -:10DAB000777CEAD0BA07D71964489AC3FA03A43D21 -:10DAC00039ACDCB5ED2CB56C084EE73A00921CBFC2 -:10DAD0009FB39F2752932E60B50A29318FE052D908 -:10DAE0003F3301A829DB97EB763500C1E580B723EA -:10DAF000F2978177C4FD12EDDE0BAEEB04D66FBD5D -:10DB00008BD34B7B9E1C5B07C3E9C5DC0F138FA730 -:10DB1000BB1F37818FE631E9A8495E3AEABE9F8A8A -:10DB20008EAE443A3AEBFF9E8E927FBD74D441E3B1 -:10DB3000FC95D1114037C717F4AB38FFD0735E4660 -:10DB400096F64A4867ACDA87708FE353C1B896CE31 -:10DB5000EBE5694C4C41ECE93398DC1AD7BFAC1EBD -:10DB6000E11E7B74E19B58762EA9A93B9FAD2FBF88 -:10DB7000B1F7F90B581989A7A404DBAF3B4046A1C4 -:10DB8000C2C65B91AC66EB6BC7C1E6023C905C66BB -:10DB90002471BD60008C01F83BB126005957593DF6 -:10DBA000447FCDB40E37A4393EA4939EE1FD475A7D -:10DBB0007F08FB996D8AF1FF6B00D777AA7EB0963C -:10DBC000CF9764FF20BE0B87E6A771F29B2C7540B0 -:10DBD000FCD8DFF7E15F08BFD7FFBFCC5700953E09 -:10DBE000940FA17A594B617BE8CD56593DB24285DD -:10DBF0003493110555DD924B3FF5BE7402D4F5F216 -:10DC0000FD911A4243F0FD2748443FE3BFF55ACF48 -:10DC100006467227960663441F1A406ECEF0F57CC6 -:10DC2000B71509D9525F52232568BED8D3A5AC7F5A -:10DC30007209D77B77D42FCEB6CA2B8F2409BC3973 -:10DC4000E903747526B215A70FB55E367CD3BE38CE -:10DC50007DA89F933EF2D65AFAC167DFAF88691755 -:10DC60009C267D7CD1F9CC7D1DCE576D625F4B7DAE -:10DC7000C0F8F6F6BAC519ED8C91F7B592F83D5299 -:10DC80000F462A43BFFCC1FD4C0E2FD9FE2883DB73 -:10DC90007B836DBF94B1331B7B46C18712B1AFD775 -:10DCA0001CD7D7A2E8AFE5B2AAAAC9389E1BC763A2 -:10DCB00074B6317A7B12183F9C40DA66F850BA2B62 -:10DCC000D258875288DD2F209059DD1735529B8816 -:10DCD0000E52B42F267C1E5DB6E15F8DF86D75681F -:10DCE0004C4A56F87D2D6E82C38DF3317A57343607 -:10DCF0002043851A84B42F8C2D38FC4806272762D0 -:10DD0000FDDB363AE8D22B21D33E98F48A68E5F45D -:10DD1000FAEDD3932FCEF996D8E13DED7E41557FB4 -:10DD2000DDA28746EEA7C2EBE6FE30245E8503CC7B -:10DD300018DAA70D2ED8279DCDF475D1A590604F88 -:10DD400037E0AB3944A764CF6C28AAD490AE609773 -:10DD5000A4229CA61E85680EB5AB90741A47F636B1 -:10DD600003B653820695E6FB91E112F49734F697D9 -:10DD7000B271BF22F6F72B42AF4195EBB57E136E21 -:10DD8000D2B3EA509DADE39D9BD8FF189D242BA4F0 -:10DD9000D4FDD2F0F7F5A817995CAAC7E716B9B277 -:10DDA0007D900FA2B45FF5E2DDC1C75E9A3C9DD1C4 -:10DDB000475F4C01145BEB1EF318B56CFCE7CF9189 -:10DDC000521E49C0CBE05C24E07CD6C81D8774DAC3 -:10DDD00057EB213A5E74C19F2248C6C7F7FD5ACD62 -:10DDE000442F8BE6B986E060FFADB6AE8FFDF7C37A -:10DDF000C17D29A2794CB856562A0447DF3C2985B3 -:10DE0000F31CFADD7FDDFA2506E7B35552CCA313E8 -:10DE1000BC2160F3F519EF4746F53BCCF975D010FE -:10DE20009FCEF9CDFD081702E115FE9DE195CD9736 -:10DE3000AC19E85F8F783E26C5D6B3F9B2E6B74C89 -:10DE4000C0798A6599E0DD38CF2B2B8C7EE0E531F7 -:10DE500032E23328F83CCBDDED9DC8E0EC9C24C3D6 -:10DE6000BDECD1C6D2D1E559BB439EA95ADC90582E -:10DE70007F3DA9552AA3F045CA90EB32C9BB672460 -:10DE8000AE273B928BB5525CDE21BB1D887A296E92 -:10DE9000D1ABCC5E7C4662EB7745381D67D7C6B9FF -:10DEA0009DD83786E45740EC47D6B4C55990C10E8B -:10DEB0001E711D6CA24C7673B6CCE183A37C7CD51D -:10DEC0001C3F67F4F13788F13F6C92A00FE153E3F8 -:10DED0005EDC7F302A889EFD823E616D0ED54DB995 -:10DEE000EB298B7715B37DF44465D0755C5F92F6B2 -:10DEF0007933DBE322068ABF96BD674D377FAA9050 -:10DF00005D922D9F4826191C9BF75F0B3AB353FD7A -:10DF1000D114507DEAD55EC4CF66A614F8FCBD804E -:10DF2000F30718D9A27C0D30F9AAA37CD57BD33294 -:10DF3000ABAB751033D8AB901693FC8C640E444B8E -:10DF4000DA54F6BC7D2910FD025A1116FCB6475F63 -:10DF5000301406576723905DD319A9A1F5B597D75B -:10DF6000788BD1DEA957E9397CC2F061DA214C1EE9 -:10DF7000FACBC0C0F936E7432A88BC549B47F4E883 -:10DF8000D6F8FAF5EDA5909ECEDE67CFDC8FF327AD -:10DF90006F81D8243E25C935D5A40B359194D0BFC7 -:10DFA0006BD1629B32D0DD764864C9336C744A7A97 -:10DFB000D789B72C375C88F8EDAC60F45F3C7C9C6B -:10DFC00022E41F466FA9D8E28B4A32CC532CEB4493 -:10DFD0001F665DFFD04DF08FD47EA81DB3337371E3 -:10DFE000684342BC406D84D69703837F0CACE78ABC -:10DFF000F58E81666A179DDDBD1FF9ACC0E8AD46A0 -:10E000005C7C3774E9F3B46F70B786F108066DE98C -:10E01000C9DC21396104B99C782F26937C0CC9692D -:10E02000CD6003847C7D5152D63A901F91855D1856 -:10E03000C09B5ABBA7A27F19869884EF43313569EC -:10E04000953F59C0EA36FB0F8E94CE24D2E27C0174 -:10E05000DA7E6419ADACF90C1CEF0E06908FF9C98D -:10E060005B4209D2177FF285A7E1647F92E3596989 -:10E07000DEBF0CEDEE1B157F6C13D2438CEB072F2C -:10E08000FB07E55FD66CD5268FB30D7B3DD7A13757 -:10E090001628415A6FF65740E803A37ED29821F81C -:10E0A00018640D4837DB6A55C0F982410E9709673D -:10E0B000AEF2495A0682E318C2C1D0437084CB80C5 -:10E0C000FC3D06CF31073CC71CF01CB3C2D3E2E5D0 -:10E0D000EB75FAFDCB65E1F733BF17F5E00978DBA7 -:10E0E000A8438231C6915E096BBC6DD0DB47469573 -:10E0F000061AEDBFD3EF67FBF39E4D3FCC16759D1F -:10E10000D9F525049FFD3D14119D505D8141FF759A -:10E11000F96C133FFA575F617C77ED6117205F312F -:10E12000FE55F0BD4BBCBD56F8B1CB51FF33BD7DA4 -:10E1300015C4C308DF3B2093BDFC0EBC109E6E913E -:10E140008B77C86EA1C7D9865AF9176251F4ABD53F -:10E1500060679F1226349874269DA47D8B01F9DD9B -:10E16000414E6F49F0B6917DD1C5F5A3E9F77DBD6C -:10E17000DBAEAFAFD96EAF5F0D8BC7207D5D7DA7E6 -:10E180000B526CDC6BADF607DB9F6FC91AC1770DC4 -:10E1900034776A41B2B31A711DCB3550D14F5BF958 -:10E1A000B37B662E63EBD921F4E85B4CAEEB16BD76 -:10E1B000715D24E536CA87AF6FBD145BF42569E451 -:10E1C000F56D70F52D42FB20B9D5457E1D38FDB5A6 -:10E1D000BD0AF96B967E04EF955DF6F59D6AFDCE5E -:10E1E000F5328F85D67BDDAE65A437475A8F7B9796 -:10E1F00064A432E8B7874D7D28E48B49DF265F278A -:10E200006B80DB7BBFF7A5D6B3F97E83F291F6BFB7 -:10E21000F96C1E47699E85E5A9FAFDDBE7ECF7EF8F -:10E220009FB3DF6B428E3BFBADF4F6BB713F57AB48 -:10E23000C93A491EB2A3BDAE66A390A1C2B5AF3A1A -:10E240008DA698A55DD769B63B2C959C56BB3A79AF -:10E2500094F18E0B3BE3A93DF7B9FB91FF76BFBA72 -:10E2600008F5FB37FE49012F5BD7F13D2148237D9F -:10E27000AA2937DA2BD731BA4A513D3DF3628B5D7B -:10E28000C52896C6FFC64321B20FAE7BC493AA67CA -:10E29000FDAFFBE97F4C038687E3EB06FEA510E9A3 -:10E2A00075B7C4FDBF64FFB48BD9F3EB54B8229E9D -:10E2B000814E6485F3CBDB3F0F34A2DD27EDDA7F9F -:10E2C000398DDBFB5517CA65B3DD47B28BE665EDCB -:10E2D0000C7C9F7C504A4D92387C0D5387FBDD6F40 -:10E2E0003F2871F8F6B9523E846F578F3BC1DAADC3 -:10E2F000DEF52ED1ED790FFD388C7858BD4FB1F990 -:10E30000BBAB772969CF342A5FC51235A3C4F86D3A -:10E3100095E0D7557B57921E58D5BBF95DE4D7D50C -:10E32000FB5C36B9CEF0124B235E5F5262F5587F2C -:10E33000F487619DA1EAADE8EEB0564EE32E73334B -:10E34000BABA68B6BD1F8EFF61CEF0F1000628AEE6 -:10E35000B9BA77239F0FB8BE31F9F42DFC4BFE708C -:10E36000BD3145B19F3B9C806767521C72576E461A -:10E370003FCED41726BF7EE3C7277626D9BC6F3F92 -:10E38000F2879D4906FF8AFF797FE7B7D9BAE0494E -:10E390009F867268F5EEDF84C182F75A85FB61C7FC -:10E3A0001FFCE1033B18BF1CFFAD87ECBAE34FFC39 -:10E3B000D7789DADFBF8C31F8D41BB73ED13E78F7D -:10E3C00045FA5AFBD879636114FF01E935E5B1EEEE -:10E3D0006B8AF655DF27611006E071513AF6E7E0E7 -:10E3E0005E258DA1DB775EF6A43C0C3FABD9B396DE -:10E3F0004ADCAF95A487B07E33C3F3AA3D1BDE553C -:10E40000A665C277B2508E62C9D8268AFB7DF145D7 -:10E41000E75461E98AE9481F3040F2DFD96FF5110E -:10E42000B6AF678FBC8F27E01337E27FF59E8D7CF8 -:10E430005EC73EBE837F999341FF0FDBC715DFDFC9 -:10E44000812FF7E6D2BE8FB48F2B1FBB6454FFCC55 -:10E450009407A7C26F93C4E13A5B31D628C8578F9F -:10E46000FCE8811D11BEBFF50C21C77F7C623C0614 -:10E4700097DF700D5C8E7272E0098F762FEB73DD83 -:10E48000132F119F1D7FEC79B74E72128212D37B2E -:10E49000C761F04F1FEAC15512AFACFE4128ED092C -:10E4A0000FEDD3AA54439D1EA6E7AFD2F314A7FFE6 -:10E4B00055A9FD4BA40CFBB65B29E1723995477851 -:10E4C00059A9F7B9B5A07D3FA5D9B88FAF2E40BAED -:10E4D0001B691FCDF56BB8FE5996FDFC01E7DB917A -:10E4E000F8F3788F4795B286F6F7B8B00F56A7A421 -:10E4F000972003DF02ACE3F08E70FE68964E7AF848 -:10E5000081831ECCFEE6BA4FC5D7A75ECF67C3D7BF -:10E510009D8A6EA31B136F6F7F9259DEA7859C584F -:10E5200005C9BA8289C3F5950AF16461F110BC9DF1 -:10E53000BD0AC9F1B7772964A73BE5C2AA11FCF16E -:10E540005F29DCFE58B56FFF34945F6F1FF8B9A0E8 -:10E55000434EE7ABF6BCEA4E0AF99FB2CA7F1C2FC6 -:10E56000C37EBC2CE05EFD78E6F156EF7937E378A8 -:10E570006FA9C65711FEB7FA5C906443BCD5AB6473 -:10E580008C6F1C505CB6386E6768E6CB5918DF0C90 -:10E59000FB755CF7FA75C64B49B4435E7001D981CF -:10E5A0006AEC0D0F7BBF3EE4A773EFF5E1AB41B71B -:10E5B000E8E976079ED4689CFC603512AFE2B1D7DB -:10E5C00094CD1F7569B20D6E509345184FF955F1F2 -:10E5D0007FA938EE7368FF9D31D4FE39153A72D9A0 -:10E5E00078CF1952AC0D32C4A71CE3C7E729A05B52 -:10E5F000E9CC2893ADF1D5F0819B282ED102CD69CD -:10E600008C134111F4DE6F19F7EE560DD26C7EA813 -:10E610002B93ADF1554F73B3E1617014ADD54AD072 -:10E62000341B69FE71CDB23DAE2DE65F23E209B029 -:10E630006BF7EEDD6CDC3A7C57827E0C8F573177BE -:10E640008AEC98F3841CFC6761071F90E287D0CFA7 -:10E6500032F46D2ACA39A9749B8AF6C4C24FBAD55E -:10E66000E5167A5C58DA5684F472F853A531135DD6 -:10E670002D51395DB5156F28C2FE877D371671277C -:10E68000344AEB2C10EB3C34EE9A603F1B777FF161 -:10E69000355B2633B8EAA20A60BCA52EB26C4B05E6 -:10E6A0005B7FC11125E663F582A6A49A983A7C9E09 -:10E6B0009D28EF19FEEE453C32F87FD01AA5FA03EB -:10E6C000AD3A95BB5ACBA8DCDD1AA3F77B5A67534A -:10E6D000BDB7B58ECA475AE3F43CFC2D7F02E977FB -:10E6E0006F6B233DFF696B82CA1A95F3DB42810F82 -:10E6F000CBBAE91C6C497B781DC6514CFC39F15DE5 -:10E70000CB282E87CE0D241DF13D56E572C589D745 -:10E71000969620D9A53B25B0E173A6CAEDC8B8806E -:10E72000E3903771A1CACAF7EA4ACBC9EE81780CE7 -:10E73000E5F44E297E5B05E397A7C6CD8A5AE56EC0 -:10E74000249888AB7943F5F15D3C3E334BE5F2A963 -:10E750000EDA0E6531F88C4F40473A33D779A05A1C -:10E760002F42B978A08DC1538EEF6528B3D0993967 -:10E77000DE5C011F0433CBE921BAE5FC1F9D5BB6CB -:10E780000DE3C4CCF18C4DD2C9EAB6F5DBA69A7183 -:10E790006F9DE8D8A413C63F4F8D8BD030DC5F6CE3 -:10E7A0002AE6EF7D9CCE5BFADFA5F856740CD8E222 -:10E7B0008D1D4D32F9393B8EF2B8F489A6926D93D6 -:10E7C00059FB6A8637F4DB73169666252C74BD45B3 -:10E7D000D0D30E6F3C4B1B457F758A7666FD155F67 -:10E7E000E23B88E7BF9FF0937CA4E71DAED4652889 -:10E7F0001F5B8E7AF475129E37C493B86FF122F6C0 -:10E800009C8174A26EAD879616E4E70F2D37EBDB83 -:10E81000CEB0F0792866E7EB9D2DA3C7A54DB8775C -:10E8200022DCA3C4654DB8CDFD3851B764E01A1899 -:10E830008E07E7B8390B978C3AFFDDC8771EC2C345 -:10E840004ED5229F8A9A353A6730FB9BEB75F67757 -:10E85000AE77285FE1F4CE677A5D908BFBF9F0C765 -:10E86000E31F7D0E70CBE30ACAB12BD4442FEECB4D -:10E870004C68A63AA803F9C82FBFF373FADFD1F9A1 -:10E88000403EF1919A2A46BD70BAF375403C5E8DC8 -:10E890007A2B26C7ACF2DC2C7FA19A718234C58F0B -:10E8A000E888994D29076E8E66C2F3E0F845EADBE9 -:10E8B000D6F3A42D00DC4F4F7BE99C0303221AAB57 -:10E8C000171F86CA4D6CBCDD429E54ABDC2F9C7E6C -:10E8D00058EF5178FC48690859F028E2A9661CAB4A -:10E8E000036E068D7575AB15FBB1B9C9870DEEC406 -:10E8F0008B882F7754A7F3775724417C0522FE3D60 -:10E900004EC4E9CF1771C6FB5B789CB105E2179E38 -:10E91000817C7D4401F28F13136DFCEB5CE77E413B -:10E9200057FF24F4DFCF85DC2E55F74B596CFCD014 -:10E930001BE9036156FE4CC8F1C7841C3FB0ED5F74 -:10E940008A319FA023E18E214EC355FEB4C4ECD082 -:10E950005B67BEA15FCBDA77744F6E47FC6C58CB18 -:10E96000E3F28FA2DC67FD1E16723FDCDC793D9D71 -:10E97000DB09F95264E60B08795224E4C9C16D2F12 -:10E980002EDB80EB4B78699E16483F8D717D582BAE -:10E99000939D12EEFDDE0D38CE43AD061FB77BF71B -:10E9A000DFA17D7F8F375DF9AF18FF9FE78E25517F -:10E9B0004EA526D9E454B877DF8DD82EDCFBCC4D9C -:10E9C000940F23F0E0799CAD9735C9BAFD703AC435 -:10E9D000DA15F6A7D1EC66FBDAB3700A1BAFB45EAA -:10E9E000A670F51E297E5E08E9A1819F4367552C1C -:10E9F00069C3F6DD2B5E4862FF31CF364BB8ED3987 -:10EA00007F776F35E2EFFEA2D79EAE66E5645731A1 -:10EA1000D141F0A89EFF43C0F1E3D16BF591E9F03D -:10EA2000E08A358072CC73A74CE7F4F7DFB906AE05 -:10EA3000B1E65DAC5033C6C726BB3CFC3CEBCEC553 -:10EA40007D2867CDF3ABC295B55EE2FF67C1763E28 -:10EA50006B9E6399FD2BA4C464571E9D57F0732DC4 -:10EA6000D1BF40411B8F556F90391FC4D33E6BBE41 -:10EA700049F07A399E099E592E95E0698FD5EEFAB4 -:10EA800017369F3AEB52D2CBD06D87C3D98FC131A5 -:10EA90008BC3C1E133E118C74C82209BFFF6852F61 -:10EAA000E6237C1FD60DEA1B3FFAFF1DDF95D3132B -:10EAB000D8FE6C6D97E9FCFE40D5012FE2714B55F5 -:10EAC0008D9FDB3F9CEE72041FFDA04E26BE3D5184 -:10EAD000C5CFFBE19393741EE612EF73F20E78E953 -:10EAE0000C236904AB6762FA81F9C7925FC0705367 -:10EAF00099F4DBE4A7DC9263CB371807058EBC954D -:10EB000092A1F6E87FD71D91502F85C47974A97919 -:10EB1000BEAD1C8DE1FAEF32F562AB97CA9EE603FB -:10EB20003E9DC1F58B664627B42E7B5E8AA7096899 -:10EB30005D05CDFC9C6D8BD6B7DFCDEA45DF65A8C2 -:10EB4000D7D19EEB25F902DD3C5FC03CEF98B4C203 -:10EB50009EB752E4C8B719969FF519FDCCEB5DF648 -:10EB60007CC313B0650AD1435F896D5F7AE630B725 -:10EB7000E6ECE1FEE6E0B8C29F82289773393E3E9C -:10EB8000C7ADDF529AD05E0A5F58996D3D1FED7494 -:10EB9000713BE9D0EF3C80F1F80DB55E8AE398E770 -:10EBA000E8E67E6FC5A42BCC77687FC087F4B223DC -:10EBB0005242E5C1B9CFF8FA890E793E8047AC6977 -:10EBC000DDDC67163631BCDE9327938EE9287A2187 -:10EBD0001FCF176FAFF5D2797F38D0DF7B90D58309 -:10EBE0007FEF8EE1F9F6FDD5E946ABFFFA908BDBBE -:10EBF0005BDB5D425F6DB19F3F333ED88E7CE009A9 -:10EC0000C6E9FC52F68ABC09879F63E2237C205F39 -:10EC10002E9ECACB92A943F6F9DD826E760879BFA3 -:10EC200045C87BE738C54DDA0137DAFD2BB44A25F4 -:10EC3000035F4E68B1DB09E39AED7935854D76BA0D -:10EC40000FC50A1C76459AF498A98F37F88213915C -:10EC5000EE2B99BEE4F681265BCFDB9DFA78B76A8E -:10EC6000EC7391BD7B7A764238106F467C3BEDDCCD -:10EC70004302DF1F2BC601C46F408D1F72511E68F7 -:10EC80009CE48CD36E1806273038A78E0AE72F5DD8 -:10EC90009FC17E3AD5F9C09FE4F8F6E718C8F3B3F0 -:10ECA00040E45D84480E7784B8BFD2E1E27EC27B47 -:10ECB000625DFFE15268DC01415FF303D09C399F44 -:10ECC0008CC78B3E40C304DB8DCD9CBF8B160BBD28 -:10ECD0002FCCFCFE03173F679B3F61F479FE88F35E -:10ECE000B0F257AAF1AECB728EF384CB78DF658990 -:10ECF000537CE8D2383F98FB21F2734DFB699F6A41 -:10ED00007C64ED6F96390B553ACF3D01FE98C2F009 -:10ED1000F3643EEC0526479E94043E7FE7A33C2027 -:10ED200013DF83F635CA0FD4034703298CA798FB5A -:10ED3000609EC30CCA11D1FE4C3797278C6E026EB1 -:10ED40009A3FCECF0B214DF2A140D0CD0EDFD2DBCA -:10ED50006A5979EBDCB75EC67C85771EF3E908D784 -:10ED6000D6AA6361ABDC84263BFD98CF5D1F16D22B -:10ED700039FD37A544BEDBE247BA22036EECFFA49F -:10ED8000A4933F97FC8D42F6C893526A0A192A2A27 -:10ED9000D079C693D746539B2CE71D4E3B3FC7D730 -:10EDA0007FD76A5C7713B39760F8BE9976FAA0DDD7 -:10EDB00011B5F78FBB41D8D96CB98CAF2BC4BA63EE -:10EDC000AAA1201C332041E52CD0A964FE40A59BBC -:10EDD000B59F0E03F9C847EB02E3BFC4ED8CFF33C8 -:10EDE000BC197F8D781BA25BBBDE36CF1DF2041EE3 -:10EDF00042D04CE7EFBF685CBE71129BCF5D14241C -:10EE00007B38AFB1FD7A398CD97E7D1AFA9B79E2D5 -:10EE10003C1C9670FD6C9E4FE7D4DBF5B9537F7BAD -:10EE200084BDE11941AF3BE5E6487A7D85DBAED78D -:10EE300007E3C723C83F67FCF8D4F24FBFADB6184D -:10EE4000F3348C976AD1AE9BA752BC333C11AE8889 -:10EE50005BE8E1F76E223A56F2BC994D8C5F53673E -:10EE6000703E07F413024C01E179C2383985F93656 -:10EE70001B92A93ACC3FDBA04ED2ACFB583D8EDBB7 -:10EE8000B35B6BFC4D56BBF60F7E178DFFCD40F587 -:10EE90003348C7E5C1540DB97B067304C7F0BC4BBA -:10EEA000DCB7B334E8C773580F70BDCD38C2CBF5AB -:10EEB0004AADF63AE56726E0646034BD60CFC7DC52 -:10EEC000ADA6D6F9111F111E7F096D97283947E9A4 -:10EED00035D298CB5515587CB79BEBAF329C67FF6A -:10EEE0004C66EEB2F67FDCEF263BA73754A8A23D76 -:10EEF000F9A4BCFCFB68070EFCD603789ED2FBE9A4 -:10EF00009974AFA137F4A5054807BD1230CF96AD6F -:10EF10009FF10F4FFE8100C6EDC3E7198071CB81D1 -:10EF20005F40EC5E36BF2BFA689CF276C108C8B32E -:10EF3000593F1F7461FE4AECCFFEF7CF6574F74866 -:10EF4000B0F28EB361280E60FAFFB5FEC4A3086765 -:10EF5000C7987F6B423EEB62702A6487195184BB6D -:10EF6000324F26FE83BC606A127B5E7D38528BF97D -:10EF700068D56A054A1A0607DFEF577C892710FF14 -:10EF8000B55A436D366B5F7544277B6541F4FA4390 -:10EF9000589F7994D73BDC40F620F22F58F8AFFA0F -:10EFA000C3F1B4BEC3428EB7478D3E431A653F34AA -:10EFB000D5719FC39EC762A5036DA68D0E122E2B21 -:10EFC0001DCC667430D54A0786F459E8E07B42DEF2 -:10EFD0009E9A5F389FDCA870BE194EF7CDDE9CF27A -:10EFE000E1FC61CEBBA92A2782E7AB261F68B36E7E -:10EFF000D6B0EE59E68E23DF997C61F283E21BE402 -:10F000008B8B7C6C7F9704F5F333F105FA7156FA1C -:10F01000BF78043E5904038730E77E910AC92C2645 -:10F02000427E35E78DD2F116BA77E269D13C098E7E -:10F0300059E4D1C993BC6EC1A3369807AD9C3EBEBE -:10F040005F50F58E8885EF3A99FD8C4661971C8359 -:10F05000BC62E4BBE541CF0CBCDFF07094E2FB9EE8 -:10F060007813E5ADCD7A3B7035A3C33F8E91755CC7 -:10F070007C87BEFC21E2DF97038076DBD699D74DF3 -:10F0800040FFE48FD72626609C7323C3FF31326E86 -:10F09000526365CA85EA1FCBCFCBF4282F1351FEEC -:10F0A0001CC4FB94A81BA25D3FB563FB6C9387DB7C -:10F0B000BD5C0E6EF7723B70A3BBDB8BFC3550EC76 -:10F0C000A5F354E7FACFF5707E38D70355B108CDD4 -:10F0D00046F1960EAF52D7C3E350E973D9F37327C5 -:10F0E00096DD6BD58F66BF3B5A53F1D726E17A7612 -:10F0F00051995B9F023C37F09725758CDB7BD7419C -:10F1000022937DB8C3CBE304DE03FF40E74DB9A5EE -:10F1100031F24F23F56C3CCBBE2E6228CC62728656 -:10F120002DCB407AEFD0FD64AF2D8AD4BCA94E1B05 -:10F130004E07F8E798653FBDFFA3247AB91F477EC5 -:10F14000C85AE1F7D59678897F3A5ADC3D184FBB0B -:10F15000CC934DF8FA2052336A9E2DFA5749460F48 -:10F1600029E65F6189E720C933F83908D6F11C0424 -:10F170004B3C07C112CF41F03D9E8360FD27AD0699 -:10F18000D5F13C04EB781E82753C07C13A9E836042 -:10F19000B9AFB589CA7F6C6DA6F78FB7B6509DED34 -:10F1A00013D9E350968C2E6678EEBAC96DE0F976E5 -:10F1B000B7D88F8346492EEEA32FC2FD53DFB3B7D6 -:10F1C00003AEC717E571A5CEE8ED70252BBB6684AD -:10F1D000BA30E0E57D2848A54FBD0330BEB0534AA4 -:10F1E000366124EFC60DFBCE53991E2F8D5E5F93C3 -:10F1F000C3EAB76C78723DE6F74CD6DB62CBB5A1BB -:10F20000BA1EAABCEE614B7D42798FEA67EDD779D1 -:10F21000F6AF477E4638D0C8DBB2E1E0796DA58C09 -:10F22000984A80EE790C14BB53488F57E17E4D42CB -:10F23000F8B9FDFF65581F457F7A82EEAE443E6205 -:10F24000EDD39C7E4FAF7D371E66CD18DE6FB47652 -:10F2500072D569B5036594F1F0BD34CA381DB05E4E -:10F26000C33B679B91E731EFC817207FAECBC5F951 -:10F27000B7CBC7CBFF167C7BC85B13F7B232EEE58A -:10F28000FBDAE58BD7613C7460AA4C71855E171B75 -:10F290000293775B8A7F5DC2E6FDE6332A607CFAE3 -:10F2A000871ECEFF932684B85EFDB697F4EA051359 -:10F2B0007EDC9EC3EA93EE8BC5504F6E86981FE9A5 -:10F2C00024B985F3FB8FAA26E634B0E667CD782C07 -:10F2D00007E30DAA802385F79258BDADE3EA09182C -:10F2E0000FF9E3F35C7EFD54CCD3E3EA6BA6FD9CFF -:10F2F0001124FB82618CEC87B6A84AE7F7723E2F97 -:10F30000DD2EED6FB09D9B29E82483C7FDE92C2FEE -:10F31000F9E91F7AC47DB63EB22BDCBE8496CD9E41 -:10F32000772765E2F7F59A3F8529FB9B839574BFA4 -:10F330003659AE527EF6E6721EC70B842E4DA13DA5 -:10F3400071DB7E1F970F412FE569A5CAF71EAE89B5 -:10F3500060296BC8EF2963711DE15D9335CAF762BF -:10F360007FA3F74D11CAE7DE0C625F9A64F2173B88 -:10F37000C6FCF95FCFC673F1AF6B3171C788F22558 -:10F38000C90492F1BEEFC08100C2F3B7E6FDA4FE4E -:10F390007501D6BE7DB916C37D98A6D5D4611CB1C2 -:10F3A00043ABF1225F05A6D67A97911C1ACC67A6CB -:10F3B0007B70EDE5DCAEC5F7C897D00E87F0DE4B6D -:10F3C000A1906581EC4A09EDA18E7A0A2F61BEAF4A -:10F3D0002D3FB33DE742CA7F5716E5109C1D60786C -:10F3E000B17DB25E25FD5518F4A6D1DE2B34E38B3A -:10F3F000989A6CF1377257D8F39BF39B54DBFD8FCF -:10F40000B1097B3D4FF80F798E3C68C96B9E23DABA -:10F41000F1E45C6F6EE4DE6C8437172F34EBC3D7F6 -:10F420007347A4B201D759A8F909EEA8B6AE1AE5F8 -:10F43000D758686E43BAFBCCF03AE09C56DEDE87C4 -:10F44000FB3E4D57E9BEC3D930B00EC7DD2CE8BC3A -:10F45000ABD8AE4F7FE851C43970CD1CE4478C87E0 -:10F46000252DF31727FD90B4CC37B12BC7569FD469 -:10F470005D606B7FC6F612DBFB29A9336DEFCFDA37 -:10F480005569AB4FED9D6B6B7FF6BE1A5BBD227D60 -:10F49000A1ADFDF4C38B6DF5197D7F636B3FEBE58B -:10F4A000E5B6F773FAAFB3BDFFD21B6B6CF573060D -:10F4B000BE656B6FDAD74EBD38DDFBF9EC6A0FDE47 -:10F4C00007B3C50FED76BBD3EEF6FECF7A7D1DCA2E -:10F4D000B5B09BE85B453DCEEA6B6EE27E8F777EF2 -:10F4E0004C47B93245D063246818B86FD5612FE90D -:10F4F0000335C8DBA9C10564778CDFCEE4D174B4D1 -:10F500001661F07D00E5726B325EEA1A82DBA77548 -:10F51000D3DD86EA701DC5DFCDFEAA66402284F3E6 -:10F52000E93CFF887995D8CEA7B3FE96753C29CBE8 -:10F5300074157C80F967F75AFCB391FC31A7FF750D -:10F54000BAFED67819FC58F648F1662CCB9B9FAFD3 -:10F55000C1343CE6875DE565FBB3D51D6FEA61E329 -:10F560006E2DF1F3F332E1877515F7125F0C14ABD2 -:10F57000A45F40D5CB175BE260B709BB32E0BD8B1F -:10F58000FC40B564F6611DF1DEA6527C62B3C4E3B3 -:10F590002849B60FA8D776CE7DE3DD5BD8736F8997 -:10F5A000B7D0CBE451ECA0DBC073D23B045E4BB4CC -:10F5B0008A1A667131FBA2E1009693756667B0B254 -:10F5C000AC6CDB012CDBBC2534DF99B1876B50962A -:10F5D00078E773FB4F99E64EADC3FDD3381C23D1BA -:10F5E000999AB39D9F6795AAAF23BDA1557E521EE0 -:10F5F000A2031FD2814425D18F2F1224BDE1C30362 -:10F600001FACAB522AC0DE474A0D09F333AAC3DB55 -:10F61000E97CCE97B6DBABCC2FBD0DF11AA9B7EFC5 -:10F6200077C0BB93E06B97789CB62B5B7FB686C1A7 -:10F63000DF9557928331168C633458E4CD76A14F11 -:10F64000AFF0C9A6FE2779E343DEC81BB27718FDE9 -:10F650006F9727227CDD8072CB77733720BDFB3418 -:10F66000B69B686F7F2749F46FDABB3708DEAA2D97 -:10F6700069A473B1F7239564DFFA5A7E92117FBEB5 -:10F680007E058CE923E3353C7907E97B2871EB683B -:10F6900057B4E86EA327D339A047F81F981F82F00C -:10F6A00088FC902E810FF35CEE7D336F4A9C07DF60 -:10F6B000900DB6F3C11BF22AC78E668FFB987F9818 -:10F6C000B0C0BB91CD8378E9F8A4A12E4EE784C0E9 -:10F6D000EFB37D5ADE43F7863F59AFE339E62C811D -:10F6E000EF733D1CBFE3DD407EC27918E7988E5E64 -:10F6F000E997EB902FCDB8C89BDE1CC27F2C094A3E -:10F7000033D92B2E536FC927CF269875B719CF241D -:10F710009397EB35F6EF7EBC7F31B1CB7EAF69526C -:10F72000B7BD7EC6767B7D4ACA5E6756F311B40BC1 -:10F730001A80E3E7AC5DF6F70D663CB096DFC7F0E4 -:10F74000B2994F72FD6BBBFF0A42FF9B71D771BD2F -:10F75000E96A14AF456BED7AB540E8F90287FEAC73 -:10F760000C29140FA83E1C3984F6A319A779C5A744 -:10F77000DBE29F66BCC529CFFD47B7017B437E75A1 -:10F78000C2C3E31009E6DFB41489F8C6385EBA14C0 -:10F79000FDB9A564A7359F81F2E99037F1B197E2F1 -:10F7A000CEF6FB12EFD5A9BF90743E4FC232CF8D7B -:10F7B00065C90BF8F253947F62C63B4C7F5E091A11 -:10F7C000711C6F73EC85E683186FFAAD07709CF3BC -:10F7D00095670FB7B2FA9A712AE54B6AB3567CDF88 -:10F7E0008FF1427CCFEAD5C5FA58A2FFA75DE4D7D6 -:10F7F0006F10F46CDEE331E323519FD03F3ED32EF4 -:10F800004AFA453EAC1FEDDCB37631D96CD3733C7C -:10F81000EE66C6D7A6F6DADFF78294ABB1FD3BBB46 -:10F82000312573BBCA08565BE2EF678AFD9AB6348E -:10F830007DFB5256DF03A94AFCAE4485A08BD8213C -:10F84000FBBDB13120D1FD82314794588AB59FF676 -:10F85000B8FD7DB9E35ED999CE7B668E787048811C -:10F860007797B1F9B6E8CD12CACF2D4B99CCC2F932 -:10F870007D22CF78324C46FA3B5F09C6D288DFDF63 -:10F8800028A4373CAF9EF1D232D4E7CFF33C166DBB -:10F89000A2BEAD96D5B57F55483F6901A8A8080E10 -:10F8A000C58FBF773206EDAEA178D46EB6AFA59303 -:10F8B000D0BFF602EA959FB0FDC57A2FF3C7B1FE1F -:10F8C00008F3C7B1DCCBFC717CFE53E68F637D1F70 -:10F8D000F3C7B1FC47E68FE3F3C7993F8EF56F0698 -:10F8E000AA1738E359D6F8DE503CAB5F32E359280B -:10F8F0004A3E70EBB4EF8371AD048F6B9D7A1CC3ED -:10F900001C87E286C3C611F1C3776EFAB707F09E73 -:10F91000F5CA19EBBAF0BEACD765C6CF789E84990C -:10F92000FF6CF2DFCABDD7D3B9B13BFF4833EEC796 -:10F93000DEAA207D8BC8ED4A68281F9DFE97E977D7 -:10F9400039ED5FB374EA233FDA01D3D14EEAA6B8AA -:10F95000CF261794D1FD59C91F43BE70C62B4D3E0B -:10F960007ED15792F1BED4601EAD88CF7820E5C518 -:10F97000B89A5B12EB14799E24C2D8109B919F2DEC -:10F9800079C9C1F234C539824183EC2F89D96564C4 -:10F99000A7698928C6A13A47C89BBD4FF0675BBEDF -:10F9A0009BBE37D199CFF3046A8B6251ECBF3E7F87 -:10F9B00066D49A476BE6F91E0ACDF4F65BC65B1374 -:10F9C0002A19554F294CAFEAA3E855C5C3F3DCD734 -:10F9D0001F98E3C5FCE54DC1E57D685F6D8A46E88B -:10F9E0009EFBFEFC99647F0CB68FCEA63C6725C8B3 -:10F9F000ED5625EA25BB55C5F5970FB537DBB5FAAA -:10FA0000385D31F6A3F85C20D84BED3C6A9CE21FD0 -:10FA10009E08D0B996C7CBF30A82CCBFF6DAE2AB28 -:10FA20007CDE1611F7DDA427E2D86F5354D5511CA4 -:10FA30006D2AAB243CAF17785E9F67EAFD18D91B8F -:10FA40003F137836C7592FFCF5F54D6EB2BBE22D4A -:10FA5000D9466D2EE56DEEF1E1F8C17BBD9807EF5B -:10FA6000CEAF1A75DC0338EE8CD1C67DB5A6763ADA -:10FA70008DFB331CD71D5AAEE1B8AE11F2F39F13C4 -:10FA8000707E5EFB92614EA3733130F56D2A6A3D44 -:10FA90004F76967EB413A70FEFB752EF5F80F9C190 -:10FAA0002A24EBFCCAF0FB0DABF6F1EF556D55FBCC -:10FAB000C8DED9FA8994F19EC418BF24CE6B07FD25 -:10FAC000709BBD5228F8A950BCD7D15E2946BFD241 -:10FAD0006E5F4C3F6CAFCFE8B3D767BDECB4578CCB -:10FAE000DFA0BDB244C8BB3E269F7972C5808A7232 -:10FAF000209E4C5523DC0DD0DB86E7992E85E7113F -:10FB00002C11FAEA22A1CF82FE6C82BFB0C96FF33A -:10FB100013CDEF6E1489F1C7D51EBABE1D856BDCFF -:10FB2000B47F74F22FC72D7CA49AC4A4C30E6A308C -:10FB3000ECF7562F72D8394E7BA85AEDA1BCCC02F7 -:10FB400047FCC13CCFC475E2FD5DE7FC9F755E7369 -:10FB5000BC1D4C6FA1BD627ECF80BEF7C5FA8F532E -:10FB6000D3522C48795E940F58B8168C9E0C747C36 -:10FB70008ED8F761784B9E4B783B4F3C2B08F2EFC9 -:10FB8000A514D42A29BD98E789A13C59BC82AD8728 -:10FB9000ECE593745E6DB6CFC9EEA5BCB21DF5124F -:10FBA000F71F93407688B9CF3B82FC9E4DC33952F4 -:10FBB0004AC6FECD25343FC15532B4BF0C4FC738BD -:10FBC0009E781EDAC575F6FB400D0E7BC3A4878BAD -:10FBD0001CCFFB7DDC2F32F9E09D392F4F1ECFE08B -:10FBE000582925EB02CAE9EB490B7FB84E221FE2E8 -:10FBF000DFC7D052883F0E781FD5288F20BBFF2E3D -:10FC00006024D9E08764ED3C807FF60F9C25B17AB3 -:10FC1000E3A6B33BBAC6E1B5C6811FA151E6D950F0 -:10FC2000757EDD394375FF2683EA11310F732D92FE -:10FC30007CBF2DDF3760F0EEC43C02B44B0DD8A67C -:10FC4000600EA6AC6D8B150FF5CBC17ED228FDE200 -:10FC5000B04DCDD02F68F663E8EA34BF0752822555 -:10FC60007F2F0B78ACF3AB88374D0FD27D9F05AA61 -:10FC700086E73F5F148E31A75A7702B6B9260EEF9A -:10FC8000C7C06E33E19733C39FC2F7D6F95DA3C0F7 -:10FC9000FF97C6C7A9C6738BF79F193ED67CDD9820 -:10FCA00091D78B70B9E8BB1A7A50B68C73DBFE8F94 -:10FCB000287EAD5E06749F4775195A8CD179B97646 -:10FCC00027F9E16A76AD8676C04656473B60636F9A -:10FCD00037C5A9CB4B6FEF42A22F4FFB01E5C154B3 -:10FCE000D0B2F7B071A76A2A66EC807ACE2119E308 -:10FCF000DEF015A0FB2459FBFDFCFB17C573EF4399 -:10FD0000FF283BDB4B71A040F6CCFBB8B1CBE3C185 -:10FD100026FC81EA23351827571B2086ACA84A29E0 -:10FD2000A846269B02740EE137F6DE88F73299E288 -:10FD300023FD44DF8440BD2AE2E26339C940975B7A -:10FD40006B403F21F98C4AF1F7B17864C188B2BCAD -:10FD50003C671BC2539E600348083F8F6B4D4DC8E4 -:10FD6000B1341BBFF25DDE0F7EC9EF11305FA2F12F -:10FD7000B1E0105E4DB93256C4CBA34BEDF164181F -:10FD8000606B66FD2B7FB9F87E8C278C1926BFB976 -:10FD90007F6D7E6F27EB5D883F46E79A76BDE11762 -:10FDA000DFB5F03BBE97303968BFBF37CC6FF84E38 -:10FDB0009CF48007625E37D9174BC96E30FD911DE8 -:10FDC000D810E3FFE3807FFFCAD97F26EF0F51EE03 -:10FDD0009F78FCCCCCAB64EFAFF31B9417E4617558 -:10FDE0008647C90DDE7CF6BC40E67191360954ACFD -:10FDF0000FCD97A6F3FC0D52AC2B260DF9BFEBB53A -:10FE000018E519C0DA1C9BBD6CE6ABAEB9B6786CD0 -:10FE10000E2BB386EE0D69488F6BF24AC97E0EE752 -:10FE2000F67F0DE5EB47FE5BCFF7A23CC53C87B9FB -:10FE30004C286FEEEA483279EBF9B010748B5DE62E -:10FE4000519B290EE6F970BCED79BAD57ECFD0086A -:10FE5000CAB5384F514027BC5683D68EFDAAC17E05 -:10FE60009FD0F361BECD4E1F1ABFC8F63CCDEC1932 -:10FE7000EB772C461E3F007A9975FC89238C3FD97D -:10FE800031BE9671FCA171736DE376A83C3E9A8CED -:10FE9000F869DF9DF64055A0A63890374AFC3EC071 -:10FEA000E3F71BA2CD14BFAF01C6F08C4ECEFDE42C -:10FEB00098C2EFBD01D96D50648FDFD708FA95194C -:10FEC0004520FD9EABDABF1F361F9CDF13B3DB431B -:10FED0002F21A3B079E550551FC5F13F0AEAE87F0D -:10FEE0008D642FF7B502C58FE707FA6FC073EAFA82 -:10FEF000C0F75D1DB3459E6C01C0DF04F69E8FF711 -:10FF000003FBC4BDBE8E884C7889D78CA57B3AE6AE -:10FF10003871374C42791897797E02FD61F3F7E525 -:10FF200015D8F21CCCD2790FB4C190E2A516BAE96B -:10FF300093195EADF39D57D8A358D611F7C00C9A0C -:10FF40004FD8B983F38DF97CF33D2FE24EE67C0D5B -:10FF50000BECEB6B706BB4BE06C1BFE67CCFE3FA73 -:10FF600032E0F794F3C99C6E06E7BBC0BEBE068FB5 -:10FF700046EB6B10DF031E9C6FCCE79B6F83AB39A6 -:10FF80008176DB3689F3FF77373FDE81FBFA7EFD32 -:10FF90009A28E90361175F841D58BB8B543EDFA28A -:10FFA000226FAACD32DF0E26070C910F6F78307FBB -:10FFB00043A37AAA354AE5BDCCCE36287FA38CDE92 -:10FFC0003FD01AA3FAAED6D9549AE394CDE6DFA770 -:10FFD00099324FCA686FFF32C0FDC66DF9DA6557B6 -:10FFE000A15EAAF6F37B93B3BF0486C5FE6506F156 -:10FFF000011F9EBF5C0A15A8DB266FE770476AC722 -:020000021000EC -:10000000A470FFFC1587FA5A59DDE372E9A84F196D -:100010002FC433F9A98703DC0FF7B8B9BC87B9FC43 -:100020007B878B845E01A55E72213E2ECAA6F3FEFD -:10003000C54B8C90C6F0B644927E532AF414DE6F02 -:10004000B9446C95D3CE8FA0C660E3460C2585DFFE -:1000500031BAA4E87023EAE578E862F20FE2AC6313 -:100060000E1BE712A127AB5FF500E63BC0F96E82DD -:1000700063C912BB3DBFCD97D6D03ED9561101DC26 -:100080009FC5F5F6F71E37E7C3B8E3FB068B4EF1C5 -:10009000BD03FAE656867C53677CF24040E4AB8AA7 -:1000A00038E40928BFAD165F164546FDDEC14D0197 -:1000B0002E9F4CFD369C8E393C7F10726C47EB3E78 -:1000C0008A8799F015A82909E57561D33E5B5E130F -:1000D000432C19C3661C1E943D15E88738D7B343DB -:1000E000DA933FDAF74D0A407DBDBF4C7CFF531ACF -:1000F000BEEE5703F6F8EB0998F75C2964E21F1E81 -:10010000775D745889B5E9437831F1F0FFCD475BED -:100110001166563E77DE0755DC7F2BB27D67D3FC38 -:100120007EF0C5837515540B3D5F749D9BEC1930B3 -:1001300006CA91EE8E9C13E0DF7B33ED97F46F657A -:10014000B45FBEF8F8C6385B7EA71877A4FD72E6E8 -:100150001B5AEE8B0EE5C3637E89C4CFB10A30CF44 -:100160002DCC9F1FB3DB99B63CB7F5FB1F9430CE67 -:100170007717E6E359CEAD0B993F8FF1AEA215F696 -:10018000BC3A275C665ED5E07DDB794BB43D3A7DB9 -:100190005FB11B3F58D3B53D19074B1EA5798FD0D2 -:1001A000F4A79DF7079520FFCE5E54DCCB70C68385 -:1001B0006F94935AB18479AB296F352BA7E72466E6 -:1001C000E195F61B95641D3E57C6CE6D423C2C6DE5 -:1001D000F9760CE3775A6EE6B8F452A1BF6B829CB5 -:1001E0006E8EBAD2E3308E7D4D4E4D4D302F43FB97 -:1001F00096EFD078F347F86EFDD7823C6E7297D0B9 -:10020000E7CEF74BC4FBAFAE94E93B183E08A5A47C -:10021000623C37EE9E4DF7F656ED8865BA1FF75CE7 -:100220003871B1151E5F29BFA70DD03B07F1B5F19D -:10023000E3BB7B1F62A8CCF93848723447E1E35A2C -:10024000FA7F2D386378FF273F7A91EE373F89F7A1 -:1002500059E6E2F6DDB300E3DF5BCD3A86E4B19E1A -:100260006DD6BFCDDF0FD6672CA866FDB7220D3245 -:1002700022FBFD960B3A51CF6E95407C87BC6E01F8 -:10028000FA875B5DBCFD3F89F7F32F7CFBBEDB503B -:10029000DECF74931FB855D823267CFD417E1FA95D -:1002A000FF14F8BC45EC5B10F119F94CF8BC2513B0 -:1002B0003EFB738CEF209E7C9849C140F07DEC5D45 -:1002C0008BF9C6FFD00AB1ABD81AEE8AED7DF036B5 -:1002D000A0FE1D99F019CF313AF17970E5315A5FDE -:1002E000A83488EE0D6C9C05344E06386E1D6D5F8B -:1002F0009FCAE272EC93102F7384FDA778FAA2785C -:10030000FEAF557DEF068DC991CEE2EEC64CF47D71 -:100310007788DBE5D923C4AB1F15F8FDBD16DF894F -:1003200070B76BB7D37758DD12B71B36CEEE07C95F -:10033000D2EF85106FCFE07E00E176CFE1DF470D91 -:1003400031BC638259A88AC3BF513F0298FF1D8AFE -:100350001EA1BCD050553FF13B5D6928E07485FE7D -:100360009A57D8678F6E59BA00E54C8E62D2E1F188 -:100370004EA41B65A84E74D493C3FBBFBCF578276D -:10038000FA733B99FD82DFEB4816F0BC11E7FA9E49 -:1003900014F0DE13367E8EEB1B864F4FFF7DB7B118 -:1003A000FE5B27F17B39F3E5BEC62B912E2F0C9215 -:1003B000FDC59E375ABF93F307416F7F0872FB69F3 -:1003C000EB475E7AEFDC8F91E8F5D702DF9F835E23 -:1003D0007F9D89DE18BD1E71D0EB0790995E5FC9C5 -:1003E00044678C5E8F66C28BB3AE80B11DCF67D57C -:1003F0003F2FD885E3A95F9EB7FD21562A7FBE39DE -:1004000049BB19936CF750CD792AA4C45B418B7C0E -:1004100037BFE34D391099C69D35733BCAB1D31828 -:10042000F704C2ED1CF7208E3B03E54B3091E9FB4E -:1004300046DF0FF1BCF107C5BA46E29BE74EC13774 -:100440003F0D713A607CE30A9D06DFBC2EDAB37D76 -:1004500008854E8B6FEEA4D257CAF986AE2BCF1DFE -:10046000CE3700AF74A23CEE2CE67C313EF44667FA -:10047000B2C8C247F011BD5786EA24BF4D3E7A3B51 -:10048000F411F191B37F7884EF594D1A5C47BC1495 -:10049000D76D9CA5B5F3FB38FDA4B77B6060BF8723 -:1004A000F26C795EAB3F9934B8D9D007F87DC4A916 -:1004B000821F77A20F867ECE4C116752FB60716857 -:1004C000383F87AAD255D6EF0D1C12F37F1A8A57F0 -:1004D000E1FC3DD03F05EDAF91F6698E98EF7BD9F9 -:1004E000C69C50063A3F951EBA3CC4F3372F17F30B -:1004F000E67CEC6D46FBD3C9EFF357FDE39B0F8C15 -:1005000032CED744FF8B439F9BFF2F0E65E6FF251E -:10051000213BFF57E1773A33F0FFD74299F97F69E2 -:1005200026BC7C017E6F0A65E0CBEAD3C4F78F045A -:10053000BE7FF405F1BD51F46FFBFCF86E1B01DFCB -:10054000EB108FA781EF8D23E07B5388EC95470854 -:10055000FE901EA43876D72CD82B956484E376EBD6 -:10056000385E9D8FC3F0FE81C4E87EFE9FBB62991A -:10057000BE4FC3FAFD83157EB3DF9C90B8270DFAFA -:10058000F5E89FDFF5E520C5FB997EBC27F497953C -:10059000FB0F8632C8FDF93297431F6FD9DB89FA0A -:1005A000FE0B8CFF58263A5B2DE03E955D7058D0CF -:1005B000075BF7E3A1BCE1F2AF47FC9ECA3DE1C493 -:1005C000C110F957FD0B515EEDFC568E84F1A82247 -:1005D000232DA19FF073A1C72A433ABFCF20FAED84 -:1005E00054D312E6B3EC6CD624BC6F6419EF97A118 -:1005F00019238FE78483C1D7172279673C8FFDE6E3 -:100600000CD9819FC94E6ACC367E1B22BB2DFE0AB7 -:10061000C9ED33EC72DB5C871CEFA6BC17DFECCCBA -:10062000BFF7F2F3A02AECBFF86B56F97F34A409A8 -:100630003F948FF759F50F83EF9D10D72BFF8DA5B2 -:10064000133E275E4E056711EA793EDE4799F49422 -:10065000733CD36F35F7C98D3AC912D7718707ED4F -:100660005E5718E549874CF790160979B26876B657 -:10067000B0DB353F8E7F978893DFB5E2F66A3CEFBB -:10068000EEB959AB4014143471BDA7AF184FF14FF8 -:100690002D2CD9CE93CD72B0BFBB770A7E9F9CCD57 -:1006A0001BC179CF9D0769F41BB3D06EA078844637 -:1006B000BFF795E3E98E62FC74A3D4DDB81CF5EABC -:1006C000C220BF57125D728AEFBCF1F893B96E88F1 -:1006D000569DA27D1BB5D702DDF49D8CD36EEFE94C -:1006E0006ECC945F32232C9B788D8D8AD76884E200 -:1006F0005A267E87CFC3F7AF3ADE2C21BE435592F0 -:100700008657AF428C4ED05E924BFB289FE92B550B -:100710009C5E80F925A37F67A3D3B4D7CE0BE77D7A -:1007200071B8CC7623CF27DA39EE2BE0B917C5673D -:10073000835C8E5143567FEF706EC6B8BF596E68AA -:10074000D58A549775FC148F430EE64FC7A2686F85 -:10075000B500A747887AC90EA3EFB95BF6F39A30C4 -:10076000CF73DE99155F1E26F862F4FD42D0B4D334 -:100770005A0FEB772DEE2BA8AC5FE8F4FB8D5C9A5B -:10078000BF7317D3E396EFA599FC3A369104FC1E8C -:100790008DBF1C3489ED7F24649E13723AB8336890 -:1007A000D69374481E2FEDE679F9BA49275CAE68F6 -:1007B000815E43AE00D81EAEBF203A858D579A8821 -:1007C000E2A7F759FD2995E42FAF03D43F7588F4CC -:1007D0008576A614637A4AAD7BEAF038E057A5C85F -:1007E000CFAD7B8AE4DD601DD298CFDCE31FAC1B6C -:1007F000DE28AB970CD69358DF29F4E4F670DD536E -:10080000EDC4FFF13BACFC512DE8F02F4D7F3D7A5C -:10081000BB86F70C925195ECAA8D0E7AF8E7B09B47 -:10082000F05FA525EE477A5874F3808A5757BCC508 -:100830009110F2C384E80749FCCEDE8479224DB5DD -:10084000947FCFA127BA96F8B207F705785A02C667 -:100850002787F62795797FCA52B43F7E9DBF97B10F -:100860004EFE368FBF05CA383F6B1E1EDFDB27E406 -:10087000C9536145945CBE6645DBC99FF2D6C91475 -:100880003FCEAA936D7A837E298FDAAB367AEBCF8F -:10089000491C0C5BE523A4E3656C1DFE29911C3CFF -:1008A0007FA92E53D7A2BFFD7D61FFB17DBA97E42A -:1008B0004545C49FE0FBF64CC67D137839D5BEBDD7 -:1008C000D89A88D5BA46DEB74B2FE3F9F4CEE7BF06 -:1008D000137838DEF89FDF437659E91DA0EF7E7765 -:1008E00095B6511CD68CBB7AF656A70BF5A17CC0E9 -:1008F0007581F03C2C9DF3BEF8C9DF6B744FE42387 -:100900004FC6F324258BE3F9486B23F5631B4CBFDB -:10091000D372052E85E7B1D9EEF199F7112E074E66 -:100920000C4BE2CBBE82726879A342DF77B802EC4F -:10093000F914979B795F2D667E1CCFFB4A40F60227 -:1009400064C36549C7EF4C406C01DEB71FF6FB136B -:10095000E27CEBEB8EBC89AF362E8BD58A76EFD35B -:10096000FF5384BF253A97BF4B62FC3B3F97C42F90 -:100970008BD55ACEA35FFA54C99837191FC4473C88 -:10098000563B69383E96C725B7A69F1A2FA78B8777 -:10099000656AC5823C7D381E9CEB6718DB8A78FE51 -:1009A0003AC333DA9D23E183B5A3FD78E932857E2E -:1009B00077668152EFC273902B1B243A6362F80D65 -:1009C0008BBCB8FAF32DF03AF1E8C4D7954F00DDAF -:1009D0001BB8F2BB218AB7BD60E2277D2E9D5F98D0 -:1009E000E72796751EE3F95B1AAD73F1EC8A5FE0B9 -:1009F000F71512ED4CDAF2F5DACE019733CCE3BD00 -:100A000005B6EE6323ECBBED3CD0099F137E9FD06F -:100A10002BCE733150D3E5A807CFCF12E763D32095 -:100A200026CEC7B2281DB734B3BC757E97CEA4B30B -:100A30002B5A1A06E7C5F125480CD635BCAFF5B4DC -:100A4000B2F512F6F73551FEFB87F1CB723BF0DDC4 -:100A500022307F97C8A0F3A62B04FE1A98C787BF41 -:100A600099762E134E78AEB7C8F0E941CB3ADFEB5A -:100A700096EAC43DAAAC2553B15F72BF326D38BC53 -:100A80006BA2FC770E191D7E60A543DF24FEFD5985 -:100A9000275E4C7C350DE165DA67C1CBEF5171E61D -:100AA000D1790DD9B9039297EEC39BE738ECAF49E2 -:100AB00037139DB764150B3B80AFDBFCCE1740337B -:100AC000D9F74BC57DACA32E687C38C8CF752A2DCD -:100AD00072EB3B39D5B76459FC63F35CC7FCAE9449 -:100AE00049CF977B836985D3A1EDBB5143794C09ED -:100AF000CA6352B256E8888F2E7C3587EC9EAE2CA6 -:100B0000F49F03FCBCCAF7F4A35D97E843FBB7E985 -:100B1000AAC7BA67B0BAFFEBBF4ED2A07A0EE12DDA -:100B200024F6AD5AEC9B099FBF9C3FB7EC1F8F9FEB -:100B30009589F899D8C791F484B98FE6BEA11D852F -:100B4000F4EB2B53FF9CE9F7FAE050D500F2692251 -:100B5000AA520E5D427AAD83BEC705FA4E3C7FBFF6 -:100B6000A2C565FB9DA604DED3C7F61B7DC22F89F7 -:100B700051FFE5F9BC3F9471BB7190EE93ACBF257A -:100B80000F08BCE131B86FFDAC2FE689B1F1C6A00A -:100B9000BE872ECB3C25C3E71D713C473F65F0DC8B -:100BA00024168B59E4F5BE2C6EDFBE17ADEA9533E3 -:100BB000C45FCC72B937B748B5E4871DCBF736664A -:100BC000FA7EA939DEE0F7E506EDC481A70ECD1B5C -:100BD000B2133777BC65B713936F7D213BB1FFB676 -:100BE000B79E6A67FDFFF43B0FE9ABF7EAFCB40F71 -:100BF000B92DE7C17FE07D5B157F0390EC7BFA3E6A -:100C00008EB7A590D623A90C73F83B627A4C427C30 -:100C1000BF891FF3C5B88A0EE910032E578D498886 -:100C2000AFDB853FCAE86C8AF53BAE6F66713BC3AC -:100C30009CC7E38524DE3336C76574D04679A5F5B5 -:100C4000407AC43C8735F9D91CE74496DD0F3E0D48 -:100C5000FE3D91897F9F959BFFFD16B45F9F5128B4 -:100C60001FF46FA337D1F34B5BAEA4F2B2966BF9CE -:100C7000BC62BE6F4A8993384E5FE3AFFFF64646CB -:100C8000AFABF77AE85ED9CA6FBE792BF2A7B7850A -:100C9000ED3B6BFFBFCC8E383800800000000000B9 -:100CA0001F8B080000000000000BE57D0B7C54C585 -:100CB000B9F89C3DFB4AB2BBD9DDBC96BC38E11902 -:100CC00025C44D801010EB86575109049F51026CCA -:100CD0000884008104A4BAAD1436246040ACF155F8 -:100CE000F1AA7451ACB657BD4169E5B6D16E442D39 -:100CF000540AB1BED00A06A516154DE45156ABE50F -:100D0000CEF7CD4C72CEC92E84DAFBFBF7FEFEF196 -:100D1000D77ECC9939F3F8DEF3CD37676F5C587521 -:100D2000FF986442CC430D4E8910D29C45CA5B6D3E -:100D3000B4DC209501DCA898A7EDA4B0CE5132D246 -:100D4000398690B3F0773994276399781C0652441A -:100D5000C84A2BFDB742C89943B77BE6D3FEE26D84 -:100D6000362F7D42FBC9B9CB40CB64AF4C1EA740A8 -:100D70004E20F3CAF228B43038D069242405A001EB -:100D8000611A40DAAF3542679304EDBCDE7A3ABEB1 -:100D9000D518244E8011233E374B747E79BDF31154 -:100DA00050F4678DC8848C82F1F4EF9BF139AC0B61 -:100DB000DE9793D83CC4FBB9F0FE1880621E096C24 -:100DC0001E49FA7E1CECB94CEA014FFA7934254EE3 -:100DD000CA73A6009E7C230112D2692AB31332D7AC -:100DE000F68783523E85565B58A690044CC73B73EA -:100DF00009FE9D1D04FF5FE1FC78042112E994CEF9 -:100E0000D2A1677C23850752FCC595C8A17539140A -:100E10004ACED2D1A369B3129317F0D93124D93E67 -:100E20004835FEE540453AEFD78D4E3BCCB36C8A52 -:100E30005C16CAC3EE53AE857EA654156D62C359C7 -:100E4000492A21F3D8BFC9EBCAF6E641B43E1834AB -:100E50007987523ACEB3064330BF79C418ECB462F6 -:100E600013E9AC84503116F1F7E87CE74D967D71BB -:100E70000E4D3B7296CE9334919787D0FEE74A7C15 -:100E800080202DD3F70EF3E207934F5E07CBE824C3 -:100E90004EF320DA7E6E67E574928F5536E0A785B3 -:100EA000BCDDBC80E9684FBFF47F95416D797E71F0 -:100EB000C1AB940C142FA169A381CF2E32209F5572 -:100EC000356BDB2D7CFF8A4F8803FA351EEDC13769 -:100ED000CC93DCCDF8654AA353A1781AED54B03C0D -:100EE00063F24793092DCF24E43AE877E664D919F1 -:100EF000A6AD37070CC44727BEDF278724BAB6FD47 -:100F0000B99D7B2F07BC159B94C761ADB9E4CE6B2F -:100F100092A17E9413F05C06CF06607B42A09DC731 -:100F20001A1A4A9F75F83EB255A9F86E7FF1471715 -:100F3000F929BDB61A484D347E22A401E9FAF28F90 -:100F4000E2B19F0FEE9342163AFF29F2377F1C4B16 -:100F5000E753F56393D7A2E0B20C40D7E95E268F42 -:100F600084F86C53283EE71256FE88941585E9F8FC -:100F70005505874A2CB49FAAF512CAA9C03FC5F7E8 -:100F8000876ABCF9EBCB12C30AE25DF39C76660676 -:100F90007EA678FE30069E3F54E339F0FEBB235F09 -:100FA00056B5BBDB694F063E2785A4F02C45CD69BD -:100FB00032217114E9BB6E01CFAC3D38F2E5A1845A -:100FC000DC477C5B50EF904E63D9484A2723F145BC -:100FD000D303A50E260753E4E3489F13C5B202F8D6 -:100FE000DA1FF8D446398CECFF469E0678263E4A36 -:100FF000EC71BDEF3DE334E37B5BCDC40778DE9A53 -:101000006E0D35D0AEDA7F74715A27D247796002FF -:10101000D0F10F26F2B8127BBEF6804C8650C62C5B -:101020000D480805FD0606E28871944A5F91E8F3D1 -:10103000FF1DC8319D5ACA6A6250E8B8AE20F185DA -:10104000A2F08568B7CCDA3DD548B07DD845E7B782 -:101050005C318424BADE0289F1B3D554EFCBA04DC4 -:101060008D6DB3821904E621E33C143A3F239D5F62 -:101070004E2001CB8302490807075C08870432B081 -:101080007E686030C261811C7C3E3C3002CBB981FD -:1010900051082F0A1420BC387029C2118149D82E5A -:1010A0002F50827064E02A7C9E1FB806E12581598A -:1010B00008BD81D9585F10A8425818A8C4E7A302F8 -:1010C0004BB13C3A703396C70456202C0ADC86702C -:1010D0006CA0116171A001DB8D0BDC81E5F1817BDE -:1010E000115E1AB81BE184C043580F0A08F010CFF4 -:1010F000E5F10E6581934A0A70B8027C1C4BEEFE46 -:10110000C1ED52B5D3F731F09D68673610BFBABD57 -:1011100068F735B71B2EA06B94FE4E73FDFC85F768 -:10112000C39F0E27BD746BF6349411B9975E969DDC -:1011300025E10CFACFE5BB6611D00B243759C3A7C4 -:101140007DF5035BDF5FB8FEDA6AECF0C9C0BFF57E -:10115000C41BA48F4A47BF2E413FDB14E3B4501495 -:101160007ECB7799705EA39D7E938BC2849CA32FC8 -:10117000833E991974FE7122F04B5EF21F26D2FE57 -:101180000636196004AA4A9CED13A9DE512613D431 -:101190008BDB084179DA16AFB5A7C35C0C1F84B4AA -:1011A000EE1984F234A490D99FCE2B40BECC3F1AC6 -:1011B0004436E580BC852523ED2FB89290C785CDB8 -:1011C00080F61BE6FF1CEA7BFB33337FA199BC64EE -:1011D000A513C9695126C65138788BEFA538FACACC -:1011E000D0907F623C2D0F7F32F812C08B5A431390 -:1011F00013281CB12BFC1235A76464B873A28D961A -:101200002FD94376035A0B3A9449765A1E75D0B7B4 -:101210009BB20119D3E99FE450603EA146079DCFE0 -:10122000D6C3C4DB40CBC5C75BE444A2A2BF99F8D8 -:1012300077A8E8621FDD313989FE337395B34086A4 -:10124000F78D9D71AEBCBEF4D906EB8675523BF2AC -:10125000385D57A62F2C39557C72B54B1274280275 -:101260003ACC58DD6D84756E6B72DB917EF1CE12D7 -:1012700018B27B0A713EAA001F1B114FE6F583507E -:10128000DE05DF51FC5E34CBAEC69B24F45A4D6BB9 -:101290005E6CFC5EFD6F86DF23C06D6362E3D70A80 -:1012A000BC32EEFC725CE5EA91E379AE31B1DB353C -:1012B000BB983ED5E3799B81ECA1B68A8E4BF9941D -:1012C000C91509D2A68D9CBFCF87D71FBB985DF9E2 -:1012D00077C1EB4D2EA62762E19528C9A82729BF23 -:1012E0005E4406C7D637D05F34FB758FAB8F9E3315 -:1012F00083BFD8ECA47A6E706C3D37D7C5E81D5318 -:101300007F713D63E67A5C8CF7334EB7038EB2474C -:1013100080BEB6F58620C85909B1A35C104F32E7EC -:1013200013673CF0C974D95902FA860C27E847279D -:10133000E48582B04F1918540A6568064A19F09876 -:101340009E1BDA44BBCEA17E8691D29F761506689D -:10135000559C86F974DD8942DE9C951EB5BC097BDF -:10136000DF2B8F822FDCDB36E5307E9D45FD97C37A -:101370007CDEBDFD48D86EC30FD3B76D52E9C16D99 -:101380001E0F9645FB58FCFB8DE0DFA675C40FF2DF -:101390003121BADF70D02573BEEDF6019F07BF473C -:1013A0009CE0CFB89A3E44FDE4A2FA4942FDC4C68F -:1013B000CF0CC4FF3C48CBEFB852B17FC0E3F5F689 -:1013C000FF77FCFC948B30799AE06C9769FD406A5A -:1013D000871490D30974EEA3015F66A4BB42181D65 -:1013E000950924047E2FC55BD800FAD7600F819D34 -:1013F000319B5B7C20CFC4ECC2F51F70F83F769D1B -:1014000043DF3813940220EA99BBFF3ECD46F96FC3 -:10141000438E331ECAA76879B3878EEBEE24BCDCFB -:101420006C43F9A17FE948C530DD1B807D14659FC1 -:1014300015DA0FEA2907A1BC157C92F1B47FD7D742 -:101440007B9A2862CA5DBED3301FCAD76700FA866E -:10145000D30DEAE05E7E3E9F3F20E4B3579E9C059D -:10146000429E2AF3501F4AEE94DEFE62F937BFE532 -:10147000FAD3ED6630967F23F8FE82FD1B3E5FE2D5 -:1014800056CEE9BFC4ED7D63CB765A5EE99195A354 -:10149000D4BFB3A7BFDD61A4652BF5373FA2658339 -:1014A000B5C308ED4AA984DA28BE7DD4C983FD8777 -:1014B00075342BC31FEC3F4EB448D398BE5612AFC1 -:1014C0001D792E3C86703D2B3D661C2F6EE89044A6 -:1014D000902B07E72B62944260C71DC54EE37CEC5E -:1014E000AF935C4DFBBBC4CDEC82906BD05BCFE681 -:1014F000815E721B61BF6EB192A0DDDDDB3F941394 -:101500000B7BF513E1FBB89BF99EA9659D3771082C -:10151000C8E97E16476959C3E4B2349384D6819EE4 -:10152000F011C549DBC711F1470597964DBC34FD55 -:101530006B89F8E8FCF77D2D23948690B09DEEF73B -:101540004ABD5218F68166833504B6B424DD4ACC10 -:101550005076184216908F0F255CA7B9302104CA27 -:101560006F727A7162275DC7C97DBB6DFE28F4BFBB -:10157000C15FE99D3C2A361E7BDACD79C509787CAE -:10158000486972821F19F41831EEB0119AAAF4FA60 -:101590005C37F347A83F540E7C3A6341779319E8D0 -:1015A0009D938CFE1019E246BE1DE0D9B9B1044CE2 -:1015B000562DF34FD349A841ED5709FEEA74FBE7D6 -:1015C000BBE93C1EE276848A65C73088575D94EC9F -:1015D00006BFB4A42EBD0DFCDD07D712EF0213EA3F -:1015E00083EB605C5F526B01F0EF43DE9DBFB80B95 -:1015F000F069A1FB62D0E3A30ED9144AAF8A31BBD4 -:1016000053603D7FD4CD5FC08AC01AC48B7E1FBC9F -:10161000D2CDF7C1F9241FF6C127BDD7248691B7D3 -:1016200092A2CA7745E036EC47EC87DF3785B39C5A -:1016300051E5508B6F317E85C4F6B5C42431FDC7AA -:10164000ED28D52F4DA8074204EDA6CF223D0AF67E -:10165000E6A4779417EC762C7D23E643F138B4CCDE -:101660001EA55E2265D1F4C45637F30F2A4C74BF11 -:1016700040EBA51563EA615E15769B047C27DA6D65 -:10168000E2ED043F8B78959CF8CD18A03FC407A3EA -:10169000AD7F1E319E52C7A33681ACA5307C79A3A5 -:1016A000F82BB1F075D0D4520AF33AB850260DB4E5 -:1016B0009F93FEB16924CAFB02BE077C43E9B22AAC -:1016C000898DD743CF21D1F177706D8D77B2A997EE -:1016D0009E7DEA2BE3CAC17E97031E55E31E70333D -:1016E0003B7F8C4362F12B4E5A6F9E7FBF938C04DD -:1016F0003D756A4CD00E71B1EE5F3500BD7F6CC791 -:10170000784579E5E9310D2355F82C266824E7ED75 -:101710007ED0A9D0E7E5439B5282B6D8783C0678C4 -:10172000A478BA031E8CC378CC1FDC17108F2179E4 -:101730006EE437B23BCE1B8678E45BB217FC06182A -:10174000D78FFA93C5935739D9BCE2747E5E79601E -:10175000B946BF244424124A52958DAD189F4D8836 -:1017600018F1B95EDE9ED2C99BC07F2C7A0AFCEBD1 -:101770009FFF9EF3E5C1CAC50AC40DCDF1D1FDE0BE -:10178000EC2449C3576FAFF56BC67BE75B59B35F7A -:1017900016F0EFBCFF93FE716910AF2A370787F68A -:1017A00047CE057EDEFEE60127F41BF79525AAFC51 -:1017B0009DE2F689DAD3E6EB14953DBD516E02BC8D -:1017C0002718B97ED3C99D0FEC2AC5E7E56057E914 -:1017D0001413CE6357E791603BC491F5E30B7BAAEA -:1017E000E72F615FF574137CE049A2F44BE8A59FF5 -:1017F000881BC6922F21579D5CFEF5F8D7C31BCCE2 -:101800005ABF47C0CFB99C9DF4C79120D58F379759 -:10181000C82122217FA07D3C78BF84FE66B8D28299 -:1018200076B9AA320EE3B3550532D657DD29A3FDAA -:101830000C53FD504BE7F347AE27F4F1D912227950 -:1018400027ABD63D63749CA67CE3C27BFFB816E24F -:10185000CBC52605C6DBAFB07873D027A3FF4AFB04 -:10186000F086213E7DDF655EB067821FF6FB6494E3 -:10187000B7E09BB21786EDE0F1E8FDCD052119E850 -:101880002CF97BC6510643FF550AD0E15DCF1627E0 -:10189000E8BBB86F1F282BC3FDA35F2940BB499D40 -:1018A000553AEF382EA793D28BAF073BFEC1661394 -:1018B00081B8D107AB4FA23C77AEADF74E1EDA1B15 -:1018C0005F16F1617D9C591F5FEE1357D6C59305D6 -:1018D0003FE8F9A422067F087D158B3FA81EAB4A7E -:1018E0004AB9703D26F4C77B7C9D93D2B7DCD940C2 -:1018F000F190B040463C08BE7CF79BDB1F013D1CCD -:1019000047F9631DF0F3B74FBC02FB10B2588A1AB7 -:1019100047DEDE63F7285D727BE972A37F714F19A2 -:10192000C47F76CD8A9E32AC5F6F5762EBB573EBA6 -:10193000AD61492C5EA1B73B7A79F857DB9DF2CABD -:10194000FB73E1FDF2CA8521801BD3AD35A07FF585 -:101950007A426F27C47CF4F34C88C824344A3D6F24 -:1019600005DBF5DA0933D607AC8E7C70D6CFC431EF -:1019700018042710FCD2C371A1461CAFFE92329C02 -:101980007FFD588001E2ED0CC2FA3CF1183F68C9B6 -:1019900064EDE52BE2993F3EDA8DEB9485437ECAF8 -:1019A00085E546BE86516EFF734914BF8D3E431CCC -:1019B0009C2B4CB21BF742C8A565A28158482F9EAC -:1019C00084FF4E203240D78B7512EC3B0BACE6C146 -:1019D000E89FFE16FA216BE8BE90F2FBBE7DF2CEC8 -:1019E0006D7489FBBCA312A3F9E702CEF1FC10F5DC -:1019F000C2F5812A84877EF04E36C8EB2D92FF55C2 -:101A000090838EF2AA3BE15CB86E978CE74A736EC6 -:101A1000797718DBA769CF2765873517E2288D52BC -:101A2000BC17F488C063BBDD8CFAA5F110D3838D9D -:101A300047245E66FB889779FDC9F7EDB8CF10782B -:101A4000A7EB790BC6F7DDEBC2F5887DC677584F5B -:101A500027E027F67A329DA82F80AFE4DEF9CB7617 -:101A600023AEAB8BC47B61FE011E0F22EFC7A1DF4B -:101A70002CE85BC7F94FD07739A76F57DBE99F5C3C -:101A80004ADBB7F8DC78CA2067115C6FD7FB09C85E -:101A90001F62BD940F4EC1FC76B7313BD172D8CED8 -:101AA000F0652FCA85F909FFDA99C4FC64FDBA2BE9 -:101AB000C43E9DFB19E0DF429C62917BE2D9A431D8 -:101AC00051DA73BF96E2D9904CEB4B9CE45488F406 -:101AD000E2598C23C615EF3992B57E4C058F2BBC8D -:101AE0006F22E5104F84710B55F35BE32E7124A731 -:101AF000F41DF73BD07140F239F9524BC73AA3AD10 -:101B0000594A243DFB620CA5297DE55C2F67525B99 -:101B1000FB57703EAF97FF33867A22D17E6F95FDDB -:101B200007DD1436FA49A765705F79389F1EA1F466 -:101B30002E484EE9AB4FFA4BE709C952CF3E86D348 -:101B400079427214BD27F03DDC5DF63DA887F5674C -:101B500014E23ECF0774073D611E84E3215F76BB2C -:101B600048E851DA2889C751C47C202E1147DF9BF1 -:101B7000999C83E34A461234D17252AE5702BDDFBC -:101B80000F3E98F92FE6839B92CF29CF61F44B96B5 -:101B9000717A2F1379163BCF9D67D10FBAD5C03A12 -:101BA000CE18BCDDFE9C0BA7DBCDC97DE4F3E6E4DB -:101BB00073C8E770B7FF1618AFD14C4EA11F5E5C1B -:101BC000E981F10E387C9F24D2E72F36707D924355 -:101BD000E946EB5F4996515FDD432E463DFC3D8370 -:101BE00001E7DF45F5EFA339D1F83E6874D3F7CFAD -:101BF0005C4DF03C8EAE6F3DE3CBA004CF6F9D47B4 -:101C00000CF0DCA33410C305E8A196BEFCD9722EFB -:101C1000FEA47AE85EA8A7FCB80AF8D1AA388DE736 -:101C2000D2433F4BD6DAF97EF0DFCFD478FE17F0FF -:101C3000DF2FCFCD7F17CC57CF45D307828FC5BEBF -:101C40002056BE10954792E1EE3B2E215E3C0F2BB5 -:101C5000715899DDDD21A19D6D3C52E0C7B2DD8A4E -:101C60004A41D8E1133B59BD3C31BA3FD896EC66A6 -:101C70007906AD2BBC464D1E48109FDFE53BE11CAD -:101C800042F5E254D986EB4B2A65F143B17EAA674F -:101C9000A74F49E57153BA9EA42C868724EA0FC04A -:101CA000399A83EF0F128B8D1ABF5FE0ED56B94C56 -:101CB00082B8B72B9940DA0DF5EB570F87F37B9776 -:101CC0004FDB3E856CFE52C64108CA839BDA6F88A3 -:101CD00063254DD3B5837D483EB4573DCFE9BB9FC7 -:101CE000F83899EF27CCC4037685C815E7E41BD5EF -:101CF0007EE2F3E47EC4454E261BF8798AD67EB593 -:101D0000C691A871818614BE2F38E542FF57E6764A -:101D10006B72670EE6A7ACB42B182F9065AF757A7F -:101D20004EDFF75D3E035154EB4B9A164F14D5FE30 -:101D300021A5CCAD29A795A76BDA0FF00FD2D467F8 -:101D4000D45CACA9CFAA2FD4940706C66BDAE750AF -:101D500001509707375FA9693FB4E56A4D79F89656 -:101D60009B34ED2F0ACDD7D48F787289A67E64EB91 -:101D70004A4DF9925D3FD2B46FE4715F3D5E2673C8 -:101D8000BC361A99DE69B015623CB2D1A68D4766A1 -:101D9000F37625891372210EDEF861412EE0FB6592 -:101DA000C7788C8BC7E20BBD1E8BA53FF5CF2F4BA1 -:101DB00061FAEE8B97CC069083E5BBA9BC5E42CB63 -:101DC000B6F736C09A9AF3D879AA91B0FC1E71BEC4 -:101DD00022DEEF395F317A597CD561239BA2F04531 -:101DE000768A1235FE29F82816DE1AFA89B7297C78 -:101DF0001DDF156FEF4B2C3F55ADFF774499D79AF8 -:101E00001416DFA2F6655E0AF37746C7A327EE44F1 -:101E100079BC50FD2FE641F5FF9214F443DF98732F -:101E20002BE8FF9D162FECC9BE287FA3FA0105DA27 -:101E300057B3F6066F2ED02556FC7B4D4A9FF87798 -:101E40000D8B7FC76BF0562BE45D17876B747C8D11 -:101E5000F1EF46B337B73FF1EF5AD031294007C60B -:101E60001F3DF4E5F1F358FBA000217B25D8F7D8FE -:101E70008C0A9C739D6F5F4BF7B3B9709EDA02FBBF -:101E800026D53E87EE6FF9FE260EED02B57BF7A64E -:101E9000A0DE237B15FAFC0CDDF76E52A028EC9F28 -:101EA0004FE3975B88D76A96919E0FA6E07E97AC2A -:101EB0008A93215E16DE3721E73BD9F3ED291760BF -:101EC000CFC9F9CFE5D0EE94D2F5AF8BE277E9CF69 -:101ED000E17AFC6FF0D3243C8F433CADA77611CE62 -:101EE000E3DA53987D5E7F88ED93D71F99E541B97A -:101EF00049293AE7395C7FF5CDAB297DFCD25753B0 -:101F0000CEE1978AF5AFE4FBDE29725E2BC41B4F4E -:101F100044CC883799B0FCC8BA3D2612427AB23C0C -:101F200063414753644307D86713D1E7152B89B042 -:101F30006ED31E19F5134966F541626D003F27B156 -:101F4000586BB75C3EADDD4A9AE6D6D931ADDD4A75 -:101F50002BD7DAAD017EADDDCAA829D4D931ADDDEC -:101F60001A1898A8B3635ABB35B8F96A9D1DD3DA1D -:101F7000ADE15BB476EBA290D66E8D7872A5CE8E75 -:101F800069EDD625BBD669EA0BC29B34F5A3F6DC16 -:101F9000A3298FE9F80F4DFB457B9FC3FC9BB1073D -:101FA0001FD5B41BD7F94B4D3B8AF00EC8D35E80CA -:101FB0002421E4D263CF6AEA17703FEDB2EEDF6806 -:101FC000FA212D2CDF3A48FF037AFD95F8CDE09CED -:101FD0001849F7AB1994AECB4392374C9B2DDEB525 -:101FE000A308E6F1D9E12BF6403F8BB668F3B417AE -:101FF00087B4E53A322811F4431DE58B10E593A52B -:1020000090BFADD26B4B49BD03F321FAC9678BF684 -:102010005E4330EF33E8EB80FC74B14EC16F3ECECF -:102020006F627E62BD4BA9DF17567AD7E9A3FFB175 -:102030007D64A719F8B67A9744FE43EABB9E9AB628 -:10204000BB37644459977E1D7ABF734CAA368E3DC8 -:1020500045B6615CFFC49BB297C507B572B8722FD5 -:102060008BE7AF7C5AC2F89A1E1FC22F8D85173995 -:10207000C8F60975C9241452C99FC2F161F168E517 -:10208000EF04FC03E6F3B01C82BCA038255ECF6FE2 -:102090004561D217CF09B95A39D5E3D9EE4D8FCA68 -:1020A000570AFD0FE6514DD8B9949EAFF4785FBE44 -:1020B000EB6E33E8C50BC5FB8254EDF9A0383F2821 -:1020C000A1AB3547C9831378A5FBF225A929B1F740 -:1020D000ADB7A45EF0BEF596D47FEDBEB521F51C7C -:1020E000F1B32E889751BF521F2FEB1B1FDBFD95BD -:1020F000E4C038348B7FF9BD5696AFA2B393B91EB6 -:102100008D9DECD9F77E28851A69E7F50E5F0BAC3B -:102110006F85C37737C0990EDF3DA92AFC3452BCC6 -:10212000E0FD1C6AA77644F10FF7A50ABFA80CE3EF -:1021300022EB4B587B7DBB5FA7B2FB40ED29451ED0 -:10214000F43B8F1430FB692F3AA7DF79173FCFB9E3 -:1021500003CE0B87F6E6F1DCC9CF55A8D8F9806E1F -:10216000EB4D651E759EEF83A92E1CCF31EED90E67 -:10217000C8776E741A9C9202FEB301CF459B7CB661 -:10218000693BF3D87BC99AF7D8BD2319F00DFEBC83 -:10219000CDF8B59A6FF7515C42BFB1D6B92F95F91A -:1021A000BB26E2B382DE15E7B9A60F0BACA06F8D9C -:1021B00092D7192D8FD3C4F3A426F2F35CD9C9CEDC -:1021C000777BE4FC3C7952373BFCAFA9F9549CEB9C -:1021D000CE76F8F6C1F380316801FF32608DBEFF24 -:1021E000FD13A7E35DB03EA4A70DF908C797FB1543 -:1021F0003FF9732AC6E58298AF78ABEC3D06F1B99A -:10220000FEC6AB3E4EED13AFFA58CD877AF9A3FE6A -:10221000E72789908797986EC4ED84D19B0BFCDFEC -:102220000CFF1E87F1D5CF61DD7DF24F1537CFA7AB -:1022300055CE994F2BFA2977F94EA5B2BCBFBFA551 -:10224000B2BCBF2659D58FE33CFD503CE5D6DBFA46 -:10225000853F396D0CC6358FB160C285C5351D69A6 -:102260007DFC4747DA39FCC733878627C279B288B5 -:102270005BE9DB59034999EAFB31CD2EEDF81B0AE6 -:102280005979001F777922E3FB91698C8E220F50D8 -:10229000C4ADADD3890FEE3BDCC3F3B3453F23D3CD -:1022A000ECD83ED53D71645A0A9CA749B8AFDCE032 -:1022B0009234FBCB4F524B46C27A86F3FE47A6318F -:1022C0003EDD3688C567F479902778FB13A9131192 -:1022D00052825D04F834CB72543C16A6B1F97F9259 -:1022E000C8E45BC4CFAAEE67F7BB44DC4CC4010969 -:1022F000F1BE9D40F5CA479B4D04E25A0B65DB06D3 -:10230000E0C39EFB73FC5CDD49FF037B5999578654 -:10231000F947DFF5FE16E033C1DDD75E5E99D6E3FF -:10232000A7782FF01ED7ACB40B386FEF8C677CDB2F -:102330006DB7613C5BDF6E29E787CD3C4E01FA1A31 -:10234000EC865B26F5D1ECC7528EF733872C3EF432 -:1023500063A6C5633E8738FF3052FE4C74631A781B -:1023600010A035909109F7897ACE3F1482EF25D9D4 -:102370006CF89E5121613B5C09357A25C82FEB34FE -:1023800077AE4F83F95E2679E1FE405A85B33D2D45 -:1023900019EE112A28661B7288A318EA0B0C58EF55 -:1023A000BAD6B9C10479D70A81936C62A2E3D8E99D -:1023B00038F7A6E5B07505AF694FA3ED12956E32FB -:1023C000280FF48873AA07E4B89CE5AFEBD7D7C40D -:1023D000F9D5B69EEE1B001F4AF43CF0A63483C824 -:1023E0009B6F047E2D51C84E762F8AE5A1429A3507 -:1023F000E60B7A59BE7402E41B0D667A06EA7FEAA0 -:102400009AB411DE13F225737C03DFABF3E1EFE541 -:10241000E324E9E453E0930ED000F910C6E904F98F -:102420007A6645F4F93EC3E9BCCA51F620F0CFCC38 -:10243000090D98E74EBE397B562E02A797C9097D34 -:102440009F401C222E99E9DF3845417D4C9C12E6C5 -:10245000995A156F0D94E36CE39D32D83D0B3F2FD5 -:102460005C6020462A6F93783FBE72227D9CCBE24F -:10247000AC4CBF1AC9C7422E648E9C22B09FEC8F11 -:10248000FA459B13E87A26D9F6E13962DC90FA1214 -:10249000B857F0CA3CD6C73D31F2F63FE17ACC2DB1 -:1024A000FB3D06F0E9837F79EDE50948E78BE1869E -:1024B000E61DA6CED7F65CC6E3E7982FDEF99A2F85 -:1024C000EF9FCF2F7F2DADF3B5A6BCEFC2FF5E0906 -:1024D000F4F82794B160DE7AFE17FAECA0EC3F78AE -:1024E0001BC5FF7594A90285008DA402E9CDF28772 -:1024F000AEE5780E7E4DF16CEDC5F3756D7B117F09 -:10250000074D74DE747CD344866AD38F12793E46BD -:1025100008C7BDDEDA3205FC9B2E73773E8CDBF5F7 -:10252000C23B5941AA4F0EFDF8A49D50FEFBC0D8F6 -:102530006D87E7C756BF61F751BC1F5A2DE3FD37C2 -:10254000BC97ACCA07FA9CCBCB959EB2A3C057F3FD -:10255000D67E5BA4F6B3492005EDEEE2900C777CC5 -:102560007BF4DFD2271338D3B1F2B2D6244D59D839 -:10257000E36596E8F7C40779985C2C7E6A9B19F2AC -:10258000E1AFF4F8FF06E31FE3F906C776DA717FDF -:1025900025E633FFA90233EC273F68B39030F0BD46 -:1025A000B1C344304EE59B2E51BEF5733ED4CFF3FC -:1025B000D51713B0BF85F7CB1847AAA46305285ECB -:1025C000FD6D8BD9FE56B78E858794A9A0AF166E88 -:1025D00094485061ED5753BAF903B7E3F98A7E9DE9 -:1025E0007AFB729AAC36831ED1DB9705C4DB3C01C3 -:1025F000EC568BF6F9A2B63BB0DF45E7398FF178A0 -:10260000F8FEAC888C3D3B18E2CC83305F3096BD41 -:1026100039B69609E5A76BAD088FAF75223C0ACA9B -:1026200094E279E9AEF6573350AC3B8AC00EC5ED63 -:102630009D64BD89F4FACFC66DD7841F52802FB533 -:10264000F990151CCFC27F5EC4EF199CCF7FAE807E -:10265000759E231FB2A29FF99027F68CB2C2F3F1A8 -:10266000021F63293ED0FEE61D50C8F9ED6F2CBC59 -:10267000C47A6F197CE7200A9E85DC1CE5FA7DC1CF -:10268000F6591BD2E9041A5FF86B7627F2258B43C3 -:1026900088732AD9B3A103D62F135DFC2F48DE24FB -:1026A0002AFED5F3E722E26576C7C6DEB3F2B84468 -:1026B0000F5FB6DD8978157C04370A0C1E80618FA8 -:1026C000A1B8EF7703FA7C1FA0455BFEC2D4990D39 -:1026D0007A63912E5EF085147DFF35DD3388AD5F22 -:1026E000F14D85BC8885A46C038BABB7A09E3A6680 -:1026F0006C79F53690E7ED4C9E963DFFF4AF414F77 -:102700002DF9AFFB1DA0A73E31B6A4C278B58FAF9F -:1027100077805E3F660C3AE0FD4F4272D4FBBA4FC1 -:10272000787ACE056C9017B61C590C042C3803F43B -:10273000E4DF1E3739218E5AF7A4256CA1F858BE64 -:1027400093E191968FB0F2ED88AFBA5D5A395CF2A1 -:10275000C4FDA90AEEE783191C7F19A0AA976F3759 -:1027600061FEE8F237652F0C5347BA717DFAF761C5 -:102770001E114AB7BA56B9D29CD8B79E7A3C669019 -:10278000B3BA9D8C4E753A3FB386EB653DBF3FE0D3 -:10279000E17E26E7738A178C87897C561262FAB924 -:1027A000F1170FE41FA1F33ABEFD358794D7CBEFA5 -:1027B00004B22EC12F6FAD9A077906B1F8FC0B2E2B -:1027C000173D7A9FDB1965179D18F8FE6D0CD69A98 -:1027D000C28E4B293E6AB799BC41FAB8F669D967EF -:1027E000033FE95D0B7EDF61E9D3AFBC3D9ECE6F59 -:1027F000E90E53F274B60C1BE86741A73AE0EFC24A -:102800005EBA2C79EE1533E441C2F3D5EE5EFA2CB4 -:10281000DDD16E86BC4A3D1E27B5B69B997CE9E8A2 -:10282000D47A642AD8E5C65F9C31031F7CF2A244A7 -:10283000C085D4BF5FB3ED1507E80FC013D80F41B3 -:10284000AF1EFAF5A15B78C66F46633B279CD3C4E5 -:10285000A25F00E63206F9FB99DFD0F16BDEB378B8 -:1028600061FD35CFDCEC8075FCD558CFF8FC91F5D7 -:10287000A9608F6B4CC1542742F6BC66EB0F90FFEA -:1028800016BDFE8354827AD33700E497AE7300AC52 -:102890006FE1C3D7E1FAAA891FF9AFE611B90CFCC1 -:1028A000C4D346322D9A9FAF0C60FAE9AF8F5A70AD -:1028B00053F0573361DFE1F893CCF2F8C80AF443E0 -:1028C0007EC0D74A3531964F5B199D4E79C4FD7550 -:1028D000A6C7EA78ABBAEDB7A31EFB34CB9706F2D6 -:1028E0004EF1A08DA7BE3E258DEB3FFC5E0ABE4794 -:1028F000F96E123C87F61D265F5CBEE63D9ED7CA88 -:10290000C65FC5C7A7F38E87B8DC5F53B5FB570119 -:10291000670C107A807410357FC592FBED1B91AF68 -:102920004EBDC9F4CAF2D0AC6958DF610AA7417D37 -:10293000A8FD5A09F502F52FA2C9F57613976B6D1C -:102940003D9DA75152E3F745762FAEFA3EDA4EE5AC -:1029500087F4F28DB9F7794EAF7C8AFC8A453AFF4D -:102960004C40BD5E481FA0B57FE27DF2704AD47B2B -:1029700058BDFA20887C516B0AFDFC3F408EDFB5C4 -:10298000E03DC3DAA74DF8BD9CCF9EDAFDF64D942D -:10299000DF3F6B15F2ABD5B37AF9AD79F63A124D4C -:1029A0007E3F4B2E2351E5973E8F2ABFC92C7FFFD8 -:1029B0007F5BCF2E8AA167270FD0EA59EA4F245EAA -:1029C0004A8B9FFE72E940DC67E9F02AF0A9D79BA9 -:1029D000873C0AE257AF37E9DF9B448547813FC117 -:1029E000974BFE73198ED3C3BF823F05FFF6F0A746 -:1029F0007EBD5A3CEAEBE3E0CE514A2FDD4DEBE8D9 -:102A0000FE1ACE5D5F90F1DCB54BE976B8212ECB96 -:102A1000F36EBA9CBCEC62E5EE14F306D01FE279CB -:102A2000771CCB43E82AEB76B8547EFD9136D9016A -:102A300079F59DA1E8F91298499102B74463D53719 -:102A4000F0EFD6D8B203B02F6B61E73D0B1A6E7072 -:102A5000803FDDD536786639F8F17B65F4A9BAE2B6 -:102A6000797E55D0671C40F15AC5964C8E91E04F47 -:102A7000C1CFAE6A5B3A1D368D0B366BF1516DBB23 -:102A800016CFB3AAEF33F5F205017F2764063FABFB -:102A9000E661EDF325905705F4D1F1911FF828CAAE -:102AA0003D8C3B051F159002B64FE6E7555CAF4DD8 -:102AB00091F3669643FEE21E764FE2449B4C36C08D -:102AC0007A9FE2E757C114E4CFE5948FD571CEE346 -:102AD000C067C363DBEFE3BF3A54741B6D52FBEB7B -:102AE0003FE73F44E1F15FBF3BECB7507EFE9DEC1A -:102AF0003F93BEED27BDF8D55CCCA37CD142605F8F -:102B0000D4F5E2EFB36F83F26F2C5E9867D73AB6D5 -:102B10003F0EBE6847BBDE95C5FCBFC617CEE47747 -:102B2000A27D6A427AED1AC0EEA99E68FBFB61099C -:102B3000F2E9DAE8AAC0EEF27D57DD6FE2707FDDE0 -:102B4000F5C219CDBEF2BBAE6739BFAFD46527E57C -:102B500070BFB8CBC5EE77D6FD76DC63705F71D9F8 -:102B6000CE767315AD9FF4BB6FF341DF743DCBFCA4 -:102B700009EADF6E05977AF780039B4D14CF5F80DB -:102B8000CF974EF71FE989A5700FA32F5E181EBAC5 -:102B9000281E605D142F35A02763E1E3BD01ECFE24 -:102BA000C8BF1F3EBE9C0BE3D7B68D25104FEFC5A7 -:102BB0008BE463CFED987741D7CF9EBF78261FFC7B -:102BC000A3F3AD37F2FFD97A53D3FF5DD7CBF87DAE -:102BD000EB00667FF47CDF97AF9FBF05CBCFD8BDFE -:102BE00038DF7ECA7B51FABFABBCFFEFD0FBDAFF08 -:102BF000B3F4DECBE96D77C2794AD70BDF66930B6E -:102C000058F7CDFF47D7DDE3E718BCD6D1747EEF88 -:102C100091D0752552EC3CCE50BA761F3183FB1112 -:102C20003392ABD17F98E163F1954652B807EEA994 -:102C3000057D329E3B60320DC543C7B50521CCDB17 -:102C4000320687FE14F2B8AE5FE665DFF9D2EEAF6A -:102C500066A44E9B06FEDBFE063A2FDA6EBFDDE071 -:102C60006CA44B98E993D1DFA310FDBCB7265E8519 -:102C70007921338BB5FB8C9B74FB861BCAB5F5D7CA -:102C800093475320FFEEFA1A13E60B5DA76BBF269E -:102C9000DD89EBBC81D4AF67F1990BC353473ADBB5 -:102CA0004FF6C5C3B9F1D6074F7C3F89B93C4A5F9F -:102CB000BC59FC6C7F69A115DCDFE279722BFB85C6 -:102CC0004FC2F79D163EB4C0AFC5C7BED7A9EA171D -:102CD000F122F07EA1F81674D2E35DE057E04D4F8B -:102CE00087C7E04C42E58FF7429147E227EA7CCB69 -:102CF000193D7EA30DF178603BBBAF70A0B86A733D -:102D000001949F92D05F3B3D6114B1D2F5EE3791B3 -:102D10005DECFE974F7116F5E6B348C5BFC7730566 -:102D2000C82754EF4B219F50BD2EC8275497219F91 -:102D300050DD1EF209D5F5904FA8AE877C4275197B -:102D4000F209D5ED219F505D867C42757BC82754E2 -:102D500097219F50DD1EF209D5F5904FA8AE877CD4 -:102D6000427519F209D5ED219F505D0FF984EA7A79 -:102D7000C8275497219F50DD1EF208D5F59047A82B -:102D8000AE87BC417519F205D5ED2F8FBCA42997EC -:102D900090D734ED2759DFD094A738FFAC69FF7D79 -:102DA000CF479AFA2B94CF34F582FE57E59ED43C58 -:102DB00087338B6011EC63D85FA9F7EF9A7E8CA400 -:102DC0000CE3CC66528FD00AF15B0AE3492B421B1D -:102DD000157380570EF35F9C01FCBA35B801986BF0 -:102DE000FFB833D9A0FF0F4CB886C51FF839C14CC6 -:102DF000F8A7429938E19B4CD8D78A734F474426AD -:102E0000E151940F2312426724818493281F46E2E4 -:102E100010BA2349F83C29E242981CC9C0E729911D -:102E2000010853238311A64572107A2223100E88BD -:102E30005C84303D320ADFCB881420CC8C5C8ACF96 -:102E4000B322E310664726E1F3819112844AE42A13 -:102E50008439912B100E8A5C83ED064766211C1283 -:102E6000998DCF87466E44382C52857078A41261B4 -:102E70006E6429C28B228B115E1CB919DF1B11599C -:102E800081302F721B3E1F19F921C2FC4823C24B0F -:102E9000220D08BD913BB05D416423C2C2C8BDF89C -:102EA0007C54E46E84A3230FE1F33191071116459E -:102EB0001E433836B20D6171E43F118E8BFC02E186 -:102EC000F8C873F8DEA5911D0827447E8BCF2F8BA1 -:102ED000FC37C2EF4576E3F3CB23ED087D91D7F0C5 -:102EE0007949642FC2899137F0F9A4C8EB082747C4 -:102EF000FE8CCFA744DE453835F211C2EF478E2055 -:102F00009C16F90CE115914F105E193989EF5D158A -:102F1000F912E1F4C8DFF17969E42B843DFBFD0986 -:102F2000B1EE25FA0D6721AE6573F7EB3B5F846C5C -:102F3000D19C4B3D90E0403D397335CB23D9507245 -:102F40007232FAB52B2C0AFFBEA64EAF7E6303FF8A -:102F5000613DD40C607D401EE01CCEBF078A77A780 -:102F600080BFB4A1B0B316E22177E6745600BC2F3F -:102F700083F90D776430BB784F068B97560E73B28A -:102F80007B062B86E2F91549EEDF3ADEE4F659B40A -:102F9000BF398B976DDDD9782FA09FFDF4B7DDF990 -:102FA000F2A37E98E17F2203FD22FDFDBC7EBFFFE0 -:102FB0005FA827FEF9F79F3FD7FB1F707AA564969D -:102FC000FD16E769F4E543FDC47503E464DA4FE5F3 -:102FD00066C90976B2AAA9602AD0AF90F8309E38A7 -:102FE00027465E5727A7DFFC7A1381B8E27C85600D -:102FF0003C77FE4E96E70B71D052CA17359C2F9640 -:103000006DDC610617B4A67E11CB3F0AB1389395EB -:10301000FE07FCBC64F32CCC3F5AFAA436FE540BDA -:10302000711D19CE91B5CFEB789CA9CFB9822EBE78 -:10303000F46E068F2F7959DE11913371BDA7E97AAD -:10304000219FC37F8BDD0AFA9FE201CF49C4FA4575 -:10305000BC52E081F4BDCF8079A127F60CC53CB508 -:10306000138A9206EDFC549C3A6C90FFE01F0BCF44 -:1030700029FE309FA4BB2101F3918E507DAE40E22A -:1030800093D33F16BE9FD6F95E16E1DF6FD49E1B29 -:10309000583763FE75A5890E4CDB553E9E84F71F9D -:1030A000697FF9BB201EF9B809F3818264A58714F2 -:1030B000F73D57285B6F42FE98BFCBC5F2C382BE77 -:1030C00037215F5FD0E348D3E0A9905734BF39A7D9 -:1030D00000C36EBB4CE8E789F35241A7BE79D165C6 -:1030E00089F07DC425CDAF233D29BD34F5B59BBF07 -:1030F000C4FB03945E4763D0EBE8B9E89598A9A5B3 -:1031000017C4956F80CAD54928A715EBC243EB5564 -:10311000FCA88FD3934C1BDE7714F9C4D3D2193D8E -:1031200088D19B0A743DB9790CD24B4FA769FFA88F -:10313000427A90F7ECF8BDDD3983C9BCABE9F3798D -:103140003C6E39A7F10AF49F7333991E3BB0167297 -:103150002D09797DAD95F8A8F3FCC65A2796DF5A5C -:10316000EBC1F23B6B1584EFAECD4578D4CCF27950 -:10317000843C5106C0BCBAFC4C2647F999625FB545 -:10318000CA0371E969FF78638C0155A367C6942C63 -:10319000F4BB35791AE5D76AF3303A4D3CCF6BA3CF -:1031A000E485EFA8CC2FBB54D39EE48EEA2D83FD9B -:1031B000E07923F39B5DF8FDB61BA72769DA5FDF93 -:1031C0009CA1294FCD5410BFB3A60DD63CBFA96218 -:1031D00084A65CC97F378158E30DEAF329EA19B167 -:1031E0003C6F276B7BAA7E6CDAAD74FC53FB4C58AA -:1031F000AFA7C7517310F7E3C1472D5EB043C7E0D7 -:103200001E192D1F7B4B467D77CC44824EAABA8F68 -:1032100049A409203132793A7D90C9D3B47FC804DA -:10322000F6E1E497163CBFABDA229120DCA1EAA6D6 -:1032300098A7E3AEFA8505D7BD608B4CFC785F4953 -:10324000698573EB558F0FF7C2B9E59CC1E12CB8C6 -:10325000B7D7FDAB38EFA3B4B6AA93BD7F8CEEAF62 -:103260005D90972415E2F9C1E7A52DD506C83790E2 -:10327000F7A5809C7EFEAC8CF194C52BDE2A728271 -:103280005E7BB5F5ED623ACED11619C7FDEC49CBA0 -:103290003619E5DD9706DF75ED5D7708E30CAF794C -:1032A000CAEA32291F7C5A1DCA47BDB39AC5B7FB6B -:1032B000E287AE17E80DFCAAD263BD768B9D9351D1 -:1032C000E53300F44395C98BE7A647379BF03C8F65 -:1032D000EA7F3CFF3FDA926460FAE759E4BBF946C3 -:1032E000C5AC1E77FE66D9C77E174231C37CC9DDE7 -:1032F000B29F8C8532CB5708364B7E765EA3A5EF06 -:10330000CD2BC6E2FD627DFE94805F5099F2ABCE7C -:103310008196BCC0CE67C9E84EA33A7F5CC457888B -:1033200087F52FBEE3533BE8819F4CA0F0848F7D4F -:1033300072F0F4763BEAC7E386978A6EA5F0B3D2C3 -:10334000E0C7464A977AD9FF5026E4EF18366F95C2 -:10335000F05CE4A39FC079FCA74F9BBC28863C5F30 -:103360006BC92F170F3C577E10CC809D2F8753259C -:103370000F7C959760FEC66CD2CAE3032176FE0FE0 -:1033800093A0F871D6B273AC8FC6D837C13DDC2A92 -:10339000DDBDDD8FF8BD856732258D7D3ECECB55F9 -:1033A00006269FE445F6FD45C87B19A2B2A7429FB9 -:1033B000BE90C9F2497AEC2A6945BD52CDBF0F5C77 -:1033C000FBA485DDD3518813E47131230FF90AE49E -:1033D00099CE7789F9E99F023B2F221D68E73E3598 -:1033E00085AA3B72E0FD6D4D6E7CDFE40D81FC72C1 -:1033F0003B60A58A03F4C722C2E6B7AC450A8555EF -:10340000710AF17B1C04EC824ADFF4B5075A3BB029 -:1034100090DBBB854497EFD3A2B54B6509765CD7AB -:1034200092169EF7DC332F999CA538ABF6875E9DEC -:1034300081F396BCA128F35844BAC3F01DE0654F50 -:10344000B1FB40FA79E9D7D1DF79567B674D86EF3A -:1034500009F78CAB9BB7C037810B4A2A3A08BC5797 -:1034600007193EABDB24A4D75FB85F25EED909BAB4 -:103470002F22653340AF2DBA8FEE0B737AF9A0C7B8 -:103480005EEF08A1BFF4196971D828FFD76ED97112 -:10349000FD3878EFE1D7CDC0DF15EEF050838BEE2D -:1034A00017833FFEC9B4AC28F65D67CFFF55F821FE -:1034B0003CCE84EF517C2CDC2E635E83AA1D3FDF63 -:1034C0000F327E0E12CC23AA7953F636D2A735F0EE -:1034D000733E85173E5F819FFFED79EBFD98DC2CF5 -:1034E0009E6F10C38FD1EB973E7E8CCE7EC2BD09FE -:1034F000B097DD292C0FFC94D197E846BDACD3BB27 -:103500002985F8DD51A177ABB9DD13E32C047B47A6 -:10351000CB1F6F79CE01F187BFDCF75C2AE65180C3 -:103520007DC9EBB52FB754B1F16E793E0EF3963EDF -:103530002FEDC807BFAFE291DF3BD4DF35ADF3F825 -:10354000A766C17CB93D5C266FCB76823D0C44CF2B -:10355000ABE8B3FF8AB54EFB79D669D7AE733EAC04 -:1035600053751FA48AAFF3C366B6BE8F36B3F52E6C -:10357000E8B3CE209E83DCF298C51B443F238C76B3 -:10358000FCD80E99C0FDB31E3F4367F74F9396AD2D -:10359000808F652BDF396CA47CB17818C50FE5836B -:1035A0008ABB2D68E717FF8A9D7F7E2A95A4E101DB -:1035B000FCCB61C70FE9F325D43F00FFA2771E3D86 -:1035C000767F7996DAEEF7137FCB791C6A79DBEF99 -:1035D000F1F7A2241FCB875C2EBE03B34BF71D1857 -:1035E000057400BB276F053A651285ED13B5F1D45C -:1035F000BF0DFD72EE4AE4FFEE61EAEFF5D6C58736 -:103600004D90EFDBBD4342BF68D9AA12470981FC48 -:10361000561607BB238BD92FC9E7C3BC170BA56B65 -:103620003C1DEF27590A7BAE38595EF7C304BF3BF8 -:1036300023E6AB7F0EF1712BD83F9B01ED9F7EFD02 -:103640002FF07196C906F4A76BCDCCAFEEE2DF7D0B -:1036500078288BF9D30F6531FF7A1B8F0F74811F88 -:1036600009E7D39759F0F77A08998C71722361FCB6 -:10367000671478731ABFE8916FF497BB33014F73E7 -:10368000498709E839A3789602F7060EA75AF13B55 -:103690004AF4AF0CFA99CDFBD96F62F7040EC31848 -:1036A000745DB3793CF9307C06948E7F788019FD87 -:1036B000D8E00B16F4136E8F67F13E929C68043EBF -:1036C000BF89EBA939132C3E381F983DE1F63280B3 -:1036D000B4BF20A1F8AAB076AF2FA0E33418989D0C -:1036E0006F7013BC2F499A3AC700FE2EA16E31E4C9 -:1036F000C9D3D5EF3C9B742E3ED2DE53A885B8C209 -:1037000078C218AC18F1AB29D79A59FD1B8F1C99B8 -:10371000715F26217F826C26B0338023E08BCA4400 -:10372000DCE7CE843C7E374023F2DBD546123430D2 -:10373000D86CC3EF10B1BC7E710E725D310927D217 -:10374000F585F76AEF51DC10368487C3F98E31DCDA -:103750000EF833581593938E53364D2A04BCD7AECA -:10376000EBDF7C3F7EE4F88CFB26D0327CEF0AE670 -:10377000F94309F3796653A1073E9D6B242FCB854E -:103780008C7EC087756E2588ED56303E17F737045E -:103790005D0A68F76AFCCEE6F3A3FD343BE07D7377 -:1037A000F4B8C9892CB1CF637EDA522EB74B05DF4E -:1037B0003DA595D7E46C2E37E00F52BCCDE6301610 -:1037C000DFBBB2995CB8B2599EF5B71738DE320B41 -:1037D00009E3BA5FB0201DC5B833394CCC1E84FD57 -:1037E000897908FEAD26F5987F53CDE33106AA49C5 -:1037F000304FB7E531CCEFD7E709510709F3CE9643 -:103800006CD73F57C573648D5EC238A764EE5E0007 -:10381000F393BE17E7057E9F6D6EC57880BE9DA9A8 -:103820004542393735537F4AE2E75BB46CD92CE126 -:10383000EF3BCCCEEC1E89DF2BE77E7535A72BD571 -:10384000DE53E11E5035F85378FEC5BF13B585F938 -:103850009146EEFFCEDFACF5336637A9FC4C06345B -:10386000F7EA2DBAFC7013F7373E30778F047DAF3F -:10387000BF67FF8181CD3F984A303F52DCB337723A -:103880007F52F093926DD29C8B89FB9C15A0A7D898 -:10389000F70E74F95436FCEE4A85C4BF57C9E38A63 -:1038A00027A8BF89DF95391487764BC419BB4AEC2A -:1038B0004143227CCE9295E724DE3203FCCC0A877A -:1038C000D908F08CA113C7B955EEB0E7E4F4C6717E -:1038D00037948CDA027943D7678F9869CDC2530E3B -:1038E0007EBFC87B00F2D6AFFD86CE1FCB05337DF1 -:1038F000747FD4F54AF75C2B55D1B55B0B661AA9DA -:103900003DEFBABF7B2B94D76C1D3FD348ED60D7FA -:103910009DDDD9F00DE135D997B3FA06D1DFE53356 -:10392000213FB8EB41569E4DEB83E0E7F27B40151B -:10393000E325D4B36BB8FD11F1A30AC34B0C4E645D -:10394000BFF371BE76B76797AD01FB2CDB8FE2EF5B -:1039500009DCADF8D680DFD394E9AFCEA670C92CD0 -:103960002968867BF16F868671FB15F5772FD66403 -:1039700031B9DC3890F527F045FBA9FB67FA49839C -:103980007E5234FD04FE997E8EF6EDA7E19FE9E7B5 -:10399000FB8AB61FE19F89EFCCFD31C7F708F4BB66 -:1039A000740DDB0F93A336CDFDFF93F5CF0F03BB53 -:1039B0007FF2294B12F0E1D267FE3BBB1AFC3FEECF -:1039C0000F7DD6FEAE19F2BE9747D87771EA22EC8A -:1039D0003B39CB77B69BA7E6411E6BBB79926A7EDB -:1039E000B5BDBF7365BC5AE5C73C9A2DF2B5D9EF9A -:1039F0003A2E7DE613FC9EE05243EBC790E74BC6A0 -:103A0000B3389A7E9D9BF87B87E1DC3F4ABCE0C9D6 -:103A10006CA66FFF31D8F74436851BB309F62FC764 -:103A2000F86ED797BCBF8A78A6C7AB8AEC5685E2FA -:103A30007BCC9BFE46C83BAD7E38A750A6F37822D0 -:103A400073E20EE82F767CB39BC537DB587CB3C29C -:103A5000DDB18A1A29723C7BDE5DD6CB08B9EA015A -:103A6000D273DF0FE286D32CA27CCBCCC91358BC17 -:103A70000CCA07B6D6DD05F2B387FF3EDB9CB12347 -:103A8000E341CE3B73120C4E2AFFBB322A8FC33C5C -:103A9000E68CBD6C2A3C2FB1D88755B2F838F2C7F6 -:103AA000AE8CB2DF037DA13DC43DFCE670CA0D744F -:103AB0001DFE3FC89837EDCF4FF047BBA7F20AB7BE -:103AC00057C7B3999FB6C740E759D83B0F313E75EA -:103AD000CC567540DC6ADD8002F0A353324B3ECBFE -:103AE0001ED33B7E4AA6FF2094C5F874B9F9F0BCFA -:103AF000BFF3788BD3E333A01B85651364F8524280 -:103B00008F5EBF7A7282A67CEDF424E253C74DAF7C -:103B1000CDD094CB2B066BDADFB46084A6BED4D2B2 -:103B200031BAFE02FCFD3AFB9398DF7BA8EDF4DB93 -:103B3000B3C18FDD2E7B25BA9EC52F3CFE36E45FD8 -:103B40009F809F2029647131F6BD467E1E63F41963 -:103B500035E7317B9F3383DFAE8AF3EBEEE5EDC3D0 -:103B600038BEFE3C46E48BFFB3E7310903F5BFE7FF -:103B700079FC55BA323269573BD2A7712FCB636EAD -:103B8000A47E0B7C4FECFB3B2D21F886FBE7FF7DF1 -:103B9000C4ACA8CE65EA220DF8BBBA93761DC173FA -:103BA0009BA7B89FB4BCED4B33DC93FA7EDB0A9441 -:103BB000E7A9547F2552BEE968272377423C39C7DD -:103BC0008E79384B9BAFC03875626436C2DA962B5B -:103BD000B0BF65916BB0BC9CFF9EEF9EF88EA96054 -:103BE00087F7FCDA85FBC1037278D843D08FC58E86 -:103BF000FAA13463CE3AF013F6C407F36EA6E39548 -:103C0000FED7F7310F7DF94E09E3A6A532D923413E -:103C1000FE7D240EFB2B95FF347A057D7ED5246630 -:103C2000574BC1C7A1F572917D137E4F3AC6EFA4E1 -:103C30008D1DC8FC3A53279BF794C82CEC4FD45FDA -:103C4000367090E6BB7CA694EDC6F9B6DEF5983AE0 -:103C5000258457464620ACDB39CB08F9E77FC87D81 -:103C60002C19F044DBE3F7C1FAEAE3B189248ADED8 -:103C700012D0C2F5F06CD0C370FE9EE3BB66600A42 -:103C8000FC1E61A7D10A7AD4667582FF32A3B840C0 -:103C9000A956AD4B7EE946BC076149EE3681FD9ED3 -:103CA0004DA15A6FCF8B61676E1C28F47603426179 -:103CB0008F48E407EC3BA83C3E20E469EA4083E6F9 -:103CC0007B3A1D12938BE0AFD8B940698E7FE940F3 -:103CD000DA4F4709297F16F5684736DC47FF57CD8D -:103CE0009FD2D70AF477183B09C431EAF97C843CA7 -:103CF0009F6FFE7379FB033209005F1CB8FCF20E64 -:103D00001F9D57FB6DA346815D10E3350C6479A6BA -:103D1000C4D9FD0DE61BBE98A0405CBF14CE3C4646 -:103D2000F7FAF3908F08F1C3BA172D8FC20752EB41 -:103D30001C747F6F83BCC0B830F06DFBEFE28C6009 -:103D40003F0A87F81B002F937E377C327CC7C7D78A -:103D5000663112F4837CEBE079ACF99E4F7F0979F0 -:103D6000D4F399BF99C99F9FCB6125E7DBF95C0E1E -:103D70002B8DDE44388F99B74FC67B91F3574B2379 -:103D800077427C40B1E33D7D218742DE4CC097A362 -:103D9000803F195FD6465C5CBE7378BF4C0E4A65A7 -:103DA000966F573AC285FBE7E591246C27E455C826 -:103DB000E91D39FE1DC0D7A58D54BEE938FE750337 -:103DC0004683BCF4F289D909FC44F9C453ADE283BB -:103DD000C6F6AF8CC027A60912F28985C2492A3ED1 -:103DE0002AEBF14F9C5353E93C6634E5E0F79445E8 -:103DF000FDAF7BF8A57FFCFE18978FF9B6F050F069 -:103E00006B4DF5715EF88EFC896405F5D8CA8D128C -:103E1000FE38E14A53D924F02F563E28617C0FFC2E -:103E20000ED03F4507EBCDEA73901B23F9785E7DFA -:103E30004D6408C22732FD2F03FD2B23D7733CE6C8 -:103E4000473DEF3B557F3BC6D54E852C5EF69D31F9 -:103E50006DFC6E8CCF8BE77FA67D26B24D81B89B23 -:103E60005FC6F3BD2CE2BC5762F13B88E789F89B43 -:103E700038A71371380B7C0F5765474F1B5BB26136 -:103E80001FD2271E57C2ECFEF1ED26766FABFD4F19 -:103E900045065AFF698E0FE372AF79FC87613D4B8F -:103EA000AE0E3D63A2E5A5773EE78078B9C067AB6B -:103EB000313C14F64BAD148F101F6CDD2C4F0B31C1 -:103EC0007F2761962ABF22165F2F890C46FC087B4C -:103ED00023F4F7F36B3DB829157AFC7C7648F0F7AC -:103EE000322E07CB400E88DADECC2A83DF3523B9A9 -:103EF00012DE73EDB5374C1E849EA6FC8E72533ACB -:103F0000380BE3EA426FEBEDD16EB9F5DEF1C03765 -:103F10008ADFA950FCFC0F4D62B3890080000000CD -:103F20001F8B080000000000000BB55B0B7854D518 -:103F3000B55E67CE9C994932AF3C0986C43393077E -:103F4000700D383C22E1E1C78140002138C15B455A -:103F50004D65402411131250AE51B8DF9C90808003 -:103F6000D486EA55DA824E28285AB551B0C68A302E -:103F70003CB4A15A1DABADF456E8A014791BB15660 -:103F8000FCA472D7DAFB9CCC9C4982526F874F37D6 -:103F9000EBECB5F75E7BAD7FADBDD63E8789BFFC50 -:103FA0007AFBFF0240ED8B4F4F820C8009570920AE -:103FB0000A00339747CD36A4C16E736FF5205D3A82 -:103FC0004C5E500C70917EE301C4BD5F49F210005D -:103FD000EBF24A50EC00B7625B668FF54B004A3B50 -:103FE000D20051F32C47EC79A66CC2FFD1F32680A6 -:103FF000129C57E73BBF14E01A80DBDCC07F8DC802 -:10400000D41FD7217EE49B6A85397E5C1FCC91BC8E -:10401000F8F92A3C1307CAC85A2C0B6CDEFF2FB9DB -:104020002B44B00969004E7314D28A697E5D6E9587 -:10403000AFF32D725FA1F1BF2342633B8E7F67FC1C -:10404000F8888272ED5936628428C7D61B2F5B1818 -:104050005F453A8E1D09D0F59A35B419E5069C4F97 -:1040600040FE4F5F1B1C5A8B5B3B0C5D17C83EEA42 -:10407000CE1499F655BF2B85F1D727BB4202F6D750 -:104080003BBB8AFC284FD9EEA4300CC57576279926 -:1040900001D7FD26FFF6F1A49FB2DD0327094E14D8 -:1040A0007AA7D50CC8F7409EA2D0F3BEE4D7E54B63 -:1040B0006CF5FD97570AAACB0530BDCCA19AB05D2F -:1040C000783E1F6004C05DABA7B1F6E560362A19E3 -:1040D00060F2F94A00DC5BDDF91BD8F345E75318C1 -:1040E0003DFDC14839ED075E16602BCA5F91F3C3F1 -:1040F0001580F27526C3901DB8AF4E6FAEAF9970A4 -:10410000D93A8DF157FC6ACA54DAD7A21DC84CE3DC -:104110000609A142D2D351BB09B200EEB671F13FFC -:104120006FF860A48CE33F1FE91806C8BA4F6C7F94 -:10413000788CC0ECD949F69CA8E15D3A2F8282F2D6 -:1041400058CF0BACFD400E2C964B181F401AF9436C -:10415000FF9101FB77C1D32B928C78946A3F93082F -:104160004F566CCBE2FAE7683849D4E37F5DA61F6F -:10417000CCFF8E785A43782AF9B7E2690DE9A9177E -:104180003CADFD3E78BA841D7DE089E16CFA9B1C54 -:104190001F90EFF06D0586172677A72537D48C7C06 -:1041A000B7925D095F17A181F43987EC9B1EC3EBC1 -:1041B0000E4FE0F9783B7726ABC58B8BBF8B9D6F9D -:1041C000068A1BB766348082CFE7601B1F37AC645A -:1041D000BFE29EFBDB7E99766EFB8E76DEAFD91951 -:1041E000DC68C791CC7E32D935D1EE6457B27BFD05 -:1041F0002EEBE64BD9757841E09DDEEC0AEE6413B8 -:10420000C919B38BF506C2CDE76133907FF56557C9 -:104210006903D7BB4EAF0C9BA786D87900E99543BD -:10422000185E22DF072F1565ED7FB7A5029C0DDD17 -:10423000ED378F06B8B114BBAEA0EE7B5A95028A5B -:104240002FF8F7316C46056C4C9F9C56974626E13B -:104250007EA73FDCDDAF52FFE4712E3E1EF9715B9D -:10426000DDFC67424B22EB98DCAD5CDF81A8D93FD7 -:10427000248E1E89B4238E2E4DA037727E3A47DCE1 -:104280006C9E10F74F9C5F184EB43E9FE607D055CA -:104290009E8AF69BB94370AF457BDF32EE530BD954 -:1042A000A7A22CFA460EEE57685BEEB70FC6E714CE -:1042B0000751DED4B69656B5401B8FFE53ABA9D13D -:1042C000DA2E2822DAA9B65408793D3DF598EA316C -:1042D0009E67F4331BC78365E4E58D273BB2F15E2F -:1042E000363E6CBD8CF56F1A074AA8973879A587BA -:1042F0009FFF7001697D7ED4DD0DB8BF502FFE3663 -:10430000509B376232D501EAEBEAB60DADB65CB42C -:104310002F707C0C6B7BCCAF721C8292B0DF4BC9D0 -:104320009BA9CB11B75FD9383E7C297DE5F4D097A6 -:10433000868F1A235E5C66FFFECF510E5786E056CD -:10434000D1FE8BFC49EBC045F6D7F1BDD9AF0CC00F -:10435000FD2541375E8DF8FE859FF0BD0874FEADEA -:10436000AD742EF94DDDFC1CEF3B85EEF183D0954D -:104370005DC0C74F6FDBD2AA16337BB07E469B2F42 -:1043800081F7F6047A5C827F68F866FE49711BF556 -:1043900053D84BDCA8D1F47B4680D914F72213798B -:1043A000BE17F1F276B587E7770D1A5FA36EE7E4E3 -:1043B000383D0C88D9197F611864D837D3D3CD190B -:1043C000FABEF7FB67A0DF44D26088803859E10964 -:1043D000B7B6C4E1A4C5B39FE12436DFDE08C5FD4E -:1043E0009B353DADF6EC8B683812C8EFEA1820100B -:1043F000073B0455C47DD6110E7AD9E7AC9E3852DE -:1044000013C62BD225C6CFEE395E49180F52C6E52A -:104410008CD7EC3423C18E5313EC382981AED2E90A -:1044200090219EE9716E5EC7FA955928C75DDB043D -:104430003A26285E5B8461009BDA7EEFB7F727BCE3 -:10444000CA520EC6FCB6B6772236C47225C533866C -:10445000DF48AB8278BB81FC9DD1EFFA1517E1A74D -:10446000616536F23FD5F687561BB2DED2B25EA248 -:104470009CE6976DEFB79A71DE9B47FEEA0D9ACFE7 -:10448000DCF4A7C80CCF25F0DA9AB08F8D09B49A66 -:10449000C0FFC8B7C4F79684F1CB13FAD725D01B59 -:1044A00012E8D5C6F173E70BCC4FE6A2FD4871DFE9 -:1044B000E6377B347B76FB3FEE40B0B33CC980FBF4 -:1044C000E9CD9C7EB3EDA87FB53D8EF61CF393BF7E -:1044D000EB389680FF6ECD0095CE0FA98F78F64A07 -:1044E0005F381A9478DEF1FEBFD25FFB53DE098697 -:1044F00073799F68A4F788BADC7F8FDC63A7873A5B -:10450000FDB99FF2F1E98F19F78575A1467FE69F06 -:1045100084FE3FFDC71AAD76F995B87DEAFCE5FF4C -:10452000BC28D27A473C5DFE2DB8EFAA89E1C206CD -:10453000E4AB4AE32D9E33229D63F536EE4FE5AFA3 -:10454000897E3A67AA92C3854B8AE3F609ED45B4A2 -:10455000CF3DCB44661FB599D723F3C067012C85A7 -:10456000F6B85C8D4F22FFBE6562239D6B871BD31F -:10457000B348FEE15E5EEFED735D997507D27B5245 -:10458000E65864E4DBF3C064D6EE1595555D88E328 -:104590008B6D17D939BF27C5C5F4F3B5E76B7F130A -:1045A000C6AB6F3C325B3F90E6CEEAA07C75AD04B3 -:1045B0005B6592C7F738C3CD8FACC3D6A21C739B83 -:1045C000AECAA2FC6DDEFF5496F747BE792B259F3D -:1045D000C0F86028C91D583BD942FDF35BB4569D15 -:1045E000C2DADDDF6C7F7328F277AD117D9B9179A4 -:1045F000D779AF731ECAF571128FC31F9D2E7092AB -:104600009C8F7A03C95EC2ABD3912CD0E1E1969D19 -:10461000B370DE87F395146F668C7FF737E21CCAA0 -:10462000375F3D3D2F2B8074A697E366D7F9795904 -:10463000F3E2CEFB0567CC4CCFBB2DF23D945FEE91 -:104640004ECE155481E939BD12FD65BE965F235EDD -:104650001AB7F772EE9BBC22D3EB516B237C8C20F4 -:10466000DEF360E63892531F57F27EA0D941781EE0 -:10467000200F8FCFA3B3F2267A48DE18CEB2DE2504 -:10468000DCB03C1AE9E2CD69EB553A0BF761FE4F1D -:10469000726428E5D40FCB9101F34EC86E2F8ABF08 -:1046A0008F88E5A92BB478C0F90EA90E56B71E7AEB -:1046B000362944F5CC21F52F0EB0C7F3733FA97608 -:1046C0003A543A8C3F7138CCA4D7C3E6E0B1FB70C2 -:1046D000DC824D128BA30B36652EEFA27880F62C70 -:1046E000849EEBAEF44A6C9E3EFD44CDAF34F80997 -:1046F000E457D2B9D6979F946FF6566EB1F7ED276F -:10470000D55ADE5EBE49F213CEAB4B1C66B81AEB2F -:10471000EC4DAF6F253C562F4E1A6E45C1AB375945 -:10472000997DA30E87EAC6FE80D3614EC5F6560D6D -:104730000FD1A62456A788591616F7C4552532E975 -:10474000A74C04B30DCF15D1E993FD9C6E7163DDC9 -:10475000B6D2512A937D577865B6DFEE7ED7ECEB63 -:1047600004AC6BCEE13ED271DC89C6871F1D85F299 -:104770009D84D08DA350EFE7C8D0B8CEB91D624854 -:10478000A573C2AC982B30EED500F7F7BA03DB2D3A -:1047900013F0AF350DD533A83EBA33247D14D56A56 -:1047A0009F8BF8DF17F09685F2DBBBB6199FA3C786 -:1047B00058C8AFEADA8DCFEB61DD67E2506ACD1FF2 -:1047C000450769CF71DDC60FFF3C647F1CDFDD5EEE -:1047D00047C6312CC161380C47CDE23AC5AE9B08C3 -:1047E000768D2293575C9114223D8A79FC7C980245 -:1047F00042288900E1C67DE3BA5F060F0ED98F809B -:1048000010EF1FC1F4723488781A88FA70DA18BF72 -:1048100078BF18B2E2BA65E9A0A4923E1FAD047059 -:10482000307DAA6EA4A7643498293E7579B83EE716 -:104830000AE06F677EEFCBA3FA78C1A62466BFEAD1 -:10484000C7EFFCD34F4792BD2A32E2FDE821C25D9B -:10485000099B0F6C69B1793E69FAEF3C92A7EC09AC -:10486000AC2BA9DE14038FDECCE2658A8FC52D77D1 -:10487000F447A308274D29C3D602E1A47F9EB73889 -:1048800036BE7AC5B2223E1EEB5527C5AB24B69F75 -:10489000DA1D568693B96B44859D8FB916763E7E98 -:1048A000D492C4E8DA01A5CCCFE69A2040FBC05CE4 -:1048B000309BC575AE72A8B583B2DD4E717E5D4486 -:1048C0007432FBA89ADD2C649FA7BDE96CFD39A466 -:1048D000633CB70E68389B6BE2F8815D42682B8BB6 -:1048E0004F0D32F97F954960712ED11F7F434918D2 -:1048F000C5C93CDF6D34AEEE21AB6F8587CB20EAB6 -:10490000F2209EEA4C91053FA7797F6D65F71AF575 -:10491000B88F2427AB2F941751FE7A33982D742F1C -:1049200025F378A6CB532F574E219C62FF4133F6D7 -:10493000D739783CAE4BE5F73DE0B085B6C6AF471A -:1049400032E7F371B293FC6C34C30BF9BD09FB3F42 -:1049500005DE5FE62C95A3F8BCD304ABE99E84E4A6 -:10496000193C346E5DA4FB0F253C2E367B1D6487FD -:10497000F41B67D37ACF892C2EA1333D544AF9DF3B -:1049800073E208AA63E7AED957BE81E81786B94932 -:1049900084B9CFBFC7CEA7BB349C4529EFA7F30A84 -:1049A000E917B0FDC8CBF3FB80C8EF713EF2F2FC13 -:1049B0005FD7ABDE5FB74662F6A85BC9F150D7F4AC -:1049C000019BB7CE11C9227BD4BD245D43B83EA55F -:1049D000C93DAF2977DC41C4C73CC9E516F051ADEC -:1049E0005A6121BAB65560B4BE5EDD9A3F66998AB7 -:1049F000F97CD45A351CC5E6CDCCA3F3ECD4B3E98D -:104A00007973E3EC7EAAE565A76C27BF0917BAE9BD -:104A10001E6671926F33F3536E8F532D859BE99E03 -:104A200066BE3BE210B07FFE3DF96974CE1D76870D -:104A30002DD47FB8DD63225A71BBC711AD98AF6624 -:104A4000F4290CE1EDC51A78D14E8B048E9BDA6700 -:104A5000F759BCB89E3B9FEBE7CC73EF15D17D4176 -:104A60005D5EA488CE5FC455510ED9E51981E50974 -:104A70008B9E1595A4A1315C2D225CA1FF2FD470D3 -:104A8000B568C7CBF7929F2E223C0DEF894BAC2B1C -:104A9000F7B3E72FB695031FBF9F70A79FF748B7DF -:104AA0004874AF66D1685C87E8D47C99F901F64F09 -:104AB000E2FD6A313B47206AA17CB85EE47902FAE4 -:104AC0005336E511F51D92DA1D2F695DEA2F8EF53B -:104AD000F7859BE1F926CDCE56761E0DD7F4125DF3 -:104AE000F392937071E6B97D6F8CA1FAEA45C14DDE -:104AF000F1BE871F6A7AAB273D39D93E595E544FC4 -:104B00007A71C6F4D4ED6F1A2EEA81EB41D74BBD12 -:104B100059D393DEAF8D1FA1E9A11634BDEE18C89D -:104B2000FD5DF36FFD1CD1F71748E3E3757CCDD72E -:104B3000F637219F9F9BB5881B5F31C39762B946AB -:104B4000ABFBB1EBCC0B6DECDE48B7A72EF7F27CDC -:104B5000EE0718A795D4B4989DA326A8E9ED9EFA70 -:104B6000264D7F929DC795234D39B735A2FE163E3F -:104B70002BFA98F2A8E68A5BD76A8A3A585E7ABF1F -:104B8000E8A67D95FDB2F23ADAB78E3B699B60EEFE -:104B9000184975462AD3BF2E5F593FFF75A91C7768 -:104BA00061924797F3881066F6525F10DC3CCF8D18 -:104BB0005AE8FE50F7D34479E76BF28A4E618C7065 -:104BC00035C9E393C9BF01CF41268FFDE032B69EC0 -:104BD0007A689967686C9DC3AAC34C7C8781C701BA -:104BE0001D9747B4FB88232B5F6679B0BECEFD3D91 -:104BF000D7093466F45C47E75F92CFCF01DD2F3AE7 -:104C0000D338FECB5A3E607C7A9CA51FDDC3E9FAFF -:104C1000D4F516E79706FDE8FEA5FB936ED77FD582 -:104C2000AF607926CB571FD0F6CD7C242B762E1083 -:104C30003EE9BCB35A109776C3B9C9F29A29033E2C -:104C4000B3047A79AEEB29F179AC9E72E791FEA7B5 -:104C5000D8B34D9407404BF6FE82B8BCEC63BAEF74 -:104C6000A2789A09FC7D06A057C69DE77ABEA69F4A -:104C7000D7F85BD78D4B1C5F9FA19CA0FE9A918BB0 -:104C80008B288FF847BE97E9EF24B45B26E07CB50C -:104C9000C723E54E3956AF5CFBF7B0E8A2FBC01D59 -:104CA0001E43BD507B7A3FF3EF3A88ACA2FA76EE12 -:104CB0009AF72A4691DD9FC67C1CF9E6B77AD8B9E7 -:104CC0007762CBED23A8949DBBB290D1776EBD8364 -:104CD000D36B783E377765C993741FFF7192524E3C -:104CE000F8EE5A2FB8A9DE1ABBB564F92DD83FD615 -:104CF00071652AC97D68CBC71563A86E681499BF12 -:104D0000285B1EBE91FA950ED1475B9D0FEEE5B76D -:104D100010BECD2EE66F87B573A259E2387B578B54 -:104D20001307BA5B8EC3B2E6E62213ADDB86E71348 -:104D3000EEBFCA22B787A9EE7BAD9F6F33E90BCBDD -:104D4000D46CC4D17181E7DF3516B011AE0E489135 -:104D5000A524FF81A58E614D248078E11AF20B45D0 -:104D6000ABB3B06E62EBEAFAD2D78F68FEA2CFA3E4 -:104D70008FEBA47C8ACE0F4DDE132D4FDF4879C216 -:104D8000896D856910A7F713B42FD4F79D18175FA5 -:104D9000ECA5FE3B94AFDF4784585BA3DD1B1E9060 -:104DA0005A07D0FB5BCCE38FC6E7E59FB425D90853 -:104DB0008F98C71B9F4BFC3CC13CDEF01CFDE6A856 -:104DC00031DFD7EA3BB1CA15E8250EE96D629EDFF7 -:104DD000956FCF387615F4C8F375BF4B1CAFE7F568 -:104DE000DDF72C1FDA13DEC78C72C125D63F1D44B8 -:104DF000C360EDB78D7C17E59D94F2CFED11AA2726 -:104E00005BAD6E2BEAF728F915BD077C49E479A262 -:104E10000D7C61C4C5D13F8EF0911F2EF890FBDD53 -:104E200082762144AFD8F7AF7F4024FE3B360AD0CC -:104E30004F88ABB31E597F23B9DD395F60557FE4DE -:104E40003FB74DF0A94C42C59E505FBDD15FEEBB50 -:104E5000BEFABE75957ECF94A8F72B0BB4FACA079D -:104E60003EA3DE797DBE1BE1533ABCA7DE4F0703AC -:104E7000AC8E3A1BAC61EDE8F6B6B21C94FF53E180 -:104E8000C84363C97F1C2E764F723AD8C05E029E1B -:104E9000ED18716126EAE755BBCB4D71E36CB0911B -:104EA0003DEFC68B86CF6B77EC117380F1EF1C8BD7 -:104EB000FCBBEC2E7AADD1CBFB366E5F8064FE7E00 -:104EC00054ABB7EF5E3CAA1F3DD7F77BF23E6E674F -:104ED0005DFE93DB6E77527EBAE7E7E93B47937D51 -:104EE000535C6E8251F506110223008E6DE071E86D -:104EF000B8CDF524DD971EDF784316D58377485D5E -:104F0000161FCEEB7BADD249F7027F33479D6E6A09 -:104F1000913F4C72984322C5BF315381BD071C138A -:104F20003683EC61AFE8194E469F3687C2489FA290 -:104F3000F783746E5F48E6EFE9B5F77E77BCC2EFA2 -:104F4000D3BAEF4FB47B84B1DA7E9715A4E9EF7B37 -:104F5000D8F3B252FEFC938DDB67D27C27B6486E45 -:104F600092F7EC1689CDBF10EB7813E2F038E28DA2 -:104F7000E2D7C2F7451F41FAC4365E272F44DCD280 -:104F80007D71DD6249B1B87AE2B14CE7DB29B0FA54 -:104F90005AC7E5422554CEF4AEE1D3867F2EE29186 -:104FA000910AEDAB481F8938FD57EBFE2584CBDE17 -:104FB000E241020E747DE97888E113182E75BBA7D3 -:104FC000B50F9B90C306A82C5EA8136110E505CD14 -:104FD000161864261C98927DE4E78D36E750BA6770 -:104FE000FA3289B7F79ADCAF53BDFCA54996046C39 -:104FF000FF56E061E3EF157D93899632A2EC7E4087 -:105000002C3329263AEF9AAD2C5E24C69B870A786A -:105010007EEA25B061FB4C819BE78FD0C0F207BDD3 -:10502000C50DE6527E529992F6858C2C3F2F983111 -:105030008BDEE3568E4D5B9A8F99E52F0A66CD3253 -:1050400023AE2B47A4BDE4457AEB163FA7AF4E2B0A -:1050500091906E126E983509F9F716283F2D288920 -:10506000ADA3CF8BCF37D2F3B7FA059EA0B6DE62E1 -:105070005F4DF1FE53A16B91498CF1BF2BC0E157FD -:1050800085181D95208FF2E967E89D6A49DFEDD903 -:1050900002655B412FCFE701AC243DCE537F7B906F -:1050A000F235FCF96D88B7EB35BCCDB3D9C3840BB1 -:1050B000582D9DEEC68597E292CB4CFE3D5333F7BB -:1050C000F5E6F01E1A3F185ADCC76C2C15DC783157 -:1050D000BDEF388F8E09C7F4F9707F9F4AB85FB46F -:1050E000ABA0A0ADD1A504547215C63761E76FBF60 -:1050F000A2799B558826313B54B9097F02044C178D -:10510000B1AD4B413CA09E96BC74663FC1FF4E3D85 -:105110009FCAE6DF672CD5F0787D4479AC0D85FA1F -:105120002408190568EB33B0F7AC19D73D610ABC08 -:105130005D807AAC35BD95B74426BF6D7652FE7260 -:10514000E679D13703C7D56A793B5C10C3E3F179BF -:10515000A767F0E6B57138FA40C3CF694F386F19C9 -:10516000C50F0FAF3BE1C2BEBC65C83FD53BAD84A8 -:10517000CEA54740F97301B3377FDF30D3DCFBF7AF -:10518000177FB882E73BB0859FAF5633A88E34D6E1 -:105190008213F5310D6529455A425A64EFE3438C79 -:1051A0009FF89C94A7C8B767F3F735E0277FD4ED45 -:1051B000A8DBA787DD5064CACF4D3690C85F06C311 -:1051C00046379D3BBAFD268B76166F96BCC4EFE33F -:1051D0009608D19674A29FC3F392F4A5F965CF7394 -:1051E00073AB854C51B3F176169FF4B824E31FC21C -:1051F000CFBFEB5ED252A89D9BC36018E1EADBF201 -:105200001D3D2EA17D1C8571EF7FBFD53EA422DC04 -:105210006FB5B6F664B14A36935E326D3E8ACB4BBB -:1052200036E5F7E3F1F82710CF071BD3193E57797E -:105230004466C78A8E1C90F1D19D1D02C878CECDE0 -:10524000E84867B4F37C7F46573CD56F22E5FFDD25 -:10525000EF2D9F1AC8E8134FBE3932C0EF576C3498 -:10526000BF1F74398ADB291F3A674739D00E7EFB8E -:105270006A765FE887EE3A46B828108D28217F527B -:105280002495DBC5D6C4FC5ADBD71237B7E39203AB -:10529000FCDC5D3281BFDF33AB835D8407A95384BF -:1052A00010D23F3820968491B5598BCBD66C13C859 -:1052B00071F6489293418EABDF4055225427CDD6EC -:1052C00070923228CDD0FF80109048AED9F6050CF0 -:1052D000370EDF1586F92279E59D4C1F019EDFEA26 -:1052E0007802F1B499E4FC629C00E9888B1FCCC67B -:1052F000FEB879A5719F4D12586BCC8B512F472F5B -:105300008527BF8EA7C13098E129413FE81F2CFFB8 -:105310003C87E738A54D985D3C360EE91B3B2508D8 -:10532000C92CDF64FE734E4961F7F72B353DE9B8B0 -:10533000F30F048782F3BA4A8D7A4B558C7A4B9FD0 -:105340006AD453A6DFA8977EB3BD86FEFE81FF30E8 -:10535000F4E7D40C37D0B90D630CFC57364E34D07B -:105360001EF53A037FFEEA5906BAB0F51603FFC0F0 -:105370000DF30CFD83430B0DFD576D5B62A087B4ED -:10538000DF6FE0BFBA6385A17F5878ADA17F44E7A6 -:105390004F0C7449E46706FE5107371BFA47479FD5 -:1053A00031F48F3DFEA281BEB6EB3706FEF1E7F782 -:1053B0001AE809F0A681BFCCF69E819EECFE8B8197 -:1053C0007F4AF6C786FE69F22943FFF4419F1BE836 -:1053D0000ADFD706FEB62B024F1462C89F6D5A77BC -:1053E00048058ACFF28FC7219E6FCA30FBC2C474B2 -:1053F0009975DB53855A9EA6E1F60BB0DF66F27E07 -:105400007B1C5C47794126E17A06D07DEFB9768135 -:10541000E1BAAFF3D985F9AE396E1FA98A0D0BF049 -:10542000189D3ED56DA033FDD906FE7EB365437F42 -:10543000FFC020437F4E8DCF40E736941AF8AF6C03 -:10544000540CB4479D6AE0CF5FED37D085ADB30D06 -:10545000FC0337040CFD83433586FEABB63518E8F4 -:1054600021ED8D06FEAB3B5443FFB0F06A43FF884D -:10547000CE56035D12D960E01F753064E81F1DDD54 -:1054800066E81F7BBCDD405FDBD561E01F7F3E6CC3 -:10549000A027C001037F99ED5D033DD9FD6703FFA0 -:1054A00094EC2386FE69F209437FED29841FE5CF42 -:1054B000AF0AECFDD7F4419F19FAA50CCCD3E97ED5 -:1054C0001A927DF41D7E629EAEE76F15BEAF0CEBA7 -:1054D000DC6B6A60DFC57D69E2799DA3C8CBCE37FE -:1054E000CCDF6D361667F1841AC2AE5A9A283F7522 -:1054F000A902C31DA51A55ECBE3083BD576047A352 -:105500004CDFA1617E83449AC9E3A1FA21259687E5 -:105510000EB838E2BBE7A13945C0F07F5D51C05DF0 -:105520005442F5D80BE5549FDC09EA2A9203CF5781 -:1055300017BD677A3BC9786FA4B7D36CA8BFB8F51D -:105540000E24B50E187E09BF9D663BCDF8BBE7D58E -:10555000EE9504DCDF92B8F91FC2BAC98C25646BE2 -:1055600010FD0BFDF4274137A31F096633FAD1A0C4 -:10557000CCDA0DC141ACFD59D0C7FA37064B19FD45 -:1055800078506174283895B59B837EF67C4B7036D5 -:10559000A39F0C0658BB2D58C3DA67820DACFFD908 -:1055A0006023A39F0FAAAC6D0FAE66CF5F0CB6321F -:1055B0007A477003A37F1D0CB1B623B88DB5BF0920 -:1055C000B6B3FE9DC10E46EF0A86191D0E76327ADD -:1055D0006F30C2E8FDC1838C7E2318656D67F0389B -:1055E0006B7F17EC62FD6F05CF33FAB476DF3FB502 -:1055F00088E75FBA5E741A6012C3839ED7CEA4BADE -:1056000085C0512A9D35D42D09F543A23D4E6AEB44 -:105610004813F1D8A63CE78AA2CDCD71F9FE7F16DA -:10562000F17BC10792414DC2F8D744C53C42B12934 -:105630000D42CDECFD2ACFBBAB355C4206CFB71790 -:105640006872556BFE5042F81CC4F0F9D6E5D44997 -:105650007A9DDC322030BF08DB85B92695DD13D872 -:10566000434594F73F3520504DB83DD770C71B6C6C -:105670003DB7AF8816A9B086336FA2FB9F0322BB4C -:105680002FED6BBD7AEDDF2FF4D9BFEBC4003A8765 -:10569000A67E23B2FBF4B725C76CBA1FB94FD3CB94 -:1056A0007D4526433B34D7DF48727E52D8F0E4DD97 -:1056B000C852B5B8D04579EBF5545AA3DF57822CC0 -:1056C000B1EF6341799D3E99FC01267644DF042ABF -:1056D0006B3B72024D34FE662C20880E8CB1E6F5D1 -:1056E000B69F44791ED470F16091C9D04ECFF5AF0A -:1056F00025FD1C2D540CF2A8B9B2F6BD7BD7E324CE -:10570000D73F5EFBEC98901FD3B77E2FB16A82F62D -:10571000FDD462417F4FCDF3411BE8F920EBAF5A36 -:10572000CAEF677E887519BDAFFC508B87E71A24D6 -:10573000162FAB84641FE5D3E71A960EA4FD24C68A -:10574000CD2A1C67C27155C0BF87A8FA3085E10B0E -:10575000E7037AEF5685993BD57F77E7EAF71E5145 -:105760007B269747A1F7B073765ADBA84E459C3C41 -:10577000CDE2D86851B5609DFCB6295424880C1F31 -:105780001601E5ADCE407CF49217E83858A4FDFB35 -:1057900018FD39E26B3BCD77F6955183D87B935D4D -:1057A000A365D25FB309ED41F735BF13F9771274E2 -:1057B000C54EDF71B88ADBD877FE944490BD463B76 -:1057C000D8FB903D2234BED04BFC7C5FB3DBDBD9F1 -:1057D000D2D4109BD7F89EEFF71AAE7EAFE1AD6240 -:1057E000EF81DC7B71DE459D12AB776064B4D8DF5E -:1057F000CBF74DF58D6FF62F88DB477DC711FE5D2A -:1058000014448BE3BF873AADCDABE349B438026DA6 -:10581000F678F9388E10D7EF911E10D7C728AF9FB2 -:1058200069955D37E1D028AA268C6DE00937FBAE7B -:105830004EFFBE6E3EF8595B8D70201CFBD5F5AC5B -:10584000FE5D08EDECF9A2D2DBF388AE87AE49D954 -:1058500054BFAC6E7A3D1BA5BBA175FD64BA7F9E9B -:10586000159AFB3AB5955B84635477A35F1C25BFFB -:10587000880A0D2BA924BDE5D9092BE99E77A6C876 -:10588000ED006F723B208E1431ADE7FED00F4ED18C -:1058900078F40326BFEE07552B387EF47F8FD1EDC9 -:1058A00017A577FD3587DE7D98BBD87721F5BBAC92 -:1058B0006984AF8554798AF179A17E3EF3BCE02EEC -:1058C000CC0B88EFA4C4ED7FF25012FB772F270595 -:1058D000C4C7F09EB8D7F3CC2F4DFCDEED5E11B7F8 -:1058E0002852BDFC30D3538D2D3494F484E7B33467 -:1058F0009070FD71FBAA6174DF37319447F9AAF407 -:105900008CD5D7EC31C479B89812BBC77B48E2F785 -:105910006A89F2F6C85B4ADFF88AF209AB05547A65 -:105920009F84FECFFDFE3097FF4B5320FB1A91E77B -:105930002BAC8E1EE067F53F64D97C6B859EEBB780 -:1059400068EB76FE93D7D36A2EB0EF7112E510DCC8 -:105950007CDD4479ACC95C0EFDDCE9290FB7832EF0 -:10596000CF90811E7E2EE6296CDF4DA65416BF3ED9 -:105970001503C5A437FD7E4CAF633B3D9FB0B80E09 -:10598000179A07F0EF7BC37D9DA7A7BBEB676FEC72 -:10599000BCD3EF99605CEFF7827E9B5B22BBCD02AC -:1059A0001F8BFB83E1435D3F867BC2FF035073AFD8 -:1059B00086E0390000000000000000000000000048 -:1059C0001F8B080000000000000B7BC4CEC0F0A3BA -:1059D0001E822538106C62711D0B03C30756D2F569 -:1059E000C17025507F0910E703711610A7027102DC -:1059F000104703711810BF069AFD0C881F02F11D95 -:105A000020BE0EC49780F82C109F40B277191B035C -:105A1000C35A36D2EDFF83E4E78940763910CF24AC -:105A2000231C46F1F0C0F23C0C0CDABC08FE3E5ED2 -:105A30005479051E047BB92065766D03EA0700E9F9 -:105A4000CD424A800300000000000000000000007A -:105A50001F8B080000000000000BD57D0B7854D58B -:105A6000B5F03E8F79253393C9839040C493970452 -:105A700009382421F2AA1E0842A4D406F42A5AAEF8 -:105A80000EC823869044B02DB7729B21092F411B6D -:105A9000152D5AB483458B0A36F268D106EEF028EC -:105AA000C65BB4D1A282D536D45B450B4944116F95 -:105AB000B5BF77ADB5F7C9CC393349406BFF7BC370 -:105AC000C7B7B3CFD967EFB5D75E6BEDF5DA3B76E5 -:105AD000D9C5E42B19FB027FA09CA330C60644CA9B -:105AE00051775EBB687B09FCFE99DDFFB8166967DC -:105AF00094173389B1D1F09E653056CAD8954EF8C7 -:105B000015DA95BD70EA0F97A531B69F29CC018FA4 -:105B1000C26A59EAB7A09FFD9F333FBE975F706787 -:105B200075B8F1BB2063E98C5DC1F877E16C2DCBD2 -:105B300057881526E373DD49BF433FB99BEAE0FB75 -:105B4000B39FBAE97B2B1C46C93E9759587CF34555 -:105B50000EF6AB7EDC5120EAD90C066702DE2C1A69 -:105B6000D780F7D0DBEF11BC075480578B33BE13BF -:105B7000E04F8BC0BF9F5D9BC40A39FC7A6904FE6D -:105B80000B8587E60F786EACD7BE9997CFD8BA7AD7 -:105B900046E5DA7A2795ABEB7DDFCCB331B6B23E82 -:105BA00083CA46153E01381AB7B0501050EF2E8404 -:105BB000F646FFF03F21CF69AA3BB37CA6BA3D0D64 -:105BC000FA2988D455B766AA37BA2739036E1C1F3D -:105BD000E6EEC0F19D5402984733001F978A79BAC8 -:105BE000B4E02C06EB91E7B66B2180E352F782E933 -:105BF0006C24B6CB27BCD9055E9764367420BC1FD5 -:105C0000433B06F31DE69EF23EF332F69FD94FF07A -:105C1000796C606C203C5FFDEF751D12F4B732D3D8 -:105C2000AE35407F4FC0F86B1C5178DCAAFEB9033B -:105C3000FA74C23FC4E3D08DBC1E9937D4A3E631B9 -:105C40008C45BDCF8EF473A1FDE6379BEBD67EF37A -:105C5000347D12D2ABD16F3EAB68F0B9FFF7F67B63 -:105C600029E03C3525D2AF314EBFFD023954C0B7D3 -:105C7000F91B59289C1D3B4E9EE62F0FC2FBBC8D85 -:105C80002A0B65F3E769C01779FC57D6E49B94109B -:105C9000288C8587458F93135997BC34FB1C19E8D2 -:105CA000292FE3FA4512D25573D4FAE63066F0CDC7 -:105CB0008FEA7D4C1FCAD8DDF505546EA9F7E9C8F7 -:105CC0002777FF5D99D55218CB8F7F11F2EA1E1B03 -:105CD00023FA0B3ECE428F4BD85FC5AC39505F3FA5 -:105CE0002ABDE82E8D885C4679E61274BC5ED26EC1 -:105CF000C8C1F6AF280CE5A0951FEEB6E9D3B0BF3A -:105D0000B5A364A901F19CC7F921CF1676E662BF5D -:105D1000CD39A382D88FFF55E287BCFC4B3405C632 -:105D20001D9627F861F4834E94873DF35F96AEE7A6 -:105D300015339664A103DF79D2816F42DF74F07569 -:105D4000F1C3D7475FCD7DD2D77AFF7DEF3BE0FD32 -:105D5000963CBBA664C7C295797138A3C21D4B6F30 -:105D6000797982CEFC7DD399B57CB03EC4DE011A30 -:105D7000BABF3E83E8EEDE7A8DCAB5488730EF07BA -:105D8000B0E958A8231DE2B8D71551BDD77D8BAD1A -:105D900020BA4C9FD5CC50FEDE8FF4390E875BA91C -:105DA000EB1360AE79A20E5BA40C7BC0BDF87E1035 -:105DB000D575DCCAEE928CF6CF0675C0778A683F3F -:105DC00075C5B3C146F8FD7E17AF5FBDA2530F6620 -:105DD000457D1F5CA7EB5991F6500F4F52A3FAC3B4 -:105DE000FE0BA3E13948ED8DFEE6AF38A10701BEF9 -:105DF0007B5DBCBFB52B8EFD53FA5F2B053240B5E2 -:105E000060AB2CFDACEDA9DFAB231E8C7172A45FDF -:105E1000E8C1E8F7C16774DD1D797FB9746F10DFE1 -:105E20006F64157912AC43E6F48A0C06EB6FAF6829 -:105E30000EE296DB039FC077647E0F12BCAE0CFEB1 -:105E40007EC48ADFEB8D51EB3369C5CB4184D7D05B -:105E5000731441AFF20B594B8F00BD2A49763FE9CD -:105E60001BD701D364C278B32A980670C969150C90 -:105E7000E58192A6BE1BCD0706FD019C6309CEC934 -:105E800015B37A8133180DA701477F701B70F44E4C -:105E9000A77C7C2B3D4DBA66CCEF26C0FE6D6FB75C -:105EA000F9515D48453C4157ECF35B8336789E3AA7 -:105EB0001370ADD1BACD62B9B1FDA64D1FC4425128 -:105EC000FBF73F7A5DF3B0CEF116885E5FA8CF9501 -:105ED0000644F03856B4B3D29F313F5BCCFCAE35AC -:105EE000CD8FA9818C0A4FFFF3BBD7E59F55E18E7B -:105EF0006DF75B49A2F1274D19F36DC6C7630E908C -:105F00005FC9385E5164BCE469301E76A636C71D91 -:105F10002F65328CE7FCFAF069E547035E7B0CBC29 -:105F2000B79AE05D6B03BE8DB3FE5F37BCE7CB7FF6 -:105F30002E90BFC47F797DF3DF3FBABF64FC153E6E -:105F4000F94865E12B015F775CE524FDDE9073FF86 -:105F50006C7CA5E2A7B07E77BC547CE24A192B404A -:105F6000D72322E3D74A1AED57BDD1776FF3810DBE -:105F7000D6D4CFFFAFF9F486D7AF5B0E9DAF7C6D63 -:105F8000783D81213FAD2C642107F4B1B2ED2AB2F6 -:105F900037571E291BC8A05FDB9AE14C8749256350 -:105FA000FFD0DF4A43CF985CD24FFF5CCF00FB4E5F -:105FB0006F02A56BB7B782F4A29512A3EFD783DE69 -:105FC00016023DA6E4950DCE3958F7EF70CEC1719B -:105FD0006D8CF4E992570EF9CA80CE5D23524629A2 -:105FE00040022B5DC6F3A3E5A8E7DE55289E7B782B -:105FF0007FF0BC02DB2788F6BDC1959007F044AD69 -:106000007FA2BD395011477FD76599F0F390D0BB7F -:10601000EE46BD0B047262424B00F56A57BA5D7BD7 -:106020004C8AFDEE265912F306BD0DEDEC115332EC -:1060300051CF3A30E389157684AF90915C77E5854E -:106040007419EAEE02CEDB0F59F67D37AE21E95D19 -:106050009952994ADF99EA77F7E831D913516FF3EA -:1060600016F0F7650D574C6C8C7ECFFC1371FF3525 -:10607000DE071A4AE97DA6B3E2D804183F13E468A4 -:1060800023E02B536D96EA685DD3E2EA8F1BE63B73 -:10609000678500860D331ECC9E1F673F81D534F186 -:1060A000E9A079663E7B48E0EF6E81CF4CE4F5D104 -:1060B000820E41BEB978D31EF9E61ACAE55B4241A9 -:1060C000F30AC4F7A079CC8FFAF686194F90DE6AEE -:1060D0008CE32A30CBB94CD53CAFAF6B3E1B99FE5D -:1060E0001D7974EFFD5BF96C230BDC8AED33C57E03 -:1060F0009E5010920285FDCFDF3ADFDEE6FD2DC413 -:10610000271FA74E1E103BCE3F0B2F996E18A7E4FA -:106110001F3F4EC23CB3BC3C5FBCC33E20E88C2951 -:10612000B81F58EDAB84129FC464AAB6A31D4EF2EB -:106130001BE0F6B0E6F24B80DE522B56DD2E83DDFF -:10614000EC79EBEAF7D1CE4EED9843F676536151F8 -:10615000DB246897E4F7CD984274CA08CF6BB1335B -:10616000E2BBAA1513615E8D8CF3DD66F996895C3E -:106170003FD069BDBF2B70062BAEA950477665395D -:10618000F1E66167613E6FE90B47ECF7BDCDDF16C5 -:10619000F94EF8FF9690DFB4BFEFD8743BF9118346 -:1061A000F00FEDD2644B3F49BA3DE2676488A7A87F -:1061B0003ABCFF6D0F5FDFFE4F19CFC7EE736A4029 -:1061C0000AB63CD987F67A12F325AB2867278342B3 -:1061D00000A2D897D61D94B5FED7A589B1F29642F4 -:1061E0004E7733A2F4DC0E99EBC969332767AF848D -:1061F0007ECF9670BF70AA0FFE17C5CE671DEC6BE1 -:10620000E1283FC7BAC2C7887F1B819E72802F8258 -:106210008532F9B7D7E6EDF045F3B5AC18FE6D2B36 -:106220007D304D2D15FA1FE047C99375D7C8AF4E85 -:106230001FCA97A48FC4E951DFB10B5FAF24E5C239 -:10624000E8E3AB8E67AC6B2C5F71FD246DE63C27F9 -:10625000EA3BAB326626C593B3BDAFEB7DB4AEA8C7 -:106260004F84E2F49FA64871FD39567D9EB1A5A6E4 -:10627000F5520696CEDADCD7BAA599F161F4EB5A5D -:10628000A668FF85C24BF5915FDC29FA5BABDD1791 -:10629000C4FDF32CEEED800FA5795418F53D96C79B -:1062A000FC8FF326A487B8343D443A24CADDD208D3 -:1062B0007CF62CD9349E9A9660C2379B05DA761408 -:1062C000FCAE657682C389E3C1388A0F3A94D0FF69 -:1062D000CFC22E2FF548FDE1505FE462FD4E131D45 -:1062E000ACCE2A8ABBDFA9625DD16CE5F47AE7F90E -:1062F000C917EB78D799E13DEFEFDCAAF66E1CFFEA -:1063000071EC772A7BD7C01720F1961E7AE7EBB4A1 -:10631000CAC6F64849200F32AE67010DEAF80A36C0 -:10632000EB35588E453A2CF2915EB05552114E62C3 -:10633000690DFF737DBE10955BE84F7606084F8AA6 -:106340005B67D45E3B3F7DFF9CD0AFD3843E6FBC88 -:10635000FFA162A77E5556C1D06E3EF7F6D40CEA77 -:10636000578747A51138ACFD162A811F2A0390ECE8 -:10637000383CF801FA09584701F9B5F305CECE3D8E -:10638000303389F5C15F0F59F8EB2189C3C92ACE93 -:10639000CFCE380763B6637B359040F1B29305C426 -:1063A00007B962FC27D6CF4DC0F19FD8D8379F1BC5 -:1063B00070FCB4DEC9C2A0A786EA7D541AEF43C2BE -:1063C000DFBF59D831C6F3738A4C70EC137CFF845D -:1063D000B32281FCE7076F9C360CF82BE7A8E24755 -:1063E0001D4F5BCB52FA1A3F3B68E637A6CCEE1343 -:1063F000DE656F4D9C71288A1F7FA178D2DE1D0E4D -:10640000BF5CCE2E47FAEBEFFB73F5FA8C43F95FD6 -:106410001D2F9B85FD79AEF1772B48CF095F49FC95 -:106420009923E448CE3C2E0F72AB594843FEFDFC45 -:106430000B164D1F6099109E32AB558DFC4D4C775D -:10644000CF81F743C5DB4C65BA8C5BF850D4BF50A5 -:106450008E6CE2FE73C3CF0FEB7E17CAB9CDAF29A6 -:10646000640BE7556A0DB8DE39EBCDFEFDC12CCAD1 -:10647000EF8EFE7AA1D7655AFCF85F751D3A701D44 -:1064800012FFF9EB105219D19D51D72456116FFF0D -:10649000FB44D0A9B6E210B743C0F87B272A1E01FF -:1064A000EB99829BC04F83F74D44BB35B886F9F317 -:1064B000E3C84B9B9A48746F637A7828FA0FE65CBE -:1064C000DFB117E5D50466925F71E4864DC5EFD262 -:1064D000B8DC080567F2F27385E265F9EB5908E369 -:1064E0005B9337D4ED47BF5E6635B79B33D7042542 -:1064F0003BD473EA981F87C9AD64BCFD6C16D27992 -:10650000BCE66806D0CD104137430C7A5966A69791 -:10651000C17596B8D01A737D20D2057C37D0422F32 -:10652000D67E723446F1B8BCF5328F17CD32C77DB6 -:10653000F259F7FB3F0778F30FB9FD61161B6FB2F5 -:10654000F6AFB24001E265F70FDDFF590013FCD949 -:10655000FA49A98817902749244F2AE2DB3D31F4F4 -:106560006AE81BBDB48FC84FDEAEB7F7ABF2D39766 -:10657000CE0538D67A7446E307B349AE2B225E794E -:1065800030F37A6707FA6DDC4524DFF7631DFD3CC5 -:1065900019970C8C96F78AF02319F546E147B28ECD -:1065A0003755E57AF07B4C9F8A7818E50864605C83 -:1065B000CF9691BE730E8C67F381BE15E7BBB16AAF -:1065C000029FAFA6FE2D1AFFB071FB481E32BE1F00 -:1065D0003377CA79E1A3440DDCA442199C04660414 -:1065E000D27F0E0B35E2FAD635F3FD2DD2EE16D161 -:1065F0002E8879053DED02D06E84A9DD3C9C0FB458 -:10660000D34DED2A62DADD26FA63A671F598716B37 -:10661000447FA4CFF5B4F3C7F4B754B4233DB0A777 -:106620009D16D3DF3231AE6E6AE78B69F7EF067CD9 -:10663000A6719979DC9EF7A576E33DF9630FE44FE7 -:10664000217A39943FA57C2E8CB3F4451B97115BBE -:10665000793E874157FB45BB26A4AB42CC5B6163C7 -:10666000AA294F85E7AD34BA673A0351CF7BE8CA10 -:106670003DD317FFF95C537B758D8BE9C5F49CDA2C -:1066800037FD5D11F1AA1F4C427FEBEA3459F8DB6C -:10669000AE69D05590630354537D4D86786FBBA689 -:1066A000810262223E02B2F29B8551FCDD33FE3F45 -:1066B0000B7EE13F8EC03FDB02FF6C33FCA2EECCD1 -:1066C000E4EFD595B327E17C0CFFF2D9A6E50D41A7 -:1066D000F7FFE6F95559E65765995F95697EF69596 -:1066E00055938279FF97E6B7CC32BF6596F92D3383 -:1066F000CDCFB972D905AD9FB5DDDDB66692B76B6A -:10670000F35F27FD7FAD88E326ACD41B56E07BE02A -:10671000ED76EA4F23F93E8AE99FA33CE8EFBB47B9 -:10672000548DE482D323935C60F9F6507E36876BF8 -:1067300026C885E7541F97DF02CED72CF50F2D759D -:10674000F8E56FB86FFA9861475AE47C3FFBDACA04 -:106750004CBE9FACF2F8E5E87D4D15B83938A094F1 -:10676000E44FA38FCB9FFD03843C4A837D8DFC4483 -:106770001924AF6C425EDD57CFF3D89A457E506343 -:106780005A11E1A759D80B2C9465DA370F4C9CD2DB -:10679000867EAB334779DEE23A1BD7C756D6339DA8 -:1067A000E8ABDE49F945FBA0DF003468057D0FCB7F -:1067B000E741DFC3724F7D0695BFACD7A8DC01E38C -:1067C00062F94CBD9F0560FC6DF563A8FC31EA8B56 -:1067D000503E20F4C52BD264F2576CAE872D339F08 -:1067E000F4482A1FA9F78D5561BC9FD46750FD233B -:1067F00069E6581BD9AD1D8D4900E7EE57F3285FB8 -:1068000069429A4AFB2F53C34A5249E4B981D78F50 -:10681000A44957E077E33264DECE196AF4C66F57B5 -:1068200086EDC664A8040F7307156F5ADC76E5364B -:10683000C04BA95BF4E70B347AE2F7F72D6C57E411 -:1068400016FDA5698DEEF8FDCDC47147FA381E58C6 -:1068500046474362FC763760BB429F986F56584E5E -:106860008C3FEE6C1C3725A53980F1AD2B6733D2F8 -:10687000476D69DA66292A3E141A50C164A0F39460 -:10688000D4E63A6CF78D809FE5C0F89AD7CF64A024 -:10689000679B1BDE17624E138F478DBF0EDEA33E34 -:1068A0008CEF4744BDC7EFA11C3B4B7C9F647EDF50 -:1068B000A397AF613D793C98BC646B32D79365CEAA -:1068C0009FCB571E98847C9F6CE7EF7F8A75D4B767 -:1068D0009633431EF1F609FCFD8F8CF65EFEFE1723 -:1068E000A27D4A0A9FB76B8A338471B147BE7B4948 -:1068F000E6DCC2C87C2FFA5EC1B0B951F37BE47B01 -:10690000E332E7BA23F3B9E8FB1386CDEDC3EE49D2 -:106910002D977B7264516E25371792FC1CE5A820D9 -:10692000B9336A60A98EFCACACE770FD87EDAE862A -:10693000863C822B88F2C680EB278BCD700DAE3162 -:10694000C3F5931A335C836BFB866B9D8DCBB5DEF1 -:10695000E083F1F5E8F11FFD37F3F8437E601EFF99 -:10696000D11F98C71F72E7571E3F1CBD2E9B6E3765 -:106970008F9FB5C43CFEA625E6F1B3967EB5F1FF28 -:1069800051FA78922D70C426F45D255AEFAC0B981D -:10699000F45368F78A681754A2F5D840C0A49F4200 -:1069A000BBD76D42DF35B5AB8869F707D11F338D93 -:1069B000ABC78CDB21FA0BCBD1FDF963FAFB8B68FB -:1069C0001794A3FBD362FAFBC080CFD4CE17D3AE0B -:1069D0004BB463A67199795CF82950A19FEFB30479 -:1069E0003FFA47964D5E4371AF812C20A1BFCF97F0 -:1069F000CA461D82EF592ECFBF4F9EB2EC62B43B08 -:106A0000D7249BFD5CE9766E9FD9EC0A95BE44566F -:106A100047F900CE60E68CA87C8B6A3BDFCF7ADE3C -:106A2000BB8399D746BD1F28BE5F23E2D469F6D247 -:106A300046942BBEC1D03E8EBF22538C6BBC67697F -:106A4000FE761DE0DDF8AF3347A3BF2832AE8DB729 -:106A5000BB588C9B151FAE35D97CDC45386E213E6A -:106A600037F48B6026E1D7C74BE3F9839EEF49FFEC -:106A70000578593DD9292B49F07E3DF76F1A7EF6EE -:106A8000647B9D13F3761B2F92D963D82EAB6F3F97 -:106A90004E53BDD9DFA9FA2A74B4F70655FA8A1401 -:106AA000D6FB770F97CBE5F1E20DA3C5BC9A2A2759 -:106AB00035E7C1F8EC90D96F0B84CDA2F3610A954C -:106AC000C0687B3CBF6D538129AF3E7950DF7EDBD0 -:106AD00046A15FF4CC033A8AB77E370AF8D8C602DB -:106AE000939E959C3293F4ABE486AB9DBE38DFADAC -:106AF000B5F4EF6233756C9798D6CC64EE5C34E9EC -:106B0000614DBEC7F83E94093209E33F693BC2C8F4 -:106B10003F674BF8790A3523149428CEC1E7896A78 -:106B200025FE24AAE1A00CED076D54593895B1FB60 -:106B3000E5C08D881F575E33F9C7549F2E219ECE26 -:106B4000D94257D379025017E3E57FCCB3733FF0B6 -:106B5000C3DACCDF65C759C7DBEC9A492F1DF4A90E -:106B60009D858B7B6F1F69C7E1EAA1D30CA04FE421 -:106B70006F8DD3E9ED8ABED84EFA5A968FFC8E8679 -:106B80007C35F85FC4B7E78E61E247BBE10F308F19 -:106B9000DBDA6C3CBFEF73681D15F7B94DF8BFE643 -:106BA0008A78F73C56E1C597A7995C8E7C759ABDAB -:106BB000EA2D8E5AAFB5763B1F678D8DFC5B463C48 -:106BC000777EB3CDE4EF5AB8D15C5FC066A6A35C14 -:106BD0005AB0C1C6F07CC76D167FD8BFE17C615E3C -:106BE0000B59DD2AD4D38DFCA0B93EA662FEF7E294 -:106BF0005F3D528A7943CD769EAFF301D08B16C5A7 -:106C00005755EE901DEDF97776155F3F9EE1F7A1A0 -:106C10005583509E26B3B8E78C6E5D6386AF3FF810 -:106C2000ADF032D640F0F60687BA558AEBBF7AD47B -:106C30002E99E244CB9CDE910CE4CC39172F7BFCDF -:106C4000297F74917CDF27E80836C0CBB89CAFBBA6 -:106C50001CCBFEBE3BD8CB778B9D1D76E48F5AB5FF -:106C6000AE5C92237126872DA00F86EF6C7B268663 -:106C7000073353BB35E7D9AE4DCA39AF76E5721F3E -:106C8000FD750A79F9C2B69FD9D1BF78FAA913D791 -:106C9000201F2EFAB5C29CD0AE739B8785715F50C2 -:106CA0004376942755BB94B871598AFCC3FC17FDF1 -:106CB000C24372A26A8723341DBEAFFAE53B231993 -:106CC000E0A1B3A1FBF060DC479F92787C34D8311F -:106CD00012F7AD2A95DD122F4FEC84A0BB53CF25C0 -:106CE000CEC27595B6EEBF99FA6DB9C1E688920F1E -:106CF000C7C4BE04EDB87FED4929941F477E18F143 -:106D0000AC534F4A1CBE3DB6900BE1DBBAD91E0016 -:106D1000386AB77E487454F68BED5EC443ED1EC5E9 -:106D2000E4F7ADDDAA841D23A93C8125C65124E0EA -:106D3000EB1AC6E563CDAEC5E40FAF6959F7A1E222 -:106D4000C5EFCDF40C78F18711AF6F28FEE958DF5D -:106D5000F973AF06A8FAA0FD712FE215FA9D634FF3 -:106D6000C278AED98F8DFD7F9A12DB1F63DD76A4CA -:106D7000AFDA96B57C3C0BBF7C80BF64C6C64F9C27 -:106D80000E4B1C6B6BEA79E9898BB69F7D3408E367 -:106D90009DDAF1D74783B87FFFBF8F1EBD13F59AE9 -:106DA0007D2E1FF27BED53AF7959D43E98E3E07C02 -:106DB000D7F9E4CF9F7818F8A4F3B8838EEE75EE78 -:106DC0007D6F8806F3ED7CF6BFD335687FC7DEABF9 -:106DD000C8EEBF6377D9C0BEF643A4D350F43917C9 -:106DE00091C7A4ED9150D902435E94967539B84B82 -:106DF000612E80F3F4314708F39A6BE1D9B2225C3B -:106E0000A7C5247FB1BE1CF05BB36DF587CAC878F7 -:106E1000780E0E9631C79E01BB64E03A5FFBED6FC2 -:106E2000946069A338492DEB26F969FDAEF628ACCC -:106E3000E765BDAFDF59F6B91D8378B5DBD6F271D2 -:106E40002DEB771A7F191BBB7EBA65FDCEB2EA9F88 -:106E50003E8C2F77A5C68DE71AF1AFC5BBFFA54FB6 -:106E6000BDC99003FDE1B752E270791C7A8503F940 -:106E700069C7D34F3C9CC6D7773A20A473FBD9216E -:106E80000CE8E3A4ADFB66948FDD7B1D3EDCCFAB4D -:106E9000F6BE41FCD5B9FB15BB46F291B925D0131E -:106EA0003A59CF4F3BEA0D3512AFD46EF1841DDE57 -:106EB000C83AD58466946B5E7A7E829E8738DDD729 -:106EC00084F65F27C559B7D58E1C2E8F433C696F5A -:106ED000F1963FD899DBBC9ED2185CC71353F0796A -:106EE0006FEB68CCDF87F3BF3C6A3DB7707EED8DFA -:106EF0002F3B373B54CC4730D6B7D3C6F5FDDA909D -:106F0000F4068BC3AFC6FE76A1F1D00687251E2AF4 -:106F1000E6DB1F3FF73F8F0BC3D3124CAA1C1D8B20 -:106F2000AF539FC797EF8F382401475DF9A0DCD896 -:106F3000FD496515C1C1D911784F8973B3A79E5218 -:106F4000424178BEAAE520C969AB5CA8E9454F7EFD -:106F5000C6186FCFFE9128BF4E1D788EE8B066DB55 -:106F6000093BDA4787B7EEB4771446E81EE57F742D -:106F70005EE4A967F68F24398DFDC7599F5F0B79B1 -:106F800057DB6AEEBF76DB87A6FE17055BECE417DE -:106F9000ED679C0F54FD069CEF07ED368679F71FD1 -:106FA000B428E5F1F49B90C366CA835AE5293D866F -:106FB0007E4525C5AEA1BC6B5AA1BF11A4738F3607 -:106FC0007EEE51D58F39802F1B93ED1ADAAB4D9E93 -:106FD000EB991625B79B2DF8F4A5F926625CCD3701 -:106FE000B9A224DA7E32E04FD66513FC7778CA075F -:106FF000E27909B4C3344C3250FDE45756BC53CA4D -:10700000713E8A4FF6B9E2EECFBC3FF4B721FDDB0B -:107010007C32D3A2E86B54D9F5C3D1D5A632CD9436 -:10702000BF7AEF641EC735E67FEF456C1303B97B6B -:10703000AFD4DD86F9ECC1AB795E201376BA17EDDB -:10704000F4EC587D8EE9BA86F287C40F6FCF7423B3 -:107050007F147EBE0FE0C898BF23FB4999FFBEA2F4 -:10706000533E8F1DC7CD45FB2944CF135998EA8A5B -:1070700093CB1F0FABA3E749ACA319CF30BDEDA84D -:10708000F8D401CFEF2B4F9138DC61CAD74816E313 -:10709000C88959997DF13F9BAC9E8AF6FB38D8266A -:1070A000B24BD0EDF8456A040F463E9CD1EFBDAE21 -:1070B0000912EE3738BFC178AE479C9FF7F5CC5721 -:1070C000A7FA00A36E19075BFA4AC5164BAC1890D5 -:1070D00054056F0D68263FC720D64265166BA73250 -:1070E000C5E9935482EF2DF24BC9ECCFEC8B440BE6 -:1070F0007CE7A18F9F93F5E301281B6DE2F9DB9EEE -:10710000D0E350DF90CC4CE783739D9CBF2F77CAB0 -:10711000865F26106D7735B26A9ABB2B8D1F63315F -:10712000BEBBDE1918EE8CA227C5DDCEF3BE84FDF2 -:107130006BD8EB5729CB29FEBE3A83DBD5BDADCF4B -:10714000CAFA0A935D6D2D9B0738E76C66043FF71A -:1071500053494E7E7E59679A2F9AFE605C67697428 -:107160003EA3AE937D2FDEDB607AF8D28178546245 -:10717000E96F06D2DF68A4BF0ED14937F9296E57EF -:107180000257E37C33F2EA24FE3C2071BF97AEE065 -:107190007CD345FF72627566A08F79B259401F514A -:1071A000792D1B84FDA8AA4C4D284278368975B7E5 -:1071B000D2A5393FD5D0D7DCA2E6107972BF2979A4 -:1071C00095CEA3A8696ECA4F719734DD8EE77C55C2 -:1071D00056E743F9E936F24FFC3C9FD0B08B5D0592 -:1071E000E63C4E87256FD526ECEF983C6EB1EFDE7E -:1071F000830FE2E8C3D67DF77667FC3C2436267E13 -:10720000BEA0A1879D2FDD5BEDC86A67FB611ADC1C -:10721000A7539EA52AFC0D13AFF3911FBC6B9BC413 -:10722000CFAD59E8A86B47D2489487C8BF78CF45FF -:10723000A2782E6DDBBF1FF5A6262FD3935348CE21 -:10724000694A2E9E971AE594A05CBCEBC3977F8D8C -:10725000FEF55685E1D6DCE536E2937A322E5622EB -:107260005B6F5ADF0B9D4F6C5C91F3DB129FC16F1C -:107270006EFAFECC3689CE4F296CF88FF1FC436D47 -:107280009B8D85E0FD19C6FB3FB389EB030B5F8443 -:1072900051F03CA8181FF7A5E8FD23B53C8169D142 -:1072A000793C41BD1DCFFFCF13F8185091627AFF92 -:1072B000D7B9E56DE49F09F07B0006CE1A64EA6F4A -:1072C00091B27C2825E1093F8606FF90FE8CF99F4C -:1072D000930376BE4F542485499F01FB17ED86909A -:1072E00044F94A567F47CD1E89F6A7DB607FC2F37B -:1072F00038B7852CF6A3258FCEC0B7952E0F3985CC -:107300007DE066EE5EF0EA0F97507C94F86AC98BD8 -:107310003C2F6CC976294479CC1D439318E159213F -:10732000BFD17BACEE41D83922F46BC19B23C38C17 -:10733000679766C673628119AF1EBF198F563C27C7 -:107340008DC931B55FA454DB89C8049E0BE01FE2F0 -:1073500019E420CDA306E611D662F159D97AEF2AB5 -:10736000F46FF48B470BFE4E59F07796B5EEE76F4E -:107370005985339D589BE69DA986897FACFC66E0C4 -:1073800029CBD73E919EF93DE42FCE109D48F3F8CE -:1073900077839C2D9C798AFCC46F467E7062CF7E79 -:1073A000F90EFB02CAA5330E9D98CB62F96B1396BA -:1073B000C0D72DF54EDFBC7C8C4F33DF3C1BC6ABFA -:1073C0007D54C6D947A97FA047DA0FEEC1B8641A29 -:1073D000F2B54AF12B5CAAE9504F6CB5F9D06F7940 -:1073E0004F51F735A8B7D7CEE7798E372770FFEB27 -:1073F0009204BEBFDA12785EF35D1532D3D1BE6F50 -:10740000554212FA8B7CFA8B57A2DED56AD3685F9D -:10741000F375BFFC1D7A5FECC3F86EA6DC3C0AE195 -:1074200080F6E46FEF6A7DC77B6B94BED3B9E7FE4D -:1074300061B8EF3C24B3CA787A7CBE8BC3D159F0D3 -:10744000E77424C7C5CE6EB2A35777D455E0BC0C01 -:107450003BC2BE8BFBB76AF6CC207DF2D0027E1E0B -:1074600073F7297E1E738A32FB9B23A03EF6359567 -:10747000CB4DA64F9F93CE5328701D3760BE24F28C -:10748000C17FC9A106C24FF3EF314ED5F81795A1C0 -:10749000FE5852B780F69F5F7BA7B46159AAB71414 -:1074A000235F4F6E4D9E88E7646ADFE27995A3DB28 -:1074B000CDFE1CA6541F443FD8D9637C5BBEFC980C -:1074C0006AB5BB14DC8FC776989F8FEF876ECB5C55 -:1074D000623FF2B2F40BC98BFD91AC4F73917F9474 -:1074E0009FE3F2ABF1EDA74713B87D037891504EBF -:1074F0007575337F03E0A96BDE209A6FD7C7FC6AEE -:10750000A6AECF95F278F6D12D2E4E2F0FD979DC7D -:10751000F6A105EED00A98C781055517A35DF4C9F9 -:10752000BF052E8E17A788D8072C49A63D4F4F625E -:1075300063902F9AF8F932D69C19EFFCBCC10F0664 -:107540007F187C91B9202110CF7FF98E8BCF6FD21D -:107550008202CA83EDDC27518CA7B301E0EA038FD6 -:1075600041D63018E1A9DDF311F9179CADF1FDD03A -:10757000F5784803E9B621B8623CE0EB7BC0D44122 -:10758000E4077B7376BCFE836C03F99B16B834E288 -:10759000B74E27B7A399DA9C39D3837C5276F52A64 -:1075A00080F361E03F24F9876C7E823BB89831F22A -:1075B000AFAA9CFFB3AE619BEF8AB2B7D6BA263EA4 -:1075C000E082FE1E70F178476AC02F21DCFEBF9F6B -:1075D000F362FF5D9F3A68FD06093F8FF15D8BC046 -:1075E0004F5982FE23FC9E55A69130F407BCBE790C -:1075F000B0FF5FB607F01D27BFCBD077520220FB4C -:10760000009E14B74CE756D0DE427BA296193F414C -:10761000523E0DFEC34366783ECB90B752AB14F694 -:1076200080DC2C71BAC3E84F49A98479633C8A395C -:10763000797FED667D14252FCA5D94013C599EDB50 -:107640003B861C36E477533297834DF7AAA146094F -:10765000D3DF3B5CE83FCED6B549985A95A26A94F1 -:10766000E7705125F3075148E63E92DCA3F78C679B -:10767000ECD9BF2B71FD1B275DDC1E294B08FC0AD2 -:10768000F135B2ADFB00AA4F7E174BC5F59E22F433 -:107690009BB1A7B93C32F2FA6B85BD619547CF012A -:1076A0009DA3C018FB0DBEEF8D3DEDF623FDF4C884 -:1076B000A10553681F2D6A2D3E88F939456F717EEB -:1076C0006442FE80F54678296D0B2A880FABDCE911 -:1076D0004FDE18F2C4BACEA05CF7D4B30029C56D52 -:1076E000C06751FBB7554E1D7389FD55C8A9B36CD2 -:1076F000C2C0ABB4083D152DF31F7444D18F21A730 -:1077000022F414223AB48E2331674FDD978BF2E5D1 -:1077100088827E90AE893C3EB942F051F2C7A1AB5F -:1077200071FE1B5AA7BA90EE77B4953991AD966465 -:10773000F0735EEAFEEB824C904F745CD7C69C1AE5 -:107740009E291F0F2B8FF8507C508F9AD79966492E -:107750009C73D492AE8B733F82512EC9E0E7B8760A -:10776000B4E524713B334CEBDE43F7C20F61F08587 -:1077700041EF56FA36F8A19171BF84A13F28528B90 -:10778000B00BCD7E8146C3CF1174519CF80EA10F72 -:1077900036BA2F5937017E6D0A4FF2615CE20E4F07 -:1077A0000EE533DF3180E3CD8A07A3ACFD14F4C3CB -:1077B000A8BCF35AB59BFC5AB59FDA4DCF0DBCF669 -:1077C000860F03AFE310AFD297C7EBA7B8BEA36392 -:1077D000F1FB65E79DB5644CDCF372FF57E63D9E17 -:1077E000057EDD4176173FB761D097212F4A976E0E -:1077F000CC24E26837DFEB65C891317BEA0EA28AC0 -:1078000068951397B5B26B114F63C32AC3A32EFDBE -:10781000C98D8FF1974C3A7F716302F0DFA817662C -:107820002DDA068F466A2C753A0035B25D2539C6C9 -:10783000DACF2F0ED512FE381DFD8B865E1A8357C8 -:10784000A1971AFB8B11075A9710A8C4F1A53DC048 -:10785000375ECC3FE5F6EE5A57605102B44F0498BC -:107860001330D7AE209CCDED53335FF6C687891613 -:107870003E6B01BCD03904D8E7F2A558388CF1F33F -:107880001292399C406DA8BF6495323E580DBFCF0F -:107890002E6B240BE03E8CC736719E6B85FE759770 -:1078A000A55CEBAA68C079D9541674147D79B80D1B -:1078B000BFE0BA043D88F87096EB348FC13EE647CE -:1078C000BD7EB0DA22F9018E946A4DEA71D618FBBA -:1078D000379EFB99AE4D44BA189CC7E83CEC60D487 -:1078E00083E2ACCFA6041EAF5DECEC388C21F3DA5A -:1078F000E975E5DE3EE2D3917B06FCC24F65CEC35F -:10790000E8DAFBC64518977CFBDF3FF260DCE94F05 -:107910006AB707E13CB9FCF71EBCBFE5EDE5DCCE7C -:10792000B8D9A2CFEC14F84B4EAC780AF1774BFDE6 -:10793000DF4BA3F99D2DE37194DB420A1A9D3DF4C0 -:10794000BD686B22F9E68CFAE2965453DDA0D3C5EC -:107950000E9E27659DFFFBC28EBA6DDB66FB600D38 -:10796000C70FB422BE4F0A7DEDE42E0FF9330C7819 -:10797000E66E1B65473CFCA9D521E2F0ED368E7F13 -:107980007D3AC6CF026229AC701EDE9748FDCD7FDE -:107990004021FD620E8CB50CE83BD07A1BD9D9D6BC -:1079A00079CC7F5B9B3210D66FFE5A89F4526CBF44 -:1079B0001CE821B06C35C5D9ACF39C13B4C6339721 -:1079C000939D6ECDF398C7B47513B2E3E47BB4F224 -:1079D00038F9C27EEC9A3F26087DA1945D8EF9E8C5 -:1079E0006759E18F0AB5FEED9A93F58C92B43EA8E3 -:1079F000775279AADE47E553091A8F67EFD97F9846 -:107A0000E84B6D2F457EDFD1F64EE24D5A446E5F56 -:107A1000B1F9A3833F817A31E3FE1BC33F3E5BE0B4 -:107A2000FB4A21BF170A7DA0F8D3BEE5F76C9CEF97 -:107A3000C858780DB93D1BEF958DC28321C7ADF8AD -:107A400038D3969B887421255AE3C05F0D2FBD7DE6 -:107A5000B758899F3768F0CF53C21F306FCB8C5512 -:107A60008360FCC6BDEF0DE1F702B3A3281F0CFA3B -:107A7000B4D21F637576E4E71E3A6BBD9BF063D00A -:107A800005F05186883F66A0DD67A5B7FEF2893A0A -:107A90006D1D43500E58E9AB536271EF154D4DE427 -:107AA000FEF2799A3E05ED50D85E56F1381D973FAB -:107AB00027D5E6C377227F6EE1FCB1F857DB7F89DB -:107AC00072A7EA170F7851EEBCAF36A7E378D58FCF -:107AD000AFF4629CFBA41AF4E2F7EF8794B87985BF -:107AE0000B1325E10F37E72BB035C16B906F3F7952 -:107AF000DCE6433F43ED56078F83EFE278833A8F0E -:107B00007FEF8A9FAF50F5F307D2359EC76ACE5BF1 -:107B1000D862A3FC13F497E130BDC5717BE2C22D9E -:107B20007DC7B76B77AD8B9B7762E40758E9F606A4 -:107B30000BBD025EC88E09023CE4161771EBC62726 -:107B40007F3CF204C0756ACB6FBD5261B4DF9CC745 -:107B5000C7CFB4DCFA530CF1F446AF9D82BE237A52 -:107B600043286E1E43B52DEC453BBC7AB38DECBA71 -:107B7000EAED0A73623ECB7107EDDB8BB6FFE6F5EB -:107B80007100DFA2676D69D3F934285FC158A79EE1 -:107B90003C12B12E553B7FC3E3BD9AC82711EBB30E -:107BA000E8D9FD76CC8BB1E2B1AC65BFBDC3928F95 -:107BB00040EBD472620A9DCB7BF29C1DF7D3F7F7A2 -:107BC0004974BFB2F5FBCACDBFF1A27C403C515C09 -:107BD0005EAC57EFF942E16B9E2FA176E487EB6D27 -:107BE000FDC6E0DE3A9AE8FB99E761FCCA371D94CE -:107BF000AF54F9CC52CAEF794FADE374FEC8CA74E2 -:107C0000DC5F2B6DC1741F95FC79E5A3DF25FA5B62 -:107C1000F8CA77D3F9791E3D93FB6D829938BFF985 -:107C20009BFE85E6B7800588FE2A1F512AD05F7229 -:107C30005665E5CFC6E1933F093E79EF310706511E -:107C4000D97BC26F197C5511F7FE5AE349FCBE95EA -:107C5000B3C28EDE95281BF71439A3EDAADA2DAB3B -:107C6000DB717D3EB8481FE8A3B8BE1A14F89248ED -:107C70001F7FE5AA81428ED13D31869E5386CFB1CA -:107C80007DBB8DEE8B89FACE74DFCB1D627C803B91 -:107C900041BA0CCAF4F8FE4C8F5B32E0E3F92F06D0 -:107CA0007DF5C6F75B783EC9C747B95CC1BC187A99 -:107CB000DF6E0B0F34E5C3384CF78944F23D6C821C -:107CC000AFCDEF014ECA57E9C1EF3E89E2AC0B36AA -:107CD00038CC79703D7463BDE7C69CBFB2D0A26F4B -:107CE00019A5552EBC69910B6CD3F9E5AF54DB4255 -:107CF0009477547DDC41F643F5765B05E2E3AFDB38 -:107D00000EBE7E13D0F95F5B0CBE35CB572BDF5612 -:107D1000EE18CDE2F1ED5FDD7E16976FE1795CBE86 -:107D20007547E2111AFBFAE4EBC25EE4ABE28ED1D6 -:107D30000792302FF783A7165D4C7E060B5E0DB9B8 -:107D40006A95978F246AFCFE8298BC3ABE9F47F2E0 -:107D50001D39FE0C7AAC7A7A318DD343B7065D1AA1 -:107D600074DB4B9E96158FD6F72FA23C1A10EBCFE3 -:107D7000084E620578AF5EA39D15A0FF392827F84D -:107D80001FCF8E93D7C1EA86A29ED1E8CE8E9B9F4D -:107D9000EB77FBD08CC573654ABC78B7BF4C8EAB14 -:107DA000C797B8B95CD98BB40065B59BE3AD49C43E -:107DB00057C012A4BC7FF429123F257B899F6CF029 -:107DC0009CD1B94A3F9DDBF627CA1F69A08255B8EE -:107DD000B5292AFA538BE5A5B9505FE82EE6F5F1EF -:107DE000F2CE1CA8DFE62EE1F5CBE4621B90E61391 -:107DF0006CF494C950AF31E6392FC9E4DF50E51374 -:107E00000F62DC457D9EDF17B70EF8DA591489F74B -:107E1000263A58D05584F7344209F555D9BF5F85C5 -:107E200046E00647E01A37C9A3491AE2F594CF495C -:107E3000F932773C7715E56756BBB9DF78F8CEF1B4 -:107E400074FFEED730FECDEE01BD8FDF64E3FD9C05 -:107E5000DA31BC0CF13AFC62467E0803FF45AA46C3 -:107E6000CF5D2D78F494F83F03CF7F3426DBA99FB4 -:107E7000EA9EF53ABFB251E43528899C0E9424B9A4 -:107E8000EE5928978AF5BF43E0037FD05EEEDA3BD8 -:107E9000F0317EDF53F7105C5F4539F347D41BBBED -:107EA000FF35D18FE757DE4CE0F8BA2169BDED52BE -:107EB000A81739872C45A27E53DAF65D2CBFED0951 -:107EC000FC90E39F85B1BF9B6E56787FEE3A0FDE44 -:107ED0009F26E95C8F96806866031E1A75A6D97383 -:107EE0009145CDF9168A52D41DA6713DA671591639 -:107EF000EC83B04E378CE5EB0438A57DF18D31BCB9 -:107F00003E2B94D3D8A1111CF7201CA31CA18BD00D -:107F1000FEB909D4224ED766FBDB88D3D7FE4526AF -:107F20003BB356D21ADD50DFF91623B9DC99E015C0 -:107F3000F907FCDE19C32F31F6A5B965B864257BB6 -:107F400016F13C0EE18732E2E86759AB829389F182 -:107F5000535BE4E178B69EE4647FF1B19FBB457C5E -:107F60006C101B7481F1B167DCE7111FBBC86DE8B1 -:107F7000F322DE2EF6FF334772285F485531278FF4 -:107F800031BBA6508A88F1DD2E8BFC35E878C451D0 -:107F9000DFAD88971147D92DDC5EEA253FE224A3A7 -:107FA000BCE6511D05941F61B3E6471C9329E1A966 -:107FB000F4C5620DF1D924E2C6171AB737E2FEC53F -:107FC000FC514C1CFF796F39C5418B7DF1E3F8E31F -:107FD00094D914776047F8FA19717CA6142A08E737 -:107FE000D930D86008E751F3DF01B93C2DA8505AC9 -:107FF000CD5BE6E7E32C74605DEFBF58D7FB7CF305 -:1080000020DEE7F7AA8D6223290FC226F2207EC95F -:1080100002F747E7411878EC2FCFC49A5762CD2377 -:10802000C90C98F134B8F252D3FB8BEA8A4CF58B29 -:10803000978D33B5CF868D30BA9EBB669AA97D7E6B -:10804000F34C537DE8C69B4CED8785E69ADE0FDF47 -:108050005AD5E7BA8F6859627AAFC8A162BC0FD20D -:1080600058F7CBF6FC202E5D18EB6EE46961BA116F -:10807000E27734ACFBC3D9E43F2A93B4D8F5F78751 -:1080800083B42F5FE8FAE77B843E7481FC3E0A8963 -:108090000DE3443AD713BB6CEE35A81727036C28C1 -:1080A0006FADFA4572EB0BFF2D79E3E55B682B9022 -:1080B0008EBEAFE86371BF1F20F2239B64719E7474 -:1080C0009293F4817B64F996E87BE4AFF0703972A7 -:1080D0008587FB557E02FB26EE9383135990F64F5E -:1080E00071BE9CA1430AE6EB4D65E2FCF963AB2649 -:1080F0004FC078664781968C2205EADF88C8FD9BD1 -:108100001C5A23C60346295C8E837C9FE6198DFB8F -:10811000CE721BD77F8236C4F360270B7A8B68DF61 -:10812000A3B866324B939614A2E9D5B3BF685F003B -:10813000311CAC1A9E8476D0CB383406699D09B4C4 -:10814000FFDF68C8BDCA6124F7CEB87BEEB5A0F3E7 -:108150008E67E6E5D2F3E33703D701FF1CB79BED4B -:10816000A2FEFC53959BEFF7A0FFFF780133E519C2 -:10817000547BB81D55ED5178BC3CF49774444BD7F3 -:10818000FCCF2E41A06BA5F65528A2576FBCBD822F -:10819000F27677CD08A2FFCFF03B1BFDD4B64E643C -:1081A0003DF707433F37BCC1FD5F377C66F6E7DE2E -:1081B000E9E179D7778AF1AE87C20778BB1EEFF481 -:1081C000C6F2850953901FE0795882FAB7DB40F573 -:1081D00003BA9F11C8B6213CBF67FED7764B98AF54 -:1081E000ADD1F7D7B10A1BC2F5FACD8B3DD8AEA7FA -:1081F0003FA39FC178A613F6E9E4A02D1DE8A7FBD5 -:108200001B12EDEB309E139F57CC1EBC12B70E63B2 -:10821000BCD759E0F46BB0DE33999FFA35FA672C7E -:10822000C1240777542EFA536A0ECA3F99FC1F4B9C -:10823000F63A48FE75559DDBFE20BCBF6570C7450C -:10824000A85FBC59F5D92588971B372A4C83F50FB1 -:108250002504EEF344E1EDF8BC8F3CF81EF484C72E -:108260001FC44DFE69079DF37AB3EAE94BA2F5EA14 -:108270004D9E893FF6E03E39E6FCE23D654F0D2319 -:108280007BDBA0AFDB047D2D797228E9834B3CE6D4 -:108290007B53963C9E4BE7894A2516D78EC47B3F7D -:1082A000302F7D07D0159E23DCF729CF1FDF7924DF -:1082B000A598CEA3B2C07684CF68BFF3E59B865362 -:1082C0005EE7B1B4F3BB1719E00BA27EC5389C2F53 -:1082D00009FE98D59A5A2CF4BBE7106F37FDFAC9FE -:1082E000D37F40FCEC7DFAF13BB14DC9F9E18389C4 -:1082F0007DCC2FF000FB18D93F5D2CC1EF8863FFC8 -:108300003C2BF4AFEFCB3AD925E7E40A91BFCEED91 -:108310001045F667601E774BAB928878F3A2C16276 -:10832000C817D009BD78FFA2B83FDD09F6D9702182 -:108330007FDA3D1F4F69E27108935E5772A8CAA4A5 -:10834000CF55C03F94F7976F0A34E23D8DBDEA7573 -:108350006199ECE12FABDFBDF325E57DA787F37FC6 -:108360004B0197DF2DE18410B71B5831EA7BCFE03A -:108370005CE0FDB464BE2FD8A5CE0227FC7EC6F318 -:10838000C9AA3559B0DC791C1F58C7BFD3C3DA3826 -:108390009DF6E87F872EE57F674E9C032E11E7A2AE -:1083A00063EC49E02BBEC92698F4C7F0E1BFD13990 -:1083B00097ED29DAEFC6A33E0F7A0AF2BD4BEDB076 -:1083C00027C799DF2F517E027D8FF572FBC4B987D5 -:1083D000C7E19C9A4EF79EB97CBE51682F19ED4FAC -:1083E00089FD66F1E13787D8619D4ECB47BC1847C0 -:1083F000A8DEBDC38B66F2658981242FC64B8EBF74 -:108400005AEAA37CABCD43D0AE6D09F3F8C408950E -:1084100005D538F735D76E2CA64BBF6B36A652392B -:108420000CFD09F0A836CCE7D9B9A731259EBD5D72 -:10843000FB1F7B07E1BA3D3D809F971AD15ABC10C4 -:10844000E51FC2620339F7D4A7C3A9BF4BBCD93417 -:108450003F185FC5E7209164BCEFE86961AF757EA6 -:10846000AA503BA3DF117B262A3E58CBC270F301F2 -:10847000B20F5B1D1AAEB36B0BBF0FCED5EA22B99C -:1084800057BB6F2AB7E39279DC737B42F71FC5397C -:1084900036FABB042E5F334B81FEB7DBF9FE380C96 -:1084A0001860873BF2DC18CFD5FA634A6A77E6F1A9 -:1084B0007BF55C6A33FB863B1AEF1EC2FB542FA789 -:1084C000ABED096119F376BA81261F23B822703209 -:1084D0001AD7807318E9F3DBEDDDEFE2F94B3A5F71 -:1084E000A7211C1C4ED63A5443BDC2E5E3F15B976D -:1084F0004FF307A558B86A47829E0BFC764F038B53 -:10850000FC7D04CC634B88D49DC013DB739890072B -:10851000C3564FCE8AAE83401A13F97EF63DC35739 -:10852000374D203B27A8A05D0FA52705E7C9F737E2 -:10853000BCBF604011C703FA89139DFC7D4F7B27A8 -:10854000BFB24475F376FE245FE23489F5DC676AD6 -:10855000F89DEE90C2EF5E89FEADF081911AC05297 -:10856000FDC2F344B78BE4D6074768782E31B000DC -:10857000E9F5576FC90CEF47FAE049179D432E788C -:108580006E33F9ABADFDAD3ED6701FE665773D2786 -:10859000699807DA65EBA6B8514DEB7B745E71EA1A -:1085A0009E13746E4B490AD47947635EC48A32C401 -:1085B000DF58D6DC88FE3D908714A76FC9E0F2E350 -:1085C000CCD14B1E5B1185EF07BDC2BFDB1DB818B8 -:1085D000F9A655F0E73ED46FA0DC2DF4ACDDFB6FBF -:1085E000CC8D3E87156407C81FD6C00E517EA1F101 -:1085F000BC2BA4D239B0E1AF3B6FD1A3E8AD59F0A9 -:108600007BB3182F3F29B08AF876FF9FED5E0DF3FC -:10861000585B86A0DC6D013DACAF7CC65A0BDFF425 -:10862000E4B79CE4F771C3BA3625C13A3DFDFA9E22 -:108630004BF1EF8B00FC8CEEAB3AEE20B9B93B9BD3 -:10864000F3DF8AD73E198972EB93BD8B2E467C2DC2 -:10865000F3DA0C3A9F9480FCF42C233966F0632102 -:10866000F2A384F742713F4A21D239F29FBD7D1AAD -:10867000F1DF6E7E2F04D039D13DD0B90FF58B429A -:108680001FD03D7D3F94F8797BBBCCCF81831CCF3D -:10869000A7FA24CA57D9DE3ED947FC2C036A8B902F -:1086A0002FC307A89F16FADB75ACC4729FEB294C49 -:1086B000D21810918F7FF3703E6D29D092FC309FBD -:1086C000444531F141D43EC9EB621F957F74D3EA32 -:1086D0000DF8F7C3DAC5BE20F4AE7D42CF65C7B84A -:1086E000BC5F2AF6B225BF19F7ED6D30DF252F29C3 -:1086F0005CFE0B3A3920F4E043F51954C7FD428380 -:10870000751A0D25DE0754AAD7E19F2F6163CA9B16 -:108710000F6239AEA2A50C8F4C4D98D57E909F610B -:10872000D38723FDED3A70F570CADF3DEE6098A265 -:10873000B8EB6FDD7F7C0AF351F701FEE3EC4BE809 -:108740009F6514BFA9207AEC8D6EBAA48E6BC6FB10 -:10875000410FBCA77AAA0A1B7D0D1206E0E3F57B48 -:10876000AA56E3BD803725E9C7911E97FB02C79142 -:108770008FBA5EF95B3ACAF4DD47FFEC4579BFCBAF -:10878000AE0F473ADB9503F6401CFA3C2CE8A7A451 -:1087900097BC8ACFBCDC5EBA24C8D621FDD4EC528B -:1087A000E8EF169CDEA5E8780EFB5D3D908E7ACE54 -:1087B0004916BC7E3CEEEFC2AE9DCFD1CEE6A3DE25 -:1087C0003292EECB30D9994C592ED33DEFAD12F900 -:1087D000272A2D7A48356B5E3518F78DD6CD769CD5 -:1087E00047D516F3F7D5A8BF8CC4B26F7BF533AF6E -:1087F000D05F72592EEA2F403FE49FE87E4DF13F53 -:10880000C628BFA70DF37B9E96397E405E121F1AC5 -:108810007ACC569F7E1AF5CAD3824EB70B7BB47BB7 -:10882000BB44F9FDC3B6F2BCEB7127B5CD8CCF9F2D -:10883000F2C22A851C1CA7F2F8C5B8A3B9140F1DF3 -:10884000A333F2872C68954288C74A43AF13E729C0 -:1088500060DB25BD6E2C0B35E2FD720BB74A740E42 -:1088600063D156B3FFBE7AE32B87D13C5CDC62391F -:108870001F2FF0628D6FECC05FE2C4372E4E12FEE8 -:108880009C216C88E9BC55DBF99DB7FAAB387FFDBC -:10889000AAE8DF68372189D34D8D986F754809891B -:1088A000BF4FE9C6FCDB5B057DDC2AE8A39685EDBE -:1088B00098BFBF78039F2F5B6F33DD5BBC60D7ED44 -:1088C000741EC14A4795DB78DC0D1048F19DCA4DF6 -:1088D000E6F755021F55167CD404240B5C5CDF8E32 -:1088E00085ABE57A5CDFC5DB6CF4F739AC709D6570 -:1088F000B3298FE81F0D9F759DAE33D6E95276A937 -:10890000699DCAFBBE9F2062DF98F5DF670F5F4A53 -:10891000F92E67DA72C87F60D087B59F29427F9EA3 -:10892000BA91EB99A7F794258E40BBE888EA97A007 -:108930009FE2973EF6E2798FA2BD0AC3B860576BFB -:10894000F13A3CA7BDB32DEF5ABC8FA2E82595F6AE -:108950008DE2978AE85E90A2978A1273298F424B24 -:10896000457C403FB4EF761DC9FB7D21CACFB6C917 -:108970002588E615478A12513FD8C9B83F427AA9DF -:1089800024B5236A1F599CC4FD03AB32DEB907F539 -:10899000F7A9CFDAE8BCC9545BF7CB987FB0B34DE9 -:1089A000F5AF807AF54B731BF09E8AEA27253FAA24 -:1089B000D987DB97A47D07E9ACD5E67310BCDF3D12 -:1089C00080EF83DB247F3EB4AFDD7BD5F0ED98E70D -:1089D000BDB9D81F7D2EBB2859BB1FF32A5966226B -:1089E000D9DF532FB2D17E7A6A50E2CFE83E167DAE -:1089F000F31494B3A79EDF69A77383DB2596011355 -:108A0000399C71F019BADFE397AF50BE42D9AE5727 -:108A1000283FA137797F3AA4B030D9DDCD742FCC6F -:108A2000E2CD46BD83CE415408BDA966CB09AA5705 -:108A3000A1FE0FE3556D52421AFC7A70EFAF28BFCA -:108A4000A1661BCF6F80F7247FAA307EAA45E87C01 -:108A50002EE3743057C89F458CDF33B4A8999FA389 -:108A600033EE4532E87CFEB639948716936F86F66E -:108A700025C5219A89BE63EF1BE2F46DBD77C84A14 -:108A8000DF2D067D0F63C390BE3F99C8F3C33E79C7 -:108A90002521B110E6F3C98B0AE5DDF741E7B49F64 -:108AA0001E11FBFF99B04CFB93D1AE73CF47B48F2F -:108AB000D41E3963477D754AEB87B40ED35BF74FFD -:108AC000463C7F8B05AA116FDF6A4DF4219F4FEF63 -:108AD000E0726B5AAB23847EEA6FB196265CDFAE00 -:108AE0007D3F6F4A417A7982D38B21CF160A7C2E43 -:108AF00014F85CA8F2FB9EAA0AF73F88F9D0D318B5 -:108B00009737D35A84BCD964C66F97AD4525BA1937 -:108B100021B1E6ECD8FD6E11EBA0738F5D99C3E92E -:108B2000EF4906C15E453DAC7A9B350ECEEDFA1A93 -:108B3000CB7E7A30C9F6A5EEC178C7B22ED3BBF989 -:108B40007E360DE809E3216DE18642947B067EAC1A -:108B5000EBD2A6E526F575DEF965A1B71BF56F8B9F -:108B60007B265A7CCDEE683BBCDCC7F5F0AAB14A47 -:108B700010D7B5C75EC93B38529323F60AD8299F50 -:108B8000250DE076CB28E8FA852C85A5A545EC9542 -:108B9000D519F74F2F4AC3FB23B8BCE81C03FD616E -:108BA000BE80CA484ED56E7384D0CEF81F85B75AA2 -:108BB0003D008000000000001F8B08000000000046 -:108BC000000B8D576D6C53E7153EF7C31F8913FBE0 -:108BD0009A78662C34BB31F9202584DB109A40D773 -:108BE000F626A51D83141C58296AABE2B65BD90A88 -:108BF0004E5085281295B889A9D6956942DA7E54D7 -:108C0000EA56DD226D621BAB4C096A9892C8A1A19D -:108C100025E990A0401BD0D659FC60EB9490C0345D -:108C2000D24D95D873DE7B8D1D12B43A528EDFAFD4 -:108C3000F39EF39CE77DDED75D7DFFF29AF544DF7E -:108C4000EDBFEECDC2C6FBA54709B63A94F069DF89 -:108C500020EA20F2449A60FB242343B0ABAF7B139D -:108C6000254423558B4209CCBBA1EAF335B46FF1FF -:108C7000E7E1BCEDFA52212A23EA84D5CBF2FD9D2F -:108C80006AD6CBF33BFB25D386ED3DF99F8ACA52CA -:108C9000A2C981E98AE760576832FE71FFF796A89A -:108CA000D877EA928F6295D8D8322FD0FD442F9290 -:108CB000F3D9A611ED9987F6F04BEDD4800E697FBC -:108CC00039B5C0AF878C0CD6755E540C4B47FF0985 -:108CD0000F513351F7277F1A9E1721BAF6AE64F869 -:108CE0007467FDAB8D683F6FEF9F87F9377F27195A -:108CF00016A6BFF84DA287D0BFED4DCF95ACDFD9FA -:108D0000EB96F89FBEB217F39247FCFA1B687553B7 -:108D10004F39616E0FED1736493FBBAE04E1AF2FFF -:108D2000E5655CC82E581F23DA7E78A6BF24A9F912 -:108D300036F2DBF397D68EE182F1355A69E46A00A8 -:108D40005FEAA8EE96C2F1171F90B0FFE488A2F97F -:108D50002481DBDBDF2AC4E734C058C0FD4526216F -:108D6000CFC973257611E6FD731FC66A89C6F7C1A0 -:108D7000B90F7E5A148187BCD2B14B06DF8F713D8B -:108D800019FFC452A23F0CBE7F2FF30109883A6C31 -:108D90003F8C798B0BE24E23A88238119791C17ECC -:108DA0005D9F2A06DC735C35DE483EAEE36A3668BA -:108DB00014F0637A9FD9315C8D72492745BD64698F -:108DC00058D8DBBC39A1C4EDFA7C1BF96C35B1FE77 -:108DD000299717A44E45E388F3590D45043FBBFB83 -:108DE0009DFACA038EC5FE9B8971419BF79F35DEB4 -:108DF00066EDE0F19B9501B218B72FAD766EEF8E60 -:108E000029F406DABB3F79A9960AF6278E13F5ED09 -:108E1000F24C4599B75DE764115FD7B91BD12AB40D -:108E2000D7D23BAB35B4D7517A3F8F7F180BFC8834 -:108E3000796DF1BEF3F37EBE0829225EE27CE1CFBC -:108E4000A25F3A7EDD7C7B68A3C0A1C7E5D50B217C -:108E500059CC7F554BBCC2E770F2DC7FA3489B8E98 -:108E60005FB812E47AE5EA7DE7B9BB1D3776E0F535 -:108E7000375BF5F34F83078D23AA15429EC7C68A39 -:108E8000EC76C66560DBDFF672DD2EFB88CFC3EEC5 -:108E9000C16DB5C47E138965719CC39B833F5EC65B -:108EA0003890D423E2B2383EC435D17731AAA33FFB -:108EB000397031CAE3C9E32B7E6161FEF2338DEB79 -:108EC000B8FFD86955F0AFF14C93E0DFB13F37956B -:108ED0002DE2C0C908B0DFE4881A677C92234D1FD9 -:108EE000B7635EF24C5B93C4DB9C692A63FD592E29 -:108EF000513C8D7169A44AB473F9FC5C73F09B1CFE -:108F0000021FD02F51CCE10F55CDE0CF8EDE535E46 -:108F1000CE63479F6216F228B7EE90A60A3FBF6560 -:108F2000FE804FDD69C914FC38EAD81D7DC7447E38 -:108F3000DB3D6951EFEE231E67FC8F8E253A28D664 -:108F40005934CF623C3EE62ED461ADD75E480871FD -:108F5000B492B6A4E7D0C39AB024D68D5E4A7C9B67 -:108F6000F932DA9AA8D5EA67CFB3A84DE443928BD9 -:108F700077AF678D3D87BF2AF6873C8265B4353E63 -:108F8000C77838ECF067AD971273C5F379EE3C11F2 -:108F90001D90C18BF3ED1E8DF94F64962C80CEAEE3 -:108FA000777576D3E31ED3BB0CE3A49D2AC2F8FAEF -:108FB0009CDEB640CFA00B71FCB1BEC5DF8C873202 -:108FC00080B4C39CA9731B29EEA145F0B36666FF6C -:108FD00013AC970D6C55E1E76E3AF829EBE0127C83 -:108FE000A9A11AD641524A021278F3EFD31E4D11AD -:108FF000F1DA55AC0777E697D3990FA17F3AF4EFF2 -:1090000034F48F6D77DD670D59E0313A74E9DDB0E6 -:10901000D0CF228A3101BF8277E49DD4DCBDEFF04E -:10902000D77DFB7C7E7F06DF72F5998064A7EB67B6 -:10903000D7E786E6D421E91FF782ACD4453B5F979A -:109040009147BDE2F0CFE74998E5C8C3D3D79A2945 -:10905000673DAD838A22BF8947259B751E7156F8EF -:109060000A747E628124C6776F966C0B5F87EA3E36 -:1090700013F7763273D6CB7CAAE97DEE35716E2D6F -:10908000BA40D17C1D37F89DFBF276FD72F9F2A053 -:10909000CEF981CF428F23C2F27CBE1FD7BBF7E14E -:1090A000869699F5ABA5B38F95238E274DC9B0E76A -:1090B000AAFB96FB4EB1DC7DDDBA2F09272261E0C9 -:1090C0003179F6C6E6A5F0375AF7F70ABE473BEF07 -:1090D000C2DF0A97DF5D81600385A02EB57A2A0B77 -:1090E0003CDE2B4DDC13669D90BF0ADE4BBC3EFB85 -:1090F000F6CB12D78304DE773B2F55AEBFAAB0E67E -:10910000E874849633AF7EAF69CEB9F5D80B590FAA -:10911000A81E8F9995FF5F77BB4F7CD4C075B93679 -:1091200034D2E02DA8DFF8CB38F77C8F0C7C10D53B -:109130004B0AF925BBFC528595A48DEEFD38936F43 -:10914000E3CC37AEF7D10FD63FCD3CE9DD1491F437 -:1091500082FBF3F8F9607581DF897E45CC27355BAA -:10916000F34469619CAF893827D28E3FA26CCDA6AB -:10917000A585E32997B759C1DB9F2CDE19E7739CBE -:10918000E3AD4A0E6F3BFB3A48DC476EDE692FBE0B -:10919000202E6BD067FF06E3939EA98A70C1B9F8B1 -:1091A000A18B737346127C5C4996C27E9BE1F119D8 -:1091B0006EAB9451611FA08CE8275A48CCE3FB5D4D -:1091C0001E37AB9921A941CCB354F072159D15F30C -:1091D0001EA229614D82C0C3B691216C8B3FB38E14 -:1091E000E5A33E9D56984F99A81ABE0A3EB294CC6C -:1091F00055BF7CFE2A5DCDF11393F1B8D91A9F4378 -:10920000AF0FBAE7DCE0B71AD77982EC43E87A907F -:10921000B20A6FF2804A6B14E4F3A04AFE62C47B88 -:10922000745816E77730ABDBAC5F4699BBEE0BACFE -:1092300043BBD974CE295F35CF34E6F3BD138755D0 -:10924000F017E2792ABDEE113866C47E0F73E0C8CC -:10925000BB957495DBA970A5C3679A7A96F779A434 -:10926000DF27DE39B2DF1278FC34ECD433003C83E4 -:10927000F0B3EAA04463D8D758E4E49BF3BF0AAF45 -:10928000BE5023CF77EE31B4690CFD01BFB38E68B9 -:10929000B5C6784999A87C2BF0F5719D8C92883BD6 -:1092A000F8C2D4B5BDE2DDE6D30E2124A3FFA3317D -:1092B00009EF69C934690FC7E32FC9F0FB1AEC182D -:1092C0002F7C57FF3AFCFC5B7CDE255D13785182D6 -:1092D000747E67CCA75F697C6FC83CAFCC81EF1F01 -:1092E000C0EF4957EF2E173BBA71D8DEA8CBA8C7FD -:1092F0009688DFE07A34FA2B9613FC6E284D08BF6F -:1093000097A523D5C2896AAF60BF399E07C86C6133 -:109310009C25B75E7BFC8EBFE922C7F299643E07AD -:1093200020E77EC47500E7C28FB6D5E6D4DBFABC71 -:10933000C84E61BF69392EC8F88A62F805DF6389B3 -:10934000B16658B5CDD47796F0931D7904F279A41F -:10935000781FDCC7F4033C1041865D9A934FAA4402 -:109360005ECCBF9752546CE07144BB4A1D9EEDFA2F -:109370006B914D95B3E33BE94B9CE4FCA665636CB4 -:1093800054DCA33B9B59EF18A7EFE47092F3386DC0 -:10939000B163A9AC2E7019619DBECF67DF93C1BACE -:1093A000A77C7635C79FC303051224D55C9C73F850 -:1093B000685C3FE6B189FAE5EA1FCBE374A0D8C147 -:1093C000073FDF1C1C74D471E9ECFCFF0753B7A7FF -:1093D000EBB00E00000000000000000000000000E4 -:1093E0001F8B080000000000000BFBC6C7C0F0A3E5 -:1093F0001E81C3D1F8E878022F7E7952B10C038226 -:109400005DC1C5C010CBC1C01007C42780F82410AF -:109410006B70323024027112102F00F21702712586 -:10942000101700D5363333301C6663603805C41717 -:1094300081F8061BE9F66B483030EC9241F0396454 -:109440001918D8E4A9EBC7513C78F15A0354FE5BD4 -:109450004D54FE576D06063D4304FF9D2669E627E1 -:1094600001F526033100FBB288BA68030000000052 -:1094700000000000000000001F8B0800000000003A -:10948000000BED7D0B7854D5B9E8DA8FD9F39EEC5B -:109490004942184248765E1030E01042048A9E49E4 -:1094A0000A8896D2889E165BAB4340823C035A4C96 -:1094B0008F78B2212104083050AC91224E10305ADE -:1094C00068A3A2D216DB8094A2F5F4466BABB53E3E -:1094D00002521E3E68EAA38EF7D4C359FFBFD6CE10 -:1094E000EC3D9909D89E7BEEFDBE7BD2AF2ED65EB9 -:1094F000EF7FFDEFF5AF358AE824F23F117211FEE0 -:10950000683A4C24840C8AA784C85A8F0352A25FFD -:109510002CB4E4C945E972F27F1B61CDEBBCDF7F5F -:1095200021248B90EFF032FA1782FC149E31E6630F -:10953000A424A890AE92783F5308CB6BA2402E0A89 -:10954000F0D55A6E8C53EFF08D2169847CEA64A9C2 -:109550005E458BCA69FA9633DA984F88430817B28A -:10956000F9D45D593D1AD3AB206D14C8EC4E4F921F -:10957000799035848CA7C9FE2122A988CF3FB19E5E -:1095800091363510D2658FE765998492F55B41E796 -:109590000FFD9E13C215381F0F91011E0A87878D7C -:1095A0000409A1EB3AE29F169843E7DF3A5909DA3A -:1095B000A160FB10684C7C061C67E761DEC1F39577 -:1095C00044E3F0EE6A29A4ED9C41916CA0B9A6FC9D -:1095D0002A07292564F3C4BF06C2743E4E3942549B -:1095E000483DC9E7379388BC9F7BC9E5AC3B713FD9 -:1095F00064D8A3F19815615DC67CB7D8E8BC32E9A0 -:109600007E8C17C95E9ADF543E2B0DE663ACCB917E -:10961000629C6680EB0842363638306D9A302B8D6E -:10962000403BD23B1BF677F3C42C718310AF7F64B1 -:10963000E271470F5D6F236FD7AA1D75407D639F51 -:1096400013E1B699C32744049CF7C6D1AED9D1D251 -:10965000FEF308111F966F76D246B00E2F89EECD1D -:10966000871E7ADAE6D2BC6F825AB641EB8F2F534F -:1096700046CBC12E3A4F8FC713B4D3724F80B57704 -:10968000BC2144356C1FF20CA1F55DC6FE4F10E302 -:10969000F0A4FFF7916A42283DFA727A5F8371EC79 -:1096A0006FD88321FADDFDD947AFCDA5FD92934256 -:1096B000702F8C4B965BF68BEC6170B5A9F4DFB420 -:1096C000DC3579FE0C5882FBF327AB016EEB8B5631 -:1096D000B856C35E95B0FD53E9FF2E16D0FE35C5D2 -:1096E00032BECDBCBFF9809AD6BCBB78D6D70AB5FE -:1096F000D4F8E1EEF191AE0C5A59BA05F73B55BDDD -:10970000FA37C65E73CC346E1BF1669E71D37F5CF4 -:1097100045AE423ABF44FB4F1B82D71CB3E1BA456A -:1097200033BF49557F2DC78F3E3CCBA7F8518AFBED -:1097300019B86174FCFB4B8017400F7A25F231A4F5 -:1097400045BADEE6AB49AF44F7A3A958D1D65038A5 -:10975000D855A54BF0B1317B01BFE01FB4A9BDA81E -:10976000B95B180399EF58F860CBE07F0D760D30A8 -:10977000BFC47DF8A2F0EB02F85D11879F9D54A74E -:1097800075C17E5707103E5E3E8F7557AFD4BAE85D -:109790007AD6657F3F749298E07815A3B3BEF9E45A -:1097A0004489797C83BEAE14422F027C2425F85A6A -:1097B00098C2834C52827B93AC4B16185F89C3D9F5 -:1097C0002113034E80BF87F5C00D5E9C52B5C304C4 -:1097D000677BE0F867003F399374B9C7E0F7263933 -:1097E0009DF2AF4CA2BBD3B01719F29F917CA44F4E -:1097F0005A3E452903BE302D18A6E334DBF878EA3B -:109800006ACBBE7EC6F7355EAE07FED9526EC3FE8A -:109810009ABD9C6FA88D38BF7EEDFDAC7DE27AFFCE -:10982000027C743CD45339FE340640DE3886344F13 -:109830003F02701F51D73917D6A8128483C1FFA9E0 -:109840000024508FCA87CFA09D43AB46B8DB73423C -:10985000248C70B3CAD3947C39418EF6C32795E625 -:109860008D3E0AE0BF392AD21B4994DF3C0D0DBB67 -:109870002C39D8984057B4ABA47266B4C0F82DD137 -:109880003371FDB281075C3FB019E0D8CEE859E5ED -:10989000E32A301FCA0F9D248A9DBB29A643DE4BB5 -:1098A000EA30FF49A8AC4B00BC91C97AE073F6904E -:1098B00048F4FCFEE36FE6F224D53A364F4C2E070F -:1098C00086094C0E489E3ABE1FB7A84067821E26E6 -:1098D0001781DE4884CBBF20EEF7BA867AF20E5DA0 -:1098E0008CEBE87544A3F823E7D48542B49D04B417 -:1098F000485934F194B3540E6A66FCEADB47B21A55 -:10990000FBB351B0C03A6D1EC71C320652F5064C6F -:109910004B46DD0EF4614B9B560FAA1CC59B4A01BA -:10992000C67724C72BE2A1443A11F35A75D2F1F855 -:109930007EF37A29F1AB0F3F8CF56A4AB5B73FDE6B -:10994000B8CA5501488166BB613E83F96C06879BA6 -:10995000978B6360DF22D387D3FD19DC3307E59350 -:10996000F78DEBCEC3BAD696969D00152E2DA8DEA8 -:10997000308DEEA7AB840800EFF5D0D924E8E18460 -:109980005E09721DFE994DC8B7856743BA87A18FDE -:1099900055DF1435D9E027E280FA8B70D1DEBF7D28 -:1099A0004AFE4C4CF483727CC5E5E94BB7B0F174C8 -:1099B000FA3FA03B7F823C4D0B99FA25001FEB3804 -:1099C000EB006F10BECBFF5BC653C93687067A47E4 -:1099D00091A846E9D86944F5535E4C5C536402F2A1 -:1099E00044CDE9D5617B2FB52F6B09998E7C94D23C -:1099F000AD19CF77723E10A869CA6FA6FD7E52EEF0 -:109A000009021F184CD966467AFFF56C4CD0B33763 -:109A100096EE46FED848F1A800F4FD5211F5A1F5E6 -:109A2000454FA86679F57383DFF4C30FA2C915C843 -:109A30003A08A1F0918AC49073CC3F8E1F897AD2E4 -:109A4000E5E287FB16EB7E7CD1FDFA759FFE7D7902 -:109A5000F8F18F8E67EC6B2ABE45F715F5EF166DA2 -:109A6000D680FA4BFF7DDD86FBEA2A22A1647CB812 -:109A70005B10ACF2C99C9AE507B9D3B25FB6C2AF2E -:109A800007760F000F5B49829CE4FD3AEB25ED342D -:109A9000E8B1B28AF2C8B01FD66BDB74D0E73FC919 -:109AA000214CDF8B2CEF12400F2A22A807410722FE -:109AB000CD3BB5507483C0F01FF6C5D06F6C541DFC -:109AC00033C357525D963C99AD0BE6F93BEB159CC1 -:109AD0008703C603BAF4D00E69BF520EE972A2FE24 -:109AE000C9E60F43313BFE9ECBC203035F01AC0CC2 -:109AF0005FADED9A036524D9FEF51BEF26EB7C5391 -:109B0000F2A5C4761E593B63D24752B793C9199345 -:109B10005E33B4CF7FA11BFADC2181EA858D81AF52 -:109B2000EB386FF80F95AF2D905279260DA9226171 -:109B30000DE4A4C6E8444B67F2B743B0D8E1C6F7DA -:109B4000D4F360E3C56EA7B8087C4DD62CFA7262D8 -:109B5000DAD810F8924C91D25DFFF024791C55624E -:109B600057876657D3FAEB1B3A26C177A3DE54D149 -:109B7000B0BFA9D834E9C732A1F51CF8955C1C0721 -:109B80001F55A299E4BB83746239FDCAF78FE03E8A -:109B9000A05E45BBAC1335EC572187B01E7404F5AD -:109BA00028179F2497B0EE20BFD1160AE1BCE488A5 -:109BB0006305A5BB8D4E9ED778DECFF32ACFE7F3A2 -:109BC0003C951390772B344F53A72DA262DEC5F33B -:109BD000F93C9FCEF37E9E2FE079611BE6372AACDD -:109BE000BF0D7294F5EFE2798DE7D3795EE5F90266 -:109BF0009E27BBD9F8769677D9A2AC7F37CFE7F30B -:109C00007C06CFFB79BE90E785DD984FB57FAEA28D -:109C10000E06A73EBED019CFA3F0E070EDCB77259E -:109C2000E419BE64080C0F635F35F02688FC917858 -:109C30007291DE86F0368DF3CAD877EE47317D3FDC -:109C4000A15139F749584439996ABEDFE7FC743BA2 -:109C5000E8B934DDDAA062BAA521807AEFA6068DD4 -:109C6000FB554AF0FBFA8620E6D7354CC0746D43AD -:109C700008BF37364CC7FC630DD598EF68988DE95F -:109C8000BE8630A67B1A1660BABBA10ED328D57744 -:109C900021DDD5A063BAB3A105D31D0D114CDBE6C0 -:109CA000953D5F04F35F40E73F007F183CDBEA0728 -:109CB00019546DE58BE953D22DE5EAE46CABDFA4D2 -:109CC000BCC092F7948EB2E45D456596FE1C399354 -:109CD0002CE54A6695252F7BAEB7E4AFE89865C9B9 -:109CE0008F8C7ED3D2DF88B61A4B797164A1A5BC64 -:109CF000B06585259FAFFF8BA57E5EFD1A4B799BD6 -:109D000033FCAC48F9D5B0BA0D967A43176CB3CA98 -:109D1000AB199997C5B7C8C77A96D99F91C8EFA5CF -:109D20005C120AA1DC62F2A511F016FC5EC3487455 -:109D3000AF00FEAB6B4F80DD612F6272A79F7D99F4 -:109D4000D09FE2D9F79A4EC7A9F49D08F498E88C01 -:109D5000044CED28DF3F2532BB79C3BDCCAE6EBDD0 -:109D600037B97D8D9C9DAEA3F5F3E4FEDB1E51E279 -:109D70007A906EB1535AEF15B0FE3FDABF519ED8BC -:109D80006F7C3C8A7315663D246AF845899E15B739 -:109D9000776D3DFEB960F71876AEE460DF2B4B823D -:109DA000279B28BCD7AA04FD866B3D5504F48A4F37 -:109DB000544637644F2EDAE346FDFEF333E915C807 -:109DC0007F5C563FAD6716FA3DD7660EAC972931DA -:109DD00009FD77524C205D54EE2872F5F47C4ABFA1 -:109DE000CA2B52703541F993D4BE27641BC2414A35 -:109DF000D06F9AE625F0BD29C370DD36BE8EC6CC85 -:109E00002AFCDEA40E3C2F3BCC0BE6C3E7658BB9E6 -:109E10003195624E9CEFC45806E627C4FC985E1547 -:109E20001B8A69456C08A6E363859896C7F2311DC5 -:109E300017BB02DB95C546623A36360EBF07636331 -:109E400031BD32F625FC3E263611D3D1B12FE3F7D2 -:109E5000D25825A657C4BE82DF47C5AEC37464EC92 -:109E600046FC5E12BB01D311B16F613A3C7633A65A -:109E7000C5B1B99816C5E6605A185B84ED0A6277D9 -:109E8000609A1FBB13BF6BB1E598E6C5EEC13437CE -:109E9000F65D4C87C51A31CD89ADC674686C23B6A2 -:109EA000CB8EADC77448EC7BF83D10DB8A6956EC6D -:109EB000014CFDB187B15C8DB5639A16FB217EF72D -:109EC000C51EC5D41B7B12BF7B628F63EA8EFD0C5F -:109ED000BFBB623FC1D4197B0EBF3B624730BDD4CC -:109EE0003E2939563E2E65BA2CF909A7D32DF851D3 -:109EF000F186958F97BF5260292F7BD1CAC783C740 -:109F0000CA2CF931872759EA971EACB2E447EDB75E -:109F1000F2F1923D563E3E7CA7958F176DB7F2F158 -:109F200082562B1FD79AAC7C3C7795958FE7DC65E2 -:109F3000E5E3D98BADFC3B30CFCABFB3C80EABFD58 -:109F40003D65B755AE4D7ECCD29FA7FC09ABBDC0D9 -:109F5000F98CABF4A796768EA2A349ED9A447F398B -:109F60008044A6F47D377105CDE72A469ACEF941A3 -:109F700006D01D4D3339DD0D02BAA369FA5716E339 -:109F800039D3A75F6DF95513ED2C7D28617E017DD6 -:109F90005B15F8BD9A87F03CFD22D07ACDC308FA54 -:109FA0000988FE6E2596E7B3FC0FA433953AF3DFDC -:109FB000B2727281953B59FEB1C67F5B0DE5E969CE -:109FC000A1EC20ED678F2D391F7F4262E76D17C42A -:109FD00050BB44D7FBE7CA9E95E047B33BC27B2505 -:109FE000FA7DB1239C07AEE90F6CE14764E08B2456 -:109FF000B40FBEA791D02312F26BAB5FB415146EF1 -:10A00000DACFC762F57E28CF98D9817691B1EE6616 -:10A01000EFC0F3894A4C2E35FB09DA8DFAA30ACA40 -:10A0200053FC33E4059583F7BB7D2128DFF5A8B207 -:10A03000DBCECB2D72A33E0BE586ADA37939B824D8 -:10A04000EDB09F5232BF680FE6D340E32F04FBBE52 -:10A050003757A6E9527B5733C8F5BFFABBDF122446 -:10A0600084C7AF003E2BAF0F63FD35EE9913603D03 -:10A07000141E27E03B85C7F3D2A0D4F02070B24075 -:10A08000E71F30B068BF60F13F9E13C2BF954C7EA2 -:10A09000CC403888703B20A9080F037EF4EFAE74E3 -:10A0A000C31FC3DAFD11C74DE84FE6E762BF95F85D -:10A0B000F85C1E1A789C21927032F81BE73EA423AC -:10A0C000F70BF9B39D8A98741C9B5C8DE7A9FDF88A -:10A0D0005E66825D9F1986B35E2A3FA9BC4C32AF93 -:10A0E000690AF74FC97997757E15E5FA3DD99FFB47 -:10A0F00085CEBBC0D083FA438D7D3A968BF951BC97 -:10A10000FD50D0EB283E3DF7A6FDE812CA07765178 -:10A110009E614FE20FD8D521E2F9FA503F45385AF7 -:10A120005ECFF5006A13A13E688C2B2FB6FA8F2202 -:10A13000360EC7C356380EA588FD536A72134F1EDC -:10A140009B1F3FB734FA69EF9BBF751EBBF52031EB -:10A15000DBDDF9ABA322E83572079DC798FEE31358 -:10A160007EBE60D091ECE17E13350FFB35C64D1CF1 -:10A17000874833F03C29157CFB8DF305CFEB2AE4AF -:10A18000E4E79D747F104E4529F43CE3BCCEC83F04 -:10A19000F7662D9E7F37476A50BF6B0EF073F6BF90 -:10A1A000D15EA11F921C4FF6727C7A889F8BECDDEA -:10A1B0005EE5C0769979967D2ABEEF265798E967C5 -:10A1C000E990EE6B63F5863F308F7FAFC1EF0FAD47 -:10A1D00062DFF3EEFDD8C9BE7FE88734AAB3EFDAB9 -:10A1E0006A99D717B13EA9A77FA673A0E16AB508FF -:10A1F000FAEEF0ED2404DFF2D45E01FCC89A4A4482 -:10A20000DD04D7ECED472BAFA3E5D991EA59D7C1CF -:10A21000797898048B35F8FEF2EA91B88FC401FB87 -:10A22000BD83AF3B2712DE3012EACDA6F548BCBC99 -:10A230008D8F3B2C12DE761DF8EF4A583F46F9F71A -:10A24000797B97511EB2B68FF0F2DC55A7BA46D093 -:10A2500076B991DE97AE857A1DD67A9B79BD51503D -:10A260000EF3085AC769E5F390F4DD04D0438A90F1 -:10A27000F4E9D08F6AED678381BF505E8EFFC6F22E -:10A28000870DBE90C0478C762D29F6DFE0273BC1B5 -:10A290004F3002FD5598E6B426F7BF96717E65E013 -:10A2A000572A3C270B448B7D47C22E6B7EB649FF55 -:10A2B000837C28DB5A3EA1C05A1E1C65CD97945959 -:10A2C000F3DA244BFED33E3F4BD409F460F8590C2B -:10A2D000DFCC0E95D149DC8FD7ED34DB2539BCDEE0 -:10A2E0008375CC1FD3E8E1F4C4FD322E4E97CD2503 -:10A2F000CC6E31D6FD24E75711EEF7D8D5D0C6FC89 -:10A300003063438E7CBA9F2DBF938203F9A11FE770 -:10A31000FBF1634E8F07B8FFE6877C5F1EE5FE9B6F -:10A3200047C07F03F40AFE1B3BEC3FF3DFB473FF2F -:10A33000CD43E0BFC17DADE67E98D958DE06FE9BD9 -:10A3400011E0275A80E916EEBFD9C4FD371BC17F43 -:10A350003302FC422D980EB231BB7CEBD45036F860 -:10A36000CBF64C4D6E170FB231BCC8074586A6B967 -:10A3700024F46517E02F456C3897293F167ACE4DA7 -:10A38000F323A20CAEE50743CF4179711BCB17F243 -:10A3900071409E807CA1FF60713639541B32E1EF21 -:10A3A000B817A3640EDDB7B7657E0EA051D5232B79 -:10A3B000EE2F8572D8A73785508F3C1EFA25CC8F9B -:10A3C0001F0E0B401E83EFEAD5155A4F5DDC1D8230 -:10A3D00036BE96CE2EB0B335BD0BDB6DAD0CA29F55 -:10A3E000CDD8273ABA051FE8DC902F0EE3FB4F26A5 -:10A3F0005BF12137B60BF5E1E6BA596988771A198E -:10A40000D05E2FD969D517866FB7DA49CD77CD1AC7 -:10A41000D0BF9CE82F53275BFD65CD2503B7F7958B -:10A420005BC7F79426B4F70CDCDE199B39A03D78A6 -:10A43000855893611B14CF17C6AEC1FA89FA9F0CD9 -:10A44000F16F54AF93A72821380796A7A8187A254B -:10A450004FD1781AE4DF433C5FCDF22A8B93A0FA08 -:10A46000623E8C43F727E1FC3B44E07C7AEB48C238 -:10A47000ED91DA35A11C9AFF6782F6C449F9CE2A1C -:10A480009DE677CC7088D295806F2CDE41E1FB95FC -:10A49000A144D723DD6E15C96E9ADF131998EFF525 -:10A4A0008B83F084D07F3374B15A260D40F7DB17CD -:10A4B0008BD3A349FABD86D315394612F5EA6B6CE6 -:10A4C000F4FBDAC5B354E0FFF24D41B41F88C6E691 -:10A4D0006FF0B98CF481F76F57C27C7353F87556DF -:10A4E000DB38BD9530FE68E07FC64A86E7A9FA5F93 -:10A4F000C7F959AC53B0F87F06DD545D69CB447B96 -:10A5000028E8013EFAB9C4FC688759FC9A414F8D8E -:10A51000252F23FF36C6CFCEE902B38D341F99C84D -:10A52000E22A287CD15E3C42F97829F27B02F55D73 -:10A530000B7A2A991F3D8AF10FAEBAA00E79C9C3D2 -:10A54000F005EC515E1FE7B3E1AE5921D8A7C61C58 -:10A5500012E420C6751A78D018103134E29312A68E -:10A56000F7CA2AE51330FF9132CE9FEA59172F1A06 -:10A57000F68B04E789BACEEC37167765C4E30D6D28 -:10A580001B83F8DFEC5D89E785FA58A60748A49B92 -:10A5900088F9381F5D2C077FBF1A04596FCBD4058B -:10A5A00033BE7D4D08DF0BFB1EC7AF4E8C4731E03D -:10A5B0009708FF6F71BE9A4792DB1F83B97D93A105 -:10A5C000745E077CB7E5518AE749E266FCBCDE0FA2 -:10A5D0003A66A5012919746B941F90341CC7C80FE3 -:10A5E0008D292CFEAFCB6AA7FCFFAEEF1FB459E359 -:10A5F000F3FE47DFFF1F7DFFFF117D9FCBC7A96BD8 -:10A6000060236C1E962F6F9EBA46C7F559ED7649AA -:10A610000E5AFC1FBD40FF26392F7BAC7AC9E5F3EB -:10A620000D19F527121C66E1BF19D903CB19C3CF49 -:10A63000F1E930439F0F215D90A21262D6D79A8034 -:10A64000CF5338EEA470E47187384E365F97ABA7CE -:10A650005A17317EC2CAB7772E38EA1C81FC5FC612 -:10A66000769E406708E4AD43EB46FE6BF069CA9FF7 -:10A67000C72A8380CF5720FF739544307E6D2DD736 -:10A680004313E10AFC305006E325F021A2A53BA0CC -:10A69000FCBB0C0764F0E3819FB27E603FCBE5C654 -:10A6A0007D187118B9F40FF8D04699CD8F1CB2C639 -:10A6B000B1537C7458E275CF3D8CF2D4E8C7D077A3 -:10A6C00012DB35A9556A32BEF8A610FEBA32009EDA -:10A6D00024FAB548021FA71C54007D6EE88CE9E8F7 -:10A6E000AFEAF36FC956BE2E078CB898FF5EFE5EC8 -:10A6F000A7FC9DF1EB5FD0FFB78B9FEF27D2716274 -:10A700003FA24EC49E24E3E7EB62C2B9B355EF17F4 -:10A71000648DDD13AAB39ED3C89EECE4E7093CCE5A -:10A72000B366421FFE7EE38F147FEF3861633C8C7B -:10A73000CB25C3BF7B07C47BD2FDA981F84F2ABFBD -:10A74000E7916A1F147E40448C2BFB80BCEC1B6796 -:10A75000DAA77D0AF3E79316DB29B86F64C435DE08 -:10A760001E6179633EB56DD6FC7C322B0BCE35E68F -:10A770006FB7118863BC83C8A77A8CF9533DE7FB98 -:10A780000A8BD3AE2575CDC0CFD672FF7D8D4A64BE -:10A7900088435CF2CC8315606F1E50981EF52E85A1 -:10A7A000BF668A575BE8892A703EF1CEC1715FFFB0 -:10A7B0001281F6D1E66C8847A47A2DD8BD89709FA6 -:10A7C000DB629DDFA5E69F385FE37E52AA79C81D54 -:10A7D0004228991DF133C51A3777A97B536F8391AE -:10A7E0008CE720D67B53976A775AD148B2FB5697AD -:10A7F0006A77FEEF1CEF428AF196387A14E003CBB9 -:10A80000E4F074A1201EF7A5D8AA43432928E44305 -:10A8100063BBC0176EAAD77299F54E80017219F505 -:10A82000A68B03F47781D3F1AFF63FAC007D7EF0C9 -:10A83000D8C99970EEB3E8671271C0BAF67B4917B0 -:10A84000B34F1490630B0F4AE88F237257C58DA640 -:10A85000385A8CB8A5EB5FF4632FC6692C7CC21EF6 -:10A860009D41DB2F7CFA9D3184C2E1C29ADEE34335 -:10A87000C1CE784C6071897ACF981BE9F78532B9DF -:10A88000AD3A091FF4D8199EBFFF13F76CC023A17E -:10A89000E3C8ADD86FE7376C76D3B9A064B7E1B839 -:10A8A000B45E889D6709D16281CDCF7CDFC2880705 -:10A8B0007DFF5181CDEF902DEA84F975B42B615A5B -:10A8C0006F59C75F106FBFFCE3033E80C3B2439272 -:10A8D00085BF2CEB90BAEC63303D69C7FB34218F08 -:10A8E00040F9C8526431343DB804E3C797766EFC32 -:10A8F0008BE483F656FAA1700976015C5F9582338A -:10A9000020FFE4233EB01BDFEDDEEB03B8D27EE791 -:10A910002814AFAEF9D8446784F51F4BEFDF1FD57D -:10A920007414C0AF659DEBD97809F4F92EFC634827 -:10A930007FB930CE6E950B9F90172BD05EEFC84835 -:10A940001A6FDF271738BD2E3AF0C92E9D8EFBFEF9 -:10A9500013EFEDD2E9FC17FFC747BBEE01BDECE7F3 -:10A960004E15F8CCB2C77EE72326B8CFB433BFC1AB -:10A9700085471FD9B783D2CB853FD8D1AEBDF0EC88 -:10A98000D95C8DAEFBC2E39F6569B4FE5DCF4E1D01 -:10A990000C70B8EBA92F0F1EC84F00F81AB59BF723 -:10A9A000358AFD6B870416DC7F98A709FBF3DCC1B1 -:10A9B000E772619E1FBC66C7FB8CCBE8B7FA32D842 -:10A9C000AF25C8F721BF8AC279E9FE757F91C624F9 -:10A9D00083B73E54C4C3454A3601D8EF1BBF7675D2 -:10A9E00039A4B6A006FD915EE4DB89ED96BD42F781 -:10A9F000F5CAD4FBF809F99B02F05FB67F3D1B371F -:10AA0000611F3F807F4CECBF8F8BFBEDE3E287D073 -:10AA1000E638989134FECAD8C7254FFDF3807A8076 -:10AA2000C10F2E05DF053C8E70A23DB4CA0E74F531 -:10AA3000845B0FB0FD8DCEA065170E7C924B287EF7 -:10AA40009CB3F5DE0A7CB2F759BBBA9B7E5FF8EC8B -:10AA5000AB4867179E7A49D1904F128F40F5840B0F -:10AA6000A4EFAF1BF486A5FCCC79D91E6F97DD1738 -:10AA7000DFA7A5D11BA66B3EFC7E12BF4719FE2F98 -:10AA80008D1EB94948B26F4FDB0B183F8F0E42B88D -:10AA90002C21DD8A5A6ADD4F6102ECE3C9698077B7 -:10AAA000A9F6D158BF0AEBBFCAB49F7B18DD26D6E2 -:10AAB0005F4AE913FC887DFB1A155E2549E8F442DC -:10AAC000BB5D8678E10BB64BDC03FE82FA5FA73DE7 -:10AAD000857DCFE170293ABFD4FABE28FC76817318 -:10AAE0007B507F38BEFFB7E4FCFF45CE379692F02F -:10AAF000F46CA9BFFC9248481F9A1F9F6F73A784EC -:10AB00007CFDFD0E290A4D13F9C4D2147EA7D7EDA2 -:10AB10004C1F597AE8C818E067EF1FFD09C74B863C -:10AB2000F74BF79F54742E0FA2667990C23F799A23 -:10AB3000CF7BD9E1E4FD2DDBFF97A4FDBD2B87BEC4 -:10AB400001F37FB7DB4674DAC5BB9D52523FEC6F11 -:10AB5000EC364B5C61B3B7E2B534DA4EF2B9341877 -:10AB6000BA714DE8551DF492976D78DE41E4E039F5 -:10AB70003BF813BD2E6D038557A36F3EFA2B8DFE58 -:10AB80009A12E02407AA75B04BE5CCEA72A62347D7 -:10AB90002D76B14D152DF3A6723607E4D05B63CF49 -:10ABA000DA609D6F27E8836FCBA47930EDEF6D5DA0 -:10ABB00008AED692E1B7B5FFF02A896866F967EF6B -:10ABC0007D0BE6437EE12410A722FDDCA9033F595B -:10ABD000B6CB1985B880E79EFA741FC0EDC24376E4 -:10ABE0001E27C0E2CE6B55D6C7D9A73EDDF5EFB420 -:10ABF000FC2C34A6E3D7EEA2F5410FDFEFC6E0FF51 -:10AC00003F3F91368650FE5CFB8B7B66027FA90539 -:10AC10009E4AEBD7FE7830EA756706B1FC9903C30C -:10AC2000A2B02F8B9F7C7629C891453F7213701973 -:10AC30003CF7D4ABB742FEC22FBC182779E11767A7 -:10AC4000AF013AA0FAB36696E37798DF2BA0FD2E0A -:10AC5000823C2B172E9AE26F16414AF9C6A243692D -:10AC6000780FC8540FDB2DB3F7AE0CA23F59CF16A7 -:10AC7000D1C6E9CA063A5CD4611D6FA483F949972D -:10AC800029BDF359FD4836A3D76E6C57E1E078CA69 -:10AC9000CB13DB1BF5CB1D05967A46FBA5765297A9 -:10ACA0000CFF2B79BF8B3A3E1F61ED8FE16BFF717B -:10ACB000D8F7EF08EC9E0A79DC89E76D8B95AEE159 -:10ACC000E9945E9F56C802A0DBC5BEAEE17E3ADEC7 -:10ACD000CF389F5CECA279FA3D9BCF03EA439E38C4 -:10ACE0007A7E04FBBBE41927017C5FF20B2F9ECF19 -:10ACF0002C79FAD3333FA0DFDF7FCA8D7E9325BF47 -:10AD0000B81BF77B89BDEB56F0FBF53E6E477FF332 -:10AD1000FB8F3F9F0B7AC8FBB6AEDCF401ECF3254A -:10AD20009D76EE8CB0AE83DA052575743EFA561624 -:10AD3000C7564F5CC1D5109F028E03C0E3379C2CD1 -:10AD4000DE8A9FEFAEE0FEA00FE7696938FF52E6AA -:10AD5000DF5AC1FD072BBEAA0DF69BE60171A66462 -:10AD60001C21772B752380CF4AB1AF108DE6E558B3 -:10AD700021A6463D490DE2F98394C9CECF6D994194 -:10AD8000525B0AED585C12F15CDF4767FF8B6EF196 -:10AD90008A07B4C1D0DF4207D3A7DB9CA1BB1D68E3 -:10ADA000CF78F07E29AE933204FD29B6AE4F05B6BA -:10ADB000AEC4F97E6AD3EDC0CFE3E7DEEC9CA55EBE -:10ADC000D65E85F34C7282F3A57EEB6774F6A19A8A -:10ADD0008E7466AC6363838AFC647D4300D3750D17 -:10ADE0002544C3FB0141CC4B1C1EF6529D4870DF2D -:10ADF000566373B57BAA43707E017DE2B986278CCA -:10AE0000F8650FD4A1EDEFF010B44F258F4E6A3DD9 -:10AE1000E80F4338C1B90CC049E179B96D06C29554 -:10AE2000B6C7EF2B9DE15D001747CE280B9F52322E -:10AE3000CB2CF97E7033F0E2C07F37FC08C26B7D0B -:10AE4000830353B85F017083FB1590FFBF00BFE31E -:10AE50008EF1ECBE8366A21FB8EFA059E82905FC6D -:10AE60001EA0F0CB8CD355221CEA797C9B414FA9C4 -:10AE7000E817EEA7C0E5836D0D6D981ADFD353C8B0 -:10AE8000F5E14E81C7058457DBB87F1CF7215327B6 -:10AE900039267F1209E8782F0AEF5743B987F9114D -:10AEA0008DFD9554F98C95FF69AFC27AEE7EC1266F -:10AEB00002BF92EA1F26EF6498E87846B5534338FC -:10AEC00007D17FDBC8E5EBDABEFDB4D2C7C6060DFD -:10AED000D34D9C4EB6703AD90AFB0EFEB9A0887BC2 -:10AEE000DA3A9DA0FCBC8FE6997DDF45CC7E6D7F74 -:10AEF000B0B3CB46F71F7992866917F2AFD7ECD182 -:10AF000062DACE5D4A42802FFED7BE1BC5B592CE17 -:10AF100000F843FD1C7EE47081FF66F69E828DC9B9 -:10AF20002922B1346203FB2911BE8DC1A30EB0BB2F -:10AF300053CD272BA8DB73E978596FD8917F67DE53 -:10AF4000D2F95A0D5D87A7D58DF6645690E1A327F7 -:10AF500018166A4DFB979542EFDBE7BC2ED349E903 -:10AF60007810C4F3D2745B5BA113E0BBD1D6190097 -:10AF70003EB8D1CFE48C369B8E7695A93DE78FBE47 -:10AF8000722BFD1BFC589D5C66C16383DFA64FB12D -:10AF9000E2BBC16FCF3B983ED7E6AC1EEE8478DEB5 -:10AFA000D84EA4C744FC6FB429BA40F59446D025C6 -:10AFB00041BF3B29B0B894FE7C00E3563EECC9DFAC -:10AFC0000DEF0EACE1F1D43AA517943BDCFF699C80 -:10AFD000CB1F20D52DF00E4C0BC52302EFD550FC16 -:10AFE000017AD84CF107D208C51F4627133035F037 -:10AFF0007326384FCCE7BF45C745769F4304994336 -:10B00000646A077AC0CF7464A203F442D9C6E259D5 -:10B010007ABD6227C4B3ACF5CC7284C0AFE32FC74E -:10B020007DFFABB7266FA07315785104F046F50489 -:10B03000C9A9D2F8BD5F492D23604F1EF074E3F912 -:10B04000DED54ED132AF3667F846A7C9CF3F1A4694 -:10B05000E7FBF64FB8FEE4F7876F73723F658E4EDD -:10B060008A4CF46DC499124D2725263A5F533C8DC6 -:10B07000C039687FFA4EC1C7F6FED7F0B1C6BC280A -:10B08000EE9B2D916F6452FEEEC154175538DF3B95 -:10B09000D4F42D3FE2D95D000FE2D9DDA7BFFC5308 -:10B0A00041FF7926F2ADB83CD2D05F45E5D1FD1322 -:10B0B000800FA6904747DE1CF1358596BFF3BC2470 -:10B0C00098FD750B62EB511ED4C626128DCEB7A625 -:10B0D000ED7B98CE6F6B47BC3F175DEBC3389A167C -:10B0E00066CF9D8BDAA2523EE2ED4509FCFA84F56B -:10B0F0007F6E6723D623E07D318D7B6E276B4FCA31 -:10B1000035D4A73FE46BACD9620FC139CDB936DA7B -:10B110006E0078D6803194443FC5F704E0EE00A974 -:10B120001B017CCEA0F7BB15CA97000E6FD993FA0E -:10B13000D9573AA7EE00BA5EE90CB533B8A75FD687 -:10B14000BB16EF8854EF4578877D3758FCACCC8F21 -:10B15000F90ED78B892345B98FB75793972F697D00 -:10B16000EFF8BD34D75C1AAE2626FB5A22CCBE5E61 -:10B170007AA892BF2FC2E693043F993EDB6A473E0E -:10B18000348FFB830C7C8DE34BD8C7EF975AF0E9E3 -:10B190008ED856DC6F61E3E8FB2752F87D44F10856 -:10B1A000FC72C2C6AB07031DADDEF0A52DB7D0FE05 -:10B1B0003F7E51C2EF0B624EAC7FFEDEE0FDB780FA -:10B1C000BEFE6F36027CE4E31353F13CF6BCCDEADD -:10B1D0004758E462F2FA1CA7E3F9B18D16FD787EB8 -:10B1E000CB5C05FC8FF3639BF1FB7C3894C17B2027 -:10B1F0007F3E5629C3790DC1F3D173CEF7A7AC01B9 -:10B20000381C2E433F56ED267BD27B29E79C9AE5DE -:10B21000DCB9B6A715FB25543FCACCE2FD99F84727 -:10B220006D0C2EB1C0FEE804EE2DCCE77CA46F7E41 -:10B230003B6D163E72DE99DC4F12E37AC9FCD8975B -:10B24000908EFAAFEF1A465FC6B83D8CEEE2EBB9CE -:10B250007F62B2F5C4D73119EB9FF7271F3F8FC329 -:10B26000F94CC30212A27CA8C64EEB7960FC3B9B52 -:10B2700027809DBDD39F2E98D655DBB688844CEB96 -:10B28000AADD3947A931F51BDF07E72FCDFB90B7C2 -:10B29000419EBAC60372BBDAEDA270AED978F598BA -:10B2A00030DAD98C9FBC630BE6025F3DDB766752D8 -:10B2B000FACE736916B950DBC6F787EABDE5A6FD7D -:10B2C00031F625B1FD99376BFF7A2FF8011E604AE0 -:10B2D0004D2A78F5DBB7FCE4709BE862787986CA82 -:10B2E000D930C24D7BFA35C0EB4D6E8CF74C0DBF9B -:10B2F0002B487820F8A5D05FA9BE53E61A0FE312B9 -:10B3000084436D1BC3834BC12D3E2EC783CAE4EB20 -:10B31000A9EDC3837AA253823DA55C0A0FEE21BA40 -:10B32000638075F4E1C1680B1ED4BA8AA7023D9E02 -:10B33000033D6544FFFD3FA5E8BE49700EB441C220 -:10B3400073A6532E3DEB9B2C3F16F8F3295F64E662 -:10B35000A4F278FE8EBDC5BE39A671CFB6DCE94B2E -:10B36000E667AD4D853F453A29ADF83F873FEFA4ED -:10B37000B8C7B5D259B908F6934492FB738DD4E09F -:10B38000DF529AA7CFEE04797ACA53F0D7282D3D21 -:10B39000E40CAF047ABA5BD4C6CC11E2F6673FFD89 -:10B3A000B361FAD5A78BC15F587DF5691BEA43D815 -:10B3B0001F01BD329FC745A07F6308CA83C4F3D273 -:10B3C0001FB8F2939E8FAE6DA81B07FD12874E54D7 -:10B3D000739C1C617AD4FF86F1F3E3EB516C613509 -:10B3E00008F6A540AA01CF6D72B805EE03DB0299FD -:10B3F0006375135C1F7031FF97F3D8B1967CDADE6A -:10B40000F9A7175582F7CC74F4AF3972E40FCDFE6B -:10B41000695B268B5F2445A6EF0510874CF3163B2E -:10B420009FCE77003BF567028383EEB5F37B75BA59 -:10B430000472EF662731FE50FFFE8311072237B1F9 -:10B4400072BF51DCC4CAB9FF72590DF34F26EEEB3F -:10B45000CD87D775833E73F3E12173C18F75B367D1 -:10B46000C49FE07CE167E0C3077CF733B99CD8EE6A -:10B4700030A7D36FB58BBA8DEECB315BEF5137CCA4 -:10B48000F73BEC1DC76FFEEE98CD4DD3D75F396506 -:10B4900083773B6E83001DBAAE39445398121CC5A6 -:10B4A000F67349A797E53B07CDF29AFBA3A62AF4CA -:10B4B000B79C9DF37EF377AF4C05F14FFB5B0BE937 -:10B4C0006D2F1205FA9F73506B66D7F8787F8769E6 -:10B4D0007F62BCBF381C1566E7C80E844B1C4E0E3D -:10B4E000849B012778E606CBE370467DC380731FFB -:10B4F000DCD2665F4FC6A4A6979B3DC3FF44C6C47B -:10B50000E79508E78FA188D2DB7157E88F403707AE -:10B510005CA137205DECE8CD950BF01E630FE4973E -:10B520004AE1BC2C8A671F0C0B8F1804715CDDC9C3 -:10B53000CF5713E9F42DA01788FFE67198B7F2F5FD -:10B540003DF7DDB35E8CB37CEAD55C4897483D9B04 -:10B55000BE01F4F66B09F5EF0F0F8E18302EED2DAE -:10B56000EEEFF8D425F2F303B6BEDBB81E77DB416D -:10B570007714DEE3BCAD5EB2E8BFB7D5B3380E22B8 -:10B58000778FB9C9A24736A5EC07ECCEC47E8CF5FF -:10B590001DCDCDBE02ECC387C62B1AF81F8EBCF89A -:10B5A000E11F6A69DE35CC81E7B29BFC1C7F2B452D -:10B5B000DCF787FC21F768F03B6D480FEA749D1BB0 -:10B5C0007E493A450A9FA3235746ABE8789BAF16BE -:10B5D000D167B525F670A40ADA95B2778F54AE8F8D -:10B5E0006EE93ED506F878F6353BFAFBD3BD12CEB0 -:10B5F0006383AD3A17F4F73FB52B49DFD97378650C -:10B60000ACD72EF460BCDB5C127100DF38D83D6B28 -:10B6100030CCC717242AA0FFD99D92C8F464C3CFA9 -:10B62000D125333FBB2EB37C88A7AAD3FCDEDDFA3D -:10B63000E953309E625EEB4B184FEC2B4F7ECF6987 -:10B64000829BDDD7F576A7635CB4778A886F24790F -:10B6500083BD02B4CBEBAE52B07D4418B07DDE2A80 -:10B66000F53A802BB407FE9F7799ED836E05E1B024 -:10B6700095DBC9EDB660F314DA4FFB26BF00FB6122 -:10B68000D4BBCECDF499B3530CFF4D04FD37B9456F -:10B69000AA13DE5BC90D2171136F79C401F0DA0DB5 -:10B6A000F5987F13E1D03EF2E92E383FDE00B2017B -:10B6B000F6D9C6F069C32601FD99147ED9202FFE64 -:10B6C000749FFD2BB08EBC164105DB9BA649E7BDE0 -:10B6D000DAE360F2A6F57EB403C13D0AFDE6EEFCB6 -:10B6E0002DCECB9B62BD3FF430FCF8D325F023C7B1 -:10B6F000CDFC36B9F5DDDC4EEAC2F716230027C8CB -:10B7000087CAD93B87724833C7A1C4E987D9617416 -:10B710009D18075A334189821F406C69C77785E7B6 -:10B7200046ECE45ABABE56A13B04F4A28F17F97B4B -:10B730005EA1B7004E9BB70EC678B675622817FD9E -:10B740003BFFAAE0F9D8D1D0870FC0BBBCBB2628ED -:10B7500048174743EC9EEC43AB0ADAC10EF7D657C5 -:10B76000E17BC1515541CED2584E5E8078D2C6554C -:10B77000A22AD0FA916AE33E82EA02BC182B7D74B9 -:10B780005D099C9F0D11C19744CE0AEC9D91B5AB0C -:10B79000AA54D8D7B56AA660B65B748E077FF457F3 -:10B7A000EB6EBABEC0BDDB548801DF12CBB802FC21 -:10B7B000857A8BA2B1778BD9FB24197C5F32BAC50D -:10B7C000AEF93ECC7B16501379CB64E6A7FCDEF5D0 -:10B7D00061E65F8433C90AF42FF2BF00EE6B26CF17 -:10B7E0006D18E5C2CCF635F3B13EF49345FBC9289C -:10B7F00017BB2A68BFBBFDA15D284FA63A104E4477 -:10B80000EE69033845A76607E1DDE46D1387BF04E1 -:10B810004F54659CE89D0572343ACCF57A3BF0A90B -:10B82000B58A06749EB1EACC2DF0DD1FFCFE9D901A -:10B830006634FDFE1E9007FE9EBF34E0F7E98AC520 -:10B84000BF97F1C6F9CFA13CA35AB1F8093FF3570E -:10B850003FECA6F0D9551A89D468EC7B282BBE8E14 -:10B8600003ABBBA7C3FBD9676F1083BB7939AE6B42 -:10B87000BB1ADDC0E0560E72CD80DB3A51EB84F787 -:10B880009DF5990EC48F22D28DFC6A089C2217C6A2 -:10B89000F725E38DF5CB214E22713ECFB885BE77DB -:10B8A00061E09D4A8CD7A7724C1932C50578FD78A6 -:10B8B000597700F4F84DFEE4F1099F7A587B7B8AB2 -:10B8C000FBEE1F79183E004B6C2BC334341A520F19 -:10B8D000D1D320CD7184203EF67151FB23E2F9369D -:10B8E0004983FD81FA36BA7F475E7817FD83472288 -:10B8F000BFC5F4654F097BD78F125C16BCB35B7E66 -:10B900000ACF4736AB0C476A5B18BFA80DF438E086 -:10B91000BCA2B694A8BB39BEE9069CC1DFC5E555FB -:10B92000CD4D0CAE99A504CF5BC12706EF9E6541B6 -:10B930003D0ABFCC96D5CB711F49B75E48EB6D86EB -:10B940007E617F9AD8FD14427A1C48BF1109CF1B33 -:10B9500029BDFF06CE136B5A07E3793B5C7787FE60 -:10B96000D2F9B8E9BCBF76DA0FF8FFCEB648643733 -:10B97000F2B76E78639868AB282E237EF65696D081 -:10B980007EB57255DD60E081C1C72869CCA3F202A3 -:10B99000E0364FD79703FE9D72A82FC03CDCDBED4D -:10B9A0001AAC7FDEF667EE06BDC51DE86901FE50E4 -:10B9B0003B81CD37BD957E47FD46FB0DD4AF6DB5C0 -:10B9C0006B6C3C0EBF728E671C0EB7F379DFBE93B3 -:10B9D000CDDB352C1A01FCAC5D45E10A656186F7CB -:10B9E000E0D2BC28225D9D80F57BF52CEC77D0EC75 -:10B9F00004BA48C03F635D357C5D35ABD8BA08A753 -:10BA0000273AAD2EE8B7A69CAD731E61ED45F84E02 -:10BA1000FBBF9DAFA7467F1AD3DB5BEC96FE779505 -:10BA2000ECE986F9E4972A9A807066EF6DE6F27584 -:10BA3000E536B1F1724B9F4678917AD37CD12F6A6B -:10BA4000CA53BA3AFB3C252C78CC22D781C874EA79 -:10BA5000BB0A9EA3146DB7AEEBECFA110FB782FFD1 -:10BA6000F33E05CF2B1E17836FE5A11DAA688CFF3F -:10BA7000047F3B03F8F4ED4D78BFEA402583FFD9FE -:10BA8000AF9228E043F189EA748077F189304FEB77 -:10BA9000F01C9B0244E8E37B747ED4746A11805FDF -:10BAA000C60A7FB800F800DD67D0078799E74DE741 -:10BAB00097D192550571489913D2AB147C4238A1A5 -:10BAC000FCC48E59F01E6EE6B11D77C238438869FA -:10BAD0003DB4FC4A6F21BB9F758C9642BDFA33F78B -:10BAE000C27EB4F277ED8B6166E9981E833483D20F -:10BAF000F7C67498A74CA694C5F9C1DEFB2AC60206 -:10BB00005FC1BB2565987691B2FE7CC3547F24AF9C -:10BB1000AF0B49EA5578358B5DBEF7BE6923C17E10 -:10BB2000DF0C7A621ABC0BA87E04F1317A5044B85B -:10BB30006FB675394A33E1DD719180FEB2A5E4F745 -:10BB400022D0DDE6832408F89151FD1F76F33ED61E -:10BB500079FCB86E59211B81FE8F8E3C331DF6296E -:10BB60007A84EA9DB47ED5AF3C3BE03E71FB1F5822 -:10BB7000FC49FBF37528BF57E62A49DF7D2697D09D -:10BB80001313EBA717CF423F5EDEF6ADF8BE6CEDA8 -:10BB90007439782DAD9DB9BDB212F418AD9A62D743 -:10BBA000603AEF9D635703116A33D87995369D7DCE -:10BBB000D7A6B07463C3827160B7473A6467119DBA -:10BBC000EFA8F5ECFDBE8DA51F3AC2542F2DAF7C1A -:10BBD000C2F155FAFD74399582F4FBE9C91F3AE1C7 -:10BBE0007CE6A1F2AA0C80E7C116AB5E47E0713695 -:10BBF0006A078DB647425E3AAFD6DF1184A764EF7D -:10BC00006AABA179E9190F6838FDEC9BF5ADEDB38E -:10BC1000014FE795607872FF7DE7F2626E7DEFF489 -:10BC200002A05B9DB073D4C8FDC8946FE72C235F5E -:10BC3000EF46A6E3DDCEEC93881C3A0E7C39521A0F -:10BC400056A089C1CF5A8B6BF6013F53B8DE4FEA3D -:10BC500016E0FD48A47F09F4A1DECA6476D3B7DDFF -:10BC60002EC4ABB33B6F7C15FCD3F3EA99BE9FB7F0 -:10BC7000F32301F783EA7D4368FF79E5F8E425992A -:10BC8000B72AE2180DFB5324124D83F97412B01336 -:10BC90002254FE98E160F4FBF7B6DFE1B1E33ABE6F -:10BCA0000DC6F3F8F87A3C7C3DB9C1DECA64F1B345 -:10BCB000DFE2E37EE7C18F8E4C04F8AF6226525E6E -:10BCC000E4A4E030CD234FBFBC79DC02FDD1793C48 -:10BCD000E961F7A7BDE53D78EF2891BF833A0F747E -:10BCE000BBCB7D612CB3EFADFCB45F9EE355E2F7B7 -:10BCF000DC047E35DADE793DEEEF01F6BE3A2194C2 -:10BD00006E1DF8ACA8C6DE9D8D1AEFA0D741BD51BF -:10BD10005E8F0A78D03AF2F765009F4D5C5FB8BD40 -:10BD200094A0BD7A7B4E37EA0B739BB8BE20079B6D -:10BD300081C9BA77FAC90693FE802E2C702D357111 -:10BD40007DC190FF5C6ED706BA5B50AE827E60927A -:10BD5000AB353A93AB790126D76B5BE8381A47E6E7 -:10BD60000AB35EC2E4B8B69DEB0F5C0E67F07133A8 -:10BD70005B98BCCA003DC207E1073ACA653CCBCB21 -:10BD80008AEB2D834A99BCCC687D1CE5DA1FC0E99B -:10BD90003208F8069397C35E7A45073005E8E73620 -:10BDA000CAA78FF1F2804AF5B3F4B87EB64EE4E745 -:10BDB0004C84E987185B4FE77998D737BEEFE1F3FA -:10BDC0007BFC58FA5780BFEE8D148C954C748B5EBB -:10BDD0004F9ACF2D67E7F4B9F5EC9CDA1B9CBF4F67 -:10BDE000329D3F6CF5707BD3C0ABFAAE00F48BF79D -:10BDF0001D918FB3F7AAD6537D09FD4FDCBE9AEB98 -:10BE0000E67E0D8E3FA9E489C187BC24E42BA5F012 -:10BE10003D1DDD87FC5AA7F612ACED74A4317B21E1 -:10BE2000D07BE4867298FFE6897FC5B88BBC14F698 -:10BE3000A2C3EB30E0F085F8BA77FA2BCC0EED1602 -:10BE400093DE9399CAFD0F9D3271033C9D11F6DE7E -:10BE5000A1738292B4FE042FE39B195E768F68F380 -:10BE6000C47D78BF31A57C96892E2591A786BC6DAF -:10BE7000857D9E44C8CCD65B9B75B4D3A3D512F206 -:10BE800057760F30C27F77462F51D06FD86A8B38E4 -:10BE9000603FB694F37D551DED703FFD0BEF0B85B4 -:10BEA00007ECF3FA901815F2619FA3EA68E6D7C190 -:10BEB000DFED394BED77F339C52CAFC8E1A489101C -:10BEC0009F98D7C2F06BF34405E7B1616C56BB9401 -:10BED0006FE6BF02E79F0C4E1B261E47FCBADCF93B -:10BEE000CDAFBF67D269D339E299071E290038C7A1 -:10BEF000DF6F090D787F617EFD4B93F624391FE8D3 -:10BF00002B073BCA037660F49BE67396855E6667F3 -:10BF10002DF11AEF3333FE06FCD586C645341BFCE3 -:10BF20004B07AE8EFAD07FBF989DD7DEC1CF6BDFB7 -:10BF3000DD7323BEBF301AEED426D9F7F30DD6F742 -:10BF400017CEEF7D249BF935A216FDEA8E7D3F19B1 -:10BF5000C5DE9FD1F9EF72102DB382BDA38D72FAA9 -:10BF60007850B74BF1F7D114F85D0CF0B703051713 -:10BF7000C22BA09D987A807E0BE1F7857A315541DE -:10BF80001C15829D14C4349354639A45EA300D9075 -:10BF900008A6D9A413D31CB0730B412EF462AA11C6 -:10BFA000552426BE5F4082982F22D598CAB06F19BB -:10BFB000F17309B9C381F117707E01746F9C531836 -:10BFC000E7FB377B6B1EF02639AFB8C71BDAC1BE63 -:10BFD0007721DF9ECB59F8891F8DEA84FB3D2B36F4 -:10BFE000B1FB25065F47BB86F6FFC3742607F46DD9 -:10BFF00002F2AF35EE99D7201C5B6DEF9BCF1B880B -:10C00000C35104BF3F63F43B97FB17E672F907EE99 -:10C010006D76FF2E88F77FE6829FC1544EFACAD90B -:10C02000FD6BA31FD13D79F840E77BA6F6188F5C26 -:10C0300093A0FF5F526E27E4E725B6FF1B9D505685 -:10C04000DC0FF7C36BB45C76CEC4E43645240DDB5D -:10C05000B5D84FA21D16991A32C3E5258EFF863C2E -:10C060009997E0D74F4CE7C99C2E12FAA192CF0FB7 -:10C07000F766F00D14135D1BEFE81ABFD375472860 -:10C08000AC0C61CD02B08F2A9F7784ECAC1A42D3FE -:10C09000739037F9F37FE70BBFED35D1891AAA13F7 -:10C0A000CDEF34CDE77438556AAD04FE76364C8258 -:10C0B000603FDC41EA36833E465E9190BFC13D6CF5 -:10C0C000F8FDA06170A0918E795DA1E9070DEC5E8D -:10C0D000CE1978476904BC7FCDDE517A0FDE4DA2C0 -:10C0E000E9E8B6BB67021EBC0BEF27C1FD5B4EFF44 -:10C0F000C6B8A33BDD7340EE8FEEBCBA16EA8DEEF8 -:10C10000B0E3EF45951C5C5F0D7E2178CFC545C738 -:10C11000C9A1E339D2818F1094B7EFB5BAA26BE809 -:10C120003CDF6B93902F7F522AE2BB23F06CA6C4B6 -:10C13000E797960EFDFCFBADA087BCCBF988F17E9E -:10C14000E47B951ADAC7BF3CB04E807B09EFCDD1B6 -:10C1500070DDEF0DE9CC4D07B9E463F1E545FBED8A -:10C160005D05741E0B1FFB43410DF0BF82C8C26406 -:10C17000E7CCB93E264FDE7B8A603CDC7B4EFEFB83 -:10C18000488E4E9FD9CF1AF00916BEF59E97FFCE66 -:10C1900052CE25EAF1F872E2E9F431BAEFF4C1794E -:10C1A000D4FDEE1FE1FDB5334FB1738A5F3E509B66 -:10C1B0000BFEA8229FC6CEBD0F3C8971E3B00EB026 -:10C1C000A3E9FC3498DFFDEEB7DE05FF036D87F7CA -:10C1D000338C76670ED4B2FA6DB4BE0FE14E7C6537 -:10C1E000800F0CEE643FE31386FEB8289A85BFDF0C -:10C1F000102F17B11CA6E8A4F01FBDFF063CD7AA5C -:10C20000F0A5337C563B47CDC2F94772611D07AE9E -:10C210000EE7821FEF8CF17B52722417E070B33768 -:10C220005CE133ADFFFCC96790BF9788756FDF0B8A -:10C2300078F904FB3D93BBDFD82A9AF9C7541FD382 -:10C240007BEE772FF5C179D499BE7775222CDEE786 -:10C25000307BD77511A7BD33EDD47EA2F038BFFF78 -:10C260007B587EA6EFDD9B4E8C273BBFFFB9744801 -:10C270006B783C3F89DE88F445E1D2E24822AFFA90 -:10C28000EE4545D97DB70B027FCFF441036E75CAE9 -:10C290002CCB7915A3EF9C9DF9C7505F8E26BF2745 -:10C2A0009728EF13DFA7BDD43DE0539C4E4FF377A3 -:10C2B0004DEEF1866B7C49E448CDC625B900E71AFE -:10C2C000B85387710E95D782BD8DF74DD8FBB45DFD -:10C2D0000827E3FD59FDAA6B21CEF18C9FE5BFBB7A -:10C2E000B97A9DCEE1C8EA4F63EDF359F97D504E1E -:10C2F000EBFFDE5BBD9C8D4F04F6FB48363FFCCE6A -:10C3000085C1FF52AFDFFA3B171DC093C7637FF7AC -:10C31000607F32ED6FF43FDE9FC16FFEE17E1CFF58 -:10C32000B5FD187C18E81242F6483038EABF027EA4 -:10C330007F6F7B323BCFC2CF3F7DA0B019CE813E15 -:10C3400009B077A2ECADAB09C8A5DBB76F4DFA3BDE -:10C35000797D791E4FA214523A33D1F3F39CAF3E4C -:10C36000EF8B9F07C0F9CC7042F87B175455C9C2B8 -:10C37000901BB4FF46F077E34B4804F5AB51A41390 -:10C38000D352D28DE918D28B291E931682AB2F88F7 -:10C39000E99F2B7B2A60F18B1DE1872054D7EE08A3 -:10C3A0001F077CFA6058F8117807788D7BE924988C -:10C3B000FFAF7DAAF17BA224E1F7D9E2BF2BA281D6 -:10C3C0005E332330905E4354F9FDBEF88D027C4706 -:10C3D000F8651FAE2FD5EFCD25FC8E25BF476CC06D -:10C3E0006109E9C438885FEE5CF102BCEBB370BF51 -:10C3F00017E5C1F09D4DF87B620B497716DC2F1DC8 -:10C40000CEDF93206DEC1D0FE39D88916D76CB3BC5 -:10C41000164B127ECF6811FFFDB14589BFEFC5EF06 -:10C420006F6E840F49E20812EF7FF6FA52BCE75AAA -:10C430009AFC776512EF7FEEEF1431BE6705C40BEF -:10C440000971BE37724F9DDD8A5F9DD71499DE83D7 -:10C450006A1482CC9EF6BA427B85FEE38C53197E29 -:10C460001D1084A47164DF4C33EC9B26723DEDA754 -:10C4700071B1AC82BDD91875E13968A3CAECC2A10B -:10C48000DE2A07D8E9C42FAA703F659A3419E3CB96 -:10C490009525F23838F73CB67B6137DC5F680CC80D -:10C4A000E8A71DEA67E7A0648888EF0334A94FF87E -:10C4B000E7C23E79D839E33095E0EFA11E695F29E4 -:10C4C00042BE919A2D83611C21DC8DF76E86C88453 -:10C4D0009FBFCE189B85EF98F138A556BC7F3C6571 -:10C4E000C96927C8F53CBEEF5569F9B84E99EFE721 -:10C4F000AEFA537EC0D3E7DB9B5F9E46FBB3456538 -:10C500008C6B2DF9BCF1F56974BCDE768598DFE3A0 -:10C51000CC5D255BEECFE6DC65CD2B09F788656247 -:10C520002AA7F972181FE148F544735C55668839EB -:10C530000B550FDE0F0EA5094C2FE6F90AC85390D4 -:10C5400074D822552E3ACF8E3705F43B1C6D9F9F31 -:10C550008771FA3F09E7017E1BF890B87F4A9A6617 -:10C56000BCEFE1E4F7839D705897883F4D0DA41808 -:10C57000FCD18EE831D715B08F276CF89ED45AAE17 -:10C580007FCB1E16FF6EE04B62BA3601EFD67E7E81 -:10C5900023E25D2FC5BBDD03E09DAC6AA827D872FE -:10C5A0004810C8C396D99DADD276573CA3043D141C -:10C5B00064D37E5C9A06FACC15CFDDCCDEF5A3F011 -:10C5C000C27721EB9562B0FBEDF599C57206D4F305 -:10C5D000203E7EE861E73F72BD3B08E58DED150129 -:10C5E000CD84D7CD0D6AB15C0CEFE3388AE1779644 -:10C5F0009A53FCDEF330BF580DFE2585DBFF77A68E -:10C60000B1F9DE99E6C674451AF35B3C28EBB360DA -:10C61000FE0F52FC817881237731FC5D31C481F7B4 -:10C620009E573C5F3878A038A07D0D816280DBCEBC -:10C63000BB6AD0EF51B9FC9813DE055BE175A880A9 -:10C640008F926FF8FD9301DF5FB0E1BDAF466F855C -:10C6500036D7D49FE49B807E2549D4B3C1286AD9BC -:10C66000F2D6B5F244C0177D0748A248DAF16B65EF -:10C67000CA5F3ABC7AB640CBDBD25E60E583F41D7C -:10C68000022D8FA6FD86E587E9D9F04B221D692F83 -:10C69000B37CB1BE03F29D69BF67ED41B7A07ACC10 -:10C6A000A1B4D7AF053DA7D1169C0DFE9D1FD1F9B2 -:10C6B00097D2F977F2F4A71C4E46F913F09DC2FB0E -:10C6C000204F13CB9FE6ED0EA528FF292F3F9CA2FC -:10C6D000FF9FF3765D29DA1FE5ED8EA5687F9CB795 -:10C6E0003B91A2FC055EFE628AFE7FC3DB75A768F4 -:10C6F000FF326FF74A8AF6BFE7ED5E4B51FE3A2FE5 -:10C700007F23A1FFB778FD1EFE3DC7DBF23ABC1BBD -:10C7100096D3CE5E022DF1B6A0FEBEB3AE1CF1BF25 -:10C72000713CD3330C7CCF81784D9ABF52657ECD5E -:10C730002B55C6E75FE1785DB9BC680BE0DD8A7F09 -:10C7400093509E523982BFE7AB2F67712F2B9E67A4 -:10C75000F741562C97F1F7800C7C34DA1BF3DFC5D8 -:10C76000E7D764C031AD809FB7048A6798E33D5531 -:10C770006BDE41E90942769A32997C29595EE518C7 -:10C7800001F283CA17E09B6B3D4A17DCA35FABCA7B -:10C7900058DE9459A542B9AECA287FD6665639E606 -:10C7A000A23F271DFD13793C6EAF4995F11EBFECEA -:10C7B0009F82E5D37E3C43053EDA447AFD95B0BEC8 -:10C7C00055329ED71EA9ABC2EF79FE8FFDC09F7F69 -:10C7D000E367703FE63DEE84775FE5EF88282F86BC -:10C7E00003FCE8B805ABC4A846AB1C535788907F40 -:10C7F000B889C92BFAE71D6B7A77B16365C50B1051 -:10C80000BFD3B8490EC2790EFCC9267950C47FF750 -:10C810005453D32DF2EA41EEC7D5030E8CC32B92AD -:10C8200049C0FC7B989A2AF17729D83B668511ABE1 -:10C830007CCA6FB1BE63F39FD7EF7F0B008000000F -:10C84000000000001F8B080000000000000BDD7DD1 -:10C850000D7854C5B9F09CB3677FB309BBC96EB2FC -:10C860009BDF4D801024C006420C88BA090122A229 -:10C870002E880ADAE286DF00493670A962C5B22145 -:10C880001103450DB71181825DA85AB462438B1222 -:10C8900031E88A88F8157B43AFF6A2F67A17A48AA6 -:10C8A00080B06A45FB63F9E67D6766B3E7245168AB -:10C8B000FBDC7ECF870F1EE69C397366DEFFBF99D7 -:10C8C000CD23CA89A889E09F8BF984289A764EA344 -:10C8D00069B052C4DBF4AFD16553B52DB664C787D8 -:10C8E00049F41F5EE2BDA82364D9EE65932DB439E7 -:10C8F000E917C503A2C584AC30A58C2003685FF896 -:10C90000732D21CDAB3AAE19A42764EB2A3A2EBD84 -:10C91000367F3D7A26292524966CF1ED900859B38F -:10C920008A8E3FB8A7FF681BBD3986906D4A683A6A -:10C9300071D06B58214D745EAF2C9709B497B94DE7 -:10C940006123EDB2EC8DFFBC6E08B497CA5EE2E9DC -:10C95000795F7B7D72956B307CFF2D3A2718571FCE -:10C9600090069F1C4DFFAD045CFE644206B625ACEC -:10C970009FFECD6FA5ED84F5EAF57E9BCD4A48DE9E -:10C98000B7C04DEF7CCB1E2886F1151C5F3B8F6F27 -:10C9900083EB1AA9B1880CA4573A57804FC829874E -:10C9A0009FA0EBCC5E71EFB8936984641DB2B400B4 -:10C9B0005C49DBA384A413A2836FD3752B92CF436E -:10C9C000281E5AF24BBC12BD1E7ED6C2E0946345AF -:10C9D0003819246FC6F5F46A94FD36189FFEF1C12C -:10C9E000F80FE458B6AFCB8766C00470C8DE4907BD -:10C9F000CC84F6C0B53E85E289829B8CA37F43BF81 -:10CA00006BF5D175ED94E2ED6A6877840DBC3F89D2 -:10CA1000C0FF76CB127B4EC7575C84EC9224F63C69 -:10CA2000E4ADAECAA6FD15DB30C54B48D056DAAA38 -:10CA3000CF81E7B278DF47CAE9FAE07BBC0D70F935 -:10CA4000F941F1BCB2B56A101DDF40C4F821E8BF5E -:10CA50005B9679FBAA56187F57A5787FF05A5F3608 -:10CA6000CEE77A9D9D90FBDA26B65ADD3DF37D68D0 -:10CA7000C3F5AD4D747D9F78A2297419A47EFBC9BE -:10CA80007442875A3333E007380261FB8713724AD6 -:10CA9000F220BD08FCE9F75484B2E8ADF387FE9CB0 -:10CAA000524CAF415DF45012855F7D67C0A42FA04A -:10CAB00070D6FB4259F93DEFD5EF994602946E824C -:10CAC0005D2578EDE3BDC38AFC77BD67325CC2F7B4 -:10CAD0003E89FCB6E119FAA85E1768B50EC4FE845B -:10CAE000E1BFEFF589F73F79E6B7B7C2F7CE79A294 -:10CAF000E953802E23142E7DBC27FA37745610A0DC -:10CB00007B29C9B7DEE624641E853971027F357A38 -:10CB1000A17F87A9CDE6A5CFCDFA36BF97F6A7A806 -:10CB20000CCBE53DD7876D83703CED7D2DFF749870 -:10CB300048DA544AD7A13AC5FB0481762869046DC6 -:10CB4000AFAF574637D129AD2EF9DDA862683F67F0 -:10CB50002546DA6EAE3BE82A063EF21A08152F6427 -:10CB6000FDD80E37F0714BBD61E6E340BF9165AE75 -:10CB7000F9C53DE33F64D7E33CD6BE46F96C24BD1E -:10CB8000EA3BEC12BC3F5821C087663BC5336D9B26 -:10CB9000DDA924940FFDACEB811FD7EA03D595D016 -:10CBA000CF2D9327E877CD83675457D279B89CB2BD -:10CBB000A4C379541D5B409F37DB0C20D9C87BF69A -:10CBC00039CF019C7EAE781B810F7F6EB5DA42F4BF -:10CBD00001958D3EE05B65B0230C6DA38E3476D05D -:10CBE000F96595107F87B5679EEF71F9F89ECD8046 -:10CBF000705E6FEE985641C7B12C936D21FABDB5AA -:10CC0000F51BBB27D1EFFCB8FEF9A34DF4FEBA74B7 -:10CC100085C03CAC0E256248A1747C039D239DF722 -:10CC2000AE26BF0DE467CCA9901DF4B9659081785C -:10CC300012E4A0B598B613E4539A43F199E9FB7F47 -:10CC4000B2078EC0FC47BFF99609DE778D9165600B -:10CC50009B0E85E139A5543D8E6DBC7A9CD42AF596 -:10CC600073C754F5F3F419EAE7AEEFA8DB99F3D4F0 -:10CC7000ED5B80DEC640473AE732BA0EF68858A22E -:10CC80009FAE2229089F7700FE9642D90BF031D73C -:10CC90003F7E6A017D9E05F284CE9F8C20E127288D -:10CCA0003E0FE47EDF13A57036A6367AECC5BDE1F3 -:10CCB000919563BA1EF0651DA4D808ED6FFDFDC700 -:10CCC0005FC3F85692D02F1FE0E3FBC43686B55DF4 -:10CCD000743EC9F00F0FC0BBF17FEE03BD7754E780 -:10CCE000057867D52BF8FD076778C2BA7CD69DD04A -:10CCF000FE29BC7F8A697DB76E04BDFE7EED525D64 -:10CD00004A6FB8A6934609F892D207EA0B524350ED -:10CD10005F3C20935AA01BCAAE04C6B3C10B54CECD -:10CD2000F8530D0827C5CEE887FE4B86E7E936366F -:10CD3000A6C13DCF0CFC7CFF2146FFF71BD838F184 -:10CD4000F13CF851544120276D765935CE461BEF02 -:10CD5000C3DB4E3B6BEF3E987A3DF0E5C619A9A3C5 -:10CD6000804E8C3209C07803B24DBEA1747DE63787 -:10CD70000C21890E3A402107F5A9B4BF85DCE9A74B -:10CD8000F3D87CD812D2D1FBE6F9FF6EA34026255A -:10CD90007CDEBB577BFF13E440AC4641389A9D6D67 -:10CDA000B651C56C0D213ABF54F807958F1583DB3A -:10CDB0006D804F73451BEA6F73495B1BC069F35469 -:10CDC00019ED89D47932D2B339A7E3E8207A5F3FED -:10CDD0005FB6C178A954B11BE8203FCA6EF3FB616E -:10CDE0005C0A73B98C910A8C8B2BA4DF49E37075B4 -:10CDF00038F6DC2DD171D260BC11AC3FC0C9CEE198 -:10CE000034D6EE413E75F071D306D1FE23D8382DCD -:10CE1000653DE3083C6EAE2661989FF8AE18273E4C -:10CE20003EF1492057F5BFA670A37892724D38B9EC -:10CE3000FB1793B0311FE0E36FDC8E7C6D253B80E8 -:10CE40005F1CD99540479987B74C9747C07B16FC24 -:10CE50008E7E3E09031D672AC4744D2AD82F7E8416 -:10CE6000A3965FDD07DB6EA63C12C78B967FDD0ABB -:10CE700069D5A5F6E663B7C3515938A20F7ED6F03F -:10CE80008BFB70EC7B40F45ABE7E2CE95C09C085BC -:10CE900024F6D77D7B5BA7EB383A09909541F504E2 -:10CEA000057DAEE67B84FCCD086D89C89E8B034171 -:10CEB000EEDB391D537D459975F728DB042BF0E92E -:10CEC0005282F455B977FDEDBFA6E35D186CB081D1 -:10CED0005EC939DCD60DFA91740686001EB62A8129 -:10CEE0009F24D1E75B8F651090DB6BCD6426D0B7B4 -:10CEF000C2E95CAB5F1E02BE71226B8465D7DF7F27 -:10CF000015F660C7A0F461361B8CFBFA6193F37FC2 -:10CF1000D1CE0A0D433B2BFB60779315BE6F9BDC94 -:10CF20006AA2F035BFC9FA3F48DBA14100BFBA3C55 -:10CF3000E0C303390B104ECABB4602743A5CE70BE0 -:10CF4000439BBC6726207F773EF79D5A0FC89FF40E -:10CF5000291E90433F017EA7EBD9C6F95EBB7EC573 -:10CF6000E00B803DA1BDFF685C2EF94FD5503C0E13 -:10CF7000FFA981ACA30F8BE439ADF9C0176BA9FCF5 -:10CF8000A54FE7E83C0D3F947AF0D369AED86587AA -:10CF9000EFAD32918091AEEB2B89042873E6387E99 -:10CFA0005B01F227974424D0B3B98DD4E005BA5A77 -:10CFB0006E2181047ACFFE4AC1FE9D66DF2E3B972B -:10CFC000FF262A07F4EC9FE4E7A97E52E360320AC9 -:10CFD000EC17FD3396E3203788A3CA17F7370A808A -:10CFE0007EA9DEA7DFDBC7D7ADA76A423F8AFEB5C1 -:10CFF000CA11E388DEFD5FE6FD14933502F252B1FB -:10D000001E3986F2C5A69C4DEC670A337D43EA487B -:10D0100078B0C4E082ED7FB3613B8BCA5FE328B494 -:10D02000FB434698670AF33F88CFE771A403BF101C -:10D030000472B689B49A683FA476CA6F6ED26D4600 -:10D04000BBF920F1003F5088D9C13F845B00D7ADC8 -:10D05000845427F281B88EB4313E5056E8D05F1A1E -:10D06000F6AA19E7A36F246133D84330370A6F65F6 -:10D0700039092BE06FAD3060BF91360FBE67208D50 -:10D0800068CFEEFAFAFD4C90D39643D41E1B097874 -:10D0900096514E592C6AFE23A409E1F409E7BF6DAD -:10D0A000AB6C88E7B87F16788BE339DA04FA22771D -:10D0B00079AA0ABFA25FF6575924303A71DC308E44 -:10D0C0009B3DE8A0448AE1792E3EDFB6CAF32DE30A -:10D0D00017F433BE1BE9A8FFF1B3F1F9B6C85BF64C -:10D0E0001B2928B6C60EDAFD9E1EFB5A0BE7ECE59F -:10D0F0006AB93CB253DD167031EB7D8E6914E6E6F9 -:10D10000EFC9DEED74BC2B8FA9FB55E7BF8DFE6D1B -:10D110004FFF88E366E84FFDEFED201D4EA9FBFBB6 -:10D120002B5EB3031FF7F467F3BBF62B753F2D7E21 -:10D13000B4F3A5F372DE9230AF0926A3EAF9CC9AD4 -:10D140005EF372DE9630AFC92E75FF4053DFF3BA3F -:10D15000BEC8F88DF312FD6E2ABFB47EDA75DC5CB2 -:10D160006DEC07EEACFF6D332F6DDC3B6ABFB9DFB2 -:10D170009D2BB4DF0921BD5F2FF97CA9F43A076E1E -:10D1800081BD68B5A0DDABA5975D5C7E4E067B8E4C -:10D19000F69F95EC9B9C4ADB1305DF3DF5BBDB411D -:10D1A000BE1C7EF68A0C90EB59A0E7109E2CAEB008 -:10D1B000BBCE857185EFF2FE549FB480BCD8BD9381 -:10D1C000BE97C2E695683FA5D531BFC24662C8CFBB -:10D1D000C25E4A253689F9E3CCDEE9EF3BDAF1D7C6 -:10D1E00071FF73EE8A09E403CA87CF1B6C150AF836 -:10D1F000678F49680FCCADF2E992297D8C6B953031 -:10D200006E34F79E7F1B0D7265EC494F6794DE9F6D -:10D210001BB67BE1B30DDDC417A67495A15B5A72F2 -:10D220001FBD3E7280DA3FBCBD14E8CDEAF380BF7B -:10D23000510333A2E39CD53796D8406E7ED7EA03DC -:10D24000B95933C3F70EAEF7AFD42AA1FDE6B3A5A3 -:10D2500093BDEDD30C1E6A67D47CC7530E764F4D39 -:10D2600087D9875713512C741D35D41E836B868143 -:10D270002866B85A8809AE65AB99FD9552EE37D449 -:10D28000D0EFD774FDEC0B786FA1127985D993613B -:10D29000C45B4DD71B7F027B6DBECF6F0079316CB5 -:10D2A000A781D9A49C1E8677A8DB200F12DB25114D -:10D2B000757BF46175FBC35406DF7D527818E06717 -:10D2C0001F5570E017877619515F1CD86F44FC2CEE -:10D2D0003963D90EF1A7094BAC28D7CF3C6DC6787E -:10D2E000D43EB9E35968879E4D42BFFA9577F795CA -:10D2F00049B4BDF817C9323C7FF16B1DC21996A322 -:10D30000A7F7973C3B74FB3A7A7FC9E88E321BBD86 -:10D31000FFFC158474C373253C02D6F7FCDF743818 -:10D320007EEC29637807A587332FFCECD97BE9F7DE -:10D33000CF3C95952A51BC5C05FA80F61BF75393B8 -:10D3400005FC8C71679E1908F262C94EA36A5D4F95 -:10D35000A7327B83223305E8ADBF78E289B53FC3AE -:10D36000F78B4E1D437ADBA70FC91658FF5A465F4D -:10D37000DAFEBB5399BE11F380F7F2297ECE7F6CA3 -:10D38000B913E2684336A9E13B34AC6EBF90CAF4EE -:10D39000FB1C92703F1FC62B58E3023B753B417B41 -:10D3A000A6E8D4EF6FCF073BDAC8EC07ED3C0EA43C -:10D3B00032BE7EFA693A0E930F3A663FD315537E1A -:10D3C0005CC2E9F84589D9AFF4CFF22C4AB74B409B -:10D3D000F117F4DC5FA2998718FF077C9D0EEE57CA -:10D3E000C7DED4213E4EAFAA1D7D7270EFF97CB826 -:10D3F000AA716895BEA7BD60D3D2436EFA5EDD6E9A -:10D4000027FA89E27EDD53AFA6DF41EF9FDDA978E1 -:10D41000C174AD9BF5E443E3A0DF53BA0E982F3CF3 -:10D42000F7D1F59EED782D05FA2DD86A1FA54BC0D2 -:10D43000C3C24DDF1B5A95200F2F971F04FFD671D3 -:10D44000FF766F79F7A42CA0EF4D9217BA2DE9B8AB -:10D45000E5E61BC056D9AAF30EA6CFCB14E2D78DB2 -:10D4600042D77B065CEB763F7728933E0FEE1F5347 -:10D4700006EB5A27FBAF1F0EF4FF981EE3585AB86D -:10D48000FC85E39BBE1F91E9FBEB6EB5D686AD38FC -:10D49000EE41681F28DAA183387BCA292A9FD8FD6C -:10D4A0006332E5C9535DF78F8078E23EBDB515E87C -:10D4B0007C5F32C34368970EE53C89B0758CE3719D -:10D4C000E325FFDD6E50E8F5D4A9D529158C8F50E2 -:10D4D000BE805076D0F5D5FE7438F2DDC24D6A3E7E -:10D4E00011FDC47C1785D5CFB5F4919526E20DA426 -:10D4F0002891CEB4FDD2A6860CC057752BA83C4E01 -:10D50000B07FEA4EB619C06ED27E072C4022F0AA38 -:10D5100043FA241E5CAF99AD979AAC26BADED3F0DD -:10D520002F16F796C02F5F2CE112C9922B489587D2 -:10D53000C273C974520DD77D52E4211D9767187FBD -:10D54000DF9584F2ECAC2DFAE48F81FE9EC9F18662 -:10D55000E8A34C1E973BEB89A4A4D2EB79E00BA087 -:10D560003F1B6B2FEEA2F29CF2F7994F0C28D79B32 -:10D570003A5E4D017C9D7DD62CCB142F6776A75546 -:10D58000423CE76CC7AF53605DA73BD22A212ED740 -:10D590009FBCD1CA29A1CF8FC33FC7526598E6BBB4 -:10D5A0002A0DE4564B1A18E32423ADB1A4B10FFEA3 -:10D5B00017EF390C8D251E901BDFB57A77303811A7 -:10D5C0001F6D7F76386D07E05BC8A91A898D2FDE45 -:10D5D000BF318EC76F968FD5EB86621EE833E21996 -:10D5E00000F27A1A287AFADEE1570A0780BD20EEA7 -:10D5F000373AFD33D2E87D5765B74F0771C429C468 -:10D60000DB4CBB7EA0F3DE65A3F89A47A8FE826BD5 -:10D6100069C08071971627AE6FAE42220AA5F7B98E -:10D62000A05F47601BF13577AB146EA6EB99B75E30 -:10D630000DAF05EDC61E3AA17F17112A608111B703 -:10D6400026F4A3E32F023D4AF1B0D844224974DC0A -:10D65000C58FABDF5B4222389FBA672E1AFBC2C769 -:10D66000171C1F8D4E5F7D9A4A0EEA510E2E21FE29 -:10D670006BE0BB4B84BE7E8BE12B78CF3D43E75103 -:10D68000FBE3FC8A7B87CE4B837822F1811D41DA54 -:10D6900093918E975491480E9DD7922E29323CA596 -:10D6A000675CF24B89F96744C1F57FF116C3DFED82 -:10D6B000DCEE994F6F831D7115F8EF80EFCD12CE20 -:10D6C00063DC33522899FA49F34DD4C503F9C4D722 -:10D6D0000BFD07D0F6421242F83C9C968F785B44D3 -:10D6E000BA0D8C7FC2CDE9F4BB0DA7A84C2297429E -:10D6F000076311DF9F132FE2FBDFE3745086F421F1 -:10D70000EE53FB8698537BBF0F78F325C0B976ABF9 -:10D71000BA4D1E4F6817005E683B015F0D7B2E1AE5 -:10D720007D7DE0E991B87E0B0F9D363C913F98FDE1 -:10D73000FC3EC7E323B72C70833C7A18ECC94C3EFF -:10D740004039C86F22E22311131DDF329AA8E22567 -:10D75000D44EC3F62FD2FEEBBA4DD9846CD4073029 -:10D76000EF3057E73F0429B281E9815F01DDCF95B2 -:10D770007DB90AC2D557887EF30A460F8F8E6A1C80 -:10D78000DAD887BF2CE6BF51EA88C8209F5E60F6D2 -:10D790004672694C1F48E0F737D3981D33E040F4D8 -:10D7A0005016D0DF7312C6F7374BA445A2707651DE -:10D7B0003C835EDA2C1D3F047A6CF3751ED24C9FBD -:10D7C00097EE99B6F435F4B92D5EC897D4EFA9D089 -:10D7D000D55B71FDCCEE4D6ADC2ED3E71977168D43 -:10D7E000023EA3EBBE733ABDFFDB340FC2CD6D65C5 -:10D7F000F4E35A1DCA5F06F1DD03FEA5AF01DD0D9E -:10D80000B7601C2D83C22A3915AFAD60CFBA4893DB -:10D8100004FDD63825C4C79A1A32F397C548CDCA35 -:10D820008054763D46AF92425A202E9CA150FB98E0 -:10D83000DD6F81EF3C92C2E6E59475774E03FB7C89 -:10D84000146BA7AE947C3B508F6D403864184935FB -:10D85000AC1BEE833D4FA7E1DB8DCFC338EF8C09C6 -:10D860008D25308F8C81ECEA3044B2619C23824E4E -:10D87000BADC32E88DE55CFF2FDF5D91914ADF3F36 -:10D8800072D6A4803C3FE212F668C40AF628195406 -:10D89000C4FA733DBBBC64420630B52357DDEFBC10 -:10D8A000DE376034E8ABA33ACC1BFDD1EA1B60A79E -:10D8B000FDAE32B07568F1AF7330BC06BF92483828 -:10D8C00021FE109C7901EDFCE0578AEAFED955262D -:10D8D000124E883FD4D51E9804FDEA49F71AA0C716 -:10D8E000FA8E24124EE08FAB2C7D7F57F045F02B43 -:10D8F0001D098D46B2CF8638E9117D6CCD7CA0C361 -:10D90000FD12C6B382D4AF0F25CEEBAB34124AEB77 -:10D910006B9EE9EAFB743DAA76E797D88F9447534C -:10D92000E03BE76CD1143B5F1FF413FAF77C580E11 -:10D93000E947629E92E96188335999FE9A06F85543 -:10D940006229D3937BC615CF61BCD484759E9B6935 -:10D950002011C44B0CBF0B700B0D21644BD7A706D5 -:10D960000FD8235DAF20DC04BD24C22F9498B76A82 -:10D97000EE8EC854565CDD9EB3AED84C517580CB4C -:10D980008550DE3ADF78FA5C27ABE44452695C6E7E -:10D99000A0987A04B2681857F5AC83386BBCCDFBFD -:10D9A000C7DF0FE54FA9A2E39516B3F727B717FC1A -:10D9B0009FD5A003491BD3CF4A2CD79F9CD0366953 -:10D9C000DA56DA1E9ED0B6699E3B34CF5D9A763623 -:10D9D000EB7F363992ABF31232BDBD708A42E5D689 -:10D9E00059776436F5A8C97ADDD02955B45D5FCA88 -:10D9F000F47A4397E44535C5E1D7E06576ABD51BAE -:10DA000035CC2D0638741F02B952D729D924CA073C -:10DA1000D68EDD116CC37B9E84F73A247CAFAEE3D7 -:10DA200038BED7EFF84532F2F9BAA213AC5FC74758 -:10DA3000683FAC69A9C1FCBEC85FEB88DF9725F5DC -:10DA4000E4AF857C3DE7F6BD2A33BAB625FA7341CB -:10DA50001837216E24FABF37BCEB6D304F92967F9A -:10DA6000DA04F6F47FD77F3406ECCBF7B81ED9285A -:10DA70008587C277B790C050D0A3DFAD1FFC8A4C1A -:10DA8000FBBDAF8F6E831CDD86F66B107EEF2747E4 -:10DA900073242A637EE4B88EB59DD16D00CF8F1DAF -:10DAA00053A628749CF773A239326D3FDABE9CB539 -:10DAB0000747B741FB654780F51F1ECDD1D9C0553B -:10DAC000AB9952459F3F61EB9B9F5BB91C11F333B0 -:10DAD0000FF4353BC07EAC63FA671BB57F4D545ED7 -:10DAE000CE5E7C7AD713140EB3BF9F8472EC89B3D9 -:10DAF000374F61FE41C8AF9441FC97FD41FD8872EC -:10DB00005E41FBC20D3A31B5071FC9B9DD1ED41FF6 -:10DB10005734EE06BB25637631EA8FB169BED3F088 -:10DB20005D71FD4526BB9E76D8985CD6C9980FCF0F -:10DB3000B83719EDBA87CD6C3D946F10BF568E8FF4 -:10DB40006D0E66976E7330FF7649DAC4D30E7A7D18 -:10DB500057F26D3651B8BFAB272133C8D94516B43B -:10DB600097EED84EE50695DBED7CDEED1BDC61C85B -:10DB7000E7DF21113FC815213FDAED3E776A825F6A -:10DB8000D45E42DBD61E3FB87D9ACF6D71C0355D45 -:10DB900086BC8F904BEDF9EC3DA18F329AD977324C -:10DBA0001E1EBA03D691A4B0F8D5FC99853B9AD035 -:10DBB0001E988EF3253E9F1BE220271715C810D70D -:10DBC00012F8B962A06F2FC0E5769E17107812F890 -:10DBD0003CCDD73D5747ED09BADEBF380308476A49 -:10DBE0005F8CE0F133B42F4E836E4F802F51A263D0 -:10DBF000E0FEFF4770FA3D3CFF47E154BF82CA0B8D -:10DC0000F912E40587DF4629A2CF60F202FD79B858 -:10DC10000F7AA7332D1083F1C5F767DF5B8FF6A46A -:10DC20009857D2DD7BAB6F23BDF94C6BEFFD19F03C -:10DC3000E5ECB14BBD220ECABFF3FEBB26CC7BBCCC -:10DC40006FE840B9F93EF5A39A40BEF0BC7DD9F724 -:10DC5000971C017F548C1B70EA70BCB592CF0DEB02 -:10DC60005B4BF16E82F94F33A0BF21F46ABB3DBC20 -:10DC700019EA26DA6FC9C6BA89F384D5A78456246F -:10DC800061BFABE41304E2AAB1B136CC9B533AC1F5 -:10DC9000E7EDB30AB17E85D243C80CCF293D419D43 -:10DCA0005F7B095D108C37EB0A7C0EFE3AFAD9B324 -:10DCB0004C385E1F74C2E2D443587D467B3EA7C3F6 -:10DCC00045054887E9CD2C1E4A14DF8869097A7E0C -:10DCD000BC93E139A934FADC7F01CDAF37A33D0B0A -:10DCE0003A16734A6D19381EC5FF60278B4B209D6D -:10DCF000CD7B2899D7C379CB00AE0F2433BADC6A29 -:10DD000066F9AEADD47E46B9C8E957D4E105B89DF1 -:10DD100017AD9553C05E18ED8CC73B7C107FC07863 -:10DD20003B7D3E272A1D07BF6F4E481731425CB826 -:10DD300075A22F9AE0BFC01FC817DEC9E52AD944D3 -:10DD4000D0BFBA13DE4B81F12D29901FBD13DE0722 -:10DD5000FF71E544551E7022C8F0313DF3D3CAFD72 -:10DD6000894E1EDF6C7BD497F81D31BE763CEAC726 -:10DD70004E723A11CE9101E04734E9108FDA7946BC -:10DD800037B1B87974531ED29D18AFBF79FE8F2E6C -:10DD9000F63D89EAC10513987F2FFC9EF9DCFF262A -:10DDA0002BD57E1DC479E26D5DEFB6D64F84FCBEE7 -:10DDB000BA3FB35B928A6306CCFB7824D5FC05BCE2 -:10DDC000FA83439DC0E725C24DE8BD47CD549E521E -:10DDD0007AD904759094BE36DD93847ACC61080FAD -:10DDE00005BADA02F535A84F99FFFEF91175FC4521 -:10DDF0008BBF1FC4E9EAF2FCEE26C0B9B3B7DF1D42 -:10DE0000B4C41E03F8072D8C2FCFED4F46BE2283DE -:10DE1000A2B3A1EEEDFC3E23017E6890A2852027EF -:10DE2000CE49BE1AECD794E401FEFC406671812015 -:10DE30006084AE3318FA0BD65B053BD57EF839FA11 -:10DE4000B796F2CF39395A06E308F902F204EDAC7D -:10DE50005A96876A904908FCB4ABE4398BD09E98F7 -:10DE6000954976E0FDE385E09709BD41FB1D94529D -:10DE7000191902FFD5717C34C827B05F1DD44D013C -:10DE80005EC05F83781F3C4C885337AC3F83755B23 -:10DE90000D7BD47453D74357D24509DE4BA033943E -:10DEA0000B218423DAED2047AA581E3D99B793AA87 -:10DEB000BBB18E2BC8E32FCE03D149209F924B3BA1 -:10DEC000C81C7A0D9E6276CBB8AEEDAF825F6EAFA6 -:10DED000EECE01760AF278A7A01B31CFB15D1B749C -:10DEE000E0370A7B27C16F1D3A5D15B7588DEF816A -:10DEF0001F0CDF8BC22D379015D3931BB99E4C029C -:10DF0000871AF469DB10D4A7A0EF40CE093F1AE4CA -:10DF10001ED0D5C0F4CA23C0F72FA657BEEE74B2E8 -:10DF2000EFA17F00CED7D8FEE94EC047F4037FFAB9 -:10DF30009BE3905C7E13167F5CF686F31BE9FFFD86 -:10DF40004BA6FFA11940E7CB244F06D0F9F138FDCD -:10DF50001762BE52DCFF5017C038A388772D82F8B5 -:10DF60001EBDD67139B480C7C71688B8D826755E6D -:10DF700015E2D189EDC5224EB6D3D8536F04F2A372 -:10DF80008A4492E978F51067836B87FABD061263BD -:10DF90007CD479D1A8CADBB63338DEC9E9C95E15AD -:10DFA000D681FCDA6C66F13221D7C6ADDC8E7432D4 -:10DFB00060942FFF7EE09B37F4186FF903A70301ED -:10DFC000974667E551C0A745C7E381F71B519E9F60 -:10DFD000A476C26E1EE7990EFEF1AAC050A897273C -:10DFE0008A2D37D17F16D775FBCCB5687FA7CB2A92 -:10DFF0007A7DDEC9EA9B30FE85FA2209FD012ADE20 -:10E000004600BD9615087D4D4640DCEDB89EC5CD59 -:10E010001B6EB50660BCA8CCE4A13B9DE929773A0C -:10E02000AB5714EDB8FFC9E951E443210E95988F21 -:10E03000F0C4FB6FE075C804D7BB7111AF778FF3E5 -:10E04000858CF22DA9D88F7AE12AB912E55BEC63B1 -:10E05000AB07E0527DA66E11ACE3B399160279C905 -:10E06000793C1EEE4DB7E3B8228E7DB9F1F0D1E9CF -:10E07000717A54C5C3F771B9B88FB0F9865A8C2C30 -:10E080008FC1E7BFEFD41561CE1F21909BB1DD6634 -:10E09000A68FA99D0CF27ADF9E216158CF713DB306 -:10E0A0006742FB93F9FB81CD10A7D9F74BA717EA7D -:10E0B000A0828B4F8F00FB76DFA9A77FF51BB8BF2F -:10E0C000DFE8057F741FCF63D419228568CFF3FA88 -:10E0D000CFBA944821C4A55EE4F8AAB3D036BD7F78 -:10E0E00083293035DDD9936F84F7E0FE8930F31B47 -:10E0F0004E104607A1F52C2F4CE1EB8679C4D6666D -:10E1000060BE12D60578F860FF709CF7463DEFFFC1 -:10E1100020B32F4FF0F689174AB01EF2BCDF80F50E -:10E12000CBC187993D3B57F63CB60264EF4B49188B -:10E13000079DDF7E14F347C187164E85E7C1C52BC7 -:10E140006F24DF9057013D9518C73F4762B9E8A794 -:10E15000D7167444E877CF750DF5B2F4A80B937118 -:10E160000DBC4EF624852FCC3BB65F8FF0BFD4F1AB -:10E1700031A059C6F4257C279898BF42FDA2CE67EE -:10E180007D5BFB9C3E5A780FFDFEDAD4C00FD213A4 -:10E19000ECD8E04B6E94A31F3CF8652EDA3B6D2C57 -:10E1A0006F7252EF9B0D7C62AF8A18E624C8D78D40 -:10E1B0009C8FE71AB95D4BE56022DF8BE765956AB6 -:10E1C0003E13D747D2995C4EE6F512BD9F8B7ABCC1 -:10E1D0009B8DA08F59C80BC6F5E0FD3C9EC71C77F0 -:10E1E0002AF60AD49DD57594609E346F6504F99221 -:10E1F000C23B02FEC9C9CDC94C9ED065C2380BCA0C -:10E2000009DAD50B74ACFE638191DAE9CC2EC0FE3D -:10E210001F6ECE403894AD66F669EC3909E5A2C8A8 -:10E22000E7D610F6FEDE96E3211DED5FB3532AA17B -:10E23000A295D4B454607DC8E2ADF988FF715CFE4C -:10E24000CE35FA0A3703BDED4D467AA3DF437FA0F2 -:10E250000E6AE046A15C32807EADDD29617E44AC71 -:10E260005F9B3F256175DE695C0793DFA03748A29D -:10E27000DDC9F510E80BA2B16FD57411BA247DAADF -:10E28000D50787E372F2F2F4E9AF417E8DE9AD4F35 -:10E29000A9BF70249DD10993FFBB59BEA99E34B27A -:10E2A0007C1BD767F175717DF8A18EE9DF05C60D7E -:10E2B000783D9E9E8FF35A4CA23CEF1433C0FCFA7B -:10E2C000A3AFE3FDD097A0AB139CCEEA4E91C8D587 -:10E2D000F47B752B49A47E04BB268F40FDCEF4BC95 -:10E2E00089E979B85A2E41DF6BF5BC56AF6BF579E9 -:10E2F0008681E96D414F89F907B093C6AD0CEB58A3 -:10E300009C39DB86FBEB387E97A4F92E668EE9B14B -:10E310000383C74C26CF4868FB498115E26715EB9C -:10E32000B2212F40F500F06F1285D376888B71FFF4 -:10E33000E3EE6CB67E17AF93D22B7E5262053C752E -:10E3400063BC20E624E8BF0BF86E4BA6EF8D82F786 -:10E35000185FC7DF3791164BC2FB95FBCCA8972EF1 -:10E36000BC908C753D54CFE4D9E978E9EF51BF8179 -:10E37000B6CFED4B463BE11CD71B0E1197216B101E -:10E38000BFCE0C86E710A9CC82F83691A66481A88E -:10E3900015F66CBDBDBF7C047F9EDF7D2BA33323B0 -:10E3A000EAEB0BF6E85DD0A6F3C13AECE40C36EFED -:10E3B000E09E0925F742FD85DFEA65500D9480FD5A -:10E3C00061D42DBF15E25E93742B63F7D075D4E74B -:10E3D00058B1BEBB2AEFF7BF9B45DB1FEFD113231C -:10E3E000E0FD899B0744E035C5E7EA8B4F1685F5CC -:10E3F000AAFD834B76AADBF51DEA769024EC2FA4C8 -:10E400002058F1FB926B0E26D0495946B2E3C36106 -:10E41000C096C40BF5E944F79D01813EE4AEB87E99 -:10E42000B9CA7BCD413DD6F75D9DC1F8D900F6D183 -:10E430001CA0873EDEFB23E77BA3B1F114EC133075 -:10E44000BE68F436D1B7CC198149F07E831C3B04F9 -:10E45000F834E69D1D01FAB432EFAF9827BC701F67 -:10E46000F1027C2E982BD04EBAB0D9EC017FB13D91 -:10E47000D7CAE2322F496189F91553C750F95A8B2F -:10E4800053A1EBDD74DDC76C530B31C9885FEA55CE -:10E49000B9405EF9D0CFFB709AC5B69ABE57BB891A -:10E4A000E9ED3AD29D0272E087803FA06BDD330632 -:10E4B00013FD677E8B6F68139DEF12BF05F733293D -:10E4C0005F2B7EA0AF0760C804BF644E069307F5BC -:10E4D000A6A8A102BEFFD779D5CE829E389E41CF95 -:10E4E000E2784A6749248BBEBA70C55CF4BFE2F992 -:10E4F000FACDAC8E6CE13D3578FFD5CD465CDF873B -:10E50000FB25A4F30FB7B1F52FDC64F640BDFBB5D6 -:10E5100076E6BF2FA4EFF5BDFEC91FC3BA3EDA7A77 -:10E52000B717F2101F11F69D908DC5DB3EB2B1BA40 -:10E5300002E80BE37CB46720DA43B59B164DC5FABD -:10E54000BE6D3A2FD823647F32C6B1166EFBDE6FE4 -:10E55000C6429C6CFAEDA500876BEDCBD3212E440F -:10E56000FBF9C3CCBE6675D3A9E54F021F5EFBF570 -:10E5700084EE6BC1EEDA46F9249FED4B007BFFE0A1 -:10E58000B6C968DF2E9C66B1C3BA3C5B9F98047A1B -:10E59000E8A3699932AE6797446C0007FB8A74B8A8 -:10E5A000BF5052FC7DD1537E860EE15A9167F546ED -:10E5B000E0BDB775482794AF6E053D5CBF4D8FF643 -:10E5C000F3C1E9EFFE6E96A387AF16EADA6E1D97E8 -:10E5D000603F05B7DE20E88444CAC02F6330D1F223 -:10E5E00097316F6521CC47CB670B573716B2BCDC30 -:10E5F000E5F11BD9CAF8EDF10C89C56F2E9DDF7EC0 -:10E600007E39FC46B25355FAB7B75C0B613F91D7E0 -:10E61000307989EF092BE6AF7D1295BB6F6528F83D -:10E62000FCAD0CBE8FEB4FCB76BE49E1332B23B054 -:10E630003F03EC28E22B013AF2C46C95B047CBCAF9 -:10E64000ED41B295D9DFE02700BE373AC993EB120E -:10E65000E221DD196C1F21E5FF4330CEB977FE7A48 -:10E6600008F0D3907B7604CBEBFE11F3A0D62E9668 -:10E670003FB77A635857A077F891FE845C0F7A9978 -:10E68000DED1AE2BC3C5FCC2A02386E37CE6627C50 -:10E6900028F20A5B5658301EBCC51136B37847883D -:10E6A000805E9A5AAE63F93F6EAFDDC0E3ACA6D28E -:10E6B0005709E4FDC878566FF766E9AB4A1A6DFF53 -:10E6C000A67CA217F73996FEB4B500D63D5ECF9F63 -:10E6D0000F0CC1BAFFC35781CF97B9741EE0EBA9E5 -:10E6E000A5AC6E94D4A6601CE7CDD20F1CF312E645 -:10E6F000EF27268F95D2C974EA2C25D639DE38DE6D -:10E70000ECB126D0D7676D5235B39B3D03660C67DD -:10E71000711AD4C3A56A782C7319F0BB2FA6577C45 -:10E720000A70BEF61A868FD3BB8C61907FA7F9BEA4 -:10E73000A15E74E1E2F4F39D22551D82C3D0910BDA -:10E74000FAF18CA47E6F71AB0EEB0016B54A244C27 -:10E75000BF77FAA9BDB920C73F7E626FEE9C84F9EE -:10E7600068DF13578BF81E8F776AE3D7FDC5AD4579 -:10E77000BFF39B48C034B0A7FFF9DA3F63DC7A4EA1 -:10E78000178F7BFB7C831CE04FF1FEDAF146BB194F -:10E790007D489D12C64D44DCF6C4E19F4286288E1A -:10E7A0003F7357BE9C58272AAEE338DE6E06BCD1B5 -:10E7B000A5985B59BB3F7CF5C78FFFC1F58FC0DBC8 -:10E7C00089D68103008E8606AB42D8FEBD22B0F703 -:10E7D000B7118B17F8C990E9B282FC12E71F7C6968 -:10E7E000665787855EA9BD96935984EFDD2DFBB1F1 -:10E7F0001EF14BB90DF76FDEAD6BC43AF73217FB64 -:10E800005EB6CDBF7B01FA391D58F74E5AD5F04D93 -:10E810000728809EAA31A09E1270BE6ACE5DE8EFE6 -:10E82000F6819F4D403799E5EC5ED095CFEDE52818 -:10E83000E643CCE5C4067181E6B1219C8FC04F90C0 -:10E8400075275297847632D4EF24A562DE37C4AFA1 -:10E85000C49A4AE2799024EE1F134DDE838AAD10EC -:10E86000F413F304310675400FDB3BDA0A59DE1866 -:10E87000ED4F1817EECF2956306F00FD0CA3BE9D4B -:10E88000DEE274C9EB3BA78AFBB5963EF32C5361DD -:10E890009F14ED9F43F520D87FC4AB57ED93DA4A20 -:10E8A000ED66F0EB441E5B277794B8D00FE98E42FB -:10E8B0009CC55066F2805E4DD2751401DEB4796D50 -:10E8C000DA2F9FD55364DB41AF887D500D2B26F89E -:10E8D000619F41DCCED8CFFCA3867B2AF0FE842E3C -:10E8E000962708B61A711F67B053C2BC5C83DF104D -:10E8F00036613CC4D304F80A513B0CFCCF763BABE9 -:10E90000036BBFCEE60D91C4B87AF4B17B31AE6E25 -:10E91000C57CE4DF9BA73D9F4C013032210F37C0FF -:10E92000C4EB0D59DC3D9DD393C0BFE06791D74D3B -:10E930002EF6E783C5FDE5C6D0AF2DCECBA87F214F -:10E94000B73DF88DF52FE4A31BA0FEC504D63C7F90 -:10E950000ED3A27A33BEAFD1ECC1FC5DFC399C472B -:10E9600061EA94F8FBED374C1C8475BBBC9E66D6FF -:10E970007AA8C37FD84C54DF4B9C9FA2195F4FC726 -:10E98000B77A44FF7BAF9FA8601E9BB7DFFD21D401 -:10E99000FB3CAC578F872428F6619A7ABEB72E6B62 -:10E9A000C883EBC7F7E86FAACFF7BAC6F4E8F10758 -:10E9B000DE9DDA36D203FCF539D6410B7D1C74B0EE -:10E9C0007A18ADDC3AE09284FD3B0954EC9A993513 -:10E9D000787E433C8FDD35CD07E758883C7670A5BF -:10E9E0001FEBA141FFBB50FF9FFDF01580D2F4D378 -:10E9F00068FF07BF52585C89DA1112A543535705C7 -:10EA0000C64FA13C17F4A6C0FF62AE97C05607FAE6 -:10EA10000E6EBDED091D7D9EEBF6FD078ECBFD4014 -:10EA2000ED7C4FB9D8BE816051E5669007E47189ED -:10EA300080DE5E57F419DA190D2F4C1C9358CFBFA6 -:10EA4000A8F311560FBE53DFE7FA4FB9983DDAF03D -:10EA5000C27318173D1D66DB886A95F0DA71109F46 -:10EA6000A995C1D222A5E19A59A8FF67D275D075A0 -:10EA7000FD86DB25C19D3787607F4190FE05906D47 -:10EA8000F12F407B7FCB4C9315F248C1A2394B91BB -:10EA90001F6C161FAC5F3BCF781EFC1E0BC62DD71C -:10EAA00075EAABC16E2AA376D2AFE87C7352A75445 -:10EAB0007BA95CCAD2ED2EF9372BD40FF4AD87D7E2 -:10EAC00067323DDC22F943379562BD2749AC47CA1E -:10EAD000EB64F6D84597411587BFE86276E2F850B7 -:10EAE000F704A0B997946812D8C541E2FB14FC5C06 -:10EAF000E2B77A601C380103EC2CC72A0FC6854D9B -:10EB00008EE80F47A2DDA4A09F21FC88732FB038A8 -:10EB1000DA5277C0EA86F88E2EFAA39B006E3F6425 -:10EB2000FBAB89C2E44DEECDD65110F7323BA23F8C -:10EB3000AAF6601D11C61F065CDD827878C9416C9B -:10EB4000009F09A11A454AD033426E4C88EF637288 -:10EB500060BCB5928B97C1145B1F9A90445B2EA644 -:10EB6000F5D80587FF3A43819BC25E904D01F4675B -:10EB7000AA6652FF10E8724DEC900CF17D4737DA2F -:10EB80008BF51D127EA7BEE89758E7B784D793C5CB -:10EB9000EBBA9428D6B915BA93785CAC85D103E961 -:10EBA00046FF973CC3E04FF526D6BFF5D8ED4DACF8 -:10EBB000EE888F67E079897A1EAFA180C2E7256E63 -:10EBC000116F5BCDF5AFA8D763DF258AA72C31BEC7 -:10EBD000B0711AD524382F4F0ACCB7D3EC1FE7A653 -:10EBE000EF9FA895595CBC35290C9B72374ADD3ED6 -:10EBF000885F864AFADE7F7413FFEE8003B149987E -:10EC00003778A1BF7A6056FFBB79CC1558875FDA99 -:10EC1000F9E924A00F524D901FA9BCB8A47AE019BD -:10EC2000800FE7FF43F5C05EC9B7835EE7BBEDEA3F -:10EC30007A602FC397C8AB6AEB80CFB9230AABDBEE -:10EC40008B3EF604E8DD4E23D6034EED7CFD18C462 -:10EC50002FA79A4807E69935F6C3C9B49B1B004F06 -:10EC6000E73FF9F0B1FB09D4913FEF65F5856A7B89 -:10EC7000A03FFB1F7323097E6248D0CD3FC9FE171A -:10EC8000F23AC8FDA93352ECA14258DF7E9DADAFE8 -:10EC9000FD480FBA45DEB59F7A96AEBEEB5944DC0F -:10ECA000B93A9AAFCA733D1AE783CBCB9B6D819C6F -:10ECB000761F793385D7A92912131D24C7A0CA9BB3 -:10ECC00029F6C2FEF266117CFEDC107CFE40AFBC71 -:10ECD00019AB7768D99FE101FBBECE197BF2490FD2 -:10ECE0008C67C0715A5E480A433D7F0B877FDDA564 -:10ECF000E7CD7EE5EE236FB69DDB6F1F14C91103D0 -:10ED000085EB76C2E61FEA12F93319FDD8D88339AC -:10ED100062FEF8FCFC83C3305E3457E4C55E62716A -:10ED2000B4B93CFFF5C1F442AC67EB0FCE735BD5D1 -:10ED3000F985D7389C2F982B301E7FD7BF4FC3F84B -:10ED4000D40288E30F84B8561B8FCBB3789EA79567 -:10ED50009D2BE0D929853D2C3F6392D136B4C970F3 -:10ED60007F0915A35B40F48628D55C496F4B146A74 -:10ED7000F4B9A785B6A9D1AFAC55422EDA6FFBB175 -:10ED8000248C9F3DE0F0E07C1F686179EAD07A290D -:10ED90003C988D8BE7B5855A641F8CF30737D3F306 -:10EDA0005FBB0D7D9E0FD1A2E7F910FEBD26224765 -:10EDB000E02A4BECFA804DA9EECB7E10E3B5E81BC0 -:10EDC0004D1500EF1C762ECC05836F26C697530B8E -:10EDD000F1FCA796E4C6D66AF61C79F68239E6C736 -:10EDE000E7572BCC20259E5498EF7B6E9E5FD3C0B7 -:10EDF000797E9BBAADCD1369F7BBCD258121EE811C -:10EE0000BDF783BDC7F5DF8575F91C2F5ECC97B4C0 -:10EE1000E83DBFCD077A5FCBCE776ACA6670937341 -:10EE2000D8B5C05E85E7F0113BB7E3089B7FC1D53D -:10EE30000E09F8A1C5CEE8F61F9DB776BEFACC4202 -:10EE4000065F3BE3D796B55298C18BCDFB52E322C8 -:10EE50000333FFB972F103C9FB64241FDF43B91008 -:10EE60007A508F7C778284B3587DA80DE5E61CEE3E -:10EE7000E716677AF0FB5B6A0B52209F3AF7D41AC9 -:10EE80003CA769C2CD569C7FC34B66F4E3EA574664 -:10EE900073819EB57084D92A429ED2E7731C849DEB -:10EEA000EFD3AACE0F6AF3BE6B53FDE3201FD450FD -:10EEB000192D84BCD123F207BB5F67720DF56AC3BD -:10EEC000CAD8931067FE6E6AA002FA9DBDE7DD49BD -:10EED00092075F47F9767EFF10DCD739A745BDBFA3 -:10EEE0008DAC57E71F496B2AC6D549BBFA3EECC328 -:10EEF00052BDD72B1FC9EC9A8D86C050B03BAFBD19 -:10EF000086D55B7CB2482680CF4FCC84E7F9859CC0 -:10EF1000F51626EA81D9FDE295F60338F3FA57D1C2 -:10EF2000BF1EF04AF159C7F1FAC9735716025ECFF6 -:10EF3000EEBEB210F0BA51DFE603BE18981E980379 -:10EF4000F03839D18F76A1A8F7BD547A5B9AC9F50C -:10EF5000E0BF480FFF407CFF32F530FC498C97BC86 -:10EF6000F45756971BEA62FB827BE274A7F17CB3ED -:10EF7000F35FC912C8E1FEC6B371FBCE652221B0B2 -:10EF8000BFCA2AA3F85ED99F650276A0B07FB5F309 -:10EF9000DFC0F1BA23D377C105F8E571DD5A3EB67B -:10EFA00029FC39B3B31F97306E6BF28452C6A15F50 -:10EFB000357FB40EE5CAAF70BF07E9926CE09F2CB5 -:10EFC0007ABC099F9FEB9C8BCF655324027E583DF2 -:10EFD0007D0EED35E3D5F5DBFA3D259144BF97CEA7 -:10EFE000E333F04B931C3103D06703D8D5748A0DFB -:10EFF0000A8B6F373808C6554A3BD57EA2C8DB6EF0 -:10F00000F1B3F373B67449788E56BA21909F0D7898 -:10F01000D5E46F7F91E93B96E9ECC9BF373A7DBBF8 -:10F02000810E1D06928BF57A7AB11F51BD8FB3BF49 -:10F030003AB897057F7CABFD340BEDA42F881FED0C -:10F04000A403107BC0BCFDAD685789FBBDEBE0C2DB -:10F05000AA7CFD02BEDF7601DF6F0BF23EA291F7C4 -:10F0600089EDBA843AB8485FF50C09757089EF25C7 -:10F07000D6C1455472B28DEF07598679F220E59BCF -:10F0800015A37AE8BA8EF03F9B621FE07EA09D46F2 -:10F090008CCFD5F1FADC60ED09F47B82B0BF88F14A -:10F0A00037AB63E7E755D4517F12EB943BD475BC83 -:10F0B000E7FFC9FA45F4EB2FEEFE670D7F8B7589EC -:10F0C00075D475498C1F35F3D4FAD1DAF8B9F083C9 -:10F0D0002F55CEA564FD6BE55C5696A0EF7F4CCE18 -:10F0E000F5CA430C8AA578FF0979888F3D6DE91030 -:10F0F0009A6C9518BD4ED2597D2CCFA9637510DA44 -:10F10000FCAF6712E63545DCD7F4BC2EBC3A1FFBDA -:10F11000635EB77E7F32D625D47A6AD16ED7E63B5E -:10F120001793DD9300055F9023B88FED1FAD2FA8D7 -:10F13000CC8AD717E45F667DC175599791EF7CD56E -:10F14000FA795A20814E2A8BA90350DC7F1DD96D94 -:10F150009CEE92781D8A4909117BC2FBFDBD776741 -:10F16000168B1FBECAEB9F1E4E4EC2F3175C06B62F -:10F170006FC325B33AAD5CB7BF266B0CE81586C7E5 -:10F180009FBC701B81BAC79FE83BF03C8450BDD543 -:10F190000BFA50C4ADC4F8BFE2F1D44BE59FBBFEFF -:10F1A000C9FCF36D722324BE77A9F9BA4D14060980 -:10F1B0007CA5E583FEDEEB4FAE6CC8F2AFCF42B963 -:10F1C000E51B81798F4B944749A5545E83BEDF636D -:10F1D000F480FF61E2FB8BC87AB7CA7F9FFB700E99 -:10F1E000EAC34FCCCC1F11FBA0C4FA1FEF17DE7F80 -:10F1F0009FBDF817A7FF4958CFC90A1FEE7B78209B -:10F2000099E995D853ACCE48BB1F48AB4FC47E1686 -:10F21000F1BD4E21CFFE45F2F4B57F923CA5FA1523 -:10F22000ED8D7EF3BABDDE0FE177CB2ABB7D3CDFEF -:10F2300085FB39C4BC82DDAC3EEF6D8E3F71FF595A -:10F24000AE7733B37DBF033C9C7DC764823C6A6963 -:10F2500029939F0D7E2BE6211A3A585D4EC34A82B0 -:10F260007103B1EF775646200A72EA8177AD787E56 -:10F270006C43E7F6D602AC5708A09D78EE1D76DF0A -:10F280009C113809E307574655F98EB28B9FAFA9F9 -:10F290002EC5F9A2DFEF30AAF75319B2993F2FAE6E -:10F2A000BA6CA1B7A99F43DF3B5BCBEACA830E9F31 -:10F2B000AD02EB14583C3DC9D38D71F0863DA824B6 -:10F2C0000816B9C2F37BB3916E1AF65494E0F90BA9 -:10F2D0001DE6123C47E83D2BFA6B67EFC90C433C37 -:10F2E0007BA93BF017986F7269F83AB057F3E8774B -:10F2F000209E7E76F77525185FD4F09DE0B7F83E26 -:10F30000DA3B4CE166A9871F37EA997E147AED0C47 -:10F3100018C74ECC7BB03AC3AE6964BEB5A76D7555 -:10F32000A8EB2F77644E3C03703E93A5F03C39CB9D -:10F33000CBE79BA8375BD09B0EF3795E7E1AAFA715 -:10F340002021534F1D45C1B7E7E5C5FC445BE4E50B -:10F3500093BE62767381CD807491DCCAE406A17499 -:10F3600001F6FAF858F704D8BF36A83D321EE0354A -:10F3700000C00F312E12FDE148C87FA429E321FF10 -:10F38000F1D88A51074C0E8847755F0DA8F1B4D9A2 -:10F390002AC1559D95E12F82FA4AA2341601FD57E4 -:10F3A000BEAD67758F6B9350DFB7E7D661DDE3B90C -:10F3B000778DAA7D46BDE43459ED82B85341EB7F89 -:10F3C00062FE21798FD4673DEB427022C6B0FE10F9 -:10F3D000C74A6EED0E95435CE641899DC149672F92 -:10F3E000B9209EA0C86077CCED64FBDFE7B6D92BCF -:10F3F0004D284F2596BF19EF4039A9ACBD5E067F59 -:10F400004F692278DEDDEC6C76DEEDE0769B0C78E1 -:10F410007FF96B5D9F79B91BB27BEAE8005CF5C6AA -:10F42000D821281D10F944513F27FCABB87CE5E7F3 -:10F43000C20B7DA4B5637BD9AF5C1FC5ED780D1DF4 -:10F44000F7F79EA06F41CF2FEB09DA612F4B26DC37 -:10F45000C726E8BA45EC2BF89AC585F3787DCE89A6 -:10F46000757F19C1CE8114F99830ABABD247D76400 -:10F4700021BCA2D78460DD7BEC724331C6D31A7005 -:10F480009CB5ECDCBABCD681ABCB4BE16A230082E5 -:10F4900013FB96E4015F86281D0CEE830E8AB35998 -:10F4A0001D94B23609F1A66CC013BA89624F47BCED -:10F4B000298F30FC1466333A17F96011F7CCCC0E63 -:10F4C000ACCC1E93B0FF6C8585ED3FE3FBA4935756 -:10F4D000BCBB0BF6753DC6E3CF075E1A86BF9F71B6 -:10F4E00061AD22411CEA82BD260FFCBD07385E9348 -:10F4F000956E62B326D2E701ACBF2DD8CFEA0815CE -:10F500007E0E96B2D6B11DE039362D8075C657B73E -:10F5100044F0A7275EB29DC43C1FB58B70DFF8E9AD -:10F5200017246117A9F4A1F0D7B47ED88FB3FF7761 -:10F53000FDAB27E372FA32FD2BA2F633E3FD85DF44 -:10F54000A8F52334EFF767FF105F485567F302C74C -:10F55000BBD0EF995C368AFA9BF8BE6F1236C3FEB9 -:10F560008CC9504BCBD68375489B248B17EC246DEC -:10F57000FD51BC2E88340E6175298D23D9791E8DDD -:10F5800057C255D42799A13E25B10E3699D5179962 -:10F59000A13E85DE6FEE779FB8A709BEDF7E9F4D47 -:10F5A000EC136771FB6AC2F3163B701F79EC966C23 -:10F5B000DCF733A19AC50353FD0619E8F2F9BFE958 -:10F5C0007C207763946FC1BE4A1DE47383BD65A63A -:10F5D000CFA1EE25BE4FBC86F4B94F5CD447897CE1 -:10F5E00071E6908D12E89F78DD4AB067FF387CB7EE -:10F5F0007DA907E3CDF13AAAEF125C67A590332607 -:10F6000035FE527CAC5FCA4C03DA19E972E029CCB2 -:10F610000B6EE936037FEECE2E40BC359787F11C8A -:10F62000E4D4E2368CE786D37CE7B29D3DF423E652 -:10F630004736B1F59F87FD6752CF77CF2FFA732EEC -:10F64000D853955D4646879A796C899F5343BF434B -:10F65000AFBA1C867FAFC6BE15575D8EA4AAE31352 -:10F66000DFEF6F9D821EBFCD6ED7D257A892E3E722 -:10F670007D7398D53FA9E9EBC0AAEAD127A92C3917 -:10F68000B8CA8FD7F366A94307754AE6D86C90804D -:10F690006FE6B4DD08E7999C4F8EE5C2F9276FE766 -:10F6A000DE7513B69DB1F7A17D2AE769D61E1C7BD6 -:10F6B0000CCE43F95BCE889BE0BC93F3F0AD4C429B -:10F6C000B2B615DC142A867D26D135DDA09F4A35D9 -:10F6D000F52E9A731BA02E13CF99B0327C66F0BA28 -:10F6E0005852C5ED77C854D176B3BBC40BF50C5650 -:10F6F000E2D9D30DCFB38DEC7C07C2EAB09A07E70D -:10F70000B3BA094EEF249BC7B3493404F4DB9C6FB2 -:10F71000C7F7E3F27A8F91E7B1D8F78F3EC7F6BD0E -:10F72000897A5F426C3960F7583D44D516E79E10E0 -:10F73000C59603E71C348B78216FFFC112B83A27B6 -:10F7400041FF1E9D787731FE8ECBF3F70E82F54E8A -:10F7500036A8CFC116D79772197D9CE7E7456EB3DF -:10F760000426C138C792664F82237867A65518ECE5 -:10F7700068A73DA50379E4E474619FC1E667AFF231 -:10F780004BF0FB29E2BC466740C1780009B4EB406E -:10F790007F3A4FFAB1AEB0CE14CB55287D194D81CA -:10F7A000E9399057AC397E17E615338FBE0F7520B7 -:10F7B00047F56D1352405FE4F3F333A8E317A2ED6E -:10F7C000435979E8F7C5CF771D2CA17C983A83ED92 -:10F7D000A79D423A148CBFD8D8FEAE49A5F9DE6683 -:10F7E000FABDA9BC8E64D2317F0AC40126DD16554C -:10F7F00058FE26A624D66D882B71E93D897C709D24 -:10F8000027A14DE05C6875FB06AFBA7D53F9D7437D -:10F8100012DB0388AF1EE0F8A214C5FDD6A1B1C467 -:10F82000C6D6C5EA139FE67EDB301731E541FDA45D -:10F83000430A815F306C6F26E665F696136CA7EF7E -:10F8400034ED3025AE7F83CCF2BE3C6E2E7EFF09B8 -:10F850009E815E7DFE9D748457BA5546790A117566 -:10F86000A0B7B22C9305E4BB8ECB79B13F7D628A01 -:10F8700009CFED6D5ECA7E37427B6E69B3DEF60A54 -:10F88000E0B1F96338928AFAD9C986889C02F8A255 -:10F89000BE8FA3471E0BFA81F1AE01BA1FC37E9F34 -:10F8A0008B52F9A0C473E39B9D6CAECDF7293CDF6E -:10F8B000C77E27A428FEBB2194ED687FB02909F2FA -:10F8C00009CBB7E5887512C507FDDD44B4D97EAF15 -:10F8D00074DE16E7A51252A1E0F94492E8D784ED50 -:10F8E00047793FA9EBF53F017D0C4AA1EBA1D7D7A2 -:10F8F000723C48DC3F958F6E423AB1063C4027DEB1 -:10F90000A4BEF71F75E4303B62624AB90BE2EBCD4F -:10F910006EAF0BEC2A011F715F8C2B9E8BEF79D39E -:10F92000FA1EF7352EAF3BF83E68EDF3977364F59A -:10F9300077F5745CEB377CD7A9FE6EFCBD9CBEDF0F -:10F9400013F7457FFC59AF32E03306B729BC6E96FA -:10F9500014A9EB5D48B9D7C4E4BDBABE65B2B4D250 -:10F960000DFC799DA9BE2B4ADF7F9DD3C96439F078 -:10F9700047C837BC3EBBF020F06735FC30011DE7BF -:10F980007A125903C472BE22F013FB409417C78049 -:10F990008F1A748121A9B4FD89BE6DD0D27CE4AFE9 -:10F9A0007772C6F49E9FA0C3F83C29FD01DE05FDD9 -:10F9B00069E72DE880DCD8810582DB4804AF2EC2E0 -:10F9C000EAB2A9FE62F5D79E9C9E7551E29C646ADC -:10F9D0001C04FAFDF5A610CA9FC9F61F611DDAF9CD -:10F9E000BCC03998D7CC919FE2F942C45583F61632 -:10F9F0009DEFF97FE57CA18208EE0B3B50D87BBDE3 -:10FA0000EA913F36A8EA91C5FCB47C2CE61124ECBF -:10FA1000DCA8095DDBD1BE0BCEB07A61DF4810EA0D -:10FA20006C4B319F8675CBFBB85F169258FD702FDB -:10FA30007BB1FFBA65764E41BD8D9D1F24CEA1FAE4 -:10FA40005E81385F88CD9BCA2F7EBE10B6DB6B3CD3 -:10FA5000E8FFC5EDC6F9CC0EBDB6D0D202E735F64B -:10FA60003E6788C5F7C85EA387DB89A8BFDB93D94B -:10FA7000773E31B33AF904394EA4F49EF3CF36EA17 -:10FA8000993DE8CDCD677941D95B06F8D802792B4D -:10FA90005DEF38E4C0F4C0E85CDA6F7EB12F177E0A -:10FAA0009A65AE81C519295D6DED26506ED7F8387F -:10FAB0009C0B7A1D697C4B1E88743516FACF1CF698 -:10FAC000293B2FB487AEC6E53A99DC0421F86D7C5A -:10FAD0007A322D3001C669B777BCD7500A794B23EB -:10FAE000C25FD4336AF937613E27F56C3E0E381F8A -:10FAF00099CEE7FABEE67329F49D48471984D1717F -:10FB00007F740EFB069247F5D0F90012B81DBE1B9C -:10FB1000A7F735DE56DDC03EE6ADB322DE6F9DC5EC -:10FB2000F231C12466A7425EC69D0EF127F6FD5B49 -:10FB3000D732FAB8D56C447A99D6558FF91752C591 -:10FB4000F2295EFA1FCC6726F14D849F58B9D93649 -:10FB50000DF781CE98AACEB7CC344DC6FCCE2D84FD -:10FB6000C5D36E9DA157FD7EA480C34CB2FE53A8A1 -:10FB70000F99A9F9DD482D5CB4F91A018FE6F26FEF -:10FB8000E6FBFB72E3799D219799D769C945F97422 -:10FB900069799D83FA189E23F09A73E1D6A5942F74 -:10FBA00086FCB818CF5B9F98BEE8F10DB4FDB32D6D -:10FBB0005760FBB5F43B961F85E78F1562BB4AFE85 -:10FBC0007436F04151D9AC29704EFD41331BC765E5 -:10FBD00009B4C3EF8EB846148C0297ACCA10C37E2A -:10FBE000D78FAC1F0D75355516D63E52F25FA3B0B8 -:10FBF0005DC0DBA35EBC02DA07A54F67F795171A55 -:10FC0000562445E0F7C5AA5259FFA9A39ECA8438D5 -:10FC10004155256B0FF356AC1D08CFE5CF66F7A510 -:10FC20008F7FC9ED63616FF939BFEFF51D6F81FDFE -:10FC3000667EABE4857D06FEF2E3EC5C3113AB4BF4 -:10FC4000F0FB4A143877B2D2C7E27B13AC4D6E900A -:10FC50007F37060CA510C7B559F35BE07CE701E5DB -:10FC6000156300DF13A81906FA8FF2D5F3C0CF335E -:10FC7000AFFC343705ED10355F09BA9D26F8A94A67 -:10FC8000CD37541E74313CAAF9818EFB0A8E7B95C8 -:10FC90005A2FC5E5BB866FB5F4D8AFDE276A391891 -:10FCA000D74F6B3A902EB309DB4FB40DE894F1EFC8 -:10FCB0006F617E06B9DB03F7F324EF1558A8D18FE7 -:10FCC000FD20E607660F19D57B5EF04711F6229BF3 -:10FCD00081CD960EDF65CFE97B3EF83138312FFAC2 -:10FCE000FD13089F356C3EDBA446FEFB22CC2E178D -:10FCF0007E6F83586FA77ABD6516B62FDE45A8DCE8 -:10FD0000C1D87DC915DF34EF20D7B3334CFE078D42 -:10FD100032FC4EE15CC4F36D24F41CD837EF58027A -:10FD20007F84F9E8E4D0FEA804BF0FE2C37C32C5AB -:10FD3000E3174CAE33BC887969E1D1D08F5CD5CE66 -:10FD40005B0B871EFC74A37DE6E6BF23185F9766F6 -:10FD50003DCDFC770462254655DDE9911A56572BB7 -:10FD6000E675442245A827250BE651E37127AD7CB3 -:10FD7000EB677F9CD0CF629E77F3FD595FCA4CEE54 -:10FD8000DDAD8BE03CF3AABBCD00C7F2BC02763EF2 -:10FD9000109F7F737908FB1964A9CF3C71799E2C61 -:10FDA000F260A4CF73DC3CF956E08B3B4DFCDC3AAF -:10FDB0000D5D104DFEAC3F3A11F1BB4AEEB7C4F3F6 -:10FDC000A99A73E2E698FACE9B4914BE59A9BDF1EF -:10FDD00020F2693768E374D7B1F8D50D3C4E37A1EE -:10FDE0009AE127754532FA75A9A5471532BCE73C5B -:10FDF0006B81AF0B8E40551EE635A263208EF0E678 -:10FE0000989F611E499C1BA9859F3F4F16F1C64BC9 -:10FE1000E297FEE6FF078B7F3A7CF713A91BCF839F -:10FE20001BEDE6E79192403EF093DD965F01F1070E -:10FE30002A772F5E0467141E51FCEE74066E87F756 -:10FE40006E23FE8950EB9D5A1DD0B3F83DC1F8F1E9 -:10FE500032EE474EE4FAFFB367D87EFD2ADFD04783 -:10FE6000C7837D7A584FC21EA81B67F0F96CAB0E92 -:10FE7000F5FEC23746BBC07EFF80D3E3904DB2EAA9 -:10FE8000770887862DAA733D86ED4C55B587776434 -:10FE9000AAFA8FEC2C503D2F895CA17A3EFAF0280B -:10FEA000557B4CF73855FF2B8F55AADA63A3535473 -:10FEB000FDAF3A355DD5BE3A76BBFA5C9290AFBBEA -:10FEC000281D7E3F81C1E3DAAFE6A8FA9F49997405 -:10FED00018F872DE7A56275E4196A8DE5FA2ABC3A1 -:10FEE000FA6BD2C6EC9C46FA1FDF17AF607D1AB5DD -:10FEF000EFE1A701166E52DB41B55D1BD6802CEEFB -:10FF0000751E86C6DED1DA37431C35706C3679240F -:10FF10008FFFAEF895E44AFEBB345ABCE2F9029F6B -:10FF2000BDA5433F63D91BCCFE5FB68BD5DF1592D1 -:10FF3000C10370DFD9611D094B70CE42E3C6F15297 -:10FF40008F9DA3858BD1A5C6B3D9A3C67352911A31 -:10FF5000CFC95E359E0794ABF16CF7A9F19C56AD05 -:10FF6000C6B3D3AFC673C64C359EDD01359EB36AAA -:10FF7000D578CE6954E3396F851AAFF9A1C5AAE7E0 -:10FF800042AE0E6C5DA6BADF2C759451494AE6F973 -:10FF90006BF17C89C16DDFEF933E04FE43F43FC6F5 -:10FFA000CF8D58CFBF80E21FEAF9BF20EB0F414A47 -:10FFB000564B070D9D1B30EF76B974F0761EB75F78 -:10FFC00005FE2FD17EA5FAF2BDBC3168E7BC0FF269 -:10FFD00061E610EE97F8FBB67384DC4AB42B12FD91 -:10FFE000EEFEE4592F3DCAFDF07EF5A8C60F7F074F -:10FFF000AA9FD05E5F8F71AF599CAE3F875B632134 -:020000022000DC -:10000000EEFA2CDA07EFD08994D379BD03F31E0101 -:1000100076C2308C93DC41227A3C3F1C2A4675A87C -:10002000BFB04EB386DAED709DCBED87F93C8E62A2 -:10003000340588C789F193BC74F86E7637EE33FBCC -:10004000BF17F44F2B008000000000001F8B08003A -:1000500000000000000BE57D097C94D5B5F8FDE6B5 -:100060009B2DC92499241012026126210B908449EA -:100070005804451C9660D4806193C58833498090AC -:100080008504D0D7B4A5CD40C2A28536B4A8A8A80F -:100090000302050B345804D4688745A44F5B636B97 -:1000A000AD4BCB4B0045F618B4D23EDFF37FCEB953 -:1000B000F766E6FB480AF6BDF7FBF5F7FBE3EBBB9B -:1000C000B9DFDDCF76CF3DE7DC3BECED38C612196A -:1000D000FB06FFDD717DCA988FB1DE8CFD01FF84C8 -:1000E0007A231C455607E4275A1D0F3D069F8E189C -:1000F0005879B30DFE28847E46436A2CCA9E96DD4D -:100100005D3F2BA13163AF2A1E0F1B0EBD265A5D2A -:10011000DB15C68624316B622C1427F853A64532B2 -:10012000D6C761A07AF04F61F18C0DB6D2DF6C4F6B -:10013000DFE6A531A9F8973FB628FBDB8F9BEA7075 -:10014000273B4604EBDF68BD6673F3129C6747B537 -:10015000CDB5D5C9D87B5804ED9EBFCF1250A3189A -:10016000BB62B2AD55A219FB2062DEF1DE0EC69E67 -:1001700009F764215C66CFBA6B35E69523718EA5CD -:1001800030BF2BDEB6910CE66DB17A5C585E65F53A -:100190000C8887255EEAEFC98856A1CF220E7FF82A -:1001A00023BBA8DBF9F3F94C50F8F89F847B46E3B6 -:1001B0003A8E185A935D080F63EB486CC76CBDA963 -:1001C0009F4B660E979EE0303EA27F31AEABCC6275 -:1001D00071A9D0E77885E3F54CDC83F36AE0CFF9C9 -:1001E00086A2F880AA99F79D346FBB7740620AF423 -:1001F0006F12F3B6F6167077641545F63CEF06EC11 -:10020000BF17E47EA0F8B73B392E317FD017E37FCC -:1002100014F216C3D5F7A643BE23DBE0DA0A459BEA -:10022000C3A1EB3CC6DE11F07EC604F958FABE1637 -:10023000BF2784F3F6098F1BFC0DD0BE68FCCB846E -:10024000A7E717DB683D5EE63033985F29739B7143 -:10025000FE9F8CFBCFD7DA001FF31D1E0FC2EDC12E -:100260003843F27B340FCF90A9306F36E6E6E89F33 -:10027000B175063692B16976BE84F9026ED399DB08 -:1002800084E3CC641E138EFBFBCB663703FAF83D88 -:10029000E098C17C67311F7D9FC3FC94DECF025480 -:1002A000FF01D646F9772372FAD7C1FCA63E919199 -:1002B000C60C1AB8FF1BCE17E8E5C15E9C5ECEF6F1 -:1002C00041B86FEC7D53F43B55D00BF0EB0FB11FF1 -:1002D000E0D7E1B929217C3391D30B33DAD3FE1176 -:1002E000DFB47646E5B0A19877DB1261FD770A149A -:1002F000DEE9AE2CC475E6AB36D60BE0DFEA50FD86 -:100300001618B3609CB72FAE0BFE45FA004F53DCB6 -:100310002A433CBFB902BE40BD3773553FD2C49497 -:100320004D93CE61FBC271D31BA361FD93BE6E1BC7 -:100330001E80B4A09FE9545B261FE31BF8DF976C77 -:10034000F3C41848EF4ED8676430FFBB076ACB0B85 -:10035000B3206F0DE6A73063B01CC63D8C7000FA69 -:10036000A9FB73EED86321ED186B52916FB63A2258 -:100370007B7D3A04B283D9E06F70DE6A71B4A71B4B -:10038000FE91E957F5AEB1C78026EF51DCBB1C44A6 -:10039000170E33D27F8991B9BBE3BB8B698AA01F4B -:1003A000C02EC8B37BC55C3B0BAF9AAFC07ADB1CD9 -:1003B0009EFDD8CFD2C99FCCC3F53123FBED308051 -:1003C000DBE2DF01DCA0FC543D403E03F8B3DECAB3 -:1003D000DC16C63EADB753FEB3FA044ACFD73B286E -:1003E000BD589F49E597EB5D9467CEA2D7B0DF92E9 -:1003F000B59F1B3D598CAD099378E4F35826E878F6 -:100400004DFF917F72C1786BDE3651BEBCB9695227 -:1004100004A4CBFA9F5A1901DF97ED525CF8BDB2E4 -:10042000C56DB6211F1DF3AC46F259F876DB1414E6 -:100430003BD5D714E601169A3DB0E82D1C6FC41FBA -:10044000CFC423FCCED68FA2F99CAB77D37CDC2D16 -:10045000EDC7E3A0FD85FA02CA273A8BDE45BA74E0 -:10046000B3CFCD587FF2EE76631294E7BB1537F227 -:10047000F75837F3FB017F9B4C7CBFD804FB05F298 -:10048000FBB8EC69CF3CC4509E7B3EC6F166C69675 -:10049000E6C7C1F729A3BC46AC37EB6BC6302FE9E2 -:1004A000FBC67CCDE1512DF072E97585E074E9C0A1 -:1004B000907B6F83FE5E3FA13215E6D579CD40F388 -:1004C000EAFC20DC0F3B5357BDA52FA5F661364C47 -:1004D00087F46159B83EE804D69DA9180D75C0FF90 -:1004E00017F67C2701E12FC7BD10DBFCD78F50DE4C -:1004F000FD85CB3BC69A3F7D0AE561BF04D7A3903B -:10050000BB6C62B3893F596D04EE878BCDCCC3F3CE -:100510009E2198BF10CE1E2C82FCC8BD49E3917F5E -:10052000703C4746509EA5EF7D22E5FB8EE0783B70 -:10053000F63CD9F98A03CBFDC4CFBBF63ED3F769AD -:10054000C855ED5B158EF37A15D6320AF8E3D50D52 -:100550001124B75E35B94ED6A1BC7EC6E6DA0EF5DB -:100560007EFEE3EF9E3A84E9FAEABCEF421AE38C9E -:10057000A57ECA7EBA6830B687FD9B25C23A7F71D8 -:10058000500984E53096BDF1F0CA44186FE8E6766C -:10059000435F4873B7290D980EE95F7002F7CD3EAF -:1005A0004E07C17DD86EA79A846CD7D7FFD11DB4F2 -:1005B000AF6BF7FBAC8D9F8FEFCB82FBFE60A5F995 -:1005C000FC0A27D2EBFB791E824713CDE3A596E9FF -:1005D0007FB89FE13A40A3C0797BCD2EDA6760B93E -:1005E00026C85FDA9FBAE55158E301836F0BED43EC -:1005F000255CEFB854E47B12E9A51AEAFB205F9D65 -:10060000EB8BBA15CAABFF32D00594C1FA3F7B67BA -:1006100001C263F1FEC726F5857A97C6309702536B -:100620002F7FE9EA246CC7FA3386AC7D697F43FCEF -:100630005C68F7A3ACF123904E8AD4661A87D5F094 -:10064000719E10FB176B03E0C40B92837A3F82CF3D -:10065000F83DB625E670120BE2A7A66585D308ED36 -:10066000877BAC2E15E9DFE94BACB505F743D8C75E -:10067000463B91B4CDA25FFBF4E4A26FB18F99C564 -:10068000BE24FB7BC2CC7C61D04F7FF8AEE03E6BDA -:10069000E6FBEF76900F48BF72FF8571EF728EA078 -:1006A000F66E94A749B0D9E6C23C939EB0903CBF89 -:1006B000D9F1A5DE5413CEE591D43F66C735BCD63B -:1006C00006EB3D1EEE9989E3CC17FB3733BA1C28A5 -:1006D000A7F784BBEF73D27ED8918C6B80FD712E0F -:1006E000E617ABA04FA586E853D69BDB1F3F0C77E0 -:1006F0007BB0FDCDD6D7CBCD655F1A582ED0C1B219 -:10070000C72C7E06F36E40F90AEB6A881C694539EE -:10071000C08E19AA8EC37E793B6FD9D5DFB2C83C93 -:1007200092130D8C750BAFD7819F3D203F0220EFB8 -:100730003DC0D763AF75A89CDE5B8F460F4779C974 -:10074000DC91403F775C33304FC87EA6EF07F05511 -:100750008FEB1BC7229827647F74B31833F22DB335 -:10076000C5FE73EB16F31F23F037A6F38308947FBF -:10077000CBBECC2339D8D3BA5E13EBFA35AE0BD24D -:100780004FD28A36201DDFFE85DD88EBBBDD383594 -:1007900019F51398F71338EFB15F18B4F3FE3A5C0C -:1007A00093BFD9F93FAC309F01F9F173B31FF9B191 -:1007B00005B7398063CBA22C3FF2FD0133CFFBA2FA -:1007C000CCA49FB644321FCA9196A9F17E9F13E52F -:1007D00021E3FA6B6FC6CBC344FB39F1D4BEAF053E -:1007E000408AF2E0FE70D17FED5BD958BE2289E4E9 -:1007F0004883C9BF3605FBFF81EADA0E78FBC06F7C -:10080000F099804E36C604EE57A1DF8D9FC7331C8A -:10081000E7031648AAC171CAC349EEDE66303C3808 -:10082000D586F5DC89B100EF03FFAD92DCDF980BD4 -:10083000791BC9EDD9CDF07DE354776238F63335B5 -:10084000DE40F351592D7D77F2761F9978BDB902BC -:100850005F1F0AFC005F13DF7BA64418916E4F3ABE -:100860004BDE7512BEDD890ACCF7A9B234867273ED -:100870006EC55D4EA297A627487ECD163890FD61C5 -:1008800003EB48D47FF9BF39F3B787213E679687DA -:10089000B5C30EC93E285F19E980F6333D6AC00230 -:1008A000F294CDC87777E9672938AE9BC6AD6E1E46 -:1008B000947A26849E4B2C2027A0FF43619E0F88AC -:1008C0004F0FE552F921504EBE017E3A5596B617AC -:1008D000F98A95C9F35FA014F1F07A8795F4CD9E5B -:1008E000E8A101E13F54D029E26539C73BE85D94B6 -:1008F0006F983D98CE25CF9938DDF8F685115E0BBF -:10090000A65909CF9DB3C3B758A0FC4121B71A66B9 -:1009100087BB15A8D7F092C56F70D27987EAF95EC8 -:100920008BA47EABCC3C5FF5621AD1D301B37FD7E9 -:100930000E2C7F3D8CE8A12A8A8F5BF54A92A03766 -:10094000B773158EFB9A85E8A02ADC114DE5FF1ED2 -:10095000477432D9EAF91BC20BE8AE16F5822A7346 -:10096000203D06E07B52D0D5496883F8F3D546D2C6 -:10097000BC89E521EF69E8BF15F1E931F372F63D75 -:1009800095CA4FDAF9F827D7F1F18B7F52F9360380 -:10099000BC9D2C9A94381FE671B23682F4BF3FD7C3 -:1009A000A90173149E5F3A1E4F877A97979F1EB9CD -:1009B00009E6DFB6F2E364A48FE295D585D8AEB838 -:1009C00062F914DC377BE2CBE22A60FE103E4E492E -:1009D00071C7A4C07AC6A6787A615A93D5B600F5D5 -:1009E000E0CBE6D667F11C9114E7E983DFAFBC7C6E -:1009F0007607D78F3BD2713F586CE4F421F7D51AB4 -:100A0000417FC7533CFD53709F080FCCC3FD232289 -:100A1000AB95CBBBE53727E7CFB76C3FA0C0389588 -:100A2000E12D8B2955FD39D8CF052510A5A412FC41 -:100A30003CC84F17ED812884BBC7C0F5B3CA9DDA07 -:100A400075E13F23CCAB12FF807695CDAA3B0C71AC -:100A5000CDFC669C7F253307EB3B8378827E084F75 -:100A6000CCF6E779DF07F857EC1A9487E780CA9845 -:100A7000433FBE8DEA413BC927EAF579B99EEBE7D2 -:100A8000C3D77751D0FF4549FFB3CDF25C4EE35F4A -:100A90007EB90F8D7F61AA3F1DE17F5911F576590F -:100AA000783DA00623CEF3979C9E1E37F90CE17487 -:100AB000BE6744CF9571CD23112E520EC11C7C060A -:100AC000A87F616F12D597728B153186ED2AF726B4 -:100AD0006EE5FA993897E244A17EC52F78FF9847D2 -:100AE0003E3CFF4292188FEBC77AFCE9D75B9C62D1 -:100AF000A0F53E2EE577A4E47357C254807FC62646 -:100B0000B3A6FEE548F3836EE877905FFB5DF65F82 -:100B10009EA2907E364087B7BE6AC7610BF2D3F3C0 -:100B20008CF8553FAF9A147EFE7BE1852E3CA91CC4 -:100B30006FA0064AFA70703DDC8470FEB00B1F0F88 -:100B400025815CAD4418A404E17320D79384F2FF9F -:100B500032E6715F88817C16EA411CDE322FE1ACFF -:100B6000A7B3951F2E486A83F64F09F80042FB2071 -:100B70003D76E92F26385F64E1B9B27CD899343CE0 -:100B80006FD60E82ADA06B3D0B36E55A919F166E67 -:100B9000CEB59684E0A161E7B0130E80F3C59D4603 -:100BA000178AE506A3FFC7A84F37EC549B7D8CCA74 -:100BB000AD08DF8BB623BFC37A0B36C7E4A1BE2CCA -:100BC000DB2FDCF4F0A0B210B80FD9A9C54376B37F -:100BD000363FF49036BF0D6543EF6FDF2E37A0CD63 -:100BE0000F3BA1CDB30EC016E041B5723C1D1CE514 -:100BF0003AE1003C0DF0AB2EFC34C0366DFA64D403 -:100C00002F36ABAE34281FB0BCE89E6CC87FB679D7 -:100C1000BE0BD15CAEFA167F1F7058FEF1A413B85C -:100C20001F5E60CDEF4F063C2C68D960363A70DD10 -:100C30005ABA3D6010F4FA02B7972DF26BCBAFE7CA -:100C4000EB15D25E9A194A4F7ABCC3B8F7B9614224 -:100C50005575CB869D812DB3BC10081D6036BA79C1 -:100C60008319F5B61B8FE3E3F462733B101EDE516C -:100C7000BCECD6BA09ECF430F863DDBB9370DEDE71 -:100C80001F29A437787F95710CF781F67D73EEA646 -:100C9000F4BE025ABFB4CB2D6C51029190B78F7243 -:100CA0001C6A8376F3FD8A0BE75DD26809CA33F8C4 -:100CB0005FD93ADD3C368694C3FC171E3AFC3705F3 -:100CC000FA2FDFAC6DB708E42CCAAF8A6DDF58424B -:100CD000BFCB73E3AD2D5B545CF77C397FDF588667 -:100CE000EBBA955765BD847E730633B06FD4F62E8C -:100CF0003A8BFBCAAD1B793B10975E5C6FB5CDECB0 -:100D0000C0F5565B592002E67122D2ECB6C3F7ABB0 -:100D10009B22C91EB6C002FA641EA52C2C0FDBB99B -:100D2000A2B1DDA7EF70BB58751CC777F5730A9D9C -:100D3000A3AAD18889F9E7797E110BD03A904EDCCD -:100D4000A1EBF36BF3AC899FBFAA8C81C3088F0A18 -:100D5000D6C6CF4F8047B7841FC0AB0AD6F9412C07 -:100D6000EA5BBAF6CCE5C1716B6C5C7FAA39F48D95 -:100D700025B45C9E03E53955DA699F4B2F0AC7718C -:100D80005629EE27AD30CF5542BFF66D0823FA9DA8 -:100D9000BB85EF37A0C7A6235C366E4874A19E3191 -:100DA00017F4F230E49B45E1540FF45DB2AF748068 -:100DB0005E8DF6F68D31CD01DC37363EE6243D1AE8 -:100DC000F45F824BC7FA30FF5605F560AEC76CDCA6 -:100DD00090417AF8AB729F5ACFF5AE6EF4622A67F3 -:100DE0007DB81EFF112E25440F4E8DF7A4A586ACAD -:100DF000AB6CA53B11F79DB2696603DA9D58F9CD3E -:100E0000F90DB60B3DB203D68FEB38A3141D378412 -:100E1000E8A32353F93E3272BC7B87A847FE853294 -:100E2000C3D447EFC0F11E373870BC2E78BBDDE964 -:100E3000388F331BC2F290CE468EE7F69F93B95C93 -:100E4000BE470C676E3FA477887EEF483568D28432 -:100E500070A03FE8E74C3EB73B470E2F227B1BECD0 -:100E6000D524E7F5EBB847F453662EFAF7DBBB99C8 -:100E70008F840F9BC8F585334B94AD7C5E805FC833 -:100E80008FFC6918D9E9CE88FD47C219E86604D9F4 -:100E9000DB85BCDA20E8658389D3816F113F3F058C -:100EA000E985113D6C14E7ACB902BF6C3DD76B818D -:100EB0005E389CD7270A7A61ECEF480FF90EAE67CF -:100EC000DFE47909F05E9ADAFBFA7393C43733FAF8 -:100ED00047FC23FF46F5C13D077CB07F56FCF2B1CD -:100EE0002806F5CE199BE25DD0BE6AFBAA2837A47E -:100EF0009F197D517618FF9C5F2DF077036FBF809F -:100F000037DAD715903F8BF14F07EA3B3F9A82EBD8 -:100F1000FBEB76931D4542CD4E0B9D9F16EF5F4434 -:100F20007A36E4DB797ECDE72AE60F69EDE0153FFE -:100F30007F2CDE41F0F6251912300D243148176F51 -:100F400033B902685F7E4F75C130A03777ACC6F900 -:100F5000E9DBE33CAE01BE6B9A55AF39FAFAF21AFF -:100F6000215F6AF6FFE873B4EBD5E8ECEEE5C2FF6B -:100F7000A0B7BB37A546F6FA140DCCB7B05B500F3F -:100F800002B8B802C8B7309F3422136EB76DD8F5D7 -:100F9000444E3BEA0BDBDE8A52B2827677E997E871 -:100FA0006C2E7D0EED9A3DF1E36561870DE28BCBF2 -:100FB0002DC7210565001CD0795A650A44DD06F06D -:100FC000A8DA62223953B5E7F91D4F219D7D68A14A -:100FD000FDBC72CF1BEFDF8AFAEE3E53AF42BE0C70 -:100FE0009B121FC4538D83DBC9245E2A7EF586D9EC -:100FF00091CDBF2F8F0DE2A772DF6133CBBE1E8E66 -:10100000139A0F9BDB6CDDE0A9B97D12D989767D3F -:1010100065463E38F7BAC2FA38AF6F5FBEE58D2835 -:10102000D4C7104EB82F497C75E14F571FFA9FF275 -:10103000CA70AA67C773454FF85B827B07D17724D4 -:101040008B81F1CB3FB2F80B11AF7B9745E13ACEE4 -:101050001A6B399D3FB32A1EF5BA72932FDE4E29C3 -:10106000FF5EFEECC3447F0B95DA787B16D177A246 -:101070008174065F22AE6FFEE699B4BE05CC43F4E0 -:1010800057FE8C5AE487F44B232BD8D70D9FF41DC1 -:10109000C8F9E4EC56402AACEF2CDA6D506EFC5ED9 -:1010A00015E7DC25B47F3F2CD6CAD852CA7F29F475 -:1010B000B64BA95D7E656BE879B166DB9A56C4CF05 -:1010C000F9FEEE3E384F80834FC04BF906FA55DFEC -:1010D000CDEFC3F1C31CC691A21DECA313F03BD608 -:1010E0006F35B9D1EE1DD24E9CE7F8F80F89F1614A -:1010F000DEE1785E3D1BCFF576FDFA0A062AD2DEE8 -:10110000D6CA42E9AB27BEDFF608D1D517EF71B9D1 -:10111000B2D83FB580CA5B4D813E58EE3F3C43217B -:10112000B9606181EEF87A9B49F0B5B61CE6695466 -:1011300042E1FB3AD7431780DE1508E1E320DD9852 -:1011400083DF69DD3F15EB6823BF98F4A72D14F208 -:1011500040BF6EBD7CE83550F8E3847C90EDD9E665 -:10116000EEFD3941B9E0A371AB603F413DA3EA43D5 -:101170000BED1B557B4C45089F0BBB8FBE3F17CF1C -:10118000A1CD928FB5F256CFC7E52F8EE8968F2F5F -:10119000ACCBED9E8FE17BB77CBC4E21F9F63F9541 -:1011A000B7B0D391DDA0277E5DD883BC1D3B502B0B -:1011B0006FBF6459D1B761A1DD3B80F0A383AB84DD -:1011C000A75E7EBE9FEA20F8EAE527C3D0881038E4 -:1011D0004AF849FA64CC43E374D1B1A45349C75DDA -:1011E00074AA5FAF168EFA72C34046F3297AD9C447 -:1011F000ED672D0AE9DBD0EE78D270E253376D7FD0 -:10120000ACE97852AFD0BC5F976FD6D577EBF2459B -:10121000BAFA1E5DBE5653BFEAD051333F1F0434A5 -:10122000F52C75F7D039E37A3DC2CFFD3EFB3F3751 -:10123000FB902EFA7598512E9A56325F24EABBAF76 -:10124000A9A4EF5E717444A15EB22A8CEB6D57ECD9 -:10125000221FC3F31DBDCDAB512ECAEF1D61DC4E65 -:1012600072A5A8232A26E49CDEDEA246A13DB6CDC7 -:10127000CF0ABA8F136920B8B6B19ECAB9FE96AF2D -:10128000DA92EBD01EDAA4BA804C58D98A5951149C -:10129000BFD0927AEF6CF83EFF372A85015C09E7F0 -:1012A0007605E6731B317EA094A3907DC67C8F8F5C -:1012B000817595B6F03882B2755AFC2EB0CD880E85 -:1012C0003850EE68FDFD0BF15C978AE73DEDF70ABB -:1012D000B68EE8AD42C7171E61A7D5F3C516C9176C -:1012E000B92C57D863C8CFB154C8EB7C35EBDED9E5 -:1012F00000FF2B275466817C678BCA56E37A772BD5 -:10130000E4EF418700F2DB62E04B9C8F84CF45E441 -:101310009B8C9EF5928B2FFD65E4F7914E0E7C9C85 -:10132000837ED88B073E4C7F15F307FF94FC31BBBF -:10133000BEFE84D7FF360FE5F095D72D0CE9FBCA2A -:10134000EB6F26A35DF0CA2B163A2F5F5969E1F6C1 -:10135000E6D723FDE88FBCD29FEBB90DAF7D95D3C7 -:1013600046FB6E23E1EBED8166AE37B5FCE749B491 -:101370005777B6C0AA509F783D82F8A7E69530F21D -:101380006B5F79EDAB91A1F10FFFD3F548FFF595B8 -:101390004836FB45A45BA1D7D7BC3AFA79F4E756A7 -:1013A000EF3F6C2E85F209BFFEAF1C949F575EE4A1 -:1013B0007AD26553DBB3686BFCD3C0393F3525A2C5 -:1013C0007D0E3AEB0BDC96F6E434E493EBE1C2E1FC -:1013D0007005E080EB02B894A3DCEF091E97FF656F -:1013E000E1F1F93C2ECF6E61E8FF0DC245E17E844C -:1013F0009648BF55A1F5F3EFAF7F9583F2E646EB34 -:10140000B5A59989AFFF7F59EFE0B47F55FC727A9B -:101410007F71A083C7F5E9E8FE7ABA3EF86F94DFE2 -:101420001BE9A2F9DE24BFDFFD2FBBFEFF1B7C976B -:10143000FFCBAEF746F8FE8DC077A41DFD8A575E40 -:10144000FBAF64F62DD6BDE65F96AFFFF1BAA5BE41 -:101450003E5E759DC885FA6FB1E6F75C4ED23EBA26 -:10146000D53BF6A7493B093F1F4D607C9F9E60AD71 -:10147000247D7342BFF5A41737B03CF243F8FAA9B4 -:10148000E48FA1E00B80C39B09B97EF2271903FD0D -:1014900096417E7C5235C55BE9CF8D13C22717A0DC -:1014A0003E7A7405CC0BFA391A69B0A3AF78623F63 -:1014B0003560C9A1B41DD3E3C9F79C40BD65A24DF9 -:1014C0007B7EBA47771EBACBA12D2F602FF642FF45 -:1014D00059419689F9613E93B07EC8B9F1A7697602 -:1014E00082CB5DACA9D16EFBF6703A23E0743D1C53 -:1014F000FE31DCAE839338271B457D3DDC8CB6473F -:101500005BB19D91C1B997AF97CECBF2DC7B2378CD -:1015100032719E368AA1257C8DFDB89F34A45F82EE -:101520008B84FBB785B7C4931EEE12BE126E7A3C55 -:101530001C446354EF20FCFB19738DC877B70B3D37 -:101540007EA23186E7FBB5AA45C48F7E82FB842F3D -:101550005C46D44FC6D96228EE9239FAC7E07916B4 -:1015600055CC6F92182B1915335281F5261999CF46 -:1015700002E74DF4A1911DF511A37FA513C7E1F674 -:10158000DAFE466E9706EEF685E7517DB719F2DE74 -:101590009F2D646EA8EF4D622E85D767D1B1148E52 -:1015A000C6548CCB8214DB79A379BFDE3ECCBF92CC -:1015B000E393F082C726B45F40BF6E432C6F1F9544 -:1015C00047ED7D06DEDE6D8474402AB7AF77ACB29E -:1015D000D0F9C3BBA67F3ACA8FC2F15ABB71713A28 -:1015E000B7ABC8F4CD74CEEFAAC195807A7149E348 -:1015F000203A0FA9E145D52FA1BD7F6F04D1A37774 -:10160000F5039347E0FCF6C6B9707AE7A7EC1BC96F -:10161000EBCF79F88FF0DDB3338CBE5F48F7F44938 -:10162000877ECF2B8E792FC187929947CD09308441 -:10163000A779EA25B4FF4DF1EDFB1DFA19A7CC50AF -:10164000A9FE14C6E32B596304F9A327FB3E3726F2 -:10165000407F93E1B081E5ED61F6E425307FAFB0E6 -:10166000F7A6A673BB8B1ACE3C2FDA705EFDD35360 -:10167000E0FB64D67D3CAF57D61FAF6C46FFD080F1 -:1016800009DC1E2FEB633FD8EFC274EE5FCD117003 -:101690009179802BD52F5B6B694FC573CF5A53203F -:1016A00003D26732C7E7A54379610A9BB409E1FE1B -:1016B0005D956DA5F97678C9CE1D99E9403C788095 -:1016C000A429BEB0C9E940BB57FBB8E600FA07DA67 -:1016D0009F74BA1A1C84658AC791E7ACF671818140 -:1016E0006897EFC8E57E8693F6B6483C1F96DAAC5D -:1016F000149F23E37AE6DB399F0F68685B7F0B9EBC -:101700003B1F535D5B213FFF31EE77F9C466F52B3C -:10171000785EDBC8F994ADD3C6F130BB8BEC3DA548 -:101720004DE3CC78BE2CB3B9CDB8CE8A0C4F11AEF8 -:101730008B7D0DF01B89719C8C98C1DBE4A538135F -:10174000350AF80EF9C4E888C273AF3E0EA846C445 -:10175000FDC8FCA130CF1CECAF24DAB117E9E55489 -:101760005D2AD93D3709BA2BC43846F44F18DB122D -:10177000713EE1F81DE05F186B4FB7113D87318472 -:1017800043BBC99E8EF4DDBE2ACC807EB6C2959C3A -:10179000AE81CFAC4668FF889185A3DF2043B42F8C -:1017A0005E612CDA02F97E56668C8C45BACA25BA7F -:1017B0006ECBF4E4207D7EF603360AE9A174DD06E3 -:1017C000F2AF48BA60C6D6897130CE67DB9D792802 -:1017D00037251DB5658EAF4D0FA587190AD101A418 -:1017E0008753891EA63D8CFD168E0F0C5C9A85E7EB -:1017F000D12AE6C6FD3D81B9504FE8641DE47FEC77 -:10180000B4991D68E792F244CA0DC0ABDB1A1FA45D -:10181000831DB0DF1B4D8CEDACB752FA42BD9D1954 -:1018200041C6EDAE4FA0FCDE7A07A5CDF599F4FDDB -:10183000C57A17E5F7D78FA2FC817A37E50FD51760 -:1018400050FA4A7D117D977209E0427248CA152903 -:101850008F4A6DE676F4474AB9A4A79B7900DEB1BA -:1018600079D49EE49E9477B80E435E501E49FCA640 -:101870002845BE0427CAB1B63988FF7CF5E29E83AD -:10188000782E2FB7B9E89CCEB8DCEB047A45B824A3 -:101890009BD921B4BB362C71B7AF7106E17F7FB9FC -:1018A000C28C2174F5406D183386EC1B0FD6C568C9 -:1018B000F2C5757F78A30FF45FD1CBB30BF176F24D -:1018C000879F3EF327F8FEDC0FCFA721BE611EDB0A -:1018D0009FC071978777CD2316F38D26F2470D9021 -:1018E0007610F8877829619CDF9EFBE1DF89BFDBFA -:1018F000EB2C0ED4873F423C015CFF2CF054526726 -:1019000021F879579DDE7310F97CB999E45C49A3FD -:10191000E0C3B500CF10FFEEA94446F608D0A659A3 -:101920001DC0EDD40FCC8108E8FF94C2F95701A582 -:10193000A018E3FED6BEF901F2BF527782FCE71E83 -:10194000AB8DEE35319FE962687F4ADD71AAC7DA57 -:10195000FAC5A0BD84F6B13BD0EFE8363B60DD4868 -:10196000D388B792CC232C11FD264D8A1DFD266508 -:10197000E27BD95A85FC9318773303F4BE77D355AD -:10198000C26364BA91D2CA7426F4BA26DA9F24BD1F -:1019900096AD8376C8174DB9E6052172B8447C2F01 -:1019A000CD34502ABFB78B7EFBAECD9D8DFA445F00 -:1019B0002CCFC2346F36C2B7AF6D925109C1FFC789 -:1019C00038FE089C071FBF12910AFFF768668A79E4 -:1019D0007E16E287EF5F729C92CCBCD518C759B2D5 -:1019E0006E1C4A5FD6607225F4827A67BAFAE17A91 -:1019F0001BB3F278E5AA1EF60F693FFB0CFF1C4DE6 -:101A0000EB26BB6EC5DE5FEC7D057AAEF8D842F8FA -:101A1000AD182AE2A7B2FC23A793A1516BAF9EF8A1 -:101A20008BBF4491FF613F8FAB8494DB53979773D7 -:101A3000FBAB0BF8AA1BFFCFB1BD1F47756BA7DE31 -:101A4000AFDE949DBA46F93A0AF507B99EFCD7BEB7 -:101A50008CA77928D7C8FF53F3DAAAF8EEEECFE8BF -:101A6000EDD55DF66C61B7D397EBED757D32747E85 -:101A70000123A3FB58D25EC7D4AC68B4EF7F29EE34 -:101A80006BF474AE91F6ED9A4DD0491CF0A7D111CC -:101A90008DFEAA2B3DE8D30F66F0FDFE92B0875F66 -:101AA000D9ADD239E7CAEE48E2A7C5BB7F761CFDA7 -:101AB000878BB729348D6AD64A700378326BE83E3B -:101AC00086F16671D7CFBBD39F168DFB48E52F22D9 -:101AD0006B91CE16352BEEED309F4EAB23BA77C807 -:101AE0007C6ECBE0745669691E497016F3CFCD70D9 -:101AF000D077596F51CBCFC87E0CF52E931EF4CB07 -:101B000008F4F523BC7F87F3BCB079980BFD7E8B7E -:101B10009AF72D263D6277841D8F0CE7459CB0EC2B -:101B2000E7CE0CCE9F776670BDE582F0075DD8AB3F -:101B3000923CC379227F9D57B4F1789345BBC9028B -:101B40006E9F0BFE92F51735B7470D84FA670FFDB0 -:101B500081D259625D8B6CAD39B8FF9EDD1F41FEAD -:101B6000ACB3FB9F9EF42A8C77A9795C2FE407D94C -:101B7000FFFC0C13D5BFB4592D4078313F8F7BA9A2 -:101B800046F80E0B9D67DC169F3394EF78DCCF850B -:101B9000FDBF8A326405F1596DF558F15E63CD7E63 -:101BA0006F11CA8DCF140E4FD3FE713EBC8F54D32C -:101BB00092CB909E89EF12A9FE5A43483DB3C94586 -:101BC00042D17868AA3B89E02CEE13897879BC1F52 -:101BD00087F267E9542BF927E60D75CCBA1FE5E4C7 -:101BE0005B268E977E8E27507F9BF74E1CC54D2D12 -:101BF000753A66E1FC97BDAB52BCEFBC61420E2466 -:101C0000B48DC0B8C5AAB50A73C33ADB9D5C6FA892 -:101C1000F2ABCC03F9BE400F3E00C5FA8C14214F45 -:101C200003E978AFEFA97283DB0CFBDF4933F3A93B -:101C300068377A91C73357A5F0B8E1A790EE21AD88 -:101C40008A0DA4C7417F17053EABA605D2314EA22F -:101C5000EAC5448A93B868E67E4BFC8E7ED2AA3CE5 -:101C6000680FF57A8978586C1F13423F55252E0767 -:101C7000D653635D8E5C1BCED77E99F4D89722191C -:101C8000EAB18683913CCEE9E7615B2D2178DA9257 -:101C9000C1F5E55E028F6C2E8F877C5CC4633FBE0E -:101CA0003DD18FE73759FF7193670EC201D781FA93 -:101CB000FB2273533AEAB772BE8BA29A689E17054D -:101CC0007D2F0A6FE2F1D2E29E2CD6C77CBB8951F0 -:101CD0001C77C72E0BC5939C4F6C3D80E39FDF356F -:101CE00088E1FADB9DFE0587A81CF447C05BC50BA5 -:101CF0009600AEE7DC2E6E6F3E67E2FAD8B9A9090E -:101D00000EC45BC1B44DF3C81EB3CDA220DECF29F3 -:101D1000CC9C80E5DB7BBB7CD8BEBE8EE2A42B4096 -:101D20004CE07D1C480BF05ECDB9ED83283EECDC29 -:101D30006F54BC1185DFD7E2770F6B9AF73D84C7EC -:101D40004E7E7E3AFFC27F0E0ABD5726D38A6DDAD9 -:101D500038384927B2FC4806B70F1C11703E9EC1A7 -:101D6000F7ADEA88E6C753689D1CEE80273AF7C1B5 -:101D7000C61FF9F4708C834853506E3C0574F534DB -:101D8000DA1576F2F3D5F9DD268A0BAF3818E9A615 -:101D9000B8B335B718280E42E57A788501C047A94F -:101DA00042FD564CCBA47BBB006F3AC7766C57C53F -:101DB000388CD970DD3B789C6F21EA8A549E4DE5C2 -:101DC000E744FEDC816CD2EBA07F37DE57AAF8DE59 -:101DD000F7391CA797BFCDC88E6125F95AD5E5C73D -:101DE00019138DFB5DF59ADBA2F13E1F7B4765A8B9 -:101DF0009FE8E174D5E8EA8372B577A690B3079EB1 -:101E000031A33CA814F7432A5F50B83F19F80CEFF0 -:101E10003B56AEBEED09A2CFDF99581AACE762F38C -:101E2000CFA234F81072B0ABBED945F52BA13EF667 -:101E300053B9FAAD289ACF0E13C5995CB75FDD6C24 -:101E4000FB17D49B6ADF451FCDDC8E72DDFA59EBA0 -:101E5000BF7D0CFD7FB13BCCE5A3AFCD74AFEC8271 -:101E6000A97901AEFFC29E3092471762B87C380B49 -:101E7000F2D39781F3B8E7271497F5FBE9741F6E47 -:101E8000A15FDBAF1CD79869E27416E78AC6B8BEBB -:101E9000EA77B87C03BCDC4BEDDF31517BFD3A4E79 -:101EA00067F0765DFCB92782E8E1425F8E970B7B95 -:101EB00033683F6A8FE1740EF34DC6FB7317F66407 -:101EC000E4D2BD34546E801E2AC4F9F6424C73B27B -:101ED0003DA4BCDD24CE6901A88974836D40EFABBD -:101EE000A8E37A55A5751DC587605CEDC83C4A031B -:101EF00096D8EBE363815EE9FC787FA6B053E27885 -:101F0000F1227E9BF49D6633CA6F8FD00BAB76EBCC -:101F1000E36B79F9AD998A8C0371F492F1BC48872F -:101F20003E85E24C2A1B972C423AAFACDD703FF263 -:101F3000999C7FA59115E039AC5D51691EED61EC6E -:101F4000C169B86F848E13AAB7C979E254E3495FB7 -:101F5000A57DECAE4CBEAF61BE09FAAB6A54D6D1DA -:101F6000384E799EE5EB927002709831AEAF7D9C51 -:101F700028EF61DD729EFA75CBF93C90C9E551BB43 -:101F8000D3F1933188E7DFAA743FF6EAD7C3A2639F -:101F9000BBD1CB82FBBA3918DF8AF1BE487BD04F68 -:101FA0004E26976B95183F0BF34CDFAC8DEBCEDCD8 -:101FB000A6CD0FDEADCD67EDD7E6735AB479D73134 -:101FC0006D7E1A8EDB9B9FB3F13E2E9EB331C5739F -:101FD000B6C3C2CFD998C77336A678CEC6EF78CE2F -:101FE000C63C9EB3318FE76CCC4B78E3791BF3781A -:101FF000DEC6F2A7059CAA449C24E201E99DBD1C13 -:10200000A6B9EF73E5357E8F03E880F3CD1C33F17D -:10201000CD535883CE1DDCAED477BAD581F1BE8FB7 -:10202000C47A5665A25F54695D9D887833B651DCE9 -:1020300069CD2B3CEEB42A2FCC86F68DB65567576A -:102040006338E703B19E47B1FE1553C70E846F7521 -:10205000DD51BABFDEB6C2F1CE1D1C7F646761E5FB -:10206000B1A43779719F8BED198FFAB86FB64E1BFB -:10207000E7AD8FFBD6C77BEBE940EA7BCF993A12FD -:1020800051AE9FDE655D87F33F1D26EE9FCCB6EA1D -:10209000FCFD424F5BAF6CC5FDFA1799B1DCAF7226 -:1020A00002F4F36EF65999965E1B467A78577E9D38 -:1020B00062A07B7109F1B40F2D13734A563ADAD737 -:1020C000A09C5B64A07DF32AE86538DED5F754D286 -:1020D0001F32361934EB19E40FD7D0D7909DB1BA1F -:1020E0007B0D7D35F5871E4AD1DD6B18AC8DA39F26 -:1020F000B1E2309EEFA7AF1BA6A95756749B0E8E78 -:1021000062DE427F2D83FDC30DEB7B6AF9A664C4BA -:10211000EFB2459DED6B503F7D298CEE8595E3FF39 -:1021200003B9580E7DE27DC6F2FDE23E709D761F3A -:102130002E15FB50B991F9ECB1413A2CB733770C1D -:10214000B45F34B8352780E78ADFFC61A43D05CF52 -:1021500015E3FAA03C4A36B9290EB66A5F5ACC0A92 -:10216000E8F758AAE7A34CC0CB99A6A33F2EC6FD1B -:10217000701F3FEF9D5EF7AB288A1313F4966CB285 -:102180008723DEB734F1F838B48FA9B141BAD8D279 -:1021900014173ED0165C6F900EBE263C017EB81D13 -:1021A000A7FC08F93D3A9BC57AC7293ED4A7E5FAB2 -:1021B000968A7D850DE4FD3C24F267C4F942AEF3B6 -:1021C000E2A0C3390EBC7F517F285945796ED8BD36 -:1021D0002311D2D116CF97B89EF22D697F1A03E34F -:1021E00054FC91AFE7938D13A246A3FEB9C7E42A2E -:1021F00084FC9AA6E7CD78CEAE30FACD145FB96BE9 -:102200008B19E38BEFDCB985BE2FD8E9A578CA8599 -:10221000AC96CE9F9FC97704043CCAC72B9BED3078 -:10222000EFB983B8FC280FE7FE3BD08FDEC0F73B49 -:10223000AEEE5472318E6746D13EB317BE470D12D3 -:10224000F783747CD2F9F6F4FCDE040F7E5FE38F33 -:102250000C4EF1A9D7F3C5F46B4EE28B19D786D09B -:10226000B96C6660103FFF66E9CEBF6FABDC5ED72E -:10227000C2F9A0DC1CE8351DF9E47513E9B9D5B045 -:10228000DF8CCAC37335EC8D90168D5135F45A33FB -:10229000314243CFB359ACE6DECB7D183412929F66 -:1022A0005198AAA93F6BC6101DFDE705CB498EDCEE -:1022B000AAB95F57BDDCE75048CF1CAFFDCE789C74 -:1022C0002063776BDA57B369C17A48DFDBB81E5CED -:1022D000BD3F662BDAFBCA0DFCFC34DBC3BF2F3ECF -:1022E000C4BFB3D94CC38703525D7FE2FBA289FC14 -:1022F00002D29E3E1BFFEE06FE8C8577DD0FC77B6C -:10230000F1688FD0DC9F16FE409C37E2A15AD88D31 -:10231000AA33B9DDA8DAD76AC6770700FEC6B8586F -:10232000AA678DC3F8C82685EC8A982EA778496DD0 -:102330001C16F687718C8B4FA85EE4137D7939BE2D -:10234000DF83F87D85C7952EDCA48F835C47FEC8AC -:10235000C5680F0AC1DB53831C425FF1AFEE8BF0FF -:102360002B5472E95EE4EEC3668CB39B31232617CF -:10237000F9464F5F52AE033FD3F9BBF3EDA3445F81 -:102380009DE546A2DF1BC161B19BDB51F574B780AF -:10239000B59AF19EF882FD8A0BCFA3580FE1D117B1 -:1023A000E951078FB8D8EBE120E1D305AFFDFA384A -:1023B000370EA78587147FA01B38E9E7DD13DCE41F -:1023C0007A16783C93502EC8752DC4F963FF307F80 -:1023D000EC5FFA21D8283D7FA6927D6A71118F8F1C -:1023E000D5D3C3B46BDCEE72DF3523A5330AB5FC5D -:1023F00088ED902F665E8BA7F26F4B2F8B619EFC52 -:10240000FED3CDD1895C8794BB417EE0F7066EF4A4 -:10241000BE8FDEEEB8639088131CC14668E29185DA -:102420005CD5B7D7C7234B3D40BFBF78230D1437CA -:10243000D9694B21FD42CA598FD83F3CABBEA47A23 -:102440001EA8C76713AFD96F3CC2FEB7343285DE12 -:1024500063485E11178F78F286D929FEDEBB42A54C -:10246000B8672FD47384E827AB1B539371BF38F53B -:1024700048C6B33ED0DB4F7DB757FC2818E7F42A97 -:10248000532FAB2358EFD4AAFC648CD338BDC13290 -:10249000DBDF0DBC5AC5FE50FDC30F683FBB64783F -:1024A0003B6A36B4AF5AF5521486F957AEE2FB7860 -:1024B00079AAE79D41BD713FDFB2C38EF0B36FC90A -:1024C00041BBEF49D80EB0BDD41F2A56E5F741FDF8 -:1024D000A2EABF8F3E6BC77BD62B4CF1A87F9E7BB9 -:1024E0000FF64385F633D21B3E0B832EC89F164949 -:1024F0007684CF14E646BFD245C3E1BFAEC1736157 -:102500006E737A00D2EF593C2771DCCA55CF93DE47 -:1025100052F1E88A7455C57ED3A2BBB39BC87487B9 -:10252000D8B7517FC714F5778C9341FD1DF3A8BF31 -:10253000638AFA3B7EAFD9A4D5FF2EA7713925ED6A -:10254000C9031A3A72D17FE71BCF326B69BFB565F9 -:10255000A2BEBE4C0977A13C5A86BA12E6FF1246CB -:10256000E758B62D91EFB702CF7556EE37FA4ADC31 -:10257000CFBDBD0374B210FABCE39A9585DE9B1DF6 -:10258000C76234F909D6444DFD7CBB53537E67C204 -:10259000204DF95D8E5C4DFE9ECCD19AFA935DE3A1 -:1025A00034F97B47DDA5A93FD53D55939F5E304764 -:1025B000537F669157533E6BF6224DF91CCF124D57 -:1025C000FEFEF2EF6AEA3F50BB4253FE95014EA475 -:1025D000402F2D78EEB2E0FB29564ABFA3DA8D28B2 -:1025E0003796FD36CD86F81E33C150DB9D7D3F63A7 -:1025F00030D787CA86B85306F7E6EFE0203DF617D6 -:10260000EFDC8C18CCF199C480AAE8BCDB9A88F482 -:10261000ABAFA72F1F1371E4AA0370F893C14367F0 -:102620001A410E8DB9E5C8B054C89F18BC60A611F8 -:10263000E4C698DB8EFC2A05F2AD837FC1CB871EF2 -:10264000B98AE5B38654F2F2E98C548F3FBFD07754 -:10265000A60FE77F47CA3A17B793747BCF5CA608EB -:1026600007BCAF8D70C03400F48BE911A05F4C8FB4 -:1026700001FD96817C3A0EF48BE909387FE2F77F01 -:1026800087F327A66FC3F913D3DFC1B913D3563825 -:102690007762FAFBFAD994BE57EFA176EFD797533A -:1026A000FA417D2D7DFFA8BE8ED23FD7FBE8FBD43B -:1026B000C1D28E11609AFB01E867447FE221D3C545 -:1026C000503FB0F4574AFF64432D6B8B4079D1667D -:1026D0008CF9D41AF43BF66C0730B24F43F4B1686E -:1026E000E62E1E4CFA423F3BC96FF1DDE4F0781153 -:1026F000CF7F744E4F1BA6E2BE55FB06BA65FF683E -:10270000E8FEDDC411823E460D712F20FA10FE75E1 -:10271000E9DFEE8A9B09F1BF1B42E275E85F48DC06 -:102720008DF483CB389FDBADFC9EB1F473CB781E68 -:10273000D95FFE178CE4C3D8B546D25F228D2C80BA -:10274000FDCBB89DB1D6E65C8C63185B65A37BB509 -:102750007DE0BB398FEAB95548B7FD0DEAE704FDC6 -:10276000EA7DC4FCA19CE69FFF8587ECB063455CD5 -:1027700001B6B7F2721FB61F8BB685E194927C7AD0 -:1027800006EFEDE605FDFC583F82D70F607F03FFA3 -:102790000EE34505F9A67F6C732ECAEBFE8B6D74B4 -:1027A0002F74F3B800BD6745462780CB74797EB29D -:1027B0008ABCF4E7EDEC4376A40982D7BFEFF06C56 -:1027C00042F81759EC7F89203E4BED8FF6C9A9429C -:1027D0007FFE07787B06E940C253E245E251E223DF -:1027E000247E8AF0D0135EF5F8D4E351E22FFF8BFC -:1027F000205E10AED7E32D8857B4E7FEABE06DB88E -:1028000091BF5F66A9B2D2BB6837C2E3831D6C5229 -:102810003456717A46207EBCD71CC7315FCAC64D7C -:1028200042D4CAF2B1583EE2FA72CF171DA6E810A0 -:102830007CDF2EF03DBF87FE643DF91E83ECBFB107 -:1028400087FA6F85C9B80BB72D776430FE71593E92 -:10285000877F815325F84FC85A487A32B3713DD3E8 -:1028600001FFA15C9AF47511BD4FF925DB8D9E5BCC -:1028700036A997563F2DD0F9ADEF167AE9DD3ABD6E -:1028800054AF577E3E58F8B39DCCF92DDF9DBCC6A2 -:10289000E5DACDBE3BC9DF2D9D28F82C49D059AAD9 -:1028A000436563908E9887F6C963F86E690EBEEF34 -:1028B000E9A3FC5DCC4FE93D2C40FBEB6410C498D0 -:1028C000BF174428E68F464C29C6BB7113864D18A6 -:1028D00088DF43DE658B1CD29BDE65FB0F7BC8BBAC -:1028E0006C47263AE87EE5116B2AE95FC887A61097 -:1028F0007BE06F607F1A08FBC751D8BF307D03F6BD -:10290000AF81B0DE3761FFC2FCDD992B18B69BE4C6 -:10291000D0C6EDC8F6F7D827C0C1A467F8DD93F399 -:10292000723F84EF5B311913D17EFE56CC2D1371AB -:10293000BD6FC5F431F0D462A634FBE0C0EEF443C1 -:10294000C907C1F126D1787AF84A78EAE128E1FB93 -:102950004FC0F396EEE0396230E3F649EB1FA21266 -:1029600052D07F1725DEA3FC6D8E0AF97338B5446B -:102970008C57BD8DE639B66E34330E23BF4D16C26B -:10298000B5CACAE1A5B75BB16D7D0CA1F1BB57CD4E -:102990009E8221B0EEB39B55BA377EE9C530B2476F -:1029A0007DE6E7F6B67B14CF649C5F95EA5887EF27 -:1029B00088B2B7F83B67ECEBA3C9D322BF059D6E85 -:1029C000E3F7EDABAC93BAC5A33C4F4D71BA47707A -:1029D000FAE7EF454ABDA29F85BF4B20DF2FEC49A8 -:1029E000CF1819CEE5603F0B97DB12AFD08EF249BE -:1029F000D0CF489073493F09A7F3C5CEDEEEF9B8B2 -:102A00003E6947E8EC17E147793B363084DEE52A3A -:102A100038A1523CF11111DF75E7905A5B0AE0A929 -:102A200029CD5383ED98FAB58A72E66D58671CDAA2 -:102A30001F4E0CB3D1F9F15B9E43BF3344C88B1CCE -:102A400096A3B9AF26E94EB551FC4EE77BFC3EDEBE -:102A5000D2DFF0B8CDA5BD558AFFD7C7C58D65E9D2 -:102A60003F417BE3845E2697DF11942FF21D204BBC -:102A700082813942F4EC3047387384CC27223356B4 -:102A8000938F74F5D5D48F1E95A2298F710FD6948C -:102A9000C715E469F2BD8B6ED5D4EF337BBC269F9E -:102AA000E8B95B533FA97C9A368F7C0770EF5F3B98 -:102AB00057D36E405D89A69ED357A129673E776B99 -:102AC000663CCA71FE2F75ED524DF9D351053C7E1F -:102AD000DCB680EE29A6357D4FD39FC46F521CC74C -:102AE0002F73F0FDC107FF91DF42E0393F41BB6F1B -:102AF0004CB08F3B66A7546BD748BA411CD4A17F1A -:102B0000960EAA99960E7AF1389EFCDF0C73A01EE1 -:102B1000A3C73FFA2342D789FE8850B8A03F22348A -:102B20008FFE88D0FAE88F082D477F4468F9B013EC -:102B30005AFC8F68D5E2FF960FC6FF433C8D6ED3DB -:102B4000D2831E4FB77DA6A58FB19E7082CB04D0D5 -:102B5000C790DE259E66C37FB4CFB3A268B41BDCEA -:102B6000C1DC742FE07F0B5F9775F8FA92AD1B8183 -:102B7000EF5C5EF17239DED33E7F6580FB0B94BB68 -:102B80002942CEEBED00329ED4379EE3D377328CD0 -:102B9000E4D55786B648DC3FBEA3B6915D3E91753D -:102BA000BC81EFCF0CE9E56159BDF1CA36703F94A5 -:102BB0003FB5E8BE5CDCE7E6FDDA928C7ACDBC017D -:102BC000FC3D4196D546EFB4C8F9CC4BE2F147D66F -:102BD0002C21A75D3C0E29228BDB7F225D768A8328 -:102BE000F6663111E7C992E765231DBE1D96817413 -:102BF000B691DBB9DA4C0E8A6BF1013DA29F12F55A -:102C00006DD487FB0B7DB4E143AB95D31DD3ECEFC3 -:102C100083FC564D1CEE909D764D3EBB3941537F53 -:102C2000E82187A63C3790A9291F76C2A5C98F68DD -:102C30001DA5A97FCB076E4D7E745B81A6FE6D9F9F -:102C40001569F249ACE34984E7F8AC141EDFAF081C -:102C50003B8083E365DE77E2E93E8D3C47C8B86C94 -:102C60008FA063FD796480D94371DE0D89CC45F76F -:102C700041ACE23CC8B4E7148F88AB96FA3CF369E8 -:102C8000E3AA653C75D779469C5FE47922249EDAF5 -:102C90008DF397F1D45D7817EF4BEAE9F35E817716 -:102CA000FD3A0698F9FDAF86EF9AE91E8B9C9F7E50 -:102CB0005E9B443CE0766BF7EF0F3D20E8AC2DA522 -:102CC000686616D47B16B62782E775E3B9DA7C000E -:102CD000DF861F985D2B1D371E6FDE50BE9E627C07 -:102CE00057358BDEE9A47B6B72DC6A31EEF41CA5F0 -:102CF000DBF5CD8BE6F15D2CDA4CF72E7A1E8FC317 -:102D000035C1CC1AE99D24710FE18175CDEB3154A9 -:102D1000B3D8DC64E2EFE3FB4D68272A1C0F7A602E -:102D20002EDA0DDFDF68037DEDD93A23D97D1EDA77 -:102D30003DE63ED020BBEE950C80731AD24921E2CD -:102D40001FFA3D97CDE39D1FCBE2F2215FFDBAEB69 -:102D50003E804523E7F9F9AF1BBA237A94EBF8BF1D -:102D6000BA1F20E9570F2779BE6662FF1A28E625A9 -:102D7000E1D7653F11F093F7331C4B4C455B6D7405 -:102D8000CFA300E3CA24FEBECEE674F96616C737A9 -:102D9000D64379D453BD7C352B1AEDE09DCC116D13 -:102DA000BF813DF8FFE8DE04C1BFA7FB5E3DC989D6 -:102DB000EBE4430FF7BF7AA24FFAF72DEE8185C8F7 -:102DC000091EEF23F0E11F6820BFFA9A482D1FFF6C -:102DD000358BDB5D9E96FB850FCEDD5A39C1D0AEBB -:102DE000DFB04A15726241D7EF48E0F7F9AB4CA467 -:102DF0005F3356F438C6197CB2D14471B163DD8CAF -:102E0000F49892CD8A7F8B82FBE898049CBFD7A769 -:102E1000DD8FEF60AED5E8FF285DABFDBED0C67F8D -:102E20006F62BEFEDD14715E5F7883F3FAD92CE128 -:102E300007723117E95DC2FF5F2EDAE8F5AE4E3F4B -:102E4000F79BE1795BE576278A1B93FBBB03FD3794 -:102E500021EF81003CC333711F6F34761BCFD70540 -:102E6000CF1EE2152EDA44BC828DC76774EE0FE3E5 -:102E7000FE4DE95712F52FFAAE5239D6C7DE2EE5D0 -:102E8000F2B80BE94FD2FBAB3A6D06F2B774EE8F96 -:102E900024FF3CFA71A2810ECE1BF6C58F7206E7A5 -:102EA000E76953357E107DEA59F1129D17CB533DEA -:102EB00031D918876D74595D907FC47684DE8F2A6E -:102EC00014762FFD7CBBCE5D63F8FB2E9D3EAECF0E -:102ED0007616F07738402E32E42319873095C129D1 -:102EE00015526F6034CDE7DBFA73A65FCBE57ECC7D -:102EF0006BB7517BCFDAD1941FD0B87E09DE8399AE -:102F0000D9B0D0842EECB62797E78743D3B6FEFE20 -:102F100095E188B7714AB776F9BC6C85F8A14D1771 -:102F20005F2FD3ADD99C5F7E9D2DE5B888435AA114 -:102F3000101F2C55988C4B22392EF3579B443E9FE3 -:102F4000E797ADE2F936F1BEFE0E6147C175638ABF -:102F5000EBC673FF6E6167C175638AEBC6EF28B776 -:102F6000308F720BF328B7308F720B53945BF8BD20 -:102F7000841525E7AADC0F353194EFAE59D9C4107A -:102F80007E413F54681EFD50A1F5D10F155A8E7E2B -:102F9000A8D072F44385E6D10F155A1FFD50A179D0 -:102FA00036EAAE601EE59C7BAA263F1DF4FC892113 -:102FB000FC8D7EA8D0FED10FA5E9CFB344D3FE7E11 -:102FC00056A7698F7EA8D0FA0FD6291A3FD583E27B -:102FD0009DD3D24D71443FF31D4535D980DFFF8825 -:102FE000F8EF874D2988E79645FC5C16EEE2786E8F -:102FF0002AE07837308EE78E3984E7E5669ECFE7A2 -:10300000F1C97AFA417FCF4413F7F7608AFE1E4C6C -:10301000D1DF8329FA7B26A6717F0FA6E8EFC1EFE7 -:10302000E8EFC114FD3D98A2BF0753F4F7608AFE94 -:103030001E4CD1DF83EDD0DF8329FA7BF03BFA7B96 -:1030400030457F0F7E3F897E2753705EA8C70FD41F -:103050009C1F810E35E747BB268F7A7C687DD4E3C1 -:1030600043CB518F0F2D473D3E348F7A7C687DD402 -:10307000E343F3BFCC72109FA13E1FDA0EF5F9D0E7 -:103080007C7693EF0DB49D4DDE7CF918A66D91CA48 -:10309000B30A888CE6ECF7EE433F5D5B98921C0325 -:1030A00092D3B4E2C3FB2682BEE611F17F39ACC3F2 -:1030B00080F8F688F7D43D0146F196D97F4BA4F20B -:1030C000CB78AF5FC4DB22DE73F733FA5D12E92FF2 -:1030D00096ED5DCCAE622AEB07F3DDD7D38F2FEBF5 -:1030E00091FC0C9907DE00C67895DCE5B63C8CF7C0 -:1030F000DC6150284E62C74A1E27ACA7AB33424F53 -:10310000DA61D87704EF81747815BA0F9C6E642762 -:103110004C7908A7DA3CDC7FDFCE8E11EBAABD1517 -:10312000EF9BC8794BFB26C809BA3F37A6A3754267 -:1031300034F4E3F18DA3DF49293473BD01DBE17978 -:1031400072884F716F0DA1EFF785DCF4F8F8F83F46 -:103150007F6E0A6F17CEDBFDFCB92882E3944685AB -:10316000E2A5C6EC666EBC9FFB1F429E0ED91D50A9 -:10317000713C6F231F4FF6EBDD9C4CF716BDAC6D19 -:103180006202F9481486725BC20DD6770CD707C766 -:103190008613689FBED97B3FB70F8FC9C7383AD611 -:1031A000C2E81DCBC9C3DFD5AC97D03E92FAA57D4E -:1031B0002DC3A7D07BC1537C2B56E2B63ED9B7E4D2 -:1031C0008DDE587F1B73391DB415D1BD58399FC191 -:1031D000EE7D06D81659166B358429886F76342E05 -:1031E000847E80F36720BE735D267ABF77AAD16E96 -:1031F000A2F7237A883FB96A93F1273A7D4117678E -:10320000D2B0FC8364B4272F8D3490FD77E94BFC5A -:10321000F7003C9B14926B520FF28A38B5AB8D6F5E -:10322000F49E8570DF67A2FE64FC4975AA3FD980D1 -:1032300071F57DB7E4C4AAA407C4E6A01EE0FBD5DF -:103240007DA3B0DE2AFE8EE5D5C699D101EA89FBC1 -:103250006BCA04BCCA441C93171FF45683BF8B254A -:10326000EF77B026AEEF497B8EF7B7C38E237EBDD6 -:10327000CF8877A5D77AE95EB63E8E6851A389E2FA -:103280008E16E9F4C24AA11756DE402F1C9CA3D328 -:103290000BE5EFA588364CEDF73EC6EDC97B89C539 -:1032A00026CEFFC5FB18D9618B574C30D03BC82FB9 -:1032B00071BA295EC1F59BE297DD74BF50EA8BEFCE -:1032C000083D66DAB52482FB1F84DE3213E32B014E -:1032D000BE856D61220E2B91D259D778BCE5341B87 -:1032E00097036DAFF177203A7D16AE4F1D63FC1D3D -:1032F000331D5D4E35FA0D78E1CE3506E812F293B6 -:10330000510F82FE66A35E148774EECCA7F8BD024F -:1033100085EEBDE8E9BCD054FB06C687166E672E65 -:103320001F0BA573A05FECCFA7D0FB001E71AE955D -:10333000F4ABA7F77911C21E65E3F6A62EBB04EA2B -:10334000A8F44877CE2CD41BE7A16FAF2F27188C99 -:103350003B8BCCE2E5653939B31AF190D3839D42BA -:10336000FD9E99E0E191EF20F46037407B01CAC9EE -:10337000071ECA359784C8C9E1AEF18D434704F1F1 -:103380005DD275DF2F8BDE055DFA481AFD1E4E4FAC -:10339000FA7029C015F9625E74DBC3F80B6B0D3946 -:1033A000CC3D31017F2750AE8F05308E70AEC837CF -:1033B000EFBDEF4F6B6D0417CAD7E78C998571216C -:1033C000D5D6B649487635599E02BCC718944F45A4 -:1033D000EE2405E5536E00CF849BE4FD649D3DA281 -:1033E0003987D7D7DB254AB3B8DC96BF8B72EA9111 -:1033F000837B71BF92F33FD5C3EF30ECCCE1F2F7A2 -:103400007FEB1E84FEFEC32FFB7A9ECC81753C6E43 -:10341000E0F7F9FBAA4D4CD887C82F2CE50513EF30 -:103420006004F1EEA677741B1E51ECA1F629CF5A69 -:1034300085DFA3EFC18EC3323B9EDC0EEDE6D59B4C -:10344000E9F7F89E4BE7F4F31CD00FFD5E8AB9F55F -:103450000DAB3308C78FEB7E6AA2DFA56181347C98 -:103460007F676E6D980BE5F17057D12F71DE1159A2 -:103470002E92438D18430EF9BB7A15BD88DFABD76A -:103480001D7E16DF13A86971D2EF95780FE5AEC6E1 -:10349000774E86BB3C07B1DC6BB3D37B1A8B1B63C7 -:1034A00068FF9AD747DC0B651DE46793F07F47D828 -:1034B000AFD6BA38FD5E11E70E14905335F5BAB7A2 -:1034C000E3493BA1DECEA07F5FA227FB82B427A009 -:1034D000FDC01C626794F60953E6A939A837149B0E -:1034E000B5F71265CA86F27D5F9E03E777ED5B59FB -:1034F00093FAA07EBC41B1D37B9336C7ACD1902F59 -:103500003B61C2C84E5618EB30E3FB031D805F8C55 -:103510008F2E017E4539532CE2B4CA368D267E2B80 -:10352000F343DACD3B9C32BD7FC3D1FE2F23FD0494 -:10353000DCE4B72CB3BBCDB1217C5FDAA468DE1D1F -:1035400090F98E1C95F311A8E308BF071E729AF13B -:103550006D9F62502330FE8F0D7568FCC7508FE25F -:10356000410A53D871FE0E3CCCDBC9C7CB0BE9BF77 -:10357000A489DF9B9679A84FFACFDF732209AE5E4C -:103580003BACDB89A99DE60970203875AC87FE1C31 -:10359000340EE1A334E037E179BB18E350203FD784 -:1035A000EE37E138258DFC1D13CF3A3E8E676D8CCA -:1035B000391BF523A3DDDC1FE1277E6F15E6477A73 -:1035C0006419C005EF63E17D37DC5BF4F0F18AF943 -:1035D0009635C5D03B0AC1EF1B4C888F393DBC8B5B -:1035E000903594D36D49E338BABF5E6674D33D0716 -:1035F0008F80EF274BC21E45FFC09C8D4F989C903B -:10360000EF3794D36FD6504E5F852981347AAF68F7 -:1036100049980BE739C7DE44EBEB82EF63000F05F7 -:10362000DFB92922F8025DF8306EAF6CA3169FC196 -:10363000F970F8966DF412BF2D307ACCF6D0796C13 -:103640003A9C86F7AAE6007FE3BB12CCEEA1FB9280 -:103650009F3E362B99D609F344B846BA1C93F0FD29 -:1036600021A0137E0F46AC47DEEB96E34D1CCAEF5C -:103670009D4E1CCAE567CF7CE926BDA601F08B767E -:10368000EF9EF8D28C821BC63597F1DF91D0F3A95B -:10369000E44FC997924F25FF3E6B2A0A24284139EF -:1036A00003FB6CED8BDDC0A951CC77AEC02BC0F510 -:1036B00058E83DAF6A81D7E2142DBF637FD8EF1C75 -:1036C000C1EFC5E30369F82E93AC2FC72D8EE5ED4E -:1036D00090EE91DEE688F1B0FE52AAAFBDA752DAB5 -:1036E000252F76AF8A4779B14FE17ED0F547FB7F32 -:1036F00007F5D73D5C7FBD50B57D31EE97CCE84FE7 -:103700000E7DDF7F3EE83928271688FDB92CD0BD15 -:10371000BCB890EEA9181AC2CF653FDB93EEE1F278 -:103720002680F2E6CF7B5EFDE3AD8EE07E2AD753A6 -:10373000B2F65D93D7160A3FBEFE47333BE93E5EC5 -:10374000A9CDECC078E7D2462FC95F96007AA112C6 -:10375000127FA6A30B6FA342F7C84AEB46FAD5FF28 -:1037600045395DBA6E2ABD7B20F126DF6791FBAB40 -:103770009CFF7A31FF2621DFE60AFA9E5B3ECE9C53 -:10378000D88BF46E0CB36473C4F73965DAEF5D78E7 -:10379000EBF25F67AD467EC1FB45743E5967E2F6CA -:1037A000BEDDDCFE7861E9C1DFDD07F5CE3FBE2579 -:1037B00099A95ABCA19EBA40E8AB0B85FDAF1BBCD2 -:1037C0006D19DA3B985FF81CC75BE9DEDFFE05DFA9 -:1037D000132B4E11F26E3D7F07A0A4791FE171CE2D -:1037E000DA0D2627D4DB37D44970EA92FFB5B976D3 -:1037F000B42BCF5DBBC58472629F84838E1F8A45C4 -:103800009CB08433EE4B4A887F43D647F988EFDF7C -:103810003FB4242C0AE379E4381F093A2FAD8D898F -:10382000C5F14A6BBD3FC6F390DC0FF4EB3C1DC6FF -:10383000F9A504FA43BE3D3DCE95BC342BA8CFEA92 -:10384000EBBF2BF0F8B489FF4E4D5244F32E8A6B38 -:10385000A80977A1FC1838B0CD8FE3227DE3BCCD59 -:1038600006FEBB3603ABDA3EC77980AA4D713598A8 -:10387000E2FB58A87AC7437EAB81DFDF4A5179FA71 -:103880009590D7501EC072D6AB8D7E5F23246E56A6 -:1038900043BF66B68D7E3FD1DC8BD1FB66925E6501 -:1038A0003F925E253DF7B4BE2B42AEDC687DA79DFE -:1038B0001C9E66F1BB2937BD3E0BFF1D5DB92E393D -:1038C0003FD0E1DDF4BEC7F7B3C9DE737A852B19AB -:1038D000E3267B5EEFC6FCF86ED6AB5FA7E41B1950 -:1038E0000BDFE5CF6AE27E87D30AEC6FD0EEF4926D -:1038F000308A6F93EBD2DBC3FF1FB640B5F6008072 -:10390000000000001F8B080000000000000BCD56D7 -:103910007D6C5355143FF7BE7EAFDDDEBAB1751B2B -:10392000DBBA8D8F46BAF1CA80F891681D8CF0C75A -:10393000A2DD14DD0C6C25B031C68A9360A8C6B830 -:10394000B2229211E24C3618044C876C7F18205D2D -:10395000208AB19A8689468311E11F1292A60B38FC -:10396000D16856310A44649E73DF2B9D08897FFA23 -:1039700092E6F4DE7B3E7FE7E3DE0F7A658085002A -:10398000C77B1D00468093BD4E41A3BD2EB19FA7AE -:10399000D801E6007E495B930D60AD05DA7C565C8C -:1039A000C6F1970F9008568DF4B3CC7E831DDA9A3A -:1039B0009026E4A4CDEEC67DBBBA7FADC7DC0F393F -:1039C000002D90DCE7588AB2C12A1845538981AB93 -:1039D000368E7C579F463E77466EBB3EB51E88CFDF -:1039E00066708E5600646DFFAEBE10EDB50F567852 -:1039F00018CAAD0BD6268278BE6E57A102B86EB734 -:103A00003A773BE83C54A1F4E13A6BD033358CE78C -:103A1000EDBB1629C4BF9D812F4A7E0F1C002800D4 -:103A2000E8807B9FD7B41C6013FD43BE4D56C32472 -:103A3000ABC1F3E0C43C19E53B14B387A1FD4DC312 -:103A40002C6EC4FD060E7BD81280F2B06F5511DAD1 -:103A50004B1D64CA51923D5CEF4D9A5485339500DD -:103A60005D0B7D35CA325CDC99999941FD8F20460A -:103A700020515C512FC501434C1E05F2DB67207CB1 -:103A80004E2C760A9C13839336A75BC5BB11F106B7 -:103A900047010794DF6652FD2B37A426DF46BF524D -:103AA00036AE1CC575BDE4FED649717E2581D1496F -:103AB000721ABFACF1BFF9A8C98FFAB6D92A0B01A7 -:103AC000E9C66174A216CF9A4D9C70E8D47C6E1F33 -:103AD00079AE00D08F763C77E2F921DA7C0C60F782 -:103AE000E08A8224C9BD5BBF3F540D50A6E1784DEA -:103AF000976CA4FC5C1F29B4EFC4D83606C20B0037 -:103B0000CF378EBC5D46F4FA88B939827C2BE5C686 -:103B100095B9186FC7E15C8F84FECCD0F714E64DE1 -:103B20004121C4A72BB0A21010AFEEBB13EFC955B3 -:103B3000681FB126DC7F8F664542C8D2DD7BA64C6C -:103B4000E2E88AD1DF4C786EE1B1171E433D3FB108 -:103B5000C85891E07716CAD68CDEFBE9542FC28094 -:103B6000F51C78F3B2D0F30B3FFF4C0BCA77074E2E -:103B700065939E2D439796CBB8DF59E5DFA8CC21FE -:103B8000BD2363324204C323353E8CA35D01E1674C -:103B900083DDF7420BE1FE9524707F98BDCE334C58 -:103BA000E07B2FCE488E8170F7C7C1201395C140AE -:103BB000F57D5D8260146943A5DA2FE9FD20E1827D -:103BC0007E5CCF1928A3BAD83C76A0CC89F4479B59 -:103BD000BA5E3BF6E2D7908DFCC78C06CA975F07AA -:103BE0000605E5368498374275D389FD5A94B1DFCE -:103BF000A764097D9B87D1A9BCCC3E4044C4F5A3F2 -:103C00000E56931FE5E194E715A45774F176CAEBBD -:103C1000951EB312AAA03C3905DF95016915ED8701 -:103C2000B091E6335A9FB2CD43FBAD39D043F2B6E3 -:103C3000A5D138C73C074EE72E91D49212F5B55561 -:103C40005617F5927555099E6F1B6732D5E9B68FE9 -:103C5000CFAD02750DC01E8E67D7AD27C039CBEF33 -:103C6000AED3E306EA8FEEE3182FDAEF8E8E7F51A4 -:103C70008C7AB69E595FABDA1D00AAFF80D6CF5B67 -:103C80004FABB8044E4F1A36B8337AD6BBECBB4BA9 -:103C900030B7A34AEB8B43C8BA9EF2F63840EC64C7 -:103CA00063F3CE79486B641137E852653EECC37E0E -:103CB000D74503F5516097A6CF757177A588B731C1 -:103CC0000F66D5C398A217726979C443C8C5039615 -:103CD0003DB01887CD56AB8E683860CD267AB88750 -:103CE000BB7488AB97591409F10E9AB26B684EDE1B -:103CF00034AB346651E90EEE1BEF40176FF20B66E2 -:103D0000C0BADF210D30A24FB97B18220D8BF2FD16 -:103D100031AA5F0744190820E28CFC9EFEF4875A02 -:103D2000B2FF6479F2374097F43BDB9A57627D7CAF -:103D3000AE68F1B993B554E773CEAA73FA881EF64C -:103D4000989750DC3E68AA262DF89FF27E9B476824 -:103D50000EC758FC7DD29F8EF796D6C73EA3750F2F -:103D6000433F1B9CFE6FC88F6799BEDAC32907D2F9 -:103D70007CD23FAD57CF71FE7A4D581775DAF02DD2 -:103D8000E510022C5943B1C34A75CDBC5E08A2FDB3 -:103D90003EF7D90D541F7B532630A2DDB086475D18 -:103DA000CA32C990AFB47835079CC7CC994F770C0D -:103DB0009C75F39011FDDC0BA608F18309E7B12B8C -:103DC000338F0DDCEC15FCB12F6FD37C2F917E9DD2 -:103DD000C841FE921D4C09234FEB8DA923DF225DC4 -:103DE0000B110FE1DA95EF9FA2381237564FFA31D7 -:103DF000BF7BE5A84971ABFA66FB1F7BED76B69DEC -:103E000067FC9A4E4D9DF868295193B877EA629203 -:103E1000B837EEF767DAE1D4911DE48B73E2B7F2BD -:103E20000863C43F7199FCAB3359E35236C9E97F4B -:103E30009E7DAFC085D2DCA945E22A8199129CF60D -:103E400061356F4F6A7D98CE8B85C05F4654CD4FEC -:103E50001A3FE1FCACFBE433EBD83AAA9F74BFBE37 -:103E6000ACEDDFB8559943F3E546AC2A07DC0FEF1C -:103E7000CF4B385FE99D70B8C26BF72CCBDCA76BDA -:103E8000D2B7AB76DF4A9ADE351A4E6BAC5CC5E52D -:103E9000F9FB70D1EA245D0769BFD3794EE70F5E65 -:103EA000BF702EA742E4ADFA1D10F99A4BF613B776 -:103EB000CFBF856D05C59277D25FF17FCC57DCBC53 -:103EC00090DE0D435CBC1B4A09F825827A39C6078F -:103ED0002E10F3A055B228FD0F98077E9A078B6924 -:103EE0001E0C883EBFC953E738A379D023D60E48AD -:103EF000EDD4E13AC19336F23769C6AA47EAF754DE -:103F00008A7BA0843ABA4ACD13F5F591D76C47E97C -:103F1000FD1666DE8326940FEBB57EDF6C8D8CE29A -:103F2000FE748487F4686F303772B003F707D7CC1C -:103F3000554288D334687C9D1631179EE05CAC53A3 -:103F40002D0591A315C48F7D8D710EB63C22EEF127 -:103F50000FEF4AE2BD989A0FEAB907160CD379A37E -:103F60004BE8FB243D67F6D984BEC1466F91459C62 -:103F70001770928FE4F95FA2FC164B2A1F3E0404CF -:103F8000DFA143DE22CAC7A12683E0DBCF7C2DED73 -:103F9000A4A7DAAAD0FB32D9623939A6A623CE96D5 -:103FA000D27B558D375DBFC30B64814B7968F2209E -:103FB000BD434275E0EAA1F72BD5E1E24C7E9817AC -:103FC0007361CFE4295D8F213DE62B5FCD571FFB49 -:103FD00077BEF2B57CB120D66D36E52D2AF0BFC98B -:103FE000D53CEC9020998531495C711891FE91EF98 -:103FF0007F558DF342119DB71A93CB06E85DCCA196 -:1040000033FA803E0C519F8BF739DEA258E76D5A88 -:104010009DB7A5EBF18DFBEA313937772A4BAB47DA -:1040200094FFDEE2EB237BBFB04BCB69F3FC5F5226 -:10403000F383ECECD5E6C89F467FBFE8F36385FFCA -:1040400078679EF7FC504AF70CDC99984BF7CE99AD -:104050003CDF3EE233CF4B19FC8467514A4FF124D9 -:104060005A7E2AA5F74C5BF04BD137FFD5CFB41F52 -:104070007F03DC4DE081B00C000000000000000078 -:1040800000000018000000000000000000000040D8 -:1040900000000000000000000000002800000000F8 -:1040A0000000000000000010000000000000000000 -:1040B00000000020000000000000000000000010D0 -:1040C00000000000000000000000000800000000E8 -:1040D00000000000000000000000000000000000E0 -:1040E00000000000000000000000000000000000D0 -:1040F00000000000000000000000000000000000C0 -:1041000000000000000000000000000000000000AF -:10411000000000000000000000000000000000009F -:10412000000000000000000000000000000000008F -:10413000000000000000000000000000000000007F -:10414000000000000000000000000000000000006F -:10415000000000000000000000000000000000005F -:10416000000000000000000000000000000000004F -:10417000000000000000000000000000000000003F -:10418000000000000000000000000000000000002F -:10419000000000000000000000000000000000001F -:1041A000000000000000000000000000000000000F -:1041B00000000000000000000000000000000000FF -:1041C00000000000000000000000000000000000EF -:1041D00000000000000000000000000000000000DF -:1041E0000000000000000000000033280010000064 -:1041F0000000000800003330001000000000000242 -:1042000000003328001000000000001000003A7881 -:104210000000000000000008800000000000000016 -:10422000000000008000000000000000000000000E -:1042300080000000000000000000000000003120AD -:1042400000000000000000080000336000010004CE -:1042500000000001000033680000000000000002C0 -:1042600000003370000000000000000800003374FC -:10427000000000000000000200003A700000000092 -:104280000000000800003A4000080000000000089C -:1042900000003D88004000000000004000003A504F -:1042A000000800000000000800003A60000800005C -:1042B0000000000800003A8800C8000000000098D4 -:1042C00000003C18009800000000002800003C5846 -:1042D00000980000000000280000337803600030E0 -:1042E0000000036000003EB0000800000000000174 -:1042F00000003EB10008000000000001000020089E -:10430000001000000000001000002000000000006D -:104310000000000880000000000000000000000015 -:10432000800000000000000000000000000000000D -:10433000000000000000000000000000000000007D -:10434000000000000000000000000000000000006D -:10435000800000000000000000000000800000005D -:1043600000000000000000008000000000000000CD -:1043700000000000800000000000000000000000BD -:10438000800000000000000000000000800000002D -:10439000000000000000000080000000000000009D -:1043A000000000008000000000000000000000008D -:1043B00080000000000000000000000080000000FD -:1043C000000000000000000080000000000000006D -:1043D000000000008000000000000000000000005D -:1043E000800000000000000000000000000000004D -:1043F00000000000000000000000000000000000BD -:1044000000000000000000000000000000000000AC -:10441000000000000000000000000000000000009C -:10442000000000000000000080000000000000000C -:1044300000000000800000000000000000000000FC -:1044400080000000000000000000000000000000EC -:1044500000000000000000008000000000000000DC -:1044600000000000800000000000000000000000CC -:1044700080000000000000000000000000000000BC -:10448000000000000000000000000000000000002C -:10449000000000000000000000000000000000001C -:1044A000000000000000000000000000000000000C -:1044B00000000000000000000000000000000000FC -:1044C00000000000000012C8008000000000008012 -:1044D000000000010000000000000000000040009B -:1044E0000490000000000490000019C800000000C3 -:1044F0000000000800004948000800000000000813 -:1045000000004928000800000000000800004938A9 -:104510000008000000000008000020080010000053 -:104520000000001000002000000000000000000853 -:104530000000401004900040000000400000499836 -:104540000008000000000001000049990008000078 -:1045500000000001800000000000000000000000DA -:10456000800000000000000000000000800000004B -:1045700000000000000000008000000000000000BB -:1045800000000000800000000000000000000000AB -:10459000800000000000000000000000800000001B -:1045A000000000000000000080000000000000008B -:1045B000000000008000000000000000000000007B -:1045C00080000000000000000000000080000000EB -:1045D000000000000000000080000000000000005B -:1045E000000000008000000000000000000000004B -:1045F00000000000000000000000000000000000BB -:1046000000000000000000000000000000000000AA -:10461000000000000000000000000000000000009A -:10462000000000000000000000000000800000000A -:1046300000000000000000008000000000000000FA -:10464000000000000000000000000000000000006A -:10465000800000000000000000000000800000005A -:1046600000000000000000008000000000000000CA -:1046700000000000800000000000000000000000BA -:104680000000400000180000000000180000430077 -:104690000040000000000040000043000040000215 -:1046A0000000000100004301004000020000000083 -:1046B00000003000004000000000004080000000CA -:1046C0000000000000000000000030000008004072 -:1046D0000000000400003004000800400000000456 -:1046E00000004B00002800000000002800004B5094 -:1046F00000100000000000100000380000800000E2 -:104700000000008000003800000800800000000267 -:1047100000003900002000000000002000002008F8 -:104720000010000000000010000020000000000049 -:104730000000000800005108000800000000000808 -:104740000000512000080000000000080000513067 -:104750000008000000000008000051C00008000030 -:1047600000000001000051C100080000000000012D -:10477000000039400010000400000004000051D087 -:104780000030001800000010000051D80030001860 -:104790000000000280000000000000000000000097 -:1047A0008000000000000000000000008000000009 -:1047B0000000000000000000800000000000000079 -:1047C0000000000080000000000000000000000069 -:1047D00080000000000000000000000080000000D9 -:1047E0000000000000000000800000000000000049 -:1047F0000000000080000000000000000000000039 -:1048000000000000000000000000000000000000A8 -:104810000000000000000000000000000000000098 -:104820000000000000000000000000000000000088 -:104830008000000000000000000000008000000078 -:104840000000000000000000000000000000000068 -:1048500000000000000023E800800000000000804D -:10486000000000010000000000000000000020081F -:1048700000100000000000100000200000000000F8 -:104880000000000800002DA0000800000000000843 -:1048900000002DB80008000000000008000024E817 -:1048A00002D00028000002D000002E5800080000AE -:1048B0000000000100002E59000800000000000167 -:1048C00000002D900008000000000008800000009B -:1048D0000000000000000000800000000000000058 -:1048E0000000000080000000000000000000000048 -:1048F00080000000000000000000000080000000B8 -:104900000000000000000000800000000000000027 -:104910000000000080000000000000000000000017 -:104920000000000000000000000000000000000087 -:104930000000000000000000000000000000000077 -:104940000000000000000000000000000000000067 -:104950008000000000000000000000008000000057 -:104960000000000000000000000000000000000047 -:1049700000000000800000000000000000000000B7 -:104980008000000000000000000000008000000027 -:104990000000000000000000800000000000000097 -:1049A000000000000000250000400000000000089A -:1049B000000025080040000000000028000009C099 -:1049C000012000100000000880000000000000002E -:1049D0000000000080000000000000000000000057 -:1049E0000000402002D00028000000080000300035 -:1049F00000000000000010000000509900000000BE -:104A000000000001000050B00000000000000002A3 -:104A1000000045A000900008000000088000000091 -:104A200000000000000000000000296000080000F5 -:104A300000000001000029610008000000000001E2 -:104A4000000029700008000400000002000029781E -:104A5000000800040000000400002FB0000800005F -:104A60000000000400002FB4000800000000000453 -:104A700000002FC0000000000000000800002FC848 -:104A800000000000000000080000300000000000EE -:104A90000000001000005040000100010000000173 -:104AA0000000500000000000000000200000080886 -:104AB00000100000000000040000080C00100000BE -:104AC00000000001000008B7000000000000000125 -:104AD000000008B600000000000000010000100007 -:104AE000003000180000000400001004003000181E -:104AF0000000000400001008003000180000000250 -:104B00000000100A00300018000000020000100C25 -:104B100000300018000000010000100D00300018E7 -:104B2000000000010000100E00300018000000011D -:104B300000001010003000180000000400001014E5 -:104B40000030001800000004000030000100008068 -:104B50000008000400003004010000800008000488 -:104B60000000000A000000000000000000003068A3 -:104B70000100008000000001000030690100008099 -:104B8000000000010000306C010000800000000205 -:104B90000000306E01000080000000020000307054 -:104BA000010000800000000400003074010000805B -:104BB00000000004000030660100008000000002D8 -:104BC000000030640100008000000001000030603F -:104BD000010000800000000200003062010000803F -:104BE00000000002000030500100008000000004BE -:104BF0000000305401000080000000040000305824 -:104C000001000080000000040000305C0100008012 -:104C1000000000040000307C010000800000000162 -:104C20000000307D010000800000000100001C1821 -:104C3000001000000000000400001C300010000004 -:104C40000000000400001C380010000000000004F8 -:104C50008000000000000000000000008000000054 -:104C600000000000000000008000000000000000C4 -:104C700000000000800000000000000000000000B4 -:104C800000004C10000800000000000200004C1260 -:104C9000000800000000000200004C1400080000A2 -:104CA0000000000400004C20000800000000000884 -:104CB00000004C30004000080000000800004C00DC -:104CC000000800000000000200004C020008000084 -:104CD0000000000100004C04000800000000000279 -:104CE00000004CD0000800000000000800004CE06C -:104CF000000800000000000400004CE40008000070 -:104D00000000000100004CF000080000000000025C -:104D100000004CF4000800000000000200004D00FC -:104D20000008000000000004000050000010000017 -:104D30000000000400005004001000000000000407 -:104D400000005008001000000000000400001400E3 -:104D5000000800000000000200001402000800002B -:104D60000000000100001404000800000000000220 -:104D700000001410000800000000000200001414DD -:104D800000080000000000020000141600080000E7 -:104D900000000002000019B8000800000000000830 -:104DA000000014200008000000000002000014248D -:104DB0000008000000000002000019C80008000000 -:104DC0000000000800002C10000800000000000196 -:104DD00000002C11000800000000000100002C124F -:104DE000000800000000000100002C130008000073 -:104DF0000000000100002C0000080000000000027C -:104E000000002C02000800000000000100002C043B -:104E1000000800000000000200002C300008000024 -:104E20000000000200002C32000800000000000218 -:104E300000002C34000800000000000200002C20BC -:104E4000000800000000000100002C210008000004 -:104E50000000000100002C220008000000000001FA -:104E600000002C23000800000000000100002C249A -:104E7000000800000000000100002C2500080000D0 -:104E80000000000100002C260008000000000001C6 -:104E900000001400000800000000000200001402DE -:104EA00000080000000000010000140400080000D9 -:104EB000000000020000141200C0001800000002F0 -:104EC0000000141000C00018000000020000141CB4 -:104ED00000C00018000000080000141400C00018F2 -:104EE000000000080000142700C0001800000001A6 -:104EF0000000142400C00018000000020000142666 -:104F000000C000180000000100001590000800001B -:104F100000000008000015A00008000000000008C4 -:104F2000000015B00008000000000008800000002C -:104F300000000000000000008000000000000000F1 -:104F400000000000800000000000000000000000E1 -:104F50008000000000000000000000008000000051 -:104F600000000000000000008000000000000000C1 -:104F700000000000800000000000000000000000B1 -:104F80008000000000000000000000008000000021 -:104F90000000000000000000800000000000000091 -:104FA0000000000080000000000000000000000081 -:104FB00080000000000000000000000080000000F1 -:104FC0000000000000000000800000000000000061 -:104FD0000000000080000000000000000000000051 -:104FE00080000000000000000000000080000000C1 -:104FF0000000000000000000800000000000000031 -:105000000000000080000000000000000000000020 -:105010008000000000000000000000008000000090 -:105020000000000000000000800000000000000000 -:1050300000000000800000000000000000000000F0 -:105040008000000000000000000000008000000060 -:1050500000000000000000008000000000000000D0 -:105060000000000000000000000000000000000040 -:1050700080000000000000000000000000000000B0 -:08508000060209000000000017 -:00000001FF diff --git a/firmware/bnx2x/bnx2x-e1h-6.2.9.0.fw.ihex b/firmware/bnx2x/bnx2x-e1h-6.2.9.0.fw.ihex deleted file mode 100644 index ba1ce53df1d8..000000000000 --- a/firmware/bnx2x/bnx2x-e1h-6.2.9.0.fw.ihex +++ /dev/null @@ -1,13192 +0,0 @@ -:1000000000004F48000000680000070C00004FB8D7 -:1000100000001ED4000056C800000094000075A027 -:1000200000009F4C00007638000000CC00011588CD -:100030000000DC5800011658000000940001F2B8DE -:100040000000400C0001F350000000A400023360E7 -:100050000000F4240002340800000FFC00032830E4 -:100060000000000400033830020400480000000FC4 -:1000700002040054000000450204005C0000000679 -:100080000204007000000004020400780000000078 -:100090000204007C121700000204008022170000F6 -:1000A00002040084321700000604008800000005E6 -:1000B0000204009C12150000020400A0221500009A -:1000C000020400A432150000060400A80000000489 -:1000D000020400B802100000020400BC001000007E -:1000E000020400C010100000020400C42010000030 -:1000F000020400C830100000020400CC40100000D0 -:10010000060400D000000003020400DC0010000020 -:10011000020400E012140000020400E422140000B3 -:10012000020400E832140000020400EC4214000053 -:10013000060400F000000003010401240000000098 -:1001400001040128000000000104012C000000004F -:100150000104013000000000020401D00000890603 -:1001600002040004000000FF02040008000000FF79 -:100170000204000C000000FF02040010000000FF59 -:10018000020400140000007F02040018000000FFB9 -:100190000204001C000000FF02040020000000FF19 -:1001A000020400240000003E0204002800000000B9 -:1001B0000204002C0000003F020400300000003F59 -:1001C000020400340000003F020400380000003F39 -:1001D0000204003C0000003F020400400000003F19 -:1001E000020400440000003F020404CC00000001AF -:1001F00002042008000002110204200C000002008A -:10020000020420100000020402042014000002195D -:100210000204201C0000FFFF020420200000FFFF5A -:10022000020420240000FFFF020420280000FFFF3A -:1002300002042038000000200604203C0000001FBB -:10024000020420B800000001060420BC0000005F8A -:100250000204223807FFFFFF0204223C0000003F97 -:100260000204224007FFFFFF020422440000000FA7 -:1002700001042248000000000104224C000000009C -:10028000010422500000000001042254000000007C -:1002900001042258000000000104225C000000005C -:1002A000010422600000000001042264000000003C -:1002B00001042268000000000104226C000000001C -:1002C00001042270000000000104227400000000FC -:1002D00001042278000000000104227C00000000DC -:1002E0000C042000000003E80A04200000000001C4 -:1002F0000B0420000000000A0605400000000D006D -:100300000205004400000020020500480000003201 -:10031000020500900215002002050094021500203D -:1003200002050098000000300205009C0810000043 -:10033000020500A000000033020500A40000003008 -:10034000020500A800000031020500AC0000000218 -:10035000020500B000000005020500B40000000620 -:10036000020500B800000002020500BC0000000207 -:10037000020500C000000000020500C400000005E6 -:10038000020500C800000002020500CC00000002C7 -:10039000020500D000000002020500D400000001A8 -:1003A00002050114000000010205011C000000010B -:1003B0000205012000000002020502040000000105 -:1003C0000205020C0000004002050210000000407F -:1003D0000205021C0000002002050220000000139C -:1003E0000205022400000020060502400000000A69 -:1003F00004050280002000000205005000000007F4 -:10040000020500540000000702050058000000002B -:100410000205005C00000008020500600000000109 -:100420000605006400000003020500D80000000675 -:1004300002050004000000010205000800000001A0 -:100440000205000C00000001020500100000000180 -:100450000205001400000001020500180000000160 -:100460000205001C00000001020500200000000140 -:100470000205002400000001020500280000000120 -:100480000205002C00000001020500300000000100 -:1004900002050034000000010205003800000001E0 -:1004A0000205003C000000010205004000000001C0 -:1004B000020500E00000000D020500E80000000059 -:1004C000020500F000000000020500F80000000036 -:1004D000020500E40000002D020500EC00000020F1 -:1004E000020500F400000020020500FC00000020CE -:1004F000020500E00000001D020500E800000010F9 -:10050000020500F000000010020500F800000010D5 -:10051000020500E40000003D020500EC0000003090 -:10052000020500F400000030020500FC000000306D -:10053000020500E00000004D020500E80000004058 -:10054000020500F000000040020500F80000004035 -:10055000020500E40000006D020500EC00000060F0 -:10056000020500F400000060020500FC00000060CD -:10057000020500E00000005D020500E800000050F8 -:10058000020500F000000050020500F800000050D5 -:10059000020500E40000007D020500EC0000007090 -:1005A000020500F400000070020500FC000000706D -:1005B0000406100002000020020600DC000000011A -:1005C000010600D80000000004060200000302201B -:1005D000020600DC00000000010600B80000000078 -:1005E000010600C8000000000206016C00000000C7 -:1005F000010600BC00000000010600CC0000000065 -:1006000002060170000000000718040000910000BD -:10061000081807D800050223071C00002BF700006C -:10062000071C80002DD10AFE071D00002F461673FF -:10063000071D800016342245081DB13049DA022515 -:100640000118000000000000011800040000000074 -:1006500001180008000000000118000C0000000054 -:100660000118001000000000011800140000000034 -:1006700002180020000000010218002400000002FF -:1006800002180028000000030218002C00000000DF -:1006900002180030000000040218003400000001BD -:1006A00002180038000000000218003C00000001A1 -:1006B000021800400000000402180044000000007E -:1006C00002180048000000010218004C000000035E -:1006D0000218005000000000021800540000000141 -:1006E00002180058000000040218005C000000001E -:1006F00002180060000000010218006400000003FE -:1007000002180068000000000218006C00000001E0 -:1007100002180070000000040218007400000000BD -:1007200002180078000000040218007C000000039A -:100730000618008000000002021800A400003FFF1D -:10074000021800A8000003FF0218022400000000A5 -:1007500002180234000000000218024C00000000E1 -:10076000021802E4000000FF061810000000040058 -:10077000021B8BC000000001021B8000000000343F -:10078000021B804000000018021B80800000000C4B -:10079000021B80C0000000200C1B83000007A1206A -:1007A0000A1B8300000001380B1B83000000138824 -:1007B0000A1B8340000000000C1B8340000001F472 -:1007C0000B1B834000000005021B83800007A12053 -:1007D000021B83C0000001F4021B14800000000112 -:1007E0000A1B148000000000061A1000000003B36A -:1007F000041A1ECC00010227061A1ED000000008B1 -:10080000061A2008000000C8061A20000000000296 -:10081000041AAF4000100228061A3718000000041E -:10082000061A371000000002061A500000000002ED -:10083000061A500800000004061A501800000004B0 -:10084000061A502800000004061A50380000000460 -:10085000061A504800000004061A50580000000410 -:10086000061A506800000004061A507800000002C2 -:10087000041A52C000020238061A40500000000656 -:10088000041A40680002023A041A40400004023C84 -:10089000041A800000010240061A800400000003D0 -:1008A000041A801000010241061A8014000000039F -:1008B000041A802000010242061A8024000000036E -:1008C000041A803000010243061A8034000000033D -:1008D000041A804000010244061A8044000000030C -:1008E000041A805000010245061A805400000003DB -:1008F000041A806000010246061A806400000003AA -:10090000041A807000010247061A80740000000378 -:10091000041A808000010248061A80840000000347 -:10092000041A809000010249061A80940000000316 -:10093000041A80A00001024A061A80A400000003E5 -:10094000041A80B00001024B061A80B400000003B4 -:10095000041A80C00001024C061A80C40000000383 -:10096000041A80D00001024D061A80D40000000352 -:10097000041A80E00001024E061A80E40000000321 -:10098000041A80F00001024F061A80F400000003F0 -:10099000041A810000010250061A810400000003BD -:1009A000041A811000010251061A8114000000038C -:1009B000041A812000010252061A8124000000035B -:1009C000041A813000010253061A8134000000032A -:1009D000041A814000010254061A814400000003F9 -:1009E000041A815000010255061A815400000003C8 -:1009F000041A816000010256061A81640000000397 -:100A0000041A817000010257061A81740000000365 -:100A1000041A818000010258061A81840000000334 -:100A2000041A819000010259061A81940000000303 -:100A3000041A81A00001025A061A81A400000003D2 -:100A4000041A81B00001025B061A81B400000003A1 -:100A5000041A81C00001025C061A81C40000000370 -:100A6000041A81D00001025D061A81D4000000033F -:100A7000041A81E00001025E061A81E4000000030E -:100A8000041A81F00001025F061A81F400000003DD -:100A9000041A820000010260061A820400000003AA -:100AA000041A821000010261061A82140000000379 -:100AB000041A822000010262061A82240000000348 -:100AC000041A823000010263061A82340000000317 -:100AD000041A824000010264061A824400000003E6 -:100AE000041A825000010265061A825400000003B5 -:100AF000041A826000010266061A82640000000384 -:100B0000041A827000010267061A82740000000352 -:100B1000041A828000010268061A82840000000321 -:100B2000041A829000010269061A829400000003F0 -:100B3000041A82A00001026A061A82A400000003BF -:100B4000041A82B00001026B061A82B4000000038E -:100B5000041A82C00001026C061A82C4000000035D -:100B6000041A82D00001026D061A82D4000000032C -:100B7000041A82E00001026E061A82E400000003FB -:100B8000041A82F00001026F061A82F400000003CA -:100B9000041A830000010270061A83040000000397 -:100BA000041A831000010271061A83140000000366 -:100BB000041A832000010272061A83240000000335 -:100BC000041A833000010273061A83340000000304 -:100BD000041A834000010274061A834400000003D3 -:100BE000041A835000010275061A835400000003A2 -:100BF000041A836000010276061A83640000000371 -:100C0000041A837000010277061A8374000000033F -:100C1000041A838000010278061A8384000000030E -:100C2000041A839000010279061A839400000003DD -:100C3000041A83A00001027A061A83A400000003AC -:100C4000041A83B00001027B061A83B4000000037B -:100C5000041A83C00001027C061A83C4000000034A -:100C6000041A83D00001027D061A83D40000000319 -:100C7000041A83E00001027E061A83E400000003E8 -:100C8000041A83F00001027F061A83F400000003B7 -:100C9000041A840000010280061A84040000000384 -:100CA000041A841000010281061A84140000000353 -:100CB000041A842000010282061A84240000000322 -:100CC000041A843000010283061A843400000003F1 -:100CD000041A844000010284061A844400000003C0 -:100CE000041A845000010285061A8454000000038F -:100CF000041A846000010286061A8464000000035E -:100D0000041A847000010287061A8474000000032C -:100D1000041A848000010288061A848400000003FB -:100D2000041A849000010289061A849400000003CA -:100D3000041A84A00001028A061A84A40000000399 -:100D4000041A84B00001028B061A84B40000000368 -:100D5000041A84C00001028C061A84C40000000337 -:100D6000041A84D00001028D061A84D40000000306 -:100D7000041A84E00001028E061A84E400000003D5 -:100D8000041A84F00001028F061A84F400000003A4 -:100D9000041A850000010290061A85040000000371 -:100DA000041A851000010291061A85140000000340 -:100DB000041A852000010292061A8524000000030F -:100DC000041A853000010293061A853400000003DE -:100DD000041A854000010294061A854400000003AD -:100DE000041A855000010295061A8554000000037C -:100DF000041A856000010296061A8564000000034B -:100E0000041A857000010297061A85740000000319 -:100E1000041A858000010298061A858400000003E8 -:100E2000041A859000010299061A859400000003B7 -:100E3000041A85A00001029A061A85A40000000386 -:100E4000041A85B00001029B061A85B40000000355 -:100E5000041A85C00001029C061A85C40000000324 -:100E6000041A85D00001029D061A85D400000003F3 -:100E7000041A85E00001029E061A85E400000003C2 -:100E8000041A85F00001029F061A85F40000000391 -:100E9000041A8600000102A0061A8604000000035E -:100EA000041A8610000102A1061A8614000000032D -:100EB000041A8620000102A2061A862400000003FC -:100EC000041A8630000102A3061A863400000003CB -:100ED000041A8640000102A4061A8644000000039A -:100EE000041A8650000102A5061A86540000000369 -:100EF000041A8660000102A6061A86640000000338 -:100F0000041A8670000102A7061A86740000000306 -:100F1000041A8680000102A8061A868400000003D5 -:100F2000041A8690000102A9061A869400000003A4 -:100F3000041A86A0000102AA061A86A40000000373 -:100F4000041A86B0000102AB061A86B40000000342 -:100F5000041A86C0000102AC061A86C40000000311 -:100F6000041A86D0000102AD061A86D400000003E0 -:100F7000041A86E0000102AE061A86E400000003AF -:100F8000041A86F0000102AF061A86F4000000037E -:100F9000041A8700000102B0061A8704000000034B -:100FA000041A8710000102B1061A8714000000031A -:100FB000041A8720000102B2061A872400000003E9 -:100FC000041A8730000102B3061A873400000003B8 -:100FD000041A8740000102B4061A87440000000387 -:100FE000041A8750000102B5061A87540000000356 -:100FF000041A8760000102B6061A87640000000325 -:10100000041A8770000102B7061A877400000003F3 -:10101000041A8780000102B8061A878400000003C2 -:10102000041A8790000102B9061A87940000000391 -:10103000041A87A0000102BA061A87A40000000360 -:10104000041A87B0000102BB061A87B4000000032F -:10105000041A87C0000102BC061A87C400000003FE -:10106000041A87D0000102BD061A87D400000003CD -:10107000041A87E0000102BE061A87E4000000039C -:10108000041A87F0000102BF061A87F4000000036B -:10109000041A8800000102C0061A88040000000338 -:1010A000041A8810000102C1061A88140000000307 -:1010B000041A8820000102C2061A882400000003D6 -:1010C000041A8830000102C3061A883400000003A5 -:1010D000041A8840000102C4061A88440000000374 -:1010E000041A8850000102C5061A88540000000343 -:1010F000041A8860000102C6061A88640000000312 -:10110000041A8870000102C7061A887400000003E0 -:10111000041A8880000102C8061A888400000003AF -:10112000041A8890000102C9061A8894000000037E -:10113000041A88A0000102CA061A88A4000000034D -:10114000041A88B0000102CB061A88B4000000031C -:10115000041A88C0000102CC061A88C400000003EB -:10116000041A88D0000102CD061A88D400000003BA -:10117000041A88E0000102CE061A88E40000000389 -:10118000041A88F0000102CF061A88F40000000358 -:10119000041A8900000102D0061A89040000000325 -:1011A000041A8910000102D1061A891400000003F4 -:1011B000041A8920000102D2061A892400000003C3 -:1011C000041A8930000102D3061A89340000000392 -:1011D000041A8940000102D4061A89440000000361 -:1011E000041A8950000102D5061A89540000000330 -:1011F000041A8960000102D6061A896400000003FF -:10120000041A8970000102D7061A897400000003CD -:10121000041A8980000102D8061A8984000000039C -:10122000041A8990000102D9061A8994000000036B -:10123000041A89A0000102DA061A89A4000000033A -:10124000041A89B0000102DB061A89B40000000309 -:10125000041A89C0000102DC061A89C400000003D8 -:10126000041A89D0000102DD061A89D400000003A7 -:10127000041A89E0000102DE061A89E40000000376 -:10128000041A89F0000102DF061A89F40000000345 -:10129000041A8A00000102E0061A8A040000000312 -:1012A000041A8A10000102E1061A8A1400000003E1 -:1012B000041A8A20000102E2061A8A2400000003B0 -:1012C000041A8A30000102E3061A8A34000000037F -:1012D000041A8A40000102E4061A8A44000000034E -:1012E000041A8A50000102E5061A8A54000000031D -:1012F000041A8A60000102E6061A8A6400000003EC -:10130000041A8A70000102E7061A8A7400000003BA -:10131000041A8A80000102E8061A8A840000000389 -:10132000041A8A90000102E9061A8A940000000358 -:10133000041A8AA0000102EA061A8AA40000000327 -:10134000041A8AB0000102EB061A8AB400000003F6 -:10135000041A8AC0000102EC061A8AC400000003C5 -:10136000041A8AD0000102ED061A8AD40000000394 -:10137000041A8AE0000102EE061A8AE40000000363 -:10138000041A8AF0000102EF061A8AF40000000332 -:10139000041A8B00000102F0061A8B0400000003FF -:1013A000041A8B10000102F1061A8B1400000003CE -:1013B000041A8B20000102F2061A8B24000000039D -:1013C000041A8B30000102F3061A8B34000000036C -:1013D000041A8B40000102F4061A8B44000000033B -:1013E000041A8B50000102F5061A8B54000000030A -:1013F000041A8B60000102F6061A8B6400000003D9 -:10140000041A8B70000102F7061A8B7400000003A7 -:10141000041A8B80000102F8061A8B840000000376 -:10142000041A8B90000102F9061A8B940000000345 -:10143000041A8BA0000102FA061A8BA40000000314 -:10144000041A8BB0000102FB061A8BB400000003E3 -:10145000041A8BC0000102FC061A8BC400000003B2 -:10146000041A8BD0000102FD061A8BD40000000381 -:10147000041A8BE0000102FE061A8BE40000000350 -:10148000041A8BF0000102FF061A8BF4000000031F -:10149000041A8C0000010300061A8C0400000003EB -:1014A000041A8C1000010301061A8C1400000003BA -:1014B000041A8C2000010302061A8C240000000389 -:1014C000041A8C3000010303061A8C340000000358 -:1014D000041A8C4000010304061A8C440000000327 -:1014E000041A8C5000010305061A8C5400000003F6 -:1014F000041A8C6000010306061A8C6400000003C5 -:10150000041A8C7000010307061A8C740000000393 -:10151000041A8C8000010308061A8C840000000362 -:10152000041A8C9000010309061A8C940000000331 -:10153000041A8CA00001030A061A8CA40000000300 -:10154000041A8CB00001030B061A8CB400000003CF -:10155000041A8CC00001030C061A8CC4000000039E -:10156000041A8CD00001030D061A8CD4000000036D -:10157000041A8CE00001030E061A8CE4000000033C -:10158000041A8CF00001030F061A8CF4000000030B -:10159000041A8D0000010310061A8D0400000003D8 -:1015A000041A8D1000010311061A8D1400000003A7 -:1015B000041A8D2000010312061A8D240000000376 -:1015C000041A8D3000010313061A8D340000000345 -:1015D000041A8D4000010314061A8D440000000314 -:1015E000041A8D5000010315061A8D5400000003E3 -:1015F000041A8D6000010316061A8D6400000003B2 -:10160000041A8D7000010317061A8D740000000380 -:10161000041A8D8000010318061A8D84000000034F -:10162000041A8D9000010319061A8D94000000031E -:10163000041A8DA00001031A061A8DA400000003ED -:10164000041A8DB00001031B061A8DB400000003BC -:10165000041A8DC00001031C061A8DC4000000038B -:10166000041A8DD00001031D061A8DD4000000035A -:10167000041A8DE00001031E061A8DE40000000329 -:10168000041A8DF00001031F061A8DF400000003F8 -:10169000041A8E0000010320061A8E0400000003C5 -:1016A000041A8E1000010321061A8E140000000394 -:1016B000041A8E2000010322061A8E240000000363 -:1016C000041A8E3000010323061A8E340000000332 -:1016D000041A8E4000010324061A8E440000000301 -:1016E000041A8E5000010325061A8E5400000003D0 -:1016F000041A8E6000010326061A8E64000000039F -:10170000041A8E7000010327061A8E74000000036D -:10171000041A8E8000010328061A8E84000000033C -:10172000041A8E9000010329061A8E94000000030B -:10173000041A8EA00001032A061A8EA400000003DA -:10174000041A8EB00001032B061A8EB400000003A9 -:10175000041A8EC00001032C061A8EC40000000378 -:10176000041A8ED00001032D061A8ED40000000347 -:10177000041A8EE00001032E061A8EE40000000316 -:10178000041A8EF00001032F061A8EF400000003E5 -:10179000041A8F0000010330061A8F0400000003B2 -:1017A000041A8F1000010331061A8F140000000381 -:1017B000041A8F2000010332061A8F240000000350 -:1017C000041A8F3000010333061A8F34000000031F -:1017D000041A8F4000010334061A8F4400000003EE -:1017E000041A8F5000010335061A8F5400000003BD -:1017F000041A8F6000010336061A8F64000000038C -:10180000041A8F7000010337061A8F74000000035A -:10181000041A8F8000010338061A8F840000000329 -:10182000041A8F9000010339061A8F9400000003F8 -:10183000041A8FA00001033A061A8FA400000003C7 -:10184000041A8FB00001033B061A8FB40000000396 -:10185000041A8FC00001033C061A8FC40000000365 -:10186000041A8FD00001033D061A8FD40000000334 -:10187000041A8FE00001033E061A8FE400000007FF -:10188000041A62C00020033F061AD0000000007254 -:10189000061AD24800000010061AD6B00000002038 -:1018A000061AD47000000090061AD46800000002E6 -:1018B000061AA000000001C4061A30000000001043 -:1018C000061A308000000010061A310000000010D7 -:1018D000061A318000000010061A330000000012C2 -:1018E000061A339000000070061AD4580000000257 -:1018F000061AD34800000002061AD3580000002040 -:10190000061AA710000001C4061A3040000000109B -:10191000061A30C000000010061A31400000001006 -:10192000061A31C000000010061A334800000012E9 -:10193000061A355000000070061AD460000000023C -:10194000061AD35000000002061AD3D80000002067 -:10195000021AAE2000000000061A5000000000022B -:10196000061A508000000012041A40000002035FB3 -:10197000041A63C000020361061A7000000000042C -:10198000061A320000000008021AAE24000000000F -:10199000061A501000000002061A50C8000000127B -:1019A000041A400800020363041A63C800020365B6 -:1019B000061A701000000004061A32200000000809 -:1019C000021AAE2800000000061A50200000000293 -:1019D000061A511000000012041A4010000203679A -:1019E000041A63D000020369061A70200000000484 -:1019F000061A324000000008021AAE2C0000000057 -:101A0000061A503000000002061A51580000001259 -:101A1000041A40180002036B041A63D80002036D15 -:101A2000061A703000000004061A32600000000838 -:101A3000021AAE3000000000061A504000000002FA -:101A4000061A51A000000012041A40200002036F81 -:101A5000041A63E000020371061A704000000004DB -:101A6000061A328000000008021AAE34000000009E -:101A7000061A505000000002061A51E80000001239 -:101A8000041A402800020373041A63E80002037575 -:101A9000061A705000000004061A32A00000000868 -:101AA000021AAE3800000000061A50600000000262 -:101AB000061A523000000012041A40300002037768 -:101AC000041A63F000020379061A70600000000433 -:101AD000061A32C000000008021AAE3C00000000E6 -:101AE000061A507000000002061A52780000001218 -:101AF000041A40380002037B041A63F80002037DD5 -:101B0000061A707000000004061A32E00000000897 -:101B10000200A468000B01C80200A294071D29114D -:101B20000200A298000000000200A29C009C042475 -:101B30000200A2A0000000000200A2A4000002090E -:101B40000200A270000000000200A2740000000069 -:101B50000200A270000000000200A2740000000059 -:101B60000200A270000000000200A2740000000049 -:101B70000200A270000000000200A2740000000039 -:101B8000020160A000000001020160A400000262E6 -:101B9000020160A800000002020160AC0000001811 -:101BA0000201620400000001020100B40000000113 -:101BB000020100B800000001020100DC0000000189 -:101BC0000201010000000001020101040000000107 -:101BD0000201007C003000000201008400000028A7 -:101BE0000201008C0000000002010130000000042E -:101BF0000201025C00000001020103280000000055 -:101C0000020160580000FFFF020160700000000741 -:101C10000201608000000001020105540000003054 -:101C2000020100C400000001020100CC000000011C -:101C3000020100F800000001020100F000000001B4 -:101C4000020100800030000002010088000000282E -:101C500002010090000000000201013400000004B5 -:101C6000020102DC000000010201032C0000000060 -:101C70000201605C0000FFFF0201607400000007C9 -:101C800002016084000000010201056400000030D0 -:101C9000020100C800000001020100D000000001A4 -:101CA000020100FC00000001020100F4000000013C -:101CB000020C100000000028020C20080000021195 -:101CC000020C200C00000200020C20100000020494 -:101CD000020C201C0000FFFF020C20200000FFFF70 -:101CE000020C20240000FFFF020C20280000FFFF50 -:101CF000020C203800000020020C203C00000021D3 -:101D0000020C204000000022020C204400000023AE -:101D1000020C204800000024020C204C000000258A -:101D2000020C205000000026020C20540000002766 -:101D3000020C205800000028020C205C0000002942 -:101D4000020C20600000002A020C20640000002B1E -:101D5000020C20680000002C020C206C0000002DFA -:101D6000020C20700000002E020C20740000002FD6 -:101D7000020C207800000010060C207C00000007F8 -:101D8000020C209800000011020C209C00000012A0 -:101D9000020C20A000000013060C20A40000001D6F -:101DA000020C211800000001020C211C000000019F -:101DB000020C212000000001060C21240000001D5F -:101DC000020C219800000001060C219C0000000775 -:101DD000020C21B800000001020C21BC000000012F -:101DE000020C21C000000001020C21C4000000010F -:101DF000020C21C800000001020C21CC00000001EF -:101E0000020C21D000000001020C21D400000001CE -:101E1000020C21D800000001020C21DC00000001AE -:101E2000020C21E000000001020C21E4000000018E -:101E3000020C21E800000001020C21EC000000016E -:101E4000020C21F000000001020C21F4000000014E -:101E5000020C21F800000001060C21FC0000000724 -:101E6000020C221800000001060C221C00000007D2 -:101E7000020C223807FFFFFF020C223C0000003F4B -:101E8000020C224007FFFFFF020C22440000000F5B -:101E9000010C224800000000010C224C0000000050 -:101EA000010C225000000000010C22540000000030 -:101EB000010C225800000000010C225C0000000010 -:101EC000010C226000000000010C226400000000F0 -:101ED000010C226800000000010C226C00000000D0 -:101EE000010C227000000000010C227400000000B0 -:101EF000010C227800000000010C227C0000000090 -:101F00000C0C2000000003E80A0C20000000000177 -:101F10000B0C20000000000A020C40080000101109 -:101F2000020C400C00001000020C401000001004D5 -:101F3000020C401400001021020C401C0000FFFFA6 -:101F4000020C40200000FFFF020C40240000FFFFB5 -:101F5000020C40280000FFFF020C40380000004641 -:101F6000020C403C00000010060C40400000000243 -:101F7000020C404800000018020C404C000000F029 -:101F8000060C40500000001F020C40CC0000000175 -:101F9000060C40D00000003A020C41B800000001DD -:101FA000060C41BC00000003020C41C80000000107 -:101FB000020C41CC00000001060C41D00000001AC8 -:101FC000020C423807FFFFFF020C423C0000003FBA -:101FD000020C424007FFFFFF020C42440000000FCA -:101FE000010C424800000000010C424C00000000BF -:101FF000010C425000000000010C4254000000009F -:10200000010C425800000000010C425C000000007E -:10201000010C426000000000010C4264000000005E -:10202000010C426800000000010C426C000000003E -:10203000010C427000000000010C4274000000001E -:10204000010C427800000000010C427C00000000FE -:10205000010C4280000000000C0C4000000003E86E -:102060000A0C4000000000010B0C40000000000AB8 -:10207000060D400000000A00020D0044000000327E -:10208000020D008C02150020020D009002150020A8 -:10209000020D009408100000020D009800000033AB -:1020A000020D009C00000002020D00A000000000D4 -:1020B000020D00A400000005020D00A800000005AC -:1020C000060D00AC00000002020D00B4000000028A -:1020D000020D00B800000003020D00BC0000000269 -:1020E000020D00C000000001020D00C80000000247 -:1020F000020D00CC00000002020D015C0000000196 -:10210000020D016400000001020D016800000002E0 -:10211000020D020400000001020D020C000000206C -:10212000020D021000000040020D021400000040E9 -:10213000020D022000000003020D0224000000181E -:10214000060D028000000012040D03000018037F3A -:10215000060D03600000000C020D004C00000001A1 -:10216000020D005000000002020D005400000000AB -:10217000020D005800000008060D005C000000047D -:10218000020D00C400000004020D00040000000164 -:10219000020D000800000001020D000C000000010B -:1021A000020D001000000001020D001400000001EB -:1021B000020D001800000001020D001C00000001CB -:1021C000020D002000000001020D002400000001AB -:1021D000020D002800000001020D002C000000018B -:1021E000020D003000000001020D0034000000016B -:1021F000020D003800000001020D003C000000014B -:10220000020D011400000009020D011C0000000A6B -:10221000020D012400000000020D012C000000004E -:10222000020D013400000000020D013C0000000B13 -:10223000020D014400000000020D011800000029F9 -:10224000020D01200000002A020D012800000020DC -:10225000020D013000000020020D013800000020B6 -:10226000020D01400000002B020D0148000000207B -:10227000020D011400000019020D011C0000001ADB -:10228000020D012400000010020D012C00000010BE -:10229000020D013400000010020D013C0000001B83 -:1022A000020D014400000010020D01180000003969 -:1022B000020D01200000003A020D0128000000304C -:1022C000020D013000000030020D01380000003026 -:1022D000020D01400000003B020D014800000030EB -:1022E000020D011400000049020D011C0000004A0B -:1022F000020D012400000040020D012C00000040EE -:10230000020D013400000040020D013C0000004BB2 -:10231000020D014400000040020D01180000006998 -:10232000020D01200000006A020D0128000000607B -:10233000020D013000000060020D01380000006055 -:10234000020D01400000006B020D0148000000601A -:10235000020D011400000059020D011C0000005A7A -:10236000020D012400000050020D012C000000505D -:10237000020D013400000050020D013C0000005B22 -:10238000020D014400000050020D01180000007908 -:10239000020D01200000007A020D012800000070EB -:1023A000020D013000000070020D013800000070C5 -:1023B000020D01400000007B020D0148000000708A -:1023C000060E200000000800020E004C0000003243 -:1023D000020E009402150020020E00980215002043 -:1023E000020E009C00000030020E00A00810000049 -:1023F000020E00A400000033020E00A8000000300E -:10240000020E00AC00000031020E00B0000000021D -:10241000020E00B400000004020E00B8000000002C -:10242000020E00BC00000002020E00C0000000020C -:10243000020E00C400000000020E00C800000002EE -:10244000020E00CC00000007020E00D000000002C7 -:10245000020E00D400000002020E00D800000001AD -:10246000020E014400000001020E014C00000001B8 -:10247000020E015000000002020E020400000001E2 -:10248000020E020C00000040020E0210000000408C -:10249000020E021C00000004020E022000000020B8 -:1024A000020E02240000000E020E02280000001B93 -:1024B000060E030000000012040E0280001B0397AA -:1024C000060E02EC00000005020E00540000000C95 -:1024D000020E00580000000C020E005C000000001C -:1024E000020E006000000010020E006400000010E8 -:1024F000060E006800000003020E00DC000000036E -:10250000020E000400000001020E0008000000019D -:10251000020E000C00000001020E0010000000017D -:10252000020E001400000001020E0018000000015D -:10253000020E001C00000001020E0020000000013D -:10254000020E002400000001020E0028000000011D -:10255000020E002C00000001020E003000000001FD -:10256000020E003400000001020E003800000001DD -:10257000020E003C00000001020E004000000001BD -:10258000020E004400000001020E01100000000FC6 -:10259000020E011800000000020E012000000000E1 -:1025A000020E012800000000020E01140000002F9E -:1025B000020E011C00000020020E01240000000099 -:1025C000020E012C00000000020E01100000001F8E -:1025D000020E011800000010020E01200000000091 -:1025E000020E012800000000020E01140000003F4E -:1025F000020E011C00000030020E01240000000049 -:10260000020E012C00000000020E01100000004F1D -:10261000020E011800000040020E01200000000020 -:10262000020E012800000000020E01140000006FDD -:10263000020E011C00000060020E012400000000D8 -:10264000020E012C00000000020E01100000005FCD -:10265000020E011800000050020E012000000000D0 -:10266000020E012800000000020E01140000007F8D -:10267000020E011C00000070020E01240000000088 -:10268000020E012C000000000730040000C9000009 -:10269000083007D8000503B207340000332B0000D0 -:1026A0000734800030A40CCB07350000351A18F52C -:1026B000073580002A8A263C0736000018D830DF0C -:1026C00008364630373A03B40130000000000000FD -:1026D000013000040000000001300008000000008C -:1026E0000130000C0000000001300010000000006C -:1026F0000130001400000000023000200000000142 -:102700000230002400000002023000280000000314 -:102710000230002C000000000230003000000004F5 -:1027200002300034000000010230003800000000D8 -:102730000230003C000000010230004000000004B4 -:102740000230004400000000023000480000000198 -:102750000230004C00000003023000500000000076 -:102760000230005400000001023000580000000454 -:102770000230005C00000000023000600000000138 -:102780000230006400000003023000680000000016 -:102790000230006C000000010230007000000004F4 -:1027A00002300074000000000230007800000004D5 -:1027B0000230007C000000030630008000000002B0 -:1027C000023000A400003FFF023000A8000003FF19 -:1027D0000230022400000000023002340000000039 -:1027E0000230024C00000000023002E40000FFFF53 -:1027F000063020000000080002338BC000000001FA -:10280000023380000000001A023380400000004EB6 -:102810000233808000000010023380C000000020DE -:102820000C3383000007A1200A3383000000013825 -:102830000B338300000013880A338340000000003C -:102840000C338340000001F40B338340000000058B -:10285000023383800007A120023383C0000001F40B -:1028600002331480000000010A33148000000000CD -:10287000063280000000010206322008000000C875 -:10288000063220000000000204328EA0001003B6C1 -:1028900006323EB00000000606323ED800000002BC -:1028A00006323E800000000A04323EA8000203C641 -:1028B00006323E00000000200632500000000400F6 -:1028C0000632400000000004043274C0000203C855 -:1028D00006324110000000020632D0000000003035 -:1028E0000632DD40000000440632DA00000000D06D -:1028F0000632DEA0000000020632E0000000080000 -:1029000006328450000001180632100000000188D1 -:102910000632500000000020063251000000002066 -:102920000632520000000020063253000000002052 -:10293000063254000000002006325500000000203E -:10294000063256000000002006325700000000202A -:102950000632580000000020063259000000002016 -:1029600006325A000000002006325B000000002002 -:1029700006325C000000002006325D0000000020EE -:1029800006325E000000002006325F0000000020DA -:1029900006328DF00000000204328E00000203CAED -:1029A00006328E08000000020632DE9000000002AF -:1029B00006321C4000000038063288B000000118C2 -:1029C00006321620000001880632508000000020E8 -:1029D00006325180000000200632528000000020A4 -:1029E0000632538000000020063254800000002090 -:1029F000063255800000002006325680000000207C -:102A00000632578000000020063258800000002067 -:102A1000063259800000002006325A800000002053 -:102A200006325B800000002006325C80000000203F -:102A300006325D800000002006325E80000000202B -:102A400006325F800000002006328DF80000000290 -:102A500004328E10000203CC06328E1800000002F1 -:102A60000632DE980000000206321D200000003809 -:102A700002328D50000000000632401000000002BB -:102A800002328D5400000000063240200000000297 -:102A900002328D5800000000063240300000000273 -:102AA00002328D5C0000000006324040000000024F -:102AB00002328D600000000006324050000000022B -:102AC00002328D6400000000063240600000000207 -:102AD00002328D68000000000632407000000002E3 -:102AE00002328D6C000000000632408000000002BF -:102AF000072004000091000008200780001003CE8A -:102B0000072400002AFF00000724800015090AC0DE -:102B10000824A9F0692803D001200000000000006B -:102B20000120000400000000012000080000000057 -:102B30000120000C00000000012000100000000037 -:102B4000012000140000000002200020000000010D -:102B500002200024000000020220002800000003E0 -:102B60000220002C000000000220003000000004C1 -:102B700002200034000000010220003800000000A4 -:102B80000220003C00000001022000400000000480 -:102B90000220004400000000022000480000000164 -:102BA0000220004C00000003022000500000000042 -:102BB0000220005400000001022000580000000420 -:102BC0000220005C00000000022000600000000104 -:102BD00002200064000000030220006800000000E2 -:102BE0000220006C000000010220007000000004C0 -:102BF00002200074000000000220007800000004A1 -:102C00000220007C0000000306200080000000027B -:102C1000022000A400003FFF022000A8000003FFE4 -:102C20000220022400000000022002340000000004 -:102C30000220024C00000000022002E40000FFFF1E -:102C4000062020000000080002238BC000000001C5 -:102C500002238000000000100223804000000012C8 -:102C60000223808000000030022380C00000000E9C -:102C70000C2383000007A1200A23830000000138F1 -:102C80000B238300000013880A2383400000000008 -:102C90000C238340000001F40B2383400000000557 -:102CA000022383800007A120022383C0000001F4D7 -:102CB00002231480000000010A2314800000000099 -:102CC000062210000000004206222008000000C872 -:102CD00006222000000000020622B000000000C60C -:102CE0000422B318000503D20622B32C0000000B07 -:102CF0000422B358000503D70622B36C0000000B72 -:102D00000422B398000503DC0622B3AC0000000BDC -:102D10000422B3D8000503E10622B3EC0000000B47 -:102D20000422B418000503E60622B42C0000000BB0 -:102D30000422B458000503EB0622B46C0000000B1B -:102D40000422B498000503F00622B4AC0000000B86 -:102D50000422B4D8000503F50622B4EC0000000BF1 -:102D60000422B518000503FA0622B52C0000000B5A -:102D70000422B558000503FF0622B56C0000000BC5 -:102D80000422B598000504040622B5AC0000000B2F -:102D90000422B5D8000504090622B5EC0000000B9A -:102DA0000422B6180005040E0622B62C0000000B03 -:102DB0000422B658000504130622B66C0000000B6E -:102DC0000422B698000504180622B6AC0000000BD9 -:102DD0000422B6D80005041D0622B6EC0000000B44 -:102DE0000422B718000504220622B72C0000000BAD -:102DF0000422B758000504270622B76C0000000B18 -:102E00000422B7980005042C0622B7AC0000000B82 -:102E10000422B7D8000504310622B7EC0000000BED -:102E20000422B818000504360622B82C0000000B56 -:102E30000422B8580005043B0622B86C0000000BC1 -:102E40000422B898000504400622B8AC0000000B2C -:102E50000422B8D8000504450622B8EC0000000B97 -:102E60000422B9180005044A0622B92C0000000B00 -:102E70000422B9580005044F0622B96C0000000B6B -:102E80000422B998000504540622B9AC0000000BD6 -:102E90000422B9D8000504590622B9EC0000000B41 -:102EA0000422BA180005045E0622BA2C0000000BAA -:102EB0000422BA58000504630622BA6C0000000B15 -:102EC0000422BA98000504680622BAAC0000000B80 -:102ED0000422BAD80005046D0622BAEC00000005F1 -:102EE0000622BB00000000530422BC4C0001047207 -:102EF0000622BC50000000030422BC5C00010473E5 -:102F00000622BC60000000030422BC6C00010474B3 -:102F10000622BC70000000030422BC7C0001047582 -:102F20000622BC80000000030422BC8C0001047651 -:102F30000622BC90000000030422BC9C0001047720 -:102F40000622BCA0000000030422BCAC00010478EF -:102F50000622BCB0000000030422BCBC00010479BE -:102F60000622880000000100062280000000020006 -:102F7000042212700010047A06223000000000C003 -:102F800006226700000001000622900000000400F5 -:102F900004226B080020048A022212C0FFFFFFFFF8 -:102FA000062211E800000002062212C800000009F3 -:102FB000062212EC0000000906228C000000000826 -:102FC0000222114800000000062213200000000623 -:102FD000062233000000000206226040000000309C -:102FE00006228C20000000080222114C0000000084 -:102FF00006221338000000060622330800000002F3 -:10300000062261000000003006228C40000000080B -:10301000022211500000000006221350000000069A -:103020000622331000000002062261C000000030BA -:1030300006228C60000000080222115400000000EB -:103040000622136800000006062233180000000262 -:10305000062262800000003006228C8000000008FA -:103060000222115800000000062213800000000612 -:1030700006223320000000020622634000000030D8 -:1030800006228CA0000000080222115C0000000053 -:1030900006221398000000060622332800000002D2 -:1030A000062264000000003006228CC000000008E8 -:1030B0000222116000000000062213B0000000068A -:1030C0000622333000000002062264C000000030F7 -:1030D00006228CE0000000080222116400000000BB -:1030E000062213C800000006062233380000000242 -:1030F0000622658000000030021610000000002843 -:1031000002170008000000020217002C0000000354 -:103110000217003C000000040217004800000002F3 -:103120000217004C000000900217005000000090B1 -:103130000217005400800090021700580810000089 -:10314000021700600000008A02170064000000807F -:1031500002170068000000810217006C0000008068 -:10316000021700700000000602170078000007D068 -:103170000217007C0000076C02170038007C100466 -:10318000021700040000000F061640240000000291 -:10319000021640700000001C0216420800000001E8 -:1031A0000216421000000001021642200000000139 -:1031B0000216422800000001021642300000000101 -:1031C00002164238000000010216426000000002B0 -:1031D0000C16401C0003D0900A16401C0000009CF6 -:1031E0000B16401C000009C4021640300000000805 -:1031F000021640340000000C021640380000001097 -:1032000002164044000000200216400000000001A9 -:10321000021640D80000000102164008000000011C -:103220000216400C000000010216401000000001D0 -:103230000216424000000000021642480000000052 -:103240000616427000000002021642500000000004 -:1032500002164258000000000616428000000002DC -:1032600002166008000012240216600C0000121002 -:1032700002166010000012140216601C0000FFFF0E -:10328000021660200000FFFF021660240000FFFF0E -:10329000021660280000FFFF0216603800000020C0 -:1032A0000216603C0000002006166040000000028C -:1032B00002166048000000230216604C0000002443 -:1032C000021660500000002502166054000000261F -:1032D00002166058000000270216605C00000029FA -:1032E000021660600000002A021660640000002BD5 -:1032F000021660680000002C0216606C0000002DB1 -:1033000002166070000000EC0216607400000011EC -:1033100002166078000000120616607C0000000FA4 -:10332000021660B800000001021660BC0000000137 -:10333000061660C00000000C021660F000000001DC -:10334000061660F400000031021661B800000001AA -:10335000061661BC0000000D021661F000000001BD -:10336000061661F4000000110216623807FFFFFF25 -:103370000216623C0000003F0216624007FFFFFF9A -:10338000021662440000000F0116624800000000AF -:103390000116624C0000000001166250000000009F -:1033A000011662540000000001166258000000007F -:1033B0000116625C0000000001166260000000005F -:1033C000011662640000000001166268000000003F -:1033D0000116626C0000000001166270000000001F -:1033E00001166274000000000116627800000000FF -:1033F0000116627C000000000C166000000003E86B -:103400000A166000000000010B1660000000000AB0 -:1034100002168040000000060216804400000005ED -:10342000021680480000000A0216804C00000005C9 -:103430000216805400000002021680CC0000000436 -:10344000021680D000000004021680D400000004A0 -:10345000021680D800000004021680DC0000000480 -:10346000021680E000000004021680E40000000460 -:10347000021680E800000004021688040000000420 -:10348000021680300000007C021680340000003DEF -:10349000021680380000003F0216803C0000009CAD -:1034A000021680F000000007061680F400000005F8 -:1034B0000216880C010101010216810800000000BB -:1034C0000216810C000000040216811000000004A6 -:1034D0000216811400000002021688100801200460 -:1034E00002168118000000050216811C000000056C -:1034F000021681200000000502168124000000054C -:103500000216882C200810010216812800000008ED -:103510000216812C00000006021681300000000710 -:1035200002168134000000000216883001010120DB -:1035300006168138000000040216883401010101DA -:1035400002168148000000000216814C00000004B1 -:10355000021681500000000402168154000000028F -:103560000216883808012004021681580000000560 -:103570000216815C00000005021681600000000553 -:1035800002168164000000050216883C2008100124 -:1035900002168168000000080216816C0000000617 -:1035A00002168170000000070216817400000001FD -:1035B00002168840010101200216817800000001F6 -:1035C0000216817C000000010216818000000001CB -:1035D00002168184000000010216884401010101E5 -:1035E00002168188000000010216818C0000000490 -:1035F000021681900000000402168194000000026F -:10360000021688480801200402168198000000056F -:103610000216819C00000005021681A00000000532 -:10362000021681A40000000502168814200810016B -:10363000021681A800000008021681AC00000006F6 -:10364000021681B000000007021681B400000001DC -:103650000216881801010120021681B8000000013D -:10366000021681BC00000001021681C000000001AA -:10367000021681C4000000010216881C010101012C -:10368000021681C800000001021681CC000000046F -:10369000021681D000000004021681D4000000024E -:1036A0000216882008012004021681D800000005B7 -:1036B000021681DC00000005021681E00000000512 -:1036C000021681E40000000502168824200810017B -:1036D000021681E800000008021681EC00000006D6 -:1036E000021681F0000000070216E40C0000000042 -:1036F00002168828010101200616E41000000004CB -:103700000216E000010101010216E42000000000A1 -:103710000216E424000000040216E428000000045D -:103720000216E42C000000020216E0040801200446 -:103730000216E430000000050216E4340000000523 -:103740000216E438000000050216E43C0000000503 -:103750000216E008200810010216E44000000008EC -:103760000216E444000000060216E44800000007C8 -:103770000216E44C000000000216E00C01010120DA -:103780000616E450000000040216E01001010101D9 -:103790000216E460000000000216E4640000000469 -:1037A0000216E468000000040216E46C0000000247 -:1037B0000216E014080120040216E470000000055F -:1037C0000216E474000000050216E478000000050B -:1037D0000216E47C000000050216E0182008100123 -:1037E0000216E480000000080216E48400000006CF -:1037F0000216E488000000070216E48C00000001B5 -:103800000216E01C010101200216E49000000001F4 -:103810000216E494000000010216E4980000000182 -:103820000216E49C000000010216E02001010101E3 -:103830000216E4A0000000010216E4A40000000447 -:103840000216E4A8000000040216E4AC0000000226 -:103850000216E024080120040216E4B0000000056E -:103860000216E4B4000000050216E4B800000005EA -:103870000216E4BC000000050216E0282008100132 -:103880000216E4C0000000080216E4C400000006AE -:103890000216E4C8000000070216E4CC0000000194 -:1038A0000216E02C010101200216E4D00000000104 -:1038B0000216E4D4000000010216E4D80000000162 -:1038C0000216E4DC000000010216E03001010101F3 -:1038D0000216E4E0000000010216E4E40000000427 -:1038E0000216E4E8000000040216E4EC0000000206 -:1038F0000216E034080120040216E4F0000000057E -:103900000216E4F4000000050216E4F800000005C9 -:103910000216E4FC000000050216E0382008100141 -:103920000216E500000000080216E504000000068B -:103930000216E508000000070216E03C0101012024 -:1039400002168240003F003F021682440000000041 -:103950000216E524003F003F0216E52800000000A3 -:1039600002168248000000000216824C003F003F11 -:103970000216E52C000000000216E530003F003F73 -:10398000021682500100010002168254010001005B -:103990000216E534010001000216E53801000100BD -:1039A00006168258000000020216E53C00000000E6 -:1039B0000216E540000000000216826000C000C050 -:1039C0000216826400C000C00216E54400C000C0B8 -:1039D0000216E54800C000C0021682681E001E00E4 -:1039E0000216826C1E001E000216E54C1E001E0010 -:1039F0000216E5501E001E000216827040004000B4 -:103A000002168274400040000216E5544000400057 -:103A10000216E558400040000216827880008000BF -:103A20000216827C800080000216E55C8000800027 -:103A30000216E560800080000216828020002000CF -:103A400002168284200020000216E5642000200077 -:103A50000216E56820002000061682880000000299 -:103A60000216E56C000000000216E5700000000080 -:103A700002168290000000000216829400000000EE -:103A80000216E574000000000216E5780000000050 -:103A900002168298000000000216829C00000000BE -:103AA0000216E57C000000000216E5800000000020 -:103AB000021682A000000000021682A4000000018D -:103AC000061682A80000000A021681F400000C0805 -:103AD000021681F800000040021681FC000001007F -:103AE0000216820000000020021682040000001767 -:103AF00002168208000000800216820C00000200FC -:103B000002168210000000000216821801FF01FF59 -:103B10000216821401FF01FF0216E51001FF01FFEA -:103B20000216E50C01FF01FF0216823C00000013A3 -:103B3000021680900000013F0216806000000140E4 -:103B40000216806400000140061680680000000232 -:103B500002168070000000C0061680740000000786 -:103B60000216809C00000048021680A00000004859 -:103B7000061680A400000002021680AC0000004877 -:103B8000061680B000000007021682380000800090 -:103B900002168234000025E40216809400007FFFA4 -:103BA00002168220000F000F0216821C000F000F69 -:103BB0000216E518000F000F0216E514000F000FA3 -:103BC000021682280000000002168224FFFFFFFF79 -:103BD0000216E520000000000216E51CFFFFFFFFB3 -:103BE0000216E6BC000000000216E6C0000000025B -:103BF0000216E6C4000000010216E6C80000000339 -:103C00000216E6CC000000040216E6D00000000612 -:103C10000216E6D4000000050216E6D800000007F0 -:103C2000021680EC000000FF0214000000000001FA -:103C30000214000C0000000102140040000000010A -:103C40000214004400007FFF0214000C000000007A -:103C500002140000000000000214006C00000000CC -:103C600002140004000000010214003000000001F2 -:103C700002140004000000000214005C00000000B8 -:103C800002140008000000010214003400000001CA -:103C90000214000800000000021400600000000090 -:103CA00006028000000020000202005800000032DE -:103CB000020200A003150020020200A40315002048 -:103CC000020200A801000030020200AC081000004F -:103CD000020200B000000033020200B40000003015 -:103CE000020200B800000031020200BC0000000324 -:103CF000020200C000000006020200C4000000032F -:103D0000020200C800000003020200CC0000000212 -:103D1000020200D000000000020200D400000002F5 -:103D2000020200DC00000000020200E000000006C9 -:103D3000020200E400000004020200E800000002A9 -:103D4000020200EC00000002020200F0000000018C -:103D5000020200FC00000006020201200000000038 -:103D60000202013400000002020201B00000000162 -:103D70000202020C00000001020202140000000115 -:103D80000202021800000002020204040000000106 -:103D90000202040C00000040020204100000004077 -:103DA0000202041C000000040202042000000020A3 -:103DB0000202042400000002020204280000002085 -:103DC000060205000000001204020480002004AA7C -:103DD000020200600000000F020200640000000701 -:103DE00002020068000000000202006C0000000EE9 -:103DF000020200700000000E0602007400000003C2 -:103E0000020200F4000000040202000400000001AD -:103E100002020008000000010202000C0000000184 -:103E20000202001000000001020200140000000164 -:103E300002020018000000010202001C0000000144 -:103E40000202002000000001020200240000000124 -:103E500002020028000000010202002C0000000104 -:103E600002020030000000010202003400000001E4 -:103E700002020038000000010202003C00000001C4 -:103E800002020040000000010202004400000001A4 -:103E900002020048000000010202004C0000000184 -:103EA000020200500000000102020108000000C8E8 -:103EB0000202011800000002020201C4000000001A -:103EC000020201CC00000000020201D40000000246 -:103ED000020201DC00000002020201E4000000FF17 -:103EE000020201EC000000FF0202010000000000DD -:103EF0000202010C000000C80202011C00000002C6 -:103F0000020201C800000000020201D0000000000F -:103F1000020201D800000002020201E000000002DB -:103F2000020201E8000000FF020201F0000000FFB1 -:103F3000020201040000000002020108000000C8A3 -:103F40000202011800000002020201C40000000089 -:103F5000020201CC00000000020201D400000002B5 -:103F6000020201DC00000002020201E4000000FF86 -:103F7000020201EC000000FF02020100000000004C -:103F80000202010C000000C80202011C0000000235 -:103F9000020201C800000000020201D0000000007F -:103FA000020201D800000002020201E0000000024B -:103FB000020201E8000000FF020201F0000000FF21 -:103FC000020201040000000002020108000000C813 -:103FD0000202011800000002020201C400000000F9 -:103FE000020201CC00000000020201D40000000225 -:103FF000020201DC00000002020201E4000000FFF6 -:10400000020201EC000000FF0202010000000000BB -:104010000202010C000000C80202011C00000002A4 -:10402000020201C800000000020201D000000000EE -:10403000020201D800000002020201E000000002BA -:10404000020201E8000000FF020201F0000000FF90 -:10405000020201040000000002020108000000C882 -:104060000202011800000002020201C40000000068 -:10407000020201CC00000000020201D40000000294 -:10408000020201DC00000002020201E4000000FF65 -:10409000020201EC000000FF02020100000000002B -:1040A0000202010C000000C80202011C0000000214 -:1040B000020201C800000000020201D0000000005E -:1040C000020201D800000002020201E0000000022A -:1040D000020201E8000000FF020201F0000000FF00 -:1040E00002020104000000000728040000A30000F1 -:1040F000082807B8000904CA072C000034F10000A2 -:10410000072C800038A60D3D072D000037B61B6731 -:10411000072D800032632955072E00001C6835EEFC -:10412000082E48B036EA04CC012800000000000048 -:104130000128000400000000012800080000000021 -:104140000128000C00000000012800100000000001 -:1041500001280014000000000228002000000001D7 -:1041600002280024000000020228002800000003AA -:104170000228002C0000000002280030000000048B -:10418000022800340000000102280038000000006E -:104190000228003C0000000102280040000000044A -:1041A000022800440000000002280048000000012E -:1041B0000228004C0000000302280050000000000C -:1041C00002280054000000010228005800000004EA -:1041D0000228005C000000000228006000000001CE -:1041E00002280064000000030228006800000000AC -:1041F0000228006C0000000102280070000000048A -:10420000022800740000000002280078000000046A -:104210000228007C00000003062800800000000245 -:10422000022800A400003FFF022800A8000003FFAE -:1042300002280224000000000228023400000000CE -:104240000228024C00000000022802E40000FFFFE8 -:104250000628200000000800022B8BC0000000018F -:10426000022B800000000000022B8040000000189C -:10427000022B80800000000C022B80C00000006632 -:104280000C2B83000007A1200A2B830000000138BB -:104290000B2B8300000013880A2B834000000000D2 -:1042A0000C2B8340000001F40B2B83400000000521 -:1042B000022B83800007A120022B83C0000001F4A1 -:1042C000022B1480000000010A2B14800000000063 -:1042D000062A9AF800000004042A9B08000204CE73 -:1042E000062A9B1000000006062A90800000004865 -:1042F000062A2008000000C8062A2000000000024C -:10430000062A91A800000086062A900000000020DE -:10431000062A93C800000003042A93D4000104D0A5 -:10432000062A9DA800000002042A9498000404D1E3 -:10433000042A9D58000104D5062A9D5C0000001146 -:10434000042ACB20001004D6042A3000000204E620 -:10435000062A300800000100062A40400000001034 -:10436000042A4000001004E8042A8408000204F82B -:10437000062A9DA000000002062AB000000000509E -:10438000062ABB7000000070062AB150000000022F -:10439000062ABB6000000004062AD00000000800C6 -:1043A000062AC00000000150062A94A8000000322E -:1043B000062A502000000002062A503000000002A9 -:1043C000062A500000000002062A501000000002D9 -:1043D000022A520800000001042A9B28000204FA65 -:1043E000062A963800000022042A96C0000104FC28 -:1043F000062A96C400000003062A976800000022DF -:10440000042A97F0000104FD062A97F40000000337 -:10441000062A989800000022042A9920000104FE30 -:10442000062A992400000003062A99C800000022E9 -:10443000042A9A50000104FF062A9A54000000033F -:10444000062AB14000000002062AC54000000150C3 -:10445000062A957000000032062A5028000000024B -:10446000062A503800000002062A50080000000208 -:10447000062A501800000002022A520C0000000117 -:10448000042A9B3000020500062A96D00000002274 -:10449000042A975800010502062A975C00000003D1 -:1044A000062A980000000022042A988800010503CB -:1044B000062A988C00000003062A9930000000228A -:1044C000042A99B800010504062A99BC00000003DB -:1044D000062A9A6000000022042A9AE800010505D5 -:1044E000062A9AEC00000003062AB14800000002E8 -:1044F000022ACA8000000000042A9B38001005062A -:10450000062A50480000000E022ACA84000000005B -:10451000042A9B7800100516062A50800000000E21 -:10452000022ACA8800000000042A9BB80010052651 -:10453000062A50B80000000E022ACA8C00000000B3 -:10454000042A9BF800100536062A50F00000000EE1 -:10455000022ACA9000000000042A9C380010054678 -:10456000062A51280000000E022ACA94000000000A -:10457000042A9C7800100556062A51600000000E9F -:10458000022ACA9800000000042A9CB800100566A0 -:10459000062A51980000000E022ACA9C0000000062 -:1045A000042A9CF800100576062A51D00000000E5F -:1045B000021010080000000102101050000000015D -:1045C000021010000003D000021010040000003D93 -:1045D0000910180002000586091011000010078656 -:1045E0000610114000000008091011600010079625 -:1045F000061011A00000001806102400000000E0C2 -:104600000210201C00000000021020200000000109 -:10461000021020C00000000202102004000000016F -:10462000021020080000000109103C00000507A648 -:1046300009103800000507AB09103820000507B045 -:1046400006104C000000010002104028000000107D -:104650000210404400003FFF0210405800280000B4 -:10466000021040840084924A02104058000000006A -:104670000210800000001080021080AC00000000DA -:1046800002108038000000100210810000000000BD -:10469000061081200000000202108008000002B510 -:1046A0000210801000000000061082000000004A86 -:1046B000021081080001FFFF061081400000000287 -:1046C0000210800000001A800610900000000024F4 -:1046D000061091200000004A061093700000004A66 -:1046E000061095C00000004A0210800400001080EF -:1046F000021080B0000000010210803C0000001099 -:104700000210810400000000061081280000000251 -:104710000210800C000002B502108014000000009E -:10472000061084000000004A0210810C0001FFFF07 -:1047300006108148000000020210800400001A8068 -:104740000610909000000024061092480000004AD5 -:10475000061094980000004A061096E80000004AEF -:104760000210800000001080021080AC00000002E7 -:1047700002108038000000100210810000000000CC -:10478000061081200000000202108008000002B51F -:104790000210801000000000061082000000004A95 -:1047A000021081080001FFFF061081400000000296 -:1047B0000210800000001A80061090000000002403 -:1047C000061091200000004A061093700000004A75 -:1047D000061095C00000004A0210800400001080FE -:1047E000021080B0000000030210803C00000010A6 -:1047F0000210810400000000061081280000000261 -:104800000210800C000002B50210801400000000AD -:10481000061084000000004A0210810C0001FFFF16 -:1048200006108148000000020210800400001A8077 -:104830000610909000000024061092480000004AE4 -:10484000061094980000004A061096E80000004AFE -:104850000210800000001080021080AC00000004F4 -:1048600002108038000000100210810000000000DB -:10487000061081200000000202108008000002B52E -:104880000210801000000000061082000000004AA4 -:10489000021081080001FFFF0610814000000002A5 -:1048A0000210800000001A80061090000000002412 -:1048B000061091200000004A061093700000004A84 -:1048C000061095C00000004A02108004000010800D -:1048D000021080B0000000050210803C00000010B3 -:1048E0000210810400000000061081280000000270 -:1048F0000210800C000002B50210801400000000BD -:10490000061084000000004A0210810C0001FFFF25 -:1049100006108148000000020210800400001A8086 -:104920000610909000000024061092480000004AF3 -:10493000061094980000004A061096E80000004A0D -:104940000210800000001080021080AC0000000601 -:1049500002108038000000100210810000000000EA -:10496000061081200000000202108008000002B53D -:104970000210801000000000061082000000004AB3 -:10498000021081080001FFFF0610814000000002B4 -:104990000210800000001A80061090000000002421 -:1049A000061091200000004A061093700000004A93 -:1049B000061095C00000004A02108004000010801C -:1049C000021080B0000000070210803C00000010C0 -:1049D000021081040000000006108128000000027F -:1049E0000210800C000002B50210801400000000CC -:1049F000061084000000004A0210810C0001FFFF35 -:104A000006108148000000020210800400001A8095 -:104A10000610909000000024061092480000004A02 -:104A2000061094980000004A061096E80000004A1C -:104A3000021205B0000000010212049000E383405E -:104A40000212051400003C100212066C0000000166 -:104A5000021206700000000002120494FFFFFFFF24 -:104A600002120498FFFFFFFF0212049CFFFFFFFFEA -:104A7000021204A0FFFFFFFF021204A4FFFFFFFFCA -:104A8000021204A8FFFFFFFF021204ACFFFFFFFFAA -:104A9000021204B0FFFFFFFF021204BCFFFFFFFF82 -:104AA000021204C0FFFFFFFF021204C4FFFFFFFF5A -:104AB000021204C8FFFFFFFF021204CCFFFFFFFF3A -:104AC000021204D0FFFFFFFF021204D8FFFFFFFF16 -:104AD000021204DCFFFFFFFF021204E0FFFFFFFFF2 -:104AE000021204E4FFFFFFFF021204E8FFFFFFFFD2 -:104AF000021204ECFFFFFFFF021204F0FFFFFFFFB2 -:104B0000021204F4FFFFFFFF021204F8FFFFFFFF91 -:104B1000021204FCFFFFFFFF02120500FFFFFFFF70 -:104B200002120504FFFFFFFF02120508FFFFFFFF4F -:104B30000212050CFFFFFFFF02120510FFFFFFFF2F -:104B4000021204D4FF809000021204B4F00050005E -:104B5000021204B8F00010000212039000000008D6 -:104B60000212039C00000008021203A000000008CB -:104B7000021203A400000002021203BC00000004A1 -:104B8000021203C000000005021203C4000000046A -:104B9000021203D0000000000212036C00000001AA -:104BA000021203680000003F021201BC0000004036 -:104BB000021201C000001808021201C4000008031C -:104BC000021201C800000803021201CC00000040DC -:104BD000021201D000000003021201D400000803F9 -:104BE000021201D800000803021201DC00000803D1 -:104BF000021201E000010003021201E400000803B8 -:104C0000021201E800000803021201EC0000000398 -:104C1000021201F000000003021201F40000000380 -:104C2000021201F800000003021201FC0000000360 -:104C3000021202000000000302120204000000033E -:104C400002120208000000030212020C000000031E -:104C500002120210000000030212021400000003FE -:104C600002120218000000030212021C00000003DE -:104C700002120220000000030212022400000003BE -:104C800002120228000024030212022C0000002F4E -:104C90000212023000000009021202340000001962 -:104CA00002120238000001840212023C000001835B -:104CB0000212024000000306021202440000001922 -:104CC00002120248000000060212024C0000030615 -:104CD00002120250000003060212025400000306F2 -:104CE0000212025800000C860212025C0000030649 -:104CF00002120260000003060212026400000006B5 -:104D000002120268000000060212026C0000000697 -:104D10000212027000000006021202740000000677 -:104D200002120278000000060212027C0000000657 -:104D30000212028000000006021202840000000637 -:104D400002120288000000060212028C0000000617 -:104D500002120290000000060212029400000006F7 -:104D600002120298000000060212029C00000006D7 -:104D7000021202A000000306021202A400000013A7 -:104D8000021202A800000006021202B00000100485 -:104D9000021202B400001004021203240010644046 -:104DA0000212032800106440021205B40000000142 -:104DB000021201B0000000010600A0000000000C7B -:104DC0000200A050000000000200A05400000000FB -:104DD0000200A0EC555400000200A0F055555555B6 -:104DE0000200A0F4000055550200A0F8F0000000F9 -:104DF0000200A0FC555400000200A1005555555575 -:104E00000200A104000055550200A108F0000000B6 -:104E10000200A18C555400000200A1905555555533 -:104E20000200A194000055550200A198F000000076 -:104E30000200A19C000000000200A1A000010000EF -:104E40000200A1A4000050140200A1A8000000006C -:104E50000200A45C00000C000200A61C000000037D -:104E60000200A06CFF5C00000200A070FFF55FFF75 -:104E70000200A0740000FFFF0200A078F00003E031 -:104E80000200A07C000000000200A0800000A00042 -:104E90000600A084000000050200A0980FE00000BA -:104EA0000600A09C000000070200A0B8000004005B -:104EB0000600A0BC000000030200A0C80000100013 -:104EC0000600A0CC000000030200A0D800004000B3 -:104ED0000600A0DC000000030200A0E800010000C2 -:104EE0000600A22C000000040200A10CFF5C0000E0 -:104EF0000200A110FFF55FFF0200A1140000FFFFF8 -:104F00000200A118F00003E00200A11C0000000054 -:104F10000200A1200000A0000600A124000000055E -:104F20000200A1380FE000000600A13C00000007CD -:104F30000200A158000008000600A15C0000000368 -:104F40000200A168000020000600A16C0000000320 -:104F50000200A178000080000600A17C0000000390 -:104F60000200A188000200000600A23C000000042C -:104F70000200A030000000000200A0340000000089 -:104F80000200A038000000000200A03C0000000069 -:104F90000200A040000000000200A0440000000049 -:104FA0000200A048000000000200A04C0000000029 -:104FB00000000000000000000000003000000000C1 -:104FC00000000000000000000000000000000000E1 -:104FD00000000000000000000000000000000000D1 -:104FE0000000000000300031000000000000000060 -:104FF00000000000000000000000000000000000B1 -:1050000000000000000000000000000000000000A0 -:10501000003100520000000000000000000000000D -:105020000000000000000000000000000000000080 -:105030000000000000000000000000000052008995 -:1050400000000000000000000089008D008D00912C -:1050500000910095009500990099009D009D00A188 -:1050600000A100A500A500A900A900AE00AE00B1F6 -:1050700000B100B4000000000000000000000000CB -:105080000000000000000000000000000000000020 -:105090000000000000B40309030903130313031DF8 -:1050A000031D03240324032B032B03320332033990 -:1050B00003390340034003470347034E034E0355A0 -:1050C00000000000000000000000000000000000E0 -:1050D00000000000000000000000000000000000D0 -:1050E00000000000000000000000000000000000C0 -:1050F00000000000000000000000000000000000B0 -:10510000000000000000000000000000000000009F -:10511000000000000000000000000000000000008F -:10512000000000000000000000000000000000007F -:10513000000000000000000000000000000000006F -:10514000000000000000000000000000000000005F -:10515000000000000000000000000000000000004F -:10516000000000000000000000000000000000003F -:105170000355035B0000000000000000035B035CBC -:10518000035C035D035D035E035E035F035F036017 -:1051900003600361036103620362036300000000B4 -:1051A00000000000000000000000000000000000FF -:1051B00000000000000000000000000000000000EF -:1051C00000000000000000000363036D036D037B1B -:1051D000037B0389000000000000000000000000C5 -:1051E00000000000000000000000000000000000BF -:1051F00000000000000000000000000000000000AF -:10520000000000000000000000000000000000009E -:10521000000000000000000000000000000000008E -:105220000389038A00000000000000000000000065 -:10523000000000000000000000000000000000006E -:10524000000000000000000000000000038A03D6F8 -:10525000000000000000000000000000000000004E -:10526000000000000000000000000000000000003E -:10527000000000000000000003D604010000000050 -:10528000000000000000000000000000000000001E -:10529000000000000000000000000000000000000E -:1052A00000000000040104330000000000000000C2 -:1052B0000433043A043A0441044104480448044FC6 -:1052C000044F04560456045D045D04640464046BD6 -:1052D000046B04A4000000000000000004A404A863 -:1052E00004A804AC04AC04B004B004B404B404B81E -:1052F00004B804BC04BC04C004C004C404C4051342 -:105300000513052A052A05410541054305430545C1 -:1053100005450547054705490549054B054B054D1D -:10532000054D054F054F0551055105E805E805E90F -:1053300005E905EA05EA05EF05EF05F405F405F9C9 -:1053400005F905FE05FE0603060306080608060D18 -:10535000060D0612061206130000000000000000F1 -:10536000000000000000000000000000000000003D -:10537000000000000000000000000000000000002D -:1053800006130624000000000000000000000000DA -:10539000000000000000000000000000000000000D -:1053A0000000000000000000000000000624063994 -:1053B0000639063C063C063F0000000000000000E5 -:1053C00000000000000000000000000000000000DD -:1053D0000000000000000000063F0675000000000D -:1053E00000000000000000000000000000000000BD -:1053F00000000000000000000000000000000000AD -:1054000000000000067507780000000000000000A2 -:10541000000000000000000000000000000000008C -:10542000000000000000000000000000000000007C -:105430000778077F077F078307830787000000003F -:10544000000000000000000000000000000000005C -:10545000000000000000000000000000078707C8EF -:10546000000000000000000007C807D107D107DADC -:1054700007DA07E307E307EC07EC07F507F507FE94 -:1054800007FE080708070810081008670867087C67 -:10549000087C089108910894089408970897089A3E -:1054A000089A089D089D08A008A008A308A308A6BC -:1054B00008A608A908A908B2000000000000000022 -:1054C00000000000000000000000000000000000DC -:1054D00000000000000000000000000000000000CC -:1054E00008B208B800000000000000000000000042 -:1054F00000000000000000000000000000000000AC -:1055000000000000000000000000000008B808BB18 -:10551000000000000000000000000000000000008B -:10552000000000000000000000000000000000007B -:10553000000000000000000008BB08C100000000DF -:10554000000000000000000000000000000000005B -:10555000000000000000000000000000000000004B -:10556000000000000000000000000000000000003B -:1055700008C108D008D008DF08DF08EE08EE08FDF3 -:1055800008FD090C090C091B091B092A092A0939FC -:10559000093909AA00000000000000000000000016 -:1055A00000000000000000000000000000000000FB -:1055B00000000000000000000000000009AA09BF70 -:1055C00009BF09D009D009E109E109E209E209E3CB -:1055D00009E309E409E409E509E509E609E609E75B -:1055E00009E709E809E809E90000000000000000F7 -:1055F00000000000000000000000000000000000AB -:10560000000000000000000000000000000000009A -:10561000000000000000000000000000000000008A -:10562000000000000000000000000000000000007A -:10563000000000000000000000000000000000006A -:10564000000000000000000000000000000000005A -:10565000000000000000000000000000000000004A -:10566000000000000000000000000000000000003A -:10567000000000000000000000000000000000002A -:10568000000000000000000000000000000000001A -:10569000000000000000000000000000000000000A -:1056A00000000000000000000000000000000000FA -:1056B00000000000000000000000000000000000EA -:1056C000000000000000000000010000000204C013 -:1056D0000003098000040E4000051300000617C0F7 -:1056E00000071C800008214000092600000A2AC08B -:1056F000000B2F80000C3440000D3900000E3DC01F -:10570000000F42800010474000114C00001250C0B2 -:105710000013558000145A4000155F00001663C046 -:105720000017688000186D4000197200001A76C0DA -:10573000001B7B80001C8040001D8500001E89C06E -:10574000001F8E80000093400000200000004000F9 -:1057500000006000000080000000A0000000C00009 -:105760000000E000000100000001200000014000F6 -:1057700000016000000180000001A0000001C000E5 -:105780000001E000000200000002200000024000D2 -:1057900000026000000280000002A0000002C000C1 -:1057A0000002E000000300000003200000034000AE -:1057B00000036000000380000003A0000003C0009D -:1057C0000003E0000004000000042000000440008A -:1057D00000046000000480000004A0000004C00079 -:1057E0000004E00000050000000520000005400066 -:1057F00000056000000580000005A0000005C00055 -:105800000005E00000060000000620000006400041 -:1058100000066000000680000006A0000006C00030 -:105820000006E0000007000000072000000740001D -:1058300000076000000780000007A0000007C0000C -:105840000007E000000800000008200000084000F9 -:1058500000086000000880000008A0000008C000E8 -:105860000008E000000900000009200000094000D5 -:1058700000096000000980000009A0000009C000C4 -:105880000009E000000A0000000A2000000A4000B1 -:10589000000A6000000A8000000AA000000AC000A0 -:1058A000000AE000000B0000000B2000000B40008D -:1058B000000B6000000B8000000BA000000BC0007C -:1058C000000BE000000C0000000C2000000C400069 -:1058D000000C6000000C8000000CA000000CC00058 -:1058E000000CE000000D0000000D2000000D400045 -:1058F000000D6000000D8000000DA000000DC00034 -:10590000000DE000000E0000000E2000000E400020 -:10591000000E6000000E8000000EA000000EC0000F -:10592000000EE000000F0000000F2000000F4000FC -:10593000000F6000000F8000000FA000000FC000EB -:10594000000FE000001000000010200000104000D8 -:1059500000106000001080000010A0000010C000C7 -:105960000010E000001100000011200000114000B4 -:1059700000116000001180000011A0000011C000A3 -:105980000011E00000120000001220000012400090 -:1059900000126000001280000012A0000012C0007F -:1059A0000012E0000013000000132000001340006C -:1059B00000136000001380000013A0000013C0005B -:1059C0000013E00000140000001420000014400048 -:1059D00000146000001480000014A0000014C00037 -:1059E0000014E00000150000001520000015400024 -:1059F00000156000001580000015A0000015C00013 -:105A00000015E000001600000016200000164000FF -:105A100000166000001680000016A0000016C000EE -:105A20000016E000001700000017200000174000DB -:105A300000176000001780000017A0000017C000CA -:105A40000017E000001800000018200000184000B7 -:105A500000186000001880000018A0000018C000A6 -:105A60000018E00000190000001920000019400093 -:105A700000196000001980000019A0000019C00082 -:105A80000019E000001A0000001A2000001A40006F -:105A9000001A6000001A8000001AA000001AC0005E -:105AA000001AE000001B0000001B2000001B40004B -:105AB000001B6000001B8000001BA000001BC0003A -:105AC000001BE000001C0000001C2000001C400027 -:105AD000001C6000001C8000001CA000001CC00016 -:105AE000001CE000001D0000001D2000001D400003 -:105AF000001D6000001D8000001DA000001DC000F2 -:105B0000001DE000001E0000001E2000001E4000DE -:105B1000001E6000001E8000001EA000001EC000CD -:105B2000001EE000001F0000001F2000001F4000BA -:105B3000001F6000001F8000001FA000001FC000A9 -:105B4000001FE00000200000002020000020400096 -:105B500000206000002080000020A0000020C00085 -:105B60000020E00000210000002120000021400072 -:105B700000216000002180000021A0000021C00061 -:105B80000021E0000022000000222000002240004E -:105B900000226000002280000022A0000022C0003D -:105BA0000022E0000023000000232000002340002A -:105BB00000236000002380000023A0000023C00019 -:105BC0000023E00000240000002420000024400006 -:105BD00000246000002480000024A0000024C000F5 -:105BE0000024E000002500000025200000254000E2 -:105BF00000256000002580000025A0000025C000D1 -:105C00000025E000002600000026200000264000BD -:105C100000266000002680000026A0000026C000AC -:105C20000026E00000270000002720000027400099 -:105C300000276000002780000027A0000027C00088 -:105C40000027E00000280000002820000028400075 -:105C500000286000002880000028A0000028C00064 -:105C60000028E00000290000002920000029400051 -:105C700000296000002980000029A0000029C00040 -:105C80000029E000002A0000002A2000002A40002D -:105C9000002A6000002A8000002AA000002AC0001C -:105CA000002AE000002B0000002B2000002B400009 -:105CB000002B6000002B8000002BA000002BC000F8 -:105CC000002BE000002C0000002C2000002C4000E5 -:105CD000002C6000002C8000002CA000002CC000D4 -:105CE000002CE000002D0000002D2000002D4000C1 -:105CF000002D6000002D8000002DA000002DC000B0 -:105D0000002DE000002E0000002E2000002E40009C -:105D1000002E6000002E8000002EA000002EC0008B -:105D2000002EE000002F0000002F2000002F400078 -:105D3000002F6000002F8000002FA000002FC00067 -:105D4000002FE00000300000003020000030400054 -:105D500000306000003080000030A0000030C00043 -:105D60000030E00000310000003120000031400030 -:105D700000316000003180000031A0000031C0001F -:105D80000031E0000032000000322000003240000C -:105D900000326000003280000032A0000032C000FB -:105DA0000032E000003300000033200000334000E8 -:105DB00000336000003380000033A0000033C000D7 -:105DC0000033E000003400000034200000344000C4 -:105DD00000346000003480000034A0000034C000B3 -:105DE0000034E000003500000035200000354000A0 -:105DF00000356000003580000035A0000035C0008F -:105E00000035E0000036000000362000003640007B -:105E100000366000003680000036A0000036C0006A -:105E20000036E00000370000003720000037400057 -:105E300000376000003780000037A0000037C00046 -:105E40000037E00000380000003820000038400033 -:105E500000386000003880000038A0000038C00022 -:105E60000038E0000039000000392000003940000F -:105E700000396000003980000039A0000039C000FE -:105E80000039E000003A0000003A2000003A4000EB -:105E9000003A6000003A8000003AA000003AC000DA -:105EA000003AE000003B0000003B2000003B4000C7 -:105EB000003B6000003B8000003BA000003BC000B6 -:105EC000003BE000003C0000003C2000003C4000A3 -:105ED000003C6000003C8000003CA000003CC00092 -:105EE000003CE000003D0000003D2000003D40007F -:105EF000003D6000003D8000003DA000003DC0006E -:105F0000003DE000003E0000003E2000003E40005A -:105F1000003E6000003E8000003EA000003EC00049 -:105F2000003EE000003F0000003F2000003F400036 -:105F3000003F6000003F8000003FA000003FC00025 -:105F4000003FE000003FE00100000000000001FF12 -:105F50000000020000007FF800007FF80000014010 -:105F600000003500000000010000FF0000000000FC -:105F70000000FF00000000000000FF000000000023 -:105F80000000FF00000000000000FF000000000013 -:105F90000000FF00000000000000FF000000000003 -:105FA0000000FF000000000000000000140AFF00D5 -:105FB00000000001000000000020100100000000AF -:105FC0000100900000000100000090020000900419 -:105FD00000009006000090080000900A0000900C5D -:105FE0000000900E0000901000009012000090142D -:105FF00000009016000090180000901A0000901CFD -:106000000000901E000090200000902200009024CC -:1060100000009026000090280000902A0000902C9C -:106020000000902E0000903000009032000090346C -:1060300000009036000090380000903A0000903C3C -:106040000000903E0000904000009042000090440C -:1060500000009046000090480000904A0000904CDC -:106060000000904E000090500000905200009054AC -:1060700000009056000090580000905A0000905C7C -:106080000000905E0000906000009062000090644C -:1060900000009066000090680000906A0000906C1C -:1060A0000000906E000090700000907200009074EC -:1060B00000009076000090780000907A0000907CBC -:1060C0000000907E0000908000009082000090848C -:1060D00000009086000090880000908A0000908C5C -:1060E0000000908E0000909000009092000090942C -:1060F00000009096000090980000909A0000909CFC -:106100000000909E000090A0000090A2000090A4CB -:10611000000090A6000090A8000090AA000090AC9B -:10612000000090AE000090B0000090B2000090B46B -:10613000000090B6000090B8000090BA000090BC3B -:10614000000090BE000090C0000090C2000090C40B -:10615000000090C6000090C8000090CA000090CCDB -:10616000000090CE000090D0000090D2000090D4AB -:10617000000090D6000090D8000090DA000090DC7B -:10618000000090DE000090E0000090E2000090E44B -:10619000000090E6000090E8000090EA000090EC1B -:1061A000000090EE000090F0000090F2000090F4EB -:1061B000000090F6000090F8000090FA000090FCBB -:1061C000000090FE00009100000091020000910488 -:1061D00000009106000091080000910A0000910C57 -:1061E0000000910E00009110000091120000911427 -:1061F00000009116000091180000911A0000911CF7 -:106200000000911E000091200000912200009124C6 -:1062100000009126000091280000912A0000912C96 -:106220000000912E00009130000091320000913466 -:1062300000009136000091380000913A0000913C36 -:106240000000913E00009140000091420000914406 -:1062500000009146000091480000914A0000914CD6 -:106260000000914E000091500000915200009154A6 -:1062700000009156000091580000915A0000915C76 -:106280000000915E00009160000091620000916446 -:1062900000009166000091680000916A0000916C16 -:1062A0000000916E000091700000917200009174E6 -:1062B00000009176000091780000917A0000917CB6 -:1062C0000000917E00009180000091820000918486 -:1062D00000009186000091880000918A0000918C56 -:1062E0000000918E00009190000091920000919426 -:1062F00000009196000091980000919A0000919CF6 -:106300000000919E000091A0000091A2000091A4C5 -:10631000000091A6000091A8000091AA000091AC95 -:10632000000091AE000091B0000091B2000091B465 -:10633000000091B6000091B8000091BA000091BC35 -:10634000000091BE000091C0000091C2000091C405 -:10635000000091C6000091C8000091CA000091CCD5 -:10636000000091CE000091D0000091D2000091D4A5 -:10637000000091D6000091D8000091DA000091DC75 -:10638000000091DE000091E0000091E2000091E445 -:10639000000091E6000091E8000091EA000091EC15 -:1063A000000091EE000091F0000091F2000091F4E5 -:1063B000000091F6000091F8000091FA000091FCB5 -:1063C000000091FEFFFFFFFFFFFFFFFFFFFFFFFF4A -:1063D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:1063E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:1063F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:10640000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:10641000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:10642000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10643000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:10644000FFFFFFFF0000000300BEBC2000000000B3 -:10645000000000050000000300BEBC20000000009A -:10646000000000050000000300BEBC20000000008A -:10647000000000050000000300BEBC20000000007A -:10648000000000050000000300BEBC20000000006A -:10649000000000050000000300BEBC20000000005A -:1064A000000000050000000300BEBC20000000004A -:1064B000000000050000000300BEBC20000000003A -:1064C0000000000500002000000040C000006180C6 -:1064D000000082400000A3000000C3C00000E48070 -:1064E0000001054000012600000146C00001678050 -:1064F000000188400001A9000001C9C00001EA8034 -:1065000000020B4000022C0000024CC000026D8013 -:1065100000028E400002AF000002CFC00002F080F7 -:10652000000011400000800000010380000187008E -:1065300000020A8000028E00000311800003950013 -:106540000004188000049C0000051F800005A300C3 -:10655000000626800006AA0000072D800007B10073 -:10656000000834800008B80000093B800009BF0023 -:10657000000A4280000AC600000B4980000BCD00D3 -:10658000000C5080000CD400000D578000005B0010 -:1065900000007FF800007FF8000000D50000150023 -:1065A0000000FF00000000000000FF0000000000ED -:1065B0000000FF00000000000000FF0000000000DD -:1065C0000000FF00000000000000FF0000000000CD -:1065D0000000FF00000000000000FF0000000000BD -:1065E000000019000000000000000000FFFFFFFF96 -:1065F0000000000003938700000000000393870061 -:1066000000007FF800007FF80000068E00003500D3 -:106610000000FF000FFFFFFF0000FF000FFFFFFF64 -:10662000000000FF0000FF000FFFFFFF0000FF0061 -:106630000FFFFFFF000000FF0000FF000FFFFFFF44 -:106640000000FF000FFFFFFF000000FF0000FF0041 -:106650000FFFFFFF0000FF000FFFFFFF000000FF24 -:106660000000FF000FFFFFFF0000FF000FFFFFFF14 -:10667000000000FF0000FF000FFFFFFF0000FF0011 -:106680000FFFFFFF000000FF0000FF000FFFFFFFF4 -:106690000000FF000FFFFFFF000000FF0000FF00F1 -:1066A0000FFFFFFF0000FF000FFFFFFF000000FFD4 -:1066B0000000FF000FFFFFFF0000FF000FFFFFFFC4 -:1066C000000000FF0000FF000FFFFFFF0000FF00C1 -:1066D0000FFFFFFF000000FF0000FF000FFFFFFFA4 -:1066E0000000FF000FFFFFFF000000FF0000FF00A1 -:1066F0000FFFFFFF0000FF000FFFFFFF000000FF84 -:106700000000FF000FFFFFFF0000FF000FFFFFFF73 -:10671000000000FF0000FF000FFFFFFF0000FF0070 -:106720000FFFFFFF000000FF0000FF000FFFFFFF53 -:106730000000FF000FFFFFFF000000FF0000FF0050 -:106740000FFFFFFF0000FF000FFFFFFF000000FF33 -:106750000000FF000FFFFFFF0000FF000FFFFFFF23 -:10676000000000FF0000FF000FFFFFFF0000FF0020 -:106770000FFFFFFF000000FF0000FF000FFFFFFF03 -:106780000000FF000FFFFFFF000000FF0000FF0000 -:106790000FFFFFFF0000FF000FFFFFFF000000FFE3 -:1067A0000000FF000FFFFFFF0000FF000FFFFFFFD3 -:1067B000000000FF0000FF000FFFFFFF0000FF00D0 -:1067C0000FFFFFFF000000FF0000FF000FFFFFFFB3 -:1067D0000000FF000FFFFFFF000000FF0000FF00B0 -:1067E0000FFFFFFF0000FF000FFFFFFF000000FF93 -:1067F0000000FF000FFFFFFF0000FF000FFFFFFF83 -:10680000000000FF0000FF000FFFFFFF0000FF007F -:106810000FFFFFFF000000FF0000FF000FFFFFFF62 -:106820000000FF000FFFFFFF000000FF0000FF005F -:106830000FFFFFFF0000FF000FFFFFFF000000FF42 -:106840000000FF000FFFFFFF0000FF000FFFFFFF32 -:10685000000000FF0000FF000FFFFFFF0000FF002F -:106860000FFFFFFF000000FF0000FF000FFFFFFF12 -:106870000000FF000FFFFFFF000000FF0000FF000F -:106880000FFFFFFF0000FF000FFFFFFF000000FFF2 -:10689000000000FF000000FF000000FF000000FFFC -:1068A000000000FF000000FF000000FF000000FFEC -:1068B0000000FF00000000000000FF0000000000DA -:1068C0000000FF00000000000000FF0000000000CA -:1068D0000000FF00000000000000FF0000000000BA -:1068E0000000FF00000000000000FF0000000000AA -:1068F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:10690000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:10691000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:10692000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:10693000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:10694000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:10695000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:10696000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:106970000000100000002080000031000000418075 -:10698000000052000000628000007300000083805D -:10699000000094000000A4800000B5000000C58045 -:1069A0000000D6000000E6800000F700000107802C -:1069B0000001180000012880000139000001498011 -:1069C00000015A0000016A8000017B0000018B80F9 -:1069D00000019C000001AC800001BD000001CD80E1 -:1069E0000001DE000001EE800001FF0000000F80CA -:1069F00000007FF800007FF800000344000035002D -:106A000010000000000028AD00010001000902068E -:106A1000CCCCCCC5FFFFFFFFFFFFFFFF7058103C41 -:106A20000000FF00000000000000FF000000000068 -:106A30000000FF00000000000000FF000000000058 -:106A40000000FF00000000000000FF000000000048 -:106A50000000FF00000000000000FF000000000038 -:106A60000000000000000001CCCC0201CCCCCCCC5A -:106A7000CCCC0201CCCCCCCCCCCC0201CCCCCCCC80 -:106A8000CCCC0201CCCCCCCCCCCC0201CCCCCCCC70 -:106A9000CCCC0201CCCCCCCCCCCC0201CCCCCCCC60 -:106AA000CCCC0201CCCCCCCC00000000FFFFFFFF1F -:106AB000000E0000011600D6002625A0002625A005 -:106AC000002625A0002625A000720000012300F367 -:106AD000002625A0002625A0002625A0002625A00A -:106AE0000000FFFF000000000000FFFF00000000AA -:106AF0000000FFFF000000000000FFFF000000009A -:106B00000000FFFF000000000000FFFF0000000089 -:106B10000000FFFF000000000000FFFF0000000079 -:106B20000000FFFF000000000000FFFF0000000069 -:106B30000000FFFF000000000000FFFF0000000059 -:106B40000000FFFF000000000000FFFF0000000049 -:106B50000000FFFF000000000000FFFF0000000039 -:106B60000000FFFF000000000000FFFF0000000029 -:106B70000000FFFF000000000000FFFF0000000019 -:106B80000000FFFF000000000000FFFF0000000009 -:106B90000000FFFF000000000000FFFF00000000F9 -:106BA0000000FFFF000000000000FFFF00000000E9 -:106BB0000000FFFF000000000000FFFF00000000D9 -:106BC0000000FFFF000000000000FFFF00000000C9 -:106BD0000000FFFF000000000000FFFF00000000B9 -:106BE0000000FFFF000000000000FFFF00000000A9 -:106BF0000000FFFF000000000000FFFF0000000099 -:106C00000000FFFF000000000000FFFF0000000088 -:106C10000000FFFF000000000000FFFF0000000078 -:106C20000000FFFF000000000000FFFF0000000068 -:106C30000000FFFF000000000000FFFF0000000058 -:106C40000000FFFF000000000000FFFF0000000048 -:106C50000000FFFF000000000000FFFF0000000038 -:106C60000000FFFF000000000000FFFF0000000028 -:106C70000000FFFF000000000000FFFF0000000018 -:106C80000000FFFF000000000000FFFF0000000008 -:106C90000000FFFF000000000000FFFF00000000F8 -:106CA0000000FFFF000000000000FFFF00000000E8 -:106CB0000000FFFF000000000000FFFF00000000D8 -:106CC0000000FFFF000000000000FFFF00000000C8 -:106CD0000000FFFF000000000000FFFF00000000B8 -:106CE000FFFFFFF3318FFFFF0C30C30CC30C30C329 -:106CF000CF3CF300F3CF3CF30000CF3CCDCDCDCD66 -:106D0000FFFFFFF130EFFFFF0C30C30CC30C30C3AB -:106D1000CF3CF300F3CF3CF30001CF3CCDCDCDCD44 -:106D2000FFFFFFF6305FFFFF0C30C30CC30C30C316 -:106D3000CF3CF300F3CF3CF30002CF3CCDCDCDCD23 -:106D4000FFFFF4061CBFFFFF0C30C305C30C30C3AC -:106D5000CF300014F3CF3CF30004CF3CCDCDCDCDEC -:106D6000FFFFFFF2304FFFFF0C30C30CC30C30C3EA -:106D7000CF3CF300F3CF3CF30008CF3CCDCDCDCDDD -:106D8000FFFFFFFA302FFFFF0C30C30CC30C30C3E2 -:106D9000CF3CF300F3CF3CF30010CF3CCDCDCDCDB5 -:106DA000FFFFFFF731EFFFFF0C30C30CC30C30C304 -:106DB000CF3CF300F3CF3CF30020CF3CCDCDCDCD85 -:106DC000FFFFFFF5302FFFFF0C30C30CC30C30C3A7 -:106DD000CF3CF300F3CF3CF30040CF3CCDCDCDCD45 -:106DE000FFFFFFF3318FFFFF0C30C30CC30C30C328 -:106DF000CF3CF300F3CF3CF30000CF3CCDCDCDCD65 -:106E0000FFFFFFF1310FFFFF0C30C30CC30C30C389 -:106E1000CF3CF300F3CF3CF30001CF3CCDCDCDCD43 -:106E2000FFFFFFF6305FFFFF0C30C30CC30C30C315 -:106E3000CF3CF300F3CF3CF30002CF3CCDCDCDCD22 -:106E4000FFFFF4061CBFFFFF0C30C305C30C30C3AB -:106E5000CF300014F3CF3CF30004CF3CCDCDCDCDEB -:106E6000FFFFFFF2304FFFFF0C30C30CC30C30C3E9 -:106E7000CF3CF300F3CF3CF30008CF3CCDCDCDCDDC -:106E8000FFFFFFFA302FFFFF0C30C30CC30C30C3E1 -:106E9000CF3CF300F3CF3CF30010CF3CCDCDCDCDB4 -:106EA000FFFFFFF730EFFFFF0C30C30CC30C30C304 -:106EB000CF3CF300F3CF3CF30020CF3CCDCDCDCD84 -:106EC000FFFFFFF5304FFFFF0C30C30CC30C30C386 -:106ED000CF3CF300F3CF3CF30040CF3CCDCDCDCD44 -:106EE000FFFFFFFF30CFFFFF0C30C30CC30C30C3DC -:106EF000CF3CF3CCF3CF3CF30000CF3CCDCDCDCD98 -:106F0000FFFFFFFF30CFFFFF0C30C30CC30C30C3BB -:106F1000CF3CF3CCF3CF3CF30001CF3CCDCDCDCD76 -:106F2000FFFFFFFF30CFFFFF0C30C30CC30C30C39B -:106F3000CF3CF3CCF3CF3CF30002CF3CCDCDCDCD55 -:106F4000FFFFFFFF30CFFFFF0C30C30CC30C30C37B -:106F5000CF3CF3CCF3CF3CF30004CF3CCDCDCDCD33 -:106F6000FFFFFFFF30CFFFFF0C30C30CC30C30C35B -:106F7000CF3CF3CCF3CF3CF30008CF3CCDCDCDCD0F -:106F8000FFFFFFFF30CFFFFF0C30C30CC30C30C33B -:106F9000CF3CF3CCF3CF3CF30010CF3CCDCDCDCDE7 -:106FA000FFFFFFFF30CFFFFF0C30C30CC30C30C31B -:106FB000CF3CF3CCF3CF3CF30020CF3CCDCDCDCDB7 -:106FC000FFFFFFFF30CFFFFF0C30C30CC30C30C3FB -:106FD000CF3CF3CCF3CF3CF30040CF3CCDCDCDCD77 -:106FE000FFFFFFF3320FFFFF0C30C30CC30C30C3A5 -:106FF000CF3CF300F3CF3CF30000CF3CCDCDCDCD63 -:10700000FFFFFFF1310FFFFF0C30C30CC30C30C387 -:10701000CF3CF300F3CF3CF30001CF3CCDCDCDCD41 -:10702000FFFFFFF6305FFFFF0C30C30CC30C30C313 -:10703000CF3CF300F3CF3CF30002CF3CCDCDCDCD20 -:10704000FFFFF4061CBFFFFF0C30C305C30C30C3A9 -:10705000CF300014F3CF3CF30004CF3CCDCDCDCDE9 -:10706000FFFFFFF2304FFFFF0C30C30CC30C30C3E7 -:10707000CF3CF300F3CF3CF30008CF3CCDCDCDCDDA -:10708000FFFFFF8A042FFFFF0C30C30CC30C30C37B -:10709000CF3CC000F3CF3CF30010CF3CCDCDCDCDE5 -:1070A000FFFFFF9705CFFFFF0C30C30CC30C30C3AD -:1070B000CF3CC000F3CF3CF30020CF3CCDCDCDCDB5 -:1070C000FFFFFFF5310FFFFF0C30C30CC30C30C3C3 -:1070D000CF3CF300F3CF3CF30040CF3CCDCDCDCD42 -:1070E000FFFFFFF3320FFFFF0C30C30CC30C30C3A4 -:1070F000CF3CF300F3CF3CF30000CF3CCDCDCDCD62 -:10710000FFFFFFF1302FFFFF0C30C30CC30C30C367 -:10711000CF3CF300F3CF3CF30001CF3CCDCDCDCD40 -:10712000FFFFFFF6305FFFFF0C30C30CC30C30C312 -:10713000CF3CF300F3CF3CF30002CF3CCDCDCDCD1F -:10714000FFFFFF061CBFFFFF0C30C30CC30C30C396 -:10715000CF3CC014F3CF3CF30004CF3CCDCDCDCD1C -:10716000FFFFFFF2304FFFFF0C30C30CC30C30C3E6 -:10717000CF3CF300F3CF3CF30008CF3CCDCDCDCDD9 -:10718000FFFFFFFA302FFFFF0C30C30CC30C30C3DE -:10719000CF3CF300F3CF3CF30010CF3CCDCDCDCDB1 -:1071A000FFFFFFF731CFFFFF0C30C30CC30C30C320 -:1071B000CF3CF300F3CF3CF30020CF3CCDCDCDCD81 -:1071C000FFFFFFFF30CFFFFF0C30C30CC30C30C3F9 -:1071D000CF3CF3CCF3CF3CF30040CF3CCDCDCDCD75 -:1071E000FFFFFFFF30CFFFFF0C30C30CC30C30C3D9 -:1071F000CF3CF3CCF3CF3CF30000CF3CCDCDCDCD95 -:10720000FFFFFFFF30CFFFFF0C30C30CC30C30C3B8 -:10721000CF3CF3CCF3CF3CF30001CF3CCDCDCDCD73 -:10722000FFFFFFFF30CFFFFF0C30C30CC30C30C398 -:10723000CF3CF3CCF3CF3CF30002CF3CCDCDCDCD52 -:10724000FFFFFFFF30CFFFFF0C30C30CC30C30C378 -:10725000CF3CF3CCF3CF3CF30004CF3CCDCDCDCD30 -:10726000FFFFFFFF30CFFFFF0C30C30CC30C30C358 -:10727000CF3CF3CCF3CF3CF30008CF3CCDCDCDCD0C -:10728000FFFFFFFF30CFFFFF0C30C30CC30C30C338 -:10729000CF3CF3CCF3CF3CF30010CF3CCDCDCDCDE4 -:1072A000FFFFFFFF30CFFFFF0C30C30CC30C30C318 -:1072B000CF3CF3CCF3CF3CF30020CF3CCDCDCDCDB4 -:1072C000FFFFFFFF30CFFFFF0C30C30CC30C30C3F8 -:1072D000CF3CF3CCF3CF3CF30040CF3CCDCDCDCD74 -:1072E000FFFFFFFF30CFFFFF0C30C30CC30C30C3D8 -:1072F000CF3CF3CCF3CF3CF30000CF3CCDCDCDCD94 -:10730000FFFFFFFF30CFFFFF0C30C30CC30C30C3B7 -:10731000CF3CF3CCF3CF3CF30001CF3CCDCDCDCD72 -:10732000FFFFFFFF30CFFFFF0C30C30CC30C30C397 -:10733000CF3CF3CCF3CF3CF30002CF3CCDCDCDCD51 -:10734000FFFFFFFF30CFFFFF0C30C30CC30C30C377 -:10735000CF3CF3CCF3CF3CF30004CF3CCDCDCDCD2F -:10736000FFFFFFFF30CFFFFF0C30C30CC30C30C357 -:10737000CF3CF3CCF3CF3CF30008CF3CCDCDCDCD0B -:10738000FFFFFFFF30CFFFFF0C30C30CC30C30C337 -:10739000CF3CF3CCF3CF3CF30010CF3CCDCDCDCDE3 -:1073A000FFFFFFFF30CFFFFF0C30C30CC30C30C317 -:1073B000CF3CF3CCF3CF3CF30020CF3CCDCDCDCDB3 -:1073C000FFFFFFFF30CFFFFF0C30C30CC30C30C3F7 -:1073D000CF3CF3CCF3CF3CF30040CF3CCDCDCDCD73 -:1073E000FFFFFFFF30CFFFFF0C30C30CC30C30C3D7 -:1073F000CF3CF3CCF3CF3CF30000CF3CCDCDCDCD93 -:10740000FFFFFFFF30CFFFFF0C30C30CC30C30C3B6 -:10741000CF3CF3CCF3CF3CF30001CF3CCDCDCDCD71 -:10742000FFFFFFFF30CFFFFF0C30C30CC30C30C396 -:10743000CF3CF3CCF3CF3CF30002CF3CCDCDCDCD50 -:10744000FFFFFFFF30CFFFFF0C30C30CC30C30C376 -:10745000CF3CF3CCF3CF3CF30004CF3CCDCDCDCD2E -:10746000FFFFFFFF30CFFFFF0C30C30CC30C30C356 -:10747000CF3CF3CCF3CF3CF30008CF3CCDCDCDCD0A -:10748000FFFFFFFF30CFFFFF0C30C30CC30C30C336 -:10749000CF3CF3CCF3CF3CF30010CF3CCDCDCDCDE2 -:1074A000FFFFFFFF30CFFFFF0C30C30CC30C30C316 -:1074B000CF3CF3CCF3CF3CF30020CF3CCDCDCDCDB2 -:1074C000FFFFFFFF30CFFFFF0C30C30CC30C30C3F6 -:1074D000CF3CF3CCF3CF3CF30040CF3CCDCDCDCD72 -:1074E000000C0000000700C000028130000B815832 -:1074F0000002021000010230000F024000010330C0 -:10750000000C0000000800C000028140000B8168F0 -:10751000000202200001024000070250000202C0E7 -:10752000001000000008010000028180000B81A80B -:107530000002026000018280000E82980008038031 -:107540000010000000010100000281100009013854 -:10755000000201C8000101E8000E01F8000002D895 -:10756000CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC5B -:1075700000002000CCCCCCCCCCCCCCCCCCCCCCCC5B -:10758000CCCCCCCC00002000CCCCCCCCCCCCCCCC4B -:10759000CCCCCCCCCCCCCCCC040020000000000067 -:1075A0001F8B080000000000000BFB51CFC0F00350 -:1075B0008AB7B13130ECE644F0E98159181818F86F -:1075C00099C8D7BF1168C04E20BE01C4075948D71B -:1075D0007F551AC15E26C9C0700A8827883330B427 -:1075E0004A21C4ED651818EE01F92BA16272403DE5 -:1075F00073A4C977F3281E3CB8D014951F620CA160 -:107600005F9840E82234F950A8BCB81E842E36C5D5 -:107610006EAE841E71F6A7A9A0F2BD55F0ABCFD512 -:1076200040E5C7A2A90F81F2017EE9B234D8030078 -:1076300000000000000000001F8B08000000000098 -:10764000000BED7D0B7455D5B5E8DA9FB3CFFF6421 -:10765000278470123EEEC400C1063C4280A0A83BC5 -:10766000FC1A7DD41E1025E5A11C446B004922A6FE -:10767000D78C96D76CC8870450E3E751BD457BA0F3 -:10768000D88B0E5BA3A68ABDB43D887AA9C3DB2242 -:107690005AA52D7A83FA2C58A0B1572ABD4FCB5B3F -:1076A00073AEB592BD77CEC9C74F47EF788D43769D -:1076B000D6DEEB3BFF6BCEB95634D94FF22E27E422 -:1076C0001CFCD0A7291142A6F73DC92D5932C92368 -:1076D000E41B3E823F1FF923534816210D3EF6BCA2 -:1076E0003D10D905CF2D8D84A426C2F771491221F2 -:1076F000244848899A0B2D02B1870BE15977617CA8 -:10770000323E67C23387C8848C84F218FDBD20EBFB -:10771000FB9C42FF399AA880F114F68AA8A43C96F3 -:10772000C2F6DF226446DF3C48DD57F578B86FDEED -:10773000EEA7A26B24C5EB9E837F94E5598950E6A2 -:10774000FA0D47A5C79FB7D51F4FC2B9382F95A8C7 -:10775000382FDE9E108BD8E7E7EEE7A346F2F8F36A -:10776000E3FBC32DD3B8026E6D8D3E7CB636EA24A2 -:10777000E5258436333B4BE93344CC5DA5FDDBCDB9 -:107780002312871F9F0F8C63D0FAF47F42E1DE9CA7 -:107790004B9241C0214938E0D61C5AEC33D3F42730 -:1077A0009E2497C2AD84CFB9A8FF7AFD302F0A0777 -:1077B0003FCC2B0D3C97C2BCA6F79F97BFD83DAFDF -:1077C0006A6287CF70E7159844C821C0876A128221 -:1077D00078B9CDD19FAC9B56779AFE08A70BD5E020 -:1077E000EB1B229E822572DFF8000723E0A02F6F9B -:1077F00034C7496F6EBA067820BE3A387CE20AE395 -:1078000007AB0F8FF4199A1D93803568F110E02DA6 -:107810009F30F8E557B7DE2A4F2194D53A0F4EA096 -:10782000F0CBEF5EB99040F9E8152780DF9ACBA640 -:1078300056CEA5F5B2CB63AF2CA04D423143027AB0 -:10784000DD0A9D15407F5FB32A68B909FAA365CBAD -:10785000BACAB4106EA6036E1472864ACB1EF8B56F -:10786000280DFC482F1EA473DEFEED33C1CF436C00 -:10787000F8437E5EEFA0CB8C78BF91E1CBA2FF01F5 -:10788000BE46101B5FD37EB22B35075EB25CE33C75 -:107890000ABF20BC6FFD9B8C97439EF41994CE3D8C -:1078A000A5B29EA478CA26B16CB58CE263A14A4009 -:1078B0008EE5E4EA1290C360786926A412F89F4A24 -:1078C00007B2C826E77ECEF9AB60CDEE9DAD749CC5 -:1078D00033B34331A895AFD3B94EEDBF9E3B40BE05 -:1078E000786DE5B2E74802C7EB3C5844E76595C9B7 -:1078F000B18729DD6C2D3DACDBE5E3B15EF9E2A695 -:107900000F62A833B83CA0F0514A65D31FF9ECF4DC -:10791000A17C4AFA08DFE8C4C770F1757A98F4F1DF -:1079200059C71378EDCF571B055E7D847EDF52B2B9 -:1079300078407DD51FAF4F92046D172A2566324DD2 -:10794000BBFFB4EB0BF7D326DFDD72541935A36A06 -:10795000E74078CB75AE57F4EB6F508C7747D0A2E9 -:10796000AAA37CD5B81E688FDE63114A776740F6FC -:107970005078281D17A5A04C8A49EC61D64D4AA223 -:10798000657FD44C6E413A48225EC4FCBC86EC90C4 -:10799000B36AAE530E932A4BB2CFDFDFA0E13C3483 -:1079A000182F17EC02DA2105851A2229A05B41AFB6 -:1079B000A092CE9D0F65A79DD1664C25E9F0A072DF -:1079C000BC4B92A0D76F0D4DBEB8C75BE29CEF9049 -:1079D000DB8554E33DD1268D9CEE6BA792F7047EA8 -:1079E00028102F13761DC7D3660FD92B5D48E5C12C -:1079F000986BC152209BE1D32C6A87C0932A9FCDFC -:107A000063A6EA4057648FA4C23C71488A4742F596 -:107A10001DD40B4A06F623FBEA90FE9490894FF1A1 -:107A20003DF3BCD8F8BD655FA206F0531DD58C2D83 -:107A3000748E6B15D3D80874318DC9A7EAE88479A0 -:107A4000A0EF3C129BD7B7A57C5C879AD39687762C -:107A50005906FBAE5AA52A7F2A7CDF3661207E229A -:107A6000494F4FB70D9E6E7BF06689DA835FA2BFE8 -:107A7000CC2433018E7F8A2DCE4A0D80AFF71B0FA9 -:107A8000EAEAF83E7BD0FD7DAD42EAD2C98156C913 -:107A9000C7F8D26769601F8875AF0576A720DD1625 -:107AA000DBC4D69B9B8BF05DBBE717BA6AE3BFB51F -:107AB00054CD78A7F65F8F80B7E8A7B77DF2A0A373 -:107AC000BDBB5D6F7F425E507B18E85CD041504A81 -:107AD0006C95E87B6F6CB105EA6CED63150CFF19D2 -:107AE000E6DF8BAF4F397FD16E30BAFAD3EEA656B0 -:107AF000D04FEF691D575D4CE9E8F74F28B14DF4C1 -:107B00006BF58E89F3C05E7A8FD3B7C0D389DD4D14 -:107B100079E9E823139E7E21F9711C415FD5F2F2C9 -:107B200001E96130FA7ACA4D5F9D577F21F475C82B -:107B30004D5F1C1E273BD9FAC9FD23185E38BEDCF9 -:107B4000F8C988974FDBAE3F3DFD5AA27CEDEDBCF6 -:107B50003A3D3DF1F90A7C7DD6F90E4647798669B2 -:107B6000EA74FC51D48E91407F9491588ACE53A7E9 -:107B70000FD45B31A6B7845C12ED4F4BCC4E53C98A -:107B80006BD85E21294B477BDB6967CC57E84BDA22 -:107B90004F7309497A715F64FA504F95A884E93FA1 -:107BA00033943F03EC08FEA3CC8EC1BAB3C0FE07EA -:107BB000FD359BEB5F89DA5B747DA132E7BE37E070 -:107BC000B23F14BE5FE8676F0D737FEC97F9FE3824 -:107BD0004842A88FC4FE38037FF6EE8B395C476AB3 -:107BE000C494E9BAB5839EE42609B41B41FD4C8ECA -:107BF0004A49E62F20256037AF970A62A00FE83E7A -:107C0000AF278B7E7FEF070AEA878668DD8A1658E2 -:107C1000F6B50D13BBE9B8F7349269C59EBEF1EE17 -:107C2000513B7C00EFF6E2F50EBBF6BB52A250B61C -:107C3000E91D7F549B563C0D8653DFEEA6F090293C -:107C40002081FF02A1FBA22F18003FF6BE174EF6BF -:107C5000B2D2BF9C0B364F011653B02F6DA7B63B67 -:107C6000B9188AA3A50A4A07ED1EFEDDFA4D05ECF8 -:107C700077DBFDACBC63D3AC8D169447F2FA561596 -:107C8000FB9ECFCAB76DFA4105EC0BDAB2E99AA9AF -:107C9000BE6EF324ABE269F8FB365976D85F4DC669 -:107CA00082F2FF43D7E1F79917BD40E1498112B352 -:107CB0000CD26B97150ABF41C7DD952500FFD7147D -:107CC00002F4EC3762F19B0CA43FA47B7FAE19DB7E -:107CD000424B0DF4850CF528DE1E96605FC7EC3133 -:107CE000F0E79C43FAA57C41BFAFCFD6B13ED16D42 -:107CF000F659519F3DD68B2717DEEE557BFC80B79A -:107D0000EF8DF9F01713693FD642390664F3BD0DC4 -:107D100045D92B6D787CCC37A70AF0489A73D12EC1 -:107D20008992DE1F13CA62DF5C403A2BC0781C4385 -:107D3000251FA1743A2EDE53012830AAF4E7708F74 -:107D40004BE6E9EFA15DA548E7BE34743BCA0D07D9 -:107D5000DAE3A845543E8D90483C9DDC5DA9E6A041 -:107D60003C185149D73B809FE09B549F30FB2CE14E -:107D700003FF56A67132CDF333C073934CC71D4D2C -:107D80009208A7C1E09A099EADD127B3515E7FCE7C -:107D900070CDD4DE0DCF1112E397956A39F2CB5036 -:107DA000FD3B6D7C3FD5027E38FA6CE27E38777BF6 -:107DB000BFDA416269F0EB379CFE210DF625B67201 -:107DC000BD6C307D1072FB89189EDD7A6101D70B86 -:107DD0002D51AA17983C5C087A20C8E1DF02BB7ECF -:107DE000909F6192B4E8F720F707915226FF7DF447 -:107DF0003FE0B751554E7DA00D511FBC2BC55F9084 -:107E0000910E8904F3BB5FEAB86202D04F3EB3C75C -:107E1000A337B445133638D4CB4CDF097D962C16E6 -:107E2000FA8C20FCCEE37348920E3FE8C307362C51 -:107E3000CE42BFDD8D41871C8AB62EC6FDAF8D9E1A -:107E4000D12FDAC1FDA399F0A76BC9443A7958A89C -:107E5000307918317B52E0F34342CEE32E434ED6C5 -:107E60000CFEC4B10F8B4CED39783E5DEFCE8BE448 -:107E7000D826DA4E9DADA63C14BE6AF98B55127D0C -:107E8000EE2C64F0B76611A4D390B1E08402FA58E6 -:107E9000ED467F4DA8D2BD2FB69515E8A7E77AD459 -:107EA000DF763FF500FBB8A13E9B28BCDEB6F13F74 -:107EB000855C4AA1EB50371003EC09D5A4223102AE -:107EC0004F3D0FE8453563217C765754C2F3BCD94A -:107ED000F14AD9A6075433BE05EA8FF8CA7DEDB042 -:107EE0005EF526595624C6073936789B4AA1633F6A -:107EF00097ADBBFCA589D62AD4EF8646C617F69F58 -:107F000077BDAC72B9E7A417412703C8BBCF441FA4 -:107F10006FCAC25FEDC4BF834E8AFAF02BDA85FACE -:107F2000F9AB9CF875973F6FBCFA014F141FE751EE -:107F30003C017D9E379BD123B547D17E7AC0D76166 -:107F400002BC1F2836644BEA6B175672989FF92CB7 -:107F5000DD6851BBE7FE95DB4D68975F4C6580841B -:107F6000CFB4FEA37A59C376542E542ACC6E97C050 -:107F70001E9FAF6CAB82F63B295E81DF77027F43A9 -:107F80007C20A1A11CAE97DB2B36D2BE5B8F4AB200 -:107F90000246ACBE14F1EBE7FCFE912751097EC806 -:107FA0002DFF4B26BB0CD04B03FBBD9A38BE4519A9 -:107FB000FC0D609F8CA9D3A702D833B5DB5E275791 -:107FC000A65B57B5C2F07F47DDE10E344F9F77EED9 -:107FD000473CCB4DA048D897542B36FA0E97317FAB -:107FE0000749D0F5407D4E371F150E4CAF0FBAE64E -:107FF0003F96C753DCF55E56B8BFCE60F03244FF03 -:108000001B07EE5FC0E76C9BC2E323D40043221E34 -:1080100049ECFA5BB9F15005BCA75CB709F0B55D56 -:1080200026D5CCDF1C473D14E1E3ED2CCFC1F60B88 -:10803000552647C79AFA16C0F7D866192C05F2B824 -:1080400062E0FB51CBEBF67B281EDA0B492C64E097 -:1080500010D8EF8BE335A4CBFC5CA6C7F2EB290963 -:10806000D07AF9A52469D0F6EDFB1FA8D068394273 -:108070003754600AFBCA193E7D252406A690C72204 -:1080800029997D4F424C5229EFB140951E183F036C -:10809000F75F77E69298D7E8931B82AEEE6CBEC787 -:1080A0000F7AE481E27BAE9800FEC65215FDE4E44F -:1080B000630A27E14F54205E163761BCF6596CDE27 -:1080C000F40DE253D5D9FAC7DC3F1BF9A43DFC34CB -:1080D000CEC35A4762E3B15E8C60FC860A54F05707 -:1080E0003655337BD78D8FF524F1B832DD4EAF870F -:1080F000906EDA3F51F8BEE0C58D60E78F835F690F -:10810000F9974D7FDC381CBB45C40F85DDB245EDCA -:1081100044BEB728CF815E12768CBFB813C7FDBFAF -:108120009CDE87DABFBFC4E96F75DB356E7BA65E68 -:10813000D61DF6AB7B5D1F795257C0FCB6E4537E6B -:108140004FA3077E03FA9AB6DF115DFCAB89465F49 -:108150003F7D72C8C0EFA23CE6AC86F8197A7D2A52 -:10816000F7608F6632BE1A2BE4D037285F0D107F80 -:10817000147CF511151287804FD40EA42F6296201F -:108180005F097E51BA3BDACFA7F460D4CBE0B906E1 -:10819000FE2239B45C48E93D65B38784BC504B3B53 -:1081A000E313A5FE74F7A021231ECF94317F7596AB -:1081B000D56D4293606927C6F5285DFD17D095AA55 -:1081C0002725C0EB98FB17E0BA7EA93056F7AB2CF9 -:1081D0007EEC5EC7CF397C89BE1BED793F1B8EB22A -:1081E000F87D31363F579CBDFE5703C6D9FD319708 -:1081F0009D334C3F428ECAFD08DCEF3558FBE1C68B -:10820000D795B323903E7ACB19E4ED4D2AE78BA3A3 -:10821000BB1C70E9070F65476CA0F9F9859FFE53F9 -:10822000C60550870D010E6E385EA23AFD879F3756 -:108230001CDDF1EF97B8DC1F4C1E044D33252BE0FD -:108240003F23CCBF1322DCBFE3A4F79DCD32DA215C -:10825000C1B0BC134CC9ACFA6ED4C1627C4AEF55B4 -:10826000AA8DDE47971E4A413BB73ECAA4870693B4 -:10827000B7AB7CE60D2ACAADF4FBF1BE7C03CA2580 -:1082800069F20D32E2B5EEF3C937182ABC7BFD9BCB -:108290003C7FE0867241C7C6D2DF51B8AC3EE821D0 -:1082A000E897F998AECE16575BCDF78137F07DE4AD -:1082B0008D241E818FA7885C09FC728A1C8E4CB3AA -:1082C000C993FB548DF14B9BE76DF0AF8A78F94D64 -:1082D0001DAC2CE673F3FDCEF2D7C9E23CF0EB7D8A -:1082E000FD3E0FE26BB5CBBFD6AC32FD7133A96B4F -:1082F00005BCB5784815C8B11B74A28EA0A6EBBA10 -:10830000671E9CB19296BFCBED91F7A95C366C715C -:10831000D035A1A406F87DA76BDAB59710689F6CDD -:108320002D807D5A36C17DAB1BCEABDA9CF31B6C26 -:10833000FEEEF952F2C2F9669A87BA474A6B4F3F8E -:1083400022E40DC757A6BC2A914FF50B20205ADF17 -:108350009A43D8BEF3AD60B209E535CBA71AACFDA0 -:108360002F55463F9FB6FDAB83B45FE7EB5900CC7A -:10837000D6966BC5C12F24E28235A4CE1C4D7F5505 -:10838000F72DB246135BBDE810EB150F5C2FD3BC85 -:108390004FE83E4BBEB06FFEDF9512C7D434F3BF3B -:1083A0005D49D440FF5EC083024F15F18D7E608A27 -:1083B000DF5A35D4266541BE5317EE03FD86EAA089 -:1083C000875AF805E45A09936BC112E777B77FF82B -:1083D0004355C4E153C87F188236C07E08A514F007 -:1083E000DF94AB277BEBD3F16A605D1742298E7275 -:1083F000A35E67F56B8871D7EC32E43F8C3FD4B74E -:108400009F8F71F5FA9106FA77551233B10F17DD88 -:10841000D59E9548D2A60F6BD51E0DF8AC96DA45C1 -:10842000F6F7EBA38AC34FEB7E7AA8E51C2A817D81 -:1084300092CCFC483A2DDBD6FDA70E89E7AF185940 -:108440004B06F0DFAD8F327FF00DEDE3B398DFD058 -:10845000297F4F3732BFDCBF3DF67D0DFCFCA71EE8 -:108460003D7615C07BEDBF2AC407F91B8F85490AED -:10847000EDB1A406F6D89A2EC54CA6CDAF6862F130 -:10848000CFC7C388AF354F7A930B69FB354FBF33E6 -:1084900085D0F99DDED4F3E268B09B1F95581E820B -:1084A000D53DE56AFA7E8D4A56A4F31B4CF630F9A9 -:1084B00073F2D96015F0B7B467FFF5D86FE7528F44 -:1084C000D7B6DF2EF678906F693D66973F2225C7B5 -:1084D0004BE9E6C7F23F4E3E22B1F9EDF524FD30FF -:1084E000BF3D3BB5049D47ED9E0F509ECC7DFC8764 -:1084F000118043ED5EC5A1076AF72829EF147C1EA1 -:108500008327C48DA41940279C5EBAD661BCA8A657 -:1085100073EB07E0C7A8DDEB946B142EB114C0F524 -:108520000D25B610CA4FFD4BC4A0A07AFFD0C311D1 -:10853000802BED77A59605FAC649DFD0FFD99CFEC2 -:10854000FD11D283F1BADACE76365ED7577E0F7A36 -:10855000A5D6253FDF875FF2FBDB33D7785CF6CC0F -:108560009EA1C5EBD6FEF0CC43161DF7E4937F78B1 -:10857000C8A2F3BFE5AFFFF9D0B7803F7FE6D74190 -:10858000FED73EFAEB08B1D163AD87F1E3E9B1C4A0 -:10859000A27B5472FA37DE24F84B4EFFF4F7E30C5B -:1085A000BAEED34FFC25CFA0F5EB7F3A7F14C0A1E4 -:1085B000FEC773470DB4FF067A4D7AEDF34A225E8B -:1085C0008DBD123382F6F1A70B3F07BA0E8C83796B -:1085D0009E3AE28D81DBB996BE6B980AF85A87FA0B -:1085E00018CA1B289C6B1EDBFC01C889FEF0B6462E -:1085F000CBE8AC4F8D06A77D4DD73B0B106FA40782 -:10860000F5A8BB7EED6B149F1766C6DF19F2B106A5 -:10861000F2AEF6B176365E27C55FA43FFE4EC12F9F -:10862000B3FAE3EF0E17FECE905BBE970F798D5D28 -:10863000231C7152F1EC8B0FC6B3E203C80B210F60 -:1086400006836FB5C4E6B5CC633EE801BE7A32D886 -:108650008BDF8580DF1F9E1947287D1CF7F45C0F98 -:1086600072B3E7A75E7D177DBFE6A76F209F9DFED3 -:10867000F12B9A81F9992424E5F13C31F67308E451 -:10868000700DDBCB91DADDE19437D287A79AE4A2B3 -:108690004A2382EF8FE1FB24A3FF9AE4FE25521ABE -:1086A000BCBDE1296276407224C265DDEEDF69CC93 -:1086B000BEECC3A7540EF83CB600DE67C2A758BF95 -:1086C0000EEB9F69C3EB6EC6B7EEFA35943F41EFF0 -:1086D000F5C36F527A039EA7777A55D07BA7C1FE68 -:1086E0000AF5C77B1FFC99FD33DCFDCA2B6EFE1615 -:1086F000F1630E87CCF461713B60E0F50D177E3FAE -:10870000F7180E3A12703CF9717AF97F8ACB8D1AFC -:10871000625516D8EC139F87DA27905F46E2D6E8B9 -:10872000C2BEF99E847D04A5BF938F2A18AF69ED60 -:108730003C8072DC2D2F6A48FA7DFB5F3DCC5EAC3D -:10874000D9BB7F0AC8B593CF3D8BF459F3D8310D0F -:10875000F62F2FEE794AEB2EEDE307D00F499B7EE3 -:1087600038F9A3FD53983C48BFFF0D6AACFFDA7D92 -:10877000CEFE6B1FFBC0D1FF5AAB5363790C038F46 -:10878000F3BE6A2E85F5BE7FC843409EBEDFA9A416 -:10879000F5BFF670FD28E0D4FACA82DF419CBFEC39 -:1087A00070C0003DDAB5C91C7507D86B873D04E47D -:1087B0003751CD3F7869B9EB9500C633BA0E5FAB40 -:1087C0001836FFC4332E78CE7CCD9A1BA6FDCDEC97 -:1087D0008E97C116CA2D37CA8FD27DA3DD7FF54A89 -:1087E000E52890FBCD60CF4F84F16251F07F289156 -:1087F00005952C7F50D6FD69F537EBCF138A63BE04 -:10880000A047977B7DB6488F62BFC5FD4DADA1F4F3 -:10881000FEE8059AD817D0716D7290DAAA55E9F082 -:10882000364B637648A6EF976ACCDF93E97BC52089 -:10883000ED7BF99BE3470BCBF174F39EC6FB71FB19 -:108840005733C9030FEFA74C331CEB05782FB2E564 -:10885000C58F26C98D90274A4221773C3AEEB3C78F -:10886000A3AB0EED87F873EED5FBF201FE11D2AC8F -:10887000BF87763C899D1BC08E75C79FDD7989991E -:10888000E2D1BE50CD9114E9DF5FFFF8BB897928B2 -:10889000CD63E6F90A6DF1F766BD5FFC7DBD46C7A5 -:1088A0006DC9808725DA9C7FD280BE649248F77DAF -:1088B0000BA79BCB49F7532B619E3116BF9FED82CF -:1088C000D7A51C5E3F3B9F2E9CAA9E0A62A81E0A4B -:1088D000DFB94BCC661081F397F7ACDD0F7C26E255 -:1088E000F7D644F95C70E8F01B6E5EC42ADFE27BC9 -:1088F000B521E445103D27AD5EE89B87C5F755518E -:10890000DC2779389F1D78F3661FC82D95242A0B24 -:1089100061BFC4E39A986F4FFBCB4BF98949E7AB32 -:10892000E906DADB79A9D50FDC0471757D0CC62365 -:1089300094B397A0FFD0DDAF128D59980F16322A4D -:1089400014DB38ADB92C3EA3EAF1B479C3ABB4C49F -:1089500013B05EE5EC65D8AFEC8B613D121A5ABEE0 -:10896000EC77AE8E207C7D14BE201F1164B02E9E4D -:108970003775F7D511D433FE839E9DF0DD1F6279E4 -:1089800054B7CB8118E459B9F3A82ADE6A27D05F1F -:10899000EB3109E328827E5B0BEBCE03393E401EB0 -:1089A000D54B9ACDAF9E298FCA1FBA11F3A8FC9F51 -:1089B000368FCA2A9807F6586B361179559644E7D0 -:1089C000D1CAF3A2FEA3F5A5B9A09F5AFDE2FBCB45 -:1089D000734D7BD95A7F00CB3CEF6AB4B7BD09EA2F -:1089E000E78E26759DE8CF33C93536391BF1AA08C5 -:1089F000E77FD6CC7735479E7CD4115F3AF0E666A8 -:108A00001FE86FFAAC2C02F851BA02BB3D2FD54ECD -:108A1000ECFA483C051DB5160F1CBF53CF5E847E93 -:108A20007C51F6E949D34C537FBE8FD91F827E7D9E -:108A3000B924097AC967241EB809E83937140B32FA -:108A4000BAC438595B08DD53FDD6D1567C03C6DB6A -:108A5000CEE804B95ED071FFF95FC6E75F64615C80 -:108A60002244309E96791D65B88E559A19F6DAE043 -:108A7000987B5EFABCD4BBBD6C3D2DF1E52CEFAC10 -:108A8000DA198715791AA27E504A1478411EE6B287 -:108A900038ACEC63FCD6872FAA2A6CFECD26B2DC5C -:108AA0000212509777E2D146554F62FD127FE27C69 -:108AB000AF233ED7CDE2BAAE78E27CE516C6DF83BF -:108AC000E04F9CCBD80A71B789109F8BF2F37D06DB -:108AD0008FD3992CAF28033DB5150F1C87EA688CFE -:108AE00061FBBB1ACB59BE9244B85F3BD9047402F8 -:108AF0006E0946F73F6802BE092B822F7E88E53B50 -:108B00002556BEC9FBCC5CC8373CF0E61B55AB28EC -:108B10007DB49A01E4FFC1D6A72767205E873B4E4C -:108B2000FFF5B271DBCC10EE77075BB79E62E30E08 -:108B3000751C115FEB5B9F0FC769350619A7838D05 -:108B400033F8FC199FDCB17F35E62FF828FFFBE9ED -:108B50007BDFEC1E9248D37F16E79F036F7A515E4E -:108B6000B7E5B2FC284F49C8644E4067FF9ED2BCAF -:108B70003978DEA1EC02CC9FBF637F3BCA190DC6DA -:108B8000A1553CB1D04AD62E61C239DBC83C82F136 -:108B9000674F49DE2A78DF403AE273400F97CB2CCB -:108BA0003FB9A4E426E8271BF892CEA3DCC7F69DC4 -:108BB0009E928B6F86FAFBA7BF9E68023895333A68 -:108BC0002007F31D706C358AC4B99D01F9DE53EEA0 -:108BD0008C5B109F33FF93A84B306E4EE54287D7D6 -:108BE000665752BD781FF23329B3C0DEDBFEB56B8A -:108BF00063767EFE672DFE1D565FE46B093E4F9F38 -:108C000037D79A2BF2E6123EA50CCE29F5E6532F64 -:108C1000CCB7E77FF17CEA90C8A7E6F1CC0EFA5F0B -:108C2000BAFC39F739C6CF2B9FFA292FDF0F07C9B6 -:108C300058C8A7FE8987C4529017F36B250679316F -:108C40006EFA70F7E73E07D06B8F64E0E7F7013804 -:108C500036B9979F70E1ED463FC6E7C478CF837C75 -:108C60002A1D9C4F47573BFB195BE73C9F755E8372 -:108C7000335E55681538EA9FDF56E4F83EBEE302DE -:108C8000C7F789F74F759427252F76D4FFD29E39E1 -:108C90008EF2E4CE2B1DF52FDCBBD851BE28B5CC0F -:108CA000517FDAC11B1CDFA71F5AE3F83EF3C87AD5 -:108CB000477956F7371DF51BA87902F92C7040004B -:108CC000F7ABDB46CB76FA6CCFA67A250BF3B8353B -:108CD0009ED48FF166968BDC9767E06EA7146BA627 -:108CE0004EF9573126CCD331CFF046E423A5386F67 -:108CF0008E81EF672C00BF132963E7B444FCDA537D -:108D00004C527EC8EF0BB9F0EB8A4B7B946D29C0B7 -:108D1000B376F4CB07A5487FBC7AA2EE7CC6A1C58A -:108D2000B555E3B3E507E4F9385F8CA57C817EC4D3 -:108D30008F15D8B7907961B40F6CFB1B84A3D8DF73 -:108D40005CE623CD0053C11715CB7B46BF80D5C44D -:108D5000BEC62B0F272FB9BF5EF1A2DD25E4CC6084 -:108D60007A45494E73E421B89F54FE95F9609F1EE1 -:108D70005986F2A8775FD02B1FE333E1BB478DA163 -:108D80007CEC957F7B0A1C7261A8F6995B4EDF052F -:108D9000421FCF05A597D711C80BA372E9CEABAF81 -:108DA000C23818A9278EF3807955711FE83D6A975C -:108DB0007DC567DB3F47CA997DF6F766A78660BD2C -:108DC00036F927EC5501D7118575718CEB85650255 -:108DD000FBAAA6D9B128F801DBA08A6D9FF65DDF5A -:108DE000F958BF39A4C9E02F6D3E381FE3035E7FF9 -:108DF000DC0779CE4D9E7825ACAB295BD6D3E53B1D -:108E00006DF631FF8CD6109CB67B00FAD034BAEFE9 -:108E10004FB3DE7FF131BF4BB3BEF820E8B99CB051 -:108E20006640FE44EBFE598B305F77A1AAC3BE9625 -:108E3000D04DDC3BB6B8222171F46769B932EA45FE -:108E4000AD2182E30F36DF5B7DCCCFE06DF00F38D4 -:108E50005FAF96DE4F9169BE9B61BEB983CFD70BE2 -:108E6000F39560FC108EBFC9C7F0E886BF87986D88 -:108E7000F368BD96635FEE28468A61F97AF72E9C07 -:108E80008A744A05B5837EC53E82D2EFC340BF6275 -:108E9000FF2ECEB3DEE263790902AFC460FE881113 -:108EA0000915F7BD3909B6FFED931F8C8E723C3161 -:108EB00082E7BFC6A8189704378DDD8FA1F8D9BE09 -:108EC000C77B690CF1D5FE15956C027A2BA6EB8158 -:108ED00073B90759DCA9DD13AB8A87FAC613EDDF36 -:108EE000E1FB40952CC9C27B529485D174F6672F63 -:108EF0009D73B8B9E5EC011FCFC3CA27F94CCE96D4 -:108F00002E85A34499FA71DB1B0DDCAF3CFCF329E1 -:108F10001D08CFF631F7A11D2DFC63245A3688BFFA -:108F200087C54BFBF0BCD448513CAA574C45A75FC2 -:108F30007B31C7739D2B9F97E359E057F8ED493478 -:108F400017F95AE05B017802AE94D9D181F495C249 -:108F5000F9C60DCF53FF4DE17904D600743B96AEB0 -:108F60001FF8E6C01504E3602E7E14ED04DDBBD7C8 -:108F70001FF6FFF75EBFA087CCF5ADB4FB0F11D78E -:108F80000D737AF371BDF942F9DB6D709E44CD65C6 -:108F9000FBDD7079F3AD329CC320960EFEB5B03880 -:108FA000BF53E6BC7F2450EADC7FF85CF74D78F8CD -:108FB000FEA3DFFD2ADCCE12E7F9DDF377E36BAE2B -:108FC0003F7D1E261993DEEFEA8EC789F886C88397 -:108FD00015710084035DBF67961C47F95746CC9D09 -:108FE00069E4D3323FD30B5DCFF9314F225CA5A1A9 -:108FF0003FB6A02C5501E5823A12033D71F1F143D1 -:1090000024413BBD20C0E47E41595202BF47C149C3 -:109010009617B89DC72B0BEA93D24ADB38969FE987 -:10902000AD8FDEBC1DE5E37363595EFA6D15CC7E32 -:109030003B14BDA1A302C62D67F9E461BA5F84BCED -:10904000B1F0116F12EDADB26E027E54AA05AC30D4 -:10905000FD7EBC914CBD713CE47DF9F079B251C705 -:10906000E781B1DAFECB69BDF5850103FA6D290A06 -:10907000B0F3BD611FEEF7FF9CFD75F4AB9E6E8CE7 -:1090800062FDB66F9B685734EF3F817EC3A0392DD8 -:10909000C6FCA8A642CA613E874CF0731035662C08 -:1090A00086EF077E83F5142DF11B0BEC93651AEE0A -:1090B000EF010E104F68F2B37CB9CDFEBA68363CB2 -:1090C0000BC98A4569E0BD82EB1D4A518A96D79744 -:1090D00087A495A7942CF02797914EC873F7B424D2 -:1090E0002B404F93D5BA01E38CF1252BC07F3CA6D2 -:1090F0005A8F810F5D2B67E745043E3C7E127F222D -:1091000004F552D2AD74DC89011DC7293892C4BC64 -:10911000E58FDE9C99D6FEBFFD68057EDFD65879C7 -:10912000789E8D9F4319E2951B8BE73CE0A7E3BD3A -:10913000EA67FC9AA95FF11C6ABFAF723A39F0E6A0 -:10914000C451605F3664C8A356748AA7114C3E812F -:109150003F62FD78635476C8DE0F8387F2DCB30C80 -:10916000AFA58C3E9B7E3C310BFA7DFECDA53AF837 -:10917000FBFE945B8CFB86534F7B4DB05F4EE590BE -:109180006ACCB77C7AE68BB03FFC43E3C11CD526A2 -:10919000174FFDE895191EDADFA9275F99A1227301 -:1091A000251D76ECBA73AFCE003BC19A434AEAE87C -:1091B000B356D708F45BEB63EB107972DBF3B4566C -:1091C000785E19CCC6F679A3E43BA1ACF85E1DF736 -:1091D000EE345C378B2BF0380E5D5F5308E95AA7ED -:1091E0001B1088175ADE7110CF7AD38BF4F75121F8 -:1091F0002929BC10FC820AB6EB594D92904FA1A5CB -:10920000EA803D89FFE52401BE09BEA6EF475AE387 -:10921000F7C1DDE9E7F90F3C8F70E39BB74F04F826 -:1092200008B9AECE2518CFE8F99A2F09F6E83DAA7D -:10923000F19DE560075EA7E23C6819CF1BB9F1B369 -:109240003C58E488E3E5F0F884C06B263AD9DA4864 -:1092500062C514DE3F6BF4C560FC7D8D3A967FD20B -:1092600018C5F2DE46039F4F3796E0B3AB3186DF79 -:10927000F73496E353E4F5E1D65E417B3A5E017A3A -:10928000E81AE687D30DD9847C852C95F8E0BE26B4 -:10929000FDE8BF55C17E1BE44A560EF2BD04ED73D6 -:1092A000799EDFC8FC39ED15469F7C15F2B4C943A1 -:1092B000249047D62CE66708437FB47DEE1242DE49 -:1092C000B6C9F573F49FB74BF8FAE87CB24CE77770 -:1092D00077FD884A1790D3BF1D958B58EEEB373D2D -:1092E000FC86FB047FF9DB36FADE3E9DAE9AD2D1D6 -:1092F0007689C9B13BF9F73BA6CFC8BA01CAB366B4 -:1093000064815CDF3E8B183A85E35D866C79B2FA46 -:10931000EAEF683C98376F3CD74120A7EAF59D5BA0 -:109320006CFB9831165911B7D1CB5D756AE52EB437 -:109330003312F98B2763BE31F76BEF9E678EC17EC8 -:10934000B13C21F0E23C8BEB159033979D657AA8F8 -:1093500057FF7CCCDE0BBDA771FC6F9BBD4989001C -:109360009F803C057959962073E83C4397B2F8F703 -:10937000AC775304F2FBB4187D0FF6A8C6F24D0A81 -:10938000A24909CA3FF2C7670620EF3DE7FED42E87 -:109390008AEF0FBBBC06C41BBB9EFB0BE6672853C2 -:1093A000341FF077C1BE6398B7A4C8DD1AEC789774 -:1093B0000526CF57C19E8589607C802A6A8A6725E9 -:1093C0008FAF8F3CD5322F04E7BE1227ECF5B707DD -:1093D00012B7B21D33317D51CA0F7ED1FE82168085 -:1093E000C7560F2B2F0B4C6AB1B04CEB67B37233DF -:1093F0006DBF35BB332A6743D2D4C4968397425995 -:10940000D49FD862CD26E41AAE0F48285108FCDE5E -:109410005BD669396C2BABAC4C7CEC29D6BBEEC06F -:109420005F5E1C4DE150B34FEAC410DFBE9D12AC2D -:10943000BB60EF4E94AF054982FBFE82A49484A3E7 -:109440009D7B1A0FEACDC2B926F04245C3A428BBC2 -:109450005F484B7A62B0BD9CC4EF0F1174F17490F9 -:10946000E9C74949DADE1E9776DD273289DF57835F -:10947000200579B98D9D0776D37929EFAF81585BA7 -:10948000E03C2E79CCA3637C9CFBD94F0ABB89FBC3 -:10949000736EE10E3CCF262B7001C8BF952AFA816E -:1094A000D7162637521B8AAC7DB630462D56D2E2EF -:1094B00067F4B236BB336F2AC5674BB6B3DCC4F36F -:1094C000E7A3D956369CD7ADD97BF738C8EFA92189 -:1094D0001DD77F13E6FB328B879FD83F2BEB125AA9 -:1094E0005EF7328B63ACEB7A4503FABE27C0F38E8E -:1094F000BA2EBA12D657B34D267221E34B73229D72 -:10950000AED971019CAC7B7EEB5BF3FD630979A462 -:10951000C8D4E58B08E90E9E68F151FC3FA2E9939F -:10952000803EBA833D2D405F6B67C99C9E7A5E305A -:10953000559EFF5800E35CDE027196DDCB2AAF0436 -:10954000732B4F66FC4B0912E3DA4A76B30FECF942 -:109550003FB6C8683F838B7403857BB14A0EAAF47B -:10956000B95DA3F8043E6B55511ED2F76D1EC44B76 -:1095700007DE3342DAD83D2DE3F77957829D5D5CF3 -:1095800067AE467B5B2F453FC038D2FB837912E73D -:1095900011267F27EAA442A5F566050B117FC55564 -:1095A000D7AE85764A784900F83D4F495AD8FF77BB -:1095B000991CDE2E273B7D2097234588DFED114641 -:1095C00017D63DA54817BBE53917805DD422ADDC21 -:1095D000F20BC06B76119E7B85F7EB61FD1C9F4DF6 -:1095E0007ACC07F8DBCDF1A9EC942DC8D714EFB7EE -:1095F0004A37AC06B89ED8523FDF47E19AE735DBE1 -:1096000046503C1CDF52DF129D857828F2D1EFC70F -:1096100003F52D3E8A97DD1BCD02DD569EF8099598 -:10962000EA48B4F52DE66CF09FDCB7069410FDFE19 -:1096300002F83F1EC9117CCFBE1717F5CA1113ECF3 -:10964000D226AB4FAEF8A85E28B6D59F47E5C20F2D -:109650001E5210AFFF4EC7033941D76101DDF74CF1 -:1096600052D12E08D0B904683930B908F36DE9BA7F -:109670004900EC86C92AEA7911C7D126C96837435F -:109680007DA087407E11E6CF51791D87733E4A94B5 -:10969000C5751465874979980479FEBEA42FC2FB6D -:1096A00048FC25B6BC0290BFAE3C04C5551EEFED8C -:1096B000CE97A97ECD3DBA481A47F1F25E80EF8B76 -:1096C00072E93E96BE7F3FC0FC40B7C7AD2F43BE98 -:1096D0000C31BAF3593C2A3E159EA3AE2B1E359091 -:1096E000FFA5FF7E3586F6CBBD63D4B4F960FF1AC3 -:1096F00064FE41EFD862BC57A38150FE07BE08F15B -:10970000FBF2B8FCF0707BC17D4E40C8134F365B56 -:10971000637DFBDC5139A1BE73704AC8F4813CD82B -:10972000AF4FCD027B743C9753CDA9595F05BB4524 -:10973000E5F260879F9DCBEDC9269DBB08D8BF3160 -:1097400062CF4B10F2605BA30F9F0F5F3601E39770 -:109750000F5F963707E215072E7E1FF7BF6776303B -:10976000FE3D73E805B84B899CB1A8B6311859A1E4 -:109770005F3E752FDE17F27D357E17E6CB43BE0EBA -:109780009DD25DD9CE3CCC47395CCE0578DE808752 -:109790007D17F778A867BF847EE06D7C3DBEC43C32 -:1097A000DC57821B0FCE1DFB4907DEC724E0E0BE5D -:1097B000BF433D3B85F9EB036C5F2AF297DC794AA6 -:1097C000623EFB8219EE3376E143F835041E44FB1A -:1097D0007AC91CA50F4037B5671592B4E585F49D8D -:1097E000DBD0F0FD6938EF9205F7AF243A2E29045B -:1097F0003E48A29DE80F353BEE712551B5C77EBEB0 -:1098000024E83AEFE2E617B83F18F4B4660C7CAEF1 -:10981000E57DBACD1579B998A7AE9207C0AE3D15D2 -:109820007C6B06F8E36AA998005739512D3C4F7AB2 -:109830009AEF4BD47DB7E2791E313FE18F13E59A61 -:10984000BD8BD04F57BB3B84E7796A924C0EAEF389 -:109850005907BDB23DEFD64C41BEAD672FEB6F3C13 -:10986000E080D2C7877A753EAC3FD870FE4C38672F -:109870009227D79D370EE0A3323CC07EF9C9109ED7 -:10988000D355BDB6FB53DFE2FBE365DC1E09124B8B -:1098900006782A8158376167164D95DA474AAFDC5A -:1098A0009BDC02FCB0DD656F6D0FB0726B70724BAC -:1098B0007329EA67948BCB023F437BA8C52FCACF9D -:1098C000A29CDCAEB1FB3AACA7BD06E83DDA1ECFE8 -:1098D000A75BCB4A507F2845A400E0360F1C2D2003 -:1098E000FF9EF6EE023FC38FFC896B0236B89D0ADD -:1098F0001F1907FBCA34FD598EFEC60DAF3F3A7ED5 -:1099000017E0417C9F17B91FFBA7EDD0DF41C61CB4 -:109910007A8BDABA24EF692F9E33DCE171DADBE26D -:10992000F920E7CB36D7BD1DBE44B3099B73C19F59 -:10993000EE7B9605BFAA672739F2A4C607593C5BA0 -:10994000554D7055D2EFA5EC7B80D1411BCFC7C9D7 -:109950003C4E4E86719C71BBFEE3CCE07282F07D82 -:10996000ACAAF7DECB3940FEAB3BBEE8966FBD4FED -:109970002EDFF2393DC7A5C4B3415A5E93EC5C10AB -:1099800060FC3905F87335A7D3923D773F076AFD30 -:10999000319FF967D837ACF2991704A70F9F7FBAA8 -:1099A00083623DFDE417B3CBAA999D5BDF3EED4A90 -:1099B00028D7DF51A45B69E245E2597D36E8905F24 -:1099C000F7707F51B56AA11CAB3E1BC1EF9FDF78DA -:1099D0007EC779B6FEE385F0BB18EF16977C3E7024 -:1099E000F14BDBCB291DD73FE191BDB671EA9FE07A -:1099F000E780FC545E3BF9DD047E570B496F9E22E5 -:109A0000C887BB3451565AC12E7AC42E1FCAC16EA4 -:109A1000EB6B0FF716DE15E0F5AD60FAFA4157FD76 -:109A200022D17F2ED677CF47C81F28839DA67EE2FE -:109A300015F343F975B7ECEA2F478C3F06FB13F695 -:109A4000FAB703E35F843B25EECA4E568C66FE1DD3 -:109A500003EC80EFABB180FD3EAC6F737AAD3E7B23 -:109A6000BE03DF7D709FE078FFFBC6A8235FFFE6A3 -:109A7000443D9ED3F87680D16535B5E8B1DD8ED111 -:109A80008E3CFD7FCCE3D3CEE3920CF3B8EC6F3C7D -:109A90008F42077FF6CDA3D8F1FED3CE631FF70B1D -:109AA0003FC79FF375762FC07C4342BFF57C5AD7E2 -:109AB0004F69FDCBF4E9A3CFF92AB14278CF6D927B -:109AC000DD6346CBE00FF8EA27B7BD7B39DE0B6DCF -:109AD000623E8E57E4E3F0731E9BC70C7C5F91FBE4 -:109AE000EF3BB8BF0733DCD3DA1862FBEEBB2FBC09 -:109AF0008A60FE7A28817182FDF90BA260A77FE758 -:109B0000C21A7C36E7CF88823C6A0A7FDD916F4EAD -:109B1000F70869CFC1FE91F74BCE7E59B69F47D962 -:109B20000CE751D2D41771B1CDBE3ACC03FFA2D607 -:109B3000FBE017B4DE4BC38CDE36FB1218176C8DBE -:109B40007E31F37F26C4C6B9FBC2CB089BEF6529E3 -:109B500016F7D10CFB7960F1DC1F9E118575366517 -:109B60002F88023D3767CF70AC47C9B09E5561065C -:109B7000A7CDFA17BB9EC39F793D0BD2E6C1AAB908 -:109B8000E9EF176B17788A2690CEBEA8759DFA1B51 -:109B9000AF6B14C7577588F90D361B8C8F824AFC42 -:109BA0005785D2E07C38D8DF1D21C5863C943CBC6B -:109BB000DF727865E2DF659EE44898D79146B67F0C -:109BC0007E9DDF27F5DBEAA630FAB55DE36C1EB3B8 -:109BD0002B3C909FE37F563BCFA70F26375A422C52 -:109BE0005EF3B584B3DDD2AA60DAFB4D28FCEE2A21 -:109BF0002CEC83673FFC7FCE70CB448FC3855B6BBF -:109C00007478701B8C0FAAE1929BE983C34DD05BE3 -:109C1000A67EFE7FA1B307870E2FA4AFBF15BCFEA3 -:109C20005EE9EB1980D710F8F21FF03AC7F5E6D0DD -:109C3000E025E4D81E8DDDBBE8EEE74498DDAF34C7 -:109C400051AA3B7C05C417BEA2A0BFF7F08E79EBEA -:109C5000886CAFC7F4D9E1CAB9EB30DF351EC47BDD -:109C60003C5F9363FF5E067187C5AC5DBF7972F898 -:109C7000BC14CEE67E4B6324F8115E8B5F3DE0FAA8 -:109C800048A56D5D989769BB8F4AE90FDFC3C4B8DB -:109C9000A30CFC4D0BD3CF43E033D3B8C3C5E76B64 -:109CA000F1EF0F0B9F83ADF7D970D190E485D837D2 -:109CB000E492DEBF977101C0738FCCF2398EC2ABD4 -:109CC0007CB89F8C60A5A555A376029ECA223CEF66 -:109CD0004933D6819FCC7BF5C2AD618AB7D7AEC977 -:109CE00096BC367879230CCF3396A7B70B73233CF9 -:109CF0002FB7B7BD44E03E44773D85D7BB6639BB3F -:109D0000978AA8E6D8C5B67375535CDFDDEDC74604 -:109D100022F8FD351E6F777FCFE2ED972E19B83D03 -:109D2000A963F7B950BA1B9BEE7E41C11F9DE14468 -:109D300034429FAF4B8907BF01743429C4E21E2A05 -:109D4000298478BDE8275725298DC2FD5D8F3116FE -:109D5000FCB469FA291CA89F4C7015EB11E3002B89 -:109D6000C2BD2C74FF88FBC5329390D9B04FF4C6A6 -:109D70006E65870D191DE4F0FC999975C1E446B034 -:109D8000F354BA4EDB7CBBFE6BEEFF80EF5D876564 -:109D90007D53617F380C261F1670BAC955129BFC83 -:109DA000E01F5B21A5BDDFECF208FB3B251F847B98 -:109DB000E3EA38CE84FB121EB8E7E05A9EDF44483F -:109DC00062ACFDEF8C7DC0E58ABB5DAEC2E2D1E442 -:109DD0000DC6CF7B76AD199B8E7F5EE57CFA41B8D0 -:109DE000C4919FB4247EAB07F873C9C2451E2304F7 -:109DF000DF99BCBC86CF638F96187B51A80F4E1994 -:109E0000E510874FD7914413DCEFB0A241C238521E -:109E1000E90646772B36EC97D7D1E74ECE7F8B00FD -:109E200007B6FE6EE578DDB32B300EE6BFA7D74F41 -:109E3000473BA6F3B8FE7E827EAFD591AB3683DF7B -:109E4000AB5B22FCEF32FCA412F20DBA799E480BF8 -:109E5000FDBE11E63B6F24F2F7840D1FD4837CEE28 -:109E6000D2089E97FB8F762FFE7D0B412FBD72622D -:109E7000C3478D907477AF969A0C7433B2A9EE1BDA -:109E8000E9FCE416E7FB0F43F1AC7476AE780A798F -:109E90002EEA2D560D4FBAFA57573AE59898F7081B -:109EA0006FEA54BAFB1A7AE93039B0DEFB3597E332 -:109EB00002EFBDF83E927E5FB423C2E2777B9273DD -:109EC000D6A2DEB2BC06C843311F01AF5C8BC1E92C -:109ED000DA258A43DEAE5818749D476270FDAAD712 -:109EE0007808D671EFAE9726E3DF5174E987809248 -:109EF000D0E0FBCD24E50139715C31F0F97AA3F3B0 -:109F00005EE6D749E28EE9A03F1B94B47CF50CA72E -:109F10009FD7AB565D83F36F567498FFB1E523AEC0 -:109F20002A07F952E5C17B828F35DF16BEC9B67E9E -:109F3000A1EFDCF3FA6DF5AA01F5D6D22A27DEF6F9 -:109F400068CC2EB0AE647CB89ACA9BD9485FDD77E6 -:109F5000CCA4E31F4EE65CB4855527F0F71CAFE6B2 -:109F6000BF1F971377CEA4F2E684CCFC61D63F31B5 -:109F7000B9B1E4BE780BC4794F344CFB6937ADF707 -:109F8000325FDF5B0D03EB47373D4DB8CF793FE5DF -:109F90008C234483F689FAF4FAE0FAEC2093AF6A52 -:109FA0006C1CC897EB36A4AFB709922B69BD137F21 -:109FB00055AAD3E56D7EA2333E59114FDFFE133D06 -:109FC000CCBE835E4A03E7BD59412EE7F47120A75A -:109FD0005764986F575604EBBDD372FB7510EF3B77 -:109FE0002E3BE5F30FB278FC3C8BC9E713BB9679A7 -:109FF00046029E5A251DE8E1EDECD824A0B795CD88 -:10A00000C7D08FF02D5EFFBA50FC43D04F4B8E2C43 -:10A010009E3F92E2A56B3989494666F9FF31E79F79 -:10A020005C85DD6340F5DFBBA0FF68D377D1FE50D0 -:10A03000CD715F9BCCAE6C84BCC213B2B506F3503D -:10A04000760558DE11894DB7DF2F13E0F338B17B69 -:10A0500078F8BE261E1CD08E3F4C3A6A70DCDD417B -:10A060001DE28F872B95D4E57492EFED0EE23DAFA4 -:10A070006EBEC834FE70EDC013BB8767070EB6EE28 -:10A080005856E190ECC03395F7DE59067CA4754C28 -:10A0900049277F859C7E8DFBADDCF4239EB3393E42 -:10A0A0008E27079ED7CDF73BE7735D9D733E825F9A -:10A0B0008E279B02901F4E479F6CB74BC9BCE9830C -:10A0C000E859E6FFCD34CF389FA790134079104F61 -:10A0D0005BCDE5CD5B0DF746EC7870AFFF84CCF738 -:10A0E000070FB1BCADF1F19573461A7DF4795D1699 -:10A0F00093439F375D0A3DE3EEE7EF9D0E859E1B80 -:10A100008C0E855C70B7FF00E2FC23E1EFE3E81AF8 -:10A11000C4653E8818AC4CF40570448694F373CB48 -:10A12000C41807E76E4EEC0AE0FDF6D6166F12FE75 -:10A130006EC7F15D974CB2AF6707C7FF8A25D97824 -:10A140005DCA713976C528CC2F50F0BEAED78FE4EA -:10A150002C80F2BD876490D0E4BAFA950AACEF8106 -:10A160002C9677BE62C32B680F0E97CE57D439F565 -:10A17000FF277C1DBD7696DA5306F493090EED5940 -:10A180003EB6CF892F9A0FF279D50609E5ED962CC8 -:10A1900003DFAF524D94DBA499E947E2A3F0A02A74 -:10A1A000E4182C02E0F1BFF9DF2953E39AFD7CD2D9 -:10A1B0004DDB6E9F0FF6A19B5F46EB8C8EE15E3010 -:10A1C000785E174A3C9935B24F3EBF2DD5ED1F45FD -:10A1D000AB5C9EC5ED6DCEA7623D9767B1F5513B77 -:10A1E000ED87F8F799F8FA48CC456F7247CD4F00E4 -:10A1F000FE737C681704BC54EE43DEDCF7033ACBF5 -:10A200009B637C25EC1D77FB6BD584C36E3C94551A -:10A21000E8C8C771DB21FFD017E9EBFFF96FAC2F5E -:10A2200064FDD3E98BFF0778BAC08E008000000080 -:10A230001F8B080000000000000BDD3D0B7854D59B -:10A2400099E7CE9DB9994966924932933738930080 -:10A250000625780321449E370991A0A803040C1A0F -:10A260007044D4282144C54ABFD2CD0D893120DAAB -:10A27000505DB4D67587885DB6D235586AD1D2762E -:10A28000B0828FEA365A45DA8D1A1FA5800FA2AD2B -:10A29000ABDB8FAD7BFEFF9C93B9F76626046DFBAD -:10A2A000F12D7C7ED733E7FDBFFFFFFCE7B0A22591 -:10A2B00085449D04FF7C49FF3B9C1A20C44FC8F194 -:10A2C000BFCA8DBD6E428E45DA93AF81AF4D5D90B2 -:10A2D000ED2344EF94C9A3B4DD3B473EAD81F2BD0D -:10A2E0007D36AF44CB2BD65F238769BB4C28F9A1C1 -:10A2F000DF9234287F097FE60EFFDEF0804CA2C596 -:10A30000B179AF867518CAC77A923502F3CDF14498 -:10A31000C60709D9AB109D9411F2F6E6ECC8265A8F -:10A32000AE7112DD3D8590B9696CBDBE8D9FB77A67 -:10A3300027D3F5F4FCBA8414D2F5DD7DFB8AF0A4B2 -:10A3400038F37B6D844CA3130402369245C86D7CB0 -:10A35000EFAB528906E3133ADFA386F145BFC3ADE5 -:10A360008444CFA5F5E368BFF2583FEBF8CBAEBC11 -:10A37000702CECFBF09533C75E3329D62F111C9659 -:10A3800049E17F5E0AF3B6C92AC075D73D498D3DC4 -:10A3900071E0A673B85AE7873F76BA8F25FCFF971E -:10A3A0006EACBCC34341B22965CEEC709CF90F93EF -:10A3B000F0DDD3E87CFA46369F759EC57C9EC3F5DA -:10A3C000D72E05F87FA6CB5E99C263A0414EAD8023 -:10A3D0007EF50E753C1D7F40BFD5739D619DBF4FBF -:10A3E000009FDF375EEB898B07FEBDA2DE4C076F57 -:10A3F00093C197A7C33C3BE3AFEF16581FC5DF31AE -:10A40000257CCF85747DC72F96559DAEE7B88DF618 -:10A41000037A7990F60B0CEF773DEFF7F6C691E9EA -:10A420007249AD793D4B8F249BE9D2461A7BE3EC10 -:10A4300067685D6748F72B2CFCB74B191CE3A5FD3B -:10A44000DFDE71EACDDB613F3B9211DED67132D3A4 -:10A4500065C6A7C02700AF2D499C4FBA9B9FA6FD9C -:10A46000DEBE344FDD4486F30721DD97CDA0F5FD38 -:10A470003DB6D22DB46A574F4A6324CE7A27A7330C -:10A480003AF0C97AF279B43D7983E103C80DF866F0 -:10A4900029A7376FCF0F5B882DD6EF0DA0832442FD -:10A4A0007EDBEAC4EF36AF13C7A95BB84809D079A1 -:10A4B000AEB3130DE0877FE8B8DEF30A766CA153E4 -:10A4C000BD6E63657D15E53F69F87A1EE674B92BAC -:10A4D000B27844F8D637C82678D62D34C3D74A9FE9 -:10A4E0004723B6DA78FB17F49C68BE2B1D113FE0BA -:10A4F000E908DFEF61BEDFDF37B67BA0BD759E5D8B -:10A50000919E11F9E0AA46335D9C6E9F6F7A830895 -:10A510008FE56173BF2BEACDFB5D4A5A66134A2A69 -:10A52000CB88EA806F1D6929799A82F2E8034B7023 -:10A530003DAF13520B729E9CBAB56451496CFC1727 -:10A54000393D7F5677EBA5202EDF505A4ABC71D695 -:10A55000F33A8793C0F7EB09E019E572F70DC033C2 -:10A56000D0EB32392E9EFF8BCFFB46C3C87CB4ACF8 -:10A570006E643C9FF07A113E6F34B427C33E8F89DE -:10A58000791F64F3825E33E2E3C457D45B56FE1D49 -:10A5900020FA4D48C791642FE8111F9087418F74AE -:10A5A000A4DB981C2F1E598F88EF6F855CB5B4AF64 -:10A5B000B36B0E233ECABD01849B28D72D34AFF365 -:10A5C000BD54060FCA7163431E83DCE0FA55E8BB35 -:10A5D0007B7F70FE5BA03FC7A7333CD4853E7100F4 -:10A5E0003CA87CBDC303FB7AD5E605F95A7E4473CB -:10A5F00018E137278DB53FBE7364F8CD4963EB3C56 -:10A600009D9CB5EEF7ED6FDF3905C67DFBDB9F3B0B -:10A610008CE32FFB229F443363E5ABEB252D1287A0 -:10A62000CF36789551C17D83058E577F3116C7F798 -:10A63000C9A4A537CEBEECE94E6CBF3454E9F05343 -:10A64000785EBB5152253A84239DC9DD6B85BCB32E -:10A6500007C62EA270F7B7B7DC168A33CE6C0EEFA2 -:10A660003FBB4369F1F84C7C853E17ED96D9C38E0C -:10A6700078EDAD7A7580F3B9B55DE80CE971C80E77 -:10A68000B2B41FED3AE6A6313ACC4C8A7E04F28889 -:10A690004C32DB61A79DD7D2DE3AEF651CEE89E62E -:10A6A0001776AD757C9DC33F1CA2F413B7DE83F50E -:10A6B000AF12A65FF5480AEAC3633BAFBD07CCB74C -:10A6C000EB17DC7608D4E4CBA9416CD7107AA50649 -:10A6D000D9EDD4BD9301EF9FD5DE7B4F195DDA71C3 -:10A6E00025DCEEA11D8E6F92D06EB1CEF32AD72756 -:10A6F000AF813C3D17C623CC5E9D4747CBA56097F5 -:10A70000B5352054C8B79202463BD5B7E1F356326F -:10A7100019EC87D0260FFD7DC2C64FD6835E262456 -:10A7200082FDDF75A83722BC09B373FB7BDC3BB627 -:10A73000D076AF825C80F1893A3654629013762FDE -:10A7400096478B9FDF26C0CF99CA29B1CF44F350DB -:10A75000C8E3FA1657B9BBA434B07702D7C17E0656 -:10A7600017B8BC3D14858B15ED1280CFABAFD86CFC -:10A770006D411C16ED15611F072F0BDE755E19C8A4 -:10A780001F87E6A24B5904CECB85948EAADC3A8C67 -:10A7900057F6DB858F017EEEAD4F0AC830DE9CC0D8 -:10A7A0009B322D2FBE3829007E47795FE1011F1DA6 -:10A7B0007FE942C94B68FF790BC6FB07E8FE5236BA -:10A7C000D071F26079C76AABC711F243986C066129 -:10A7D0000BA6B0582CF1B2EEDB3C8FB63FCFBFD703 -:10A7E000E6A6A09EF85DDF66271DF78EB6508E3771 -:10A7F0009DDA13E91F743967139295A5F5CD5509B4 -:10A8000071677C540BE5BD0F8AF13EEED20A08F960 -:10A81000992D1C9468FDD48CA405760A2F5F91981D -:10A820003F6FB3368BEEE7E21B1F5D4FC75FFEDD68 -:10A83000490BECB0EE06317FE90258DFD259A25C39 -:10A84000EE82B22F85F787F55650F955185BBF3D5C -:10A8500087CE9F21DACF58308FF63D5CD9526DA755 -:10A86000F3FFE8BBDAE649130999BEB0D2ABD1F2E7 -:10A870001319F50B52287EF6124AA7B4FC64C6954C -:10A880000B60FD3ED9C6C7BF6A33ACBFBC413F0FAA -:10A89000EA257DE5E65ABAEFB5CE814340AEEB3608 -:10A8A000E8CE2CFA3F2912E363A7A345CBA7B073E8 -:10A8B000ECAB8CE6E372BA19BD16444B408F0D9594 -:10A8C0008B69B9C450CE61E5BD9BC8D5F1E4ED6D8F -:10A8D000994CEEED4D8E5FAF64307B80C20DF54933 -:10A8E000DA11A2ED8EA3573E4A77E37C079389EEF7 -:10A8F000CC88F1DBE594872B285F12275BA71867CC -:10A9000098FEC8607287E89767803C5D0843D0ADC9 -:10A9100017A912FABBA42525321E688744ED4B40C7 -:10A920007FC8365CAF5F96AE5E44C7CB4A26E13D3A -:10A93000F4EBCF2458A6FDB53DEED8782F71BAAF11 -:10A94000290AED84F16AB2734BDB83B171E8BA3B3B -:10A950009C534CEBB6576440FDE2D29B2719E0397B -:10A9600089ED83D201F6A3D33C3697F2C1DEBEF364 -:10A970000AC17EFFA945EE96F72D7610DAEECA4C95 -:10A980002E5F02ACBFBF9AC99FC19B53223DC09F9F -:10A990004EB53464B03B031C1ED5772EBC1FDA3590 -:10A9A000F53948126DB77E4F653619412F367D3126 -:10A9B0009344A61ACAF6A80272A7E98B39F87BF568 -:10A9C0009D2F29C0A7304E80EE6BBD4BCB56016E3C -:10A9D000EDF1F14F1D725C47D317E9449F6AFC9D6E -:10A9E000C12936BE0FEB4FB7AFD8783289648E34A9 -:10A9F0009E82F54370B773B82BF1D7395FD02985A4 -:10AA0000B7CD405F4B39BD51E9877194FECB26F538 -:10AA100080BC8FCDBB09C7DF6BA778043BB02F3953 -:10AA2000007671B99DC9CFF2BE0CAF2EC5E843D0F8 -:10AA300085C0EBDE8C964ADCEF22C9DB131CBEAE70 -:10AA4000CBC4BAB83ECD6E08CBD718D627F8818EC6 -:10AA5000BF978F5F5681FCF32F4CFF50BE5901FC0E -:10AA60000B760BEC438D962CF60C5FFFCFA8EC8099 -:10AA70002FC52383FFA5EE08E80101B7E1F0CF3F22 -:10AA80000D3EC7627D79DF330AECB32901DF8632E0 -:10AA900053B15FF691682AF8B5BF4C677A6D6FEFD6 -:10AAA00054D74CE08B853602220CF60DF66AB9902D -:10AAB000B764D70B5576FAFB5099CADB00E06148C2 -:10AAC000FE469DCE58FBAACC5D0B3A689D2F89E2CD -:10AAD0007F12DAA14E62F027BE9DC1E4584598C4AA -:10AAE000B55B966532BB45C0FB7B1BAAC97B747FF7 -:10AAF000CFA533BEAC18D025C08BE06BAB9C7A8859 -:10AB0000E3F17BFCFB8F9753D269E4D4222EA7D8C4 -:10AB1000EF07A9990FEDB2B2A22512D589AB5E98C5 -:10AB20003A1EFC995B72E4C0FB94AF9648EA981F0A -:10AB3000D171EB9C018C93093AA923CE801BE04E86 -:10AB40008DA62F41EF2F746119FE805DF269B7C4A5 -:10AB5000E89004D2EA4A12CB21B18E5B72149C6F4A -:10AB6000D5E6F16961E3FAB89EB83C29FA2352347C -:10AB70009CCF4599AE7FAD4D36D4BB993EFBD0A35B -:10AB8000FD3483E2E15589D4E37A2CF6D26F78DC88 -:10AB9000C66A2FD5733BD20FE625F2B10D9DD3ECDB -:10ABA000AEA408615D74F053B37B09E7D7A8ADC9C3 -:10ABB0004007BFCE286076ED15B4F202CA94CE6A83 -:10ABC000ED7D831C7B1ED6837A213A0DF8F4A50C0B -:10ABD00062B2F31AE4508104766B76920A7286E2CE -:10ABE00009E170D045EC2E3AEF73F40B78AB916F1E -:10ABF0003EE0F0011D486A3B427F07F75B4914F4D1 -:10AC0000CDE57353D06E25A76E1D07F10A7F0AA309 -:10AC10005B3A8E938FE3443AE172EF376327F68015 -:10AC20007E12F253E0819C92713C517F505A54E065 -:10AC3000A5E583FE734BDB25B3FD03F650CC7E5AAE -:10AC4000BF793EB597A6D7F6466D5E902AB72FB866 -:10AC50009DB6AFA1F6938BEEE78F194C0F1E0CEA51 -:10AC6000722A8C379EEE83FE7428393CA9C51DC319 -:10AC700007B571C280BF2C857EDD8C3FE0DB99C9B2 -:10AC80009091E163DF06FECD4A65ED87E93D5EAF59 -:10AC9000490CDE5B2A999CB0B6B3F171D73AF5DA6C -:10ACA000AC42A37D1522408776C2EC2C19748F1F0D -:10ACB000F519C2ABFACE8634D09B9FF52D4D239368 -:10ACC0006272D4E1FCEDD8F7A91C899225DF017EE0 -:10ACD000555E9709D8CB7738185D2AE9616F06FD74 -:10ACE00066A6C4F79B27F2F564825F4DDBDDC3FDEA -:10ACF0001EC717E7A3BF9D9FC9E245A9397528D78D -:10AD00000196018AF73432A87B0D784CABB099FCE0 -:10AD100007C71793B1FF99DB0FA509EC873293FDA5 -:10AD200020E6B5DA116FB6E6E0FA45FF1539AFD582 -:10AD30001043FB9564E00E186FE5FA7C53BC289134 -:10AD4000FD3137531AB217F4B8EB524CBFBF49FD6F -:10AD500045DD38FF31367F6CDE14CA70B179E54CC1 -:10AD60004DCB44BF6F96F7E8F9F4E3A2BFCBA877C9 -:10AD700050FE53FDA4ED70A35EAA05B92DFC24E09E -:10AD80007F6F1AF077656DA6DFA027793FAB3C3A5D -:10AD9000C0FDEA035CDFA41D117663724092627A03 -:10ADA00067B8DEE276B1453E9ECECEA674AB1BED13 -:10ADB000806178CEFCAAF6655102FA98F00FB12FA7 -:10ADC000CB6785E512909FB512194F3FD3E799F5F0 -:10ADD000BD9EC9FC109D329CD16F59DC606ED701BD -:10ADE000EDFCF04D1995DF62D447920C728F8DD730 -:10ADF000CCE92178E2552540E57094DB43BB7CDA51 -:10AE00005D40171DC9A993414F74248F8D405C622A -:10AE1000C7FF5617EFA0EB1F7CD9A1F6C0B0FB18F7 -:10AE20009D542E5FDF6EA7BF3B7A256F1289ADD38D -:10AE3000BD41D256533EBE9FCB89261FDB4F932F79 -:10AE4000AA8CA3F3E735B17514F41E90EC0679577C -:10AE5000D0C8DAEDC87498F4CFA350A6E33C22FC26 -:10AE6000111269AB2983F69A1DCE41F27A258C0F17 -:10AE7000E7B55040507AC853D9F86E35225D3B296A -:10AE8000B6DF2EDBA249A027BAB25254D013277DD9 -:10AE9000E1C760BF4DFDD128806B7A7F9F1DEC3DDF -:10AEA000975FDB0DBF8B7D06646F1EC8D9947EB69D -:10AEB000BE6E0BDD1372175F570F93BF32799E0082 -:10AEC0005E4086D0F9B23615A39E12EDB332B8DEDD -:10AED000C822E127D0CE225D04F146701F599B267F -:10AEE000A0BD2FF01AB3AB264E01BBAA686BD4BE2F -:10AEF0008AF67BFAA1F8F1FA17399FD07D1C34EE5F -:10AF000023117F08BD26DA3912F8D582EE536AE3A1 -:10AF1000DBAB5413607DE572DF95B0EFA60E8524A0 -:10AF20004931F8BBFCA12320B7F27A7748001B2BEC -:10AF30009D7564FC50CAA7FBBCF546E29549E275D5 -:10AF4000376D90B5D5467EEE5018DD28E6F33DE12D -:10AF5000677CC2E305B3FDA163008FE67DDB14C00F -:10AF6000F38D3BDF51463AD7192DDCA446E6BF34BA -:10AF7000D53B23B0DFCAE576C4E39A0E2502F2A9D9 -:10AF800069F79EA80DECEC8D4405FE6FEADD732891 -:10AF90008FC227BF499B260762E3E5374524584FF8 -:10AFA0001625C63EF4FFA20AE86D2B7D839D0CF6A4 -:10AFB000CA2117E3FF0F2BDDBA44E1F8A123DC041B -:10AFC000ED3ECC4D51F5600CEECFED99FFBC4459F0 -:10AFD000DCF3445214BE5DB69E1C276DD7759EA24D -:10AFE000023DB9FC618F8FC229C31EDA0BFDD37DF0 -:10AFF0001EB58DF60D249129A8AF470987E916BA29 -:10B0000098BE91F1CB5C5FAAB003A7805C3AD7E70A -:10B01000117614CAAB430EB68F0EC2D6DB99A915B2 -:10B02000C07A883703E7CD6B8A4AE00758E78DD1AD -:10B03000955688ED47BDCE5E05E4FC1A2E6F2A9723 -:10B04000EF94DE33D041A98F9DCFE6EDDE21817FE5 -:10B0500048EBDB6A7CD89E2481BCD9CDCE29D6D0E2 -:10B06000FAEB0CF245EC238E9CA980F5B9FBFB9E14 -:10B070006572268AF427D66BC5E73C1FB3EF2EA274 -:10B080006602FEAEE8C5013ADEA1C2641C4FF0BD07 -:10B09000954FE7F9189DE7D5EF94209EE04B61F6B8 -:10B0A000A4589F68B7CB5755EB4338F4211CD6D62C -:10B0B000DB116F623D354A681CF865CBF878CF5CD0 -:10B0C000F1963240CBF7FDF415A4C7B5DD9286FEAC -:10B0D00042F72BCA5288DBE9FF2E439CF61266A288 -:10B0E00090ED3F7905F5CA257B59FC60EDDE3DF614 -:10B0F0006BDD313A0D9E786625D0D9DADE24E292F6 -:10B10000007F01E4532B9D523983744F7405CFB9EE -:10B11000A89CD451AE927010FC1421873B397F1348 -:10B1200037FBFD46BE6E316E4C7EBA90DE8327A69D -:10B130003CE3A4F05CAB4AAA0BF891C39B8E1F457D -:10B14000394C4821F86B627C2BFCFE99DBED71F0E9 -:10B150007C1BE0D9AA4F849E0D3E5C45E02BF06736 -:10B16000E7701FD2EF3E05D7DBE1B3333D5FC9E2A5 -:10B17000DA1D0EA6473ADA9C11E0EBE7D22F7A5E91 -:10B18000A2F2D293A144E17BD0B6AA09EA0FE6B1BC -:10B190007574D93615B7303D76870FF1974A987C8C -:10B1A00062F2E8BE1F3379D2A4BBD17F6C0AD7AD5F -:10B1B000C673099F4B857309127E5659EA89D1835C -:10B1C00015BF81270E28015A7F492FE38318DC9889 -:10B1D000BE12744BE51CE2BD33539C5F868300575F -:10B1E000EAD7B741FC41F8F5A90D21DD1318CEAF20 -:10B1F00099DCAF9FC6FD7A4785F36FEAD7AFD9F0E8 -:10B200006BF4836ECA7901BF825FA8FF68E2AB2747 -:10B2100038BEEFF731BDFA948FD1D59AB25EE4878C -:10B2200035EFB7201FB96B993C71F79BE52021776B -:10B2300073FB602B8E5393D27B910C7EF2BF4ADE60 -:10B24000769278DD37482DFF097932640FCFDF38E9 -:10B2500045ADFC720A571787016FF76B1FF3B73EB6 -:10B26000DC4511017C696F5146B2874F372E89BE8C -:10B270002601BED770587FB8BBFAC23F409C7157B9 -:10B280001AE6B37CB07BC937FF40FB7FB873AE0AC8 -:10B290007ADAD71E42FA19F4BB54882752F1592B97 -:10B2A000517A68EBFD55EA4C382F7BEC8229203728 -:10B2B000DFE57C79E2C7F20680CFA67F7B7C0ED4E7 -:10B2C000AF894899603F7EB8EB5FFF0A7AB171E7BA -:10B2D0003ACC4B6B7FEC976897DB223BD8EFBBD225 -:10B2E000D0CE3CFEC8B63900F7F6DE76AC3FF1C8EA -:10B2F0000E2C3FF36F8FFFE22F60778452556877F3 -:10B30000E2C7DBFEE92F40E775A92AECA3296C67A9 -:10B31000E7B982BEAD726BCF01E453412F9780DE57 -:10B320000538D533F923E8F95D7EDEB4AADADD0508 -:10B33000F2ECDD2D9EC6787146C5CFF002B11894AF -:10B3400063F512C6D9BA28D540BCA32B9954C0378F -:10B35000655254C9A7F35CD1B0670EDA3DFA3BD70A -:10B3600043FB25FB5C640BC6E520A84BFD0124755F -:10B37000424AA8183C4AFD663AFACE2F29DD1EA69D -:10B38000F201F58EC51F58D2F5C2FF801CAD730EB9 -:10B390001C0051287EEFE2F11BDA1EF54EF9FAF897 -:10B3A00071D254BF9BD32DD39B797B171504504E7C -:10B3B00024A9E30DF6E998232D5B203D29AFB1EFD9 -:10B3C00022D8C7C5C5D74C45BA80F81FE81FDD8D08 -:10B3D000E3AF85F825E5BF73FC3C2EE225BE19746A -:10B3E000FE1A3BF1B9E14BC86B0E94238FE2B8D43F -:10B3F000FE40BB2AF0CB2B1E057B64BB239C3B0D80 -:10B40000C6E9E27A6B275B37EDEF8573543A9E7796 -:10B41000C6141CA7CF9181FD75D67FFECE3629B606 -:10B420005E4AA963416FC178656ED0337A3DE227E9 -:10B43000A0E0BE4E40935CDCF7E4152531FEB5C6B6 -:10B440007D409EC1F9F06C7F65857F5AEC2BE2410F -:10B4500056786EE4F53FF36BF825BB324D7A2591B3 -:10B46000BDF2CC151F33FDFBB37750DE34031DC393 -:10B47000FCE1F74DFAF75A41C74FBD83747CED3EAE -:10B48000A67F9BF7952A40B71FB46AE43D6A8036D1 -:10B49000F3F3D7EDD2C0F598EFF294CB0B71BD8FDB -:10B4A000B9BE59B3F59DA3706E5AB82F17FDFC8F26 -:10B4B0009F72D5C338076D3684E7C19EF377B44BCE -:10B4C000C67532BF80DAC148AACDD44E6576F0EA9F -:10B4D0006DE0A7AD6D242AF07FB3857E9AF7BD821B -:10B4E000F422ECE0E0C38B5733FBD3A5BAC08F9BAB -:10B4F000C7EC5142ED51689F3E2FD2A6207D959614 -:10B50000037D3D73C52F3A418F37CF235E187FFBF4 -:10B5100018EDA97CDC8F4420CF65BBA3BBCA4EFBD2 -:10B520006FAF0978292429DC76A2DD4B8A15AEE7B6 -:10B5300056A3BDDC9C73958A7C6695074FB5A1DD4B -:10B54000D51C48C6F55CB24FBA85D9236EC2D62F3A -:10B55000217D5E12991981F8D9471C7E028E1F3B0E -:10B56000FA56023C3EFE0925445A7FC93C46AFE9E3 -:10B57000F37A518E3CF7D47CD4E3822E3D4F26A142 -:10B580003ECFB07B2515F5DA9224235EBB1D4C2FF0 -:10B59000A5733D53B495E1B793F353A7DFC6BF8AB4 -:10B5A00039FEE2D52783DEFD88E31FC508C8772E64 -:10B5B0004FD6AE8E223F35ED66E3F992B4D25B0DE5 -:10B5C000F4EBAB667A519C07C0F9C0A238F2E231C5 -:10B5D000BE8EE0C3ABB681BD7C31C53BA894BC62D6 -:10B5E0002E47295D00DCF21A43480717FB6E5021F5 -:10B5F0003FD59F49D05F1C6C5348BCB8CFE35C8EED -:10B60000FA3343651087F6677BD0CEF1CB953617BA -:10B61000F42B95D49E009E7BA29D37E8CF557B4CA2 -:10B62000FC1E2AB3D176C7B23C0CCF91DFD8179756 -:10B63000001F06D8B816BB6FB8DFCDECC685DDFAA3 -:10B6400064F043C4B9868043A42DB9DE283F7FC28D -:10B65000E11099C8E2A9D4BE77635CDB4BE701FF38 -:10B66000BE67E623CCBF6FC7760FFB997D5443F7C7 -:10B6700007769BBF28B49EE9538F1A0F1EB3FDC2F5 -:10B680002E5F590A7E65739D5B057EBBEF67D22AEC -:10B69000A467081682DF1D5E8D7820140FC00F246A -:10B6A000CCFCD2E69650243EBD2F42FE6B06FE93A4 -:10B6B00090DE310E4FE93DC2E89DE93FE1FF837C1A -:10B6C00034E61D0A3920E44BB3323001E858F04328 -:10B6D000F39C810900B7D1CA938F1D94FF817F2805 -:10B6E0001C807F04BF789E667CB2A52D5009F55B57 -:10B6F0006A88B7DDA08FACFE12AC13FC4E21D74F89 -:10B70000FA42C7FD1007B0453B21BF42C8E1E6A79A -:10B71000374F8897FF26E4B0D3CEE49B339212696B -:10B7200037D0179CF979A6E017F3795236C48F8F7A -:10B730009CF2BB791C7F74F91259A0CB41DEF4A4B2 -:10B74000605EBB881759C7FDD82F99E232C26F815E -:10B750007307689F93C5F827258BF3679688CF46B4 -:10B760004CF41FB085DF813CA344FA4BF4FB5BC56E -:10B77000AFC43C428F5AF12FCE4D603F8B26256ED1 -:10B78000D77D80C9272B3D4EE47C72147C0FDAEE06 -:10B790003FF839D770FCB2714878A2292FAECBB6EA -:10B7A000A7315E1C4C9C779087268E2AEFEE402BAB -:10B7B000CBAFFA0F9E674B564F34E559B9D5401BB6 -:10B7C000C451AB9CC15219E765712CCF1CF209E83A -:10B7D000E1C9FBBA8B217FC91F329F9764D7279B92 -:10B7E000CE2372C319A6727E639EA9FD989642531A -:10B7F000FD391BCE33D507F529A67251D70C53FB63 -:10B80000F1DD55A6F2B90F5C6C6A3F31B2D854DE57 -:10B81000D2D65B0F78397FD795A67E5576AFBD948B -:10B82000C2B5A47795397FCC02CFB4BFCA71E9B055 -:10B83000292B8878ADB29BF3882FD8678607A4CBD5 -:10B84000019C27133EDE9C635346CA6F9D4CEC7FE0 -:10B850001E10FD83C3E9813807D4501C3F53D0B973 -:10B86000285BCFB584FC3853FA4BB44E417F89EA4C -:10B8700013C1ED3B9CFF055C1C4370A95747828BAD -:10B88000E3747021142E9EAF0E17EB789B529A3101 -:10B890004FF8352818ECE38156F37D98657A1AD372 -:10B8A00043A125A7B1A3591C389CC4CE2BADF5FFED -:10B8B000C9E1F2218509E261947CFD16C7437F222C -:10B8C000BEDEF0C9C16C90DFB504FD666F4BDB27AF -:10B8D000A0B7AEB64709D0FF7D7C3FDB79BEE80359 -:10B8E000AD5E1CE7417E1EF9506B007F7FB8B51836 -:10B8F000BF9156157FEF69ADC0EF4E6ACFC1F70714 -:10B90000ADB5F8DDD51AC2763F6CADC7EFEED630D7 -:10B910005BD7307C9172B473429971E3A5D7E8F29A -:10B92000A8F044E482B8FA32E13872C388F9E51B22 -:10B93000FAA5C79F35F0EF5B591EDF51C86D9C4ECD -:10B94000A6C3F9E6E9FA7FDE4A1E7F76FCE8F948ED -:10B95000D013399539211E5F87795EE563DB57DDAA -:10B96000A54F4A0CAF189DC587539DF3E33C70D695 -:10B970002783CD60E82FEE9F88725D382DAEDD9075 -:10B9800097CDF46E7D123B8F5F6EE1EF6F6533FAFA -:10B99000FD5636D377BF4B2067D2793D5DA703CFE5 -:10B9A0000787F1DD3DB3E3C1F7AEEC80292FC57AFF -:10B9B0006FC53ACEEF1CDD63D4387C76BA71C4FE15 -:10B9C000ACFDAEE2FBFF663661EBFF7FC69FBFBBFF -:10B9D000CE83FE03C0CD6FD8FFEFAE4BA98F179774 -:10B9E00069CF66E7A1D43A27C10C34F575056CC55B -:10B9F000621260E7BEE3BC101F12790189E9D58E9F -:10BA0000712484A13C1CAE141F01A5888E6F1F9A5F -:10BA1000276A8779545B4CCF42AE0D31DCFF9087AB -:10BA2000D303EDAF2B98D7339007EB3B537A22F239 -:10BA300043E3473AA71BD6FF0CE5CC9AECBFAF9C7B -:10BA4000117C4E4EDD3B3E9E9EAC87B967507BEC31 -:10BA5000FE87989C39CDB8670ABF7A7900CFAF4787 -:10BA60000DBF7DBE51C5A53E77A54E26D4AFDBE008 -:10BA700064DFDB93537BE0FBB96B6C84A4527E8163 -:10BA80007552BED5AB08BBBFF596F09B5AA683BCDA -:10BA9000DD9E1B7A309B8EB34A61FEE29FB2B4EF0B -:10BAA0004339999F0B27F37361255BE98432D18A6F -:10BAB000715F17F07D75DA0263615FEF4BEA44F066 -:10BAC0005BBCB6880ADF54122D61F9799130F86BAE -:10BAD00099E72707C0DF4D9E40481FC6C75517C4CA -:10BAE000D19494C117C701FFFFD286F7A21FF7B206 -:10BAF000753EFE403E9EB350818FF26232FC4EB7DF -:10BB0000B205EC72DAFFFB52F8896CBAAFE35EA7BC -:10BB10006EA3EB9ABCF9BD8C0CFAFBE3FBABF05CBB -:10BB200021BA4BD615B8DFD0F7E1772FA1E35DD06E -:10BB3000E7C0F8F3054446F9BEC64EB6021F25829B -:10BB4000EF07DF889F07E6C8914CF95DD6FAF7B991 -:10BB50001EF82041BEF16BBC5EE4CF3844FE8C5F22 -:10BB60001B317FC661C99F71D84304CE851D43F93F -:10BB7000330D04F367E838C6FC990FAAE2AFA39F20 -:10BB8000CB73C7172909C64DC5DF3F281C799F8E87 -:10BB90002F5CA67CEC587F37FE9E287FE73301A7F9 -:10BBA00004F94B9F0CAD2F97E899C67E8CEF62F39A -:10BBB0001460BDC3920714AB67F93F1DE98C4E0EAC -:10BBC000E4787DD7D0A1AF2103789FF36AB7CF0186 -:10BBD000F1A41051F7E0FD1EBB637040F06121B489 -:10BBE000B3BF0B76B78D4A5EB0BBAFDEE07877C0EF -:10BBF00020B71669E63281F60639BC1862D8741F80 -:10BC0000C9E71563FEDFA72490E61D418E3638E5AF -:10BC100090DDB08FFE0476C4859C0EFB73E3C3AF4A -:10BC200030C766CA631ADE9FE703F07B68B77A47BE -:10BC3000969F00DF70A6717C2B1E7C587F3A38FBE4 -:10BC4000E1B00DE26A9512CBF3FF9BC33B9DE7BBCE -:10BC5000B1FB030E4BBEFAE25CEBBA59BEFAFDE94A -:10BC6000A19939D82F30C1785F60AF5D4B9942BF41 -:10BC7000FD5CEE58E1B289C3D9BAEFBD3CEF3E5945 -:10BC8000262D7B0CF0B7EEF71B398CCE45FB0E074B -:10BC90003BCF02C1E7A4726F0561726F454E21CFA1 -:10BCA0001F4FB703BE1AD8106485F7109E2F0938AE -:10BCB0000F831F87BB158E21125809F9DDA783E773 -:10BCC000865C6D450E9DF79A57921590FF2B9D83CC -:10BCD00007C1671DE8B31D1E47BFEFB8C71DDD498B -:10BCE000E03CAEF8C967E837B542657915641EDAFD -:10BCF0003F929E2F7F79FEE8ED9FCED47031F0C742 -:10BD0000FB3C3F5BE8A5CEBC131320CFFEBD8CCA25 -:10BD100029B97E8CC36B9940473F4F6274F4001D74 -:10BD20008996D7FD6222DE87BF2A37AC423B91E776 -:10BD300047B4C109909770A670A27F1C4047A783A3 -:10BD4000D39A1CC2F831353E9DF4E4B0F8DFE9F82F -:10BD500003EFA195FDFDF843C0539C6388F5A9B995 -:10BD60008C0EC557C0CD9A4FA4E6DA783B96AF78D3 -:10BD7000556E08E17C72CC27475D74EDFD4AFCF7F7 -:10BD80001D9E1CE5FE05BCFF5E72B83F39FEFA5EE3 -:10BD90004CC0C7FFA8F54DCDE5F43339FEFADE1EE1 -:10BDA00025FC4264F0ADF4BF831EA3789E0A78267A -:10BDB0001D83281FFB33E2AFF3AFA35E67D8F1F713 -:10BDC000D0B782BE897E4D239EDFE724C73DBF5F8B -:10BDD00046FD29F087ACE7F8E2BC9ECA0FDC6F9DF8 -:10BDE00073706526E07D1EDF771689A6C3F9E62FFE -:10BDF00092F03C60989EE4FC41E195920BFA64E17C -:10BE000020C635FA27C4970B29B98CEE86DA77B1AC -:10BE10007912DD43C8CC9546750F819485311E5843 -:10BE2000E97447658A875B383E94FC9B54B00F2BBE -:10BE3000735E3A02FBA4F0FF70089E86FCBE13AD51 -:10BE4000CF7BC73912CBED35F213E52D71F63321D7 -:10BE50002B3C21D7106F5CB3EB05EF3803BE4AC80B -:10BE6000808DDDA31EB499FCE46C72467EF27E17D1 -:10BE7000E397F73242A80F403F80DEE97CFAC252D6 -:10BE80004026D81990DF33E8494639DA9E37A3387F -:10BE90006080676DAEB02FE50476E3D7BB1F10B3AB -:10BEA0009B2493FD1A1BDF8EBF0BFC54BA5F8C8B57 -:10BEB0008F0959DAA500CFBF646897C1D70A3FFD43 -:10BEC000CE59E978FF00E0373736DE10FE13E0F98F -:10BED0001B595A3DC04DCD0CB0BC0191D73714BF92 -:10BEE000B07B8F3A63F01E2D5E92797C8DDA0DABBC -:10BEF00061BD4A12E747E2C67BE4C26E2116FB86AB -:10BF000014337F7745CE4BFF03F19FCE54C6B29DCD -:10BF1000FFE4423FF06AC9ABC0BEA9FDF1E6F76994 -:10BF2000FB3089BEF92DF40F859D91227F9932FA5D -:10BF3000750AFFF97479D6CF803D46D7536573E310 -:10BF400079E733747FB9546E5429EC5B399F5215ED -:10BF50001DAF4A2ED83F40D7F51939953C9B7EBF7F -:10BF600043181CD6BFF2870CF047ABEC8E1346B9D2 -:10BF7000658D7FDC956B8E7F7C4616FEE67C80CBE4 -:10BF8000AC0C84CBE4A7E6651BE32F43F10FBE8F17 -:10BF900025FA354C9E5AE49C906736277B6F84685F -:10BFA00024E0CDC2381283BB2EE1FB57B345199C68 -:10BFB000145A9EC59124417FBAEFD9FC4B56857324 -:10BFC00040CE405A0FCC47BDBF1CF8B65FA806E074 -:10BFD0003B570AD9D93A222C0F91B414407B9B735A -:10BFE0004086F945BC02579205E3887959D9C3CBFD -:10BFF0001D759FAEBC2E303CAE41DC1EB47F15BE1D -:10C00000BEE35EB76E33C43B92DCD1E398BFCABFD8 -:10C01000D6B8C7EDB2AE43FE7632E94579E9767F10 -:10C02000A40330BCC42B41F9FB52F8E7C017479575 -:10C030006E12A4BF9FFCF9E704DF65831B6245F025 -:10C0400035EB27BF7B3DE645FB43768B5E0A4BC055 -:10C0500047D9F5D6DFCDFACA49FAF1FE90140DE5BD -:10C060007C9979FA784EA2388EA38AA17EF0466632 -:10C070000F1F4E66FD0F27B37E6F71BDD49CA110BC -:10C08000CC8BC9723AC19EFFD8730CAE6C823EE96C -:10C09000027DE274688857A157D6EEBD9900DE9AFA -:10C0A000F72D4238FC5E62E7A4FA0A09F319C4BB13 -:10C0B0000FF593C8CBB4279991C7FC94A5CF8757A8 -:10C0C00034D172DD4BA4244ADB95CE0DD5C0FB2EB6 -:10C0D000ED2544DD44CBEDAEF08F7E02FB7885BDCF -:10C0E00037B68EDFABA59858B39B8EBFE3CA31EA53 -:10C0F00016D852F56027E40B0D6E265EC82F194640 -:10C10000BFA7283F507A7804CA74DDEB5687FFE555 -:10C1100036DA3EF725A2621B5E0F3E0AE04FE2745C -:10C1200001BFCFA5BFAFE37454B45F62E7FC3EF636 -:10C130000E180E0EEF7439D9FFAEDB5F79F934BA01 -:10C14000AEA2BEA948DEE3687BC883824C04D69EBB -:10C15000D8E2B51F07ED0370AECFF043F2147C3F79 -:10C160008970F937DDC2873363FC80F5A5BCBC8ECE -:10C17000EB2913DFC038D46FD7CAD9B13FF6F331FA -:10C18000FE5089F8C3F8790689FD8171AB63F3A08D -:10C190005C9EC7EB0E2E5F80F9DFD3EDD103C0EFBD -:10C1A00033F9B7947F81DF9D148E57D85B0EFAE97F -:10C1B0007ED23710B50D666908B4C37865242403B0 -:10C1C0009CCBBD9BDB617D1736BC9209F475735E19 -:10C1D00011D2DF2CA75AE4A224D25EA1AADE2278D3 -:10C1E0006F4C42B82CAD774620CF6DE9D07B3FE154 -:10C1F000E032CA3F5784257E0F3F1C6C30C46D452A -:10C20000FEDFB224EA5FC791DF37E731FD2EFAAFD8 -:10C21000E3F75344FDDA3C37CBCFCCBB68461E9ED8 -:10C22000C7B0BC68CAFFB3F3A6C5E40A9D17F356AE -:10C230009610CD01FB5AC2F957F0FF52ED56B46784 -:10C240009786CC76E9EF25866F7DB98476E215F581 -:10C2500023DBAD0BF3C4B9708117F500117A8AD1D5 -:10C260009590E78B41BF831CAEA5FADC603737DCC5 -:10C270007E2A1DFB65FF60ED97E7C4EEC3ACB3DC1F -:10C280008769E6F761D6ED6B736401BDF3FB30EBB4 -:10C29000F6BFD369CC0314701A7E1F6610F31F9784 -:10C2A000299103704F68D94D748FB4FDAFF8FD89A3 -:10C2B00067E1FEC494181D79AE7445597E9D867958 -:10C2C0007E05DE1415F252BA6C5330AFA82BD5A3FD -:10C2D0001AF378B6B4B5D4403B914F24EEBF2C4B43 -:10C2E000706EFCCD3C663F6F97585E97BEDC89F060 -:10C2F000F6CBE488F19EBFBF2884F97433F202388C -:10C30000CF761E5F80FCD3A9F41BA1661AC317EB7E -:10C310006F950F74BC0E18AFBA48C53C9AEA3496B4 -:10C320008FE6CF0C95DE3229366EDD7E96BF57172D -:10C33000FAE410CBC35D5406F04C24D7ADFA8BD28F -:10C34000DF3D408FC3F556B819E8CF51155A7E1D11 -:10C350001DF7E4CB0AE6DB918D9AE4A0ED7EFC822A -:10C3600057857B781D95A14535586FC77B8259F558 -:10C37000249A44EBCB5E527A20CFAF91742B304E8F -:10C38000A3458FDDE47E56013EBD69A72346970491 -:10C39000F213D52210784DBB87C545500E09F964BC -:10C3A000A56732CE2C874A85DCA5F281E5F73530CA -:10C3B000BD477E20417CE8A4E798CCFD6B947BD3FD -:10C3C00084B0B2C8FB69FB9F437B46C0730E9517D0 -:10C3D000E0C749F0FB64EC87652A4F8B21EF742698 -:10C3E00049467A1B6647F0F5950DAD9FD94D424EF3 -:10C3F00056561002EF2358F143E7433A17E77D7092 -:10C40000B402E70833F9FC9FDBB449D120E08B4448 -:10C410006C14CE9D520BEA1D27E481D2EF16298CB5 -:10C4200072F1A7BA2E035C2F242D4B160611EF2FA5 -:10C4300001DE6739FB52000F4715D509F5359030FD -:10C44000885F33BEE6BBEFB303BCE6E758F1A2DB7F -:10C4500001BE0B02C3F085F70BB404F8D2845C2153 -:10C4600066B91224A7D8FDE6CD876E03FFF874F6EF -:10C47000C9F7B2C247E3D1AFB05312E5E59DE4F28C -:10C4800078B47979271DCCAF984106AEDF2D0DA782 -:10C49000938F0F6E90730CF424E8F4699EA72FFD20 -:10C4A00092E7FD967950FFC5F425A383725E9A0149 -:10C4B000F465A083D9FB5C5199EEB394F79F01F426 -:10C4C0003025A62FA33677402904BCAB5DB23CDCF7 -:10C4D0004ECECA0820FEA7DA34C4FF34EA8171BB0D -:10C4E000D39D4FF75FE1EC6DB70710FFDF07FFA6A5 -:10C4F000920410FF9516BD53EDAEB3039D543BADB2 -:10C5000078D610FF35DE61BFDBBE0AFECF01FC0B23 -:10C51000BD320AFB94E27F42FE08E78D89F07F413D -:10C52000BEFB8CF23205FEAD781772608FCB5BEDEF -:10C5300086787023CB4B9EFAF2B8762867AD0DE271 -:10C540007D993DE9EAAFB0BE85D597F56932BCCF9C -:10C5500058B49ED6D3F29E60A81ACAEB3648284734 -:10C56000A7BD166E87F2B88DACBE7453CBAFE09DFD -:10C57000B3753AEBFFF4F14E7CAF22D2C9FB57768C -:10C580005743795D17EBFF478F5307BFBCFC48A4A7 -:10C590001D7E9FB895AD43D87D7339BDED919EF852 -:10C5A00015F6EB66FD6E38E44C66FE12B3E3E6F07A -:10C5B0007DCE7D88EDD3F7DEC5B5010AF7EB0675B4 -:10C5C00007CA0D5B5339CAD1047E5AA5D45D00DF7A -:10C5D000F9544E10C43BA5D34296B7DA43A75893FB -:10C5E000CFEC2691EF0979E78B0CF85A93CFFC0832 -:10C5F000D12E2B83B0FCE407D9BBB3221F357A3F81 -:10C6000091207E007B44FD9B203F757E510BEAD339 -:10C61000F9E788BCD401FB2A3A6FE9977FBA289ED4 -:10C620005F7E4B3EB3938EF13C7AF17B63246803CB -:10C63000FF640F100FBE03147D19EC963DF0BE9100 -:10C64000E11D923D4156D6F3F7DFDD459DDC1B6CC5 -:10C650002D761D94C05809DF55B9AC8F44D352874D -:10C66000AF7FBE9D4459FE045BFFF5ED4ACF1683B4 -:10C670001DBF54888F59E351AFD4713C09B9B194AF -:10C68000E38BF2F9E67CBAFE65CE16B41B9713A6CF -:10C69000D76F24118C6FDC68E1F335EE3FBF65B3D3 -:10C6A000411CCDCCCF6BE972D8F9FAE0C3BFA3F03F -:10C6B0006F7CC0E305FDBFB6D7DCAEF181978F304C -:10C6C000FBCBCCEF8D82DF23667EA70605E3F7FB6D -:10C6D000CFC3731B713FD0E51C7C4B27B1FD0EE926 -:10C6E0007D0BFFB9E0BE6031F8353696A7C8CB6246 -:10C6F000DE4FBB995ED6A95EE67E108ADC4FFB2F2B -:10C70000C17CF852A147B99C11FC5CCAF5FC303DD4 -:10C710005E6BF577EE433E99CA4B56FD2DF4B6B8E5 -:10C720008748C745FD4DF5F5CB1A5D6F9FCD1D01BF -:10C7300078C7F47604F9688A93CA6B1BE2EF00E0CD -:10C740006F1AC75B3BD7EB09FD03F7FAB8FE01F59B -:10C7500037F01C61B85F1035D9FBC3CE3112D8FF5A -:10C76000437873517B2A05FC7DC2ECE23C32AA3C43 -:10C77000112AB7DFCC1F416F2BCFB0DF0777B8305E -:10C78000BE20E2EC82FF5E2F6076F8B65CED3D9055 -:10C79000FFFD7CBE7E3E7EFFCDF3F1FCFBCF44C3AC -:10C7A000F36FC867CA8F937F01E7DF1D8678697FC3 -:10C7B0007AFC38F8275CFE941610FCFEC9AF7D0A9F -:10C7C000EB3FA6B038FBB164FE4D65E714FF3BD4E8 -:10C7D0009EC98F4CFE15EF911FCB30C7E7453B3FFD -:10C7E000FFBEDFEA0C7518E2E181FB935A408FF936 -:10C7F0008B785EFC7A46C7279F4ADF617C272E50E4 -:10C8000050595A300DDA694A2EC4679E62FAA2D98D -:10C810003EA0C0FB3E3E7F38A5C00FF79B88F604C4 -:10C820008C1318509650789FE4E7FE27F97B402739 -:10C830005DEC2BD6152858540AFD4EDE3C80726301 -:10C84000A8BC6800E542A02084F39E5C2AEA79F93E -:10C850006E5626DCAFACE47C8271E33871E2E171A4 -:10C8600061F37B37EB94F8E7D5A4C0638AF7AED8C1 -:10C87000CFE2902B9DA4339FD65FBD3F1BFD8DC69D -:10C88000547D02D0C3D78DE39E1CD387FBDA523987 -:10C8900038F6C1323C17C678D1DAFDCFA1FC5B2B4C -:10C8A000F866AF996F66178CEE3CC51A671F053F97 -:10C8B000CD2F18C10E7A12F4972386875B787E53AA -:10C8C0008DDC540D71A54F5713BC677BCB0B32D257 -:10C8D000D52D3F92F0DD0961C7ADE5704EB42FB89C -:10C8E000A71030C815B8A71030F875704FC158861A -:10C8F0007B0AC6F6704FC1580FF7148CF5704FC104 -:10C90000582E25D7B6439C6E5D17F14602ECDE82A9 -:10C91000B13FDC5B3096E1DE82B13FDC5B30963FBD -:10C92000250C6E9F3E2463FC1FEE2F18FBDFF0C228 -:10C930008FCBA3B06D17CB536B7751F8031DEA5A19 -:10C94000DF240A9FD51C3E70BFC138EE07A9173DF2 -:10C950000FF859DD77FD42F85EB0EF26D3B8A49BFF -:10C96000C9E316FA17E0783D09A5813F37850C1E0B -:10C9700082784773445261DE1B1E30CBEDA1F74C29 -:10C9800022E6DFD71043FC37383CEEBFA5C0E343B7 -:10C99000BACA2379C6784F8C1EDC6A14E0F09AACD0 -:10C9A000C6A38752726E1AC6799E97218641FE48A9 -:10C9B0005AB6CF920CE703167824E598E9C21530F1 -:10C9C000D3454AB1992E3CAA992ED22ACC7491AE65 -:10C9D0009D37227C336BCD74B2466E42BE1770AE6B -:10C9E000A07F01CE53E0854A802FDD27C48BADF0B8 -:10C9F0006DDCBFAD13ECFE3385EF9316F87E466613 -:10CA000055BB03585DE72C8FD93165CFB7E021B016 -:10CA1000357E2AE028EC081107A5FA1FEDE9985F9A -:10CA2000CFFC3D6A1F1C2CC0F303E6E7012581DC27 -:10CA3000BC8E84513E5D67B10F6E70DFA7807D3084 -:10CA40006CBFD43283F70BADFB057B8B18E25256DB -:10CA5000FB40DA2F453D9361BBFB859C0E7F89C669 -:10CA600090268D466EF47AB4FF02B9058EA2B3DC2F -:10CA700014378E6BF7897508B888F993488B9C0337 -:10CA8000F45C6CB5CFCCFEB5F0C745BC5DC4B585D4 -:10CA90003F2DFC182B9CE57382ED40FF53BDC28FE8 -:10CAA000EEBB0A7E17FEB3D56F1DBA170090857BCB -:10CAB000373C4E7FA77F9593BDCBC7F84EFCDEE990 -:10CAC0005B9C36523EE61DADE67B30741BDA88F780 -:10CAD0008A00645970EE4420A842B65E7A6800DE8F -:10CAE000DAD97AD98B83CFD2EF96921F0C6C82BAA7 -:10CAF000535FCA00D7A1783E61F78415DE4F29E85D -:10CB0000BC19F468B26A27EF1AE8C24935D5BBC52B -:10CB10007C5ED0133943F5BF319EEBFFA3BE775146 -:10CB2000F8BC3B7E847A456D8C67D759E1259EC35E -:10CB3000704DBAE838D8272E62D837EA4343598E69 -:10CB4000C10B55AB8CF7A644BD06EF977CDD7D018C -:10CB5000DEDF7518CBD157DE7718D71F617905F660 -:10CB60001081FC5BC547EB8DFA65880E2943951B48 -:10CB7000F6378A7D01D380FBC9EC1286EFBFD5BEA4 -:10CB80003A2CF88271435967F5FAF4B37C7DD1B33E -:10CB90001CBF64D1D90D3F6DD1D90D3FFD2C5F5F16 -:10CBA000F42CC72F597C76AF4F5B7C76E3573FCB95 -:10CBB000D7173DCBF14B969CDDF0D3969CDDF0D39F -:10CBC000CFF2F545CF6EFCEA6807BA2BA204DE97D8 -:10CBD0000874103518A0262BFD19FCF92295609ECB -:10CBE00006E17E4921F74BB66D6DA90717EA115D85 -:10CBF00009603C88FAF739B47E2261F58F742DC63E -:10CC0000386BDB980979F05E95BBEBA2E3707F6F20 -:10CC1000A2CEFC71EBBF1BB64833FFFB6B9757648A -:10CC20009ACAD3FACCEF575CD55864AA5F1E3EDF90 -:10CC3000F2EFE74D35FFBB64A19996F7206E26C64B -:10CC40007B918524AA427CA5F06E5B159C9BD9C183 -:10CC500067BE90FEB753C17E1AFD6BF45F0AA92729 -:10CC600034347E10E0A698C6775BEACFF41EEAFE65 -:10CC7000B1F1EFA112786432CEBD736B1E26B1DF25 -:10CC800088F13981AF3B37DBD0E5FD6C2BC1771ED6 -:10CC9000AB23011BBE83CEF1763E273DB1EF48ABFF -:10CCA000F93E7AA14EAA009F451DC406F1B5E04E9B -:10CCB000A26A04E34248278FE8F1E9E411E2AD8279 -:10CCC00077B91E8910FC77B2045DDCE908E4C1B9CC -:10CCD000DAF95D8C1E049D04804E52212FC8FAEEB5 -:10CCE00080155F644A94AEF591AD8519C67C54B247 -:10CCF0009BC1DD49FF8E84AFE29D667C0588A1FC67 -:10CD000015F0F5E9D7C497E20B45D37C10CF240189 -:10CD1000C8933A3866820DE011EC52D1FFAFA5CD31 -:10CD200000CEC12EF69E9AC093186F6B2B89CE331E -:10CD3000F87F4135AA019C6BE44955907FBEA30C56 -:10CD400043C6C3F0B383789321EEBDA3CB968C6F1B -:10CD500054EFA3782921E4BF372F4B2BA6F53D4193 -:10CD6000920CEF6CF5B4D9F0DDB29EA7A47AF3BBB8 -:10CD7000CAD1245B0EEE23C956815F3BFB6AFC4B94 -:10CD8000ECAC3E2A4379ECC661EF7EC8509F5E6BE7 -:10CD9000F97703892641FBE473581E679A667ECFB4 -:10CDA000C651619607148C7D39E5106FE1F4CEDF32 -:10CDB000498DD490C826BAEE73B8DCB1D251FA1DB1 -:10CDC0008B9198DAC67C03E5594F9B82F077707996 -:10CDD000453632BAD0E95FA0A7740B1D7954331DD4 -:10CDE00039E402CCC3157C25D623E66F1B93956CE2 -:10CDF000C775D9F13D6C87554E58D6E7866020C57A -:10CE00009DDB4722115AEFD0197F10B91F7F774C55 -:10CE1000272433F815D6F935E553E89CBF8D7CF20D -:10CE2000F031EF9CC6F6F999CADEB5AEEE60F4EECD -:10CE3000D9CAE81D6E74B37C2D6D61AEE15C752FAF -:10CE4000975356B879FAB46AA0E78BE49734C88F41 -:10CE5000B8FB3546FF6D630E3F0FE5AD7733F8073E -:10CE60005586674A2F6A942EFDEE3BDC98173CB539 -:10CE70008CE20BF0FF92599E4CEB33C3B1C82237C2 -:10CE80008209E06AE5D74470FD96806B39856BD1E5 -:10CE900099C355D1997C4E9FC5DE593C384661FFF8 -:10CEA0003EAFCEE098AEA9287F2F924F45D368BB06 -:10CEB0006D1A9537749DB51A83B7779690E36678A7 -:10CEC0000AF922E05FC8E1EF55BD2FC0BFF3E2D6FB -:10CED000ED2420017CFF5B033BA27B9A9037830407 -:10CEE000F096A631BA1570EE9ECDE05CA871387749 -:10CEF00071B8494402385BE9D52A9FD3BE269C7796 -:10CF00009DC3E3F159A4FCABC0795B0A7B47D931DF -:10CF10008EC1D5E11E8C829CED0ADA715F07820A10 -:10CF2000D67795B0FAFB5356E680BEEDF277E60071 -:10CF30005DB605AFCF01F9EECAE1728668EEDCF2AC -:10CF4000D8BD831A792BBE43DA1950103F9E407C1E -:10CF5000F995362BECC47926D9898C7078488D07E1 -:10CF6000076799629297F98D66F8A658E0EBFA9AEE -:10CF7000F2E1B5AF291FEE216CFD778E17EF347407 -:10CF80003B513F55DC8471F34C3ED7E685DF65BFEE -:10CF900073BD66F8BDB610E489DBAE023C13ADBBD1 -:10CFA000A795F0F75A9CFCFD16F6AECB3678D785E0 -:10CFB00096BF03EFBA2401FDB3775DB6C0BB2EF474 -:10CFC000DB05EFBA9C0BF6B4865FF9D2427C7FF0AA -:10CFD000B35A82F1F14D297F25F1E055D465D67F12 -:10CFE000413DD9F20E9B59CF65CCCB3395BDB3CC27 -:10CFF000EFB67954F66EDBFF0164680340008000F1 -:10D00000000000001F8B080000000000000BDD7D09 -:10D010000B7854C5D9F09C3D6737BBC966B3B9924C -:10D0200040124E42081B0861810483829E84406343 -:10D030004D71435151A88D40314248285E1A7FF509 -:10D04000C94282841834A0585A2F2C378BB56AB441 -:10D0500051A922DD2052FAD5964551F152BFF55221 -:10D060002F40258A177C3E5BFF79DF99D93DE76425 -:10D0700013C0E2FFF8FDF1C1C99C993367E6BDBF5B -:10D08000EFBC332184906FE8BF04CF0412F410FC8E -:10D0900081BA433D9704EDD1FA23C3EB1C6A3A21D0 -:10D0A0005677A5E139F1F7115F22562D248390546C -:10D0B000DE365DBED71E2E26644DCDAC24520CFD4F -:10D0C000B450266D4F80469590D5566F968F3E4F43 -:10D0D000A85954435C84AC6A2124388A90F6163BE4 -:10D0E000962B726CDE601A2177BE2C7BE3E82B3620 -:10D0F000CDA7B969FFDE9C5B09A1CFD7B80919920A -:10D10000479FBB9711924F88423F20D1BA5233E3D9 -:10D110002352425F98B3849049D1F9ACA9B1788386 -:10D12000A584C4253BBDF07D52ACBC13A66D6EFA40 -:10D13000DF37F4FD6FE0E782681947583BAE13BE56 -:10D14000A3EAEA04BE676C6F7E537A74AFAE7DAC1F -:10D150009A98F63E2CF61C72CE37322DE579497539 -:10D160004E5A96A71092D5FF7B5FB69047F78E4434 -:10D170008012920E653D01782A7CCCD5C9B3ECC4EF -:10D180001985B378BECACDE01B27D1CAE4FEE3B649 -:10D19000015CE3A2758510AD1BF0915D1AB3BF2849 -:10D1A0002906082923A4B32578F03D6BF4B9730A46 -:10D1B0007DDFD9BFFF4C55C679CF55552C9D4A9080 -:10D1C000B869BF442F7D5F0717A77666DFA73FA525 -:10D1D0006974BD2E4E37E477920278B5F37A8254A3 -:10D1E00037572D037CF9081941FB956BA4AE987D48 -:10D1F0004F13EF49502AE41D41DF79AC74D3760612 -:10D20000522869BBDDD8AE6620BC705C25FABEF63C -:10D210008D34F0BCBFAB12F0F8CEC841DA6DDE7AC7 -:10D22000E0A77ECF558B80635F1A859BCCD71B030D -:10D230008E6DC0DF028EB293C1B14DCADB19A6FC60 -:10D2400066D55C5E8A115291A676035FB6694EE49C -:10D25000CBB6B4EE5025AD9F28B57861A8C49195A2 -:10D26000C88F6D43F71D5E08709DB9FFC36D08350B -:10D270002D5425E04BDB133DD5A12A9DBC11F88A26 -:10D28000E7BF778C7D20BC9296A917CF236E4A2AE0 -:10D29000CE21362253BC384656D9EB9C51FCD8E0FF -:10D2A00017FA3C3E6DC64732E5FB78AF0E8FF0EFC4 -:10D2B0001B564778D0C5DBB26FFDB904449119E91C -:10D2C0007700E6A3A8BEE8FCC8D9C717C94E43BE7D -:10D2D000278A3713E4657F7AF733BEE7FD06E60B4E -:10D2E000D66FBA5C93791585CB9A17987C241E2645 -:10D2F000176C7686CF354463EDD98A97BE41D664E4 -:10D30000AE44F9D1AECE6F07F9F979A685C8123CC3 -:10D310005F6F07F9A198E447BACF62D00743E6C42C -:10D320001BE4FE9A825928CF069A67569DF1FD614B -:10D33000F5C6F77396A518EAE23D6BE6452F55A5AD -:10D3400046EBAB943A3BC8915B33D74B753AFA1E28 -:10D350005254F73AD0ABA8DB3267E27B7139A53182 -:10D36000E7B5CFA3BD0572A25D65F326EED870BE0A -:10D370008BEBA1BBB91E3AD53A37F2FEBFE6FDEF03 -:10D380006D716319C167C13506BCACCEA2F29A8E2D -:10D3900007B0D77FFF29B5EE73985F14CF96287C2E -:10D3A00080698B175B805FC5386D59F90EC0DBFA59 -:10D3B000EAC1E727F4AAE867557CC44BDFB312A3A0 -:10D3C0001CB7A5590CF89890C7E5C6B66B0CDFDD05 -:10D3D0009B3C63631EA5ABF587648274F73BE3FA5D -:10D3E000FAD3AB711DEB33D9FA07A66FD3BAA944B0 -:10D3F00088D011D6534CF5A1A6FEF9A6F6D1A6F613 -:10D4000009A6FAB9A6FE95A6FA0F4DFD6799EA5747 -:10D4100098FACF37B52F36B52F37D5FF8FB17F2983 -:10D42000C3F3F5E2D920F205F4BAB9BFA268885F68 -:10D43000A1E7237CE536F2E30F722AB43C66671855 -:10D44000F02BE8F374F1B39ACAB810F093A23A50F3 -:10D4500099962F267A7A589F998FFAA38D4E0BF5BD -:10D4600037B75F52041D5773FB70CE12031DF5E6EC -:10D47000143AC07E24CE34944BA7A20B89A418DBA7 -:10D48000B5A1D1F67CF8FFD9A58B53D37180EBDD24 -:10D49000C1E72DE4C023C37DD7223E02D49E1E1BCC -:10D4A00085931AB1A7E9C728DF6D49238138AAEF10 -:10D4B000B6F82D58FF3C937E08EC952AC687237852 -:10D4C0007F42C2128C23E6D3CEE9651DC8295ADEFD -:10D4D00001728A96B7B56462B97AAD256B218C5713 -:10D4E00063433CA58EBBD5AF4059595E04FAFBB6E9 -:10D4F000B13B340BAD279E94497022B5174AAE2834 -:10D5000087E5244C9F9FB9173EF735FDCE24E04EAA -:10D510008246C6E62A12B08E2364ED9EAC1F7AE8DE -:10D52000B86A81E275405BB177859286FDFCE03692 -:10D53000A84ADFFE11B43EBCC082F685B5BCAF057B -:10D54000EC7731EFB53FA4844B3BE6557B2D7E0A4B -:10D550008215C3EB7E05701ADE492C1AADAB7E55E1 -:10D5600002B9F6469E8AF276EB1F28438E800FF5AD -:10D5700065819EFD62AD6D25CC73603C11D952FE74 -:10D58000ED4B310EDA9943F1B906F4AC2A484274F6 -:10D59000951F76C13C9D32AB3F9777CCB7B2385AD6 -:10D5A0007F2CEF987B256DEF9C986B8175E4A5B976 -:10D5B000B4400CBA3A0CF218D6B776D170BD1E340E -:10D5C000976A0D1D77082D8B7909B4760EC09F9749 -:10D5D0002A7F9EC9EA0738DCD466DE9EC6CAB3FD40 -:10D5E0001DF3F8AFE5B9855D3A94FB8FC5CE8C414C -:10D5F000EDD3C37965FDED532AE886029D6FB27ABB -:10D60000875AE8D89BD6DA889FF2D4A61C827EA2DD -:10D610007F8D2DB01DF84351875EAAB3BB026B32DC -:10D62000AED0E8FB0189CCD1CBC97B399CEFCA973E -:10D63000707ED3E5637E99D2EF263F413B6B137139 -:10D640003BC01E89E0DBFFB90FE990E3BB2ABF6A4C -:10D650001DD02959C8F4667E549EAD50E8389B61B0 -:10D660001C5ADFDC6EC1F96DDA45F9977EEAF39B4F -:10D67000DFB180DD3C96042DB0BE312480A5872C1F -:10D68000B30050BAB91EDFC6F9B790F237FA3B20A3 -:10D69000FA68FBA5C3EBBE06BE48222AD655BF1BBF -:10D6A000E9A9715772652CFBC0966FE17E26A957D8 -:10D6B00026713F87C1D9965FD61FFE56B20CE17E18 -:10D6C00093C767CF07FF6EE7C1E030DAF4C4AB461B -:10D6D000BA05A8CCD2C99D1CFE9D24AF4F93E93852 -:10D6E0007B72EB92E1FDC6FA4FF665C0D07E3FBE7D -:10D6F0003F39DF8DFDAE08764F8761C679C395400F -:10D700000B63AB7BF700C98CD136839B413CE53F73 -:10D71000DF93AAC23CEA86C23885A17005908FB318 -:10D72000FE603003E773BE05E86204CC87D3472D63 -:10D73000D2978A7422F00DF4504BEB573430F850E6 -:10D740008310DB89E236CC7FCB2A4A27CEFE749247 -:10D750009ACFEC236F148EC43AB87FE5CD8F41BFCA -:10D76000022EB37ABC560817F87EE75E053ED0CC91 -:10D7700040DF5E077DDE9E5B770EACB374A3AF1512 -:10D78000E8CFB92BE4877E024ECE29214DC27EDA46 -:10D79000B9D06FD3CD9595A817BA08FA4B427F9AA6 -:10D7A000F16F9D62B4F708E9C2F58CEC32DAE994C6 -:10D7B0008E519FF7A3E39B23741CAF8F4B08FD137F -:10D7C000E8B4C47BC0CFA0FE078E35801C7980EB07 -:10D7D0002541D7E27901891D67B8323FE2CF66CA99 -:10D7E00083C3FBCAFC18FEAC0BF86304F2CB7CC00D -:10D7F000879BF461FBF09B8DFCD2B8F3937DC3E86B -:10D80000FC9DA5EA04C08FF87E03C737A5E3C54891 -:10D81000C71BFBF6815E1B7E33A3E36BC1D6488F2B -:10D82000D2E34D1E6D297C47D099793D4BF87ADAC9 -:10D83000737DD7C278576CEC7EDE81EFF9AE473E40 -:10D84000DB180A3A4814BEC3397CE36E89E0D90D6F -:10D85000F263568DF779D0CF3E8F7B3A9433D5BEA5 -:10D8600036302DE6D6CB06BBCF8C5F4A5FAD485F26 -:10D87000C4374D92C09AEDB6A2FE1C806EA27AD338 -:10D880002FE8FEE653C8ED3B62E1E174C73F99EB38 -:10D89000BB1BDE4FA9F611E4D3D39DD769F61371F4 -:10D8A000B3A81D1BB0EBED5841F71DEDB3D04F16DB -:10D8B0007810CF57B5CFAACE033A772ADE58FE4F5D -:10D8C00044DF703ABF9FD3F97A6E7F7571FBEBF638 -:10D8D0001615E57B678B07CB8E162F8F879663B95E -:10D8E000AA45C37EF29A4F2BD07FBF99605C6B65CF -:10D8F0004289148BAEF2FC467B7F78B311EFA9D539 -:10D9000046FF3B596F2FD37F49E5F986F644EF6810 -:10D9100043FB69C48B0F00DDDBD22A0DFD48F813F1 -:10D92000837D2BE0385D9E87F1620A4FB4AB853D65 -:10D930002BDA09A9C378AED5E467769AECD80E80C5 -:10D9400023C297C1B10BE088F02DE7F0AC667E13DF -:10D95000F77BE285DF53B47ECE7C8C8B1094572B03 -:10D96000726CA89F3BF298BDDD8F7E3275F293F208 -:10D97000FCEA354C9F0B7BFCF99C57AAC1AEDD92AB -:10D98000694139B9256D8F672BD6E3BD4C9FFABB32 -:10D990003C147F560F8F57538ACDA2EB4DE47CB3D6 -:10D9A000DA4A30FEDD91EEF4421C2CD1B3A806FB1E -:10D9B00099BE4BC8CF89DEFF23EFD51BEC0EA25CCE -:10D9C00063586764FEA536368E44241827A5D866AA -:10D9D000C09F9DE8EA79305F5B148F79B05E8E2737 -:10D9E000939D23E214663CB96B8CFA6675117BBF7C -:10D9F00037E701C4BB19BEAE2A23FD7670BA684B67 -:10DA0000DF827C68EE6F1E9F4C8937F87F1D9EC1B8 -:10DA1000E324C29F16FDC08F76C7E86FF6A3CF86BA -:10DA2000BFEEC6EF19F55D0C7F7DD2085D3C49C0A5 -:10DA30003B8207115FE47E98885B8BF114C2C6C3FA -:10DA40003AC6B7FD28FF7E99E0423FB2C0690B801D -:10DA50002C2CA0F3003A6EFB55426025ADAF4B98DD -:10DA6000D99744EB05DB6415DB9DBEA11067EEDDA5 -:10DA7000306368987EF71EA9EEA211BA38DCB6E4CE -:10DA80001B32993DA0BC13F600934BE8E7FAD74D43 -:10DA90000C69608F1711EF76025E306B17F444F457 -:10DAA00075B97FFDB3114CEF66CE25CBBA63E07F2D -:10DAB0000D6F8FCA715F3CCA6B2EC70B38BCB6772F -:10DAC000CD8AD7CB71DDF3A4587475B6E4771BC843 -:10DAD000EF51F09D1735D4DBA584CBEF47C8F75144 -:10DAE0007E2FCBAB5B3DA22CC67E9F1246F93D51EB -:10DAF000D5DA01EFE9E0EF015E7E4AF112631DCF56 -:10DB00008E60F6CDF7152F42AF6EEF7A9CE1A558E7 -:10DB1000E0E57612CBFFFD1EE0E569807B3FBD4A64 -:10DB2000C2B80FFB45B6F60CB43FA56ABB007F1127 -:10DB3000FC5C169B6FFEF91DE3E77EEEB7AEE7F8DF -:10DB4000E9E2F1F1DB397E3AB9BEEEE0F869E7FAD5 -:10DB5000FA56C04FDC99F3CDF066237E52ABE34D0D -:10DB6000F830E227A9DC889F44AF113F099ED126F7 -:10DB70007C18F1935EA022FCE2328D78EAC737A7C9 -:10DB8000F057D2609C187672765DA802F6B886CE01 -:10DB9000E9EEB5C220BEAE0A28C57AEF35F9A5A2D6 -:10DBA0004C2F6078CD9C161BEF16DE1EC8D7A40242 -:10DBB0003D9DFC20361FDB79FF63AA1667E87F5185 -:10DBC000ECFE2EDEFFF5E15AA2BE3FFDB94B1EC4AE -:10DBD0005F30AF3F41D2D20B701DEACE30C5FDB6EB -:10DBE000156C1F729B43ED86FD7CFF0AA777BB8AED -:10DBF00023F9ECE01FF171883F09C7CDE59F19EECD -:10DC0000DCFF15ECFBE52DC81E7A356DCF5B9E79E8 -:10DC1000A48E96A30B46E03CF3EBBD7B00CEB26B2B -:10DC2000CE50B67F3CCFFDFE184A6AC154E91B7046 -:10DC3000B8DDB1F7ED4529F42995836807D2890449 -:10DC4000B6533A8D5388929802EBD5705D56B06307 -:10DC500065586F17D6E34937964E1262FBD7DC1F23 -:10DC60003DAF200FC7731337FAAB29C48BA5E06310 -:10DC70007B1A51D227E0F86D7113082AFCF3C05FBC -:10DC800075666FEE009F46A3509884AC82F090EECC -:10DC9000DA87EB271EA2B278DBCD6ECC4FF8335D6E -:10DCA000DF98D35FDFE9F6FBD2E12A21498434DB38 -:10DCB00059F98B78D71628BF74E4062068A58DA87B -:10DCC000FB31E0D55F49D0FEF0BF951068C5C92E85 -:10DCD0003B87F907A73DCEBCB334CECFCED2388D2B -:10DCE00005E9A71EE736F87532EC63FA9643FFB6EE -:10DCF000E44968778AD20CD77D1EED06989F627F33 -:10DD000029F7BDD4A8DDE67C5342BBAD4D0A12888D -:10DD100053FADF96D0BE22C50C4F4E9578F2C64519 -:10DD2000C7717A970D67F12E16EF59F1F75F8C02E4 -:10DD3000FBFB970933C349F4FDAD07A99D0779346F -:10DD4000D3BCAFD7537A4A4FB579B750FA49E57E7D -:10DD500072DCDA4907EAE9AF9F8C62FCBDA365BFBC -:10DD6000BB8D0AA444C57BE104FA9E93EFDF12B990 -:10DD7000260C7663E22445853D8E2239580DF32525 -:10DD80004D16027C714F83713FB7B3B008E122EAB0 -:10DD9000C3F87E2E2955FA227936D48EDF58C0F387 -:10DDA0006A5CC40576A1F26F2D2956DE8328C5FC76 -:10DDB0004AD3A8DE4A82B820E5145A96760631F98D -:10DDC000A3D21BB4831DBB2140FC360AA707E7FB87 -:10DDD000AE81F13ACB7D0960976F3834EBA2B17414 -:10DDE000DEA1B0E205100447A5E0BA439ABC368133 -:10DDF0003EDFF9A6C50DEBDBCADFEFF449C8FFF73C -:10DE0000CC23013F85C7D6863D7619ECDE90858C04 -:10DE1000443B973A5C93B82854215ECBF8FE965168 -:10DE2000E9F8B027B43C19E0B22EE1FC9046C7AF48 -:10DE3000AD6671E71972F6F3306EA8D386F849E73C -:10DE4000F94712A945FB39659ECE5EA6FF123B99A4 -:10DE50005F19BA8E60DE535299D3EBA7DF7B22CCD9 -:10DE6000F68DEEA96671671709E2F767C8BB1C1645 -:10DE7000FABCA75A71033D2599EC73278C4749AE2C -:10DE800067231BCF359E8D9768CA83B28B79B9E91A -:10DE9000BC28FEE44405F1ECAE36E64FB94CEF3950 -:10DEA0004DDF7B59E0399B14029E4FF86E98F812B3 -:10DEB000B67AD558F9139D2D2454A5CBB7700E1002 -:10DEC0003FFCB290F909B6ACBD7698D709DF2B6953 -:10DED00010EE7AE15FFBDEBB03CA7FFF574F135D95 -:10DEE000D75FBF3ABCED518063F36D2F221D72BF27 -:10DEF0006A084C81CEE7F95A1BC2B14C63F101525A -:10DF0000DABBD75A8AEDB8AFB5768F03DB87959326 -:10DF10008083C27398A265FD0CF835247B57A83026 -:10DF200088E6CC9A44D85615ADAFBD92120E950F27 -:10DF3000E9F334D95F0CF190174822C5F7064D522A -:10DF400059FE9BF43CF0534E95847E58CE219F039E -:10DF5000E8E1C46C0BE6BFACA8BDF4C29174FCFB55 -:10DF60002A148C375457555C0EEDC30E317A715D0F -:10DF7000C7F047E114ACA2FC30E2108B279492B0BA -:10DF80003748DB877989350DF4C73C0A60985F27ED -:10DF9000C70F8F0F949686FC00D444AF118F6E1379 -:10DFA0001ECD78758DA47804FD52448A985FC7EC25 -:10DFB000C75ADE6743D544F45FEF5189DF3AAE3F7D -:10DFC000BE5EA4F6A346EDBF10B51FA1FC1BB51F96 -:10DFD000A1ECA1F62394895AC545A574BEA1743A53 -:10DFE0002EF05F4DD94AD81FB86FEAD537FD93960A -:10DFF000657C9F8D726A4A25FDCE2CE062565FAF2C -:10E00000519BE4A552D9505F9BA6887D3C3FE8D444 -:10E01000C42C0BDFE79971A746EB9D990ADFD76304 -:10E02000F511C5C450EFA9B118EAE7EDD18D3F0550 -:10E03000F01387F5092377AEF71744DBEF28A475B3 -:10E04000DA7E80DB73B54B2DBE2D31E877D948469B -:10E05000BFCABF895FA2F8FAAC80A09F2E5B349440 -:10E06000DFA4505141BEF6D7CB540EEAFDEB022A95 -:10E070005775F191C3853CAEEEAB60713612FDF978 -:10E080007A12CFB322F0BC330476C4ADAF5EE90D93 -:10E090009281E5AE355339A2A7938B051D8C2423BD -:10E0A000D19F27530E54009D754D54801E4A391F31 -:10E0B000106EC761889FD2CF539FDEFD174D053F7D -:10E0C000ADDDDD3612F37E2E1FA9CB935995BE68C8 -:10E0D00022E83391F7434895FB7DBA2EC97FA90505 -:10E0E000ECB681ED1485BCAF83476FED8C24D00373 -:10E0F0004E2EC7CDFD57B5EC7C05BEBFBAA51B4B58 -:10E10000679A0F858C5DF163FC669FA7AE11E6658B -:10E11000CFA6ED3A396C4BA3EF19FC806C667709FA -:10E120003CB809C683C4BEC986CE09F17114189DD6 -:10E13000545F807CDE109A8579159DDE0983C6AF19 -:10E140004EC5275BAB5E2269148E4FBE3AF32FB3E8 -:10E15000697910F88DEAC12738DFE4943FF6DAB523 -:10E16000067E396AE297A3267E397A0A7EB9E04EA6 -:10E1700068EFC9540CF51CE0175D7D6B845F583D5A -:10E18000CA2F47915FEE79D986F58D238F1AF865EE -:10E190004521AD67EBF865BAECDB12C30E78E53BC1 -:10E1A000E2975F9F29BFBC7166FCF2C4D9E3973F39 -:10E1B0008E4CFFEEF8C5779AFCE2EBCF2F87605EBE -:10E1C00067CA2F9DEE20E60376CEB6540762E0FBC9 -:10E1D0007A8E6F11F72EE3718A69F3B4CBC7823D53 -:10E1E000CBF3D6443E4DE73CA6BF57D4CE407DB9D5 -:10E1F000F520D397423F97713CFE8DC731CA424C00 -:10E200006FA6974BF8FE4C4D0AA8F4D74E6A12A49D -:10E2100082BE9E22912E1596BAAC76A414B59BE8C8 -:10E22000F7D06EBACFCBF266C92166EFD8E97F404E -:10E230004F17975B0D7A7588D9FE32D5C53EA6D8A3 -:10E24000BFBC0FF212283CBE1EC9ED2693BE15704E -:10E25000D870A812ED90CFB36D83EE5775F2F546E6 -:10E26000ECA9525F45AC78587DA184F0BEC9A3C526 -:10E270001796813EBE0AF5AED0E766BDDC53F59237 -:10E2800051CEF8C7A75616EBE48C7F3CEACD889CAC -:10E29000E1F501E50C3907E546442FF37A442FF305 -:10E2A0007A442FF37A44CEC0F8D951BD3CF281F1C3 -:10E2B00077FA757A7B19D4B34FAD9717707970B62A -:10E2C000E5CC1FB8BDFA5DE9E5CA424E2FFFB99C07 -:10E2D000A929FC0EE54C2DC899A453CB995A90332B -:10E2E000C506397355E1B7D0CB890DBD7ED8BFBF08 -:10E2F0006200BA77707C371568D7C0F8A4E6F4F2EC -:10E30000B6CD74D55BFBC0AA0CA0172FF3F3067A29 -:10E310003FB1F9F7AFB4E9F2A21395103B5FD1FC1E -:10E32000243E9FDB7010E365A79A6F7D21C1D2ACBC -:10E33000477B6BF7D9916EBD16DC13FFB6F3E89CF3 -:10E34000CDF8F28DED4FAF073EBA8FC7FDCC76AE5C -:10E35000C0EBE9DA3FE6EF5E3F52C571CDDF3F1516 -:10E36000DD523ADD0C747A22FBBA31E0E7C98977D5 -:10E370002500BCBE07FAF0C96F43A7AF8C64F83C18 -:10E380008D750761FCEF6ADDFF017FBEFC6DD6BDB8 -:10E39000A090D1D569ACFBBFBF4B7CFF07FEC26725 -:10E3A000DF66DDCB04BE093B2FE3865F289FACFF11 -:10E3B00057E1DB10BF58FFEFD18FC13ABBBEB26F40 -:10E3C00086F805F9FA1BD9AD3F3F45D8B99944FE07 -:10E3D0005EA28F9D877157EBCE4791E879295C0F3C -:10E3E000C63722ED07629D97FBAE4BB047DEB10EFC -:10E3F000D26E63713BF3F3FF2E90D83936A9D60164 -:10E4000079F1BDB3F760BE41E7EC09B86F65B6536B -:10E41000C47B3D2D1AC6933A5B7C58DEDE521D82CA -:10E42000B8C9932FBD25413E58E94B0DA8DFD64E04 -:10E43000FAE130CCE39B5A1A0FF5DB4D768A8BDB81 -:10E4400029DE51AFDFA9F75F9EFC4D13CA4111874A -:10E45000BA2362BFD0F7549D9F44EB400E113F0991 -:10E46000EA063F69D97AB05F7AC07EA1FDA78E5ACD -:10E47000B63ED677D65A483DD82F6B1B2CD5B1EC7B -:10E480009770416CFB85D671DFCD91680FACCC03E2 -:10E490007B86D4E9E36AA7B25F1E1EF5DDFA495711 -:10E4A0008C3A3B7E52846FB9DD32A4485B0821D997 -:10E4B000B32527869DA69C18D65F4EDC38EA5BF80C -:10E4C00049E102965F2DE86BABEAC578726735C10A -:10E4D000F8636768656A09AD3FD1602112AD5FFFDF -:10E4E000328B0B6F2827013847BB219B603DE465C9 -:10E4F00074304376FE08E2E03D55D47F52216EF73A -:10E50000E35A80EDBA8499B73928BDD4962B04FC20 -:10E51000A619F214FC4E4863F9A1B54EF2A338F0E7 -:10E52000ABA62A64E519C4AD13E562897224E54FF0 -:10E530003519F876A078B439FE4CE417BC802F73F7 -:10E540001CFA4CE3CFDB055D7DFBF833F2DF970F60 -:10E5500034CD8278EEA9E871C12815F599594F9903 -:10E56000F958D0D340F4E7043B69A2AECECFE186A0 -:10E57000F93EB513ECA48951BAE8AD9D94142BFF74 -:10E580004A9409CD7F78457F1E2F41E9C6F1129A42 -:10E5900077E1F3BB206F00D6A778519E3E5849E53E -:10E5A000708CF9ED6E597608E4E7AE96662C2F5024 -:10E5B000FAE414DAFFE916FF2180DBCE96762C9F71 -:10E5C0006CE9C2F69E968D58DED112C0726DCB0EEC -:10E5D0002C6F6BE9C6F2C17CF69D294A10C7B9E0E1 -:10E5E000241D5F474753FBE87774F83EEF43BFA114 -:10E5F0007D72B8DDD07ECEE12E43BD2CB4D1D0DF0C -:10E600003D2560686F2AA83B067CE92ADD6178EE2B -:10E610002CEE36BC77BA7EC1D9EE976B7F04B6C9B3 -:10E6200049329CBBA0AFC8706E88F2F190662A5E3A -:10E6300069FDFE441EE7E866FBE49924F283740951 -:10E64000A964601FF426B23CC8D62CF67EEB8DACD4 -:10E650007E7F0EDB3F12799AB23D42D744CA88EEE4 -:10E66000E7DF9FC8CF2915B0BCC8DCE200442448CE -:10E670002E24A8C17E4829DB2713FBDEAD3CEE70BB -:10E68000BF95EC94A83DD9AAB0F9B76A24B082F638 -:10E690006B2D66F57BAA48C002F3D7A814CFD0ED46 -:10E6A0007337EFFB4A2A89EE9793D11AEED7C87CCD -:10E6B0009F3DB2EFED7897E0BE3E87D7CA848F3199 -:10E6C0008F36B9B94F02FE1AD2DCD70BF3BBFF1657 -:10E6D0009B1ACB1FEABDE58B2CE09B4D377E910545 -:10E6E000CCBE29923FD3E7D0E7CFE472B86C6ACEB4 -:10E6F000C7FC854DF52E2F87B3C5D48EF90C9FD757 -:10E70000F3FB0988827ED1307714AE01913F22431A -:10E71000DE1D5DFF88E8F9D3FF34BF6653F37296C0 -:10E720005F934D787ECD4CF427051E364139AEFF00 -:10E73000B9DEEF3ABFE6947935A63C0703FD42DD2A -:10E740006FA66F15F112C7E95BBA99E5456499E8C0 -:10E7500046E45D08BA14F919225F43E46FD8785E85 -:10E7600007FD2CCF6B8E4D5FB63DC403E7DE644BD7 -:10E77000BC774BDEA9F3089A3DF95C392C1BC7C660 -:10E7800065F903FF334AFB85A72C3A6E9E47BB51C0 -:10E790005F17E556F875321DC21BAE027BB5A85C4B -:10E7A0006B85F37C29A504CFE994964B58161D621E -:10E7B000F5DB3C327EAFCDC3E24DA27EB1A63D0774 -:10E7C000EF2799DEBB38F29E15FBFDDE63E1A5C2A3 -:10E7D000E6CDF3906772FA5E3D5966F9D155129312 -:10E7E0001BB0A13A89EB430ABF8B89FB92025DDC27 -:10E7F000F5C71C5BB7B7B0FC3E910FFDB79765CC72 -:10E80000877696FBA6C1D9B3B2502808FBEBA5DBEF -:10E81000883B4585F98535E0C7153977EF817C88D8 -:10E82000272E647BB6171F62F6C28FCBAFC6FB469E -:10E830005C5FCB188F754F49F406E0433556A6FF51 -:10E84000453E74B9D15EA835D90B179FE2FE8F14EF -:10E85000D2E7073DF988C7148FE5F7800C24BFA3E2 -:10E86000F78030F950CAC77496BB1D10BF2E3A64AA -:10E87000C1E39EF2364DC6F3B19D2CCFE389906F74 -:10E88000D0F3A82F723886B89CF81BCF93ECE172B6 -:10E89000E2752E270E839CA0E52B3C4FF210CF9300 -:10E8A000349F97D8D152FD92DEDE319745927F1684 -:10E8B000E6416D56089EBF1BE0BE8FA2001DC790AB -:10E8C000C7B802E9676FF2DD15401CEB350BDA952E -:10E8D0005D5348562CFFAEEBC2CA41F30F3B5BE6DB -:10E8E000BCD43688DFE8B4517F26D6FB1E71AEABB0 -:10E8F0000BCF5BA4955B08E45565D9FBD8FE43AF0D -:10E9000003E97988D78EFBFB649E93BCABCB53B9EC -:10E91000DDD7350BE6FFE03605CFE7887113BD7410 -:10E920003E3A3A499BB22713E6DF39359809F64C4F -:10E93000D7F87D1B0B205FE4A04C800CCCF3B21603 -:10E94000717F96AF2B4DD1A45879EA03ADEB038FBD -:10E9500064B867C20CFF01ED0EC80818FCBC95B383 -:10E960002846FEE269CC13EDDB6F765C3B1BCF4D96 -:10E970009EE6FD17099C0EB3161207FADD408F8341 -:10E98000E0D9650D21DED62EB454C73A5F5B54C47E -:10E99000F0BDB6F453B48B4971EC7924959BE9959D -:10E9A000CDE70E858E4FDFEB2A8D3DFEE51C6F9483 -:10E9B000AE5F0379D5556D41BB22092E62C0FC1CA8 -:10E9C0006A074948EF28973E2BB5313BC1242FFAFF -:10E9D0007DBF54474FF9FDE5D0F9454E437CFF44D8 -:10E9E000F6ECA4600C3C8B52C051C8A1FE70247898 -:10E9F000FEB58BC39114C7E6EB28BE56887855DD6B -:10EA000029CEEBCD2E2A8B714E6C003C98E9E18E1D -:10EA1000853E5C1779EE35A282BE2CA5FCA88B43FF -:10EA20000C043F33BC167EC7F032B7FFA888C74737 -:10EA30004E739DA7DD8FDA456E9D5D0C87A2155A3A -:10EA40009FCAEB3FF64BE17BA85C9576FD09ED9EF6 -:10EA5000A9BCFC3194543FEE9282EFBE415F9E22EE -:10EA6000A93980B4594F8F820819B9555A66B07FB9 -:10EA70003A24EFE167302ED4970AFDA6933A852118 -:10EA80003980EBFA93146E05857529D15641D94822 -:10EA9000BA6CF05E63CF9F0EC3771A7B1C4119825C -:10EAA000933BADC7F471A36BF4E747F2E0168D6EAC -:10EAB0005B1E9DCF921DC67DD20612C2F196761BBB -:10EAC0009F9BCF8F4832050C5C4E10C97F9D82F909 -:10EAD000BDC4C1DAE3478BF3E87D85FAFBCCEA39A4 -:10EAE000BCEAEDCE20DC2F4402C6798A7B739EA758 -:10EAF00072CC3E01CFC33C0C74FC91DBEEB7507B73 -:10EB00003923A5AE11E07115516DAC647683589729 -:10EB1000B887668173B60DE0BBA0DDBC0ECD06F3F1 -:10EB2000F959D7E0EB1378FF4711C175DC5EA46299 -:10EB3000B934BE66BF06CDA5A15CFD7D104D5C3F1E -:10EB40009065A906FE7D51D023D1E4D3597F7FB8CB -:10EB500016609C4CC075603A35C6C976C121D77421 -:10EB600084DFCB7AF811A5AE04C615EBF96759E836 -:10EB70008120ECAB26B27BA0DE4DA97B03FAE71C1B -:10EB80000EBF2FD1A913A75A08EBFC78E747AFC8EF -:10EB9000F9D1F51112BE1BF2A3EB77CAEE0E58CFD6 -:10EBA000CEE70E03BD0FB42E911F4BE901E146E7FE -:10EBB000F521E837F3BC8EDE407E0A76C974B9D8F9 -:10EBC00010477986C3F19E62DFC7F05EE94BD92E0C -:10EBD000BC7F27BF7BDF503A8FBEEB25CCAB4D937C -:10EBE0004915C04FE4237CEA54D0CF4E4BF0CB2ED6 -:10EBF0005AEFBB8A78B7C034BCCBBC402A724EB146 -:10EC0000B783D24DC6F5B20FE4C9DFAF5B90BC80CD -:10EC10009619890B9347D0F28238E277D0F13224EB -:10EC20008BAF1B8350F3932FA1F3FC491C9D27ADA1 -:10EC3000E7DD90101C41F9ED8F3662077A4D4BA845 -:10EC40005B371DBE932CE37C8E503B51A172ACE22E -:10EC5000F2CF26DAE9F7867EED9C00F3C96A9E467C -:10EC6000DEA5A03C5CC4F8E4E8C35F4E8473E0F228 -:10EC7000374E2F9E33E7F4973682C1C38CEFDD1CED -:10EC80001E6FC6337FA731DD762BC4DB3FE6FE0F58 -:10EC9000D13CE82F5CC7FD8537E3991FF466A18856 -:10ECA0002F05D3F5F66DA3434BBA0C9C076A274199 -:10ECB000BEF3676E2D2919FA111FF2ED75DC6FFE98 -:10ECC00098906AA0F3EBD64C1B9242DF4F6F6570B1 -:10ECD00030CF6FEC68A69F1B4E5282D6C5CF1A94D8 -:10ECE000A00DE477C3499BE1F9DFA91DEDD79D573E -:10ECF000FFC98787A6C3FCAE24E155D0FFCAEB123B -:10ED000058E09EF36B0F9FC74070694C568842E1F4 -:10ED1000D12811DF60FD9EF9B71C13BEB34733FB4A -:10ED2000257D5AECF55DC4D7376D75CD2F81CE1A90 -:10ED30004356B4E5AFFB43C590C1ECE7C693E791FA -:10ED4000802EFED7A884111E8D27CFC7E7D3561F6C -:10ED5000B301DDC3382A7D7E9D431B02F1DA81E0D9 -:10ED6000BC9BDB418D2793893F55FF9CF17774FC59 -:10ED7000346CFF2D87DB6FF75BAA63E577358F6611 -:10ED800070199DAEF8201F684C90689B637C57F407 -:10ED9000CB4831EE5F98E7D55319BE12E67D4E158C -:10EDA000D1627D6F3187A3986F4F4A78910FE9B395 -:10EDB000AF10EE9988D4DD7DB9FA7B24B672FCF5EC -:10EDC000FC309C0BE37F7C61EC733B02CF9394653A -:10EDD000682FBF9052F734C8B77997D10AA58F2111 -:10EDE000F38216763EC53F28BEA370964960E26066 -:10EDF00070B661BB18EFA317393F523F1CF2D4AF76 -:10EE0000E2F2FFAA6D4B30EF49C8A98F36CA28A796 -:10EE10003E42DD42CB8084F6EBFC3A0A6B2A571661 -:10EE20006D9FB60FD4C15599D4064D61CF6F86B290 -:10EE3000CD6A88F78BEF2D38CCECB7859D463D57D2 -:10EE40004F3A3F01FBE0A317993CA0FC6D0379BC4E -:10EE5000E82EE338F5DB2EFA00E6576FF2CB33B835 -:10EE60007E36DB799B47F3F8FE2432E94CFCF24610 -:10EE7000A2ED188D7AC127C33CCA14E33D5BA24CB6 -:10EE80002F61F05FBEFD84CDA50E3CEE112A470A2E -:10EE9000E8B8C7A83F0EE51F476BBF1F4DF170FCD8 -:10EEA0002083CB81D1754FC1F78E1F64EBFFB4E196 -:10EEB000D345704F0C99C3EC8638387C407F8D9BCE -:10EEC0006B0FB4D2F5AEA662CA01E782E2983D228A -:10EED000EC3059BE5676D1F6C9FF58980CEB4C7BF6 -:10EEE000E807D5305EFA43091AC0ADA3421B0FF202 -:10EEF000BEA3D6E985F32A9B291996D3F7ED741C96 -:10EF0000D02781DF4EDE03DB9105DDEB2AE1DE1742 -:10EF1000F7AEDEE030BAAE760BBB27A3FD7CE26D28 -:10EF200025D1EF35EDAA7D0CE6953B9BEA0709CE8E -:10EF3000D16BE3DDBAF109B7AF1A394E8E3F3BEA28 -:10EF40008EF3E05CC27E19CDC74F1BF2D1AF1F4DCF -:10EF5000183D89FC7BF836D891027EC7A8BE22BA3C -:10EF60003CB5D1DD52D04AD7B5B4E731BC8FA361EF -:10EF70006530632EE8DB0715A647F9FCD2FE9855ED -:10EF8000A9BAA2FA77AEE4463B52D8C99713F15317 -:10EF90008CF1C2399C0F2EE7F6F1DC0406E7F9C4C8 -:10EFA0009B0BEF5D61272E0B85D9DC69DD65CB40BE -:10EFB000EF2EB126837D036B898577519AED20C1B1 -:10EFC000878D0F24FA21EEFAB1D45708831CB13291 -:10EFD0003EEB7B362EB025AFFF38D631CCAF6F2C51 -:10EFE000E4765D01D1E0FC40E3EE51781E2C2E9ECC -:10EFF000E27102CA3F3BE0F579D0FF74DDD73CE314 -:10F0000008E2B930715F999BF813E9779A760FD9C6 -:10F01000027646DA086DFC723ADEC7D6702ECA0B4D -:10F020002ADF24AA5B73C7ACB944A17CD53894DA33 -:10F030005DB47ED14377B37A7E789185D6AF7DE893 -:10F04000D14B144A9F8DA3C3EF43FD96879E66F56F -:10F0500009E14532AD6F7C683FEB0F7BD894B0B6C9 -:10F060003F74E012F0FF8F2433FB8178C35702FD19 -:10F07000343E3DCAD2A15BEFBA314C3E1E71B07E28 -:10F0800047F2C84F6701BC3DE1C259BA7DB9EBC731 -:10F09000083B96D971629DE23D92197BFCB1639861 -:10F0A0001EBD661AEB7741026977B0F3757EB0C773 -:10F0B000F6EE1A8570491993C2E145C7298D8E2352 -:10F0C000E028C613DF5D0C7A1DE4BE95CA7D9D9CC9 -:10F0D0003997E38D7EA70DBF53AC8D877BAC1A6744 -:10F0E000658F07BC517C291C5F8A1D2F57DBCCE63E -:10F0F00047C74D2E413D3311E2CA7BBFA6FDF3A2A7 -:10F10000F336D3C78C314C1E5DD3CACEF7F7258FAB -:10F11000403ABA2081D98BA494C28FCAB38D1C6E99 -:10F12000EBC624333F32828721128EDFCAE197CDAE -:10F13000FA9FE97AE7F0799CEDF5EAF0A4417C6565 -:10F14000EFCE22C4D3C6081DAC338C736485E9BDF1 -:10F1500072CA78308F9411F8DE6A07B1E373B22572 -:10F16000F25E1E7DEF82697D13811F96727B98F897 -:10F17000CFC7BC86062E2D96B6876C10975EDACD6B -:10F18000E2E4A480AE0FE863564D295F9F9BAFCFAA -:10F19000CDD61730D02739D4973B3BB13FDD46E081 -:10F1A0001E19AF78021FCFC0CFB1C603BE18081F0B -:10F1B0001D671B1F629E267846E06C9A9F8027F091 -:10F1C00031BE576CE42731CF5BC644E2B1467ECEF8 -:10F1D000FB96DFAB60EF2DBD91E211EC1FD548CF60 -:10F1E0004B7BF22CF38BA3EFB577AFF0819C4F9064 -:10F1F000541607EFA9F583FE6BDA558171AAA54F66 -:10F200003DFCA49FBEBFF8D10D2E48AEFA48E9CA16 -:10F21000003BB861FB2A17DC33F7A1E27781FCFCE5 -:10F220002820C7CC5B7F9BCB01617735727D73E46F -:10F23000B7B7CD04787CB1DD8AE70C9B76C405E3D3 -:10F24000306E720DDA63B4FE36ABAFFE04FCD8A6A6 -:10F250009D46FB69F16F3664A8484FFE6116DC04D9 -:10F260000B0E83CDB0C66D56DC4F693C247BE9673D -:10F270004813E9BB15E6677E1FE67192E2BDA95B04 -:10F28000BE0AF2FBCCED5492A03DD6D4731BDA69D2 -:10F290004D3D177E00764593299FA27E003BECC52D -:10F2A00031DC0EE3F7A40BF890403ADA37AD0FFEED -:10F2B000B2E46D3AAF63DBFEE2928AF57A7325E23F -:10F2C000E9D3EE059B9E5607D6AF1F837D10A77F1F -:10F2D0008FE157DD29B18DA15DAC6CB0065D101FCB -:10F2E00068D86CF5520D4C1A1EDEFAC0AFC1BF7C57 -:10F2F0002DCE0BA9A64B1E7EFE9573697DC963D6E4 -:10F30000B41A367D27EC730B3C41CE06D829022F68 -:10F310008B7FFFBC0DE290F01CEC5E819F258FF58A -:10F32000DAE09C9F198ED3BA7B6D980F6BC653F7AA -:10F33000DB33C004697DF04B1BD0F747BB25BCF71E -:10F34000DEFC7EFDE6E75D40870027F04305BE2238 -:10F35000F8EB87B7E0CCA74BB11FC6434E85BFC7BC -:10F3600001476548E78F3C0D7194D7E3BC0087FAED -:10F3700047AE75C17A3E5096317ABF6F5506DC971D -:10F38000576FF567B8B164CFEBEFBF1EE9F0EA83C2 -:10F39000D767B07B24B42C768FA63F0BD6F9B37B0E -:10F3A0002FC1752E22754887F5F7B1F8C6E70AA96F -:10F3B0007E2C06BFCC2D66FCF2C19638480E221F6B -:10F3C000C03E02EC9BBC28E3B9FB7EF72291E558D6 -:10F3D000FF9CC717C61547EEEDB3837DD7C47B35B9 -:10F3E0006D5B1D023C1DC9D186403C9FC2C1CFE16F -:10F3F00026C1BDEFF2C1E943189E880AFB21F81E21 -:10F40000B5C7A7C173E81FB26A8E12C37BFC7E1B0F -:10F41000F67D11DFA0F38E87FDF40F32585E9E79E2 -:10F420007D1DC5421E9010D1D3D940FCBF6D0DD2B9 -:10F43000D7678718FF34066AABB13D640D0E81F6BD -:10F4400040EF6C09E5439C61FF3C421FDBAC9CBF75 -:10F450008DED749E8AA487EF6E09EFD314F4B2E8A1 -:10F46000AE38C37E7D947E8CF745097E157ED6D559 -:10F470005C1E98D76D960F97169BFE8EC2BDE9A7AE -:10F4800015FF6EB0061EF835F033E55FBF0AFC6C61 -:10F49000C5F8C0D1DF3DF7CA1594EE8F760B3E3626 -:10F4A000CA5B331FD73F5E4662F1F151A797C4E4B0 -:10F4B00063FA3C261F3BD9B9E9FF57F2F6EA01E4AB -:10F4C000ADBFD8286F3F27C549E711D0334BF0BEF9 -:10F4D00057337C85DF6B96A399C56A4C394A7F0EFA -:10F4E000111D3C051C057D2E7E68297E2742C782A2 -:10F4F0004E051D47E8D4BC6E233CCDED5530775DFD -:10F50000FE837525F563C0CE7D560E6CA1533B4E30 -:10F51000E7722B85FFF1DFE561BED12AEE071C778C -:10F52000F7B9207F6C15F73BFA202E99147DDEE7A2 -:10F5300060F6D2715F9F2B596737BDBD4B76819DB9 -:10F54000170E90EA58F1242AB1711E6132503BDB4C -:10F55000173BCEE3A1C779BC73BAECCC6D8638708B -:10F5600017BBD77FE18ACB5CB02F707CD7883B80FC -:10F57000FF7EF66799DDEBE9D714C89358C0404089 -:10F580003E24FEBBA7D0752ED8B504F31BCC7194D6 -:10F5900045CE6DB8BFF039B9194B73FC6431C4590D -:10F5A00080DEEF353DDF7511D2D762137DD5017D49 -:10F5B00065F5A7AF1704BF8E27E3F5E7CF9673B9BC -:10F5C000375D2EBE03EC99E3D4CFC75C02B9F800D7 -:10F5D000E8DDCFC1EF07C6F0A723DD2EA9FBD0C61B -:10F5E000EF71467A177468F6F7CDE5B127FE3EE96C -:10F5F00026DAA5E1C9374AEEA1E5B1275F2B7C06E3 -:10F60000EA4FBD9AFB06E9DF7FDAEEAFD0BF39BE25 -:10F610003B0EE7737CF79F726F82FAD37198877500 -:10F620007C651CE645F9772706E03CDFF11C16B740 -:10F630006B7DF6CB12CCBF206D88C793C536668F25 -:10F64000ECFA9FB7207FFAD35D712AC4299A7627F6 -:10F65000A0DFDEF4B403F35E8E3FFBE5247D9CE97E -:10F660003F5D4FA38DC5338F2792398F033D2733DD -:10F67000FFAEE999C95B215F6E694FAF0DF607A632 -:10F68000FDF15F2520978E3FCEEC0FEACFDF0F37DD -:10F690001DCA639BEEB652787F0C3622F5C3378DB8 -:10F6A000EDBE14FCF0FE706170384EE100EBA2700C -:10F6B000A907793A103C868EB521FD7FFFE0F1095C -:10F6C000FA170DBBCE413E8AC245D2D8F3C4805D45 -:10F6D000C2F5B3E7BBBF2C017BEA68F70AB40B4E57 -:10F6E000B5EEC963BFAF74F06DD72D054F67DD73FD -:10F6F000BEB7F866F4FF16D757663EE84FE74FDD12 -:10F7000080F54712BD38DFD3E4FFE6FFDFF0FEB837 -:10F7100084FBF2A7C2FB2FFFD7E2FDCF1CEF896E5F -:10F72000C82F3BFEECBF72896EFDA75AF793FF4BC3 -:10F73000D71DB18F649F1DAEB8EF24C1109C5F5FD1 -:10F7400035809DF2EE5849E4EFA01F22F277E4B431 -:10F75000C56867C8691D6837AC22EC1E64BF6AE1E2 -:10F76000F7B1B1BCEFF66C6F00E3A28AAF7E33ADA8 -:10F770005B8737783B7004A37F2667D454439CA5EE -:10F7800075059D171DA735DDE26E55E19A764B3064 -:10F79000AE04CBB7A15C9DF1C3FDF05DC569BCAF04 -:10F7A000D669F237E20B6CC6BC62B2C70DFBD50E50 -:10F7B000AF0277B95353D678BF6DEF58B6AF1D4F30 -:10F7C0000298B779A6704A2D191C4E66F808B8F54C -:10F7D0008313F747C57DFC4A5A4708F85021D49F48 -:10F7E00064EB413F14FE8E14ECD7589316793BD846 -:10F7F0007E8A1AB9C71FF220B8BF19B96756B5A0DB -:10F800005F2AE0AC1B0FD76F86F399C257E0C54162 -:10F8100066219E1DD94E6F80CE7F95CAE0BE8AC2FA -:10F820001DEE1717F0157033E3E17DA0519D1D1FEC -:10F830002D8DF93AFE4AE2817D96E9F294B01FECF3 -:10F84000E5F204B4978F49242851FFED5845462529 -:10F85000F815C7726C0A9453FBE89A74F3BDE0A4E0 -:10F860003DF237F4A05E41920DF5633985F8FE3420 -:10F870007B96E1BD0390B74DFDF66359E576DC0F4D -:10F8800075E719DE9B99E0DA02ED07208F1BBF3F79 -:10F8900003FD9B1F641619C699F9CEB17BAFA2E593 -:10F8A0004EEE57F74DB5623CFED89FE755021C2F30 -:10F8B00054C71BFA1F24EE74202ABABE2A58DF450B -:10F8C0009EC986EF36BCBDA710E2103FF256189EC7 -:10F8D0005F5C7EA1611C9F3D1C04F2AED56A0DCF1A -:10F8E0001B9ABF204A2A21E7357F4D9489D47C0F8B -:10F8F000761BC699B87FA7A1BF37E49E0626E3848E -:10F90000C3DEE7A014F9ECB654BBDF42CBB16F57AE -:10F91000CAB0EF59F65E5D2B84A1CF3B463C400751 -:10F92000E79078DC0F1C28EFFD4B4BA00ED6F90BAF -:10F9300039E081327ED8A21258D747999D326C4B5C -:10F94000DF23D55D5E0276D6678156A85FF075B776 -:10F950000CFE64EB0E19CFD74D976B12FE0AF2B86E -:10F960005BC21CFF06A705E3F04753BA4BAED5D1E7 -:10F970009DC8DB31F371D1C48A25307E5BA6D6D514 -:10F980000BF2B4F2EF57CA31CEBB12B7F15EBAA296 -:10F9900089BEDB619F5EE425C54F935972FB0FACB6 -:10F9A000182FB9D5E27570A1807AD73DC3BA19F87E -:10F9B000DD3A8EC98DF8BF1015E241F1A975329C70 -:10F9C000B323774898D722BEB7A09CE5DBDF5E2241 -:10F9D000EE3771A7FF642CBC9FC8F205209606EF96 -:10F9E000D558D04E711DF6EE83FBC8EEF41C728321 -:10F9F00078E8A979C70FFB223D874353258A9721D1 -:10FA00009D15270A587F02F1CD1E4F55C258D46F5D -:10FA1000E59887B39CE7CFF44EFD8D07F4C7F2A2BB -:10FA2000D14306CB2F779D9488AACB33B08E5371E8 -:10FA30005E2E258CE7C55C27156C27E1F1CC1FE411 -:10FA4000E3BBE6A9AF5E0BF3D86FC57C67A2684B3A -:10FA5000601D1DA3DF543B701D84FF5D9130FEDDF2 -:10FA60003CC84FC20BD19470E64F629CC33BB2A31B -:10FA70002C19FCF2D40A2F9E1B4C7D588E9C9B05A2 -:10FA800038DC0EFFC373B597BE5A45C7DD01B2928D -:10FA9000B50709A5EF0E9B68A7A2C6C3EF3DC4F644 -:10FAA0004B2F831843BC6CEC3F2E3FD25FB36746AD -:10FAB000C7FF43C9A5AFB6C584671CEAEB8E1956CC -:10FAC000CC9F38355C134E01571783EBD7542B640A -:10FAD00044E38BEF496A2ED0DB9D705C80FAD1BF86 -:10FAE0004CAE0B96A4C3FC8363E1F97C9736642A81 -:10FAF000A5BF1E9B967B23C6491C98FF55FBF3A30D -:10FB00001BE1C8986BE6114F1BD08DA2254C8038A5 -:10FB100095FB0B940B22CF2D0A474ACFF49BB75B82 -:10FB2000A2759013AE285C35B82BB84307673BAD80 -:10FB3000D772B8FECF23F597B5017E17DA912EAEB6 -:10FB4000E53CD5964CBA20CFEE84FB814B811E4E0E -:10FB5000ECB062326B0F34821EF5D8D9DFF5490B59 -:10FB600067C2DF71197BD082F1BD37297D68401FE4 -:10FB7000C1F1087731DE8929AFA6C0F98913694A36 -:10FB80000AC06771D88670FB894282707F6A4FDA3B -:10FB9000C26915C81F2AB677F371264FD4FE518269 -:10FBA0007A9D9FFFD5CE95E1BED481F065DECF87EB -:10FBB000F8F0B92903D3415B851DEF1F6A2A5F5115 -:10FBC0000C7A62797221E663355549A8879B9A3F82 -:10FBD00043B88BF1959332517579533D104D4CD705 -:10FBE000DD237FD286ED0DCD27509ED3E9E401DFE2 -:10FBF0001CE3FB9D5D56F2D35A5A36FC5BFE69ADA1 -:10FC000013F72DDB419F34903DB6E53A7948BA3F72 -:10FC100089C8FF71147777D6BC180F72B656725F19 -:10FC200002970ECCEADE7B19ECE7D73ADC97C0FEF0 -:10FC30007F8EF71156CF715F02FBFD631F4D9A0354 -:10FC4000FBFBB559EE0DF09741AFF016CDC1F63C78 -:10FC5000F7CB509F316E06AB27323A4879347F8E0E -:10FC60001FF5B913E1F2697B4260B07B48AE6E7E4E -:10FC7000C600977EEDB284795198B841E9E79F6B51 -:10FC800086B17B710B4298A735721C8BAF67A4B00D -:10FC90003FC92BF277D346100DF657D39E72B07B37 -:10FCA0005BDF0BE502FCAE7ECA1184B8E4D2FB9E9A -:10FCB000B3813E9A2FAB85C057B3CBEAC68C2B835A -:10FCC000F84908EB5737EFC679754C70F3FB72FBB8 -:10FCD0008A217E55CFF39EEB4DF9BF8B9D7B311E64 -:10FCE000B7789B31EEB68484DF023E6DF8DDE079B3 -:10FCF000BFEF58D83C140E8FF972E84A1B9BD7F916 -:10FD0000E3E8F797A6F462DEB1E20E65D4217C1B2E -:10FD10003CE8AF64C6E3B99A5B87BE5E12EBBE985F -:10FD2000EE16AAFF29CB3DDEB2134BE77882EB1922 -:10FD3000A2846D5E3A4E2397CB9342EFD8F4F983B9 -:10FD400073395C9376B2FD6F735EEC5CD05700172D -:10FD5000BECFBC74D60B53002F029F1724906ECCDD -:10FD60005F4D215E8E172FE045C03FBADF4CDFCBE1 -:10FD70008B451702FE84E5DBC53379D1F78403EDAB -:10FD80002BF3FCAFE3FA57ACA39DD7079A7F3BD781 -:10FD9000B7677BFEED5CAE9BD721F8583C177C6CB7 -:10FDA0005EB798F799D359C8763A7426E44C23A9DC -:10FDB000F3605C96CB150167314F01AF9E01F25D98 -:10FDC00095E63F18D6A3842AF1B0FC7650A420C74C -:10FDD000BA2FC4942BA57917F63BD3F508793BD0FD -:10FDE000BA849C35AF4FC85BB14E2177C57AA75214 -:10FDF0004182F210EE7E90C07FA833D8C3157062A6 -:10FE000041BF0F64FFB9A13EDD7DA3A1FF0F3257B3 -:10FE100018DA2F54D718DA2FF2AC33D47FE4FD95DB -:10FE2000C9AEDF6C68AFD51E34B44F0987A681DD3B -:10FE3000FDB7966ACCE73EFFC3BEE7A01E6C7163B8 -:10FE40007D4F4B26967B5B54E4EF7D2D1E2CF7B740 -:10FE500078F1F97FB59463F9428B8665A8C587A5CB -:10FE6000592ECCFCFD650AD8EDE5A12EF407C68F0E -:10FE7000AFFB0CE4E1014BA03591C2E99C37997DC1 -:10FE80004E02667DFCE55B37815E77B37BE8DA7A0C -:10FE9000274B6A0C7BCE45F59DA6A317574D98C0FE -:10FEA000FEB28BC4CEBBFC6A1CCBF7C17C3D4A9B27 -:10FEB00073ECEC5EDB397324CC4F9C43D879055A44 -:10FEC00006EB68FB4C85F841FFD73A15DC8F22FC26 -:10FED000FCF0256C9A70BFBA3F0EF4775A2A9E57F1 -:10FEE0009A0D0FE97C654DC6BCD64BCAFF82F980DE -:10FEF0005738D9DFCDBA7CFFCA7FDE44DB499BBFD0 -:10FF00008C9D8710F786BC6E3913BBE12B386300DC -:10FF100079A09297FDDD9464C5ABF70744F9D771DA -:10FF2000CC1F98D9CACF0B1C2468C7097EA4EB6BE1 -:10FF300087F90BBEA8752BC1512ED0F7EBA641FF58 -:10FF4000FF0B270420E00080000000001F8B08004A -:10FF500000000000000BB55A0B74146596BED5D591 -:10FF6000AF904EE88400411E76886020AF4E271D7A -:10FF7000C26B28124054C446650714A540313C9317 -:10FF800018981547F774633308AC6737337A5C5DAC -:10FF9000C1D3E0A0ECACE7102171339A300D2A8F69 -:10FFA0005947A3828266B141E4B126742428E270E5 -:10FFB0008E7BEFFDABE8AE4E02E859939373F35797 -:10FFC000FDF5FFFF7DDFFB552D3FE4720701A0BA71 -:10FFD0006C4D1E14209D221DB7215DBEFA3B30F7EB -:10FFE000C3F1EA0B602E06982ABF164C2D01387F0C -:10FFF00004DC369C3FA65D3DB3CB85FF5CFE5182A1 -:020000021000EC -:100000000100ABECF83F8ECB3AEB2AFAE2BF45E1B8 -:100010007A30D335FCF911FF8A0F34813927361E27 -:10002000F77DFDDB346FB75F05B305A0D93F876966 -:10003000D8BF18CC2300F6FA6B78FC8E7F358FF78B -:10004000F9034C0FF8D733FDABBF8EEFBFE77F9EB0 -:10005000C7EFFB434C5BFDDBF97A83DB09D01FE084 -:10006000426BC540350F8F46632F6E689F9CE94BEE -:10007000416A16740E1DC883D40E968C0CA473248A -:1000800096075E0F403AD3B08AF79767BEC5F2C0B5 -:100090001F9F1DF99D0DDA4F463F339402DC03820A -:1000A000FFD965FF7D494AA5819A23A1BCEECDEC1D -:1000B000031B2580FB2090BF00E99CCA3ACB7889BE -:1000C000EE4F719E42794881CF4C3FE6A24CE867E3 -:1000D00052778A078553BADC6480A58EB556180E10 -:1000E00080523A1141F99A40821FB3009640D80AD3 -:1000F00074FF8F96139138392F03C8826C3CFF6BC5 -:10010000169EAF5F077A3E6E5DB94286B274929BCF -:100110008BE5B60222BC9E4D7EC45DE3A0FDEAAC39 -:10012000B44EE2BE4B1DEF5871D0C3BEADFCFCB562 -:10013000F6D5F55405B080E6AFCD54EAF6E0BA2B1B -:10014000FAB43D209B7A9087D3DC79653D94C3BF98 -:100150008C127A9553A6D85507D9A9034CA8C7681D -:10016000480ED9709DC55975A9B42E1A662AE0F5B6 -:10017000252D32EB03CC8A7910EAAD52D35B3B8458 -:100180003F21BD544EA89C01A8BFC59B8CFC2C757B -:100190009C64B97F0BCD3DF25B054F7F23A776E7CB -:1001A000B76AC22DA769BD2A4D6E7C1DCFB5BA4D69 -:1001B000DAF14EDCBC95EE948C53C9E4583086E4F9 -:1001C000827CB8C3E46F8764F6B7DEECE39C1FD88B -:1001D000DE2FFA61C73B68FFE72EE3851B009E70A8 -:1001E0004F7B3E30E197D35BBF62DF0637F913DA0E -:1001F00009F991AEC775684380E75E576E0F0550E9 -:100200009E51AFD34CFB47A5503095F47209DC6B7F -:1002100050DE939BF71F213F996C7784496EC84449 -:100220007BBC5E27B58BCB134F868229387F7C5BE6 -:100230004026B71D7B480D3A703CE63D05358D7173 -:10024000E61D9F4C7ADFE96F6239D4FBEB99C6FC5F -:10025000E726F6331884D7B2AFDFCFE021BB89E2BF -:10026000DA4AED4CC134A83361C0EA724C93539022 -:100270008FAE30B8E97AD1215790CE55DCA6C8A907 -:10028000782EEF493548E75E876A506C1427037271 -:100290005FBC6E3343D88671C4966902254EAE6347 -:1002A0002F84821407F5B8D69C24EC79D2E57A998C -:1002B000E296D3AA6EDF82F2843793DCDB5CDDCF7B -:1002C000FD96DBC472FF32DDF7961B29385C237D77 -:1002D000F9643FEDAFBC48F6D390ECB6E173897199 -:1002E0005A8F8BFA3ABADC7439563BBB38EE2F5F23 -:1002F000DDC5712F71DF6A13A8F528774F85ABB87C -:1003000016D7695F03F367E1B8CE8234AFFBFC8F89 -:100310003CE5EF93BD4C9527B42A742EA7E9AA7645 -:100320005DBDFA1BDEBFD7FBDAFED52D5EE7424787 -:10033000ECBAA34812711ECCCE53F6983EAF57EFDD -:10034000133BE718F2D6A4EF5543DE9A8C9136FEA4 -:100350007E85FD11C378AAF331C3FC5B32D718EE5A -:10036000DFEADA60B87F7BCEEF0DE33BDC2F18E6E7 -:10037000DF59B6C5707F96F21F86FB33655024F4B3 -:10038000B97C2964213F9B0BF54CE7412BD307A097 -:1003900093A98A96447421B8993E043EA62B3CAAA0 -:1003A0005C847613B5740E20BFEF78E3EF796417A1 -:1003B0001DBF1AEFCC72C5F2B29EA77F6A3EEE63F4 -:1003C000453DF5600F038A84DDEAF1BE57FD24C484 -:1003D000FB6811C6133C67B43199E34C34A54F4810 -:1003E0009262F1042DD244F958F75B3DBE14CF73ED -:1003F0007FB092FCE83D1946B8BAC79BA9662C0DA0 -:100400003C74DD9D737F7E6CFFA00916939D6D4744 -:10041000FA3AF2D1775EC4EC8AE3A780F8407B9B7E -:100420003C770A44F0FA4C272821CA4376C848A2F0 -:100430005878B92B6F36068899DFA3A2D09E7F48E3 -:10044000570A49DE81A726A49DCAD5E2D28DA8BF4E -:10045000E326E6079648A111288FA60631CE5F94C1 -:10046000C6FCDD0761D6E3FD10B110FFF301384E85 -:100470002F0017D30741617DE2CAC905189F1635C1 -:10048000983D1B91CFC2F4CEE1E49FF9638FA64B58 -:10049000782E2CED14E2A7D004EBA9BED1F9A8D593 -:1004A000F8D858A454D0F90AD35B373E83FB77368B -:1004B0009A602BAE737AEC630F435C3EDEEE299FAD -:1004C0004EF37648A0505E0DB4D842DBB268FFCE42 -:1004D00001940FF4792B3C15338B70DDD945C0FAAC -:1004E00086D6BF00E9679653C81EA6F46719E07365 -:1004F000C37CF93DF967809F2B2459DE00E2421945 -:10050000EFCBE3875F7F6DCEDA3CE6274075DC7684 -:100510008F3A9FCF6FC55840E7DF6C0B6DE57AAB24 -:10052000669884E7AC7CC966A2FC7F14E333DC0CDC -:10053000F0B9DFCEF47FFC4EA65FF833991EF7BB0F -:10054000987EE9CF61BAE87B6400F577BA48A922C2 -:100550007E7AE3A3F73823F8884A30A7DED1FD7E00 -:10056000A5E60F050D279F4C263B6892DD64A7F991 -:100570008D689878EE73CD63427256BC5CD5C7899E -:10058000CF82A68FFF30BE849E333B259C7FAEA9D1 -:100590006B00F96FE2F9AEC8A3C52AE4A19D7747C5 -:1005A0005AEB467A7E47E3703A21C611107648FA34 -:1005B000947AE2630DDBC9AF8A44BEBFD3D659E259 -:1005C00074C4F8032A3130CFD46A7966AA7C39958D -:1005D000FC6216AD3B96ECFAA60F68BFC001E1873E -:1005E000A8D7F9BE387FDAA5C941A7F92D561FF95A -:1005F000D38E964FEEBA1DE53073DCAD5ED9159BF8 -:10060000FF3209C14BF67DE9DF9FC9E0F94EDA6A96 -:100610002E6C99EAC479F7D9F7BC4B22B8DF797C04 -:100620006A1A8EE7674AFB882E70654D4BA7380023 -:10063000217EFEC19CC9FBC8C466B86759A99E98B3 -:100640004C4E1517772BEC186F0C71BE9F617C4BCD -:10065000E660C3FC5B5DD986FBB7E7E41AEEEBFB13 -:10066000CE70171BE691BF52BD8D7CB0DE619B1C26 -:100670001A21911D5CF86C19F33FB784F88FA2FC26 -:10068000AC58389C29DBF0DC3314361AF7A6927F7D -:1006900026D6B5CB5B5EDEA7B87AAF6BABC0D737DB -:1006A0002CF55ECFF6560F5E6F5D8B71E40F14472D -:1006B0000ADFB8C719C473EC187BE90617F2F761B3 -:1006C00051CFF56E54AB7713EDE88ABD4A2E613FEA -:1006D0000765A07A48AF7B13ED08E049AD0E10F432 -:1006E000A7FAFBCC8F44DEFA8AFCBE5FBC7D6B347C -:1006F0005464C8338556CC2FA89FCEBFC9B0952E61 -:100700005CC673E87AC88ED93F3CB4E5DD41257CF0 -:100710003D40756D15E5055C3FD923897597EF79E7 -:10072000775046EC3EAC3A6E980F4F48FB0CE3B561 -:1007300059C6F1D393F7C53FDF5B3CAADCF488557B -:10074000C5385DF9ACC4F92AF1BE7E9EA97B93142D -:100750008A9BE6661BF753554E051407554D98477F -:100760007AC8EB7A7C982B434D4F716E80B6EE8C35 -:10077000BD4920FF8C758FA2ADD07902FF25F2CD47 -:10078000D1BE0AF8E2F6C9F288FAAF23ADEE9FBEF9 -:10079000C3791D7F063789BE234DC4DD8286D326EB -:1007A00013E5BF3EC25E0A9C11533AD2E8E2E40070 -:1007B000A03F552F4909980AF1FEF0CE4FECA8FA58 -:1007C000519E412FD8516F9F994C86FC13A5988755 -:1007D00063CFCECCB9947F6EDF9B1436FD0C7E3C8C -:1007E0005473202D2C177EFF00D98DD84701F48F2C -:1007F000EADF81BEAF427182F8A7F132CF90A3CF7A -:10080000E2BAD507451CC0DB8EC47EF6BEB87E16A4 -:100810003609FFB5E32FD53B55109AE620DC208C36 -:10082000FE0FBF9CFFCFF43832B8CE213FBFB9BB1B -:100830005FEB7E5F7D58F8FDF9E66F3FA2387F1EC3 -:10084000F35FBCDFEB72D3FDBDFA7999FD52BF7E39 -:10085000AE599E1EEA41CE65BA5F296EF6D75AA7F9 -:10086000D8B776E2C5BB28CFD5B6A086A4EEFBE804 -:10087000B47ABD0CAEB87D76ECB62D0E39627C44F0 -:10088000F5FCDAF26DFAE43C41D750FE853A2DFED4 -:1008900088BA06F3AA2583F2EA2CC9BD0DC9E196F0 -:1008A00081E524BFC312845D1E5EE21E3B9EEF6E97 -:1008B000B11C5D77507D06993966DAE72E4DAF772A -:1008C0006BF8D2EC96D92328DE7FD2B0F0B042513B -:1008D000CE93CDFBFD1A025C1F1E4EF30D5D89E722 -:1008E0009C1914767E38ADB39DF0A8C31393A5A0D0 -:1008F000C4EBAF8DAFFF0E5B7C436B982F0D97520F -:1009000046CB3F26FF847E598B8BA8CF8024FA3BB1 -:10091000F603F3A0A719675802A17D0AEE5BE50E66 -:10092000739DBA0C042E9058DF574DF8DA4AF9211E -:10093000B11F9DDCB4E78854D0038E9160B7D7C255 -:100940002D12FBE0DEF0871FD27DDB3C71F8616287 -:10095000BD7EA52ED5EBAA6DC9A1AD789EB727FEA9 -:10096000DBB965385EB52DD9497DF7D9976C018A19 -:10097000CF67B7DA4212DE3F9BDED9467DC8D99DEC -:10098000F96E5C012A4DAEFF7C8DF2FC9F2C6C173A -:10099000006EE11F57ECF4D16314EF6AB7A548402D -:1009A000F5B52AEEEB3DA0FC6A0AD7094B760D0A95 -:1009B000D9A4589E21FF706169716673924245FF08 -:1009C000D90377F725FCAADDF4FA30C6C3E4278EF5 -:1009D0003D86CF2D7B25C543F504E401EB6DF1D6B3 -:1009E000515BA83E7ED1A2EE27FE2B5EBD63601652 -:1009F000ADFF717F207EA2CDBB06507D14ABDB7BAB -:100A0000AEF7CE3767F785BC989C743C71FD1FD755 -:100A1000F848EFC9928BAF9BA146194C76D1340BA5 -:100A2000685D8F2C29E4979D1B92B94E4DB4BB6332 -:100A30001ED1A72CD7F1877E60CF24FF5181E5100E -:100A4000DD90BB7523CAE93B4FBA96AF3B47DE95B5 -:100A50001F6F9F6D556F917D6EB2312ED29E64AC2B -:100A60001B74FABF9E34DEA7D27EC1804354ADBE54 -:100A7000641CE761BF87CF7B82AEE24790AED4E4CF -:100A8000DF35DAD7E1C1E797D6FFFE8DF7582E9B09 -:100A9000FEF133DAF78043E031EF09F925F60395EB -:100AA00076817B006CE1F3EAD74F6FFEB480ECF007 -:100AB0007463EE48D2E342B9F5D48BC8E7B994D653 -:100AC000638F23DD79E023D64BE27913F19B7649DE -:100AD000627E97131F78FD1EAF4F2EEECFEECC7DBA -:100AE000DCC28DF92CBFA9725E5FD263F46C2FFD5E -:100AF0008A764E7D7DFD7CFAFAFA3C67B1D0D7FB51 -:100B00001AFEDE616D3D47FAED782357227CF0CA6C -:100B1000F5F4D682B4387BF9A570F97B357CE4888E -:100B200069CD6FAC688FEDF5CF58D4F8B8F713F1F5 -:100B3000F82BF5A0022EE700914A386F2173661C4E -:100B40004FD4C7E40C389EA01D4FA2F3A05F4ED433 -:100B5000282C5533196FA7F590264188C7C1C96E57 -:100B600017D149928F710FBD6F98063543880F9347 -:100B70003DC238E15AC227B16E999DB6EE8E2CDC8B -:100B80006F6D7F5847F5CC5A8BF08BC08264EEE7CF -:100B90007439E979069C7986FCB2D6092E33AE33D6 -:100BA000C70CEB2DE962DE8D28E7C30716BE4BB8F4 -:100BB000EBA7E69AFEB4EF51C7B3F99289EABC50AD -:100BC0000AF58C9F7DF427EFDF70EEE7A04CA4BA06 -:100BD000E29EFD768EFB89F8C42250795C0911CB28 -:100BE000057CEE8BB13F6CDB0B31BEBE18F75D238D -:100BF000F509F7A53DE9A5E703E5904379E96252D8 -:100C00006A01F1B3DA2EE8A37D52B7123DEB74040A -:100C10000897BD98342C44F9F445497D80EC199F20 -:100C2000E33E36702C3944F9EE5159AD621C3ACD91 -:100C30000A12CE8FF6D7E4D2012C97A8459BFF8DE0 -:100C40008BC725151EC629E1A28BE3F2F884BC539D -:100C5000926B12FDD98F62FEC44EB321EF94146AD9 -:100C600078CEDF5D5CA74EFADE7CD5BC74B958F453 -:100C7000BB25FD4C353DD58BCF68F783109605CE4F -:100C800023EA85F157EC4B91498F55DAB88AF21A6D -:100C9000DA5534D51E9091DFF1CDC2CEC69BC37B11 -:100CA00088629485D5545F3461DED3CF817105327B -:100CB00073D91EC6E9768A6BCDC379EBA41AEE63AD -:100CC000EC54D720DD28B5F2397E059D4C152D9FBB -:100CD00097839BE914F031453B653A1DEA98DE069F -:100CE000F54C6740ABC8FFA3C341CE6BF08493FBC8 -:100CF000C15B2B4D547794FCBAE7FEA1518B27BD05 -:100D0000CB011DAFF4A7CB611AA0FF65F7208F219F -:100D1000391C4712E591E8A7132122B39F5280C8DE -:100D200026FCC0C5FE5A010A8FA75EA71CCA22AACC -:100D300099F19B447954F46C17BB35BBA8255BEB48 -:100D40001FD35357B18BC7BABED0BF32A90E4DD4F3 -:100D5000A37EBD24B9BCCB85A1F8B35D27E79A314A -:100D60002F951497AFCCC6717BF1B773CD98CF4A4E -:100D7000C697EF1A8EE373BBBE13E3C2F2628B1BFE -:100D8000BB983517E74EC1F92AF9672151F4438A18 -:100D900067AAE88F5769758CBAE6376E27FA8B3ADF -:100DA000D4E1263EED58EC133E2A678BF78EC3A69E -:100DB00087F75A70DE498B7A98FC77853D9CEA422A -:100DC000F9AF5A33752085CEA7AC62BECD26705AD6 -:100DD0009D3FBC1E48C2F1CE9DB92BA5E1D73E0771 -:100DE000AEFF25ADAFAE191120FF551B25B7D06C56 -:100DF000F9C03928C3F6560B106EAAEFF7E468F570 -:100E00000CE747979BE3F760ADCE69DF999B4B7A80 -:100E1000EA2A163818646415931C8F8FF675D1FC76 -:100E2000688AB0B72ECAE5DEDEE9E012E51B9A9FBC -:100E3000783DFA151E009F3797A817E97E75F26571 -:100E4000CEFBE78A3E5E17C98AD9AD844A9B87FCF0 -:100E500007150859393F4C705EA95329DE2DC2751C -:100E6000501E253E3548216ECCBCCE528AABB8AE62 -:100E7000A904F7A9B6468615E173CFDE7DCC2AEC2E -:100E80006E88B03B2D2EB5EC3EF8F86031F4419CF5 -:100E90009F55EFBEF4DDE728BFEAF30E374D8FF91B -:100EA000D70B2BB9DF0487218EE87E37AEC9C6F594 -:100EB000F6F8E6518B68DEC48FDBB289AF496D115D -:100EC0007E8F166DF974B03887DE875C947E4E3E57 -:100ED0003EADE589D3769117E8BD30F77B8DE2BD55 -:100EE00070AD8673D6B648A100C71FD13F2FD6F884 -:100EF0005B71B0711FE1278B373D3883ED2824FAF1 -:100F00000A17FE525C587A44F4CDCBB61BFB8D6AAF -:100F1000EA9B693E84AD640F2BEA13EE6FAAE0BE34 -:100F2000B93A3EFEF7D0377B4B347C6C280C65BE5B -:100F3000E4797DD51EE261625F5C05CA8412AE7BF6 -:100F40007D32EDEF35F78C3FF42FD0DF9389FABD7A -:100F500052DB9BE4E460B958B99FA8DDBCD2EDA494 -:100F6000B1E6B75B4CD453E3C4773E80F8E7743FF7 -:100F70005EB25EE2BE0336F5631B2C7CC5A610BFD5 -:100F800085AF0CE43E04FB25AE0FB7BC625B4FE3BC -:100F9000E0EFFA04E442C2A13B6F201C269884F5DE -:100FA000A6C0F341F2300EC3B8C823255ADCD7EAF5 -:100FB00000081719FAF9A096FF6B53460EC4CE39F4 -:100FC00036EFC020437F12D4EAED123A27D58DDBED -:100FD0006F10F793041F7B3EFC8764AA7B1BCDBE7A -:100FE00064C2B5CF1F1ACE7D4C6F72F7621A82AB06 -:100FF000BCA7F47E3A23FB6A7A2B79DE2CE4A5D9D0 -:10100000ED9B7E05BEB4C4F4A2F337557EADC24A53 -:10101000B8C843E0249CA4F6E0CB413BF5851B8097 -:101020001188F320ECF9FC1913BF772F859C7F9D65 -:101030008063EF19B33B84CF37687191DE3FBBE229 -:10104000ECCCA6E1BF49AE3EE08AEBA39373D20D90 -:10105000E314F70D86E7FA960D37DC47796FA5F5AF -:1010600021A0B4E695C6EADE3465B4E1B9A752A77B -:101070001D60BF6F7D9871A97ED33DC6F3C8CD3288 -:10108000C503B820EAA532FC257F1B038120E96354 -:101090005CBBB18E2A8BD471DF9874C86CC0016CB4 -:1010A000D7C0A5B6907F519C1C024344DC4894B73E -:1010B000F1FB8BDA8332D77BB543B150CDEA49DE01 -:1010C0003719E4ADFBA32EF7FE3EA3DC07CE31CAF1 -:1010D0007B906A94F7E0C546790FAD31CAFBC6D55F -:1010E00046B966058C72CC5E3FCE307F445DB961F7 -:1010F0007CF3F3B719E68F0ADD6518E76EBFD730CA -:101100003FBF7EA1E17E61D3D2EBD27F51B8D63012 -:101110002F51FFC5077E7B55FD07F057E81F581F6D -:1011200065A88FB0EBFFCF0E4EE87156B783EB8CFE -:10113000B36F92CF329E302112203B284B663B99F1 -:10114000992CE2CEFB07CE1F5270FC81ABD892499E -:101150007596563FF8B438A4F733897DE39D655200 -:10116000C2FBFE24C3FBFE6B7D57E76D0D1BC6451E -:101170008780BF9BF11C71BF4DD47B5261B8ABF42B -:101180004CCDDB44C75EE0B4DDAD5FD5BFCF4BECEB -:10119000B760F9217EAF384F7F2F434E51DA1D9F44 -:1011A000D4FB31BDCF4DEC7FF5BEB77B9F26EA98CF -:1011B000EEFD863BD3CC75B4CA75F57E49659C734C -:1011C000CB2875B0D74B4D00F6C926EA93234121B1 -:1011D0004C05E83D7494FEA72224F0CCBD84C7479B -:1011E000D380F17345AABB3790C7C777464A057CC1 -:1011F000443FC55E758417F57A4272AE2B267C6239 -:10120000DCD7C3A81EC9F18A3ACF26A3A4302F0D7C -:101210009CA7005DFF215D19E5F5C6F092DEEC2686 -:10122000F1FBA4067F98A9D9E9E6EF9712F1C588EA -:10123000C9C5F569E0B7127FF7F3351D6E6CAC8E4A -:1012400039BFDEC2750C68FDFCFD9AFC75DC639E3F -:10125000C6CF095C6231E6E5FB9BF6B35E9665B6E8 -:101260006B78490DD7E30F0E7178F87B38A5D82D30 -:1012700070321D07192CFF94BAEB5AFC2FCB3C6B34 -:10128000C0A1E0B57ED7F5BE3CC6B758FFC4068105 -:10129000679ED83094F1F3D8FAE7188FBABFE643C7 -:1012A000837FCC5F7DD4E00F0B02C70DF723199D20 -:1012B00016C21F236F0C9A761FCAAFA3D1564AFAE3 -:1012C000403B7898F4AAAF1FD9903B85F6BD369F76 -:1012D0005FF339DAFCADAC5F9DCF63FE233C8EF843 -:1012E0002309DFA7093E759C43A7D6BD9063A6F7E7 -:1012F00089521F37E1CABDE11FBA9F994A87F33A65 -:10130000174DAE530227AA1943F55FDBE401E574DC -:10131000EEB6A156B3A023C57850995D8CA74D2792 -:101320001AB538D6132ED22689EF89E649CA4B0B57 -:1013300070DFC747A94F913F542FED2C20FFAB2EF4 -:101340008C3C20E1FA5DFDD58D241F09DB8B41E942 -:10135000CC077F7776C6142890D055F679BFBC9716 -:10136000FAC4337D02E7A842D9DD784C8CADC21FA8 -:10137000DFF71E60FF3B898B119F813F4B029F72FD -:1013800044ACB3709D8CFEEA73B42F7D4F46EFF7EB -:10139000E83AD9A78E97462DA24E8C6AF5E266AF41 -:1013A000A8675F4AA04D54E312FE4894E3F5D323A7 -:1013B000094F3FBFC90654DFE2FE8AA924F6FDCAE1 -:1013C00000E485EAD877ADA2CFF4FCC516A638A50F -:1013D000E3AAAF7BB378BD8C6C819766FC33C62DD6 -:1013E000F2C348EBB0592971E73D048C6377101EB6 -:1013F0001D8763BFEE15FD3A3C24E25EC786C18CB3 -:10140000B7AF3878E218C5AF7BBC6A23C975A1C9EC -:1014100055CADF67A5EE61DC6CBFD7C5FBE27999E1 -:101420005F8C436B494F2BEC11C6D9AE85ABF7C629 -:101430007FC7A2D6E7F21847761590DDE8FBE239C0 -:10144000F67BE3F06FFD1CB175AEEE073A3EAC8F54 -:101450004F6F7E6AA486EFCFF7F5905F8F69726950 -:10146000B3F48CC75FF28AF778DDF4733300E1FFE1 -:10147000B63E98FB917EED15FC77CC457E18DF508B -:101480008A48BF2BEE72B849CEFAFAB88EFAFA55EE -:10149000F6E91AEDFB8AF85F5A23F07BFD7E5412C1 -:1014A0007A0D6C1078EA8ADD478F3D8EBB2C79353A -:1014B000BF98F281FE7CA29C51BE23F9FB3B59BC34 -:1014C000FF42F99EA7F51371FB9F2BD7E850F19EC1 -:1014D00036BAE5D230FA3E6D057D0F5740F621F061 -:1014E0002F6830E25A28AF00E11BDDDF6B01BF1F20 -:1014F000B369F9C4A63F3FC46C78BE3EC597548A11 -:10150000E77F438B1B383F64A2EFB9B5F8D4A0F551 -:10151000DD89F84B43ABC04D1B32AD5C4753FD43F7 -:10152000F7F5FA67D58702375D9525EA6C3A27E922 -:10153000593AB28FEB852BB8B884F91EE5986E55F1 -:101540008794923FA92B399FC937A29EE97DC85F36 -:101550006FD37004911FBD5A3EF4D23A74AEBCBE34 -:101560009C274BB47DB1BF60FC6E2CA85AFDA0E156 -:101570006F1BF619F087FF037A5FA88030310000F7 -:1015800000000000000000001F8B080000000000A9 -:10159000000BFB51CFC0F0030947B0A3F20FA0F13D -:1015A00067B2A1F2B3B950F9875950F9FE68FAD180 -:1015B000713B13030323137E35F8B0083303830C08 -:1015C00010AB00B10E33F9E680B089280343A904BB -:1015D00003030F906604D23E405C06C4FE407E27A3 -:1015E00010CF0262197106864B405A5E8C81E1A5CC -:1015F00028449F2D90FD438C3C3BAD792973F32803 -:10160000A60C5BCAA2F285D41818BCD51918266B93 -:1016100040F80648F2AB8062C26A10F611790606FD -:101620003D205F5D16BBB94781F2FA40F9DD1AF83B -:10163000EDDFA183CA773543E5E7A1C937BAA0F248 -:1016400035DC50F9AAEE101A00B1C92A3BD80300C4 -:1016500000000000000000001F8B080000000000D8 -:10166000000BCD7D0B7C54D599F8B98FB9736732D7 -:1016700033B949263079C14D081030E02484808A7E -:10168000701322449BC204698BBB6C77C4D646148A -:1016900008EA6A7C6C33790701096A77295A3AB1FA -:1016A000A2A0B44D5DDC3FB5D69D40DCD2D6D6A01D -:1016B00058E9AE6D23F5DF5A57D9A052A9D2B2E747 -:1016C000FBCEB9997B6F2609E8EEFE363E6ECEBDA5 -:1016D000E7F19DEF7CEFF39D1345F4106D0921E7D1 -:1016E000E1873E5F25F4273BF924A48790F9F01C9D -:1016F000922373E019E3EFD933B8B64F2045581C55 -:101700002495841410F653D0D4B9599C4BC8641254 -:10171000FEF1CC425A1EBABE8E0468F9F5ABFF004A -:10172000CFCED5D5B557E984E4ACE93BB69C3E8332 -:1017300091B8102D25E4412212920BFD15C7AA7C09 -:1017400084B44367971332299663C44AA160D002D8 -:10175000217FA7F28188A8CBB4ECC75F93F3309FB9 -:1017600084282451821585F3EED1ED9DF5CDA71F78 -:10177000DA99750AE1FFB71298DF44EDC8ED6CBC49 -:1017800018FDE73CC54B5E727CEC27A7C152268052 -:101790001FFB776304EF9BFF57C6CB25E51EBD8279 -:1017A000CEB74ED4E2509FF465C8B41CBC452609A0 -:1017B000817EAFE8115CFAC4EBD249486D9F0FF10E -:1017C0002BD4FB93F07D8E08389F2977BFD9DB158A -:1017D00024E4CC5A5F18E94323242B73F47CBED64F -:1017E0004C48C26D29AFAE16A2385EF8C7C5B47DAD -:1017F0006CB518DE0BF0D4ADCA80F766BD3BF93886 -:10180000A3E983E832C5A3CCE943AE130DCFDC4F87 -:101810004F1FF227A48FECDB2DEDC8C5AF17E27D7B -:10182000FE85D3C7A71DCF5CD7D17CD582704CB9BC -:10183000BBD843E8FA3F50BB2A3D9AA2DED8EB5A08 -:101840008EFC1EAC23463C45BB2DB09E38CF984D38 -:10185000DEE093AE8F34B2BCB7D9D64B9A5CB9A652 -:10186000771C7C4841FB7CCD7E9526497F338B16C7 -:10187000654D84FE64DE5FA7B62E46806E81B62974 -:101880003EA49EB204A1FC414224BC974320D2B2A4 -:10189000A219F1FB0428C5715D4CF8D462D1369EC3 -:1018A0002BDF6B5B0FB2262658E1579A1484430650 -:1018B00036E1F22E82C28DC10D439C9F06E57B6C02 -:1018C000EB2FFB48C243E5EA96E272625D07934E56 -:1018D00005C1A4D37B2E4CAE38C75B6D87F382DB8A -:1018E000F964FD77669BA2F1DAC9E477269E28F2B7 -:1018F0005E815F2CEBDEE52287844B0969CBEF8CA0 -:10190000C1DB2EF8DF65489F20B448577EB906F446 -:1019100044F60932C0E931C9239489F57A898EF4F5 -:101920001413EE20504FF245104FE6F7B1E1E27488 -:101930001733FA8B69BF9FE5DD7E96EB3352E17A70 -:1019400073C884BB08E7912CD379BC7B17FD1FA516 -:101950008F589910DF2B8CFE5E07FA90CAA33A7855 -:101960006F91276EC12ECFEAF8B723CFBC36631E26 -:10197000A5C7C1B044405CB53EE3366A68FFC7AE58 -:1019800014E26E81C34BEBAFE070BE686415007D5E -:101990000ED6B8917E572CFF3008E47BEAD02B722C -:1019A0002A7E5DB1C8958483FEB7C93A3FFADF2429 -:1019B0001803F9B206E9C8846B43B984700C2E127F -:1019C000E230CEC0AF7E7FFF1514CE172B84B05B04 -:1019D0004778FD848E3768BC1F1C4F4E10737C9D6A -:1019E00068804FE7F823EBA186D7005F36688A7ED0 -:1019F0001F1DEF66297C14F41899CCF4438336A399 -:101A000006D64712187D2C1572B05D9BAF7512AECD -:101A1000BBB436A5BC6AA08A422B87EFDB668C0B71 -:101A200067DC353C64A1EBA6D70BEF1FB0C039478C -:101A3000F0077F97467F594016C03ABFE75B959EF7 -:101A40002063F7F776B3DA22BB08F9B059BF7FC03D -:101A500035FAFBCD1269EC2B1DFDFE1A41E5F88825 -:101A600029609F99F31E99A72F88F47D33885F4AD8 -:101A7000EA37EFF3B4C856F9E398C7087E3F613BF5 -:101A800035786B2C57077E8BAE14A01F99FE5399A7 -:101A9000E4C79B0FD433BE73C0DB11FCEF81772208 -:101AA0003E7ECFD7DA09F66A9B8BD14B7BB6186E98 -:101AB00025A3E9C55C0F138F17BA1EDB040FF2874D -:101AC00049470DE2DA71D77D223ABA03E8E892FF7E -:101AD000793A7A10E868FEFF493ADAF57F918E92FA -:101AE000E5E5682FACE47DF50FFDF62190CFBF3022 -:101AF00024947BBF58C4E4FF2FA24C2E0E92E8F62C -:101B0000F9A00F8E4B28A7068D363FC24B4D629829 -:101B100007FA5D94FE5E017B692695EBCD2A3EE9CE -:101B2000EC0B56D1EFC7AEFA301FF4D731BAB6601E -:101B30007F13326C18B4FD4B23656A8043D9C3CA46 -:101B4000C32D6763609F0F0AACFC2F2D678D188E25 -:101B5000B7AD7339C5E74AF895C2B17A9160C453FD -:101B6000D0C54F0485E1A586D8F42A5D979F0894D7 -:101B70005ED4C866B4AB098910F40F8BA99D60B11F -:101B80002F9A4081815CAE71A3FE73F6FF12B70BF2 -:101B90009D76DCEA45652ED017EEC86979883E57F8 -:101BA00046042C03FE350BDCA22118A007228BDC97 -:101BB0008F82FE8BC8C4A5A5E0D79586DB66779D8E -:101BC000E67A8CE2650DF35BB482FA39C9FAA74D67 -:101BD000FDEB98CF587461CEC32C5FBBE8F4401680 -:101BE000CCBB56084F8786AA56F045BFB5FF34D305 -:101BF000BEF103DE7EB1E6DA74460751D4AB263D72 -:101C0000FDF88DAFB860FE647516D2E5EA3AC96694 -:101C10004FAEAA49B3953FBFE8DA71ED7012B5E057 -:101C2000C142F7813C82744A7E43ED144AA7B1EA6F -:101C3000E128DA2D2705BD8D96D317374D857EEF28 -:101C40001133B1BEB0B869E610DA5BCB90FED37841 -:101C50009FE94AE3EF8B40AE4E17C9A33AD8A3E3FE -:101C6000FB051D9CCECDB22B188D09743DF5985601 -:101C70002E8D83EFB821D6A6F21BA6896CDD3A62C1 -:101C8000ABB4620068C02E37326A1AD1FE33EB5310 -:101C90003A9E2666C3B8317C3F42C7DD745EB49D70 -:101CA00097D922247DF6AA7432CE3CDA1DEB4FC5BB -:101CB000BF914ACEDECCE1238758FFA64C4ACFA481 -:101CC000FDA7A86F3EBB78FF67C322190438E588DB -:101CD0008AFC50524DACFD10A30CCB0A2FBA431115 -:101CE000B590E2D35D2AC2344847E9A386AC031E0F -:101CF00062B8DE5BE9DAE65BF872EB9F25F4F36F1E -:101D0000168B5A406E6CEDBF89E8141FDE509C6044 -:101D100079CE8D2AE0692B75B206617CB98F001CE3 -:101D200069F9F4773A4E9A46E23AED4FD6FB122221 -:101D30002DCBB5246CD04F7E2D2C78A99C381C2A35 -:101D40006A91E9FBF6B504E52301E961A19FF6D0AC -:101D5000CB8604F4B3868401E0F6E03A9C6767E939 -:101D6000BAEE42FAFE4C9D8CF103728EC26BFAF50C -:101D7000D4CFF0961003C6DB9A43E23EB4830DC481 -:101D8000AFA2B1F5D3771593C43CFA3DA3B21FC6F9 -:101D90008FFD3D617C49985C93B93C2132A53F1889 -:101DA000BF490BDF9782FE5412BD499C6F59672DC6 -:101DB000827EAC136FE90AB906F0DB5E46F9208536 -:101DC000DCBB4314910EE2E1552B8B528C738FA830 -:101DD000A37C32CBFA5905E11FAB7EB29E4C12595F -:101DE000D0B521005E482488F3CB24233F0694B36A -:101DF000F87C279146AC175AD8D30FFC966BF45554 -:101E0000012EBEE6FFFC315C37F28806762C85B6E3 -:101E1000F87C56525E80CE81F9BD1716D1EFF08B5B -:101E200009CDA01DF83D8321747E758271B9746857 -:101E30004201BEAF596D07BB2440C2027CF787E563 -:101E400098D5AE4F27B46C8BA790E3C59584897C59 -:101E5000FCAEF503EB68258D9702300F068C7F05ED -:101E6000BF699B3F8A7ED8879EC05C18EC4E6FE0AE -:101E700051787EE8991247FF2CCCFC2D95FE03F299 -:101E80002E7DA16CF36F320C7B39CBE1872D937CD7 -:101E900038CF8CCF12EE5F1975D32725E1A210D56C -:101EA00003BDECAC9109F8FF3E1F83C7842F4BBAEA -:101EB0007701EAC7B07C12E0A0684138CE90730980 -:101EC00058E24009C1F82985EBA403AE930EB84E41 -:101ED0005AE16A52D97C9DF662AC9A943452E07E03 -:101EE0002872FF83DA4D60379E21EF18B540389194 -:101EF0006B50CF0634D6C6A70E62B042231AD281E9 -:101F0000D36EA4EBF49ECDFF5AC8CB3A11601E14D9 -:101F10004EFB77928FF48265898CC485D72D34F17E -:101F2000A57FE1DF29FFDD74D44580BF281F4BF07A -:101F3000DDC5BFDEC4E3C3EBC0BFA6F8FB12890456 -:101F400000BE77898871A877C9CB81791639794A1B -:101F5000E4F6092CB1958F493804725CF6750E4A87 -:101F6000014483496FC2795CC73093F33E467731B1 -:101F7000A2B6A03EEC66FEA7194FFD728FDD1FFED4 -:101F8000CA2E7BF946B26A12C44B6F7CC845E2B4D4 -:101F9000DF9BACFE3D5DA757450DE1FB0A69EC04F4 -:101FA000BBA4CBC5EC8D751A9121FEB9E1FF7DA3D1 -:101FB000F27A3A9F33200FE683FD4EC1B7E891F5E0 -:101FC000C1B862948E9E5F9B105E718530F6FCBA3C -:101FD0005C832BC0FF8E6D77A19D499C71D08312CD -:101FE000C6412DED10DE1BBAEDF39B68FECEF91253 -:101FF000F200CE77FDBEEBD13E1F6B3ECABED4F6DB -:10200000A64F126C711F93AF4D7A77F27785A4B308 -:10201000B80E558368AFFC3A2DDE86EBDBB800D6F0 -:1020200077A2F69741FBEC4FDE7EF1A71C7FE90417 -:10203000ED37A8C3CB60BDB7047B22C09F661C6B85 -:1020400023891979F457D7739B6360BA8DD40B5DDC -:1020500060BD7C5A4FBA807AC5E3F7778ADB253FAB -:102060003AF02D05ECD4779F7C6305D80137FF400B -:10207000222AA5875307FC2481F64A5C01FB663DB2 -:10208000A5BB38961395D75AEC614AD1B80E377F65 -:10209000D78F76C4FAA7DDF13ADA7EFD3FFF762EC0 -:1020A000A17838D53AFCAF7940CF4F0A2CEE1A1BF5 -:1020B0009A7B2D7DBF5E267F1B494147D74B8C9F66 -:1020C000DEF97EDA1AB013857DFD5FC47EFBBEE0CB -:1020D000725BF4F11AC985E3D27AE847C4F60BF1D2 -:1020E000E90283CFEA0F98F1EE77F60B0CBE43AE10 -:1020F000B807E0DBD7AB4469BD4DFB4E235D2FFD38 -:10210000EEB70380874D87EC76FAA67D52C23D1765 -:102110009F6FC01334A85009F864FCBCF1E006D4EA -:102120001B1BFBB69E067EDE74C86593FF142FE171 -:1021300004E0F535295C07E57F7A22A05354BD3DC4 -:10214000B8370078A5FD5EAF50BA5AB9D0DE0EFAA6 -:102150003F9B39BA3FEA19A2DFBCA96F0B1BEFE026 -:10216000677F0FF27613617ACAE4E7B7E1979CD1F3 -:102170007A668B648F6F9D212F56E23EE0BEAC9451 -:10218000FEB3A9574CBEBEF9DB67F6C4E8F8EF3CD6 -:10219000FD1F7B62741EB7FCE5FD3DF7D0F991E7AA -:1021A0003D1AC8AB4D4FBE1A2016FC3F26B1FD802C -:1021B00053FB9F787C37E59353BF74A31D78EA8760 -:1021C000BF9FA2D3F99FFADE9F26819D7AFB0FAFB6 -:1021D0009A0CF8B8FD99A593C7B3D7816EE36EEB5F -:1021E000FAC6B17FFD90009B20843CC79F8E753A54 -:1021F00072504A4088E0DD13EEB89BE267137DD74A -:10220000540EEBB601F51594EFA5F8DE78A0EBB40B -:10221000343715DE637962089E893C128275BF7679 -:10222000E59515F0748575A013328C7AC2D96ED3FA -:1022300071BABE978EBD9ED49E5000FF9B0E6C61FE -:10224000E3F6D1F50C8C5ECF77E197CB46AFE71183 -:10225000C91E673A436EF9E66EF878300BD77FAC4B -:10226000F5DCF0CCE7C6F5EF4CF930119E1B040607 -:10227000D70EC97845027E7CFAA9C77707D93AD725 -:1022800051C49CFAF69929B0C9FB966BF88B2027AC -:10229000877FE8D6C0AE5EFFC3D790EF4E3D734C4C -:1022A000D1717F9AF804AA274F91919F41D09B1B2F -:1022B0000556D8F4983FE10E24D76B63BCBE560F89 -:1022C000E0FB37F07D9CF1C3C678FF6A21C5FAF9BF -:1022D000E422A69FE2D988970DFAA0A2F9ECEB2A96 -:1022E0002C84F57C6319D0DF58EB69CE5F83F92F1E -:1022F000B0ACEB638C8FC7E2D753BD6E59481FBD9E -:10230000CEA7B85DB1292EBC966ADD096965F1BD1D -:1023100031E2DEE6D349178A6CE773B3BD39FF8932 -:10232000F87CE2795D1CDECE707DEDC4DF3BE752C8 -:10233000EB812259E07AABA736D7A2EF3C2EAAC791 -:102340000AC1EE6C8CE51526E1EDEC9350BEBFB3EF -:102350004F427BDF2927368EE1D787CD710EF5CF2F -:102360000579F6CEE1EF737A64F4BEF1C01B4A8CB6 -:10237000EB85B8552F407F29D6E372DEDFA6E75202 -:10238000F7B7E9C0E994FDBD2D1B5F00F8DF1E74AF -:102390009118EDE2ED3E29659CA45876D9ECAC4E3F -:1023A0007FE58974DA4E0A787598775BABF15A0C41 -:1023B000EC91975D04ED4739FC969B7E6FF37B7142 -:1023C000BFA52D7023D12DFABBDD81273914413FE4 -:1023D0005A0E462AD85E68DCE6CFBA34D106379169 -:1023E00063F9B0CFF9F3C2DFCBD02FC4D3744B5C09 -:1023F000E8259974403CED254308B79014712D47AA -:10240000FF914512D1AD74664C15ADF1C5C0E1BB6D -:1024100030AED1441A13106F22F9A46FAFA5DF4775 -:102420009A7516778D4C15ADF13F7763A3E1A670D1 -:10243000E4DFAE1581FF36D6F8058DF67D5F73FCBF -:102440005B793C82EC7BF2C92769792A7C13810E87 -:102450002306C2718EED2B2FE5F2F047DC7E3E2C79 -:102460009001B0C36AEF8DCA20EF84D0F518175DD4 -:10247000967FBDBCCE428FCB42A77340AF7EF3CFD9 -:10248000D29A54747A88D355CBDF3F9E03ED777B85 -:10249000BE90CF9CD908C297C7E35D03D9CB7D100E -:1024A000DFEBBF69D98B33E87C73358940BC269755 -:1024B00054F9CA289C79C7A5B027C53A98CF3D3CA6 -:1024C000AEF768B386F2FFB1E610961FE778DDD766 -:1024D0005C82CF279BC3F8FD40F3422CF735D7E24F -:1024E000F3E9E608BE0FDCFD6CBF0278F92AE98348 -:1024F00078CDC1E635F8FD9F9BA3F8DCCBE7B30CA4 -:10250000F0E2B3CD1FE33187DA97B4423CC6C4A3EF -:1025100013EF4B486CC08DFBF9820E78BF4B66F20F -:10252000C589DF29EE3E01E44BD32D04EDD73D3CB8 -:102530006E6CCEF7EB32B3370F72787EE0897E4750 -:10254000A6CFF76A8B4BD12E229130C8EF3D4224A3 -:10255000BD8C5679217B41C82A87A7FAA30765CB92 -:10256000BEC2946E16EFD92D337935553FDD9F41AC -:10257000F1509B2FE8104E30E77BB84ACF073979EE -:10258000581070BD6BF3255262A17BB3BF6FC82298 -:10259000DFDF482DB79374CCE441E6D57209F8B576 -:1025A0006788372C517E7F3E871C24D4FE781EE836 -:1025B00012E4C2AFD2304E6CFA37DBF87A670251C0 -:1025C00040BEC4EBFE38C89FB1FC9E4E5EFF3D0E80 -:1025D000D70639F28A8CFBCA3CFE4A1218C784948B -:1025E00023A0C7DD9EB53B6AE8F3FECBDF3E01F1D9 -:1025F000C1779FF1E800D7F68A93012B1E4983FC2F -:102600008E753F7E44DE9CCDC3B8D8FF27D137649A -:10261000AB1C0A0E2BD0FE7941DF09FBD7B1572541 -:10262000E4BFE785F82C8C63C904FD82E76F0A617B -:102630007E87D9CE1FB6F377A667E8E14D30EF0667 -:10264000251C4BC117BF49D36DFB46EE90BD7D08DD -:1026500074E67C56D6297D96F1798765430238E683 -:1026600093283E17101D9F39AEE847308F79A42F6D -:1026700007CAAD6953AE60FB07FF6378535DFF0780 -:10268000F166D26BE8F2128483DC2D86A7EBE84D6D -:10269000DAE87CA54BE0F855519EE78EEC4F35FE0D -:1026A000A82088DDB0388996867230D7C3F0D73439 -:1026B000741AE3BBA129C41677EF6810910F76BF97 -:1026C000CEF6F5CE3414ED9C41EB57117D474DE12C -:1026D000E87998FCB15B8DA4A7DA9F329F265F98BA -:1026E000E59D53BF48400EFDE3D42F62DE51EEEB73 -:1026F0001E1DFC8EAA5FEF6F01B9D8F106CBAFF8B3 -:102700009537BAC8353F29673A6E6A9C0A7E50C031 -:102710001F59ECA2F889E4C7AF037977A6F676379C -:102720004EDDC7F25E9AEED577CED4C75E9F3D4DA3 -:10273000E3EFDF98F3DA03F31A67FFC29C97B95E01 -:10274000676A570FDFA8839C294E8FA66837224FF0 -:10275000AE5E3DEEF87BB85EA1F35F6BA5CF294D71 -:102760001AE6B798EDCDF93ADB3BE79BDC07BEB044 -:10277000BCA03E17C9027AFFDEC753FEE925148DBF -:102780001109F434E5CF8D004F2569C43291FB72F5 -:10279000C0BE31E97977E7E339A817E47821E67715 -:1027A0005DE0781D2412A9027E0B8B61ABBD623EF9 -:1027B000DB46E83C81715537970362DABDA1547856 -:1027C0001EE93FDFCEFFDB0861723EA1A29C87407D -:1027D000A146CB854749F97DB4BF06480AA5E35415 -:1027E000C92C1E32EFA8DE2BB1B8AA54EFB7E09186 -:1027F000EF3798F1DD0E722FD174F02BCAFAA1BA1F -:10280000C9A74794E84340A74A48C77C4F57302A96 -:10281000B0FD38B63F54C2ED92ABA4B52AD8254DD1 -:1028200024A2CE06BE3D2E119687C7F8DA6DEE8340 -:10283000713E76733EA61C8CE519FCFB739CBE0EA4 -:10284000817D82F604A3A383DC3EA9191E3EE2A784 -:10285000ED4A067BAA613A4F83BDE206FB248CDF7A -:10286000BF03F60A2D1FC9F8C76B6653BCEC33C40F -:1028700030E0FA40B3C1F8A1B901BF37919877337E -:10288000C8A547440DE0EC7AA4550AD0F27E55C0A5 -:10289000F8C523CD8D583F70CE9B007F73BF9A1033 -:1028A000C01E391326E118C04DDD2398D70C3E8F8A -:1028B000AA370771BBFCF1F87BBFDD41EB3DB8D017 -:1028C0008BFB64267FCD681AD6AE01BEDA7B52DF61 -:1028D0000CF0CFBFD580FADBC245B84FF104C51765 -:1028E000ACD3BE5DEFED1AA4DF0372D766F0836749 -:1028F00016AC427B28A0FEE36D500E684FFD1D3ED6 -:10290000D5EFDF09FA7A665CB4ED9F07D49FDE0548 -:10291000DFAB87C235E9B49F59C707BBAFA6CF8EDF -:10292000F0ED2290787AE61F705FE3B0A07DA907F2 -:10293000E26AD72B48AFC609A305D8D15561CF832A -:10294000CC7E310A690B64F200C53B01BC1B32F43A -:10295000FB96AB10E92C14C8A909D0F2E38F9DFCBB -:10296000F1D5F4FB915DB7A25C743F22A33D36F331 -:102970001BB793AF58E484FB3139655EE95B2E37B2 -:10298000E3A34756F7CCD2197902FFCDDA5BA3A2B5 -:102990009C78D19EE760EE0BF792E85B2EA4676609 -:1029A0009FC81ADB47863D2FD84F240F8B8C4F22B0 -:1029B00051AF35FFB9E4EB6224559CFBAC4BC679B3 -:1029C000B5C76B4A601DE4F377E03E19E9B18F6F3C -:1029D0008E47C73F6B956FB2C6E02A00D54FD7B37D -:1029E0005FF9F71C80FF6CA3A9A712A8A706CAC4A9 -:1029F000C4540ADF030F897148CA3C52CBF4D6761F -:102A000099E50B6EE7E5C7CE91B85098E4A3999C81 -:102A1000DF1E7B4464F65C9CA09E23E7CEA37DE191 -:102A2000E3DF33CB5E56717F2266F8AA2A312B9002 -:102A3000FF58E885E2E8D298D72667C5A64CDBFAAE -:102A400017508BC59E4F5D94AC2F811C3FAE02FD8D -:102A50009EA17E2BD0EF12BE4F5463E6614AE7E69B -:102A6000C1FC1F36F5AC9937E3C893DEDBB8CE0B5B -:102A7000F1C2174CFA696834D0FFD1DC389EB94FE7 -:102A800058724B2406FAD3956FCF9FAE72E4472F4E -:102A900071942F36BE52AE38E3A8DB66211DE801E3 -:102AA0009457C51CCF7B2FA3EE7CFAE838CB48BFE8 -:102AB0003C8E407A02B87EC59C80EEBF5B6A00BF48 -:102AC00020F040798635BF60B9C2ECEE815FB9096C -:102AD000D8F9FB6B548C679A799D2E3EEE0A45C758 -:102AE0007AFB1FBA4385F65DC1220FE0EBC8E5EB28 -:102AF000BD98FFC1F3534DB9DB7AF9FA6B6E0279D9 -:102B0000982DA2EEE9C86FCD857DF9076A54CC3FB8 -:102B10000DA40DF51DA165DF134AF851FA7D7F550F -:102B2000628D356E7387C2F4D7750ADF07DA66CF18 -:102B3000DFA07C709D02F961BE46DCB714559EC7CC -:102B4000EBF0EF4D7C040E5F2716FAD9B3C80FFEE9 -:102B500028A38F38A78F3DDC3F7D04E4BF1BE886A8 -:102B6000C9FF6DDC3F75F63BBD217258013BEC1689 -:102B7000AD1C4251CEF59DD66DB7270A6376393725 -:102B8000D549F78DB9B6FA790D45B6EFFEF06C87E9 -:102B90007D92607A8DB0F5E9F2F8A681DC2EA77AF5 -:102BA00097D9199A18B1EEAB38F47A83CB68562EC0 -:102BB000C2BE09A4451A617D9CF6F456BE3E7F2331 -:102BC0001B5B94F9E8BF6D8527B58F79BEBADDFE32 -:102BD000180527A170CE1917CE872E06CE89F6D9F3 -:102BE0009CFB6B774A915D2FD1E7E274960FD9E198 -:102BF00067FE7C07C45169F9594E874F2912F67F49 -:102C000088CF77711AAD9F82BFCDF8EA73907803B1 -:102C1000F526A7CEB3040B08BFE7A5FEFE9CC2F6BF -:102C2000B3174F1D7F9CE7611CFADCE632BEAF583C -:102C3000E278ED8AF1036B39A1B0FDE79175E17996 -:102C400094A63D7687CBE8B7D64F3EED72D3DC072E -:102C5000C9E6EBE9278CFF5E58B36ECB74CACF4A46 -:102C6000BE0FED9FEC35ED9BC500E41F0D6AE00F34 -:102C700064F37D7CB29AC951735F3DB3CE2E579DEC -:102C8000E7ADDC3C2FDEED3C67C3E5AB931EC7929E -:102C9000AFBF56ECFB1A23F1EB31E8CA19BF6E82C5 -:102CA0005F999DC9EDE048FAAA3963D3E3CF9B87CA -:102CB000B70F4C4F965F82F33329E980ED27060E5C -:102CC000FFA16E7505ECDBB178DA607362F19BD31E -:102CD00093F22BB228E305887B466A3250DEAC08BB -:102CE000FD71FB00F5C7EB8DFEC56F5AE639A851A3 -:102CF00068A78DC32786EB232B7F3D2130FAE9E0BF -:102D0000E3EDE0F874DAD15D62CC0DFD7E40860C17 -:102D100021855F6B9D773BE26DC8077436D6BCC3D7 -:102D20006EC65781858D6188D3B9CF4BC807EEA990 -:102D3000A6DD1246BB659E3B839DFBF015E13E1E62 -:102D4000F5D387FB611D7C2CBFDFD48FEF9BF15443 -:102D5000AEF76ECB60E5ADCD2C7EEC3E72D96B3A12 -:102D60006DE77FD1453CF4FD162AD7210ED84DEDF5 -:102D700078F81EA8182210476FA3F5A316BFBB2D25 -:102D80005CAD819DD05E5AAEEAF4BB34A702CB7233 -:102D900061B9564DC79CEDFEDAD26C8883178B98CB -:102DA000575B4ACB2DD4A44B776B38BF9F97BCE9B8 -:102DB00003FB2C1D9CF3F9C9F57455440D89C2E33E -:102DC0000A69D5908B31A2B7399DD1F78F42BCE407 -:102DD00009215AE9A6F3FF393F7FD5A53496DC0ACD -:102DE0007E8F1C7343FCA04965FB10400FEDF392EE -:102DF000702FE1F855F8B8237E105FCF0FE4A118CB -:102E0000A4B67689A421D5FA5CED6672AE5D33B4C2 -:102E100071E949933FB2E54F2F62FCA404293DA517 -:102E2000883F3AE5357147EADDD9C97C25BAB01A41 -:102E3000F22961F69E79BEE74DC5F89C9BCEA3D5DD -:102E4000C7E5587E26D2297DBFDCFB89E43E8BCFC7 -:102E50001C5E5471AC06FC924117C68B02D3C8DFCE -:102E6000462CF2F6A81B836EF4C9ECA4FB287DC4A3 -:102E700067B2B80401BA49A38A18F6210BC4F8A3B3 -:102E800085006F6FED34DA5F973C9D5AE6C97EAAE4 -:102E90000A98FDBFBDDADB60F503DE4D63FB2F77DB -:102EA000F9AA9E86F995FAE2D5E83E4376E62476BD -:102EB0007E0AE8F8128D0C0922C8C108617A33AC89 -:102EC00032FD5AA3C179298144C9F9B4F1F4A3FDB3 -:102ED0005CD59372BCD50BF808B278977F9780C900 -:102EE00080529F91F08298F4AD6A77337D5102E36E -:102EF000F4577A898FD6FF63BF82F6619F3F4F06F2 -:102F0000BC3E2FAEFB26C49F867FE9C6FCC6BE3FF3 -:102F1000CFC6FCFB3EFF15CB406EF709E42855F603 -:102F2000A4EA6C1E4F362469B0CF17586A10D8E750 -:102F3000187E8184213FD815FAE9E237E7E1C4D34E -:102F4000C485B49D87747B68BBF047DEF79750BAA1 -:102F50007ADA57FEE0A524195731E329CBD2A20F24 -:102F600003DE3A26FD5B03F04D37855342FBD5085F -:102F700001DCE5D922C61F49B62F3E1DE265478315 -:102F800035903F5A2597616A6C60295BEF5F79A3A2 -:102F90007B61BE355A7D0DC4D72B8EEB2867978594 -:102FA000360F40B9F27556EE5018BF40BC8858E451 -:102FB0006ED5D92938BF3E4E27ED2163D010C6E526 -:102FC0001BC7B9037BBE9C950E20CFDD42075197EE -:102FD000950E16523A9863A50343B8183AF82A2A70 -:102FE000EB4FC23FC66B3542326E379A0F36AB9904 -:102FF000A5A3F9C584E3BE8ACC20C851932FB4059C -:10300000F7A25C755FAF44C05F37F9C4E48F8F3DB2 -:10301000237C12017E5FEDD3AF4AC527E08758F9C4 -:10302000E1DA31F86605191E08D2462B64124BA767 -:10303000A2E4E797BD553CC5C2074EBCAD582490ED -:10304000933679C6CA16BC6A23E71BA50BC7FFCB0C -:10305000B2DE11B4F06127F543C058EE16C304F494 -:10306000CA02DFBA3F025DCA75DF0B813FE87247D3 -:103070001A306F76C13B693752BAFCE3245187C9D5 -:1030800077E8EBBE8BFC7C228D807DB2BD723DC6A5 -:103090007DFF7853742AE8892D14FF27512FC72705 -:1030A0008B9883393499EDB7EB21F68C86D87BC2A7 -:1030B000BFC779D9E0F586B01E5D679B7CDCE16116 -:1030C000FB5D3B3C4CDF6C517A54E0B7E142554B21 -:1030D00095EF5CA9B2FA4BDCA4221CC4D1705FB995 -:1030E00043956A7B599C2FB184BE5F32ADE451EBAE -:1030F0007E81D9EEC1E63EB453B6341FC267565D39 -:103100009C40DE95B724A6C3FEB8FA97A5820BFAB9 -:103110009DCDF671E17D8BC54ED355C69FEA5FA468 -:1031200028F0B1DA1AD3332DF2581585682A7B7B43 -:10313000A787C569D45682DFD5C35FC77DEFACE2F0 -:10314000B0F06528B7F69030EDC79360EF83C58681 -:10315000F0254BBFC1BA3E9B3E5C41972ABD1CADDA -:103160002C3C17D3A17B719F6C45B0FA0FF2DCD1D8 -:10317000F4063F272D7463C26FEED7DECEFDF49ABE -:103180002215F9B4A349E9C573302AB39F3E085606 -:103190008F7BAE00F669A98587FE303C61BF36366D -:1031A00093EDD74219F66BE109FBB5F084FD5AF8AF -:1031B0000EFBB550FE4EB38165D8B78532ECDBC649 -:1031C00066B27D5A28C33E2D3C0F3537E0F3D9E671 -:1031D00046FCFE5C731396293DA0FD474A6221B070 -:1031E000ABBBEF520CC8C7E9E2EB7EC428CA027A37 -:1031F000F104593CC1F3E203782EDA131231BED741 -:10320000197A80DC409FDDF3FDDD101F51BFEBC359 -:10321000A7477E9080DDB64788359030211BD58A40 -:103220001A99DA13C5A1CDD59961C0DBE5ED909F60 -:1032300038436F09AFD39265DD5FBEFE7B96F2D453 -:10324000D25ED94BEBDFD5BDA81DE406C0019B6B58 -:103250006DEA929A96624AB445D4A001F957A8C47F -:1032600081EEBF04EB351DE06776E067485B08E25E -:103270001F5375A51CF895D64F303EB9B0FA5DAA1C -:103280008EEF9DEDC6AB27565C503D228DD31F7C43 -:1032900017C6E9A783B4698314F6AD205BC08EF22C -:1032A000B0FDE06E179313DD1EF6FC9DC7DC0FAF7B -:1032B0005EEEA1CFE51EC687DD9E482D9C4B199E74 -:1032C00023621CA8CF45BB80430A4D85AFC0F9A13E -:1032D0003B7E2213D867D8C3F976FA543FD3E7F779 -:1032E000A8A8CF974FFD767B262D4FFF56380CFAB6 -:1032F000792B097B814E62DB985C79AA625A663D24 -:10330000AD7EC9FC6732414F7DAC32BB36CEFD92FB -:10331000968E1BA742FCEA8FC7989CFC361FA7D746 -:1033200035D888EB39DF87760D752CD06E6909C9E1 -:10333000986724E6B0A7E2D2FE0AEA29D430885181 -:1033400078943F2F50314E72D6CDEFC118447B4652 -:10335000F144B50CFABE272622BFB769DE38D8DFA4 -:103360005B7DE578FE34562AE33994ADA52CCE9AE0 -:10337000E6FF7C1CEC981DFD1E261F7C2AE699C6E4 -:103380004B0F1EAD0EC253D480DFE3C6AA5AC4BB96 -:10339000266A98AF4A7FC3EF0D413CB7B295F075EE -:1033A0006910F1DC5DC7A48F7E7A29E4EF7C590BAC -:1033B000F3BB09301F1C4D3311F68D860FA7013C5E -:1033C0007F63DE6B30D49A46EBB7AFD3C2B00E73D7 -:1033D000B5EA5AC837E8D0AAD11F4A9B53A35E8FDB -:1033E0007268E4DC06DE9FD15E2A63BE117C07BEF4 -:1033F00024ED6400CECDE771599696512E801DD6EE -:103400005187E14038D760CB3F6FCFBC06CF2B4907 -:103410002B3211CE0E62A8503F5627A39ECCF3A9A3 -:1034200009B04BF2CCB82F1CC5B0C425B26EB19F09 -:10343000E7C869906DE7C72747EDE56C1E67C8765A -:103440009CFB38CBE9C58927E77CB3828F6600BC3B -:103450005970E0571F3D9F0783E5F530CF3CCD8B7A -:103460007087B4D62A905F9349630BD0DD45C3EBD8 -:1034700080736E69FB20ACFB5C5D263A1DFF523207 -:10348000DC0AFD6EE574DE5D68D7DB7B54C9E4C7FA -:1034900030F0E3D42691C42CE343BC3266196F5A52 -:1034A00077A6AD3CBD27D7567FE6AE22DBF759F1B4 -:1034B000D9B6EF97EC2BB795E7F45D6EAB7FE9A13A -:1034C0006A5BB92C718DADFEBCA3AB6CE5F9837F53 -:1034D00065ABBFE0C43ADBF7CB86D6DBBE5FF1D687 -:1034E000ADB6F295C377DBEA9B76BD532FCEE6F6F9 -:1034F000CDC5DAF36EB84FC216BFB5FB0B4E7B5F7E -:10350000FD4B9BDE0A722DA0207DCBA0C769F9D6AA -:10351000BB98BFA52E0EEB2057742E47A9185C0050 -:10352000EB561550511FC83E564FF62D43FB63CA4C -:103530002E2A8FE681554A46BEA7815C6E8E2D2EBF -:10354000B6C4A53C5A0F9EE1AA0AD4E23E88D95ED1 -:10355000D60C12F5C3783AB37BA8370BF53C3A6D1D -:103560006F99D7F3A28847A587A95FF8A8C52F1C34 -:10357000CB0F74FA7D17EAE74D118917CF1F089119 -:10358000467896361EAB86B461EAFFFDB587F2E752 -:103590007625D2D04BFBDD5EE465FBA5DCFFEB2E90 -:1035A000EC43BE182E9451BF10592FB5C6ED3AF911 -:1035B000FAA6A94FA1FF49F18EF2D6C4FB566128A5 -:1035C000DE0672E72E2FCAC329BF71BF0CFCA516F9 -:1035D000A9792A7D1F3EA218B00FF520C76B91561E -:1035E000560DA1A7E250FD6178CED0A99D419F253F -:1035F000253B0FA35AF314E178B3C3DFAB0659A2FE -:103600002E66F69F3C5789B7D27E248DC291C2FFA9 -:10361000309F526017DBE728967F07F406D6FF79C4 -:103620003A85AA4C15F3423C4007023E917E3C414C -:103630001FEA0D0F1C8285B22CC4619F10EC53D879 -:10364000AFABCADC85EB6EDAAD60CF46993FDC09E3 -:10365000780DD6D9D73B4DFD0EE2A95D60F1F1EEB4 -:103660000CFDC56A3A6E77765126C462217E526F90 -:1036700091373BB83E8D7AD9D39437B891333F69AF -:10368000EF50FADF254E03F87A08C82DCFBD3D0470 -:10369000E8DDA3D1D544BB3EA647509F327BF73629 -:1036A0000E534DD11ACC03783F588EF6ADA7E9F9E9 -:1036B00094F8F30C49C49837365E033376A3BE27DB -:1036C000458A0E764593AE18BD29E4C15C95FB3959 -:1036D00053CC73AF2C0FA89BE3C38C9B8EC4237970 -:1036E000DCCD8C479AFDDC965D3E793C7BDC43FD6E -:1036F000D0A805DE2D741CC04BC7B9FA5AC4834C40 -:10370000D8B9DD3F97F6DE87FBB16D3AEC37CFE5F0 -:10371000F67225E087E27B8A42D04F580AF1952C59 -:10372000F07E3F530B7C69C663863CEC1C773846C1 -:1037300024167F73997A4B3C7F29C2AC2B661E19E5 -:103740009ABC4CAFD17FFBE17CD9B46EFBF9CDE9DB -:103750003DF6F2CC5DF6F2ACB8BD4CADE6E36017D9 -:10376000808D86F18D7DF6EFF5E6BE410D3B6FA6AF -:10377000D291CF33FD6BBB3F8770FD6FE6BB15F475 -:1037800025AA40BCE6DF6ED7ABB95CCFE73AF46759 -:10379000B95FC2B843D5D1E000D88F667CE8575EE8 -:1037A000DD967766C6799CF2DCFBFA4E42BFA0FF3D -:1037B0001E75B37807C4913F2CE071957C1E579914 -:1037C000C2E32A052CAEE292F497D60A9827FA3E75 -:1037D000F20569BC94C573D8B9AFF76AE517049DC3 -:1037E0008D17B58C7767496C3943433C07EA99F1EB -:1037F00015337E10F01BCB817FB7865F6E3C42E9AC -:10380000A4FA976E02FD5C25BD78B419E45B818C47 -:10381000F9DDDA825BBEE98578257CA7E5EA427DA1 -:1038200032F2C18F5D1847E8E2746D9E5734E33180 -:103830009A97F181CF6BDA47312FCFDFF782BD7BCB -:10384000C93E2AA36DFA8EC5FDCCF8DE9C3EFBF77F -:103850003E226469901FB0262E32FBCAF05559F201 -:103860001F67F3759BBB36F1C05A5A3E40E2E570C4 -:103870002F5D19A78FF080FD9CEC2422E039A94927 -:10388000C7A5709CD69FFB9CFD7BA9E31CED6CE754 -:10389000B95AC7FE915F22A7AFA7E36DD31B05906E -:1038A000A3DBD6525B9E966779F9BEFD0C3203E826 -:1038B000F02AC9174E007E5F95701FCCFDC6CCD78D -:1038C000AE07BD7E8CE52769D3F49D106FD67E2AA6 -:1038D000A19ED2D24859992FB9DFF40FE7C304F65D -:1038E0004FCCF8D793745D41AF1CA07E79B10BFC2F -:1038F0006C0DCB7DD42F87F2D3D42F87E741EA9785 -:10390000C3FB7FA67E39940F51BF1C9ECF52BF1CB4 -:10391000DE3F47FD7228DFE5ABC278F920AD0FF43A -:10392000E22D3BA84EAB0039ECD2803E9C72A8AA97 -:10393000EA36753525A92F743D85FB1CD557B17C1A -:10394000EAE5F73D85FB1CD6389C354E998CC30DB6 -:1039500009661C0E42A3BFE6FB1123F1B8288BC7F2 -:103960004DDC8F61F683F1CF51FDF038E8BB77FD78 -:10397000DBE36DF4D386F90F747B8BE07C47238FF8 -:10398000FB99F933BA2D3F7FC3C116CC9F51728E7C -:1039900037C2BA1EACF0615E89E28A6A206F9DFE72 -:1039A0009CE9C739ED69F3E9D46F7E6E5798F1D57C -:1039B000ED2E82F9D43181DA13605F34C717BFE985 -:1039C0001A3BEE7AC25BC4F3F8EC7261E41C018F1F -:1039D000FBB8C19AA5F354048E0F9EDF8EA2B18866 -:1039E000C5FFACF1576F711C0FAF7B7D06DA750216 -:1039F000B5F7D0FED3A22188A375C2B98114F3DB39 -:103A0000CBF9BD2547417BA33387E58BD4E48743BE -:103A1000D0BE2DA732643D47609E7318F057AA436D -:103A200096FE6EF5178DABFF24AAAFF571F4B5E4E1 -:103A300066E77CDA0E5FA6C2F98D6EDFBA41F0A3AD -:103A4000BB43418CD3F7E75492214BFF5268219E30 -:103A5000F3907CCC1E96422ADAC332CCBF3459DFB5 -:103A6000ACD7C2E53E65678C2F7A7C3D58CF2D4799 -:103A7000F07E09771054267D6A6CDFCE5B2C12D560 -:103A8000222FCC71EFF63279D95D1AD520CED21D16 -:103A90009275382FD2AD97239EDB389EDB0A4C7B84 -:103AA000228C76CCF7B97C35FB69E37180B60605CC -:103AB000EDB948538656938579BDDF017EEEF6B5A4 -:103AC000AAB07FA9E4548CDBEFC084FD964DAA997F -:103AD00087FD7E1FFA55FCEB34E8D735C6F9A463A1 -:103AE0009C1E3EA9DDEADCEFA3D086AC792BCEA7E5 -:103AF0009FDB9FCE761B4A871458F72D8FD9CF3383 -:103B0000BB083BDFB5F1D066E4F3EDF220DA51DB20 -:103B1000CF0929CF8985D204CE6F23FEBDCD0ECA31 -:103B2000E3FC94C7BF03A981BE284BD8ED96794723 -:103B3000EDE5F983F6F282134E3BC87815ECA0D57B -:103B40005CEE0D5279CF92668665C0472416AF02AF -:103B5000B8EB495F0BE453B8249617B29AEBBF95C4 -:103B60005C3F06D23210FEBC06AFCDFF24FC3EC047 -:103B70007CDE7F41CDC0E67610B211D3AED2D16FDC -:103B80002DB8FAE92A14970EFBAADEB09FF75FE979 -:103B9000B09F9C765695DC8B79BBB98EB886B9EF11 -:103BA0000BF3847B0F9CE35FECB8667F90AF05F26C -:103BB000CDBC0F06EF1FA6ED0BE48410A678CA6DEE -:103BC00064E775F26E27466F0A3A5EC2D77D14DE4F -:103BD000624B106F4BF9BB5C1FBBC72BB7468AEB20 -:103BE00074FCDC863EB40756DD42E78376F879CC78 -:103BF0009731EB6766F4E1B9A5DD7502CFE325687F -:103C0000D798EBBCDBC7CE19D65F29C44568DF580F -:103C100084E3235C45C9F5A5783AC9F0C4F212AF34 -:103C2000ADB59F87AC77D82F263DAC74BC3FE96516 -:103C3000FBE7261FBC7BD9891953281C1B849EDAFD -:103C4000B46917AE2F2DFCE13A0F7C08BF4F6229F3 -:103C50003298EFABFE9386E74232861E269424AF5D -:103C60004D23B19A4584FC8B77F8128196FF6A6BDD -:103C70005F4777011CF31E7E0A8C3C77D73357D5FC -:103C80005E992C7BEFEBC772908F035B906CBD2D20 -:103C9000F7C350D4C5D3187C5B0DB253821C5C5162 -:103CA000DB192E4CB6CB8476C238ED2264A79CA2D9 -:103CB0009DCF6C47D1D509F73FF17979F97791C359 -:103CC000631D5F06BC69BA0FCF3B2E9335D8BFFA90 -:103CD000B4704C9A68DE51B2D3356D743B0A768B62 -:103CE00009BF981AFE387CB78EEF1A07FEFF6E7C6C -:103CF0004CD49FC2BF5F347CB47AEBA4B1E70B70A5 -:103D0000B9F05E22DD275AFAD9D1FF278C8BCBD7A9 -:103D1000913084BC6497A1C17E5EA9F610FAF77257 -:103D2000468D0676C0165A063B604B5F0FC6BF4BEA -:103D30008B1FE806A22F4D7809C8833944CB384041 -:103D4000FB9DA3C970028BC8570E88104F279F2573 -:103D5000985F92DEEF65F708155EFE2DF0B7323200 -:103D600054DCCF48CBA8FC16337A599CD9843FAD9C -:103D7000EA7835C4DFE57A1216002E214EAA80C9F2 -:103D80006611DCDFF01A07EF84F3024466FA09EFEC -:103D9000D201BDCAE3ED9319C9906E45ABC73C97FC -:103DA0009FC818C79A0C578551A22C2DCDDC09F05D -:103DB0009446690702C0CFE26573A2623841FB2FC7 -:103DC0003FCDDA919FB17326D43759F38C2F8957A1 -:103DD00053AE4CE671F8D05A7B9C9A0CD339D3F68B -:103DE000E53F5BB517E2149346C96FE6B77B399C94 -:103DF000E9A74904FA0FD6D9F58697E7797B1DF72D -:103E0000CC54F85DF6FBA19DFEC35723A807DC2424 -:103E1000AC2A685FAC45BBC1F44B764345B0C70BD9 -:103E200008BB97D7D9BE92B52721E6A7B8BD4455A0 -:103E3000CBE9F7F55E03F312DDB44CF1282844CD4D -:103E4000A1EF7345166F6911880CE5E47809CC473A -:103E500070AB9F6907FBE5B03A0FEF4F33FDEA36D1 -:103E60002D8CF912A4A4DA66379B7961B796154DAB -:103E700086EFE99346E24E1AD0E5ADD9C56847070B -:103E8000B286FE1AE4ECB9ADE9CB5490AB90AF71B9 -:103E900039E4477B3B6354E9BBCFE611DD629FB950 -:103EA000E5468CB3B9CF4EB1BD4F34DBCF5B1B3E83 -:103EB000B106C699EA637C5845B476685745ECE785 -:103EC000AADD67736CF67AB2FF7CDBFB04B56BACE2 -:103ED000F7008DDD7F1AD14BACFD4F1BA3FF198E70 -:103EE000FEB594FD27FBCDB2F5DB21B3F86B2CE8D2 -:103EF0004D792FE5025F75311C951D6B7FA0D2C7F0 -:103F0000E29A5DA146DC1FA82694F129BD2C3977E1 -:103F10005262E77D09DA6F24DFBE3F50CDE958A435 -:103F20009481E70764FBFDC68B89F3BE63BB5DF438 -:103F30004B8839507C89FE8A41DC27F8930FCF03E8 -:103F40008E65370F36138C4F2F4E1BBA0DF6C157A7 -:103F50006ED3958E10E63DA33FFF37DBE62F033B84 -:103F6000DFBC07B32328225E22D593F13C97D94FBB -:103F70004421D3412E46449607813F74FCC1EC5C3A -:103F80005BBE86F9749E87AF3784C5C596790D42AE -:103F9000FEA175BCA579BD92651E1137998FE3719D -:103FA0007B7764BC499F6CBC633C9E658E57BFCCDD -:103FB0003EBF7A45C3F9D5733E36C73B06F34B8106 -:103FC000DF09C7E3F99523E32DB7CFAFDEADE1FC01 -:103FD000EAF97DBC23E34DFA64E399719D2EA5B106 -:103FE00011E870ACF88E19D7B9B66BBF2DAE43622D -:103FF000FB97561513B25360F223EEABEE04BA787A -:10400000BFEED612D42BDCBEC67B57A93E5E293349 -:104010007857E4FBE22D163CEEA672C49809E72916 -:10402000540207CFE07C8581E72D42F87C94DAEBDF -:1040300006E69794E0F7C79BC358DED7BC109F668F -:104040003F250BD9FD60B3160929EDF6133EE67F37 -:10405000EECCD1AEFB12E8B72A2FCB0B5E78053140 -:104060002C763435AC0F7B607FE8F3A40C74E48CC1 -:104070005D0CEE60CDA438ACBFB76C60B019E2A0A7 -:10408000B24BC7BC583DF5DF3B78C5C7FC79B79B41 -:10409000B52757B07B525770FD44A43ACC3F5AB174 -:1040A0003203F31156AD36FC1AC5DB6A4178B59878 -:1040B000EB3B381FF539BED44E7F21089A87AE57A7 -:1040C000D090E2708FDCE7F25F5C23D07E23FE6B42 -:1040D000D1CF88D08699B49FCF717D5BF5869B4008 -:1040E0003C825CA5A0FC5ABDDAEE17ECF42434B097 -:1040F00073769605490B6DB7AACEFEDDED667C158D -:1041000071DC13B362827B63CCBC5C277E9C71D371 -:104110009FF9ECF1D133A474079E0DE3F9BBCEF601 -:10412000661CB4DDC7E45B97C2E4C3683E60F0BCC4 -:104130000B7DA3FF7702E368267CB9725C00799F50 -:10414000D770C2961F4F118B46B5B94F40A4036577 -:10415000A8871DF3D92D1CC819EFDEA85C22FF6EBD -:10416000A884FF7D0361F4BCDF1935EF452F15935B -:1041700054FCC3E2C12B8E4AE1163D8917130FFF91 -:10418000DB7CB4CBC7F0F9D2D20F2A981F986FFB13 -:104190003B02E639AF6B47CA32912DF4BC72BD6267 -:1041A000307F75B814E8F2F8956961F6F730B81DFC -:1041B00094F8A50876D0A7EFDF28B0E53FF37EC7D7 -:1041C0005A2F67DEA5E55C72F29E04C87F690987F5 -:1041D000D01EC81609F0532EE4E305D8F79376BB3A -:1041E000D5968FD7D6BF5F80B8E1C3909F68398FCF -:1041F00097D7D02774807DD71267718804AD47E1C7 -:10420000CE6F4808EDA5C9BC2FA75CCFBFC59E2FB8 -:10421000D8B168B5764087BC9AEA1EB8206CCB2E20 -:1042200016E732EB8FC4BBF83955176924704E433B -:10423000F2B1787388DFDF31519EEF87624C2B2C0F -:1042400084FCDEB85A45E7BF272BBACC4FFBED0EF6 -:104250009637F6027DCA61CC075FDB744F04E284B7 -:104260005A56EA38F85A6E1FD4FB195DBDEE4A144F -:1042700040DCFCE5ACEA7A7F768AFA4D5FC5FE1633 -:104280008F712FFD7A3F8BCF3C2CA6960737F0EF2E -:104290005FD820E27D431EE2C773AC9EE29E85801C -:1042A0008F8737EE0EA73A8FB9508BAEF35BF0EEE7 -:1042B0002966F70510D27719CC73CBC78FF47D9799 -:1042C000CE3BF3631FCAD94C89F56B69BFDE3A1F39 -:1042D000B3FDF37FFA059EB37F9EDFBF4EC8F4E5C2 -:1042E0001067DF3E52263138E8BC3D839763E272A7 -:1042F000F02B93E5E796554119689412DFBBFE97C2 -:104300003AE1FE9AED02E1C43AB80CEBF3FBDE7F32 -:10431000C2BF2FBEE69D6FED007D50A9A0BFB99D25 -:10432000DB3B267CFFE967793FFFC9D7652C7C6EB4 -:10433000E3DF7D80CFE045E1735B2A7C7E26686CFD -:1043400087F71EC804A120783E566F87BCECAF37B4 -:1043500093C897E81C1E0E1FDC0F678F68FB8752FF -:10436000B5FF4196F1353FC27312E7E72FF685019D -:10437000155B1610EC27051CDF186F5DCB33989C7E -:104380004B4B67CF4C6E5F4AEEC110E42F6815FFB0 -:10439000709B46E54C67E1E09A5471E2A702CCEECF -:1043A000CF18232E7E98E3EFEACCC8B701EE76ED66 -:1043B00001F4F7148144A0FE96854344B0B47B23F6 -:1043C000C0E897C2FD0CC0AD5CC6EEB1F653BC436D -:1043D000829CBF82C1BF453F4E204FDE1F3A8E797F -:1043E000ADFE8A21E4771485B98CAEC01F54B9FDA7 -:1043F00076D8FF26DAF5999249777774011D4AC974 -:1044000032D2656F266BFFFBC01D5DE02FEE516859 -:104410001B9083B90ADA37CEF9FD2CC0E6A768C62F -:10442000518077143EDD43DF827B09B64F67F7B9D1 -:104430002C1607D7DC0074798D0FED33FA7E8DF5DD -:104440005CFE479C7F3FF233FB6AFB9F54FCEE5CB3 -:104450008FB1E8F5246FFF09E8F5642AFEA5F4FAA8 -:104460005B786FA1D70F486A7A7D7B0C7AFD0F6865 -:10447000EFC48BB32C116317EC2BCB1F2DDB07FD87 -:10448000C99F59B4EBBBF4297DB42D86AB19166CCA -:10449000E79E93F23EFA2718D7BC7FC0FC3B46CD7F -:1044A0004008F353F4BBA07217C8B10BE8570E6471 -:1044B0008FEEF7653F8377F135BE68AAFB14BE1314 -:1044C00090D9F9D800AB3716DFFC3AC0F253C6E2F8 -:1044D0009B17381F50BE0906E64FCC3767927C9376 -:1044E0001FB820BE79089F9E62C63738FFCB47F3BE -:1044F0000D89ADEB02F9DA59C8F862CEFD9B902F19 -:1045000046F82816C3EF52B28CF2DBE4A38FEF8F8C -:10451000617D67FBC018F70656707E5AA845E60114 -:10452000FE8D4BB476768E6908CFEBF692E17E373E -:10453000E609B3BC5C6F2C6630F36090C0FDB48BB1 -:10454000381EF6808F067E50258F67C98364957F5D -:10455000343FFB2B1215D67B605EE1E3FBD2234B8D -:10456000018FBD646816D86763AD532D1F4FC832E5 -:104570006A0329F87F223DB421C0F4D0063E6EE6DE -:10458000C76A23D8A74E7E5FBCF1D93F3C3E4E3F61 -:10459000EB391CEB029F585FAD0BA4D6573704ECE8 -:1045A000FAAA42284AC9FFEB0329E407E5FF9B5317 -:1045B000E1E553F0FB9D8114FC1E095C18BE9FE5EC -:1045C000F87EF653E27B176FDF13F8C4F2B62715B7 -:1045D000BE28BE7706B22F08DFBB52AD17C5F7D78E -:1045E00003B8FE4F23FC7EDD87F1F2EE05E420F4F4 -:1045F00093028E5E6B3FAACEFAA13CF58140E97E24 -:10460000F147DDE154F724D176FB52B5AB0D683CA0 -:104610000EAD6F06FFE1E1CFF8705F81EAC703815D -:10462000FF5EB97F28151D2C16991CF206167581A0 -:10463000BEFF14FD0FA492FF5FE57436915DF01A82 -:10464000A70B3AEF9F029C4EF9D7CBCF312B5AF4F0 -:10465000E500E26BE86A90577BEECE1420DE956FA2 -:104660002404F0138E723D560597FDCC4FB6DB2324 -:104670002704B867674FA326C079294B7FAF07B2DD -:10468000C7EECF090785EF3730BE2FDD188276B52C -:104690007C7E176B271DC934DE0AA0FE89BC0D4F36 -:1046A00063A65D6E9BF310233D2CCF7661EABF734A -:1046B00079D42F9BF2FF7DABFCFF8F11BA62FD5DB9 -:1046C000ACFEA1F09DE3F0FD25157C4EBC4C04E74B -:1046D000250199EBDB889A9E424F39FB33FDEC9123 -:1046E00075029D6489FB64A78FE8EF603AAC478749 -:1046F00088E7A8567079B2626106B7DB352FF4FF00 -:10470000308FC33F7CCB0355B0AFDE7BAF5606285E -:10471000C86D607A4FBF650AC657A7F27E9DF08FBD -:10472000B457FA66C1DF8FA0E34E83792C59441247 -:10473000E037A683DD80F10A0DFFCE71A6BB27040A -:10474000F1D92D42CF9A75A057AFF6B17331A1D5EB -:1047500013DC9FD96AA35B12AA98A07E0BD6D7D28E -:104760007AF09E950BAEEFEE496967D5A48B9C9EBF -:10477000A24BC6C56B2888712F13BFA3C761EB5727 -:1047800015691400DFFE0A4183D43B3FA513B0979F -:10479000C4E241CC9BFA6C05A31742FD92F1EF698C -:1047A000E934E15A0578FFB47099F5C61E8FD773C6 -:1047B0009CB718F97B643E26C7B0222DBF77342BF7 -:1047C000E5BE82F9EC6AD60CB832F93D4DC7FB1B49 -:1047D000BB46F2BEC3A155FEFFF97AC979C5597C23 -:1047E000D4517FE49E92908AF61FFE9D0FEB7D3D93 -:1047F0009C2ED48C482C1DE54A18EF89A4E5565808 -:104800000FA2D2B21FCBED58D646CA9D583FC4EA7C -:10481000134DBB20BCD376DBB11F79A49F1DD88F6D -:104820006F64DC9D580E8E941FC4FAF9ACFE858E21 -:1048300033EA9E964109E7FF816CA4C3BEE9E79B7A -:104840006EC0F8D2754D37E1B3BB59AB82389D7954 -:104850005FC9E7AFBB41037FFABA2F3F88FBFA6617 -:10486000FF2BC1EF00FED7E55AB097944231F29882 -:104870002FC97F4938DAB1BC4266F7FEAF5C787A5F -:104880007BBB257EA7C2DF4F87FC1ADD725F06491E -:10489000CAC32704E37BE91741CFA3E749C800A5B2 -:1048A000DF0F7CC5F118D273B5968A6FCCF98ED51F -:1048B000BF39DFB1E48D8937F3FD9662FEF7761DCF -:1048C000F14BCFF41ACCFF59297038FDFCFE485E3D -:1048D0006F051DE7E952A40B1DE87605F7EF9CFA7A -:1048E000C11CF709217A02E804E2C4F7968FC6EFEB -:1048F00085E2CDEC7F723446E0FE2E6F29C17DB19A -:10490000A0DFDC576772ED219F598E617249A4B810 -:1049100007E59C4737E51ED3935A5A9F2196513F8E -:10492000A887D48666411E6834047FEA87968FCABA -:10493000684FB0321DFEE800DA3FDA6CB8F1516D15 -:104940003FF7A3A35712767411F7DDCEFD08F5B734 -:1049500059860B7C4B68D93B5236D4102D178D9459 -:104960006350DEC3ED3EA1E7DC8F60CF84EAE573E0 -:1049700056795FC5E5EA44F2F4BF00B9E905CA001B -:10498000800000001F8B080000000000000BE57D88 -:104990000B7854D5B5F03E73E695642699BC270490 -:1049A000C8090F098A38090482623BE1D558790C9D -:1049B00015359628938447782620D5B1D2322180A8 -:1049C000A0D886AA156BC509C57B69AFB6A0B4E5AA -:1049D0007AD17F10B4D0521A2B55B4A25150F15154 -:1049E000938294A9D572D75A7BEFCC39273321B45F -:1049F000DEFFEFFF5DF874B3CFD967EFBD1E7BAD6F -:104A0000B5D75A7B0F6361C6721963DE1CC6C63107 -:104A1000761EFF7CB967C944BB366DAD67C268A816 -:104A200079ADBEA11A631BF15541BC5D89C74EED3E -:104A30001ECD0CA67BCA199BBEAACBEA8476CEE219 -:104A40001C77D0C55891F79370257C5F349E310D4B -:104A5000BF1D9245E3B679572A769842DB08E651A6 -:104A600018BD5BE381F6396EC6DAA164D60863230C -:104A700018BBDF25EB301F28032511D601CF533596 -:104A8000FEDE827578AE3A58D34EA8A795307F04E3 -:104A9000EA1E079B1380B2D863610CE6E5F3A834E5 -:104AA0004F1F8E06F50CEF5AA6417B6795C51F81F7 -:104AB00032034B971EFEB5E23B2B95121FD7E6043F -:104AC00047209C6D8C55EDC479B168A004E0481D69 -:104AD0009E937537D42A4BAC2B190CF9E86A1698BB -:104AE0006B63ACC21348C3F6AED29CD4E008AA8F65 -:104AF000F2403FAE75963003BC54327744298EE3C2 -:104B000005669E1A7027A7C7CBAB838149B6E474AC -:104B1000BBE12635A087439653100FF0FDC7D5EFB4 -:104B20007C1FC159EAECB2B34140CF219B034C45F5 -:104B3000783482D3B97B66B410DE2FDBB39CE17C82 -:104B4000D7A4A58F473A9AC77DF9B3073D01789F4F -:104B5000F25747606782F196083C1F5D5D4DDF416B -:104B6000F79A358FB13908CA204604ED7062C994AE -:104B7000F30E02EFE810787F0BE3CC302B503B8D27 -:104B8000015EEBAA55A616E377DDEDD979A8DFD251 -:104B9000513B958D844AC876129F3BE1EF79E83707 -:104BA000C832A778E0716D983FA7F6F0DF3CE69B2E -:104BB000920BDFD56F303D7FFD9AF7593ABEB79E15 -:104BC000EC2889F77F63756D6092687786FE1F21F8 -:104BD000786669CC8F749BE54B8B8401C4EB0337FB -:104BE000052695C4FB7BE573750EE2C58C8FFF44EB -:104BF0007CE4223E028149437BE2A32EA0D83DDA29 -:104C000085F1D2573CD45A4BA7E46A3DF160861F28 -:104C100030762FE2791EE0F9EEE2E4F88076448FF8 -:104C2000576E827600CA1475AACD0278A89FA93063 -:104C30008742F84D6783B19D7FEA64DD7CCD78348F -:104C4000E3ABFE19E68B42BFF50FB87DC0E1ECF790 -:104C5000123F5140DA189027BCA91ECEB771FE1E34 -:104C6000F88B707EADA2F4F91C984770ADE2631C1E -:104C7000DEB7F5F0D5B140465421B8DF4E42F7B764 -:104C8000F5709AE7679E7F0A0A2B907FA1D78BBFAA -:104C90007340D78E59A323029733F6538F3BE7DD3A -:104CA000CBA03E92F9CEC3BA3ACBC6678CC2F743CB -:104CB00012CBDB73ABB5EF1CB0E9D739E7B339A141 -:104CC00099DDE362FF0A0B76D73D80E7C04DEABD70 -:104CD000D7C3BF5F3E98BD0E9FADF0AADAC96CC4C2 -:104CE00017C04BF4F23326F98B6119DEA702FE667A -:104CF00032A7E6827EBE0C42EA3CC032DD9FA2B9FA -:104D000074709C6E55AA508E02F132665D1E87D774 -:104D10003CEF155E3B8D07FCF8899E1FCD7879B975 -:104D20007A7006CA9117112F69849791178397AFEC -:104D3000E0628675E3C9665105E8DCA53823DB60CF -:104D40004E35A13B039346215E58D80EA2F35D4F2A -:104D5000B190D31C6E1B937F9A18CAD31A3B0B22B7 -:104D60005CAFDB58F52E1796D101653AB9F57E7622 -:104D7000E5BB28A765BD26F46DEA1F1891F850F22F -:104D8000F32D4E5754E57CF85137DF903CABF120C2 -:104D9000DD814EEC3CC0A9662CD1106E352D7D24F2 -:104DA000CB606C033601389D9981D328FFD5B4813F -:104DB00011E4BFD49B7EB481D3F1BEAA1B74744CA2 -:104DC00099F754983AD7B20CF84F13F4AB14F44B4C -:104DD00029719AE9C7709D864B58E43145A000EAD5 -:104DE000A787F823B86E93E90D49CF9412EBA71D5E -:104DF0007ABE66AD8457494776607417AED7A0D7A0 -:104E0000CAEEA6F725849FA047E2A7CB86FA644E98 -:104E1000C8765ADF4FB0606EA419BFDBE8F0E1B38B -:104E20003A8B9687ED004F1ED4E3ACC4E7C3F5C3BD -:104E3000C2F09DE427C42B1A13BAFE3B00868232CF -:104E4000EC0FA4277EB74137CEA09EE376AF2B733D -:104E5000BFA6EF5415EC07B2237C3E9F4E7E0FCECB -:104E6000E4F6C369EFE89D9641C9F157E7CCF65BDC -:104E7000B3E3F5B70B9CD591047A40F627F5799604 -:104E80001AF45A10B6F063070FF4473DECB9142436 -:104E900019BBC71639787000431661AC1FFE2F721C -:104EA000D0EF22BB43D4813161FE6DA9DD75BFD344 -:104EB0000BF541DDF530D6B7C270EC4AB05B32235A -:104EC00007D7C27CCE1D7790FE3A5D951AC1C59377 -:104ED0001D9AC84EC0BCAD60E66400AB4111C6D29D -:104EE000192A2478142B600EF09DADF914C4F7AC88 -:104EF0004C8DE66FD558D40D93CBB6FA14C4D7F7C2 -:104F0000ECAC41C88DE13375F6CB2C01AF1CC7E189 -:104F100064E194B278BF606135A31EB14E65A457B9 -:104F2000609D93DD26D7B7EC2798C9F567F7FABCE3 -:104F3000F07A0E662658CF872D4D6F7E0BEDD95F28 -:104F4000ABEC3100E566EF1DF4FC86503D953785EE -:104F50001652B9488CF70E0B2ECA84B2BDFAA59B27 -:104F60006F07FE6DDCEDF0A15A5E7ADBFBDF29D71F -:104F7000104F4077FC6E5EFD03E5F0DE3ED442F656 -:104F8000EC8601AC1AF9C9DEAC907DB451B357ED93 -:104F900086F2A18CCA2D993A381ECA98447556A536 -:104FA0005990CF5738399F9F3B7E97B70EED4A9760 -:104FB0008BD68BBDB9F8BB16A8B343306F86F2838E -:104FC000919DA13A78797726B753EF16F85E93C989 -:104FD000ED3D670C89CCF9BA09C6775AC30CED6C64 -:104FE00067CC4ACFED0ACC2F019FCAFE9C3158A452 -:104FF000A3703CF3F7767A8E70E1F76A3633D83DCA -:10500000F7E1F7B958CA79A4F179649BFB49E7CF76 -:10501000C5FA33CFE34F9E890F227E1ECAF06FC9B7 -:10502000A475D36143797E8BEBD7C794917D91C7EB -:105030001D0ACAE3E99F29D122C05F4AA51A595324 -:105040008C7ACD336D34F001ABB4F9109FED43721F -:10505000DC8374E3FF44D0FF45ABC78DF30C4C06F3 -:10506000BB9AF89BE5CEC27E26D78FE1F20F0C2EBD -:105070009D9E7D51DBBE6110CADFB08DF64B739CE7 -:10508000E108CE4F67B729E7B95CD6AC63E2F6DF3B -:105090009C49AA3F25BDA77D07DB900364FF4959C2 -:1050A0001E863A7CF786A8BE39E9CCF5084607F398 -:1050B000D807E9ED41DC2D8D41FB86FF991332DAEB -:1050C0007D66BBB0AEA2F4052003E02552351AF987 -:1050D0006CB885F8ACAFF632639B399D27B7787012 -:1050E0005FF528CA09A84F9F746212CA8D19605AC9 -:1050F00061BF3326A99E28B4DE14B2303F4CFC8831 -:105100005F8D2800DB91928E435F46BC55D834D228 -:105110005B25ECDEEB72F0FD280FE23920EC106825 -:10512000CFF59BD719190ACFDAFD275CF53ABE3BBC -:1051300052716238EE5740EE3524E227C69A89AFA5 -:105140000F7C3395FA79F37E25E280F94F563FFBC9 -:10515000ED58B467BF65F3393402CB82749DEA63BE -:1051600062E3EA774DD6D9012758600CD995A5C7D7 -:105170002B1D68BFAE53689D4AFCCF0919EDCD6069 -:1051800013D8655A4FFB143AB3233FF7D53E35DBAE -:10519000579F650A7BB38C95E9EDAA647A4ADA5584 -:1051A00056E657B3F87AB2A2DE9D0E0F12C9819A65 -:1051B0000CBE0E26AB1F117D4E57A81AE2EB48E835 -:1051C0000317EEC78F7CA6F27DB03FD760C715648A -:1051D00071BFC0563B1864F0DDD67ECE483374B53F -:1051E000EF9B97E677107DB407C7231D7F6D2339AA -:1051F0009C6CBEEE90CA8600634E0B29544AFA1589 -:1052000085529855A71F8A58E2F95F9AC5F7A1B948 -:10521000AB9845837133C3CC9F687F2CDBC1BE78CC -:105220008A9551FB6826CC6FD9100BF1A7DC1FA71C -:10523000D8C2FE4280DFB6777918F7C945303F9C67 -:105240008706F3437D591C4AA3FAA0503695834341 -:1052500099540E0915D2FBA1A1C1545E122AA6E7EA -:10526000C3429751BD24348ACAE1A1522A2F0D5D51 -:1052700045E565A037B1DD885025959787AEA5E750 -:105280002343D7517945682695BED06C7A5F1AAA18 -:10529000A7B22C544BCF478516537D74E856AA9776 -:1052A000879653392674279563432D5456849AA9BB -:1052B000DDB8D03D54BF32741F9557853653393E03 -:1052C000F430BD97764BAA588FF768733DE8EF002E -:1052D0000ED7908F93ADBB85595C0FBC98E99F8921 -:1052E0007C27DBD92DA0C75D3DDBCD136526D235EC -:1052F000417FC12CCE971FFBDEFEFE3016A7DB469A -:105300006FEFFE0C56D237BF57208BCBAFADD676A2 -:10531000BF8AFCDBC47C6178346DF48B0ACA973693 -:10532000CD5A95C8BE7B28CB46E33E9A196CCA82FB -:10533000EFD38A4F1E40793223ECF9ED04E4971144 -:1053400039BF9E00FD15ADB5D0765F639E7DE85FE9 -:10535000D32631928BD2AF04769D419F6ECE92764A -:10536000E3CE8383683D0D29E3FAA7E31A5C5FF679 -:105370006F0EA2FDFB567B54B1A27DB38231BDFD01 -:10538000BF757DDDBFE1FB787F7C7D166D60CFA1B1 -:10539000895DDCAA4D488172F016FF7329F0C9D0EF -:1053A0004870422AD487ED083F87E5F09D9109694E -:1053B000505EB627FA1C6EE32E8F764C7041FD8A44 -:1053C000836C3F2EFFD2766DA21BEAA38EF9F70302 -:1053D0001BB0F28EE0C4740DE713694987F96C7D48 -:1053E000030C3DA8577CD4AAC276284E7FB0E3D0E8 -:1053F0007E9374718F6E9F940DFFECBFD253AAE21F -:10540000F7D68E94CC113DE9D38670239CA0471E1D -:1054100003B8FAFBA38A47C727CF08FE003AB42196 -:105420001DA45FB26D6D16F925DB523D953864D72A -:1054300064E6D9A6211F5B094FF67583C81F27F9BB -:105440000EF06BB067370B39B1B5DBDE4D8CDF6723 -:1054500010BFE5FF3AF89D9AC5D74332FC3A915701 -:10546000C65D781D1F117C08EBF8D788D764EDCE98 -:1054700008FC9BF1DC6661074157C1B8C0A77C5DA1 -:1054800031F4A37D2CD6FB85F07AEA5F0CAFCF0B0D -:1054900039910CAF4CCB213909FC3A1CFD63C9E4AE -:1054A0008D5DEC67CCEF3F17FCA69373DC6FEB01CF -:1054B000393738B99C3B7421F925E48CDDE4DF49A8 -:1054C000CDE6E3557802CEECF2047E6A1137907E89 -:1054D000EAA9AAA712E50D1BC6C88E4E1B1109E347 -:1054E0003EA528AC95A9D80C8532E2B15F09F91F19 -:1054F0008AC1CEB002FDA1AB28964ECD63A943FF71 -:10550000BB5C6F9E5AAF7EBD497D1F5F8F922FB2ED -:10551000DAEEE67E496D26D82FD764737E8BF7C30B -:10552000FD20EBEFE8D776B74E0EB679BD5497ED78 -:1055300093F1EF02F1BE6DED1AC2A7737C62BB61FD -:1055400062B62AE441971FF93CFC25E6417B2673AD -:10555000EDDB249F32413E29249FF8F8FD43A9FF4B -:105560001686FA84EC3C21CF3DA937B8FFDFF173F2 -:105570003EDA54A807C67BF6A918A7013DA4E13A74 -:105580001D0F731F8DF8B213DD35C6E9A88D6711A5 -:10559000B47B016F51DCB7872D6EF233D9EDAD7E50 -:1055A0005CCFCC9E49F057788233B37B91379E34E1 -:1055B000AD14895A97BDEB1A17F0DFFA624F2AD65D -:1055C000E7407D53058C9BD5C1447DA36BDC3FEE4A -:1055D000F7A8BBEF6787D0EFB13FCB1FCCE67C5D70 -:1055E00087A57F98C74AFEEA3EC6C1E4FA8CAF277A -:1055F0004FA95C4FB523481E2EC17E657FC9EC9B29 -:105600004BB2B99CFB56B6C5C0D73DC76D36AFFB94 -:10561000BED93762BE8BB37B5FFF2F1FBC6FCB76CB -:10562000A6F337F6FB7EBB55437F06F7D3589CEDB8 -:10563000D49F5BF81BFDE86F043E700EE175FC9390 -:10564000C85F9C1C8F119AAFF4334A7F62BAE02B7B -:10565000665522A8C7D32B3CD63AEAAF837D0DFA14 -:10566000FB81C0935CD728B79E1C817229CB8AFB33 -:1056700075F427B9B3E2FD633DA32C2E9F98D8C7DC -:10568000DD2AE6DCBAC697812EE7F011EE4769FD08 -:10569000365F97D3FAB3C81A94137EA679A07D0A11 -:1056A000937FFC067FF2D44F15E687F91FFE54A5C1 -:1056B0005219C2A26ED8EF4DF32951DC07DA2DCE74 -:1056C00008EAD2CA7E4E86F14D7BBA2582F111FBE3 -:1056D000DB0AC1692F4B8BA0F09BD4AF2203E39868 -:1056E000670EEF770513D0FFC660ADC1FF65C663D7 -:1056F00077BB9B9FF7201E1FBE409CF65076779C81 -:10570000767F36DA4373BBD6DAB5789C56C61F0B64 -:10571000BCBB3756A2CA5AC2EDD37E2CD2ACB7ABB3 -:105720007471D0DF22BF3F1C8F83B65FA28F833698 -:10573000F6DB8BF6EE43DD71D06014C7F567EF2C16 -:1057400045FE7DD8B7FBC7DF457C3A44BC62D471C7 -:1057500097867EFAF2FDB908CF6F4DF397A5F4E373 -:1057600099F7C1C7B38DF18533BEEB32A2C45BD9C3 -:1057700009D7B7F42FCAFD30FA0F3D09D7A111DFC1 -:1057800072FC1A85EF6B994DE1F24FE851902F9D15 -:105790002407228CF4A6DFA16C437D73C637CA4769 -:1057A00071CF24F246CE07F0383451FC17C64B189F -:1057B000674DC9E17AAAC6C6FDA6CAF2F2269C5771 -:1057C0008DDBA53874FEFEB342AF9BE3426AC66729 -:1057D000E541E1F74E04BF39BE7356E80BC497DECE -:1057E0004F7E217C1DB3B552FCF0D83C9535433F2C -:1057F000678263F35982EF65F91AF2CD50C6DECCA9 -:10580000E1E375D33349BCE8D8EA068A339BE36900 -:10581000DDEF6B53AA517F57231E75E35E29F077A6 -:105820009D289923A879E0BDBDEE010FC3F8D7D01C -:105830004FCAC36EF48B75FD1CE317EC5B6EF25719 -:1058400054D79E2D6FBE5C87CF0AC6E3B3FB1FF211 -:1058500068F0BC7AE8DADCB02B391ED1B78578BAAB -:10586000071F8C237F4C79CE45F863D8081E17623A -:10587000FB53287E9AF207D58776038ECBF500F787 -:1058800027AF147113731CAF3AB4CC205FD2620AF5 -:105890008BE8E21769D69DE49F4D8B59E9B979BD34 -:1058A000E5E774C73969BD49FC27A3A7C4BFF979E7 -:1058B000590EE7CB63B50B35F41BDA5313DBC11B71 -:1058C000453B5937E723248BBBCF17743D131C97F7 -:1058D0008FFEAA6A7B78685FD6B9C4CF85F21CE6D2 -:1058E000E4707DEEBEE92511C753D7626F52AFA6B3 -:1058F000597B8FC7FA4DF1D8B4D13DE279FF23F13E -:10590000D8969C7F2C1E7BADE0DB0BE5A1DC6837D5 -:10591000DA3DDD7815743C134C6161908FB756AA5F -:10592000148702FE20FD78EC0185ECCD68AD83F490 -:10593000727D6D0AF967EB4B557A5F7FAF4AFA3398 -:105940000AF26109C887DF0A3961F6CF5632C510FD -:105950003F9F3E3AC550BF69DE7DBF5D8DFEE50AC3 -:105960009B86E31DD1B8BF39EC57C97E853E7C517B -:10597000F44FDF7FB50FF599E487237E95D65BF86A -:10598000A8EAC361DB853FFAC886D208E6A93025BC -:105990001EA7D70663FFF514077ED5BB85E29C29B9 -:1059A0009F3F1808D0FE31A89592DEE4F1D314B1E0 -:1059B0004E27F6ABB801F5F89B9B6C0CFD466FAE1D -:1059C0003A43EBB9637513E54548FFB2F40F9BFD0D -:1059D000CC66FF720FBFB2C99F9C2C9FE15749F85C -:1059E00043CAAB64FC0162EB484EEEC5CB31293FA4 -:1059F0005E13704EECB7E5DE66C043DA5C95F020CE -:105A0000F9F2D5CFEE7A04E5700AF0C71A86F8FCF1 -:105A1000F7E7711FC2162A09FDC81952AE63FE448A -:105A2000499C2E37051776D771F9CF6E586EC8FB93 -:105A300030EB95E472AD77B9B53987DB5D66BD6350 -:105A40005E0F5FB4DEA9AE7DA004BFAFAE9D17C1EF -:105A500072633F6703CA5FB37C30EB896A939C8DA6 -:105A6000EB07954546E9E7AD51BBB89EB0D3FB7354 -:105A7000293CDF21E4E4E5EDA9E9DBB03C97C2F382 -:105A80001DC26814A29DFA465AA485F6E54D63919D -:105A90004F42CCD7114638BDA9E44768EDCFDBA90A -:105AA000D7A472BBFC4025C1AB4AC37C6D25AD9B1E -:105AB0001601CBD6EC60512ECCA7C56F49C1F8C2F8 -:105AC00044B7F510BA5E5A27589883C5F115CF0B25 -:105AD000611E05BEA7770AEE3F4B9DF6C164A70E77 -:105AE000CB457EF936EC0F81EF0F1F5677B701A833 -:105AF000877DA33212D9E9B234C7918F7FE39581B4 -:105B0000B86EDF61C1B25C8A1FD7DF8BF1E1C63DA1 -:105B10002AC5976EBEEDD54BC8EE36C529D574673C -:105B200009FA535A94541FCA1389C77D6E3BC99909 -:105B300096E369B49F68794B117537C94389F703B8 -:105B4000D0AE6034E62AB9496E4AFC035C13701E7D -:105B5000920E952C7A787CF13F05D734C47772B8D1 -:105B6000FA7B487E209FA9713854B795E0EB64A971 -:105B70003E9C5F48F887D8EB69B4FF93746E14FCC1 -:105B800028E9BC4CD0B973EFD9EF5C05ED5BFD594A -:105B90001475500730C243E7EB6EE21389070937EB -:105BA000F0451DCE53C2BD7FEFA86341FC3E3D953D -:105BB000E2F8D2EE9679073DE494D8BF2FCD55BADE -:105BC000ED5EF45FFC3E7BC2D2DCDC04ED85BD0BF8 -:105BD000F86EC2712B3DEC93088BEFF392E537AC76 -:105BE00012FD77F773E1FC8655B989F21BFE717AD5 -:105BF000DE7531F46CB4BA362819717CCB7D332D47 -:105C000069ADE7FA37AF3F490F65EFBEBF621CDFF2 -:105C10002C176E579B9802E3ACBF9CAF4BB68A69BA -:105C2000941F645A2F17923740FF6D085732B9D32B -:105C300057FA3FD193FE4FF446FFEF65077E86EF9C -:105C400071A8C232DA17EEC23ACA13FB201A8FF8D3 -:105C5000B62B93513E9BCC8F91F3917932514C5A94 -:105C6000CDD5E5E194F814D4137DE08FA87E7E5F56 -:105C7000007FFCA6773916A575BA54D07FA9CCCB86 -:105C8000D8DD7B5E461FE8F75A22FADDAEFABA820B -:105C9000C57DA7DF3B3DE9F74EEFF40B9EC2F72D24 -:105CA00076F609D9EF15B55EE4970A8F7F16E6A15F -:105CB0003CDB2CE44E31D00FDE3F9FA3925CFB1EF9 -:105CC000BB94E4F6972C169A6F27C8EB6D4A9FE0B9 -:105CD0008CE5D2FE2F6CCD827E6FBF8E517CCFAB18 -:105CE000352B58CFD7404F6B7D8757CDE37A5C0774 -:105CF000AF9A9740AFEBE4953D8FF3E74AE44FA7A7 -:105D0000E6B1F626AFB2F28C76421FF8312BEF8B5C -:105D1000E5C70179BDCAAB8BE6B36138BF6472A237 -:105D2000AF79A0B04E596156CFF119F3515CAD3245 -:105D3000DDC9F5F62E45E8F1D220D5DD4E12160765 -:105D4000849E3FBD9BBF572724B62B7D7959C4CF76 -:105D50004B772E0F580DF924617AFE5DFF69CF1045 -:105D600015F3B45D044FF634EE8794F0CB3CED743C -:105D7000014FF6000E77F6719ED72EF1952EF61B89 -:105D8000191556C33E42E2ED7635A0A01F3D33877C -:105D9000619A04EC134628E8E7CAF41BDB4B7CE766 -:105DA000B24D7F5631E5ABCAF83E17F73323F1BD4C -:105DB000EE7982FD2BD0A704F3C766E709FF839D28 -:105DC00079511F31B5A6573ED2ED4FEAF2FAE0679E -:105DD00069C8B3887D8351EFED4C6109FD0C7F11DB -:105DE000EB01EC15F237AB42CF4DEA28A67C9715B4 -:105DF0006E8DFC0FAAEA734E2DEEF97DA61F96B7A5 -:105E00000E1FD955A94CD3C19D1BC832D4F3ABFB8F -:105E100019DA17040719DE17365C6A783FA0A9CC97 -:105E2000502F0A5D69685F0C88D5D7076FF8AAA163 -:105E3000FDD0D6AF19EAC3B67CDDD07E78A4CEF013 -:105E4000FEB21D8B0CEF2FDFB9C250BF62CF370DF2 -:105E5000ED5B841FD98C97FFCCE372BBC5CAE550BC -:105E6000B3AB8CFC9B2D2EA37FF33E81FFCA8CF13C -:105E700025E8576F79BBB404F17D20FD4AF2B327C2 -:105E8000E30BB35C4B264FCDCF9F14E37DFC9CDD31 -:105E9000827CBD6C3FACDB2BA0EE7A6D3DC2B47151 -:105EA000048FCFDA18CF1792F11AF97D77BCC6EAC2 -:105EB000E3FEDA7417BB3B015FDC97A725F4A74A22 -:105EC0003E4A8637C98F17C2DBD302BFFF2CDE5E86 -:105ED0005778BEAB5E1FEC4A30AF337916115F0EB8 -:105EE0001E15FA66742A59F21E5A8F17AB0FE43C3E -:105EF000401FBC9997DB334FF7E3EA97E63FA86171 -:105F0000FBF9BCBDC557827449E64F3F23F0A6F3A9 -:105F1000A737707F7AAA016F6FC9F56EF2EBB5A44F -:105F20007F4AFEF416BBAFA42FFEF4B7F218E1FFD0 -:105F300069A473AE8EBEC21F9F6C1F1562EC109ECB -:105F400087602EABA6DF3725DB1F4B790EFBE312F4 -:105F50008CD3B6E2FE4B49A80753F2CB69FF4CFA4B -:105F6000A015F4A083FC04EC9006F5DB275AD8DDDD -:105F70005A1C6E69CF3B98CF695789AE19F83DFB23 -:105F8000365B99A27E21FBCC7EF917A1E7D985E388 -:105F90007D64A74D03F8D7E8F6D7123FE6F89EC414 -:105FA000CF341F8FDFAD03FD88F1BD7DB95C4FAFEE -:105FB00083FD37E2D1931DF00E447B1E9E6F43722A -:105FC000E48EA1F523F16A8EF3F555EE8CCFEF61E7 -:105FD000B78ECFEFC56E95F0AF10FBE7C9EA889D8D -:105FE000E8C73C1DB313DE54C6F32E1B0FDA5884EA -:105FF000E8C8F397251D6DB1F5EDA89F6DCC9CAF5A -:10600000AC6520FCB683FC9C18CBE1EFC3CCD98CEB -:10601000764F4685517F65FA8DFA2BBB2ACBA4CFEC -:106020008CFA2BBFDAA8BF0A8246FD55D85066D23B -:106030006746FD55149A60D26746FD3578C3D74C44 -:10604000FACCA8BF866D31EAAFE111A3FEBA6CC7E6 -:106050000A933E33EAAF2BF6AC31BC2F8DDE6D7860 -:106060003FEAE0F70CF5F2F61F18DA2F38F414E5E2 -:10607000F58C3DB6CDD06E5CC74F0CED00E1ED98D0 -:10608000FF3D9748C2D855A79E34BC9F2BECB5ABBB -:10609000BB9E36F4C35A791E7718FE22BDDE6341DB -:1060A0003B1A2956D6F54221D0755944F145A1D95C -:1060B000C23DBBC6E03C3E7CE39A83D8CF822DC66E -:1060C000FCEF851163BD910DCA40B9D0087C110168 -:1060D0003E598C79E13AF9B698358973817DE3B3FD -:1060E0000587AE63944F1AF6B763DEBB8453F29B09 -:1060F0005FF09B9C9F847731D87F512D0EA71FFEA8 -:10610000F2FD66871DF976FE1E85FD40E9094FC345 -:10611000DECDEB0B13C06586C36C87FE47BED13F57 -:106120003E597551BCE0F451D5C7FD8DC675B8E236 -:10613000108F13AC7842217F9D191FD23E4D8617D8 -:1061400035CCF70D8D392C12D1AD3F4DE0C3E13583 -:10615000AEBFD3F80F9CCF0FD508E61BA568A96684 -:106160007E1B13653DF19C56625CA7663CBB7DFDC2 -:1061700012F295067F711EF3C5F943335F99F1BEA4 -:106180006CCF663BCAC38BC5FB6BF989E312A0EDEC -:1061900046DB13E4D749BCC2BEBD03F548B2FDECF3 -:1061A00047F917BD9FFD28FF8BDDCF9EEB4DCF75C7 -:1061B000A2BF0DEC4BB39FCDAC8795BDFBFFAAA44E -:1061C000935FBBC381EB2EE873F23C18939E2C299E -:1061D00031E8C9EE7DEFDB0AED7B7F91E1B77B61B2 -:1061E0003EBFC9F03BBC00E72D197EA757076F0BD8 -:1061F000E085CEFD809EDA95C04E9CE495719700B7 -:10620000F94DD655F2F6E67623BCFC9CD1BEDC31C6 -:106210005EB23FDF2AF592FDE91ED3ABFDF95D11B9 -:1062200027BA07E39043E3F941F78A780D2C3B3F07 -:10623000D26D9D2DE0D5E70F67783369BCF4714FBF -:10624000B6631E758BC7E251342C793EF75A97B569 -:106250006ABBF82EC7F01D3FCFA422BE01AF5697F0 -:10626000F5533DDF4EF232EA37199C93BC7C3F690F -:1062700063C17BD11E92F161DBDB954E94772DCC0F -:10628000EFE172D2E7D1E77FD8188F074F10F161A5 -:10629000F95CF5FC637958ED19C189DE047958770A -:1062A00064F827E1F39035EC40BB33E44CBC2FFE9F -:1062B000AA97AF139B80170C50E22B9A877AF1F1C3 -:1062C0001FB037AFC7716F57C39427D9E21E53125F -:1062D00074F5DDCF15F4F6B08F82DE5EEC23B04F9F -:1062E00067E179327F463F2B6D3BACBE12C4F706A7 -:1062F000FCF738F2D32EC0EF7BE4BD8A73B8B08FC1 -:10630000EB358F57F6B33FCBBFCCCBF30D9BB03FF4 -:10631000FF30CF5A55D74FFA05FA917E8E3EF8AD31 -:10632000BEED4DEC1F3D85FABDAF78DCE8EDE12F09 -:10633000DCE8EDC55F78EEF8B00C8C674B7F97B961 -:106340009D3C1729EB1B328DE3AF2FE3F5FBC5B85E -:10635000AF887B3A7688BAD3745ED43995D13D1D27 -:10636000F29CA9EC6787D74DED9BB327ECC0F9AE43 -:106370002F56681FBA3E5331EC47EBBD953B900E4C -:10638000DB44FF3B907F73296F94FC39E63CCC25BE -:10639000A2FD12EF042AF15C2BCA31BBAA26C4E38A -:1063A000135E3EFF5999BC5FE977AB7F4011FB2735 -:1063B000E3BD08B0CE5F4E03F97362938DCEBDCEC0 -:1063C000535DEB911F93DD73503B2240F94FFFEC7F -:1063D000F931C4675A564FBDFABC37F1BD05C9E45F -:1063E00088CE9F76D87B11794B1DA99C4FBBDC2EA4 -:1063F000F29B9BDBBD2BE8B349F83550AEA37EC9B9 -:10640000525953223DF3AEC0FB3F7EAE99DFE79178 -:10641000ED72D177E673CD1DF68E75F938DFAB15C9 -:106420001F9E5FC8AFF1ECCBCFC1738C1AF9F8D6C1 -:1064300017B3F40A7C5F6AA1F799B33CEB6D98F748 -:10644000AD31CCDC673618C70DE3A4171473B8C29E -:10645000D7EDCB8776195A171B3482CE7B4FF1E2EA -:10646000BAADE6F9F33DF02DE49B6B1DEC2F101F48 -:106470005AE23CF4F342BF80BCF93BF26BA5C6760E -:10648000F373593C0F16D992F2157D3C5F3B0DF327 -:106490009D06737983EF95EC89D682DCF8FA520574 -:1064A000BECDE7B9D30BF8387D3DCF3DA326F17CB7 -:1064B000871770B88E67047270DC19E39BB93FECE4 -:1064C000B3F3E7D531681CF37502DF33F457A4E466 -:1064D00070399CA26924979947A13C57A7E66BC0E5 -:1064E0007A8AEB4A8F8A76B283C725D95C0BC3FBC5 -:1064F00055268A7EFCD54C79B784FB65B99CB5B22C -:106500007725FFAB02396350CFF23F603F6D4A03FE -:106510007826BA0E537C32654853259E6B787E0EE2 -:10652000EFE37B49CE0DC8F3EEDDE7FAD98F0E1B02 -:10653000CEF5AF7BE4F0C1AB75E7FAC38F1CF68FE5 -:10654000F8C7F3DBA73CF4C8E1B5AEFFB973FD5261 -:106550009E1D5383C7EE04FC5F0F4C152AC3D2CA9D -:106560006A88DE5EC2DB2C81E7F0A78067671CCFFC -:10657000D7EF3D44F83B668379C3F8B6091CD5B61E -:106580006F66445A482E4668DC1B9CAD9371DFD978 -:1065900069EF1A89E3763EF3CA8030C893E3DF3AA5 -:1065A000E366C07F6F5ABBDCF8FCD4AA97DC780F97 -:1065B000C2F1552AD96B742E5A978FD420F8EA5716 -:1065C000058139C85773567F3E466F8FB3502EE909 -:1065D000DF85119552AFA4FC5BBC234D301DAF2F5E -:1065E000DD996DA84BBDBCD491F89CFAA3059CEE37 -:1065F0000B1F6FB3176A387E70398E7F4AE4379C61 -:10660000DAEDA67D989C4FDDE3A576DC77BEB9D7A1 -:10661000C1A2E4076EB731F267F9A72A79788F1122 -:10662000FF639EE70BCFA6517FF31E50C9EF540BBB -:10663000638500AFC1BD0BF93ED804C7BCE3DA14D3 -:106640009457F3362A2CACF1F6ABF0FE8CD05D14E7 -:106650008731C369D62F0B92DC9FB360EF3DF4FD09 -:106660005CE6BF07EDD979ADE6F7D7BC874CBEE055 -:1066700002F19CFB0B84DE19C3C69E1F4CF1A38C58 -:10668000CBB50BEB9D53ABF922FD60B593CA8F568A -:106690007BA89C53C0F978F19E7D2F14D2326F1FD6 -:1066A000837AE9E583F5695FD7E276F798B65BF719 -:1066B0003F4C4D8DF9993502EF63455EE60271EE70 -:1066C000A1FC58EF799935888F913DE72BEDEC1AB5 -:1066D00093DF57DADD667C9C3E38310DF9E3970590 -:1066E000629F3B16F0A2FEF37849F6DD5295DF9BE0 -:1066F000667E2ED7D11CC1D773B7CF5CDF0FC66FB4 -:1067000079E6BD811DC4A7DC7F512EF055EE5ADF1E -:106710008EF0973393DF30CC8E321D3F033FA9A814 -:1067200077CC7C2BF9891DE5DF3B855FA39B5FF769 -:10673000DE4BF8957C85271D2C68C3B1A8D7527114 -:10674000E17BAEE6B51AEB1FDB3A06A23C5960F2DC -:10675000377CAC24DEBF1D2A1844F898ABF9A7603B -:10676000FEC53C1658CFFDF3FC7E9C53D6D617EEE3 -:10677000C475BE9DAFB3A5BF7CE21728BF16FDEC64 -:106780008174945FEF5B5BF370BC258FAD4B4779F1 -:106790007FCA1A4EC7EFDF8FA809CF115FD24FEE25 -:1067A0009FFD2ECC535B46AC06FFCD0D4F47F9F94C -:1067B00097C76C1EF4C336EE70441D808F65BB39DD -:1067C0001EA1FE16AFDF45F86ADC635C978BFEFD09 -:1067D000813C8DFC01E14281BF4214E1CBB6DB2854 -:1067E000AF75D951D587C334B22E82CFFC3DCE23AD -:1067F00006746BDCA9D6DA337ABE074BC88EEBADD4 -:106800007137A767E36E4EAF46931DDA20E4B69961 -:10681000FFF3FA097920F81EF0437E35996FCB22F9 -:106820005C7EB7FCF8C1916FC1FC3EDAFE9B7465DB -:10683000449CFF196685023D4EEFAC9F63EFE5BEB9 -:106840009E8FC53AE9D60B420F697B6062F950DD35 -:10685000CBCB25B668FA558097256D365F181E2F6D -:106860007942F5BBD08E7AD541F74F2C7EE2F9976D -:10687000AF84F92DDE65CB99CAC170A1FC96F46A8C -:10688000443E2F8BD367D153CFDB314F139FAFCA19 -:106890008AD369F1AE7D76CCFB34E373E2CE7D76AC -:1068A000BEDE4CF4DAF9D614D4DB2D3F3E67477ECA -:1068B00078FF5985E517F7FCBEA1EDF9749433888C -:1068C00027D42F926EDD74EC41BFE8F4A747533B09 -:1068D0000FC6792E44C7BFE019845CE2F79F3E0DD6 -:1068E000F36878CDE1433C34FCF4D67484E73D6B27 -:1068F00013E7FB47D6E5A1DE6EB085F33C54F2E723 -:106900000D5BBF41FCB8E0C56FF0FB9C98BF00D7A2 -:1069100033C05B8070CEFBE1F504E77C16247E6C0F -:106920007884DF6F78D6CAAA12ED07DAC4BA796F15 -:106930009B83360FEFD919BF2FE4F7AAB80F6B3935 -:10694000D92BDF10308384A6FA5927A7D7CA7EF245 -:106950009C3D976F8DA255E3F6BB48BE7D30C09F2E -:106960008FEB1FF060F4CFBE38395FC845BAD785CA -:10697000BE03FE9B88CFB17DBBCD9F32D2F09DC8B8 -:10698000BFE5E3AF14E3C3BC53D1CFF75E9E719F65 -:106990002BCBF66EB9C0DA999ECF92C981ED1B89D7 -:1069A000BF3E39CAE5CCB2C8CC2A7ADF6E8BE6E3AB -:1069B000FBC8BE590AC909B04312ADF3ED36B1CEDA -:1069C0008DEF619E56458FDF67F9F93DC92FF3EFD3 -:1069D00087F6BA751DE71F7BFC79717CBDCAFC8DFB -:1069E00005267B4E966639F1B0494EC8EFD90F7334 -:1069F000139E8F88CB8730E16F892DF26F3FC07572 -:106A0000FDAA83CE452E79C246F7FB7CF8F8FE97A7 -:106A1000BF0EFCFFE14EB99E8DF2D7BC9E1B9EBC03 -:106A20009E255ACF1FE60458C2F50CCF13AEE71CC3 -:106A30007EDEE0FF96FC5D9044FEBED0AFA7DD7128 -:106A400015543FF8C9E222DA9F99F02BF16A96A714 -:106A500037A3B190DB539EC29FA34C874F8947C990 -:106A6000A78BFE63298DD3CDCF925F253F77F3AB04 -:106A7000196E233ECDEF37E2DEA93C4E7FDB1AD8FC -:106A80009763BCF61995F2F33AB5AEF42C18779DDE -:106A9000C8EFE9F4887A26AF77E5DAD7A33C91CF3F -:106AA000BB5278BE4367A02B3D53B71F786BAF9A9C -:106AB0008EE7013A2289F332286303FD2049F2363A -:106AC000E4B9DFCE54EEEFEB4CE57EBEC9AA6B60B5 -:106AD00008F777AD3CBE34B7F9C674DCDF77EE1D3E -:106AE0003CA31AF70387549E7314F65B0B00BFF5A3 -:106AF0001C74768A85BF3F1EEDF7BD8BA7623F737E -:106B00003719F132DFB5DD8EFD9C65ABA89C7FBFE8 -:106B10002DCE27F0DF22CCD7423EFFA1E9F9DE6B74 -:106B200089AF1699F82A887C95E03C4966A158AF50 -:106B3000A5AC94EFB7457C4CC8BDC9EA8819D59877 -:106B40004F79909FF738BD5765EB11DEC745BC2CD8 -:106B50009C4BFCBA0CF85BEF37FD08F96E58723DA0 -:106B6000FFD1CF8F8FB9139A2CF9C51F473E0CE583 -:106B700047BF78F592FFC2FA2F5F19F847D6B3FDE9 -:106B8000C467FF7A0BE5753EEBA07B4D3B9FFDD5BF -:106B9000C03BB1FEB483EE17ED5CC3F7D9E167DD0E -:106BA000A4FF3B07707BB1E59973233B487FF17BE2 -:106BB00083C717F27B2A4EEFFDDB1B0AE6F3ED05D8 -:106BC000A8503E8AFD5BE3D329B44FEF7CE69C617D -:106BD0007FFACFC2B34C9CBBEA74B36A3C27DD9901 -:106BE000C9CFA936FED7B81FE1B9CBA5BBF7D9EB02 -:106BF000E1FDC4FFF3F94894439D4F72BB03ECE100 -:106C0000ADCCC7D8570A37DF6B03FA7D8C3622AC80 -:106C1000998EC217A7E179929E78E178E8043C202A -:106C20005C809706949FC9F0714B213F07F3AF87B3 -:106C30008F3FDF82E32FD93B96EE198EE345F1F3C8 -:106C4000E76ECAF700F8F9F367CF8D443BEA42F0EC -:106C5000AEFA5F06EF0FFEC5F97D5021D74766BE3D -:106C6000EFC9D7BFBC8DEA3F75FB68BE7D5CEF4FB7 -:106C7000FF2FA3F7B1FF6FE97D48D0DBEDC1B84C22 -:106C8000E7339F0F641701F7B97F593AF70E77B7CB -:106C9000DD63F13947C3FC5E6391EB2B95E4F9A307 -:106CA00043FA2B721F44FB0C790FF7F49CF96447ED -:106CB0004CF7737F4C0B2B3B88E7ECC27E95E217B9 -:106CC00094BC0378689F551AA13C316B78E8F73182 -:106CD0006FEC86A53E7E5F9971FF353DAFAA0AED48 -:106CE000B923CD302F6877C46DF1B4000833FC2A86 -:106CF000D97F5092DDF78709D7521ECA8C0AE33E2E -:106D0000E4EBA6FDC48DD5C6F737B06DB998EF7723 -:106D100043838DF293AE37B5B7F4F7105E6E644DD2 -:106D2000EBB83FE7E2F034AB3FDF8FF5C443EF78D9 -:106D3000EB8127B1DFA4DC21AD27DE1C41BEFF744F -:106D4000C00B616F89BCBC157DC22713FB5287182D -:106D50005AE2D7E1E7F78EEAFA25BC48BC5F2CBEC1 -:106D6000259DCC7897F8957833D361189EF7CC8D14 -:106D7000E33F5E1AEFD566C26E9CDE6D37BA088FB0 -:106D8000BFDBCECF4BFCAEA27E5329D61FE7F7C1A7 -:106D90009F1D3F8A3901DE2336B687E2427EBFE679 -:106DA0001913CF9F512A7E45F109CC5FD4EF57319B -:106DB0007F510F17E62FEAEB98BFA86F8FF98BFA78 -:106DC000F798BFA87F8FF98BFA3AE62FEADB63FECC -:106DD000A2BE8EF98BFAF698BFA8AF63FEA2BE3DA5 -:106DE000E62FEADF63FEA2FE3DE62FEAEB98BFA89E -:106DF0006F8FF98BFAF798BFA87F8FF98BFA3AE675 -:106E00002FEADB63DEA2FE3DE62DEADF639EA2BE33 -:106E10008EF989FAF65F8E3D67A857B2DF18DA4F10 -:106E200074BE64A84FF6FCD1D0FE2BDE1386F7D7D4 -:106E3000681F1ADE4BFA5F5B72C6F01C631FE131FC -:106E4000B88FE17FA6F9FE66E8C7CA021427B5B37A -:106E5000262A9DE8EF853295EDA4D205CB1CCBF711 -:106E600087057FDA1FF9756B783D32D79171E70698 -:106E7000A2FCFFDDF8EBB85F42C41766E03F356067 -:106E8000E2B4CFFAE33E57C64FD3632A8B8E023E5D -:106E90008C29547A62692C9A0D7C184BA1322B965E -:106EA0004DCFB3639954E6C40AE9796EAC80CABC8D -:106EB000D8602AF363C5547A63975159101B4E6505 -:106EC000BFD828FAAE30564A65FFD855F47C406CDE -:106ED0001C95036313E97951AC924A2D762D95C523 -:106EE000B16BA81C14BB8EDA0D8ECDA472486C3623 -:106EF0003D1F1ABB89CA4B62F5540E8BD5525912ED -:106F00005B4CE5F0D8422A2F8DDD4ADF5D165B4EE3 -:106F1000E588D89DF4FCF2D81D548E8CB550794587 -:106F2000AC994A5FEC1E6A571ADB486559EC3E7A09 -:106F30003E2AB699CAD1B187E97979EC212AC7C42A -:106F40007E44E5D8581B9515B1FFA0725CECC75480 -:106F50005E197B8ABEBB2AB68BCAF1B1FFA2E75786 -:106F6000C7FE93CA2FC5F6D3F32FC7F651E98FFD9D -:106F7000869E57C60E513921F6123D9F187B91CA45 -:106F800049B13FD2F3C9B157A99C123B41E55762C1 -:106F90006F515915FB90CA6B62EF53F9D5D819FAA6 -:106FA000EEDAD89FA99C1AFB1B3D9F16FB2B95DDA3 -:106FB000FBFFF1497F57C0721EF7CFAEAC3EDD57E5 -:106FC000B6392D9DE4E2F4555C2E3E98F6F101921F -:106FD00093E31C9A8384DF1643BC8B7E4402F67DC8 -:106FE000FBC6BDD71FED9DF595275EBF15F5D97280 -:106FF0000713FACC24773F73097F27C37CC49B0512 -:107000005FFFAE627F2EDA51EBCB3A96A0DFE4DE73 -:10701000E28E1A2C0B07703D9925CA8201C2CF5A05 -:10702000C2F56FCDF2A1FCF70572FA065FB5D0DBB1 -:10703000B2BD5224EAAEAE81745EAF8FFDF4B5DD11 -:1070400085F2B03EEF1FBC62406E6FE707FBDC4F7E -:10705000C517D44FE580047961E67EDE14746F1B9A -:1070600010988CED99D53F12DF4F5853A0E2EFAA4C -:10707000D46E523CC82FF56B4BA7205DCB989FFC7C -:10708000923727C9275B2CE85AD76463E89FACD3B3 -:1070900018F987EB76F33C64F4A74E037E6910FC85 -:1070A000B274E39FC9EFD4D0B480E73D45B87F4ABE -:1070B000FE8ECDE2D6B617D0AD77961DA6FCF8C5EC -:1070C0003B8CFEAB46E19F5ABAD3F4BCE92B09FDD9 -:1070D0009E66BFD4DC01C2DFE9E3794F4CED4F700F -:1070E0009F05B8319F24789BDB897A03F0417118A2 -:1070F0008907E9F794F8603DCF5D50FEEAE98343E4 -:10710000294FEEB4A6E563BB603AFF3D2BC51A1CC0 -:107110008BCF018F94CFD2D59C46F9506F811ED072 -:1071200030F1CA131C8BF7C775BC368089FB2B8DD9 -:10713000F108E726CA13AF8539605E4AED63D9745A -:107140006E13FA1BB907FD9A8FD9281F29CC5678E0 -:107150005945CF7845609D8DF8A26E4F26CF4F0BD5 -:10716000FB8FE2B9024997B7D60E9E82794D751B07 -:107170008A4BC95DB7C746F6A18CCB4A7AF5CCDFFE -:10718000E6F9028D2CB21E5397805E2713D2AB75A1 -:107190001FD115E8763209DD4EF646B7874D7443A8 -:1071A0003FF58DF8725536ADE79A35D1A14D3AFECF -:1071B00034FBFFD9DC2BE9DE1399FF5CD54FFECE03 -:1071C000982F0FE97B665339D1CD4CAFAABFD713A7 -:1071D0005DD86B6EBA77F8E6C16CCED7E0F91CE1EA -:1071E000F7BCB9E51AB2BF770B39F7BBD598FBC925 -:1071F000D88BAB9DCC0FC6F74BAB3D54FFC36A2F6A -:10720000D55F59AD51F9EAEA122A4FDA795E915CFD -:107210005FC00894DFF7B458574F0F90FBB2955EEC -:10722000F47357FDFDA5720B89BE37A64F1E40763D -:10723000BB215FA47A96311FA4C326F2CD362A3E25 -:10724000BC4FA62E7095A13D2B1915AFA3FE11F9C9 -:107250002B751B32E91EBB9BA6661BDADFB0A1D0E3 -:1072600050FFFD008DE09E5935D8F0FCEB359719A5 -:10727000EAB5E2F723985641EB46C6BF407373BAAE -:107280007878DB4F9AC6E6DF0EE37F72D846EFCD03 -:10729000F438690FD37E3EBCCDE1C3F8DE293CFF54 -:1072A00006F5537F5029BFE8948D853D20E24F2994 -:1072B0006C2D96CCCAD7D5D9637C5D55FD5D65B87C -:1072C0008F673F71507CB07E8BC2C27837431760A6 -:1072D0001EC65DF96307C13D778BCA8274BE4ADB67 -:1072E0008971F2958F0DF3617CF4E6C1D10178DEEE -:1072F000B0EBE7293E3CF755DFC1BF3F05FBF34C40 -:10730000CC8F52CA281EF1A769ADF32D986FA71E26 -:10731000CEC5F5FAA727F9EF9A2D5CFE87311EC07E -:10732000F3A21776BE5C01E39C6C5569DC0F7738DD -:10733000DA545AF7FE7CBCDF360E7784FC14D7F69D -:107340000BFC0DE5F507F3232349FEACE2FEF19EAD -:10735000F8017891DEC8AF3A7916D76F3CFE064245 -:10736000A800E544BDCD4771D9939B6C142F047DD3 -:1073700040F906275BB32D5C0E3D497C5767D5EC81 -:10738000FA71EB36A97EFEFB189A1DE7CB36AB41AE -:107390003616EB3C3F22BC4109F2F88F91BEB72E66 -:1073A0001F4BE7A2CD795CB2FC18D6545017575A40 -:1073B000F40C8FFFB2D11D567D9EBBF4CFB060851B -:1073C000E13EA325831EFCCE78284FFBF9D58B67C1 -:1073D000B7BB494E7E64796ECCED507E382DFCAE45 -:1073E00015E8F2A21A1C3610F3862C9BB62A145705 -:1073F00039F11D8CFB7FF084CD47CB50E48D2DFA05 -:10740000C9428A4F25B7179897C7AFA3798A176FD4 -:107410002766942F329BED14FE8508CF33C04900B8 -:107420007E3C4B785CEC44B9FB6E3C3F5C6F3A6F42 -:107430007C429CB3B872A062D0D7770CE472A0DE15 -:10744000C2D7277B96DF43297F2F4ECA71296FA5AC -:10745000BCFEEA409EC722E52C633B49BECC17F731 -:10746000252FD9E1E0E78B34E6413C2EE4646277D6 -:107470000DE4EB7A91FD89EF235B2F60EDA4F73EDD -:10748000B045E6B717E3F76D6BB3E87B9B2F82EB54 -:1074900038227F8FCE4A726401E3F35CDAAA44A2F9 -:1074A0003A7F87FC7D12867A4227777AE805933EF9 -:1074B0009827F4DF3C66CA376A35EAA9409A9BE010 -:1074C0005AD42AF2B0BBE7A5B2F318EF0A465E9889 -:1074D0004EF3567C9104F358C0BAA2782FF2D2C76B -:1074E000F93926F3BCCC70F4759EF37D3327E1FDAA -:1074F000CADDE39AE62DF1CDF060958E0E12EFF322 -:10750000C31C9FF3F72A44AF7784BD25CF079AE9C0 -:10751000BF8005A6A39C5B703FEC338BE3FC20F996 -:1075200060E1AE089D07FC90B5A6BB603D2CD9B2CA -:10753000EB8671F0FD821FBE68477EAFC98A0EB52B -:1075400064C2FE333CE9BB555727D0FB263DFF45BF -:10755000E18909BF157D077899B75DA53C0A5D3BB8 -:10756000914710267C3584F9EF09361C557D2DF0A6 -:10757000B4017FE6A8ECE2E72BF1F63F3D6FB35D87 -:10758000F38B81BDDB356679D3C3AE31E9533CCF94 -:1075900081FAB32B97E7A77F62F56764919C36C9A0 -:1075A000E1DC32BA8F55CAE1F9420FCA71E6A1FE99 -:1075B00083FABB5B9E4A477FC63BF73F9547F91A64 -:1075C000A86F46C4F5CD6DF57CBCDB7E9942F952BF -:1075D0007F9AD63E12EDC19A477E95AEBFEFF54F2A -:1075E00005C1A30371BE423F2E55DB06E2EF1A4AE6 -:1075F000397BC17D5B3238DD1780D36D84B30EE1FA -:10760000D49D53A91770BEBD81C377621387776E6F -:107610000F38C31457B9ED470E5F98EC8E28E9F583 -:1076200053BB5486FBAC6EBBC364079C65AD5B115A -:107630001F4B57BCF28615F862E125801FE0839A44 -:10764000CD0ED2FB0B7FCEE3A91F2895F914D03FB6 -:10765000104DBF039E2F027B01ED8DF83CBAED80EB -:10766000CF108FDD76401FF1B74CF8B596EDFD15C4 -:10767000FD8E96E2E7F998CBE4BD367B4CF7DA68ED -:107680002803F8397F27D2A9BFF93E2EEE9FFDCB04 -:10769000D03FDFB282F8BFEB12FD39B6C6D4A80DD9 -:1076A000F390BB762964272D5D59995EC9F07C1B48 -:1076B000F7AB151471FDA6F8FD945FE300BAA6C2FE -:1076C00078FD8B34FE5CF3F07CF31F32BA4747CE73 -:1076D000D7FC1CFDED4ED4872E0BE94333FCD716A7 -:1076E00071BDB954B5907DBDC4CEEDEC4E717FC572 -:1076F00070318FE145FC9CC315C2AFD0897625C699 -:10770000BBAF76D0EF18313689FCEE56C6F9CF2ADA -:10771000F1E6B17EDCBDBEC97EEEEA8F78BA85B5F2 -:10772000D3EF224EAF98A9E1798637F29C744F14BB -:10773000FC09603FB3453F476CFCFCC21B3806C0E8 -:10774000355BF8A7DFC0EB5161FC370AEC64D786E4 -:107750009F7190DD70572AF71FB29C0C2BAE87AF3C -:107760000B3975F378871FE5FAECF17705B084FEE5 -:10777000C20CF055E3EC5A570AE3345BB8BE6FCE47 -:1077800062DC2FB0B6A31CF1770598C998BF0FD063 -:10779000EF3E9FDD1B1F19CF4F2C413FC3958C330C -:1077A0005805E1D7505F62E7EF6B1FDD31E3FEF173 -:1077B000B04FC0AC29D4338823E48BDA0CDAFFCE87 -:1077C000C0F30559585A89DFBE6665610B2F37B87B -:1077D000E85E25AFE17761AFAF60D10C802F7AC84A -:1077E00078BEE3C6A8253A0CE345D6E83EC49FC55B -:1077F000A9D93C304EA04A2943BC2F59D3B7F9AE82 -:107800007CF4A919F7F7873ADEE785F3BC43A17C3E -:10781000A1D9B0E8914F6FB1B2036A19A71FF26105 -:10782000639616A676CB399FCB7325922EA5D0BD35 -:107830001EBFB3C5FCA09F0DE9F8BD3DB15F252C6F -:10784000F852DA6B8BC5BA5D2CF9EE71E37ADD265E -:10785000D70DDA8780B7D9A24CC6F78F8A75F16841 -:1078600011DF67DE5324F7997D1B6FA9834509EE6D -:10787000671C444739EE0C513E523488FA93F3901A -:10788000FC3B9F35513ECF7CE1A7B18024A1FCE0B9 -:10789000D61F71BF9029EF080C25CA6F5BB4DDFCC1 -:1078A0005CE7E7510D7289FCA68ABD6B2ECE4FF9BD -:1078B000528A0FF97DB67D27F907CCED6CF8FBA94C -:1078C0001877DB00769522E26550776C52E8772FC7 -:1078D00066F7EFBA1CF53948EB29742E54D8DBF360 -:1078E000057D1DE27EABF9685F615C0DED2BC4D7B1 -:1078F000166E575A853D5CB7C9686FCC5EABB33B1B -:107900007961B81FC061CA53B709BBE34D7BD7E5A6 -:1079100028F7CDF705BC69E17084F318BF573387AA -:10792000BFB70AFB52F2D5CF8A6C86789B3C775A58 -:1079300083F28ADFDB60CAD372D1FD31350ABFBF63 -:1079400053FA215F17E569B043E9BE9CE369140768 -:1079500037FB273B2BDD618BCE4F7973C66DD3117F -:107960003F35E9762B96AF77DF2BD641E31FF70C37 -:1079700022FB677DE5A82D989FF4DEA36766380794 -:107980005034459C9F8AFD0EF3E9677D06F050FD5B -:10799000AF33FCB08FEA7CBEEB162788EECF8B3E70 -:1079A0009D61053DDFF940D756AC67686A80EAF70C -:1079B000760DC43B9733220E5E6F96FD3902D85F79 -:1079C000E743BCFED1A38E4018ED5F716EA9E64A75 -:1079D00085E4AF0BD75779DCCF5463798E9713F8D2 -:1079E000EFA25CA89D570BB88ACAF13ED493F4FB72 -:1079F0000B8307F95D45807FCFC0E0392C17CD544C -:107A0000C2763CEF7F347289D06B097F27C425D6BC -:107A10006B617180BE977E74E88769E53DFBF96F05 -:107A20008E8B3EA000800000000000001F8B08002D -:107A300000000000000BE57D0978545596F07DF5B7 -:107A40006A4B52498A244042162A090901031490BC -:107A50004080A04512202C810A28A2A0168B10106D -:107A60004840EDA65B7AAAC226E216D4B1691B9DF6 -:107A700012D1C66EB5A3B204D92A6C823A5228DA62 -:107A8000A8A041504163774418E30CB6FF39E7DE04 -:107A900097AAFBA8B0F4F4CC37DFF7878FEFE6BCEA -:107AA0007BDF5DCE7ECEBDF7651C63AE7A1B633F88 -:107AB000E3CF0DA1D2D6D5C05821632F3ADCB6AEA4 -:107AC000504E5D9813EFC967CC9EE18972003CB7B8 -:107AD00052F199FB30C68EFA73DDB18C8DBB423FFB -:107AE000BFC8BCA49F847FA49F8F74FDDCAEC0BBC5 -:107AF00083E03F733AF0FD3BB25DBD1D1D19BBEB4A -:107B00005F9807FB6165430C6C0063775B19FD7C34 -:107B10005FB335D75A00E54B96449609ED5ED9968A -:107B2000310BFA618BE1A514C6BE69FCC8EC807EFE -:107B300016B4AACC95C85875AB42E5824D8DE611B6 -:107B4000D0AE1ACAD2B0F9CD13F365ACC93821361C -:107B5000F4BCBF83CF97B1358CE17C5E396BF440C8 -:107B6000BBBB0CF55F3E95048F072BCEE71D97AE90 -:107B70003355BCF72963E5F5F997D60F722854FF02 -:107B8000588EAB08D7D905FA405835F0F5EADB2F07 -:107B900015FD4D8D6677B8A17EC68058AB03F05DAC -:107BA00078D4B32C16E6316B5D663F15FAE89F5129 -:107BB0005282FDB19983257C9577612C88EB33B691 -:107BC0007462507EBFA3309EC1BCA62604EF617DC7 -:107BD00019FB8DBF7B9D752863637E0B6DBAD02B1F -:107BE0002E06EF965B04ECBBDE5D560CF0DF558293 -:107BF0003D8EA23A1FBC7F10E703E56D037B45B3C2 -:107C0000DE80BDCC18833D9EB192F469BF41BEB801 -:107C10006DE0D011F87C982536771AE197117F94A2 -:107C2000A4BB27633DB667B00E8F39D0F166588785 -:107C3000E72DD5E98375787AC778FC11F03649E0ED -:107C4000E1370E3B95070D30CF7EA17968E30367DE -:107C5000DE1384FE4E2F4DE9BB1AFA7B367DD81217 -:107C6000C28B18FFD974CF9CF0F161B9BDF1F9D581 -:107C7000CE639698C71241377731F099C0F5CFF0AF -:107C80007F42598C04DF383691B9F242F0A41B537D -:107C90002578F2D46CA9FDAD33AF93EA2B2CC182C9 -:107CA0001A5B88BFF5F3D14A2014F16975ECC63828 -:107CB00006533CB1E3C28753404EFEB641752A30AD -:107CC000D7393B9FFF7008B43A070B4E04BC9D7335 -:107CD0000100EB3DB749F5FB32913F5CC68A4E8C03 -:107CE000556157D07EFEA1D7CDC3E0D7AA9AD963FC -:107CF000918E73FCA6CF9BC2E679815D34B32C9044 -:107D0000878DF2F36AF6D0776A6F840266772FE880 -:107D1000A75E575F33F22B1687ED8C9F3769EB8494 -:107D2000F1171FCF7C645FD8BA9F76C4267D791D7A -:107D3000FCD28FF5FB59C5F19A0FC00A596943234C -:107D4000D169D921D5892CBA2C5D610AAC73E4269E -:107D50008B3F0A44EBDB6D27CD0EC0D70F5EC723E8 -:107D6000FB4C28FFB58C25E27B27CD4DF07CA8C3CA -:107D700041785AB0E33B3303BA8FDCB190E47A0424 -:107D8000E8B178E09F6023EBB509FAF765C63A9F42 -:107D900087FEEF5A350A848BB1F8D62954CEAB1B37 -:107DA00045FDCD6F9D48F082D618820F46074730BB -:107DB00098C7C12D1DD83298C7613590FB7BECC7A1 -:107DC000124B7AA222F5B6A5B8EE83D1BEFCBB61F8 -:107DD000BC8A3F8F2C47BC2ED8A4B890CF2A5476AB -:107DE0005049C0F946517F15EA7B050BE1F998D25D -:107DF000589F219EEA19837A7540EC6A06B06A069C -:107E00007D11813F0F09FD626AE2F31EDE5A49FDD2 -:107E100069F5871D59B47E0D3675DC609C6E0BAD1F -:107E2000C7D4A45039BAF53A2AAB37551A1D30CE0B -:107E30005B79CF25219EA0BDCD13512F0F8C6711EB -:107E4000F497565A843E9E82FA18FA3D90E5FA025B -:107E5000E572DC9226A315F5A9CD6A7F1EF8605C59 -:107E6000515FC7ACB075A97B6E610EE0234B528B9E -:107E7000C905FD4F81325C7FDFD18EBDF9A64D7FF4 -:107E8000D752A9D925E65CC218F0F9ED763E6F4DC0 -:107E9000AE8E89F6DAFB4185CB876FB3C5FF3CFC1C -:107EA000FE5996E7279C6F70189BFC1AE9D3604631 -:107EB00065EC3F6FFE405F2BD23FCED8C412E07D11 -:107EC00043A6367F2ED7579A7F8B98FF61952D4614 -:107ED000BE387CC30D4117CCABF1BEFEFDD13E6870 -:107EE000E325669AA93F666FB988FC5ABD2BC6B1D7 -:107EF0001AD65701B441B865A7C5BF3E939E332536 -:107F0000094BCB7A05EAABE35A72D1FE94EE8E0AA6 -:107F100020DF36EE8E32A21D7933C79398D9119F98 -:107F2000772F5380BF5D3B2C46E48364872B29B3B6 -:107F3000B0FDF95E498F69F2A8E733CF2A2E7F1E84 -:107F40002187D304DF4E177238CDE88CFF25CCFB98 -:107F50008E7754867A7CFA12A5D7A602D469B1CE60 -:107F60009C3039D4E4CD847CD91FF993F3E5BCD699 -:107F70000E42BE3345BF5C0E2AC040237E2AAEEBC4 -:107F8000E047F95ED09A48ED3479D5E4343DDB53CF -:107F90008AEBAE5806F20DE37896A614A0BC84F8DE -:107FA000C46C477E023E499E15C607CB1A7F342219 -:107FB0009F988A15E2130B94A5617CE46EF353EC51 -:107FC000233AC13CC62DCF34AC66A1FA72E4978E39 -:107FD00057CFEF85A2FD745B20C700FD996AA29C74 -:107FE0004B615EE7921CA4C7163D0000A06091C9DA -:107FF0005D8A7EC6A2DF294ED4BFE87FA0FE19703D -:10800000ACC6EC099BDF2DADBD9903F034B1B51BB7 -:1080100095FD333C93100FD35A27093CF6A69239AD -:108020008A0C389F7BACDCCE9CAFB9FF761CEFBCD2 -:10803000DFE2C4F1182BE2F416F32D74393BFF1282 -:10804000E7F78E893D0BEDCF44795494CB33E9CCDF -:10805000FE384C71C65AA033F47BC6C47C76A0E7C8 -:108060004C803D087760AE0EFD50EE609D6176E578 -:1080700082B12E8365037D17FDE55323A8C239B96C -:10808000C1DE011877EA306EFF9B3798C8FECF6BD0 -:108090007C6F8001EABFCE747566A07BC774F1D493 -:1080A000E07AE64EF0BF6202F8AE875F8F1BE4080D -:1080B000E1B3DE18C831C2FBF580471FCCABFE210F -:1080C000B5DCCFFD9E98CA5E57E6EBB9ADD9841FEB -:1080D000CDDE68FA7BAB37191611D2E357B2431ADB -:1080E0007FCF1772301FE58085DB9B4AF730E4C3F2 -:1080F0003CC599C3C2ED0D97074D4F03BF93DC54A8 -:1081000064A73B97B190DED6DBA3BD6AFDE3836134 -:10811000BDCBB33CEB510F94FCE9BF5EFF18AAE660 -:10812000BDF66219D269D8750A5395ABD1933F9ABF -:10813000484F2EA964A427A10CD793A676FCF43F40 -:10814000645E9B9EFF57C1F7E0DF92DF887A3CBCFC -:10815000BFCFB24AB6219D77652A5CEFFE93E6ADAC -:10816000D7EFBBDAE4F5EAF4FB4BA2FD95F4FB1183 -:10817000D4EF8597EA7306FDA13EFFDBCE1E7ED4C9 -:10818000F79F32D0FF68DF76C4389E17FA9EEC4125 -:1081900074BCFF72FAFEB19C1947103F11F4FD7BCD -:1081A000FF0C7DAFF1975E1EF472A0E7FB310F82EA -:1081B000FF8574DAAA30D4AF217F8B111F1FCCE268 -:1081C0007CACC94D98FF45761EE4C19F9379A95CAC -:1081D0007E5FF3970207C69B05B17D9912E2774D4A -:1081E0005E347ED7DB9139591E35AB302427F35EE0 -:1081F000D3DB81F6F8699B09E357D3BCEFB81D8048 -:1082000032DC0EB4E7EF58B3AE4D0EFEE32AF92987 -:1082100035EB7F9C9F52B322F3535A56C77F9C9FE6 -:108220002E4347B2331A9F8D799BF307CBE6FE3E70 -:10823000F00BCDFBA039DDBF2C13F51ED787637E75 -:10824000663588CF3B443E41E3D711D91E17CE5344 -:10825000A333FAF7E8B75FAD5F3825A986B9E0F92F -:108260001D5086EB0D0BD22F827F3FFC1AE9DC3FBD -:10827000EBEAE83C49D0F99FE8174ECB8AE0173289 -:1082800017B7FF21BA582622DF7C1F303294AFF691 -:10829000E86A5ACBF1AEC12B0246CDBE26A27D05BF -:1082A0007E99FEDFE1978AD2FAF35670FD7CEB8B64 -:1082B0002B8D83001F454CE43F86AE717543FD0254 -:1082C000BF0FA61E293F725815B0EFFA2365308FF5 -:1082D000318FB7D5FBB07E78717C5B3E054309AD2D -:1082E000BD77FD90230FD1BCEB38BE3D4D4677AF37 -:1082F00030B800E0D830B84807AFE3EDD18ED8A948 -:108300001F3F974FE85FE987B0D69F9003D632A210 -:1083100003FA8B9B143BE6436E2DFE9B19E95351E8 -:10832000DA742015D6FBF8FAE195B61EF01CF5209C -:10833000CCF7B9F5156B7C46F17E27CA8FD18FA596 -:108340005E71A940A779458A3F2BF3523C3E9725A1 -:10835000DB33FC31CAEF3373C1B5BD8FF24BEF672E -:10836000D1FB01CB358C7F733173F923E8C957B545 -:10837000761701D6FA07DC4DACE771B8BEFD3621A1 -:108380006F4183613E037C35AE9FB606F365C3192A -:10839000E78FBDEB3D95980F2342EBD67BB9F9FEF5 -:1083A000214B8EEFF0C721BF1FB81CBE5EBEE47D1F -:1083B000C11F5532BFC41BDDFBBE8779C427297698 -:1083C000F46B17B8A31E42FFBDA254E3EFBB2A5DB6 -:1083D000C5B0BE2826E5FF42FC3DAF12F97B01D3B4 -:1083E000DA2F588376C96D686BCFF97D87D2F67E18 -:1083F0001EF00FA5E2E0FD13EBE7AFF1D9881E54A4 -:108400004F70B7CBF07BBD0E2ED6C987E06F924F71 -:10841000D4DB809F9C087AE33F059DBF55D864D488 -:108420007BC112EEEF05B378D9259BFB77866CDE16 -:108430002E3A5BD0393A0C0F69213AC34F00E388DA -:10844000B075139E6E49D2D6FD70E55858573081ED -:10845000F552804F92B21F58B33C8C4F3A653F5C47 -:10846000897808F5F7E011D4FBB7083C75C97EE8B8 -:10847000888FEB3305E56E3E3104F0C126C5A7C2F7 -:108480003AE7231F4458E7E94BE5C6A77BDF65BA07 -:10849000CCFB5F5FCA872EDDFBCC94742DEF0B3ACB -:1084A0008DD5D1B15C47C7321D3C5583FD923ED37B -:1084B000F4DCF486352B3A2561BE51413381FADA7A -:1084C000ACF465ACCF734F56DA0621BF3A4CA9A085 -:1084D000F3FB3FB7F6881578B912F519F1EFEFD62F -:1084E000B8801F27A2BC13FC54A5AB0FF24FCD8A56 -:1084F00064683FE8B9DFAFB142D35B97AF31A14FBA -:1085000033F4B9A7D718817EB714FCF900F667AC2D -:10851000FDB72363332FC3AF75BA75ACD3C13E5DCE -:10852000FB27AEA0DF97EBDE5FA2AB7F4807AFD59E -:10853000C1ABE4F7A7CD54484EA601FD1071579288 -:108540009B89D96D79A4367BA6D8C84F92F87ECC8A -:10855000320EDFF6DCCB95ABF2C3E0EC3F5786F38F -:10856000B189F19F2949CC87F6C3D48E3E1B93DD98 -:108570000E1FE5E9ED1DAFFF0C7F4DA17D16C92E45 -:10858000EF5565B851D5E6BDF3C83D367CA8C13B73 -:108590002AD11F6F77DF83BD5189FB1E631E15B083 -:1085A0006F5B25EA3D6D9D5AFB113FFDACE278778C -:1085B000676FABDC80FB2A25811CCCD74F4DE025B3 -:1085C000D81915ED58B5C8778CD8A9BAD1CE4C8D2D -:1085D0000EE42CCA0F5B27ABCFC57536DEA7127D24 -:1085E0007CCB783C329D39CD98AF688C8F5FFC0294 -:1085F000B4DF7B9FBA18EDDAA78B133BE1FCF7657C -:1086000073BF6D6F7CD74E7702DC18738719F3B593 -:108610008DF70FA7728FEA5AD9027CBCE6B9836442 -:10862000E71B63E2093F0F67EFABAC05B9A8CB7658 -:10863000D0FB9E047BA706F457579B18E6ABC1916D -:108640007A86F8E6614BDFD5308F69B5D7D1FED198 -:10865000F47FAD1C9102EDA6AF30D1BE02FCF4C692 -:10866000797B560F3763FDCCE5A2F48DA472F7DF5A -:108670005F7FBB37B46F794075AE87C6BB5AB3E234 -:10868000A6C3BC4E45713DFC7973B7389C678F6EAD -:108690009E75D9C8AF71B1D10A1A0FBB236E02F40F -:1086A0009B9BE37A3ABB63A8FDEEBFABB40FB6BDAC -:1086B000797A27CC3FFD41E8EF5DADD33B4D0FB359 -:1086C000F7B3BE35129E779B1DF7A07FB93B3A5D8D -:1086D000C1BC0CE03911F3B633857F0DFCB2F8F55F -:1086E0000876FF896C95F072DAB2989D02266E7C4E -:1086F000B06331CE537B4FDB7F33A539FA85FBD195 -:108700001BBA96BC8EEB08F1D96747906FC88F06ED -:1087100078D7739FACF1A12DDC0BFE3FCE23C9357A -:1087200002EBD99244BE0F9A5C9F1B9E8F08F9A959 -:108730004B853EE0ED4EF862296E3DF152941FE309 -:108740009913BE4F62C3F3EF9A9CCC8E8BF5A13187 -:10875000FE2A36D68878FDD4E8FDF257B86FF8B413 -:1087600089F4E8ACA73B2E69417D00F4C47C907E7F -:10877000DCE46E261AB7FDFDC1E6CAB2B430396139 -:10878000CD95AEFCF6E5E4D873DF546EB0B52F2777 -:10879000B385DF3EE269931BF97C7661AC11F7E9A2 -:1087A0004A9EDEFF3CF2E3EC8551FD2C30F1D94FBF -:1087B0005B88BE4DB1B13E3BEE23C6C51A3B40F9C6 -:1087C000ADD0234DB55114A7A89DCCA4F7D4958561 -:1087D0000EC44FA9CA8C56B02B6A9CD3E1E6F07246 -:1087E000CC1BAE882D72207D3B76E3F2D0561F3F26 -:1087F00079B4D23BB46F7676F1E34F0E84F97DCD38 -:10880000FC930666FEF7F7D1AA993B1EF38FFF5340 -:10881000FB68E66EFA7DB4FCF89B91FD16AB346FF5 -:108820007569941FF1A966703B319229B48FC6EC2B -:10883000B0FE5EA17D34F5D7FD093FA7BDC057DD71 -:10884000012F71566AAFFE5AF55B60DCD2449E6F11 -:10885000559FAC64B8AF0678F5D9011E995443FB17 -:108860006B4B859E99A630773DC9BF3303E3E4592E -:108870004F47111D673F33E7C3DF1520DD2A92C242 -:10888000E52953F01FF4C7AC09A17EBEAAFD4D0631 -:10889000CEA7F4DF20BEC4B853F53C790BE9CD1860 -:1088A000DA6F63F6A6870722BFD4C6F4C53CF9EC9D -:1088B000A75332B2F243EFCF5E7A5F2E7F1FE2D62C -:1088C00038D45B51B49E799B2CC42FD31E505D6469 -:1088D00027D3CD64273F5F1E45F0BCB42292B76911 -:1088E00006BEFF063E6132E9778E7236CFC65CAFB8 -:1088F000DB50DF3F1454397D7C826E66A44F71B724 -:108900004492CB3B10C760BFA622BF75A4FE781E61 -:108910006A9742FB4D8CD538500F4C3528A4EFF4A4 -:108920007259D18DFBAFD3329CB7E37BF31FB138C3 -:108930009766F239A8DA7C206E9A6F08CEC27D481D -:10894000B6C542F98D6A5847541C3FF7F01ACCBFA0 -:10895000DAC88C66CC4F39B85ED3E653EDA81C89D3 -:10896000FC0AF5C78C503F3F96EBE5F91D78DE8792 -:10897000C55AFDCF878F8773CEE6EF39E250DE060A -:1089800011BFA0FC1BA0FE6F8CD797C615399AF2B9 -:1089900069FF7E15E64B703E3D7A878D0B704A6FFE -:1089A000E4C785C6AC58A443E2A4C938DECB2AE9A3 -:1089B0002710AA478AD00F7C59ED8FF1ECB407F647 -:1089C0008E588BF0AB7DED388569AFBC4F76EA2EC3 -:1089D000C1674DE8FFA3DD02F85528EFEDC6F5832A -:1089E00047E5F99C7BBB29D2BE9F563FFF0113D1BF -:1089F00063FE0ACE0FF36BFF42FDCE8F0D76427AF7 -:108A0000CCDF6C1A807CFD2F62DED36BD38B8F01A1 -:108A10007F4C37C5DB157834CF576146785E9D4271 -:108A2000B036DEFC073EE864C8E7FD6169117C14DE -:108A3000EAB76306DAB56F5E4ACC981646F76F96CA -:108A40006F8DC37DED5351811C3BE663164639D7CC -:108A5000939C727A7CB33C673DE66B66DA83B1B86F -:108A60001F3EF39EEC04B4779FDA0366ACFFB43E7E -:108A7000D380B0CB6E2F46D865EC43F037E29C0A2A -:108A8000FD009D16289C6FE6BDB4D79C05E33D27ED -:108A9000F8ECDB97DFCFC5BCC1FC8C602EDA61E05F -:108AA000ABDC54A4CB1F15F21716BCA4BAA27A876C -:108AB000F86A01F215C8FF5CC1570B366DFD25CA77 -:108AC000E902E4A77E97F225C497FBE8F96BCF8E05 -:108AD00060FCFD7DC8779ADD0778B909F36B660104 -:108AE000C338086F10FA1AEACB78BD2F9FEC096BD8 -:108AF00032A35F5CAD727F01E42919FD89EA069318 -:108B0000AF294C3F2EC0FAFC507D7B7CB3BF9BD875 -:108B10002FABB5905DDA2FF0D2F4C0E638E48B6F5E -:108B20005FDE7B6030C659AF2976D4FB97C8A1C001 -:108B30005B35E2298ED649FE5135E2252E84A736D3 -:108B400079137C51CD381E34BC541B059EB47AF188 -:108B5000FE01C187F398C0EBA6EE5CDE857C03C7FF -:108B6000901DD1D6E74990CF0FFC20F8FEA858E71A -:108B70003CE01B673EF197CB3C40C4FF50F5EDABAA -:108B8000CF52FE48A3A736EFF81C87A6A75D1D129B -:108B900042746E32B0AA48F9EAAF85DC996C5CAFDA -:108BA0009CAC4DBD7D31E06FEE4BAA939087B157E1 -:108BB000D8B81643532CF9A7BF56EDB8AED23F55DF -:108BC0008EC6756B7C67DAA8181B709F907520FCA9 -:108BD0006BF32BEDEC1EDD81F35D00E7A3CDF3A479 -:108BE00012207AF95E55ECDCDF6D32631E5193532F -:108BF000FD7C7F10F355E394C14A1F9C8FD381F213 -:108C0000CDC00ED27C6CC7EEA3F17C27EECBEC1D61 -:108C10001AE7535FAC11DB7DCAB81ED0F8F2A4C8C6 -:108C20004B9C5CB195FC616D9CD81CCE5761E37880 -:108C300016275D3A8ED6DE94C3E7A5C9C5C104CE1A -:108C4000FFA5CBFF42ED343D8B3F988FD3F0A9E1D8 -:108C50002D4C2E25FC68F2A5C99346D77F54AED87B -:108C6000928EE4B7DE2FD64D32D2296417903FD1D1 -:108C7000DE59CCFC1C5C98DD24BF6664DA77664F55 -:108C800084E71A9EF4CF4371953D03F13FD2964C91 -:108C9000FBE56C79F2BE6E61FED929CC7BA13E7DED -:108CA00051F5933E65209561F65CF3DB6A178EB44F -:108CB0000F43FE7A49A173479AFD869F87DAF8141D -:108CC000FAAB2A58988BFEC4EA9C2C1ABF3AC97595 -:108CD00016DF9F77263822CE118A5F869E0FA8F175 -:108CE000981FDC9429C50FF39AF7919CCF67C19523 -:108CF00018EF4E7BE0FD8A8148FF174D747E616658 -:108D00005D26D9BFB31B66F4C7D076DA8A1C82E72A -:108D10003C7F27871FE07EDDB415852F607EFE54E3 -:108D2000946B04F279CB1AC58EF1D790E70B97DCE0 -:108D30000AF54362BB76C0F99ED870AA6230C611AC -:108D40008B55921BD786C72761BDAB4175E2126771 -:108D500032FB925B91CF8DF12477DAB9C66526CECE -:108D60006F77E670BD715B0ED71BB709FE2D5DB640 -:108D70002C17CF15B43C0B760AF7D7CD8EFA00C668 -:108D8000813B3B3BD7C338D510B626033F9D51B836 -:108D90003F5E656656E4AF43A6E0BD38FF43F7C6C5 -:108DA000F6ADC509A81707A07CB844DC0571148D81 -:108DB000ABE14B1B7FA61857EB477BEF20FA5568BA -:108DC00047C47CCF2E7F7112FA0B6737E624B03090 -:108DD000BC9FC57501BEE7807E7C2D423CB8304704 -:108DE000CB4FF8A9AC1279C443A6BA34DCCF05BF87 -:108DF000FE74B87FFED5B35156E44BF0EBE5E726A1 -:108E00006E57C09F979E83FC48705BBCA74E8DF742 -:108E100044D0475AA9F7F797E7D822FAFB9AFC5DA6 -:108E2000A2D7847FDF9677E9766DE7BA9ABD4018BE -:108E300010886274CEE0FDB2989F5EC7F397B3EAE4 -:108E40002C760BE0F734CA17EE0B6E56B9BF68E507 -:108E5000F2767A675F3FE615661D67CE00C0B38E77 -:108E6000AA4E07B4DFB7E67E3ADF71E73A8575565A -:108E7000C2E2AE27D64C42713BE7F4AC4C81F6E738 -:108E800036F2F328506DD3C55B07521CEDC75BFF6C -:108E9000AC384BCB3FE9F1BF2907E2AD18F8C5C9A3 -:108EA0009C32FE79DCBE1BD8A8A8DFA5F86FF67A45 -:108EB00028AEFAABB78ACA41F5CF96A6C23AFEA64B -:108EC0009C7C6408CA516C3CE54F9ABD35B439F8B6 -:108ED000D786FE17C7019EB6DBE2EDA83FFEEA5D2E -:108EE0004CCFDBF846F0E9D04D8D6A2AA3F63B86DD -:108EF00040FB5DB678DCEE88B00FC7E9AC3F7F730E -:108F0000F7C2819DF1B9B6DEAF7FC5E9DD66C7372F -:108F1000CE88437FB5F1F7893B06219D63E2EDC81A -:108F20000AB3C5399C2FD7727D74C61AFF02E65169 -:108F3000CFAC9BD809E3C33B4D2D6627F4EBDC593E -:108F40001987F9822F8C4D71762CA17D00E761F491 -:108F5000ABA807079733DA1F1C1C303247266DDD9C -:108F600013FF0C6A36FA316EFE06F70DD18E5F8C58 -:108F7000E6FBF7623FF0CE6D3CCFD6965711F985F0 -:108F80002162BD1D7213B47D207A5E5AC49F7FB5E5 -:108F9000EEF571D8DFD90D263BCEF7AF1B4CD4FFD1 -:108FA0005C88EF0DC08F6736F2F3027377409C9CAC -:108FB000897A4421FE9D0BFC6B45FE5B687299E348 -:108FC0002FE5CBD28D3CBE9E5BAF50BCADF1E75CD4 -:108FD000977F04E15DF0A915FEFD0CA6A303AB5F2E -:108FE00089F8688F5FFFD17C803537723E40CF0FA4 -:108FF0001ADE34BE08F12923FED4E89F50DF7758EB -:109000002ABDE0237CFA4A581EFA0BCBCC2C0FCF9A -:1090100043F90CD14E94FB1FA2E27A631E6AB1950C -:1090200097BF8C8E5B8FE50F51197E9CF70F06FB67 -:109030007E8CB3BCB999C4B7BF541D26057E9D98DC -:10904000D4544666A0D4E032A01D5C66213DA2D770 -:109050004339B9220F98CBA81C96CBCF899B580DCA -:10906000F9175A09FE403AFA2F95310917F0287975 -:10907000BF173A4FC4FDDECA2109F76683E739F806 -:1090800085F48946E0F3CAFE099BB3002ECE4DE37A -:10909000709F844213C0B5B51913CBA0FD2DB92E16 -:1090A000676ED8385ABFF0BC3F3E1F99E219908BCB -:1090B000F6DF6C5B8576E06F4ACB02831A6A7F44E9 -:1090C000619F6E574270938965A0BF3DAC6DFE9164 -:1090D000CB55B9AE1B72233C9FCED80ACC4B4CF774 -:1090E000BD794C217DC6DC56A0E778C17FD3ADB6F3 -:1090F00000E9B955A6E636FEC8423D156F44BA8F61 -:1091000013641F6F0C34E2FB3DD872FB9756721547 -:10911000D7FD9CD8BEFE0741655F6AFDC1FAFE66B9 -:1091200082F5025D1517D01A444C01244F057DA726 -:10913000EC78F347EC77998F3545111DA6DA910F3E -:1091400015E631FC0CE5FC18E08B3E58023F40BBB5 -:10915000459BBFDD87623147F3B33C45E42FDE63B7 -:10916000E7EB619EC1C4AFF70A7EFDCACB6A3055FA -:10917000343E188CC3A3B0CDE302B9A81FCA554F23 -:1091800015D2E1AB75CBD21601FF7CFB9AC539161F -:10919000DA9FF1BF1E8776759EF0F7D945357003CB -:1091A000D41FCCECB17E75187F2DCCE576BF39335A -:1091B00090711FEA994C1EAFB28B7B33EE83F6E5BC -:1091C00059A30A5713165C77E786ED4F8E33463E58 -:1091D000BF31298DFBEB6C03B7C71623F3C52650AF -:1091E000C9E2004FA3602E45782E156095F6F3FD79 -:1091F000D41EDBC5A15FE39891CCF77B981BF59655 -:10920000465F8D6E97D013A68C7EBDC1CA4CB8DE6A -:109210001E6C9D1DED9346D7AF843C7E65E572388C -:109220005CB5919E5AB499E7F516295CDF2EDAA950 -:10923000F0FCE625F676F34AD4C955EB66903ED3AA -:10924000F49803FE217FCDB5BBE3038E7FC0EEAE65 -:109250002BBD2A7DB65ED3677D595FE4BF2BF94BEA -:109260009A1E03F2BC98DBF11AE885288375CF16A5 -:10927000731CAE4E7518112F1DAD4ED4E78B9ECECC -:10928000263BC92EAE65E1EDD8BA44E2DF95992AB6 -:10929000D1B5A2219539E0D19C0685CEC98E6D4805 -:1092A0002438AE3585E08A3F742EC175B7ED83FE54 -:1092B000A13BC1675F78BBC0C3F33456ECDFCDB4CC -:1092C00079E4D7A3FD39678379009EDDB65594779D -:1092D00074B3B67848F9594118B806E5CE65F2710D -:1092E000FA586B49FEC5BA1609B95A7488DBEB45C2 -:1092F000C3F87EA1D1D7231EE96F3AA8323FC03709 -:109300001D520B03D07499D0E79664037384D12D5A -:10931000CA11CD1C61F4613E5710E3ADC9825FEE06 -:109320008FE27A3F262F416A37D9368BF82798315A -:10933000E220AE37D6D945EA9779B87FACF1D5248B -:1093400091371FC75A96A39DBC6932D487F5672A07 -:10935000FE8EEC86A958F6AB012FA72FC74FCD1A6A -:109360003FF5603D889F74F801F9207B7FEE28BFB0 -:109370007F025EC96F8B019E74D0C4FC50BF42E077 -:1093800005FD568C7FCEB962496E34BE0BA2DD035B -:109390003D175F24E3AD834BC65B62B98C9F8E6E35 -:1093A000191F9D276749F5299E9E527D6A553F09E1 -:1093B0004EAF192CB5EFBAB84482337DA3A5F6D9C8 -:1093C000AB2648704EDDAD52FBEE6BA74BF53DFC76 -:1093D00073A5FAEB362E92E05EF5BF96DAF7695880 -:1093E0002AD5F70DAC96EAFB1F7C4C820B834F49C4 -:1093F000ED071E5B2FD50F6AFAA3543FE4CC6B1226 -:109400003CB4E50DA9FD0DAD7B2478187B5B6A5F4C -:109410006A7D5F8287DB3F91DA8F4C3E25D58F7264 -:109420007C23D58FC9FB5E8257083FA7C2F95FD264 -:109430007B4188D8908F73D23C43BB53DEE78C11BD -:10944000E5EFD86D0A4BC4F8E7E0443BC9FD35C6EB -:1094500081C3BB8B3844F0F10566BB1DCFB35F49B8 -:109460002F66A33F51887C3E96EE559DABE7F90EE3 -:10947000BD5DD7FCB97830CBC6B0713BB8AC10D06D -:1094800087E0C472BB047774274BED3B4F7648F5F9 -:10949000299E3CA93EB5CA29C1E9354552FBAE8B90 -:1094A0005D129CE92B97DA67AF724B704EDD64A9B1 -:1094B0007DF7B51EA9BE87BF4AAABF6E638D04F7AC -:1094C000AA5F2CB5EFD3E093EAFB065649F5FD0FF2 -:1094D000D649706170ADD47EE031BF543FA869A316 -:1094E000543FE44CBD040F6D6990DADFD01A90E070 -:1094F00061EC90D4BED47A448287DB3F92DA8F4C01 -:109500003E29D58F729C95EAE77DE30CD0BED476D8 -:109510007EDF55F3E7C6E47D27B5332581BF8FF99C -:109520006F16EDC4F3FEEDF9F99A1F58E1FC511ADC -:10953000F70703F7CF5FEA9E25FC7FEE272EF3B9EE -:10954000E97C5E021E78053989F729C47F18624DCF -:10955000A57C6412ED5B90C974E07937F083004814 -:10956000306466621C1213F263D37EEE7FF57EECEC -:109570001B10E3A05F7DB6BBE7CF289773EB5F1DA1 -:109580008171CE1CE65B89F300BB1B8FFB58EF4655 -:10959000C9F928AD1C65053C868D7728AA2EADDF5C -:1095A00065E47794B599DAB7F52BF2550AAC6F51AB -:1095B00058FF8F40FC650439ADF3829C41A0FD98B3 -:1095C000D74EF013DE64829FF43AA85CEBCDA3F291 -:1095D00029AF93EAD7798B087EC6EB22D8EF2DA767 -:1095E00072BDD74DCF37782713FC82D743E5466F3E -:1095F00015957FF4D650FD4BDEC504BFE2F55159F9 -:10960000EF5D45CF5FF3D611BCC9BB96E02D5E3F41 -:10961000950DDE8D54BEE1ADA7FA1DDE0682777989 -:10962000030407BC0709DEE30D12BCCF7B8CE0030B -:10963000DE262A0F7ACF50F996B785EADFF1B61207 -:10964000DC2CF613BEEAAE48F7183598B132E207C3 -:10965000CDFF1D87710F324791E9AF52DCA38B3FDD -:10966000F4F4F85A8C632A01F717FD9F2EB9EB9793 -:1096700085C505DF8BF1EE8F66BE2890875A03CF34 -:109680000BD42630BA1FC6847F3E5BF0254BE27EAA -:10969000F92C31AFD9420E0A913FF3883FDFB996DA -:1096A000384B8BB7ED191E350FF933DDE0A3BC83C2 -:1096B0008DDFC3EF9FE131E7811C9DABB9F3008DD6 -:1096C0006777E6E220159640C79B319F7448A53C1A -:1096D0006C7BE3558B7B12EDD6EF3A9B86F6A8FCAC -:1096E000EF2AE5EBDF35C54EC67C4B721EC74B72C9 -:1096F0009E412A7764B83BE33CBFCAA979E16E2555 -:1097000074FF7F3C86E620E795CC61A273B8CCB5A8 -:109710001FAFDEDC040E1FC237331F9525E91E077D -:10972000BE7F0B0418087B065B3222AD473F9F9E2D -:1097300079DC7FEF996790CA8F32DC3D103FA773C9 -:109740005CD27CE2BA3AC47D9C9667705EFFB1F34E -:10975000BB2F95EC10BEB5FCC6CA61E29CD6424553 -:10976000DB07E77EA295697E22D54FBD97E77B3464 -:109770007B79BCADE4FAF05C8D89F4E65425DA8996 -:10978000FEF6B99A7BFBE07EE16D10EFE1FEA9A643 -:1097900047A7026C00782AE3E72EA61E8F253ED34A -:1097A000EB57788FE17EDF54F03F317E54BAF27C84 -:1097B000CABBEEEF4CD82F4B6AA17BABC037A3716D -:1097C000FD7307A9F4FD86770DFE5C45257E312BE0 -:1097D00030FFD949C02F11FC058D2F16887B39DA4F -:1097E00073E0B71B913E7FDD36308FF669760D72E0 -:1097F000203E9719F8BD3ADF5B2A3F9781A97C3C50 -:1098000037129FFF2CDD2F40E702E9372896EE172D -:1098100034AA6CF1AB11F4E9BD828EEF269BCAFD30 -:10982000D4AFBCAFB840D075816857B1E7503ADECD -:109830001B5C70D04471112B68CA7747385755BDEF -:10984000F8C15F740BE3F3EA8693FC3C166BCA0F16 -:109850003F87F5B0E06B8DBF5473ACE7595BF8FC04 -:10986000F8F8C0E7F7083EFF12FDFE711647FCCD81 -:10987000F06A13A02600A5E7DFEC749E4F3BD737B4 -:1098800093B9A99C0DE446BE76FBD6D0BDFAB9AC1F -:109890009E9E2F289A918170356B294B86FE6E5AB9 -:1098A00055BB3F196637B16ECD70CC734FF04FDBAF -:1098B0008F65E506E54B9F83E464058EDFA4D4AC99 -:1098C000E802E3DDFAD2B01598471EA7723AB0B7A6 -:1098D000391D809F5C6AC2A5EB03B97848C805CDE5 -:1098E0005F938BA94B994B490ADD03699393A2BB04 -:1098F0003E4BC53D16630B9D43A9DE6549C0FCC9BF -:109900005CC6ED76280FC4EDB526075F9B38DDBF3A -:109910007E59A17B365F2B8CBEE7D09EDFA0F99FDE -:10992000207F5CEE3E8DE1FCAF8ABC5E8627B95F8E -:1099300076C83E7F6DF00F88CB26FBBD11D7632A1A -:10994000F13CD417CFEBBDA23897C15CBEEEE0CF9F -:10995000E0E704DAEC00FB392694277CC4C4F376F4 -:109960007A7F575B477BF3B498990FF7B394A203C0 -:109970003FA21F72E97C3DC903002FCB904498970A -:109980002C713B22CD63B918FFE04F3C1EF7A53385 -:109990003A17A4C7A762E7E3B4975FB544F3F96841 -:1099A000764A9BE7A5F3E2F47A3F2F93E8AACD0F1E -:1099B00034459E1DC6371AA39D28AF9546CF7B8898 -:1099C0004F2DFFA6C5C50733BF227BC02E2E4BE30C -:1099D000E78F03EDD9E1E6B6783C2B6427B53C165A -:1099E0002B8E9C8F745BEDA4BF263027D98B1EEC89 -:1099F000B8862FCA63A9B84348795E0FADC382FA0F -:109A00001ACA28CCA390BDF4937CC6E0BC685D4123 -:109A1000CC88B03531718487C1C718E9E9C1B8066F -:109A200058EFCE93CC8FE7A91A2F4C2A8D85FA9D3B -:109A3000DF1A290EFA6DCC2BA9F81D899D673F4CC2 -:109A4000C57C4FED852D040F681E7196E7CF8E4FB4 -:109A5000C1FEB69F373B2CE4072C243C6879CAED45 -:109A60008C39711FB4E8231BDD332E3C5A1F437819 -:109A70001379B562B1EEE2F33C1FB20B81411007DE -:109A8000B4985920CC5F36D965B88885C1993824F7 -:109A9000C061798E6B8D1F637B883CC84036303C3B -:109AA000AFC65A1322DEA7D2EF2316287CDE67F258 -:109AB000DC9D7A50FE6C82CAF1FD7715F17583CD7D -:109AC0009F82FE6DE39C1752D0DFFD6DCCDF098FC6 -:109AD0004FFD644E41BCD60DFB0FB22375F06E10E6 -:109AE000E35FA33F8A51FE6B3EE5D76E1076F6A981 -:109AF0008B9FB364C0675D1123FBC9841DD6EAEB5D -:109B00002E9EAB427A5E28B63A502FE48A7C68EDEE -:109B1000F5FF99DC14868F9DE0570780C0DBC1AF4D -:109B20000E80EFBF0DFC6A84F1DE29969BC1AFC6A3 -:109B3000D20F7E3596CF805F8DEDD0AFC6F229F083 -:109B4000ABB15C0B7E35964F825F8DED9E00BF1AE8 -:109B5000CBC7C0AFC6E77517A797D27C8E31BA5F67 -:109B6000BF3426CE80FA15E61F8D79A1C3AE7ED113 -:109B7000888FEBCF1B24FA1637474BF0E0D309212F -:109B8000FA22FD8F7791EA071CCD92EA337D3D25BD -:109B9000B8EBE27E128CF9A1F0F753AB4A2438C53A -:109BA000335A6ADF79F20409EEE8BE556A9F583EDF -:109BB0005DAA7F344E4747FF3C834C47FE7D850BB3 -:109BC000C5363A5FD91E9F3E26E8A2C18FFF4A9D47 -:109BD0001C296F7B570F83140F741173BBBB8783D2 -:109BE0009EEF3B31F0C5DC02A487816F9BBA5A62BD -:109BF000BA015D721F37303C5748270E607E76F100 -:109C0000DEE325E762902FF75698A3903EBB5D25D3 -:109C1000D1082FAD30A784F3515DA6A71FDD53F007 -:109C2000F0F569EF3F5A32E1B2FBE88F21FF75BFD3 -:109C30004CFDE8B959280F97E09155D17E6D088FFA -:109C400013E8FB4ECC5325CD5F2F170C37E953702B -:109C50005CAB8C4F57D6038887A79E30D239ACB601 -:109C6000FEC4FB5A7FC3D58B314DF997CE7FB78B9E -:109C7000B707FF370AF1026349F34B703A86217E3A -:109C80007E27E4ED5F85BCFD56D015E35884999D91 -:109C9000BFA7D1ADAEEAB151B92837457C5EEB6FB5 -:109CA0007C4C417593C89CB5F630BC3E21E6F18CE6 -:109CB00058D73AEC17E08E37BA14C45FC662B78241 -:109CC000F2D6754913C14F09F94EAB69A1E7E9F71F -:109CD00004A8EC5215A4FAE1EA4BB48E363C386580 -:109CE0003CEAE9E417EBD1FA0DBDFFDA21E4B70B4A -:109CF0002E3EFF389FCD85F622CE6777F2D2214ADD -:109D0000A713F57E9CCF25E09A7C84B78975C5F9A9 -:109D10007C04FBC5BAEAAA920EBDE0088DC71CD52B -:109D200086707BD31E3F6D15F8DF2CF0A47F6F9BF0 -:109D3000A9A6BF3D825C69A5664F8B8E1B747A27EE -:109D40005A92FB43F80BB7037FE981F2E873AB62E9 -:109D5000FF8AF038B12D5E9A4AFCB426E6F6B73198 -:109D6000DEBEF1A8CAB8BD1DB71FF5E5FBA32C6484 -:109D70004F1B478D4C0FE7BB06B18EAD02EF837CC6 -:109D8000AE13F740FB316E0BE5E3073257FABDD057 -:109D9000DFE8B1AA3300FD1D6DB327EE187EDE812A -:109DA000DB9309620D7BC64E7C10C77FFF28E80558 -:109DB00047689E5AFDE6F289637A211D839C8EEDE9 -:109DC000E1E74D41AFFD625E7B05BD1A057FEF16F1 -:109DD000F664A7B027DBD19E5890CE45623DDC9E4D -:109DE0006C16F62488F604CA77853D7907ED099448 -:109DF00005A3B2CB486FE22536B22710A0D07982F6 -:109E000005D2BAB47995A7A912BD4624C548F42A4B -:109E1000B3254AF525C65409765DCC92E0EBCFF721 -:109E2000D4D929D9AE0C3E3D5867A74A2478C0D171 -:109E3000D1D2FB95AE8952FDF8A229527D85738659 -:109E400054CFC47E18DFA283327A9D4A71AED87790 -:109E5000D2FCA9F7CB55DAB719F481EA0C97DB42AB -:109E6000D6B64F66C07D32705F1C46ADBF2CA99E32 -:109E7000FCA8A326772A9EDFABAD043E84B2F82867 -:109E8000F869947C04BE06BFB7D03D92FC40F097C1 -:109E9000FA131D5AF87E93B66F3548B7FF343A5F10 -:109EA000DE9F2ABCC2FE94AB673B7E59B7C4ABF2BF -:109EB000CB40BEC8FFFA6DCCED7B916FB67D047EC2 -:109EC0002AFAB91FFD82FC2FCD6FDBFAC52FC8BF60 -:109ED000DDDA262F1E495E0A85DC6E399AD5D0045C -:109EE000F2B63959710A5493BC1469F2D224F4665B -:109EF00079353D1F20DEDB6A72C7A0FFB7F9D85263 -:109F0000D16F981E217F3D4C8F601CC912E4FAE48A -:109F1000D4507D162756787BC67AEAFAEBA78307DA -:109F2000EBDA97E8E0D1BAF61374F0ADBAF6D3A540 -:109F3000FA0658F7E5FCEDCD423F68ED0A8D6ED587 -:109F40001941DF0E382AEB57E6AE96CE3D349E9887 -:109F5000457A73CBF195028F55127DF668E31C05A7 -:109F60003CE75FFA7E89D117D31BF8A0E498D1595A -:109F7000EB08D14FA313C37838ACBF52AB2AC95FEB -:109F8000C3314EDFF6D6B94BE8E71DC2CEBCA1F314 -:109F9000DFD49FCEBF3F1EF8674B9381E2AB2D47C6 -:109FA0002724627FBB2FCEA4F9361C33D03DB217D5 -:109FB0007B8EBFA9B65B687EDA7C0A3F581A83FBAA -:109FC000AC179A0CA4FF0A4DEE447B04BCEBF9AB32 -:109FD000BD7E35BE05072A11F1B21BEC109D1B1684 -:109FE000FA54C3CB9E134F12DEB71D5B948878BF23 -:109FF000A1D520E165688BECAF0F399320C1034FE9 -:10A00000727F10ECAE84DF2BCD5B2F17B83322C3E9 -:10A010005DE4F657E90F6C1774DA26E8B43DCA39E7 -:10A0200039D2BEC6B64FCD55E1DF5538D393E7DB05 -:10A03000CEF4E4F9AFCD4047D4B3174E1B48CF0E52 -:10A04000B1D7AB3511E851DC6CD0D909D96FB8D68E -:10A0500078F5543B7AB1BDF735BD58A27D3F2578E0 -:10A0600063C4F3B1213A8873953A7C6A7EF495E92A -:10A07000A69D47D7D1AF9DF743FDF8F4F134BB0E51 -:10A08000FB69AA247BB326E65DA1CFDF257DFEDE3A -:10A090008F429FFFD889FCA423A33AA7A31C1D6964 -:10A0A000D3E32C365C8F6BE72183CDEFC584FBF9BE -:10A0B0006EC18F3B5DEF8FE983F4ECA6FEAFFA3BF8 -:10A0C000EF0A7FE71DF477BAE33E10F7770EB96623 -:10A0D000707F2759A1EFC52C8DB9DEE889C0A7FF95 -:10A0E000D7FD9CF145B29F53E194FD1C6DFF60B715 -:10A0F0005DA1735863F264BF6737FE827926ABE2D5 -:10A10000C77B5CDB5D132FAB870342BE0F09FABC34 -:10A1100029F4F07E1137EC40FC135DCA055D78BE72 -:10A12000A2F8BCD3E674207DAA785C96574DF1F472 -:10A1300050CDBE7B6BA8FD910BD3CFE3FDFEDDF6CA -:10A1400018CAB3ECC6F9C0128E983CE7F1FB15BBF8 -:10A150005D8A636984B87E488BAC07343F41E3CBAA -:10A16000DDCD9F135FEE6ABDBC3DD5F497D6EE4DB5 -:10A17000F67A29E2E7FA66C6306EB892FED1DBC500 -:10A180002B8DA36F3FC458AF46B23BFA71DCAD01D3 -:10A1900015CF3FEF6C0926E2769D3B7048C57BE00A -:10A1A000C52D019AEF3E97625733A95D299E8B7E9C -:10A1B000F3E27B63F0F9AEF3468385F699EC24B7BE -:10A1C000C5423EDFB968B03909BF2AED73045A3E73 -:10A1D0007F10E5D56755E9BEC8EE8BFD92C2F1F65A -:10A1E000E8752AE993ED651603E697B79F378AF37A -:10A1F000D601F21F76B466D9B0DCEE02F9217D11EA -:10A2000024FCFFFE3A7E4E7527F4C7F58483E6A151 -:10A21000F141E0BCA13CD2F7767E2FC61B72F1B3B0 -:10A2200018C4CF81F37B62505FED6AE1E30C59D231 -:10A23000148371E6DBAD86589E57E99F84CF1B8758 -:10A24000DF6FEB87EB6A31F0FD1BE1D768E3ED2EA2 -:10A250009B4DF9FCDD2D3C0EDB7D9EE78FB6FBF9B7 -:10A26000B93526F498D67EFBF909637A61FEC06F92 -:10A27000A2F643987F651CB4DBDF71EB7574BEC634 -:10A28000378F85EBBD52BBECE794B4E8EC93671EC7 -:10A29000C981468723DF4DB8B192CED7733D39CA05 -:10A2A00028EB975DE797264DC0F16D7C7CE6E7EFE4 -:10A2B0006BF119FE18C3BEBB523BFCE68915D8DF13 -:10A2C000667ECE6C884DD6674786CDF8FD7C3CFF18 -:10A2D000BF2986ECEC765C3FF67F9451FE6C77F9F3 -:10A2E000E3A57198B76E664EEEC7C97ABDF4C2A6F3 -:10A2F000BD71D0FEBD0D0AE177649EBCDE9DAEEC63 -:10A3000087310EBED0CCF1ABE59334B9DCD39C7071 -:10A310001BE9A732781BF0F85EF9EB94C79EE39730 -:10A32000FB19B831469AF7FCA6045DFC26E7C7C1C5 -:10A33000DFD4F203B68A01A1F8ADB095E7D707FEE6 -:10A3400034A17F00E65B5CC6CFCFEBF3E2A38C16B3 -:10A35000D9CFD2E5C50BF57971BD3D17FED800B157 -:10A36000AF7189FF23EC9C966FD8660A4C715F83AE -:10A37000FF30C808A10B9DEBF5241600FEDF10FE90 -:10A38000E52073DDDD29202A5B55DF1016E6173046 -:10A39000BB8F250D08C5B7834FCBF140D171992FE5 -:10A3A000217EFC12E3C955B8A74972E0E379D0AB2E -:10A3B000F433D6C4F46E6802BA0E3CCAC47EC7BF7A -:10A3C000EC45BE6AF842DBCF00D7A313EECF33F2E1 -:10A3D000B71BBF3013DF6D19CEED94E6A768FB34D1 -:10A3E00037B2A6E5A50A9ECBB6AE68027C6E3A32BD -:10A3F0002B7501F4FFC1C7B4DDC9B6146ADFA7AF7E -:10A4000093E2CB815A1EEAB8C1975880FEBA4592B2 -:10A410006BADBEE1F8D218FCBEC885A081F8B4F1DE -:10A420002333C3BF0FD0B0C342FB390DC7CCB4DF59 -:10A43000B26D0797132DEFACF9F96F097D7E50F8D7 -:10A44000BD0784DFB24FF82D7B84DF12107ECB2E48 -:10A45000E1B7EC107ECB1BC26E6E3A2EE46F498CD6 -:10A460009F7FC796E765B579DED1BDE98411165C9B -:10A47000FDF180B50186F65C9693510E594E462645 -:10A48000CBFA63B83D556A5F6ACD96EA87B1EBA413 -:10A49000FA1B5AFBE9E291C1BA78A444E78F8C9188 -:10A4A000E5F26858BC4BF1B51CEFDE141EEF6622D6 -:10A4B0009D781CB8ADE931A2E3B6D359F1E17ED95C -:10A4C0001B426EB69DE6F6F98D33E76223F96D67A0 -:10A4D000043DBE16F468167ECA4D29AEDBF30B317F -:10A4E000AE3867C6731FEDF1B3F6BEF6DE19FFA9ED -:10A4F000B870FBF705058D21F8DB2D9FE452FEE4D3 -:10A500002AE563592C3FE7B65989A6FBF757BAD716 -:10A51000F29BFC2CB10F51D387EF8BD60CC4F20504 -:10A52000933B15EF3F6D56DC53508FFB7E678EF8E3 -:10A53000F72496E72B9AF037A07DE04792E1E725D4 -:10A54000C588FC1525C067996739E2C78AF13A3496 -:10A55000526D6E86EBDA64620D68E7998B39EC9D7B -:10A5600018172118E7875E9ED5F9302F25C8F78F79 -:10A57000C1BCD2F73EF068167E770B4BDC27B35890 -:10A58000F9BD83E87C4F5D7E21FF9E6D7C3FECB77B -:10A59000249BEFA306487F4F11FD1A6276A4933DDA -:10A5A0006D4FAFEAE25C364FBE8FA2E79706A16718 -:10A5B000DFC8744F89F41D8C3F0AFC6CFB6A9C8ACF -:10A5C000E31658E35CFCBB902E15EF81BDF1F5E876 -:10A5D000986911F86C7FEF697FCC0FE38382608DFF -:10A5E0002AFE4E8541CE6F190248EF0B3633C9F56E -:10A5F000605C70C2A5FD0D3923FB79839AE4F83FB6 -:10A60000B4BF5FA7E079B3367E428220FD8FF0EFC2 -:10A61000695C899FF4FBF6C7F3B5F3929E4FF01C7B -:10A62000B11A6FA3F3359B8E58D7A31FA9CFF71D7F -:10A63000FE80EB71FDFC1B3F98948AFED7E6A137A4 -:10A64000A7A21C6F41054FDFEF5938C925C1B07E65 -:10A650001BEA7B26BEB355CDEB476970CD243C3F4A -:10A66000B365186FFF49FE9127F17B605B6E13F5B0 -:10A67000BE4778BD06B3459386216C32103CA917BE -:10A68000B487FE7EEAE93A8EFC199DEF3A81E59F98 -:10A690005076A01CD1D3F519C2C791C760DD477BA6 -:10A6A000B84E86C3893D5CA7C2E1CD6DF6A5C5163F -:10A6B000BE7FACF1E1E1631384DDE1741FAFC5350A -:10A6C000C55797E7FF77C1A76F0B7D7548D88F37C0 -:10A6D00085FDD88FF683E2616E3F1AC5BEF16E61CB -:10A6E0003F768AB8371477B9857F3159C4C33C0E99 -:10A6F0002B185ACAE35EBB96E7CF30468A87C61549 -:10A70000C87EE2D87CD9AE8CEE9628F169795AAA37 -:10A710002E4ECED6C5C9B25D2931F6D7C5C98375CF -:10A7200071B21CF716378FD6C5C913A4F6C7F31D2F -:10A7300044D7A2E3B7EAE2E5E952BB101DE57D9BF1 -:10A7400010BD6644A4E396E2190FFEDFA263E4FDA8 -:10A750009AFFFFE8F80FCAA3CD20EDDFE8CB77849E -:10A76000FD7F4BD88D83C20F3820F21CFB843FB78E -:10A7700007E9D81DFD3AA7F0EBF8390E2D0FF28648 -:10A78000C8433588731C5BC4BEDB2691875A56FCD0 -:10A790003D3FC77191093ABE1B918E154ED9CF1B13 -:10A7A0009327D371942351E7F7C97EDE70BBECE7A2 -:10A7B000955A653A0E63FD757E9F4CC7A12D253ACB -:10A7C000BF6FB4CE4EC9E738C02F78B45721DE4BE7 -:10A7D00090CF731406E5F31C7AFBAEDD57D4FC86EC -:10A7E000363FC12BEF336F421B8AFB452966FEBD06 -:10A7F0000DA3A70BFA1D1ABEFCBDF839C42D9FDCB2 -:10A800004EF82C447B1EC17EFFA917B7FB7FEA657B -:10A810006FBB1F19DD0FD39B3EEEFFC48FB5F373E3 -:10A82000552C88DF9FBA8CDFF4275CAFE62F19ED3B -:10A83000350CFD08D562F0E1F777996AA573778743 -:10A84000DBF1A34EF5CAD4BEBFAA60BF9F887E9538 -:10A85000E237F9B9BC5EAECDBDF05E4FA9B305F3EA -:10A86000E29B3F323B6B919FA3F87750F4FED6E119 -:10A870005EB9D49F863F3CFFFF0BB48FF8A158FA16 -:10A88000DEDEE73AFB090B867E5E88E6F091974FA5 -:10A890004DF2A585ECF527BD2E903DCDB57599817E -:10A8A000F1B2B2D697C0F72B03245F7ABFAD5DFF3C -:10A8B00057E7A79DCC7305116FDFA35D2EA47355D9 -:10A8C0002E63BFF6DF7F21DA7D17FF1E8C4BC5712B -:10A8D000353C69F58704DD0F8BFEDAF0A2F1157EB9 -:10A8E0009F2621EC1EAC6EFE1ABE561ED91BC42339 -:10A8F0008CD7BA1E6D1D11F8C77D05BFFB7BA2AFBB -:10A900008E7FD858A7B8A71BD9EF33093F329CFEDA -:10A9100083695D7E6DFD6C783FBCFFA2DD5BE7FA6D -:10A9200050BB339360AFB367821CDD7E54A5730EBA -:10A930004CEC831BDBE859ACA09D318E505862581B -:10A94000DE55BF9FA8CF1FE8CF9515377791E0EB75 -:10A95000CFCBE7CA5C177B5ED6AE94D986E8EC52C3 -:10A96000A9CE6E8DD1D9B5893ABB27E7C58DCCA8C4 -:10A970007D6748ECD72B0EFCFE8E916328BC5E7C75 -:10A980000788E37B793BF2DB767EB69783F0DE26A1 -:10A990001FEB9883D3CF27DD33516D1EA2F3A303A2 -:10A9A000343BE6A4B8D71C1844DFF3343BE5BFCFF3 -:10A9B000E0F75A3F2ECBC17B368CCA67BCF68FCBF3 -:10A9C000E83E4E32954F791DF47CAD378FCA27BDD6 -:10A9D0004E7AFE84B788CAC7BC2E2AEBBCE5543E2B -:10A9E000E47553BBD5DEC904AFF27AA8CC02F706F2 -:10A9F000FFDE40968F3961C62C7B158C1786E74C9D -:10AA00001FCC230C8F5D17DB2538BD26596A9F5A52 -:10AA1000E590EA533C79527DE7C94E09EEE82E9263 -:10AA2000DA2796BB24B883AB5C6A1FEB744B704C7F -:10AA3000DE64A97D94C323D5EFB97E707CD365E431 -:10AA4000B9CEEB3A817858ED759FE0782A3FC1F195 -:10AA50003399CAB9BD3B107DEDC67A17DA6D7BBE5E -:10AA60009DE1F976B395DFFBEE60B42B1DC2FAEFE2 -:10AA7000E082FEA4F9427F523CE7E7E789F3DC2756 -:10AA8000E4794F96DE0319243BA9F931C3D5B458B4 -:10AA90008CC71E34D9FFBD3FCCE381E12AC37B2B99 -:10AAA00047CA26525E04AF6CB2087AF40BE19FC627 -:10AAB000F4B652BC38FE0985E23B584905E61167F9 -:10AAC0001DCD7686FF3D28AD3CFC1BFEBDA1983D0B -:10AAD000DB1C98171B5F3C2D312A2CFE1B1FF8B185 -:10AAE0002C85FAEB3B200AE6317EED34F38CFCD06A -:10AAF000FAB476B39E90FDD110FFFBADC21FA775CF -:10AB00006AFA69B57D3D3D5F9D77F97D9BB3625DD6 -:10AB10005F097FED0BE1AF9D127EF749E1777F2A58 -:10AB2000FCEEE3C2EFFE58F8DDC784DFFDA1F0D7ED -:10AB30008E0A7FED3DE177AF147EF7EABCF5F4773E -:10AB4000AD2E6C54987A99F3A57337C8EBAC5A279D -:10AB5000EF1BCE7A42F6BB673E24FB6BD397CB7ECE -:10AB6000F71D8B657FEDB61AD95F9B5225EBC75B4E -:10AB70003CA5127CF364392F77935BDE37D4E8343D -:10AB8000B15CD6939664D95F6B6FBD5B03A354FC35 -:10AB90003B2448CC5361F630EC7BF0D279C702BB42 -:10ABA000AB14F76B0A997B19EEE70C3504DFC7FD90 -:10ABB00026F6A14ADF816CC0370681BC5E1830766C -:10ABC000BC23CCEEF864BC4E3D2EE7476EBD47F685 -:10ABD000832BE7C9F18CB95CF6835D69F27EEC44A6 -:10ABE0009DDD61C21E9AF9EFACCC7D793B648899FA -:10ABF00047F795AED51E9999FEFC18B747346E9667 -:10AC0000544FF628AA0F3F273140DC53A88D1AF87D -:10AC10000EEEDFEDF988DF2F00B407BBC1FBD733A1 -:10AC20008E6FB375247D3F6EA789DF1BD89D62733D -:10AC30002E85AAEB2FF2FB01ACD548E7C73C786F15 -:10AC4000240BFB95CF8F15068DD2F932B3AE3E0D96 -:10AC50006DE265E7C3CFD1FDEFCD479CE3E8C3FAD2 -:10AC6000D0F988A6C8F70DDAFC381D9F6AFAA7202C -:10AC7000C0FDA38276FDA3A9F49D31E3878CEED9B4 -:10AC80005B0C2D679EC3FB515FF23CEC3026C76D19 -:10AC9000378E95E3B6E1F6CBC76DA31C32BF8EC9E4 -:10ACA00093F5408553D60397F8354DFC1C627B7EA7 -:10ACB000CD4D7DB2B47B3A849FA89C7D317C1F939F -:10ACC000F3CF10B1CE47CD6EBABFB23C9D119D8679 -:10ACD000D8F979C55ADCB7C1F37F1FF07B2F46E660 -:10ACE0004EEC83E5E911E2FCE25827F5D7CCE955B3 -:10ACF00004FF7ECEBAF47CA2256894BEBB61646179 -:10AD0000F485FA39C85F1D437CF47F675EE2FB0877 -:10AD10001A9FD912AEB07FE793FC40AD1C1674A900 -:10AD2000B88EFD76BE8FBA3F5813C4EF447E9FCCD9 -:10AD3000F314F7A74D30F2EFB6B86CC3812E23C4DD -:10AD4000FA8BC43ED9162F0BA23FB7C96BA552DBB5 -:10AD5000FF5C99BC2811EDE6960C4F2A9E0BDCD2C5 -:10AD6000B1C372067A7AB3A9435AA47B048DA68133 -:10AD70006467B734A618D10F1D66B41BE97B52690E -:10AD8000D355CCCF8EC4FB26490833DAA7DBE40DBC -:10AD900004CBE85CA887CE11C13A4AD18F2DB34FBE -:10ADA000A3BFF7D8F801C88503FDE30E53F1BD7DBD -:10ADB0001DF9F96B8B9D9F6F1D91349BE855E0E465 -:10ADC000DFEF2B48B339FDD85D32FF8E4F15FCE322 -:10ADD00074E17602E45EFABECF40160623BD74F03D -:10ADE000D37A3DA03B97B8F298383FD71479DFE685 -:10ADF00033E1576C117987E3C2AFF858F8154784EF -:10AE00005FB15297077A5FF815FB441EE880C8E7E8 -:10AE10001D14F9BCB7845FA19DBFD6F822791573C4 -:10AE200058E2197B771AC773CA2AC55F0EEB289DB3 -:10AE3000C9E1E4C57C7FB4ABA7CE5D5280F526E7BF -:10AE4000485847F2E4BAE1B88E94A92D744F69B21C -:10AE5000C7EC7029783FE929BA17A5DD0BBB93A38E -:10AE600086DD3E7304E9DF3B3DE2DCB1DA5C48FCA1 -:10AE7000F58489BE93A47D3F6EF24CF97B4AD3756D -:10AE8000F8BD5D079B15AE47DED1E4A23FEB1F8EF8 -:10AE9000F714D136EA4E719E172F5D459097B50293 -:10AEA000EF1A5E1AAF1F1DCBD7C1F7432DA29FA388 -:10AEB000C5B7C6623F1FA4F1FE260879D0F7B75A7E -:10AEC000EB4FDCA78916F47FB4E7E5CF9D1EF63281 -:10AED000E99CE961419FB67E4B1E34E1F7B4270738 -:10AEE0001E48477909DDAB71C5F2FB2B63FF3D13AB -:10AEF000E8B45ADC43D0F4EACD427EF5E37DE0BD10 -:10AF0000FCFD9D0F4AA698F07BE837057EC5FF1E25 -:10AF1000B0B12639FCBCEF07383FD095F7DF743766 -:10AF2000FD1DC96006E707CB8D16077E67B06B9ADB -:10AF30006B05E23139CD395CE447C99EFD3FEE81B6 -:10AF4000191B0080000000001F8B0800000000009B -:10AF5000000BED7D0B7854D5B9E8DAF34E32810958 -:10AF6000049C604227E161AC04262FF260083B108C -:10AF7000344524131221981026099068D11BAA3D4C -:10AF8000D27B68B321218418799C6B3D50090EF85F -:10AF900068CFB99E1AACD7D27EEA8D8AD6DEA312CC -:10AFA0007A430B6DC5F092F66B7B2F5ED49ED3A3D4 -:10AFB0001FF7FFFFB5D6CCDE3B93800AADF634F920 -:10AFC00074B3F65E7BAD7FFD8FF53FD78E93C18F57 -:10AFD0008F314BC25E65423263CE62858D87F6A6A5 -:10AFE0009245694333185B5EDDBC98CD64EC12FE7C -:10AFF000CC83E7CCA60D65E24BCC724981FF8799E3 -:10B00000CF361BEFE31DC37376291DFFDFCA82898C -:10B01000703F78CB6F719C6AD6EAEF87FBDD79EAE7 -:10B02000040F8CCFEAEC67875C8C65C2EFA58CE8D7 -:10B030003CF25ACD6CF45C8EB76431F497E3339AEA -:10B04000CFF07C6B17F339C742E323806E22BC2F0D -:10B050009E6DB5855D385F77F05E97EA662C23D5E7 -:10B06000D2E004782AD236AF64B06E56E9F44CC30D -:10B07000F7030BDFCECD836BE65A1F2E0FFB354354 -:10B08000BFE33776A6F96644E1DABA8D9584609E0F -:10B09000AD697FE75D9B88FD3E6C0B613F3BABE993 -:10B0A00083F1BBE7FF2E35DD1DED7F7056E94CFFC8 -:10B0B0000418B01CFE97C2D8744728C33F63F87ABF -:10B0C00019D3189B80F88F670CE038D3A0849D00BB -:10B0D000574D0FE06F0C3EBFD082F71B7A9CBE6EBF -:10B0E0000490A9EEDB609D6BF93259C3B48EFC7EEF -:10B0F000B8AEED01BA61FFDDF6D3882F17FC227ED2 -:10B10000D35A6DA723F8C2FE4CD7C6794C6D07CE33 -:10B1100001F0DEE24F4C7EF726F8772ECBBD64E5DA -:10B12000F447FCD688BE710D556319D2D30BC82CD9 -:10B130001ABEAE15FF6665FDE319310CCB8FDE3FFD -:10B14000B17A4A7C08DF43BE7109BE9A453CE97377 -:10B15000CC46FA73BEAA167C05ACF912F19566D7F7 -:10B160002270C2BAD87DF628DF6518C66308EF32B0 -:10B170007D9BDE578F4D05F8570AFE5F1968E1F891 -:10B18000BA8FF3A30B6E8A71A2FC06E3044DFC4751 -:10B19000F49A28E084716E2F2BFB1F3F059C3DBE67 -:10B1A00033E336A4D3EDDFB4322BCC5705DDB05DED -:10B1B00055A384C3D05E16B899E461997E7CB85FCC -:10B1C0005D6D3FABA7CF3B1BA7D038ABCAF9386C3E -:10B1D000A36E7E826F27E133C8D8168F8EDFDE4DD7 -:10B1E000675319E0F1A53DCDFBF0FD73BB9C0CF955 -:10B1F00088E1BBB391EE1CAFC7807791FFCF6F534F -:10B20000C20700EEB37B9C04E7BB6B943043FA3378 -:10B21000CF93FD70FF017F12CD732E2EB4EF1BF084 -:10B22000BC716B825F83F5768D6BBD2708F39E4BF7 -:10B230000AD5E3388D5B6FB268D0BF2B5E7365E0D3 -:10B24000B88D56FF019862850D703A0EAEF0EFEBA7 -:10B25000E1DAD0A5A31FFC37E85788EF975858A824 -:10B26000CF3D9C7FDCD90ACD8F0877EAE05F926101 -:10B2700021788F3FE42478C764FB689C86C2383508 -:10B280006E0CD291A9B61C8027559D8C709E55409E -:10B290003E81DFCEDCAE68881F66E374715C3F6977 -:10B2A0003FCAD33F89759E7DB06032F2F39924FE88 -:10B2B000FCB4373E8CEB3AEDE36DCDEB0E3F81B243 -:10B2C000610B652E4BE4EB50800F1A055C8D3E8BB5 -:10B2D0001A07F46D7C68F95791CE8DDE9EF5783DA6 -:10B2E00096A8252AF0FEF93D5686F8467CB872F0FD -:10B2F0007971333E37E3E5037F06C183F81B0F788E -:10B300007B77777B6208D6C13C2CE49818C543C391 -:10B31000CE1FDEAFCC2479D6B8BC733951986E3FBE -:10B3200006FE5DE17368E5300E3B3C95F876858757 -:10B33000F3ADA368CB840CDECD1DE10F1FB57B7090 -:10B340007F6F14ED06E45BC0EB0A949799888F71C8 -:10B35000B3FBE17ECD6A23DF6E49DEFC6015AC7382 -:10B360004DA19D59E1F91AAFCD2037951B8C720480 -:10B37000EB36B4C767335A77D738C19F9D9C3F815E -:10B38000D32707B3A27CD1EBB748BEF0D947C1BFE2 -:10B3900019AF5F343C9C467E057D7326CDB7AF88E0 -:10B3A000F402F00F878B5975F2D0D0E524BE67C048 -:10B3B0001E8827E04F476556945F247E1A766F22D9 -:10B3C0007E6C107CD7D803FC3346C747267CE19AB5 -:10B3D0006D729E29513EA3E731F8EC453F875BCA69 -:10B3E0005F030BD633EB70B99657A27331D0B36FAE -:10B3F0005D8D16C0513492E31D25C56389DF053D7F -:10B40000B8EAA11F17D22D51D2476383B89FBBC59D -:10B4100043CF06E54419E81BABD8671DEA40B81FC7 -:10B42000EE276DB0D27DD42F36E88FD33224F8F3D7 -:10B43000054F4F87769C68BB055DAD56770AE22BBA -:10B440009119ED9E71CCA44FFC9CAE52CFEEB4B3DB -:10B4500014DC8FE3C4FEDEBC708A82FD762A0AD932 -:10B46000078E32231F584D7A605AB685D62FF1C009 -:10B4700084BE75B8F87AE3522C24171FA482425573 -:10B48000A2F87088F58FEBF7F5F5C3F37AAFCB1F11 -:10B49000463E621ED20FA53053BF6EDEEAC509AC30 -:10B4A0005F47E7859EF186F62DDEEB0DFDBFE29B43 -:10B4B00062787E6BE64D86E7B7F9730D6D07D3E9C9 -:10B4C00075847388E3DD21F0AC7B2EF5F200D2B1F8 -:10B4D0004AAC638723E40DC23E5CE55D4BFA7953C9 -:10B4E000C95DDE215887D3CBE5CF81F6248C1B378D -:10B4F0006DB587EC08A19F0BE117E9D08E83A444BA -:10B50000F9CC61C2B359FECCF6E4DA6CB07B12A080 -:10B51000F165F665B27BDCE362DA3766FB0D7484B5 -:10B5200005F9355ED06BA1D54D7A636B35D8730ABA -:10B53000DA974BB9BD94F95F88AE41D18F6916B2E5 -:10B540005B9789F54BFBEBAD36C6FA6F007CCCE719 -:10B5500076D6B2C20BD57ABB5C5EBB453FD98E2F87 -:10B56000DCAFAA31F4694736DF371302FCF9321732 -:10B57000B3A11E92CFB764737DBC4CE8ED2520C704 -:10B58000C8B71578D5D9ADBB049FEE8AF02B1BC880 -:10B59000D1CBE9538A0DF110279AFB596857F6046D -:10B5A000C4B3469DACEE2023F9FE08B03B9BEC18DB -:10B5B000FA29CD5EDDFB75F447AA13FDE85B38D5AB -:10B5C0008627BE0DF88BAF4EF05B7C517E27BF0304 -:10B5D000DAC9999CDF6B525D7E7AACA983536747C9 -:10B5E000EDB26A61DF4D60AD2407C3FC1817E7CBED -:10B5F00091FD18BEFFC8F99C62FF67D68D7EE2BB45 -:10B6000020DFF72DF08B7C777B8D91AF968746E717 -:10B61000B31F640BFBBA8015109F85D6115F3845A8 -:10B620009F1D93815F389E883FE2257E85BD6DB763 -:10B63000B17E1BD0E908D21F8074DB5922AE734063 -:10B640007D85E4622093D9F57C100C58D5B08E8EA0 -:10B6500003452CDE03FA65C0CED27641BF31EAF253 -:10B66000451E58DF40A933B18136D5B0C16E3F02C7 -:10B67000E39E72B311ED7DB33C4C877FA01ED89A38 -:10B68000F6AE17E1D96A67B4DF3376B106E1DA2E98 -:10B69000DBDAEF6A4AB11D27DB1FEE56A1FF93F1FB -:10B6A000BCFD61F6A5DD5A2AD18BF82A41D0234191 -:10B6B000DAEF337478053AB89273689F7199F06D38 -:10B6C000B6EBA59E30EFC3E6797F27F70341A7913C -:10B6D000D63D0C5E60CD2F8F2E17EFA35CB8C05FF8 -:10B6E000D6CBC5F071FAC97EAF15EBB6243C9F16D8 -:10B6F0008AE14746F0BFCEFE7BBDBF00783EA4A0E6 -:10B70000DDABC2DBB319571D308E52F8DABFA3FE92 -:10B7100057766BE3108F56E8807ADECE42048F9422 -:10B72000D738E4032BE2BD9F9E83FE1D52A6E02086 -:10B73000751EE45F05FA5F42FC5CE93E59CEF5DA1E -:10B740000AB1FF55E094305E45172B45FF3C6E4D26 -:10B75000D3816DA8E754275A1470FF4229C207CF3E -:10B7600055275D2FA84837E06783DE79A9E44FBFEE -:10B77000790CDEEB1CB0FA9D306E67E0C70CEDEE85 -:10B780008B33981F17DD811D01BEFA9067A1C38717 -:10B7900072D37FBC631A63A7DAD840997D38BC03A3 -:10B7A0002FC7397CB0D8909634F35918A7ABD0E99D -:10B7B000417BEE9D8D5607D26960738386C83891B0 -:10B7C000A2F52970BFCB1662E8DF3B36B62F44FEE8 -:10B7D0003E61D7FCE3E0DAB559BB1BFD10D5B7B825 -:10B7E0003C1DE03FD0652B0FC7D89FD7E7707FE7A0 -:10B7F000AD97EEA4F51F4971F8E360DC218C6F0072 -:10B80000FD8ED877A6F971DC4DFF2D0DC73FB266CE -:10B81000ABFF6580EBC826277A52ECC81E570D8E09 -:10B820007B646EB377AD6E7CD7F58E56BC3F30C966 -:10B83000E19842EB792FD18BEBD9983B1E79B3334A -:10B84000C531B9099FAF6D66B85E8777A71DD7E789 -:10B85000B2B1DDB8BF7CC97BE1CD02F4977C96D94B -:10B86000B740FFFFEA0FDD9A83FEC986530B512FC5 -:10B8700039CA92B6E0B553C029F72B49DFA19446E7 -:10B8800017EE639DAB9B781CC66B69203AA6588265 -:10B89000B81F7506D6B8A6CFE0F79BC70CC74B27D5 -:10B8A000C65D66219C6BBD6BB3B0DF876D21E83749 -:10B8B00034D759130B8FCD395C8FB9DA9B333600EF -:10B8C000DC9D7B5C1EC44FA712DADD0078D5D2DD8B -:10B8D000FE277CC3DFFB81784FF207D089E4707DBF -:10B8E000CEA43D9A0DED554E47C08BCBAED39B07F2 -:10B8F0006795AECBD1ED93C3E64DE9247DD1A97018 -:10B90000B9FE414ECE1E0DC6C9F587EECB81F98E2C -:10B910007481ACCDA2754E467B7F24F91912CF3BC2 -:10B9200037C1BA63C8FFD06A2BBB612CBF5E07D793 -:10B93000E99BAD939518F8199ADB948171AA23F0CD -:10B94000DC02E30CED71F12BDCCF40FE1A813FF3FA -:10B9500072B8BECF9A19ECC6F5B2197E8AF3BD99BA -:10B960001DECA1366BF562FB0BC0BF8F7D4EF897C7 -:10B97000B149C0AFCFCCDCA3814BCA3CE30C76EB22 -:10B9800048FB67900DD9703FDE54F2A716F407BA52 -:10B99000B31C3EA72E2E28EDE825995CBF05A79D78 -:10B9A000CD839D9B55CD584BFE0DD8CB141FF4C0B5 -:10B9B0006FACF86010E3813A7DB8C4D496F6E9BF65 -:10B9C000E608FB45D8C9A9BE9DC1F9E87FBC61F571 -:10B9D00087016F69F802B42B172B61B4D73795FC38 -:10B9E00033D9F14CD8714B049CBF6C73B1B2692C44 -:10B9F000E2CFAD10F7135A4E3D8EFE7502C63F31B1 -:10BA00005EDBE2F451FC05890FF35789F549BF8EDF -:10BA1000EC4858CF8A16110765BBB8BEB106F29143 -:10BA20001F601D06BF24C84C7EC86ABBC19FAB35D2 -:10BA3000D90F66BFA1CA6437EC40DB09ED425B9FBA -:10BA40000BF9E9FD193947327CF458EB97F63DF4D0 -:10BA50000B150E6E19D2ED3F8342FFFCAC4D3D81BC -:10BA6000FA684BF03117C6E1BB6D6117EA93EEF24D -:10BA70007B1391EFBAEBACE5C86F036DE5D4EFAD86 -:10BA8000B6205D6DB95C6F54FAD58F703F91F65951 -:10BA90005579E9890E1D5D2BD5AF9CE8D0C15F516A -:10BAA0005869684BFEAAB0B2D6BE18FB4B5EAE8C8E -:10BAB000BBA8CC608F5A9FF28762EC17F21ACF6C4A -:10BAC000EFEBF1382ED768F73E3063FED8D1EC1992 -:10BAD000B94E891FB97EF97C2478FF2347FA279F46 -:10BAE0000DDECC4F08AF194E09FF48FD2B70139B9C -:10BAF00084F076ACD066201D4385B980E7AA326514 -:10BB00000BE6657E26E2953F0B24863580E7D54C13 -:10BB10001EFF8C6FE17E657C59E542DC9F3E29BDAE -:10BB2000EF2854483EAB034A58857FDE2CFCD55F96 -:10BB30006632CA3F80BCBE9908ED5FCCB5F338329F -:10BB40005317DF363BEAA7C6D7F1FCC40E07F3F75D -:10BB5000E37B37BAFD9BE1FE32297F35C63C447555 -:10BB6000B5DDB0CF5498F20EF1A67D6679AEB0BBCC -:10BB70006703DEA744F13E92FF31129F30DB853C24 -:10BB80008C8B99F1738F093F667FA7E279937C5C78 -:10BB9000A1DF73A02BEFD564B433CA14FF34A41F04 -:10BBA0003E82F7E2D583940ED921E548F87B325FD7 -:10BBB000B5636915F97B6FA13D3096F24D93315E07 -:10BBC0002DC7977E5EAE5FFD466EFEC8700C8AF78D -:10BBD000B656C6B61306D14E98C5AFD7C175FAD2C0 -:10BBE0000569B1EC84C1226127C073B40F06F794D4 -:10BBF000F36B91D14E60E5B997C1CB265A6FDCB497 -:10BC0000BCB1B1E46E7056E8E1DC09D17642662B36 -:10BC10002BD3E1FDABD9EA3FE27A2B451C42CE079C -:10BC2000FAFDB0DE0E33CF7728C7C3F15C3E9EF439 -:10BC300085BC5E8E7E364F2B433E7BC0AED6A0BD0C -:10BC4000678E27FD3097DB895D196A0B3E67EE9C96 -:10BC5000CB8CBB49C6AB33B327F2F403C57D4CFE96 -:10BC6000A0F49FF6E3C3FCA85F68F370BF303EF515 -:10BC7000C2610F3C5A971B7A1EF135F74258B380C8 -:10BC8000DC39172B643F395319D93D57EC875D6177 -:10BC9000BF2E146AE0E7AD8D3C1E5F9A6DA3767CE3 -:10BCA000C87A80F605531C275E7D8FFCB02560079F -:10BCB00088B80DD953C7853D1564ADE4EFB9ED6182 -:10BCC00017C62BCC719B9A544BFF74D0EB3585175C -:10BCD000AA7D33E97D43DCA7C69771788278EE812F -:10BCE000EB92208F032DC338108E5F1DEECAC03C2F -:10BCF0009CDFE65719F7F3D0BE58DE747FD6C3BE7B -:10BD0000AB170792F125692F4A7B06F44BD778A42D -:10BD1000CB02C547BEBF294E648E0BC9B88C397E95 -:10BD2000648E177D9C9B4EF490F6978CFF7C946BF1 -:10BD3000B4C3AC3037F6EB2E822D15E4BBDBCED28C -:10BD400076CEE0F11DB4978E94FEC483F68535CF90 -:10BD500014E7BCC2FDAD13F6A133B8AFBE126747FE -:10BD60007B3BE80D513C7189629493C9797C9FF3C8 -:10BD7000E4B9F93C228FDCD9B641BEAFA1BE09A619 -:10BD80003AC2714A741C56987F45F2949CAD4ECAD3 -:10BD9000CB277F2415AFCC0FFE4816FA231ECEDF2B -:10BDA0008513683D4C9DC0CEE8F3C602EE081C2EFC -:10BDB000F05BB23EF9FC2988E7FCE83C97C3DB8ED8 -:10BDC00092629703E31140632BE72B4F247E9F8100 -:10BDD000719D753EBD5D518F798B5CB43B795E433F -:10BDE000DED7C5CF6DC8BFF1A9213518635F5D955A -:10BDF0006731E44F23F1F74C46F922398E8D7937BC -:10BE0000911CA0AC4A78AC31E2F402DED5420E00BF -:10BE1000E12E27B04CD34E2BE375095C4E643EC235 -:10BE200056142C4F87F5366D53286FCCB49AC368DF -:10BE3000DFAF11CF1D22FE66CE23AD117918665DEE -:10BE40004776DAEA878CF9B5C61E63DB6C97CB7848 -:10BE5000BF0D8044B8DB249D40C15B47C7C37E5AF9 -:10BE6000E75F291E241F2ECEFDAA17EB5A3AE342A4 -:10BE7000BB1B30AFDDEBA27808F990282FFDF00B4B -:10BE8000EBD9B6B7F0315CCFF63C2B977B85D7B9B1 -:10BE90001C4E79D835A4E3B7ED82CF66E5F978DC9E -:10BEA00005F72550892C3599E448D6B51C49E1762B -:10BEB000A523C0EDC6A7A6BEBC94E75D797D4B6601 -:10BEC000205ADF520AF8C912F8C99CB6DADF0FD738 -:10BED000AC00AF4B9AF1ACD15FBD35D36857669AD1 -:10BEE000FD5553FB405EECBA96689E4DC4DD05FCE3 -:10BEF00066B9FA5E1BCFB7FC33F8AD787DAACD43A7 -:10BF0000D7EFB779E9DAD7E6233BED99B64CBA4AD1 -:10BF1000BC3F600FD6635E4BC621657CBC3F8FFB88 -:10BF20006F2CC0E1A8106B59684D4D443C1F0D703B -:10BF3000BB70A4FDA5AADC1807BD3D68CCEF2DAFF2 -:10BF400031E6F7EE9BA9BE9407F024CCF4DA43BAAD -:10BF50007CD41AB1FE1D0FF37C931CFFE83739DD4A -:10BF600065FB9C58FFCF045F24BC9C62F701B12A9B -:10BF70001FAABC19E3F6CC937345F6E02F855C2627 -:10BF80006CF6D8312E54D9BFC281E3ACD90DE3B8D9 -:10BF9000AF7C9CAD6913D38CF985AFDD81701C8DAE -:10BFA000E4175AEFC0FCC251915FF843DEBDDF4198 -:10BFB0003F6B569E7A1AF5862B4F3D83F8F883D057 -:10BFC0009BD03EA76FC3CFEB4913478DE3FF212FD3 -:10BFD0007F781CDFBA40698D55D7F2A19017D05BEE -:10BFE00017711EE68AC4D13EE06DAE8FE2F2397E53 -:10BFF000DA7FC95A709CF61FB3966762D8F32C5F3C -:10C000009171B98F490F7AA51E0C5E8A359ED5595C -:10C010003919F17DCECEEB62CCE3C5E53B247CCE75 -:10C020007C7C3F35025F5C7E7E74BC1D808301A4F6 -:10C0300093CD9348794D7637E53F251F25D47B6E08 -:10C04000C3BA05702C19EE2F09CF796ECBC338CE49 -:10C05000CFA7F89F6023D3F5B782BFCE0BF93A87FD -:10C06000F205727446C8D729942FB89E14F2F5EBE6 -:10C07000363FB57FD95648EDE36D2AB57FDE564E83 -:10C08000D7C1B620DDFF595B0DB53BDB42743D5A8D -:10C09000F6D8CDB8EF7CF03D85F4F148F0DCF5B88A -:10C0A000D5203F2D7B130CF2B6F6A1F186F6EA1EE1 -:10C0B00063FEBCB1638AA1BD6A83317FBEB2D598ED -:10C0C0003FAF6D9963986F456881499E6F35C97B15 -:10C0D00095A1BD309FDB8955E5B586F79CDE4643CB -:10C0E000BF84A52C148BFEB7E5F3B8C9CB25C56377 -:10C0F000874689733836DCFA36DA2791B62DC4D0F4 -:10C100009E776C5842F71F88E3FB9DF9BD26C1AFAF -:10C110009D65AB83F319DA458BAC7ABBE79E59A1D9 -:10C12000E5F93A7FD0E1E5FED8C5A9D5562FF0D183 -:10C13000D2B2F75EBD0EF82834C0C8EF51C1DCF3AF -:10C14000821D5CD8BA6BC175D0AED6D61BFCC7E2D7 -:10C150009683AF80F8B240D9D1F664783F3F3BD4A4 -:10C1600084E397782FBC82EFCF5F9C6D43367F20AE -:10C1700089913D7A2ECD113E10831FEE1770CBFCB6 -:10C18000D527DDA7CD79FA8C4C568A71E48CCC0B7F -:10C19000A5A8D7A0AD62FEEBE0ACD0FD081FDC5730 -:10C1A000514F3E90B53603F79391F2468FE41BE36F -:10C1B0000912AE1D251C9EA322BF3064CA2FE8E2DF -:10C1C00009EDF9A3C413CE89F786BE1D3B9E704EC0 -:10C1D000E41DCEC9BCC3C35531F30EE7168A7802FD -:10C1E0003CC738C2B93D35FCBA70F4BC835C1FEC67 -:10C1F000477BF20D790761E78BB8F9E02C752F3E8C -:10C20000FF6AB6DA8BD73F66A9FB108F4775F94FE7 -:10C21000CF445DFEB3EC2786FCE7A19CD093F93CAC -:10C220006FCDD0AF6AD7D850DC14CCC706EF89C524 -:10C23000C7CFE4CBF862FF67CACFEAF2A8964B37C4 -:10C24000B12BCE035C71BF425E9762B66F121023B2 -:10C25000E3A276DFD379A19F20DE3A929EF3F1FA32 -:10C260002B4B74FF40E537823D649E4F8E87FA0A60 -:10C27000F5D620480CEE33DB932ED4A19F724CD020 -:10C28000D37C3D9E2FE8C93CC948DFA7F382BF207D -:10C29000FDF36C9F8FEADAC4FD2B85E34947F06D0F -:10C2A000B4633B1BADBE03DC6EA7B8C50D81A470A3 -:10C2B000B72E1F7C11F7CB7C8C3F0E4D7500BDDB7C -:10C2C00043AFB8B11EFC9DBD36AC8861DF4DD4ECE8 -:10C2D00048FF9A4CBEBFCDF786BE34348A9C033FDC -:10C2E0008CB778090E8BA590CFCAAF9A825773FF8F -:10C2F00081BDEF4FF0C178DFEDE5F9AF1B7A57BB99 -:10C300001A75E3DF305BEC97C83379989F54C258B5 -:10C31000A85E1378EFCD02CCAFF82C14E77867E372 -:10C3200007C79663DC51B552DCF19D8D17A97DDC02 -:10C3300067C945F2BDE3FD7FC7B0FF0DDF5C3391F8 -:10C34000FB2D1C1FAB36E63ED99D4E7931C76C984C -:10C35000E7B87A3171CA8C68FE6C95C282B1EC98EC -:10C36000C9B339FF2F525BEF40B816859C0CEB9C8C -:10C370008F376C7D1BDBDF2D557C56F4EB33F93C9E -:10C38000357B6D544F0BF85987ED37FC090CE79D51 -:10C390001F3A68C3FE1F6629EC3AE52AE255BD380C -:10C3A00001E5F01DE4BF18F05F94F22BE468BA0DCC -:10C3B000E43E07F17FD8AD8F534A7ED2F2D4CCD978 -:10C3C00014F70BB504C9CE5D7A19FB7433AFD3FEF5 -:10C3D000DE051BE61EE21F6F9D84F1A561708E00D5 -:10C3E0005F91A0FB1FF3791CF3865EDB9B5F417EB0 -:10C3F000DE68A73A845979C139B3F5FED655DE37E0 -:10C4000064FDDA40213F8F00E634CD03F066DA00A8 -:10C410008E3825DEAF71B9A2F89C4BEC7FD04F1D52 -:10C420000BFD56B1BE7E8CF3319BBAD38AF1C32289 -:10C430003BF9C7CB57DA13912ED17C99DFE06F9887 -:10C44000AF67303F46751A2EBA0E809F8DF912FCE9 -:10C45000014B1C1EDA84DDEF7F449D0A722FEA4AED -:10C46000EF3F74EB2358577ACCC2DB771DBAF5FA4D -:10C47000CDB0A433935B8FDD0EEBEADEA5F837F980 -:10C48000F0BA7F77239EAFD8A0F8CBA16B7DFF8D4C -:10C49000F598626CEE72928D7F7ADBFD3723BF5E7A -:10C4A000F4320FF2F3F214CECF4D832C6C81F62DC3 -:10C4B0003DBB28EF191CB451DD9ACCCB9E4CE179E1 -:10C4C000D97F68EB27B8D1AF5D389BBBD8F833CEA6 -:10C4D0000F70601CB5CC46F9D2F1CCD389FB4BBCB4 -:10C4E0009A5ECAED698F83F23C8B19FB0EC67936D2 -:10C4F00070BFB948D445CA3C163BCBFDDB16F845A6 -:10C500007D32BEDCE81FE79BFC5FA9DFCCF916E0BB -:10C510007F0DEF77CE4E34C4EB468ADBCBEBB360B6 -:10C5200047E0FA9E1379DC4360AF633EF3C760AF28 -:10C53000E3F579B0D7F1FE8B60AFE3B51FEC75BCC6 -:10C54000BE0CF63A5E0F83BD8ED7D7C05EC7EBEB4D -:10C5500060AFE37BFF0BEC75BCBE01F63ADE7F7685 -:10C560002EDFFF3AA739C29B01DE4E3BFB35F29529 -:10C57000562AF2C2224FB62D693AEDEFAE8F80CB2C -:10C58000C19E1A504277213DB43417F51B48BCF0C8 -:10C590001FFF17DBDBD2C90F6136DFA12178AFE3C4 -:10C5A0001BE9FE6E68763918E9FB53479947017B12 -:10C5B000E6FCEDCA4C8CA39EB94DE9C3F6C06D0AEA -:10C5C000D913D351F472A2FB68F1FBBE03B89FB537 -:10C5D0002732C18F4FF6AAC07FE71136E4572DA945 -:10C5E0001EFDD2794ED91E538FCF1B3728C24F1D47 -:10C5F000B74F85356C53E4FBA9BDD8BF43BE2FDAD6 -:10C600008316F9FEBABDE8271F8BCCB7BA564D8505 -:10C6100076867CBEB60EC73F15A9AB9BB712DF1F4F -:10C62000888C3FBB17DF3F9326C7BFB396DA76D916 -:10C63000FEA795D49EC0FBCF7AE1BA47B16EE56AFA -:10C640008FD71EE2FB1FEC63AA3E9FB3A9D84AFB1B -:10C650009EAE1E9CE26E32CF6F49704FBB9278A99E -:10C660002ECF4FF15298CF8E72F6F5D2A4C9A8778B -:10C670004FA5F963FA29E5C591FA5663FC5455783C -:10C68000BDBD8785B03E3E5EDC8FEFE175F48E4C1C -:10C69000DBB03AFA2B8927CABA07194FAC593D7A51 -:10C6A0003CB1A6D4184F5C259E8F144F5C658A2739 -:10C6B000AED868CA43843E593CB18EF5DBD10F63D6 -:10C6C000AA427254E7E97B7522FAFB677D144F6436 -:10C6D000BED729DE2ACF4FE0FF2DB3F1BC196F9FE3 -:10C6E000BF5BF1A25FD17DB73211AF27EF5626A114 -:10C6F0007C9DBD5BF1A0BC7D589041F8CFFF8DFFC4 -:10C70000751FEEB75E8B9FA323F802A62A82AB9318 -:10C710007CDD30CEA9BB9571F8FECAFBD21DC80FD7 -:10C7200060770A7EB4EE45FEB426288676DE64C9BC -:10C730008FE147503EE68D176D6DF95E949F5287ED -:10C740007C7F33B5578414D1FFEB7B51BF1C9B2FEB -:10C75000FB4FACC3E7B74F91E31D20799C9720DBDB -:10C76000BB49FEBA22E37DFF11ECFF0BD490D4DE6F -:10C77000B917E5BDB452E8336D268DDF5927C7FFE1 -:10C780005A2FC6AD6A2DF2FDC524FF4D4CB6C17EB1 -:10C7900087F6AFC4FE70D70F3FAEC5B8D61DF2B94D -:10C7A000F6F123084F9D68AF2BF897BDF8FCAF7EDC -:10C7B0007D7FE6F9CCED956C60E1757951B930EF8C -:10C7C0002B0D45DCDF296C3988EA8BD5B5EEB7A295 -:10C7D0003C46F36A29D541E46F9795EAE7825E7695 -:10C7E00073AC7AFE4B057C9C8D05579A5F8B3DCED2 -:10C7F000DA22BECF75CD6731FDDC83B3E66F2DC87D -:10C800008FDA0D68223AE05A02570B5C3FCE0A3DA0 -:10C8100088CF91D618879171ED25A29E7853C9775C -:10C8200082F3F1FC5291DD2FC2E103FA7CAF4D9C03 -:10C8300073AD9DCFEBBC42DD4EF2D7AABB441D8940 -:10C84000D54DF908DBF58EFD943713F9D410D61DBC -:10C8500067505DD7A8E73B6CA63C6A97586F69F6AE -:10C86000FB94A76E7A83D70BCB3C76BD80AB09F5E2 -:10C8700032C0DDB85A095BE0BD46543C98D7CD6460 -:10C88000615F7A34AFBCA2CCD6EFC07361E27C06A4 -:10C8900013F670241F5EEDEBC3FA189B1AE757716D -:10C8A0001ED61FA4BA38CC17A5B348FE59EA91CAC0 -:10C8B000E6EBEEC63CB54E6F519E3A9E0DD31BA4DF -:10C8C0001722754D228F1EA9CF117A40E6A71BC4EF -:10C8D000BA9645F4C0E22568E7C63F20F2D422FFAD -:10C8E0002CF3D495A6736D8D810563289EEBB7F963 -:10C8F000A9AC26D5789E29DE44879B8AF9B94A9946 -:10C90000A73E5A60CC373F6067A477BB328C7CB7B8 -:10C91000A098E743FCC5320E19DF1F87F6377391E5 -:10C920001FD28DF19CB1DC1FA1C35CA6B88E6D43F4 -:10C930002DC51FF1B9027CA864BEF6EFA897B15DC2 -:10C940000CFD6D78BE05E9E1B6903F2AE33F68A68D -:10C950002CCCA138D079E467DB867A1A479E677FB2 -:10C96000323EB67C5C2C9079D63E3BF6ABF5BE767B -:10C970001CE7FBCC7120E18745EC181FAF7F995471 -:10C98000E09376899D9FF763F6A559142FF9B800B7 -:10C99000EFCFE8F3211C725FBAA3E839DAC7AE3CE7 -:10C9A0000FCEDF5BFBA3976AB5E491F3183705223E -:10C9B000790737A6C059B2CC3BA889D88EEA595816 -:10C9C00048A141CFD6B5FC27D0B351BB3FA30E9FA2 -:10C9D0007FD1E0077EBAA590EAA778FCED8B06FF31 -:10C9E0001BF96A3DF2E1B59EE7C5FCE03A9C67ABF6 -:10C9F000A2D6B8E95C0CF32BA3E70BEFC5FEE67CEF -:10CA0000E1E5E2187F8B5B8C1EB7E82D34E6F53F3D -:10CA10002F718B7F04DCE13E09F27490E429C0E5BC -:10CA2000E9AF7DFF83F51EC1F56E55FAC2F1D6ABB5 -:10CA30001F37783A2FF46B94A3E9A9AE06B4676068 -:10CA40001E1FCA5F341E0270171AE2217B5BAE41C3 -:10CA50003C04D6F97BD27F659CAE7F05747314E1EC -:10CA60007A546E47FC15F26506ADAF8FAFEF2F30ED -:10CA70007F4E11EE034F717E89E287DB493AFCD489 -:10CA8000B5FC65F07333C17788C3F705A0671DD186 -:10CA9000D3CFE1BD9CFFBDBE80FB17F05E13BD97F9 -:10CAA000C7F9E05E6157835FBEE03A5FD42F4FCE97 -:10CAB000569B8BB89D7B6791A1CE54BDAB6874BF6C -:10CAC000F99EA2D1FDE6FBF0FD2F8ADFBCBF80DB23 -:10CAD000FBD1BC4DD8C53FBED142F9E57AD1B77B79 -:10CAE00043D5A21BB1AE06F08F6D27AEC7AA5B4F30 -:10CAF0009A8DFBDBA6F36AF27B07725D366BDDD89D -:10CB00007E5F149F6F8D6975E079A86635A913CF94 -:10CB1000DD2EE8788FEA061DAAD3877EE197BCBE9A -:10CB20004ECCCB56A97CFD8E160F9DEF93E7DDE42E -:10CB30003994E6FE1B5F73E0B939F05F5260FC8AFE -:10CB400032FB69FDBA9DA6732936537BC3AFD3B7B9 -:10CB50001FD6F57FAAC8544F687DAA9CBED3D1A129 -:10CB600078449D2FD565348B313695DCB108E39739 -:10CB700060C7F9100F0B76EE1AC07C9AA3C34AB9AE -:10CB8000F33FB6F9B61F06918AEBB552BCE1830DAF -:10CB90000AFFDEC7629EC76F12797C668A33C87847 -:10CBA000B8C463DC83BCFEC35178AA8CCE37D6AD43 -:10CBB00019C8E7BC43F1061B878CC9EF6F540ABE46 -:10CBC000AA0FBCD781EF2DF35A0CF543E678848D7C -:10CBD00099EBE4791DA74DE5759CB64C5E271FCFF8 -:10CBE00054FA5E47FC962AA267A5CAEB38C14812E0 -:10CBF000DFDDE274A908ACA73A1F731CC159688C29 -:10CC00004398F9D24C8F93267A3C61E3E7933A0735 -:10CC1000AD7E0D6E773EB4BA0BE3E7DA43168A6356 -:10CC20009C95F5210024C6F397B3087EC95EEE6C8F -:10CC3000E5F502922ECB77F2BA11EA6588DBA732CE -:10CC4000FD773C968BB8C21DAC8FCE3BAC6443766F -:10CC5000948355184AB7623CC647D726A66D6184AF -:10CC6000BF50573ACCF744EB783FC6B5FB27D99372 -:10CC7000DECDE47E442CFB359AAFB5B1777571FEFD -:10CC8000BFC5B53E695CCBAAD1F952AF233C4DB9C3 -:10CC90007C5CEB88C84BC8B8D6D99DE27B1BE2BC54 -:10CCA000C580BD75F24E37F6F3919E19B377F92220 -:10CCB000E48323BD3FF188F3AF1B278EFE5D88829E -:10CCC000E218F5A43F2F60345E67FA109DA33E6919 -:10CCD00037D6E5CAEBED0159BF19528B75F631F322 -:10CCE00044EA38E717D346C0CF6BCB38D3BADCD091 -:10CCF0002D787FEE05C10F8B95B002EBAD702BAF99 -:10CD00002ABEE8FCCC5C47FFB77C18C11D87F80140 -:10CD10003C0EC4F1BADA817456F34C0CFADC389745 -:10CD2000EBD181ECD8F493CFC13EB9BF7802F79F25 -:10CD3000C6F0B8C2EF1DA3C715BE551C23AE20E92F -:10CD40007B709EAA71BAF3B62727D489FDDB4341D5 -:10CD5000AAD739DF63F56D42FCF7B7BE5508ED255C -:10CD6000DFB27A301F7EADF37C930AD289AF2E9763 -:10CD7000E7FB50E0F764A4AEFB5B944FEF8EF867DF -:10CD8000DC7EAC1DA76BC3965C3CC8FBBF585CBC8B -:10CD90000FCFD98F646FDE1758D58BFE9CB437A1A7 -:10CDA000BD12DBF27D9084C9A5A0349B5A643EB1CC -:10CDB00082F2F5D1F956EC43FBF8ACDD38BEB4573E -:10CDC000078ACBF7A1BD1A8CCC5FBE0FEDD953A655 -:10CDD000FEF47D4A18EFD7C565D4BF91C9F1CBEAFF -:10CDE000B17F24AEC8D6933F7ACC21DBF7D4A33DE4 -:10CDF000BE3D9D8F371858DFAB7D0EE1B9D6E37F7E -:10CE0000D2FE23D9FD27EDBC7E50033BED89742C67 -:10CE1000A3ECB372E1531D78C6AE5855683FFA9340 -:10CE2000888307DD16E1E76CEC45BFA7B644F2E95D -:10CE3000E354073212DFAD7FFE478F68FA756A3F11 -:10CE4000AA35C0ADB5529D8884FB04F68775D4DE43 -:10CE500073A717E1AC95F10DD6D98BEBEB4C92EFA4 -:10CE6000DDB40FDB23CDBBE6F99DBD88EFDAC83C0E -:10CE7000DFA6F76BE3E578BDD48EE2F300C54BA2E5 -:10CE800070B518E07A2D70A017E10A7AC25B707F46 -:10CE9000087A19EDC777B46CA2FAEE881C693BD208 -:10CEA0004A510EBD9136C757448EEE2739BADA7013 -:10CEB000C17E9A3E07F7BF4CEE275EFD75C33E89E3 -:10CEC000EBEEE17A48F2519D478E03F8077DD2E4FC -:10CED00093EDAFD5B7B8AFC6BCDCDF0DFE9E917D3C -:10CEE0002BE58969AB4DF27365E3B5BBBF4675149D -:10CEF000CDA0D763D563DF5B10D14FB7123E0BA532 -:10CF0000FFCCA4DD5181F72376872F627754CE8939 -:10CF1000617774629DD52CAAE722BDA9C213AFAE7A -:10CF20000E68C65C9E076C177592799BD95ABDBF77 -:10CF3000FDFD79DC9F7F6A1E874B7EDFF6CC3A854C -:10CF4000EAC4DA7BA68CC1F36EA7537DDB51AF0D2B -:10CF5000A45BE83B0527C5F73507BEE14CBB0FEEE8 -:10CF60001F4F73F9515F1D4FDA49DF513BEDB70A8F -:10CF7000FE3CF40EEEF3BAB8A2867A45C60DEF9EDB -:10CF8000B3F55194A3133EDE2E9CF7E377509E59E0 -:10CF9000A6F97C6780EC18C7CDB08DE0BBE2FB9CA6 -:10CFA000C5E279E5B61F7CBB0AC710F68BD49FE6B5 -:10CFB000F39EF863D7DB5F5D566E7F79793F2F1B59 -:10CFC000DA74C982E3F2B66B84EFC2D6C8F3CB261B -:10CFD0007BAAD2743E9989EFA04A7BBC38B9D18F25 -:10CFE0007E5CF13AA37D74BAEB959E42F46BFD56DC -:10CFF0000F6E93B7661A9F4B3B6C51D763E48F82D9 -:10D000005D689847D6DFDECAFA3AE85CB8EFF5C348 -:10D01000D68951BFA5DD5349764A7326B4603DC712 -:10D02000FEBE34311FED831E2B7E1196D7DEEBD66C -:10D0300001FDEC9664DAA7FD8AA2AF0BDAF228CAEA -:10D0400045B42E88B7A3F1F8BF7FD45047C7BEB60A -:10D05000CA10E7D46A1FA53A3E1917D3AAE9F919ED -:10D060009B8883694D8FE27E16899369BFEA35C438 -:10D07000C9B4203D0F46F6BF5DFBB0BDCC23E0D167 -:10D080004EF622BFB5AB5C9FBC34C77D52B37DF278 -:10D09000FE209FFF730EC6B7827CBF333F2F1E0C4E -:10D0A000B78F11761DD68B9BE57C5C80D7DF95A969 -:10D0B000D91D137C3C7EE504FAA82BAD2B316E10F4 -:10D0C000AD5729A2EFA4358D505FB224C0E5F7E833 -:10D0D0001CB7C12F37D7A934893A9591C6B9B38403 -:10D0E000E7D907144F35D7CB56867AB974D714379A -:10D0F000E6A664BF9B4BF83EF071967A12D76F8E0E -:10D10000A79DC5781AC9198F7B2C15BC63DBC9BFD5 -:10D11000572FBF677226C9EDDF0CF797F688784561 -:10D12000F9678B9FBD37C7784E7FA4FA87D212BEAE -:10D130009F1589F57ED6FA8727E35515F135047DCD -:10D14000313E38AC1E42D439C83A88B1810C5EB742 -:10D15000C1783D44BBD64AF8BBEAE75CC4FE0F7C0D -:10D160009A1C403EADE17A44F2D94FE7F838FFFD12 -:10D17000C64FFC27F90EFA4F0AA01EA9E6FD8B7FC9 -:10D18000C3BF7B21ED8B718133BD9BA6921EF2053F -:10D19000F4FEAF3B722E322310430F1D5DA04E0DE7 -:10D1A000E8FC23783F33901FF3FD2F13BCA6F7B3A1 -:10D1B0006606B3E8FDC8794E7566E06F7510A03D50 -:10D1C000CC75277CBF30D79D487BF0CE92DFAFC4B3 -:10D1D000BA934BF3D5651CCF1CBF11BB7288DB39EA -:10D1E000517B3287F6C36B602F36133D453DCD35FD -:10D1F00018FF5EFDF8D27E82FB7FA7BFFF79F3DFC9 -:10D2000000BE6E824FE44D3EC5FBFF40EF8B7CCDF0 -:10D210009F01DE30F191B0FB3F87F87CF6730EDFA3 -:10D22000EB44AFC59CDE657398DCB7FF35361F5CF9 -:10D2300031FFFF6F7A5FE4CD75E3FE5C3FDF48FEB0 -:10D2400039F4FB15E16DF130F93919D0E5E347798F -:10D25000FF8C7E7EDDFBEFEAF9F32AC8F9053D7D00 -:10D26000AFC13EF2118D3F958FFFBBE2C83A2EE968 -:10D27000EFFF2D4E76593E9F3617F1D5CAF9E90AD0 -:10D28000ECEB9BE6F2FA96108FCF6A927F678AFBEF -:10D2900043789E74F91C26BE8F12CCC6FB2AE3FE8F -:10D2A0006DC41FD17AF719FD1118688641CFEFD3ED -:10D2B000FB1BE5739FD88774B72EE0FDE7BE306E89 -:10D2C00015E2DFDC067B64DE5C635DA68AEDCB8D58 -:10D2D0008BF97F7ACF94FFD73D5F44CFA3F50B64E2 -:10D2E000BF82DDE672028D7F51674D6E8476B5F0A8 -:10D2F000DBC1FE8879AEBB3A1AE7AE9EABABC7186E -:10D300000C5AE97C60C44E61EE4711FF113B4AFBA9 -:10D31000FE3EE3B98D8314E72A11F46D7EE1D97ADC -:10D3200001E72AC4374B16EBB87CFF35D4DFCBFBC3 -:10D33000C7787E273D4FE57032F7EB67ADBA7C18B2 -:10D340004A9A05F3BCF82F1FC06FBF7D6E32D82BF1 -:10D350002F77293E2BB41BF74A7E7A81E44157F799 -:10D3600041F2B742F0FBD6170ED7233FAF785FC22A -:10D37000EBE4EB8FD4311DA6F59F10F188092F4205 -:10D380007FCEBFDF24F87C1CBE6B30FE36A213E3D9 -:10D39000F8A9619A7DE2287516BB04FDE1BD9D04E4 -:10D3A000978BC3551352C85E0FAE06890638EA073D -:10D3B00059CC38D3EEB90EB98FEDA679DDC28FF511 -:10D3C000C73E2FBB2FCA4FFBA8BF87CFE702FD8FF9 -:10D3D000ED40E8E802FC0E448DF8DE784D998DBEF4 -:10D3E000B750537861A98883507E53E6C14B1F9C88 -:10D3F0004AF9CDF8B238EE2FBA8C7FC722D8E4A410 -:10D40000EFC9C9EFD6CABA8C4A66FCBE5C8CFC96E2 -:10D4100021DE22E32291EFC95953C9BF753C2AFE90 -:10D42000FE93E9FB71F11B18C5B79C1DFC1CB839B4 -:10D430004FD5B0B1F5AD22ACFBB0D9292F6BCE677B -:10D440009AFF1EC63C1753C7E4503DCA6B73F3A343 -:10D450007528E7F74E71A31C9AFDE7F323F9CF7BFC -:10D460008DFEF380F49FD5ABE33F9F986BF49F1F35 -:10D47000CF0DFE8AF8CAA6D2FEF67249F1528C236D -:10D480005C147514A71E4A5E82F128AD879F573839 -:10D490002DF2FC32DF7FAA88B93D78DDE2247C9E44 -:10D4A0005A9314C62D784C47F362FCAEA0F4A31136 -:10D4B000F318FFAA10EB34FBDBF18540CF5924664B -:10D4C000E4679FF278282F50D125BE2F21EA05A4CA -:10D4D0009F5D21CEF13795F173D518B1437E90DF72 -:10D4E0000FAC107EB8F4C7FB7FCA147D1DC052E696 -:10D4F00027FEAD06C6C0EB32F13DC51A0FDB8240F8 -:10D50000FD312BC44A102F7B399FB0ED36FA3B57C3 -:10D51000A77A76D1BE3AD2390677893CC7A0517E28 -:10D52000F61AF8F9490497D83FAE60BFB98EFADB16 -:10D53000B81C6FC3F3BFF9D1EF4AC873F3DB93781C -:10D540001C654609DF6FCC57F9DD884FAA3F407F45 -:10D55000DE5082EF47FDF94C84E70AF4E74C825B2A -:10D560007CB76232E681F8FAB34B783ED73786272C -:10D5700071BB1CA3D70114968C92CF6597AF235033 -:10D5800063BDFFA1B0B3D7E5861696F07C3FF1AD41 -:10D5900039DF2FFB1DC3F8548CFD76838853950229 -:10D5A0008B5A72869FE7FF459B7A126DBC636DE5CF -:10D5B000743D6ED312B17EEB2D719E1F0C2DAA67A8 -:10D5C00092755172DC9ABAD2936775FB59C5C2C77E -:10D5D000A9CEAC3DF3C0EB0AC0795AD47B0D24FA36 -:10D5E000689FD38EF2EF4B2DABFECAC9B3BAFDC311 -:10D5F0000C2FD6456920EAEB4BF877CB5E2975F600 -:10D60000CFCBC3EF3571395CDD738ACEC3D46F687D -:10D6100060A12CAA9BB2217DDF9EC3BFBF50516881 -:10D62000659A0EAEE46CF5AE121EF759477C12AD4A -:10D630000BBC1BDBA576750CFEFD49199F94F98286 -:10D640009B5FFC3F94771B4862347FD0CBC29877B6 -:10D650005FA0AE770C61DEC5EBA3F8C8DA121FCD70 -:10D66000DBD8B59FE0890FBC47F0806DDD8FF58377 -:10D67000667C4BB9E814F8D6AD9BF03D92FC562C75 -:10D68000B425227EDF427A41BF07C53E70C476C111 -:10D69000ED8941F7C87B85A5067C3BBDE506BAB59B -:10D6A000ABF78EC1F5483A378A67E7BBAC6F221DEE -:10D6B000DF073A32A263EC3A88A348AF1B806F4C75 -:10D6C000F4AAEFE0DFBDAEEF28A5EFC5D5177EC504 -:10D6D00091427900A50FCF4B36953530B4A71D6A1E -:10D6E000127DDF4ED26F6919D04F072FC8E3632434 -:10D6F000A7C2EEFC14F1F5FF5EA2B383AF75FC1F69 -:10D70000E6FB51490CBBFCCF957F18FE3D1FBEEFD9 -:10D710009E12FC62BECA7D77C4FA662DB8AAE55394 -:10D72000C021E506E5769382F5938A1DF92C88F2EF -:10D730008BE7D70A7FBB05F3A1CD5ED6877BE13EA1 -:10D740009423C09BA33CDD81F2D3B8379DF802FD42 -:10D750007FC2A7D8A7DFC47D5AF8FF74BF85F3C581 -:10D760005F3AEF03F0FC1BC15327CE177CCEF25279 -:10D77000C9E541F73CC05B50DD4FFAE5A742DEE06A -:10D78000278D7FB7E993E5418B555E3726F3A131AD -:10D79000F29F3EE553E43FCD79D591F2A131F29F5E -:10D7A000067B7DA4FC2733E549CDF9CF455D5328A1 -:10D7B000FFBC28D342DFA99676BFCC7BBED1F50350 -:10D7C0001B7D176986C292D287E747BF2DF431438C -:10D7D000AB4EB7FEE369FCFBD7DD292EFABBABF8F5 -:10D7E00083F558129FA01F5C4E98B76321AFCBAC56 -:10D7F0004C7FC68C5787F04BAE08AF32BFEEE85275 -:10D80000C29B9135BC2C52FFE7D0D1D991F91CD1E4 -:10D8100091D9FADDF83DEE46FF78AA2733D3A1B8B7 -:10D820008BFF5DCA62CF6CFABB9492FEC5DEE175D8 -:10D830008336095F8CBAC13F3B3D7D9B5D19A3D008 -:10D8400053E6B147A2E3ACBCE0BDF32644BFDF24FE -:10D85000EF1F4FE3F83D7323137FFFD4484FC0BF42 -:10D860004AE7FA33D9FECDCA707E2816F598C599D5 -:10D87000DA7AAA838F5FECC5BC5904BFA98708BFB9 -:10D88000EDADBEEDE81F1D2DB353BD4A0C7EA0BF0C -:10D890006F7B397E1846F79E4F47BFDAA22716A442 -:10D8A000C7E08F4F4DD7CBD0D3617DAAABD0174BFC -:10D8B0004E5FE92139F55B3D4857494F49DFE1F4B7 -:10D8C000E4FB9DA4F7DBF9EABFE07E18A5B3FA34C8 -:10D8D000D2392ABF9AA19EC5FCDD9B1F8A3A161831 -:10D8E000E7391CE710FA58143F540FE138555F8AA6 -:10D8F000FDF74E9E29E5FE4E1DEB7B7522FA7D67F6 -:10D9000099A8D7F4BFEEC338CD862931EB358F3DCA -:10D91000A0F0BFD3E365FB2D627FB5E8FCDD535873 -:10D92000B709FEED09ACDB84EB5BF3D2F9F7E5B1A7 -:10D930007E732CD8E3A2BEB30EC7C679C09EC5BC09 -:10D940003CB385189E4B1FC0EFB3CCC2EFB36C2223 -:10D95000BD1BADC3F890F45534EEC9DB9501D97603 -:10D9600087A9EE46E63F993764CC7FCE0C1BF41DA9 -:10D970002B0C19F39FBC4E47EAB7CDEAFC10C6B595 -:10D98000A371C5721AFF649DECBF235C3A4397FFF5 -:10D99000D4AAC2AA5B9FDFBC2DACCF6F82BEA4B657 -:10D9A0008C433FD1FF6008EDFAAC99A10B48377961 -:10D9B0006E1E14908A7F87CEEAF61C403F1CFC0343 -:10D9C000A6E68F6C575FEBEBFF07133449A100808D -:10D9D000000000001F8B080000000000000BE53C69 -:10D9E0000D705467B5DFDD7BF727C9866C42A04B0D -:10D9F00009ED4DF879692561F909044AE06E76135D -:10DA0000B62D9405429B0AC50B64101D5E0DB5280A -:10DA10003EEBCB42421A420BC1E1F937AFBE2D05B6 -:10DA2000677CD631386AA1485DA0459496A63699A0 -:10DA3000521FD280790CD5AAB496577554DE39E7B7 -:10DA4000FBBEDD7B6F3685023A75DC4EE7E6BBF741 -:10DA50007CE73BE77CE7FF7E9745B315C66631F868 -:10DA6000F99386C6585F2DFC79338E83A651C2D8B0 -:10DA7000D2B1725C9934263236374F8EAB4D633655 -:10DA8000631D1E26E6B30403F8D7989BC69B8D5AE8 -:10DA900033318EB1F02255C0C708FF99E5127E4799 -:10DAA000320CF896B9C438B12469F819FB2893E30D -:10DAB00005345E9E1EC769FC00E3EBEF4D3D6E260C -:10DAC00060FE77A6C56F3646C0BD68B71EAFF8C703 -:10DAD000A3FF9C22E9196BE2F30F3BBD20EF9851A5 -:10DAE00085E8B9BCFF01E85D41FAB19FD3FB21A4F1 -:10DAF000EF2192E7D39CBE0F013D6D444F37D09389 -:10DB0000FFB75FEFC52A6327EECFDF808F2768DF7F -:10DB100027723EAE02FE29E23BC4F7C1F9FCE67073 -:10DB200080317C3E8DE37BDD2DF428D164A2DE9F25 -:10DB3000755BF60DC6B37AE57A1BF4B066A57F0374 -:10DB4000D9C9B2223EFFD7A9CF9A8992CC187E06B6 -:10DB5000EEBB9CFF1B7C6E9BFF199ADFE94EC3D383 -:10DB60007A1EF15C39BC89E8CDF09B20F81E077C59 -:10DB7000A3E0AFE07047326191074B3C4AF249FBAA -:10DB8000A5C4E3E497FA3C72BC8DEC667B29C73FE1 -:10DB9000EAF0E349A41FE47782E43D8ECBEF9F5D7A -:10DBA0001EBF3584BE947379483DFCCE34E377A81C -:10DBB000671F367A61FFD4F0888CFEFF1DD62BA438 -:10DBC000F5843D7DD0F9697B14719FCD4FCB77747F -:10DBD00018EE8FAAD5E979F5DA7D919BE0CFE5CDF6 -:10DBE0004FAA26E2051856CC58BC9F2537C39A7712 -:10DBF000B0A4CA2086C543260B4CB4D835FB32D11D -:10DC0000E1F1BBC4F8BFC8FF2D9B23F5FA5412F312 -:10DC10008B0CDDFE95B84F69BAD91336BA671FF67B -:10DC20003F29F80E852D7672A3F1076B412E967C65 -:10DC3000283D16F259F6E057C7A01C969549BCDF5F -:10DC400048229ED70B25DE7DB4EEB2F43ACFF171B7 -:10DC5000AE84FF29C167E8EA336D74255EA5BC4B2D -:10DC6000D2F5CDC37DB45F9E4072CBC869706D5252 -:10DC70004209D88F8FAEDDA49A56BFC0BAF530C422 -:10DC8000B7FB597A4C7A95F103DDB4EE8DA66B7D26 -:10DC900058C847D8699ACE7E164A302B7DFBF9FECC -:10DCA000DCE0F52D7EE121D4DB1B2FF794FB268BE6 -:10DCB000DCA51D2C0FA4EDDB603E90BB2EF1BC60FB -:10DCC000AEF55FFFBAA0E78F5BFDC9F5F3D153470F -:10DCD0007CBCC5F725E37F5E36EDFEE7AAE97B3223 -:10DCE0006C89E71F74FE7F87ED7666F13FDF42BEE9 -:10DCF0005BFD451ED4EF9541662481BECBF89B9B0E -:10DD0000B98EAA55C83FA5EDB39ACF5FB2833577D8 -:10DD10004F1C0C7F53AD8BE05A9F656BBB015FD8E6 -:10DD200073B1296E814B85F9F3436185AEC0DF2164 -:10DD300092FF464EDF89B04EEB8599C60CB0A9869E -:10DD400025634A500F5A7FCEF1B160882DCECFE0C7 -:10DD5000BB20F0C9750E2FCA6FB4F2F113B1CE8992 -:10DD600030E703E33FC9F311CE875AB02E88F8D5C8 -:10DD70003C595FFE9AE4DAEE16E3C43B14D7FAD2BC -:10DD80007EE877A4EF4BBD522FDF23FB97F9FA3BD8 -:10DD9000E13F2513B3917EC65C53ACF37E4B7EF01E -:10DDA0004AF3FA65BC6813FB9548EFD759A4FB4AC0 -:10DDB000F3D588D24C72F2B19402F143F50776772D -:10DDC000022B1595C69B38FFA5C9C6AFAE060FC876 -:10DDD000E922EDCBC3F67AC4F2FCDDB0AD1EB8B8D3 -:10DDE0002E8E7860652FECDB6BCBD5E25520B7BF6C -:10DDF000E2FE54517D10CBA65F7FCDECCB5FC3B666 -:10DE00007C3E925F0576C446B942E3F5C1F3FCB5AA -:10DE10008AD433B14FDA93C8477BDADEF8787B21B6 -:10DE20007F9E73C4BD52D8535E2DAEF33D215F1665 -:10DE300028C6F5D8C4E329753AC45796FE192E189A -:10DE4000AFC2BF60FDBEC85937EAC18A0EC5486679 -:10DE5000D1FB4176D221F03F96DEBF51B52308AF0A -:10DE6000C9A68BF801BFBE8F6F22BC8D4D0AD99F0A -:10DE7000D35EC6D672F98DAD4DCB692CD16F70BC17 -:10DE8000BE69F1F188174099774A06FF0A4177D8B1 -:10DE90001D3F7413E8417B9BA2A33F5AB9716547AC -:10DEA000298C99E60E8D87CB049414CC6B0F96F9D0 -:10DEB000D10FBC24D6437C1ED8478C25C122826357 -:10DEC0001A5CA7C7D61FC5E97FA930AB70DDEAF899 -:10DED000CE08B235AB71DF51BCDE036E1AF3944D40 -:10DEE00073BE16AF85FDEB99E90EA1AA4176D63334 -:10DEF0000EE86A107469C6BC37D930A8A23C2C94CD -:10DF00009A8671DD1FDA0CF71B9A3E3E9F55024C34 -:10DF1000DC3DD0EF43664C76B90CF16A03FDE55C5D -:10DF20006697C1C72DDAE8CE8C91367CEECB3C5F8C -:10DF3000722BF74FCB6A419E16BDFB91E0EF474233 -:10DF40009E3B80869E8984209FA1DDB0B52E94DF04 -:10DF50004A81ABA76DC95DB7017D97CA5908C75EF5 -:10DF6000E44FCDF077768CC6F963867FC148585769 -:10DF7000ECEBC916F075FF0268DB804FE047539762 -:10DF800017A42C7A7C7298C94298B79527B630D0DE -:10DF90009388B9D3DD0F74DCDAF4F65ACCFB5698CB -:10DFA0005E7D1E9078FFDA401DE6B54B4C2197F957 -:10DFB000EE73C8B70FFE43B978526FBEE04139CF58 -:10DFC00056D828C0BF30CA9F4BB9789976CE2A1749 -:10DFD000CD31DE78BA74FBF316F84FD5E6179FFF04 -:10DFE00008FC31954DBD0C7C82035980F45CEA50ED -:10DFF000026A2981B918F0E9F1F17DDCDBB1FE2577 -:10E00000B4D315412DE4D2913E46F26B146BBCD7CC -:10E01000A26F7F1E72D5C8C69D5DA877F7F7AACC00 -:10E020000B70EDCBF72226FCF9109F26F4C295F772 -:10E030009F3D1AC069FFA6325C4FCA11E41D980EBD -:10E04000F7CFF5C17C00BDBF1AE404EBDE63787541 -:10E050001DE07267BFDD8672CA65CDA9E130BE37AB -:10E06000E862295F862FE03B21E4E2BAACD05ABADD -:10E0700026D775D99E935C723F17610C7D77C2E8F5 -:10E080001907708BA4DE76F0FD5C64F0FD90FBCA8E -:10E09000A25C5FE5BEE43AF4D55BEDCEE867167DA1 -:10E0A00075EE43D2B10F7B356E27677B55CA8FCE95 -:10E0B000EE2ABEA71AE491D8E5223B863A6DBF52FC -:10E0C000007FA414A681FCEF13F4D20FE0F63617FC -:10E0D000263B4B33FB715FF9B13F2A958C438DCCC6 -:10E0E000F82386452C8CEF15A3FBBE9228423BFDFE -:10E0F00028EB76A35D3FC0FADDA8FF1FC352504551 -:10E10000FF18F2E0FD465FC08372DCBBEB483EFACD -:10E1100091D4CDEEC2F3E5642ACCEA279D5794C48E -:10E1200079C93700A7A4FFF49941F2CB7EB8929F3A -:10E1300036188E0BEBA23E334B1C3936D5FC31FA28 -:10E140002339D602CD0CE9D83335FE13EE77F9FC2E -:10E15000F195C64FD17FEE9F629CC0FBDFC07C0F64 -:10E16000E2C3C5DA47A82EF94B857112EF3BFDD803 -:10E1700039F4637A461F163BF441FAB153E8C7E01D -:10E18000D162B457901B8B5D9F1F3B2BF5E07676D9 -:10E190003BCA07F8F925F97F0DF801B99CC17D9FAD -:10E1A000C4B0FB966245C4A61E00FA14411FDE5798 -:10E1B000C0BF2B1B7FFC4765181FCF023845EC2BD7 -:10E1C0009691751837BE1EF2F9C6A2BF304F21DFF7 -:10E1D0004EB9406076535D163C760AF5C695F7C396 -:10E1E0003166963898DED775EEB7D27CA11D4126F0 -:10E1F0008F7C28CC745D467E0240C4A8F7D38B0484 -:10E20000E941FB0285F86B2F658DE8CFDBF0D14C3F -:10E21000D0F7054A37EAFBB722453C5F1AC7F3C27D -:10E22000CEC26430C4FB2C04CFCA436C494506EF10 -:10E23000B7222AC14F9A66E461E082BC8FF2259929 -:10E24000AF4AB84084E795C3233CCFA8A88C1751A8 -:10E25000A02B0E91DC218F1A4E637F2AE91A29FA2E -:10E2600022FCA7BB2C7944DFE824C33C24D7C89EFA -:10E2700037DC1249C7F55B22C8C72E19D78D5B1151 -:10E28000FFDCE18106F4731EA07B7769265EFF60E8 -:10E29000C1175458967D24524AF45537ED6C1D0928 -:10E2A000FB1D0E8FF563DA94AA4906318FE81C0531 -:10E2B00072C8622F1B233C0E4EBB45C00979C9B8FA -:10E2C000EF83F4DB0DEB6099EFC23CA084E7010F14 -:10E2D00044CA689ECC07003EE101B8F00493F0B454 -:10E2E0008FCFBEDE03429E99781B2A407FCD5833E4 -:10E2F000C58BB88827AFB51867064029FB5A6274EA -:10E3000005FFDF130507774A4BE487B2C86F61DD6D -:10E310001E1FC6EDD6F255BE7ECCFF8C08E16D5CAB -:10E320001E3E3360F1B79D256C0CE601F736DC79B3 -:10E3300066C0626F3DF99C5E8C33096F06EF52D464 -:10E3400013A0F768D89B9A0B02CD0DB2A457A1ABCE -:10E350005B473B88E8F43C6EAC6426D6E3D5673572 -:10E36000EA7F15B234FC26D89A483973235DF160F0 -:10E3700092E1BC5C18237C7CF6DB04BFB05A6509D3 -:10E380000B9DE07F56901E38F2A51DA86080B77DDA -:10E39000A692DC0C781B826B28FE6C9A934BF7617B -:10E3A000DDA417EEDF33BE89E296CCAFDAA3D1103D -:10E3B000C5A7EBCCA78E4D8D3F84FAE809A6FDEAF0 -:10E3C000C34467C6AF6E8870BFFA19BC4AFFB1FB81 -:10E3D000E86BE43FA00621397782BCBF9B651F37FD -:10E3E000093BE82CE47AE87CFE55A1AF7FA988B709 -:10E3F000221D06C4B4E0946BCF37DB65BE29E478F8 -:10E40000BDF201797C2962F1CB208F2F679303FC49 -:10E41000DAD05FA8D25B3CAD68A8FF3962F824333C -:10E420009338CFC79A0948F5C719C6BBC178520CB3 -:10E43000E72D13FC7D507FFC1D486FB85F339E8E27 -:10E44000505DC8F559FA65B04B1E7FAFD16FF7BA72 -:10E45000C09F023D1D786B66E6F921B1CFCF55997B -:10E4600087701F2794F856A2FC1F558CA05FC5BE6D -:10E47000A7D9887E84E9536CF306AFB389F0F4958D -:10E48000996BD1AE99BEF80AF09BC5BA824F9DF345 -:10E4900001EB7E25776C667C25BE7E10317E86F290 -:10E4A0006A35E3BF40BB7BB9DCA52714BA921D7661 -:10E4B00056E724151807A698AFF37D043F0AA83B3A -:10E4C000CBDFA1BC68E17C85F2B4853EA8E0B2F860 -:10E4D000C9F322DE2CD4F97376DA085AFB1D855174 -:10E4E00097BDEE059530ACFD8BA86B15F6E5653C48 -:10E4F000C3BE49367BBB28EC49F5BE5D827EF5651F -:10E500007776BFFD4EC443704A54F42544FC5BEA61 -:10E51000E5F5157B11E8B3C4D7E7AA6AFF8FE2627D -:10E520008225144B5CEC1B7D91FC1D3DB1DC5F280A -:10E53000FA4EACD78E47F2591465B675415F5D51FE -:10E54000DEC750A396E74B55C6FB1E3D7679013DCD -:10E55000BE28AFBB9B94E959E919C7A667A1E79408 -:10E560009D9EA228DF97E7AA8C22C407F17938D2B2 -:10E57000D1510BFA9745BEFB26D5DE84701A4B7439 -:10E580009495BE6FDE7A0BE291634BDEAA47EDFEF7 -:10E59000B534CAFD6B5994FC4AF6752B85DCAED7B1 -:10E5A0003F5CABDD6F73D8BBBC76F67F2FAF12E854 -:10E5B000F07A139F267B9D7875F6FDB15B7A462332 -:10E5C0009F87847EA26FC77CC3D0793EF26094EBB4 -:10E5D00071784292E09E1D22FF48C38160B02F37C0 -:10E5E000541E32F31AF390CED97D7988A7F5DDDD7C -:10E5F0007958C73F3B509B350F3954D245743AF395 -:10E60000900343E4216BA23C5F3DFABF1ECA2B6A14 -:10E610002EF0385F73A14BD5413FD745B93F9B39A9 -:10E62000D0A39AA027359887009E03220F41F84D6A -:10E63000A0BA9177BB54A46BE6851E9A570363CCAE -:10E6400043660E918700152AEADDFE9ACE5771DFE8 -:10E650009CFCBE58696E885AEAADEAFE1E7A4F22CB -:10E66000E775966FCE33699FED7A736C2AA73733BF -:10E670008FEBBB136E28FDAA53FDE5D81FD8CA72D5 -:10E68000432887F7728655B2025ED7605EBC15419B -:10E6900081EFADA7F39209ACAB7DFCF9677387ED11 -:10E6A000C6ABF43F3E6117EFE5DC92147590510064 -:10E6B000F33FAB1AA9B9100FB68EFB6280F3B39E7D -:10E6C000EC6883904DED4E8DEAE93B827C1F64FE41 -:10E6D000F5D25285F24340337F01C0CF10F83DD3CD -:10E6E000787D58AFFA096E5B39CF23EF485CA4FE02 -:10E6F000C5CC7E8FAEC37846FF1A5E2FAA3F3C9EE4 -:10E7000087F9FE4734A6C2FDA56DF156D2CFD31EC0 -:10E71000EA67C8FE42556F37C92D6FC063EB73E4DB -:10E7200082274B59F2168F63CCD4E505D9FC90BCF7 -:10E730003AFB10FBA2A2FEAC64932E835C2EB14781 -:10E740003A9037EFF8DAA34FB1C1F3657FE1C149E1 -:10E75000C633A81FE3DCFDDF7E06E475E02D0FF570 -:10E760002D0EECDA757725F097E8D2A8AF2BEB19D0 -:10E77000905BD122AC675106D4973EB90AF5F2609E -:10E78000BE1C834303BA0FA6DFD77F629561199F32 -:10E79000886E398771EFE00809FF269F2FC789FE31 -:10E7A00055785EE3E0283EBE14559F4AD0FEF66BD6 -:10E7B00054476FFCA53F9B7F3C5967D7D77BAAD7AF -:10E7C000737DBDC23CF0EBAF47B3CCCB59606EABB1 -:10E7D00000791C1C70D1FB21A8B352981F3C38C98A -:10E7E0007C03E11F3DC5E57AF0AD8702B84FDEE15D -:10E7F000FD0F67F3F3BF11F1285DE74DE6FE83B12E -:10E80000010DE3D68E39CF9EA884754ECE1C3F45B0 -:10E81000051640163ECC97E57C6F1DAFE332F4BD84 -:10E82000A2AE42FFF3D6B9866CF65E15357F1FB5F2 -:10E83000C1F3F7A2AD5D1AC9BFE8D8BCDD78EE27F9 -:10E8400055D3D5A3C1FE1EF88D8B619D72A042D415 -:10E85000E143D11502BA8AAE8AAE5D33B2E81BD06D -:10E86000E5A91B3198AE97EB18C9E7C54AC387CF16 -:10E870009D7432D1C79C25FC7DCE9B5FA4BEE381F5 -:10E880007E17354F2E0DEC5651F564FFBBF354192E -:10E8900066406CEEFCB32AAA94F9886AB3BB19A748 -:10E8A000726DE3079A87DBC6CBD68ECED821FCBF2C -:10E8B000383AD636F6066FB78DC36CAA6DDC30FFDA -:10E8C0000E1BBEBA40C4369E17BCDB067FA7BEC473 -:10E8D00036BEBB7C990D7E4168B5ED794D60E7167B -:10E8E0006C1FC5274ED68633D2C7C975B00F79BD08 -:10E8F00006E9E3A3A71E0AA05EA46AE26350DFFA5A -:10E90000F27B4AB07FFD923B7BBDF6489D2AE377C0 -:10E9100009C67B83F17A4DC287CBFA6D7DF9D57537 -:10E920003C3EAFA853B2F6099CF158C66119979DB9 -:10E93000EB3BE3AE33DE2EBC6DB78FF7FB79DC5FCC -:10E940002AF4A0B5FC677EACD75F6AE07D84CE92E6 -:10E9500038F50DFA447C3EBAF4BE31F85E2DB7DCD2 -:10E960001CEE2DCDC4EB487992FD12FB3C81241B9B -:10E970005B81CF936C7505F5A5B5C8447E7F82B8E1 -:10E98000BF06AF10A7EB2D7273C6DFB06FF20B0599 -:10E990002C93AF34FCC18816007D7735EDD38AE126 -:10E9A0001AF11FD6AC7EE864CDAF8A8788D39FB4B6 -:10E9B000DBC72B641F070616BF6F1C78A385F7DD26 -:10E9C0007FD0E26329E0EF744B80AE3F6F09D2FD48 -:10E9D000575A74BAB6B794D335D512A2E7AFB65426 -:10E9E000D3F5F91683AEC75A62743DDE1227B89F7D -:10E9F000B634D2F5C51693EE6F1776FA61A1C72823 -:10EA0000977D85F8519742726DC0A3BAB32E18AAAC -:10EA1000D5CF835CFF239B5CAF359EA46ABA47A326 -:10EA20009E41BCCA6A4FDD7532AF4FEF37D125F337 -:10EA300061AC5F504F649F0EE8FB26D2E7C5FE5CD9 -:10EA4000D1F5D37750E1741D2CE4FD1BC4B3281F0E -:10EA5000FDF9D7E2B5E4CF474C267F1E649ADD9FCF -:10EA6000970EF2E72BC9EED871EC93627F91DE53DB -:10EA700038FA2005F53ACD937D90397FE07D902BD3 -:10EA8000F10F7C1F47BF25FDF6D5F2EDE4F7D85412 -:10EA9000E365C423E3F3A0F861AEA3F8512D6C96AF -:10EAA00069EF529E9827F8D9716E7101FA172F12EB -:10EAB000C8EB748355E33E33791E60F7DA92C17870 -:10EAC000DFA8E9A678BE2D9DE7BC4D79CCE0F865BE -:10EAD0009703E642D6F80E7278B3AE6AB07ED6A936 -:10EAE0003FECDF0CF1F9603FE37DB269FC7D9D8C6A -:10EAF00083072FF03EC6254D4932D8BA5AD6DC35A9 -:10EB000003AEFBBFC08AE3F8BE698C2BB41740F399 -:10EB10008E1CD07D0017EE3787E7C0F3EA540ECD88 -:10EB2000AB9D3F3989E386F8DBE49F6A357B9CC463 -:10EB30000C351D77A80956E418DF9C8157717FCBEF -:10EB40003263C0BB6EAAA9D5035F8B2F36331DF08D -:10EB50007B4B989BCE870C8EEFEB144B9F4D63A1A4 -:10EB60000EE443FBDC36FE5ECFA16F524EB2DF26D1 -:10EB7000EBF0279911C0F59CF8DBC47B17E7FB96F7 -:10EB8000F72ACC20C22B8163F4BE85AD65FC7C8462 -:10EB90000BEA1394DF304F726FE960BDDB3FE5CEC7 -:10EBA00031F564DF09E5C6D4ED5D0AD5EDA26E62EC -:10EBB000FAA75CD63A46D64DCEFAE831E167655DF4 -:10EBC000F4989B51BDD5AEE486761393CD93F8FBB4 -:10EBD000B8E61978ADA9977EE90BB63AC91FA83FE8 -:10EBE0003330355B1DC7EB11777ABF4B02E7F33249 -:10EBF000FBEDF798413CDFD83E79DD5756A2BC4685 -:10EC0000F8E8FD26D3E23AFA9BC7F1443FDA7320D5 -:10EC1000C18AA767F65765DA79ECC77640F282EFCA -:10EC200077E3F53C9F70D2E5BE46BA7023E93DB567 -:10EC3000B4771617EF25791EE913F7DB746EF70C1E -:10EC4000FD96E53D799BDFF0052CFBF828CAD93B02 -:10EC5000F4BEAAA56D01EC6777F95D64A71DBAB68D -:10EC6000B514C61D7E8DE729BA2B96ED7D5247BDA2 -:10EC700022F8E67405045D6A7831E53343ADD7299F -:10EC8000F65D8E73279A06D9951E8A63BDDBEA2F3F -:10EC900056B0CF299FAFAA57C4BE77911CB68AFC45 -:10ECA00028B7BC3BE5427D19B5662A8ACD07F9CE67 -:10ECB00079B8EF9BD84DF951FB089FED7C96BC3E8F -:10ECC00026F06D75876254BFE7BB18D6EF5B4BB378 -:10ECD000C7C387C5FEB6EA53E2089F00B98C570642 -:10ECE000C3AD11705BDC5DC100ACBB75FCBD74DEF7 -:10ECF0006BEB1872356CF48F6F7B6A937FB07DC0BD -:10ED000098F6CF1D60F23DBAEDDC43ABDED0B81211 -:10ED1000D6D55E6121340B6937DB313F81AB7BD4C3 -:10ED2000E246D4DF4BD5B92184AF535F4CA01CDB46 -:10ED3000438CFA165A61930FE97EB444A3730E9282 -:10ED40005EC8BB77A3FFC80FB96CF9794175AEC334 -:10ED50008FDAE981F548EF86DA5F277D94924F7963 -:10ED60001FF842B3319E05DFAB697BB7EB97FB0A17 -:10ED7000FA75257E6C71B22413278F1CFBD7D5F84A -:10ED8000BEE371C69F3F7F6C0ED5EDCEF18DB2F321 -:10ED900056ADAB11F7A5759C87F4CF397F6B29A7CA -:10EDA000ABB57E965837A0A0FE6FAF2ECA413FED9F -:10EDB00047876B91EB0B95E6CFEB2D71B830DA4CB2 -:10EDC00071F8BBF58CE4E8D7E38171A017FE5E15FE -:10EDD000740AE4EEFAF31FCEEAD72E47D66590DE2A -:10EDE000FA59E6F76790CB30C6F5C4CF1EEBA1B851 -:10EDF000C436109C94D7F65B4F86526CE875FDD5EF -:10EE0000F63ED307ED23FDA93EBF98E49CC37250A4 -:10EE1000CE97D8230AC5E1A841761748FB557EFE58 -:10EE2000A4580E811D1C93CA2999FE12C3F71768B6 -:10EE30005F26A33C8520478A57573AED0BCD1B2D03 -:10EE4000D0DC8C076354D47FEE772FB1B7F8FA305B -:10EE50000DCF9F280917C5CB5B51AF01AE94997FA9 -:10EE60003C9BE55CCE9840D3BED5702D9E27FA62C0 -:10EE7000829F2BC943D2FDB7D25B19E79DFD50D9C4 -:10EE80002F7D06FBA5CA95FBA14CBB48729379ACBC -:10EE9000B33F0A712D0FE5FEDE048D7592DC791EFD -:10EEA00090A9D74D9FF51C9D8C97ED81C5B63EFB73 -:10EEB0000CA94B0E3EBF7785B8D8D90B7E13F3E172 -:10EEC000E066EAB3EF3FBDEA38D6E397821E9D596C -:10EED000FC7F7BBEFD3D80C4FBF979A29F3EAA9ECC -:10EEE000E17CADC76478FECE130C515C6855B2BFAF -:10EEF0003F689D27F209679C70BC67F99F1C7FD211 -:10EF000053C6D2F14315FE59C657A641141D699D3B -:10EF1000CFFDA894C77E9157761EF9049D176041D6 -:10EF20004BFFB62CCBFACEFCCF30F4C0F44C3EAA4B -:10EF3000F4F33C54AEDF2EEAE7D6D37C3F72C5B97A -:10EF4000A141FA5A617E7A1EF67FCA5D8E3E95DD3A -:10EF5000DF38F35AAF8F25722DFE0FF2DA8DF328CA -:10EF60001FB1E7A5C3638C9FEF293419F6712241C5 -:10EF700053C5BECBF4DE669501DF334EBFFF7E2C5A -:10EF80009AC7F39CF6F25571AC7F641F79C79CBB9E -:10EF9000C8BF421CDD3ACF52C7CA730B1FB4AF249F -:10EFA000F575BAD847896FD0F992D91BF8FB9FD372 -:10EFB0000F9D407DDC0FFA8871BE3D3FB1AD02F37D -:10EFC000935754B6571FDC8772F225FB49FE18D7BA -:10EFD000534FB0FDE85C97453EFDCDAA4EF2311887 -:10EFE000BEEFD1C4FB1E67FFC8EB359A317EA76A1E -:10EFF0008C466BFF58CA6D91D0E7376A9AE97DD489 -:10F000003343BCFF9570F89918D6D3B21F553AC94F -:10F01000FC3EEEEBF4D87A15DD48757C3D9DA3CC23 -:10F02000FB77467520CB55927B61A923739EA53A49 -:10F03000F1F74146FD320FD689C55817F23A51D63D -:10F040009FD24FD4A94F7794E1F98C5E8DCEDBE54A -:10F050001DF9840FF3DE70EF6AAAD50C65691EEE08 -:10F06000A33C7F24E9BCDE3AB30AEB4CCB7B928C09 -:10F07000DF88FD02F5A0B325FE8B28E8C781168343 -:10F08000C6ED2D8D74ADD29206F253554E951B9B55 -:10F090003500CF2D7454F5C46CE31D95E619D4CB1F -:10F0A000BCF2B8EDBE3708F82C7A0175EE3992EF54 -:10F0B000692E4FCF7C85CE152CEC675BB86DFFD3E6 -:10F0C000F8212D7663FC504EEC7DFD107F5FEAE960 -:10F0D00017EF4B1DF6B6679E4E7690B63B7C6F4A97 -:10F0E000712E41F3E9DDDF4CE067D827B9DFCA9C18 -:10F0F000CFA0EF12C3E27B693D366B0FE6B3EDAFF5 -:10F1000033F99DF01EC3F21CFE6AC2EF440E63B1D8 -:10F110000B79E6E65861137D4F2DBE87893416962C -:10F12000F4B1CCB945A7BCB6C45CB6733161C6FBBB -:10F1300062F2F92763A26E03765C96730FB978EEDC -:10F14000214BFEDE24F0350B397578F8B983B98E82 -:10F15000EF3C66C6785D30D4771E9F1378AEF45DC1 -:10F16000C76201773FAE5745E722C331A4372EBEB1 -:10F17000CF1274CCEA4DB60EC32431C8B2E2B93313 -:10F18000C6CFEFA562FC3CB1276868B82F80EF6E50 -:10F19000C2D7C8CF59CAE7B32EA49F2F243D69E038 -:10F1A000CF675D30A91F24BFAFBBF3F8D83D9BC626 -:10F1B00065CED7B4633FC28FDF99F0734BBB04FDBC -:10F1C000CEABFCCEE4DE8038A793B8758F81780C87 -:10F1D000FE5D65EDF10903098DD6FF18D127BEABA1 -:10F1E000992CF885FBAB882EC7BF0FF0C0F1E01E4D -:10F1F000F13DCE1A9AD7CCE9CEFC7B07A13DD6EFE4 -:10F200007B261FAF6C12F0EB087E2D87CFA20F423A -:10F210001FA7ECC15EEA55E0FB0CD1B79CD3571693 -:10F22000D3F977590EBD05B8CFD3BAE23B9FDEF8CC -:10F230006A1FFAF3CCF7FBB7D17A5721A736C2631E -:10F24000CAF59838CFC4ED42EABFD4876F08FDBC39 -:10F250003DA648BD7A8CE86DBA61FC7F89E8717C77 -:10F260005774253E2A2AE34FD0BC60FA5CF1D78957 -:10F27000AEEBA4477E07E6B48BEF0BFE61DDA7691A -:10F280009D92109D2F8275BF7D23D605BCCF101E89 -:10F290005F1AEFFE58767FF381F0B292E2AB3A1F2D -:10F2A00022C7FF0F94B0BE363046000000000000B9 -:10F2B00000000000000000001F8B0800000000009C -:10F2C000000B93E46660F8510FC181486C62F11A3B -:10F2D0007606866816068699AC0C0C15402CC74934 -:10F2E0009AFEE540FD8B80782E10CF00E2C940DC0D -:10F2F00007C49D40DC02C49240F34480981F88B943 -:10F30000809815881980F8370703C3370E8439377A -:10F3100080620F48B41B84AD7810EC3340FF6F045B -:10F32000E2AB6484C3281E1E389D9F81A15A00C190 -:10F3300017104495CFE047B0B94429B34B1AA81F22 -:10F3400000656D40B4800300000000000000000074 -:10F350001F8B080000000000000BE57D0B7854D5E2 -:10F36000B5F03A8F79666672F2204C4280134830CD -:10F370006A8A03840882F52420C696DA9152C5FE73 -:10F38000D60E34224A2051B1722BFD726002040164 -:10F390003BBC1414E9E00D8A8A362256ACE83F20C3 -:10F3A000B5B4B56D6CB9D55AED0DB5AD2F0C88520D -:10F3B000FCFBEBE5EEB51F99734E661250F1B7F703 -:10F3C0000F9FEEECB35F6BAFD75E7BEDB577DCB232 -:10F3D0000FF287029CC49F8B00EE7003C0D8743A72 -:10F3E000EAB66FCC7DA49AFCFE7FDD916D7ABA9E61 -:10F3F00048878244EB01180045001779C9AFA4DEA5 -:10F40000A49F1FFED37985007B41010FF9945227F9 -:10F41000157C8DF4B3F7238860B9FCF3406957007D -:10F42000DB99B4DD9781B54B95E9A55A156640C6C1 -:10F43000EF8697FE4EFA19BEB999B43FFE6180B6C9 -:10F4400077C22152F84886146F737218F6AB7ED0DB -:10F4500055C9F3654006070EEF64809A34BCFB5F24 -:10F460007B83C2BB4F25F0EA19C6F712F80BD3F025 -:10F47000EF856FE4421583DFA849C37FBAF0D0F966 -:10F480000F0058DEA23F5DEE0258DD024F97570095 -:10F49000AC6CF1D2FCD2168DE6E32D619A5FAE9290 -:10F4A00026040FCBDB216992F6A16A525FF447FE76 -:10F4B0000B54796D79772169EF4DE7D540D896F7F0 -:10F4C00096EAB63C01E76098CCFB1C3E9FA52D0454 -:10F4D000071E1CDF0BC65958FE6D8A171FC75B3C01 -:10F4E00038E2CA61042F6D2F2A84D2002EDD988164 -:10F4F000F09507DC7A92B0C63981D9536124193767 -:10F50000140320F5E21B00D612B8CF0E4C790B4243 -:10F5100000F793FEDB48FF4AA8ED650F295F51E62F -:10F52000D615C4CB76F52F5D640C2FF987783B6B2D -:10F5300023CBA7E745F296799E0D9672D2FE977976 -:10F5400077BE2C1138E2E56EDD23A5C7E9A14B3F5C -:10F55000FD5724EC7967FFE5BA51877C2AFAAD8024 -:10F56000E8122DF0C5EDF71C82DB82FC74BF629CB3 -:10F570007EFB25E48F92B6151B21992AEB3D4EB9EF -:10F580001EA9374979F946159265EC7B219187725E -:10F59000F62B2C2FADF3C7AA7AC303D67186A5E943 -:10F5A00052AEBB67CA842FCACBAF982B11BE8184E1 -:10F5B00085CEC31883A2BCFCB045A3FCB8BAA59203 -:10F5C000A6ED2D5A07959F8F95191D55BDE5F0AFF6 -:10F5D000A8A748BB3B5C40F9D0DC06C96D12F61702 -:10F5E0009D3193E4578D2A1A7DBB8EF91932EA05B5 -:10F5F000C1DFAB249DF2B749F81BF59F533E56BBC4 -:10F600008CAF607F2B46C9D212C47339E3F77257AF -:10F61000CA3B1CFB4D0C1B65623F91DF7561BDF25F -:10F620008A11BA42C63DBB9CF1FF2FC7DEE9453DBA -:10F63000D833FF85451DE56300721D7CA09D221F08 -:10F640006813FBE60331CE672D0F678EBF127DF284 -:10F65000D7AAC8DAB7506FB49733BDE184AB7868E6 -:10F660002A1C0DF4E6B7F272C26748A748DF7CE6B1 -:10F670004C37B424E175C243EB5AC294EFD6B4E8D8 -:10F68000345DC9F9D0853C554CF29C0FA1B09AE687 -:10F69000B3AE57B098AE4703A6272146E05C87FC7F -:10F6A00079017E5F6A18A5A479A5C8434A26BA7F66 -:10F6B0000D9697D0BC01A5C89FA2FC31D320EDF3D5 -:10F6C00079FD29D263669C20699D8FE5EBA56EC309 -:10F6D0002CB5B65F691813D3F5493E55576EED8FBB -:10F6E000F45F6585E7395A5FF4D7201D324C925F8D -:10F6F000E363FDB5492F7F2EFDDF2E25C2B8D0ACC8 -:10F7000070F473BBC89B09C3A84A8F53B6F851C3A2 -:10F71000B496C3A3B6F29AC509D32478BB0BA2C38F -:10F720002542DFE2A9D13010FAFBA2491397DA345F -:10F730007C0CDFE9F9DD49E1F597B3F22AE9F746F8 -:10F74000DC429F5AE93726C22FEC1B85F3ABFCF352 -:10F75000D29B5F20FCAAE4BA23D4CE282499F1647A -:10F76000BCE931D0091C723806A80F94B0FA77AB07 -:10F770001C08FE23708EA3704E8ECEC802A769852A -:10F7800053C0D11FDC028EEC7CCAC677F253DD6514 -:10F79000E37E3B91B0B8AFD315413BAF00F144F4E9 -:10F7A000007CB4CE7091EF05D308EE754AB71930DE -:10F7B000BC77BF85534B206959C73F6BBA0EC7FC56 -:10F7C000588AB7EF4863D3F425F999563C8EE3F590 -:10F7D0009CFC27E6E7EE35BFEFDAE6076A221C0D50 -:10F7E000F63FBF35BEC88C68A077BD5F4ACC8EAEF1 -:10F7F0009B32EEEBC0C6030FD15F7938DEE8F478B8 -:10F80000795F21E361676A32E378F993C978DE337F -:10F81000874FA73C0A787DBDE05D6783F776179137 -:10F82000DB0CF43FD3F09EAAFCF989FEA5F257D970 -:10F83000B7FC7DD6FDE5E1AF849FDE57217511C190 -:10F84000D7828BBD49534AEBB9CF1B5F055844E8BB -:10F85000B7E0D7630E5D246386F0F597D2E3CF97C8 -:10F86000740A7736FECE361F80A4AD9FFF57F3C9CA -:10F8700086D733AD874E55BF2EF9839FEEEF969610 -:10F880004312E569E9818BE93E73E90B930602E9CE -:10F89000C7D5762E18645279DCCE588A7606F63FA4 -:10F8A000F9D4EC8CDB5BA0A395185D4F84A2D42E19 -:10F8B0005A2A016DBF8AD86D4962BF54BFD8EE9DE8 -:10F8C00019A076154D97BA80DA31D52FEED726914B -:10F8D00029F82BF24721EF2FF589EF07EBD1CE5D09 -:10F8E000594EBE13D6581A64FD91EF51AC9F53C1C7 -:10F8F000BE67832BA792C063C1BBCF9D8C65D28F9F -:10F900005F96658A9F4DDCEE5A8D761751C83E7F13 -:10F91000228676B5BFC8ADDF27F56E37436676FF22 -:10F92000FA8A9F98E8D25881F61B99FFBECBEF87E1 -:10F93000AE2A5C0713868CED23CC35B0C9B1DE0747 -:10F94000D086A3EB66589A44D64CBF23BF5AD4370F -:10F95000F55AB4D74295ACBC76C985B5716B399C64 -:10F96000578BEBAE28BF66C9585A5EEC8DBE3C91F2 -:10F970008C5F4CF4679CE0A9584D48CD949E99F952 -:10F9800065FDB5DE194902C3FACBEF2CBB36039EE9 -:10F990000815299D45BEA4C12E5F9B38DE56733CD9 -:10F9A0008651C62D7ACDC7AAF6E835DF594CAFF996 -:10F9B0002B138B11CF250D10413B7B3DC15FCC320A -:10F9C000BEAFD2AEDF8A55FBBCCED47CEE02E32ABA -:10F9D0007940F6FE9DF27517C46662FD62BE8EFB2D -:10F9E0002B9352ACAAFFF93BE79B6DDE5FE5F82451 -:10F9F000E3CCCF34CEE78597E20019A7FAB31FC74F -:10FA0000DF60D793A78A77686C37705F8DA626EE84 -:10FA10009B7D303992A2FBB9DBA81FEE160E3BC4CA -:10FA2000366968D7C40132EA33B5DC9DF6A7E1FF39 -:10FA300094AB7333D145A40B5F7D2F6FBFA57E526E -:10FA40000E16FE3D87FC723E9C7F5249B707EEEFD3 -:10FA500053051C817CDBBC4EB41CCDDB4FF4C61AB5 -:10FA60006D1AD5C7D9C67B90E8D11491AF075ABC9F -:10FA700034DDD6A2418AC8D9BF1379C3FC56227F90 -:10FA800098FE88EC1731BDB72542CBEF691947F3D3 -:10FA90009B5A0C9ABFABA59EA61B5AA2F4FBBA9622 -:10FAA0001934DF83CF8FC87835946501EDAAB36729 -:10FAB000244DD463B003221504BFCBF1BB05FED5A2 -:10FAC00072EDB332FA3D67F8A87F23C8E7E987A44F -:10FAD00081FA1B0E2AB00DB2CFEB0E3EAFAF28322B -:10FAE000F39FAA957470414FB91DA85FA5A89AAC61 -:10FAF0005B44E5E65ED89A8FFC5E54CDBE07038476 -:10FB000091C877A51A52BE101D5AC5F61A6FDF3676 -:10FB10004EA6F5566B2A6DEFE48B73A193AE33605E -:10FB2000782308A777BCCAEA57B1753278FE3EA49D -:10FB300020B44D94E9FAB9BA9CC1A168767E09D681 -:10FB4000DC0768EF879561741EAB2F50370D473681 -:10FB500080CE9787937E3690AD0DAE6B0F6CDEA98D -:10FB6000CDB4D0D9AB30FBFCDCE93BA315088F4A00 -:10FB7000E49A8C5FB8D99FC47587D0434178737C71 -:10FB80006C3EE7E298048EC24590BCAF2C5D1EC867 -:10FB9000E3F3D18C5AEA9710DFB9E23957EF48C93D -:10FBA000D86E2344EE8374B94FB433ECED7CA29D40 -:10FBB0009942DC42E12A7B3BBF6807B5B6767ED12D -:10FBC0000ED61A74BC0469A7A7CB15DEAE47EE2B80 -:10FBD00035D92A674A409799DCD8E9948D7F34E07B -:10FBE00074D8674A27115FD52C2F49DEB69332AE01 -:10FBF000B3763AF951CEAD7A2660C913D245517623 -:10FC000071BFC6E9953433D36B9D1AF94539CEAF30 -:10FC10004AB5CD4FD0699D97D3D1F467A4D33A8D1F -:10FC2000D33106363A0B7AAD13F46AB4E34FD06B96 -:10FC30005D167AAD13F46ACE4CAF7559E8B54ED067 -:10FC4000ABC1DE4ED0CB490FB1EEA4E9D62C21DDFD -:10FC5000CE143D9C7AE10559A7DFE5F6A39D680F18 -:10FC6000162D50D93EA9B21350CF43697E3F76ABD3 -:10FC7000C9ED93665A7F2DFE2AFC5F28A76E96BFBA -:10FC8000267EA816EDF07C4994EFAB457F5812CB49 -:10FC900089FD7573FC382D7F528EC614DA5F1270A1 -:10FCA0003FE2C497279A848D04A40A357A6905FA3D -:10FCB0002537CB11F4DF0A783C20F004FCFCE6D4B5 -:10FCC000F81F80E10BC13B39FC94E0BC45A1F84C26 -:10FCD000323C39E124FBCB8D645F3384F3F710F3BE -:10FCE000CCC0090D6CBDE8599FB99DE482CCFD5490 -:10FCF0006E966D7C3362BDDFC637E5ABF26DE5C352 -:10FD00005A4B6C797DD1305BFD210BCEB195973686 -:10FD10008EB69597345C60CB87AFAEB3E57BF10BC5 -:10FD2000CFB72BAF2CB6F18B39A20EF76D496074AB -:10FD3000D81E1F5187FBB6FECABF7E8B6A7809FEAC -:10FD4000D542375D870805297E04BE723530DDE86F -:10FD50001F280C242F21E57ECD30A93F403300F72A -:10FD600073B216A37957D82E5F5F4301227CFAF550 -:10FD7000AD2A780BFBECDFF824FDF7372F27BF887F -:10FD8000F55D2964EBEA06B25DC2F33593E8C76D11 -:10FD9000645C97C6D67597E01FC2CFA8573455E26A -:10FDA000F27B7A72367CA31DDEB2843D3FB4CD6116 -:10FDB000079E227F7F5EF2DB1FFED641C4544E01B8 -:10FDC0007F1155E2E7D5A727FFA58D76FC9434B8BF -:10FDD0001D72E2D0E79F33FE5AC57A01D13AC44B77 -:10FDE000CE7AE64341BB2B935D21F865C3F49BFCBF -:10FDF000D6F50CACEBD4B0F43834AF64CA7FD1F88C -:10FE0000A4AB16ED8B9C8564FE65CC8EC9387F4E05 -:10FE1000EF755365BFD50EFBA2CF3F4DE71F9C5634 -:10FE2000FB700FBCA51ADDAF89BC635FD6BBBDC933 -:10FE3000F44DCC275BF524F9A954ABD135E98F20DB -:10FE40009F9DF08546422ED91F7A597AA6F76D0FED -:10FE50004C67FB12F3D59C6405E293C771AC7DF54A -:10FE60004B4984273955863BF19C79B29CAC20F9EB -:10FE70005BFDA1FB10AE6F2AB15BD50108EF9024AA -:10FE80009E1783AAE74D0B5AE6C9ED2231FF6CF6A7 -:10FE9000D192D69BEDEB194CAFB3F2E35DADCB69DC -:10FEA00039B13B5A554AAF2F8A7D9415CE4DEA178A -:10FEB000D83E12E703CEF6FF2AF6D101B57189DDEF -:10FEC0003EDACDE8008C0E2FB4EEAE3B9572611F8A -:10FED000F9036EBEAF77D82F95C43EC2F3A300B727 -:10FEE0005F2A93D45EF1552699FD5229EC19FB7ACD -:10FEF00076231AA063D3F6511FFD1B9FA4FFFEE6D5 -:10FF0000956D7DF705847D9460F611C135C69928FD -:10FF1000446DF846225FD8D7F76A5796F5FD7F8C77 -:10FF20007D94597EFBC3DF3A4830FBA81FFC4DCFC0 -:10FF300086BF7F71FB68BB0AFF9FD947D9F8E47F72 -:10FF4000B67D94A6F36763E738ED1A61479C69FBB9 -:10FF500046D827C48EA1769649EC2CB4734EC89A25 -:10FF6000EF4E32CF5B15DD877EEAB55C5E17AAD116 -:10FF7000352EBA7EEB7968676C447D3E80EB59B4D0 -:10FF800083023C3E4F8DC0B42F61FDD84697E51CDF -:10FF90004209E8793DE7365F203C103BAF522DB473 -:10FFA000CC9FE345E061972B8FD3BBF9FC289BD70F -:10FFB000E3140FA04BD4DE52751FA64FF3F58DAEA0 -:10FFC000C7D5567CB0BC52AF27511E48FBA75D0376 -:10FFD0006C78F1D9F042D621361E28CC9E336DF1D3 -:10FFE0006CFE6A4D42BF39C97622FFD2F3721D20E2 -:10FFF0000889FA11A4FF82D8B21B311E33F8EAA592 -:020000022000DC -:100000006F615C6341D74C1ADFD85A35FA401DA99D -:10001000971BD12E9FA2E3BA0AD4CFB8023BA3E725 -:10002000A110AF0DF0731C22DFBF597A9CAF9B0665 -:10003000D8ED725957853F69587679213FD2494F9B -:10004000EFF6D9E4C365956B2A9F379D9A7C4E6580 -:10005000726D927FA82FF21CFDE41A8EF304B0E4B7 -:1000600049F9879C8F8985F2B98CA7C15AAF4EF8A0 -:10007000CD552E6B181F990B5A1EF29F7FB20A297D -:10008000F4BF141E35D105DB1F5D5AB91F1D25F0C5 -:1000900072CB7E22E866F21A9ED55AB68CF47BBCEF -:1000A0009AC5DF1768E4BFD1BDE7B392CB574FBE07 -:1000B000EA3E7A6E1A27FC340CF9B84AA6F70856BD -:1000C00094333D2EEA9DE7966CF7082CFB365DAD28 -:1000D000E1F634C18F522E1B68077C5AFE503E2138 -:1000E0007FE44CB5DB05A74BAF89FC5EC5A9F2C721 -:1000F000A71D4FD0B5B75C2DE6746DF0A2DDBF2C07 -:100100003CADCF73D4DE745D4BE9EA2F072399A190 -:10011000FF5AB794317ED6B93F72DAEBCAC09A194A -:100120005BFBA25BA1D32E63FDFA162AFA5F51791D -:10013000A91A5D07BCBCBF15FA5A13D793E36833FD -:10014000107C28895129D49F500EF41C111906CF18 -:100150004D7DBA41F7E17405AA49C3E72E956DE3D9 -:10016000A9857EBB5D3DC394ACF0FB16BA291C5E2D -:100170001C0FF5B4C6CE3DD58038F774EC1F1D7644 -:10018000C3F2D2D119E30CD4CF6ABF3ADD0EEF2906 -:10019000B70BA8FADF2D7654F6762AFCDD624FAD58 -:1001A000427EB7D07F990B764B641D8E87AF8098C7 -:1001B0004EF258540CD086E978E4C3D11A5DBFB62C -:1001C0004BF47C988AB48EFFB173A2ABDC3AED4756 -:1001D000F6C6289E948001B4BE7E6AE7482706B31F -:1001E000B8A56112D8EA3FEC76D37215A2F43CFDB3 -:1001F000C46B978469BF06F9549386C3D9EF55EE53 -:10020000D8C36E6CA73178B001F5478C637E81B09E -:1002100097B53B31B3EFB8818D285F6759F23C2E1B -:100220000BDA4E2DAEEB0419B3B38AF2BF1FF7B54C -:100230009060F6D0504EB3AD8BF2E9F7ADAD7DCB0B -:10024000F9DD5CCEB770FBA81DED238BDCB7F3782E -:10025000B36D12D8EE595478587CD63B5CEEB77A21 -:100260004D1FBDAFF0DC0ADF088C7739A8447C0451 -:100270000FE5D71AF9B13EF05091B0CBDBE9C67764 -:10028000BCEACE1CDF91ADBD88EBF8B478D9C6F7D7 -:1002900031159ED971BA6F495D44E5B398F34DF1BC -:1002A0001CA076ED5013923AD6FDE82458F983FC51 -:1002B000EC433F454903190BE915930DD41F251B4A -:1002C000DC4999CABB763BB60F1F5458AC21188144 -:1002D0009935945569FBB0F2422D8ADA706E9FC150 -:1002E0002AFBBD8BD245F6FB52258E7B1261B4EF03 -:1002F00042E877B5D42BFBF4F40879083DCEFDFC39 -:10030000E9D1AE1A7ECDD2BE5C82684786FECA3D78 -:10031000CCEE285FB39EC5813504E07531DF6148BE -:1003200057231F17832D89FB16E3399BD9C0E26B36 -:100330000635826CE5E3319E1CDA8F0B0CF32C82C0 -:10034000B7A5DFBEA2EB19A4EB44B0E9B10CFA6388 -:100350008C87C88BAB90E98FF6C434967EA4D0F519 -:1003600023BC08924B08889363B1C52EA4FF1CA040 -:1003700071E8E186E6BD185F5DDC08111C86F015AA -:10038000E5AFF00C481A945FE06098F0C76036154E -:10039000188C7C81EBCF02465FC117258DF6FB36AA -:1003A000E1067BBE88DBFD45CEFB5B8E7E8A7576E3 -:1003B0000F4A5F2403DEFB83E9F6FB3661E87AF03F -:1003C00001846F7F2092427E351DE338FA572176F3 -:1003D0008587E0F389EF4FFDE559A4FE8F16D5150B -:1003E000205EB67AA3B9F45E515BE6B8B35EFC2A30 -:1003F000EC8E2CF5D37AD4B4C5353BD3651545378F -:10040000CF2270AC081A40F59A7915D5EF0A97DF1C -:10041000E78AAFF0623CE9D2C0E85CD4B37B314FED -:10042000D2A5E111346E57F4A3F0F85D918F737D7E -:10043000EA1CEF160FD3A37F07E316C4C3284F2C83 -:100440008CF376858B1E9FA9D3F3422399A1DD758A -:100450001E3FB32F75F59F56FC93055CA372087081 -:100460005AFE85599E581BF2A75947B613C8FFC3B9 -:10047000201947FA3727B8DFBDA7DE6A5ECFA47E12 -:100480004F512F9600EBBE93D45B8BF321F50C5BA1 -:10049000BD68AF7A77F17A601BD7E835EE66011F49 -:1004A00058FB8BF4EA6F2BEF8FDA833DF5F45EFD9A -:1004B000DDCFFB336CF5B45EF51E16F0D9C605FB37 -:1004C000B83DE5E7B89371AAB7593CFDBE8A2994B7 -:1004D0005FF6574CA99F45C6B9F9172EAE23AEA1BA -:1004E000EBB6E0ABBDBC5E2BF25515DEC385B64660 -:1004F000BC07CCEF09C703D3BC31CBF71EBE0A4CF7 -:10050000D3327F9F65ABAFB6F9C01843BFD3FAAD06 -:100510001F2BDCEF9D3719FD71CB0B65EE9FFB5B4D -:10052000DC50891E1BA0DAF26D61563ED2FBB7B8D3 -:1005300089778AF83D18A22B9FAEB2C877CFF89F73 -:1005400017FCFC3C230DFFFB71A3DC0A3FCB0BF82F -:1005500045DE5BCCCA47B7BD3F092F56897B00C338 -:10056000DB0A5AA9FFE20B3B3FA9D53E3F964FCF8E -:100570008FE5C5FCAADBA4C9FF5AF3CB6DB5F31F09 -:10058000CBA7E7C7F2627E356DB9A7353F673DBCA3 -:10059000AF847A7E45C5FD615C7756E0424AFA1D1C -:1005A000D7F6527C31C9DF3E40D8DB3AD5EFA3C045 -:1005B00038C73BB6FF76BFC2E037D2D61B64E7C16F -:1005C00050E1E6E7C18930FA39DFF0683C8E8EC130 -:1005D000A978EDF9A1981F90CE935FFE89EB308644 -:1005E00029B2FDA443CFF7B3AE2D2D66EBC9B2609F -:1005F00044B6AE6B220EFAB9013554FFC435A67F5E -:10060000F60EE0FAA890AC6BCC9F47EBBBB8BE5A95 -:10061000DBC2DE0B48F0FBB0F1C2D1143F09711F01 -:10062000D69C62D36FFB6AA71C40FFD5B183EC9DBB -:1006300088A7BC6CDD5BDA021DECDD032FBDD7FDA6 -:100640002CE937462AEC21F61EA63F25F61EA6BB4E -:100650005BC234FD498B4ED39D645C4C1F6D894059 -:100660008C8CBFA3651C4DEFE2FBAB0D682F92F4A1 -:10067000CB8532F55B6C6D2196B20BFDBD5E9ADECB -:10068000DBA2AD522BD0DF1BA6F963D2B4EBBC7456 -:10069000FFDA15CF25703EF1BB727A4F7C62A14A1A -:1006A000D75F50534A6E75FABBC0EB31A9AE11DB70 -:1006B0005D1096593D6F321ECA5CEF46AC372EACCA -:1006C000527820602AA1C28CF5BE87FC5513E0FD4C -:1006D00069B17830737FB7617FA303BCBF423D1E11 -:1006E000C8DC9F89FD8DD4181E20DCB5242773BD7E -:1006F000A558AF4AE3F32D4DC93999C7BD1DEBE5A8 -:10070000E727E8FD9D8BAE066A8FBA0AF5ADD46780 -:10071000C1EB25074441267C9E5F9068C67A17C6C8 -:1007200022308C8CAF872220137E7605487915DE27 -:100730002527FD9074C274528EE74258FE254B392E -:10074000B627E9F819BC7DAEBD5C8CE76A839EFBD9 -:10075000D37869DCD56ACFE7C94C3E1F6ABB6A32E1 -:10076000CA7D1E3F7FFA35E6C9B8AE4520F411AB0D -:10077000EF67E5CF88FA2156FE1ACFE7E7B379FB9A -:10078000A67869BCF0BDB78C289E55959EEFE0EF2A -:10079000559E3DCB32BF7BBF7741F1AC407A3E8363 -:1007A0006F9D78F6AC3EF63D05F572CF9B24A8B759 -:1007B000F21255547F8EF244A97D386A608D81F221 -:1007C000ACAC6270BDEB2D6B5DA252B84C7A4F930E -:1007D000C375CF3C3B5C83E6DBE1BA67BE1DAE412F -:1007E0004D7DC3F59497E9B56CF091F10DEBF85B95 -:1007F000FECD3EFE90EFDBC7DFF27DFBF8436EFBE4 -:10080000D4E3A7AC74D97CA37DFCD29BECE36FBE90 -:10081000C93E7EE9CD9F6EFCCFCA1EBFD01BFBA791 -:1008200097DBBB8AD5EE6C8ED9EC5352EF24AF67C1 -:100830002A563B3616B3D9A7A49EEAE3F6AEAD5EC0 -:10084000B4573D9F8FDBBBB6718D5EE386787F2901 -:10085000D9DA5FA4577F05BC9E295BFBD37BF517D4 -:10086000E6E31AB67A5AAF7A83057CB671C13E2E9A -:10087000F038B05B791C189577527FE1D5649F5DA5 -:1008800086FBD0A884FB7DAD0046EDC7FB26C3D90F -:10089000BB477953160EC5F55C9AB2F02C5CFFDAB3 -:1008A000F2C0B66F9BE2637E84B13E85A65A0E34D9 -:1008B00053FF9DB7B9F872CBBDD72DBC5E4F79A061 -:1008C000B9F81B96F24B78FB367E6F70B2EFB7D457 -:1008D0001ED10691FA19FC66978AFE783914463AB9 -:1008E0000D02F75D574D1B6BD5CF5B7C2E3A7F6DAC -:1008F000281FB734335C6D656CDC7B71DC007E17C0 -:10090000F6477331C5B7C652F17D4370B6F457C48C -:100910006ABB97AEEB6EBEAEE7B99B1F282370C4CF -:1009200007CB80F7229697F6EDCF696DB19F2FA880 -:100930005AD4C07D5FC91C6D348A47B67677D7CB51 -:10094000F599CE1F1AF87C5AE7D425CAC9F8B0DF4A -:10095000EEC7250C0ED6FBC857B9630DBE4C7EDC26 -:1009600056AFCDBEC92B9A960B7DCC23DE62F7E342 -:1009700012D56B64A2DB4A1F3F1F39E8B5D95B79FA -:10098000F932DD771EAF62E7066016533F610F5EF6 -:100990004BEABCD6F15738C6F3C13403D7015CA685 -:1009A000505EDCE5EC5D157F61422BD3D17FD049F1 -:1009B000CF0381DF7713FDB686A7D1FDF8717E0FD7 -:1009C000560D276A99DF91C3A7715DC5C729D9A8BC -:1009D00042AA808CED8AADF48DB5D2CDA4F74B4EF2 -:1009E000B89297D2F79ECA08FDA5DEF3BFD3C7FC25 -:1009F000C577EBD37E5B9681BEF7A0B3D8D26FC923 -:100A0000876E488DC95E3F5D8FC1D5C3B761C2AFE8 -:100A100028FF3AE75BB7F1235FA6780BA11FF839EF -:100A2000F8AC71C07FF42BFF44E671FD01177B77B2 -:100A300041DCB7E1A5D773BFE92CEE776D8068087C -:100A40000BDF05B91EE5EC5DF85D688C85FE4FFB9C -:100A5000DC0CAE3617F5778973DF6B132E9B3FECFA -:100A6000BA8DF6FC6C9856847A6BF67A17F5AF5D02 -:100A7000EFF0D33ECCE77B1D342F433B5EDCDB9EA7 -:100A8000A5818AEFF2CC7BF2DE1ABC1FB5CFC7EE90 -:100A9000EFBD4DF846B7C8DB0D81A41BEF01BCBE0E -:100AA0006BCC151300DB279795A0BECD838CEFBED2 -:100AB0007DB7CD0E5F7FF03BE10558D2271CEA766B -:100AC00029A37FABD327CE8919BDB2C57988B88B4E -:100AD000639C8F7AFC307FCEE17E18167FD15FFB5E -:100AE00013FDB49FE7ED72A3FC34A9CDF5929C3EB3 -:100AF0009FF2B862C620324FD7EEDAD420B0D56B61 -:100B0000EBBBDED12940F5657314F948D49B0FA4E3 -:100B10001ECAE59ECB4D5BBD72526F78F67ADD5CE6 -:100B2000AFFE7CC7BFBBD11FF9EE43872E43B99CF4 -:100B3000FBB4025E326EF78E20A4E83E36E9C6FDB5 -:100B4000DC0DBB948CE7B9346280F43FF7C741BA3F -:100B50005EDEB0D3939C4ADADFF093D74702C143FD -:100B6000F792A3CF0FC275F721899DAB9A5D2371D0 -:100B70005DBB4185EF4433F437C0CFF8F0F0533913 -:100B80003390CED2F6BDD7D07E3BAE74792CFA220C -:100B9000E077897ACC1FF7A044E3A37BC3C7CEC11B -:100BA0000E3F2831F876BB923E846FFB56778CC09F -:100BB000D1B4FD3DCA57937EFC4808F1D0B45BB177 -:100BC000F9899BB62B29CF489A1EC214CF57A41A75 -:100BD000C427D38FF377CDA3FEF3F91D2BDF534248 -:100BE000D8DECEDF042F9114E2F525253215F38FE0 -:100BF0003F10D209AADEEEDC1642BC927E67BA73C1 -:100C0000F11CD8EEF7C6FE3FCCEFDD1FC05137F226 -:100C10005753C70A36DEAEAFBD81FAA5C921476F6B -:100C2000E32FC5BDCF5D2EF43BCEC1B6179C927DA0 -:100C300039F791E35B4C32EEE19DEF6C3109FC8DAD -:100C4000FFF5FE96DBD00E7AD6A7A11E687AE83FA4 -:100C500042605937AFF43379EC7EF081FBEF26F236 -:100C6000D1FD470F5D3FBA9F7963884EE6DDFDD821 -:100C7000FF29D249FD05CF5C4CFD050B9E9834B091 -:100C8000AFF513F935697D978CDF3FD77793710600 -:100C900092EC1E9E3AE8F3DC2E057C04CE775FF6DC -:100CA000D07B524DE4DBC2D148AF79542F637E1123 -:100CB000C1F3FC1DCBDF534666C2B73948C64B07AC -:100CC00040C4308CF4FEC6D72FACC6D445CF579A5B -:100CD000E028D5ABCE764D07095DCFCB4EC7E3F00C -:100CE000911BE3569A76AC60E376103A867AD3F19C -:100CF0005DFC657C6F3A7ECF41C7E3D0F8233C1F93 -:100D0000845D0519CF85C5F9D9BC27BED9A7BD25F6 -:100D1000F4427F789E2331B8EAFCC6323FCAD7CE70 -:100D200087EFBFBB90D1792A414CF723C78700E1F9 -:100D300093375D47AF41FD78F4198F86EBFD0DCFFA -:100D4000BC44E5ADFB8917DD3AB5BF2120117BA37B -:100D50001B7A7E3AD1FE982FB14C537B30E509A522 -:100D6000E9353F7979BD1EA2DF0FD1EF492607F3A0 -:100D7000937BA74B19E8F7AC9FDDE786E4008A97E1 -:100D800079ED7F72D373700B5DA57148CF4353F03B -:100D90007B367A8AF96B38FFF32D746D67F29B4DC1 -:100DA0004EBBB77A548C6B70D2B9DBC5F6094D498E -:100DB000E9A54C7417EBE0E99EAB3EE5946F3EEF7E -:100DC000FEE4BBFFF99C1EBEB6FB751BDF08BC1D15 -:100DD000FE28B3DE3FE897381CCDF525C37BAF83F3 -:100DE0002A44CD416569780FD3B7C948FA9042DFEC -:100DF0003B5DD6F11CD5DF4E3D313F8B9DFD37AEBF -:100E00009FE6EFDE3B12F5D9E17D4F517E9CBFE3BB -:100E1000901BF737CF6F7FDCDD5595E67F5C17AC15 -:100E2000EF5B1C7E74EF48AABFB1FF0CF439C6FB20 -:100E30006FDA63EFBF69C77BB6FEE79A1D6EEA5FA4 -:100E4000ED679CB755E34A9CEFDB9D2EC07793DEA0 -:100E5000EE50EA33D9412FF175B127AE2658F3325F -:100E6000FA27957CB78EFAAF75B1F112BE9B68BEBA -:100E7000E862EF56AAC6CB1E229FF13CB78EFBDE7E -:100E8000D6E015A05BF478C2814FAD50ABC5FD80B4 -:100E900036395A6DDD7F09F8F30CD906FF8260FD03 -:100EA000407CEF0AF7713ABE53A14698FF3A34A549 -:100EB0009EDE7BD464CD9771DD66FDA1DF0EF9DF88 -:100EC000A5C9A05BF86BD4A42BCE45979D0ABA6D3B -:100ED0003FB066323B0F16F35F33183603D1C36B56 -:100EE000A4A307F09D08F352166728EC3BE0FBFE35 -:100EF00010EEFBCB7ADB7B60183AEA23AA8E7436BD -:100F0000BE61B9E79C8EE3055D56309E39423701DC -:100F10002AC468108617E36C87E3BEAB83A601A2E0 -:100F2000DE309D98338CF1371CA5F9B5F57FA171A2 -:100F30008F8539D1513903309F2FB179A4E83E4FC5 -:100F40005CE397734A8BFBD20730593D6CF52779E8 -:100F50006033DDCFA03BF364411A2F22DE4EF4BB99 -:100F6000C63751C2F508E73908DF69C3478E2CEF51 -:100F70007088F8C90122EF18076B6A357C09A6A2B0 -:100F800019935CC3F17C3F21E1FC4AA083A6A5D064 -:100F900049D37CAF26A914BE57A9BF4B86BFC0C991 -:100FA0001C077CA760C73BEDEF5B15FD9518A1639F -:100FB0009CEF73EECBB3C7237D3B87E9991B73642A -:100FC00011FF1CB3EEDBE2D04871E02B64CF93F548 -:100FD000C8414EECDA1C0B9F29814E165FE6D82FD4 -:100FE0005FAC2CA2E7FBCBC37DC7752DC5F8F0B372 -:100FF000B297270678676E050A3FF383495E16E7C6 -:101000006D80AE59F91163796AAC719386ED3D1D1F -:1010100017F2A182783669EA43B922690EF215A166 -:10102000C34ACE8741E8E29D1CA5FE8F2DEE581CD9 -:10103000F97060794C62C1445189F9D50CC5CA0771 -:1010400072CED5C57DC56DC174C22796B899FB38DF -:101050005D541554FF68846733A7BF933FED71B0AB -:10106000C2AE0BF09C87C7E3FDACFA77F4FD17B571 -:101070003040E35F02D5AD37E2FBAD2A346BA857B1 -:101080000322BE25C2E216C5BEDA57698F17F538AE -:10109000E2635D7CFFDE2B5E9CAFC777E0870C765A -:1010A000B3733D7E3827739C138CCB1C9728ECB40C -:1010B0004FCAFF62FFD9E8ED7C9E02A11934AE53FE -:1010C000E57E8BDAE91AF5B71FD921B1F7361CFC9A -:1010D000746467EE48D49728CFF87E790EFF2EED22 -:1010E000D8BB17EDABD6101879F954FFE90AC1FF48 -:1010F0003269945722E9BC5DEFFDE669F4E3EF51F4 -:1011000000DF753B42E6D889F3548D3C245A0EAC7F -:10111000B2D1F993CEABF7392693BF9B34217F012F -:10112000DAEED80E89BDF303E7DE85EF5D351D707D -:101130004192941F03D6EFB1CDCC6EB8EE178FD786 -:101140001049808D1C1E5CBFACEB4C41BD1F740B65 -:101150009F84C5BA601A9DF8DE7303C7CF8068BE4E -:10116000AD9E98DF3BB3EA0F50FF4F8CBDFF3C7044 -:101170004689AD7FE0FE119DFC43BEECE5679063C0 -:101180006EA0EB4A343745ED20B29FC6FD47528A28 -:1011900020DC4E7FCAFCDD125DCFAE27EB19BEC747 -:1011A000767DD2B11F75C45309FC3BF9560E703BD6 -:1011B0003200812C788EA4AAE9F92C95BB9B7EA1E4 -:1011C000507BECA647A4248DA7EE3A2B1728DE15FA -:1011D000EA977A039AEF242B4C9ABF1DF8F384ED1B -:1011E00078F7E976BCE754DAF11B8CD8F1E8C473E0 -:1011F000EEB861B6FA73954637653E8EEF4AF20F48 -:10120000F14DF4249DC77C328F94DE1B9F73F6ACA6 -:101210005986FE927EF1E8C0DF390EFC1D873D7BCA -:10122000592944BD4596F84F3545E5CA2987024FEF -:10123000A55A672DFD1609523F7598772235B0766D -:1012400025DE0E2654A323540E459C724ECFBAFAC7 -:101250003A9C24E9CD97EF3F340BB2CB5D478B37F7 -:10126000D2E0C2F371883454E079B946D3CD58FF47 -:10127000BCBED65B838EE7828886E91DFCDCE44831 -:10128000157B17A923F54111DA7F778C3E7A19DA9D -:10129000FD4DD74294BECB1464EBEF2E9E4E0EB2A2 -:1012A00038EBDBA33218E82FD8A32425F44369C612 -:1012B0002F2E42BB6D8F4BA7EB9F76F437FF8B969B -:1012C0008FD1F01CA3584E8CC271497DEAEF3FB21A -:1012D000E7F5D0772DF651F7EE7567E3FAB4498656 -:1012E0003999F6010D01367E77E55F8A902DE77911 -:1012F0008FD27DF9F22EBB9FCDBD8BF9E1E6EFBE1B -:101300009CDAA3FB67B3F7389F38CCEEA54E51AEFD -:10131000FEEA97487EFC7FF0778CC0983AB38885C8 -:1013200072203DE33E826782C7F53C7EB3E9AF326F -:101330008DDF1C7F214828AFE3FF08111351DB3CF0 -:101340009BAE574F87A61CC074F21E89FA8F9A0E67 -:10135000B3F56D6CA7DD4F74FE64A21748FF357BB3 -:10136000987FABA68B9D0F9CFFB2BDDEF82E7B7ED7 -:10137000423FFCBB24C0D7AD10149D4E7CEE1E979F -:10138000B122C0CED3E8BDB2889A79FFD515647674 -:1013900018C1079DFF91A3105942E671A4A1A4169C -:1013A000EF291DF9809D371CF948A9CFB4BFDA1287 -:1013B00060FCB2C9CDCE8F37CD0E24179379EC9B4C -:1013C0007DC350DC57FDE3DF6243B5BEEC12A222C1 -:1013D00064BA261AB9300EE5A395DD77834471A669 -:1013E000F793855C083911F2513CDB1FCBE4171DE4 -:1013F0001664FBBFBAD99512C66F773F2BD133A6BF -:10140000EE2504AE3EF068C29241084FD3EEF7A934 -:101410009FC2BB27B3BFFBD94088CEBF7B89B978B9 -:1014200002C1D7F788709B280FEE4459A6FE4D588D -:101430004FFD57DB028C9FBBBD6C1F0E6AA218DFED -:101440008DE8DE3DE9D26504CEBB89FCE1FABDC979 -:1014500015A1709BF380BEFF07FC7E61E965B0F5C6 -:1014600076CB7EED40A0F620D2FB6080C51F15C470 -:101470002212C21DF9F84408FB3FF2A187D2AF84C3 -:10148000FB8B44BB23017E0E17347E43F9654E214E -:10149000558A915828D23006E0BCDD04DF16FD9D48 -:1014A000A69B49C7C98F01BD479F1F90D97918D9FD -:1014B000A7E1FEA309C48F49F72B42FEF0D29B6A35 -:1014C00089BB97F648A920D19FD5DE400AFD32F9A5 -:1014D00073647C8387D8A35ED65FA7DD6E450D8CD1 -:1014E000FA177500D03CDB1F097D2CF4786B1ED3F6 -:1014F0007FAD6B54AA1F37AB5D3EF44B97197A9DB5 -:101500004AC6CD57751A6F31780E93F79CE1F7E60E -:10151000F5D84513001EFB58C9E81F392B28F015D4 -:10152000FB07E26BE481A3FBD0BC8AF8A000E93D95 -:1015300085DB3DE3DF65FA48DC3368EAB94760D70D -:10154000479B7CDC8E81C4EFF1DCFEA9BFAAF4FED0 -:10155000408FFE993D85AEA7A0543D87FC35E157ED -:101560007C7BC0F50FD9ED51BC9CFF422C8E7038AE -:10157000F5CD38207A49EA5FEF38E94C8CF09E7C53 -:101580002941CA980344CE2CED9D7A6A6090AFB38E -:101590005C4F1D8789032FD6D3FC347A61E4398FE1 -:1015A000857F849E4AF35392E2D5398E04DE9EBC39 -:1015B000361CF5CB0B0AFA518ED4B2BFF393E2720C -:1015C00094F741F252E487F57B2EF121DFEF3C30B6 -:1015D000C98B62755398DD3B53F74E3781B38FF556 -:1015E0005CD9055E3D5089F890291E148DE42DE3E9 -:1015F0001F4B48FCDEA59E3B3DC3FBD822BD29CC3A -:10160000EE95ED3C302C97ED475394EE3D7CCFFDAD -:1016100017422E04BF3BF95BC8439CB4922D7684DD -:101620002275F0FDA3DD8F10E776445CBC3F6316A6 -:1016300053FB7001B70FE381112BF1CF1CB4A6EA65 -:10164000343CF758101C46E3AB170C60F873E243C8 -:10165000A44D1F127BD11207DFA41EA5FEB1A60F59 -:10166000DDB6EF02BFD9F022F07B01E257FAE4F8D1 -:101670003D3FC8E8ECC4F3A79D7FE94DE332DEE7C8 -:10168000FB5799FF04883DDD45FDB1EC3E89E0370D -:10169000A13F6A6E6E8BE7E8697D21EE8308BD236A -:1016A000F4CBF98D89E77232E80FA7DE88B8B4EF82 -:1016B000AE22F88BFC2C40DFEB70EA910FF09762C2 -:1016C000EA77BB2748E07DECF9B765F49B3CF15322 -:1016D0003277521ED93B99F9053B4FEDBC4BD8AD43 -:1016E000C25E75D613F6AA5877C479D3AF83B18793 -:1016F000707C693791A710C6C7B27DF28140EC11AA -:10170000FC9E4360F6632C6065AA8CED67EDF29A4F -:101710004D3E731CF2D79152D93B3201F62E9413F1 -:101720000E317E4390BF2B40B80EED9AD21A6083E3 -:10173000CD67EF06948E8418AECF78BD14E7F92BF1 -:101740006E97BDC0D71B911E0844F723FC2E154C85 -:10175000CFE84F0EB7F02FFE3A68ECC3FEBCF5069B -:101760009DC7200D2268EF0F523BA4088123BF5173 -:10177000977A9C3D625D27FD0D9AAAD7A21C0DC2E7 -:101780003B05581FEDA30CF4F97390C535CDF376E6 -:101790003D8F267CD3D4E6FA501FE7EBE9F7102201 -:1017A000DCCF658F0339F2CC4B83F1FCF3B51FBC62 -:1017B0001FC473ADFF548F0611CE3717FD3E88F757 -:1017C000215E5BC4F61FD738EC9CE31C7FD343D16A -:1017D000C341927EA7E5E31ADB3B240BD9F9CCF594 -:1017E000490537A53DFC3E777B0EF5ED89FCBC8EA7 -:1017F000025B5EF0E93C0F8BDB72CEBF2AC4E2686D -:10180000AEDFB1D53D48C7F163FF85E3BFC9EDB891 -:10181000377705A9FF43C0336BC72837E2E13FF7AD -:1018200078F8B97FA78BE1DF988AE773314E0A27F2 -:101830009CCF3F9B43FBBB768342ED8E9964AC8586 -:1018400084BF637BAEA7FB70E73CAE7D4D9F3290BB -:10185000D0EFDA1512B557B1FE22C20FB185CBE930 -:10186000399E739E334D47FC08B72B9C7126D7EDEC -:1018700061E7EF0DA0AF9C589621EE64CFA5F4DC94 -:10188000EDBA7EF63D65216E4FD4C0F918377F1C46 -:10189000AA7E58A5F7BFEF79B3056810D9DB2D5E96 -:1018A0009A1E6ED158CAF5E7DCDD7B9FA77CA67631 -:1018B000D6A0DCEF3CF07ACEB7F4B41EFFF2D6F738 -:1018C0009FBB87E4C700F3F3087FFBD51CEF1771BC -:1018D0007D7E1DB717C67CD8B73EBF1AF131B2372F -:1018E000BC428F5F8D7F6FD08207A1D79DF838767D -:1018F00060780EF2C7E490F3BCF9D3E1255BBB79C5 -:101900004AE67846214787838CAF1BDA2F5F564221 -:10191000C68F3FF3C6902EA6270EA29E107C0AD03B -:10192000EC463976F2A3E0931EBEDBB39AE249F0AF -:101930000791AB303FE70CE3FED0C97FFDC537759B -:10194000BBBA86A05E70F259B7E35EB448AF083107 -:10195000FF7B836E4CC1FD2A596E96B1F340A68F72 -:10196000DE5413CFDF86F2DACEE465DE938FFC041B -:10197000F5D00D3FDE10423DF4969A28C2F11AB719 -:101980002D0DE1B9FA9BAA19C2F66F25958CF18F3E -:101990003B4292784FC31627016DE66528C7FFD8F2 -:1019A000E6D2F01CAC69BB879DBBEF6278237976E9 -:1019B000DEBE2B739CC40D0F6C28D259DCAD3D5E8E -:1019C000A2DD45FD17E85FC361B29D17F79C3F7725 -:1019D000F47D9EDEB48BC7D9ECBA3463BC84884BEB -:1019E00070F2F16607FF12FC50BF9F49E0A2EE764D -:1019F0007E4E1E7FF0AE9187087C87DB7F1592AA12 -:101A0000ACFE78761E7FACE3BB3FF2CAD9F9B79B38 -:101A1000F37BDA9E48668C9F6874A542B8AF6ADC97 -:101A2000EAA2FBC0C64714FA5E1DFCD143D7F3B946 -:101A30008FFCEC0F1710F8E63EE62A9CCAA641E39D -:101A40002404BD7AE258387D6E78FC67EC7C59E757 -:101A5000F12C9C4E731FDBEBC6B81C273E2775ECA0 -:101A6000757739E22028BD3A0E4DA1F7091F3CE1F8 -:101A7000C675F6AD67251858D6BBFD9CAD3F0BA1CA -:101A8000BE403CD138004EB7EC714BA9CB7E5A4DCD -:101A9000EB51BF5D7F745C84B23896F2FBA33F25A7 -:101AA00070CC79C543E3A7E63C7A338D337A436D36 -:101AB000667C7FEFD2225C7FE7B8CC228DA6ECFB60 -:101AC0009C2DB7507EBCEEC55B8AF87DA462E6EF24 -:101AD000318B719ED76EFE269DE76C88517E9C737C -:101AE000AF12453FCB7115EA1FCB2037237299DC2B -:101AF000BC719F071FD38137B89FD3FC9DC2FF5E87 -:101B0000A4F3BC8ABD1B739CEFBFFF19EA396FF4C5 -:101B10005AF7634DEDCB3B914E6F0F36066A349EFC -:101B2000403539DEE8FBEBCA8B170FE4FA8DBE7740 -:101B300023ECA049F81DEB77BAE8BB379676B67769 -:101B40006B16F0F109DC7EE93C921665F6837E3374 -:101B5000571271F02CFE46F059363DD0CEE2593E78 -:101B600038C8F40CC6E5D0F24E576AA02D1EC763E4 -:101B70007B17251D67E2E2726E2F2770D278991EBF -:101B8000FC3E2B25F11D64C12FB3D77BECF1793DD1 -:101B9000FCE37CB7C71E3F739DC32E1369AFF53FAF -:101BA000D7715EB7F9D4E2671A5D491AFFD4F847D6 -:101BB0000FDD9F343EE28A225EDED9F1DC1FBE4596 -:101BC000F8FE9D0E21C776BDEB94E3393BC7422654 -:101BD000397E2710818C724CBE6794E340FA5C43D7 -:101BE0008733AF77AFCBA277BFEAC027B11B723183 -:101BF0008EF8ED87E60EA5FE0A077E85BE75EAD152 -:101C0000D7433AC573EF783FB6EEA7E331191E0507 -:101C10007FDEF0F03C3A4E0F1F0B3E157C9C256E8C -:101C2000CC894F67792EFACEC6F6F68B9875508917 -:101C30007FA729EE06F6DE9BEC8F20FFF677DEF914 -:101C4000DBDC32F1FEDB796C5FC8CE3B23010DFF9C -:101C50006205DE9753329DB34726C919EDFF1FE495 -:101C6000323B09DDB2983E99CBF0D7AA44B923AFF5 -:101C700083DE63A067AB08675E88CA998BC7A990AB -:101C80009EE97DF4488EFCBE4EFAB8FB87FB2F51CF -:101C9000D13F3B46BE7938C9EFFCE1CB97A884DE43 -:101CA0009109F2E3C3487ED70FFFC8CACF93C7B8E4 -:101CB00008AB6E375FB96432C9CFE7F39E2FFC24BF -:101CC000AD636D7E12553E74279EE7A83F657F8FFA -:101CD0006825917BEFE8F439738E074C1FC9E7B88C -:101CE000494AF2CBCA7EBF0C3791BFF2C736E652E3 -:101CF0007CD5E988E7C39A97C6EF2C78EA621A4741 -:101D0000FA642EF3479FFBF804FA771DCF201C0FCF -:101D1000E60EC80E47AB8BF57378E7B99310CFE7A3 -:101D20000E459F5A9A1EA3559D7EF711B49BCCEE8B -:101D30000FE3FD96789E9BF6F324E7B3534D45DC05 -:101D40008B92C3F842C9959B1F23E9B39C1FFE7772 -:101D5000AE26D621BAEF3EF2CCC0FBD8BB314787C6 -:101D600020BD15E5D89FD1DE3CFAED1CFA774B5E1D -:101D7000F133BCBDE26778BB327795EB1CF27DB4E2 -:101D800077C8CDC8F4AF483B6EC174AB16FB25A332 -:101D900007A4B0DF6F5DA3B07E03CD417C374E3228 -:101DA000981D2E1166BA9AE0236E80EE1E8E226C6C -:101DB0008FFF5094D1475374FCA06D7C2825EB26EF -:101DC00091F32BC7337A11DCD275F4A5712C2FE077 -:101DD0009B911C16EFD2293C7F4278467992837101 -:101DE0003FF52D625631BEB7EFEBBBFDEC7CB31B6C -:101DF000DB8F4CC70F34FD4DA6FBD9269C03C93F92 -:101E00007E18F8DF2B64EFEB08BFC7F85FDF44FDF7 -:101E1000DFD5BBE7B23813EEEF12E7F935FBD9F99E -:101E20009CD3BF350156517D3ADEA14727ECFE2AEF -:101E3000D5AFFD9DCFFD43E8D5122839CDF3B98F3D -:101E4000734FE17CEEBF013359118B00800000001D -:101E50001F8B080000000000000BB55A0974545590 -:101E60009AFE5FBDDA92AA54AA2A450804E34B02FF -:101E700024210B45122004D42220D0314A8016811F -:101E8000F64881B298AD98B4DB699D438520D2DADB -:101E9000A319756CCE69BAE785D61125E92924D135 -:101EA000E05432C52204254E9045A01D3BED74231D -:101EB000DA64313D824BF761FEFFDEFBA82541E984 -:101EC0003E67C8E1DCBAEFDD77DF7FBFFFFBB77BA2 -:101ED000DFBA4409600CD03F1D2403D49BF1970264 -:101EE000307C3C2311F200F47A00D9096054642854 -:101EF000C1F62AFDBB0DA06D338E3385FB6F252AFD -:101F00006C9EFC53F6FBC1462DAC86828879ED7C35 -:101F1000DEDB652B4031CE7F1154533AC0B4BEECAA -:101F20009FCFC1BEA1DB002ABD979EA0FB6775AA0B -:101F30001F459B71ECD74521BCB435CE560053F1FB -:101F400095293A50CC6C5EB88AFFE3947850B2C3BE -:101F50007D4BB633AA2FC7DB764122FEF07B7A5346 -:101F6000508E227E0B12DCE3A3E679DBB6A89BE45D -:101F70002EB2AFAF20B9134B32A2E681E3FA4FFA8B -:101F8000B09F8D7F573300A643656208E52F844AD2 -:101F90008F84F2BA3F027708E59F718A8FD39E73D0 -:101FA00087FCB217712CF928FA7A2944F4719EC77C -:101FB0003EFAC27138429EE9F604D7050BFE180FAF -:101FC000E3AFCAA3E2E80E114EA76437AA01EA8F75 -:101FD000E12017B69F810A88DB3428480486AB0CC1 -:101FE0002AF6DF04EF0B73B0BDB279C871785218CE -:101FF0004F87271ACFA445D1788EA98CC673EC8A57 -:1020000068DCC679A3714ADD3825EAFE4D9B0AA338 -:10201000FA373F561A353EDD5F16D5CFDC5E1E35EA -:102020007E52D3D2A87ED68E5551E373D4B551F7E4 -:10203000737757DD90FEF303F551E362F53FB5E3A7 -:102040002751F396CAF7CA9011E6811FFF880785CA -:10205000A462D23FEA210423F53FD3E527C6FFCD92 -:10206000FA7F98F49F1BA17FF9DE44AF356C6FB106 -:10207000ADA6D79FD05AC7905E714E14EE0AE919EB -:10208000AF0D1AACDB256C1DC89D7BF1FA63667E33 -:10209000FD5181CF95B83495D6EF081EFD5AC21672 -:1020A000D5C2ECD0FFB1456D44DE3C2A2B0DC4AB4C -:1020B00017E54A09509E54549D2E1379A4838D012F -:1020C000E4F7B33ADDEACA08F99EB373BFF29C5D48 -:1020D000C7DA5F18D156F1BDA916F09B0BD973B4BE -:1020E00036FAE7015CB72D8981822F2CDF3E7F0E07 -:1020F000DE77F4652B0E0033F56F01381FCFE53D19 -:102100001FCFE55C65521AFBC87FC8EA2492A7D9A5 -:10211000EEDD69C7F79C979E30E09BC1E0F21BC8DB -:10212000EE52CDE0B7E1FB1A0DB0BA12FB0E7049CA -:10213000F5D826C24E3BE18B622857911487AA72CC -:1021400013FBF0FAFB24D138B231B70E6600ACD4E1 -:10215000FCE1C61CE60F87718DBDA450BD9208D866 -:102160000E3F90C9AE9FBB0FAD10EDE99C91E3A16E -:10217000E17051F8C9CF379B597B69B33DCA6F6E87 -:102180006C7E2141C179CE65C3A240047E5D84DFAF -:10219000746A6586DF80FAC764826770DDB7934929 -:1021A000689FD4BBCD8A439EDAF10F95807A30B612 -:1021B0002DF1A34E60A55161E3B5797CC1B94038DA -:1021C0001063E9FA3D1FC22692EF9E6FB18D785FD2 -:1021D0008FDDC0DED743EFC376393676C46D39EA7A -:1021E000C541EDD1390BC82EF07A48C2FEE26E30FF -:1021F000903D2CF1A61B489E93E03EDD8EF29CB5EF -:102200002BECF91F42A581E43A735F6D028DBB365A -:102210009F360F0AEBC078F2A1C36F4846BF3574F2 -:102220008BE4DEA5B0F799E97AE5BDA94F5A95F0A0 -:10223000FBCE80B7FF34EA7B29B8D9BCDAFC6879D9 -:10224000517EF18D8DD5BF4BCA207FA80333F9C3D2 -:102250004E13F3878355575A5FC2FBAB53FB6E3265 -:10226000E273E7ABBE9D4CB8ACDC218382FAFF245D -:10227000C1FB07FBF4301EE71EF87302DD5F6552F9 -:102280005F7909ED00F698DCAF003DB7873DA78D7B -:102290001BB0CFFD8C78072508D4ACEBDBA786FFFD -:1022A000BCD773C612CF347E3D28F855FF5AD65896 -:1022B000E2537DC2357EF1FE2B9963895F3324CED4 -:1022C000CBD879BB905F4A16AE1B79A520AFBABEBA -:1022D0002A4B223FB1EFB8B388E4D483F76AE4BA5B -:1022E000F6BDBF2A97EEC359D70DC94BB6E947399A -:1022F000EF012E678FB08F15C1A422D23BDA9DC5A6 -:1023000081E356FDC76BFDBF257C3AF7BCF2388DE3 -:1023100029BE313C34FFB4379EC7231071CE2D70D7 -:10232000C13897AD47510721DE4DF9C2F5FCD65EA5 -:10233000F20BC8AB2B3A747C99E4AF2A81FC82057E -:10234000DC0AB5E865DE9B8D7A6C3CA083A7B16B97 -:1023500023A7A6F99F12ECCB3AEE7FB06F4EC1389F -:1023600022FCD324C7BF2EDACAECC7635D3383B91E -:10237000442657F1E1AA0A7A2FF4A21F47592BF1FC -:102380008FE2C16CD874280EE59CB103F3031C37AF -:10239000F32CBFAFF9F55921DD1A63228DFBD91754 -:1023A000B28D208A8E03B30F977F4AF3CE8688E7DB -:1023B00046890FB31C7F5F7C98EFE0FE2190CDFD36 -:1023C0007B2014AFFAD3D9B44595F9C817278F1FCE -:1023D0002D8839D9B1511AC836A31F5EE468DEBE14 -:1023E0007D02D26122C785FA8DF45B29623CBE96DC -:1023F000371E9EC2FC21FC05A522BCEC42E61879E2 -:102400008AD1EE78307647E59DA123DFD8FA701D9A -:10241000AD4EE5BF485F4398D7905F88D3F7191D4D -:10242000A3ACEF4DF2AFC8FFE71C3A26AFB943F2B9 -:10243000A8F87EB3E20109D71067B74F93A5F0F86B -:1024400032078F4BB547CEA719515FFDBAE3B63CB3 -:102450009CBFA6FD0D1B2E1F7E6CF3AE73E03CD51A -:10246000E73E9841A10B199E569940386524923D4C -:10247000E5EBC1AF2F1C29876F072E06295FB72315 -:1024800089B5391D125B9F2FC4D739D0D1E88CF4A0 -:102490001BD79EFBCFCEF1A4B73D636005F9E3FCEB -:1024A00060D106E231C962405DBCFE552E9BEF094A -:1024B000473ACFAFF5A0A7EB00AA6E290EDA63C0AA -:1024C000E770DE81AF64364E9B37BF63AE6C471E4C -:1024D000E5859A0E525E18173429A4E7B89781E370 -:1024E000128C637ED1D7B510287F1D74805BC2FB30 -:1024F000ADF1431F132F863A4DCA2E89F06B022788 -:10250000CEDF6AE4F133070DE10D6BF8BAF6BEB821 -:10251000E0CF81FC15F2C3A3D27D7D13DC628DC4B4 -:102520003D81C9FF4B07E7576B7C486725BF8F9CF0 -:10253000DCC5E40ACB09ECBD9A9C39AC0E68350EBB -:102540005D78DCC5E4B2131F7280CB09C12CE515A0 -:102550007ADEEE61EB88B32B6EBF34522E5F01E65C -:10256000C56877CF6E816B764E76EF8B0FF7CD68AF -:1025700013AD1920FCC229968784FBE8B04AC2CF6C -:10258000BFF1CF67B66F9DC3EA23BF8C7CB0609B61 -:10259000E0A47572FBC2B2C933A690E3E0469C2C5E -:1025A000667EFFDA78E4BB95FA563ECE9D68B79416 -:1025B0004BCC6E80ECA64EF89987A4D085DB50B545 -:1025C0005F860E1628284BCDD1B7196FAB75C19712 -:1025D000F2F17E59BC3748FEF7AD8F7460C3F57FCA -:1025E000FE5A9C5A817864EF6F4EF65847CEF7D466 -:1025F000D92DCFA792BEF74B0A228D79E1501AC987 -:102600005717FCD4E8C17661C7EF8D149F5639BDCA -:1026100047C80E4A3A1AE6117EB3A0A9D16E657E6C -:10262000D14B3C0DA470FF317C6AF2AE8608BC2F02 -:102630003978DE0243DE9BC96E82C23EBB28FFC1F1 -:10264000B65DE461ED0756662AF9E1E7FC703015E6 -:1026500070CE2D70389570D6AE0FAAFA45C4A7DC9F -:1026600033E6D59E08BE5D10F67E41BCEF1F9DDEB1 -:102670008F0887EA039F186DB82EDF1F0269149F29 -:102680000298A7D9BFC32FFA62ECC6A71F32D2782F -:10269000DF45607E04F5BA3511F5B4E74CC79435D3 -:1026A00056263F24E2BADBCF9998DF6C4FE7F6D786 -:1026B00070FA7201F9ADCB9DD537135EEF3B0C1A62 -:1026C000CFCBE2C99EF602F3639A3DE6913DA2E8C4 -:1026D00079C4F362EAE7B0F95A8DBDE5CCFEDA754C -:1026E00040F6873C67BC479EDB29FFC8B323EFD980 -:1026F000F359CC9E5B7B31E061DF8F7E7C12EB97E0 -:102700002DA37E6BEF7C3BB3671D425B4876193A85 -:10271000C8E609604C23D549501999A796396C4CE5 -:102720005ECD3F563AB8FF0F642B896E5C8F45969D -:10273000A3EC20225EF2BE88A72B9F37FCF4C509CC -:10274000644D222E88BCAC4BE4C1E02D62FEFEC776 -:102750002296D5BF53BAB805D75BDF2373FF2F7816 -:102760007250E4C98737A7B03EC50B05F5341D5B31 -:102770000FFAD3199E4DF3D0C6A06451D3216A4BF2 -:102780002B03F3107198B3A2F790819B732EF1AFD6 -:10279000EDE00F72F5C4F77326884311DBBE19FA1A -:1027A000F875C4E1912EC47F94B884CB61FC4304D6 -:1027B000181FAFC79B41A9EFAED96E4CF99F1FFB05 -:1027C000037D1CDA0F1103F1C87B7ECC4FFD28502E -:1027D000BBD333D58938FE36C93BD589380E9EF830 -:1027E00026997C7AFBA94F6CE4EFDB8C9E5CE25966 -:1027F0005B06D60BA3F0738293F3A7D8149DA76B47 -:10280000ED5227E7FF643F3C43FCA96B93ED2AEAB6 -:10281000BBBF4DF618318FBAE0F126EB11D28BE039 -:102820005F3E9BE2BBA87FD771D8611DE52F18677B -:10283000D6BF6888AA4B6BC4BE4616F46D4B459C48 -:102840007C2F4BACAEDD18938FD450FE5240F54533 -:10285000B391D653F572CC3C94C714D0B8EFAE7395 -:10286000973AC53E472664521E833C62F5F4D06910 -:10287000D9BD8B62A01EBA4DC8DF3D3A8E13FA4D0A -:10288000668F5A3E637279E691DDCFD3E28AA85B08 -:10289000875A2595D9CF6EF4F3D82FBDA83403C736 -:1028A000E154CA0C5A0FE765A99E8F2F0DA633FB82 -:1028B0002BF1603D8FEB5E8FF5BC4AEBD6F23CD539 -:1028C000C0D68FE197E579B3406DB4E1B80DBB2573 -:1028D000B6EF53BDDB1095E7F9043E353B4E1CA126 -:1028E00072B23610735FE0E38BC1E70DFA316B24EF -:1028F0004E8F3A45BE97066991F91E743B47AD0B62 -:10290000347CB43CFB4F069E5F7C20E6D7C6FD8B33 -:1029100093D7E7751E60FB4735AAACAA3C1FB4AE3F -:1029200041BEDC2FF872BFE08B0FF8B8DADD921AE7 -:10293000A278F533AE7733FE112EEB026B16A42A84 -:1029400023795525F0D8D86260F92FC02623D9E71E -:10295000C69D31E3042E5531B8D479A518F9783ED7 -:10296000FEB7CA576DE0FB35D5C82FBFF2FF276F02 -:10297000ACFEFE5DD3DF149812A5BF454937A4BF56 -:10298000D83C79EF9129167A7EB83B83ED4368BC39 -:10299000899D6781C8B317EEE0F9687FC73C4B3E5D -:1029A000D553C7F56E09E729EAF95F5B3EE251D8D6 -:1029B0002943054E31182C7AC68FEBDCD73D71992F -:1029C00082F1A1B047CFE24B514FA14A754D614F03 -:1029D000A1253381194F12D50B380F8BCF83C72711 -:1029E0009ECC233FDB3DBF98606F385E68A13C62A0 -:1029F0001FF07D0DA9A738A92F22DE743BF9BEC6B2 -:102A0000B694FF7996F2FC857B0D6ECA47161A863E -:102A1000DE9FEDA2F7EBDD0DD8AFE959BB258EF4B3 -:102A2000FE9AE4A674FC486FBDEB47A4DFA0C16E1C -:102A300062F23E7C90EEFB5B24F7241CEFEBBC3D86 -:102A4000B715FB85CD456E82597B5FA14379A18285 -:102A5000F2C5711656C72FBCC9C0E2EEA5F1965F4C -:102A600053BE54E5695E40FEF8D2DBFB8CE40F06F2 -:102A70005B2548C1851C4939F41B3FAEF3D29B2727 -:102A80008C9494CF6B3B61ECFB8E7CA25F9521C450 -:102A9000EAF72623D541B5CD5ABFCF487AAA14F913 -:102AA00055DDCBBF67FD2AAA13F07D553B6555C1A7 -:102AB0009F873ADF3212DE752D128C4D8FB8FFB230 -:102AC000C4EE6BBC5F0B9C076B857FAA16FB90D591 -:102AD000B40F89D7613BF7371AEF1FD8BDE40885DB -:102AE000EF754DD17EE841C1F30D5497B2FADB6B1F -:102AF00024BD6ED811334EF0FCC1EFE1B93549F871 -:102B0000F31CC8219E5F9ECBE3C9E513F1963C5CA4 -:102B1000D7E563B21BE03BF9CEE2EF71912F0C8752 -:102B2000742C9E69E3063AFECCE28DEFF8B091F288 -:102B3000DB05C12F983E2A8207E613DE7782B7862F -:102B4000F0BB3368B193FD57F4717F501E34A9B4C4 -:102B50000F7E2704B6929E07BB5EDDEA24DEFC1BD7 -:102B6000E70D087FB741E0BA41E0BA011D7E12BA15 -:102B7000D8AABC032F61BA0FE5C0FD507940F8A177 -:102B80009DD13863E4B98FF4551734C1D378FF0E63 -:102B9000E18FEE68E1FE28364ED6897D80C171B99D -:102BA0008BD97E2BD6BB94C7D5B444E35F27F605FB -:102BB000EA62E2F0CD497CDFEEFBEAFF583DCD8DC5 -:102BC000D153C510E74F39C53D5C7F77684B1EED8B -:102BD000DB6978C5EAA95BC94C1CAD9ED5DAF7451F -:102BE000DEAFF517237129DF0CD89BAC9175FCABD8 -:102BF000493CFE54CD92FDA4E76BF5CEC443058A53 -:102C00002E5CEF609DB332690CAF7BA6E1D4472701 -:102C1000C8E07285EB9DA7525EA828A47CA585FB21 -:102C20009181129C2F91F27960FECBD76252A94E0E -:102C3000F1217F589D43BCC1B63228DD4EBCC1FA9C -:102C4000611DCDBF84B68E1187251D3CEF5932FF23 -:102C50000BC6B76313F97A87F5CAD8D1EA09AD8EE6 -:102C6000A8FB8AE7A9DAF53AB47B1A5F1794585D96 -:102C7000DC76F0EBB474F49F839D57D2D660FBA250 -:102C800058BF96A70E619E9A21F214CA9FD77395DA -:102C9000C1064C871F431EAE17710EA4ADCC4EEA81 -:102CA00028D925BEB54B7C1F673F5E9889FEF78308 -:102CB0007896C70C9CE1E743F4FC1398470DAC0DE4 -:102CC0001C76E2F8CBAD128B7FEB31C7BDB570A49B -:102CD000BDD70A5E36C01651976D656D79F6DE4F29 -:102CE0001E277FD46256C8BF0E74341AD9FEB21A9A -:102CF000F17CC6C87CA856F0B7F67BF6B55E4D12DF -:102D00007152F012D7C1F2DBC163B2DD2431FC7E17 -:102D1000353E122791FFB41D8C637A1E3C61552904 -:102D2000CFFF5CF0EF92D8776F2891192EBA59BC7B -:102D3000CDED7A2B83F44A7AF0D23E4AD75B533CEE -:102D40006C9F4F65F654BD5BA6C3BEB0FC010BDBA8 -:102D50000BD5FA1ABE3E812FCA35D9E80ACBD5AEBB -:102D6000EFB3B947B11B493AC8F4A693A2EB5CDFB5 -:102D70007EB9528DB0275CCF6AF26FFB053F403FB2 -:102D8000944C7EB9334961F23504B99E759DBCC53A -:102D9000F72FE7FB3606F6FE11F7CBFC3574FF7212 -:102DA000BA05184FBEF25750FF910C99F9A9473E4A -:102DB000A8CA8288F783C4EB719F612899D5C3277D -:102DC000744C3EDF89E1E48956F283CDF3ED79E47A -:102DD000DFB87F389261D948FCF6D37BC786E759C4 -:102DE00098C4E33CD07A53289B7991CF2BD6BB056E -:102DF00096321CB6089E75897C14EBA633648FB19D -:102E000075D3F5F2DD88FA8D3D7F79AE72F247C851 -:102E100083C2637A3FD5EBFBCE723FD1D0B9E17765 -:102E20005407FBCE9B80FCC4235D1BB2280E83D7C6 -:102E30003B95F2BBCB5D0F4E65FB97D21626979F55 -:102E4000E44BA1BCE97432E543B59DA793595C6F8F -:102E50009FFE02E5499817DD41D7315F61FC2BECFD -:102E60002966FCDB77BC3829930407B785E6AD3DBE -:102E7000A6AF247C6A8F15BF5741F94B4F19CB93EE -:102E8000B4BCA888EA71CA938E4D8CCA93FA057EA9 -:102E90008307E2D8FE8704199C3F30318A3F356DA5 -:102EA000EFB07CA2A643F644F2E8DA732E3DE38D40 -:102EB000C1A5B0F91A029287F1632F6F6B3AF6B190 -:102EC000F5551B024CDF0D2D067EBF95B7004DEC6E -:102ED000793F38FD84C77B7409F5506E5427D0FEC6 -:102EE000FABBE9BCBE88D5C77617DF4F78F79CF7E9 -:102EF00066E2CBBB73BD59F651E2861FCA78DD2D61 -:102F000009BCDB0C2CAF8C1DB7CDC5F77B6C491011 -:102F100075DEA8B5F52ECE9F7223DFA78ABD7FABE5 -:102F20008BD7CDF8EF191DF2E26485C1FEB4A82756 -:102F3000C6A1BFBD4BF8DB65771A58DE71529C33D2 -:102F4000DDA5F9DD121EBFB5FDFE253BE1492CFFD5 -:102F5000E14BC863E7604B3CD17EEF6E915F2D5B28 -:102F600014735DE453777F4F3E35C325FCE16498CD -:102F7000CCEB06AB85F645BFEC36D86526B73AB143 -:102F8000327FE43A357F73449C0F75A31FA4B621AA -:102F9000E743B64FF5EE8173BF71303F1A07197CD6 -:102FA000DF91EDD7D75E67BFBEE19A9DFE308A778D -:102FB0009A9EFA29CFCF1BA9A7A502EF5AF3252382 -:102FC0003BB7844DDB7572F89CD264F07A52711D68 -:102FD000868EB9213ABF6CC831B17CA9FF764925EC -:102FE0007F8F72A69922FC7DFF389E7F3DB25C6286 -:102FF000FBC207723E6471BC36D46B245E4D6E5BBF -:10300000F324B35F3F9CA27A49D3E762338F9FD703 -:10301000F4A8AD976E2AB43EA79FFB65176B693C79 -:10302000C5CBBB447C5C5C12ADBF2CE85D40FB2390 -:10303000F77824962F5D4FEF4B574C7B87DCDF8D65 -:10304000EAFF9F5CDE875D64EFBDC3CB697FF7DD80 -:103050009C4FD328BED65D87CF7E81AFCFC2CFC570 -:103060007C167E1EE6CE521AFB101FBDC3BBD9458F -:10307000FB4FBABFD8A600CDD3F7AB7A89F4030CC7 -:10308000FFEBD9D13631EF36979DDB8B8B9F0FC588 -:10309000519FECD9A04E203F01793776CED7B0FFB3 -:1030A0006801E969E0C0B10263843E2FD5A33FA067 -:1030B000F8D2792859B146F24D27F8A667AD242DEC -:1030C0001571339A7F97887FA4FFBD87EEA2BAB0AF -:1030D000BF6D994B5222E26AFB49DBA48879FB83DE -:1030E000321B8FF5D8E4BB1322E57C92C9D91FE0CF -:1030F000F301F44D5E961F79BF919F1B99FB188FCA -:103100009FCADEC4CEDD351EEB81F3B8AE6309B0D5 -:103110003825D61D30E20FAA33BA4C2A9D53D07EF3 -:10312000BB23C24E8E0A9C67627140FC9C057E994F -:10313000E69D8933DE4B7D3D84E84C6E3684647EAB -:10314000DE3D0188D73304AF67EA4307A402368E19 -:103150009D4B95422F1B772B0CB1D603763DB56561 -:10316000E0666D89397407B993BC40807D97144A35 -:10317000D63B2E98D951298CA6BFF0FAF57041E3C1 -:10318000290EC6A487EDE3C78E1B1676EFA6DA825A -:10319000F4DC0F6C1FEE16E893E925B3F5B088BE9A -:1031A00027BB450FE6789477EF611DB3E7AE3E4548 -:1031B000257FE64E12CF7D86CF617FA687DB2D85EA -:1031C00020FA6E455B6F2C0EA5381FED0BCED46335 -:1031D000E5CB700CB1F7DD4682E3BAE782A2A7FE29 -:1031E0001F5DE9623F85D769F3449DA633FB191E35 -:1031F0007F12F191CE736C384F69930467E97C2696 -:1032000093AF579BBF14B3C1C4421ACFE31B6D8564 -:103210009F75F2731E1B3B9F9B6F27BCA450B2EEA1 -:10322000AAE5C6711D4C0626B7EDFEA181C78BC36A -:10323000E75DEEE0D1B3F45D8EE4F1B0EF7ADC66E9 -:103240006B88F27364C7A5C8BCFBAA6BED5FC9DECF -:1032500025C5CEF0022F28947F8C0D7FEF02579367 -:10326000C2DFD3108C1793C3E7FBDAF735BBD5A5C4 -:103270008A0EF5B2C26576935E0ACD6945540F3663 -:10328000DBBD7F75B1EF6C5A26B1C9F4EAF4CA848C -:1032900030DF2DE02921BCB5737D49E8EF7AE7F6F0 -:1032A00064ABC4730BBA7DFA2EE819B417B373B4C8 -:1032B000EF8FF8793E5AA142DF1DC113F314FA2EA5 -:1032C000609BC3EC7E5AA2141FD76709AFAFD1CC65 -:1032D000BF276834F3EF0260EB74B67FF690388F47 -:1032E00068B4EAB2A9DE6A84783795F49ABC0F25EF -:1032F000703E3EF4DF16763E1A2BF7D7F1DE9C3196 -:10330000D3C3F23F2ABBCF62EE1385E71C0D4F5D9E -:1033100018CF156A46639FC2F09B46CF4F33A9373B -:10332000D1BEC82A13FF7E49C30D15CA486D17FACE -:10333000D0F0B393BE691D1ED4B7C6978C307ECF34 -:10334000C473DC0CF4E544267B56217F1D8BCBFF38 -:1033500001AF6B7F8EF0290000000000000000002C -:103360001F8B080000000000000BFBCACFC0F0A3B9 -:103370001E8143D1F8E8389D0F534C941182D7B386 -:10338000E0D78B0D5B3122D8FEDC0C0CCA9C0C0CF8 -:103390002A40DC07C4FD40FC1E880DB818180C81BB -:1033A000380DC84E07627B2076E386E86966676061 -:1033B000E806E2C9403C9B9D74FBCD251918CECA96 -:1033C00022F8B2720C0C510AA49B338A87267633FA -:1033D00042E5C76BA3F2BB7419184E23A949D02646 -:1033E000CD7C466306062663DCF271E6A8FC504BF2 -:1033F00054FE5D3354FE4577080D00AEA32483B818 -:1034000003000000000000001F8B08000000000007 -:10341000000BC57D0D7C54C5B5F8DCBB77EF6EF6AF -:103420002B9B0FC20642721302040CB8C480C14A1F -:10343000BB89A0A0C85B502B585F5D02242004828A -:103440005A492BFE73212104126041D4A0881B3EEF -:10345000142BD8A0A0B6B576F9D0529FCF4645A57B -:10346000ADA50115D4024DB5C8F63D7DFCE79C998C -:103470009BBDF76637E0EBFBBF7FFAABC3DC993B44 -:1034800077E67C9F33676665318564E6117211FECD -:10349000BE47C8040B21644CBC244155206309F984 -:1034A000919DE09FD6CF5C36D61312B511129B4B7F -:1034B00048A78B76946AEDA49896B7DE28922C42A2 -:1034C00052E17D859026A1F6C8E05242D44122D92E -:1034D000491FADCA999E1A72251F77371FF7B97A0F -:1034E0003B961DF55E2C9FAFF761B9AF5E21D161B0 -:1034F00084BC585F84E5CBF57E7CFE8BFA322C5F72 -:10350000A90F60F96AFD242CA3F5412C0FD6CFC07A -:10351000F2707D08DF7BBD7E1E9647EA6BF1F91BDA -:10352000F57558BE59AFE2F3B7EA9BB1ECAC0F6347 -:10353000F94E7D1B9647EB23D8EFFDFA5D581EAB85 -:10354000EFC0E77FA87F19CB0FEBA358DE4ED20860 -:10355000E947C86DB79DB7CFA2EB1DF6C47DEF4C10 -:10356000CE2464FD18D10FE01AF6C4C7BE50717C9A -:10357000DDEBBFB1CCE8480097EF1301C759EF2648 -:10358000D8BEFEC0EF893292907563BA7C2AAD4FE7 -:10359000E6DF19BEF3A87D5671BC9F799C4F8885E4 -:1035A0008D63A5EDB4DFD0CDACBFD63E19BE3326BA -:1035B000DEFE54DB3BF6D92E7D3B7BFFE92DEFD8B9 -:1035C000017F6B63128922DE554268E950BADBFA4B -:1035D000513CA71CB3115B3EC5BFD241BAE838EBE2 -:1035E000C63D12154B61DDB49B02EB7C9708140EAF -:1035F000AA9B203D2830C6D5F1EF5C4D449CC7B056 -:10360000278EB2EFDC7A1ECB57FF211342DF5B77A8 -:103610009B1071D2F1D78DFFC217007A539FB10072 -:10362000BD21B92AF09F2E5F908EBD7EFCFB3E959A -:10363000C269ED37EFCE980DF4379AF8E17B6B0F46 -:10364000FC9C28D03EB21BE1D7C0D7BD76E6AC3C8F -:103650006F7172BAA49444C432BA5C17094412C0A0 -:10366000F75F0108143E166F04D7E4A0FD12E1E1F4 -:103670005F898CFDD6BA83EF015CD4DBACFE9D7410 -:10368000DED7F9A3E4942B3E6FA87F44EBAEBF478F -:1036900089C50DF3FECC67A1EB7796C957A5D0D9A4 -:1036A000B8BABB8FC1FBAE6BAB02B0F675A3BB7CE7 -:1036B00055B4BFBDA813D74BFCC43F848EEB285232 -:1036C000C9EC62808305F16A9ECF6C80773FC0D3DE -:1036D000573EC0894687EFDDFAAEBD52D7FF698DF0 -:1036E0003E04465FA4356A9FE68EB73FA1B5A7307A -:1036F000FA217663FB66131D939C24ED560A68C479 -:103700009718D92920DCEDD347F69E776BF4B7C81C -:10371000072E7FD41E4AB02ECA2776903BA9A5A2B9 -:103720001FE0B56E3CE597E2F83A2FC577CD1C2E29 -:103730006B4BA7BB61FC4BC9AD911D2289167199DA -:1037400049FF7FE5CB0E3AF3787D7434DD50BFEA54 -:10375000C80043FF319D0586F6AB8F8D30B48FEBEB -:103760002A31D4BFF3E93586FEE3BB2B0CF5EFC558 -:103770006E34F42F27B718EAD7D97F60E83FD13BE2 -:10378000DBD07E836F81A17DB272AFA17E53D10366 -:1037900086FE37FB1B0CEDFF52D662689F1678C879 -:1037A00050BF65D2E386FEB705B71BDA6F9FF1AC59 -:1037B000A17D66E80543BDC6113A0EF8F9C1BC5FAC -:1037C0001ADEFBD7DA4386FA7B844C4A845F2230C8 -:1037D000394329C87BEA0ADE9F8A382FD01CD07172 -:1037E0003F46A745ED49E4246F7F66C73BF6B9061F -:1037F000396965749CCDDA7745DE49FCFE20CE2719 -:10380000A4D33EDDAD6F67F3BAE21F54BE42BBA442 -:103810007E2BF9EAF6FAB1BF2657297D13720D8582 -:10382000AF3A5055F17B743C2A2F2D6CC9A48E30D1 -:103830003945C8BDF85CD3FB2487442D74DC06777A -:103840004EFB1A80091D5BCA847AF136A88B4A8028 -:10385000742580ABC52B1BF064862F71A55362EED7 -:103860004BCEAA083F75222992E0FB82C3BF9CAED3 -:103870005722A101027D7E410CF960F24B2DEA6FC7 -:1038800042F9F1FECBC7D37F42FF13426405F657DE -:10389000108E0D234900F4869A2D4776E6233C6D61 -:1038A000204FB4F7E803A58BCD57BD38D85067F348 -:1038B000BD64FDEB61C6BA36EE4F8CF0A47086FA9B -:1038C0005DBCD26BDD7E394EB716E8C7EA8A289018 -:1038D0008B28078DEDDA772EA4784691548A473BE2 -:1038E0002B973A3CDBA0BC90921B211E428AC5500C -:1038F00005C04DAD60F0518F3B230D385EEDD5C155 -:103900009100DFC4F602212B187F7C3859D4AF23F5 -:1039100019DE1AC06E1BA6A3831C3FCA71BA6AD4F3 -:103920006FE6FEB70B321BDF455145C7B711466343 -:10393000A996D0EDC218586D9048384F3F0922BE65 -:103940002611B04BED1A3CC373B1EEE276E601F7F7 -:10395000D863218AE7B501D90F63550A0AC783DF07 -:10396000077AC056269235B4B65679C70EFCD19C5C -:103970002F67835CB749B5C44BEBB642CA0709F45D -:10398000C8E21E39F120B91CBBD88CA722FA3A9B99 -:103990000741386AF30F0FEAB417005D8EA776313E -:1039A0009DEAFA6BFBD62F2B397C5BC02EA6E53A3D -:1039B000657A2A41BE253381BE9BF3B344E4530E9E -:1039C000A71EB8E4BF6F073E5DCDDF5FEB7F07ED5D -:1039D000F4D59A1E37C1B179F44984CF2C81E9E33B -:1039E00096918E19910470992578B0BD19782A1393 -:1039F000ED2BC65F267AA12DBE4ADA6E57BC256B29 -:103A0000E8F813464A33812EDC6544B121FF065C99 -:103A1000D9F4FB0EDE5B524483FC706732BAB57F8B -:103A2000284414DADFE563DFB3B9482480EF2F318F -:103A3000E0C551169A4246513BE91F167C8FCE9144 -:103A4000D9114727233F5ABD6C9DA488E1C94BFF7C -:103A500077B1808EA7C806BDB1BC5CF647E9779602 -:103A60007A5C484F563D5EE9779DDFBC1084F15784 -:103A7000E5DCE3584EC7BF50DEB40AD8D2F2E1E429 -:103A8000CF80EF2CE6FE83A6FF6E70023ED04A6721 -:103A90009787443360803BFBA403CF87ED6F1CD630 -:103AA000CDF315C19D89F2F56A7235CA854BBC7F8D -:103AB000A13EF2C6E121080FF172E879A589AF9B1A -:103AC000F235BDA5FAA6E9ECB2F302D36B442D475B -:103AD000384B9C9F9BC6936EB05BD7E5CBCA0ADA86 -:103AE000452A93A3403AF0D74DBF0FB6190179ADDF -:103AF0003475B2E73F32C8CDD5FDA7FAA37DC04DDE -:103B00002A34E99B4BACBF0EE0A7EBFF31C0CF19C5 -:103B1000879F8D0453A3402FE149063F7655F9FD59 -:103B20004A94FE73D580470227880E8EDFA37CA8B7 -:103B3000E30F5B4E84E8BFAFC9C55BC44037C861C3 -:103B40008BEC4739450A64F447CCF32B1299BC89B6 -:103B5000C3D92E111D7F902911843BFD0BDAB33898 -:103B6000FCE85F8AEFF57F00FCA88E8E3A47E1F310 -:103B700046A984CE2793A8CE2BE9FB1291A03E48FC -:103B8000CC47BEA5ED13E474E0DFEBFD20079BB846 -:103B9000DF47BCED3EBD5D3E4864788DB7477CB7DE -:103BA00019DA99BDD3A4D9F5DEED06BAE8793F8DCF -:103BB00024F43FFA89CCCE1E247A39FD6C47FF6D80 -:103BC00075E69418A02125FB7A7F25F0AB97201C81 -:103BD000343DA1E905AA2F0689FDE2E3C98541220A -:103BE00060BB51FF2695D726BD9B52649403446F5A -:103BF000CF14C07F73BC482FC4ACEF7919BCF1B2AD -:103C0000F8AA97BE2489FDC5692293C344CDC4F5A3 -:103C10006B7C45B83D61D5E882307AF5F0EFCA306B -:103C20009FC180E7080EEEA46E15D4DDA416EBE765 -:103C3000CB4AA200279BD4D54CB87E54F313F8513D -:103C40003C0E936C1DEBC727D60FE5A207F16971F7 -:103C5000D59210D2F19D68070A6A885C447B30CC0B -:103C6000F5AADF07785C555F473EA28B711C9C8CE0 -:103C7000FEB9941308807F6F0122C8A6FF7795B222 -:103C800052F22B7AFAECC123598EE3592958609DE0 -:103C900056977D16E801ABCB3B0DCBA211730528DF -:103CA00053AFAF1391AD12D393361EA5AB79228CCF -:103CB0009719427E96BC412C892B13ED57DA5F0988 -:103CC000269C07A703DE2F29DDF5D08D0607458644 -:103CD000F1CCF4E428A51E8988D54E986F7F8EED2F -:103CE000FE739A960088DD24DC3C94E2AD7FD7AC6D -:103CF00029A077DCA07FE83A5716971C01932FD5AF -:103D0000EFDD70BD02710022001E56C360D7C0787F -:103D10003F585E8EF10FFA37800A8B15C172E61F8D -:103D2000044C76ABA8489A7D26F669EF08176DBD5E -:103D3000DF4FB67E1BD1F115EAF17B2ECFBEBA93D1 -:103D40007D4FA5FF037E4C33E9D9D480511FB84D78 -:103D5000DF790E6089F05EF2BFF23D2FD96857C05F -:103D60005E2914BD114ACBA9C49B067E946302F55B -:103D7000EF68DD9BD3ADC2942E859795DC8F25949B -:103D80009FF5F47F88CBD7ECAA4DB39AE8B8E74B00 -:103D90005D7EA0E7FE549C66A4F75E4F4B3D31F07C -:103DA000734BF136A4EB06AAF00AC03F2816D15E89 -:103DB0005F5DF8BC57AFC73ED1E4502FFA208A347C -:103DC00096FB93143E9642319032EA9FA70FB3FDC3 -:103DD00074B9F4E1BCD3888F6F8BAF2FBE257DFC07 -:103DE000B3DF5B992C3EC1E559765523F35794BE5A -:103DF000FD83DE78DD88787550BF26917CBED08348 -:103E00004FB57769D02BC6B880F586EFCFD8D107EC -:103E10003CAC33CCFE3F1B37A5CEA27C0CF6ADE408 -:103E200035F841AB958D2AD8F3E7C12E07FB305CFE -:103E30008EF16152C8E2B5308048EB294A20C2FCBD -:103E40009B08D1EB4139C71877B3643A8CFA7B866B -:103E50002AE8E79F5227E33CECF0BD4C8CE746E0B4 -:103E6000BB162F89A6A0FDC9F0079F62F180072E1F -:103E70008B0E347A053398D1ABF1BD553925241119 -:103E8000FE7A7DEF56E37C93CA25F37B2E4939A554 -:103E9000B35392BF2791533A7BA742DBF7E178A255 -:103EA00076DECB422A9507BEEF9310856F133465FB -:103EB000433C94A03E6BF29578519FEF124C7EBB31 -:103EC000C2E84749C7FEA29DE94DAD9E7C3EECBBD2 -:103ED000F17D2405FDDA64FD1BEACB1E9628713ABC -:103EE000EB0E6D92281E1B97076604D1BF3DB249A9 -:103EF0001A12EF5763D1FC76AA3EC7C6F7072442D1 -:103F0000FB21DC4472F12A78E825CA588026FBB3ED -:103F1000934E6CA74F391E89D0E3CFD021DB609D33 -:103F2000189F3886FD60A08B186FEA6275FA22D45C -:103F30005BAC8100CE4B0ADBEFA1F06A49E17585ED -:103F4000D7D378DDCBEBF9BC4EF505D49D32ADD39C -:103F500032C51AF662DDC1EBF9BC9ECEEB69BC5EE0 -:103F6000C0EBC246ACB7C86CBC3552848DEFE0756F -:103F700085D7D379DDCBEB05BC4EB6B1EFDB58DD91 -:103F8000618DB0F19DBC9ECFEB19BC9EC6EB8379D1 -:103F90005DD886F564F8731452F81BE44367BC8E51 -:103FA0004A84C3B5A7DE656A67F49221106E87A9BB -:103FB000D960B71D98757F36C4431F3D71B50FE8B2 -:103FC000A7E1668D9EFC283F49CE4D28C7FA737F36 -:103FD000AEE1CE1518876808C98C89787C26DE5E2C -:103FE0007204F4F6F919A21F1ADB92F82FCF723B74 -:103FF000FE191E97799AEF57EEE4FB95DBF97E6583 -:104000003BDFAF7C92EF573EC1F72B1FE7FB959B41 -:10401000F97EE526D8AFA4FD36F0FDCAF57CBF7267 -:104020002DDFAF6C81FDCA6140EF7558AEE2FB95A4 -:104030002BF97E6503DFAF7CE4CE92DF16D2F59DCF -:104040007789680F24C347F16EA3FC1CB1C3283FD6 -:104050008BB6A41BEA43370D30C8F7C256E3BE4502 -:1040600041E308435D595662A8E7DE778D61BC9C49 -:1040700085C67D8B01736E34D4FB05A71BFAA74F51 -:10408000B8C350F75E5B69A87B4AEF36D45DC5F7CD -:1040900018C67314FEC450B7E7AC30F47FDC52800E -:1040A000F42567AE31F4935C1B0DFD6A1C81CF2DA6 -:1040B00020EFA6645E967C237F57B3F4F2D2AC1F48 -:1040C0002CB92410403DC7F411C66821AE3688C50E -:1040D000AFEC1FDE7004FC175B21D353E6789579B3 -:1040E0003CD9F5D431957EA7DC73C4D7A5A35BE298 -:1040F000D3BD47979A2A3139B9E64146DFAD0F263D -:10410000A673D404741DADDF248E17BB258B418F9D -:10411000687E4DEB8302F6FF67C7D7DACDE3C6BFF3 -:1041200047713D566FB744F87CA88ED0D90BD6AEF8 -:10413000B4D904F53CF3972D9CDFCB27F84F3452CC -:1041400078AFF412BF8DD657BA2A02CC2E1115942F -:104150000FCB6E46BF5EEBAFCDABD1359DC917A27D -:104160008B5BA29C7218E20A2B33FBB6DFE4980546 -:10417000E37F969840A2542FC95270523EE55FF9F2 -:10418000A8C5BF9CA07E4A181F206423DB77F619C0 -:10419000E3A68D734CF28FE7655835F9965981CFB8 -:1041A0001BBD7DCFCB06F382F9F07959634E2C2DE0 -:1041B000B1149CEFB85806D6CB6269585E1D1B88B7 -:1041C000E5D8583696636283B12C8DE5637955EC5A -:1041D0000A7CAF24361CCBD1B1ABF0B93F361ACB39 -:1041E0002B63DFC1E7A362E3B01C19BB0E9F17C7A7 -:1041F000CAB1BC2276133E1F119B8CE5F0D82DF876 -:10420000BC28360DCB61B11F6039343613CB21B1D8 -:10421000D95816C666613938B600DF2B88CDC7324B -:104220003F762F3E57624BB0CC8B3D80656EECC71E -:10423000580E8A356099135B8EE5C0580BBE372047 -:10424000B61ACBECD843F8DC17DB8065566C339696 -:1042500069B1EDD8EE8DB563991A7B169F7B62CF5D -:1042600060E98EBD80CF5DB1BD583A63BFC4E78EB3 -:10427000D8CFB14C891DC2E7F6D8012C2F85A74BAA -:10428000D9C1651F1BF79FC77E68DC7F2E3D6A94EE -:10429000E3256F1AF79FFD878DFBCFA35E31EE3FBD -:1042A00017EF33CAF111BB8DFBCF453B8C727CE815 -:1042B000963B8C7A6493518E17B4DE6DD4238D4671 -:1042C000399EBBEC27463D72DF0AA31E59B8C6D003 -:1042D000EE9B6394DF59E431A39F3E619B518F5C59 -:1042E000FB53C378AED2E74D7E4D04E58BA3F817A0 -:1042F00086F7EC85074D725965F2C9146F0790C0B7 -:10430000FEE652E2F0835F63C6673A970719C0770B -:10431000B4CCE47CD70FF88E96E9372DF4013D64D8 -:104320004C2D9B0576CC85138202B132616ADD305B -:10433000D8EF491F48583C818CB80EE2684DD95AD5 -:104340009DA8026D6F1A4430BE40D4E5150117C612 -:104350009BB1FE5BE9C10AC88B69B2F276B292B535 -:10436000A7B0FAB1C6392BA03D3DB5231B12991E4B -:10437000B72696E75D12DBDF1B28057E27D1F5FF08 -:10438000B5BCEB7E88CBFDBB3DF4AE449F2FB4871C -:10439000F2606BEDAC35F434A88E02217014FA8D06 -:1043A0001402EF4928B78D71D629A038E9F37C298A -:1043B000F807E89731D527C0FA353834B9FB9ECFD6 -:1043C0005B5C3F35A511F437D5D57C3F18FE34BD75 -:1043D00041F5E1A34E0FCAFDC86A799B8DD9854688 -:1043E000FDA166CDC6786273D312D4C7805F4BA29D -:1043F000386B17D653C1BA1C0C7181EE5C89968B51 -:104400006CD126D0275FA5751E172C088FF3B09EA0 -:10441000FB6F0C61FF15CEA965B01E0A8FAF383C4B -:104420002EF4050FFA17F4D1F9F934AADA2D18E2AF -:104430009AA9969060EDC7F653617C5FC88F7ED9CC -:104440001F25166FD7E047FFEE4BD7E23804DF4B4E -:10445000B18EE93D9E368E000003BAE67A51A3EB99 -:10446000BA247A4A8B7713F5E66FB5EF7444E67E8B -:104470009CE93B16C98FFBB6E6F72497510E5A5DAF -:1044800021CC8790A5C4FBBBB28DEF5B6D997A59A7 -:10449000FBDC3BB47534DE7C59FDDBB5FED43184E6 -:1044A000FE391C8E64CBCD4877055C1FE770FBEEB0 -:1044B000D09F6E58D14AF939429FD912C41122CDEA -:1044C00022EE6BE6D45082CB8FC37BA0C2EC42EDD0 -:1044D000BB036B8D7198031A1C375D1EFCB5FCCEB7 -:1044E0001C4AF8BF28E93D0FB2632A5B8F9755A598 -:1044F0000D417B0A9D5701A3253290BA23FA38A0BB -:10450000793E84EF5F0CE4C30D74B1FE649771DCF7 -:104510005EDFB5BC32BA2F3DD8EB3BDF723FB0CA8D -:104520009A783F95E20BF13DD064FF69A5B61FA8CC -:10453000D50FFDA9DA0E7677D3C24ADC6F6FF23160 -:10454000FD4DBEA6A38E8DAFDB3CCE4E0EF7EDDC4F -:104550009FDCB9A902F31FC96E237D0E79F8564777 -:1045600088D96FE9503ED5C6FA0DDD3C873FAFC410 -:10457000E7DB5BD9F3C16B4BF9F3127CBE23CC9E16 -:10458000176E98E080784EA3B7221DE33A75F44F7A -:1045900027EF86784322C4E386B491003C1BECF5F8 -:1045A0008B20FF0BBD012CB5790FDAB4AD7C38ED53 -:1045B0003F6861703AE4B952C2C4FC430221153A23 -:1045C000EFC7F87A73B5F690B1BD8D7F2FAFAD729E -:1045D000F970FACFBC85A18D934BF1997F0889F7CB -:1045E0007B848F63D7DA03C6F6306F575A4FA21811 -:1045F0005016FADF9904FD9A8DDF5BC7FBB928B32B -:10460000C1BC0B16061CC3615E45ACDF131ADF9AF2 -:10461000E482146E249375DF6BE5F3B62C64715657 -:104620004D3E6CE37180AD10071816EFBF46EB6F7F -:10463000DFFEC4C7548F4B0B593EA9D6DECCE7A58D -:10464000E5E514DC678CDFFEC2CAF8B85B66F15B97 -:104650008DAE92D13799271AFC3D127218EB337444 -:104660007621D403038CED6505C676FF0863BDA8EB -:10467000C45857AE31D42FF4C4613A53F471182D95 -:10468000A6F384B712FD9078FCAF3B459F479ECBC5 -:10469000F9EDC9BA12ECD7E0E27C64CAA769522AE4 -:1046A000ECFA7DF8BD9C8FF6413C84962F40FE3697 -:1046B0002DF78F0ED8F341BFBF67F16F23C9E1B665 -:1046C00095E3710BE7C3C7009FB46CE3F87C84C724 -:1046D00075D6F3B8CE5A1ED76981B80EC667585C36 -:1046E00067158FEBFC8CE7A1EFE1719D67795CE7C3 -:1046F000191ED7799AE7A1EFE479E8DB795CA79DE9 -:10470000C7752672F9BD7F624736C4D91E9F98D8F7 -:104710004F9E28337D168480262DAF224A8315E8CC -:104720009AC206F6754AEA148B0DF262030CAE25A6 -:10473000F3148BCCF271F06F3AFF0EE815CC9F7931 -:1047400093E7F5E450AB4847EFA30F4709E47564DE -:104750004DF08E8690682AA747DAE6837E5C0D903E -:10476000ACC35E307388640978E57E303EC17EF963 -:10477000BBC307C19C1911ADAD70D2F78B5E0E564D -:10478000504F9B0C2DF21F1414C8170A8880E7FDA8 -:10479000E5FE234A691C5F741606BAA073447D9631 -:1047A000A7E9876B8D7471556C2BDACB4D753C5F27 -:1047B0004A2109FD78ADF45E2B9AE249463FAA6989 -:1047C0009931DFC35C8ED861F4C38BB698DE57FA9B -:1047D0007E7FE826D1145F33E61137B9A6F7191F9B -:1047E000CF8F4DEDD35FBCC552799D3C265E77C619 -:1047F000BE8BFDCDF6A004761EB557A5A37200ECC6 -:104800005DE9A837007113E9A8C24B3F7F1EE0F5B0 -:1048100020D6A9DD1884F1295E0C76A3850A7CD800 -:104820001BD90FC21DFD908B2B02D418DA7F1B41C0 -:10483000BF224D765EA7827114988BF891397E3233 -:10484000E4DAA7210E12A911C9365A7F7C61DFF282 -:10485000AE575E852B80FB4939B5DE124B1FFCBE7F -:10486000A9569C94689F6C31A7EB95B5D3BDA83F22 -:104870000E5F326F60B1ACCB1BE8772BCF1B38C318 -:10488000F2E20669EBBABF6F3A78D4B48EFE49EC17 -:10489000EAE735BE73B1BC138DEE330AFAA6935521 -:1048A0005C3EC62222E904792B05507EF6BB358496 -:1048B000F9F1A0A0F57CD2F4CD75C887EA83EC1C91 -:1048C0004FBF5B03449F77AFCD63504E17B875A4BD -:1048D000E9C03896C741E10FFBD74D0708FF8E8A24 -:1048E000C2C17E1FA980EFD9492DB1437CB3CEAFA1 -:1048F000C2738B8BC10BFC55DE1FE7D5BC4CC49437 -:104900008A86092C3EAAC97F8D4E1A7C3C5E3F41A7 -:10491000C278B7E4AD8D02DE9B46133C6F43EDAE2B -:104920008B1735FF06F2BC323BF1DFD6A26814E8E4 -:1049300092042621FCB4FCC026775639ECD3ABF3A5 -:1049400035FB82E7A14A7E3CB790D3368AC5C33295 -:10495000C3985771BF187A4EEEA7A7BB0E844F536A -:1049600092F3056B6596F7E44B82D7F7B91CCE90AE -:10497000A393993F4AE93F419CA093F7DBD23CFDCA -:104980007743499C7FB5F63F4A0AB66BF59C988CF5 -:10499000F3266DDFCE0FB85EF3F74CFE9B550A1A77 -:1049A000FCB05CAB82FDB4BA9C699467973F4F89B9 -:1049B000E54316DF68C073C680BEF9A689F3CD85CE -:1049C0004126BBA3B088ED1BF7D81D22F150B86E6D -:1049D00035D193A647AC45DE0DC3F27BD3C5D66572 -:1049E00095AA00FB2A7E82FB426E7F4700F6055D9A -:1049F000399172B08F291DFC15E840A38B9CB6B18C -:104A000008EF1735BD57472A0209E6AFD975E06FA1 -:104A1000F9D2616493DF43825EF0AF7296331B720A -:104A2000208F2B0C54FBF6FB2E77FF5ADB4FCEA5C5 -:104A30007FE0F7FC42C3F7A7A6B89597B2EC589D64 -:104A40007EFF3443B0E8E8B2C7CF37BD47FD0B6FF8 -:104A500022B92D594259361DBD98FD77B39F4D7A25 -:104A6000E5BD9512C89BB24C997404F21F7BFCED16 -:104A70002D5399FCE278B3727FB4B73F79A7BF2F6B -:104A80007D627599F659BEA53FE9B719F34B2F3BE7 -:104A90003FF75BC6231A789E5E2FBFC3348E180E75 -:104AA0008889CE6D0C091BE12EB98C76C79556C648 -:104AB0009F839B8D71E4BCBA0189E39D3C5FADB2DD -:104AC0004CC39372FB1F29BFCD3F62653E10F78335 -:104AD000B578D37C9E375D09796C144F7348D00349 -:104AE0008D678988F93167C93B9EAB747C536563D8 -:104AF000E7E848B3F5249CBFD0F2B3E686595D9B46 -:104B00004F759BB15E45A66741DCB56A9395403E03 -:104B1000D67C229DECD2E64FF9FDFB366607559315 -:104B2000DA26906B2B793CB1D24B24C8A7AA79E93D -:104B300089B1709EA7C6C6E4F7E714FE8A2EEFE699 -:104B40006E574406FEFE68DF55DFFF0E81F7234DEA -:104B500003406FA6253E0731BBD938BF4BCDDF3CA4 -:104B60005FED9C46B27948BB8484E7151FD0E25EB6 -:104B700097798E64BB8DE13FD939924BBDBF0BDE77 -:104B8000EFE31CCAA5DEDFF34FBEFFFC25E65F6343 -:104B9000EFBE1EE4C4AACCDA20C8552D9F651109CA -:104BA0000520566379659A3A50D1F5F35D66BF1CCE -:104BB000DACF7219FD0AFB1EEF1CD7C3BFD9BD5D4A -:104BC00006FE3DFBD31353C12E58F04B0BB1533AA5 -:104BD00038B7DBCDCF8B4564D08F77EFB360DC8007 -:104BE00048D1B1B7E8F20531B3908EBFE0676EDC13 -:104BF0005FBEFB795B640A7DFFEE173F1A45281CF8 -:104C0000CEADE87E7D20D83D3F1558FE95DA35EAD9 -:104C100016FAFC6E89DC154CA0B73A391F9CF9B91D -:104C20007306D099B0EBC00F71DC8EDBAD369D5EA4 -:104C3000F88DCD8AF0A7FDD879AC6784C81081CDF6 -:104C40004F9F2FAEE5BD9D794660F37BD91A498110 -:104C5000F9ED6A9743B4DFE25D7F43BABEEE677B4E -:104C60003C0087C52F5B0CF267F12E4BD4360ACB84 -:104C7000133694F701973016E049500F2CDA57831A -:104C800079B28B3A5AFE66F1C0FB46FEA270C17340 -:104C90001F0B3EB0F8A740FD85A73D60C77EDEB97B -:104CA000D30370A5E3CE92295D7DF7EF3A3E246CE5 -:104CB000FC587AEFF1205203F4B5B86335FBDEBE41 -:104CC0009B4F837C5B6CE2E3CFE11FD9BDF547CC02 -:104CD000668C479E276F8E857D0AB22B23617E717D -:104CE0008FFEE07CBD60CFF9AD709EF8CCF37FD92C -:104CF0000A76FDC2FFFA72EB03100F7835C50BF28E -:104D000068F14FDFF3101DFC33ECCC8E3FF7CCD3B2 -:104D10004F3D46F9E4DCEF6D68E79CFBD5E95C8527 -:104D2000AEFFDCDE7F64C1B9DBFB7E35B13FC0E3A3 -:104D3000BEFDD7F5EFCBCF00BA8DD8F4F88D207E2D -:104D400095970596CCFC0A2F4D783AB4EF502ECCAF -:104D5000F3EC311B9EBF594C9FD59500DE6A503F46 -:104D6000407D1985F7A2DDABFE66199508EEEA4095 -:104D7000113745A203C1C85EB4EF967F195F0AA53B -:104D8000D5AFC078A41BE5BBF9BDC547297EAF4CA4 -:104D90008ECFF3E46B19E0BF78F76AF6DD0E8A4F29 -:104DA0004F6F7C9E857F8CEB8DCF12BB199F0B9F25 -:104DB000C4D8E8BE8C8479241A3E6BF6DFD6A7DD12 -:104DC000A0C9874BC1791ECF9BFA2F5BA0C20E7C76 -:104DD000F6BC53F5313C47A6D0B6737BCEE7124AFA -:104DE000279F5ABB7F0872B2FB57362FF81D77FFFB -:104DF000EA03E4BB73FBDF961576FEC42550BBE2E5 -:104E00001CE9F9EB043B6311DF335BBCC31DB579CF -:104E1000E2F85A14993649F1E0F313F83CC2F8610C -:104E200051E4C0AD4202FC2DB31730FD14E9877088 -:104E3000A9A19E0E9CCFD7E35528037C9EB81EE8FF -:104E40002F193EB5F57B61FD57EBF0BA83F1B1B98F -:104E5000FF22CAAF20877BE137227C00E5B9769B31 -:104E600004F991E7AC2CFE66C67B1CFEFCFCE4B7A3 -:104E7000B417EFB727D97FE070B814BF5F6A7DDF42 -:104E8000167E73EC0A8E6B86E399AF13EB838D5C11 -:104E90007E2C22B59306E8F499CD4AF5593ED87B8D -:104EA0004175A0109F6F538705E5FC995D9608E852 -:104EB0000BB3BC584412EFDB45ECCC7E59F4F281C5 -:104EC0005120D7CE1CFC39A74B46F78B769F9055C7 -:104ED000AE1F227AFD90C4DFFE291F6FF12B89C718 -:104EE0005BBCFB6F09C7FB5C0ADC0EF3FFBCD34A5B -:104EF000543AC4E71D964989ECAD4D76AB31CFD617 -:104F00003DF6582A7DCFE27128B0EE8615810F5408 -:104F1000B04BDEB1629C9648FE4F6D78DEDAA1ACF4 -:104F2000A1706BF054613C451BAFD10427C91744F5 -:104F3000BF54CA0C96329B3A62F0A7ADD4DFD5CFEE -:104F40009BEADD1CD04BC7479FB6C23AFF6CB21F2D -:104F5000FF2C91A6FE74BC3FAB827FB992C85F3430 -:104F60008E1F5A66218A5E1FDABA8FC37CC8AF5380 -:104F700008E4AF595E4D51419E2CDE9A12817DCDE1 -:104F800043FB2F3C05703BF7A48DEF73B23CDB6A0B -:104F9000BEEF777AFF85ADFF49DB4FC3CBF4FBD57E -:104FA0005B697FB0DB773B315FF3AFCFA78E2254D5 -:104FB0004E57FFFA81A9205FAAC1C7A2FDAB7FD6D9 -:104FC0003FD240C73BD58FD54FED191401BC2C7C87 -:104FD000E1578B409F2C78CE4980240FEDFFE0876E -:104FE000503FF76B37E67B9DFBF5E9EF021F507BE7 -:104FF0005BD1EBF5F9FAF3DE74DC055067EDC245E1 -:105000002EEBC08F590025A5F7052FA7E2F9075D04 -:105010003F7C6FB1ADFB7E1688520788E8134507C9 -:10502000001F2ED865FCDE5FEDCC9E5A2C7757B161 -:10503000FEE1018C5F3BF1BDAF353AE5EDE6F7B53A -:10504000FEFF612F308DC3DE5F6423B589E8DF96F4 -:10505000C2C65DB0EB9B61C6F118BDF6FE0E7BFECD -:105060002381E5E793BD29B84FB0508E0E4D2FC672 -:1050700078C73CE0DB859EE8D034FABD5F7279B931 -:10508000D041EBF4F9003E0FE80F7562EF7A0EF0B5 -:105090005BF3520A017AAFF9B51BE3C9352F5E38CD -:1050A000F5387D7E66BF13E37A35BF5E8AF8AEB110 -:1050B000457F08F1BDEEBD36B28DF63FB3F7B7B907 -:1050C000608F9CB14673D3FB880FD574D87832B803 -:1050D000711DD42F28AAA5F35137B0BC9C3AC2EE5B -:1050E0001DA883A00ED0F18729EC1C31DF97BA8769 -:1050F000C7A3BE98A3A4E2FCAFBD893DE7F1867BC0 -:105100006E56FAA7E9E6017973E42AEA97C8B5C3AF -:1051100040CE5A62371105F6FF6283B1D4FA59E0E6 -:10512000FE8662C8DF62FB7ED64C3FA9A6E5D2743C -:1051300012C2F397AE1B7BF8EC7714C5F76C56FAE6 -:10514000C378FE14265F6A1C81F129980F69BC7729 -:1051500041DDCFD67581DFA7609EEF05AB6A03798D -:105160001EDFAF6379837592F201C47DC9112E975A -:105170007AAD9FF1D917DE74E4336D1D2DF55E9481 -:1051800027ABEB7D58AEAA2F220AE629FBB16EE1D0 -:10519000F0B015AB04EE99001E843F9B2B1880FBEA -:1051A0002C604C88B75B5C21A42F9BAF16630576FF -:1051B0007EFF8EC5A5926A17C467189C206E0C707E -:1051C00092795D6A9B8270A5EFE3F3898ED09C94FF -:1051D0003190EF3BC220A7E4CC1243BD17DC34BAB8 -:1051E000D8F3BF0D3F82F05A5D6FC772557D19C26B -:1051F0006D657D00EBFF1FE0D7CAE0770D5174FCB1 -:1052000023675618EA49E1B799C22F33CE5766385B -:10521000D4F1FC1C8D9F92F1EF23F504375F36D655 -:10522000B761A93D4F4FA2D7CFA6307BA48E8496FD -:10523000E33EA897C56148A64A7274F127E253F18C -:105240001C089E3785F69C9B307EA9E1D7E2954EDF -:1052500019E59FF201AC67E91B5611E495A56E3B79 -:10526000F92843C7C75382290AC2D98F71E006AE15 -:105270005F57F6E0D3C81F2DF50A966B399FACE750 -:105280007CB201F00EF13DBF88386D9D44507F3EE9 -:105290004CEBCCDF8F127D3C3CCDDF11B552FCA333 -:1052A0004C52B064F7701CB34586D0F79CC52400FF -:1052B000F49276ECC7115C2BE9C0F3D669DA3D3085 -:1052C000AF14A4CDC4FD1F62657A8A585819B682FE -:1052D0001F65866F83FF20DE2F916C3EE5C7E70BCD -:1052E000F0BD0B33D99E59E69D1DC7E03E0857AB74 -:1052F00013FDCA2C7F6D5E2ECA571BD2ABCB1F127B -:10530000AA7578CC4A62FF2D734CFE23D0E38790B8 -:105310009748F1BBB16D700AC0B9C5DAE10379D81D -:1053200092C6F48D3283424177BFD86B5C4E7A4A85 -:105330008D724093CBDE6B4B0CF4ACC9DDF40946A7 -:10534000BAD7E4EECF7AE46EF02CC8DD8CD816E440 -:105350004B331F34586555B812EFA361F1A7130200 -:10536000DB57EF2D0F70DFFD8BAEFC6D701E5BE326 -:105370001FF3FAA5E6C9F89D1E7BD09A381F60205E -:10538000BF97A199D21BA174D44AE90C10B18ED257 -:105390001994614A678C9FCAB0D4E8780561324499 -:1053A000DD27B279F278ADB67FB2C25E12003CAEB4 -:1053B000EC603C34C8C1F7493345CC0B90A83FE9B9 -:1053C000A28FA403E3EC605F4A56B68FDFED163B75 -:1053D000601F7FA56BBA1DF24A85B452A49FAFDC53 -:1053E00095797DEDEBC0FD6B407F5E979F9C2C8E89 -:1053F0009F9BB4784B08F8A57B5C9D98DFE472888E -:1054000086FDA71A47A8C0A1AB8F84AF73BCC3B0F9 -:105410007B929CBF1CC5D743725452A893133DF78F -:1054200025292A29D2C98B1543AEC7FB987ACB8987 -:1054300024F270E7FF8C3C6CC88B205EAD66F9935C -:1054400019C03BA068A9C2D50AD43A5FF983D148F4 -:10545000A7D739C00F716DEBB183BE57D07B9E6665 -:10546000F917D76B0AC6C1A85E7BB40CE46952BDBC -:10547000567B17D271EB4005E8F8C0BA079E84FA54 -:1054800047EB6C78EF4B556C3551E87CAB63E3B080 -:105490009CD7F61096956DED94890859BEB67ADDC5 -:1054A0004CE8BFD982F19F5391ABCED5D1FAA95622 -:1054B0001BDAEFA7B6DC9B07F6DFA956A762017BD4 -:1054C0007FCB18637B33BBFFE5549B356261F47B74 -:1054D000D102FB1184CB778802E9E64B4A15B4E38D -:1054E000BF30EDB754AEB705044F72F857B625B6C6 -:1054F00027F1FC36E45C93DA61205FCB8FFF380F35 -:10550000E84393334BD3A9DC03F81DB79144FB0266 -:10551000131D1317039E263A024B19BE2EEFDEAC65 -:105520008F446A77239E429E6986B82F8BAB7EC4D8 -:10553000ED72624FD2EEE1EF7B13B7D7B4FEE5F523 -:1055400007696D55B131AE6D8178B500FEF83496BE -:10555000EFA0ED03F5A66B664FB7DA50AECCE1F1E4 -:10556000288DCEE37416F2F07C31031DCE8F6D4092 -:10557000B927B48C7C741C85DF9794FE803E84969A -:10558000F1FD01BECBD77C67FD9D74FCBFBF69C137 -:10559000E7F36229D8FFB307FD8FDE09FEC2BF5BC8 -:1055A00009C89FBF1F9988FBC89F598D718C7227AE -:1055B0009397AF72FEAF8AB518ECF3AAE6D932C45E -:1055C00041AB62EBF079156C22611EFD1DAFC10687 -:1055D00070152CFD1A78FFF6892B509F96601CAD34 -:1055E0007AAD2D619EFFAB0EC520AFAABB5A715C90 -:1055F00042EDB3CC2C3E9E4EEE54C732903F8857BE -:105600002590F75DC5E54FCFFCB6580DF2E7B39492 -:10561000C4719AB71C6C9D55B1EF20DFF55EDF7742 -:10562000F17995F6DD2EC6A7F1F53C3A2ED17AE256 -:10563000EBB816FB7F9696F8FBE7397C4FD5CF2366 -:10564000012ABF2A6DB49F0BBE7F6F5319F8F95B17 -:10565000D2D205DDBAAADB1690806E5DD55B66C935 -:10566000FAFB29E378B8CF8087F36B16231E9639AF -:105670008227400F54B68C1F15423F7F35C2F92355 -:10568000AB3F17E4F1E9B67B3D89EE913C6FC64F25 -:105690001BC70FB5BB4B75F8D1F0627EFFD49FAA34 -:1056A000BF7A10E4D466B741AE98CB5E78CB4F0C8E -:1056B000B7544E9FA7A8FE0E21DC94178F015DAF53 -:1056C00075627E5C72F85D41427DC12F89FD4CEDB3 -:1056D0002CBB730C7C97201CAADB181D5C0A6EF196 -:1056E000EF723A284FBC9EF14E8D0EEA884A19F6A9 -:1056F000A47C293A7880A8F63ED6D143076DAF95B1 -:1057000017C6E960BC333C7105EDF729D83FC37A71 -:10571000E3FFA4AC7AAE017B678D05F7BD4E3AD4AA -:10572000AC3B587D34C8E7939EF0D46B4AE3F5F95F -:105730003B8778F4F73A9E6EA6704800BFF1CE24FE -:10574000F453A892E2B1FFEFE8E7A324E760263A1A -:10575000CACB019F249C389EAC959AFCB6A4BA7A19 -:10576000FC5ED0A3275D055F4568EB3A47E86627F6 -:105770006D6F4CBB1FF5FCC99302EAE1E57F5A3A15 -:105780000CE4702FFBB73EF6D8C743306EF9F8C76C -:1057900056B4A7705C42ED1FD003986F8E7EC04058 -:1057A0008CB324DBCFBD172EFF1D13DFD7D5F66FCB -:1057B00057D6773E04E313BB4ABCDA797D054A66C7 -:1057C0008FFD07CC43179F97AD21AF1FFC5D810470 -:1057D00081EEAD52A819F20CADBECCD1AA0ECE4BC3 -:1057E0009C2C2F27E5F0E1E67CFA7ECADCDF7921EC -:1057F000CE67A3DF81D29E237DA18F975B3359DED5 -:105800001729D43D2F8073C8B46E883BD0F9F6E1D8 -:1058100037FF52E8B9670DEF379EA95DF405A0A3E5 -:1058200074F37B2D7F456A64ED695A73236BE771CE -:10583000D4C5952C4E7A68562AC24F5BD7CC5756A2 -:10584000E17D6B335FC9C6F34C335DC33E0178FE27 -:1058500012126B80EED3987E36D3C5435CFEFCA05B -:105860005D54AD74BCC3D6EE834EE08B1F09E85780 -:10587000DFF1DE612B90FC1F8E9EB4425ED45D9002 -:105880005844D7338B283233A223F8FE6CD2E1661A -:10589000F58E7E70FF697C3CEA32C3784BD8FEF30C -:1058A0001DEF1D9D086A948EB712CABBDE24328C90 -:1058B0003F6B9FD2C48E43F1F15EA1E389F1F17A8F -:1058C000E027D9111E71F8D8115EBFEF395FA2A28F -:1058D0007DA1832FDA2B1A7C1B006E147E33536755 -:1058E000DC484625E79799AEA19F9051F1F998E1E0 -:1058F000FB7768A2FCF68433B017F8AFD119781E95 -:10590000F867A1BD3B572AC073602FC2F34596507C -:105910005E16A5ABB38342C3FAC1BD1E9D89F7795C -:10592000CD7C7A1CF8E54A28295FC03CF879951FA0 -:10593000F2751EFAF169379E47D9FF412E943596CC -:10594000AEB5B703BFFD9B05EDCF2FF60DEB33AF23 -:10595000EE388FBBBCE514F9796BB6CEBBB83D779A -:10596000D73E6704EE41BCABCED2E35F015DDF55AD -:10597000C7F24F88D439EA56833DD9C8F7437A8FA6 -:1059800003FE82791C6D9D0773075C01FEE593633E -:1059900064F4230EBCF9C5EFAB69DD31C88E7EC25D -:1059A000DA344EBFE5CC6F7D322DE01C09F1AF3506 -:1059B000E97E95AE73CD6BA443A4703A38FCFE48E3 -:1059C0004529DC0B2D62EC6C7D6C7BB802DE2B660E -:1059D000F7CE78B95DBABEF3641BD0E3E96336DC79 -:1059E00077F8CCCDCE11AEB10673C18EFFA45D4E5B -:1059F00078FFD99FDD12CEB75DE81280CE6793B0F5 -:105A00001DE4C5BECEE9FD613E1E3FF102F99FDEF9 -:105A10006211D9FD685ABC252AB178BF2AB17A80B3 -:105A200097DE14FD7D63AB274DC03C8F39AD6F63AE -:105A3000329EA734F13D3FA92E365F7767FA64BCEA -:105A40007773828879D86E7FB700EFE57556C8F80E -:105A50007E58E8F3FDBC655ECC4385F741CEE75D3B -:105A6000E6FB3617CBD3DAC0FDEC76ABBF69021D7F -:105A7000A77D6D9A00F8D0FA292E26574E4FD0E216 -:105A800048618C23E5167A53E01E8BDC00323771B7 -:105A90009786F1BEEF6DD08FC559110EEDC35F8CA7 -:105AA000C23EF61A88AF009EAD8C9ED6AC1530AEC5 -:105AB0004AE13700F4C4270FDB6E8275E4350B5ED4 -:105AC000F0DD699970DE33DC7646E7AD8FA25F08C2 -:105AD000615A183777CBBB382F7792F5AE70B37B0E -:105AE000F23FB9047D7CE964F726E6D675F2FBF156 -:105AF000A2780F5E18E004F54029BBDF440A28FABB -:105B0000FC9838FF2CE7744802B0CF56592647203E -:105B10008E2036B7CF8075CF0EDBC80D747DAD42B9 -:105B20006700F8451D23F2FB9402C7014EEB36F4E3 -:105B3000C73CBC55622017F4B0FA7F64DCA73B1861 -:105B4000F86233DC1FBFB54C46BE381860E70D9FC6 -:105B50005C56D00EFB94EEBA8AB6D974BC88574610 -:105B6000C9D2504ADE1806FB94CB44AF40FB878372 -:105B70005ADEB6D7017431DAF2E5E422D8C7CB1683 -:105B800031A6745A60F736AC5C56E105BCAEF466DB -:105B90000A7AFFE5764E07C7D383B7BB287C7C0F14 -:105BA0006EF452338EF267C6151047549B65453B21 -:105BB000B70BF73D6470BC64748AD12A0FD65DF3CD -:105BC000D2E13E5D162F7DE8C6108B73C2DEE85829 -:105BD0008C73F23F1FE23593D7D68C706065D38A01 -:105BE0002AEC0FE364D171324AC5E8583AEEB6B4F4 -:105BF000C0568CDB4DB4239C88D4D506708A4C1CCF -:105C0000E0877B6D378E1BFA369C5FC938D23D1D0D -:105C1000F4686490E30FED20A756CA0AF079C6B283 -:105C20005377C2F334FF23F74299D1F8FE0320A73C -:105C3000D3BAFE568FCF27C986F862C6879F7D03E9 -:105C4000ED1941D910A7FC3A3DF81380CBD6E2708C -:105C500018EFC5048C66C5D7B16779E724B8EFF8AB -:105C6000F434D1BF8DB7E3BA3679236B18DC4A41DF -:105C70002F68705B252A1D5158D7543BD24721E924 -:105C80004479950DBBD983E378C9F870F512C8D76C -:105C900030CF679D4BE8B97F03EE09045C417E8CF1 -:105CA0009CCDCE15EE2DE9F4813DBF362D717CF2F1 -:105CB0002D377BDF26B238ABB9FD0D37A30710892E -:105CC0006D252C5F7E24942EA2A64299630F40FE80 -:105CD000F35E51F923D2F9468B02F881FE568ABF52 -:105CE000036F7C8EF1C503E177B17CC65DA4E5DD71 -:105CF00047B3E8FBEB4AD97DC7EBBC8C46AA9B991E -:105D0000BCA8F675D961DFA4BA9878B7717A533513 -:105D10003843BC8CEBABCA5B195C338B09EEFB429E -:105D20002C08EE9BCA827E147E99CDCB97201E490B -:105D3000A73A98F65B07E3027E1A45C2C6EDB22386 -:105D4000FF862DB8EF49F9FD2D886B55B6F6C77D56 -:105D50007F38360CE3A5F3EFA6F3F1DAE938103F0C -:105D60003CDD6CC17301907E03756519A565A4CFF8 -:105D7000EEF2223AAE52EAF5AED1E84093639435A2 -:105D8000E6507D01709BA3AA4B80FE4EDABD6FC02A -:105D90003C9C9B6C0AAC7FCEA6979682FDE2F47584 -:105DA00035837CA82E63F34D6FA5CFD1CE51DE8213 -:105DB000FED5AD36857D8FC3AF94D31987C35C3EC6 -:105DC000EFB95BD8BC1D832261A0CFEA6514AED0C9 -:105DD0001662740F21D18B22F2D51158BF5BCDC250 -:105DE00071FBCD30F18589FEB47555F275552E6382 -:105DF000EB229C9FE8B4A2306E65295BE71CC2DEF3 -:105E000017E1391D7F2E5F4FA5FA2296739B6D8691 -:105E1000F1B716EDE884F9E417CB0A9E1321ECBE26 -:105E2000C35CBEAEDC46F6BDDCE217115EA44E37A5 -:105E30005F8CABEAEA94AF4EFF9632165C0A00071D -:105E4000D8E8B8277F2CE37E4EE126E3BA4EAF1E9A -:105E5000B6BD95B67FF4B08CFBDE7B45FFF13CF41C -:105E6000476585C91FFFBB53404ECF6DF4831CDFD0 -:105E700053CEE07FFA6612017A187224980EF01E53 -:105E80007224C4CB5ADC4FA700117AE41E9D1F7503 -:105E9000999A059097B1C1CFCE033950C6EE231F12 -:105EA000A49F379D5F46735605E4436596A557C882 -:105EB00078B5ABA9FDC863D345683FFCD8BDF09D5C -:105EC0006CA25B0F6D973D83D97996C3B415FAD553 -:105ED0009D7A10F0D1CACFB90E8199A5637918CAFD -:105EE0000CCADF2DE9304F894C2889CB839D0F8F59 -:105EF0001D0D7205539E4AB08C9292DE7243D77F7D -:105F000038EFAF0A09FAB93D8AC13FDFF9F0F5C3AE -:105F1000C18F5F0776622ADCC7E6FD12F27454BFB8 -:105F200088705F678DDA8B697D15B51BC17E595FFF -:105F3000F4BE087CB76E1FF1037D6404FFCBA6C7D7 -:105F4000E30D6EF6FB3C924C5A80FF0F0E3F350975 -:105F5000F0143940ED4EDABFE237AEC79C600FFD5A -:105F60009EE5C1B4FFB616F5F7FDB972C2FB78C95C -:105F700025EC4473FFF421D3319E97B76903DEEF1C -:105F8000593D49F2DF407B676E2A2F073B46095295 -:105F9000EAEA4FE7BD65F4726042650ADB2F5326DB -:105FA000B1E7CA0456B6D41F7908FCF6F02E29A52D -:105FB00090CE77C46A76AF584BF117F610B54B4BBD -:105FC000CB9FB7DF4C9F7F5C4AB5207DFEF1B55F6C -:105FD000A4C0FECE93A5151900CF7DCD46BB8EC0C3 -:105FE0006557D41F1A690B07DC745EADEF1184A7E7 -:105FF000C5166DABA475CB4B2EB0707AF939AB5B7F -:10600000DB67009DCE2992316C6F5EEFFB5C9FCC0D -:10601000AEEB9E04F7EBE7AB84C5F7C38FA2509EAF -:10602000CB4546BEDA8942C7BD89F9276129F03AD6 -:10603000C8E570714886573479D63AA4F22990673A -:106040007FE2761DA99D87E7C890FF2D600F7597A9 -:1060500027F29B4A5D0EEC7F7ACB2D1F409C7A4E37 -:106060001DB3F7F3B67C29203EA8DD974DC7CF2B93 -:10607000C5AB06C99C6561FB48C04FA1481405E645 -:10608000D341C04F0853FDA3878336EE7FF7FD252C -:106090006E1BF26129D8CEBAF5B8F87A72FD743D5C -:1060A00009F47409FFEE8F9EF8F2C03880FF32E6E3 -:1060B00022E5854F0876DD3CF2D4CB9BC755301ED8 -:1060C000D8AF6E2F8EEB2EEDC2FB5CCCF21DCC79DF -:1060D000E0DBADCE73A3997F6F94A7BDEA9CAECCF5 -:1060E000CF734DF26AA4ADE346C4EF1E76EF35647C -:1060F000C442BB404485DDFB19D1EEA7AE857E23AB -:10610000DC2E2FD041EBF0F74B003E6BB9BD30B722 -:1061100098A0BF3A37A713ED85D98DDC5E90FC4D72 -:1061200020649D5BD2C81A9DFD80A612B8D08DDC7C -:106130005ED0F43FD7DBD5BECE66D4AB8DECBC5F72 -:106140008F9DA132BD9AE7637ABDBA997E47E1C4BB -:106150003C566F97303DAE6CE2F603D7C319FCBBDB -:1061600099CD4C5F65801DE181340815F532EE61F3 -:1061700065C5ED967EC54C5F66B4EE45BDD6013F64 -:106180002E3306E406D39783DE3EAA02987CF47190 -:106190001B95D38FF3769F97DA67E971FB6C95C8EF -:1061A000F79B08B30F31E79FCEF321E8AFB31B771E -:1061B000F0F9ED3D9C7E13C8D79DE1023C57AEF14E -:1061C0002D463F693DB794E5AFE4D6B17D72B7BFC8 -:1061D000EA29FDF9B3796E76EFD03C8DAEEAA23EA6 -:1061E0001817EF8540392E637C7135B59730FEC4A2 -:1061F000FDAB6B5C3CAEC1E927993ED1E4909B04BA -:106200003CC514BE1F479E4279AD527F09D6F67138 -:10621000B861C0DDC0EFE169A530FF75E3BEC2FC27 -:106220008FBC24FEE29F353FF35BCA75F7A4A3CC75 -:106230000FED14139EEFC9F1B0F84387449C00CFD3 -:106240009430BB472EA54C4ED83FD5C3ECECCF398C -:10625000DCD68D7B0ACF6726D5CF12512D09F4A944 -:10626000A66F5B01CFD7D0FEEE379A54F4D323410B -:106270000BCA57767E314CBAD08F548B648C1BB6C8 -:106280005AC376C0C7FA528E57AFBD1DEEB7F9D6C6 -:1062900078A1F0003CAF0E8811211FF01CF18E6434 -:1062A000711D3CB77C9AFAEFFAFD8AE11E91C34951 -:1062B000C11FE6CB6B66F4B56E9C8CF358333AABDA -:1062C000DD92AF97BF02979FEC9CD89A71AF237D68 -:1062D0005DEEFCAAEA9EC57B3FB4E7A7363F5D00B2 -:1062E000708EDF7F11E8F33C4555DDDF36ED48B0B9 -:1062F0004FD0D30E7E940BFCC0C81D867D4D8EDF23 -:10630000091ED1107703F96A45E7223200E24B7B80 -:10631000C6473CF01E59C6F66DE7F37DDBCF77DC50 -:1063200082E7C94752B2B226C0FB67F5C6F3EA9FBF -:10633000ED7C7A008B6B440C79C2F39FFAF908C3A9 -:10634000FE7080289963F915ACC0EFAFFB559B2513 -:106350007EFF800CBF57007176E0E0C170AB620732 -:10636000962EE05F5A7A4837965E504783C14FF2C7 -:10637000639949825866915A2C7D248CE500D2811C -:10638000650EF8B983412F7463A910AF487472BFCA -:1063900080F8B15E4882584A80B78CF8BE84B4CB8E -:1063A0008EF91BB07F017C9FECDC99DF53B9C4836D -:1063B000FC5D7B25FB1D23B65F31DD13B8C78378F9 -:1063C00088A2FC9ECD45F991E74674C0F9A37BD61F -:1063D000B2732F9A7C47FF867EE7D974A60FD48DBF -:1063E00002CAB115CEA9DF4578B65ACFE8F71B88A7 -:1063F000DD5E08BF0FA28D3B9BC71966733D08E1A8 -:106400006E767ED08FE7936643BC41D74E7ADAD959 -:10641000BD34DA38A2F3DAA17DEDF7E9DEC7FCE896 -:106420004A931F7049FD6DAACF31BFFF359D50566D -:106430003C1EF7EC77955CA457AEBF294129F85E66 -:10644000B3ED04FA63E189013D5C9EE17CA0E9952E -:1064500039A67C0F733947E2FC611A876AC0343869 -:10646000D78B774AE8F85BBB9F54BBBF677E20247D -:1064700067B3D77C80472F9F77986CA9C8A6E5A7FC -:1064800050D7C5F78FA6865EF2E8FC116FA056D4F0 -:10649000DF77B390F3E3444B6B39C8B9D321E207FC -:1064A0003F623EA9F57C07E2F9472D28E706D2793D -:1064B000CBF07B2FB0C1918E75157EEFE56C3D3B27 -:1064C00027748ADF33FC14DC4743CBBFF07B85475E -:1064D000B62D9D0A74F039BF5FB868DFEA20C47D2D -:1064E0004676386781DE1FD931BE1ADA47EEB2B17F -:1064F000DFF1E172429B171C7377A4E33976D59ED6 -:106500000EF284A0DE3DDBEA88C0EFFF9CEDB0B068 -:106510007B558B45BCBF0CAE21B4F0F9A5A6C3F7E3 -:10652000FEF387608F7CCEE5C9194F1AC397A40A82 -:106530006A26A4A5103FD8351B9C8BF01C64952BB4 -:10654000F2D46399901F6EF7AFA0DF3FB0F7A55C60 -:1065500078FEA87311967FD9FC412EC8ADB3FB3FDE -:106560009013D16D8D1495213EB5609F20C2FE49D8 -:1065700079C72C19F647AA761FC0B8728D3784EDFB -:106580000BDBF6627DC2EEB771FF6470AA82F33A4C -:106590009B1DC2386F619B2D0ABFC7B1A7207C77B6 -:1065A000C27DFB54A66736385FC5F11F75BEFA3A47 -:1065B000C265B30DCF7F1CD8FC1B1CF7CCFE97F82F -:1065C0007C09E60B9E4DE938FE13D05F7BF9794CD0 -:1065D0007BA7471F0F965205837C3DEBE6FB5E3998 -:1065E00097E8C7F30589ABD3C3E452A707F6CDAA52 -:1065F0003A181CFE628DCA60472EE81014F83DBDA3 -:10660000F2DDED781E70C13E3B9E975800F000B859 -:106610005178215CDA0EE0FC0B002EFD601DEF626C -:106620003E7EE13E0A9751F1752F7085905FB5F57A -:106630005238B075EFB9149E42463CB5BD2D435C4F -:1066400066E13E01E1B770379B47D53E36AF09BBE7 -:106650006721FECFEC270AC45B4EEDFDE07358CFF7 -:10666000D9FD76BCCF579B17DCB7E02901FE6174DA -:106670004AF631B9AAD9DD35912CFCDD819EF6DDD3 -:10668000EC7749016429945E47EE9B86FB82A54026 -:10669000BCC0FFDE8E11ECF705C3B900D73DE3A304 -:1066A000B930EF33DAEF2349E15CC08BDF132A4DB9 -:1066B000D5E1E3B3132FA15E2C126BFFFC20F0F1A8 -:1066C000F3EC7738967EB841D4C3E33AF841AA3167 -:1066D00000B7B73C08B79EFB5BC22C5F8A84901F53 -:1066E000AB383F9E6DA77E275DFF676D2F60FBD99E -:1066F0006C637ED55FDA0EA503DC2AF9790C12B93A -:1067000005E511854BB33D819EEF39D71661E7153D -:10671000CF09FC3ECD2734B8D5CAD30DFB7C4C1E27 -:10672000E66CC93F8C7E4624F13947B39D64BE2F89 -:1067300035593EC0492ECF3EE6F774697A77BA27BD -:10674000342BB55FF2F3DE952D35B900EF4A381BD7 -:1067500089F79C1EB801E215786E88DD931A05F85A -:106760009CEAB907F5A51B20CFF4541AABD7A57640 -:10677000AE02BBF69476AFAAFA1A7B3F9FB56F8242 -:1067800076DAFF394FB03695D9F702FB7D1F6B1AC9 -:10679000FC4E83A63792C3C1F83B0D4FD3B5025CC4 -:1067A000E8783FC1F1243ADEC87F7E3C4D4EFFD3EE -:1067B000E3D8FF67C7D1F417F027A43E12BF7FC408 -:1067C000FF04FCFEBBEF93F05C035F5DD83CB809AF -:1067D000F6D1CEFBD83D30B6D6E504F4F9DC4D1B3E -:1067E00012FEFE5B4F9DE7E5C88329BFE9F8FA4832 -:1067F0002AB3CB8F70390D7FB0BF0577E5A05D4C14 -:10680000FF5AB3307509FDE761FC1EF3221246FB07 -:106810007404E9C0B2987462398A746389DBCC83EA -:106820002154EAC7F2AFE55D6361F10BEDA1275397 -:1068300044CC3B780DE4D0D941A1A7E1A2B615CE56 -:1068400045D7C0FCDF48F57278450DBFB742F4BFAD -:1068500087A1803D38C5D7973D48BCD2999EBC974B -:1068600002BCCFF6ED545C5FB2DF515B62BAF786D3 -:106870009D0BD7E050433A308FE4B52DF7BC319CE7 -:10688000C2FFEEDD6EB493876E695C02F2FC6ED2DD -:106890009905E78487F27B44481BBB0F47BB1F6405 -:1068A000789BCDF83BC2A6DFE359C07F3F6B81F9EF -:1068B000F7A9F839DC167890201FC37C8EF7AFA9B2 -:1068C00089EF7D21C5897F0FC57C8E77778788F911 -:1068D00051F740DE95CEBF18BEA3D666A42FE5DFE4 -:1068E0000AADBABAE067F108B723B053E8FD9DFFDF -:1068F0000B82D8B2B4008000000000001F8B08009B -:1069000000000000000BDD7D0B7854D5B5F03E3360 -:10691000679E99849964924CDE131E21C86B0221F4 -:1069200045A47A122246A43A3C6AC15A9C8040800F -:10693000BCA068B1C59F8144081425D488400107D4 -:1069400044C5FAE8A417E561B00344448BBDA15ADD -:106950002F522F1D901F1111466DD1F66AFDD75A87 -:106960007BEF6466480AF4FADDFFFFFEF4B3877D2F -:10697000F63EFBB1F67AAFB5F70C77288CA532F668 -:1069800082A2DCE31DC4D837F87753D773AA5DC75A -:10699000D808067F8D6C5C31630DD5AA7D15941ADD -:1069A00002564DEF84A75D1750F219CB4A2C33CF16 -:1069B000853273E8ECFDDC8C8DD58F3EEC86F6C617 -:1069C0001A75B809CAEDDBE67618F07B97CA4C3029 -:1069D000649603FA8532CBD005FA41B9D1FE1BC7C4 -:1069E0000C18BFC006EFA19F1C3B0BB8A1DFFD5BDD -:1069F000EFD761B9A19EB1741C47F175B8E93B9519 -:106A00003D85D362DAF8A234C6F2F09F308ECA56C2 -:106A10007FAA4F62ACBCE6B4256C83F7E1CAF16C87 -:106A20000863A5F67C5AA7FAFEAD1F6179CBA25385 -:106A30000E1F8CF7C6D6E57F180BFD1902302FE824 -:106A4000A2F0EB86E36361BCC85623DBC6BAE090D4 -:106A5000BB583D1536D380EC1BF82F7B616CD9C831 -:106A6000A05C28CAF9388FA87A280F17E333368537 -:106A700085D2B05ECCD7A93106F364769BF3CC40C7 -:106A8000C66EB22BEC9BDE5DE511A2BCC3D05C668A -:106A90008579EEF84FC5B314AA0F6C9D9587EBBBB3 -:106AA000B4C7976787752C32270D61BD2EDF3F83F2 -:106AB000DD2DF6CF6FD1B9F019B2305757FB01DB9E -:106AC000EB4D3EE8A77109F39CEEC79839D06E1DD7 -:106AD00088FB78D8E081227B4861538250AFDA98F6 -:106AE000168471860B7C897F3EB4C4FDBBBE86AE26 -:106AF000711FFA7AD214DCDF48A255DBA65C3E2F68 -:106B0000F99D6A77FB717F0DD9CC9300E3199C1D29 -:106B10009976F86EE02EA3C706201BFBEB41BDC2A1 -:106B200030EEC08353993B91C30BE7AB2E327A4EC4 -:106B3000A730665AE4F4A8C3B19D8DF0F1339B31C0 -:106B40006042F82FFA7933D6376C2D71B9A3F07AF9 -:106B5000F912BB4785796E5A62F6A8B0C0E5627D2E -:106B6000F1F3CB71E8BC01F8CEA8633EAC5F00FB4B -:106B700080705C604FA0E77C51DEACFA27E2FC3706 -:106B800003FE2C457C5DC8F1774186398078BEE0F4 -:106B90008D3EE9AC1BBA92CFA797B83C7D611E9B96 -:106BA000164E7731F8B4747EBBE51658FF8244B3B5 -:106BB0001DF1519F54F0F868C4F7370D0CE9AA2174 -:106BC000B1C43D23AA3F7DD24817C243AFF3673219 -:106BD0003B632BECD32AD40CC417FF46E6616C4D03 -:106BE000F3CDBC9CE8CF54A0FEF1E65B7939D5BF6C -:106BF0005181FA279ABFC7CB39FE4C1D949F699EDD -:106C0000C0CBFDFC1BB1FCEBE6EFF3F26098432632 -:106C100063BB9AA756F861FC0683678A07C67D1195 -:106C2000E63F08E61F14CF3D76BEAFB2FE37F81E32 -:106C3000E0BD533CE3EB5F16DFEDEEA17EAFA86F46 -:106C4000EBA1FF57C577A11EBE3F20BE6BEFE1FB56 -:106C500043E2BBC33DD4BF29EA8FF4D0FFEFC57731 -:106C60001D3D7CFF07F1DD3B3D7CFFAEF8EE580F8C -:106C7000F5C745FDFB71FD9F10EDC3E27D7662D344 -:106C8000713FE05D36F02DFC2B4C6C4A46BCDB546A -:106C90005F4CF8DF3002F07C5017BE672BCC8BE5E1 -:106CA000210E95FA1B82FC189E6F8BFE4BE7F75D59 -:106CB0008378B7E02DBD07F1B041F11CF341FFFE31 -:106CC000F93A0FF2DD056FE8399ECF57032C8ABEE3 -:106CD000DF8E9BFF1631BF4631DFDFD97B13DDE44A -:106CE0002D7279C64B7E89746F8F2D9B819E3418CF -:106CF000BFD1C9E54BE1FC32737F941F205F906FD9 -:106D00003E6433864C30FE437695EA1B9D6576AC37 -:106D1000F7DB55923F0F39CBCC3390AFDA80D99562 -:106D2000C07876DE77A35DAD0820FF709453FDD860 -:106D30005F8FB7231F6D64114729AE6F31C815F8F7 -:106D40007E7F7D19BDCF73FCC581FCF968325F572A -:106D50007BE2214B3EB453EFD391BC28B0AB24C7A8 -:106D60007A2FD605DCD0A4DDBE4087E5271BB9BC51 -:106D700082BFC42218BF2F1F9EEDB8BFE4CD42943E -:106D8000670FAB1EB79BBF53A3E4415F94574938CD -:106D90006E728CBCDA5CCC34ECD7EF32079E827E0C -:106DA000FBAACC9592DC05F73C879ECB17FD780FAC -:106DB000CAB53ECDB1F229BF294A3E319497B1F20E -:106DC000295E5EE5D4037F8CFADEE4B2C7942D8E93 -:106DD00044924FC0633CDFC0D00B5A17DC62655D44 -:106DE000FC3A5E1E3508F920F96EC3D7C363E4830D -:106DF000E4CBF1F2E1CAFCF5ED5BFB131E02B772C6 -:106E00005F99CFBE8D7800F867F029243F98EA7328 -:106E10007913AF0C2F83C16BB7DBAE0C3743EA3B62 -:106E2000A457187C2AF57F995CB9025C653BA3F9ED -:106E3000C9CDA741AEFDE5FD9F14322099E5001BA9 -:106E4000DAFF545DE0295877F6A2E73663FF5987E9 -:106E5000AC8D0867A36BC6E6465C4FF3E38C013E3E -:106E6000E9CD1C9F8C196576FC5ED569AEE43E5079 -:106E70007EF6DDBB14C0277D4ABD87C1BE1D7EF1F5 -:106E8000CDE4DB107E6F1988CE4D3AAF9DF5A1E9B8 -:106E900010BEADC8B16E5D4578EC33239CB27798D7 -:106EA000490E30FFF6951A2075036C071B85F553C4 -:106EB000566AB0EE1D4A67F9562C070346DE1E5887 -:106EC00034FE5FAB4E11F54C535DA4778AFADF5464 -:106ED000948F86F6AA7DA00A7267C1DA979A0C3958 -:106EE00058AF93DF6B6C24AC17C7136515F6E7B981 -:106EF0007651EF3FD8540E44D46A94E3333FB66FD3 -:106F0000D5E978D9DFD684FDBF5026BEF73FBD5204 -:106F1000CBA6F9DCA67740D1F17A93EDFAAEF9AEC3 -:106F20004D7EAB6929ACEF1377380996C16AB69EDE -:106F30004E43F9BC624ABD17E18688EF0599D84BEC -:106F4000EF263CEDDCB79D13FC59507BF1D0DF936D -:106F50000641559D3E7C2801E057B3BBDE6C80EFB7 -:106F60004D06AF3F2BBFEBBB9A9D95A4CFD4B51573 -:106F7000D1B39BEF0EABBDFFA5EFCCC6AB18EF9323 -:106F8000D01F6A9F87AA1A7D7D934D4FED19DFFFB1 -:106F9000EED727BFFFE4F93FDC89E35D7087D3C6F6 -:106FA00041EB1521804B37DFC9F6B5BB27D0F3582D -:106FB00082B6C601EF6703EF227EA5D67BB07DD0F7 -:106FC000DC6CF700A02D86662FCA0D007D4037B21D -:106FD000EBF90B475F6A1FFF3E9EBE826696321E2C -:106FE000F978B54A722A68F6270C81F26AB043969E -:106FF000C2949615BD3B6C10965FB231B44B1AAA81 -:10700000DB5D8390AE3C4686FAEEEAEB831948E7F7 -:107010008D35C629DB117F430B5C33A3F4ADB5C9B5 -:10702000069AC7CAD780EE86C2D3107428F87D3F6F -:10703000901B0AF2459F19ED1C4B4632F3E7633B68 -:10704000DB6AA4CF95065F4519B6CBD0917CB1F42D -:107050009B5C5106F370A5EA143DCDA3FCD82C949B -:107060006F76234A50762279FA6E84D373AAA71ECC -:10707000E9F0399BCDEE870AE0911AF23FB59F33D4 -:107080008065939ED5A31CCF2A02791EA5C79E10AA -:10709000FCF384C348FC6EB52538A114FAB12ED098 -:1070A000D9FD30DECA9A751D63619C5FD6BC7C74C5 -:1070B00029BC5F95A6329C87CDA9868C207F0CDFEA -:1070C0008339C2BC5F58EAB5237F8DA4AA6C1BD458 -:1070D0005BFB1A993B8A5FD90641398A4FA638551E -:1070E000CD02DF7F95ECFB77078C3BFCAD77CCF8CE -:1070F000BD6B844E87641354F93E2715C7F6631F92 -:107100001DDB4F72796CBD737C6C7DDAE4D87AD765 -:10711000DDB1E5CC7B63CB5324BE01CFB1813CB65E -:10712000F22A660D7FBA04E52DC0E73D84BFB54065 -:10713000E741F8586AB69F9D05F559C84FD01E1A09 -:10714000C248EE1EC8FDA91BF5025372BDDB31E833 -:10715000727864E5986FC3FDB2F555ED0CDADBDEAD -:10716000FFE86BECDFC6A2DAE5237CB488239597B1 -:107170005D309F44FC871BE15DFFE707512E1ED564 -:107180007B10DE59352A8DFFF0647740CFF5091763 -:10719000EA3349A27D927975871EF879D2FB2BE7F5 -:1071A000A3DD1B0FD73456AF205D027E707BBB92F0 -:1071B00091FC58A1635588376823607FA41E01BFE6 -:1071C00098946224389992156137AA3AAC4F13FA11 -:1071D0009331E35E0BD2F1438738FE3F64E4FD74E4 -:1071E000F6E7A64111E519F2C994645D4C3FEBEC5A -:1071F000A28D28A73A78B9B53DF936A4CB759393FB -:1072000087219E98D0EE82FE7A659BB501B03ECB79 -:107210001B46BF029DF65259BB01F6B2D5CAEEF12C -:10722000C23C361CB6FAF5F0DE32F31776D4D38AB8 -:10723000C5BC5B9779DE463E10A954098E96D4668C -:10724000FBB0417C0D7E981FA203CAC5D27E2DA43F -:10725000E7594A9B49BE5B8A9A9B114E1BC6EB4875 -:10726000DF48BE5747F86CC9091EED8B7E82993AFC -:107270003BF6970C82DF089D3C9ADDEC45BF090385 -:1072800098EB4A38AA60BFB442182745C0D5E9DC5C -:10729000F91305FA49C1FE86F0F608278780D3E87E -:1072A0006437C1DD29FA4DE90BED87F07E1A4BBA40 -:1072B000FA91FBB8A18205707E725CD94F67FF4CD2 -:1072C0005390AF1A7E0770837D5272CD34B987E632 -:1072D00032B28F5B9779EBB7125DDBC8CF91E9CC07 -:1072E0002E433CCA3CBC71A26E087E67A5710C336C -:1072F0005900F1385365E61B9351BFF1121CE3E9C5 -:1073000035A3BD7912EAA9725FE2E93743654DFA08 -:10731000E4CBE938C3E92C2B18D20D3DC7D14BC6BD -:10732000E1C87D88F4F174BD25E14211C28545B7FD -:10733000D75FB9ACD7078FA29F87A5839C00D0E702 -:10734000C68DC7D83F4C585698CEFD4D1FE4FB0E56 -:10735000E1BF017905C4DA3ACC3EC686743A9F1182 -:107360007E95ED5A7DD7EFA0BF4BFD8C76942B39DF -:10737000879B3B503EB2DDBEFEB80F9B54DF130926 -:1073800050BFE9583A43BEBDD2C2ED3155E079BC99 -:107390007C592BE8C68D72CEF5AF3FA57E18EC9BCD -:1073A00036D00EB4B7F617156F9853FF07F52CF6C5 -:1073B00002E959D9ED1D4B6D38FEDAC34D6680AF39 -:1073C000E52DDEBE19CA7E15E1574DFEAC0339B37B -:1073D000084EEA7113433C1DACD70258667FB230A9 -:1073E000E4BF3B5EBABBCA8DFC276D9C1BF9D0364F -:1073F00041EF01619FC5AF5F356A3ED427E2DF6F81 -:107400004CD689FDF49EAD847D1CFCA491AD82CA4E -:1074100042DDF426B4EF222B81FF42ED74BDBBF6B2 -:10742000E751F6ED23D6D26032DA254BCCCC070AF1 -:1074300073F6970AF30171E638FF508AFC279785A7 -:107440001494B3B9F5A0F0225E2DB4325F14BE6778 -:107450007FA952FB47AC5A3079047F6F063E60E04B -:10746000FF64CF257B59A593F328D45F0CCF5B4FE6 -:1074700022DF60CE72ADD31EE98DF80B721FC6DB22 -:1074800027D66D00181A86C17F365DC834E4F2F63F -:1074900007049C54B32D84FC52B51D3946FCC5AE7F -:1074A0009E8F6E87763731B16A467E59840B957F01 -:1074B0006CA77216F05FD330D2FBFD687FFB93B8E8 -:1074C0003DC234CDED4C437A6104E46C336B3243FE -:1074D0003BC276A0B70CD66121BDB99DB9911ED033 -:1074E000C3762681581643B86E62AC229A0EE453D6 -:1074F000FA25D4457AB2A7061EB4D07C0CF52C60D0 -:10750000417D08E706F05617B2809ADFE5171CE2C6 -:1075100070D37746564FFAEC0B5F9FC8443E6D3DE3 -:1075200004FAD850DC671DF129AB3596FE185B4A8A -:10753000708A08FCD8BCC44EFBDC69BFF9DE11FBC5 -:107540001C5E8AF222776172CCFECA76D95F663100 -:10755000DFF0E87E03D46F76DF7605FD32D95FE693 -:1075600052FDE625EE2BF4DFBB87FE33088F7AEE63 -:107570003F9BEA3787DE71DC0EA0D814697778DD8F -:107580005DFA753C9CB317C6F2E5A1BB63CB122E26 -:107590001683E69C0030B7DCA7F36C85FEBE732C27 -:1075A000B65D45FE1FC9FEED6A1F724EC2F6609FB2 -:1075B0006F85B7379C8D6DEF2D7DCD8174DCD59EA9 -:1075C000CFEFA62F63DBC5EF4FFC7C615EA9DF8F99 -:1075D0009AD718B329A67E4AE565F34AFD41D4BC83 -:1075E0006E71C5B6F72DED7E5EB7159AFEE9BC64E7 -:1075F000BB3B465E5DBBF8754CAA30F50077DEFEFE -:107600000753AEAEDF1F56FDF376F72C8A1FC74F28 -:10761000F8BE40A78D4981FAE9F80AF5459B95F433 -:10762000DECBEC2C219FC6A1E201DF7992B471F888 -:107630005D85A43BE16738FCE275E9C8D7B3841FD8 -:107640009D09BF426BB58BFC0A3ED11EE44923F273 -:107650008BD61DF05D129F57B4FE9452CDED0A3BC0 -:107660008B103D4B7D2999D9156E8F737DA7A7711E -:10767000E2FB7F18154098EF8C4563D80740872FB1 -:107680001BEDA52ADA675B14D20766946BFA44C037 -:107690008F514D0AF995663CF0F6A3E88FB9FEB418 -:1076A0007B7718DECF08383C386C6D07D3304E90AE -:1076B000AE9F5FF4203C1F3BC0288E86E5F9886FA3 -:1076C00036CD8DF64625CE08FA396FA82FB223DFC6 -:1076D000FC914D43BE5939597B8FD6FB156825D097 -:1076E0006E265F3ADBD532C188F18ECABBDD2351ED -:1076F000EFA90C5A347A9A996A857554823E86CFDE -:107700007423532DF8B432333E4B9671FD2B69A48C -:10771000D75809E357B63DF357FC6EB61ADACFF5E2 -:10772000C900ADBBB2ED8DBFA1BE3653F31A915F58 -:107730000CDC61E43AA9C087C1C1D832F283E87297 -:107740005128B63CFC706CF9D3140EDF51C28F7512 -:10775000609F89F8F6BC8FADA47FEE05818776B275 -:10776000FF0513C98F31F36CB45F1F9FB36E45BF24 -:10777000DEFEE3566A3FF7390B6FAF0BBE8865FF3D -:107780008B096467CF4B099624C3BC5FF95A4FF04D -:10779000C66519B0FF17076C5D85F5C383251817FB -:1077A0007BF93AC63AB05E0D0CC175BEFC0FEEB760 -:1077B0008E3C6B0A6C837E3FDEF3CC8B3FC3719FA4 -:1077C000CD4A56607F6E40B900ED463D69B6A2BD18 -:1077D00031EAE3E7FB20DF98B7C314B3BE175314B5 -:1077E000A13FB89310EF7AF23B9E5AF90C7D5F7877 -:1077F000F618E1DD5E835F87713CFF4A8E677B2D63 -:10780000DC4FBAD7921BC07DDA97C2E9EA06DDB633 -:107810005FD6A27EF916D7437AEABFD03563737973 -:10782000377EC6CE7A18371FF6F9E247D67BD01FCF -:10783000D77F7DEC3E0D08C4965F4BE17AC274168B -:10784000F53E1FE7D37BB90BE7B395D17C0ACFBEDA -:107850007F573EEAE326AE87C48FFBFB142E3F7FA3 -:10786000F52BE887F3193DD7C3016240D7F3043DF8 -:10787000BCA2703D18FE166601FECF4305A277D765 -:10788000FB7971F390FD2F1570FADC9CB40DE5B90E -:10789000D3C8F1FEDC92C38F621C53B63BB344D312 -:1078A000CAA3FCCAB3D6CF3F9401FB5FDD9A4A76E8 -:1078B000A67C5FFDECC1B41FC2FBF33B540FAABE14 -:1078C000D5539F7E6414B67B561FC47962BD06FDF6 -:1078D0009F0FBE9684ED666D720C437F89FC7EF629 -:1078E000FA9BB5F2287E7AADF424E9BF5AD8C7BB1B -:1078F00046768CCD0278CF5BAF78B0D9BCE0F72765 -:107900007D0F759D4D7A0FC6374A54E6D50F23D3A8 -:107910007D323EAB5B5F3A9409F575FB4694E0BA65 -:1079200056E9BCB70D467AD962203F58FCFE189D37 -:107930001C7FE1FB900EBE5F75A7AD0AE322D06FFE -:107940003B960F146ED3A31F3FE92CF037FEFE9831 -:107950000E78E6D9B6878680CD02786C6B42FAD86D -:107960008B8E0B1CE7053DC90916E2EB1825FCCFF1 -:10797000F3FEB3C5A8C2F3ECD96549A59CFE689F88 -:1079800090A93B617D554F0E267A9DBD3E96BE6403 -:107990003B39DF3981D8FA78BC28704A7F052B8CB7 -:1079A000C6AFF87629E3FD46A4C7EA45C0CFA3E8F1 -:1079B000A6FA74B311F5AEF871508364725FF58462 -:1079C00097CC4DEBB5F0F582CA6B86F59EC37F71FF -:1079D000BFB98276FD5C8596C8E65DC7CADD00CF7B -:1079E000791359053E253F3C3F323804DBEF35849F -:1079F0009FFE25F1C144E207E7EDA124F42B650ABF -:107A0000BFDE79772809F9DC4511B7C37A2CCF6D31 -:107A100003790074FDF12746920B4B83079370BFE7 -:107A2000CEBF68D1E9605F3E6E4D29437FD0F9E05B -:107A3000EF92705DE7822965E8D7EB894FC4F33791 -:107A4000A90F9CC47F5E0F7A8F531BEB44F86290A2 -:107A50002103E44D4A7D517D37742FBF731AEB8BA0 -:107A6000304F23F2239B671B8713C5F33E3B9CB229 -:107A70000DF75BF2D94A85F72FBF9FEABC3ABE5A91 -:107A8000B16A00C5993E63EE5EC8E7EF46DA80F959 -:107A90001DDE5FD00BF50DF9FEC134EF3D4EE8CF92 -:107AA00055D641F901AE71CCD3004D3FD07BEEB736 -:107AB00003FCEF6520FFF059EC3392DFA63195D639 -:107AC0003743652115F07D06CAE72154267D68C637 -:107AD0002625D000EBB977752CBC66B598BAF004B2 -:107AE000FE9BC380B122216E8A6A07FDCF41390C0B -:107AF000FB30D7CC4209D0EFDCEDB1DFCD63219A6A -:107B00004FF5F3DF98BADB8FBF8AFD78304D5B8489 -:107B1000FBA14C34D3BC7EFC824272D229FC9591ED -:107B2000C77A0530AE364FCAFD77F8BED53D50A9AD -:107B3000DD0BF87771D10CEDDE144A3DD1501F6199 -:107B40002D8984CFF3CA592807E637AF4D090D4E6A -:107B5000EAEA8FFD46E1761EE3F1CEBFBEC3F7F140 -:107B60002EA13FCD84D7A88FDCA0E3793D910D0AEB -:107B7000C9D751CF2BFE44E0CF33CD602A229F12CC -:107B8000EBC6F6BDA03C9BF9094EBF74E6D3FAE6FE -:107B9000B00E23A7A340431A8C5B7B167813BB1A45 -:107BA0007CB89EF6FD73E6A17DDF82734E457C288E -:107BB000213C91EF414F6296E4CBBFC7FDD3A2E0D9 -:107BC0005DB529B6CCB647957BE3FE40396ADF6ADE -:107BD000777E63D2BAD9AFC73AE55B60C084C1D1C2 -:107BE00074C2F5F013623F1FFBFEAC0CE44B6B500C -:107BF0009FCE141D8C443ECEA49F256486FEADC34B -:107C0000598CDF05F43D2ABFE2FCD1B8F5D98CAD23 -:107C100033F8287E3143EF3D84A1B6A274DF6F11A3 -:107C20004F66E8B45C95E0AA1590FDBD88E3C3E318 -:107C3000C3EA07D4776377CBF9AF5382211DF2A74C -:107C40003D5C5F492C8E187C5174FF9EE0BBBD0EDD -:107C5000840F6521DEBDA4509C6083C21A1580B3D9 -:107C60000BF619E5D306E5E42194671B6E75B306A0 -:107C7000A82FDE3961FE6B64BB5B29CFA86667A9BC -:107C8000BEC646EBE7FA7342FD561DD4A7DF533854 -:107C90000CE90DD67DCF44787FC2E9A67965D83846 -:107CA000FEB896F9F317A09FF88077FE6B8877836C -:107CB000ADE48F4B07582526D3B309F562175BAAAD -:107CC00060BBE5A90ACF83A864537E3388B059ED21 -:107CD00095CC9FC7E0A9A8AC11FDCBE92AE8D9FC57 -:107CE0007D238EF358129F57AA4E7FCF04D4F3877B -:107CF000F172F26245DB46F26C2DCD2BDDC42A70A9 -:107D0000DDF81EED029886D64AF5018253FA98FAFC -:107D1000229C477A1FFE741A43D9D8CF914E3CF16A -:107D2000E9507E2C147AC0C2AD65E9C8EF8F9C374C -:107D3000ABC8D78FB8A43E1BB2A13ECBFA16F2F661 -:107D400042DE2E2C1A938E44EDCC8D6D77D1A0F5AA -:107D50001A8E72EBA89EE24F7FB169BD1CD0EE0671 -:107D600023EB36EFAF572ADFD7BA2F151688F26309 -:107D7000D44DB944F642DD976ACCFBF34BCC2C10C2 -:107D8000E5C7A8AE3A3016DBD5B08EE5888F35C191 -:107D9000041688A28F1BACDD8F2BE9A2EE4B3DF3BE -:107DA000773BAE31F6FD9729CC9FD25DBBB4D8F7B7 -:107DB000B08E98F2EE2F3AD781EFD9C87012FA75CB -:107DC000C7A37C86F2C580CE6F00BE75C4C0E5EE49 -:107DD000057B38462E5F7087B95C46BF958DCBB367 -:107DE00009B8CF6A24696262D738B21EBF4F8E5A73 -:107DF000EF85294616A2FD89D03C107EFEFE8C6DD3 -:107E00006CFBD488F93AD56DFB097E126FA2E1E8CC -:107E10008F8E8335748474C033C6A56E5F35680059 -:107E2000A0E001C91F9E5EA58D867ABD2E865F24C7 -:107E30001477F20F62578F61548EF8CD33ABD06F49 -:107E4000DB55E6EDBBBEDF310EEB8B07F1EF27A76D -:107E50003EFBE6324A6A69E67A971AC9F5264695E4 -:107E6000CD71651B94074795ED71F5CEB87A575CD7 -:107E7000399BB73F9F18CAD57B18BB27F585712A58 -:107E8000F0CDF319A16998C7B6BAE1D7E3CA819FCB -:107E9000D51473395FDBA678485C09F8D57AB81E2B -:107EA0006BF3848D983F9750DC7108F94BF56EC5E4 -:107EB000AE003DD882AD212AE377EEA8EF820A7D9D -:107EC000571D3C49DFF5D87FA18EE87D55E129DEBD -:107ED0002EF821E9132B1AE753BE808C87EB994FBC -:107EE000CB52BAE2E192CF5EC8D00E129FDDA7D886 -:107EF000913E3BF114FB8DF243C9F67F1ADCF64745 -:107F0000545712167EBA14F5EBFFACF97004EA9BD5 -:107F10007F12F2649D121880E36E64BE01284F7FC9 -:107F200054D36FBF0EDA9D30843763CC6F4BEA6B4E -:107F300004BF1389E11CCC0B0C3CF6EFBC9C1ADE91 -:107F40008CF0BCF458C738CCFB3B9113CEC13CC07D -:107F5000EDA9FFC5CBFDC29BB17CE4B133BC3C387D -:107F60009CA387EF7BFB3F1C570EDF3F65EF9EAE68 -:107F70001F13FC44CEAFB6AFD69C8A7A5E359743CA -:107F80009BC1463303DF9C36F7DC0B4F011CA6FD7B -:107F90003481F8D953E7278DE3F682DFAB96A03F13 -:107FA00099FF919C247EAF929E9181B231B96B3F33 -:107FB00012733BDC2447AEAB6F45FD257DDA209282 -:107FC00023E54EED0B1C573EF767C113DA7F916A2C -:107FD000E7FC5BAFA3F87AFACF1249CF5B63E1EB22 -:107FE00001BAA1FDB589FDF89558CFAF52B91D7AF8 -:107FF000BFF366EAE72EA1DFB7AC0C3C6B01F81FBC -:1080000097793B6BB9BDF0C3ADC057808FB738B41B -:108010000CE4273F147978927FE0FBE4283BA9A584 -:1080200008CAB62E7BB86582966175E2334D8771BA -:1080300024C98F5AF2F977522EA537F071D3D70C95 -:10804000D886EB4850B93F6CE694826D4B492F9827 -:1080500048F3659A96A1407FA7E7F4D6A19F4CEE1E -:10806000CF9ABE5A3BAD47C419E43EC9FDFC2295E8 -:10807000DBF733F4A057C03A2DE93EEA0FF48C2128 -:10808000C21F477AC617B8C751F0656A7804BEFFA9 -:10809000FF084E1F7D1B70AA5904FC427715FC4255 -:1080A000C06F9D1232A4737E41F63DBE47B9D3EE38 -:1080B000F47D9D1A95AF33ED6735A457CA7925FC39 -:1080C0006457C50FD8E57416AFF799D2F87E49FD0D -:1080D000D423FDAA629C13C7CD144739610C12DF6B -:1080E0003C0176D552E42F220FA0E4A7F38EA07DA9 -:1080F0002AFBAD49D373FFB4DC77C5DB3A2B1FF302 -:108100006298DF8CEB9860A47D9772B7C5C1F35C71 -:108110005A1EC8A23C978B2CCCC83F3B92117F04BF -:108120003CA0FAC8D434A27F68EFB760FB39D751BE -:108130007BC00B3FF187A956B2835A306E8EF55340 -:108140000B03989783763CE1DB1C1D8DDB0DBE7025 -:10815000FF777F9EF721F126AD81FB9998AA0D99B3 -:108160001025E76F4DE3FB9C501C7EE93F50AF5D4F -:108170006D21BD16652CC5A89AD3A91FD8FF6169CA -:10818000DC4F417876EF238922BFCE5382705D9118 -:10819000C8F1729385C7CF36811E4D7C51E0AFCCBC -:1081A000EFF3097D2F5CA54B427D414B937633C89D -:1081B000F512E1BF87FAE961E524DA7FD3FDFA9091 -:1081C00009FDCC4D376BE1283B06FF30FE788FE090 -:1081D000AB6C3D233BEB1EFC2E09FBB72661BCF5C7 -:1081E0001EFC1EEDC8C537C7C41527A671FA96F345 -:1081F0008BE7FB13E5BC9A1FD7A2C791FDC7F70712 -:1082000076EDA4B4548273A817EEEF523DED5FFCF7 -:108210003CC3EBB91F3EBC3E8FF04EF6D7D33CFFBC -:10822000AC8FDCA7801C9C3586DBFBD2FE9929EC49 -:1082300071B638D6BE43BF4F67597F7939DE5EC409 -:108240007C81D8F65C6F4918143112DDBA9598F923 -:108250004B78F5048707AE116E52EE3D6E013A0081 -:108260007C598F7995805FEB1F482039E6340606EC -:10827000205E6DC47C1D92A7DC8EFFFC48AC3F26BF -:108280007EFF7E9E26FD6AD7667F3F8278D18DFD78 -:108290005D678D6C41F8D75919D1E7857D89448F89 -:1082A000AC6F781AE6D15DDC6B62480FB54AB80056 -:1082B000F9E00545ABA4764B13DC4897D2DFF1C15A -:1082C000CBDCDF51873B03EBADF3FF17E571D5ED59 -:1082D0008EB5CB2FC07F5540471774E112EC4FF29B -:1082E00017D0CB35D2B7AA787CAB56C7FC68B7DDC0 -:1082F000A09B3E87F38D4CB68DDE9F2C5810A5F7C2 -:1083000043BB762599A323D261B5D8975ADD296A54 -:10831000578DF958B83F68BFA11F102BA3FCD6B5E5 -:10832000AB3FA67CB0DA9DB1F853DD855FCA370A52 -:108330007E17856FC41FFC82BF30EE8F29E7F1F9ED -:1083400044514EA8E8A0FCB03AE18F493D101E8B85 -:108350007C2AB138C8A6C3B3EE2CD75F46B56D3DB5 -:108360008876BAA3A22307C9AA4EF84125FEC87988 -:108370005EDFB6568F76A4D47BA2ECD8011363FCE3 -:1083800018CBE83BB48B71BC30BECA40F4E2F27249 -:108390009D9097096860A35C6DEE4F7215E51EF223 -:1083A0003B695723FF43FC2A4A2F3B8EF4FF467A52 -:1083B000D91F399F04BC453B018DB4EB7BC63F09F7 -:1083C0001FD90EEDEB7FEE9F147C9C71BFE48237CA -:1083D00052FF291D9CEFE4AF57F44BA623BE2F504C -:1083E000DCE988EF17057F3CBCBF80E2A0F2FD19F5 -:1083F000BD8FFC8FD2FF3507FD7EF0AC16FC689672 -:10840000F097CD927EB2F5B1F15AF4534797E74A0F -:10841000BFD90E53571E13FAA9CA592811FAAB41F6 -:10842000BF1B3E83B1DFD5B2087D57B7FB1B534C52 -:108430003CB885C3F11E814F8EF2801EF9D8060B21 -:10844000F79F49FE366AF156C2935EC3B4FC87902B -:108450006EDE3090FFE57F0B3C90707930ADECCF55 -:10846000B8AF56BDF00F3E6422BE7E1AF48556E1C9 -:10847000F7998876F212A6E13901A6DA73A3ED68BE -:10848000F95CB5D75285F89899AE8BC1D7F634030D -:1084900095C91F46722381F402607343105F4B7AC3 -:1084A0004BB9CD86A01FEEA4B0EB6BEFB4F9B0BF13 -:1084B000B08EF3C5FEE97C9FFBA7F3BC5959EEB41F -:1084C00043053ECA382BFAA5A2E314433ADBAF15A5 -:1084D000FA2EA3F5AE9B23F2E83BE942477C2E61DE -:1084E0009097E4C30DBA32E273918F6C6E844BC5E2 -:1084F000C7D573701D9F4DB1D279C97B859FFCC6CE -:10850000749E8726FDDBD7EA272F4DEFC4C7183F9F -:10851000F95EC117F7323E5FFF592BF7F7AACC8FF0 -:108520007C726F704000E75B29FC23A87F21BF8E1F -:10853000BCC4F791A95C5FDBDB3638807474D2E091 -:10854000DB3013FD4DAD06F21B3235F0ECD3D8CF46 -:10855000AB191ECCB3BAA08B6CF93DB4DB7BF657DC -:10856000591857DB2BE21BD5C65001E9F522AFB4F1 -:108570003A2954807EAA57C47E555BA10CEF532C38 -:10858000BEBBD253BBE28FF81DBE3F15E076C329B8 -:10859000C6F1C0BF9AC79701BE193371BE2BD3294C -:1085A0007E89FB82FBF0C1BEC1B4AE7506D17E0FE1 -:1085B000F7732B130BA7919C59654A41F85FF41A86 -:1085C000292FBA6E0DD76B67E8DC5B1621EF7D357E -:1085D00081D637B3E528C595EA1E994DE74DEBE600 -:1085E0002EBE9DFD93780BCAA968FFFE0516C9250E -:1085F0007BBDAA773004F3B8D036C0C3C3A5FCFC5A -:1086000052ADC8BF3D6D601ACE3BB2CF10E8EE5CF4 -:10861000654FFD9383B384CB4B1CA72E3AAE45F236 -:108620002536CE75A5F20543B8E001187F758A6F2F -:1086300075BAD03B115E75AF66101FFDE0E12F7279 -:1086400049EF69E6F194D3066D1AD289A33C649C84 -:108650001EC55FB70B3A9E6112FA2DF0C168BA973A -:10866000F52565B174269F4F0A7A4B14791897D770 -:10867000CB3CBF492694C7DCF585FDBAF9393411E6 -:10868000DF1C7536B21FF3D9AA8345143FCD5B1C9E -:1086900022BA047887D03E39BD2191F3135826F6CB -:1086A000336B2423FD7A969EE795CC3281BECEF5BE -:1086B000026A7F66433AC1A16419D753232F29C4A4 -:1086C00017659CB792F1EF77359EF4EBA17DE50E2F -:1086D000A508582BAB6C2CA5BC93B99BF269FF473E -:1086E00009FE3BC3A4156C407CDBC5E384301ED976 -:1086F00005D5985B378CF89211E56BD50E85E22590 -:1087000072FDF1715516888D478D0A72FE8D728348 -:1087100045E993520EA1BC60717A6E2C5EF8AF4AA7 -:108720009EC6CB8377D3AF56AF8C95A7EF21FF4A78 -:10873000BD5C9E82DD701CF1B0A48CD371A495C782 -:108740009F6A583D8FC30979D6B92E210FCFE8B95A -:10875000FC9D655A4BCF8BE93C0E359785451C2A0D -:1087600062C4F9F5845F17D3657E7B2C7E49BC8A91 -:10877000209E417FD56759E8BB305EF56216AA1985 -:10878000C29F894348BE73396FE6721E9FD6AB9075 -:10879000F7F1723E5EAEC7CB73146728B7253E452E -:1087A000C723504F1AB538A0E7FEE66C3BE665CA12 -:1087B000FDBDDFA939B253BBF4C0BA6366B37B28F1 -:1087C00096BDACB70DFD68A59B73A0BE4EE5E7C393 -:1087D00013004E5BE1FD666187ACCAE174E612F9F5 -:1087E0005706D5CB8A6CB84F1DE43788A432CAA788 -:1087F00097F0DD9C08DF613E420EC78FCEEFCDAC17 -:10880000D11AF57DD95E0BC9A94B7B12E91C205307 -:108810007D790EE82FED4F603F40F9C2DE44D21360 -:108820002E08B9E194FE19B69CF6A38F8BEFB39F87 -:108830009565A19F9B29E3B2189D8FE7FA6C8DA3E4 -:10884000A7F884A8CFEFB893E39989E4F52547F812 -:108850007E2CC37C28BF3BCBC5F7BD6EE798A29F9B -:10886000615E86D7E6E150F515A1FE61D22FBCD33B -:10887000ACC77B1216471E8075D4E4D8286FBC3C69 -:10888000EFFD77A742F9A39D063A5F3AE7A949BDF4 -:1088900042F899AAB9BAA393390143CCB9C5793B37 -:1088A00062CB35C1D8725DDC3D058BDEDFFA667BBD -:1088B000547DB94B9CEB74330FE6BD33FDDDBD7CBD -:1088C000DDF05DF9FC6249E0CDF67E9437789B8B54 -:1088D000D3B311F5A3E9880FDD7CA773F17D35993A -:1088E000EACFE2F903D32B26BACF20DDE59BEC4A91 -:1088F000453B2A7208F7D394777E08CAD3B2BCAF3F -:10890000286E78E941E641F85CB294929E746983DE -:10891000C58D76634BAE8DF0A0E55525A070BB628A -:10892000FC08E0AF55341558EFFA5B3FE2876598D5 -:1089300099DF7F0056950BF9954676DE990956FB2F -:1089400032F8AE6A3D97DBD5AC2309F9C006B97F92 -:10895000FAE78D66F8677EA3366029CC779ED74A02 -:10896000E7A4D4AF55BA1F600576196597D4BB3814 -:108970003FA831878DA538FE570B2BD00528FD79F0 -:1089800026834FC3F37886DD45A12C78357BD14112 -:10899000B2BF3AE3F6FB38DF9AFDC07E7AAF4CAC4B -:1089A000A0F59E81F5225C0E6E30D17ACFE4D8C856 -:1089B000FE3DB399DBF9B3EDC68099F4962F53F0E1 -:1089C0001CF399CD06BA3FE07278DC42E7893FDCC0 -:1089D000F43AF91B3F647C5CFF4E3DE93D1FDA230E -:1089E000252184A3BB3E09F5E6AAF573E83CF2EC29 -:1089F000CD7A2FF2B3D99BEFFBFDF5E8279B785793 -:108A0000312EE926C7C234B7ADAB5EEABB6AF2C805 -:108A1000A7910E6FFA7A4CC74DA8776D063AC9E751 -:108A2000E71D50DF6FDF7C0BE9B7B327581DB82E69 -:108A3000F7A6A7C6A21CFA7042269D9F9EFD82C281 -:108A4000F0CA8CD98E4569F87EB6A27ABBC3A7A1BD -:108A50002E7EEEB934CFE609E1777FD4139E005D18 -:108A6000DD8972B866B381F4E7F689C7DF9DEAEC69 -:108A7000A22B65E2FADB4761FB670CD4BE536FDAC9 -:108A8000F43D892F2C5482F619875B3C9D99F21690 -:108A900017E0BCE2E96DF6B2FA021EA7BB36BA6374 -:108AA0009B38DDFD9B4BDCFF71F574B7D7957AF5EC -:108AB00074C7B29363E4F0E5FCCD4FF094710EB34C -:108AC00087694FD928AEAD29C07F3FC080FE087CA2 -:108AD000F27362EADF16EC780BF1D8E53B82F3C85B -:108AE000635A11CA4D77C45E8667C06C422F649B7F -:108AF0004CD29E203B615D2A7B7A55945FE4CFA2E5 -:108B00003FE0037FC47E2EBCF7D521DCA7DADCF37F -:108B100043D0BF5DF7E55F282E6A6BE371759B2735 -:108B200042F90606A797F050F2F73A0F973FF1EB9C -:108B30002AC8E0F6619D3342FDE833DD546E1171C1 -:108B4000A48D8BACE437DEE80C58B8DFC3CF503EC1 -:108B50008D1FA9E7F140A1B77D4FF85DCDC507197D -:108B6000C601D9689E8FF756F1413505CABF1F79F6 -:108B7000B387CE51163FD9D41BD73DDA20EAFBD0BC -:108B80003D27FFAE9552FD0297DE8DF43DBE98E77E -:108B9000A3B2AA24F2E7BC55FC81F3DEA8F97B99C5 -:108BA000D96D03BC9908C41A9DFF78FB688BDB164E -:108BB000853F9F352B155C7F76F79A3C98FB6B4879 -:108BC0001E17C7C26381CB48E3BE915ECA3200CE96 -:108BD00037DDC8F7E3DC0BA600F2C173E25C523C60 -:108BE000FC7A6508FC5107C4E427388DC15C949376 -:108BF0001F2BB1DFCD6DD2537EC09C26850560BC96 -:108C000073CFEECA457EFED153BB72A747CD27FE78 -:108C10003BF9CCC888F57FC6FBB37BF263CB7617F4 -:108C2000D7339FB94F57FB8B557F273FF6F436E17B -:108C300007D7B4BE4EB4AB44FBF8FECA057E28BBD2 -:108C400015F29F483FEEA9C34F62C4A873FF2C6D75 -:108C5000F9BAE83C52F91C25F66D12EE1B2CC5D270 -:108C6000C4CB3DED574FF47842C821B96FA79AFAAB -:108C7000F442381A6B6D2AE3E7030B51EFDFCCACFB -:108C80001EA4A72F443EB1D30A4FD0D38C992E1BDC -:108C9000F233791FC34FAC49DBF0F985C837765AF8 -:108CA000E109FDE46416527F5FE8BC641FFE44DF07 -:108CB0004CE7466FC9E0704867214541563BEF6578 -:108CC00085F2E49A62E19DD6C0E548A4D248F24B11 -:108CD000C2FD86E9F7931DDCCD7EAD473CCA1CC9B9 -:108CE000DFF933F2851E1DA678896524B3A39FA002 -:108CF000E17A3FCD43EE571D6FCE943685F467CCB5 -:108D0000F34948A6B8B05F3C992D9975C6491284BD -:108D1000DDCCE2E222E9A077633B394F2853BED095 -:108D20001A47B0B980C795492FC57EF1FDF4412A95 -:108D3000C515B09D71D895F1AF134F453EE878F950 -:108D4000BECADA6D1C663C9ECBC27D00F9887A21D2 -:108D5000F31862CE656D027D1AED3D19E7D6EB8200 -:108D6000452EB24F3AC2E887319698DD286F13F44A -:108D7000C142DCBFF8B837B4CBE7F916D90E94334B -:108D8000F2DC55EDA2315E8CC781FEE137E3FE4D8A -:108D9000E0FB57FB4029BD5726162E45FCAA5BCCAD -:108DA000E87E88316DAD940F5657C1F5B1BADD2715 -:108DB0008D0CF077BAF00B31E1174F13FB7A4AE8CC -:108DC000DF5D71BDF016CCB76F99934DE7ACE3F35F -:108DD00067AE35AE7B31110032342A5ED7CBCCE59D -:108DE0008CD87F49DF327E9738C89B8F9AB861BD97 -:108DF000E98875C4B5E4C7841F2ECFFE27F931FE7C -:108E0000FADB313FC68C5ABEA8C769801CED3C47CF -:108E10006971537CAFB31EEFBF30EF56C47839B7DA -:108E2000DFAC529EAF289F5A8D7EB1351616335E49 -:108E3000F4FCD4B8FE0DD0BFCD2DDBEBC6637F8F25 -:108E40000D13657FE56ACC075A6388ED8F50509EFD -:108E5000FB34778DB7393BF8F0EAD15DF21CE4FBC7 -:108E600061941752AEAF383EBE79A81BE9EB73CAC6 -:108E70009B96F2B9CEC9F365E2F9D8DB829F835E97 -:108E80003C1645EE8A29F3E9BE88CE38775BA58685 -:108E9000FAB08C73D72DF652FE34E803FF9141FAF5 -:108EA000C0F933FB19EA9DE7C82EA8FB52E5FE2660 -:108EB000D02BF0FE1F735B29F955319DB75FD4FEAF -:108EC000CF15720A7578A487BA4D3F784A0FF543DB -:108ED00033B530F56BE8FEFEAFBF65703DBEAEB09A -:108EE0006C03F203B65DA1FBB756157E467A47EDDB -:108EF0009E9B4744E7FFCFD9FD18CF1FDF61E8767F -:108F0000FD7FCBE07A6AED9E97C86F7A2EC08F2DD9 -:108F100055A98195A8875655E950F362C581CAA91C -:108F2000A40F4C8175C0BAFE9CC1E153B763921F78 -:108F3000CF23D4C17F0ABCDAE89D4576C1C6296635 -:108F40001BC697EA0AA7CF27FCB75B355C7FFC3CC2 -:108F5000BBE2E9563A37BE6AB7A102F5A812D09B28 -:108F6000FE0DE69B933CAEC2037C294BDF5AF463B3 -:108F70001BE617742F97B764713DA051F1FAEF28E3 -:108F8000267F298BCE57CADBCDF5337BA631C63F72 -:108F90006FCFE4F74C8DF6778C419C7B550D27A065 -:108FA0009E5CC7B44FD1FE655E9B9BFCC48CE713EF -:108FB0003897B8C94F6C76867F3E94F42895E2E9DD -:108FC000D2BEB8B087FBD79665FA7232D13FA80FF0 -:108FD0003F7A07C2EDE7AAF037733E933BC9360CE0 -:108FE000FD611667F8D10A37E519915FA2D7771BA3 -:108FF000691F5E75323BC2678CBF5255A2E48CE498 -:109000001B633ACF4D39C90F5BC6D91AEB07BB7545 -:10901000C64C28DAF84D4A979E70F8ABC92ABE9420 -:10902000FA83CEEC233BA77C0AD88D8897CB238785 -:1090300074E8F7777690FE581354689C9AC2DF5014 -:109040001EE03C916FD699F7A586290FEE3B990952 -:10905000C28FD9C8F19275905DCC9EE7F007FE44AF -:10906000F9715D7AFC526A27FB338A78458DF0E30B -:1090700000A0A8BE2C53FAE19689A7CCE7E3E3321F -:10908000D55D12ED775837012409CDCB9D84F37D52 -:10909000C4EABD2D13E6750AF017D779AA2981EE27 -:1090A000035BA77468E8D7F417F1BCE1783CF28958 -:1090B000717B1D888C457912D9D353DE30CF13DEF6 -:1090C00030E23ACADB2FDEFDE958C40F56C1881ED4 -:1090D0006B775F5DDEF04CB11FFFCFE40D7B146D4D -:1090E0001B3CEFCF7470FD4AE60D7BF87EC9786BB0 -:1090F0007CBEF0858C90CAF3FAC25B9E42BB7DB702 -:1091000089F261C6EF7EFD18FA35C79B5990E2CF10 -:1091100071FA43C4396909D2C9C54FCE6C798861E7 -:10912000BEF9CB1E7E1E36561FE8C91EA098499474 -:10913000DDB83653E8E7DF923D20F9759DB0AF3ECC -:1091400056228F14E0FAF6E9EDDD9D5FDA22C7EFD3 -:1091500029DFA5ADFB7C17E98FAE08E7C7C4BF7652 -:1091600074F6776DF1B4E7507676134F5345FE9A57 -:10917000AA70D6C11C3CBF49C6D3D4D6011427332C -:1091800075C5D342AC9B789A2AE2532B0C5A25F929 -:1091900069F699DCDC8EF612FF6A6C4DF5207FAB28 -:1091A0009B7BEE453C7AA13AC6BAF09C5FA3807FD8 -:1091B000F5D5C7D3DA33BB89A76D157ADB0785BA36 -:1091C0009011E0BA9571FEEB6F9371351DD9B59191 -:1091D000877368DECA4433CDFB83574DDBD03F3500 -:1091E00043C6CB5EE5FEB519222EF6C1C402F23F9E -:1091F000F504E7194DB1718777059C2F594AC94F7E -:109200007FFF2F26907F7E16FAF7FBA07FAB59F8E1 -:10921000EBB99FCFDDC4EF3170EF50E81E59441316 -:109220001DE9A476BA4F761EB0D18DC87AFD80357F -:10923000DF81D78A4E417DC8DD086550FAD595AAF1 -:10924000DF05EDB61E4B20BFE20AA75BE4E7F1F8AD -:10925000B57FB512E8C7FBA5FBE3FC8D3A0DFBB962 -:1092600094C9E57C5296B1DBFB281A0D224E22C62A -:109270005BCA60DFE1A953F87385B89F301E1EB248 -:10928000BF4643BD19FD7B911C7E0FCD25A33685BE -:10929000FCCEC90574DF5463627D5305AF279ABDC8 -:1092A000648978A9FEBB2A5748993B99F2A83345AF -:1092B0005E621C9C6736C796E3E347F1E7E36630DE -:1092C0005FFF8C3E979F1F3B8FFC16FABFB42A5F4F -:1092D000EC8B87E2288D06F71FF2290ECBEF935A0D -:1092E0009ACDE1A6CBE1CFDE8E72BA1710E885EBFE -:1092F000718CCFBFF7779D0AD24BA383E3ED7F77C5 -:10930000DEF1F34DCB2AE07A8D83D36BE34A25C09F -:10931000E1C5E77DB57E92E2AC6FD74FF281E2798D -:109320003A944FDF117FF03F6C20BADB6BE1E75ED0 -:1093300025BFA28423B43F85BD7B232AD318573D84 -:10934000BB9CEE85DA58D53B09E3AE6326D9681D90 -:10935000B5AFF273D5358BC3B988D7B565E182FA5D -:109360006EE08A03A892BF42BBE94EC6EF176A8A35 -:109370008D23C6C78757A768E3B346A0BDF441EB6A -:10938000EBB8DFAD1692AFB58B234FA3FFC097E2CA -:109390009B9405F871FE81E36315377D46FAFCC5A1 -:1093A0007DFDE93CE8F4C6D873716C756C7C923530 -:1093B0002593DF9DB5C4BEC7735B31DF5D16AFE497 -:1093C000FACD3AA36F00EA9F37DDC8F3313E99A387 -:1093D00063B8AF9F58F8FEFB1F4E14FCDA53102DF4 -:1093E0000FEA7BDC5F683708F302789EAC6C5F8322 -:1093F000FB0BFB5A2DF6F79397BE5380FB7BBEF514 -:109400003B05B8BFEB0CCD1AD24751BA6F21C2E36E -:10941000F4CD5ED20F655EF0D5E25DC3B78C77D731 -:109420002A8F9BB3FE35798C7FD17E9357BFD2FBB9 -:109430002D245FF879E22EFFDD39BA57EDE2973A35 -:1094400005F9714FFDE50B3DCF65667ED4C34ACA71 -:10945000C2F45DC9DF750CF541A907C7CFFF4931DB -:10946000FF9D599A09E5A0F4F75689BECD81CFB981 -:10947000BEBD5D217FAED9ED4F1A45F6D5CCE17A60 -:10948000E22FFF46E742589B62473B65CEF6A55464 -:109490007F61F70CAAD7994321B4C76AA01ECB2BD2 -:1094A00046C7E6791B77F27890B47F611E7AD4D7ED -:1094B000129C1123E2672DEAD730C55A95FBBD6B8C -:1094C0009DCCE367A80FC7DA8B32AEBBD1CBEFEDF3 -:1094D000D9D8A6D0FD5D69465F7E36EE6B5C7C77A1 -:1094E0007F96760EF14EC6E71F4CD30E22DD3A8DE5 -:1094F0002C97F2F90CF25C5AECB9CF9EF2E48E761E -:10950000E2C195F4A8A9A42FFD9579495F7A072FA8 -:10951000CD243DEA4ED2AFE4FBCBF3E40231F1FCC3 -:1095200059E29CEE2C714E17F97E288EEF4797ABCF -:10953000A3F2E442DDE53B44E5C9457F179D2717CB -:109540008AE18F9C9FA4EB17501CBD0EE866D1B03A -:109550002EBCAE66E26F7DE4033A37B4C3447EBAF4 -:109560006A91C75B57758AEC9F3A3C87C4E95BE315 -:10957000E7E9B97E550D7625E5330763F37D95EC74 -:109580006F57FF96ED7AF2C7DBB2A59DC8E95BAED7 -:109590004BAEA3BA4DE1F41837CF787B3ADEAF2E4D -:1095A000EDE1ABE573EE6F79DDD7CAE706C7C1E140 -:1095B0005FE57397C527FA46923CDF427CE223774A -:1095C000731ABA28659E74D33E9E273D566FD37892 -:1095D0003C54CFF325E2E3C2EEB114F7947168F383 -:1095E000CBFAC0B27C6AEFC17CB49A7D8994BF503B -:1095F000E5AE223D3E3E1E3A97B58EC5ADF82B3BFB -:1096000042E7DEFEBB7908DFCF4E74129F72B3FCD7 -:109610006BCC43B83BFB1AE2A1076D9FA7F8A2F001 -:10962000A56C101804837ACE379B2BF63F41E4AB30 -:1096300098553F73447DDFD3770BB2B93FF1A0C893 -:10964000935A939840F737B88CFC9C874BC7F3B973 -:1096500086667A17E2FCCD6EBE9F4FECF901C373AC -:109660007B4F1882749F82BFC6E641B928FD58B26D -:10967000FF76E15FBD5A3A5AF93FCC3F1E957473AD -:10968000B5F1BCF5008328FA8AA7879EBEEB89BF97 -:109690006CCFF63EC1F1421B427190ABE44B09C561 -:1096A000C0B751EEEF34B9D11E41BF0CC9DBD5199B -:1096B000D29EE7F742ACC921B9F88985DB27F2DCF5 -:1096C000945CFF2EB9FE6F496FB4A47BF764437FAF -:1096D000A74B353A27B12291CB97C8B33C1F29FE3F -:1096E000FC50BC5C91E75FE478BFFBBFCC578F7D3B -:1096F0004B7C15E42CE91D3DC67D2FFBDECFEFC171 -:1097000029EBD044FE0D9DFB90F3AAEBE0797C673A -:10971000C5FCE4FB90D07306E7681F215E9D7FCFF8 -:109720006CC6B86A7131E79FB55E1BC5256A833C7C -:109730005FA77631233F823C273CDBE5FB1CF76FBC -:10974000C5711BDD5F5BBB7B6B536FCA67F091BE5E -:1097500078E13DFE3EDDE5FB02DBD52D0EC7C43FC3 -:109760004ABEF97C794531CD97FC004E53ECF9ABFC -:109770008C1CCE6FE4332D47C217EC1DF8EE7C1520 -:10978000CF3FAF736AF652CA63E0FEF5047707F97C -:10979000956A77929060940C8BF53FCB26BCA9DD3F -:1097A000595A44F736042D45740FD19FF8BD5DE733 -:1097B0001FC80CE8B93F3E2967049E3B09DC8A7A42 -:1097C0006B1E8C832AEEF9D65B8BC8DF1847779225 -:1097D000DE3ACFDDFED01C6850BAE8719D81CB49DE -:1097E00029DFFE91EDE6F110A7C8476C9BC066DA51 -:1097F000BACA36676C9EE6CEAC9BFF81FBF38F6CDA -:1098000055C4D179DC3EDF0CD66CEFCBF1305FC4B0 -:10981000ED27887C0BE63777E559F4BE72DC5ECE27 -:10982000AF93EF8BB87DC297E27722EC46C28BC430 -:1098300026CE3718E005EAEDA3231D63F0BC5BDFFD -:1098400096D06884572F043F9EA361E19F0FC5788F -:10985000488A3A1AE3215B160D3B80715A7565C739 -:1098600077716BDCCDF632345967BBBC37E4107FBF -:10987000A92F44FC2FFBA381E747AE4C2079DF9250 -:109880005B4DF991178E9B62CE23C53FFD6C990B02 -:10989000FD50BD9BDEA67844E24EA5DBBCD79FE61B -:1098A000D844FEE43217FAB5129B3AFC23D14FF3A9 -:1098B000B0C2EF0085D92B2EF427A83AD43B66EC32 -:1098C000E6E7E567343BCACCC44F151ECF19ED243B -:1098D0003EA9AEBC4D87769FBA94D17D7BF373B819 -:1098E0005FBC5F8B5D87FBFEDBAFF5DDC6E97C39D6 -:1098F0003A19573422B86A4C914398DA29E38B32EB -:10990000CFAEA77BECA53C8AD7672FD363853CEA13 -:10991000D4E7E3F0B8A7EF247E4B7CFEAD81911E27 -:10992000F65BC54CE7DE245E37CAF3075F733F7111 -:109930009EC8DF39B5EABF86F07B02647C26C0EFA3 -:10994000713584976711BCC237FA71DD3B1DBADAF5 -:1099500041E45FABA57E56F27BF2F29AFA2C1B59DA -:109960008C4F3B53600AA7F6CECB43BAF4031EF4E8 -:10997000EB060F6ECAE17952EACA04DA37752DDDBB -:1099800010CE54471AED9BFA18DF9FEB73383C65F5 -:109990007C58FA4107E7F8D6603E70E739B545567E -:1099A0007E4E4D9CAB4E5C74FC053CFFB545F8A368 -:1099B0000FBC3A907EDFE3D24A55413DF592A39227 -:1099C0007ECF6AA3D8D744B583D96DD1F87980F218 -:1099D000747BEFE3F986AA3837AEAE746E4578969D -:1099E0003B7D948FFCDDC610FD04C6ABF6D314F7A7 -:1099F00003BD88CE079FDBA348BD28461E4ABB2D6A -:109A0000DE1E7B51F2CDFF213D694F279FBE463BB5 -:109A10008BC5DA9B9DEDA5FD186F4FC47DDF93FECE -:109A2000C3347F4CDECD11B1EF52BE670ADE28F39E -:109A3000713ACF89B38005CF714C41A21CD1959763 -:109A4000C444BED27AC5EA417DA9A7BCA4CEBC213C -:109A5000563F94FB37EBBF834F99D724F3962C984E -:109A6000BF927279FE8A05F35752F07750F87973F6 -:109A7000997FD26070533E8BFF4146714965620504 -:109A8000F9FF92BD46C2BF8B2CB0017F07C03FD902 -:109A900046E7EAF19C13E27D447151BF632A34D951 -:109AA0005E87ED3BEF93AC64549FDC57CB403DCCDD -:109AB00002F578CF75E739F399FCDEFDF8FC1599CE -:109AC0004725E3CA99FD5F56D0CF8A6104CA67F87B -:109AD000B1F82E9FF7D3F22337F18DB4069E2715E8 -:109AE000B99ED9D1CF5F26F98F39765FD729BE7C51 -:109AF000A4CF75567ECFC266E669D243B93DA7377B -:109B0000EDE346E6DEAF2386DD4CBFDBF1BC53D38D -:109B1000E7A676E1939C175BCFD77D11CFAD295D8A -:109B2000E35D9CF3F75CD4AFCADA4C1C2FE3C6DFCD -:109B3000D879CF4DC082F2C495CBF1C113A7EFCA3B -:109B4000A72B5789C9FB93E3F7B43E899F57D2E30C -:109B500025FEF5846FFE32B14F271248FF90F8764C -:109B600060C90EBA4FB27D49909E172D4A508FE7BB -:109B7000872D9169C81973F2B2EEC07B502E26462C -:109B800072F11E95016EB717EF51B9981A3981E538 -:109B9000EB9FF8BE97EAFB45B6E0BD2A77E41DBB14 -:109BA00083EA713F33192BDA72E40EBF0DCFA9841B -:109BB0009777A0DC2A8ECB8B89BBFF2141FC0E540A -:109BC000BACD48FA64BA8813B272A1D763440BCAFB -:109BD0000D19451417B431F7CE0EACCF36F17B22F8 -:109BE00018E03FD6F7CBE7F9158CAF9B650B7F37B5 -:109BF0000BFBE9771DF31DF47D271FDF6912F12EA2 -:109C00003EFED197785C52E6093366CF417DC8E6C7 -:109C1000663165797F0A53ED39785F4283F4278A8C -:109C2000F22B09BE49B95172F9E8CD3F1944BF2F53 -:109C3000F3F2CFFA22DFBCC5187B3FB77C26BB39D5 -:109C40009FBC28EEA1BC2FC17777EE08FC7D9969F7 -:109C500063F14AE12929A54607E96FCFEA914FA5AB -:109C60000AFC704CE6F373947B15FC5D17790F6466 -:109C7000AA4F253F01F3B5E851AEA69EF652FE610C -:109C8000B539928BBFBFF396D95785F3BC5479F29F -:109C90007E8A3F661E3D81F922470DCD6392508E2C -:109CA000E48B7B3830C00BE5435979640F76F2873B -:109CB0007E0AC547C74FE6E771C7B1A08AFB3CD60D -:109CC000CECF878D2DCEF734C078E345BEC9D8639B -:109CD000DE24E46F637F1056F93D2111353ABF430E -:109CE0003E99CBE08EA6875BDD516586F755C7961A -:109CF000BFE7892DDF31F2EBFED1E5C18AD680EBDB -:109D00007C4511F76D007FE1EBE2798CBF12F6DC48 -:109D1000401733E7619EA553F1A3BD30705726C5A8 -:109D20006D768D64544EDB61DE668E5EFF5A1D8F4C -:109D30006B0BBFBAFC7D2AAC4379FBF27B6904AFA5 -:109D4000341BF05B27711FC2B703826E0F083A2DD8 -:109D5000C9325B91FF1F30B837119E279ADDE8A703 -:109D6000DA9F68A4FB7F1BE6F3DFB75092CCCC08E8 -:109D7000FDEAA7F332B4633742BDBEC44CF92907EC -:109D800044DE77C3832AF9B9B01EEF41D43F622580 -:109D90007F797952E1DD58AF4F32D2B98BFD8925F9 -:109DA0003E311EFD2EC1F64473087F2723FE1ED6CA -:109DB000A3382F841BCCEB293E0FA2477D8991F459 -:109DC00070793E1FFAA1789E3ED34CE31D70D8F700 -:109DD00023DE357C449A1ED48F74633E99C4EFF21F -:109DE000A491F4BB33407D7DA3EFD9D7A779DCFCE8 -:109DF0001C30FF3D95C2CEDF578161A11DBAD51938 -:109E0000D12D8F0FE648B83355C3F6194C96F9F9A2 -:109E1000B5B4CE72A94AF72D29B2BC94CA8F8B7AF9 -:109E2000796F6C6A1EE7534ADBEB7F43BCED9B0402 -:109E300070817DF224747F7EEAB4E0EF97EF5F8952 -:109E40000BFDFE0AAE7350D7FA0F383C2E6F54B993 -:109E50009B7D0920BEC5EFCB018BC78D7EB62BF74E -:109E6000C7E12AD7A1CFE4F0EC5C474AF7EB48CD35 -:109E7000E3EB088A73E3F1F54A9EEEDB5E67B7F821 -:109E8000F72FAF332D769DDFE23CC3CAB7304F7D4D -:109E90002ECCCFD6353FFAF9B812E49B1CFFC68909 -:109EA0007C6956189BE7C4467ACC5C5F8CCD6BBA54 -:109EB00045D9D488F2F57111377F5DD0D5A184FFE3 -:109EC000D517F5ADD7A715B413BFEDB5B411894BB0 -:109ED000F267C9FF2F659C2CC132C88101792067C8 -:109EE000EEEF7D741A76DEEE78BC2FCA2BE09BD79E -:109EF000E58DB87C9E927E3BE70BF48B7424E937AA -:109F00007EFE928ED8ED414A10DDCC42F474319E33 -:109F10008F0F7A09DD73CFDC395DEB03221F6BAE47 -:109F2000E7EB58EAA779DFE27894F2106FC9F7DD22 -:109F30009407FB3D65E8A774FF147355F6273B4D66 -:109F4000D1B4FF9BF3C58C7F7C2FF5FC78BDFE4A16 -:109F500079E9729EF1FC50CE4799B883F4F83AD073 -:109F6000E379DEBA42FCBEAE4AC7F9F06E85F4FA78 -:109F70005A903328A7E4BDCC3715581BF19ECDBDB0 -:109F800006EE4FF5BF6472C7DE4B159FBF2EEC89FE -:109F9000C54CDA0BFC7E8B1A3BBF774AC89996FBFF -:109FA0007ACB7BA9B83C043915732F55A53BF65ED7 -:109FB000AA1EEC05B00B483F63BD74C22EE072BA16 -:109FC000E57AB7DDCFC8FFCC7F2774AA51E88300BC -:109FD0008BB4AE7BF3C00EA0FB001BF3F2C5BD64D7 -:109FE00001FEBB2C42FF8FF74717A5FB56209ECCE6 -:109FF0001CA4E5E24F04CD30727F33E0DBA60E8671 -:10A000006998F5DBF15ED95B59FD3BBA3E846F0F71 -:10A0100013BE0DFC94DF37DB856F8FE4A572B98426 -:10A0200042E64A741C71FA1EC7715B1CC13FE13DD8 -:10A03000F81BDB4C046F99E71A4FDF51F3396DE0E1 -:10A04000F371EAF5349F27BA9BCFD5E07D345EA546 -:10A05000338EDF3DE13F9E27491CD685FF8315DF08 -:10A060008B386E271D2CE776D765F3D6DB68BFEFFC -:10A070009CCAE3727509D24ED6C667A4A11F928FFF -:10A080007FE74A8E177756F2BCA4096D35148763B3 -:10A09000E53CAEE681FFD1EFFC08FE36D9596440BD -:10A0A000D4FB2BBBDB807ECEC9E363E36F53CCB71D -:10A0B00050BCEFCEC98698DF39957098227E477DD7 -:10A0C0004ADCEF9BC6C3253E6ED7C90FC47AB3F0F6 -:10A0D000777FE099CDF8399E0CF17B7447F33AE332 -:10A0E0007BFDAF31BE772CEF1AE27BED8608DD3BBE -:10A0F000F15AEAEC4DF3816EFAFF7210DDDB7F73EB -:10A10000DA9CED6BA1FCCCC6EBA8FC5ADA0F171E4B -:10A11000C5FA2D05542ED77D3A0DE9A0B064EA3872 -:10A12000FC9D83760BEFC765F5B5E0EFDFB886F4ED -:10A130001E86F9C8E5C608B5BB6D68CD70CCAF2AE0 -:10A14000B7F2F291A2FF1846E5DEA23CEC95EBB027 -:10A15000DCAE7C3AADBBF8E0C0422584BF73579EAD -:10A16000CCDB8F1FF66C26FA8BCACB7879A0A7744C -:10A17000651FACD77D36AD3B7DC428EC21A95F7B44 -:10A1800005BDEFD24E36E2B944AF4DF1E0F913EF21 -:10A19000C893FC3E3A33CF53F93F722300BD008091 -:10A1A000000000001F8B080000000000000BE57D90 -:10A1B00009789445D270BFF3CE9564924C0E20215D -:10A1C000102609840492300987288703048C0A38F2 -:10A1D0005C028AF08633E42011748DBBEC6620802B -:10A1E000E8A28615151574404070118302A206BEC0 -:10A1F000E1505151E3B1AEE82E7FA2ACDC1283AE48 -:10A20000B8EBAE7F55757766DE37C902FBFDDFF32D -:10A21000ECF7FCF8EC76FAEDABBAAABAAABABABA7D -:10A22000C7EBC935CFCA626CB847F1F8211DE158B8 -:10A230009268EFC7D858CDDA4F5518733A5296390D -:10A24000E3198B1E38AC3F7341B99D59582A6337C7 -:10A25000A468E1AE0E8C4DB9E6DBE4289531E62822 -:10A26000ECE98D849405181BC0D838FC13EA8FB331 -:10A270003B026A0EFC9D6F39D790C1E8DFCFD03E1C -:10A280005BF1385DFD31D725E6EBDE8C61173F5F72 -:10A290004FFD76C0EF53067D9B6CC68F09BCDF0B6C -:10A2A00016C74A253AD8FF4DA27FE661DDE33B326F -:10A2B000A688FC4D72BC0CFD78F84F817A9D98F809 -:10A2C000BBEEAD1F15ACB7A25661690005F351BADC -:10A2D0009ED528084CB6A2A5E3FCACA67A177EEF63 -:10A2E000A6B87B39119E816EBB37BB35DC12BEAE82 -:10A2F00026F890D71A2EFC67867C1293FF14A7B31A -:10A30000238ECBCBA19D87C506E182F107107E5637 -:10A310007078D62B1594624306ED1688760BE47C94 -:10A32000F7EAE73B209CF9C2008E04E65EA962BB17 -:10A33000F8DC5EFF0AEEF2F0A81CD687B18976EF52 -:10A34000833698C3A4985944E7C9CCB73B06E6FFC7 -:10A3500062845680F0A826DFBE0698D41CE6B1229F -:10A360005E808E37723A72BA48B88CF86881D388AA -:10A370001703DC463C04E9539F886922ABA07CCBE1 -:10A38000BC0CF3A9461E047E6DCAB5F937E22066FF -:10A39000F81FF0F3D1C274FF034A10AEA30ACB300A -:10A3A000433D9F12EEDE9CC2D80F61307FF81E2F16 -:10A3B000F03068E62FC6B2A8D6F056DA79BD7BC277 -:10A3C000A336627A7D7AF8325334B64FF663FDF8DD -:10A3D00070487382F0FF60629A1DE0BD47AD25FAB8 -:10A3E00075614D4BCC29413E7BD80593EE8F7C297E -:10A3F000E7E353904E569332C3EB8039E1BFEB83D2 -:10A40000E9C32E4068078E2F3BC0354370D38C06BE -:10A41000A55141785D290E5C2F33EC6AC096D39A22 -:10A420005F704676A0D3CCCBF00FAB799C61BBE1DB -:10A43000765E6F26F68FF5168FF484D69B89E3E05F -:10A44000B82BE1BB3DF85D01BC27C5B6A60FCC8F8C -:10A45000E01F5339C27B220EF06515F4BA3792E83B -:10A4600035E6DE61F45D199FA134C0FC4714B828BD -:10A470008DEDF7A1996513DDA6D46605E9A876D41C -:10A480009EC275CACC0DFDC7C1BCDFEBFF5CAE063A -:10A49000E5C74DAC08EB19F1F75C107F57B48EDAC5 -:10A4A00083FFF508EF36E4FBF34AFD002CCCEFEC1C -:10A4B000243A32A6A520FD629C29C36210DF3FC169 -:10A4C000B880EF8958047CB0A7A3B613E19DCCBC3B -:10A4D00023CD30DFD802CDA239683813C2B3D0C93A -:10A4E000E119A93A886F9BB72B7E1BD4CBF7643E4A -:10A4F0003E18F2E5472CCC0FE5CD8CF375F33AD539 -:10A50000EF037E9AF7F6CB036005B2AF041FF75C4A -:10A510006B622E490FF85FA63F9CB93282F9DE5B71 -:10A520006375F9ECDACEBAFA7DF6A6EACA7303BD12 -:10A5300074E57D8FE4E9F2FDEBAFD3D5BFE6B3E17F -:10A54000BAFCB50D37E9EA0F3A355E971FD2749B16 -:10A55000AE7E7518ACAF3E886E4F7D06E065B6A046 -:10A56000D3F59766EADA9D8D1A7504D7DDEC55F3BD -:10A5700046E3BA1BC64A74FDB01ACB97C89715F0CC -:10A580001FD2732EF34607005F2359D39B4980BF28 -:10A59000057EC58D789BB796D793EDE6EFBD7378B2 -:10A5A0000CA67EFDF712660EE6A19FCA3F6D78E706 -:10A5B000704879BEB3D084FC77DE1519FF7504228C -:10A5C000825DF3B3DA267DDD01A4DF27AADB069FD7 -:10A5D00016BEADD23A58F882E267D06F3AEB118DD1 -:10A5E000F9F2232AF303FD4FB28AC70643FA4395D3 -:10A5F000FF9DC33D82F8B125E8E91CE6D2D339229C -:10A60000434FE748B79ECED103F5748EF1E8E91CBD -:10A6100057A0A77307AF9ECE9DA6E8E99CA8E9E9DD -:10A620009C54A4A773D70A3D9DBB55EAE999E22B38 -:10A63000D6D3CF407F299FD3562ED4D56BE1036F5D -:10A64000D1684C7BD4FC52D76F895A6A65A6203FEB -:10A65000F8E03FE4879E8CB90380E705408780AB34 -:10A66000351F14D5AD5E91F46FF041760AD0BF77F7 -:10A6700008FDD569D15A1BF25CA692AEA04FFBA68D -:10A68000F4273B6800A6537A821D04728379DBB6F7 -:10A6900083A4FC0AB53BCC0382FAAA3DB9D64ACFC3 -:10A6A0008E95FAA91D3DEBEA1A94838090638CDBAA -:10A6B000018CAD32211C53055F1F0CE77C79118B97 -:10A6C000AE857A506720C0750CE186718E85F73EA5 -:10A6D0008CEBF436566BC1FEA7B17A4AA7B3264A73 -:10A6E00035E624BB622673533A9B79297DCFAE4D64 -:10A6F0004901B9596A6F188076C95F0B3F3CAE209B -:10A700003047E310D876F12AE5F5C7F827D47B3037 -:10A71000C5AB215EF3EDAEBB1E854F07514FA0FCCC -:10A720001D1D47F032B3377B7C765BFD2C25F9FE8F -:10A73000BAA26928777D8976F766985BEF24664F21 -:10A74000443D97E04F1D0FF4294FD1EB975E8227D0 -:10A750005EE85CBB10ED28C6FCB1A81FAE76DC5FDE -:10A76000A5787E8170CBFA979BAFD55A7B27C2D94B -:10A7700054E6706F04FEFC44D0E3D95B6D01352ACA -:10A78000C8479F454C7FB303D0EDEE086D19F1DB50 -:10A79000E41B57605E3918E75A08F05D28047C73A3 -:10A7A000FCAFC4F252BBD6AD234CF17C57AD67343D -:10A7B000E2DFCBF10F7F647BDB849FC33342E1E3B5 -:10A7C000BF1EA1ADC67E0E9AEA93DD880F73FD0011 -:10A7D000B24B1D1DA89FF3568E97F6F0303CA2EBAE -:10A7E000349CD76C9BCD8DFB93E10AA7EB89B819FC -:10A7F000D3CBE1CF39266FC780AA83FB1982DB59FF -:10A80000D82D11F8E6BC45C06DEF20F0EECAC27538 -:10A81000D51EDCD5D83FDA89BF56FC6827D23FC8A1 -:10A82000BFE28BF13F00799BE9E22713D07EC93666 -:10A83000B93742D1BA70E81AF8FD0381EFF516C8AE -:10A84000C7D2F795F83D219CB74F78CCE4AF86F698 -:10A85000DEE1AF129D9E5DE0A0F91432971517D985 -:10A860002C615FFF65D8DFF735003DF6A5687B7189 -:10A870001E33E24CC99F101C5A6FB477D8E02BE30B -:10A880007FB94EC73BF914E608BC4D601E5A77935A -:10A890009866C1713FFAC6EA41F9F991902760FFC5 -:10A8A000D3F7A9CC4FE9ED2C40F5EF600D94FF30C4 -:10A8B00022A76B25C037EEF19E3D50BE86E0FD7DA0 -:10A8C000BE5EB519F19C5F4E7642BCAFE97045FCA7 -:10A8D0003B4EF00BACD74FB11F58AFFD725343D670 -:10A8E0004D3EE7176676F6F857EBA6BE99EB0B10D0 -:10A8F0008C8E4498FF0D828437784A484FA09D156E -:10A900000FF8AF77A96467150C6B3423FC5BBEE5C9 -:10A9100072ECAD252CD207E56F0D5319D26BECDA32 -:10A9200051A7B1DD511688EF07F5475ED20E47C338 -:10A93000FCC7827C0789CC0ABA809E08D14B372598 -:10A94000ACCE473BE2A6EEFAEF37B31A15F1373A31 -:10A950004BAF57C6A25E91F560BC038887D8D6FA84 -:10A96000E547A95F7AB15E57A35F169A3C2C95EC38 -:10A97000549715F97EA69979DA5A6F937B2AC29E6D -:10A98000E576CB2D62ECE6D117AD1760BE0353B56B -:10A9900008EC67E198BF4C47790CFBACF7FAA21EB4 -:10A9A0007D5F650F40F99755807150AE27AAECCCBA -:10A9B0000306CED7554ECA9FAA4AA0F44C958BD217 -:10A9C00073551954FE4D959BF25353BDF1D8EFCCFE -:10A9D00095DF9AD18EBA2F4CD28FC3B148F0EF7D5C -:10A9E000617C9FB52872D1678530EE225280A0AF7E -:10A9F0006B6B46A1D955BCB7F64D4CE1BBEAC0F232 -:10AA0000D58A1BF5D39CC3DA0A649F79471BC6A27B -:10AA1000D8E9FF87131D116F659714A6C1523AD06C -:10AA2000C39386E39FAC1A48709DAEF2105C9EBA49 -:10AA3000C637E3A0FDD9AA02CA2F4CF566A6764018 -:10AA400075FBAD15DB8FD9DE684E82F2911EC58392 -:10AA5000EB7BA887F9FD40BFB516AE2FD682BE406E -:10AA6000FE19963D7EFD5D0CE5B9D617C799143BDE -:10AA70006B641CF2D5C04233D69BFC13D85C2941D1 -:10AA8000FEBEDC3A39BF5F21FC9CDF1F43F89078A3 -:10AA90002A13F43ABFA7F72D83A0DFFD6047AA0071 -:10AAA0005FF32513C1D7FC59B81F8D0463FB85BB29 -:10AAB000D33A3107CE131ADB30DFBB13033A9C7D48 -:10AAC000E19E04A44786623655825C381B5BFBD747 -:10AAD000CF51EEFD99CB3DC66ABF7E12E562970469 -:10AAE000F70390FBC602FB34DAD75444A05E5C60E7 -:10AAF000651ACF6BBD317F369CD1FE76C08EA4E146 -:10AB0000B89E703C57CFA05C4BDFF178EAAF5CC1D8 -:10AB1000F96E79E189E6D75C58EE27BEDCB6637D35 -:10AB2000E7A72057BA737938C2F53ADA19B04E5E02 -:10AB30005F1D41F2EB758BFB7825CAEDF50EF766CC -:10AB4000A8F7DC43F77EB917D307CBF2EE45FE48F2 -:10AB50008DA57E66FF6E7E2F6C0F7A9C25C2BC7E13 -:10AB6000FF8A120843FFCB9A034B1361BC3EEB1ADA -:10AB70004D9D21CDDDA45463DABB6BC111D49F156B -:10AB8000A92E6ADF777B8A8AF661AFCEFECFAF2728 -:10AB9000FDAED7FB596BBE1DDE9905F57F2FA5F6DF -:10ABA000CC12A0EF7D5D3FCDE3FBBE1AEA6777DDF7 -:10ABB000848F6F67380FB02C10EE422BF92570BAD6 -:10ABC00016C89FDF95B601FD177B4CBE0DA48F669E -:10ABD00072FBE3BCD7F704F24D19D4F741BE2CD772 -:10ABE00017751D9497FDB9BB1B3884757DFA8602D5 -:10ABF000C4C7825D8F8EEA0CF5CE0F666E05402FBE -:10AC0000DA7D7114B6635DC156C67E765577BC0D8C -:10AC1000DAFD366B787FE413AF5A4BE3B0723ECE69 -:10AC2000E3428FB1861CF20B904A817ABF85CFF840 -:10AC30003DB62EE600F76D71FA94D72D4941FF4AD3 -:10AC40003FCDEE56711DA4F8122B1C41BD08FAEC45 -:10AC500077B87E12ADA25FE78464EF55E833ABD0DE -:10AC60004FB2BFC7ADCC1716CBED6005F5AD95EB78 -:10AC7000E1CD202F905FA51E867137A6F2F664FF06 -:10AC80002681D2CD0538931EB7F949D75FE1F84642 -:10AC9000BF99B443A6C455EF6B40FF4E84B603C7BB -:10ACA000917E326676BBD0CE5916E1793195ECA80B -:10ACB000A6649C03E8C997B1DE0215ECAAB410BBE8 -:10ACC000CA7E657AF2C508CFABD8FE4AEB1BE5E831 -:10ACD000A2EF4D2C17F860D1A336DA77560BFF415F -:10ACE000B5F06755470EB0E3FA67874DA56F82FE52 -:10ACF0001CC27B68E97751641EC9876AC6DAC4DB67 -:10AD00007E58D71AC89100E8010DD6F7D04B4D2ACE -:10AD1000E7FBFA43D1FD507E324FA40BF7F526A690 -:10AD200085E847633F40B76338CF612C8269217A59 -:10AD3000D0C362ACB87E9923F6DF9AFF60413F39F9 -:10AD40008FC1C27F37B8F9B30894838BBECF237904 -:10AD5000D8DEFCF689F9FD17CE0F526F4FEF39841C -:10AD600073C8774E33CE7388795C32DA2D007F3327 -:10AD70007E1FFA9D490FFF4FE1BAFC95CEE36E8529 -:10AD8000F94CB83EBFB5FA717DD6017FE37AAE9B30 -:10AD90009FE54739B007D603FAF17DE3AD64B7D636 -:10ADA00009BF685D0727F98B5EB7F0BC6FAA681F03 -:10ADB000C6482FD44DED4CED3BDB2ADECDC6FEABB5 -:10ADC00023487ED659FC2B53B1FF5FC7B97D402F76 -:10ADD000D5FEECFA137D61FFE037F92CC82F96C041 -:10ADE000ED2AF6F7AD95E1786B620249E5507FCD2B -:10ADF000FCCE54FF33308DD01F37C8649A31CE81DA -:10AE0000E59EC458C8EFF9A74A7A604D2EE41D2488 -:10AE1000C7C9BFB7669C27313C1ED38E26824765C3 -:10AE200015F43D85B7FBDCC2EBDD26E8774CD00797 -:10AE3000D639C9016D6C8419F9F8DAB49959696485 -:10AE4000C778121580E7C9D93D18CAD1DB8A6F4C83 -:10AE500021BE117ECE298206B23F26FCA493F8675C -:10AE60003675CEE630A4E7A4A230F2837E56B43421 -:10AE7000D205ED2769C2FF3951EF17BD36CD43E347 -:10AE800096D566A69D08E1EB9936901BD0FF43E16D -:10AE90005ADF34E4C7BDB954BE178C959F615D7D00 -:10AEA00039BBC70EF253CC96FBC2C02CA4EBFE26D6 -:10AEB0003BC3FD467BFC508D74807EBB215DE2046C -:10AEC000BF22FDA784F37D8B19F805F2D5B599B49F -:10AED0006F79C6C23C0AD26BB78DE85F30DEEE21D7 -:10AEE0007FE294F00D36289F21E459F59470FA5EC4 -:10AEF000BD2FD26F52683F4479DF4E0BB52BB5FAA8 -:10AF0000B76D817E4AF76792BED96315E3BE16C15D -:10AF1000CBA33C29CBFB617927E283D72DAE682AEE -:10AF20007F5B65541E1E488F013CC6856913111F47 -:10AF30009D6D406707F6CBBF1F17FC751CBA45FA1D -:10AF4000F92A22A95F5AFA90D7AABB6E447A6A56A8 -:10AF50005ECE7EA952F971A727710EE48F57241196 -:10AF60005CD26F74DC6B25BE3F5EAA90FDF3A74AEE -:10AF700035600DF5DB8FDF7A7F3AB4FB6ABF85FC65 -:10AF800072D31E2E398ADFA72D2D23FFE2B4E2C52E -:10AF9000742EF0CDE2AF06AC85F9342CFD22590BAE -:10AFA000F1334F2B855621EBF937699E32E4832725 -:10AFB000D3B40A9C5F7956C35CB497BFB1D63F8DBA -:10AFC000F67F7ABCB608BF5F78F5E4166E4737A502 -:10AFD000A39E5860E67C22F56DB9E0C35EDDB57BCB -:10AFE000B13EE06D3AEA9588AC7A2EFF165F99FC87 -:10AFF0003F53B7798F02E39484D72DA054F5E760CF -:10B000003F67954094924678D4705D9D7306A21078 -:10B01000FF9A89DB6D255BF5F3C27F789E55827FB1 -:10B0200040BB925AD51386EB80F9AD087F09B30671 -:10B03000EBA704E905FD10BD98E34FD37F05742805 -:10B04000DE969987FB859298BD0F0DA27AD04EAE01 -:10B0500017B5755ECEA7353C7C7EE7C43A38075FEE -:10B060002CC82FDB6D72DF4EE37FF36A271ABFA374 -:10B070005827DF28825FB78571BE72C3BC10CE1718 -:10B08000395F3D26E5E436DE4F499CCF8472A9A4A2 -:10B09000CA497C25E512C042EBEBEC8E246A27E519 -:10B0A00018F33246F577246EE4F69BD8BF22C050E1 -:10B0B000BFF8F77C1CCCA33C3FF37C921C97EC6759 -:10B0C000A33E36CE7B7F9A89EC2DD0D39DFED5FE54 -:10B0D0002F2361D6FAD97D43E613691572C19D30DD -:10B0E0002E1BCF0BACBA7EBF89B4CEF038F0DC405B -:10B0F000FF5DF6F74E1ADF1F7633D0B9B3DA74C0AE -:10B1000086EBF059467AC308C787A2DDF3CFB7D0E4 -:10B110005515FE71E692FCE4E2F63CD1EF9855D26B -:10B12000EFAE2490C72588ABD4201EF7E46A49A867 -:10B1300037BE11E73D7B62209F85F614A78BCC4B71 -:10B140007A18F972E9B1B94978BEF4CF34EEB73361 -:10B15000E27B09E015CBAB2DB05FC9C27DEB914717 -:10B160004EF408CEE7EB2A8F6776487EEEDA5C3B3A -:10B17000AEC779EB72ED3343E851BDB5EF1117E07F -:10B18000FDDC56B31BC57BB5D9FF10DAE9D55BD51D -:10B190005AE42328B723BECF390EBE8FF5E6AE8B17 -:10B1A000C9433B5CB69FB776A46776081D7A6FD516 -:10B1B000D325BB569FEFB3579FB7776734BFAB6DAF -:10B1C000971BD0E7FB1ED1E75913506F00DA039CA1 -:10B1D0006EAF0C741F7101DDBAF955377EEAE618BF -:10B1E0003F610CDA11EB54770F28EFB6D87B33DAD6 -:10B1F00015A7D6CD7123D98B54DF825F014D8BBE4D -:10B20000187504F5EA5956FBE918A0CBDCBAD556F7 -:10B21000B30BE7ADE7F73D26C1BFCF737FDC7CBF43 -:10B22000BEBCB55C5822FD1819A1FC65E40318F7F3 -:10B23000560F00545AF9F12328178A4603E3A31E38 -:10B24000AF5D6D45FBEFF2E3F8B87DE9F0B8101F94 -:10B25000850379D9759523D857B0EED8AA0F472121 -:10B26000DC85BF55C8FE287CB9E761E4AFC69D53B5 -:10B270006FA2F4D6029ABFF4FBCDAB530291907744 -:10B280000E74ED6D807673FCDC7F3173992D280F81 -:10B29000199E7B19E05813520EF0CFDB7BE0473C40 -:10B2A000172E5AA76F371FE434EA9FE24D3FDB4267 -:10B2B000BFCBFDE875751B549CF71C01BFD49FCC18 -:10B2C0003794CE1DAEE34DD809FC3FD03BBFEEA86E -:10B2D0008DEEDE3FA847AF5BC3DB83D82DC47997E3 -:10B2E00039AC2E9C77999D0522009E2391560FC65E -:10B2F000955C5C1B497EB7B936B057F3286518B723 -:10B30000008298CEBFBEFE4025BBA72C8ED3BDECDD -:10B310001985F66965E82CC5FCB33C3F9F05683E7E -:10B32000C82F9ED079FAF57956C3F777A5E6C00104 -:10B33000C44B316BE0FB33A0A727E4FCBA14E6F959 -:10B34000592CDA6F86F6CCADD1B99C83DB63E57BF3 -:10B350007FB68596CB7DA6DC074B7FF033E9DE70A8 -:10B360001CC722ECE635F77BD211DEE5164F3AE238 -:10B37000C1B73A8CF6FBB76DE0FA6B4D0CD8B1F162 -:10B38000643F933D7E9BC2ED733695CBC341A69738 -:10B3900002A86F9A1E8D716F74517DD2636B1ECCA3 -:10B3A000E4F6FF3F55B2879A56F3388835B91C7FCB -:10B3B0006B1ECCE6F6BFD47B1D18F5D7DADEF6A4FB -:10B3C000A31F823DC2E1FA1CA714625FE776D21E7A -:10B3D000E81E323F6997B3A22B3B9FD82CE2329AEA -:10B3E0005687F9F17CE284E27DD31462DF3ED59D7D -:10B3F000EB8901C33D5B443D3AC7986D1AF7C0F530 -:10B4000000D7ECC74C2EF4A7B5E0DBE34947FD7944 -:10B410006275581EF2D980E1DCBF743C97CBFD8881 -:10B420007E8CE29B36897E377537E9D28470E03FA7 -:10B43000E8E7C448EEDF8EECE725BFDE661797FB32 -:10B44000C679D48A7E665BBDEF0C69031E891796A8 -:10B45000CFED8E13772A1B395C406FC80FF85D184B -:10B46000F9034F08BD24F10B7C43710C526EC5B437 -:10B47000F08B7F5B18F0CB6A0BE703B96F0BE1171A -:10B4800041FFAE44DFDB047DD98361825F4CEC6F0A -:10B4900088C7914ECE0F57B9FF027A1F417A1BF72A -:10B4A0006192DECCECEFFFAFCE51CA5E79618F0FB7 -:10B4B000EC8CE2171F8D6250EFB4B9A6A31BDA978C -:10B4C0006E5E1EE581F494D917E584F14FFBD50239 -:10B4D0007F1BF8B6F690FE688F430939F73CF3FC02 -:10B4E0006FC7E23CFFBAD9E2449150BED546FBB1EA -:10B4F00005BBE693BD0EF9469EBFEF5B3C072DDF13 -:10B50000ABF7B7173FF7684717E1DB97644AC034DA -:10B5100090C4205DB0C9D2722E0CC380FDDDB40290 -:10B52000E133B647382E01BDCB6BD5426B74EBF2DD -:10B5300072215FCA77FDF65BF41B96EFBAF124CA5D -:10B54000FB72839FBF489C7718FDFC7FEDAE3F47A1 -:10B5500006FC50DC800FE0EA41ECC2FDC4D5DB1EE6 -:10B56000CF6944FB61D3BB514A56D0DF2FCF419AFC -:10B570006B673D83FED3F6D6E537C2DF1BA41B976E -:10B580005FAEBD0A0F9AABE369A925103508F77BBA -:10B590001B2C64FF96BEF0EC962791CF8ED948BF46 -:10B5A00097BCF0C6A7D7A1FDBCD3123F9A4FC3A149 -:10B5B00084C4D994BBB83F4ED2A7F8E537ACAE6C83 -:10B5C000FE7D716C904E253B0F5831DEC788CF1140 -:10B5D000B507AC0D8E36E855DB388AFC50DB7EB003 -:10B5E000E2FA38BD5F619D525AB72FDAF04614DA9D -:10B5F000678827D44F926E2D7434D487FEC7BED689 -:10B600008FEA39719F72393A7E2AECACB2572259CF -:10B610000CC051F4B9CD3F1AE9BB635114CEE7A475 -:10B62000B982F3FDFAE51DD1DE2BB2F83A3A29E5ED -:10B63000DF8B9EBE9BF8719E52D1D19945FC9E68CE -:10B64000225BC29788F39CB36E12CD732ED3881FF2 -:10B650008BD6AB5E3FA4DF9B59C1CE36D6CD52B15F -:10B660006E4E6E04E2C23C4F8A782BDF47AAD84761 -:10B67000DF49FAFC6E3167C61652FE7B61CF4DEC96 -:10B68000D1729E6D0FDD87966FBAAF1EE974A6ABBF -:10B69000A713C20978F009BC293F43BFEA87233BBF -:10B6A000713A3117C623503BD0AB23F03BD6AFB72E -:10B6B00078D0CF1ED24EEC13F9F87789F101EE70F5 -:10B6C000DC079FECD8763CD7CE16B9C0EA43E3B985 -:10B6D000DA95039BEE27FEFAEE132E6716F8C715D0 -:10B6E0005079BD25D009CBFD07262A24276C2CD004 -:10B6F000D63ADF6411EB5C5F0E709A9550FCEEE772 -:10B70000F6A9E497B960970542EC8420FF5883DFDF -:10B7100069FEBF13F86EA0F33979AE374FC807E35F -:10B72000FC8DF262718FB6E34ED8BAB6CF938272B7 -:10B73000C247E396827E477BA4F4988DEC88D217AB -:10B740002C5EC4D3D9ED873EBD0DF7B7B5725DEB66 -:10B75000E5B0715D17BDD4BFCD757D76556EDBEB61 -:10B760001ABEB7B9AE572924EFFEBB7218341FF9C1 -:10B77000252EB77EE7B523879F33E0F57B96153DF1 -:10B78000080B9D85DD884E06FC4ABC1AE5EA1014BC -:10B79000921D5ACB5586211A21F8947894FCCA98A8 -:10B7A00046E3B4F0B5E45BC9D72D7C6B9CB71E9F14 -:10B7B000C6F2F9487B80C7FBAA85EC85D23A1E6F9A -:10B7C00008ED283EAE1CFDF354BBE6CDA4F8D0BC7A -:10B7D000DF90AF35D4F718F25E437DCD90AFD0D572 -:10B7E0002FDD7BC8CAF70F015D3D5BE5CDB41F6956 -:10B7F0006D67F8F9B9D3AE6FAD3EE48F2E4D569418 -:10B800009396A5CC1709ED9BF6A964F75C703545B6 -:10B81000A1DDB23C8CDB75179C221FC3F34D1DAC20 -:10B820002B504ECAEF4D61DC0F73C1DB141513B200 -:10B830009F6FAC53A3D0FFDBE067056DC7AB54131C -:10B840005E1B587BE5DCBEBB10CEFD0D17C2B9BF39 -:10B8500061A4EA48AE443F6C0D8F0B9CBD6472142A -:10B86000C555D4A5DD3205BECF795BE561E03E8FDD -:10B8700019E319667152B253CC47F181B3EA785C8F -:10B88000C3EC557A3ACF756CA2F8B7EFD9624AE7A4 -:10B89000AED1C72314B355C46745EB0CDFEB6EA6DE -:10B8A00075526C58279AF00F1BD789235DC43DE66B -:10B8B000B25C5DDCA390E723D5AC5BA6003D2E1CFB -:10B8C00051990DF2CD752A5BD18FC7B9E2F9136E8C -:10B8D0004870FD2D80F58A7693C4D7395C473DDBEF -:10B8E000B75FCEEDFEF3805F21DFECF92207CF8555 -:10B8F000CFED3996FE3AE65FF963F217AC75FD11AC -:10B90000FB7F9C8E72FAC27E1B437EBFB0FFAD648C -:10B91000F4475E78CD46FBEC0B4B6DDCCFBD3FD2E0 -:10B920008F2AE642576E1757EFFB21A781F4F232B8 -:10B93000A2DF35E9566E5FD5FDFD38FAD39BEB608B -:10B940005628F7F747D07A2A7F2D8CFCCC17F6FDC6 -:10B950003020D43FF7DF9D8F3C4FBF10C9A6BC8479 -:10B960007C1CC3F705E5AF5FFB2C9E2F97ED3A607B -:10B970009D05E523FEEB1F3928572FBCC4EDA96FA9 -:10B980002C0D4FA38F73F896A8472C89E8E783CE38 -:10B990003A33F6C596B1137C596DE185E3E102E0D7 -:10B9A00001E7057829427DD01E3EA6223E3AFC27BB -:10B9B000E2E3DBE95CBE5DC3F03C3A8817C5C3BF78 -:10B9C00047FAED0ACD9F7FDFFF430ECA9FCBCDF72D -:10B9D0009EFFCFE6FBE87FEC7C39BF774D77119C6B -:10B9E00046BE6FCDD7AFFC82F23B22DD04EF15AE31 -:10B9F000F7DDFFB1EBFD7F86DE1FFFC7CEF772F4E8 -:10BA00007E5BD03BD289E79917F6FD23995DC5BCD3 -:10BA10009BFF97CE5BDAF1C355F7915CA8FF2EAB85 -:10BA2000FDC49D42D6489B7648B7609C1FED9F465B -:10BA300030AEA747D84BC8FE1CD1E541B297AB59F1 -:10BA40001E9D5FF8BAA874AE4341208087B712727A -:10BA5000E95E153307BA2C82FCF0A4328AFF32EE7D -:10BA60002B47848F2940FBF4D012800BFA391469DC -:10BA700072E219757E177E4F09D2464CDF4CBE9993 -:10BA8000E2F8F31DFAFDD5CD867DD28D2E7D7901AC -:10BA90007B291ECFED0AB22C745F6214D60FD957E2 -:10BAA000FE23DD4978B991D52C733AAE1E4FB70805 -:10BAB0003CB5C6C3BFC65B2B3C897DB459D437E2C5 -:10BAC000CDEC78A01EDB9919EC8BF97C693F2DF742 -:10BAD000C597C32713FB6DB3185AE2D7DC859FCFF8 -:10BAE00086F44B789178BF5A7C4B3A19F12EF12BA2 -:10BAF000F166A4432AC6F8F50FE2BF8B39D78CEB69 -:10BB00006E88B0EBF3CD313CDFA55EF5D27AF473ED -:10BB10003EFFCE6D46BB7E982386E2428DF71166CE -:10BB20000E8C19A0C07C93CCCC67837D289EBD91E0 -:10BB3000DFF57EB37F690A8EC3FDBB5DCDDC7F0D73 -:10BB4000ABDB179E47F53D56C8173E328F79A07E76 -:10BB50006112732BBC3E8B8EA5F038A6C6F27B9B80 -:10BB6000D8AE309AF75BD889F997727A125DD0ED2A -:10BB700083FE0DE8D7638AE5EDA3F2A8BDCFC4DB51 -:10BB80007BCC90764BE3710A4DCBB95FBEF0BEAE75 -:10BB9000E9283F460FD7FB99DFEAC9FDD232ED9B7A -:10BBA000E1227CA9267702DD8F589649FB2335DCFC -:10BBB0005BB61BFDF43B789C4EE18A3BC6F447F82C -:10BBC00076C4B911BC3363770EE0F5A7DEFD07F844 -:10BBD000AE6D0DA3EF9333B4A53D311E40714DDF23 -:10BBE0000D1F664E3A644D8021B4DA71E7D14F38AB -:10BBF000D6B7F37D3C9F1C3B51A5FA63198FF764C0 -:10BC0000CB601C281FE3FBD69C00FD8D814D079661 -:10BC100037863993EF04F80B857FF8215C2F086F86 -:10BC200038D35E72205C5DD353E1FB18D676BCF14D -:10BC300051597FB8B20ECF99BA8DE0FE7B591FFBE8 -:10BC4000C17E3FEAC9FD514F8854E601AF547FF6EB -:10BC50004A5B631AEE7F565A023D2175F41ABEBE46 -:10BC600027E06F742A1BB516F17EAFCA3612BC4DA1 -:10BC70008574AE1099E1423A68C0D274BE5293E224 -:10BC800042BF58E3B0DA009E27343E91E2AE76110F -:10BC900095291E48EEB71A8705BAA31FBF29979F9B -:10BCA0004B1C773644E27E7196C3CEEF498AB8A228 -:10BCB00039E25E4CB7EA8607AFC17DE8A32A9DD77B -:10BCC000CC7994DFF7FA8BC3EE5770DFB646DCD73A -:10BCD0005CA58F23624E37F98166D50CB3E27E7383 -:10BCE000B6C363C579FE31437B1DE725EF17F642E6 -:10BCF00022409785358514AFA246C1BAC3756276D6 -:10BD000045E13ED81887542EE28E64FEA170ED30D6 -:10BD1000F2C3CC68D70EE4972F2BD3C83FAA0ABE34 -:10BD20001B8D7195789E616E484478EEEEE922BED7 -:10BD30001C1DEB4C77103F8731C443A3C5998EFC83 -:10BD4000DDB83CCC84E772A39772BE867566374334 -:10BD5000FBFBCD2C1CCF197E27DA4F5B62F66E8081 -:10BD60007C173B3347C6225FE5125FDFD24B7B0275 -:10BD7000E777EAD76C20F2C3AC55ABE93C46F20555 -:10BD800033D7E7C7C138A736A7E4A1DC6C91D3BD90 -:10BD9000867F81ED5AF861A2427C00E98134E28716 -:10BDA000F10D38CFD1C303DD1766E17EB49479502D -:10BDB000BF273037DA09CDAC89CE2B9B1D5617FA39 -:10BDC000BFA43C917203E8EAC17BB7920FB680BE74 -:10BDD000375B18DB5A65A7F4F92A2733F7606C7BC9 -:10BDE0005502E57754B928ADADCAA0EF2F55B92952 -:10BDF000BFAB6A20E5F7547928BFB7AA80D2D7AA8B -:10BE0000BCF45DCA25C00BC9212957A43C9AE5B0F2 -:10BE1000D27D5F29978C7C331DD03B348FDA93DC45 -:10BE200093F20EE761CA0BCA2349DF54C5EB4B48B6 -:10BE30004139D63015E93F523DF7C22BB82F2F724A -:10BE4000B8699FCEB8DC6B067E45BC245BD95EF436 -:10BE5000CB56DFE969BC2F2588FFDB8B14660EE12A -:10BE6000AB3B2AC29839446FCCA88CD1E5A7557E4C -:10BE7000FC4627E8FF9E0E5A7C06C071FC375FAF78 -:10BE8000FF237C7FE637677A20BD018ECD8FE3B834 -:10BE90008BC35BE088C5FC320B9D737513FE936EFC -:10BEA000C27F82FF903EF27EF333BFF91BADF3C633 -:10BEB0004A9B0BEDE2CF915E80DF3F097ACDACB4B7 -:10BEC000111E0B977FF5C22BB8DE175B49DECD5CE8 -:10BED00026D6A3E15EF397898CFC126055B34AC065 -:10BEE000DF97BFB60622A0FF2F15BE8E15300EA617 -:10BEF00061FCE1CAB73E4339A0541EA1F3770DEFB0 -:10BF0000E1217C3ECB39DD3DE9CA37A91E6BE81241 -:10BF1000837E1379CF38A29FC7EA82F9236F23FD6E -:10BF200066661C648978CE52A338D185385B7C9FC5 -:10BF3000BD92BFDB80713C13C1FE1B92A1123D2B51 -:10BF40007B9A29FD14F52DF9936B484F49BE9DBD91 -:10BF50000ADAE1FAA8C9B5CE0D91C733C5F7591968 -:10BF6000264AE5F731D82F9EFFADCC9D82764567F6 -:10BF70002CCFC2346F0AE2B7B363945909E1831B33 -:10BF800032CC020E46ED3EC54507E90319A9D63964 -:10BF90005974BF8FF4981C676646DE0A8C2F9DB9D2 -:10BFA0006A184A61566D7127C4433D6F4B3FDC7E72 -:10BFB00063761E475DDA8E1E917EB553F8E7B53481 -:10BFC0006FF2FB16EFF8FD8ED7A0E7E22F6C44DF8F -:10BFD000E23E226E2BCB3F60023920F5FEECFCDF07 -:10BFE000FF398ACE2976F1F84E48B99F757111F75D -:10BFF000CBBA617DB5715E7478C717516DFAB177B0 -:10C00000A957E4C72E577E8A423B42CE67E4BEEF73 -:10C010003B121CCA253A272ADFB7BC635B715E4618 -:10C020003F768BBF5BF8F5CA1717B4E9EF36FAEF26 -:10C03000966518CE0FCC8CEE8D49FF1D53B3A2F13F -:10C040001CE07B719FA4BD7D8EF47F97AF854EE28F -:10C0500060BD9A5DD178BE75A11DFBFA6806D7FF59 -:10C06000E785BFFCC27695F63D17B647D2BA5AB0FF -:10C07000FD9137F1DC71C12685C02863F5843FC08E -:10C080002BB387EA358C638B6B0D77B3BF4734EAEC -:10C090009592DF475620BFCDAF553C9B019E66BBB6 -:10C0A0002BBA43083C5B91DF807F4A6CB50308DF05 -:10C0B00002FEA7514EF60FD69B5FF708F997A1DE57 -:10C0C000376417BD1881B10288F7F711CEB3EBFAC8 -:10C0D000BAF1BC707EEDCE0564576C8F70A25FE143 -:10C0E0008C885B96FDEC12FCBD2B83DB3167C5F9B8 -:10C0F000D1D91DFC5E3FC289EBEC8CC2FDD0B2DD14 -:10C100006B02CED732F8BEE48E0CBECE65FDF9B51B -:10C110008D51DDA1FEC9BD1F537A58D49FEFA8CF22 -:10C12000417D7C7257049D7F9DDCF5D4A8D761BC0E -:10C13000F3B5C3E2715DC8FE3FCAB050FDF3EBD466 -:10C1400002C417F3F3B89932C46FDF5038E336F8FE -:10C150005242D71F8F1F3ABBEBE5285356909E657E -:10C16000F60A7BA209D7D19D5EE4EF68641E80D7F2 -:10C17000BA6B9C0F7558795D2E43BEA6F59748F5AE -:10C18000579A42EAD92C6E8A33B5EC2DF48837548D -:10C19000F83D2711C73F52CDA273C5E97D5C936F6F -:10C1A0004739F9AE85E8B130D33519E5D3C57A956D -:10C1B000219C0B535800ED9345F7466E403D26E118 -:10C1C0009EDE97CB83D2950AF3C0FC4AFD2AD3208A -:10C1D000ED0CF4F7213F2534F4C738C9C6146E5767 -:10C1E000C8F8D1278B4C1E2BE8C19F3262E5FB0FAC -:10C1F0004FCCC1F3B3F119B49F3B6E653E15FD4AB8 -:10C200002FF1F8D2D2541ED7FCA488872F8D0DA40D -:10C21000C7417FE7047D4BC707D231EEA2F4A544A6 -:10C220008ABB3867E5E79EF81DCF594BF3A0BD8365 -:10C23000DECDD064FB98107E2A9DE976613D35D62F -:10C24000EDCA7520BCCE6FC8CEDD1DC9D0CE35BDC0 -:10C2500012C9E3A69E0BDB680BA19B3393F39F7C73 -:10C260008F83DDC6E38C1EB3F0B8D4C73627FAFD42 -:10C2700021F87ACCA24D453CE03CD0BE9F6FAD4941 -:10C2800047FB57C23B3FAA86E03C27F87D7E780DEE -:10C290008FE716F77BB13EE61B451C7AD3361BC5EC -:10C2A000019D49ACDF83E39FD996892FF200FCFE04 -:10C2B000B97BA91CEC4BA067F1F3B600CEE7F436CE -:10C2C000EE8F3E6DE1F6DAE971092EA46FC1F8B583 -:10C2D000D3C95FB3C9A6A09FEFB4C2AC0958BEB919 -:10C2E00003C59F17575552FC7631880DBC3F046932 -:10C2F00001DE033ABD3993E2CD4EE33B0C0A7D5F8C -:10C3000089DF355633FD97888FAD7C7F75E6F9BFA1 -:10C310006786C67BCBB478933EBE4EF2892CCFCDD8 -:10C32000E4F22D57E0B97F267F2FA42CA2F6B1545A -:10C330009A27C73BD089BF5BC31A229FEA87F114B3 -:10C340003D1494234FB240FA53E877D8CAF75F6799 -:10C35000B65B286EBDF895480FC5B1DD778D89E2D3 -:10C3600029546EA7179B007D902ABFD94AF165F129 -:10C37000CF87E5D9C83E67B4CF6DDAAC8A71C026E5 -:10C38000C6796FE171C7A3D196A4F26C2A3F2DF252 -:10C39000A7F76493DD07FD7BF07E55F12F7FC5F194 -:10C3A00038A1E828B7BBEC246F4B5BCE790647A3D6 -:10C3B0001E2CBB6F5034DE3F641FA80CED16239E6D -:10C3C0002E9ADD9D50CE2ECB147277CF7A3A9F2ACB -:10C3D00011F7084A9E57F83934AC43BC9F59B262F2 -:10C3E000D0E3C49FEF5B580F98CFB9DA47A242E978 -:10C3F000B12093CBD396FA5637D52F81FAD84FC9AF -:10C400008A77A3089E2D168A5731D2F18ADB3FAF77 -:10C410005E51FB16FEA8E57E9656F367F5BFF8025F -:10C42000FAFF6E7B98DB475F6BE91EDC594BED5CD6 -:10C430009CFFD917C2486E9D8DE1F2E124C8535F7D -:10C440004F84E3E68729BEEBA309747F6F9E5FDF0D -:10C45000AF1C77512697E36571EE688C172CFB8033 -:10C46000CB41A0CB2DD4FE030BB537CE63BC68D730 -:10C47000B23E5F88207E38DB99D3E5EC8E9EA49F88 -:10C480001A63389F03BCC978DFEFEC0B3D73E91EDC -:10C490001D1A3DC00FC562FF7B36A636D91952DE84 -:10C4A0006811FBB800D444BEC13620DF8B2BB9BD68 -:10C4B00055625F45F12518AF3B208FD2802DB675B0 -:10C4C000DC2DF02BED2FDFC9147E4C1CAFA388139D -:10C4D000273BA8D68A725B13F662E97663DC2E2FBF -:10C4E000DF26DB03B4F1324E18F9D0A7509C4AC9BD -:10C4F000B23BE753FC7DC5EADB719D49F84BCCAC00 -:10C5000000F7698D8A4A703486B119E3D1AE0C1DEB -:10C5100027C49EDB151C87E1FB5FA5F807ACD9BDDE -:10C52000992EFA8EF91AE8AF7499B28AC64991FB2E -:10C530005D3E2F8927408715E3041B8789F276E645 -:10C540002DE134CEBBC5EECAE4FEA5C614D7C38325 -:10C5500091CEEFA9749FF7E24F7DA363DBB0D38246 -:10C560007ADE1A8C9705F88F6532EA677D26B7D395 -:10C570004B301E17E04C5FA78F17CFD8A4CFF7DA48 -:10C58000AECF67EDD2E773EAF479F7617DFE8018EC -:10C5900017F7E1787F18F7E198E23EDC65E3FB707E -:10C5A000CCE33E1C53DC87E377DC87631EF7E1981E -:10C5B000C77D38E625BE713F8E79DC8F6379782F91 -:10C5C0008EA752116F8974407E67AF86E9EE235DB6 -:10C5D000D8C7EF97001FF07533D54AEBE649AC4159 -:10C5E000FB11EE77EA3CC1EEC2F8E15571DA7799BA -:10C5F000FDF11E4AFD8A44A49BB981E258CB5FE35A -:10C6000071ACA579610EF47F342C3FB902C343B5F8 -:10C6100038ED47AC7FC1D2B405F15B567988EEDFC7 -:10C62000372C717D703DA71FF96158512CD9518568 -:10C63000A8E762DBA7A3319E9CADD2C78F1BE3C9DD -:10C640008D71E4463E90F6DF3396A64494EB5F6D21 -:10C65000B3AF42F8BF0A13F761A6D80DF1000E92EE -:10C66000270B1F5436A2BEEEDC8BDB51CD47C05EDC -:10C670006F43CFCA74D6A5BE6497B7E45729268AFC -:10C680004FD73CA4871609989295A6C6FB50CECDED -:10C690003791DEBC08F61AD9839FA8643FE03B5966 -:10C6A000A1F3C177B242F90BDFC9D2DF97E8ACAB97 -:10C6B0008FEF64E9EF4BF4D2C7E74F5C7200F7FDF0 -:10C6C0001356F5D5D59BED1D64C0A3805BD8B3B3DD -:10C6D000417F78D0BE5CBC3619E9BB687E73E37DD0 -:10C6E00040DF45BBC3DC585E84FF0772B108FAC463 -:10C6F0007B9745BBC4FDE54ABD1E9E25F45091992C -:10C70000F99CB1413E2C72324F0CB49FDFAB3E0717 -:10C71000DFC39AFFF6C7039CA9B8CF18D609E55125 -:10C72000B2C54371B5A53B7BC42C817E7BF7D06E2F -:10C73000EC05EBFA44CDA187A6A13EDCC9F77F5FEB -:10C74000AD7A398AE2CB04BF255B9CE148F70D3511 -:10C750003CBE0EFD676A6C902F36D4C48577770493 -:10C76000E71BE4839F884E401FEEE7293A48E72203 -:10C77000CDB562BEC3141FDAD9727EF21D2DB68C00 -:10C78000F77397C89F10FB0D39CF739907725C78C8 -:10C79000AFA36A6FB28AF2DCB47D0BEE43FE69D3BD -:10C7A00066F7EA8FF1A03DFE88EFAA15FF81CFE77B -:10C7B0002F6B46445D8BF6E70B16F768C8DF57F31F -:10C7C000AC15F715C566BF95E233B76DB062BCF224 -:10C7D0000D5B37D0F7B95B0B291E731EABA0FDE8CC -:10C7E00029F9EE81C047D170659D13E07E47C88F5F -:10C7F000A2707EBE07F6D11BF8EEC8C5AD4A2EC6A4 -:10C80000F94CF4EEB416C2F75F8B7AC675D27C741D -:10C81000C2C80E840F7E0FE40F0C76F769ADD7C542 -:10C82000844B29B42E265EEA4DFBB449814CBE1FD1 -:10C83000CE32EC878FAADC9F57C7D7419135103F86 -:10C8400001D7C97E0BD9B96566FE6E5319FC7D1DF3 -:10C85000A4DEC1AA8E5FCBF32374FC3C85C5EAEE4F -:10C86000D3DC8A412521F989A3D374F5274FEC6DD8 -:10C87000E0FFBC6039C991EB74F7FECA16FB5CF4AB -:10C88000BE211BAEFFCE787C21BD086A0FFD3E3E67 -:10C89000580FF97B93C2F73DBB6236A21FB0C8C4E4 -:10C8A000F74F5334FE7DC15EFE9D4D61BA75D82DA4 -:10C8B000CDFD47AE172D746E20FDED53F0EF36F031 -:10C8C0000F9AA2E51E3BDEE347FF84EE7EB7382FCA -:10C8D00044B8910E65C29F5496C1FD4965BE7A2B3E -:10C8E000BE9300F837C7C5523D7B1CC655D628E419 -:10C8F0006FC47431C559EAE3B4B03F8C7F5C7044B7 -:10C900002DC475622C2FC2778790BEAFF1B8D405C5 -:10C91000E8178A6AFDDED902F413A17FCBF0BE9935 -:10C92000A3B74BF811FD2B3A231E472BB9746F7335 -:10C93000FB012BC6E74D9C18938BEBC7C86752BE13 -:10C94000C3BAA6B8C2E6A38788CF9A8BCCC4C797D0 -:10C95000C3C7020FF7B31AF96F2EABB7E2FD94B954 -:10C96000BB1437EE4BB11EE2A533F2A5012F71B116 -:10C97000ADF121F1D4823743F93CC6F1356FAFE216 -:10C9800047F9D80A4F027F46F8DBC39F9CD75C4D1E -:10C990001B857242CE6F1ECE03C78179E038F2DC70 -:10C9A000820D34AED734F25F2DF0F2385B237F8CEA -:10C9B000BFC4FD32B75E32533A71B47E7D623B5CD8 -:10C9C00027932E75A4F2ABE59F050027EA85ABE51A -:10C9D0001B391F298F83EB84DF4BB8DCBB4546FF37 -:10C9E00064426FE19FECCFFAEBE29B85BC35B63732 -:10C9F000C6374BFBC0A8770A234D146FD9EC4825E6 -:10CA0000BB43CA5F4DE8156DF9F7544F837A1C1A82 -:10CA10008F4E0F69C24FB8303295DE91485E12D703 -:10CA200011E95518E6A4B8FEC2252AC55117423DA2 -:10CA30005788DDB262595A32EA912FEFEFF9B40FFD -:10CA4000ECF92FEF8DEF3810C6F96AB925DEEE0A42 -:10CA5000D6FB72F9C8648CEFF86AB56D8ABF0D7C9D -:10CA60000DEFCDFD0A65BFF98CF4DC79D3D1A8298F -:10CA7000D0BE74F9EE28BC3E50B29CEBF7F7BA6B0F -:10CA8000C37AD3B9EF862DF49EB173430EFA89BDF4 -:10CA90001CA72D7645F1F2919DD0EE28FDE7A1A7C8 -:10CAA0009D782F7C89A523DAA5A73F013DA9909EFB -:10CAB000237BE254187441E77091F49ED92985795B -:10CAC000F03CEA9CE9C05FEFC3FD626E6D7A40C145 -:10CAD000C353CDDB1BF7F7CB9F257BA6F88125E958 -:10CAE000F8AEA0B6A447745BFE14996E11FA1CED63 -:10CAF0007A4CD1AEC7F81AB4EB318F763DA668D721 -:10CB0000E3F7F2B57ABB706A4F2EB7A4DFB95B7555 -:10CB1000532E9EFBF986B38C0AD2C30E7A07789106 -:10CB200012EE46F9B4086D28CCFF3982FC0EEC9366 -:10CB30001B757496EF04CB7780873481AD16B24EA7 -:10CB4000AEBF6467A1F77487B1185D7E843D51570D -:10CB50007FA43345577E4342A6AEFC4657AE2E7F98 -:10CB600073C6B5BAFA63DCC374F95B06DEA8AB3FE3 -:10CB7000CE334E979F503055577F92B750573E79DE -:10CB8000CA7C5DF954ED4E5DFEF6A27B75F5EFA80B -:10CB900058A22B97EF22D7E17ECC86EFBFD82995FC -:10CBA000EF23DFA3327A5F6DF00813F733DAB83E74 -:10CBB0005AF45E0F47281F3C29F8F95296E751E4D2 -:10CBC00057F9BEA57CB7722BEAA3FE788E1950F8F0 -:10CBD0007EB83E11F9D858CF583E38E2E04517D01C -:10CBE0003266FBA94966901783AF39D8370DF253E7 -:10CBF000B7E7DC4AF941075F4E857C61D6DDB79A1D -:10CC0000415E0DEE73F022969FDDDE97974F6064D4 -:10CC10009A94657D3209E365075F9FBACACDFD2806 -:10CC20006DDE779729E203EF89233E300D001F6305 -:10CC30007A10F818D3C3C0C7B32D8CBD097C8CE91A -:10CC400011D89FE2F777607F8AE951D89F62FA3E58 -:10CC5000EC4B31AD877D29A61F554DA1F4932A8D4C -:10CC6000DA7D5A5544E9675515F4FDF3AA4A4AFF9F -:10CC700054E5A3EF877B4BFF4340F77E687BEF844F -:10CC8000CA734E79AE595DC11A22506E349863BE94 -:10CC9000B607CF2BDBF71398D9D721F65AB6E2F9AE -:10CCA000A0378DDFC54971E2E2FB1D29DA2748E78D -:10CCB0003FA44CE8D157453D56F10686DAFCC1D475 -:10CCC000F67B905B7B733BF9DD2CCF31EC6F889D5D -:10CCD000DF4F1E62E7F78F8798EBAB91BFAA7F64A7 -:10CCE0002E8CFF3910C9DFFDA8BEDFEC473FA872CC -:10CCF00089AFF3A1F18CF2D53F36D07DE5214E7797 -:10CD000002EA2B996F39F7C77F21713EF21C5EC68C -:10CD1000F7E45FAA1F81F6C25087D5857224346E6E -:10CD200000CFDB0F447E2DE161389E3CDFDFF42332 -:10CD30000B987282E7F843ECF529E837187A97DD0B -:10CD40001D1AB724CFEB954B0D2AFA55657C921C22 -:10CD500047C21B6986FEF282F147439CB5B978DE73 -:10CD6000515DE6A0FE3AC1776B1ED5F3A8D4AE366E -:10CD700017FD72434B1D14072BE3043A8979433D99 -:10CD80009A67FE258DE224868A3809ECC7CECB7DD2 -:10CD9000D8CFD0F84022C6810DADE0EF90AD57F866 -:10CDA000FBF3326E01EB4784AC5B8413FBEDFE3783 -:10CDB0008017ED288F87F03B41EEEB5C222FCF1DD3 -:10CDC000EDC3C9BF3542C89A8F53B4CE59786FC5E9 -:10CDD000E6FC7304ADEFB4AEE8371D27ECFA7FC173 -:10CDE0002FDDB0DD7F9F5F3C9CDEF8807F4A6BBE0D -:10CDF000917491746E8F8F24DD43E2CC88CE2D71B7 -:10CE000063A21F237FB5C757929F86D839DD91AEA5 -:10CE100018A726F948B9C4DF751B5A6A277D27F978 -:10CE2000C8C807ADF988F365F5DD76EAAF351F05AB -:10CE3000E98FF8F8F7F9A841C5F3ABABE59F194DB9 -:10CE40006C5434143D94AA6D45395278C9F526E6E0 -:10CE500067B161A390A564F9E358DEBF75B9F65DCB -:10CE600093253A84CF86083EDBDF4E7FB29E7CF767 -:10CE700042F67FBC9DFAEF0ABBE1DD3019A7E271F3 -:10CE8000E40E08C68D2E1AC9F9AB204525BB6344B4 -:10CE9000167FCF9C39B89DED82FF501EDFC4B4C30E -:10CEA000D129F8EEA897DE1B1D156F786F54D8E7CF -:10CEB000058673FE9BB26E20FBFCA6CBBC5BBD2C33 -:10CEC0004BDCDF49612957F9AEE86FB3687F78A57D -:10CED000EF8AF2F768F3C57A4F12FC94E652D9E074 -:10CEE000587C9F5D33A372398CEFD1E6E0BBAD3E39 -:10CEF000CADFC8FC94DECC0264478C014584F95B30 -:10CF000018A37BFB8722C64EC33B8723FA8EE88E8D -:10CF1000DF43DED9F3237C0B54EDFF3843DED93BEE -:10CF200098EFA2FBAB07ED696487E27AB584F84B12 -:10CF3000DF06FDDC1DE67708F437A66F80FEEE0EF7 -:10CF40007AF42DD0DF98BF296309C376A35CFAB8C1 -:10CF500027D9FE66E708D8A8B58FBF9B735EED8220 -:10CF6000F87D37A6673EF2C5BB31D7E4E37CDF8DA1 -:10CF7000E964E2A9CD4A69F62BDDDBB293E57A08D4 -:10CF80008E378AC633E257E2D3884789DF7F039F13 -:10CF9000EFB485CFADB88FC0FB21F68FA31252F14D -:10CFA0007C93CBD9B28864F1BEE87B396A2AC6FB90 -:10CFB0000E223887565ECBCC78DE6EE7783A59C5BC -:10CFC0007C88DFD3380574781BFC7BCC3CDC141ADE -:10CFD00007FD8A4DFB13C271729D4AF7F5CFBF144E -:10CFE000467EBB537EEE975C68D21AB3D06FAFBA61 -:10CFF00056B9D1DE7C57253F30FBE950F2F8C8AB7B -:10D00000E0D74DFC9D8352FBA836E929F797CFA5C1 -:10D010007A68FD33C3EF4B74B1F1F720E4BB94970A -:10D02000FBDD962E362EAF257DD759851D00FD0CD4 -:10D0300000399BF47038EDB7F674F4FC88F3837D07 -:10D040000CBD3FD5DC2592F4D34111173734D09B6A -:10D05000DE5B2B10BF23F096789FFDA08897FB7BAB -:10D06000BA66CE0678DF721DEC82FE87EB193F07A9 -:10D07000BAD1C1DFC3BFDAFDB9235BECCF7358CEA1 -:10D0800055FDEE410795EE530C65E9740E3F02E144 -:10D090004539F7F62C33EAC990DF3DA079FD6FFBE7 -:10D0A000DD03C69A549C579253614FA65CFDEF2056 -:10D0B000A8625F257F0FA18017B5FA1D84A7A20A79 -:10D0C000785CBE636E9BBF839024DEA9662EAE376C -:10D0D000E4EF208C4CD0EB9111CE61879D94EAFD5A -:10D0E0003C4997891F1B9D2DF4C7D5D2BF8C11FDDC -:10D0F0005BE24CE379FCD350ADD7C3E89F1F116FBF -:10D1000071FB5DADF9E03FED774EDAA393F1F74F98 -:10D110008C7432FE1E4A925A6AA67720059DA6C0DC -:10D120007F48A7EBC5EF55E4E3EF55B0FF7774AB4D -:10D1300036D0ED7BB6AA3FBE5B7AA190CBF5F6F474 -:10D14000FE0D299EFBB341FE3C2AFC47D23F22E361 -:10D15000728DBF9724FD00325ED7379CD3DB773CBE -:10D1600082CEAFEE511B2251CF1C37F1DF471AD8C8 -:10D17000417B1CE5D38CAC0A05F191C0BC3BE702B6 -:10D18000FCD3FFCB968CF9E9DDF87B912C8BFFFE6D -:10D190008F846F7A128FE77A265BE17E3F378FDFCD -:10D1A000DA98CDF701916E27C599176631113FCBFB -:10D1B00092A767237F1E0DEB89FCB786FB031BF04C -:10D1C000BDCAF8E07B9568A7A35DDC55D8A5D5C797 -:10D1D000EC76CE874CA7FF33FD765D9C73EFAD4EAA -:10D1E0005D3EBB364157BFCF5E97AE3C3790A12B1B -:10D1F000EF7BC4ADCBF7AF1FA8AB7FCD671E5DFE45 -:10D20000DA86025DFD41A7BCBA7C126B7A02F17B23 -:10D210002C3B95DF9F50849FC4C5E931FD9E8E74E1 -:10D220005F49EE3F64DCBB26F8D9B8AFE966E57626 -:10D230007D7522E3FB56BBD89F32FDFE461371EB92 -:10D24000D2AE673E7DDCBA8C576FD907897D8EDC04 -:10D250004F84C4AB7B107E19AFDE4277F17EA8917C -:10D260005FBF167437CEA39B95DFAFABBED74AF72F -:10D2700084247C46B8D40CCEDF9BED6DBF07F55DF2 -:10D2800036B713F2BB7BCF21BF3E0DE28AF0D96ADD -:10D290003C7703FE9E40F5AFADEEA5AECB8F37BD1C -:10D2A0000F9FCF347C37378BDE5FA57B81725C7339 -:10D2B0000E1FF75C1FC1E786F1A647F3F838166D1D -:10D2C000A57B2DED8FC7F19A6065CBE8DD2A71CF84 -:10D2D000E38E55B50FA20B759AB5C6C21F1EF05B43 -:10D2E000D08F367A38D889B9E85F7DF85107D86988 -:10D2F0004F579AC92F1691639FECEB1EBCB7D30D05 -:10D30000F669C827A391FED0EF923E3C3E3D0B6DDF -:10D310009F0EE47F6FB96F61D3C97F46F2BF0DBE28 -:10D32000237E94F3F89FBA7F21F9D78827B92F6716 -:10D3300042AF75177049FCC97521F127EFBFB8EEF0 -:10D34000B478373AE81E4D01C6E549FAADE9C3FDA8 -:10D350009CD3053EB01ECAA3F6EA8D54B3A2F1BC1D -:10D36000A099B9A29D97F19BFF0FDD4B21FCB777E8 -:10D370009FAE3D39D14A3EB473BFAE3DFEA47F5748 -:10D3800071CF2E444EF07829410F7F7713C525DCED -:10D3900017A95FC70FE570FCE689F504FADB91ABCE -:10D3A00097130CCF3FAA97AB424ECC6DF9FD10FC02 -:10D3B0003E67B985EC6EC6BC8F619CC65FD658E8E7 -:10D3C0009DC7A11E46F6CDCC758A7F8312FCDDAECB -:10D3D000429FE19D16F527B20FBF5FA538F1F71FF9 -:10D3E00066ADD497CF73F0DF1D99637CAF469EC7BF -:10D3F0005D665F5F9523F4BB9BB9C92E137114451D -:10D40000A28ED12E6BF6F3F346DC97ABDC8F45F1A1 -:10D410007752EFBBF0BC2BE41D16C06B7806EAF127 -:10D4200065E636E3225BF0DA4EDCC7398788FB70AD -:10D43000F03897E65D61FC7C589EC389FAE77C175B -:10D44000A91CEB636FE77379FC8A3C7F339EEF3551 -:10D450003B4C743ED5BC2B92E21CF0DC2B1AF8E15D -:10D460008C6967C7812941F8B40655776E644CB55D -:10D4700025BB693FF95E776D5B0EC6E99BDD7637AC -:10D48000E4EF771CA477BC460B3F9811DE96DFF1E2 -:10D490001BCCDFD569F6717BB7B980BF7702F291FB -:10D4A000E17A92F11CE3185877901606AE2578AE13 -:10D4B000F6FC6BC2A55C7EFE7B6910B5D7565E4B51 -:10D4C000F96ECB1EBC13EF194DAA9E67C150808622 -:10D4D00027168F0C87A60D5DFD4BC3916EC3943646 -:10D4E000CF2FDEC9E17AA5C1706F41A6D7F5E17AE9 -:10D4F0007532C6E6F40F89E75AA2D07A58A83019D7 -:10D50000DF45F25CE62FD688FC489E5FB49CE71BA3 -:10D51000C4EF2A6C11FE169C37A6386FF40B6C17FB -:10D52000FE189C37A6386FFC8EF20BF328BF308FA5 -:10D53000F20BF328BF3045F985DF67326F72AECA50 -:10D54000CFEDF243D6079EDBE587D847786E179A72 -:10D55000C773BBD0FA786E175A8EE776A1E5786E5E -:10D56000179AC773BBD0FA786E179A67036F0CE6E9 -:10D5700051DE79C6E9F213C0FECF0F59DF786E177E -:10D58000DA3F9EDBE9FAD3EED4B5BF9D55EADAE384 -:10D59000B95D68FD19958AEE5C6F86788776D6DA74 -:10D5A00038E29F7D295E5B1FA0EFFF89F8E7DD165B -:10D5B000DC2FAA75F3F9BE2DDCCDE95C53C0E96E12 -:10D5C000E2F72C94A6A944E7C5569E1FC9E3BC8D7B -:10D5D000FC83E762F9167E2E86299E8B618AE762BC -:10D5E00098E2B9587E0F7E2E86299E8BE1773C17F4 -:10D5F000C314CFC530C573314CF15C0C533C17C319 -:10D6000014CFC5B01D9E8B618AE762F81DCFC5306F -:10D61000C57331FC7E1CCFE72C41B8D09EEFAEDB4A -:10D6200057021FEAF6954E5D1EEDF9D0FA68CF87D6 -:10D6300096A33D1F5A8EF67C681EEDF9D0FA68CF8E -:10D6400087E647E5B8687DA15D1FDA0EEDFAD07C6C -:10D65000768DEF0DF49D8D59F7CD614C1B2295A76A -:10D66000151019057DFC93F1FCB2214C498E01C9BE -:10D670006959B279723EE435114799C39A4CF4FB6B -:10D680007BB879C4388700A3B8D5EC1F13A97CAA4E -:10D69000BC7F87FF80EEB9BB18FD1E8D3C5F97ED08 -:10D6A000DDCCA9622AEB07F36DD7338E2FEB91FC0B -:10D6B0000C81036F5A63BC4FEE62471EC6CD6E11DC -:10D6C000BF8FBB65298FB736F2D562612F6D31ED03 -:10D6D0003C88F7699A0A15BA779D6E66472C798857 -:10D6E000A78A3CB42366F789117AA9E23AFC1D3176 -:10D6F00009B7F483829CA0FB89839BEA4744433F9C -:10D700009A6F18FD3ECE682BB71FB01DEE2B7BFB2A -:10D7100014CFC610FE5E20EC71CDC7C77FEE99B165 -:10D72000BC5D386FF7DC335184C7B1CB148A3B1B27 -:10D73000BC9D79F01EF43D429EF6DE1E5071BCC2C7 -:10D74000657C3CD96FE1BA64BA175AC81AF2F15E27 -:10D750000BEBA73094DB126F30BFC338BF74582A6D -:10D76000E8C7BED2FB5443FAC58CC4784456C7E818 -:10D770005DD131FD3ED4CD97C83E80FA25BDD6D3CC -:10D78000A7D03BCE637D4B96225B8CF1DDF946073B -:10D79000ACBF89B9535CA48AE8FEB184A79767A798 -:10D7A00009D422CB62F5A63005E9CD0EC585F00F70 -:10D7B000ACFC8948EF5CB785DE551E67765AE89D5C -:10D7C0008E76E2752E3A64BC8EC15E30C4E5542F6D -:10D7D000FE2C19FDCD0B234DE43759B83B82EC06E6 -:10D7E0006DAD42724DDA418522DEEFE2B2373A4C3E -:10D7F00046BCEFB4507F325EA72CCD9F6CC2FB09B4 -:10D800009D37E4C4AA64073C8FF2F0ACEFE55B07F8 -:10D8100062BDE5FC5DD18BCB76F3DF1915E73BF2FA -:10D82000774B678BF8AFC26C6F34C6C3C8DF4793C2 -:10D83000F764E4EF924A3F4FE17B7DDF44FA16AE96 -:10D8400017EF7EAF2CA4FBEFC6B8AB1261FFCD5F24 -:10D8500066A1B8ADF906FBB044C4655DEEF74A0FAA -:10D86000F531D887F27772441DA676F914FDC2F21D -:10D87000DEE7340B9703D376323AAF9AB664840965 -:10D88000DFAB66BB39FF4C5BC2ED9C69AF7AE8FE4B -:10D89000A6B41B3F10F6CCF84B4984FF8F85FD32B0 -:10D8A00009E35501CFA31BC2441C5B22A5932FF1B2 -:10D8B000F8D5F10E2E0F1AF6F177379A7D366E579E -:10D8C0001D66FCDD38037F8E33FB4D78A1D13D18FA -:10D8D000F813F263D01E82FEA6A07D1487FC9E3250 -:10D8E00092E2210B14BA4764E4F7D1968A3730DE0E -:10D8F00076F466E6F6B1507E073EC6FE7C0ABDC7EA -:10D90000A0897DAEE46323DF4F8F10FE2907F73F28 -:10D91000B5F829D056C547D47D7F9B8CF1C4D3D1AF -:10D9200067D899A6E1C1B8BDC82C5EFE8F17FF3637 -:10D9300079196E7ADAF15BA8BFB4123E34F9EE447D -:10D940003B7E04F41FA0BCBCE3AE5CEBCC1079F9C9 -:10D950007F018165E5A90080000000001F8B0800A1 -:10D9600000000000000BED7D0B7854D5B5F03E7340 -:10D9700066269364122621901048980422A906383E -:10D980007941401E87C82358B40349143009C33B6A -:10D99000A878236A0DBDB499908001C11B340AA2F6 -:10D9A000E880CAA5966AB4DE0A4ABD838855EB03AF -:10D9B0008354EF6F1B86A7A0B546B8D6F67E5EFDF2 -:10D9C000D75A7BEFCC9C9399006AFFFF7EF76BF8E8 -:10D9D00074679FB39F6BAFF75AFBE4ADFCD28CFC2E -:10D9E0007E0C7F2CAC3F630B5CF43B9BA2E6A50650 -:10D9F000F3185BB12E27953919FB067F26F62C17F5 -:10DA0000FEF54AE6EECB584D9FE01D8AC6D8208D24 -:10DA1000E993D3189B83838CA5A1022C97B1B9A25B -:10DA20003E5D1BF2410B8C5713CFEB69ED8ED93E57 -:10DA3000A82F7704A7AAF0E89FF2EACA065818EBC5 -:10DA4000A3BA198375C5D8BCFAC02CC66C7BF20387 -:10DA500003E1919AEBA2E7CC1A1CE04960AC7A434F -:10DA6000FBC6616E1C17FE57CC5895BDD5C67020FD -:10DA7000E6B77986C3FAF298EE77627BF8AF88B1A1 -:10DA8000E3EB9E7F6ABD125AFF711B9BDD1E617F17 -:10DA900093340BCDB3B38131F730C6763538A87CDB -:10DAA000B2C1C5DC318CED6E48A3FA530D6E2ADB92 -:10DAB0001B72E9F9B30D1AD59F6B28A1FAAF1B743D -:10DAC000AAEF6928A3F285060F3DDF3FD05BA0C116 -:10DAD0007A1FB0E8C7EE82FDA5ABAD8C0D8135B6DF -:10DAE0006E66780E8B700B6E829FEE18C598971F2E -:10DAF0000B1B6CD7ED2C85B1A6758A6B35F4F33A08 -:10DB0000EDC79444285B9440CC0868E09BA207735F -:10DB100079DB6FB2115E1C8E2CB7EBC127A05F4D75 -:10DB2000839DAD87478F5EC6741CE7D19FD8FDBE2D -:10DB30002C84DBA1838EAC101C3FACBFD7061881B0 -:10DB4000C797E3867673EB62B5F5F0FEAD7C4F19AF -:10DB5000AE3B3E4FB37B016E19F98CC6BFAE9FE75B -:10DB6000871A94CB37EC7FE47D3CC77D59762FE054 -:10DB7000CFFC3DF96BD3DCD8CFEBC17EF39D2EBB40 -:10DB800007FADDD29C6477231EA4B2BAF63C9CA7A8 -:10DB90002B73564208FEB59A42EBC82AE0E37F8613 -:10DBA000E744ED5A6D330DED2CD40EE0A63BFA8719 -:10DBB000E09461653E4B01C2CBCB7484D700A621B3 -:10DBC000BC06C2F39802FE3E3639043F33DCEC005B -:10DBD000770BBC1F08A5BD2004C70C78AFC2735BD0 -:10DBE000EEF1392C1BE1C6E67922E0CF83B87E84C2 -:10DBF000FB6C07D1D562073F4FA0ABA9A980872B4B -:10DC000036292E4003B6C8E9BE7E0CD417BD666324 -:10DC1000ABA13E23D96D1F00F52E38DF1D505F707C -:10DC20007BBEDD0DFBAEC2B380752CDA3286E86DAB -:10DC3000911FCAC2E87479C3A603197B117F02BA87 -:10DC40001DE964914BB727E785D16DAB427461AE96 -:10DC5000AFD3545A77156393117ED5B767D9173868 -:10DC6000B1FE9A6D451EEE8BC341F68376016C378B -:10DC7000239BBD8AF4D505FBDA91C5E72B081B7FF2 -:10DC8000018E1F363FB49FE781FA7D5A028D37DF40 -:10DC900005FBCEC2D245EB0438109CBA36C2786E72 -:10DCA0009A87CE6361C06FD3703D569817EA735D53 -:10DCB0007E1BCEB3A039DF8E7CCABB81CFE36D491A -:10DCC000B20F87FA7CABCB9E81F08B0358A4D0FABD -:10DCD000FC3BE06816015C929D380F9B37CBD91353 -:10DCE0003EF3C57A17B526D9171B9E6FB2E17900AE -:10DCF0007FD323F18D83E2DC17344FB233EC6FD541 -:10DD0000ED1AAE47C0F7D4ADB1EB591FE8DFB6D975 -:10DD10009605F57F13F87B50C07546762047C17D88 -:10DD2000DF1AABE13AE7B85A697FDDF0BD1FE001C9 -:10DD3000CF17BB3C045FC00B1F03382C6A339E67B0 -:10DD4000683D1CBE8BDAE613BD2DB17AEDAEF075E1 -:10DD50006CD99FA3005CE6007D2B007FE6F2662273 -:10DD6000BE9CBEFFFA4CDA27AC13E19AA0B9A7A675 -:10DD700015119E101E4B7CA929E4F42BE7FBA3662A -:10DD8000A5F9FE28F86774BAD45F4D43BA84F35DF1 -:10DD9000ED8E4E977664DC30AF7D91E26F527AD291 -:10DDA000A9A44F4997924E25FD3E62F304D29410E8 -:10DDB0009FA9E9C3EA9E8D00A78C7C7E0E73C5B92E -:10DDC000025C5F41B8CAF7F67CCE8FAAB28DF48EA2 -:10DDD000E3E1B8E704BFAA2A0DE4DC9A176A2FE74B -:10DDE000AD4AE6FD10EF11DFCE8973C7F62BA8BD53 -:10DDF000E063825F2CECE617BBD7F4477EF18CA280 -:10DE000021BF58B1F140C69D00B715BF8CD7100691 -:10DE10009FDCFCC42D03B251BEF9E9DCE4BA16FF65 -:10DE2000359FF8C412219F170522F38BEB73BD6A4F -:10DE30007E71A8BEE8BE5F5EE6E5FC2680FCE60FCC -:10DE4000BF7CF1C85877489ECAFD2C6879D736DF69 -:10DE5000190E3FBEDFF5B9E7E6E3792D74DADD2A66 -:10DE60003C5AD83C9FF82F4B635A8E123A7F335E50 -:10DE7000CC6F5674EA573FCAAF7E8F7C7AE18699A1 -:10DE80000CE5943C379898B15121F92AD77F593E37 -:10DE9000A7DB1FE4F3FE73057ECFAD9D641F908268 -:10DEA000FB9D5F886AC51CF17CCE22E3F3EE7373A1 -:10DEB00075F3F9B5482FE7DAF9B99DDB6023FE73F6 -:10DEC0006E77829FC1FE3E59F1FCDBD741BB8F1FAD -:10DED000D89E89FA4AF8B9B1427E6E582E8573638E -:10DEE0007D239EDBD8F0735BFA283FB7854FBDF5E5 -:10DEF000C717DCB45FCEEF36C6F8911F2F687F8658 -:10DF0000CE714ECB265B16B4BB3A3F8BCEAB9BFF9C -:10DF1000D7E5BB18C0776ECB761BF289AB251C4CBE -:10DF2000F400A5CEC2E80CE592921CD2C7647BE453 -:10DF30008FCFC03CB7DF1A9BC84686E6B92D9FF34A -:10DF400085857549C938DFC2BAF9F7B01121796002 -:10DF5000DEE789584E2F0B603CA4DB1393B4CC153D -:10DF6000849F968872F74681870F01B863011F0668 -:10DF7000C6B7FF1CE130F09FE234E41F438706FD83 -:10DF8000382FE237AEDB0EFCD301ED86DE1CFC1C25 -:10DF9000D73114300CFB6199904C25EB0FF51DB077 -:10DFA000EC1228B3555EB6E6733D09DE07F03D4B33 -:10DFB0000916E3FE257E9BF1D7CE1E6FC9463E961D -:10DFC000C2B42677085FE538125F253E47DB5FCB9A -:10DFD00045EEEF441687A73D0EF6977C09FB0364D8 -:10DFE0002D490EED4BAE0F7478DD82FAE33F0FDF63 -:10DFF0008EFAF389462DB3CED9DB7EDBA6F48FB043 -:10E000005FF33E25DD2C72709A06BAE98376C7B9B4 -:10E01000D6217D50EE9C5040BE41BF13B7C65A700A -:10E02000FD725FA897B318AE9763897A391BC6F55E -:10E0300072ACA35E8E25EAE5F43C3F99CB23164CE7 -:10E04000403D13F401CE0F029C4E3AEB87D0BEE464 -:10E0500073A91774BA8209C961FCFB649D909B2C5B -:10E06000B811E99BD50F614FC0549DAD27122C7993 -:10E07000889F7C7DB2DFEDB62EE2872CC1EE7E025A -:10E08000482EFEF677A7A4C27C8BDBB2F215E857C8 -:10E090005D5FD8590FEFAB9B5335E41B8B9DEEB5FD -:10E0A000281717FBB234948BF16DF9A7B7C0FBC5E5 -:10E0B000CD5768D8FE76857990BEA49DB08475FF53 -:10E0C000909DB054F0B5A5C82F015E4BEA0F0C75BA -:10E0D00041FF255A6C3ECAF7A55BB89D30C3C25AB2 -:10E0E0001494C34D9EA9C8C7BA1E5434D437D9C39B -:10E0F000C05F1D21FEFA7EAEE7B7C867D857807FA4 -:10E1000030FEE5288355DC57BB8EFB60A08F3CC1F9 -:10E1100070DD1ED2EBA70ABED1D9762CC19DC7E116 -:10E120008DFA3AF3EA16E4BB2B845C1B6CEF3A766B -:10E1300017EA3309166D07E797EFB8719FAFAB2C5D -:10E1400086E48D682FF8E9E09F953890BFAD48C808 -:10E150004E25BD6A8B4AFC51E24FAD58F3E2EDE526 -:10E16000FD116F16C37B94775BF121B0D0B56D576D -:10E17000F547BC5AB469CA033E906399028E27AD35 -:10E18000C199783E67B6A72637A25EB8BCE93206C9 -:10E19000EF176DBF2B13CB33DB636723BF9FEC9A65 -:10E1A000393909F6BBE4E1A47C354C6EFC45D0E37B -:10E1B0008DCBAF4A457BE0E6AF0F3CE2023B6E31D0 -:10E1C000C01AE1FE457BBCDF074D6E6ED893A902F5 -:10E1D0008D7D1DE3FD1CE1799365DF756390FF2B59 -:10E1E000FE9D03A8BD3BD5D58B9D7D1AED50C0E7A4 -:10E1F000E53FFB80C6F9D4F2E6B573A0FFCDCB7F37 -:10E200009588E3DC74FFE1512E78FED650EF7FA3B2 -:10E210003DFFB1B27DA70B05D396ED23506E7F8DE8 -:10E22000765A31E2B5E7BA3908F7D755827BB4F9A7 -:10E230006AF728045F59AFF6F7217DD61B60761781 -:10E24000962E46FAF21995D5A33E20F51AF93CA967 -:10E2500080C3E54C9FD64CC48B653B3767A25C39C5 -:10E260009BC0EB553BAF7F03F994F7F118AEB75B5A -:10E2700019E9C90B7D5CEF66B540AF0342F30F2C83 -:10E2800088A7F1966D2934C843D04BE8F9592B2B58 -:10E29000C3750C6EEACA47FDEB436B60319EEB879A -:10E2A000A0D7A27DFB17C1C73E6C55A7E2731F1014 -:10E2B00012EA231FB6FE2A61A833A4C72514B507A6 -:10E2C00090CF2D7F2EA940E52845F8754BB75FC448 -:10E2D0003975600AE9632EC4D3157B0F4E65BC0EF9 -:10E2E00082303A3C6F147A5877FDB967C8AEBB7973 -:10E2F00037D7276E6E7FE6D57418E7963D429F109C -:10E300007ACA7241CFB73CC7E1B2FCB963F685E186 -:10E31000F6486EF2DA81A0094E78F6F2D9F7BBD151 -:10E32000DE56C8AF52A965CE691C8AA5F4977491D0 -:10E330007EB83EB783ECF2E5CD62BCDC8EB5D9B4D5 -:10E34000DF997DC3F5A1890536EA27FB033CA8DFE9 -:10E3500097B1892390FF0596C7B5A05CD76F715A16 -:10E36000B16C5AEE2439FF709D25D70AF0D5953847 -:10E370000DF5B87A076F7F675CE20E2CF7C5F1FAEE -:10E3800097B19924A7BEB4789E5902EDEE540FC5FB -:10E39000A2FF6300EB3A60817A493FEF7505306F69 -:10E3A0002A03EA51517E04147CFFD96F3E2AC475BA -:10E3B0004C181C3CCF6069B6C6BC3993014F6A0A41 -:10E3C000C43EF3828588EFFD5EE6FC7A9B8DB5A0A6 -:10E3D000BC63560F9B05CF03C8BFF0FCFF66F1235B -:10E3E0003FDEA7041E0BD7BFEE1378EB8971B6286A -:10E3F000B0CEC7B3BC4B711D3F526CC35175616E3B -:10E400003507C7FFCCC6DF4B3DB65430E10C618FFA -:10E41000D9D3D39CB8BF26012F45D7593DAC6375DE -:10E42000DECB0B115FEEEE72B01898BFB42B8EF4FA -:10E43000DA8CF432926F4D022E8A3B05650E7B39E1 -:10E44000CFE28B81F5DECD1C7E6CCF1C26FDD71272 -:10E45000AB633F65DF6FFF86FC7EA0FAF9813ED09B -:10E460007EE09D8AD6046D6ACE9DDEF60E43FBD912 -:10E470009F8FF0BBB39FB7B100F6D779AEEC98177A -:10E48000CEFB6E57BB43CBE3E385EF63DFCABF250B -:10E49000265B42EBFBACEBF42F9F2FC2D24172A85C -:10E4A000749FCAFD4DA6F57C96E6B6D23975390241 -:10E4B000166CEFB4F81505DB1FF800D757EA7006A5 -:10E4C00054D4E31DB63F85CB19762823E9F41524EF -:10E4D0005AD837A02CF46FE2E737A18FD1BEDC59B0 -:10E4E000C0EDA49DE29C247C25DC985B67E172E68C -:10E4F00025E7CE6AEEC7E274FC4FE2F9B9BF669336 -:10E500007E716E1FE81911F44E591E463D03F487C3 -:10E510002FB3F5A7106E52CE564AA92BE4B02AC6E7 -:10E52000AD14F0AA745A387C2A4CF0117863C60BEB -:10E53000F3B9CBF3643F3974B04F169DE3F07F61BC -:10E54000747E7B111F3BFFF6E61A203796AEEAC7B2 -:10E55000BC59FF13CF2F103B0CF58AFB2DA457A0FD -:10E56000DE877AA2E41F5EE40323E939D703731937 -:10E57000F18D1A358EFC8C66BE21F985370ECA11D5 -:10E58000C8375A891FDCA9761DB428213E31B82C22 -:10E59000381CE5702798FEF83E6869A7E7DF146429 -:10E5A000137F18C40E0D203FAB35588C7AA0EA7843 -:10E5B0006CDB4910296DEB387D34D9FC0F2E41FE00 -:10E5C00050E9D450AFFBCC6FF1D9609D6D499C6F81 -:10E5D000B42D4B2779FE19137C64B69DF8C89516A7 -:10E5E0008B8FECAD39E9646F75B7CF71937FF5D739 -:10E5F0005FAB976DC1F7331D2477DB501E43BD6DB4 -:10E60000E3707AFFA2E44BCB385F6A9BA90F88C303 -:10E61000F733FB5B70BEDD29DEBFE1B9A7ABFE9F20 -:10E62000C7A23E79531C7B029EB765E90350DE3ECC -:10E63000A078E62CC6FEC3F9BA8373E29EDAC98FCE -:10E640002780FEA4CEFA841DE17E6FE9471FEC3BD4 -:10E65000F620C2CB57CA72519FEF44FC1C193A2FC7 -:10E66000B0CA597D72E8DC524CE726F1D56783F3D6 -:10E670004BE1E7B75A897E7E29E2FC947AC06FE2CB -:10E68000FFFC7CEE54397F672F696E2CD5FEDED4FB -:10E6900042585FD3AD702E2410837720BCB6AD4CAA -:10E6A000D0711F9D1656DB1E816EB30B85DF09A549 -:10E6B00031D0C33C410FF324DEAE32E16D7050D255 -:10E6C000E97881B7D0FFC578CF509CF753E5F028A3 -:10E6D0007CF8E67FABB323CD33BC90FB0BF68356BF -:10E6E0005A48F2B5D4A0AFBE99FF5106CA29F6D553 -:10E6F000814128775F49F18C2C04FE113BB48BFCDF -:10E70000E69D03BA6CB8CFCE391F67A05E34AFFE6A -:10E71000B7445F17BBCED5F135361C27A922CB16DF -:10E720008432B522EB20E2CF91E931EE98087AC825 -:10E73000FEE9C33250FFEDA81C96817CAF030EF0BA -:10E7400010AECFEA4E40FEC7F654131FAB147CAC9C -:10E75000A362087F2EF866D8F38D45A8D73A2D5AC4 -:10E76000B8BE602ECF02DF0C00DFFC08EC332C4F6C -:10E77000817D1600FDF504D867583F06F6199647C7 -:10E78000C13EC3B2A341A3F74D1543F604E19CBFBC -:10E790006851687CF4DF46D28B6F7C5C6501091F91 -:10E7A000F8AFF6E17816C80DD597B4F535D4176DE6 -:10E7B0001868A82F681E62A84B3DD2BBEA0AC3B8EE -:10E7C000E565858676ABE347D8F05C93CAF239DC21 -:10E7D000CBF209EE1DD74481FB35A309EE87A78F45 -:10E7E000CE40781E46B8A3FD66D512F01C24DC6727 -:10E7F00089390F9715F2E702EEA1E7E5BDCAA94FE7 -:10E8000010DE31087707951F21BC09EE1CDE2710AA -:10E81000DE3108F75C2A8F22BC87E1B800EFA20B3B -:10E82000C3FBE6DDAA010E373E6E8477EDC37D4D56 -:10E83000F01F6880E3A20D430C7509EF05CD467803 -:10E840007B57159ADA31B601E0508EBF001D1C2EA1 -:10E850009E467129AB83F9E281AF2421BDC1FAAD97 -:10E86000150AD78FE0A715E87016FE02F46575F259 -:10E87000F7CD73143FF225D489D0AE00B806E281FB -:10E88000CECA5D979D42BE743D723015ED7A3F95BC -:10E8900037B000D167350B527D1EEBCAB443798B7C -:10E8A0001A588BFEBBB71CDE27919EFF32FDDD4E52 -:10E8B0000589529B3F0CE99C3993C9DE8C764EC08A -:10E8C00029257F62CE51625FF05381FC1FFA75C427 -:10E8D0008FB8E30E3887CFE60747E1FC373BBC8FA4 -:10E8E000A65868BE3D38DFA736EFB0BEF0FCADE2FB -:10E8F000D11948FFCCD3CF6027459B6F136E16E02C -:10E9000030BF0CE0A4601C8EC3E5642587CBFE4DB0 -:10E910003176F4679C5C67237FE5E6F8CC4CC4DB7A -:10E92000936BA66522DE356E1A9689F83EAB65DAE2 -:10E9300059E4DF53D41935144F6DE578CFD8ADA421 -:10E9400077DD21CEEEB89B6901785F393D41F3C197 -:10E950007EBCBEAC445A2FD39DF9D06EA1D8F7C26D -:10E96000D6A533703CB9FF051B620CE7FFA3126309 -:10E97000BD92D943789685E76C0FBDC7F357ABFAC4 -:10E98000787BB1A3EBFFB0FD8D57C2C63B5E98907C -:10E99000827A0B1BCD467FA386FA4783EB970DFE49 -:10E9A000375EC909C155E2D36F0A3D9FE0F9C063E4 -:10E9B0008AB7012D913CB8A5DBAFB52F11E1B7297E -:10E9C000FEA57BAE44B8BCC7FD1C9BE36B887F7C77 -:10E9D000827C3B0BF9F4F519C130BE20FB07053FE3 -:10E9E0003DF2CBEB898F1CA84CA5784CC773DCBFDC -:10E9F0007C54D07D47C5F5D57700FFECD8AD929E0D -:10EA0000D7B1E7FC41F4D374B42B9A00B9257CDC70 -:10EA10008E3DC0CF91DF7A6CF47EFFEE5FD13ABFBE -:10EA20002F7E5EB157F0F32D7CFEC5560FF117E631 -:10EA30009D6DD8DFDF8BAF5F889F1FB1713CED38D4 -:10EA4000A292BF8DF9F443B9FDC3F0B38CE36763C1 -:10EA5000650CE3F295F39959154007A8E733773130 -:10EA6000DA949FEC29EF47F27283ED38EAD32EF85F -:10EA70008772DB0CC74A663D1E0CC3DF9B9F83F683 -:10EA800061EB9B85EFC3F0D98CAF2545467CFD82B9 -:10EA90007D9569CFE6EF0FF50FF13DFC09E72F9269 -:10EAA0006F49FC05BE55837C0DF8CA554580B73FBC -:10EAB0002EC8FA4D5009E32B17C9C736C57F4D72D2 -:10EAC0007073FCD784C7872B051E839E81CF3BAE16 -:10EAD000E1FA06F3CF267A9827F5089B2701FDA4D3 -:10EAE0004756F54DC4F7C79ACB89EE243D99E73BCD -:10EAF0002AF04FB69B67EDB26911E4A17795117FBB -:10EB0000D8AED984EF7798F02CDAF8E6F6729E79D1 -:10EB1000A678AF799EDB8A84DED95E7D51F3211918 -:10EB200076F727FD362E84972AF2812F1382A47F51 -:10EB3000CD36E86547CB46935E76B8E27C44FDEC83 -:10EB400068C5F9B74623BD95D904BDD752FF72F108 -:10EB5000DEBC8E8F84DE704AF08F1382AEE57B754B -:10EB6000FB9AFE7311EF57A91AF2AB23330A09CFB0 -:10EB7000CFF82B69FEA3152AF99BEE2F9A3217FDC9 -:10EB80004D723D72BEF26BCE27A03FED0B8017FA9F -:10EB9000C7CA6D5ABF48FA85191ED1C695F803FA3F -:10EBA000EC11DCE761E4A3F8D66B84D361EC0FEFE2 -:10EBB000676D5729DE6686D381E9C3882F1DDD2561 -:10EBC000F827C015F5F0DA878DE7BAA42DDEC46FFB -:10EBD000FA1ADECFAAE47A99E4D7727D87570DE955 -:10EBE000179E3775A1F396E35C2CBEDC28FAA3D8F8 -:10EBF000FC86E46FB2613CB0144DF3659BDE5F6E42 -:10EC00007A5F60AC5F241E1F13F823E5CFB158ADC7 -:10EC10003A521CEFE8D531B5E1F9099D45DC7FD3C7 -:10EC20005924E2DE9728B7FFA328B2DC8ED65FF224 -:10EC3000BDA70B3D41E4772C504EF1EC8BE57361A1 -:10EC400072FE4C11D27950B1637FA957DD58C6E5E9 -:10EC5000C2E6F8A7284FE3D346AE17ED6F8C213CF0 -:10EC6000FCF335FCFD9FFFED23D2A70EECDD9C18D5 -:10EC70002EE7255E9EDD332D11FDC2272B1E4B0C8A -:10EC8000B703E4FB8F2B1EBB672CD1B7AAF5762EFA -:10EC9000DFD61EE8A810F680D0176EB2B6FF3FB1DF -:10ECA00007CC76C014F5E144E47F667BE0AC5B4FB3 -:10ECB00074117C04DD09B972A380CF9F6D7A22C5DF -:10ECC000E9761572B962C24F0987D3120E1BCA7B4F -:10ECD000C59B53422EC8FA622B2378781D8CF465AD -:10ECE000D6A66818FFC234951238974315F98FA13C -:10ECF000FF4AB67FA65825FC96F31CD9A6B4A37F7D -:10ED0000E5B7CDE5D57760BEC38C78E2ABB2FD1236 -:10ED10005FEFF2EBC8C6A46B711EEF1655C3475EDA -:10ED2000DFB17EE1EB977A9AB9DF326BEB45D9D14F -:10ED30005EDFF644B46F83629DC1FDB1767742CF4A -:10ED40007E18AFC1FD2F9BA16A8DB0FE651BF8BA7E -:10ED50002A7DAA960DF5DFB63E762DD2C1897A9B23 -:10ED600085DB072E039EBFD95AF836B63F59C6E554 -:10ED7000CAB18AAB12310FCEB7C5A6E5B87BCE5764 -:10ED800053CCF3D2CEEE89B1A0FFF46CBD8D05C893 -:10ED90007FE1217BF9C88621549E45F871FB9ACE0C -:10EDA000FFC662EEE73AD1BAB03FA72737AD43E2DC -:10EDB000CBB15D6A993F02BFBA519CDBA9AF9E26D9 -:10EDC0007C7B755739C9E313157C9E53ABB44484DF -:10EDD000E7EF36A844C7277D7CFCFD7BEF4A1C0B80 -:10EDE000FB385BC1F77576CF9D6F8F817D062BA4B5 -:10EDF0003CE6724AE6F704370CA178EFA7CDDCFEBB -:10EE000096F42EE3E157AD3C9248FDA59CDB3DDB3B -:10EE1000B0FE8E5D27C80E3BBB0166E372CE998FB4 -:10EE2000F986BC3B5B32C378BEB32AE20DF5792D7F -:10EE30004679D6B897F32BB39EBB7803E8C1E89721 -:10EE400032D9790B1B0B134B907E510FC63C932785 -:10EE5000CA0FA6E23EDAABA95D85889B2D6C8B318B -:10EE6000F083CA66A35DB7C064C7F5B0EB4CF24847 -:10EE7000C2697914F924F5B90E61AF1CB579AA23DA -:10EE8000E553B41773F9330FE8370DE3444CAFBCC7 -:10EE900052C07B3DC2C7DEF5450EE8D31DAA361E23 -:10EEA000F5EA1E7460D203CBCB8CF0659A8F95483F -:10EEB0007F849BF4FBD3A8FFB7F41572DB0772289D -:10EEC00001E592FE6C31CA958BF51F5CB47E5E2322 -:10EED000F4F31A837EDE814DC2FAEFAFBC9EFC5480 -:10EEE00047AEB99EF4F523DD7E2A8FC14F25F5BAD2 -:10EEF0002333CA0DFA67D8F33EBDE58B47D3378F6E -:10EF0000213F263ECDE5D25A6147360B3BF2C80C75 -:10EF10006147A630A223AB556791F8D9A5EA6F0BDC -:10EF20009A8D72C9BBCA683F3E3FC97B16CF252662 -:10EF3000ED72C3739BABC0E83F34E1E740C6FDE729 -:10EF400077A12F00E0DE54C9F34EF139E6BF48B98E -:10EF5000C4A03DF28BCA0D97FBD7F3F73EB500D3A3 -:10EF6000E518AA74D4DECAEBBAC2EB3EA778AF8A22 -:10EF7000BC371BD48F6569B351EFC2BC9EF864FEE9 -:10EF80001E516420E075627248FEA15F3F9687D6ED -:10EF90007D89D06F5045D62B48D798EF735901DA49 -:10EFA0008C3C2F2C0D5DFA05347E00F37A824D13D4 -:10EFB000C9DF5CEE48E4F179B0A37BC7BF46AED7AA -:10EFC00095F5A5C90659F97AA2E2B36877217C0EB6 -:10EFD000D3C3068C223F9A85FC2D9BE247D8107F35 -:10EFE00067393D190807C07792AF1DBFB1131FDE07 -:10EFF0005FC9FDB01DD3476FBB1D9E8F78DA49BE38 -:10F00000F48EC5D20FDE95108EB747579DB0205FA6 -:10F01000FEFD1EA6611EE3D1DD5507DF80710EAC3B -:10F020005AB8B118E9E84D95EC06B3FF76D2D3E3B0 -:10F03000C8FEBAEE1A95F2BB0F97A90CE5DAE10DFE -:10F0400071063B24E4D755093FBED867A5F768EAA7 -:10F05000E462FE15FA37314FAB8C9FCB0B829FB524 -:10F060008B73FCB9D063760ABA69137473AFA09B33 -:10F070007566FFEEC39C6E0EEF01C301E4FA3B33ED -:10F08000169692DF7A0BA33874D674757D11ECEF67 -:10F090008A18CD86F09B34239FC3B342B160FCA68F -:10F0A000BC2CDF86F47E455FB70DF96879D94CAA90 -:10F0B0004FAEC8223B7FFF2A908F68EF2768194820 -:10F0C000974367C4042C89683716129FB8F28CC521 -:10F0D000402FF9813803DD5DFE78B2E1FDB02DE906 -:10F0E000867A3F4FB6A17DDF32233DC60D2D30F22B -:10F0F0005DC6F54209E729EA38F2731D0DC9517A58 -:10F100002FF511E9AF93ED015A06BED622E4C808E7 -:10F11000A8633EDDBA8A2607E64D7CD16ED5F8F8A5 -:10F1200055A41F38B29E73209D606815F3AB5AA496 -:10F13000FE29FCF74C67A6756D6018673D5AC60836 -:10F140009F62873205F5AF3671DEF7897981AF4E60 -:10F15000B2919F8E9F63DF191E6AC73C46FB200D4C -:10F16000E9AC00F184F7FFB9E8BF53E0CBD1B2C7F7 -:10F1700056C7213ECC66A46F4C516F5E8DF1C4A37F -:10F180003318D1497BE0E5385C3F8E83F9812F4409 -:10F190001BA7E2571FDE82EBD965A771CA1F671351 -:10F1A000104F2EFFD1B18FDF46F06D711D88653D88 -:10F1B000E5F088C7750D81937B86056C540674E471 -:10F1C0003FB9670EE9180FBCFCCFBB3E7E8AE1BC9D -:10F1D0005C2EB408FC36F3D75F3CF1EB05289F7F2B -:10F1E000B1736BC10750FE60F583E9F550FE7CF505 -:10F1F0004D5B6F7787FCA53BAF5DBAA30DEAC37E7D -:10F20000F8D3279F43BCBAF6A7FFE7395CEFB57F79 -:10F21000FBA313D67F59530243FA96EB33CF93C621 -:10F220005A148C8B221F25BE6CF5517DBECF68FF12 -:10F2300098E53EB6B702FCCAEB7F41F1E534D1FF59 -:10F24000F03577292ACCFBC17CCE573A1ABADA2698 -:10F25000DBA87D00DB039FA47CCD818380AD607F34 -:10F26000BB4FC1B83828481AC67B07C07BE4E7CC3F -:10F27000ED26FD2A53E2AFE02B78CD81913FD04AB5 -:10F2800078962BE291C87F91DFBF312A9BF8F2403C -:10F2900027D3F17CCB5EDCA0609EDAFB5EB7467ABA -:10F2A0004103BB7F32D8C997AB3CEF22B7ECFDB925 -:10F2B000782EB055ABB72034EE2EA1D795BDE8A47B -:10F2C000BCEDF77739B7939E7FE85A4BB87E58FA72 -:10F2D0008B3F3DFB3BC4AFF9B1845F66BDA543D016 -:10F2E0004777DDE6DE763BC0C7F71B07B7AB747721 -:10F2F00006D9E99A3B03F377BADBFD54C6D3B43F92 -:10F30000223F9F55154F7106195752CB3E5F83F42C -:10F3100038AFA4AE18F5F7743C87BEA138F607CB1A -:10F32000EC946FE053E2282F3D5ABCFABF843C6452 -:10F33000AC6E24AD83D58DC6F2FCECA66D767774E9 -:10F3400079D52CCE35DA7B9B9D7923C595FF6B143F -:10F35000F72336E139D8C2CEC1F9FBB9181F8E7632 -:10F360000ECCEA2FA03C4B876328E681A48AC79B7A -:10F37000E37FF616CAABCE235C5EA5D67FD980F4B8 -:10F3800027FD163569AC3B6EA6433F9BE8972AE202 -:10F390002C48C3A87FD78878516735A378516AFD78 -:10F3A00047FF8DF0D924C6AF798F8F6FB706F6234C -:10F3B000BED438DD24773AFB256A78AF897DC5F362 -:10F3C00053D219C747393E13E3E3CA59D8BA53E3B6 -:10F3D000AADEA1EB101358201EF14771D0BCE9AB97 -:10F3E0006228AF55EA57A9F577DDAA8E308CA7A021 -:10F3F0005EFD7E15B7B7D1ECEC1E37CBA057919EC2 -:10F40000655E87ECD769637BD0FE0DD3B3480F638D -:10F41000E1F30C31D4851FCD58B7A5D90D7CE2FDA1 -:10F42000AFCAFBD47139E04E19C5FD77080FA98F1B -:10F4300049BDADC7B882DEC3F44B1FF20B9947D16B -:10F44000AD27D586D94DD93DFBC97C35790E129EA5 -:10F45000D1FA3F3F499F329AF4AC008DE315C3586F -:10F46000E29D99045F13BF04B6C5F3E9851E0A5AED -:10F47000A4218F41EA95923F770ABE1BCC0A92DF06 -:10F4800050E6890F823E99D0FF86D149DD79F6A8F2 -:10F49000071D6DF88CE2EF35A887C2FCC1D59F1817 -:10F4A000EEA114954EBA81D66BCA97088BBBD27A5F -:10F4B000BD826F4E519D94B7D2C9E234E45F9D3E48 -:10F4C000A18FFD219EF431C92FCCFCE11ACDC8FFDC -:10F4D0007F5462E4FF33F5BE26BBD018A7AAF49888 -:10F4E000E2E1EF4D37F04DC97FEE44379F8AEE25BC -:10F4F0000FC575DE14FCF26DA107DA591D3D77309A -:10F500007E7F348EB553E96487A84C645D54BA9805 -:10F510008BF26B929946650AF350D99FD55199C6E3 -:10F52000783E553A6BA772103B446526EBA2D2CDCC -:10F530005C162CB39946E550E6A1D2C35C14277F34 -:10F540002F21987118E037E37A26EEFD1EBA418725 -:10F5500073EAAC64A17BC04857539840BEB7F9FB2F -:10F56000E9B2FECE0D3ABE9FC4DB6F7DFEBD87F0D3 -:10F570005E30F01BF1BE83BFEFAEBF7BC324EC6FE8 -:10F58000B3507DA7687FAA487F08CFFFE9D18CCE12 -:10F59000BBAC48DF36BA38543F53A83F1A5EEF3F42 -:10F5A0004ADF1E5E1F5DA83F16DE7F49A1FE44F8BC -:10F5B000FB7DC5FABFF2BA8BF0F23D9B4EFA2EFCF2 -:10F5C000EC5246717CC39F3EAAF769C2C3DD8A151F -:10F5D000CF3546D09B1DCF51453AD21C31587A7851 -:10F5E000DE4F30D6198CB7F462FF98E82888FC0902 -:10F5F000F070B8E2DD47F398F889E213F98329C681 -:10F60000B809E03BF95583ABB89DCE58E4F772DEFC -:10F610000BE139D3C3FCBCD9A171A3EDC38CBF8767 -:10F62000849ED721F4BCF7441CB97BDF416BD269BF -:10F6300047888EA3DB8756763A9C5FF6D8F79FAA59 -:10F640006D40D7C1FA1817CABBCE58F636DA69BE74 -:10F65000232A433DE352D7DB5638F50CE78B835C16 -:10F66000C867BAE7157CA6137F053DE78A3ED2BE80 -:10F67000D41C1CDEDCEE4812EB6A9A9C7C752EF9D9 -:10F68000F3B95E9F673B34731AAC337503F7AB264F -:10F69000227D63E8ECE93FB8308ED63AC5C2904F80 -:10F6A000AD917E5E933F6ED3E415AE707FF09A44C9 -:10F6B000BF82F1CBF4402CF743A4307F2CCAD13267 -:10F6C000AD8CF2667CAAAB0CEB55ECDA5CA82F682B -:10F6D00053DD6530EF81B65FAD403FE0A22A3BC508 -:10F6E000316CFAD4B3DCFFC7F33792059E37AF8B8A -:10F6F000D10208C77E4EF2DBE6AD2928437BB7C9AD -:10F70000999C8CB8985CB584FC864D4EED35BCDF79 -:10F71000E17359283F91B9744739E82BDB6FB796ED -:10F72000211FCF78A628510D5BF789E673B1180722 -:10F7300079D465A1F78FAE2A752C71E23D46B017DA -:10F74000A03CE03AAEA3FEBE15DAA0BFF19EDAE31C -:10F75000AD97F5728E89657603DEC66BC67A8CC965 -:10F76000DF6833E905C34A1252E89C47B15178CEAD -:10F77000239FFC8AECDF794E37F9D54B5B14CA8F97 -:10F7800009EED73251DF3CB17118E5BB34B718FD33 -:10F79000D1C10C9689F77DE6B72AA4AFAACD9F37D1 -:10F7A00062BFC1B9EE0138CE60AD6B802B8CFE1EFE -:10F7B000FDE98F6351DE35E38535C223C6E342C2DE -:10F7C0005E95F7CAE7BBCE55A3DEBFA8F55D0FC2B5 -:10F7D0003F49B710CD1CB5F9D3F0FCD74F9A45740B -:10F7E00089F7B4508FE9A18FFE15D619763F614D88 -:10F7F0004A761CCE1BC25F3D11F77BB2B590F4A3D5 -:10F800001D2DA5741FC03CCEDD0DAC1DF5D6350DEC -:10F810008EF648FAEFDD999E4CBCBF7D6AD3A4B545 -:10F820000CCEFFD4FE656978DF7D716B0C8B75F7AC -:10F830006C7F72D3689A6F31DEA3C6795B67DA5149 -:10F840006E4C6B9B6447B8DDDD30FB99F0791E2A66 -:10F85000F5569700FDC5B73E4378E264011FC2F537 -:10F86000DFC7EB99A85F9CCC6111F33997962844C8 -:10F87000B7BF1BEFA1FB29A73222B7BBA984EBE7D7 -:10F88000C11237BFB76E656F2F4D217BD085F47ADB -:10F89000A2A590E277368CBB0FC1EF567CD580F8DD -:10F8A0007FBE6AE1074BE1FD9AE9D79DC172A4BD15 -:10F8B0008EF466F67B95E801F442BA27F69F150EA2 -:10F8C0005753581E21EA8FBAC1AFE161687FD85AF9 -:10F8D000D4801DF8BB6DDF69D2C3115FF530FCA584 -:10F8E0009F51429F17F92169A3E8DE1DFDACB9FACB -:10F8F0003A7F00CAE32D0B1D91CE31FAFC61E3A2E1 -:10F900007E3B99E9B161F383540C905FDBCBE7EB6D -:10F910006E27DE8319AAD3FA845E6E7EDF4D6F5B9D -:10F920008CF4B94D9C8FD4CFA3ADF7077E63BF177E -:10F930003038818644FBB5067AB95C6D5F817115FC -:10F94000F63EE7FF60D7314F84385788CFC2DAFBE5 -:10F950000BF8013CD7A6CC22FB24DA3AECFE437A22 -:10F96000D68890FDF68334E3BA64BB17C4BE62FC4C -:10F970002C604BC43240F73962A03FCAEF2FAA6E09 -:10F98000735D1D812E6469E65BF8E30E8BFF98F9C9 -:10F9900004A2C150A98F58787F3D8CCF25DCCFF5CC -:10F9A000DF935B14D27FD76FE279145FF8A14ECA60 -:10F9B000053F27542DBE11CA8E33ECDEE192175B52 -:10F9C000EEB9DC6D80DBA2F0EF999C79F2276FE352 -:10F9D000FB8F9EFA8907977B57CAA244CEB78E2D1C -:10F9E000C0794E5D61277F0CFE38247E40C3A5FEA2 -:10F9F00018031EAEDFFBE496052877F63A344CC7B1 -:10FA00005BBCC5F83E262D6C5F8CE397CF00A760EA -:10FA1000F64CA0A3A33FFD57BA1F1E87FC13E97144 -:10FA2000550CDD0B33C3795C49F77746086F1784B3 -:10FA3000E250741F44D2D5F10D4DA7541867ED2A3A -:10FA4000BB9BBEA760B2BF8EBA67EA6961F161FB7A -:10FA50002A7E4F9385DB89D9A1FDCB718FFA163AA7 -:10FA6000DCCE9EE3F5C0BB28E3F529D5BF46BE98A2 -:10FA700056EA6163281EBD90F65DBF67D5D137A0F9 -:10FA8000CD3D715EEB987EB8FE21A314BC2F63754B -:10FA9000D3BDC1E6664B2CF2FDD6766BEC50847775 -:10FAA000B385E47C6B7B4ADC50944B4E0BC54F51C5 -:10FAB000AEA861FEFDD16338BC42F2C39318AEFF1D -:10FAC000C4097C3C952BF49FC95CFF519EDE477AAC -:10FAD00047F31A1EA792FA864BE08FAB99C721A372 -:10FAE000E93FC87870DD09C58B5CC8D7D624F2EF32 -:10FAF0006F2C9AACF9F03EE7554E467263305EAA21 -:10FB0000403DCBC9FCD3601ED5C5F51B6F2B237DB3 -:10FB100026D9E9D410D4A96D7E1FAD5BE774E680C9 -:10FB20007F08CFB85C9DE1F856935E6137E90DAA76 -:10FB3000A9AE8D11792B428F6042FF96F1E0848D42 -:10FB4000BDE70149BF6EABF04F80FEE4A37B2325E8 -:10FB5000CC8F78CB74DD9DD23F6407A489EF1EA5BE -:10FB600095B0ED4D61F127457F95FC06D22F29FD1B -:10FB70000FD2CF31A204ECB5C4307FC44B605AAA77 -:10FB8000140F9B8E789205EC80ECC93CA6F0EB1923 -:10FB9000DF524FAFBFB8B8CF432FF3FB41CD9638FC -:10FBA0006D4756CF76378DE3F8167700F6867AEDF7 -:10FBB000F50EBA873345DD4DF7EE371759785E33CA -:10FBC0003BE4427D60E118CE77B34A3D0BC6503C22 -:10FBD000D593857803F0F0D9F0FE9EF0DB66DC91DA -:10FBE0001D87FAF007034E6F42BDDCB7C642FC46E4 -:10FBF000C231ABD1722FA261587C2E602D08C5D9BD -:10FC0000D67BCEF9F0BEF0B5E3B8DF356EE6C9FDC0 -:10FC1000E8075D37D4427EF6BB12748ADB01FD38FB -:10FC2000541EAF7B0DE36D2DEEE464FCEECE534924 -:10FC3000FCBDFC7ED50309FDB787E797948EE3FAF8 -:10FC4000C8034A647DA5EF3885E759ED0540F621E4 -:10FC5000BF16B7C77D5F54E9CEB03AD21EF4FF1786 -:10FC60001FB7A75BF67E51E51B4A7692789F534DEE -:10FC7000F63AFA18E1FD89BD2F55F9A0FE4856E481 -:10FC8000797F2BE67DE475EF60D467837B017FFA93 -:10FC9000443ADF00B394D0B89918970AAE8C991DF6 -:10FCA000E93B3683C6F37D6E8677317D427AECE69A -:10FCB0002AB39EEA277E75BEF6F8414AD306FE5166 -:10FCC0000CF490C422F3CB0BEBAB5A1AEA9D4D2BEC -:10FCD00095B5C83F9A405FC5B860AACB4EFA6A7323 -:10FCE000D28F27E1B99CAF652EBCEFBA03D43EE4B6 -:10FCF0005FE857C57BACD3EA399FF1BAB89F15ECE2 -:10FD000038CF55888F03AC848F527FB55671FE7300 -:10FD1000450CCF47EE4C7292DF34A99EE71FC7FB1C -:10FD2000409FC5FD4DE6F9C33AFC433E24F55B67B1 -:10FD30009ED590476C37E5195B4D79C5FBC718ED2B -:10FD40009984E2A25EF5AA97C0FEC575EE03FE8314 -:10FD50006500EC602C5F06BB1DCB57C06EC7B8C1F9 -:10FD6000AB0DB954BED6A0D1F3371A4AA89C981946 -:10FD7000A4B822F991C97FC3020AF9F1247E7D3A21 -:10FD8000A814EA4F4DE2EFFFF3853B1FF50D82F714 -:10FD900029A2BDEFEA6AC4D7EE3AABAFC6F6356921 -:10FDA000BC5E3DF6C7D5E8FFE99AA27F88F2AD9F19 -:10FDB000C5337F0DB6FD498C16C9BEAF1D2BE47946 -:10FDC00014FB9DE127128CFE9CB3637AF1E73CA003 -:10FDD000F075F4DDF7D2C348177D665A3D88C799A0 -:10FDE000D9463FFFD563395D3C3896F39FCC3780C9 -:10FDF0003E7A81BBA48F68EF9BF6020A44A02B5980 -:10FE00006E4E6013E87E76B57D76A43CA7F3827FC4 -:10FE1000441DDFC9DC312343F4D6E434D35B90E2E4 -:10FE2000BBE7EB6FDB8FF2F2BBD31B23FB3058AD8C -:10FE300093BC0E02BD213F576B39BDA9567E3FB31F -:10FE4000E64DEE1FD981F485F970486FF0EB341F51 -:10FE5000AFA79AE8ADC94C6F4E23BD0591DE60BCDB -:10FE6000241FD72FE2ABDABF577A1B39F6BBD1DBA1 -:10FE7000BF8F0F525E436756DD0084CF66F13DBCF5 -:10FE80004BA5C337C7DAB93C18AE935FA0597CFFC6 -:10FE90001058CC06FCCECAB4418DD66480DF8C9459 -:10FEA0007CFA0EC16D63FB0B3A39E4447F4DE224CA -:10FEB0007DDA58A4AFEBCED0FDC67E164EBFB5633B -:10FEC000BBAA90FE32D674CC9C8674B75225396991 -:10FED000DED78B1338DD35297C5E38B901E171BD81 -:10FEE000B963393EBA5736290ED4C7E7332D278B6D -:10FEF000BE2B43DFBBF997E6FF74E1B82F4EE0DF7E -:10FF0000737137BE97E4E5FEB534B4DFE84A734158 -:10FF10004F7A849F765B7F033D2FC47D44A3E70B1C -:10FF2000F18FE01845C085511EB057DCDF94719108 -:10FF3000A8F46CF2E346F51F0E8FFC5DCAC9E3F925 -:10FF4000BC4DC2FF6BD6F7E4FE0F4FF2FE6C2C8C5B -:10FF5000A3385FE57EE07DCC8DEB9471B3EE3C235E -:10FF6000A91FFA98BF09F56D2BA832FDB9BA81E334 -:10FF700075E71F093D7159A9771D8EBB9DB9F7A380 -:10FF80007C736A3C5FE1F949FA7A82E7B7D4034BA4 -:10FF90004AF57B71DC6878B56C9AFE406FEFD957F3 -:10FFA00030CAA8505C6BD24C2BE70BF58AE003CE2D -:10FFB000B576A86F4E027EE646BD9DEFDB057CC39D -:10FFC0004D7686D18E988ACE48E41BC84708B8FA89 -:10FFD0000CCCAB4C14E387E475F020EAA54180ED2E -:10FFE000BDF02AD1C7E575D39B9CAFD881AF505CDB -:10FFF000BA84DB09F25E507C9E46F697AAF76E3F04 -:020000023000CC -:10000000584DF6FD9EB1C27E28604508B74C8BFB6B -:10001000BE31F0BCF0C12987C7C0E3E26D8BFBA203 -:10002000381DBD7D4D397EEF6BD913A7B6A39F74E4 -:10003000CC7FC430F15D35CA33F83BCA193A97F327 -:10004000FB58B5CF8AFC2A321EAF19CFE59F8CB37F -:10005000F682C7EF131E8B38E725E0B1F302787CF8 -:100060001CF135021E9FF88E78FC09F6BF170F01B0 -:10007000D61D3B4DFFB437BC9D3A55FFBC377E1AA9 -:10008000163FE0F943AC96EC6719BFEC015794AF0B -:1000900039BDF8A5D6ED88457BB6A976C7EBF8DD66 -:1000A000C7A67A6E677726688E12B46FDE55E97B35 -:1000B00056D1FAA3DDED0366B96A3CCF8F3EB0326C -:1000C000263011C6497772799BEED419E68B5B5DB9 -:1000D000419B3701F5350F43BDCD9E6261BE307F38 -:1000E000CC48DB2192CB9D20C7913E803E39BD2577 -:1000F000F171A47C9EB8F23E8CE4B0F15DC0FBC20D -:10010000E8E4F5BD25E4874B287E6E05F653ABED9C -:100110006EC4EF897F05B91936CF24D044C2EB579E -:10012000390618C699E2CA32BC9F96F603C3FBABE8 -:10013000015FEC14C7E6F702A55E33DD9D6F68979B -:1001400024E21C3FCC1D6318CFAA7E75EF68A47F04 -:10015000A1478C837FF45D5E93BE60D627CCFAC343 -:10016000E82B8DF75D4658451E9A95E7476C660E5D -:10017000FA2E05F041FAEE414D284F80E864843DA7 -:10018000B8E36EF4ABCC71683E78D6BCF7EAB4F94C -:100190004521FFD9E67AEEF76BDAE3D88EF4B05555 -:1001A000D0A5A4AFBC84E37318C9753B43796CA692 -:1001B0005799EF24FD05D29FA0D4723FC3D90959A6 -:1001C0003CEF48F09FCD55DCFE7D4809C42A4338FA -:1001D0005DBA9343DFA74B638A6F3AA76F3D59948B -:1001E000AAC8479579AF380EDAD9697C3EF61ACF9E -:1001F0009B6CFC67ECEF62BE41C29F91911CF25375 -:10020000607EC2CDBC9F6FBAE83758E45BF6E1EB85 -:100210000F4C11F38D8052ADD3857FDA4B650CC640 -:10022000C3A1CC56B438F47F0C513D14684914F185 -:10023000F574114F8F57029C797C4B3E3212D828AF -:10024000E625B064FE7D91D25F38994AF461DF8182 -:10025000F2E8AE63DA3BC5F0BC39E1C76F4D84E725 -:100260002DEFAA1AFA49EFCAF07D80746D0564F08B -:10027000915FCB331FCF4DAD70B8A6413FD5B7BD11 -:1002800011E3BB23EDFEFD749EAB6388DE83D00FCC -:10029000F1616B02D029E22B7ABA4685F281641CA7 -:1002A00023384673A01C0D623BEE6F36F83F23E403 -:1002B0009B90BFD42AEACDCE1DA4BFAF4DB1E317AA -:1002C0005331BF27B31EF1B25F1CBF7FCB78DC6018 -:1002D00030FE12966F6F7745F66B82BE4670083619 -:1002E0002E4DEB4DEF8A1A47715A02F6C48B8FA33D -:1002F000ACB9F13A7F206C9D72DF6B9D3B9405ECAD -:1003000052E667C6384A2DD363474488A304FD0AE2 -:10031000AE73702D8FB30C16FEFA6F1B47A99CC0ED -:10032000F5C74B8DA3C8FD5E237E9F01882DEE1976 -:10033000533C81CECB125A5F18FC1E277E44B82155 -:100340005004EA3F12F5B77677FCE949F8F5CD5D40 -:100350002FEFC652EA7133C5FB6B877DB90F73B7B8 -:1003600066AE5B21E258C6F8C33560D585FBF9F16E -:100370007B01E1F599A6F5945A8D7182C94E63FB14 -:10038000A929C6F76583627A9C1BFAE569BF4ACF43 -:10039000FDDE157F0FE3DF9B0A3B07F5C27507E61D -:1003A000CD61DCC7DD134FC2E3009EDF58597211E7 -:1003B000E28B85F4D2ADBEA5F75702FDAC0539CA74 -:1003C00079B1DB407FA1B847998EF824FDFDD1E8D3 -:1003D000E9B8339BFCFF83EBF7B74FEECBBAE300F2 -:1003E000F7C4791DE3F07B41CE730AEA2183EB5F0A -:1003F000A1F7D7CD29EE158F72EA0FB44F0EFB8E01 -:10040000608ED56341FB39A7FE557A1E559FEFC913 -:1004100047286F2D47E085CC0BDC8A798100F79C5B -:100420005AF17DE0B6DEF3DFA43C6C0ECBEFA364A3 -:1004300006B7C2C2C79772AF873F9D71BFAF9CAF6F -:100440003B2FD0346FB7FC7371F9F7FC24AF36AE95 -:1004500038EC5E86B8C701FB8E98073A5AF8B37B32 -:10046000C963E37667C56B1FE0F8976C7746197729 -:10047000626630E23DA9A9C26FD5191BCC40BF41CD -:100480006794BF9BF0D094A93F1CD78BBE8B79B3E8 -:1004900008CB68EBFCB679B37522DE24E3AD327F7E -:1004A00056E6C55E287FF6BBFAE1570A7F40E93879 -:1004B00016310E615EEF6DC23F9E55EA598178118B -:1004C0002DFE20DB7F30C01ED12F7E6442E4EF0E74 -:1004D000C8FC50586F4AB81D24FBC9BC7CF3786037 -:1004E00017AD1917E60FF436E690BF2FCCDE92F960 -:1004F000B0441F9B851FA29B0ECC7AA1888798F5DC -:1005000042191F51AAB87F02E8A30DE745BD0BF3BE -:10051000D2A59D27F34965DE28E685523CEA5BEAD1 -:1005200055DFBB3DD53885F2BA9A5CA5AF7D177B08 -:10053000EADF2718ED29AF93FB1DBC684F0DEF696B -:100540004F15957A5F447899EDAAA33FFB84F26337 -:10055000C10EDD37EEFBE01326FFD4DC311CBFA556 -:100560009C96FEB4FD432D06BFEB5475D57ECA178D -:10057000AFE5FE9674BD9DEC34BBD3EE467F8B7524 -:1005800032A7235B1EF3EB3CCE4BFE15995796EC3E -:100590005C12F1BEA9B41383D24EF4F1FBA99D6F96 -:1005A000F2B86D3CFA5BB06119976BD2DF624B1108 -:1005B000FE16533E76BCC9BF62F6B79C1E27FCB63A -:1005C000C2DFF288E2BE1B49FD575BA6FC0E41F17B -:1005D0006F0F2F8E4753FF79FF9A1F0A7FCB834EF1 -:1005E00058DFDE0F8CFE1673FC2B42DC8B9C57838E -:1005F000C6FF8EE26E12BE926EA53F2BBD9E7FBFE0 -:1006000069AABA5B41FEB2D9C9E1ABA23F2B25E48E -:10061000CF529EFE53B75F8AEEE3F68893D7BD8E26 -:10062000EBB402C3591FC9BF25E06A8E4725D68B9C -:100630007BC0DF933F2B79BC11BE050F16DE87DF31 -:10064000352EDA567E18CB51DB6FEB3B17CA92275B -:10065000EE2BC7F22FAF07B350EF34FBB114047E7B -:10066000714FF89AE128F1D45B2BF1D46927BAAD28 -:10067000E27034C32955E7789A03780A2A4237FE94 -:10068000752671FA4C9FACBD86FEB5C17956160928 -:100690008FADF5FC7B59128E5B051C936B97909F79 -:1006A000D08CA783DB2E0D3FC79AE0F7EC96C2BB38 -:1006B000116ECF3D5CFE3B2C7FEDBF2D1EE1B6E7FA -:1006C000F1FB7E28E03780BEA76B82DF03F811E9DB -:1006D0007E3DE13751E3F6F5E7A5DEB2F100DFAB91 -:1006E0008143A03F64474B81C3180732F2D3D4EF54 -:1006F000C93F15ECE6A7ECED9C4BE0A71F9BFC5314 -:10070000A93E4E37A9BE63449FE9409FB1E8AFAA16 -:10071000E57A24887D7FBC823637E7AF52AE21CBA5 -:10072000B180F0D9EAE271E7087ECA007DEFD7C454 -:1007300087D181138E772057EB107E52DE6DADE5A9 -:1007400071B4DBA678568CEF178AAB3D3F49BF6D7D -:100750003CDD5FF8D6FEC77FC6FED2FF08784AFBB5 -:100760005701DFF1FBE657813C41FBDF5A1BB4A187 -:100770005CA9A9BF55F142D9E74A4E3FA9695E86F7 -:1007800071FE9EFEBA6002EAED138776E3C37A9C9F -:1007900047E2C3C895E7EF433F57347C488F92AF99 -:1007A00074617C2835C8D7CDDDF850B7EEB2948B94 -:1007B000C787B809FCFB11DDF820E83FB536F82003 -:1007C000D2AF55E083D5057C0CE0A1221EE485E282 -:1007D0009E921E8222FFC00C9FA06F48943C8415FD -:1007E0004A492FEBBBE8FC03110F6D12F1506F3D2E -:1007F000CF97ED5C1933D5987FA0D1BAA739EB9488 -:10080000F03CFE0879B22FE3F9C938A78C6B7E5E05 -:10081000EA79059F4FCCE5E71C8C1E670AE0FD5680 -:10082000403F9709CFDF223C97F70F841E77DB14F8 -:10083000FD6D1C7784DD4F79CEA0EF1DC6765BF78A -:100840003EC9BFB72BFC90322FEF3BFBCD12ED7EA4 -:10085000BC2F29FD669B13EC3BF0BCE7B3E014FA18 -:10086000CE2FC629D0EFB43186F21A172A6078232A -:100870005FBCCAFBD1788AEB79281FD75BE170A1F6 -:100880009EDF9C34350DF946CD5A95E47A34FB460B -:10089000D25B0DF01BA2B77ACE6F5201BF08DF7C8E -:1008A0000AF19B74E0379CFFE80CF53A2BD29DB31C -:1008B00027BFD9DC0BFC2F92EF7C83708FC077941D -:1008C00009C506BE6399F01DF8CE4FC6336E1F8A68 -:1008D000FD633C80F68FF415BE7FB33EDBBD6F2316 -:1008E0007D49BAFB5F4067232744A6B3FC09DF8D2F -:1008F000CEC662FF087476E504239DE913FE67D235 -:100900005905E1DB05E8ECA3F14CD8B7D71AF48A16 -:10091000CBD5F6733938FFFFE7FCED8357723BFE0A -:1009200042F9DBF87331FE53733EF73FFCA9FF6BCE -:10093000FDA9CF4EF81EFCA9AE716EC23FB35FF5A4 -:1009400093D1FABE09BDC495259FB64A3E0DFC1849 -:10095000796F0DF033E4CFA9555D9F3ECFED4D2D5E -:10096000DE4DFE86D771BC74C1AFCD7C19F4CE3795 -:1009700026FC1DFD0D7F2FBFE14AE167BDD07DFB49 -:100980009502CED1EEDD3709FBBE09C6C07B7A5B8E -:1009900057DAFDCDB0608FD0AB47D45E773512D932 -:1009A0003BCBEC71C15EEC26F977245A1BBC2F9E21 -:1009B000CC09DF1F8B28B7BAF767D293C3ED26F7B0 -:1009C00025D84D33261AF5646B2DB773AD20EF286B -:1009D000AEAF9704905FA7FB94764C0DF6A6D42992 -:1009E0002807536B3D940F7FA9717D331E458BF310 -:1009F0007FDF717D73DEC0FF94387FD14461CF9B70 -:100A0000E2FCD2FF6A8ECB8FB0B796917CADB6E098 -:100A10005FC060CD7B3FDE71379EF71C07DDD330B2 -:100A2000E703448BDB8F48B607E3B3A3C7EFA5BF4B -:100A3000E0115BDDEB68873FD268A1F335E70DE499 -:100A400025F0FCF1B313766DA3FC1FA90F57093EE7 -:100A500053AFD8E9BB8E557EE2335E7D5723C693F4 -:100A6000539DAC1DF5ACB8896EC23F354D273E6332 -:100A7000ADF2125EC9F8444D26BF37172BF04B1D5F -:100A80005AF7168E9F7448D530BEBD119B02CF48D1 -:100A90004059897AC4180BE545B42975E4F76855BF -:100AA000DCF4F73F92F25CA41F3D95A4FD7E36AEC8 -:100AB000BF1FFF3B2507A62F49433EB8B6B1310DF6 -:100AC000EF27DE3491F3877BA79FAEA6387A2EE816 -:100AD0007F0A9586BF672BCB1DBA22FEDE929FF25E -:100AE0001161DD5BA8DF503BF9D954FD81DB900F2C -:100AF000A8974D25BC6E555C7316E079E5D8498FF3 -:100B000069CE19357B11EC6B5D3F4F59169E6BD248 -:100B100050DA677352FF44D447D70DC8A6F95B1467 -:100B20006F5916F61B6021BA56457C7E5DCE92D772 -:100B3000F0EF8034A55B18DE3B68CB39DD82EDDA5F -:100B4000C6F03F82635EAFEA32DE93C20F1F21FF21 -:100B500056D3785C5C157171D514572ED51599FF55 -:100B600048718758C1B76A7256CFA6EF2738ED2E65 -:100B700044B2A6846025E1C74A1BC3381DB3B61A28 -:100B8000F4B4BB1B8CDF7F71E619D7D3D27D3F2134 -:100B9000CB8B7C86FE062CDD5F48F2227E20BFE5F3 -:100BA000497FF1BC1E2BEA019BD717E17CFE51FE69 -:100BB000A3FC47192AFF2F0D22483C0080000000AB -:100BC0001F8B080000000000000BC55B0D701CF5BA -:100BD000757F7BBBB777279D4E7BD2C93E816C5614 -:100BE000B6446410F25AB68494D8684FDF322EBDF2 -:100BF000387C88C476CED8B8CE34932A4E49EC845B -:100C00005667EB64C95FB2A414E44C3AD3B34932DB -:100C10006DF08042661AF33967700821D028811080 -:100C200032930461885B529A310127A2434BDF7BE8 -:100C3000FF5DDDEDEAE4AFB81331CCDFFFDDFFFE91 -:100C40003FDEE7EFBDF73F00F0C00200D90F003AEA -:100C5000C0A6224F122200E7AA200D95D8F74E9782 -:100C60006941800FE9AF25DB1EE807C8F8B2FD60D7 -:100C7000AD0A660DF0DF87A271CD3B6E5AF3C29FBD -:100C800073DEE16AB5371D9C3BAF3DAED594001ACB -:100C9000F2AE03D225AD73E6673A8E4FFE4C866AFC -:100CA0007DEE7AEEEFEDEF3615AD2F86DAFFBFF170 -:100CB000F3D175A9E90128137D68C47353BB44744B -:100CC00075A48302820E039D8DE90CFE73424A0CCB -:100CD00057D2F9C21EE39B30970E762B6B73F897B1 -:100CE0009D5F16D347ECF9710BF2CE801908D12B1A -:100CF000FC0E69AFE1B63F449628110F3F076BBE6B -:100D000028C0B31FE2FE8E67F905DA82ECBCF2065A -:100D100095C72F57FB5E6C5885CF5E918D6FEAD9D2 -:100D200079793F95C00B80FD5D65F6BD62ADFB91A5 -:100D3000232A64ECF1F8FF0933CC749AD8783F2465 -:100D400090BE3FDFF089E2441E39B0DB6569E7F70A -:100D50006FE09CC07483F437F1DFA95F8C4ABCF864 -:100D600009F13CB5424BEFC7E7FBA5F4FEEB68DCAD -:100D7000DD82BE361F0A2D3EE05FB40AE9E8B5F811 -:100D8000E4759F0BFF94054C278B38397C58C27350 -:100D900054D1B907ECF974230348A703CBEB56EC05 -:100DA000D7E9FCA3FFF26DDCC791E37BDEFA36BE28 -:100DB0000ED4D68D34E17E0A0C8F21933C7FEAC499 -:100DC0000964170CD5DE334AD36E1D954C0DDFFB3D -:100DD000B5E03199CEE8974C9A4F39BC90CF13DDEE -:100DE000EA948309C958504EE71B9380F85268383B -:100DF000DFFBF49CF3E0FF4788CF2C9F39CF916E47 -:100E000048BDDEC9DAB9747FC5926705C727ED7999 -:100E1000912EE35EFD16A2F3F83E199238E5F82E06 -:100E2000548AAB007E6B4E7E7A3732FD9E412FF3A3 -:100E30006122A6A6251C3F51A4DDDE4BFD328F7139 -:100E40008C898AFFE3B946975DCBE7B2D7FB6C8B01 -:100E5000CEEB8DC51694933EE2B8F2F80D73E5CF54 -:100E6000BDFF4B95BFED668925EFA340F3C3E42D8D -:100E70001ED227BF35E63A79B27E09ADF7731984E1 -:100E8000DCF441BC682E7D06C91E7C242B27AA25D4 -:100E9000477B23EB7F4CD3CF27CF6A7ACAACACA376 -:100EA00075A08FE8BE2CEADC9F3DEE7316BF7C690F -:100EB000C87843D4664CA8A376CA94B03DB7E10B7A -:100EC000DA5A7DFE757C90336F25CD077C6E2F241A -:100ED0009858C4573387AF7B0AEBEE24BE0CDEACC8 -:100EE00002CB9F9BCE17E8AB4AE6A4142279F80800 -:100EF000CB4712E5A31AE7F1469D72187F72154C95 -:100F000007059F92FCBCDB243E255ABCB376C89FE4 -:100F1000632F41DFFD1B19E7FB6AB7AAEFC77D7E90 -:100F200035BEEDBEDB48CF5F900D89DFEB6C0FEF78 -:100F3000B1D680D109968762CBEFEC3C71EF6BCFD5 -:100F4000138FBAD5D7896EA4C7B37411F6D9F43705 -:100F500066D73BDC747A7829D221359C7FFEBB4A68 -:100F6000F5CF11FD6C3ACF37EFACFDDE7972B27D73 -:100F700065B63F529008C4F09C2341038D00BD3FED -:100F8000C5EF6115CA65F9FCFC448AB23CBC46FF5A -:100F9000C4713DEDA616C3BE7C02B7BE1CED6291C6 -:100FA0007ECB7A7CD511797D23D17F6BD0A3C939D3 -:100FB000FA3570D00B99201102D745B95B07D31BC6 -:100FC000D7E338A8F2B29CCB9115FC7C4B515CF175 -:100FD000607B6D6C09AF677FDF03FFA0ECC0E7CBE0 -:100FE000BDDA2B2427A988443BC2E74840DCFA5AE3 -:100FF00005CC10B65D7ACC4F7EADFB095A08A02512 -:101000003C1E21BF54F7D8918A04E975D29CAA41AD -:10101000FE842D765DEF9B8AB7E17C032FCAC61E46 -:10102000EC8783DBD601CA91F47090EDC400DA79C5 -:101030001FF25D0976BE45CFD79C0568CF91A79674 -:10104000193FB4E7D8BD18CE9CDB6FF3973BC6774A -:1010500068958EF732984606E9D4155DE61857D4A0 -:10106000B04AA3FDF6E82B1CCF6FAE69767C0FED7E -:10107000CAE969ECAFC6FF88EF32883EBFAF249C57 -:1010800080FD9CEF15C8E9E3FBB5B1A2C819724A0F -:1010900037C28DA447C8976307C8FEF4FAD96F0D0D -:1010A00078E184540CA4FA49A827629BECEF254B05 -:1010B0005E93B14AE693147CF67D96C327A63D84E1 -:1010C000B3E031A827FBFA8F9A7ED28343AEA629DC -:1010D000F1FB280ABA8E7C4218960CD4F37373691C -:1010E00009F93929D983FD45382E2A44119EA37167 -:1010F0007ED8FD15310E16D1380D9215D8D70C2893 -:1011000020BE56E03C9F2DE1EF923DD677D788EF89 -:1011100092C52562FEBA7AF6A3990E6C8F82013EC3 -:10112000B63F71044D6445FAB8BD867685CF1F0081 -:10113000A39EFAD530CD760AD92F517F214C6AC2B1 -:10114000C86784DD9E56C267FCC2EEE7D397ACDE6B -:101150002870C6E6070EBEBDC5FC12E9CDED773698 -:101160009C1777283B9F71E8ED23315DF8C39D5DA7 -:10117000AC27CACE67F9FD4BB1F81E9A8F48EFAF86 -:101180009F4BEF3A350364BF523130923845EAD174 -:10119000B5D1CDC8DFE4A37EA31AAE1C3F2E950FB8 -:1011A00069D00A88AE72DFE5F201D8CF074FF88F19 -:1011B000EE676134D94FFE097CF9F6E5F0C5CD0F35 -:1011C000B8B714A0F9C276F4EB5226202D657A98B0 -:1011D000D1FA2CFDB19F5C66D1ABC4E2872CDA8CCE -:1011E0006C3D574AE6E70BCD575A92E5CF85F8128A -:1011F0008DE3FBFA2C7FE43E938967FB691F9C65B6 -:101200007CBB4432985F4BE5B887FA8552C6023DF5 -:1012100069F69B21D0983F57411FB711EFF466C67E -:10122000C33B7121C2B31FA097CD89C752C1567F5E -:1012300025D9D71AC5F060BFB6C8134F231DAF56C6 -:101240002043E72B572049F61C9101CF9F7A14BD0C -:1012500015FA9914BA690F7DB7CB9F4E49D9F5EBB2 -:101260002CBBFDE3A26F69D3B5593A9F26FBB55C51 -:10127000D0C3C3F6673243DF47BBC118D0E7DA33C8 -:101280001C97942D3B45ED267AD1CC744B86B02F1C -:101290000DFFE07DC219349F82FDEFC512EF923F32 -:1012A000259C1E2C61BB345D48C07A2E2E30095718 -:1012B0006CB6D6E9BD495F1CC77D6E1EF6BD4EF308 -:1012C00041CAE7C405EEEF750972BFB7BF9B952B06 -:1012D000F7F797A907B0B3ECA27040ECE1D5C5D3FE -:1012E0007970FB2CCE243D29CDFD4EF0498D24187C -:1012F00077A8A42FA5179EC7EBC22FF63C5E145CFF -:101300009AC76BE117DB4F6D83B35E65A9B54FA438 -:10131000D716B0FF224CCF4D16FD3E4DFE2A44F4A9 -:10132000C44005CFBD15E22AC9ED5F2184261CBF4C -:1013300064DFD610E30568D7883E52E663F287D7AC -:101340005F021D2D3A6DCABCE5D5C92EED2C823742 -:1013500072E337EBFDBB1B3E21E274BFBFCA9F1394 -:101360001F169EF8A09F8CFA9EC2BF7FB105B73EA4 -:10137000F8926CC895F45EE0E60008FF5D487A8A52 -:10138000FB2E7CE2CCFFD0F84217AEA69921675E17 -:101390004FE141C6B3852155679CED92331B47C38E -:1013A000070207072DEAE5CC2B115EB6E31E9E5718 -:1013B0009ABBEE0D163EC757B10F2F02CFBB713A45 -:1013C000CCE273F13E1854859E609C9971C4C17A39 -:1013D0005E3DB3F76D7F57A6C62B8DDA3CDF5B7C95 -:1013E000A8A5401CEDC2C20A48EFC6FD0E0FEF884B -:1013F00015627FAC0C748C3061A8F38B12E18DD632 -:101400008810A57093C085B404D8713CFE85FF4355 -:10141000DF5F83EFB755040DDC192C7C1B7132CED6 -:10142000737785DF30F1410AC4FB649347C4934965 -:101430007899F0E8568B3FDE2704CE64DEA01E1EAE -:101440006C15F86AEB89CFAE23FE8E94DC6A64706B -:10145000DC56B44FA584C746BD8CE710D73970BFA2 -:10146000AF290707E2FF771FF13AFA5E174E3CD02B -:101470008A3810E5DBC681F7B702EB19ED8BFCC9A2 -:10148000955A078211B6A73728539E7CF9379B1FC0 -:1014900036FE7EB24CD0D9FB9EA00B06CC3BE8B901 -:1014A000EF3D118FA1010F362C20EF2FE8E76B40A5 -:1014B000FAD0D3F7843FC02F79DF26FE47FB76E3CF -:1014C000619F0B0FBBF76BF3E1619B3E8DD048F43E -:1014D000417CCE38C13E8FFB1C4F607CDE8E42F1DA -:1014E00054BF9FDB4CBFC6EDD3FD516E4FF5EBD023 -:1014F0008E00ECD9FE1A6E9FEB37F8F9F3FD4DDC48 -:10150000DA74984B1F91D7BCC6DAB3523B15273F0C -:101510007A55BB875561EC5E0FD3ED1CCA27295F56 -:10152000C8A0DC1B8EEFF6A429A4B7E39F8596BC68 -:101530005EEF3B7BD287E347CAC1D883DF2F6CDAEB -:10154000C672B6E6AC27AB2740714E81234F10839D -:101550005247BFCD7FB5637C87B6D4F1BE2436CD6C -:1015600076AA2B7ABD639CCDE77FA2380BF737D6DE -:101570007E5A23BAF6E82B1DE3947B91FF7514FF86 -:101580007CCC312FC8EB0CB2D3251B9C721872F1A6 -:1015900055DD7EFE38C8E6F3DBADCE78683EFEBA98 -:1015A000E5D5A66BC92C5D455C99A2B812E95AA293 -:1015B00009BADAE71DB1CE6BAFAB3489F35DE9F858 -:1015C0003244F16565BEF8F24D8BCE17882FBB9D76 -:1015D000F1A59BAE178A2F17B439EDCAC5D273D3C4 -:1015E0006291772B7941E6B845EEEE633F583A2594 -:1015F0001B5D64122D5C56443600C76D6A50D3845F -:1016000033C7603A4AFEFCB0845445792BAD35CAE5 -:10161000C9CE3C14365EE925DCD823F280CFC46EF7 -:101620008F12EE18DC7D348ACE0A9ADB3C6CEF46D2 -:101630006367387FA1E8C0F90B6CCD741E7C628FA4 -:10164000B7F38D8737AA6909C71FB6F28D877B6606 -:10165000F38D5CDF986810F9C68FB6E9569E29199C -:10166000A578E5AB1B1BCBD95929D8BF81861BAC0C -:1016700027FB035A88E2E8D4468F46E79257DDFFFE -:1016800005928F4352DFBE2A8ADFCA3C9C774D8584 -:101690001BCB37E3387913C218EA6F6C7C956CF674 -:1016A0004499BEAF8ABE0F5731FD0657DFEEA775CE -:1016B00046C20B7A283F32D2E1611EC98433423CD4 -:1016C0004FCDF9E21E771D40268B4BF15BC4935141 -:1016D000C95F11FEC8C9FBDBFCDF1F56393FBBA544 -:1016E000EDC1A3C92A7ECCF66BA15D97D9D8CA7982 -:1016F000E6738427A4F9EB327BAD7CE7ACDF893A53 -:10170000F793671DC605765D82FE743B4F8B7FA9FC -:101710005B3AD3E447C721DE4DF633193C7F1D44C5 -:10172000099EBF0E325FDD63579BC8A37E99F82EDA -:10173000EA338E7A89D26DD545ACF8F530E5C349E8 -:101740001E5C75127B1F03D67CA9593972D54D5684 -:10175000ABD67C06E4CB5FFFA9F593FBDB44BDE68B -:1017600052EB26DF6D03B15F2BDFEDB5F87F9D3CBB -:10177000B983E4F1CF9DEFFE6EDB95CD77CFAD134E -:10178000A5595FE0C4D93758AF972DB0F0CBF9EB2E -:1017900040FB09E823FFC657202EA5FA87D54FDE68 -:1017A00020E675D78502561EE5876D4B45BC45F68C -:1017B0008498AB188B89AE41E53B490DCF51101C85 -:1017C0008330B6BEC8E624B52D8B75AE0F8D2FF3D2 -:1017D000B0BF1A2F4A1C1DA4FD2F0BE6D58B572D29 -:1017E000FB376CD56F48803DA46F92AD1C90F02004 -:1017F0009F2640F0F9EDB6308F57B4D1A6BB506E9E -:10180000DE247928E3F3E4ADFF9C6913F59F9CF98E -:10181000BF41729AB226A77936E33CFF65C923908F -:10182000E35840C18E58CFAF8F36112EF85D9B26FE -:10183000DE2B2B0CD287F170FEF57E679D072815F5 -:10184000D398C5470B378879C02FBE3F2C9DED3DFF -:10185000BD8AF9CAFA44FBA0F7EEFA977BFE408DE9 -:1018600033BE512B9CE33F983D87332E3A344F7D56 -:101870006C51BB90D796C542CE483EF6E4910FB767 -:10188000BEAB94F7A478AA3D6CAD27EC4E50996A94 -:10189000A57827580B06D71495937CDEF893552727 -:1018A000A657919D0F191407297E3495F5D938D183 -:1018B0007DEE0BC5798A02496FFDDC780FE7358B29 -:1018C000EB859F49E6CC774DBB901339371EACA40E -:1018D0007044BF85EB785407A4FE2E5F6F3E3F5DDA -:1018E000DD76FEBACE9138C61114A43E7C70DF16A8 -:1018F000ECBFAB79341F8FD1F3D67534AB3F5BD7D8 -:10190000895F5C5D67B4BDA4A7EA52EA3AF3CC3BB9 -:10191000EB8FE7D675DADBF19C6341515F99ADEB54 -:10192000DC1AB9A87C0E587EB9C4B2CB453D561C12 -:10193000B153E238E2E9867F3FB09CE4ACC1CB72A0 -:1019400000072720574FD66DD0BF564A7EE6551F59 -:10195000540BBB66D27C765C6CD34FB5E66F7DF0E2 -:101960000585C68F977B1A793EC8F83C5CEC4EAA79 -:10197000562B53BB5CCDC8C5346F095875F48C44E5 -:10198000CF6348ACDCF86064E6A76DC59427098294 -:1019900041266824A6ED2EA67F501588F04EA59E00 -:1019A000267BDBE62F74D8FF911E55D8D76A715F6E -:1019B00066FCA4FEB5AD387E68678071D3A10A8F3E -:1019C000D0AFA4C4F5E40ECD19F78C4F2E1178ECEE -:1019D000A0D7A07B22C727C5F82DB1C6B4CCB8DBF1 -:1019E0001917F5E8CEB8684B79FD2B841761D0CB79 -:1019F000F978CDC2B537D738E3A4A2CABEE708A7A5 -:101A00006C1A1478786FB464C116B47FBF6AD71D9E -:101A100071E2E6C1BBB96E34A802D7534736AAAC0F -:101A20001F23DED78F6C61DC58C0749CD8A8962722 -:101A300072F4A5B4C367DD8B10F803E1656232CFA1 -:101A4000FBD20E617750B0D98FDBF2F2179F117481 -:101A50000E55405A271CD7B3234371E578059E09DC -:101A6000DF0F46AB7A4ED2FA2FCB40E774CB6165DD -:101A70004735EBE9AC3F6DF238E8E4F5C5FB687E2D -:101A8000B81974B26BEDDDD8A73CC00615283FE04D -:101A90008BFE2D9FB704FB01ECFBBB47930AF6FDC1 -:101AA000558995848B9FD975C7702C42FE4EE8B737 -:101AB0006FC3B6F82768FC2A2F04687FA04B51DA61 -:101AC0005F52DC6770EBC3DED4F7DB894F7B0D8997 -:101AD00059B4A967FD76BEB7142960DC34EA8D6F6E -:101AE000667B749B5F4BB20F9CE638C2FB151F9060 -:101AF000DC4DECFA4D19E1EF1FB58BBA664077C6A5 -:101B0000D77E1865BFBDDA9CDA40DFAD6E52A9E220 -:101B1000014F379F61BE4D34F80C1FEE63A259622E -:101B20003AFFA1C19BA6759E52A7645AF7A93FE050 -:101B3000DA95F9F43BBF5ED97AE41E3FD2B4DE4FAA -:101B400072B117A66E25FA2467449ECA3D2EDE2187 -:101B5000FCD5DED46D350AE7B354AEB72B670DB3B1 -:101B600018670FCFC4FF9972AFC97645C449E59E87 -:101B7000A484F30DF5887B194345896192E721948C -:101B80007B8E9322E23ED27879C4D89FB3DE78F37D -:101B9000ED3564CF5E6C0830BE1F38F5377711BE67 -:101BA0006F95DFFEEEC3145755A8CCCF216FDFAB86 -:101BB0001407251B02BCDF538B54F0933D88DCF5E2 -:101BC00000C5D9707C03E4CAEB44B7D0D3890AA11D -:101BD000F7D2C31B380E189764A6B359764C223C33 -:101BE000E6EBB6F34E22CF14B3CCD9C48647380FF8 -:101BF00075558FC8A3C6BAAD7C931C4CB25CDE1879 -:101C00007880F4DF54BC8EF878CD5967BC7C952B76 -:101C10005E76E7A3FEB7DDCA475879275B2E43D629 -:101C2000988926CB4EAFF2A5851CF6956BB573F55A -:101C3000FBDF2CFC3CD5EFE77B643FEDD7B81F32D0 -:101C4000DFD95D8AF3BCDC1FE5E77FB9FAA894FB16 -:101C5000DDC8AADBFC3ADB93E928CDEBB6236EB9ED -:101C6000D8DF5EE0F027F63E8B9A5BC5FDBBB36C18 -:101C700091614D70BA8D7D234C0573F17EA65FDCBA -:101C8000737BDADAE729DAA78FF264627FCFF5EBAC -:101C9000DC3EDF5FC3EDC60E10F500DB3E5C83F675 -:101CA00001E9D05E21FA640F88FF2591BB384FE629 -:101CB0008B2A1AE9BBBF623423E5D88789A2BE5FAD -:101CC000DC4D76BF2CC8F2E83ED79A0E4FDE736D1E -:101CD0006ADEC176E71CAE43F4473BB39DED10DAF4 -:101CE000055E77837A27EFC344BBC476A1EF6B7799 -:101CF000B05DF002C9B9DB0E9424857E277491BFD4 -:101D0000B3EF09CDDA055C278DEB3C8D769DFA4368 -:101D10006807689DA1E6D7FF9AD6FDC3FB057C2F17 -:101D20006A62E32B6C175E3C8736FB0ADA055B0FB1 -:101D30005F3B153B961BCF67F9BCFE8E13821E1AC4 -:101D400008BAF6C6F3C48997CA67302F0EC7A495A0 -:101D5000E93B45DD51653ACC5B774C7A0C4A0B0C7C -:101D60004C2ADD56DD11A8EE68D71F73EA8E05CE2A -:101D7000BAA39A4E31BE495B75C7DBD78ABAA35A5C -:101D8000301DCCEEC3AE370ED2A3F26C7DFEAE8E0C -:101D9000C4AE8E866C9D5197441DFCA598F9657A5A -:101DA0000E9112F6FFEE3AA55D8F4478272572EA70 -:101DB0009B75F8DC5F92AD7FB9EB99F6BD8C3A75F7 -:101DC000FAD801A4CBC09D7EC60FF6FE061EFDE824 -:101DD000AB8948F63E805DEFB4EB9976DD13F73DB5 -:101DE00096BB6F7802D8EEC063FEA3E4DFDCFBFD98 -:101DF0005E2C717F47599E7D5F647D711D58F32372 -:101E0000EE227D7ECDA2A33DEE414B1F97AB22BFBC -:101E10000D2195E39DD607832013CE2E528F915E20 -:101E20006C86E90EA2EF4058E0BCD4212FDBC9E359 -:101E30001D3AF3AF4C35F93E44D99703C66E9C2644 -:101E400075520B51FEA9A7DD3CDEC1FB18BD753DE7 -:101E5000ED03713BD9BB5F57DF17E17A3FDD7B2A8A -:101E6000A6F8CF584C7990173AF2DF576A597C762A -:101E70003DAF5BE4018ACF5201E339BE57FCA4C2F7 -:101E8000F3F5E014663DDF5F6A574B681E713F75DE -:101E900020789AF9D552ED5BC179BDA2FC71E0B30F -:101EA0001D226E5D8B73A938CF675A13DFA77D5350 -:101EB000AE34CA722CE2BB17C84E0AFB75AFA7310D -:101EC0009B072B96132FD078382E29E41F7D96DCA4 -:101ED000D871E23BADE68BC477E48749EBDBF78052 -:101EE000ECF55FB2F890EC307F4AE35EB7D6A9D349 -:101EF0009231D2C3BA04CA83C4FAE3AAC30BB9703D -:101F0000CBAB2D6FB375784B0E254DD46B51AE5EB8 -:101F1000E7FD3EA59FF448546F4F1C3D40DF5E66D1 -:101F2000BDFBEA36F32DDA77716BFC3F69DE5FEFBC -:101F3000BA83EF055FEC3D8E96C57D51AAE30F0590 -:101F4000046E7E286638ECDDA24EC19F459D022FAF -:101F50005D8F3233C5F74B0DBEF70DB09D71B46D7B -:101F60009F46FB138FBF599DFD3ED50F93540F9A8B -:101F70006F1FDE7D3B38AF3B50D1EA27FB83F6ADC8 -:101F800098FA43156634771FA92221E7C945226FC5 -:101F900041F9B464CE7DF2924E99CFD35601199295 -:101FA0001D5F50D4DD7CA8B83AFA1F9FD9C4F78BC7 -:101FB000F1F924A518AEEAD4455C1E31C0A478B36B -:101FC000220EA4DF3E2DFB3DD551DB2AFAF8BEE5FB -:101FD0007CF3C851FBFB047F7F53A7C6F3AA118F84 -:101FE000230F7021BAB9E9324874AB9E9F6EEA455F -:101FF000D34DE89D9B5E8D16BD9E097F91CF071F37 -:10200000B4B19EF9343C27B6AB3B857D9183262441 -:102010008AC846C51141529EBD0FA80E6DD359D630 -:10202000049D65AD8FBFF3551890B881E89260BAF2 -:10203000B8E9807602C84EFCF0D12311C2A72DD892 -:102040008F0AFB013E6CBFDE21F862EBE93AF849EA -:1020500050E4BF9DFEC26D4FEDF6212BFFEC7E2EAE -:10206000750584FDD0C141F722EBF70BC786EB194C -:102070001FA0FF4CD2BD98CEF2EA02EA5FE93AA275 -:10208000BB7EE8AE13BAEB8359B931FDB4CF77B557 -:10209000D3C98FE79117BB3D60E9DB60BF3FAFDE7F -:1020A0001D407D27FE0D359B49AA1BED0D4F47595D -:1020B0006E4EBEC5B858794136085F2A8AE073E78C -:1020C000A269E663579309546F3AD0DFFB9DDC7930 -:1020D000BFDE9AF84A27CA49A13669D23C41C824D2 -:1020E000C9FFAC2D35FBF2E1A621CB8EBCD31ADFA4 -:1020F0004DDFD1B575E2FF9B31730FF52FD66ECD55 -:10210000A74F8A4DBB4BD6A7D3429F9A76B03E8D40 -:1021100054F431CE1AF9894C482A8B232D7D1A6943 -:102120003EC3FA6EEB55DAB63F4D422F288F40FE84 -:102130003B5461B2DDF896A54F0AEA09E993CFD284 -:10214000A790961D4FF9F136A2333E572AA6F9BB48 -:102150005093A57FA44F41BA3F0C8C038650EF28C3 -:102160002FE2D6AF962AE1379F684D3CD449F862FA -:10217000D17ACECB0F55FCBE94F18B25FF59BC5BB9 -:10218000CFFEFCDCB0C7207DA823005D9FD503FBFC -:10219000DCAB6764C8206BD6CC48DCDE3453C86D3A -:1021A000CB4C805B73A694DBD84C98DBD699ABB94B -:1021B0006D9B29E7B67D06F56025EAC34C25B79DE2 -:1021C00033D773DB35B38CDBEE99953CAE67660590 -:1021D000B76B673EC6EDCD33CD629D1A71AE3CFA4A -:1021E0004065B02BA00F46128A480F3EF32ADB77DA -:1021F0004DE53B4AA97023D7897CCA34EBC3B1268D -:1022000061EFBB82824F6E7D78A735F1AB7CFA30EF -:102210008B6F15D088FE2A587F2EFC80F8E737F4A4 -:10222000BD8D7BD5A8C97286F8E40CF1F37271C23A -:102230002CCE5CAC321EB571E6C822C49995599C6F -:1022400039D42CE2B2D4211FC76F5B2471BFECEAF2 -:10225000B6C47FB37E82C813256EF56B849B53E1B1 -:10226000CE6890F27A7B65A07C01E2900F789F4A5D -:102270005CDC67BD487D7E3326ECBE3DBE0E4E7BEA -:10228000FA2E01C7FC9AFED93CBF5D28B95C3FEB32 -:102290006D13764113762155D137CC7569975DB0B2 -:1022A000FD2CD2C3611796765976C1D2F3920AE11A -:1022B0002F4BC82E207D9675D976C1E967151B87EF -:1022C00074DB38C4B20BDDE23BC4ED0E3F8BECF6A1 -:1022D000430E2E46395ADE950787B03FCFF1730380 -:1022E00055D531FA2D41F82CC4483C4333FA5A23D2 -:1022F0008FDF4969F5AC07279536C8CDAF5CB29E34 -:10230000856DBF63B2DF718FB3F56DE8648F38A759 -:10231000E5874EE2F9CD1C7DEBD2843F42FF73335B -:102320009DD3AD6F2D8BCD443CCF3E3FD925F0FEE4 -:102330008FD658B81771A511647C9F17377C92F817 -:10234000D7207EA7F118DA9F8EEE644AD159CF3F8D -:1023500049EBAE6E9F92290F7453D3E8CB541241D0 -:102360003DFD5457C3E5EB6953AB55EFDB592A2EBE -:102370003B5BED85E4DFC645B61EB8C73D5469F644 -:10238000E6A3C7B3163D06863D3D74E1CF968B9319 -:10239000CA52C63F79ECAD695C117B7B71F8E324CE -:1023A000FA41E2FB79F0C7817CFC9F0F7F8C77CDEF -:1023B000E28F31E2534BADC01FCF76C179E39BCBA7 -:1023C000C615B1D34CB7CBC5150F769D1F577CA74B -:1023D0004BD84D459B66FB11BA4C5CE1B613881F88 -:1023E000FE95E96308BF6BFFDE842F50E6F82FB43B -:1023F000338FD338C20D7479EC58B03529B11EC46F -:102400009FA4E7A3E61296A32BA50F88137FD09570 -:10241000D3BF905E5CF4B8C98D9C07B4EB997F0C78 -:1024200084EA283FB2D32FDA2F15848E513BD62F62 -:10243000F2D07F0C2C4E53DE6CCC0B5C3F18940A10 -:102440008C63223FBA9C7F5F037D37527BA6CBAE65 -:10245000CBFF9DA35E1AD6B63DFE6669BEFD88FB26 -:10246000BD948AFF90EF8157689C3FB7E84169208F -:10247000F6CFD5058CFF00614B538EDD4F75AC1345 -:102480007172A59FEB79322867281F3F4C6BF1FED4 -:102490007AB98E19B0FC212849FDE3BC5F9107B5DC -:1024A0007FF7B76FF5FA627109793B8FB7E57F5F08 -:1024B00070D4AFD53AF4DDF1BB6E772BAF38A5B54C -:1024C000E17EC77485EBAE078D4880EB2615227B35 -:1024D000EE5FE489A7F3E8E9B5DDB3F722785F6141 -:1024E0006B5FBE0E11AFCDB7DEFE7EE73DAB82DA8D -:1024F000B849FEC45FD91727BAF9174524CAABCE2D -:10250000D2BB5BB2EE69189916A4F7B0A587053562 -:1025100093190FD139BC6D25D1D65F938633344FD3 -:10252000ED24BC41FEA2D2DF9B6FDFD759FB1EF624 -:1025300026E38493862B15AE5F0E57E6F72F25DD35 -:10254000C2FEFA17EDE0F1B048E1FAB37B9CD22D60 -:10255000E4689FDAC7758CA145F7F37DB721FA21AE -:10256000CD47D1EEFD70E681DDF8FC50FFF6C7DF08 -:10257000F4929C26B8DD77ED7E8DEE711EAAF76889 -:1025800094870BFB337EFA7D6678B5C87396B4E307 -:10259000B8DC7855AE08909D0DADC27972E2D031AD -:1025A000D002B4EEBE906D1FA7FDC23E0A792AB2DA -:1025B000C68EAC1275A9917576FE5FF02FFB7E7CFE -:1025C000BBB82FA7EAC079685197E2D49E4EF7674F -:1025D000EBC374AE324DD4A30E59F23568E5D9DDA4 -:1025E0007439B4788AFDC9A13553BDE43F429ADFFE -:1025F000E826B93EEEDCD7DEE66907DE1869386DFD -:10260000EDDFBD3F21F7CAD36F093B69E1FE90F1D1 -:102610007BC659F63DAEAED5420F8BAD7BF4C5916E -:10262000B849F3EDBEF6B749AA131D2EB7EF167CD5 -:10263000DE790F03A6191787565B7539F96DBEFF52 -:102640000BB78A7B12F63D6F35A23AF202A5AEFBBC -:102650005921571FE40DE7BDCFB6F397479F3F952C -:10266000C3CFCF773BEF835FE8FB3FF6A79F3F8564 -:102670007E6E6CD5F9F5CFE6D3E1FE266E6D39B4EA -:10268000E5324C47AC9FFFFBB1703C6FBDE5114B91 -:102690004FDCF2EA96D3625F9CFDFEE81AE73CF756 -:1026A000597A7E9F358FBA18CA090F8D86855E8E3E -:1026B00006A0F7913CE77AAC5BE5F159B977E28285 -:1026C000A2CBC5052B5AADB8A284F56D6C55EB7342 -:1026D0002437EF915EE4D82777DEDCC6054A8FC049 -:1026E000A5CF845589FCBA169C66BC3CEBD72D1C43 -:1026F000E0F6EB7E6FB297F4CF5FA9DA7689ED470B -:102700006577E01BC920FB0329D70F1ECADCC9F37C -:10271000865D797388387F87B2B71B984E61DDB2CA -:102720002FDD8AB887356A42EE3D9A31CFDB336FB1 -:10273000E8E2DF1FD838A292DE1F9CE2DFC7C03D6F -:1027400090BBFEDE964DFC7B880BF1DDDE17DDCB0A -:10275000CAD59B4BD58B976DBD084080F4E21CDC3D -:10276000CB757418ED76F821AE282C601320FEF09E -:10277000984AA365C7A4ACBE409755DF4E883A3D42 -:102780005198BE33ACCFCAE99604C5D790E1DF1D9E -:10279000DAF6E51CFC92D74D3E2D49B3B8E96A0C38 -:1027A000DFE9F78C4B690B9A875AF7FE9780C1CF08 -:1027B000AB20CEEDB5D0C76D0D8C727B1D4C725B1E -:1027C0000B53DCD6C1596E57802ED3222BC1948176 -:1027D000AF5E26B87F2324B96D86C4FB742774B01E -:1027E0006CDB0AB257EFBBE864D3398FBE332EB42B -:1027F000E961D3FD2132D20D17E66B2A2CEC6F5B19 -:10280000D314E3D7A2A01DFF0A39B7E7990FC7BABF -:1028100071979F70D7CAB9727021DC65E3C4FF035A -:1028200008E97101B048000000000000000000004D -:102830000000001800000000000000000000004040 -:102840000000000000000000000000280000000060 -:102850000000000000000010000000000000000068 -:102860000000002000000000000000000000001038 -:102870000000000000000000000000080000000050 -:102880000000000000000000000000000000000048 -:102890000000000000000000000000000000000038 -:1028A0000000000000000000000000000000000028 -:1028B0000000000000000000000000000000000018 -:1028C0000000000000000000000000000000000008 -:1028D00000000000000000000000000000000000F8 -:1028E00000000000000000000000000000000000E8 -:1028F00000000000000000000000000000000000D8 -:1029000000000000000000000000000000000000C7 -:1029100000000000000000000000000000000000B7 -:1029200000000000000000000000000000000000A7 -:102930000000000000000000000000000000000097 -:102940000000000000000000000000000000000087 -:102950000000000000000000000000000000000077 -:102960000000000000000000000000000000000067 -:102970000000000000000000000000000000000057 -:102980000000000000000000000000000000000047 -:102990000000000000000000000090000010000097 -:1029A0000000000800009008001000000000000275 -:1029B00000009000001000000000001000009DA822 -:1029C000000000000000000880000000000000007F -:1029D0000000000080000000000000000000000077 -:1029E000800000000000000000000000000091A036 -:1029F0000000000000000008000093C00001000477 -:102A000000000001000093C8000000000000000268 -:102A1000000093D00000000000000008000093D4E4 -:102A20000000000000000002000094980000000078 -:102A300000000008000093D8000800000000000813 -:102A400000009B3800400000000000400000941887 -:102A50000008000000000008000094580008000072 -:102A600000000008000094A800C8000000000098C2 -:102A700000009638009800000000002800009678BA -:102A800000980000000000280000C0000540003051 -:102A9000000005400000CB200008000000000001FD -:102AA0000000CB2100080000000000010000200809 -:102AB00000100000000000100000200000000000D6 -:102AC0000000000800009D600008000000000002F7 -:102AD00000009DA0000000000000000100000000B8 -:102AE00000000000000000000000000000000000E6 -:102AF00000000000000000000000000000000000D6 -:102B000080000000000000000000000080000000C5 -:102B10000000000000000000800000000000000035 -:102B20000000000080000000000000000000000025 -:102B30008000000000000000000000008000000095 -:102B40000000000000000000800000000000000005 -:102B500000000000800000000000000000000000F5 -:102B60008000000000000000000000008000000065 -:102B700000000000000000008000000000000000D5 -:102B800000000000800000000000000000000000C5 -:102B900080000000000000000000000000000000B5 -:102BA0000000000000000000000000000000000025 -:102BB0000000000000000000000000000000000015 -:102BC0000000000000000000000000000000000005 -:102BD0000000000000000000800000000000000075 -:102BE0000000000080000000000000000000000065 -:102BF0008000000000000000000000000000000055 -:102C00000000000000000000800000000000000044 -:102C10000000000080000000000000000000000034 -:102C20008000000000000000000000000000000024 -:102C30000000000000000000000000000000000094 -:102C40000000000000000000000000000000000084 -:102C50000000000000000000000000000000000074 -:102C60000000000000000000000000000000000064 -:102C700000000000000012C800800000000000807A -:102C80000000000100000000000000000000A000A3 -:102C9000071000000000071000001EC80000000020 -:102CA000000000080000AEC000080000000000089E -:102CB0000000AE4000080000000000080000AE80E8 -:102CC00000080000000000080000200800100000BC -:102CD00000000010000020000000000000000008BC -:102CE0000000A01007100040000000400000AF40AE -:102CF00000080000000000010000AF4100080000D3 -:102D00000000000100001ED00000000000000001D3 -:102D100000001ED8000000000000000200001EDAC3 -:102D20000000000000000002000012B000080000D7 -:102D3000000000088000000000000000000000000B -:102D40008000000000000000000000008000000083 -:102D500000000000000000008000000000000000F3 -:102D600000000000800000000000000000000000E3 -:102D70008000000000000000000000008000000053 -:102D800000000000000000008000000000000000C3 -:102D900000000000800000000000000000000000B3 -:102DA0000000000000000000000000000000000023 -:102DB0000000000000000000000000000000000013 -:102DC0000000000000000000000000000000000003 -:102DD0000000000000000000000000008000000073 -:102DE0000000000000000000800000000000000063 -:102DF00000000000000000000000000000000000D3 -:102E000080000000000000000000000080000000C2 -:102E10000000000000000000800000000000000032 -:102E20000000000080000000000000000000000022 -:102E30000000B00000180000000000180000B300FF -:102E400000400000000000400000B300004000020D -:102E5000000000010000B30100400002000000007B -:102E600000008000004000000000004080000000E2 -:102E7000000000000000000000008000000800408A -:102E8000000000040000800400080040000000046E -:102E90000000BB0000280000000000280000BC402B -:102EA00000100000000000100000880000800000FA -:102EB0000000008000008800000800800000000280 -:102EC00000008C000020000000000020000020080E -:102ED00000100000000000100000200000000000B2 -:102EE00000000008000011080008000000000008B1 -:102EF000000011680008000000000008000011A890 -:102F00000008000000000008000012700008000027 -:102F10000000000100001271000800000000000124 -:102F200000008D00001000040000000400001320C9 -:102F300000300018000000100000132800300018B6 -:102F400000000002800000000000000000000000FF -:102F5000800000000000000000000000000011E8F8 -:102F600000000000000000018000000000000000E0 -:102F700000000000800000000000000000000000D1 -:102F80008000000000000000000000008000000041 -:102F900000000000000000008000000000000000B1 -:102FA00000000000800000000000000000000000A1 -:102FB0000000000000000000000000000000000011 -:102FC0000000000000000000000000000000000001 -:102FD00000000000000000000000000000000000F1 -:102FE00080000000000000000000000080000000E1 -:102FF00000000000000000000000000000000000D1 -:103000000000000000008308008000000000008035 -:103010000000000100000000000000000000200887 -:103020000010000000000010000020000000000060 -:103030000000000800008D100008000000000008DB -:1030400000008D700008000000000008000084509F -:10305000046000280000046000008EA0000800004A -:103060000000000100008EA1000800000000000127 -:1030700000008408000800000000000800008448E8 -:10308000000000000000000100008DF400080000B6 -:103090000000000200008DF60008000000000002A1 -:1030A00000008E04001000000000000480000000FA -:1030B0000000000000000000800000000000000090 -:1030C0000000000080000000000000000000000080 -:1030D00000000000000000000000000000000000F0 -:1030E00000000000000000000000000000000000E0 -:1030F00000000000000000000000000000000000D0 -:1031000080000000000000000000000080000000BF -:1031100000000000000000000000000000000000AF -:10312000000000008000000000000000000000001F -:10313000800000000000000000000000800000008F -:1031400000000000000000008000000000000000FF -:1031500000000000000030000040000000000008F7 -:1031600000003008004000000000002800003390FC -:1031700001C0001000000008000032000020000024 -:1031800000000020000037200000000000000008C0 -:103190000000102006200038000000080000A000F9 -:1031A000000000000000200000003EA90000000018 -:1031B0000000000100003EC8000000000000000206 -:1031C00000001C4000E00008000000088000000033 -:1031D00000000000000000000000400000080000A7 -:1031E0000000000100004001000800000000000194 -:1031F00000004040000800040000000200004060A1 -:103200000008000400000004000040000008000066 -:10321000000000040000400400080000000000045A -:10322000000040400000000000000008000040488E -:103230000000000000000008000080000000000006 -:1032400000000010000050400001000400000001D8 -:1032500000005000000000000000002000005008A6 -:1032600000100000000000040000500C00100000DE -:1032700000000001000052C7000000000000000133 -:10328000000052C6000000000000000100003000F5 -:103290000030001800000004000030040030001866 -:1032A0000000000400003008003000180000000298 -:1032B0000000300A00300018000000020000300C4E -:1032C00000300018000000010000300D0030001830 -:1032D000000000010000300E003000180000000166 -:1032E000000030100030001800000004000030140E -:1032F00000300018000000040000500001000080B1 -:1033000000080004000050040100008000080004D0 -:103310000000000A000000000000000000005068EB -:1033200001000080000000010000506901000080E1 -:10333000000000010000506C01000080000000024D -:103340000000506E0100008000000002000050707C -:1033500001000080000000040000507401000080A3 -:103360000000000400005066010000800000000220 -:103370000000506401000080000000010000506067 -:103380000100008000000002000050620100008087 -:103390000000000200005050010000800000000406 -:1033A000000050540100008000000004000050584C -:1033B00001000080000000040000505C010000805B -:1033C000000000040000507C0100008000000001AB -:1033D0000000507D01000080000000010000401846 -:1033E00000100000000000040000409000100000E9 -:1033F00000000004000040980010000000000004DD -:103400000000411000000000000000020000411216 -:103410000000000000000002000041140000000055 -:103420000000000200004116000000000000000241 -:103430000000604000080000000000020000604240 -:1034400000080000000000020000604400080000C6 -:103450000000000400006080000800000000000878 -:10346000000060C00040000800000008000060008C -:1034700000080000000000020000600200080000D8 -:1034800000000001000060040008000000000002CD -:103490000000634000080000000000080000638096 -:1034A0000008000000000004000063840008000021 -:1034B00000000001000063C00008000000000002DE -:1034C000000063C400080000000000020000640067 -:1034D0000008000000000004000070000010000060 -:1034E0000000000400007004001000000000000450 -:1034F00000007008001000000000000400007000D0 -:103500000008000000000002000070020008000037 -:10351000000000010000700400080000000000022C -:10352000000070400008000000000002000070442D -:1035300000080000000000020000704600080000C3 -:1035400000000002000076480008000000000008AB -:10355000000070800008000000000002000070847D -:10356000000800000000000200007688000800004B -:10357000000000080000804000080000000000017A -:1035800000008041000800000000000100008042AF -:103590000008000000000001000080430008000057 -:1035A0000000000100008000000800000000000290 -:1035B00000008002000800000000000100008004FC -:1035C0000008000000000002000080C000080000A9 -:1035D00000000002000080C200080000000000029D -:1035E000000080C40008000000000002000080808D -:1035F00000080000000000010000808100080000B9 -:1036000000000001000080820008000000000001AE -:10361000000080830008000000000001000080849A -:103620000008000000000001000080850008000084 -:10363000000000010000808600080000000000017A -:1036400000006000000800000000000200006002AE -:1036500000080000000000010000600400080000F5 -:10366000000000020000604200C0001800000002DC -:103670000000604000C00018000000020000604C24 -:1036800000C00018000000080000604400C00018DE -:10369000000000080000605700C000180000000192 -:1036A0000000605400C000180000000200006056D6 -:1036B00000C0001800000001000066400008000083 -:1036C00000000008000066800008000000000008FC -:1036D000000066C000080000000000080000D94299 -:1036E00000180000000000020000DE4000000000A2 -:1036F000000000000000E0000000000000000004E6 -:103700000000DD4000000000000000040000DD4477 -:1037100000000000000000040000DD480000000080 -:10372000000000040000DD4C000000000000000468 -:103730000000DD5000000000000000040000DD5427 -:1037400000000000000000040000DD580000000040 -:10375000000000040000DD40000000000000002028 -:103760000000DA0000000000000000040000DA00A1 -:1037700000000000000000680000BB6000000000C6 -:10378000000000000000D000000000000000000465 -:103790000000B0C000000000000000040000B0C441 -:1037A00000000000000000040000B0C8000000009D -:1037B000000000040000B0C0000000000000001085 -:1037C0000000D6B000000000000000040000D6B4E5 -:1037D00000000000000000040000D6B80000000057 -:1037E000000000040000D6BC00000000000000043F -:1037F0000000D6B000000000000000100000D34818 -:1038000000000000000000080000D3580000000085 -:103810000000008000000010000000000000000018 -:103820000000D35800000000000000080000000065 -:0838300006020900000000007F -:00000001FF diff --git a/firmware/bnx2x/bnx2x-e2-6.2.9.0.fw.ihex b/firmware/bnx2x/bnx2x-e2-6.2.9.0.fw.ihex deleted file mode 100644 index 8405e719e7fb..000000000000 --- a/firmware/bnx2x/bnx2x-e2-6.2.9.0.fw.ihex +++ /dev/null @@ -1,15473 +0,0 @@ -:1000000000005310000000680000070C000053803F -:100010000000318000005A90000000B000008C18F1 -:100020000000C13400008CD0000000D800014E0850 -:100030000000F26400014EE800000074000241502C -:1000400000005250000241C8000000B40002942099 -:10005000000121EC000294D800000FFC0003B6C898 -:10006000000000040003C6C8020400480000000F9E -:1000700002040054000000450204005C0000000679 -:100080000204007000000004020400780000000078 -:100090000204007C121700000204008022170000F6 -:1000A00002040084321700000604008800000005E6 -:1000B0000204009C12150000020400A0221500009A -:1000C000020400A432150000060400A80000000489 -:1000D000020400B802100000020400BC001000007E -:1000E000020400C010100000020400C42010000030 -:1000F000020400C830100000020400CC40100000D0 -:10010000060400D000000003020400DC0010000020 -:10011000020400E012140000020400E422140000B3 -:10012000020400E832140000020400EC4214000053 -:10013000060400F000000003010401240000000098 -:1001400001040128000000000104012C000000004F -:100150000104013000000000020401D00000890603 -:1001600002040258000000360204025C000000365F -:10017000020402600810000002040264081000007B -:1001800002040004000000FF02040008000000FF59 -:100190000204000C000000FF02040010000000FF39 -:1001A000020400140000007F02040018000000FF99 -:1001B0000204001C000000FF02040020000000FFF9 -:1001C000020400240000003E020400280000000099 -:1001D0000204002C0000003F020400300000003F39 -:1001E000020400340000003F020400380000003F19 -:1001F0000204003C0000003F020400400000003FF9 -:10020000020400440000003F020404CC000000018E -:1002100002042008000002110204200C0000020069 -:10022000020420100000020402042014000002193D -:100230000204201C0000FFFF020420200000FFFF3A -:10024000020420240000FFFF020420280000FFFF1A -:1002500002042038000000200604203C0000000FAB -:1002600002042078000000210604207C0000000F1A -:10027000020420B800000001060420BC0000000FAA -:10028000020420F800000001060420FC0000003FEA -:10029000020421F800000001060421FC0000000F08 -:1002A0000204223807FFFFFF0204223C0000007F07 -:1002B0000204224007FFFFFF020422440000003F27 -:1002C00001042248000000000104224C000000004C -:1002D000010422500000000001042254000000002C -:1002E00001042258000000000104225C000000000C -:1002F00001042260000000000104226400000000EC -:1003000001042268000000000104226C00000000CB -:1003100001042270000000000104227400000000AB -:1003200001042278000000000104227C000000008B -:10033000020422C00000FFFF020422C40000FFFFED -:10034000020422C80000FFFF020422CC0000FFFFCD -:100350000C042000000003E80A0420000000000153 -:100360000B042000000000030605400000000D0003 -:100370000205004400000020020500480000003291 -:1003800002050090021500200205009402150020CD -:1003900002050098000000300205009C08100000D3 -:1003A000020500A000000036020500A40000003095 -:1003B000020500A800000031020500B000000004A2 -:1003C000020500B400000005020500C000000000A6 -:1003D000020500C400000004020500D40000000172 -:1003E00002050114000000010205011C00000001CB -:1003F00002050120000000020205020400000001C5 -:100400000205020C0000004002050210000000403E -:100410000205021C00000020020502200000001C52 -:100420000205022400000020060502400000000A28 -:1004300004050280002000000205005000000007B3 -:1004400002050054000000070205005800000000EB -:100450000205005C000000080205006000000001C9 -:100460000605006400000003020500D80000000635 -:100470000205000400000001020500080000000160 -:100480000205000C00000001020500100000000140 -:100490000205001400000001020500180000000120 -:1004A0000205001C00000001020500200000000100 -:1004B00002050024000000010205002800000001E0 -:1004C0000205002C000000010205003000000001C0 -:1004D00002050034000000010205003800000001A0 -:1004E0000205003C00000001020500400000000180 -:1004F000020500E00000000D020500E80000000019 -:10050000020500F000000000020500F800000000F5 -:10051000020500E40000002D020500EC00000020B0 -:10052000020500F400000020020500FC000000208D -:10053000020500E00000001D020500E800000010B8 -:10054000020500F000000010020500F80000001095 -:10055000020500E40000003D020500EC0000003050 -:10056000020500F400000030020500FC000000302D -:10057000020500E00000004D020500E80000004018 -:10058000020500F000000040020500F800000040F5 -:10059000020500E40000006D020500EC00000060B0 -:1005A000020500F400000060020500FC000000608D -:1005B000020500E00000005D020500E800000050B8 -:1005C000020500F000000050020500F80000005095 -:1005D000020500E40000007D020500EC0000007050 -:1005E000020500F400000070020500FC000000702D -:1005F0000406100002000020020600DC00000001DA -:100600000406020000030220020600DC00000000D5 -:100610000718040000AD0000081807D800050223E1 -:10062000071C000029920000071C8000312A0A657F -:10063000071D000034A216B0071D80002E7A23D9B2 -:10064000071E000003502F78081E07F03F02022506 -:10065000021800BC0000003001180000000000007B -:10066000011800040000000001180008000000004C -:100670000118000C0000000001180010000000002C -:100680000118001400000000021800200000000102 -:1006900002180024000000020218002800000003D5 -:1006A0000218002C000000000218003000000004B6 -:1006B0000218003400000001021800380000000099 -:1006C0000218003C00000001021800400000000475 -:1006D0000218004400000000021800480000000159 -:1006E0000218004C00000003021800500000000037 -:1006F0000218005400000001021800580000000415 -:100700000218005C000000000218006000000001F8 -:1007100002180064000000030218006800000000D6 -:100720000218006C000000010218007000000004B4 -:100730000218007400000000021800780000000495 -:100740000218007C00000003061800800000000270 -:10075000021800A400007FFF021800A8000003FF99 -:1007600002180224000000000218023400000000F9 -:100770000218024C00000000021802E4000000FF12 -:100780000618100000000400021B8BC000000001CE -:10079000021B800000000034021B80400000001893 -:1007A000021B80800000000C021B80C000000020A3 -:1007B0000C1B8300000864700A1B830000000157B3 -:1007C0000B1B83000000055F0A1B83400000000034 -:1007D0000C1B8340000002260B1B8340000000011D -:1007E000021B838000086470021B83C00000022685 -:1007F000021B1480000000010A1B1480000000008E -:10080000021B944000000001061B944800000002F7 -:10081000061A1000000002B3041A1ACC00010227C5 -:10082000061A1AD000000008061A2008000000C8A6 -:10083000061A200000000002041A1BF8009002288B -:10084000061A371800000004061A371000000002CC -:10085000061A500000000002061A500800000004AA -:10086000061A501800000004061A50280000000460 -:10087000061A503800000004061A50480000000410 -:10088000061A505800000004061A506800000004C0 -:10089000061A507800000002041A52C0000202B882 -:1008A000061A405000000006041A4068000202BA0E -:1008B000041A4040000402BC041A8000000102C077 -:1008C000061A800400000003041A8010000102C10F -:1008D000061A801400000003041A8020000102C2DE -:1008E000061A802400000003041A8030000102C3AD -:1008F000061A803400000003041A8040000102C47C -:10090000061A804400000003041A8050000102C54A -:10091000061A805400000003041A8060000102C619 -:10092000061A806400000003041A8070000102C7E8 -:10093000061A807400000003041A8080000102C8B7 -:10094000061A808400000003041A8090000102C986 -:10095000061A809400000003041A80A0000102CA55 -:10096000061A80A400000003041A80B0000102CB24 -:10097000061A80B400000003041A80C0000102CCF3 -:10098000061A80C400000003041A80D0000102CDC2 -:10099000061A80D400000003041A80E0000102CE91 -:1009A000061A80E400000003041A80F0000102CF60 -:1009B000061A80F400000003041A8100000102D02E -:1009C000061A810400000003041A8110000102D1FC -:1009D000061A811400000003041A8120000102D2CB -:1009E000061A812400000003041A8130000102D39A -:1009F000061A813400000003041A8140000102D469 -:100A0000061A814400000003041A8150000102D537 -:100A1000061A815400000003041A8160000102D606 -:100A2000061A816400000003041A8170000102D7D5 -:100A3000061A817400000003041A8180000102D8A4 -:100A4000061A818400000003041A8190000102D973 -:100A5000061A819400000003041A81A0000102DA42 -:100A6000061A81A400000003041A81B0000102DB11 -:100A7000061A81B400000003041A81C0000102DCE0 -:100A8000061A81C400000003041A81D0000102DDAF -:100A9000061A81D400000003041A81E0000102DE7E -:100AA000061A81E400000003041A81F0000102DF4D -:100AB000061A81F400000003041A8200000102E01B -:100AC000061A820400000003041A8210000102E1E9 -:100AD000061A821400000003041A8220000102E2B8 -:100AE000061A822400000003041A8230000102E387 -:100AF000061A823400000003041A8240000102E456 -:100B0000061A824400000003041A8250000102E524 -:100B1000061A825400000003041A8260000102E6F3 -:100B2000061A826400000003041A8270000102E7C2 -:100B3000061A827400000003041A8280000102E891 -:100B4000061A828400000003041A8290000102E960 -:100B5000061A829400000003041A82A0000102EA2F -:100B6000061A82A400000003041A82B0000102EBFE -:100B7000061A82B400000003041A82C0000102ECCD -:100B8000061A82C400000003041A82D0000102ED9C -:100B9000061A82D400000003041A82E0000102EE6B -:100BA000061A82E400000003041A82F0000102EF3A -:100BB000061A82F400000003041A8300000102F008 -:100BC000061A830400000003041A8310000102F1D6 -:100BD000061A831400000003041A8320000102F2A5 -:100BE000061A832400000003041A8330000102F374 -:100BF000061A833400000003041A8340000102F443 -:100C0000061A834400000003041A8350000102F511 -:100C1000061A835400000003041A8360000102F6E0 -:100C2000061A836400000003041A8370000102F7AF -:100C3000061A837400000003041A8380000102F87E -:100C4000061A838400000003041A8390000102F94D -:100C5000061A839400000003041A83A0000102FA1C -:100C6000061A83A400000003041A83B0000102FBEB -:100C7000061A83B400000003041A83C0000102FCBA -:100C8000061A83C400000003041A83D0000102FD89 -:100C9000061A83D400000003041A83E0000102FE58 -:100CA000061A83E400000003041A83F0000102FF27 -:100CB000061A83F400000003041A840000010300F4 -:100CC000061A840400000003041A841000010301C2 -:100CD000061A841400000003041A84200001030291 -:100CE000061A842400000003041A84300001030360 -:100CF000061A843400000003041A8440000103042F -:100D0000061A844400000003041A845000010305FD -:100D1000061A845400000003041A846000010306CC -:100D2000061A846400000003041A8470000103079B -:100D3000061A847400000003041A8480000103086A -:100D4000061A848400000003041A84900001030939 -:100D5000061A849400000003041A84A00001030A08 -:100D6000061A84A400000003041A84B00001030BD7 -:100D7000061A84B400000003041A84C00001030CA6 -:100D8000061A84C400000003041A84D00001030D75 -:100D9000061A84D400000003041A84E00001030E44 -:100DA000061A84E400000003041A84F00001030F13 -:100DB000061A84F400000003041A850000010310E1 -:100DC000061A850400000003041A851000010311AF -:100DD000061A851400000003041A8520000103127E -:100DE000061A852400000003041A8530000103134D -:100DF000061A853400000003041A8540000103141C -:100E0000061A854400000003041A855000010315EA -:100E1000061A855400000003041A856000010316B9 -:100E2000061A856400000003041A85700001031788 -:100E3000061A857400000003041A85800001031857 -:100E4000061A858400000003041A85900001031926 -:100E5000061A859400000003041A85A00001031AF5 -:100E6000061A85A400000003041A85B00001031BC4 -:100E7000061A85B400000003041A85C00001031C93 -:100E8000061A85C400000003041A85D00001031D62 -:100E9000061A85D400000003041A85E00001031E31 -:100EA000061A85E400000003041A85F00001031F00 -:100EB000061A85F400000003041A860000010320CE -:100EC000061A860400000003041A8610000103219C -:100ED000061A861400000003041A8620000103226B -:100EE000061A862400000003041A8630000103233A -:100EF000061A863400000003041A86400001032409 -:100F0000061A864400000003041A865000010325D7 -:100F1000061A865400000003041A866000010326A6 -:100F2000061A866400000003041A86700001032775 -:100F3000061A867400000003041A86800001032844 -:100F4000061A868400000003041A86900001032913 -:100F5000061A869400000003041A86A00001032AE2 -:100F6000061A86A400000003041A86B00001032BB1 -:100F7000061A86B400000003041A86C00001032C80 -:100F8000061A86C400000003041A86D00001032D4F -:100F9000061A86D400000003041A86E00001032E1E -:100FA000061A86E400000003041A86F00001032FED -:100FB000061A86F400000003041A870000010330BB -:100FC000061A870400000003041A87100001033189 -:100FD000061A871400000003041A87200001033258 -:100FE000061A872400000003041A87300001033327 -:100FF000061A873400000003041A874000010334F6 -:10100000061A874400000003041A875000010335C4 -:10101000061A875400000003041A87600001033693 -:10102000061A876400000003041A87700001033762 -:10103000061A877400000003041A87800001033831 -:10104000061A878400000003041A87900001033900 -:10105000061A879400000003041A87A00001033ACF -:10106000061A87A400000003041A87B00001033B9E -:10107000061A87B400000003041A87C00001033C6D -:10108000061A87C400000003041A87D00001033D3C -:10109000061A87D400000003041A87E00001033E0B -:1010A000061A87E400000003041A87F00001033FDA -:1010B000061A87F400000003041A880000010340A8 -:1010C000061A880400000003041A88100001034176 -:1010D000061A881400000003041A88200001034245 -:1010E000061A882400000003041A88300001034314 -:1010F000061A883400000003041A884000010344E3 -:10110000061A884400000003041A885000010345B1 -:10111000061A885400000003041A88600001034680 -:10112000061A886400000003041A8870000103474F -:10113000061A887400000003041A8880000103481E -:10114000061A888400000003041A889000010349ED -:10115000061A889400000003041A88A00001034ABC -:10116000061A88A400000003041A88B00001034B8B -:10117000061A88B400000003041A88C00001034C5A -:10118000061A88C400000003041A88D00001034D29 -:10119000061A88D400000003041A88E00001034EF8 -:1011A000061A88E400000003041A88F00001034FC7 -:1011B000061A88F400000003041A89000001035095 -:1011C000061A890400000003041A89100001035163 -:1011D000061A891400000003041A89200001035232 -:1011E000061A892400000003041A89300001035301 -:1011F000061A893400000003041A894000010354D0 -:10120000061A894400000003041A8950000103559E -:10121000061A895400000003041A8960000103566D -:10122000061A896400000003041A8970000103573C -:10123000061A897400000003041A8980000103580B -:10124000061A898400000003041A899000010359DA -:10125000061A899400000003041A89A00001035AA9 -:10126000061A89A400000003041A89B00001035B78 -:10127000061A89B400000003041A89C00001035C47 -:10128000061A89C400000003041A89D00001035D16 -:10129000061A89D400000003041A89E00001035EE5 -:1012A000061A89E400000003041A89F00001035FB4 -:1012B000061A89F400000003041A8A000001036082 -:1012C000061A8A0400000003041A8A100001036150 -:1012D000061A8A1400000003041A8A20000103621F -:1012E000061A8A2400000003041A8A3000010363EE -:1012F000061A8A3400000003041A8A4000010364BD -:10130000061A8A4400000003041A8A50000103658B -:10131000061A8A5400000003041A8A60000103665A -:10132000061A8A6400000003041A8A700001036729 -:10133000061A8A7400000003041A8A8000010368F8 -:10134000061A8A8400000003041A8A9000010369C7 -:10135000061A8A9400000003041A8AA00001036A96 -:10136000061A8AA400000003041A8AB00001036B65 -:10137000061A8AB400000003041A8AC00001036C34 -:10138000061A8AC400000003041A8AD00001036D03 -:10139000061A8AD400000003041A8AE00001036ED2 -:1013A000061A8AE400000003041A8AF00001036FA1 -:1013B000061A8AF400000003041A8B00000103706F -:1013C000061A8B0400000003041A8B10000103713D -:1013D000061A8B1400000003041A8B20000103720C -:1013E000061A8B2400000003041A8B3000010373DB -:1013F000061A8B3400000003041A8B4000010374AA -:10140000061A8B4400000003041A8B500001037578 -:10141000061A8B5400000003041A8B600001037647 -:10142000061A8B6400000003041A8B700001037716 -:10143000061A8B7400000003041A8B8000010378E5 -:10144000061A8B8400000003041A8B9000010379B4 -:10145000061A8B9400000003041A8BA00001037A83 -:10146000061A8BA400000003041A8BB00001037B52 -:10147000061A8BB400000003041A8BC00001037C21 -:10148000061A8BC400000003041A8BD00001037DF0 -:10149000061A8BD400000003041A8BE00001037EBF -:1014A000061A8BE400000003041A8BF00001037F8E -:1014B000061A8BF400000003041A8C00000103805C -:1014C000061A8C0400000003041A8C10000103812A -:1014D000061A8C1400000003041A8C2000010382F9 -:1014E000061A8C2400000003041A8C3000010383C8 -:1014F000061A8C3400000003041A8C400001038497 -:10150000061A8C4400000003041A8C500001038565 -:10151000061A8C5400000003041A8C600001038634 -:10152000061A8C6400000003041A8C700001038703 -:10153000061A8C7400000003041A8C8000010388D2 -:10154000061A8C8400000003041A8C9000010389A1 -:10155000061A8C9400000003041A8CA00001038A70 -:10156000061A8CA400000003041A8CB00001038B3F -:10157000061A8CB400000003041A8CC00001038C0E -:10158000061A8CC400000003041A8CD00001038DDD -:10159000061A8CD400000003041A8CE00001038EAC -:1015A000061A8CE400000003041A8CF00001038F7B -:1015B000061A8CF400000003041A8D000001039049 -:1015C000061A8D0400000003041A8D100001039117 -:1015D000061A8D1400000003041A8D2000010392E6 -:1015E000061A8D2400000003041A8D3000010393B5 -:1015F000061A8D3400000003041A8D400001039484 -:10160000061A8D4400000003041A8D500001039552 -:10161000061A8D5400000003041A8D600001039621 -:10162000061A8D6400000003041A8D7000010397F0 -:10163000061A8D7400000003041A8D8000010398BF -:10164000061A8D8400000003041A8D90000103998E -:10165000061A8D9400000003041A8DA00001039A5D -:10166000061A8DA400000003041A8DB00001039B2C -:10167000061A8DB400000003041A8DC00001039CFB -:10168000061A8DC400000003041A8DD00001039DCA -:10169000061A8DD400000003041A8DE00001039E99 -:1016A000061A8DE400000003041A8DF00001039F68 -:1016B000061A8DF400000003041A8E00000103A036 -:1016C000061A8E0400000003041A8E10000103A104 -:1016D000061A8E1400000003041A8E20000103A2D3 -:1016E000061A8E2400000003041A8E30000103A3A2 -:1016F000061A8E3400000003041A8E40000103A471 -:10170000061A8E4400000003041A8E50000103A53F -:10171000061A8E5400000003041A8E60000103A60E -:10172000061A8E6400000003041A8E70000103A7DD -:10173000061A8E7400000003041A8E80000103A8AC -:10174000061A8E8400000003041A8E90000103A97B -:10175000061A8E9400000003041A8EA0000103AA4A -:10176000061A8EA400000003041A8EB0000103AB19 -:10177000061A8EB400000003041A8EC0000103ACE8 -:10178000061A8EC400000003041A8ED0000103ADB7 -:10179000061A8ED400000003041A8EE0000103AE86 -:1017A000061A8EE400000003041A8EF0000103AF55 -:1017B000061A8EF400000003041A8F00000103B023 -:1017C000061A8F0400000003041A8F10000103B1F1 -:1017D000061A8F1400000003041A8F20000103B2C0 -:1017E000061A8F2400000003041A8F30000103B38F -:1017F000061A8F3400000003041A8F40000103B45E -:10180000061A8F4400000003041A8F50000103B52C -:10181000061A8F5400000003041A8F60000103B6FB -:10182000061A8F6400000003041A8F70000103B7CA -:10183000061A8F7400000003041A8F80000103B899 -:10184000061A8F8400000003041A8F90000103B968 -:10185000061A8F9400000003041A8FA0000103BA37 -:10186000061A8FA400000003041A8FB0000103BB06 -:10187000061A8FB400000003041A8FC0000103BCD5 -:10188000061A8FC400000003041A8FD0000103BDA4 -:10189000061A8FD400000003041A8FE0000103BE73 -:1018A000061A8FE400000007041A62C0002003BF7C -:1018B000061A1AF000000042061AAF0000000008E5 -:1018C000061AE00000000540061AD0000000007271 -:1018D000061AD24800000010061AD6B000000020F8 -:1018E000061AD47000000090061AD46800000002A6 -:1018F000061AA000000001C4061A30000000001003 -:10190000061A308000000010061A31000000001096 -:10191000061A318000000010061A33000000001281 -:10192000061A339000000070061AD4580000000216 -:10193000061AD34800000002061AD35800000020FF -:10194000061AA710000001C4061A3040000000105B -:10195000061A30C000000010061A314000000010C6 -:10196000061A31C000000010061A334800000012A9 -:10197000061A355000000070061AD46000000002FC -:10198000061AD35000000002061AD3D80000002027 -:10199000021AAE2000000000061A500000000002EB -:1019A000061A508000000012041A4000000203DFF3 -:1019B000041A63C0000203E1061A7000000000046C -:1019C000061A320000000008021AAE2400000000CF -:1019D000061A501000000002061A50C8000000123B -:1019E000041A4008000203E3041A63C8000203E576 -:1019F000061A701000000004061A322000000008C9 -:101A0000021AAE2800000000061A50200000000252 -:101A1000061A511000000012041A4010000203E7D9 -:101A2000041A63D0000203E9061A702000000004C3 -:101A3000061A324000000008021AAE2C0000000016 -:101A4000061A503000000002061A51580000001219 -:101A5000041A4018000203EB041A63D8000203EDD5 -:101A6000061A703000000004061A326000000008F8 -:101A7000021AAE3000000000061A504000000002BA -:101A8000061A51A000000012041A4020000203EFC1 -:101A9000041A63E0000203F1061A7040000000041B -:101AA000061A328000000008021AAE34000000005E -:101AB000061A505000000002061A51E800000012F9 -:101AC000041A4028000203F3041A63E8000203F535 -:101AD000061A705000000004061A32A00000000828 -:101AE000021AAE3800000000061A50600000000222 -:101AF000061A523000000012041A4030000203F7A8 -:101B0000041A63F0000203F9061A70600000000472 -:101B1000061A32C000000008021AAE3C00000000A5 -:101B2000061A507000000002061A527800000012D7 -:101B3000041A4038000203FB041A63F8000203FD94 -:101B4000061A707000000004061A32E00000000857 -:101B50000200A2A4000002090200A270000000001E -:101B60000200A274000000000200A2700000000049 -:101B70000200A274000000000200A2700000000039 -:101B80000200A274000000000200A2700000000029 -:101B90000200A27400000000020100B40000000175 -:101BA000020100B800000001020100CC00000001A9 -:101BB000020100D000000001020100DC0000000171 -:101BC0000201010000000001020101040000000107 -:101BD0000201007C003000000201008400000028A7 -:101BE0000201008C0000000002010130000000042E -:101BF0000201025C00000001020103280000000055 -:101C0000020160580000FFFF020160700000000741 -:101C10000201055400000030020100C40000000170 -:101C2000020100F800000001020100F000000001C4 -:101C3000020100800030000002010088000000283E -:101C400002010090000000000201013400000004C5 -:101C5000020102DC000000010201032C0000000070 -:101C60000201605C0000FFFF0201607400000007D9 -:101C70000201056400000030020100C800000001FC -:101C8000020100FC00000001020100F4000000015C -:101C9000020C100000000028020C200800000211B5 -:101CA000020C200C00000200020C201000000204B4 -:101CB000020C201C0000FFFF020C20200000FFFF90 -:101CC000020C20240000FFFF020C20280000FFFF70 -:101CD000020C203800000000020C203C00000037FD -:101CE000020C204000000021020C204400000020D3 -:101CF000060C20480000001D020C20BC0000000162 -:101D0000060C20C00000003F020C21BC00000001B6 -:101D1000020C21C000000001020C21C400000001DF -:101D2000060C21C80000001C020C223807FFFFFF30 -:101D3000020C223C0000007F020C224007FFFFFF44 -:101D4000020C22440000003F010C22480000000069 -:101D5000010C224C00000000010C22500000000089 -:101D6000010C225400000000010C22580000000069 -:101D7000010C225C00000000010C22600000000049 -:101D8000010C226400000000010C22680000000029 -:101D9000010C226C00000000010C22700000000009 -:101DA000010C227400000000010C227800000000E9 -:101DB000010C227C00000000020C22D80000FFFF72 -:101DC000020C22DC0000FFFF020C22E00000FFFFFB -:101DD000020C22E40000FFFF0C0C2000000003E8CE -:101DE0000A0C2000000000010B0C20000000000382 -:101DF000020C400800001011020C400C0000100002 -:101E0000020C401000001004020C401400001021CD -:101E1000020C401C0000FFFF020C40200000FFFFEE -:101E2000020C40240000FFFF020C40280000FFFFCE -:101E3000020C403800000046020C403C0000000C40 -:101E4000060C404000000002020C40480000001850 -:101E5000020C404C000000F0060C40500000001F37 -:101E6000020C40CC00000001060C40D00000003AFB -:101E7000020C41B800000001060C41BC0000000348 -:101E8000020C41C800000001020C41CC000000011E -:101E9000060C41D00000001A020C423807FFFFFF79 -:101EA000020C423C0000007F020C424007FFFFFF93 -:101EB000020C42440000003F010C424800000000B8 -:101EC000010C424C00000000010C425000000000D8 -:101ED000010C425400000000010C425800000000B8 -:101EE000010C425C00000000010C42600000000098 -:101EF000010C426400000000010C42680000000078 -:101F0000010C426C00000000010C42700000000057 -:101F1000010C427400000000010C42780000000037 -:101F2000010C427C00000000010C42800000000017 -:101F3000020C42D80000FFFF020C42DC0000FFFF51 -:101F4000020C42E00000FFFF020C42E40000FFFF31 -:101F50000C0C4000000003E80A0C400000000001E7 -:101F60000B0C400000000003060D400000000A00BA -:101F7000020D004400000032020D008C021500200A -:101F8000020D009002150020020D009408100000C0 -:101F9000020D009800000036020D00A000000000B5 -:101FA000020D00A400000004020D00A800000004BF -:101FB000060D00AC00000002020D00B80000000297 -:101FC000020D00C000000001020D00C80000000268 -:101FD000020D00CC00000002020D015C00000001B7 -:101FE000020D016400000001020D01680000000202 -:101FF000020D020400000001020D020C000000208E -:10200000020D021000000040020D0214000000400A -:10201000020D022000000003020D0224000000183F -:10202000060D028000000012040D0300001803FFDB -:10203000060D03600000000C020D004C00000001C2 -:10204000020D005000000002020D005400000000CC -:10205000020D005800000008060D005C000000049E -:10206000020D00C400000004020D00040000000185 -:10207000020D000800000001020D000C000000012C -:10208000020D001000000001020D0014000000010C -:10209000020D001800000001020D001C00000001EC -:1020A000020D002000000001020D002400000001CC -:1020B000020D002800000001020D002C00000001AC -:1020C000020D003000000001020D0034000000018C -:1020D000020D003800000001020D003C000000016C -:1020E000020D011400000009020D011C0000000A8D -:1020F000020D012400000000020D012C0000000070 -:10210000020D013400000000020D013C0000000B34 -:10211000020D014400000000020D0118000000291A -:10212000020D01200000002A020D012800000020FD -:10213000020D013000000020020D013800000020D7 -:10214000020D01400000002B020D0148000000209C -:10215000020D011400000019020D011C0000001AFC -:10216000020D012400000010020D012C00000010DF -:10217000020D013400000010020D013C0000001BA4 -:10218000020D014400000010020D0118000000398A -:10219000020D01200000003A020D0128000000306D -:1021A000020D013000000030020D01380000003047 -:1021B000020D01400000003B020D0148000000300C -:1021C000020D011400000049020D011C0000004A2C -:1021D000020D012400000040020D012C000000400F -:1021E000020D013400000040020D013C0000004BD4 -:1021F000020D014400000040020D011800000069BA -:10220000020D01200000006A020D0128000000609C -:10221000020D013000000060020D01380000006076 -:10222000020D01400000006B020D0148000000603B -:10223000020D011400000059020D011C0000005A9B -:10224000020D012400000050020D012C000000507E -:10225000020D013400000050020D013C0000005B43 -:10226000020D014400000050020D01180000007929 -:10227000020D01200000007A020D0128000000700C -:10228000020D013000000070020D013800000070E6 -:10229000020D01400000007B020D014800000070AB -:1022A000060E200000000800020E004C0000003264 -:1022B000020E009402150020020E00980215002064 -:1022C000020E009C00000030020E00A0081000006A -:1022D000020E00A400000036020E00A8000000302C -:1022E000020E00AC00000031020E00B4000000033A -:1022F000020E00B800000000020E00C40000000042 -:10230000020E00CC00000006020E00D80000000102 -:10231000020E014400000001020E014C0000000109 -:10232000020E015000000002020E02040000000133 -:10233000020E020C00000040020E021000000040DD -:10234000020E021C00000004020E02200000002009 -:10235000020E02240000000E020E02280000001BE4 -:10236000060E030000000012040E0280001B04177A -:10237000060E02EC00000005020E00540000000CE6 -:10238000020E00580000000C020E005C000000006D -:10239000020E006000000010020E00640000001039 -:1023A000060E006800000003020E00DC00000003BF -:1023B000020E000400000001020E000800000001EF -:1023C000020E000C00000001020E001000000001CF -:1023D000020E001400000001020E001800000001AF -:1023E000020E001C00000001020E0020000000018F -:1023F000020E002400000001020E0028000000016F -:10240000020E002C00000001020E0030000000014E -:10241000020E003400000001020E0038000000012E -:10242000020E003C00000001020E0040000000010E -:10243000020E004400000001020E01100000000F17 -:10244000020E011800000000020E01200000000032 -:10245000020E012800000000020E01140000002FEF -:10246000020E011C00000020020E012400000020CA -:10247000020E012C00000020020E01100000001FBF -:10248000020E011800000010020E012000000010D2 -:10249000020E012800000010020E01140000003F8F -:1024A000020E011C00000030020E0124000000306A -:1024B000020E012C00000030020E01100000004F3F -:1024C000020E011800000040020E01200000004032 -:1024D000020E012800000040020E01140000006FEF -:1024E000020E011C00000060020E012400000060CA -:1024F000020E012C00000060020E01100000005FBF -:10250000020E011800000050020E012000000050D1 -:10251000020E012800000050020E01140000007F8E -:10252000020E011C00000070020E01240000007069 -:10253000020E012C000000700730040000D60000DD -:10254000083007D80005043207340000322B0000A1 -:1025500007348000314B0C8B0735000038C518DE7E -:10256000073580002F90271007360000268F32F5A0 -:102570000836716031D40434023000BC00000030F1 -:1025800001300000000000000130000400000000E5 -:1025900001300008000000000130000C00000000C5 -:1025A00001300010000000000130001400000000A5 -:1025B0000230002000000001023000240000000270 -:1025C00002300028000000030230002C0000000050 -:1025D000023000300000000402300034000000012E -:1025E00002300038000000000230003C0000000112 -:1025F00002300040000000040230004400000000EF -:1026000002300048000000010230004C00000003CE -:1026100002300050000000000230005400000001B1 -:1026200002300058000000040230005C000000008E -:10263000023000600000000102300064000000036E -:1026400002300068000000000230006C0000000151 -:10265000023000700000000402300074000000002E -:1026600002300078000000040230007C000000030B -:102670000630008000000002023000A400007FFF4E -:10268000023000A8000003FF023002240000000016 -:1026900002300234000000000230024C0000000052 -:1026A000023002E40000FFFF0630200000000800B6 -:1026B00002338BC000000001023380000000001ACA -:1026C000023380400000004E023380800000001082 -:1026D000023380C0000000200C33830000086470C7 -:1026E0000A338300000001570B3383000000055FAD -:1026F0000A338340000000000C33834000000226B0 -:102700000B338340000000010233838000086470B3 -:10271000023383C00000022602331480000000014F -:102720000A3314800000000006328000000001021D -:1027300006322008000000C8063220000000000217 -:1027400004328520008F04360632875C00000009C1 -:1027500006323EB00000000606323ED00000000205 -:1027600006323E800000000A04323EA8000204C582 -:1027700006323E00000000200632500000000940F2 -:102780000632400000000004043294C0000204C776 -:1027900006324110000000020632D0000000007036 -:1027A0000632DB00000000D40632DEA0000000028A -:1027B0000632E00000000800063324000000011883 -:1027C0000632100000000188063250000000002090 -:1027D00006325100000000200632520000000020A6 -:1027E0000632530000000020063254000000002092 -:1027F000063255000000002006325600000000207E -:102800000632570000000020063258000000002069 -:10281000063259000000002006325A000000002055 -:1028200006325B000000002006325C000000002041 -:1028300006325D000000002006325E00000000202D -:1028400006325F0000000020063284F00000000223 -:1028500004328500000204C9063285080000000227 -:102860000632DE90000000020633286000000118E6 -:102870000632162000000188063250800000002039 -:1028800006325180000000200632528000000020F5 -:1028900006325380000000200632548000000020E1 -:1028A00006325580000000200632568000000020CD -:1028B00006325780000000200632588000000020B9 -:1028C000063259800000002006325A8000000020A5 -:1028D00006325B800000002006325C800000002091 -:1028E00006325D800000002006325E80000000207D -:1028F00006325F8000000020063284F800000002EB -:1029000004328510000204CB063285180000000254 -:102910000632DE98000000020232845000000000FF -:102920000632401000000002023284540000000011 -:1029300006324020000000020232845800000000ED -:1029400006324030000000020232845C00000000C9 -:1029500006324040000000020232846000000000A5 -:102960000632405000000002023284640000000081 -:10297000063240600000000202328468000000005D -:1029800006324070000000020232846C0000000039 -:10299000063240800000000207200400007300009F -:1029A00008200780001004CD072400002AE400005E -:1029B0000724800027670ABA0824D35063FC04CF99 -:1029C000022000BC000000300120000000000000D8 -:1029D00001200004000000000120000800000000A9 -:1029E0000120000C00000000012000100000000089 -:1029F000012000140000000002200020000000015F -:102A00000220002400000002022000280000000331 -:102A10000220002C00000000022000300000000412 -:102A200002200034000000010220003800000000F5 -:102A30000220003C000000010220004000000004D1 -:102A400002200044000000000220004800000001B5 -:102A50000220004C00000003022000500000000093 -:102A60000220005400000001022000580000000471 -:102A70000220005C00000000022000600000000155 -:102A80000220006400000003022000680000000033 -:102A90000220006C00000001022000700000000411 -:102AA00002200074000000000220007800000004F2 -:102AB0000220007C000000030620008000000002CD -:102AC000022000A400007FFF022000A8000003FFF6 -:102AD0000220022400000000022002340000000056 -:102AE0000220024C00000000022002E40000FFFF70 -:102AF000062020000000080002238BC00000000117 -:102B00000223800000000010022380400000001219 -:102B10000223808000000030022380C00000000EED -:102B20000C238300000864700A238300000001570F -:102B30000B2383000000055F0A2383400000000090 -:102B40000C238340000002260B2383400000000179 -:102B50000223838000086470022383C000000226E1 -:102B600002231480000000010A23148000000000EA -:102B7000062210000000004206222008000000C8C3 -:102B800006222000000000020622B00000000330F0 -:102B90000622F400000000530422F54C000104D189 -:102BA0000622F550000000030422F55C000104D267 -:102BB0000622F560000000030422F56C000104D336 -:102BC0000622F570000000030422F57C000104D405 -:102BD0000622F580000000030422F58C000104D5D4 -:102BE0000622F590000000030422F59C000104D6A3 -:102BF0000622F5A0000000030422F5AC000104D772 -:102C00000622F5B0000000030422F5BC000104D840 -:102C10000622F5C0000000460622E2000000044043 -:102C200004221240009004D906223000000000C0A7 -:102C30000622670000000100062290000000040048 -:102C400004226B0800200569062211F0000000062E -:102C50000422120800060589062212200000000244 -:102C600006224000000005C00622C0000000000649 -:102C70000422C0180006058F0622C0300000000A9A -:102C80000422C058000605950622C0700000000A04 -:102C90000422C0980006059B0622C0B00000000A6E -:102CA0000422C0D8000605A10622C0F00000000AD8 -:102CB0000422C118000605A70622C1300000000A40 -:102CC0000422C158000605AD0622C1700000000AAA -:102CD0000422C198000605B30622C1B00000000A14 -:102CE0000422C1D8000605B90622C1F00000000A7E -:102CF0000422C218000605BF0622C2300000000AE6 -:102D00000422C258000605C50622C2700000000A4F -:102D10000422C298000605CB0622C2B00000000AB9 -:102D20000422C2D8000605D10622C2F00000000A23 -:102D30000422C318000605D70622C3300000000A8B -:102D40000422C358000605DD0622C3700000000AF5 -:102D50000422C398000605E30622C3B00000000A5F -:102D60000422C3D8000605E90622C3F00000000AC9 -:102D70000422C418000605EF0622C4300000000A31 -:102D80000422C458000605F50622C4700000000A9B -:102D90000422C498000605FB0622C4B00000000A05 -:102DA0000422C4D8000606010622C4F00000000A6E -:102DB0000422C518000606070622C5300000000AD6 -:102DC0000422C5580006060D0622C5700000000A40 -:102DD0000422C598000606130622C5B00000000AAA -:102DE0000422C5D8000606190622C5F00000000A14 -:102DF0000422C6180006061F0622C6300000000A7C -:102E00000422C658000606250622C6700000000AE5 -:102E10000422C6980006062B0622C6B00000000A4F -:102E20000422C6D8000606310622C6F00000000AB9 -:102E30000422C718000606370622C7300000000A21 -:102E40000422C7580006063D0622C7700000000A8B -:102E50000422C798000606430622C7B00000000AF5 -:102E60000422C7D8000606490622C7F00000000A5F -:102E70000422C8180006064F0622C8300000000AC7 -:102E80000422C858000606550622C8700000000A31 -:102E90000422C8980006065B0622C8B00000000A9B -:102EA0000422C8D8000606610622C8F00000000A05 -:102EB0000422C918000606670622C9300000000A6D -:102EC0000422C9580006066D0622C9700000000AD7 -:102ED0000422C998000606730622C9B00000000A41 -:102EE0000422C9D8000606790622C9F00000000AAB -:102EF0000422CA180006067F0622CA300000000A13 -:102F00000422CA58000606850622CA700000000A7C -:102F10000422CA980006068B0622CAB00000000AE6 -:102F20000422CAD8000606910622CAF00000000A50 -:102F30000422CB18000606970622CB300000000AB8 -:102F40000422CB580006069D0622CB700000000A22 -:102F50000422CB98000606A30622CBB00000000A8C -:102F60000422CBD8000606A90622CBF00000000AF6 -:102F70000422CC18000606AF0622CC300000000A5E -:102F80000422CC58000606B50622CC700000000AC8 -:102F90000422CC98000606BB0622CCB00000000A32 -:102FA0000422CCD8000606C10622CCF00000000A9C -:102FB0000422CD18000606C70622CD300000000A04 -:102FC0000422CD58000606CD0622CD700000000A6E -:102FD0000422CD98000606D30622CDB00000000AD8 -:102FE0000422CDD8000606D90622CDF00000000A42 -:102FF0000422CE18000606DF0622CE300000000AAA -:103000000422CE58000606E50622CE700000000A13 -:103010000422CE98000606EB0622CEB00000000A7D -:103020000422CED8000606F10622CEF00000000AE7 -:103030000422CF18000606F70622CF300000000A4F -:103040000422CF58000606FD0622CF700000000AB9 -:103050000422CF98000607030622CFB00000000A22 -:103060000422CFD8000607090622CFF00000000A8C -:103070000422D0180006070F0622D0300000000AF4 -:103080000422D058000607150622D0700000000A5E -:103090000422D0980006071B0622D0B00000000AC8 -:1030A0000422D0D8000607210622D0F00000000A32 -:1030B0000422D118000607270622D1300000000A9A -:1030C0000422D1580006072D0622D1700000000A04 -:1030D0000422D198000607330622D1B00000000A6E -:1030E0000422D1D8000607390622D1F00000000AD8 -:1030F0000422D2180006073F0622D2300000000A40 -:103100000422D258000607450622D2700000000AA9 -:103110000422D2980006074B0622D2B00000000A13 -:103120000422D2D8000607510622D2F00000000A7D -:103130000422D318000607570622D3300000000AE5 -:103140000422D3580006075D0622D3700000000A4F -:103150000422D398000607630622D3B00000000AB9 -:103160000422D3D8000607690622D3F00000000A23 -:103170000422D4180006076F0622D4300000000A8B -:103180000422D458000607750622D4700000000AF5 -:103190000422D4980006077B0622D4B00000000A5F -:1031A0000422D4D8000607810622D4F00000000AC9 -:1031B0000422D518000607870622D5300000000A31 -:1031C0000422D5580006078D0622D5700000000A9B -:1031D0000422D598000607930622D5B00000000A05 -:1031E0000422D5D8000607990622D5F00000000A6F -:1031F0000422D6180006079F0622D6300000000AD7 -:103200000422D658000607A50622D6700000000A40 -:103210000422D698000607AB0622D6B00000000AAA -:103220000422D6D8000607B10622D6F00000000A14 -:103230000422D718000607B70622D7300000000A7C -:103240000422D758000607BD0622D7700000000AE6 -:103250000422D798000607C30622D7B00000000A50 -:103260000422D7D8000607C90622D7F00000000ABA -:103270000422D818000607CF0622D8300000000A22 -:103280000422D858000607D50622D8700000000A8C -:103290000422D898000607DB0622D8B00000000AF6 -:1032A0000422D8D8000607E10622D8F00000000A60 -:1032B0000422D918000607E70622D9300000000AC8 -:1032C0000422D958000607ED0622D9700000000A32 -:1032D0000422D998000607F30622D9B00000000A9C -:1032E0000422D9D8000607F90622D9F00000000A06 -:1032F0000422DA18000607FF0622DA300000000A6E -:103300000422DA58000608050622DA700000000AD6 -:103310000422DA980006080B0622DAB00000000A40 -:103320000422DAD8000608110622DAF00000000AAA -:103330000422DB18000608170622DB300000000A12 -:103340000422DB580006081D0622DB700000000A7C -:103350000422DB98000608230622DBB00000000AE6 -:103360000422DBD8000608290622DBF00000000A50 -:103370000422DC180006082F0622DC300000000AB8 -:103380000422DC58000608350622DC700000000A22 -:103390000422DC980006083B0622DCB00000000A8C -:1033A0000422DCD8000608410622DCF00000000AF6 -:1033B0000422DD18000608470622DD300000000A5E -:1033C0000422DD580006084D0622DD700000000AC8 -:1033D0000422DD98000608530622DDB00000000A32 -:1033E0000422DDD8000608590622DDF00000000A9C -:1033F0000422DE180006085F0622DE300000000A04 -:103400000422DE58000608650622DE700000000A6D -:103410000422DE980006086B0622DEB00000000AD7 -:103420000422DED8000608710622DEF00000000A41 -:103430000422DF18000608770622DF300000000AA9 -:103440000422DF580006087D0622DF700000000A13 -:103450000422DF98000608830622DFB00000000A7D -:103460000422DFD8000608890622DFF00000000AE7 -:103470000422E0180006088F0622E0300000000A4F -:103480000422E058000608950622E0700000000AB9 -:103490000422E0980006089B0622E0B00000000A23 -:1034A0000422E0D8000608A10622E0F00000000A8D -:1034B0000422E118000608A70622E1300000000AF5 -:1034C0000422E158000608AD0622E1700000000A5F -:1034D0000422E198000608B30622E1B00000000AC9 -:1034E0000422E1D8000608B90622E1F00000000439 -:1034F0000622153800000002062211E80000000232 -:103500000622F3000000000802221148000000001B -:1035100006225900000000060622330000000002C7 -:1035200006226040000000300622F3200000000860 -:103530000222114C0000000006225918000000066B -:10354000062233080000000206226100000000305D -:103550000622F34000000008022211500000000083 -:103560000622593000000006062233100000000237 -:10357000062261C0000000300622F360000000084F -:1035800002221154000000000622594800000006E3 -:10359000062233180000000206226280000000307C -:1035A0000622F380000000080222115800000000EB -:1035B00006225960000000060622332000000002A7 -:1035C00006226340000000300622F3A0000000083D -:1035D0000222115C0000000006225978000000065B -:1035E000062233280000000206226400000000309A -:1035F0000622F3C000000008022211600000000053 -:103600000622599000000006062233300000000216 -:10361000062264C0000000300622F3E0000000082B -:103620000222116400000000062259A800000006D2 -:1036300006223338000000020622658000000030B8 -:103640000216100000000028021700080000000207 -:103650000217002C000000030217003C00000004C9 -:10366000021700440000000002170048000000029A -:103670000217004C0000009002170050000000905C -:103680000217005400800090021700580810000034 -:10369000021700700000000602170078000009FF02 -:1036A0000217007C0000076C021701C4081000001C -:1036B0000217034400000001021704000000008A02 -:1036C00002170404000000800217040800000081B3 -:1036D0000217040C00000080021704100000008A8A -:1036E0000217041400000080021704180000008173 -:1036F0000217041C00000080021704300000008A3A -:103700000217043400000080021704380000008112 -:103710000217043C00000080021704400000008AE9 -:1037200002170444000000800217044800000081D2 -:103730000217044C00000080021704800000008A79 -:103740000217048400000080021704880000008132 -:103750000217048C0000008002170038007C10045F -:10376000021700040000000F021701EC0000000225 -:10377000021701F400000002021701EC0000000231 -:10378000021701F400000002021701EC0000000221 -:10379000021701F400000002021701EC0000000211 -:1037A000021701F400000002021701EC0000000201 -:1037B000021701F400000002021701EC00000002F1 -:1037C000021701F400000002021701EC00000002E1 -:1037D000021701F400000002021701EC00000002D1 -:1037E000021701F400000002061640240000000247 -:1037F000021640700000001C021642080000000182 -:1038000002164210000000010216422000000001D2 -:10381000021642280000000102164230000000019A -:103820000216423800000001021642600000000249 -:103830000C16401C0003D0900A16401C0000009C8F -:103840000B16401C000002710216403000000028D8 -:10385000021640340000002C0216403800000030F0 -:103860000216404400000020021640000000000143 -:10387000021640D8000000010216400800000001B6 -:103880000216400C0000000102164010000000016A -:1038900002164240000000000216424800000000EC -:1038A000061642700000000202164250000000009E -:1038B0000216425800000000061642800000000276 -:1038C00002166008000012140216600C00001200BC -:1038D00002166010000012040216601C0000FFFFB8 -:1038E000021660200000FFFF021660240000FFFFA8 -:1038F000021660280000FFFF02166038000000205A -:103900000216603C00000010061660400000000235 -:1039100002166048000000230216604C00000024DC -:1039200002166050000000250216605400000026B8 -:1039300002166058000000270216605C00000011AB -:103940000216606000000000021660640000002B98 -:10395000021660680000002C0216606C0000002D4A -:1039600002166070000000EC021660740000000097 -:1039700002166078000000290216607C0000002A10 -:10398000021660800000002F061660840000000D03 -:10399000021660B800000001061660BC00000008B6 -:1039A000021660DC00000001061660E00000000462 -:1039B000021660F000000001061660F4000000032B -:1039C0000216610000000001061661040000002DCF -:1039D000021661B800000001061661BC0000000874 -:1039E000021661DC00000001061661E00000000420 -:1039F000021661F000000001061661F400000003E9 -:103A00000216620000000001061662040000000DAC -:103A10000216623807FFFFFF0216623C0000007FBB -:103A20000216624007FFFFFF021662440000003FDB -:103A300001166248000000000116624C0000000000 -:103A400001166250000000000116625400000000E0 -:103A500001166258000000000116625C00000000C0 -:103A600001166260000000000116626400000000A0 -:103A700001166268000000000116626C0000000080 -:103A80000116627000000000011662740000000060 -:103A900001166278000000000116627C0000000040 -:103AA000011662D400000000021662D80000FFFF79 -:103AB000021662DC0000FFFF021662E00000FFFF5A -:103AC000021662E40000FFFF0C166000000003E82D -:103AD0000A166000000000010B16600000000003E1 -:103AE0000216804000000006021680440000000517 -:103AF000021680480000000A0216804C00000005F3 -:103B00000216805400000002021680CC000000045F -:103B1000021680D000000004021680D400000004C9 -:103B2000021680D800000004021680DC00000004A9 -:103B3000021680E000000004021680E40000000489 -:103B4000021680E800000004021688040000000647 -:103B5000021680300000007C021680340000003D18 -:103B6000021680380000003F0216803C0000009CD6 -:103B70000216E6E8000060000216E6EC00006000B5 -:103B80000216E6F0000060000216E6F40000600095 -:103B900002168234000025E40216823800008000FC -:103BA00002168094000025E3021681F400000C0840 -:103BB000021681F800000040021681FC000001009E -:103BC0000216820000000020021682040000001786 -:103BD00002168208000000800216820C000002001B -:103BE00002168210000000000216823C0000001342 -:103BF00002168220008F008F0216821C008F008F19 -:103C0000021680F0000000070216821801FF01FF73 -:103C10000216821401FF01FF061680F40000000264 -:103C20000216811C0000000502168120000000051C -:103C300002168124000000050216812800000008F9 -:103C40000216812C000000060216813000000007D9 -:103C50000616813400000004021680FC00000000FB -:103C600006168144000000020216814C0000000488 -:103C7000021681500000000102168154000000026B -:103C800002168158000000050216815C0000000544 -:103C90000216816000000005021681640000000524 -:103CA0000216816800000008021681000000000072 -:103CB0000216816C000000060216817000000007E9 -:103CC00006168174000000060216818C00000004B4 -:103CD000021681900000000102168104000000001D -:103CE000021681940000000202168198000000056F -:103CF0000216819C00000005021681A0000000054C -:103D0000021681A400000005021681A80000000828 -:103D1000021681AC00000006021681B00000000708 -:103D2000061681B40000000202168108000000009F -:103D3000061681BC00000004021681CC00000004BD -:103D4000021681D000000001021681D4000000029A -:103D5000021681D800000005021681DC0000000573 -:103D6000021681E0000000050216810C000000042C -:103D7000021681E400000005021681E80000000838 -:103D8000021681EC00000006021681F00000000718 -:103D900002168110000000010216811400000002CA -:103DA00002168118000000050216809C0000004CDD -:103DB000021680A00000004C061680C4000000021D -:103DC000021680A400000000021680A80000000077 -:103DD000021680AC0000004C061680B00000000502 -:103DE0000216E6F80000020402168240003F003F7F -:103DF00002168244003F003F061682900000000435 -:103E000002168248008000800216824C00800080EA -:103E100002168250010001000216825401000100C6 -:103E20000616825800000002021682600040004020 -:103E30000216826400400040021682681E001E00C6 -:103E40000216826C1E001E000216827040004000A6 -:103E500002168274400040000216827880008000C2 -:103E60000216827C800080000216828020002000E2 -:103E700002168284200020000616828800000002BC -:103E8000021680900000004B021680600000014086 -:103E900002168064000001400616808800000002BF -:103EA00002168068000000000216806C000000000E -:103EB00002168070000000C0061680740000000525 -:103EC0000216880C0101010102168810010120046C -:103ED000021688142008100102168818010101201A -:103EE0000216881C0101010102168820010120042C -:103EF00002168824200810010216882801010120DA -:103F00000216882C200810010216883001010120B9 -:103F100002168834010101010216883801012004CB -:103F20000216883C20081001021688400101012079 -:103F3000021688440101010102168848010120048B -:103F40000216E6BC000000000216E6C000000002F7 -:103F50000216E6C4000000040216E6C800000006CF -:103F60000216E79400000001021680EC000000FF3A -:103F700002140000000000010215C024000000002F -:103F80000215C0EC000000010215C0F000000001A5 -:103F90000615C10000000002021400040000000128 -:103FA00002140008000000010214000C00000001CF -:103FB000021400300000000102140034000000016F -:103FC0000214004000000001021400440000FFFF42 -:103FD00006140004000000030214000000000000AA -:103FE000060280000000200002020058000000329B -:103FF000020200A003150020020200A40315002005 -:10400000020200A801000030020200AC081000000B -:10401000020200B000000036020200B400000030CE -:10402000020200B800000031020200BC00000002E1 -:10403000020200C000000005020200C400000002ED -:10404000020200C800000002020200D000000007C7 -:10405000020200DC00000000020200E00000000597 -:10406000020200E400000003020200F00000000170 -:10407000020200FC00000006020201200000000015 -:104080000202013400000002020201B0000000013F -:104090000202020C000000010202021400000001F2 -:1040A00002020218000000020202040400000001E3 -:1040B0000202040C00000040020204100000004054 -:1040C0000202041C00000004020204200000002080 -:1040D0000202042400000002020204280000002062 -:1040E000060205000000001204020480002008BF40 -:1040F000020200600000000F0202006400000007DE -:1041000002020068000000000202006C0000000EC5 -:10411000020200700000000E06020074000000039E -:10412000020200F40000000402020004000000018A -:1041300002020008000000010202000C0000000161 -:104140000202001000000001020200140000000141 -:1041500002020018000000010202001C0000000121 -:104160000202002000000001020200240000000101 -:1041700002020028000000010202002C00000001E1 -:1041800002020030000000010202003400000001C1 -:1041900002020038000000010202003C00000001A1 -:1041A0000202004000000001020200440000000181 -:1041B00002020048000000010202004C0000000161 -:1041C000020200500000000102020108000000C8C5 -:1041D0000202011800000002020201C400000000F7 -:1041E000020201CC00000000020201D40000000223 -:1041F000020201DC00000002020201E4000000FFF4 -:10420000020201EC000000FF0202010000000000B9 -:104210000202010C000000C80202011C00000002A2 -:10422000020201C800000000020201D000000000EC -:10423000020201D800000002020201E000000002B8 -:10424000020201E8000000FF020201F0000000FF8E -:10425000020201040000002002020108000000C860 -:104260000202011800000002020201C40000000066 -:10427000020201CC00000000020201D40000000292 -:10428000020201DC00000002020201E4000000FF63 -:10429000020201EC000000FF020201000000001019 -:1042A0000202010C000000C80202011C0000000212 -:1042B000020201C800000000020201D0000000005C -:1042C000020201D800000002020201E00000000228 -:1042D000020201E8000000FF020201F0000000FFFE -:1042E000020201040000003002020108000000C8C0 -:1042F0000202011800000002020201C400000000D6 -:10430000020201CC00000000020201D40000000201 -:10431000020201DC00000002020201E4000000FFD2 -:10432000020201EC000000FF020201000000004058 -:104330000202010C000000C80202011C0000000281 -:10434000020201C800000000020201D000000000CB -:10435000020201D800000002020201E00000000297 -:10436000020201E8000000FF020201F0000000FF6D -:10437000020201040000006002020108000000C8FF -:104380000202011800000002020201C40000000045 -:10439000020201CC00000000020201D40000000271 -:1043A000020201DC00000002020201E4000000FF42 -:1043B000020201EC000000FF0202010000000050B8 -:1043C0000202010C000000C80202011C00000002F1 -:1043D000020201C800000000020201D0000000003B -:1043E000020201D800000002020201E00000000207 -:1043F000020201E8000000FF020201F0000000FFDD -:1044000002020104000000700728040000B300004D -:10441000082807B8000908DF072C000028CB000097 -:10442000072C8000365D0A33072D0000347017CB4F -:10443000072D80003A9424E8072E000036C7338EFB -:10444000072E80001CE94140082EC5D0274608E110 -:10445000022800BC0000003001280000000000001D -:1044600001280004000000000128000800000000EE -:104470000128000C000000000128001000000000CE -:1044800001280014000000000228002000000001A4 -:104490000228002400000002022800280000000377 -:1044A0000228002C00000000022800300000000458 -:1044B000022800340000000102280038000000003B -:1044C0000228003C00000001022800400000000417 -:1044D00002280044000000000228004800000001FB -:1044E0000228004C000000030228005000000000D9 -:1044F00002280054000000010228005800000004B7 -:104500000228005C0000000002280060000000019A -:104510000228006400000003022800680000000078 -:104520000228006C00000001022800700000000456 -:104530000228007400000000022800780000000437 -:104540000228007C00000003062800800000000212 -:10455000022800A400007FFF022800A8000003FF3B -:10456000022802240000000002280234000000009B -:104570000228024C00000000022802E40000FFFFB5 -:104580000628200000000800022B8BC0000000015C -:10459000022B800000000000022B80400000001869 -:1045A000022B80800000000C022B80C000000066FF -:1045B0000C2B8300000864700A2B83000000015755 -:1045C0000B2B83000000055F0A2B834000000000D6 -:1045D0000C2B8340000002260B2B834000000001BF -:1045E000022B838000086470022B83C00000022627 -:1045F000022B1480000000010A2B14800000000030 -:10460000022B944000000001062B94480000000299 -:10461000062A9A7000000004042A9A80000408E325 -:10462000062A9A9000000002042A9A98000208E7DD -:10463000062A900000000048062A2008000000C852 -:10464000062A200000000002062A912800000086A9 -:10465000062AC00000000120062A9348000000033B -:10466000042A9354000108E9062A9FB000000002C2 -:10467000042A9418000208EA042A9CD0000108ECDD -:10468000062A9CD400000011042A9D20008F08ED0A -:10469000062A9F5C00000005042A30000002097C05 -:1046A000062A300800000100062A404000000010E1 -:1046B000042A40000010097E042A84080002098EA2 -:1046C000042ACF4000040990042ACF600002099414 -:1046D000062A9FA000000004062A60000000054092 -:1046E000062A9D1800000002062AB00000000050B3 -:1046F000062ABB7000000070062ABB68000000029A -:10470000062AB94800000004062AD000000008006C -:10471000062AC48000000150062A942000000032BE -:10472000062A502000000002062A50300000000235 -:10473000062A500000000002062A50100000000265 -:10474000022A520800000001042A9AA000020996D9 -:10475000062A95B000000022042A96380001099824 -:10476000062A963C00000003062A96E0000000227C -:10477000042A976800010999062A976C0000000333 -:10478000062A981000000022042A98980001099A2D -:10479000062A989C00000003062A99400000002287 -:1047A000042A99C80001099B062A99CC000000033D -:1047B000062ABB5800000002062AC9C000000150AA -:1047C000062A94E800000032062A50280000000261 -:1047D000062A503800000002062A50080000000295 -:1047E000062A501800000002022A520C00000001A4 -:1047F000042A9AA80002099C062A96480000002272 -:10480000042A96D00001099E062A96D400000003CF -:10481000062A977800000022042A98000001099FC8 -:10482000062A980400000003062A98A80000002227 -:10483000042A9930000109A0062A993400000003D7 -:10484000062A99D800000022042A9A60000109A1D2 -:10485000062A9A6400000003062ABB6000000002DA -:10486000022ACF0000000000042A9AB0001009A21A -:10487000062A50480000000E022ACF040000000063 -:10488000042A9AF0001009B2062A50800000000E97 -:10489000022ACF0800000000042A9B30001009C241 -:1048A000062A50B80000000E022ACF0C00000000BB -:1048B000042A9B70001009D2062A50F00000000E56 -:1048C000022ACF1000000000042A9BB0001009E269 -:1048D000062A51280000000E022ACF140000000012 -:1048E000042A9BF0001009F2062A51600000000E15 -:1048F000022ACF1800000000042A9C3000100A028F -:10490000062A51980000000E022ACF1C0000000069 -:10491000042A9C7000100A12062A51D00000000ED2 -:1049200002101008000000010210105000000001E9 -:10493000021010000003D000021010040000003D1F -:104940000910180002000A220910110000100C22A0 -:1049500006101140000000080910116000100C3210 -:10496000061011A00000001806102400000000E04E -:104970000210201C00000000021020200000000196 -:10498000021020C0000000020210200400000001FC -:104990000210200800000001021030D800000001C1 -:1049A00009103C0000050C420910380000050C47B6 -:1049B0000910392000050C4C09103B0000050C5172 -:1049C000021040D400000030021040D80000003037 -:1049D00006104C00000001000210402800000010EA -:1049E0000210404400003FFF021040580028000021 -:1049F000021040840084924A0210405800000000D7 -:104A0000021041380000000102104138000000018E -:104A1000021041380000000102104138000000017E -:104A2000021041380000000102104138000000016E -:104A3000021041380000000102104138000000015E -:104A40000212049001F680400212051400003C108E -:104A500002120494FFFFFFFF02120498FFFFFFFF02 -:104A60000212049CFFFFFFFF021204A0FFFFFFFFE2 -:104A7000021204A4FFFFFFFF021204A8FFFFFFFFC2 -:104A8000021204ACFFFFFFFF021204B0FFFFFFFFA2 -:104A9000021204B8FFFFFFFF021204BCFFFFFFFF7A -:104AA000021204C0FFFFFFFF021204C4FFFFFFFF5A -:104AB000021204C8FFFFFFFF021204CCFFFFFFFF3A -:104AC000021204D0FFFFFFFF021204D8FFFFFFFF16 -:104AD000021204DCFFFFFFFF021204E0FFFFFFFFF2 -:104AE000021204E4FFFFFFFF021204E8FFFFFFFFD2 -:104AF000021204ECFFFFFFFF021204F0FFFFFFFFB2 -:104B0000021204F4FFFFFFFF021204F8FFFFFFFF91 -:104B1000021204FCFFFFFFFF02120500FFFFFFFF70 -:104B200002120504FFFFFFFF02120508FFFFFFFF4F -:104B30000212050CFFFFFFFF02120510FFFFFFFF2F -:104B4000021204D4F800C000021204B4F0005000B5 -:104B500002120390000000080212039C00000008EB -:104B6000021203A000000008021203A400000002C9 -:104B7000021203BC00000004021203C00000000582 -:104B8000021203C400000004021203D0000000005F -:104B90000212036C00000001021201BC0000004080 -:104BA000021201C000001808021201C4000008032C -:104BB000021201C800000803021201CC00000040EC -:104BC000021201D000000003021201D40000080309 -:104BD000021201D800000803021201DC00000803E1 -:104BE000021201E000010003021201E400000803C8 -:104BF000021201E800000803021201EC00000003A9 -:104C0000021201F000000003021201F40000000390 -:104C1000021201F800000003021201FC0000000370 -:104C2000021202000000000302120204000000034E -:104C300002120208000000030212020C000000032E -:104C4000021202100000000302120214000000030E -:104C500002120218000000030212021C00000003EE -:104C600002120220000000030212022400000003CE -:104C700002120228000024030212022C0000002F5E -:104C80000212023000000009021202340000001972 -:104C900002120238000001840212023C000001836B -:104CA0000212024000000306021202440000001932 -:104CB00002120248000000060212024C0000030625 -:104CC0000212025000000306021202540000030602 -:104CD0000212025800000C860212025C0000030659 -:104CE00002120260000003060212026400000006C5 -:104CF00002120268000000060212026C00000006A8 -:104D00000212027000000006021202740000000687 -:104D100002120278000000060212027C0000000667 -:104D20000212028000000006021202840000000647 -:104D300002120288000000060212028C0000000627 -:104D40000212029000000006021202940000000607 -:104D500002120298000000060212029C00000006E7 -:104D6000021202A000000306021202A400000013B7 -:104D7000021202A800000006021202B00000100495 -:104D8000021202B400001004021203240010644056 -:104D90000212032800106440021205B40000000152 -:104DA000021205F800000040021205FC0000001984 -:104DB00002120600000000010212066C0000000151 -:104DC000021201B000000001021207D80000000327 -:104DD000021207D800000003021207D800000003E7 -:104DE000021207D800000003021207D800000003D7 -:104DF000021207D800000003021207D800000003C7 -:104E0000021207D8000000030600A0000000000CFA -:104E10000200A050000000000200A05400000000AA -:104E20000200A0EC555400000200A0F05555555565 -:104E30000200A0F4000055550200A0F8F0000000A8 -:104E40000200A0FC555400000200A1005555555524 -:104E50000200A104000055550200A108F000000066 -:104E60000200A19C000000000200A1A000010000BF -:104E70000200A1A4000050140200A1A8000000003C -:104E80000200A6A8000000000200A6AC000000007E -:104E90000200A6D0000000000200A45C00000C008C -:104EA0000200A61C000000030200A070FFF55FFFD7 -:104EB0000200A0740000FFFF0200A078F00003E0F1 -:104EC0000200A07C000000000200A0800000A00002 -:104ED0000600A084000000050200A0980FE000007A -:104EE0000600A09C000000070200A0B8000004001B -:104EF0000600A0BC000000030200A0C800001000D3 -:104F00000600A0CC000000030200A0D80000400072 -:104F10000600A0DC000000030200A0E80001000081 -:104F20000600A22C000000040200A688000000FC7D -:104F30000600A68C000000070200A6F40000000096 -:104F40000200A10CFF5C00000200A110FFF55FFF52 -:104F50000200A1140000FFFF0200A118F00003E00E -:104F60000200A11C000000000200A1200000A0001F -:104F70000600A124000000050200A1380FE0000097 -:104F80000600A13C000000070200A1580000080034 -:104F90000600A15C000000030200A16800002000E0 -:104FA0000600A16C000000030200A1780000800050 -:104FB0000600A17C000000030200A188000200009E -:104FC0000600A23C000000040200A6B0000000FCA5 -:104FD0000600A6B4000000070200A6F800000000CA -:104FE0000200A030000000000200A0340000000019 -:104FF0000200A038000000000200A03C00000000F9 -:105000000200A040000000000200A04400000000D8 -:105010000200A048000000000200A04C00000000B8 -:10502000020090C40000E000020090CC0000F300F9 -:10503000020090D400000003020091A000000001D3 -:105040000600917000000003020090EC0000600078 -:10505000020090F400007300020090FC00000003C6 -:10506000020091A8000000010600918800000003E2 -:10507000020091000000400002009108000053006F -:105080000200911000000004020091AC0000000139 -:1050900006009194000000020200919C00000001B3 -:1050A000020090D800006000020090E00000730051 -:1050B000020090E800000003020091A4000000013B -:1050C0000200917C000000010200918000000001BC -:1050D00002009184000000000200912800000300FB -:1050E0000200916C0003F0080200912C0000030004 -:1050F0000200913000000300020091340000030020 -:1051000002009138000003000200913C00000300FF -:1051100002009140000003000200942C00000001F6 -:1051200002009430000000010200943400000001ED -:105130000200942C000000010200943000000001E5 -:1051400002009434000000010200942C00000001D1 -:1051500002009430000000010200943400000001BD -:105160000200942C000000010200943000000001B5 -:1051700002009434000000010200942C00000001A1 -:10518000020094300000000102009434000000018D -:105190000200942C00000001020094300000000185 -:1051A00002009434000000010200942C0000000171 -:1051B000020094300000000102009434000000015D -:1051C0000200942C00000001020094300000000155 -:1051D0000200943400000001021300780000003047 -:1051E0000213003C000061A8061301080000000340 -:1051F000021301040000000002130134000000004B -:10520000061301080000000302130104000000005F -:10521000021301340000000006130108000000031F -:10522000021301040000000002130134000000001A -:10523000061301080000000302130104000000002F -:1052400002130134000000000613010800000003EF -:1052500002130104000000000213013400000000EA -:1052600006130108000000030213010400000000FF -:1052700002130134000000000613010800000003BF -:1052800002130104000000000213013400000000BA -:1052900006130108000000030213010400000000CF -:1052A0000213013400000000021100B800000001E8 -:1052B0000216E6E8000020000216E6EC00002000DE -:1052C0000216E6F0000065550216E6F4000065558A -:1052D00002168150000000000216817400000001D7 -:1052E00002168178000000010216817C0000000196 -:1052F0000216818000000001021681840000000176 -:105300000216818800000001021681B4000000012D -:10531000021681B800000001021681BC00000001E5 -:10532000021681C000000001021681C400000001C5 -:10533000021681C800000001021681100000000062 -:105340000216824000BF00BF061682440000000221 -:105350000216824C00BF00BF0216E6C40000000126 -:105360000216E6C8000000030216E79400000000E1 -:10537000042ACF40000A0C56000000000000000084 -:1053800000000034000000000000000000000000E9 -:10539000000000000000000000000000000000000D -:1053A0000000000000000000000000000034003594 -:1053B00000000000000000000000000000000000ED -:1053C00000000000000000000000000000000000DD -:1053D0000000000000000000003500600000000038 -:1053E00000000000000000000000000000000000BD -:1053F00000000000000000000000000000000000AD -:1054000000000000006000910000000000000000AB -:1054100000910095009500990099009D009D00A1C4 -:1054200000A100A500A500A900A900AD00AD00B134 -:1054300000B100B500000000000000000000000006 -:10544000000000000000000000000000000000005C -:1054500000000000000000000000000000B5031183 -:105460000311031B031B03250325032C032C033308 -:105470000333033A033A0341034103480348034F0C -:10548000034F03560356035D0000000000000000B8 -:10549000000000000000000000000000000000000C -:1054A00000000000000000000000000000000000FC -:1054B00000000000000000000000000000000000EC -:1054C00000000000000000000000000000000000DC -:1054D00000000000000000000000000000000000CC -:1054E00000000000000000000000000000000000BC -:1054F00000000000000000000000000000000000AC -:10550000000000000000000000000000000000009B -:10551000000000000000000000000000000000008B -:10552000000000000000000000000000000000007B -:105530000000000000000000035D035E00000000AA -:1055400000000000035E035F035F0360036003610C -:10555000036103620362036303630364036403651B -:10556000036503660000000000000000000000006A -:10557000000000000000000000000000000000002B -:10558000000000000000000000000000000000001B -:105590000366036D036D0379037903850000000042 -:1055A00000000000000000000000000000000000FB -:1055B00000000000000000000000000000000000EB -:1055C00000000000000000000000000000000000DB -:1055D00000000000000000000000000000000000CB -:1055E00000000000000000000385038600000000AA -:1055F00000000000000000000000000000000000AB -:10560000000000000000000000000000000000009A -:1056100000000000038603B100000000000000004D -:10562000000000000000000000000000000000007A -:10563000000000000000000000000000000000006A -:1056400003B103E0000000000000000000000000C3 -:10565000000000000000000000000000000000004A -:1056600000000000000000000000000003E0040F44 -:105670000000000000000000040F04160416041DC2 -:10568000041D04240424042B042B043204320439A2 -:1056900004390440044004470447047A0000000031 -:1056A00000000000047A047E047E048204820486E2 -:1056B0000486048A048A048E048E0492049204965A -:1056C0000496049A049A04EA04EA05000500051603 -:1056D000051605180518051A051A051C051C051ED2 -:1056E000051E052005200522052205240524052682 -:1056F00005260693000000000000000006930698AF -:105700000698069D069D06A206A206A706A706AC59 -:1057100006AC06B106B106B606B606BB06BB06BCAD -:105720000000000000000000000000000000000079 -:105730000000000000000000000000000000000069 -:10574000000000000000000006BC06E000000000B1 -:105750000000000006E006E206E206E406E406E6D3 -:1057600006E606E806E806EA06EA06EC06EC06EEB9 -:1057700006EE06F006F00705070507080708070B01 -:105780000000000000000000000000000000000019 -:105790000000000000000000000000000000000009 -:1057A000070B074F00000000000000000000000091 -:1057B00000000000000000000000000000000000E9 -:1057C000000000000000000000000000074F07E19B -:1057D00000000000000000000000000000000000C9 -:1057E00000000000000000000000000000000000B9 -:1057F000000000000000000007E107EF00000000CB -:105800000000000000000000000000000000000098 -:105810000000000000000000000000000000000088 -:105820000000000007EF082C00000000000000004E -:10583000082C08350835083E083E08470847085038 -:1058400008500859085908620862086B086B087408 -:10585000087408D508D508EA08EA08FF08FF090215 -:1058600009020905090509080908090B090B090EB0 -:10587000090E09110911091409140917091709203A -:105880000000000000000000000000000000000018 -:105890000000000000000000000000000000000008 -:1058A00000000000000000000920092600000000A0 -:1058B00000000000000000000000000000000000E8 -:1058C00000000000000000000000000000000000D8 -:1058D000000000000926092B000000000000000065 -:1058E00000000000000000000000000000000000B8 -:1058F00000000000000000000000000000000000A8 -:10590000092B0933000000000000000009330934AE -:10591000093409350935093609360937093709388F -:10592000093809390939093A093A093B00000000E8 -:105930000000000000000000000000000000000067 -:105940000000000000000000000000000000000057 -:105950000000000000000000093B09AC000000004E -:105960000000000009AC09AD09AD09AE09AE09AFF0 -:1059700009AF09B009B009B109B109B209B209B357 -:1059800009B309B409B409C809C809DB09DB09EF7F -:1059900009EF09F009F009F109F109F209F209F337 -:1059A00009F309F409F409F509F509F609F609F707 -:1059B00009F70A1600000000000000000A160A1984 -:1059C0000A190A1C0A1C0A1F0A1F0A220A220A258F -:1059D0000A250A280A280A2B0A2B0A2E0A2E0A3020 -:1059E00000000000000000000A300A330A330A36C3 -:1059F0000A360A390A390A3C0A3C0A3F0A3F0A4277 -:105A00000A420A450A450A480A480A4900000000B5 -:105A10000000000000000000000000000000000086 -:105A20000000000000000000000000000000000076 -:105A3000000000000A490A610000000000000000A8 -:105A40000000000000000000000000000000000056 -:105A50000000000000000000000000000000000046 -:105A60000A610A620000000000000000000000005F -:105A70000000000000000000000000000000000026 -:105A80000000000000000000000000000000000016 -:105A9000000100000002070000030E0000041500D2 -:105AA00000051C000006230000072A000008310042 -:105AB00000093800000A3F00000B4600000C4D00B2 -:105AC000000D5400000E5B00000F62000010690022 -:105AD000001170000012770000137E000014850092 -:105AE00000158C000016930000179A000018A10002 -:105AF0000019A800001AAF00001BB600001CBD0072 -:105B0000001DC400001ECB00001FD2000000D90001 -:105B10000000200000004000000060000000800045 -:105B20000000A0000000C0000000E0000001000034 -:105B30000001200000014000000160000001800021 -:105B40000001A0000001C0000001E0000002000010 -:105B500000022000000240000002600000028000FD -:105B60000002A0000002C0000002E00000030000EC -:105B700000032000000340000003600000038000D9 -:105B80000003A0000003C0000003E00000040000C8 -:105B900000042000000440000004600000048000B5 -:105BA0000004A0000004C0000004E00000050000A4 -:105BB0000005200000054000000560000005800091 -:105BC0000005A0000005C0000005E0000006000080 -:105BD000000620000006400000066000000680006D -:105BE0000006A0000006C0000006E000000700005C -:105BF0000007200000074000000760000007800049 -:105C00000007A0000007C0000007E0000008000037 -:105C10000008200000084000000860000008800024 -:105C20000008A0000008C0000008E0000009000013 -:105C30000009200000094000000960000009800000 -:105C40000009A0000009C0000009E000000A0000EF -:105C5000000A2000000A4000000A6000000A8000DC -:105C6000000AA000000AC000000AE000000B0000CB -:105C7000000B2000000B4000000B6000000B8000B8 -:105C8000000BA000000BC000000BE000000C0000A7 -:105C9000000C2000000C4000000C6000000C800094 -:105CA000000CA000000CC000000CE000000D000083 -:105CB000000D2000000D4000000D6000000D800070 -:105CC000000DA000000DC000000DE000000E00005F -:105CD000000E2000000E4000000E6000000E80004C -:105CE000000EA000000EC000000EE000000F00003B -:105CF000000F2000000F4000000F6000000F800028 -:105D0000000FA000000FC000000FE0000010000016 -:105D10000010200000104000001060000010800003 -:105D20000010A0000010C0000010E00000110000F2 -:105D300000112000001140000011600000118000DF -:105D40000011A0000011C0000011E00000120000CE -:105D500000122000001240000012600000128000BB -:105D60000012A0000012C0000012E00000130000AA -:105D70000013200000134000001360000013800097 -:105D80000013A0000013C0000013E0000014000086 -:105D90000014200000144000001460000014800073 -:105DA0000014A0000014C0000014E0000015000062 -:105DB000001520000015400000156000001580004F -:105DC0000015A0000015C0000015E000001600003E -:105DD000001620000016400000166000001680002B -:105DE0000016A0000016C0000016E000001700001A -:105DF0000017200000174000001760000017800007 -:105E00000017A0000017C0000017E00000180000F5 -:105E100000182000001840000018600000188000E2 -:105E20000018A0000018C0000018E00000190000D1 -:105E300000192000001940000019600000198000BE -:105E40000019A0000019C0000019E000001A0000AD -:105E5000001A2000001A4000001A6000001A80009A -:105E6000001AA000001AC000001AE000001B000089 -:105E7000001B2000001B4000001B6000001B800076 -:105E8000001BA000001BC000001BE000001C000065 -:105E9000001C2000001C4000001C6000001C800052 -:105EA000001CA000001CC000001CE000001D000041 -:105EB000001D2000001D4000001D6000001D80002E -:105EC000001DA000001DC000001DE000001E00001D -:105ED000001E2000001E4000001E6000001E80000A -:105EE000001EA000001EC000001EE000001F0000F9 -:105EF000001F2000001F4000001F6000001F8000E6 -:105F0000001FA000001FC000001FE00000200000D4 -:105F100000202000002040000020600000208000C1 -:105F20000020A0000020C0000020E00000210000B0 -:105F3000002120000021400000216000002180009D -:105F40000021A0000021C0000021E000002200008C -:105F50000022200000224000002260000022800079 -:105F60000022A0000022C0000022E0000023000068 -:105F70000023200000234000002360000023800055 -:105F80000023A0000023C0000023E0000024000044 -:105F90000024200000244000002460000024800031 -:105FA0000024A0000024C0000024E0000025000020 -:105FB000002520000025400000256000002580000D -:105FC0000025A0000025C0000025E00000260000FC -:105FD00000262000002640000026600000268000E9 -:105FE0000026A0000026C0000026E00000270000D8 -:105FF00000272000002740000027600000278000C5 -:106000000027A0000027C0000027E00000280000B3 -:1060100000282000002840000028600000288000A0 -:106020000028A0000028C0000028E000002900008F -:10603000002920000029400000296000002980007C -:106040000029A0000029C0000029E000002A00006B -:10605000002A2000002A4000002A6000002A800058 -:10606000002AA000002AC000002AE000002B000047 -:10607000002B2000002B4000002B6000002B800034 -:10608000002BA000002BC000002BE000002C000023 -:10609000002C2000002C4000002C6000002C800010 -:1060A000002CA000002CC000002CE000002D0000FF -:1060B000002D2000002D4000002D6000002D8000EC -:1060C000002DA000002DC000002DE000002E0000DB -:1060D000002E2000002E4000002E6000002E8000C8 -:1060E000002EA000002EC000002EE000002F0000B7 -:1060F000002F2000002F4000002F6000002F8000A4 -:10610000002FA000002FC000002FE0000030000092 -:10611000003020000030400000306000003080007F -:106120000030A0000030C0000030E000003100006E -:10613000003120000031400000316000003180005B -:106140000031A0000031C0000031E000003200004A -:106150000032200000324000003260000032800037 -:106160000032A0000032C0000032E0000033000026 -:106170000033200000334000003360000033800013 -:106180000033A0000033C0000033E0000034000002 -:1061900000342000003440000034600000348000EF -:1061A0000034A0000034C0000034E00000350000DE -:1061B00000352000003540000035600000358000CB -:1061C0000035A0000035C0000035E00000360000BA -:1061D00000362000003640000036600000368000A7 -:1061E0000036A0000036C0000036E0000037000096 -:1061F0000037200000374000003760000037800083 -:106200000037A0000037C0000037E0000038000071 -:10621000003820000038400000386000003880005E -:106220000038A0000038C0000038E000003900004D -:10623000003920000039400000396000003980003A -:106240000039A0000039C0000039E000003A000029 -:10625000003A2000003A4000003A6000003A800016 -:10626000003AA000003AC000003AE000003B000005 -:10627000003B2000003B4000003B6000003B8000F2 -:10628000003BA000003BC000003BE000003C0000E1 -:10629000003C2000003C4000003C6000003C8000CE -:1062A000003CA000003CC000003CE000003D0000BD -:1062B000003D2000003D4000003D6000003D8000AA -:1062C000003DA000003DC000003DE000003E000099 -:1062D000003E2000003E4000003E6000003E800086 -:1062E000003EA000003EC000003EE000003F000075 -:1062F000003F2000003F4000003F6000003F800062 -:10630000003FA000003FC000003FE000003FE00170 -:1063100000000000000001FF0000020000007FF804 -:1063200000007FF800000A90000035000000000126 -:106330000000FF00000000000000FF00000000005F -:106340000000FF00000000000000FF00000000004F -:106350000000FF00000000000000FF00000000003F -:106360000000FF00000000000000FF00000000002F -:106370000000FF00000000000000FF00000000001F -:106380000000FF00000000000000FF00000000000F -:106390000000FF00000000000000FF0000000000FF -:1063A0000000FF00000000000000FF0000000000EF -:1063B0000000FF00000000000000FF0000000000DF -:1063C0000000FF00000000000000FF0000000000CF -:1063D0000000FF00000000000000FF0000000000BF -:1063E0000000FF00000000000000FF0000000000AF -:1063F0000000FF00000000000000FF00000000009F -:106400000000FF00000000000000FF00000000008E -:106410000000FF00000000000000FF00000000007E -:106420000000FF00000000000000FF00000000006E -:106430000000FF00000000000000FF00000000005E -:106440000000FF00000000000000FF00000000004E -:106450000000FF00000000000000FF00000000003E -:106460000000FF00000000000000FF00000000002E -:106470000000FF00000000000000FF00000000001E -:106480000000FF00000000000000FF00000000000E -:106490000000FF00000000000000FF0000000000FE -:1064A0000000FF00000000000000FF0000000000EE -:1064B0000000FF00000000000000FF0000000000DE -:1064C0000000FF00000000000000FF0000000000CE -:1064D0000000FF00000000000000FF0000000000BE -:1064E0000000FF00000000000000FF0000000000AE -:1064F0000000FF00000000000000FF00000000009E -:106500000000FF00000000000000FF00000000008D -:106510000000FF00000000000000FF00000000007D -:106520000000FF00000000000000FF00000000006D -:106530000000FF00000000000000FF00000000005D -:106540000000FF00000000000000FF00000000004D -:106550000000FF00000000000000FF00000000003D -:106560000000FF00000000000000FF00000000002D -:1065700000000000140AFF000000000100000000FD -:106580000020100100000000010090000000010048 -:1065900000009002000090040000900600009008A7 -:1065A0000000900A0000900C0000900E0000901077 -:1065B0000000901200009014000090160000901847 -:1065C0000000901A0000901C0000901E0000902017 -:1065D00000009022000090240000902600009028E7 -:1065E0000000902A0000902C0000902E00009030B7 -:1065F0000000903200009034000090360000903887 -:106600000000903A0000903C0000903E0000904056 -:106610000000904200009044000090460000904826 -:106620000000904A0000904C0000904E00009050F6 -:1066300000009052000090540000905600009058C6 -:106640000000905A0000905C0000905E0000906096 -:106650000000906200009064000090660000906866 -:106660000000906A0000906C0000906E0000907036 -:106670000000907200009074000090760000907806 -:106680000000907A0000907C0000907E00009080D6 -:1066900000009082000090840000908600009088A6 -:1066A0000000908A0000908C0000908E0000909076 -:1066B0000000909200009094000090960000909846 -:1066C0000000909A0000909C0000909E000090A016 -:1066D000000090A2000090A4000090A6000090A8E6 -:1066E000000090AA000090AC000090AE000090B0B6 -:1066F000000090B2000090B4000090B6000090B886 -:10670000000090BA000090BC000090BE000090C055 -:10671000000090C2000090C4000090C6000090C825 -:10672000000090CA000090CC000090CE000090D0F5 -:10673000000090D2000090D4000090D6000090D8C5 -:10674000000090DA000090DC000090DE000090E095 -:10675000000090E2000090E4000090E6000090E865 -:10676000000090EA000090EC000090EE000090F035 -:10677000000090F2000090F4000090F6000090F805 -:10678000000090FA000090FC000090FE00009100D4 -:1067900000009102000091040000910600009108A1 -:1067A0000000910A0000910C0000910E0000911071 -:1067B0000000911200009114000091160000911841 -:1067C0000000911A0000911C0000911E0000912011 -:1067D00000009122000091240000912600009128E1 -:1067E0000000912A0000912C0000912E00009130B1 -:1067F0000000913200009134000091360000913881 -:106800000000913A0000913C0000913E0000914050 -:106810000000914200009144000091460000914820 -:106820000000914A0000914C0000914E00009150F0 -:1068300000009152000091540000915600009158C0 -:106840000000915A0000915C0000915E0000916090 -:106850000000916200009164000091660000916860 -:106860000000916A0000916C0000916E0000917030 -:106870000000917200009174000091760000917800 -:106880000000917A0000917C0000917E00009180D0 -:1068900000009182000091840000918600009188A0 -:1068A0000000918A0000918C0000918E0000919070 -:1068B0000000919200009194000091960000919840 -:1068C0000000919A0000919C0000919E000091A010 -:1068D000000091A2000091A4000091A6000091A8E0 -:1068E000000091AA000091AC000091AE000091B0B0 -:1068F000000091B2000091B4000091B6000091B880 -:10690000000091BA000091BC000091BE000091C04F -:10691000000091C2000091C4000091C6000091C81F -:10692000000091CA000091CC000091CE000091D0EF -:10693000000091D2000091D4000091D6000091D8BF -:10694000000091DA000091DC000091DE000091E08F -:10695000000091E2000091E4000091E6000091E85F -:10696000000091EA000091EC000091EE000091F02F -:10697000000091F2000091F4000091F6000091F8FF -:10698000000091FA000091FC000091FEFFFFFFFF64 -:10699000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:1069A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:1069B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:1069C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:1069D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:1069E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:1069F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:106A0000FFFFFFFFFFFFFFFFFFFFFFFF000000038F -:106A100000BEBC20000000000000000500000003D4 -:106A200000BEBC20000000000000000500000003C4 -:106A300000BEBC20000000000000000500000003B4 -:106A400000BEBC20000000000000000500000003A4 -:106A500000BEBC2000000000000000050000000394 -:106A600000BEBC2000000000000000050000000384 -:106A700000BEBC2000000000000000050000000374 -:106A800000BEBC2000000000000000050000200047 -:106A9000000040C000006180000082400000A300B0 -:106AA0000000C3C00000E480000105400001260092 -:106AB000000146C000016780000188400001A90074 -:106AC0000001C9C00001EA8000020B4000022C0056 -:106AD00000024CC000026D8000028E400002AF0038 -:106AE0000002CFC00002F0800000114000008000D2 -:106AF000000103800001870000020A8000028E006E -:106B000000031180000395000004188000049C001D -:106B100000051F800005A300000626800006AA00CD -:106B200000072D800007B100000834800008B8007D -:106B300000093B800009BF00000A4280000AC6002D -:106B4000000B4980000BCD00000C5080000CD400DD -:106B5000000D578000005B0000007FF800007FF808 -:106B60000000022A000035000000FF0000000000C5 -:106B70000000FF00000000000000FF000000000017 -:106B80000000FF00000000000000FF000000000007 -:106B90000000FF00000000000000FF0000000000F7 -:106BA0000000FF00000000000000FF0000000000E7 -:106BB0000000FF00000000000000FF0000000000D7 -:106BC0000000FF00000000000000FF0000000000C7 -:106BD0000000FF00000000000000FF0000000000B7 -:106BE0000000FF00000000000000FF0000000000A7 -:106BF0000000FF00000000000000FF000000000097 -:106C00000000FF00000000000000FF000000000086 -:106C10000000FF00000000000000FF000000000076 -:106C20000000FF00000000000000FF000000000066 -:106C30000000FF00000000000000FF000000000056 -:106C40000000FF00000000000000FF000000000046 -:106C50000000FF00000000000000FF000000000036 -:106C60000000FF00000000000000FF000000000026 -:106C70000000FF00000000000000FF000000000016 -:106C80000000FF00000000000000FF000000000006 -:106C90000000FF00000000000000FF0000000000F6 -:106CA0000000FF00000000000000FF0000000000E6 -:106CB0000000FF00000000000000FF0000000000D6 -:106CC0000000FF00000000000000FF0000000000C6 -:106CD0000000FF00000000000000FF0000000000B6 -:106CE0000000FF00000000000000FF0000000000A6 -:106CF0000000FF00000000000000FF000000000096 -:106D00000000FF00000000000000FF000000000085 -:106D10000000FF00000000000000FF000000000075 -:106D20000000FF00000000000000FF000000000065 -:106D30000000FF00000000000000FF000000000055 -:106D40000000FF00000000000000FF000000000045 -:106D50000000FF00000000000000FF000000000035 -:106D60000000FF00000000000000FF000000000025 -:106D70000000FF00000000000000FF000000000015 -:106D80000000FF00000000000000FF000000000005 -:106D90000000FF00000000000000FF0000000000F5 -:106DA0000000FF00000019000000000000000000CB -:106DB000FFFFFFFF000000000393870000000000BA -:106DC0000393870000007FF800007FF800000BA30A -:106DD00000001500000000FF000000FF000000FFA1 -:106DE000000000FF000000FF000000FF000000FFA7 -:106DF000000000FF0000FF00000000000000FF0096 -:106E0000000000000000FF00000000000000FF0084 -:106E1000000000000000FF00000000000000FF0074 -:106E2000000000000000FF00000000000000FF0064 -:106E3000000000000000FF00000000000000FF0054 -:106E4000000000000000FF00000000000000FF0044 -:106E5000000000000000FF00000000000000FF0034 -:106E6000000000000000FF00000000000000FF0024 -:106E7000000000000000FF00000000000000FF0014 -:106E8000000000000000FF00000000000000FF0004 -:106E9000000000000000FF00000000000000FF00F4 -:106EA000000000000000FF00000000000000FF00E4 -:106EB000000000000000FF00000000000000FF00D4 -:106EC000000000000000FF00000000000000FF00C4 -:106ED000000000000000FF00000000000000FF00B4 -:106EE000000000000000FF00000000000000FF00A4 -:106EF000000000000000FF00000000000000FF0094 -:106F0000000000000000FF00000000000000FF0083 -:106F1000000000000000FF00000000000000FF0073 -:106F2000000000000000FF00000000000000FF0063 -:106F3000000000000000FF00000000000000FF0053 -:106F4000000000000000FF00000000000000FF0043 -:106F5000000000000000FF00000000000000FF0033 -:106F6000000000000000FF00000000000000FF0023 -:106F7000000000000000FF00000000000000FF0013 -:106F8000000000000000FF00000000000000FF0003 -:106F9000000000000000FF00000000000000FF00F3 -:106FA000000000000000FF00000000000000FF00E3 -:106FB000000000000000FF00000000000000FF00D3 -:106FC000000000000000FF00000000000000FF00C3 -:106FD000000000000000FF00000000000000FF00B3 -:106FE000000000000000FF00000000000000FF00A3 -:106FF000000000000000FF00000000000000FF0093 -:10700000000000000000FF00000000000000FF0082 -:10701000000000000000FF00000000000000FF0072 -:10702000000000000000FF00000000000000FF0062 -:1070300000000000FFFFFFFFFFFFFFFFFFFFFFFF5C -:10704000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:10705000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:10706000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:10707000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:10708000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:10709000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:1070A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:1070B000FFFFFFFF00000000000028AD00002918BE -:1070C0000000291900000005000000070000FF0073 -:1070D0000FFFFFFF0000FF000FFFFFFF000000FF9A -:1070E0000000FF000000FF000FFFFFFF0000FF0097 -:1070F0000FFFFFFF000000FF0000FF000000FF0087 -:107100000FFFFFFF0000FF000FFFFFFF000000FF69 -:107110000000FF000000FF000FFFFFFF0000FF0066 -:107120000FFFFFFF000000FF0000FF000000FF0056 -:107130000FFFFFFF0000FF000FFFFFFF000000FF39 -:107140000000FF000000FF000FFFFFFF0000FF0036 -:107150000FFFFFFF000000FF0000FF000000FF0026 -:107160000FFFFFFF0000FF000FFFFFFF000000FF09 -:107170000000FF000000FF000FFFFFFF0000FF0006 -:107180000FFFFFFF000000FF0000FF000000FF00F6 -:107190000FFFFFFF0000FF000FFFFFFF000000FFD9 -:1071A0000000FF000000FF000FFFFFFF0000FF00D6 -:1071B0000FFFFFFF000000FF0000FF000000FF00C6 -:1071C0000FFFFFFF0000FF000FFFFFFF000000FFA9 -:1071D0000000FF000000FF000FFFFFFF0000FF00A6 -:1071E0000FFFFFFF000000FF0000FF000000FF0096 -:1071F0000FFFFFFF0000FF000FFFFFFF000000FF79 -:107200000000FF000000FF000FFFFFFF0000FF0075 -:107210000FFFFFFF000000FF0000FF000000FF0065 -:107220000FFFFFFF0000FF000FFFFFFF000000FF48 -:107230000000FF000000FF000FFFFFFF0000FF0045 -:107240000FFFFFFF000000FF0000FF000000FF0035 -:107250000FFFFFFF0000FF000FFFFFFF000000FF18 -:107260000000FF000000FF000FFFFFFF0000FF0015 -:107270000FFFFFFF000000FF0000FF000000FF0005 -:107280000FFFFFFF0000FF000FFFFFFF000000FFE8 -:107290000000FF000000FF000FFFFFFF0000FF00E5 -:1072A0000FFFFFFF000000FF0000FF000000FF00D5 -:1072B0000FFFFFFF0000FF000FFFFFFF000000FFB8 -:1072C0000000FF000000FF000FFFFFFF0000FF00B5 -:1072D0000FFFFFFF000000FF0000FF000000FF00A5 -:1072E0000FFFFFFF0000FF000FFFFFFF000000FF88 -:1072F0000000FF000000FF000FFFFFFF0000FF0085 -:107300000FFFFFFF000000FF0000FF000000FF0074 -:107310000FFFFFFF0000FF000FFFFFFF000000FF57 -:107320000000FF000000FF000FFFFFFF0000FF0054 -:107330000FFFFFFF000000FF0000FF000000FF0044 -:107340000FFFFFFF0000FF000FFFFFFF000000FF27 -:107350000000FF000000FF000FFFFFFF0000FF0024 -:107360000FFFFFFF000000FF0000FF000000FF0014 -:107370000FFFFFFF0000FF000FFFFFFF000000FFF7 -:107380000000FF000000FF000FFFFFFF0000FF00F4 -:107390000FFFFFFF000000FF0000FF000000FF00E4 -:1073A0000FFFFFFF0000FF000FFFFFFF000000FFC7 -:1073B0000000FF000000FF000FFFFFFF0000FF00C4 -:1073C0000FFFFFFF000000FF0000FF000000FF00B4 -:1073D0000FFFFFFF0000FF000FFFFFFF000000FF97 -:1073E0000000FF000000FF000FFFFFFF0000FF0094 -:1073F0000FFFFFFF000000FF0000FF000000FF0084 -:107400000FFFFFFF0000FF000FFFFFFF000000FF66 -:107410000000FF000000FF000FFFFFFF0000FF0063 -:107420000FFFFFFF000000FF0000FF000000FF0053 -:107430000FFFFFFF0000FF000FFFFFFF000000FF36 -:107440000000FF000000FF000FFFFFFF0000FF0033 -:107450000FFFFFFF000000FF0000FF000000FF0023 -:107460000FFFFFFF0000FF000FFFFFFF000000FF06 -:107470000000FF000000FF000FFFFFFF0000FF0003 -:107480000FFFFFFF000000FF0000FF000000FF00F3 -:107490000FFFFFFF0000FF000FFFFFFF000000FFD6 -:1074A0000000FF000000FF000FFFFFFF0000FF00D3 -:1074B0000FFFFFFF000000FF0000FF000000FF00C3 -:1074C0000FFFFFFF0000FF000FFFFFFF000000FFA6 -:1074D0000000FF000000FF000FFFFFFF0000FF00A3 -:1074E0000FFFFFFF000000FF0000FF000000FF0093 -:1074F0000FFFFFFF0000FF000FFFFFFF000000FF76 -:107500000000FF000000FF000FFFFFFF0000FF0072 -:107510000FFFFFFF000000FF0000FF000000FF0062 -:107520000FFFFFFF0000FF000FFFFFFF000000FF45 -:107530000000FF000000FF000FFFFFFF0000FF0042 -:107540000FFFFFFF000000FF0000FF000000FF0032 -:107550000FFFFFFF0000FF000FFFFFFF000000FF15 -:107560000000FF000000FF000FFFFFFF0000FF0012 -:107570000FFFFFFF000000FF0000FF000000FF0002 -:107580000FFFFFFF0000FF000FFFFFFF000000FFE5 -:107590000000FF000000FF000FFFFFFF0000FF00E2 -:1075A0000FFFFFFF000000FF0000FF000000FF00D2 -:1075B0000FFFFFFF0000FF000FFFFFFF000000FFB5 -:1075C0000000FF000000FF000FFFFFFF0000FF00B2 -:1075D0000FFFFFFF000000FF0000FF000000FF00A2 -:1075E0000FFFFFFF0000FF000FFFFFFF000000FF85 -:1075F0000000FF000000FF000FFFFFFF0000FF0082 -:107600000FFFFFFF000000FF0000FF000000FF0071 -:107610000FFFFFFF0000FF000FFFFFFF000000FF54 -:107620000000FF000000FF000FFFFFFF0000FF0051 -:107630000FFFFFFF000000FF0000FF000000FF0041 -:107640000FFFFFFF0000FF000FFFFFFF000000FF24 -:107650000000FF000000FF000FFFFFFF0000FF0021 -:107660000FFFFFFF000000FF0000FF000000FF0011 -:107670000FFFFFFF0000FF000FFFFFFF000000FFF4 -:107680000000FF000000FF000FFFFFFF0000FF00F1 -:107690000FFFFFFF000000FF0000FF000000FF00E1 -:1076A0000FFFFFFF0000FF000FFFFFFF000000FFC4 -:1076B0000000FF000000FF000FFFFFFF0000FF00C1 -:1076C0000FFFFFFF000000FF0000FF000000FF00B1 -:1076D0000FFFFFFF0000FF000FFFFFFF000000FF94 -:1076E0000000FF000000FF000FFFFFFF0000FF0091 -:1076F0000FFFFFFF000000FF0000FF000000FF0081 -:107700000FFFFFFF0000FF000FFFFFFF000000FF63 -:107710000000FF000000FF000FFFFFFF0000FF0060 -:107720000FFFFFFF000000FF0000FF000000FF0050 -:107730000FFFFFFF0000FF000FFFFFFF000000FF33 -:107740000000FF000000FF000FFFFFFF0000FF0030 -:107750000FFFFFFF000000FF0000FF000000FF0020 -:107760000FFFFFFF0000FF000FFFFFFF000000FF03 -:107770000000FF000000FF000FFFFFFF0000FF0000 -:107780000FFFFFFF000000FF0000FF000000FF00F0 -:107790000FFFFFFF0000FF000FFFFFFF000000FFD3 -:1077A0000000FF000000FF000FFFFFFF0000FF00D0 -:1077B0000FFFFFFF000000FF0000FF000000FF00C0 -:1077C0000FFFFFFF0000FF000FFFFFFF000000FFA3 -:1077D0000000FF000000FF000FFFFFFF0000FF00A0 -:1077E0000FFFFFFF000000FF0000FF000000FF0090 -:1077F0000FFFFFFF0000FF000FFFFFFF000000FF73 -:107800000000FF000000FF000FFFFFFF0000FF006F -:107810000FFFFFFF000000FF0000FF000000FF005F -:107820000FFFFFFF0000FF000FFFFFFF000000FF42 -:107830000000FF000000FF000FFFFFFF0000FF003F -:107840000FFFFFFF000000FF0000FF000000FF002F -:107850000FFFFFFF0000FF000FFFFFFF000000FF12 -:107860000000FF000000FF000FFFFFFF0000FF000F -:107870000FFFFFFF000000FF0000FF000000FF00FF -:107880000FFFFFFF0000FF000FFFFFFF000000FFE2 -:107890000000FF000000FF000FFFFFFF0000FF00DF -:1078A0000FFFFFFF000000FF0000FF000000FF00CF -:1078B0000FFFFFFF0000FF000FFFFFFF000000FFB2 -:1078C0000000FF000000FF000FFFFFFF0000FF00AF -:1078D0000FFFFFFF000000FF0000FF000000FF009F -:1078E0000FFFFFFF0000FF000FFFFFFF000000FF82 -:1078F0000000FF000000FF000FFFFFFF0000FF007F -:107900000FFFFFFF000000FF0000FF000000FF006E -:107910000FFFFFFF0000FF000FFFFFFF000000FF51 -:107920000000FF000000FF000FFFFFFF0000FF004E -:107930000FFFFFFF000000FF0000FF000000FF003E -:107940000FFFFFFF0000FF000FFFFFFF000000FF21 -:107950000000FF000000FF000FFFFFFF0000FF001E -:107960000FFFFFFF000000FF0000FF000000FF000E -:107970000FFFFFFF0000FF000FFFFFFF000000FFF1 -:107980000000FF000000FF000FFFFFFF0000FF00EE -:107990000FFFFFFF000000FF0000FF000000FF00DE -:1079A0000FFFFFFF0000FF000FFFFFFF000000FFC1 -:1079B0000000FF000000FF000FFFFFFF0000FF00BE -:1079C0000FFFFFFF000000FF0000FF000000FF00AE -:1079D0000FFFFFFF0000FF000FFFFFFF000000FF91 -:1079E0000000FF000000FF000FFFFFFF0000FF008E -:1079F0000FFFFFFF000000FF0000FF000000FF007E -:107A00000FFFFFFF0000FF000FFFFFFF000000FF60 -:107A10000000FF000000FF000FFFFFFF0000FF005D -:107A20000FFFFFFF000000FF0000FF000000FF004D -:107A30000FFFFFFF0000FF000FFFFFFF000000FF30 -:107A40000000FF000000FF000FFFFFFF0000FF002D -:107A50000FFFFFFF000000FF0000FF000000FF001D -:107A60000FFFFFFF0000FF000FFFFFFF000000FF00 -:107A70000000FF000000FF000FFFFFFF0000FF00FD -:107A80000FFFFFFF000000FF0000FF000000FF00ED -:107A90000FFFFFFF0000FF000FFFFFFF000000FFD0 -:107AA0000000FF000000FF000FFFFFFF0000FF00CD -:107AB0000FFFFFFF000000FF0000FF000000FF00BD -:107AC0000FFFFFFF0000FF000FFFFFFF000000FFA0 -:107AD0000000FF000000FF000FFFFFFF0000FF009D -:107AE0000FFFFFFF000000FF0000FF000000FF008D -:107AF0000FFFFFFF0000FF000FFFFFFF000000FF70 -:107B00000000FF000000FF000FFFFFFF0000FF006C -:107B10000FFFFFFF000000FF0000FF000000FF005C -:107B20000FFFFFFF0000FF000FFFFFFF000000FF3F -:107B30000000FF000000FF000FFFFFFF0000FF003C -:107B40000FFFFFFF000000FF0000FF000000FF002C -:107B50000FFFFFFF0000FF000FFFFFFF000000FF0F -:107B60000000FF000000FF000FFFFFFF0000FF000C -:107B70000FFFFFFF000000FF0000FF000000FF00FC -:107B80000FFFFFFF0000FF000FFFFFFF000000FFDF -:107B90000000FF000000FF000FFFFFFF0000FF00DC -:107BA0000FFFFFFF000000FF0000FF000000FF00CC -:107BB0000FFFFFFF0000FF000FFFFFFF000000FFAF -:107BC0000000FF000000FF000FFFFFFF0000FF00AC -:107BD0000FFFFFFF000000FF0000FF000000FF009C -:107BE0000FFFFFFF0000FF000FFFFFFF000000FF7F -:107BF0000000FF000000FF000FFFFFFF0000FF007C -:107C00000FFFFFFF000000FF0000FF000000FF006B -:107C10000FFFFFFF0000FF000FFFFFFF000000FF4E -:107C20000000FF000000FF000FFFFFFF0000FF004B -:107C30000FFFFFFF000000FF0000FF000000FF003B -:107C40000FFFFFFF0000FF000FFFFFFF000000FF1E -:107C50000000FF000000FF000FFFFFFF0000FF001B -:107C60000FFFFFFF000000FF0000FF000000FF000B -:107C70000FFFFFFF0000FF000FFFFFFF000000FFEE -:107C80000000FF000000FF000FFFFFFF0000FF00EB -:107C90000FFFFFFF000000FF0000FF000000FF00DB -:107CA0000FFFFFFF0000FF000FFFFFFF000000FFBE -:107CB0000000FF000000FF000FFFFFFF0000FF00BB -:107CC0000FFFFFFF000000FF0000FF000000FF00AB -:107CD0000FFFFFFF0000FF000FFFFFFF000000FF8E -:107CE0000000FF000000FF000FFFFFFF0000FF008B -:107CF0000FFFFFFF000000FF0000FF000000FF007B -:107D00000FFFFFFF0000FF000FFFFFFF000000FF5D -:107D10000000FF000000FF000FFFFFFF0000FF005A -:107D20000FFFFFFF000000FF0000FF000000FF004A -:107D30000FFFFFFF0000FF000FFFFFFF000000FF2D -:107D40000000FF000000FF000FFFFFFF0000FF002A -:107D50000FFFFFFF000000FF0000FF000000FF001A -:107D60000FFFFFFF0000FF000FFFFFFF000000FFFD -:107D70000000FF000000FF000FFFFFFF0000FF00FA -:107D80000FFFFFFF000000FF0000FF0000001000D9 -:107D900000002080000031000000418000005200FF -:107DA00000006280000073000000838000009400E7 -:107DB0000000A4800000B5000000C5800000D600CF -:107DC0000000E6800000F7000001078000011800B5 -:107DD00000012880000139000001498000015A009B -:107DE00000016A8000017B0000018B8000019C0083 -:107DF0000001AC800001BD000001CD800001DE006B -:107E00000001EE800001FF0000000F8000007FF8FD -:107E100000007FF8000005F60000350010000000AB -:107E2000000028AD000029180000291900000005F5 -:107E3000000000060001000100090206CCCCCCC9FC -:107E40007058103C0000FF00000000000000FF0020 -:107E5000000000000000FF00000000000000FF0024 -:107E6000000000000000FF00000000000000FF0014 -:107E7000000000000000FF00000000000000FF0004 -:107E8000000000000000FF00000000000000FF00F4 -:107E9000000000000000FF00000000000000FF00E4 -:107EA000000000000000FF00000000000000FF00D4 -:107EB000000000000000FF00000000000000FF00C4 -:107EC000000000000000FF00000000000000FF00B4 -:107ED000000000000000FF00000000000000FF00A4 -:107EE000000000000000FF00000000000000FF0094 -:107EF000000000000000FF00000000000000FF0084 -:107F0000000000000000FF00000000000000FF0073 -:107F1000000000000000FF00000000000000FF0063 -:107F2000000000000000FF00000000000000FF0053 -:107F3000000000000000FF00000000000000FF0043 -:107F4000000000000000FF00000000000000FF0033 -:107F5000000000000000FF00000000000000FF0023 -:107F6000000000000000FF00000000000000FF0013 -:107F7000000000000000FF00000000000000FF0003 -:107F8000000000000000FF00000000000000FF00F3 -:107F9000000000000000FF00000000000000FF00E3 -:107FA000000000000000FF00000000000000FF00D3 -:107FB000000000000000FF00000000000000FF00C3 -:107FC000000000000000FF00000000000000FF00B3 -:107FD000000000000000FF00000000000000FF00A3 -:107FE000000000000000FF00000000000000FF0093 -:107FF000000000000000FF00000000000000FF0083 -:10800000000000000000FF00000000000000FF0072 -:10801000000000000000FF00000000000000FF0062 -:10802000000000000000FF00000000000000FF0052 -:10803000000000000000FF00000000000000FF0042 -:10804000000000000000FF00000000000000FF0032 -:10805000000000000000FF00000000000000FF0022 -:10806000000000000000FF00000000000000FF0012 -:10807000000000000000FF00000000000000FF0002 -:108080000000000000000001CCCC0201CCCCCCCC24 -:10809000CCCC0201CCCCCCCCCCCC0201CCCCCCCC4A -:1080A000CCCC0201CCCCCCCCCCCC0201CCCCCCCC3A -:1080B000CCCC0201CCCCCCCCCCCC0201CCCCCCCC2A -:1080C000CCCC0201CCCCCCCC00000000FFFFFFFFE9 -:1080D000030303031342020250505020706080508B -:1080E0000200020006040604000E0000011600D67D -:1080F000002625A0002625A0002625A0002625A0D4 -:1081000000720000012300F3002625A0002625A010 -:10811000002625A0002625A00000FFFF000000008B -:108120000000FFFF000000000000FFFF0000000053 -:108130000000FFFF000000000000FFFF0000000043 -:108140000000FFFF000000000000FFFF0000000033 -:108150000000FFFF000000000000FFFF0000000023 -:108160000000FFFF000000000000FFFF0000000013 -:108170000000FFFF000000000000FFFF0000000003 -:108180000000FFFF000000000000FFFF00000000F3 -:108190000000FFFF000000000000FFFF00000000E3 -:1081A0000000FFFF000000000000FFFF00000000D3 -:1081B0000000FFFF000000000000FFFF00000000C3 -:1081C0000000FFFF000000000000FFFF00000000B3 -:1081D0000000FFFF000000000000FFFF00000000A3 -:1081E0000000FFFF000000000000FFFF0000000093 -:1081F0000000FFFF000000000000FFFF0000000083 -:108200000000FFFF000000000000FFFF0000000072 -:108210000000FFFF000000000000FFFF0000000062 -:108220000000FFFF000000000000FFFF0000000052 -:108230000000FFFF000000000000FFFF0000000042 -:108240000000FFFF000000000000FFFF0000000032 -:108250000000FFFF000000000000FFFF0000000022 -:108260000000FFFF000000000000FFFF0000000012 -:108270000000FFFF000000000000FFFF0000000002 -:108280000000FFFF000000000000FFFF00000000F2 -:108290000000FFFF000000000000FFFF00000000E2 -:1082A0000000FFFF000000000000FFFF00000000D2 -:1082B0000000FFFF000000000000FFFF00000000C2 -:1082C0000000FFFF000000000000FFFF00000000B2 -:1082D0000000FFFF000000000000FFFF00000000A2 -:1082E0000000FFFF000000000000FFFF0000000092 -:1082F0000000FFFF000000000000FFFF0000000082 -:108300000000FFFF000000000000FFFF0000000071 -:108310000000FFFF00000000FFFFFFF3318FFFFFB1 -:108320000C30C30CC30C30C3CF3CF300F3CF3CF391 -:108330000000CF3CCDCDCDCDFFFFFFF130EFFFFFF3 -:108340000C30C30CC30C30C3CF3CF300F3CF3CF371 -:108350000001CF3CCDCDCDCDFFFFFFF6305FFFFF5D -:108360000C30C30CC30C30C3CF3CF300F3CF3CF351 -:108370000002CF3CCDCDCDCDFFFFF4061CBFFFFFEB -:108380000C30C305C30C30C3CF300014F3CF3CF323 -:108390000004CF3CCDCDCDCDFFFFFFF2304FFFFF2E -:1083A0000C30C30CC30C30C3CF3CF300F3CF3CF311 -:1083B0000008CF3CCDCDCDCDFFFFFFFA302FFFFF22 -:1083C0000C30C30CC30C30C3CF3CF300F3CF3CF3F1 -:1083D0000010CF3CCDCDCDCDFFFFFFF731EFFFFF3C -:1083E0000C30C30CC30C30C3CF3CF300F3CF3CF3D1 -:1083F0000020CF3CCDCDCDCDFFFFFFF5302FFFFFCF -:108400000C30C30CC30C30C3CF3CF300F3CF3CF3B0 -:108410000040CF3CCDCDCDCDFFFFFFF3318FFFFF2F -:108420000C30C30CC30C30C3CF3CF300F3CF3CF390 -:108430000000CF3CCDCDCDCDFFFFFFF1310FFFFFD1 -:108440000C30C30CC30C30C3CF3CF300F3CF3CF370 -:108450000001CF3CCDCDCDCDFFFFFFF6305FFFFF5C -:108460000C30C30CC30C30C3CF3CF300F3CF3CF350 -:108470000002CF3CCDCDCDCDFFFFF4061CBFFFFFEA -:108480000C30C305C30C30C3CF300014F3CF3CF322 -:108490000004CF3CCDCDCDCDFFFFFFF2304FFFFF2D -:1084A0000C30C30CC30C30C3CF3CF300F3CF3CF310 -:1084B0000008CF3CCDCDCDCDFFFFFFFA302FFFFF21 -:1084C0000C30C30CC30C30C3CF3CF300F3CF3CF3F0 -:1084D0000010CF3CCDCDCDCDFFFFFFF730EFFFFF3C -:1084E0000C30C30CC30C30C3CF3CF300F3CF3CF3D0 -:1084F0000020CF3CCDCDCDCDFFFFFFF5304FFFFFAE -:108500000C30C30CC30C30C3CF3CF300F3CF3CF3AF -:108510000040CF3CCDCDCDCDFFFFFFFF30CFFFFFE3 -:108520000C30C30CC30C30C3CF3CF3CCF3CF3CF3C3 -:108530000000CF3CCDCDCDCDFFFFFFFF30CFFFFF03 -:108540000C30C30CC30C30C3CF3CF3CCF3CF3CF3A3 -:108550000001CF3CCDCDCDCDFFFFFFFF30CFFFFFE2 -:108560000C30C30CC30C30C3CF3CF3CCF3CF3CF383 -:108570000002CF3CCDCDCDCDFFFFFFFF30CFFFFFC1 -:108580000C30C30CC30C30C3CF3CF3CCF3CF3CF363 -:108590000004CF3CCDCDCDCDFFFFFFFF30CFFFFF9F -:1085A0000C30C30CC30C30C3CF3CF3CCF3CF3CF343 -:1085B0000008CF3CCDCDCDCDFFFFFFFF30CFFFFF7B -:1085C0000C30C30CC30C30C3CF3CF3CCF3CF3CF323 -:1085D0000010CF3CCDCDCDCDFFFFFFFF30CFFFFF53 -:1085E0000C30C30CC30C30C3CF3CF3CCF3CF3CF303 -:1085F0000020CF3CCDCDCDCDFFFFFFFF30CFFFFF23 -:108600000C30C30CC30C30C3CF3CF3CCF3CF3CF3E2 -:108610000040CF3CCDCDCDCDFFFFFFF3320FFFFFAC -:108620000C30C30CC30C30C3CF3CF300F3CF3CF38E -:108630000000CF3CCDCDCDCDFFFFFFF1310FFFFFCF -:108640000C30C30CC30C30C3CF3CF300F3CF3CF36E -:108650000001CF3CCDCDCDCDFFFFFFF6305FFFFF5A -:108660000C30C30CC30C30C3CF3CF300F3CF3CF34E -:108670000002CF3CCDCDCDCDFFFFF4061CBFFFFFE8 -:108680000C30C305C30C30C3CF300014F3CF3CF320 -:108690000004CF3CCDCDCDCDFFFFFFF2304FFFFF2B -:1086A0000C30C30CC30C30C3CF3CF300F3CF3CF30E -:1086B0000008CF3CCDCDCDCDFFFFFF8A042FFFFFBB -:1086C0000C30C30CC30C30C3CF3CC000F3CF3CF321 -:1086D0000010CF3CCDCDCDCDFFFFFF9705CFFFFFE5 -:1086E0000C30C30CC30C30C3CF3CC000F3CF3CF301 -:1086F0000020CF3CCDCDCDCDFFFFFFF5310FFFFFEB -:108700000C30C30CC30C30C3CF3CF300F3CF3CF3AD -:108710000040CF3CCDCDCDCDFFFFFFF3320FFFFFAB -:108720000C30C30CC30C30C3CF3CF300F3CF3CF38D -:108730000000CF3CCDCDCDCDFFFFFFF1302FFFFFAF -:108740000C30C30CC30C30C3CF3CF300F3CF3CF36D -:108750000001CF3CCDCDCDCDFFFFFFF6305FFFFF59 -:108760000C30C30CC30C30C3CF3CF300F3CF3CF34D -:108770000002CF3CCDCDCDCDFFFFFF061CBFFFFFDC -:108780000C30C30CC30C30C3CF3CC014F3CF3CF34C -:108790000004CF3CCDCDCDCDFFFFFFF2304FFFFF2A -:1087A0000C30C30CC30C30C3CF3CF300F3CF3CF30D -:1087B0000008CF3CCDCDCDCDFFFFFFFA302FFFFF1E -:1087C0000C30C30CC30C30C3CF3CF300F3CF3CF3ED -:1087D0000010CF3CCDCDCDCDFFFFFFF731CFFFFF58 -:1087E0000C30C30CC30C30C3CF3CF300F3CF3CF3CD -:1087F0000020CF3CCDCDCDCDFFFFFFFF30CFFFFF21 -:108800000C30C30CC30C30C3CF3CF3CCF3CF3CF3E0 -:108810000040CF3CCDCDCDCDFFFFFFFF30CFFFFFE0 -:108820000C30C30CC30C30C3CF3CF3CCF3CF3CF3C0 -:108830000000CF3CCDCDCDCDFFFFFFFF30CFFFFF00 -:108840000C30C30CC30C30C3CF3CF3CCF3CF3CF3A0 -:108850000001CF3CCDCDCDCDFFFFFFFF30CFFFFFDF -:108860000C30C30CC30C30C3CF3CF3CCF3CF3CF380 -:108870000002CF3CCDCDCDCDFFFFFFFF30CFFFFFBE -:108880000C30C30CC30C30C3CF3CF3CCF3CF3CF360 -:108890000004CF3CCDCDCDCDFFFFFFFF30CFFFFF9C -:1088A0000C30C30CC30C30C3CF3CF3CCF3CF3CF340 -:1088B0000008CF3CCDCDCDCDFFFFFFFF30CFFFFF78 -:1088C0000C30C30CC30C30C3CF3CF3CCF3CF3CF320 -:1088D0000010CF3CCDCDCDCDFFFFFFFF30CFFFFF50 -:1088E0000C30C30CC30C30C3CF3CF3CCF3CF3CF300 -:1088F0000020CF3CCDCDCDCDFFFFFFFF30CFFFFF20 -:108900000C30C30CC30C30C3CF3CF3CCF3CF3CF3DF -:108910000040CF3CCDCDCDCDFFFFFFFF30CFFFFFDF -:108920000C30C30CC30C30C3CF3CF3CCF3CF3CF3BF -:108930000000CF3CCDCDCDCDFFFFFFFF30CFFFFFFF -:108940000C30C30CC30C30C3CF3CF3CCF3CF3CF39F -:108950000001CF3CCDCDCDCDFFFFFFFF30CFFFFFDE -:108960000C30C30CC30C30C3CF3CF3CCF3CF3CF37F -:108970000002CF3CCDCDCDCDFFFFFFFF30CFFFFFBD -:108980000C30C30CC30C30C3CF3CF3CCF3CF3CF35F -:108990000004CF3CCDCDCDCDFFFFFFFF30CFFFFF9B -:1089A0000C30C30CC30C30C3CF3CF3CCF3CF3CF33F -:1089B0000008CF3CCDCDCDCDFFFFFFFF30CFFFFF77 -:1089C0000C30C30CC30C30C3CF3CF3CCF3CF3CF31F -:1089D0000010CF3CCDCDCDCDFFFFFFFF30CFFFFF4F -:1089E0000C30C30CC30C30C3CF3CF3CCF3CF3CF3FF -:1089F0000020CF3CCDCDCDCDFFFFFFFF30CFFFFF1F -:108A00000C30C30CC30C30C3CF3CF3CCF3CF3CF3DE -:108A10000040CF3CCDCDCDCDFFFFFFFF30CFFFFFDE -:108A20000C30C30CC30C30C3CF3CF3CCF3CF3CF3BE -:108A30000000CF3CCDCDCDCDFFFFFFFF30CFFFFFFE -:108A40000C30C30CC30C30C3CF3CF3CCF3CF3CF39E -:108A50000001CF3CCDCDCDCDFFFFFFFF30CFFFFFDD -:108A60000C30C30CC30C30C3CF3CF3CCF3CF3CF37E -:108A70000002CF3CCDCDCDCDFFFFFFFF30CFFFFFBC -:108A80000C30C30CC30C30C3CF3CF3CCF3CF3CF35E -:108A90000004CF3CCDCDCDCDFFFFFFFF30CFFFFF9A -:108AA0000C30C30CC30C30C3CF3CF3CCF3CF3CF33E -:108AB0000008CF3CCDCDCDCDFFFFFFFF30CFFFFF76 -:108AC0000C30C30CC30C30C3CF3CF3CCF3CF3CF31E -:108AD0000010CF3CCDCDCDCDFFFFFFFF30CFFFFF4E -:108AE0000C30C30CC30C30C3CF3CF3CCF3CF3CF3FE -:108AF0000020CF3CCDCDCDCDFFFFFFFF30CFFFFF1E -:108B00000C30C30CC30C30C3CF3CF3CCF3CF3CF3DD -:108B10000040CF3CCDCDCDCD000C0000000700C003 -:108B200000028130000B8158000202100001023067 -:108B3000000F024000010330000C0000000800C0DC -:108B400000028140000B8168000202200001024007 -:108B500000070250000202C00010000000080100DF -:108B600000028180000B81A8000202600001828067 -:108B7000000E829800080380001000000001010030 -:108B80000002811000090138000201C8000101E85B -:108B9000000E01F8000002D8CCCCCCCCCCCCCCCC94 -:108BA000CCCCCCCCCCCCCCCC00002000CCCCCCCC15 -:108BB000CCCCCCCCCCCCCCCCCCCCCCCC0000200005 -:108BC000CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCE5 -:108BD00004002000CCCCCCCCCCCCCCCCCCCCCCCCE1 -:108BE000CCCCCCCC4100200003030303034202029F -:108BF0005050502070608050131313131342121200 -:108C000050505020706080500301020000000000AE -:108C100000000000000000001F8B080000000000A2 -:108C2000000BFB51CFC0F0038A0F093230688A2055 -:108C3000F8C4E05C760686751C0C0C5BB849D3075B -:108C4000C32C0C0C0CDA4CE4E905E1FBBC0C0CAFBA -:108C50008098850F559C871342FF015AC0C7CAC030 -:108C6000A0C1865DFF3A35043B408581A11C88D9AF -:108C7000941818CC5411E2D2EA0C0C3380FC04A8EE -:108C8000D81D201DAB46BE9B47F1E0C1378D51F981 -:108C90005B0DA169012A7E0B4D7E1B54BE4A074223 -:108CA000DF36C66E6EB50E71F69FB546E5AFB4C63B -:108CB000AFFEAE3D2AFF209AFAAD503E00C5D55B0F -:108CC000A7D8030000000000000000000000000022 -:108CD0001F8B080000000000000BED7D7F7C14D589 -:108CE000B5F8999DD9D9D9CDEE6608096C20E02454 -:108CF000861AFB82DFE577A841878034B63CDF8A9D -:108D00005AD3D6F6BB506C551456BF3EE1F56933C5 -:108D1000F941122262049FDAD61F2B554BFB6C8956 -:108D2000942AAD3FDE024AF1F5C743AAD5D7A22F58 -:108D3000FE80AA455FC4D2D87E51DE3DE7DEC9CEB3 -:108D40004C76930DD01F7FBCF081E1CEDC1FE79EF7 -:108D500073EE39E79E73EE8DEA0BC2C7CE05388EEF -:108D60003FECD913028059D9A771F5BCAEBE99006A -:108D70004721D2D35D0AD0A68009AC6C1D88A41F00 -:108D800094007F6A14565E2D7F3CDE5D097067D1CA -:108D9000D7EEC3FA6B2C0502ECD9DD0C9039837D3C -:108DA0000F453743314011A4B6E277F6937890F53A -:108DB00037109C9C866876FC32F0D1B80015FAA179 -:108DC00022AA07C765F6CF81E47C18072083FDB38C -:108DD000067A593FCAF3721AC795E5C5FA8B55D979 -:108DE0007EBC4F595721A389FEF01FF9B2E26438C7 -:108DF0007FFD35072AB73E5D93AD7F06444A0FFDE0 -:108E00001DFB8F020AC123AF07C4C3D130A4E5CA3A -:108E1000FCFD0C341B5B9FF6231EBF509C989ABF31 -:108E20009E8DA7AE668D9E1DCD3A6402000C64B384 -:108E3000B7963DC3606EAE1DDA6E0148842FCDB08B -:108E4000089EF6B02F5D5489502701187EFD881FBB -:108E500009DF2FD1CC1CEDED279432FCD8F36578D7 -:108E60000C02EF0FD8FC1E64FD0571FC1CF8BA085B -:108E7000C72F63DFAB878E6FCD3CF1F1436702EC08 -:108E80000B23BE4D84017C7A0AE282DE9F9486E940 -:108E900047D05931783F23E1BDA8C6971D97FD0DF6 -:108EA0001A21179F0462256EBEF1F225E2A90CE992 -:108EB0006548AF4FC9F6AB22DD72E0EB4A81AFFEE9 -:108EC000F989A604C3C7DA66B05E73B4936360A67B -:108ED00073E069B568678FA794B27A39FA076811A9 -:108EE000EBC772D52F14BE9B4E10BE9BFF42F0DD28 -:108EF00026F89D49287AF6CF4F129CDEFE72AD2FE0 -:108F0000B68807CB21256DF990BF4B21FE207BF859 -:108F100035BECEECEFDF073FF5B303250E1BA74DA3 -:108F2000C0D73F9FCBBFB5D3D4F46689E4910BCEB5 -:108F300087517EB1769224F0A1F502F25FD1070A43 -:108F4000C05884CF844404605D7583369CFC015D09 -:108F5000F9539FCD775543F9EEE36C18842B14CE6B -:108F60008DA7EF0FCAD1CBACD7583F5A90BD3F1D4C -:108F7000FB2D8D55CC069C1DFDF8C577907CF271BC -:108F80005CB7C758BDD942CECAD43FC911A8009218 -:108F9000F7B2A84FE3B0FA01362D733A7BE2FB1A21 -:108FA000318E34B45F6FBB0128E1F811F0D8725DE7 -:108FB0008627A89F41789404E1CBFBDECFDEEBE16E -:108FC000937F7FB265BF9167BC1E89F869A4F6AF35 -:108FD000087E19C29F79E8BA5FAC33057A4D383DF7 -:108FE000CB47367F9D281F9D349FB0E1495FE4E168 -:108FF000130B52B46E5835AB7BDAE8F925079F6442 -:109000009CF5174B63F83C9438F10B834721BED590 -:10901000393C65D34BA93F09D7F819D88328231EBB -:10902000D87C97D9ED214EEB3584768EA33D9B1CE1 -:10903000C12BC99290FBBCDE0D629DCF6BA8E0F006 -:1090400083E8DF032FEB4F73F627438587CF39DCA7 -:109050001B242EDF58FD0CE1D33BBE2211BC322471 -:109060002C1F6BB7598CEF955FF673BBE86FBD048F -:109070004DBD61BE9E9638F4618324E484C6D799C1 -:10908000573EF991AF669C385F152AD7174BB9F553 -:109090000EB38A621746F2EB9D629FAD0F323141EB -:1090A000B751D1FD74A9C445F742E15D7682F04E17 -:1090B0001C0A6F417C76A6E41B959EBCE104E10B83 -:1090C0007AE03B557C3D43F059A1F0DBEB60B4F016 -:1090D000CB43F15BD03A9A3B4AF8369F207ECB7C5B -:1090E000B69D24E0CBB36EE7097A5BC0F9436176A5 -:1090F00038EE730A85EFD191E103F804FB6BBD6A8A -:10910000990AD96B0013009E6E79D5B2942C7C26F7 -:1091100070B93EDAF1F78C4C3F31FE5B96599D1DDC -:10912000FFF996B75CE32B8C7F90D90A1DF7854237 -:10913000E70DEFB9E6FDBAF49E6BDC13C5FBC18207 -:10914000C7FFA36BDEEF4B7F74CF3BCCE67D7AE1AC -:10915000E3FEFE04F9B152AC97064977E9817CF64B -:10916000FB0C41D7BBEDFA36BC79EA9F29E06A2FA8 -:10917000B0FE44D1FFE70AACDF2BFAEFC5FA652356 -:10918000D73F5DD44F15585FF2F175984F7FCE975A -:109190006CFC816BFFD1A6713F88D9A640F09CA1E1 -:1091A0007E13AB21F5ED3E467BAB35A0B79592DF44 -:1091B00084FC226B0012E837F92624EB7CAC1F6399 -:1091C000C74DF761BD238AA677EBC01724FB1E3C71 -:1091D00010D9DC5D991D6FB59C6C929097DAA2FA5C -:1091E00083E45F493549EC59668575F4DB0C5425F9 -:1091F0005A9696E23C0CDD62FDFCFA8A8B76627927 -:109200009326E9322BFFCB39736FFB0C6B35F0E102 -:10921000CE974EC37AD3C655B592BC3425C44F6998 -:109220005C35E5287B5E7C71561FE03F8B1D6566D3 -:10923000077CB6E9122EFFC5F7CF27DDE54B1A2FC5 -:1092400071B5BF34E1FE9E9D0FF07DC7B9DCFF30E4 -:109250005095FA2F0ED7C72A2DEE5FA0F9EA565483 -:10926000EF66F35CFFE1B5545EDF52ABB7B2F2E7F5 -:10927000AEF4B72C65CFB004BACC9652715CA5F9A8 -:10928000029BAF5AC7768FE73CDB35DBC8BFFF2AAE -:10929000363DF38C5F9C8593CDB3E9EADC70ABFA85 -:1092A000FB13DE60F6D2C0CEA089F084F7CAE9A035 -:1092B0004474DD3909E9621527397D40AA66CF2358 -:1092C0008D3AA07FA4A13169C8ACBC31A6C5030604 -:1092D000DAC9190DF11E411ACC65EFE3BE20DA633D -:1092E000AAFE07EA5F17DF7BE255E3D13FF2E3E630 -:1092F000351315B6DE77345BF47CB4B98B9EDB9BFB -:109300007B262ACC88DFD27C173DEDF9A12431ECF5 -:10931000F9C9B8AF365B91DF06FCCC34423CCEF7DE -:10932000D1FE7603CA113FCAE1745B14DFD7C1B422 -:109330006E40B9C4E5CBC6F8B6DDF87E633D4C435C -:10934000926D3437B745D93CAE2B87E9D8F7CE9725 -:109350001FE3DF2B607A8095773536905CED89FBD3 -:10936000D2814A82FF7CE4E79E461F3093078AEB56 -:10937000185C0EBC0662EEF2AE4626B066123ED215 -:1093800001293B7F852D33C4C746B32AE8DC57CF7C -:10939000DAE76E7F66DA5DDE88ED87F14BCDED733F -:1093A000D79FF392BBCC24DB2B837CC0F1F8AF3E7C -:1093B000260F76BF3CDE67E1BC4D3E4FF6E4FEC2B1 -:1093C000982F8DC6E716813F1BBF03112E5F3636DF -:1093D000733F603E78367EEAAAD8707E03B5B1232B -:1093E00081FE54B5B1270167E1332D9EBD09A79FCA -:1093F000D57EBE88C68FC35FD211DB58B2B4360BA0 -:109400008FB7FE785925793750C6BF77C45ED3979A -:10941000D63AFB93BCDFB5CBC3CEEFDCAF32506E98 -:109420007F3FA22D0DE7683F897DCF4197A532FF91 -:10943000FEF4CB81863B901F057E77BFFC13AD1AEF -:10944000F1FDBC0CC8671BF73590BC453E4379B1B4 -:109450008BF1455F2DD27FFD2BCE755B5CE72E3304 -:10946000BEE2FCC5FAC5A17E86F4601DFEBBF0CB52 -:10947000EE157ED93DCD317A3EDD6CD07357730D3C -:109480007DCF34C7A9FC54731D959F6836A9FCE3B2 -:10949000E6462AEF684E50F9D1E6267A6E6F4ED234 -:1094A000734BF315F464FC4BFCBCA13925FCC06B79 -:1094B0005CFCF0F7F1808BFF3E5DE32E9F6F9C918B -:1094C0005DD7ECEF2763EEF279FA275DE5059ABBED -:1094D0003C1FBEE2EAEFDC0FBEEC2ACFEBEF70D50B -:1094E0003FFB4D77796EDF439EF5E22ECFDAB7C7AB -:1094F000B31EDDE5E2BA43AEFE023177F97E1432E7 -:109500005C4E117F74C45A4B72F2CFE0F78DA12FDD -:10951000B9BECBD47E64FE59D65589FC93F6C52DD1 -:10952000943B26E7275BEE78F9C4A6DB48FC65C3CD -:10953000F197E6ABFFE5A7E1F9A9607EA85772F2C3 -:109540008397EE5EFE18226704BFFC2F1FFC6DF0B0 -:1095500001CC64C42ECFAF5773D877649F061240F6 -:10956000F69D1FED34477B75722A69E6D09F57F947 -:10957000E66F95593F8152E8C0786840C9E3E795A6 -:10958000F93E25A0F1EFC16A93ECB26230A6CB633D -:1095900000AE796C5EF932F6FEE7421F765C089603 -:1095A000C4FA1B37414DE23EA6B8DABDDF7B46E682 -:1095B000FB18FBB9E9879126FC0EA5334798378F36 -:1095C000D7C8136737FDC660CF0B666F59CBDE86F1 -:1095D000AA9319F2019596927D9A0C19D4AF5997D6 -:1095E000B67CA518478338DA8972D884241B67AE05 -:1095F000CFFC05CE9BD947FF21CFCADA3D9BC4F3F0 -:1096000047621D5EE4337F29EA3D3F5C3D7BDC1110 -:10961000E905494BE2FEA9F8830C447F69DC653F0C -:10962000D9F353948499C8616FFC4EE04BD2E34D5B -:10963000DC0FA202CA877CF50FCAB6FFC972ED071C -:109640008BA13F23231C311E6F82631719174E1DF8 -:109650000A87AA2492380EC6AB37B371DAC77CC624 -:10966000483AC6F948E67E2A2966123CAACEE1515C -:1096700095B899C8C14703021EBB1F3B6E26C5FAA9 -:10968000A12F9C856F6D30D184FB256B8C4A786A45 -:109690008FB8EDAF190AEFA75A3CDBFDB9ED438057 -:1096A00056BE1F1E57A761FF6D750D1ADAD78C1DA8 -:1096B00068BFD21E5E523C9CBDBD5ED8BFDD280F88 -:1096C00003180FD785BC8AD1B33DBCAD11D7C1D12A -:1096D0005A8687CAFCFD44E2EEB86E514DC813C7E6 -:1096E0004D139C41A3C413EF9DE06AE71FA7F8EC5C -:1096F000B8364823C3DF21E0B7EB752A294DCF895F -:10970000273EBE5D0EC4DCF0FEF9F0C7DB17F97B27 -:10971000F55C709D2ABCE58BC3DA4F75AC9A4A7331 -:109720007F4ACCB90E3E2BF84B1DABA5483E69F9DC -:10973000BE8778FB7082FC5B5A38614055361EABA1 -:10974000E17A70E0E95AD1EED78A4FACCB540CFDE8 -:109750005C92916A427ED22AD83A9286B6B39F49E9 -:10976000D1BEF3C3FFF712AD93328DD68964B075C5 -:1097700094631C4931AF56D8F31DD9BC46C1F8CC0F -:10978000477232D77A5921E0D116270CAD8A427838 -:109790003CDFC303C73A85EB834336FC568AFC564D -:1097A00085C2BFA640F8ED7118FCED02FEB5C3C13D -:1097B000DF26E02901A3857C990697B300171ACE0E -:1097C000BC8B37C4F825424E314C11DDECEFFF2540 -:1097D000FA29743E1B059C23CDE78D2C3DEEC579FF -:1097E000B0F9DC87F3CA379F7B041C6F285CCF6815 -:1097F000898411AB22559F93AF9E1070F42B228E5B -:10980000665D3B2ABEFAD702E7F144962E8F09BA6D -:10981000EC186E1E8F8A79F4C830F70DF4339E2E43 -:10982000F40E2C71D1E5A8C04F4FC0A6CB752EBA4F -:10983000FC4ECCABD0F93C53209F1DCDD2E5393145 -:109840009FFDC3CDC751FF4551FF25519FFCE74701 -:10985000952B5AAD5AFC9E38A0CCCA8EC7EABDECF7 -:10986000AC776DFB2CBBDEABC80F5223D783ACDECD -:109870006BCE7A605DD08AF6DB5A8C897E02E081FD -:10988000F6AF3688766F52BBC583FDBF25D607B5C8 -:109890005BD73EBFD50A53BD77F07DCB828FEC7A84 -:1098A000EFBAE15D61C37184E04D0CC2F1BEB3DE7D -:1098B00013CAE7A9BF217947B19282EC1F7F699251 -:1098C000F2F74A20D283FEC50E2545FE640C36A071 -:1098D0001F7275204EA92A23F9A3CB2EE6ED7445FD -:1098E000237F6A005270177BBFA154A1F8C862257C -:1098F00019F1A31D21252D0AAE827E590BF63FD604 -:10990000A0FC2F1B9EDB8ABED845FD3078B0DF3B24 -:109910008BA23B91AF364E520DE4AB9D936E20BFB0 -:10992000F96D2D3C7FF0B6F355DA676D7A3942FA5E -:1099300077AD12FF2CD6B74CD5403FFAEAD0472F6F -:109940002D67E5BE96625D3A87E641705B3E48B49E -:10995000CD74E42332B80371CAA7233FDC6D8D3C7C -:10996000AEC37ECAB1FDEA0546BCDB40F1C5E418D2 -:10997000FBDE59A792FD7A5B45D57C1C6F539D4653 -:10998000F6C6A6C5552DE4C7AB0B91BFB2246C48F3 -:10999000E8678FCE519901CECAA5460BDA9B91D9C3 -:1099A0002140BF5349051F2F7206901FCA0F3D89E2 -:1099B0006AF68C76A990198BFD2DC97C09ED99BAB0 -:1099C00000F9E1D9C4F6D78EA39437FE23FF0C101B -:1099D0001EFF441910EF367DA33D83ED87CD638CC8 -:1099E000A60BAC9729AC5EA44B81CC8C02EAF51493 -:1099F000582F5D60BD0CAF17800B87CDE78338CF44 -:109A000023D4D81F9EC7E8C82BACE4F6BBD36EF1B5 -:109A10007BBE8F362FF42ABFC80B9D0373785EE898 -:109A2000F0EDED7CD091E60BE0CBC2298F5C7F6D31 -:109A3000F3F07E63FFB81B62987FD959F655F1BCED -:109A4000913FCBC5FBF2353194779DE5E27BF98DF3 -:109A50004DB9F6AF77FAB91CAE81C4B0742811F0D5 -:109A60001F62B0637E4F8DC2EA47F2D7574B7DC36A -:109A7000E6596A8AD540EB76B18FD66D008501AE86 -:109A80009B0ABE8EFD904A54F37855B4DCB17EFC3F -:109A9000F57B68FDFCA25C06A98EE813473C7AF9C9 -:109AA000C4CB170170942B4F9E4FB6FE99F8C4DFBC -:109AB0002517B47EFC3D05D64B17582F53583DB59E -:109AC0004B2A48AEA83D05D64B17582FC3EBAD9D8A -:109AD000AB727D0E7F68C578BFFF139AABBCF613DF -:109AE00021F7F7B3C3AE72C72C777B75B6BB7DC7C2 -:109AF0006C777B750E6F1FEC800518CF2F749D1C43 -:109B00003CC17552A30D5F3F5237C2BAD2F420B6A2 -:109B10002F510CC89492BE4A0BBD95331E7E9ACA33 -:109B2000D77F959FC7CF6F53F420EE23FFD6E72949 -:109B3000A93C9FC09EEF48F0DAF2F7B7B2B0B7F297 -:109B4000E47D438C9F7FF043288E768EB1506B78F6 -:109B500085E1D1FF2CCF7BF7F6FB8A9A9CA63AF6DB -:109B6000C5CC3E83A4C30F737E99C2F36D181DD07C -:109B70001E5221D158C9FA6BABF0913DA28447D057 -:109B80001B150EB995232F2FEB970213CF53D02718 -:109B90000360FE9B7CDC501C08EE08F4D166BA180A -:109BA00053E54E07180386C493BEE212CF13ACD719 -:109BB000519E95064F75BF9751BF92791B1C2F1A66 -:109BC00045BF4A1FE5CB9CF27E478037087753BFDD -:109BD0006C97547A7C6CB65F7F2C452F314F56764C -:109BE000E4CBE1B908CA37F1C53394DF30214AFB31 -:109BF000B2B5A5D7B9F2C1FF59AD72F98754BDE32B -:109C00005A09E3BA15579B7DC3F079331357E4F72C -:109C1000AC586EF6D5E4AF3798A78FF99E39D64188 -:109C2000879A4CA3FD6E4D0EF3FDBC92227F63A775 -:109C300054321DF32DEC7A4A0593B40CAEC84CD3C4 -:109C4000C2FD5EE7585F1CED5405D6EF93CE62ED82 -:109C5000E4C571A7FFD2FB542A94B79DF3B95D65A3 -:109C60007A12E1147AB26D047E1FD1EE51E3C95C21 -:109C70007ED16FAB7C5FEB0FE5FEDE176A78409D0F -:109C800035146F8F217E717F3B06BAA4FFC3D9873D -:109C9000F2A52AF6BC8478585BB62836DC7CD90657 -:109CA000EAF0205D18897F16321F4179300C1C3F85 -:109CB000CC0507840BF37FEB0BE3C48783F65229B3 -:109CC00088FD98199518DF870457DE32737306CF25 -:109CD00043F897864DA49F6C6E01F457DB76936C26 -:109CE000865EF5113DEBB9FD54C3ED2193FDC179BD -:109CF00044EB87B7AB654FF939D56D0FB535EF003C -:109D0000679E9BF75C85FD4C871A5ECC8D8FC2F6F3 -:109D1000C3B7337EC13CFB8DCD1A22057A9A752AD2 -:109D20006F688E51797DB341CFF6E61A7ADE8C4D9D -:109D3000E7E2F9A7545725C35B57EC81D8E5ACCAD5 -:109D4000ED283B288FEFDE05682F770F96D93690E8 -:109D5000C1DD3D09785E9F7AEB02DCE7770741F8C9 -:109D600015DA16A05D9D2DDFD1361FCBC2CF10EACC -:109D7000BC6F01EEF76F17F90FA098DA250EBD77CB -:109D80005AC04FFC477B576A6FB5617F414594E1EC -:109D90009105EE3298084F50E3E505816DD43F8977 -:109DA0000036DEA7033FE0E34D11F96DB54B46C029 -:109DB00023F7EF5BAAC1FD5DB525143F52E3717433 -:109DC000BFC2ED6304DC05F6034A92EB3B718E2FB4 -:109DD000FFBA1941AF093846A23F4307F9D1EDF365 -:109DE00069CA0BB9F5F4A91EF776FFE8F0A2D6F51B -:109DF0005B7886ED09353927C0DA47CCDE4C252B58 -:109E00004717672C5ABE058E3B3660E7392669FD39 -:109E1000DB7856746E77ACF0D0D15FCAE3754171D0 -:109E2000FEA4507893AA1847F4030F37940F67AF36 -:109E300095257C68840DCA8BB18D21E19CE1E531CB -:109E40006689AB5C5C37C1553F12AF727DF7EB1F83 -:109E5000777D3F513A5DE299C7A784DD6897CFF5DA -:109E6000CEB3C07E0F1627560570DD34404D8AE113 -:109E7000F5CE2F3C44F80F0DAED385ED6605E58396 -:109E80008B753D8F9775FB7B5DBB59CFCA86FD7D7A -:109E9000062F9BF6F738AF6FD9DFA7F2EF28F759F7 -:109EA000F96B9D67B45BF81D5AC96F0B152958E211 -:109EB000A0CFD8F10DAD08DFF8CBD2318BBDEFFECE -:109EC00050E6F2007A62CE7A776ADC0FFDCC943BE2 -:109ED00062E8AF5C77E64331207927E58C07FE3CEA -:109EE000C0F3C5CA42899E00AD77B3BF98F1E1A126 -:109EF000876483EB21E535D4873E8BE7E3AB10DF46 -:109F000067A25D54C3FDD521F19DE85899AD3F4846 -:109F1000574FF9EF34AED77F87491B0CCEEF159B17 -:109F2000F7D0B890961AD97AAFB0A01FCF1F81B0E2 -:109F3000FB26F2A6509A48939F6F12C3A7CCBE4F40 -:109F4000BEB8BFC5CF706D5CA6FB7089542D8FFB6A -:109F500048C00DDA9163A5E3ECF93DA417CAE39B71 -:109F60005280FA7BED990F35215E02997F0283E1E1 -:109F7000ED1F27A5C040FF6F80C315B8AC07483E52 -:109F800057F7109EBDF85A3788F7B40BEF3F0970AA -:109F90007F7E2CC9DB0DD65358BDA943EB75077BDB -:109FA000E6AB68BF4DE178F48EF35E4012E776DDF4 -:109FB00070D8FD7AEBDF1210716D2D4DF18D67CEEB -:109FC000BC21867EEDCE298CFEB5F9E97F4B80E77A -:109FD0005B19C76E22B9DB3D6923C533D7556F26A0 -:109FE0007BF228B323F0FC747765EEF69DCD3C3F01 -:109FF000E65CB8BBB18AD1A7F37999FCB4DE7ADF0D -:10A000000954B9E28D5A857B3FC8F8AF0FE5E8489F -:10A01000FC27471EE0EB72947C8766213FCF50D629 -:10A020008EF6805F94EF0E1C6F13FA9FE47FF9F2B7 -:10A030001E70E64BBE2FF82213E0722658C1F9A31A -:10A04000DB6F494EFAC5D8FBF98E76F9E8968F1F7B -:10A050001E17EBE17D25DE44CA5F49E9B9E4B3127E -:10A06000FBF42F173ACE7BB52B694D47F86B364A78 -:10A070004EBBF61B6632A439F627A1D805BF5C8813 -:10A08000FB1F259E739FFE29D38C6A6CFC9B9B61F2 -:10A0900046359E4B50AC00D6BB59C934D2BEA2DA6D -:10A0A00047FEF27515D7EDC53C2BABD617C76A6DC9 -:10A0B00015BB1AAB0CE4976D9467FAA6BE2486FD17 -:10A0C0000462EA8CEAB194DF9DC079876B59BF0EB8 -:10A0D0007ADBE3DE2DF8F65BBA3959E3F2E034EDD2 -:10A0E0002F200FDE87788C1B590CCF39F65743F1A0 -:10A0F000CCF3043A2B86E0798EE6E0EB00E27906B9 -:10A10000C9FB9CFE0B86E7B35D780686E7A9593C40 -:10A110007757703C77D66CEEAA72E2B966D7DE4A02 -:10A1200003C7E7787E48E3E773438867079C5E3C94 -:10A1300087255BFF7CAC1DF9D6CBF70CEF7F8FF04A -:10A14000D8EF3F0AFC82ECE1B1E313176AE43F4920 -:10A15000D1FEE94E29AF5EBA442B402F758A757443 -:10A16000A7C03FEBFF0BD47FA9E8DFD6B7421FFEA5 -:10A1700083F66F0B501FB27ACBA89E9EA27DF06033 -:10A180003D0B86D5A3ACDD95C447614FFF268C4AB5 -:10A190001FB37EAEA37E34CFF8069C949E67FDDE8F -:10A1A00044FD2A9E7E4FB13DC1C6E926FC81070FC2 -:10A1B0007F663B2696F4F083D2E3927B363F942F62 -:10A1C00077D7CBAFD77AB85E1B6AD710DFFEBC73E8 -:10A1D000CF6EDC27BDA99BDF46BC8E761DD876608E -:10A1E0005928B94DE376209D83B0BE51946E636DBE -:10A1F00095E33D511E7F77EBA3F1B63D54CDF5407D -:10A2000070947A699FB0D73AC6301955CC9EFE44F7 -:10A21000532E3FC3339A9DB7E6B69B7F8373243F8B -:10A220005182FC6BEDB1CFECE863B4331B7B20971C -:10A230009C4F86923FC7F9A9BA65927A15FE917C28 -:10A24000FD9626AC9D7B6792DCEDC7BC461072186C -:10A250004D6BF4C74519DE0E69E4C288A37FADECEF -:10A26000626B3ECAB10AC62F587F5CD33E29992B38 -:10A270003E6EEF7F10881CFB97719F9B9DA47CB85E -:10A28000C53347D8DFB4D8F6EB6F715E87D49E0B29 -:10A29000A638F06ED3E90E2971E179284FE7713ABB -:10A2A000158F924E03824EB098E7A19E7BEC5C8D99 -:10A2B000FC8B115F02FDF0417F8F5EE2E0A3713EF7 -:10A2C00048F68E02FE7AE8DF7D1CF77F611FED778E -:10A2D000BBC3CBBE83F7EF58BA1A9F6264C7ED6663 -:10A2E000FABEC4A17FBCFEAAC17DF4E2C2F265A79A -:10A2F000587328DE9FBD3FC89D7FC018AB06F3860C -:10A3000056CBDC7F7E67D1D7280F618D15D003A592 -:10A31000A4C7C8FE5B27F2D93A453EDB5A91CFE687 -:10A32000B7566FC5FA9B0012E8976C9997A2787F91 -:10A3300054D1F4D638C2919A837A225A6AAFCF1F89 -:10A340002FC4F53958B6BED1DEC0E61B8DD9E58DD8 -:10A3500064BFB5B77079F3D9E00B0BAD7A64C53E35 -:10A36000A2C7A6BA25C5308C3F325CEBCE9F0B55F9 -:10A37000875C65ADA2C455564B270C1BB7F819FA7C -:10A380008966E17CFA208E70E6C9179E12E476B6E3 -:10A390002C4FEBCF60BEC1D96A7CB381E7A8DD79D1 -:10A3A0009CED416E0F3E8A0E218AE30ABEA8E3713E -:10A3B000D5A2B955BD180782319C2F304FD0C90F97 -:10A3C000F9F8E2AF8D1F5FD1E118E65DDCD21A0526 -:10A3D000CC73B965EEAFE21903E56A5F0CF333DACB -:10A3E00098246965DF37CCFD9591CB9F7C404B2E3F -:10A3F0000F22FEC209B2BF223393F4FC6BCF6B2451 -:10A400007ADE19E47A6E8AA0A782F49C99A5E7BA4D -:10A410003A46CF99D975BE4EE9D10AA1E7F9387EFF -:10A4200019CAA1FFA67DDBCD75BE46944306F45242 -:10A43000FEED865A9F0FFBFF6BE1C5862B3C97C94B -:10A4400047A25326817A61435CF1A11CF99BE3C3C7 -:10A450008FFAE87D017CF8C35C7CB85CD0432EDACF -:10A46000D7942BEF6E4A5072E1653DD28BE3A591F4 -:10A47000E3C5F757C1CBA0BED0922B916FAE88A990 -:10A48000B4EF564ABA3A285EC4F41EC61B56C8A694 -:10A4900081F126F8969FDFC7847ADBA15FFE180C56 -:10A4A00072FB445EBF88E2186C6AB82F63E58F0DBB -:10A4B0001B0F4DFBFB9DF79478F3325E0BBAE31054 -:10A4C000472A961423BDF2F5F776F35E1DCFD5DA51 -:10A4D000F919DEEF2B6448E53AB72885346167F651 -:10A4E000AA84871B99AE9D86F8F8D8423C9FD9591B -:10A4F000D13A8EEC1871AE61C5966775C501E70A51 -:10A5000085A9BFE943E763E37705AAC91247FBF4CE -:10A510005E577B6FBBC1FE447B66B7F9430C3E536D -:10A5200049EDC578B37D7E43DD323F436A330FDCAE -:10A530008C8E270577A1E7388E3CD0D681FB6DB491 -:10A54000BF3EC1F8E4B78FC8F156F6F58ABBCF58C5 -:10A5500088E75A0F01E7179B3E6F3DD0362E175FF5 -:10A56000E4A3CF79A12087E714F3D759210F7FF512 -:10A570005E549C8153CF5F8BF3F197C0CFE15E8E29 -:10A580000FB86B6C4E3AE59BCF209DEC7682CFBC2A -:10A59000EDF3B5637C95E07C95899E5D085F097855 -:10A5A0006DFA9D2CBC23F155608D6CE079AE4A2587 -:10A5B0004172B3B3F43A4BDCEB48F99E72CFB48CE2 -:10A5C000B8D74AE4B54306ED8940A949767448DC1A -:10A5D000CFA355BBE5A612739F9B8835253276BF66 -:10A5E000E8BF0CAC5169DCC1F8711832C12896790A -:10A5F0009C14C51FEE2B02F04DF27BB27639FD9E06 -:10A60000F65311F96A98CB4BF7B2C1E747C86F719F -:10A610008F13BB78F8FC1A6F7D082BC62107DEF379 -:10A62000B753E090639FB341DC2B6AE3DFDCB29465 -:10A63000F2CA83E08BD3FE20D661E1BEAF43ACE724 -:10A640004E7CCEC573BCD375DAAF55F0788B257DC3 -:10A6500099FC0CF6B9337B3CFBBC995D6F24FAAFD7 -:10A66000C6F594637DEF0A717D3AF0B5D47FE33E81 -:10A67000C4FA1318780FC5E3CD1F509CFA9CCC5B2D -:10A6800032FAF79F098DA37ECEE9EF931738D6E50E -:10A6900039E21C0740AF9CEB9C97DF0AEC427E78C6 -:10A6A000EA30DF8F3D75F808D9E14FFDDE9746BEF1 -:10A6B0007BEA83E1F31E1E17FB22BBDEE3BFE7F656 -:10A6C000D9E34A6F512EFB2E3B7E9AEF070FBBF961 -:10A6D00015945E19F965E0A67D32FA071E6FD6A4BF -:10A6E000D799FC9927E679CEE13E19F74D23CD6B3A -:10A6F000AB87BEF63CB7D6737B746BFD9110FAFF47 -:10A70000B73EC1E77BB49E9F8FCD07EFAE669EDF5D -:10A71000B1F589DCF86898C7F7C70D7EA334A75D4B -:10A72000EB3967B54093DDE7BB4E317CBBEBB9DD60 -:10A73000B55B89874F049EBCEBBBAEA711DD08510A -:10A740004836CE9708BDFB5D7E92035F6FF932E617 -:10A750006B2C0D9B12EE65A12FF3249B5789A92525 -:10A76000F0DE98E2FA1E6932E677C4781EF937AF58 -:10A770007E2DF3322BDFDC5444655D379E5B84F81D -:10A7800028D5C99F72337A5C48407F732DE627D065 -:10A790007A64E5C0CD3DE7A13F4B012E2F98C56BF4 -:10A7A00028E3E85E3F72D2E4931BEC473A1EC8B63A -:10A7B000CB3B4F4FDE6D00960C2FC796F3FA16FB7E -:10A7C0008372A8C49367A22F74E7A5443DFD4F454B -:10A7D0005BB5AC80BCF2931C670C6CD30CDC67D708 -:10A7E000FAF434D607630CE60D861B9981C4E83968 -:10A7F000460709CDE591F0BE0EA091FBBF33E03CCA -:10A80000A7D350C4E5D584AB6E97709F7134CEB892 -:10A81000621A96DFCC997FD52EE4C76059DF45F2E6 -:10A82000B4037AF7525C20E9233BFCE6DAD631CE5A -:10A83000F64B8B24DB1F28E80F86323B4B7F363FDD -:10A840003378D65F8EFEB1E56EBC8F962ED714712D -:10A85000793512FD4F761C9B6E43D7478BA0DB03E7 -:10A860001417EDAE195EEE0FA5DB36D277E1DADC18 -:10A87000F9BAD715492E796C3F3548419CF1892C9E -:10A88000EE6796C7CF6EBA7F18F9233BEF67866CE9 -:10A890003FE38C1E13E356E3A1C7C473DF8CA7E329 -:10A8A0001940FE3601ED24661E111FC99EFDDC46CF -:10A8B000C14741789EDAB35560E9A45752A03BF2F4 -:10A8C00054CE93C371F45FACD3C3742F12CA4F9E9E -:10A8D000BFC3F3FC8B39480CBFFD80F22D542E838F -:10A8E000857EBF7A01AFC4F80EF3FB0FBC7500F78D -:10A8F0002BE1996E3A29078A28AF2DE43D2772E0B3 -:10A900009A6B687FE3A1E368F3FEBF5F24ECFF224C -:10A910000893DD24DAE7CBDFB3ED7E1BBFC6B108B9 -:10A92000E5ED741C90081F659313F7E3FE0C7E257C -:10A9300003CFCB0413F3F656FF74167D1F1A574846 -:10A9400054225DDE3A50A4B75616922F9948B6B0FD -:10A95000FAC68140BCD520D5E2D3908E7D12D1516C -:10A960001AA751BED6EA7FF7DF1F18265FCB8E3FAE -:10A970000E96158BE29B5DC674CD294FCA42C95F06 -:10A980001639E3F622AEEBF5AF07C3EDB16760F41D -:10A99000F18FD2F120E2F29F5F84F64B17AE019E59 -:10A9A0001747797A5DE5BCFC46D1944518DFE98A02 -:10A9B000F07271F8C8792D246713E4FF5BC3180E99 -:10A9C000F1087BFDE21E4963FC85C3C80BEFFCD791 -:10A9D0002BFB284FFE9EF0FEF3CF40FAC47DE48FA0 -:10A9E000BBE7FA6DAEFB93DED41BDE2FA2F5AAB750 -:10A9F000637C7A62D2CED774C74526A0D660F39B1B -:10AA0000C408E3677838ED626845B6A9BCACB71CEA -:10AA1000F7C96B4BB78DE1E7FD17EA87C86E972939 -:10AA20003E9D0F5EAF9D9E6FBE76BCDDDBFEAE0829 -:10AA3000BF47D51B17F3FA831E44FC9651FE2C60CA -:10AA4000FE6CA7BF2F673CEA8D22EED76CAF5894FF -:10AA5000B81CE7A598730F327CDC5B1AA57D90FFCC -:10AA6000A2DA4B7D0E7BC3CE6753C47ECE5F9A22A3 -:10AA7000B9A86866D719182F7A5EC61505153D3B2B -:10AA800025B4E7EDFB2010AD174FE5F3C579058040 -:10AA9000DBC5785EE1B863DE1073F8C1509E88FDB7 -:10AAA000DB29A0F7B4F0ACA1F49DDFC5F3D0635768 -:10AAB000F0F34D1395DCF41E7F99EEE3F1AF534BA9 -:10AAC000E77CEDF3C53DEF8AA8B47EA6E8ABF7E2DC -:10AAD0003D771D567112E33103FE5417CAAB0DFFCB -:10AAE000E883CD34FFD1E937454FD03D7A15297D34 -:10AAF0003A2EEF7CEDEE48ED0A129E2D9ECFE0FD42 -:10AB00007E7998EB9B9E94EF36FC6E3E9DDAE9C70A -:10AB10007D678CEFABED7D783294BC3CECB0CF75AB -:10AB2000D3223E9A92BC94E4C0405961F72F0CE2C4 -:10AB30002B4F1EF31D11AE97A718AB79BF9386F765 -:10AB4000CBDA78F9A04B16BF1721134438FC8C914F -:10AB500013B82E6EE472E2EE35BBE8BD7263DF7CA3 -:10AB6000FEBDBF05F5EA1D3EB82297DFA82DC2E362 -:10AB70004193CDCC3AD41B93533E40FBF4F688412D -:10AB8000EFC75FC6F1D43509E238EC69D81FFBCFB7 -:10AB90009E4A95F4D2D852A0FB92C6AE01D2DB6396 -:10ABA0006B206DB072D7CEB93BD1BE55AB218EAE06 -:10ABB000EBDD953758680F6CAA0013F5B8FF46B661 -:10ABC000C0587DD5F0A53150BC29B58CEE6959CB64 -:10ABD000D6255263ADD140F6C3D1182F072AF839D4 -:10ABE00098AE331582C3BE7F9CEC4EA61FFCB5FD0C -:10ABF000265EFD65C015D48F7F2EA7AB71573D9D96 -:10AC000053EB1AF310DD4B635D033CDE69C7A515FA -:10AC1000C65F6C9CF62BF49CFE9523A1E4B79DFCCB -:10AC2000C0F891E44C17E613E4C0676798E3F30EAD -:10AC300021E706FCF0298A97B4F8E83E176FFD6516 -:10AC400002FF775B4BFEE10C23AB6FECEF078B0C45 -:10AC5000977FA3E20395E6B348BE1174A43BB39378 -:10AC6000E8FE17BC18F4745A9617943BCEB3DC1B5D -:10AC7000EF85C98867DB2EAAE5F68C7DEE91E12190 -:10AC8000730FFBAED705E87ED1F14DB9ED23B5408A -:10AC9000FBA8ABC8FC6918F30D443EFFD7972F21E2 -:10ACA0007D9FEFDEDABB235CCEDF2559951D489FE3 -:10ACB00049FCFE196FBD83C25E64F620F1CD268B80 -:10ACC000DFBBB5896D7D1E45BEBA9EDFF3C7DEF3DF -:10ACD000730E06D079F1D80DCBB45CEBD51B57CEF3 -:10ACE000B7EE826A5F3257BCA556D0AD24AECFF71F -:10ACF000F1E983E9B0478B6A81EEFFD2197DD0F686 -:10AD0000AD805E4ABADFD858528971A15B6F540D8D -:10AD10007C7F5F65AFB510E72D41EF839823A3F4E7 -:10AD20009A781EBD223ECEE8769CF72EAE7894CE61 -:10AD3000C3DFFE54000275783FA9E7F7D938E9234D -:10AD400067E96CEBAB7CF32BF4790BC397F3F780DB -:10AD5000308833388F220B0CBA1FD9E8253BF4A872 -:10AD60001544DD0A467D2FD72BED2178308EF7CCA8 -:10AD7000F2F2A6F054C0FB6735A597EC754DAFA273 -:10AD8000725175A29BECF369DBF55CFAE153914AD1 -:10AD900097DF24E4895369C91B9AB89F56852939DE -:10ADA000D6D9C12285DBD3AC29C573ADE1E5EDC9A8 -:10ADB000F2C79B42DFE8D97D32F107C92E468F707A -:10ADC000C5A2B764C77D9C61EFF9622F3D3DE59355 -:10ADD000A5E73AA4A723BEA0D52735A49FC1EC249C -:10ADE000B2FBEB019CF7A66FD22C7E0F8361F82C8F -:10ADF000077ECB85DDA77CA0D079DBBB9676D0FE25 -:10AE0000632CEB03F37AD933E7BDD3078B785E78F5 -:10AE10005751624984F27281EE195E27E4C679F2D5 -:10AE2000CF8298871504A6E7908F16FBE0C11C74AB -:10AE30002D8F703CA743E6E722B3F2CFF77129F7D5 -:10AE40007DA276FB83C20F50B81CE6F39D620ED044 -:10AE500079D2819B0AD3DF036C6EFBD02E57E25C64 -:10AE60004FF719D03E93EE7F4AA3DEDD145B4278A4 -:10AE7000BF0FF529DA56B55C4FFA53DC4F0C864408 -:10AE8000F7CA86C4BD1BF7A58E3C8B76CFD11A05B9 -:10AE90003D3E10AC485AA85F8BABFB2C09F56C69A2 -:10AEA0009AE2C74C8F598867E3AE4504B75FE96DF6 -:10AEB000417D99562084FA7C008D4966C73D127EFB -:10AEC000A403F35DFCB5695064DCD70338EFF737B2 -:10AED000602FD9597EA687C96E52FA5A502EB5D71F -:10AEE000EB14D739EDC63E70EEEFD8B8B7E2B81321 -:10AEF0004AD97846567F7AED8D7C7606D3B3222FD9 -:10AF0000674107EEDF6829B1F2C3E1ED1D686F7E8E -:10AF10004B37BF4EFC93679FC1F8E29E48D9E8F9D2 -:10AF2000E2B9B09B2F06FD27C2EFBAAC4E087A30CB -:10AF30002EFD0D83FBCABD7EC0F99F7BECBE3DF7A5 -:10AF4000307CC8A84FC972E9D9F324FBBE1CFDB000 -:10AF5000AC7CE581A92ACABD5F4D90F1EC30F25975 -:10AF600014F9E71DF0917FE81DD81F9DE180676708 -:10AF700084AF13E8F2BFD6E7F03F5EDEC3CBB6FC8A -:10AF8000FBCA5DEEF29761C938B4BFBE7CBB1FD26D -:10AF900012FEDE29F7BEF99108CF37FF0AA43A1056 -:10AFA000CF6BC5F9A46B1E9BAAA2FD74E50CBD1264 -:10AFB000E39F361CCF0A3DFD36E363C3210FAF0A82 -:10AFC000A755CC977A7DFB8CCF9C0DD84FBA6302E6 -:10AFD000FA0FC7404E3DFEA52E379C23CDC30BB7BD -:10AFE0007DDE281F1CCA1629A71FECC588DB0F763B -:10AFF000B2F7B31F45FB7856F6F7D7D9796627DB4A -:10B00000EF9FF2F47B8D86175103AC527A1AA5AAF2 -:10B010006CDC2BE8B7CC8968FFED989FC1DC7547E5 -:10B02000BDAE02EB35FA86A937D27C5687EE8DA2EB -:10B03000BFA84F8244AEFB77CA42C931D15943EF12 -:10B04000E101F1FB820EBD62DF63DFBF08FD7C0121 -:10B0500060FB7B7A2AC407E4FF91D05EEDC9989526 -:10B06000183F565CFC5184F11466F7AE12F6655138 -:10B070008DFBBBD71F747A94AFEB7AE823FB3FAA12 -:10B080008533329E6BAD73E73FDD59F44592BB2BA0 -:10B09000F7F9C9CE5C09C6ADF533691D921FECFA0C -:10B0A00075A7539CF8FA32236EA15C83B8496D3DB5 -:10B0B0007CB7EA0309D20E3FC12AA55FC5F5B68A5F -:10B0C000E90FE7FBEB62B2F1468EDFDF643FFDA0E4 -:10B0D00019E11AC4838F9FA7D559D931CF233D5287 -:10B0E000238FCB19C5170FB37FBF2EA6D238CBD66F -:10B0F0004D29E6FE21B7DC7C57E8A99F3CFC2D9545 -:10B10000EEA3FAEEAB17201E563C2E83C6C67DF783 -:10B11000E10864487FA555D45F576D9773EA77CCF3 -:10B1200074A2BC94ADDC7F79D5B6407A316B7FD503 -:10B13000A3AF9F050CBE775BFBF74CC475F05DEECB -:10B140005704ABEFAC8BD8FBAB14F8BFB9ECA9CF6D -:10B1500047B9BD7DF847454DB8BEA52D3BBF48FD5D -:10B16000F65EEA0F38E2734BA2FC7C2CABC7FDA065 -:10B17000DF91D25372C4EF6CBFFBE1EF481CBE1DE0 -:10B18000FE7410E1DB72BF9A6470ACDAF21EC993F0 -:10B19000055BBF17453CACDAE18ED3ADD8FA610749 -:10B1A000E6A1AC90A17F31F2B37C8CCA474DAD5F74 -:10B1B00026B9CFCF57AF2492B07A3FF8EDA2DFB0D7 -:10B1C000EF6FC7640832D1FBF6BE83EAE3584E86C0 -:10B1D00053B8C35DB5C32DF7566D799DF222741F28 -:10B1E000F4579C8DF9016EBEF6D667EB4745FB69B7 -:10B1F00055EFBAF7D0AE5CB5FD9D5FA3FC58E59165 -:10B200009F6FE37FCA87FAA9DBA29EFB69B61496FB -:10B210003FB1E27B47EFB5D8B887B7FDEE5ECCB360 -:10B22000BFFAA3F7EFFD67B4179E0AEA28FF577D20 -:10B23000F7852838F8F11EB1FEDE9D045639ABF7CC -:10B24000EE7F06D278A0F5DD277F3B19CFC9BDFB85 -:10B25000C81FC719ACFEF54F9E47F7F25FFFC30545 -:10B26000E387B3AB905FD301275C69A2ABB143E244 -:10B27000C6CB13E2E9A1C7E1470654B477FF2041EA -:10B280003FEAB995BD1FAAB83FD963423FE267F7CD -:10B29000F6D7F77C9595DF61F409E4A00F9BFF4496 -:10B2A0001FE96F2626D973E5F6D71721BCABA09FFF -:10B2B000F4E9107A3ECFE839334B4FEFF7A3704CE7 -:10B2C000C57DC1AA8719FDCE423A32FA9D35947EDA -:10B2D000EFE07FE60EA5DFE351F7BD0947E1EAFBAA -:10B2E000CA7163BA7D6CCE3C886C9C61F87B506CF3 -:10B2F0007930127EAF90385C5D51F3A728EF0F6F65 -:10B300002B1AA4EF62A4EFF78E4E46E3ED4D7FFFBC -:10B3100017110FFD4F0674FCFD12573DF922ADB316 -:10B32000777FF89C6A505C07A2D26C5686C19FFD5D -:10B33000C0CA2BB90F1CAE79E0FF2FFA356B7F0D19 -:10B34000EB02F7998C6E54DEC3D61DD1217D61A32B -:10B35000817A335D46F35E99E6EB61657AE7C578FD -:10B360001F8517EFFE62FB3ED02C3DF1BE8395DBBF -:10B370005F5D847C978F9EF6FC759CFF1CF6FD013B -:10B38000F77AF5D65FC9D627E9292F7DD33B7F8190 -:10B39000CF77EF0F28783EE35D71AFAE97EE59FCA3 -:10B3A0008B73F3A38C431DF7F0C7601C4AE0293F61 -:10B3B0007FF0753ED2FC468BBF77A2868B8F6C3CAC -:10B3C0001E3E965BFE4F2CE6726325F434A2E9EC38 -:10B3D000B55714485A132BB3F01E46FB82C17BF8B5 -:10B3E000BB32F9853A7A77931CF7CA8B9590FBF7B5 -:10B3F0006FD516737B71E58E9D67A15C3BBCEB47F7 -:10B40000C49F2B1F7E55C57DC79E2D3F50FB6AB341 -:10B41000EB01F543DA81EFC3DFDF79169707B9FD5A -:10B420005E73C57C563DE1EE7FD5C3EFB9FA5F612F -:10B43000F592BD30D2386F2BE6A538DFB7F7F9E9C2 -:10B440001EC2B77BE5C65C76F0E462BFCB0EEE7839 -:10B450006ED16FF03CECCCFD21BA7F717BAB39FE35 -:10B4600016B4DFF6FB457CD1FC1DDAA5DB9F0B9102 -:10B470009F67FBFECF503E90DDDF631E7CCE79DE02 -:10B480005A1061FDCDE94BCC948DA172A3EE00DB87 -:10B49000EF39F8E0FAE71AC7A3DCC7FDB181BF5F57 -:10B4A0004E89D3392C39BA88F2CC65DDA70773EA07 -:10B4B0006FDE9F3FCCF7937EC698CEFBDCCF3DF688 -:10B4C0001FB47FEF88FB72E2E13E817FFBF73FD93B -:10B4D000EFD74B9C6FAC67793C24DFFADAD81C8B32 -:10B4E000573354DEDA5C17C7B8CFB5C5FCBE9EB182 -:10B4F0006F18129E2D99DB674CC7F917432FE0791F -:10B50000FFDB9BF5B8333E5476D86CC17A67BF0930 -:10B5100071AC87E3E27E6DB4E35AC5FCDCF3907155 -:10B520006B7B092F858CAB9DC0B8B79E8271C327FA -:10B53000806780CD058DEBCDB3F28EAF4EE379639E -:10B54000DEF192B63E10F1055A7AC3F8DBFCA29FF9 -:10B55000A5C586EBF7958192A17BABB3791769A955 -:10B560007326C6EF06CF1B2734C77963F69DCE1B23 -:10B57000B7993C0F96B5A375D025FC1318CF5CE6A0 -:10B5800080F705219F0215A918DA5F9D79E211AFB6 -:10B59000083EEF8C346838999DFAF4E2BE61F48677 -:10B5A000B2E69B339CE792153D23B9E2C8E6EB7403 -:10B5B0007F56BEF6DEF8A20D7FE7CE7F82AAA9985D -:10B5C000379B80D61C706E17EB07EB5562BD581287 -:10B5D0005A1CF5D4189FA75DEE147EA1576E7DA569 -:10B5E00093E2F679F0B443D0F30574CC97D1F64DDD -:10B5F000C3F86F57C44772B22B98FB1EFBFF2CF6A3 -:10B60000B9E4A48AE71FC90FBB8FF68DC6B1974D69 -:10B61000BC1FE9D65A95FC6091FAFD543E6AFAC8FF -:10B62000FACF871FFB3E83C1721EFF53BDCEE9BB1D -:10B63000DBDC46F9B1D74D558DE1F22D426BA6C545 -:10B64000316F425B73761CCF6B876AF8EF61D8303D -:10B650000FE26106DF863CFCF13F58523CAB0080B4 -:10B66000000000001F8B080000000000000BED7DB3 -:10B670000B5C54D79DF0B93377EE3C813B30C0F082 -:10B68000BE8310D1623A28A2363E2E0F0D3E62468E -:10B69000C4A809D6D13C4A2218B436A11B1B2E02DD -:10B6A00082F8C2266BCDAE4D47A22D6DD31653DA6C -:10B6B000358FF61B4C74ED635B626CE2F6D30613B8 -:10B6C00037AB59D365B7CDD6ED9736DFF9FFCFBD90 -:10B6D000CCBDC30C68DAF4B7FB7D4B7EC9C9B9E7B2 -:10B6E000F53FFFF37F9FC77C4AE4089949C8EE2DD8 -:10B6F000840C151342F8B08DB808D95762B2433A9A -:10B70000284F4F1AA6E987F0B7606C6A6DFEDB1907 -:10B71000553322F9CEBC442E48FBD999F73819A6E7 -:10B72000A9F5831612A0EDAD3C91FB69EA96C960BC -:10B730009287E6E55B7C561F4D5D24C3544ADB953A -:10B74000DFC2EDF08DED7F30E711EF5BB45DBA4CF9 -:10B750003220ED2C17324C3A787ABED04402749CD9 -:10B760008E72612DC0690D7F9E480991F2274513A5 -:10B7700021A9F47B5D8F2CC3FC08C90824C03C4977 -:10B78000468DAE5E0F47D6F4178F1DFF10E087B6CB -:10B79000DFAD96EF9BF3CEA17B29FCA22C95986997 -:10B7A00037FB06AF92FC69341FBE2A73302F0F9906 -:10B7B0006E2763FB817A3E5A2FD11B241B00CEECEF -:10B7C0006112A4E327160D1398BF43229249C27E4B -:10B7D00010FEA4D92344A1F592E60E7B9569BA7EAA -:10B7E000FE608E09A719E649D7D1D15CEA2F48211E -:10B7F000C4D63CDF5F40D725811F2222ED2741625E -:10B80000F88F6EF7CF490C3F1A5E7ACA6F490AC6A5 -:10B81000E87F747D5BCEA4F1165DBEBC670DE0DFF2 -:10B82000E2092A30FFC4D90C2F5A79A2344C643A69 -:10B830006E2261F324A5443E4693845285C0387439 -:10B8400048593F9F07547A7C409D0FFCC969588F27 -:10B8500010FA29415E74D57C2BE479F256112BFF46 -:10B86000D0477041DFB2A979F3D87CBCF94C94EE93 -:10B870006A21E42DDD7C6DD974FE5ABFF4DF1E0B06 -:10B88000C900FC7E54BC09DE61A407EDFB3675FEE1 -:10B8900016CF30E2670CFE8A19FE9CC50C7FCE28BD -:10B8A000FCED55DBEFFD2F86BF513C71A63540877F -:10B8B000D178D4EA578CC2AD205DD276847C0AF26E -:10B8C000816AE0DF1E3BCB1F12EFAC06FE00BE9A82 -:10B8D000805F08C9A44D7AB82E28CF1545ECDF7AD1 -:10B8E0001F9507FA7C50930F6C5C97CF5F4D283DF6 -:10B8F000139F891CA328ED9AAB7861BDBA9153229E -:10B90000FDFFA33809EB774A8289FB244DCF2C4CED -:10B9100007B9D966EBB1C17CBB2C3DD84F5B8E49D2 -:10B92000EC8D21DF4EABF335373B671C9D111F8F2C -:10B9300066810463F1FDDBAA7C6B1B7CEA8C99D2E7 -:10B94000072F09929DC20B4CFFB6B6BEF9B43DE974 -:10B950001FF2F9609C441CC7A5C2E52A349156DF4A -:10B96000C4701E57E98A6FB68F0B270F70C69033CD -:10B970001A9CED00A7273E9CCE9C0AA453BED985F5 -:10B98000E30C8A125B0F4B936D239D9FAB35496A85 -:10B99000A5E92EBEA9AB0ED2210B5168150B91CF94 -:10B9A0005450B8F969D309A1FD745C9A659B04B43D -:10B9B000DFDC43023A391F74042F89B43F5E0C92D6 -:10B9C00020859377293280F1AC4A07DABA91A264D4 -:10B9D00042E6D0F182FC0C90A7CEA080A9D68F467B -:10B9E000274E8B4CC462E8C7248740DF416773222F -:10B9F000F5E6BB19DEDAE6860354F691EE129EEC0C -:10BA0000A09FDA8B28BD24D1BC45EEAAA3F8E87E1E -:10BA1000D5427A757CA08D9BEB66FAC74E6A93C2BD -:10BA2000D0B7F9B037388E3EB603DE68BBE60BBE42 -:10BA3000EFBCA2E115FE15133CEF38917633809FE1 -:10BA4000DF27C5AB4DA6F8FDFCAE45FACE2B3A7903 -:10BA5000D54C98FE20444A5F312D7EBBDD2D6446D7 -:10BA6000416124BF870F213EBB5DBD5DF9749E8A95 -:10BA7000DFE42FA4EB45B24B0D788A4E096965725D -:10BA800070CCBAAE96C2B47D779189B702BD1690DC -:10BA90009019F092ED41BED4D635E8607463F13070 -:10BAA000396976C998DA008F20EFCC7BBCE3C96B8B -:10BAB0001BF0490C3C16B9291E3FF1DF0F8F1E37D2 -:10BAC000C1D499509304F8232FEF22D23400C3C875 -:10BAD0007F5A3B8DDEA3E75FFDDF7CFE1A9DC4AF7E -:10BAE000AF68F6103F48AB660549A89BC37CC0967B -:10BAF000864D29E854A5D8C2ADA09A72EAFA334E11 -:10BB000011D0CFEDE23B36145DFE0F53C6EB9F27FD -:10BB1000EF68F83447C6D3E3C7047AE78C25748C02 -:10BB20008BE02941FCB47790DC089E9A6C208F3A18 -:10BB30005D5BCFF84A2378EACC7E4EDCA0A3F72BDE -:10BB40006285E2A6F8D809766D0C7972AFBBA21DAA -:10BB5000CA05536C797E48956B5480F30BE9380B1A -:10BB6000468C789AA7E2697EFA3B8FC134A994E4A7 -:10BB70000915C815017F15E0AD6A4D00C882085946 -:10BB80001F7C2288F45025025E3865B2E943E78DB8 -:10BB9000E32F1EBE5C1C09C482FB19B1E6881BF4AE -:10BBA0004931C59BCEFEA08421A27CD4D6C5E5999F -:10BBB00080AED8BABD7C31DDA4D0AA9D5E5308FC0E -:10BBC000190B69EA02BC93736602765A5A3803CBA2 -:10BBD000ADDEFC10E8BBB4B09DC8E82788213BADC2 -:10BBE0007F70ED5D7ED443D76F23614A3728CB4009 -:10BBF0008E65CB61B0A779512A374B30CEA336F092 -:10BC00006F3ABD354984D9DB24961ED8E20EFE007A -:10BC1000D68DBF3E1FFB33D998DCBBD1F97C69655B -:10BC200022013BC07E810B812E3BB0727ED77029F2 -:10BC3000C8CD841E2B4DDB78250C7A4CB96097005B -:10BC4000DF5B0B95DB4D342DFF95BD88A7DFBB383F -:10BC5000871FF0D05548979CF6F3BBA79C2142F371 -:10BC60003B572E1F49827E8E9A25287FF2C3A64F0E -:10BC7000823D65FB603FFA8736D53F247CD32C5844 -:10BC80003FFB479413BBF91EA4FF5D05D36D7AF902 -:10BC90009EEA080E035EB4BCDD4BE5DB0CA4A7B73F -:10BCA00086293D99148E7C48E9D3E6DAE63D25C124 -:10BCB0007CE9778D3E7C917A11BE35E63D14D760E4 -:10BCC0006712726431D8919D206FD06E250A07EB00 -:10BCD00096C1CADF3FB06231D8A19D76AD7CE562E6 -:10BCE000599F57FE7006F3AADDEB4FF6EC82FA9EE1 -:10BCF0002CD2C4F01320AB74F64C41328FEBD6E754 -:10BD0000967FEFD6D9CD1A5D761530BA7CF9626789 -:10BD100035C8CD4E4A975609E87097C14FD6528D17 -:10BD20000E3B0B189DC5C3BBE57A0909EBEC408BB4 -:10BD3000A707E9D1E609A01D1D5D7F450AB363345D -:10BD4000FAB77909F2834D0A3E753FF287CB0FECC3 -:10BD5000672D68221CA5138BC8FCE189E6110F3EF4 -:10BD60008DFE3B0BF215A0D7F745E227E3D4B75C75 -:10BD70002FC5F96C71CB93927578F4E451BCC798D8 -:10BD8000CF5792D97C3A027581FB69BF72BDA4205E -:10BD9000DF7889BF1BF412257FB03BA9BDF9C9E448 -:10BDA000543D9E983DA2F5AF704D8316E0730F6D24 -:10BDB00047BFB6939714587A8B2764E0EF2FA604F9 -:10BDC00067EBFBE145E61F2E34BB4CE423E0673F05 -:10BDD000F5CBC293A99FD82262BAA7C58B69578BAE -:10BDE0008469778B4CC256EAFE90EBE7EF053BDBAC -:10BDF000E540F826A28B8E163FB66F6F99CDFAE11B -:10BE0000343A9FBA0BE8C261D2F8C4BF0BE83CC910 -:10BE1000AC959761BE8763E58F242F58AC14E37C03 -:10BE200050EE754D30AE395486EB77F3FDABF25BD7 -:10BE3000C5DFFE798F54E703FDBD6126FA38C618C9 -:10BE40007A09B3F16EB4FFAE6C13CAD3FDF3769EDC -:10BE5000F1D1BCE575DAFF78F4D8C3FA8FDB9F0621 -:10BE6000EFE02E84D74AD7DB4EFBB38A4CDEC7E324 -:10BE700087E8F9D294207F7808CAE9FD836BC9CBA3 -:10BE8000C09F7458BB087C1A9021DE25B4531CFB5C -:10BE900041DF06C2CF80BEB571E418CD0B2ADF505A -:10BEA000B5AFBC4CFB11641BE9A6ED06E7DD45A070 -:10BEB0005DE72B360A13A5D3947CB417EC85B5A4A3 -:10BEC0008DD6DB596D2766FA3D69FE1A02FDEDFC41 -:10BED000991DFBF79D9982FCBA4B647C34A11CF23E -:10BEE0009A4858AFC76D8E483E1FE4E57D24300D5B -:10BEF000F9FA693D5F533DD90BFC24902A8570A067 -:10BF0000871FF0333B4451E569E05832DA81016C18 -:10BF10001FB10B9B8808FC7ACE1CEA06BFC4DC80EC -:10BF200046DF22F361DB30F2B5BC3CA38C10170373 -:10BF300081ECF287492EE025C34C6D31204B818482 -:10BF4000A9DEE8A1FF007CFC85AB17C8AD84A4AFD7 -:10BF5000110CF3E02F382F996E05F8587D4D0FF135 -:10BF6000171A1BA13E4F74F5D19FA94B1ACF2F8CE6 -:10BF7000B6E30793557FD0497240EFB5B79C206F69 -:10BF80005B22FDF05171252DD5ECF9875358DC6209 -:10BF9000949E2446DF2F503F1DE8B1E31766D21B65 -:10BFA00083BEAF27FB0CF66E46D014991FFDF795A4 -:10BFB0008BD68A8306FA1C7FFDB3EA8DED739A1C3B -:10BFC000063CE635271BF23E25D3507F5257BEA1D3 -:10BFD000BCB067AAA17CF2A1E986FC94D0A70CF5BD -:10BFE0003FD15761C84FEB5F62A8FFC91335867C0C -:10BFF00049F86E43FD1967361ACA670E3D64289FDB -:10C00000757EAB213F67F8AF0CF5BD41F1E409E067 -:10C010004F4A8F668AAF5D19CA21D09FC36DD48EF7 -:10C020009BCFEC63D0B7249BA8F631554C694057A1 -:10C03000ECAF1DF400C8F93D8F85BF807AD2E407CC -:10C04000FEE50B16C91BA15DBB68225E9D1C911607 -:10C0500011F85EB1C78DDFE5D256E40F81AA0D7BE2 -:10C0600022E86DE37A10F376D20FF0BDC1E0E3452C -:10C0700025A67C12B28DF46F25F72405C6B1FB2CE2 -:10C0800092B1FECDD2BF2F45A5FF1C4AFFE689DB4A -:10C090006B74FF90499E9CC2FCC3AA731E83DF830E -:10C0A000781DF57B6CA41DD8A9BC6E24EB14ABAE37 -:10C0B000FA3756D3879FB871FF269ABF684A714EE8 -:10C0C000D7C9CBE4B566DF8FD587330CF65974DA60 -:10C0D00096F810CA3B2A17CB530C72315005F31354 -:10C0E0007819E5A2F6DDD73715E57297C8EC944EBE -:10C0F00089F2E538F88A96CB5F4E9698BF18473E8E -:10C100000B54CE82C2DDB9F2D35D8037791B41BDBD -:10C11000447510CAD9E8FEA95D7537C2E965F4A473 -:10C12000F9439ABF65A3F203FC2B9B44105F568A28 -:10C130002F27DA478FA27D49E721817D64F550FBE7 -:10C1400013F43DB53F99BDF9E7B52FF361DE7AFBF6 -:10C150004FD5972187DC94921ABFFF17E3EC479DD8 -:10C1600049D6FCEEFF9EF427A718F1A1D1A146679E -:10C1700056203A3ADEFB125B77DA2291D3F62F246F -:10C18000F84F10E9E5D4ECB34A25AC5BD0255BA9A8 -:10C190005EDD37BB06DB0993780272266178C33215 -:10C1A000D093A494C90985FE03F4E62836CA0D5B32 -:10C1B000941E15401F278ED5BB9A7CD0FCF389E4D2 -:10C1C000CBB752D438D92C324B2F5FE2F9E19A7CAD -:10C1D000D1F0B0E0831611ED8E0F68B9664FD07EB6 -:10C1E0002C397C00E2CC829FC84762F0DFCBAA5E8C -:10C1F000EE3B6997812E5D6B04F4B332FDE172C8AA -:10C200006736113FE067F670980469FF3FF4B0F5B8 -:10C21000C8F48738B0CF332F873880F3A085C58521 -:10C2200032B785387DDCE89AEAC7FDEEE2A37E5896 -:10C23000F78A3C17F2E9671713A48F21EFC69E72A5 -:10C24000D857984BFCC03F2E0F4F32217FDE1A4249 -:10C2500079E21F51A8AF4392E944614DAFB490E930 -:10C26000F751FFFDDD161BA6D75A444C2BF38A0766 -:10C2700017D07A5B7D0E8C1774E43B709CCE5C010A -:10C28000C7F98F9C87F2C02EF8758B17EB773DDED0 -:10C290005404F184CE93FF8971CD083D53AC7901EC -:10C2A0009E30EEF710BEC90BFBBE49F20CDC27ED49 -:10C2B000B404FF7103C413D70AFE6331F837E9E50C -:10C2C0001FA19F0CF8013CB4DB195EACCE26BF1B4E -:10C2D000E2FD93C8FA15B1F854C513A530B340E98F -:10C2E0003789910611E686DA1241AFFA493F059B7C -:10C2F000583A421CEC8790074509E245D9B6D02050 -:10C300009467D78BFE36AC4F705F415B278B9D04E3 -:10C310008EBBA05E98DB42BFBFE811D9FA0D8570D5 -:10C32000DFFD37176E1FCC21F1F97B4F4BF5D92A72 -:10C330005D3CD64562EF0BFFCB6D15160FEDF77622 -:10C34000806D26ACF7AC71F5E38DF67BBB8753E3CC -:10C350001393D3C15E6EE663DB996691AD0FC47F24 -:10C36000C08FDE5A28A5BB5DFA7E183ECC279FC73A -:10C37000F57116B3F9B77DEF8DCD8F513AF977DAB4 -:10C3800010E255AF5CFC0CFA8FEF254BFBC1EF526E -:10C390007E6C26B0CEEF7D7FD669589431F36E392E -:10C3A00093CCEBE249EF7DFBD5320BEDFFBDE75EB1 -:10C3B0002DE3510885101F5A79E387AF9541FC4A58 -:10C3C00068FE4DE6650AAF52418A9A204F0D68E635 -:10C3D000876E591A1E076F07D31ED802F1C2509BF1 -:10C3E0004BE4A8BDF625E71F05A0C766809FA60FF2 -:10C3F000DB4676727489B9F4779754D1FEB6728AA7 -:10C40000E2E2006F8A15FC0A72C1EA07BAD95AC87B -:10C41000F4E5D607C59002722CDCC4C8DDF65AE6F6 -:10C42000652A87ED3F0DC11900D2CE052A13207E63 -:10C43000378D20BDDF76AD290FF695DD44C8073A6C -:10C44000B498CCD8CFC84567A817E56FD32C9043D4 -:10C45000AD171F9D0CEBF57B55BE6871B73453D3F8 -:10C46000813A1FC4DDFC1877DBCDF7639C3EDE7C90 -:10C470009D5EB6AFC0571235DEF5DBEE7076841EDA -:10C4800034FE8A6EB7B785F861BC975A6C98BED0F7 -:10C4900022627AA2C58BE9F75B244C075A8A30EDF9 -:10C4A0006BF1FB0B2C00E76C4C3B2C647D40476729 -:10C4B0005FF0B0FDC87B92CABF0074FE24EDF73276 -:10C4C0006DF745DAFE32AD3FAF366C86B8CCBC11A5 -:10C4D0002A2F2528EFC2EFFB697F506F6CB9AD049E -:10C4E000CA4BABFBC380C7D262FA9D407F7D587FA9 -:10C4F0007FCB093F2B1FAAB450FC96FE96953BE7D5 -:10C50000D27E68DEA9F643C72F61F567637F745C4E -:10C51000CCC7E8B784C173A224163CD1F5A9956FA6 -:10C5200026548F88F0BFE0EF59240EF75138123EA1 -:10C5300006F2F882B51CF4E79E12926FA2FACD9231 -:10C540005AC041FEA966229A4BA8CACBA8D9554E1B -:10C55000A09D8CDF95557CE8980FF513F6ABE9A705 -:10C56000E4EA30EA9D243FC937BB69CAD381A753A7 -:10C5700054DF4722E70D503EB13CAE076D2756937E -:10C58000C8790332717DAA5FA2CA63D3DB474D210C -:10C590003EA63FF771701EB1835F4B7DFD7E924BCF -:10C5A000F3AA7DF645B5DEFE7965491B21BFF8810A -:10C5B000A7200EFE1BE2E5603F7EB47D943D77B878 -:10C5C000E54C5A55A1AA1440DE6F138FE8EDDC6CE0 -:10C5D00085D2AB8E0F7A9AF8EA5E8C2F04336A7498 -:10C5E000FAADC312CCA0CC4BAE3FF18F8B413E8055 -:10C5F000BE06393D7784E9F751BDFE5B261F357BCA -:10C600004250D76B9FBCB12D01F7D3A83E92C0AE6C -:10C6100008920ADA3EB17CEBCBF09D9418BF270854 -:10C620008C8F32BD210EF2999EC04F3CB0DF907CC2 -:10C63000487E86CEF7B7035609E8AFEFE4DA7A888A -:10C640001B3E4C12253BED27F3A54B02C0D1611ACE -:10C65000168008473CCD4B786A0775089A9CA486DB -:10C660000F5DFF8E34552E90DF7757D1FA074DC1FD -:10C67000AB54578ED63FE8086E813CFD936D54AFA6 -:10C68000EF1D8DA36FEB96294DEC55E3E6239ECF6E -:10C69000762BD990A7F5DD2CDF4EDBEF750F794DAA -:10C6A000349FC86DE93E930379ADFE966E85B6BFA3 -:10C6B000EA61E700882BE803B9379A17693E41978A -:10C6C000E7599ED858DA77F23F05D0431D6923A772 -:10C6D000B3009F3FE4FA41BE36BEFCF541C86FAEE1 -:10C6E0002712C4E7324F1CC175F8AAB97C04F0D6F2 -:10C6F000D7724644431DFEB475A176EA142FC17863 -:10C70000B210E242F960BF15F798D07EDB4E49B017 -:10C7100004F0DD9506EB5C91C6FC812921DA8F8E51 -:10C720007FA650BEB34E0775651919D6FB5BC46F63 -:10C73000027811E5F01FE57F2F01FDD4375B714CC6 -:10C74000A5E36DDAC0FB5B25D03FA15601D6FF04FF -:10C75000877AC2772663C73768FE5A7F4A2FF81B4D -:10C76000961D8C3E37F9FAD3A6D3B4C3CEE86293B4 -:10C770005BCDBB8DF976D59EF4BA157732FDBEF947 -:10C78000C4815C3000AF1E9B857EE4660D1E720086 -:10C79000E1B93A3827E9363ADFC69FB2B866E340D6 -:10C7A000C912987FE31E13013F6EF300A5271D7F7A -:10C7B000ECA37C284FA6F3907BA6F2943E02070BD5 -:10C7C00096DAE9FA7E3D5F16015FF569B7EEB6517C -:10C7D000E7E8EB823805E8A13EAD7437D0D3A6393F -:10C7E0006F213D26A596FEA49AE2EBE8DDD54B40ED -:10C7F000ACA599185F5282433967766F43FCFF6B93 -:10C800003919B1BA119DB8CF9907FF47E19B2CCADE -:10C8100015505F5C465D22A053217012EC10A5C23A -:10C820008671D20A711996E7AE21A66E0ACF112938 -:10C8300039B99536B517C826B053F2030E8C7F9AD6 -:10C8400013AA76803F7AEC1CCB47D6E912E2C55199 -:10C8500014EAB7D17E6E71F122F8226966D906EB2F -:10C86000467979E85829F00BB303942F1663BCE797 -:10C870006022A97F8EB63B6ADAD8FD235AEF68B2F0 -:10C8800087805DD9C171EB6BF07BC5D4AD743D8EF3 -:10C89000AAEB6776FB4558AFA36E637E2FB7F141D5 -:10C8A000C0DB23A92F2E81F9A559E59E140ADFE7E5 -:10C8B000525FECF666209EF36DB4FC737FFD42B7C9 -:10C8C0008DE2FD68AB9C29EAF293FF40A536CEE3EA -:10C8D00005E453DEFDC587808F69F98F6D54FF7EB7 -:10C8E0003D59B307587941BEC6D7D4AF9D4DE168D5 -:10C8F0001DCD2BB622D8F78AD4AFA27CFED5A7CD0A -:10C9000044EB1FEC09C79C7E9BC38CF3200EB067E1 -:10C91000A6F168CF38DC6C5D1D53F2D14E3A6A67E0 -:10C92000F81AC93161F922F3B322C407AC53781362 -:10C930009EE5214D01D0CF7C364F58BCF7B03C4529 -:10C9400082B029DB1FE47A56A07F682FD2ED071250 -:10C95000F0638DFB877C54BED03A9C61A27AD87379 -:10C960006105974BFBFB6CAAEA2F7A4806C4631F4C -:10C970004D6572E6D18072BB45021A1B66E75649C7 -:10C98000603AA4E9EB0AD2C73BBF32F65C4018ED2F -:10C99000B23D2E938AB749BBC305D45E763D27824C -:10C9A0001CA16A7EC761D06F1E1EE9A610F89FE623 -:10C9B000B7B9591CDED7B7E44BB3C13E7CB5D00440 -:10C9C000FCCF8B7E11CED99527942681DDC68FD2E0 -:10C9D000E9EB4BC240378373EE043F5000FEA59F46 -:10C9E0000FDBD9F9D0910CD20F7161DE2B13FD3E14 -:10C9F000A1C6BF3B5B6C98527FFE5DD01F5FEB22F0 -:10CA0000B84F2078039897DA09077CF1F2A7EEC6B1 -:10CA1000719FE10349EB40DE9E63763D900BC63982 -:10CA2000C24F7010E778DF16488279EF771BEDBFB1 -:10CA3000B23466C776A632F9D9D9C2E2A0C2F54FA0 -:10CA4000605CA7C3A2C923D7D2F05CB0E783788E1D -:10CA5000D61ADC2683BCB21145117571725BB631F2 -:10CA6000DE255CBF95C58752D938D1E70D5C9CD6D1 -:10CA70007FC1EEF1FC032D8D3E9FD04C02288FC864 -:10CA8000103BF7B06D57657AB2AE9F6D9C9C2E8EB1 -:10CA9000431F0F5F379390EE9CCAC3FC8800F37965 -:10CAA000F8BA80DF897738B115F66528C175C33AC1 -:10CAB0003EFF5DD44B0ED213860373568853E8CEE7 -:10CAC00085122F3F324AFFF911FEC07D752E067F79 -:10CAD00048C67CF47EFAA3E03BD37F77387F2DC035 -:10CAE0003CDFAB242360871232BC08F8B7B1D28197 -:10CAF00071EA87498FCD06062EDF23EAE3C58D0351 -:10CB000097123794E23E960476F0C32F951BE254B9 -:10CB1000DAF9302DBFF9C4068C1F3E7CF49A30B58B -:10CB200014C118B2507FACD1D673C69A1FA96FB783 -:10CB300004952CA0FF975AE52CFAE95B00279CABE3 -:10CB40006A9E340BFCBFDF8AF519802727AFEA8F76 -:10CB50003536D41FED76EAAF019D5E9C8CFA9416B3 -:10CB6000F3A09FB5F15778181D8EA8FE7C023533CF -:10CB700001BF1D8EC01566B41399A7F64E47B24685 -:10CB800037CDDDA0FF0E0A11B908933DE860F9E446 -:10CB9000B4E6EE76A687B1FEC893FC6EB0873AEC99 -:10CBA0006ADE43307F50E8413F41F9BE5502380FFD -:10CBB0003A027EF007951D5324D02755E92E9C8715 -:10CBC000E5EFACBD200F333DC1AB60B7100FB38FA5 -:10CBD000DE4BBD904B5C31FB19E16EA41FAFB11F62 -:10CBE000FB5C36FE7B9C39B0A334528FB60FE3B9A1 -:10CBF000807B6C18FFD1EA1FB618ED642D9D92C69C -:10CC0000E20C204F80AFB5EF42F03EE45F2B69426B -:10CC1000FEB57A8DFB451A3F0BD7A718E297DF4A7E -:10CC2000F5E1FA687240B85E8CE59D2A9DEE847D40 -:10CC3000F471C7498E33CE0C9413F1C72953E5081C -:10CC400051E3493C9E33D3F824BEBC30C671A3E502 -:10CC50009F966AF2EF884AC7FF600F2E4CA3FFFF32 -:10CC600050A87F91035B076F85F5F9A36AF716F566 -:10CC70001D3809E47745945B5353E13C957C1CD205 -:10CC80009BE59BFA3436DE5839C6E20FDB1E945022 -:10CC90003F3FC3FB1DFE1870D75F771AE4577EAA8B -:10CCA00084FDD5F30ACAB1FAEB8958FED1FBB793DC -:10CCB000D08CF1FA7761F968FFFDACFF973FF5E39F -:10CCC00083B3A1FFE3169355E7CF6D3BBE301DE262 -:10CCD00095DBEC542E1BF95606BEE57D64D40F029D -:10CCE0003EDFAFF945CAA2DD5573C16ED5F1F96CCF -:10CCF000B0BF22ED79BACEFB1D5AFB3B77833D34A2 -:10CD0000A6BE33AA7EBED6FF6AEC3F1A1E4D8E40E9 -:10CD10001EEC2DFE0F560D3E9443074C51FD8DCA5F -:10CD2000A520F6B7690EB33392FEBAFE270A0FF4B8 -:10CD3000172ACF023BEB4122C139E768BC27A9740F -:10CD4000587F7D92615D23F8BEC5F0FD9F5BBC24DA -:10CD5000A4E3B7CF04B72D027E4BD2D689283BB1CE -:10CD6000DDE12C12D2F1DDFFC0F151E1B82D0E1C36 -:10CD7000F3FFC270F80C7C1981A3C0F0FDA3C2615F -:10CD8000B65DCFBCACCB5B4492A5CF97846D599771 -:10CD90007576CB8C33A2213F73C86BA83FEBBC6484 -:10CDA000289F335C6428BFED8ADF909F3732DB50C9 -:10CDB0007FC175D9902F278B0DF52B6D2B0CF98525 -:10CDC000E25A43FD696A9CFC76EF0643BDC5D283F7 -:10CDD000867A4273CA77C07E59F0C1021BF8173BAE -:10CDE0005DA6EA10C5CF4E3E684B8E211FCBD47E88 -:10CDF00047F59D370DDB2F149BDA411E2EA4AE7034 -:10CE00001BB5D7D2EB02EDA0F7AB45229AD16F0E3E -:10CE1000B1F8C9072BABE0FB9D8B89D8ED8EE46F91 -:10CE2000FF2B42206FCD96F15C9BBDD884E7067640 -:10CE300017D78CBBFFB04FB5DFF744E9FB51FA3190 -:10CE4000B3F393D1DF8BD3195D1D58B08FC03E81F2 -:10CE5000CD15C27B3E8353767A21FFA505DFF6828E -:10CE60009FD135E5112FD04F67CE570DE7F21C0546 -:10CE70006C7F26BADFBF55FB2DB8FEA80DF4E7EE98 -:10CE80006C86CFE87ADAF9F4DD361637FFB8E6B902 -:10CE9000F8639AE7E5746667EDB68530FEDF5DF40A -:10CEA000F1C07FAF3ACE81058F1306EFE3780EB95C -:10CEB0002B4790F47A564BE1DE28CCA7D3B7D30B9F -:10CEC0007AB7CBF788C1FEB7C27C628C63F3323C81 -:10CED000ED163FDEF93CFE27CF6767CC7D775B9C84 -:10CEE00079156BF3F2AAF7283EA6793DF5179E5700 -:10CEF000581D2F359DD9A7BB25C64749E6C0CFF39E -:10CF00007DF1F92F69B6F19C5282DFE807E417043E -:10CF1000C63D7F745EC54F3C7E5D635152018ED726 -:10CF20005BD839DB7380479A9E0F4EAA80FB0AAF0D -:10CF3000C3792D0EDAEF48186F1DD606CD063827B7 -:10CF4000920F25E9F9888FD56B8CED56059CC6F3B9 -:10CF500052EA39038AA7FD105FD6F036669DFF4C72 -:10CF6000788A476F378AA7EEA29BC3D344F49D9A71 -:10CF70002E21BD4C84278D8EE2F5F3FF2A1D2DBE98 -:10CF800071FC20FD7CDCF8F9AF463FF7A64B37C4B7 -:10CF900067FFBFE2E7F11BC4CFE8796B81D4C73AE2 -:10CFA00007D2E915900E27734D6717839FBDD88C64 -:10CFB000F1B3D70E1734927C7D3DA6075E5B36A990 -:10CFC00011CF8F553BF1ACD65953EC7E5F53F1F145 -:10CFD00090D7AD9EA7F3A782DD7BB67AE5B8F322A2 -:10CFE000CBCCC6F38BC411999F99F64BA40A8C9FA6 -:10CFF00051BC1E1B67DDB5758B37DE8DAEDBD9EA04 -:10D00000B69B5A376D3C8AA798EDEEF6E6DF10DF47 -:10D01000C309768637761EA0EF7166B7F701BE6941 -:10D02000BFBF84A20CB0FF09C6FD56AF493F02F056 -:10D03000BEE665F1F001416AC47741562EDB0DE78B -:10D0400051CEAD727310D2D0E038A6AE67595D6C88 -:10D05000BBF339B53CD29E2393A5B1F58EA876CF0C -:10D06000AA3A0EED07C2CB39FA773FFE21AA3CBAA5 -:10D07000FD4BDE442C3F17E73CE6B7D4F6AB6BC75D -:10D080006F4FEA53F0DC1F21528EFE3EFA285DA955 -:10D090007CB0C21BFCBE97D67F9D0B7EF973104FF0 -:10D0A0009DE2C2F33D84273ED8F71FED8797F1BC80 -:10D0B000C6E54686F7E87E75FD85BDA9F1FB8B8741 -:10D0C0005F6D5EDA78A524807E1DA926E27E36BEDD -:10D0D00019CE39DC59499A707C5E427852DEA4FE42 -:10D0E0009C2F421F174CD23ABC48A3F633F0FBCA20 -:10D0F000A5D0CFC05993B8C3171FEE78F2E09F5464 -:10D10000FAF198833BE05C0159CFC53CB7F72BAFF0 -:10D110001DEBEDF78EEED7E338B73C19B448B4DF1A -:10D12000BBD4736784047356E8C6DFAFCE3BBA9DA9 -:10D13000C7CCF6C7C91B66C45F5FEF4339B1F8E7D8 -:10D1400035D55EDEEF2D32F8C7B5812D16B06B6B8D -:10D1500097ADB0482E289718DDA970F409C19C122C -:10D1600057044F71E58F8A9F81F3413CB7B1BE9957 -:10D17000C373C7C5DB19FDADDF3E686AA4E911952D -:10D180000F57C03E93AE3F77069B5F5FAF2317E01C -:10D19000EFD39FBFA0707CFA10C1B89D2DE3E93D8D -:10D1A00010B71BE6881AE7332D87FD8661755FACE3 -:10D1B0009096B702BC55A9C8E7EBB7AF403FFF96C2 -:10D1C0006AE6E70F0804CF01BD392F2104EF1D10D7 -:10D1D0009B3CF828CDBFF58724D2ED8FD0C71342F2 -:10D1E000781AD0476A5BE073B1E2D35206E3F3DF0B -:10D1F000BAD83E5E3CBC9C55E5A956AF86972CB18B -:10D20000EAAFAC36CA350DFE146BF83D12239E3ED4 -:10D210004A8FA1F1F5DD2F5439FD5A94BF547B3E5E -:10D22000B6DF3237433DA71BAAD884FA4AB14A7801 -:10D23000B65885C7A3AC467C7EB8948890BFD32AE5 -:10D240003D0DF0DD556B8E92C321EC67FD32A76179 -:10D250005E4FF4FE781ADC4BCA2F60F2F7FD2217FE -:10D260009E137F80340970FEAB8E28F3912F896462 -:10D2700001FA3EA7E24F83EF1C91136682BC683629 -:10D28000C7E4AFBB543A3A17A85C85E7DFDBCD783B -:10D290001EE1526DCA72887F2B018B1F8E375D6A2B -:10D2A0005F9970BF6E5D35BDA7D935E78395E3EA19 -:10D2B000AF5501E37AF5093DB8FFA75490A66394F2 -:10D2C000CE267FF9F2DE59347F36642A61E7DCD856 -:10D2D0007CCF86B2B473F1844FA3EBAE165D350DEF -:10D2E000637DE56FD8BCD6D58516C296D83D877AC2 -:10D2F000F6CDA2F9860CB7BAEF387F1EF0EBAF9AE5 -:10D30000C7B707A2E9E996271D867CD97922E07B79 -:10D3100014DB62EB87F7B29C6C5F87F7E7C23AAC2D -:10D32000DB1EBB9E3BDB85F5AEFED15C1FCBEF3E2B -:10D3300090C5D6637D3D17539E1FC84A60E50DB169 -:10D34000FB5F95E954E59D980BEBB23E0EBC2B328A -:10D3500013118EB73B56AF83FDFB2B51F655452677 -:10D360008343CA64E72BAFF6BED09106F4B09313A3 -:10D37000E11CD95B6EFF14A0BF0DED97D0CF4F57C6 -:10D38000EB3BD2034F66D0F4EEF3CF9D82FA0375E8 -:10D39000C4CF49F1F5C0E10C4D0F68F7A2357DD837 -:10D3A00063077D04FF0BFBAB1404252919D65D79B7 -:10D3B00008CFC5F43A44760FCA3F536F577F43A551 -:10D3C000E7AB476F6EBDEFA937DA4567C1FEF3449F -:10D3D000ECBFAB82B4B7948E7B95D25B2B9D0FF9DB -:10D3E000E0895BF5FA46E38778E3DEA81D78F5E887 -:10D3F000CDD98113CDF36719BE1BB203DFAF7E62B7 -:10D400005FA904F3ECB93596BCD5E4F22F55B918F1 -:10D410004D2F5AFA4B55CE5F098D0FD7670E19E184 -:10D4200059D7648447E38F2BA13607BCAB45479F90 -:10D4300006EBACD9A5A46AE60DBD17120FCE5FAB03 -:10D4400074F2AB66338F72EF2887F1E95F353F9155 -:10D45000182B6E153DFFAB264A0F401F4FF3287F58 -:10D460000AEB379C4C9322F4F87F543CFCA974A837 -:10D47000C9574D9F44B7FFAF4A779A3E9B88EE3C11 -:10D4800071E28F07326C88BF0DBC28C0FED1810CC1 -:10D4900089E589B8C80BF6EB6C76EE9D4AA85C78F6 -:10D4A00057E26AAF03EF8329DDD650215DC72BBD5C -:10D4B000B74DD1AFE3EC4CB61EEB1BDC3B61CBFAB6 -:10D4C0008AC9BF381DD6AF86BDEF71EE7CF2A2745B -:10D4D000DAFE892113BC9045D66DDB6086F9CDCC90 -:10D4E000647A64FDF657D1EEBB59BA5EDF64D4E7C7 -:10D4F0005FCE10553DC1ECF03BA95D00E708E3E1CC -:10D50000A13093E1E19EFAE3284FEFDDCEA13CBDCF -:10D510002593E1E35E3E847299B433FB99D8283EAB -:10D52000A85CBA0493007CFC35C7CE77F30141FFB9 -:10D53000FEC6FD7B562F043B309A3FBEA7E2E92B87 -:10D5400099EA3B84E9C13B33D13F0C70D0DF5B9F4C -:10D5500067F0AEDFBE05CF275FCC50ED6B953F2F58 -:10D56000C23ACD8CCC2F459DDF05C7C836D0179465 -:10D570006F4C78BEE47533C275F5ABDF6C827AE22E -:10D580005417DEF7423B96E6FB9627845A75F13A2C -:10D59000CDAEC9F7337EA8E565835DD890E933D871 -:10D5A000E9D1F6C6FFE80396F6A878FA4BE983C3FB -:10D5B000AA5DF0A7EA834754FE8FD60BA37CBC93E9 -:10D5C000F1F1A5F3FFBE10F2D17CFCADCC8FA69794 -:10D5D000A2F9F74AEFDD48D7CA1222161AFCA39C1B -:10D5E00010F8C1A3F41FF1933838DFF644EF4FA6CB -:10D5F000419CEBD2DED5EB628DFF4416B3B33626E9 -:10D600004A267C1FF2754667D17222BADD285FC4B4 -:10D61000892FD6D6CC41FFF05CCD6DB970EF2DDAF5 -:10D620003F18539F935357817FDCAAFAC7FBACF591 -:10D63000BD31E0F566317CE6178C9C027CBFDFC013 -:10D64000E17D62F8D3DBE9779FF7FF60581A0BEFB3 -:10D65000685EF34FB6B3F1A2C779575DB751FF4487 -:10D66000A1FE09C5F370AD3911CEB16AFEC9B0F2A1 -:10D67000E7F54FDE2423FF300BD6F9686CB81CEABF -:10D68000FCAF08C17D73281C579798FD0AF08B8961 -:10D69000B6D3F925D1EDFEA8CEE7CDED37298FCE53 -:10D6A0001BE3C9F1F86D14AE3F91DFFA84911CE0E1 -:10D6B000FB378F7C70F15198CF1107BE3F16DDCF3D -:10D6C000D7B2CCAA7FE0403ED0F4EF80D0B3F905CA -:10D6D000DAEECD3B32FD3B888E2F08E50BFAFDC21A -:10D6E0001F295FF851BE211FF7F53AEB63F9298333 -:10D6F000AA3F141DB7117BBFD1047EB14CFC167D2F -:10D70000DCE90D75DD7FA1CAA5A22CA63FEFAA5DBD -:10D710002140BCE8FED1781141E7429C9A7D04FC8F -:10D72000CBD7D47B02CAC68498F1DE992A5E278AB9 -:10D730001FACA933FAF577D51AE5C73BA1FC513DDB -:10D740005238CE7E9446BFF1C6BB51FDD117BAB94F -:10D75000FD8089E6F7D9AC1BD31FAB48D33C8C7353 -:10D76000D0F581B496344D7B81C2F3CEA19509608A -:10D7700047FD82906AB4E33FF8EC34BD5D1254F18A -:10D78000FC7EED67EF00727943689A164BFF44C741 -:10D79000697E118A7D2EE32E55AEBEA1DDA7B82B82 -:10D7A000763C7F8B3AEE1B75E3F34D74DCA67699DD -:10D7B00071DE4A16B387DEA86B7304995FCDC6FD90 -:10D7C0001B362EE82DBD5DAA64FD79F4E330C4EF6D -:10D7D000619CED84403CA54F50A6EACF5DA5643323 -:10D7E0003CE4178DBF0FA5EDA768F5A2EDAC9F67D0 -:10D7F0004A867BB3B5CB8C70B569F62D11310E72AC -:10D8000015F4A527A22FEFB4FA1F043A202E09CB56 -:10D810004FA878BFBBFEDF2C307F2A3F3BF01EDBDA -:10D82000599308F2B3EC7CC8A2C7CB851BF4AB2E8E -:10D83000A8F6C2447234BF6804E5DBFB2117DE8F13 -:10D8400078F30BBFB3C4EAB7F67A96E11CF1FA405D -:10D85000ECB88A98258C8B6731CB88BFF5D773F1EC -:10D860005C703CFBFF10C8AF99608F1EE9D0DBFFF6 -:10D870004F6549AAFDAFCA339ED9FDF1E2AF432AF5 -:10D880009D4D147FD5F4B3562F7AFDB5345A5F0EF3 -:10D89000ABFC1C5DEF52D68DD1DDA81D1387EEE2E7 -:10D8A0008DABF91F5ADC37BF98B68FB12F33661C8A -:10D8B000B55EF4386F46ADCF183F224EDC2E299B63 -:10D8C000E13718276E9794CDE2766709D38B4AC863 -:10D8D000897AECCAD17BF781B9F7C0E2CF9D06F512 -:10D8E000D6A8C66BEAEA5F3D057EAAE65744ECF18E -:10D8F000601BEC935DDDC1A1BD113D4EB45DDE0842 -:10D90000EF15822055E307456619E3D4E43176BE6E -:10D91000DFD3BC1AED4B2D3EDD27047624D0EFB7C4 -:10D920006CFFB76DA05F353FFE2D8BFF411667661C -:10D93000F6EE855E17DE73DD3AEAFFF931DE38CAAE -:10D94000FF6AFC71A2F518953771D6632279132FFF -:10D950002EA2A5A3FB2C8254F80A9C4BE512FDBD18 -:10D9600034AD11080F78A859CEA19F5923C84B3167 -:10D97000DEFCAAC90479DF72DF6E3807BFB2DA2293 -:10D98000DBA5C8FE4BE96B0D85AF807F41270C7E80 -:10D99000ECC02FA57F82FBC1AF2FB64BB03F727694 -:10D9A0009E34E8A1F9B3777022D83D558BEF374FFD -:10D9B00083F15671F80E8DB399A8E7B56F5D5E5986 -:10D9C00040C8370044DDBD8F1A6D9F4659BB0FEE2E -:10D9D000CD4E4D1D30B9284ABF7B78ED3E1B85AB3F -:10D9E000A335E085FB78F76597EC83FB786969F2EE -:10D9F000D0026A471DCC9EB11CF2037FA3F557BA33 -:10DA00000FEEDFBD680AFA385AFE83EC65CB79D891 -:10DA10008F98A48DBF1ECBEF5AF2E0B16DB4FFB763 -:10DA20000F6F590E67D7CBEAB4F11F595EC953FA8D -:10DA30009FABE51F4B84BCC74922FB4CB309B144E3 -:10DA4000EEF7E179F781D1FB7C2DCBE1FCF8EBE53A -:10DA50004D95708FB3ECCB1DFB8AA710326B59B973 -:10DA600028D3FCDC9C2F2F77C2FE31A1F448F3723F -:10DA7000CE57107E8FD9A4F61FDA2767033CCA540D -:10DA800028E79467F655BBE13EC2F06920CB879B3F -:10DA90007B6C69867B098A0CA68970A23C9C85E018 -:10DAA000A8FBDAD9E169ECBE9D9A2F62718AD1BCDC -:10DAB00097E50776C4BE7FF2610E935F038ED8E5CB -:10DAC0003D2ADF6BFBAF49E789FC6C0CFEFF3CC4D1 -:10DAD000FD6746F8E914C4433CF8E45C532BECC3FF -:10DAE000DA189CF1F671F7A9E314B426E13B45CBB3 -:10DAF0009A9CF8AECE243F9337948BF89520FFCDB7 -:10DB0000268433D5CCE17B26690E123C4ED3D41447 -:10DB1000F6BEC9328A6A787764E1A4C0513CDF9BC3 -:10DB20009E51D206E7EB5A7FCE831DA6B51F0BA7E9 -:10DB3000B805E04C35D7946C29D6E1AF98C14DD7E4 -:10DB40005D6D277F13DE7B19189A9A0F767565B67F -:10DB50006488CB940DD558E05CEAE51C554E48AC82 -:10DB60007D6A25932B235BD4F72A6CFE12435C5FFE -:10DB70009D7F65E7B22F41BD86210B817388DB8EC7 -:10DB800097E33BFDF1F8BF01CEBBEBF476031FC674 -:10DB900073E60D70DE7D06F4F75301CE37423FE0A9 -:10DBA0001FC0BD0EB09B52DB62AFB716576EB8EE0A -:10DBB00026CA0CFD7786AF48FF1E2C9F685E91FE3B -:10DBC0008CF7F8C6F6A7DEE7D3F0CEAB781762C3C2 -:10DBD000F9AA469714DF261D3DAD52E98B4A3F7CDA -:10DBE000D7F7C2F2E25EFD7B0584EC60E73A78BAD3 -:10DBF0008E604F0E39F07DE0329EC9C7B2A16451EC -:10DC0000E1C6D285B6AE03C94DF83ED1C80A2EE6AC -:10DC1000EF0F9CD7E052EDA7F4BAA079830E3E8DAA -:10DC2000FE23FD0F7D41E38F75C8B77B197C606FC4 -:10DC3000C03CFCE169FA73201AFCB753D981E7496B -:10DC4000DB54FCDFE10AF57211BC8DC57FD604EB15 -:10DC5000998BE5654327059867431C3EFD650E3BA0 -:10DC600027927E3E9C08E703966633FD35D03FC37E -:10DC70007E1BF0C53213E124366FB033CB34F94A42 -:10DC8000DEFB590595AFE9A3792A5F2558875179BD -:10DC90001BB6D922F57F9AF3DEF276AA3F3C567680 -:10DCA0001F8CDA8F36A2BB8768CD61F1DBD9C1D872 -:10DCB000FBD6C3390906B9F5547325799BCE6F6538 -:10DCC00036D3E7B387157C2749E3EB68B95498C38B -:10DCD000D6D197C3ECF18F5F2E7113C8A515AA5C3E -:10DCE00062E5C4136880F234937A2F4164EBBEF18D -:10DCF00047330A210EB7D56B96E09EC34ACE9FF3F9 -:10DD00002D3A4EAD4DEA489022F4514B6C920BF0F7 -:10DD10004D47807BAF35CBEC98873FB03BFEBD874E -:10DD200063F447A4A4DA71EC5A0D9EAD5E01C7DB23 -:10DD3000B8AB3029A887930F3C8BF13DA70AA72DDC -:10DD40004A5FF1C67C5A5AB8D164D695BB98FEEAB0 -:10DD5000F6CAE539605FAAE79BA2EDA27BB23983E0 -:10DD60001CD6ECA2DF79199F50FE45FF319DFA8F3A -:10DD700004EE7BF407F03C183C605488F775D9FB3F -:10DD8000C66F1D2773C14FD2FAB92BA7D8D06FDD4C -:10DD90006ABA489FA4CC69AB942FEBE4D919F57DFE -:10DDA0007A4A0F33815F57E710633B73201BEE9570 -:10DDB0009374AB1FE4CD29217018D757246E58DF18 -:10DDC00085E62D87912ECCC4DD86E7A48E60FBEA24 -:10DDD000BA9152B4533F308741EFFC3C3703E339EB -:10DDE000A94E46B7A7EC4DD88E275232CA1155EE30 -:10DDF000FD3C770ABE7FA1C9CFC87D16AD1F567EF8 -:10DE00008A5B910DEFC49E4A9D5CD2C619ED1DB090 -:10DE10007F22F6D2F3FB6EA7FC38ABBA3F4C61A66B -:10DE200052E5A5E58FD2FA5B7298FE3BE50B0CC07C -:10DE3000B8A7DC4404F8670F079F85FC62AF13DFC7 -:10DE400071D3D623CDC47E1F264DFDFD15E01348AA -:10DE5000C55CC66F8773D93ABEA3E6D31263FF9E33 -:10DE6000CC7FA8F57AE0FE1FADD75D1EFBDEE81E75 -:10DE7000958F1B6D3DD570955E77CF13EF2DF38495 -:10DE8000DA55B4CADE1CD60FD56788AFCACE3AFCC5 -:10DE90003DB1F78756E1BBAEA3BFF301EF54D17597 -:10DEA0000F9395FB01EFC22FCC787EB3C3C2E8522B -:10DEB000700745B88794E28CEDEF7E578527C5CC77 -:10DEC000DEEBD6EE2F58D4FBFCC7547B2CD15B8BFA -:10DED000721DDE58937CF02EDB08DECFD5D631FAEA -:10DEE0003CAE45BDC77FF3F643491CFBA1D4603F60 -:10DEF00068E346DB1117E13D6E5DBC7B9DF7DC42BC -:10DF0000A2ABFF6932DC01FD7D7A5B96212E11CF39 -:10DF1000FEF8912A6FC15E5062C22518BE5FA47ED2 -:10DF2000A0A21FFF0A1B3F32AE9328BA71F7E6C8C2 -:10DF30003FCEC1F8CD5C11DFB1B0133C0F5BA6BE84 -:10DF40005F47F513BE5748F55235C86FCD2F02BE57 -:10DF5000179380AFCBCFE6A4EAF4A4DA2E5A1EDDE5 -:10DF6000A1DA0177A8FA26E9BC66373A248E8BE855 -:10DF70009DB17A8B53EDE868F918AD178C7635A50D -:10DF80005B456F078CE11715AF374F1F93E2D0C782 -:10DF90002D7F11FBB26C6ED03C0DE4663547601FDF -:10DFA00064569551DF3B7299DFE1C8751ACEE1D610 -:10DFB000D419EB25423DE0AB5CE70DF9297A7DC42D -:10DFC0009941EEB1FE36ABF4E07BF7AC00EF372EB3 -:10DFD000C965F650499E9C9A4BD3237FA8EC83DFFA -:10DFE000A11869E549AF07DAC97DC31E98974D04AA -:10DFF0003FB57C6D55D1115A6EF9A905DF9D2427D7 -:10E0000062FBF7AE664EBE8FF273BE2AE71A3C6C17 -:10E010005E0D9EB05040E1C86C60F064F70F72BCBA -:10E020004EEE65D7B37AC5B91683FEF1439EC2772B -:10E030006BAE16BF0CB5C2EFA164D7CB3CE8BBCC2E -:10E040007E8EA8EF6EE27BA9997ED6BFCB1FE2EE53 -:10E050002D8ECCBBCBB4A218F445579AD30FFAE25D -:10E060007379C1329877C3857018D036EBC2100F20 -:10E0700076DFFE3C79167CD7E62799C54CD81F770A -:10E080005E60F0F544D13F21BBD575E965F0B9027A -:10E0900025004F5AA284EF10D1BF7CD0AB69C9AA2A -:10E0A000DE482341782F88D8683DB0831CB49EFE9B -:10E0B000DE260994C23E412875DA74D0730B1DFE2A -:10E0C0009336D0AFD37DD3E15DA1170EC78EA7D70E -:10E0D000AA7A87C27FA71EFE78FC31FADEBA5ACF31 -:10E0E00012C78FD6E8DE591DDB5EA59A00CBCBD7D1 -:10E0F0007AEE86F934B40BF81B5D1ADEF7E70536C5 -:10E10000E6A6C23A1DE1805F33FBCB91AE32159E8D -:10E11000805DD1EEC80DC13BB2EDC99F4A07FCC777 -:10E1200083BBA1D92CDFA7E7E77601D7E348D4F971 -:10E1300035CDCF782C97E9A3D37981AD30FEE613A6 -:10E1400007F09CE083472F09E3BDEB73A378E3EA74 -:10E1500099FFD2B086BD9751BE96473ADCD42EE0E7 -:10E16000BBEA0DCF1E0FE37EF17682FBA00DFDC74B -:10E170004FC33BAD590DF24CFDEF126435B077E360 -:10E18000D212467F1F5400BD9DD9BFA201E95A2477 -:10E1900022413A0AA2DD956D63F6A886DFD34238A4 -:10E1A00017E267A74DC4DF46CBAF59942289E6AF8B -:10E1B000F91C7E787FE1EF8FBF213D067886B81885 -:10E1C000BC7B9017FC12E0A3BB959D27EF5E48ED4A -:10E1D0001E5A6FA1936C85FCC2361701FEB8513CE4 -:10E1E000CC8AA28B59DB199FFC283751E55782EF67 -:10E1F000291DCF4D50EDA8601DDAAF741E9D731020 -:10E200002E9C87982B7F15E9564CC671331BC29CF8 -:10E21000FEFE899646E84A7E3637F566E0ECC77D15 -:10E22000C64DAA9C295F7B947B5B47072FE69A919A -:10E230006E329F3DC2817F48CB5B177AB03EC607E6 -:10E24000339F657ED3265A7EBF41AE6CC0F97439C8 -:10E2500098FD48E5CA4980EB94690BBEEF776A3AAE -:10E26000C17766EFB8103E8DE25985F794C0D6931A -:10E27000A77868A5F99FE54A38FE6921781FACFBAD -:10E28000E94C76BFBBCBB403DF3BD5F83E9A4F7F5A -:10E2900096CBFCC9CC3547398827789CCC9ED4E0F6 -:10E2A000D3EA95E4559C05FCCEAA1E423C34AEE16F -:10E2B000D97D0D159E8542A000FCB461B5BF93AB1E -:10E2C000BF6D3E44E16B2CE6909E9FFCBB57912EA8 -:10E2D0001B7B38F6BB413DAF0AAB74FED5C1EFBD29 -:10E2E0008A7A65E9008B1F340E1CE7EF7581BE3911 -:10E2F00089F4D948E9CF5E0AEBC6ECD86B96702E4C -:10E30000E8CB68FA745633B90831D742F60E1CEEE2 -:10E31000FF86D6DAD0EED7E4AFA8C209EF08827C38 -:10E32000FD8DCAEF5AFF117FD5EE07FAF6BD3BFD12 -:10E3300024BCEBD6E8E7FC701EF93F46F50993D7FD -:10E340005222FC7660A4FF68FCE5E631F91A438F9F -:10E350007C184B8F687AD6F77405BE97ACAD1FAFAB -:10E36000E27D54BFE7B1FB578979BC0A8FEC853851 -:10E37000B644F9B9BB14DEF50B144B809F54A71FAC -:10E38000E23B7FEF7E5DDAA0C3D76981F23BCD9F90 -:10E39000CE77203C942F92F274EBD750CC7E67EA74 -:10E3A000C9EFAE40BC36C0DA51BC3604EFBB0FF14A -:10E3B000EC25E231902F4126BF1AD6DCC5DE05D709 -:10E3C000F4DF731CE2BF4171E13BD74BFB57207D6B -:10E3D000128FDD5FC8A15CC375D6F84CCCD5F61D95 -:10E3E000D8BB43D4AF6F857889E6D727D605940488 -:10E3F000692C9FA6A87EFD4CD5AFB7CCB6FD59FDC4 -:10E40000FA4DCD3F41FFE721EF8F30D5F884FA8DEB -:10E41000067EBA2D8FD92D929A56E431BEDC54DA9D -:10E420008FF4BFE97213F28FAB9AC911D705A3FC21 -:10E43000D3E260D4836374E8EC5F04FB110BBFC2CA -:10E44000892007E2C1FD19AEE967705E851C67E7A8 -:10E4500028167CF0F344FD3BA435798CBEAFF599CA -:10E460004918F0CD3709E3D9BFF1FACB0957CDF9F7 -:10E4700027BA7EFFD29784E782AE3DBBF2F3905776 -:10E480008E26E139929C702DD2C535CF1C3FD081AC -:10E49000A78DE1E95A7F25D2CFBBE99209DE096B4E -:10E4A000ED7F623EFC5E74BD0AD7BBDF3537031ECD -:10E4B000767CED3BF3E15DC94D212E05EE9B5DEBD6 -:10E4C000FBCA1F41EFD51F7D18CF7DB57DF37FA11E -:10E4D000DD6D0A1D61DFFB9244A877F59903F30116 -:10E4E000BF6DFD6D58FEEE3347307FF26BDF311F9D -:10E4F0002A8DD0F1BBDF3DF2C3DF433E9088F77237 -:10E500001A824F3E0E79529BC8EE5D055F11F4BF33 -:10E51000DF75F0F820F2A146174BFB39F5DD30012D -:10E52000CF7968F4FB56457119F01DA550BF793EAF -:10E53000CD7727D4C78A23EE51E7DB00B408E3AEDA -:10E54000E142C0075D82D287F25CECCF0579EE2C08 -:10E550000E0BF02EE9EABAE3F3D9CF10B662F94A0E -:10E560001B3B2F368DF20BBC1F457B3BFA21C4F7BA -:10E57000BA1E5C07FD1D3613D19C118177B320A113 -:10E580007FB4B986F3530E231CD9762A15F6C79AA1 -:10E59000897AAE8BD5EBA2EEA52D19F510B1D3B4C7 -:10E5A0006C5BEC38E893792E953E19BF660EACC8CB -:10E5B00006F9413C567FA12FD25FCEF9A66E78DED8 -:10E5C0003FB37E6811CC6349D18619300F0FC4FB6D -:10E5D00040BF282EECBF11E293949FBEAACAC73455 -:10E5E0003180EF8CD8E4402AFC269B640DE0396E24 -:10E5F000697DC0D20A72861FC95D858AF09861FF65 -:10E60000F0A025983113FAEB52F5D351063F6D8FE8 -:10E61000FD4995B207DAD3FEB13F5B9DCCE36FBEF7 -:10E62000D9D83AFCEB0F6E3F668C9787C6F45FEA49 -:10E6300002FDA2ACC17593049CEFBB5015F1ADDC9B -:10E64000AA8F6347C77B409EC17EEFE9BCF2C1BC85 -:10E65000D448AAC581A2F1CC4BB49CF65321C998E9 -:10E6600092BE1BBB77A6C9EDCD7B54BDFBE22594C2 -:10E670003B9B833CD3BBC1CBA877FFA545266F53FB -:10E68000C3F2E0F39790BEEF3DC1F4EEE61325022E -:10E69000D0B3F61EF2E68A6BA87F153341BADE2CA2 -:10E6A000F49FF642FFDDC44D2D7BB279FEF02D20A4 -:10E6B000FF7EFDBC7D0DB43F653221BD9DEAFDC4EA -:10E6C00091364E0F1FF303B8FA10F2E366D52E28E9 -:10E6D0005F7BDF01F0C71AEBD9EF116C1E50F98B8D -:10E6E000FA6380DFCD275E45FAD1EC5EDFD3354893 -:10E6F0006F6E4A6FF8BB095543081FFDF317D2D45C -:10E700005DC5DEC55D52545206F47672F50F778210 -:10E71000DEDE5C4544E8FF608EFC3CBEFFFB3C87D0 -:10E72000EF511EB4F454C03DC9830B2511F8637337 -:10E73000B076543FE1F9EA60ED00F28F679D1FEC7F -:10E7400087EED620DAD5DD194EB40B0E3EDF8AFAFD -:10E7500073B3E4F0C3EF992C3DC16DC5F68A8B30DD -:10E76000F839B4F397866EC3735B1A3E96560DE77D -:10E770003279C1E0FEB565E8D330EF5F7FCF0A6F35 -:10E780007E8FD2DFFF05D640AE560080000000002D -:10E790001F8B080000000000000BDD7D0B7854D5B6 -:10E7A000B5F03A73CE3C1226939327E1E9C90308EA -:10E7B00098841308EF872704102BB583F2B2220E3A -:10E7C000C823424846C48AD77E37830331526F6FCD -:10E7D000AC2FEAA576A06AD12B106DAC51030DA821 -:10E7E00014ABB5D1528A16BDA3222F918CE083DEE3 -:10E7F000D2F2AFB5F639C9CC640262EDFFF9FFE998 -:10E800005737FBECF7DAEBBDD7DE9336D9BFF18E85 -:10E8100032802BD561BAAC03A42B6DBE3B3201D242 -:10E8200000F435986FB07B9D3A9647FE430A6DCE53 -:10E83000C5EFD3C0081501E4DF23192137408A262C -:10E840000164516A335307C008C0BF0691AA811200 -:10E850006F31C027B5067C3800F84FCB0658CEFF85 -:10E860000058B1A8D5A1617F554F89FE329D46E978 -:10E870002D989EA3BFCB305F013778B13C4B966E8D -:10E8800098C1A98D53ABDC4A8799F3C87D64E1BD7B -:10E890005370FEDFA9043D0987E85D88DF310F7EF4 -:10E8A000080DC0F9F7AEF4F6D5A83C73A92E633E67 -:10E8B0002B03BE4FE591350ED82C75ED7724AD6B4B -:10E8C00004D5F39649582FAB678A1EA4A1E4725B66 -:10E8D00012B52B95F4CD1AE5AF7E14084E59BD74D0 -:10E8E000EA072064C2C15B66C37A47B353F4F5F408 -:10E8F0003DF407E56A84C7244DB5CA4BA99DE601DE -:10E90000585FDAD96E4ABE97FB9BD233490FE23C7F -:10E91000A737044A204FC0C1EBEE8443684DF2DCB8 -:10E9200050143CC6131CB07D6830CC6D2C22F87B93 -:10E93000ABA89F6C9B9EB11E3715DC81926B526811 -:10E940009C20C36B00CD03D329B83E3FF59BEF5D00 -:10E95000C5F0C84AD113C163CF25021EBBE76C9333 -:10E960003760BDEA2229E4C4F9DDFFE28C525A6720 -:10E97000F54CB70E98AFF6290B695C08B8E031CCBE -:10E98000836FD1BD53305F5DE9D5D76BBCEE455485 -:10E99000DE3733495F8FE50F3E2F1994AF0EB84332 -:10E9A0004998BFB259E04375F3D3CA8D98F620BC9D -:10E9B0007353BB40C98CE2CEF900ACE1F9544F3A35 -:10E9C000D1FF656C1F9041972762DE111EA8E3FA04 -:10E9D000AB27860712BC4E3E9F3497DABF62B30561 -:10E9E000689C57365FBA292875EDE7A4DDDB44EB58 -:10E9F0003F89EB0F60F96F9FFF7388E8612DD28329 -:10EA00009C837BB4462BA7F2F55340A57DB1F66BF2 -:10EA10008F23504878B5272F99F183E6E945381FB1 -:10EA2000A77FF602B8F5126F8D8670AEB6B5D629FF -:10EA3000D46E4B06C018CCBF70F7409FBB2B9CB167 -:10EA40003DEF8B4B01C65F57A847281885572E17F7 -:10EA5000D2DA304E036E4C7BAC16F089EFE74ECD28 -:10EA6000CDFDAC7085F7E0CE41CDEA065736E29198 -:10EA70002F59E3EF49F680D107E7E3682E6FED8366 -:10EA8000E5D9E9F81FDAB7CD3D42B46FD9D9E07BBB -:10EA90002641BFAB4C3CB3F6A5211D182FB33DA2B8 -:10EAA000FECF4DBAF98949975BCC348A2E62F1DEEC -:10EAB000EDCB253E919D0CBEC604E359ED717E5C05 -:10EAC0006ECD0B5CD84F26B5D36C8CDF717417CA32 -:10EAD0002A1E4674372559DFED227A1A963B2C08F8 -:10EAE0009DE320247267A474C5035A07D10FAD8B30 -:10EAF000E8ACBB7A0DBB047F8AC7CB674C3AA9222E -:10EB00005CC7796F93901E13EEB3E8A7DE966B7B1C -:10EB100010E7FBA3FD32F3D9F87A56BAAB16A0750D -:10EB20001040DEC66B53BDC5DDD7DB66D6FB71ADCD -:10EB30008B53B7AEAD51B0FFA12D5AA90C349E3600 -:10EB400089C60BE078B4CF2913E15319E1E319DD4D -:10EB50005078672EE179E35C5AD750256C2B25BE9F -:10EB6000EBB5416BA1E0DFE7F0FF3DE72643ABAB40 -:10EB700033DFCB971E93EF53D93BA67E3F7F5E4C8E -:10EB8000F925AB87C494E70686C5E4F3EBC7C6D482 -:10EB90001FD03029263F68C37762EA0F0E5D1D93B0 -:10EBA000BF74CBF763EA17372E8C299FF48FFCDDF7 -:10EBB0003F253CA7F527E073561AD17279FF8636B8 -:10EBC000C7AE3F7574ECFA158800D1FBA4E4BFEA28 -:10EBD00089E8D94A5341F92C6CB5233EE0D26C0F39 -:10EBE000E23CCAFF2C87D627988785CF567E922293 -:10EBF000C78C6BF1890BE1579EEFFCF8F263C217EB -:10EC0000E779E6FD0F39215DAAB9820F28E0E5F525 -:10EC1000A74E9C7BDEF5DBE3D70F1AE3BD87D69FBB -:10EC200000EFE3D79F3A3A761FACF5E7F90637874E -:10EC3000B19FCFE74A2C5FF651D198AEFDBD1BB70F -:10EC4000CED9AB52599F01EF3509EB77CEE34E9EFB -:10EC5000C7F54EF02782C374130E95B982DE2F4498 -:10EC60009FEF9BF3F81FA24F4CDD6B73991E619FC2 -:10EC70001C1A805D2DAC9776F544BC48F7B9592F26 -:10EC80005BA8B44269949CBFDFA4EF074DFADE5045 -:10EC9000AB723F0FD7E670BAB156E3EF8FD416725E -:10ECA0001AAAD5F9FBE6DAD19C3E8AFA18A58FD7C5 -:10ECB0004EE3744BAD97EB3D593B97D3A76A7DFC70 -:10ECC000DDDA9FEBCDFD016F06CBB3F8F5CC5F9598 -:10ECD000182F412EE2F6F391CEE4F3F0B52EEDE5D8 -:10ECE00079A9E7C3A3D50773B7BF1C8507D7E5A6E6 -:10ECF000641EEE81FF1805A3CEC9176EFF65ADB681 -:10ED0000FD65FB85E9C2C21738FBE18044F5AEA77B -:10ED100031C722BFC9DDDC1070770F9F4E3C8AC31C -:10ED2000572FE22B7E2D21D9DE8BCAC3BDA3C7F995 -:10ED300093B9CF567EE64C81AFF1FDDE6FE2DF2C5A -:10ED4000C24F2C9F1D47AFA77385FC3C9D2BF4F44D -:10ED5000FDDDF08B7B726DA6FC14FB3E6B9FE04BE0 -:10ED600077F6983FC197605C294F8BA1CFD9336369 -:10ED7000F771BF5DF0B7FD7F92436B12ECFF85DA50 -:10ED80005BEB896FF72773BD9FFE7F466FFBAF4D2F -:10ED9000617D7EBFDDD72F2B6A7FF65FDB636EA2BE -:10EDA0007DFFDF5CBBD8AF421548BE433A18A407CD -:10EDB000E192020ED2E5A0403D4C7482C610D145CE -:10EDC000F778A9C0618B9E64826712EBE39FCF4CFA -:10EDD000E1FD079F6A4054FFA0A8AC976EFB2EEAA6 -:10EDE0000A349E82E3A11E0ABAAD73FFF2E8BFC9DE -:10EDF0009DFC5AEE9EDE2E8407161F994D7CE43C46 -:10EE0000F2BA6BBB8BE32387888F5CFACDF3118B4F -:10EE10008EE1EC8D03BC295DCB67111FE90DF0D3AA -:10EE2000DCB7998F7C6D3859746BEA13F1FCA4DB65 -:10EE300076CD9917907F263F57FCF561C48BDBE4B4 -:10EE40009486F5D8E42EC5FF73CA07020A3C86A94A -:10EE500073F5E9DE878673B7850AD71BC2F69D5323 -:10EE6000F1FF32CCF6A053A57A0FF5F8F7ED945FD9 -:10EE70008D1CD389E99749FD4380B640699EE03FE8 -:10EE8000B2EB4CEF4351F3B3ABD0273A5FDAEAEA87 -:10EE900073286ADF86EF5563F223DA7262EA8F3AEB -:10EEA000A0C5948F0917C6948F3BAAC7E427444690 -:10EEB000C7D4BFEC8C11932F872B62EA57B866C476 -:10EEC000E4A7A8D7C6D4BF3C67414CF915DA4DB1C9 -:10EED000FD157887E7E1BA173ADCF5522ADA69B905 -:10EEE0004619E59393ABFD0BC84E5AE3516122D509 -:10EEF0000E85086E750E97BA1EF9D40792D11F10B1 -:10EF00004FEFB3A1D59D8FF5E530507AD0A697523B -:10EF10009A676CF1119D6E2F4CD6681F920702B450 -:10EF2000919C52F424407EE2E811F95D01EDCB6F33 -:10EF30006CF01826DB5554F4A97E736688ECDFACC0 -:10EF400064DF15348FF5B606CF1ADA671B781FCB4E -:10EF500064BCFAC968CC1F7E41B1119E6D6FB1DDF2 -:10EF60003316F39F61F7329637B59DF8C995981F10 -:10EF7000DA66D7A9F65090D94E5CAEC03D4A7AF712 -:10EF800078F6F10F843D15FFFD677982DF6755083C -:10EF90003B33BEFC8E3C21DF3E76242E5F6EB6AF47 -:10EFA000B86BFA43C4D7EC6D7620BFC5AA2CA32753 -:10EFB0009C4F5F3D930FA1E15179C50BAA9BBE0FFA -:10EFC000E4EF1577CD83B05BF4437EAC5549464FF3 -:10EFD000F23B7C3C29F13C6E31E7613FD3A39B7E41 -:10EFE0003DFCFDE3BCF3AFD37E2609421989DABBB1 -:10EFF000F97B563071FB7BCCF13F4E4F5C5EDFD12D -:10F000007F2F086444B7137CA7739CBE5C6E3F934C -:10F01000068184EBC8E4EF9063E410DEEC423A270B -:10F020007E519E96ED0024F1F91079C540F8CF206D -:10F030009300F1145C7A29F12950EC91B04517281E -:10F040003F1680F201D90B3644C67338B51B56DB28 -:10F050003F0847D1D10C23360F543F4ADE7C427D16 -:10F06000E37A928714A612BE9F022D554D805F56FB -:10F070003ACF257B95A8F51CEC464F6A33E178B072 -:10F080005762383E6FF2B191F320A1BED696E711D8 -:10F090007659A1DEF37C7283E0EBCB88EE377E1FDE -:10F0A00032B9FCABC219F182E57AE4BBEE10FB2960 -:10F0B000BF71785BF8DD27062F3EC98F9F777F2EC3 -:10F0C0002FE8EB7D2B8FE58A3690E4629349BF4DA4 -:10F0D0008AD163989BF8185426827F9F7C534F8D6A -:10F0E0005B771318390BC8AFA1D875E267C932F83E -:10F0F0009F4E00FFF875A79AF3C6F6735BA93D789B -:10F1000074C1E7C0EBCA463D9FFE854B280FBC6922 -:10F11000A7FEE7F93DFA7A54813ECF13FAF40208CC -:10F12000DB890F77819F3BD34E7EDB78387A419B1A -:10F130002FE55F189EE905C6E7041F9B4BCDDE8ACD -:10F14000EB9C1FF000F9696E98079E629C8FEFBBE5 -:10F15000E96F185877E155434AD6527AE9F83A9957 -:10F160005B4F66BD4F0AF491CF5DFAD5F5BE3A8F7D -:10F17000AF90E8E390A42D61384808079237BD8F1F -:10F180000F5C1005C715FDCA7F9F9F45E7036064AC -:10F1900090BF788793FD56B001580FADD9397813D9 -:10F1A000C9852FF27DAF51BD51934DFFAD11197837 -:10F1B00075CAC5C30BFFEC44271782976CD2FB417D -:10F1C0004F62BC19972FF6EBABD24B66BE8043045F -:10F1D000E1B0B9EC9BA717845F0CFF782D5FF05F5F -:10F1E0002BB5E0366A5AAC7FF735731DAFE57B3837 -:10F1F000FD22DFCB706EEFF7E9E12492FF0E5C7F1A -:10F2000002BCF7764337DDADBF3B7AF9A6F8F2C111 -:10F21000E4C4F35CFC2D99E71B344FE2F32589E746 -:10F22000F96F17894FB83F4B5CF9DFFC3CBFC8371B -:10F23000DEC8A779A6279EE74F2F129EC8EC96B48A -:10F2400062BDD9C807A9DE373D5F082C984272E835 -:10F250001A9FF0FF1723C7253E845379F4DC70D240 -:10F260006FF5751B88EFACF4E80195F9C81BF982BE -:10F270000F8281F399394D627F52FB884F97288422 -:10F28000EFD9D09A46FC6AA793FDD9F1EB0F99EB21 -:10F29000473A799CE004D32303899F1C1C98984F1C -:10F2A0003C1E5FBF3EC2F2697D7962FD749B49AF2F -:10F2B0002B5C0DD3B26DD1E72BB84099B86CC0E888 -:10F2C00043F2B64C5D4BFCC4817289E0EAE833A49A -:10F2D00027ED07E6BD12F981735E3F207918DE271E -:10F2E0003AE097D739CEF1DABD6A81BD7B7EBE5C4C -:10F2F0007E66A43FC17AB66ABE5DF95176E3F22D0F -:10F30000AFAA05D1FE7108DB800547C4E6E5F341ED -:10F31000D36FD0132ECA6F509C29E865453F2FCB81 -:10F3200007921B643FD7BD30A6943617F50F20FB1C -:10F33000209292CCF222D87B6CA11605CF0FF32D30 -:10F34000FD53EE46AF74C47C7FB7D685266567FE55 -:10F35000FAA3FBA6903E3F1FC2EBA8FEFC553DE87A -:10F3600008B2639D1DFD9D9162F4DBCEFE15FE5E2D -:10F37000EE72B7CA433175FF2EE17E6CD58CA304C3 -:10F38000CFB5FD8C63B4CE78F805EE1A9FC67E0427 -:10F3900082DF655DF7BDBB7DFEAB669CA6FE5EE8C9 -:10F3A000A75A7E1D9DCFE392ADF361453DECEA8403 -:10F3B000F757DD9764D3BF88FAC4399AB701557EF1 -:10F3C0009ACF3C8BBEE3F41C2814FE803A4FDBBA84 -:10F3D0005D517478832D9225E476781D3999FE6706 -:10F3E0004712F38FF61DBFEDE7E3F3344BEFE8214F -:10F3F0009FEBF1D5E767F917ECC989F569EB1C6359 -:10F40000B7BDA880F5123AE71D8D79495B44F6AA8D -:10F41000A2821EC4F5955F8ED884FD4D92FBB68402 -:10F42000711D9FC3D9E40998FE2788F5AF7AF3A32D -:10F4300074F2634E52ECC7A3F953BC1F684041AC51 -:10F440003FF914CC4B6D25B88C4F67B86C6F99940D -:10F450004AFD943C3FB927A5BB6AEB55C5DEE90FD1 -:10F460008A9F7F793776E9B002A177BE9E6C0C2B1C -:10F47000C0B4BC9BF58F32EB85938D5105599DFD32 -:10F4800051FD44F1106D832C3FAE80EB358105AC0E -:10F490006FD95CC857897FA2FE2AABE4272CB03312 -:10F4A000BD1BA0A9D9EC3714FB8F7C5DC1FC0433D4 -:10F4B0002FD5BF1DA4761B6FF1F03938F83420F931 -:10F4C0008080E173813AC9CF7E0717C57D60BA5E3F -:10F4D000D237902E26DB2219822E4222AE017C0AE0 -:10F4E000E57F2B85831427B0D6F5EF3F273FB81172 -:10F4F00054206922E615603F63E0600A9FCBF1CC9F -:10F50000701E4E6B5E663EC5CCB7CF9A3A6D00A6B4 -:10F51000B7253FE2213C0D4BC847B19F2F93FFBD5C -:10F5200095E9C69FACDB7B937FE93DCE4B2B937572 -:10F530002987FC4F9E42D2535743B2EEC4710C77D9 -:10F540007180C67568C0FEF86468E475B8DD9F0414 -:10F5500008282AA812DB4FC9BE65056CAF009F932F -:10F560001F7E2F6533AD3F493DD57A077ECA0083A4 -:10F57000EB65C4C9C72CF72A89E337BC4A9C5CF405 -:10F580004904FF9E73E3BFC7CA4B171C54899F48A9 -:10F59000ADDE9C73C89FDA086E659D706B53845D09 -:10F5A00067C12D30C9FF4B826BE04EA71ACCECDE51 -:10F5B000DF86001A45FA789BBA642BD547C3096CDD -:10F5C000D45F8E585FA0D229F641F16DA5F6EFD831 -:10F5D0007354B27B2C3C7B68A0C9AFBBF1773C5025 -:10F5E00020F4A3EAF4C3D524E70007B5F50738995A -:10F5F000727424F10D9497F5242F93EC06C3DB92DB -:10F600009B2B9AD600D15575F30220BEF28EE41BD7 -:10F61000F032DB23C076D99C6981576C1AF9B26647 -:10F62000AE7363FA49411EE3D7FE57A6BEC26C48CB -:10F63000761753BBD2CBBC53B270DC6031E8776233 -:10F64000BD60926FEBB3B4AE3765FD318DE2212A18 -:10F65000E0C3E12632E1F74DB333D86F9A5911A9CF -:10F66000A37881C8DDA0527C4F17FA388BEB1B09B9 -:10F67000F00B1E0BFB59A4B612FEF4427C93D4CEC1 -:10F68000F247A93C5FE42FC37C8DD852C86F29FF95 -:10F69000DE0882479B0C141655D322D968FCFC99CE -:10F6A000C359AF29A0F2CCE8F2B4E54F61BE60EED9 -:10F6B000049DC849B3F97E762B95BF01BC0E30F985 -:10F6C000F7A838FA1DD749375C5EDA91F757D07C36 -:10F6D0005FB919D88EAD31E56D0CBDD162B1CC18D2 -:10F6E00049F8D7D10F503F15667E9CA2723F7DFD31 -:10F6F00060F205EFC607F89CC0A6937FB24E6A6021 -:10F70000F840C0CFFA1EC5CD10BDF49FB76BB79DB2 -:10F7100006CB1474A7EF157457065E99E03552BDF9 -:10F720003B48E3CF9997CB7C66CC5160B830E5611C -:10F730007E429AC4FB943F209FF165BC4BAF97116A -:10F740008F64B9343F09C79B3B4FE2F38959735D1E -:10F750002109FF390BE983E3A1145FEE6CC4F7398B -:10F760003E499CFB627E5E943F1EB5613E379BED39 -:10F7700004FFD309F0397F80C077AB7DCD5A478C29 -:10F780007FE792016EE1E71830F59302E6BF22AE03 -:10F79000252BD91B117CA381F9D4611BEADFA4FFBF -:10F7A00082C1FAF63526BD5BFC6296710BDBC1B3F4 -:10F7B000BCB17AF43BB4274407D74AACE7CE997B77 -:10F7C0007E3DFB5C8164C6DDF455599E99DF35D0E2 -:10F7D000D89EBE9AF49C12FC380DF59028FD7EDE72 -:10F7E0006D67D3B87ECFC7579CBB0451A152F09729 -:10F7F0001A8427F1CBF26B15A697EAB50E8EFFAAF5 -:10F80000695E63CF267CFE21E8025FDFAFEB83F306 -:10F81000EC53658C90B528BF4D554822BACE269E34 -:10F82000C3F08F38C82F37DBA157D1BA66A7831A28 -:10F830004843BCBCF68A8DD4FF5A17A832CADBDE17 -:10F840002D6F8608AF9095EB849388391CD7D657D7 -:10F85000EDC1E70BF5B6611CB755EF49D1A3E3A4A1 -:10F86000D6AFE9C43B8AD7D29C304C35F737919D4F -:10F87000346480E0570F4AC0F22270AD8BE19C9552 -:10F880002FE295B2527547308DF88D66D5E338BBBF -:10F8900007EDBE5EC3310DA15A29F647B48BA7FB15 -:10F8A000AC0CB39F1E9A1444629CD9525A6623B87A -:10F8B000B953748A4FB4FAAD4836ECC4B72A8648B7 -:10F8C00023820CCF4DCA22D24F9362F9BEDD2EF6B1 -:10F8D00005DE157C3F5E0EA21C60BE4F7EFB6019EC -:10F8E000CBAF8A01592C0FB89FD58A4B75EAD0450A -:10F8F0009E657A2185FC5CC31064A4AFB7E5786788 -:10F9000050FC5EE07585FD6A6573F5EB1647EDEB1F -:10F91000E60E391099CFF1503FD4FB503CD4DAF2C7 -:10F92000CE3CC53D56428383F0BD324E3E2E73BF62 -:10F93000CC7AE4B247ED9DF80B1427AAE713FFA891 -:10F940007AAA8B3F88F954273F8BB32F417D89D604 -:10F950003302F931F121A3204566FF32CC13721432 -:10F960001E97C82F267B56D793DC6B97521AE4B2AA -:10F970004E3E39C2DCAFBB14EF4B141F1B407DE978 -:10F980003115BACA01F0B3FE3211E526E9D152CBE6 -:10F990001C99C6DDB814FBA6F37C255C41F9DB9607 -:10F9A0008A735208DCCCE760E3024E95E8FFCBE4B3 -:10F9B000FE6BCD71FD7664D6C7D41F727F80FB428B -:10F9C0007A8B44FC10CB7B4FC3A64807E35A8E705A -:10F9D0007F1B33045DC4EB312FDBDC219B8DF86E84 -:10F9E00080E54E128472087E4681E0B36507049F6D -:10F9F0007D2E801AB44CAAACFF9AE9B9AC0772F913 -:10FA0000D80870FCCC0EF0559BFACE5D034650B47E -:10FA1000A85FF071535FB0F4B82971FB78B9FB7E31 -:10FA200085F8D6E5395DF64BA6FEA781C4FAE21546 -:10FA3000DAF9F99661F12588E54BB97096F70FEE82 -:10FA4000DE732BF90982717A50F022F5A05EB9BEFF -:10FA50005FD0FAE2F5A1EEE2299F1A7071F194A845 -:10FA600041CC27F935D6B2B3E2F0A77ACFF1F9F756 -:10FA70004027DE75E07360D375B40E94E72AD97D14 -:10FA8000D26F1E62BA5E8BF5E4F104CD83C1FFC272 -:10FA90007CAB0DFC14AF003EF534E1A92577911342 -:10FAA000319ED42D1678374A11F9BEA8C8125E06C9 -:10FAB00047C7EBEBBE5CF2471B65C51C1F6BC9E378 -:10FAC000E13683F16404E81954CFC2939161518EF9 -:10FAD000F8F11AF19371D3105FF228CE76541FD249 -:10FAE000BBCA4163FC288F936B15EE990AD17985C7 -:10FAF0002B7EFF0D3E779C6CE2C714F5EBE1C7252A -:10FB0000841F96DC423DF9AE38FBE2AE38FBE22BB7 -:10FB1000E0C7918BC18FC845E247BBFD87EF05CA9F -:10FB2000D89EF5CBFDBBE287D472DB927B88DE8367 -:10FB30002940FBFE74925AE1C679D6548AB8F3E1A3 -:10FB4000BF2F08523E7B452EEB854FA7E92F71B999 -:10FB50005F9497B519720AE6F3576139E69FCEF5BF -:10FB60005650BE66359663FD11FB7C41CA17FC50AA -:10FB70009497DEE97F2985E47C40B47FE1589DECD1 -:10FB8000C1F2509DD9BEBCA182F235F5A2FDC803D9 -:10FB9000A120E507DF23C6B7F4CECB4CFEF9B47441 -:10FBA000EAA5DBA93FE49F9B917F8E3B61946EC3E6 -:10FBB000FC22D56623BC5D1C09D8091F0EDBAA46B2 -:10FBC00012FEC0425F0EE19993EC56B9937FD9C8FB -:10FBD000A983ED262A76D6FB5E95FC0AD59B4624A2 -:10FBE000417276B4EE22FE4EF1C89B51DE1499F2BA -:10FBF000C88ADFA57B0433A2F6AB68A090F356BD9C -:10FC0000EC748117F0B0C00B2BBEB8F52190C8DFA3 -:10FC1000426B633F449778633FCBEF50BFE2618410 -:10FC2000B797539C31965F3E56C419979E3B3D351E -:10FC3000915D347CA0B0E78F9AF722ACEF95A15C80 -:10FC40001BD1CFD3843CBD099EDA1F495F7A9AC687 -:10FC50001ACB200DC068DA47912F7FBCEF7DF57D70 -:10FC60000196DAFC0AE111F497749AFF556DFEC90A -:10FC7000BC9E2A80EFF54AB00E53DE2F093A368B30 -:10FC80003811C17F6699FB764C9DF7CAED6C3F7BBE -:10FC9000743B8E3369FC00A6FB9973258BEEBF3352 -:10FCA00090F4603AC1607FB68FE3DD6F8290830687 -:10FCB000B9298EEE97BB3F7B8FE4D2F22DB174BD94 -:10FCC000025A1DC2DF1C79E46DECBF72438A4AF20E -:10FCD0006745636CBDCA0DBF3F209574E50395165B -:10FCE0001F08C5F2015438041F7868089F7FADCC07 -:10FCF00091B54319E4FFF0B3BC4F0221EFEF52F48A -:10FD000030D35F8B53D851A67E7E9B2CF4F32470A6 -:10FD100069EE42E2C336335E55E4ADF1212ECEE505 -:10FD200054C3CDCC6FAC78180420CBFB5381CBD51A -:10FD3000683F5B079F8FA3F7D2969EAD74DFC0F23A -:10FD4000B3A07EC0F6152C424E378EF910EF9BB44F -:10FD50000CFF3F86D6E5E0753DD4A33FF3F7D548C9 -:10FD600010CE52B28B95E256EA7388A02717D111B4 -:10FD7000F1F769B1F65612083D7E789BF0E38CE806 -:10FD800094FB75B4BF4ED05D42EE3700D157B7F645 -:10FD90008A7B55427B852514F63F7B9AE0EB17B2B0 -:10FDA00057BAB3473AF63309F5364C67FA92B6D3E9 -:10FDB000BA2F3B9B9A92289E6A66B9EC25BB6CA62B -:10FDC000DDC84A4FA0E73F60EAD91DF57D6EEE4FD2 -:10FDD000F1656CA7F825ECB795F87FDBEB8E8471A5 -:10FDE000C98AD9BF6237D444FD5F454EA9287FBB7D -:10FDF000E2CBE67EBF017DE579DA977879E4D81D1C -:10FE0000774E098181D171054F0F12FC6E4281F14D -:10FE10009B81744E94D49FF99D568AF6541FCE73DD -:10FE20007F076FBE9CE3243E03E38271126BA3FC49 -:10FE3000E707D3129F8BBC61F2D7148A7DC3F47697 -:10FE4000CDF8038D7FD421CE5D8E269BA9479C5B88 -:10FE5000BDD3515FF0C788C5276DA2FC687AEC79E5 -:10FE60008D55EF94D9EE50ADCBBB36CAFFAA3DE419 -:10FE7000F4939CCECA37EF71AC02B69FDB9F4FDB89 -:10FE800014BDAF670796A70CA2F8A27CC3D18BE084 -:10FE9000F8BC907FD54AD841FBFBF025BEA334EFD8 -:10FEA0006A0D8C67A81F2DECB8A698EC06111FD21E -:10FEB0006E1776607B9248AD799D1D382365109D45 -:10FEC000CBDE1C66BED8919F1166BE7776A097C721 -:10FED0006D9F65959BF9FF10790D549DE65BEE32A1 -:10FEE000ED8742752DFB5D51EF23BF4DFCF901C03D -:10FEF00078A11F9BF19E46DFBFF3395E777E7E9B24 -:10FF0000ABED95FFC2EFF34D7FB0AFF9D357EED015 -:10FF1000187F0ED3B80B4249C071DFFFA45FBFBD8D -:10FF20005F1BAF677D79A4FFC3651C2FC07EB5152D -:10FF30002DBF65BEBEC2A2FBA658BAEF65C2F14294 -:10FF4000E76AF1E72DDF009D0D1C9440EFFB35C9FA -:10FF50006BC4AF29F274E66BA79A24F68768D05673 -:10FF600047705E29897D59F9EA8D150ECA2F0695CD -:10FF7000F97C533C3FF305494F585E0F2CEF4A2163 -:10FF80003F95E05DB357261F02DFB7D1A2F824DD0D -:10FF9000B7D1A2EC62BA6F139DA7FB36D1F5E9BECB -:10FFA0004D7439DDB7892EA7FB36D179BA6F135D51 -:10FFB0009FEEDB44E7E9BE4D747DBA6F139DA7FB4E -:10FFC00036D1F58F80FFC1F112C175E206826BD385 -:10FFD0001AA74A70C5ED7AAB289BC519E31FDDCB84 -:10FFE00089EE67B967AA6305C2614F8E0CD268BA01 -:10FFF00077B32CA6DFE57215FB0950ED6039E2C737 -:020000021000EC -:10000000FF313CE522B6933F6F962003F175E986F8 -:1000100038FDA1E5DE3AD2B76F0AC57E5F0E517E8C -:10002000F7DCAEE7404B0699F1C0BDA137E1F31410 -:10003000D9ADD33E9FDA27EB4E305D00B4CF5B8560 -:100040003FB214063D349EF7D10E218D8E4744F900 -:10005000A98D722890DB793E746AEFAF0EFBB0DE9B -:10006000D25EB24A74E7CC89DDEF242D76BF7B14D3 -:10007000C6EE778A1EBBDFA9A363F73B1ECE694697 -:10008000ECFE833C9DE1BCBC0F9A77387EC6B45829 -:100090007CB0E03B1AFF27F05563F82E41F83E2C68 -:1000A000D1B9DA3D7BFA685DE15CDD7CAF83F4D7E2 -:1000B0008B85F37D7170FE1CC657B819B830D335E7 -:1000C000B2535F2ADBEBE72081636ADF0AF35EAF9E -:1000D00038DF31E18AFA0BDB0B51E750F5B2CCFA8D -:1000E000CC26A267233385F980BEA107EFD73097CE -:1000F000E86F31F8983F2D8ED36B96BAEF77905E0C -:1001000013BF4E9A0DF95D2A5B845E13BFDE2EFE8F -:10011000A842B5B58FE0DB8D0FEBB4CC168B4FFB4F -:10012000C88F91096D0ED263BAE38333728C5F93EB -:10013000DC402E06040F610AF05F427DB2A6A35890 -:10014000F8E79D7EE1E787401ACF6314887970A3B2 -:10015000287FFF2825C47E073429D8BF64D963F1DE -:10016000F084BED2DAB7B05FF92530E1A8CB92AD0A -:10017000D37F8F56A041FAF5C8CF84FE34DAD51864 -:1001800054B4AEF6F927F9E639B762C67F5EE01CD3 -:1001900092E64F7E8E6BCCF8BB092DA35EA17CC787 -:1001A000B9E4CE57FBD07E8DDFF9FB0C4ADF92B469 -:1001B000C7EEC0F1AF96045EC4DB95C11DE334DA2F -:1001C000FFCB242FFB2BA682BFAFB047423CAF89A9 -:1001D0002E1FEBB5369761E7F328D37F09109E4AAF -:1001E0007AFA32DDC1F358AB7E3095FC31CBC1F4E5 -:1001F000C734C7EE5F177B28CE0EAAC2FDA77EE3E9 -:10020000ED9E047814170F102BEF17145AF7CA45F8 -:10021000BC8A06E2FE77A5E947AA746DF4887338B4 -:1002200094737DA18BDDA410E0C7F07985BD90EDBE -:1002300062B407F8BC5F73248AD7033593CFD56FB8 -:1002400074CF64BE7C637D17BF0EE3F5E2860BAC12 -:10025000CBD413C6D3379CFFE1419A90FBC9D3F7A7 -:100260001A545CD6D63F5A9FAD7188FBB9E0CF884F -:10027000B9B730B8509C7B97997A53A5CB8453611A -:10028000A08EF4E30EBDA98BBDF8F5EEC958F12E92 -:1002900008AFA242C6E306CF9ACCCEF31D6B1D9FDA -:1002A0008C687BBC15E125A74C76117F5CD1CF37DC -:1002B0008CEAF73B103E4C74036E8DF5F593CDC779 -:1002C000F6CB799DEB423C7B701CADA35956C5BD66 -:1002D000F940DD38ECB7BD54E05DF7F6AF8027CECE -:1002E000EBB2C2ACAEF3B2E2ECA7C845A9E128BDBF -:1002F0003DC3845FFB10EF146A57F6C7BE1E9AAF6A -:100300003DAF714F6FD28B6F157A31EE2BFB41648D -:100310003B48A4974E91CFDE42F95339A092FD9904 -:10032000D923207B48CF5B00EC2702DDAF13AAC89E -:10033000FD8AD84ECEBE15ED27ECF7DD5537A6D198 -:10034000FDFEEC944569F96E8A6FC2A90EC0BC64CB -:10035000F38AFBD9CFBCF76F65543E8FFDD2D73BF4 -:10036000C53973EE0FFEB69CE900B474E7181ACFD6 -:10037000C7EF0B44D2649E5FF9B59F0D27FDAAF726 -:1003800059F730D2CF7AD1392F8274A8491F9755A7 -:100390004486FBDD9D70CACC4F6CBF649BF03898DF -:1003A0007C72369D8758F7301EEAF1069F879F348E -:1003B000CF4FF28C69A984E707075AE75AAD59E491 -:1003C000B2AA4E3252E7D03CDF94F97EC567AA91BB -:1003D0009A86E527C1CBFA63A0CDCEE744ABEEAE5B -:1003E000E899EEEE3E6E7F4DA1B06FAAE2E2A2AABE -:1003F0009456079D6755FD9371514D6871273A0FCB -:10040000B3D65F9DA68032145309BCE7ABF7E23F39 -:10041000E48470DC629677777FE3E7E6FAACFB1959 -:10042000D5743F033FAD7ABEBC279CC70EAD3E33AB -:100430002EE61E04D96BB4BEEA3313F97BC55D27E3 -:100440001C84DFD40F3D8560DDCFE80ECED985C298 -:10045000DEA8A67B0D19D1DF051D77F69FC9E54FF4 -:100460009A707B72AF6DDAE604F37CBD50D8DD4341 -:10047000B214F6175CDA0AC6A604E35AF5ACF70D17 -:10048000BA9B57D3A4F07C9A37C505271A6FA709E2 -:10049000476BBE4DE9E1255E71CE3A90DE2FE8C88C -:1004A000AB91FE5747F1D3B3A67FA0E93BE1FEFC39 -:1004B0005EC615C28EED6E9FE7F4F3A5137F18A9F3 -:1004C000B4DEFA4A269B5D407EB49EF35A6D242723 -:1004D0003BF84F37FBDD096739E61E4C57383BB810 -:1004E000BCE3FE19181E299BE410B03EF0D01F4B50 -:1004F0001C0E1CFF980D22C477A6C87DA7BE4079AC -:10050000B41F882E8FB1ECC07483CCF7998E3D9ABE -:10051000EF20BB6C49394464E45BC7DEEA5F477196 -:1005200097DA02D424C7A1BAB336F6FCB1128C3DD7 -:1005300029D8EEC603DED456CC2FBA27568E1D7BA3 -:10054000EBC70EB207A4856E3FC515E13CA7BE8080 -:10055000F9C5CD0EBE9FB5E4FEF8FE62F5E06C5322 -:10056000DEC6EBC39F179AFAF048184972E685DA9F -:1005700066F17E8E791F11F53F23119E587A7028FF -:1005800079D2DF99EF43A34C7C699C92B8FE92220A -:10059000B10F2B1F3BEDF068DDD3D971E42705388F -:1005A000FE895A95D3ACC1866B30F63F60B02F659B -:1005B00030B697B548FF4FD8CF29CE4111DF385F0D -:1005C00043F7D448DECE157A8253BEB992F5D13EB8 -:1005D000A006597FF1FBD99F6E43FD248DE2376E53 -:1005E000913DEC6F10EF078DF968511AAD37F3BFED -:1005F000E73C4D70A53B0E40EFB0941BA5C4DFD780 -:10060000CF70F379FF265B80FBA140ADBB109EA1AC -:1006100027C7EC26F77941E3BD93C8EE535B76B567 -:1006200092BD526FFB740FC525D44F043DC8D00E48 -:10063000F138352D339EA6F6FD67BA75BA5FBA3E1E -:10064000D72855A3FAD720F21EE99927AB6CEC37CF -:100650003DD5FC0B3EAF42FB2E42CAF7A9AA3CF6A1 -:100660009B59713F7CF697C06F7802E51B44DDE72C -:100670005ED1B4C946FAF8A5B451517155D6BCAA99 -:10068000EE6CCDBE8EE4EE130ACBD1CCDF5CC1F1B3 -:1006900003B98A26113CAF9354A18F9A7AF2B560C0 -:1006A000FD35BC42FAE942D293110F3F94421CAF90 -:1006B00069839667A9FDDC1CA10F82D63882FCD71E -:1006C000E12AF37DA2E5F634D26FAC7382EEF0A19D -:1006D0003B3F0FF6B4E41D1CF7A404EC6FAAB14530 -:1006E000FAD3FC8EDB13CBD779834D3E30D01F621B -:1006F000799E0EEA6334AF025F2ED165B54D5BC9BA -:100700007EAF7D5E8E0F6997D4F498775ED4865F56 -:1007100093DE5D6353857D73C028A5F398F6194574 -:10072000FCEECB497BB83FF311E47B149775EB13D8 -:100730004D3315845B756FD4BB30BFF9895D3315BC -:100740007A87272FBCC486F95707FF45940F091FE6 -:10075000A6FC1F9FF848940F0B2FA1FD39F9C4691F -:100760009127030C11EC6F4FFCEFCC00AEEBB8E916 -:10077000FF043D3C9FE659FDC2205BB47FF1C86099 -:10078000C1378F27897AC773E186AB49FF280CF3FD -:100790007D18ABDE6B83CDFB0426FEDFF462522BAB -:1007A000C5095BED202771FF41B3DD4DE67B59485C -:1007B0007FBFA27A2FE768E9BCCF479147115C9EC3 -:1007C0001FCCE73D370D4EE7FA049FF4A2AEE32DB0 -:1007D00023394F72C01E7BFFADC1DC2F2812FD579D -:1007E000F756D3683FB2D3859D811B927617BF63BE -:1007F000B0C9D4ABC4FE64CA6A695065B9339CEC15 -:10080000E697CFF62D65BBB9A29BFB9E83851CBBEB -:100810002928C689F4D2D4CD7CEF1C0C8A4779B93B -:10082000396973F47B29274DF81E199C26E0D7B14E -:100830000F3D251E2768C2A52FC2BBB8137FACF69B -:10084000175AF7F67FD1BABBEC5399989FB51E8023 -:100850007B051C707E69A8E71F5F63B61B6DCD43E7 -:10086000637AB8E9C5DB3708FEA7A5B3DD0E3F11F3 -:10087000707059E316F1F9E40A530F96036F38C804 -:10088000DE5851DFC6EFAFAD6814EF6D75D29DB184 -:100890002A9ACE32F3C53A33652333C8F488EB6322 -:1008A0007A34CC788358FCE980773C1D77E94F4B4C -:1008B0008FED4FE3FEBADB87B08917DFD83E041314 -:1008C000C3B383BFC4C1AF831E73CD76458867654C -:1008D0005DE9F18FDDD171EED71CCFBC77B2E27646 -:1008E000335E558BC5E3154DB9B685459DF5EF6E65 -:1008F000BCD71B1D4FEB6A5A1020F957D352CE714B -:10090000B52B9EDBFAEB00B65FB6FD010F05531F5A -:10091000531AB2492FAE7A6C9DC7A0731625E021F9 -:10092000BE792C244F4B747F75D41029461FABA67B -:100930007F62FFC79FFC5BDDBFE1FCBF9050BF4201 -:10094000785737FDB58EECB73D862B4272FBA81267 -:100950009E4A72F4A6056E3FBD2F58D31CAB4F2D97 -:10096000FBE503D91A077707FAD8589F6AED43EDDC -:10097000AA1FB5EB64BF57EF93751C066A20524758 -:10098000F38B6F5FD3F8A183E0AAA23ED8775CD740 -:1009900072E4248CF7354D3FFA54F6507AEC1D285A -:1009A000A1FEA2FC1108F7CA6EF4B2C221B1F7028F -:1009B0002CF840288BF59BE0130F95BC8FF33AF190 -:1009C000E86B1EA9285A5EDE29CEA91A6FFCF90B26 -:1009D0005AF772F524E907CEAE7A80D62C0925BBEA -:1009E00045A455F6560FF905AA36D9F5007EAEDABC -:1009F000FA8BC7E95C05DE76EA74F458B5F5B48382 -:100A0000DE3FAB928C88C47A1678A4919DFBB47CAF -:100A1000EB47C25FD54B86E9B84FCB7EF5B9A86FDF -:100A2000402409EB2F7FFA7DF66F55F9DC7E578263 -:100A30007DAA68DCE508BB13EC53E3FB53490F0ABE -:100A40003EF125EFC3B19D12F4CCEDDABE72D3476F -:100A50000EA29B13B8211969025E649FD634CA0B9B -:100A60001CA989F6ADF52AD2FFB09CFD2017DA3F0C -:100A7000D7101074F1DCD66D640F54BEE3D4A7D345 -:100A8000B8DB6EF100EEFF11C52FF0FD67EBB20D84 -:100A90001CB7D21EC8563915DF2B1FB995F170E966 -:100AA0009BB766B35E07462FDB685E6F2F5AE7E29F -:100AB0008DB3789D4BC0C77858F933E1CFF85C818E -:100AC0006989EE1B6F1F22E487136E2E21FAF81C32 -:100AD0007B223FCC11078878DEB7C43B644EB83A1E -:100AE00035FA9DB93B8708391080D07BF4FE640D40 -:100AF000DAC5C417E4373F9F4AFDACCA55FC4E9592 -:100B0000D71F30E1259D13F11C9A62C59DE6E17E59 -:100B1000BD39A527D9C14E38E5B8BE8CDF69D0C82C -:100B2000FF1BD58EE17664B33359423BFF4876E232 -:100B30007B84EF99EBC0BFB7200A9F6AB61C617C2B -:100B400002B4BB527344FE61A243B48B52116E9F38 -:100B5000EDFBD0D19BFC1D99361840F36DFB88F35B -:100B6000A0676954DFEABFA6D919F32E49CDA31FA8 -:100B7000C5D1B333EEBD133FC3B3065235D2378F61 -:100B80003822535FA471705C8AD75C72BF33E6BDB4 -:100B9000B04E7C71747ECFEDA44FCBBE5A6AD27F2B -:100BA000FCFAE3F9C19371FC0036667DA5F79FAAB4 -:100BB000ECA1C7093E5548AF01A657417FA8A347FE -:100BC00006203D7CFCD44BFBBF4F7EBA467BE674CF -:100BD0001E2D96CF563E83F44BFE348477924E7C86 -:100BE000F64B07E9BD39156807E3BC3F76EB74297E -:100BF000AD2BDDE2F78474EB063ED7FABFC55F97F5 -:100C000076C35FF7C5C1F373284AA53B0CC79F5C49 -:100C10007E09FB15E2E06BD9BBF17CB37A88C67024 -:100C20008EE79BF8B71FA2E0B8ECBF3F61BCFDA206 -:100C3000973807AB7EF4AF2CBF10AC1127E26D756F -:100C4000E853CEAF23F9C5F95D33E9BCBAEBBA631B -:100C5000E1195FBEC1E4471DF7DCEE8400C5DD4548 -:100C600076C8FC0E433BCEA58EF4F3A772F99C70B8 -:100C70009DA9EFB7AB110FE9E7EBD2AC3CDC40EF3D -:100C8000C1B4074AD400B54F32E30FBC114F5A9498 -:100C90009EF47E8BEC21BD2E1C826989DF050CF24F -:100CA0003CC2D05DF91A715F4B3EBB2D6CDAF54E3C -:100CB0001C2FBCE6CB6D746E7E4871F1B9E5A23590 -:100CC000733C7CFFAF25FF3F092F16BF8A70247A43 -:100CD0000A188E5E08E71B0508D0FC08F079B09C66 -:100CE00052B6E745ACB704014CE724F1FE9465E049 -:100CF0004D6DCDEDEA374139E820F9BF14E511FB20 -:100D0000BD37C6962F6BF998F16C591C9EF908CF28 -:100D10007A75C5B3DC4B4DFF4A29949AE7BA6CCF7C -:100D2000B7EF95F93CFF940B58DFA0735EDC3138C8 -:100D3000D522F3FE9C7A4A0A71BC61204BBCDF8A43 -:100D4000F84E7A968587F1F67D7C7AE2D97747D29C -:100D50003DB1AA5FFFA5E4BF303DF1EBB707BE4848 -:100D6000F9E7FEDCFF2FD0B57EC5CEBFB21DD3BEE6 -:100D7000D3C9FED0F69DBFED4F72B9FD05A74EF861 -:100D8000DB7EA753C435EC4CE177CCDAFB09BF5DC1 -:100D900070C7972561965B6B791FA75FEAE0FD3E00 -:100DA000D5F2379623A75A9C1AADA366670FF68F24 -:100DB000D5BC901422FF40FB8E2F4746BF77F5CF5E -:100DC000AEA7DABC4FD39E0273296EA63D4DC4591F -:100DD000D6BC38E6176BC81E69DAE520FF7FC56F01 -:100DE000FE5E427CA9FD995D0EE25B68973E02883B -:100DF0001F732EFDE903F65E745F0CD8DE3E7DE9BD -:100E00003BB3E87DACAE701170684738D0BA102E95 -:100E100095A49775078FEA6F2D3C3E657BA2AA6566 -:100E200014D351275C24437C4F09B9245AFFF31E85 -:100E3000F21BB5E7A1FCD769DD5F9690FE74A17542 -:100E4000FFC7A5E27DEEFFE7D76D838B5AF753DF2F -:100E5000DA750BFC1F76A926DEA78AA383AE78FE7F -:100E6000DC0F38BF2D45E7F97E45FA7FFD5BBBFE01 -:100E7000AFBCEF25E4B7BDD87DFFF85BBBEE0BED53 -:100E8000FBABE6BEA7A874BFAE7DC7DFFBF37ABF9E -:100E9000E2BA938BBEADFCEDFCEBEED08F64AF8B72 -:100EA0009ED8BA075ADB344CD775A3A78C2AB2FC5C -:100EB00010C21E914D7D631D0C3336915D857A06FF -:100EC000D901EB3245BE1EF50799EF0F72B00AD477 -:100ED000F7D5C5BBB68A1F54CCDBFF7C23C7B3ACA8 -:100EE000CBFE0EE495D17985F06304D7E8BE5DD8DA -:100EF0003E9866D3823A3D57B5D2B709CBD5DEB21C -:100F00004AF6CD3AED6A57F43B168ADB1163A7B86F -:100F1000E3EC8DE402478C5D9204BB55F2C327E9F4 -:100F20000AC7FF3921AA3DD6CF2A12EFF42743285A -:100F3000A0BA2F1E4E8BBE3E9C5C7CAF5235E104A6 -:100F40008641EB766A0AEB610AA0FD28D621EC4EB9 -:100F500084A316054730ED50C504B9A20D6338A22D -:100F600001A14D1A4D70F5331C83BD6495E1DAD9AA -:100F70001FAF3B7E1FD6699320CFD4C725FD9B872B -:100F8000F3D822111F100F672BCDF795AF21FD77F6 -:100F9000D51A71CEF5CCEFBEC3F9263BEAC374CFA8 -:100FA00030D5B7A288FC8E5E43223A5D3543BC2F14 -:100FB0005846F7C032C9D41771B899AEBEA0B0BFB9 -:100FC00012ED0CF657AA40F69F3C091AD91FE855B6 -:100FD000E2E27A558E7B0ADE2CE29EA01034F14EBE -:100FE0004B6CFC4F601214525CC314B9AA81E675B5 -:100FF0000A521A28EED2616FEDCFFEE17E008F918A -:10100000BFA5FC8B8D549E8B7A3DD07D32A5F53DDE -:101010008A6FB84D4E058EAB8AE0A728B85D76C6BC -:10102000054A149CCB212D267FA2DFE126B213F2C4 -:10103000024E9582C72A5CBD62DA9FE87586C70BAF -:101040003A5D2AD94753D4DC98F6B267EF7B64D770 -:10105000BC916E63BBE0F29CC131EDAFFAE0C4C657 -:101060000526CED23ABEF7AEB8A78AF6D623AF632E -:10107000BB37EF0720BFF1155A694CBB66D3BF12CF -:101080009962E7F766AE2C1C13336E737837C3A5ED -:101090002A0B243A0FAEB2214960BDEFEAE531F5E3 -:1010A000BE37FA8A987E67183362F255ABBF0025C7 -:1010B0000360DCEAB340EF0796B636C6B41FBEB78E -:1010C00039A6BEE7753485302DDDA705291D75507D -:1010D000DC231D8EFB41E71BCDE1853AC5EB14D324 -:1010E00005D0323A16F0565018F2C8A3FE9728BD24 -:1010F00050FC3298EFB2269BE7AFEB6DA1C605B965 -:1011000014FFD3F0E35D12C743EE263C1D1D69A812 -:1011100048C5EA63CF34BE446953DBF87A7AC7B373 -:101120000AA08DE5AFDBC6E70253E4961289ED9F76 -:101130001EC39D51E72EDDBDD7F9A3D2F27D4548F0 -:10114000476B738C865DC4F727BD3B5FCEEB5A0FB0 -:101150005425128DE73F2AF51EA6384D2B4E2AB98D -:101160004216BF4771B98893A9B3E94926F362FDD6 -:10117000409D6AE738FE65C582BF8D6CDBDCE82EDA -:1011800023BBD3A5D1BE2667C4DEF3BE71B4B8B706 -:10119000F7459179BEA2A859D7931FBC3845B4270B -:1011A0001F1F8D37DDC6FA94E780BEC78EF9FB0A94 -:1011B000F7A9C4CE9AA67F10E0F74D0FB44D903436 -:1011C000809EF794DAC80E87BD76FE7D99A6C2C9C7 -:1011D000A70BA87CFA5B1CC3B86BC22F0B49BEAD32 -:1011E0001C3CE4BCEF8C7ACE48A045C5412C2BD6E4 -:1011F000783E1E25CCEF1279CE285CEE99A7DBFA5B -:10120000478DB77282D0FF560E4EDE4A78EB3960BA -:1012100088B8A842B73680E9239CC37C4209E75CC2 -:101220009F22E2ABB4F3BCF37F7CCB88349263198A -:10123000E57A1AF94133B6CA1DF7CE683D3FA6FFDD -:10124000D0C13AACDF3F19E7B58562D744792BF2BC -:101250002458EFB0CA9125613E43B2CAD7CF9E5CF5 -:10126000C4EF31C6D41F9AD751DF70E574F6AF15BD -:10127000AFDFBFB688E037CA467125EB7F67E777F7 -:1012800006709DAC4FAC447A06E97CF0EC710178B5 -:101290007AB8FC90A4C5BD9FDB5A4CF982BEBE4112 -:1012A000C558FF92B3A9FC0EC067F5492CFF2E3933 -:1012B000FB3D7EAFB3C961F4BF9DFD37491C6F365E -:1012C000E3E68F37AC26BABEEA7821C52858EF5737 -:1012D000D6A85F303FB0E2EC3AE187F88B78FF6345 -:1012E0005B679EF883A7139E06BDCFB53E0ABEF48A -:1012F0009B2F334C78FA8A37CE5E8BFD6B8BA6E53D -:10130000105D9E0637C7F59D561F9F4DF33DBDC529 -:10131000CE41B44D26BF0C149AEF11648673E85E7B -:101320007EF19B368E473A88F860203EE4B7BE993E -:101330005E4CED3295748A6F383DFECFFC6EC2E98B -:101340001F0207172F0B3B185E4D998B2ACA19FFF6 -:10135000B574F23F58F06D34FB79B8D4B8B298FD4B -:101360005CE67D1163EC45BD3FB96BC2977C2EB046 -:101370003617F5FC340A393E5347EF4BAECCB5B3C4 -:101380005C5A99F6C5D44CC2F7725784DE81A859CD -:10139000FD19C317BBC98DBE07A69C91418B8ADF7F -:1013A000D2868AFD571483F75F39E3E0F2AAD5A706 -:1013B000996F5BED4F98E7ABF42E23DD17AAFA8700 -:1013C000CCF746911FD64BC328DDED5819C54FA069 -:1013D000F1D30E3E3F14F7EABEE96F25939F728664 -:1013E000A4CEA2F9B56C3B339BE2056624A9B328D1 -:1013F000DEA06EDBFBB329BE60463F7516C517DC69 -:10140000573C790E97F7521FB0A1FC7AB964BEC859 -:10141000E7AA7FA2FC535BEF98C3F553C4BEDFB6C7 -:1014200075CE9C00F36337D3C1A9FA1E21E779E892 -:1014300060E9EA1721FA3DDB2EE5E6EF49C15CC120 -:10144000F73EB9BB0FBFDB09056D1C2FB6BE58F8C0 -:10145000FB3BCF5741A5F3D5CC7C30C8DF9CF95C72 -:1014600092F85DA2436DFD097E4736DEF203F2A7D6 -:10147000AE9080DFD1AF026D24D1D5425BF83D4AFA -:101480005F1CEEBBB798F5A9368E775DBA7A27CF89 -:10149000EF53DD8C5B562345DEAFF54E04F69FF02F -:1014A0009D88D838E30F6CDA40EA5731E1B2506ECC -:1014B0009BEF10F37A94E6B5227D17C7392B6A5B50 -:1014C000B64FE851856C3FE524F37BD175BDDF292C -:1014D00049F43B088DB528EF91E49EA96DE674F5BB -:1014E00050607CEBA9841D3AF6537D40C89D916DF8 -:1014F0001F38A2E319779BF04D357FEF2A3E1E7708 -:1015000037C9A5A8B88315BD5BFB927E68ED6BE774 -:10151000BEB4F635F70568BE99192F3D45EF9D50CD -:101520009CEB0FE93CE3B9A456F25B778F27D63EDC -:10153000887937250BBE11793689F5A6F8751C34E4 -:10154000E76DAD2762CADFEED61131E5EBBF6A1D4C -:101550001193BFC7AFC7A26FEBBB45DF5DDB8BF954 -:101560005F3CDE897B6D17C23B8BFF5483AF50DC41 -:101570009716FCC682B7354F0B6E4DDDC4E32AAB20 -:101580009F8F598FD236898C1E482D11EF5F298D80 -:101590005700ED87B2BA85EB75B71E39E5333EC704 -:1015A00059A6819FF4DEF875554123B7EBBAAE0812 -:1015B000F3E3159AE0C75DE3F823CC9FABD13E235C -:1015C0007DDC5A77079FC6F5137D4F4086C37C9319 -:1015D000EE124A645FF862F4E372BA31117D6EE58F -:1015E000BA39263F45BD3DA6FEE5396B62CAAFD08C -:1015F000EE8E29BFB2F0DE98FC77F59FC6E9F79B27 -:10160000E2F4FB2762CAC787DB58FF7EA3761AC7BE -:10161000A74F3C1A613DBCB556E5FCEEDA1C4E5FA7 -:10162000AED598FEF7D41672BAB756E7EFBFAB1D2A -:10163000CDE9EBB506A76DB55E4EE3F946595BB84B -:101640008CFCFBA33353F93C6AE350DFF525140708 -:10165000B92F5244F837F640E34B240AF2439FBEB9 -:1016600047F54EAB0E8E475CBB6BCC1F6EC17CC684 -:10167000EB322469E7D38B6430A2F0C7333D0C749E -:10168000FEED01F13E567CFD8525424F9E0B61F13A -:101690009EC06A3E0187B92EF5152393C54684EC9A -:1016A000F6B9E0673DD4B65ABC5333177428237B90 -:1016B000D607FE7B381E29F67D01AF3163DDAFB062 -:1016C0007C36DD3BC5F6DF7737F2BDF267F6A64F15 -:1016D0002EC5EFD77A25FE9D8F033BEFBAD5C5F611 -:1016E000AF75FFF41DDBC5E8130B4B047DB54B7ADA -:1016F0001BCD379026DE2F8A6F37CA5CE755C108AD -:10170000EB1F11D43F28DECCA2CB19EA2173FD9A3E -:101710002D750CD1C71ABEDF50D5A6E94184F798C4 -:1017200043822E46205DD0BE8D3D2AE86024D20142 -:10173000CB41D33EB4E800EDA997A8FDA983A03B17 -:10174000B17DDDC41FC9647F8DF92C14A4F4B2B33C -:10175000915DE7B07C5C9BF8DDA40BD993965EDAD3 -:10176000523B97F16867AD8FD3D6DA4A133FFD9CA1 -:101770007FB97635E7F7D40638DD5B5B6FE2670348 -:1017800097BF5EBB81F36FD4864C3CDDC2DF3592E0 -:1017900067089FBB4B4C39ED2A37ED0A917A8D359E -:1017A00076BEE78F9F889FCCA5B9127E544A21E26E -:1017B000DF75E9013BE5EB92690F68D601AE7F9DCD -:1017C0001B5A490E54E5BC28F4B0383C29CFBC86DE -:1017D000F164A619C77A20BDEE5607E2C389C6FB9D -:1017E000ECB1EF8D5E1C5E2C73AFE57B7DF17CF17F -:1017F000267A8F42EECA0F0174BDAC4CDCEFA238E2 -:10180000BDAFCAEF555B9B795F4CDC7FA9EEEBE681 -:1018100038DB7F9D9C514D39030BA87E87FD9D7C55 -:10182000703EBD8FD7052E71F6F7E141627F2DFB2B -:101830001BF54CF64BB58764B6BF2A731B3C6C7F17 -:101840008F8E78683F6FDA2103EB8B8A38EF5D4A21 -:101850001D6914D7D3BA7F1CCB99557B882F2D33A4 -:10186000CF7BE3CF6DABE9BC574A04EF30C7D52F30 -:1018700037CF7BE3D75D3DFE089FF7565FE05EE91B -:101880007B25B1BFE7137F7FB73B7CA17882E8F768 -:101890005C4F9EAD653BEDC8B63B1E0AF4FDD7ED2F -:1018A000DFADA5DECF4A441C35DF9BB3F6B3CEFCDB -:1018B0005DCEBA492EBEC7D03E42E5F76FDA25F1BC -:1018C000FE4EFB5F415FA3D1FB3AEACB24172ED338 -:1018D0001DCC574787C57B01E3E95E6282F702268C -:1018E0001C0A0553A8DDC100FBA3C6ECF305E9DE25 -:1018F000EDA8D70D99C8ABF465AF4C7860C9274BFC -:101900005E75D295796F8E6232F2BF3AFD698B4671 -:10191000E7907ED761B7BAA7F23B45A75B81A349A1 -:101920002DBFD8F083864CF712461CF20549DED64F -:101930009976E6A813013915BF4FF8CCCF76D018A9 -:10194000B453E552718FDA8882AFE5D7B2F89CC5FF -:10195000D7AC7B7BAAC3B785FCCFF04212BFFF1286 -:101960003FEF41436DD67BD6838612DF33EFE94DDF -:1019700091CFEE3A4776419B8817B8E46CFBE3645D -:10198000F7AC7AB607DF53BB907D50A39E4EA89F5D -:101990005A698D4D9CA30CABD08693BD497A2BD947 -:1019A000A1965D1A5FBFAC74D2D8A15934AFF16D66 -:1019B00006E1B76A3B2F7ED7ACFEF4BC76A1357E3C -:1019C000CD8E11EAC228BFD5EAA19219C7F2F5DE81 -:1019D000A19E10991B23C7BEED7A1FD26119E11792 -:1019E000D98624A7BE4F3B80EBB80E5A595FB9DEAB -:1019F000FC1D8B1B001CD1F7646F0483F9C39F741B -:101A00005F0DE1CD6288CCA77C8D14A97A1141F8D5 -:101A1000C9C4716AAED6555E5FAC7C4E36EFC1C6A6 -:101A2000C3FD4E136F2DFEDFEDFEC4F1FFF65295A0 -:101A3000EF41B73F3BCE46E738EDBF97F9FD54ACD9 -:101A4000C87C25384CDC3B1D3ECF7C8704F9CA009E -:101A5000BD2B5F393D7ECE64F61FD1C106C59F2ADE -:101A60007AE1F551F7CD82E6EFBA6CC194E22553E5 -:101A7000E78595E8F3B39F9AF32FBF7632903D74D4 -:101A8000952AECCE292EC84C225E78F674D12C64AF -:101A90001057913E3B9CDF617F98E0DCF10E08F12E -:101AA000A34B70DFDE17E77C7093C4FED2E626916D -:101AB0002F5E9CC6EBFAAAFB883DF728C1F52F6E76 -:101AC0005286117D0F4D8FE4115D168F793B5DC2FB -:101AD000799598F7B170DAF510F5FB56EF9AEBF8B7 -:101AE0007CA8B18DE63734BD6DFD7DA45F3E6B03F0 -:101AF000F21B1E1973FB128892CB9ED249BFA27AA9 -:101B0000DB25F39DBA1DE2F70CB04576B47FEB4FB1 -:101B10007AC5F354AFD5F433C0AAE7F91EFF0C55CC -:101B2000EC014CCE327F4F32D23FD1EF0B59E75907 -:101B3000430996C2FFC8EF8A6D37FD936F0EFD60B3 -:101B40000EF917A1359247F3389224EE517B4A7D66 -:101B5000BF233E3394FCBCB48E9F09FFC091343F39 -:101B6000DF23791BF9339D1FFFA5D6C5E9BB681F8D -:101B700051FA3F681F51FA3EDA47947E88F611A564 -:101B80008BCF60A7B87F3374E36DE6AFDDACA37B8A -:101B9000FE1230F5FBC4BFD3F49609FF92A643773B -:101BA000F6203C6896393EBAF85985F5D3932DA3B3 -:101BB000627E9714E9F530ADAFA4F98F3FA17BD6D3 -:101BC000254D8A2A69742FFB7436C71FC6CD8FE056 -:101BD00040E70D911D0EF17B4AE67CB7A7B5ADA796 -:101BE000F6DB9FCDA319D2398EC0C31DCE84BF377B -:101BF0006CC5DB3D3154E85FDF7346CAA2CF1FE3FB -:101C0000E3D3D80F3C86F0B9E00F344E60AF0C033D -:101C1000182F63FD1BFD74710FC14A8B7738384E46 -:101C200079FB8EFD575F89FDFD1F8FB61B3100804C -:101C3000000000001F8B080000000000000BCD7D9D -:101C40000B7854D5B5F09A39F34A32934CC2000957 -:101C5000123809AF00018664121212E024048A8A45 -:101C60007482D482A28EB462541E23D29ADED23FF2 -:101C700027244012830605CA558401C1C7FDFCAE66 -:101C8000D102175BF44E50A9F6B73422E2A354C731 -:101C900047552C4A8A62EBAD2DFF5A6B9F939933BF -:101CA0004C0222FC97F0E9CE3E7B9FFD58EFC73EE9 -:101CB0003BB3265E5E24C900A7E9670A80CBDB1729 -:101CC000A008604CE9D70FDCEFC1F2599BDB0400A0 -:101CD000F360DB3437F6BBCED1F1A21BEBD7BBDF11 -:101CE0009B968EF51B334D07A8BC49CE999E812546 -:101CF0004088DFFF515EC5810CACCDF456DB024E4F -:101D0000800A9000F2807F4EE37F531D29008E6889 -:101D10007D9ABB8FA1FEBDCCCB0CFD2F978718DA27 -:101D2000AFCC1B6D68D7E79DE92D34F41B97D19597 -:101D30001B74D23EBEBAA71CF70326080FA37DED85 -:101D4000FEF2EDDBB19C35719E8FF67F0CDAAE1999 -:101D50008D1BFDA4A479E3FDF4B245B165F503B88C -:101D6000857EC7F6E3103E5286ED926BF9813BF11A -:101D7000BDDB322590BC00359BADEF4762D6B10488 -:101D8000FC6961EC77DB0EE37380882DEC03B83DD2 -:101D9000E00CB62000173D81ED0E433B8FBB78AFC2 -:101DA000CD4DED4BC0126DCF01A83D9AF3E40B3140 -:101DB000E38DCBE8BCEF7E1C6FDC9E39EE065CDF6A -:101DC00093A55F0F90719FE55E97E723040D4C800C -:101DD00009A711E42039CD80FD4EBD2485245CD7B0 -:101DE00034E99BD4483E3EAF423C67E17B26F90F85 -:101DF00065D8AEBE2CC14E1CE76F75F2932F5869A3 -:101E00007CB8D19F1FA50B80950C5FBD7CAB0E7F6E -:101E10001D01F0C73A07977FAA7373F96E5D269785 -:101E2000EFD5C95C7E5097C7E5AC431068C7F1FE9B -:101E3000FCF7F1007D681C15A06FB41C67F39A07CE -:101E4000E03ABA7E2F85B6E37EBF289F9006B4CED7 -:101E50006F70FE620D0F4802D5448CA5F8DF8FB776 -:101E6000BD98E5E3E7AA0BA75AF27709141C77B9E6 -:101E7000D724C65DD4F1629627DA0ECBDF33F48720 -:101E800015A603867A638EB1DE5A7120F67D1D0E8B -:101E9000F1E52D9BEFB0055C58AE372921E799EDB0 -:101EA000FA7AA6ED4F524C389E659F3D64C7FD2DD2 -:101EB000712BA0607F0B80D29E7FE67B00F50CE744 -:101EC000791204DB138C5B47E312BDEF4F02E93C50 -:101ED000C67D0B6983D6A3FE973DB413DF7B2B4DE4 -:101EE000017FCC3C2DDAF89FA5B7FDE22BECF7D9AA -:101EF00033404FB00E73693D63777D6C3663392E86 -:101F000059D0C95877C49C81E5899A7F6C3CE261BD -:101F100032F59B26637B6ED71107A2FCBEF6AB366B -:101F200039106F6F9BCD00034020BE04FBE31854B3 -:101F30007FD07BD5DC46FCFDCAFD4961F379ECE737 -:101F400041E445A6A34AC1EF3710DD88791440511A -:101F5000B37415E8F32A241F68FF547FADDDFFE654 -:101F60007AA233E8DA48F2E13840B885D7AFA4C6A0 -:101F7000F2FFD2677FC2FCB9280BF99E04E066C16C -:101F8000BF0EFC773A97F83534DD89EBBD358CFC14 -:101F90000F179FFF9FF13AA37C3E22219F1FBA1289 -:101FA000EB4B9F91BC766C3EB96F98E0278DEF7537 -:101FB0003ED7E1B87493C47CA9D73FDF27CD08256D -:101FC00080F7368D2E86285DB369BE65CF5AA00591 -:101FD000D7B76CD288FEB1E3C7BFB7B44902396640 -:101FE000FC279FB3D710BFC8D0D5AF1AF967DCB3B1 -:101FF000A7322AF24559CFF868D3E44DD720FF180D -:1020000094D726FF9F7E8EF301E27127C2A7327319 -:102010006E36CD3FDB094ACB7806CB1C07CA89ABAD -:102020000588E0EA92EBB201E1B919D12521DDCDB5 -:1020300051AA5FBF0EF1F80373E02A92F3C7BC43C5 -:1020400078FC6B5CCBAD606672CD36E17873E7D817 -:102050000B693FB31A045DBF9EDE759C9EBF3E298F -:10206000C5D480EFBD6E8246C888EEE375AB3F9B5A -:10207000E80D37EEFE08F163524649A7537A9617EA -:1020800044C91FE97894A2F26F9AE454699E936E52 -:1020900033D3BD25ABD546EBBA154207149C7789DF -:1020A000376C23F9773BB82D5462D1D54D1F447F4F -:1020B000E5FFE8388DEF2FE9944226ECDF5ED70E7E -:1020C00016C4EFD3757BB91CFCCDE0C6CB101ECB7C -:1020D000C7DBBC2DA4B734FA32AB26389D405F9DD8 -:1020E000499F96683BAEBBC2E10C4BA9F4D87A3C41 -:1020F000761D8DD94ACA78DC8FBAA63C9DE99368D3 -:102100006170749FE36C004E92F33B5358CE1F7B7B -:10211000AED84C783AF63B6BC844F52D23DEB8D3E5 -:10212000C7752079732CC36BB6517B466E48C5F6D4 -:102130005BCCA0925C86ED426E3D3FE9AE77488E67 -:102140002DDFE932D94D828E653401A447D7BEF325 -:10215000EF38CEADC8AC766F546F2C9AF2E8C62734 -:10216000900E1699DBEE29C767A7203CD68DF0FCB0 -:102170008BA97D38E9ED8F1FB287CDF4DEC323B77D -:102180004B38FECBA98191B41FC854FAE7E0F39A0B -:10219000437DA105DF9FFAE83F0F92DEBCF5C9BE83 -:1021A000CC5F3ADD4F233EC4F59C403EA4F59CDC59 -:1021B0003784F92E8A7F0187C5280FC8246ADEB1CB -:1021C000CE4FF80C24CBFCDC02AA7219E17BEF4D58 -:1021D00040765381645288CEBB9A115EA633E9499A -:1021E000196FE6F7169951BF121D06E44282C7091E -:1021F000935CA0F105D07ADE7F6EE4F6167C7FAEAC -:10220000D63F4A774797FC86E86EB3DD6BC7251C3F -:102210004F32EA7DBD9C393E9DF9E516C79760298E -:102220008C3E5F52FBB5B19E0F0AC98D8206B9F094 -:102230000E2CEFD4E07EC548FFF7C7E3FBB7B5AF80 -:10224000DBF38A4CF36EFEE9DB34EF4B4E9E175EF8 -:1022500011F03B6112FAA55BBF3AFECAE3A3E4E1C9 -:10226000F5EACF3F7EE88DB1011CFFE3DDA38703D4 -:10227000D2DD02A9F3A307115F9FBB3ADFF93996BC -:102280004FBF74A81FC12F7EBD8B6ABF004B8C1C33 -:102290003A6E32F17E17D13EF0F96F0AFD3733BE48 -:1022A0002DA827106E0B5AC66C2779304DCA4F23C4 -:1022B000BBE9C431E3FAE2D7A98FAFAF4F1F5FEF9D -:1022C000B78CE08F709838CE2DF4ABADF373C2EFBE -:1022D000677B469B9015A3CF333AC7A6E747F1E447 -:1022E00057EAADD4EF1A12F5888AB90E81D7B935FD -:1022F000A650430EF7E3F6EBF039E1BDC2D3C0F5CB -:10230000394ED467D87F51E66F785D24E81CA8D792 -:102310007E00FA4FF5AA5F61BF3797A5B25C987B44 -:102320004B9B95ECDC6E79A6BE6D3E3DFADBCB3364 -:10233000849EECEE07CCC3A43F013767C1FA24ADFD -:102340006E2AF963C3AF483EDF99EA95D064841AD8 -:1023500019C2C4D7272144F05E6D0AB2BDE7203D03 -:1023600080658BC99B69C1523277F5019E27C47085 -:102370009A06010BD57F6B8A3400BEB7CA539949C0 -:10238000F4FF2638FD6417FD207DF51892A395EE25 -:102390009973E9F96C35D5DD82FB6DB4CA77E793A3 -:1023A000FDF303C94B76AF0E175D7FCCB578AD0456 -:1023B000DF7E41D9AB22FD16BEA2384C0C7F874A86 -:1023C000E3BE6109F6A575BDE55C3FC664263B2DFD -:1023D000E41A839B7DFBD07F14FD1EDFFF2328932F -:1023E000C81E98F35B07CBF19B40667EFF11282C3B -:1023F000C76F8600D76F8188F54B7CEFDDD2FFD9A0 -:10240000B91FA2FB7A77E257BBC9AE9F2BB5F7CDB8 -:10241000C176B512F248CFFCDAF17FB646701D4A9C -:10242000830592D0BEFA35D129D9EF475DA19DD859 -:10243000EFAEE42DA91D588F9884FDA556069FA4E4 -:10244000FEAA19FC0D58F64D0E3C4F7CF8CB14310A -:102450004EADC5E126F94806168DF3D13B2EA67781 -:10246000D2BB3761BD0CB145F03AD157D09BFA577A -:1024700060B97BC2EAED5468DC53B27727BD3AD528 -:10248000CCEFC36999D75116A75F7CA3CDFC3EFC66 -:1024900043E6F72775590CFAC537CE1C7C1AF73777 -:1024A000E5EF965EF5CECD05827F7C7DCCC144F60E -:1024B000E0FF68FC851092683D0D7B4DA116264219 -:1024C000611F94E9F40891D5446FE50041A27BD8DF -:1024D0008B7A4C9F2797F7FFB9EA233AC476B60761 -:1024E000DB9F2739690F0A3EC1FA54DA8F23085E51 -:1024F000B2D750218305EB49F8A290BB6E203BB6C2 -:10250000A502DAA93E092212E17B0A417A08F9C341 -:1025100032D3ED5450B8AED3F1F740E5F272087102 -:1025200079258485BE07B9F1299CFFAA4F40EC6745 -:102530005498E91D1D19F747686FC0E5B798C9EEB3 -:10254000F0FD30B1BF30A840870B22C473EE709904 -:102550000E814C31BF80879D9EFBA2F070C4C123C9 -:1025600089E0E18DC203E710F03803BE023E931408 -:10257000840FCAA7C9D025D13C8A66DF548297CB85 -:102580002AF073D90B5C5EA8F79C09979248C01299 -:10259000C84F009FA989E96684069F3F1600CB2F8C -:1025A0005DFE5C5B20F3735D0E217F66923D1A2F0A -:1025B0009FF4E7BE94CA2F64A487AA82AC7916D48C -:1025C00067BEC2CA3B8760FDEAA7F344BDACF257C1 -:1025D000B958FF41C128511F5759684578D59B46C6 -:1025E000CFABC2FA90806923F1E5F27AB4AB715FA8 -:1025F00081A47B8244C7A60C709BB03D505FE42D44 -:10260000C07A00E912106E7629A79EE06CFF397837 -:102610001B7015196981C905B8DEFCF99DAB053E33 -:102620002BFBCFC5FEC73BAD6CB7ACB10583842790 -:102630006477777D69747FC79FFE790D3D7F7A004F -:10264000B849BF80472EF4BBCE5C8FD9015C5F8C4C -:102650007283E21F38DF4C9A2F80EA49A6753D2528 -:102660008508FECBEBA7B13F7024CFFFFD82BE31C2 -:10267000E3E33EA4F134AFD073E0C92924B8958CCC -:10268000F45F4BFD4EB850BEA651BBC0434F6563CF -:10269000813297E68D7F6E4EF9E6862538CF52A4BB -:1026A0001192D38B0B0237D2B84BCD914185F86C88 -:1026B00065CA3B36A60B05E993E403F12BEDB7069B -:1026C000E991E87ABFE057E40077B7FD8AF8F5F8BA -:1026D000BB6E58E813224EC2FF15CF0D3E8F6635F4 -:1026E0008D7F3BAD63A9D4B590E8F2F3F4D76C7F4E -:1026F00066BE1C28E84E935B4B9FFB9AF9E7593363 -:102700000425CD3F8618BE5BFA5C9285FCC3A59F6D -:10271000422805DF2FDBF77803F93BA5E8FF939FFD -:10272000BC78D753CC6FFB485F22E896FEF7B3CF57 -:102730003F487C7A6512C7A126BD767408D94153FB -:102740008E461A106D70E2D9372E13F4AFFB257F39 -:10275000339D8F1E9F26ADB887F0BD0CF16FC7F972 -:10276000969982A26E75B855967BC24FAED1F6F19E -:1027700019746E9CCF72453D504AFBC99480E56345 -:1027800048F81332FE23FEBFFD686835AD13A46F11 -:102790006C246F4EA15F4CFBBAFDB178BFA3EB4038 -:1027A00029F9DDE417E33E17B71BDB97C6EA870478 -:1027B0007EF296022D1E960DD9B4AF5FA33FF4C1F1 -:1027C000309A777E1AD9871329AE90405EEAFE715F -:1027D00028B9F29102B697DB25E287324BE2FE0B75 -:1027E000F3855FACDBFFCB1E92D88F5BF6509F5119 -:1027F000EC276BFC0A612FF3EF93A45788CE022FCE -:1028000003D1C12DDA9E60731FA6B95B9B4CECC748 -:10281000D8A53BBCA4F7C73DD2FFB67F63BA4975C4 -:102820004326D527CC7DCCC3F655908435FA556C1C -:10283000673E99DE954BF33F992E838AF3352475D5 -:10284000E5929C559F757849EFC6AFFBED02E10F0D -:102850000C098FDF14F1083C139FE7BC54BA89F0D0 -:102860007C12F99CF0B7CC35BC3F38C96E989C19E6 -:10287000C1B241B3D3731E1B95361BE1E2A3F5C66B -:10288000D8D51DAF5E9342F6F26E8B3FC58DFD4EDF -:102890001ECE35F841F16551189153D84BFB1B33CF -:1028A000870412C05D2F7D9B2C0C2F9D6E7F5DA732 -:1028B000C00756C247B9D8876A77DB7D447FA1A994 -:1028C000E44F2EBB19DC2DD87BD9CB0F3738A8DECF -:1028D0000C4CCD27E97FD4FF137388ECF15FA68CF5 -:1028E000BDB71CEBBB8E59849FA22A87F263EC58BC -:1028F0007BA6196403BD764A8B491E13DD23BD26D2 -:10290000C9C920C7D0634A5E86A1EEF20E30BC9FD3 -:1029100056926B684F574619DA8BA13612C0F514E0 -:10292000654AEE10AEB8CF8C0243BB1DE93A4CEBC2 -:10293000FC52D85125F84FE8DB20DB4365118007B6 -:10294000900E261E37DA59259136F637930E5B0C1A -:102950007100FB59E250C9851A7F0D8481C45F481C -:10296000FF5E9263270F8BB893ACC17359B6D0CF7B -:10297000CB5E96D80E5C76CCCC7AE22478BBF14361 -:10298000F251E7BB78B8F7F51BE1DC7FAE11AE5929 -:1029900001235C2FAB31C2353B6884EBE05A235CEA -:1029A0007354231C87344D34F41FD65669A88FD82E -:1029B0007485A1FFC8D06C437DF463D71AFA8F6980 -:1029C0005F60681FB7F736437B3C5D8D0F2F33B4D4 -:1029D000DB538F305D1D40BA32A13E287CE9DFE237 -:1029E000E8C2C2702F1AE8F48662F0AFE23FC27FFD -:1029F00099969798006A03F1E385C2FF1584FF94C6 -:102A000028FE75B9DA139FEAF81D42FA9AE565794E -:102A100084F07EB22485E9E5E04B270F2B40F84F88 -:102A20008502DCEFAC29228E22C9C126A2934E700A -:102A3000B591FDB9C61264FF4545B3702729E53845 -:102A40007FF3FB25E86FC6ACB35A49024BCC7EC777 -:102A500087DB0DF5C297F61AFA1775860DF5F18723 -:102A600041227D55F0A6F7792A8B3E5438FC55FC5F -:102A700049F0792A4BBF0CDE45FA37DECFBD5AAD9F -:102A800097D2C8AFFF7BFBF368D6A07F364825BF3F -:102A9000377247AAD73400E191FC4E03F9DF807604 -:102AA000B4159511B80FB23E98EF10EFFF2D69F2F3 -:102AB0002AEA6F42FF9CF08E70C9237BAF1692BD4D -:102AC0000417B25BC80F832B843DBFDAA4B23D9AD2 -:102AD00084F628D9230D157EB697A74370203DBFF5 -:102AE000069455C4779219ED577CFE3F23028D85DD -:102AF0004562B1443F777D21B3FF3D85FC6906A661 -:102B000002A4F74ED0EFB43E78691EC5E34F902E75 -:102B1000C3F5B7B5BC304F253BC303EE08AE3B2031 -:102B200040069B0B03F7D0B8EF9BDCAB0BF1DD83CA -:102B300013FF3288EC917585C2EEB34B0829A4814E -:102B4000FEF315A0E78DD9CA7D8545D1384B4FF4EA -:102B5000A3C733F5F8E6AEBA309716B75722BA8B4B -:102B60008F3B46CCEEAAF1A4FF9699D8EFFC0B2D33 -:102B7000AE94E7496539EF804E7B3A2F99FDFFEB24 -:102B800035BC991D9DAB7E8EEFDD1014F6D60293F9 -:102B900097FDF5DB338F731CC52E99C047FE505A45 -:102BA000FE76117FD1E3259749DFC6CE3ADB7E6FF3 -:102BB000CF3C668857C1137D12C6D7A3E3ABACFFE9 -:102BC00062F6B9659347E835F2F3DF6FCEAE84D491 -:102BD00044F37CCEF1ABEB83AF1AF8E2C6DAB70C64 -:102BE0007C7093FA9EA13DE2E9B252BC32B2276BEF -:102BF0003AC5D73FDB6D2F263C20FE0F16C6C4EB2F -:102C000022CDA3AB60ECB9ECF72FBC8EA3759D8CE5 -:102C1000577DBFEFD4BDC9F5485D84CBF8FDEAF11F -:102C200011BD4471D844F6CC5D12CA0BF277495EEF -:102C30007862E405401ED9FF7749A3BC44EFB6FD96 -:102C4000C147A9BDABDEEEDEEEE3F808C74D6A91E1 -:102C50002EC86E00A7787F81CDC176E81D3EE12F9A -:102C60001EADF8EA06B25F7320D58B32107FC27FAB -:102C7000A2B8C97C531AEBFFD55907B8FE61338857 -:102C8000BC514DF821F25797A6A60ABB58C1FE5871 -:102C90003F9161E6FAA11181AF981FF3C39CDF5801 -:102CA000DA5FC4F3C01319447CF833D9FFB5E05799 -:102CB0007780DA6B32D0DF46FAFDC4AC8E35116B0B -:102CC000ED1A70AD05F1FE49B2FA395934637CFD55 -:102CD000AE253FF3139BE0DF49BB4ECF53113E1FA0 -:102CE0009A24F6CFD5674C1CAF0167C4568D7ED8A9 -:102CF000038303561F8EDF66457BD2299ECF1E13AA -:102D00008DCB9EB0624971D024513A7DC2EE75F9E7 -:102D1000449E532F4710CCB09CE4D3E57CEB708AE3 -:102D2000BF9DDC6C07925B38BF42FE96FAAC88E32D -:102D3000F7CBF02F028117F71A5CAF6788FC05F11B -:102D40009F4742BF16F721FB720CF167726053B1C7 -:102D5000FDFD3DF66D84BFEEF51E16F1B0CF9A472E -:102D600073BC5BA713D9A7C5BD7F0C20DA2FDB4648 -:102D7000ED8B5F7EFF1D8ACFFDA63030D487ED0B33 -:102D8000CC7231C9C9C5A91D1CA72BF6C93C2FAEF1 -:102D900097F78B72AB117D7158EC88705CEF6CF11A -:102DA000FB9EF6FFD9CD9D1BF3395E2D8F25B9A271 -:102DB000CF8BEB28A675E8FBD4D7111DA777FED1E2 -:102DC000E3D07AFDE387D60CD7F20837FA13E8E5AB -:102DD000AB743AB6268EFBD768F88CC74FC18860B3 -:102DE00088E3796E703760FD5A0D4E9FCDC3FD703C -:102DF0003C44194FF85D3CDBE92538EBE3F7CB8029 -:102E0000C053BDCC73C548FF1CA2BFDB82224FA0BC -:102E1000B723FD893867730AD3EBE2E7DE7AE7E789 -:102E200038CBAD8F8E2924FDA1BF1F0F6784EF70B3 -:102E30005ACF0249E4CF10BE37D1F8F1F981F385BA -:102E4000EB89EC4ED60B27B6FD2C44EB3B91056E7F -:102E500013F2E3E27DBF7DD33496E8C41996B084C3 -:102E60005DC6F857BC9E7243E03A92237694236481 -:102E7000DFD8F5F7065A0CEF55672A77F9D81F55B2 -:102E8000EE2679645785BF362450C1F5E556E1AF8B -:102E9000EDEA34CBC4DFBB2C10223DBEFCD50C9533 -:102EA000ECC7E56877B0A79317E4F54232FA41E939 -:102EB00009EC069357E6785C5A600DC14BFAD1D401 -:102EC000079FC889FAA3BABE2CD2F4BD927F6303D0 -:102ED0008DEFD3E281686772BCB314029A1DA1C55D -:102EE000E19A0F701C4297DB3698EBA0F8CF9ABEA0 -:102EF0000B1CE41FCA382CC7D73CB3D3A0173B72B6 -:102F0000551D4ADA11D1BAB5073F5E3F1FC06BECC1 -:102F100047DB0512D6D07AD5814823FEDA3AEB7723 -:102F20005D2F60D932E691C84A6AFBE6B44476A4C4 -:102F300043B303B8E847EB14EFD906AEBEC384FA37 -:102F400033D96B81F763F4A00339FFFD3C6D5EB2AA -:102F50000732BBDBFF4078EB691F17AB24F8BC6F6F -:102F6000EDA5DDE6AD49240F12C28BC8C433FD18B0 -:102F7000D16332C4EC9BED9E98BA14072F89CAEE38 -:102F800076E57482FCE577DDD7AABAF0AB1F1AECC0 -:102F90008110AFDF6AF18317E9C9E6C176C3390C46 -:102FA00055CB7F220117C7ECEF1CF64576B955DBF0 -:102FB00097F522EF8BC6F5F7BBA4D7A75EE2EB0B24 -:102FC0005FE2F885EA4B1B7E4AF5A50D3FF5125FDF -:102FD0005FF812C72FCCBEB4D7A7CCBEB4F1AB5E9E -:102FE000E2EB0B5FE2F885AB2F6DF829575FDAF063 -:102FF000532FF1F5852F6DFCAA6C073ACB81CFCD0D -:10300000A6379A4374CE46AA0A73DE3857058E4710 -:10301000A73603E72BB67B851FA5C7E947D2103239 -:10302000FA2D567716D9D1DB1BEFABFC318E732A04 -:1030300013174FF9FCEC230A8DB36D1A70FEC2D939 -:10304000F8D1518A7FE540D81BCEA1B89A04E11887 -:10305000BBF4FA600A8463FC896AA58FA15ED43947 -:10306000C0D0FF964D430CED37B78D36B4FFA8A9FD -:10307000D050BF492D33F4B7434E4B1EE55D1B2D99 -:103080005ECA8359686FA567C20D76D8F83D05FF03 -:10309000911F9383167DF7B8B88F74D56618D7192A -:1030A000D77EB67C407C3E614EB1964FE8FE7E41B5 -:1030B000BC0F6E4FC2B8A79E4FD0F139DC92C4F856 -:1030C0005AA78A7CD39A69C28F9C1A729B286FA9CF -:1030D000E36FB44672FABEB7D519FDC9F446772539 -:1030E000FBA34DC0F9DCDC2A7348C9A138C1C04A32 -:1030F00007E239B443D04708047D841A81F385A1DF -:10310000AADC95D47E2A047C0A46A78FD1550B678A -:1031100052DCB53EBB5F16C51972AA043D2CDD6BAF -:10312000A4034AE7D256D30F4BBCFEF4FA8C02CA72 -:10313000E79D819727049CF5F3E7E97170CFDB6188 -:10314000C44B3CDEBE2D5ED614C77F57F2EDF06255 -:103150009B2177A4519C540599E2322F660F373397 -:103160001C9ABC8C9F19D88DF830A70938DF134FF3 -:103170008FAD7510AE8AE1DF1C6F5821FC4C93F2C5 -:103180002B99CFF0DDFEC0A744195FDB9A44FE16F1 -:10319000CB641A1FF6CA0328AE105267F3BAB737CA -:1031A000DB92E93CDF57F566A0F3F2DB73E40194B0 -:1031B00017DBFE8C696EECF920A40ABB3993F7612A -:1031C0003797706911A5A2956011ED6189EA835660 -:1031D00098E3F0A94AD49E3E2339EEB962A2FE5B81 -:1031E0008A73193E694A86015FD61223BF23180FDE -:1031F000E5A37C1C4CBFCB4457824E42AF4BA195FC -:103200001C5FE932D510DD68E72DD257CD06CA47DD -:10321000D567FF742ECBAF7A1BC31D5608BAD0F307 -:1032200082D6264187F1F4E3F21AE9C72A0D3489E0 -:10323000FC96E01F7D1DDB146DDE2C0954967BB6D9 -:1032400001C467D6B8F1EC243C49DE78045F3A61EA -:1032500036D07BCE123BE7B1413ACAF8B74E00E810 -:1032600013734E217EBD675DE777A4F30FBF239DE7 -:10327000EBF267AD57933F45E25CE429A46B8A1FEC -:103280004DADEA04FEFE0ADC26A247A4835959C5C7 -:103290007CF4817F76911CB213BCAAD3A8DDD5A99A -:1032A0004C25FA9D2EBDA2B8709CB587059DA37EC6 -:1032B0007989EAADCD16A0732628674C3FA2794BD9 -:1032C000EDEE952479A481E369DD853E943B1447B6 -:1032D0007CC5282F8A3A8D70CB8D97EB3DC0B127E6 -:1032E0003D110F47D7040D8EC508C721DF1E8E364E -:1032F000AFD0C3E92542CEBE98FD537ED57D589C04 -:10330000AB495780E1FA852AF4F274E97898E4CB66 -:103310003A05E50BB6CFD0DADD25429EE870CED572 -:10332000E0ACCB9375F32183F8DE4DF2C44970FD18 -:1033300088F5765B9180334084F39FA98AE09335CA -:1033400056F0529CB6ADD4E9A57861AEA2C1B7499A -:103350008397094C04DF78BA9421A68EEB4B8DAB92 -:103360007F5BF8964ED0F4643F283E1FF8AE4B4981 -:1033700015FC3654C0C7EA8CF0B9E6A61C8B77253D -:10338000F275470EC21BDB9B5E17F0FEA5D67FD5FC -:1033900018E07A53DFD5990CAF9C859944CF4DD670 -:1033A0003695F2584D3AFD69E7C25C9A9C9886FCC6 -:1033B000BD00DF5F8DF289F290A92501078DD794BA -:1033C0006F0189F7BFD99B68FF0E9FCD20072FABF8 -:1033D00031C235250E8E49DF91FF7F3CE1BBF1FF05 -:1033E00076FA15FBAD1906D0C979C89083E0642B35 -:1033F00099984C74D4D2BA9DEB32849A7271FF0FB3 -:103400003B85FDD5D23ABBD7F351214D2E6CA97324 -:1034100070795F9D9BCBB6BA4C2EEFA993D97E698C -:10342000ADCBE3B2A5CECB65535D0997ABEA14EE05 -:1034300027ADCDA860395C051CCF5E99F239E7DF76 -:10344000E3E7CB518D7A6C706DB201EE7D6618F5B5 -:1034500055BA62D457748E29B6DDE51D65684FC92B -:103460002B30D493E48986FE5326047E3981E48090 -:10347000A7324E0F223F8E899EB36B6915DF4BE951 -:10348000F0D3F59353E3F33556EF00CA3B395B05B0 -:103490009F366B765E13C111CB6405F8DC8CEDB002 -:1034A000E40D01F1FF6AA6F38771EEFE488B1DD98A -:1034B000D7286427B4C8C28EB78238F76BCBF4879D -:1034C0006BF07912EA2FCAEBDAE6A6B05C78D8E3A3 -:1034D000F4D239DB96D6656E5E8F579CA771E3BF39 -:1034E000447980F8F3358EA1C67339D6B39C6FFC4E -:1034F000754FF4DA9491508E9C2167BBF32FEF6BDC -:103500007429F22FF778043CED3DC8A3D6387BD957 -:10351000A9E55F60A02F61FFA83D25F20BAD717199 -:103520007BF4C312E66FDE9A2071FF3F4F9085BF98 -:10353000660903C96B9717DF8FF53B14F17DE8B976 -:10354000CE8F3F3E4F8C7C0A2407FE3C019F2B4FC1 -:10355000083B254916DFA1D84051583E81C887D085 -:10356000591FD237A95ABEA75BCE908888A13BE7E6 -:1035700019FEAEC88BD06716443F96E8FB17C4BF50 -:10358000FDB66523F9C3C37A69A7FC5002B9E02AE6 -:10359000D1BF1F832E4F3180EEBA23FC5C2589E119 -:1035A000172678359AD6CDC8C5E7A95E8B173100A6 -:1035B0001525F25E3A5FB14A4965FDBEAA446E2701 -:1035C000FEF942717A091FADF955ACAC93867DC8FE -:1035D000A2B7B1C4C676BA8E87246D5E444F679594 -:1035E0000E67ECEFCC9B11ADE37FCD6336725EAF1F -:1035F000E5AA4738DFD732EB3F38DFB73A6B7A1EA0 -:10360000C9BDA492E9C7F82097861F660DD2237919 -:10361000C6FCDEE9D3A2CE70A0F8849607048F31F1 -:10362000CF6791FD86F92F349E60A0D0436051F89A -:103630007B8333E95BF0B5DEAF673E50F5EF4E5765 -:10364000D2F9E0268F90A34DE07D3340F55724AFAB -:103650002AD3F38237E9BCE9EA8116C6CBEACCD992 -:103660004DC28E177E53936725E76DE3F5369DD7E0 -:103670008C95DB745E3356BE37C9B37BD5CB59010D -:10368000739CDE37BE9F1D34EA1FFDBDA4CC2B5FAB -:10369000AB8A392FD56CF13B485EACF2DC678AD53A -:1036A000730F2881052531E793AC99B3F83D7BB6BC -:1036B0002FE1BAAE50948544DFB8FF5EED81F59AF4 -:1036C0005CDCA8E997B3ED7393D6FF01ADFF66D23A -:1036D000EB23A2F8193EF4F26496CFEB441C8379F5 -:1036E00020665EA524B082D615C5AB390A17A4D3CF -:1036F000E1F957B0DDD1B06E7632E169E7FADED795 -:10370000A3E7D5F57E7A1E353EBF6EF3980DF0DF48 -:10371000A3C985175C0B2B1F40D0EC6C13F4D4B0FD -:103720004EE891E14F887D9C4987C6F5EE6CEBDD54 -:103730000E8AEF4F91C56E3AE17A465C7D405CFFA0 -:10374000DCB8F65171ED0571F58971FD2BE3EA578F -:10375000C4F59F1D57BF36AEFF82B8F6DBE2DA979D -:10376000C5D5FFCD884FDFB56989E0188F3FBDDF34 -:10377000B9E2EF5D5FC57EA2A3E13083E945A7B75B -:1037800073C543D4DEF5339DD94A46B17CDF81F65B -:1037900015D9433BDB2ADDE27C4760E56E8D3E4870 -:1037A0003F58368879D0CE4AE6F89CD36390236799 -:1037B000C3B709328CEDB17668EE85C7F7D9E93326 -:1037C000A4D917BDAF5BE7E32913FC27490E414895 -:1037D000F899BA5DBB4D15FCB34D5D50B99EE46DD3 -:1037E0009359C49FB5FB50E86E1D11270F684A38E6 -:1037F000C2F18426CD4F68D3E4C95A4D9EDCADF9A1 -:10380000094943839B28EE9B7C988FE740B3AFE048 -:10381000AF0B103FF797166FA3EFC7EE1E53F2F8EA -:10382000C35877FD5D827021DAE9635B14B259DA1F -:10383000948C243A4F946272B4939FB8AAB0CD3F4F -:1038400014FBADDD7FACFD79C4B39C69F3A2CE0758 -:10385000D9D265227A837C2F7F9786EB54C9C6B272 -:103860009677D5253A77BAF60AB7898CB0F419B2AB -:1038700099CE11F79910E85B8AF018DC046605EB25 -:10388000196A98CFE25C532A0BFFEA196428DE6FAD -:103890005716C1EBAB66DB7EAAF68C0F90B438DD11 -:1038A0007995FA38698234E887E38EB245ABAB8FFD -:1038B0006CA6F3D04E49D4A73CF3F8FC95F9D1FAA5 -:1038C00098671E1FB812DB5B0B0799489EA67B52B8 -:1038D00013DE137375A9909FDB9B170E4EE48FE9DF -:1038E000A53C13383021E76B25D1D4042C876AA579 -:1038F000AC3DCF14F52B35B8C9B55ABB4794177AF0 -:103900009EF8F1E794BA753B7B809F8D6CC877F683 -:1039100033D88B5797F6622FA279CCF1DAAD56796E -:10392000009D23DCDA6C03BAFF616B3688EF905799 -:10393000D9F8DC2858DC03AE7145D71D5AD56F1E67 -:10394000D14DC80486386EA6065FFB4493768EF28E -:103950009B307DC7B755CBF36C8588DB9D1F8BE70C -:103960005FCD27BCEA78DE57FAAFCD449F1DD90B57 -:103970002B37E27BEB1ACD1C3759D798CB744EE32B -:10398000907D746AC52133D9ADF9D06E263B7F1482 -:103990007D793D84AE400A70D9AEC9E7FFD4FCF80A -:1039A00061A0F0F341D0C5C0F9B438F01382CB1058 -:1039B000126D12F18FDBE4C07996EC4BAF48A4B7DF -:1039C000EB4AF5EF7AA1C652ACF91732C3B78EF8BD -:1039D000281EBE74429FE38E8ABF9EDA9D7B5F0DD8 -:1039E0005F86D5DD6F18E993F0363B46CF6CD4E0A7 -:1039F000E7F6FA15C2E1B5C581167A7FC9A6BF1EE2 -:103A0000207354565533BDFF14E11D9F2F0C07A79B -:103A1000D33063BCE14AEA3FBA76DB7E8AA7E5058C -:103A2000EFA8EC8FEB1BAE54577A888694C0FD3418 -:103A3000CED0CE48850BEBCE4DAF86B3783D6379C3 -:103A4000BC5C7D3D480FD54C476E11C7D7F04BF895 -:103A5000A773CB0B370BF8607B16EFCFE2CE8A5DF6 -:103A6000FFB669FDF8BB8578BA68D5E0F758148EC3 -:103A70006035FA358F2582A34EA73A3C6E78A26B4B -:103A800015E53AE7873A5F2439E8DFE49EC6F2B0ED -:103A900038F024BDEF6BF337701E7057275D47D4A5 -:103AA0000D1FA7D249D7BB603FE569C2FBD615EF12 -:103AB0005772BC782F88B8589C3ED44BAB129F6786 -:103AC00010F7E58CDB6BB493915E958D9E587A353B -:103AD00073BE33A4E9935013D22FCDB742D06F48B1 -:103AE0005DE64E44678F687A658746B7FAF3A13D75 -:103AF0009CBB3C54DAED27664A46781EEA8DEFD32C -:103B0000C0CBFC807C7084FA65101F607DF00A37A2 -:103B1000D3A7CE074BF6FEF500DD67E3F4C905B188 -:103B2000F7D745343C227DBE43EF2FD9D475807C36 -:103B3000C5C12B047D7E4C77871545E90CFDC7F781 -:103B4000A89F4E3FF1FB78571B4F2EF67F4C785CB9 -:103B5000B829C8E321FF1C2BE5713AC349CC724A4E -:103B600025ED676B1BB8693FF65F1474905C3855A0 -:103B70006B62B8DE981F5E65C6F2FAA160A5EB869F -:103B8000AA33916C72298F6BCCFF0D6B33E20FE976 -:103B9000E76F344F91276013C1EBA08DE5690F7477 -:103BA00011D57BAA0EFF157172D73CB1177A3ED79B -:103BB00071D7162B8E8945DF621DE7D84F8F379D51 -:103BC000193F1DC5FE434BD36CFD9CF00CBA8F67AB -:103BD0003BC54F11AEAB9A7AB7572F58FCB4F9A436 -:103BE000889FAE008E03AD4C196B4A44379740FC5A -:103BF00074CAC444F1D3C87B063B735593900B3A07 -:103C0000FC86578D4C16792948A57C891E1FD3F751 -:103C100075B7664F3669706B21B8313C05DCDA0840 -:103C20006E0C4F1D6E33843F425F8853BCD66316C3 -:103C300079B1910B3651BEE054A6C893D767DB44E7 -:103C40007B8EC82F9C411F9931F634F2C19A667160 -:103C50009F08BECF79B517B30F3886509E33D3CCAB -:103C600071DAED9EFB6AB6733D99F9CF0A6A5B1E65 -:103C7000CE3BFCC3B9EA027A5E62E773F27A3EA7F2 -:103C8000A5AFC8E7B8F2B47C4EDC7C76B8A9B28D9B -:103C9000E6CB137E4B8F74ECD3F2115A1E2823DF30 -:103CA00098AF70C4E52BE2F3956B9A17ECDF2EE228 -:103CB0002B2C9F87FF7824FB63F1F3B8671AFDB7BD -:103CC0003523753FEA1147A2EF1852AB8CF4D8A206 -:103CD000E1BBA1AFC8479C6D7C284F36F8552D79C4 -:103CE000E71647D0FB911FEA4ED03FDE0F3D1FFF86 -:103CF000D6CDE31BEF074CE0DF6E99C8F11441DF2E -:103D00006B9AC5FEBBE3699A5FA59F3FD2C7B16AB4 -:103D10007E1CD773A2724ACF870D75DB985E876AC7 -:103D2000F74535FC7B4A68650EE5D76675513E72EE -:103D3000E80E89F3EE439D7ECE43746C98CEF9F184 -:103D4000BEC981A727C6C49F76B87E9AC9F9022D3D -:103D5000DECFF7E6A0DE53D715762A64EF8E04BED9 -:103D60006727392E1F107F3F4E7C7D4E99D0C39917 -:103D7000D741C27B4F3E9F28DACFF4DFAF6038A136 -:103D8000BF9B2CE4ADA2D7FFBFE4A976B61DE2EF3E -:103D90007D4EF94093B3FF0997A29C3D5112389E86 -:103DA00050CE5ABA58CE8627289F919E5C4E177DDA -:103DB000101E6E4C7C3F8F5C76A9E2E16981877CA6 -:103DC0001D0FF75C92F942C4437659223CA05F452F -:103DD000F06AF32983A85D29510653D98D8F1F26D8 -:103DE000E68B5965C2EEBB58F858A7E1E35EC207FF -:103DF000C769642D4E93C7CF9B357CAC39031FEF49 -:103E00000B7C94E8F878EEBCF09151956168779757 -:103E10001BF191EACB35D49DF9467C240F2D308CD3 -:103E2000B7BC4C16F7240D9C68E877263E8CFEC084 -:103E30009DF45E2FF6E8C04067057D4B34606E7BD5 -:103E400007C9E64C7F5B0595FA3E37C7F9737AB927 -:103E50005CC35FE6D4C4F85DA0F15BC644E526030D -:103E60003D7C2F317FD668FD979728B794C5F2F334 -:103E70009589FB2FD1FADF3641591CDB1F7FD64BCA -:103E800031F6784FFB0E242BCBCB78FD224FB6A317 -:103E90003E95F3663B92E476CA57ABF54EC3BD75CB -:103EA00083E937AC67FEE89B0E95CED9D13D4168DA -:103EB000596DBBA35FEE1A6CDA96317C25C1B1A9AE -:103EC0006C88B8BF7591FF6DCAEF28EA09ED1CD266 -:103ED0007CBEEFC814EE63A27BB2C09D714EF92385 -:103EE0009467E25EB7C120BE238620EB41C90FE98B -:103EF000F4DDB205FC225F4EFDC5F785BCF9140860 -:103F000073DD0511AEA7697EDE0365393C6E3AC8E4 -:103F1000260124AF89E4A8CEA70E4F90E9DF53EB2A -:103F200036AD245FCE0250467EA073207FCF0B9526 -:103F3000A0523ECB040EB6334DEB0F7CCD793AFD4B -:103F4000FBC397FB88EF0FCF717FE7DAAF91EEE508 -:103F5000F344EFE56BD4EC01FD5E3EB532C8DF976C -:103F6000AB2BEDEE06CF99DF973F3A31B08BF0FDEA -:103F7000B7A4412191640E4E98EDBAA0E3872FF2C9 -:103F8000F8AF5CE4F1DFEC6DFCBBE9D752CAEBF9AA -:103F90008F123F37B88AD9EED4CB78BC5DA12811F7 -:103FA000EA27395E1BF0619FA83DE73C6A627FA863 -:103FB000C124CE9FA9EF99D8EE827C41074E19F219 -:103FC00072C645C7717A838345DC49C45FEAFF74D2 -:103FD000D708B2BF7F99322B9286E31D7C55D87FDC -:103FE00096A991CD74BF73FF349B773BF2DD3DDA28 -:103FF0007AEDA513EEBD137FBD798A90172E8BF74E -:10400000F2023EB7343342F6A3ABD82253AEC01906 -:1040100097D76CB5B42553BCB275C77D15A3B0FB5B -:1040200063752FB91B137CEFE9D4F29A23A5C472F0 -:10403000F09F939244DCCB67BC4FD85AAE9D2B497E -:104040008554B2232DFF52D2129D07D04B7DFE2204 -:104050004FA48ABEBF8ED0256E88E7A292EAA464E0 -:104060000F9F8BE824F8567AC30EB27F1F5F10BCF7 -:1040700035F6FBD3D61270911DEF9B22CEC36E5046 -:104080002417DDAFF160C4C2F78E3FB8E8E9E6144B -:10409000ACEF3D6A76133C5AFDEF3993B1FE388E92 -:1040A0004BF2EEE00E71CE529D0FA16108BF56F2A9 -:1040B0002AB1BE5B11E7B2D9212BD6AEEA43F8FF95 -:1040C00075725F016F0856D3BD9DEB5226F37D9646 -:1040D000D973443C78BA74B483DE7FB0C4CEF81B85 -:1040E000A29DD331A9D57C9F65DFF9C6733A0F2E07 -:1040F000EF5409BFEE52BB5BE5F3974ED7587CDF18 -:10410000F5A8192456715D3CF974C929D6E5157EC8 -:10411000EEE37258A5FB8EFBE27BF56EBE35D170E7 -:104120001E68F726E19FA68D777A91D271BD71E75F -:1041300085F475B5E1BAE8DE63D7508E4764CC31BB -:10414000AE2F2DCE6F70C6D5A79677DFE3339CF0E8 -:10415000FD85FFA785AF71AB574EE47FB6D64167AB -:1041600055CCB904670F71C09AC982AE6D592F380A -:10417000C84EF9C27FC4433878E59F073EBC97CA52 -:104180007FFD6ED75284CFEFBF7E73C793B4BFDA83 -:10419000BB0F11BDEAFE189FC1C4F5BC586D63B8D2 -:1041A000F96768E7397D1D2F587DDCCEF9A5B5FB91 -:1041B00093B87D64398492B07DA445C9BA99E8AEBC -:1041C00053F2D6CB3488388FA8E37FED0D7E138C65 -:1041D000213CFA25BA0F639A76BE76C3229009FF76 -:1041E000B645ED7C5EDDB75C9C57F729D5497CDE92 -:1041F000748E99CF87D4575F73F930ACEFBA5CDC1B -:104200004F3563B9328FE75704BDA475169B9713DA -:104210005D6689FB9AF4F3A645D0C5DF7F8CF4B6C2 -:1042200077D848DECC4700D3FA5A357C69718322AF -:104230005FA74AF6A4CB6BC463461CDEE2F1BA4228 -:10424000C7E34818497894A12D99F4E14300ED742F -:10425000AFC086E54FCFA3F36C5FA8690CAF9EF8A3 -:10426000F91DB4579511740F8B83CB4EB457A9DC4D -:1042700085F62A95AE60C575CB71DD7BDE38F8D248 -:104280000F71BA594AF5957444AB48CB7B81BA7427 -:104290005025AEFF06E25E51DF4289C4777D92A1D0 -:1042A000BED66389FE3D00FCD595A5FF7D80D35B1E -:1042B00094A108964C8B968F11F559E487C4B4EFFE -:1042C0009E69EC5FB63F66FC81B8DEC5366E0FEDC9 -:1042D0005BBA45B5C4B43F87F572805735FBF1FA38 -:1042E0009D66FFF604F2EDDD7261475AFE052AC9AC -:1042F000B52FD14E23FF5E322B2CDF21D72227BAD8 -:10430000570F00E561AC5F2E1BE5EBE51A5F58FC2B -:1043100015A0E5C7E01B3DFE803F7BFE388BEF63B9 -:104320005A35C4C2F70FA13EF0F696AFB3782C9F72 -:10433000C6DEDBF5AC2EBF87C1309AFF4B28FF43AA -:1043400005F341CCBD0DC4F76DCF5FB614E7F11D89 -:104350004DE638AAE45A9FC2F731D535B13C7F40CB -:1043600009FCB63CE67C4963FAC242922FFA3999BD -:10437000E8BD47D798BFCDBDF71DD50780F4C297DC -:10438000485AF65EE8B0B16EEF115AC7EABA762E17 -:104390009D6E85858DDD12E4B8CF154AE04FB43EA1 -:1043A0007B26B6C7F089D58DEF19FC0EE37D9CB254 -:1043B0003BE224B86F28F9C049F3B71E167CBDE173 -:1043C000F0EC24E2BB56EFA124E29B2FE8E2C7EF1A -:1043D000C0273EE5559661BBDF48BD9EE8674F4369 -:1043E0001ADB150797DF7F2DF1CF8DBFF801C3BB17 -:1043F0009B6FE0E14195CE18BE818799AEBBF9462F -:10440000ABF7CC377F67BEDADDCD37A2EECB074303 -:10441000FDE04C63FF6EBEA0F1912F1EAFB073BBE9 -:104420007DD2C35BD418BE3A49F558BEF909F24DA6 -:1044300002B93F7D9246DF17986F522E32DF0C9DF6 -:10444000A4C9CFEFCE3763275D14BED9633A1FBE30 -:10445000B9EC4CBEA99AD4F7DBF34DAB3BCCE7E902 -:104460005AE79813FE7D900F347939757EA0B28D8E -:10447000EC1A45DCDF374D9A99E5F3109F497487B4 -:1044800034EA4FA1CF0F5EDFFD7D06EB67FDFEF541 -:10449000F58450B293160BBAE9AC1371DF6952F987 -:1044A000B4C5A477E93B024A3553F694EC02D4FB39 -:1044B00032D985D05EE1C179365499A04DA62D0739 -:1044C000AB87F1F861B6CF8668717FA7942FBE677E -:1044D0009A29FEEE85FE5D4CB562BC5FB6FF59ECD5 -:1044E000265C770AF931EE12F17750164D8AD7BF64 -:1044F0006887E0FA3A07DA984E362857F71A273ACB -:10450000E35CB52F98302FF9D6249376CFBEF233E3 -:10451000A2B3DD6F6C49A673127B24E0F339F383F9 -:104520004FCD23BE73A942DEB4AEF833A52361D7C5 -:10453000B41F1AF5347C6AD4D3F0A9514F6BF51E21 -:10454000E58D7AC2A8A7B57AB79ED6EADD7A5AABCE -:1045500047E5CDA7063DBD61D2A70679F31ED5CFAD -:10456000414F1F9E7471F4F4A88B2C6F9EBE70F2A5 -:1045700066DFA4BE1743DE1C392F79937DA6BC39B4 -:10458000743EF2C6B5B943A5F4CCC21EF8A056C31A -:10459000FB5B65CADB343E949C5BBC269EBE3AAA9C -:1045A00017AEA6BF2BF3A557F87F3DBDEFAAFDD5EB -:1045B00091C6183FDC65E914DF23D4EEE1E7B76C60 -:1045C0007E95E3B1675D2F5D105A74A65E45BBC84A -:1045D000C1F4EB35732EFC7CD7D13A47F0DB95CF95 -:1045E000DEC1FC945C6E9C4FB77F3BAA6D669EAFAC -:1045F00044C8E99EECA19EE6FDA05C16F7FFC5CD80 -:104600001F4FBF489FE9938B981E2D742FF8179D5D -:10461000C07FA7EABF4E6EFCBF8A7C49E9C51193F3 -:10462000CF834EA76BF84CB06FEFC5DDF705E3CF36 -:10463000E993CFC38E3E4CFBEE9B70DFDF67385EA5 -:10464000B47D5F30FFE1E6F3C1F7BBE5DDFBE6EFEC -:104650005132B47D6FF8E735EF515C63C3BFAE7D77 -:104660008AE21AF77D9DB78DE21AFABD726910FDD4 -:1046700091F5EF8F102E2EBFF89E24634ECC774518 -:10468000C0FE7DF4BB13B2377CDDEDFF2BF7CA9182 -:104690007DD2DBBD72AD36635C4F2FAF2A17F64A71 -:1046A000AB691DC72336A05F558F78EB9823E211C5 -:1046B000AD68A7B0DC9953D0AB7DB4AB4EE1B85335 -:1046C0006B9D9FCB7BEB6670B9EBB5256524777D41 -:1046D000AF2D62BDE7F3FAAF7B1881E4AEF8D049A5 -:1046E000CFEFF5E8FE90B05FD2C87EC1FAC393D792 -:1046F0006F8D8D0B8CFAEFE15BD481D178555B66C1 -:104700008CDD23C7FA51A012B944FD28AC1BEC9AEA -:1047100011EC47ED26BB06EBED934718EC1A7D9E96 -:10472000B566A821BB66ED0EF38C4476CDACF2C421 -:104730007E14D6390FE27039F8FB7F49FBFB5F51DD -:104740007EE9DDAEC99D7271ED9ADF4FBE30F18713 -:104750006E3ED6EC990714E50D4DAE7C47F9B1D10C -:104760004CF1E36F2B3F4692FCC837C88FCFCE4742 -:104770007ECC2A771BE2A20765B5CF58B2D37798D3 -:10478000A15ED6F42FD63BD1AF31219C7E5221B110 -:104790009FB3C10BFCF7FDA64BF35F267AD8BDC8CB -:1047A000CCDFBB3FA88873220FCD11E7A91E5E5E48 -:1047B000309B3E235A9772C3DD4914D72E17F70456 -:1047C0004C97CA39CEFDE00C61E7643BDB2FA7FDB7 -:1047D0001FACB000D1D5D9E2DC146EE778B5E6475E -:1047E00081B499FD0ED70F2D6E3AAF1A1FBF769682 -:1047F0007CCCDFCD83F40A7FDF7DB6F8F5B78D5B27 -:104800000F98F29DE3D6CC8F35CF0DBF41759E49F1 -:104810009F4726CBE25C620F7A2C9E9F3BAAA7A7FC -:10482000457A3917E524FB29E61E59FD7BD659E563 -:10483000621E27D94F8551BAE8A82EEEF55EDA94AC -:10484000DA678EC4E685522CED3C5E4AED3E7EBEB4 -:104850009ECE2F90CCB27859AE3E5E89F239C178A7 -:10486000FBEA8287092EBFAEAB3D4C71EA49964EFA -:1048700089FE9EEBDE3A95EB7BEA9AB8DC55D7C60B -:10488000FDD6D76DE2F2BEBA103FBFB7EE31AEDF54 -:104890005DD7CEF5C773C53C132D211E6752178E09 -:1048A0001FC30F659FE03C31782E8DA886F6096FF7 -:1048B0003619DA8B3ADB0CF5BEFE4D86FE7D66843A -:1048C0000CED6F950502538AE85CC363867ECEFCCF -:1048D0007643FD5CFD850BDD6F654AAAE51FC8AF19 -:1048E0008302484F4867E9B5B2CA79F31AC197FD08 -:1048F0006BBD61AA6F71D998BF75BAE433CB26B18D -:104900007E53CC3DB51D2E717EB2A1AF88A734FC7D -:104910004CD4B76489F391C3AB447EA461A0B8972B -:1049200044CFC36F7169F793F8C43D1A83F223FC37 -:10493000DDED20EDEFC139CB45FECC0D6ECECF378E -:10494000D481F67D6284F31D1960F68AFBD5159932 -:10495000FF9E920542F5385F43BE5BBD85E44C3057 -:10496000D56BF6F29F960D99298F48E2899330ED29 -:104970009ADED1F2F2491F009F3BE886CFE7E27B47 -:1049800084DA2EBEB7A97F6D17E7E3B6FC42DC637D -:10499000130FD78E5F7CC5F72A6DFDD95759C4D444 -:1049A0005BBBCFED7425C57E8FB6A52695EF5BD892 -:1049B0005A9BCBE728B6D688EF8D6510FBDDB2C8D1 -:1049C000C6E730B6D69ACD24274F2DB2305CF4F529 -:1049D000C7CFAB7FBFB94E3BD773AF76AE67AD766F -:1049E000CEEA6EED5C4FB376CE6A8D763E76159D3F -:1049F000EBB1133CC5B99EADB50B14ED3CAB7E2FAE -:104A000003C35742F8F2772A56D86B1A07F4870C7B -:104A1000196EF1DFC7665425C79DE7319EB74AF589 -:104A20000D30D49DF9C6F356C9434719CFA90E34AA -:104A30009EEFB1798CE77A2CCE4AE3F9D058FA444C -:104A4000609A566CAC27FC77FF7D477AD88FFF7E43 -:104A50005C37FD86F47340129D4349637ACDAC12F6 -:104A6000F499A17D0FE3864E2E53915EA874529E59 -:104A70005DA273902AD351F4FB37A5577A3ADFBF72 -:104A80000720AD4CFCF700F473087FD1ECA8A553C8 -:104A9000944FA71445E7BB7F8A723CB6AE973DC9D9 -:104AA00085FFADF2FF01C18CE32B00800000000008 -:104AB0001F8B080000000000000BB555CF4B1B41B9 -:104AC00014FEB2BBD144A35934B6865A481A520DCB -:104AD000A4B06D37A225D2D5869283C8163C78E85B -:104AE00021879CFAE358E86D635B904A24A9422F22 -:104AF00052C8C11E0A821EFC03621B7A8E680B52CA -:104B000029C18AE7405B7A11D23793AC899BC47A7A -:104B1000E940F2F266E6FDF8BEF7E6E50D68798158 -:104B200090A2DD137D40245A2A3848065468B930D3 -:104B3000305324E9A2FDB5AA94359114C0A9095CAB -:104B40009ABA1E2F4912D9C9163BFDD4CECEEF8D8D -:104B500031BB0126252EAF1F39000FB015B3E51666 -:104B6000FDC0C20E9DABC0EF315B0E7E96DC49A549 -:104B700032CA4D01917D69BDDE4BC02CFB49F17AF3 -:104B8000C73D0309F29F3180FC30BBF3D0CD745791 -:104B9000343BE5A33C427B4548E42F5284DC078646 -:104BA000AFAC81F6E7AFDE17258AFB6109B84CFB95 -:104BB0000BF652EC11DDDB1AEF945F28CCCFB4FD7D -:104BC000299DCF5C1121325DB71F962855D860AB67 -:104BD0005C237EA25255A755A1CF0334E894F70C6D -:104BE000D347EABAFB243029535ECF0FFC1B8591D3 -:104BF000BA5D805261FBB7B51ECF71376D8410AAC4 -:104C000088751C15B6EE36CB3F866FA360673821DA -:104C100030BED43D21E7A738BD5F96BB183EB1A892 -:104C20008B25B2478C508F13CE3DDD8D73FC7D6795 -:104C3000FC7502078683CBA22173B9650C72796C6F -:104C4000F8B83C3246B83C34142E4BC61897408A0C -:104C5000D7B3D3061E2F63C47763C1F6F1645B59E3 -:104C60006775C78484F7ACCE432AB76BBA17253F64 -:104C70000D7C115DBC190A3D6F2799FDBB27028F82 -:104C8000B91ADDF4EAE166FBD56753E7E24E1B7320 -:104C9000BBAFECEDCF5D1D486CB6F0FBB2D6C740A4 -:104CA00096E711880B58A43CBC0EC529D3FDF4B679 -:104CB00093F7754871E49C0CDF9A0B3F4C1CD43F72 -:104CC000CB696A19829CD524997AEAD46F8F42F90C -:104CD00034F45560FAE320AB677A223FA8138ED5EF -:104CE0009B9FE786C92EB5232288E6BC5E6B369E65 -:104CF00097892B202982DC027F3B5C8F6BF618F2B0 -:104D0000F0B960E5DF7ADFAC3BADB4345A7BA2B4D6 -:104D1000125D898C4675D2D66D9C07A70FFC7D77F6 -:104D200040CB33BC17C80FB8433CE7238994AB9EF4 -:104D30004FBB3A997974D7FACF9B2C3B12846FF909 -:104D40001F7DD8672F3A58BD9692423CD7228FF5E7 -:104D5000DA9C5B526F39D97B44B8751EFD716B9F2D -:104D600056F35991C83F9B4F2AF96FC1F737C67761 -:104D7000B59FF745AA6B46137CAC9FFB891B8D4200 -:104D8000F547904B116FD9A8A0E4E9FC97DAA17020 -:104D9000F796F9D0145F6DE8A36BCD73675B73551D -:104DA000E74D1041366F7E0ECDBAF32DEA6B4A9374 -:104DB0004773EE34F358AEE24C567122DCFA3DD71D -:104DC000EB355F1BEA488867FBE6EB797DD38E7F86 -:104DD0006B1FAC2475779EFE1FF0691FBE1B8C8F66 -:104DE000B3EFAF1D6F569E8EFF334FD6F3A23957E8 -:104DF0002E88F3A2F74CFD2FDBA790A6F00700004A -:104E000000000000000000001F8B080000000000F0 -:104E1000000BFB51CFC0F0030977F3A0F2BFA3F161 -:104E2000D7F3A3F2CBB851F99E68FC2634FDE7D145 -:104E3000E4591820B4233BAA38B158988381410E15 -:104E400088353950C5F3A1E6D6002DE807E215AC48 -:104E500084CDFA2C05748F1C03C32920DD00C4D730 -:104E6000651918D8817C216906065F204E00E2CFC3 -:104E7000320C0CB380F43B20DE2A0DD1C707143B63 -:104E800027439EFBBB85C8D3378AA9831F28A1F27D -:104E900067683330DCD66160D0D683F0AF20C9BB01 -:104EA00003C5666A43D831AA0C0C877419184E28BA -:104EB00061373716287F18281FAB87DF7E572354AA -:104EC000FE2E6B54FE4F4354FE134F547E9F372AE1 -:104ED000BFD107420300BDE0D98DD8030000000018 -:104EE00000000000000000001F8B08000000000010 -:104EF000000BCD7D0D7C15D595F8998F376FDE674A -:104F000026C90B3C20C02404891AE8000182224EE5 -:104F100042B0C14DF181546997EA93B53622C81366 -:104F2000B1A6AE6D26DFE1AB8DE85656AD3E586DAD -:104F3000A9D51A2D6D6957DB04D0C52D8548A9B5B3 -:104F40002DFB6F50575B16D9E816755D5AFEF79C1E -:104F50003B93CC3C5E3EECC7CFC6ED0E77E67E9C25 -:104F60007BEE39E79EAF7B9F220640BF1CE01CFE14 -:104F7000B1E7452200CC197C462BA0542E07D8243B -:104F8000048D70117BFE415AD91566DFC08A2F9FB0 -:104F90003ED8EE5A10A8FEF3456DF13EF6BD63EA29 -:104FA00057E350C6EA4F14A8BE53CF79DE0812402B -:104FB000014049E76A35C1FAD934AE49C5FA1DFA4C -:104FC000F695C0C63B53A28084E315656FDFD6001B -:104FD000D03D0DE072D8AA16C758F998646C866C5B -:104FE000E314D1384ED91F17A1BB14E8EF1CFBDF27 -:104FF000A62F2621C1C66D9DFAD59508B7D27D335F -:10500000E811803BC6254167EF678248F3522A2C9E -:10501000305959D5ADB835FDFC713A102F65D86BB4 -:10502000677C7964F0FD32072F0C1F197801B804F2 -:10503000408359DD16960340ED33FB35EDF1B5F8AD -:10504000E8C63F7FFE7CFC19A0131E40ED8C272292 -:1050500083F06CF2F5774B0CDF5611188FB12A39BB -:105060006C9C4A573F99E30DCC53EEF4ACFF74842B -:10507000B380E621C8AEFE32E1996BD79BCB668E3A -:105080004F675E390BF83823F57F25A2B800EB7720 -:10509000C6AD888B1E65CB83F7A05D5F33BDF586FB -:1050A000C24F08F13307F163C5911E1D3A96C27ACB -:1050B000630D9B4F8105FD522E918D096300F2F126 -:1050C0005FAC89ACE99548AF634C56977D1F1BB325 -:1050D0001A25F67EDC82B420B367041ED2DE0801F6 -:1050E0004253728E1A599CEEBB6677F431BA3D0377 -:1050F00091CECDECD92CB37E116FC723E9C71848E8 -:105100008D97A51EE963E588254353398D4B7C783F -:10511000A77491B19991F4669BFE3B1A547AB63507 -:1051200068D0ED07686988D3F3FED097BE81FDD7BC -:105130005B7ECDCF9E72D7ED4F61B9192081E345DB -:1051400062BC7F9055ED310DCB6022DE2325FCF94A -:1051500012E285C1F9558649C4CB0F6D3CE9D04DAB -:10516000FCDA6C2CCF812CF8749EA1522F9F05F491 -:10517000206B3958F6C7F33C659F36DE531FA0906D -:10518000F04665262AEA042E8F22722F180827C3BC -:105190005756B960CB15499AD9DFCDE6179EA718A7 -:1051A000BB58D36D8297BFC6099C3ECA04959E31F9 -:1051B000E8DF7F0EF16288E9CD6CACE0CCE2AEEEC8 -:1051C000188EA91853D93A067D692D2F0B7F41B946 -:1051D0007CAACF81BBF8A3C78F24F5A41259C6FDC2 -:1051E000BDBD7E979F3DA222FFAB33C544BA0CE103 -:1051F000B5126CF2B05597459CF74707F7F0EB7581 -:10520000C2E6E73650A9BE8CEB553EB85E1D065B84 -:105210002FE49F72BE5E1DB2A58E66BD1E07F0E034 -:10522000253480972E8E97B28F182FCDFB5626B23D -:10523000CCA3CD5E4F190CA394F0A0E808E7D646A6 -:105240004EB716A3DB6CF277283C4839C7E3C9B2E6 -:10525000F3F17E8DC0C75964F38983A74D865893B7 -:105260000E239E3A6B506E6D2D1145944B1F159E6B -:105270001CB8360FC095E670957EB47049A1EE95C6 -:10528000D9F8B12D831FB720DC9CEE6A38DD891F69 -:1052900029DD397005901FF83A27F83ACB7F13EBD8 -:1052A000DC36B0CE49BECEF18F669D9DFD1C5463A9 -:1052B00025AE5B9DC6F890C1718B642937E0FE1A5C -:1052C00012E03183D101C23F8EE999E1A697751DA5 -:1052D000E03E21C0F50D69554ED2056F9DCC749608 -:1052E00059F87EEB05C961E601695F7F9F0327E3FB -:1052F000DFFAE38DED075C707E5188C408CE79300B -:105300000FE17C27BC3CA71B86EEEF6483DA28FB09 -:1053100000DE6BB0DA0FF8CEFF7E8B04A96CFAE5E5 -:1053200083B65C00B54BA1F9DFCD787026E2E1824F -:105330006A88B2F508378DC17940987D9CCFFAD93B -:105340001D68945DF81D6A3E037875DA3175C79F54 -:10535000777EFBA1DA7D20241F11187E5B63623506 -:10536000C2A596401AD7C0BF7B59F778181ADED667 -:10537000D85F06DE21D7CDAEF74EB8A90D58BB6673 -:105380009F71506774D252201A4D300887432FCE38 -:10539000BA38781CEDBAFC6680BEB65E01A467829E -:1053A0002ECDFCF3E9EA20D2D5C57F7DBA7AE36F32 -:1053B00097AE4E0A057FBB74A5D44BFAEBCCCE2832 -:1053C000924D2E27B5D516AD3F8ECDE492D439B38C -:1053D0001BE525C4997DC68701919515CDE47A2FEB -:1053E0001880FAAB5AE29593BE42AF9C8CAF34BBA7 -:1053F0009D7E37EB38AE42E3A27984E3CA61E80EC2 -:1054000044B1AC503F48CEE7A6303CC18335C5BC63 -:105410009D81ED869A8F8CEDD878A87E9C2BC276E4 -:105420007F9F93C862F70ECEDF3B4E7C452227114B -:10543000197D7D08CBFA1B2EBC0FDD4E86371CBCB8 -:1054400030FA2F453F49C120FECDDDB791FF220044 -:10545000A241765D619B855FDBF1FFCDC77D9FF348 -:10546000757BE12C0DF52D60FB0DBEB784CF039647 -:105470003F1074E25B673C299C00A21BBBDE48EB3B -:105480007F27F25316FE5E25727DE3BD2FA5FE1B1E -:10549000ED416BB3A03FC6F07AB8E17D788DF1E5C0 -:1054A000EAEE0B15F47B5C2F8EA17AAB1714298BD7 -:1054B0005CFDAC066E1702F4C9CB22EE711BB91E5F -:1054C000DA25EDC379BF5A21A571FF7BB5E27F488C -:1054D0003F7FD594D288E4573BAECE194EEE1C6E7A -:1054E000E0F6AC53EFB029D1FE7E58EE0B67D3E364 -:1054F00007C74FD3F8575548DE7D5AEE9371FDDF4D -:10550000FB22F8507F3EDCA00AAF4D65C62FCE933C -:10551000D1D1EA8A2205FD0E23CD6B89ED0773F008 -:10552000EBCCB3252CD23C5BC255E4B76AD1DE216B -:10553000FBF10C7B8FF26028781DBF558BB63C2B9E -:105540003E9408D7B7145F32BBBD69CFD72967FA3D -:10555000B31CF8DAC2DC2E6A0B73B8DA62621AF98D -:10556000BF2D9E7D5CE7D96CC3E7D46B8971BDB458 -:1055700085C993D1C02387BDF030B41D457FC94490 -:105580005BD6E4D7F6367E0EEDEC64D8940C7CD373 -:105590002B4C62E5097109366B6CDC9AAA8E6AC6DF -:1055A0000279AB122F3230602C7456A21F70F217A2 -:1055B00037F67C8DCD6BC27CBF86EDF26A523DCF53 -:1055C000B176E399989358BBB1C7D7AD4339FB4F38 -:1055D0006827A220B66E6A443F560B0E7109C0C3FD -:1055E000E2AA4AF4B3C9C0E502937ABA3C06FD3395 -:1055F00040CE99A1E403FB13CEF907DB0D85B788F4 -:105600002DAF68DE24AF960F2FAF36F2FE2DF61FBA -:10561000CA9B0983E351FB71758A078F6333BE1FF1 -:10562000B0E9D20FCBFEAAE38C87E501D44F222B41 -:10563000442D8DF5A12B17FD5063D6CAD08DDFCB3D -:105640003B1B99F81811EF4CEED570BF715258E61C -:1056500082F79722F7334DBAEB9820A0DFD7602A64 -:10566000FD4C2CD7CFCC46A7DB6DFA1C28D7AC1647 -:1056700092345E62C954946BB522D9BDFFB46256B0 -:10568000AEBBFDFBF63883EB0FBA3C17CB7CFDE5D8 -:1056900015A21998F1A7AFBFFC21D73F7FA3E2D98C -:1056A0004F3FECBAC8687B148CBCFE7FEE38CEBA94 -:1056B0009DCF1F5C3E4EBAAB3A80F2EFBEC4F07293 -:1056C000E5FC755B4EEB36660598E92C72252009E2 -:1056D0009E7DD579AA900283ADB3744C22F9268DB4 -:1056E0009DBB72270C3DAE145332EC37BB3FCBDC75 -:1056F0005FC2D6FF13E0FCF5CA28876A510EA15C91 -:105700002AF7BDEEF68F308C0F9619EEDFFAC2FE47 -:1057100003288F2C268FD07F9AF9BD16CB2E7AB80E -:1057200042E2FBEFBEEFFEE202818D73C4F0EB7E3E -:10573000F6EA90D0FB06F97D2B25DA8F113E752E07 -:10574000B607524E8E989259CDEAF7960BB48FFA5F -:10575000E1A5EBFE91DA8728DED1BBE0B52F5FCA69 -:10576000DA7FE2321F720EC704B68FB37FA25E7378 -:10577000B6EFCB97B2FA872ECB1F56DFAAC5F9BA80 -:10578000E8E4AA67BDE555486F08FF7FBC59FB20D8 -:105790001BEF08E424FCF8ACE0F01D41F890EEFBB0 -:1057A0007EF506EA85874D81FC51472A7E16437BAC -:1057B000BCD214485F5CBA4048FBB3CC73E982DBCF -:1057C000264F62FD258C901660DF0F55BEBDF55249 -:1057D00006EF553F90B6E1F3F45EA920593634BC8C -:1057E000CEFBAB4CEFFB01BD189216E21D341E97A9 -:1057F000F0C58CB89B5E07F418396166F3B7AD95B8 -:10580000B8FF51D00CD2EFE4B002388FA1EADF34F8 -:1058100004FDE6407FB7847038FAF7D9AB75B73C22 -:1058200074E050E44412C791340576A19E917B8DBB -:10583000EE9E7F83C4E34242DC2478148DC3A3C868 -:105840008699CDDF546FC3E3F403D069B7EF87BE09 -:10585000F0207CAD81C44AF45B58B9DC7FD812F1EA -:10586000FA03F7D8FD3CE6F4E783AC71158026EA2D -:10587000BF6A4C858AFD3757703D490783FCE32D8D -:10588000CC6E8461F4BAADB6BCD88CF10D3FC6398C -:10589000343BCE11E7FA53F819F2939D2913C9AEA0 -:1058A00019AA9F88E1D54742A55E3BC6D15F027A1F -:1058B0005E861FC8EBF7F18D914547EF437A1D09CE -:1058C000FE013DCFAED72EA7542D2B9ED2C3EA7337 -:1058D0007F3DFCF1F6215F97960DAEBF14DE1CBA3A -:1058E000CAEC5FC95752698ADB25E21E7DC09693D8 -:1058F0004ABE9AC27D01D4A1BE0779FB30FB8EF16E -:105900008C7042477F8A043C2EA4221FB8F0F3B665 -:10591000DDEED3B268EBF3298A830A7A8AFC766AD1 -:1059200021E31FE1FC76CEB3CF6EDFFE87DB5F2184 -:10593000FE2850893F049DF14F96719A24F394C438 -:105940009EB74AE65BF8F4FD514A66E393FFB2E581 -:105950008A5A9BD0D5628A2B923D92094740E6FD38 -:10596000DEE4C06FA5284E395AF8DF1F25FCCE387B -:105970000C7E592E20F87DF81C0A7EC986270FF46C -:105980004619E59ACEE52BC032DDAD97DC28737958 -:105990009167CB2780DBE26E7BEB7ABB9FD1CE2772 -:1059A0004F1EDD7C9C71D97C26C97C3D26CBC3ACC7 -:1059B000C7441B8E1B65BEDFA9D5093DCED6257712 -:1059C00008BA5A60C39192455BAFB8ED43D1D5C5D3 -:1059D000A39CC782C1759967AF4BC570F3986BCF15 -:1059E000A35382F9AFA35E3CC5F1F72CF7ACCB1DF6 -:1059F000367E3AFDCEBA6CF0ACCB2DF6BC463B9F62 -:105A0000C5767F23CDE78EC1755966CF67F970F3F0 -:105A100071D5BFD6AEBFD2AE4F76C71D726913DA4D -:105A2000194D5262955C30381EABF71977BDB79BA4 -:105A3000CF34DAF56EC0F7420DDFFF58BDD5EE7AF0 -:105A400060459BD03FD08AB602B3634A5A2EA9B2B2 -:105A5000DBD551BBDA81FE6FB6F983DA055A8426AD -:105A60002B4CF5D661BDC6457F74EADDEA85F76249 -:105A700007DE0D046FF5001CB7BBEB2D9027507FA0 -:105A8000E7C51D46E90FF2C5921D18E7CF834827E9 -:105A9000E679B4C9A947300FC0B264780CF309FCA9 -:105AA00086803EB66845EA1B582FD762F635AE5B56 -:105AB00055EA292C5B22249ACB299F80F205EA65BE -:105AC00055F31B987F61C00E56D662721AEDF356DD -:105AD0002169E1BEF85329F96599E4ABB6AA11FB37 -:105AE000CFD7B99E0E7DB46F3970DD13BA8EF21F19 -:105AF00072195CE88F6ACD80EBFED0A41EDC6FEFDC -:105B00002D50484F66065629CA973BA5A081FDF542 -:105B1000147C9EE0DDDEC8F31BB67FE2F304EF7D6C -:105B20000250DCF63E1FCF6FB8C7A76A4D1AF617B2 -:105B30001DF759CA87C8D1FCE5361C08DFDF1513ED -:105B40007CF9A055DE2890F8EA41FBB6B542217DEC -:105B5000797B6C5625F557A1929E7A5F625623E9B0 -:105B60001D1541F2D1E7870DB25BA3F314B0B01C51 -:105B7000331A51CF8CCC0D620E0CE417022617405D -:105B8000641AA4B1EC83CECE12F68C7630BB249F7F -:105B9000EC26B811EDDE0A8677B4232CF328DA253B -:105BA00061B0FFA44326CEDB374102F47B38EB1B08 -:105BB000ED1C683FACDD154D8FB25EF7E8EA453A63 -:105BC00098DD3F7B14F53A47592F3DCA7ADDBCDE9C -:105BD00088FE0E83DB7B2AFB0FEDB640A6DD1CF6AC -:105BE000DAC3BE8CEF99F1B8CC67663CE4A4EC8DC7 -:105BF000878CD4DE89838C345F744A0CC0298D5C19 -:105C0000DFD13787FAAE8CBF266EB2F6ADE33E1D0C -:105C100027B9366E157F4EB4DF4F5C69973F6D979D -:105C200057AD34B3C8F7B13E2E874BD11F329CDF3E -:105C300001B8FEF80683FD9C80C94BC3FB4F32F5CB -:105C4000DE4C79A7CA5615F2EBF604F76BFA9119F8 -:105C5000910F0B81FCB03E487596A09C0033BA783A -:105C6000CC20FFF8CC174CE4E7C3E324102A687D6E -:105C70000CF2A767D049265DF833FC397F2E9D7C56 -:105C8000CCE78DC7FEA5E844E99046C53F4AE72822 -:105C9000EBA54759AF7B74F5FC1DC2E8EA758EB2DF -:105CA0005E7A94F5BA79BDB6F90ADFCFE17B4D662D -:105CB0000983FB12D5536EBB24E8FD7E69D8536E71 -:105CC0009FA3D0FEEF94FD73554FB99DC979CFF7CF -:105CD00079612A6F6AEDAE625BD9A8F9E43FFF44AF -:105CE0003E295547F04B578819765B065FA97A0025 -:105CF000DBE7CB3A60FE547E8CEF53EC69A6B3E051 -:105D0000F7119BFF77C93C7F73BBAC07D07EFC5B70 -:105D10009F67A38FC3EBCC7724781DF9FBA664EBB8 -:105D20005B43E57D54F3BC4C1982949759526D56F0 -:105D3000994C2EC92FF2385866BFD729C9A77D2E96 -:105D40007B58D6923CBE67F7B7A44026BD44667226 -:105D50000DF51E05123545144714C9DF278747D8AE -:105D6000370A5D72AB7818B8ED3C56FAA40354FEBE -:105D7000968F1B3480E46B04FAC898CE41AD670A55 -:105D8000EA69BA00D4DE10B8FF7C8186FB5E2CF095 -:105D900097EE7715F52B98F7C0B9D087E857EE2323 -:105DA0007FE75FBCDF11E00D607EEFC5144288B96C -:105DB000F37B7DF114BD84B3E7CE49738137A1BF76 -:105DC00024C5D765D1207F288C8F925DD61ADBA0A1 -:105DD000BAD7F5FF7CC51EBF89A2B5DD2644D9B36D -:105DE00070ADD9370C9D9FC3600CFA470A6F34FB26 -:105DF00086D94F07E29918AFCFC2076D4A328DFAA4 -:105E0000BB3529CCED7939457EC676216FD6E67251 -:105E100017FD162ADD0857A4DCB4D0DE6BCF170DB2 -:105E2000D45365D8DA2BCC60EDA45A2399458F184A -:105E30006C2F9F74CF27A678F5A9E611E8BD7504ED -:105E4000BDC7A718C96CFED0690AB76B7DC1ECDF6E -:105E5000EF12AB4A9439E7E38DA9F9DCBECD850E8C -:105E6000E1639C7C28DFA1F08557100FAD0557C476 -:105E7000879B2F68DEBCCB9B4473A6323C1C73B25D -:105E8000C131DA7C10ADDA203A1CD097629CAE5159 -:105E90004F12C660BE07FFDB56BEAB1BF3407C371C -:105EA000F0B8AC64EE06F4533B7A9364064F88B4C2 -:105EB0009E0BB8FE54CAF52193FD87F3882E185E19 -:105EC000AF9632CACB14AF3ED4DCB017303EEFC031 -:105ED000EFF8F132E7758958756D767C8CCE1EBE71 -:105EE0008FD10B4CC378948A4881CE068DCA5F6EE1 -:105EF0008853796B834ECF9686527A6EC1A6F39102 -:105F0000CF531D450C6F1DF147E39F6555EE43D9F7 -:105F100041FBFE758B504FDE3C50666620837B3321 -:105F200006BC991E71BB72D522B4DF3707C0F62BB1 -:105F30002C5A647ACAD7345762D9F6336C6EBB9E3A -:105F4000EADF3711EC7310A6FA49D7BEF788E223CF -:105F5000FEC6BD85B7379BB1BF806C97E1B645DE05 -:105F60003298084F40E5E5FDCA06EA9F44001BEF62 -:105F700027CAED7CBCA9DC8F0F65CB47C023F7EBAC -:105F800083A273F9599647F92C8A61A0FB15EECBD1 -:105F9000B5E11E6D3F7292EF77C7B2EF97837C3306 -:105FA000C2BE66C331D2FA3374D87E88245838EE24 -:105FB000CF791CF1AF3DEE7DBE0F8717A5A2DFC2E2 -:105FC000F3230B94E4F791DE23665777112B476B8D -:105FD000BB2D62DF518E7BAFA2D9F34E12FF3B780F -:105FE00076F48EFFF279D7D11733290F2910E6FC0A -:105FF000375A78FB50BF9A33D80F3C51356E387DF5 -:10600000AD2021A21236202FF26B82688C0D947382 -:10601000CD3C4F39A762BCA77EC428F67CF7691730 -:1060200079BEFFA9EBF4F38C79FCBBAD373AE51FE1 -:1060300067CE7394FD3AE59EBE4562295B87976BF8 -:1060400025D2EF5EAE7DEDBED9584E4814BF3DB3AC -:10605000B2D9878C740CCCC81CF4872525DB9F6EC5 -:106060004E447CFE1CFFC9C67B09F73D269F8ED897 -:10607000E77F989C9888E79F8E5C366F22AEEB1185 -:106080001FE76FB03A493EFDCC071E79F0335BFE47 -:1060900018ED3B9AD10F794CE065A97DC7228BE2C0 -:1060A000835BDB3ECEF496AB390A6179AD90D51EA9 -:1060B00088F815C2C7074232E267F334ABF5D61849 -:1060C000E6BFE940FAAA1F12A497D5835529A2BEBC -:1060D000C3E88FE2DC727F6136BDE367F67EEE8750 -:1060E000AB49DF5F5E9BEB4363DE5F33D3877ED4D8 -:1060F000AB6B2A7D60EBCB9A0B3E3121D0F9A91511 -:10610000B5FE5D88D715B2E9CB16D7BA3AE1F7EC00 -:106110005333190E11FE63F6B90780FE4277BC694E -:10612000A69FDB3BF192E1ED05076EA7BCAC76E6DE -:10613000F38807866D3A8F026A7FE1751177BF2178 -:10614000272E1CC17E5F5EF90F7C7F6674817EC541 -:10615000174F7CCE4771D915F91EFE5B5E2D79E095 -:106160004F2C0879CAD7D45E9D33ACFE91F467C832 -:1061700033CB3E8729921CDE7C5C20F99033A93F0B -:106180008D799AF0B2045CFF73FCAF9790FF353ABB -:10619000A15F477D017E13D21E73C9CF169B2E8748 -:1061A0001AFF393FD76BE5BC1A8A6FBF7742D071AF -:1061B000BE425EFD349CAFAC984D386E4B9198C694 -:1061C000B8F79DC5DB555CEF4D251F4E0FF4C57824 -:1061D000BC5FB7B459C8FE43B54B9BFC1C41E6FB02 -:1061E000B57E1E6F69B5966B25B88C07B44A9C7F47 -:1061F000A010B29E3365F4BFD68F7EFB98053CBEDF -:106200009E20BDBA445D4D79B8F2F8E1E3B59978C6 -:1062100093ED386066BD276D7A2CA9D845FDBE7711 -:10622000E1F0FD3A7879DF10A1D7D627B0BE0A6C2D -:106230003E0CFF5B4A791E6E4BD9338467C9AC2490 -:106240007DD6A7A54CACB7A56C35D1652BAB93CF4C -:1062500086CEADEEA2739A5BFEC0E3134FB61F6805 -:1062600046FD614BCFCD807995C1781A507E6C99EF -:106270007E938A78D8B213A017E958EE22A75CC89B -:10628000F687873448334B0A426526A05CC8D3F8AA -:1062900099CA7DF12AC075DB520E06B2667E3AD5E8 -:1062A00088A19F2D711EFF0E969A354508F73891EB -:1062B000C4800EC90E2CB7D4CA348F368DE303EDDB -:1062C000AE734E7E17E6C19470BBAB04FDFBAC7F92 -:1062D000E58B7CDEFA8E12F2136DC97DD9447DD731 -:1062E000FA04185381EBB5A427C88C8EB0FF7A2D21 -:1062F000EBBA6F1593DFF2BBE2F7B2A60B48A79992 -:10630000F879CF0757E2BC5B668AB02B8BBEB1D75A -:10631000CFE3756963F955C559C679CEAF7BF204F1 -:10632000F4F715827BA8FA83F564F2EBA3E1B1845C -:10633000CDA3A086FB4B21E31C6B0C9264DF8E0582 -:10634000AB11F9D139BF3AA13AF1CB247B4A91156F -:10635000944F37D4795627CF7375852D9041BFF66A -:10636000D76CBE371FF401E2EDF2B38FBC80F95257 -:10637000BE0ABF46F955D0F902E66FDEC8D4312C0B -:10638000DF7C7CBA82F93F2F8F97303706F9278A56 -:1063900074F81688947FF6161C8DCE76D1F9297B79 -:1063A000DF41C98A72A43997CF4B0EB7F54A515CC9 -:1063B00077D9EA73F2F74861E279ED1066EF55CAD2 -:1063C0003E6A24F9D7C1F3859CFCC8CF767AF3875F -:1063D0003EB7C35BBE09968F41BEB989297469D6A1 -:1063E000EFCDEEBC2F36FE313FD70F3E07A936DC8E -:1063F0007FDAEDFC9875DF9FAE205DDF3C5B2BC242 -:106400007318CE3C7EEFE776E849C6A7BA8BFFD774 -:10641000C4D2949F9C39BFB7F62CEA4EB2F26BBA45 -:106420009CE276B6779EEDBEDEA598EF656DF3D95A -:106430007A8337CF71CDEE4A13F3C518F6F47C6F2B -:106440007B82FF1F3ABCF31D091F99F377F4C1A1AA -:10645000E6A3EC16B2E6FB85546FBE54B3CAE38DD7 -:1064600066B30C8185E79F8FB6AA5274BED96AF2D3 -:106470006BCD318A4F52FCAF9E110EC6F7CA559DA7 -:10648000FA792F30290D740E21350FF5A33FB7DFB0 -:10649000F92AE7C3BF74BF0B8780779DDAA7207FF7 -:1064A000AE973B6B84E2C1F301019F654E60F8F645 -:1064B000EF5DD63D013CF53A4659EF201E811E4561 -:1064C000BD1A7198FE4EDBFBD6BF3DF12F0AEEDF01 -:1064D0006F3D7E6229CAB95BFE550295D53BFD44EE -:1064E00004BA69DF492B2897D7EC9168FD41EE9EED -:1064F0007BB527DFBE99E67FCB5311DA1FD63CE38D -:106500004FD7B2F66BBEF7DA0C607C7BBAA9FF8579 -:106510000988BFC7059EC760F5CDB89ABD5F23C384 -:10652000F5D9F2106E50395F9DFA416825EEEFC241 -:10653000EE9EEBA8DFAE6B7D7E97FC5DA9727B9A29 -:10654000D533F1BBF54D213D55E0F065CBCB3BF5A7 -:106550004DEE4759B3D797C63CC535BB772A495648 -:106560006FFDEEB789BE173DF56414F1B07EAFF74D -:106570003CC22D4FFDA1ED92723AEFD45F8BF24FEA -:106580003A4BE533A6DACFF3E0B93FE656E2585688 -:10659000EF3B6F5EF16BF6FD645C82001329277B95 -:1065A000FF53F9572C27C32926CA58FFBE57DD7C55 -:1065B000B87EF76B74EE481399027B299E87C8F862 -:1065C0009E519FE9B90ACAC3F55D9BDE4679B97E43 -:1065D000CF5BBF42BA5B0FF2AB6E7E3E89FF18778E -:1065E0007E3C6B93EAF5D39D814373C901B03B3F79 -:1065F000ABBDE8C4B31CFEBEE5C9330FA31E71EAF0 -:1066000099FF7A18EF6758FBC7FF7918F35AE147EB -:10661000010DE5D6FAC77F1E0517FE1FB5E5C3E9D4 -:106620006F7EE3EB0F303C9CFEA59FB076FAB93746 -:1066300027E13D1DA79FFEDF31A87F6C7C6EF158DE -:10664000A4B38DDF5D3476B873A048B769BF7B7D96 -:10665000D3FC7E83BD026E8200CFDACF8C7581437E -:10666000FD0AEABDEF0AD0BF3997BDEFFA8382FA7F -:10667000CB0B26F4239EF6EF79ED85BB58F92DB6AA -:106680004EFE2CEBC4E63F41A4FD8DB10F7BDEBA7C -:10669000E7EAAB2E2BC7A7CFC0EED7433FED1BE7F2 -:1066A000ADEF31B6BEE583EB9BF9FD0C9C5510FFB9 -:1066B000EB9F60EB3903D795ADE78CF3D7F32DFC57 -:1066C000C7FCF3D773BFEAF5C79D81B58F3C801F28 -:1066D000F7E467B56F9DF55CF7DD4F0EAB973BF2C6 -:1066E00061243CD3F95E06D75754F3672AF2ED33A1 -:1066F000DFFAFA0331BECEB50C31A79F3C33090F48 -:106700006BFCD6D77F1DE2A1FF39BF867AD49AE70A -:106710007E417C77FABB2FD1B91EF61715D87E774C -:106720001A06FE8E022BDF2AF0C23ABDFF8A5FB145 -:106730007ED7B12E2C83D6EF8A5F95E3FAA9FDB4FC -:106740001EE965353ACADF7401CDFBD634E78F5BAD -:10675000D33D2BD09F9D89F748C0C9271C5C57F4B7 -:1067600097DEBAE7C415487F43ADA7337F0DE73FF7 -:106770008F7D7FD4CBBF43F2ABBDBEA777BEA7A0B2 -:106780007ED5FDAF8A26323BFFB4AF5F198FFBCDBC -:10679000D39286E78D33D77D10FF4D59CF1D673ECD -:1067A00033E9C31FC81EBF76F03412BF8F3CBF0F42 -:1067B00087BF33F63E9C89C75367B3EF075302DCAC -:1067C0009EBB153A6B50C5CCDCCF7C90B226140D25 -:1067D000C2DBD625919C3FB59BFB6932E5C5AD4335 -:1067E000D867339D71F6F6CC40B9766ADF0F6CBA84 -:1067F000E4747FEB132714CBDE1FD22EFCAE1FC236 -:10680000DF7DA9DDDFFA67B3F7B7FE89B7B3F677A7 -:106810005236AF45F84FF6FA282FE9649794D5CE53 -:106820009D1AF079F4AEB6C8DC5772583B291AA409 -:10683000BCABE626F317E827B58EFA6C3F80F15B18 -:10684000CCB76A8E04E99C7B73F426BA2FC9E9AFF2 -:1068500025034F723C41F6931C4B94F31858DA63AE -:10686000C7F81841B8E106D92A44BDFF70D19B3260 -:10687000F67B04F548975D7F4486D6FC723C172171 -:10688000188D90C5BF91D17F628104BADB4FD83D8E -:106890004EFC3D6BEF3F26A511B5F590EAA67301BE -:1068A00085D0F55896FE1E6AD0C97E2E4A5C4FFEF2 -:1068B0001F7F2A65A2BE56B8512B16F5A1C79D9819 -:1068C000F2C6AFC733CAFF3D8E73D047FA20EC7EC5 -:1068D000FCF1C7C7F02D05F5F217F0C9E4DFE57547 -:1068E0007A21961FB2E7CD7880CE314EB41232CAEB -:1068F0003921B64C46FD62712A21AF76ADE7E298A8 -:10690000301EF7D3F410F7407D3FC0F7CFC6C66BFB -:10691000288FFDC12F8A44D70F063E5E887C7620E3 -:10692000775E18FD6B3DEBE61E9AC6E09C10960064 -:106930004DCEFDE1E1CF6D3E6CFB1776D9F70F3DF3 -:106940006AE7977FDDC6DBEE86527A3EDE60D0F7DF -:10695000271A2AA8DCD55043CF671A12F43E7A577B -:106960003089F4B9A76125BD9F006F0BB8FEDF6BBE -:106970004852F9D1402EC13FF96E1093ECFD62C42C -:10698000477870DE0E3C69DBEEFE7EE0C72DC8174F -:106990000378CCC0F7E5D02BA8E8BF8A093AAE7BD4 -:1069A0007D40E779AE19F89DE4EF17302E577F3719 -:1069B000CF877858F09E77B8DF96FFDFB1F9F4DD26 -:1069C00068F2C9007BBE53B3A294F421D0CA906E82 -:1069D0001E1612478C22C2B3E7DCC9FABCE4770268 -:1069E0002EFFF0A40E6ED7EF08D8F26D2388486F03 -:1069F0001353A023BD39F3DE57A917A25CDC270887 -:106A0000B4DE486FA52E7A1BA0DF809D971CCFBEF9 -:106A10008F0FD22FE7FFF825A5F754235E3688E4C1 -:106A20000769C64FAE761FD874C4EC16D1427AAE51 -:106A300013C99F3BF9F8096112834FD7BE15C07B7C -:106A4000BBE293C0F637750590BE1EACE3FEC5AF42 -:106A50001DE7E798CE6C2C5E368DD55FCAF083C1FA -:106A6000A8BC25251EBFA5737EE16B6A22471BC605 -:106A7000BF9599F776FFE42FBD9FC3C699703CA4DC -:106A8000E379987B26FFA84761E5F17D02F993C67B -:106A90008753D3703D2BFFDF37C7F5B9D6E181753A -:106AA000A9C9A837B64DFEB6807C30FEEC8F05DC58 -:106AB000474AB4E49BB83E1364FB9CB09C9A87762B -:106AC000C1F57989DFE1FB4461FA53484F676A36C3 -:106AD000FE1BF6EFC421EBEBF5DC692EF990799EF5 -:106AE000E2A1D4F0FE4C67FE0FE1FC87A9E7CCDF02 -:106AF00059BF3335B1B5281733F199D96FDE9215E7 -:106B0000C38EFF907D8F189BBF3FE8926B85A93E97 -:106B100019DB39ED878ABB66CE77C04F34CA386D32 -:106B2000970FF2912E9EFEBF49DF3902483A0909BC -:106B3000FD53FB02C97108CF5C4851994947CA67A8 -:106B4000377239FF3E30E6EBE388EFE47411E57D00 -:106B50008C72BC5648242A719F334423DB3E303D5F -:106B6000C8E97E01A4C83F2A86EE1E3ECE5FE88DAE -:106B7000F36F059A0458DDAA1DFF0059437FD841E1 -:106B800098857EC8FC20E7F74A99DB97B30FEA3B6C -:106B900025EEB79296455CF8B3FD763EDE3583FB75 -:106BA0006ED0743CF735B34770F1EB7BA1E4C220A3 -:106BB000ABAFC4B93FD2174BD279CBC55258247F63 -:106BC0006E2797FFF590502FE47119C079EB1017DD -:106BD00071BF7F68233FDFAE6B2182FBA1984EE53A -:106BE0007A5B4FF9B14D473FB0E5FEF76D7AF92E6C -:106BF000CA7DA49B3EF3400E83EB3BB6FC7FDA9646 -:106C0000FF4FD9F27FCEB13EF86639C96303F39ED8 -:106C1000BFBC3DDE84D37CB2C1A47ABB1AEAE8B91A -:106C20003F77ACB897D57B74A3B80BF9F9516DECED -:106C30009578DF55DA140D81357EC8DABE28CAE0B2 -:106C4000DFA90A143F7BB82145ED76AA7A938AF131 -:106C500014662D5B4806F5BD14F6A8FC6DBF56C33F -:106C6000EA7DAD33EF4A8CC3DD5B23533B878FF462 -:106C7000391BB03944F3FC4164ABBC826E750ADA4F -:106C8000E91B45EAE72B81CFA88BD873E2C4A3EABE -:106C9000C7755C8C13668A7D5FC4908CF3A8E8EBA3 -:106CA000B3B05CF27A98F2B5E7BED2074FB3725137 -:106CB0005D84CA132D2F5F4CDFD367753238269E53 -:106CC000E2DFABF37E6775B1FA391BA2D45FD5EB77 -:106CD0007D02D2B3AFDC7BFE6A87EF97FB236CFCAF -:106CE000D8A1848078DB27688B3025C4FA143F7FD5 -:106CF00033F62054E1FB787409ADC3F66011D1CFAF -:106D0000D75A8EC66F463C6D8CB5A099B37FE3060B -:106D10003A9FE0DFB891EB4129EEFF9E78C701E191 -:106D2000732EF950D82267F5DB6D0FFA799C64E376 -:106D30008AC4340EDE8130EA7B25DC5F59D45AEDFB -:106D4000C96B72E2231F08C9ED41B29B789C44D6FF -:106D500052F4FE32097545F6FA4E91EB4989DE8010 -:106D6000DB0FA3DFC1EF67CB8463575026385AACE3 -:106D7000EA3A9417DBE6287200E19866DFCF62C733 -:106D80002107F63121B9CB2DD7648DC33591A132BE -:106D9000847077F77EAA8BF5F37ECAD9C7CC20E939 -:106DA00049F788C41F5BCBF939C0FDC63BDD78CFFE -:106DB00085C34FAD8648FCBB5D16D202EB677B797D -:106DC00071EE85483F31DCBD69BE2AE2B944F6F177 -:106DD0001C0E30F7A15FDC8F7E71B6DE25C743271E -:106DE00044F2FF79F3BF8B2CEFFA8BF5DE73771348 -:106DF00099D2E3CE57064634037446FB6BF5BEFFCB -:106E0000407E5819223A03CB8C568EC1F445FB4F75 -:106E1000AAA5F3CF2519E70C1EB0EDF787ED738413 -:106E200070F63640B9F5807DFEFA81B5625067781C -:106E300079DE3A4AFBE6C4FAEE4A0ACC687E4F7E17 -:106E4000B5FF6EAD09F7D7A294374FA832232FA80C -:106E5000E4CFCCB33E1EF4DAA9FB4E060DBC0F2FD7 -:106E60007D4C32509FFDF25DB349FE596BB8DE9206 -:106E7000AECB7B00CFBBE40B60E07BA75FC77E7D22 -:106E80002798477C939ECFBEE730B912E95A5287C4 -:106E9000EB05395A530CCF43DF09DFC6FEEBF8FA96 -:106EA000571602DDAF5318033AE7CC9E9B2F40FEE6 -:106EB000DF28624C1CCEA19C4739AEF6BE88EF732A -:106EC000AF14E9FE9CA216EB429CE7BE4BC68F476F -:106ED000FAD81AE6E75E9A851468086F01E7879D7D -:106EE000916ECA07DD562342135214C3A581FDAC2F -:106EF0000EEEA23C1684770ED11DE95D18A3407EEC -:106F0000B46E08F27DE7AC7521FA95A3A1BEAEFD83 -:106F1000AC9F70BB62EC62FDECACF4DE533735C461 -:106F2000F7BB404870E2FB81107B9A5B81F216D977 -:106F30005C88BF195F5940FB8246769513DF8FEE60 -:106F40005B22164DE7CF6217FFEEB2E56CDACE5B3F -:106F500078D8DE3F1C7DE301DB6ED86AEF1B45E687 -:106F6000554D0AD26D1DCC443C95ACED125667B31D -:106F7000EF3BBC7235935F2667F24BCA7B4E75427E -:106F80005DB1E77BC4B8C8F39D4231B8EE6CFF46F3 -:106F90003CB707CA24D4FB6643C274CB95A1F6FF65 -:106FA000FCA03923F421F49F68289142FD3353FF5C -:106FB000BED45E97EB0289F9B81ED14B56521ECF54 -:106FC000BA40E252EA5F4E0B284F1760BB58567822 -:106FD00029F96B14F0567F18784136E83CD79D921A -:106FE000739FADF73C1764DC5F9B793FEDC2FFBB3D -:106FF0009BEEA76D1598A287E51CFB7E5A3FBF9FAD -:10700000B635C2EDAE563B8FEA561B0FD787F87DDB -:10701000AF6B6D3A5D18CA7EFF91E3F74AA16CC071 -:107020007A63B3DF3B861A15F6B77042F6EFA91004 -:107030008F3B2E9C3CFC381B701CD6CFDCA0B92E9D -:10704000E4F2AFCC0E99EBDDE5DB43767E919C203C -:10705000BDD294F97E5814343786E6B8F06B3FF30E -:107060009694D379BE33F6793ED66E87407895B440 -:10707000D1E0DDD1FF5B05FD1E92833F677A5F960D -:10708000F5782F18B5C49CC17894A31FED0E717BC1 -:1070900092D1DB263E8F34E5418741BF07EF8198CF -:1070A00080F770EBE85738FEF0BFA0BCBDACB70668 -:1070B000F5A7753F94E87EBBF3F0B596D19D2B1FE5 -:1070C000C5793FFEFD0964074F9692F7875CF6F19C -:1070D000F8BA7E05E91DE1AFE6F0F3FC69217D21F8 -:1070E000B70780E238AD37C73DF98499F6481EDE10 -:1070F0007340724521BD2E132EC79E70CA99E711A9 -:107100000EDB74847FFA18BC271CB8322B9B12F25A -:10711000D71C48D2731EE8F464764B17CE83F19FD8 -:107120008E703685265D8AF3F82BE2ED47A1397F14 -:107130007B7873E8B82879F9001D67BBFFFAFE5029 -:1071400094E46DFDF108E9FDD17D5F20BA96185DEC -:10715000076283F932F560E7D187A10BF5DEA264FF -:10716000039D0B3DC3E818FB95347E8E55062D819B -:10717000711B29C6F9C327976AA2867159CB8F79EB -:1071800007563118286BD11FE986B73C9C7CD38DFC -:10719000C73B8FDF43F2F6BA40F224AEE79D259657 -:1071A0001F353B971C3EE596C3028475E4BF856797 -:1071B000F97E5999D465A487458CD311EF8B214969 -:1071C000E58F8345CF2590A6E7DFE19546A4C7D993 -:1071D000E716BAAF15DDE71606F2B9CB9D7C0E1E99 -:1071E000A72AB0E9106C3BF5F995CB1B17B3F1D981 -:1071F000E29B188FFAEA4A9ECFE39F27D3F9D58204 -:10720000BE1B6A314E042BB85EE6E441E4D57AF544 -:10721000B4F3EEB73AFEBBE3D82EF39C9CA3AF6564 -:10722000EE5BCE33535FCB0B673F3F39D4BE931930 -:1072300057A8C77F72FBD5B6AB1339EE7BE3339FFC -:10724000871BFA5B0EB8F2CC8FE0FD4659F7011EA2 -:10725000EF8DEEFB5DED8A72BA5FCEC094C9DE861B -:10726000EE85AF4F1DB483130B729F477F74A23A14 -:107270007796C4F0BE34FE6ECB817C806566CFC24B -:10728000D75DF3ECD518B459F48481F14CDF07EEE7 -:10729000FDF72D85CB97567BBC881D1F6B172D3FA7 -:1072A000F1ABED7FFB7D21B7D31DFB3EDB7C5B08A3 -:1072B0005F7D61A487A1E6FB0F61BE9F8E5969D0F7 -:1072C0007DF9CDF67DF9CD139DFC2D43437DF2A6CE -:1072D000702EBFAF205C42F1D5E69EF9E44F2E3808 -:1072E000E4237FFA981549C172ED8BF73670FFEBF6 -:1072F00057987E87F9205B985E87E57D957355B436 -:10730000176E8FCCA278EDE606C3932FE23CF13ED8 -:10731000BAA4CBBFD79CA8D230DEDB523B4B45BBD7 -:1073200043FA443995E50B677556317EFECCD61984 -:107330005714605CA28CDF47763D2B3796303B3A82 -:10734000CCF7D9C3C6EB61C453555877E887D6D17B -:10735000B72269FA502EC4B52ACC9571DE834D5FF1 -:10736000EC3DE9D76F29C99BC36CFE87ED7BB1DA91 -:107370009554E986323C17CF040EFA8955EE27441E -:107380003A68993D08F7061BBF97D8E33281243E3F -:10739000ED5A3F25CED7AF5D84BA6CEB737798EB8F -:1073A000372D9AA90D4B479AFC81E7FED0F218CFF2 -:1073B000CF8F313A72F1F3F9F4CEF9A93C9C680908 -:1073C00017A05C84D214CD3F4CF287DA4983F7587A -:1073D000C6C36607D63B9A6BEB2F853C0F9ABDDF81 -:1073E0009243F34B917C77F4C17699EB73A3D50765 -:1073F000F3966C247DF01DC65A649F7D6223C9ED0F -:107400008D3E95EEFFDBB740A67856740A5CEFB66A -:107410005BA4887DFF7F84FBE5F17712D2D3B8DED1 -:1074200083E73CA221A0732EFD13797E693BECAC6F -:107430009942F04DD5DCFB59E544EE67D85615ACC2 -:1074400073FB1B16E6F278D98BB995BFC3F9978504 -:10745000D355C89A176BD087F93450C5CF8F09859B -:10746000FC9C8D0F0C95F36BB586F7860A90A4F300 -:107470006743AE1F78EF177D5C4E3705116F31EE15 -:10748000D789EC1028694FEA32BBF1EC4E7BEEF263 -:107490001F223D32B967207FF7CC0D92BDF76E8F6A -:1074A00042F6E7BB37C3AFD19FF4AE2F072CB654DB -:1074B0003F12C55F3FC5E6DBCF987517E67F69FCD5 -:1074C000FBCCAD02F99B7EF4417002D2BB110511D9 -:1074D0007FCF6229D32778922084303E1B5D04DD64 -:1074E0009763FB9E30E1CF17FFC9C2D767D3FE1366 -:1074F000122BF0BC96F820CEFF9938E461FBD9FF3F -:107500005B25A1FFCAD187BEAA258F22DEE6815561 -:10751000D7C3DA6F53387F6DCB53D218A79C552051 -:10752000921E02BE507A2AFBBEF4E0EBD598DFB97A -:10753000B46226D6C4F169BD4BB4E4719C77B5B68C -:10754000AC3A97D52F3FA693FCBD227EDB012CCF12 -:107550003DCECB3E3FD7E3518F719F0F58FAFE24AB -:107560009AD79B61AECFB6C4CD5E531896AF32EEBC -:10757000E5F59E2F70E8806DEB3AE6A5D3BF75A2C6 -:107580008BA44F1CF43F4185619F3F71E8C1143EBD -:107590000C3DEC09F37DA11DF3CD6283F966EDB6D8 -:1075A000FE36DA7CB34C7ECA5B22D33ABCC3F42DE0 -:1075B000BCCFE37C3EB98DEEFFCCE42707CECDE512 -:1075C000793194C30EDF68F3EE26B9ECBF41A1FB1D -:1075D0004C1D3E72F8E7D29C013EBA0FE5C58AB059 -:1075E000BE98A76898E0E693AB47E0ABA5D07F20B4 -:1075F000C6CA4B65B07298083A3CFFB725935C7CCD -:107600009289CFA50B0478D5230779D9856F6DE0D2 -:107610001EE02C76F250EB7254E6E71E1C3EC5DFEE -:1076200063C1F3631DA201B81FB5E7AE36226CDD5E -:10763000E4DADCB5C80F5B84440AF92132EF54E880 -:107640002686F777C7302D12FD87FAEAA788DF5F15 -:1076500009915DB66DEE1A8A4BBD7B737232EE2FC7 -:107660009B18DE5FA5FD3C3D56A45CDBBEB13C6FC4 -:10767000428FF36732CEDF83FD3D6D974DBB5E1FBA -:10768000D563EBEB919B3F8D723EF86994EF539B72 -:10769000944E15E9A1BF48D5B2E52BA722BCFEE563 -:1076A0007E28C7FB18D968941FD0AA4A353BC95910 -:1076B000C2E5C4E5534A77B9CF5739EDEE6DE822FC -:1076C000BD6653C35E7AE6D7A601F3E882A5968E1F -:1076D000FA87FAC74502EEC770118FCBE3FB4697D6 -:1076E0005EF7695BBEAB785F101B4F6DB274F7FD40 -:1076F000B4AA2864BD47E84894FB89D526A0EFEAE0 -:10770000BE7FA6FC85FC1243F82C969B3AE9F765F0 -:1077100002DDFC7DACC4146E74F51BABEDF2ECA382 -:10772000AAD82793DD540F9A8546A0DC578DFEB961 -:107730008EE5C14ECC6BCEA437FC7BD54537EA1F16 -:10774000AF26FD098E72FDB5BA58253A6FAD577652 -:10775000A2FFEFF7B12ACA67EF88089EFC02E7890B -:10776000F177A611923FCDF2F338BC358DC7E1B168 -:107770008C71787C621C1E9F1887C7EF1887C7F230 -:10778000B71B4C2A633C1ECB188FC732C6E1B18CA5 -:10779000F1777CEE6DA8A3E70F1B52F4FDD9867A32 -:1077A0002A5F6ECB5728E5BF07D6F105C5C4FCA9F3 -:1077B0006E7B7DF69BCBEB7E86FE42881AB8AF07C8 -:1077C0000E35BDF2EF7699EEC98E17E7A3FF126270 -:1077D0002260DCA12DBE9DE9A283F30BC8F7824E87 -:1077E0007177AB0EF31EBFB1ADF70A99E91F25F112 -:1077F000DBAAF258F9C96D2FB7619EE9057AE3CA91 -:107800009DAEB21E99B5E6696DB03CB96CA71C641B -:10781000DF9F89FCB20DE54520C6F5C367B7FD9A29 -:10782000F4C3EE62A600A1BC2B52D248EF37E23A75 -:107830004DC579F07CEEBF83E638E6F94DD6955913 -:10784000C8A7AC7E37E78F51D6C760CD9CF3DB0D60 -:10785000574F2C1F553D3AA73B643DF65D18A69F38 -:107860005668D67A19EC5B7C7C1FB60AB89FB8C301 -:10787000C7E54347803FA7E438F90D55CDD102CC89 -:10788000FBE17CDC11E0F713F44F17E9777BA05E96 -:10789000F87BECE7F3E341C3FCC859D38BF3D14E3B -:1078A000F8854D0F532747F8FEFE8F2AEDEF1F9FF7 -:1078B000FC644B1E2B4FFD17C3C0FD7A0B1841947F -:1078C00027D6562E4FBE553E256F19AB7EF19CEF45 -:1078D000E6A17E3CCF964F69DB8E696CBD6932DADA -:1078E00011EFBEC4E5E31BB67CD9E9EB4DD17ACEEE -:1078F00009D3790B804ED25F1AE332E58989E3F828 -:1079000053F1699FA6FB335B15BAAF49F9C33C95A8 -:10791000FCAEEFFBEDFB8A7B49AF5102492D97BDD1 -:10792000EFB444F253346BC134DE9BB5253C8B7EFF -:10793000BFC12A93296EB6A58CC77F42916BE85EC2 -:10794000ACAFF404A87E6B58A57CE174D99E835536 -:10795000317C8A1AEA07697339DD636969A246795D -:10796000C7EC5FF47D6D8CFC4174FE18BFAFE5F190 -:107970000ADFD843546EFEA446FD839DDF4F2A9A4A -:1079800088BF2791E8F1DE4BDBFF938FA1BF640D29 -:107990003FBF32435BDEF31CFBDE62AA8962C60F87 -:1079A000ADDA3BFB42585E05144F0D4D7FBD298477 -:1079B000F56FD40C9EAFC5CF4B807D0F724BD98A2B -:1079C0009EFFC0FE578660AA81F5AB55E4576881DB -:1079D00017F0DEAA428288BDCF9D25A0DED65A4B85 -:1079E000D77332F8BCE70C5AF2AE54916EA4A57965 -:1079F000344E2B982AD6B76A65DA3F0BC36A37FA3A -:107A0000170A6DFF84230FF253AEF306EC7FE3D722 -:107A1000CA9EF308636FF4960B32EEE12DB7E927A7 -:107A2000136F99F3CC8F3D938BF0E4AFA59313E7DD -:107A3000C17F6F6CD6329CD7386D9FB0B39C4C1F02 -:107A40004DC77BC821D5E8CED7F873E19D51D6D27A -:107A50008BF4304397416778F918F43761FF5B6C1A -:107A6000FAEF28F2EEE3BFB0ED1FC6A76BA37330A9 -:107A7000EE2182E5EA1FE322960B9E291D799EF2F4 -:107A8000D4CEF19EFAD376147BBE5F98BEC8F3FDC8 -:107A9000E2DDB33CE5E95D9778EA7F6C6F95A73C42 -:107AA000B3FB4A4FFDD907977BCA737A3FEDA93FD5 -:107AB000EF95D59EEFF3FBD678BE5FFADB0D9EF215 -:107AC00065FD7779EA3BFA7FE6BE795394CBA30F45 -:107AD000ABF7E3EF03B9CF1D67DA15E7DDAFF3C707 -:107AE000661DE38410E5F7E9CAB8BFB3F2862F70CC -:107AF000FB4C5D68E8286F5645B97C5D9F67DE8E5C -:107B0000F2B532AAD23E2187793D397C05E923932B -:107B1000763039359BECB681EF18AFEE68B016962B -:107B2000B8FC5A01AD13304FAC325A43F70A3AED64 -:107B300065CD04CC9F5B15D5B91EC4AC5EBA2F4091 -:107B400067ED5DF36276225D31D1CFEC48D4FF075B -:107B5000EC443987E2C3CC4E243BD20872BB11CE31 -:107B60004AF4DDF88A40F7F8333B90ECC867C2CCA2 -:107B70008E9C89765BDF169443FD3F9529DEC8FE17 -:107B8000C84E2C6776E2E65CB7BFBCAF089F69D0F1 -:107B9000C6E3B347E916C71691DDF8CF48CF9FD9A2 -:107BA000F8521DF63BBD9CDFBFD731A6368EFA7466 -:107BB000475117F1497F91CCF7213951EAF6031E5D -:107BC000B0F7AB90FA2DB257D93A905C76D6618B6C -:107BD000D097C67B0EAD2F04C92F3EE937FEA3C850 -:107BE0006F6AB13A01F3048DFD8A89E3DD6BE3B975 -:107BF000589B59853F0759125FB60F9F17E84C1FD6 -:107C000061CFD2D27BF6E1F37B51327AE122E3E914 -:107C10002A9431EA42EEDF966728E92601FDD20C6C -:107C20008E2CF689F394A23BF8BD4025F21B487FC9 -:107C3000681D9C6353A8CC5329BE1C40BA10E84968 -:107C4000F4149043B4BF04F0B02A962B843486C455 -:107C5000507FC5BCD1CABC1D44078E5E8BFA6E92A4 -:107C6000DBD10790DE62B5DEF50FA9DF263CB5D883 -:107C7000E7A23B72F543556CDC8E82E23CF4EDA248 -:107C8000DF65994BFE1CB4F7DD477344474F20F97D -:107C9000B30073190A06F522C60F3BC429086F8288 -:107CA000E2F0814312D9FD81BB3BE97758039AA5E5 -:107CB00003E9FF968EFD5617AF243FE1FFC466919E -:107CC0001E1CA8FF5156BC05FA2430670F8DCFE863 -:107CD000050F903E0063823AEEB3F5B1A0B9338B45 -:107CE0007D5017B1ED9F498EDF3341E7625BD12FA5 -:107CF00017C6AD4D15319FE7F69F1678EC9ADB0B52 -:107D0000B81F73A8F103CC1E4DBAE0DBC4FA4539A5 -:107D1000DE7A76590DDDBB8ADB4C399E1B2DDB49A3 -:107D2000FEFCB3CD3AE67DD5D9784D61320FC3DF85 -:107D3000240516ED447992C7F42386D24ADBFFE28C -:107D4000F86926E6F0F8BF6181C4FD773E67DF126F -:107D5000CFE17D353AE8CA5CFB2A005281F9BEC604 -:107D6000FEAF07CF0F4EE970ED7380FB81B73C6D1E -:107D700087B77C61DA5B665AF4CBA807AC00E0FEFB -:107D80008FDDDEEF61307D186F19EFDCB39FE0E728 -:107D900009550601D2775957BAE76B6C7E09E73E61 -:107DA000CC8C7BF5A7EF4993FE7295FDBB1F99F72D -:107DB000BD8FC7DF019941F3F2ECA3B37C12F92523 -:107DC000D09F64B8FC49259AEEB1AB1CBF50A65CAD -:107DD0000F1EBF07D817B2EB937EBC37552B43FF5E -:107DE000435BE1977E73A27CD00FD326A7DE3C4194 -:107DF0007E4EA67FC5B89F04FDD7B7FFF48EFF3E29 -:107E0000E1F267BE1B4DCE46BFC7FD93797BE75EAF -:107E100055E7DCDF3B35F2F382CEE148BAE0B8B398 -:107E2000D4FA385757D2E3D08FE4F8611C7FC3F5FA -:107E30007926E9E75B8CA3A9FDACDFAA5FFA01FB19 -:107E4000592C1D3AD880F26EA24C7925DABCB58F38 -:107E500004D1EF89DF59B9AA481F4BFCF1A28FFC6E -:107E60000EED36DF3BE7571DBF4D2287F347AD6D63 -:107E70000FB09906ED731B41D4932FDECDD6D0B34E -:107E80001F72BFA1E31F9CDEE5FD7E111E0527FFCB -:107E9000E84ECA8332E6F33CA8312BD3FB709D3FFA -:107EA00066AF33C6B72AE70EC659C7AE4AEF433DA1 -:107EB00074869DCF54F6E2F3F493BF20154A485FD1 -:107EC00017611E136B671C903DE746C68040F94062 -:107ED000638E49469AF533E359EFF73270958B106C -:107EE0003E6F39337EC5D4ADB76F10F0F7535302F0 -:107EF000CAB3ADAB988DC0CAEB72EC3CA40BE002E8 -:107F0000A4DBC552D8C0FBF536FC5CA23C64FF89FB -:107F100069BFC0382ABCC4F32EB5293C2EABFD4442 -:107F2000329804042D0433678607E35D5F3D67E004 -:107F30005DFB037EB4C7D9BAE33EF404B3FB4B7CCC -:107F400068C76B54EE62763F969F61763F3EF7308E -:107F5000BB1FDF7F8FD9FD58DECBEC7E7CFE90D936 -:107F6000FDF8FE5966F763F9C5DCCA2D397330BEDA -:107F7000554AF4149CB987F21EDB559F86F4932969 -:107F8000CF2A2B6F575730FC6E0E2FA6784BD56239 -:107F90009E77BF256731D9D303FEBC0C7FE8A07F55 -:107FA000AF4F70FC7B78043A6EDBB3037ED2A44102 -:107FB000F71B8CDC8FE9F4437ED6F3FAB1FDAD6F8D -:107FC0007DE1575F6F669FD6CDD9DE112CC6733F1A -:107FD00029FEDDCE3FCCFCDDAD757B1A291F501983 -:107FE000772C85EBBAA73C4CFA06FE2E13CAED4C53 -:107FF0003BD1B10F33F571E799B91F66E6CB446CFD -:10800000BD64A4FC8D6DBE14C5B7AD46265F70BFC0 -:1080100068482F7CDD77BE7F77B29697714E99E7DF -:1080200067F90FF2BCBD0E486AEEF93BE723C8E6DC -:108030002BE67E46B77F375892A6FB1B826193F4EE -:108040004581E991A4576A498A17B60DF1FBDAA771 -:108050006C39D138EE1ADAEFDB5EF491BE556DE77C -:10806000C9358F53A9DC3C6E6E9CF22B2373D5BEB1 -:108070002CFD6C88140FBBBF4A6CFFD787D9FF2536 -:108080003F3F17D6BC6FBE8AE7A73AC2AB7BD16E23 -:10809000EF88C7284ED0336EAEE77E72295E41F777 -:1080A000594861AE674B7195F46C19E75F3658DF3C -:1080B000A9773087D30F6373F26306C29D54CF2F25 -:1080C000274CF4B7F8633C0FD9AFF1B862B0440461 -:1080D00035CB798D1EDB2FDE5196D4D0AFD31197DF -:1080E000E9DC47873E6BA8B82CBFEF42F3FA079B49 -:1080F0006DBF43739D427A61A23E57ABCEA7730B0F -:108100006790CF3BC24D2AC669FF3F82909C4F00CB -:10811000800000001F8B080000000000000BCD7DD8 -:108120000B7C14D5B9F8999DD9577637996437C91E -:10813000E6C90402060DB8818487C6380991A222D7 -:108140002E0235B4B42C0414E415D1B6ABD5B2214B -:10815000098F2025581F282DDD50B02FBD8D96DEAC -:1081600052ABFD6F04B9A8A8A97A15FDA146B43E8B -:10817000EECF6A04BDC547FFFCBFEF3B33C9CE64F9 -:108180003604B5F77FB1653833E7F19DEF7CEFF347 -:108190009DB38EBCCA60CCC758CB3FC5862E2F3C42 -:1081A0008B18EB8127934219AC9C318F2C3096CDE4 -:1081B000D869FC73317CEF76ABAC129ECB1C717727 -:1081C0000963E168454EFD44C6166685990CF51CA9 -:1081D000BEC5720CDADB1953B13FBD9DFE0C627F48 -:1081E000558C89F26F6BDEF20FFEAE3FC5F41D2C8D -:1081F0008270944A6FF7BA18B3294C386D8332F302 -:10820000CA6F9FC7E8CF6911FFEE09867DA9FBF110 -:10821000B9FEADE6AD8983DBAD2AEF75880A639BB5 -:10822000F7748419943F131482CBCE626A01CC6B2D -:10823000F5FEEB5904E6BF55EA71C900C7D62F8495 -:1082400085E1F2C1FD2FD3F003088B219CF0C776A6 -:10825000FA7CF85B618A63126305F866243EF9775D -:1082600018A5FB34F45F91807299060FFC7FE261E0 -:1082700063B9AAC7589E7CD458662C640F8F63ECF0 -:108280008575D0E9398CCD39F6DE3196CED8DC58FB -:10829000E8F147038CE5ABAE705C666C1E0B3DFEEF -:1082A0002A940B1A3C2C1182C16D6C19AE0B4CF345 -:1082B000A55280AF8111ACAC60591A63AE81FEBF8C -:1082C0002B67123E1A7A17CD64E319FBF1CD2D8C82 -:1082D000413FB13A21BE17E09F5DBF67F62878DEC7 -:1082E0005B692BBA0F1B45EC6FE1FC5CD0D9699838 -:1082F0006FA6EDFA1123A17E789A4768817A3FBE76 -:10830000E0DCCDA550EE993E3A8478077CBDD53FA0 -:108310001FC0FFBC306FAF8FFF6CE589B9A3E0B918 -:10832000B3F2A1D9F89C935C1FFA9B35A5B3D90190 -:10833000FD5DB9529980FD85EB8DED0BAA8D6580B1 -:108340009CD609E7EBCF1A0CEF99E0318FAFF777A6 -:10835000EF3A85F0CFBE007A007C86F113B40F4B64 -:108360007D5208F09C5F2DA871A09B0255503B2DBB -:10837000F8619B463F66FC8BB10C867C56374F8C70 -:10838000B743957C979DF09F3F53882B307EFEB27C -:10839000BEC469287FD3658F8BF03D2BB34BC0EFF4 -:1083A000F7AE64ACA384C04BAF4D5ADF7B5D6DF676 -:1083B00062F83E2F4F6436A003563D8AC6233846E6 -:1083C000123E8E737CB8081F052B438FFF0CC6BF6F -:1083D0007A8A5316A1FED50DFCBB0EDF5609E80CB8 -:1083E000BE6F053A8B119D49C793F133E7D8AA5563 -:1083F000488F734CEFC7CA8CE8EAEF538F8E29067B -:10840000B856091D333C008ADBDEC4182E346010D8 -:10841000E95AE7471D4FABF635133F26F199FD3476 -:10842000F233FE3B8750437CF698EBF732CA8DBFA0 -:1084300064F6EE6440C2BF9059ACBE9AB1FF93D6C9 -:10844000779E00E5DF74346CDA74117C77F7FD9663 -:108450005530E6DCF89D19338A06CA69EDCB67CC46 -:10846000B808FBE3E3C014627CBDFBC725FAE893C0 -:10847000397C5B54B65D84B26493B7874A06DA658B -:10848000613B61887661B65DB268E7D5DB019E36F7 -:10849000C0FAA569F34AD3BEDB347892C797106F50 -:1084A000B2E215603DA4E9928CF4F255E1C839D3EB -:1084B000BC236CBB7DD4E0760076B30EBFCD1AFE34 -:1084C000387E4F1EDF3E04FC5F373ECED49F43FB19 -:1084D0007ED6F041F5F539A9E78B70D9515F298A2D -:1084E000D796D4CFB6EE4F9F3A1F88579ACF426E99 -:1084F000E843B2AB7208E8BC5CBEC3859D4B99F5FE -:108500007204F86133945578BFB9ABC3A5C0FBF2D0 -:10851000D2DB3721D19727D218CA83714CCEBC1F2A -:10852000FA1D274B2C81AB76D1419B07CAEC0A166A -:108530001A0DFD6674A7913CC92CB9E017028C9BFB -:1085400099E952B1BD2773D22F18D10753A4247CC7 -:10855000786A5FA8F3205CB35908595112E2AC164F -:10856000996C2C637BA19C79C91E560FE5097FF796 -:108570002922F2B4C4F55D3BB6473DDDCA0EA17EAB -:10858000C9D3E4CF2687BC9DF4C7751243FDE1191A -:10859000778780F0DC0B5D89C097E5E559B3EBA1E7 -:1085A0005C7EC41652149C4F87508CF3098AA4B782 -:1085B000747CEA7264C24709CEF463597C2FC0DF31 -:1085C0006A8F27505EC5A65E2DEF0578F29724C905 -:1085D0006BFCAB0F7080F03E7DD5DEF612A46FE928 -:1085E000ADE4FE323E8A27509EB1DA8630B60FCC1B -:1085F000940CF23F4D936769263DD09A65273AD196 -:10860000F50153254586790BDABCD98FC2A40F9C9E -:108610002CE47290BDB280EC1081F50AA73D307F4A -:10862000AC887017F1790C6A3F89B767C1900BED80 -:108630001C675A5313D6878F59CD805CE1BA341525 -:10864000F5B3E060AEBC09306F1B8B74019D340B39 -:108650004CC2F2C0780986E3395D9E56B4BB1E73E6 -:10866000B5D8107F2D87417FC03C36DA19B7FFE4BB -:10867000902B0BDA4735FB6D6DC5C85C2C67E4E8C1 -:1086800076615846BA5C9B5D9A8BF661BABFF7DBA0 -:108690002867676EFFE30C17CAD53AA87301E89DF7 -:1086A000CC8736C540EE3A4F153025C9CE734A4DBA -:1086B0000CED29E7A962C3FBC43A98D1390365D50B -:1086C0006BABC771D6642A84D75A26B762BB5A40AF -:1086D0008692B42ECE53794C9968D57FA1E17D0264 -:1086E000EC24C5399CFE3D4C294BEE7F548AFEC7D5 -:1086F00098FA972DFB1FE8D76FE8B74D626447C71C -:10870000025E5A77B35DB031B3EEC64CB4479DAC50 -:10871000A9CBC2EEDC906923BADB186CEA51A17DCB -:108720001D03C6073AB9F88BE322237B06560AE8F5 -:1087300085154A7DFD743C12EB71FAB5C50486724D -:10874000E962C96EE0931A662C9BEDA27361AD11CC -:108750005F365F650FD2CFDAEC34C56901BFFEEC3E -:1087600059C76A4A47C37CD3C2CB18F0F1CFB71FB1 -:1087700076B505A19CCEE9E481EDAFCE88C1FC7A47 -:10878000044E7F6D011BE1255C97DB2926F51B76E6 -:10879000B0D12817C348DF5E0E0F8EDF935DB8BBE4 -:1087A000DD627C10BB06FB61B62AD49426CDAB47B4 -:1087B000B383FBC79B56D0897CD03F9E9355D1781D -:1087C00022E03F79BC9C2F37DE5F717EE503E3CD6D -:1087D0009E6E9CDF6C874CF39BADF1AF3EDE5F710C -:1087E0007E255F623C9C5FF278DF30CE6FB653A689 -:1087F000F9CD16397DF58F97F3E5C6EB59574676D7 -:10880000F04607C827A093B48A7DAE5130EE469754 -:108810005D16948176B5B537B8E6A2EEF54E9B9E0F -:108820000DE3D45D0295F3B19769D36B4B19DB2E41 -:1088300070BAE8CBFCAF4DE8479E9CB9B68CF48982 -:10884000665F5F8955411F5F29717867157AE3CDAF -:108850004978BC17E4880A70FC14F85D057EDC05D5 -:108860007C89E5F8BA203D7783BD8ECF3D002F7E11 -:10887000BF6F5D88CABF5A37859E7A3F6553B8DDA2 -:108880003EB6DADA6E3F2F8BDBEDDBF3E4F94B50CB -:10889000AFD5A685502FB229173235D9AE664D8F88 -:1088A000B9E1FBD66FB20AD48D637670B803F5399F -:1088B00064B7A7551CEC5907E58D925D41BDBC51CD -:1088C0006133ACFCE631A867603CA793B7671772C9 -:1088D0003F2C10EE3D887A6F0EDAE980D7ECB9BDF7 -:1088E00007D1FFBB0AEC72D2CBEC8D83AFC2F71776 -:1088F000C0FF6BC7B2E865329467CDC9A6F1E14FFE -:108900007A6D0EDAEFFCCF4F669E20BF22ECE67A3E -:1089100021C0663FDE8DF0861C4A9CFA6377869103 -:108920000F54BBD24EA2206C473D9D8D7A1ABED704 -:10893000BEE1643684EF1207C9B5B9738D7EC37684 -:10894000774246FB677B45803543FF57CD347E77C2 -:108950003A39BF854D7EC32C5319AC2DAE77C50572 -:108960001968EF6FC4575307E32D7AAC79E3C1243C -:108970003A55B27C81B73DB8106C0CCAB34F58F968 -:10898000B67AFC589845C68AB9FD3FD6C5361E044E -:10899000D4BF80720FE5AD83CB8DC1FCC1E1A9D1FD -:1089A000E4E3BDEB7A6ADE1A3D005FBE1417500F98 -:1089B000142C83F749F395027101FD1D26DE5F81BA -:1089C000FE8D791EF70AF7E7318BF1F4673E93DEEF -:1089D00046BCE052A23C37CFB766D07CAB9F2D653A -:1089E00056FCA46C477B6ED66131D4AC0CE0439F3F -:1089F000FFFF345FBDABE19BA90196007A7916E8D1 -:108A0000BD9DFB310CED549D5EA102D94F575E090F -:108A1000DF912E54B508F1F9ECC8BE3DD7603B900C -:108A20001D2DE8EFEA7650E2651BDA415FB6DF2BD9 -:108A3000AF7390BDC558BDFC76D9407FA9D607FB62 -:108A40007D3B497FF6DB89F8679226FA10C6E6502F -:108A500090EC819BC03E467F3F5AFF9E94CEBF1F45 -:108A60004FB253F1CFF1A4FE5ABA7F2D280057E739 -:108A7000BAAE9AB7EC03E3962C936D6D68CF35C709 -:108A8000058A4324A01ED803239729B656C0FF1297 -:108A9000EC07E9D324D747B6423FC9764AF55CF9DB -:108AA0007EA087D6F2BA8E103C37EFE0F132BD7E61 -:108AB0007FDC2C1023FFDCCE9A9800703ADC3FFA62 -:108AC000792FCC476D9198BB06CA766EEFB0577D73 -:108AD0002417446FD32FF17B3006720BE75DD7F478 -:108AE0003B2CC76C2CDC02CFBB3DBC7D5472C94E05 -:108AF00058BF76B975064E3F272F726F168CD796E2 -:108B0000934672D0F19A6F37CA2947E6846568F7B1 -:108B10002C88FE308CF148D9CF16862DE86B816603 -:108B20003FECD5E8EC983D519409704FCFABDB9BFF -:108B30005565513FFA23EAAF46B4B6C31ED5FAD9FC -:108B400069B3960BFF9EC5E39D57AF7AE8BDFB6006 -:108B50003E9E526F08C96DF3F96C9F601B5CBF3B72 -:108B60003BF287ACA478ABBB5496280ECABAA6A237 -:108B70003DB7F9F39F76FD0E509EF5B997E46C96DC -:108B8000E88B0B2586F68F26CF436FFF974F5F0C40 -:108B9000E2FAFCC5CD48BFB2D8D397AA18D7D4CB38 -:108BA000F046C072A65EFEEDA5E86F0E94AFB9B4B4 -:108BB00016CB48BB409435FEE866D4CF5B05A611C2 -:108BC000F14DBCBE9DD72FD4BED75CF6FE2FB6A10B -:108BD0003E98E4203F74AB6607E9F0A97E91F0A3CC -:108BE000FA87C6E36B1A9E5DC3C7E36B567838906D -:108BF000A7BE8EF875B32E01E9D8FDB9EB466C7FA0 -:108C0000CF3A165E02B0EF54F6FD7A9B42EDDFB626 -:108C10005A87F3F3D477B2088EE3BFD80670F8749E -:108C20003826B31B53C0F1E150EBF9A71C2EE7BE69 -:108C300015E0CF2CCDDE74387A82B3E12957DE758A -:108C4000830CF2664349578355FCF9333FF70332EF -:108C500053C4DB037E4E7FDDB9E1D30847ABFC9004 -:108C60000BC74F135818EB6F99D2CB84A47E4301E6 -:108C70008E6780DBE987766953998A74E663BE382C -:108C8000033AF35572F8B7045F600AB4F395C1D3A1 -:108C90008BEF7B89FFD1E5E0F400820ECA0E8D3E9A -:108CA00002FEAD97A29D9F25EAF457D48EF4E2B060 -:108CB00069F563459761B9338B9727DD51D41E2B36 -:108CC000043DE380362817F21D64EF98E75718E05B -:108CD000F3DB96ADE6FBB32DF0E9ECA575DA3ACE01 -:108CE000118AC1BAD6D87A1A1AF1DB655EB2D7E01A -:108CF0007D433C69FE976BF8BADCCFEDADAD9FBA12 -:108D00001AE216EB918A4E276AEDCF824E27FA2D92 -:108D1000E803E8B412F19F44A71F336B3ABDD06F4C -:108D200041E740A7D5F8DE8C0F735964EA8E450001 -:108D3000A0F4D9F45F6D436D7579F58EDFC1B3E6AC -:108D400073AFE4873AE2184676A2CDC5E5FB80DC36 -:108D50008F5C86704B7213BD17BD61DAAF792E2B15 -:108D600045BF9327ED40B9358C7EE721DCE67E4B8D -:108D7000FD8CD6A3E6326F246E81F77FFA256E1F35 -:108D80000778BD54FC322E60A3EF29F945A7FFDC1C -:108D9000F05284E34CFC523FC02FAB86C72FFB88B8 -:108DA0005F3CE59C5F3C29F80523D1289F3794F070 -:108DB000F28FFCB9C40FFDFCC3CAE87B3FFFB0B221 -:108DC000CBB0ACF3CF658132AA6F6E9F8EF3B6C085 -:108DD0004B9B5F9F47B815D7553D4F6E15C9DEE8D1 -:108DE0006528A73A595FB713F9B05A08ED85B7B3AC -:108DF000623DF52E05BFF7B0D9607F6CD5E87E17D0 -:108E0000C283FED0242D9E25F5B0AB7C83F9D857C4 -:108E100099288B24E17FA486C76F07C277E0F89D6D -:108E2000AC772CDAA5A9D6E91E6DBC9B82EA3D562B -:108E30007C7F26BDF328EA9D6C7CF27EB23E7735BE -:108E4000A11C30F379CDEA87DFBB6F887E1ED6F098 -:108E5000F6D0D9F3FD4329F8FEF726BEAF14465AE3 -:108E6000F2FDC329F8FECF567CFF15F8FC3FACF8A5 -:108E7000BCD33F3C3CBB035CBFBBB5F5FDB2787EC9 -:108E800047C3EFEBFEB3B6035EB7C213E0B9779802 -:108E9000787EC76A9D00CFEFFA69BD6D31DC17405F -:108EA0007E47FF7DD3E4581FEE875AC0D197DC8FF1 -:108EB0004BE1FD8069FFB100745EF3D9A650C48216 -:108EC0002FA1DD3F92E1D7DBDDE397B5B8B3723D6B -:108ED000DAD53B2FF7F2FD846CF5732B7EF80AEBA5 -:108EE000EF0C58C8E31A1B9743DFF6BF4576DE57F1 -:108EF000E8DF6FD5FF331A7D9D49FF8F49D2FFD838 -:108F00008F59DE75321E4FD9961D290910BE7A2F52 -:108F100045F9B4EBE62C01FDBA423521A0FD9FAF27 -:108F20008D77BB5F21FAD2DBED92128284F59B64D0 -:108F3000212618FA3B6FA8FECC70007CE30324DFE7 -:108F4000D4F3F1798FA6CFCED61EBA30A84E0E70CC -:108F5000393D15C757CF31CA697D1EB67017EB452D -:108F6000FD02EE77DC82AEF2357D09FDD4513F9AE9 -:108F7000BCBF20206BFE29EFEF6CF50DC07739F6F2 -:108F800007FD5E61059F192F6782F3960138AF0ECA -:108F900058E825737FBA7FADAF13E9D3A4B8CE12DA -:108FA0008D5E80AF1A113E579B2DC60203FCABEBC2 -:108FB0006B904C69D8FF4E078FA3EE5C797B2DE652 -:108FC0001B74DE2257204AF297713DA7AC2CA6B83D -:108FD000EA6AAD5F33FCFDED1D5D632796D3B86B88 -:108FE00071DC8BAB5902E54606DA09147F90258CBB -:108FF0002F64393B821897DD2C74342C463D7AA9B6 -:1090000097F42D0BCEB58C4FE94F3DFEA4CF9B05B9 -:109010002BCF50BF99EACB9E8E26B493865DDFD9C5 -:10902000616957FD44B3AB607E3F1E12AFC100C5FE -:10903000B774FC0E1E87AF5F6DB849407CA795C31F -:1090400090C09269E10EDA6CB595C6592FDA4F657A -:10905000402FD4DF0B9671BF81FE36E8707522FD7C -:109060007C55B8F47AA9C7E3F570FF8CE21D5E2E3B -:10907000B7E803944F1CF65BEE1FE8CF8DEB645509 -:1090800002FD73425632305EB851D383E09905AF8A -:10909000F2FDEBEB0DCC23CEE39DA6FA51C6E99E83 -:1090A000055D64DF61183E996E8E6A74B02D27FCF1 -:1090B0007480E4482884740DE567495EBAA0ECA387 -:1090C000F25FA92CF7979FA7FA415E9FC9F2B0F013 -:1090D0000CED5EA176527F3FC7A8ECED1FF7351A65 -:1090E00027D05FEEA5EF85BCFE70C7495A573EFFFB -:1090F0001E91E6FFB1A466E0FEE837A38D14279A1F -:109100001F5D4ECF4DEBE45A8CC73DB3AEAFB515E6 -:109110009EDF9CDF28A3DD3F7FE94F68FF5EEFFF06 -:109120004AF42B90DF156906D94525B6F01EEF00ED -:10913000BF0DC0D1AAE9FBDE7AA42397CAFADA2BC5 -:10914000A0FD948F5A5B0D794E1D943FE356A4CF3A -:1091500092E3EABA1CFCBB433D1D383B3A36CD973F -:10916000B18330FEC7DED2788CE8BA4EB6E2177D06 -:10917000DEA9FAD7E79D4ACEE8F8D3DF6F2E9D200F -:10918000F3FC9FB8012FEED1F594EF73A5A0C1E9D0 -:109190007369FCC6EBCD82711E2A27FA50907E6758 -:1091A000697E9C592FE8E3FEDD1119938DEDE0CD2A -:1091B0002D132CF03B4CBC1D5DB72C5C6F4779DC4C -:1091C000E5A6FD7B26539C5FAFD79062FE75D95C08 -:1091D0008F30A74AF3D9726B461CED8E2D8BFE2083 -:1091E0006370C533EEE32ACCD7F4087D9F2C46F993 -:1091F00072AB8FF2311A167D52D59CD4FFC2037F19 -:109200007261BCB761DCFA6C8CBB2C64D2C7C9F943 -:109210000EE6711BA2AB896E63CD428395BF752CA0 -:1092200087F3F5424C9111A9BFE3C9FBC88B9409A0 -:109230000E8C4F2C8A19F77340433A903E1A379997 -:10924000DF27EDE788D83FA379C770330FF55E9B22 -:109250008DE86D27E00DFDC0625097F83C9693A510 -:10926000F1410FE1F35F0DCFB11C6E0F395D2CE6BC -:10927000C91AA09BDC480743FDE4AB14687F33E0C8 -:10928000D3F323BA484FDDE1D5CBA0B700FFE1729D -:10929000CDCE29E5DF6D5846FFC7D373D0067CDC01 -:1092A0009EFDF865C1B1D05F79246893A9FCA44400 -:1092B000F6212F33F6F89307C99E95CF1542C0FFCC -:1092C00052F793878BC89FD7ECB1EE27C91EEB2FBF -:1092D000B30483F974A6F597555710CA23FBCB3115 -:1092E0002CEFD2ECF8F6ECEE275BC93E09B7652708 -:1092F000E9EF5AC6E3CB5FB77EEC0C2EE9C07CA247 -:1093000058A98DFCBD34133F3E98EDA07A637223BB -:109310007767C373D62D7D12C61B1C792F04500EA0 -:109320008C283DA18E04FA1F51CDD36458191FB764 -:10933000B3742DD90D9DDABAC0FFD6A3DE1B589F9A -:109340001ED3FAF0F50857F6D0FAF8CA7B68BD6C60 -:1093500058A6B81FDF8FBFA292DB1BB293EF2BFC86 -:10936000269BC75DFF942D6A4FEE976694DE4EF103 -:109370001DF70C1BD5CFD09E6639FEA76CC9A05730 -:109380000EE445FE909D64B7C2FB705925CAB740F4 -:1093900016EEB3D6964A37223DFF5CF34F619DEE41 -:1093A000A0752A09A445F8BA3D62B96E65C35BB7DA -:1093B00017D745485EA55AB76FCE17C35671B76722 -:1093C000353C7CD0F0B7BB902D57B9FA1CB80FB321 -:1093D000B974BB21AFDAB56F760273A1F5BCEAF5BB -:1093E0009EF46A94DBE6715FFCE23F0288DF999F9E -:1093F0003A2DE5E37F6BF2F185750DD40E16589189 -:1094000072480E309EF7D29F27269C76D2F45EC417 -:109410003CB4EF12EB333637FC06ED572F0E8A0CB7 -:10942000F7C71732635E198BEA79C13C0FF645091D -:109430005C5340E18B31210498628BA4D9BA5C3132 -:10944000E487CD9B3BFB10EEC3376AFBF0205F0C3B -:10945000DF979AF2C6AE6E5814AED7BE9FA4BFE394 -:1094600034AFB90AB71BE77ABDA45FE785E787EB9E -:1094700093F6E35EFAA76899875E97A3E3251CAE8F -:109480001F3D182F8BC3824356CE8C1F333E6A2557 -:109490008EAF451ABECCF831E3A171EE6C5A7FF362 -:1094A000FC5F7485093F2F027E305FD88C0FC62287 -:1094B0005720DDBE345F64681F4F1767DA314FA055 -:1094C00071B6C030BF68290BA5F3FC6075D625497D -:1094D000F09AF168C657E3A32C94807E1BEFF4D179 -:1094E000FA3DA7E1474C7C48F30AC3BCDAF9BC8ECD -:1094F000F3FC5599E675955AF17800BE475A41DA62 -:109500002A567A84CF6731CCA75D1EAC4F3E61D519 -:109510004D48274B4D790B66F8CCF0CF4439387560 -:10952000F03EFEE41C5F80CE2F8C67216D1F3F83D1 -:109530008E3584B287CC5B18E0734E5F0BA3B3FB10 -:10954000C7C37E0516E92FCB80DF994FF8B7CE83CE -:109550007FAF0D8A0AE609CE9E3FAA0DE71F66E19E -:109560008C4409DAFB7D76942357313063A1DDC545 -:109570003049D4B7E17A3795F57E4F747C64273D46 -:109580001E614D7B69FF5DC9983B2EB57C591B74EC -:10959000D078663B6566C5E80C9417667CE878FA77 -:1095A000568E96DF309E8D3F1BBCF4A0EC457F1697 -:1095B000E368B08E7DCB19DB5D31B07FCC0A556E90 -:1095C0004FE630DAFF5F9D93A9D91D4D147758A05F -:1095D000E9856376D6F0A097EF234F48928F0BF37F -:1095E0006A57E724C5FBF47D642FEB25FC7DD7E5A6 -:1095F0004D88E389EEDEEFA70F925F7ABE6684F2B4 -:1096000035C58C950AC5C53CE9E35906D8C58CCF4C -:109610001BFC989B7230AEE7298EA31130F3895F53 -:109620006C9AA70CACDBE6257B3B105CF7D2DFC75E -:10963000A87385E77378B475ABD5D6ADDF8E2E836E -:10964000F749F83DD1A1D961655A1C1FFF40F94483 -:10965000A91A1FCA7FD5D7D15D06FE87218FB08397 -:10966000F0A7AF2738117DC89791A04439C336E6DB -:1096700022FF387213CFC758C8945D981FB4306A60 -:109680003F91DC4F244F2238229BDD5ADC2444FDDD -:109690002CCEE3FDB032EEE7F5D37D0CDA27E53FC3 -:1096A000DA5C604A62FB4C1642FF09FACB417DCF7F -:1096B00036258D3372F0B8A9FA33B713B5FD5BD1F7 -:1096C000190A8592E4F46F72B89E3C11ACECB28D2D -:1096D0004C8DBFC52EBF2A25E5C51ECF733558C595 -:1096E000C5F4FE74FDDD6F27C6963F956C277A376B -:1096F000343E75F8A2243B31D6F814C515F5F2595D -:10970000DA89CFDFD5F8542BCCEF1FAF7E83F2C7B9 -:109710004F3481C0043CFAA3D3D89B7E940F32E926 -:10972000AFE206F0A830F95B52C622BDBBA305AA82 -:1097300094942F7B2C4721B8FDA52AED9741D32E79 -:1097400074C5FD524840BCDDAEC5CD8070C7CEF6B5 -:1097500025B7E37E883E9ED325131C0E7D3C166AFA -:10976000A6FCFA998CF4889E07A2F3B5DECFBB392C -:10977000C678DD30F8F9DD9CAAC1FC2C8A4DAFDF3C -:109780008A72E22991FCB0EF046FA2F7E678C089F3 -:109790001C6E1F8E102327502EF4343CFF9D1F405B -:1097A000BB35FB9C2154C3ABBEFFDE8FAB14C4138F -:1097B0005FFFF94B1BEFACC2798D9664DADF28E2CC -:1097C000711847B340FEABBBC411DE07CFB703B57A -:1097D000237293E07A3B504FE59133385C27A0CF5A -:1097E0007605DB6D6F207FD1C7F7BD4F280A9DEF4F -:1097F000133D8CEC09D1C99F99B9DC2ECDCCE5780D -:10980000766B4FD729811609E9BA09F72DA418E517 -:1098100041BB4E49F4DE210896F69ADE9FEB140810 -:1098200067C497C7DCDE41EF713ED85EF433837DB9 -:10983000938FEDABF0C9E9DD75CAC3E1F09BFB493D -:10984000E7EF35FE33C37163CEB462C4CBDB017581 -:10985000442E8F6F7339EC7DF2A8307E38F298E792 -:10986000EB5F9127B928AE77AB101F0DF2A9BDECC5 -:10987000441BC9AD1257139E934AB29F047EEE86D5 -:109880009FAB18B04FFB2E995389D16BA6DC1B1AE6 -:109890006C6FBD5EF9C9BC3958D0CE4F7C5797BDAF -:1098A0003128833DF79A565CA48CDC80A1FE2BAB5B -:1098B000B97DD688F65988E496C1EE32DB675ED072 -:1098C000F773802E96062519E9C26CA7B557CE23EB -:1098D000BBA61DEC1ACCD71E6CA77179735BD4C6DE -:1098E00054A8F74CB5487EC63365BD4F5C8CFA6210 -:1098F0008A5D217D51D677DB1CFA3E91C6F16AFE66 -:109900001DD4E7E71D429EF86878F76CF59BDEC62C -:10991000A4F57E66CA9B63D12FD89522BF428FD310 -:109920001CBC99E77FBD7E87107722DE6E116DD853 -:10993000EFC20A1FE5AD5E227A699CC6AD62DC49C2 -:109940003854D32FC919B01B99589DF33CE2619B41 -:109950009DE1F9C1A21B7B0D76EEC2A8D19E8B348E -:1099600081FDA39CBD1D68B6FFCC76CCDA5CCDAE84 -:109970009BC026A0FDF2CCBAFDECCDD10376CCACD9 -:1099800014FBDFBA1D7381ADEEE65C1E17A4FD83E8 -:109990005992F5FEFE559A7FCA42DC1FBC447C9F5B -:1099A000D6EB444852107FDE9B9EA4731DDE7F8A57 -:1099B00061ABF1B6E7727F7C978391BCDD35C14323 -:1099C00079D7DD379F9BDB4BEBA5DC5D8DEBFFA4EF -:1099D0009DE4602AFDE68E8AAC1426E68B0AF4D458 -:1099E000D77344D4CD92F5C38814790ABB73B9DC1C -:1099F000CEBE85D9D0CFCE8C31D5CA2FD5EB813F05 -:109A00003A1D63D4503F9109F0AD2EB551DC5FF79C -:109A10004BDD767EDED7FEC8F531F44F47007C087B -:109A20008702F0A11C2E897AA83C32EAA7E7A86831 -:109A3000263D4BA305F47D7474143DC7444BE8FDEB -:109A400039D1F3A85C169D48CFB1D10A7A9E1BBDCF -:109A5000909EE781DEC27AE5D15A7A8E8B5E4EEF18 -:109A6000C747E7D0F3FCE86C7A86A2DFA6EF15D1F2 -:109A7000467A4E882EA2F713A32BA85C19BD81CA83 -:109A800055D1EBE93929FA437A4E8EB6D0734AB4F0 -:109A900099EA4D8D6EA1F205D19FD0F3C2E8767A96 -:109AA000564777D2779D9F3D9A3DFD74708F4CF954 -:109AB000F62C518EF231151FBEA1E9856FE4AA4F35 -:109AC000A03CD5EB1DD1CE1D98EBBD9A3B74DECDED -:109AD000D15C4E9F1F848EDF85C769F575DB1C1C2A -:109AE0003A8EC0CA0367D8B7E2F33B9CCBDBEF9258 -:109AF0003AC8DED8D5C4281FCC57D923503E43508E -:109B00009A61454799417EBE6B4C6EE45D9CA737D8 -:109B1000EFAD83B81F7565AC27300DE92514489B60 -:109B200006FD8D68B5917BAD3059C0B252CFE404CB -:109B30001B88E7807D65D06BEEA04D8BFFF4CC9C3D -:109B400088F09C5B3A81EC576D3FF9C8CD2319FA38 -:109B50001DBB1C09414279B996B1643B7CD786C5CF -:109B6000F7259FD370071D9C8F36B1C7304E56D254 -:109B7000A1D4E179C2513BD4C730C573743C52972C -:109B800006E5737E157B0C9F63BBE2751E789EB75E -:109B90003FF118BA4FE312BD755E289F7F981DC034 -:109BA000F053458F32CD07E58947D503B84D52D5DF -:109BB0001B9996AE203CF196748067D76B60684124 -:109BC00079CAFB1D22B82503EB0F76DB8349EBE254 -:109BD0002EED5145F867E18D7205CAD95D52AF3B54 -:109BE000B37CF0FA74E2BC719EA057F66AFBE8728F -:109BF000D27A5405053D1E9817AC1A880776B63EF2 -:109C000047F1C0CE34B916435D7D973079B7827481 -:109C1000CCFD84B4B691A49F74BA03FC1AEC49B786 -:109C2000D6EFAE7E7BD31ABF55FFCBF07B50A3E7B8 -:109C300054F87D1AE79177663E9E1EE47615F07122 -:109C40005D303B75BD15412E4FCD78DE25C9E7123D -:109C5000BEBCCC16AB1858B76B34FA3E135E23FF6C -:109C6000CBF07A517068BCB24A3F8F336BF969A967 -:109C7000E4CD9114E744BEA7E13149CEF178A90CB7 -:109C8000726E546A39578B70650F21BF52E43BAC3A -:109C9000D7E8BB3B3B1C0B669F39AE7F9B4DAEC5E7 -:109CA0007C97D878467E02D897AD98BF3322A64CD1 -:109CB000A06D2C14CA88C709E7919F5E02F686340E -:109CC0008161AA63029F575466DA1697635E83C662 -:109CD0006FF2A26032BFE9FA7E801F75BAC8EAA4AB -:109CE000731640AF984FD8ADE169A01F1E8FD87092 -:109CF000537E677B921CEC0C155059AF9F8A7E5F98 -:109D0000D7E9B7F539DAEFBFA2DA3ADFE4CF41514C -:109D1000CB3BEA5391CE63354CA6F3CEADC7493E5B -:109D200065827C124A787808C72F8CA6DD8771DAA5 -:109D30008783399A3F2EA77DD3F7FF8F9EB781AFD8 -:109D40004E7E66B5DC8DE72A46801E52504E560385 -:109D5000EC95A8E71CB4EE0AE3EBA854B3784220D4 -:109D6000BC25D06F8ED9F8F98C238E2E95F48E23D6 -:109D700053C6FC93EEECC813C121F842F62815B87F -:109D8000A8AF0457CDF4E6615E8E9C86E597A07C73 -:109D9000DB14CC13EA655AF936EFD42F1F7F7865B0 -:109DA000C78A23B84F7561503D8AF0005DBF827449 -:109DB000AD9E234B141F1EE6FE93CE9F03FC24573B -:109DC000E8FCB4A89CE4E15BC1A4FDAC54F6CD2E44 -:109DD0004D7E7E121CDABED1E9FEACED1B0DDE37E6 -:109DE00035B9948AFF673EF1FC8E3D6C20FEE7CBCF -:109DF0007FB14752D0DE9EC6DE9C8871AF1E4EF703 -:109E00008CC7F9548CFF011DB82B5DA6B8AD30434B -:109E10008BBB0C19AFD5E3C97ABC4F8FEBA56B7424 -:109E2000851706A01E4F9F224B8BA9BF5E7615E6B5 -:109E300037E5D90C7C8D720BF7E75D6D59D2C8F20E -:109E4000817E196B2239D5D9C0E4F64CBEFF9A0148 -:109E5000F2A5633D233F2FF68C48FD9F546DEF61C3 -:109E6000CEF7C94A4020CA059529728E760E8188A0 -:109E70005C267A7532D685FE36FB51C8E5C038F7C8 -:109E800067025301EE239F89F49430C20D8DAE0812 -:109E90005584B0716D467508F703C537A10C70D6AF -:109EA00067546760F9C89189216611BFBB3AB2C88F -:109EB000105F32E3A9BFDE77DA285F61E719F63F6A -:109EC0002FCA73E876E7E43CDCFF5CD2D7EA5006A1 -:109ED000F63FF57DBDBCD2872EC57B76F25672FB70 -:109EE000339FC59B93EDA6A4FDC5DABC2ADC4FEFDA -:109EF000DF5FEC1993BCBFB826FF163CBA7F4FFF5B -:109F0000FE62A412EBABFEAE0AA44F3D1FF688839F -:109F1000EF03B0894F05140BFA5850F17836D1A3EE -:109F2000E64F0CFAAEC5CDCC7EF09C3C631CFF64C2 -:109F3000684E46023FA688E3EBF13CDD0FC6789DF4 -:109F40006CC97746FCEBE32F10B81FCBEC02C93B82 -:109F50005D6F823C598AF88666148F569D02E56BC8 -:109F60009D0C352AE417A5902FFDFB062C31DA6AEB -:109F70009F75819677627EFFA33CAE9716D8799C39 -:109F800052B87E6904C75D90E7129C4976D28A3C3C -:109F9000AEC7F5FD1747FEA92AC4B3C31151ACE6FD -:109FA0006DDE475981B66015C753C842EFA5C2D3CD -:109FB000517B07EDCB1D5D2AD279DD9391C974EFFA -:109FC000432AB9F00AD2CF68C6E6E5733D34B08EB5 -:109FD000D678D3F364CCFB55FDDF17B9E9FC8D3996 -:109FE0005FE6210D6F4F6978F957E7CB3CA5E1EFAC -:109FF000692D3EA3C7B3AE4821EF2FB0D53D90C722 -:10A00000E38C43C665CED3F37D34FCB00363E95ED5 -:10A010008E2D3DF6B85B40786CB47FD9F09F620816 -:10A02000ED2FBD9DD7242FF4FC1DBDEC3925B07854 -:10A03000D23E8247EAA238A9E79444EFCDFC775B91 -:10A040005EFFFE22F19FBE2EA9D6595F17F3FBFBE0 -:10A05000B47539BAE84F413CEFB2C5CD2CF38958FD -:10A06000BE31FE6ECE0348B5CFFD9AD6FFC9C8D427 -:10A070005C94CB0D8ED8E8E1F0BD8E9F17BFF8A39E -:10A080000BF96CCB29E70CABF57849D34FA04F37D0 -:10A0900025EF83FAE63FDF8ABD7A24E33EA8AE4F80 -:10A0A000F57D504FA5791FCD7A1F740BB3968FA9FC -:10A0B000F64107ED7F6AFAF6B3BC14FB9FE5439FB8 -:10A0C000673F90C78695F771B5839F9735BFEFD1EE -:10A0D000F8EE646473D15DC057372C7252965262A9 -:10A0E0009193F8B071919BE2B28D153CDEDB78A7BD -:10A0F000A0EDD719E3B04F83BC5809E33FABE99D0E -:10A1000037597812DAA3B32A05C33E79B8DA6D2835 -:10A11000CF5FFA93A7F1DE8467A6D8158A3F435F25 -:10A1200031B40BAA799E2253FA6EC338B71E7FD67C -:10A13000D7FF99EA37E91EB418D8F9A343187F1658 -:10A1400089BF9E796122BF974E18D80F57C04ED84D -:10A1500072C128CAF778B9FC5B14E7DD8271719887 -:10A16000E9962FFE3883E80894720CF9757C561C2A -:10A17000E563E3B80939489707C67FE6C3B8E8EB5B -:10A18000B79CCCC675EA5DD7447907E67537C799A1 -:10A19000CDF1E5B38D2757E71BE9E169533C5997AA -:10A1A0005766F991144FAECF1F463C59975BBA9C46 -:10A1B000D0E5D7CBE5EDAFEE867FBE1C71124CAF7C -:10A1C00068F3EEE74B8D2E5FD6F9F00B27D9230706 -:10A1D000C63F4CF9567ABDD6BC4CA2AF6F95C7EDC1 -:10A1E000B43F8B790A6503EB323FB2BCBF8CDD7E96 -:10A1F0007BD9F506FAE8975367946343CB29573E1A -:10A20000B7C352E56BF6A4D43FA3C94EF5FCD51EE7 -:10A2100077957C793DD4B0E80F0AB683E70E6A3FA4 -:10A22000DE11895BE827333C9E53228B4F4C7EAF77 -:10A23000F0F7FD7AC041DF6375CAFAF5016E4FB7DA -:10A24000107FC69CB8EE52B6DA8A749097ADB6E528 -:10A2500043BBDF06D40DF949F2B4C5CEF723451B45 -:10A260008B3C688197C7F235BCB07010FB6BAB3587 -:10A270009EE7D29FBFC997B4F3189382685FB7BCBB -:10A28000511144FE39E89B44F676AA75DBA6F31318 -:10A29000CAAFD103FEC4566DBD814555DCC76DB351 -:10A2A0008783C9F1C6ADF99CAED2A73ED48376733D -:10A2B0008B6CA33CC11699E75FB77AA5197BB4767E -:10A2C00001433B493F4745F765485E637EF5636858 -:10A2D000EF54A59EE763F9DC3FB4B3C41DD5C2803B -:10A2E0005EB11FAF75D1FD0F4C95797E53C8904F6D -:10A2F0006DD7F44B9D295F4394BF9CDF569C1DE9AD -:10A30000C6F534FB6D8702EA63F83E2AC59C481FF8 -:10A31000519735DF1FD6D6B5459BAFF95E55D17441 -:10A32000EF8368BAF72156D7F4CB5EA4B7F54EB9E0 -:10A330002540F73CD0BD0F51BC72099EFF70F37CE5 -:10A3400016F0FF26F3F306A15E94AF2CE8A2785432 -:10A3500047A1AA164259F4D976AF87FE5AD43A15C6 -:10A360008FAE74786D9DB8CF979317790DE731CD87 -:10A370002791DEE9B82C8DF4107C777339C26461C3 -:10A3800012F98374690AFAE078BECC1E74503CABB3 -:10A3900025C27A9DA3F8F97FA4F75A9638525D82B8 -:10A3A000F6B6AB12F17424343123622127F4A77975 -:10A3B000FFFFD5EFBD544CF9AA62E4A37CDAF76F36 -:10A3C000DC8AFBFA6BF68B21DC47F8CEF75F1EC305 -:10A3D000CF1B19F799EFF6D4F4A23E8B7A1D54AF38 -:10A3E000DB37A903F1D422F83AD0DF6D79E3FA9F85 -:10A3F000231E5B9A799CDB8CE783BEEFD3FD1A2783 -:10A400006139B1BEF97E0DD6713D5F27A78BF62D60 -:10A4100061BEF6822ABE8E141F3CE6A37BA04E1EB0 -:10A4200039E045F8BEC2BC65EC37F5BC0B65D257C8 -:10A430001AFD3029BC09E7F503D1D7D11EC07BD264 -:10A4400060BD11EE47ECE4EFDFED49A7758D027CAE -:10A45000B8AEA2AF5E4597ECC3FD22AD73546AA2BD -:10A4600079B198C4F6E2FB473EF9F18548076A16D0 -:10A47000ED6A89454D84970F012FEB2DF002F433DF -:10A48000A600FDE5476EA07E3A1C2E192D9B16DF17 -:10A49000243AAF3CDCFB452A0A847E7F4BBB5FA499 -:10A4A00002FB1D545FF3B3D0DFC6EFB532FB38CEED -:10A4B00006F09E2A7F452D30DACFC3C85F510B2CA2 -:10A4C000FCBBAFB0AE97170C49CFC6756D71FDDF01 -:10A4D000E96867A9627AC85D0C655C27C43FAE1362 -:10A4E000AE9716B72115A4201DC88902A4831BD2DC -:10A4F00043489F67921B12E3EB6E97809EC1AE7339 -:10A50000CA91A37476518BF7E8F2C4CC672D2EA3C1 -:10A51000BC6AD1EFE53B363C7905F4B202F16096B6 -:10A520005BC3A593EF0FA693EF0F45276979E12849 -:10A530007E473C154CA078C5CD583E7244DCE718E8 -:10A5400089E3F1B8595F1E937727E565E9F06CC69A -:10A55000CD6ED2CB3C6F4A6A600CF3E0FC652141C2 -:10A560002E1F161D6DFE9AE9E88EA1E48397F5D0A3 -:10A57000798D557A7ECEBEA1F373BEAAFE81F5BC5D -:10A580000FE169F17D9FE87383DD25F37BD4CE6E07 -:10A590005D1F2C10CCF70B3D988CB7C1EB1AD987F7 -:10A5A000EBA8164CA27B8CD8944564377567ABC773 -:10A5B000305F8C4921835C1CC43F9ADCFEC1390AA0 -:10A5C000E5ABFEA5599373CD4E19EDF1C70337FCEA -:10A5D0000EEBDFCE9430C6436B6C6B094F1FC2FC91 -:10A5E000768748AE96E1BE4F94A585343DFA1F08A4 -:10A5F000CF0CA559C882F781058A8DAE2155B63397 -:10A600005BF9F0F1F0DC603C3C37141E400EFEA715 -:10A6100046CF37223DEBE7ED53C9C137B4FECF42F9 -:10A620000EBE91CC5F5F03FDBE3FB47EFBDAE5CD8D -:10A63000A7389E59DE78357EFE6E8885305E3EDC1A -:10A640007C36B03715E4AFDA7417D14FCB8302E50F -:10A650004B811D1EA1B2CF45C2E6A0CFC1F37FF74B -:10A66000F1EF621DC7B3194F42213F9FB5AAEBFA24 -:10A67000B064C8938AF1F39AEA09B954C4FCFE6A3B -:10A68000A267BF66CFE879FDE99AFCEFD7F3336D97 -:10A69000349EBF88CB773FD83B681731A997A11F5D -:10A6A000FF83029EBF0FFC40F40DA384911F32A6CE -:10A6B00048A63C2DCE2FD912B77732034C205D83AC -:10A6C0007962F0FE13B027F07E824CD5D8EE076990 -:10A6D000DF15506FF52EF23609740E3EDCFD33287F -:10A6E0006761BE17F08D7F86B17E364B2A5BF8E737 -:10A6F000B13A5686798B15855ABCCDC182A41F35D7 -:10A700003F5DBF2F503C73DED7D4C261F8E9171705 -:10A71000EA79C2467DDCE56696F1B523855C1FD5F6 -:10A72000F7D6D6A15DBDD6C7C8AE5A8BBA13CB99A2 -:10A730000EBAD726D45DE9B2BAAF2253B519EEE707 -:10A74000F5CF4833DC7B9B1DCE3294731BF20DF5A5 -:10A75000F322230DDF0B969D6BF85ED434C1501E9F -:10A7600011BDC050BF04109C5C1EB5E93243FDD141 -:10A770001D5719CAE7ECF896A1FED8F862C3F7F3A3 -:10A780007E759DE1FBB8AEB586F2F9FB6F36D46FEE -:10A7900061D6F777766878057E2739D6ECAD6BA061 -:10A7A000DFD1901D8638FF755ABDEECC4965180F74 -:10A7B00069395E5146FE70FA0543FAC366B9984A94 -:10A7C0001E9BDF6F2EE4F2F383C7DE9EB412E91CFA -:10A7D000853CC8A50FBCAF6CC0396D2EE77909FA6E -:10A7E000EF6298EFE5EFDFA794549ACF822C07B37E -:10A7F0003A1F705DA162B9BFD02A845CB857940A31 -:10A800006F478689B7EDDA3CBE2ADE8E09C638105E -:10A81000EA93072DE07A42E32BD057BF453E047DF3 -:10A820005599461E06BFC7E16CF5890E07E8937F70 -:10A830002FCC1E9C1FFE41C3F3D7DCAD60FD6B78AF -:10A840007D5BA80CD725D5BED21385E67DA5AA656C -:10A8500028E716F8D284E4FB9AF76BF5F478764B88 -:10A86000FA67B4AFD4E208950D675F697F21E3F71B -:10A87000E0E2FA6627ADAB5D0DCA96FE9DD98E610A -:10A880004FE03D1831AF4479C366FF2EAAC96DDD94 -:10A890009F930ED692BFDFE21D49791F2DEA5AD24F -:10A8A000971D29FC5CD097BDB83ED37C371AFCB904 -:10A8B0008178804AE3415BB29B5A92FC7F6CA7DEB1 -:10A8C000CDEFD5FE1AFCE08F0ACFC2FF5718F783F1 -:10A8D0004F328EA793AA8DEC84936027A0FC6D93D2 -:10A8E00018ED7BC72A05C5CA2FEE58AFD987EB39BB -:10A8F000DECCFBDD663BE38AD0F584B736A0275774 -:10A9000025CE9FDBBF6D767EFFA6EC0F0751DFF6ED -:10A91000653BD86E80F660368FCFE978F9B2F228C1 -:10A92000A76890FF93533484FF738958DE85F7B688 -:10A930009E38C5E3220A1E450CE03DE47CFDD63E70 -:10A940003127B606F55489D484F9EB225332102FFF -:10A950006B0E8B2C2EA01C33E6E7DB59D35D188FD2 -:10A960006301FE3EC65CCD6827654C31EAB14CD52B -:10A97000A8C7FC33B24C7ACDA8C7721B8C7A2C2F97 -:10A9800062D46305CB2698F49A518F8D88D699F4BA -:10A990009A518F8DDA749549AF19F5D8393B8C7A75 -:10A9A0006C6CDCA8C7CEFBD55A935E33EAB1F3F7E3 -:10A9B000AF377CAF48B41BBE4F3C7CBBA15CD573AA -:10A9C000AFA1FEE4A3BB0DDFA7F6FEC6F01D10FD90 -:10A9D0001C9E67C07B6871112F7CF721E377A63A34 -:10A9E000301F7F059ECF8475BCA8EF61437FAC8389 -:10A9F0009F5B88C17FB85EEFB008DD030072EC504A -:10AA000001B45B1D17420986FAE9C1B771DF6679A7 -:10AA100050243F6E0D065B911EEEF7C5911EAEDD14 -:10AA2000613CFFB03C6E2CC7807E148C2B00FD2057 -:10AA30007DAD30FD6E04D883446F2B14A909ED4A17 -:10AA4000337DBDA3D3574C7D0ECF73E8F3D5E767B5 -:10AA5000D7CF9F6AF4A76AF4C7C44708EE1505224A -:10AA6000FDFE8E3E5F15FEE3DFDF77E03C3ED92F33 -:10AA7000303FC0710D8B1D2AB098CFEAFDDB1DC899 -:10AA80009FE67999E761B653DB8A8CFB489788DEAD -:10AA900010F1DD0B22E9239A02F2D903FCBCDEDAC5 -:10AAA00027443A17837C88FE82186B20BCAC01BC1B -:10AAB000E0BDE1BADD7A426B77E2A7229D6F3E13DB -:10AAC0003F2A1A3E9C41233FBA9534133D19F1EBBE -:10AAD0002933F2E78AD72E75A0FC3A04F816A6307F -:10AAE000E60B19F97585B892F6F9743C2BF01F8EB8 -:10AAF0002B81A98BF35E0DF34E2883F1BBEC91ED16 -:10AB00001B0A2CE8E64CF87DB0C8B8DFAEEFCFD515 -:10AB100002761C1679A53AFEBAB3D53FA27C4CE565 -:10AB20000F1F283A6B7FF840D1D7EB0F3F5334A467 -:10AB30003FDC370BFD29274B0FB55BC4FD242627CF -:10AB4000305E6B6FE271BF81F8DDD71EE7790BE1F4 -:10AB50009464AE27DD921EE7091D8DA07D92716E73 -:10AB600008F3A2861BE7F870B01EFB70283D06F6BE -:10AB7000C5313C4FA866E4D7DB9099A45019DDEFAE -:10AB80008C20F03CA4FF46F806E5EB966669F9C711 -:10AB9000CA90F9C75768FBBB1706D57F221CD0DFC8 -:10ABA00069ECAFFF3EB6CA6CEA27FD0CFDC4EAB8FB -:10ABB000BD16B3F93A5AB8BD46FB4C5F431CC35FA0 -:10ABC0008C712D2FC77F8B83C76DCF36CE565C3CE3 -:10ABD00028BE545C3C447CE91FAFE6F273AB21B065 -:10ABE0000E2A52D3B77E0E532F6FCE34FACB1B26CC -:10ABF00070B8CE2DE6EB1ED1CEE3D668653DEF12E0 -:10AC0000F316DD13A03C939F53D2CFB5EAFDD414C5 -:10AC1000FBA8FEA7C1BA1AC4C786127EFFCE864C17 -:10AC2000E33D3C278A6A6B705E53B4FE6B8A193F22 -:10AC30003731523BB7698A177CAED5FFBCA88E9ED0 -:10AC4000788E16FD1287285AE2735AB14DBBEF86F3 -:10AC5000D173BA7E7EEE4E7EBECE7CEF02F0C98B03 -:10AC6000F8FB506FDE66277F0FF4119D9F5B5AC083 -:10AC7000CF219AEF538894C98750BC7EC2CA2DEF6A -:10AC8000E51994E770EC26CABF7B662A9385BC332E -:10AC9000E73D7CBBB85F5F85BEE439BAC6E261E4DC -:10ACA0006B2DD1CED1F5A6713DD697E78AEFB6F0E0 -:10ACB000776FD5E8F236CDAFC5FD69DC27C7FBBDA0 -:10ACC000ADF6CB6F2DE6FBC3C33D577DBB231241D1 -:10ACD000BE359FAB4E759EBAD7D1DB968BF08E6595 -:10ACE00021B4DF7317C8DDB9502FAD5EA1F38F1B00 -:10ACF0004A58FA14FC5E610BE1B98ECCB9F2063BFE -:10AD000094334B599600E5DED81C1AFFB606268B05 -:10AD100000D77DC5FC3E8485B77C44E36557C3D42A -:10AD2000143A773E1DFDB35803A37B0BCDF3BC5BF8 -:10AD3000A35F571BBF2727A3D43A0FFFEE62DDBFE7 -:10AD40000EDF85F45B5BCAF6F1F3B3FC9C025E4B4D -:10AD50004FF99BA134DA17BC12D68DEF9FF7D0FACA -:10AD6000DD149CF6536CA7F39B43CB53309F27BF56 -:10AD7000AFF8ECCE93A72DB08637A1ADF735D9E16A -:10AD8000FB918ED2CA3AF8EF977E71FAB43849FB3C -:10AD9000694705DB4722A8FFDCA0FF047C2A329D1F -:10ADA000A3652E81CEC3BA9426A22BF794901F7F61 -:10ADB000178D2DB131BCC7659AD65E6D6002FE9EBF -:10ADC00004E502929C36FDBE841A6A6D86F697E011 -:10ADD000BE5908F3BE43CBB0BF7A6F9A8CF14D7762 -:10ADE00069532DAED7E30B791FB7A7382FA19FB3B7 -:10ADF0001FB87F6ACDB3867B051CCB9F35DC2BC08B -:10AE0000963FFB55EE1578AD78F9B3FF13F70AE8D6 -:10AE1000F20DD4901DEDFAA322BF47EFC347AFB6A2 -:10AE2000E33A6CA8655D88F7D8678067D7009EED28 -:10AE300075E1C777A25DB2363DC47F4F24F61D840D -:10AE4000F3350F93B1BD9E6F28B032D2D7731B0478 -:10AE5000B21F98D4B71ACBF31FF1C8E83F7CF8E8CB -:10AE60004B4531A0CF576F3DE9C3FCD4D7A53E1F5A -:10AE7000C2F5EE2DCFFBF0FEAE576F11290F85CE38 -:10AE80007D27E5890923387D2D1A113E85F4B5709B -:10AE9000DD3F2725DB672C9A4DFA7E791C204EB6C4 -:10AEA0007B7FE531FCAEE8AA2EBFA1ACEBF9554E95 -:10AEB000EB73F35347703E5C7E7FA7A340C1F12341 -:10AEC0006923A0FEBBDA39A077F7F9C88ED7E1591C -:10AED0007C7F8503EDE1D71F71B204C5057BECCC07 -:10AEE000CBF507E65D44F8D083E03CF4970207F227 -:10AEF000D95281F53989B9D921C4F7DF34FFCF3C64 -:10AF00008FA5AFCA0E5CDFA5B5AC0FCF9D2DBE518E -:10AF1000D8F003A8BF38E225BFDF3C4FB3BEB91657 -:10AF2000EFB311ACEE816B3AF467E86709F483F68E -:10AF3000E7D20EE3F713876F38B413C6DDB7DF41EE -:10AF4000F6E2B56788F78F1FA1E9A5496CF2E951D0 -:10AF5000A4FF32C629A9ED0E5D1FBDBB8E5192CA5A -:10AF60007FE1EFFBC2F3FD75323D4F152BB41E2B75 -:10AF7000F6771FA2DF16967A26A1BC9BF944A3E7B9 -:10AF80005B6C20AF685267CB819D5455CF574D50B5 -:10AF90007C6F8A76FFCBB5DAF98FAAA3E67CD5EE73 -:10AFA000C7FF8C761BCCFF6CEEED5930CC7B7B4E13 -:10AFB0001C9EE6413A993D42F37F26035EC4AF8E64 -:10AFC0009754ED56A5F8DD169D9F4E697A66C99E89 -:10AFD000D91BF261FC9647DF29C6F8718C71FAAE75 -:10AFE000FA29FFFD9F2A6F0ED19B0BE9330F9B9827 -:10AFF000EE7988B11759127D5FFB8887E82408F63F -:10B0000090730ABEE1F45A85F776227DBFC0DBBBA0 -:10B0100034FF36F2C8ADBCFE9F1DB233487C19B474 -:10B02000D13311B44DB1B867CB7CBF5887B1FC8127 -:10B03000BDB718E5CAB5263FF403C13A3FAD71C4A8 -:10B0400048C2C712459D8E79004B5978038FDFF2B5 -:10B050007B7BDE953A0EFD10F97D8FC06280A7558F -:10B060007F7CE0DF518E5DF7BB3BD3518EBD2775F2 -:10B07000E4E0782BF7B6A5A31E78578AA563FBF703 -:10B08000E25C9E0DD29723044D0EABE902C8E4D5D5 -:10B09000446AF0FF257D1B6E8671FE1BF08C7CBF21 -:10B0A0007ADFA7543EA4BAFA5810FBED9D8E702C9F -:10B0B0005FE46D6A0EA17F69E4CFEB7E79678E4213 -:10B0C000791EB1020D7F05D86EF51E3BE5F9A21F72 -:10B0D0008FC3AC617D343F73FB355D6F3A505ECBFF -:10B0E00036D65778E1E0EF60213990DFD6ECDBF21D -:10B0F00091988ECFF75EC1DF835A63B24F9769F2A2 -:10B10000DB4CFF5D26BA07FC507C210670F19F6383 -:10B11000E272BCE5D7778F7F03E07B7FCF53E9F8FE -:10B120007B133AFDEBF73C9FE86A5CE818E21EA14E -:10B130000F343EE9D70F9A7E52F60360B9507C84F3 -:10B140003F57DA13E917C27C5776DA4348F32B1FCF -:10B1500010552FDA552F3BC91E59F9C049A2DB956E -:10B1600082DA27909E63E928C7F5F55AF1C0DFA679 -:10B17000A39C5E9127B299C08AD7FDFE135E1FE89B -:10B18000DC0DF5573CF8C6F41F6219E489CB62BDAB -:10B19000A675753B7ABD16EBD5F5C6748CCFB7FC9A -:10B1A000FA1FB41EEFFD4560B92583DB2FEBFC1BB6 -:10B1B000C5C1DE8785F167727CA1BE59D3252E7289 -:10B1C0006458AD5F62D6C395F49DF2C2CFB48E1DB4 -:10B1D0002318D78F7F7CE0DF1E063896BDE20CCDAA -:10B1E000C471FFED86740674F08ED4C4E9FE676DF9 -:10B1F00039A8BF97D96339323DF9FB65BBBE47F427 -:10B2000078ED5FBF97A3ED37E4D9481EC4F2709E76 -:10B210004B7F3A8FE6790D8B103D2EFB19BF67F1FE -:10B2200013F0B3ADFC84A90AE71B27BB7EFCCD015C -:10B23000949B78670BC0E160FCBEAEE778FEBB93E1 -:10B240005D95916CE77A146ECFC558FC35B43BD749 -:10B25000805A46B9F6FF003503B31E008000000097 -:10B260001F8B080000000000000BE5BD0B7C54C5DF -:10B27000F5383E77EFBE425E4B5E8457B8791224B4 -:10B28000C485249040D485400C0AB8404494884B2F -:10B29000C010202101AD60A5CD860002C53628551D -:10B2A00014B40B8245451B31086AC08D2886EA1705 -:10B2B000438D165BA18B2008045810EAFA2DCAEFC3 -:10B2C0009C33F766EFDD243C5ABF9F4FFF9F7FFA08 -:10B2D000A9C3B93377EECC79CF9999B3E2814BF911 -:10B2E000BF8C62ECE1787DA5C9C25805D33B3D66B1 -:10B2F000867FC215814A493F189FC35F0263790761 -:10B300004675F3A4316662178CF767327611EA9FAF -:10B31000B36ADE6357E2193BB1D1D445B819CA18F4 -:10B32000565A07EDAFE0DF6DFEB25482CEA3A9F905 -:10B330005F18F43F97BE04FD6C3991BF0EFA65B1FA -:10B34000220B8FE5F073303E4B71486578367CAF49 -:10B35000E5A8B107D43BA3742C19C7DBFC0DC1CC05 -:10B360001A2D617BA5FF8A9D26E656C603FFAFD83E -:10B37000F48D91613F3AE6ED35AC7D3D6395E9880A -:10B38000870A162EAD84F284D19BFF2E7E07BEBBAA -:10B3900019BE53B206DAA7AAFAAB3FF937968EED7B -:10B3A0008DFEE7F1F8DFC58C65412116853B42181B -:10B3B0009B8938CC693FFF855F553FFE81AABF0C52 -:10B3C0002934EA7830FC63081B7245F4BFCFD603FA -:10B3D00092BAB77FFFFB2AE7E31F18F06D27E1B1B0 -:10B3E000CCE07A09F154F6A5C9EA043C96BD76C9C9 -:10B3F000A88B422A326F7257C64E6FDDF3C57D307F -:10B400009FD37586A831F4555B9810E3C77BE9B6E6 -:10B410006FF2D7417B03E03D08E839B7FE7BA30E0E -:10B42000DAC7E631AF09C67F3ACACED800C49BE17D -:10B430006B8F0A6F79F0DC1342E3E8A98BC5D2DD8C -:10B44000934139378A59DDF0FEDC16D12A21BE98A6 -:10B45000779925A4FDFB15754703E8A2AD67CC6B72 -:10B46000B4E377EB7F735E0C53E35DFFB5478577FD -:10B4700005CF81789D8A78EDEFC7EB2596160E9F54 -:10B4800061A75E99D3C791D61EBF0A5ECF563164BD -:10B4900072FFF33E12E159DA091FEA06750D72C90F -:10B4A000D8174C85C7D9AF9E21FEFD67779189C01B -:10B4B000377337FDB00CF90AD0EA3501FFCE759D20 -:10B4C0002778A9CDEC650437160AE91DCD5B8BCF33 -:10B4D000C0FA78446AB49FFE86C5CC190AFD7A7713 -:10B4E00089AE8D30B47392372C02E6B734883D6054 -:10B4F00087F29C4586BB2A307B601A8CF39C33DD37 -:10B50000E2C4F782D8E43AA0CF39BB37AC6B887F6E -:10B51000DE471AC43009DA7B5CACA02EA43D1F3292 -:10B520005643DFF7B0CEEAAB491E4689975FF7C0B6 -:10B53000F72E38F5CC04DFF3547FFFBA07CA637ADD -:10B54000B305F134A3FA9E30A683EF3724DE351914 -:10B55000DA3DB80FF047D3B319BB037EA7F3A9B305 -:10B560006F99F3E95C989F189AB9F75D78BF04105A -:10B570002B02BFCE58A5C5CF6C660F77C7A3DC1AC8 -:10B58000FC7C42FF7519DDF0DE4C4748E54AF86E59 -:10B59000E97A6DFDEC86D3C45FB303F8CB81FCD5AB -:10B5A000BD3D7FBDA2C8ED403610F96B9418A24393 -:10B5B0007E3ED724BA4CF0CE852506B60CE00B5B58 -:10B5C0000517837E2E3440238477729839A3896FC0 -:10B5D000153E57F0D68AFCD7B73D3EDBEAB71F1AB7 -:10B5E000FC1834297BEBEFE9EBA06C7DEBCB947777 -:10B5F00011DEF1D7B8BFB3F6EDF376FF3095C6B5DF -:10B60000DBC4705CE7767F14F718C2EF98ACC8B75C -:10B61000E7169B6C0CF5DDEE505732D6F7067E0030 -:10B62000BAD7ECFA3E1DF53D634B888E9F4B462AF8 -:10B630002F34FCEBB080F3683049388F8ADD80040A -:10B6400078BFE29D2017C3F7777D3FD811F2F3CD85 -:10B6500067AE9139883F43D9E46DC8BF5D990DE766 -:10B6600053F16ECE8BD5F0FDF2FA46E374A8CF7B92 -:10B67000EFC774D447E7B6351A515F9D35785E60E1 -:10B6800056E4DFFB6B0D80E7B3A1D0590FC61EDD7A -:10B69000F0BCDD19D2115E381ECE011E705E80979F -:10B6A00052575AE7F8F8FEBF161FE7A7E2F7CB1A82 -:10B6B0008630315E8D17C1C69F87BACC02CD9F3FC1 -:10B6C000DFFD7D3A0BB9F67CA3E38D24EFFF7F9974 -:10B6D0006F46FC7F2B7D39BFBF2B4934BE40BE6F08 -:10B6E000CFD73B1E21F8F5502B8DF73AE57DE27F51 -:10B6F000EDFCFF6FE83DEFBF76BED7A2F73E99DEC7 -:10B70000A11613EAAD5D3FC6B11B9877EDFF47E781 -:10B71000DDE6FFE8ACE64C18DFDF98EBEEE10279FE -:10B72000251DFA23BBE2B5EB8E71B25F51C3BE1E7D -:10B73000390DBEEB047F02FDFD9A90AFF52D003769 -:10B74000839F80FE0543E704F0D05C38D0B512ED4E -:10B75000B6BE925900367C319DE0C9C53FE833A1A1 -:10B76000FDDDE0E761FBFDD59E19D550BFBFAB4EB7 -:10B77000AA01F82EDBC4E47A802D3D440BAE636A47 -:10B780006C19664935BEBBB2B5EB91FB02D615F715 -:10B790004CD6D64F621BA3F5D0DFA4520373C194DD -:10B7A000EE0E68BF2EDE42F8BA87552EB584DC381F -:10B7B0009E4ECB78AA61839A24C48B4DB46E66EDFD -:10B7C000F1C6106F8897D80CB6D28A5FF1E85B009B -:10B7D00036C9FE15FC913CDE1D657E09F16462F3FD -:10B7E000D923D0DF25495F89ED4D0CD68D7CDCB4A3 -:10B7F000DE0CC41B93D79F26990477D91E628867F5 -:10B800007CDE2756F33ECD3B10CF378ED7C5C94FD0 -:10B81000235E0B43AD2EE40BDB8BD17AF85E0DE09B -:10B820005910FCF854F0148877F43969FD27E35B6C -:10B8300029D398772AFA9D612CCCBA12FA0F33F7E4 -:10B84000627A3E0FAFA93B161686EB357104AB5BEF -:10B8500009EB3596AD6F6D9B5702D5BB1F83F76A19 -:10B86000E6C1FB88D75E4CB213FF1759707D2330B9 -:10B8700007BB12ECF73F3FCD06FF339E4AE2DB4F9A -:10B8800037717FF352EE9BCB0682283198B3733029 -:10B89000FAB9F29FD35384EF894C67C5F52FB3D91A -:10B8A00024CB60EC97D1BA263C5BA759FF76B575DF -:10B8B000D1E02DB220420347DB7B68DA779B9CA066 -:10B8C000A9EFEEB84953DFB3749006EE5D3954D357 -:10B8D000BECFC2111A38DE7987A67DE2F2091A3886 -:10B8E000B9F63E4DFBBE6B8B35F5FD5CB335F5FD12 -:10B8F000B7CCD7C003EA7EA9697FF3CEC59AFA8197 -:10B90000EE959AFA8CA627357056F3739AF6430E85 -:10B910006ED4D4E7785ED1D40FFB769B06BEC5FB10 -:10B920008EA6FD6DBEF735F070F6B1A67D9EF9339B -:10B930000D3CCAF2774DFBDB638F06C43B2CCE87F0 -:10B9400032518D013F819C8D964E6BDA83C75C84AA -:10B950007C6390F9E1CED4EF34F563ADFFD2F467A8 -:10B960006495400464AB5A2ABBB03A2A43583395D5 -:10B97000BF1EE0B027A05CBCE05C864CB53FE7FB97 -:10B9800038B4239FE63EE444BEBB14CB2CE24018FF -:10B990000FF3EA91AF75C1977B395471A3309FC8FB -:10B9A000DC19C0873E814A8B2F98B923810F7D41D6 -:10B9B0005446F822E979A4AF2B9551BE9EF43CDAA7 -:10B9C000D79DCA185F2295DD7CF154C6FAFA53D987 -:10B9D000DDD78FCA1EBE0C7AAFA76F2095BD7CC382 -:10B9E000E8796F5F0E9571BE3C7ADEC7379C4AC915 -:10B9F000772795F1BED15426F82652BB44DF782A2A -:10BA0000937C53E879B2EF5E2A537CD3A9ECEB9B8D -:10BA10004665AA6F0E95FD7CB3A8BCC9F710BDD7CB -:10BA2000DF378FCA34DF63F47C80EF512AD37D3552 -:10BA300054DEECABA6D2EAFB0DB51BE85B41E5207A -:10BA4000DF53F43CC3B79ACA4CDF3A7A9EE57B9643 -:10BA5000CAC1BE17A91CE2DB4065B6EF552A737C4C -:10BA60002F5339D4F726BD37CCF70695B9BE77E901 -:10BA7000F92DBEB7A9BCD5B7879EDFE66BA4D2E689 -:10BA8000FB989E0FF7EDA37284EF337A9EE73B405D -:10BA9000E548DFDFE9F928DF9754E6FB8E5279BBF2 -:10BAA000EF089505BED3548EF69DA4F20EDF77F411 -:10BAB000DE9DBEF3548EF1FD8B9E8FF5FD40655BE0 -:10BAC0003C21D710A017DBF49FEE0AC67942223A38 -:10BAD0008CB7B5BD2FEBE3D5C12F308C7B8CAB146D -:10BAE000689DFE4CF0D90F484FE69824849762D3A6 -:10BAF000EEFC3B9618C6EEC77F488C35E69868FD8D -:10BB0000BEFF57FCBD65C38F7EF510DAC779268668 -:10BB1000F63150FF2ADFFD347B4F34FA61CB0679D2 -:10BB2000CA30FEF244BCA708CB860481ECC59B72E8 -:10BB3000F94E828ECA3503B8FD2E9A971C4E71AA13 -:10BB4000A8EB9BD7FFA2DD8FF6B77F2189F7C34211 -:10BB5000BC71642FAEB39FEB6DB7D4FCEB3F605C60 -:10BB6000C756A36741B702ACE7F6DEF955A86B33B9 -:10BB70004CC939A2F28F18E7712E36596AA210CF3C -:10BB8000BFFE13B65FC898DD04E51F121C9F254059 -:10BB90003FDF07C5B9C038C25FE59009A13F6BFF21 -:10BBA000FFF83FEEFF34EAB5CEFAFF87CC476312C9 -:10BBB000EDE7701C4C6F4B473A8C58DC5D8C82F77C -:10BBC000A7AD122CC847D3970CCC47FE18C46C14F1 -:10BBD00027BD3F923D60EFC02FEB96A893FD0BC9A8 -:10BBE000780F8CE70CB81CE84F144B8CF8B2B841B6 -:10BBF0007039290E6D0B1B0BF6BB54E6DBE2E5D565 -:10BC0000C605D0AEBC3B8F9731178F9799E17F283F -:10BC100047736A37ECA570A37899E26397D0EF0574 -:10BC2000D699B3A57D3C7601C699771A2D6837CA97 -:10BC3000EB02E2B90171B3C0789925518EC75A99C8 -:10BC400095C7B9434AFE8ADF63619218756DBC28B7 -:10BC5000F1598949DD108FA3C4B4705CC75C684A90 -:10BC60000E67584A52376CE7005A344329E81D439F -:10BC7000F039E0D38974F55607BB36C2B88E803DE3 -:10BC8000913270408E21468C47FEAD375B2910D52E -:10BC9000C80FABD824925FEF59FCAF6518C79E154B -:10BCA000AFA775C0348CB9E3F8DEEEEA720AD42F80 -:10BCB000E1DDFB9A407157279B1F8B71DDC07D141E -:10BCC000FBD2E871D948A7E55D079990564EDB177E -:10BCD00049312AFA2CA921BC16C74672FAEC3490D5 -:10BCE0005F0BF4A946FACC72198EA9F17C895D36F6 -:10BCF000E27E4CF1F2F344AFD97E7A69DA95D73619 -:10BD0000125D814E9AE71595279438FAB1ABD12B85 -:10BD10003F805E183FBF072B1745927E285AEC4E96 -:10BD2000AE54F169E0BE44D28CA1E1769087821EC8 -:10BD30009C1E4C6F8D417A7EB72A8BE81548A782EE -:10BD40009FA6133DD8DF42D96618CFFD89EC810943 -:10BD5000F0FC0139FE7A7FCDE8028C974F4DE4EB81 -:10BD6000934F61FD6983F5E7812A33B3816AFEACA5 -:10BD7000CA42F0E755B104FFB54AA2F2CBAA542A51 -:10BD80008F1959699D4ABE80018C38BE192857D138 -:10BD9000582AEBC3876331EE5EF0D367593A52A954 -:10BDA0006F8E1FD51BD7178004157E261706932F7D -:10BDB000ADC01E83253F16F5C70AC1BA19E96A1F2F -:10BDC000A669CF5233FC30DA2F3DE727E08B8DC8D0 -:10BDD0007FF78E89D4B49FB4BCA7065E9428D1F8AF -:10BDE000C617246A9EDF57D45F034FF3C17A1E3E05 -:10BDF000952415E89CD0FFC54F0CC4CF172B877432 -:10BE00005BC061E2BB40FC1F333A298EE0DC68B2C4 -:10BE1000A2FEFB3688F3F7B79F8BAE1A5AF73A2982 -:10BE2000EE72C96C91709DF2C874671CD63F120CFB -:10BE30002EF940C497C8307EC05E3191FE9CBE563C -:10BE4000604E94112FA3F5F2C32F9B689E33D68AC0 -:10BE5000CC91417C1287ED1F8E96A8BFFB13A53AAB -:10BE6000E467EF66937523D44EF7C8EF0B83681F22 -:10BE7000A47CFE5F0FEB511E529AD371AD5514EFA7 -:10BE80008E463DD8BAC940FB5EE5E286921020D1CD -:10BE90009C27DE0CCB9148FC08BFA70E446FC0F96D -:10BEA000FBE7EBA2B8C8377DEC1B13419F9E2A71BC -:10BEB000A5D33A79118FC7B7C70B233DE5D4854980 -:10BEC0009B71BED31D432C696A7BC8F7FDA61BACD2 -:10BED00031D634E4FECCEEA8078EAD321460DC051A -:10BEE000F4FE38C4D3B1DA48DD4A5A546D23FE2A31 -:10BEF000D64B46F5778B5789366A0FFA7D3CDAEBDD -:10BF0000D5A2830D41B896FA772E171CB8EF94C4CA -:10BF1000B2BB21DF3E346F48379CC7D44EF619CFF1 -:10BF200082CC3854FB58B3778976177E2FD3A32F52 -:10BF30001CA01E3F8F03253996F79A8F747A23C869 -:10BF4000BA5242BD9A188EEBD4932D6037E01BB3E2 -:10BF50006A1AD32560BDB28776101D4AC7D5A5B829 -:10BF6000E1F901B3E313C4E3B7DDEB9E1E8671A2D2 -:10BF70008617E39C680717F2FDB5D9AFCCEAA3F6A4 -:10BF8000E7DBFB132C56978D853B4600BC38249687 -:10BF90008FF89DC2EAE4F8858BC627A1D2057C58AC -:10BFA000CAF8FEDB749D75EA679988FE500BD2458E -:10BFB000E9EFA881C7B9FE21CBB362877B24713F2B -:10BFC0006BBA8ECB1DDB2D109F02C1BE4852D9CB60 -:10BFD0000AB68AEC656C4F91E1BEDDD9C408592FD1 -:10BFE00070FB3707ED1FEE0B5B04928FB22D269787 -:10BFF0000BF82B3589CBE76CE36B4F0FC2E6F1955D -:10C0000046FCCEAC7A813D074D4F195C25CDB82F4B -:10C0100065D9B02482DE33585DC8A7B27E3783422B -:10C0200040BD3013FF09F5E56B04979BF8C54E76CC -:10C030006806C64D70FD8F7A5EA547DAE9F700BD48 -:10C04000FE200BD8D7AFD5DA177B70A819C7397B7C -:10C050000DF76BFDE311D915C05589C3B5771C8D5C -:10C0600057A0B848E0F767E2F870BC303EB7F5C6B5 -:10C07000C75362E5725A562BB85C1D8C4FC16B7862 -:10C080002E93D03ECFD924B8901F4745CD23FCCE68 -:10C0900006FC46225E9DF6B07B002E014672517C66 -:10C0A00085E3BF623DC73FD0F92F6ABBFB4D94D7F4 -:10C0B0008878FD06ECA713F7032BBF27BAEF05FA24 -:10C0C000A2FCCE7AC365C48DC8D3AC362C04F97EED -:10C0D000ED81BDB82CF866CD9B31B87E2D8A7027D6 -:10C0E000EB406F45B2E8270B6EF1F35FA0BD6E67C2 -:10C0F0009703F0E36476B243EDF0645ED58CFBDE2B -:10C10000EDE827C7C51EC47F017E1EDC24DA82D27B -:10C1100035EDE4F3084EC25BA9D34B7E4229CCB384 -:10C12000C6824F9DF9889707AD8CF4EE8D8E3770DF -:10C130009C4C2C22FEC4B81EFA21FFEE7803FD8F22 -:10C14000494957F73F02F548A0FFF195C1A65B8C1E -:10C150007EDF01BE2F7E51EFEE8DF27B312AC10AC8 -:10C160002DFC7A347A5037D4F38A1E2D91ED96D275 -:10C17000EF8368AF003EBEF6CD30A4BB42FF9968A6 -:10C1800027D2FC76E291E9D03F7CEF911D41D4FFAC -:10C1900099B160A7A0CFA2E73F0A632AFDF7781FF5 -:10C1A000C7FC24D4278A5D1337C45980BF147D7916 -:10C1B000AD7557A7F30A099857A8765EC538AF0C36 -:10C1C0007F7FD3E5797DBD9CCFE7E82A3EBF19ED9F -:10C1D000E6C5EDFE232F9AAC4EF20BDCD12887DFAB -:10C1E000BE21B21AA22FF71B2E99819F0662FC6610 -:10C1F00015D9F593D14CC2B84EA7F67BB589FC8210 -:10C2000059DBF97EEB29617837DAF8FFC01DF62893 -:10C21000CAF53691A11DF28FA7CD6E3F9BA4B6DB68 -:10C22000D789378CB3A23D9B0BA843BE9FDBD08D33 -:10C23000E1399755C3599D48FBF01ED263C04214A3 -:10C240009F063F5C136F3031ABD98C74EA24FEFA41 -:10C25000CFE4F353E7133EBC29887FE5FB155DDC93 -:10C26000866EE8D7BC21905F53FEF0F0B0E10CBFC2 -:10C27000C3E3663B92B89D7A07F51CCC4BB0555290 -:10C280005C0C7C1ACBEF705CEB797C98BDCFEA102C -:10C29000BF0853FC58C7E7214816563488C7E5CD78 -:10C2A00068D7427464D702F17042FE4EB9A823FFEA -:10C2B000B7CCC8FDE073023FFFF1916C1F3F4AE22B -:10C2C000EBCC4F92783CE11CFA81D0EFB95B4CAEDD -:10C2D0006A01DD563DAD93F5B92617FA337A7388B6 -:10C2E0005B4C47F4EACFB6C933E06B2A6B36203D8E -:10C2F000C765CFDB82F339DC8359C4AE546DC77D8B -:10C300008429A41918DB6FF8EA438C473AA1AD08D9 -:10C310006B8529D9277A63FBF508C3FC0F07D57D08 -:10C32000887196C3F17A86FB02CE5D26B2FF861134 -:10C330009EDE14A7ECC258CD408CC7EC598A7CB461 -:10C34000373632D502ED1FD077B18A5CFF8C3C8F37 -:10C35000E32D15F8FECD124F16D2E766B6C472DC97 -:10C360004C5B0BF55722AFC63F7A765CE10318535E -:10C37000D908F8C750C6192B9BF0A98101AF045FFB -:10C38000DEF4C88435B9B869220D403A972578F5AE -:10C39000B89FE215987723E0E1EE6CAFDE86F4B249 -:10C3A000B1BABB807FDDFB9880DF4111C0EFDEE3D7 -:10C3B0004E18857860A9120B87FABBF412C1BD0A2A -:10C3C000588428EF1B601CEBE03081E8A0334B065B -:10C3D0009CB7BD401884FBA2658BAF6F9C61C9D52B -:10C3E00034CE329D8EAF671FE5EBD929CE23A3C88B -:10C3F0004FCA6502F26145449D81D6D1202F38FE97 -:10C4000081D08D1A7F53F41E3EBE52185F0ECA456E -:10C4100012F1F17D9502F99315C68EE31A3D9295BE -:10C42000759745C2F673E05FC8D7731A7624E3F7B1 -:10C4300056099C0FE6287CB6552B97B9C9ECAA7C07 -:10C440009D93CCF93A2799F37572DBF7EAC8EECEE3 -:10C4500069F8E820AE2B3BEBBFDCC4DC84975D269B -:10C460008A1F083A6F12D1051109749882FE24B808 -:10C4700088439223B89F2EF36709FA1F8958F2B8B0 -:10C48000880E9427DAC3D2DA178D88B4C0F347E058 -:10C49000F8D039A0D99B029FABE22AA246EF50DC2C -:10C4A00053307A67E078845B83ACA88FA718EB6879 -:10C4B0005D1ED8CE50CBFD2CC372EE67D1BE1AC024 -:10C4C000A655DCCF9CD2CB3B80919EB3E40BF1AC64 -:10C4D000CD2F2EE19F86E7651ABFD88471048C7B2F -:10C4E000ADE5FEA05EF65F8B5769FD85294B54FED6 -:10C4F0002275EB2DC7F11A160553DCC584FE84CADC -:10C500000FF8876EBC13F5B033414FE72F0D2CD0D9 -:10C510009FB0331ECFE4CFF5B29F383AD9A0D97F70 -:10C52000738E60A9888722D44389A86AECCB319E98 -:10C53000778185D662DC6C94B888E27F45D5FC5C57 -:10C540005A60FCEF42E587CF637BACC7E70BBAFCD0 -:10C550001487FB9BB02CB50BB782BFD1E5F0250744 -:10C56000CA07282AC3508C03EEFF06614117CE8408 -:10C570006CFCBEFB79ECDF69345B506F3D131C46ED -:10C58000FD2C5C28507C788985CBDBA1AF4237A29B -:10C590009E52E2BDCB8667ACC5734B359B1B27987B -:10C5A0007BA37A60746E8939F7FEC506F329BC0C4B -:10C5B0007243F047136CE1C0E71F7AA79A014FCF8F -:10C5C00026374DD0839C9CFBBDF705845F4D3EC054 -:10C5D000E127BC7141086FFE9CC3D54A7F9F4FC0C5 -:10C5E000FECE3DCBE1E550EF84EF17A17EC3790F7E -:10C5F0001568DDFF8AEC7F2BF19E22DDFBBC1CC1A0 -:10C60000DC683FAFD5AE3ED9FE0AFA3B62E8B150D6 -:10C61000F42FDEEE6B7B05EDF78E44FB53C948AF7C -:10C6200016574C34C6B174AC19E90276CCD6D1BEDB -:10C63000F42B493C4EF3568A9DDE57F005FDACFFC6 -:10C6400077FA1999C2C7A5EA67F3BFD34F78DF76A7 -:10C65000E3793D39FAC6FB9917D08FE2B781032CF5 -:10C66000A19EF2A6DAF6E1F8E6FCDA36A21EF5CFD4 -:10C670007E91F8F4BBCA1D2968F7BFDB6A8A44FBC8 -:10C6800037E7F5B7E34A308E20FB45A71BBF344A96 -:10C69000F0FE5C9FC86CA0A72B7C029573EB1B8DF2 -:10C6A000F96978AEB6D198A71A57993C4EE074FD57 -:10C6B00004951FB33F5927EBCDD554CE79FDA41E69 -:10C6C000E9394757771CCF1FB3A13CEE1538BF1D82 -:10C6D000B2DE3D8CE70D3A8803B4C8FAB9777FDB48 -:10C6E0006788B7B7509F030CE6CAD111BE7AA5F090 -:10C6F000711475E17A3EABC55AF219ADFBD27522C1 -:10C7000094830F561A8BE1F9C1C41187105FEDE3D2 -:10C71000905E1E876CE071C8A288E687C198B16EF2 -:10C720002F5D7CD20CEBB83B9F91E503450FF44B9A -:10C7300081499197E0892373799C0BE1FF4D363C49 -:10C7400085E7089BBA34FFE233B40F2B42D94690F9 -:10C75000B3FB8784C66D83714C77860B603BD970C1 -:10C760005368CA3468D79A30BC5B0AE92746FE6131 -:10C770006B82FD02CED7131FAC036784398C3C9EBD -:10C78000E5F8B348F12C477AB0C3D501BEBC323EC0 -:10C79000BBA5F0FD9D261D8C73108E839FEF85BF7A -:10C7A000B86D186F5ADC4740BE53BE3F2671788C77 -:10C7B000FAFB6312ED624AB4BA7D38C3F6D73B0E7A -:10C7C00096C2C71193C2E965CF05FE52E9FD092360 -:10C7D000833570E198486653AFEF0A7B6AE0C9453C -:10C7E000899AF6F7CDE8AFA91F6B6ACEACBC017F82 -:10C7F0005F0C4B0DA7F57F165F871C6AB8F4C51454 -:10C80000F46337895601E6356BD7E62F8651EF1270 -:10C81000C5B94E3589648FC0BD35AAF74FCEB06615 -:10C820003A77ACEFBA84ECDF9C587EBE7B964BBB6C -:10C83000FFA1C4E53BDA37417B5686E7623ADA3737 -:10C84000F1C7E3AFBA7F929D22AF8707B1417C3D2C -:10C85000DCBA1766CAF2763612BD6AF6895664D516 -:10C860009ADE0213609CB7D79B5C4130EE336F1F9A -:10C87000314AAAFD930A5F35062DE0BD23463C4FA1 -:10C8800075305922FACD6D386F64C017B737CC2395 -:10C89000B96E6E744445A3FD027F757B26F2575D29 -:10C8A00026DABF269DC58EFB6173968FA63873B8B6 -:10C8B0006F0A9565B5A3A9DF72DF4482E7FA8209A2 -:10C8C000FE546CAE3F80FD3C136E417B5EAE776ED6 -:10C8D00045BA944BC119B85F35B7FEC0C55FA21DFC -:10C8E000B5F07B1D63C5BF6462FDD83E165D4D5734 -:10C8F0001C6F10F5D33CE2EF9968970A705D00CF8A -:10C90000CBB6E53850EE87D7845A50EE453C4FD62B -:10C91000019FCE48E1FE9EC1C3C73BCA379EFA5372 -:10C92000EA67A72450BD021BA237E9517F28F330E4 -:10C9300080C1C7F20E5F7F2A2BEAC7EBF15CFC9F38 -:10C94000535F8C423C41FB102C93460E233DF35D1C -:10C95000E59070D681DE524A93AC87A7A01E86FE72 -:10C96000EE4DB555A11C8E5BE4D19B518F86982D61 -:10C97000B8FF312E7BA054A29A8FF8FEBDB892006A -:10C980005FC56B40BB3D054AB5DE7EA013FBB234EC -:10C9900045D1DBD54467C50EB12D4F325C874DE5DF -:10C9A00067B5DAE46ABE2CD7CAFBCD02F7079CDB79 -:10C9B000795C7F7EAA632DEA91E6E16CF236D2A71C -:10C9C000CD71E3437FBEF187E99B89CE611649872C -:10C9D000FB0A4AFDF36DF3E0F27DAD79AC94DB7FA9 -:10C9E0002AB285C8179FDE765BB30DFA6D7C2C23C7 -:10C9F0004354D9A9D753F8F94766F15E267DB13B78 -:10CA000058423D3016F71E32FD7E3F9E87C4B84621 -:10CA1000C56ED3463C0F561106EB7CF8FEF8FE8E31 -:10CA2000D7917E8DEFE55CC47B34365C98819CDBCE -:10CA30001A865CC473F63633681B2BFA41B63F91F5 -:10CA4000BEED64BCD7D2674923E744A13FF11D0C7A -:10CA500009ED2DD8FDCC160EDB115F8EE55CFE1CBA -:10CA6000B21C4E93F9B75896C3697A2E870FAC095A -:10CA7000B760BCB378913000CFCB3129D48A2AC0BB -:10CA8000807C9981FCC9F9B2CCD75596E778B91F5B -:10CA9000CEFF81F239D71749ED1439FD53AAE310BF -:10CAA000B72BCD990B615C77805CA3DE732CEE9E77 -:10CAB0008972E2E713A305F909F824B644C50735DE -:10CAC0008D3FE8914F0CB902F18909CA3C151FD975 -:10CAD000DBFC134B7E0CFA554BE2752B99BFFEEB3A -:10CAE00014659FFCFAF8FD53B97D7108F81114FF25 -:10CAF0000963185FBB1025519C74FE0A1824A060BE -:10CB0000BEC19D8C7198F9F382280E56D252B92C71 -:10CB1000546A4FAF7B7DE9B4BF3CD19744E5C14433 -:10CB20008717E5659A6F928CC7F4EBDA9FCBB2F169 -:10CB3000B89BC165B26E88C7B89B43A4FDB8DECC74 -:10CB4000F214D929653F8EC7DD309E87F1BDC0FD47 -:10CB5000358CC3E17ADA14A5D3EC13B68BC70DD7A5 -:10CB6000EEA79535FE65B00EEA4FC5DB282EF74DD2 -:10CB70001F47505F98C7EC09AED70DEA7D36198F75 -:10CB8000757A7732DAD1BA4A8E9FBA556201ED379B -:10CB900031163C5E755EF75A7C3CDB9748F851ECE9 -:10CBA0008BA2B77754D1A1CF36FD7D2DBB532EF389 -:10CBB0007B39F2BBB5BD9D51F835909F15FD6C8852 -:10CBC0006E213D7407BC82FE83A2AF0BF286E5A204 -:10CBD0009D1FF67262FD3B30FFD854470EE2E5B66A -:10CBE000577B67AE03F80EBD4B6F09B91E7DF88306 -:10CBF00081F4E1A2F18CF421946A7D68E8C40FBF4E -:10CC0000B5EF8DF1779ADC1EFC58EE1F82BE56F709 -:10CC1000373F75C4F8BED074525F6E277FAE717710 -:10CC2000A6C727F5BD313D9E278FFF5A7A7C565FF8 -:10CC3000AEC703F5366863D2DBE776F5A338D96172 -:10CC4000067A1EED5943B0B4395E75CEBD4BB84B74 -:10CC5000ADD77BF79F3E0BE97A1D7A7D36B6FB7721 -:10CC6000F57AFEF837C8AF823FFB5DB7C2FAE3370B -:10CC7000B0BE43F85358DFC5B79787403908E47B07 -:10CC8000588FD41F80F1353DDD87E20E2007C4F7B1 -:10CC9000E5C0F728078ABCCCAD1F188EFB06EC1345 -:10CCA00091A1FE0F948382BC57F518A7423D8EF8E0 -:10CCB000DA03328F7A26D04EFCD8D7F12CF28F22AD -:10CCC0000F8A1C5C9B8FDE36E0BAD450769EEB79DF -:10CCD00028D57ABE337FE6851BE4FF55D7C93F6F61 -:10CCE000FCFCFCF3C675F2CFB6FF847F9246BE4BC8 -:10CCF000FC83FA13D76F777E6C0D5FC0F987CE2562 -:10CD0000023F6462DCB969706F2BC669EEBCC2FD7C -:10CD10007AD0E9E4D707FAD55364FDF7801C2738A9 -:10CD2000986AFFBC2F9757F2DB8727060F447B7565 -:10CD3000BDFEDE94A84A6683E70F40A9D61326A459 -:10CD40005B07FEFADF6E90BE4DD749DFD37DFF63F0 -:10CD50003FEF52DFEBF0F3926CE68988CFEFDC7A9D -:10CD60008678BAD67AC0B096E3B9CD5F77EB15BBBB -:10CD700019897613F8E39FFF097F8CCDABBB68065A -:10CD8000BA466D3116EAA1FD243C6B41F10CD31A71 -:10CD90005B12EA1BA6EC0B50BCE35351869DE69652 -:10CDA00091308E3B9F62FE7D03A81F951BDE161FF0 -:10CDB0001198BF7DE41643CB2A8A3FF0F32ACCE1D9 -:10CDC000D1F37D3219CE043854056707C0EB79FBE7 -:10CDD00030BD87F1731FF27359FF8CB3F07D01FFF3 -:10CDE0007E9E37BF2BFA7FF58205F717EECB3D67A6 -:10CDF000C478CED83CCFDE9ED02E654B7861483FBC -:10CE0000785E2FD07807A7765BE34CA2235B363C95 -:10CE10006F5896CDF74D4C758DF9B60EF87070AA17 -:10CE2000D64EE19F3E86E263F467AA13983193F7EA -:10CE300093107F7DEF23FDE8FD047ADF6D8ABAFE53 -:10CE4000F7EFC9653657077C345269877161A57F52 -:10CE5000A0C9C43AC1D651DC664C2A9797669DAEEC -:10CE60009C019E0A53FBAFC1B8D728C6F96252EAAB -:10CE70004D854E1E4762B680F95E6DBC433B98AF50 -:10CE8000A47DDF7D357CD95215B957DE97E95FAABD -:10CE9000E59370BDFD83EF601CE1518205FDD4B9BF -:10CEA000F6A0552C1CE92EF335CB2AB4E5C2FC8242 -:10CEB00098268ED7C6D76C70E1C834F9DE3ED567A8 -:10CEC000AF41FADB756DED399F37086DEFA7EA19B1 -:10CED0007E82DEAF4C1DB206E37E400FAA2738E902 -:10CEE0002A7C5E1700E706C805E330C925EA65C05D -:10CEF0004F7207FBB74FC8F83D23F0F34DCD23B871 -:10CF00003FD79CC0CBADA9DC7F5B23E371BDDCBE0A -:10CF1000B98B0A0FBDFC74863F37AE0754F3263C2D -:10CF2000DD1BA5CC7B52E118985773041B20009F92 -:10CF3000BC943A61CD92DEFEF7B7A44E223EF1F7E3 -:10CF400057D88276FC5E194F5B53EF6EC17A3C7204 -:10CF500082F2569ECDF75F4DF5073A94B705EDF98D -:10CF6000C789F915CA8991F03DC166C8E4FD2474EA -:10CF7000809F5FB57FDF16F03E3344DDC8FB327D16 -:10CF8000C604D0AF20807E2303E0222DECF783A1DE -:10CF900067F09F8A77AE5E1A83F1B32D02DDB1028E -:10CFA000FD6C14E079E396070A43703D2A4A869E99 -:10CFB000D0F6C32DD35ACCA0BFC6A3FE227D5C4CB5 -:10CFC000FA7A22CA39C1D30B6D3723DF542E8D85EF -:10CFD000F61F6F99B106EFBDDEB764B50191FEE9AA -:10CFE0009692357AE8F7DECC3FEDC5FEF4D5A52D57 -:10CFF0006384ABF0696DC03CD607C0CE80F66BAEE3 -:10D00000A1CF9704BCBF28A07E5500BC36005EAE01 -:10D010007D7FDA0CBE7F390DE88788BB96BC7C9398 -:10D02000DAE617B4D92F01EDD9C75A7EBFB386C34C -:10D0300067531F295C1EA282B72C2854F3AF41B658 -:10D040001753A2ECB68EF8F75067FC931A68D79C7A -:10D050009A73898719D3D8DF3DA2166E1495F12EE5 -:10D060006D79384DB51FC89614E23E51E7FB158B1C -:10D070000B71BFE2CEDF29F58B0B6DAAF929EDF319 -:10D080007FBC22E2F7F42F57176EA2FD3F79FF2EE7 -:10D090008297B75DBE128674C9C7F3A358DFC59DDA -:10D0A0003C5F6DE7595D0ACEAFF1317EDFD05903A9 -:10D0B000F400392F6656DAFF6E0C0F5FF812B4DFFA -:10D0C000F398B810EDD7E1859174DEA8B01FF7C7CB -:10D0D000F684F7897910E0C6E0078C18576D7C7CE0 -:10D0E0001495EF8BB6655E407EFCCBB564C71B83A1 -:10D0F000C3092FBDFBAD2AC42D59A99F44787444A0 -:10D10000586276A21FBAD2C070FF8931EB0BC427D8 -:10D110004F98C84F9D56DD9FF67B8A7F3F3EBF3BB1 -:10D12000B42B5E6AA0F83FFCD17D0CC7CA5146AC57 -:10D130009FB1442E9DB753F9DE4F6F7E9C4EFB3A54 -:10D14000229DDBD9ED8B380E92CCBE760EA0FB0A69 -:10D1500047E5FC2A6FF773A4F583797CDD9A44F9DF -:10D160005298450A9B807EDB4DB601FDA2FDEDDEA7 -:10D17000FB49A4FDAA775B8B63906E43FA717ED95D -:10D18000ED2B8E2956D9F592337AC2F37B46E961AD -:10D19000D41BEF75E92D38496EEB2231CE3A43F6B8 -:10D1A0009B814F16BED9011F26F513A9DF63A68503 -:10D1B00078169635FE263A17C7A5BC97D5E2A8C1C2 -:10D1C0007C31865ED220B57F7C6BF2883C9C879F49 -:10D1D000BFFE48FA9CFC6380C7BDFCE21A27DABC9C -:10D1E0003DE0D7E338A26CF958AF9CC763B175290D -:10D1F000EAB882DF0F5D2CCB3F6F77080F07C3F7CC -:10D200000F6D0DA2735F879C7F0F55FBC78A7CCC87 -:10D210000CFBD5E1665A17874B421CF08DBEEAF82D -:10D22000A3F05EC9F306D29B25CF472FF2623DD013 -:10D2300013B70C03BFBBA51F3F0FD0B97CD407C8E1 -:10D2400047FD55E5A3F4E5370B378574241F5531A9 -:10D25000C847F9CF1BE87C755197CA4918472CD2AB -:10D26000DDCC6A607C239EFF450CEEB3CC7CDE44B3 -:10D2700074F584861EE7F3EA138FF36AB33FFDB8B3 -:10D28000BEF254E790BD1075E09D81FE16971968B7 -:10D290003D22C61849EF8961565EDF85C52F06BB62 -:10D2A000BC34345B42FA6E4679C8A27A09F92C2F55 -:10D2B0007CF21D78AEE5F0C244DA073B99C9F7C1AC -:10D2C000663DFA6218FA9F871EE6E7BB6763BE1DDC -:10D2D0005CE7FE9BFB5E1572BE9DFFAB7DAF67FA00 -:10D2E00005EE7BF173A07B16666472BC30C984784E -:10D2F0008A1B4878B9DDCCA420C08B18C15250FFDE -:10D3000028FB5EE22FB97E127502ADD38F55392905 -:10D310007F415E98993FFF25BFB7273E3D9ED13E96 -:10D32000585425ED8345C8789D26303BCACFD1207F -:10D330006BDCBC34E4BF20A2E7CC17667DF16C2621 -:10D34000D26D6C94269E80FC17ED7FFF44F52D3442 -:10D35000BE1302B3A0BDCFFB43DF91489F46D1F17E -:10D36000F4BDA4378369FF9C593C4F0C01786635A6 -:10D37000ACB319F24DF7B884347F3F33173F968230 -:10D38000F4CEFB43901BCFDFCC5812B416CF619480 -:10D3900035F07BDED3567C47E77159BCBE12E39C67 -:10D3A0005F2F09E2E7D4EB8710FF4CD3F1732E2CEB -:10D3B000CE48F1A5B21019EE954DB0EAFE9211E9F2 -:10D3C000A1DCBFF918F50A7CFFB4820FF41B51EF02 -:10D3D0002AE7E859A584F25FA4133A3CE7F5553FE4 -:10D3E000EE9F4E8BB3D279D1F2DF9AAC8BE3399DAD -:10D3F00045559EB9729D377F2DF6AB63D2760BAE45 -:10D400001F9A4B70BDCDEAFB521E820A3DD31B23EF -:10D41000E0B9C4F599329E0A69FCEDC44F7A7650A2 -:10D420001F81786CFEA219F96371A8847191F2AE24 -:10D430005607F51B6AB6703B217F17C79E887CE0B4 -:10D440003346201F7C21E84C3CFF804D07F5E71850 -:10D45000AF6FFBCE921569346FB34537A23BF2DD57 -:10D46000F9FCB5F0DEED4C4AE88EF7C456444E9A0E -:10D470008CF5AF89A49740987E9B8DFEDE6B62068B -:10D48000AE53A7ADD843F39BF3C640BC41C0A6BD85 -:10D49000FE19D9A739327F79E4736BC500BF01A5A6 -:10D4A000FE266E271C22ABAC2358D0EC572AF5E59C -:10D4B0002B0C448FF2A526A27379F55FA9DFF2D079 -:10D4C000E618A447F97603E5EF08BD49A2F6C5D5ED -:10D4D000BD730FC2B88B0DE116011E9539C71A1125 -:10D4E0002EAB150856BE57BEE2F3185D1AEF0F4B70 -:10D4F000938EEFB3FAFB8D8E437B767A6B64DC34CC -:10D5000015DD4F2FD91186FBCE4783DCC978CED7E6 -:10D510003B2FC88AE70A9578DAE925C9FC3E90A531 -:10D520003914F7AB673C9C188176EEB0C56DC4FA30 -:10D53000C375F178648ED92C965C846DFA9B093E94 -:10D540002D9F23A13FCC1F2870BE29DBBAC79800AE -:10D55000DF1B24E3E7CC6B47F70E457C001F5950D7 -:10D56000FFC435A7A01D2ED735A7F444FABC2290DE -:10D57000BF00EB531BE61F998B7C3508F4A1CC57F9 -:10D5800073EB772C40F92C7FEB643EE2F5CC5866C8 -:10D59000C4F858B93C7F583F7EA087F6E5DB36E4F7 -:10D5A00033FEFE07C8778ABD07788901E026238706 -:10D5B000336EE2FCD364F450DEBBA6498CD1FE99F5 -:10D5C0009E8DC47640797E0F4014E5FB6995B113BA -:10D5D00078DE3DA7FAFCDC5CAC4FF3D777C6378525 -:10D5E000325F14579BC82E15CA78F1ACD81E867CC2 -:10D5F00071E6B53D7B87A25C6C132C4C2D0F8A1C09 -:10D60000C679793DE0EF49C4DFB6F3F998876276D1 -:10D610006BA8843454F0A4C89B82970AC6F1A0E09A -:10D62000A5422FE349AEBF5BC64319F3527FAC75E9 -:10D6300080B419FB7FEB07DA6F3B338D09FC9C301C -:10D64000CF8BA6CCCF11A1DDDF5F26CF6FFA4DDCEB -:10D650006E9659B85D2C8B6252F540E2339B51C9EE -:10D660002F094DCEBC714433FEE7653968A337CE30 -:10D6700003C6E9D1F17B8281FAEB51197F47AAA752 -:10D68000B851AFCC76423F99280F96A9B8CFC95E62 -:10D690001765FD0D32A9FA6EDEAB47880F41774959 -:10D6A00011B066316C8171A0FFD5DA9BE28579DD1E -:10D6B0003C34EFCD632C4C07FAE488E009DD89F6B1 -:10D6C000E05191F494324E9BF363A287AD8ECB2749 -:10D6D000F20BC60715390D1CEF3279BC269DD58398 -:10D6E000E782D96281EEAF898BCF841EE4F68E2269 -:10D6F00089FEFE6FF900F7236D17C324816AAC7AA7 -:10D700006C37F7625802DAEF2372DCE1C8D21D6190 -:10D71000C52A3AACEBEC3BCB864848FFBC90838FE4 -:10D72000A11C3D759320F3BF75E442D40797C22432 -:10D730003C2FD514E14C433FAA49C796B308CE8786 -:10D74000FA183FFE405E087F502F3D65F1CBA532B1 -:10D750006EA09B1BE906ED6D5C8EACB48F31378AF1 -:10D76000EF8B5E5B9E323CA49FAA056963A6BF9DBA -:10D77000722FEF7179DE2423317E7B80FC89F6CE17 -:10D7800024E7310ACC837A7BAFAE7188BF8A10B3AD -:10D790000E977081F581B07F3D55A9473F9F2D8938 -:10D7A000DDABBE977634C849F7CFBCDD45B611E88E -:10D7B000513DEF237E9EB781DFDB52EC34FCAD6A36 -:10D7C000E33F78AF34F37C3EEAD73FE698E85E5318 -:10D7D0004C7F7EDEE514AB330E47FBFF6D737E9806 -:10D7E000E45F9FDC72D12D8693BF10AF591F94B5B3 -:10D7F0007E40F25CCE9AE93EF6B4159F8D1D82F410 -:10D800007ED940E70766D4C6939D3BB9697A06CEB8 -:10D8100077DAD26482676D7E90C32B78FEC3694B42 -:10D82000B35E42FFEB68902D1FF9D9BB5AB0E0FA06 -:10D830006AD8E6AC45F741FDB0D03E5D71DC873675 -:10D840001D1D8B743FB45024FD64DBF4D424ACB7AD -:10D85000ED14F1C618AC672C8B30AF29D3875BD0A1 -:10D860002F50CE17D618B8BE3D2FEB87936D25E706 -:10D87000D3BC9A9A14F497BC1BC01EE1BEB7D15B0F -:10D8800042E7BB058B7523F0CBB782936066B1246A -:10D8900054E7E07D96F5941FE75CB2C9827EF2FD05 -:10D8A000266645BFF6FEF77A0FC2A5824D5E578DFC -:10D8B0008DE4DF55F0A57CDF2BF33D135795D0BEEB -:10D8C00043A49480FAAD493E377E541EEFC9252FFC -:10D8D0004F42BFE0E496E408A6C2FB49394FD32C7F -:10D8E000D083DB3A58EFFD7893127770D1774AE511 -:10D8F00078E03E436D2FCCFB1978BFEBC486203314 -:10D90000E6E70DBCE775C2C0ED47BBFB5E3BB570FB -:10D91000609EDBC0F12865BBFBFFFD433AF4E315D5 -:10D92000390B7CBFDD7DF2A4EB3B5F8579C9F0BE8E -:10D9300077D34D8CC63932F8C737515F97D49A2CBC -:10D9400078FFFE589044EB2167169336A39D314B28 -:10D95000E1B89E3FB62F83CEFF957CC548AE4AEA1C -:10D960004517A62AFE6075DFDFE502FC60BDC18AAF -:10D97000EF9F5CB37A1217336D9E856CC6E57326F4 -:10D98000AC93DC16FFBA2870BD347BED1B748FF0AE -:10D99000E75A2F2971A4407CDFDA5FCE4FDAC9FD48 -:10D9A000B9F7806DB207B5C7776B9583D64567AB7E -:10D9B0004AA9CCA9DB90D753C2FB14477E3B0CE5A8 -:10D9C00026349CE221AD5595B489777667C665BC4F -:10D9D0001FFA6E48B805F5C5D9AA85F2E502994F38 -:10D9E00064BEBCA5BE51ECC9A87DC33068BF3B2452 -:10D9F0009CEEBA24D9B2C3D1CE2B740DBCDFACCC13 -:10DA0000EFD4A39CAECA784F6D991E867E67E3BAA9 -:10DA1000C8869C283C9E1B6E417F7BA67CFEE5F859 -:10DA20005AAE6FBE3587BF3406CFCFAC9F1883EB9D -:10DA3000BA070D5EA315FAB5EE1A1F8671BC6FF416 -:10DA40009E30BC6FFC0DB477A39DD0BB44D4734310 -:10DA50000B18EDE30D75EB99144F5BE6C41739AD68 -:10DA60007A17D2F5B4FBE29E2BC847AD3A8A77010C -:10DA700066F65C81F6D6D03E14277CF06DBEDE647F -:10DA80003F76E1F501F7169FE9CFFD9613EBDF1C1A -:10DA900047EBF34D060B8EF3ECA6CF63F01CCE6C78 -:10DAA000C6CFD77FBB45A079CC067E0C8A47FDC088 -:10DAB000E3A0B341EF9B85F67C98B7A59AF8703642 -:10DAC000F021E6F59E6DE3F99867633E6689B5CB74 -:10DAD000FFD155E6BB39C077787FF7E7CEFBF13B46 -:10DAE000850F03E45EA1BB821785FE7E3E649AFC2F -:10DAF0008211750387F7647E7DA0DCEF607ACF2A00 -:10DB0000BCA7B1400CADC57C55FBF5957FA0BC2DE5 -:10DB10004E3DDB4CF69CA562BEBC05E24D568C0723 -:10DB2000D6182BDBF2BA607D605E173184BF3F1ED2 -:10DB3000F313C37CBBA6C5D3F72658ACA310DD8670 -:10DB4000280FC505C43C9D8DEEE5D59868DD1CA861 -:10DB500087EA64FADE95C6F5D0FFF4E7E7B5957B72 -:10DB60007F4A099AB137F2FBF8E0884B1234D9D5D5 -:10DB7000FFD0DDB84F3B7E58C42F12E1FB7B5F3DE9 -:10DB8000CAE18C88ED090037F5FFFA6EBCC731FE9B -:10DB9000E6882C03FA01D5C7EE1E09F0F1FEB67730 -:10DBA000FBABBEA3F40BCF77E3F37FC439DEEF4FBB -:10DBB000CFBD2548EF734218CFF796E4A538A8F2F9 -:10DBC000DE01811D7E57F0C31E038BC3BC06FF839D -:10DBD000BA3BBAF3B27B9AED63FE7DED73A4D077C6 -:10DBE000B8CE94F77F7466C988FE9FDD6AB4F2FCF4 -:10DBF0008ACC6E06BFEA2E997F8BCD974792FDADFA -:10DC0000645613263059AEBD8FD5CF7F6F6FFD8D13 -:10DC1000DCDB634E9E87AF46CEC3D7D93D4AA1E138 -:10DC2000A31FD0BF0CBC3F95F149F35BC827E3802D -:10DC3000AFD05E643673F82E994FCA778CA57CCF2F -:10DC4000F30F185CE827CC92FDB12447172641BB9F -:10DC50004B20BFA8175AC7B953507F9CA862B5493B -:10DC6000A0B00ACC8E4BFD014F4DF11F515EB41395 -:10DC7000EB6BC2D0EF3903EB8931D04599ECDFB3C0 -:10DC8000CBA2FB36F483E3FB6D5CA9E2B79F643E55 -:10DC90006B8D77C7E1FAC6196FE2F91A2FEFA13C35 -:10DCA000CF0509A3B3308EB4BF6A273B9AEC7FAF90 -:10DCB000B3FB284375230C69AA7DC971FA8ECF691D -:10DCC0009C51F2696EE2F6DBA4AFA53C5A40CACA89 -:10DCD0006A82ED14578A451EC5F8B0F410C1CB66B0 -:10DCE000310BDD63F5EFD3D17D5085FE36EB959199 -:10DCF000D86E1CD01FF58DCEECD5236C2FE0E753EA -:10DD0000FA01E1509F28F41F252EFA2DD261BE7C26 -:10DD10008F6BBE50C9618399CEB906EA478C6B16EA -:10DD200091DE74EECD417F0CF424E55590F5A2040C -:10DD3000FFA3BC48D91B8CD4ECDA7991F6E6FC073A -:10DD4000FA31234D9B475CA193E25F754627454F0F -:10DD500002BD86A5455F3FBD943C65F39FE7F1CECC -:10DD6000F9CF4F8F1D44780389437F28ED4F44C47A -:10DD700099F21CD8FA48E263C308BB84FA76ECCE69 -:10DD80009E4C8247B3760A74BE75CCCE4882C37C63 -:10DD9000DD795E25D9DE8FFD63B711189F3CF9D27E -:10DDA000DF1FC6BCF7637EC3287EAC0B0EA17C13BD -:10DDB000E208398F8318F221DE63BD20F1DFA1B0C4 -:10DDC000B376F9037444FF267E4E1656794E4E27DD -:10DDD0007EEF6FFE3E6EE7E70FE7FB8217F00D6800 -:10DDE0007FA150A43C4DCF04A793FF5673B781EE9B -:10DDF0004730A7ED2FB8AE9A2CF383291616962A32 -:10DE00007A054920AF2AFA3C1EF4DB0F1DD0BF076C -:10DE1000D65D420FC682532334F57A67D037983FD8 -:10DE2000D6102B5A5C30FE506B0F4D7F76B1CC80F4 -:10DE3000F114E6E07EB4C25F4C6CD5D3BDF95C9EB4 -:10DE4000BFE2EEC9DA7B9286DCF323C9DEE46AFD29 -:10DE50006FFB35F236FD4AE1A77EAC9F9C979EECA6 -:10DE6000FF85167E3F4462F6B58ABCA0FE07EFE64A -:10DE700019C4CFA42603734984BFD7B0FE82D364EC -:10DE8000C178409B1F9E04EF45A19134139F635EB0 -:10DE900050F53C312FA81A2F9817540D635E50751A -:10DEA0007BCC0BAAAEC7BCA0EA7ACC0BAA86312FDA -:10DEB000A8BA3DE60555C3981754DD1EF382AA6142 -:10DEC000CC0BAA6E8F7941D5F59817545D8F7941A7 -:10DED000D530E60555B7C7BCA0EA7ACC0BAAAEC7C9 -:10DEE000BCA06A18F382AADB635E50753DE6055557 -:10DEF000D7635E50358C7941D5ED312FA81AC6BC59 -:10DF0000A0EAF69817540D635E50757BCC0BAAAE51 -:10DF1000C73CA0EA7ACCFBA98631EFA7BA7D335B78 -:10DF2000928C766C77BCE37FD268DFE95BE2E783B3 -:10DF3000F7033FA31C364DB450FEC21B5C277E9EE8 -:10DF400026EFF7C8FC7B89854CC573E89DBDAFF013 -:10DF5000E7EBB2BF01F66039F12F0BAD457FEE71F3 -:10DF6000BD8DEE4339EBF8FD44A6E77EC00251F6C5 -:10DF70007FE4BC100B4489FC00CC1DAC578DA7ABD3 -:10DF8000CDCCF42A3C4416583470B43D56D3BEDB95 -:10DF9000644953DFDD91AAA9EF596AD5C0BD2BB3FF -:10DFA00035EDFB2CB469E0786781A67DE272BB0693 -:10DFB0004EAE9DAC69DF77AD4353DFCF55AAA9EFD5 -:10DFC000BFA552030FA85BA8697FF34EA7A67EA04A -:10DFD0007BB9A63EA3A956036735AFD5B41F72D04F -:10DFE000A5A9CFF16CD1D40FFBB64E03DFE2DDA9BA -:10DFF000697F9BCFAD8187B37D9AF679E6031A7866 -:10E0000094E54B4DFBDB638F68EA474B2735F5659D -:10E01000A7B97FCF6A607D8071CA109E5F63AE9B97 -:10E02000D5A17F7167EA794D7B4314AC17807FCA15 -:10E03000411FA2DFF77D9738CAC7CC2AC3AC78EF5F -:10E04000DB39A2F20FEA7BDE63AD3F68BEFF4C70A6 -:10E05000983B88D61766B2B7230624907D6CCB27F1 -:10E06000A2DC67675E161B4521212FFA4702FEC21C -:10E0700012C061369E171AFC20F29F2CE017A1BF38 -:10E08000D9B62ED2C5C7A35D0EF6FBC5BDAEA8F2AC -:10E09000BC5CCB2FA66F67519EDE5103301E5EF72E -:10E0A000463EAEB36631E732DC4F54F22CEE0FD26F -:10E0B000C6B79472B419F0ABFADEBEA0DA5E83AED6 -:10E0C00022EFA3CDADD4BEAD5F39FE25C064E7AB72 -:10E0D000FAFF2DACFFF420D7B555207FE00F3D5956 -:10E0E0006521784D552CC14F574954AEAD4AA5F224 -:10E0F000B92A2BD5AFAFCA26F8852A1BC1AEAA0212 -:10E100002A3756D9E9F9A6AAC904BF54E5A0724B2B -:10E11000552995AF545552FDD6AA8504BF5EE5A496 -:10E12000B2AE6A393DDF56554B707DD55A82DFAAB3 -:10E130007251B9B36A0B95EF54D5517D03F86F084E -:10E14000EFAE7213ECAE6A22F8FDAA66823FA83ADF -:10E1500048F0DE2A0F954D55DF52F9E72A2FD57F7B -:10E1600052E523B855DE87583440D0DCC753603DB4 -:10E170003BC6FD3DCC5B817918B20D67AF961F376A -:10E18000900EA7E4FE0D23C05DC238728F948D35CA -:10E19000AA75C5F201DC5FACD6F1FC2DD53D98A582 -:10E1A00086FC761BE3E7B4B8DF3E13FF25C1D3A896 -:10E1B000AABDB8DE28A9E479CAB3901F53891F3FCE -:10E1C000B9A1759ABC2ED891687F6600AE43425CB7 -:10E1D0005FC467FAEFD11F4C743C877C7AA1F2C10F -:10E1E000BDD87AA6C59A821F196B724763FE2FEFBE -:10E1F0003ED1BA51EAFC7B15F2FD874EEB779FECDE -:10E2000085F6AAE02791E2FAFB0DA193719F7FABFF -:10E210008C8FAD03749AB228C9FE2A8EE74472E54A -:10E220004B0F09FEFBFB77E1121FE47B3C93280FA9 -:10E23000CE4466FB105DF0BBC11144F81EE6A4B2EB -:10E2400035C1518FEFDF0B0B10841D434D711DCD78 -:10E2500027703CBBE5F1EC96C7A1940B92ECBB1088 -:10E260006FC7926D9AF16C95F3338C63DE17705C17 -:10E27000FFDC75FEB890E8C7775B3C8555529E8CF5 -:10E2800022C6E3298F635E8C287F5E0C65FD50B447 -:10E290008FFFCE11FDA1FD5C104FEBDBC0BC19CB95 -:10E2A00086EFE17930603D86F77F8BE6FD82F42FC3 -:10E2B000FE1E14DEDB5DD0E530E599F1CC025EEDAB -:10E2C00049793578DE1B0720B027E5D5A07AE1260D -:10E2D000F87F771C9739554FE3EB42F94E9E09DEE4 -:10E2E0004F796930A660EA8A798F79BC66BFFD3CB8 -:10E2F000F7BBA3BC743F7547A2E3EB013C4EFE7431 -:10E3000006C689909FF03B16179D5F037E320A80F8 -:10E31000A29951C04F1DF81B0ADFCC95EFE128CF21 -:10E32000811F5B11DF67DF1E928A7C53B13B47423E -:10E330007CD7E8F87D3AE79FE57D41F9F710C4F016 -:10E34000B40D74EF009D71A46F4E28DD3B6814D9A5 -:10E35000C2373AD0AFA1E95CDEF7C7F27C92350153 -:10E36000FB93C6744E77633AE787B1EFEFA33C6443 -:10E37000739B78BC9A657AD2EC1D9CCBAA58F89B0B -:10E38000A79354F3A8D879849FE7629E34F539AEF9 -:10E3900064F9FB0AFF89C650C78610F5F878FC01BE -:10E3A000E420243D8BE4E038DEEB1E6792C2EF11DF -:10E3B000E8F7C1CE627E19C71F2C741E503917387A -:10E3C00083D9A99C099613F9DEEE5C4DF7E767B394 -:10E3D0003A7A3E377B7A1CC215CC3B3216D747CBF4 -:10E3E000AB3FC470D0C4DAD5A3BAC3BC26B8A67DEF -:10E3F00088E5F84DC271A74472D43B1DF7B785CAB2 -:10E40000A53DE07BF76D1DBE14E3D6E3444E07F651 -:10E4100031A74311F0B318D17E7E203749E95C6EF5 -:10E4200068FC8ADC142D66363C7FA0DC0F6993A360 -:10E43000EC39FFE8897B38E04F22BF56EC3645D0F7 -:10E44000FA14F3CCA0BE92E567A99EFB974E4C6DE3 -:10E450004AFA93FB1B069B9CCF8B717F648E93AF14 -:10E46000C74E19B8BC9D3A14EA42FE5ED0E5F538B5 -:10E47000920F83221F3F4DA5F33D0CFC8F5BDBFB0E -:10E480001F6D79667A31F237589C237650A2DF9E51 -:10E490009FD2B90687F1BCFCA3105F7B63F9FA79C0 -:10E4A0000EE6A1C1FAAE7609E3A5A7A2CD745F2856 -:10E4B00030CF1963569A9F419E1F8C6C32FAD32637 -:10E4C00039AE561330DFEF83E268BED27056C7D044 -:10E4D000B1D05B9CD351EE1FE2766241975F3BF077 -:10E4E000FB9E20661186D17C281EEBD4317B0D8FDC -:10E4F000CFD2FC16EACD163C97B36C9AE811C84E01 -:10E50000C038319E1765B6F2BCAA4AFEEDC0F1DAFA -:10E51000B4E333C7319C9F4D64DEA0617CBC383EC0 -:10E5200027D083E803F034D5F8A05F17E5FF0996FC -:10E530002CE88735FDF8108F2F5773FF11C6BF8564 -:10E54000E8D31DC6DFF3DAE337208BC2F817A4C780 -:10E5500013DFD5E00EA28876B62BE9DF0941F64736 -:10E56000900F931C2B7BCDC7B8468EC98AF13B76A2 -:10E57000B9A617EAA91026515EAD71369E570BBA9F -:10E580005B82FC301EF3D659C80F6855E761630102 -:10E59000F135200BC55727607C8DDF25FA00E3B3EA -:10E5A00013E5F3CDFDD8570AFE28BE26E2F8285E13 -:10E5B000EDA0719A90B25006619C87E8E0A27904C0 -:10E5C00033B71CCF6E26FF60B5CC87430F32B21332 -:10E5D0004343B89DD87D84B9F0DC57E30F93F242F2 -:10E5E000A17EF7793DE929C013E5037CE7736E57F7 -:10E5F000769F3CDE13F703AA7FD8DB13FDC4DD064C -:10E60000875881EFE7982C8BADFEB846C3C1101E2A -:10E61000D791E37CB7C8F36C60CD3515509FDD5DB5 -:10E62000641807CC6A7107A33C638EDA8EF61B73FD -:10E630002F1A35BF6B61B068E16CA682E3F1E85137 -:10E64000C0EF7FDEE03A775BBAF6F729DB7EF7B3FF -:10E6500035EABA7EF733539EC7AA74FBBBE964D789 -:10E66000268832DE05C417E88146C4F773E546FA0A -:10E670005D83C67263778F6A7CB5B3FE49F87DEF20 -:10E68000C77F92DD7A2F4BC98F531784CF8DCE5021 -:10E690008ABB3D77594771B775A55FD3FAA4369BFE -:10E6A000D1EF88D55E2E263FE05201C34D24567D22 -:10E6B000EBFF9622FCBB5BCCF4BDC0F1EF027FDE2A -:10E6C0000D847A17FC79775FC6DE067F1E61BCCFAA -:10E6D0008AE576F0E7B174813F8FE50BE0CF633BCD -:10E6E000F4E7B17C0EFC792CD7823F8FE5D3E0CFE5 -:10E6F00063BB35E0CF63F924F8F3F81CC69547E314 -:10E700003AC8E8DEFEE2E0B015E86748CE50F237DE -:10E710003EB50DEAE251D9D95B2FEA3474CE6DD5FE -:10E72000FEBECDD063119ADF3FC9FEAA87A67E70D8 -:10E730004B82A63EDEA9FD7D9B3E0BAFFEFB363D28 -:10E740004B4704FC3ECE1D01BF9FA3FD7D9B68FB94 -:10E750007D01BFBFA3FD7D9BDFC9F932153AA648F5 -:10E76000AF05215FAC2B9D10CE3AF02F94F2499962 -:10E770001E0AFCD4A3E2E48EE2C85137737BFFFE8D -:10E7800021D3BE4D80CFF758B81DE3EEEFD974A466 -:10E79000979E5B1B4271589367E849E49FF76C4C66 -:10E7A00042FE79EEF2882E389EE140467CDEB3943C -:10E7B000DBA73E374BC4CF3D4BBD22DE17BDEDB2CC -:10E7C000D78AFCF85418FF9D2DE8D7B518FA7B7F3F -:10E7D000ECE07E18C7792E04F819E5CDED0D4E0258 -:10E7E00038FC8A8EA17E045B4979FE9DCF86C8E7FE -:10E7F00051AFD07DB870D4E9A097DE2BE5DF4FF1A3 -:10E800005C0E56FB43BFFBE95A7861C4579DD6DFC7 -:10E81000313B01C7EBC73BA84628535829FB2DE2E3 -:10E82000A38CCB4F6DA98EE4E912C813E207664DA5 -:10E830007461CD5A797F12E5434D87B2841538CF84 -:10E84000E7D6E869B76C94B875DFCDF0CABA16910F -:10E85000B6D9258B37B823FF4E19F73A1B9F5F8433 -:10E8600095E9D0CE45003E5DB49F6DAD56FF9ED577 -:10E87000B3B27CFE5E96CF67647EC0F536C2A3C499 -:10E88000F5A353701CD95C5F033D05BC8F75690609 -:10E89000A3DF11FD7D6142978EF27CAF91C7F182BB -:10E8A0003CAFF5D82FC93397FB5162D170EC679D0F -:10E8B0009D911E5F67FBBA1AE376970A79BF7D16B2 -:10E8C0007904C46FAF4AAF80FDF77ED84DA54B1ECB -:10E8D000678FD266AA57FA93AC2ECEEF655FB32648 -:10E8E000982F1EB215C95EB4527ED4757A3D433B53 -:10E8F0008CFA0CE14B663D9E91603D661D63789FEE -:10E90000B936444FFB14EBE69E2278B585C361CE41 -:10E91000CA343C7FF1B63C9F30A7936057C07C520D -:10E92000A407C2D5BFE71A58EE90F1BC5DC6C7DB9D -:10E930000687EE028C63C85F45FAFD8ECEDE53EC8F -:10E940006CF657BA00FDD34523FFF81B7BB25DF888 -:10E95000F5CDB87E76DAC92E28EBB6ED63B87D5DCD -:10E960001D3CF5635CF717CA7CF44CF0B80FB1FEA0 -:10E97000B3D1FC77701A47DFDE5BAD2777CAE3DEE1 -:10E9800021E33DC7693BF430B41F6F37E1C8C08C49 -:10E99000D97AFF02FAB38F11AD6EA05B4B96220FAE -:10E9A000F66094BBF7C74C6707B1FF02BEEFB4BD7A -:10E9B00060223D9798FDCE01F0DE5F9AF5E4CFC06E -:10E9C000F3ABCAE37E19FF9FC8E3F8B38CFF269927 -:10E9D0004FF7A21DE98B7196542ADF97ED885BB63D -:10E9E00023BB653BD220DB91B7D18EF4C5794DA610 -:10E9F00072BB6C4732473F457ED225CC8B2BA01D86 -:10EA000099CB96C138F361FC6207F6EDAE6C31E04C -:10EA100077B2823574BA333552038F967A06FC4E3C -:10EA20005762C0EF78F5D7D4E79933027E076C9828 -:10EA3000A6FD6DBE1101BF23A6B523438F4DD0FAAD -:10EA4000335FDDA7A91FDC52ACA977E23F60BE5956 -:10EA5000C718CF2F1B9CFB04F24BD671BDF2FBCC29 -:10EA6000B48FA6F85B81FE4F166BDBC7D3D13E9EF9 -:10EA7000934978AE93B6961334F5E43FB518EC3D60 -:10EA8000F1FC61F578E03B3C87D8523286D13E3CC0 -:10EA9000F02FC85396FDC457946F542CCA203FE9F9 -:10EAA000A25EB39F9613B02F661FA9DD37CBBAC6FF -:10EAB000BED9B19B3BF91DF6D688EBF2C7409E4408 -:10EAC0001CF733C153F720DEDEFE92DBA9C62F1FF1 -:10EAD000E989CF3FC0A6D0CF8E6F1E21BF6B479B69 -:10EAE0007C3882D5FED6760FB7176FB524ECC47587 -:10EAF0004666B4407A30F3C8FC29C48F2D3AFA7DBB -:10EB0000CE94828A60C4CBF6838B83B5F7A754FA80 -:10EB10008108A5D20F22B232FFBDBEFF07E9D10F97 -:10EB200034008000000000001F8B0800000000007F -:10EB3000000BED7D0B7C14D5B9F8999D7D25BB812B -:10EB40000D09B08104260960AA3C36EF4D48C22465 -:10EB5000048C1AC8427804C1304978A48A9AAAB5AC -:10EB6000D86233211062A4121F55B08A2BADDAF699 -:10EB7000F6B65425A0A22CCFAA5058306844D4052C -:10EB800014ADA5F7A284D6F6CFFFE73DDF77CE24FC -:10EB90003BC32640DB7B5B7B6FF8E9E4CC3973E653 -:10EBA0009CEFFD3A134208F94AA4FF8B1F4E0269FD -:10EBB000047FBE4A81FFA7F4B6A19F5C4D02F6F028 -:10EBC0007686A19D6F185F62685F6F183FD3D0BED5 -:10EBD000D130BE56D7BF2D3473A0E2A4BFC3CFA49B -:10EBE0008BAF5B1A09095CD53B2EDBEC133D632F21 -:10EBF0001E97D369EA9D97FEB7F3FD25A6F3F1842E -:10EC000074748A7E5B32BD1E5F42D42C3A4FA7C912 -:10EC10004F04BC9A08EDDFD6C5DA36A23AC6D3FE59 -:10EC20002D9D664F9B44C80EFEDE31BE85037D31AF -:10EC3000844C329F8DF85EF982A9777F04E69B3978 -:10EC4000904418A75D77F179038D76BC6E6F74914F -:10EC500080ADB75F8CC9EEF4D17574844C1E7A9B7D -:10EC6000AEBF248ED07DEF762E76C0BC74BD840CF2 -:10EC700023E4DACD23AA9A461122D1759BE83EB649 -:10EC8000844CA48DEE33EB287B7F96458E734580B4 -:10EC90002B21263DFC2F9A8FFE009C9CA2BF8DC28B -:10ECA00065D7FB73E2C6D3F95FEA1409ACC7AAD4EF -:10ECB0003B7CE368BB8BAD4B9B77B25DD4C1A19825 -:10ECC0003874F8283C3B48D7CE3A41D7499FB74AD9 -:10ECD000157100DF4BAD939068031D0D32B487E9C9 -:10ECE000C68F9128DEC6F58D8797381EB6001EE8C0 -:10ECF000C65E8AF254F922C06BCB07D67A7FD8FD64 -:10ED0000660F054A365C4D78CD3A61F204287CCE18 -:10ED1000779A3C00BC3C57BBD810619EFC8FF4F442 -:10ED200099D319AD83171117F4CB07CB8F37ADD912 -:10ED30001336FEFB9E98F8D3D7D05F72492EEEFFB4 -:10ED400012CFFFA9515DB3C742E99892EC663A8EA3 -:10ED5000B82A0949E87B3C212B717F1A1C892B8E2C -:10ED60006EEE72F0D48ECF5D84AF3E9EEF9D472550 -:10ED700064308527052F8C5B3BDEF7B887B6496882 -:10ED80008608EF7FD0719B18A2EB7ECC71DB6EA062 -:10ED9000CF037FB64AC0D73BFFDC9108F7F7A76FD8 -:10EDA0004D04BADF4FDF1D84FD9929D668DBAADE4A -:10EDB000E400FA7AB3F308F28F4482374CC882B683 -:10EDC000C9D34687BD9A563990F403B7D7399DEC1D -:10EDD000E3FCBA87F3EBAE4637E76309AFAF35A67E -:10EDE000E1FDED8D1E6CBFDCE8C5F6B64619DB1DF6 -:10EDF0008D65783DDCE8C3FB871AABB0FDDB46854B -:10EE0000D161DA9DA5208FCE275200D07DAD744C04 -:10EE10003747C2E775929ECFAE75EBF96C0A8573E2 -:10EE2000787BB27DB8812F5375FD93BEBC5AD75FF6 -:10EE3000783643D79EF869BE6E7C5EA844D7CEED87 -:10EE4000BA5E377E6669A5AEDF57305FBF3ED189B7 -:10EE5000F265874B40B93C3DAB4ED7BF037E0139CD -:10EE60006C17FC6A32C0A5B25F791A00FCD8008E1C -:10EE70008C8F7FC3F1B317F06303BC30F8BF0AF087 -:10EE8000A7ED5700DEF49ADDADEC1E28811CA8C763 -:10EE9000B6356DA0D343E1FFAA5344F9BFB5B10124 -:10EEA0009FDB7FBEB65BC4F53A24C0CB0EBE9EFD91 -:10EEB00016A55B8C87B620AD142E5E5776979EDF25 -:10EEC000C7942D44B9B9A3F3A403E8EDB52F2F4F90 -:10EED000EF69E37E432A27037D1475525D957C69B3 -:10EEE000FDA7E9AD4BCDAF8D03BD1A495F18E7BD56 -:10EEF000FE4B4524741FAF76A90FC7403BF04D5120 -:10EF0000A2ED9C2E6532E06D4F9AE012051C375938 -:10EF100086755F387203DC7F2D6436C1BA0F5C18CA -:10EF200044601F3BA8DEB5D1716F92D4B51328BCE5 -:10EF3000035D5FEC07BE549D16CF6872F13A52D361 -:10EF400045942B5BC6DA4CC204D0776612180B7C52 -:10EF5000AE203C3BBE4C71C2754B9AC8EF0791DFA7 -:10EF6000C7A7BBF0B9572F64C443DB4482280F0204 -:10EF7000DDA6327F84FD8E87F750B9937DE143870C -:10EF80008B8EDFD75DEB00F9F25A179B3F7B45C8AC -:10EF90000170DAFFE52627DCDF919689F3EE1CB7D6 -:10EFA00014ED8B1DDD26A4EB1D63D73833B2709FA3 -:10EFB0001E80DD8EEEDAB5E940D75D666C4B4421EC -:10EFC00041A0B734A667B774D79223B4FFBC47F407 -:10EFD000039D6593F67D03E0FE90355692C2E06F87 -:10EFE0001E42C8ADEC6132D9A59703255D7A7D62DA -:10EFF0000D2D983503EC08A067DA9E668ED3F5EFE9 -:10F000007F7765FC4CC00B8537DC7BADFB8EFDE369 -:10F0100040FEF859FB0FC77F621D48AF4DE3D60C89 -:10F02000BF0DC66D71786C12F428E40BDACEED36A4 -:10F03000FBC1DEC876EAD7B1FF1B9508F72DDDCC02 -:10F04000BE3A9FC6F6B3C353471EA0CFBDCAEDAFAD -:10F05000C9274695C3FB0E50FB09EC8A573C2FC4C9 -:10F0600065823CF38A3A7AA3F0417A39DF49701E0F -:10F07000FA33601A8543011B42F9D0D77C3BEDDFA0 -:10F080009F6773ADA4A8DE7161D7EE3B683B374143 -:10F090002422DDC937FDFAF5E5FDD4A16BDFFAA91D -:10F0A000DE2EB11181EB7327CA81BEF867E259AB3E -:10F0B000EEB969669B6EDE5C12D68FF8B4F6F62761 -:10F0C0005FDA3ED9CAE59A669F6CB528F37D40D7D2 -:10F0D000C15997D0A32BB9FE6D4079B18D104F5B0C -:10F0E0003A95EBDF1065E0C3F3C7ED08C7DCC766F0 -:10F0F0004C24A8AF9589C00F488C61F680F7F8259D -:10F10000EC15974AE273F8AB085CCDA743747C2BEF -:10F1100055F35F810EE7FADC386F5F7AFF41C70075 -:10F1200094FB05A54C2F3CE638887ABEE37DAAE720 -:10F1300005F68E10C5FB6CF805F4FEFB561CFFCAE5 -:10F140007502CA11CD6EA824B285AA3832DDDB6DF6 -:10F15000FE01C59FCF5E3DEE567A7DE5DD8EE1C0B6 -:10F16000BFAF807D80F2A1C1C1EC8318358E2E71B6 -:10F170007B970DF970EB5913B183DFB0DD86744ACC -:10F18000F9F4FE71F43DDB83CC5EE838CBEDBDEDE8 -:10F190000EE4939D7F60EBE858E1607EC619AB0CEE -:10F1A000F6F8D6153108E731524CC00CF32D67F351 -:10F1B0007771BCBECDF1BA9FEBAB37B8BEFA0DD8B4 -:10F1C00013A8BF983DB11BEC097ADDC9ED891DA0DC -:10F1D000CFE8F5C5B3CFBF077C797E7B14DA9D639A -:10F1E00048DA6658D776A715D76984F33C45CF0728 -:10F1F00073ABF47643F958BDDD70FDA8E1BA7659DA -:10F2000062AAEEF9A9F1D7E8FA4B9D997A79649E42 -:10F21000A86BCB17F4764385F7063D3DC9617603AD -:10F22000CA3BBDDF383BDC6F4C063C313F676BD7D8 -:10F230001D88C7ADC753062A6176C2360EE7ADC733 -:10F2400099FEDC16FA22468960477CCAC77DC6F162 -:10F250007186E3E33F46C8BF4B1F0CFCF20593BF2A -:10F260007DD0B1F6BCF6DCA7FE5303C2F5FA4851D7 -:10F270004226D1DA7FE8786F0CF45F2E5F503A6D4A -:10F280000D513C7F478C696FA38FAC31373C056DC6 -:10F2900055359367B2101C6966ECBFDA03F2B839D2 -:10F2A000A6E139E8DFD264736D8A073EFAFEAFA0AB -:10F2B000BD9CB2828D5EFF1435C24F28AB39324CF3 -:10F2C00038FFB316DF700FE84DC137FF563A5EDDE9 -:10F2D00060F53C235DBC9ED80C4163F66DA087446D -:10F2E000CEF77F1194D80C7A5FFE8580723A4A225D -:10F2F000A8176CC41700FE21F5F27CE00F62A2FC97 -:10F3000043AF8D99CA50184F6422B9E83CC8DAF46B -:10F310007D4270DF9F05BA2E0B6950611E5B3D95E3 -:10F3200030949F1F4D5746E078F34C9CFFC569848D -:10F33000803CA3DBC176D6DDC4D5164B286B2BA64B -:10F340002F687B3EF5F7E1FD26C732D453EFFDCEA3 -:10F35000E41723D84B3D705E6639130A8B8F18E98A -:10F36000A783D3C5B6641FCA5FE3F3B900170AC702 -:10F37000AD1F4E1781BEB2EC0364B02BE806C51971 -:10F3800054BE6F3B79BDA326C273D767D5E4660C24 -:10F39000EE6D6705378B354EF4E745D8D716FA3B47 -:10F3A000ECEBE54E5300F07BDE694579D2D73EF2B7 -:10F3B00042FA38442ED80361FC46C80217F88B0283 -:10F3C0006917BEBA269CBEE4FBC3E9EBC58BE90B0B -:10F3D000E1FC9DB7D210AECD02A32F95D217F4ABAE -:10F3E000250D485FAA89F89AB390DEF0F9E566BB6F -:10F3F000CB4625E4B28C147C4F474CF97B0109DFE6 -:10F40000973A13FDB96AEECF55A39C7FE32893F397 -:10F41000C67DED3C3A677808EC89D17387039F7706 -:10F42000800218068BCA9B27EBDA248076E0140250 -:10F43000212B80C03CB03F3BAED3DA5ED62E66E3D4 -:10F440006F79FED10D2AB46FE2FDEA6CD6AFB549F3 -:10F45000FEBC62685B4CD83E09E3E9FB1EF3C8CBF7 -:10F46000006F8FA6CBB7025DE680D142AF9F4D9073 -:10F470006F87F6B20C82FBFDDE04F95B304E6B6FDA -:10F480001B2FDF19DEDED2E3A7B6733FF556B44B70 -:10F49000DFE89A89F6AC447C3780DE7923C8E251F4 -:10F4A0005B46F5EF071DE4F6FC01EEA7BE09F2E8A6 -:10F4B0002AD027CC4FDDCBFDD4DD5CAFECE47EEA77 -:10F4C0000EAE575EE57ED22BDC4F7A09FCD4ABC082 -:10F4D0000EA9E27112E6A7668D9E5C8A76844BF3D4 -:10F4E000534744F4532BBC7A7D33CDA3D73737A48D -:10F4F000C519F48B5EDF4C8DD7EB9B52E73506FDCB -:10F5000092A91B2F5FD0FBA945DD25BAF10567F451 -:10F510007E6AFE473375E39765488847EFF11B75B0 -:10F52000E3723A6B75E37AF1E6433C59D5279D6067 -:10F53000C76D1955C7F1C6EC050D6F1D97C0DB6F80 -:10F5400038DEF672BCEDE678DBC9F1B683DB03AFDB -:10F5500072BCBDC2ED819738DEB672BC6DE1F1853B -:10F56000831C6F0738DEDEE4FE6ED6E8DDE89F9D83 -:10F570003F4B38DE368A91F05696281AF0E030E09C -:10F58000418FB712F370031E520C78B85AD72E3839 -:10F590009361C043BEAEED3D5E6280FFF506BBA148 -:10F5A00052D7AFE16D9A67BE81BEEA74E32E9BDF4E -:10F5B0009CCCCEFB6BF96D1FB7E3F670BCED02BCC3 -:10F5C000619CC8C3E3115E1EF76576DCCB1C6FDB64 -:10F5D000785CA803F006F61DC75BF3A87368C79FA5 -:10F5E000BFA0E1ED6044BC5D29BF5DEBD6C785A639 -:10F5F000B8F471A1C9763DBF1513BD7D37E94B3D08 -:10F60000BF159ED5DB77133FD5F35B5E68A6AE4D85 -:10F61000ED8084CC6CD05337EA9ECB0ED6EAC6512F -:10F620003F89F92D1EAEF7FD95A88F5AA631FD48EA -:10F63000F910EDEF67BF4DED80F45E78BC68F09F88 -:10F640005EEC437F5F93C9F477C77BD508D76CD056 -:10F65000DF91F20B7C5C4EA60BAF363351A33370B7 -:10F66000997B86D1F5984731BBC71CB316820CF045 -:10F670001334E5F4DA49A2D347607E6A2FE5648645 -:10F68000E97DB3AB8180DD20DA1E5A00FB22A2C9DE -:10F69000837AD7601F917A977C07DCBF6380A78D40 -:10F6A000C2E296CC585C879B6CB6809DD198294F5E -:10F6B00002788A93193CB62451DF9DC2634B146BC8 -:10F6C000AB145ECFD0B6387001C2AF83C24B4C874B -:10F6D000F9E3C9DD745D55995606877984E953F5D8 -:10F6E00039A65F7BF421351868FBD968D6BEF18551 -:10F6F0009FCE53137BF56F5DE64BA84FC73887D578 -:10F7000091F174DEF5EA20B033C7D2F5817C34394B -:10F71000B62745B2BFFBB2C3568F97E7C17EBEC7BF -:10F72000F5EB180A117346DFCF3F1BEDBB05F09BCD -:10F7300005F0088B7BCDCC64766B15CC3318ED4B84 -:10F7400039DCBE24C14A6CB7A433FAFAF1DA99481D -:10F750006F4E0A2F3116D6CFE037FF2E465F57BACD -:10F760000F6DFDFDD0892FDC9E0EA393EF45A213F4 -:10F7700052EE71A3BFDE973DA7B2F53673FB51B3CE -:10F78000936D899ADDECC7F558287BE40FC22B995D -:10F7900042E13AC845305E53ED32F9FD14645160E0 -:10F7A000F083DC2915882B19669709C363B9142ED9 -:10F7B0007F8CF141EFF168837C1F64D0C3C374ED8B -:10F7C000A2EE14839F7875BF7ABED439D1A09F264C -:10F7D000EBC69725DE60F0632B0D7EAE5E4F9889F9 -:10F7E00059E5F83261DC421524730EDC27889FB09E -:10F7F0007EF43B7BE0FC845C85FCCAFD1A23BF36AB -:10F80000664A0867C1C5FC1A8D1FB4E735F859DD93 -:10F810000CAFEB7234FDE441BD630B7C93405C950F -:10F82000DAD0F2E6307ADBD4687FAF7434213F69F6 -:10F8300024EF9552E4F91B5D78DDD8E8C6EB138D13 -:10F84000125E1F6F4CC371EB1B3DD87EB4D18BD7BA -:10F85000471A65BCFF506319B6DB1B7DD85EDB58C9 -:10F8600085D7B64605EF8F322BAA9DEE6B542BF150 -:10F87000A8742BA3DBE9FBC2E096DA4AD71106F79E -:10F8800064D5A56B8F5CEED68D4F6A9074FDC3EB8B -:10F89000D374FD098A47D71E5AE5D58D1FEC9375A1 -:10F8A000EDB8B232DDF858D9A76BC778AA74E31D5A -:10F8B000698AAE7F5751FEC0503F7CFC506320C820 -:10F8C000E0120C3238BD1E64F0E9C2EBE75CFE0EBC -:10F8D0003207515E0CCA7251D2A1F8B2B3FC5A9CE5 -:10F8E000D923C486CD1F5746E74B0B5F2F9D4FE7AB -:10F8F0009FF9915E623C41DD7D475A97EEB929A29E -:10F90000B304F211870B448C7B1D2E888B01FBE521 -:10F910007E8B6B5A16A5C7434745CF26780E1E88A7 -:10F92000202F4F70BDE8186F47B950B14AD8242234 -:10F93000D1B2E76B3B5323C63D0FDD4BAA605F8E10 -:10F940005D2F494017150535715161FE5A45E0CFCD -:10F95000A56EB8BF2A3D278ACE56D19A6CAD1BDB67 -:10F96000BB2F6D5CED2ABD7DD94BF77E3BEC638CE4 -:10F970007AAF1DE45B5BE2266CB7A5F59F27F98C97 -:10F98000DB619F723BEC348FC37CC4EDB093DCEF42 -:10F9900009713BEC036E871DE7F6F3316E877571D5 -:10F9A000BFE76D6E3F7772FBF908B7C3DAD29E9F4F -:10F9B0008AF2F017021123F8A9DAF5969FEAEDB062 -:10F9C0006FFAF576D8D2F57A3B6C71BBDE0EAB6B75 -:10F9D000D5DB6135AADE0E5BB85C6F87DDD4A097FE -:10F9E00087F3EB27EBDAF3147D9C6D6E95DE7ED604 -:10F9F000F033DBA7978B95657AFBB9AFFDBE12B8E4 -:10FA00000EF33F80C453617AAF279F0B7A85D245AE -:10FA1000D605AA57300EEE6B86FCC9361842F56F34 -:10FA2000A129F816E47DC8DB2281B8D3AEF339E50D -:10FA30001511E82F47D5D3CD82E3FAF8C68D77E9C3 -:10FA4000E13A6399DE2FB196E9E12A27EAFD924A6D -:10FA5000A39EF1E9E1AA1285005D1AF58DC9B14CAA -:10FA600002F97DA57AC74AA85E616D9DDEB1C29D8F -:10FA7000145D3FEA9D1F64B17A831CBA0E30169A5A -:10FA8000A2720F7828DC76BD6BC63A11BAC023A3E8 -:10FA9000A8FE2982DF29FC5EB5286A03E4D9785ED6 -:10FAA00084886776DF4EC75B87B3BC08F9D2FC1148 -:10FAB000CCAFD07F80AF1C42DB617A2E3BC8FAC34B -:10FAC000D6ABEBF703CE06F7B71EF9C8A89CFFC963 -:10FAD000F5C4C49F06A137814CC07A83D0A0CB8ADD -:10FAE000AF1AEF6705981D9495C8EC206FD24C9122 -:10FAF000E79F08843CBC2662C778E608E27F06E2FE -:10FB00009CD1071CD369B319A64C003F49CFFFB362 -:10FB1000CAFBCFCF1BFDB0EBA45483DF768DC1AF02 -:10FB2000D3F3BF8D18EC971091C09E441C9874FDC0 -:10FB300008A777381D359D68990FFB7A2989E75703 -:10FB400038FD4CE4F82264F3EE1ADAEF758B04FC0E -:10FB50000D1B51E326407D51B04186BC43AED7E634 -:10FB600042BC892B3C68979E61F8F1D27F803F2F81 -:10FB700009C317E0EFB81E7F3643FFEF393D5DBC88 -:10FB80002E4647FFB87519E8CA39E8B2EA588CF72B -:10FB90008B83B21843D7B7D725601E756FB0215835 -:10FBA0004CDBE7DCAC6E684DE24C33AE97C803A685 -:10FBB000503C4CE5FBF5F2BC56472341BBE3C54640 -:10FBC0003B5E096910411EB5B8EF8803FDD831428C -:10FBD000190EF5691D836357417E7E8B25363152A0 -:10FBE0005DCB4E4B2EEAD38E9D0966893E5F6C76C7 -:10FBF00099E1B9E2C45A11FCBD6BBB08DA05C589AD -:10FC000004F3592F36060EB3F729588743F73119F5 -:10FC1000ECD35257CDE4987888CF52DB46023B377D -:10FC200016FDD73D836D88379B6B69E9B7E8FE0EFB -:10FC3000268844F052FC788827007A20D1E9F1C365 -:10FC4000746ECB4980733DFD0778D1F402E5F393E0 -:10FC5000E1F8C825616DCC2BE8DB23B3F5F891887A -:10FC60008275162D5DACBE8C8422E7593EE4768306 -:10FC700016DF3FCEED86633CEE7698DB0D2D86F8E1 -:10FC8000CD5BDC6ED8C3ED867DDC6E789DDB0D6FC1 -:10FC900072BBE100B71B7AFC05A236415E711EB152 -:10FCA00087C05F3858C3E0EC5E25F8CB201FAEB4A8 -:10FCB000FB4AE87DDB2A0BCACF91896A13C4C76D62 -:10FCC00055EA14D8877B417B135C9B8ADA12E0FEED -:10FCD0003CE5F471F0B3815EA6E5707EA7785867C5 -:10FCE00065705EBF38C6B312E85959528EE31219D7 -:10FCF000DCECF41FC03B61912A001DB8158B0EDEB1 -:10FD00003506F8CE837698FC88067AA4F09C9ECDC2 -:10FD1000EBCF32492683BB1A05708FAAE1704F8B57 -:10FD20008FC827EB39DC35B8EC2CBAD9A4D2A16F37 -:10FD300025B2BA89B70A6E361DA4EBEF9445CCBF45 -:10FD40007626F23A41FE5EE37CEF707B765D49FFFA -:10FD5000F1BA437C5C4FBB9548B68161F394DC6F8C -:10FD600091E8F35581FB92802FD60DD0F2C41EB4DA -:10FD7000AFA78805BF4DA6EB0CF23A484D5ECE21E9 -:10FD80001C3686F7BDC5F7D9D77ADE2AB9C122D18C -:10FD9000796705EE21F03E9BB9C11D5E5FDAC9D7D8 -:10FDA000B766C69D04F83238E26C3DFAF13E9B041A -:10FDB00076F7C844CF6AA00377A262F936BD3F9DAB -:10FDC000CA43C905CB6ADF190FE3E8338F13A09745 -:10FDD000AB37033DBC956447B9D3D77A2ED2237E87 -:10FDE00082F6485F7A84CA1FB4876CE59F1C07BF00 -:10FDF000B692347802F4B960966730F031A9B2A0B7 -:10FE00007E4EA3FFC2F36ADAB5D2A0BF1D5E4BBF20 -:10FE10007278E485C656F03BDE02FEC13C2889813B -:10FE2000FA9C60F99D76804F4552CA2EC00F29B6C4 -:10FE300087465338AC29587D13C06B4DF952970053 -:10FE40007455988AFDC162FB69A8C8E92A5E9324AB -:10FE500085C17BCD7DA448017827DDED5E42F79515 -:10FE600092F8C74685F24D9785F93DEF94FC3E31F7 -:10FE7000396C7C4676F1BF67435CC7CDE87C8C5516 -:10FE80004989541FACD179535134C6654ED6B07AE6 -:10FE9000057A7FF572FAA842F5559BA7978F1773DD -:10FEA0007A8A1ADD5D0FE395FB6C12FA67E282969F -:10FEB000E5B45D05F612D84F8F58902F357E4E6A07 -:10FEC000D0CB4DC5C0B75506BED6F8E9379AFCEC85 -:10FED000E5E318C06B540DE3276D7FC67DCDFB9223 -:10FEE000DA39718418FDBB7717A546333D1666DFF6 -:10FEF0004E40D92459E9FE66717A9AC5E98992E49F -:10FF00004E58CFA17B52A701BED426EA07C0DA56CD -:10FF1000587AEDDF14D82719E0A5FB9FB55C4C0794 -:10FF2000FF94DC65E9A5C714DDFBB05E604E781B6D -:10FF3000E85595DF013B02C299F0D23F9D38BCB72E -:10FF400099BEAF73581C69F2E07C1F31F928E17C3F -:10FF5000870AC4015EE8FFEEE87448E193707AA571 -:10FF6000F38754D65F7D4F6A069A9BBCFDE18AC138 -:10FF70005041467CE596DEF1F0BF5233E27FF60A4F -:10FF80006113C4FFC6889F9FDD4DC7CFAAB4799A7D -:10FF9000E9FCB31FACB580DD5FA92A7BEBE8B84A6A -:10FFA0004A177E17EE43C72747CCC402F31C9105BE -:10FFB000D24EDBB366E9F9A67A85BE6DB4478EC62C -:10FFC00028234CF4F94F041BD944AF3B372CDD08F0 -:10FFD000F37DFCA00DEB0A09BC2B07F400E1F1490D -:10FFE00079E33DB4BF76BD8D405E641EB7F7E37222 -:10FFF00092715E9363013E5FD316837EF1E90D43F8 -:020000022000DC -:10000000C703FE5B0735DC06F5D41FC72AD580D7AA -:10001000DA35D798203ED21ADD3E05C67F6222AE81 -:100020004DE9B42D3D6481F57451FB00E2ADDA3A3F -:100030006B5AC3F00FFBCA6171DCE926A26C8E60BB -:10004000D73C9A23703D4B545BD8FA37E448787F0D -:100050007ACAA09687E13D14FB2E0F870BEC7B0A32 -:100060008B8BB6267AAA07D3F6470271AD8C87AB85 -:10007000FC01F0A7FA031B7906D14F70BC75F8B0EC -:10008000A7DBC2FCFF4CFEDE53B1ACFFA43BDA0F92 -:10009000FB3C29B1B6EA76FA919ECD4ADA9C18B6B5 -:1000A0001F61089C8260EB3B1A235953101F447A4E -:1000B0009EAEABF691C710BF5B287C803FBB5C5205 -:1000C000CB4EBA8ED35459ABD0EF7E7C0AC0F3CE60 -:1000D0000C4AA80917C3A9316710AEE7F4FAE6186D -:1000E000AC337111C53AA4171E35ED5BBF238C47A5 -:1000F0003DAF32F9C1F84F2061F29DE2777ADE0F11 -:100100002DB5B0DF28D20E7831ED59658775CEABAD -:10011000B1607ECC497C65204F6B1E11B04D7FD6FF -:1001200082BEA8E5FCD52A0DDA07747C12EC71F4C6 -:10013000F79ED80BF501355C7E552DD2D3E962B719 -:1001400059C72F3396EBF987EE53D7DE98C3EA3AB7 -:10015000BBBC1FC7837E6EA5DB06B87CD222F837F6 -:10016000A17CF58D08AFAF1B9363D2E2F092250C12 -:10017000FEB594FE6A416FD8497B09D83579A3A7AB -:1001800002BD5B8F46E33A8DF0FD6787C3A924A9C2 -:100190007A305DCF294AC750FF73724333DA2FF0AC -:1001A00023EAF8DAD502F4BD84AEF27117D2A7754E -:1001B000C6B85E7AD1E053B33E791F8C73FF678C6B -:1001C000449D2752E3CE5F0AF6640F1D19E0037BBE -:1001D000366BEF49EDA533EC8F406765742CC38B0C -:1001E0008AFC5253DA93D71BD15FFD32E23B9FE288 -:1001F000B5237D3EE4A13439B7AEE84DA483732E18 -:10020000E217995FFB36C8FD18BE3695C881BA78EB -:10021000502654EFBAF01EFACB717CBFB1CB856388 -:10022000A599840C5A2E1E2BA537634B8301D0133E -:100230003637D7BBDB737F3566089C6E2018A7194D -:10024000105DEE09E06E5C09784EC1E24A00FBE702 -:100250004141A882B8FD00A2B7ABE20CF02059E6FC -:100260008FC2EDF2682EEF974E4915D0DF29D3FBF0 -:10027000A766835DF4AB1C93E65FE055825F291CA3 -:100280005BA8FF06726A50A0BD1DE8B39ADAAD7E86 -:10029000DCBF07F33AD652813C2EF4C6AFFE51F1D3 -:1002A0008B8BE2603C7ED1571C4C8B0754B25BD4E5 -:1002B000DF51DC90F7AB74533F6700D85937BBD19F -:1002C0006F729F46BBD4CAEDD2A8D18B5C2C7FC67F -:1002D000F8478B0718E9CA185732F29FD12EFDCF85 -:1002E0001C6E3F5D4DAEBE92F88016C75F93C6FC94 -:1002F0009E3569B52BA17EED3CF77B5CAA09F138F0 -:1003000067968078D4ECB539DEB3B380FFB4FA8356 -:100310004BF93D6D063F24DAFBB42C47D09F8E5C31 -:1003200046478E02D63FC74ECCF6B0FC813397E9E4 -:10033000DF39540FDAE916A7F3734415449F9F1A67 -:100340009ACBE4AC76A53FC18C1C5DBDE0D0DCB09F -:100350007CA88DE743EDBC5EB038BD7BF757705F7E -:100360006675C036B9E6C96F533844CF8AF19890A4 -:100370007E95677E087EF22C07CADBF83409EB5EB7 -:10038000AB12ED1EA47D557E1BFC32B43325D892F2 -:100390008CF2762EE5DF80AB1F7FC7DE7FDCCCA939 -:1003A000F93B058CAE7AE24B3E26BF4DF41FD0D30D -:1003B000EC2A3DBDCC55FAA79FDC5CFD39AE31A1DE -:1003C0000B3BBF42BA60FCBB6E04CB479F2FA763B9 -:1003D000207FDB873DAEF9B74E0BF58B285E82F2AE -:1003E0006EA4F7601AB184E3DB5720EAEA1B827936 -:1003F00024DA45FD9EA085243D48C70D90E75EEFB9 -:1004000002DFB7D81653837AC3AFB3EF0FD1794F5A -:1004100038FB5E8791CEEF1BBD04E3FF0F5C4741C5 -:1004200046D77F1F249CB15E6FCB7CF0DB1E8036ED -:10043000D6DFFDFBFC62684769ED6D3F92C3EA0DB4 -:10044000EEC90DFC482DA07E8D9DEA5B3A9F4322AC -:1004500098A7226433CA6711E281209FC786C1171B -:10046000FD063DBC8D76BC58C0E228A281EF8DEF21 -:10047000BD3D97F339C7535FFB363E477FAAAED6E3 -:10048000D3FF7772FBA997353EEF84FA89982BAF9B -:100490003BA08214F3D3223179C05F262504DF27E5 -:1004A000B8185D8184013D686918E041B8D17614BF -:1004B000E805BF438BABE2A2A300FF22E41303A82D -:1004C000CFE95242422A8CD7EA0F14F295E3F2E5C3 -:1004D0001E95C7388F54C6F2CBEFCA2404EF1BF326 -:1004E000F87A5F0EF8EB47A99E95408FDFAC42BCCF -:1004F000AC7B05C1FC80C3A5609BBE2AD4EC82B84E -:10050000156B575318815EB6B9F5F5AF3B8B1E2FAF -:10051000B6D2FE9652166F3DD418787715A5B596CB -:10052000827C9497AB6060D87A83BBA2AC10875171 -:10053000D46FD9C16EFE708568856B70658D0A9B1E -:100540007E3741DD2C4810775008F8F9D615CD5389 -:1005500080AFDEB5A89E414ECCAB629EB875A57A41 -:100560002BF83DB2545E964CF96853AB19CF199DE8 -:1005700028F97DA214C6879FE732BFE1E0CEA80725 -:10058000000E6B047B280AAE1665D37DF1F03EABFE -:10059000A7892EF1DDA68793E03D6B16AFF1EC82C3 -:1005A000FE261B9C40256B36D8AB60DE35494BDC04 -:1005B0004BC2E6B50FB736C0FDE0B016AC6B51CA02 -:1005C0003CD6A858D8D7E731909F6D5D911907B4F4 -:1005D000D892601D5107E396FCE9B7B98077C984CA -:1005E000795BABBBDD02FB1EE95654C88F9B72944E -:1005F0000340AFF3969F98827573A5B1ABE13AF2D1 -:10060000C2EDAD00FF77793C2694508BF9DA964520 -:100610007576586F4542CACAF0784C4BC162FB18D8 -:10062000FA5C8ADB54B374C0C5F4D102F19709B007 -:100630002EBA9F7130EE8F8D0A1D174AB256453A79 -:10064000A7F509D747F6E6A529101769D96087F4F9 -:100650000C691194F5901F50939D11EBD833BC0C8D -:10066000EED58A6B8A5542FC20BF7DBEF5D88FD46B -:1006700051605732FCD9CDC46E09D37F19D9C567F3 -:1006800072C3FCE88BDE9BD082FAA04560FC9BE144 -:10069000FDE247502FFC7CB6AF1BE0B7A655590FC3 -:1006A000F022AA9D0C28EA9B4F42F7911184CAE3DD -:1006B00096265B55A43AB4D022713AF009E5A0130E -:1006C000034684C9E5957529101F09355D85DCDD74 -:1006D000337E83FD03C04368435A2CE8C350526DF8 -:1006E0004A0AD02DA74BE3FC5BB81DF062A62FDAB7 -:1006F0000B76E55896F79C91EB73629BB4BBC1CE29 -:10070000FD1AD06D2AACF71F48B7A8E73ED9FA1FEB -:100710004857C47579F9481F0999319F5AF4178CC5 -:10072000F7B68DD3CE3FB1F8A066F7468DFE6815BB -:10073000F8ADBE3C2DDF55B017FCF5E95A3EB59C2F -:10074000C5075DF45FA4F8A0CF101F9C6E686BF620 -:10075000E60D5EBD7D9B28B5FB4A40EE1E103DE0D8 -:100760004F2411A65766940B7EB0B39B8AA2EDB8B6 -:10077000EE3C1EE7E4FED73CBEEE638D7602F92424 -:1007800093A36035AC7F7A3E5BBFA33E3D3B2081A7 -:100790007C67716E526F93306E02C84F203D7E9A17 -:1007A0000F26A1FB9957BF14EDFD5EF835B1F81087 -:1007B000D1FB133E62F01F16317B4CF3B7E61BEC06 -:1007C00003A3BD6F8C53F7E60536DB819EBAC7667F -:1007D0001C4A91B05B0D68F9003A6EA1B773752899 -:1007E0004CFE7472FD70A4513EB68AEE7FB5EFC721 -:1007F00076A0D336B3DF0EFAA4ADECCE18A0BFB608 -:10080000056219F07DB0B10CC71D6CF4E1759597C8 -:10081000C9BB60B6BCC21B1677AE2C2B3EB62ABC39 -:10082000EE41BEEED8AAB0F5577867E8DA1A9D55C2 -:1008300088A4617304F9F2BC97D9ED66AAF7B1CE2A -:1008400050FC85A7BFFA1BEAAF7687C3EF41AFDE46 -:100850009EBD7F6CC9C0FEEC166D7F1A5CB47D6BCB -:10086000FD7DADF37B7FE33A9FF5EAEDB94BADD368 -:10087000B83E6DDD7D8DAF0061350CD659BA00EA0A -:100880006283D94A07C8A3CA526135E44B8FF07816 -:10089000E29182183CE7BE378DF97BD1F58C6FA2CF -:1008A0004B6760DEEF4AF17BA397D995B30A04BF8B -:1008B0004C7F9DCACFDB1F4B63F9DCA6A29FFF16BE -:1008C000F2D0EF145A58BC97C8D3A785E5B1D659D2 -:1008D000FD01C8271DEBA9D358B6FA6EDA8ED6E40F -:1008E0004A953EEF306B963E7F5861C833441BE417 -:1008F000CA518D3E7228DC537BE1DE973FD1177DD4 -:1009000010F3D92CD04346F8DC66808FD17FA9D86C -:100910006EE087CBF46336B566ED85BC9A4AEDC9C7 -:10092000D1803FE8A2CF45CBBFC634C8803C468FBC -:10093000634267D6825EECA42A00F4CBBA9977AE04 -:1009400087F679AAF7012F7DBD47F3DF9ECF96BFCB -:10095000F446A81FE89123601F4C80BC6064FBA094 -:1009600073D1E46911ED83997529D9B0AE197AFB79 -:10097000A07343D99399701FEC03FAD39957A7B387 -:100980000F4859E625E0C3E46ED4E8AC88757AB325 -:10099000B395C17961FB71A43590F07AC6EE1C79EC -:1009A00008F4CFE07104ED7DD4FEDA638950BFA86E -:1009B000BD2FD7CBEAF049591CD30FFC7A293C6AEA -:1009C00075D4F75B64FCDE8B16F7D2C665E731FBA6 -:1009D000B03545AE877EE2CCB8C4BC4D5A9C232DC1 -:1009E0007D08AF1B96488F3FF41741C2FE08FE1EDC -:1009F00081BC6474E2D93D2E3AE433AF929F970DE7 -:100A0000E728FC2AE4436CE502DA4BB6448276CD53 -:100A1000E5FA57973BAE158A03C0DFAA65F1F2E20B -:100A20007433B6A3157113C8854917060A20377C9D -:100A30008AF834AC375AFEFCD31F83BEA67A1FE275 -:100A4000303ED280E7AC9D161FC627DACAE9CCE952 -:100A50001087596949C1787AF2AF63DCF0367F2B91 -:100A6000C4CB6D1E761EAACAABAE86EF6654148E3A -:100A70001608ED9FEE63F19B3910BF8179679DDD0C -:100A800009F19FD95E26BFC06F03BD39B7EE3BE3C6 -:100A90001E95FE9AB88DBF352E0BE34912C60B0C7E -:100AA000F1215BC1548C0F69752ABE0211CF779377 -:100AB00044277E87C218DF31C6738CF11E637CE742 -:100AC000EE3C5627ACD953DFCED3DB532BE00CC220 -:100AD00060B097A8A8A47CDD662149ED943E0F156F -:100AE0007F42EEA2EB70FED00435E0749C21CE78FC -:100AF00099722B48E5CA29D8C8EE372CE0DF2E9032 -:100B00006B30BE67A4FBC7B8FCBA2FCFA9ABEB080C -:100B1000362EE7CF47A980E705A3ACFEA8E4DE792F -:100B20002E973F9ECA911FCE637EC50F81CE894707 -:100B3000C1F30433725D3ABA250D83C9A9B0F88DAB -:100B4000F1BDDA7AB4F9AF741D0F71785F2E9FACE6 -:100B50002BCAB75BE9FBCF511C8BA82FA9411D16EF -:100B60009FD6E2E7DA73D59037C8043B52C0FC81C8 -:100B7000763F2C8E6D06BA8D4E54E448DF9B7A3B4F -:100B8000AF276E8A794CED3D4450502ED4F17C8DC8 -:100B9000369F99B89B900F80B6B5758911E2E6C46F -:100BA00063B75192A95D2B1288FF3889DC0EF1677B -:100BB0006BAB05DB44ADDA0776FA22CE17D682A9F5 -:100BC000FB20AEA6F185316F631513A7C2B475ED96 -:100BD000FAFC95313F65B4A7B5F8BA99BE04D6754D -:100BE0000EF0C1F6EB172F6FBF4FE37EBEA6FBD50D -:100BF000E8AA3CF31637D49FB44429EB6BE8BAD487 -:100C000027ED18AF70C0DA002601FA0FE4E493DE96 -:100C10001FE379F67CF65D9A1681D5A3EC49F8635B -:100C20007CF8F905533EA39B9FE549388EEACF0037 -:100C30009C972263E3912FB4FA934309CC0EAC281E -:100C40005C1CB893B6FF8DD74B5E53F88C96EF1FA4 -:100C5000509C43B0F403E0B2CECAEAD20E7DC38CFE -:100C6000F564443CB0EBCEF8DEBADD6B36EBFDCA82 -:100C70001BD2F4F6A0D1FEB31ADA43F38D75648A61 -:100C80001DEBC812781D195FBF914F7EDAC8F21AAA -:100C90003FE775FFBFE0E72F7FC9EBF736F3F39728 -:100CA000CFF373B31ADCEFB728188F3E711DB5E987 -:100CB000627BE380EB8ABEEBC6F3FBF9CCCF9A22D2 -:100CC0003A77819EEA3D67D1FF77C22ACBF479B3A8 -:100CD000D93E7DDE6C6E953E6FF6FF32E5ECFC6C26 -:100CE000388751BF12BE5330639588F9CA752DE716 -:100CF00050CF9E2F406BFBA2F71CE6E730B4731C6D -:100D0000DAFD6BF3D9F7911CBB122C508F3F635562 -:100D1000EC54889F1357C665D96F15107387FCCFA5 -:100D20004A9705BE0731239080F1D09AD62B9BE7D6 -:100D3000BED143304EDD13E757C7DE04F2F9B016DB -:100D4000E727D7DC0471FEC33CCE5FF3F2B827C1BE -:100D50003FFA599E3C17E0D1942757C1B586AF871B -:100D6000B66FCC1FDCDBA63FAFC7EABF3F5193DFB6 -:100D70004F3C5D9C2C3444AA17B939BF27CEB5141B -:100D8000E627F69E38D737613E626FC77376F7E67F -:100D900033F9D47C8CD4C33CCD2F93FAE723D8DD30 -:100DA00077E50BDA7CDFC2E7DD9A7EF3DDC9E6D7B3 -:100DB000CF27DA624780DF7F82D79719E7BB37DF1B -:100DC0008AE3E87CDFC3F9127BD6776FF8FA7ACF33 -:100DD000CFB86280691DD58AA98BD2136911B1EE93 -:100DE000C4D1E19A067549646A2AD6B11C2EADFCBD -:100DF000A7384F73B8F4857FC9F334DBF2932FEB38 -:100E00003C8D63265122C535029C2E7715640E0C4D -:100E1000F58327EBF2FD41B0337ADA668540DECF09 -:100E2000BAFC20DEBF3FCA551DD1BEE0F2ADA574AD -:100E3000910F52426B92A68AE1F6CBD92CE5CDFCFC -:100E400008E713CF8DEADE0DAA6966A96016E2D124 -:100E5000DEF608547E66AD9821BA2542BC0D0F4ED1 -:100E60001E4AFB672552FF2E6CDFF9F5BFDE4DD918 -:100E70009514941E6E8EA7E376E4286F03FD16B9D1 -:100E8000A53DD09EE54BC7BAF7FB6309DA79274643 -:100E90005BFD9B922F5EF7EF7AE5F24AF315C8E50A -:100EA00096467DFE7B4DD29895B0FE3125240412E6 -:100EB00036C57DB618F27F19D9CAEF605D296E225A -:100EC000DBC6E37D9984E56F8CF30E98C8F0342679 -:100ED00094F80388271FD2FCFDA22BF6F7FF180E0B -:100EE0006FE3F584E6EFAF8EECEF9F581417391FD0 -:100EF000D052570BF98013ABF5FEFE890DEE6A3820 -:100F0000E77782FBFB27A6507F7F6CDFF9006D9FA0 -:100F1000540E3927EAF201DC6EE771EDD9D9F2C03F -:100F200089D9E8CFBBE0DA9829C7E278D575139E56 -:100F3000472691CFC992275C32F839DAB9F65CAF0F -:100F4000320C9ED7CECB8E01D13608F2A2AEDB2278 -:100F5000D1F368BEBEBF3E4FDA93C734E139EACB66 -:100F60008CD35FEE38C9BB99D5E398599D61544243 -:100F7000891BF253E7C7DA51BFB7C2FFC2F46A6AEE -:100F8000BE3271E2E0F0790CDF57952EEFBD5A9D2D -:100F90003EE82BD02F9D849481BC7920B601E31EBE -:100FA000D771B819AFE513395E892B1EE0999AEF16 -:100FB000BB01F0415EDC2CE17760F9FDBEEAFB8D00 -:100FC000EB78D6EA7B1FCFD7978812ABCB23C81715 -:100FD00057A5B9504F6BF6D7D2894C6EDA48689452 -:100FE00095EEB359DEEDCCA4E33E7CC29C0E8F3D62 -:100FF00017432CB06E5F1A9573741F256E65647F5E -:10100000F211BE4864F2C2352098DC788D635755E2 -:1010100080FB17F1E313DD83C11E7FEE49969FBA73 -:10102000EAC945F6DAB0F99F98C8E566225B7FB554 -:101030002CF8A56458CF59CC43CD904C1E9940DE76 -:10104000F8FCD1B91027A4F6DB686C9FC376503248 -:1010500065425EFB43F7174761FC55F72E1E82F48D -:10106000CFE1B17045E6B368E7E728DF05FC070B81 -:10107000CEC5A48E453B7E3DD0FF4281F822D909E2 -:101080000F71BC5D2F37DC087476BD6C23706E2D3C -:10109000586C43B83F572848E0B75600CD433CE76B -:1010A0000933C69B293C9641FF018F03BF1B5D227C -:1010B000FFDA0CED3F8E13C8D07EF4F115C3B5E016 -:1010C000DC60E0C70F81FE22AC7F295FBFC64F14F2 -:1010D000EE25B82E99D58BF44557DD79F2934097DC -:1010E000AD294A3D7E17D135F3B2BE8B58F1533F3F -:1010F000D6EED97ED2308C44A8FF3AC4F9C478FF2A -:101100009713997D770BE78FAB9EEC3E701DF0F542 -:101110000A8B0BF0FAB33CDF66584F8FDFF57796FA -:101120002353C40588BF60395D3B7EC781C4407BC3 -:10113000FA2833E24F2DE1DFF9B89BB89A63F12921 -:101140006CDB5708C8670E677B1518CDE6BC86A315 -:10115000B3E1B96211CFF5879D73E9B78E2CC4CF87 -:101160009FB5C0F9336ACB075789DA77B7884065EE -:101170005BB0D4CCEDFBCF9E94E9AFCFF2FACC9329 -:10118000AF5A36421DCB51136BBFFDAA65C44AFA54 -:101190009ED008B68EB607054F9304D7A7D743FE57 -:1011A000B26EB9E029A3EDEAC03D5D10E25AF288C3 -:1011B0008D80ABF0F10F974E85FD9C7313FCBEEC58 -:1011C000DC04C6374A90F84DC9BDFEED0749C4AFEF -:1011D000E54BE11C9D97EB9987E01C1B5DF7B5EA99 -:1011E000B7D4EF40DE94FABD10571BE461F9CCE8A8 -:1011F000A0D9E327E0EFB2FAC8961F08E421984788 -:101200005CDB0CFEB98DD7EB46CB35E83F0EA2F484 -:101210002981060D9975E7D8EA8882F41B5746396B -:10122000231DAE7AFF38EB12E7D9E6DE343816F824 -:10123000E52F13F5E732FA8AAF6B57F8DE0DE0A71A -:1012400083E757B751BB1DF6FB32B5DBE1BA9DDA38 -:10125000ED701FBE530D5738CF06D75DD46E872B68 -:101260009C67832B9C67832B9C6783E7E03C1B5C1C -:10127000E13C1B9E3F2C540303013EC5D104F243C5 -:101280002D1646676A9215FD8D4021C1FC7D30C93F -:10129000BA6925C4EB0486273596F50763949BB19C -:1012A0009D3C96E577CD9E11708E7095305602FB71 -:1012B000A9D5AA60FDF289956602F5CBA169C2FBAA -:1012C00090772182C92352FB66C757B721FC17CB01 -:1012D000C40475E92BE1BBA1208F3F259B587C2ED0 -:1012E00028C2F7E59A6308A7C73ABF4C65F669417B -:1012F0006B1F52C09F9D043101A4DF030AF42F5ECF -:101300002EF076D02F8F82BA06DEAF1E7A0AFCD777 -:10131000558676A7497B3EE52998EF68CFFB465472 -:10132000CB40EF295A7FE242689F8AD29EFF7C2100 -:101330009EE7D2D6A37E8AF38592B4F1A9D5D01FB9 -:10134000EAA9935B82EB0D0D66E3FF6D57E7D3E0EF -:101350002FFFBDE76B56548CE3ABB3087926F662DA -:10136000FAFA7892A88F87CA822E1EAAC5DF4D8E00 -:101370000543F1FCD90336948BA79208FA217DC569 -:1013800045C3E2F51817FDD524AD9ED910FF240AF8 -:101390008179AB201EE8C1B72AE1E7D388D040A00D -:1013A0004EDD772646023BD29A1816BFE332A0BF25 -:1013B000786173038B0F06150B51937BEBFAAD0528 -:1013C000BCAE9FC70BB53A066BC1A3BABC81315EF8 -:1013D00048C465988FF62DD2C7032B942B8B172EFC -:1013E0002001CB50A07F59F080FFBEC0A57C300407 -:1013F000EDFDABD9F719A5D7316EAA9D1B833BF044 -:10140000DDA92ABEE7B65B4FBC3F848EF3AF8C925A -:10141000E030FEFC65C5F87C1EDD21C4B76A0AF128 -:10142000F02DC9FED4F3BA04F2D46DF23033CD7787 -:101430006F02D80B8B62316F72D35DE91FC03C8B9A -:1014400055073E47ED4A4EEF2F6D047A1221701971 -:10145000D6CE1AA1D15BD546E0AF49715A3BE629F9 -:10146000E08762ABF6BC17DBF3148DFFAE790AF4AC -:10147000C7D1128DBE0F54C3F3B3537BE643FA9E1C -:10148000E4D0DAD317427F6BCF7C4B36C27CEFC0FF -:10149000978DB03DF529E0E7E2195C5FA91F6D84E7 -:1014A000F95B1668F34FF0C3771EE79BB4E7A3FC24 -:1014B000B07E85686D2ACF68FB3DCEFFC70A5EA867 -:1014C000067EB9B1A7FF05DCEF02DE3E5E50F714E1 -:1014D000F4FFCBEFEF7FF87DC6F64D2438656856F4 -:1014E0002F5F18E5D56F8B981CF1D6FF1AC8952C85 -:1014F00068781ABFEF06F10096CF4A98E503796144 -:10150000173D943388CFEDC238A7719E9B0B595C71 -:10151000FD4C813E2FD662C88BF9787EAAAF798EBA -:1015200014B1795A4B22FBB119D9257F2A80FA01CF -:10153000725684F95C1460F07DB2964CE5FFC37D71 -:10154000CABAF8DD4D2AB23C709FFAC52AD899D3A1 -:101550002938210FDB54F438C6E9437916DDF7400A -:10156000B43CE73AAB8CF2F1635ED731BF449E7274 -:101570000FF0FF30916CC23A0F27E61BCCC3AD4F82 -:10158000A35CE7794FED7B1CD32F712EC2782EA57B -:101590009BC3FF5C419B05E4B34AD429A55928AFFE -:1015A00083506F6C72ACC53CB0ADC88279042DFF1E -:1015B000ACF0EF7F6B79DF49170632FD9EA6C5754B -:1015C000FBCFFF2ACB77FAD03E68178949B8381F7E -:1015D000BCD8A726413DCBF4D2183C2F5055FB0672 -:1015E000CE7F7804C1EF0447CF6AC0F341666A1F1B -:1015F000CA00179E2FD6EA63465EB81DCF8DD66906 -:10160000F5E662F941B0536D8F513F0BD997C14553 -:10161000CB17CF30C8FBC50595A86709B5E347C709 -:10162000C27BFA3FF7FCF0A458A49B8FDA593D7FA8 -:101630006121CF97F03CF0FD1616E76B4DD1D3D565 -:10164000CF27317F65FD244677BB8A7E5E85F633E2 -:101650003179202F469E60DF8583180B9EB7327E3E -:101660008F396D0EDA754F8CA45BA4B6B679F97B11 -:10167000185714D6B3E73E1D4F1AC06F319B599BC4 -:101680005E54C8FFE77A9599855097B5FC031CDF37 -:10169000ACB27AEFBEE237D5859ABE67F19BF9EE20 -:1016A0007D5D70AEEC6F8EE318CEBDFA24565FD22E -:1016B000562069F946FC2E21255C0BD88BA9F9BE72 -:1016C000FA428C6F6D96601D9ABCD957741BCA275D -:1016D0002247CE4B6B7CDF62C84BFBDCECF923AFBF -:1016E000DD530D7F17A2AF3CC4B3C53D7983E5F848 -:1016F000FE782D6F20DF03ED5E3D4A37E4D5E9D15A -:1017000085F5FF0BF4688FDDAE76A11DFB755B3FA1 -:10171000A5AB1710AF652C7EF6755BBF3C517E13F1 -:10172000F8F9BFFB3DE9137D5D00A7FB04B9CAC909 -:10173000927B1E419FE7FBA0B09F3CDFA5E20FFF1D -:10174000176FE83FDE602FD2E7E1FF59E20D0E3858 -:10175000433518F928B108F8A880F1D1BFBADCA345 -:10176000FBCD2F827CBAB0D91F9DFAF7F7F753F360 -:1017700095B222D4838A6917A59FFB8AEDCC9E0976 -:1017800030F8F6C633E8FABDBA78C653F5FF0DF166 -:101790000CBADF2AC46F297FFFD71F7F77207C65B3 -:1017A000664FFC0BD2E703B8BFCD6C7FFF80F76FAD -:1017B000447AF905A3975EF8303B290C3E0BEBFF0A -:1017C00031F0791EE1B38DADEF6B80CFD7119E1E46 -:1017D000B6DE4BF9D7270A044D2E1FC27D66313A7B -:1017E00038C5ED6BEA774F1E2AF5FADD4FE5C86F75 -:1017F00015313BF76891AEFE537E1BEEF7E3171FE2 -:1018000083FE087E7108EE7FDDFCE2D8429647EC4D -:10181000CDBBF8D9776F49D5F5DFA0EFF980C21BB2 -:10182000E26D6DCB45B42FCE2712FC1E80666F840F -:101830006259FDDEC5E7C14A099C47B4E5B1EF8CAA -:1018400068DF07308B0B0606A48BE17A7080628517 -:101850003AAF25727A0B9C6F9DBCF6733C77659509 -:101860006DF8773547BA3D96BBC08FA67EEEB510B2 -:101870004FAD77E1393AED5C9976FE634960DE3E23 -:101880003867DB46E92181BEA7A2D472327CFF46CD -:101890007BC36C681BFFAE69C2247DDE83C21FED73 -:1018A0009FF3EB597D5C9B99EC82FA8F3A55F437A4 -:1018B000D1F6336B05FC1EE7220A27F0F727B7277E -:1018C000633DB935917DEF4CFBBBA7940EDAF3C0B5 -:1018D000FE3B2A12FC3B76FC3C99F69DEFA869671B -:1018E000F17B5BA7E8FEE1FB3DDA772666703AD133 -:1018F000E019D5148770394FE142002EFCBCCDF4BD -:10190000E52C1FDCB2607110C8BBBAE0F35591EA58 -:1019100052E6B8F5DF4B37C6338CDF1B3713DF4099 -:101920003857575150AC82BD6AE3F59AD144C6EF9F -:101930005A9C5AFB63F65D8B528BEE3B22C6F746F0 -:101940001BE8D466883B18E9D4889772035E9E3101 -:10195000B3EF0CB6748A1E95DE6E7964512B9CCB66 -:10196000571F31B1BA7922E3779F5AA8C58BE7CFC9 -:10197000E962215E3F97C353C30B210D16E0B70503 -:10198000DA397453C36A384F3A8F9F43BF916CC69C -:10199000730637810541DFBB1042E4227C5746B213 -:1019A00032E7C045601D7555EC3B1926D803E409A4 -:1019B0001E3121BFB6B877E1DFFD0A0CB3C49E4EDD -:1019C00063FE44247BB627AE4021713A2C8EFF7F04 -:1019D000F1ABBF2D7E35B17010AB9B880AB8F29287 -:1019E000D9F726A09E6962A1C4CE2758941178DE4B -:1019F00061C3272AD08176DE81FEAC18A2FF6EC2B9 -:101A0000C649FDF87F258584D54727879240AE7D5E -:101A1000D0475DE5E1E29EBACAE72661FE9DDABFE6 -:101A20005920F798FD3B23D7F7B3496817B373CE16 -:101A30005A1CE933AFF24B185F087F3F270BCFE703 -:101A4000F8E1FC4E8553D82B48BDEF27C63AF6FF88 -:101A5000A579AB7BB8DF168C22F81DA46032A97A79 -:101A60003E023E9E29617644303D32BEB47E6A67B6 -:101A70001C9FC4FDA1018C28CE58F5F18193809F55 -:101A80003EFF0E1DC7E3E829F2478877DE7E385710 -:101A90002132D4F72ABEF701AFA7555102BD420249 -:101AA0000A7ECF6FFAF74557A4BFA7F8CF7EFD2F68 -:101AB000E87FAE8400800000000000001F8B08005B -:101AC00000000000000BED7D0D7854D5B5E83E73A5 -:101AD000CEFC24998409061C24E849001B6DC0E152 -:101AE000279000813393842490C0F0A741221E08E0 -:101AF000D0DC5EB44111634B9B0381102222BE8B6C -:101B0000AFBCFEE824185AEFB37DD4CB6745D48E22 -:101B1000012D5AD4E0851A2BA54110B1CF7E8F5EDE -:101B2000E5B5CFE7FB7C6BAD7DF6CC39930920C6DC -:101B30005EFADD3B7E7E877DF6DFDA6BAFFFBDF6BA -:101B4000492D8B3AAFCD628C6952A0131EB53EFD74 -:101B5000E4502CB39B59E74478A88723F224C65657 -:101B6000B2D84F7540B986FEC558DB5DA77E3F14DD -:101B7000DA4536A6A86C3A634B5607A97F11F332B3 -:101B8000199E6DD372181BC258C1B9C06115CABA6B -:101B9000DF11906898F0778741BFF08A4CB50DC689 -:101BA00059560CAF0A183BE984E714F8DF98B64C95 -:101BB000CB87FE58BE8E3A680CCA4B065BCAD9D09A -:101BC000F4186F5FA8FD35628C82F199D9DF6CFF44 -:101BD000AEC4DB9F0F66470C2F63B79BF550D6B1A1 -:101BE0002CFA33969E1354A07FBD24CAED9A629DB1 -:101BF000EFDA766D1A63679CF6F16BCDF16669AE2C -:101C0000761C2F1C9BDFD5AE41F97402FC77305E49 -:101C1000BE557350FB95B1F60E5AEF594994C7EA79 -:101C2000583EEE12FDF39769B0DEED39BC3E1C1A4A -:101C30001B31B2AF3E78BEEAF1BF303CD354A2AB09 -:101C4000C2FA5F945C0BFFAC6D6897752FD259F8A0 -:101C5000F70CE8D17844523BA14F21DB2B3399C0DC -:101C600076C94097533489B5C15CEB4212F50F7BBE -:101C70001D7C1EA328A2019D2D992EE8745904E70E -:101C8000ED8FEEFEF4D29AC70CEB3A8D354B6D70AA -:101C90001B636D702FEA82F6505E72F73FF811CE2B -:101CA00025B9627D2511A4BF964CD1EFC38BCE7BA5 -:101CB000EAA56AA2F725B179E653FB25A962BCDB48 -:101CC000A91CC7E79D767C1A372EC3F9045CA1D006 -:101CD0009D84CFB02FB219F93DEC670103F0797BF9 -:101CE000FD0659CFB7F09151A5121FF963E5889D04 -:101CF0008F0A888F061AAE9153C23FD440CEB0BC33 -:101D0000BD6A78CC57B16E9093B86E43A2750B3A0A -:101D1000AAF559E8DD03EB564539B0ACDE3B10F3CC -:101D20007697D1BC1F01BE599C9F98919BC03F974D -:101D3000375EB377B90BE15EA5495A04DA7F8EBFEF -:101D400019F1E7E9699CDE019F2F6BF0648580CF74 -:101D5000747CCF488EEF9B107E95F0ACEA8E2E807F -:101D6000CBA579581BE060DEE4F06FA83DDBE147CE -:101D7000FC0300D4BEE5285390CF80B7028EA95053 -:101D800076B29ABD49E6FD69C841F3363356B117BC -:101D9000E09BB8D1B72AEC8DD7E79671B8547CC2D6 -:101DA000B8C7D37BEF1802F3F732E6DB08E3371B43 -:101DB000C0BCF07CBF5E8A48B0E6F7B3C3738AA0AC -:101DC000DC9DE3086C84E9BB1F708F580BED7B72C0 -:101DD000BC0184AE277347BA0FC67F3F209BF8BA79 -:101DE000E73DE4EBE3E9317E3250BF749BF83DA759 -:101DF000853A908FDF5179F967A56BDF43FE6279F1 -:101E0000CCC786021EB007F0AA236D9AC70DF3BA9D -:101E1000668238C1BE3EA6BBA0DE8DF5B0C4798F08 -:101E2000EE7E74018E61D4BC32CAA2475D4C317A19 -:101E30003D34AFF2395790CC39293EAE6B67F3CBC6 -:101E4000CDA88FFD320B216FF9797B3FEBDDF0B927 -:101E500003C787721E43127CE97358BF6496F1F77B -:101E6000392CD1CBC2153908571E0BA0BE9DA73BFC -:101E7000CFC4EAF9639B32C98413E191D75714C1E7 -:101E800033B5DEDE6E761E943DF1F2AC9D7521C455 -:101E9000FB2C0DBA8D63ECC8CEBA681DC079A4D0F6 -:101EA000ED9300D3AE6CC5D67E36DBBB09F10E7662 -:101EB000C52119F0B2D49CAFD937EFF70CFAADCAEF -:101EC0008312ACFFF87782E90559C86F72C061B61A -:101ED00071087C306AE77470391D90A07DF37362DD -:101EE000DFB40EE403394DB295832E513FA903F9B7 -:101EF000E2784CAE8E598EE5452305DF0CED403D72 -:101F000039234D94072D47BEED559CA63CBBBE031F -:101F1000E559AB18CFD8457CFD3613F5691D484708 -:101F2000E198FC9BDB8EE55B7D263CC60F491E36A7 -:101F30006B5C9F4C7DE9D55EE30ADA037F16059161 -:101F40000FC35CDE25D64F391669CE30EDBAD16AA3 -:101F50005F7EDB1694898FC2DA9F65DCBFD206C034 -:101F600019EC5F498D74AC00E953612390EF5B9AE3 -:101F700080F74743F9608A4B4D47B9EE9BA925E1AD -:101F8000DF57830E1AAF2AE8CD3AFB75683F814DC3 -:101F900040BA6B696A14FD0DDC5F7D942B9292D37D -:101FA000FF38A74AB81CE8967C0BB97E9619EAE779 -:101FB000E02323BD452CDEEEC5122E0F5A26688B7A -:101FC00083F09C03E297C11E6E98FE837008E63989 -:101FD00053E40CB889CFB4B790CFE69B34F4B04B40 -:101FE000630FA0DC2872FB36A2EC96F39D8D505651 -:101FF0008603BF62B982D3B70EFF7D9E8BE32A7141 -:10200000FA0738E635DAF9416116FA86FAD5C1746D -:10201000BEFE9BD9CDB8FE079DBEA528C75A737DCD -:10202000775BE5D9FE122EC79E36D7DB35FD9F6B59 -:10203000103F1F334700E5C79ED430C9B353198CF6 -:1020400075A0CED798EA1B8A7CCDD721E5DDCAB032 -:10205000FD8F6E80250C03381ADFED2E9D00EF7783 -:10206000F17EE7C6B20686EF155E8687618CC37681 -:1020700027A9DDD6602ECDCF1E0B783C48FBD01CA7 -:10208000F7DBCBF63AF1E9487B7E849E647FC4930C -:10209000AD767E14C303F21268425CB7C474C7E71E -:1020A000B87E53FE039D6E273AADE17A64CAB9F358 -:1020B000367A2B0DAAD42E91EEA0DFA3D46FA1E81F -:1020C000C79CBAC55EDF168C443628A48F7E48EDC7 -:1020D000BCA08FB26CFAE8C7F43E411F4DAAD41ED3 -:1020E0000F16C4CBD07F3795FBF6EF0C26D167D007 -:1020F000FEA734AE47277CCD9BAC3D89E589D70B45 -:1021000079020D0B417E5C23CAE977D64FB3CA9F93 -:10211000C2C751DE2CD625B3FEEB8F237F1F0F09DC -:1021200079736429CA93983C62358FDBE4119B7301 -:1021300027D6C7E40F5BF5188E17933F6CE6E328AC -:102140003F82F3845E3BF3188EDF522BC6BF25120D -:1021500044BBC421FAA744900F7526CA763BF27798 -:10216000D3FE65A9D56F62EC5F1ED32C7EC689694C -:10217000758F931E3486B0D3820F72FBF2BB90032F -:10218000827E847D78EAE093BA01ED5654686F59F7 -:10219000F7256667F672BB276E5F9EE7F6F7C0DB32 -:1021A0008FA769FE7C4E6F5FC1F8FFCB3ABEB0A728 -:1021B000E0FDBF59DF5F6DFE1CC0E70A21BD4FE4A3 -:1021C000F05D41FF8C10AE2FC0F5D4DF00DE6C9ABD -:1021D000CFF403AE427C064243AE6AF84A09BE2AF7 -:1021E000BEDF2F6A313A2D4F4E07974DFF73695F5F -:1021F0004AF9BA2DE3CEA7F755822FD4A4FE3AB4FC -:10220000BBCDDE2ED6FF7682CB1CF722FDEFB4B716 -:102210008BF55F6EA5CF01E0F3D5D6FDFD0AE4484E -:10222000238D3F8A8FBF328EC7EF58DFFF67DCEC0C -:102230009274DE4EFBDEC0E9E932ECED9F60FBAD4F -:10224000D25E3D83E24486C0FB3F23DEE17DAF0BDF -:10225000DEBF65EEC79345E19FE17B2CFAC75BFCCF -:10226000136309AD2FEE9FC040F9567DAFB75BF504 -:10227000FDA1505D3BC22B97F0F6FBBBDE5C86EB0D -:102280004F2C835D7280D6930576C918B24B9EC7DA -:10229000F2A5C605F8BBA8DFB39C6E92D4BF42740A -:1022A000F514AF6F75713BF6EDDA8FC98ED3D6A8F2 -:1022B0000EB4E3845E3F1AE27E00D82315116F5FEF -:1022C000BBF1684812783B4AE3EEE5F83F1696D337 -:1022D000D1DE8CD92DEC55F283E276D55DEDB88F49 -:1022E00071BBAA81CAD3CD7D3E13BA779909EF0994 -:1022F0008E07733D976EFF1EC1E1E7ED93D49FA556 -:10230000F1B2399CCC7BF80CFAAD44AFFC37CA0172 -:10231000E5556621E85C549C05764BD74E4945321D -:1023200059B94BECF3FA769BDF68F2E162938E9534 -:1023300092E665185F58FC89E0FF437CFD313FB5AC -:1023400099E07FC78C4F3C8CED397C9F12FC2A872B -:10235000EF2B18DF55427619C74F0D339C689789CC -:10236000F382C4FDCD287188FD4D2F213B99C355C3 -:10237000A34B64BF87579C7222BD2F3DC6B464F443 -:1023800031A4C425E24F43A8BFD7F46F033C2E9479 -:10239000D87E78492C5E359CE0F4F1F936148547F7 -:1023A00060FF69FAD192A17C6B3C688F864BA5488F -:1023B0005B0EFA37DEB25228CF73B05EF2FB18DB49 -:1023C0008C715FF7F30A6B0B506B55B1C475804B82 -:1023D0007F8B7EE422739FE7B1587CC581F11A4B55 -:1023E000FC86FC4077C9FD793B558ABB50DCC6E5CD -:1023F00097C9AF083EB482E223A9856E9F1BE7917F -:10240000B3C9CF75FDD08C172DE4FEA503FE433B69 -:102410003AB59191FF36679B1451A1DEADD9E32FF8 -:1024200075EBCF37937FB782F934F01395427BBDBC -:102430002BC17F6D99A087104F6777D539101FC1C9 -:102440004AEE879DDD35D28BFC97E8479F453F9A42 -:10245000A4541F3FDA7800E36B163F7AED00FAD1FF -:102460008B4AC08F465964FAD1238BC2B7113D28DD -:102470001AC9B7AEE953E693BFBC4D666E687F7A62 -:10248000E7C4370AA16C6C5302186E78DFA92DC51A -:102490007A03FC69F97ADA2686F1ADB926FCA78BB6 -:1024A000CE9722FCDABDD70790DE4F3FE4263C9F53 -:1024B0005E99194983F132B6FD65530AF47F2532DE -:1024C0001C836C31FF3AD10F672C6220DD9C6623A0 -:1024D000581BEE83E26338AED290113002717F7BDD -:1024E0006E9ECFC0F1F4481AC37D8FBECAA4B379E3 -:1024F0008C8E1C908EE731D58985054C7322FE1792 -:10250000319DCAB701BF492371BE3C83E800F80E74 -:10251000E3774D13F4EF10BDFF88D307DBAEB4E3D0 -:1025200079C569E39174E4B33DA9F6788378B698E8 -:10253000FCE9413F7FCC80FAF90F5AE5C465C895A4 -:1025400047F87E727E7595301A07F4643DF279B7CC -:102550001907DE9EC9E3277BCC3849E213183E0BEE -:10256000FB7F513D01FAB29DE08DFBF11D08CF6567 -:10257000E8CB9F12DCFBF83A7721DC5CFEFCF7121B -:102580006E07A819144F01513C89EF2FFE3E95F4B8 -:102590005FE07CDA5312ED578ACA480EB95938CA3F -:1025A0008989E3117EEB87DAFB3D7BB17E6B827C10 -:1025B000FE3F16EA2FE0FCC5E78142A19DBB8AC71A -:1025C000C1E77AA5972535DEEE38C6A192ECF779FA -:1025D000538E42B3A803EC958733600FF2717F02EC -:1025E00083505EBFDDA49D441BEE7853053D7B9474 -:1025F00006921F3DBBE4C806E8FA4613EB2E1DDD2C -:1026000077DC9ADAE0C933167934B7EC090F08455C -:10261000D69CD77158C278BDE656DDD0BF3B3DBCD5 -:102620001DE3F5C651997502BCB72EAC3C79C622A4 -:102630001F12C785F998012CFB61894C701F0CBAD9 -:10264000A333308E60481194072B8C534E8C572E39 -:102650006D5CC674D82757E12905EDC29AA08FDAC0 -:10266000CF2D94996181EBF149DA7B8867A08B3398 -:10267000B4BF81981DF53E96834E2DC3971F8F439F -:102680008A7381174B9E22FBB83B93D1FC613F8B31 -:102690006C80F94BB465AE5E3C67F187296E7AB207 -:1026A00044A57957EE6C277852A7FD99E001DB39F4 -:1026B000EA18DC17DF820F8E9A786F31F1DE1F9EE9 -:1026C00095521ECF13E5B9654A3AE2F92D45A57337 -:1026D0008EFEF87B7EA97D7FDCFE0A5BB959BBD7F5 -:1026E00081F47476A71CC17D82E7EBB86F9FC0BEF2 -:1026F000B19CF838DDE9ACC6AA9FC5FECC29B5EF80 -:10270000CFD26D7C7F966E0B125E969656BA86F18E -:1027100073B5BD40DB4C2F5CC6102F2EED9482723A -:10272000ACBFFD027E1B568AFC6BDA8F57103FCF81 -:1027300029B5D8B55F757C1FE6BBA534899DFDB76B -:102740003A5F10F4740CE56A7E5CAEDE56CAE5684A -:10275000E253C8558B3D49714D0B1CCBEBAF000EBE -:10276000C127C8A728374A7648CEDE7CDC7FE0D771 -:1027700031689F7DB819F35156F919D14356A94ACA -:1027800074ED9A36CF85F278E5AE3F2BA8AF009F67 -:102790008B4B2D72B8A494093D544BEFEB395DFC83 -:1027A0007B9FEB003C77D3BED77238AFB673A7756B -:1027B000D5E18DA5740E0472C98BF1789FD04323A7 -:1027C00078DCFB8B9D6FBEBFF35E8676E0BC3FA5D9 -:1027D000AB6807DE5ED4A9E5A849CF3755C976BEF8 -:1027E000591762E45730161AC62E79BE99787EDAE8 -:1027F000F7BCD378B9392B6E77279E77269E6BB2BC -:102800007ECE3FFB9E771EAC2A02386705649FAAE6 -:10281000C6CF335DD3CE9E6063FB9E770E32F52E1E -:1028200043ED6D596FCF08756F14F3A38679021DC0 -:10283000BC399327C5F1087AC0E38679369501FC47 -:10284000682FE7743CBA80D9F0E8223C7C413CD246 -:10285000F936E265A714D988FD950603E5F94AE63D -:10286000537F1088EF676CBCBC751ACAE7EFD47948 -:102870009903F87F73D63D6C19B44F3D92C26468DA -:102880007F44BD87F6FBC847E92A9EF7BAFD967DCF -:102890003071A908F8E4BE7ED2DF601F3DC8727DAA -:1028A000F651ED28453D7BB9FBF76451F803E4632D -:1028B0000FE86B657CFC7DCF088ECFDE9B58A44370 -:1028C000EABB8F806F8DFCCE3CD6BE91EA1B18C64A -:1028D0000736498CE33B812E1C69EB0D3CD7762DE6 -:1028E000F7921FD5DCD040F83E0AF8367C9CBFF04A -:1028F0009CEA22FC25E88249432F9F2E12F7FDC84F -:10290000CE3AD67875EF6B3FFCB9BB14ED9ECBDDAC -:10291000D77953B59CB202EB3E6B23CB8658F9D6E0 -:10292000E07E0938C0E44F2E64AC33B3AF1D956F21 -:10293000E6A5C0785FC7F1C69431330EA88DC1F209 -:10294000821B5843B2BC976BCBB93F560B2622C5AE -:10295000558C54CABBACF5EDF83DE5611A37A9D6E4 -:102960003CCC3ABE0476FCE1F61EAC9F0B8B756442 -:10297000D12BCACB14F80995E5D0B845AB4FBDAE05 -:10298000527580C67781F0473FB5165F523E098B7E -:1029900074921CD0D97C90F777AC95289FB3C64829 -:1029A00063E8D7C6F32AF626E455F0F2DC6CB3DE12 -:1029B00078B1C37E8EF9DA72DB39A6D19BA0DFFE37 -:1029C00048FACF665F58F4D9072F7FB2DC50ACE7E6 -:1029D000989FD2F8276BC57CC1DDC17CEB39A66B13 -:1029E00037C223E2D4F0DB6D3DA704C8A92CE2C8AE -:1029F000A933B53A8C87ED9BA0AFC0FD914BA406DF -:102A0000B48F40C16812C56B7C1DE84F83FDBF12B7 -:102A1000EBFFDED70976485399E5FCE3EF0DFED3D3 -:102A200022BE6F1C5F8EF05DEDF002BE7F46F8AEF9 -:102A3000E0F8FE3B80F7605952FFE4AA81EF6D8217 -:102A40002F760EF1EF0ECF876596F38BAF7A3E6D42 -:102A5000AAF6BF71FD5FC13A1C33711D66FEC165E8 -:102A6000B4F7507BF3BC34B1BE69A6E93F98E7C424 -:102A7000EFC4CEF1AEADC3F17AE3E77A74EE153F61 -:102A800047CC1B89E78871F8F3687E718E189E79B0 -:102A9000731DE545F7738E391FEB4759FBDFB41BF8 -:102AA000F9AC2D613E9759BF6AE6448237BEDE0914 -:102AB000345F7742FB1A737D6B674EDD6D58F00112 -:102AC0009DA87D4C2E31AD0EE78B9F3B4EAFB39E44 -:102AD000DF7E6FA6B65B9CFFCF443A36CF69FFA37B -:102AE000E363C14C1EDF11E7E5820E474ED116228B -:102AF0009EAE367861FFEAADF4FF37986FDD4C0B80 -:102B00003F7DD1FE317E34F5BEC89F00FC1A88DFC0 -:102B1000A6723569BE84F013C3BD2C827ECB5416D9 -:102B200091F15C221CD019C641637C6D54125FBBCD -:102B300062F723E6ED46F917BF1FD1B61BED8BB840 -:102B4000FEFE559D3DCF616E9DF57CBEFD955F8976 -:102B5000753F6AE593811EFF7BE576BCC4CA267E7D -:102B600096DCFDDF46D8EF5F2CA679DE89DDBFA8B5 -:102B7000DB6DBFC7D0B0DB9EDFF15D3B5CACD50E3B -:102B8000176BB1ED574679EB6E03CA2E33EFCDB517 -:102B900042EAE77EC572920BE25C17CA36B940E59D -:102BA000EC8187EBB7828E4C3E8DC1D9273FEF9BDE -:102BB000BBEDF9790333BF452EBC8DFC30F078E7CF -:102BC000F73B04DEFBBBDFB15815E5C6BAFAFC2FB4 -:102BD0003F2FE6FF59E5C9975F07BF2FE24ABC2F99 -:102BE000C236D6D9E5CF65C3E72A4F2A7F2EAFFF7D -:102BF000A0F27EE58F0FC76DF63AE83E8AEE674990 -:102C0000EFA33495F373A9187F9AF751163C9CDC17 -:102C10009FFEAEE94F8B7877D0757E85F5BC6B74DF -:102C2000398F6FE796C7F25072697D8D1CBE00CA5E -:102C3000433CEF610AD380A7162E18918DF035FF23 -:102C40008E8FC7FCE027A7C7C7AB36E713F3BC34AA -:102C50002FBDC69AD730D69C27109F2F40F3ADE7E3 -:102C6000EB9007ADA67B5E31BFDAF831E1B5C5293F -:102C7000FCEC4EE2EF78DCB883E4CE22B7A0FF276D -:102C8000775BFD89DB7EFD14C9370C5FE0395EBCE4 -:102C90005F7BDDE5F42B2B37F5F12673BF8CD87EF7 -:102CA000CD44B82FD5DFE24747A5ACB81FBD6F8232 -:102CB0003607FB833F3DB7BCE0D2E3009E16119E72 -:102CC000D6DAFD114BFDE2725B5ED2F9D517CB4B24 -:102CD0005A61EE7B7F79492BCA6379242BCA2DE791 -:102CE0004AC17925E905182719E6487A8FE21E734B -:102CF0005FE3F95DBFA4F5B408BE33CBDB3379FDE8 -:102D0000B77EFD6C9DC9576BCA2DE717E2BC85E500 -:102D10001F8E629CC7925FA439AC719F92534EA4E0 -:102D200087A5DBA4A4F9337DF8A5D51C7F5B6C1FB8 -:102D30009BCA797C5FC7B8E36231EE3736D0B835CD -:102D40002BF8B8897CB3D5C4DFD6389EB6129EB4B2 -:102D500058BECD8358C69401F7F8F8F8E27E4FD0FC -:102D6000197E01CF755A0C4945F9AA372EA3734530 -:102D700056013C09FB141C96BB0D4587986F5C05FA -:102D80009F0FFE598AEDFCC042C630B06B2B96D126 -:102D9000B9F3248DE7AD4CAEDA200F5129AFE547EA -:102DA000B8AEA285EDCDB8BCDB6A7F2127CB67E941 -:102DB0008EE5B3B0B7460D05FE36E1C37B216B61EE -:102DC0009E7762F92C5565EBACF92CE12F97CF2259 -:102DD000E27F4B428057CBBE8D34D739B282E33588 -:102DE0007E0ECCE8FCF6465633EB268C2FE3BD2D49 -:102DF00078DD6DDE73BB90CD2278FEBF617A2AC587 -:102E0000F17A33199DABC28664544FC23C12FE4B1B -:102E1000195D4A715C37AC0BD781E7B2D1AFC1F015 -:102E200072EDA068127A7E234367012FC6FD8DCD17 -:102E30000CCFD5F447E87CEE86157FAEC77997EACC -:102E40006E15496071BDAF8CF2B856079CEB300E21 -:102E5000E9979986F1EC2AE77BFC9CC643789A5B5C -:102E6000CACB022F6EA6BC67C58B92506E3CB16177 -:102E7000CB214B7B5734251DCF05DF2E4FB7DD2BE4 -:102E800062B297E8E082DF11C173A86E85752900F0 -:102E9000479D2ED3F97BE7B635AFE3FDB1A57E257F -:102EA000E0807596344A94FFB5D8C7F1F49726634D -:102EB000CB21B0615386E5D239CC059F87A2F12D95 -:102EC000B59D14B7077AE95630AFE70199E1B9B774 -:102ED000C87F9A67D28BC063CAB28F092F17F03CA4 -:102EE0001CF1529849795073001FAA8FCEF93721EF -:102EF0009E525943F41A98F756BF83452D7168586E -:102F0000BF2D8F0CC6A6BC3385DED8EA093FA90FBA -:102F100094F07C34B92A8AFB7AA190EF2B94034871 -:102F2000EFAC94D3A9C07F6A029DBA13F2C312E931 -:102F3000B40FFE2BEC78EF5458208AF4764C26FB25 -:102F4000A277A7924179573B1D9477C55884EE31FB -:102F500075B2C18136949B5189CE096E33F126F04A -:102F6000CE58C3E6E518E76EC80860FC9F391A36EC -:102F7000637ED4E2481AE5DFDDCEF6521ED41DE8AA -:102F800021C3BC77329F0BCBCB59809E12CBA7FBC2 -:102F900025B7EA12F185CEA2D53701FEA2D7393383 -:102FA000AD7955FDE635C1CACF5ACE23465598F2C4 -:102FB000D2A3FB799EA76EDEFBD1283F28B3ACD409 -:102FC000A32791B7A545FAD72B0A2C7918BE064638 -:102FD000E7D345E1311543E2FD9F9AA08DC5F2E4A8 -:102FE00042ED166CBF07ED3CD0078B0E8F7D02F5CE -:102FF00059CB046D3CD627CAABD3FDE7DF451B8117 -:10300000EE7A505E511E613EF1E140E5DF9555F4E8 -:10301000C9BF2BA7F598F977279DFC5E19E5224FCC -:10302000657DEFA735DE46F5E27E5AE2BD34F62334 -:103030005E8605196DE3F0FE6E03AD5BE03D113F6A -:10304000CCBC97B6C4FF4A8F347600F2D67C60DCE5 -:103050000DBB187D18FCFE72F59A9E2CCA235428CD -:103060008FB02587DF5FDE844D30116814B7070706 -:10307000557239BE25B3C11F80FA2D4E9E0FC3F283 -:1030800074B6604C7CDC4195B238176A403A00BB9C -:103090008FEC2561AF8A76F7997AA1B14212F7CE0B -:1030A000EEC7F696FCEE46DA0F6F34E210E776FCD8 -:1030B00047E740C27E383EBC81F269DC5A727BA190 -:1030C000B922A6CF9B69FC9D429F6B9B70FC19D7D0 -:1030D000F816229FB94A64D6817A6CEE5D24779FF8 -:1030E000C1BC51B06926EB1B4A86C27E3F52619E2D -:1030F00037D56722BA58B7C6F349A3C50D7ED47732 -:103100005B8625BFF77DB282DBCF13AF3F2FE3B8DD -:103110005B9681A7320EF167501E9BB1086409943B -:10312000C1DD3F84E7321EB4038A502FF2F6BE7A27 -:103130006803FBD865E22B7823D00FDACFA3EDF933 -:1031400048E229DA25E65B81284FC77527E6B98969 -:103150007CAB1EC5480F24817F6ED95A0FE56B6585 -:103160002FF7A09E6CD14A68BCC4BCB72DD96C04A3 -:10317000C29598D726F2A644BE9418F7B90A4E27EE -:10318000226FCAEDE77A0B9E942713AD50CDFBBB9F -:10319000F6FC36915F83ED29BF269BF1FC1A7F0375 -:1031A000C37E6E2863FBB0997F9698570572E8201E -:1031B000D1411FFB88919DD15264E60D306DF332F1 -:1031C000B48FF0FC3690C4BE0281807AD005FA0933 -:1031D000EB15797505A6F27C593BAAB428DC83F07F -:1031E000B9FC3139FB3B82372E67DF35E5EC09ABA3 -:1031F0009C75BFBAF509B4BBB7489C0EB700DE9FFB -:103200004E421F1F98FCB6253339FD7C6ED26BCB26 -:1032100084F08738BE96C5EF777C513BB3256E6747 -:10322000723C0E909D09F8F8CC2AA7011FFF2F19B8 -:103230001EE0B709E58625CFD45959D07F9E696233 -:10324000FF2BBD277C0DC80DE43FF0077D95E40FF3 -:10325000723A16F2387EDFF6CAE4F53107C85180BB -:10326000076D026BFBDC4A2EE7C64DD5732B492F49 -:10327000F3FBBE5B83FCBE2F8B6AA4F78FA7EB35F5 -:10328000C8A72C6FFC25E6DB60E6D3EAF56192F374 -:10329000F32FD17EA339BFB9DEBCC1A43FB64ADA51 -:1032A000AE54395EBED4FAAEABD42623FCCD7A98A8 -:1032B000BE97B025CFA11AB0B47F9AAC17E3FB2D0F -:1032C000791B69FFDA80E024909B731CE71FCA9585 -:1032D000281FF85969103C3DE0B125A1EB59959C98 -:1032E000EEC18AA57A7642F35BE31C6B4DFD16CFE7 -:1032F0000778FA09EB3DA61595FB5618163D86F1A1 -:1033000092A793D0C5C24ACE3FB27B8D4D4F26B611 -:10331000BBB5D245ED56569AF10853EF2D72733F67 -:103320008A1D01F82C7A75DCD4D0EDB4AF063324B5 -:103330008B3E14FA8F6A2CEFDD7E7EFF841DB38FE7 -:1033400023D6799F49A7625EA0D755C81FA077BF33 -:1033500081F388FA4532E3F18E6E3BBE009ED59C28 -:10336000CED88A587E96051ECDC1C78DC1D1638740 -:10337000E33E733FC64DD5EEC371401FAFC3676BCD -:1033800008E82D095EC71784BE8DF50A335A73739A -:103390002E6AAF6EC076A26CB1579B2BEDF6EA2673 -:1033A0005C2FC8D1CDF87E4F6AF2797798F81AB0C1 -:1033B000EF065C269F3F88FF4CC22F6DBDFBD2C637 -:1033C000028BB9DDC6BDC497F9E32FC1579C8FEFBF -:1033D000BCBE81F4DB0BA6FDF1829329985703BC98 -:1033E000154896EF73B452D81B91E18897E7FAB16C -:1033F0003762EDFAC9ABFF1ADB9176257647DBB46D -:10340000E36964777CD29186FAFDB933A1A476C7CB -:103410000BD93B8627B33BF6F76377BC6ADAA7077D -:10342000DF77911D517C8EDB1DC5E776C8683FBCF8 -:1034300059A9D27A8ACE74CB3AC05D8C76078CB308 -:10344000DFB43BB03DD91D9FEC9011AEA273DDD42B -:10345000AF18CA687714F56377001432E2E1D9E255 -:10346000B67FC5FD4B5CEFBC897A8F956E0B7BBB3D -:1034700029BE23FAB5E56D4CD369BFEDF4535AA4C8 -:10348000DAF2E20B7B39BD27B6EB8FCECAE4AAD6BF -:103490005E58D75696BE83F2319586C7B16C180A2E -:1034A000FF3E1E7E5F039EF7CF051832B15DC34F0E -:1034B0007A51AF186E1F7ED7E02FA94BB99FB396F4 -:1034C000F99C53E37288960EA01921733C97C7D7D5 -:1034D0000C76D2F7D332088F8D3E11CFD951910B94 -:1034E000FDEFFFDA28BAF7137A040682F2D46332CA -:1034F000D58BF8CFEBC318E5E703FFCEA986F127FC -:103500009BE3839ED3EE85F68B4C3B6CA6ECA5F635 -:103510000FE6F1F6538DF3F5582EEA75A978BF8CB6 -:10352000C9EBE5BB316E8BF608B47FF0F9709907F3 -:10353000EA538F032438DE0917C52F447CA1E0D855 -:103540005EC267DA19972DAE910A122F6AB15B5CE1 -:10355000096526D70E4A269FC433310E71ED2CD350 -:103560001F1DCB6EF91CECAC0B6C7D2BAED13D3A24 -:10357000747037EBDB5FC419CE4FD446CC827D1C10 -:10358000E5D4C96FD95F01B8867DDABF73E7ECB1C6 -:1035900088F71D0AC5754F7E3B8DF6E9C0234A3B6F -:1035A000C6934E029FF2F8ADB112E9F5403A13E727 -:1035B00040518CCB1D88DD67CE5EA959CAE35E2BD6 -:1035C0007C1FF5E08121A2FD8F79BD281BFFB4127D -:1035D000F3360E0CE3E525AF3DD369101DF72AE461 -:1035E00057379EF626939F9366DBE9784EE11A4E95 -:1035F000C797E807F27EC6AC24FD52AAB97F75A032 -:1036000016401A8778D24B67015FEFEFB9A7750CA8 -:103610004C3571DAB7BB498E5ED3BB3699DC5F306F -:103620008BDB53D1E208F95BE0C3737F97298730C6 -:103630007F750E53C7A35FFFF0F4E77E3316E6797C -:10364000A368F47839095FDF3D2B97C689C37754A7 -:103650005E8E72E9A3F716269303DFAFD417DBD78C -:10366000C3CF479B772884FF0766FFDF2730EF2112 -:103670005ABC83E277FBFFE460E8AFEC1FC3ED7E4A -:10368000BCA187DFA51C00F8764E4E427700DF5DB7 -:10369000B30AFAC2377936E3F9A113B56F617D2217 -:1036A000BC2AC6B9015E30AF022847523EFC2FDD6E -:1036B00018CFDCDFEBA0A0CA85331D3292605B4FD0 -:1036C0006E299AAB33AA4EC94852C5BE4736E3D1DC -:1036D000AFBE5EB6F1DFE49E545BF98E866B6CE59F -:1036E00025F5C3E3FCC8F01ED0485BD9EDBFD95621 -:1036F0000EB209B6F2C2AAA9B6F1CA7C25B672B951 -:103700007FB6AD7DA5BAC0569E9DB7C4D6BE3A5011 -:1037100067AB0FE78F53F00A1FD0E5F771BFD38E69 -:1037200069C4E75B7AEEF1215D448BC3E44F1F4F20 -:10373000EFCEC678F5EBFD7C57EED42CAECFEEBCC9 -:103740001E4C239493A0CF3766C6DB07737B6DF1C5 -:10375000F8C3B3B87D7A7056623CBEBF7B705C3FE5 -:103760005FEEFDB7443D3CF7A67B482EB52D942374 -:10377000789FAA39EF2D2FDE1B7B7D218F23B46527 -:10378000C33ABD948F41FC7570D16D23F05C2D352B -:103790004FBF06E5BFD0DF257911761AEA537D11B8 -:1037A0003612EF9741B9CEBC675692CFDFDF68BEC5 -:1037B0005F854FD0DB332DF84AD4C741CFB897C1CE -:1037C0005D60D3FFEAA3EFF72DCCE7F19ED24F2245 -:1037D000A5789F7AB6F6D2217E6D9ACB9F378AFF65 -:1037E00098D58FDE7ED3CEAF47891FF69F997F5144 -:1037F000F9FF87261E5F7FA6C9C3A2B0BE134D3E48 -:103800007AFEAEC94FEF8F36A9F46C69CAA367B4CC -:103810002940F5FFDA5448CF434D1A3D5F69AAA00D -:10382000E7E1A630B57BADA9869E479A747AFFF191 -:103830002CCE97570B3C5A9E8827840F3A24C2EB14 -:10384000424CD59D724E93ADF21DF0FA6932BC5ECA -:10385000A91E8916EF1D1EE67A2A291F0D9D2DEE41 -:1038600085713B798E4E323F069F0BE37359F1F819 -:103870009C1B4D9AC104E7A0D9050307E701337EDD -:10388000732093D53CCDFDBA4D12E91BDF382ECF06 -:103890007F100E913C1F322EB93CCFE923CF979178 -:1038A000DE6287316E8A6945288CD7E1FCC9E32145 -:1038B000C6A09C8BE281CE2B051E2CFB15B8123CBA -:1038C00024AEBFB4489B8CE3E03D14E7E0BE7AE44D -:1038D000C6DECF348C493D9BCFE17DF8BDF983D066 -:1038E0005E7163308AEC1570F00A71BF99698FB40C -:1038F00077D667F71DE70FC57B49AF3F18B3739EB7 -:10390000203B26B11DFC0E111E506F59F090440E45 -:103910008493ADBF4C7EBE7723F43FD0CB285EA608 -:10392000A24D0DF03FA7F0EF341C38E7203C5FF0CC -:1039300048241FDD0FDCEBC1D8F6B3DFE5ED8C6A60 -:1039400089EE2FA475ED57D14E0DF6EAD7E0F7C6F4 -:103950000AA3954EFC3E6868DAB8408A850E428A12 -:103960005D4FA2A51AD33B140C1B9C50BE2EDE5EED -:10397000C6FDCF8D9773E8DEF53FCE063A9D7FBE3C -:1039800081A9F9667C35399E564B96789BC202AD6B -:103990009373C8EE3C741D9EDB8C661199E8CA20B7 -:1039A000FF5BC02B7BC3742F4FF8E99F4ADAFDB34E -:1039B00093D80FAC5EA37337E670D0B95BD304BD68 -:1039C00069369DCF279CCBF85EF93F12E8B45607C5 -:1039D0008BA27D6164B8087F89FB35B9B07213AEE4 -:1039E000CBFFA5FDFA1D92F53B0137AA33C89FBA5C -:1039F00000FE14DE436956F8FD28E3447AA4938060 -:103A0000647968B7DD2FDF1CC0FDFF7EDAF7C83FA1 -:103A10006A047F0BFDAF6DA61CBE3F35A383818278 -:103A2000DAE66CF81F58DF22B17007FA5B29D74736 -:103A300058461CAECED95C9FBBD91D8390CFBCBE6F -:103A40009927CF4C48E6EF71FFC419DBF76C1FF9DB -:103A50001B66D9EBD2FD98F7D8326EF52EBC8F6578 -:103A60000CF1F0F34E25ACCE03FC3C64DEAB653EBE -:103A7000836559EEEFCB4C398BF1D9563066F07C2B -:103A8000F79709F038AF101E174A18F447B35C11C6 -:103A9000CCAF51511E015CAD7E07F1CD2695F3FDF3 -:103AA00026AFE6F125D9B72D884777FFFB29E76CCC -:103AB000F2611C7B87D7417CD9AA2A5B73A0DCEA20 -:103AC00055F8F75A554745B27CAD8F6673BB099AD6 -:103AD000A4507E53703ED931FDCDD366EEA728A702 -:103AE000E6EB1AF18F1A08E37A9ABD5912C63745E8 -:103AF000FDAFCDF1459C78AB6917A5E6ED8D62BCB5 -:103B0000A665D8AA09882E0FD83967E1BD277F2F6F -:103B1000D9452D433C35C9CEBFCECFE671B6ADCE2B -:103B20004005E2736BBA831980BFAD39C9F5608F68 -:103B3000B97FCDEAF830D12DE063B4D4B7DD6F4C56 -:103B40007DB9D9B9C38FF7D0B68EBE95F2BCB68E0B -:103B5000E072B7F1C889CE0DF9C80FDF62FF86FCAD -:103B600090A5D0BEA92CE041FDD5E2537CE8EF4FF3 -:103B7000CC5AE7095AE497A0FFED6887C0D3396CA7 -:103B80007E0DD2E385C2D40022BD4C3E42DF0969DE -:103B900009803CCDC13CA4069FF5FE3FD8D37215E9 -:103BA000C0951E70D8ECED4185767F4165BA87E8F7 -:103BB0007318A7A3FEF62F111E2F4A9CF117699FB9 -:103BC000A9D724FB2EC9B82A8E574137CE4BD0CD6A -:103BD000A5E0B7E9BBECB8BECBA91AB10ACF2F1E3E -:103BE00062BC7EE491F39DE8AF2796BF2C7F362B15 -:103BF0003B481E378F72113D25F6DF9AC3E1F9600D -:103C0000F647341F861570DF323D3C8EB4BD7070B0 -:103C10004A32793B6BA25E5465B18B324BF7921EF0 -:103C20001D5CC5087F5E35EC1B05E3788FC940A39A -:103C3000806FC7677F3DA55E391E951D0D2CCCC7D3 -:103C4000233983BFCF40BE6598FA64CB0D6F30CC6B -:103C50009FD93E5209C89487702470313BDA5B6863 -:103C60008F137DD138504D95998F92C252781E5046 -:103C70005548A1FC1B07D79F1AFC3FD4BCC22E9904 -:103C8000FB3FD43C5A52F1158F7F65D5325A4F2CE9 -:103C90001F05BF2783E3E88CEC0CBC108BEDAE5BFB -:103CA000CDEDA86CD62BE1F9DE0D98952323BD73DD -:103CB000F97981653B281F07A6C17C12C97090BEA7 -:103CC000FBAF379C9482F0767BD1AA71B83F89EB29 -:103CD000585365C6B362EBB8381E049C034DA74227 -:103CE0002F377BB89ED54021A7A0119C10D72C93CD -:103CF000D7535CB3C570FB500F372BA077B3A877B1 -:103D000098E2A00971CDBFA4F0B8A7B48EF9A4229F -:103D10008A6BE6E13E35B2D400C61D0729BA07EB2F -:103D2000D346298CD355C3643C3F89FBDBAA97E774 -:103D3000BF35529EE0AF50AF41BBAECF2E2E8FF6B7 -:103D40005D42AFB51D1BE5A5B8B9A72E0DFDEC670B -:103D5000FCB947D06FB9E0E1F95BA25D57C2F74CFF -:103D60005A4C39D75365C6C753FE2263FF197E5597 -:103D7000C13CB990671CC9F76629F93940AF29DF02 -:103D80006E54DFE474B65A7C876C35C9FF77D34D27 -:103D9000FAADD79750BCD8B4E398A6A9BE4971FB39 -:103DA0004DE84BBFE233EEC271CCFCA93EEBECFA1E -:103DB0000786DF57617E4BDC3517E71F14CB9BC3AB -:103DC000F913EDB6FEF0D966FABDCDFE10E55D5CE7 -:103DD000409995E45C443CC1FEEC463955D06D9762 -:103DE0002F697976F9D2EA68A03C2EE366E6C33CF7 -:103DF0000F5615F05BED5FB0438F571133DBEDC904 -:103E0000FBAAB9BCEBCA54158CBF9478820CCF1BAB -:103E1000946C9DE17EB8FC818BEEC7CFABB8DE6FB2 -:103E2000C95B1E467FE5E1E9DF24BC4CACE079A527 -:103E3000A21DE8CB0FAA2C7E8BC83BB8ECEF23F970 -:103E40001C948F78B9F1A1B6692BF9F791FCCBE9F5 -:103E5000FB48CF78F8F791BAD2F534B4BFBEE8F793 -:103E600091EEAEE6F41AF27CE3E08C5C0B9E7A7481 -:103E7000CA0771F9CFD3B9CC0C337F24310EE47665 -:103E800037D0395AB4B86189350E2CF0F77393AE38 -:103E9000FF50AC539E4F7F7FDF41B4438CE1BADCCF -:103EA000669C734BF1B709FFF32B3229CEA49871AE -:103EB00026D7799DF27A3B27EAD7565BF49D3BDB08 -:103EC000207D97F63DC6EFAF7FCAEFAFA76D6421A7 -:103ED000BCAF1EFA6C3C9D3F85A229C467D33F0945 -:103EE000D0F7A7CBE4A75A73A1BEEB9842DF85EFCA -:103EF0009A9E9A857AEDE363DCBE4DEBBAE9C82D54 -:103F0000502E3E5687BE3EC81D806570DF754CFF43 -:103F1000C4F1A5FCC702F41F2DE72062DC5F361D4B -:103F200026FAD8D7D44DCFFD4D517AB635F5D0B35A -:103F300050D14A703D85DD7426C9A69C817A0B1C40 -:103F40008527A0BF851E864CD4B56AE2BF6E5BBBD9 -:103F5000B4BC1E5B3BF05F4BAB0B308F87E3D3856C -:103F6000DF0D83F1E7F6B0CD92FA1F4A5EADAA1ECF -:103F70001879F58FD505179357FC9C34D4637E27A9 -:103F80002C811F1DD52AF90D31BE34CF4B859E6E75 -:103F9000C57F823E6DCEF826976FB17C0C7EFF50B8 -:103FA0007C677EE3EB1FEDA1BCD277CC7A83FD4426 -:103FB000B3D433F6C92ABC0FF2123AAF60879E7BA6 -:103FC000BD6B15DE9BBEB52653D100BE123C58CD4D -:103FD0008CDF7F11798A8978FB9FD59CAF8FE7FAB8 -:103FE00028BEDE92CBFF5E4162BB37ABB9BC409AC4 -:103FF000B0FE1D8FD47EEEFDBC2AC635F1D6EAE2B6 -:10400000F907FDDDEF78ACFAE2F73BFE60D65FEA38 -:104010003EC72FCD795FC4790B282F720FD285F858 -:104020003B1B51F37DECEF6BF859D2717E6ECADD0C -:104030001BE7F8CCFDD414F33BD47B893ECCBF877F -:1040400020EAA79C8BD5EFA3F9627FF740A7F88FF2 -:10405000B85FF7F3EADFEED960F99E574BEC3B8986 -:104060003C6FE95313FEC4A7B85F12FB1E147B6BB1 -:104070008F66F91ED44FAADF396B7EAFEA10C16795 -:10408000DEAB79348E875FD3FB84EF0374BDFEDA39 -:104090001EF33ECE6FA8BE21F1BB5BEFEDB1DEEFAC -:1040A00079B4FAD42AB3FD515AA7F99DAE247461AC -:1040B000D2ED993D789FF032C67B97C633BFB3B53A -:1040C000D9E4A3FEE819DA9FA2F6B1EF0FD7795031 -:1040D000AFC4EFF1BFBBC7F6FDACFEF1F5475AB771 -:1040E0002EE665667E13E717911F26E8C23B87EF31 -:1040F000C776931FF0FE1FF55F316078F88CD69578 -:1041000070AFE852EBD837212CCF4138FCB1FC62BC -:1041100085CA5F121E711F2C913F86CF91445EF3BA -:10412000609A273BF61DCE6B06625E1877048D13EE -:10413000FFBEE7F57392CB9F2F342E532F2F6F4482 -:1041400094FF3F19A999BA607100000000000000B7 -:104150001F8B080000000000000BF3176060F8518F -:104160008FC09C687C5AE3BF4C0C0CFACC0C0C97AB -:10417000D818189C39191884F8C833E7229ABE7BDE -:1041800040B366F030302C636560D809C47A5CD8DF -:10419000F5D90822D847817E5F01C417E91C06A320 -:1041A00078F0E01A11068649A208BE9E18AA7CADD6 -:1041B0000882AD2345995D4E40FD008850BECB80FE -:1041C00003000000000000001F8B0800000000003A -:1041D000000BD57D0F7C54C5B5F0DCDDBB77FF2728 -:1041E00037C9029B10E24DF863D04037103058D4E5 -:1041F0004D041A90D7AE69ABB1A576A14A151156F8 -:104200006B9567D5DCFCDF841002A202455954107F -:10421000ADB6A9A2B59FE5BD0D508A7D7E9FE8533E -:10422000AB56FB62A5B45AA5F1594AFA7D086FCE88 -:1042300099B9D97B6FEE6E962A6DBFF86B87B9F38B -:10424000EFCCF93767CE9C99956C6E52760E21A70C -:10425000E1EF12421EF21242C6A4D2CAEF7DF986E5 -:1042600027AAE8BFBDCED04E9A54FE626E71B4222A -:10427000557F1611B05EED2F96FC91D07AFF4EEC73 -:104280008A937EDAE71FF486685E15EC04DA394912 -:104290004DC1BF0468F9902DD445F3C993361FA1D1 -:1042A000FD4C2776E8842844F645A6D1EFE29773C3 -:1042B00089AE7F737AF16691240B08D97F27112389 -:1042C000B45E9BFF8225033E425E6C4CFEE5C864F3 -:1042D00042C2C9A9A242FB39D07808F3FFD678F8C8 -:1042E0002F471C8444491E8E533BF72371296DB719 -:1042F000DF411AFA68BBDAB0E058AA1B2FCAE7B34D -:10430000DFCDCBE51AD1B2DC4FCBE9F7DAC0E596C9 -:10431000E5513A23AC97C7FB191AB0433D850C7A97 -:10432000719E27EB2DE7398EB7D3F255036CBEFB98 -:10433000DE3E7119D0214972234E484F96BD05F8D3 -:10434000EE77090A29A5F81D5884F84D027E6917F1 -:1043500027DE61F8DEFF892DD444F15DEB927D21EB -:104360009A2722A5072DAFF59130C225D294C271AC -:104370001987FB2A9ED6438A7451902EFD2E4A1728 -:10438000DFE8F05EB2594278B579F6C33CB368A76E -:10439000D1957EF545FCB41DB1E68391F8A1E3CD3E -:1043A0003C733835BC46E6F6FFE5888BE0DF69FAFA -:1043B000BFF9F2F37F39529ECA5F3274D890A71CBE -:1043C0004D5CB329BCF04F0552F1CF035A79292B2C -:1043D0008771E28DCA9F2751FEEB6D247F9E44F9C1 -:1043E000AFA7D185F9EE4619F35D8D41CCC745DA0B -:1043F00084D231DE4D122A6D9F17A6F575E3E5567E -:10440000D3763AF8FC21D990F796070DF5DD8A624C -:10441000288F2B37DB1294EE9D15B6845D0038A8EB -:104420008C9C0B70B830A5E0BE16A4F399C49A908A -:10443000750EE5576500CF4B76D24CF3394AD8B6A6 -:104440008CE64B82769208D1F1730609A1FDC5EF87 -:10445000246423EDAFBB72B66D19CD77CD71CA76EA -:10446000999004ED3FEEA4FD9C4A2A2DD0CF34292B -:1044700004FD905EF1B7802717FDEF741921131525 -:10448000E91D5B0E21A52AFDAE9F9F530D825CE7BF -:10449000561BBF4F5496DF4868FD8944F7BD34452D -:1044A0004F6D5C2D6F1ECF3CCE396B4CFD9BFA2DB2 -:1044B00051066AE48A54BFE790C126D9F7CFDC6F72 -:1044C000B856003A858892A83C7B70FBD67C9C77D6 -:1044D00064660ACFDD0EA607CDF236406CA83F8891 -:1044E000388684295C8A624B74D17EBA4A6DC83F93 -:1044F0004A1B4980DE5A37E1700CF25DA592D24C1E -:10450000F3A5E5071B84E984AC9D2023DF75ED75D9 -:1045100092E610832340F9B444E3D353033565C0D6 -:104520008702096DA4E5A5CAD126A82FBFE6511CB4 -:10453000D523E747D6B0F9639ECE7F10FE316B647A -:10454000BFBF9C258523C0B72A4938293C9D939A33 -:10455000EB543ACE03AA48407EBAEEEC7B1DF01C29 -:104560009FCCE035CFBB449196025F13FDF874BC3D -:10457000924957DC00F332C3A1E98BEF37CA288F89 -:104580005B1ACB317DA051EE033DB1E513BB257E17 -:104590002F13987EDEEA88D8003E758E2DB113F574 -:1045A0004F74EBF5347FFF77C7CE8075E0E6393680 -:1045B000D42F7FEE66F8BE5FE8BD8A607D49C1FA00 -:1045C00026F97F400C377F8BD6BF3F5840542ACF07 -:1045D000258EC30BCF85FED69455AAB4BFFB6FD9E9 -:1045E000F80EB42F993345B1D3F613AB8FBE4517F0 -:1045F00071B2E5D44030E2833C93EB923563FB2605 -:10460000513E19AFF4DE04E397544B4AA234C597E8 -:10461000C52484E39CD3E025497974FE2C5E9999E6 -:104620003FCF9E1EF8FBC85511C855410AEEADDCC0 -:104630003E31D37DB160437E1996AB6A26574F5EFB -:10464000C8E8ACC9D59609BDEFE5D27CCF37189F35 -:104650009AF9BCB4FA680DD0B59BCA4F7E909042CF -:10466000A7F2B140F33D4BB91C561F1596D3F67F08 -:104670007AD5A31090A725D6FA3A1D3FA752E3B8E2 -:104680000FDC62AB8DD07ABFBC76CA1F9D30DE12C4 -:10469000490139EB11CB717CE5BB92A2EAE859B232 -:1046A00084CA13E5AF925BB8FC98E46AB4F1E38D79 -:1046B00009F22E95A30D8D4112A6745BDFA8A07C94 -:1046C000ADE37206B62829A4792E67A47C06E6D34A -:1046D000D99F8434A1DCB994248952FA6CA07D93CB -:1046E00022F89E0C87E712920FBAEA42042769A3C8 -:1046F0006BFBFAE17212A64C4F7A049E57FFA88614 -:10470000E9787288E59F6BFAA3DA428570839BE5AE -:10471000F70AE535EA5C7DFB83D8BF569FE693B583 -:104720009374FD41FF157A786C35505FEBEF8DA6E1 -:10473000A21A958EBF9EE7A5E63C963FCBFD770B70 -:104740007D41CAF464ADA99F6E81E349FD8F70D8A5 -:10475000971AE73EE1BDB06A28FF4318F0A495FF21 -:10476000A0E93F5495D6FF8844B608940E33E64539 -:104770008B08A5BBB72E49C094DA60C2776A7E2F3A -:10478000E1FC7C152CFF60D32761C0B756FE8CE09E -:104790006F027C03DFF8C6121244212164F3CFBB01 -:1047A000AF7F01FE5D9E4FC81C3A8ED24B14DA8754 -:1047B0006D524C807D47708978D4200F9CEF287C07 -:1047C0004F08349D3137FA35580A2DE053F5F0691A -:1047D000E38F06AF06477AFE64E39BF9A87641F5BE -:1047E0008B73A97C790F3B424E05E6210BA0C7F3E2 -:1047F0000128AAD7F24EED473A11B12F0876B4B985 -:10480000DFFC794524A19BE7674DCF2D9067787B2E -:10481000454F579A7F4D8FC727A0DEAC917CA7CD1F -:10482000CF0DF3236007D3F955E9E7F75403CC2FF5 -:104830001DDECCF35BEFEE6D8858E8DF8B6D7CBF3F -:104840007B71F597A07F3A1E01FDE5560651FFCA20 -:10485000301EDD6AE69EDADF005BDB74E3C973E9D4 -:1048600078E5670F9FA3F1B18FEA2F85D6B3853224 -:10487000F3B1599EB5797B61DE02F011DB0F98E749 -:104880004D08E523FFFFBFF3FE5864F4BC85F6AF87 -:10489000B27931F9F807CDEBE3170A505E011E3B00 -:1048A000E3E7A0157FBD2B28867DAE99AFD3CDEB76 -:1048B0001FC5A723E79519CF675B0F65AB5F9B5FAC -:1048C000F3201E7BAE61FB849E43F3D1EFD0F3C295 -:1048D000A5E3008E9CF8F9244CEDDF29D03FEDAF25 -:1048E00047B32F36578DD23FB32FEE6B247DAD9358 -:1048F00009793A6700F7C3144E6CBF95DA9F09AA8D -:10490000E0AA5EBAC5BD948EB7F5BA8D6EF02BF5F0 -:10491000707BB1EAA587372CA0F81C776D7EA59D2A -:10492000B2428F5BFBBEE7F929F4FBE66BF877EE4A -:10493000BFA2DF5F82FA415E3F1D5C85D2403482B8 -:10494000F242E1D2E15F2B7FCAC6ECD227C1CE3A58 -:1049500017F633CCCE2AF4F42E05FAE66C959407BC -:104960008591FDFE6FAE4FEF033B8DCE77CBB5ED5E -:10497000456057EDDB317BBF0FE0BA86A03E3F3785 -:10498000B1ABDFA1C0F8AA00787ED241343B0BD78F -:10499000F9A26B34BAD60B974EC276DCCE62F9EF31 -:1049A0000FAFAB5F47BBA538CAF2CF347FB7A64580 -:1049B000D495ABDFAE0917A7CA5F6CBEB106D6DDD2 -:1049C00019AEE89B7329E96650BDD742E198212AC8 -:1049D000F618F0CBE680A5BDB8FB79574382E277A5 -:1049E000F78E2913AFB55847281591CE5A7EE62188 -:1049F000A39C3D09F873021E99DDDA4DD10BF583B6 -:104A000051A505F039F31009C17E349DBE4B47C74F -:104A1000E036A3BE9B211AE775B6E6F31191D97E65 -:104A20009BF74FD7F5976D6C3E7690A3992293FF35 -:104A30004F3B9F24E089D911BFB1EAFFEF35DF1961 -:104A40003E3A4EE0B31F27681A275DBF667DA5D6A4 -:104A50001241047F7C1109013C79F36204FCF87671 -:104A6000DFE1A04AED3D511EC0D411180CAA54EF4D -:104A70004A41A510526771A810BED3FD11978F8EC1 -:104A800026D4ABC3F9CE26D0A3EB218FF2B716CB39 -:104A9000370EE7D761FEEE094C3ECFB1DFD30F7A78 -:104AA000B80C940D856B5DFF1B0DE0072838E00BFB -:104AB00081A951E00B11D0C35A794FFF7B4117D820 -:104AC00071077CC44DF93D5F0E137DFBF5FD7F0D35 -:104AD000CAB4DCC7CB7D8188A17C63FFD4C22045EA -:104AE0009187977B82512CBFBB7F4EA10276CC0170 -:104AF0009F0CDFBDC5311CF7D25FACB4A13F76B1CE -:104B00002DE1D4E9ABF8E219A8DF9708D1A9764ADC -:104B10008F9A5F74BBC07E881FA81807DFD1E6415B -:104B20007F92F87F613F0AD9D36807F9E4A3E7735E -:104B30007AD953F4E886F30AF403B3738A383FA7AB -:104B4000506B9349185FCD6174A21C9DF23F63FBCB -:104B500043297F35E60F1BF27E3911867DB418A0FC -:104B6000FA81B6F786D530D05D2A6679BB2F9404DA -:104B7000FDB1F91B2404608B149F507FFD1C9A57D4 -:104B800080FE116CDF398BE5A56054857CBC92E515 -:104B90009DC5B124E4D74E65F9CD1A9DC9A3463E03 -:104BA000207F42BA770EE7DDCD501ED7F886789B7E -:104BB000A17CED454CCF168935FB00FF9BFB3B0BE1 -:104BC00097D3FE73811F68FFB94B42482F8D2EF794 -:104BD00029365C6F35BADCA7CCC07382CA5C8A09FF -:104BE0009C9082F4A83CE7669B0CE71DE7DB123B38 -:104BF00005389FEA760FD07A9BCB6760798968E7A2 -:104C0000FE01E60FDFC9FD0165D4BA00BB63275F73 -:104C1000AFF7DD332517DAEDDBFABF90DE17DBF3F4 -:104C2000B0DDDA72767EF32C5DA7C14FF74CA30B93 -:104C3000D31FD1FEA2545F3FD1E8C2F4078D32A644 -:104C40008F523D0E69372D4F82DF81962769BE6FE7 -:104C5000C05607F27F4F2335CD68FBBB1B5D1F8B12 -:104C600093C15F21637E7D6310F3DFB6D5AFB133AF -:104C70007F8AB782CEEBE99727A17F2FF4862D920A -:104C80008079CBA4607155EABB869F6FDB6AEF0425 -:104C90007EFDE18088E31071A0EB7CEB7ACD506F54 -:104CA000FA1B22EB2F30B0F1B28065BD0EA8F7F8E9 -:104CB00011063771253D69FAEB06782BDEE6F00523 -:104CC00093F969FADB00F51E3BC2E1F325BACEB3D6 -:104CD000AE772F8C7BDEDB1CBEE2C4C645D6E37EFE -:104CE0001FFA73E5337BE573E0CFA8C2756087A038 -:104CF00093E74D4B55C146E9EC2A188841BD6955EB -:104D000031A18C8E1FB83A26D8A6313BC346F36E2C -:104D1000E887A6E797D3725A6F1394FB75E5D09E88 -:104D2000A6532B5879E09BC6F261BDDD40343B357C -:104D300009CED6E0578CF92936A61F9FB3FFB606D9 -:104D4000F87D8AC4CAFF1BF260772D36D5F7B0FC18 -:104D50006FB5FA39ACBD4D6479573E9B77CE565747 -:104D600002ECAE0DF3DB83CB7CA9F9E62D889743EB -:104D70005E9BDF86055B83CB74F3C9FBC2B6F2652D -:104D800015E9D715B7622361DDBA3BA5B782840B5D -:104D9000FEF9F5CB5775EB06AC2BE3F8BA30AE9ABB -:104DA000AD2B146F2AB35719DED65F64C45BEEC512 -:104DB00046BCADBFD888B7DC4B32E3ED977CFC74C2 -:104DC000F8A3E387F5E36F5C681C3F7F9171FC8D6E -:104DD0008B8CE3E75FF6A9C74FEAF9A6B7C638BEE2 -:104DE0005C6B1CBFB7D638BE7CE9A71B5FA34F67BF -:104DF000FF16E3BA5E15217AFAC5FB3B8386753D43 -:104E0000C4D675AD7C6DFF4F83B0BEBB617D07FF1F -:104E10004C395BDF2BDFFD28087EFBF5171D0CC22C -:104E20003E633DAD7BB822B56EECBBE856DB63B4A8 -:104E3000DFEF4C65EB4CFF45CFB840FFAF2D67EB84 -:104E40004C9C9FE77635268FAF74A4E6E58FBB7147 -:104E5000BFA7E587ED25F2BB1AE0C378B98DDB4B20 -:104E600085CD616A8BBAA68A867C67052BBFBDB5E6 -:104E7000B059055F8AA816C23AE42D277FAEB0D894 -:104E80006F69E36BF0A41F9FED8B53E34F348D3FAD -:104E9000D130BE96774F63E5AA38A916E0D9CCF792 -:104EA000CDB788BF43FD72F6E09BD61C9EA4878FCA -:104EB000E553F0B1BC06DF5DE2F45A75D2DF13BEF4 -:104EC0000B4CF8BBC084BF0B0CF85B23569F11FE44 -:104ED000CCF5BA4DFC790309DF268E013922686FC3 -:104EE000C644999F07B1FEAA442E5F303EC4ED2C04 -:104EF0009512934B59793D5DD796887C1FC6EBD7A9 -:104F000099F29AFD0ACBD169F4C358DBAF12617AEA -:104F10009BDA1DA19DA8D743284FA97D07F363887D -:104F200062241CB1D007F78AEC7C5890430D00A78F -:104F3000E893D08F9AAE7EAF2870FB5A359CEFE491 -:104F400092C1A41DE008128C4F2227BFAC5C3E6DBD -:104F5000241C921889C2387659220FD2715AF3AEA6 -:104F600050F4714C8F6AF004C3088F2433782431D5 -:104F700014B6F2033F2832BF85D60F8590B71F24A1 -:104F800060276AF0B5B9230D4BC19ECF93104FAD8A -:104F90007EE379F96FF8BC5EE4696B9A733F02D1E6 -:104FA0001810BF34B61AEDD096EA5A17F0A542424F -:104FB0002EF0D7B7FAACE389B4D46C77C6A95D0AF2 -:104FC000F9766A9742DAEA7BB20ED69DE3C0C7163D -:104FD000E7DAC37A2E642349DDFED35BEE214983F1 -:104FE000FF348170BA957CC37767B0C8D0CE315694 -:104FF000447BBED5674B40A8D168F0B773F8B57A4B -:105000001D62CC2567B15F76068DF09E3DFCB1F642 -:105010005E479F6C05D76785378DAFCCFD4B05523A -:105020000CED623112D4F3BFDDC1F8542A70C5987B -:10503000BD9EAEDCC3DAFB6839D8C5BE8802E72F57 -:1050400054E4314ECC0572A0C3CF78DEAED5C1CFCB -:10505000A3490CFDB582126B003E72154B783E6081 -:105060006EA7A51EDEBEE393EFBC8EF231C685F2BD -:105070002128547E2CC6795C0C8F75D074B3181E11 -:1050800007A9E3943D6A2527631C4C8E5D9188E255 -:1050900062A12696F0CFE4FDF66AF0AB313CF7CA88 -:1050A00016FEB22CE19F99827FBA6316C2FF39487F -:1050B000D3C13F8DC3534042FDB06F0706857E09C3 -:1050C000B95CD19FCBF5F07E0B387C84DC8474D343 -:1050D000CA3B391EB29DCFDC2CE7D3939A4F1D9F5C -:1050E000CFC24CF3F9029F4F8F83AD57AEBA8812EF -:1050F000A47C959F862ECB79FF5B87E972D319F14B -:10510000D557B39CC7F2D43C9672BE5A96691E51CD -:105110000E4FAF9DCC3902F13313F97A43EA0D7487 -:10512000D9AEF19593AD1B84DC6CA0CB3DBC9F6CDC -:10513000E7B33ACBF96C4FCDE77B9C2E77649A8F1F -:10514000AE7E13AFDFCCE50AED96ED8EBDCD607F70 -:105150003C2E46DA1DB352E3D17A1DFA7AE3DBBA6C -:10516000B47A6BE1BBB078B85E371F9FDB450FE1C7 -:105170007EAC0D6C0C6ADF7CB1EDC55AB0C769BB63 -:105180008DD87F84AD9BB4DDDDFAFE67B6DDDBCC68 -:10519000EBDD07F59A2E3DA5F5BF59DFFF764752A7 -:1051A00083631BC25137DCDFFDFA7ACB1D7DCDEC6A -:1051B0009CB0583EEAD5D935C1ECCE7D1C81687CC7 -:1051C00000FC95C4DF0B7647BB18DB3E00FC408D2E -:1051D000BC9DF4FB6DCEB020D0F5530EC71E817A76 -:1051E000F9AA53B603DD6A633F82BC6A2311888B38 -:1051F000BCCF7BD776C8AF115DB23304F696824739 -:10520000433D0111E379DA84A80AEBE20931FAACF3 -:1052100003ED1EDA251DE7B60225D12580FF96088D -:10522000CCEE60706DF05E1D07389C142E880F6EFA -:1052300033C145C7C37D79E718166F4344522E42E8 -:105240007F764F08FAEB1F732BC21B6F72CAD03EDA -:105250003EF95684979645303ECF1143783B1C2E3D -:1052600019E2F1EEF3AEDA0CF1766BD45CAC8F7030 -:10527000C0FC279621FC6E124B2E2D05F5D51BB6D2 -:10528000013C8B258C4B8E0736E2FEB66B315DE41C -:10529000E8B85DE51B5568777CB107E3EBDCBE5EE3 -:1052A00002F15605974904E280DC815EB433F317BE -:1052B0007958BE98E038F99F67F1B20E322097D145 -:1052C000B420CEE28EBBCAEBD5A560C754B37854E8 -:1052D000A2865F86F8B63CC2FFECC5FDD0BF63BCBA -:1052E0009DD84329FA16F40EB7CF8D5AC8CB70BD9E -:1052F0004496F592D9D5CB8F8BD9D5EBCDB25E2222 -:10530000CB7A4956CF492ECFB58AF718E6FB7912EA -:10531000DA1F5A7C5B0EB5FC87ED935266B7EBED56 -:1053200015079152F60AF0997D494638D6BCD51436 -:1053300038A0B36F02923F80FB8D0BC8052897A35E -:10534000B43FD1A8060E38469F2F485852E7271F72 -:10535000ADFE5AB0F79CE9CBBDD3AF08A23E9BF699 -:10536000359E2E616925FD5E016903CF7F8DE7972C -:1053700034842DC6AB91981E2E27918C747073F8CF -:105380008FC2993F6D522ED2FA16E7E35AEAABB0BC -:1053900099EC46A3BE73896A2D9E7394B3F8412796 -:1053A0000823C84D88A07E7190A45C86E78BE19CA1 -:1053B000A56353F2E3088E45F9F93F85762254231D -:1053C0007D428047339F98F9C267E28B4FCB2757C6 -:1053D0009D253EF1C6ED59C98FB737CB7A892CEBA5 -:1053E00025B3ABE78B0BD9D5EBCDB25E22CB7A4997 -:1053F000566FEDBF48DCDF7A590BF861BC5F74195A -:10540000F26BBFE831967FC967C8772F34B6F72DA6 -:1054100032B6EF5E646CEFBB8CB57FAAFDAB9782B2 -:105420009F275B39F9DDDF2827E5AECCF5F3178F31 -:1054300022572E15F7936E5121C900AC5F749D124F -:10544000300D272CECBBE7B9FCBFE0607E9CB8A810 -:10545000E2BEF69F7D9E3F9098DF489BEF68F06A22 -:10546000FAF7F7766E6F99EDAF61BFCEC9D3A76734 -:10547000831E21102C4D64854E8DEA1B0FF1842074 -:1054800054C4539EC0F36973FF5D705EC7FC2EC1A8 -:105490007A1D1CCF3B995FE5E7A5ED413CAF9DBA76 -:1054A0002B08FBF4AE0982A59FE594C4CE05CBA2E0 -:1054B0005EB4333A1417EAC3AE09EC1E5397238146 -:1054C000FEE3AE52637B17B71F4E496CBCAE3B6325 -:1054D00004ECFFB6A9BB1A605C67F25F8942E1FE8B -:1054E000EE8418C68FB63BD93EC0195609AC0B2EB8 -:1054F00045C5F377333C712D6E882482F5BA79D790 -:105500003B19DFFC9CCE279B79BD2B49585F0E339E -:10551000FCA5C3D7DE33C4D7B54ED6AF127423BEB5 -:105520008E57135C4F8090F6D9048FC6D9DF20D1F7 -:10553000F387793D060A337E3B8D7945BC2A233FAC -:1055400099FD30CAB6AF65E4E70EBE9E3BC9D7B140 -:105550005FA7120B83BEF35624C832C42F0993B140 -:105560009CEF14F8BF56D546E5977241682B6575D8 -:10557000EF98CE50D2227E6998FE1592515ECE7081 -:105580003D9BE9A4EB9937B59E1D27DDE884EDB678 -:1055900091EBACF0AEAD674AE0AA8CF3EE6A647EA4 -:1055A0002B42EE207D309F57EC481F5B395137501E -:1055B0007A392B443CE7704E4A10A0B3AB9C24DDF3 -:1055C00039E9E7F51AE73B259879DC1E8EEF6E4E38 -:1055D000A774F5BAF9B9E76B1D0FB5C0FE2D6F1EA4 -:1055E000938361BE171306FE1C92985FA3CBAD3464 -:1055F000613C4B29F38F8C983787D32C57F134F7C4 -:105600006934B9FDABA4303DE44AA0DF41932F4596 -:10561000F957D4735D139A5DC0D471E541F4131F3B -:105620002F9708DC8331EB032DD5ECC84B48B70B23 -:10563000EE2BAD7DC51EEAB280D70D44D0F9F5CC76 -:10564000FA7A347D72DFA7D4273FD1E47EA43E41AD -:10565000FA5CDBD1BA1FE8D3E566FEEBFC3A952C89 -:10566000D5CDB79B8FBFC4C9D7856206479743AED8 -:10567000D1D3298F7EAFD1EBCD34F44947F72B211D -:105680001870560A0EF3FC763959BD7C18BF627447 -:105690003C8CA403C3438BD39A0F3EABF9343BB38A -:1056A000E3E36DBCDE368E576D5EA3C989D67F1FDE -:1056B000C757DE3C93DE175503FDED1ADEEA4CF5C5 -:1056C0005CC67A1A7E4427B357B47562B4FEDF967F -:1056D000187F98FB4F2787BF19964315FDB2DA381C -:1056E0004EF21CFA0F8E53BDDC5549F7A3BE418C18 -:1056F0002FA07B7D8C6F82F82FBDDE35EB2F4DFF09 -:10570000A7D347E67DCB68F5A58094D14ED2EC9A1D -:105710007C7E6FD2C5E381370AD6E73C435C8EA816 -:1057200062CF2AAE0FC244001F2442F8FDBF707F33 -:1057300013CD8F0D494A17F83FC4F9FD3B687ECC65 -:10574000CF9CA42B042E9779FDFD94DFD6865D11A6 -:10575000281FE72A1DBEA7D53B1BFC5ACCEE22F61C -:105760003B5E877BC063AF1409E0D549E6609CF6D9 -:10577000F13594769523E1192B12323E9FA6DC3F3A -:1057800080E787B0A5FC8A119F64B12E0F7E6097D9 -:1057900071DDCB76DE6678D2B51B159ED43EF4085B -:1057A0008CEF2499D7B5339DDFB05D9BE5BCB4FB8E -:1057B00068DAF7D2213B51E07EFB9080E939435E05 -:1057C0004C4B86DC984E182A200A255AF1501EA60A -:1057D000E387C6E3F7A2A1424C0B8726621A1C2A74 -:1057E000C5346FE87C4CE5A1A9986EE072983B3413 -:1057F00013F3DAFDB79CA14ACCFB873E8FA96F68F3 -:105800000E2BE7E7A91BEE8C12F0574BB00E51F9A7 -:10581000689BBF1CD725F3BC36B8D83ADCCEEF095D -:10582000B79BF4761F2F7FCCC5E47E03970B22C66F -:1058300088DE6F7E3FAFB7A12C8AF677BBB61E1607 -:105840002E37AC87E6FAED69EE273FA395737848CB -:1058500079FD28F461E7AFCE4014EF0D101245BD7D -:1058600044C4A841EFB66BF067798F70C3FC6790B2 -:105870008FDD549021B4D0FD856D0D0F83DE5970FE -:10588000EB7507A8DC7DE88CDEE68271BFB002997B -:10589000EEFBAB6E0F82DF77C3FC7BF17E1398DFEC -:1058A00010D7DCB1E08ED8C3C87551B4B369BBBBA7 -:1058B0005CBA73D0CEE5B737ECA2FD29AD36A2E8CD -:1058C000F8B5E40E0F51F4FAEB644121B42FBE2574 -:1058D000DFF0BD686591A19D764F22784D99A19E1C -:1058E0003CEF3C43BD9CB9338CEDF839B9AFEA428B -:1058F000433BA74FC32B3B47A4F437AC1F1D823556 -:105900001D632EA62FD3F1CD152EB6AEA5FACF4C22 -:10591000B774FD677B2F24C51F69E781E710B1F8D5 -:10592000E279604F39E528DE5339F3FA67771ED9FB -:10593000D633EBAB1CD05705A04F044C7DA0AF0A6B -:10594000408FB831D5EA9DE97DDB75A06F7C3A7D4B -:10595000338BCABD053FF8DC99F5CDF9BC7CB29B11 -:10596000E99B759CAFCC7C13E4F5D681BEA9185D8C -:10597000DF04DD99F54D251FEF1FAD6F3A67DC1B86 -:10598000FD16CDB92FD8D6F0104D3B2A6FC53CD5AA -:1059900017A29B9677CCBE23F6904E8F9093FFC9AB -:1059A000F892F3436EB5517F68FDFB43263DA2C9D3 -:1059B000C3DF28D7A738BFA6A3CF914F29D7A7CE3B -:1059C000925C9F7275CD83F3C56CE57A64FDB33B41 -:1059D0008F6CEBA9B5247909EC4BA678122DE0BFAA -:1059E000B4F586D8BDBC28C6ED743EEFE07E1EE659 -:1059F000FF9BE10A2F02FE99E18A2C76D3F63797B6 -:105A00002AE3609DA6F92FC2775D3E62CAD79BEA62 -:105A10007FC594BFC254BF415F1E57947170BE18BA -:105A20003FE4C0F3C1B862ABB3E2A7856EC62F876F -:105A30005C9128F4776EE2BC7140179A5F86FDB9DD -:105A4000597F347F8D29BF1CC74FE5AF3395AF30E9 -:105A500095AF34E557E9EB779E9A781FBEBFF14BBF -:105A600007D969E14F7A95EB898EC9B7479B995C55 -:105A7000DE06ED3BA6DC115B46902F08C06DF79962 -:105A8000F67F94CFF4FC7288F7F3F309B7E2BEA96E -:105A900083EE9F308E11FC7816F8F9B59BBFC3A535 -:105AA0005C8FF71FE28537A39FA3A3B819E3148E79 -:105AB0002B129ECFC64BADDB7736323F5347B1F545 -:105AC00039C2AF210857678F9049CCFF076270DA5F -:105AD00006EF0931FDDE56DA8EFA554A5ECFFC1B21 -:105AE0008551F46F3CC8E927F962E8577016C72C56 -:105AF000F7F51DC3F830FA35F769F8E0FB481D3EAD -:105B0000500E9B3B3F3C00EB6BDC6D2D673F7633CB -:105B1000397304B31B7FE4FCD9FAB01D2EB558ECE1 -:105B20006BE30E1627AF4E607E00918EA3F72B9885 -:105B3000C71B9EA7699FFD00C753DCCDE2ECB5FEF5 -:105B4000CCF03CC2EB3DE2667E056D5EA2CCC61990 -:105B5000ADFFE7E0B216F80164B31FC2A8E7EEE0BC -:105B6000F51D0163BD74F8B973183F2C1E4BE3DFBC -:105B7000D1F85D1BE710C085FB59EB7DB872B21AF6 -:105B8000E3378E137F6F17EC9B45F97588E3B88D6B -:105B90006E93C0CFDF22AAE85F501522EFC4F34F07 -:105BA00076FE709BFDBC10E83B178FAB20105711A1 -:105BB000D0C525829FF35C8CB37804CAD7A84E1950 -:105BC000DE3719724F6471AB27D7603C4527DDA9DA -:105BD000C3B827DC250978CFCA9EDB8DF6BCDD5E15 -:105BE00019B38A33153D8C6F2F39B91EF56CBBC2C2 -:105BF000EEDDB48B51577E05B8AA5594D74E257368 -:105C0000FCA2390ED2219BE30F8DF89AE661F48D48 -:105C1000F3F537EE0E35E8E393821E37960FB98D14 -:105C2000F075007C3E802B86F1A4F1629B0DF0762E -:105C3000B6E0D3C6954A6D11C04B8044315EC515A0 -:105C400014715C9B97E137DDB844113FD0BF1F73DF -:105C5000B6F039BCFE46193F89C483FCA4CC73D589 -:105C6000EE86FCF3CC2F6F1EE788277A8147E71773 -:105C700016E528FAB7B4FE168E6171DE6231C1FBFB -:105C80008A1289D495D2F9B714B3771645DF2871F3 -:105C900011C5667F45BA7339763E824554446BFE22 -:105CA000C0C6F5F078013F19C060D15C50E91321FE -:105CB0005E4011D83B102181C595CFC538F280FBDD -:105CC000B3EE7709F62B843790D3DE33E8571C40C8 -:105CD0003FD767DEEF28F0BAC936EC1742534F17AB -:105CE000A4FA05FD8B4EA593A74FC3B9999D687F74 -:105CF000CC0E176DEC5E1529CAC1B8C3B6C0CD2E47 -:105D00003D5D9B3C6586F55592DB6F1272E0DEE7E8 -:105D1000CAF04006BE6C0339023F62F135E181F200 -:105D2000F4F53438453A7D2B7F68BB144D3481BD82 -:105D300058E263F1AA620CCF473A84FC195D553AE8 -:105D4000FE2D96920097BF2AAC423C6347812D04FA -:105D5000715822E93E8CEF3BD9178732C9AB582CDA -:105D6000BEAF9FCF568F310EA465147E6FE3FA3A13 -:105D70005DB9430A45ADF4F0131EBE8E79ACCB3F3E -:105D8000F6D63EE6B15877F6723DD5914755E9E72C -:105D900018FB001F88C5075F073CB48D5990593F19 -:105DA000C946FDF45FDEF04F609C0C703C67050750 -:105DB00081C714B2B0FBE579188C988A070A30BE07 -:105DC000863820612C9CD2B2BF75550F26C1EE7665 -:105DD0002CF585817EF6F06E02EBA81617640F7B1A -:105DE000DEB1213DE7B2F8A072E6670DD3FF308E39 -:105DF0006C6EE6B831BB29FF2B339D1B9FC5F72284 -:105E000034F8B53875F3BC9EF2D6BEED9965858F32 -:105E1000ECF6419B28BF10CA2F1BE9FA4E91427A3B -:105E20001B65CCF7340631DFDDA860DADA588EE97D -:105E30005A683A07E23F62F152D88F041F0E5E4B58 -:105E4000AB6C029A605CCB8EF9B08FEC1ACE135516 -:105E5000807325B81F4FEDD0BF7A36CEE7E76C3C94 -:105E60006EB67D3E9EA30DE7B7B4815DD8C5E368ED -:105E7000E5B50FCE87FDE3A609DA3E39ECFAAACEE6 -:105E8000FE9AEC75B073A652AD7D4B1BF4E7167904 -:105E90009EEC996FCC9330C0E376B1FC42EFD3080F -:105EA0000FAA003ADEE5DE6730BF6932F73B54D413 -:105EB0008F8247E6C768F728CC0EAAC8473F8514EB -:105EC0000AC1F502B2298FC39D653FB0FFC1F5EE4F -:105ED00015EBF5322537A3AC6B1C8ED1E84FD18181 -:105EE000F605E86115C67DD58EF270B6C7DDE438DB -:105EF00033BC48D5832A5CFDDAE7895EE4A5EDFD75 -:105F0000E1BE6429CDE72C4EAA28BE598E5BE8E598 -:105F1000F7C9E87C41FE353C6B76C74D40C731A9D7 -:105F2000FE1C8130BE23E1E6EF09670BEF728F6C38 -:105F3000E8873C5E5B98E9DC654CC4064146C3FAE1 -:105F4000A2A0CEC38335583E2F9C6FC8E7561719C1 -:105F5000EAFB43658672877C9EA1FC6FA5D3D73D83 -:105F6000B281AF23A679CD379567DBAF7B8D5D819D -:105F7000F7204B45CD1EDD88F7928F038E413FF60B -:105F800056E23D5D3249BB8740C210AFE256C2C8FF -:105F90009F1E12C2755A2A36DAA962C068A7061B6C -:105FA000D4A4D62FC425B8D74838EEF03AE563F12B -:105FB00020DA3919EED72782AAFBDEA152D6CE32DB -:105FC0009E414B457E5E8677EF4B473F4F358F13A3 -:105FD000FC4AE63835737DE21395A33AF94BDF4E60 -:105FE000244775EF6AEC00DACF4AE13FBC7B29FA1F -:105FF0003D9C84DAD114CF2DC12B4894CEB31DAA79 -:1060000050FAC521A57CDE1E9C21631CBEC2E86A35 -:10601000733139F98E5731C473D87D4C4EB47AA39D -:10602000D1FF363B8959AD67AF7AD93EF9C45DB12E -:106030003FC1FE527D99E03BAE7D8D43F8CE655564 -:1060400072A11DFC26AF7BC7E27CAA0E84ED97EA05 -:10605000FAA922ECBD6FFA67D7FB5335FF3039E957 -:10606000C2B8E03D491617BC27F9DFFB4F43FE904D -:106070000DDF15DD7338B37DD5C7ED2BAD5EDF21A8 -:10608000B65FED1389373F939DC3EFBF55264D7122 -:106090008722B103FD4FDCA9D8C1DEE96B7409B0DA -:1060A000EECFE0F3AC4A86EDB09E8E36AF7D26FA99 -:1060B0006AF384FB8730CF561FBB0FD82AD3F9224F -:1060C0005FB3F7B2D3C13BBCEF97ADF121F9D9BBB8 -:1060D0001792232A5BCD7BB47B8A1A7CED009F004C -:1060E0002983AB3DC0E8D01ECC4C87160E9F56AF1F -:1060F00035C0E8D04AED836CE0117D4678A88D2745 -:10610000805DE823893A7CD34C252FC33E08558512 -:106110000278D897BC1FE0857B1760CFE75509D779 -:10612000C2BD8F28B30FFD55C9E4DE009A2711B810 -:10613000975130D09F7C9B961F6CF0E2634FF2B575 -:106140004792D08F280FA2FC74C160681F4D6C0766 -:106150007BA70DFE4955FAB8EEE002B03F44C2F409 -:10616000029538451CCBED130B79D79DEF0BA79DFE -:10617000A976E9F066B63B9DA43EB3BEE2E7FD2AF0 -:10618000FD0FF48D6CBA1F61B673CD71F017813EAF -:106190001F93C53D8C4F394E2E79D005EF21D8CBBA -:1061A0006D32BCC34C557A1EDCFFF1864502718D01 -:1061B000B9BE017C3A6B34BC53FD57C7E246FB883D -:1061C000FE1E69BD8FF98102F55582C0EE1128F0DF -:1061D000EE66A0FE50C88A4F35FE1CCEFB9E44FDE5 -:1061E000D8461271883B51EB6CB8AE759597E5E9CE -:1061F000F74737F904BE0FD5E84F1471768AFE745D -:106200007E61F7F4BF1FFDF3171BF17EA674B9D3AF -:10621000C7F4D268F4FFB4E368741B291F4D9C6E69 -:106220009B50FF754ECA4EAFA4E8F620CAABB79C90 -:10623000841316ED9A39BDCCF7F65D2446E0F728B5 -:10624000ECAF307BDA3E6E76C30E92812E23E2AC49 -:10625000583F761FF3A7AD133C21186A5D1AFFF271 -:1062600024BFC0F5FF008BE79B733008E7C7DDB3A1 -:106270008E06E19CA3E713EB73C8857E7E2E127E0B -:1062800003F7013DB3985F10FE40EFDCC6FE49CA3C -:10629000D4F736C33B66EBDEF21AECA1F6C6CCFEB1 -:1062A00006A9E8BA28D81927DE1114586F84A23538 -:1062B000E7025CFD7396E3BB23ED55FBF01CA63BA8 -:1062C00094992E5A9C6FBB29DE36DDB9E1092EAFB9 -:1062D00065EA0D685FF614BE8CE3ACABCA3C0EBC3D -:1062E0009795299ED7652351F4179BCE75DFE4E37C -:1062F000BDE9E3E7138EC8972696C2EF72A8E81FA0 -:106300001B5B1EE9B751BCD5FBA3AFF9285D7BE64B -:10631000DC5A0870C03B317ABA07A07F0BF8C6FA86 -:106320006D06BBE94459ECBFEEAC82DFA79882EF63 -:10633000D66BF5BAD3C4B19FA7D15971E3BEA71DDF -:10634000E2FE297CDD85D9E15FA3F325E405D7448E -:10635000680F71BE19F8D9BCDE8F8677331E7A1CA0 -:10636000031807D52358CF67A19FC95DCF9D4976F4 -:10637000AE36E7289EABF9926F60FCC477671DC606 -:1063800073B5123FA387DF378071A539D5EC3DC0C7 -:106390007472F400A79F281BEB1171C070EEB3DD7F -:1063A000C7CFCB0299FBD3E024AE0176DE33522E69 -:1063B00071FDD9D9FDF0417C378524F15CA1FD55F3 -:1063C0003BDC4D1DC6C308B98AB3DF85E9818DC7A3 -:1063D0008530CE5DEDE027E9D1CED92AD9BE49ACD2 -:1063E0004AE2399BCBAF18E3AF43DABB88D9CDD3B0 -:1063F000076B11F30F8BB0AE823F1EE06BADBC029A -:10640000FD69E9E8FA1D6F74A67F8CDEAFCFF65DFB -:10641000FF6C7C78C2A718EC43333F3AC937CE688B -:106420005F97CEBF7C82CB67002AEAF649DFF44B48 -:10643000D6F87DFBCAD1F0FB4D6BFC5EE501784FD1 -:10644000DC63FDFB445ABAC5A4EFB668F128F0231B -:106450002185D85FE9E516F3D6D6D5137EEDFD9EEE -:10646000A807D68D3275AE07C6DFD5BDCC03E3EEE7 -:10647000DA9C999EDAF8DBF9F96282DF77D1CA13E8 -:106480009C2F7798F4FC2B5CAEEFE7F2B5CB15F1BF -:10649000E0EF55ECBF6AD1548ABF32CA17E05254BC -:1064A0003A497EA6F14B55D3BEE40CEFB5F4F84D56 -:1064B000F1BD59DED3FCB478D901FC7321E0E1DFF2 -:1064C00051EEEDC95C94A7B2958C6FCAAE194CC25F -:1064D000BE76E2265B42C1389628E2A570A5A86088 -:1064E0004C1BBFF77A2E5FDF89FD0E5B0994C3BD9D -:1064F0007119DC2EF2D7301E669BF1F73F76B9C2D8 -:10650000CD12D8BF718C742465DDC6DFCB184F74F3 -:10651000BF5741C72D7CEB3DFCFD9442D3EF827CFD -:106520005ABCEFFD07E13D21128F5E1F2B028958F7 -:10653000E9FDFFE47CA9341D60EF18C47CE45DDD57 -:106540003907A55F3ED805DBD58D35804F354E42E6 -:10655000932DF4D86FFD5EED777C0EC03B0B8E6201 -:1065600076FFAC6DE915037BA9CADA7E472DB13AF7 -:106570005FA17AE1B77E5C9F985E48A8F52C3D69E3 -:10658000473E99DC4D12F03B28F336C5FA1D20EA50 -:106590002BD93BD48571559068BE8C9AAFB47B32B1 -:1065A000F13AC2EA2F218930F211792D3836F57B84 -:1065B00027250337F5C3BEF820DD17C3EFA868BF52 -:1065C00057A2F1CBF898913F26C78DF971267E31FD -:1065D000B72F53C822187F52B78DC0BE6E4C83AE02 -:1065E0003EF44706DF7B848E3FF9003CCC48D3DE87 -:1065F000CCFD8B24EAC8A1F87CFA2EDF2FCBE9046E -:106600001FEAAE2D00BCEC721176EF22E2C27717C2 -:1066100048C4FA3C6904DF6A767F9AFA297DC9EAA0 -:1066200069EB5EC75B027BE7A2447EA714FC9CAFCC -:10663000B1DFAD4BBD5B7121BE5B112431663F9272 -:1066400008A6AD9C3FE54B8B4BC11F1A7FDB2BC3CC -:10665000FD2CB9C0E84F13F3EBF03DB061BB3B9F9D -:10666000DADDB43C9E67D4A33539CC6E0DE5B07B42 -:10667000A1B297F5435C6AA15EEF6FCA118CE53E4B -:10668000B5F0CBBAF25ADE3ECEDF2DBF24675107FC -:10669000D833F2785ADF823FE7F171B57212081DE4 -:1066A00086F73F367FA37E967E3DDF94C3CE77E4A8 -:1066B00073F8B8C5D670C54BD9B877F37137E518FC -:1066C000DF8D23324BB5EFF7FA6F158E507C9F703C -:1066D000905A88576919634BC0BB69B78DD5E2C220 -:1066E00032EB098D0EC3F896593C52D175F20CBBB2 -:1066F000851C6BE9D63AE6A7327FBF9ACFA3F5BADD -:10670000DADE4914AEF0012677CE00B13C07A2F2E2 -:106710007D75CE2C8B75BFB50EF77127F232AFFBAE -:10672000E67DAEC8FD8BE67A4D9C4ECA2B417C8A35 -:10673000BB35C8FC895AFF270A995FD1DCAED3D498 -:10674000BF9BD48721CE18CE57E15C559A4412499D -:10675000DA8F27D02B972A101F705885FD91422879 -:106760001EC1CF162268D7B506D97E540CF6D6D8EE -:10677000209E84D4C97A3BAC88FFAEA29677F8A25B -:106780004D39680F8505C48BC8CEF34F38120B0105 -:106790009F2DA53662F54E7F770EB373B72AF52F7E -:1067A000965AD06F438E62B09F8B8698FD9DAE7EC9 -:1067B000AA1E836F981F832ADE3F200AE3C77A7FD1 -:1067C000F89E1CABF35B4DAF703FE4B26AAE7089CC -:1067D00072E5AFE93CAE3FE4C0D8F44B4E6E3F08E3 -:1067E000FAD74EF56F17FE8E5CEF41F0435E03F76C -:1067F0009F68FEFAB7A64925B4FCB5223B7F743EDC -:106800009203E37E486CE82FF990BC9C335347BF5A -:10681000A77224B6DEC41DA847357FDCB5BD0E8344 -:106820005EFDF666637E39A91F0B7E8AE59B1C24FC -:1068300041F17BBD49EF3E94C3CE89BE4D62EDB0C0 -:106840007EB6F1F3BF1B7F324D02B9B97EA65C6AFA -:10685000D7DDBB7A2E87D977EF533E527472B6C21A -:106860009790601FF7EE9E99577C9E403F89F622D5 -:10687000F0A7E559C7017E2B6E8473B47998E1D6F1 -:10688000CEF3D2C121EE162CFD42CFE708067F7C65 -:106890008B8BBD87146E1189FB6288C3A3020B70BA -:1068A000BFE5C7F7BBD5DA18C6D5A9CD4EB9258047 -:1068B0007176184FB786120CDE1F3ACAF94F8BABB0 -:1068C000A306C505B04FBBD13520815F79B518ABA4 -:1068D000839F4ED3CE659C8E68783C85DFF16C4DEE -:1068E000723C31D48B6759EF90509655BD3A5B8618 -:1068F000FE8E713DF98BC71F9260FDF9F0B177BE36 -:10690000087278C373760257F38E3DEE2749DC3F59 -:10691000242490F3157BEC96EF48508C61FF37FCF4 -:10692000C88F7A71C593CEC462DA7EC533EF4E2725 -:10693000549E8E350F1E1C0FF87B4C60E785EAC015 -:1069400074589F5688E49B56EF8EB97399BC7FF0BC -:10695000536F03D04FD8DD7F35F6DB77A543FF2E8D -:106960003EC965EB0FADC7E2261F1512932DF487C4 -:10697000B61FFAE0511657B2E2594702428257EC6D -:10698000DE2145291CAB777F84FC72E98F9EC8010C -:106990003CAC7ED66EB0236EF8D127ED17523ADFAD -:1069A0006027838B418EED27317F3CEC1AB4A35CCA -:1069B000B3F89455A80268BDA77EBFE0D7B4FCFD2C -:1069C000A09D4088EBFB877F273D07F9A88F5A6E73 -:1069D000D0BF91AF57EF7E57C2DF31B291C1E2CF46 -:1069E000C3F987D14E32D7276450023DB5BAAFF311 -:1069F000233BE5B7D57B3E7C13F86EB5493EDE8779 -:106A00007F148EB4CF2B734DF6F9EE82ACECA31B42 -:106A10009E38FE00F8233E78F28F0FC03DDA95A72E -:106A20003E7EE07B1017F66F6E19E47BF563AFE6F0 -:106A3000109DFEBF2C97AD9BC71E7D64D7563AFFB5 -:106A4000636F38115BC7F6FEBE04FC3FC77EFCD700 -:106A5000B1E00FBA65EF7CFCDD9A5B9EBE745CA66C -:106A60007511F835A1FF7D457E6EA43C2B80314920 -:106A7000C8CF786AA207E91D94605DFB8B4006BB16 -:106A8000F2E8F7BE4F24B0CF0E86C920E067FF9E24 -:106A9000770FDE4EF31F52FA382DE843E73FDE86CC -:106AA000FA998A0D4D57EDF9F2972EAA82D4817684 -:106AB000F86A32887A73045D5FA174AD4AD1D55CFF -:106AC0007E9C9C94E0DC60F5E3948ED3819E948E52 -:106AD000D347D2F143F8C79C91745C916B8C4B3ACD -:106AE0004E566EDF0A857B0A2CCF79B57DD68D4F49 -:106AF0007F35A3FDA4E985D1F07C9DC0E09A9D1B64 -:106B0000BE3D17E4EBC91FECDA1A60745E4C1173DA -:106B1000EC89E32584F2C91F1C8357031E06F73A4C -:106B20006558DF57ECFD15CADBB1A75F92148C6F77 -:106B30002139C26C9A27C37F2F139A5F25B0CC8D61 -:106B40000FFFBF056FD2F637C2431E32D20FF307D5 -:106B5000A9FC213D1297D729A077136370DEAB12F1 -:106B60004C2E5625FABF02717D66BC3F956BD3F45F -:106B7000FF305D216E6CD59E771600FFA5A3A7366A -:106B80007F19E67F012D7FD828B769E594D3F7D820 -:106B90008E1312D807C9E724D946EDE1638E410967 -:106BA000D7C71FDBE59DA191744FE19FC71F9DE1F2 -:106BB0003EFC876639E7F8194DCE479FD799E16DBE -:106BC0005BAEC2F65726FC7D70D25AFF3FCFF5C6AA -:106BD0002A12AB2B9A3872FD1249441D5F9A82F734 -:106BE00003881FA3F07EF0981DF787ED7DFB518F82 -:106BF0009BF5C5AA3476F49BB9CC1E58F56CFF748E -:106C0000D06B1FECFB29F2E5AAC7DF91C07F737040 -:106C1000F753D240454A0E607DD0FF0ECE073FECC1 -:106C20009F0EFA6B759A38C0DFF3F9ACFE99B1FF8D -:106C3000D58F7F64E8FF06B54F423FD928E3BC2FCC -:106C400086AF84F9BE7FD8012718E4FD3E7B9D9571 -:106C50009DF3025F1F353CB5FB67BF9E0BE75EF9F6 -:106C6000EC1DC6D6A6F0AFF0F77B5F72F0FD6DF8B5 -:106C700075B0675AF224BC8FD0EABF02FDF55A7F87 -:106C8000BD267CCA01B906F603F2BC48957E5FA515 -:106C9000C19F17B619E0BFC55F374EF1B1FD9942EC -:106CA000F71FFF03B64D466E008000000000000095 -:106CB0001F8B080000000000000BD57C0B7C54D516 -:106CC000B5F73A73CE3CC24C2627AFC9D37892F0C1 -:106CD00094804312DEB40E0491226A505AA9F5AB97 -:106CE00003F28821C9A4F8E25ABFCB8444F4029F7E -:106CF0008D95166A693B70A152217690A0B10DDC8A -:106D0000012C06056F105F78B18D5A152B24631482 -:106D1000B4575BEF5A6B9FC3CC9C4C84DEFBFBBE2D -:106D2000DFEF0BBF76BBCFD9679FB5D7FAAFD7DE02 -:106D3000EB0C28DEDCEA5400D93D6B366461AB5ABB -:106D4000D41409E02BFABB2AD6028400C603585D8E -:106D5000D5E07761AB5A407300FF7D45FFA7785BB4 -:106D60007BF0F97BE5D4D6B5348FB5F157D48726BF -:106D700005B657F2B0914A25DDBFC2BBB61860A375 -:106D8000F39F1FA7FB2B8376D58E6D73EA3DBFA5BE -:106D9000FE0609AA65EAD3F3383E6875A8DB55BC40 -:106DA0009E0E0BC265317AF25424321BA00CE9A06E -:106DB00016FFFC3001DF2B488266A8031C0129590D -:106DC000A120B5C6730FAAFE62757CAC2FBBBAC1F9 -:106DD0008FF35E2DBB2CB4FE07732D217B31B537AD -:106DE000A641D9403E18ED03ABAA213262F0FBADBB -:106DF000D98E855B80E90E5A681D9223B49D08F1F7 -:106E000081A67A8069030DFF873C74C4D18D037C11 -:106E1000B40E45BF6FC565D14D3B04B94D213960F6 -:106E2000EB84084029D2AD96B05C52A1479F240A5A -:106E3000D563006E4CF57F93D6993BB451A2EB1EFF -:106E4000A8E6B612FC12DDB738EBF2FC5FB33E5891 -:106E5000A09CE919A9CB175FB1C12AF8AF28A00CF3 -:106E600029273A36ABEF8FC679E87E268D0AB21C09 -:106E7000C6557D67740BC181888FE3F32333676444 -:106E8000126E8C71CD8EA29312F2DB27A7A8294532 -:106E9000D8579033C4A753A9CCA71F4DC399F1FE6F -:106EA0008F4FA56E95511E8F48024F41C213E10AC4 -:106EB0001A1F277CB8113F6BE9B9198DBF65BC5803 -:106EC000A0BAB952E7A487F827FE106F8CA7958A5D -:106ED00043B57B89B73E4DA1796C105A2B11BD7E0D -:106EE000E6A7035AB91D02616E5DD0CDED5DC4E722 -:106EF0006C928397FB69D0D33A149F9BA356D7AA71 -:106F000078FDC7B333245A9F0B549DBF8579D41F96 -:106F100094BF3391BF8E187FEDC44FE7407E3A4057 -:106F2000653EA47BC1BB761CCF0B115CC723D3216C -:106F30002433885450112F39FA3A33C127117D84F4 -:106F40001F5A5FF602B13EF3FB72A195C7E5439865 -:106F5000DB42E8E636C3A14A0AD3734A97EF3BF017 -:106F60009533468FD1DA09C138FFB9429CBF98B931 -:106F7000ED963CB47EE3AF9A71F887CA83BE2A1CB3 -:106F8000A7F85D3E3B2EE5FF54CE201082F572053A -:106F900048AEAE9E8573C18DC3BD36888CA4D9839F -:106FA0004C5FCA48D137EC8B1D051531E8C7E7ACFB -:106FB000A73E3C45CF59216E1CD121DF9A467C7FEC -:106FC000982E4C1EC8F795A79AB29E8B9B77AB9ACA -:106FD0009A45EB848930F12B39F63C4CCA40233377 -:106FE000F0F9CF5605B39EB3C6F8D0E2F867C6A550 -:106FF0000F019CF24DEC138EB36238465CB29D0BD0 -:10700000AEB6ABCD598C43C6E94A64901DDBCF5276 -:107010008A42BC7E689C7823DA618BC3274978BD9D -:107020004E7587883FF5AEF02CB61326BB317DBE7A -:107030001AC9C7717D8DE025BE6EDC73C369E26B32 -:107040009F07347BBAC0856F02D909C38E8026A3FF -:107050007CD748E31C12B6F5ED1FBFF47B1C9FD212 -:1070600029838CF7FB70CDDDB46EC5974E4274C298 -:10707000FA04FD6E7608FD31D669D6D77F749D2857 -:10708000799E9FE52093FD5DFF2FF47C3FA4B6D24F -:10709000F84D0ABE9AE6EFB286B6231F561C911928 -:1070A0006F2BDAA410909C152D8DFAF7BE2883C0A3 -:1070B0001FF0FD7B7F55CA789461F48FA6E1F381C0 -:1070C000CD562F5A4C48F725FAABCCD943408BC349 -:1070D00001047D2FE722BF16EBFCDAE87C780BD1A8 -:1070E000B3A949F8A7ECEA8C84F19FA55C6F5B8A91 -:1070F000F36B7948D714C24DE7F035D85F5E20AB0B -:10710000329A889C05F989FEB1D5FA0EE99F86FF6F -:1071100008DF86FD5A4AF68BEC907C3FFBBF73205C -:10712000FC9F02C2FF35A0BD8AE07CCB3689E78D8B -:10713000F96A3A1F595380ED1DA1C4EBCB4189F583 -:10714000D9CFBA47921D580943BC766920FE2DE974 -:10715000887F02890B5C420E2E2FD997FE5764AFB1 -:107160005DB082F595F84E7644EE19B1711ACE17DE -:10717000E8B24248237989FBFD9BE550B038A61F51 -:10718000FD5D7B981FCBF2901F884F7B6E22FF53D3 -:10719000B444FE3B47667CAD3C52BD267ECA739923 -:1071A000FFC86FA0F9D32695243EAFF37B24FE13CE -:1071B000FCF6319D4B3B24784C223EAF3F5CA00D4A -:1071C000E46B43C72336D2FF8BF1D5CCC7D1E9BAE4 -:1071D0001DD1F9780E3A0FE8A8AC7678D894F03A39 -:1071E00014B5753AE1B410F5967062D66B837FD60C -:1071F0002CD567C37197D1385C5FBE232C94D10B1B -:10720000CA09C2CB2261779B551FFB23C3DE3A2FED -:10721000D8ED77E12B6CB3E6553E4438BA534A6D4E -:10722000952B07EAEDBA31F7B0FD2A5C8DF698FD93 -:107230006A629C165EE5F02E467A9E5C05DEC5C34A -:10724000009E5AA5726B8EDF0C7DDF8CF19B5DF882 -:10725000679E5741FCAE55C9FE7855A2F3611BB03D -:107260009EF69541682BBE3F1CF9D4A391BD2E8F8D -:107270005E5F8DF145600954539CF1AF1922AE7BDE -:10728000466F6765D8B85D5B6D011FBEA7B7530E2B -:1072900049485FAFEA3B7215D99D4EABC6F1951ACE -:1072A0007DE97B7CBF425D8BFCCCB3B48EA3F7E25F -:1072B000F8D9219CB7AFF35DF7ED717EB9B7E3D193 -:1072C000511407FDCC0235E124F1D0F2740BC73123 -:1072D000BD23DFF1E0B2A1DE11B501E2E9C19EC636 -:1072E0006A8AA7EE746A4C97AD7D7AA480F1338FD9 -:1072F000E3E3E7960E61BCED3D0321D2BB59F2AD4D -:10730000D78EC1FEE45715AF9D95CA77FDC2093CE3 -:1073100084E5BEE1CB8A4DC4BF00F273355F6C3D9E -:1073200041F27AF6CF0A90DE55363EFDAE1FD77990 -:107330003817D1300960822F5C11C151333BD3A77C -:10734000937E074E01EBEBF86E2501B720D71D2A7F -:1073500020BBF286080F27BE61BA0F4199E2FFC930 -:107360003D89D7A75E04EFFF62D80D377808EF8F0D -:10737000ADEA8077C92FEAFE331F17988C9F06BEAF -:10738000F738673C922EE2769970EB55928F7F2703 -:1073900043C4F91BBE9425C2655F14BCAB915F7DED -:1073A0008BF379DD7D9F524086ED97F2EC709278F9 -:1073B000EBD7E93696DFCF6C02F73F5BEA0A35E19F -:1073C0007A0E2EADBDBC07DF77FE9FFC97AB5F1733 -:1073D00007A369B14C6279A511DFEF9CD722B11EDA -:1073E000426B1EF1CD3CDED013436F0C7DC95B3A7E -:1073F000C41F4AF29EE1B43EA46FC6D291928D7032 -:10740000BB5F029263EF6AA4EB6BE2C720AC2E2055 -:107410007A021D9FD8C85F3B3A255F28C9F8C3E9A7 -:107420006EE65FEFEA60D354E4D73D8BF059D20BA0 -:107430005B6B71B2F983B0A1008343684BD704EE54 -:107440001D701BE92528AD79E4B77B3BAABE4576C4 -:10745000FD31D4438A1B7E66F532DDC17A80EDC4EE -:10746000160A3CB15F783D6C591B974776A74F3F92 -:10747000958EF39D4A5779DE4CBF5722BABD7FFBEC -:10748000CC4DF3F77D6E67F9E5930EC7C56D9FA6EA -:107490000BFEACC9F0BDC678A9C96263EAF5BBBDF5 -:1074A0008B2B00AEEC407EC7E13226B720AF3BC34A -:1074B0001F647A32BA3171E2FCCBA751BC1CD08D6B -:1074C0003344245026C4EC73A5A3305220F28770B5 -:1074D0000EF237A3E6C76CAF53D00E53280EDD89EA -:1074E00079115B647C9E749FEC42B32AE2AC967483 -:1074F00061E75A1E5142CDF8DECD4A4FCA306C8B3F -:107500007DDA0C45237B5FC6F3E6DE05ACDF16476C -:1075100048223BE42CFD45FA85B86B2AC0EEBFC972 -:10752000CC7FB39C46EB7AB126C3FF05F1756C574F -:10753000F420856FDE14C824B9CE925DBCEEC96715 -:1075400085FD31DB1B39F2AB9F91BDE9D3F3A72455 -:10755000F6E676F2AF86BD01B9EC10E167EA8B7A08 -:107560009AA9DB19CC3E980F138FFA9B5D49ECCB9F -:1075700024A84E43165FD4BE98E588C1FE857E21BF -:1075800032A3A20BF528EE79B33D2AC8D0FDAF6E29 -:107590008FCEC1B49CABB5185ECA577A0FD9E3F051 -:1075A00061D8A1185E428C33F37B24705CE8ABA5F4 -:1075B000643F8ECA696477A6A3DC71FE2E5D4FD24C -:1075C0003F0D7D8BE4BFA1F39A14C2F5535D550EB8 -:1075D000529B15B9B2F6678C9F9503F383A0C385C0 -:1075E000EC9DF15E2B3834D748E28785F920ABD883 -:1075F0008F7B7F7FAB349BEC220A2D6DFE98C1ED13 -:10760000C18A5C1BBFE7A9AE9234C2910B30BF4563 -:10761000F955764A1C2798716DC67133BEC0C27980 -:107620006335C713B214D6F71D12F3D2E2E064F645 -:107630005377611E4E716B7F17FA2D6C9F423F4F3F -:10764000714AB36B16AFDB58AF41DF5DA93372A04F -:107650006CE0FA8D36F0B90CA1CCB8BE12B5118E23 -:10766000039FDB12AE1BFC1C8C0F063FA7103FA52F -:10767000FF3E3FA76608B99AF9FA3F5D7FE18A4964 -:10768000906C5FE0FF97F54F05FFEF7B44BEF55A26 -:10769000AE27664F0A57CC9697211F26503CEE8D99 -:1076A000D90707FE237C8DED68657B3309ED0DC599 -:1076B00099057561B62F137345BE64B61B5776C224 -:1076C0004D641F2747302EBD04FBF129FD471EEFF7 -:1076D000E3FC3203E91EF7FC82E5BBF0D2580D3221 -:1076E000E7E27BC6762B5EF27BD09D99745FC0EC9F -:1076F000378CB8D48847CDE38C78D4F0270D3A1F67 -:10770000FE3DC3FF64065D57D520E91BEA55F831FD -:107710002FC35EA378A13BBD7A37DF1F190E721EFF -:1077200050022AEDEBA0BE721C56E97045E4B1038D -:10773000F5D369D2C330F285F609822E4B689834AE -:10774000900E0CB78314F7E103FCFEA5BABF28C462 -:10775000312CB406E0F8BF702CF8C9EF1696638B95 -:10776000EB3CA6C7232F995AA4FB79E2AB5581A025 -:10777000BDFC1FA797482C2827FEF8FE40EB77CCCE -:10778000F631FD052A78298E2F50C29217DF9F51BE -:10779000A7491736910C3F8DF315CCD5D85F160C41 -:1077A000C53E8DA77827895C7A32ACBCCE7A47CFAC -:1077B000611BF22130B771B6DB128BD3ED56BFAF30 -:1077C00080F68F3A44BC0EB4DF379EED9244EB5105 -:1077D0006608FE0454915FB94065BB59A9CBB1D28C -:1077E0003197F777C827DA270F5CB7A4F97870FECE -:1077F0007CD082936376D5C87F701AA0F798ED6A23 -:10780000DFBED72F0BA23EBEF5BF3F4905BCFF2709 -:10781000259A4AFC387DFF89541FF2E3ADFB45FEF3 -:10782000F27D537CA4640AB92ECEACFE82F87ADBDA -:10783000AABF4D88B72FB0329BF5E28E904CC9F0AD -:1078400005FD59BEC3C97BCF46BF3E9C99D037F4D6 -:10785000A0DE0E8DC9E2EA6999222FBA63D7161B02 -:10786000E5D18B33FDA999D83FADC77FA7DB53790D -:107870003FC0A067D1AE7136E2F79F3AED106103C9 -:10788000D96D1572F65D2F4DA0CD7BF167A6F3F093 -:10789000FE021BED9F2F91202AF6B5E0F0CFB1FF3D -:1078A0005EAE0C6BBD03D7B1E42DD56641F92C99C2 -:1078B0000ED120EAD5A2BBA435F7E2F8457E1745E4 -:1078C0007003D6B9309898E72FD3E395DB1FB29AAF -:1078D000F2A4C6C3B45FB618E7A17C76496BE2FD9B -:1078E000FEAE3B0FFF9CFC40878DFDC0B28BE44F8A -:1078F000E332F57865024CFCAA94E295B21F9569D3 -:1079000083DB25235E39BD0A083CF097550E6ECF08 -:10791000AC52B9FD42B7D7CB3B0E1C665C2BDD13D6 -:10792000C8CF3ED5F5AEF3162DE637BEB9E5934385 -:107930003FC77E05ADB398EC65C44A78BC4AF71BD7 -:10794000CBF438A4E273B3DF38F087DF539E8DEBBE -:10795000DFCE19D7A5C523B782F2693C1F0C3F6261 -:10796000E6477F57A99370323F33713FF67FCA973E -:10797000C19EAB9711D749EC87A14F5F64087C2F5C -:10798000DE366F4D3EBEBF79DF07453DC22EBD06D8 -:107990009E185ED1D033DE960144D7223EFD9DFF76 -:1079A0007498F87498F03689FA97F1FDDC2AC42FA0 -:1079B000EAEDB2CE0FDF84B1AC5FB9965C6A23B951 -:1079C000945F9A7168C69F196FBDD69E22B20F66EA -:1079D0009CF54A89E76446BB34539C5F2CD67CB344 -:1079E00028DF45B7B646E5F508FB775A693DFC4305 -:1079F000D2DB6D12E787F5CFB43D4DF6A8F6B73F61 -:107A000071933DFA5069F5D0FBEAB63FE0F6915D1F -:107A100052826E7AFEC390B04BE6F775EA7C34CEA4 -:107A2000052EF8A587A26BEE437E9C477D26FD6D53 -:107A300068FFEB9AFB28CFF039A294779E567A66BE -:107A4000111D772C7435367929BF4D5C77EDE33FF6 -:107A5000F168BC7F1C2CD0F9C7F96AC336AB3782FA -:107A6000F336BC227BE9350188F2FACCCF07C2EFAE -:107A7000DAC87EAB1688164E1D781FC56823BD096F -:107A8000B4AFFB5876532BE415203EC79D33D4E8A2 -:107A900076D88CE35D99FABE888E5FE40FEFA70677 -:107AA000912EDA3F8290B0C7CDBFD938F66DA4EFE2 -:107AB000CCB617DD5259FCB9C26A96477FF8F65F1B -:107AC000392C83E3B757C77B2C6E09F1735A87248F -:107AD0000E833A455B678DB8296FABDB62F506F123 -:107AE000725D9B0C0EF25F27ED1C37D4B57DC2F89A -:107AF000AC937C51691C2FC32DC5C511CBDBDE9B1C -:107B000045F676799E0C7351A56AF79C13E37D10B8 -:107B10004DC1F1CB77BF3DEB87D447BC3B92C8AB9F -:107B20002A7CC026F4C624AFF0DBB3281E6EFECD3F -:107B3000672C8F0FF74B90533CF0F99A2DEFD9C873 -:107B40009F9C41C164A60B7E91DF0884E585B6B495 -:107B500064F28B5CFFBB4ABECFFB7F1793E37A3A9C -:107B60006B1BCF787FF2774847CD9B76EF5C7AEF3F -:107B70009377BA0171F081D22870FF8B073CE487BC -:107B80006BAC418FCAADB85EF3CBBB198FCB8EDF28 -:107B9000ED11F98D2F4FEC1705F3689D4B367F9B48 -:107BA000D7B914FC8CC79A5FC8D5B44F734E81D92E -:107BB000BB93E84D659688B7ECF083B1F789F30085 -:107BC000A0FCFC037DDF34F8B2CC719B1D6E4C9B96 -:107BD00017B7FF64CF12F62A08A13FD2B96A00DDB9 -:107BE0002B9F831C3F378BE6B9AB5869A473225C8B -:107BF0007F50E797F415EF0B80A6C4C55955C7AF62 -:107C0000CEA17D313BF4DBFE5725C7D51AC53D71AA -:107C1000CF31DF3ED86A1F225D89AD27F9BEE9ED7D -:107C20005986FEC3CB1087A7C08E0F184F80FE3B2E -:107C30002D57F41F237D5CE46A4C43BE7DFACABB1A -:107C4000363AD70AE27A8611BDDDEF711FBCD91A28 -:107C50008D37E60F74D863E781A4D7DBDE33E9758F -:107C6000E27DF4DFCCCF00A46994B77D608BCE2297 -:107C70007F1EC4F7527DC1D20DF684F3C6185E4C48 -:107C8000E78BBA7E1AFB9CCB4CF198D19AEDC2954A -:107C9000598976013667273D5F34E72175D6D0AF25 -:107CA000893F7527ED9CBFD4B509FDC3803A3A0CD6 -:107CB000F5E1A35D875EBB05D7F151D89A3597DF13 -:107CC00096686F6B9E42FDC5F132F23B85EDED6724 -:107CD0001C4F19FEE823175E1C93446FF17A52BDC6 -:107CE0007501DBB3FF577676D92076F6BB5903E2F0 -:107CF00084347C0DFCE589E597537C61E6AF615FD8 -:107D0000CD76F3934C2DA9DD04DDCF1B7CACDD7962 -:107D100096717B3E4F9C37356CFB2BFB31646BD4EB -:107D20008EB86D087DCCFD07C88F71FFC07C696C73 -:107D3000B27527F2D37CFF32922DE723D1EF139F48 -:107D4000658BDB2BF6E7543ECF6F26BF49765A533F -:107D500081E40833204C7187D4F9FC5FE97DE6BCEF -:107D60002238034636F2B92EAC8BAFCF092B7A3DC1 -:107D70004530797D4EB32D769E4BF7073BCF7D5F27 -:107D8000B7575E97CAE508D62C4D4E5657E2ADB2AE -:107D900024CD237E9225CE774AB3C5BA8F65097963 -:107DA000B4C8D5FA46A3C897680F95ED5FBA9BCFC4 -:107DB00083AD7A7D06CE9CCBE7074ECB27C812D881 -:107DC000BDA17A8E42FBC315963B4BB1DFB5E1F600 -:107DD000390AE2C73BD5B2A704FB2F6C582CFA57DF -:107DE0005A2AAC08FDC7834BE6CCA47D03CBDB3F0E -:107DF000A5F529AB15A0FA91D296F7B87F97559CB7 -:107E00005F353CBBB786DEDF20A12090FF2DEE70F2 -:107E100023D731E482BA9A368FB53D7EBABF260F9A -:107E2000F379944724CDFFDB2CF22B8E885B2BA1BA -:107E3000BCD2B7F17B785F79D94A3921AE53EC8354 -:107E40008FDE333597ECEEFF85F7FF5B56F6E0EFFC -:107E50003FF3D4B50B68FC68195419E72B57B42AC3 -:107E6000EADB31BFA6BCCD9043B922F85EE6B27121 -:107E70003ED792EECB253C1D239C665F7ADBACD7C8 -:107E80000FC94E810339CDD2B81BDB5774F9BFAA95 -:107E9000F383FE685FA06F5FCE56AE5B816811C949 -:107EA0005796B7B6113FA24D0A6CA5FDD77D8FB787 -:107EB000113E5FB73978FFE8E6B4F5D62B90E4724F -:107EC00047D19D04FE37A55D7753BB2FDBDF93259C -:107ED000E68DD0BCB77C5F16F3BA1A53C97F820F08 -:107EE000F54AECD370FC0E7ED42BA2F920EAD538EB -:107EF000320589754E663AE4B45D4CC7CD7641C70C -:107F0000825049730FD231CE1EBA8CF22B7C7F94F3 -:107F1000E4700B865B84E760217491DC5EBFEDCA80 -:107F20002D627D85ACAFACFF7CFE7EE6499A2F804A -:107F3000F3D3396A40EAE1FE1EC5A1065561DF1799 -:107F4000C6EDBB3D0BAD27CAC4FE7E33E51D53F520 -:107F5000BCD8D87F33EA0D2676F9AB5C64B0E54E29 -:107F600099ECCA398CD7C88E99F7DD269BECEFD4F3 -:107F70008E8FD82E5FEC3CD099ADDBE37CC8A77523 -:107F800084E93C90025EDD4F7AE93C3089FEC79D72 -:107F90000766660B397DED79E09DBABDD1A84E0E1E -:107FA000D7D18F1393DCFA8F2E82F24AAE476884C2 -:107FB000F4C1FD6ABBC9FE1B381FF38A7A3BD9B3F3 -:107FC00031AFC06DB4DEABF5F393FED3C0F580E303 -:107FD0007A1C5C1F68EDB28642525C3DCA490BD7E1 -:107FE000A3F48337C4F52B41BB1A647B3996EB4F5E -:107FF0005A4EEAE7BD7A3D438560D93F5C0F61AEDA -:108000007F98E29E242FACE4F31990260DAC7F9864 -:1080100022DF2A935D81A3429E17EA20E43299D69B -:10802000752E024029DA8457E2E48DFF9B9815945F -:10803000B9FCE954E2F529265C98E57F6DB61EDFB0 -:10804000E8F21FB48EE443B1AF360EC6721D89D577 -:108050005C47F286850B366375241521D2B7094D2E -:1080600062DFF862753CE63A1D731D4E9E3F914FEC -:1080700005355724DCBFACB13CA17FF9CA2909E31F -:108080008BD1A1C6F74B1F9A93307E58EB8D09FD1B -:10809000119B6E49183F2AB428E1FEE81DB549EB53 -:1080A0005E0C9C8C09AF48B8BFD1F9E4BB84AF9695 -:1080B0003C59A578FECA8EFB4C7531D31817538CEA -:1080C0007D785DFE465D1D9581119FC7A3FC1F2B2A -:1080D000A6B8E9FE2A491B88036F24C87EFC1FC589 -:1080E000C17A931D30F4FF62FB373FD6FD849C526A -:1080F00024519CE3C3B82A652AD5118B737B784B36 -:10810000D4AB7C96F2778E8B34C9ED856FD25B55FC -:1081100089E2A07BAB348E83EE1D527480F60F7A19 -:108120007EE0F64AF903EB42CD75A0190EDF64E05C -:10813000AD115107D982869EEC7F708683E38C87D0 -:108140002D96DBAAE3E87F225BD89F27B245BEF5D8 -:10815000735B7837D901C5016A539E789E8A1F8068 -:108160002A7B502EEE4C10F561F0C6DA9985E43F7B -:108170007B466AE9543F8BFD6FE06525C4FEE496BB -:108180006685F3BCD5CE27D99F942BC29F8C93854F -:10819000DF403FD241F6F14DE97EAB88B382569283 -:1081A0004F810382EE72F6AF7C4E9C0E59D28A321A -:1081B000AA4FBDE0B7B4AF104C876AA75A884FFDED -:1081C0008B653E0F7E8948427AFB6B46719D73FF3B -:1081D00085FA3F2D8DF2EBFEC58F9EBDBB32A69773 -:1081E000276DC9F3BC8BEDBBD56C793495CE514E60 -:1081F0008E8484FA8C37B3457EF866B62CEA0C423E -:10820000EF79884D7D4BBE184E4407A4EE352E1CE9 -:10821000F2E0A61F54935C6CEDF382B4AF69ECE31B -:108220005FC8033BA773FDB6912FDDFCBAD8D7BB5F -:10823000F98BC47DEB8FB2C5B9C047F43E6CCBBBA4 -:10824000FCE3496E379042F0BEB27F3CC507D52AA9 -:1082500068E4F717F817DE7D14FBF3D64B1CEFD359 -:108260007D1A7F23CA90EE9F00EFAB7B91BECFB308 -:10827000053DF3A1DA4A74BEF6FDFA54C2D3EBE928 -:10828000627C54026D6BDC7C37E8F3BDFEFDE57B60 -:10829000294FA7F7D1FB891E7AFF3C154AA8FF1A80 -:1082A000F8CFBE5A3CF0BD3781CFAAD77B59C94F12 -:1082B0009642A8ED69B2AB472CDEB5C06D2493FDA4 -:1082C000929DFD525F53F4C97B90CE3FD5FE75AFB2 -:1082D000847CFDE3C2E8AF9FC6EBDFDD248386B874 -:1082E000F838C32F7BE2EAB44F2EFE2495F889F1CB -:1082F000CAF69F92DEEDB47BA9AEE3CDDA9DC3E36F -:10830000E3FA54CF74073D07932EED3CADEA89C9DB -:108310008CBF15DB05FE56FC66440EE16C45EA0594 -:10832000DC89FEF6523E279D2041D2FC783FE24D8B -:108330001BC17535A021CEF67F2EEACAF71CCDA849 -:1083400020FA14F05F16BF9E3D2FDD329AEB79DFE5 -:10835000C8BA243A496783687F6F665389F181AE52 -:10836000270B3A332BF478729487E2B9DFFFE6ECFF -:108370007F105FF6EDDCFE43D6914BE3C3C03A5A63 -:108380007527DB27230FA3BA57CAD30E59D84F5EE0 -:108390002DDFCF7918D56970DE35A488C7A3C15108 -:1083A000ADC2BE89EF24300E6EF672BD27EBEB4AEC -:1083B00055C42D469E245BBCB98AF8C8E0C5A93CCB -:1083C0007F09D0FE989B122BC35E611CE1962DBAEB -:1083D000BD029F03F3D3D1BA3D9BE5F15EDB22CE14 -:1083E0006B12E24FEC57ED4A127756E33F8E3B3764 -:1083F000FB9B53D82F6D96CB28EEF03922E4C7CDE6 -:1084000071E75458CFFB0003E2CFE7FE7249F1E772 -:10841000F73CFF3DBFB3D4A3B1FD098F14762E1CEA -:1084200019C2790EFE55907E0DA5BD003A07CD13F9 -:10843000AD4DEA1DE940FDACF594AF7B681AC2650D -:10844000A8E00FF551A450AA7D72E82B8A03BB1552 -:10845000965FFF73577CED772495A887E4EC23871C -:10846000A770BD735F97D08FB60CEDDFA7529E81CA -:1084700071E656243145E9B1A52759CFD3647F5120 -:108480001FC21E9147393AC4B9A843F301D99714C2 -:10849000551D4789B9317EB147D8DDFAC36F16D96A -:1084A000503E672D47DD74BE52B7F729372E179A15 -:1084B00033FD0F90FE2C3FF9F20495EBDCB614511E -:1084C000FE1D8EBC3C83E3B3D9C8DA7183AF27B0FD -:1084D000A9823E4280864D99DC8EA27D15BC14880F -:1084E0008875F676346724DB1F08FCDB5B0769BD03 -:1084F0003B8FA570DCB233BB9BF520380F603BF29D -:10850000FB89CF47F37C0830A6E38A6A4D227FFFC0 -:108510000B7D3D3BF5FCB2F77399C719F38EE998D3 -:108520002EAB88ABB248EB41AEE3EAB46B24DF94E8 -:108530006D20F8D399C2756181FDD788BC335D9CED -:1085400047B70D89FE91DE13DD67D7A84E35456D1F -:10855000850C9CBFCD26FCEC2804FE53AED875E3F9 -:108560007D299D1BF92308C405D7E3A528ADF00D8F -:10857000573CFF5399DEFD1E11EFB40D89585CE4A2 -:10858000273057DACA74C5E8047EAF41E7288E8BDE -:10859000DB6CD1F769BF1DE9520917A340D0099DD3 -:1085A00023348A57525471AE9EA26ADEA03490AE34 -:1085B000C058086170000FAF860B7ACE7584436295 -:1085C0007D07EA425B891EC70417AF9B392DAE4F6A -:1085D000866C52ECF9139E65EB5A0A695DC20F2A4C -:1085E0004A98CFC7DD0B40A5F3EF14C5C77952CA2F -:1085F0007CD09A505E4E878FEF7B708EA6C9DC8F41 -:1086000010FD2ADDA77D9B34D53907E94EFB328D5D -:108610009F6BE8B672DD79DDDF6F4A2BC3F59DB144 -:108620001CBC6717B61F2D0C0FA773DA0969FEB7BC -:10863000C81E3F736AD1BA3138FE2F6D56EF5CB257 -:108640004B3DC11FD3B97DED13568DFCE2836FF412 -:1086500047BE22F93E2BB15DECB38AFBD8D79AF026 -:108660007E43E707363AD7BAA6E36D1BED7FAFCC62 -:10867000F1BF4F7A30A9A3A98AF836195A9B699F8E -:1086800013ED21D74B847385BDE87F65F8D6A638F6 -:108690003EBB72F47DEFA8FF72D29B4E5D3FF75355 -:1086A0007C84ED5E3D4EDB7BE0BBA55ADCF96910B6 -:1086B0000EF27EE06A788EEB3A8DEB7D216536E135 -:1086C00068F46B8EDB7C7138B3E5087DB7E9EFFBAE -:1086D000798EFF4BD6DB03EFD8DCB8FEC09FC345D5 -:1086E000E4AFC218CF7D5D1D69C0A42F17EA8E4E7E -:1086F00003DB919DAF7570FCBDF33E359DF41EE923 -:108700008734ECEFC5F882F4686FB1D0BBA657CFC1 -:108710008FA5FDE2F3FB965F4EFCEAF5580D7CCF8A -:1087200018427AB41BD88E197A58467A28D1F77B2A -:1087300062BFA78CF04D7A67EB9EC37AB7D702A4CD -:1087400077886FC63BE25BA538A44C45BCF3F323A6 -:10875000588FDBBA5FBE82EBD991BDC3C651DFC271 -:10876000F86A8BCC0949F87CA53572909EAFC4F7A6 -:10877000376931BDAC9412EB7A167B449DAC611F16 -:108780007FA0EB6778A496E6C5F14E594EC07F9C5A -:108790009F147DDD8FDEBBF127EB36A0BE94FA2A55 -:1087A0002C1328DE3926B31FD8AFC7C92BFE30E5FE -:1087B000865DE23AFBCF888E8B837ADCFCDCAA5C98 -:1087C000EE935FD0502EE3B1F55550BD7763156D34 -:1087D000C54D9ADD7A88DA29D5E12A3A2E9CB6A0D1 -:1087E000FB90F8C6CD379AF0D67EF05BA3B94EFA6F -:1087F000A41DE83BCEF6FF8CFEF1095CFF3DFB912A -:10880000DF90342E61BCA1C766FC0D86933EA9E7BC -:10881000FAA96897AFDBF8EB6B1574E80D04045CFC -:10882000FF9C8DDBD605D1079EC8F15D9783F8FBD1 -:1088300022D77F5D0EF2ADEFF87F7AC89FEC7DE521 -:108840001D37F9E1769B6F34E1AABD04F3882478E3 -:108850009C926365FF5A3948BD49638EC8B7860745 -:10886000611DE1A5A15D5643E4A77DDDD793DF78C7 -:108870001F5949FBDA4BA707DD942FD5EC3DC47592 -:10888000FA463EBD04F43FF9D659C4FF73B9223FFE -:108890005EBAC19A90DF8E80888DCE91037E576339 -:1088A000044552638A3BEEE8D8C2DF8DD46E4B7C20 -:1088B000AE8EE2148450DD45F2E3C61C7D9FA41405 -:1088C0004A294E41DCF03E49F455D9BB15B8BEAA41 -:1088D0008BEAAB765A049F9C0E6849CB88C52B2344 -:1088E000F27C4BC8DE2D31FC875EAF146D93F87BB4 -:1088F0008A513B44BE3CE5B4B685BF930AFAB84EF4 -:10890000AF860840BAA728415EFF94DC5208E2FA1D -:1089100027A179267D59DA2985989FFA772F0AFEB3 -:1089200013FB459B65FECE6FB30499C5346F94F974 -:1089300053ABEF1F2EDF91787E51B7E9F8610A95AE -:10894000EAC3A6F3209D3FE6F39DA7E83F929CEF84 -:10895000FC24478FE78AA028E1BBBCAE4BFB2EEF7F -:10896000238A075C74F8080971F91E1D470DFABACD -:10897000EB42B258378A82EAA36FD76112002FF315 -:10898000A91E71423880F542DE463D632D54DBA8B6 -:108990008EACBEBDE9309DBF2DD5E35A339E90A16C -:1089A000CCAF657ADD50CDE6C4FBB53A5F6A4D7C4D -:1089B00069F04B26FA44DC7DA9F4A1E5FA0EE1A0AA -:1089C000769795EBB9CFC1AD5C7F55DFBE85E95990 -:1089D000AACB6F20BD415ECF325C0FE9D3A5D26B2D -:1089E00096DF3103E757C01509F29B9D7949F22BB9 -:1089F000057539ADAFBF4BE4B5FD5D25BC2F61E01A -:108A0000C5FCFC2C3D8EBE66938837CF7654392941 -:108A10001EE83BAA7825C47DC5B14FDDF4FD4DF9B4 -:108A20003E19E89CB4AFB3625D10EDE59EAEA13790 -:108A300069E807CA8F29EC372A8E9587528AA95F81 -:108A4000EE2CE53A132D93F2009C87FD70DFD1A147 -:108A500027CA384E9F5949296AD3D17227C50B7B43 -:108A600040EC6F48C72A337BE2FCCA7B3962BF61A6 -:108A70004DEEBB0F939DBA66B795F783AFB1465FD6 -:108A8000A23C6C4F97E26DC27EDDB145AB5348DE30 -:108A9000BF91BC14761FEE5E9145E735F59D56D526 -:108AA000CEF4DE7D90EE077749DE61383EB0EFEA26 -:108AB000D16DB44FB4A5C24BEC35DE579EAE3D4AE6 -:108AC000F5AE90E7E4BCFD9ACBACEC5FCFE43BFFA6 -:108AD000752EAEABD6B76516D9E133BFDBC37515BE -:108AE0007D6D12E44AB48F7CE849AAF739F3F4713A -:108AF0001B9D0757B51FE7BA8DC1FCC1D910E28E87 -:108B0000F3F6561BE537F55B8C7E0F7F8F52ADC7B2 -:108B1000510DDBDEE67E2DE50184C7CD7248C3FF33 -:108B20003CB4EF193E1F6ED825EA3E2EDCDF26F15D -:108B30007D03EF8B74BBB51C34C6FB7203EF7A7DEB -:108B40009481F7733097EBB496EF7A84F1BD44C704 -:108B5000B7B96E0A2DB0AD2C4BE82BEDB799BFFF1E -:108B6000BB43C7F71D17C1F7A85C1DDFA36014E165 -:108B7000FBFC74514F77FEF81027CD7FFE08EFBE47 -:108B80007E1DCED9EF1ED5E382FE88C567BB323687 -:108B9000AEB7E313FE0E3170B4DF467527B33A3F2C -:108BA0006679CCED3C3093F87D1DF8EB887FD77566 -:108BB0003A558A83E7F6087B36A7D3CEE713D74129 -:108BC000B885E4DCB7FFF1960CC2CDAF056E0C3B67 -:108BD000B74CE7EBB5653F9845F97BADEE0FFBBBB6 -:108BE000EE9CC576671C1453BC3747FFCE7B4E58AE -:108BF000B7439B13F94EE7D424B7864E3BD79B5C13 -:108C00000B3D36F267D7EAFED3EC27FBF29C2CE74C -:108C100020FAAB6138BE6E97A98E52E9617AFA3BB1 -:108C20006C7CDED560F2BFD372AD09F51783E1D35A -:108C30002CAFDB72757FA2CB6B6E54D431CC7945EF -:108C4000F6D2F94357647519C50B06DFCCF2EAD2A8 -:108C50004AD3BEEEF7125ED2E37CA37F83FEFD5BB8 -:108C6000586D75C5E7EDCFE75AF473CED04F2B7032 -:108C70009D7749D04D38C4FCE6867229697EB332AF -:108C800017C73F5F78FBFA71F1F98D6FCB708AF7E8 -:108C90001E44BB5251C9F53BDD7C5EA8B4CEA57322 -:108CA000B0C02EAB97F29A4087CCF14060973D64FC -:108CB000C179AF211C215DD59DD2D58423CC1B5A0F -:108CC00072D13ECDA32D651C37AF03E3117C6EDE60 -:108CD000CC8F197F47868A75F72B5A4EB23CC2C893 -:108CE0001F1A3E17F1AA71BD01ED008D6FD0BF4B69 -:108CF0006B3FF8D7A2E2543AB7FDAC6821C5A9B9D9 -:108D0000227F31E2D528C6AB257ABC4275174B8548 -:108D1000E860E973F7D9C87E1DA61FB6A0FA49D549 -:108D2000BF86F261D50F8D3FA240436A613D6A2044 -:108D30009D221CEE95C4FECDB356AA0D81A6978741 -:108D4000705D60EF6BE21CCAACEFBD8BBAD95E9C64 -:108D50005FE86A24BC2D2FDBB206230C18BDFF751B -:108D6000B637A37F67532D6A6C5D4DF4DD1DE7694F -:108D70002D09F1726F47B38DF7A1E3BF1B2E1918B0 -:108D80001FD55F641FEB79935D41FA39DEED3B221D -:108D9000ABB42F847CFC657E3CBFF478A8FD600AF0 -:108DA000FBAFBEE3AE10C5FD7FD1F17846DF976F14 -:108DB0009A24333F2C93453B7AFF3325245F9287D7 -:108DC0001FEDFDCEFDCF5CE1E37DF490A823DE91A5 -:108DD00058875D1F4EACB336F81AD0F98A740DA7C8 -:108DE000EF950DBAF62A3D6E6F123D92A4832C2F9B -:108DF0008B9498E7069E95ABE3EB48713DB791DD08 -:108E00003B69E88B12F5901F7E2B5763DC34750AA3 -:108E1000F95AF68916DFFF1DB15F63E5F70FB83F1A -:108E2000235847F7CF173BB9BE013E0FCEA5FE3DF5 -:108E300025E2F703EE79B97644FC3E1D48221F0F68 -:108E400058A35CEF17386E61FA02C7FB3D435D64BF -:108E500017B7CCA43ADA6B757B71B8C45943380F95 -:108E6000D27B7362F32CC915E71B40EBCD8D7D5F80 -:108E700069AC7735DCC87C58ADE3EA3FF4BC1EF33F -:108E8000A8F3B949F2A8C1E2DF0B74EBF1D3F9E919 -:108E9000DA89EF210ECA8F2841CAD7F7BC91122276 -:108EA000FFDFB46FD99F281F0EBC69078A43EED934 -:108EB000BF6C04D7E1FBFD57923D39BFFF8E2BB944 -:108EC0008E5112DF970689BE5C8AA75EF5509C54CE -:108ED000BFEF55AE73ACDF3BFE518A9F305EBA9652 -:108EE000AE631CC3F82B3F56C9F8DB73B432B3949E -:108EF0000807AF93E6AD3FA270DD63FD91CA17E7A7 -:108F0000525C736C06C74F46BC5441F938C54F4795 -:108F10008626C44FA979827F7D075278FF4382124B -:108F2000811F189A809FBAF63F709C5187F62E1EBB -:108F300047C673C5790ACF332C4FC74F58F2313E1D -:108F4000768BB6AE630FAF6FB935CCF26EDA6515BE -:108F5000F7DB446BD44907212348FC78912EA11CF0 -:108F6000E6D84285946FBE502CF20DB33C9EC813D8 -:108F7000E7852F9C14DF19BF30DD3F22D9F7C641AA -:108F80009821F27049E777BB7576B2EF7977E4897B -:108F9000FD097726249C4B1AEDA379425FE6D8C4DD -:108FA0003E95F9BE3FCFF03FB08ECE634ECCB5AA12 -:108FB000C6EFB7E4A1DDBD1E8C3FEFABF3B3E89C79 -:108FC0004BE4D5003D33C91E7E9BF6F929FE9A2459 -:108FD000FCBAB1CF3F6F333C20F6F96FB5925D30EC -:108FE000EA4BE6F9CCF157F5D534CF8DE8DF699E31 -:108FF0009B6627DEFFF645E2AE0579BA1F1F0EC35A -:10900000455EE172923F38D76555655E476868B244 -:10901000EF0B0DFB737895383FEA42BB486DD3A840 -:10902000D779DFEA8503279F4C67BB9A0225C8E200 -:10903000ABBEFC9327D93C4D17F4757E02FE0C792C -:109040009DA53CA06CA0BCEECCB3E8DF259DB1F1A2 -:10905000F926343E649107FF2EA969D4672DA44FE9 -:1090600067F5EF5E90BE227B9CDD3F9BF731DFBF53 -:109070006706448378FFC0283BFBBFFA99129F1F05 -:10908000D447843FAC9F2FFCE1F0F6792C97EFA0FA -:109090005C7C5E3613AF515DAE21EFABBEEC9B69DD -:1090A000E493748ED34438673B9DC56D7DFBDB2D07 -:1090B0007C5E897E97E2C21B2625CA6D04F81FC814 -:1090C000C6FB37CF96BCE84106C8FDE65BE7B1DCDE -:1090D0006FD2BF8FB998DC7F9BE7FF691EE97D7770 -:1090E000FF77C6208B5E18F54111F9D7864170BD18 -:1090F00055E72F0C8D3E4DE765DE0BE7E97F7F3AA4 -:10910000FE3CBDC4E3DF924776D5F2A5FB0AA0F989 -:109110007A7EB942223901EBC5607AB5439F7F4719 -:109120009E2ADE9325CE8746E9FD17ACA142FE9E1E -:10913000A2ECD2CE019B9E7D7E2CD9B9DE0347C620 -:10914000DAE2E47A6605DA07F237FB0EF1F78731E7 -:10915000DC5974DC29DC4AD28DBA1F4DC4E119C236 -:1091600021D9E7DD87AEA7FCF16CFB4D599216E7DC -:1091700067F79E700F8B9BF7ACFEBB1898B70DFF7F -:10918000766A3C9D0F309D67C3623ED4FFE1378D08 -:1091900089BFDF6C7C67C7787E7064239FD31B78A0 -:1091A0005640E0D9F83D8C0BDF55DA80BF7B0CEEE2 -:1091B000B7737D459F355A941EA72F1F1A72449886 -:1091C0001566312BB9DE75226CA8E273024CDED72E -:1091D0004DA6CFEFC2B2A80F6DE4BAC5698DE025E8 -:1091E000DC4AB099FB13668BF3F229D02D135DDFB7 -:1091F0008428B73E50156A67508519B6931C61994B -:10920000C2ADB6F6834EC257C4A3A4BFEF10A5A744 -:10921000C9E4175BBF02EF1B78C5C1180425FD4EDA -:109220003F2B5FD87FAF53E863F4ACF8DD936F401A -:109230000FD33F55E9667A53352D83CE4B763FB732 -:1092400042A6FA97FDA04549CFBC998DBCFF169D5B -:109250000EE1ADE9B1F54EA2F5AAB1FE940560A10B -:10926000F54AB04BACBF1132E87C6C3244F83D5744 -:1092700011C1B8DEE9A029D4B7E517EB7C16F95B7C -:10928000959EBF591C41AEFB49CD17B8762A2139AE -:10929000AF92B7B6C38FD0F94CA958E744BCCEE71C -:1092A000388D82EE0BFE3A5FD8BB29106639430D2C -:1092B000A82FF28F2BCC54895F52C463A1DF13BB5C -:1092C00054BEF67980E977DF1EEDFD6165ECDCCBFD -:1092D000DB99C3F5D0EB254B5426BA1C85A21E3A68 -:1092E0000261FE2E3392F87B67C5F9375E9E4F7E92 -:1092F000CF2FBEC335D775EE086DE5BA9B05416427 -:109300000FCD530870DA13AB03B09684F8BE95CE38 -:10931000D955AE33ADA07C715FB6FFF2FC6CAE37B1 -:109320001DC69329A1F1D5A931BC2365FCFB3B4E99 -:10933000486D257BD4ACD7D30655B75ECF54C4EB6C -:10934000D0D0CEF38F4828A2AEFBDE2A517F7AEF31 -:1093500090FD5CE7DB23812A15D0F9FF7EAE03A6E2 -:109360001F86B3167CCDF97F96FEBB0F25FE3726F0 -:1093700096EA461E9F6B3E95CAF5AFCA0C9F46758E -:10938000BCE67AF1D296F10FF5705E6AD06BAA1343 -:1093900057BC7CFF5EDDBE363BC4EF0049ABEDAA97 -:1093A000348DBE7F5FC1BF63D54CA141257DF7BE23 -:1093B000829FA73A662A02ED4DF3DF44FC32FF2E6E -:1093C00015C2ABFF059A376D38EFF72593C73443C5 -:1093D0001E9681755228875B49BE46DDAD516F4BA5 -:1093E00080A0753B7DE277F054C409FFEE1F42C9AF -:1093F0004EB8F4997FCF43D4FFB6E8FC47BA7670F5 -:10940000DDA7437CA76D7CCF6BE69B81DFFF02B9B4 -:10941000D77EA250530000000000000000000000B2 -:109420001F8B080000000000000B9B25C3C0F0A3A9 -:109430001E8145A551F9E8F81C9A3C0B0303C34F64 -:10944000205ECC835F1F2E1CCB82607B893330185B -:109450008B32309800F12C209E0DC43F81D8508C67 -:1094600081C108888B81EC1220F6056247A0DA2FB3 -:109470001C0C0C13851918E600F1726154735F30EF -:109480004268252E060653206664C66E3FA73AD072 -:109490005E5D04FF23906D6F409E5F46F1D0C35523 -:1094A0004EA8FC7C6B54FE2C5B0606666704BFC0AE -:1094B0009A34F3ED817A1D9C71CB77BAA3F21B3DF0 -:1094C00051F97FDC50F935E1101A008D579524B819 -:1094D00003000000000000001F8B080000000000D7 -:1094E000000BED7D7D9C14D595E8A9AEEAEAEACFA4 -:1094F000A9197AA04706A8611A19E3A0050C30281B -:1095000048CDA0384693349890D1D5BC168821090F -:10951000CFD7F1ED2A1AC9F47CCFC0800DB2067DF9 -:10952000515B0C89262621899B3559B3698DC92346 -:10953000D96C168D9B47B2B86F243C379F9B79EE50 -:1095400043FABD90B0F79C7B6BA6ABA6BF00DDE4F1 -:109550008F37FCCCCDA9BA1FE79C7BEEB9E79C7B8B -:10956000EAB6EAF1437C1EC059FC5B03F0A6170083 -:10957000964D95E94E33076DACFC1C98FDECD1A5DA -:109580007AAE5362E5A2D0B84732002E8F66003C17 -:1095900000F1C38F8287D51B695461671380DFD8C0 -:1095A0005003A1A97EDD657F0F406E61E9F7F20BE4 -:1095B000A33123CCFA7B6A79B7C5FA19F9727BB764 -:1095C000D53AF5BE010765F8CD07864D3DC0E09C54 -:1095D00007C113051866632F64FF69F72521C1DAF7 -:1095E000A9B951301661BD5AAAAF3D73D4731B7B24 -:1095F0003EEC85EEC3ACD49E4DE7820CEFCB9ED300 -:1096000097C88C1EBF62797EC5607FCC934D231DA9 -:10961000B17DD4EF2946170EF576D1B314E9617404 -:10962000ACAA929E55A5E8792E9D467A2E7FD658F3 -:109630005C488FD6C8E9D11AFB689E4EC5183D4DCF -:109640001742CF3D44CFB0A067D845CFBB043D1BE8 -:109650006D7A1A86889EA1398C1EF6C8775F1A1219 -:10966000ACBE86F484B19E939E21A4A7B5083DDAD2 -:109670001F879E0F09794B213DCB2AD393427AEA6B -:10968000ABA02794019D3DF783641D6E9D8E975F6F -:10969000F071D13399589AF53BFA7B99E699ADC8A8 -:1096A000D8864553F5C6055EDF691A8A8DA37C2DE1 -:1096B000783006ACBFD13912D577F7FB10A8547FAC -:1096C00066A3D58BFDBFE34967FFA37338BE76FD64 -:1096D000DF8879FC0DC8D46E5628318AF0E882AF55 -:1096E0004112C7F166623AB66BE2ED06172CEF1E27 -:1096F0000F156BCFE919DD912679D672F710BFFEF1 -:10970000624E060C06FB9F4C02F25F8D717CECF6FC -:109710000C2F802B90ECBB2C8BE30770119BA7F4D4 -:109720005DB9341B2F9EB9434B307E8C36F46948AB -:10973000F788B1AF1BF5D6A9B80A7213E2559C0F92 -:10974000B65CAC81316D3E9BCFFE576473274CAF46 -:109750009746E1AA9F82959007722D407F6701E9A5 -:1097600049D2FC0F2E7890E85691AE4548570A0C26 -:10977000F6FC1B427E7CCFA401E54A33D2B1F4A2B1 -:10978000E9E38C20FF5BB1D74C6C4301FD3FB5E7AB -:1097900097CDAB6B7E892F0F81954B235FFCCE79E4 -:1097A000B3CBEF09BE5FDE9826FE561A7F3AFD7CEA -:1097B000FCBF0683FA012D134B84A7F019F58EF731 -:1097C000A15CB335691E62552E63E37414F0DB3D72 -:1097D000DE249D4AC621C75F137C1AF54FBC50D8C2 -:1097E0009F1B9F6F897ADF029D4A9BAECB9EE5E36C -:1097F00054EAFF47C8E27AACEF5A574ADAC1F77B1E -:1098000045FDCB9F73D62BC59F8F4FF2271D437904 -:10981000B4D723FE59330184C8D05F6839C025F816 -:109820007F5893DFDE367E172EADE3D1E4296CBF7F -:109830000D92F302CD6CBD78939FC5729D62BD49B8 -:10984000FD42487FFD52217732E9013E1EEB1E5852 -:10985000FF61D19F2275013079F6B543762743ED3C -:109860001AF9784E62FCDC0760CED20BF6F5137C59 -:109870005F5FA967D7E27E7EA5C20861E3D580EE6F -:10988000C712EBE758BDC8B290C946021FFC594D3C -:10989000A288DCF8DB20EDAF61E3B7AB8E75E1B7F2 -:1098A00092807A211C839C3F02A04BE128E1BF02F9 -:1098B0005670FC0D09FBAB538C5E858D23C73DE6CE -:1098C00041F6B46615ACDC54208786C4E5B737EEA4 -:1098D000F1205D434CFFFBD8928CCC61EB1DD7434C -:1098E0008CD91B45E47652BFE765C8CD60FDE625FF -:1098F000C82D657008562659BB8C0F569EA471C1A1 -:109900003C5844CE364A7C5EA5F8C4D9B3641740AF -:10991000F65AB20B32B48ED578C6C27D40B322A6B9 -:109920000FA7FDCCFD5CAF2960A19CD4C633B91A4A -:109930007C6F5CDC84F8CE8AA7E0B5565E9E28C0BA -:10994000570BA563643F355D2CF515EC63CF33F9F8 -:109950003951206F233BB81D30D83424F4CC8749CB -:109960007FDAEF3F20F8A48E3364902E43CDCE975C -:10997000A6CBF588545C4F6C16F4E2DFD5CB9DF294 -:10998000AACC14F2CA86F02940F235FC1464115FA7 -:10999000C6C9176E63F0A52F6AB093C9572B1CF583 -:1099A000A0FC5C0613549AA0CB582E0193CA3648EB -:1099B00050F9DB0E26F7ACDC6631799F4FF2FF3EA3 -:1099C000898DFF9B39C98511F6DC1F4F5F81FB0B29 -:1099D00093FF8DF89CC98984F2546741D1FDB2563A -:1099E000E2EB75AFA2FBB1DE5E0B483FEE97FAD318 -:1099F000B84F8C083B69C40F8E75BC47D03D22CA56 -:109A0000DA7812C6717ED9BCA05E7FBEE9765AC7ED -:109A10003E85C3436C5E48EE56F37DCC8D8786F35E -:109A2000B2E8FCE761E31F7F1E86A4FAA2F3308C44 -:109A3000F3B051E2FA53FD391FBF0C7DB44F6FEE06 -:109A40007D9CF8AF9E3CB7FA36FDCB5D7A7385D02E -:109A50007357C2C45C85E9913B7C39559108EF4747 -:109A600010EF377F72F403480F8C2717E23EC5F0E2 -:109A70007E54223D9982A36C7CE515398B7E8A2722 -:109A80007883962CE3A780CEF49926F4D97CFCDF6A -:109A900046FDF5E074FD7BF1E10F1D237B03B4E48B -:109AA0004ED44FAB531ACA457FE3060DE568B89113 -:109AB000C128373155932E676508BA50FE6CFB6399 -:109AC00028B669A4298A768FB91CBBB5C75F1B4B22 -:109AD0008244CF93337C4DCEE73FC3F5AF2763324B -:109AE000A34FCD5EAB219D83FA06ADD0EF5243C9A3 -:109AF00098CAE47018C7C3F1BDA9234D6DA83F6192 -:109B0000691FEA733D054B51BE639D84E7DAC68445 -:109B100086EF7DB125E03390C509B2AB86A24E7FBA -:109B20006EB8F14EB89DEAA7E0F5D074FBDA174A9B -:109B3000815AB04FE03872C13CFB94540EE99263F5 -:109B4000C5F5EE3F09F9F71809DA6F20F3494B63C1 -:109B500072EF1532E08DC14FA4CB0AE6295AB0EF5F -:109B6000B0791AF29BDDC5D625DB419CFD9A1268BF -:109B7000CBABEF776ABF15F39E5931324EF31ECE51 -:109B8000E0BCF733BD4FFBEAF170F61023A1777507 -:109B9000EA317CEF4D2BD017A56E5A709FBB5B7ED0 -:109BA0008789F2B707F9C6368EB11E8DCA9D3D3A38 -:109BB00095233D312A3F19FCC467C759BBED699F06 -:109BC000EE4339C8DCFD25EC8F79DD899DD86F9493 -:109BD000F58FFD2A9A7E484798EF3BDE382F6FF1CC -:109BE000703ED67802846F9B87DBE10658242F19DC -:109BF000BDBC9F5ED3EEB473C366606A3DB0FF82A6 -:109C00002D750ED86F5CE4A8EF5E2F2F79B8DEF0CB -:109C10002A09305BB12CAEC7CF4A32D593E5C513C4 -:109C2000687F28B354B20B0625A7DE7ED4C3F7BBEA -:109C3000273C1AD11983896F9F65FCF0EA1EB27B1D -:109C400022B5F30FE7903FF5AAB9801511EFB85E82 -:109C500057643C882ABF1E2F58E74F4956DCF3272C -:109C6000C0A769F4F7763AE47A9787EF7767C57A01 -:109C7000917D5637EA9918134320F9301E473E78F4 -:109C800082ABCC16C687C15AD5407F68A0D7537423 -:109C9000DF71F341AEB92586FAD1CDF76F09397A74 -:109CA0005AF07DCD99F7909ED8AD7BBAB221E4DB16 -:109CB000D12ED4F3036D1E0FCAF99F0CFF5C746C98 -:109CC0009FE4DF241DC4B78128B79BC774263FB823 -:109CD0009EA35C7E0CC875D17B93D1254DA7CBCDBF -:109CE000BFB79B3E9BEF35B59E44B615F19B481020 -:109CF0007EAB94A2F8FD47F1DDC62B3489578EE385 -:109D000065FE69E0F594943C88EB7B8F90D73DCA63 -:109D1000B8867A216ECB4D90AFA3E97A4972C83BE1 -:109D2000EBE7F3D8CFFDD80FAB7FBF32E1E8C7AE8A -:109D300017463EF07591E0EB42F9A3AE0B1BAF9DC9 -:109D4000026F03B25CAE5B8ACBF5DB8D97BD9FF6ED -:109D500005AF02D437B5A104D9DFB342891CF2ABF9 -:109D6000BF5E35D0FE618E12EDD7D4D428F093EAD1 -:109D700037C6B0FE607823D9E583DE04D9E947EA27 -:109D8000BF66DDC6E8EA3F53033E93F903C1AB8EDD -:109D900018A8178FC8E4AFF59F699E952A32CF4166 -:109DA0008C8F31FC03881FD9D5EAA4118EF8F68771 -:109DB00098E263FDBCD10A59D4A7DE901543BBBB22 -:109DC0007F9166F651AD04207FFB821F684FB64E2F -:109DD0006F1F0C0D7D4CBE6C6A1CF6279D45DB97F2 -:109DE000EDE1E8C7137D92E37D513C2AC1DE29589D -:109DF000A7FE196C68D8B5649D6D9EE23BA3A5458E -:109E0000C17D130226CE7F3CD1D5F73BE4D3F76466 -:109E1000D2836EFEFCB59C0CC8CBA6606F3449F3B0 -:109E200066F7775DBD427A546984AC4FC251135DC9 -:109E300068DFF6377A28BEA68436D494B5BB1BAB50 -:109E4000B3BB41C43D6C79E8F8391F376072FD1D22 -:109E50008671C0B84A0DF0B8462D1812507B534A8F -:109E600050B06415C553A2FEB7BADF5BA85FC9DA6C -:109E70000B6783E7D0AFC2FA6D7E1BFAAD80AF1FD0 -:109E80003E45FD32F5103D3B63AA5F6F2C450FE167 -:109E9000CCD9B3F272E04DE82F49F2AD784C5A9F1D -:109EA0007051C43CC48AC1E89D0E7FEABDF27C4774 -:109EB000DC54D5873E264558D9B8CD1A2FD00FEEA1 -:109EC000F9EDC681D0BF6CDC628D57A137D0EC2E86 -:109ED00016971A5293D95EDCBFE786288E084A8A05 -:109EE000E2C2C352DD12B49FED7A4AA39A43BCC2C8 -:109EF0006D561AF5C5F00C8F299BD8EFD851F40791 -:109F000040BEC14C96892F298DCA2F0BE9F9CF721B -:109F1000384A788A38577F05791FEA297F3EA1AAF7 -:109F200066B2983F9396B9FDA2068ABFBF5AEDDC90 -:109F3000212F9BCEB70CF28E3D1FAE652EF7E55C50 -:109F40007C500E94C6EF1E433E0C35AC8B95A31788 -:109F50007466E714F845A66AED94CBE3B1A7181E22 -:109F60001062C2B3B2CC38627EF5AB4D1EEF40A595 -:109F700088E771C23E637847A4995C4FE3DFEEB691 -:109F800083398CA3796F0B59387FB2F524C8ACFEA6 -:109F90000F1B6490DA110EBCE6A1F95C6592BE6AF3 -:109FA000E1FE9DC5FE211D9155AA63DF42FD39B931 -:109FB0006F35A1FC3BE1CFC9CE78667FCFB3F0B35C -:109FC0000553F8B34756B178B1A2761E2ECE8FBA9C -:109FD000AAF8B19FC90B3079D9C7FC46C614C8305E -:109FE000BF11E13DCC6F04F2270D2A077A5AA8DC95 -:109FF000854D57E2F9596AA4A909E3A59F8E7D9082 -:10A0000055D98FBA83CE55029D183FDF69C3EC89BD -:10A0100084B03867F941FFEF3A301EB3D3CF618087 -:10A02000890ECB01CB7D18EFDF19E6ED7F26873A4D -:10A03000F13C62BF384702C5D2DE57E0FFE7652F2B -:10A04000D18136106FFF9B5EECCFAF08383D87F0B3 -:10A050009984191F111FBFC6E1C681B9D43FA90059 -:10A06000365E7C601E1F6F01B7EFA17543053EF69B -:10A0700091FCDF84877048736B1D1E2A836A9A8067 -:10A08000DBCDFE5A817795FD8092E4FB9D882B9570 -:10A090005E3715F6358147A5F907F44B317EC1F4DB -:10A0A000701AC7FDC7E2FBF45B3DEE7EEFB9F145E8 -:10A0B0006D9F482B8CC57F29277585C161EB70AEDC -:10A0C00089C1911B72695ABE558EFB6B5917F1D02D -:10A0D00024AD7F9BCF8ACEED8EAB5DF3E88D5A74B5 -:10A0E0002EE90FF1F5572DBE2B719C827EE0E9CE53 -:10A0F0008644B874BBFA8467CADE62FFCDE80A4CB6 -:10A10000D96BECBF5AABCE01D7B45FE4A81F36E7DA -:10A110003BDE7BF57738DE9FEF3C5DE6A2A3D9E618 -:10A120009F80636E3AAB963BC510FB5C9ADB8F93C6 -:10A13000B0D88F2BC167163A61DEAF0F6EAEE1F675 -:10A140000DB763FE13883A6E3CCC02FD2B633D0EC7 -:10A150001B1E096CFB36D732BDFF7EED131487B38F -:10A16000FA15F05F353D4E97EE4C519C2DDDE7D34F -:10A17000FBA31477A338DB7666C8FB58B9CD9BDC0C -:10A180008AF27BDA3F370B11EC37B502E3D6FDAE2E -:10A1900078825B9EE29FBAA9E879995D8EF4F0F827 -:10A1A0009F0D6B8DC5F300EE55F879FD77BDC97B2A -:10A1B000110FD48D40715AA075E035F8FEF87CD3AC -:10A1C0003AF805F9FFFC7C4C85F4B166464F86F9F8 -:10A1D0006B3B0DA49BAF9391A6755A9C3DDF5BEB47 -:10A1E0001136DD04D94F998E990DB89E6A94093ABB -:10A1F000B7AB8917C7E77EC523E6EDD6B2F4B9E75A -:10A20000E3560CB4B2767BE7481EE2FF1C4FF61013 -:10A21000C6A31A3DB4AE775BEAE378D4BEBBADEE1D -:10A22000268AA75BAA47263A725AB1753828ECA647 -:10A230007E113FDDD3C8FDD6E73B5ED7F0BC668F0D -:10A24000D949F9004AE687D47E58F03BB3F804C5F3 -:10A25000C9874B9CBFF429DCCFEF0F07BAB345DFAA -:10A2600047E87DA6A9E38587900EA67F0F917F061C -:10A270000D5B181DBAA52F417EEF9D63797E81721B -:10A28000B5DA437216C1B89C8CE7A24EFF79EF6A2B -:10A290000F9DB366F49089F6FB29EB0DA08D48D194 -:10A2A0001BF07CB1E6F8953AED95CCDE6928B0F369 -:10A2B0006B56A556E07CD974F9607DD1F990E66EB5 -:10A2C0004F223FEF5E0206FA63BEB95DB94758BF41 -:10A2D000A757FA7454055787AFCE7D13E5896D2BC8 -:10A2E000E827FBA2560EED267F77100CF63E123BB8 -:10A2F0004C76941693C142BBEAFFCA345F4C671098 -:10A300005DCAFE9547D7B0F6EA6ACF2CB2CB5AF9B0 -:10A310007EA3B37FB8DF6871A75D257B73D4DFFDB3 -:10A32000E38FD3B9B2EAB2AB1428A88F76D7EA0D7F -:10A33000EF692EA20FEC521E8FD0B92EC8B794B57C -:10A34000B343C73FFC0F2F16F0FD84E2B2D385FD67 -:10A3500066F753CA7E3BDDB3F51F5E64B29CF4F230 -:10A3600038A8A25ABFC47579429C2FEE75E5DD244A -:10A37000BD7CBD9C16EB186716FD6DF48F915F03D5 -:10A38000D76CE47E16980E3F86ADF7D34A819F6D59 -:10A39000EF7719ABBC3F3195D712F2C7CBE4B5AC20 -:10A3A00057928AB74C5E8BBD5E47575B1063F33B99 -:10A3B000560BD93E9CDF35166C467995C0ECD379A7 -:10A3C000FD09FB1CA509E5F01AD882EBD7504C3CDF -:10A3D000871C6C7E3773144BE3AB449DF251691EAE -:10A3E000B7BBE671B6D769877B2151936BC23846FC -:10A3F000EC26C463775435713D7A3DB76CDD644C0F -:10A400009F4758C1F586379A8362E3DAFCBCC36B79 -:10A410002DF4629C5D358F2551FE3B55F27BDDF5B9 -:10A420006FF58A3C962650D03E4BE33AC1F5DB658A -:10A43000F1BC31494F3D6C12FA09C7B956FC4DCAFF -:10A4400067FB940CA919AB006EF436713DD3B19142 -:10A45000DB3DD78324D762FD24ED5F0D962EB1BE80 -:10A4600061D4B6CBF4DB62EB0BF4E48D423EA7DEA5 -:10A470002763EF73BCF7723CC3C26ED637C7D62FC3 -:10A480002AD2BEB6B89EBC5EC8F58D5E614FA437B9 -:10A49000535ED0A0714B02F93CB0C632B7A0D64291 -:10A4A00019C17C941038EC6326DF37223FEDF89118 -:10A4B000A227A8B4ED8152F3EFB603BC3167DE49A1 -:10A4C000B5E7B6F1FD37951DC7BD3FDBF96DA8F9BE -:10A4D0000AF9E4157C6815EB65CA5ECA88F56E5208 -:10A4E0003E90AC5A498C4BCA1238ECADBD425EE48A -:10A4F000007FEFC683F9CF77E13A952316F9D7109D -:10A500006AE3769B621AEB8BE06F9F733E21F278D1 -:10A51000E39977D3FE3756DB49FBDE805E5E7FD85A -:10A52000FBEA1AB841C3B8DD6069FD3156A83FD4D3 -:10A53000A8C7B98E857FCFE8378AF1D9E6534CC4D6 -:10A540004BFBC31B6365E382AEF31553B51E22BEFE -:10A5500094E6DB23E7C3B7319157B763F0E51744BF -:10A560001E82535F2F2EA9AFBFE0D0A7425FBF8DE1 -:10A57000FC7FEEADE07FB57118FF76D9383983A93D -:10A5800078254DF48C1AFBD2148FC1F58D7640A638 -:10A5900083F215200EA417B121EA3BBF6111DF023F -:10A5A00022CEA4363AF719391A70C0B1EE3460BE23 -:10A5B0001AF68B74FBB7AB34AECD6F66B3503E99D1 -:10A5C0006D5FE272427FA4547E9A5DDAF11B3CC655 -:10A5D000394BFBD4C78F207F4F8580F687D2F43B61 -:10A5E000C789BD37515E3FB9EA4348315E2F722EAD -:10A5F00038BD9D02AF17E8B5FFE3D227D693B775F4 -:10A60000931E058F89F1CBFED8464832BC8780EB7C -:10A6100093112C57623EC9121DFDDFEF7A0DDEDE6D -:10A62000E0FE9D4713717AA33A7FEF6EB60F15B324 -:10A630007F2E56B97D7CFA13A9DF625E427AA76449 -:10A64000E0FE76B2274FF6D3A6DC252AE6A55DA26A -:10A65000CEA47A9BF637A96B0BD6E726E0E7FE0C73 -:10A6600011B5508FDAEB4FCDF85E403A4F64785C0D -:10A67000E344E6DFE85CFFC401398B4C3D31726393 -:10A68000D9F57352E86DBBDEC903B285FDA547A4B9 -:10A69000EC02D6FEA462458AE60140969F070BF8BD -:10A6A0008319D92197A7772455D433277B34E967B9 -:10A6B0006C6E6E473A19FE9B324D2AFA6495E89A01 -:10A6C000A13AE7D3A67310F3159AA6F27706A36F03 -:10A6D00010BDA7D873B94C3C69A7D01383D1E2FA57 -:10A6E0002420CE5F03DE6CF1BC0717BDC116E7BAAC -:10A6F000B4F11B16F914C33AC76B38E6A179186E8A -:10A700002CAFC706C43CD8F50663FCBC755049683D -:10A71000D5E0E3D59DF8941A475B75B80BB7F91AE5 -:10A7200048767536117B5FC63802850E0DF49F9E04 -:10A73000923EC4D6CB0F6F0B59520C1F4EE4BEC9CC -:10A74000E898C5FC1DB44F752B2BCD6DC3BC4E19BD -:10A75000306EFCC89FBF917B15FD51E6FF205C6BFE -:10A76000A4D65F6B601E5C52C275B51B953F75FE2B -:10A77000AEFE8E56B1FE18FCD1A1CEB5188754207E -:10A7800021E2191E03F3F568E97B4AEB09D49E67C1 -:10A790007D53ED4AD2E9F28B7CB0A1BCFFBD95D7C9 -:10A7A0004FB37FA87766B9FCACDA6EA7DD5DE37ABC -:10A7B000BF57C86B29BFF2AD1A6726BCACE1B9AC74 -:10A7C000D6E6D1B3581F52B5B8DF466E5100EDF84A -:10A7D0009986DE8B21BE4A7CDF053CCF0DBF8828E1 -:10A7E0005C7F9F51B91DDB78E7A725DC9F4EA197C1 -:10A7F000BD18E1BC594C7EDD76DF887182E2894369 -:10A8000070B4AB19EDF92D1E3A4FDADDB6AFB6B024 -:10A81000FD77C43853F30F86B29C4E65C99F57DB52 -:10A820003C16EE5BE73BFF6E3FB9D2FC376C75DA46 -:10A83000C5E73A2F2F21E2CB2ACFFF858E63CFDBEE -:10A84000F4F5C1F566E39D2F521C67CC2CAF6FA6C3 -:10A85000CFDBCB346F9136B08AC5717E2CF6317761 -:10A860005E9F062930313FF115BEFFC8CDCB63078F -:10A87000CBE81F39EEF23F443FF90F021CC5FD56ED -:10A88000312A7C0F7778BFC2F6CDE0F62BF72B4B41 -:10A89000313FCBA23CAFD11E8B9E4FCEBFCF23F01A -:10A8A00095C0B35CE81583CE3FF72B646F78E02C3E -:10A8B000C6414007C3963BC07A5DFB158AC7182284 -:10A8C0008F80559D89ED80F4D2624CF6ACA7737AE7 -:10A8D000EA073BE271986E0EB386344F5ECB22BC22 -:10A8E000948C7627E3E72EBF800D01D70A581770A6 -:10A8F0009380611FC14195C11897F7667482030266 -:10A900006E12709D806B053C5FC0D23E8277A9BC01 -:10A91000BF9D4A96F71F10B021E03A01EB029E2F2F -:10A920006038C8C7F77118F7438283026E12F00CC3 -:10A9300001D70AB859C0D241824BCD5F206E117F3A -:10A94000A7E6BF8BF30D40F89B0917DC3D55BFC050 -:10A950001F1DEC31A4C2F3436F89F8D3121FD73304 -:10A96000131D09CA5362FE42FA44E1B963ACB8BC94 -:10A970005BA2DDE4B97994D52B1ABFEE2DBA2EAACD -:10A98000C56FDD79E2F7DEFF20FC6EF6D9EB9EFBAA -:10A99000E7131D26E1E9EECFDD0EED2D2838A70FD8 -:10A9A00028D934C66B988D44FE8E5773E6B3DEED1E -:10A9B000E3E79CBD3E9ECFDA2FF09BE8E0E70F83F4 -:10A9C0000B02D983D2F438E35FF8783CE1FB369E82 -:10A9D000DA61F27B8279B662C90FE27ED468BCB3D9 -:10A9E00042FEBAF2FF0AFD65771CE4DFF01D1B276B -:10A9F000102ACEA7BB27F5CD2DE913ACAEE667CF65 -:10AA0000D19FD1A3B1C6C2BC69F11E248F4CFAE517 -:10AA10000CAB67E78BC8D43F8F1737F278B12CEABD -:10AA2000D3384DFC3B066B09EE33EC798B18479A13 -:10AA3000DEAFBB5DCE57C7E74BE063E7A7C8F01CAE -:10AA4000F533898F92207EB99F631EB21EBAF0E75C -:10AA5000170A7B8D12E365F8F94BA5F69F15F232C4 -:10AA60004D3E4BCCEB7FF3D976CA610BF3816C3949 -:10AA7000B2E5EB7CE5E882E50437A4B6D2729286B3 -:10AA800014AD1B055DCEC5E72E2F45E4245758BFF6 -:10AA90005EAB15E7F926C90BC34721B9D5393EF599 -:10AAA0004BA2D49F846B7C21F62060E403A3F75271 -:10AAB000AD56F081C7290278CE58D09E1147F84A8A -:10AAC000B224F43EAFB746E3EB7C756723C71F445F -:10AAD000FF2E7C597F5A617F3234BAE49CE3FD7EBD -:10AAE0008DCF2FAB4FDFF94D1B5F91085F191269B6 -:10AAF0000F6BF75151DFADBFEC7287C06FD4035BB2 -:10AB0000F977920928FCAE32A879C4778F7C9DB979 -:10AB1000F59317E56AE9F9CB55B57ABD5E2BBEEF23 -:10AB2000303DDF82F1BE52FBCE316D723F6811F3D2 -:10AB3000764EF3FE6BD443CBA6E6B35A7C2F15E3D7 -:10AB40009E2BBE27A7E35B959CBD21F444B5F8ADD1 -:10AB5000394FFC5E76E1F756C9F519B11F558BFFE9 -:10AB6000FBCF531E7E309DBF55AD238F766EFCFD0F -:10AB7000E879E2F7CF6EFC4AAC5B55E3FC4A0397F9 -:10AB80000F459CBF548B5F4F65FC44BED8BA012B68 -:10AB90004EF61AF9E3BBB5750369650A3F0BB85E5B -:10ABA0003FD7F1EFAF7AFC770F58CAD4F88F68EF30 -:10ABB000768CAF2826095BB5E33E5AEDB8E9F73944 -:10ABC000E87E7AE47D8E71CF97EF5FAC7AFC5B1DF7 -:10ABD000743F3772AB93EE9049F9C4D58EFBCDF339 -:10ABE0005CEFBF14F80635DDB10F94B2DFCF08BBC0 -:10ABF000F6839AEE90E352F5DF10F6CABBAAAC7F5B -:10AC000052F4DF6CE353A1FE3D02FF7BAAACFF6B65 -:10AC100081CFCA2AF1F9BE5887A5F6CF80E07B1014 -:10AC20007564815F73A1794B5B7C49C98FE79CCFC9 -:10AC3000F4D077826F289A8EF14EE802B2C7FDC732 -:10AC4000C307795E495AF8FFC9B4C4F530C5B7BC2B -:10AC500051D3711E67FB5D8A92B08A9DB7D5FAB950 -:10AC6000FE9374B39BAF7715300FA954FDA0BF7846 -:10AC7000FCA5062628FF0462E21CE9CC8D46D173B0 -:10AC8000022541792DB2AEC24136CE40ED46A33009 -:10AC90006F396EE313B3081F55E7F8A88A6915CB1F -:10ACA000539EE3E7F36AF763FB87526C02F83D0EAD -:10ACB0001CBF417FA21BF3C4D3B52AF16920EC3C31 -:10ACC0001FBF49F4F34E41DF80B77C9E58E7CC7636 -:10ACD000CA57EA6FE7F94A069894DF39102A7FAF1E -:10ACE000C1580F8FFFEF14F94F23F8FD287E4F8CCA -:10ACF000DF8F2EC4F65FA1EFF04EB57ACADE8F1358 -:10AD0000369D71F6608BF37B1E3B2EEF379CDFF593 -:10AD1000F862CEEF7ABC3315CAEB1A08F1F3814A18 -:10AD2000F8DB79EF76BD6125A5E945F994759C0BB3 -:10AD3000F8624E7CDF3EFEF1F641EF61BD185E6FBA -:10AD400015DF4AC51B26E9AD515359AE371CF91919 -:10AD50003D42BE7C355A0AF532D3BB25DE0778FB6F -:10AD60005082F243B458C2A078B4D807345C0F05BF -:10AD70007CFAA4BD2E031E3BDF98F23A24C3A2F353 -:10AD8000470DD79134BDDDE4BCDA72FFFBB5315A13 -:10AD900027F51AAD13C998A0EFBADCE32CF45BFBDE -:10ADA000FC783EE6B71EC0D2FB0739596CBDECF506 -:10ADB000733DAADD9030B4F9E4AA92DDE3C6E34B1B -:10ADC00062FD856CFCD316E55F548BFFA355E26FE3 -:10ADD0008FC3F0FF1CEA5986FFE7B12C85FF534271 -:10ADE0001FD581D14B7BB6C1F52CC07AA330BE1ED6 -:10ADF00008F07EEB849E02E870E4F578055DD5D21C -:10AE0000F3ACADD72AD0638FCBE87951CCC777CAE2 -:10AE1000CDC7B7053D8100DFB7B40309832D4DB819 -:10AE2000B8C4BC9C1078CC0C88B852BAE39CE4EA55 -:10AE3000A52AE93831352FAF8A79F9E772741C17E2 -:10AE400072959161E549DC4F9BEDFC850D8E7999FA -:10AE50002DF893F1D9F3D2E99897DA739C975F555F -:10AE600049CFECA979392DE6255F4ECE0AEAFF5E7F -:10AE7000D4FF83A84F76E2ECC0EF06F0BC6CA13F94 -:10AE8000E109D44FED6FAC9E1C583655EF93A347A4 -:10AE9000EC7A3EAAD735594F0B14F407E9D706F0E0 -:10AEA000FC7B507CFFF1FDD1F035A25D84DADDC082 -:10AEB000E961ED6A0AFBFFD2E82B76FF33B05EEF63 -:10AEC000DA3FD8F5A285F56607FE60D78BE173E916 -:10AED000C0647F0D85789CF0FFEB00CFD771E57BD8 -:10AEE000E9D5E53B78A349BACFA10EC2199995439C -:10AEF0000ABF5F21CD8CEA43983FEB4BE6A00ABB2B -:10AF0000CBA3F1763E666FE1F9F10C1D9EF71BE8CD -:10AF100082987080BDDF1355C81FB8D39F6C0BD4C7 -:10AF2000733C290FE0556E8FF586DA441C85E3B536 -:10AF300037F88111EC4F677861FF9F0C469EC7FA86 -:10AF4000FBE6A894CFFBFC9CBBC84EDCDBAB00BE91 -:10AF5000DF7B9D4A76E203AF86691F1E54CC9B2897 -:10AF6000FFC1520DB41BEF0EFCE118E6298FF7D696 -:10AF7000E8D255440FE19FF640A29FFAE776E776C4 -:10AF8000863FE603D3D685FD76713F06449EF3DD0A -:10AF90006B0DCA9B3180DFDF34DCAE529ED2DEC641 -:10AFA000F91D38DE03ED1AD91D0FDC30BF97F2B959 -:10AFB000DB0394FB56173224CCEF89AC50013F04DD -:10AFC000A98B1ABD6877869707F0CE2FA86BE4E3AC -:10AFD000851702DDF3E7854C22CECAC8884AF738C8 -:10AFE0003D70C386DC66B46BDA79FE3223ECE5F89B -:10AFF0007280906025C83F00C4C73B9B9FE7DBF38E -:10B000001CC94CB62F7B8E18C956592F575DBDF001 -:10B010008842F9C915EB65AAAC97ADB25E8ED7AB85 -:10B02000787E2FF22935F60FE3707E773E76A8FC06 -:10B030007771E79AAFBB37E0CCBBAED4DECED3ADF1 -:10B04000442F1E664EE22957AE6FE7D9957AEF9DE1 -:10B0500079570CBF4B1BAEBF5794F7F1B2413C6F11 -:10B06000D81EA3FB221BC4FB86FBE8FE48773F7F6C -:10B070002BF4710B24CACE439DC0FF75863BC6B32B -:10B080005B940AF900EE7C3F97DED3947427ADDB26 -:10B090001B787ED1E4F7938DE2BB114825E214CFF3 -:10B0A000B2228B674EAD1FEFAAEFD2FAB1BF9B64FD -:10B0B000F3C3BF9774C9895B2E7CAEFC940B959348 -:10B0C0001FBF4D72E21D91AB5A3FDE4C95F5B25554 -:10B0D000D6CB55574F1D91AAD22B6AA6CA7AD92A28 -:10B0E000EBE578BDC195AAD8D7470731BEE5BD428B -:10B0F00073C08357049CEFAF0C39E0A165CEF6EA2C -:10B100007267FBA1E5CEF6EA0ADEDE0CEEBF261D75 -:10B11000AF7E9DFCAFF35C272D5AF9FAE1F60AEBFE -:10B120004AD3FDD8BE4E3100EF1762FB5556EC5B9B -:10B1300045E33FEB827CFD5F17D01DF7D3FDA9D31C -:10B14000D912E4F8DAF456C2D7D6BFFF220BBBAB54 -:10B1500044DE3D7E564079D830DE80FD3D7FCFCC49 -:10B1600006B4E7F6BEB682EEEFE87F979D376352EE -:10B170003EA472EC9764BFECDDCEEF977EB4D6ECC4 -:10B180008AA3BD12F600DACBCC8DA27B3DF6C63C7D -:10B19000648FF45F5DFEFE924FF5F03CA187D1EF26 -:10B1A00067FAFF80B877EB4171EFD6FD3D0695BB9E -:10B1B0007B5AA8DCD5635239DAD3CEF3197B2CF154 -:10B1C000DD5917955FEA49D0F32FF47453F9F99ECE -:10B1D000243D7FAA672B959FED49D1F3433DDBA921 -:10B1E0007CA2274DCF1FEF19A1F2B19E0C3D1FBAD3 -:10B1F0007A03DD9371EA3E0F7D1D520AFF392967FC -:10B20000DC61F65667DCA121E98C37CCEA76C61BF7 -:10B21000F455F31DEF236DEF70C0A1D6258EFA8192 -:10B22000F8150E586BEC74C04AE89D0ED87C6E83FE -:10B2300003BEEC999B1D70EBD39B1CF03B3EFD11B4 -:10B2400007DCF2A93B1DF0C5FBEF75E0171FEB73A0 -:10B25000C0EB83F3F97DE0033B1DCF8DFBF639E0B6 -:10B260008FCCB41E0B623C3413E1F6EC7189F6C14D -:10B270001973CDDBF03B29F8B14CF204519E0F3F1E -:10B28000637EEA72BCA70C94D48A1BC395EF91B677 -:10B29000E33D72A43D89F27AFA35C9407B578A6C46 -:10B2A0005F58E8CFD9E5D65329388C71499167A604 -:10B2B0005F0496C5DA05983EA1C34548E57650DCA3 -:10B2C000D243DF5165A424E59B309BD9FC2B1DF3B1 -:10B2D000E8DDFB6F90ECF253519ECFDED1A9350D26 -:10B2E000B0FABB17A926A6784DC3D775BFDDAF82CC -:10B2F000DC0FDEB583C72BF517FC4D1A6B1F32939D -:10B3000033D055B5DB8572DFA3EF944286B91CFDBF -:10B310009A503C039B43588F7FD7C7EA7F3558200C -:10B32000BFA164CE5259FDD89664B387D5DF2DFAFC -:10B33000DFBDECC7748F6038F713B898FC9DCFD091 -:10B34000F8E1B6A3707B18F5D338AC2BB28E77FF3B -:10B35000BEF8F748E34199DAEFEECD82C9DA05721B -:10B360005FA77B38ED7909B61E8524F6BB6A82BEDD -:10B37000A1DDBD43A27E764B2FC56282CE5E179DB6 -:10B380008817D2753BEB27D49D94D6B5F2E7CDE173 -:10B39000A97EF1FD667C7F4B4AC23CF76AF8A72282 -:10B3A0009F928C7FB8DEB664A4B2FC337216F25B57 -:10B3B0008B57E2DF839C7F8C6FB7B74EE7D764FD76 -:10B3C000F45158DE5AC06FD11EF9727B11BE4EF295 -:10B3D00089B54F52FB97606988B7433E8419DD9B5E -:10B3E0008BB5935E12E3649DE3303EDE4ECFD322F5 -:10B3F000BEC8EFF5B4F344ECFAF8D7B55CE42932F3 -:10B40000BABDE3B59BF1FBEB8ED624DD033C18F20D -:10B41000D0FD4283A1AFE4E89E7E1DE8FB5945B113 -:10B42000FA7E14E571E83EA9D83A75FA09F8654A3A -:10B43000E1F76403213B0FBF82BD24EE1596C5BD25 -:10B44000C2AA92E86AE2EBD9EC85A9F8EAF4F1F72E -:10B4500011DD72CCB9FF0E6C71EE7B71FD668A63F3 -:10B46000F747ABFB6EC897E7F6A52AF0F1E683FC39 -:10B47000BEE3BC9FF0B4F233A85C93AFA5F2AAFC84 -:10B480006C7ABF3ADF40F0AA7C33C157E69BA8BC78 -:10B49000227F293D5F99BF84E0F6FC522A57E417CA -:10B4A000D3F3E5F92B095E965F49705B7E2D954BD2 -:10B4B000F31D542EC95F4FEF17E7AF23D8CCDF48F9 -:10B4C000E525F9F554B6E4FF8CDE2FCCDF44F0C55A -:10B4D000F9CD042FC8DF46703CFF51829BF31FA6B5 -:10B4E000727EFEBF52D994FF18BD37F21F27785ED7 -:10B4F000FE1E82E7E6FB099E93EF25B831BF8BE085 -:10B50000D9F9512A2FCA3F4065437E2FBD9F957FB1 -:10B5100088CA99F927E8796DFE712AF5FCE7C57D9F -:10B52000D14F5119C97F95CA70FECBF43E94FF1BD1 -:10B530008283F9AF5319C87F9B4A2DFF3C9595E64E -:10B54000A9D2F74F6B6086432E56E72F72C0574E35 -:10B5500038F7EF953F77EEDF2BC69738E065C79C4D -:10B56000FBF7D2A39D8EF78B8FBCD3015F9273EE56 -:10B57000DF0BB3CEFD7BC1814D8EFACD998F38E0C4 -:10B58000A611E7FE3D2FEDDCBFE76CEF73DA2FA9C4 -:10B590009D0EB861AB73DF9E050FBBF2C90F3AEA8F -:10B5A000D7589F73D40FB77FC575BE92E5FADFFCFD -:10B5B00086D38E6979A1E8394C7CFF75F4DDFEA94C -:10B5C000468FB86748DCDB2AEE4773CF679DD00310 -:10B5D00033F2DC7F8A8A75578FEBAE20EF89D91959 -:10B5E000AFA17EB0ED8C19F38D2FBFC8E0D373559A -:10B5F000B397C1B69D61D7AFF8BB15AA399E6678DF -:10B600007A8FFBE8DE3929D26D615CEDEE1312DD35 -:10B610006F57371B449EC0755D3C3E01F67D3A7402 -:10B62000BFCFF01CFBFDE66B298ED1C4E123A11D29 -:10B63000EB308E3AECB5DF7FFE5A6AEFE7F0FF0899 -:10B640006D19C2F775358763681FED2A71BEF93F22 -:10B65000432AF1B33664FD30B46CEA9EE9E3D1E4E9 -:10B66000CB21F67C9B969C875776E33DF7788FF34A -:10B670003AC5FA11D65BAF58AF84685F70FA0FEF26 -:10B68000C7DCD765742FE04FF0BD1C7996F6A3BADE -:10B69000EBEFA3FBAA86C30C9F50697CFE3E244FB0 -:10B6A000EE3760EF37F3299E4AF6E05013D0BD190C -:10B6B000C3B58934DEE797FE8E06874CA43BC3935F -:10B6C00095447EE2F025862D178EFD092091C33822 -:10B6D0007E301932D05E0BC151CABF88C004953A82 -:10B6E000E892E3BE6D9BFE399C7EBCFF3F44E7F0D1 -:10B6F000D6B3E314674D81B8BFFA4D7CCEF8723AE9 -:10B70000B4AC345FAE91EF039D8DFF28B327918ECB -:10B710004781E33B86FEA98478A6F466EAD7798F51 -:10B720008472FCEB243776BC47915769CD488FB8BB -:10B73000C7A18BFD43FBB03E513EDEE3BEB7E15CEB -:10B74000E33DD1B03BDE13A2F3E453ADE5BF83B3D9 -:10B75000E33E63ADE5CF7B9F157EDFD7C479EF3342 -:10B76000E2BCF72BC2EF3B2CFCBE2FA2DFC79E3FF3 -:10B770002DFCBECFA1DFC7E027D1EF2BF8BEE4C977 -:10B7800012F7BF2CAC95849C6D27FB3E28EE2B62F4 -:10B7900023903D1F10F6FC98D93713FD8E602D6461 -:10B7A000D14FD87ADD41FA7E969162E2FD0077FCB6 -:10B7B000E2F599FF85C1F11838EE770AB4BAEE4B7D -:10B7C000A8348E92B5B0DF20F31B326669FE9C73FD -:10B7D000BF5A16FCE7D52FBFE7C7BEB78D71328DB4 -:10B7E000F21744BA7594ABBFA1714E897140FEC186 -:10B7F00011BACFF07205CAC9C1B471CE51FEB68478 -:10B800005DBF4FE1923FC0840D46EF3CF1BDA611F4 -:10B810004A37EF61EF9FB84F757C9FED96C7DED733 -:10B820007C14871D5CCCEFE579B17EDD45E80F7EA9 -:10B830007AEF9B4D889FFDDD52BFE98C5BCCBB0F3F -:10B84000A4C27C9603623FE8D7CBCBB97DAF78FF2B -:10B8500058F97A0F8A7A5F0C5A7D61D22B13741FC4 -:10B8600064FB89AE9B11DFC77668745EE36EF7C533 -:10B8700060726778D9743C0BDBA3BC9569BFAF5C81 -:10B88000FBE53FEDFA29946FFF70B8BE74FBB697E5 -:10B89000BB1EAE80FFC1E2E3A71FC376F3623CCEBE -:10B8A000D4DB3044F3BB6B07F79F5F5CB48EEE993B -:10B8B0001DA8E5F356A4DF2F54E04B7705BAFEAA86 -:10B8C000527BA93C5DDF2CC717C6D76315F8F29DE4 -:10B8D0000A7C3D5001FFBF2FC1D77988F73CFC7D22 -:10B8E00038D6AE770EE32BFA6FC85798BE1E8AF48F -:10B8F0007BAC1C5E55C8EBF805CAEBCF2BF0B592BC -:10B90000BC4E5CA0BCE64BC92BE27D01F22A47CAC3 -:10B91000F3B592BC06231726AF33CAB5AF425E67B4 -:10B9200097C3BF0A796D2E36BE0F8216DAD5A75A95 -:10B93000F939D9D60E7E3F99B785EFC3C1E39F256C -:10B940007B6980ED5733DA71DF3EF1E01D6D53FB0B -:10B95000B47B1F72F7E7DE47EFF8DF9FA17D342449 -:10B96000F67D1B1FBFE1EEA7FCFD16E73A6E007FD8 -:10B9700097A9E0F72E1A926FF578CE7D3E60F2F12E -:10B98000818DBF96CE159FA673C59AF60B1DB77C09 -:10B99000FD59DD1766177C28E2B40B666FFFEA637A -:10B9A000741F89E867B662D1EFF8297035BFFF646C -:10B9B0001BCF1F92B77FF9B1934B0BEE9982C35205 -:10B9C00061BE90BCEDF063270BF0CA63FC87C79B98 -:10B9D000298F31AE5F11A07BEBC6CA9F67FC40EC9C -:10B9E000E3DF17E71947C479C677855DFBA2B06B23 -:10B9F0005F10766D4ED8B57F2BECDAE7845DFB0DDA -:10BA0000719EF1A0388FC8F41C20784F4F56FC4E21 -:10BA1000C993E2774A0E8B7CC967F9B9454F8EDB33 -:10BA2000C78F7FAD19F93145873B8EC5E9B0EF4728 -:10BA300077D3F12ED379DFC6F52D41C7BC5D6738CA -:10BA4000E322D7C6663BEA5FA3373BDEAFD52E7550 -:10BA5000BCEF80A5CE384BFE0A679C65C21917B9AA -:10BA6000F2E7CE738D95E3CEB8C88A63373BE32CFB -:10BA7000479DE71A4B8F38E3228B73773AE0CB9FD1 -:10BA8000BDD7517FD161E7B9C6A54F3AE322B3BA1A -:10BA9000F739E05AEB61E777F5EDCEB848D874C6D0 -:10BAA00045822D5F71C0EF61FB3DEA4FBFE18C8B9A -:10BAB000F862CEB8C84F43FC1CD0F6B359BBBF8B5D -:10BAC00090BF19CA5DC9E4FD8928BFE7FD09485246 -:10BAD0009E2CC09F93DFA04CFA0D16AD7B59E81D3C -:10BAE000B5E1E48FD1AF517673BFE70E69454E2BB8 -:10BAF000F47BBCFF2215CA87ACBBFD870AFD7B4DDA -:10BB0000F277940A7EC9F47EB9BE9ABAE7BC2D8D4D -:10BB1000F954CAA45F72BDCB2FD996A1DFB39A5155 -:10BB2000DE2F9936CE39EA9FD391127E49CC43FC61 -:10BB30003314EE97EC32855F02FC7B29BB3F5BFF41 -:10BB4000A80DE5F5887D5F8BBA88FB0D4AA8F879CA -:10BB5000B67DDFA4BAB87C7FB65FF37711714F5C16 -:10BB60000D88B8FEFF978FB7523EAEAC29113779DA -:10BB70009BE5A354BD73950F057506E5837C70188E -:10BB8000F3417C2E581370CDFDDBD6E1F74DDB8100 -:10BB90009FEFC02BFCDED552FDDBF95DF155B7966A -:10BBA000CD83B0E3AC522D3FFF8CB7DF4AF993A7AA -:10BBB000D818E5EED576E75BC8D114FEE81E7ECF37 -:10BBC0005EF4DCE79FEA785C28DEFD81B2F68AFB52 -:10BBD00077C1E256F97B764705FEDF7E7516D9A957 -:10BBE000BBB6717DAC747FF37994C74FA33C9A14B4 -:10BBF00057D12E41BAB62974AF5AC8008A0FCE0D5C -:10BC000041B6B709F96AA6F13E2FF647E7CB93F2A2 -:10BC1000B9CD79BFC9EF74BE9EE389F27CADF8BBA4 -:10BC2000062B0F77D0774206A4F45A5A3FF07A9445 -:10BC3000F023391D6E37F9EFDF317C747D7A7B3765 -:10BC40005EEEF5A96CB98AE24AB3257B7D064DCC40 -:10BC5000D739150A95BDEF6D5ABFE7B81EBF306DD5 -:10BC60003DDED0F78F38EE9888236D677F05E79D1E -:10BC7000EEFEECF568C3DF7EF56EFABE6578EC4E3D -:10BC80007E6F71A3B81F6C8CEBC752781D1272B413 -:10BC90005BD88587F677F6217F07D8BA29D4470B7A -:10BCA000FEF2BD81243F5FACC3F23307F877DB17A8 -:10BCB0003FB4453CDF44CF1744F9FD470B983C6146 -:10BCC000CC3BBCEC158DBF7F59A7FAD1F1117C7F1D -:10BCD000B178BFA7BDCDC2DFAA8CD4CEEFC4521EAF -:10BCE0003B4A7A97CDB9B5C0C07115FA1D9DB923ED -:10BCF000F038D231772CB1E13AF40FD2C07FAF2DBA -:10BD00009ADC89F21AC900F597060E1BDB759ABFFB -:10BD1000F858721FD56FE5F5D97B82E7A6F8FBE0EE -:10BD200018C317C733D97B03DF73FC1BB7E814AF05 -:10BD30000B8D1D4DAC257FC46ECFE1865B787B6596 -:10BD40008CD183ED6376FBF10CBE9F15E5EDD5310B -:10BD5000BE3FEE69DF44F7EAB1F1E9DE29AF78FED4 -:10BD600084E07FBCFB5F336BA35379196966FFAE38 -:10BD70002FB29EED756FFF0E60BFF80E49D3663F80 -:10BD800072B2E05E06FB77430363CEFDF94C0D5FB4 -:10BD900097FF1DF5CCB2CAF7B3FD3B5950D3F30062 -:10BDA000800000001F8B080000000000000BC57D14 -:10BDB0000B7854D5B5F03E67CEBC3293E4E43D79C0 -:10BDC0004D4E2040944007081810DB495444458DDF -:10BDD00068DBE0B53A04E419202296A0D89C9004D0 -:10BDE000F20206EB2F111126281A2BE86041B15AF6 -:10BDF000EF80B9147B6D9B5A2FA2A28DA05114B86D -:10BE00002915C9DF5FAFFF5A6B9F43E64C2609EA4D -:10BE1000EDBDF93ED8D967BFD77BAFBDF60E6B102D -:10BE200059C8C6E8E79B61F09F1A63CC5725B2500A -:10BE30007E58BE32C3989F3BCC58FFF64B8D79D7C6 -:10BE400078633E798AA1FDF91B18EB744246F2D85B -:10BE500018A4D2D1DB6CA56318AB4D5E4EF9DEBBE6 -:10BE6000F4726F0CE6F3E418912533B6AD400C3450 -:10BE7000E532F644D5F2C3C320BF3659A43ED7BA43 -:10BE800066C6FBA0DE37F8F3A3FE69433563212BBA -:10BE900063DBABFD946EAB6EA5B43E79F0767BB5FB -:10BEA00076CF57DB58681463C16A99F2CF56BB2826 -:10BEB000BFAB5AA1F457D5F9F4BDBDDA43F927ABAE -:10BEC0008B287DA2DA4BDFDBAAA7537E6B7529E5B1 -:10BED000B7549751BEB5DA47E9C3D50B28F5575784 -:10BEE00052BAA1BA8AEAB554AB94365537D0F7C0E6 -:10BEF000B860596941FF79D6CA00871428BFDA9320 -:10BF0000510AEB79FC6A56168C5A4FA07A1B6500D1 -:10BF1000DA44C6DCCCCF1C85F07B2B633B15C6EC2A -:10BF20009D7ED50970BD74177CC37CC8AF3A209F35 -:10BF3000FF04CF6FD2C6A962CCCBB05D150BEC0469 -:10BF40007CD8143F9B0DE379B35576732C63376926 -:10BF5000E3E07784AF9AAB32C4EF098BB7544EC19C -:10BF60007EF8F8313E9F00CB63692B588D05D28453 -:10BF70008A2E668771E21F0A796D900E6BE864BEA7 -:10BF800002C4AF586282799CF38B011374AD4C6587 -:10BF9000A208E337BB383D44AED3DDBB8D852640D8 -:10BFA000BDE42E3B8EBBAE6A663C8B020F3D1DDDB1 -:10BFB0002EF6D127FCBB2410C60FF06F9D7FF0F644 -:10BFC0006965C6F609DE88F605D01EE0102806FC75 -:10BFD00045A1B7F82263FB584F447BD7E0E3C7F491 -:10BFE000DEC8424903D3F3294B790DC25DCF8FECF4 -:10BFF000FD21D57FD729131E12AF5FED4238C3CF85 -:10C00000550867298B059A04CC7AD902C89BE1B7F9 -:10C010002699E76D90374990F7403D55F1B2B198B8 -:10C020007ABC2C0E532FE50F997D1BE589982FE5DF -:10C03000DF651FD141E012E82203E58DD2E0CD8219 -:10C04000FC8FE1F7298CDD2C8F9EAE42FEBCD927F8 -:10C050005641FFCDD9626007E075A57B7C0CAEFB35 -:10C06000F196C1F9B416F974545FDEE4F43201FAC2 -:10C07000C9AC90C79BD8C0ED1EAA10A707A2F4BBFD -:10C080005BA3DFFA8A99F2085C7507CA30C6AC4E2A -:10C090001695DE60BDBB71BDE664BECE945B4B29D8 -:10C0A000CDDB35D9560AFC703E7670FC3546CCDFC8 -:10C0B0000E4306A3E1519B57DE1B2F91BC3C3F86EC -:10C0C000D3D540FD366BF2AB3720B24EC4AF544AE5 -:10C0D000F235E5561FCB83F5AC4B17034E58CFBA5C -:10C0E000AF6F69C8057E5237892407F4F9478E6B14 -:10C0F0002AE8124C50BEEEC042A6C0F8665729533B -:10C100000B30AFCBEB20C3FE1DCE90175390980C95 -:10C11000D7EFA8F2A998B7B854E2E775E917EADBB8 -:10C12000102ECD7E91E4FBDA2C31C0044A9913E63F -:10C13000736E35A37C4EFA838C24FD57309F49D013 -:10C140000FFE6E42783355C475E4325A471E3BCC1D -:10C150004CD0CE3686799AA04A7C1E3B80EDD6A57F -:10C160007F79C08AEBBB97794628D8D847F2080870 -:10C1700094A11C595B2953FDCCD6B1C417FABA7FE0 -:10C1800062F17D1ACE3716179767EBBE364595AF2D -:10C190008735F9183300FEE21378F97973F05A9471 -:10C1A0009FCD90DF11859EEC5ABD47E5997FCA5718 -:10C1B000FAF8532F7FD7A910DFEAF9CC5E0BCD3BFD -:10C1C000EFD69FC5E3BA06A287B51A9DF9E3B9FC7D -:10C1D000CD9B7A8517E17E0EE68AFC1E597F51BC05 -:10C1E00042F3D0F392D328A72E7E7E12C9E3BC532C -:10C1F000AB383F640F4EB7FA3CCF671BED04316F8D -:10C20000818A7C5DAF007E15B417D63091EC02E6D2 -:10C21000615C45B138C83FB15A935FF95DF64B2078 -:10C220006F7BCBC410BFDBAA4A4415E09E932B055D -:10C230004C00F7F82CBF97813DE2286002CE1FF03A -:10C240003D322105E96012C1337B754810A1D31E30 -:10C25000947D29B4EC3AD7243E0EFE077C3F26019C -:10C26000D6E9DD2570F9E0E2F2C10CD3B191FCAC66 -:10C27000624118CFF19689BE033F841E807C8C2CCE -:10C280007A509EB678D6A4221F3A1218E9B505D77F -:10C29000EE20B905F2D6B30556B4F46477EA32C895 -:10C2A000E7B9F87A74F8C414580CFA61C871A4801C -:10C2B00017FB7508CCE3F70CA247BE6DBFB600B301 -:10C2C0007FA77E4191A4129F683FEDAA80E3E0BA68 -:10C2D000A15F2B7B99C639A78DC34C6F1C467E8905 -:10C2E000F981C44C51F865C0714CB70FAA37AA8EBA -:10C2F0002DFC5347183DDF95109BDC3D1A7EB98C11 -:10C300005DF60D2A0E13103CCE03EC4E13AD9FAD1F -:10C31000413CE7C8DCEE509CEAF00D50FEF86A0B99 -:10C32000C90FBDDFF3D50BFED401486C29E072BF05 -:10C33000E6436B09F6533F4E0C58A15D47CAB48CD7 -:10C340002EF8FEC4A62F73717EBA7D5AEB31F245EA -:10C35000CE6A4E977ABE55E38B5A79707DB241EF23 -:10C36000AF65F07A0F6BF59E75786B918E81D20573 -:10C37000E4CFA2E3D36FC3F96E7FC0C64C51E4C2D1 -:10C38000B30E5F73C2C4FEF30C6F8FF43648FB5FCD -:10C390000ED67ED2BBD3DF6583B77F342165E0F64E -:10C3A000856F4EDF32C4FC1F8F3EBEBA1DDBE5B881 -:10C3B0002C0CF15B93BE96F0DBFC80C563057EEF31 -:10C3C0001833CD8578AB4BE0788BD2EFB383CD0BB0 -:10C3D000E05236C4BA5E18AABD30F8BA5E1D02AE8D -:10C3E000478780CBA1C1DA035C5B8798FF1FA3CF8F -:10C3F0005FCDC179E7645948CFD464035C518E2383 -:10C400005C597F7E88D2EF3B43C065287AFDF07B84 -:10C41000D2EBC9C1C6BF087AFDDBF7A4D7FF3B103A -:10C42000BDE2BCBF07BD4A89DF8F5E9D8983C375AE -:10C43000287A4D1EACFD45D06BD660F3BF087ACD8F -:10C440008B36BE9539BC2ADA45055C9F2F281649E4 -:10C45000BF9BF3B91E761C7BCA8BEBAA037D955458 -:10C46000847AFBF8C34B0BFBF474A41E8AEC2F52A6 -:10C470008F2EFDDB93A4479D9ADED7E7635722FBFF -:10C48000F99741EDBB6F3B6E8C8B85EC63FBDAA7B4 -:10C49000FBFEBBC733EAF9180F1F9FC1F85716A15F -:10C4A0007EDDE541BA8C2FFABEE30E5E3FADECFBBC -:10C4B000D9050B12C12E70F4D9059955BFDEFE5176 -:10C4C000525F3F999297C9403712BB8AEC3756C1E9 -:10C4D0003C3BB1B86ACFF68F26F4D903007F01FD4B -:10C4E00023FA38A68AE0F68FC2E6D53B9769FBB4FB -:10C4F0004ADA17E5C95362908ED7B50C6E2FBFA1EB -:10C50000E9F1DF6B7EAAC39A9FEA10FAA920ED40F9 -:10C510003F15A407D14F05E521F45341FE55CD4FFA -:10C52000F58AE6A7FA8DE6A77A58F393F9D14F4634 -:10C53000FEA880E68F6AD7FC51414A1BAAF753BA7E -:10C54000B63A44F5DADB5E188EF0E85B07B7DBF34A -:10C5500064DDBFC7D7C158298B86AF1B3C26C3FEFD -:10C56000E2FA7C87016FD72A4986FC35AE4C43FD41 -:10C57000ABE5E186F22B6DA30DE5C56C8221FFA32F -:10C58000DE2986FA57F49418F2977F7A9DA1FEE48B -:10C59000AE9986FC65476F33D49FD8596E289F703B -:10C5A0007891A17C5C68B921FF83FDF719EA8F09B6 -:10C5B000AE31948F6E6F3294A7953D18E167DA62C1 -:10C5C000A81F5FB423C28FF42B43B923FF7943FE26 -:10C5D00026D0F728FFECCA6F0CEDACAE8386FCBF0B -:10C5E000C531DAFFD89D41AF378A3DF9553CDFAF01 -:10C5F00082DD5E4CF632C8B1A671D8BAD28FFBF19B -:10C600004CF81DED63C0AEC08643EA31CA1D5385A8 -:10C61000C538FE10FC8C1E00ACEF861FE4C7AFF4DB -:10C62000FD6CBB5DFD218E9FC7E5B02AABE47F8822 -:10C630006CAFFB8BF2DA67C563799D5C2247930789 -:10C64000272CBE93E1FA2172FF9BE78D655E1CAF3C -:10C6500042F797717967E25558E6B16B0E0BE8FF28 -:10C660002A7B3501D7A3FB79D6697C5AAFF991AD06 -:10C67000EC72F2639CD3E43F334DF50C269F22E12C -:10C68000F56DE5999814B9CF9911FA18C7AF9002D2 -:10C69000D1F4A49EEA722CEFAD3B07C58F0E5F1D4F -:10C6A0008F2639E845BD6A532A59B9B33F9C4C5986 -:10C6B000400F71FFFC75E72619E5F839F64AB177A6 -:10C6C000D845ACB7EC0E5A878ECFC87AFA7EAB0548 -:10C6D000F14AF291CBDF5A0DBF6291770DC2370E4E -:10C6E000F6D1B8FF133D21D6F51DFCC08EFC4443A6 -:10C6F0005E726618EA9B3D952C88FE5B1887113D9B -:10C70000FA18FA73F11FFA4B4C3287F3C07C773971 -:10C71000F909CE45D82103F11F0EF1CDF0A1F9F5AD -:10C72000BBF277C7DC54EAFFBE78A6F95F549EAA35 -:10C73000EC4DA49FF2228D8098F2D3F760DE0B0FB0 -:10C740009B49CEFCE8ABED871E03BE341559E526A8 -:10C75000F20CF90FFD16CAE77A6DA5985F786C8C1C -:10C76000C50DE5473280085C585E1A8772E03413C5 -:10C77000A7A3DFEE347B336E42989CBB27C942F2FD -:10C780008535988F77D9707895CEB1EEF2F3BCBE2F -:10C79000AEF9ADC6FC3C3633558271E63D646601A8 -:10C7A00000D642261DEFD2E10074302789FBDFE777 -:10C7B000B3CAB5328C5B6FE6E7364B5E1C63413C17 -:10C7C0002C9C20E79AC6F5CDE3FE2491EA7F06F47F -:10C7D000A658FBBE2F72062C28974FEC9DF093CBEA -:10C7E00019F613589B81FECE04B04394FEF09DD3FE -:10C7F000609CE750EB889C37BA41069B87D42E7823 -:10C80000A3F9D51B9304031E6B6DBFD8DE05F3F4AB -:10C81000D64ACCFE43C84BFC5C493D161BD889F276 -:10C82000BBA4F2A92E8083BAC62AD742BAD9F18B0B -:10C83000E7B07E15200CFDB9CF2729348FF376772A -:10C8400000CF1940DF5C3633F6FBF7FBE23FA9DF90 -:10C8500057B0DF94FEFD2EB17559D09FB84CAA9CFD -:10C860002E88E857E4F5AC669F3713FD89FBC78532 -:10C87000321543BD868BAC7758187651F5A68B835D -:10C88000F47746936FBFDBF5B805E5D6E95F7D78B1 -:10C8900023EE8716BF6C6236A87766572C0B91BDC6 -:10C8A00017B0A0DDBA68AFC91BA07C68D22DB1E17A -:10C8B0007C5D4BFD2F7E2E96F6538B9EB706664011 -:10C8C000FB452F9C18CB401E9C59D3732813E1F7CE -:10C8D0002B81EC67A6768DBD05BE2F92D89DD1CE5B -:10C8E0003DFF9AC4ED8E532F39CA90DE84F603774C -:10C8F00050BFC19F9AAD617AEC489299F009F5C892 -:10C90000DFAD3E2D0446087C7E378F099F5F0DAF5B -:10C91000F734F7E72EDA6F0ED8717EED6D161FD45F -:10C920005BD6FE37A2EF2B9FDB1D877058B6DF6802 -:10C93000AF2E7EEEEBB55300CF8B4DAC6706E9F121 -:10C94000AF287FCE6BEB31911CF2C60920B79692CF -:10C95000C8827ABFFE64DA7B50FE99CBC4EC200A11 -:10C960003EEBFCD8F232E67DCE4AF4682FDB6FE472 -:10C97000C365ED272C382F59643D59C0E83FFC2290 -:10C980008C2F59FFFAB00FB6A09C5D166CFC9B096A -:10C99000E86DD9DED3EF22DD2D8BE0E7CFF097F401 -:10C9A000FEFAD29A1CA92FDF9884FE72D60E9B9FA6 -:10C9B000C903EB4B9DBF17EF3EB74D85F14F3DFFD0 -:10C9C000F93615505EF15F7FDF763FEE8F5EB5CBB7 -:10C9D000289796FDEA3FE25818FC872573F970E620 -:10C9E000E9A79EDC027038F38E95A076E6B79FB873 -:10C9F0001580FB993DFF3715CF9D56FCF6EA34A410 -:10CA0000B315FBAE4C1B6C5F84741BB086E33740E0 -:10CA1000F855F6C33869907D454B23F0726ACF799B -:10CA20000B9E0B7D29B01E94BF4B835F5BD03E3BBA -:10CA3000E4653D08A7D7F69E38741FE44F039EAC0B -:10CA400051F004EBCF1449AF843251BF2CDD7BCBC6 -:10CA50004D5714626AF6288827D643F2BE1F7EDF40 -:10CA600002FC16F6E137B2FC1CFBCA82F05FB60B83 -:10CA7000F03916F10AF81CDB1F9FA7F197C9FDF1E9 -:10CA8000599C6CB4FBCEB18AED5BB0706F12E17F44 -:10CA9000207C2ED9F7E341ED2C5D3E0C05E7050225 -:10CAA0009F576CB2F7E664E4DBE71DAA8BE33930ED -:10CAB00003CACEEC3EE76640279F9A7BEE4038F4EF -:10CAC000FCD62AEF80EF8B7EFB36F1DD997D7FB6B9 -:10CAD00020FEE1274E98047976E1E74D06F9A5DCC2 -:10CAE00006674B58CFB4770B31653DAA87F047F9FD -:10CAF00043C087848FC0CDD31594BF81145AF7D219 -:10CB000000E78FA58103B70A63FBC3BD3959D4F58C -:10CB1000D605BC0A4588CF0FA721FD0D844F7DFDAA -:10CB200032AEFF32287FC2C8BF91F59702BFE2FE46 -:10CB3000A81F7E0307FE88E99936AB24802D740672 -:10CB4000ED04677FBCF7C19FEBE76F6B1FD747F022 -:10CB5000BBDE5E87D350FC3ED4FABE2DFCEE4956B8 -:10CB60000C74A4C3F1D457D1F5411BCA8F8908C7EF -:10CB7000CAE919C3FBEB33132B553385BEF9AE0D50 -:10CB80009A48CE9F6A07BB5CE82F2F96E2396E94D5 -:10CB9000719ED3E4D4D2FD07C6A25C3B75F0258D0F -:10CBA0002E39DD2FDDF5A145D5F443205C3E0F7015 -:10CBB0002EFC9236EF65AF44EF6FD9AEBF45EDEF77 -:10CBC00033C9FB539CFF679D66A642179F054D51D5 -:10CBD000E3191E4FE6FAEFC2BA63271D8DC77D41E8 -:10CBE0005C8C82EBAE5DE37D1BCF45D537CD74FE0B -:10CBF000CF24CFA75628AF8D8D51D08F571B378F9D -:10CC000029617ABC2E024E92AB94CEEFA4E4D242BC -:10CC1000BEA70B18CE7FCD4010E1F306BD9B857AF1 -:10CC2000E983719F98719D7F8DB023FF2AB1B5690B -:10CC3000D0DF5F55C153A344DB1F18FBF7AD36317E -:10CC400025ACFFA5D69E0F703EEC5FED0CED32D308 -:10CC5000AB7601E5C9B26D66DA7F2D836D15C2ED45 -:10CC600093C7EC0115F29B7F5D7D07EAA5FFDC66AB -:10CC700065781EF1DABE95DDAB502E3D2A30F4A367 -:10CC8000FFE74BD55FA25E5EB8155607F264BEA300 -:10CC9000E7496C3FFFB94C560BED3F178293703359 -:10CCA000DB9D129A84FB90EEDDE91E95FA797129DD -:10CCB000F67BE63907F57BE65FDFA671CEFC6B2CD1 -:10CCC000E9357DFE606F2BE17A1CEC6DE5021F906B -:10CCD000BD1D96877116639ED717BED1641ECABF4D -:10CCE000C59802DD2FDE1FEF45FF4A583DEA6799E0 -:10CCF000B5E7E71EDA7FAB1922ED9D4219C88F8B8D -:10CD0000DB8DE37FA3C9BB65969E79BCBE3F83F3F1 -:10CD10006D27B573A668F4AA9547B6D7EBC7A40CE0 -:10CD20008BE887B75F6A6595D1F8204DEB7771FB8B -:10CD3000D7A38CFD71BAED3F0EFF7EAFC0E340D8A4 -:10CD40001E3BC5A35558422313816F5FB0B005C881 -:10CD5000BF1571A1910930DECB9ADCAC88813C7C97 -:10CD6000CFD0E681F531CF6C5D6710AF4B5EB4D3A9 -:10CD700079CA9217DEFE12F1790A610C183B95D23E -:10CD8000F9E5FD4007A71E333115ECB525D690FB1C -:10CD900051D4537BAC6C07F2F7ABAF93DE3AFDBCDA -:10CDA000551CEC9C7A4910A8C1D67F1D6A09CBAFEF -:10CDB00074621C8E576CC37DC36153A006C6AE92CD -:10CDC000BC6B9EC3F51D36D33EE3EC5C968FFBCA6D -:10CDD000B32CC3A312FE95B725285FF97BB3102DA2 -:10CDE0003EC9DC0B427D02F041EFF54C8154EA1D57 -:10CDF0004EE94A4BE52894BB26191657407E02B2ED -:10CE0000DBCDC91E361FD29589CC87F063CEEB2EC1 -:10CE1000F0D79F00A5CB1F51D2B0DD8F52CC34EF9D -:10CE200045A9DEEB53483F3A65B22F343A55F7F146 -:10CE3000799E17623C35189FD37BDF9D08DFE51F85 -:10CE40000A4A783C43643C6895A4BCAD14D27A4944 -:10CE50001EE5C9310CE17A563B773F3B57894F08B5 -:10CE600093CBCDD532C98FC66A17A5EBAAF39942E9 -:10CE7000FE350FE54DDAFAAD052AC507214FE38FE0 -:10CE8000D559EA453B0FE784714126A78FE8C8EAE8 -:10CE9000AA24DF94CDC9681F6B72AA6C3EA46627D2 -:10CEA000878FC9594AF0B16879A97506C113DAD3D9 -:10CEB000F7AB537D77233C6C59971AE4922579BCE4 -:10CEC00021DF0F5E3AFE77FF4FC18D119C1AAB6DCB -:10CED00094AEAB2E2278D5577B29FFBF00B7D694EE -:10CEE0008908B7294CB185C3ADC4901F106E8F005F -:10CEF000DF2487F30DC011F986C5787646597F6423 -:10CF00008AF11028A81FAC6EA554FF9E3880DE3E23 -:10CF10009F2268F1B0BE1A338E23737F0B4B565994 -:10CF2000D6A43EFF2673A94CC13CF22AE2E5680C68 -:10CF3000C16EF9FB76F21B9B64A93B5CAE2DBF4131 -:10CF40004943F965AA7A9C9D088B4733CD28B52BB8 -:10CF500004570F9D53D66A7AB3FE02FE8C7CD05CD8 -:10CF6000AD50BA5EE3878D1A3F6C423C631C8987E3 -:10CF70009F6BB64C67A417FF0FE4F93E3EC4C2E3B3 -:10CF800046123CC19019F04D3252A13444F1BF47D2 -:10CF9000AD8111B9143FE545FA4838BA8AFCC78C0F -:10CFA000055DE84F4BD0E0C65E1996302B9696672C -:10CFB000E67A879978EA37A33D1E09D75ACF411BF5 -:10CFC000EEAF079A4FF1070B051CEFFC2C42134BF9 -:10CFD000BE3D78B41CCF4F5B1CA457533D9539E838 -:10CFE000DF63C7AC449F4E8F4F981F86BFD401ECC0 -:10CFF000BA55A9D77E8C7CDB8DB20CE8F0C1D6E1A6 -:10D00000768473B339E84279D79CC0F587520650CD -:10D01000B8ACAFDD9F3439185768E4775DBECA53AA -:10D02000C71BE85797AB895719E95C97AB2FA570D9 -:10D030007B6D516AE9799C4F52EF56E2C348BACFF3 -:10D0400093A794F992510F304F13DA6B6833A21DF6 -:10D05000F7A110E0F4CEFD5367BB7277A09D03BB30 -:10D0600002922B2AF203E1A9E7B56F9231DE95CB4C -:10D070008735B699365C6F03D0111B85FE6C850031 -:10D08000BC01E887D179A047E38F224A75FA74A7DB -:10D09000E61AE2044D798744C4573DD811144F0C69 -:10D0A000FB3B278C271D986C437B4F327B0EA39C48 -:10D0B000EA891583A837EB9D336D5EF4DF241412E3 -:10D0C000DEBF8C2DCF192C6E09EC16F2DBCA4E0F89 -:10D0D0003B8EE330467E5B933C9EE13E71B7B333BB -:10D0E00006F72DB1A9A2615E8B527DC353C3F263D3 -:10D0F00070740D5FD8ED6EAD9FC8F17E90AAF92DCA -:10D10000B354E60D3BB7A8D2E95B51D95561FCBDDC -:10D1100066C434867117917C3DA0DCDAF9FDE456D3 -:10D120006D4E80F0658E9417C920C79D94AAA28C7D -:10D13000F3569AFF2581E8EA4A840373EEB86087C4 -:10D14000FC685814FA3A7A691AC56B5ED033B06B32 -:10D150002E203DB3B988DB239A9EE1FAE96C8B83DC -:10D16000F4D3D9B995144775B6254D41BA3BB0E112 -:10D17000F2B1088F79BD8D4C81F9CDEF9D4CE982DC -:10D18000D65F525ADEDA0644CE58CDFAF91B664114 -:10D19000BB138F98282EA83B30E14C15E4BB5BAC49 -:10D1A0000CE38EBBB7DE93837EF16E1807EDABEE1A -:10D1B000AD2388BEBA016E946F30D6C7786113E094 -:10D1C000A59C313D68D38BF5E7BD6E6A8B662795CC -:10D1D0006FB47AA39DEF5C286F8D6EB7D5E2AFE98F -:10D1E000F85FE5288457F107AB7270BD3AFFAF4C8A -:10D1F000047984F0FAC0CAA2F9E3AF4EBDBA227531 -:10D2000022A6DE159832676254FF5A1FFDF3714F54 -:10D210008860DF125E7C71371BFCACDC8F7942B317 -:10D220007F996D80F238ADBD1CBD7C49CBE7871E70 -:10D2300060787FA1B214895EDF4F9B18ECA705DCF4 -:10D24000FFDE4CF1D0FA7CC04E253A66800F942F59 -:10D2500073357F0FC0FD260B7C3FF1BA4940FAE8D9 -:10D26000A3275F1CDA2D42F30D6B7643F9DF0FF332 -:10D27000FDD9C2DE4D24EF84E6319B27C3F77B5EE8 -:10D2800037939CAF69BA7CE3ED80DF2FDE30517EAF -:10D2900041AF9DEA9D7CC0B3F976A8D7F30733D997 -:10D2A000E15F1CBE9AE21E4F9A8D7E82A9699C8F17 -:10D2B0005FD2F8795E6F33D91F7AF9BC863916854B -:10D2C000E874037D9F878736785F8195FD7B711EAB -:10D2D0009EE730BAAFF0D2C3B75EBF86F4DA78B259 -:10D2E000F7E7AFB77AA2C54FBF94AA18E4CFFCAE58 -:10D2F00016EA97815D949CAAF5172647E6F7261152 -:10D300001F30596518673C4F932717E6B7D56C90C7 -:10D310002727EDD1FD20AFA7F27DD4BCDECB89BF9E -:10D32000FAAFEF87F47D9E3E6E17E7C7BEF56C9EA1 -:10D330001C6D3D7DEB984AF54F26441FBF471BBF30 -:10D34000BB7A01F3825C2AB7423D278E7FCFDAA2F7 -:10D35000425C4742A210B6AEF9AD8B99376C5DF3D3 -:10D36000B7CEB69487F5DB8787E5FF5E2CF5E1A1A4 -:10D37000277509E161556AE931E49BF2E62BC62283 -:10D380003DCE6F6D24389F307BDC285F3F69BD2721 -:10D39000CE17759E8AC18F30BF55C30FD8BB85612C -:10D3A000F8D1F112D9BEFBFDF95F3E80F2E7116EB4 -:10D3B000DC0C04AF7E78CB8D0EB7188D3EBB41DF01 -:10D3C000FA086ECA0B4791AED73B3C48D703C36FF0 -:10D3D00034F30D06BF01EC57B0774C69785F017DDF -:10D3E000B4780ED9CAE96028B8F58DABD14171F493 -:10D3F000F514A5E97450C55460D8E396A1E8E07E21 -:10D40000A6DA0659C7053A78D84007459BD7131DB9 -:10D410007C8AF6CAA8FEF83F6E51E3A6E0B94F93A6 -:10D4200089CE958EC7A8A9B7F1FC3894C7C7E3FC8D -:10D4300037E2398D9E5FB87344DCECB0713F690010 -:10D440003844815F51DA00F493A7B28249FF3CFA75 -:10D4500039618E7EBFEFEAD4E2A969A83FFCD1FD15 -:10D46000B57AAACB6B53BCF3C23E13F5E771E7B0B4 -:10D470002F0350DA9CEA9B8E745197F0F33B511EB8 -:10D480001C3F2E90BEAD797FE528D46B917602ECDF -:10D490003F1BF0DC73A529D64F76A854B99DCE4129 -:10D4A0005589ED2CC47D4AE5968F46A0DFB08A529F -:10D4B000A6D9A12B4D977A9AC82F5BF9149E930297 -:10D4C00091C8585F6295746E0A82B014F39B1DFC7C -:10D4D000DCB54AB2C9D6B0B884E51ABFD45797FEB6 -:10D4E000F223F443DB5426A7627B2E3725C6EDAF2B -:10D4F0007FE03CC3F4BDC5EC933DB80F155829F24D -:10D500008559F2D1FD27B32B799C1A8687CA347EC0 -:10D51000DE6EEFE868C885F6F6BBFE20A31EB4C237 -:10D5200038E867B3654967C3FDD5E6E420DD6F627F -:10D530007961DFC1AE721640DEE00780F90E621736 -:10D54000BE2C785C5F223DD67078142188207D67E0 -:10D55000EEF03694CB45529D09E38E66DD3582F2BE -:10D560009BE77C33B22B0A3DCC7A655D27DA33B377 -:10D570005E499F83E707B39C233FC614B60BB618DA -:10D5800068FF9AC0824D905E657B9CE2195FD3FC78 -:10D59000631D980FD38B1D1ABD819D337D0FA4B3DE -:10D5A0006C7EF3DD057DFEB4C871376B7CDF610EE8 -:10D5B000A65C8A7400E3E03A7EF64AE0C7A0FAD996 -:10D5C000EDC1C00D63003F77B01E33C2D1C7643ACE -:10D5D000F7D0FDBAE5CCA3E519ED4FDFAB30EF4056 -:10D5E0003A89ECEFF610EFEF671DD01FA4771CEE21 -:10D5F000F93754CBBEA03CCDC1C2FADBEF39E460B1 -:10D60000FDFB8B84B347B299D430B8028AC470B89A -:10D61000F7836F7CD9756CECC07CD6076F3E8F4862 -:10D620007C7C8145C0A76D69DE5F23BFA969DEBD33 -:10D63000C8BF15B61EB70474732CD9B71FBF2F35DA -:10D64000F97252011EA7B37DA352102E9DD1CF5F58 -:10D6500023F93BAFECF463C83777D4480CF1BC76C0 -:10D66000DF278F215F9E36031FC17EE0B5559FC423 -:10D6700022DD2C01060C97271F548D20FBE9ECDEE0 -:10D680005183DE1FF940F397746A7CA2AFF34E64B6 -:10D690004018EFCEBD0EDACFDC5965BAB0CF427A72 -:10D6A000BFB38AC78730A973ECAD06BBB36EC07E2B -:10D6B000701F11D94F77B56F3BF1BDE49B8476F7AE -:10D6C00089EA05DB51BE44CE73A4CB77228DF4DB0F -:10D6D0006C43BCEDDC9685DBC3F950AF5F3B807CCF -:10D6E000F58CD2CE016D7C3CA6FCA0D83989EE6BBE -:10D6F000D28F3D64FB5008A387A1C6637957792F69 -:10D70000C805DC7FF944E64CEDDF5F643DBD7F5723 -:10D71000D595ECC4045C9FF7FFA5A50C3D7F8B8BD2 -:10D72000CFDFAEB5D3BFDB7D7E8676A1FDAB78B211 -:10D73000133CA3B8FFE11F9A5DC09CB05E6430FF4C -:10D7400066EFFFC67A61608A17B66FB5468D2BCA41 -:10D7500074491C2FC143C5B628F3EBD75F48621745 -:10D7600053CF338AAF1FDD64E4EF1A1943FB9AF2FB -:10D77000AA5ADA673782FC407D10399FE34D8F2A21 -:10D78000A807EC16BF827ED1C691A9B96BA01D482F -:10D7900035F2FBD863FC8A14FE5DF307D9D7F81580 -:10D7A000DCDF368EC8A0EF7A7F8D0297B33A5F3404 -:10D7B000C2BEEF79F28B795C3331AEF4ADC0F45870 -:10D7C00068B7632D0B99DC8C1D74678CC67DAEBF6A -:10D7D000DE42E77B8DF962FA5CC8C765DBC83FD6DD -:10D7E00096109A85F76B554122FDEA4F50AE8D4554 -:10D7F000FFEE9AB44E947F07EFB6D07A9B27F3FBE7 -:10D800006AD6291FF9AFC4FE57300FEAD51DBDBF38 -:10D810006EC57702D4A3B09F45BF21760AF268C7D0 -:10D82000F4B376DCCFB930AE0EF0B1D51CA4796D6F -:10D83000A9B152BF5BDA2C65D1F0F779BA44EB0A93 -:10D84000085D141F9CC4827684EB83D3676ECE83FD -:10D8500076B9794CC6FD7C73C1596DBFE935F1F3DA -:10D8600028DD8FC8ECDA79964D3BA7B285C7173E05 -:10D87000EADF4BFE43C78C204FA78BE47F8E9CC70B -:10D880000A17A77BC7D4CEE9A8271C852213D0BFCF -:10D8900099C7045C973C7D075DD2C8CD6703B43758 -:10D8A000517BD90BED0B797BF409C917D9BEC2C5E1 -:10D8B000E30CD7A31F0ACA03668F702DCC23708395 -:10D8C0002CA84A5FBD7A17D7AFDBA1FF10C9D100E2 -:10D8D000ADCB9D1F0C21BDB92B44C2D3FAA2E3747A -:10D8E0002EF060A1EE47F5D03CB6D61C3980F6D7B5 -:10D8F000D67B19D9495B518642BBAD37B0003F4F4B -:10D90000621928DFB62CB45C4FE7F905007F81D29D -:10D91000A8F39E9D6E237CBB573F18C2FBFB311EB4 -:10D9200020D45C4AA3D66F4CE770DA620EA4A37FC2 -:10D930006420BA287371BFAABB4AB3AB98DF85785D -:10D94000DDA0C187DD3A9EFB1724AF121EC7D5A705 -:10D950004FB81F03D64771AD497516D247E28CD038 -:10D960002C5C5762BE855D938BFCC5E1A68E117958 -:10D97000DC190BB4227FB65D924AF1A4EBC4800B94 -:10D98000FDCD6A8985CE930F1689B3F05D848D75C0 -:10D9900016F243409EF8C5EF1DD686FCE6985A5213 -:10D9A000B6A010DFB9B0C808DFDA02D98E745CEB1C -:10D9B000156501F21B4AF5FB118CDE37186732D969 -:10D9C000F3A17C7BBA883E5AB65D1088DFEBBD259B -:10D9D000FEE1F0BD5E4E16C2FD002FBBB8DD7B77C9 -:10D9E0004EE9CB2E4803DE07FDC3158E4B6912E3CB -:10D9F000572CE02796851660CC4D5BFD934771BD93 -:10DA0000EBC7D9E8FE6CF60A7F19CE37F6128B8287 -:10DA100078DDD19B349AD6576751909F3709816B37 -:10DA200091EFB7DE7D4845BFBAFD6327C60E336769 -:10DA3000D7DFAA317ECC59688938C76222CA717D86 -:10DA40005CE75B21A2A72EC1F79758F2FF1434E5DB -:10DA500027533CF32484E78629EFE6CF8B4217D087 -:10DA6000DE993A1EED653134692CCA29AEC7982477 -:10DA7000A787E3775376C63BE867DA560CF3C7F11E -:10DA8000AABA6FA779798FDC8F7695F3D8C9AFA33F -:10DA9000CFF34DD223B1C71C21712CA64B66907DCC -:10DAA000165E0FE4FEC61CEFC72EA09BDD355CEEB4 -:10DAB000B7DCC5E83D0AFCC90F836F4B014869FE1E -:10DAC000048D42F50A64F2A3AF13956008E139D6DC -:10DAD00046F494C67C24D722D7EB38D67837C61DB7 -:10DAE000393CC679F66AFC8D3F522A9D57A025CA5B -:10DAF0002CE973ED28FFF68C57D271BFFD6042749C -:10DB00003DFF5E3A6FBF5B886E9F9F4BB7737D0989 -:10DB1000B232348950C528AE0FF2622A9DDB909351 -:10DB2000DB2A72B9C0AE63A4F7E2C675D93D61E3E2 -:10DB3000ED49EF9B27C61FC46BED98DC13AA81F556 -:10DB4000B701D5E27DEEB86C0E47A7DA0747AC2FD8 -:10DB50006BEB023EA81955884094A93E2BB5D0B96D -:10DB6000084843F51BB10F0EB15AFD2D459280EFC9 -:10DB7000900C036008503F61BAC5708E22D71D51CA -:10DB8000B1FC7E1353128BFAC67F6C1C0BAC81F177 -:10DB9000E3BD4678C7AE786125DAE591748033B885 -:10DBA000D02F868ACF35B64BBDBD1F1F103C699E56 -:10DBB000009A96B7D80E0B00A5A55DD2E36349FE87 -:10DBC0004E3475AAE80FC580A47D30FF4B9F7ECBF5 -:10DBD000BB0BF22D3ECE67B1F92FAC44BA4CC8E076 -:10DBE000787A077DCB00E74799FC778CDB51AB4413 -:10DBF00005F1B12D348CF47823934A114F8D95475C -:10DC00004494EBCD7B99471090FEFFCB1A3EBFDBCF -:10DC1000D2F9390D9314927F929BDF1B6D2E101D4C -:10DC2000285F0FDEFD02E9BDC70E880CF9BFE4775F -:10DC3000C71EC1F7815ADEB152BEE5F54A921B3FBD -:10DC400087766A14FFF9507A39B27EDE921D029E01 -:10DC50004FE42C08BE3E12E5B35FF25C83F858D067 -:10DC600049EF872885FC9CCD392344EF8728A8D528 -:10DC7000C02655FC5ADAC2CBD9AD89B48F1A63EDF0 -:10DC80006AB80EE6F7E8D312437D69B206D3E743DC -:10DC9000BFA6179DA809FAED8F1E9D114A47391E90 -:10DCA000534961D0FDE677229DCB59F70CE5F72368 -:10DCB000A1DF84A91C96767FDA0194976833E3BDCF -:10DCC0000A87CAF5DC0629E0C538EF0D2B7C161C47 -:10DCD0009F69FB97C625E54F229C4F6A7A8F552E88 -:10DCE000A0774CDC1ABF38AA5871B47D56AB2B868E -:10DCF000C7B73C201E40FE707B19E90FB92A181ADD -:10DD0000A5E9659CB8BCFAF946D42FCE0A91D6B1E4 -:10DD100041EAACC1772536AC60728DD2BFBFEFDA75 -:10DD2000BE2ADD4AF36F451CA7F4AD835C7220DF89 -:10DD3000DC0BA2AFE3611C7762DF3A62F475E47733 -:10DD4000515E9FC7766FF0A2E6B1595BC7A6749982 -:10DD5000524701681A677F79BFC6F101BD2B1300D6 -:10DD60005BDD44F7D182D7615E794E64FCBE96914B -:10DD7000BFFBE535BA8AFCAEB0B0717291EE389E49 -:10DD800081EE34FB09F8CE86224054BE213F869FA7 -:10DD9000D61F498FFF74B9183E6FE83FB68109144A -:10DDA0001757C19492F4FE72916972D1C6D410CA09 -:10DDB000BFFF69B9087290E4620BAC3409762AB1EE -:10DDC0001D4D77A31ED7E5E144C4C914645FDB0D84 -:10DDD000254EDA1751FEB247FED082F191EB44EDA9 -:10DDE000BC4B830BBAA1102E5FBB14833E7D187F02 -:10DDF0008175ECE948BCBE00C6DB5C366C1CEE2FBE -:10DE0000ECFE17C93E7017F0F81577153F3F77E421 -:10DE1000CD7B32FC5E5C653AB7D32B75FAABF2BBB7 -:10DE2000709C0DD82FCAE73C0BE9CB475990EB43C8 -:10DE3000CD3EDDE6D2FC241A5D45F249A47C9AF081 -:10DE400087E41294EFE98255C6FD1CEAE783A946F0 -:10DE50007D8DF4A2EBEBD6CE3509E80FCBD5FCFDDA -:10DE6000B936639CC365195C9E99D3F93CD68995F4 -:10DE7000B4DF544B44DAC7E9F477418F47C031121D -:10DE80007E48A86B27517C0CE5E38A7B18F2EF36BD -:10DE900020597CE32D2E5DD1E2A6658273DBCFC4D1 -:10DEA000F1282FF77494DBD1BF2EB86DD7E2FE7046 -:10DEB000A3C04228373716BF4971254D55D0332CA2 -:10DEC000CA992FCEB68CED8F67E063DAAF3A546B08 -:10DED00027FAB582A11D14B7D01438348B713B9644 -:10DEE000615C4A53FE9A8C4528DFF34B0B11BF6DE2 -:10DEF000F5168A9B91F359543FC2E7B88F213AF93E -:10DF0000767ACCA1EF2F2BA2EF2B4B33F8FE3628DD -:10DF100081A882F964E58B1EE4FFAC3A4BD4795CAE -:10DF2000A9E1293383DF0F6BAB3F944EEF668995F0 -:10DF3000013618BE60FA6B52C3F03179007CB874B8 -:10DF40007C483A3E1266131F76758A5CDE925EDB71 -:10DF5000C0E4DB503FAA9516B2631BCD7C5FBEA325 -:10DF600040E30BD9D686C4F66DE93A6E8948F7705E -:10DF7000B28B44DA273A2A9EA7B8A64759CFEB2896 -:10DF8000EFD4027E7F3EB2FD1D19DC7F159414C1D3 -:10DF900043FB698E47C02BCD67EB88D4B6703E6DCE -:10DFA000D5ECE8561787E3D6FA87894F2F769EBAC5 -:10DFB000DCAED5ECE8855E9F05D5812A944E4B47B3 -:10DFC000FDF9047F878A999C64977F8A4DC2FCB2D1 -:10DFD000ABB27C951961E743B2B752C47A57E3BB41 -:10DFE00042D0FE9320BF0FFA49F0D7C5F40E978FA9 -:10DFF00011332F649D023139C8D09D907749412A51 -:10E00000772D80B924D0ED48CADB6CA0176142A7F8 -:10E01000ABF9FD8B6E7C5F92DE9FE4EF4B7EAEBD75 -:10E020002739A6755DC9A3389E22F950667C86EF14 -:10E030004BE2FDE7A277292EFA14C8DAA6048C87F2 -:10E04000E1F7B7E5FB982C4EC6FCFA128C7BBEE7D5 -:10E0500055AB764FB2730DDE7B795C8475439B665E -:10E0600009F4FD702C6A102AC3E878F7159D7178C1 -:10E07000CE773A78CBA0FE63BC3F48F3CDE078DAA8 -:10E08000E4584AF7CBE639436E6C7F60CF534F6E4E -:10E0900081F13EDF67A3F74C363B96BAB1FCF347FC -:10E0A000DE76A3BE38BDEF6D4BB4F3C92552701AAE -:10E0B000DE23AB50E3D91A987F7170B685E24F76B4 -:10E0C0001DA0FB694B649F05FBAF68DD43F9AB7690 -:10E0D000FDD98DE5EF67703D713ADDE746BF445EDF -:10E0E000AB352482FED93DCCBF28EA397B86A8CD4A -:10E0F000FB55EA7FB3E3D5438897D38F58C9EF76B2 -:10E10000E091DF51BFA7F6BD48F3FD7CF7DB77A0B8 -:10E110003D5DC19807E5F969BBE6D7B375C685EFE4 -:10E120006F5FD5E0A1E74FC76AFBE0AC21EA69E782 -:10E1300031CC09F0A7FB039D7178BFF073B3CF8298 -:10E14000F0588CF080B418E080727F7150A0792E66 -:10E150006E6DA3FB568BF772FFE0628017C1A5F5C9 -:10E1600000CDFF5806971BA7F6FDC54DEF52ECB545 -:10E17000D2FE595FF762A7CF8DF0D1D70B70E0EBDD -:10E18000DE7D71789AA7E3A9F5CF34AF8ABD7C5EB6 -:10E1900015BBF83CE6ED053C39114FB309FFA7F676 -:10E1A0003105EFC174EF79FB33B4674EEFB32968E3 -:10E1B00057E8F3CA02711B371EF988EB63B6572084 -:10E1C0007DCCA44E3ACF5922CB32BE4F70A13C60D9 -:10E1D000097079DA599209E5CF3C24D2FB964C0EAE -:10E1E0005E8AFED53319FAF946A71BFD62BBAFF074 -:10E1F000137D9E8CD5E02D75BA317E6673A6EF4CEB -:10E2000038BF9FFEF0C54B71DD2B4D95BFCBC6715E -:10E210009EE2F1A1E78755FEF5019AF770C3796395 -:10E22000640A708BC3F3EF7C91F9E85EF2DED7628B -:10E23000C2CFA14D99DCEFB6D9F101DD473C8DEF9E -:10E240003CD27C8214A735D25BEEC673BE93CCE978 -:10E25000C373D9CF9F788DE26DBAD375FF5327D59D -:10E260003BB5F7B5444CCBB5787816B885E418C003 -:10E27000B1C1363E9A7CD4EE1705F8BDB133020821 -:10E280004CD4138FE970AEB4CC349CEB70399AB592 -:10E2900035B783FC2D81E8F7CD22E56FDE4393E9A6 -:10E2A0005CF91C8B7EAECCB438B995A6188ABFD960 -:10E2B000ECF805DDBFAD52AD32DE5F39AEC9C58FBA -:10E2C000B4F716CEC7C4A922D0CD4B99BEE199139D -:10E2D000FBDFC32D6F5EE246F896E3B9076D6A7601 -:10E2E000DC807189140F3A85B46D88E067D6CB5B0A -:10E2F000797902CF4FC9DCB31EDFC344F8723BF516 -:10E30000495E9ECBCB7FA295CFCF281D9F49FA8532 -:10E31000D13B4560912574DBB80A8F068F3EB84823 -:10E32000AC5BB7ABA1F2C24CC6E336324AA7E27A85 -:10E33000A058E07CFFFDFA03BCABB6C4FF867E6C40 -:10E34000FF5DFD04492F893E7CE30ABE79B8FE7B60 -:10E35000BC84C94D09DFBFFFEFDA7EA5C92B9E44FF -:10E360003A8C1789EE75BEEE7E64D438DCFF5B1AFA -:10E37000EE0EA1DAEC8E2DB1A4C3F7730A3F3FB9BC -:10E38000EBA14D86F755F534F21D5BFD1CCF32DC59 -:10E39000783EDB92C9E5514B669FFF0DCFE546E223 -:10E3A0002F0ACFB7A452280CB7D359A588F187F903 -:10E3B0001D367AC7F712068202E63F9A8544D4DFFB -:10E3C000635817E57F802080FC38A698303F81F5A0 -:10E3D000B8A5E178FE1C5A8B76DAB1645F13D2D906 -:10E3E000978F747E2040F9CF337CBFE982EFEB3307 -:10E3F000F93EC8096621D2B38C29D0A1E898E18AF8 -:10E4000026F72FC053964E859FB7DD2C791F223AF1 -:10E41000665972B7A30FCEBA3C58A4BDBBA4B7FFD0 -:10E42000ECE9A786D17B437DEF850F7A1F785ED517 -:10E43000C2879E983048B9266777D7046E0BD7F706 -:10E44000ED1A9C9FC9D4F5805FD70764C7FDEA66C3 -:10E450006E3FEDBEC2BBE67194B7AD26DA4F9F6C3E -:10E46000FD0BBDFB78AE94915D37D0B82723F07ECD -:10E4700072E75319FCBC2360D0EF0B9F7CE9D2F00C -:10E48000784B00B3923C89BFC341783FE451AD263D -:10E49000A4D252F2C75858258F53C1F90EC777B886 -:10E4A00082943A5927A571AC875299C9E49F4E646A -:10E4B0001E4A935929A5A9AC52E0F69D9FD20C168D -:10E4C000A4340BED53F4F7B01E4A15BCF11916BF76 -:10E4D000310C4F4C87E37BBCA5FC7B447C9084785B -:10E4E0009C10459E47C40549ED5524CF312E684404 -:10E4F00072FFF71474F9BD39B3E43D94A72F657A20 -:10E500008F617AF8D9DFF3FB15EB05B2AF4FD8670F -:10E51000581440DD33895E7A07441559E94ED0EF2F -:10E520007375FF3FFEE871C208CC16F3A9F0F81D21 -:10E530006673E6E379F11CADEA1CED1C648EE60718 -:10E54000C1F7CDF83D3D0FDDB79FA39D3FCC89F0CE -:10E55000BF30BFD5E04751F11758C71CBF40E70691 -:10E56000736266BCDAC506A693B0FEE8DE5F798406 -:10E570001F6A487F56447E6E647B9BC06CA9F89DE1 -:10E58000D3D3333F54C8AED3FD5940700AB56BB0F6 -:10E590007E487E21FFD5DE70382565F17DABDD7FBD -:10E5A0004D5CB47797F4742ED867E6C4FEED6147EE -:10E5B00098807CAFCB619DCE7371638B7C946F0927 -:10E5C0000C1697AABF77DDF4809FE1BCEDA155F44E -:10E5D0004EF5BDD92AF96A6D0501BA1F10931F7057 -:10E5E000A951E6D784EF3A037F35C51ACF4D966718 -:10E5F00071FE5F9EC5CFB50F5D925A82E7D9EB14CD -:10E6000091EE0DAF53F8DF2D589735D43BE536C367 -:10E610003DF9B549DBE81D20FB57DB19DA93762974 -:10E62000FABD94DBB4F13769F537276D233F49C351 -:10E63000087EBE1F59FFC08887E9DDC7C65CD8EFDA -:10E6400062FA804AFDD78F78B80CDBDB428D86FBFF -:10E65000BCB3B3F8BEDAB697D3A329CF121886F4A9 -:10E6600020F929BE40AFD738C079D28D595C2E36FB -:10E670009903744FA649B3879667C56D407B675D64 -:10E68000D68EA3C8AFE7F2189D37DA434FD339824D -:10E690002DDFC2EC82F6770230BEA32048F8416736 -:10E6A00053C840B7317DEF6C98FAF75FF78DDF857F -:10E6B000EB6BCCF5D3F843ADF74A8D4E1B35FDDA45 -:10E6C00068379EA35568F0BE5E5B97ED1546F26411 -:10E6D00010B890BD77E3D61137A27FCAB67F48380D -:10E6E0001AEAE7B2B2F868FC1229FF9D0562C43B42 -:10E6F0004A02CDEBDC5E417B6F91BF63D1670704BB -:10E700002DD8EFBF6D2D3F782DCC6791CFE9C5F89F -:10E71000C9A7B6EEA07BFA8B5F34537CC2C8AED9D2 -:10E720005C0EB6F27712F5F78D2E69B51ADE9B5A9C -:10E73000C2C2DE5184F1161F3B798CD13D63E37771 -:10E74000FDDD8066FC10254E2DF2DD8187B222DFD3 -:10E7500023D3DE1D2888EEA7897C7760575024BD1F -:10E76000B11CE358691FB0AD04F73D55C704F21B57 -:10E77000F4E743E5B13C73585EF0103DAAB131DED9 -:10E780009D51F8E9BD6C4E2FBBF1508DECFEEA0DAA -:10E79000A12C4CEB189E37D5AE90643CD7AE0DC47F -:10E7A000D0FD925A590C60DC48766C890DFD8F2C97 -:10E7B0004194F11EDA34D354BAF764B9579A40EF52 -:10E7C000B3EE58D489F7EA6A5D12433ECE4EE0714B -:10E7D000042C5DA4F769EAE43713E6E03ECEC9EF06 -:10E7E000E9E5C82CA00868D779199E2FC366A53221 -:10E7F00004A657B6E00DE17B576CB255DEC9DF9930 -:10E80000B971DC24F203D3CF81B669A1DFE2385EAF -:10E810005B29E2FFAA7B93C91E0CB84C0CE3003FB6 -:10E82000CDE2E78296D892D0FB38BF590EF2ED06C2 -:10E83000543111F1F07ADBDA99D7C0777340A278BE -:10E8400087FCAF6B6FBB06DAF7B459E8BE850E27BD -:10E85000A54E32BCDFE05E6DCC5B22DEAB9058583B -:10E8600039E4DFC179905D55C642E171BCC95E7E75 -:10E87000E82E3B894EBA813FE9FC43CBBF8779A0A4 -:10E88000D776B39FF0DEFEBE40FED5836DF37248AF -:10E890005E3A966EC7BF635275949F630E249F9F26 -:10E8A000CE52F47712ECDA3B1576F47B45D2535D09 -:10E8B00035F3609CA12DD011331AF17BD8ECC1B097 -:10E8C000E67A4D3E4A4E2EC775BA894CEB23E8AF27 -:10E8D000DEECC9F743FDFAAF4DDABEF1F48D485FC7 -:10E8E00092ACD0BEDA9CC53C680E9B933B336498D7 -:10E8F000C7E8172D1EFC7B07D39E2B8847393FFAAC -:10E90000B55924DF104E882FA9CAE2413BD95A9548 -:10E91000EC9126603D27D1E559A785EC21A9CAE1F4 -:10E9200027FBAB6D924B09937B6BAB658F64C6BFC6 -:10E930008F63A374ED00F23E27412C45BFAB45B376 -:10E9400097D3B475A5653B284DCDE6F273BBA4CE35 -:10E95000A4F77B816E30EEE6C06A4EDFCBD36DA4A8 -:10E960003797BF3E3C6D30FFE093D52E4F1E0076AB -:10E97000DBEA72F2DB16AFFAA811E96E79AC4D460C -:10E980003A34C58DDC3C15E9FEF766BAE7591B3B06 -:10E99000499913D69F29AEC885F030896A06D2738B -:10E9A000C163C11BA5C94827EA16BCCF5F98DD7AB1 -:10E9B000A304F2A53D56CDC0F3B2A9D95B793E457B -:10E9C000DD22209F6407783E5BCD10213F23FB09A9 -:10E9D0009E1FA16EC1FCADD9ED3C3F86EBA3DBB31E -:10E9E00077DD88FAA8D6EC2943FFF4B330FF821113 -:10E9F000F87783787A870617BDFC79FC6EC6BF333B -:10EA0000C4D3C8F217B476FB0728FF8D56FECA00A0 -:10EA1000FDBFAAB50B0DD0FEA0D6AE6380F687B4BD -:10EA200076870728FFBD56FEC600FDFF516BD7391C -:10EA300040FB37B5766F0DD0FE88D6EEE800E5EFE7 -:10EA40006AE5C722FAFF40ABDFA57D77C736BC8BEE -:10EA5000F69A1BE415CA93FCD806F2776DAB2A240C -:10EA6000FAAF9DC8F5BF4EEF6EED5EC0916C7E6E45 -:10EA700073249BDB01551A9D17AFCADB3815E9F0EB -:10EA80000FFC9E22E88FA3780F575D25927F6FF9C8 -:10EA9000EBFC5D99E5AB243ADFB8A0F7B4F6FAFCDD -:10EAA00003DA3CEBB4B4329BBF9791ABBA3C33C2B0 -:10EAB000F4A35936E66DC04F18FF5F97CCF54CFEB6 -:10EAC000AA92063C37A9053D83EBAB775A42E8FF93 -:10EAD000AA97252AAF4B2EF1E379BF2A4BA487EAE8 -:10EAE000931343F84E735D5DA1E1BDCF3A59A2F790 -:10EAF00063A484AB6C739C283766C8283FEB989C52 -:10EB0000584CE76AB04F437D525522A3DCC94D48AB -:10EB10004E44B93C3787AFAB23B6DB8EF728A4074A -:10EB2000447A2B60A42C11BFE7D5890105E6D121D9 -:10EB30002F27FFEBCE16ED4C91F1F3445DCEB7FFDE -:10EB4000621AE9B15AD0630AE931163F2EB5EFFED9 -:10EB5000A6746CB405F5969C61626690CBBFCB4EF3 -:10EB6000A471773EC4F5D608D05BF8CEDAF642C67B -:10EB7000DF7973D9C8AF5B2E315752981FF377D91D -:10EB8000DC8E67A6191EDC678FC0F710C3E03BDC84 -:10EB90006FD45BB943E8AD9C2A909761F5AD2ED94F -:10EBA000900F666BEF2A799807ED9B69CF6D257DF5 -:10EBB0007216F50943FDF2C798D1A85F408F5859E6 -:10EBC0007F39A8CB63DD6ED1E574ADA6376A23F437 -:10EBD000C6D072F7EFAF8F22FA140DEFD00C247F5E -:10EBE000AB304E00E8DFEC1348AF30C947F7FB8786 -:10EBF000829BD95C2ACBCEA1E1674EF92201E5B414 -:10EC0000D927793E8A724F6A28F8EAF52CB6CCC724 -:10EC100050AF7D716C653EFABDD69A3B67EF42BA44 -:10EC200015E2E97E87A2F91DB655EF672746603CDD -:10EC3000FC7B5BEB26E0FD71AF4CFE92F41205DB32 -:10EC4000D9619F9E44761CDF6F32D9E75F84F6FC62 -:10EC50008B1605CF050E3FABBDDF90ED2478DEB3FC -:10EC60006705B5330B952E7EDECF08DEEB3212F949 -:10EC7000DF0969B76976E3998DDE3CE857EC1250FD -:10EC8000FFFC474EDB461BEA0F6D3FC058DB4DB81B -:10EC9000FF09062C5A7DBCE8CED81E51D0FDCF5EB0 -:10ECA000C9156E875A6EBA2A0BCF43E5D112F49775 -:10ECB000B1CDBED17C05968B7A7B2F5E1E42F1A52D -:10ECC000E725C0C3331D5AB99AB6F12A98CF1E8BD7 -:10ECD0003E3E18D445389EA8D193BC11FBDF5DA2FF -:10ECE000B7EFD9E89D4AF3B9DE047BB07C77E646FE -:10ECF000677ADF7C87E7E46EAC81B59F56BAE27035 -:10ED00001BB7A4EDA354D4DBEBCAF8FD616400F497 -:10ED10008FE8F7882FE06DEFCD2ABA62FFF3D03F7E -:10ED2000E20AA06899A9EB9003E0B6647FA5CD2C18 -:10ED3000E2FB5DA52ABEDFA5B75BB27736D939CB3A -:10ED40005E194769947687F1FECC776867B35CC437 -:10ED500078A7436F2EDDA5E0BD99CA06A789EA33DF -:10ED6000EEFF8ABE3EBDFDE95D6FFE04C73BA374A6 -:10ED7000A55E07B5D785002E51DAE9F5F5FBD55329 -:10ED80005CDECBDCC07FFF70733E6452A507EB07EF -:10ED90006D7EBAC76637FB4B519F002A0318A7A0A8 -:10EDA000A753DC79FC5DEC88EF91FC15B4B1A41994 -:10EDB000282F574874EE1EB4A98EB1906F817D4AFA -:10EDC0000D4C69CDB823E3315EA0659F93E47AEDE5 -:10EDD0008A0E5701F295C7C2D0EE6DB9A2331DDF7E -:10EDE000BFAFBBD752F604D26F68B9EBAE303B6C05 -:10EDF000780E8FABCF4EF097213FDA811F511F372E -:10EE00009A7D367C37454D1729AEDA0EE56F50797D -:10EE1000B656EE997E0DEDCB4419E7559F37777ABC -:10EE200009EA355722FFFB8423AE2A9B0FE501D95F -:10EE3000222379DD9D53EE43383D23792A91FF9EAD -:10EE4000713A658CC7025949FA401A914CF15956EA -:10EE5000EDBE53F638AEE7F57936B9B9FDD0E4B674 -:10EE6000101E5A623B6F2E867631F789B20AFD3743 -:10EE7000DEFB7029C6273E76EF913F637C6B53AA79 -:10EE800044EF0CECAE0979B15E8FC03A77801DB9C2 -:10EE9000BE6A6627EE47D73345417B7DB730D38FB7 -:10EEA000FAB92745623BA07E4C9E315ED559608CF5 -:10EEB00097CAAA30E637E6F8EEC7754DF8436131D8 -:10EEC0008E9322280A3E1D5CD8C9283E3F352F4F1D -:10EED000C6B8EEB8C28838D8A9C67E12AF32962717 -:10EEE000CF8888DBBAD558EEBADD98CF986BCC7F47 -:10EEF000AED3A38B9F3FE87FE7E1B17B9F64A8A7D8 -:10EF00001BBF8AA778568423DAED3123250F9E8B09 -:10EF1000645B3A67611C1CBB3486ECA583EE18A6C3 -:10EF200040DEBA94913CB526060FE07ED52ACAA5EC -:10EF30002A69A8E081F7A1DC01FB5594BF91F0CBD1 -:10EF4000CEE6FE416725FF7B7141294476847D55DD -:10EF5000BC5CE3C1AD63841FB6222CCFE3BD1F7739 -:10EF6000F3F338BA774F477284575819E26D320B72 -:10EF7000E03B94D9F77EA486601EEB95BC4AB4337F -:10EF8000D6895D348E5AEEF4E1BE3B05E3BC4D18E4 -:10EF9000EFAD521A898FE7DDDC4E52D85C3FE2D1EB -:10EFA000355BA4F891FA43317578F852AFBDD7A01C -:10EFB000C7B1E974F9B29BFBE7F67488A217FDE0CC -:10EFC000B7E7ED407CEBF9565F721BC5F58FABECF4 -:10EFD00042BA6437703B14F400DDCBD6E3C4F4B816 -:10EFE000C2EE1C1EBF763A47BC80BF901E47141667 -:10EFF000074E4777263CBAF0CB78DE933DAE5446B9 -:10F0000039F34BFDFE05E3FDE2F385746E3043F406 -:10F010005EA2F9D3D1AE4BD2C64B4A96BCF4BE3BEE -:10F02000CC4984FA0F315E3F296FEF4ABC77B507B0 -:10F030000907F9E72E0EE748BA4DEFF0978E4178B1 -:10F0400009A00FB3FAD3B1E06EA5F3C0FAFB58A242 -:10F05000755C7FBA9E68E2F64FCF4285E22C87A2AC -:10F06000F393EE04EEC74ED922A37D9B91F7500D8A -:10F07000DD83B98FC9A8EF323A3A6F46BF57243FB4 -:10F08000041C71E3799CDCB7F3C39B4C9C3F589AFA -:10F0900044788B8C2F8D8C271D9E93A0F929400FCF -:10F0A000C4E27D00F94A8C13EC59C5E89D809217A3 -:10F0B0005B6EFB77E8EFCB111619E575CE5BBEA74B -:10F0C0001C30AF2F5FF2E5A09CDE2675D913C2FC81 -:10F0D0009E92C8EF9F45CAEBE139A246AFA0375CCC -:10F0E000DF3DCD46FA06E20AE6A58E968108876FD7 -:10F0F000DFF4275BCAFFA0DDA2DAFCF8F746DD1DCE -:10F100007A3E8BECB09CB778BE685BD6465542B869 -:10F110005590BFE860F63CF21749EF727FD1189323 -:10F12000378079F69E9DE2EEDAF7DDBE00E3D5EAA0 -:10F1300053AF53503F176AFB9FF139425478491639 -:10F14000AF0FF926F27B81065FC64A3F9D0DF81B83 -:10F15000F3B885E2EEF2C5F2865CE4874613E1B3CC -:10F16000DCA42C6D0EDBA735A71697E44CA47D011B -:10F17000F3C18641E915980FDF614A3E5E8CF49A2F -:10F18000036C86F22547E506644E550CF385D1A93C -:10F19000D22B51FDE6546F498E26F7F0DCC7ACB197 -:10F1A000F43389A56C36EA65F8867AD7BC2B869F3E -:10F1B000F7241BEF479A4C3C5EE4266DDD663CD796 -:10F1C000198FEFBD8921EBD8FEF56FD5EA49366777 -:10F1D000C8148F7EB2378ED2BDCB887360DCDF520D -:10F1E0005C4E05233F28C285F2F7C8FCDDEE2A1EDF -:10F1F0000F50BB9A09781650ABDD5351EFE07F8F6B -:10F200009879BD0ABEAF425B4C05FF0B11FFBA6C8B -:10F210002C11EBA7B34E8A63641D4CE1F112C67347 -:10F22000A76D03BC03A5FB01A42A13ED5346BF66DB -:10F23000E77F17AA8AD13BE1F46613EE7F57B380CC -:10F2400024F4F9E18E642BD44E3F8FDDFDF50719D0 -:10F250002897F3C51DBE37C86E889577A07E8C3180 -:10F26000F2A17E7FAD56A3936DD532E15B2F77ABD4 -:10F27000C729DE3E87F5D4E03E2BA72AD180E70BD5 -:10F280007ED9DE4CE69B10DE6F80BFAB9B27D13B67 -:10F290005D4AAF9BCAB7552B43F43F6C80FED389C0 -:10F2A0009E06EE3F8BCAB787BE48B81140B1ADE7A6 -:10F2B000A38452A5CF6E8D84B37BB5517EFF607F52 -:10F2C000643C39878BDDEC4DBE19E0667F40F4B4B9 -:10F2D00031FC7B3CC67AD373CF25F0F372BD7E2818 -:10F2E000F916AC0FFBDE3605FFBE8FB17E69F1C7A4 -:10F2F00009FCDC5DAFCFE7F7A35E63BD48FC44CEFD -:10F3000017E695F2E3B0795D69B31ACACB66F79B4D -:10F3100057CA4FC3E6758DCB58DF57137D5ED7E7CD -:10F320005B079D975EEFA6A28BAB17B98E5BA65BC2 -:10F3300007803BAFFFD3B28BEBF75F160C5EEFCECF -:10F34000AAC871542E272CDE2328E7CA99B216DFEB -:10F350000967CE98A871C1259A1D7316FD14180F60 -:10F3600097E97D1FE55A4F368F4B39FCEC223F9EC3 -:10F37000C32CDF6751F0BC235BF35B83E0598CFC4B -:10F38000BBC72627603CA0CDAD68FBABCE5C8CE74D -:10F39000DBD37EE436927BCC68CFC07EAD18F535EA -:10F3A0008830BA97F126B64B098FA3F092FD572FFC -:10F3B0007AFE42FBAA9FF07D951EBF1F6E67B14982 -:10F3C0007D76961EBFBD491BE7BF7286D17CC0CE3D -:10F3D000A7BF7B9B9A27517CF32F6D9D9BF0FED19D -:10F3E0002F939313703F73589BB76E37EAF71AD277 -:10F3F00066E78D334581D7FF0791B1925A008000AF -:10F40000000000001F8B080000000000000BDD7DE5 -:10F410000B7C54D599F8B973EFBC9299C99D64F2ED -:10F42000E211EEE4C5044298608801AD4C12A0A838 -:10F430002C3BC147412D0E893C227921A8A1B2F570 -:10F44000864484F8206840A0A043148A56ED6011D9 -:10F4500001C11DA2A6764B6DECF661A94B47602950 -:10F4600002C2A8BB487F7F2D7BBEEFDC9B99B99978 -:10F470005150B6DDDF9FFEECCDB9E79ED777BEF7E2 -:10F48000F79D33172FD27F93087928892C0C1413FA -:10F49000FCC7951162CFCFEFE9741232BCD42B8E2A -:10F4A000A3EFDFC9D111329E9087E983D07AB9509A -:10F4B000F06FE3E8DF22212BCBE9F7D030979027DC -:10F4C000C57EBB40EB9F7408A2CC413B09DBED7CC1 -:10F4D0004BA7F3380879EA8EFC1EDE19296FF03944 -:10F4E000B64279B88EF80216E8445C44E8FB9D26E3 -:10F4F000D1DE594A8B42BFB3C64ACB3B7E7F1B67E6 -:10F500002364C40882FDD5B55693635711B2DB104E -:10F510007EF322CC673DE7DF46FB79ADBB74AA40A2 -:10F52000DBCF3B4988997E5AB7ECA6278FA71132CB -:10F53000E1B85809EFEB36DBDD3C7DDFD4DF321577 -:10F54000C6212DC45DE0262493AFE4ADB49FCC4723 -:10F55000DE73B7D329AFEB95F6846839BC9573F7A2 -:10F560004850BFB87431C0C7E2912C74BD7361AA12 -:10F57000F8DE3E550FED6E32B83B683F67F4641617 -:10F58000C0F1A20257F539F70EA982D0F9CF0D2CA0 -:10F590009B8BE38A1464D9B46C12711E26494C6D9E -:10F5A000A3E5CC2462328F23A47C85D8F7008C5F3E -:10F5B0006F157B288C6D1562DF8F605D2D3922EF12 -:10F5C00086C1FD0807B5FF791EAF81D07147EF30C6 -:10F5D000D0CED83E5EA4FF8D09C496C7EE892D9784 -:10F5E0000663CB57BD135B7E5562F09E681ABAE581 -:10F5F000388577EF012381F92E3A9DE4375278EF71 -:10F60000D31302EB975F32223E542FB278003F4E65 -:10F610009F4ADA6AA4E5838793F0FBBB7F6266DFCB -:10F62000EB022F43597E3999C0F78BD202E5A974BA -:10F63000DEAF7FC9DFE92D66CBD243FF2F176DED1B -:10F6400084FAAB02E5227DBF7B1421FD502FF84BDD -:10F65000609DBBFFC663BFE1E78DFE1EDAEFE9BD2B -:10F660003F7E19E075FAF9A1A91C9DF335BA9EAB4E -:10F670003AA1BECD2AF5D0F7134FBF98E78BDA97A2 -:10F68000453B8C31EB5C2C71B8CE56C1B3E259D8F6 -:10F690009F437AC4A725F3FC7541DA7E0997E39668 -:10F6A000A11F03C5D36228BB33ED145F27DA18DE30 -:10F6B0002E31D3729C7D579FB51B78E2BB2A523EF8 -:10F6C000BAFAC7381FD7C9F711AFF7E9655D12C09D -:10F6D0007135E7DE46E7BFCF6C2B2129F0CCF10373 -:10F6E000DEC81225BC745CD78F9A002F7EC5BB7B09 -:10F6F00048E2F15C597FDA3CF9AAAFA8A7E33A4B9C -:10F700000839F751D29D1E3A8F911B62F7BDC81F71 -:10F710005B5EA5C0A79644BD77C27C725766219DEB -:10F72000109C8FEBE407B739E97C8718490BC0457B -:10F730003BEE5A651D2FBC40FB716137FC459EF5C1 -:10F740002765D07D51E8EA758ED111FDB77428A5E3 -:10F75000B7451CE32FEAFB459A79A8FD4F94189F03 -:10F760007218DC6B42B8FF4611F6FFD483D39E3C7F -:10F77000AE1F3C9F130F7A3C93A3DECFDFB0B82FB0 -:10F780009BB66BD8993E8E8F826FC3F36F66DC4E4B -:10F79000DF9FD921B8810536CCDEFEF844F8EE793A -:10F7A0003E00F3857A0F5DEF99C0DB36F86EFE669A -:10F7B000FB385E8AB45FB0618A67B22B02CFCBA5FB -:10F7C000D3D72A189F5B14D0FB4D401781DF4D1D06 -:10F7D0000A78BA817317D071CA051F0F74672DF3A9 -:10F7E000E8E509844CFAE25FFB86D0FAE603E3CB56 -:10F7F0003B697DA7CE7BD33F01DD3DCDBBB7015D2E -:10F80000FFF69E0C5FD4FEBC03FB4BF7A5F3D606B8 -:10F81000EC47A6B85140997AAFABB61ACA138B0918 -:10F8200067A4FCD8769278FC16188FBCAF4B25E401 -:10F83000E4FE874A041DF2A3DB814E4E139B1BE8B6 -:10F840006E9FB5E5DF71BC97F438DEA4600A07FC53 -:10F8500077DF739CBB93003C62E9EFE4C915B64ABD -:10F8600046D7777A510EE88883F6B7F0D931C807C2 -:10F87000D4F7DAFDABF7C7F6A3C58B8F9475016A91 -:10F8800046E397F6BBB4E9B201E8B1A195CA8B286B -:10F89000BA6938DE652096C1E3103280BF04F09764 -:10F8A000E2259170BD66E41BF41F67A2787B0AFE17 -:10F8B000CA636542C7BF9BC3A59145A30285C0E744 -:10F8C0003841ACEAC88EF05752E1473E7F86FED9F8 -:10F8D000E906BE103802F40EB2741BC817317876F0 -:10F8E00013D4CB233CC08F860092D227F96932F221 -:10F8F000DF3352683BB67F718C5BA6AFCF01BD583A -:10F90000B09D2D358A3FB505DEB48568F9F4CEB4D7 -:10F910002ADE0678FB4B1BACF35420ADCA604BCCFF -:10F9200037B47C93CE0CE1FB21FC49F14E747A9202 -:10F930009D00EF0E2A74419EA5B594B6C4D937B583 -:10F940009DC3D0522A01FFF8BEC5DDC3E0463CB4DA -:10F95000FCE93B693DB0EFD7E8742817E672AC7F4D -:10F96000B57D913311BF9666071D117EFD84228FF0 -:10F97000557EFD8495C1E372F9B5F639ADB328051E -:10F98000E0F7299152403EA59AEA9E013D43AD7FA2 -:10F9900022811E50EA64FCE99D838529214BA4FD48 -:10F9A0009FF3BC6500B7ACAA7E0F4FE79F7503714C -:10F9B000B7D3651DE3DDF789147FEE2254BEC3B3D0 -:10F9C000CC67003E483AD211BE84B8A7C2FE2F9839 -:10F9D0004EF1A59495411ED77B0DEE4EAA37D40962 -:10F9E0000C3FEA7670FE760AB2BB1E8DDDBFF9DDF4 -:10F9F000C6081EC3FF6D8EAAA7E3D40BFE95206731 -:10FA000087514D29AD82E2EF73B1DF2F22419C5720 -:10FA1000C38B178DF1F0E2BF15BCF8739E6706AC7F -:10FA20008F9B69C2F92C7989437DC06108A0FE13C0 -:10FA30005E4CE5079D2FF92DC39BFFE4BDB8EEE6B4 -:10FA400065733D77D17D38D75AE7B98B56216B80E6 -:10FA5000FD0E307D6FD1E4401FF24122BE727B1655 -:10FA6000F4E74578501889DB101E028EF7DFBF657A -:10FA7000F8749BA2375EA39B89EB0AD713B187F278 -:10FA8000B9892F1EC432FDD772FB4478B07EE6B729 -:10FA90001011E0BA80C8064269ED01A713F7AF9EC6 -:10FAA000F41B185DFBDB3368BB26AA6F025F8BA3D8 -:10FAB0003F7C3F1A1F0F6BF0F1F015C3C709884F49 -:10FAC0009F1137E2D36D1A7C3C9C001FDB07F0B11D -:10FAD0001CF1596D4FF550624E1DFC3DE08B276ABD -:10FAE0009F176E8E2D93E7A2CAB98017B41C852F7D -:10FAF0004DBB2E1A3D71F064DD80BCF717D58C89A3 -:10FB0000E6136D38BF230A1EADBB657E36F0E935BE -:10FB100060700C513AA800F946FFC27D234113EDF5 -:10FB20003FE9AA8132D697AF6065FFD65F7B375C2D -:10FB30004BC87ABD2F5BA4F0AAE3BD7D3A902FF9A4 -:10FB4000BEE79C6057E83C3902EEABA7D03B0636D7 -:10FB500094E1E353E35A8A5AE2C04F9DFF7A2E1094 -:10FB6000D4019FDECBF4376B59581F2D5FDF703205 -:10FB70003994D21B427C0DBFCA11B02B36726BB3C5 -:10FB800001CF36664B5C3B5D53D9AEB64AC45FCA03 -:10FB9000EB0B28DE35EEFAB06F282D974DEB07F40E -:10FBA000A3EBF62E7E1BF8E5F824669724B76CD5F8 -:10FBB000D1FE32EF748D6BA7F8F6A653C27192AEE8 -:10FBC000EA3A08FD84174B620FED276B85ECBCA762 -:10FBD00018C66F6943BCAF21F83EFD7BCBDBE0BBB1 -:10FBE000478690541EBE236D1C7CB7329DC3FD58C2 -:10FBF0003997CC7AA518A84844BD7ED82C916B9B28 -:10FC000000E5964AA41749B4FF321BA9AC2385DA54 -:10FC10002DEB6C04F975BA8EBFB3863ED78D63E5C4 -:10FC2000D4E59CA70789772DCE2FD348A671A9ECE0 -:10FC3000BDBF18598E6727D6FB71BF33AB5B4A61D6 -:10FC40001E9979ECE930F874F974FC43EFE9FD2B67 -:10FC5000E83A0F29F8B2746B5566B45C3B74C6245D -:10FC6000E8A8DE7C284BB5178216B0179696566723 -:10FC700002F3C8CD9F9602FBEAC889AD3FA7F7A45F -:10FC80005C05F2FB3D9EC0FEFD97C59302F4798DA5 -:10FC900081CD5FBBEF9F29FBD97C8123FE28BA6C05 -:10FCA0009E751EEDB0E60B42CCFB330F9A08A810F0 -:10FCB000037AC5C2DEA9F05D23E95F0978D8184848 -:10FCC00026FE28BAB82629FEB82A3D345FE0891CF2 -:10FCD000775C43ECFB0B69444E8BF75D46EC7BBADB -:10FCE0008E98F29ECF07D601EF4945C8E6A576F873 -:10FCF00074D05368F99C5F27EBC7029B63FCEBACA5 -:10FD000018B201FFA2FA480BECCB592984FAC63984 -:10FD1000CA9AA01EE4780DECAF10B6CDB446C65119 -:10FD2000EBA17DF43E9E9D652041DC9F30CE03E03B -:10FD3000278F2464D3FE4F0C12E869FB0F22FC547A -:10FD40007C8986A31CC56F32DAFB833A4A5725B9F2 -:10FD5000196B8B8BE896F5AA7C216BAD87F2810C31 -:10FD60005E17C32792CB06F806B2A9753A5EE13357 -:10FD7000D96B275F1B5D66DF47DA0FA981FAB26294 -:10FD8000D6BE2277E87B2B40F6922E9C1F5D470E55 -:10FD9000C06FA06CD2942DB43C26AA2C6AEA1D9A9E -:10FDA000FA2C4D7918FBFE8C359803FE81EADC11A4 -:10FDB0003502A5D333D9C1391C2D3FDAEEAC994CAD -:10FDC000E9B4B18CE9174DFB39374722F06B723338 -:10FDD000BDDEE20E19EA8A010EFD7DC0571AF670EB -:10FDE0002247E9C112D819C432B493A2DA05386C9B -:10FDF000D710F810DB25ECDFA5433AEF741D65DF63 -:10FE000005FE827ACCC31D8BBDC0D8FAF48C6F512D -:10FE100029E7194A1B36EDA9213E4B84BF9ECDF63A -:10FE2000BC89FCF50027027D0EE029F46B89D085A2 -:10FE3000FAFD9FC6ECFF1DA849C94B3F6913E8F7BF -:10FE4000FFD1F897F1A077FF499123EB397F118C0F -:10FE5000BB89F88A408E7FBFB1E0A08E7E77441FB9 -:10FE6000DA02BCB73DF76A84DF116B683847F59258 -:10FE70008772AB6A040ABF23E9A12D00CFFFC8AD8A -:10FE800066E5E1A1E13A5A5EDDD3C4CA05A12D5071 -:10FE90007EA567362B8F090DE769FB3CF93684FF99 -:10FEA00036313E5D2FCB65FAAC3ABF87CA3C4B7307 -:10FEB000418F6E60F267CEDD876703BF9DA323226B -:10FEC000A17C7ADB99632F6DA3F0D8D69A4C7A186F -:10FED0003A7A056A6F6432D4A772A20BF97AD8C94C -:10FEE000F41BCAED42E0D74B1E6F923A9D917D51B3 -:10FEF000C7CF1CD5B213FACF9C538C72C4ECF41C40 -:10FF000081F1D5E7F451EC79245764FC9BD779F063 -:10FF1000FB07AC7EF87E8D99AD8BD20FEEB345D941 -:10FF20009735CABAD6E4323D63BA73CA91DCF1A000 -:10FF30009F28F6CEAA40FA283AAF6E8E04C06EA46F -:10FF40007A8A6C063E5C9F84F64C37CC1DEAD766F5 -:10FF5000FB653ACEED1CF1027F51F949B7DD939D67 -:10FF60001A65377697D2B225E227E8AEF1642739D1 -:10FF7000E099A1031B4AE54FDD4ED64E954F99ED12 -:10FF80006C9CCC35453DB09E6481A0BC9B37ABB02A -:10FF9000A70DF58399386FE2F16473B4BFE3F5B947 -:10FFA0003A80A3BA5FDBCB3C2FE0BA78E6F750F794 -:10FFB0004D85EF915CE6F7A8E3A97E41F1EEF17C77 -:10FFC0001FF647F58D1214EC8ABE710490767C04FE -:10FFD000CE44088D87F7FF1FC2AB1FF0E9DBC2AB31 -:10FFE000B195F211DD25F011058EEBB9A03E93F12C -:10FFF00011F44BC07B9047CF3B7DC773A3E861CE24 -:020000023000CC -:10000000038DA867AAF34ABEFFB569DF234087A71F -:1000100090EEE6FC2019FD085A3D50B503557D359C -:10002000911DF8A9420F6ED5EFADCC23B938F4D2AB -:1000300063145EA9C42A021F3D62088D71D3F6477E -:1000400074BE675F83790FE145CA4306F5F7421E28 -:100050008FE39B553C2161DB2847044F56533C31CD -:1000600041FB1A03DA25DD76FFC6F98027B70C734A -:10007000CB12CA61A467B93519EBAFD11D25E0C712 -:100080000F4F1045D033295E617DF7EC42BFCCFCA9 -:1000900031B219FDD349FE1EC0BB520A00E86FF60B -:1000A00028AC077F08FA91669BD87883F18AF92DEE -:1000B000461256EF54F0B63E17F136A39D303F90EE -:1000C000E029A989D217BE9FC7F022B92CF4EA1FF4 -:1000D00040FF7CD4EC2E20CC6405FF12E9CAC4FE9C -:1000E00028BE8CC81BCFE438F47BD7E3D6AD8CEFA9 -:1000F000B9CB01CE0F5BBBC832F40FEA71FE9BCDCA -:1001000041D4C37526C90E7EF8393C595F08FDB548 -:10011000EB45C0132DBC2BF312F91F42F746FB8BA6 -:10012000E71865630ED43F6846BB40B5FBE6A430D4 -:10013000BA52ED3ED5CFA11D47B5FBEED4D873031F -:10014000F59D7F2DA8A5FDFD59C13377EF8582B9B7 -:1001500016B66EF03FD5C25F74DCDAE5E60FC1CFAC -:100160005C2BEB83461BF091299E50949D4636B044 -:1001700075F87EA5F7039C5A05B27E3BEC8FCCD672 -:100180004FEDD8FAE8756D32B075C93FB0C6AC6BAB -:10019000938DC591BEFDBA3E1A1FBBAE93E3957514 -:1001A0001153066DA7C8B93B5BAD1F7225F409EB6F -:1001B000A24FB29CAECB1559D7B23CC64FE7287CB4 -:1001C0006C90DCCD637A7C1CBBFDFFC67ABB9EF2D3 -:1001D000C45BAF769D7FCEF3FC202F1DE9262896C9 -:1001E00045F0DAB791AEAB0CF635DDDF86FBCAF031 -:1001F00093109B1BF8D89279745DF06CCB447FE12F -:100200001CA3B407FCE6E44729CA3A09F281251B7E -:1002100087235D52BC6574FB14F3BF2C317BD17F07 -:10022000B364B1E8964558FF2B680787297F45BD21 -:10023000A43596AF7F3D1CCC39B5C5D17030E5CC27 -:100240002D8EB3EFB211F139D1BEFF990FDFCBE59F -:1002500025F69790E5B17E0AF0E70E94F9C165ADF9 -:10026000DF8390BF1963BF9713E051E8FBD1787427 -:1002700044AFE0D13233CA1F158F8E5815BF900698 -:100280008F08D5A2818ED5756BE13807E018C72F8E -:1002900044F1A900E07844B1CF283E15001C553A3E -:1002A000B8B395F1032DDCFE9498AF7DBB7568F073 -:1002B000F8DBAE43AD4FB40E55BFDDC02DDE08F800 -:1002C000B9219B88EDA80787C6809DE430F88B6034 -:1002D0005E9B0C947E91AF303FE1678762FDCEDA82 -:1002E000F95CB8647EC1FA4DC42712E1E5E5FAF97C -:1002F0006A35703BAAC06910BEE733B9A9F5F3357A -:10030000DBC24F83DED49CC4E4F7D90356A47392B6 -:100310001F9A03F6C2B97D4602F2A0890B15C27777 -:100320006739CF5CFCAE2D590239AEFA738FED669A -:10033000FE5C99507B9D961B7CCC1FDD2CFF7225AB -:10034000C0E5629ED002F672F39E587F20DD0F1B3F -:10035000ECCF591DE987EF9B787F3D98D8EB0D4C8A -:100360007F59AF23018067C48F70B410ED9A6C91F0 -:1003700080FFAA49F761E13D517E8726A5BE298706 -:10038000F9D3203F01E32E309473305C9A1E3DFD7B -:1003900025C4579B7669E93B96FE1B2265EE220732 -:1003A000FD45D53B23F48FFE03C08BC9C45FC081DC -:1003B0001F909593A7F5FB21CFA159F13FA7F78691 -:1003C000A6827E632D0B10E0FBCD2799DD3471FFF3 -:1003D000D637C13F689FD63F1C54A866251EA5B5D9 -:1003E000D726EC5FCB833F4BB5B7A2FC67453363A1 -:1003F000FCA72BB01DF8E360BC10BC82B881C0F430 -:10040000F2F58A5E4EF577E4F3F3BA46A2FE0EFAF1 -:1004100035E849AA3F0FF426D09F77E757CDC8A704 -:10042000EB9C5D50757DFE78361EFA29C04934215B -:1004300031DEAAF051BF03BFDE57C78514FD8FB070 -:1004400078D03DBF48FF4ABA5C949F307E7F7BB432 -:10045000FF7D9FC6FFBEEFCAC5833281AEEEE1A429 -:100460004CA0AB891AF9B62F811DB0247F201E94B1 -:100470000974ADB63FC1FB30FEA1C61DEA21CE8294 -:100480007226887189BB5B88BB13F3407C2BA1DC8F -:10049000B890889D14DF1B26FB58FCA38588374E37 -:1004A000607156298ADE208E195D263B6839460E1A -:1004B000F6631CA489F6B0C90D7E9AD8EF9B89BF5C -:1004C0005A003CDE73D118D34F37DBD73B15FCDE27 -:1004D0006866F18389CBB7F224CA8F9332CEE37C6E -:1004E00008E8F7177AF45FFFA7828F2A3CFE9C5733 -:1004F0007513E05512F8D5E0BB878CA8C71CD791BF -:100500008580DF6BECE4CE99F479F641E2C9D7033C -:100510001E8B39D1FE44F5D9B9CFBC10E8E219855C -:10052000EFA9EF2BA051BA120F40FD3F19F3472856 -:10053000FB2F01BA29CF55ED0E520271880F157E9F -:10054000DA74ABC507FD85748CAFBF98CFE4C08B60 -:10055000F906DC3FB53CE08F53E8828E83FD255DD4 -:100560004562E2D73F53F055F58713254EB7BE3E9F -:1005700089D92903F4A943FE9B5CEC35F890FF551B -:1005800021FF0D7F6491002ED34E37D4C33A3E9D98 -:10059000954420DFE62E254EFA6EBE1DFB55E38BFB -:1005A000FF40BA8889935E2A5DFC3E421731715242 -:1005B0000AD764900BFB74CCAEDD47110BFD8201B2 -:1005C00025EE2E100FC8AD7DBB46A21D3357F15747 -:1005D00053BE81F66B98CA37B6DFBE8DF3E0BB40E1 -:1005E00001E6237CA8F73FBF1DF49903CC4E53F7D7 -:1005F00063DFBEA17EE03B134F7F9103F0DF77F214 -:1006000085A190E7B14F89AB37188285E84F31302B -:10061000F9DE600B1602FC5E57F0A6218996E9FB15 -:10062000BC745F18F05ACD8B8176765C8F64037F43 -:10063000CE31C54E3F4AED769817A5967E88F7D302 -:10064000FDCE8672787526D3A7E9BC002F8E1D18C3 -:1006500083EB5BAF67782CEFE5D0FF73541F3ED17F -:100660004ABF3F9A7D156913413E5FD8DE07FD3FC3 -:10067000CD13A30879479F9FDF43BF3F378417C13E -:100680002F59A7F34ECD067EB19BF943B4FB00F280 -:100690003A3AAE7B968473D06FBA303700F87376EF -:1006A0007F11E6D3118748645A6EDECBEC476D7E2E -:1006B000C4717D2CFE6BFB857581FFB219FE067D32 -:1006C00024BA7D9CFEBEAE7C561F2A5C46E13145B5 -:1006D000F24905517E80E637B2518E1C7BEC73DC0B -:1006E0004FD2C5E2E8C7F59E39303FFBE4A0A13602 -:1006F0000A1FAF2E50FC5046A65F50FE6B88E637AF -:100700006A7D7915899B9F525EC0E8DCDACFE4F4FC -:10071000E07A86E7F7926779E0175743320FED6F7B -:10072000849267732FF9ECA011F4A94029E6F18CAB -:10073000581E443E40E78BF8797C630AF247F22862 -:10074000C3D7F93F3222FF984FE507F367B0BC42A9 -:10075000F228CB1F3AF19013F1B97C45B01CE9C1E6 -:100760004EDCA047BDD6F1A1CCD3FAB93BB852C8F4 -:100770009B9CDBE1443BF0EE5D4EDCDF890A5FAF22 -:10078000337A304F923CC3E29C773D518FE334265D -:10079000133B8FFAB5DF007AC4C21D1CC6C32706FF -:1007A00018FF6F108207414FD7E6FD107F6CBE0126 -:1007B000C82312A5C783FC211ABB2B76DFE54BD2D9 -:1007C00017B472667141427DE1EFA4C77F337D614A -:1007D0005981AAC7C7EA0B60FF17303C64726D27C6 -:1007E000C7F89CA22F3482BE00BAB022A75539BFE9 -:1007F0004091F32778A667CC37AEC5E79A0296E713 -:1008000070370929790E6103E87F89F0788D322FDE -:10081000158FBB008FC747F0B8E164B0CF887E0763 -:10082000F76EC8D368584E82566AB7CF175A509E93 -:100830000D118988F9AFD53E9C57E6126AAF51BCBD -:100840009C0FB1FC7197AFC70CD25B34FA8A3A6F38 -:1008500015AFB5FAF5C4E57E1EE28BBE9104DFABA1 -:100860004F91044A61BE352666DFD4982C411EFCA8 -:100870000F93F567A2EDCF1AC1F322E33BC3EC2738 -:1008800046234B23D0EF74A7E737A3D2237A7B729A -:100890005978E563B43F3D29D1015F57C7373B2BFA -:1008A0003F298638AFD08FF62BC962F92C478A19B9 -:1008B0005C93E93E6CA570D50B32C24F6F12ED6DA3 -:1008C00076D8FF7E8CD385D309FA6DD5FDDA622503 -:1008D00032E4151F2966787FA458C4276D8FF9006C -:1008E0007A176D4FFBAFDA67463E727EAFD50FFACF -:1008F00004959323ECB43EE34FD40EA4E5B3FBACD4 -:10090000A8579D55E49B43F5DF9395B8FFEF2A78F0 -:100910002393AAA160EF11EE86A174EE44B5431AA9 -:10092000ED89E2DA4ABDB3FF5686BF46D46FCEDB0F -:1009300043F74199CE0773E0FA14BC6ADE555DFABD -:1009400000C81BAFC5CDA0EE2B057DCDC82FBDD5F2 -:1009500044813D955F1E5E06783FDC221A6993C98B -:10096000233EF8FD6C5AFE68979E18017FB6DD9411 -:100970001284668227CB3B66F07CEAFDFAA3A128AD -:10098000BEB368476CB931105B6E26C2D15094BCBF -:100990006AFDA0FED76F45E1DBB902AB03F08048EA -:1009A000C47D91D2D3F107F7906320BBF93B52800D -:1009B0009FDF45D9563C7AFFFCC185BF7E8B7E27E1 -:1009C00018AA3E2F40FD5232007DD5523D279E9DF4 -:1009D000BF4DE16B4663CBC9AD143EC6D78DEE3635 -:1009E000DAAAB7C0470AD3C13E0EF7C1BE1A479C68 -:1009F0002981F846D5882F30BFE4FCBF1037C0E905 -:100A0000BCB912F1E9FC46B3047E80EE1C0BF3CBBB -:100A1000BFC1F9396617CE184FEDE9853815E0BB2F -:100A2000E1951B41AE4C308A2B445CAE4987FB4DAF -:100A3000AD63FAEC36C82BC1CFDE4D0DF43637D896 -:100A4000D1FD362086A98512CB9FE05F3498E89FC0 -:100A5000CE0E4F511BFD6E91378940DEACF0A5E004 -:100A6000053C7B18BA8AB22B8715323ED3680A1927 -:100A70002AE977CD5F2C9D96AE8BC47D8C7A9F67DB -:100A8000289DB77E4F6970287DB5A0B51AED672AFD -:100A90001F185F3CC0F8E2826595F89E9B390DD720 -:100AA0007B82AE17E0F2E64623AEF7C4700BFA3352 -:100AB0004E6CE1B0BC403460DE2DD5A7D22A1DF0CB -:100AC0005E2F1AC96078346F7878E5465AFF6E3623 -:100AD0004F388AFF7FD9FC738C4FFD85B0F1E55DFF -:100AE0003CEA697F11C3E54180A7D4628BB6D71772 -:100AF0006CE1BDC02F176CB9F7DD0900B799B79548 -:100B0000013C26D99766489648BDAA9F0AA915DBDD -:100B1000812E277D59DD3F09F4C42D946EE8BC0574 -:100B20001DF181BDF4D696EFA27DB0A026C90EEBD3 -:100B300093366F9B0AF2F82F354374B8AE9738227C -:100B4000023CECAD19F07E012778E3E1D5E1021E0D -:100B5000F1AA7284C50DF271C1EF78C4174A67B764 -:100B6000425CA9718B1EED8FB7661EFEFD6C47843B -:100B7000CEB8991B664C84EF7FACC7EF07F4BFCDAE -:100B80001F7F007E17F84735119043083F2DDD1970 -:100B9000472C2F847969E96FC18A964296EF717963 -:100BA000744836333AF41572C8A7BF011D2E2CBC09 -:100BB0000C3A24C35263F48EC17C4F46BC55E3E526 -:100BC0002637F16CB3607E9487A3FC7A6DA180F523 -:100BD0006B0B999D29FCF59E1DBFA2704A2BF4FD5D -:100BE000A010E42BF194827C96C26215B8E62D8A9F -:100BF0009E4B36B3F318600FC1FEAF4F27DB3BA30C -:100C0000FC5F8F417FE9C817DAA19FB37FFCA20F79 -:100C1000F6AB29E74C09D801CD17FE0BF36C2CFB82 -:100C2000597E96C51DC6BC35BDC38BF8A8F2FD66BE -:100C3000379343DA755D28D4333EED08633F635C38 -:100C40008C3ED5F8F4A6D6248C136E72F8CDCC8FDA -:100C500045F553DAFFF4321EF98CA9AC9D801C23B4 -:100C6000153CC6F7267DF16B02F1D077AFAD7683E8 -:100C70001E6C297B5348837556E895FA9FAECAA52A -:100C8000F5BFBE760ADA73F764F112E853D3CBF2FC -:100C900064949F1E96273FE98B14A4C319F5335023 -:100CA0000F56E7EB2526C942F1642625D6E8F30462 -:100CB00033AE354B9628FCFAB48B9BC6EC0029E585 -:100CC000E631CCEF162866F23C1A0EF7641970FC78 -:100CD000D905952F01BE4CBA8EEDC3A9978CFE1590 -:100CE00074DC53E6F8FADDFE42E647C815AE47BEAF -:100CF000B4F42523E66B9CE6E27F7FF72A1EF3CC53 -:100D0000EA5771C44FC73BF5FC6B39C0D73FDAF6E1 -:100D10005A4E6DD47C12B5FF6361227F76F0AE68C7 -:100D2000FFC074038B139171C6187FFF749B721EF2 -:100D3000E612E35FFF9430EEF38B6130DF5F0DC4AA -:100D40007DDE19161DFF1A8863BA59DC471BBFCC1C -:100D5000AFF83765BEECFC41ABA0CCD76D6471AC8D -:100D6000792C4F62C98134C4BBE986F0E318DF7C7B -:100D70008317953897C784EDB3587D8275118F27F7 -:100D8000DF518EFE319C0FB7870B5A6DDF627D8479 -:100D9000C5B5B4EBABDDCFC78DD336BB585E48725B -:100DA0007118EDC0A3EF3C0B991803F86EDEEFD479 -:100DB000459F5B19D06715FCBE09F09BAECFBC8A7E -:100DC0009513E175227EF5A822B755FC3EBA2A2F6D -:100DD00005F0ED215353A88FC2CFC3A710F3105ACB -:100DE00056F241E40FACC88778052E4491835B3EF0 -:100DF000B0A27DD6AE6F7906CED9C96D02D946DFD5 -:100E00003B929AFC6DB42CE9AD9847777FD28CADBC -:100E1000608786A882CBD1F2E74947B6829E404CD4 -:100E200029444FC791AB94F60693D84EF58BA79201 -:100E30006DC85F5AEF2228BF334990E32840DC2376 -:100E400073991F7CD16E0EF3E729C583DEE7CE8B45 -:100E5000AF8F168C64FCFB8F905045D7EBAE8EFFA6 -:100E60009D7BA4EAF7137CA128BBF461CE2D29F960 -:100E7000E404F265F5A47F36F265AAC7FF9ACA8337 -:100E8000A1FC2BE8FF3EF6A0EF9978E792D4E75D4E -:100E9000D5F1FD0A1394715D5D9C5F6F43FAD56DCA -:100EA0008DA15F25AE6BCD70530903F17C16B7CDD4 -:100EB00027EAF9940D10171952C1E668F38408E87F -:100EC00017595DD7135F1AD0D3C44C906F4BE6C54A -:100ED000DAB959B5ABB2D10F597BDF0C90DF1BF4F7 -:100EE00096555C0A3C63FD871B34FEC3AFE30B5988 -:100EF00009E9664216F8633644E2C1883FED73455E -:100F00003FCFE12A48749E4346BBD4E7033DA8D2B5 -:100F1000E4EE710FA61F52E1CE8275BDA8EE9B4292 -:100F2000CFCD0A6A72FB39B44B07F343059E8DC3DC -:100F3000109EE6AEFBD16E4A2E657EF7E4FA5A1F8C -:100F4000F09F64CA7FC08E33185A38DCFF89CC6E9C -:100F50005BC2B1F2924A5194E9F7069B923F7D033E -:100F6000ADB7039C7CBE68BFC335BA7B2AA3F3B47C -:100F70004542DB031F9EC5C69B6E5ACEF2C47D540C -:100F800047CA8EC0B14A81637E45123B6771AF0983 -:100F9000FD719BCD5D385F9DC4ECECDA4E33F2BB46 -:100FA000A1BC0BE352BD7A861FB2D584F4EAEE7D74 -:100FB0001FF305875E9D25F1CE28FC59CAEA55BC72 -:100FC000209A3C138341EA037F239D881BF2949669 -:100FD00070525F15AE4B0CCB6E58B7C2974B9298C0 -:100FE0001CA1E66616832B8B3B6AF68BE20D8B0306 -:100FF0008CB1303F17F149A87769D63B186FF6BA24 -:1010000080DFF60EE0CD1E573C7EBBC62EF5F544C4 -:10101000E30B9156821FF8111D0977C6C31F77ACE9 -:101020009DAFCD9BD4DAFB4DADD55EC5FE904DB8DE -:101030009F06B43F9A96557A99FDE16A037F59F36A -:10104000722AA9689BEAFD9C09FA6B9E6543FBBB6B -:1010500079CF4ECCA7689A46DC308D5AC59FADAE8D -:10106000F3A89EC549A9CC0A403E47B73DF4349C3D -:1010700083EDAE57F3BA589E93BC8753F2BAD43C73 -:10108000C0F011F0D7767312FA6D07CED3D2FD6798 -:10109000F95C979717682DF63AC112FF69C17FFC7A -:1010A0002629FD32F2AAE582755F9D579D742BD4E7 -:1010B0009B602F947A4003AA2FAB658F59827CAE38 -:1010C00048BD40ED4ED31E8EB597D7DC3245C07378 -:1010D000704AF9F327E1BCEB1A3389192F7A7E8223 -:1010E000A67F302D2D92FAFD1F664EC9C73C48657C -:1010F000FE154F7A86D1FEF4B1FD21CA28EDA1A0DC -:101100008EF7C2E863DD8F0E8BE8ED548FFF6CE441 -:10111000F888FEFEF0E1E95D63E958C9E26778EE20 -:1011200050D5C39B1D2CCF5A8BE77F53E414B58752 -:10113000A7826AFDF0ACC55EE877200F72FF5C0FF6 -:10114000D8C16A1E64F3722F9E3FA47ABFCE057980 -:10115000D57F3C73E220013BF314FA039A2F08CCAD -:101160004F4EED078EE28B69FF5AC41FB243EF0763 -:10117000D74EB75D26808FDD07B8F1805F84B4E479 -:10118000DC42617F9BCB9384FD25C83FC873313F10 -:1011900077B3AB6A6321C0FA398E803EDEE9FA1478 -:1011A000ED8AA6BD53C6479F97ADDFB38E9DBBDCCE -:1011B000A18FBBEE3C17CB776CDAFB2AC67B4EF9CE -:1011C00039A4B985827F35D89B0B17EAC0B2226556 -:1011D000FEB998374D661908CCDFACD821CD3B6EEF -:1011E00092E1FC6E33FD8F9200D9E49D8FFAF6A652 -:1011F00059260BE40934BB6A1723BF13933C60CA1A -:1012000069E739900FB92C09F3AA3AF7E8A7819D4D -:10121000544EE9E26716E0ABEF39B702FF4C1BC74B -:10122000B78B90771A5FFF2E1AC5E45007E795FF3A -:10123000B90CE338243ABF7DC41E667F4D74196231 -:10124000FD932E66175E2BF75703AEBD218492C126 -:101250001E6E269E4FC0EF45BC1609E3582480FE43 -:1012600040C78312DA4D2647E891B1507FAD8076B2 -:1012700093EA4738BB3713F5B1975DBEEFC23E9690 -:10128000F3A127FF19E0F688A0C4C3185FC9B9C944 -:10129000320EEC2BBD83E93366AACFC0B9A1EB5661 -:1012A0001FFF6535F0568717F50842851CDCEF50A7 -:1012B0006DE2583C48A33713D13D19DA4F55FCD2A3 -:1012C0000574B74E9810353B2EA6813FC32103BC51 -:1012D000DFA10B48A3F55388A783ED0BDBBFF50611 -:1012E000A6AFAFD799505F57F5E164473FDA898DD4 -:1012F000010EC76974BD82E7471629E71406CE0BB5 -:1013000008213C3F51EB4A56E2B01D0C3F493FFAE1 -:10131000C3C88B6C1FA8E689E72A54B8ABE70CD486 -:10132000FE0C4A7CB751F1E75280317A74A9F1DDA5 -:1013300015CA533D07C2C62582541EED775C5F4334 -:10134000483FCE4BB2C17C1FC9F0DEE7A2DF1FA52C -:10135000780C78767455B29F708047FD1E88D3C88C -:10136000A52CFEA2C5A7475C9C72CE2C3C15F3F0C1 -:10137000F6263867B627F69C19E50F8BDFA6E394AF -:10138000951D76037EAFB12BEDAF2778BE407BCEA7 -:10139000AC4BD987FF73E7CCDC9CA7873EB7BAEC90 -:1013A000B1E7CCDC6CBFD43C19EDF9B2B3D94181C3 -:1013B0009D07093DBD0DE5A511EDC2D73FEEEB0040 -:1013C0003FF3B952831BCED564DCF64E07E62B7192 -:1013D000420BC44FB5FAC0EF9CD53F01FA5977CB09 -:1013E0006E37E68F6BF481447E008CED46F9890EF2 -:1013F000B8AEAC1FC0DCF5B90DF0ED34177E1CF2B1 -:101400009AE5037CDCBCE60F5C89E2629E59D1FA66 -:1014100069879AFF674F8AC987ED4890FF9748EF21 -:101420001712E6FD5D8FFA5BC740DEDF34557F8B18 -:10143000CD6B1693BED25E56C79F1672C6E4117C62 -:1014400072C9EB54EC9804EB4B64B75D6E5E841686 -:101450000E1D09E4E85F5D03F13F4D5E8447843C67 -:10146000820EC823A04F812332FACF760EE44504C2 -:10147000D15FFCEA48F47B1913E645B0FC3EE1C0BD -:101480004809BE7B58EFF5803D23EFD42B72C0FF97 -:101490003CF84D3A0E64A39F8DB84225C01F05FB52 -:1014A000D42CD0AB3A14FC6CB8F4BC88B4A2387914 -:1014B000115BFDE31ECF65F6737F32D5CBB61226E6 -:1014C000A7E4FDCCAF49E78D7EBDF063C3515FE576 -:1014D000669A701DC7DE30F618510F77639E436D14 -:1014E000162F827CE9AE293F01F2EB18555C818E04 -:1014F000EBEE5E8EF66BA2FDA95B151B7756DF5FE8 -:10150000EA3E8D2B62FB7414EC7B14B432FA8B1719 -:10151000AEE20E62FEB626EE5D56441439119BC74C -:1015200070DE5C89F1D8FB9EA8C138EC7CD282CFFA -:1015300085A44B89CBB2788BB44A403921EDE0FCCD -:10154000929391890E6D7B5187F7F550F1B609445E -:10155000A24CA9E66AFA9AD371A0A74A1DB49C4985 -:10156000D7B55A90B3E8775BDF4F46FFEBC30E4920 -:101570003957C3EC2FF9510EF53FDA2FDACF720746 -:10158000C51BDACFCD452C2ED050C4FCC91445FC68 -:10159000381FE5D9A1E47DA8E3B5115D109E3A8E10 -:1015A0003D1F168569F1F43BB5BF0E7D8B09E22D19 -:1015B000E1E13A8C679E377866613C30B59080BD3A -:1015C000D8616D59358DD5230F3D6F0E7BB1FE3B34 -:1015D00002331488940AF3BD41D90FEDBECEEB8AD5 -:1015E0002D6BF313B4F77ED411DFC8ECBCC1F760E8 -:1015F000DC50C4E4E1F94EA7B22F6E8C9777E8A5D2 -:10160000DF38413EAE16500EB70D6370D30D67CF75 -:101610005CFBE4592887ED543FC5F9B2F9E77EC772 -:10162000C101FD75D8197E7DDB796BE7BBB4A810CD -:10163000F7AD038C063A5EC76ACECFE0C5E67DA95A -:10164000FEEA278AAEAC9C3AC6B9B70701CF2CFE9A -:101650001F81DFAFAECD28023F3BCD29F4BF9A47B3 -:101660007EB669612A968FAE2A403FD000DD9E5C2F -:10167000B918EE33B9D47C8AE714BC7857E387AB4A -:10168000ADE0DE837EB47007841254F9439B56DFCD -:10169000543C15F863938E4899A00FACD2E4B3681C -:1016A000E8798AE47BA508EC0F437F1FE353A1424E -:1016B00001F56FB31BE0B64E776CE7CF015F769A0A -:1016C000313FB26979783BF82B3325DF5E68776666 -:1016D000D9E1A99C84DDA19E74EEC048BC1FA7B6C9 -:1016E00043738FC7A3B1793464552ACBFBE88E7D51 -:1016F0000FF737C4B41B945FC3F4D6F5065F11D857 -:101700001793AE6379891FD7EB08E0C5C766863F9C -:10171000F2635645CEB80BA3F5DADF6BF1E3313354 -:10172000E2479D72EE4DBB1F8D801F74DF1A14FCC3 -:10173000F8F8D5AB0B013FCEECBCBA10F063BDBEE0 -:10174000CB03F4B53BDF7718E0717C8AB74FC7F85D -:1017500052E1E5E0ED4757186F2F55BF328D4A141F -:101760006F91EE888EB7F4EA999F4C36C79E1BEBBB -:10177000BD4CBF6A62FF58517EAC7FCC951F57BFEE -:101780003299BF52BFBAFC75103C37A8C6617AAD1A -:10179000E1C7B747C16B8999E5A32C291245B91454 -:1017A000D6579B87E710FF6872F77057749D317E9C -:1017B000C037BEC85BD905F3F030BFE51B82D477D4 -:1017C0000D1DF70DC2FC96DA75DFA8C46154BB5B32 -:1017D000B503B5E3978C627AE6A4519E52B00B260E -:1017E0007D7111FD0827E11E2C3AAEC9FF33B4E725 -:1017F000C87E4EC4738C128B8336ED9DF72CF85D3A -:10180000EBFD4AFC721787F67AFD739F60FDD93DA8 -:1018100075586FD9CF05210EDA3C4C87725BCD7FAE -:1018200050FD3FCDFB4BD1EFA3FA7FE83CC6805D76 -:1018300099EC081B906F817D49DB35092CBEDBE4F8 -:10184000206E1958ED9E58BF899A1FB5C96B407A12 -:10185000DFB49FF3833D9E61F03987213C87892760 -:1018600092237C63FA28CF4AC87352F3EEE0FE9FBE -:1018700051E3D10F9A83E710F4EA7D2FB1F7F324F7 -:10188000C2E70509E986CC89C6B790260E11BA626F -:1018900079CCB351DFFE6FE2457DDBA7C1B75002C3 -:1018A000F9D23C4ACD63BE15F57DB5FDE0FC7E3F27 -:1018B000CBEF1FC8CF6379FC0DD309E9B4B332DC99 -:1018C000EBD408F73AB999BC0F6AE47D7419F2E1D8 -:1018D00082517CBE41E8C77302EA3D4E901F17FD5E -:1018E0007D139CDBC963797231FD28FC3F93BF07F0 -:1018F000E35571E2C47744DB4B8754BBB0543D17CA -:101900001636803F6A499B230C718F4356E5BCBA5B -:1019100092AFBCC41C3E06FE9A25CF67E279A201B5 -:101920007BE425A3E2EF6774DAC0FE24CD0B8FA21F -:101930005FA219EEA5E022FB363DA11DF98B7C8844 -:101940001F1D1AB023DFC987F363AA5C687033FEDA -:10195000D6B08763E70803B1E7C85E1E7565E58406 -:10196000FA5DA2F6874625B24BBF0ECE0CDF0F25DF -:101970003A7FA7F075158E5ABCBF5CF8A9F503F045 -:10198000A37C08E583067E5ABF9FEABF231D22FA87 -:10199000F7A80E1580FC53D57F77A9F2FB43054EBF -:1019A0007F6FF94D4627E243DF6E7F12F1A3CBDD57 -:1019B0009741F21BF6A724B1FCCEAFF83765DEDA0B -:1019C000BC0965DE9ABC8943FAF00C760F0B858F53 -:1019D0007370DE4442FCFB9ABC896FB04E4DDEC48E -:1019E00057AF539B37F1CC81A76C105A84F38BE02F -:1019F00027E9DDA6C77C81A9BCC5C3F2D97896FFCB -:101A00004A3C785F6FB3C98CFE106DBE1FE5542B46 -:101A10005B401FAEA0760A9C97DAD28E7A4463367A -:101A20008FBE55C86F14A538F9A4424D4A501A9C70 -:101A3000D706E70BF05E8BCBCC6BBB66B4D581F2DF -:101A40005722CE6F985F5A3D1AFD0F5F9DD7F65C07 -:101A500001C3FF372D9FA545DFA75B552C13885386 -:101A6000253A0751339A1BC85BC6F38A824CA2E51C -:101A700071A276B34733FBEC4D43F8FD00E881B427 -:101A80001B88D36619A8F55F16B9AFE13697F7F64C -:101A9000D1E9A83FE1FE9EDDFB078C4F3C934D440E -:101AA0003897F08C5EC67D96D309E2B59A7FA18EF9 -:101AB000734E89A35D2AFF593CFAEF2B171EFFBF17 -:101AC000CE7706E569317AFC06FC06E96F809FE86F -:101AD00059FC4ABDAFE56BE5DC95E6339AFC9244D0 -:101AE000EB6A065AA4F8F3CA68EF8B8C8E3CE817B1 -:101AF000BD5CF9975C46F52180C72EA304A466520D -:101B0000EE65218F66AB7E5C769FE79AE1A82F7F1A -:101B10006C66F355EF9B51D7F3B6163FBFA5DDFDBD -:101B200078BEF7E7405FC72B3D780EFC612BD3DB17 -:101B3000C2CFB33C7DEDFD29946ED87D32CABDE0A5 -:101B4000DA7B20FE38FA1F23BF2F8CFEDFD1AFFED9 -:101B500051F2FBF2D7116B7F1FB2B23CC888FDFD7A -:101B6000BFB6AECB92D76A5E747955BF129FE008BC -:101B7000C427D4719AFBD9B9A2A1CA7916F5FD8DF3 -:101B80008A5E7867B167189C9F292B0B3E0DE76B27 -:101B90009A880D7FD7A02970FF8E5F39D8F9662CFF -:101BA000BB587C95782D785E3FADD057588CF41B90 -:101BB0005A09F439C241CA21CED1E99A49EA2C988E -:101BC00037310AEA472C0F3DFDAB32CC1B6B017A53 -:101BD00055F3A6CB2F7EB6725A19CE17FDD50E63DC -:101BE000ECBD333716337B507D4E53E64FB73D1B6C -:101BF000E67366213BEFDBECF088E0F756E3F4C9CF -:101C0000523FE63934ED62465139D88A50FFC03030 -:101C1000A4AFA65D95A510BF25017329DE07FE2799 -:101C2000760FFF996543D03FFAB2CB5709F3B696CA -:101C3000F9AF07BB7F041D07E2BC67765E5FEA8BE6 -:101C4000C33733F95419E2E0993C093C2946F816A8 -:101C5000B5F767A37F7B6518FD6EA5C5EC7DB383E3 -:101C6000C9F5E6FD35649E2552B63862CF8B4D1A14 -:101C700035A514E6515A2C2879A42C6FD549D530B6 -:101C8000F0736AF1C9A9E4ADD62879D9443645F292 -:101C9000B173BF3E6F559D9F5A56F356932F30BF79 -:101CA00043AE68C03C17EB2AC657C97282718E6B6F -:101CB000C3FDD529144EF9DDC16B014E290076BC58 -:101CC0006F39F4C858FADE91265C0BFE9BA75BC700 -:101CD000F582FE2BACEEFF0E6C89D42556814B3479 -:101CE000ADD0DB887824B4B8802F55FD4ECFCE55CB -:101CF000AD4E46BDB23BA701CF559D3D6C8C7B2FB1 -:101D000085FA94C98A2C8893E4AEFA77CC63B0EE56 -:101D1000E2E29EBF7BB7D8A29CBB5A91057117EB3C -:101D2000AA7EB982F69FFB184714333A9BCB027FF9 -:101D3000B6A003F95AB787DDCF58D765AF32A1BC3B -:101D400061FE2572AD03E588B0FA461DF009A18D4C -:101D50006AB1749D6F17B3787A41B7A80339F5AFAC -:101D60005FF271E35E4F1447CEE700B81A8DE1BE13 -:101D70002C67242F493D97A3FAA706E4CFAEB9E814 -:101D80009FBAFC3CF4F0ED98E7F86506C683A6DB45 -:101D9000983D420591723F516CFB41F713297A8BB4 -:101DA0006A176BE9409BD79D5F3104E982F2D1C08D -:101DB000263186EFC5CDEF6E1598DE4DD7615802FE -:101DC000F3A8CC72833FF152F3E9B5F6F4809EA3F9 -:101DD000E825EABCBF69FEB95ADF0079E771FC1F4C -:101DE000AA5ED3A19E33FF92DD1F3742B1278E76C4 -:101DF000FEBF12764FA79AE7E267E754F4947F227A -:101E0000FE84AE93010F76D9754DC5180F6BC27E57 -:101E100056B3DFFF18B12A6F4545193C45C25178CA -:101E20001FDDB76804C69B295D14C4A18BC5C5EC32 -:101E3000FE06617532E2B1B09660D6A660CF403C36 -:101E400016D6317C5DA4D0BD9A67A7C62DEF2CF6BF -:101E50001D2B4E8FBAA7A53589DDD3A2E4AB5B5B02 -:101E60000FBF04F79F3CADC4AD7BDF183D13E38982 -:101E7000AB050EECC3F3F6B923C07F7756E1DF560E -:101E8000A19F8896687AEDC5F38EB907D8392D41A0 -:101E9000C9AB15563BB6027E9A9D3E3CD7F99D8E46 -:101EA000208F795BE2F127A7496077840D906777EF -:101EB000AA4D08AFB0A3FE14E327D3FABD8810C023 -:101EC0003C22DD982BAB47A9DF256A2F8D49A83F1F -:101ED0007DABF322E46BFC53DF16AF13F9A72E7F23 -:101EE0001DDA7322CC3E216FB07CAC38EB8AF15FF7 -:101EF0005EF175A97E4B6D7EDD203A66FE0FD51E24 -:101F000052E325C423C7E4BFF7EAC520E83D904F5C -:101F1000FCAA1BF4EA1F9BA3F3DFAE1FA38BBDB784 -:101F200092F8CD701F429D723E9A08EE5510B7BDD3 -:101F30009FB776817DD70EE71240BF04F87251E754 -:101F4000333EB0629E46ABC0CE6F10999DFF5832B3 -:101F5000AFE5C7D07E495BA608F097AB5A7E8AE70B -:101F60003B74C4DB4E9F9F2BBF87A3CE473DAF90F2 -:101F7000487E0E3AAFF035E72DB2139CB758A0E07B -:101F8000BDEB2E82E72DC82ACF569857779B40206D -:101F90003E9D3A8D95470826FC7D2633E47DA7E1DA -:101FA000F958CCCF0E5378429EB919F2BED3E03C1B -:101FB0000CBBA7939B390DF12F95C207F482763D98 -:101FC000BB9753BEC582F8543D8DC55B53BD06E437 -:101FD0003FE7881BCF09C8707F9F03F06C05E2675D -:101FE000D89A81F1E2D47CA6479ABD069DC9897929 -:101FF000DD88AF614ECDEB667CAF7BAE84F9F60336 -:10200000F774CE23B83FAB0BA666C3EF920CB9C9E9 -:10201000C0417C499533550A7E746F55DA37B2F664 -:10202000708F27CC8F2C61ED07EEF1FC3EAB6F1566 -:102030004278AF14D561947B2459FD92D919483F59 -:10204000BC722E97DCA69C2BE0D83D644B660F61DA -:10205000F536C607C9DD498A3C57DADF9BEA57E205 -:1020600005EC7C40BD4EB9EFA08B44C79F553AD3D9 -:10207000FE3E4784CED8F9922722E704909EDBAF3C -:1020800017310F52BD87B4CA6260E7CE4CB17435C8 -:10209000694C2AC3FB0AB709C65DEBF4FC644C5CCF -:1020A0003F8D7F6E345F19A2F295BB0D1ABB2C9346 -:1020B000C1D5167E9A9D4F335E965D96380EFA7C9A -:1020C000766C1C744776741C54DDDFAA8506E42BFD -:1020D000DD76E92DC897DA44410BF73A6AD7BD6936 -:1020E000E07E76BF19F452AD3D7828415ED4E931E7 -:1020F0004C3F7427F0439C1E93C8CF9520AE5C6A7A -:10210000FC5F8A8F33FEDB9BE03CE200BC54BDC920 -:10211000A48D7BC897E5F7E935FD10F9A0A75D20F0 -:10212000E6EB6859737E8EF241E48BF20AA3D8EE97 -:10213000003EFA43E48BADD4723546F1456A8E5EBB -:102140000DFCB8F74117FEDED55B0FBAF179CECCA6 -:1021500005F8B1F00CCF018DE993970DDF83FBCD2E -:10216000CF59C33970BF794A207516DC577E2E3D92 -:102170007C04CAB69FDEC1CA05E1A7E1BEF3FC9F9D -:10218000FEF27B58061A1B42975B12FC9E5C0CF712 -:10219000EE8756F6837E5FA63977A0B97F19CEC742 -:1021A000C27A322D068C53672AE792C964C53F0470 -:1021B00099694077D9A598576821D2AE7EA81FC6E5 -:1021C000E42EAD6F83FB7DDB0B9C2C6E4E181F2025 -:1021D000C394BC131292C11FD5EEB463FB01FD6E14 -:1021E0009751C95B63E3BFF72ABB37493D6F4D8801 -:1021F000381CEC468B4462CAEA7DE6441087C3FD76 -:10220000C3ED6ABC5A291FC8F48D2A89B25FDE9BD0 -:10221000727F31ACF3E3DD0FE4833EF55DE577E2F9 -:10222000B478F5D7B14C8EAC48FEDB1CE0E3EFF39D -:102230003637F80F9666FACAA0BF798EB6F1768A5D -:102240003F93C54AFC3DAA89F26C0EF88AFD6636BA -:102250003FFB642F37AF38F23B55E93E01FDF4C434 -:10226000D7CD83BE9D7EDC2B027C1A4CE11C81F60F -:10227000F381C33709FA3D3FF7C3FB308F70C87B4A -:1022800047E05ED4F7F45DD536C027A7720F36114C -:10229000F01C50DFD0113DCAEF6DB1F340059C1228 -:1022A000870D4E06B9700361780B65A8BF51B987D9 -:1022B0006EAAC8EE8D9D5AE6C4DF4F9C41C202E073 -:1022C000C3D4F7BD3602F471B3AF2CDE3D1BEA93E5 -:1022D00064E9A568FAB95E8A2A13C8B7882DFF9306 -:1022E0003BB6FCCF155F8E8C2ED7089E3B60DDAFD2 -:1022F000734CFEC81398FC11496005C8C7175AC42F -:102300007118577770329447BF3604F3A84816CB3C -:10231000BF1865CBF53338E46D867585A99CEF71E0 -:10232000C0EFB0B1FBC532DE376C85FB2088246D71 -:10233000063ADCAD77619E6986A5F6676DA8CF5831 -:102340004901F2296933E2B5D524C1EF961CB4B234 -:10235000FC89F6B53A8C37713693CE43BFE37B04E4 -:1023600026FFAD0BABA19E2FA71B426575AF9DFD50 -:10237000AE5BFB78A25F510AFBE67E1FF522AB093C -:10238000CF274CB6B9EE807ADE66C0FB2B0E5ACB57 -:102390007DCA7804FA7FCEBA10DB038FD653FAEDEC -:1023A0003533FF3A4FEDE3156C7CFCFD46FE1EA273 -:1023B0008C6F220628D7123C6FD06B17D97CEFD5D3 -:1023C000613C04EAAFC3F999B05EBDCF3272BEB7CB -:1023D00052C0DF21E088121F6BC3F2530A1F6CD773 -:1023E0008B07014FE58F0881FD986CBB8074C0EBB3 -:1023F0006C6EBC1FC843F21D1984F92CE8F77C866B -:102400001884FC7BFE1E1BDACDA0F940FD50F813AA -:10241000E95AF09072C53583E3798E021E8FE08809 -:1024200017F6E354492EF2A36775EF6DC0FC0A8BD3 -:10243000D7E8A6E3186E23B8BFEEE4F8E77AF7967C -:10244000303A1DBC7FE55990C7C1D92A2478B65BC4 -:102450002B2438A7D46B776779A3CA71F6C50F7898 -:1024600013D91753505702FBE19640BFF8FAFE68A4 -:10247000BD05D623E1BCF8216E09ECD07C1BED87AD -:10248000F27D775AFC759C52D61150EE2DD4D6FFB2 -:10249000BE4477A5D7A9C1BF6FB9CE8CD8755EC130 -:1024A0007986B82B304F3E87CECF12991FFD13EFA0 -:1024B00051BBC1A243FCBA41BD1FCA157B4E447B30 -:1024C0002E8490E51B81CF7C57C977AD4AFE17F467 -:1024D000E35F4FF57C906B7DC93FCC877CD3A92906 -:1024E0006D1D8C385ACECC037E6CE290EFDC4882B6 -:1024F0002BE1FDB94ADF33F63CE4FB7F2B190FF7E4 -:10250000E9FA46A6D2F2C7FAAEFCC54EE48B1781B3 -:102510002F5A4818E9EE06F8BD46A0BBE9FE0E2882 -:10252000D3315AF09E304A8740B72A1D0E9E3FA5F0 -:102530004BFAFDD0161B9EDFDA428278002F8B7497 -:1025400071CCDFD282728B48C323EBA4443BD5D439 -:1025500082EBF8799B8CF2E1BBF6270528DF5CEA79 -:10256000738CA5F39A35F613FCBD0792357724D802 -:102570009D74BEE963FF81F31D7CAEFEABF3C8FE24 -:102580005EF6E884B1B1F6A823E96F9807277136A3 -:1025900037A1FAE3807DAA37615E42E41C72B80E6F -:1025A000CF3B73295E9067EA39642DDF9D741DE38C -:1025B000BB1F2FB6B957E03D923BD02E6DBED9A2BE -:1025C0009E5346FDAB79A14E39A7CCA15C6922266A -:1025D000BC2769E0F72CE93F2E23F2BB34FBE0BCBB -:1025E00072D9579D5796F03CB4BC9CC5E907ECBB2B -:1025F0004691D9AFEAEF9BDC9BABFE0E05D3531699 -:10260000934BB26FE39C6346BD91A4E814FB95E93C -:102610000BDD13245126185F657AF86C03D6AF4F93 -:10262000F2E3EF05D5F15D88240D63EDCAFD0F7E61 -:1026300033FEAE98C15D087C428DB3EECEF7358F88 -:10264000A5FB34AFD893C3D1A5D41958FC94D2C1FB -:10265000E67EDA6A1A69790E7E6FEE7AD2F25B5DF7 -:102660001ED2C1BDF0FDACD19FB0DFA18BD0C17D2A -:10267000400726C2FC01372871A2D73FDEDE01FBEE -:102680007E8E23EC3C9A4B7B1ECDFBC3B12C9EA5CA -:10269000FC9E542CDF899AC7713D9B8783E7711E8E -:1026A0002BE3CD63101D123F8E4FF7B705CFCB6BD9 -:1026B000F0483B1F6EFFFD789E6FF3ED44E42780EA -:1026C0001CEF37033C870146E4C13A7DEB609DD99E -:1026D0009062099354ECEA41F3E62DB8AFB7CE1EF1 -:1026E000C8D399915D0E712236EE53C94DEBC0EF00 -:1026F000D17CBB1EF97BCDFE31A8A7F5C94611924E -:1027000020C964965FE3A6FF8379CD229E2976DAFD -:10271000CF4D620DDE0B77F3746D5E8EFC500B6D4A -:102720007F8B92E773EBCDFAA3D1FAE639FDA37A5A -:1027300080835C6769E127427F42A4BD73305C06F9 -:10274000DD4BD5C1F813A17A0EF4DF5E1140FE9483 -:10275000884FED1D3B709FDCC86F98EF73702CE2C3 -:10276000ED57E7FB6C57EEB17A4B1FC6FB51DF4EBE -:102770005FB079315DE7C81F15E3EF1B4FC9A87F34 -:102780006E2D2DFF78D3282CBF9D71FBD2F7A0FEB4 -:10279000E9422C4FD67D3207E8C1553EFB06F85D75 -:1027A000E8B7CCAC9FAC245F770DFD2EAB24771C33 -:1027B0005C6033D910C6EF6E1CDB7815F8632627F2 -:1027C000B1F2A1D23F8CC372AE521EF7FA2828BFD5 -:1027D000C57D32271E5F1CEDE2824554DE4E4E65FC -:1027E000DF4F1FF7FC10B0E32757B1F26877E5EA37 -:1027F0003CA8D77D3A279EBE7456E1AB93BE38D72E -:1028000091E680B030FBBDE2D73C1FE2EFCB78A968 -:10281000BC85FB06BC152C0EE7F5940AF07B6655CB -:102820001E56AEB6B465031F9CE1339441DC55B42B -:10283000383B44DA2EA5A2723CEC7B3555B721CE4D -:1028400049E9EB53A4AFAB3FC9B1A15EAAD297A8A7 -:10285000477A4F7CAFE4E76CDF62E981F6F705CA9F -:10286000CF6B62E5E7207AD5E0E1FF008B7F42C5C0 -:1028700000800000000000001F8B08000000000026 -:10288000000BED7D0B785445D2769F3973CB7D429A -:102890004248088409F74BC01912205C1D02645994 -:1028A000050C171514E1041002B98DE0EEA2EB9AA5 -:1028B0000901441777E38ACA2AE88080A0C80E0A73 -:1028C000C86A644764237EBA1AAFEBED631345E52B -:1028D0004E0CA2B89FFFFAD75B7D0E99338405BFDB -:1028E000CBF3ECF7FC3F3E3E9D3ADDE77475557542 -:1028F00055757575CF55CE4EE15FE60921FC891EF1 -:10290000473E95BD6D271A7B0BFEF74357592A6941 -:10291000427410FABF9521457413A2930870B95EF2 -:10292000D42A421562B2558BF70C12C26E6970E35D -:102930007917C5D3D745CF45BEC759D41F2F764A7F -:10294000FEA29F4053F1C395429CB67D922D5285C5 -:1029500008D00375383DF489EEA9D48F82A66ED9CC -:102960009595E04CA35FA1B85C69E857D62B757FBD -:10297000E5F7D739E8FD0CEEBF93A73DF093F8AC2F -:1029800057FC5CBA84F6B8A0F155A40BD73D5EBCE9 -:10299000DCB8324CEFA5D388EFF110B8D73CDE9A03 -:1029A0007CCFA264F5427C2DCEE65961FACE3491FB -:1029B000E851E9FDF79616B5F712B2D709BF0DE356 -:1029C0007D282E31904CCF2BE724041DF47C670723 -:1029D0006D00E8A15A022F36127CB3F0D9D16EB245 -:1029E000D577059EC70BF9BD0AFADE3D289D448FB9 -:1029F0003C898723A30D7A44E1193DFE56BE346419 -:102A0000A0CC107E86D3856795DAC67884D57F778B -:102A100023BDFF0B35A1F61E2A1FB2FA2C1BA8FFFF -:102A2000C0EBB6E06685C72380CFD24F12363AB2EC -:102A3000A9B40A8685C7C1F54B6E26FCE9BD254AB7 -:102A4000962740CF6B12FC8FE17BCDD556B1311567 -:102A5000DFF76D00FC7A757781F1458F27BDF6A70A -:102A6000424BA17AC5FF04DA05AA1DAECDD4EEDB38 -:102A7000D87FCCDDC874482AB265111C3369432362 -:102A8000C18ADDE9528869E973D2595ED7DE427C9A -:102A900020FE050A42DDE603EF475551E38AA40311 -:102AA0006192DD2A9FEB3D44B4F69063831E0105DD -:102AB0007269B728B38BE28926F877656BB9DE6354 -:102AC0001182F8D43DBFA30FE35EE2151EC80FD1FB -:102AD0004101DDC55E45A703C913EA15973FE0BA7A -:102AE000904F4B1BB36F45FD7E0BE14B6501F12B06 -:102AF00005EFC7A9F27DC5D32199FA2F4812FE1020 -:102B0000954B62DCB746D275B8C532BB28477ECF3D -:102B100049F49BADCF0603CF396B55A1E50A31C609 -:102B200039F7B1C3B9C0775887A28488FA7BFAE431 -:102B3000CCA1F75FB689E9F8BE677FEF9CE21C1E67 -:102B4000872F94C37C5C1102FEA3D33D010FF06B71 -:102B50005EE1017EAA68DEEC011E014716F089C91C -:102B6000F40404F0AC15B7E545E01F43F803BF3BA0 -:102B7000C6F922C76DE07D313CA3E97D313C2139A6 -:102B8000CEC154AFCBCD1C675C933200A51A7690B2 -:102B9000888A55D4AF33525F45C9B90830DF272E34 -:102BA0001D537498E42DD54E8F20A7B725043712F6 -:102BB000FE136F1BCDCF9529E7589EDBD17C745057 -:102BC0003966BC5B69243CDAE5BD6515FD21A78447 -:102BD00017F0B1360E9A4CF43DD6557B12FAC6C0AA -:102BE000FF2F839EF06A547FC8224A4239178E6FA6 -:102BF000B72E4F2ED16887DC5538E3C3EA800BE54A -:102C0000E562F8BFD8A1E839E88D934AC36054560D -:102C1000F676F17321B46C7C2FD9953D3A197AE29E -:102C20007BEA6F30F414FDA379D0B7BBF627BC77ED -:102C3000BD281A67A5F1B61BAFD9341AD738359E0F -:102C4000E773CB7685F5D5585F8C0574A93C680B86 -:102C500006095EFCAACA745ABC5E0D62D2B608CFE1 -:102C60005ACCC39680C305B97C286EC06F4750F913 -:102C7000D97A9BC7817E03BEB77B53BFF3743EF501 -:102C80005A6B116E832FF47F9F60AC70F76E85FBDB -:102C90006D6D6782FB873A9ADA5FB1B7ABA9DE1B2D -:102CA000EE6BAACF3D38D0040F6A18666A3FE48302 -:102CB00002133CB4F12A53FBE147A698E091CD37CB -:102CC00098DA5F796E8EA9BE34B1B07E298DB73E99 -:102CD0005D150AD9C9D1A2D4D4BE542DB30B62B1AB -:102CE000A8B57D0A79F4D37FCC4F75A615743EBB89 -:102CF000571129A48F16AC95F5C67B2575F7AD84C1 -:102D00008D5B18343F2F15D65618FAF793856F1E32 -:102D100088E8AF576AB12599CABF7B1252212F624A -:102D20008818F283CA7CF540DFB4BCAB7A1C42370A -:102D3000A5042F7E5A09DE437CEC297A3C04BE119F -:102D40009F45D00DBECAFA96756A3040FD7C5B5532 -:102D5000F2E6011BC10773D7422F2F20BD0CBDE542 -:102D60004837F333C66DE6675C6F333F133C667ECE -:102D700026E59BF999EC33F33365BC999FED8BCC39 -:102D8000FCEC30DDCCCF0CCDCCCFCC12333F3BFBB9 -:102D9000CDFCECB2D4CCCFECC022537DB4FC765B3E -:102DA000B5D854FF50DCBE2F34A2436A47D5E5A006 -:102DB000A9D7A3F676D3F7843AC1BE82E8559AA97B -:102DC0000AD5D52A0701FA4FCE6B3FCFAFF92407BA -:102DD0000F131FCE8AD5F599EE0BE5A162EF7D7634 -:102DE000CCCF1F2B0FC3BD663920B94BD2DAB06BE5 -:102DF0004669F099FC91D15ED20FD3BCDA582FE925 -:102E000093E9BDBECAB292DE1045C5BD60472EC76C -:102E10004FB10EFE117ECAA410DBE38BFA29EECE71 -:102E2000ADFA8F9DBF80057AF9C3793696DF65715B -:102E300003B6432E3FA8917279064D860A71830826 -:102E4000B11FF661EC239DD15F01115C198ACADACA -:102E50009B80FF4CE04FF6EC26D168C3C7C98EDAE1 -:102E600051160B37977375FFEC66115E89C17C9222 -:102E7000AACD075D2A54AD4B1AE8D1A9218BFDD804 -:102E8000D75380F445E96AE8EB77F027B57BC45B5C -:102E90005481EF8C71BA6F7DC00D3F80EC03F1451A -:102EA0004C4861BC85B5A8FF94FE6D7D6719DB8B2E -:102EB00017144D03BD03194E0FECAD480F3DA3D0C1 -:102EC000F8FAB6730FBC27B9B5FDAFBC867D21C734 -:102ED00086DA3FB92B96E9D5AFC3867618D78FED42 -:102EE000F76EAF6F39F036DA5F6ABC76BB67D1CF69 -:102EF000A8DF6645F8371212EFEA7CC974483F3103 -:102F0000534DF4D4806F71B3EADB131D6EEDA0FD59 -:102F10000EDF9F7EFD4F570256F6A7B817137EA708 -:102F20008B1B07035FA2FF83A82F7312FD6968271D -:102F30003B6BBD9220144592FEF447FFA236F197F9 -:102F4000F81CD0E9FF6207ED31C8F57E4B439607C8 -:102F50007CB4360C663EBAE4B84EDA255D2E468760 -:102F600082B8CE3341FF790E8747257A1628F2BB07 -:102F7000879366CFAA24BC6FB614A5855513DE4F80 -:102F8000A3BFB2F8E22E19C0DBA6E3ED6CAFD3DD30 -:102F90009D13E99F45E35D83EFC31FFE15F997D9A4 -:102FA000781EDE06F839E1E2F58BC322ED7273B5C7 -:102FB00012DC48F56FEA745E6FA37698974ED1AE37 -:102FC0009AF0BB66E48A0D68F76BCDC9786F169EE0 -:102FD000BE6BB2C10FC1FA3EF32E2558930DBFCA86 -:102FE000C3723F4F1465EDA276AF79B57AE0FFB7B3 -:102FF000B87F0CCAB6F0341EF42E7D67CFB20E9E99 -:103000007B008DB83CF9EF4D9A03FD4F9928EDCE2A -:10301000CD3ADDA689229EA7C6BA8926FCC90A6ACE -:10302000379DFEE2F59870F7077E33007B5BE7F58E -:103030004CD1C0E52CE1E2F5D4DBD51D7E761BB585 -:10304000996269CEB2AB98A7346FB399FEFF0EB9FF -:10305000F966DC5B8714D0FD0ED263E0F79AF69731 -:1030600025C79315494F9AB79FEBF3360F53EBFCE7 -:10307000FC19DB5ECA9FD5D5E39FCD1F528C891901 -:10308000E4AFFF44AA42F1D09944914AE36CE8AA24 -:1030900006B19E1AA7DE61DD45E36C207FC2817117 -:1030A000FB8A3B9EA6FAF1646FEF91FA352140F05E -:1030B000249F2AEE6139685CBE909EBF9E4FF5D476 -:1030C000FE956A919047F02B5E9BA786E470DC39F1 -:1030D000ED4012959348EF87A9F555E9F78D857F67 -:1030E00030BE13D991083B715577334C13A113F8B7 -:1030F00074B54EEF093966BB330976C768DF86DDE4 -:1031000021FDAA82BE710375FBD357F485FD79B901 -:103110006AAFF88CEC8B6187C608B9DEB8981DB22F -:10312000DA0B5206B23FEBB6637ECCC1FA04F476FA -:10313000691D2747CC97D2210AF3C94D86C742E3C0 -:103140007FF3A01A047DACBEF070D06FF18B0ACB78 -:10315000E9D503B5AC81C48753B6C6F9909B8611F7 -:10316000B94982FAFFB48A10E945F3B7CA297C3419 -:1031700017BEA872317CA42A9DCB63556E2E4F5486 -:10318000F5E6FA53551E86CB0716F5027E73567D7B -:1031900065859FEF167EF68F96D07A17FC5A92B00F -:1031A00058C236A70B4AF8AECEF5963882EF0A2AF7 -:1031B0001ED8C585BB822BE308AFD23A9F3D9EE067 -:1031C000259DDB8D8947FB071496FAF907FDF51855 -:1031D000EEA9773FBD6EA2681D6FF93985D7C9EF9B -:1031E0000FF20D46FF5F56E5335E47AB7C8C97AF21 -:1031F000AEA93E85BE77BC6A3CC3770D2C1A81719F -:10320000FBC457EC474CDCDE64859F31CEA7F8C089 -:10321000E7513E110C12BDD6DAA45D594B76057A02 -:103220006074FF29EB6F15D0FB5A21DEBFB6DDDCE1 -:1032300071F05727E517B3FF7AFDF782FD5743FE7C -:103240002F358FDCA2E15426F5773220E9D3B2EB9B -:103250001D865BAC441F1AF1BE5DA5A582FC83965A -:10326000736FCBE7D48EFDD4DDB2DD629B6CB77893 -:10327000F7AFDBF9002BA25944ACB78E131F85239F -:10328000027EFA17E95A847C1D6F17FAE623E8C913 -:103290007FB77836B29C6A9F3D0F3DBADCC57AE6AF -:1032A000942DF4C5C3D0B39DC9AE72BD3F6E0AC99B -:1032B00059855D682C7742EB07F878ACE0F800FAA6 -:1032C00073F792CF218F3D773CD4F597EED6FEB6BB -:1032D0003CFDFB96E7DDA80FF2FCDFB6637DC74738 -:1032E000082ADBB92216787D76EF7399185F2F557F -:1032F000F8559A67737FF3C7CC3F52FF4F906E41EA -:103300001CE3059BE7D45EE0B39EF0A1EF3C716F38 -:10331000F940E8B779BF5BD817EF07065A98AE4F68 -:103320003DB793ED3FC998670CE9A9FE6B5E5A96CD -:1033300041EDAF58D764E948A577935283B274FB47 -:10334000CEB7ABA9BF5C97C50F7F74C54037BF3FF1 -:1033500030B461A302BDFEFDE31D31CF72D67C55B2 -:10336000D0515CDC6F782AEB8396621E572D8F6BF1 -:1033700077DDD4776E14F04BC82301BEC5760FDB22 -:10338000291AB60DFCDED56D03DEDF6309B0FD0939 -:10339000CC917ECBC9A2C0EF31FE726A1F20B8DC8F -:1033A000DBD0741BD597277715883B1C092E998194 -:1033B0007A9ADE2ED0A762D703851D093E3942785E -:1033C00014EABF64F79942B66F9DC9F7C6F776D580 -:1033D000A4DD00FB96533048A5FA2235C4FD894A86 -:1033E000D95F65DD4EA7E0F5BC68A792224CAE1B05 -:1033F000FD7266047F2C8DBFC9B6D2F7DA937D04C7 -:10340000BE6BB30319FEF8567BFA9AB7680BEB2331 -:10341000D7FDC5F8CEE78417FCADCBB57F768B7FA3 -:1034200021E3932E5C81A1ADDFED6C092FC43848F8 -:10343000DA5D01FACE6657C30C6E47F06FB95F6D67 -:103440000FE65FA64A544F95F6BA06FDBAA6668106 -:103450005F97DBFF4371FF60BFABD292E871E4B5C9 -:10346000FA2DD3536A5E6C247E6DE8A0EDC7F88C0C -:10347000B8A4B07ADCD0E3810EBE97F1BCCC49761B -:10348000D5C2F6F415C0861F7CDE0F735E9E3DDD4F -:10349000D9C1F717A6E365B677EB7186F37AF5EC39 -:1034A00040935EAD49B00B2F3DAF59E3E0B884388F -:1034B0006029ABA7F5C7487CC2D2FABD2509033BFA -:1034C00040DFD708D126BDF6D17CD688B661B203DD -:1034D0001ACDEB51E79A558DE77DC3CB4979D09F43 -:1034E000C297E0461CC022B4087B17FD1DE2D70935 -:1034F000F06BB488135A84DDF489643BE6AD886FC1 -:103500007799E30E3F6EB627FB1F8F1CF788960F47 -:10351000E2E052113D3AA0BCD8B85ED4C7F5278C82 -:103520008BCA79438AFE01FC467EEDB2627C23ADF4 -:1035300093B3BC5D196F6B2EF53BEA6B8B19EFEF04 -:10354000634DF0E5E2FF3385166A90E3AFEC1C179C -:10355000AC83EDA771D42DCC0962BEEFB18B801383 -:10356000EB982976F66BEB1202097D51AFB84288D1 -:1035700027BD606B9821D739C2B5D90BF97DE3110E -:10358000C8FF0D2D7605F1A98E0EF105FC25A126AB -:1035900089CDA911DF6FEFE2B885EACC5C8FB86204 -:1035A000DD50FDF90C3B3FAFB109B67B8119B18C01 -:1035B000D79A64FF6BFDA97E4DB58C677E2082ABE8 -:1035C000BAA2FE0E95EDC070CBC6CD0F621D333989 -:1035D0009DEDC69AE4706625DA2FECEB09903CEC81 -:1035E000F987CAF6608DD797D12E1E7A50C605D7B7 -:1035F0004CF665C4A6A24CB360BC1D49CFF3F36C76 -:103600006A47E54736D9EE439D6F44E90CE8DB870E -:10361000E7F510D03F57E7168CCC65FF47C63BAFA8 -:10362000952C10336E7E80E3AD0F6B6A50CD065D36 -:103630007E736F4F826F98A3BA1077BBB62486E370 -:10364000A1D76A7A3C749A390E7B75AE6F642EF1FD -:10365000BF3CD4A7DBE108399E71738F9F433F7C49 -:103660002A645CFAD769DA38B4137BBDDC6E2F3973 -:103670002B3FC04E38DD03D87F9E67AC1BC3734120 -:10368000DF7DCD4EF64B2F260F42789C7DE9FB0F58 -:103690005A4408F2DC05FC4961B90DC06F0B846225 -:1036A000580EC64F71727CBD25DEC2FB0C8F11BF58 -:1036B00060DF02BBE53E03294AE6DF83FB3AB35DE8 -:1036C0009AADEBB19AE9B1FC5ECD4E5BD0023E2BD8 -:1036D000C16D5BF0DE8B316C3FCBF4386FD9F3FDFD -:1036E000580EF6D87DD92BD0EF3E07F3B92CD19DDB -:1036F000C4F5FF962250FF821E772E8B0DF7443CB7 -:10370000BB5B7B6D3EE84172C771F932BB7C7E28A2 -:1037100058C0FB1A82FC95B851040B1FEF4F04C828 -:10372000AFD9EC91FC035E5A4DE78DC057233CC0E6 -:103730006771BB8C971FA2B98CF11DF27766BC94A0 -:1037400029E3336EA6FACF16C7711CF55051FD5907 -:10375000F80187D2559EF7A4A1EE1D42F564731BB4 -:10376000EE21B872E1A76F0CA1A715351F66ED75A4 -:10377000B7D27DE6B2F20982E460E6A23B2689C4B4 -:103780008BCFD799650EAC115BE7B7B063B12661FB -:10379000D2EB6B727D3590C350AEB612E3AFCC2145 -:1037A000FF99E4E894BDE151C4498EBAB5BB517F9D -:1037B000FA8F5F6EC173616DEEC9F2E16C2C449CAF -:1037C000A5CC22E344A3F3B4DFE6B29D4D64FE55DD -:1037D000861CCCBFB89C06A917EFB83C7B70AC6EBA -:1037E000F31E85FA298DADABE0520D0E80BD3AAEC9 -:1037F0008413956E4C5F0DF3EA842B9C08FE6816CB -:10380000E9BF956E8D1EA7DC4F2CC51FBCEE0CD9F1 -:1038100087135E8B48F53EECC2737B6BFBEC563E28 -:10382000D277988F22FE9359BF44FB6D7D06DE430D -:10383000742F4DDEFB9BE1D917D22F1A36C67321A8 -:103840003EFA3C290A27629E1C57E43C3921A4FE1B -:103850000A6C8DD1D7FF128F537FECC078A4E9F3A7 -:10386000E894A2B7DBE690ED48F6E0CF94FE41CABB -:10387000DD8336CF5AB9AF66657D599A22E152474A -:10388000BA0BFE5647356089855C56099E2F841B0E -:10389000CFCBE33B32F97D43AF892221A0D74A77D2 -:1038A000646C947E9DBE0EC600A8FDA2A7647F80B6 -:1038B000A1FF8F3D99A9F72FE753345FA3E9F07E6D -:1038C000AE8C5BD5240CEEF0CFE295BDD33F5E0706 -:1038D00015F4A04DCEEB4082B423E4B7A44FEE8F95 -:1038E000FD06BBE9BBA712ECB37DF1D877303F37BB -:1038F000BEF769AE5C477689E27B47B5F925F84BA0 -:10390000E271C17A221A8FA3788FF07DF2C9F37C1D -:103910005625DF49900CF97233FD840DFCF9D06E09 -:10392000F0F1D64CD2EBA5A055D7563AEEF16A99F4 -:10393000B023A7F47DA33DC904E7C0DF92F6C3809E -:103940000D7E44CBE9B20FE767629F2A2D4FAE0F81 -:103950006A6212078824945941E8816AA22BEAC955 -:103960000EF27EDCB1AAF1F71FB6B58EE78B2A9F67 -:103970008F4CD07978FE5AAF13F373C13AAF734EC0 -:10398000043F6AB6E61E7413DD4F6CB562274BD454 -:103990005883BF19968AE76A2820B8DE097A9F887B -:1039A000DFFF06DACD5F973C508DD04F0BD68EF3FC -:1039B000CD8BE043BFAD66BEF40F99E12BF69A6163 -:1039C000377832E8C7BFE70D9BE1DC8366F8B9FCC6 -:1039D00066F507D8A7784BD0A9A06C517F807E0FE1 -:1039E000AA41AC33BADC51347522C147D6CDF5803B -:1039F000CD0BDE5B3618FC3BB9FBAE3DE5F4DE914A -:103A000076160FD657C745E8FD89C48FF975F7D9E3 -:103A1000AD6E8CD72CE77B2CBADC3E29E37A0B8386 -:103A2000E6FA0BF543B51E4712BD23E52A9AFFD4EB -:103A3000EF753E42AC6CE9D4FBE1FF944C2081274A -:103A4000FC8686EEB38BF8CBE927C072634D14E198 -:103A500074C2AFE9AE048EA70C5B3A467C46DF2BFE -:103A6000B7BA0663BF7D8E5371617FDB889337EDF4 -:103A7000CCA8803DDDECB278904CE1CAF7D767E680 -:103A8000613D21422E0FE2F477AEC43ABEC49FC816 -:103A9000F45928821C679FB3DCD1AA1FE9FF79ABD8 -:103AA000A3F05913514FE32859676EBF68D30F8EA7 -:103AB00048D858970EABDBA062BC37EB78AB0199C6 -:103AC00037304C8F3F1C4653B2377FEB56549C87A0 -:103AD000F66B46CB7AAB53B7B33E5EE795C7DBDDFB -:103AE000ACCFAC6FADE4FD1A9A87B00F0713E6FFB9 -:103AF0001CFAEE8C53B81C9C47A231FC458A5C171B -:103B0000F23E04B53FB34E61BB5E9E22E1F2C79523 -:103B10002062BAE508C2027E42C65DCB747A404E8E -:103B20007C11E301BF2261516BC4BBC3BCFEADF08D -:103B30000B0FFC00417CF499F6BDC3F623B0B30132 -:103B400025F4B017FE9EF93B957B7F7044C2E7E3F6 -:103B5000C5C4BA6AFE7E90E9A8DA850F7A5CBD33E7 -:103B600096FD763200B1B0EF36DDBF16AB82ED6167 -:103B7000AFD6C05E51B942F7C303F7497BB526D92A -:103B8000D7D385FAFB323CA0C30D8ABEBE855F9FAA -:103B90000CFF7A3FF7DBACB85C1B93D15E0462523A -:103BA000D9BF96EB847FA86CEF9AC97FC7FEFC1A39 -:103BB0006F280C7CD63C90CDFEFA0B86DDBB3746D9 -:103BC000FAF317FADDEC5F89FBA5FFF891E0BEC5BB -:103BD0009EEEDA863C92F3B96A116F2ECD5BE6CB8E -:103BE000C077E74DB15BC00F517279FB1C9BF53C70 -:103BF00098661A2FE2EF8795A27A4B841FFC4C9EA1 -:103C0000B40F830B7C5BF4761EB49B67798BE93031 -:103C1000CF225C58CF6F3EA70A2BC19B6B1DC1659D -:103C2000F4CABCAEBE9E8B73F09E8C371DF24A7DEB -:103C30001F97277C41E87FFDBB2FE4594CA5182B2B -:103C4000E32C8763A41CCE1445851CEF770B53FE31 -:103C50008551BE9227EDDE3C7B83199F4F5E66BE89 -:103C600090CD732D837C8F957EC7E15B14B6E734CE -:103C70009E9E2E8207FF2E86E38587757B64D097F4 -:103C8000E487F3220CBD95ACCBCB9ABB83DB628877 -:103C9000DEF7D9486EC037921BE4F910DFD92F5CEC -:103CA00033238DF97E83CE57716F02F36DB8C52231 -:103CB000E97C6F06D399DA8BBFE3BD716EE9CF5F04 -:103CC000E63A8CF8FE37F03D7A3D66F05B58838328 -:103CD000FED97E4CF9734FEF0990FC2FFAC303898C -:103CE00082DA1DB5D6A679E8FDB2CD2B127D541E21 -:103CF000B106125DD4FFD1A03A3ED806BD3B0F52AB -:103D0000F4F5902F11797415BA1E3FF6E47FACBC20 -:103D10009DF0FC4611CDD08F15BBBE5B793B8DAFBE -:103D2000DEE76C863E3D626D2C84DE5D581CEFAF95 -:103D3000F660FE9AE3F28B9E7820CDCDF40E645AA5 -:103D4000D279FE67E2BD8A4D360FD67515EFAA1EF1 -:103D500037E6BD685E09FCA2DFAF0C7D6607FD5D3E -:103D600016D1DC69781BF5A291F57CE5AE5F7FA5E5 -:103D700026A23CFA11D6179551FB0125FA7E49F48B -:103D8000BE40C2A084D42F10F0D6F7A3893E9C97E2 -:103D90001020BC7AB0B8C83872CDB6870634C16F6F -:103DA000D8F45AA292D3BA1F60ECA3B484E63E863C -:103DB000B8EAC5E6E5A9A838B0A1C7DC7B1599B477 -:103DC0005827CB325B3811FE7ED9061BEB91B2A788 -:103DD0001FDFF230E4ED4387A7871BF0193BF44166 -:103DE00099E26B5658BF8B4465702BBF4A9FFEBC4F -:103DF000F011F8D719AA9840FC5AF4EC59D9DE27EB -:103E00009A63A87DE9CEA642AC0FCAB478BFB30DC1 -:103E10007E8D09BD646F8C6F835FA1A6428E536D4A -:103E2000FB96F971749F223A645FF87EC986CFEDE4 -:103E300042AE0F9A539225BD60EF2A436AB13DE925 -:103E4000C2F6F4FD49CFE771BD0BEB954BF1F124C0 -:103E500068C1F29E2090C758F291233801FCDDB171 -:103E60002411F94F5F5AFD52EED7AF48839F576236 -:103E70000BA4B9B894CF4B1EFD19CBE302C59FE646 -:103E8000E2BC2DD2AFF93CDE0C8CF3E675D7F238EC -:103E9000E70B8DE5B164BD5A14A4F2AC558CDFD9A3 -:103EA000C6BC796890D4770E71CB00CC93B3F4255F -:103EB000D8F12FF5757DE06DB99E7688294991FB83 -:103EC000432583A45E0C88E021D881CA061BC7293C -:103ED000D4B7CE16E23BB7665BFDC8DFA0F107742E -:103EE0007A293FC8F58B1B790C95F88BECE998B7CC -:103EF000C67568CCC1F75BEC3751BF5F639DE83195 -:103F0000BDC774FB72A32356B982CAB4B6F3BEEA26 -:103F1000CFCF7FF1B68890A7CAAD5FB23C89745508 -:103F200024A54B18FB11AE39F1FE24A2DBD7EF7E9E -:103F30006647FC3B906A113D806FC3E70C0B4F7BDB -:103F400037DA1BDFAFDCEB10E1C879BBE9F3A87906 -:103F50006DAE17C2CFF4AC14496ED8EF2FEDCD85FE -:103F60002FA01FEA7733F5339FFCAFB0C9BF6A2E8D -:103F70007C04FA64AFDDC5F107F23FC31172737EB2 -:103F8000BF53DFE75BA0EB83683A44EB87FBA2F407 -:103F900083F1BE58D7F6FE52AB5E08303DCB6C22A3 -:103FA000003FA3EC4307DB8FB2A7E57C14A44F7B53 -:103FB000D0FC38BEFDE5F76FC07A36644B9DC0BDBE -:103FC0009AF56FC9339FF3B8E612FD633CD0BFDFAB -:103FD000DAB1FE4D1F239A1D84FFF1D55E3BE4FE4E -:103FE00082794CCFDB9CC7AB15D66FFF55BD4BF428 -:103FF000E6FCC04BCDD70517D1BB7551743D2B7274 -:1040000092905E2D5CC55D78FF208ABE065DA3F5AB -:10401000E8B441EE36F528FD7B5F44D051884696E2 -:10402000E36F482F625FAD62D3776CD788ACCDC8A1 -:1040300027AF087EC5F00AD835865F9A8678E58571 -:10404000E336D333BAFE4EC818FD5FF4471BFB05B9 -:104050006575326F91DEE3754725E2F5DCBAB63E51 -:104060003335120E46C1A1A8F6BE28B828AABD163F -:1040700005FB4DEDCBF6BECCEB2CC2DBD4CEB1F4C0 -:104080006A5E875CE85704791C95BBBEB207201FA7 -:104090009D9AEDD08BB665229040EF37BFA8B2DF76 -:1040A0007BDADD9C083F65458CF4E34EBB7438D960 -:1040B00080C5EC62C2E37460800B7902CD3132DEE0 -:1040C00072BAA839313962DDDE54A726BAA97D63F8 -:1040D000508C6F3BCFA586E753A3B858BDF4E7C615 -:1040E000A9DFEF90F99F5681FCD8C6EA6F77209E32 -:1040F0007498D64FF05FE6555F9F88FD97D375DDC6 -:10410000AE998E75E0ABAA9069D63E3BF220E64AA6 -:10411000568A2322F0E0081A9F9A9057FF02D6573A -:104120002428D8FF9CB73ACABF11454961ACA7D72C -:1041300044E72B04EDF06F16909D853E2A5967AE3B -:104140005F54779CE7CBA2A8F9A2E971E3E8F9D222 -:1041500075B09EB7E0155E3D7F92F3F44E1F545943 -:10416000BE5A96DBC4CA5499278BFC92963A997F23 -:10417000D3B257C222A0E7F5E8F3D6A0DB09CCA75B -:104180005E17F75B4EECFEF7C1BF84FCECF97800DC -:10419000F6894FECF9B0E70B809FFB6BD6C7E2C204 -:1041A000F663F67D378BF1DAE710C0EBF4BE57B259 -:1041B000E06F9C7EDEC1F905A79739D85F0FEC4B05 -:1041C000E0B8C5E9CED21FAE79F1DB018D6C8F97D7 -:1041D000331F270EB64BBFAAEE3FD83EB6D439DC0C -:1041E0001847E5BE389E5795CFC7F0BEDAE917BF2E -:1041F0001D1C198FFBAF8EC7D8573F9D20A63F03CC -:10420000F9D5FDFFCA17863E5E8DF5F2AE97EC73C9 -:104210009127F2A7FF3300FAF5F4332FB1FE3D6585 -:104220006B7C14B1CDE97B321EB10D455C8F3ED65F -:104230005188AFF6CCB811F3E742BA483A9C263A17 -:10424000605C449712F8E517A347E5BF2C3DBE9A82 -:1042500025F5DC10817D9F56BA283EF93C81E35557 -:10426000347EF97CDFB703A0872E35DE7BFF1F1B72 -:10427000EF53186FFB7FC5F14A79CF1DEC66FCA2A6 -:10428000E5FE42B97EEEE70CEF48F030BE9739DF2D -:104290005FFB971DFFFF0CBF8FFECB8EF752FC7E9E -:1042A00055E777820BFBA0A75FFC3F59E2478CDB09 -:1042B00039E45F755EFFF3711BFE7C81EA39E8A586 -:1042C000F6AF89D0BB9E6CF64ADAF447060D518CE6 -:1042D000B838AFA7C6E02F37DA0F5C8E734C01F207 -:1042E00027B08EA9891F78E02D825F213F41E57DAF -:1042F00059194F7A25DD1B94F15DBF403CABE0AF0F -:1043000073197EDDFB9303C82B2954653CE6E56AEF -:10431000CFA6061AC7CBC91637CE958DED34F7F068 -:104320004EAA7775545D589FD574CA75BA23F01B91 -:104330001B6F5E675D1DB54EFAA9DB5C3F5E3C936B -:104340008AFDBAF1393681F33685681FB1AE4C1952 -:1043500022CFF7FC54D42E77C5FF783ACDD5E94467 -:1043600074E17D9B402755CF7333D34D806EA9A058 -:104370004B2EFBEF01E139F016C156DDBF12FAFEFC -:1043800063A133610BD6D10E51100E127CD66DE5B0 -:10439000F3935641EB61394E5E4747D34DE8EB6AE4 -:1043A000ABCE82B19DC68441673CEF926E7A9FC7C7 -:1043B0001D4DE71F4FD7FD9D9680AEE9099E20E475 -:1043C000A2D3B3A988B3D6109D15A5959E069DA22C -:1043D000E99E8FCDF541ADF4EE64F55A31CF46EA52 -:1043E000FEFC586BB2843B35A8F25C5E90DB8FF923 -:1043F000DA63853F323A3E99F343857E6E42D5F7C4 -:10440000C39161C778D0FA1479B693ADDA92219C42 -:104410005FEF120558B7168810E2B74ADD2BDF614F -:104420007D84F32245BCAF59FF01E05E382F86FC46 -:104430008E75D613A6F36E51E72526E5EF1C0D7E8B -:10444000CD594ACF10C772B9EB311F8BEF77B8C186 -:10445000BF4ED606AEA7B596AB7A2876AB430CC74F -:10446000CE234F3F03ED5E19CDED970897928C74E4 -:10447000BB109F778C77C97C355ABC7E03D8BE3C75 -:10448000C15D23E32602F2D41D65577C5FB64F1F42 -:104490004BDF43BE9BD0D85F8EEDCE9120D1552906 -:1044A000E2FDF72EDD645E44F30A07AF778AEFEA98 -:1044B000DC137A694281396EFDC510B9AF69945336 -:1044C000F3DD729FC2E249C777E62CEFC3EB2F35CD -:1044D000B6A87C37E8B8238EE5BC78E54D1307D144 -:1044E000F78B77A47880E6B1493B07CBF6337EF6AD -:1044F0001E3DD7B6C6F0F39FE76B8F0F419E81E25A -:104500009EB59B1ECCB9F6657B3A75A185269F4466 -:10451000DC715260E71BD8E79C344DE5F69384CC00 -:104520002B15CBE378DF7C62E02B6B3A7D6F222D7D -:104530006A50DF14E3CABA85F02FD6E3CD7FD0E707 -:10454000A11A2BB467E28157E79E5DE9F94421F394 -:104550009BA3E7ED71BD7D97311E772AE8A3C4B810 -:10456000701ED6688FEFE0BB5FE9F4785E2F0D9880 -:10457000E8CA71F179AB1C4DDD1251DAC2BDA8EC6D -:1045800033AC601FE46D425751B816DFBD4D151BAB -:1045900019DFE6628EB327F476830F9AD0CF77AE19 -:1045A000E9C1FB394DA305CB4FD37DD906BF393FB8 -:1045B000C958CF358DF6D4237FAB79B4D3B3D1832B -:1045C000FC9650187194436BE57E4D979A7077E88E -:1045D000D966AFDC07F97C69AE1B7272F303531323 -:1045E000A13FE7AE51C30EC8FB6A73DE9270793803 -:1045F0000F7C6EED683BD6AFF3E27D768CEB4CBE64 -:10460000F611F8659C73EC0B9C708EA7B6F875AC30 -:10461000FBD4449ACF987F567722D6D5D1794F953F -:104620007A7E9301FF3A4DFB0CDF9B93E4DE01F9A8 -:10463000F87469378EAB76CBD7CF575AC3DD419F1D -:1046400047692E607E3E3844CADF8476AE9EF12CE8 -:10465000BF3102E36AB2B97A429E9B56C45840A762 -:1046600009CBA41CDF6D95F32BE8735B02F4FEB35A -:10467000789FBE3BB3DA5AB481FAE9E414D6847663 -:10468000B4CE1DA63D0FFE4C0C541FC2FA7AAE6E7E -:10469000AFE6AE96E7C1BA8C917C15D686B129F407 -:1046A000FCC8E6EC81C87337E466FEB082BF0F89B0 -:1046B000E0FF84025F617BFACE048BBB057A78DE73 -:1046C00034E5A56E520E7E18C2EBF93A9EE72DA492 -:1046D000271CC93807D82061E4AB426FD43EE4738D -:1046E00046ACDBED6217D7DBE7C97CD42EF670351C -:1046F000E75FDD225CCB08DE427E84D526C4D62A65 -:1047000027974F5691BEEB21C4F6AA74867754B909 -:10471000B90C55F5E6E7CF547918DE5595CFF09EE4 -:104720002A1FC37BABC673F97C55113F8FD63F73ED -:10473000E3E7B33E71F5245E0FBD506E66B9092FF5 -:10474000E81FA770DD85F34742EABBE4DE52FF08AD -:104750005D1F75ED23EF03E8962FF9615B35DAC233 -:10476000E737AD8D1990BB71EA89A79F43BCA3249D -:104770009EF3B25A4423CF931661E173D9D03F0E12 -:1047800092BB2E778ECF8ECC3BBFB14411D608F9A9 -:10479000BAC91F23AC11F669F6D264133C73E93B26 -:1047A0007FEE40DFBFB1AB96974F781CBAF38BF525 -:1047B0007FA5E78FDD79AC873CA7FBFD86C8B84BAA -:1047C0008B6896B0D5C9FBF18FDD9E9196A2DFD3A1 -:1047D000007E19E7A4BBD89B8F3E8179B842F52CA7 -:1047E00023F823F087E8F989CE9FE215DD56FE0213 -:1047F000F3DAE7F428F49D43B7F72BCCA7F68FE95B -:10480000FB51179CAB4E97F6EB53D8AF6469CF0AB8 -:10481000A047C3D26E7DFAABB4C05DA8BF25D183DB -:10482000130DDAAA0E810504AFF6DA3D2AE27A7595 -:1048300082EF5D201A4BBF226033DBB1C64EC988C0 -:104840005B1AE79EE3F2824E3E77451D613F664E5E -:10485000EFFD22037AA9567161BF06E7349DEDA0F2 -:10486000DF14DE1F451ED034B29737E5AB3C3F7FE7 -:104870003FC4CAE559D873A26B8CF0707C66DE6ABF -:104880006A0FFD58EBB5CF8FD0BF73F4E7737B5B36 -:10489000B8349E97E17BD83F5CE59D0EF9E888FA35 -:1048A0001C9403A703BF8EF185562562FF777EBE59 -:1048B00055EF5FF67B169392E07B7A77B5DF9CC36A -:1048C000E7ADD86E19FDCCE93D706557D8EBD5A39F -:1048D000411D5163F3A4A752BBCAF3DF71497FC4E2 -:1048E00029F3B3CB2E62378C38DD11FC29CF3DF292 -:1048F0007817ED786A07CE3D2CFAD8C1F66BD11542 -:10490000D22E899CE0E0A91CD034C7C5C73E75B241 -:10491000FE2EC2E724CE2521DEBFEB333BF24369F6 -:10492000DAF8933200AB4DC8338D8ECF1ED8F171BB -:10493000629B71F15DEAE5C5C595EF1361178CF1D6 -:104940008C7BF16C1AFCAC4AE51CEF3355BEB822E7 -:10495000ADADFCB0E8B8F8F9F8B958FD15CED757A9 -:10496000DE71A4CDF879741CF0F1FCE8FD88F80242 -:10497000E889B307D520F6D35B823D92441BFD1B2B -:10498000F1F3CAB5F4520AE6A53B09FB61A72FE291 -:10499000971FC997F6FDA41E6F3FBD5DE5F5D2E9EF -:1049A000ED0941F8A715DBEFAFC73E65C52685DDEC -:1049B000F372D1C0F4223A0A67A41D43BE5B0A9C7D -:1049C0006B7712F495815FE953097EC8D5C290E2F6 -:1049D000DB4C78B438DD49ED23F03800B96A8F3C00 -:1049E000C0D060A6AB8EF7F3BA1E34DA2DACBB9FF5 -:1049F000E3D2D4EE14FB3B7F88139C27289ADF0078 -:104A00007EC7D7E57AB0AFB830B4B382F33BB6C750 -:104A1000B9108738A6E7391BDF69D0FB6BC897FE52 -:104A2000C9717DFFEEF80E79DE1C78623E1D53CC15 -:104A3000F982EFEBEFBD9F2FF7CFEEC05EE2A0D67D -:104A4000F60B434D89DDA9FD977BDFE1B2516FBFC6 -:104A500030BE6100ECEE97BBE2783FFECB5D8F1479 -:104A600022CE7C32343A15F26F7CFF54BE8DDB9F30 -:104A70005CA78E07BD4450E6D99483AEB99178A661 -:104A80006C086447CE33996F747CD7B389969C5673 -:104A90003E963BFD4E9CF7ACDC754B11E4B8DE2630 -:104AA000E969DF35398063CC95755E01F9E5799662 -:104AB000C1ED575922DA396C1EF68B6D7B8B7D6800 -:104AC0006FC4A117EFB6F179C15957B8AFBF11F351 -:104AD000F0351BF361711FF7F59C8FD4A072FEF2C5 -:104AE000E26C1186FFB1E4B6840DD80F33F09D95CA -:104AF0002BE77BD92A45F8685C6541790F4747E287 -:104B00007B00394AE98D83903FD9941DBCBB672A4D -:104B10009FDF0DE3FE1623CF94E6714F9C73EC30BC -:104B2000B41D8FFBC119856CEF0ED945007A21F0B9 -:104B30008CCCC329EB2AF3A31F86DCA3BF76E19EAE -:104B40002934DE133A5FCBA6847B222FA3EC990C89 -:104B5000CECB386197FBA5788EFDE2B281F47E3C26 -:104B6000DFCFA119EF2747C851D91C8F1BEDD47691 -:104B70001EB7371EF8BA4EB1DFBA3B41C06FB53C25 -:104B800097A0E757C5701EB9F15EBFA152EE8C7BAE -:104B90003FC40D321FF3419BCC577D707306DF7706 -:104BA00061B47FD0A6CD80FF8471C05F5F68AFED38 -:104BB000897D1703DF8589B58CE7095DCE17C6D6D9 -:104BC000CABC70FD1C31DA036ED2F3D89BB73938FA -:104BD0007FE55846C337C0F7D8B63EC88101BDE768 -:104BE000EFE57AF21F899F8B9E7484517F749B8CB2 -:104BF0005B1FB505BF811E3EBA3E85CF471D6D1FA9 -:104C00001CCCF9018ACB02FFECA8A2C33617FB9596 -:104C10005DEC0453FBD4586141FECEF8296B67214B -:104C2000BFA1659303E2298E6D79288DD735C29D8A -:104C3000C47936075501BE1D7BF23FFA44FA2F4670 -:104C4000B9689339EFAE295B98EEC9B97AA89C97F9 -:104C500057EBF4BD66A8B453E571A107BBF2F82485 -:104C6000BD893FBCBEA3199AC0F9134FF750A037B6 -:104C70001E16C19F7F9CC7AB6C37F2E6CB9ED9F660 -:104C800006F66B8F594403FC0FE5CEAD3FC77D1B85 -:104C9000A9BF49623B24C4261EDF51973CA74A1393 -:104CA00096C7BFB08384174DDDDA13703DD91C85DC -:104CB000E6D7228BC2FD2FDAD39FF3ED881F16DED5 -:104CC00027DBA9EAF8904F09FA6D91F9CA13DA05C2 -:104CD000B7C0DF6B5EDF4DE0FCFA3875DD00F0EF4A -:104CE000CCA6380BE4A9FCAEE149C341B737550166 -:104CF000FFE38CD5D321328E104DAFE83CF0E0506D -:104D0000A99FCA700F0ECDABD23DEBF9BE9052C831 -:104D100025E8F2A4C2FBD8A52B873FC472FA864DC2 -:104D2000F4A07E4F84EE4F8CE4CF3D43A55F70FE30 -:104D30003B760FB72FA5F6F2FDD71219CF2D36CE41 -:104D40006B89E6EB65BFFFA47A59EF9F1F7F88FC54 -:104D5000820117D2E18C68F8F9C7F4FDAFB7C7F04C -:104D60007A9056007C8EEDB82D341FE33EFE740C15 -:104D7000EBAFE3C9524F7C49FA34D00B785CFD5B52 -:104D800096D3B7A7F279BF0541F3778D7E7F3B5469 -:104D9000EAF1F2144F12D69DE56F4A7D48FCBA86BF -:104DA000DF7FD3C6EF478FA3427FEFFC3C7D3A8E77 -:104DB000E5E27847C98FE33B7AB17D6A4A76099686 -:104DC0009B6D36596F0B65C10F3EFE742F6F4DC43E -:104DD000778F2787B25C11CF9B6CC19543A43E6D42 -:104DE000C6BA588449D50E467E91603D6FBC57EADD -:104DF0005CDD003F05F9BD8307721976B4BB304F07 -:104E000077423BB99EFC529F779CB39AA6E793B337 -:104E1000DF13B2438F6BBA7F58B63D3ACF57D6D720 -:104E20001BEFD3BC4B35F28A2DC037644FE7788334 -:104E3000703F43F8962EBF6521F2C74BFDF7DD08A2 -:104E4000FFA9D42AC6DB09AF2645653C9A62C4ECAB -:104E500029F02323FB89F0DFDE6AED47E0DEB6327E -:104E6000FC41F3E0BDA16E293FB0A4F4BDB2E5CA98 -:104E70006A7CDFD02F1C284C6BA513F25A91DFD32C -:104E8000345AAFBFC8B89B6CB23E7ADC063E478747 -:104E9000CABCA0A66CF76F47802F7F51F97CD799C9 -:104EA000EF7393DAB5E1A7B5DA7B7B6B9E2DE1FF5B -:104EB0000D7C6BFACEF3BABE2B25FC8067CF75E66E -:104EC000BCF2DE9BCC70DFED66386797191E506729 -:104ED000863D07CCF021BD5FACB3710E19EB6C942D -:104EE0005867BB1D729D0D18EB6C945867E339D65B -:104EF000D980B1CE068C75366083DE586F03C67AD2 -:104F00001BF5BD86497D2E7CE134E46B5658649ECA -:104F10002FF1C3C7E79866D84DE7524EBF28CFA5FB -:104F2000903C487DBF309EE7C9C36831147649CEB6 -:104F3000A7D4E71DC165F4DE38B7963C0C7662ED68 -:104F400057F32177155D1B39EFB569C52B3DEFA7E9 -:104F5000768D4A82805F51B1F6AB59F0A33AB8B56D -:104F60000EC3089FCAD8869543386E1F66FDD15878 -:104F7000ED7EF34AC9478EBF14ABB8F982EA4BDA2B -:104F8000B5993F149D772E569BF3CC2F95771E2D08 -:104F900007861FF898AD39C3C5EBF4118F22CEBB3D -:104FA000584970619DFE598C5886FB8002AFCA3CFF -:104FB000B59683369937B05AD92822FC93413ABD29 -:104FC0000D78EEB95CF6C7CFC3AB158BB84288EE4F -:104FD0005A7313D6D7674A2CEC779F2929286C0F70 -:104FE000FF8FD6659813B86F2B125FDCB715293F7A -:104FF000B86FCB7C6EA2A3A93DEEDB329F9BE86B22 -:10500000AA9FBA3AD7543FAF68B8A9BEBB90F82D53 -:105010005928F19B47F6C197027819E72D2E01EF29 -:10502000C84FC952022B592F6F50F8DCB87BE9AA40 -:1050300042D0E5048933E20886DCCCD5ED8BB0069E -:10504000EC90BBB3A9B2FEA8D2F0C55DF4DE496F07 -:10505000ED165C8572D2B2EEC1116EE4D76FC872E4 -:10506000D13CBC5509A541F5140CD234C8D9616BAB -:10507000E364DE4FDCD9BE5D35FCCE8383DEC847FA -:105080007FDB55CE9B30E425CB26E3741B689D0166 -:10509000FF6A43ADCCE7DD509B12DB3D62FFC518D4 -:1050A000670BF820502E4B4BE5B89068C038C86F9E -:1050B0005F06BFEDCC41E9B71BE3E9BE3CDC690903 -:1050C000D5DFBA3386E973585F379CE8F3D20037EF -:1050D000CE6F54EDCD52E10F58B66FC13A22215533 -:1050E0005B0AB92FD9D0E3AFB8AF6BD17BAAC07937 -:1050F0009ACFD78C491C4ADF39F6B4CD3381E0BB57 -:105100006A1FB7639DBCC81AB4731EE6B60D76E479 -:1051100025FF64EB067E3E7F6B31E75D2E107E5EE1 -:10512000471ED1CF6519E32E2950D6B948BE3E1A85 -:1051300026F56349ACDCCF2379FE33C67566ABE256 -:1051400085FF38AD68A7BD989EDFA7B7734F9F3E18 -:105150000EF2D71292F76DB4BCAECA7BC4A6A932C8 -:105160002FE622F7F34C3D97CDF23DED5C3F5E67B5 -:105170005D1BEE23D7B139527FB4D4A9BC1FD7F23F -:10518000FACBA953F1BD3A1BEFDE95D81BE4F97FAA -:105190008BF0E31C817B7A8394AB6CE187FFB7E4EF -:1051A0002FEFD463DE2DC976BA311F8A46A826F9BF -:1051B000AC1C1B6792DFE9A29DE91CCD75482A89CA -:1051C00080A74DE8666A7FFDB47E51FA60606B3D52 -:1051D000EB836151E7000B4C70399577403F89AB09 -:1051E0004CEF958B29ADEDB01EDE24FDD6F25DC9E6 -:1051F0001BB12F5E6291EBA1E99A7C5EB1573E171D -:1052000022F6FCB9749CC7477CC0746E5BDFE74331 -:10521000BF1C0FECD6C0719DE60CD29744D1F2DED4 -:105220008D76C4D3C85D6E469CB43C4030FAF58997 -:10523000E61A9C1FB14AFAC67B5C5D9765B4CA4505 -:10524000C52E73BE55C5C177B89D91CF185D4F9ED1 -:10525000EFCA8EC07B82E2E57393DB9BEC88074D3F -:10526000D33AF1BD14D1F79F95859A18CF6BF7A665 -:10527000B9B06F5B1175EF59A7E16E699FF4F83F04 -:10528000EE0D927E42835DC66DE3F75B78FEC97BCF -:1052900076CECB658945DE1710459709DEF7B8BF96 -:1052A0008E19320F0D74B146D0255A8E40276B04EB -:1052B0009DE60B49A7F9A44D820477849C45D2E76B -:1052C00047D26B01FEA0FA057B9520F2DFA2E933FD -:1052D0005F6B64FACDD7E2FD41D785E3A9B8E383DC -:1052E0007AE8A71D19F29EC268FA2D100D2BB1EEB7 -:1052F0005D4076239CCC726177F23A4DF1C06EBB73 -:10530000F31BED36A9CF38CEDBF2FA3B3CEF5A3C2B -:1053100034AB211782EAA97DBCCFDDBCAC8D3CDF6C -:1053200029E764FCE4BA73562EA74D30CFBB6BCF90 -:10533000A5F1F31F4B970AD019728EB85E621BF766 -:10534000E621CE9778E1788DFD10430FB7FA75E628 -:10535000BCE58BF97FD171C2DEC3F538E12031C8DD -:1053600094B77C11BF233A6FD9B0E32DF1D24E8EA2 -:105370005373DEC4D9C6E257555EA7BBA78FB7F0FB -:10538000F9F157E57D77DA8AB34D904F2DC1C27A96 -:1053900070714257BED742D3E376463F59D529694B -:1053A00088FF15C7B8381FBFB85A2D82FD2AA676C8 -:1053B000EE88762B9777CB825DF8F4EE5E8F0668E9 -:1053C000BE7C7A5B6A1AE2FE9FADB0A592E63CDF36 -:1053D000EED315E3B2909FF1D97D8EE9C136E85343 -:1053E000345CDA81F23B3F60BB75D2F27AE2747AC8 -:1053F000BF6CC5EE4484EA4A57BC33D8452EC5E19C -:105400003CED9AE1BCBFBA610BDF07EDDAC0F709EA -:1054100068484A6E8F7D8815CCF7458ADCAFBE554B -:10542000097F7125B53B11735FE2F46CDC6E2A389D -:105430004FE3ECA604FD3C5A35E70D9D88257F809F -:10544000DA1F8991F43CB233C1C37762780259BC48 -:105450007E6B2FF7774A2D75D7019F6B52356DF80C -:1054600020E011DC92AE723B3EB7AE55F7486A2B96 -:10547000FE61945B743B0D7F1B25FC6DE4CBC0DFAC -:10548000060C7F1B25FC6D3CAF5C6BF6DF6ED7F71F -:10549000FB8C7870979A662FFCDD4081E8ED673BC6 -:1054A0003BA1E0F7B05BAF4A7F6189E259D5C8FE06 -:1054B00052422DD69D3556E967073E91E7A22082DC -:1054C000D04FBF50FB7AB09FFF50DC9D8FA1FD52A3 -:1054D000EC0FE5E11E53F2BD22E4F5CA734E1179DB -:1054E000EE7634396191F0186786A9FD3857B6A970 -:1054F000FE27E97D4CF53F757B4DF0D5BD879ADAE7 -:105500004FF48C36C1D7E4FFD4D47EB26FB2099E7B -:105510003A7E86A9FDB545C5A6FAEBA72F34D5CFAF -:10552000D06E31C13796DC666A7F93BFDA542F8420 -:10553000FF09D0C71790F7AAD561FDE4C0FD2F4E33 -:105540002EA9FE0FC8631E4D22CDF7AEFCE5677C89 -:105550008FF57EE435D38C1B31C6E26F2B8EFF07AF -:105560005DFE6347FAB60DE7756E03DF8B89D82DB4 -:10557000E46E1FECD4A0D6E79DAC46DCAA2143DE46 -:10558000876E6E7FB17623E2F69F7193C8F5AC3BD0 -:10559000739395F4D78821FB73BB21EF79C4E0594D -:1055A00056D2372386EF7FB62BC1FEBA3B6771FD1B -:1055B00015FBCFA0FE1F75C3243C55B06B72FB8852 -:1055C000BFDD84FC941157765DED91719136CFB7B4 -:1055D0001B25E88473E1A013CA30C93DCAFD24F736 -:1055E000280F90DCCF23BD564F728FF220AD33F1E0 -:1055F000FCDF689D89F2755A67A27C83D697281BC9 -:10560000687D89F2EDAAE95CBE5BA5F17BEF579559 -:1056100070F941959F9F7F54B594CB4FAA02FCFC33 -:10562000C3E1328E108F7B9313FEC9BDC97E17DF95 -:105630007F50A3DB2D51A7E7D5ECA7F52BE8D96860 -:105640004DFEC2D9BABF78F1F5BE557C11E1B74D18 -:10565000B6FA3E97FCEDE462BDAF3F2FF56AC7A0F6 -:105660004FDECB9EDA235785BDF3FF3989EADEB3DF -:10567000B47D9FE43E5D5E3E1EE13B8DEF8D741E6A -:10568000E2FD74770679ABC31956C07F65A08C5FC5 -:105690008EB436D4A0BEE63BE1C6BAF9A584F7794C -:1056A0001FBC86DC659C3F56CEC9F5CA287DFFBE6F -:1056B000E63BB97F3F0AB853FD4897ACAFB9992C88 -:1056C0009D17F521FEFE289C7696E7DB4C793B631F -:1056D000CF358CE1FA78BB1BF9A6A39C61F93DA7F5 -:1056E0007021BEFC52C21ED9FF38D9FFA6EFC2FC02 -:1056F0007DAC3E91973DD2D98ACF32C6AF41DE37DD -:105700009723DBD7E8ED4769D47F32F0F34BFC8A6F -:10571000A9BDC49FF5DC287C3319AB6D591F9B2EA6 -:10572000CF278F3DA7D77BE4783B58258C3325A81E -:10573000CF4CD1848FFACBCC141EC4DF46A536647F -:10574000707B3D9F21C12ABF97E491F77175FFBB24 -:1057500026F7038800C0DFC84B32E66DE776E10C20 -:10576000F8799D17DBF97B99EA4E2FF4F5A75EAD2A -:10577000EF08AAB73A2D3CBE1A9F3C2FFFD68BEEFE -:10578000CEB85F74B2EEAFFF13FE5F81F7473AF712 -:1057900049FEE392B7CC5658994FFF0F6D93FF9295 -:1057A0005E242F183FF19FF9017EEAFC570CFAE8BE -:1057B000FC3FCFAF6591F5BA7C5CC8FF90E4B72E93 -:1057C0004FA39C326F02EDC1FF9156290F35313244 -:1057D000DFE3A584C287714F16D1A608F1F991863F -:1057E000BCF8E5F9E1FFADFCCFB3CA7BE41C654E24 -:1057F000BEA7EE52F230BB5914E2DECD8D03B57D6B -:1058000098D7C5E7DCF580E78AD18570CF8DFAA7F8 -:105810002E52AF7DDD6C036C3C7F1BED06B5D65B75 -:105820009D6FC741EF19DF31DA7DA57FAFB5DD4050 -:10583000FE9D8D25E342EB60BFC6575B396E4D9EE2 -:1058400009C307C99EC97C4E5FA2372D32FFD373AF -:1058500060711EEE0B95E7B744BCF4ABDDF41FF4AA -:105860006AE1F745CBD19F50B75BB1EE388B7C5ADC -:10587000FA4E61AAD93F1F1FB5BF7E55CE97EC8F58 -:105880005F75897BAB7F3742F7A7B345F67FF2DEC2 -:10589000D08747B07EBEBC7B437B8B3A9683B1C535 -:1058A000329F8BC66F1988B88D4FF801170ABF1544 -:1058B00072305ED45AE5BAD277A2228F57ED4C9F50 -:1058C000AB45989F4F24830263720D890FE097E3E5 -:1058D00026CDC47DC06372C774C7F388FBF3FE0096 -:1058E000FC2A54ED6FAE88FBF3F68F95F36DF1B59E -:1058F00032DEB4DFD9AD4D3FF455B2B7DD7B802E3B -:1059000082CB3F933DEE4EE37E85EC31E0AB7A57A0 -:105910000BBC57E836E71D19EF5FED1A23AC2917CA -:10592000B777570FF86327D0F9B5E45E63C1AFD7F7 -:1059300092878C453CFEB5E40E16593AEC5CF67F36 -:10594000AE7B5BF819F3A3B5BF42EECFB8FF776C1F -:105950007B79FF6F345DAF1221137D27E8F4FD11D1 -:1059600074FD087A349AAEFBF475C57EE73B7B8CF8 -:10597000BC29C493BB2F6F60F8569B9C07E5CF4DA5 -:105980002C405EF4E2F7647EC751A002BBBB7438C2 -:10599000E33F6AE95061CDE5FDA800E85DE6947457 -:1059A0003C19786900EE29AF4FD18E83AF5FAE53BB -:1059B000F9BCFDC96762381E7724F86C22E869C813 -:1059C0007199EA5ECDBFA7F19A2AEF59FAFEE52C4C -:1059D000DC2B7A31B92679FE7AC4A036E4399EE40C -:1059E000B9FF85F22C36C97B0CCA9C856DF2D9585B -:1059F00077BE30D0C7FAC225C2B740FE2B845C1FE9 -:105A000055385F97F754128C73AFD17ED5E0586A42 -:105A10004FF576A7CC1736F89DE990F75866C6097A -:105A200017E22042CBED0B7CFB76F7C58DE4FCC280 -:105A30009CED91796BA3C2FD78DF79FC4195F3DD94 -:105A40005F8995F7B837123F14F24F7FD2CF1FDF2F -:105A500095F8983C444B1B8971A9DFABE8F7F51E1C -:105A60008A48E1F8796E3CAFB37FE47A3D6BA4AE2F -:105A70005F068801FFF4F711DACB7B8417BF9A1B0E -:105A800004DE8BABC9AAA5F2EF5CF03D7135589FDF -:105A900067B7EA9D51A227FFFEC598541BE799FFFF -:105AA0006FFB7D844CA1F1FCFBCFFE4EC278F9E880 -:105AB00082DF49C84C5C75404B6DFD9D8CE8DF4929 -:105AC000C8D4EFA7166E693F8CDF47B852F8382F5D -:105AD0007F5CBAD9AE8C718D3EE0E2D21CEFC9BCBE -:105AE000443ED74D23F5739D97E27BB9D0F92ECF75 -:105AF00075420EF4DF3B09423E8DDF3B31F86EFC10 -:105B0000EE494D7BF9BB27FF6ABF7312CD9FE8DFDB -:105B10003D89E64FF4EFA08CD262994E63CAE259F8 -:105B2000AE0D3E4DA7FFD81FC0B95CE5BF9F5FF724 -:105B300047CDD3B362F520DC537ABA58EAF58BD956 -:105B4000FF695EDFEFA16FB6E97ABFC629E321BE28 -:105B50001AAB881925703F21E7CBFEA246DE03551C -:105B60006395F18000F115F7E27D1BFB0F799F2310 -:105B7000F947B68E88CBF8F9FD80DDE9AAF144FC3F -:105B80000ED652791EF89045FE9ED4EC1CBF82FDC5 -:105B9000CB4E5DB5A7A0AFD245D1CEF91C97F70F7C -:105BA000817E9FF5274716EA677591F7478A1CF9AA -:105BB000BB4106FEB332655ED6B323753DEE9179E7 -:105BC000587B46CAFDC0048F8BCF3514E7083DBF14 -:105BD0005564CDEA0F39FE84FDF816B7F4AB1B6DA2 -:105BE000F21ECBC0AB329F679DFF6DF6FB37935F14 -:105BF000AB4AFF66EDBD1C674814D8C77D2CA6399B -:105C000019F8F75A2B4CFE429FA0D39497DC6FAB48 -:105C1000CB04F70FA59BDA5FB1D76DAAF7867B9B04 -:105C2000EA730F7A4CF0A0867C53FB211FF84CF0EE -:105C3000D0C6F1A6F6C38F1499E05323BB4A3A416C -:105C400026693CB396B882F25E7C1927E96297FE1A -:105C500054CD6D723D61E4AF6BFA3C88CE5FEF6C62 -:105C600095F9EB76BFB46B5ABC5CDFBADA0997CA18 -:105C7000E7621A18C6DD109C371E30E7997772CAA2 -:105C8000F59565AC5C7FD8F53CF3D8DEF2DC8B9102 -:105C9000574EEB0A1FE8DD5D34CEE0DF2FD0EF1367 -:105CA0008D96E7BF8FD4EF738AC2BB8B5D9EA7AB87 -:105CB000B9CDCEFBE75ABCBD4949BC109F6E7A7E78 -:105CC000E46667DBF73E39474939BB21AF488CA210 -:105CD000768F92D962FFEB82FE3C8DD07735BFB2D2 -:105CE00073DEF8A5FA9B75851CCF4C8B65F6E41C1A -:105CF0005E0FF23940A3DF74F44BEDFAF874398F7C -:105D0000EA6F565233DFBB2692EC6EC8AF16BF92D5 -:105D10006157AC4856DBA07BEBB90C99A77FD3EA5F -:105D2000D0BDBD08CF99F65A9BBC702068833C4C0F -:105D300028203FD28BF8EB43EBE3891F8FE207EC7F -:105D4000C8CFE8B2AFDDEC4077F899CD2C0F4844CE -:105D5000C17E22FC4F75602BDE6BAE9479DFBE51A5 -:105D6000C2B8FF80F16AD1E3232D2274FEFC44A067 -:105D70000D79D3E2EBF91C826BB194A7CE11E7AC9D -:105D8000B0FEFC9F3A2F21B0434AFDD86A853CE71C -:105D90007809FA19E754DCB7D88A36C6E3BC881804 -:105DA000AF44D0E1892BA55C2E061DDACB76D04717 -:105DB000176B477E5F12F6175A843BC97589B8FA8C -:105DC000FFC4F833AD32CE90E594E7453A5B35D663 -:105DD00017F6DEFA3D7717C8BBAE37F4385927AB54 -:105DE0009CF79D3C725E5FA8170EF0F7ED9ABC37EA -:105DF0002D9ABEFC2F22AE629C5F891D2BF588A1D7 -:105E000017CE9F43E921D7A1365D3F04BB5B38EF36 -:105E1000E0AE04F33C7E7C94A46FA13E8FC9CE27F4 -:105E20007A079BF484C0BE5ECD0A95F504E9C97A71 -:105E30008DF02CC6BD2CAED6DF7BBBF90169C74601 -:105E4000F98A1EC4BEC99C3536B181F715E4FDB090 -:105E50000BF438797120EA7E16DD1F3FBB5A71E1E1 -:105E60007720E6AE32D72F88FFE213AC1F6F8EBECD -:105E7000A7C6D8AFBB441CE0FE51BAFDF7088F9E01 -:105E80007FBF0CF89D0DCA7BAFCF9F57D2E33F2D4C -:105E9000C167257C87E07851B45F60C06EEC9345A4 -:105EA000DCC342F48DED0DFBBEDCDA667EA341DF80 -:105EB000F3791EFA3E1D95CB56F07A46E637903EB2 -:105EC000E07DB913540F3FF044E00CB73FB12B868F -:105ED000F34A4E7A1B0660FFD6D8A7EBAEC97DAC5D -:105EE000965D0932BF21DE22E1ADF21EFB457F0F38 -:105EF0000EC03AB631F0ACE99C83D668DEE78B2E53 -:105F0000B5EADDBCDE3C9CA7D58D427EBDD5E3F471 -:105F1000107C77FC7EBEA76B02AD1FA1D79097B215 -:105F20002255E2CFFA2B7046D2CF2FE9770D397A7E -:105F30009C9F27487B228E2968554B65717828F7EE -:105F4000FF63F7C1A69EF3CAFDDF73C3F97D6DD56C -:105F500050867B079B477F40FD5EA7C5BB1147BAB4 -:105F6000B6E617E362E9D38DBF8F5FC16567F3F9CA -:105F700001A3FC58B7238DB6B6EB27E8FA67E19585 -:105F800086BE96F2BEB85AE17DB5C59071C0F7CA1B -:105F9000FB390DF84CAD0E8F93F092151286698285 -:105FA0001F3C47FFDDB32D7AFC05E34789F1232E23 -:105FB000B05D8FCF60FC28317E3C87BE020C7D0532 -:105FC00018FA0A30F4154AE82B3CFF3C790CEF6BC9 -:105FD00063DF6E6CC47CC2BEDDD888F9817DBB48AE -:105FE00018FB7691EDB16F17598F7DBBC87AECDB4A -:105FF00045C2D8B78B6C8F7DBB4858E4FFB415867B -:106000005EF34D36C153693D3036623E63DF2EF29A -:10601000FBD8B7337D4FBBC5F4FE8D62A9E97DEC9B -:10602000DB45B69FBD5431EDEB09D1CC767DEEDA80 -:106030001496A3D7BC451957B6E7DFA9FA99AD2B3B -:10604000EB078E632C2E8FF5487ED78E97FCB7C852 -:10605000F3114A33FFBEC0993BEC121E67CEDF3608 -:106060004AEC7B8DB5C97D2F94D8F742897D2F945A -:10607000D8F71ADB43EE7BA1C4BE179E63DF0B2566 -:10608000F6BD5062DF0B25F6BD5062DF0B25F6BD75 -:10609000F01EF6BD5062DF0BCFB1EF8512FB5E78CC -:1060A0007E88F09817A1C7E0AF7737AD33490E4D22 -:1060B000EB4C970986BF1ED91EFE7A643DFCF5C8DD -:1060C0007AF8EB9130FCF5C8F6F0D723E11B46B91E -:1060D000799EC16F8F7C0F7E7B24DCBF36F067C456 -:1060E000D626AE3B7500656382F228CE1BDE70E5D6 -:1060F000B6D9D8BF6C8C51B29249A7DBAA77CC1E17 -:106100000B7BABE73F0E10CD16E81F0D8BC93C3E55 -:1061100067C879A5FDBFCBE0FADBF5FB11F81FF1ED -:10612000DDBB4BF0EFCE18FBEDC6FB1E32DB288D3E -:10613000F6AD70DBEDA2FB37DA716E55041E38D177 -:106140008CBC19EF1DF103B10ED9A2FF8EF096653C -:10615000322F3A5AAE7EABEBA72D969DFB710EA661 -:10616000B958F1E0DC47F75A8DCF99F59F292CAA51 -:10617000B7753CBD1E4BE4BCDA5F5C29ED9181BF75 -:10618000111F257DC1E7074734378C49A2F65A60B5 -:1061900034FF0ECE04BBD07F2FD83F0CEBC97E015D -:1061A000C5B73142CEABF5EF690189C7138F4D9268 -:1061B000EFC5CAF79E782C91FB9FB45CE13CB3110C -:1061C000DB850FE794EFD1F1EFB73DACA2BFE2E57D -:1061D000B23FE3BBC5EBB2EC38CF6DD0AB58348ED9 -:1061E000C57DD2224FC19DB2A2A75563BFB4C34C97 -:1061F00097057ED0E59E831A99973C0E7988A24E2A -:10620000F0BDA113F3DE328D97C93518BF6B2A7824 -:106210006DA8056EB1A0DF49448014C49309C67807 -:10622000344DF8B389BED74D2F667AF79E2914D026 -:10623000BBCFCC0D96547AAF9FF69205FE5AFFDA8B -:10624000462E8D71784624AB8027D85CE380FF848E -:10625000710AEB8FE83C1EF8070C2FB7B13D37FCF5 -:1062600087C509E7F37CFE8A3C9F33076D9CE77383 -:1062700066F959AE2FDE1DC3793DDA5A85F59AE1EC -:106280003718793B65B7BC3718F439961DDC92DCBA -:106290008DEDFC1FAF441E4BD79D89381A7762F9EC -:1062A000EEEBE0529E59BE5BFEFEACBEBF63FC8EC1 -:1062B000A9C8F1713E98E1070AB5CE1EB98F63FCFB -:1062C0001E1AE94F6E7766AFDDC5BF47A7FF7EA9EF -:1062D00011F729FE4B6E3DE85ABC5EFE9ED99C55D7 -:1062E000F7154E2778BECF19C6EFA147E7632D8C6F -:1062F000F2032FF5FBA5C267F6FF2EE6EFFCFFF2D7 -:10630000BFB7FCBF73A5703700800000000000001D -:106310001F8B080000000000000BED7D0B58556539 -:10632000BAF0B7F6DA37606F5C080AA8E002454DAC -:10633000C936225EBA2EB9282AE206C4B441DC204E -:106340002676AC21B3911ACA8D7B4348D6C04469E6 -:106350008ED5D6D433534DD1654A27EB6CB59A2EE2 -:106360009A263975A682ED25B53BE9F1D49CC799EB -:10637000CEFBBEDF5AB2D776836633E73FFFFFFC22 -:106380007B9E66F1ADEFFE7EEFFD7DBF25136D06B2 -:10639000369EB1337B459F98C258C5BE3DA52C8E15 -:1063A000B1533526C6A05C562F322CB367992F4DBA -:1063B000C0728E2102CA657F501C82CCD877ABAAEE -:1063C000F7BF064DF7AF823616C68ABF1FCC5826D8 -:1063D000631DAB642A977E3F86B158C60A0211F44A -:1063E0007EEEF789F4BCFEFBCBE87DB10DFAC1FC73 -:1063F000811DCCB71AE63BE5B650F9D44EE6C3F999 -:10640000F1173781B111F8070C99C1A43C368CB152 -:10641000D18AB007BAB359DF5F45E3CDFB3E83C6EF -:10642000BB667C45C300E80FBD1D69D07ED6F8F77A -:1064300072FAC17A5DEE295922948B8DFE39387E2D -:10644000B1C3C4DC29F8FE564302D417325613EB0D -:1064500080F650C6FDBA5CAC468861ECCE89D06946 -:10646000009459CDEB03100E5B98632BBC9AE7AAFE -:10647000C8C67663CA9820C2D4E551ACA61DF7629F -:106480000B64155DCED80FF8BB0EDEE322AFC4C59A -:1064900027BA14A82FEF077F0EA26D29CCCA983D0A -:1064A0009DD75FA924BABCC3E1EF96758A7520CE4B -:1064B000C77F43CDD00EE611EF34FB5603FC5D36AB -:1064C000EB61612C54B8F394C028DEE68754C6868D -:1064D0004D823FB2E05C0C86854E9867C18A0C7392 -:1064E000657ACF3ACCD9D9F3A6C03EF2F0BC61BCF4 -:1064F000E56B4C3E4B0A3ED3E299ADA75DE87311C4 -:10650000C0578EC575076E17003EF314A6E4C25C33 -:10651000F399B62FE667B08E1BD4B2D7AF049A6C4E -:10652000040F2ACFF18F70B9611D375B03530193BC -:10653000D8CFD36BF2130D8CBD61E270B5985CCAF5 -:10654000605887697B867FB08CFB90E83D330612EC -:106550009D76D8C7DAF6FB46C27BAF22F3FD995B86 -:106560004C0C07623E9313E0BC289D293E84BB91EE -:10657000E3D191352F3DDD2CF4ACFF8889CD6B0F35 -:10658000B3BF3AC540F36C03BC954732F6DB5556B2 -:106590007A3EB14A6232A0E053AB12A8FC34E0313B -:1065A0003EDB578DA2F7CFAD7250F9855593A8FC0D -:1065B000E22A85CADB57E5D3F38FAB9CF4BE60B407 -:1065C000EB1605D6FB9041397C0FEC6F90D8C210CA -:1065D0006FF1DCAD137ACE37A2E5BB0A3C8F2A9B64 -:1065E00059C6755701685CB08F4AC5EAA8075000C4 -:1065F0006C1B13A05C2EB2EE6647B873E7707C6C20 -:10660000FE7F2D3540BBC7EE8A24BAD5E057663EE3 -:10661000F0BA35A5077E1FD5FEDAC40C746C69325A -:10662000CC7B434D84A33905F1C3E9C1F546A53BB5 -:10663000CC2E80D7BC298CC6BD32D5D988EF6F5EF1 -:10664000BBEBD10FF0FC76A6985D709E15DB331A7C -:106650001364ECE7BA5781761536C98C78778B3797 -:10666000C62CE3F9C7033D206EB3EEE4627B0FDC7A -:10667000B728028D7B7D361FFF1B3C1F6AD7622A1D -:10668000D2B5E3E7733E3D1C9882F0F200FB581D43 -:1066900083F4F0E2143C77E94EA091C9B01EF63EB7 -:1066A000D59B1398E489391F5E83D90101EB13014F -:1066B00096EEC93DF06B1E55497CCE043428C604C5 -:1066C000C38F113D85E2CFFBB80F804BE50A6175A2 -:1066D00003CC5FD526FA0401E9ABE00DA2AF564129 -:1066E00026FA7A70983991E84D90907F15F497A723 -:1066F000C643FBEEFB0469B38CF40A738DEB19B748 -:106700006AFD64A2B72A1F3C337BA7CB9FB5EE4935 -:10671000DA21E3312A665C6795A498FB07D1FBA2D6 -:106720001681E822B4FC9A22723A626F9A106E6562 -:10673000C365C19381FBE1F8B160458AB9D286F5A2 -:10674000CC6F807515A4B237B05D772BAC3785CF91 -:10675000332E68DC4A1C37685E68BFD009E57715C0 -:106760003BC1B54292CD8928572489D657B9629743 -:1067700009E1B308E02C64203C1C661B8EBF14C6E4 -:1067800007F8DD20F9F3B0FE867499D5C339547A41 -:1067900033CCC89F5C6BF93CAEA618F3E550AE3025 -:1067A0004AE624289745323A37589F0FFB57013C59 -:1067B000FADB705CB610654B285C2AD4F556B5C47C -:1067C0009817EBDEB79AE474E26B4A387E214EE10B -:1067D000785BE92D4A5E87E7EDB64B44B746C5ECDA -:1067E000C075A9F09DDFB6CE9412D4FF5B158FC59E -:1067F000291CCF0A52FD6902EEF7D60807AE77BE14 -:10680000D46242789E83F3831C0E8B257F1A8EBF41 -:10681000D8CAE1700E3FDAF4E7DAB33E0EEFAAB65B -:106820000AA2BF1B8DCEE475D0FF4658A71B9EF36E -:10683000D7EF4A13F009F42E207F905CC9CE207A5E -:106840003BFEE0F5C9B47F583FC2DBEE90A722DFE4 -:1068500001BC21B9ABE14F7926A76BADDFE029463A -:106860009A77F0944BA3D7AAB5EF51FD22A0579485 -:10687000B766F68280F5666084E1E837094786F6F8 -:1068800036C01F77620FFDCE6781F9C85F17AD2D47 -:1068900062AE20FE03F2B6E6B930F09A87EBCD2265 -:1068A000B945E70D74F81AEBDF539FAD9E7759AAEF -:1068B0009EFE713C1CD7A1D567FBD36E4DEF69AF2F -:1068C000CD5BD69FF7437A403C74A8F0C1F6CBA9C4 -:1068D0003D2F833C5EDD80FCE13ED16711F0F9780D -:1068E000C3402C3F0BD216B6F6C5F297DE9D0BCFF8 -:1068F000CF1FDA548EFBD3D6B118F41DE41337AA98 -:10690000F2B9CA1F9E5FFC6292EBBA295941F8F3B3 -:10691000C0EF4720FFFEE2E977D210CE1FDB39BF80 -:10692000FBD9EF1F37B1D49EF55736BD67AAB00526 -:10693000C38BF3BBE65107E9FC168DE2FD1679BF68 -:1069400025F9C5407EA5A59C7FFE15DE6779FB5A1B -:1069500007B577D9FECCCF7F1093C4C40B9FB77611 -:10696000BEA1E7FEA8C9E94F407D34B54547FFA168 -:10697000FBAF50D75D3585F3B71B543CBEA1BA952C -:10698000FA5536553C8E7AEF7C8D7EABF4EFB5F33D -:1069900039B5D644E7736A6D5A23EA8BA7DAF9F959 -:1069A000FC8BD83E7625B4FB62D9D65B1253492FB7 -:1069B0004946BD04CF07F5D21B55FD74099C0FEA6B -:1069C000A761CEE736D4CBB4F292C7F8F92C7A7A25 -:1069D000DF277F9409FFF8FEEEB3F890FF56B63F2D -:1069E0007BE84A783FBFA9D59402ED3C5352083E5C -:1069F000E7F87C4D86C4A2617F4D9B4CC8073CDA0A -:106A0000BE43F05C832B33723EF328E8F0CD315C5B -:106A10001E09FD7BDACF674A3CF211E61EC2B6C6FC -:106A20009DBFFEA7553A2A48759849AE3544B1CD69 -:106A300012AEA3E27E36B677F9753482D305485D8F -:106A400005E9F3E8144732D285A6BF86B6DFAAD29D -:106A5000D7E0A8F6F9B8DEC1B120DF01C4BF895480 -:106A6000B251EFF9CD9556C9E3C0FE2E19EB2D5664 -:106A700026A17CDF6C90C7117E827E7F4F22C232BE -:106A800090857C6FF8B2C0B7B83E44A78871FC69A6 -:106A9000877DBFA3C20B55F181FCBD1F9F49C67600 -:106AA000E25391B51CFF42F50CAD5FA87E11AA57C9 -:106AB000F4B6BF3D17B9BFA3292E1FC98908266D9B -:106AC0008EA1FD2DC7F2B9FD8D628A01FA97FFF202 -:106AD000F24DA84F1EAD57769BA1FEE81D36EAFF8A -:106AE0008FDA6FE83EE75755E8F6798E6E5A44B272 -:106AF000334EB56426935D07360F83FAA3B7461865 -:106B000010FE4753B8BE0016A01DF5C46DAA1D891E -:106B1000FA383E511F6723B93E8EE5A755BB12F5E3 -:106B2000717C7F5CC5BFB248251AE57277BD5DDA1E -:106B30008CF0F073BAE9AC1D4670003D81F36355EB -:106B40002FE89402F6FE417C1AE4C77D28EF58ED49 -:106B50003086F65D67CB51BB211DF192AF4F6BBF05 -:106B6000C2D4C2EEC0760F0BBEAD306ED48AF7F23F -:106B7000E2514EB7A56408D06F41ED69E2870B6C16 -:106B800003658672DCE66A9C88F5EB53A4D5D02DAC -:106B9000AA2DA3B316FA2FF68E24FB798520937EB7 -:106BA000CFEA05B22B996A1F2CC1BFA0BCC4F6C6A0 -:106BB00070955F1A905F2EBAFF8EC644281F36B0BC -:106BC0006E11405360289A8AE5820D310E0FCA5B20 -:106BD0000FDF0FDB087CD4DAC3474F4F72B26CA4CF -:106BE000F7B3806F30FE68581BDA512B4CED0AAEBC -:106BF0009F81DEB195E17A9DA4C7AF52F1A2B3EDBA -:106C0000B05D56CF07F5F3E1AEEEC3F7E0B9DA0CAD -:106C10008E6619E5BBBC5F46B8BF2532D4678733A3 -:106C20005EBFDCCEEBE149FAF1F24DA28F917E5CC2 -:106C3000363080FAD77A91F8E2E24D250351DF58D9 -:106C40000C65945F1B702AC0A7C6B61CDEAE35EF7C -:106C50002137F0D3648139911F1D33068A101E2716 -:106C600037C5F7AF477DEF66CF0806F5559BEE4970 -:106C7000C6E7C94D11F3908FE74A45B931A8FF6CBB -:106C80008CC940BB5FA3B3F46C2E0F6EBA39271EBC -:106C9000E5DDB2BFEF795402B9BA187054423F48EB -:106CA0007B94CF0D4D96ADDA9E2C026AD9E35C231E -:106CB000116EFF62D8397732CA61C1B72D91DACB34 -:106CC000F1521F76F371B42B014F6FBEFB431AE7ED -:106CD0002BC3DEC2F9D07FD9CDCF47E338FFF260B6 -:106CE000C70409DE1F1BEFCAC4F13F17366D93D0EE -:106CF000AE5DBF692CCA8FF1AA7D54D0DF39773ED3 -:106D000087AF63B3DCFB7CD5DB0582A7565EE0EB87 -:106D10006766A897FA9959C2A7C4480F3E29B25A84 -:106D200094EF9A5EA2BD9F96CDF9CFC97E2DC9780A -:106D3000FE4BB7AD4B46F9F1999D975D5BFEB4F8FC -:106D40004E5887ABCD2031C03B979191DEBBC8CD6B -:106D5000F569560DCC24B167FEA2EC2882F3D2F57A -:106D6000993AB9878E197CFF9991E5E33A867ABA08 -:106D700033507FFAC8E85F8CE7FA11E8A7E8974933 -:106D8000CFE6F8F7518B3815DFBB57080CFD4F1FC6 -:106D9000B53C6F1FCEFD28E4C7602F9B7C5BA1BD77 -:106DA0007D7CBB1FF9DECD2FC48C4330E689E9F131 -:106DB000883FCB7798A60EE6FA145AD36C99D16F18 -:106DC0000E776E37A97AD4B9F20BCF9A11EF973DAF -:106DD000D54A7E0550537CA8DF2C6B7FF68D413061 -:106DE000DE2DDB2B32711EADFD2D2F703844B080AF -:106DF000B92448AFAE18D5BF7130F0C8E5D9F9AEA7 -:106E000007511FC273BA12D424655245BD119F1297 -:106E1000ED9319BB491F07FD8AECEB9BBD7CBC9B26 -:106E2000471D6C4CA57D15C5B2A0F3BF2DDB44E713 -:106E3000A5F5877D533F8FF5EEC702B05EC563644D -:106E400011D742D9C83EDE86F063D1D256DC879195 -:106E50001D7B039E2BC57EAC199E1B6B96FF2BB52D -:106E6000AFB748223C3D37D73D1380F964913919BB -:106E7000F47767D7D0786E33973FEBA29E7EF846C3 -:106E800028D7CEB13900BDA11C4DF0D9F90B03F1C3 -:106E9000F944D6BDC700CF78065404001A92EA6AB6 -:106EA00021BEC3383F5E799BEC437E0C1C5C403CAA -:106EB000FFE6951399B8EE6B87064E235E99EAA715 -:106EC00057E402FDAFCF56E1921EC8C4760376ABFD -:106ED0007CCD7880E4A32941EE8FFA8A1FC7C2F5E2 -:106EE000FDD54078B053F03F8EF36A70DAA7D2FB3D -:106EF0007319AE4DD9F05404D3ED7E683F5B8876AC -:106F0000E07E0FF417D3C60D433FC4C72938AE1B2C -:106F1000D0561CDCA3C766AB4B370F9AB41EE132C8 -:106F20000500CAAE065B26BD3F3342F95E66E8B691 -:106F3000C03AB2BBFFB2A91ECAD2AFFB3111449511 -:106F400027229965C3F8C26ED828EC6777FAEE4518 -:106F5000B8CE7BBBAD0CE1C4AC7A3DD76C48F4FF36 -:106F600012F1B926DAC112500EB567203F62B7D8C8 -:106F7000C83FB3E06C20EDE72897FEBA97F4F49F82 -:106F8000A5BA5E46B80E1295C32EA8BF57F20FFBE6 -:106F9000158E5F1BE5A8E7728405AF7FE71D7F8D27 -:106FA0008E857EDF748F303E03EDBE51AC0EF4E76C -:106FB00075DE39E6B5ABA07CB52A4F42D7F54D82D8 -:106FC0006C44BBE39B6EAB1FF5906F6C06F2736471 -:106FD000EFDCF321FA21B3AD36BF188DFD4C5F060F -:106FE000CB1B762029E6F8181231EC0780E74055D4 -:106FF0002E5DDB4F6F3F7666733BA853E53F46D966 -:1070000041703EE536B266C44306659CD768959AE2 -:10701000617DAFDAB62D40FFD5A9EF53FBA1DC3877 -:10702000B573583F96DE3B5FEC407D02F484884C9C -:10703000E5533C7F4DBE96AA708968B9DE84F0F0B6 -:10704000003CD0BF566A33F82DE85F9DA38703ABA1 -:10705000ED2E47BC61866807D20D9E2F9EBF2C186F -:10706000BAD955E79FF7756725FF2FA1BC00CE134E -:10707000E15A7EEAF8E5BF62746EDFE23AE01C1B7B -:10708000AE603DE7F7BFEDBC98D1D184E7B052B414 -:10709000B7E039788C5CDF73036E6D8DA16EDBF029 -:1070A0005C567A86D3390DF4009F403B0598DAE6AA -:1070B00038E42B07A9FD56CD9F36AA86F84CB9C7F0 -:1070C0002221FCBE8B8CA6FE0CCED534281C9FE161 -:1070D0007CA5B68A115F59985E23E0B927E00CB011 -:1070E0009F4E43C08EFB0C44801609CF6B725255E5 -:1070F000FD1B3882EA67C5FE8FDC61DF8CFC46B47D -:107100000E7EE4188822D6D41D3D1AD6D526B07638 -:10711000DA9749E51F4B6DA4CFB5C5F888BFB59583 -:107120000E71E05EBF616A7D7524F197AB0C062A93 -:1071300077CF1F48F6585B0CB0561C6FFE68D21B09 -:107140005EFC3B8F9774A7315E9FC146ACC7FAA225 -:107150005134DECB1ABFBACF4EE3B515298991540D -:107160003FD080FD5B535C137388AE793B503CA8E5 -:10717000DD860D4A229EE7866233B57B4870CE5F7E -:107180008CE35C6E23BD31303FF2E96DFC38FDE8E5 -:107190005FEAACE5FBD6E840F3AB0F751F7E18F94C -:1071A000873B1B4E04ED43EBD70B10AF1531DA01D3 -:1071B000287CDE397F770ECF59370097C545769208 -:1071C000BD2EA73104369C9FC4B2114FF6003CA1DE -:1071D000BDDB04E71CC7CF79751C9E73E1A6E07385 -:1071E00086F1DC2BE1BDB03CDA214CA2731E85E3B5 -:1071F000D7B24807DAD7E7CEEF555F063E4583237F -:10720000C102B0F83CD5353F27AB478E3CF209ECC4 -:107210000FE0526E0964B5A07E6E60D5ED61F8C0D6 -:10722000A21C6E1F48ACDB84F275A186FF7521F8A5 -:107230001F1812733C4AC57FE8F74ABC73319EC3DE -:107240005742C7047CB9F76FE2BC70E3DF9CC3F917 -:10725000D68138E7325CDF70E3EE21B7A1BE7187DB -:1072600085F45F7676CF109CF77729CE9FE378116F -:10727000C3BBC9BFDE99D86DC2FD75CEFF3C09F511 -:10728000AC85B57F22FABCD8F5AD8E1A6B42B91920 -:10729000939F610A40FFF8FC8CD7F15C0ECEB2C818 -:1072A00096307E905DB32626A13ED4317D6212F2E7 -:1072B000CB8E245833C953871DF9A869FBE5765C4A -:1072C00067477E26956526ABE5923EF9EB17C05FD2 -:1072D000FDA0087C06F61A3E4F80BDE6077EFB291E -:1072E000D86BF83C0AF61ABE3F0CF61A3EBB56396C -:1072F000E87D47FEB0ED8817675AB81F6591D11138 -:10730000562F5BF694C8FC1A7F83FF6EDA12A52B0A -:10731000576F8CD5956F6C030CB2F694ABD60ED329 -:107320009535FDB3D23B46F7DE5597A92BFF3F03BA -:10733000DF260E5FF497FF6F822FFED682BC2BC133 -:107340003F00BFF7654D233EDA21B09A5878C64812 -:107350009CFF199D02F9DDF0D70272BB18FF00BA3D -:1073600031DAE406ACF742FB5F435BB47DD1FE60EB -:10737000CC61AA80F7A5F91112CAF3B9AC86E86C02 -:107380001E6BA1E70DAC9D9E65EC003DCB19A7C31C -:107390006F2A0213F0F9719CEB53A4D36556D7639F -:1073A0007168B725B946C6223FB2F527BBB4B7739B -:1073B000420D9BA97AAE6D82BA2FF8CDC1B543BFFD -:1073C0008351636FBF5DEE99471B1FE63B8D7CE3E6 -:1073D0002B139F675FD6C424E40FCC3940674FF569 -:1073E000365FAB2A272BF2399CD0678BE563A50269 -:1073F000C58B77B55ACCE85F38B6C6A4EAEB77936D -:107400009D7BF810F7CB1C6B98968CF857DF3A32BF -:1074100019F1FC98496EA805F81F9B0CFCDB417E16 -:107420001C07CA8723F976EA0F92223A03CE6D91A0 -:10743000BABF23B2C37C07B42F4D1499DB81F1F49A -:1074400094685CBFB6EFD07557AEB5E8F060F6242F -:107450007DB994997BF02D05CFDBDC538F7A925860 -:10746000D6CFD587DD5DFBF1D2FDAF05E16B72AE06 -:107470003D0EF51A36914DFC41ECE9DF1B7CB57CE5 -:10748000060DBE1A5E7D9FE31C999B45AF29DE86E3 -:10749000717494C71DDB391C5BA3AEBDEF2A80431A -:1074A000F1FB22E3702E777F84F8BC83FBF543E782 -:1074B00009205D8F447AE5745DE17D8FECB78575B9 -:1074C00045265C5FB1AD3B09FD4EBBEE1A9984E7E2 -:1074D0007270D6C824E41B7BA68F7C64058CDB55B8 -:1074E000203A2C804FBB0A4EDF87E58E3A51C27995 -:1074F000BBB69F56F94BF7BE89B0BEAFF34D24879C -:10750000BAB6FF73F84CF10EE03330FF191FE733C2 -:107510004B8C4ED608F32E01B8A01DFFCFE63717CF -:10752000E233074DCE3CCCDBE8AA171CE87FAB9FCB -:107530006E21FDE120D08785E353C30AE49393C015 -:10754000FE9510DF9C596853766C1F3600E1C5DC50 -:10755000CAC151137AF07D51DD9202F4AFB3B5A6E2 -:1075600023A877A33304E57331331E0904E1A9EBA3 -:1075700005534F99F0DA78241084D7A1787A1BE26A -:1075800069540F9E9E616793CDA9BCFEC0C01EBE0C -:1075900087BF60FE728BE86FC478BF86B7FF39FD86 -:1075A000BD72541280AFDC9D0BF8FB8B7129AF04C8 -:1075B0008420BE72917CAC35EAEF24F7D645FD9D60 -:1075C000E4DEA1E95CEEED9A7EFDEEBF20DEDFC5D4 -:1075D000F1BEA37422E1658709E419C0EB605D6622 -:1075E00034968FAE2D213AD3E827749E2E15FFB521 -:1075F000760B8DDD264718FC74D589BAF34C7B6178 -:10760000413FE7E5BDAF5F1B576BA78DBB3024AE95 -:107610001B3AEE13B9DC0E4DDB52D6E7F86000F6EC -:10762000F4A33C94C81E7C15510FB89EB9013E5D71 -:10763000F91C3E5D05D7133D1ECAD7E8D2C5301EE2 -:107640007B708EE843FDB52BFF34D1E919A0531AA6 -:10765000A397794FAAF4795CA5CF632A7D6AF5E2F6 -:10766000D607E7DE80E3D689C4A70FCEC91C80F316 -:107670007DB6258DE685F550DED15BAF2DACAC1F18 -:107680004EFCC18EFCEB10C001ED8492D212B2A769 -:107690004B4C8E01E1F484D07D878EB76B9685F2DA -:1076A000C8603CE277C57795B046E40B0007C4CFCD -:1076B00043D81EEA8BB7723FF01E6C1F170CA791C0 -:1076C000A4AF1CFAADE040D161DAFE373B9EC35255 -:1076D0009F9E5F2C591FA53BB7C52DB1BA72F1749F -:1076E000BE8F4375C30684CB6BBAD0F969FD2FF604 -:1076F000FC6F52FBE39A7F203DA5BF6E3C04927E57 -:10770000BED490FAD121F5E374E50BE1E361152FC6 -:1077100034397238425E102EBED45568A90ECED3CD -:1077200088CEE3764B749E1AB7FF917235224FCF05 -:10773000AF2ED45FE34F9FE738A53C94A3FE12CA57 -:10774000DFBA587E14248713F270BD01C18CFD5B33 -:1077500055395BDDCEF16E5DD4FD947FF395AAA71C -:10776000035E12BFFF5AE5F75FFF412DFF5E20BCAD -:10777000DCB3636534EAED27B68F8C463BEC48BB3F -:10778000271AF9BECCDCD157023E7EE904F909D3B1 -:107790009D6CEF5B7E7EA6F29D13780E2437253A12 -:1077A0008FA3AAFC3C8CF293E4FD287A1E44F909CD -:1077B000F5739E55F5F4DF0A44FF4B8D2DE1FDD3A3 -:1077C0005BF4FCAA7A6354889CD4CBCDAAB58375AC -:1077D000E54AEF305DD955A7979B796219F1F5130A -:1077E0003E0EC792FC4C5DFB13B21C2D117C381C65 -:1077F000BE36C9D18867477CB1D1C1F4A2F1DF831D -:10780000217038867040FCF496F4892747D5FE5ADB -:1078100019EC4213CE5B6275BC1E877E84B5820371 -:10782000E35498EF3709CEF1C09C8CC79B83F48C4E -:10783000F7F344C297C3DE3DE5987775060C30F444 -:10784000F3FEA96E4F32FA572B9E8A22BD2974DEB1 -:10785000AA023D9FF9B2A128FB23E857F2BEE8B384 -:10786000223C0A62887FCD7956F48950EEAACB89F2 -:107870000EDEC709950E35B9B3C45813F61CAB37E5 -:10788000EACFB1A4A09EC6E978506817FAC173D7B1 -:107890006490A4E7F72B31F2FD2F794A24FFEE1212 -:1078A000EFB7FB30AEB804F4405413FED4E42944DF -:1078B000BC3EEC3419889FB6C716227CDC7344CAE0 -:1078C00083DDDB348CF0FC4853CE409CAF4985D33C -:1078D00089ED168370053C9D26E6277BD54FE7F999 -:1078E000A5B784E4C609840BEA414689E8E2813CF5 -:1078F000EE973F0CE360BD01E804F5E12E9F98EFA1 -:107900000B431F0FA8F31C3DFB2BC29F377C7BA2B0 -:1079100051AF38DCCEC73F5A2745637CEA1D6FA6BE -:107920009DD65700E3A2DEBBE37A929327BC1C1FCF -:10793000719D641F3671F9D1E15D74FF6480C75792 -:107940006B45D23BBF6A2A299C8CE7BDD644E59C97 -:10795000A2528A6F74F8B87C39E43B5A8EE777C23A -:107960000BA70FE5FA1D13F78D8FC37336113E5425 -:107970003DA53F97D2B57AFA825F74C604CACFA4F8 -:10798000B82CA81353D14EAA4C00F909947BB8A087 -:1079900084F22A8BDD7A7964614526C43BD42FB109 -:1079A0005DE52325597EA43FB740F272E10B3CEF21 -:1079B000DAB4E56A9277152D16DDBCC5757AFBA899 -:1079C00032C41E0AB5977EB4BC30D5948793171D78 -:1079D0009A5C60D25484FB1130AC9B33E0FD0B22E7 -:1079E000E5239FF14610FFAC5878EA1A552FBD16D3 -:1079F000F18039DC6C9266A707D159A5570CD1D319 -:107A0000F5F005FDF938EAC74DB1AA1C759790BF8E -:107A1000EEF31CE510F1FB8BB5BF2F5ABF2D57F5C8 -:107A2000DB72D26F3B4A2D94AF79109B04F5DF5582 -:107A30007A3DF9750ECDBA9EF4DC43E7FC3A4ED59B -:107A4000AF730D9DDBA102C067921B0EADDCA71EBC -:107A5000A1F18B4FD57338AAF2C9C32A9FEC52ED1E -:107A6000AD46555E78557971A840B5B7E218C90B97 -:107A7000A3516117C3676E6C8B0A910FB12176D445 -:107A8000E090F3D1CB8B6545AEC8A940F79684D181 -:107A9000BAF726699CAE9CB66527F98FCFC83C9F84 -:107AA000E81EC4098C9794F2FC2C666D27FF71A91F -:107AB00043A6FAC1182784F66852611E89869FDAA8 -:107AC0007B298EBFD7CAFD61D7F5D82EA59DCA9E4A -:107AD00052C6300F66B8360E80A31EF484C1E8C7C4 -:107AE000867912C040C3F61ABE0F99D34AEDB2ABE5 -:107AF000992440BBF4A929C4CF129842FC65E03216 -:107B0000A660BE0BF33D4FED1EBF1BF601781FF0C4 -:107B10005C47767989359AC7BB413EF68D67F53C5F -:107B20007E991F4B7ACB102347CD5EF1566D77219E -:107B3000BC0DD283264F25FA34903FA2356AAC099A -:107B4000F1B4D8E624BF01E0F582DBD15FF98A9970 -:107B5000FB094AB97FF2E0F4898FA0BD3BF6191BFF -:107B6000F9920F2E067C26FEDECDED84BA1237CABE -:107B7000BD3FE7733937E6992FE97E44D776E6C0F3 -:107B8000F29EBAE74FBD8DF43247203BA3A32E8768 -:107B9000F365C69C98BFD9919FB39ACA93C030CE63 -:107BA000407A50561B711D00D766AA5F745FD67865 -:107BB000BA6F42F89BA0E6194978AE893DE5384591 -:107BC0002DB3ED544E28E0F9817F54F58376F53CD2 -:107BD0007FA7DA41DB54BA6953E9E6D72ADDAC095D -:107BE000F5876EE47433C2E8B82F0ACA23DC7692B4 -:107BF00033FB0B8ED2BA81FE258CE7A64C179BC7B0 -:107C000003DCC65802C4A74B40ECAD86FD4C29A846 -:107C1000A7FCC51217A37845F19C7A5A5F00634B05 -:107C200057A1DE542F886A3DF2C731B17E6A5F6C7E -:107C30006512F62FC97F7617E6E196BA003450CE6A -:107C40009D532F107C2A603C68BFABEE011AEF50A9 -:107C5000355FC7413BEFDF51C1243794D358FEEE67 -:107C6000157C9D4E8C871EAA7B7E17C17B0E87F7E5 -:107C700055270D3A7ACCF047EAE87AF496FEBAFA3C -:107C800091EB07E9CA039CA9BAF6B1F97A7A8F1C7D -:107C90003E4E57DF915F6240397B668E96DFC3FDB3 -:107CA000629A5D37E5199B01E1317796A8F9710D6C -:107CB0006C205A5D8CFCBE4DAA9EC85A8631CCDF22 -:107CC00078FC4E03E507AC99E3B162DEC3997623F5 -:107CD0009D178C4B7CE4D04E238D6B4DF10AE8C789 -:107CE000BC17E02C06E97F4D9A7C53FDEAB81E6371 -:107CF000D07AFACB0C33C6CEB56F53F1E901751DBE -:107D0000C0B7A798705E27C793D802663041FF01BD -:107D100073B89C0EA5CB76B5FFEFD4FEDB547CEC9C -:107D2000CA7F7C7524C2651E237D244F5CB63A024F -:107D3000D751C0881EDBFDBB2383F5C73FF636CE87 -:107D40009CCC3C1AC7CDF9E8E8D9822702CF7563ED -:107D5000E0F377E1F9F2578DABA361BD4F08AC1D9D -:107D6000294AE39F9AFE7DD5D74D543F7A1C9868E7 -:107D700050FFF2D7CDBCFD0426A3BFEB8FAADC6970 -:107D800052E9276D4B3AF917CFAC3793DDB3AD709D -:107D9000C9E63658EFC899773DF102E24BE15D7FC5 -:107DA0007941EED1F34B0A133B317F7FC42A3B4329 -:107DB000FEA0CD9BB6E5CB6C5AB7646488A74F6E26 -:107DC0007DB112C7FBDDB6488302E33FB9D948FC59 -:107DD000E5B27B1FD9BC9E9DEF8F29C9D7DBF9BFC8 -:107DE0005BB3EE89EDF8BEF6F9C78E05E5E974CC14 -:107DF000BA2709FDA6075755B7E5A6F5CE3F4BCCE8 -:107E0000CC85F1BBFC97BF7CEE1D98FF03D765E3E3 -:107E100082ED80CFA7727DE7E0AADAB65CB0534767 -:107E20008BEAFD15A37B35C263F44B0365D4DF8079 -:107E3000148C2E8065FE8C088302FBFBC067DC443B -:107E40007C60C69A343CCFEC270B769FC4733EA46B -:107E5000E27B2FFAC841F59CCE954D32C1DDFD8AFB -:107E600095DB378A9C44F6B1434E2A0ED2E70EDEEC -:107E7000A5C5971C9F201F2F2E8BA2B8B216771175 -:107E8000F3BF6D403EBF70524D9644EBD7C7F1072C -:107E900021FC3231CECBE3F56EB791515E106C0D03 -:107EA000E964A5389AF24D3E5CFA0B8AD7BBEB2DFC -:107EB000525A1CC50D9EC1722DF01DCB788AE3FA73 -:107EC0005068274DE37E84D3F33C8F98E5DEE1EFE5 -:107ED000BDC0F998D4F3097D9F348D9F8B07CF25C2 -:107EE0004D772EBBF19ED479E7126D25FCD2CE459D -:107EF0008C6EA2736156DB28CCFB88E72885FBD902 -:107F00008772A8F310F7977D50765BFD4A289F3A59 -:107F1000DB8F215D687195F2049E7F4047027CCB28 -:107F2000A4F68F57F56EE463A87797AB7197CE05EB -:107F30008CE22EDA78676AFB497CBC5B486F2EAF17 -:107F400001FA475912F52AE9170DC3787E44B9ADF5 -:107F50007B01E5AB0A0607C6CDE343F47A37ABA154 -:107F6000F5C6BF2F923FDF10B596FAC70378F0FE33 -:107F70002166E8B260BF1218AD984F42570DE52058 -:107F80003D4BCDD78DAF7D89EB4739D03351379FEE -:107F9000F003ADDFF3A9887CA0D62223DFC3DC2C5D -:107FA000E4DB04BF14C4A375D45FBA8949788F8316 -:107FB000294CC67B9A823A5FE8FA613CAE17827E12 -:107FC00086FB15EAF8FC1B67F27B206C279383ED98 -:107FD0001616BC9E61BAB2EA27D3974D09669D9CDE -:107FE000FAE06C49BF9A3EFC35A1FD0DB2B36FBFFC -:107FF0006F7590DD95DAD35ECB13D3E03CA8D672D3 -:108000005888EEBDDFB222E5E7D3804E6DCC99FDF6 -:1080100036C0C3F5BE48F2CE10B597E01188E0F047 -:1080200039A7CFCEE3FA2E68E7F5946F0DF20ECFA5 -:108030000FF3B44700BE33B73E4F409B578B2F75AD -:10804000AAFC38901258E00C038F46A4DF2CE4E71A -:10805000DF50BCBB1CF55BC0E5C0EA2F74F73F4E98 -:10806000164D69C47587E621687AA976AFB4D3CD79 -:10807000E56CA73B93F8CE19666F21FD3F94DF189E -:1080800019E57DAC14231DCDE4B7BB9BF2466ADD38 -:1080900016C902CF590EBD3F66F624BD3C28526278 -:1080A00043E485DEDF55EAD4C78986B7DD41FCEBC2 -:1080B0000CEA4DC4EFF87A8C6A5E9909EF978868EC -:1080C000AFBBE9B957E5CFEFAA7A6604F257781F3C -:1080D0008589E5808F7616A0723F44F96198D22E8B -:1080E00053BE632C53A83C80B9A8ACE54126321F8F -:1080F0003DB5FC962416A0F250D487442429999EBD -:10810000C3D00E19867A9EE35CBC87F22673522890 -:108110005E50C4944FB05D41E65724F70AAE67EA5B -:108120003DDC138B14287796B29E7BB9986792C773 -:1081300054E4FC7411DE3FEE9CAE958FF3F214DE36 -:10814000FECD3F7DF138DED305FEA5D67FC6EBCF51 -:10815000954F2E9A82659381CAEF637B280FC8538F -:10816000DE9A06E7FFC9344678E4C955DE092E0FCA -:10817000CF55F621DE68E5095395FDC1E59539CA6D -:108180007BC1E5C773948EE0FE5D79CA215ECFF3B3 -:1081900097DE37294968EFC2EFB7C2048E87F87BB4 -:1081A000C3E4FA04DB294F09042F0BF0ED66E2DB90 -:1081B0004E86740A6463C53C22E033E6DBA19E8DE3 -:1081C0003353BE9F21CA96DC973F3294BE0226B637 -:1081D0001DFD744546D717440F217C4F70FFE9AF52 -:1081E00098C703F4908D7A7E408D8704EAB83F40AB -:1081F000A313ED7DE87C17C27BA604F979537BC6F7 -:10820000ED6DFDA1787C40D5F70EAAFADEFBAA5FE2 -:10821000FADC7E03C698E3D61EFAEE9D7F1AD9F1EA -:1082200020FE79FE7E8F2E3071F921A1BCE88C08EA -:108230007F0FBBB7F5EDCF991A974FF95E43248AAC -:1082400033308DEF737ED3897F021F1CD34FB35F12 -:108250001D5684431A4B98310AE66DCD67A4BF7A48 -:10826000727717D3F70DCA4082C1BA8EAE38861422 -:10827000C78467B83DD192C468BDF6142902F5A53C -:1082800006956F5A58CCF4E1B8FE214692B7A1EB9F -:108290006E88F60918571CE48FE0FE8D38E68B8057 -:1082A0007106E53BF2296FC52D4AF9582E6385A367 -:1082B000A05CD926CAF930CE9EB6125605E3564DBB -:1082C000023E4719E93C9FA2BF8AC7632C8CF22D5E -:1082D000D60DB051BCDABB66E4AEC5C837134596BF -:1082E00006EDD31BC6E5A3DFD363EBDF9F624EEA47 -:1082F0007A3C36C79B780FC32D19F83D1249B162FD -:108300001EFAA615C67CE4E749CF8E8F1683E07F60 -:10831000D47B2A02F3DB1F930C54FF585DB6F5465D -:108320001BDE23F42B9467201D516C30EF0668137D -:108330000FE3DD5F7DA46504EB1D1FA2F3CD3A3C86 -:108340008D729843FCA07ABFA529443F28C957F3F2 -:108350003426B00978CE573C71D6847AEE429B4CD5 -:108360007EF4EC2681F25302BB1CC9784E47EF1B0A -:10837000497E736F93A8FAAD1DE4B70E24B164BCB7 -:108380005F53D122905E2C7ABFADC77E4347C98927 -:1083900038CED0F1DD89C1FEB2C7EEFA4504F25104 -:1083A0006F9941F573331A4796156B0AECFF53AF7B -:1083B000C0F3274C9280F798ED0F8A11B8AE2E13B8 -:1083C000F75334033FC5FBB9CD538AFBA443D3F71E -:1083D000B0CE20BBA5212E3512E7EDC15F85FCEBA9 -:1083E000C75A32293EB2B9299BF24142C7B9771523 -:1083F0006B47FBA46195959EE7D5273B931DD0FF66 -:10840000D3D6298D20A4D8A7BB9626E0FDA0C52DE4 -:10841000161611068F8FB54EA4F916E33D669CB76C -:10842000A5C88C72645ADB1433C2EDDE55CAB3C1E1 -:10843000F31416BBD6205D46B53C4B7862637E379D -:10844000C2F3DFAE519251BF3896C6C2E6493E90A4 -:10845000CFED8477AE71D27D924F93C2B75B97CF49 -:10846000F335A3A7CBFCFEB891BDBB04E05C01F4DF -:10847000540FAF8E36654623DE9AD83262521F946F -:1084800095B8D19E3B8D7A3BF0F3C6BBE6AEAF828A -:10849000760D778FD88FECE30A33D79BD99F45A20F -:1084A0000BD00B2B903EFF638E55F204F15FD41F6F -:1084B000155D7E1A971BA626D16F067E6EDA79FCB3 -:1084C0006F68EF20DE2A41784CBF09AA5DA0E66BF9 -:1084D000244C206D9C7E0D33E6FAFC0CE32E8BAC15 -:1084E000789EA17AFA797872DE3A82C6473D37974C -:1084F000291141EB0096E0277FB98BCF7BAE9D5AC7 -:108500006F0406F34390FE1E5AAFED63E47A3DBD5F -:10851000BE93CFF542806F9FF1BACB7CFA7E9FE588 -:10852000333AB7D1A2B2FB38CAD97522E5558F5973 -:10853000C7E3FF678630F213F5369EC67FF1671CEE -:10854000A8C211E0DA18574CE7D95B3FB3EF80922D -:1085500032B6C73EBC2C41BF2EADDD67E7F6751BBA -:108560008BE4FA603BDA67161FF0BDB1F83CA0A0BF -:10857000FC1EB56985D4D7BE43F919FE6458EF6275 -:10858000F5C864C035E40F9FAE17543D84250C9F99 -:1085900040571749FE607F2588FF015FE1797B3EE8 -:1085A00081E0D3DC7A74F3BDE487B13B782B7E5E47 -:1085B00063992607791E90764F9061686A604F7CB8 -:1085C0004A83E3C9DFAE7EFA097875E2A9E55FE385 -:1085D000D332A0321AE1794FDC9C6B13A1DD58B382 -:1085E0002F01F9E9129FE53CBCB36AF89282F7F3D8 -:1085F000F4F59684A0F5C37FCD3B9E585F89726ADF -:1086000087D581A9E1885F6E1D7C02A9F85D9CAECB -:10861000BBFE95EEE7474AA716507E7B9D85EE751B -:1086200085C27789CA07987A5F43A3A78896910C79 -:10863000FD8B4754BBE9C85AB053A1DC586796F18B -:10864000BB065D8E222521CC78E63A33FF6E4EB014 -:108650009D98DAB34F6DFC2E37F74336C2F84218B7 -:108660007FDF85C6DB53A48C990EF8BFB7C879F9B4 -:10867000F42CCC6F5A44FBADDD5ED7F536B4B97738 -:10868000A02B03EB8FAC1D36414047A451A6FB7EC7 -:108690005EEF73244F5AF03B3E60CFB7B41B2350BC -:1086A000FF707B0D14BF6D698F8B1C8E72CA6608BC -:1086B0001B675D349DC3AB479E38A383F5A1E65C81 -:1086C000AE0F09CF94DD9F0AF0F21EE2798A9AFE7E -:1086D00021A97833C622117F96BC3CCFAD471FE25B -:1086E0007AF519D4AB515FCAAA9282E5534334FF9D -:1086F0000E4655AEC38DF730736C8CE4C750BCACDE -:10870000807E0B1BF34D4BC1EF643818E6E7F6078C -:10871000FD4706CC8E6FE3FA4EA4CDE650108F15C0 -:108720004E5756F81FC2337294C2701E63887E6122 -:108730000ED11FC490F282E97A7D42668E6884B3BE -:10874000FDBEBEF338347F2EE84D74CFCCCD00FE95 -:1087500088A756379D4F34181244CF8A22C70DEC94 -:10876000D1FBF13E1BF7AF48142F129446F2DB6F9A -:10877000CCE4FE8D44C6E35E83146ECF8F9DE4A6E9 -:1087800032D80F148762AFB248E4CBCB8A5CB723F0 -:108790007EA4001B40FBAF7F3A1388DC2F512F676C -:1087A000B5171757FACD6EEEFFF31A221D9BC3E0E3 -:1087B000FDAF0BB81F2E720FEC0DF5DBEBAD74BFE8 -:1087C000254F7CAA89F069BC81FCDA5E7640427E46 -:1087D000F2ABE95CDE1F2A72DE3F9DE2B2CE14846A -:1087E0007F82112C2A5076CDAA1F37E9F6D448D4BF -:1087F0008B3F4C7C91E0E106D8A5C17F9B6AE3FAF0 -:108800008F82F78FD6AE26B8CA03B89F4CBB771EAF -:108810002BF1FBFDCDCE536EBCDFBBA22095AFAFDD -:10882000C8382315CA43EB0202D2DD3D76651EEA45 -:10883000254DF273741E2919B201FD65838DEC4D2F -:10884000CB38C69E8EE1F5DAF7A31EB20FDC149C7E -:108850004F52ADEEFB2121BCBE725501DF67E70E22 -:1088600000643FB48F996A7FDB16933D7EAE0C7037 -:1088700043B8B8B9FDFCC274DB62F770B28B78BD47 -:10888000FB2ADE1EE3A5502FBDFD7E15DAE38FA681 -:10889000849FF74B75DE47DFEA7E04E358FF59CF2C -:1088A000E358BD9FB39F1980B76CB0B3647605F0F1 -:1088B000B9A5E679E1BE2373CD2CCE473A6DED0420 -:1088C0002F06F23CFA2ABA471FAAAF5A918E4E4B96 -:1088D0009BEB27CA9C8F644DA0ABFD1CF742C6BD25 -:1088E000B0DEEA4840FDD3B3B4BB01F98767D7D205 -:1088F0000FF15E7A799999F4D67263CDBFA31D64A6 -:10890000DCCBF35FF01B13880783801FE17DD36905 -:10891000D5FCFC164ADC5F2B3CF3B13307FDB18973 -:1089200046C24B4D8F1D6351DCE897DDA0E6B7339F -:1089300071483DDEF7320E16C9EF1B55077A2DEE52 -:108940002F97E7EB2AF03FE4439A9E6B4B37EAF20E -:108950007ACD2179BDC6903CE0AFA7AB79722A1FD2 -:10896000B2678DEF539F7A15EC605CE74EE043F8F9 -:10897000F4833D8CCFDD60AFE3F335B0D7D10FFE8C -:10898000C6AA51F47C739583DEBFBD6A123DAF4B1E -:108990000E98109FC91FCDBF33E717C8AFA7E19945 -:1089A00098966DC3EF76F0FA21331BFFD57D35D451 -:1089B000C7A9EDDDAEC5F49D3AADCCD62ECE4E277F -:1089C0003F38959B67342F46BFCFE652C53A03F038 -:1089D0006480C15981DF7960775A286E11BA9F0788 -:1089E0006768723CBC1DCFF013067A3FCEC0197D7C -:1089F000F8711E12F83AAEDAFBFE16A48F7E4546D9 -:108A000027E27172AA3E7EB07206D7F35E579FC905 -:108A10006FBB86F6755F5FA38FDEEA3D3B0005FA0C -:108A2000F55EEFB5B36BB1DE13139EAE06AA74D537 -:108A3000EBF8366E4FB219406F83B11C6A1F0628DF -:108A4000BFE4746D8E9FC8ED27D35B7712D25B575E -:108A50008CAF1EEDC4AE5D4BD7E3774244A4372400 -:108A60000BA4378C7F68F456CBCF6321D21BFC3923 -:108A7000ADEE3D670ED26302A72FE1999DCB291F72 -:108A8000E32E9E47A3D15B8C9A2F1F25B593BD483B -:108A90001FE6C07E407B1B04BCC773FC634AFE100C -:108AA0000B1CAE7074F723E9AD6CC64FA3B77FBB48 -:108AB0002640F9139D294A02EA335EF5FB813F9671 -:108AC0000ECFCC3073B970B92F11C7D9A08E336DCA -:108AD000C861F2FF15581D22CAB37C99C3356F7C5B -:108AE000267D6FC8A7F6DBED5456CC80E780B9270A -:108AF000C9CF3BC0C0E9F7C1B7CD8B11EF931A0EB8 -:108B0000164D437CB943247D3B745F1F14AA713317 -:108B100081CF0B9A5762701CF11E952EE53B3A38B7 -:108B20009F8F61521AAC27C12D15E7635CE86A0379 -:108B30007D4FA45FD1C11894CFDA78707009986F17 -:108B400082AAAF75DCF9F408BF76D3401D3DB7E0CB -:108B50003E7AA3E70BF10FFB0C41E31394EFEB52CA -:108B6000EF49FE58BF6DAF7EC4CBC3FB25AB66712A -:108B7000BEE131F1FC0F682DE177019A8A5C4FE28A -:108B80007ECED3FF764A7E17EE637934F995138C47 -:108B90005CDFC36F24F2EFE5B809CE5AFC4DD31762 -:108BA0006585E7172517BBFE80E36E62F22E94679A -:108BB00036079B47F13590678817CB8A9417675023 -:108BC000FCE5D2F4C02F8B9457895FF7824F03AE38 -:108BD0005776F7856F538AFE63CF0F48FF65DC5FDA -:108BE000BAB0AC8672B306819D84EB9DAAE6677825 -:108BF00086F07ACDBFEA1DA0C54F9542CC9F8C561A -:108C0000E135C6E26415D0BF0BE530DEDFDB1BF0DB -:108C1000E3BD600BDE2393D08FCAA87F4CADE093F9 -:108C2000B1BFF8E5EB182F32E5D0E744189BC4ED4F -:108C300001EDFE8D94FBE3FC8D87353E318E8D4733 -:108C4000F8241BE40726C3FBCC87F33AF078B21E66 -:108C5000591C8BE272E2A68612FCDED6D2AD9F6E64 -:108C6000427FE8E47FB7303C0FD01FFDC6B0F95C0F -:108C7000FF303942743570563CD71353C2E3E9E3F1 -:108C8000B354FD13F1344E87A76C66783C25FDE79D -:108C900027E069E44C3D9E1684E06914CD7BE978B9 -:108CA0001A3B13F0F4559083B8AF17E72A0366F622 -:108CB0008197DF952A897DD507C507C8EE1BC12698 -:108CC0005983BF7BA83D5B515EF6919FD07FCD114C -:108CD000CA8FF3D49EA63CE52EDB917D6807FD4745 -:108CE000AD450EF66781FEAED3D75B40AEB8C19EF0 -:108CF000DC304B247EB2E70E8BFF3AD46BEBF87D71 -:108D000084F2BA4D02E67B0FAAAE115CC0DFE21519 -:108D1000301DA17F8C62E8F19FC07F57980E903E76 -:108D2000BB0EE4B19BD817BF97A6C9FF31969AB77F -:108D3000D04EF5FCCDE8588DE7CCA45DC88FA603D6 -:108D40003D617CF39A6E906F41E3BDB56312F9D536 -:108D5000AEFB1EE45F901F670A8C185CCEB126EA5A -:108D6000FAE54929BAFA690997E9EA35BAEF8C5167 -:108D7000E32A595B72117FC40A9EA7305DCED0B53D -:108D80005F57964DDF03B86232BF7F3773D464DD1F -:108D9000F8A17AC1D5F03FA47731440F08D513422A -:108DA000F5828533F5F740D71803D9C49F18CFABA8 -:108DB0001B7AF6DF880ED6C91CCFBD65A7281FC356 -:108DC00003F63FFA9B0607E597225D8C3507C83FFF -:108DD000B761BE95CE63C38E27E8BB119AFF0BE83F -:108DE00086E8686CB64479AEE9F65F537FB694CBFB -:108DF000D950BA14EA5E22FD6FE36CD81B7E6F6D0A -:108E0000760A977B3B03E48760779A19CA4DAF6473 -:108E1000A0BCB1DF08FE086118D2AF42F28925304C -:108E2000C94BF992EFF1EF2932E6589388A6BF4279 -:108E3000798D80F6DD6FA979B488B711F9CCB17A54 -:108E4000327EEF97D377FFF1FC7C6C0E5E96AEE638 -:108E500065CDDE8E49602D98173B18C783B671B576 -:108E60004CF2905FC34FF543F2D9010FCDCFFBC752 -:108E70005731671394C51A45F537BBD4F87A37C50F -:108E8000BD53054724FA3786894E8A7B473389E2EA -:108E9000E283580D3DA3043F671E97C847AE00000C -:108EA000A0BC603799E9FB19D94FDA187DDF68A9B2 -:108EB0007933E5650564F223DE7388DFC3DB60FF89 -:108EC00005C5099AF6F1FB04F724B93FC478E6A07A -:108ED0003A81BE132E56F33882F8A6E89806F5625A -:108EE0005D2B7D072EBEDA407EAD2BCC35BBE81C5A -:108EF000EEB6D0F7E3BAA03FFAB9D6D90D8CE81593 -:108F000098C7397F2AFCBAAE7152DCA2EB6FFD48DC -:108F1000DEB1103FA7C7C5F56F4F9C99E397EDD41D -:108F200027C8B71BE322E97EDCBC6B6BF6211FD997 -:108F3000F09EE858ADFA9FD1FF3F14FFC0FC03B389 -:108F40003305F54E7375783FA59939F767A1BFF4DE -:108F5000AE25097DE951BDC6456C06BF39FAE2E38D -:108F6000220DE53C0EA2AD53DB67A36DB95029E39A -:108F70005F3F312E52D64B5C24502320BF1F8AF511 -:108F800063113EDC6F7DA971919AC24B8B8B68FB9C -:108F90009EA5FE5D0088ADE677505C80CECDD0B357 -:108FA000BE20386EC1F595E35F327F8F7186D96A36 -:108FB00079DF5307BF44BFFEDEDFEE7E0A9FD79DF9 -:108FC0007DAC6C39E045D1243BF97BF7FF32E641BB -:108FD0003E9C3E7E30CB61D1F9EFF187F849EB1032 -:108FE000F8BDFCE0FAA29075651BF5F1805C9BBEB4 -:108FF000FDD4387D7DFE107DD9CC6A084F43F7BB88 -:109000003AEA6ECA936BBC8D39788678D079881726 -:109010002E9B8798C3EE4BC337E64821BA5FF73ED5 -:10902000A77BE72B2BDE5A4976AC81EECF9F9ED7EC -:1090300070CF3B32E28799B9699C7C05F1E8BBDFD0 -:10904000A7BF4B311DC9E5BE11DA57E6F0EF459DCC -:10905000174F50FDF9436B77B5E706C57BEF1DE869 -:10906000721400DE0CB59D12500F195AFB1AD5CFA1 -:109070009D9FD5271EA5D5EE69CF0DFAAE5F9AD17B -:1090800069403F465AED1BF4BE37BDC720BB79FE91 -:109090005E9959267B4BCD534B53F126AD8CFB5B30 -:1090A000A5542E6F3698B87C7343B57815FC5F5B7A -:1090B00068BE1BE7EB6726F17B1D0CB810F22B6D29 -:1090C000BC5079A6C9019BC2F5C8B4B287B85CD1BF -:1090D000F205DB42F3E25C73113E427523B5DB9887 -:1090E000A3B6DBC9F5533683492897619F61F344E2 -:1090F00017A87EDADEF2D398663FCE79F343CCCF61 -:10910000FBD1F6632FE35E971C087BDFF636D56E46 -:10911000ED8C082439B81F38ACFE3EA374EAAD05C7 -:109120007DE8AF98578B30EDD55EB8C4BCDA8D6A58 -:10913000BC488B976AF9B5CCE81B87DFF91C65FB47 -:10914000F30D1407ED25AFF61EBB2380F7DCBD152C -:10915000118ECDECD2FDEB5BA7737E5A5DC0E81992 -:109160001A5F085DF78602DEFE5091F3E1823EE26F -:109170000A5AFB0F13C3FBE3BE2DE4FB3F775F29C5 -:109180009FEB7D8A4961E1F240B57CF7D0F7600F33 -:109190003D89EBD0CAAEFA34F2DB794C1C6FDD327C -:1091A000FF9EA0A63FDA507F243DAA85EAA3ABB973 -:1091B0003EA9E959921AD708A527A08F3FE23C8221 -:1091C0008DD3ADA6279EA38FB9401F409743188F1C -:1091D0002B19D4BCD121569E827EA97AD4F9F6D31C -:1091E000F7F64BB29FEAB74690FD54BDF92DD4ABCC -:1091F000D6D5723F61A7BDE62DFCFE81FB3D91F403 -:10920000A6DEFA6B76D447857A3B0AE38A888FF12B -:10921000369F205F8E7654C0E482F595A31D65C30A -:10922000BC555700E1166A4F75DDFD05E5BB82BDF3 -:1092300079B820EB1FC01F42FC4B8DD3393EEF1A8B -:109240007E8AFC26622DB7F7C45A1E0F3596F1B8F8 -:109250008551E17E1433C82374056A7E940D0EBDDA -:109260001FA52B89FB51E2736BFCA8079A26592492 -:1092700085E423F7AB6879ED632CBEB7F03E862713 -:10928000C3C8300F1D1455B2032D6A7C03FF410B78 -:1092900094579ADF24346FDA16E22709F5A358674A -:1092A000E9FD268F0AF2BD93619EE7D7E7BD83688B -:1092B000FB878D8BA3D06FF292AF61A6EA37791846 -:1092C000D7B3E343EE37E9DAC1ED22172A305785E9 -:1092D000C3BFF3E254E407B966DFE12AF483687E92 -:1092E000A8F86A151E6ADC07E18BF014F3393C63B9 -:1092F00042E0E91DA2C58554780EE0F02D2F709252 -:10930000DF4942784A3DF0D4FC54DEBDEDF47D6D7A -:10931000CB1D16D94DF0FC92EC5513C213E1FF138F -:10932000FD50E342E039EEE1CC07F03BC1E31F29F9 -:10933000E9C0E7844DB7C5DE00CF495B1F28C127D0 -:109340007B93C709FE7316E75798D91D4C8F636747 -:10935000C8BA3883064F0D0F7BFC778CFCB1E51241 -:10936000F7E797AB789886700BF6E739F470DBA0D7 -:10937000E64B1A736BDC68EF0E0D819B86871E84AB -:109380001BF2BB18B3EC26FF5D9D80F6506F78385A -:10939000B4EDC7E1E1FC59AA3DAFC2EDB9F599F7CB -:1093A00022BC5ED858F20E3E5FF4DD1685F0DABEC0 -:1093B000E58199BDC02D3198CFEF991E1E6E5B8B54 -:1093C0005DD5B3E0FD750E9F91F82CE01BDABD9BD7 -:1093D0009BC659F5F1198D3FE65BC3C98F0BFB970F -:1093E00096535EA1A76C39F1C7AE73FCB1DB8E79E1 -:1093F0008817CB1F2D85FCBE7D79ED77AF5F077099 -:10940000CDA93D4CF46704FAA373AB3B6C50F33128 -:109410005804C88BF832E6C7F8F12066F545099480 -:109420009F407CD38B79CEF881D2503F85F4C65FC4 -:1094300005220E261812808F63EED4152407EF9FA5 -:109440001586CFAE2B3390FF67B3EA1F944B9D2D4B -:10945000D84E8B6F2D2B525A67FD347FE1C3D85FF6 -:10946000F31776C6B073FE35FC3E784EED2601F359 -:109470005006D5DD4AF221BE4C61281FB266CAFCF7 -:109480007BB3B912EDF77C7F5B770EDA099D78A389 -:109490003D83F0E077384F67EDE38407572CE5FE16 -:1094A00091CEDAD3B1E1F1A036E2D2FC8C9B757299 -:1094B000D25BCBBF63D26957DE4CFB11783042C51B -:1094C000034D4EA2BC417C3296051E463FF620C09D -:1094D00087881494979C1F8BA0FF44C17EC45EFCB8 -:1094E0008F1A3D74C1DA2CFDF09E70683E400DADC0 -:1094F000FB7459B67F621FEBBBE83C00352EE95187 -:10950000E3920B6B79FE6AE71DDFE5E17A4F978105 -:109510007D0070D95CE660787ED340B10AD882E7DE -:10952000392F6F358074ACC521B578FED662E7114E -:109530003CD7EB00A712FA635EAF1AEF19A27E07C1 -:109540003A04FF01CF3FC77130DE837240F3A3338B -:10955000D41BED88DFCA17583FD65C9328117EBB19 -:10956000BA71FC753BEEA4FC851EFF20CF87FBC9BA -:10957000FEAD6833E5576AFE2DAF9DFBB72A5880D4 -:10958000FE9D3C8A2320DF6EB5D0F71AAA04D98C41 -:10959000EFF717BB8C85A4F738291FD635C72A915A -:1095A0001F6CE9B644E417E58D22C9EBDEEC92F3BB -:1095B000E9EC47F21995EE2E81CF0C2EBC383E9384 -:1095C00054A8E733C9853F217EB67E969EBFA0DEB4 -:1095D000590FF3E4A8F4746EDF6A1C1FE3571119E6 -:1095E00041FAA8BADF503A3A4F2FFDBF8FAE66223C -:1095F0009CC3D0D5ACC21F4757A58503FAA4ABB90D -:10960000857ABAFA1996FF17D2D5CF691F17A02B02 -:109610006321D3E749C7F2EF3C8F8935F03CCBFF9C -:10962000C379D25FCDE4FE8BD03C69C66AA85C00EA -:109630006743E7A3960BC73319E34C964DAFAD1DB7 -:109640002DF3F182FD9D2CC4CFC942FC9AA1FA5D95 -:10965000183FA8CEEFB9F789BFEC1D0D7F3EF9F496 -:109660007F915EBB6FAA40F7C90B477EB71375D0D9 -:10967000A23595EA3C7DFB3DFFD97E4EFC05FB55AE -:1096800043F7D51875B77A6FE0C7F93999E356FAF9 -:10969000BEF9BA1AE640B85FC8EFB9AE8EE74D6BB7 -:1096A00079CDCE57AA1E2C1DCFF3E9D0EF19EAEFE2 -:1096B000D4F2953DB64AD2F38F2856EE8F0DF1774E -:1096C00056C6CAB7D03DC6F3FD9DEF16FE03FC9DFE -:1096D000930A64FE5DC610BF677CBEF261611F7EA7 -:1096E000B3CE1807437E9763F30918AF656733C994 -:1096F000AF33C816A0EF6B95D74E213DF06491EBC8 -:10970000535CA731B7FBAB97C653BE8103870AE50D -:10971000CBA0671E2FFC27FA09FE597E3E5F01F79A -:10972000735DECFD791FC23BAB8F7BF472E0912837 -:1097300078FF68BD9DBEAFB552D5A33B4DDD492D29 -:1097400050BFFFAE13BBD13FE16B3330BCDF76B10E -:10975000FEA3860BE8C5E610FB68C339BDD8F7D673 -:10976000C420BDB86155FE8E6361C6D1F4E29B662C -:10977000EBF5E2721BD78BCB6DDD26B40FCAE3BECF -:109780007F1DF34E8DD5AC1DE5E220A586F4E17872 -:1097900089513EF1FF8FCBB37F685CBE78B63E2E19 -:1097A0003F56CD47411E8FDFFFE9D2FCA893B8DEBC -:1097B000B0C6C8ED15AF02EFC2C4D143E3F243CF48 -:1097C0003E4371F975DBAD748F6FC38E663EDE1458 -:1097D00026619E792253F5B502EE2F0DD53F1E3539 -:1097E00029D694F188EF06BA4F88F704C92FB2DD65 -:1097F000BA09FD4DE9769ECF6DDEFFF256B73148CE -:109800003F043D94F4E2B2007D97A95C7230E23BE4 -:109810007193FC141FAF1308BF46CCE6F4B330D7E6 -:1098200047FAE1A03249E0F7C4DCDC8E4FE671E78D -:1098300048C42F682A8EE2715FE980E8C0B8F37DE2 -:10984000D87432DE5F65FC7B15930DF4EF50AC13DA -:10985000BA13902FB70A4A223E4167A27B8F4FC7A7 -:109860002803F1DF93F22419E8DF93DA93D7988085 -:10987000EB6BAA6F4D40BD70CD6C1E4769CD3B4E62 -:10988000F90FA674D00753E819F6DF1D9DEB14D429 -:10989000BCC0F604FA1E026BF990F06A9499F17F4D -:1098A000E7C7E15F84F474CC46FAC2AF041FBF2758 -:1098B00064B7D27DBC96CBCC8955B09E66BB99B4BB -:1098C00009EF65530FA4C0FBE6015234C601BC2961 -:1098D000A912FA8FBC318D6FA21FA439259561BEE4 -:1098E0007F53D9048A9F379D0506033D3DA347EC6E -:1098F000CF82F76B84007D37C83DD9C0309FB0ED73 -:10990000B2A989C1F7324529544E3A482E88B2810E -:10991000EEF9896A3C5B3C2F9EAD8F4F7F3F9BEFFA -:109920005B662DF3E81E689C59C2FD965F56FC21CC -:10993000DD738B33535E50B989F1EF7E5CC6E85C12 -:1099400042E1E759A58F2B186DFAF5ADC1C034E59A -:10995000619F5D82F8D18030A53CEEAF96205F6AB2 -:1099600038577F92D747F0F2CED94797A01C941969 -:10997000FFF7491A46F1BCCBF201C5C487CB4D8134 -:10998000B0DFF9BDD07A64E653D4F1D8FFE4786B48 -:109990002E33CFF3A55F78BC9E7301F5F912C6D5BF -:1099A000DA858E1BDAEF7FAA7D6FFBFC68F6B9FBC8 -:1099B000719407412AA27A9F0DF564A3CA0F3DD97D -:1099C000137C7E19F9819BD3458C419767FBDFA6F9 -:1099D000F2D6B800800000001F8B080000000000D5 -:1099E000000BCD3B0D545CD599DF9BF7E6CD10669F -:1099F000E00D0CC910093E082831045F1288A04907 -:109A000079046240A94EF809B825E944A346DBB3BE -:109A10009DBAD6923DD932094320989009A9256E66 -:109A20006D8BA9D9B5B547A9DBEDAA47BB9398F5CE -:109A3000F81FDA5AAB7B3C16539BDDF6B83DF42792 -:109A4000969ED336FB7DDF7D0F6626432069F69C0C -:109A50009D1C72E7BE77EF77EFFDFE7FEE9C3B87A4 -:109A60009F5A8073562B6B2A9865C09F73607DD672 -:109A7000E0736AF93FD0FD0B0114FAE6C047DD4DF3 -:109A8000F1A24AF1BC25404370BE1B4003889F935E -:109A9000F0A9050F5FBD74AE182014C4877902AC1D -:109AA000B67006EE4FBB56C7EFF4039C4538B9C6F7 -:109AB0000C1CDE47113040B0C763FF5A35FCEE9DE9 -:109AC000B4EE35601CD367C62BD6BA571F51216E32 -:109AD000CFC7BFCF5AEBFEB4AB353BE499396F6AC1 -:109AE000BB6C3479DE8774065C27E283D163F83D72 -:109AF000FA6E4CE24D3C837FB8DFE84A6D74109FEC -:109B00003F688FF3E2B822315FC7FD66C0CC47598A -:109B1000C878B05E428903E7EFBBBAE2519AFFF022 -:109B2000E3C3DFFA363E3EF29D3DBFA4764149C510 -:109B30005035C2CB341C86403B044A900E4EFA8608 -:109B400078F47CEAC814A21FFBC978DA5B7E678CC4 -:109B5000C99748471C7FC77EC9D4703D97C77354C7 -:109B6000A6FDB92593F62B1F5EC4FB0F6C4FA6FB19 -:109B70008864BE1DC0F19103121CC37E8691B00E95 -:109B8000FEA905C9E39B09BF55D44B18871B3F2885 -:109B900041E7581A7C3F1874303D886E9184FD1F50 -:109BA00072EAB7105E0FED932182200FED74012C45 -:109BB00006F846F0DFEFDE5D02F0853E27E37D64C8 -:109BC0009D3A2AE1FB11AFB6B993FA4B1CC6511D61 -:109BD0000463E2B90EAEB88ACF65AF3778ABCEEB8F -:109BE000C5D6A9F9E0A1719381A097F9E88D2AE281 -:109BF000A3B765E6A3D4FDA7F2DD5C7C5618CCB113 -:109C0000F0300AC115C89EB279E20CEE0FAE763084 -:109C1000FF2CBFDAC1FB3B5B8003A4D9F9B0AF07CF -:109C200017B87A866F548BEE7BFD2DA708FC6CF37A -:109C3000D4D171B3A882D685F05839F27320797FD8 -:109C4000F6B8926979F83B5850C9723726E3595DE6 -:109C5000A371132AA81D37256CCB1EBD5FBB90BC1A -:109C6000B820017E11C1053E7FAAFC3A21C448DC20 -:109C70009359781B9DBF6FA30AB29406DF73F40F4C -:109C8000EDBCDB24FA473E0F4629EA096720992FED -:109C9000832F9430FFC80332B8A444FE6A34895E2F -:109CA0005FBAD539AD7FDCB61E23BA1B45E0C07D57 -:109CB0001D7E4B66BE391CDCFB0B99E4BB51D525E0 -:109CC000DC7F46ECEE87DAF1FDA1D765631087777C -:109CD0003FB3EB67AF627BBABA788D544C44322302 -:109CE000DB71FCE9F56E63D010F2378D97626E4C34 -:109CF000F79A99F50E5517F37A515C4FBA001F2861 -:109D00008DEA0744875478D3FABAFBF858C3EA04BB -:109D1000B95A187A2188E71BF2E0263CF4FE24BFEA -:109D2000874AE4CBFCD9D7418C325E7E465F71DC3A -:109D30005F5ACD9304A7A9B42A9249E7826C207C8C -:109D40007CE8356EF4E190F79D86DB289F99DF1B58 -:109D50007342BC9CF080EB62DB0C135B5A88EF4BC8 -:109D60009CAC3F64FF4A7EBEDD1B541CB8AFFF0CA9 -:109D700016F37AF6FC26F8B2721FBEBFD639DA4067 -:109D8000FC11DD0E5A04A76CF3C614EA6FA00DE2B5 -:109D9000C21BF53A7711C26D7C9E1602A8F50DFB29 -:109DA000C90E553C77A42044EB47CC1F95219E7DDE -:109DB0000255B0DC351EACC7F9BD6FC8C61E7EA209 -:109DC0001D0FE17C252003D1497A6A6D6002F7A35B -:109DD00078CEBC075900EB26011A12F8A976CA0DF5 -:109DE0000D097AAE0E2127F6EBDDF949E337684518 -:109DF00049EF65308D38D277636059D2386F55A5F9 -:109E000046FB6DD257263DBFB9AC26693E3428A724 -:109E100027B0BF16FF11DD65107D5BAE3CE5D84F66 -:109E200098AF40421FDFFF25E8F59FC9C4CE75708B -:109E30001DC94F33189D241F68BC8D63889785CF3B -:109E4000B92732C9909826DB75C9E2CFAA4D454C97 -:109E50001FC973C641F87F0461C8C81715DA848327 -:109E6000E804DA98C4CF516F0C22B2038AC9E3D058 -:109E7000C069511C77056A6F0DFBDE00C4A8BF04E2 -:109E8000623C1E3FB1C335C8166E313FAB058C83B3 -:109E9000F83EB33C2249D8CF69044346781E635C40 -:109EA000A27D6A385F5E492C19E77E41238CF73228 -:109EB0007C730FCDCFEF06AD2F9FF997DF8F7641E3 -:109EC00084F6F32818E092091FA890969216097359 -:109ED0007B25E839A487BE09C62AEA97C204EB2588 -:109EE00034EF12F517C19826947D9CF5374C28BEA7 -:109EF000336EA1FFD3C9CD8CFC2870C6A60B0EBE55 -:109F0000FF56B37C13EAC1CDB7555DD0DF50BA5FC1 -:109F10004C92DFBB37E98C77A57B23CB8BD2FD122C -:109F2000BF1FD814BC6E133E2755E05E75F1F8AF25 -:109F300050053EA31218E8CB40F4D99B02DBC85F62 -:109F400079D66D94B2C8233E892FAADD93AFD48809 -:109F5000F9440F3FD283F09D530E12E16009D10105 -:109F60009FAB48877D4CC718C32D0C83B1DB5A9734 -:109F7000FAF94807A2CB28680B08AF72F8E2E8C0EC -:109F80001F84B3E81937FB470AD165E965A1CBA760 -:109F9000098F174B97547AC0AE5C809AB9F5E95790 -:109FA000A57886B494C882F4C1F348481FC26700FC -:109FB000043DD0AE1B84A774F8A77E4625E87BB885 -:109FC0002FC6133D233533FC9F8DFC2FFA42BE7CF8 -:109FD0004807D11774F293BC603F101CE3F939DBDA -:109FE0002178209FE86132F26CBBEC8249F66B8BE2 -:109FF0002583E9B55446070DFB9952DC727E46D99C -:10A00000AE6781C6F4590C616EFDCEC9E3E7485FC7 -:10A010007B1CA391226A9FAEA3757A9B51C390CA01 -:10A02000F70ED7315FDE035A29F25DA16AB2FE2E28 -:10A03000BC4631227A22BEF608BF49378F90BD292F -:10A04000747861B07266DDA8D308C4905EA7BC675F -:10A050004E84F0F9827CB4EFC60C9E4F3BC5F908E4 -:10A06000A67C05C983908F4035EEC577BE7E0B2850 -:10A07000826F3D3B107F888FADF402F1240DFC1BF5 -:10A080003F7FA45EE8BBCF6E0A3D4EFC42FA89F1E9 -:10A09000678246FA493380F5A6438FB09F7076C039 -:10A0A000A5139F426CC424BF629BB5CEB601D707EF -:10A0B0005256C239A3AE243BEED083D9CCCF86040E -:10A0C000E41FCC77DEA5F23F74E7CDCB0FA87B6A07 -:10A0D0006DF644F9ECE354928FDCC479824EAA3FCA -:10A0E000C47E874A72923B371C678AFF62C371063F -:10A0F000820CC769FB2F64B7909E77A1DD1A447C60 -:10A100007FDA448788F972F23FC89EDF1ECE62BFB5 -:10A110008B5184E3EE8849A383C88F774258253E4C -:10A1200095A02442F4DB1A91D87F2BDEB73D8BFD3E -:10A130000568D0083F52FC06F9DCF28BC0A385A766 -:10A14000ADF15F3A752FE1D50B3F4F88B7ECF7BF04 -:10A15000EB5A7AAA4A27A5ED2923FA665AF445B59F -:10A160001D790DF7E9FC53360C6AE4177FE98D5A27 -:10A17000DC5FDF8F6583E2B34C10F1D50210763CD3 -:10A1800093E47429F1CB58FC33C46FDDD91A9DD701 -:10A190001E07D6B80884D83FCE443D40701D99FBB9 -:10A1A000993F33B354DDF6B721F11C6E89FD608F02 -:10A1B000A572F3D4789CE42B0FFDD8DDC9F02511EE -:10A1C000CF03C7437C0EE9FCF55758FE3ABEAA3BC5 -:10A1D000370FFF3ED57F87C47890C663DC194FC028 -:10A1E000EBB4BC587266EFDBE35193E525659E4DF9 -:10A1F0008F72A7E08FC5187FEDC6FD0E0C1CAD2336 -:10A200007D3392073A469AD0BFF59F248AB3D693FE -:10A210002E26FBD300A3144778401F2CC3BEB3C027 -:10A22000C3FCB3E8BF83F1CF209CBBAB5D9A8E38F3 -:10A2300059FC91A9D5E1FBBB0ADC8689F48D5AE370 -:10A24000230DE86789E5DF26BFF44E6BBF4C0B9406 -:10A2500043B3A588F95DF1B5ED7D8DE2DEC532C869 -:10A26000A4D7E42E83ECD39D1830E4A2EB0E5F76E6 -:10A27000B2DF87FE1D9FC7D590ECF7DDF58833A9C7 -:10A28000EF4CF1136B5B92FDC0A616E075693FB908 -:10A29000ABFE7AF8E0F1B3FE5CA18C3BB43476D52A -:10A2A000C6BFF49487F1FF421EE295F32441F37395 -:10A2B000D877211E895F11235955882793BEEAE478 -:10A2C000277FEF3E1AEF3A8BFC4BE3654FC3E788DD -:10A2D0000E57587802B12F13FFD1BE53FD61578A34 -:10A2E0003F9CBA6F9B0E77D8F859036B083FE89FE5 -:10A2F000B37F609F2BF53CCF637CDE80BCF4831E74 -:10A3000037B7F11E8DDB133D016E4FF6E8D0808E1E -:10A31000D54B3D65DCBEDC63F0F3577BAAB9B5F1E4 -:10A32000319BBEF1E639D85F38B4CBC17902A55C68 -:10A330007BE56AE2DBB764561F1AE819CA52B643D6 -:10A34000A0E0B82B1B955193CE62C53F8B2C3E5B92 -:10A35000EE9A3CEEC279B17C30F6D044B4DBDB2B14 -:10A3600067E29F75938E1939018A771624E50BEA07 -:10A370002037A95FEFBE2269FC066D69D27B9BBEC8 -:10A38000DFA81372B331B03C69FCA186F5F1BBC9FB -:10A39000AFAF7169946F68D25727BDBFB9EC8624FF -:10A3A0007820371BA4A773BA12E8C6E74FA6ABBA4A -:10A3B000E3C271904DE7D11439988DBEA97C6BE34F -:10A3C00035671AAF22AE8C525CA9D3B9CBA56D0804 -:10A3D0006A68DA2F3181F24BF6BA4A35C69715977B -:10A3E0003FBECCA2F8B2285D7CF921E76DE68C2F48 -:10A3F0001B93E3CBAC14BCCD155FBE7A89F8DC5A55 -:10A4000028F26E39AFCBEC07CA8D61B67FB9E3B2E3 -:10A41000B191424FCB1FF392CCE3B8AD552AFB97D5 -:10A420008760220022AF984FF630B7DCC8277DF353 -:10A43000A4CF5C781BC5F94D0EE3284E79B1EE2B05 -:10A4400001F23BF6ED7E34804609FEA7C5C1FA2E27 -:10A450005677660BC995A2A31F27716B8EA6F14F85 -:10A46000ECF176BEF1E016916F3C68E51B0F5AEBFC -:10A470002042D8DE8E54897CE3AF5B742BFF17E15A -:10A48000FCE2E12D6BAC7C23F657D07083EDF8A095 -:10A49000D730EF20FEF9850722F8E880A4654964EB -:10A4A0002FB63834CA1F8F34AE7A97F249FB3CAAD4 -:10A4B00041021FF5ADC927FE92B7A2DB83FDE1C6BD -:10A4C000E19769BE52EAE07E74CB559C171CC9D354 -:10A4D0009A8A29CEDB504C9806F9993FF5505E23B5 -:10A4E000EA3B13A0F9BDD78BF9B3D12735FF2F93E2 -:10A4F00026A6F8ADC41157118EFCFC993F13BCF38E -:10A50000F2F3297EC5A04FE5BC6DFE8FF77E2B527E -:10A5100042AADCE47CF308CA3CE169EB96966C8ABB -:10A52000A7B63A27F2D2D90B3BFF39ED6FFA93FD6C -:10A530008454F8FCB1F36B0ED1D5EDBC2D7EA2B7DF -:10A54000DC381A27BC41ACB198E25E8FB0CBB3E1E6 -:10A5500041F15CB80E22776798190978B0EB1DD7E6 -:10A56000B68A3CB8D1AADB79C6A47A89D2E8E07968 -:10A57000B67EB0F3E3A975127B1F35AD224F7BFD8C -:10A580000CBCA4BA89BC56B5E0191C17A7E6B3E702 -:10A59000AAA3CC95CF6EB6CE73B175937B5B81E7E2 -:10A5A000FD7FCD7FDFDBFA7F93FF3EBF5E34CAF2D3 -:10A5B00003CF4CFE9CE43BBA6CA13E28EA4349F52C -:10A5C0009CD43ACE60868033BC52F8A9C3563FB2C1 -:10A5D00042C04DADEF6458799548EB521187812107 -:10A5E00088AC9885C4171EE5BB110DF96181E71091 -:10A5F000F8B075F9B745A8AD2DD487AA715FC3CB64 -:10A600001C6CC786BDA147FB480F2DF3A4958F8313 -:10A61000AD422F0E10DF72FC04A683E44EB2850417 -:10A62000420EA4D708733EC0D1569FC86769B1EAED -:10A63000DB118F5F25BEC8E3F3F0FC54F85F3B1FCE -:10A64000FE63C4AF510B38C1D98670BED93A5D479D -:10A650008CD07BB7B59E5B8F5593BFF058AB26F47B -:10A66000B0B2D2A0F30FFBD2AFF798B59EE9084B7A -:10A67000346E5197980F6E31EFA034D9795AD09338 -:10A68000E589D6A7F79946B27E48859B5176E17A4F -:10A69000D9D3D3FB4F8E870E48E9F7F9634B0E6B86 -:10A6A0000B81ED11F1C59E347C912AEF2AE53F1113 -:10A6B000EE098B0EB6DEF128E3EB332BC9BE83D156 -:10A6C000CB883DCEE7DD93790BC7C97D378B3C87BF -:10A6D000AA08BD5DD089606AA8BED210E1BAE1FDCA -:10A6E000A0B97CE7E3E162E33DB2379184F93FB181 -:10A6F000F823B52E18A3BA20F9B15417A4FE4E576B -:10A70000673ABBFD6E8BD3B2BFE9EB3B47A8BE8374 -:10A71000F38F545BF59DA0A8EFD43DF508ECC4F78A -:10A72000BF331DECB74ED7771A8AD7480E9623A0B1 -:10A73000FAF47CEB3BB18679D67782175DDFF9635B -:10A740002BE2E79047D459A6EB3B6DFE79E5757493 -:10A7500088C5BB49AF7401E3C1DB340C3B299F10B2 -:10A760001071C6892A97E0AF9D92159F4103D87A50 -:10A770000A3FCD5DFAC3B9645FDE714129BE5FFF58 -:10A78000C4EB0AF587F31D6B287EBE569D78F05A00 -:10A790007ABFC6C9FAA30E29194FE28FB8CBC145BB -:10A7A000F0886AB5B268E312B5F5EECC247DBD4100 -:10A7B0004B8E3F86A64EC8D9C49F1A1812E279A8BC -:10A7C000CE30B349F71813BDF47C68836E0CEAE40D -:10A7D0000F27C729434DAAD0A745C2EE0C1FD71F8C -:10A7E00026FFAABF3B83FDCF03050E71EE1218258D -:10A7F0007E68D293E39AE1B1E27D2524673127E7B1 -:10A80000CBBF3326C66FDFBD7294E252CDF257B78D -:10A81000E7AF673F14FAC4B89BCB96A79C7F5C2335 -:10A82000BE88ED7402E1BFBFE0F601CA877E1075F5 -:10A83000AE2671196AD3997F6DBA6DEBBB93EB4469 -:10A840007D2A70DD74688BCAFC3F94F7C1913B4848 -:10A850004FE72D603C8F6C51F34309F270A2CDC5D8 -:10A86000F41ED922FC8B3C0784C6D2BC3FD126F40F -:10A87000D027EF013E4F16DA651D1FE94A38EE2258 -:10A880007C1400FC231D27F0E1437CFE460794E284 -:10A890001687FD5DECBFA5F2D9785B69525CEBAA27 -:10A8A0007624E1D1E90A8639CF7D33E8A4AF1A1ABC -:10A8B000B14FF17D970AC46FAEC0FD7CCE1CEC6732 -:10A8C00060DFDD188B28D87797845693DFFAE2CEC5 -:10A8D0008E01CAB3B8FC0E8DF8CDD57557B095C6AC -:10A8E000573A2103DFF7812E05689F1109485FEB76 -:10A8F000106A247F7D38E0D0286FD31C6DDF41EBD8 -:10A9000037FB1700D1796B9383D73B6BAA9CB4CAF2 -:10A91000234783F25F0B3D6C77DF77861FEEC0F134 -:10A92000EF23BD223073AE5D6DC54CA70C3D397E63 -:10A9300076438CEDF05A73BC8BD6595BAD52450310 -:10A940004ED49C3942FEFA4895CB70E1BE466A244B -:10A95000C6F7C755CE51BAE7F003755CA6757FF010 -:10A9600031F246513AF9BDB0DCA48E1FAA6E7113C4 -:10A970003FEC458A107E22530EB65FA9E3FE6CD1F0 -:10A980007F2FE285F01CC1FD96525C34897285D020 -:10A990007D53C1C7EFC076559BC2E3BE90EF885090 -:10A9A0005DA8BF496539E9F78606E8FE4F3FF23BEF -:10A9B000C743FE10F3F370BE9FE5D05E67B86673C1 -:10A9C00019F1CB1B5519ECB757B535DE4B7EFB7A29 -:10A9D000F9A37F798AE2A70295E9D9EF0CC65F2532 -:10A9E000BE6E12FEE2C9250FB0DCF575DD0E8437B0 -:10A9F0008884DFA1BA555F650DC3B7F30DC34B441F -:10AA00003EA9CF7F5F84F21BF16A915F30F38E72B3 -:10AA10003ECFCE2BD5597A6CB92BFC4A29CDBB47FA -:10AA2000117561B9204AFAC04579259AA724E7BB78 -:10AA3000D64D26C7C18B53E2E0D43C13B8C74B5A5E -:10AA4000D19E3ED986F1F17298CE2BD111588E2B22 -:10AA50005D1C2F8E548B3828E60CE76BE5E7CBF1B5 -:10AA60009B961F3CDEE3460E00F8518FC6FD2CF38B -:10AA700037BB7311D45B3D017E7EEBDA47A5C47909 -:10AA80004395ED6E9DF5C64480E0A6EA8B543E5892 -:10AA9000DBB6C0B20F26107D872681F1EBAD5915CC -:10AAA000273E3DFB7BE038F4130DE31E283E7F7EFE -:10AAB0009CF6E9A2FC97D8E749DAA78BF25F627FA0 -:10AAC0002FF7E8DCBEDA53C6ED827610797E5B1F85 -:10AAD0005C89FA00F1D65020FA24FF648773FCB732 -:10AAE0000789BF5C014523F97617C4E252823E18FC -:10AAF000F186DF25BBDC9FE761FE4BDDD7AFDA1CBB -:10AB0000D6B9C2B711DC21844B787F71E77F3DB4A1 -:10AB100094D6794B66BECAE9DABC83F50EEA850C99 -:10AB2000F637843E8CE57938EF30B2B354A2FB504F -:10AB30005B770B47774EB9C7754671DE09D4D7D41A -:10AB4000EF4739A7F3F4D77CF0195AE7E33F2EE03B -:10AB5000FB4D235BDE66B97F030390DCCB28F7B6A1 -:10AB60009CC5DE5AFC6D117F073B9E11E7673D389F -:10AB7000E21D8FD1F9FB7F22433ABC5D2A5DC19C67 -:10AB80009F1F32AA4C1E3FE74F53373445DDB07745 -:10AB9000EC7BDC8F34039462FFEB4ED34D7CF0F5FD -:10ABA000DD8E0BD60DBFBEFBC275C3D12F3BC0A53A -:10ABB000CDECE30A98E03C2B85F05407ECA357D882 -:10ABC00066B787AE6E673F52D415F51ACA39505F23 -:10ABD0005B40FEF3C026B38CDFFB73D8EE0794B165 -:10ABE00038D9F500D5CB75BABF10E1BA27E567E9CA -:10ABF000FE42EAF97B9D13EBF97C3884EA95A9F5CE -:10AC000049C9F37D51DF5F2AEA90767DB2429D38D3 -:10AC1000FA20E1E93637E3A1F7D9EBDFA1FA975D36 -:10AC2000C70F5875606D0768BBC539CC76F2FB9FBE -:10AC300017F550B81ECFB192169928DEB482EB9B5F -:10AC40001BE81C73ED7FBE75C3664BBF2173F33DDC -:10AC5000C89F59F8B4C7FD4DBB90C76B5591B786D7 -:10AC60002C95F5FCFA273C2093BFEC558F929C6CF9 -:10AC700083890D244FBD3EE1B7450F39D96FFB5491 -:10AC8000BBCE74CD534DBEBF90F7F719C66E0413FB -:10AC90003DAE65511EE92FADE6A7DA791FB1B616B4 -:10ACA000DAC780CCFAEEFDD20D7C8FA949CA66794D -:10ACB0005434B330515FEE6A4F7F1FA9B670B2852E -:10ACC000D7F73A80E2AD6886F1B24EF87E4161B8BE -:10ACD0004D20EE2BC1764D1AC073F67A4E337D6A45 -:10ACE0004B5D2B493FED6A17715BD49B3EAE7BA059 -:10ACF0005DC49F852DA12F101D6E82C97AD26F2849 -:10AD0000DA4684EFB588786D17E94B11EFEE72AC37 -:10AD100099C96BBDE40CEDA2F39ADF11FE842B20E0 -:10AD2000FC7A8CD4381F74ACC5FC0782DB4C7C5E8B -:10AD3000C98A0A8EAD3C7F1F519B2EED662FC13B09 -:10AD40006CE9E70ACDE4BA6B05388C5E7F425D5D45 -:10AD50009F5F5D5DD2BE2FEAE937083E86E723821A -:10AD60000FD78346F284FC7798D6B3EF97543CB75D -:10AD7000A388EB2E9758DF3ED5627E95E0BDB829BB -:10AD8000F8353AF7FB3B3B80E1CDF3BE466D6138C9 -:10AD900010443AF56708BFF9C93AA3339890FF7990 -:10ADA000D3A2D79B165D97233B8D8B7B6F6CC7AF70 -:10ADB000826A37D12B157E5F0F8C511D68B6F5D591 -:10ADC0007DF7B9294FDC5BB0DE4DF7D1A29EF5D9F6 -:10ADD000D4EF2F3003B47E5F4FE3B31F96121F09E9 -:10ADE000BE8F2C11F98818EAE748429EF4C576997F -:10ADF000F7555F0071CAA7BB3CC22F7261BCA8AFF8 -:10AE000020BFB99AED393E1FA3D4C16B963CC9A6A9 -:10AE10000126DD172C0089F0853A727A3E99BCFA3A -:10AE20008230D0BE66832337E07C8A470B34F643FA -:10AE30007EDDAE313E7DA663268E87F9E3EBD01C26 -:10AE4000F8CA99035FD37C6DC95D2A9ECE109E8897 -:10AE50004F7C0FF0B9E04FF52C672E547854CFFF9C -:10AE6000C8C68BC7849097C37F89F013A50B36E5BE -:10AE700033F8455F91F12B6B619EE72A3020B48255 -:10AE8000F0A149848FD4F3573CF77803E1ED956D39 -:10AE900042AFD62A96FE08E359903F6FB2D605CB53 -:10AEA0002E356508BBD30C3FF488BCB6E0D30A74DA -:10AEB000C7DD39E7EB57BB7D72967BD74F6ECE105F -:10AEC000FE903EC6FABDB751C0F77A851F7A74600E -:10AED00015FB0F37E6972E48D48F97BB4E985A171D -:10AEE0009CAB0E38C337A69BF6F93BEDBE085D95CB -:10AEF0009B8D3F1E24FE7192DCB8B93DEF7D613021 -:10AF000060905C2D31238074DBEB0B07887FFA8E19 -:10AF1000EF7C87EA24CAEBB241FEA6A20481C6DD1B -:10AF2000981766F9D8586002D5951EEC31BF9B087A -:10AF3000F7969650F966A45BA63666121C0FC423DA -:10AF4000648F6ECA35C3C13474A8DE2CF4C7B196C1 -:10AF5000E02A9A574BBA7315C0C39BCCD5D49FAF88 -:10AF6000BE3A5F9E1ADDA4F72F5D9E5ADC74BEFECA -:10AF70008220DFD3EAFFA14C1ED6F4B87E4B9EFAA6 -:10AF8000973C00A104B90A6E4ED13B7E4BEFF84DC1 -:10AF9000968BCD9B752B0F1C64F970923C9527E81E -:10AFA00019BFAD674C9647C56FCB93257F244F1EC5 -:10AFB000BA1F3C594F7E4A1F887B8CA9F2156E0937 -:10AFC0006DD94C762CEFB7AD45FACCFD4F5D17F23D -:10AFD000D45F60F1FB92A799FFCF22FFD365E15EBA -:10AFE0004F7112BFDBEDDA2919E2488A755312B7A7 -:10AFF0009F98CAE4B6762A835B732A97DBBA291F27 -:10B00000B7EBA7AEE0B67E2A9FDB8629E4FBD5C866 -:10B01000FF5345DCDE38B59CDB8D53CBB86D9C5AB5 -:10B02000CDE39AA656727BD3D40DDCDE3C5523D6F5 -:10B03000A19A504E5AFEA772D665E07F2342F5D101 -:10B04000BEE3F7BC43F8716A2AE751A2BE355CEF54 -:10B05000712A61E6FFA30542BF6FF408FAA4F2FF6C -:10B06000B196D0FE74FC0F4E716F4BA17B5B95ECDB -:10B07000E70C337F9FE7EFBEF447CA83A2FF7198C6 -:10B08000DF5FA2FD9FF62B1726FB95FD79C97E6534 -:10B09000DF12DBAF748D521D6CBBA4F33DB1532D99 -:10B0A000A17FE6F521B88DDE87DADC1AF95351DF8E -:10B0B0008D010FF6B7EE9581F27DE85F7C8BF80C81 -:10B0C000503F90DD98AFBC3EBCC9D2EFD6F80A38ED -:10B0D000ED085F847FF23E7DAD395FEE679B67CB05 -:10B0E000FD55509691CECEE638EB85DC6B42EEA353 -:10B0F00005C101CAB74453E4DEB6A3888724B93F2B -:10B1000065CBBD25C7397E71EF2387E41EF9EA2799 -:10B110009BC579D1DF4EB2A38A35DED928EA5BF52B -:10B120007EA1579546A12F142DD98E22DFBC4B74DA -:10B130004995F78822FCE3A6D27F9DB667645773D2 -:10B14000FC3E291B97D67E3F11A13CD6716529CBC9 -:10B1500077AA1C45B555CCE7C7957A4827FFF396E3 -:10B16000239F6D474CB623A9E36C79EA3BDEC47894 -:10B17000B1EDCA713CB799604F366A020F684F3E15 -:10B1800026FE4A95A7DA4233144CB34FB543F8A5CF -:10B19000AFAD0B0A7F11FD44F253A2CEF47E80DAEC -:10B1A00021FC9F9C46EBF7153A8473510F3636C647 -:10B1B000EBA98681F2AC7620BC75E6442FC960AF5E -:10B1C00067D84FFB47F97475FC15F2F9D126E117E2 -:10B1D00042772EFB2D763B17DFDBFE8ECDFFA9E3FA -:10B1E0009E2C323BD3E1E5F3165E8E0E3C9DC41FD0 -:10B1F00043CAD29B0C3DAD5E358DCBA257E7E757D6 -:10B200001C473BC77A7576BFE2BA8E347C309B5FB1 -:10B21000F1890E91CF45BF621DCDAB2D177EC5E7DD -:10B220003BE0F2FA0B35F731BE2ED55FD86CF1DF7B -:10B230006CFE425787AD37C2AC375C96DEB8587F9C -:10B24000218D7F703BF32F4CCA54FF43541B221FA8 -:10B2500022F408EA99BBE83DC6F1EC2F1CF5087E04 -:10B26000312D3D736D7B7007E175A85AF80B974B34 -:10B270000ED0EFBBAF236FFEF230DF71A58FAD1D97 -:10B2800098203F07BC31BA37DD4BF795287E7CCF3D -:10B290002BEE11009451DEFF8BF23506D9B991CC1B -:10B2A0002F7D83C6774714A07B83433D22FFF7C5DC -:10B2B000055947017967C8197E6AC2CFBF770D1E4D -:10B2C000C5F60F1985A39070EFF6B0256F2ED8C282 -:10B2D000F774B3B45B9EFD3037DDFEC4FD5CBABAD3 -:10B2E000728E7FD751A0F13D320B3F596A10227EFA -:10B2F000922307D747D0DB83EA84BC475F4D5727AB -:10B30000C7C1F922EF25837286F2EF03B49638178E -:10B310009FB37FB1FB513A970E218677D0EFE0BC07 -:10B320007BFF5A11EFF47BC26E2D8DDED8D7937C54 -:10B33000FF28B595973D16A33BC287038A4169CF85 -:10B34000C1B2CA26CA4F4635AE0083EA7304D3D5CC -:10B35000A7C72DF9D4C1607BAC7CB2253B9DBDB0A5 -:10B36000DB010BFF76DF5D326612DFA94566907F59 -:10B3700087E3F34B9184BCF11316FCBD9211AF45EA -:10B3800064EDF50AFDEFD66326FDDEB82FEF2EAE95 -:10B3900033BAF5089CA1E72531F839E9A77C77E7AE -:10B3A000689A7DBCD521E294BDCE10AFB7375FE17E -:10B3B000FAE3DEA2F4F9ACE73B441E49F5AD0F72A7 -:10B3C0005EDFA7709D3875DC53169FF4AB6640E3D3 -:10B3D000B8FA81323A577409708E72EC9D379FD853 -:10B3E0008DFDFD3D41CE7B0C51FE0385B5BFF05E6A -:10B3F000C6FBFE6B1C1A9D6383FC11DF47385C0D96 -:10B4000006E98FEC6A1C9710471E86D101BA0F77A8 -:10B41000782D70BED46B0493DEF723038E93FFA5C3 -:10B420004CB03E734237D7010EF855BEA73354795E -:10B430009AFD231DC6394F315429E865D793FC1670 -:10B440003FFAFD773527CAC1018B6E0F52DE9CEFA4 -:10B45000318D41A2FF75A0709CEDF38175E39D5481 -:10B4600017CCF2BB0D0A45F6D70481E474A8CA9143 -:10B47000F67ED450D569DE67EA7E9C277EC9FA2F16 -:10B480004B99E0FC4456D96FD9AE3C64ED63E35A66 -:10B49000E0CD66570B3D9BDD1606FA7D58DE5BF26C -:10B4A000A88EFDDD85BF8A38493E6E0358A4D37E41 -:10B4B0002778BF879B9F8EF3FEACFBBA203FCFF768 -:10B4C000712128E4D7BE77BDB04D4D8ADFB352EE6F -:10B4D0004565A6F441EEBAE07DB2EEF7EE3975327D -:10B4E00001DEA2CEE4FBD973CDFF43CF8E5327916B -:10B4F0005F0E575E58BE0E59758D584F35D3C9E64D -:10B50000339BEFB2E88839B3CF1FF28D75A6B3C372 -:10B510001D9D420E52F93195FF34D718DBF143EBF4 -:10B5200092E1DCD029E4F8060B4E4EA19E4FEFEDE0 -:10B530007B4C747FEAE934EB7EBA53E5F1337C6DE2 -:10B54000DBF9772ECDCE2F6B1176DEBF2A83EC3C54 -:10B55000E2F365BAC7F67B940F4890EB3E6FB29F5B -:10B5600069DBF9C73B457CF062DE5512D9E91CCF97 -:10B5700004FBBF59D5C97980543BAD3A431C37AA67 -:10B58000F9AAAD6FB89EF55AC7FB4F4410CEFEF82E -:10B590003EAE0F6522FF66484CA7483A3A4179F221 -:10B5A000BD9AF24E10BF63D3855EC85AAB70BD63BF -:10B5B000C8F15EF587D82AB130042DB883CCB7FB2B -:10B5C000C7F97E8EC5F773D1933E7F5A63FD2E85F2 -:10B5D000EA88F56F56A78B2BEC96EE4F25DF77BFE9 -:10B5E00038B9F8FB4EABBE9C0119422E9A1D7D6402 -:10B5F000EF9B1D7C2F85AEEF2A6BACD201D5F56990 -:10B6000067F8DE4FF77F24AB5EB474465EE0567198 -:10B61000AFE5EC0E714F867F47B8947EF739C1BF16 -:10B620000FBC926EB1CAEC07B3DC9C850207D583D0 -:10B6300023272469DA0FBA82AE341A0E9A570241D0 -:10B640006E53F77D1584F97919C4B8BD06C6B82DB7 -:10B6500087716E2B60925B9326E07E8D93A2AEB1D4 -:10B660000A0C999E574290DB3510E6B61A62DC7ED2 -:10B67000A5FE6F7F733B4EF9DA797811784D23DFA1 -:10B6800071043A7D7E1BCFAD9D3AF3C95CF4EEF3B5 -:10B690004DB01F5F5F3DCE7EA8D71364FE76FA05DE -:10B6A0007FDB709CB3E4836D3F49253F69751AFECB -:10B6B0009DC34F4AFD1DC9FF0229F7D0B3D04500F5 -:10B6C0000000000000000000000000180000000062 -:10B6D000000000000000004000000000000000002A -:10B6E0000000002800000000000000000000001022 -:10B6F000000000000000000000000020000000002A -:10B700000000000000000010000000000000000029 -:10B710000000000800000000000000000000000021 -:10B7200000000000000000000000003900000000E0 -:10B7300000000000000000380000000000000000D1 -:10B7400000000000000000000000000000000008F1 -:10B7500000000000000000000000000000000000E9 -:10B76000000000000000000C0000000000000000CD -:10B770000000000E000000000000000000000004B7 -:10B7800000000000000000000000001800000000A1 -:10B79000000000000000001C00000000000000008D -:10B7A0000000001C0000000000000000000000136A -:10B7B00000000000000000000000003A000000004F -:10B7C0000000000000000001000000000000000078 -:10B7D0000000000200000000000000000000000166 -:10B7E0000000000000000000000000100000000049 -:10B7F00000000000000000500000000000000000F9 -:10B800000000000000000000000000000000000335 -:10B810000000000000000000000000AB000000007D -:10B820000000000000000008000000000000000010 -:10B830000000C00000100000000000080000C00868 -:10B8400000100000000000020000C0000010000016 -:10B850000000001000009FB0000000000000000881 -:10B860000000C08000100000000000040000C0883C -:10B8700000100000000000020000C0800010000066 -:10B8800000000010000091200000000000000008EF -:10B8900000009340000100040000000100009348F4 -:10B8A00000000000000000020000935000000000B3 -:10B8B0000000000800009354000000000000000297 -:10B8C00000009418000000000000000800009358D9 -:10B8D000000800000000000800009AB000400000CE -:10B8E00000000040000093980008000000000008DD -:10B8F000000093D800080000000000080000942019 -:10B9000000C8000000000098000095B000980000FA -:10B9100000000028000095F00098000000000028BA -:10B920000000C480054000300000054000009D205C -:10B93000000800000000000100009D210008000038 -:10B9400000000001000020080010000000000010AE -:10B9500000002000000000000000000800009CD84B -:10B96000000800000000000200009D180000000018 -:10B9700000000001000000010000000000000000C5 -:10B9800000000009000000000000000000000002AC -:10B9900000000000000000000000CF2000000000B8 -:10B9A000000000200000CF46000000000000000161 -:10B9B0000000600000200000000000200000730074 -:10B9C000000800000000000800009FA00000000028 -:10B9D0000000000100009FA800000000000000011E -:10B9E00000009F60000000000000001000009F6346 -:10B9F000000000000000000100009F610000000046 -:10BA00000000000100009F6600000000000000012F -:10BA100000009F67000000000000000000009F6819 -:10BA2000000000000000000400009F6C0000000007 -:10BA300000000004000000520000000000000000B0 -:10BA400000000003000000000000000000000003F0 -:10BA500000000000000000000000000500000000E1 -:10BA600000000000000000020000000000000000D4 -:10BA700000060000000000000000002000009F7091 -:10BA8000000000000000000100009F900000000086 -:10BA9000000000080000005300000000000000004B -:10BAA00000009F98000000000000000200009F9C22 -:10BAB000000000000000000100009F9D0000000049 -:10BAC000000000010000000900000000000000006C -:10BAD0000000000100000000000000000000004421 -:10BAE0000000000000000000000000010000000055 -:10BAF00000000000000000500000000000000000F6 -:10BB0000000000890000000000000000000012C8D2 -:10BB10000080000000000080000000010000000024 -:10BB2000000000000000A000071000000000071047 -:10BB300000001AC800000000000000080000AEC0AD -:10BB400000080000000000080000AE4000080000EF -:10BB5000000000080000AE8000080000000000089F -:10BB6000000020080010000000000010000020006D -:10BB700000000000000000080000A01007100040B6 -:10BB80000000004000001BF8000800000000000159 -:10BB900000001BF9000800000000000100001AD09E -:10BBA000000000000000000100001AD800000000A2 -:10BBB0000000000200001ADA00000000000000028D -:10BBC0008000000000000000000000000000AF0046 -:10BBD000000000000000002000001B78002800008A -:10BBE000000000040000E000002000000000002031 -:10BBF0000000F300000800000000000800001AF038 -:10BC0000000000000000010800001B3700000000D9 -:10BC10000000000100001B0F0000000000000001F8 -:10BC200000001B70000000000000000400001B74F6 -:10BC300000000000000000040000005000000000B0 -:10BC400000000000000000030000000000000000F1 -:10BC500000000005000000000000000000000006D9 -:10BC600000000000000000000000000700000000CD -:10BC70000000000000001BC80000000000000001E0 -:10BC800000001BE800000000000000080000005158 -:10BC9000000000000000000000001BD000000000B9 -:10BCA0000000000400001BD400000000000000049D -:10BCB00000001BD8000000000000000400001BDC96 -:10BCC00000000000000000080000B00000180000A4 -:10BCD000000000180000C00000400000000000400C -:10BCE0000000C00000400002000000010000C00190 -:10BCF00000400002000000000000E2000020000000 -:10BD0000000000200000E204000200080020000201 -:10BD10008000000000000000000000000000E200C1 -:10BD200000080020000000040000F40000280000CB -:10BD3000000000280000F540001000000000001086 -:10BD40000000F5C000200000000000200000F5C049 -:10BD500000020020000000020000F30000200000AC -:10BD6000000000200000200800100000000000106B -:10BD70000000200000000000000000080000110882 -:10BD80000008000000000008000011680008000022 -:10BD900000000008000011A80008000000000008D2 -:10BDA00000001240000800000000000100001241E5 -:10BDB0000008000000000001000040000020000416 -:10BDC00000000010000059000030001800000010B2 -:10BDD0000000590800300018000000020000570061 -:10BDE00000080000000000010000570100080000EA -:10BDF00000000001000011E8000000000000000148 -:10BE0000000011F00000000000000001000011F827 -:10BE100000000000000000100000124400080000B4 -:10BE2000000000040000400000200000000000208E -:10BE30000000530000100000000000100000153842 -:10BE400000000000000000010000000300000000EE -:10BE500000000000000000000000000000000000E2 -:10BE600000000001000000000000000000000004CD -:10BE700000000000000000000000150800000000A5 -:10BE8000000000010000152800000000000000086C -:10BE900000000050000000000000000000008308C7 -:10BEA0000080000000000080000000010000000091 -:10BEB000000000000000200800100000000000103A -:10BEC00000002000000000000000000800008410B6 -:10BED0000008000000000008000084700008000056 -:10BEE0000000000800060000046000280000046054 -:10BEF00000008520000800000000000100008521EE -:10BF000000080000000000018000000000000000A8 -:10BF10000000000000008408000000000000000194 -:10BF2000000084F40008000000000002000084F615 -:10BF3000000800000000000200008504001000005E -:10BF400000000004000087600000000000000020E6 -:10BF500000006000002000000000002000007300CE -:10BF600000080000000000080000000300000000BE -:10BF700000000000000000050000000000000000BC -:10BF800000000006000000000000000000000007A4 -:10BF90000000000000000000000088080000000011 -:10BFA00000000001000088280000000000000008D8 -:10BFB0000000005000000000000000000000881099 -:10BFC00000000000000000040000881400000000D1 -:10BFD00000000004000088180000000000000004B9 -:10BFE0000000881C00000000000000080000300075 -:10BFF0000040000000000008000030080040000081 -:10C00000000000280000339001C00010000000086C -:10C010000000320000200000000000200000372057 -:10C02000000000000000000800001020062000387A -:10C03000000000080000A000000000000000200038 -:10C0400000003EA9000000000000000100003EC802 -:10C05000000000000000000280000000000000005E -:10C060000000000000006000002000000000000848 -:10C070000000400000080000000000010000400136 -:10C08000000800000000000100004040000800041B -:10C0900000000002000040600008000400000004EE -:10C0A0000000400000080000000000040000400400 -:10C0B00000080000000000040000404000000000F4 -:10C0C00000000008000040480000000000000008D8 -:10C0D0000000800000000000000000100000504040 -:10C0E00000010004000000010000500000000000FA -:10C0F00000000020000050080010000000000004B4 -:10C100000000500C0010000000000001000052C7A9 -:10C110000000000000000001000052C60000000006 -:10C120000000000100003000003000180000000492 -:10C130000000300400300018000000040000300847 -:10C1400000300018000000020000300A0030001823 -:10C15000000000020000300C003000180000000158 -:10C160000000300D00300018000000010000300E0B -:10C1700000300018000000010000301000300018EE -:10C18000000000040000301400300018000000041B -:10C19000000050000100008000080004000050046E -:10C1A00001000080000800040000000A00000000F8 -:10C1B0000000000000005068010000800000000145 -:10C1C0000000506901000080000000010000506C78 -:10C1D00001000080000000020000506E010000809D -:10C1E0000000000200005070010000800000000408 -:10C1F0000000507401000080000000040000506640 -:10C200000100008000000002000050640100008076 -:10C2100000000001000050600100008000000002EA -:10C220000000506201000080000000020000505039 -:10C230000100008000000004000050540100008054 -:10C2400000000004000050580100008000000004BD -:10C250000000505C01000080000000040000507CE1 -:10C2600001000080000000010000507D01000080FE -:10C270000000000100004018001000000000000451 -:10C2800000004090001000000000000400004098F2 -:10C290000010000000000004000041100000000039 -:10C2A0000000000200004112000000000000000237 -:10C2B00000004114000000000000000200004116D0 -:10C2C00000000000000000020000604000080000C4 -:10C2D00000000002000060420008000000000002B0 -:10C2E00000006044000800000000000400006080BE -:10C2F0000008000000000008000060C000400008C6 -:10C3000000000008000060000008000000000002BB -:10C31000000060020008000000000001000060044E -:10C320000008000000000002000063400008000058 -:10C330000000000800006380000800000000000406 -:10C34000000063840008000000000001000063C0DA -:10C350000008000000000002000063C400080000A4 -:10C36000000000020000640000080000000000045B -:10C3700000007000001000000000000400007004C5 -:10C380000010000000000004000070080010000011 -:10C3900000000004000090000008000000000002FF -:10C3A000000090020008000000000001000090045E -:10C3B000000800000000000200009040000800009B -:10C3C000000000020000904400080000000000028D -:10C3D000000090460008000000000002000096489F -:10C3E0000008000000000008000090800008000025 -:10C3F000000000020000908400080000000000021D -:10C40000000096880008000000000008000080403E -:10C41000000800000000000100008041000800004A -:10C420000000000100008042000800000000000140 -:10C4300000008043000800000000000100008000B0 -:10C440000008000000000002000080020008000058 -:10C45000000000010000800400080000000000024D -:10C46000000080C00008000000000002000080C240 -:10C470000008000000000002000080C40008000066 -:10C4800000000002000080800008000000000001A1 -:10C490000000808100080000000000010000808290 -:10C4A0000008000000000001000080830008000078 -:10C4B000000000010000808400080000000000016E -:10C4C0000000808500080000000000010000808658 -:10C4D00000080000000000010000600000080000EB -:10C4E00000000002000060020008000000000001DF -:10C4F000000060040008000000000002000060422C -:10C5000000C00018000000020000604000C00018D9 -:10C51000000000020000604C00C00018000000088D -:10C520000000604400C000180000000800006057D0 -:10C5300000C00018000000010000605400C0001896 -:10C54000000000020000605600C00018000000015A -:10C55000000066400008000000000008000066803F -:10C560000008000000000008000066C0000800008D -:10C57000000000080000DA4200180000000000027D -:10C580000000DE4000000000000000000000E000AD -:10C5900000000000000000040000D0C00000000007 -:10C5A000000000040000D0C40000000000000004EF -:10C5B0000000D0C800000000000000040000D0CC43 -:10C5C00000000000000000040000D0D000000000C7 -:10C5D000000000040000D0D40000000000000004AF -:10C5E0000000D0D800000000000000040000D0C00F -:10C5F00000000000000000200000DB000000000040 -:10C60000000000040000DB000000000000000068E3 -:10C610000000B94800000000000000000000D00049 -:10C6200000000000000000040000B0C00000000096 -:10C63000000000040000B0C400000000000000047E -:10C640000000B0C800000000000000040000B0C0FE -:10C6500000000000000000100000D6B00000000044 -:10C66000000000040000D6B4000000000000000438 -:10C670000000D6B800000000000000040000D6BC96 -:10C6800000000000000000040000D6B00000000020 -:10C69000000000100000D348000000000000000867 -:10C6A0000000D358000000000000008000000010CF -:10C6B00000000000000000000000D358000000004F -:10C6C0000000000800000000060209000000000051 -:00000001FF diff --git a/firmware/cis/.gitignore b/firmware/cis/.gitignore deleted file mode 100644 index 1de39847f261..000000000000 --- a/firmware/cis/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.cis diff --git a/firmware/cis/3CCFEM556.cis.ihex b/firmware/cis/3CCFEM556.cis.ihex deleted file mode 100644 index e4d92b173e17..000000000000 --- a/firmware/cis/3CCFEM556.cis.ihex +++ /dev/null @@ -1,13 +0,0 @@ -:1000000001030000FF152D050033436F6D004D65A2 -:100010006761686572747A2033434346454D3535D0 -:1000200036004C414E202B2035366B204D6F6465D9 -:100030006D0000FF20040101560521020000060B9F -:1000400002004D000000006B000000FF001303439E -:100050004953210206001A060507001067021B0912 -:1000600087011901556430FFFFFF00130343495313 -:10007000210202001A060527001177021B09A701B9 -:090080001901552330FFFFFF00B8 -:00000001FF -# -# This card is MFC-compliant, but identifies itself as single function -# diff --git a/firmware/cis/3CXEM556.cis.ihex b/firmware/cis/3CXEM556.cis.ihex deleted file mode 100644 index 895010b230ff..000000000000 --- a/firmware/cis/3CXEM556.cis.ihex +++ /dev/null @@ -1,13 +0,0 @@ -:1000000001030000FF152C050033436F6D004D65A3 -:100010006761686572747A20334358454D353536CB -:10002000004C414E202B2035366B204D6F64656DA2 -:100030000000FF20040101350021020000060B0230 -:10004000004C0000000069000000FF00130343495A -:1000500053210206001A0501070008631B098701E6 -:100060001901556430FFFFFF001303434953210278 -:1000700002001A0501270009631B09A70119015590 -:060080002330FFFFFF002A -:00000001FF -# -# This card is MFC-compliant, but identifies itself as single function -# diff --git a/firmware/cis/COMpad2.cis.ihex b/firmware/cis/COMpad2.cis.ihex deleted file mode 100644 index 1671c5e48caa..000000000000 --- a/firmware/cis/COMpad2.cis.ihex +++ /dev/null @@ -1,11 +0,0 @@ -:1000000001030000FF151F0401414456414E5445B1 -:10001000434800434F4D7061642D33322F38350013 -:10002000312E300000FF210202011A0501050001F6 -:10003000031B0EC18118AA61E80207E8030730B864 -:100040009E1B08820108AA6030030F1B0883010869 -:10005000AA6040030F1B08840108AA6050030F1B0D -:0D00600008850108AA6060030F1400FF006E -:00000001FF -# -# Replacement CIS for Advantech COMpad-32/85 -# diff --git a/firmware/cis/COMpad4.cis.ihex b/firmware/cis/COMpad4.cis.ihex deleted file mode 100644 index 27bbec1921b3..000000000000 --- a/firmware/cis/COMpad4.cis.ihex +++ /dev/null @@ -1,9 +0,0 @@ -:1000000001030000FF151F0401414456414E5445B1 -:10001000434800434F4D7061642D33322F383542D1 -:100020002D34000000FF210202011A050102000127 -:10003000011B0BC18118AA6040021F30B89E1B082B -:0C004000820108AA6040031F1400FF00AA -:00000001FF -# -# Replacement CIS for Advantech COMpad-32/85B-4 -# diff --git a/firmware/cis/DP83903.cis.ihex b/firmware/cis/DP83903.cis.ihex deleted file mode 100644 index 6d73ea3cf1b8..000000000000 --- a/firmware/cis/DP83903.cis.ihex +++ /dev/null @@ -1,14 +0,0 @@ -:1000000001030000FF152904014D756C74696675C4 -:100010006E6374696F6E20436172640000004E531A -:1000200043204D46204C414E2F4D6F64656D00FFBF -:1000300020047501000021020000060B02004900A7 -:100040000000006A000000FF00130343495321022F -:1000500006001A060517201077021B0C970179017C -:10006000556530FFFF284000FF001303434953212B -:100070000202001A060507401077021B09870119C2 -:0800800001552330FFFFFF00D2 -:00000001FF -# -# This CIS is for cards based on the National Semiconductor -# DP83903 Multiple Function Interface Chip -# diff --git a/firmware/cis/LA-PCM.cis.ihex b/firmware/cis/LA-PCM.cis.ihex deleted file mode 100644 index a0ff0c7b393d..000000000000 --- a/firmware/cis/LA-PCM.cis.ihex +++ /dev/null @@ -1,20 +0,0 @@ -:100000000105D4F953E9FF17035338FF20040FC04B -:1000100002002102060315390401416C6C69656414 -:100020002054656C657369732C4B2E4B00457468C6 -:1000300065726E6574204C414E20436172640043CA -:10004000656E747265434F4D004C412D50434D0019 -:10005000FF1A0602100000020B1B08810108E06075 -:1000600000021F1B08820108E06020021F1B08839A -:100070000108E06040021F1B08840108E060600284 -:100080001F1B08850108E06080021F1B088601080D -:10009000E060A0021F1B08870108E060C0021F1B70 -:1000A00008880108E060E0021F1B08890108E06081 -:1000B00000031F1B088A0108E06020031F1B088B38 -:1000C0000108E06040031F1B088C0108E06060032A -:1000D0001F1B088D0108E06080031F1B088E0108AC -:1000E000E060A0031F1B088F0108E060C0031F1B16 -:0D00F00008900108E060E0031F1400FF000D -:00000001FF -# -# Replacement CIS for Allied Telesis LA-PCM -# diff --git a/firmware/cis/MT5634ZLX.cis.ihex b/firmware/cis/MT5634ZLX.cis.ihex deleted file mode 100644 index 72500b9d95d8..000000000000 --- a/firmware/cis/MT5634ZLX.cis.ihex +++ /dev/null @@ -1,11 +0,0 @@ -:100000000101FF152204014D756C74695465636824 -:100010000050434D4349412035364B2044617461C3 -:10002000466178000000FF20040002010021020266 -:10003000001A05012780FF671B0FCF418B01550177 -:10004000550155AA60F80307281B08970108AA6004 -:10005000F802071B089F0108AA60E803071B08A70E -:0B0060000108AA60E802071400FF007E -:00000001FF -# -# Replacement CIS for Multitech MT5634ZLX modems -# diff --git a/firmware/cis/NE2K.cis.ihex b/firmware/cis/NE2K.cis.ihex deleted file mode 100644 index 1bb40fc4759f..000000000000 --- a/firmware/cis/NE2K.cis.ihex +++ /dev/null @@ -1,8 +0,0 @@ -:1000000001030000FF1515040150434D4349410011 -:1000100045746865726E6574000000FF2102060079 -:100020001A050120F803031B09E001190155653089 -:06003000FFFF1400FF00B9 -:00000001FF -# -# Replacement CIS for various busted NE2000-compatible cards -# diff --git a/firmware/cis/PCMLM28.cis.ihex b/firmware/cis/PCMLM28.cis.ihex deleted file mode 100644 index ffdfe8522ef5..000000000000 --- a/firmware/cis/PCMLM28.cis.ihex +++ /dev/null @@ -1,18 +0,0 @@ -:1000000001030000FF151504014C494E4B53595391 -:100010000050434D4C4D3238000000FF2004430196 -:10002000ABC0210200001A05012FF803031B10E4E6 -:1000300001190155E06100031FF8020730FFFF1BA3 -:100040000BA50108E06120031FF802071B0BA601A6 -:1000500008E06140031FF802071B0BA70108E061DD -:1000600060031FF802071B0BA80108E06100031FD3 -:10007000E803071B0BA90108E06120031FE8030741 -:100080001B0BAA0108E06140031FE803071B0BAB31 -:100090000108E06160031FE803071B0BAC0108E0E7 -:1000A0006100031FE802071B0BAD0108E06120039C -:1000B0001FE802071B0BAE0108E06140031FE802C6 -:1000C000071B0BAF0108E06160031FE80207140083 -:0200D000FF002F -:00000001FF -# -# The on-card CIS says it is MFC-compliant, but it is not -# diff --git a/firmware/cis/PE-200.cis.ihex b/firmware/cis/PE-200.cis.ihex deleted file mode 100644 index e6dbdab6eb79..000000000000 --- a/firmware/cis/PE-200.cis.ihex +++ /dev/null @@ -1,9 +0,0 @@ -:1000000001030000FF151E0401504D582020200060 -:1000100050452D3230300045544845524E4554002D -:1000200052303100FF210206031A050101000101CF -:100030001B0EC181190155E051000F100F30FFFF59 -:040040001400FF00A9 -:00000001FF -# -# Replacement CIS for PE-200 ethernet card -# diff --git a/firmware/cis/PE520.cis.ihex b/firmware/cis/PE520.cis.ihex deleted file mode 100644 index 97a745b5496e..000000000000 --- a/firmware/cis/PE520.cis.ihex +++ /dev/null @@ -1,9 +0,0 @@ -:1000000001030000FF152304014B544900504535FE -:10001000323020504C55530050434D434941204508 -:10002000746865726E65740000FF20046101100041 -:10003000210206001A050101D00F0B1B09C101198D -:0A00400001556530FFFF1400FF00BA -:00000001FF -# -# Replacement CIS for PE520 ethernet card -# diff --git a/firmware/cis/RS-COM-2P.cis.ihex b/firmware/cis/RS-COM-2P.cis.ihex deleted file mode 100644 index 0801ca5da80a..000000000000 --- a/firmware/cis/RS-COM-2P.cis.ihex +++ /dev/null @@ -1,10 +0,0 @@ -:1000000001030000FF1516040150434D4349410010 -:1000100052532D434F4D203250000000FF21020269 -:10002000011A0501030001011B0EC18118AA61E834 -:100030000307E8020730B89E1B0B820108AA615033 -:1000400002075802071B0B830108AA6160020768B8 -:0600500002071400FF008E -:00000001FF -# -# Replacement CIS for dual-serial-port IO card -# diff --git a/firmware/cis/SW_555_SER.cis.ihex b/firmware/cis/SW_555_SER.cis.ihex deleted file mode 100644 index 9b9348acee7b..000000000000 --- a/firmware/cis/SW_555_SER.cis.ihex +++ /dev/null @@ -1,12 +0,0 @@ -:100000000101FF17034100FF20043F0110072102F7 -:100010000200152A070053696572726120576972E0 -:10002000656C657373004169724361726420353594 -:1000300035004135353500526576203100FF1A050F -:1000400001030007731B0BE00118A360F8030730DE -:10005000BC3F1B08A10108A360F802071B08A2010E -:1000600008A360E803071B08A30108A360E80207D0 -:0A0070001B04A40108231400FF0084 -:00000001FF -# -# Replacement CIS for AC555 provided by Sierra Wireless -# diff --git a/firmware/cis/SW_7xx_SER.cis.ihex b/firmware/cis/SW_7xx_SER.cis.ihex deleted file mode 100644 index 11e44ad86437..000000000000 --- a/firmware/cis/SW_7xx_SER.cis.ihex +++ /dev/null @@ -1,13 +0,0 @@ -:100000000101FF17034100FF2004920110072102A4 -:1000100002001537070053696572726120576972D3 -:10002000656C6573730041433731302F4143373579 -:10003000300047505253204E6574776F726B2041E9 -:1000400064617074657200523100FF1A050103008B -:1000500007731B10E00119784D555D25A360F80367 -:100060000730BC861B08A10108A360F802071B0823 -:10007000A20108A360E803071B08A30108A360E826 -:0C00800002071B04A40108231400FF0069 -:00000001FF -# -# Replacement CIS for AC7xx provided by Sierra Wireless -# diff --git a/firmware/cis/SW_8xx_SER.cis.ihex b/firmware/cis/SW_8xx_SER.cis.ihex deleted file mode 100644 index bbcfe6348328..000000000000 --- a/firmware/cis/SW_8xx_SER.cis.ihex +++ /dev/null @@ -1,13 +0,0 @@ -:100000000101FF17034100FF2004920110072102A4 -:100010000200152F070053696572726120576972DB -:10002000656C657373004143383530003347204EAB -:100030006574776F726B20416461707465720052F1 -:100040003100FF1A0501030007731B10E001197846 -:100050004D555D25A360F8480730BC861B08A101FB -:1000600008A360F847071B08A20108A360E8480737 -:100070001B08A30108A360E847071B04A401082389 -:040080001400FF0069 -:00000001FF -# -# Replacement CIS for AC8xx provided by Sierra Wireless -# diff --git a/firmware/cis/tamarack.cis.ihex b/firmware/cis/tamarack.cis.ihex deleted file mode 100644 index 1e86547fb361..000000000000 --- a/firmware/cis/tamarack.cis.ihex +++ /dev/null @@ -1,10 +0,0 @@ -:100000000103D400FF17034100FF152404015441EC -:100010004D415241434B0045746865726E657400F2 -:10002000410030303437343331313830303100FF33 -:10003000210206001A050120F803031B14E08119B0 -:100040003F554D5D06864626E551000F100F30FFE7 -:05005000FF1400FF0099 -:00000001FF -# -# Replacement CIS for Surecom, Tamarack NE2000 cards -# diff --git a/firmware/cpia2/stv0672_vp4.bin.ihex b/firmware/cpia2/stv0672_vp4.bin.ihex deleted file mode 100644 index bd0b9cf65640..000000000000 --- a/firmware/cpia2/stv0672_vp4.bin.ihex +++ /dev/null @@ -1,73 +0,0 @@ -:1000000001BCE302E303E304E305E306E3079344EF -:1000100056D4934E5651934E51D6934E4F54934EC1 -:10002000924F92A4930592F4931B929291E692368A -:100030009274924A928C928EC8D00B4202A0CA92BD -:100040000902C9100A0A0A81E3B8E3B0E3A8E3A0F1 -:10005000E398E390E100CFD70A12CC9508B20A18D2 -:10006000E10001EE0C084A12C818F09AC022F31CF5 -:100070004A13F314C8A0F214F21CEB13D3A26316B4 -:10008000489EF018A403F393C058F713519CE9203D -:10009000CFEF63F9922ED35F63FA922ED36763FB9F -:1000A000922ED36FE91A631648A7F020A406F394A2 -:1000B000C027F714F513519DF6136318C420CBEF36 -:1000C00063FC922ED37763FD922ED37F63FE922E34 -:1000D000D38763FF922ED38F6438922ED3976439DF -:1000E000922ED39FE100F53AF43BF7BFF2BCF23D0C -:1000F000E1008087908051D5022202324BD3F71164 -:100100000BDAE1000E0202400DB5E3024855E5129C -:10011000A401E81BE390F018A401E8BF8DB84BD10F -:100120004BD80BCB0BC2E100E302E30352D360597F -:10013000E6930D2252D4E6930D2AE398E390E10072 -:10014000025D0263E302C81202CAC85202C2826898 -:10015000E302C81402CAC89002C20AD0C9930ADADC -:10016000CCD20AE2631202DA0A980AA00AA8E39043 -:10017000E100E3020AD0C9930ADACCD20AE26312A0 -:1001800002DA0A980AA00AA84991E56AA404C812EA -:1001900002CAC8528289C81402CAC89002C2E39037 -:1001A000E1000860E1004853E897085AE100E302E3 -:1001B000E30354D36059E6930D52E398E390E100D2 -:1001C000029CE3025513931755139317E390E10034 -:1001D0007530E302E30355556059E6930DB2E39899 -:1001E000E390E10002AEE792E918EA9AE898E81095 -:1001F000E811E851D2DAD2F3E813D2FAE850D2EAA1 -:10020000E8D0E8D1D30A03094823E52CA003482409 -:10021000EA1C0308D2E3D303D313E10002CB059316 -:100220005793F09AAC0BE30792EAE29FE506E3B03E -:10023000A002EB1E82D7EA1EE23B859BE91EC89016 -:10024000859402DE05805793F0BAAC0692EAE2BFCD -:10025000E506A001EBBF8588E93EC8908581E93EAF -:10026000F0BAF339F03A6017F03AC090F0BAE10012 -:10027000003FE302E30358106059E6930DA25812C1 -:10028000E6930DAAE398E390E1000301E100030384 -:100290009B7D8B8BE302E30358566059E6930DBABE -:1002A000E398E390E100030F9311E100E3024A11A8 -:1002B0000B4291AFE390E100F291F091A3FEE100D7 -:1002C0006092C05FF013F013595BE213F0115A19FA -:1002D000E213E10000000327686176616E610006A9 -:1002E000032CE302E303E9385915595AF29ABC0B7F -:1002F000A40A591EF311F01AE2BB5915F011192A7C -:10030000E502A401EBBFE398E390E1000342192862 -:10031000E100E9306079E100E303E3076079934E9F -:10032000E3B8E398E100E91AF01FE233F091E292BA -:08033000E032F031E1000000B1 -:00000001FF - - Copyright 2001, STMicrolectronics, Inc. - Contact: steve.miller@st.com - - Description: - This file contains patch data for the CPiA2 (stv0672) VP4. - - 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., 675 Mass Ave, Cambridge, MA 02139, USA. diff --git a/firmware/cxgb3/ael2005_opt_edc.bin.ihex b/firmware/cxgb3/ael2005_opt_edc.bin.ihex deleted file mode 100644 index c1d6e5d3bea7..000000000000 --- a/firmware/cxgb3/ael2005_opt_edc.bin.ihex +++ /dev/null @@ -1,69 +0,0 @@ -:10000000CC002FF4CC013CD4CC022015CC0331051C -:10001000CC046524CC0527FFCC06300FCC072C8BF5 -:10002000CC08300BCC094009CC0A400ECC0B2F7207 -:10003000CC0C3002CC0D1002CC0E2172CC0F301241 -:10004000CC101002CC1125D2CC123012CC131002DD -:10005000CC14D01ECC1527D2CC163012CC171002DF -:10006000CC182004CC193C84CC1A6436CC1B200755 -:10007000CC1C3F87CC1D8676CC1E40B7CC1FA74634 -:10008000CC204047CC215673CC222982CC2330028D -:10009000CC2413D2CC258BBDCC262862CC273012A1 -:1000A000CC281002CC292092CC2A3012CC2B100262 -:1000B000CC2C5CC3CC2D0314CC2E2942CC2F300287 -:1000C000CC301002CC31D019CC322032CC333012AB -:1000D000CC341002CC352A04CC363C74CC37643591 -:1000E000CC382FA4CC393CD4CC3A6624CC3B5563D5 -:1000F000CC3C2D42CC3D3002CC3E13D2CC3F464DC1 -:10010000CC402862CC413012CC421002CC43203289 -:10011000CC443012CC451002CC462FB4CC473CD452 -:10012000CC486624CC495563CC4A2D42CC4B300296 -:10013000CC4C13D2CC4D2ED2CC4E3002CC4F100230 -:10014000CC502FD2CC513002CC521002CC530004F0 -:10015000CC542942CC553002CC561002CC572092B8 -:10016000CC583012CC591002CC5A5CC3CC5B03176C -:10017000CC5C2F72CC5D3002CC5E1002CC5F294289 -:10018000CC603002CC611002CC6222CDCC63301D39 -:10019000CC642862CC653012CC661002CC672ED2BB -:1001A000CC683002CC691002CC6A2D72CC6B300264 -:1001B000CC6C1002CC6D628FCC6E2112CC6F3012E1 -:1001C000CC701002CC715AA3CC722DC2CC73300209 -:1001D000CC741312CC756F72CC761002CC772807D2 -:1001E000CC7831A7CC7920C4CC7A3C24CC7B672452 -:1001F000CC7C1002CC7D2807CC7E3187CC7F20C4FC -:10020000CC803C24CC816724CC821002CC83251482 -:10021000CC843C64CC856436CC86DFF4CC876436F1 -:10022000CC881002CC8940A4CC8A643CCC8B40168C -:10023000CC8C8C6CCC8D2B24CC8E3C24CC8F643518 -:10024000CC901002CC912B24CC923C24CC93643AD9 -:10025000CC944025CC958A5ACC961002CC97273165 -:10026000CC983011CC991001CC9AC7A0CC9B01003E -:10027000CC9CC502CC9D53ACCC9EC503CC9FD5D5A0 -:10028000CCA0C600CCA12A6DCCA2C601CCA32A4C1E -:10029000CCA4C602CCA50111CCA6C60CCCA7590093 -:1002A000CCA8C710CCA90700CCAAC718CCAB0700B4 -:1002B000CCACC720CCAD4700CCAEC801CCAF7F5092 -:1002C000CCB0C802CCB17760CCB2C803CCB37FCE7F -:1002D000CCB4C804CCB55700CCB6C805CCB75F11B8 -:1002E000CCB8C806CCB94751CCBAC807CCBB57E18B -:1002F000CCBCC808CCBD2700CCBEC809CCBF000010 -:10030000CCC0C821CCC10002CCC2C822CCC30014CE -:10031000CCC4C832CCC51186CCC6C847CCC71E02D7 -:10032000CCC8C013CCC9F341CCCAC01ACCCB04464C -:10033000CCCCC024CCCD1000CCCEC025CCCF0A0074 -:10034000CCD0C026CCD10C0CCCD2C027CCD30C0C3A -:10035000CCD4C029CCD500A0CCD6C030CCD70A0094 -:10036000CCD8C03CCCD9001CCCDAC005CCDB7A069A -:10037000CCDC0000CCDD2731CCDE3011CCDF10012D -:10038000CCE0C620CCE10000CCE2C621CCE3003FAB -:10039000CCE4C622CCE50000CCE6C623CCE70000C6 -:1003A000CCE8C624CCE90000CCEAC625CCEB0000A2 -:1003B000CCECC627CCED0000CCEEC628CCEF00007C -:1003C000CCF0C62CCCF10000CCF20000CCF3280617 -:1003D000CCF43CB6CCF5C161CCF66134CCF76135D8 -:1003E000CCF85443CCF90303CCFA6524CCFB000BC6 -:1003F000CCFC1002CCFD2104CCFE3C24CCFF21051A -:10040000CD003805CD016524CD02DFF4CD034005D4 -:10041000CD046524CD051002CD065DD3CD070306BE -:10042000CD082FF7CD0938F7CD0A60B7CD0BDFFD2A -:10043000CD0C000ACD0D1002CD0E00007CC7AE59C8 -:00000001FF diff --git a/firmware/cxgb3/ael2005_twx_edc.bin.ihex b/firmware/cxgb3/ael2005_twx_edc.bin.ihex deleted file mode 100644 index 9b5e9e51fcb7..000000000000 --- a/firmware/cxgb3/ael2005_twx_edc.bin.ihex +++ /dev/null @@ -1,93 +0,0 @@ -:10000000CC004009CC0127FFCC02300FCC0340AA22 -:10001000CC04401CCC05401ECC062FF4CC073CD4AD -:10002000CC082035CC093145CC0A6524CC0B26A25E -:10003000CC0C3012CC0D1002CC0E29C2CC0F3002E9 -:10004000CC101002CC112072CC123012CC13100242 -:10005000CC1422CDCC15301DCC162E52CC1730121C -:10006000CC181002CC1928E2CC1A3002CC1B10029A -:10007000CC1C628FCC1D2AC2CC1E3012CC1F1002A9 -:10008000CC205553CC212AE2CC223002CC231302BF -:10009000CC24401ECC252BE2CC263012CC271002DB -:1000A000CC282DA2CC293012CC2A1002CC2B2BA28A -:1000B000CC2C3002CC2D1002CC2E5EE3CC2F0305CD -:1000C000CC30400ECC312BC2CC323002CC331002BB -:1000D000CC342B82CC353012CC361002CC37566360 -:1000E000CC380302CC39401ECC3A6F72CC3B1002A4 -:1000F000CC3C628FCC3D2BE2CC3E3012CC3F100288 -:10010000CC4022CDCC41301DCC422E52CC433012BB -:10011000CC441002CC452522CC463012CC471002EC -:10012000CC482DA2CC493012CC4A1002CC4B2CA288 -:10013000CC4C3012CC4D1002CC4E2FA4CC4F3CD422 -:10014000CC506624CC51410BCC5256B3CC5303C493 -:10015000CC542FB2CC553002CC561002CC57220BC7 -:10016000CC58303BCC5956B3CC5A03C3CC5B866BCE -:10017000CC5C400CCC5D23A2CC5E3012CC5F100274 -:10018000CC602DA2CC613012CC621002CC632CA2C8 -:10019000CC643012CC651002CC662FB4CC673CD452 -:1001A000CC686624CC6956B3CC6A03C3CC6B866B2F -:1001B000CC6C401CCC6D2205CC6E3035CC6F5B53C3 -:1001C000CC702C52CC713002CC7213C2CC735CC395 -:1001D000CC740317CC752522CC763012CC77100264 -:1001E000CC782DA2CC793012CC7A1002CC7B2B8229 -:1001F000CC7C3012CC7D1002CC7E5663CC7F0303C6 -:10020000CC80401ECC810004CC822C42CC833012A6 -:10021000CC841002CC856F72CC861002CC87628FA2 -:10022000CC882304CC893C84CC8A6436CC8BDFF424 -:10023000CC8C6436CC8D2FF5CC8E3005CC8F865689 -:10024000CC90DFBACC9156A3CC92D05ACC9321C299 -:10025000CC943012CC951392CC96D05ACC9756A30E -:10026000CC98DFBACC990383CC9A6F72CC9B1002E6 -:10027000CC9C28C5CC9D3005CC9E4178CC9F565354 -:10028000CCA00384CCA122B2CCA23012CCA3100209 -:10029000CCA42BE5CCA53005CCA641E8CCA7565381 -:1002A000CCA80382CCA90002CCAA4258CCAB2474BF -:1002B000CCAC3C84CCAD6437CCAEDFF4CCAF64378F -:1002C000CCB02FF5CCB13C05CCB28757CCB3B888B5 -:1002D000CCB49787CCB5DFF4CCB66724CCB7866AAC -:1002E000CCB86F72CCB91002CCBA2D01CCBB301196 -:1002F000CCBC1001CCBDC620CCBE14E5CCBFC62101 -:10030000CCC0C53DCCC1C622CCC23CBECCC3C623EA -:10031000CCC44452CCC5C624CCC6C5C5CCC7C625A2 -:10032000CCC8E01ECCC9C627CCCA0000CCCBC6289E -:10033000CCCC0000CCCDC62BCCCE0000CCCFC62C74 -:10034000CCD00000CCD10000CCD22D01CCD33011C8 -:10035000CCD41001CCD5C620CCD60000CCD7C62139 -:10036000CCD80000CCD9C622CCDA00CECCDBC62358 -:10037000CCDC007FCCDDC624CCDE0032CCDFC62551 -:10038000CCE00000CCE1C627CCE20000CCE3C628DC -:10039000CCE40000CCE5C62BCCE60000CCE7C62CB4 -:1003A000CCE80000CCE90000CCEA2D01CCEB301108 -:1003B000CCEC1001CCEDC502CCEE609FCCEFC600BA -:1003C000CCF02A6ECCF1C601CCF22A2CCCF3C60CB0 -:1003D000CCF45400CCF5C710CCF60700CCF7C71806 -:1003E000CCF80700CCF9C720CCFA4700CCFBC728D3 -:1003F000CCFC0700CCFDC729CCFE1207CCFFC801FE -:10040000CD007F50CD01C802CD027760CD03C80377 -:10041000CD047FCECD05C804CD06520ECD07C8054C -:10042000CD085C11CD09C806CD0A3C51CD0BC807DB -:10043000CD0C4061CD0DC808CD0E49C1CD0FC80906 -:10044000CD103840CD11C80ACD120000CD13C821FF -:10045000CD140002CD15C822CD160046CD17C844D4 -:10046000CD18182FCD19C013CD1AF341CD1BC01ACA -:10047000CD1C0446CD1DC024CD1E1000CD1FC025AF -:10048000CD200A00CD21C026CD220C0CCD23C027C3 -:10049000CD240C0CCD25C029CD2600A0CD27C03001 -:1004A000CD280A00CD29C03CCD2A001CCD2B000050 -:1004B000CD2C2B84CD2D3C74CD2E6435CD2FDFF487 -:1004C000CD306435CD312806CD323006CD3385654B -:1004D000CD342B24CD353C24CD366436CD371002B7 -:1004E000CD382B24CD393C24CD3A6436CD3B404524 -:1004F000CD3C8656CD3D1002CD3E2807CD3F31A7DD -:10050000CD4020C4CD413C24CD426724CD431002D0 -:10051000CD442807CD453187CD4620C4CD473C2466 -:10052000CD486724CD491002CD4A2514CD4B3C64FB -:10053000CD4C6436CD4DDFF4CD4E6436CD4F100238 -:10054000CD502806CD513CB6CD52C161CD5361345A -:10055000CD546135CD555443CD560303CD57652455 -:10056000CD58000BCD591002CD5AD019CD5B2104C6 -:10057000CD5C3C24CD5D2105CD5E3805CD5F652485 -:10058000CD60DFF4CD614005CD626524CD632E8D55 -:10059000CD64303DCD655DD3CD660306CD672FF7C5 -:1005A000CD6838F7CD6960B7CD6ADFFDCD6B000A45 -:0C05B000CD6C1002CD6D000052A76B0E48 -:00000001FF diff --git a/firmware/cxgb3/ael2020_twx_edc.bin.ihex b/firmware/cxgb3/ael2020_twx_edc.bin.ihex deleted file mode 100644 index 8b1337f4c329..000000000000 --- a/firmware/cxgb3/ael2020_twx_edc.bin.ihex +++ /dev/null @@ -1,100 +0,0 @@ -:10000000D8004009D8012FFFD802300FD80340AAEA -:10001000D804401CD805401ED8062FF4D8073DC48C -:10002000D8082035D8093035D80A6524D80B2CB229 -:10003000D80C3012D80D1002D80E26E2D80F30227C -:10004000D8101002D81127D2D8123022D81310029B -:10005000D8142822D8153012D8161002D817249296 -:10006000D8183022D8191002D81A2772D81B30128B -:10007000D81C1002D81D23D2D81E3022D81F10023F -:10008000D82022CDD821301DD82227F2D8233022E3 -:10009000D8241002D8255553D8260307D82725225F -:1000A000D8283022D8291002D82A2142D82B301241 -:1000B000D82C1002D82D4016D82E5E63D82F0344BA -:1000C000D8302142D8313012D8321002D833400E05 -:1000D000D8342522D8353022D8361002D8372B52C2 -:1000E000D8383012D8391002D83A2742D83B3022BB -:1000F000D83C1002D83D25E2D83E3022D83F10022D -:10010000D8402FA4D8413DC4D8426624D843414B9F -:10011000D84456B3D84503C6D846866BD847400C5A -:10012000D8482712D8493012D84A1002D84B2C4B45 -:10013000D84C309BD84D56B3D84E03C3D84F866B9E -:10014000D850400CD8512272D8523022D8531002C5 -:10015000D8542742D8553022D8561002D85725E215 -:10016000D8583022D8591002D85A2FB4D85B3DC481 -:10017000D85C6624D85D56B3D85E03C3D85F866B5F -:10018000D860401CD8612C45D8623095D8635B5349 -:10019000D8642372D8653012D86613C2D8675CC39E -:1001A000D8682712D8693012D86A1312D86B2B522C -:1001B000D86C3012D86D1002D86E2742D86F30221A -:1001C000D8701002D8712582D8723022D8731002EC -:1001D000D8742142D8753012D8761002D877628F41 -:1001E000D8782985D87933A5D87A25E2D87B3022EA -:1001F000D87C1002D87D5653D87E03D2D87F401EBB -:10020000D8806F72D8811002D882628FD88323047D -:10021000D8843C84D8856436D886DFF4D8876436A1 -:10022000D8882FF5D8893005D88A8656D88BDFBA7A -:10023000D88C56A3D88DD05AD88E2972D88F301228 -:10024000D8901392D891D05AD89256A3D893DFBAA7 -:10025000D8940383D8956F72D8961002D8972B45FF -:10026000D8983005D8994178D89A5653D89B0384AA -:10027000D89C2A62D89D3012D89E1002D89F2F0594 -:10028000D8A03005D8A141C8D8A25653D8A303821C -:10029000D8A40002D8A54218D8A62474D8A73C84B4 -:1002A000D8A86437D8A9DFF4D8AA6437D8AB2FF51B -:1002B000D8AC3C05D8AD8757D8AEB888D8AF9787AB -:1002C000D8B0DFF4D8B16724D8B2866AD8B36F72D9 -:1002D000D8B41002D8B52641D8B63021D8B710010D -:1002E000D8B8C620D8B90000D8BAC621D8BB0000FB -:1002F000D8BCC622D8BD00CED8BEC623D8BF007F8A -:10030000D8C0C624D8C10032D8C2C625D8C3000080 -:10031000D8C4C627D8C50000D8C6C628D8C700008C -:10032000D8C8C62CD8C90000D8CA0000D8CB2641EE -:10033000D8CC3021D8CD1001D8CEC502D8CF53ACFF -:10034000D8D0C503D8D12CD3D8D2C600D8D32A6EE2 -:10035000D8D4C601D8D52A2CD8D6C605D8D7555753 -:10036000D8D8C60CD8D95400D8DAC710D8DB0700C3 -:10037000D8DCC711D8DD0F06D8DEC718D8DF0700D4 -:10038000D8E0C719D8E10F06D8E2C720D8E3470064 -:10039000D8E4C721D8E50F06D8E6C728D8E7070074 -:1003A000D8E8C729D8E91207D8EAC801D8EB7F50A6 -:1003B000D8ECC802D8ED7760D8EEC803D8EF7FCE6E -:1003C000D8F0C804D8F1520ED8F2C805D8F35C11A1 -:1003D000D8F4C806D8F53C51D8F6C807D8F740611C -:1003E000D8F8C808D8F949C1D8FAC809D8FB3840A4 -:1003F000D8FCC80AD8FD0000D8FEC821D8FF0002EA -:10040000D900C822D9010046D902C844D903182FFF -:10041000D904C013D905F341D906C084D9070030E7 -:10042000D908C904D9091401D90ACB0CD90B000485 -:10043000D90CCB0ED90DA00AD90ECB0FD90FC0C045 -:10044000D910CB10D911C0C0D912CB11D91300A02B -:10045000D914CB12D9150007D916C241D917A0005B -:10046000D918C243D9197FE0D91AC604D91B000E86 -:10047000D91CC609D91D00F5D91EC611D91F000EF9 -:10048000D920C660D9219600D922C687D923000475 -:10049000D924C60AD92504F5D9260000D927264132 -:1004A000D9283021D9291001D92AC620D92B14E501 -:1004B000D92CC621D92DC53DD92EC622D92F3CBE57 -:1004C000D930C623D9314452D932C624D933C5C50F -:1004D000D934C625D935E01ED936C627D93700000C -:1004E000D938C628D9390000D93AC62CD93B0000E2 -:1004F000D93C0000D93D2B84D93E3C74D93F6435AA -:10050000D940DFF4D9416435D9422806D9433006B1 -:10051000D9448565D9452B24D9463C24D94764362E -:10052000D9481002D9492B24D94A3C24D94B6436E6 -:10053000D94C4045D94D8656D94E5663D94F030202 -:10054000D950401ED9511002D9522807D95331A78A -:10055000D95420C4D9553C24D9566724D957100200 -:10056000D9582807D9593187D95A20C4D95B3C2496 -:10057000D95C6724D95D1002D95E24F4D95F3C644C -:10058000D9606436D961DFF4D9626436D963100268 -:10059000D9642006D9653D76D966C161D9676134D1 -:1005A000D9686135D9695443D96A0303D96B652485 -:1005B000D96C00FBD96D1002D96E20D4D96F3C24C0 -:1005C000D9702025D9713005D9726524D9731002EC -:1005D000D974D019D9752104D9763C24D97721054D -:1005E000D9783805D9796524D97ADFF4D97B4005E3 -:1005F000D97C6524D97D2E8DD97E303DD97F2408C4 -:10060000D98035D8D9815DD3D9820307D98388872A -:10061000D98463A7D9858887D98663A7D987DFFD61 -:10062000D98800F9D9891002D98A0000878C30D97D -:00000001FF diff --git a/firmware/cxgb3/t3b_psram-1.1.0.bin.ihex b/firmware/cxgb3/t3b_psram-1.1.0.bin.ihex deleted file mode 100644 index 140893005171..000000000000 --- a/firmware/cxgb3/t3b_psram-1.1.0.bin.ihex +++ /dev/null @@ -1,162 +0,0 @@ -:10000000FFFFFFFC000000000000000300000000F4 -:1000100000010100FFFFFFFC0000000000000003E2 -:100020000000000000000000FFFFFFFC00000000D7 -:10003000000000030000000000000000FFFFFFFCC4 -:1000400000000000000000030000000000000000AD -:10005000FFFFFFFC000000000000000300000000A4 -:1000600000000000FFFFFFFC000000000000000394 -:100070000000000000000000FFFFFFFC0000000087 -:10008000000000030000000000000000FFFFFFFC74 -:10009000000000000000000300000000000000005D -:1000A000FFFFFFFC00000000000000030000000054 -:1000B00000000000FFFFFFFC000000000000000344 -:1000C0000000000000000000FFFFFFFC0000000037 -:1000D000000000030000000000000000FFFFFFFC24 -:1000E000000000000000000300000000000000000D -:1000F000FFFFFFFC00000000000000030000000004 -:1001000000000000FFFFFFFC0000000000000003F3 -:100110000000000000000000FFFFFFFBD03403E6FA -:1001200080262A430000000000000000FFFFFFF8C7 -:10013000007000000000000200000081C604000002 -:10014000FFFFFFFC000000000000000300000000B3 -:1001500000000000FFFFFFFC0000000000000003A3 -:100160000000000000000000FFFFFFFC0000000096 -:10017000000000030000000000000000FFFFFFFC83 -:10018000000000000000000300000000000000006C -:10019000FFFFFFFC00000000000000030000000063 -:1001A00000000000FFFFFFFC000000000000000353 -:1001B0000000000000000000FFFFFFFBD03403E25E -:1001C000802829230000000000000000FFFFFFF846 -:1001D0000600023701C5C00013940481C6057000F3 -:1001E000FFFFFFF88200020637030803000000004B -:1001F00000000000FFFFFFFC000000000000000204 -:10020000208000818DF40000FFFFFFFC0000000053 -:10021000000000030000000000000000FFFFFFFCE2 -:1002200000000000000000030000000000000000CB -:10023000FFFFFFFC000000000000000300000000C2 -:1002400000000000FFFFFFFC0000000000000003B2 -:100250000000000000000000FFFFFFF9C4310000B3 -:1002600000282C830000000000000000FFFFFFF0CA -:100270004E70021D00C5C00000000001C118000042 -:10028000FFFFFFFC00000000000000030000000072 -:1002900000000000FFFFFFFC000000000000000362 -:1002A0000000000000000000FFFFFFFC0000000055 -:1002B000000000030000000000000000FFFFFFFC42 -:1002C000000000000000000300000000000000002B -:1002D000FFFFFFFC00000000000000030000000022 -:1002E00000000000FFFFFFFC000000000000000312 -:1002F0000000000000000000FFFFFFF1C00003E667 -:10030000802828230000000000000000FFFFFFFC01 -:1003100000000000000000021394040000017000BF -:10032000FFFFFFFC000000000000000300000000D1 -:1003300000000000FFFFFFFC0000000000000003C1 -:100340000000000000000000FFFFFFFC00000000B4 -:10035000000000030000000000000000FFFFFFFCA1 -:10036000000000000000000300000000000000008A -:10037000FFFFFFFC00000000000000030000000081 -:1003800000000000FFFFFFFC000000000000000371 -:100390000000000000000000FFFFFFFA103400041E -:1003A000000001030000000000000000FFFFFFF05C -:1003B0006000000620030802700000F080259A907B -:1003C000FFFFFFFC00000000000000030000000031 -:1003D00000000000FFFFFFFC000000000000000321 -:1003E0000000000000000000FFFFFFFC0000000014 -:1003F000000000030000000000000000FFFFFFFC01 -:1004000000000000000000030000000000000000E9 -:10041000FFFFFFF1C83102060A000242000000811E -:1004200080000000FFFFFFF9C83103C60A962A4288 -:100430000000008180000000FFFFFFF00431000495 -:10044000000004030000000000000000FFFFFFF0B8 -:1004500020B000000000000213940401C1197000D4 -:10046000FFFFFFFC00000000000000000000000192 -:1004700000001000FFFFFFFC000000000000000370 -:100480000000000000000000FFFFFFFC0000000073 -:10049000000000030000000000000000FFFFFFFC60 -:1004A0000000000000000003000000000000000049 -:1004B000FFFFFFF00000000400004000680C200176 -:1004C00000001090FFFFFFF9C031C3E600266A402C -:1004D0000000000100001000FFFFFFFA10F4000010 -:1004E000000002430000000000000000FFFFFFF8D2 -:1004F0006050080000000000700C20F080259A90E9 -:10050000FFFFFFF0060000000100400000000001B6 -:1005100000001000FFFFFFFC0000000000000002D0 -:10052000288C108085C01000FFFFFFFC0000000039 -:10053000000000030000000000000000FFFFFFFCBF -:1005400000000000000000030000000000000000A8 -:10055000FFFFFFFC0000000000000003000000009F -:1005600000000000FFFFFFFC00000000000000038F -:100570000000000000000000FFFFFFF04E00000040 -:10058000000000030000000000000000FFFFFFF17A -:10059000C00002DE00061A40000000829035C00054 -:1005A000FFFFFFFC0000000000000003000000004F -:1005B00000000000FFFFFFFC00000000000000033F -:1005C0000000000000000000FFFFFFFC0000000032 -:1005D000000000030000000000000000FFFFFFFC1F -:1005E0000000000000000003000000000000000008 -:1005F000FFFFFFFC000000000000000300000000FF -:1006000000000000FFFFFFF1CA31C3C20A966A432F -:100610000000000000000000FFFFFFF84E501439FA -:100620001CC5C0030000000000000000FFFFFFF039 -:100630000000000000000002288C108085C010001F -:10064000FFFFFFFC000000000000000300000000AE -:1006500000000000FFFFFFFC00000000000000039E -:100660000000000000000000FFFFFFFC0000000091 -:10067000000000030000000000000000FFFFFFFC7E -:100680000000000000000003000000000000000067 -:10069000FFFFFFFC0000000000000003000000005E -:1006A00000000000FFFFFFF3CA3323D60E966A4313 -:1006B0000000000000000000FFFFFFF8000004063B -:1006C00020D002430000000000000000FFFFFFF800 -:1006D00000D0000000000000000000839031C00046 -:1006E000FFFFFFFC0000000000000003000000000E -:1006F00000000000FFFFFFFC0000000000000003FE -:100700000000000000000000FFFFFFFC00000000F0 -:10071000000000030000000000000000FFFFFFFCDD -:1007200000000000000000030000000000000000C6 -:10073000FFFFFFFC000000000000000300000000BD -:1007400000000000FFFFFFF3CA33E3D60E966A43B2 -:100750000000000000000000FFFFFFF000501A1032 -:10076000003002430000000000000000FFFFFFF81F -:100770000000020620030800700000F990118A9022 -:10078000FFFFFFFC0000000000000003000000006D -:1007900000000000FFFFFFFC00000000000000035D -:1007A0000000000000000000FFFFFFFC0000000050 -:1007B000000000030000000000000000FFFFFFFC3D -:1007C0000000000000000003000000000000000026 -:1007D000FFFFFFFC0000000000000003000000001D -:1007E00000000000FFFFFFFC00000000000000030D -:1007F0000000000000000000FFFFFFF9C0501BA632 -:1008000000D202430000000000000000FFFFFFF0E4 -:100810004000020700100002700000E890344A9087 -:10082000FFFFFFFC000000000000000300000000CC -:1008300000000000FFFFFFFC0000000000000003BC -:100840000000000000000000FFFFFFFC00000000AF -:10085000000000030000000000000000FFFFFFFC9C -:100860000000000000000003000000000000000085 -:10087000FFFFFFFC0000000000000003000000007C -:1008800000000000FFFFFFFC00000000000000036C -:100890000000000000000000FFFFFFFA10F4020853 -:1008A00000C002430000000000000000FFFFFFF056 -:1008B0000000000000000000728CC8D893891090DE -:1008C000FFFFFFF082900000030000030000000023 -:1008D00000000000FFFFFFFC00000000000000031C -:1008E0000000000000000000FFFFFFFC000000000F -:1008F000000000030000000000000000FFFFFFFCFC -:1009000000000000000000030000000000000000E4 -:10091000FFFFFFFC000000000000000300000000DB -:1009200000000000FFFFFFFC0000000000000003CB -:100930000000000000000000FFFFFFF000000000CA -:10094000000000030000000000000000FFFFFFF2B5 -:1009500000000320002612430000000000000000F9 -:10096000FFFFFFF040000203101000030000000032 -:1009700000000000FFFFFFFC00000000000000037B -:100980000000000000000000FFFFFFFC000000006E -:10099000000000030000000000000000FFFFFFFC5B -:1009A0000000000000000003000000000000000044 -:1009B000FFFFFFFC0000000000000003000000003B -:1009C00000000000FFFFFFFC00000000000000032B -:1009D0000000000000000000FFFFFFF1D03403E63C -:1009E00080262A430000000000000000FFFFFFF205 -:1009F0000834023000C005030000000000000000C1 -:040A000070EAA57F74 -:00000001FF diff --git a/firmware/cxgb3/t3c_psram-1.1.0.bin.ihex b/firmware/cxgb3/t3c_psram-1.1.0.bin.ihex deleted file mode 100644 index c6504803852f..000000000000 --- a/firmware/cxgb3/t3c_psram-1.1.0.bin.ihex +++ /dev/null @@ -1,162 +0,0 @@ -:10000000FFFFFFF4000000040000000100000001F9 -:1000100000010100FFFFFFF40000000400000001E8 -:100020000000000100000000FFFFFFF400000004DA -:10003000000000010000000100000000FFFFFFF4CD -:1000400000000004000000010000000100000000AA -:10005000FFFFFFF4000000040000000100000001A9 -:1000600000000000FFFFFFF400000004000000019A -:100070000000000100000000FFFFFFF4000000048A -:10008000000000010000000100000000FFFFFFF47D -:10009000000000040000000100000001000000005A -:1000A000FFFFFFF400000004000000010000000159 -:1000B00000000000FFFFFFF400000004000000014A -:1000C0000000000100000000FFFFFFF4000000043A -:1000D000000000010000000100000000FFFFFFF42D -:1000E000000000040000000100000001000000000A -:1000F000FFFFFFF400000004000000010000000109 -:1001000000000000FFFFFFF40000000400000001F9 -:100110000000000100000000FFFFFFF3D03403E205 -:1001200080262A410000000100000000FFFFFFF8C8 -:10013000007000000000000000000080C604000005 -:10014000FFFFFFF4000000040000000100000001B8 -:1001500000000000FFFFFFF40000000400000001A9 -:100160000000000100000000FFFFFFF40000000499 -:10017000000000010000000100000000FFFFFFF48C -:100180000000000400000001000000010000000069 -:10019000FFFFFFF400000004000000010000000168 -:1001A00000000000FFFFFFF4000000040000000159 -:1001B0000000000100000000FFFFFFFBD03403E25D -:1001C000802829210000000100000000FFFFFFF847 -:1001D0000600023701C5C00213940480C6057000F2 -:1001E000FFFFFFF88200020637030801000000014C -:1001F00000000000FFFFFFF400000004000000000A -:10020000208000808DF40000FFFFFFF40000000458 -:10021000000000010000000100000000FFFFFFF4EB -:1002200000000004000000010000000100000000C8 -:10023000FFFFFFF4000000040000000100000001C7 -:1002400000000000FFFFFFF40000000400000001B8 -:100250000000000100000000FFFFFFF9C4310000B2 -:1002600000282C810000000100000000FFFFFFF0CB -:100270004E70021D00C5C00200000000C118000041 -:10028000FFFFFFF400000004000000010000000177 -:1002900000000000FFFFFFF4000000040000000168 -:1002A0000000000100000000FFFFFFF40000000458 -:1002B000000000010000000100000000FFFFFFF44B -:1002C0000000000400000001000000010000000028 -:1002D000FFFFFFF400000004000000010000000127 -:1002E00000000000FFFFFFF4000000040000000118 -:1002F0000000000100000000FFFFFFF1C00003E666 -:10030000802828210000000100000000FFFFFFF40A -:1003100000000004000000021394040000017000BB -:10032000FFFFFFF4000000040000000100000001D6 -:1003300000000000FFFFFFF40000000400000001C7 -:100340000000000100000000FFFFFFF400000004B7 -:10035000000000010000000100000000FFFFFFF4AA -:100360000000000400000001000000010000000087 -:10037000FFFFFFF400000004000000010000000186 -:1003800000000000FFFFFFF4000000040000000177 -:100390000000000100000000FFFFFFFA103400041D -:1003A000000001010000000100000000FFFFFFF05D -:1003B0006000000620030802700000F080259A907B -:1003C000FFFFFFF400000004000000010000000136 -:1003D00000000000FFFFFFF4000000040000000127 -:1003E0000000000100000000FFFFFFF40000000417 -:1003F000000000010000000100000000FFFFFFF40A -:1004000000000004000000010000000100000000E6 -:10041000FFFFFFF9C83102020A000242000000811A -:1004200080000000FFFFFFF1C83103C20A962A4294 -:100430000000008180000000FFFFFFF00431000495 -:10044000000004010000000100000000FFFFFFF8B1 -:1004500020B000040000000013940400C1197000D3 -:10046000FFFFFFF400000004000000020000000095 -:1004700000001000FFFFFFF4000000040000000176 -:100480000000000100000000FFFFFFF40000000476 -:10049000000000010000000100000000FFFFFFF469 -:1004A0000000000400000001000000010000000046 -:1004B000FFFFFFF80000000000004000680C200172 -:1004C00000001090FFFFFFF9C031C3E600266A422A -:1004D0000000000000001000FFFFFFF210F4000415 -:1004E000000002410000000100000000FFFFFFF0DB -:1004F0006050080400000002700C20F180259A90E2 -:10050000FFFFFFF8060000040100400200000000A9 -:1005100000001000FFFFFFF40000000400000002D4 -:10052000288C108085C01000FFFFFFF4000000043D -:10053000000000010000000100000000FFFFFFF4C8 -:1005400000000004000000010000000100000000A5 -:10055000FFFFFFF4000000040000000100000001A4 -:1005600000000000FFFFFFF4000000040000000195 -:100570000000000100000000FFFFFFF04E0000003F -:10058000000000010000000100000000FFFFFFF973 -:10059000C00002DA00061A42000000839035C00055 -:1005A000FFFFFFF400000004000000010000000154 -:1005B00000000000FFFFFFF4000000040000000145 -:1005C0000000000100000000FFFFFFF40000000435 -:1005D000000000010000000100000000FFFFFFF428 -:1005E0000000000400000001000000010000000005 -:1005F000FFFFFFF400000004000000010000000104 -:1006000000000000FFFFFFF9CA31C3C60A966A4125 -:100610000000000100000000FFFFFFF84E501439F9 -:100620001CC5C0010000000100000000FFFFFFF03A -:100630000000000000000002288C108085C010001F -:10064000FFFFFFF4000000040000000100000001B3 -:1006500000000000FFFFFFF40000000400000001A4 -:100660000000000100000000FFFFFFF40000000494 -:10067000000000010000000100000000FFFFFFF487 -:100680000000000400000001000000010000000064 -:10069000FFFFFFF400000004000000010000000163 -:1006A00000000000FFFFFFF3CA3323D60E966A4115 -:1006B0000000000100000000FFFFFFF8000004063A -:1006C00020D002410000000100000000FFFFFFF801 -:1006D00000D0000000000000000000839031C00046 -:1006E000FFFFFFF400000004000000010000000113 -:1006F00000000000FFFFFFF4000000040000000104 -:100700000000000100000000FFFFFFF400000004F3 -:10071000000000010000000100000000FFFFFFF4E6 -:1007200000000004000000010000000100000000C3 -:10073000FFFFFFF4000000040000000100000001C2 -:1007400000000000FFFFFFFBCA33E3D20E966A41B0 -:100750000000000100000000FFFFFFF000501A1031 -:10076000003002410000000100000000FFFFFFF028 -:100770000000020220030800700000F990118A9026 -:10078000FFFFFFF400000004000000010000000172 -:1007900000000000FFFFFFF4000000040000000163 -:1007A0000000000100000000FFFFFFF40000000453 -:1007B000000000010000000100000000FFFFFFF446 -:1007C0000000000400000001000000010000000023 -:1007D000FFFFFFF400000004000000010000000122 -:1007E00000000000FFFFFFF4000000040000000113 -:1007F0000000000100000000FFFFFFF1C0501BA23D -:1008000000D202410000000100000000FFFFFFF8DD -:100810004000020300100002700000E890344A908B -:10082000FFFFFFF4000000040000000100000001D1 -:1008300000000000FFFFFFF40000000400000001C2 -:100840000000000100000000FFFFFFF400000004B2 -:10085000000000010000000100000000FFFFFFF4A5 -:100860000000000400000001000000010000000082 -:10087000FFFFFFF400000004000000010000000181 -:1008800000000000FFFFFFF4000000040000000172 -:100890000000000100000000FFFFFFFA10F4020852 -:1008A00000C002410000000100000000FFFFFFF057 -:1008B0000000000000000002728CC8D993891090DB -:1008C000FFFFFFF082900000030000010000000124 -:1008D00000000000FFFFFFF4000000040000000122 -:1008E0000000000100000000FFFFFFF40000000412 -:1008F000000000010000000100000000FFFFFFF405 -:1009000000000004000000010000000100000000E1 -:10091000FFFFFFF4000000040000000100000001E0 -:1009200000000000FFFFFFF40000000400000001D1 -:100930000000000100000000FFFFFFF000000000C9 -:10094000000000010000000100000000FFFFFFF2B6 -:1009500000000320002612410000000100000000FA -:10096000FFFFFFF040000203101000010000000133 -:1009700000000000FFFFFFF4000000040000000181 -:100980000000000100000000FFFFFFF40000000471 -:10099000000000010000000100000000FFFFFFF464 -:1009A0000000000400000001000000010000000041 -:1009B000FFFFFFF400000004000000010000000140 -:1009C00000000000FFFFFFF4000000040000000131 -:1009D0000000000100000000FFFFFFF9D03403E237 -:1009E00080262A410000000100000000FFFFFFF206 -:1009F0000834023000C005010000000100000000C2 -:040A000070EAA741B0 -:00000001FF diff --git a/firmware/dsp56k/bootstrap.asm b/firmware/dsp56k/bootstrap.asm deleted file mode 100644 index a411047e6db3..000000000000 --- a/firmware/dsp56k/bootstrap.asm +++ /dev/null @@ -1,98 +0,0 @@ -; Author: Frederik Noring -; -; This file is subject to the terms and conditions of the GNU General Public -; License. See the file COPYING in the main directory of this archive -; for more details. - -; DSP56k loader - -; Host Interface -M_BCR EQU $FFFE ; Port A Bus Control Register -M_PBC EQU $FFE0 ; Port B Control Register -M_PBDDR EQU $FFE2 ; Port B Data Direction Register -M_PBD EQU $FFE4 ; Port B Data Register -M_PCC EQU $FFE1 ; Port C Control Register -M_PCDDR EQU $FFE3 ; Port C Data Direction Register -M_PCD EQU $FFE5 ; Port C Data Register - -M_HCR EQU $FFE8 ; Host Control Register -M_HSR EQU $FFE9 ; Host Status Register -M_HRX EQU $FFEB ; Host Receive Data Register -M_HTX EQU $FFEB ; Host Transmit Data Register - -; SSI, Synchronous Serial Interface -M_RX EQU $FFEF ; Serial Receive Data Register -M_TX EQU $FFEF ; Serial Transmit Data Register -M_CRA EQU $FFEC ; SSI Control Register A -M_CRB EQU $FFED ; SSI Control Register B -M_SR EQU $FFEE ; SSI Status Register -M_TSR EQU $FFEE ; SSI Time Slot Register - -; Exception Processing -M_IPR EQU $FFFF ; Interrupt Priority Register - - org P:$0 -start jmp <$40 - - org P:$40 -; ; Zero 16384 DSP X and Y words -; clr A #0,r0 -; clr B #0,r4 -; do #64,<_block1 -; rep #256 -; move A,X:(r0)+ B,Y:(r4)+ -;_block1 ; Zero (32768-512) Program words -; clr A #512,r0 -; do #126,<_block2 -; rep #256 -; move A,P:(r0)+ -;_block2 - - ; Copy DSP program control - move #real,r0 - move #upload,r1 - do #upload_end-upload,_copy - movem P:(r0)+,x0 - movem x0,P:(r1)+ -_copy movep #4,X:<3,x0 - cmp x0,A #>1,x0 - jeq <$0 -_get_address - jclr #0,X:<2,x0 - jeq load_X - cmp x0,A - jeq load_Y - -load_P do y0,_load_P - jclr #0,X:< - * Copyright © 2005 Jan Harkes - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#define _GNU_SOURCE -#include - - -struct ihex_binrec { - struct ihex_binrec *next; /* not part of the real data structure */ - uint32_t addr; - uint16_t len; - uint8_t data[]; -}; - -/** - * nybble/hex are little helpers to parse hexadecimal numbers to a byte value - **/ -static uint8_t nybble(const uint8_t n) -{ - if (n >= '0' && n <= '9') return n - '0'; - else if (n >= 'A' && n <= 'F') return n - ('A' - 10); - else if (n >= 'a' && n <= 'f') return n - ('a' - 10); - return 0; -} - -static uint8_t hex(const uint8_t *data, uint8_t *crc) -{ - uint8_t val = (nybble(data[0]) << 4) | nybble(data[1]); - *crc += val; - return val; -} - -static int process_ihex(uint8_t *data, ssize_t size); -static void file_record(struct ihex_binrec *record); -static int output_records(int outfd); - -static int sort_records = 0; -static int wide_records = 0; -static int include_jump = 0; - -static int usage(void) -{ - fprintf(stderr, "ihex2fw: Convert ihex files into binary " - "representation for use by Linux kernel\n"); - fprintf(stderr, "usage: ihex2fw [] \n"); - fprintf(stderr, " -w: wide records (16-bit length)\n"); - fprintf(stderr, " -s: sort records by address\n"); - fprintf(stderr, " -j: include records for CS:IP/EIP address\n"); - return 1; -} - -int main(int argc, char **argv) -{ - int infd, outfd; - struct stat st; - uint8_t *data; - int opt; - - while ((opt = getopt(argc, argv, "wsj")) != -1) { - switch (opt) { - case 'w': - wide_records = 1; - break; - case 's': - sort_records = 1; - break; - case 'j': - include_jump = 1; - break; - default: - return usage(); - } - } - - if (optind + 2 != argc) - return usage(); - - if (!strcmp(argv[optind], "-")) - infd = 0; - else - infd = open(argv[optind], O_RDONLY); - if (infd == -1) { - fprintf(stderr, "Failed to open source file: %s", - strerror(errno)); - return usage(); - } - if (fstat(infd, &st)) { - perror("stat"); - return 1; - } - data = mmap(NULL, st.st_size, PROT_READ, MAP_SHARED, infd, 0); - if (data == MAP_FAILED) { - perror("mmap"); - return 1; - } - - if (!strcmp(argv[optind+1], "-")) - outfd = 1; - else - outfd = open(argv[optind+1], O_TRUNC|O_CREAT|O_WRONLY, 0644); - if (outfd == -1) { - fprintf(stderr, "Failed to open destination file: %s", - strerror(errno)); - return usage(); - } - if (process_ihex(data, st.st_size)) - return 1; - - return output_records(outfd); -} - -static int process_ihex(uint8_t *data, ssize_t size) -{ - struct ihex_binrec *record; - uint32_t offset = 0; - uint32_t data32; - uint8_t type, crc = 0, crcbyte = 0; - int i, j; - int line = 1; - int len; - - i = 0; -next_record: - /* search for the start of record character */ - while (i < size) { - if (data[i] == '\n') line++; - if (data[i++] == ':') break; - } - - /* Minimum record length would be about 10 characters */ - if (i + 10 > size) { - fprintf(stderr, "Can't find valid record at line %d\n", line); - return -EINVAL; - } - - len = hex(data + i, &crc); i += 2; - if (wide_records) { - len <<= 8; - len += hex(data + i, &crc); i += 2; - } - record = malloc((sizeof (*record) + len + 3) & ~3); - if (!record) { - fprintf(stderr, "out of memory for records\n"); - return -ENOMEM; - } - memset(record, 0, (sizeof(*record) + len + 3) & ~3); - record->len = len; - - /* now check if we have enough data to read everything */ - if (i + 8 + (record->len * 2) > size) { - fprintf(stderr, "Not enough data to read complete record at line %d\n", - line); - return -EINVAL; - } - - record->addr = hex(data + i, &crc) << 8; i += 2; - record->addr |= hex(data + i, &crc); i += 2; - type = hex(data + i, &crc); i += 2; - - for (j = 0; j < record->len; j++, i += 2) - record->data[j] = hex(data + i, &crc); - - /* check CRC */ - crcbyte = hex(data + i, &crc); i += 2; - if (crc != 0) { - fprintf(stderr, "CRC failure at line %d: got 0x%X, expected 0x%X\n", - line, crcbyte, (unsigned char)(crcbyte-crc)); - return -EINVAL; - } - - /* Done reading the record */ - switch (type) { - case 0: - /* old style EOF record? */ - if (!record->len) - break; - - record->addr += offset; - file_record(record); - goto next_record; - - case 1: /* End-Of-File Record */ - if (record->addr || record->len) { - fprintf(stderr, "Bad EOF record (type 01) format at line %d", - line); - return -EINVAL; - } - break; - - case 2: /* Extended Segment Address Record (HEX86) */ - case 4: /* Extended Linear Address Record (HEX386) */ - if (record->addr || record->len != 2) { - fprintf(stderr, "Bad HEX86/HEX386 record (type %02X) at line %d\n", - type, line); - return -EINVAL; - } - - /* We shouldn't really be using the offset for HEX86 because - * the wraparound case is specified quite differently. */ - offset = record->data[0] << 8 | record->data[1]; - offset <<= (type == 2 ? 4 : 16); - goto next_record; - - case 3: /* Start Segment Address Record */ - case 5: /* Start Linear Address Record */ - if (record->addr || record->len != 4) { - fprintf(stderr, "Bad Start Address record (type %02X) at line %d\n", - type, line); - return -EINVAL; - } - - memcpy(&data32, &record->data[0], sizeof(data32)); - data32 = htonl(data32); - memcpy(&record->data[0], &data32, sizeof(data32)); - - /* These records contain the CS/IP or EIP where execution - * starts. If requested output this as a record. */ - if (include_jump) - file_record(record); - goto next_record; - - default: - fprintf(stderr, "Unknown record (type %02X)\n", type); - return -EINVAL; - } - - return 0; -} - -static struct ihex_binrec *records; - -static void file_record(struct ihex_binrec *record) -{ - struct ihex_binrec **p = &records; - - while ((*p) && (!sort_records || (*p)->addr < record->addr)) - p = &((*p)->next); - - record->next = *p; - *p = record; -} - -static int output_records(int outfd) -{ - unsigned char zeroes[6] = {0, 0, 0, 0, 0, 0}; - struct ihex_binrec *p = records; - - while (p) { - uint16_t writelen = (p->len + 9) & ~3; - - p->addr = htonl(p->addr); - p->len = htons(p->len); - if (write(outfd, &p->addr, writelen) != writelen) - return 1; - p = p->next; - } - /* EOF record is zero length, since we don't bother to represent - the type field in the binary version */ - if (write(outfd, zeroes, 6) != 6) - return 1; - return 0; -} diff --git a/firmware/kaweth/new_code.bin.ihex b/firmware/kaweth/new_code.bin.ihex deleted file mode 100644 index 292d40f4f334..000000000000 --- a/firmware/kaweth/new_code.bin.ihex +++ /dev/null @@ -1,206 +0,0 @@ -:10000000B6C3AABBCCDD9FCFDE06E7570000C4060F -:1000100097C1E767FF1F28C0E787000424C0E76790 -:10002000FFF922C097CFD70900C0E709A2C0BE06DA -:100030009FAF3600E70500C0A7CFBC0697CFE757B4 -:100040000000B806A7A1B80697CFE757000014082C -:100050000AC0E7570000A4C0A7C07A069FAF920766 -:10006000E70700001408E757FFFFBA069FA0380013 -:10007000E759BA06BE069FA03800C809CA0608623A -:100080009FA13608C00976060060A7C07A069FAF18 -:10009000CC02E7570000B806A7C17A069FAF04005C -:1000A000E75700008E060AC1E70920C01008E7D014 -:1000B0001008E767400010089FAF920CC009D006F7 -:1000C000006005C4C059BE0602C09FAFEC009FAFE0 -:1000D0003402E7570000A6069FA07A02A7CF7A064F -:1000E0004802E709BE06D006C83704009FAF0803E0 -:1000F00097CFE7570000CE0697C0D70900C0C1DFF1 -:10010000C809C606086214C02704C6061094F00782 -:1001100010080200C107010070000400F007300160 -:10012000060050AFE707FFFFD006E7070000CE0646 -:10013000E70500C097CFD70900C0C1DF4802D0094A -:10014000C6062702C606E70500C097CF4802C83793 -:100150000400000C0C00006021C0C0373E0023C921 -:10016000C057B4051BC8C0173F00C067C0FF3000B0 -:100170000800F007000004000002C0174C00300027 -:100180000600F007A0010A004802C1070200D709D3 -:1001900000C0C1DF51AFE70500C097CF9FAF080394 -:1001A0009FAF7A0297CF9FAF7A02C9370400C1DFB1 -:1001B000C809A20650026702A206D107000027D88C -:1001C000AA06C0DF9FAFC40197CFE7570000D20651 -:1001D00097C1E7570100A80697C0C809A0060862A2 -:1001E00097C00002C0170E0027003401270C0C0036 -:1001F0003601E70750C312C0E707CC0B0200E70740 -:100200000100A806E707050090C097CFC809A4061B -:10021000086202C0106407C1E70700009E06E707F6 -:100220007204240097CF2704A406C8170E002702E3 -:100230009E06E7078004240097CFD70900C0C1DFDE -:10024000E7570000900613C19FAF0602E757000072 -:100250009E0613C0E7099E063001E707F20532014A -:10026000E707100096C0E7099E06900604CFE757FF -:1002700000009E0602C19FAF0602E70500C097CFAF -:10028000D70900C0C1DF0892E7570200AA0602C3DF -:10029000C809A4062702A606086203C1E70500C034 -:1002A00097CF2704A406E70500C0F0074000080028 -:1002B000F007000004000002C0170C003000060028 -:1002C000F00746010A00C8170400C107020051AF39 -:1002D00097CFE7570000960697C0C1DFC80996067A -:1002E000270496062752980603C1E7079606980644 -:1002F000C0DF1702C8170E009FAFBA03C805006021 -:1003000003C09FAF240397CF9FAF080397CF570237 -:10031000C907A406D70900C0C1DF08621BC050048A -:100320001102E70500C0C90597CF9702CA09D60692 -:10033000F21701000400F22700000600CA172C0083 -:10034000F87701000E0006C0CAD9F857FF000E006A -:1003500001C1CAD9221C0C00E2270000E2170100EB -:10036000E2270000CA05000C0C00C0174100C0675E -:10037000C0FF300008000002C0170C00300006006B -:10038000F007DA000A00F00700000400000C080083 -:1003900040D10100C019CE06C059C20604C949AFF8 -:1003A0009FAFEC004AAF6710CE06C8170400C10724 -:1003B0000100D70900C0C1DF50AFE70500C097CFEB -:1003C000C0070100C109AC06C177010097C1D87709 -:1003D000010012C0C9076A069FAF080404C1C177B3 -:1003E000080013C097CFC177020097C1C1771000F2 -:1003F0000CC09FAF2C0497CFC177040006C0C9077B -:1004000070069FAF080497C000CF009097CF50545C -:1004100097C1705C0200020097C1705C0400040088 -:1004200097CF8001C0006000300018000C0006006B -:100430000000CB09B206CC09B4060B5311C0C902A7 -:10044000CA071C049FAF080497C00AC882080ACFD5 -:1004500082089FAF080497C005C28930826078C1C6 -:10046000009097CF8910095379C2893082087ACFDA -:10047000C0DF97CFC0DF97CFE70996C09206E709A4 -:1004800098C094060FCFE70996C09206E70998C076 -:100490009406E7099E063001E707F2053201E707F7 -:1004A000100096C0D70900C01702C8099006C837C7 -:1004B0000E00E7772A00920630C09702CA09D606D6 -:1004C000E777200092060EC0F21701001000F22715 -:1004D00000001200E7770A009206CA051EC09702C4 -:1004E000CA09D606F21701000C00F22700000E0020 -:1004F000E7770200920607C0F21701004400F227D6 -:100500000000460006CFF21701006000F22700004D -:100510006200CA059FAF08030FCF57020902F10915 -:1005200094060C00F1DA0C00C80998065002670224 -:100530009806D1070000C905E7099E069006E7570F -:100540000000900602C09FAF0602C805E70500C084 -:10055000C0DF97CFD70900C0170017029702C00964 -:1005600092C0E707040090C0CA09D606E70700005A -:10057000A806E7076A040200C077020008C0F21765 -:1005800001005000F227000052009FCF2406C077E0 -:10059000100006C0F21701005800F22700005A00B0 -:1005A000C077800006C0F21701007000F22700003B -:1005B0007200C07708001DC1F21701000800F22781 -:1005C00000000A00C077000206C0F21701006400B4 -:1005D000F22700006600C077400006C0F217010055 -:1005E0005C00F22700005E00C077010001C01BCF55 -:1005F0001ACFF21701000000F22700000200C8091C -:100600003401CA171400D877010005C0CAD9D857D9 -:10061000FF0001C0CAD9E21994C0E2270000E21726 -:100620000100E22700009FAF40069FAFC401E757DB -:100630000000D2069FA10E0ACA05C805C005E7053D -:1006400000C0C0DF97CFC809A006086297C0270482 -:10065000A0062752A20603C1E707A006A2069FAF85 -:100660000803E7570000AA0602C027DAAA0697CFB8 -:10067000FFFFFFFFFFFF0000000000000000000080 -:10068000000000000000000000000000000000006A -:10069000000000000000000000000000000000005A -:1006A000000000000000000000000000000000004A -:1006B000000000000000000000000000000000003A -:1006C00000000000000000003F00000000000000EB -:1006D000000000000000FFFF01000000000000001B -:1006E000FFFFFB13E7570080B20006C2E707EE0BDF -:1006F0001200E707340CB200E707C607F202C80988 -:10070000B400F80702000D00D7090EC0E70700008B -:100710000EC0C809DE00C8170900C907DA06C007FD -:100720000400680A00DA7DC1E709C0007C06E70919 -:10073000BE007806E7091000BC06C807D6079FAFC1 -:10074000AE079FAF000AC809DE00000E0F004190FF -:100750009FDE060044AF2700B2062700B40627003C -:10076000B606C007740044AF2700D6060800009004 -:10077000C1073A00200001DA7DC19FAFBA09C00766 -:10078000440048AF27007A069FAF960AE7070100AA -:10079000C006E7050EC097CF49AFE78743000EC0FC -:1007A000E707FFFFBE069FAFAE0AC007010060AFBC -:1007B0004AAF97CF00080908110800DA7CC197CF2B -:1007C0006704CC02C0DF5194B1AF0600C1DFC90994 -:1007D000CC02496275C1C0DFA7CFD6020E0024004B -:1007E000800422004E05D0000E0AAA003008BE0088 -:1007F0004A0A1000200004006E0402006A04060089 -:10080000000024C0040428C0FEFB1EC0000422C057 -:10081000FFF4C000900900000000FFFF56086008C8 -:10082000D008DA0800090409080932094209500908 -:1008300052095A095A092702CA0697CFE70700004A -:10084000CA060A0E0100CA570E009FC35A09CA37CA -:1008500000009FC25A090AD2B2CF1608C809DE00AA -:1008600007069FCF6C091702C809DE00000E0F00B3 -:1008700041909FDE0600C805305006009FC85A0907 -:10088000270C0200B006C009B2062700B406E7072D -:100890000000AE0627008006001C06002700B606F2 -:1008A00041906750B0060DC067007E06270C060019 -:1008B0008206E707BC088406C8077E06419051AF50 -:1008C00097CF9FAF480CE709B606B406E709B00614 -:1008D000AE0659AF97CF270C0200AC0659AF97CFA1 -:1008E000090C020009DA49D2C919D606C8077E06E2 -:1008F000E00700006002E0070400D007CC0848DBF6 -:10090000419050AF97CF59AF97CF59AF97CFF0578E -:100910000600060025C1E7077006800641906700C3 -:100920007E06270C06008206E7078C098406C807A6 -:100930007E06419051AF97CF070C0600C7570600BF -:100940000FC1C807700615CF000C020000DA40D1B5 -:100950002700C2061ECF1DCF270C0200CC0619CFE0 -:1009600027022001E70708002201E7071300B0C0B3 -:1009700097CF419067007E06E70182062702800636 -:10098000E7078C098406C8077E06C107008050AFC0 -:1009900097CF59AF97CF006005C0E7070000C406A6 -:1009A000A7CF7C069FAF000AE7070100C40649AF46 -:1009B000D70900C007AFE70500C04AAFA7CF7C0644 -:1009C000C007FE7F44AF4000C03700014190C037F0 -:1009D0000800DFDE5006C057100002C2C00710003A -:1009E00027009A0641909FDE400644AF27009C06F0 -:1009F000C0099A06419000D200D89FDE080044AF9B -:100A00002700C80697CFE787008428C0E767FFFB69 -:100A100024C097CFE7870100D206E7570000A80659 -:100A200097C19FAF000AE787000622C0E7070000D2 -:100A300090C0E767FEFF3EC0E70726000AC0E787D1 -:100A400001003EC0E707FFFFBE069FAF100B97CF28 -:100A50001700A7AF7806C00527007606E7870100D4 -:100A6000D2069FAF000AE7070C0040C09FAF100BF3 -:100A700000902700A6062700AA06E709B206B406DA -:100A80002700AE062700AC069FAFAE0AC0070000E5 -:100A90002700B2022700B40227008E06C007060016 -:100AA000C809DE00C8170300C9077006290A00DA62 -:100AB0007DC197CFD70900C0C1DF009027009606FF -:100AC000E707960698062700A006E707A006A206F5 -:100AD0002700A6062700900627009E06C8099C0648 -:100AE000C1099A06C907A40611020902C8174006DF -:100AF00001DA7AC15194C809C806C907C606C109F6 -:100B00009A0611020902C817080001DA7AC1519445 -:100B1000E70500C097CFE7570000760697C09FAF64 -:100B20000400E709BE06BA06E757FFFFBA0604C18C -:100B3000E707100BB80697CFE7173200BA06E7674A -:100B4000FF07BA06E707460BB80697CFE75700003E -:100B5000C00623C0E707040090C0E707008080C0FC -:100B6000E707000080C0E707008080C0C0070000E2 -:100B7000C0070000C0070000E707000080C0E707CB -:100B8000008080C0E707008040C0C0070000E70782 -:100B9000000040C0E707000080C0E707040090C0E5 -:100BA000E707000240C0E7070C0240C0E70700006B -:100BB000C006E7070000B806E7070000D206D7091D -:100BC00000C0C1DF9FAF3402E70500C09FAFC40182 -:100BD00097CFD70900C0170017029702E757000008 -:100BE000A80606C0C00992C0C07709029FC15C0573 -:100BF0009FCF3206D7090EC0E70700000EC09FAF97 -:100C0000020CE7050EC097CFD70900C01702C8092C -:100C1000B0C0E767FE7FB0C0C87700209FC164EB1B -:100C2000E7570000C8029FC180EBC899CA02C86795 -:100C300004009FC196EB9FCF4CEBE7070000A6C0D6 -:100C4000E709B0C0C802E7070300B0C097CFC009EA -:100C5000B006C037010097C9C909B2060200419029 -:100C60004802C91706009FAF08049FA2720C02DA5F -:100C700077C1416071C197CF170257024304210425 -:100C8000E00043042104E00043042104E000C10724 -:100C90000100C905C80597CFE70701008E06C80700 -:100CA0008606E70700008606E70710088806E707BC -:100CB00004008A06E707BC0C8C06C107038050AF0E -:0C0CC00097CFE70700008E0697CF0000DA -:00000001FF diff --git a/firmware/kaweth/new_code_fix.bin.ihex b/firmware/kaweth/new_code_fix.bin.ihex deleted file mode 100644 index fb35d3d0c924..000000000000 --- a/firmware/kaweth/new_code_fix.bin.ihex +++ /dev/null @@ -1,40 +0,0 @@ -:10000000B6C3AABBCCDD0200080028002C003400D7 -:100010003C0040004800540058005E006400680046 -:100020006E006C00720076007C00800086008A0002 -:100030009000940098009E00A600AA00B000B400B2 -:10004000B800C000C600CA00D000D400D800E0004C -:10005000DE00E800F000FC0004010A0118012201A2 -:1000600028013A013E017E0198019C01A201AC01E8 -:10007000B201BA01C001C801D001D601F401FC01EE -:10008000080216021A0222022A022E023E0244022C -:100090004A025002640262026C02720286028C0200 -:1000A00090029E02BC02D002D802DC02E002E8020A -:1000B000E602F402FE0204030C0328037C0390030F -:1000C00094039C03A203C003D003D403EE03FA03FA -:1000D000FE032E0432043C0440044E0476047C04E7 -:1000E00084048A048E04A604B004B804BE04D204B6 -:1000F000DC04EE0410051A0524052A05360534052E -:100100003C05420564056A056E058605220626063D -:100110002C06300642064A064E06560654065A0675 -:1001200060066606E806EE06F406160726072C07A4 -:10013000320736073A073E07520756075A07640741 -:1001400076077A07800784078A079E07A207DA07DF -:10015000DE07E207E607EA07EE07F207F6070E08F2 -:10016000160818081A081C081E0820082208240867 -:10017000260828082A082C082E0832083A084608BB -:100180004E0854085E0878087E08820886088C08A5 -:10019000900898089E08A408AA08B008AE08B408F9 -:1001A000BE08C408C208CA08C808D408E408E80899 -:1001B000F608140912091A092009260924092A092E -:1001C0003E094C0956097009740978097E097C09B1 -:1001D000820998099C09A009A609B809DC09E8095F -:1001E000EC09FC09120A180A1E0A420A460A4E0ABB -:1001F000540A5A0A5E0A680A6E0A720A780A760A6D -:100200007C0A800A840A940AA40AB80ABE0ABC0AB4 -:10021000C20AC80AC60ACC0AD00AD40AD80ADC0A1A -:10022000E00AF20AF60AFA0A140B1A0B200B1E0B4C -:10023000260B2E0B2C0B360B3C0B420B400B4A0BA8 -:10024000AA0BB00BB60BC00BC80BDA0BE80BEC0B10 -:10025000FA0B4A0C540C620C660C960C9A0CA00C0F -:0E026000A60CA40CAC0CB20CB00CC00C000030 -:00000001FF diff --git a/firmware/kaweth/trigger_code.bin.ihex b/firmware/kaweth/trigger_code.bin.ihex deleted file mode 100644 index c3e1658c2803..000000000000 --- a/firmware/kaweth/trigger_code.bin.ihex +++ /dev/null @@ -1,13 +0,0 @@ -:10000000B6C3AABBCCDDC807A000F0075E0006009F -:10001000F0070A000800F00900000200E7073600B8 -:100020000000F00700000400E70750C310C0F0090B -:100030000EC00000E78701000EC097CFD70900C0AF -:100040001702C807A000E71750C310C030D804003B -:10005000305C08000400B0C00600C805E70500C019 -:10006000C0DF97CF49AFC007000060AF4AAF000CB8 -:100070000C0040D2001C0C0040D230000800F007F9 -:1000800000000400F0078600060067CF270C02007E -:100090000000270C00000EC049AF64AFC00700008D -:1000A0004BAF4AAF5ACF0000000000000000000034 -:0600B000940005000000B1 -:00000001FF diff --git a/firmware/kaweth/trigger_code_fix.bin.ihex b/firmware/kaweth/trigger_code_fix.bin.ihex deleted file mode 100644 index 7712f73faeda..000000000000 --- a/firmware/kaweth/trigger_code_fix.bin.ihex +++ /dev/null @@ -1,3 +0,0 @@ -:10000000B6C3AABBCCDD0200060018003E0080008B -:060010009800AA000000A8 -:00000001FF diff --git a/firmware/keyspan/mpr.HEX b/firmware/keyspan/mpr.HEX deleted file mode 100644 index a53ba10b2358..000000000000 --- a/firmware/keyspan/mpr.HEX +++ /dev/null @@ -1,104 +0,0 @@ -:0300330002001AAE -:04001A0053D8EF3296 -:100003008E568F57E5571557AE56700215564E60EC -:0700130005120FA280EE228E -:0300230002004692 -:10004600C0E0C083C082C086758600C0D075D00867 -:1000560030990E300B07A20E929B853699C299D223 -:10006600122012030202F9C2123003197E7E7F406B -:10007600751A7E751B407517007E7D7FC075187DCD -:100086007519C080177E7D7FC0751A7D751BC0757A -:1000960017017E7E7F4075187E751940200B03027E -:1000A6000184E53AC39553503C200C342009319025 -:1000B6007F9BE055387029301012AF3A053AE51BA0 -:1000C6002FF582E4351AF583E013920EAF3A053A1E -:1000D600E51B2FF582E4351AF583E0F5360202F7C3 -:1000E600C20B0202F7300311907FC7E4F0A3E0547D -:1000F60002F51DA3E0F51C8011907FC9E4F0907F06 -:03004300020F00A9 -:03000000020026D5 -:0C002600787FE4F6D8FD75815A020A3399 -:40010600C6E05402F51DA3E0F51CE51724FF9203300D0DC20D907FBB7401F0C20B0202F7E51D6005C20B0202F7851C53851982851883E013920D7512FF200C3A2009379082 -:400146007F9BE05538702F30101C851982851883A3E013920E851982851883A3A3E0F536753A030202F7753A02851982851883A3E0F5360202F7753A01C20B0202F73003FE -:400186000E907FC6E05402F51DA3E0F51C800C907FC8E05402F51DA3E0F51CE53AC395535003020268E51D6007C214C2050202F7851C53851B82851A83E013920D7512FF61 -:4001C600300C03020260300903020260907F9BE05538600302026030101B851B82851A83A3E013929B851B82851A83A3A3E0F599753A03800D851B82851A83A3E0F5997575 -:400206003A02E53AC395534026300307907FC7E4F08005907FC9E4F0E51724FF9203200D030202F7C20D907FBB7401F00202F7301012AF3A053AE51B2FF582E4351AF58394 -:40024600E013920EAF3A053AE51B2FF582E4351AF583E0F536D20B0202F7753A01C2140202F7300C030202F53009030202F5907F9BE055387079301012AF3A053AE51B2FF2 -:40028600F582E4351AF583E013929BAF3A053AE51B2FF582E4351AF583E0F599E53AC395534022300307907FC7E4F08005907FC9E4F0E51724FF9203300D36C20D907FBB0E -:4002C6007401F0802C301012AF3A053AE51B2FF582E4351AF583E013920EAF3A053AE51B2FF582E4351AF583E0F536D20B8002C214D201209803020435C298200203020383 -:40030600A2201527AF39053974802FF582E4347EF583E599F030104DAF39053974802FF582E4347EF583E598F0803A859955E555B54704D209802EE555B54604C20980251C -:40034600AF39053974802FF582E4347EF583E555F0301011AF39053974802FF582E4347EF583E598F0D20FE539C395435003020433907FB8E030E116E539C39440500302F5 -:40038600043315391539052B433401020433907FB7E539F0753900C202020433201527AF39053974002FF582E4347EF583E599F030104DAF39053974002FF582E4347EF594 -:4003C60083E598F0803A859955E555B54704D209802EE555B54604C2098025AF39053974002FF582E4347EF583E555F0301011AF39053974002FF582E4347EF583E598F0EA -:40040600D20FE539C395434024907FB6E030E112E539C39440401615391539052B433401800B907FB9E539F0753900D202D201300105C201020056D0D0D086D082D083D02F -:40044600E032907FBCE020E154E5346050E531704CE53430E10BE4F52F753401753102800EA208E433F52FC208E4F534753110E4F5567E007B0074242556F9EE3400FA12D8 -:400486000C79FF74002556F582E4347DF583EFF00556E556B40CDB907FBD740CF0907FCAE030E1030205D1E4F55674402556F582E4347DF583E0FFE5567C007B00243BF903 -:4004C600EC3400FAEF120C920556E556B418DBE53B601175C92075C836853CCA853DCBE4907F9FF0E53E139210929F853F38E540139215E5416009907F98E054FBF0800744 -:40050600907F98E04404F0E5426009907F98E0547FF08007907F98E04480F0E548600BC20CC209907F95E04402F0E549600CD209433401907F95E04402F0E54A600DC2AFBB -:40054600C20BD200E4F553F53AD2AFE54B6005301502D209E54C6015907F95E054FDF0907F9EE04402F0907F98E054FDF0E54D600AD29CC298752C0175311EE54E6007C227 -:400586009CE4F539F52CE54F6003E4F539E5506002D207E551600AE54D7002F531E5514234E552601F907FD77411F07431F07412F07432F07413F07433F07414F07434F067 -:4005C600D203D202D208E4907FCBF0A20CE433FF652960058F29433401A209E433FF652A60058F2A433401907F9BE0FF54086408F55765256006855725433401EF5410643A -:4006060010F55765266006855726433401EF54406440F55765276006855727433401EF54206420F55765286006855728433401907F9AE054406440F557652E600685572E5B -:40064600433401300735C2AF300218907FB8E020E127E5396009907FB7F0E4F539C202C2078016907FB6E020E10FE5396009907FB9F0E4F539D202C207D2AF20053D3003DB -:400686001E907FC6E020E133907E40E013920D753A01907FC7E0F553D2057512FF801C907FC8E020E115907DC0E013920D753A01907FC9E0F553D2057512FF2014332000E6 -:4006C60006E53A6553702A30051A300309E4907FC7F0C2038007E4907FC9F0D203C205E4F553F53A300D0AC20DC200907FBB7401F03014030207BF2005030207BF300C0314 -:400706000207BF3009030207BF907F9BE0553860030207BF30030C7E7E7F4075587E755940800A7E7D7FC075587D7559C0301012AF3A053AE5592FF582E43558F583E0137C -:40074600921AAF3A053AE5592FF582E43558F583E0F557E53AC39553502A301012AF3A053AE5592FF582E43558F583E013920EAF3A053AE5592FF582E43558F583E0F53688 -:40078600D20B8015C20B300309E4907FC7F0C2038007E4907FC9F0D203301004A21A929BD214C2AF855799200B0D300D0AC20DC200907FBB7401F0D2AF22907FE9E0120C70 -:4007C600A4091C0009890109E60307E306090D0809010908E90A08F80B00000A24907FEBE024FE601C14700302087924026003020A24740D907FD4F07487907FD5F0020AE6 -:400806002B907FEAE0B401047F0280027F037582D875830DEFF07582D175830DF07582CA75830DF07582C375830DF0907FEAE00475829E75830DF0907FEFE0FE907FEEE07B -:400846007C002400F55AEC3EF55975150D75169975829B75830DE0751300F514D3E514955AE51395594006855913855A14120BBA020A2B907FEAE0700B7556FF75570D7503 -:4008860058DC802D907FEAE0B4010B7556FF75570D7558E0801B907FEAE0B4020B7556FF75570D7558F080097556FF75570E75581E907FEEE0755900F55AAE57AF588E1512 -:4008C6008F168F828E83E0FEA3E08E13F514D3955AE51395594006855913855A14120BBA020A2B907F00E511F0907FB57401F0020A2B907FEAE0F511020A2B120C24907F84 -:40090600EAE0F510020A2B907F00E510F0907FB57401F0020A2B907FE8E0247F602714603424026003020A24A216E433FF25E0FFA218E4334F907F00F0E4A3F0907FB57455 -:4009460002F0020A2BE4907F00F0A3F0907FB57402F0020A2B907FECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF583E054FD907F00F0E4A3F0907FB57402F00B -:40098600020A2B907FE8E024FE601724026003020A2B907FEAE064016003020A24C216020A2B907FEAE07076907FECE0F45480FFC4540FFFE054072F25E024B4F582E4348D -:4009C6007FF583E4F0907FECE05480FF131313541FFFE054072F907FD7F0E04420F08045907FE8E024FE601024027039907FEAE06401702AD216802D907FEAE07020907F77 -:400A0600ECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF5837401F08007907FB4E04401F0907FB4E04402F022C210E4F510F534C209C20CC20BC214C20DC215A5 -:400A4600C211C207C212C20FC208F535F539F553F53AF533F530F52FF52EF52DF52CF52BF52AF529F528F527F526F525F524C205C217C219C216C218C204D213C206C20178 -:400A8600907F92E054FDF0D2E843D820907FDE7401F0907FDFF0907FAB74FFF0907FA9F0907FAAF05391EF907FAFE04401F0907FAEE0440FF0907FAC740EF0D2AFD2BCD247 -:400AC6001A120F7DC21730040312044830042A300627C206E51260161512907FD8E030E6047F0080027F20907F96EFF08006907F967420F0120B1480CD301707C217120741 -:400B0600C080C33019C0C219120EDC80B922E53160021531E53960556535704BE533F460020533E533C395444043C2AF30021B907FB8E020E12D907FB7E539F0C202E4F5AA -:400B460039F533F5357512FF8019907FB6E020E112907FB9E539F0D202E4F539F533F5357512FFD2AF8006853935E4F533E52C6030200F07907F9BE030E00FE52D6006E497 -:400B8600F52D433401E4F5308014E530D39545500DE530B54506752D014334010530C20F22907FD9E030E2047F0080027F20907F96EFF022E51445136057AE13AF14D3EF0F -:400BC6009440EE940040047E007F40C3E5149FF514E5139EF513E4FDEDC39FE49E501F851682851583E0FC74002DF582E4347FF583ECF00D0516E5167002051580DA907FC4 -:400C0600A97401F0907FACE04401F0907FB5EFF022907FACE054FEF0E4907FB5F022E4907F93F0907F9C7430F0907F967420F0907F947401F0907F9D74FFF0907F977486DF -:400C4600F0907F957403F0907F9E7484F0907F98F0E4907FC7F0907FC9F0907FCBF075984043A810907FDE741FF0907FDF740FF0D20422BB010689828A83E0225002E722C3 -:400C8600BBFE02E32289828A83E49322BB010689828A83F0225002F722BBFE01F322D083D082F8E4937012740193700DA3A393F8740193F5828883E4737402936860EFA367 -:400CC600A3A380DFE4907F95F0907F94F0907F93F0907F9DE04402F0907F97E04442F0907F9C7410F0E4907F96F0907F9D74BEF03016047F8080027F00907F97EFF0E49045 -:400D06007F95F0907F9EF0907F98F022C0E0C0F0C083C082C085C084C086758600C0D075D0085391EF907FA97401F0120BBAD0D0D086D084D085D082D083D0F0D0E032C06A -:400D4600E0C083C082C085C084C086758600907FC4E4F05391EF907FAB7404F0D086D084D085D082D083D0E03200000000000000000000000000000000000000000000001C -:400D86000012011001FFFFFF40CD061C010100010200020902430001010080320904000007FF00000007050102400000070502024000000705030240000007058102400002 -:400DC600010705820240000107058302400001070584024000010403090410034B00650079007300700061006E002E034B00650079007300700061006E00200055005000A3 -:400E0600530048003100310032002D00530065007200690061006C0022035500530041002D003500330020003200300030003200610070007200320036000000C0E0C083DB -:400E4600C082C085C084C0867586005391EF907FAB7402F0D206D086D084D085D082D083D0E032C0E0C083C082C085C084C086758600D2175391EF907FAB7401F0D086D01F -:400E860084D085D082D083D0E032C0E0C083C082C085C084C086758600D2195391EF907FAB7408F0D086D084D085D082D083D0E032C0E0C083C082C085C084C08675860084 -:400EC6005391EF907FA97402F0D086D084D085D082D083D0E032120CCA120FB3907FD6E030E712E04401F07F0D7E00120003907FD6E054FEF0120C242200020E6900020EA3 -:400F06004200020D4500020E9000020F1000020F1400020D1200020F1C00020EB700020F2400020F3300020F2C00020F58C0E0C083C082C085C084C0867586005391EF90A9 -:400F46007FA97404F0D086D084D085D082D083D0E032C0E0C083C082C085C084C0867586005391EF907FA97408F0D086D084D085D082D083D0E032907FD6E054FBF0E044C1 -:3D0F860008F0301A04E04402F07FF47E01120003907FD6E054F7F0E04404F0227400F58690FDA57C05A3E582458370F922907FD6E04480F04387010000000000222C -:00000001FF - - The firmware contained herein is - - Copyright (C) 1999-2001 - Keyspan, A division of InnoSys Incorporated ("Keyspan") - - as an unpublished work. This notice does not imply unrestricted or - public access to the source code from which this firmware image is - derived. Except as noted below this firmware image may not be - reproduced, used, sold or transferred to any third party without - Keyspan's prior written consent. All Rights Reserved. - - Permission is hereby granted for the distribution of this firmware - image as part of a Linux or other Open Source operating system kernel - in text or binary form as required. - - This firmware may not be modified and may only be used with - Keyspan hardware. Distribution and/or Modification of the - keyspan.c driver which includes this firmware, in whole or in - part, requires the inclusion of this statement." - -static char theFirmwareDate53[] = - "04/26/2002 02:47p 11,570 USA53"; - diff --git a/firmware/keyspan/usa18x.HEX b/firmware/keyspan/usa18x.HEX deleted file mode 100644 index a9ff70eadfe7..000000000000 --- a/firmware/keyspan/usa18x.HEX +++ /dev/null @@ -1,141 +0,0 @@ -:030033000212F7BF -:10000300E4907F93F0907F9C7430F0E4907F96F0BF -:10001300907F94F0907F9D74FFF0E4907F97F09031 -:0F0023007F95F0907F9E7407F0E4907F98F02215 -:1000460030091812131BEFC3953C40030200D890E9 -:100056007FBF7401F0C209C200807730033B907FF6 -:10006600C6E020E16D12131BEFC394405064907EEE -:1000760040E0139209907FC7E014F5192000116043 -:100086000FF5087E7E7F41750C7E750D41120CBA08 -:10009600C203E4907FC7F08039907FC8E020E13248 -:1000A60012131BEFC394405029907DC0E0139209B0 -:1000B600907FC9E014F519200011600FF5087E7DC8 -:1000C6007FC1750C7D750DC1120CBAD203E4907F09 -:1000D600C9F0907FB6E030E1030201601211D68FBD -:1000E600191213278F36E519C3953A500F1212EBE2 -:1000F600EF30E008E53620E703300B5EC20BE5196A -:0C003600907F987410F090C000E0FF2252 -:03004300021300A5 -:03000000020E00ED -:400106006058B48003433602E53630E726E519D3942040037519208519087E7E7F80750C7E750D80AF36120F4BE51925E0907FB7F08027E519D3943F400375193F851908D4 -:40014600907E80E536F07E7E7F81750C7E750D81120CDFE51904907FB7F0907FCEE030E1062005030203C1C205E4F51874402518F582E4347CF583E0FFE5187C007B017AF1 -:400186007E79002400F9EC347EFAEF120ED20518E518B420D7907E00E06068907E03E060247F01E4FD1211B17F037DCD1211B1434680907F987414F090C000E546F0E490E0 -:4001C6007E13F08030907E01E0FF121035907E02E0FF12105B7F01907E11E0FD1211B17F037D071211B1434680907F987414F090C000E546F0907F987412F0E5404406903E -:40020600C000F0907E03E07006907E13E07008E4907E13F07525FF907E05E06012A3E0543FF544907F987413F090C000E544F0907E07E0602BA3E0600543428080035342DA -:400246007F5342FC907E09E06011434202A3E0FF1210A7907E0BE0FF1210CDAF42121081907E03E0600853427FAF42121081907E0CE06018A3E0600543460280035346FDB4 -:40028600907F987414F090C000E546F0907E0EE06018A3E0600543460180035346FE907F987414F090C000E546F0907E12E0F53AA3E013920DA3E0F53CA3E060054346108B -:4002C60080035346EF907F987414F090C000E546F0907E16E060325344BF907F987413F0E544547F90C000F0907F987411F01212DFEF54FE90C000F0533EFDE4FFAD3E120F -:4003060011B1E4F52AF529D207907E17E0600F433E02E4FFAD3E1211B1752901D207907E18E06010907F987412F0E540440490C000F0D200907E19E06011434440907F98F2 -:400346007413F0E544547F90C000F0907E1AE0600F533EFEE4FFAD3E1211B1752B01D207907E1BE0600F433E01E4FFAD3E1211B1E4F52BD207907E1CE0600E907F98741284 -:40038600F0E540440290C000F0907E1DE06002D20B907E1EE06008752C01E4F538D207907E1FE06011907FD77411F07431F07415F07435F0D203E4907FCFF0301A52E53892 -:4003C60060021538201349E513D3940040041513803E75130A301B02D2131212DFEF5401F519652A600585192AD207121333EF5480F51965266005851926D207300D11127F -:400406001333EF5410F51965256005851925D207201B030207EC300A1812136FEFC3953D40030204AE907FC17401F0C20AC200807730043B907FCAE020E16D12136FEFC35A -:4004460094405064907D40E013920A907FCBE014F519200011600FF5087E7D7F41750C7D750D41120D04C204E4907FCBF08039907FCCE020E13212136FEFC39440502990BC -:400486007CC0E013920A907FCDE014F519200011600FF5087E7C7FC1750C7C750DC1120D04D204E4907FCDF0907FBAE030E1030205361212208F1912137B8F37E519C3952B -:4004C6003B500F121357EF30E008E53720E703300C5EC20CE5196058B48003433702E53730E726E519D3942040037519208519087E7D7F80750C7D750D80AF37120F84E503 -:400506001925E0907FBBF08027E519D3943F400375193F851908907D80E537F07E7D7F81750C7D750D81120D29E51904907FBBF0907FD0E030E106200603020797C206E4F8 -:40054600F51874C02518F582E4347BF583E0FFE5187C007B017A7E79202420F9EC347EFAEF120ED20518E518B420D7907E20E06068907E23E060247F01E4FD1211FB7F0329 -:400586007DCD1211FB434780907F98740CF090C000E547F0E4907E33F08030907E21E0FF121119907E22E0FF12113F7F01907E31E0FD1211FB7F037D071211FB4347809048 -:4005C6007F98740CF090C000E547F0907F98740AF0E541440690C000F0907E23E07006907E33E07008E4907E33F0752EFF907E25E06012A3E0543FF545907F98740BF090EB -:40060600C000E545F0907E27E0602BA3E06005434380800353437F5343FC907E29E06011434302A3E0FF121165907E2BE0FF12118BAF431210F3907E23E0600853437FAFFE -:40064600431210F3907E2CE06018A3E0600543470280035347FD907F98740CF090C000E547F0907E2EE06018A3E0600543470180035347FE907F98740CF090C000E547F0D4 -:40068600907E32E0F53BA3E013920EA3E0F53DA3E0600543471080035347EF907F98740CF090C000E547F0907E36E060325345BF907F98740BF0E545547F90C000F0907F79 -:4006C600987409F012134BEF54FE90C000F0533FFDE4FFAD3F1211FBE4F533F532D208907E37E0600F433F02E4FFAD3F1211FB753201D208907E38E06010907F98740AF043 -:40070600E541440490C000F0D200907E39E06011434540907F98740BF0E545547F90C000F0907E3AE0600F533FFEE4FFAD3F1211FB753401D208907E3BE0600F433F01E4E9 -:40074600FFAD3F1211FBE4F534D208907E3CE0600E907F98740AF0E541440290C000F0907E3DE06002D20C907E3EE06008753501E4F539D208907E3FE06011907FD7741389 -:40078600F07433F07416F07436F0D204E4907FD1F0301A52E53960021539301349E513D3940040041513803E75130A301B02C21312134BEF5401F51965336005851933D279 -:4007C60008121387EF5480F519652F600585192FD208300E11121387EF5410F519652E600585192ED208301A2A907FD2E020E123907B40E06009E0F515907B42E0F5169035 -:400806007B41E06009907FD77417F07437F0E4907FD3F0907FC2E030E103020920E50A7040300739E5387035C207F5187E007B0074242518F9EE3400FA120E8CFF748025BD -:4008460018F582E4347BF583EFF00518E518B409DB907FC37409F0753810E4F52C750A0122E50A64017040300839E5397035C208F5187E007B00742D2518F9EE3400FA1297 -:400886000E8CFF74802518F582E4347BF583EFF00518E518B409DB907FC37409F0753910E4F535750A0222E50A6402703630142FC214F5187E007B00740E2518F9EE340083 -:4008C600FA120E8CFF74802518F582E4347BF583EFF00518E518B405DB907FC37405F0750A0322E51560301515E4F5187E007B0074142518F9EE3400FA120E8CFF748025F2 -:4009060018F582E4347BF583EFF00518E518B403DB907FC37403F0E4F50A22907FE9E0120EE40A08000A7C010AE80309440609FB0809F50909DD0A09EC0B00000B37907F3D -:40094600EBE024FE6019146061240260030209D37419907FD4F07400907FD5F0020B3E907FEAE070047F0280027F03758282758319EFF075827B758319F0758274758319B2 -:40098600F0758266758319F0758258758319F0907FEAE004758217758319F07419907FD4F07412907FD5F0020B3E907FEAE0FF120F0AEA49600DEA907FD4F0E9907FD5F085 -:4009C600020B3E907FB4E04401F0020B3E907FB4E04401F0020B3E907F00E509F0907FB57401F0020B3E907FEAE0F509020B3E120B46020B3E907F007401F0907FB5F00205 -:400A06000B3E907FE8E0247F60241460312402705BA210E433FF25E0FFA216E4334F907F00F0E4A3F0907FB57402F0020B3EE4907F00F0A3F0907FB57402F0020B3E907F04 -:400A4600ECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF583E054FD907F00F0E4A3F0907FB57402F0020B3E907FB4E04401F0020B3E907FE8E024FE601D24020F -:400A86006003020B3E907FEAE0B40105C210020B3E907FB4E04401F0020B3E907FEAE07038907FECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF583E4F0907FB6 -:400AC600ECE05480FF131313541FFFE054072F907FD7F0E04420F0805F907FB4E04401F08056907FE8E024FE60182402704A907FEAE0B40104D210803F907FB4E04401F049 -:400B06008036907FEAE07020907FECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF5837401F08010907FB4E04401F08007907FB4E04401F0907FB4E04402F022D4 -:400B4600E4907F93F0907F9C7430F0E4907F96F0907F9574C0F0907F9E743FF0907F987418F0E4F58E907FDF74FFF0907FDEF0E4F5247518017B0074242518F9E43400FA8B -:400B8600E4120ED20518E518B409EA753A01E4F538F513F536C207C20BC205C200C209C213907F987413F075440390C0007403F07F0CE4FD1211B17F108F42121081907F02 -:400BC600987412F07F018F40EF440690C000F0907F987414F075468090C0007480F00FE4FD1211B1E4FF7EA3AD068D3E1211B1907F987411F090C000E4F07F057D7F12118E -:400C0600B17F0112126A7F037D071211B1201B03020CB7752D017518017B00742D2518F9E43400FAE4120ED20518E518B409EA753B01E4F539F513F537C208C20CC206C2CD -:400C460000C20AC213907F98740BF075450390C0007403F07F0CE4FD1211FB7F108F431210F3907F98740AF07F018F41EF440690C000F0907F98740CF075478090C000744E -:400C860080F00FE4FD1211FBE4FF7EA3AD068D3F1211FB907F987409F090C000E4F07F057D7F1211FB7F0112128B7F037D071211FBD21222907F987410F0AF08E50DF582A5 -:400CC600E50CF583C2AF058690C0000586E0A30586F00586DFF7D2AF22907F987410F0AF08E50DF582E50CF583C2AF058690C000E00586F0A30586DFF70586D2AF22907F20 -:400D0600987408F0AF08E50DF582E50CF583C2AF058690C0000586E0A30586F00586DFF7D2AF22907F987408F0AF08E50DF582E50CF583C2AF058690C000E00586F0A3055C -:400D460086DFF70586D2AF227400F58690FDA57C05A3E582458370F922907FD6E04480F0438701000000000022D219907F92E04402F0907FAEE0FFD39210E433FEEF4EF089 -:400D8600D2E843D820907FDE7401F0907FDFF0907FAB74FFF0907FA9F0907FAAF05391EF907FAFE04401F0907FAEE0440DF0D2AFD21A121245C211E4F50BF513C217C212D4 -:400DC600907FA104F0907FD8E065176010301205D21A120046907FD8E0F5178008301205C21A120046301107C21112092180D63018D3C21812139380CC22787FE4F6D8FDC7 -:400E0600758147020E47020D6FE493A3F8E493A34003F68001F208DFF48029E493A3F85407240CC8C333C4540F4420C8834004F456800146F6DFE4800B01020408102040F5 -:400E4600809012ACE47E019360BCA3FF543F30E509541FFEE493A360010ECF54C025E060A840B8E493A3FAE493A3F8E493A3C8C582C8CAC583CAF0A3C8C582C8CAC583CA1E -:400E8600DFE9DEE780BEBB010689828A83E0225002E722BBFE02E32289828A83E49322BB010CE58229F582E5833AF583E0225006E92582F8E622BBFE06E92582F8E222E5B8 -:400EC6008229F582E5833AF583E49322BB010689828A83F0225002F722BBFE01F322D083D082F8E4937012740193700DA3A393F8740193F5828883E4737402936860EFA3C1 -:400F0600A3A380DF8F18E4F519751AFF751B19751C86AB1AAA1BA91C900001120EA5B4031DAF190519EFB5180122120E8C7E0029FFEE3AA907751AFFF51B891C80D47B00A5 -:400F46007A007900228F1A050DE50DAE0C7002050C14F5828E83E51AF0120036050DE50DAC0C7002050C14F5828C83EFF01508E508600A1213278F1AEF423680CA228F1AFC -:400F8600050DE50DAE0C7002050C14F5828E83E51AF012133F050DE50DAC0C7002050C14F5828C83EFF01508E508600A12137B8F1AEF423780CA22C0E0C083C082C085C088 -:400FC60084C086758600907FC4E4F05391EF907FAB7404F0D086D084D085D082D083D0E032C0E0C083C082C085C084C086758600D2115391EF907FAB7401F0D086D084D0C6 -:4010060085D082D083D0E032C0E0C083C082C085C084C086758600D2185391EF907FAB7408F0D086D084D085D082D083D0E032907F987413F090C00074BFF0907F9874108A -:40104600F090C000EFF0907F987413F0E544547F90C000F022907F987413F090C00074BFF0907F987411F090C000EFF0907F987413F0E544547F90C000F022907F98741349 -:40108600F090C00074BFF0907F987412F090C000EFF0907F987413F0E544547F90C000F022907F987413F090C00074BFF0907F987414F090C000EFF0907F987413F0E544D9 -:4010C600547F90C000F022907F987413F090C00074BFF0907F987416F090C000EFF0907F987413F0E544547F90C000F022907F98740BF090C00074BFF0907F98740AF0902A -:40110600C000EFF0907F98740BF0E545547F90C000F022907F98740BF090C00074BFF0907F987408F090C000EFF0907F98740BF0E545547F90C000F022907F98740BF090AF -:40114600C00074BFF0907F987409F090C000EFF0907F98740BF0E545547F90C000F022907F98740BF090C00074BFF0907F98740CF090C000EFF0907F98740BF0E545547FEC -:4011860090C000F022907F98740BF090C00074BFF0907F98740EF090C000EFF0907F98740BF0E545547F90C000F022907F987413F0E544547F90C000F0907F987417F09075 -:4011C600C000EFF0907F987415F090C000EDF02212130F8F1A12130F8F1BE51A651B601212130F8F1AE51A651B600712130F8F1B80E8AF1A22907F98740BF0E545547F9098 -:40120600C000F0907F98740FF090C000EFF0907F98740DF090C000EDF0221213638F1A1213638F1BE51A651B60121213638F1AE51A651B60071213638F1B80E8AF1A2290C8 -:401246007FD6E054FBF0E04408F0301A04E04402F07FF47E011212C8907FD6E054F7F0E04404F022AE07E4FFE53E547FFD1211B1907F987411F090C000EEF0E4E53E4480E8 -:40128600FD1211B122AE07E4FFE53F547FFD1211FB907F987409F090C000EEF0E4E53F4480FD1211FB22050E02000000000314030000C111C118C195C110C116010A00C19C -:4012C6001B008E188F19E5191519AE18700215184E6005120D4E80EE22907F987411F090C000E0FF22907F987412F090C000E0FF2253D8EF320000000000020FE70002130A -:401306000400020FBD0002100E907F987413F090C000E0FF22907F987414F090C000E0FF22907F987415F090C000E0FF22907F987416F090C000E0FF22907F987408F09050 -:40134600C000E0FF22907F987409F090C000E0FF22907F98740AF090C000E0FF22907F98740BF090C000E0FF22907F98740CF090C000E0FF22907F98740DF090C000E0FFC5 -:4013860022907F98740EF090C000E0FF22120003120D5F120B4622000000000000000000000000000000000000000000000000000000000000000000000000000000000083 -:4013C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E7 -:4014060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A6 -:401446000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066 -:401486000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026 -:4014C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E6 -:4015060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A5 -:401546000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065 -:401586000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025 -:4015C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E5 -:4016060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A4 -:401646000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064 -:401686000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024 -:4016C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E4 -:4017060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A3 -:401746000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063 -:401786000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023 -:4017C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E3 -:4018060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A2 -:401846000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000062 -:401886000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022 -:4018C6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012011001FF00BF -:401906000040CD06120100000102000209027400010100A032090400000EFF0000000705010240000007050202400000070503024000000705040240000007050502400074 -:4019460000070506024000000705070240000007058102400001070582024000010705830240000107058402400001070585024000010705860240000107058702400001F3 -:401986000403090448034B00650079007300700061006E002C002000610020006400690076006900730069006F006E0020006F006600200049006E006E006F005300790040 -:4019C6007300200049006E0063002E0036034B00650079007300700061006E0020005500530042002000530065007200690061006C002000410064006100700074006500F9 -:141A06007200100330003000300030003000300030000000F7 -:00000001FF - - The firmware contained herein is - - Copyright (C) 1999-2001 - Keyspan, A division of InnoSys Incorporated ("Keyspan") - - as an unpublished work. This notice does not imply unrestricted or - public access to the source code from which this firmware image is - derived. Except as noted below this firmware image may not be - reproduced, used, sold or transferred to any third party without - Keyspan's prior written consent. All Rights Reserved. - - Permission is hereby granted for the distribution of this firmware - image as part of a Linux or other Open Source operating system kernel - in text or binary form as required. - - This firmware may not be modified and may only be used with - Keyspan hardware. Distribution and/or Modification of the - keyspan.c driver which includes this firmware, in whole or in - part, requires the inclusion of this statement." diff --git a/firmware/keyspan/usa19.HEX b/firmware/keyspan/usa19.HEX deleted file mode 100644 index c5d1496e8714..000000000000 --- a/firmware/keyspan/usa19.HEX +++ /dev/null @@ -1,101 +0,0 @@ -:0A002600120DBF120F47120D6B22DE -:0300330002001AAE -:04001A0053D8EF3296 -:100003008E138F14E5141514AE13700215134E607E -:0700130005120F3680EE22FA -:0300230002004692 -:10004600C0E0C083C082C086758600C0D075D00867 -:1000560030990E300807A20B929B853599C299D22A -:100066000F200F03020431C20F20020302025620A2 -:100076000803020127E537C39550503E2009362074 -:100086000633907F9BE030E303200E29300D12AF3C -:1000960037053774402FF582E4347EF583E01392FA -:1000A6000BAF37053774402FF582E4347EF583E0D5 -:1000B600F53502042FC20802042F907FC7E4F0C270 -:1000C60002300A0CC20A907FBB04F0C20802042F59 -:1000D600907FC8E030E105C20802042F907FC9E096 -:1000E600F550907DC0E013920A20092D20062A9033 -:1000F6007F9BE030E303200E20300D11907DC1E0A0 -:03004300020F00A9 -:03000000020C618E -:4001060013920BA3E0F53575370302042F753702907DC1E0F53502042F753701C20802042FE537C3955050030201CF907FC6E030E107C210C20302042F907FC7E0F5509004 -:400146007E40E013920A3009030201C720067220006F907F9BE030E303200E65300D10907E41E013929BA3E0F5997537038009907E41E0F599753702E537C39550401790B1 -:400186007FC7E4F0C202200A0302042FC20A907FBB04F002042F300D12AF37053774402FF582E4347EF583E013920BAF37053774402FF582E4347EF583E0F535D20802045D -:4001C6002F753701C21002042F300903020251200679907F9BE030E303200E6F300D12AF37053774402FF582E4347EF583E013929BAF37053774402FF582E4347EF583E046 -:40020600F599E537C395504017907FC7E4F0C202200A0302042FC20A907FBB04F002042F300D12AF37053774402FF582E4347EF583E013920BAF37053774402FF582E43483 -:400246007EF583E0F535D20802042FC21002042F200803020308E537C39550503E200936200633907F9BE030E303200E29300D12AF37053774C02FF582E4347DF583E013DE -:40028600920BAF37053774C02FF582E4347DF583E0F53502042FC20802042F907FC9E4F0D202300A0CC20A907FBB04F0C20802042F907FC6E030E105C20802042F907FC765 -:4002C600E0F550907E40E013920A20092D20062A907F9BE030E303200E20300D11907E41E013920BA3E0F53575370302042F753702907E41E0F53502042F753701C20802EF -:40030600042FE537C3955050030203B0907FC8E030E107C210C20302042F907FC9E0F550907DC0E013920A3009030203A820067220006F907F9BE030E303200E65300D1034 -:40034600907DC1E013929BA3E0F5997537038009907DC1E0F599753702E537C395504017907FC9E4F0D202200A0302042FC20A907FBB04F002042F300D12AF37053774C0F5 -:400386002FF582E4347DF583E013920BAF37053774C02FF582E4347DF583E0F535D20802042F753701C21002042F30090302042D200674907F9BE030E303200E6A300D128E -:4003C600AF37053774C02FF582E4347DF583E013929BAF37053774C02FF582E4347DF583E0F599E537C395504013907FC9E4F0D202300A35C20A907FBB04F0802C300D12CC -:40040600AF37053774C02FF582E4347DF583E013920BAF37053774C02FF582E4347DF583E0F535D2088002C210D21220980302056DC2982001030204DA201127AF360536F3 -:4004460074802FF582E4347EF583E599F0300D4DAF36053674802FF582E4347EF583E598F0803A859910E510B54404D206802EE510B54304C2068025AF36053674802FF5AB -:4004860082E4347EF583E510F0300D11AF36053674802FF582E4347EF583E598F0D20CE536C39540500302056B907FB8E030E116E536C39440500302056B15361536052BDD -:4004C60043330102056B907FB7E536F0753600C20102056B201127AF36053674002FF582E4347EF583E599F0300D4DAF36053674002FF582E4347EF583E598F0803A859937 -:4005060010E510B54404D206802EE510B54304C2068025AF36053674002FF582E4347EF583E510F0300D11AF36053674002FF582E4347EF583E598F0D20CE536C3954040CE -:4005460024907FB6E030E112E536C39440401615361536052B433301800B907FB9E536F0753600D201D212301205C212020056D0D0D086D082D083D0E032907FCAE030E1CA -:40058600030206ABE4F51374402513F582E4347DF583E0FFE5137C007B002438F9EC3400FAEF120D330513E513B418DBE538600C75C92075C8348539CA853ACBE53B1392BF -:4005C6000D929FE53C13920EE53D139211E53E6009907F98E054FBF08007907F98E04404F0E53F6009907F98E0547FF08007907F98E04480F0E545600BC209C206907F950E -:40060600E04402F0E546600CD206433301907F95E04402F0E547600DC2AFC208D200E4F550F537D2AFE5486005301102D206E5496015907F95E054FDF0907F9EE04402F0AA -:40064600907F98E054FDF0E54A600AD29CC298752C0175311EE54B6007C29CE4F536F52CE54C6003E4F536E54D6002D204E54E600AE54A7002F531E54E4233E54F601F9064 -:400686007FD77411F07431F07412F07432F07413F07433F07414F07434F0D202D201D205E4907FCBF0A209E433FF652960058F29433301A206E433FF652A60058F2A4333BA -:4006C60001907F9BE05408B5250AE054086408F525433301907F9BE05410B5260AE054106410F526433301907F9BE05440B5270AE054406440F527433301907F9BE0542026 -:40070600B5280AE054206420F528433301300435C2AF300118907FB8E020E127E5366009907FB7F0E4F536C201C2048016907FB6E020E10FE5366009907FB9F0E4F536D234 -:4007460001C204D2AF20033730021B907FC6E020E12D907E40E013920A753701907FC7E0F550D2038019907FC8E020E112907DC0E013920A753701907FC9E0F550D20320E9 -:400786001033200006E5376550702A30031A300209E4907FC7F0C2028007E4907FC9F0D202C203E4F550F537300A0AC20AC200907FBB7401F03010030208C5200303020805 -:4007C600C5300E0A907F9BE030E3030208C53006030208C53009030208C5300262300D12AF37053774402FF582E4347EF583E0139219AF37053774402FF582E4347EF583CF -:40080600E0F514E537C39550502A300D12AF37053774402FF582E4347EF583E013920BAF37053774402FF582E4347EF583E0F535D208806BC208E4907FC7F0C20280603081 -:400846000D12AF37053774C02FF582E4347DF583E0139219AF37053774C02FF582E4347DF583E0F514E537C39550502A300D12AF37053774C02FF582E4347DF583E013929F -:400886000BAF37053774C02FF582E4347DF583E0F535D2088009C208E4907FC9F0D202300D04A219929BD210C2AF85149920080D300A0AC20AC200907FBB7401F0D2AF9072 -:4008C6007FBCE020E151E533604DE5317049E53330E108E4F52F753301800BA205E433F52FC205E4F533E4F5137E007B0074242513F9EE3400FA120CEDFF74002513F582D8 -:40090600E4347DF583EFF00513E513B40CDB907FBD740CF075311022907FE9E0120D450A03000A77010AE30309410609F40809E80909D00A09DF0B00000B32907FEBE024EB -:40094600FE601614605724027076740F907FD4F07464907FD5F0020B39907FEAE070047F0280027F037582B575830FEFF07582AE75830FF07582A775830FF07582A07583BA -:400986000FF0907FEAE00475827B75830FF0740F907FD4F07476907FD5F0020B39907FEAE0FF120E48EA49600DEA907FD4F0E9907FD5F0020B39907FB4E04401F0020B39D4 -:4009C600907FB4E04401F0020B39907F00E519F0907FB57401F0020B39907FEAE0F519020B39907FEAE0F518120D6B020B39907F00E518F0907FB57401F0020B39907FE822 -:400A0600E0247F60241460312402705BA213E433FF25E0FFA217E4334F907F00F0E4A3F0907FB57402F0020B39E4907F00F0A3F0907FB57402F0020B39907FECE0F45480B6 -:400A4600FFC4540FFFE054072F25E024B4F582E4347FF583E054FD907F00F0E4A3F0907FB57402F0020B39907FB4E04401F0020B39907FE8E024FE601D24026003020B3904 -:400A8600907FEAE0B40105C213020B39907FB4E04401F0020B39907FEAE07038907FECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF583E4F0907FECE05480FFCC -:400AC600131313541FFFE054072F907FD7F0E04420F0805F907FB4E04401F08056907FE8E024FE60182402704A907FEAE0B40104D213803F907FB4E04401F08036907FEA36 -:400B0600E07020907FECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF5837401F08010907FB4E04401F08007907FB4E04401F0907FB4E04402F022201503020B3E -:400B4600D3E53160021531E536604F65347045E532F460020532E532C39541403DC2AF300118907FB8E020E127907FB7E536F0C201E4F536F532F5348016907FB6E020E13D -:400B86000F907FB9E536F0D201E4F536F532F534D2AF8006853634E4F532E52C602F200C07907F9BE030E00FE52D6006E4F52D433301E4F5308014E530D39542500DE530DB -:400BC600B54206752D014333010530C20C22751201C214C218C213C217C215C212D216E4F518907F92E054FDF0907FAEE0FFD39213E433FEEF4EF0D2E843D820907FDE74DB -:400C060001F0907FDFF0907FAB74FFF0907FA9F0907FAAF05391EF907FAFE04401F0907FAEE0440DF0D2AFD2BCD219120EDAC214301503120580907FD8E065116008E0F5CA -:400C460011120B4180EA301407C21412091E80E03018DDC21812002680D622787FE4F6D8FD758150020CA8020BD4E493A3F8E493A34003F68001F208DFF48029E493A3F83B -:400C86005407240CC8C333C4540F4420C8834004F456800146F6DFE4800B0102040810204080900E04E47E019360BCA3FF543F30E509541FFEE493A360010ECF54C025E08E -:400CC60060A840B8E493A3FAE493A3F8E493A3C8C582C8CAC583CAF0A3C8C582C8CAC583CADFE9DEE780BEBB010689828A83E0225002E722BBFE02E32289828A83E4932242 -:400D0600BB010CE58229F582E5833AF583E0225006E92582F8E622BBFE06E92582F8E222E58229F582E5833AF583E49322BB010689828A83F0225002F722BBFE01F322D0E1 -:400D460083D082F8E4937012740193700DA3A393F8740193F5828883E4737402936860EFA3A3A380DFE4907F93F0907F9C7430F0907F967410F0907F947401F0907F9D04E2 -:400D8600F0907F977420F0907F957403F0907F9E7484F0E4907F98F0907FC7F0907FC9F0907FCBF075984043A810907FDE741FF0907FDF740FF0D21522E4907F95F0907FF7 -:400DC60094F0907F93F0907F9DE04402F0907F97E04402F0907F9DE054FDF0907F9C7420F0E4907F96F0907F9DE044FDF0E4907F97F0907F9E74FFF0E4907F98F0220C24D0 -:400E0600000000000000000000000000013000013301013200013700015000013600013400C105C10CC103C10FC104C10EC111C10AC110C108C109C106C100C10DC181C109 -:400E460082008F13E4F5147515FF75160F7517B9AB15AA16A917900001120D06B4031DAF140514EFB5130122120CED7E0029FFEE3AA9077515FFF516891780D47B007A006D -:400E8600790022C0E0C083C082C085C084C086758600907FC4E4F05391EF907FAB7404F0D086D084D085D082D083D0E032C0E0C083C082C085C084C086758600D2145391C7 -:400EC600EF907FAB7401F0D086D084D085D082D083D0E032907FD6E054FBF0E04408F0301904E04402F07FF47E01120003907FD6E054F7F0E04404F02200020EB300020FC0 -:400F06000400020E8900020F0FC0E0C083C082C085C084C086758600D2185391EF907FAB7408F0D086D084D085D082D083D0E0327400F58690FDA57C05A3E582458370F9B9 -:400F460022907FD6E04480F04387010000000000220000000000000000000000000012011001FF000040CD0607010100010200020902430001010080320904000007FF008A -:400F86000000070501024000000705020240000007050302400000070581024000010705820240000107058302400001070584024000010403090410034B00650079007332 -:170FC60000700061006E000E03530065007200690061006C00000064 -:00000001FF - - The firmware contained herein is - - Copyright (C) 1999-2001 - Keyspan, A division of InnoSys Incorporated ("Keyspan") - - as an unpublished work. This notice does not imply unrestricted or - public access to the source code from which this firmware image is - derived. Except as noted below this firmware image may not be - reproduced, used, sold or transferred to any third party without - Keyspan's prior written consent. All Rights Reserved. - - Permission is hereby granted for the distribution of this firmware - image as part of a Linux or other Open Source operating system kernel - in text or binary form as required. - - This firmware may not be modified and may only be used with - Keyspan hardware. Distribution and/or Modification of the - keyspan.c driver which includes this firmware, in whole or in - part, requires the inclusion of this statement." diff --git a/firmware/keyspan/usa19qi.HEX b/firmware/keyspan/usa19qi.HEX deleted file mode 100644 index 353bfcfefb9c..000000000000 --- a/firmware/keyspan/usa19qi.HEX +++ /dev/null @@ -1,101 +0,0 @@ -:0300330002001AAE -:04001A0053D8EF3296 -:100003008E118F12E5121512AE11700215114E608A -:0700130005120F8480EE22AC -:0300230002004692 -:10004600C0E0C083C082C086758600C0D075D00867 -:1000560030990E300B07A20E929B853699C299D223 -:100066001220120302041EC21220030302024E20B3 -:100076000B03020126E53AC39553503C200C34206D -:100086000931907F9BE055387029301012AF3A0540 -:100096003A74402FF582E4347EF583E013920EAF76 -:1000A6003A053A74402FF582E4347EF583E0F5365E -:1000B60002041CC20B02041C907FC7E4F0C203308A -:1000C6000D0CC20D907FBB04F0C20B02041C907F86 -:1000D600C8E030E105C20B02041C907FC9E0F5536D -:1000E600907DC0E013920D7516FF200C2B20092879 -:1000F600907F9BE055387020301011907DC1E01341 -:03004300020E00AA -:03000000020026D5 -:0C002600787FE4F6D8FD758154020B28A9 -:40010600920EA3E0F536753A0302041C753A02907DC1E0F53602041C753A01C20B02041CE53AC3955350030201C9907FC6E030E107C214C20502041C907FC7E0F553907ECB -:4001460040E013920D7516FF200C7020096D907F9BE055387065301010907E41E013929BA3E0F599753A038009907E41E0F599753A02E53AC395534017907FC7E4F0C203F6 -:40018600200D0302041CC20D907FBB04F002041C301012AF3A053A74402FF582E4347EF583E013920EAF3A053A74402FF582E4347EF583E0F536D20B02041C753A01C214A3 -:4001C60002041C300C03020249200977907F9BE05538706F301012AF3A053A74402FF582E4347EF583E013929BAF3A053A74402FF582E4347EF583E0F599E53AC3955340AB -:4002060017907FC7E4F0C203200D0302041CC20D907FBB04F002041C301012AF3A053A74402FF582E4347EF583E013920EAF3A053A74402FF582E4347EF583E0F536D20B44 -:4002460002041CC21402041C200B030202FFE53AC39553503C200C34200931907F9BE055387029301012AF3A053A74C02FF582E4347DF583E013920EAF3A053A74C02FF5F9 -:4002860082E4347DF583E0F53602041CC20B02041C907FC9E4F0D203300D0CC20D907FBB04F0C20B02041C907FC6E030E105C20B02041C907FC7E0F553907E40E013920DAF -:4002C6007516FF200C2B200928907F9BE055387020301011907E41E013920EA3E0F536753A0302041C753A02907E41E0F53602041C753A01C20B02041CE53AC39553500381 -:400306000203A2907FC8E030E107C214C20502041C907FC9E0F553907DC0E013920D7516FF200C7020096D907F9BE055387065301010907DC1E013929BA3E0F599753A037A -:400346008009907DC1E0F599753A02E53AC395534017907FC9E4F0D203200D0302041CC20D907FBB04F002041C301012AF3A053A74C02FF582E4347DF583E013920EAF3A81 -:40038600053A74C02FF582E4347DF583E0F536D20B02041C753A01C21402041C200C75200972907F9BE05538706A301012AF3A053A74C02FF582E4347DF583E013929BAF02 -:4003C6003A053A74C02FF582E4347DF583E0F599E53AC395534013907FC9E4F0D203300D35C20D907FBB04F0802C301012AF3A053A74C02FF582E4347DF583E013920EAF3D -:400406003A053A74C02FF582E4347DF583E0F536D20B8002C214D20120980302055AC2982002030204C7201627AF39053974802FF582E4347EF583E599F030104DAF3905C8 -:400446003974802FF582E4347EF583E598F0803A859910E510B54704D209802EE510B54604C2098025AF39053974802FF582E4347EF583E510F0301011AF39053974802F11 -:40048600F582E4347EF583E598F0D20FE539C395435003020558907FB8E030E116E539C39440500302055815391539052B433401020558907FB7E539F0753900C2020205D3 -:4004C60058201627AF39053974002FF582E4347EF583E599F030104DAF39053974002FF582E4347EF583E598F0803A859910E510B54704D209802EE510B54604C209802573 -:40050600AF39053974002FF582E4347EF583E510F0301011AF39053974002FF582E4347EF583E598F0D20FE539C395434024907FB6E030E112E539C3944040161539153909 -:40054600052B433401800B907FB9E539F0753900D202D201300105C201020056D0D0D086D082D083D0E032907FBCE020E151E534604DE5317049E53430E108E4F52F7534D4 -:4005860001800BA208E433F52FC208E4F534E4F5117E007B0074242511F9EE3400FA120D06FF74002511F582E4347DF583EFF00511E511B40CDB907FBD740CF075311090CD -:4005C6007FCAE030E1030206F3E4F51174402511F582E4347DF583E0FFE5117C007B00243BF9EC3400FAEF120D1F0511E511B418DBE53B601175C92075C836853CCA853D98 -:40060600CBE4907F9FF0E53E139210929F853F38E540139216E5416009907F98E054FBF08007907F98E04404F0E5426009907F98E0547FF08007907F98E04480F0E54860BE -:400646000BC20CC209907F95E04402F0E549600CD209433401907F95E04402F0E54A600DC2AFC20BD200E4F553F53AD2AFE54B6005301602D209E54C6015907F95E054FDB4 -:40068600F0907F9EE04402F0907F98E054FDF0E54D600AD29CC298752C0175311EE54E6007C29CE4F539F52CE54F6003E4F539E5506002D207E551600AE54D7002F531E55C -:4006C600514234E552601F907FD77411F07431F07412F07432F07413F07433F07414F07434F0D203D202D208E4907FCBF0A20CE433FF652960058F29433401A209E433FF84 -:40070600652A60058F2A433401907F9BE0FF54086408FE652560058E25433401EF54106410FE652660058E26433401EF54406440FE652760058E27433401EF54206420FE1C -:40074600652860058E28433401907F9AE054406440FE652E60058E2E433401300735C2AF300218907FB8E020E127E5396009907FB7F0E4F539C202C2078016907FB6E0203B -:40078600E10FE5396009907FB9F0E4F539D202C207D2AF20053D30031E907FC6E020E133907E40E013920D753A01907FC7E0F553D2057516FF801C907FC8E020E115907DD3 -:4007C600C0E013920D753A01907FC9E0F553D2057516FF201433200006E53A6553702A30051A300309E4907FC7F0C2038007E4907FC9F0D203C205E4F553F53A300D0AC265 -:400806000DC200907FBB7401F0301403020914200503020914300C03020914300903020914907F9BE055386003020914300361301012AF3A053A74402FF582E4347EF5833F -:40084600E013921BAF3A053A74402FF582E4347EF583E0FEE53AC39553502A301012AF3A053A74402FF582E4347EF583E013920EAF3A053A74402FF582E4347EF583E0F546 -:4008860036D20B806AC20BE4907FC7F0C203805F301012AF3A053A74C02FF582E4347DF583E013921BAF3A053A74C02FF582E4347DF583E0FEE53AC39553502A301012AFE7 -:4008C6003A053A74C02FF582E4347DF583E013920EAF3A053A74C02FF582E4347DF583E0F536D20B8009C20BE4907FC9F0D203301004A21B929BD214C2AF8E99200B0D301D -:400906000D0AC20DC200907FBB7401F0D2AF22907FE9E0120D310A11000A7E010ADB030938060A020809F60909DE0A09ED0B00000B19907FEBE024FE601914605A24026041 -:4009460003020B19740D907FD4F07487907FD5F0020B20907FEAE070047F0280027F037582D875830DEFF07582D175830DF07582CA75830DF07582C375830DF0907FEAE078 -:400986000475829E75830DF0740D907FD4F07499907FD5F0020B20907FEAE0700B7511FF75120D7513DC801B907FEAE0B4010B7511FF75120D7513E080097511FF75120D19 -:4009C6007513F0AA12A913AE02EE907FD4F0AF01EF907FD5F0020B20907F00E515F0907FB57401F0020B20907FEAE0F515020B20120CB1907FEAE0F514020B20907F00E5BF -:400A060014F0907FB57401F0020B20907FE8E0247F602714603424026003020B19A217E433FF25E0FFA219E4334F907F00F0E4A3F0907FB57402F0020B20E4907F00F0A3B7 -:400A4600F0907FB57402F0020B20907FECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF583E054FD907F00F0E4A3F0907FB57402F0020B20907FE8E024FE601726 -:400A860024026003020B20907FEAE064016003020B19C217020B20907FEAE07076907FECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF583E4F0907FECE05480D6 -:400AC600FF131313541FFFE054072F907FD7F0E04420F08045907FE8E024FE601024027039907FEAE06401702AD217802D907FEAE07020907FECE0F45480FFC4540FFFE056 -:400B060054072F25E024B4F582E4347FF5837401F08007907FB4E04401F0907FB4E04402F022C210E4F514F534C209C20CC20BC214C20DC216C211C207C212C20FC208F538 -:400B460035F539F553F53AF533F530F52FF52EF52DF52CF52BF52AF529F528F527F526F525F524C205C218C21AC217C219C215C204D213C206C201907F92E054FDF0D2E820 -:400B860043D820907FDE7401F0907FDFF0907FAB74FFF0907FA9F0907FAAF05391EF907FAFE04401F0907FAEE0440FF0907FAC740EF0D2AFD2BCD21B120F5FC21830040316 -:400BC60012056D30042A300627C206E51660161516907FD8E030E6047F0080027F20907F96EFF08006907F967420F0120C0B80CD301807C21812091580C3301AC0C21A128E -:400C06000FBB80B922E53160021531E53960556535704BE533F460020533E533C395444043C2AF30021B907FB8E020E12D907FB7E539F0C202E4F539F533F5357516FF802D -:400C460019907FB6E020E112907FB9E539F0D202E4F539F533F5357516FFD2AF8006853935E4F533E52C6030200F07907F9BE030E00FE52D6006E4F52D433401E4F5308000 -:400C860014E530D39545500DE530B54506752D014334010530C20F22907FD9E030E2047F0080027F20907F96EFF022E4907F93F0907F9C7430F0907F967420F0907F94748A -:400CC60001F0907F9D74BFF0907F977486F0907F957403F0907F9E7484F0907F98F0E4907FC7F0907FC9F0907FCBF075984043A810907FDE741FF0907FDF740FF0D204221A -:400D0600BB010689828A83E0225002E722BBFE02E32289828A83E49322BB010689828A83F0225002F722BBFE01F322D083D082F8E4937012740193700DA3A393F8740193EB -:400D4600F5828883E4737402936860EFA3A3A380DFC0E0C083C082C085C084C086758600907FC4E4F05391EF907FAB7404F0D086D084D085D082D083D0E03200000000007B -:400D86000012011001FF000040CD060C010100010200020902430001010080320904000007FF00000007050102400000070502024000000705030240000007058102400010 -:400DC600010705820240000107058302400001070584024000010403090410034B00650079007300700061006E000E03530065007200690061006C000000020EA200020E41 -:400E06007B00020D5700020EC900020E1000020E1400020E1800020E1C00020EF000020E2400020F1500020E2C00020F3AE4907F95F0907F94F0907F93F0907F9DE044020A -:400E4600F0907F97E04402F0907F9C7410F0E4907F96F0907F9D74FEF03017047F8080027F00907F97EFF0E4907F95F0907F9EF0907F98F022C0E0C083C082C085C084C00E -:400E8600867586005391EF907FAB7402F0D206D086D084D085D082D083D0E032C0E0C083C082C085C084C086758600D2185391EF907FAB7401F0D086D084D085D082D083EB -:400EC600D0E032C0E0C083C082C085C084C086758600D21A5391EF907FAB7408F0D086D084D085D082D083D0E032C0E0C083C082C085C084C0867586005391EF907FA974C2 -:400F060002F0D086D084D085D082D083D0E032C0E0C083C082C085C084C0867586005391EF907FA97404F0D086D084D085D082D083D0E032C0E0C083C082C085C084C086D7 -:400F46007586005391EF907FA97408F0D086D084D085D082D083D0E032907FD6E054FBF0E04408F0301B04E04402F07FF47E01120003907FD6E054F7F0E04404F0227400B9 -:400F8600F58690FDA57C05A3E582458370F922907FD6E04480F0438701000000000022907FD6E04401F07F0D7E00120003907FD6E054FEF022120E33120F95907FD6E030FA -:090FC600E703120FA5120CB12281 -:00000001FF - - The firmware contained herein is - - Copyright (C) 1999-2001 - Keyspan, A division of InnoSys Incorporated ("Keyspan") - - as an unpublished work. This notice does not imply unrestricted or - public access to the source code from which this firmware image is - derived. Except as noted below this firmware image may not be - reproduced, used, sold or transferred to any third party without - Keyspan's prior written consent. All Rights Reserved. - - Permission is hereby granted for the distribution of this firmware - image as part of a Linux or other Open Source operating system kernel - in text or binary form as required. - - This firmware may not be modified and may only be used with - Keyspan hardware. Distribution and/or Modification of the - keyspan.c driver which includes this firmware, in whole or in - part, requires the inclusion of this statement." diff --git a/firmware/keyspan/usa19qw.HEX b/firmware/keyspan/usa19qw.HEX deleted file mode 100644 index 8a891023bf51..000000000000 --- a/firmware/keyspan/usa19qw.HEX +++ /dev/null @@ -1,142 +0,0 @@ -:0300330002002D9B -:04002D0053D8EF3283 -:10004600301019120E0FEFC3951440030200DF9013 -:100056007FBF7401F0C210C20B0200DF300D3E906C -:100066007FC6E020E173120E0FEFC39440506A90F2 -:100076007E40E0139210907FC7E014F536200B11F6 -:10008600600FF5247E7E7F4175297E752A4112090F -:1000960010C20DE4907FC7F07526FF803C907FC8A4 -:1000A600E020E135120E0FEFC39440502C907DC036 -:1000B600E0139210907FC9E014F536200B11600F03 -:1000C600F5247E7D7FC175297D752AC1120910D25E -:1000D6000DE4907FC9F07526FF907FB6E030E1030E -:1000E600020168120CFF8F36120E1B8F11E536C304 -:1000F6009513500F120DDEEF30E008E51120E703EF -:0C003600907F987410F090C000E0FF2252 -:03004300020E00AA -:10000300C0E0C083C082C085C084C086758600906E -:100013007FC4E4F05391EF907FAB7404F0D086D0AB -:0A00230084D085D082D083D0E03273 -:030000000209C52D -:4001060030135FC213E5366059B48003431102E51130E724E536D3942040037536208536247E7E7F8075297E752A80120B9AE53625E0907FB7F0802AE536D3943F4003753B -:40014600363F853624907E80E511F07E7E7F8175297E752A81120935E53604907FB7F07526FF907FCEE030E106200E030203C4E4F53574402535F582E4347CF583E0FFE589 -:40018600357C007B017A7E79002400F9EC347EFAEF120A970535E535B420D7907E00E0606E7F01907E11E0FD120CDA907E01E0FF120C1C907E02E0FF120C42D211D2127562 -:4001C6003604907E03E06005C2124336C0907E04E0B40107C21243360B8010907E04E06007C21143360980034336027F03AD36120CDA431A80907F987414F090C000E51A72 -:40020600F0907F987412F0E517440690C000F0907E05E06012A3E0543FF519907F987413F090C000E519F0907E07E06042907E13E0600543160480035316FBE4FFAD161247 -:400246000CDA907E08E06005431880800353187F5318FC907E09E06011431802A3E0FF120C8E907E0BE0FF120CB4AF18120C68907E0EE06018A3E06005431A018003531AD4 -:40028600FE907F987414F090C000E51AF0907E0CE06018A3E06005431A028003531AFD907F987414F090C000E51AF0907E12E0F513A3E0139214A3E0F514A3E06005431AC3 -:4002C600108003531AEF907F987414F090C000E51AF0907E16E060325319BF907F987413F0E519547F90C000F0907F987411F0120DD2EF54FE90C000F05316FDE4FFAD1621 -:40030600120CDAE4F50EF50DD20F907E17E0600F431602E4FFAD16120CDA750D01D20F907E18E06010907F987412F0E517440490C000F0D20B907E19E06011431940907F0D -:40034600987413F0E519547F90C000F0907E1AE0600F5316FEE4FFAD16120CDA750F01D20F907E1BE0600F431601E4FFAD16120CDAE4F50FD20F907E1CE0600E907F9874A9 -:4003860012F0E517440290C000F0907E1DE06002D213907E1EE06008751001E4F512D20F907E1FE06011907FD77411F07431F07415F07435F0D20DC20EE4907FCFF0301674 -:4003C60071E51260021512E530D3940040041530806075300A120DD2EF5401F536650E600785360ED20F8011120E27EF5410F53665096005853609D20F120E27EF5480F5C1 -:4004060036650A600585360AD20F120E27EF5420F536650B600885360B301102D20F120E27EF5440F536650C600885360C301202D20F30162A907FD2E020E123907B40E035 -:400446006009E0F532907B42E0F533907B41E06009907FD77417F07437F0E4907FD3F0907FC2E030E103020529E5277040300F39E5127035C20FF5357E007B0074082535DB -:40048600F9EE3400FA120A51FF74802535F582E4347BF583EFF00535E535B409DB907FC37409F0751210E4F51075270222E5276402703630052FC205F5357E007B00742B96 -:4004C6002535F9EE3400FA120A51FF74802535F582E4347BF583EFF00535E535B405DB907FC37405F075270322E53260337531031532E4F5357E007B0074312535F9EE34CD -:4005060000FA120A51FF74802535F582E4347BF583EFF00535E535B403DB907FC37403F0E4F52722907FE9E0120AA9060800067C0106E903054D0605F90805ED0905D50A02 -:4005460005E40B00000739907FEBE024FE60161460502402706F7419907FD4F07400907FD5F0020740907FEAE070047F0280027F03758282758319EFF0758274758319F06E -:40058600758258758319F0907FEAE004758217758319F07419907FD4F07412907FD5F0020740907FEAE0FF120B1CEA49600DEA907FD4F0E9907FD5F0020740907FB4E0449B -:4005C60001F0020740907FB4E04401F0020740907F00E525F0907FB57401F0020740907FEAE0F525020740120748907FEAE0F523020740907F00E523F0907FB57401F00216 -:400606000740907FE8E0247F60241460312402705BA201E433FF25E0FFA207E4334F907F00F0E4A3F0907FB57402F0020740E4907F00F0A3F0907FB57402F0020740907F2C -:40064600ECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF583E054FD907F00F0E4A3F0907FB57402F0020740907FB4E04401F0020740907FE8E024FE601E240216 -:400686006003020740907FEAE0B40106120DF9020740907FB4E04401F0020740907FEAE07038907FECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF583E4F090F8 -:4006C6007FECE05480FF131313541FFFE054072F907FD7F0E04420F08060907FB4E04401F08057907FE8E024FE60192402704B907FEAE0B40105120DF6803F907FB4E04487 -:4007060001F08036907FEAE07020907FECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF5837401F08010907FB4E04401F08007907FB4E04401F0907FB4E04402F9 -:40074600F022E4907F93F0907F9C7430F0907F967420F0907F9574C0F0907F9E743FF0907F987410F0E4F58E907FDF74FFF0907FDEF0E4F5087F017B0074082FF9E4340023 -:40078600FAE4120A970FBF09EE751301E4F512F530F511C20FC213C20EC20BC210C204907F987413F075190390C0007403F07F0CE4FD120CDA7F108F18120C68907F9874C2 -:4007C60012F07F018F17EF440690C000F00FE4FD120CDAE4FF7EA3AD068D16120CDA907F987411F090C000E4F07F057D7F120CDA7F01120D6A7F037D07120CDAE4FFE5167B -:40080600547FFD120CDA120E0F8F15E4FFE5164480FD120CDAE51530E704C2088002D208907F987414F0751A8090C0007480F0D20322D215907F92E04402F0120DF9D2E87C -:4008460043D820907FDE7401F0907FDFF0907FAB74FFF0907FA9F0907FAAF05391EF907FAFE04401F0907FAE740DF0D2AFD216120D24C202E4F528F530C209F523C20390F7 -:400886007FA104F0907FD8E065346048300305D216120046E50F6022E52660161526907FD8E030E6047F2080027F30907F96EFF0801A907F967430F08012907FD9E030E2F8 -:4008C600047F3080027F20907F96EFF0907FD8E0F5348020300307C2161200468016E50F7012907FD9E030E2047F3080027F20907F96EFF0300207C20212052A8086300AE4 -:4009060083C20A120B5D02088A22907F987410F0AF24E52AF582E529F583C2AF058690C0000586E0A30586F00586DFF7D2AF22907F987410F0AF24E52AF582E529F583C2A3 -:40094600AF058690C000E00586F0A30586DFF70586D2AF22907F987408F0AF24E52AF582E529F583C2AF058690C0000586E0A30586F00586DFF7D2AF22907F987408F0AFCD -:4009860024E52AF582E529F583C2AF058690C000E00586F0A30586DFF70586D2AF227400F58690FDA57C05A3E582458370F922907FD6E04480F0438701000000000022784B -:4009C6007FE4F6D8FD758139020A0C020838E493A3F8E493A34003F68001F208DFF48029E493A3F85407240CC8C333C4540F4420C8834004F456800146F6DFE4800B010211 -:400A0600040810204080900D8BE47E019360BCA3FF543F30E509541FFEE493A360010ECF54C025E060A840B8E493A3FAE493A3F8E493A3C8C582C8CAC583CAF0A3C8C582B0 -:400A4600C8CAC583CADFE9DEE780BEBB010689828A83E0225002E722BBFE02E32289828A83E49322BB010CE58229F582E5833AF583E0225006E92582F8E622BBFE06E925BB -:400A860082F8E222E58229F582E5833AF583E49322BB010689828A83F0225002F722BBFE01F322D083D082F8E4937012740193700DA3A393F8740193F5828883E47374028F -:400AC600936860EFA3A3A380DFE4907F93F0907F9C7420F0300103FF80027F00907F96EFF0E4907F94F0907F9D74FFF0E4907F97F0300811907F95F0907F9E74FFF0907F05 -:400B0600987420F022E4907F95F0907F9E74DFF0E4907F98F0228F35E4F5367537FF753819753986AB37AA38A939900001120A6AB4031DAF360536EFB5350122120A517E5C -:400B46000029FFEE3AA9077537FFF538893980D47B007A00790022907FD8E0F535120ACF200807907F92E054FDF0907FD6E04480F01209B5907FD6E030E70E300105120D9C -:400B8600BC8006120D49EF60E1907F92E04402F012074822052AE52AAE297002052914F5828E83E511F0120036052AE52AAC297002052914F5828C83EFF01524E5246007C7 -:400BC600120E1B8F1180CD22C0E0C083C082C085C084C086758600D2025391EF907FAB7401F0D086D084D085D082D083D0E032C0E0C083C082C085C084C086758600D20A9F -:400C06005391EF907FAB7408F0D086D084D085D082D083D0E032907F987413F090C00074BFF0907F987410F090C000EFF0907F987413F0E519547F90C000F022907F9874E8 -:400C460013F090C00074BFF0907F987411F090C000EFF0907F987413F0E519547F90C000F022907F987413F090C00074BFF0907F987412F090C000EFF0907F987413F0E57C -:400C860019547F90C000F022907F987413F090C00074BFF0907F987414F090C000EFF0907F987413F0E519547F90C000F022907F987413F090C00074BFF0907F987416F0FE -:400CC60090C000EFF0907F987413F0E519547F90C000F022907F987413F0E519547F90C000F0907F987417F090C000EFF0907F987415F090C000EDF022120DEA8F37120D91 -:400D0600EA8F38E53765386012120DEA8F37E53765386007120DEA8F3880E8AF3722907FD6E054FBF0E04408F0301604E04402F07FF47E01120DA5907FD6E054F7F0E04448 -:400D460004F022907FD8E0F536120748120E27EF30E60B907FD8E0653660F17F0122120ACF7F0022AE07E4FFE516547FFD120CDA907F987411F090C000EEF0E4E516448084 -:400D8600FD120CDA22052B02000000000331030000C186C102C10AC101C107012700008E368F37E5371537AE36700215364E60051209A480EE22907FD6E04401F07F0D7E8D -:400DC60000120DA5907FD6E054FEF022907F987411F090C000E0FF22907F987412F090C000E0FF22907F987413F090C000E0FF22D20122C2012200000000020BCE00020EF1 -:400E0600040002000300020BF5907F987414F090C000E0FF22907F987415F090C000E0FF22907F987416F090C000E0FF22000000000000000000000000000000000000004E -:400E4600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006C -:400E8600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002C -:400EC60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000EC -:400F060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000AB -:400F4600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006B -:400F8600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002B -:400FC60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000EB -:4010060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000AA -:40104600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006A -:40108600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002A -:4010C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000EA -:4011060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A9 -:401146000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000069 -:401186000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029 -:4011C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E9 -:4012060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A8 -:401246000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068 -:401286000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028 -:4012C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E8 -:4013060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A7 -:401346000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000067 -:401386000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000027 -:4013C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E7 -:4014060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A6 -:401446000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066 -:401486000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026 -:4014C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E6 -:4015060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A5 -:401546000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065 -:401586000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025 -:4015C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E5 -:4016060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A4 -:401646000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064 -:401686000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024 -:4016C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E4 -:4017060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A3 -:401746000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063 -:401786000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023 -:4017C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E3 -:4018060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A2 -:401846000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000062 -:401886000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022 -:4018C6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012011001FF00BF -:401906000040CD06190100000102000209027400010100A032090400000EFF000000070501024000000705020240000007050302400000070504024000000705050240006D -:4019460000070506024000000705070240000007058102400001070582024000010705830240000107058402400001070585024000010705860240000107058702400001F3 -:401986000403090448034B00650079007300700061006E002C002000610020006400690076006900730069006F006E0020006F006600200049006E006E006F005300790040 -:4019C6007300200049006E0063002E0036034B00650079007300700061006E0020005500530042002000530065007200690061006C002000410064006100700074006500F9 -:041A0600720000006A -:00000001FF - - The firmware contained herein is - - Copyright (C) 1999-2001 - Keyspan, A division of InnoSys Incorporated ("Keyspan") - - as an unpublished work. This notice does not imply unrestricted or - public access to the source code from which this firmware image is - derived. Except as noted below this firmware image may not be - reproduced, used, sold or transferred to any third party without - Keyspan's prior written consent. All Rights Reserved. - - Permission is hereby granted for the distribution of this firmware - image as part of a Linux or other Open Source operating system kernel - in text or binary form as required. - - This firmware may not be modified and may only be used with - Keyspan hardware. Distribution and/or Modification of the - keyspan.c driver which includes this firmware, in whole or in - part, requires the inclusion of this statement." diff --git a/firmware/keyspan/usa19w.HEX b/firmware/keyspan/usa19w.HEX deleted file mode 100644 index a3b84313f2ca..000000000000 --- a/firmware/keyspan/usa19w.HEX +++ /dev/null @@ -1,141 +0,0 @@ -:03003300020D5C5F -:10000300E4907F93F0907F9C7430F0E4907F96F0BF -:10001300907F94F0907F9D74FFF0E4907F97F09031 -:0F0023007F95F0907F9E7417F0E4907F98F02205 -:10004600300F18120D38EFC3951440030200D890F4 -:100056007FBF7401F0C20FC20A8077300C3B907FDD -:10006600C6E020E16D120D38EFC394405064907ED7 -:1000760040E013920F907FC7E014F51C200A116030 -:100086000FF5237E7E7F4175277E75284112080174 -:10009600C20CE4907FC7F08039907FC8E020E1323F -:1000A600120D38EFC394405029907DC0E013920F93 -:1000B600907FC9E014F51C200A11600FF5237E7DA0 -:1000C6007FC175277D7528C1120801D20CE4907F87 -:1000D600C9F0907FB6E030E10302015E120C418F59 -:1000E6001C120D448F11E51CC39513500F120D20E1 -:1000F600EF30E008E51120E70330125CC212E51C80 -:0C003600907F987410F090C000E0FF2252 -:03004300020E00AA -:030000000208B63D -:400106006056B48003431102E51130E724E51CD394204003751C20851C237E7E7F8075277E752880120A86E51C251C907FB7F08027E51CD3943F4003751C3F851C23907E06 -:4001460080E511F07E7E7F8175277E752881120826E51C04907FB7F0907FCEE030E106200D030203BAE4F51B7440251BF582E4347CF583E0FFE51B7C007B017A7E7900244A -:4001860000F9EC347EFAEF120A0D051BE51BB420D7907E00E0606E7F01907E11E0FD120C1C907E01E0FF120B5E907E02E0FF120B84D210D211751C04907E03E06005C211D7 -:4001C600431CC0907E04E0B40107C211431C0B8010907E04E06007C210431C098003431C027F03AD1C120C1C431980907F987414F090C000E519F0907F987412F0E51644CE -:400206000690C000F0907E05E06012A3E0543FF518907F987413F090C000E518F0907E07E06042907E13E0600543150480035315FBE4FFAD15120C1C907E08E060054317BC -:4002460080800353177F5317FC907E09E06011431702A3E0FF120BD0907E0BE0FF120BF6AF17120BAA907E0EE06018A3E0600543190180035319FE907F987414F090C00046 -:40028600E519F0907E0CE06018A3E0600543190280035319FD907F987414F090C000E519F0907E12E0F513A3E0139213A3E0F514A3E0600543191080035319EF907F98742D -:4002C60014F090C000E519F0907E16E060325318BF907F987413F0E518547F90C000F0907F987411F0120D14EF54FE90C000F05315FDE4FFAD15120C1CE4F50EF50DD20EEB -:40030600907E17E0600F431502E4FFAD15120C1C750D01D20E907E18E06010907F987412F0E516440490C000F0D20A907E19E06011431840907F987413F0E518547F90C064 -:4003460000F0907E1AE0600F5315FEE4FFAD15120C1C750F01D20E907E1BE0600F431501E4FFAD15120C1CE4F50FD20E907E1CE0600E907F987412F0E516440290C000F0D8 -:40038600907E1DE06002D212907E1EE06008751001E4F512D20E907E1FE06011907FD77411F07431F07415F07435F0D20CC20DE4907FCFF0301571E51260021512E52ED326 -:4003C60094004004152E8060752E0A120D14EF5401F51C650E6007851C0ED20E8011120D50EF5410F51C65096005851C09D20E120D50EF5480F51C650A6005851C0AD20EFB -:40040600120D50EF5420F51C650B6008851C0B301002D20E120D50EF5440F51C650C6008851C0C301102D20E30152A907FD2E020E123907B40E06009E0F530907B42E0F572 -:4004460031907B41E06009907FD77417F07437F0E4907FD3F0907FC2E030E10302051FE5257040300E39E5127035C20EF51B7E007B007408251BF9EE3400FA1209C7FF7447 -:4004860080251BF582E4347BF583EFF0051BE51BB409DB907FC37409F0751210E4F51075250222E5256402703630052FC205F51B7E007B007429251BF9EE3400FA1209C7C2 -:4004C600FF7480251BF582E4347BF583EFF0051BE51BB405DB907FC37405F075250322E5306033752F031530E4F51B7E007B00742F251BF9EE3400FA1209C7FF7480251B26 -:40050600F582E4347BF583EFF0051BE51BB403DB907FC37403F0E4F52522907FE9E0120A1F05F600066A0106D70305430605E90805E30905CB0A05DA0B00000727907FEBC9 -:40054600E024FE60161460502402706F7419907FD4F07400907FD5F002072E907FEAE070047F0280027F03758282758319EFF0758274758319F0758258758319F0907FEA65 -:40058600E004758217758319F07419907FD4F07412907FD5F002072E907FEAE0FF120A45EA49600DEA907FD4F0E9907FD5F002072E907FB4E04401F002072E907FB4E044D1 -:4005C60001F002072E907F00E524F0907FB57401F002072E907FEAE0F52402072E12073602072E907F007401F0907FB5F002072E907FE8E0247F60241460312402705BA221 -:4006060001E433FF25E0FFA207E4334F907F00F0E4A3F0907FB57402F002072EE4907F00F0A3F0907FB57402F002072E907FECE0F45480FFC4540FFFE054072F25E024B4CD -:40064600F582E4347FF583E054FD907F00F0E4A3F0907FB57402F002072E907FB4E04401F002072E907FE8E024FE601E2402600302072E907FEAE0B40106120D6302072E53 -:40068600907FB4E04401F002072E907FEAE07038907FECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF583E4F0907FECE05480FF131313541FFFE054072F907F69 -:4006C600D7F0E04420F08060907FB4E04401F08057907FE8E024FE60192402704B907FEAE0B40105120D60803F907FB4E04401F08036907FEAE07020907FECE0F45480FFAD -:40070600C4540FFFE054072F25E024B4F582E4347FF5837401F08010907FB4E04401F08007907FB4E04401F0907FB4E04402F022E4907F93F0907F9C7430F0E4907F96F06B -:40074600907F9574C0F0907F9E743FF0907F987418F0E4F58E907FDF74FFF0907FDEF0E4F5087F017B0074082FF9E43400FAE4120A0D0FBF09EE751301E4F512F52EF511A2 -:40078600C20EC212C20DC20AC20FC204907F987413F075180390C0007403F07F0CE4FD120C1C7F108F17120BAA907F987412F07F018F16EF440690C000F00FE4FD120C1C71 -:4007C600E4FF7EA3AD068D15120C1C907F987411F090C000E4F07F057D7F120C1C7F01120CAC7F037D07120C1C907F987414F075198090C0007480F0D20322907F98741059 -:40080600F0AF23E528F582E527F583C2AF058690C0000586E0A30586F00586DFF7D2AF22907F987410F0AF23E528F582E527F583C2AF058690C000E00586F0A30586DFF76F -:400846000586D2AF22907F987408F0AF23E528F582E527F583C2AF058690C0000586E0A30586F00586DFF7D2AF22907F987408F0AF23E528F582E527F583C2AF058690C045 -:4008860000E00586F0A30586DFF70586D2AF227400F58690FDA57C05A3E582458370F922907FD6E04480F0438701000000000022787FE4F6D8FD7581310208FD020942E43B -:4008C60093A3F8E493A34003F68001F208DFF48029E493A3F85407240CC8C333C4540F4420C8834004F456800146F6DFE4800B0102040810204080900CCDE47E019360BC36 -:40090600A3FF543F30E509541FFEE493A360010ECF54C025E060A840B8E493A3FAE493A3F8E493A3C8C582C8CAC583CAF0A3C8C582C8CAC583CADFE9DEE780BED214907F83 -:4009460092E04402F0120D63D2E843D820907FDE7401F0907FDFF0907FAB74FFF0907FA9F0907FAAF05391EF907FAFE04401F0907FAE740DF0D2AFD215120C66C202E4F557 -:4009860026F52EC208C203907FA104F0907FD8E0651A6010300305D215120046907FD8E0F51A8008300305C215120046300207C20212052080D63009D3C209120ABA80CC40 -:4009C60022BB010689828A83E0225002E722BBFE02E32289828A83E49322BB010CE58229F582E5833AF583E0225006E92582F8E622BBFE06E92582F8E222E58229F582E51F -:400A0600833AF583E49322BB010689828A83F0225002F722BBFE01F322D083D082F8E4937012740193700DA3A393F8740193F5828883E4737402936860EFA3A3A380DF8F58 -:400A46001BE4F51C751DFF751E19751F86AB1DAA1EA91F9000011209E0B4031DAF1C051CEFB51B01221209C77E0029FFEE3AA907751DFFF51E891F80D47B007A00790022F3 -:400A86000528E528AE277002052714F5828E83E511F01200360528E528AC277002052714F5828C83EFF01523E5236007120D448F1180CD22907FD8E0F51B120003907FD6AB -:400AC600E04480F01208A6907FD6E030E70E300105120CFE8006120C8BEF60E112073622C0E0C083C082C085C084C086758600907FC4E4F05391EF907FAB7404F0D086D0DF -:400B060084D085D082D083D0E032C0E0C083C082C085C084C086758600D2025391EF907FAB7401F0D086D084D085D082D083D0E032C0E0C083C082C085C084C08675860025 -:400B4600D2095391EF907FAB7408F0D086D084D085D082D083D0E032907F987413F090C00074BFF0907F987410F090C000EFF0907F987413F0E518547F90C000F022907FDB -:400B8600987413F090C00074BFF0907F987411F090C000EFF0907F987413F0E518547F90C000F022907F987413F090C00074BFF0907F987412F090C000EFF0907F98741307 -:400BC600F0E518547F90C000F022907F987413F090C00074BFF0907F987414F090C000EFF0907F987413F0E518547F90C000F022907F987413F090C00074BFF0907F9874F2 -:400C060016F090C000EFF0907F987413F0E518547F90C000F022907F987413F0E518547F90C000F0907F987417F090C000EFF0907F987415F090C000EDF022120D2C8F1D44 -:400C4600120D2C8F1EE51D651E6012120D2C8F1DE51D651E6007120D2C8F1E80E8AF1D22907FD6E054FBF0E04408F0301504E04402F07FF47E01120CE7907FD6E054F7F0D8 -:400C8600E04404F022907FD8E0F51C120736120D50EF30E60B907FD8E0651C60F17F01221200037F0022AE07E4FFE515547FFD120C1C907F987411F090C000EEF0E4E51599 -:400CC6004480FD120C1C2205290200000000032F030000C186C102C109C101C107012500008E1C8F1DE51D151DAE1C7002151C4E600512089580EE22907FD6E04401F07F86 -:400D06000D7E00120CE7907FD6E054FEF022907F987411F090C000E0FF22907F987412F090C000E0FF22907F987413F090C000E0FF22907F987414F090C000E0FF22907F2B -:400D4600987415F090C000E0FF22907F987416F090C000E0FF2253D8EF32D20122C20122000000000000000000000000000000000000000000000000000000000000000073 -:400D8600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002D -:400DC60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020B1000020EC0 -:400E06000400020AE600020B370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000072 -:400E4600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006C -:400E8600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002C -:400EC60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000EC -:400F060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000AB -:400F4600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006B -:400F8600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002B -:400FC60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000EB -:4010060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000AA -:40104600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006A -:40108600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002A -:4010C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000EA -:4011060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A9 -:401146000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000069 -:401186000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029 -:4011C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E9 -:4012060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A8 -:401246000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068 -:401286000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028 -:4012C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E8 -:4013060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A7 -:401346000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000067 -:401386000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000027 -:4013C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E7 -:4014060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A6 -:401446000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066 -:401486000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026 -:4014C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E6 -:4015060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A5 -:401546000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065 -:401586000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025 -:4015C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E5 -:4016060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A4 -:401646000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064 -:401686000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024 -:4016C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E4 -:4017060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A3 -:401746000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063 -:401786000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023 -:4017C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E3 -:4018060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A2 -:401846000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000062 -:401886000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022 -:4018C6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012011001FF00BF -:401906000040CD06080100000102000209027400010100A032090400000EFF000000070501024000000705020240000007050302400000070504024000000705050240007E -:4019460000070506024000000705070240000007058102400001070582024000010705830240000107058402400001070585024000010705860240000107058702400001F3 -:401986000403090448034B00650079007300700061006E002C002000610020006400690076006900730069006F006E0020006F006600200049006E006E006F005300790040 -:4019C6007300200049006E0063002E0036034B00650079007300700061006E0020005500530042002000530065007200690061006C002000410064006100700074006500F9 -:041A0600720000006A -:00000001FF - - The firmware contained herein is - - Copyright (C) 1999-2001 - Keyspan, A division of InnoSys Incorporated ("Keyspan") - - as an unpublished work. This notice does not imply unrestricted or - public access to the source code from which this firmware image is - derived. Except as noted below this firmware image may not be - reproduced, used, sold or transferred to any third party without - Keyspan's prior written consent. All Rights Reserved. - - Permission is hereby granted for the distribution of this firmware - image as part of a Linux or other Open Source operating system kernel - in text or binary form as required. - - This firmware may not be modified and may only be used with - Keyspan hardware. Distribution and/or Modification of the - keyspan.c driver which includes this firmware, in whole or in - part, requires the inclusion of this statement." diff --git a/firmware/keyspan/usa28.HEX b/firmware/keyspan/usa28.HEX deleted file mode 100644 index 000c97863c01..000000000000 --- a/firmware/keyspan/usa28.HEX +++ /dev/null @@ -1,148 +0,0 @@ -:0A0026001217DB1218B51214C322E2 -:0300330002001DAB -:04001D0053D8EF3293 -:100006008E128F13E5131513AE12700215124E6081 -:07001600051218A480EE2280 -:03000300020046B2 -:10004600C0E0C083C082C086758600C0D075D00867 -:1000560030990E301107A217929B854699C299D204 -:100066001F30C10E301207A21892C38547C1C2C104 -:10007600D220201F03020442C21F2003030202678C -:10008600201103020138E54AC3957C503E20133601 -:10009600200B33907F9BE020E303201C29301B12AA -:1000A600AE4A054A74402EF582E4347EF583E013A9 -:1000B6009217AE4A054A74402EF582E4347EF583E3 -:1000C600E0F546020440C211020440907FC7E4F006 -:1000D600C20330150CC215907FBF04F0C211020492 -:1000E60040907FC8E030E105C211020440907FC90C -:1000F600E0F57C907DC0E013921520132D200B2A8D -:03004300021B009D -:0300230002004692 -:03003B000200467A -:0300000002163DA8 -:40010600907F9BE020E303201C20301B11907DC1E0139217A3E0F546754A03020440754A02907DC1E0F546020440754A01C211020440E54AC3957C50030201E0907FC6E08A -:4001460030E107C221C205020440907FC7E0F57C907E40E01392153013030201D8200B7220006F907F9BE020E303201C65301B10907E41E013929BA3E0F599754A038009BE -:40018600907E41E0F599754A02E54AC3957C4017907FC7E4F0C203201503020440C215907FBF04F0020440301B12AE4A054A74402EF582E4347EF583E0139217AE4A054AA7 -:4001C60074402EF582E4347EF583E0F546D211020440754A01C221020440301303020262200B79907F9BE020E303201C6F301B12AE4A054A74402EF582E4347EF583E013DC -:40020600929BAE4A054A74402EF582E4347EF583E0F599E54AC3957C4017907FC7E4F0C203201503020440C215907FBF04F0020440301B12AE4A054A74402EF582E4347EB6 -:40024600F583E0139217AE4A054A74402EF582E4347EF583E0F546D211020440C221020440201103020319E54AC3957C503E201336200B33907F9BE020E303201C29301B5F -:4002860012AE4A054A74C02EF582E4347DF583E0139217AE4A054A74C02EF582E4347DF583E0F546020440C211020440907FC9E4F0D20330150CC215907FBF04F0C2110276 -:4002C6000440907FC6E030E105C211020440907FC7E0F57C907E40E013921520132D200B2A907F9BE020E303201C20301B11907E41E0139217A3E0F546754A03020440759E -:400306004A02907E41E0F546020440754A01C211020440E54AC3957C50030203C1907FC8E030E107C221C205020440907FC9E0F57C907DC0E01392153013030203B9200B48 -:400346007220006F907F9BE020E303201C65301B10907DC1E013929BA3E0F599754A038009907DC1E0F599754A02E54AC3957C4017907FC9E4F0D203201503020440C21573 -:40038600907FBF04F0020440301B12AE4A054A74C02EF582E4347DF583E0139217AE4A054A74C02EF582E4347DF583E0F546D211020440754A01C221020440301303020463 -:4003C6003E200B74907F9BE020E303201C6A301B12AE4A054A74C02EF582E4347DF583E013929BAE4A054A74C02EF582E4347DF583E0F599E54AC3957C4013907FC9E4F09D -:40040600D203301535C215907FBF04F0802C301B12AE4A054A74C02EF582E4347DF583E0139217AE4A054A74C02EF582E4347DF583E0F546D2118002C221D2252020030230 -:40044600080CC220200403020631201203020502E54BC3957D503E201436200D33907F9AE020E503201E29301D12AE4B054B74402EF582E4347DF583E0139218AE4B054B99 -:4004860074402EF582E4347DF583E0F54702080AC21202080A907FCBE4F0C20430160CC216907FC104F0C21202080A907FCCE030E105C21202080A907FCDE0F57D907CC0BB -:4004C600E013921620142D200D2A907F9AE020E503201E20301D11907CC1E0139218A3E0F547754B0302080A754B02907CC1E0F54702080A754B01C21202080AE54BC39566 -:400506007D50030205AA907FCAE030E107C222C20602080A907FCBE0F57D907D40E01392163014030205A2200D7220006F907F9AE020E503201E65301D10907D41E013920D -:40054600C3A3E0F5C1754B038009907D41E0F5C1754B02E54BC3957D4017907FCBE4F0C20420160302080AC216907FC104F002080A301D12AE4B054B74402EF582E4347D24 -:40058600F583E0139218AE4B054B74402EF582E4347DF583E0F547D21202080A754B01C22202080A30140302062C200D79907F9AE020E503201E6F301D12AE4B054B7440E9 -:4005C6002EF582E4347DF583E01392C3AE4B054B74402EF582E4347DF583E0F5C1E54BC3957D4017907FCBE4F0C20420160302080AC216907FC104F002080A301D12AE4B91 -:40060600054B74402EF582E4347DF583E0139218AE4B054B74402EF582E4347DF583E0F547D21202080AC22202080A2012030206E3E54BC3957D503E201436200D33907F1A -:400646009AE020E503201E29301D12AE4B054B74C02EF582E4347CF583E0139218AE4B054B74C02EF582E4347CF583E0F54702080AC21202080A907FCDE4F0D20430160C43 -:40068600C216907FC104F0C21202080A907FCAE030E105C21202080A907FCBE0F57D907D40E013921620142D200D2A907F9AE020E503201E20301D11907D41E0139218A352 -:4006C600E0F547754B0302080A754B02907D41E0F54702080A754B01C21202080AE54BC3957D500302078B907FCCE030E107C222C20602080A907FCDE0F57D907CC0E013AC -:400706009216301403020783200D7220006F907F9AE020E503201E65301D10907CC1E01392C3A3E0F5C1754B038009907CC1E0F5C1754B02E54BC3957D4017907FCDE4F0AE -:40074600D20420160302080AC216907FC104F002080A301D12AE4B054B74C02EF582E4347CF583E0139218AE4B054B74C02EF582E4347CF583E0F547D21202080A754B0173 -:40078600C22202080A301403020808200D74907F9AE020E503201E6A301D12AE4B054B74C02EF582E4347CF583E01392C3AE4B054B74C02EF582E4347CF583E0F5C1E54B3F -:4007C600C3957D4013907FCDE4F0D204301635C216907FC104F0802C301D12AE4B054B74C02EF582E4347CF583E0139218AE4B054B74C02EF582E4347CF583E0F547D2122A -:400806008002C222D22520980302093EC2982001030208B0202327AE48054874802EF582E4347EF583E599F0301B49AE48054874802EF582E4347EF583E598F08036AF996E -:40084600EFB55804D20B802CEFB55704C20B8024AE48054874802EF582E4347EF583EFF0301B11AE48054874802EF582E4347EF583E598F0D219E548C39554500302093C9F -:40088600907FB8E030E115E548C39440500302093C15481548052DD20C02093C907FB7E548F0754800C20102093C202327AE48054874002EF582E4347EF583E599F0301BBF -:4008C60049AE48054874002EF582E4347EF583E598F08036AF99EFB55804D20B802CEFB55704C20B8024AE48054874002EF582E4347EF583EFF0301B11AE48054874002E51 -:40090600F582E4347EF583E598F0D219E548C395544023907FB6E030E111E548C39440401515481548052DD20C800B907FB9E548F0754800D201D22520C003020A70C2C016 -:400946002002030209E2202427AE49054974802EF582E4347DF583E5C1F0301D49AE49054974802EF582E4347DF583E5C0F08036AFC1EFB57004D20D802CEFB56F04C20DAE -:400986008024AE49054974802EF582E4347DF583EFF0301D11AE49054974802EF582E4347DF583E5C0F0D21AE549C3956C5003020A6E907FBCE030E115E549C39440500351 -:4009C600020A6E154915490539D20E020A6E907FBBE549F0754900C202020A6E202427AE49054974002EF582E4347DF583E5C1F0301D49AE49054974002EF582E4347DF555 -:400A060083E5C0F08036AFC1EFB57004D20D802CEFB56F04C20D8024AE49054974002EF582E4347DF583EFF0301D11AE49054974002EF582E4347DF583E5C0F0D21AE54983 -:400A4600C3956C4023907FBAE030E111E549C394404015154915490539D20E800B907FBDE549F0754900D202D225302505C225020056D0D0D086D082D083D0E032907FCE99 -:400A8600E030E103020BA5E4F51274402512F582E4347CF583E0FFE5127C007B00244CF9EC3400FAEF1215CD0512E512B418DBE54C600C75C92075C836854DCA854ECBE5BC -:400AC6004F13921B929FE55013921CE551139223E5526009907F98E054FBF08007907F98E04404F0E5536009907F98E0547FF08007907F98E04480F0E559600BC213C20B18 -:400B0600907F95E04402F0E55A600BD20BD20C907F95E04402F0E55B600DC2AFC211D200E4F57CF54AD2AFE55C6005302302D20BE55D6015907F95E054FDF0907F9EE044D9 -:400B460002F0907F98E054FDF0E55E600AD29CC298752E01754028E55F6007C29CE4F548F52EE5606003E4F548E5616002D207E5626008E55E7002F540D20CE56360199060 -:400B86007FD77411F07431F07412F07432F07415F07435F0D203D201D209E4907FCFF0A213E433FF652B60048F2BD20CA20BE433FF652C60048F2CD20C907F9BE054086589 -:400BC600276007E05408F527D20C907F9BE05440B52909E054406440F529D20C300735C2AF300118907FB8E020E127E5486009907FB7F0E4F548C201C2078016907FB6E0E9 -:400C060020E10FE5486009907FB9F0E4F548D201C207D2AF20053730031B907FC6E020E12D907E40E0139215754A01907FC7E0F57CD2058019907FC8E020E112907DC0E0CF -:400C4600139215754A01907FC9E0F57CD205202133200006E54A657C702A30051A300309E4907FC7F0C2038007E4907FC9F0D203C205E4F57CF54A30150AC215C200907F5C -:400C8600BF7401F0302103020D94200503020D94301C0A907F9BE020E303020D94300B03020D94301303020D94300362301B12AF4A054A74402FF582E4347EF583E01392CE -:400CC6002DAF4A054A74402FF582E4347EF583E0F513E54AC3957C502A301B12AF4A054A74402FF582E4347EF583E0139217AF4A054A74402FF582E4347EF583E0F546D266 -:400D060011806BC211E4907FC7F0C2038060301B12AF4A054A74C02FF582E4347DF583E013922DAF4A054A74C02FF582E4347DF583E0F513E54AC3957C502A301B12AF4A67 -:400D4600054A74C02FF582E4347DF583E0139217AF4A054A74C02FF582E4347DF583E0F546D2118009C211E4907FC9F0D203301B04A22D929BD221C2AF85139920110D3043 -:400D8600150AC215C200907FBF7401F0D2AF907FD0E030E103020EB5E4F51274C02512F582E4347BF583E0FFE5127C007B002464F9EC3400FAEF1215CD0512E512B418DB51 -:400DC600E564600B758960758840D2DF85658DE56713921D92C7E56813921EE569139224E56A6009907F97E054EFF08007907F97E04410F0E56B6009907F97E0547FF080A4 -:400E060007907F97E04480F0E571600BC214C20D907F94E04408F0E572600BD20DD20E907F94E04408F0E573600DC2AFC212D200E4F57DF54BD2AFE5746005302402D20D20 -:400E4600E5756015907F94E054F7F0907F9DE04408F0907F97E054F7F0E576600AD2C4C2C0753A01754128E5776007C2C4E4F549F53AE5786003E4F549E5796002D208E5F0 -:400E86007A6008E5767002F541D20EE57B6019907FD77413F07433F07414F07434F07416F07436F0D204D202D20AE4907FD1F0A214E433FF653760048F37D20EA20DE43304 -:400EC600FF653860048F38D20E907F9AE0542065336007E05420F533D20E907F9AE05440B53509E054406440F535D20E300835C2AF300218907FBCE020E127E54960099099 -:400F06007FBBF0E4F549C202C2088016907FBAE020E10FE5496009907FBDF0E4F549D202C208D2AF20063730041B907FCAE020E12D907D40E0139216754B01907FCBE0F503 -:400F46007DD2068019907FCCE020E112907CC0E0139216754B01907FCDE0F57DD206202233200006E54B657D702A30061A300409E4907FCBF0C2048007E4907FCDF0D2042C -:400F8600C206E4F57DF54B30160AC216C200907FC17401F03022030210A42006030210A4301E0A907F9AE020E5030210A4300D030210A43014030210A4300462301D12AF8E -:400FC6004B054B74402FF582E4347DF583E013922DAF4B054B74402FF582E4347DF583E0F513E54BC3957D502A301D12AF4B054B74402FF582E4347DF583E0139218AF4B78 -:40100600054B74402FF582E4347DF583E0F547D212806BC212E4907FCBF0C2048060301D12AF4B054B74C02FF582E4347CF583E013922DAF4B054B74C02FF582E4347CF5F2 -:4010460083E0F513E54BC3957D502A301D12AF4B054B74C02FF582E4347CF583E0139218AF4B054B74C02FF582E4347CF583E0F547D2128009C212E4907FCDF0D204301DF4 -:4010860004A22D92C3D222C2AF8513C120120D30160AC216C200907FC17401F0D2AF907FC2E030E10302117AE51A7046300C3FE540703BA20933F531C209C20CE4F5127E0D -:4010C600007B0074262512F9EE3400FA121587FF74802512F582E4347BF583EFF00512E512B40CDB907FC3740CF075401022751A0122E51A64017045300E3EE541703AA2C5 -:401106000A33F53DC20AC20EE4F5127E007B0074322512F9EE3400FA121587FF74802512F582E4347BF583EFF00512E512B40CDB907FC3740CF0754110751A0222E51C60CA -:4011460030151CE4F5127E007B00741B2512F9EE3400FA121587FF74802512F582E4347BF583EFF00512E512B403DB907FC37403F0E4F51A22907FE9E012161712400012A7 -:40118600B401132003119E06123308122D0912200A13760B0000136F907FEBE024FE6016146040240270697419907FD4F07400907FD5F0021376907FEAE0FF12174B8B1261 -:4011C6008A138914EA496011AE02EE907FD4F0AF01EF907FD5F0021376907FB4E04401F0021376907FEAE0FF12179A8B128A138914EA496011AE02EE907FD4F0AF01EF9083 -:401206007FD5F0021376907FB4E04401F0021376907FB4E04401F0021376907F007401F0907FB5F00213761214C3021376907F007401F0907FB5F0021376907FE8E0247FBF -:4012460060241460312402705BA226E433FF25E0FFA22BE4334F907F00F0E4A3F0907FB57402F0021376E4907F00F0A3F0907FB57402F0021376907FECE0F45480FFC45429 -:401286000FFFE054072F25E024B4F582E4347FF583E054FD907F00F0E4A3F0907FB57402F0021376907FB4E04401F0021376907FE8E024FE601D24026003021376907FEA0B -:4012C600E0B40105C226021376907FB4E04401F0021376907FEAE07038907FECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF583E4F0907FECE05480FF131313A7 -:40130600541FFFE054072F907FD7F0E04420F0805F907FB4E04401F08056907FE8E024FE60182402704A907FEAE0B40104D226803F907FB4E04401F08036907FEAE07020A3 -:40134600907FECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF5837401F08010907FB4E04401F08007907FB4E04401F0907FB4E04402F0222028030214C2E54063 -:4013860060021540E548604F65447045E542F460020542E542C39555403DC2AF300118907FB8E020E127907FB7E548F0C201E4F548F542F5448016907FB6E020E10F907F07 -:4013C600B9E548F0D201E4F548F542F544D2AF8006854844E4F542E52E602D201907907F9BE030E00EE52F6005E4F52FD20CE4F53E8013E53ED39556500CE53EB556057504 -:401406002F01D20C053EC219E54160021541E549604F65457045E543F460020543E543C3956D403DC2AF300218907FBCE020E127907FBBE549F0C202E4F549F543F54580E2 -:4014460016907FBAE020E10F907FBDE549F0D202E4F549F543F545D2AF8006854945E4F543E53A602D201A07907F9AE030E20EE53B6005E4F53BD20EE4F53F8013E53FD35E -:40148600956E500CE53FB56E05753B01D20E053FC21A907FD2E020E123907B40E06009E0F51C907B42E0F51D907B41E06009907FD77417F07437F0E4907FD3F022E4907FC5 -:4014C60093F0907F9C7430F0907F96E04410F0907F94740DF0907F9D749AF0907F97E054FDF0907F957423F0907F9E7484F0E4907FC7F0907FC9F0907FCFF075984043A89E -:4015060010C21BC205C221C20BC213F57CF54AC211C215F542C219F544F548C223C21CF52DF52FC207C200C21FF53EC209D20CF526907FCBF0907FCDF0907FD1F075C04043 -:4015460043A840C21DC206C222C20DC214F57DF54BC212C216F543C21AF545F549C224C21EF539F53BC208C200C220F53FC20AD20E753201907FDF74FFF0907FDEF0D228DE -:4015860022BB010689828A83E0225002E722BBFE02E32289828A83E49322BB010CE58229F582E5833AF583E0225006E92582F8E622BBFE06E92582F8E222E58229F582E553 -:4015C600833AF583E49322BB010689828A83F0225002F722BBFE01F322BB0110E58229F582E5833AF583E0F5F0A3E0225009E92582F886F008E622BBFE0AE92582F8E2F511 -:40160600F008E222E5832AF583E993F5F0A3E99322D083D082F8E4937012740193700DA3A393F8740193F5828883E4737402936860EFA3A3A380DF787FE4F6D8FD75817D0E -:401646000216840216C9E493A3F8E493A34003F68001F208DFF48029E493A3F85407240CC8C333C4540F4420C8834004F456800146F6DFE4800B010204081020408090181A -:40168600C5E47E019360BCA3FF543F30E509541FFEE493A360010ECF54C025E060A840B8E493A3FAE493A3F8E493A3C8C582C8CAC583CAF0A3C8C582C8CAC583CADFE9DE39 -:4016C600E780BE751101907F92E054FDF0907FAEE0FFD39226E433FEEF4EF0D2E843D820907FDE7401F0907FDFF0907FAB74FFF0907FA9F0907FAAF05391EF907FAFE044C5 -:4017060001F0907FAEE0440DF0D2AFD2BCD2BED22D12187FC227C225C228302803120A83907FD8E065106008E0F51012137E80EA302707C22712117B80E0302CDDC22C12C5 -:40174600002680D622E4FE7517FF751819751912AB17AA18A9199000011215A06402702DAD060EEDB50701229000021215DF85F015F5166215E5156216E516621529FDE551 -:40178600153AA9057517FFF518891980C37B007A007900228F15E4F5167517FF751819751986AB17AA18A9199000011215A0B4031DAF160516EFB51501221215877E0029BE -:4017C600FFEE3AA9077517FFF518891980D47B007A00790022E4907F93F0907F9CF0907F94F0907F9D7402F0907F97F0E4907F95F0907F9E74FFF0E4907F98F0907F9DF003 -:4018060022C0E0C083C082C085C084C086758600907FC4E4F05391EF907FAB7404F0D086D084D085D082D083D0E032C0E0C083C082C085C084C086758600D2275391EF9024 -:401846007FAB7401F0D086D084D085D082D083D0E032C0E0C083C082C085C084C086758600D22C5391EF907FAB7408F0D086D084D085D082D083D0E032907FD6E054FBF0DD -:40188600E04408F0302D04E04402F07FF47E01120006907FD6E054F7F0E04404F0227400F58690FDA57C05A3E582458370F922907FD6E04480F0438701000000000022C125 -:4018C600AA011A00031B030000C127C12CC126C12B000000000000000000000000000000000000000000000000000000000000000000000000000000000012011001FF0031 -:401906000040CD060F0100000102000109027400010100A032090400000EFF0000000705010240000007050202400000070503024000000705040240000007050502400078 -:4019460000070506024000000705070240000007058102400001070582024000010705830240000107058402400001070585024000010705860240000107058702400001F3 -:401986000403090448034B00650079007300700061006E002C002000610020006400690076006900730069006F006E0020006F006600200049006E006E006F005300790040 -:4019C6007300200049006E0063002E0036034B00650079007300700061006E0020005500530042002000530065007200690061006C002000410064006100700074006500F9 -:401A0600720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002E -:401A46000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060 -:401A86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020 -:401AC6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002183100021B78 -:091B06000400021807000218583F -:00000001FF - - The firmware contained herein is - - Copyright (C) 1999-2001 - Keyspan, A division of InnoSys Incorporated ("Keyspan") - - as an unpublished work. This notice does not imply unrestricted or - public access to the source code from which this firmware image is - derived. Except as noted below this firmware image may not be - reproduced, used, sold or transferred to any third party without - Keyspan's prior written consent. All Rights Reserved. - - Permission is hereby granted for the distribution of this firmware - image as part of a Linux or other Open Source operating system kernel - in text or binary form as required. - - This firmware may not be modified and may only be used with - Keyspan hardware. Distribution and/or Modification of the - keyspan.c driver which includes this firmware, in whole or in - part, requires the inclusion of this statement." diff --git a/firmware/keyspan/usa28x.HEX b/firmware/keyspan/usa28x.HEX deleted file mode 100644 index 9f0f7fac7609..000000000000 --- a/firmware/keyspan/usa28x.HEX +++ /dev/null @@ -1,141 +0,0 @@ -:030033000212F7BF -:10000300E4907F93F0907F9C7430F0E4907F96F0BF -:10001300907F94F0907F9D74FFF0E4907F97F09031 -:0F0023007F95F0907F9E7407F0E4907F98F02215 -:1000460030091812131BEFC3953C40030200D890E9 -:100056007FBF7401F0C209C200807730033B907FF6 -:10006600C6E020E16D12131BEFC394405064907EEE -:1000760040E0139209907FC7E014F5192000116043 -:100086000FF5087E7E7F41750C7E750D41120CBA08 -:10009600C203E4907FC7F08039907FC8E020E13248 -:1000A60012131BEFC394405029907DC0E0139209B0 -:1000B600907FC9E014F519200011600FF5087E7DC8 -:1000C6007FC1750C7D750DC1120CBAD203E4907F09 -:1000D600C9F0907FB6E030E1030201601211D68FBD -:1000E600191213278F36E519C3953A500F1212EBE2 -:1000F600EF30E008E53620E703300B5EC20BE5196A -:0C003600907F987410F090C000E0FF2252 -:03004300021300A5 -:03000000020E00ED -:400106006058B48003433602E53630E726E519D3942040037519208519087E7E7F80750C7E750D80AF36120F4BE51925E0907FB7F08027E519D3943F400375193F851908D4 -:40014600907E80E536F07E7E7F81750C7E750D81120CDFE51904907FB7F0907FCEE030E1062005030203C1C205E4F51874402518F582E4347CF583E0FFE5187C007B017AF1 -:400186007E79002400F9EC347EFAEF120ED20518E518B420D7907E00E06068907E03E060247F01E4FD1211B17F037DCD1211B1434680907F987414F090C000E546F0E490E0 -:4001C6007E13F08030907E01E0FF121035907E02E0FF12105B7F01907E11E0FD1211B17F037D071211B1434680907F987414F090C000E546F0907F987412F0E5404406903E -:40020600C000F0907E03E07006907E13E07008E4907E13F07525FF907E05E06012A3E0543FF544907F987413F090C000E544F0907E07E0602BA3E0600543428080035342DA -:400246007F5342FC907E09E06011434202A3E0FF1210A7907E0BE0FF1210CDAF42121081907E03E0600853427FAF42121081907E0CE06018A3E0600543460280035346FDB4 -:40028600907F987414F090C000E546F0907E0EE06018A3E0600543460180035346FE907F987414F090C000E546F0907E12E0F53AA3E013920DA3E0F53CA3E060054346108B -:4002C60080035346EF907F987414F090C000E546F0907E16E060325344BF907F987413F0E544547F90C000F0907F987411F01212DFEF54FE90C000F0533EFDE4FFAD3E120F -:4003060011B1E4F52AF529D207907E17E0600F433E02E4FFAD3E1211B1752901D207907E18E06010907F987412F0E540440490C000F0D200907E19E06011434440907F98F2 -:400346007413F0E544547F90C000F0907E1AE0600F533EFEE4FFAD3E1211B1752B01D207907E1BE0600F433E01E4FFAD3E1211B1E4F52BD207907E1CE0600E907F98741284 -:40038600F0E540440290C000F0907E1DE06002D20B907E1EE06008752C01E4F538D207907E1FE06011907FD77411F07431F07415F07435F0D203E4907FCFF0301A52E53892 -:4003C60060021538201349E513D3940040041513803E75130A301B02D2131212DFEF5401F519652A600585192AD207121333EF5480F51965266005851926D207300D11127F -:400406001333EF5410F51965256005851925D207201B030207EC300A1812136FEFC3953D40030204AE907FC17401F0C20AC200807730043B907FCAE020E16D12136FEFC35A -:4004460094405064907D40E013920A907FCBE014F519200011600FF5087E7D7F41750C7D750D41120D04C204E4907FCBF08039907FCCE020E13212136FEFC39440502990BC -:400486007CC0E013920A907FCDE014F519200011600FF5087E7C7FC1750C7C750DC1120D04D204E4907FCDF0907FBAE030E1030205361212208F1912137B8F37E519C3952B -:4004C6003B500F121357EF30E008E53720E703300C5EC20CE5196058B48003433702E53730E726E519D3942040037519208519087E7D7F80750C7D750D80AF37120F84E503 -:400506001925E0907FBBF08027E519D3943F400375193F851908907D80E537F07E7D7F81750C7D750D81120D29E51904907FBBF0907FD0E030E106200603020797C206E4F8 -:40054600F51874C02518F582E4347BF583E0FFE5187C007B017A7E79202420F9EC347EFAEF120ED20518E518B420D7907E20E06068907E23E060247F01E4FD1211FB7F0329 -:400586007DCD1211FB434780907F98740CF090C000E547F0E4907E33F08030907E21E0FF121119907E22E0FF12113F7F01907E31E0FD1211FB7F037D071211FB4347809048 -:4005C6007F98740CF090C000E547F0907F98740AF0E541440690C000F0907E23E07006907E33E07008E4907E33F0752EFF907E25E06012A3E0543FF545907F98740BF090EB -:40060600C000E545F0907E27E0602BA3E06005434380800353437F5343FC907E29E06011434302A3E0FF121165907E2BE0FF12118BAF431210F3907E23E0600853437FAFFE -:40064600431210F3907E2CE06018A3E0600543470280035347FD907F98740CF090C000E547F0907E2EE06018A3E0600543470180035347FE907F98740CF090C000E547F0D4 -:40068600907E32E0F53BA3E013920EA3E0F53DA3E0600543471080035347EF907F98740CF090C000E547F0907E36E060325345BF907F98740BF0E545547F90C000F0907F79 -:4006C600987409F012134BEF54FE90C000F0533FFDE4FFAD3F1211FBE4F533F532D208907E37E0600F433F02E4FFAD3F1211FB753201D208907E38E06010907F98740AF043 -:40070600E541440490C000F0D200907E39E06011434540907F98740BF0E545547F90C000F0907E3AE0600F533FFEE4FFAD3F1211FB753401D208907E3BE0600F433F01E4E9 -:40074600FFAD3F1211FBE4F534D208907E3CE0600E907F98740AF0E541440290C000F0907E3DE06002D20C907E3EE06008753501E4F539D208907E3FE06011907FD7741389 -:40078600F07433F07416F07436F0D204E4907FD1F0301A52E53960021539301349E513D3940040041513803E75130A301B02C21312134BEF5401F51965336005851933D279 -:4007C60008121387EF5480F519652F600585192FD208300E11121387EF5410F519652E600585192ED208301A2A907FD2E020E123907B40E06009E0F515907B42E0F5169035 -:400806007B41E06009907FD77417F07437F0E4907FD3F0907FC2E030E103020920E50A7040300739E5387035C207F5187E007B0074242518F9EE3400FA120E8CFF748025BD -:4008460018F582E4347BF583EFF00518E518B409DB907FC37409F0753810E4F52C750A0122E50A64017040300839E5397035C208F5187E007B00742D2518F9EE3400FA1297 -:400886000E8CFF74802518F582E4347BF583EFF00518E518B409DB907FC37409F0753910E4F535750A0222E50A6402703630142FC214F5187E007B00740E2518F9EE340083 -:4008C600FA120E8CFF74802518F582E4347BF583EFF00518E518B405DB907FC37405F0750A0322E51560301515E4F5187E007B0074142518F9EE3400FA120E8CFF748025F2 -:4009060018F582E4347BF583EFF00518E518B403DB907FC37403F0E4F50A22907FE9E0120EE40A08000A7C010AE80309440609FB0809F50909DD0A09EC0B00000B37907F3D -:40094600EBE024FE6019146061240260030209D37419907FD4F07400907FD5F0020B3E907FEAE070047F0280027F03758282758319EFF075827B758319F0758274758319B2 -:40098600F0758266758319F0758258758319F0907FEAE004758217758319F07419907FD4F07412907FD5F0020B3E907FEAE0FF120F0AEA49600DEA907FD4F0E9907FD5F085 -:4009C600020B3E907FB4E04401F0020B3E907FB4E04401F0020B3E907F00E509F0907FB57401F0020B3E907FEAE0F509020B3E120B46020B3E907F007401F0907FB5F00205 -:400A06000B3E907FE8E0247F60241460312402705BA210E433FF25E0FFA216E4334F907F00F0E4A3F0907FB57402F0020B3EE4907F00F0A3F0907FB57402F0020B3E907F04 -:400A4600ECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF583E054FD907F00F0E4A3F0907FB57402F0020B3E907FB4E04401F0020B3E907FE8E024FE601D24020F -:400A86006003020B3E907FEAE0B40105C210020B3E907FB4E04401F0020B3E907FEAE07038907FECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF583E4F0907FB6 -:400AC600ECE05480FF131313541FFFE054072F907FD7F0E04420F0805F907FB4E04401F08056907FE8E024FE60182402704A907FEAE0B40104D210803F907FB4E04401F049 -:400B06008036907FEAE07020907FECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF5837401F08010907FB4E04401F08007907FB4E04401F0907FB4E04402F022D4 -:400B4600E4907F93F0907F9C7430F0E4907F96F0907F9574C0F0907F9E743FF0907F987418F0E4F58E907FDF74FFF0907FDEF0E4F5247518017B0074242518F9E43400FA8B -:400B8600E4120ED20518E518B409EA753A01E4F538F513F536C207C20BC205C200C209C213907F987413F075440390C0007403F07F0CE4FD1211B17F108F42121081907F02 -:400BC600987412F07F018F40EF440690C000F0907F987414F075468090C0007480F00FE4FD1211B1E4FF7EA3AD068D3E1211B1907F987411F090C000E4F07F057D7F12118E -:400C0600B17F0112126A7F037D071211B1201B03020CB7752D017518017B00742D2518F9E43400FAE4120ED20518E518B409EA753B01E4F539F513F537C208C20CC206C2CD -:400C460000C20AC213907F98740BF075450390C0007403F07F0CE4FD1211FB7F108F431210F3907F98740AF07F018F41EF440690C000F0907F98740CF075478090C000744E -:400C860080F00FE4FD1211FBE4FF7EA3AD068D3F1211FB907F987409F090C000E4F07F057D7F1211FB7F0112128B7F037D071211FBD21222907F987410F0AF08E50DF582A5 -:400CC600E50CF583C2AF058690C0000586E0A30586F00586DFF7D2AF22907F987410F0AF08E50DF582E50CF583C2AF058690C000E00586F0A30586DFF70586D2AF22907F20 -:400D0600987408F0AF08E50DF582E50CF583C2AF058690C0000586E0A30586F00586DFF7D2AF22907F987408F0AF08E50DF582E50CF583C2AF058690C000E00586F0A3055C -:400D460086DFF70586D2AF227400F58690FDA57C05A3E582458370F922907FD6E04480F0438701000000000022D219907F92E04402F0907FAEE0FFD39210E433FEEF4EF089 -:400D8600D2E843D820907FDE7401F0907FDFF0907FAB74FFF0907FA9F0907FAAF05391EF907FAFE04401F0907FAEE0440DF0D2AFD21A121245C211E4F50BF513C217C212D4 -:400DC600907FA104F0907FD8E065176010301205D21A120046907FD8E0F5178008301205C21A120046301107C21112092180D63018D3C21812139380CC22787FE4F6D8FDC7 -:400E0600758147020E47020D6FE493A3F8E493A34003F68001F208DFF48029E493A3F85407240CC8C333C4540F4420C8834004F456800146F6DFE4800B01020408102040F5 -:400E4600809012ACE47E019360BCA3FF543F30E509541FFEE493A360010ECF54C025E060A840B8E493A3FAE493A3F8E493A3C8C582C8CAC583CAF0A3C8C582C8CAC583CA1E -:400E8600DFE9DEE780BEBB010689828A83E0225002E722BBFE02E32289828A83E49322BB010CE58229F582E5833AF583E0225006E92582F8E622BBFE06E92582F8E222E5B8 -:400EC6008229F582E5833AF583E49322BB010689828A83F0225002F722BBFE01F322D083D082F8E4937012740193700DA3A393F8740193F5828883E4737402936860EFA3C1 -:400F0600A3A380DF8F18E4F519751AFF751B19751C86AB1AAA1BA91C900001120EA5B4031DAF190519EFB5180122120E8C7E0029FFEE3AA907751AFFF51B891C80D47B00A5 -:400F46007A007900228F1A050DE50DAE0C7002050C14F5828E83E51AF0120036050DE50DAC0C7002050C14F5828C83EFF01508E508600A1213278F1AEF423680CA228F1AFC -:400F8600050DE50DAE0C7002050C14F5828E83E51AF012133F050DE50DAC0C7002050C14F5828C83EFF01508E508600A12137B8F1AEF423780CA22C0E0C083C082C085C088 -:400FC60084C086758600907FC4E4F05391EF907FAB7404F0D086D084D085D082D083D0E032C0E0C083C082C085C084C086758600D2115391EF907FAB7401F0D086D084D0C6 -:4010060085D082D083D0E032C0E0C083C082C085C084C086758600D2185391EF907FAB7408F0D086D084D085D082D083D0E032907F987413F090C00074BFF0907F9874108A -:40104600F090C000EFF0907F987413F0E544547F90C000F022907F987413F090C00074BFF0907F987411F090C000EFF0907F987413F0E544547F90C000F022907F98741349 -:40108600F090C00074BFF0907F987412F090C000EFF0907F987413F0E544547F90C000F022907F987413F090C00074BFF0907F987414F090C000EFF0907F987413F0E544D9 -:4010C600547F90C000F022907F987413F090C00074BFF0907F987416F090C000EFF0907F987413F0E544547F90C000F022907F98740BF090C00074BFF0907F98740AF0902A -:40110600C000EFF0907F98740BF0E545547F90C000F022907F98740BF090C00074BFF0907F987408F090C000EFF0907F98740BF0E545547F90C000F022907F98740BF090AF -:40114600C00074BFF0907F987409F090C000EFF0907F98740BF0E545547F90C000F022907F98740BF090C00074BFF0907F98740CF090C000EFF0907F98740BF0E545547FEC -:4011860090C000F022907F98740BF090C00074BFF0907F98740EF090C000EFF0907F98740BF0E545547F90C000F022907F987413F0E544547F90C000F0907F987417F09075 -:4011C600C000EFF0907F987415F090C000EDF02212130F8F1A12130F8F1BE51A651B601212130F8F1AE51A651B600712130F8F1B80E8AF1A22907F98740BF0E545547F9098 -:40120600C000F0907F98740FF090C000EFF0907F98740DF090C000EDF0221213638F1A1213638F1BE51A651B60121213638F1AE51A651B60071213638F1B80E8AF1A2290C8 -:401246007FD6E054FBF0E04408F0301A04E04402F07FF47E011212C8907FD6E054F7F0E04404F022AE07E4FFE53E547FFD1211B1907F987411F090C000EEF0E4E53E4480E8 -:40128600FD1211B122AE07E4FFE53F547FFD1211FB907F987409F090C000EEF0E4E53F4480FD1211FB22050E02000000000314030000C111C118C195C110C116010A00C19C -:4012C6009B008E188F19E5191519AE18700215184E6005120D4E80EE22907F987411F090C000E0FF22907F987412F090C000E0FF2253D8EF320000000000020FE70002138A -:401306000400020FBD0002100E907F987413F090C000E0FF22907F987414F090C000E0FF22907F987415F090C000E0FF22907F987416F090C000E0FF22907F987408F09050 -:40134600C000E0FF22907F987409F090C000E0FF22907F98740AF090C000E0FF22907F98740BF090C000E0FF22907F98740CF090C000E0FF22907F98740DF090C000E0FFC5 -:4013860022907F98740EF090C000E0FF22120003120D5F120B4622000000000000000000000000000000000000000000000000000000000000000000000000000000000083 -:4013C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E7 -:4014060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A6 -:401446000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066 -:401486000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026 -:4014C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E6 -:4015060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A5 -:401546000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065 -:401586000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025 -:4015C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E5 -:4016060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A4 -:401646000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064 -:401686000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024 -:4016C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E4 -:4017060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A3 -:401746000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063 -:401786000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023 -:4017C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E3 -:4018060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A2 -:401846000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000062 -:401886000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022 -:4018C6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012011001FF00BF -:401906000040CD06100100000102000209027400010100A032090400000EFF0000000705010240000007050202400000070503024000000705040240000007050502400076 -:4019460000070506024000000705070240000007058102400001070582024000000705830240000107058402400001070585024000010705860240000107058702400001F4 -:401986000403090448034B00650079007300700061006E002C002000610020006400690076006900730069006F006E0020006F006600200049006E006E006F005300790040 -:4019C6007300200049006E0063002E0036034B00650079007300700061006E0020005500530042002000530065007200690061006C002000410064006100700074006500F9 -:041A0600720000006A -:00000001FF - - The firmware contained herein is - - Copyright (C) 1999-2001 - Keyspan, A division of InnoSys Incorporated ("Keyspan") - - as an unpublished work. This notice does not imply unrestricted or - public access to the source code from which this firmware image is - derived. Except as noted below this firmware image may not be - reproduced, used, sold or transferred to any third party without - Keyspan's prior written consent. All Rights Reserved. - - Permission is hereby granted for the distribution of this firmware - image as part of a Linux or other Open Source operating system kernel - in text or binary form as required. - - This firmware may not be modified and may only be used with - Keyspan hardware. Distribution and/or Modification of the - keyspan.c driver which includes this firmware, in whole or in - part, requires the inclusion of this statement." diff --git a/firmware/keyspan/usa28xa.HEX b/firmware/keyspan/usa28xa.HEX deleted file mode 100644 index f14932efbafb..000000000000 --- a/firmware/keyspan/usa28xa.HEX +++ /dev/null @@ -1,141 +0,0 @@ -:030033000212F9BD -:10000300E4907F93F0907F9C7430F0E4907F96F0BF -:10001300907F94F0907F9D74FFF0E4907F97F09031 -:0F0023007F95F0907F9E7407F0E4907F98F02215 -:10004600300918121327EFC3953C40030200D890DD -:100056007FBF7401F0C209C200807730033B907FF6 -:10006600C6E020E16D121327EFC394405064907EE2 -:1000760040E0139209907FC7E014F5192000116043 -:100086000FF5087E7E7F41750C7E750D41120CC8FA -:10009600C203E4907FC7F08039907FC8E020E13248 -:1000A600121327EFC394405029907DC0E0139209A4 -:1000B600907FC9E014F519200011600FF5087E7DC8 -:1000C6007FC1750C7D750DC1120CC8D203E4907FFB -:1000D600C9F0907FB6E030E1030201601211E48FAF -:1000E600191213338F36E519C3953A500F12130FB1 -:1000F600EF30E008E53620E703300B5EC20BE5196A -:0C003600907F987410F090C000E0FF2252 -:03004300021300A5 -:03000000020E0EDF -:400106006058B48003433602E53630E726E519D3942040037519208519087E7E7F80750C7E750D80AF36120F59E51925E0907FB7F08027E519D3943F400375193F851908C6 -:40014600907E80E536F07E7E7F81750C7E750D81120CEDE51904907FB7F0907FCEE030E1062005030203C1C205E4F51874402518F582E4347CF583E0FFE5187C007B017AE3 -:400186007E79002400F9EC347EFAEF120EE00518E518B420D7907E00E06068907E03E060247F01E4FD1211BF7F037DCD1211BF434680907F987414F090C000E546F0E490B6 -:4001C6007E13F08030907E01E0FF121043907E02E0FF1210697F01907E11E0FD1211BF7F037D071211BF434680907F987414F090C000E546F0907F987412F0E54044069006 -:40020600C000F0907E03E07006907E13E07008E4907E13F07525FF907E05E06012A3E0543FF544907F987413F090C000E544F0907E07E0602BA3E0600543428080035342DA -:400246007F5342FC907E09E06011434202A3E0FF1210B5907E0BE0FF1210DBAF4212108F907E03E0600853427FAF4212108F907E0CE06018A3E0600543460280035346FD7C -:40028600907F987414F090C000E546F0907E0EE06018A3E0600543460180035346FE907F987414F090C000E546F0907E12E0F53AA3E013920DA3E0F53CA3E060054346108B -:4002C60080035346EF907F987414F090C000E546F0907E16E060325344BF907F987413F0E544547F90C000F0907F987411F01212EDEF54FE90C000F0533EFDE4FFAD3E1201 -:4003060011BFE4F52AF529D207907E17E0600F433E02E4FFAD3E1211BF752901D207907E18E06010907F987412F0E540440490C000F0D200907E19E06011434440907F98D6 -:400346007413F0E544547F90C000F0907E1AE0600F533EFEE4FFAD3E1211BF752B01D207907E1BE0600F433E01E4FFAD3E1211BFE4F52BD207907E1CE0600E907F98741268 -:40038600F0E540440290C000F0907E1DE06002D20B907E1EE06008752C01E4F538D207907E1FE06011907FD77411F07431F07415F07435F0D203E4907FCFF0301A52E53892 -:4003C60060021538201349E513D3940040041513803E75130A301B02D2131212EDEF5401F519652A600585192AD20712133FEF5480F51965266005851926D207300D111265 -:40040600133FEF5410F51965256005851925D207201B030207EC300A1812137BEFC3953D40030204AE907FC17401F0C20AC200807730043B907FCAE020E16D12137BEFC336 -:4004460094405064907D40E013920A907FCBE014F519200011600FF5087E7D7F41750C7D750D41120D12C204E4907FCBF08039907FCCE020E13212137BEFC39440502990A2 -:400486007CC0E013920A907FCDE014F519200011600FF5087E7C7FC1750C7C750DC1120D12D204E4907FCDF0907FBAE030E10302053612122E8F191213878F37E519C39503 -:4004C6003B500F121363EF30E008E53720E703300C5EC20CE5196058B48003433702E53730E726E519D3942040037519208519087E7D7F80750C7D750D80AF37120F92E5E9 -:400506001925E0907FBBF08027E519D3943F400375193F851908907D80E537F07E7D7F81750C7D750D81120D37E51904907FBBF0907FD0E030E106200603020797C206E4EA -:40054600F51874C02518F582E4347BF583E0FFE5187C007B017A7E79202420F9EC347EFAEF120EE00518E518B420D7907E20E06068907E23E060247F01E4FD1212097F030C -:400586007DCD121209434780907F98740CF090C000E547F0E4907E33F08030907E21E0FF121127907E22E0FF12114D7F01907E31E0FD1212097F037D0712120943478090FF -:4005C6007F98740CF090C000E547F0907F98740AF0E541440690C000F0907E23E07006907E33E07008E4907E33F0752EFF907E25E06012A3E0543FF545907F98740BF090EB -:40060600C000E545F0907E27E0602BA3E06005434380800353437F5343FC907E29E06011434302A3E0FF121173907E2BE0FF121199AF43121101907E23E0600853437FAFD3 -:4006460043121101907E2CE06018A3E0600543470280035347FD907F98740CF090C000E547F0907E2EE06018A3E0600543470180035347FE907F98740CF090C000E547F0C5 -:40068600907E32E0F53BA3E013920EA3E0F53DA3E0600543471080035347EF907F98740CF090C000E547F0907E36E060325345BF907F98740BF0E545547F90C000F0907F79 -:4006C600987409F0121357EF54FE90C000F0533FFDE4FFAD3F121209E4F533F532D208907E37E0600F433F02E4FFAD3F121209753201D208907E38E06010907F98740AF019 -:40070600E541440490C000F0D200907E39E06011434540907F98740BF0E545547F90C000F0907E3AE0600F533FFEE4FFAD3F121209753401D208907E3BE0600F433F01E4DA -:40074600FFAD3F121209E4F534D208907E3CE0600E907F98740AF0E541440290C000F0907E3DE06002D20C907E3EE06008753501E4F539D208907E3FE06011907FD774137A -:40078600F07433F07416F07436F0D204E4907FD1F0301A52E53960021539301349E513D3940040041513803E75130A301B02C213121357EF5401F51965336005851933D26D -:4007C60008121393EF5480F519652F600585192FD208300E11121393EF5410F519652E600585192ED208301A2A907FD2E020E123907B40E06009E0F515907B42E0F516901D -:400806007B41E06009907FD77417F07437F0E4907FD3F0907FC2E030E103020920E50A7040300739E5387035C207F5187E007B0074242518F9EE3400FA120E9AFF748025AF -:4008460018F582E4347BF583EFF00518E518B409DB907FC37409F0753810E4F52C750A0122E50A64017040300839E5397035C208F5187E007B00742D2518F9EE3400FA1297 -:400886000E9AFF74802518F582E4347BF583EFF00518E518B409DB907FC37409F0753910E4F535750A0222E50A6402703630142FC214F5187E007B00740E2518F9EE340075 -:4008C600FA120E9AFF74802518F582E4347BF583EFF00518E518B405DB907FC37405F0750A0322E51560301515E4F5187E007B0074142518F9EE3400FA120E9AFF748025D6 -:4009060018F582E4347BF583EFF00518E518B403DB907FC37403F0E4F50A22907FE9E0120EF20A08000A7C010AE80309440609FB0809F50909DD0A09EC0B00000B37907F2F -:40094600EBE024FE6019146061240260030209D37419907FD4F07400907FD5F0020B3E907FEAE070047F0280027F03758282758319EFF075827B758319F0758274758319B2 -:40098600F0758266758319F0758258758319F0907FEAE004758217758319F07419907FD4F07412907FD5F0020B3E907FEAE0FF120F18EA49600DEA907FD4F0E9907FD5F077 -:4009C600020B3E907FB4E04401F0020B3E907FB4E04401F0020B3E907F00E509F0907FB57401F0020B3E907FEAE0F509020B3E120B46020B3E907F007401F0907FB5F00205 -:400A06000B3E907FE8E0247F60241460312402705BA210E433FF25E0FFA216E4334F907F00F0E4A3F0907FB57402F0020B3EE4907F00F0A3F0907FB57402F0020B3E907F04 -:400A4600ECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF583E054FD907F00F0E4A3F0907FB57402F0020B3E907FB4E04401F0020B3E907FE8E024FE601D24020F -:400A86006003020B3E907FEAE0B40105C210020B3E907FB4E04401F0020B3E907FEAE07038907FECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF583E4F0907FB6 -:400AC600ECE05480FF131313541FFFE054072F907FD7F0E04420F0805F907FB4E04401F08056907FE8E024FE60182402704A907FEAE0B40104D210803F907FB4E04401F049 -:400B06008036907FEAE07020907FECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF5837401F08010907FB4E04401F08007907FB4E04401F0907FB4E04402F022D4 -:400B4600E4907F93F0907F9C7430F0E4907F96F0907F9574C0F0907F9E743FF0907F987418F0E4F58E907FDF74FFF0907FDEF0E4F5247518017B0074242518F9E43400FA8B -:400B8600E4120EE00518E518B409EA753A01E4F538F513F536C207C20BC205C200C209C213907F987413F075440390C0007403F07F0CE4FD1211BF7F108F4212108F907FD8 -:400BC600987412F07F018F40EF440690C000F0907F987414F075468090C0007480F00FE4FD1211BFE4FF7EA3AD068D3E1211BF907F987411F090C000E4F07F057D7F121172 -:400C0600BF7F011212787F037D071211BF7F137D011211BF201B03020CC5752D017518017B00742D2518F9E43400FAE4120EE00518E518B409EA753B01E4F539F513F537B7 -:400C4600C208C20CC206C200C20AC213907F98740BF075450390C0007403F07F0CE4FD1212097F108F43121101907F98740AF07F018F41EF440690C000F0907F98740CF00E -:400C860075478090C0007480F00FE4FD121209E4FF7EA3AD068D3F121209907F987409F090C000E4F07F057D7F1212097F011212997F037D071212097F137D01121209D28D -:400CC6001222907F987410F0AF08E50DF582E50CF583C2AF058690C0000586E0A30586F00586DFF7D2AF22907F987410F0AF08E50DF582E50CF583C2AF058690C000E00568 -:400D060086F0A30586DFF70586D2AF22907F987408F0AF08E50DF582E50CF583C2AF058690C0000586E0A30586F00586DFF7D2AF22907F987408F0AF08E50DF582E50CF577 -:400D460083C2AF058690C000E00586F0A30586DFF70586D2AF227400F58690FDA57C05A3E582458370F922907FD6E04480F0438701000000000022D219907F92E04402F00A -:400D8600907FAEE0FFD39210E433FEEF4EF0D2E843D820907FDE7401F0907FDFF0907FAB74FFF0907FA9F0907FAAF05391EF907FAFE04401F0907FAEE0440DF0D2AFD21A56 -:400DC600121253C211E4F50BF513C217C212907FA104F0907FD8E065176010301205D21A120046907FD8E0F5178008301205C21A120046301107C21112092180D63018D38A -:400E0600C21812139F80CC22787FE4F6D8FD758147020E55020D7DE493A3F8E493A34003F68001F208DFF48029E493A3F85407240CC8C333C4540F4420C8834004F4568031 -:400E46000146F6DFE4800B01020408102040809012BAE47E019360BCA3FF543F30E509541FFEE493A360010ECF54C025E060A840B8E493A3FAE493A3F8E493A3C8C582C828 -:400E8600CAC583CAF0A3C8C582C8CAC583CADFE9DEE780BEBB010689828A83E0225002E722BBFE02E32289828A83E49322BB010CE58229F582E5833AF583E0225006E92548 -:400EC60082F8E622BBFE06E92582F8E222E58229F582E5833AF583E49322BB010689828A83F0225002F722BBFE01F322D083D082F8E4937012740193700DA3A393F87401DE -:400F060093F5828883E4737402936860EFA3A3A380DF8F18E4F519751AFF751B19751C86AB1AAA1BA91C900001120EB3B4031DAF190519EFB5180122120E9A7E0029FFEEB6 -:400F46003AA907751AFFF51B891C80D47B007A007900228F1A050DE50DAE0C7002050C14F5828E83E51AF0120036050DE50DAC0C7002050C14F5828C83EFF01508E508607B -:400F86000A1213338F1AEF423680CA228F1A050DE50DAE0C7002050C14F5828E83E51AF012134B050DE50DAC0C7002050C14F5828C83EFF01508E508600A1213878F1AEFF8 -:400FC600423780CA22C0E0C083C082C085C084C086758600907FC4E4F05391EF907FAB7404F0D086D084D085D082D083D0E032C0E0C083C082C085C084C086758600D21123 -:401006005391EF907FAB7401F0D086D084D085D082D083D0E032C0E0C083C082C085C084C086758600D2185391EF907FAB7408F0D086D084D085D082D083D0E032907F9833 -:401046007413F090C00074BFF0907F987410F090C000EFF0907F987413F0E544547F90C000F022907F987413F090C00074BFF0907F987411F090C000EFF0907F987413F0C0 -:40108600E544547F90C000F022907F987413F090C00074BFF0907F987412F090C000EFF0907F987413F0E544547F90C000F022907F987413F090C00074BFF0907F987414B3 -:4010C600F090C000EFF0907F987413F0E544547F90C000F022907F987413F090C00074BFF0907F987416F090C000EFF0907F987413F0E544547F90C000F022907F98740BCC -:40110600F090C00074BFF0907F98740AF090C000EFF0907F98740BF0E545547F90C000F022907F98740BF090C00074BFF0907F987408F090C000EFF0907F98740BF0E54582 -:40114600547F90C000F022907F98740BF090C00074BFF0907F987409F090C000EFF0907F98740BF0E545547F90C000F022907F98740BF090C00074BFF0907F98740CF090C3 -:40118600C000EFF0907F98740BF0E545547F90C000F022907F98740BF090C00074BFF0907F98740EF090C000EFF0907F98740BF0E545547F90C000F022907F987413F0E5CC -:4011C60044547F90C000F0907F987417F090C000EFF0907F987415F090C000EDF02212131B8F1A12131B8F1BE51A651B601212131B8F1AE51A651B600712131B8F1B80E8ED -:40120600AF1A22907F98740BF0E545547F90C000F0907F98740FF090C000EFF0907F98740DF090C000EDF02212136F8F1A12136F8F1BE51A651B601212136F8F1AE51A65AD -:401246001B600712136F8F1B80E8AF1A22907FD6E054FBF0E04408F0301A04E04402F07FF47E011212D6907FD6E054F7F0E04404F022AE07E4FFE53E547FFD1211BF907F2F -:40128600987411F090C000EEF0E4E53E4480FD1211BF22AE07E4FFE53F547FFD121209907F987409F090C000EEF0E4E53F4480FD12120922050E02000000000314030000DF -:4012C600C111C118C195C110C116010A00C19B008E188F19E5191519AE18700215184E6005120D5C80EE22907F987411F090C000E0FF2253D8EF32000000020FF500021367 -:401306000400020FCB0002101C907F987412F090C000E0FF22907F987413F090C000E0FF22907F987414F090C000E0FF22907F987415F090C000E0FF22907F987416F0902A -:40134600C000E0FF22907F987408F090C000E0FF22907F987409F090C000E0FF22907F98740AF090C000E0FF22907F98740BF090C000E0FF22907F98740CF090C000E0FFCA -:4013860022907F98740DF090C000E0FF22907F98740EF090C000E0FF22120003120D6D120B462200000000000000000000000000000000000000000000000000000000000C -:4013C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E7 -:4014060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A6 -:401446000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066 -:401486000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026 -:4014C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E6 -:4015060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A5 -:401546000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065 -:401586000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025 -:4015C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E5 -:4016060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A4 -:401646000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064 -:401686000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024 -:4016C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E4 -:4017060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A3 -:401746000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063 -:401786000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023 -:4017C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E3 -:4018060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A2 -:401846000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000062 -:401886000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022 -:4018C6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012011001FF00BF -:401906000040CD06150100000102000209027400010100A032090400000EFF0000000705010240000007050202400000070503024000000705040240000007050502400071 -:4019460000070506024000000705070240000007058102400001070582024000010705830240000107058402400001070585024000010705860240000107058702400001F3 -:401986000403090448034B00650079007300700061006E002C002000610020006400690076006900730069006F006E0020006F006600200049006E006E006F005300790040 -:4019C6007300200049006E0063002E0036034B00650079007300700061006E0020005500530042002000530065007200690061006C002000410064006100700074006500F9 -:041A0600720000006A -:00000001FF - - The firmware contained herein is - - Copyright (C) 1999-2001 - Keyspan, A division of InnoSys Incorporated ("Keyspan") - - as an unpublished work. This notice does not imply unrestricted or - public access to the source code from which this firmware image is - derived. Except as noted below this firmware image may not be - reproduced, used, sold or transferred to any third party without - Keyspan's prior written consent. All Rights Reserved. - - Permission is hereby granted for the distribution of this firmware - image as part of a Linux or other Open Source operating system kernel - in text or binary form as required. - - This firmware may not be modified and may only be used with - Keyspan hardware. Distribution and/or Modification of the - keyspan.c driver which includes this firmware, in whole or in - part, requires the inclusion of this statement." diff --git a/firmware/keyspan/usa28xb.HEX b/firmware/keyspan/usa28xb.HEX deleted file mode 100644 index 07cb708f1956..000000000000 --- a/firmware/keyspan/usa28xb.HEX +++ /dev/null @@ -1,142 +0,0 @@ -:0300330002002D9B -:04002D0053D8EF3283 -:10004600300918121333EFC3953C40030200D890D1 -:100056007FBF7401F0C209C200807730033B907FF6 -:10006600C6E020E16D121333EFC394405064907ED6 -:1000760040E0139209907FC7E014F5192000116043 -:100086000FF5087E7E7F41750C7E750D41120CCCF6 -:10009600C203E4907FC7F08039907FC8E020E13248 -:1000A600121333EFC394405029907DC0E013920998 -:1000B600907FC9E014F519200011600FF5087E7DC8 -:1000C6007FC1750C7D750DC1120CCCD203E4907FF7 -:1000D600C9F0907FB6E030E1030201601211F58F9E -:1000E6001912133F8F36E519C3953A500F12131B99 -:1000F600EF30E008E53620E703300B5EC20BE5196A -:0C003600907F987410F090C000E0FF2252 -:03004300021300A5 -:10000300C0E0C083C082C085C084C086758600906E -:100013007FC4E4F05391EF907FAB7404F0D086D0AB -:0A00230084D085D082D083D0E03273 -:03000000020E12DB -:400106006058B48003433602E53630E726E519D3942040037519208519087E7E7F80750C7E750D80AF36120F5DE51925E0907FB7F08027E519D3943F400375193F851908C2 -:40014600907E80E536F07E7E7F81750C7E750D81120CF1E51904907FB7F0907FCEE030E1062005030203C1E4F51874402518F582E4347CF583E0FFE5187C007B017A7E79AF -:40018600002400F9EC347EFAEF120EE40518E518B420D7907E00E06068907E03E060247F01E4FD1211D07F037DCD1211D0434680907F987414F090C000E546F0E4907E13F6 -:4001C600F08030907E01E0FF121054907E02E0FF12107A7F01907E11E0FD1211D07F037D071211D0434680907F987414F090C000E546F0907F987412F0E540440690C00093 -:40020600F0907E03E07006907E13E07008E4907E13F07525FF907E05E06012A3E0543FF544907F987413F090C000E544F0907E07E0602BA3E06005434280800353427F53C8 -:4002460042FC907E09E06011434202A3E0FF1210C6907E0BE0FF1210ECAF421210A0907E03E0600853427FAF421210A0907E0CE06018A3E0600543460280035346FD907FFB -:40028600987414F090C000E546F0907E0EE06018A3E0600543460180035346FE907F987414F090C000E546F0907E12E0F53AA3E013920DA3E0F53CA3E06005434610800317 -:4002C6005346EF907F987414F090C000E546F0907E16E060325344BF907F987413F0E544547F90C000F0907F987411F012130FEF54FE90C000F0533EFDE4FFAD3E1211D080 -:40030600E4F52AF529D207907E17E0600F433E02E4FFAD3E1211D0752901D207907E18E06010907F987412F0E540440490C000F0D200907E19E06011434440907F9874130E -:40034600F0E544547F90C000F0907E1AE0600F533EFEE4FFAD3E1211D0752B01D207907E1BE0600F433E01E4FFAD3E1211D0E4F52BD207907E1CE0600E907F987412F0E5F8 -:4003860040440290C000F0907E1DE06002D20B907E1EE06008752C01E4F538D207907E1FE06011907FD77411F07431F07415F07435F0D203C205E4907FCFF0301A54E5389E -:4003C6006002153820134BE513D3940040041513804075130A301B02D21312130FEF5401F519652A600585192AD20712134BEF54806480F51965266005851926D207300D71 -:400406001112134BEF5410F51965256005851925D207201B030207F0300A18121387EFC3953D40030204B0907FC17401F0C20AC200807730043B907FCAE020E16D1213879B -:40044600EFC394405064907D40E013920A907FCBE014F519200011600FF5087E7D7F41750C7D750D41120D16C204E4907FCBF08039907FCCE020E132121387EFC394405099 -:4004860029907CC0E013920A907FCDE014F519200011600FF5087E7C7FC1750C7C750DC1120D16D204E4907FCDF0907FBAE030E10302053812123F8F191213938F37E5197F -:4004C600C3953B500F12136FEF30E008E53720E703300C5EC20CE5196058B48003433702E53730E726E519D3942040037519208519087E7D7F80750C7D750D80AF37120FFC -:4005060096E51925E0907FBBF08027E519D3943F400375193F851908907D80E537F07E7D7F81750C7D750D81120D3BE51904907FBBF0907FD0E030E106200603020799E431 -:40054600F51874C02518F582E4347BF583E0FFE5187C007B017A7E79202420F9EC347EFAEF120EE40518E518B420D7907E20E06068907E23E060247F01E4FD12121A7F03F7 -:400586007DCD12121A434780907F98740CF090C000E547F0E4907E33F08030907E21E0FF121138907E22E0FF12115E7F01907E31E0FD12121A7F037D0712121A43478090AA -:4005C6007F98740CF090C000E547F0907F98740AF0E541440690C000F0907E23E07006907E33E07008E4907E33F0752EFF907E25E06012A3E0543FF545907F98740BF090EB -:40060600C000E545F0907E27E0602BA3E06005434380800353437F5343FC907E29E06011434302A3E0FF121184907E2BE0FF1211AAAF43121112907E23E0600853437FAFA0 -:4006460043121112907E2CE06018A3E0600543470280035347FD907F98740CF090C000E547F0907E2EE06018A3E0600543470180035347FE907F98740CF090C000E547F0B4 -:40068600907E32E0F53BA3E013920EA3E0F53DA3E0600543471080035347EF907F98740CF090C000E547F0907E36E060325345BF907F98740BF0E545547F90C000F0907F79 -:4006C600987409F0121363EF54FE90C000F0533FFDE4FFAD3F12121AE4F533F532D208907E37E0600F433F02E4FFAD3F12121A753201D208907E38E06010907F98740AF0EB -:40070600E541440490C000F0D200907E39E06011434540907F98740BF0E545547F90C000F0907E3AE0600F533FFEE4FFAD3F12121A753401D208907E3BE0600F433F01E4C9 -:40074600FFAD3F12121AE4F534D208907E3CE0600E907F98740AF0E541440290C000F0907E3DE06002D20C907E3EE06008753501E4F539D208907E3FE06011907FD7741369 -:40078600F07433F07416F07436F0D204C206E4907FD1F0301A54E5396002153930134BE513D3940040041513804075130A301B02C213121363EF5401F51965336005851998 -:4007C60033D20812139FEF54806480F519652F600585192FD208300E1112139FEF5410F519652E600585192ED208301A2A907FD2E020E123907B40E06009E0F515907B4297 -:40080600E0F516907B41E06009907FD77417F07437F0E4907FD3F0907FC2E030E103020924E50A7040300739E5387035C207F5187E007B0074242518F9EE3400FA120E9E44 -:40084600FF74802518F582E4347BF583EFF00518E518B409DB907FC37409F0753810E4F52C750A0122E50A64017040300839E5397035C208F5187E007B00742D2518F9EEBF -:400886003400FA120E9EFF74802518F582E4347BF583EFF00518E518B409DB907FC37409F0753910E4F535750A0222E50A6402703630142FC214F5187E007B00740E25184C -:4008C600F9EE3400FA120E9EFF74802518F582E4347BF583EFF00518E518B405DB907FC37405F0750A0322E51560301515E4F5187E007B0074142518F9EE3400FA120E9ECB -:40090600FF74802518F582E4347BF583EFF00518E518B403DB907FC37403F0E4F50A22907FE9E0120EF60A0C000A80010AEC0309480609FF0809F90909E10A09F00B000044 -:400946000B3B907FEBE024FE6019146061240260030209D77419907FD4F07400907FD5F0020B42907FEAE070047F0280027F03758282758319EFF075827B758319F07582DA -:4009860074758319F0758266758319F0758258758319F0907FEAE004758217758319F07419907FD4F07412907FD5F0020B42907FEAE0FF120F1CEA49600DEA907FD4F0E9BE -:4009C600907FD5F0020B42907FB4E04401F0020B42907FB4E04401F0020B42907F00E509F0907FB57401F0020B42907FEAE0F509020B42120B4A020B42907F007401F0903B -:400A06007FB5F0020B42907FE8E0247F60241460312402705BA210E433FF25E0FFA216E4334F907F00F0E4A3F0907FB57402F0020B42E4907F00F0A3F0907FB57402F0022E -:400A46000B42907FECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF583E054FD907F00F0E4A3F0907FB57402F0020B42907FB4E04401F0020B42907FE8E024FE4E -:400A8600601D24026003020B42907FEAE0B40105C210020B42907FB4E04401F0020B42907FEAE07038907FECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF583EA -:400AC600E4F0907FECE05480FF131313541FFFE054072F907FD7F0E04420F0805F907FB4E04401F08056907FE8E024FE60182402704A907FEAE0B40104D210803F907FB47B -:400B0600E04401F08036907FEAE07020907FECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF5837401F08010907FB4E04401F08007907FB4E04401F0907FB4E017 -:400B46004402F022E4907F93F0907F9C7430F0E4907F96F0907F9574C0F0907F9E743FF0907F987418F0E4F58E907FDF74FFF0907FDEF0E4F5247518017B0074242518F945 -:400B8600E43400FAE4120EE40518E518B409EA753A01E4F538F513F536C207C20BC205C200C209C213907F987413F075440390C0007403F07F0CE4FD1211D07F108F42125F -:400BC60010A0907F987412F07F018F40EF440690C000F0907F987414F075468090C0007480F00FE4FD1211D0E4FF7EA3AD068D3E1211D0907F987411F090C000E4F07F05B0 -:400C06007D7F1211D07F011212897F037D071211D07F137D091211D0201B03020CC9752D017518017B00742D2518F9E43400FAE4120EE40518E518B409EA753B01E4F53978 -:400C4600F513F537C208C20CC206C200C20AC213907F98740BF075450390C0007403F07F0CE4FD12121A7F108F43121112907F98740AF07F018F41EF440690C000F0907FC0 -:400C860098740CF075478090C0007480F00FE4FD12121AE4FF7EA3AD068D3F12121A907F987409F090C000E4F07F057D7F12121A7F011212AA7F037D0712121A7F137D0927 -:400CC60012121AD21222907F987410F0AF08E50DF582E50CF583C2AF058690C0000586E0A30586F00586DFF7D2AF22907F987410F0AF08E50DF582E50CF583C2AF058690FD -:400D0600C000E00586F0A30586DFF70586D2AF22907F987408F0AF08E50DF582E50CF583C2AF058690C0000586E0A30586F00586DFF7D2AF22907F987408F0AF08E50DF53A -:400D460082E50CF583C2AF058690C000E00586F0A30586DFF70586D2AF227400F58690FDA57C05A3E582458370F922907FD6E04480F0438701000000000022D219907F92B8 -:400D8600E04402F0907FAEE0FFD39210E433FEEF4EF0D2E843D820907FDE7401F0907FDFF0907FAB74FFF0907FA9F0907FAAF05391EF907FAFE04401F0907FAEE0440DF0AD -:400DC600D2AFD21A121264C211E4F50BF513C217C212907FA104F0907FD8E065176010301205D21A120046907FD8E0F5178008301205C21A120046301107C21112092580F9 -:400E0600D63018D3C2181213AB80CC22787FE4F6D8FD758147020E59020D81E493A3F8E493A34003F68001F208DFF48029E493A3F85407240CC8C333C4540F4420C88340FA -:400E460004F456800146F6DFE4800B01020408102040809012CBE47E019360BCA3FF543F30E509541FFEE493A360010ECF54C025E060A840B8E493A3FAE493A3F8E493A320 -:400E8600C8C582C8CAC583CAF0A3C8C582C8CAC583CADFE9DEE780BEBB010689828A83E0225002E722BBFE02E32289828A83E49322BB010CE58229F582E5833AF583E022D5 -:400EC6005006E92582F8E622BBFE06E92582F8E222E58229F582E5833AF583E49322BB010689828A83F0225002F722BBFE01F322D083D082F8E4937012740193700DA3A37A -:400F060093F8740193F5828883E4737402936860EFA3A3A380DF8F18E4F519751AFF751B19751C86AB1AAA1BA91C900001120EB7B4031DAF190519EFB5180122120E9E7EC4 -:400F46000029FFEE3AA907751AFFF51B891C80D47B007A007900228F1A050DE50DAE0C7002050C14F5828E83E51AF0120036050DE50DAC0C7002050C14F5828C83EFF015BA -:400F860008E508600A12133F8F1AEF423680CA228F1A050DE50DAE0C7002050C14F5828E83E51AF0121357050DE50DAC0C7002050C14F5828C83EFF01508E508600A1213AA -:400FC600938F1AEF423780CA22E4907F93F0907F9C7430F0E4907F96F0907F95F0907F9E7427F0907F987420F0907F9E7407F0E4907F94F0907F9D74FFF0E4907F97F0227C -:40100600C0E0C083C082C085C084C086758600D2115391EF907FAB7401F0D086D084D085D082D083D0E032C0E0C083C082C085C084C086758600D2185391EF907FAB74087E -:40104600F0D086D084D085D082D083D0E032907F987413F090C00074BFF0907F987410F090C000EFF0907F987413F0E544547F90C000F022907F987413F090C00074BFF00C -:40108600907F987411F090C000EFF0907F987413F0E544547F90C000F022907F987413F090C00074BFF0907F987412F090C000EFF0907F987413F0E544547F90C000F0220A -:4010C600907F987413F090C00074BFF0907F987414F090C000EFF0907F987413F0E544547F90C000F022907F987413F090C00074BFF0907F987416F090C000EFF0907F9807 -:401106007413F0E544547F90C000F022907F98740BF090C00074BFF0907F98740AF090C000EFF0907F98740BF0E545547F90C000F022907F98740BF090C00074BFF0907FFA -:40114600987408F090C000EFF0907F98740BF0E545547F90C000F022907F98740BF090C00074BFF0907F987409F090C000EFF0907F98740BF0E545547F90C000F022907F71 -:4011860098740BF090C00074BFF0907F98740CF090C000EFF0907F98740BF0E545547F90C000F022907F98740BF090C00074BFF0907F98740EF090C000EFF0907F98740BFD -:4011C600F0E545547F90C000F022907F987413F0E544547F90C000F0907F987417F090C000EFF0907F987415F090C000EDF0221213278F1A1213278F1BE51A651B60121292 -:4012060013278F1AE51A651B60071213278F1B80E8AF1A22907F98740BF0E545547F90C000F0907F98740FF090C000EFF0907F98740DF090C000EDF02212137B8F1A121325 -:401246007B8F1BE51A651B601212137B8F1AE51A651B600712137B8F1B80E8AF1A22907FD6E054FBF0E04408F0301A04E04402F07FF47E011212E7907FD6E054F7F0E044E1 -:4012860004F022AE07E4FFE53E547FFD1211D0907F987411F090C000EEF0E4E53E4480FD1211D022AE07E4FFE53F547FFD12121A907F987409F090C000EEF0E4E53F448095 -:4012C600FD12121A22050E02000000000314030000C111C118C195C110C116010A00C19B008E188F19E5191519AE18700215184E6005120D6080EE2200000210060002137E -:4013060004000200030002102D907F987411F090C000E0FF22907F987412F090C000E0FF22907F987413F090C000E0FF22907F987414F090C000E0FF22907F987415F090F5 -:40134600C000E0FF22907F987416F090C000E0FF22907F987408F090C000E0FF22907F987409F090C000E0FF22907F98740AF090C000E0FF22907F98740BF090C000E0FFC0 -:4013860022907F98740CF090C000E0FF22907F98740DF090C000E0FF22907F98740EF090C000E0FF22120FCF120D71120B4A220000000000000000000000000000000000C1 -:4013C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E7 -:4014060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A6 -:401446000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066 -:401486000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026 -:4014C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E6 -:4015060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A5 -:401546000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065 -:401586000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025 -:4015C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E5 -:4016060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A4 -:401646000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064 -:401686000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024 -:4016C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E4 -:4017060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A3 -:401746000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063 -:401786000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023 -:4017C60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E3 -:4018060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A2 -:401846000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000062 -:401886000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022 -:4018C6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012011001FF00BF -:401906000040CD06100100000102000209027400010100A032090400000EFF0000000705010240000007050202400000070503024000000705040240000007050502400076 -:4019460000070506024000000705070240000007058102400001070582024000000705830240000107058402400001070585024000010705860240000107058702400001F4 -:401986000403090448034B00650079007300700061006E002C002000610020006400690076006900730069006F006E0020006F006600200049006E006E006F005300790040 -:4019C6007300200049006E0063002E0036034B00650079007300700061006E0020005500530042002000530065007200690061006C002000410064006100700074006500F9 -:041A0600720000006A -:00000001FF - - The firmware contained herein is - - Copyright (C) 1999-2001 - Keyspan, A division of InnoSys Incorporated ("Keyspan") - - as an unpublished work. This notice does not imply unrestricted or - public access to the source code from which this firmware image is - derived. Except as noted below this firmware image may not be - reproduced, used, sold or transferred to any third party without - Keyspan's prior written consent. All Rights Reserved. - - Permission is hereby granted for the distribution of this firmware - image as part of a Linux or other Open Source operating system kernel - in text or binary form as required. - - This firmware may not be modified and may only be used with - Keyspan hardware. Distribution and/or Modification of the - keyspan.c driver which includes this firmware, in whole or in - part, requires the inclusion of this statement." diff --git a/firmware/keyspan/usa49w.HEX b/firmware/keyspan/usa49w.HEX deleted file mode 100644 index 5e5b3d13dd5f..000000000000 --- a/firmware/keyspan/usa49w.HEX +++ /dev/null @@ -1,145 +0,0 @@ -:030033000218FBB5 -:0C0036009078417401F090C000E0FF22BF -:10004600E4FF74402FF582E4347BF583E0FEE5158A -:100056002404FDE43514FAA9057B01EF7C0029F997 -:10006600EC3AFAEE1211F10FBF22D7E5152405F589 -:1000760082E43514F583E07003020134E5152409A2 -:10008600F582E43514F583E0700EE515240AF58251 -:10009600E43514F583E060187F01E4FD121647E5A8 -:1000A600152431F582E43514F583E054CFF0804110 -:1000B600E5152406F582E43514F583E0FF1216767D -:1000C600E5152407F582E43514F583E0FF120003F5 -:1000D6007F01E5152408F582E43514F583E0FD1269 -:1000E6001647E5152431F582E43514F583E04430EE -:1000F600F0E5152439F582E43514F583E04480F003 -:100003009078417403F090C00074BFF0907841740D -:1000130001F090C000EFF09078417403F0E51524EF -:1000230037F582E43514F583E0547F90C000F02265 -:03004300021B009D -:0300000002109556 -:400106009078417404F0E5152439F582E43514F583E090C000F09078417402F0E5152436F582E43514F583E0440690C000F0E515240BF582E43514F583E06032E515240C0B -:40014600F582E43514F583E0543FFFE5152437F582E43514F583EFF09078417403F0E5152437F582E43514F583E090C000F0E515240DF582E43514F583E0700302024FE588 -:40018600152417F582E43514F583E06011E5152432F582E43514F583E04404F0800FE5152432F582E43514F583E054FBF0E4FFE5152432F582E43514F583E0FD121647E55E -:4001C60015240EF582E43514F583E06011E5152433F582E43514F583E04480F0800FE5152433F582E43514F583E0547FF0E5152433F582E43514F583E054FCF0E515240FEB -:40020600F582E43514F583E0602FE5152433F582E43514F583E04402F0E5152410F582E43514F583E0FF1215E7E5152411F582E43514F583E0FF121617E5152433F582E45E -:400246003514F583E0FF1215B7E5152414F582E43514F583E06044E5152415F582E43514F583E06011E5152439F582E43514F583E04401F0800FE5152439F582E43514F581 -:4002860083E054FEF09078417404F0E5152439F582E43514F583E090C000F0E5152412F582E43514F583E06044E5152413F582E43514F583E06011E5152439F582E43514E6 -:4002C600F583E04402F0800FE5152439F582E43514F583E054FDF09078417404F0E5152439F582E43514F583E090C000F0E5152416F582E43514F583E0FFE5152435F5820A -:40030600E43514F583EFF0E5152417F582E43514F583E030E011E5152431F582E43514F583E04440F0800FE5152431F582E43514F583E054BFF0E5152418F582E43514F576 -:4003460083E0FFE515243BF582E43514F583EFF0E5152419F582E43514F583E06011E5152439F582E43514F583E04410F0800FE5152439F582E43514F583E054EFF0907869 -:40038600417404F0E5152439F582E43514F583E090C000F0E515241AF582E43514F583E0606BE5152437F582E43514F583E054BFF09078417403F0E5152437F582E43514FF -:4003C600F583E0547F90C000F09078417401F0120036EF54FE90C000F0E5152432F582E43514F583E054FDFFF0FDE4FF121647E515242CF582E43514F583E4F0E515242BB7 -:40040600F582E43514F583E4F0E5164213E515241BF582E43514F583E0700EE5152425F582E43514F583E06028E5152432F582E43514F583E04402FFF0FDE4FF121647E547 -:4004460015242BF582E43514F5837401F0E5164213E515241CF582E43514F583E0FF700EE5152425F582E43514F583E0602A9078417402F0E5152436F582E43514F583E0C6 -:40048600440490C000F0EF600FE5152431F582E43514F583E04404F0E515241DF582E43514F583E06027E5152437F582E43514F583E04440F09078417403F0E5152437F550 -:4004C60082E43514F583E0547F90C000F0E515241EF582E43514F583E06028E5152432F582E43514F583E054FEFFF0FDE4FF121647E515242DF582E43514F5837401F0E58F -:40050600164213E515241FF582E43514F583E0700EE5152425F582E43514F583E06027E5152432F582E43514F583E04401FFF0FDE4FF121647E515242DF582E43514F58397 -:40054600E4F0E5164213E5152420F582E43514F583E0700EE5152425F582E43514F583E060189078417402F0E5152436F582E43514F583E0440290C000F0E5152421F582A7 -:40058600E43514F583E0600FE5152431F582E43514F583E04402F0E5152422F582E43514F583E0601FE515242EF582E43514F5837401F0E515243AF582E43514F583E4F0F0 -:4005C600E5164213E5152423F582E43514F583E06003121885E5152424F582E43514F583E0601BE5152431F582E43514F583E04408F0907F98E0FFE516F4FEEF5EF0E5156C -:400606002425F582E43514F583E06016E5152431F582E43514F583E054F7F0907F98E04516F022907FE9E012120307830007F701086303064C0607740807680907500A07CE -:400646005F0B000008B2907FEBE024FE601C1470030206FE240260030207467419907FD4F07400907FD5F00208B9907FEAE004758217758319F0907FEAE030E0047F03802D -:40068600027F02758282758319EFF075826D758319F0758266758319F075825F758319F0758258758319F0907FEAE030E1047F6480027F3275821A758319EFF0907FEFE0FB -:4006C600FE907FEEE07C002400F519EC3EF518753319753412758214758319E0752700F528D3E5289519E527951840068518278519281213120208B9907FEAE0FF12142BC9 -:40070600EA496032907FEEE0751800F519AE02AF018E338F348F828E83E0FEA3E08E27F528D39519E527951840068518278519281213120208B9907FB4E04401F00208B99E -:40074600907FB4E04401F00208B9907F00E525F0907FB57401F00208B9907FEAE0F5250208B9907FEAE0F522120AB80208B9907F00E522F0907FB57401F00208B9907FE8BD -:40078600E0247F60241460312402705BA200E433FF25E0FFA206E4334F907F00F0E4A3F0907FB57402F00208B9E4907F00F0A3F0907FB57402F00208B9907FECE0F4548063 -:4007C600FFC4540FFFE054072F25E024B4F582E4347FF583E054FD907F00F0E4A3F0907FB57402F00208B9907FB4E04401F00208B9907FE8E024FE601D240260030208B910 -:40080600907FEAE0B40105C2000208B9907FB4E04401F00208B9907FEAE07038907FECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF583E4F0907FECE05480FF67 -:40084600131313541FFFE054072F907FD7F0E04420F0805F907FB4E04401F08056907FE8E024FE60182402704A907FEAE0B40104D200803F907FB4E04401F08036907FEACB -:40088600E07020907FECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF5837401F08010907FB4E04401F08007907FB4E04401F0907FB4E04402F022E511540F703D -:4008C600030209B21216A5EF20E175121703EF14F5191218CCEF2519FFE433FEC3EF9480EE648094805059851582851483E0FEA3E0FFF5828E83E030E011E5152431F58250 -:40090600E43514F583E04480F0800FE5152431F582E43514F583E0547FF0E5152431F582E43514F583E020E212E519600EF523EF2401F52DE43EF52C1214ADE4FF1214E3C0 -:40094600E5152431F582E43514F583E030E75D1218CCE515243BF582E43514F583E0FEEFC39E5048E515242FF582E43514F5837401F0E5152431F582E43514F583E0547B99 -:40098600F0E515243AF582E43514F583E4F0E5164213907FC2E030E110E5152426F582E43514F583E0F52480031212A11216D4EF30E103020AB71217D28F191218D8E515D5 -:4009C6002438F582E43514F583EFF0E5152435F582E43514F583E0FFE519C39F50281218B4EF30E021E5152438F582E43514F583E020E712E5152431F582E43514F583E0C0 -:400A060020E103020AB7E5152431F582E43514F583E054FDF0E5197003020AB7B4800FE5152438F582E43514F583E04402F0E5152438F582E43514F583E0FF30E729E519CF -:400A4600D394204003751920851923851582851483A3A3E0FCA3E08C2CF52D1213DDE51925E0FF12151922E519D3943F400375193F851923E5152438F582E43514F583E053 -:400A8600FF851582851483A3A3E0FCA3E0F5828C83EFF0851582851483A3A3E0FEA3E02401F52DE43EF52C12146CE51904FF12151922E4907F93F0907F9C74F0F0907F9677 -:400AC600F0E4907F94F090784A04F0F58E907F9574C0F0907F9E743FF0907F98741FF090784374FFF0E4907841F0907FDF749FF0907FDEF0907F92E04402F07E7B7FC07581 -:400B0600147B7515C0907F9674EFF0751601120F127E7B7FC075147B7515C0907F9674EFF0751601E5152426F582E43514F583E4F07E7E7F40851582851483747EF0A374F5 -:400B460040F07E7E7F80851582851483A3A3747EF0A37480F07E7C7F0075147C751500907F9674DFF0751602120F127E7C7F0075147C751500907F9674DFF0751602E51536 -:400B86002426F582E43514F5837401F07E7D7FC0851582851483747DF0A374C0F07E7E7F00851582851483A3A3747EF0A37400F07E7C7F4075147C751540907F9674BFF018 -:400BC600751604120F127E7C7F4075147C751540907F9674BFF0751604E5152426F582E43514F5837402F07E7D7F40851582851483747DF0A37440F07E7D7F8085158285D3 -:400C06001483A3A3747DF0A37480F07E7C7F8075147C751580907F96747FF0751608120F127E7C7F8075147C751580907F96747FF0751608E5152426F582E43514F583741C -:400C460003F07E7C7FC0851582851483747CF0A374C0F07E7D7F00851582851483A3A3747DF0A37400F0C20AC209D20222E510045403F51014601F1460311460432403701B -:400C8600527E7B7FC075147B7515C0907F9674EFF0751601803D7E7C7F0075147C751500907F9674DFF075160280287E7C7F4075147C751540907F9674BFF075160480137E -:400CC6007E7C7F8075147C751580907F96747FF0751608E53255167003020E11E516F4FF5232E526547FFE700FE52A55166024907F98E04516F0801BBE2018E5152431F543 -:400D060082E43514F583E030E309E4F52A907F98E05FF0E515243AF582E43514F583E06003E014F0E5152434F582E43514F583E06003E014F0E06003020E11740AF012009D -:400D460036EF5401FFF519E515242CF582E43514F583E06F6007E519F0E51642131218E48F19E5152427F582E43514F583E0FFE5195410FE6F6006EEF0E5164213E5152415 -:400D860028F582E43514F583E0FFE5195480FE6F6006EEF0E5164213E5152429F582E43514F583E0FFE5195420FE6F6015EEF0E5152431F582E43514F583E030E404E51665 -:400DC6004213E5125516FFF519E515242AF582E43514F583E06F6016E519F0E5152431F582E43514F583E030E504E5164213E5175516FFF519E5152430F582E43514F58380 -:400E0600E06F6007E519F0E516421322300903020F11E52414602A14604114605814606F24046003020ECF7E7B7FC075147B7515C0907F9674EFF07516011212A17524015A -:400E4600227E7C7F0075147C751500907F9674DFF07516021212A1752402227E7C7F4075147C751540907F9674BFF07516041212A1752403227E7C7F8075147C7515809051 -:400E86007F96747FF07516081212A175240422300433C2045313DFE4F5197E007B00742E2519F9EE3400FA1211ABFF74802519F582E4347BF583EFF00519E519B403DB902D -:400EC6007FC37403F075240522E536603BD5360A5313EF300A04D209C20AE4F5197E007B0074352519F9EE3400FA1211ABFF74802519F582E4347BF583EFF00519E519B467 -:400F060003DB907FC37403F0E4F52422E4F51A7E007B01E515251AF9EE3514FAE41211F1051AE51AB43CE8E5152435F582E43514F5837401F09078417403F0E5152437F569 -:400F460082E43514F5837403F090C000F07F0CE4FD1216477F10E5152433F582E43514F583EFF01215B79078417402F07F01E5152436F582E43514F583EFF0440690C000F1 -:400F8600F09078417404F0E5152439F582E43514F5837480F090C000F00FE4FD121647E4FF7EA3E5152432F582E43514F583EEF0FD1216479078417401F090C000E4F07F89 -:400FC600057D7F1216477F0112154F7F037D071216472253133F907BF1E030E3167E7B7FC075147B7515C0907F9674EFF07516011208C1907C31E030E3167E7C7F00751417 -:401006007C751500907F9674DFF07516021208C1907C71E030E3167E7C7F4075147C751540907F9674BFF07516041208C1907CB1E030E3167E7C7F8075147C751580907F37 -:4010460096747FF07516081208C10511E511540FF518701F907841E054F7F0907F99E0F517907841E04408F0907F99E0F4F51212112122E518B40104120C7322907FC2E018 -:4010860020E108E5136004120E1222120C7322787FE4F6D8FD7581370210DC021229E493A3F8E493A34003F68001F208DFF48029E493A3F85407240CC8C333C4540F44207E -:4010C600C8834004F456800146F6DFE4800B0102040810204080901850E47E019360BCA3FF543F30E509541FFEE493A360010ECF54C025E060A840B8E493A3FAE493A3F8A2 -:40110600E493A3C8C582C8CAC583CAF0A3C8C582C8CAC583CADFE9DEE780BE907FD2E030E1030211AAC209907B40E014602614603B14605024836064248070637E7B7FC01C -:4011460075147B7515C0907F9674EFF0751601120046804B7E7C7F0075147C751500907F9674DFF075160212004680337E7C7F4075147C751540907F9674BFF075160412FB -:401186000046801B7E7C7F8075147C751580907F96747FF0751608120046800312175CE4907FD3F022BB010689828A83E0225002E722BBFE02E32289828A83E49322BB0189 -:4011C6000CE58229F582E5833AF583E0225006E92582F8E622BBFE06E92582F8E222E58229F582E5833AF583E49322BB010689828A83F0225002F722BBFE01F322D083D086 -:4012060082F8E4937012740193700DA3A393F8740193F5828883E4737402936860EFA3A3A380DF907FAEE0FFD39200E433FEEF4EF0D2E843D820907FDE7401F0907FDFF08E -:40124600907FAB74FFF0907FA9F0907FAAF05391EF907FAF7401F0907FAE740DF0D2AFD20B121814C201E4F52BF531C207C2027529F0907FD8E06526600675320FE0F526C9 -:40128600300203120FD9300107C20112062980E23008DFC20812183580D822E5135516606AE515243AF582E43514F583E0705CE516F45213E5152426FFE43514FEE4FD0FA2 -:4012C600EFAA0670010E14F5828A83E0FC74802DF582E4347BF583ECF00DBD0BE2907FC3740BF0E515243AF582E43514F5837410F0E515242EF582E43514F583E4F0E515C1 -:40130600242FF582E43514F583E4F022E52845276057AE27AF28D3EF9440EE940040047E007F40C3E5289FF528E5279EF527E4FDEDC39FE49E501F853482853383E0FC7494 -:40134600002DF582E4347FF583ECF00D0534E5347002053380DA907FA97401F0907FACE04401F0907FB5EFF022907FACE054FEF0E4907FB5F022E4907F93F0907F9C74F0A7 -:40138600F0907F96F0E490784AF0907F94F0907F9D74FFF0E4907F97F0300007E52954F0FF80027F00EF4408907841F0E4907F98F0907F95F0907F9E74FFF0E4907F98F0C9 -:4013C600907F93F0907F9C74F0F0E4907F96F0907F92E054FDF0228F1A052DE52DAE2C7002052C14F5828E83E51AF01218F0052DE52DAC2C7002052C14F5828C83EFF0159D -:4014060023E523601FE5152438F582E43514F583C083C082E0FE1218D88F1AEE4FD082D083F080B5228F1AE4F51B751CFF751D19751E86AB1CAA1DA91E9000011211C4B4E1 -:40144600031DAF1B051BEFB51A01221211AB7E0029FFEE3AA907751CFFF51D891E80D47B007A00790022E4907841F090784F74C0F0E4907850F0E52C907851F0AE2CE52DF8 -:40148600907852F0907854E523F09078577404F0907FE2E04410F0E054F7F0E4907855F0907855E060FA22E4907841F0E52C90784FF0AE2CE52D907850F090785174C0F081 -:4014C600E4907852F0907854E523F09078577404F0E4907855F0907855E060FA22E5152404F582E43514F583E014600F1460131460178000907FC7EFF08013907FC9EFF081 -:40150600800C907FCBEFF08005907FCDEFF0E516422A22E5152404F582E43514F583E014600F1460131460178000907FB7EFF08013907FB9EFF0800C907FBBEFF08005903B -:401546007FBDEFF0E516422A22AE07E4FFE5152432F582E43514F583E0547FFD1216479078417401F090C000EEF0E4E5152432F582E43514F583E04480FD12164722C0E0A0 -:40158600C0F0C083C082C085C084C086758600C0D075D0085391EF907FA97401F0121312D0D0D086D084D085D082D083D0F0D0E0329078417403F090C00074BFF0907841D0 -:4015C6007402F090C000EFF09078417403F0E5152437F582E43514F583E0547F90C000F0229078417403F090C00074BFF09078417404F090C000EFF09078417403F0E5156D -:401606002437F582E43514F583E0547F90C000F0229078417403F090C00074BFF09078417406F090C000EFF09078417403F0E5152437F582E43514F583E0547F90C000F0FF -:40164600229078417403F0E5152437F582E43514F583E0547F90C000F09078417407F090C000EFF09078417405F090C000EDF0229078417403F090C00074BFF0E4907841FA -:40168600F090C000EFF09078417403F0E5152437F582E43514F583E0547F90C000F022E5152404F582E43514F583E014600E1460111460148000907FC6E0FF22907FC8E015 -:4016C600FF22907FCAE0FF22907FCCE0FF22E5152404F582E43514F583E014600E1460111460148000907FB6E0FF22907FB8E0FF22907FBAE0FF22907FBCE0FF22E515249E -:4017060004F582E43514F583E014600E1460111460148000907FC7E0FF22907FC9E0FF22907FCBE0FF22907FCDE0FF22C0E0C083C082C085C084C086758600907FC4E4F096 -:401746005391EF907FAB7404F0D086D084D085D082D083D0E032907B41E0F536431310A3E06009907FD77417F07437F0907B43E0F537A3E054F0F529E06002D20A22C0E024 -:40178600C083C082C085C084C086758600D2015391EF907FAB7401F0D086D084D085D082D083D0E032C0E0C083C082C085C084C086758600D2085391EF907FAB7408F0D0F7 -:4017C60086D084D085D082D083D0E0321218C0AE071218C0AD07EE6D60101218C0AE07EE6D60071218C0AD0780ECAF06227400F58690FDA57C05A3E582458370F922907FD5 -:40180600D6E04480F0438701000000000022907FD6E04404F0E04408F0300B04E04402F07FF47E0112186B907FD6E054F7F02212137C121804907FD6E030E70A7F057E007D -:4018460012186B12189E120AB8220335800000032E810000C185C181C108C100C106012200012400008E188F19E5191519AE18700215184E60081217F31217F380EB22E545 -:40188600152404F582E43514F583E004FF4410907FD7F0EF4430F022907FD6E04401F07F0D7E0012186B907FD6E054FEF0229078417402F090C000E0FF229078417403F0D5 -:4018C60090C000E0FF229078417404F090C000E0FF229078417405F090C000E0FF229078417406F090C000E0FF22E4907841F090C000E0FF2253D8EF320012011001FF00AB -:401906000040CD060A0100000102000409027400010100A032090400000EFF000000070501024000000705020240000007050302400000070504024000000705050240007A -:4019460000070506024000000705070240000007058102400001070582024000010705830240000107058402400001070585024000010705860240000107058702400001F3 -:401986000403090448034B00650079007300700061006E002C002000610020006400690076006900730069006F006E0020006F006600200049006E006E006F005300790040 -:4019C6007300200049006E0063002E003603550053004200200034002D0070006F00720074002000530065007200690061006C00200041006400610070007400650072003C -:401A060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A0 -:401A46000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060 -:401A86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020 -:401AC6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002178400021B26 -:151B06000400021732000217AB00021B1000021B1400021584BE -:00000001FF - - The firmware contained herein is - - Copyright (C) 1999-2001 - Keyspan, A division of InnoSys Incorporated ("Keyspan") - - as an unpublished work. This notice does not imply unrestricted or - public access to the source code from which this firmware image is - derived. Except as noted below this firmware image may not be - reproduced, used, sold or transferred to any third party without - Keyspan's prior written consent. All Rights Reserved. - - Permission is hereby granted for the distribution of this firmware - image as part of a Linux or other Open Source operating system kernel - in text or binary form as required. - - This firmware may not be modified and may only be used with - Keyspan hardware. Distribution and/or Modification of the - keyspan.c driver which includes this firmware, in whole or in - part, requires the inclusion of this statement." diff --git a/firmware/keyspan/usa49wlc.HEX b/firmware/keyspan/usa49wlc.HEX deleted file mode 100644 index 8406eb1bf373..000000000000 --- a/firmware/keyspan/usa49wlc.HEX +++ /dev/null @@ -1,153 +0,0 @@ -:017F920001ED -:030033000218FBB5 -:0D003600E51104907841F090C000E0FF2239 -:10004600E4FF74402FF582E4347BF583E0FEE5158A -:100056002404FDE43514FAA9057B01EF7C0029F997 -:10006600EC3AFAEE1211EC0FBF22D7E5152405F58E -:1000760082E43514F583E07003020134E5152409A2 -:10008600F582E43514F583E0700EE515240AF58251 -:10009600E43514F583E060187F01E4FD12166BE584 -:1000A600152431F582E43514F583E054CFF0804110 -:1000B600E5152406F582E43514F583E0FF12000306 -:1000C600E5152407F582E43514F583E0FF1215AB38 -:1000D6007F01E5152408F582E43514F583E0FD1269 -:1000E600166BE5152431F582E43514F583E04430CA -:1000F600F0E5152439F582E43514F583E04480F003 -:1000030090784174F3F090C00074BFF0907841741D -:10001300F0F090C000EFF090784174F3F0E5152410 -:1000230037F582E43514F583E0547F90C000F02265 -:03004300021B009D -:030000000210905B -:4001060090784174F4F0E5152439F582E43514F583E090C000F090784174F2F0E5152436F582E43514F583E0440690C000F0E515240BF582E43514F583E06032E515240C2B -:40014600F582E43514F583E0543FFFE5152437F582E43514F583EFF090784174F3F0E5152437F582E43514F583E090C000F0E515240DF582E43514F583E0700302024FE598 -:40018600152417F582E43514F583E06011E5152432F582E43514F583E04404F0800FE5152432F582E43514F583E054FBF0E4FFE5152432F582E43514F583E0FD12166BE53A -:4001C60015240EF582E43514F583E06011E5152433F582E43514F583E04480F0800FE5152433F582E43514F583E0547FF0E5152433F582E43514F583E054FCF0E515240FEB -:40020600F582E43514F583E0602FE5152433F582E43514F583E04402F0E5152410F582E43514F583E0FF12160BE5152411F582E43514F583E0FF12163BE5152433F582E415 -:400246003514F583E0FF1215DBE5152414F582E43514F583E06044E5152415F582E43514F583E06011E5152439F582E43514F583E04401F0800FE5152439F582E43514F55D -:4002860083E054FEF090784174F4F0E5152439F582E43514F583E090C000F0E5152412F582E43514F583E06044E5152413F582E43514F583E06011E5152439F582E43514F6 -:4002C600F583E04402F0800FE5152439F582E43514F583E054FDF090784174F4F0E5152439F582E43514F583E090C000F0E5152416F582E43514F583E0FFE5152435F5821A -:40030600E43514F583EFF0E5152417F582E43514F583E030E011E5152431F582E43514F583E04440F0800FE5152431F582E43514F583E054BFF0E5152418F582E43514F576 -:4003460083E0FFE515243BF582E43514F583EFF0E5152419F582E43514F583E06011E5152439F582E43514F583E04410F0800FE5152439F582E43514F583E054EFF0907869 -:400386004174F4F0E5152439F582E43514F583E090C000F0E515241AF582E43514F583E0606BE5152437F582E43514F583E054BFF090784174F3F0E5152437F582E435141F -:4003C600F583E0547F90C000F090784174F1F0120036EF54FE90C000F0E5152432F582E43514F583E054FDFFF0FDE4FF12166BE515242CF582E43514F583E4F0E515242BA3 -:40040600F582E43514F583E4F0E5164213E515241BF582E43514F583E0700EE5152425F582E43514F583E06028E5152432F582E43514F583E04402FFF0FDE4FF12166BE523 -:4004460015242BF582E43514F5837401F0E5164213E515241CF582E43514F583E0FF700EE5152425F582E43514F583E0602A90784174F2F0E5152436F582E43514F583E0D6 -:40048600440490C000F0EF600FE5152431F582E43514F583E04404F0E515241DF582E43514F583E06027E5152437F582E43514F583E04440F090784174F3F0E5152437F560 -:4004C60082E43514F583E0547F90C000F0E515241EF582E43514F583E06028E5152432F582E43514F583E054FEFFF0FDE4FF12166BE515242DF582E43514F5837401F0E56B -:40050600164213E515241FF582E43514F583E0700EE5152425F582E43514F583E06027E5152432F582E43514F583E04401FFF0FDE4FF12166BE515242DF582E43514F58373 -:40054600E4F0E5164213E5152420F582E43514F583E0700EE5152425F582E43514F583E0601890784174F2F0E5152436F582E43514F583E0440290C000F0E5152421F582B7 -:40058600E43514F583E0600FE5152431F582E43514F583E04402F0E5152422F582E43514F583E0601FE515242EF582E43514F5837401F0E515243AF582E43514F583E4F0F0 -:4005C600E5164213E5152423F582E43514F583E0600312187AE5152424F582E43514F583E06023E5152431F582E43514F583E04408F0E516C454F0FF4211907F96E04FF000 -:40060600907841E04FF0E5152425F582E43514F583E06024E5152431F582E43514F583E054F7F0E516C454F0F4FF5211907F96E05FF0907841E05FF022907FE9E01211FE43 -:40064600079900080D01087903066206078A08077E0907660A07750B000008C8907FEBE024FE601C1470030207142402600302075C7419907FD4F07400907FD5F00208CF4C -:40068600907FEAE004758217758319F0907FEAE030E0047F0280027F03758282758319EFF075826D758319F0758266758319F075825F758319F0758258758319F0907FEA0A -:4006C600E030E1047F6480027F3275821A758319EFF0907FEFE0FE907FEEE07C002400F518EC3EF517753319753412758214758319E0752700F528D3E5289518E5279517D6 -:40070600400685172785182812130D0208CF907FEAE0FF12145FEA496032907FEEE0751700F518AE02AF018E338F348F828E83E0FEA3E08E27F528D39518E527951740068B -:4007460085172785182812130D0208CF907FB4E04401F00208CF907FB4E04401F00208CF907F00E525F0907FB57401F00208CF907FEAE0F5250208CF907FEAE0F522120A9B -:40078600CE0208CF907F00E522F0907FB57401F00208CF907FE8E0247F60241460312402705BA200E433FF25E0FFA206E4334F907F00F0E4A3F0907FB57402F00208CFE4C9 -:4007C600907F00F0A3F0907FB57402F00208CF907FECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF583E054FD907F00F0E4A3F0907FB57402F00208CF907FB45C -:40080600E04401F00208CF907FE8E024FE601D240260030208CF907FEAE0B40105C2000208CF907FB4E04401F00208CF907FEAE07038907FECE0F45480FFC4540FFFE05490 -:40084600072F25E024B4F582E4347FF583E4F0907FECE05480FF131313541FFFE054072F907FD7F0E04420F0805F907FB4E04401F08056907FE8E024FE60182402704A90CA -:400886007FEAE0B40104D200803F907FB4E04401F08036907FEAE07020907FECE0F45480FFC4540FFFE054072F25E024B4F582E4347FF5837401F08010907FB4E04401F046 -:4008C6008007907FB4E04401F0907FB4E04402F022E512540F70030209C812169AEF20E1751216F8EF14F5181218C5EF2518FFE433FEC3EF9480EE64809480505985158201 -:40090600851483E0FEA3E0FFF5828E83E030E011E5152431F582E43514F583E04480F0800FE5152431F582E43514F583E0547FF0E5152431F582E43514F583E020E212E5CC -:4009460018600EF523EF2401F52DE43EF52C1214A0E4FF1214D7E5152431F582E43514F583E030E75D1218C5E515243BF582E43514F583E0FEEFC39E5048E515242FF58207 -:40098600E43514F5837401F0E5152431F582E43514F583E0547BF0E515243AF582E43514F583E4F0E5164213907FC2E030E110E5152426F582E43514F583E0F524800312C5 -:4009C600129C1216C9EF30E103020ACD1217C78F181218D3E5152438F582E43514F583EFF0E5152435F582E43514F583E0FFE518C39F50281218A9EF30E021E5152438F52E -:400A060082E43514F583E020E712E5152431F582E43514F583E020E103020ACDE5152431F582E43514F583E054FDF0E5187003020ACDB4800FE5152438F582E43514F583DE -:400A4600E04402F0E5152438F582E43514F583E0FF30E729E518D394204003751820851823851582851483A3A3E0FCA3E08C2CF52D1213CFE51825E0FF12150D22E518D3C3 -:400A8600943F400375183F851823E5152438F582E43514F583E0FF851582851483A3A3E0FCA3E0F5828C83EFF0851582851483A3A3E0FEA3E02401F52DE43EF52C12141D4F -:400AC600E51804FF12150D22E4907F93F0907F9C74FFF0E4907F96F0907F94F090784A04F0F58E907F9574C0F0907F9E743FF0907F98742FF090784374F7F0E4907841F02C -:400B0600907FDF749FF0907FDEF0907F92E04402F07E7B7FC075147B7515C0907F98742EF0751601120F287E7B7FC075147B7515C0907F98742EF0751601E5152426F58290 -:400B4600E43514F583E4F07E7E7F40851582851483747EF0A37440F07E7E7F80851582851483A3A3747EF0A37480F07E7C7F0075147C751500907F98742DF0751602120F0A -:400B8600287E7C7F0075147C751500907F98742DF0751602E5152426F582E43514F5837401F07E7D7FC0851582851483747DF0A374C0F07E7E7F00851582851483A3A374EE -:400BC6007EF0A37400F07E7C7F4075147C751540907F98742BF0751604120F287E7C7F4075147C751540907F98742BF0751604E5152426F582E43514F5837402F07E7D7F57 -:400C060040851582851483747DF0A37440F07E7D7F80851582851483A3A3747DF0A37480F07E7C7F8075147C751580907F987427F0751608120F287E7C7F8075147C751590 -:400C460080907F987427F0751608E5152426F582E43514F5837403F07E7C7FC0851582851483747CF0A374C0F07E7D7F00851582851483A3A3747DF0A37400F0C20AC209D3 -:400C8600E4F511D20222E510045403F51014601F146031146043240370527E7B7FC075147B7515C0907F98742EF0751601803D7E7C7F0075147C751500907F98742DF07564 -:400CC600160280287E7C7F4075147C751540907F98742BF075160480137E7C7F8075147C751580907F987427F0751608E53255167003020E27E516F45232E526547FFF7095 -:400D060017E52A55166034907F96E0FEE516C454F0F4FDEE5DF08023BF2020E5152431F582E43514F583E030E311E4F52A907F96E0FFE516C454F0FEEF4EF0E515243AF5C3 -:400D460082E43514F583E06003E014F0E5152434F582E43514F583E06003E014F0E06003020E27740AF0120036EF5401FFF518E515242CF582E43514F583E06F6007E518F1 -:400D8600F0E51642131218E18F18E5152427F582E43514F583E0FFE5185410FE6F6006EEF0E5164213E5152428F582E43514F583E0FFE5185480FE6F6006EEF0E516421386 -:400DC600E5152429F582E43514F583E0FFE5185420FE6F6015EEF0E5152431F582E43514F583E030E404E5164213E515242AF582E43514F583E0FFE5185440FE6F6015EE23 -:400E0600F0E5152431F582E43514F583E030E504E5164213E5152430F582E43514F583E4F022300903020F27E52414602A14604114605814606F24046003020EE57E7B7F31 -:400E4600C075147B7515C0907F98742EF075160112129C752401227E7C7F0075147C751500907F98742DF075160212129C752402227E7C7F4075147C751540907F98742B05 -:400E8600F075160412129C752403227E7C7F8075147C751580907F987427F075160812129C75240422300433C2045313DFE4F5187E007B00742E2518F9EE3400FA1211A6CA -:400EC600FF74802518F582E4347BF583EFF00518E518B403DB907FC37403F075240522E536603BD5360A5313EF300A04D209C20AE4F5187E007B0074352518F9EE3400FACC -:400F06001211A6FF74802518F582E4347BF583EFF00518E518B403DB907FC37403F0E4F52422E4F5197E007B01E5152519F9EE3514FAE41211EC0519E519B43CE8E51524FA -:400F460035F582E43514F5837401F090784174F3F0E5152437F582E43514F5837403F090C000F07F0CE4FD12166B7F10E5152433F582E43514F583EFF01215DB9078417464 -:400F8600F2F07F01E5152436F582E43514F583EFF0440690C000F090784174F4F0E5152439F582E43514F5837480F090C000F00FE4FD12166BE4FF7EA3E5152432F582E486 -:400FC6003514F583EEF0FD12166B90784174F1F090C000E4F07F057D7F12166B7F011215437F037D0712166B2253133F907BF1E030E3167E7B7FC075147B7515C0907F986B -:40100600742EF07516011208D7907C31E030E3167E7C7F0075147C751500907F98742DF07516021208D7907C71E030E3167E7C7F4075147C751540907F98742BF0751604C4 -:401046001208D7907CB1E030E3167E7C7F8075147C751580907F987427F07516081208D70512E512540FF517700412111C22E517B40104120C8C22907FC2E020E108E51370 -:401086006004120E2822120C8C22787FE4F6D8FD7581370210D7021224E493A3F8E493A34003F68001F208DFF48029E493A3F85407240CC8C333C4540F4420C8834004F4D7 -:4010C60056800146F6DFE4800B0102040810204080901845E47E019360BCA3FF543F30E509541FFEE493A360010ECF54C025E060A840B8E493A3FAE493A3F8E493A3C8C589 -:4011060082C8CAC583CAF0A3C8C582C8CAC583CADFE9DEE780BE907FD2E030E1030211A5C209907B40E014602614603B14605024836064248070637E7B7FC075147B75153A -:40114600C0907F98742EF0751601120046804B7E7C7F0075147C751500907F98742DF075160212004680337E7C7F4075147C751540907F98742BF0751604120046801B7E2B -:401186007C7F8075147C751580907F987427F07516081200468003121751E4907FD3F022BB010689828A83E0225002E722BBFE02E32289828A83E49322BB010CE58229F5B8 -:4011C60082E5833AF583E0225006E92582F8E622BBFE06E92582F8E222E58229F582E5833AF583E49322BB010689828A83F0225002F722BBFE01F322D083D082F8E49370B6 -:4012060012740193700DA3A393F8740193F5828883E4737402936860EFA3A3A380DF907FAEE0FFD39200E433FEEF4EF0D2E843D820907FDE7401F0907FDFF0907FAB74FFC2 -:40124600F0907FA9F0907FAAF05391EF907FAF7401F0907FAE740DF0D2AFD20B121809C201E4F52BF531C207C20275290F907FD8E06526600675320FE0F526300203120F8C -:40128600EF300107C20112063F80E23008DFC20812182A80D822E5135516606AE515243AF582E43514F583E0705CE516F45213E5152426FFE43514FEE4FD0FEFAA067001C7 -:4012C6000E14F5828A83E0FC74802DF582E4347BF583ECF00DBD0BE2907FC3740BF0E515243AF582E43514F5837410F0E515242EF582E43514F583E4F0E515242FF582E423 -:401306003514F583E4F022E52845276057AE27AF28D3EF9440EE940040047E007F40C3E5289FF528E5279EF527E4FDEDC39FE49E501F853482853383E0FC74002DF582E4BA -:40134600347FF583ECF00D0534E5347002053380DA907FA97401F0907FACE04401F0907FB5EFF022907FACE054FEF0E4907FB5F022907F98740FF0E490784AF0907F94F0E1 -:40138600907F9D74FFF0E4907F97F0907841F0907F93F0907F9C74FFF0300007E529540FFF80027F00907F96EFF0907F98741FF0E4907F95F0907F9E743FF0907F9874DFAD -:4013C600F0907F92E054FDF0228F19052DE52DAE2C7002052C14F5828E83E519F01218EF052DE52DAC2C7002052C14F5828C83EFF01523E523601FE5152438F582E4351416 -:40140600F583C083C082E0FE1218D38F19EE4FD082D083F080B522907841E511F090784F74C0F0E4907850F0E52C907851F0AE2CE52D907852F0907854E523F09078577470 -:4014460004F0907FE2E04410F0E054F7F0E4907855F0907855E060FA228F19E4F51A751BFF751C19751D86AB1BAA1CA91D9000011211BFB4031DAF1A051AEFB519012212F9 -:4014860011A67E0029FFEE3AA907751BFFF51C891D80D47B007A00790022907841E511F0E52C90784FF0AE2CE52D907850F090785174C0F0E4907852F0907854E523F0907D -:4014C60078577404F0E4907855F0907855E060FA22E5152404F582E43514F583E014600F1460131460178000907FC7EFF08013907FC9EFF0800C907FCBEFF08005907FCDED -:40150600EFF0E516422A22E5152404F582E43514F583E014600F1460131460178000907FB7EFF08013907FB9EFF0800C907FBBEFF08005907FBDEFF0E516422A22AE07E4A4 -:40154600FFE5152432F582E43514F583E0547FFD12166B90784174F1F090C000EEF0E4E5152432F582E43514F583E04480FD12166B22C0E0C0F0C083C082C085C084C086A1 -:40158600758600C0D075D0085391EF907FA97401F012130DD0D0D086D084D085D082D083D0F0D0E03290784174F3F090C00074BFF090784174F1F090C000EFF090784174A8 -:4015C600F3F0E5152437F582E43514F583E0547F90C000F02290784174F3F090C00074BFF090784174F2F090C000EFF090784174F3F0E5152437F582E43514F583E0547FD7 -:4016060090C000F02290784174F3F090C00074BFF090784174F4F090C000EFF090784174F3F0E5152437F582E43514F583E0547F90C000F02290784174F3F090C00074BF16 -:40164600F090784174F6F090C000EFF090784174F3F0E5152437F582E43514F583E0547F90C000F02290784174F3F0E5152437F582E43514F583E0547F90C000F09078412F -:4016860074F7F090C000EFF090784174F5F090C000EDF022E5152404F582E43514F583E014600E1460111460148000907FC6E0FF22907FC8E0FF22907FCAE0FF22907FCC19 -:4016C600E0FF22E5152404F582E43514F583E014600E1460111460148000907FB6E0FF22907FB8E0FF22907FBAE0FF22907FBCE0FF22E5152404F582E43514F583E0146000 -:401706000E1460111460148000907FC7E0FF22907FC9E0FF22907FCBE0FF22907FCDE0FF22C0E0C083C082C085C084C086758600907FC4E4F05391EF907FAB7404F0D086BF -:40174600D084D085D082D083D0E032907B41E0F536431310A3E06009907FD77417F07437F0907B43E0F537A3E054F0F529E06002D20A22C0E0C083C082C085C084C08675A6 -:401786008600D2015391EF907FAB7401F0D086D084D085D082D083D0E032C0E0C083C082C085C084C086758600D2085391EF907FAB7408F0D086D084D085D082D083D0E03C -:4017C600321218B7AE071218B7AD07EE6D60101218B7AE07EE6D60071218B7AD0780ECAF06227400F58690FDA57C05A3E582458370F922907FD6E04480F043870100000048 -:40180600000022907FD6E04404F0E04408F0300B04E04402F07FF47E01121860907FD6E054F7F0221213771217F9907FD6E030E70A7F057E00121860121893120ACE220378 -:4018460035800000032E810000C185C181C108C100C106012200012400008E178F18E5181518AE17700215174E60081217E81217E880EB22E5152404F582E43514F583E07E -:4018860004FF4410907FD7F0EF4430F022907FD6E04401F07F0D7E00121860907FD6E054FEF022E5112402907841F090C000E0FF22E5112403907841F090C000E0FF22E597 -:4018C600112404907841F090C000E0FF22E5112405907841F090C000E0FF22E5112406907841F090C000E0FF22907841E511F090C000E0FF2253D8EF320012011001FFFFDE -:40190600FF40CD062A0100000102000409027400010100A032090400000EFF000000070501024000000705020240000007050302400000070504024000000705050240005B -:4019460000070506024000000705070240000007058102400001070582024000010705830240000107058402400001070585024000010705860240000107058702400001F3 -:401986000403090448034B00650079007300700061006E002C002000610020006400690076006900730069006F006E0020006F006600200049006E006E006F005300790040 -:4019C6007300200049006E0063002E0024034B00650079007300700061006E0020005500530041002D003400390057004C00430022035500530041002D00360035002000B5 -:401A060032003000300033006A0061006E0033003100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003E -:401A46000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060 -:401A86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020 -:401AC6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002177900021B31 -:151B06000400021727000217A000021B1000021B1400021578E0 -:00000001FF - - The firmware contained herein is - - Copyright (C) 1999-2003 - Keyspan, A division of InnoSys Incorporated ("Keyspan") - - as an unpublished work. This notice does not imply unrestricted or - public access to the source code from which this firmware image is - derived. Except as noted below this firmware image may not be - reproduced, used, sold or transferred to any third party without - Keyspan's prior written consent. All Rights Reserved. - - Permission is hereby granted for the distribution of this firmware - image as part of a Linux or other Open Source operating system kernel - in text or binary form as required. - - This firmware may not be modified and may only be used with - Keyspan hardware. Distribution and/or Modification of the - keyspan.c driver which includes this firmware, in whole or in - part, requires the inclusion of this statement." - -static char theFirmwareDate49[] = - "02/14/2002 02:37p 19,347 USA49"; - -static char theFirmwareDate65[] = - "01/31/2003 09:34a 19,331 USA65"; - diff --git a/firmware/keyspan_pda/keyspan_pda.HEX b/firmware/keyspan_pda/keyspan_pda.HEX deleted file mode 100644 index 6fcf02bb4b2d..000000000000 --- a/firmware/keyspan_pda/keyspan_pda.HEX +++ /dev/null @@ -1,83 +0,0 @@ -:03000000020200F9 -:0400230002055F0073 -:0400430002010000B6 -:050030000000000000CB -:10010000020296000200000002000000020000004F -:1001100002000000020000000200000002000000D7 -:1001200002000000020000000204610002048900D5 -:1002000075815EE4F532F533F530F531F534C20031 -:10021000C201A90074FE901000F0A3D9FC74FD90F7 -:100220001100F0A3D9FC7402907F9DF07400907FC0 -:1002300097F07486907F9EF0907F957403F0907F86 -:10024000AFE0D2E0F07401907FABF0907FAEF09021 -:100250007FAC7404F0907FAD7404F0907FC9F074AB -:1002600084907F98F07400F59875C8307B059120D4 -:10027000D2CA759850D2E8D2AFD2AC7400F586904D -:100280007FD67402F0792E7A007B00DBFEDAFAD991 -:10029000F67406F080FEC086C082C083C084C0852C -:1002A000C0E0E591C2E4F591907FAB7401F0907FDE -:1002B000E8E0F9A3E0FAA3E0FBA3E0FCE95460B4B2 -:1002C0000003020339B4406EBA000B12042040034D -:1002D00002040202040ABA010302040ABA02030277 -:1002E000040ABA0303020444BA041EBB000A907F46 -:1002F00095E04402F0020402907F98E054FDF090F3 -:100300007F95E054FDF0020402BA050302040ABA24 -:100310000619BB0008E533D395320203DEBB0108A2 -:10032000E532C395330203DE02040ABA07058B34B3 -:1003300002040202040A02040ABA0020B9801090E2 -:100340007F00E4F0A3F0907FB57402F0020402B9DC -:10035000820280EBB9810280E602040ABA010FBB77 -:10036000000302040ABB010302040202040ABA03E6 -:100370000FBB000302040ABB010302040202040AC9 -:10038000BA0656BC010F907FD47406F0907FD574E6 -:1003900012F0020402BC0212BB006F907FD47406FC -:1003A000F0907FD57424F0020402BC03297404C3C6 -:1003B0009B40576055EB2B9006442582F5827400D4 -:1003C0003583F583E0F9A3E0FA907FD4E9F0907FDC -:1003D000D5EAF002040202040ABA080F7401907F01 -:1003E00000F07401907FB5F0020402BA0903020420 -:1003F00002BA0A0574000203DEBA0B030204020209 -:10040000040A907FB47402F08009907FB4E0440144 -:10041000F08000D0E0D085D084D083D082D08632E6 -:10042000EB20E71EC3940A5019EB2324FEF58274D7 -:10043000053400F583E0F5CBF5CDA3E0F5CAF5CCA6 -:10044000C322D322B94111EB64FF5484FB907F98FF -:10045000E0547B4BF0020402907F9BE064FF0203B8 -:10046000DEC086C082C083C084C085C0E0E591C282 -:10047000E4F591907FA97404F01205A0D0E0D08536 -:10048000D084D083D082D08632C086C082C083C060 -:1004900084C085C0E0E591C2E4F591907FAA740420 -:1004A000F0907FC9E0F9E4F586907DC075851085F0 -:1004B0003284E005860584F0E584B53302800905C1 -:1004C000320586A3D9EC8000907FC9F0B131D0E02D -:1004D000D085D084D083D082D08632E4F586907FD8 -:1004E000BCE020E14B907D00E532F0A3E533F0A3C2 -:1004F000E530F0A3E531F0A3E430000104F0A305FA -:10050000869010007910E0A30586F0A30586D9F641 -:10051000058674FCF0A305869011007910E0A30510 -:1005200086F0A30586D9F6E4F586907FBD7426F0A3 -:1005300022200013E532B53301220533758310857F -:100540003382E0F599D2007400B5340122E533D34B -:100550009532C3953440F5753400D2010205A0C030 -:1005600086C082C083C084C085C0E0309907C2992C -:10057000C20012053430980512058AC298D0E0D026 -:1005800085D084D083D082D0863275831185308225 -:100590000582E599F0E582B53101220530B1A0224E -:1005A000907FB8E020E138200136E530B5310122F6 -:1005B000E4F5867583110586907E00F0A3058679A3 -:1005C00001E530B5310280100531853182E00586C4 -:1005D000F0A3058609B940E9907FB9E96001F022EE -:1005E000C201E4F586907E007401F0A37402F090DD -:1005F0007FB9F022C299F5993099FDC29922E55E42 -:10060000F63CFD8FFEC8FF64FFB2FFD9FFEDFFF39C -:10061000FFFA12010001FFFFFF40CD06040189AB84 -:1006200001020301090220000101008032090400D7 -:100630000002FFFFFF0007058203400001070502DB -:1006400002400000064C0650067206A0040300009B -:100650002203410043004D00450020007500730057 -:100660006200200077006900640067006500740084 -:1006700073002E03410043004D004500200055004B -:1006800053004200200073006500720069006100A1 -:100690006C0020007700690064006700650074004A -:0606A000060334003700E0 -:00000001FF diff --git a/firmware/keyspan_pda/keyspan_pda.S b/firmware/keyspan_pda/keyspan_pda.S deleted file mode 100644 index f3acc197a5ef..000000000000 --- a/firmware/keyspan_pda/keyspan_pda.S +++ /dev/null @@ -1,1124 +0,0 @@ -/* $Id: loop.s,v 1.23 2000/03/20 09:49:06 warner Exp $ - * - * Firmware for the Keyspan PDA Serial Adapter, a USB serial port based on - * the EzUSB microcontroller. - * - * (C) Copyright 2000 Brian Warner - * - * 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. - * - * "Keyspan PDA Serial Adapter" is probably a copyright of Keyspan, the - * company. - * - * This serial adapter is basically an EzUSB chip and an RS-232 line driver - * in a little widget that has a DB-9 on one end and a USB plug on the other. - * It uses the EzUSB's internal UART0 (using the pins from Port C) and timer2 - * as a baud-rate generator. The wiring is: - * PC0/RxD0 <- rxd (DB9 pin 2) PC4 <- dsr pin 6 - * PC1/TxD0 -> txd pin 3 PC5 <- ri pin 9 - * PC2 -> rts pin 7 PC6 <- dcd pin 1 - * PC3 <- cts pin 8 PC7 -> dtr pin 4 - * PB1 -> line driver standby - * - * The EzUSB register constants below come from their excellent documentation - * and sample code (which used to be available at www.anchorchips.com, but - * that has now been absorbed into Cypress' site and the CD-ROM contents - * don't appear to be available online anymore). If we get multiple - * EzUSB-based drivers into the kernel, it might be useful to pull them out - * into a separate .h file. - * - * THEORY OF OPERATION: - * - * There are two 256-byte ring buffers, one for tx, one for rx. - * - * EP2out is pure tx data. When it appears, the data is copied into the tx - * ring and serial transmission is started if it wasn't already running. The - * "tx buffer empty" interrupt may kick off another character if the ring - * still has data. If the host is tx-blocked because the ring filled up, - * it will request a "tx unthrottle" interrupt. If sending a serial character - * empties the ring below the desired threshold, we set a bit that will send - * up the tx unthrottle message as soon as the rx buffer becomes free. - * - * EP2in (interrupt) is used to send both rx chars and rx status messages - * (only "tx unthrottle" at this time) back up to the host. The first byte - * of the rx message indicates data (0) or status msg (1). Status messages - * are sent before any data. - * - * Incoming serial characters are put into the rx ring by the serial - * interrupt, and the EP2in buffer sent if it wasn't already in transit. - * When the EP2in buffer returns, the interrupt prompts us to send more - * rx chars (or status messages) if they are pending. - * - * Device control happens through "vendor specific" control messages on EP0. - * All messages are destined for the "Interface" (with the index always 0, - * so that if their two-port device might someday use similar firmware, we - * can use index=1 to refer to the second port). The messages defined are: - * - * bRequest = 0 : set baud/bits/parity - * 1 : unused - * 2 : reserved for setting HW flow control (CTSRTS) - * 3 : get/set "modem info" (pin states: DTR, RTS, DCD, RI, etc) - * 4 : set break (on/off) - * 5 : reserved for requesting interrupts on pin state change - * 6 : query buffer room or chars in tx buffer - * 7 : request tx unthrottle interrupt - * - * The host-side driver is set to recognize the device ID values stashed in - * serial EEPROM (0x06cd, 0x0103), program this firmware into place, then - * start it running. This firmware will use EzUSB's "renumeration" trick by - * simulating a bus disconnect, then reconnect with a different device ID - * (encoded in the desc_device descriptor below). The host driver then - * recognizes the new device ID and glues it to the real serial driver code. - * - * USEFUL DOCS: - * EzUSB Technical Reference Manual: - * 8051 manuals: everywhere, but try www.dalsemi.com because the EzUSB is - * basically the Dallas enhanced 8051 code. Remember that the EzUSB IO ports - * use totally different registers! - * USB 1.1 spec: www.usb.org - * - * HOW TO BUILD: - * gcc -x assembler-with-cpp -P -E -o keyspan_pda.asm keyspan_pda.s - * as31 -l keyspan_pda.asm - * mv keyspan_pda.obj keyspan_pda.hex - * perl ezusb_convert.pl keyspan_pda < keyspan_pda.hex > keyspan_pda_fw.h - * Get as31 from , and hack on it - * a bit to make it build. - * - * THANKS: - * Greg Kroah-Hartman, for coordinating the whole usb-serial thing. - * AnchorChips, for making such an incredibly useful little microcontroller. - * KeySpan, for making a handy, cheap ($40) widget that was so easy to take - * apart and trace with an ohmmeter. - * - * TODO: - * lots. grep for TODO. Interrupt safety needs stress-testing. Better flow - * control. Interrupting host upon change in DCD, etc, counting transitions. - * Need to find a safe device id to use (the one used by the Keyspan firmware - * under Windows would be ideal.. can anyone figure out what it is?). Parity. - * More baud rates. Oh, and the string-descriptor-length silicon bug - * workaround should be implemented, but I'm lazy, and the consequence is - * that the device name strings that show up in your kernel log will have - * lots of trailing binary garbage in them (appears as ????). Device strings - * should be made more accurate. - * - * Questions, bugs, patches to Brian. - * - * -Brian Warner - * - */ - -#define HIGH(x) (((x) & 0xff00) / 256) -#define LOW(x) ((x) & 0xff) - -#define dpl1 0x84 -#define dph1 0x85 -#define dps 0x86 - -;;; our bit assignments -#define TX_RUNNING 0 -#define DO_TX_UNTHROTTLE 1 - - ;; stack from 0x60 to 0x7f: should really set SP to 0x60-1, not 0x60 -#define STACK #0x60-1 - -#define EXIF 0x91 -#define EIE 0xe8 - .flag EUSB, EIE.0 - .flag ES0, IE.4 - -#define EP0CS #0x7fb4 -#define EP0STALLbit #0x01 -#define IN0BUF #0x7f00 -#define IN0BC #0x7fb5 -#define OUT0BUF #0x7ec0 -#define OUT0BC #0x7fc5 -#define IN2BUF #0x7e00 -#define IN2BC #0x7fb9 -#define IN2CS #0x7fb8 -#define OUT2BC #0x7fc9 -#define OUT2CS #0x7fc8 -#define OUT2BUF #0x7dc0 -#define IN4BUF #0x7d00 -#define IN4BC #0x7fbd -#define IN4CS #0x7fbc -#define OEB #0x7f9d -#define OUTB #0x7f97 -#define OEC #0x7f9e -#define OUTC #0x7f98 -#define PINSC #0x7f9b -#define PORTCCFG #0x7f95 -#define IN07IRQ #0x7fa9 -#define OUT07IRQ #0x7faa -#define IN07IEN #0x7fac -#define OUT07IEN #0x7fad -#define USBIRQ #0x7fab -#define USBIEN #0x7fae -#define USBBAV #0x7faf -#define USBCS #0x7fd6 -#define SUDPTRH #0x7fd4 -#define SUDPTRL #0x7fd5 -#define SETUPDAT #0x7fe8 - - ;; usb interrupt : enable is EIE.0 (0xe8), flag is EXIF.4 (0x91) - - .org 0 - ljmp start - ;; interrupt vectors - .org 23H - ljmp serial_int - .byte 0 - - .org 43H - ljmp USB_Jump_Table - .byte 0 ; filled in by the USB core - -;;; local variables. These are not initialized properly: do it by hand. - .org 30H -rx_ring_in: .byte 0 -rx_ring_out: .byte 0 -tx_ring_in: .byte 0 -tx_ring_out: .byte 0 -tx_unthrottle_threshold: .byte 0 - - .org 0x100H ; wants to be on a page boundary -USB_Jump_Table: - ljmp ISR_Sudav ; Setup Data Available - .byte 0 - ljmp 0 ; Start of Frame - .byte 0 - ljmp 0 ; Setup Data Loading - .byte 0 - ljmp 0 ; Global Suspend - .byte 0 - ljmp 0 ; USB Reset - .byte 0 - ljmp 0 ; Reserved - .byte 0 - ljmp 0 ; End Point 0 In - .byte 0 - ljmp 0 ; End Point 0 Out - .byte 0 - ljmp 0 ; End Point 1 In - .byte 0 - ljmp 0 ; End Point 1 Out - .byte 0 - ljmp ISR_Ep2in - .byte 0 - ljmp ISR_Ep2out - .byte 0 - - - .org 0x200 - -start: mov SP,STACK-1 ; set stack - ;; clear local variables - clr a - mov tx_ring_in, a - mov tx_ring_out, a - mov rx_ring_in, a - mov rx_ring_out, a - mov tx_unthrottle_threshold, a - clr TX_RUNNING - clr DO_TX_UNTHROTTLE - - ;; clear fifo with "fe" - mov r1, 0 - mov a, #0xfe - mov dptr, #tx_ring -clear_tx_ring_loop: - movx @dptr, a - inc dptr - djnz r1, clear_tx_ring_loop - - mov a, #0xfd - mov dptr, #rx_ring -clear_rx_ring_loop: - movx @dptr, a - inc dptr - djnz r1, clear_rx_ring_loop - -;;; turn on the RS-232 driver chip (bring the STANDBY pin low) - ;; set OEB.1 - mov a, #02H - mov dptr,OEB - movx @dptr,a - ;; clear PB1 - mov a, #00H - mov dptr,OUTB - movx @dptr,a - ;; set OEC.[127] - mov a, #0x86 - mov dptr,OEC - movx @dptr,a - ;; set PORTCCFG.[01] to route TxD0,RxD0 to serial port - mov dptr, PORTCCFG - mov a, #0x03 - movx @dptr, a - - ;; set up interrupts, autovectoring - mov dptr, USBBAV - movx a,@dptr - setb acc.0 ; AVEN bit to 0 - movx @dptr, a - - mov a,#0x01 ; enable SUDAV: setup data available (for ep0) - mov dptr, USBIRQ - movx @dptr, a ; clear SUDAVI - mov dptr, USBIEN - movx @dptr, a - - mov dptr, IN07IEN - mov a,#0x04 ; enable IN2 int - movx @dptr, a - - mov dptr, OUT07IEN - mov a,#0x04 ; enable OUT2 int - movx @dptr, a - mov dptr, OUT2BC - movx @dptr, a ; arm OUT2 - - mov a, #0x84 ; turn on RTS, DTR - mov dptr,OUTC - movx @dptr, a - ;; setup the serial port. 9600 8N1. - mov a,#01010011 ; mode 1, enable rx, clear int - mov SCON, a - ;; using timer2, in 16-bit baud-rate-generator mode - ;; (xtal 12MHz, internal fosc 24MHz) - ;; RCAP2H,RCAP2L = 65536 - fosc/(32*baud) - ;; 57600: 0xFFF2.F, say 0xFFF3 - ;; 9600: 0xFFB1.E, say 0xFFB2 - ;; 300: 0xF63C -#define BAUD 9600 -#define BAUD_TIMEOUT(rate) (65536 - (24 * 1000 * 1000) / (32 * rate)) -#define BAUD_HIGH(rate) HIGH(BAUD_TIMEOUT(rate)) -#define BAUD_LOW(rate) LOW(BAUD_TIMEOUT(rate)) - - mov T2CON, #030h ; rclk=1,tclk=1,cp=0,tr2=0(enable later) - mov r3, #5 - acall set_baud - setb TR2 - mov SCON, #050h - -#if 0 - mov r1, #0x40 - mov a, #0x41 -send: - mov SBUF, a - inc a - anl a, #0x3F - orl a, #0x40 -; xrl a, #0x02 -wait1: - jnb TI, wait1 - clr TI - djnz r1, send -;done: sjmp done - -#endif - - setb EUSB - setb EA - setb ES0 - ;acall dump_stat - - ;; hey, what say we RENUMERATE! (TRM p.62) - mov a, #0 - mov dps, a - mov dptr, USBCS - mov a, #0x02 ; DISCON=0, DISCOE=0, RENUM=1 - movx @dptr, a - ;; now presence pin is floating, simulating disconnect. wait 0.5s - mov r1, #46 -renum_wait1: - mov r2, #0 -renum_wait2: - mov r3, #0 -renum_wait3: - djnz r3, renum_wait3 - djnz r2, renum_wait2 - djnz r1, renum_wait1 ; wait about n*(256^2) 6MHz clocks - mov a, #0x06 ; DISCON=0, DISCOE=1, RENUM=1 - movx @dptr, a - ;; we are back online. the host device will now re-query us - - -main: sjmp main - - - -ISR_Sudav: - push dps - push dpl - push dph - push dpl1 - push dph1 - push acc - mov a,EXIF - clr acc.4 - mov EXIF,a ; clear INT2 first - mov dptr, USBIRQ ; clear USB int - mov a,#01h - movx @dptr,a - - ;; get request type - mov dptr, SETUPDAT - movx a, @dptr - mov r1, a ; r1 = bmRequestType - inc dptr - movx a, @dptr - mov r2, a ; r2 = bRequest - inc dptr - movx a, @dptr - mov r3, a ; r3 = wValueL - inc dptr - movx a, @dptr - mov r4, a ; r4 = wValueH - - ;; main switch on bmRequest.type: standard or vendor - mov a, r1 - anl a, #0x60 - cjne a, #0x00, setup_bmreq_type_not_standard - ;; standard request: now main switch is on bRequest - ljmp setup_bmreq_is_standard - -setup_bmreq_type_not_standard: - ;; a still has bmreq&0x60 - cjne a, #0x40, setup_bmreq_type_not_vendor - ;; Anchor reserves bRequest 0xa0-0xaf, we use small ones - ;; switch on bRequest. bmRequest will always be 0x41 or 0xc1 - cjne r2, #0x00, setup_ctrl_not_00 - ;; 00 is set baud, wValue[0] has baud rate index - lcall set_baud ; index in r3, carry set if error - jc setup_bmreq_type_not_standard__do_stall - ljmp setup_done_ack -setup_bmreq_type_not_standard__do_stall: - ljmp setup_stall -setup_ctrl_not_00: - cjne r2, #0x01, setup_ctrl_not_01 - ;; 01 is reserved for set bits (parity). TODO - ljmp setup_stall -setup_ctrl_not_01: - cjne r2, #0x02, setup_ctrl_not_02 - ;; 02 is set HW flow control. TODO - ljmp setup_stall -setup_ctrl_not_02: - cjne r2, #0x03, setup_ctrl_not_03 - ;; 03 is control pins (RTS, DTR). - ljmp control_pins ; will jump to setup_done_ack, - ; or setup_return_one_byte -setup_ctrl_not_03: - cjne r2, #0x04, setup_ctrl_not_04 - ;; 04 is send break (really "turn break on/off"). TODO - cjne r3, #0x00, setup_ctrl_do_break_on - ;; do break off: restore PORTCCFG.1 to reconnect TxD0 to serial port - mov dptr, PORTCCFG - movx a, @dptr - orl a, #0x02 - movx @dptr, a - ljmp setup_done_ack -setup_ctrl_do_break_on: - ;; do break on: clear PORTCCFG.0, set TxD high(?) (b1 low) - mov dptr, OUTC - movx a, @dptr - anl a, #0xfd ; ~0x02 - movx @dptr, a - mov dptr, PORTCCFG - movx a, @dptr - anl a, #0xfd ; ~0x02 - movx @dptr, a - ljmp setup_done_ack -setup_ctrl_not_04: - cjne r2, #0x05, setup_ctrl_not_05 - ;; 05 is set desired interrupt bitmap. TODO - ljmp setup_stall -setup_ctrl_not_05: - cjne r2, #0x06, setup_ctrl_not_06 - ;; 06 is query room - cjne r3, #0x00, setup_ctrl_06_not_00 - ;; 06, wValue[0]=0 is query write_room - mov a, tx_ring_out - setb c - subb a, tx_ring_in ; out-1-in = 255 - (in-out) - ljmp setup_return_one_byte -setup_ctrl_06_not_00: - cjne r3, #0x01, setup_ctrl_06_not_01 - ;; 06, wValue[0]=1 is query chars_in_buffer - mov a, tx_ring_in - clr c - subb a, tx_ring_out ; in-out - ljmp setup_return_one_byte -setup_ctrl_06_not_01: - ljmp setup_stall -setup_ctrl_not_06: - cjne r2, #0x07, setup_ctrl_not_07 - ;; 07 is request tx unthrottle interrupt - mov tx_unthrottle_threshold, r3; wValue[0] is threshold value - ljmp setup_done_ack -setup_ctrl_not_07: - ljmp setup_stall - -setup_bmreq_type_not_vendor: - ljmp setup_stall - - -setup_bmreq_is_standard: - cjne r2, #0x00, setup_breq_not_00 - ;; 00: Get_Status (sub-switch on bmRequestType: device, ep, int) - cjne r1, #0x80, setup_Get_Status_not_device - ;; Get_Status(device) - ;; are we self-powered? no. can we do remote wakeup? no - ;; so return two zero bytes. This is reusable -setup_return_two_zero_bytes: - mov dptr, IN0BUF - clr a - movx @dptr, a - inc dptr - movx @dptr, a - mov dptr, IN0BC - mov a, #2 - movx @dptr, a - ljmp setup_done_ack -setup_Get_Status_not_device: - cjne r1, #0x82, setup_Get_Status_not_endpoint - ;; Get_Status(endpoint) - ;; must get stall bit for ep[wIndexL], return two bytes, bit in lsb 0 - ;; for now: cheat. TODO - sjmp setup_return_two_zero_bytes -setup_Get_Status_not_endpoint: - cjne r1, #0x81, setup_Get_Status_not_interface - ;; Get_Status(interface): return two zeros - sjmp setup_return_two_zero_bytes -setup_Get_Status_not_interface: - ljmp setup_stall - -setup_breq_not_00: - cjne r2, #0x01, setup_breq_not_01 - ;; 01: Clear_Feature (sub-switch on wValueL: stall, remote wakeup) - cjne r3, #0x00, setup_Clear_Feature_not_stall - ;; Clear_Feature(stall). should clear a stall bit. TODO - ljmp setup_stall -setup_Clear_Feature_not_stall: - cjne r3, #0x01, setup_Clear_Feature_not_rwake - ;; Clear_Feature(remote wakeup). ignored. - ljmp setup_done_ack -setup_Clear_Feature_not_rwake: - ljmp setup_stall - -setup_breq_not_01: - cjne r2, #0x03, setup_breq_not_03 - ;; 03: Set_Feature (sub-switch on wValueL: stall, remote wakeup) - cjne r3, #0x00, setup_Set_Feature_not_stall - ;; Set_Feature(stall). Should set a stall bit. TODO - ljmp setup_stall -setup_Set_Feature_not_stall: - cjne r3, #0x01, setup_Set_Feature_not_rwake - ;; Set_Feature(remote wakeup). ignored. - ljmp setup_done_ack -setup_Set_Feature_not_rwake: - ljmp setup_stall - -setup_breq_not_03: - cjne r2, #0x06, setup_breq_not_06 - ;; 06: Get_Descriptor (s-switch on wValueH: dev, config[n], string[n]) - cjne r4, #0x01, setup_Get_Descriptor_not_device - ;; Get_Descriptor(device) - mov dptr, SUDPTRH - mov a, #HIGH(desc_device) - movx @dptr, a - mov dptr, SUDPTRL - mov a, #LOW(desc_device) - movx @dptr, a - ljmp setup_done_ack -setup_Get_Descriptor_not_device: - cjne r4, #0x02, setup_Get_Descriptor_not_config - ;; Get_Descriptor(config[n]) - cjne r3, #0x00, setup_stall; only handle n==0 - ;; Get_Descriptor(config[0]) - mov dptr, SUDPTRH - mov a, #HIGH(desc_config1) - movx @dptr, a - mov dptr, SUDPTRL - mov a, #LOW(desc_config1) - movx @dptr, a - ljmp setup_done_ack -setup_Get_Descriptor_not_config: - cjne r4, #0x03, setup_Get_Descriptor_not_string - ;; Get_Descriptor(string[wValueL]) - ;; if (wValueL >= maxstrings) stall - mov a, #((desc_strings_end-desc_strings)/2) - clr c - subb a,r3 ; a=4, r3 = 0..3 . if a<=0 then stall - jc setup_stall - jz setup_stall - mov a, r3 - add a, r3 ; a = 2*wValueL - mov dptr, #desc_strings - add a, dpl - mov dpl, a - mov a, #0 - addc a, dph - mov dph, a ; dph = desc_strings[a]. big endian! (handy) - ;; it looks like my adapter uses a revision of the EZUSB that - ;; contains "rev D errata number 8", as hinted in the EzUSB example - ;; code. I cannot find an actual errata description on the Cypress - ;; web site, but from the example code it looks like this bug causes - ;; the length of string descriptors to be read incorrectly, possibly - ;; sending back more characters than the descriptor has. The workaround - ;; is to manually send out all of the data. The consequence of not - ;; using the workaround is that the strings gathered by the kernel - ;; driver are too long and are filled with trailing garbage (including - ;; leftover strings). Writing this out by hand is a nuisance, so for - ;; now I will just live with the bug. - movx a, @dptr - mov r1, a - inc dptr - movx a, @dptr - mov r2, a - mov dptr, SUDPTRH - mov a, r1 - movx @dptr, a - mov dptr, SUDPTRL - mov a, r2 - movx @dptr, a - ;; done - ljmp setup_done_ack - -setup_Get_Descriptor_not_string: - ljmp setup_stall - -setup_breq_not_06: - cjne r2, #0x08, setup_breq_not_08 - ;; Get_Configuration. always 1. return one byte. - ;; this is reusable - mov a, #1 -setup_return_one_byte: - mov dptr, IN0BUF - movx @dptr, a - mov a, #1 - mov dptr, IN0BC - movx @dptr, a - ljmp setup_done_ack -setup_breq_not_08: - cjne r2, #0x09, setup_breq_not_09 - ;; 09: Set_Configuration. ignored. - ljmp setup_done_ack -setup_breq_not_09: - cjne r2, #0x0a, setup_breq_not_0a - ;; 0a: Get_Interface. get the current altsetting for int[wIndexL] - ;; since we only have one interface, ignore wIndexL, return a 0 - mov a, #0 - ljmp setup_return_one_byte -setup_breq_not_0a: - cjne r2, #0x0b, setup_breq_not_0b - ;; 0b: Set_Interface. set altsetting for interface[wIndexL]. ignored - ljmp setup_done_ack -setup_breq_not_0b: - ljmp setup_stall - - -setup_done_ack: - ;; now clear HSNAK - mov dptr, EP0CS - mov a, #0x02 - movx @dptr, a - sjmp setup_done -setup_stall: - ;; unhandled. STALL - ;EP0CS |= bmEPSTALL - mov dptr, EP0CS - movx a, @dptr - orl a, EP0STALLbit - movx @dptr, a - sjmp setup_done - -setup_done: - pop acc - pop dph1 - pop dpl1 - pop dph - pop dpl - pop dps - reti - -;;; ============================================================== - -set_baud: ; baud index in r3 - ;; verify a < 10 - mov a, r3 - jb ACC.7, set_baud__badbaud - clr c - subb a, #10 - jnc set_baud__badbaud - mov a, r3 - rl a ; a = index*2 - add a, #LOW(baud_table) - mov dpl, a - mov a, #HIGH(baud_table) - addc a, #0 - mov dph, a - ;; TODO: shut down xmit/receive - ;; TODO: wait for current xmit char to leave - ;; TODO: shut down timer to avoid partial-char glitch - movx a,@dptr ; BAUD_HIGH - mov RCAP2H, a - mov TH2, a - inc dptr - movx a,@dptr ; BAUD_LOW - mov RCAP2L, a - mov TL2, a - ;; TODO: restart xmit/receive - ;; TODO: reenable interrupts, resume tx if pending - clr c ; c=0: success - ret -set_baud__badbaud: - setb c ; c=1: failure - ret - -;;; ================================================== -control_pins: - cjne r1, #0x41, control_pins_in -control_pins_out: - mov a, r3 ; wValue[0] holds new bits: b7 is new DTR, b2 is new RTS - xrl a, #0xff ; 1 means active, 0V, +12V ? - anl a, #0x84 - mov r3, a - mov dptr, OUTC - movx a, @dptr ; only change bits 7 and 2 - anl a, #0x7b ; ~0x84 - orl a, r3 - movx @dptr, a ; other pins are inputs, bits ignored - ljmp setup_done_ack -control_pins_in: - mov dptr, PINSC - movx a, @dptr - xrl a, #0xff - ljmp setup_return_one_byte - -;;; ======================================== - -ISR_Ep2in: - push dps - push dpl - push dph - push dpl1 - push dph1 - push acc - mov a,EXIF - clr acc.4 - mov EXIF,a ; clear INT2 first - mov dptr, IN07IRQ ; clear USB int - mov a,#04h - movx @dptr,a - - ;; do stuff - lcall start_in - - pop acc - pop dph1 - pop dpl1 - pop dph - pop dpl - pop dps - reti - -ISR_Ep2out: - push dps - push dpl - push dph - push dpl1 - push dph1 - push acc - mov a,EXIF - clr acc.4 - mov EXIF,a ; clear INT2 first - mov dptr, OUT07IRQ ; clear USB int - mov a,#04h - movx @dptr,a - - ;; do stuff - - ;; copy data into buffer. for now, assume we will have enough space - mov dptr, OUT2BC ; get byte count - movx a,@dptr - mov r1, a - clr a - mov dps, a - mov dptr, OUT2BUF ; load DPTR0 with source - mov dph1, #HIGH(tx_ring) ; load DPTR1 with target - mov dpl1, tx_ring_in -OUT_loop: - movx a,@dptr ; read - inc dps ; switch to DPTR1: target - inc dpl1 ; target = tx_ring_in+1 - movx @dptr,a ; store - mov a,dpl1 - cjne a, tx_ring_out, OUT_no_overflow - sjmp OUT_overflow -OUT_no_overflow: - inc tx_ring_in ; tx_ring_in++ - inc dps ; switch to DPTR0: source - inc dptr - djnz r1, OUT_loop - sjmp OUT_done -OUT_overflow: - ;; signal overflow - ;; fall through -OUT_done: - ;; ack - mov dptr,OUT2BC - movx @dptr,a - - ;; start tx - acall maybe_start_tx - ;acall dump_stat - - pop acc - pop dph1 - pop dpl1 - pop dph - pop dpl - pop dps - reti - -dump_stat: - ;; fill in EP4in with a debugging message: - ;; tx_ring_in, tx_ring_out, rx_ring_in, rx_ring_out - ;; tx_active - ;; tx_ring[0..15] - ;; 0xfc - ;; rx_ring[0..15] - clr a - mov dps, a - - mov dptr, IN4CS - movx a, @dptr - jb acc.1, dump_stat__done; busy: cannot dump, old one still pending - mov dptr, IN4BUF - - mov a, tx_ring_in - movx @dptr, a - inc dptr - mov a, tx_ring_out - movx @dptr, a - inc dptr - - mov a, rx_ring_in - movx @dptr, a - inc dptr - mov a, rx_ring_out - movx @dptr, a - inc dptr - - clr a - jnb TX_RUNNING, dump_stat__no_tx_running - inc a -dump_stat__no_tx_running: - movx @dptr, a - inc dptr - ;; tx_ring[0..15] - inc dps - mov dptr, #tx_ring ; DPTR1: source - mov r1, #16 -dump_stat__tx_ring_loop: - movx a, @dptr - inc dptr - inc dps - movx @dptr, a - inc dptr - inc dps - djnz r1, dump_stat__tx_ring_loop - inc dps - - mov a, #0xfc - movx @dptr, a - inc dptr - - ;; rx_ring[0..15] - inc dps - mov dptr, #rx_ring ; DPTR1: source - mov r1, #16 -dump_stat__rx_ring_loop: - movx a, @dptr - inc dptr - inc dps - movx @dptr, a - inc dptr - inc dps - djnz r1, dump_stat__rx_ring_loop - - ;; now send it - clr a - mov dps, a - mov dptr, IN4BC - mov a, #38 - movx @dptr, a -dump_stat__done: - ret - -;;; ============================================================ - -maybe_start_tx: - ;; make sure the tx process is running. - jb TX_RUNNING, start_tx_done -start_tx: - ;; is there work to be done? - mov a, tx_ring_in - cjne a,tx_ring_out, start_tx__work - ret ; no work -start_tx__work: - ;; tx was not running. send the first character, setup the TI int - inc tx_ring_out ; [++tx_ring_out] - mov dph, #HIGH(tx_ring) - mov dpl, tx_ring_out - movx a, @dptr - mov sbuf, a - setb TX_RUNNING -start_tx_done: - ;; can we unthrottle the host tx process? - ;; step 1: do we care? - mov a, #0 - cjne a, tx_unthrottle_threshold, start_tx__maybe_unthrottle_tx - ;; nope -start_tx_really_done: - ret -start_tx__maybe_unthrottle_tx: - ;; step 2: is there now room? - mov a, tx_ring_out - setb c - subb a, tx_ring_in - ;; a is now write_room. If thresh >= a, we can unthrottle - clr c - subb a, tx_unthrottle_threshold - jc start_tx_really_done ; nope - ;; yes, we can unthrottle. remove the threshold and mark a request - mov tx_unthrottle_threshold, #0 - setb DO_TX_UNTHROTTLE - ;; prod rx, which will actually send the message when in2 becomes free - ljmp start_in - - -serial_int: - push dps - push dpl - push dph - push dpl1 - push dph1 - push acc - jnb TI, serial_int__not_tx - ;; tx finished. send another character if we have one - clr TI ; clear int - clr TX_RUNNING - lcall start_tx -serial_int__not_tx: - jnb RI, serial_int__not_rx - lcall get_rx_char - clr RI ; clear int -serial_int__not_rx: - ;; return - pop acc - pop dph1 - pop dpl1 - pop dph - pop dpl - pop dps - reti - -get_rx_char: - mov dph, #HIGH(rx_ring) - mov dpl, rx_ring_in - inc dpl ; target = rx_ring_in+1 - mov a, sbuf - movx @dptr, a - ;; check for overflow before incrementing rx_ring_in - mov a, dpl - cjne a, rx_ring_out, get_rx_char__no_overflow - ;; signal overflow - ret -get_rx_char__no_overflow: - inc rx_ring_in - ;; kick off USB INpipe - acall start_in - ret - -start_in: - ;; check if the inpipe is already running. - mov dptr, IN2CS - movx a, @dptr - jb acc.1, start_in__done; int will handle it - jb DO_TX_UNTHROTTLE, start_in__do_tx_unthrottle - ;; see if there is any work to do. a serial interrupt might occur - ;; during this sequence? - mov a, rx_ring_in - cjne a, rx_ring_out, start_in__have_work - ret ; nope -start_in__have_work: - ;; now copy as much data as possible into the pipe. 63 bytes max. - clr a - mov dps, a - mov dph, #HIGH(rx_ring) ; load DPTR0 with source - inc dps - mov dptr, IN2BUF ; load DPTR1 with target - movx @dptr, a ; in[0] signals that rest of IN is rx data - inc dptr - inc dps - ;; loop until we run out of data, or we have copied 64 bytes - mov r1, #1 ; INbuf size counter -start_in__loop: - mov a, rx_ring_in - cjne a, rx_ring_out, start_inlocal_irq_enablell_copying - sjmp start_in__kick -start_inlocal_irq_enablell_copying: - inc rx_ring_out - mov dpl, rx_ring_out - movx a, @dptr - inc dps - movx @dptr, a ; write into IN buffer - inc dptr - inc dps - inc r1 - cjne r1, #64, start_in__loop; loop -start_in__kick: - ;; either we ran out of data, or we copied 64 bytes. r1 has byte count - ;; kick off IN - mov dptr, IN2BC - mov a, r1 - jz start_in__done - movx @dptr, a - ;; done -start_in__done: - ;acall dump_stat - ret -start_in__do_tx_unthrottle: - ;; special sequence: send a tx unthrottle message - clr DO_TX_UNTHROTTLE - clr a - mov dps, a - mov dptr, IN2BUF - mov a, #1 - movx @dptr, a - inc dptr - mov a, #2 - movx @dptr, a - mov dptr, IN2BC - movx @dptr, a - ret - -putchar: - clr TI - mov SBUF, a -putchar_wait: - jnb TI, putchar_wait - clr TI - ret - - -baud_table: ; baud_high, then baud_low - ;; baud[0]: 110 - .byte BAUD_HIGH(110) - .byte BAUD_LOW(110) - ;; baud[1]: 300 - .byte BAUD_HIGH(300) - .byte BAUD_LOW(300) - ;; baud[2]: 1200 - .byte BAUD_HIGH(1200) - .byte BAUD_LOW(1200) - ;; baud[3]: 2400 - .byte BAUD_HIGH(2400) - .byte BAUD_LOW(2400) - ;; baud[4]: 4800 - .byte BAUD_HIGH(4800) - .byte BAUD_LOW(4800) - ;; baud[5]: 9600 - .byte BAUD_HIGH(9600) - .byte BAUD_LOW(9600) - ;; baud[6]: 19200 - .byte BAUD_HIGH(19200) - .byte BAUD_LOW(19200) - ;; baud[7]: 38400 - .byte BAUD_HIGH(38400) - .byte BAUD_LOW(38400) - ;; baud[8]: 57600 - .byte BAUD_HIGH(57600) - .byte BAUD_LOW(57600) - ;; baud[9]: 115200 - .byte BAUD_HIGH(115200) - .byte BAUD_LOW(115200) - -desc_device: - .byte 0x12, 0x01, 0x00, 0x01, 0xff, 0xff, 0xff, 0x40 - .byte 0xcd, 0x06, 0x04, 0x01, 0x89, 0xab, 1, 2, 3, 0x01 -;;; The "real" device id, which must match the host driver, is that -;;; "0xcd 0x06 0x04 0x01" sequence, which is 0x06cd, 0x0104 - -desc_config1: - .byte 0x09, 0x02, 0x20, 0x00, 0x01, 0x01, 0x00, 0x80, 0x32 - .byte 0x09, 0x04, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0x00 - .byte 0x07, 0x05, 0x82, 0x03, 0x40, 0x00, 0x01 - .byte 0x07, 0x05, 0x02, 0x02, 0x40, 0x00, 0x00 - -desc_strings: - .word string_langids, string_mfg, string_product, string_serial -desc_strings_end: - -string_langids: .byte string_langids_end-string_langids - .byte 3 - .word 0 -string_langids_end: - - ;; sigh. These strings are Unicode, meaning UTF16? 2 bytes each. Now - ;; *that* is a pain in the ass to encode. And they are little-endian - ;; too. Use this perl snippet to get the bytecodes: - /* while (<>) { - @c = split(//); - foreach $c (@c) { - printf("0x%02x, 0x00, ", ord($c)); - } - } - */ - -string_mfg: .byte string_mfg_end-string_mfg - .byte 3 -; .byte "ACME usb widgets" - .byte 0x41, 0x00, 0x43, 0x00, 0x4d, 0x00, 0x45, 0x00, 0x20, 0x00, 0x75, 0x00, 0x73, 0x00, 0x62, 0x00, 0x20, 0x00, 0x77, 0x00, 0x69, 0x00, 0x64, 0x00, 0x67, 0x00, 0x65, 0x00, 0x74, 0x00, 0x73, 0x00 -string_mfg_end: - -string_product: .byte string_product_end-string_product - .byte 3 -; .byte "ACME USB serial widget" - .byte 0x41, 0x00, 0x43, 0x00, 0x4d, 0x00, 0x45, 0x00, 0x20, 0x00, 0x55, 0x00, 0x53, 0x00, 0x42, 0x00, 0x20, 0x00, 0x73, 0x00, 0x65, 0x00, 0x72, 0x00, 0x69, 0x00, 0x61, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x77, 0x00, 0x69, 0x00, 0x64, 0x00, 0x67, 0x00, 0x65, 0x00, 0x74, 0x00 -string_product_end: - -string_serial: .byte string_serial_end-string_serial - .byte 3 -; .byte "47" - .byte 0x34, 0x00, 0x37, 0x00 -string_serial_end: - -;;; ring buffer memory - ;; tx_ring_in+1 is where the next input byte will go - ;; [tx_ring_out] has been sent - ;; if tx_ring_in == tx_ring_out, theres no work to do - ;; there are (tx_ring_in - tx_ring_out) chars to be written - ;; dont let _in lap _out - ;; cannot inc if tx_ring_in+1 == tx_ring_out - ;; write [tx_ring_in+1] then tx_ring_in++ - ;; if (tx_ring_in+1 == tx_ring_out), overflow - ;; else tx_ring_in++ - ;; read/send [tx_ring_out+1], then tx_ring_out++ - - ;; rx_ring_in works the same way - - .org 0x1000 -tx_ring: - .skip 0x100 ; 256 bytes -rx_ring: - .skip 0x100 ; 256 bytes - - - .END - diff --git a/firmware/keyspan_pda/xircom_pgs.HEX b/firmware/keyspan_pda/xircom_pgs.HEX deleted file mode 100644 index e9b00d70282f..000000000000 --- a/firmware/keyspan_pda/xircom_pgs.HEX +++ /dev/null @@ -1,87 +0,0 @@ -:03000000020200F9 -:0400230002059B0037 -:050030000000000000CB -:0400430002010000B6 -:100100000202BA000200000002000000020000002B -:1001100002000000020000000200000002000000D7 -:100120000200000002000000020485000204B90081 -:1002000075815EE4F532F533F530F531F534C20031 -:10021000C201A90074FE901000F0A3D9FC74FD90F7 -:100220001100F0A3D9FC907F9474BFF0907F957477 -:10023000EFF07410907F9EF07400907F98F07440FF -:10024000907F9DF07400907F97F07482907F9EF075 -:10025000907F957403F0907FAFE0D2E0F07401904E -:100260007FABF0907FAEF0907FAC7404F0907FADE8 -:100270007404F0907FC9F07407907FAFF074209001 -:100280007F9CF07480907F98F07453F59875C83017 -:100290007B059144D2CA759850D2E8D2AFD2AC74E3 -:1002A00000F586907FD67402F0792E7A007B00DB11 -:1002B000FEDAFAD9F67406F080FEC086C082C083EA -:1002C000C084C085C0E0E591C2E4F591907FAB7435 -:1002D00001F0907FE8E0F9A3E0FAA3E0FBA3E0FCE3 -:1002E000E95460B4000302035DB4406EBA000B121F -:1002F0000444400302042602042EBA010302042E21 -:10030000BA020302042EBA0303020468BA041EBB35 -:10031000000A907F95E04402F0020426907F98E066 -:1003200054FDF0907F95E054FDF0020426BA0503D9 -:1003300002042EBA0619BB0008E533D39532020435 -:1003400002BB0108E532C3953302040202042EBA4F -:1003500007058B3402042602042E02042EBA002064 -:10036000B98010907F00E4F0A3F0907FB57402F0A4 -:10037000020426B9820280EBB9810280E602042ED3 -:10038000BA010FBB000302042EBB010302042602C4 -:10039000042EBA030FBB000302042EBB01030204A8 -:1003A0002602042EBA0656BC010F907FD47406F0C4 -:1003B000907FD5745AF0020426BC0212BB006F90E5 -:1003C0007FD47406F0907FD5746CF0020426BC03D1 -:1003D000297404C39B40576055EB2B90068C2582F3 -:1003E000F58274003583F583E0F9A3E0FA907FD4B9 -:1003F000E9F0907FD5EAF002042602042EBA080F35 -:100400007401907F00F07401907FB5F0020426BA69 -:100410000903020426BA0A057400020402BA0B0397 -:1004200002042602042E907FB47402F08009907FAB -:10043000B4E04401F08000D0E0D085D084D083D0F7 -:1004400082D08632EB20E71EC3940A5019EB232496 -:1004500046F58274063400F583E0F5CBF5CDA3E0D4 -:10046000F5CAF5CCC322D322B94111EB64FF548005 -:10047000FB907F98E0547F4BF0020426907F9BE036 -:1004800064FF020402C086C082C083C084C085C0ED -:10049000E0E591C2E4F591907FA97404F074209096 -:1004A0007F9CF01205DC7420907F9CF0D0E0D0851A -:1004B000D084D083D082D08632C086C082C083C030 -:1004C00084C085C0E07410907F9CF0E591C2E4F593 -:1004D00091907FAA7404F0907FC9E0F9E4F58690CA -:1004E0007DC0758510853284E005860584F0E5843D -:1004F000B53302800905320586A3D9EC8000907FD0 -:10050000C9F0B16D7420907F9CF0D0E0D085D0848C -:10051000D083D082D08632E4F586907FBCE020E1A3 -:100520004B907D00E532F0A3E533F0A3E530F0A376 -:10053000E531F0A3E430000104F0A305869010003B -:100540007910E0A30586F0A30586D9F6058674FC2C -:10055000F0A305869011007910E0A30586F0A305AD -:1005600086D9F6E4F586907FBD7426F0222000132C -:10057000E532B53301220533758310853382E0F50A -:1005800099D2007400B5340122E533D39532C39576 -:100590003440F5753400D2010205DCC086C082C04B -:1005A00083C084C085C0E0309907C299C20012059B -:1005B000703098051205C6C298D0E0D085D084D09E -:1005C00083D082D086327583118530820582E59989 -:1005D000F0E582B53101220530B1DC227410907F44 -:1005E0009CF0907FB8E020E13E20013CE530B53141 -:1005F0000122E4F5867583110586907E00F0A3053F -:10060000867901E530B5310280100531853182E00F -:100610000586F0A3058609B940E97410907F9CF027 -:10062000907FB9E96001F022C201E4F586907E0076 -:100630007401F0A37402F0907FB9F022C299F59989 -:100640003099FDC29922E55EF63CFD8FFEC8FF643D -:10065000FFB2FFD9FFEDFFF3FFFA12010001FFFF28 -:10066000FF40CD06040189AB01020301090220000D -:1006700001010080320904000002FFFFFF000705AE -:10068000820340000107050202400000069406981C -:1006900006BA06E8040300002203410043004D00AF -:1006A000450020007500730062002000770069009B -:1006B000640067006500740073002E03410043006E -:1006C0004D004500200055005300420020007300FB -:1006D00065007200690061006C002000770069000D -:0E06E0006400670065007400060334003700F4 -:00000001FF diff --git a/firmware/keyspan_pda/xircom_pgs.S b/firmware/keyspan_pda/xircom_pgs.S deleted file mode 100644 index 0b79bbf0ae15..000000000000 --- a/firmware/keyspan_pda/xircom_pgs.S +++ /dev/null @@ -1,1192 +0,0 @@ -/* $Id: loop.s,v 1.23 2000/03/20 09:49:06 warner Exp $ - * - * Firmware for the Keyspan PDA Serial Adapter, a USB serial port based on - * the EzUSB microcontroller. - * - * (C) Copyright 2000 Brian Warner - * - * 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. - * - * "Keyspan PDA Serial Adapter" is probably a copyright of Keyspan, the - * company. - * - * This serial adapter is basically an EzUSB chip and an RS-232 line driver - * in a little widget that has a DB-9 on one end and a USB plug on the other. - * It uses the EzUSB's internal UART0 (using the pins from Port C) and timer2 - * as a baud-rate generator. The wiring is: - * PC0/RxD0 <- rxd (DB9 pin 2) PC4 <- dsr pin 6 - * PC1/TxD0 -> txd pin 3 PC5 <- ri pin 9 - * PC2 -> rts pin 7 PC6 <- dcd pin 1 - * PC3 <- cts pin 8 PC7 -> dtr pin 4 - * PB1 -> line driver standby - * - * The EzUSB register constants below come from their excellent documentation - * and sample code (which used to be available at www.anchorchips.com, but - * that has now been absorbed into Cypress' site and the CD-ROM contents - * don't appear to be available online anymore). If we get multiple - * EzUSB-based drivers into the kernel, it might be useful to pull them out - * into a separate .h file. - * - * THEORY OF OPERATION: - * - * There are two 256-byte ring buffers, one for tx, one for rx. - * - * EP2out is pure tx data. When it appears, the data is copied into the tx - * ring and serial transmission is started if it wasn't already running. The - * "tx buffer empty" interrupt may kick off another character if the ring - * still has data. If the host is tx-blocked because the ring filled up, - * it will request a "tx unthrottle" interrupt. If sending a serial character - * empties the ring below the desired threshold, we set a bit that will send - * up the tx unthrottle message as soon as the rx buffer becomes free. - * - * EP2in (interrupt) is used to send both rx chars and rx status messages - * (only "tx unthrottle" at this time) back up to the host. The first byte - * of the rx message indicates data (0) or status msg (1). Status messages - * are sent before any data. - * - * Incoming serial characters are put into the rx ring by the serial - * interrupt, and the EP2in buffer sent if it wasn't already in transit. - * When the EP2in buffer returns, the interrupt prompts us to send more - * rx chars (or status messages) if they are pending. - * - * Device control happens through "vendor specific" control messages on EP0. - * All messages are destined for the "Interface" (with the index always 0, - * so that if their two-port device might someday use similar firmware, we - * can use index=1 to refer to the second port). The messages defined are: - * - * bRequest = 0 : set baud/bits/parity - * 1 : unused - * 2 : reserved for setting HW flow control (CTSRTS) - * 3 : get/set "modem info" (pin states: DTR, RTS, DCD, RI, etc) - * 4 : set break (on/off) - * 5 : reserved for requesting interrupts on pin state change - * 6 : query buffer room or chars in tx buffer - * 7 : request tx unthrottle interrupt - * - * The host-side driver is set to recognize the device ID values stashed in - * serial EEPROM (0x06cd, 0x0103), program this firmware into place, then - * start it running. This firmware will use EzUSB's "renumeration" trick by - * simulating a bus disconnect, then reconnect with a different device ID - * (encoded in the desc_device descriptor below). The host driver then - * recognizes the new device ID and glues it to the real serial driver code. - * - * USEFUL DOCS: - * EzUSB Technical Reference Manual: - * 8051 manuals: everywhere, but try www.dalsemi.com because the EzUSB is - * basically the Dallas enhanced 8051 code. Remember that the EzUSB IO ports - * use totally different registers! - * USB 1.1 spec: www.usb.org - * - * HOW TO BUILD: - * gcc -x assembler-with-cpp -P -E -o keyspan_pda.asm keyspan_pda.s - * as31 -l keyspan_pda.asm - * mv keyspan_pda.obj keyspan_pda.hex - * perl ezusb_convert.pl keyspan_pda < keyspan_pda.hex > keyspan_pda_fw.h - * Get as31 from , and hack on it - * a bit to make it build. - * - * THANKS: - * Greg Kroah-Hartman, for coordinating the whole usb-serial thing. - * AnchorChips, for making such an incredibly useful little microcontroller. - * KeySpan, for making a handy, cheap ($40) widget that was so easy to take - * apart and trace with an ohmmeter. - * - * TODO: - * lots. grep for TODO. Interrupt safety needs stress-testing. Better flow - * control. Interrupting host upon change in DCD, etc, counting transitions. - * Need to find a safe device id to use (the one used by the Keyspan firmware - * under Windows would be ideal.. can anyone figure out what it is?). Parity. - * More baud rates. Oh, and the string-descriptor-length silicon bug - * workaround should be implemented, but I'm lazy, and the consequence is - * that the device name strings that show up in your kernel log will have - * lots of trailing binary garbage in them (appears as ????). Device strings - * should be made more accurate. - * - * Questions, bugs, patches to Brian. - * - * -Brian Warner - * - */ - -#define HIGH(x) (((x) & 0xff00) / 256) -#define LOW(x) ((x) & 0xff) - -#define dpl1 0x84 -#define dph1 0x85 -#define dps 0x86 - -;;; our bit assignments -#define TX_RUNNING 0 -#define DO_TX_UNTHROTTLE 1 - - ;; stack from 0x60 to 0x7f: should really set SP to 0x60-1, not 0x60 -#define STACK #0x60-1 - -#define EXIF 0x91 -#define EIE 0xe8 - .flag EUSB, EIE.0 - .flag ES0, IE.4 - -#define EP0CS #0x7fb4 -#define EP0STALLbit #0x01 -#define IN0BUF #0x7f00 -#define IN0BC #0x7fb5 -#define OUT0BUF #0x7ec0 -#define OUT0BC #0x7fc5 -#define IN2BUF #0x7e00 -#define IN2BC #0x7fb9 -#define IN2CS #0x7fb8 -#define OUT2BC #0x7fc9 -#define OUT2CS #0x7fc8 -#define OUT2BUF #0x7dc0 -#define IN4BUF #0x7d00 -#define IN4BC #0x7fbd -#define IN4CS #0x7fbc -#define OEB #0x7f9d -#define OUTB #0x7f97 -#define OEC #0x7f9e -#define OUTC #0x7f98 -#define PINSC #0x7f9b -#define PORTBCFG #0x7f94 -#define PORTCCFG #0x7f95 -#define OEA #0x7f9c -#define IN07IRQ #0x7fa9 -#define OUT07IRQ #0x7faa -#define IN07IEN #0x7fac -#define OUT07IEN #0x7fad -#define USBIRQ #0x7fab -#define USBIEN #0x7fae -#define USBBAV #0x7faf -#define USBCS #0x7fd6 -#define SUDPTRH #0x7fd4 -#define SUDPTRL #0x7fd5 -#define SETUPDAT #0x7fe8 - - ;; usb interrupt : enable is EIE.0 (0xe8), flag is EXIF.4 (0x91) - - .org 0 - ljmp start - ;; interrupt vectors - .org 23H - ljmp serial_int - .byte 0 - - .org 43H - ljmp USB_Jump_Table - .byte 0 ; filled in by the USB core - -;;; local variables. These are not initialized properly: do it by hand. - .org 30H -rx_ring_in: .byte 0 -rx_ring_out: .byte 0 -tx_ring_in: .byte 0 -tx_ring_out: .byte 0 -tx_unthrottle_threshold: .byte 0 - - .org 0x100H ; wants to be on a page boundary -USB_Jump_Table: - ljmp ISR_Sudav ; Setup Data Available - .byte 0 - ljmp 0 ; Start of Frame - .byte 0 - ljmp 0 ; Setup Data Loading - .byte 0 - ljmp 0 ; Global Suspend - .byte 0 - ljmp 0 ; USB Reset - .byte 0 - ljmp 0 ; Reserved - .byte 0 - ljmp 0 ; End Point 0 In - .byte 0 - ljmp 0 ; End Point 0 Out - .byte 0 - ljmp 0 ; End Point 1 In - .byte 0 - ljmp 0 ; End Point 1 Out - .byte 0 - ljmp ISR_Ep2in - .byte 0 - ljmp ISR_Ep2out - .byte 0 - - - .org 0x200 - -start: mov SP,STACK-1 ; set stack - ;; clear local variables - clr a - mov tx_ring_in, a - mov tx_ring_out, a - mov rx_ring_in, a - mov rx_ring_out, a - mov tx_unthrottle_threshold, a - clr TX_RUNNING - clr DO_TX_UNTHROTTLE - - ;; clear fifo with "fe" - mov r1, 0 - mov a, #0xfe - mov dptr, #tx_ring -clear_tx_ring_loop: - movx @dptr, a - inc dptr - djnz r1, clear_tx_ring_loop - - mov a, #0xfd - mov dptr, #rx_ring -clear_rx_ring_loop: - movx @dptr, a - inc dptr - djnz r1, clear_rx_ring_loop - -;;; turn on the RS-232 driver chip (bring the STANDBY pin low) -;;; on Xircom the STANDBY is wired to PB6 and PC4 - mov dptr, PORTBCFG - mov a, #0xBf - movx @dptr, a - mov dptr, PORTCCFG - mov a, #0xef - movx @dptr, a - - ;; set OEC.4 - mov a, #0x10 - mov dptr,OEC - movx @dptr,a - - ;; clear PC4 - mov a, #0x00 - mov dptr,OUTC - movx @dptr,a - - ;; set OEB.6 - mov a, #0x40 - mov dptr,OEB - movx @dptr,a - - ;; clear PB6 - mov a, #0x00 - mov dptr,OUTB - movx @dptr,a - - ;; set OEC.[17] - mov a, #0x82 - mov dptr,OEC - movx @dptr,a - - - ;; set PORTCCFG.[01] to route TxD0,RxD0 to serial port - mov dptr, PORTCCFG - mov a, #0x03 - movx @dptr, a - - ;; set up interrupts, autovectoring - ;; set BKPT - mov dptr, USBBAV - movx a,@dptr - setb acc.0 ; AVEN bit to 0 - movx @dptr, a - - mov a,#0x01 ; enable SUDAV: setup data available (for ep0) - mov dptr, USBIRQ - movx @dptr, a ; clear SUDAVI - mov dptr, USBIEN - movx @dptr, a - - mov dptr, IN07IEN - mov a,#0x04 ; enable IN2 int - movx @dptr, a - - mov dptr, OUT07IEN - mov a,#0x04 ; enable OUT2 int - movx @dptr, a - mov dptr, OUT2BC - movx @dptr, a ; arm OUT2 - -;; mov a, #0x84 ; turn on RTS, DTR -;; mov dptr,OUTC -;; movx @dptr, a - - mov a, #0x7 ; turn on DTR - mov dptr,USBBAV - movx @dptr, a - - mov a, #0x20 ; turn on the RED led - mov dptr,OEA - movx @dptr, a - - mov a, #0x80 ; turn on RTS - mov dptr,OUTC - movx @dptr, a - - ;; setup the serial port. 9600 8N1. - mov a,#0x53 ; mode 1, enable rx, clear int - mov SCON, a - ;; using timer2, in 16-bit baud-rate-generator mode - ;; (xtal 12MHz, internal fosc 24MHz) - ;; RCAP2H,RCAP2L = 65536 - fosc/(32*baud) - ;; 57600: 0xFFF2.F, say 0xFFF3 - ;; 9600: 0xFFB1.E, say 0xFFB2 - ;; 300: 0xF63C -#define BAUD 9600 -#define BAUD_TIMEOUT(rate) (65536 - (24 * 1000 * 1000) / (32 * rate)) -#define BAUD_HIGH(rate) HIGH(BAUD_TIMEOUT(rate)) -#define BAUD_LOW(rate) LOW(BAUD_TIMEOUT(rate)) - - mov T2CON, #030h ; rclk=1,tclk=1,cp=0,tr2=0(enable later) - mov r3, #5 - acall set_baud - setb TR2 - mov SCON, #050h - -#if 0 - mov r1, #0x40 - mov a, #0x41 -send: - mov SBUF, a - inc a - anl a, #0x3F - orl a, #0x40 -; xrl a, #0x02 -wait1: - jnb TI, wait1 - clr TI - djnz r1, send -;done: sjmp done - -#endif - - setb EUSB - setb EA - setb ES0 - ;acall dump_stat - - ;; hey, what say we RENUMERATE! (TRM p.62) - mov a, #0 - mov dps, a - mov dptr, USBCS - mov a, #0x02 ; DISCON=0, DISCOE=0, RENUM=1 - movx @dptr, a - ;; now presence pin is floating, simulating disconnect. wait 0.5s - mov r1, #46 -renum_wait1: - mov r2, #0 -renum_wait2: - mov r3, #0 -renum_wait3: - djnz r3, renum_wait3 - djnz r2, renum_wait2 - djnz r1, renum_wait1 ; wait about n*(256^2) 6MHz clocks - mov a, #0x06 ; DISCON=0, DISCOE=1, RENUM=1 - movx @dptr, a - ;; we are back online. the host device will now re-query us - - -main: sjmp main - - - -ISR_Sudav: - push dps - push dpl - push dph - push dpl1 - push dph1 - push acc - mov a,EXIF - clr acc.4 - mov EXIF,a ; clear INT2 first - mov dptr, USBIRQ ; clear USB int - mov a,#01h - movx @dptr,a - - ;; get request type - mov dptr, SETUPDAT - movx a, @dptr - mov r1, a ; r1 = bmRequestType - inc dptr - movx a, @dptr - mov r2, a ; r2 = bRequest - inc dptr - movx a, @dptr - mov r3, a ; r3 = wValueL - inc dptr - movx a, @dptr - mov r4, a ; r4 = wValueH - - ;; main switch on bmRequest.type: standard or vendor - mov a, r1 - anl a, #0x60 - cjne a, #0x00, setup_bmreq_type_not_standard - ;; standard request: now main switch is on bRequest - ljmp setup_bmreq_is_standard - -setup_bmreq_type_not_standard: - ;; a still has bmreq&0x60 - cjne a, #0x40, setup_bmreq_type_not_vendor - ;; Anchor reserves bRequest 0xa0-0xaf, we use small ones - ;; switch on bRequest. bmRequest will always be 0x41 or 0xc1 - cjne r2, #0x00, setup_ctrl_not_00 - ;; 00 is set baud, wValue[0] has baud rate index - lcall set_baud ; index in r3, carry set if error - jc setup_bmreq_type_not_standard__do_stall - ljmp setup_done_ack -setup_bmreq_type_not_standard__do_stall: - ljmp setup_stall -setup_ctrl_not_00: - cjne r2, #0x01, setup_ctrl_not_01 - ;; 01 is reserved for set bits (parity). TODO - ljmp setup_stall -setup_ctrl_not_01: - cjne r2, #0x02, setup_ctrl_not_02 - ;; 02 is set HW flow control. TODO - ljmp setup_stall -setup_ctrl_not_02: - cjne r2, #0x03, setup_ctrl_not_03 - ;; 03 is control pins (RTS, DTR). - ljmp control_pins ; will jump to setup_done_ack, - ; or setup_return_one_byte -setup_ctrl_not_03: - cjne r2, #0x04, setup_ctrl_not_04 - ;; 04 is send break (really "turn break on/off"). TODO - cjne r3, #0x00, setup_ctrl_do_break_on - ;; do break off: restore PORTCCFG.1 to reconnect TxD0 to serial port - mov dptr, PORTCCFG - movx a, @dptr - orl a, #0x02 - movx @dptr, a - ljmp setup_done_ack -setup_ctrl_do_break_on: - ;; do break on: clear PORTCCFG.0, set TxD high(?) (b1 low) - mov dptr, OUTC - movx a, @dptr - anl a, #0xfd ; ~0x02 - movx @dptr, a - mov dptr, PORTCCFG - movx a, @dptr - anl a, #0xfd ; ~0x02 - movx @dptr, a - ljmp setup_done_ack -setup_ctrl_not_04: - cjne r2, #0x05, setup_ctrl_not_05 - ;; 05 is set desired interrupt bitmap. TODO - ljmp setup_stall -setup_ctrl_not_05: - cjne r2, #0x06, setup_ctrl_not_06 - ;; 06 is query room - cjne r3, #0x00, setup_ctrl_06_not_00 - ;; 06, wValue[0]=0 is query write_room - mov a, tx_ring_out - setb c - subb a, tx_ring_in ; out-1-in = 255 - (in-out) - ljmp setup_return_one_byte -setup_ctrl_06_not_00: - cjne r3, #0x01, setup_ctrl_06_not_01 - ;; 06, wValue[0]=1 is query chars_in_buffer - mov a, tx_ring_in - clr c - subb a, tx_ring_out ; in-out - ljmp setup_return_one_byte -setup_ctrl_06_not_01: - ljmp setup_stall -setup_ctrl_not_06: - cjne r2, #0x07, setup_ctrl_not_07 - ;; 07 is request tx unthrottle interrupt - mov tx_unthrottle_threshold, r3; wValue[0] is threshold value - ljmp setup_done_ack -setup_ctrl_not_07: - ljmp setup_stall - -setup_bmreq_type_not_vendor: - ljmp setup_stall - - -setup_bmreq_is_standard: - cjne r2, #0x00, setup_breq_not_00 - ;; 00: Get_Status (sub-switch on bmRequestType: device, ep, int) - cjne r1, #0x80, setup_Get_Status_not_device - ;; Get_Status(device) - ;; are we self-powered? no. can we do remote wakeup? no - ;; so return two zero bytes. This is reusable -setup_return_two_zero_bytes: - mov dptr, IN0BUF - clr a - movx @dptr, a - inc dptr - movx @dptr, a - mov dptr, IN0BC - mov a, #2 - movx @dptr, a - ljmp setup_done_ack -setup_Get_Status_not_device: - cjne r1, #0x82, setup_Get_Status_not_endpoint - ;; Get_Status(endpoint) - ;; must get stall bit for ep[wIndexL], return two bytes, bit in lsb 0 - ;; for now: cheat. TODO - sjmp setup_return_two_zero_bytes -setup_Get_Status_not_endpoint: - cjne r1, #0x81, setup_Get_Status_not_interface - ;; Get_Status(interface): return two zeros - sjmp setup_return_two_zero_bytes -setup_Get_Status_not_interface: - ljmp setup_stall - -setup_breq_not_00: - cjne r2, #0x01, setup_breq_not_01 - ;; 01: Clear_Feature (sub-switch on wValueL: stall, remote wakeup) - cjne r3, #0x00, setup_Clear_Feature_not_stall - ;; Clear_Feature(stall). should clear a stall bit. TODO - ljmp setup_stall -setup_Clear_Feature_not_stall: - cjne r3, #0x01, setup_Clear_Feature_not_rwake - ;; Clear_Feature(remote wakeup). ignored. - ljmp setup_done_ack -setup_Clear_Feature_not_rwake: - ljmp setup_stall - -setup_breq_not_01: - cjne r2, #0x03, setup_breq_not_03 - ;; 03: Set_Feature (sub-switch on wValueL: stall, remote wakeup) - cjne r3, #0x00, setup_Set_Feature_not_stall - ;; Set_Feature(stall). Should set a stall bit. TODO - ljmp setup_stall -setup_Set_Feature_not_stall: - cjne r3, #0x01, setup_Set_Feature_not_rwake - ;; Set_Feature(remote wakeup). ignored. - ljmp setup_done_ack -setup_Set_Feature_not_rwake: - ljmp setup_stall - -setup_breq_not_03: - cjne r2, #0x06, setup_breq_not_06 - ;; 06: Get_Descriptor (s-switch on wValueH: dev, config[n], string[n]) - cjne r4, #0x01, setup_Get_Descriptor_not_device - ;; Get_Descriptor(device) - mov dptr, SUDPTRH - mov a, #HIGH(desc_device) - movx @dptr, a - mov dptr, SUDPTRL - mov a, #LOW(desc_device) - movx @dptr, a - ljmp setup_done_ack -setup_Get_Descriptor_not_device: - cjne r4, #0x02, setup_Get_Descriptor_not_config - ;; Get_Descriptor(config[n]) - cjne r3, #0x00, setup_stall; only handle n==0 - ;; Get_Descriptor(config[0]) - mov dptr, SUDPTRH - mov a, #HIGH(desc_config1) - movx @dptr, a - mov dptr, SUDPTRL - mov a, #LOW(desc_config1) - movx @dptr, a - ljmp setup_done_ack -setup_Get_Descriptor_not_config: - cjne r4, #0x03, setup_Get_Descriptor_not_string - ;; Get_Descriptor(string[wValueL]) - ;; if (wValueL >= maxstrings) stall - mov a, #((desc_strings_end-desc_strings)/2) - clr c - subb a,r3 ; a=4, r3 = 0..3 . if a<=0 then stall - jc setup_stall - jz setup_stall - mov a, r3 - add a, r3 ; a = 2*wValueL - mov dptr, #desc_strings - add a, dpl - mov dpl, a - mov a, #0 - addc a, dph - mov dph, a ; dph = desc_strings[a]. big endian! (handy) - ;; it looks like my adapter uses a revision of the EZUSB that - ;; contains "rev D errata number 8", as hinted in the EzUSB example - ;; code. I cannot find an actual errata description on the Cypress - ;; web site, but from the example code it looks like this bug causes - ;; the length of string descriptors to be read incorrectly, possibly - ;; sending back more characters than the descriptor has. The workaround - ;; is to manually send out all of the data. The consequence of not - ;; using the workaround is that the strings gathered by the kernel - ;; driver are too long and are filled with trailing garbage (including - ;; leftover strings). Writing this out by hand is a nuisance, so for - ;; now I will just live with the bug. - movx a, @dptr - mov r1, a - inc dptr - movx a, @dptr - mov r2, a - mov dptr, SUDPTRH - mov a, r1 - movx @dptr, a - mov dptr, SUDPTRL - mov a, r2 - movx @dptr, a - ;; done - ljmp setup_done_ack - -setup_Get_Descriptor_not_string: - ljmp setup_stall - -setup_breq_not_06: - cjne r2, #0x08, setup_breq_not_08 - ;; Get_Configuration. always 1. return one byte. - ;; this is reusable - mov a, #1 -setup_return_one_byte: - mov dptr, IN0BUF - movx @dptr, a - mov a, #1 - mov dptr, IN0BC - movx @dptr, a - ljmp setup_done_ack -setup_breq_not_08: - cjne r2, #0x09, setup_breq_not_09 - ;; 09: Set_Configuration. ignored. - ljmp setup_done_ack -setup_breq_not_09: - cjne r2, #0x0a, setup_breq_not_0a - ;; 0a: Get_Interface. get the current altsetting for int[wIndexL] - ;; since we only have one interface, ignore wIndexL, return a 0 - mov a, #0 - ljmp setup_return_one_byte -setup_breq_not_0a: - cjne r2, #0x0b, setup_breq_not_0b - ;; 0b: Set_Interface. set altsetting for interface[wIndexL]. ignored - ljmp setup_done_ack -setup_breq_not_0b: - ljmp setup_stall - - -setup_done_ack: - ;; now clear HSNAK - mov dptr, EP0CS - mov a, #0x02 - movx @dptr, a - sjmp setup_done -setup_stall: - ;; unhandled. STALL - ;EP0CS |= bmEPSTALL - mov dptr, EP0CS - movx a, @dptr - orl a, EP0STALLbit - movx @dptr, a - sjmp setup_done - -setup_done: - pop acc - pop dph1 - pop dpl1 - pop dph - pop dpl - pop dps - reti - -;;; ============================================================== - -set_baud: ; baud index in r3 - ;; verify a < 10 - mov a, r3 - jb ACC.7, set_baud__badbaud - clr c - subb a, #10 - jnc set_baud__badbaud - mov a, r3 - rl a ; a = index*2 - add a, #LOW(baud_table) - mov dpl, a - mov a, #HIGH(baud_table) - addc a, #0 - mov dph, a - ;; TODO: shut down xmit/receive - ;; TODO: wait for current xmit char to leave - ;; TODO: shut down timer to avoid partial-char glitch - movx a,@dptr ; BAUD_HIGH - mov RCAP2H, a - mov TH2, a - inc dptr - movx a,@dptr ; BAUD_LOW - mov RCAP2L, a - mov TL2, a - ;; TODO: restart xmit/receive - ;; TODO: reenable interrupts, resume tx if pending - clr c ; c=0: success - ret -set_baud__badbaud: - setb c ; c=1: failure - ret - -;;; ================================================== -control_pins: - cjne r1, #0x41, control_pins_in -control_pins_out: - ;TODO BKPT is DTR - mov a, r3 ; wValue[0] holds new bits: b7 is new RTS - xrl a, #0xff ; 1 means active, 0V, +12V ? - anl a, #0x80 - mov r3, a - mov dptr, OUTC - movx a, @dptr ; only change bit 7 - anl a, #0x7F ; ~0x84 - orl a, r3 - movx @dptr, a ; other pins are inputs, bits ignored - ljmp setup_done_ack -control_pins_in: - mov dptr, PINSC - movx a, @dptr - xrl a, #0xff - ljmp setup_return_one_byte - -;;; ======================================== - -ISR_Ep2in: - push dps - push dpl - push dph - push dpl1 - push dph1 - push acc - mov a,EXIF - clr acc.4 - mov EXIF,a ; clear INT2 first - mov dptr, IN07IRQ ; clear USB int - mov a,#04h - movx @dptr,a - - mov a, #0x20 ; Turn off the green LED - mov dptr,OEA - movx @dptr, a - - - ;; do stuff - lcall start_in - - mov a, #0x20 ; Turn off the green LED - mov dptr,OEA - movx @dptr, a - - - - pop acc - pop dph1 - pop dpl1 - pop dph - pop dpl - pop dps - reti - -ISR_Ep2out: - push dps - push dpl - push dph - push dpl1 - push dph1 - push acc - - mov a, #0x10 ; Turn the green LED - mov dptr,OEA - movx @dptr, a - - - - mov a,EXIF - clr acc.4 - mov EXIF,a ; clear INT2 first - mov dptr, OUT07IRQ ; clear USB int - mov a,#04h - movx @dptr,a - - ;; do stuff - - ;; copy data into buffer. for now, assume we will have enough space - mov dptr, OUT2BC ; get byte count - movx a,@dptr - mov r1, a - clr a - mov dps, a - mov dptr, OUT2BUF ; load DPTR0 with source - mov dph1, #HIGH(tx_ring) ; load DPTR1 with target - mov dpl1, tx_ring_in -OUT_loop: - movx a,@dptr ; read - inc dps ; switch to DPTR1: target - inc dpl1 ; target = tx_ring_in+1 - movx @dptr,a ; store - mov a,dpl1 - cjne a, tx_ring_out, OUT_no_overflow - sjmp OUT_overflow -OUT_no_overflow: - inc tx_ring_in ; tx_ring_in++ - inc dps ; switch to DPTR0: source - inc dptr - djnz r1, OUT_loop - sjmp OUT_done -OUT_overflow: - ;; signal overflow - ;; fall through -OUT_done: - ;; ack - mov dptr,OUT2BC - movx @dptr,a - - ;; start tx - acall maybe_start_tx - ;acall dump_stat - - mov a, #0x20 ; Turn off the green LED - mov dptr,OEA - movx @dptr, a - - pop acc - pop dph1 - pop dpl1 - pop dph - pop dpl - pop dps - reti - -dump_stat: - ;; fill in EP4in with a debugging message: - ;; tx_ring_in, tx_ring_out, rx_ring_in, rx_ring_out - ;; tx_active - ;; tx_ring[0..15] - ;; 0xfc - ;; rx_ring[0..15] - clr a - mov dps, a - - mov dptr, IN4CS - movx a, @dptr - jb acc.1, dump_stat__done; busy: cannot dump, old one still pending - mov dptr, IN4BUF - - mov a, tx_ring_in - movx @dptr, a - inc dptr - mov a, tx_ring_out - movx @dptr, a - inc dptr - - mov a, rx_ring_in - movx @dptr, a - inc dptr - mov a, rx_ring_out - movx @dptr, a - inc dptr - - clr a - jnb TX_RUNNING, dump_stat__no_tx_running - inc a -dump_stat__no_tx_running: - movx @dptr, a - inc dptr - ;; tx_ring[0..15] - inc dps - mov dptr, #tx_ring ; DPTR1: source - mov r1, #16 -dump_stat__tx_ring_loop: - movx a, @dptr - inc dptr - inc dps - movx @dptr, a - inc dptr - inc dps - djnz r1, dump_stat__tx_ring_loop - inc dps - - mov a, #0xfc - movx @dptr, a - inc dptr - - ;; rx_ring[0..15] - inc dps - mov dptr, #rx_ring ; DPTR1: source - mov r1, #16 -dump_stat__rx_ring_loop: - movx a, @dptr - inc dptr - inc dps - movx @dptr, a - inc dptr - inc dps - djnz r1, dump_stat__rx_ring_loop - - ;; now send it - clr a - mov dps, a - mov dptr, IN4BC - mov a, #38 - movx @dptr, a -dump_stat__done: - ret - -;;; ============================================================ - -maybe_start_tx: - ;; make sure the tx process is running. - jb TX_RUNNING, start_tx_done -start_tx: - ;; is there work to be done? - mov a, tx_ring_in - cjne a,tx_ring_out, start_tx__work - ret ; no work -start_tx__work: - ;; tx was not running. send the first character, setup the TI int - inc tx_ring_out ; [++tx_ring_out] - mov dph, #HIGH(tx_ring) - mov dpl, tx_ring_out - movx a, @dptr - mov sbuf, a - setb TX_RUNNING -start_tx_done: - ;; can we unthrottle the host tx process? - ;; step 1: do we care? - mov a, #0 - cjne a, tx_unthrottle_threshold, start_tx__maybe_unthrottle_tx - ;; nope -start_tx_really_done: - ret -start_tx__maybe_unthrottle_tx: - ;; step 2: is there now room? - mov a, tx_ring_out - setb c - subb a, tx_ring_in - ;; a is now write_room. If thresh >= a, we can unthrottle - clr c - subb a, tx_unthrottle_threshold - jc start_tx_really_done ; nope - ;; yes, we can unthrottle. remove the threshold and mark a request - mov tx_unthrottle_threshold, #0 - setb DO_TX_UNTHROTTLE - ;; prod rx, which will actually send the message when in2 becomes free - ljmp start_in - - -serial_int: - push dps - push dpl - push dph - push dpl1 - push dph1 - push acc - jnb TI, serial_int__not_tx - ;; tx finished. send another character if we have one - clr TI ; clear int - clr TX_RUNNING - lcall start_tx -serial_int__not_tx: - jnb RI, serial_int__not_rx - lcall get_rx_char - clr RI ; clear int -serial_int__not_rx: - ;; return - pop acc - pop dph1 - pop dpl1 - pop dph - pop dpl - pop dps - reti - -get_rx_char: - mov dph, #HIGH(rx_ring) - mov dpl, rx_ring_in - inc dpl ; target = rx_ring_in+1 - mov a, sbuf - movx @dptr, a - ;; check for overflow before incrementing rx_ring_in - mov a, dpl - cjne a, rx_ring_out, get_rx_char__no_overflow - ;; signal overflow - ret -get_rx_char__no_overflow: - inc rx_ring_in - ;; kick off USB INpipe - acall start_in - ret - -start_in: - ;; check if the inpipe is already running. - mov a,#0x10 - mov dptr, OEA - movx @dptr,a - - mov dptr, IN2CS - movx a, @dptr - jb acc.1, start_in__done; int will handle it - jb DO_TX_UNTHROTTLE, start_in__do_tx_unthrottle - ;; see if there is any work to do. a serial interrupt might occur - ;; during this sequence? - mov a, rx_ring_in - cjne a, rx_ring_out, start_in__have_work - ret ; nope -start_in__have_work: - ;; now copy as much data as possible into the pipe. 63 bytes max. - clr a - mov dps, a - mov dph, #HIGH(rx_ring) ; load DPTR0 with source - inc dps - mov dptr, IN2BUF ; load DPTR1 with target - movx @dptr, a ; in[0] signals that rest of IN is rx data - inc dptr - inc dps - ;; loop until we run out of data, or we have copied 64 bytes - mov r1, #1 ; INbuf size counter -start_in__loop: - mov a, rx_ring_in - cjne a, rx_ring_out, start_inlocal_irq_enablell_copying - sjmp start_in__kick -start_inlocal_irq_enablell_copying: - inc rx_ring_out - mov dpl, rx_ring_out - movx a, @dptr - inc dps - movx @dptr, a ; write into IN buffer - inc dptr - inc dps - inc r1 - cjne r1, #64, start_in__loop; loop -start_in__kick: - ;; either we ran out of data, or we copied 64 bytes. r1 has byte count - ;; kick off IN - mov a, #0x10 ; Turn the green LED - mov dptr,OEA - movx @dptr, a - mov dptr, IN2BC - mov a, r1 - jz start_in__done - movx @dptr, a - ;; done -start_in__done: - ;acall dump_stat - ret -start_in__do_tx_unthrottle: - ;; special sequence: send a tx unthrottle message - clr DO_TX_UNTHROTTLE - clr a - mov dps, a - mov dptr, IN2BUF - mov a, #1 - movx @dptr, a - inc dptr - mov a, #2 - movx @dptr, a - mov dptr, IN2BC - movx @dptr, a - ret - -putchar: - clr TI - mov SBUF, a -putchar_wait: - jnb TI, putchar_wait - clr TI - ret - - -baud_table: ; baud_high, then baud_low - ;; baud[0]: 110 - .byte BAUD_HIGH(110) - .byte BAUD_LOW(110) - ;; baud[1]: 300 - .byte BAUD_HIGH(300) - .byte BAUD_LOW(300) - ;; baud[2]: 1200 - .byte BAUD_HIGH(1200) - .byte BAUD_LOW(1200) - ;; baud[3]: 2400 - .byte BAUD_HIGH(2400) - .byte BAUD_LOW(2400) - ;; baud[4]: 4800 - .byte BAUD_HIGH(4800) - .byte BAUD_LOW(4800) - ;; baud[5]: 9600 - .byte BAUD_HIGH(9600) - .byte BAUD_LOW(9600) - ;; baud[6]: 19200 - .byte BAUD_HIGH(19200) - .byte BAUD_LOW(19200) - ;; baud[7]: 38400 - .byte BAUD_HIGH(38400) - .byte BAUD_LOW(38400) - ;; baud[8]: 57600 - .byte BAUD_HIGH(57600) - .byte BAUD_LOW(57600) - ;; baud[9]: 115200 - .byte BAUD_HIGH(115200) - .byte BAUD_LOW(115200) - -desc_device: - .byte 0x12, 0x01, 0x00, 0x01, 0xff, 0xff, 0xff, 0x40 - .byte 0xcd, 0x06, 0x04, 0x01, 0x89, 0xab, 1, 2, 3, 0x01 -;;; The "real" device id, which must match the host driver, is that -;;; "0xcd 0x06 0x04 0x01" sequence, which is 0x06cd, 0x0104 - -desc_config1: - .byte 0x09, 0x02, 0x20, 0x00, 0x01, 0x01, 0x00, 0x80, 0x32 - .byte 0x09, 0x04, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0x00 - .byte 0x07, 0x05, 0x82, 0x03, 0x40, 0x00, 0x01 - .byte 0x07, 0x05, 0x02, 0x02, 0x40, 0x00, 0x00 - -desc_strings: - .word string_langids, string_mfg, string_product, string_serial -desc_strings_end: - -string_langids: .byte string_langids_end-string_langids - .byte 3 - .word 0 -string_langids_end: - - ;; sigh. These strings are Unicode, meaning UTF16? 2 bytes each. Now - ;; *that* is a pain in the ass to encode. And they are little-endian - ;; too. Use this perl snippet to get the bytecodes: - /* while (<>) { - @c = split(//); - foreach $c (@c) { - printf("0x%02x, 0x00, ", ord($c)); - } - } - */ - -string_mfg: .byte string_mfg_end-string_mfg - .byte 3 -; .byte "ACME usb widgets" - .byte 0x41, 0x00, 0x43, 0x00, 0x4d, 0x00, 0x45, 0x00, 0x20, 0x00, 0x75, 0x00, 0x73, 0x00, 0x62, 0x00, 0x20, 0x00, 0x77, 0x00, 0x69, 0x00, 0x64, 0x00, 0x67, 0x00, 0x65, 0x00, 0x74, 0x00, 0x73, 0x00 -string_mfg_end: - -string_product: .byte string_product_end-string_product - .byte 3 -; .byte "ACME USB serial widget" - .byte 0x41, 0x00, 0x43, 0x00, 0x4d, 0x00, 0x45, 0x00, 0x20, 0x00, 0x55, 0x00, 0x53, 0x00, 0x42, 0x00, 0x20, 0x00, 0x73, 0x00, 0x65, 0x00, 0x72, 0x00, 0x69, 0x00, 0x61, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x77, 0x00, 0x69, 0x00, 0x64, 0x00, 0x67, 0x00, 0x65, 0x00, 0x74, 0x00 -string_product_end: - -string_serial: .byte string_serial_end-string_serial - .byte 3 -; .byte "47" - .byte 0x34, 0x00, 0x37, 0x00 -string_serial_end: - -;;; ring buffer memory - ;; tx_ring_in+1 is where the next input byte will go - ;; [tx_ring_out] has been sent - ;; if tx_ring_in == tx_ring_out, theres no work to do - ;; there are (tx_ring_in - tx_ring_out) chars to be written - ;; dont let _in lap _out - ;; cannot inc if tx_ring_in+1 == tx_ring_out - ;; write [tx_ring_in+1] then tx_ring_in++ - ;; if (tx_ring_in+1 == tx_ring_out), overflow - ;; else tx_ring_in++ - ;; read/send [tx_ring_out+1], then tx_ring_out++ - - ;; rx_ring_in works the same way - - .org 0x1000 -tx_ring: - .skip 0x100 ; 256 bytes -rx_ring: - .skip 0x100 ; 256 bytes - - - .END - diff --git a/firmware/korg/k1212.dsp.ihex b/firmware/korg/k1212.dsp.ihex deleted file mode 100644 index b151997b380c..000000000000 --- a/firmware/korg/k1212.dsp.ihex +++ /dev/null @@ -1,987 +0,0 @@ -:1000000001FF18FFF5FFCFFF00FF00FFFFFF00FF1C -:1000100000FF00FFFFFF00FF00FF00FFFFFF00FFEA -:1000200026FF18FFFFFF0FFF00FF00FFFFFF00FF8D -:1000300000FF00FFFFFF00FF00FF00FFFFFF00FFCA -:1000400000FF0AFFFFFF1FFF00FF00FFFFFF00FF91 -:1000500000FF00FFFFFF00FF00FF00FFFFFF00FFAA -:1000600000FF0AFFFFFF1FFF00FF00FFFFFF00FF71 -:1000700000FF00FFFFFF00FF00FF00FFFFFF00FF8A -:1000800000FF0AFFFFFF1FFF00FF00FFFFFF00FF51 -:1000900000FF00FFFFFF00FF00FF00FFFFFF00FF6A -:1000A00038FF18FFFFFFDFFF00FF00FFFFFF00FF2B -:1000B00000FF00FFFFFF00FF00FF00FFFFFF00FF4A -:1000C00000FF0AFFFFFF1FFF00FF00FFFFFF00FF11 -:1000D00000FF00FFFFFF00FF00FF00FFFFFF00FF2A -:1000E00003FF3CFFFFFFFCFF67FF40FFFFFFC0FF78 -:1000F000FFFF93FFFFFFE0FF00FF0CFFFFFF0CFF80 -:100100000CFF0CFFFFFF00FF30FF0CFFFFFF00FFA5 -:100110000FFF40FFFFFFF4FF47FF80FFFFFF0AFFD5 -:1001200082FF23FFFFFF0FFF8DFF93FFFFFF7AFF8B -:100130008DFF83FFFFFF70FF47FF90FFFFFF00FF72 -:1001400000FF48FFFFFF04FFA0FF23FFFFFF0FFF9B -:1001500046FF90FFFFFF6AFF00FF0CFFFFFF20FF3D -:1001600000FF04FFFFFF1CFF00FF04FFFFFF1CFF59 -:1001700000FF04FFFFFF1CFF00FF04FFFFFF1CFF49 -:1001800000FF04FFFFFF10FF00FF04FFFFFF10FF51 -:1001900000FF04FFFFFF10FF00FF04FFFFFF10FF41 -:1001A00000FF04FFFFFF10FF00FF04FFFFFF10FF31 -:1001B00000FF04FFFFFF10FF00FF04FFFFFF10FF21 -:1001C00000FF04FFFFFF10FF00FF04FFFFFF10FF11 -:1001D00000FF04FFFFFF10FF00FF04FFFFFF10FF01 -:1001E00072FF1CFFFFFF5FFF02FF40FFFFFF40FFAA -:1001F00011FF90FFFFFF20FF00FF48FFFFFF00FF00 -:100200008BFF93FFFFFF20FF00FF40FFFFFF00FF7A -:1002100086FF93FFFFFF70FF8BFF93FFFFFF30FF11 -:100220008DFF93FFFFFF40FF02FF91FFFFFF80FF65 -:1002300002FF91FFFFFF90FF8DFF93FFFFFFC0FFC5 -:1002400046FF90FFFFFF20FF8DFF93FFFFFFD0FFD2 -:1002500000FF48FFFFFF00FF8BFF93FFFFFF40FF02 -:10026000FFFF47FFFFFFF0FF8DFF93FFFFFFE0FF62 -:1002700000FF34FFFFFF17FF00FF38FFFFFF17FFEE -:1002800080FF37FFFFFF02FF84FF3BFFFFFF02FFFE -:1002900002FF34FFFFFF4AFF02FF38FFFFFF4AFF64 -:1002A00001FF34FFFFFF2BFF01FF38FFFFFF2BFF94 -:1002B00080FF43FFFFFF00FF82FF93FFFFFF50FF20 -:1002C00081FF43FFFFFF20FF82FF93FFFFFF60FFDF -:1002D00084FF43FFFFFF00FF82FF93FFFFFF70FFDC -:1002E00085FF43FFFFFF20FF83FF93FFFFFFC0FF5A -:1002F00082FF37FFFFFF81FF00FF34FFFFFF89FF11 -:1003000088FF43FFFFFF00FF00FF68FFFFFF07FFBD -:1003100082FF83FFFFFF60FF00FF68FFFFFF07FF13 -:100320008CFF43FFFFFF00FF00FF68FFFFFF07FF99 -:1003300083FF83FFFFFFC0FF00FF68FFFFFF07FF92 -:100340008AFF43FFFFFF00FF00FF68FFFFFF07FF7B -:1003500082FF83FFFFFF50FF00FF68FFFFFF07FFE3 -:100360008EFF43FFFFFF00FF00FF68FFFFFF07FF57 -:1003700082FF83FFFFFF70FF00FF68FFFFFF07FFA3 -:1003800083FF37FFFFFF01FF00FF34FFFFFF89FFFF -:1003900000FF34FFFFFF26FF30FF0CFFFFFF00FFD1 -:1003A00000FF40FFFFFF26FF20FF40FFFFFF04FF8D -:1003B00080FF41FFFFFF02FFE0FF20FFFFFF0FFF75 -:1003C00000FF68FFFFFFB6FF63FF22FFFFFF0FFF85 -:1003D00062FF6AFFFFFFA6FF62FF6AFFFFFFA6FF43 -:1003E00000FF68FFFFFFA6FF00FF09FFFFFF07FFF9 -:1003F00040FF41FFFFFF02FFE0FF20FFFFFF0FFF75 -:1004000000FF68FFFFFFB6FF63FF22FFFFFF0FFF44 -:1004100062FF6AFFFFFFA6FF62FF6AFFFFFFA6FF02 -:1004200000FF68FFFFFFA6FF05FF41FFFFFF02FF80 -:10043000E0FF20FFFFFF0FFF8BFF93FFFFFFBBFFDE -:1004400002FF41FFFFFF82FFE0FF20FFFFFF0FFFE2 -:100450008BFF93FFFFFFCBFF05FF41FFFFFFE2FF95 -:10046000E0FF20FFFFFF0FFF8BFF93FFFFFFDBFF8E -:1004700020FF0CFFFFFF00FF30FF0CFFFFFF00FF1E -:1004800000FF40FFFFFF26FF00FF41FFFFFF02FFCD -:10049000E0FF20FFFFFF0FFF83FF93FFFFFF82FFBF -:1004A00083FF93FFFFFF9BFF03FF41FFFFFF02FF5F -:1004B000E0FF20FFFFFF0FFF83FF93FFFFFFA2FF7F -:1004C00083FF93FFFFFFBBFF20FF0CFFFFFF00FF39 -:1004D00000FF40FFFFFF00FF44FF90FFFFFF60FFB2 -:1004E00000FF00FFFFFF00FF00FF00FFFFFF00FF16 -:1004F00000FF00FFFFFF00FF00FF00FFFFFF00FF06 -:1005000000FF00FFFFFF00FF00FF00FFFFFF00FFF5 -:1005100000FF00FFFFFF00FF00FF00FFFFFF00FFE5 -:1005200021FF40FFFFFF60FF40FF90FFFFFF20FF24 -:1005300002FF35FFFFFF00FF00FF34FFFFFF08FF52 -:1005400000FF3CFFFFFF85FF0AFF14FFFFFFAEFF28 -:1005500000FFA0FFFFFF03FF00FF35FFFFFF00FFCD -:1005600000FF34FFFFFF08FF02FF3CFFFFFF05FF16 -:100570000AFF14FFFFFFFEFF00FFA0FFFFFF03FFC6 -:1005800003FF35FFFFFF00FF00FF34FFFFFF08FF01 -:1005900002FF3CFFFFFF05FF0BFF14FFFFFF4EFFB5 -:1005A00000FFA0FFFFFF03FF00FF35FFFFFF01FF7C -:1005B00078FF1CFFFFFF5FFF03FF35FFFFFF01FF19 -:1005C00078FF1CFFFFFF5FFF5BFF40FFFFFFF0FFB7 -:1005D000FFFF93FFFFFF30FF80FF42FFFFFF70FF31 -:1005E000FFFF93FFFFFF60FFDFFF40FFFFFFF0FF14 -:1005F000FEFF93FFFFFFF0FF80FF42FFFFFF70FF52 -:10060000FFFF93FFFFFF20FFC1FF41FFFFFF80FFC0 -:10061000FFFF93FFFFFFF0FF03FF3CFFFFFFFCFF27 -:1006200000FF3CFFFFFF04FF02FF3CFFFFFF23FF33 -:1006300000FF48FFFFFF00FF8BFF93FFFFFF20FF3E -:1006400059FF18FFFFFFDFFF00FF48FFFFFF00FF1C -:100650008BFF93FFFFFF20FF18FF23FFFFFF0FFF1C -:100660000CFF14FFFFFFE4FF8BFF83FFFFFF24FF5E -:1006700000FF22FFFFFF0FFF0DFF18FFFFFF0FFF1F -:100680008BFF83FFFFFF20FF00FF40FFFFFF14FFF2 -:10069000E0FF22FFFFFF0FFF10FF18FFFFFFD0FF5B -:1006A0008BFF83FFFFFF20FF00FF40FFFFFF24FFC2 -:1006B000E0FF22FFFFFF0FFF10FF18FFFFFF30FFDB -:1006C0008BFF83FFFFFF20FF00FF40FFFFFF44FF82 -:1006D000E0FF22FFFFFF0FFF22FF18FFFFFF90FF49 -:1006E0008BFF83FFFFFF20FF00FF40FFFFFF84FF22 -:1006F000E0FF22FFFFFF0FFF22FF18FFFFFF90FF29 -:100700000CFF18FFFFFF6FFF00FF40FFFFFF00FF20 -:1007100086FF93FFFFFF70FF76FF1CFFFFFF9FFF29 -:1007200086FF83FFFFFF50FF86FF83FFFFFF64FF0D -:1007300060FF22FFFFFF0FFF74FF18FFFFFF81FF25 -:1007400000FF35FFFFFF00FF60FF1CFFFFFF7FFF83 -:1007500061FF1CFFFFFFAFFF77FF1CFFFFFFAFFF35 -:1007600063FF1CFFFFFF4FFF05FF35FFFFFF00FF8B -:1007700092FF3BFFFFFF00FF00FF34FFFFFF08FF7A -:1007800000FF38FFFFFF08FF00FF3CFFFFFF65FF92 -:100790000FFF14FFFFFF6EFF00FF60FFFFFF03FF6F -:1007A00000FF60FFFFFF13FF00FF78FFFFFF13FF55 -:1007B00000FF78FFFFFF03FF05FF35FFFFFFE0FFAE -:1007C0007FFF38FFFFFF00FF00FF34FFFFFF08FF40 -:1007D00000FF38FFFFFF08FF00FF3CFFFFFF65FF42 -:1007E00010FF14FFFFFF0EFF00FF60FFFFFF03FF7E -:1007F00000FF60FFFFFF13FF00FF58FFFFFF13FF25 -:1008000000FF58FFFFFF03FF79FF1CFFFFFFFFFF03 -:1008100000FF0AFFFFFF0FFF0EFF1CFFFFFF1FFF80 -:100820008DFF83FFFFFFE0FF78FF22FFFFFF0FFF39 -:1008300015FF1CFFFFFF85FF75FF1CFFFFFF8FFFEC -:1008400000FF40FFFFFF40FF8BFF93FFFFFF80FF94 -:1008500002FF40FFFFFF60FF11FF90FFFFFF20FF3F -:1008600016FF18FFFFFF1FFF0EFF1CFFFFFF1FFFFC -:1008700075FF1CFFFFFF8FFF80FF35FFFFFF00FFAD -:1008800000FF34FFFFFF08FF00FF40FFFFFF00FFF6 -:1008900040FF3CFFFFFF05FF11FF14FFFFFF4EFF6E -:1008A00000FF68FFFFFF03FF87FF83FFFFFFF0FFED -:1008B00086FF93FFFFFF80FF90FF37FFFFFF00FFE2 -:1008C00002FF34FFFFFF08FF00FF60FFFFFF03FF91 -:1008D00089FF93FFFFFF20FF00FF60FFFFFF03FF83 -:1008E00089FF93FFFFFF30FF00FF60FFFFFF03FF63 -:1008F00089FF93FFFFFF40FF00FF60FFFFFF03FF43 -:1009000089FF93FFFFFF50FF86FF97FFFFFF90FFD8 -:1009100003FF35FFFFFF00FF60FF1CFFFFFF7FFFAE -:1009200063FF1CFFFFFF7FFF00FF40FFFFFF00FF93 -:100930008DFF93FFFFFF60FF82FF93FFFFFF40FFEC -:1009400086FF93FFFFFFA0FF83FF37FFFFFF80FFBE -:1009500075FF1CFFFFFF1FFF83FF43FFFFFF00FF2B -:1009600087FF93FFFFFFE0FF6AFF1CFFFFFF0FFF02 -:1009700040FF41FFFFFF00FF8BFF93FFFFFF90FF52 -:1009800080FF41FFFFFF00FF8BFF93FFFFFFA0FFF2 -:100990008BFF87FFFFFF90FF7EFF38FFFFFF00FF09 -:1009A00040FF34FFFFFF08FF00FF38FFFFFF08FF95 -:1009B00000FF3CFFFFFF55FF13FF14FFFFFFBEFFCB -:1009C00000FF60FFFFFF03FF00FF60FFFFFF13FF5B -:1009D00000FF58FFFFFF13FF00FF58FFFFFF03FF5B -:1009E00000FF60FFFFFF03FF00FF60FFFFFF13FF3B -:1009F00000FF58FFFFFF13FF00FF58FFFFFF03FF3B -:100A000000FF60FFFFFF03FF00FF60FFFFFF13FF1A -:100A100000FF58FFFFFF13FF00FF58FFFFFF03FF1A -:100A200000FF60FFFFFF03FF00FF60FFFFFF03FF0A -:100A30008BFF97FFFFFF90FF05FF41FFFFFF00FFC8 -:100A400092FF43FFFFFF01FF86FF93FFFFFFF0FFD1 -:100A500086FF93FFFFFFE1FF8DFF83FFFFFFE0FFB6 -:100A600078FF22FFFFFF0FFF15FF1CFFFFFF85FF31 -:100A700075FF1CFFFFFF8FFF8DFF83FFFFFF40FF10 -:100A800078FF22FFFFFF0FFF53FF18FFFFFFB4FFA8 -:100A900072FF1CFFFFFF0FFF00FF40FFFFFF00FF83 -:100AA0008BFF93FFFFFF30FF02FF40FFFFFF60FF60 -:100AB00011FF90FFFFFF20FF16FF18FFFFFF4FFF02 -:100AC00038FF42FFFFFF50FF48FF90FFFFFFA0FFEE -:100AD00000FF00FFFFFF00FF00FF00FFFFFF00FF20 -:100AE00000FF00FFFFFF00FF00FF00FFFFFF00FF10 -:100AF00030FF40FFFFFF00FF47FF90FFFFFF50FF69 -:100B000000FF0AFFFFFF0FFF1EFF1CFFFFFF0FFF8D -:100B100020FF1CFFFFFFCFFF16FF18FFFFFF1FFF87 -:100B200000FF40FFFFFF00FF46FF90FFFFFF70FF49 -:100B300018FF1CFFFFFFEFFF6AFF1CFFFFFFBFFF57 -:100B40005CFF1CFFFFFF7FFF18FF1CFFFFFFEFFF95 -:100B500067FF1CFFFFFF3FFF5CFF1CFFFFFF7FFFE6 -:100B600008FF40FFFFFF00FF46FF90FFFFFF70FF01 -:100B700018FF1CFFFFFFEFFF69FF1CFFFFFF0FFFC8 -:100B80005DFF1CFFFFFF2FFF18FF1CFFFFFFEFFFA4 -:100B900079FF1CFFFFFF1FFF5CFF1CFFFFFF7FFFB4 -:100BA00018FF1CFFFFFFEFFF5CFF1CFFFFFF7FFF35 -:100BB00018FF1CFFFFFFEFFF5CFF1CFFFFFF7FFF25 -:100BC00018FF1CFFFFFFEFFF5DFF1CFFFFFF2FFF64 -:100BD00018FF1CFFFFFFEFFF5CFF1CFFFFFF7FFF05 -:100BE00018FF1CFFFFFFEFFF5CFF1CFFFFFF7FFFF5 -:100BF00018FF1CFFFFFFEFFF5CFF1CFFFFFF7FFFE5 -:100C000018FF1CFFFFFFEFFF5DFF1CFFFFFF2FFF23 -:100C100018FF1CFFFFFFEFFF5CFF1CFFFFFF7FFFC4 -:100C200018FF1CFFFFFFEFFF5CFF1CFFFFFF7FFFB4 -:100C300018FF1CFFFFFFEFFF5CFF1CFFFFFF7FFFA4 -:100C400018FF1CFFFFFFEFFF5DFF1CFFFFFF2FFFE3 -:100C500018FF1CFFFFFFEFFF66FF1CFFFFFF1FFFDA -:100C60005CFF1CFFFFFF7FFF16FF18FFFFFF4FFF1A -:100C70008BFF87FFFFFF61FF00FF34FFFFFF89FF4E -:100C800000FF34FFFFFF26FF00FF60FFFFFF06FFAE -:100C900083FF93FFFFFFD0FF00FF60FFFFFF06FF12 -:100CA00083FF93FFFFFFE0FF38FF22FFFFFF0FFFEF -:100CB00019FF14FFFFFF85FF8BFF83FFFFFF50FF2E -:100CC00078FF22FFFFFF0FFF00FF60FFFFFF07FF1E -:100CD00004FF0DFFFFFF30FF00FF60FFFFFF07FF76 -:100CE00083FF93FFFFFFF0FF00FF60FFFFFF07FFA1 -:100CF00008FF0DFFFFFF30FF00FF60FFFFFF07FF52 -:100D000086FF93FFFFFF40FF00FF40FFFFFF01FF53 -:100D10008BFF93FFFFFF51FF00FF34FFFFFF46FFF4 -:100D200000FF09FFFFFF06FF8BFF97FFFFFF61FF3B -:100D300083FF8BFFFFFFD0FF83FF8BFFFFFFE1FFF0 -:100D400087FF37FFFFFF01FF6EFF1CFFFFFFBFFFA5 -:100D500087FF37FFFFFF00FF92FF37FFFFFF01FF15 -:100D60007FFF38FFFFFF00FF7EFF38FFFFFF01FF1F -:100D700023FF1CFFFFFFFFFF7EFF38FFFFFF00FF89 -:100D800083FF87FFFFFFF1FF86FF8BFFFFFF41FF20 -:100D90006CFF1CFFFFFF2FFF87FF37FFFFFF00FFE8 -:100DA0008BFF8BFFFFFFA0FF00FF34FFFFFF08FF5B -:100DB00040FF38FFFFFF08FF00FF3CFFFFFF55FF2C -:100DC0001BFF14FFFFFFCEFF00FF60FFFFFF03FFCD -:100DD00000FF60FFFFFF13FF00FF78FFFFFF13FF1F -:100DE00000FF78FFFFFF03FF00FF60FFFFFF03FF2F -:100DF00000FF60FFFFFF13FF00FF78FFFFFF13FFFF -:100E000000FF78FFFFFF03FF00FF60FFFFFF03FF0E -:100E100000FF60FFFFFF13FF00FF78FFFFFF13FFDE -:100E200000FF78FFFFFF03FF8BFF83FFFFFFE1FF62 -:100E30008BFF83FFFFFFF0FF00FF78FFFFFF13FF33 -:100E400000FF78FFFFFF03FF8BFF9BFFFFFFA0FF6B -:100E50008BFF87FFFFFF90FF7EFF38FFFFFF00FF44 -:100E600040FF34FFFFFF08FF00FF38FFFFFF08FFD0 -:100E700000FF3CFFFFFF55FF1DFF14FFFFFF3EFF7C -:100E800000FF60FFFFFF03FF00FF60FFFFFF13FF96 -:100E900000FF58FFFFFF13FF00FF58FFFFFF03FF96 -:100EA00000FF60FFFFFF03FF00FF60FFFFFF13FF76 -:100EB00000FF58FFFFFF13FF00FF58FFFFFF03FF76 -:100EC00000FF60FFFFFF03FF00FF60FFFFFF13FF56 -:100ED00000FF58FFFFFF13FF00FF58FFFFFF03FF56 -:100EE00000FF60FFFFFF03FF00FF60FFFFFF03FF46 -:100EF0008BFF97FFFFFF90FF00FF0AFFFFFF0FFF31 -:100F00008BFF87FFFFFF61FF00FF34FFFFFF89FFBB -:100F100000FF34FFFFFF26FF00FF60FFFFFF06FF1B -:100F200083FF93FFFFFFD0FF00FF60FFFFFF06FF7F -:100F300083FF93FFFFFFE0FF8BFF83FFFFFF51FF66 -:100F400079FF22FFFFFF0FFF74FF18FFFFFFB4FFC1 -:100F500038FF22FFFFFF0FFF1EFF14FFFFFFD5FF2B -:100F60008BFF83FFFFFF50FF78FF22FFFFFF0FFF84 -:100F700000FF60FFFFFF07FF04FF0DFFFFFF30FFD3 -:100F800000FF60FFFFFF07FF83FF93FFFFFFF0FFFE -:100F900000FF60FFFFFF07FF08FF0DFFFFFF30FFAF -:100FA00000FF60FFFFFF07FF86FF93FFFFFF40FF8B -:100FB00000FF40FFFFFF01FF8BFF93FFFFFF51FF8B -:100FC00000FF34FFFFFF46FF00FF09FFFFFF06FFA2 -:100FD0008BFF97FFFFFF61FF83FF8BFFFFFFD0FFBA -:100FE00083FF8BFFFFFFE1FF87FF37FFFFFF01FF5D -:100FF0006EFF1CFFFFFFBFFF87FF37FFFFFF00FFF4 -:1010000092FF37FFFFFF01FF7FFF38FFFFFF00FF69 -:1010100023FF1CFFFFFFFFFF7EFF38FFFFFF00FFE6 -:1010200083FF87FFFFFFF1FF86FF8BFFFFFF41FF7D -:101030006CFF1CFFFFFF2FFF00FF0AFFFFFF0FFFEA -:101040008DFF8FFFFFFFC5FF20FF14FFFFFFAEFFE7 -:1010500000FF00FFFFFF00FF00FF0AFFFFFF0FFF81 -:101060008BFF83FFFFFF84FF00FF23FFFFFF0FFFC6 -:101070008BFF93FFFFFF8AFF64FF1CFFFFFFE0FF72 -:101080007EFF38FFFFFF00FF00FF38FFFFFF08FF74 -:1010900000FF3CFFFFFFE5FF21FF14FFFFFF5EFFA6 -:1010A00000FF40FFFFFF00FF00FF58FFFFFF03FFAF -:1010B00000FF0AFFFFFF0FFF08FF40FFFFFF10FFC9 -:1010C00047FF90FFFFFF20FF00FF04FFFFFF1CFF13 -:1010D00000FF04FFFFFF1CFF00FF04FFFFFF1CFFDA -:1010E00000FF04FFFFFF1CFF00FF04FFFFFF10FFD6 -:1010F00000FF04FFFFFF10FF00FF04FFFFFF10FFD2 -:1011000000FF04FFFFFF10FF00FF04FFFFFF10FFC1 -:1011100000FF04FFFFFF10FF00FF04FFFFFF10FFB1 -:1011200000FF04FFFFFF10FF00FF04FFFFFF10FFA1 -:1011300000FF04FFFFFF10FF00FF04FFFFFF10FF91 -:1011400000FF04FFFFFF10FF02FF40FFFFFF40FF13 -:1011500011FF90FFFFFF20FF78FF42FFFFFF50FFCE -:1011600048FF90FFFFFFA0FF00FF00FFFFFF00FF11 -:1011700000FF00FFFFFF00FF00FF00FFFFFF00FF79 -:1011800000FF00FFFFFF00FF00FF00FFFFFF00FF69 -:10119000B0FF40FFFFFF00FF47FF90FFFFFF50FF42 -:1011A00000FF40FFFFFF00FF8DFF93FFFFFF40FFA9 -:1011B0008DFF93FFFFFF50FF00FF40FFFFFF01FF88 -:1011C0008BFF93FFFFFF51FF00FF40FFFFFF00FF7A -:1011D00046FF90FFFFFF70FF8DFF83FFFFFFD0FFF3 -:1011E00078FF22FFFFFF0FFF0CFF18FFFFFF90FFAC -:1011F0000CFF18FFFFFF6FFF20FF0CFFFFFF00FF3A -:1012000000FF34FFFFFF09FF00FF34FFFFFF08FF6F -:1012100000FF38FFFFFF08FF00FF38FFFFFF09FF57 -:1012200000FF38FFFFFF06FF00FF34FFFFFF26FF30 -:1012300098FFCCFFFFFF37FF00FF3CFFFFFFA5FF3C -:1012400024FF14FFFFFFFEFF00FF60FFFFFF73FF9F -:1012500008FF0DFFFFFF14FF98FF20FFFFFF0FFFA8 -:1012600000FF50FFFFFFC6FF69FFCCFFFFFF37FF06 -:1012700000FF05FFFFFF00FF00FF58FFFFFFC6FF55 -:1012800098FF20FFFFFF0FFF00FF60FFFFFF72FFCF -:1012900008FF0DFFFFFF14FF00FF50FFFFFFC6FF19 -:1012A00069FFCCFFFFFF37FF00FF05FFFFFF00FFD7 -:1012B00000FF58FFFFFFC6FF98FF20FFFFFF0FFF53 -:1012C00000FF60FFFFFF73FF08FF0DFFFFFF14FF2C -:1012D00000FF50FFFFFFC6FF69FF20FFFFFF0FFF6A -:1012E00000FF05FFFFFF00FF00FF58FFFFFFC6FFE5 -:1012F00030FF0CFFFFFF00FF00FF0AFFFFFF0FFFA3 -:1013000000FF0CFFFFFF30FF47FF80FFFFFF58FF8C -:1013100010FF0FFFFFFF01FF66FF23FFFFFF0FFF1F -:1013200026FF18FFFFFF94FF00FF48FFFFFF00FFAD -:101330008BFF93FFFFFF40FF80FF40FFFFFF00FF99 -:1013400049FF90FFFFFF40FF16FF0FFFFFFF02FF67 -:1013500066FF23FFFFFF0FFF38FF18FFFFFFB4FFFB -:101360000FFF40FFFFFFF4FF47FF80FFFFFF0AFF73 -:1013700082FF23FFFFFF0FFF8DFF93FFFFFF7AFF29 -:101380007AFF26FFFFFF0FFF10FF27FFFFFF0FFF72 -:1013900038FF18FFFFFFB4FF27FF18FFFFFFD2FF42 -:1013A00000FF48FFFFFF00FF8BFF93FFFFFF30FFB1 -:1013B0008DFF83FFFFFF70FF47FF90FFFFFF00FFE0 -:1013C00000FF48FFFFFF04FFA0FF23FFFFFF0FFF09 -:1013D00046FF90FFFFFF6AFF00FF0CFFFFFF20FFAB -:1013E00000FF0AFFFFFF1FFF10FF27FFFFFF0FFF98 -:1013F00029FF18FFFFFF92FF46FF80FFFFFF00FF5E -:101400008BFF93FFFFFF20FF8DFF83FFFFFF70FF28 -:1014100047FF90FFFFFF00FF00FF48FFFFFF04FFB3 -:10142000A0FF23FFFFFF0FFF46FF90FFFFFF6AFFB4 -:1014300000FF0CFFFFFF20FF00FF04FFFFFF1CFF6A -:1014400000FF04FFFFFF1CFF00FF04FFFFFF1CFF66 -:1014500000FF04FFFFFF1CFF00FF04FFFFFF10FF62 -:1014600000FF04FFFFFF10FF00FF04FFFFFF10FF5E -:1014700000FF04FFFFFF10FF00FF04FFFFFF10FF4E -:1014800000FF04FFFFFF10FF00FF04FFFFFF10FF3E -:1014900000FF04FFFFFF10FF00FF04FFFFFF10FF2E -:1014A00000FF04FFFFFF10FF00FF04FFFFFF10FF1E -:1014B00000FF04FFFFFF10FF00FF04FFFFFF03FF1B -:1014C0000DFF18FFFFFF0FFF10FF27FFFFFF0FFFAC -:1014D00031FF18FFFFFF12FF30FF0CFFFFFF00FF7F -:1014E00008FF0CFFFFFF00FFFFFF4FFFFFFF89FF1B -:1014F00090FF37FFFFFF00FF02FF34FFFFFF08FFF1 -:1015000000FF34FFFFFF34FF00FF34FFFFFF55FFF4 -:1015100046FF80FFFFFF08FF00FF0EFFFFFF0FFFEA -:1015200000FF0DFFFFFF4EFFA7FF23FFFFFF0FFF91 -:1015300000FF68FFFFFFA3FF00FF0DFFFFFF4AFF53 -:1015400046FF80FFFFFF18FF00FF0EFFFFFF0FFFAA -:1015500000FF0DFFFFFF5EFFAFFF23FFFFFF0FFF49 -:1015600000FF68FFFFFFA0FF00FF0DFFFFFF5AFF16 -:1015700046FF80FFFFFF48FF10FF0FFFFFFFFEFF4A -:1015800087FF93FFFFFFFEFF00FF0DFFFFFF2EFF12 -:1015900002FF40FFFFFF06FFE0FF20FFFFFF0FFFFE -:1015A00000FF40FFFFFF01FF63FF22FFFFFF0FFF70 -:1015B00000FF0DFFFFFF4AFF49FF6AFFFFFFA3FF88 -:1015C00000FF0DFFFFFF5AFF00FF68FFFFFFA0FFB6 -:1015D00000FF0DFFFFFF5AFF63FF22FFFFFF0FFF1A -:1015E00000FF0DFFFFFF4AFF49FF6AFFFFFFA3FF58 -:1015F00000FF0DFFFFFF5AFF00FF68FFFFFFA0FF86 -:1016000063FF22FFFFFF0FFF00FF0DFFFFFF4AFFF9 -:1016100049FF6AFFFFFFA3FF00FF0DFFFFFF5AFF17 -:1016200000FF68FFFFFFA0FF63FF22FFFFFF0FFF28 -:1016300000FF0DFFFFFF4AFF49FF6AFFFFFFA3FF07 -:1016400000FF0DFFFFFF5AFF00FF68FFFFFFA0FF35 -:1016500063FF22FFFFFF0FFF00FF0DFFFFFF4AFFA9 -:1016600049FF6AFFFFFFA3FF00FF0DFFFFFF5AFFC7 -:1016700000FF68FFFFFFA0FF63FF22FFFFFF0FFFD8 -:1016800000FF0DFFFFFF4AFF49FF6AFFFFFFA3FFB7 -:1016900000FF0DFFFFFF5AFF00FF68FFFFFFA0FFE5 -:1016A00063FF22FFFFFF0FFF00FF0DFFFFFF4AFF59 -:1016B00049FF6AFFFFFFA3FF00FF0DFFFFFF5AFF77 -:1016C00000FF68FFFFFFA1FF46FF80FFFFFF28FF2D -:1016D00000FF0EFFFFFF0FFF00FF0DFFFFFF4EFF9C -:1016E000A7FF23FFFFFF0FFF00FF68FFFFFFA3FF20 -:1016F00000FF0DFFFFFF4AFF46FF80FFFFFF38FF9F -:1017000000FF0EFFFFFF0FFF00FF0DFFFFFF5EFF5B -:10171000AFFF23FFFFFF0FFF00FF68FFFFFFA0FFEA -:1017200000FF0DFFFFFF5AFF63FF22FFFFFF0FFFC8 -:1017300000FF0DFFFFFF4AFF49FF6AFFFFFFA3FF06 -:1017400000FF0DFFFFFF5AFF00FF68FFFFFFA0FF34 -:1017500063FF22FFFFFF0FFF00FF0DFFFFFF4AFFA8 -:1017600049FF6AFFFFFFA3FF00FF0DFFFFFF5AFFC6 -:1017700000FF68FFFFFFA0FF63FF22FFFFFF0FFFD7 -:1017800000FF0DFFFFFF4AFF49FF6AFFFFFFA3FFB6 -:1017900000FF0DFFFFFF5AFF00FF68FFFFFFA0FFE4 -:1017A00063FF22FFFFFF0FFF00FF0DFFFFFF4AFF58 -:1017B00049FF6AFFFFFFA3FF00FF0DFFFFFF5AFF76 -:1017C00000FF68FFFFFFA0FF63FF22FFFFFF0FFF87 -:1017D00000FF0DFFFFFF4AFF49FF6AFFFFFFA3FF66 -:1017E00000FF0DFFFFFF5AFF00FF68FFFFFFA0FF94 -:1017F00063FF22FFFFFF0FFF00FF0DFFFFFF4AFF08 -:1018000049FF6AFFFFFFA3FF00FF0DFFFFFF5AFF25 -:1018100000FF68FFFFFFA0FF63FF22FFFFFF0FFF36 -:1018200000FF0DFFFFFF4AFF49FF6AFFFFFFA3FF15 -:1018300000FF0DFFFFFF5AFF00FF68FFFFFFA3FF40 -:10184000FFFF4FFFFFFFF0FF86FF93FFFFFF50FFFB -:101850008DFF83FFFFFF70FF47FF90FFFFFF00FF3B -:1018600000FF48FFFFFF04FFA0FF23FFFFFF0FFF64 -:1018700046FF90FFFFFF6AFF00FF0CFFFFFF20FF06 -:1018800000FF0AFFFFFF1FFF10FF27FFFFFF0FFFF3 -:1018900032FF18FFFFFF42FF8BFF83FFFFFFE4FFD4 -:1018A0008BFF83FFFFFFF5FF46FF90FFFFFF44FF25 -:1018B00008FF22FFFFFF0FFFFFFF4FFFFFFF89FF22 -:1018C00000FF0DFFFFFF8AFF00FF0EFFFFFF0FFF6E -:1018D00000FF0DFFFFFF4EFFA7FF23FFFFFF0FFFDE -:1018E00046FF90FFFFFF5AFF8DFF83FFFFFF70FF52 -:1018F00047FF90FFFFFF00FF00FF48FFFFFF04FFCF -:10190000A0FF23FFFFFF0FFF46FF90FFFFFF6AFFCF -:1019100000FF0CFFFFFF20FF00FF0AFFFFFF1FFF7C -:1019200010FF27FFFFFF0FFF35FF18FFFFFFD2FF5C -:1019300000FF4CFFFFFF00FF00FF93FFFFFF00FFD2 -:101940000BFF40FFFFFF80FF11FF90FFFFFFF0FF45 -:1019500000FF40FFFFFF10FF11FF90FFFFFFE0FFC0 -:1019600046FF80FFFFFF0AFF7AFF26FFFFFF0FFF02 -:1019700035FF1CFFFFFF24FF10FF27FFFFFF0FFFB6 -:1019800033FF18FFFFFFC5FF00FF40FFFFFFC0FF51 -:1019900011FF90FFFFFF60FF8DFF93FFFFFFD0FF60 -:1019A00000FF48FFFFFF00FF8DFF83FFFFFF70FF79 -:1019B00047FF90FFFFFF00FF00FF48FFFFFF04FF0E -:1019C000A0FF23FFFFFF0FFF46FF90FFFFFF6AFF0F -:1019D00000FF0CFFFFFF20FF00FF0AFFFFFF1FFFBC -:1019E00010FF27FFFFFF0FFF34FF18FFFFFF85FFEA -:1019F00000FF40FFFFFF40FF11FF90FFFFFF60FF70 -:101A00008DFF93FFFFFFD0FF8DFF83FFFFFF70FF70 -:101A100047FF90FFFFFF00FF00FF48FFFFFF04FFAD -:101A2000A0FF23FFFFFF0FFF46FF90FFFFFF6AFFAE -:101A300000FF0CFFFFFF20FF00FF0AFFFFFF1FFF5B -:101A400000FF40FFFFFF00FF11FF90FFFFFF60FF5F -:101A50008DFF93FFFFFFD0FF8DFF83FFFFFF70FF20 -:101A600047FF90FFFFFF00FF00FF48FFFFFF04FF5D -:101A7000A0FF23FFFFFF0FFF46FF90FFFFFF6AFF5E -:101A800000FF0CFFFFFF20FF00FF0AFFFFFF1FFF0B -:101A900000FF48FFFFFF00FF8DFF93FFFFFF80FF68 -:101AA00000FF48FFFFFF00FF00FF93FFFFFF00FF65 -:101AB0000DFF40FFFFFFF0FF11FF90FFFFFFF0FF62 -:101AC00000FF40FFFFFF10FF11FF90FFFFFFE0FF4F -:101AD000FFFF40FFFFFFF0FF90FF27FFFFFF0FFF1B -:101AE00000FF0AFFFFFF0FFF10FF27FFFFFF0FFFA1 -:101AF00037FF18FFFFFF42FF46FF80FFFFFF00FF99 -:101B000089FF93FFFFFFA0FF46FF80FFFFFF10FF4D -:101B100089FF93FFFFFFB0FF46FF80FFFFFF20FF1D -:101B200089FF93FFFFFFC0FF46FF80FFFFFF30FFED -:101B300089FF93FFFFFFD0FF46FF80FFFFFF40FFBD -:101B400089FF93FFFFFFE0FF46FF80FFFFFF50FF8D -:101B500089FF93FFFFFFF0FF00FF40FFFFFF10FF33 -:101B600086FF93FFFFFF60FF8DFF83FFFFFF70FF86 -:101B700047FF90FFFFFF00FF00FF48FFFFFF04FF4C -:101B8000A0FF23FFFFFF0FFF46FF90FFFFFF6AFF4D -:101B900000FF0CFFFFFF20FF00FF0AFFFFFF1FFFFA -:101BA00010FF27FFFFFF0FFF39FF18FFFFFF22FF86 -:101BB00046FF80FFFFFF00FF8DFF93FFFFFF20FF29 -:101BC00046FF80FFFFFF10FF8DFF93FFFFFF30FFF9 -:101BD00046FF80FFFFFF20FF78FF22FFFFFF0FFF80 -:101BE00038FF1CFFFFFF84FF00FF40FFFFFF00FFE7 -:101BF00046FF90FFFFFF20FF00FF48FFFFFF00FFB1 -:101C00008DFF93FFFFFF40FF8DFF83FFFFFF70FFFE -:101C100047FF90FFFFFF00FF00FF48FFFFFF04FFAB -:101C2000A0FF23FFFFFF0FFF46FF90FFFFFF6AFFAC -:101C300000FF0CFFFFFF20FF00FF0AFFFFFF1FFF59 -:101C400000FF48FFFFFF00FF8DFF93FFFFFF50FFE6 -:101C500000FF0AFFFFFF0FFF00FF0CFFFFFF20FF49 -:101C600000FF0AFFFFFF1FFF00FF0CFFFFFF30FF19 -:101C700000FF48FFFFFF00FF8BFF93FFFFFF50FFB8 -:101C800000FF0CFFFFFF20FF00FF0AFFFFFF1FFF09 -:101C90008DFF83FFFFFF70FF0FFF40FFFFFFF4FF8B -:101CA000E0FF22FFFFFF0FFF41FF18FFFFFF30FFA4 -:101CB0008DFF83FFFFFF70FF0FFF40FFFFFFE4FF7B -:101CC000E0FF22FFFFFF0FFF42FF18FFFFFF40FF73 -:101CD0008DFF83FFFFFF70FF0FFF40FFFFFFD4FF6B -:101CE000E0FF22FFFFFF0FFF47FF18FFFFFFA0FFEE -:101CF0008DFF83FFFFFF70FF0FFF40FFFFFFC4FF5B -:101D0000E0FF22FFFFFF0FFF46FF18FFFFFFD0FF9E -:101D10008DFF83FFFFFF70FF0FFF40FFFFFFB4FF4A -:101D2000E0FF22FFFFFF0FFF48FF18FFFFFFE0FF6C -:101D30008DFF83FFFFFF70FF0FFF40FFFFFFA4FF3A -:101D4000E0FF22FFFFFF0FFF4AFF18FFFFFF60FFCA -:101D50008DFF83FFFFFF70FF0FFF40FFFFFF94FF2A -:101D6000E0FF22FFFFFF0FFF4CFF18FFFFFF00FF08 -:101D70008DFF83FFFFFF70FF0FFF40FFFFFF84FF1A -:101D8000E0FF22FFFFFF0FFF4DFF18FFFFFFE0FF07 -:101D90008DFF83FFFFFF70FF0FFF40FFFFFF74FF0A -:101DA000E0FF22FFFFFF0FFF4FFF18FFFFFF20FFA5 -:101DB0008DFF83FFFFFF70FF0FFF40FFFFFF64FFFA -:101DC000E0FF22FFFFFF0FFF4FFF18FFFFFFF0FFB5 -:101DD0008DFF83FFFFFF70FF0EFF40FFFFFFF4FF4B -:101DE000E0FF22FFFFFF0FFF44FF18FFFFFF40FF50 -:101DF0008DFF83FFFFFF70FF0EFF40FFFFFFE4FF3B -:101E0000E0FF22FFFFFF0FFF45FF18FFFFFF50FF1E -:101E10008DFF83FFFFFF70FF0AFF40FFFFFF04FFFE -:101E2000E0FF22FFFFFF0FFF3DFF18FFFFFFD0FF86 -:101E30008DFF83FFFFFF70FF0AFF40FFFFFF14FFCE -:101E4000E0FF22FFFFFF0FFF3FFF18FFFFFF10FF24 -:101E50008DFF83FFFFFF70FF0AFF40FFFFFF24FF9E -:101E6000E0FF22FFFFFF0FFF3FFF18FFFFFF80FF94 -:101E70008DFF83FFFFFF70FF0AFF40FFFFFF34FF6E -:101E8000E0FF22FFFFFF0FFF3FFF18FFFFFFF0FF04 -:101E90008DFF83FFFFFF70FF0AFF40FFFFFF44FF3E -:101EA000E0FF22FFFFFF0FFF40FF18FFFFFF60FF73 -:101EB0008DFF83FFFFFF70FF47FF90FFFFFF00FFD5 -:101EC00000FF48FFFFFF04FFA0FF23FFFFFF0FFFFE -:101ED00046FF90FFFFFF6AFF00FF0CFFFFFF20FFA0 -:101EE00000FF0AFFFFFF1FFF8DFF83FFFFFF70FF53 -:101EF00047FF90FFFFFF00FF00FF48FFFFFF04FFC9 -:101F0000A0FF23FFFFFF0FFF46FF90FFFFFF6AFFC9 -:101F100000FF0CFFFFFF08FF00FF40FFFFFF00FF77 -:101F2000FFFF93FFFFFFF0FF00FF40FFFFFF00FFF9 -:101F300044FF90FFFFFF60FF00FF00FFFFFF00FF77 -:101F400000FF00FFFFFF00FF00FF00FFFFFF00FF9B -:101F500000FF00FFFFFF00FF00FF00FFFFFF00FF8B -:101F600000FF00FFFFFF00FF00FF00FFFFFF00FF7B -:101F700000FF00FFFFFF00FF21FF40FFFFFF80FF8A -:101F8000FFFF93FFFFFFF0FF8DFF83FFFFFF70FF59 -:101F900047FF90FFFFFF00FF00FF48FFFFFF04FF28 -:101FA000A0FF23FFFFFF0FFF46FF90FFFFFF6AFF29 -:101FB00025FF40FFFFFF80FFFFFF93FFFFFFF0FFC4 -:101FC0008DFF83FFFFFF70FF47FF90FFFFFF00FFC4 -:101FD00000FF48FFFFFF04FFA0FF23FFFFFF0FFFED -:101FE00046FF90FFFFFF6AFFE9FF41FFFFFF80FF11 -:101FF000FFFF93FFFFFFF0FF8DFF83FFFFFF70FFE9 -:1020000047FF90FFFFFF00FF00FF48FFFFFF04FFB7 -:10201000A0FF23FFFFFF0FFF46FF90FFFFFF6AFFB8 -:10202000EDFF41FFFFFF80FFFFFF93FFFFFFF0FF8A -:102030008DFF83FFFFFF70FF47FF90FFFFFF00FF53 -:1020400000FF48FFFFFF04FFA0FF23FFFFFF0FFF7C -:1020500046FF90FFFFFF6AFF00FF40FFFFFF00FF0A -:1020600044FF90FFFFFF60FF00FF00FFFFFF00FF46 -:1020700000FF00FFFFFF00FF00FF00FFFFFF00FF6A -:1020800000FF00FFFFFF00FFF1FF41FFFFFF80FFA8 -:10209000FFFF93FFFFFFF0FF46FF84FFFFFF00FFFE -:1020A00000FF34FFFFFF08FF00FF60FFFFFF03FF9B -:1020B00000FF00FFFFFF00FF00FF00FFFFFF00FF2A -:1020C00000FF00FFFFFF00FF00FF00FFFFFF00FF1A -:1020D00046FF90FFFFFF60FFF7FF4FFFFFFFF4FF9A -:1020E00046FF90FFFFFF74FF8DFF83FFFFFF70FF30 -:1020F00047FF90FFFFFF00FF00FF48FFFFFF04FFC7 -:10210000A0FF23FFFFFF0FFF46FF90FFFFFF6AFFC7 -:1021100000FF0CFFFFFF20FF00FF0AFFFFFF1FFF74 -:1021200046FF84FFFFFF00FF00FF34FFFFFF08FFB3 -:1021300000FF34FFFFFF06FF00FF00FFFFFF00FF6F -:1021400000FF00FFFFFF00FF00FF00FFFFFF00FF99 -:1021500000FF00FFFFFF00FF46FF80FFFFFF10FFB3 -:1021600000FF00FFFFFF00FF00FF00FFFFFF00FF79 -:1021700000FF00FFFFFF00FF00FF00FFFFFF00FF69 -:1021800000FF68FFFFFF02FF00FF00FFFFFF00FFEF -:1021900000FF00FFFFFF00FF00FF00FFFFFF00FF49 -:1021A00000FF00FFFFFF00FF00FF60FFFFFF22FFB7 -:1021B00000FF00FFFFFF00FF00FF00FFFFFF00FF29 -:1021C00000FF00FFFFFF00FF00FF00FFFFFF00FF19 -:1021D00046FF90FFFFFF62FFF7FF4FFFFFFFF4FF97 -:1021E00046FF90FFFFFF74FF8DFF83FFFFFF70FF2F -:1021F00047FF90FFFFFF00FF00FF48FFFFFF04FFC6 -:10220000A0FF23FFFFFF0FFF46FF90FFFFFF6AFFC6 -:1022100000FF0CFFFFFF20FF00FF0AFFFFFF1FFF73 -:1022200046FF88FFFFFF00FF00FF38FFFFFF08FFAA -:1022300000FF50FFFFFF03FF00FF00FFFFFF00FF55 -:1022400000FF00FFFFFF00FF00FF00FFFFFF00FF98 -:1022500000FF00FFFFFF00FF46FF90FFFFFF60FF52 -:10226000F7FF4FFFFFFFF4FF46FF90FFFFFF74FFF4 -:102270008DFF83FFFFFF70FF47FF90FFFFFF00FF11 -:1022800000FF48FFFFFF04FFA0FF23FFFFFF0FFF3A -:1022900046FF90FFFFFF6AFF00FF0CFFFFFF20FFDC -:1022A00000FF0AFFFFFF1FFF46FF88FFFFFF00FF41 -:1022B00000FF38FFFFFF08FF00FF38FFFFFF04FFAC -:1022C00000FF00FFFFFF00FF00FF00FFFFFF00FF18 -:1022D00000FF00FFFFFF00FF00FF00FFFFFF00FF08 -:1022E00046FF80FFFFFF10FF00FF58FFFFFF03FFC7 -:1022F00000FF50FFFFFF23FF00FF00FFFFFF00FF75 -:1023000000FF00FFFFFF00FF00FF00FFFFFF00FFD7 -:1023100000FF00FFFFFF00FF46FF90FFFFFF62FF8F -:10232000F7FF4FFFFFFFF4FF46FF90FFFFFF74FF33 -:102330008DFF83FFFFFF70FF47FF90FFFFFF00FF50 -:1023400000FF48FFFFFF04FFA0FF23FFFFFF0FFF79 -:1023500046FF90FFFFFF6AFF00FF0CFFFFFF20FF1B -:1023600000FF0AFFFFFF1FFF46FF80FFFFFF00FF88 -:10237000FFFF93FFFFFFE0FFFFFF83FFFFFFE2FF91 -:1023800046FF90FFFFFF62FFF7FF4FFFFFFFF4FFE5 -:1023900046FF90FFFFFF74FF8DFF83FFFFFF70FF7D -:1023A00047FF90FFFFFF00FF00FF48FFFFFF04FF14 -:1023B000A0FF23FFFFFF0FFF46FF90FFFFFF6AFF15 -:1023C00000FF0CFFFFFF20FF00FF0AFFFFFF1FFFC2 -:1023D00003FF0DFFFFFF0FFF00FF00FFFFFF00FFE8 -:1023E00000FF00FFFFFF00FF00FF00FFFFFF00FFF7 -:1023F00000FF00FFFFFF00FF46FF90FFFFFF60FFB1 -:102400000CFF0DFFFFFFF0FF00FF00FFFFFF00FFCD -:1024100000FF00FFFFFF00FF00FF00FFFFFF00FFC6 -:1024200000FF00FFFFFF00FFF7FF4FFFFFFFF4FF7C -:1024300046FF90FFFFFF74FF8DFF83FFFFFF70FFDC -:1024400047FF90FFFFFF00FF00FF48FFFFFF04FF73 -:10245000A0FF23FFFFFF0FFF46FF90FFFFFF6AFF74 -:1024600000FF0CFFFFFF20FF00FF0AFFFFFF1FFF21 -:1024700046FF80FFFFFF02FF00FF00FFFFFF00FF9E -:1024800000FF00FFFFFF00FF00FF00FFFFFF00FF56 -:1024900000FF00FFFFFF00FF00FF00FFFFFF00FF46 -:1024A00000FF00FFFFFF00FF00FF00FFFFFF00FF36 -:1024B00000FF00FFFFFF00FF46FF80FFFFFF13FF4D -:1024C00000FF40FFFFFF00FF11FF90FFFFFF60FFD5 -:1024D0008DFF93FFFFFFD0FF11FF90FFFFFFF2FF83 -:1024E00011FF90FFFFFFE3FFF7FF4FFFFFFFF4FF38 -:1024F00046FF90FFFFFF74FF8DFF83FFFFFF70FF1C -:1025000047FF90FFFFFF00FF00FF48FFFFFF04FFB2 -:10251000A0FF23FFFFFF0FFF46FF90FFFFFF6AFFB3 -:1025200000FF0CFFFFFF20FF00FF0AFFFFFF1FFF60 -:1025300046FF84FFFFFF00FF00FF34FFFFFF08FF9F -:1025400000FF34FFFFFF06FF00FF00FFFFFF00FF5B -:1025500000FF00FFFFFF00FF00FF00FFFFFF00FF85 -:1025600000FF00FFFFFF00FF46FF80FFFFFF10FF9F -:10257000FFFF93FFFFFFE0FF00FF60FFFFFF22FF71 -:1025800067FF40FFFFFF40FFFFFF93FFFFFFE0FFFC -:1025900000FF00FFFFFF00FF00FF00FFFFFF00FF45 -:1025A00000FF00FFFFFF00FF00FF00FFFFFF00FF35 -:1025B00046FF90FFFFFF62FFF7FF4FFFFFFFF4FFB3 -:1025C00046FF90FFFFFF74FF8DFF83FFFFFF70FF4B -:1025D00047FF90FFFFFF00FF00FF48FFFFFF04FFE2 -:1025E000A0FF23FFFFFF0FFF46FF90FFFFFF6AFFE3 -:1025F00000FF0CFFFFFF20FF00FF0AFFFFFF1FFF90 -:1026000046FF84FFFFFF00FF00FF34FFFFFF08FFCE -:1026100000FF34FFFFFF06FF00FF00FFFFFF00FF8A -:1026200000FF00FFFFFF00FF46FF80FFFFFF10FFDE -:1026300000FF00FFFFFF00FF00FF00FFFFFF00FFA4 -:1026400000FF00FFFFFF00FF00FF00FFFFFF00FF94 -:1026500046FF80FFFFFF23FFFFFF93FFFFFFE0FF29 -:1026600000FF68FFFFFF32FF00FF60FFFFFF72FF08 -:1026700067FF40FFFFFF40FFFFFF93FFFFFFE0FF0B -:1026800000FF00FFFFFF00FF00FF00FFFFFF00FF54 -:1026900000FF00FFFFFF00FF00FF00FFFFFF00FF44 -:1026A00046FF90FFFFFF67FFF7FF4FFFFFFFF4FFBD -:1026B00046FF90FFFFFF74FF8DFF83FFFFFF70FF5A -:1026C00047FF90FFFFFF00FF00FF48FFFFFF04FFF1 -:1026D000A0FF23FFFFFF0FFF46FF90FFFFFF6AFFF2 -:1026E00000FF0CFFFFFF20FF00FF0AFFFFFF1FFF9F -:1026F00046FF80FFFFFF05FF03FF0DFFFFFF0FFFFA -:1027000000FF00FFFFFF00FF00FF00FFFFFF00FFD3 -:1027100000FF00FFFFFF00FF00FF00FFFFFF00FFC3 -:102720000CFF0DFFFFFFF5FF00FF00FFFFFF00FFA5 -:1027300000FF00FFFFFF00FF00FF00FFFFFF00FFA3 -:1027400000FF00FFFFFF00FFF7FF4FFFFFFFF4FF59 -:1027500046FF90FFFFFF74FF8DFF83FFFFFF70FFB9 -:1027600047FF90FFFFFF00FF00FF48FFFFFF04FF50 -:10277000A0FF23FFFFFF0FFF46FF90FFFFFF6AFF51 -:1027800000FF0CFFFFFF20FF00FF0AFFFFFF1FFFFE -:1027900046FF80FFFFFF00FF8DFF93FFFFFFC0FF9D -:1027A0008DFF83FFFFFFC7FF46FF90FFFFFF67FF1F -:1027B000F7FF4FFFFFFFF4FF46FF90FFFFFF74FF9F -:1027C0008DFF83FFFFFF70FF47FF90FFFFFF00FFBC -:1027D00000FF48FFFFFF04FFA0FF23FFFFFF0FFFE5 -:1027E00046FF90FFFFFF6AFF00FF0CFFFFFF20FF87 -:1027F00000FF0AFFFFFF1FFF46FF80FFFFFF00FFF4 -:102800008DFF93FFFFFFE0FF8DFF83FFFFFFE7FFDB -:1028100000FF00FFFFFF00FF00FF00FFFFFF00FFC2 -:1028200000FF00FFFFFF00FF00FF00FFFFFF00FFB2 -:1028300046FF90FFFFFF67FFF7FF4FFFFFFFF4FF2B -:1028400046FF90FFFFFF74FF8DFF83FFFFFF70FFC8 -:1028500047FF90FFFFFF00FF00FF48FFFFFF04FF5F -:10286000A0FF23FFFFFF0FFF46FF90FFFFFF6AFF60 -:1028700000FF0CFFFFFF20FF00FF0AFFFFFF1FFF0D -:102880008DFF83FFFFFFD0FF00FF40FFFFFF24FF0E -:10289000A0FF23FFFFFF0FFF11FF90FFFFFF6AFF65 -:1028A00000FF40FFFFFF14FF18FF23FFFFFF0FFF94 -:1028B00051FF14FFFFFF81FF90FF80FFFFFF60FFCC -:1028C00080FF23FFFFFF0FFF8DFF83FFFFFFD0FF80 -:1028D00000FF40FFFFFF14FFA0FF23FFFFFF0FFFDC -:1028E00011FF90FFFFFF6AFF30FF0CFFFFFF00FFAB -:1028F00000FF40FFFFFF16FF10FF40FFFFFF07FF35 -:1029000090FF34FFFFFF71FF00FF34FFFFFF09FF5F -:102910000FFF40FFFFFFF5FF00FF60FFFFFF07FF16 -:1029200088FF63FFFFFF27FFE8FF60FFFFFF07FF50 -:1029300062FF61FFFFFF27FF88FF2BFFFFFF8BFF79 -:10294000E8FF60FFFFFF07FF62FF61FFFFFF17FF68 -:1029500088FF2FFFFFFFFBFF89FF23FFFFFF0FFF14 -:1029600098FF20FFFFFF0FFFEAFF20FFFFFF0FFF91 -:1029700000FF0DFFFFFFABFF00FF0DFFFFFFB8FFE4 -:1029800000FF0DFFFFFFCFFF62FF21FFFFFF0FFFE3 -:1029900010FF22FFFFFF0FFF62FF21FFFFFF0FFF6E -:1029A00000FF40FFFFFF24FF90FF80FFFFFF60FF5D -:1029B00080FF23FFFFFF0FFF51FF18FFFFFF00FF06 -:1029C0008BFF93FFFFFFEBFF8BFF93FFFFFFFCFFEE -:1029D00000FF0AFFFFFF0FFF51FF1CFFFFFF0FFF6C -:1029E0008DFF93FFFFFFACFF82FF3CFFFFFF45FF22 -:1029F00054FF14FFFFFF2EFFFFFF3FFFFFFFF5FF18 -:102A000054FF14FFFFFF1EFF00FF00FFFFFF00FF4A -:102A100000FF00FFFFFF00FF51FF1CFFFFFF0FFF44 -:102A200000FF0DFFFFFF0CFF8DFF83FFFFFFA4FFE3 -:102A3000E0FF22FFFFFF0FFF53FF18FFFFFFB3FF71 -:102A40008DFF83FFFFFFD0FF00FF40FFFFFF24FF4C -:102A5000A0FF23FFFFFF0FFF00FF0DFFFFFFBAFFE7 -:102A60008BFF83FFFFFFF5FF11FF90FFFFFF6BFF61 -:102A700000FF40FFFFFF14FF18FF23FFFFFF0FFFC2 -:102A800055FF14FFFFFF21FF90FF80FFFFFF60FF56 -:102A900080FF23FFFFFF0FFF00FF40FFFFFF20FF2E -:102AA00000FF40FFFFFF01FF8BFF83FFFFFFE4FFFD -:102AB0008BFF83FFFFFFF5FF08FF0CFFFFFF00FF09 -:102AC00060FF22FFFFFF0FFF49FF2AFFFFFFEAFF22 -:102AD00000FF0DFFFFFF4EFF8BFF93FFFFFFEEFF99 -:102AE00000FF0DFFFFFF5AFF8BFF93FFFFFFFAFF71 -:102AF0008DFF83FFFFFF20FF8DFF83FFFFFF31FF6F -:102B0000E0FF22FFFFFF0FFFC9FF2AFFFFFFEAFFE1 -:102B100054FF18FFFFFFD5FF00FF0DFFFFFF4EFF23 -:102B200000FF0DFFFFFF5AFF82FF4FFFFFFFF0FF87 -:102B3000FFFF4FFFFFFFF1FFE0FF22FFFFFF0FFF4F -:102B4000C9FF2AFFFFFFEAFF56FF18FFFFFFB4FF90 -:102B500054FF18FFFFFFDFFF00FF40FFFFFF20FFD4 -:102B600047FF90FFFFFF20FF0CFF0CFFFFFF00FF60 -:102B700002FF40FFFFFF60FF11FF90FFFFFF20FFFC -:102B800016FF18FFFFFF4FFF8DFF83FFFFFFD0FFF2 -:102B900000FF40FFFFFF24FFA0FF23FFFFFF0FFF09 -:102BA00011FF90FFFFFF6AFF00FF40FFFFFF14FFD0 -:102BB00018FF23FFFFFF0FFF57FF14FFFFFF91FFD9 -:102BC00090FF80FFFFFF60FF80FF23FFFFFF0FFFED -:102BD0008DFF83FFFFFFD0FF00FF40FFFFFF14FFCB -:102BE000A0FF23FFFFFF0FFF11FF90FFFFFF6AFF12 -:102BF00030FF0CFFFFFF00FF00FF40FFFFFF16FF4D -:102C000010FF40FFFFFF07FF90FF34FFFFFF71FF42 -:102C100000FF34FFFFFF09FF0FFF40FFFFFFF5FF3D -:102C200000FF60FFFFFF07FF88FF63FFFFFF27FF35 -:102C3000E8FF60FFFFFF07FF62FF61FFFFFF27FF65 -:102C400088FF2BFFFFFF8BFFE8FF60FFFFFF07FF01 -:102C500062FF61FFFFFF17FF88FF2FFFFFFFFBFFF2 -:102C600089FF23FFFFFF0FFF98FF20FFFFFF0FFFEC -:102C7000EAFF20FFFFFF0FFF00FF0DFFFFFFABFF8D -:102C800000FF0DFFFFFFB8FF00FF0DFFFFFFCFFFAD -:102C900062FF21FFFFFF0FFF10FF22FFFFFF0FFF6B -:102CA00062FF21FFFFFF0FFF00FF40FFFFFF24FF38 -:102CB00090FF80FFFFFF60FF80FF23FFFFFF0FFFFC -:102CC00057FF18FFFFFF10FF8BFF93FFFFFFEBFF86 -:102CD0008BFF93FFFFFFFCFF5CFF1CFFFFFF3FFF2D -:102CE00000FF0AFFFFFF0FFF57FF1CFFFFFF1FFF43 -:102CF0008DFF93FFFFFFACFF82FF3CFFFFFF45FF0F -:102D00005AFF14FFFFFF4EFFFFFF3FFFFFFFF5FFDE -:102D10005AFF14FFFFFF3EFF00FF00FFFFFF00FF11 -:102D200000FF00FFFFFF00FF57FF1CFFFFFF1FFF1B -:102D300000FF0DFFFFFF0CFF8DFF83FFFFFFA4FFD0 -:102D4000E0FF22FFFFFF0FFF59FF18FFFFFFD3FF38 -:102D50005CFF1CFFFFFF3FFF8DFF83FFFFFFD0FFE6 -:102D600000FF40FFFFFF24FFA0FF23FFFFFF0FFF37 -:102D700000FF0DFFFFFFBAFF8BFF83FFFFFFF5FF93 -:102D80005CFF1CFFFFFF3FFF11FF90FFFFFF6BFF8A -:102D900000FF40FFFFFF14FF18FF23FFFFFF0FFF9F -:102DA0005BFF14FFFFFF61FF90FF80FFFFFF60FFED -:102DB00080FF23FFFFFF0FFF00FF40FFFFFF20FF0B -:102DC00000FF40FFFFFF01FF8BFF83FFFFFFE4FFDA -:102DD0008BFF83FFFFFFF5FF08FF0CFFFFFF00FFE6 -:102DE00060FF22FFFFFF0FFF49FF2AFFFFFFEAFFFF -:102DF00000FF0DFFFFFF4EFF8BFF93FFFFFFEEFF76 -:102E00008BFF93FFFFFFFAFF5EFF1CFFFFFF0FFF2B -:102E10005BFF18FFFFFF0FFF8BFF83FFFFFF20FF0C -:102E200078FF22FFFFFF0FFF0DFF18FFFFFF05FFD9 -:102E300000FF0AFFFFFF0FFF08FF0CFFFFFF00FF6F -:102E400000FF40FFFFFF14FF00FF40FFFFFF05FFF3 -:102E50008BFF83FFFFFFE0FF8BFF83FFFFFFF1FF8F -:102E600060FF22FFFFFF0FFF49FF2AFFFFFFEAFF7E -:102E70008BFF93FFFFFFFAFF8BFF93FFFFFFEEFF38 -:102E80000CFF0CFFFFFF00FF00FF0AFFFFFF0FFF1B -:102E900008FF0CFFFFFF00FF00FF40FFFFFF14FFD4 -:102EA00000FF40FFFFFF05FF8BFF83FFFFFFE0FFF9 -:102EB0008BFF83FFFFFFF1FF60FF22FFFFFF0FFF8C -:102EC00049FF2AFFFFFFEAFF8BFF93FFFFFFFAFF97 -:102ED0008BFF93FFFFFFEEFF0CFF0CFFFFFF00FFD8 -:102EE0008DFF83FFFFFF40FF78FF22FFFFFF0FFFF3 -:102EF0005EFF1CFFFFFF04FF00FF0AFFFFFF0FFF45 -:102F000008FF0CFFFFFF00FF8DFF83FFFFFF50FF57 -:102F100078FF22FFFFFF0FFF5FFF1CFFFFFF54FF43 -:102F20000FFF40FFFFFFF5FF90FF80FFFFFFA8FFAF -:102F300010FF0FFFFFFF08FF90FF80FFFFFF90FFD4 -:102F400088FF27FFFFFF0FFFB6FF27FFFFFF0FFFE1 -:102F50008BFF83FFFFFFFAFFF2FF22FFFFFF0FFF50 -:102F600000FF0DFFFFFF0AFF00FF40FFFFFF14FF00 -:102F7000E2FF22FFFFFF0FFF74FF18FFFFFFE2FFDA -:102F800038FF23FFFFFF0FFF00FF40FFFFFF24FF7D -:102F9000E2FF22FFFFFF0FFF74FF18FFFFFFE2FFBA -:102FA00000FF0AFFFFFF0FFF0FFF40FFFFFFF5FFCE -:102FB00090FF80FFFFFF80FF8BFF83FFFFFFE2FF9B -:102FC00088FF27FFFFFF0FFF98FF20FFFFFF0FFF86 -:102FD00010FF40FFFFFF07FFE8FF20FFFFFF0FFF8D -:102FE00000FF0DFFFFFFACFFF2FF22FFFFFF0FFF0F -:102FF00000FF0DFFFFFF0AFF01FF40FFFFFF04FF7F -:10300000E2FF22FFFFFF0FFF74FF18FFFFFFE2FF49 -:1030100038FF23FFFFFF0FFF02FF40FFFFFF04FF0A -:10302000E2FF22FFFFFF0FFF74FF18FFFFFFE2FF29 -:1030300000FF0AFFFFFF0FFF00FF34FFFFFF08FF45 -:1030400000FF34FFFFFFD4FF00FF34FFFFFF85FFC9 -:10305000FFFF4FFFFFFF89FF00FF09FFFFFF01FF99 -:1030600089FF83FFFFFFB8FF00FF0EFFFFFF0FFF89 -:1030700000FF0DFFFFFF4EFFA7FF23FFFFFF0FFF26 -:1030800000FF68FFFFFFA3FF89FF83FFFFFFA8FF8B -:1030900000FF0EFFFFFF0FFF00FF0DFFFFFF4EFFC2 -:1030A000A7FF23FFFFFF0FFF00FF68FFFFFFA3FF46 -:1030B00000FF09FFFFFF03FF8BFF83FFFFFFB0FF50 -:1030C00000FF68FFFFFF00FF00FF0AFFFFFF0FFF89 -:1030D00002FF35FFFFFF00FF00FF34FFFFFF08FF87 -:1030E00000FF34FFFFFF26FF89FF83FFFFFFD8FFAC -:1030F00000FF0EFFFFFF0FFF00FF0DFFFFFF4EFF62 -:10310000A7FF23FFFFFF0FFF00FF68FFFFFFA3FFE5 -:1031100089FF83FFFFFFC8FF00FF0EFFFFFF0FFFC8 -:1031200000FF0DFFFFFF4EFFA7FF23FFFFFF0FFF75 -:1031300000FF68FFFFFFA3FF00FF09FFFFFF03FF82 -:103140008BFF83FFFFFFD0FF00FF68FFFFFF02FF41 -:1031500001FF40FFFFFF80FF00FF68FFFFFF02FF4E -:1031600000FF40FFFFFF20FF00FF68FFFFFF03FF9E -:1031700000FF0AFFFFFF0FFF00FF40FFFFFF10FFF0 -:103180008BFF93FFFFFF40FF30FF40FFFFFF00FF7B -:1031900049FF90FFFFFF40FF00FF0AFFFFFF0FFF07 -:1031A00000FF40FFFFFF60FF00FF91FFFFFFF0FF08 -:1031B00000FF0AFFFFFF0FFF01FF42FFFFFF80FF3D -:1031C00000FF91FFFFFF70FF07FF42FFFFFF80FF3F -:1031D00003FF91FFFFFF70FF02FF42FFFFFF00FFB1 -:1031E00000FF91FFFFFFF0FF08FF42FFFFFF00FF1E -:1031F00003FF91FFFFFFF0FF00FF40FFFFFF20FFF5 -:1032000001FF91FFFFFF70FF00FF40FFFFFF20FF66 -:1032100004FF91FFFFFF70FF00FF0AFFFFFF0FFF9A -:1032200004FF42FFFFFF00FF49FF90FFFFFF20FF69 -:1032300062FF1CFFFFFFFFFF00FF0AFFFFFF0FFF02 -:1032400000FF40FFFFFF20FF00FF91FFFFFFF0FFA7 -:1032500001FF42FFFFFF00FF49FF90FFFFFF20FF3C -:1032600062FF1CFFFFFFFFFF00FF0AFFFFFF0FFFD2 -:1032700000FF40FFFFFF40FF8BFF93FFFFFF80FF3A -:1032800005FF35FFFFFF00FF92FF3BFFFFFF00FF41 -:1032900000FF34FFFFFF08FF00FF38FFFFFF08FFBC -:1032A00000FF3CFFFFFF65FF65FF14FFFFFF9EFF70 -:1032B00000FF60FFFFFF03FF00FF60FFFFFF13FF42 -:1032C00000FF78FFFFFF13FF00FF78FFFFFF03FF02 -:1032D00001FF42FFFFFF00FF49FF90FFFFFF20FFBC -:1032E00062FF1CFFFFFFFFFF05FF81FFFFFFC0FF25 -:1032F00078FF22FFFFFF0FFF21FF18FFFFFF71FF85 -:1033000000FF0AFFFFFF0FFF49FF80FFFFFF48FF9D -:1033100010FF0FFFFFFF03FF66FF23FFFFFF0FFFFD -:1033200074FF18FFFFFF54FF86FF83FFFFFFC0FFFE -:1033300049FF90FFFFFF20FF62FF1CFFFFFFFFFF21 -:1033400086FF83FFFFFF80FF01FF40FFFFFF04FFB9 -:10335000E0FF22FFFFFF0FFF86FF93FFFFFF8AFFC3 -:1033600067FF1CFFFFFF00FF86FF87FFFFFFD0FF07 -:1033700075FF1CFFFFFF1FFF00FF0AFFFFFF0FFF8E -:1033800000FF48FFFFFF00FF82FF93FFFFFF40FFAA -:1033900000FF0AFFFFFF0FFF08FF0CFFFFFF00FF0A -:1033A00086FF8BFFFFFFB0FF00FF38FFFFFF08FF26 -:1033B00000FF38FFFFFFF4FFFFFF4FFFFFFF89FF14 -:1033C0008DFF83FFFFFF60FF89FF83FFFFFF44FF47 -:1033D00000FF40FFFFFF01FF89FF83FFFFFF55FF55 -:1033E00060FF26FFFFFF0FFF49FF22FFFFFF0FFFD8 -:1033F00000FF78FFFFFFA3FF10FF22FFFFFF0FFF7B -:1034000000FF78FFFFFFA0FF8DFF83FFFFFF60FF3E -:1034100089FF83FFFFFF24FF00FF40FFFFFF01FF45 -:1034200089FF83FFFFFF35FF60FF26FFFFFF0FFFD0 -:1034300049FF22FFFFFF0FFF00FF78FFFFFFA3FF01 -:1034400010FF22FFFFFF0FFF00FF78FFFFFFA3FF2A -:103450008DFF83FFFFFF60FF20FF40FFFFFF04FFA2 -:1034600060FF22FFFFFF0FFF8DFF93FFFFFF6AFF4B -:103470000CFF0CFFFFFF00FF00FF0AFFFFFF0FFF25 -:1034800008FF0CFFFFFF00FF86FF87FFFFFFB0FF75 -:1034900000FF34FFFFFF08FF01FF34FFFFFF04FFC1 -:1034A00000FF34FFFFFF35FFFFFF4FFFFFFF89FFE6 -:1034B00000FF09FFFFFF01FF87FF8BFFFFFFE0FF1A -:1034C00000FF38FFFFFF88FF00FF70FFFFFF03FFD3 -:1034D00000FF68FFFFFF00FF00FF70FFFFFF03FF1B -:1034E00000FF68FFFFFF03FF87FF9BFFFFFFE0FF79 -:1034F0000CFF0CFFFFFF00FF00FF0AFFFFFF0FFFA5 -:1035000001FF3CFFFFFF05FF6AFF14FFFFFF9EFF67 -:1035100067FF1CFFFFFF3FFF69FF1CFFFFFF0FFF5F -:1035200066FF1CFFFFFF1FFF38FF22FFFFFF0FFF9B -:103530006AFF14FFFFFF85FF8BFF83FFFFFF40FF44 -:1035400078FF22FFFFFF0FFF00FF00FFFFFF00FFDC -:1035500000FF0AFFFFFF0FFF82FF83FFFFFF40FF17 -:1035600078FF22FFFFFF0FFF6AFF1CFFFFFFF4FF42 -:1035700000FF0AFFFFFF0FFF00FF40FFFFFF10FFEC -:1035800047FF90FFFFFF20FF87FF83FFFFFFF0FF54 -:1035900086FF93FFFFFF80FF00FF40FFFFFF00FF5C -:1035A0008DFF93FFFFFF60FF82FF93FFFFFF40FF50 -:1035B00086FF87FFFFFF90FF02FF34FFFFFF08FF3A -:1035C00000FF60FFFFFF03FF89FF93FFFFFF20FF66 -:1035D00000FF60FFFFFF03FF89FF93FFFFFF30FF46 -:1035E00000FF60FFFFFF03FF89FF93FFFFFF40FF26 -:1035F00000FF60FFFFFF03FF89FF93FFFFFF50FF06 -:1036000086FF97FFFFFF90FF00FF0AFFFFFF0FFFFE -:1036100000FF34FFFFFF64FF00FF34FFFFFF35FFB3 -:1036200001FF34FFFFFF96FF00FF38FFFFFF34FF6D -:1036300000FF38FFFFFF65FF01FF38FFFFFF96FF28 -:1036400000FF38FFFFFF08FF02FF34FFFFFF49FFC5 -:1036500002FF38FFFFFF49FF10FF40FFFFFF06FF9B -:1036600010FF40FFFFFF02FF30FF0CFFFFFF00FFD6 -:1036700000FF3CFFFFFF25FF6DFF14FFFFFFBEFFB4 -:1036800098FF50FFFFFF73FF88FF50FFFFFF73FF9E -:1036900083FF68FFFFFFC5FF88FF68FFFFFFC4FFD0 -:1036A00083FF68FFFFFFC5FF00FF68FFFFFFC6FF46 -:1036B00098FF50FFFFFF73FF88FF50FFFFFF73FF6E -:1036C00083FF78FFFFFFC4FF88FF78FFFFFFC5FF80 -:1036D00083FF78FFFFFFC4FF00FF78FFFFFFC6FFF7 -:1036E00098FF50FFFFFF73FF88FF50FFFFFF73FF3E -:1036F00083FF68FFFFFFC5FF88FF68FFFFFFC4FF70 -:1037000083FF68FFFFFFC5FF00FF68FFFFFFC6FFE5 -:1037100000FF3CFFFFFF25FF6EFF14FFFFFF8EFF42 -:1037200098FF50FFFFFF73FF88FF50FFFFFF73FFFD -:1037300083FF78FFFFFFC4FF88FF78FFFFFFC4FF10 -:1037400000FF78FFFFFFC4FF20FF0CFFFFFF00FF1B -:1037500000FF0AFFFFFF0FFF00FF34FFFFFFE9FF3D -:1037600001FF38FFFFFF28FF01FF38FFFFFF29FFA0 -:1037700000FF38FFFFFF66FF00FF38FFFFFF34FF49 -:1037800000FF38FFFFFF75FF10FF40FFFFFF06FF40 -:1037900000FF41FFFFFF07FF30FF0CFFFFFF00FFAF -:1037A00098FF70FFFFFF20FF00FF3CFFFFFF25FF9A -:1037B00070FF14FFFFFF2EFF80FF70FFFFFF42FF2F -:1037C00063FF72FFFFFF20FF80FF68FFFFFFA7FF7F -:1037D00000FF70FFFFFF41FF63FF72FFFFFF24FF49 -:1037E00080FF68FFFFFFA7FF00FF70FFFFFF46FF9E -:1037F00063FF72FFFFFF24FF80FF68FFFFFFA7FF4B -:1038000000FF70FFFFFF45FF63FF72FFFFFF20FF18 -:1038100000FF68FFFFFFA7FF80FF70FFFFFF42FF71 -:1038200063FF72FFFFFF20FF80FF70FFFFFF41FF7C -:1038300063FF6AFFFFFFA7FF00FF70FFFFFF24FF8A -:1038400080FF68FFFFFFA7FF00FF70FFFFFF44FF3F -:1038500063FF72FFFFFF24FF80FF68FFFFFFA7FFEA -:10386000F0FF40FFFFFF05FF00FF4FFFFFFF04FFDA -:1038700000FF0DFFFFFF0BFF80FF27FFFFFF0FFF84 -:1038800088FF23FFFFFF0FFFEAFF20FFFFFF0FFF6F -:1038900074FF22FFFFFF0FFF00FF68FFFFFFA7FF7E -:1038A00000FF70FFFFFF24FF80FF70FFFFFF44FF5A -:1038B00063FF72FFFFFF24FF80FF68FFFFFFA7FF8A -:1038C00000FF4FFFFFFF04FF00FF0DFFFFFF0BFF97 -:1038D00080FF27FFFFFF0FFF88FF23FFFFFF0FFF82 -:1038E000EAFF20FFFFFF0FFF74FF22FFFFFF0FFF24 -:1038F00000FF68FFFFFFA7FF00FF0AFFFFFF0FFFAA -:1039000038FF22FFFFFF0FFF72FF14FFFFFF35FF9D -:103910008BFF83FFFFFF30FF78FF22FFFFFF0FFFCA -:1039200000FF0AFFFFFF0FFF0EFF40FFFFFF00FF3A -:1039300010FF90FFFFFF10FF08FF40FFFFFF00FF99 -:1039400010FF90FFFFFF90FF02FF40FFFFFF40FFCF -:1039500011FF90FFFFFF20FF00FF40FFFFFF00FF70 -:1039600010FF90FFFFFFB0FFB0FF40FFFFFF00FF21 -:1039700047FF90FFFFFF50FF30FF40FFFFFF00FFBA -:1039800047FF90FFFFFF40FF78FF42FFFFFF50FF20 -:1039900048FF90FFFFFFA0FF40FF40FFFFFF00FF39 -:1039A00049FF90FFFFFF70FF18FF40FFFFFF00FF80 -:1039B00047FF90FFFFFF70FF18FF40FFFFFF10FF62 -:1039C00047FF90FFFFFF70FF18FF40FFFFFF00FF62 -:1039D00047FF90FFFFFF70FF00FF40FFFFFF00FF6A -:1039E00011FF90FFFFFF60FF8DFF93FFFFFFD0FFF0 -:1039F0000BFF40FFFFFF80FF11FF90FFFFFFF0FF75 -:103A000000FF40FFFFFF10FF11FF90FFFFFFE0FFEF -:103A100000FF48FFFFFF00FF00FF93FFFFFF00FFD5 -:103A200000FF0AFFFFFF0FFF08FF40FFFFFF00FF3F -:103A300047FF90FFFFFF20FF22FF18FFFFFF9FFFC0 -:103A400000FF48FFFFFF10FF86FF93FFFFFF70FF9F -:103A500022FF18FFFFFF9FFF00FF48FFFFFF00FF4F -:103A600086FF93FFFFFF70FF22FF18FFFFFF9FFFFE -:103A700000FF48FFFFFF20FF86FF93FFFFFF70FF5F -:103A800022FF18FFFFFF9FFF00FF34FFFFFF48FFEB -:103A900000FF60FFFFFF03FF86FF93FFFFFFB0FF04 -:103AA00000FF60FFFFFF03FF86FF93FFFFFFC0FFE4 -:103AB00086FF97FFFFFFD0FF00FF0AFFFFFF0FFF0A -:103AC00080FF37FFFFFF02FF84FF3BFFFFFF02FF86 -:103AD00000FF60FFFFFF0BFF0CFF0DFFFFFF90FFDC -:103AE00000FF70FFFFFF0BFF0CFF0DFFFFFFB0FF9C -:103AF00088FF37FFFFFF03FF8CFF3BFFFFFF03FF44 -:103B000000FF40FFFFFF01FF8BFF93FFFFFF51FF0F -:103B100082FF43FFFFFF80FF8BFF93FFFFFF60FFEC -:103B200000FF34FFFFFF89FF00FF40FFFFFF00FFA2 -:103B30000CFF0DFFFFFF80FF0CFF0DFFFFFFA0FF3D -:103B400000FF0AFFFFFF0FFF80FF37FFFFFF00FFAF -:103B500000FF34FFFFFF08FF02FF3CFFFFFF45FFB0 -:103B600076FF14FFFFFFDEFF00FFA0FFFFFF03FF54 -:103B700084FF37FFFFFF00FF00FF34FFFFFF08FF58 -:103B800002FF3CFFFFFF45FF77FF14FFFFFF2EFF03 -:103B900000FFA0FFFFFF03FF7EFF38FFFFFF00FFD6 -:103BA00000FF38FFFFFF08FF00FF3CFFFFFFE5FFBE -:103BB00077FF14FFFFFF8EFF00FF40FFFFFF00FFB6 -:103BC00000FF58FFFFFF03FF00FF0AFFFFFF0FFF8B -:103BD00064FF1CFFFFFF4FFF38FF22FFFFFF0FFFB7 -:103BE00077FF14FFFFFFE5FF8BFF83FFFFFF40FF21 -:103BF00078FF22FFFFFF0FFF64FF1CFFFFFF8FFF17 -:103C000038FF22FFFFFF0FFF78FF14FFFFFF35FF94 -:103C10008BFF83FFFFFF40FF78FF22FFFFFF0FFFB7 -:103C200000FF0AFFFFFF0FFF00FF34FFFFFF09FF48 -:103C300000FF34FFFFFF85FF00FF34FFFFFF56FF4B -:103C400000FF09FFFFFF06FF20FF40FFFFFF00FF0F -:103C500001FF40FFFFFFC1FF00FF40FFFFFF44FFE8 -:103C600000FF68FFFFFF05FF00FF68FFFFFF15FF74 -:103C700000FF68FFFFFF05FF00FF68FFFFFF45FF34 -:103C800000FF0AFFFFFF0FFF86FF87FFFFFFF0FF28 -:103C900086FF8BFFFFFFE0FF00FF34FFFFFFC8FF41 -:103CA00000FF38FFFFFFC8FF00FF60FFFFFF03FFBB -:103CB00000FF60FFFFFF13FF00FF78FFFFFF13FF10 -:103CC00000FF78FFFFFF03FF86FF97FFFFFFF0FF76 -:103CD00086FF9BFFFFFFE0FF05FF81FFFFFFC0FFA7 -:103CE00078FF22FFFFFF0FFF21FF18FFFFFF71FF8B -:103CF00000FF0AFFFFFF0FFF7FFF38FFFFFF01FFFD -:103D000000FF38FFFFFF09FF00FF38FFFFFF06FF3E -:103D10007EFF40FFFFFF00FF00FF40FFFFFFB1FFFE -:103D200008FF0CFFFFFF00FF00FF3CFFFFFFC5FF88 -:103D30007AFF14FFFFFFBEFF00FF50FFFFFF46FFAB -:103D4000E1FF22FFFFFF0FFF7AFF1CFFFFFFE0FFF5 -:103D500060FF22FFFFFF0FFF00FF58FFFFFFA7FFDD -:103D60000CFF0CFFFFFF00FF00FF0AFFFFFF0FFF2C -:103D700000FF40FFFFFFC4FF00FF0AFFFFFF0FFF30 -:103D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:043D9000FFFFFFFF33 -:00000001FF diff --git a/firmware/matrox/g200_warp.H16 b/firmware/matrox/g200_warp.H16 deleted file mode 100644 index 5064b6f01bb4..000000000000 --- a/firmware/matrox/g200_warp.H16 +++ /dev/null @@ -1,28 +0,0 @@ -/* - * WARP pipes are named according to the functions they perform, where - * - * - T stands for computation of texture stage 0 - * - T2 stands for computation of both texture stage 0 and texture stage 1 - * - G stands for computation of triangle intensity (Gouraud interpolation) - * - Z stands for computation of Z buffer interpolation - * - S stands for computation of specular highlight - * - A stands for computation of the alpha channel - * - F stands for computation of vertex fog interpolation - */ -/* TGZ */ -:04B8000000008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E80098A0E94040D8ECFF80C0E9008000E81FD718BD3FD722BD8104890401040904C941C0EC110400E041CC41CD49CC49CDD141C0EC51CC51CD80041004080400E000CCC0CDD149C0EC8A1F20E98B3F20E9413C41AD493C49AD10CC10CD08CC08CDB94149BB1FF041CD513C51AD009880E9728007EA241F20E9154149BD1D4151BD2E412AB83453A0E815301D3058E300E0B54048BD3D4050BD2443A0E82C4BA0E8157209E300E01D723530B530BD303D309C97579F008000E86C64C8EC98E1B505BD052E3032C0A0E833C0A0E87464C8EC403C40AD326A2A302073336A00E028731C7283E2608015EAB83D28DF303520DF403000E0CCE26472254252BF2D424ABF302E30DF382E38DF181D45E91E1545E92B4951BD00E01F73383840AF303040AF241F24DF1D3220E92C1F2CDF1A3320E9B01008E34010B81026F030CD2FF038CD2B8020E92A8020E9A62088E200E0AF20282A26AF202AC0AF341F34DF462446DF283080BF203880BF472447DF4E2C4EDF4F2C4FDF563456DF281528DF201D20DF573457DF00E01D05048010EA89E22B303FC11DBD008000E8008000E8008000E8A068BF25008000E820C020AF2805977400E02A1016C020E9048010EA8CE2950528C128AD1FC115BD008000E8008000E8A8679F6B008000E828C028AD1D252005283280AD402A40BD1C8020E9203320AD207300E0B64951BB262FB0E8192020E9352035DF3D203DDF152015DF1D201DDF26D026CD29492AB8264080BD3B4850BD3E54579F00E082E11EAF599F008000E826302930483C48AD2B72C2E12CC044C2052434BF0D242CBF2D464EBF254656BF201D6F8F323E5FE93E50569F00E03B301E8F519F331E5FE9054454B20D444CB219C0B0E834C044C4337300E03E62579F1EAF599F00E00D20843E58E9281D6F8F052000E0851E58E99B3B33DF202042AF3042569F803E57E93F8F519F30805FE9282824AF811E57E9054757BF0D474FBF888058E91B291BDF301D6F8F3A304FE91C3026DF09E33B053E50569F3B3F4FE91E8F519F00E0AC202D444CB42C1CC0AF254454B400E0C830304630AF1B1B48AF00E02520382C4FE9868057E9381D6F8F287400E00D444CB0054454B02D209B10823E57E932F01BCD1EBD599F831E57E9384738AF34202A3000E00D2032200520878057E91F54579F1742569F00E03B6A3F8F519F371E4FE937322AAF00E03200008000E827C044C0361F4FE91F1F26DF371B37BF172617DF3E174FE93F3F4FE9341F34AF2B05A720332B37DF2717C0AF34804FE9008000E803800AEA17C12BBD008000E8008000E8B3689725008000E833C033AF3C274FE9573920E9281960EC2B3220E91D3B20E9B30500E0162820E9233B33AD1E2B20E91C8020E9573620E90080A0E94040D8ECFF80C0E990E200E085FF20EA19C8C1CD1FD718BD3FD722BD9F4149BD008000E8254149BD2D4151BD0D8007EA008000E8354048BD3D4050BD008000E825302D303530B530BD303D309CA75B9F008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E884FF0AEA008000E8C941C8EC42E100E082FF20EA008000E8008000E8008000E8C840C0EC008000E87FFF20EA008000E8008000E8008000E871 -/* TGZF */ -:0548000000008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E80098A0E94040D8ECFF80C0E9008000E81FD718BD3FD722BD8104890401040904C941C0EC110400E041CC41CD49CC49CDD141C0EC51CC51CD80041004080400E000CCC0CDD149C0EC8A1F20E98B3F20E9413C41AD493C49AD10CC10CD08CC08CDB94149BB1FF041CD513C51AD009880E97F8007EA241F20E9214580E81A4D80E8315580E8008000E8154149BD1D4151BD2E412AB83453A0E815301D3058E300E0B54048BD3D4050BD2443A0E82C4BA0E8157209E300E01D723530B530BD303D309C97579F008000E86C64C8EC98E1B505BD052E3032C0A0E833C0A0E87464C8EC403C40AD326A2A302073336A00E028731C7283E26B8015EAB83D28DF303520DF403000E0CCE26472254252BF2D424ABF302E30DF382E38DF181D45E91E1545E92B4951BD00E01F73383840AF303040AF241F24DF1D3220E92C1F2CDF1A3320E9B01008E34010B81026F030CD2FF038CD2B8020E92A8020E9A62088E200E0AF20282A26AF202AC0AF341F34DF462446DF283080BF203880BF472447DF4E2C4EDF4F2C4FDF563456DF281528DF201D20DF573457DF00E01D05048010EA89E22B303FC11DBD008000E8008000E8008000E8A068BF25008000E820C020AF2805977400E02A1016C020E9048010EA8CE2950528C128AD1FC115BD008000E8008000E8A8679F6B008000E828C028AD1D252005283280AD402A40BD1C8020E9203320AD207300E0B64951BB262FB0E8192020E9352035DF3D203DDF152015DF1D201DDF26D026CD29492AB8264080BD3B4850BD3E54579F00E082E11EAF599F008000E826302930483C48AD2B72C2E12CC044C2052434BF0D242CBF2D464EBF254656BF201D6F8F323E5FE93E50569F00E03B301E8F519F331E5FE9054454B20D444CB219C0B0E834C044C4337300E03E62579F1EAF599F00E00D20843E58E9281D6F8F052000E0851E58E99B3B33DF202042AF3042569F803E57E93F8F519F30805FE9282824AF811E57E9054757BF0D474FBF888058E91B291BDF301D6F8F3A304FE91C3026DF09E33B053E50569F3B3F4FE91E8F519F00E0AC202D444CB42C1CC0AF254454B400E0C830304630AF1B1B48AF00E02520382C4FE9868057E9381D6F8F287400E00D444CB0054454B02D209B10823E57E932F01BCD1EBD599F831E57E9384738AF34202A3000E00D2032200520878057E91F54579F1742569F00E03B6A3F8F519F371E4FE937322AAF00E03200008000E827C044C0361F4FE91F1F26DF371B37BF172617DF3E174FE93F3F4FE9341F34AF2B05A720332B37DF2717C0AF34804FE9008000E80D211AB6052131B603802AEA17C12BBD0D2005202FC021C6B3689725008000E833C033AF3C274FE91750569F008000E8370F5C9F00E02F20008000E8281960ECB30500E0008000E8233B33AD008000E8172617DF35174FE9008000E8008000E8008000E839374FE92F2F17AF008000E8008000E8008000E831804FE9008000E8008000E8573920E9162820E91D3B20E91E2B20E92B3220E91C2320E9573620E90080A0E94040D8ECFF80C0E990E200E078FF20EA19C8C1CD1FD718BD3FD722BD9F4149BD008000E8254149BD2D4151BD0D8007EA008000E8354048BD3D4050BD008000E825302D303530B530BD303D309CA75B9F008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E877FF0AEA008000E8C941C8EC42E100E075FF20EA008000E8008000E8008000E8C840C0EC008000E872FF20EA008000E8008000E8008000E8BB -/* TGZA */ -:04E80000000098A0E94040D8ECFF80C0E9008000E81FD718BD3FD722BD8104890401040904C941C0EC110400E041CC41CD49CC49CDD141C0EC51CC51CD80041004080400E000CCC0CDD149C0EC8A1F20E98B3F20E9413C41AD493C49AD10CC10CD08CC08CDB94149BB1FF041CD513C51AD009880E97D8007EA241F20E9154149BD1D4151BD2E412AB83453A0E815301D3058E300E0B54048BD3D4050BD2443A0E82C4BA0E8157209E300E01D723530B530BD303D309C97579F008000E86C64C8EC98E1B505BD052E3032C0A0E833C0A0E87464C8EC403C40AD326A2A302073336A00E028731C7283E26B8015EAB83D28DF303520DF403000E0CCE26472254252BF2D424ABF302E30DF382E38DF181D45E91E1545E92B4951BD00E01F73383840AF303040AF241F24DF1D3220E92C1F2CDF1A3320E9B01008E34010B81026F030CD2FF038CD2B8020E92A8020E9A62088E200E0AF20282A26AF202AC0AF341F34DF462446DF283080BF203880BF472447DF4E2C4EDF4F2C4FDF563456DF281528DF201D20DF573457DF00E01D05048010EA89E22B303FC11DBD008000E8008000E8008000E8A068BF25008000E820C020AF2805977400E02A1016C020E9048010EA8CE2950528C128AD1FC115BD008000E8008000E8A8679F6B008000E828C028AD1D252005283280AD402A40BD1C8020E9203320AD207300E0B64951BB262FB0E8192020E9352035DF3D203DDF152015DF1D201DDF26D026CD29492AB8264080BD3B4850BD3E54579F00E082E11EAF599F008000E826302930483C48AD2B72C2E12CC044C2052434BF0D242CBF2D464EBF254656BF201D6F8F323E5FE93E50569F00E03B301E8F519F331E5FE9054454B20D444CB219C0B0E834C044C4337300E03E62579F1EAF599F00E00D20843E58E9281D6F8F052000E0851E58E99B3B33DF202042AF3042569F803E57E93F8F519F30805FE9282824AF811E57E9054757BF0D474FBF888058E91B291BDF301D6F8F3A304FE91C3026DF09E33B053E50569F3B3F4FE91E8F519F00E0AC202D444CB42C1CC0AF254454B400E0C830304630AF1B1B48AF00E02520382C4FE9868057E9381D6F8F287400E00D444CB0054454B02D209B10823E57E932F01BCD1EBD599F831E57E9384738AF34202A3000E00D2032200520878057E91F54579F1742569F00E03B6A3F8F519F371E4FE937322AAF00E03200008000E827C044C0361F4FE91F1F26DF371B37BF172617DF3E174FE93F3F4FE9341F34AF2B05A720332B37DF2717C0AF34804FE9008000E82D444CB6254454B603802AEA17C12BBD2D20252007C044C6B3689725008000E833C033AF3C274FE91F62579F008000E83F3D5D9F00E00720008000E8281960ECB30500E0008000E8233B33AD008000E81F261FDF9D1F4FE9008000E8008000E8008000E89E3F4FE907071FAF008000E8008000E8008000E89C804FE9008000E8008000E8573920E9162820E91D3B20E91E2B20E92B3220E91C2320E9573620E90080A0E94040D8ECFF80C0E990E200E07AFF20EA19C8C1CD1FD718BD3FD722BD9F4149BD008000E8254149BD2D4151BD0D8007EA008000E8354048BD3D4050BD008000E825302D303530B530BD303D309CA75B9F008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E879FF0AEA008000E8C941C8EC42E100E077FF20EA008000E8008000E8008000E8C840C0EC008000E874FF20EA008000E8008000E8008000E8D9 -/* TGZAF */ -:0568000000008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E80098A0E94040D8ECFF80C0E9008000E81FD718BD3FD722BD8104890401040904C941C0EC110400E041CC41CD49CC49CDD141C0EC51CC51CD80041004080400E000CCC0CDD149C0EC8A1F20E98B3F20E9413C41AD493C49AD10CC10CD08CC08CDB94149BB1FF041CD513C51AD009880E9838007EA241F20E9214580E81A4D80E8315580E8008000E8154149BD1D4151BD2E412AB83453A0E815301D3058E300E0B54048BD3D4050BD2443A0E82C4BA0E8157209E300E01D723530B530BD303D309C97579F008000E86C64C8EC98E1B505BD052E3032C0A0E833C0A0E87464C8EC403C40AD326A2A302073336A00E028731C7283E26F8015EAB83D28DF303520DF403000E0CCE26472254252BF2D424ABF302E30DF382E38DF181D45E91E1545E92B4951BD00E01F73383840AF303040AF241F24DF1D3220E92C1F2CDF1A3320E9B01008E34010B81026F030CD2FF038CD2B8020E92A8020E9A62088E200E0AF20282A26AF202AC0AF341F34DF462446DF283080BF203880BF472447DF4E2C4EDF4F2C4FDF563456DF281528DF201D20DF573457DF00E01D05048010EA89E22B303FC11DBD008000E8008000E8008000E8A068BF25008000E820C020AF2805977400E02A1016C020E9048010EA8CE2950528C128AD1FC115BD008000E8008000E8A8679F6B008000E828C028AD1D252005283280AD402A40BD1C8020E9203320AD207300E0B64951BB262FB0E8192020E9352035DF3D203DDF152015DF1D201DDF26D026CD29492AB8264080BD3B4850BD3E54579F00E082E11EAF599F008000E826302930483C48AD2B72C2E12CC044C2052434BF0D242CBF2D464EBF254656BF201D6F8F323E5FE93E50569F00E03B301E8F519F331E5FE9054454B20D444CB219C0B0E834C044C4337300E03E62579F1EAF599F00E00D20843E58E9281D6F8F052000E0851E58E99B3B33DF202042AF3042569F803E57E93F8F519F30805FE9282824AF811E57E9054757BF0D474FBF888058E91B291BDF301D6F8F3A304FE91C3026DF09E33B053E50569F3B3F4FE91E8F519F00E0AC202D444CB42C1CC0AF254454B400E0C830304630AF1B1B48AF00E02520382C4FE9868057E9381D6F8F287400E00D444CB0054454B02D209B10823E57E932F01BCD1EBD599F831E57E9384738AF34202A3000E00D2032200520878057E91F54579F1742569F00E03B6A3F8F519F371E4FE937322AAF00E03200008000E827C044C0361F4FE91F1F26DF371B37BF172617DF3E174FE93F3F4FE9341F34AF2B05A720332B37DF2717C0AF34804FE9008000E80D211AB6052131B62D444CB6254454B603802AEA17C12BBD0D2005202FC021C6B3689725008000E833C033AF3C274FE900E0252007C044C61750569F00E02D20370F5C9F00E02F201F62579F00E007203F3D5D9F008000E8008000E8281960ECB30500E0172617DF233B33AD35174FE91F261FDF9D1F4FE99E3F4FE939374FE92F2F17AF008000E807071FAF008000E831804FE9008000E89C804FE9008000E8008000E8573920E9162820E91D3B20E91E2B20E92B3220E91C2320E9573620E90080A0E94040D8ECFF80C0E990E200E074FF20EA19C8C1CD1FD718BD3FD722BD9F4149BD008000E8254149BD2D4151BD0D8007EA008000E8354048BD3D4050BD008000E825302D303530B530BD303D309CA75B9F008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E873FF0AEA008000E8C941C8EC42E100E071FF20EA008000E8008000E8008000E8C840C0EC008000E86EFF20EA008000E8008000E8008000E830 -/* TGZS */ -:05C0000000008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E80098A0E94040D8ECFF80C0E9008000E81FD718BD3FD722BD8104890401040904C941C0EC110400E041CC41CD49CC49CDD141C0EC51CC51CD80041004080400E000CCC0CDD149C0EC8A1F20E98B3F20E9413C41AD493C49AD10CC10CD08CC08CDB94149BB1FF041CD513C51AD009880E98B8007EA241F20E9214580E81A4D80E8315580E8008000E8154149BD1D4151BD2E412AB83453A0E815301D3058E300E0B54048BD3D4050BD2443A0E82C4BA0E8157209E300E01D723530B530BD303D309C97579F008000E86C64C8EC98E1B505BD052E3032C0A0E833C0A0E87464C8EC403C40AD326A2A302073336A00E028731C7283E2778015EAB83D28DF303520DF403000E0CCE26472254252BF2D424ABF302E30DF382E38DF181D45E91E1545E92B4951BD00E01F73383840AF303040AF241F24DF1D3220E92C1F2CDF1A3320E9B01008E34010B81026F030CD2FF038CD2B8020E92A8020E9A62088E200E0AF20282A26AF202AC0AF341F34DF462446DF283080BF203880BF472447DF4E2C4EDF4F2C4FDF563456DF281528DF201D20DF573457DF00E01D05048010EA89E22B303FC11DBD008000E8008000E8008000E8A068BF25008000E820C020AF2805977400E02A1016C020E9048010EA8CE2950528C128AD1FC115BD008000E8008000E8A8679F6B008000E828C028AD1D252005283280AD402A40BD1C8020E9203320AD207300E0B64951BB262FB0E8192020E9352035DF3D203DDF152015DF1D201DDF26D026CD29492AB8264080BD3B4850BD3E54579F00E082E11EAF599F008000E826302930483C48AD2B72C2E12CC044C2052434BF0D242CBF2D464EBF254656BF201D6F8F323E5FE93E50569F00E03B301E8F519F331E5FE9054454B20D444CB219C0B0E834C044C4337300E03E62579F1EAF599F00E00D20843E58E9281D6F8F052000E0851E58E99B3B33DF202042AF3042569F803E57E93F8F519F30805FE9282824AF811E57E9054757BF0D474FBF888058E91B291BDF301D6F8F3A304FE91C3026DF09E33B053E50569F3B3F4FE91E8F519F00E0AC202D444CB42C1CC0AF254454B400E0C830304630AF1B1B48AF00E02520382C4FE9868057E9381D6F8F287400E00D444CB0054454B02D209B10823E57E932F01BCD1EBD599F831E57E9384738AF34202A3000E00D2032200520878057E91F54579F1742569F00E03B6A3F8F519F371E4FE937322AAF00E03200008000E827C044C0361F4FE91F1F26DF371B37BF172617DF3E174FE93F3F4FE9341F34AF2B05A720332B37DF2717C0AF34804FE9008000E82D211AB0252131B00D211AB2052131B203802AEA17C12BBD2D20252005200D20B3689725008000E833C033AF2FC021C01642569F3C274FE91E62579F008000E8252131B42D211AB43F2F5D9F008000E8330500E0281960EC370F5C9F00E02F20233B33AD1E261EDFA71E4FE9172616DF2D2000E0A83F4FE92F2F1EAF252000E0A4164FE90FC021C2A6804FE91F62579F3F2F5D9F00E08F20A5374FE90F170FAF06C021C4008000E8008000E8A3804FE9062000E01F261FDFA11F4FE9A23F4FE9008000E8008000E806061FAF008000E8008000E8008000E8A0804FE9008000E8008000E8573920E9162820E91D3B20E91E2B20E92B3220E91C2320E9573620E90080A0E94040D8ECFF80C0E990E200E06CFF20EA19C8C1CD1FD718BD3FD722BD9F4149BD008000E8254149BD2D4151BD0D8007EA008000E8354048BD3D4050BD008000E825302D303530B530BD303D309CA75B9F008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E86BFF0AEA008000E8C941C8EC42E100E069FF20EA008000E8008000E8008000E8C840C0EC008000E866FF20EA008000E8008000E8008000E85C -/* TGZSF */ -:05E0000000008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E80098A0E94040D8ECFF80C0E9008000E81FD718BD3FD722BD8104890401040904C941C0EC110400E041CC41CD49CC49CDD141C0EC51CC51CD80041004080400E000CCC0CDD149C0EC8A1F20E98B3F20E9413C41AD493C49AD10CC10CD08CC08CDB94149BB1FF041CD513C51AD009880E98F8007EA241F20E9214580E81A4D80E8315580E8008000E8154149BD1D4151BD2E412AB83453A0E815301D3058E300E0B54048BD3D4050BD2443A0E82C4BA0E8157209E300E01D723530B530BD303D309C97579F008000E86C64C8EC98E1B505BD052E3032C0A0E833C0A0E87464C8EC403C40AD326A2A302073336A00E028731C7283E27B8015EAB83D28DF303520DF403000E0CCE26472254252BF2D424ABF302E30DF382E38DF181D45E91E1545E92B4951BD00E01F73383840AF303040AF241F24DF1D3220E92C1F2CDF1A3320E9B01008E34010B81026F030CD2FF038CD2B8020E92A8020E9A62088E200E0AF20282A26AF202AC0AF341F34DF462446DF283080BF203880BF472447DF4E2C4EDF4F2C4FDF563456DF281528DF201D20DF573457DF00E01D05048010EA89E22B303FC11DBD008000E8008000E8008000E8A068BF25008000E820C020AF2805977400E02A1016C020E9048010EA8CE2950528C128AD1FC115BD008000E8008000E8A8679F6B008000E828C028AD1D252005283280AD402A40BD1C8020E9203320AD207300E0B64951BB262FB0E8192020E9352035DF3D203DDF152015DF1D201DDF26D026CD29492AB8264080BD3B4850BD3E54579F00E082E11EAF599F008000E826302930483C48AD2B72C2E12CC044C2052434BF0D242CBF2D464EBF254656BF201D6F8F323E5FE93E50569F00E03B301E8F519F331E5FE9054454B20D444CB219C0B0E834C044C4337300E03E62579F1EAF599F00E00D20843E58E9281D6F8F052000E0851E58E99B3B33DF202042AF3042569F803E57E93F8F519F30805FE9282824AF811E57E9054757BF0D474FBF888058E91B291BDF301D6F8F3A304FE91C3026DF09E33B053E50569F3B3F4FE91E8F519F00E0AC202D444CB42C1CC0AF254454B400E0C830304630AF1B1B48AF00E02520382C4FE9868057E9381D6F8F287400E00D444CB0054454B02D209B10823E57E932F01BCD1EBD599F831E57E9384738AF34202A3000E00D2032200520878057E91F54579F1742569F00E03B6A3F8F519F371E4FE937322AAF00E03200008000E827C044C0361F4FE91F1F26DF371B37BF172617DF3E174FE93F3F4FE9341F34AF2B05A720332B37DF2717C0AF34804FE9008000E82D211AB0252131B00D211AB2052131B203802AEA17C12BBD2D20252005200D20B3689725008000E833C033AF2FC021C01642569F3C274FE91E62579F008000E8252131B42D211AB43F2F5D9F008000E8330500E0281960EC0D211AB6052131B6370F5C9F00E02F20233B33AD1E261EDFA71E4FE9172616DF2D2000E0A83F4FE92F2F1EAF252000E0A4164FE90FC021C2A6804FE91F62579F0D2005202FC021C63F2F5D9F00E00F201750569FA5374FE906C021C40F170FAF370F5C9F008000E82F2000E0A3804FE9062000E01F261FDF172617DF35174FE9A11F4FE9A23F4FE906061FAF39374FE92F2F17AF008000E8A0804FE9008000E831804FE9008000E8008000E8573920E9162820E91D3B20E91E2B20E92B3220E91C2320E9573620E90080A0E94040D8ECFF80C0E990E200E068FF20EA19C8C1CD1FD718BD3FD722BD9F4149BD008000E8254149BD2D4151BD0D8007EA008000E8354048BD3D4050BD008000E825302D303530B530BD303D309CA75B9F008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E867FF0AEA008000E8C941C8EC42E100E065FF20EA008000E8008000E8008000E8C840C0EC008000E862FF20EA008000E8008000E8008000E8F9 -/* TGZSA */ -:05E0000000008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E80098A0E94040D8ECFF80C0E9008000E81FD718BD3FD722BD8104890401040904C941C0EC110400E041CC41CD49CC49CDD141C0EC51CC51CD80041004080400E000CCC0CDD149C0EC8A1F20E98B3F20E9413C41AD493C49AD10CC10CD08CC08CDB94149BB1FF041CD513C51AD009880E98F8007EA241F20E9214580E81A4D80E8315580E8008000E8154149BD1D4151BD2E412AB83453A0E815301D3058E300E0B54048BD3D4050BD2443A0E82C4BA0E8157209E300E01D723530B530BD303D309C97579F008000E86C64C8EC98E1B505BD052E3032C0A0E833C0A0E87464C8EC403C40AD326A2A302073336A00E028731C7283E27B8015EAB83D28DF303520DF403000E0CCE26472254252BF2D424ABF302E30DF382E38DF181D45E91E1545E92B4951BD00E01F73383840AF303040AF241F24DF1D3220E92C1F2CDF1A3320E9B01008E34010B81026F030CD2FF038CD2B8020E92A8020E9A62088E200E0AF20282A26AF202AC0AF341F34DF462446DF283080BF203880BF472447DF4E2C4EDF4F2C4FDF563456DF281528DF201D20DF573457DF00E01D05048010EA89E22B303FC11DBD008000E8008000E8008000E8A068BF25008000E820C020AF2805977400E02A1016C020E9048010EA8CE2950528C128AD1FC115BD008000E8008000E8A8679F6B008000E828C028AD1D252005283280AD402A40BD1C8020E9203320AD207300E0B64951BB262FB0E8192020E9352035DF3D203DDF152015DF1D201DDF26D026CD29492AB8264080BD3B4850BD3E54579F00E082E11EAF599F008000E826302930483C48AD2B72C2E12CC044C2052434BF0D242CBF2D464EBF254656BF201D6F8F323E5FE93E50569F00E03B301E8F519F331E5FE9054454B20D444CB219C0B0E834C044C4337300E03E62579F1EAF599F00E00D20843E58E9281D6F8F052000E0851E58E99B3B33DF202042AF3042569F803E57E93F8F519F30805FE9282824AF811E57E9054757BF0D474FBF888058E91B291BDF301D6F8F3A304FE91C3026DF09E33B053E50569F3B3F4FE91E8F519F00E0AC202D444CB42C1CC0AF254454B400E0C830304630AF1B1B48AF00E02520382C4FE9868057E9381D6F8F287400E00D444CB0054454B02D209B10823E57E932F01BCD1EBD599F831E57E9384738AF34202A3000E00D2032200520878057E91F54579F1742569F00E03B6A3F8F519F371E4FE937322AAF00E03200008000E827C044C0361F4FE91F1F26DF371B37BF172617DF3E174FE93F3F4FE9341F34AF2B05A720332B37DF2717C0AF34804FE9008000E82D211AB0252131B00D211AB2052131B203802AEA17C12BBD2D20252005200D20B3689725008000E833C033AF2FC021C01642569F3C274FE91E62579F008000E8252131B42D211AB43F2F5D9F008000E8330500E0281960EC0D444CB6054454B6370F5C9F00E02F20233B33AD1E261EDFA71E4FE9172616DF2D2000E0A83F4FE92F2F1EAF252000E0A4164FE90FC021C2A6804FE91F62579F0D200520008000E83F2F5D9F00E00F201750569FA5374FE906C021C40F170FAF370F5C9F008000E82FC044C6A3804FE9062000E01F261FDF172617DF9D174FE9A11F4FE9A23F4FE906061FAF00E0AF209E374FE92F172FAFA0804FE9008000E8008000E89C804FE9008000E8573920E9162820E91D3B20E91E2B20E92B3220E91C2320E9573620E90080A0E94040D8ECFF80C0E990E200E068FF20EA19C8C1CD1FD718BD3FD722BD9F4149BD008000E8254149BD2D4151BD0D8007EA008000E8354048BD3D4050BD008000E825302D303530B530BD303D309CA75B9F008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E867FF0AEA008000E8C941C8EC42E100E065FF20EA008000E8008000E8008000E8C840C0EC008000E862FF20EA008000E8008000E8008000E883 -/* TGZAF */ -:05B8000000008000E8008000E8008000E8008000E8008000E8008000E80098A0E94040D8ECFF80C0E9008000E81FD718BD3FD722BD8104890401040904C941C0EC110400E041CC41CD49CC49CDD141C0EC51CC51CD80041004080400E000CCC0CDD149C0EC8A1F20E98B3F20E9413C41AD493C49AD10CC10CD08CC08CDB94149BB1FF041CD513C51AD009880E9948007EA241F20E9214580E81A4D80E8315580E8008000E8154149BD1D4151BD2E412AB83453A0E815301D3058E300E0B54048BD3D4050BD2443A0E82C4BA0E8157209E300E01D723530B530BD303D309C97579F008000E86C64C8EC98E1B505BD052E3032C0A0E833C0A0E87464C8EC403C40AD326A2A302073336A00E028731C7283E2808015EAB83D28DF303520DF403000E0CCE26472254252BF2D424ABF302E30DF382E38DF181D45E91E1545E92B4951BD00E01F73383840AF303040AF241F24DF1D3220E92C1F2CDF1A3320E9B01008E34010B81026F030CD2FF038CD2B8020E92A8020E9A62088E200E0AF20282A26AF202AC0AF341F34DF462446DF283080BF203880BF472447DF4E2C4EDF4F2C4FDF563456DF281528DF201D20DF573457DF00E01D05048010EA89E22B303FC11DBD008000E8008000E8008000E8A068BF25008000E820C020AF2805977400E02A1016C020E9048010EA8CE2950528C128AD1FC115BD008000E8008000E8A8679F6B008000E828C028AD1D252005283280AD402A40BD1C8020E9203320AD207300E0B64951BB262FB0E8192020E9352035DF3D203DDF152015DF1D201DDF26D026CD29492AB8264080BD3B4850BD3E54579F00E082E11EAF599F008000E826302930483C48AD2B72C2E12CC044C2052434BF0D242CBF2D464EBF254656BF201D6F8F323E5FE93E50569F00E03B301E8F519F331E5FE9054454B20D444CB219C0B0E834C044C4337300E03E62579F1EAF599F00E00D20843E58E9281D6F8F052000E0851E58E99B3B33DF202042AF3042569F803E57E93F8F519F30805FE9282824AF811E57E9054757BF0D474FBF888058E91B291BDF301D6F8F3A304FE91C3026DF09E33B053E50569F3B3F4FE91E8F519F00E0AC202D444CB42C1CC0AF254454B400E0C830304630AF1B1B48AF00E02520382C4FE9868057E9381D6F8F287400E00D444CB0054454B02D209B10823E57E932F01BCD1EBD599F831E57E9384738AF34202A3000E00D2032200520878057E91F54579F1742569F00E03B6A3F8F519F371E4FE937322AAF00E03200008000E827C044C0361F4FE91F1F26DF371B37BF172617DF3E174FE93F3F4FE9341F34AF2B05A720332B37DF2717C0AF34804FE9008000E82D211AB0252131B00D211AB2052131B203802AEA17C12BBD2D20252005200D20B3689725008000E833C033AF2FC021C01642569F3C274FE91E62579F008000E8252131B42D211AB43F2F5D9F008000E8330500E0281960EC0D211AB6052131B6370F5C9F00E02F20233B33AD1E261EDFA71E4FE9172616DF2D2000E0A83F4FE92F2F1EAF252000E0A4164FE90FC021C2A6804FE91F62579F0D2005202FC021C62D444CB6254454B63F2F5D9F00E00F202D20252007C044C61750569FA5374FE906C021C40F170FAF370F5C9F008000E81E62579F008000E83E3D5D9F00E007202F2000E0A30F4FE9062000E01F261FDF172617DFA11F4FE91E261EDF9D1E4FE935174FE9A23F4FE906061FAF39374FE92F2F17AF07071EAFA0804FE99E3E4FE931804FE99C804FE9008000E8573920E9162820E91D3B20E91E2B20E92B3220E91C2320E9573620E90080A0E94040D8ECFF80C0E990E200E063FF20EA19C8C1CD1FD718BD3FD722BD9F4149BD008000E8254149BD2D4151BD0D8007EA008000E8354048BD3D4050BD008000E825302D303530B530BD303D309CA75B9F008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E8008000E862FF0AEA008000E8C941C8EC42E100E060FF20EA008000E8008000E8008000E8C840C0EC008000E85DFF20EA008000E8008000E8008000E8D8 -:0000000001FF diff --git a/firmware/matrox/g400_warp.H16 b/firmware/matrox/g400_warp.H16 deleted file mode 100644 index b432d1074d8d..000000000000 --- a/firmware/matrox/g400_warp.H16 +++ /dev/null @@ -1,44 +0,0 @@ -/* - * WARP pipes are named according to the functions they perform, where - * - * - T stands for computation of texture stage 0 - * - T2 stands for computation of both texture stage 0 and texture stage 1 - * - G stands for computation of triangle intensity (Gouraud interpolation) - * - Z stands for computation of Z buffer interpolation - * - S stands for computation of specular highlight - * - A stands for computation of the alpha channel - * - F stands for computation of vertex fog interpolation - */ -/* TGZ */ -:0338000000008898E9008000E80080A0E90000D8ECFF80C0E9008000E8224048BF2A4050BF324149BF3A4151BFC36BCB6B008898E9737BC8EC96E241047B43A0E8734BA0E8ADEE299F00E0490490E251043146B1E84941C0EC3957B1E8000446E27353A0E85141C0EC31003900588015EA080410045149C0EC2F4160EA312039201F42A0E82A424ABF274AA0E81A4252BF1E4960EA737BC8EC265160EA324048BD224050BD124149BD3A4151BDBF2F26BD00E07B723220222012203A20463146BF4E314EBFB3E22D9F008000E8563156BF473947BF4F394FBF573957BF4A8007EA244120E94273F8EC00E02D7333720CE3A52F1EBD43432DDF4B4B2DDFAE1E26BD58E3336653532DDF008000E8B83833BF00E059E31E1241E91A2241E92B403DE93F4BA0E82D73307605803DEA3743A0E83D53A0E84870F8EC2B483CE91F27BCE8008000E8008000E8008000E815C020E915C020E915C020E915C020E9183A41E91D3241E92A4020E9563D56DF463746DF4E3F4EDF163020E94F3F4FDF32322DDF22222DDF12122DDF3A3A2DDF473747DF573D57DF3DCF74C037CF74C431532F9F348020E939E52C9F3C3D20E90A444CB0024454B02A444CB21A4454B21D803AEA0A2002203DCF74C22A201A2030502E9F32315FE938212C9F33395FE931532F9F008000E82A444CB41A4454B439E52C9F383D20E988735EE92A201A202A464EBF1A4656BF31532F9F3E304FE939E52C9F3F384FE90A474FBF024757BF31532F9F3A314FE939E52C9F3B394FE92A434BBF1A4353BF30502E9F36314FE938212C9F37394FE931532F9F803157E939E52C9F813957E9374850BD8A3620E9867657E98B3E20E9823057E9877757E9833857E9354951BD84315EE9301F5FE985395EE9572520E92B4820E91D37E1EA1E35E1EA00E02677244920E9AFFF20EA162620E9572EBFEA1C46A0E8234EA0E82B56A0E81D47A0E8244FA0E82C57A0E81C0023002B0000E01D0024002C0000E01C6523652B6500E01D6524652C6500E01C2360EC36D736AD2B8060EC1D2460EC3ED73EAD2C8060EC1C2BDEE82380DEE8368036BD3E803EBD33D71CBD3BD723BD468046CF4F804FCF563356CF473B47CFD6FF20EA008000E84E334ECF573B57CF9DFF20EA57C0BFEA0080A0E90000D8EC59 -/* TGZF */ -:0360000000008898E9008000E80080A0E90000D8ECFF80C0E9008000E8224048BF2A4050BF324149BF3A4151BFC36BCB6B008898E9737BC8EC96E241047B43A0E8734BA0E8ADEE299F00E0490490E251043146B1E84941C0EC3957B1E8000446E27353A0E85141C0EC310039005D8015EA080410045149C0EC2F4160EA312039201F42A0E82A424ABF274AA0E81A4252BF1E4960EA737BC8EC265160EA324048BD224050BD124149BD3A4151BDBF2F26BD00E07B723220222012203A20463146BF4E314EBFB3E22D9F008000E8563156BF473947BF4F394FBF573957BF4F8007EA244120E94273F8EC00E02D7333720CE3A52F1EBD43432DDF4B4B2DDFAE1E26BD58E3336653532DDF008000E8B83833BF00E059E31E1241E91A2241E92B403DE93F4BA0E82D73307605803DEA3743A0E83D53A0E84870F8EC2B483CE91F27BCE8008000E8008000E8008000E815C020E915C020E915C020E915C020E9183A41E91D3241E92A4020E9563D56DF463746DF4E3F4EDF163020E94F3F4FDF32322DDF22222DDF12122DDF3A3A2DDF473747DF573D57DF3DCF74C037CF74C439E52C9F348020E931532F9F008000E888735EE9008000E827CF75C63C3D20E90A444CB0024454B02A444CB21A4454B220803AEA0A2002203DCF74C22A201A2030502E9F32315FE938212C9F33395FE931532F9F312720E90A444CB4024454B42A454DB61A4555B639E52C9F383D20E90A2002202A201A200A474FBF024757BF30502E9F3E304FE938212C9F3F384FE92A464EBF1A4656BF31532F9F3A314FE939E52C9F3B394FE931532F9F36304FE939E52C9F37384FE92A434BBF1A4353BF30502E9F35314FE938212C9F39394FE931532F9F803157E939E52C9F813957E9374850BD8A3620E9867657E98B3E20E9823057E9877757E9833857E9354951BD84315EE9301F5FE985395EE9572520E92B4820E91D37E1EA1E35E1EA00E02677244920E9AAFF20EA162620E9572EBFEA1C46A0E8234EA0E82B56A0E81D47A0E8244FA0E82C57A0E81C0023002B0000E01D0024002C0000E01C6523652B6500E01D6524652C6500E01C2360EC36D736AD2B8060EC1D2460EC3ED73EAD2C8060EC1C2BDEE82380DEE8368036BD3E803EBD33D71CBD3BD723BD468046CF4F804FCF563356CF473B47CFD3FF20EA008000E84E334ECF573B57CF98FF20EA57C0BFEA0080A0E90000D8EC90 -/* TGZA */ -:0358000000008898E9008000E80080A0E90000D8ECFF80C0E9008000E8224048BF2A4050BF324149BF3A4151BFC36BCB6B008898E9737BC8EC96E241047B43A0E8734BA0E8ADEE299F00E0490490E251043146B1E84941C0EC3957B1E8000446E27353A0E85141C0EC310039005C8015EA080410045149C0EC2F4160EA312039201F42A0E82A424ABF274AA0E81A4252BF1E4960EA737BC8EC265160EA324048BD224050BD124149BD3A4151BDBF2F26BD00E07B723220222012203A20463146BF4E314EBFB3E22D9F008000E8563156BF473947BF4F394FBF573957BF4E8007EA244120E94273F8EC00E02D7333720CE3A52F1EBD43432DDF4B4B2DDFAE1E26BD58E3336653532DDF008000E8B83833BF00E059E31E1241E91A2241E92B403DE93F4BA0E82D73307605803DEA3743A0E83D53A0E84870F8EC2B483CE91F27BCE8008000E8008000E8008000E815C020E915C020E915C020E915C020E9183A41E91D3241E92A4020E9563D56DF463746DF4E3F4EDF163020E94F3F4FDF32322DDF22222DDF12122DDF3A3A2DDF473747DF573D57DF3DCF74C037CF74C431532F9F348020E939E52C9F3C3D20E927CF74C63DCF74C20A444CB0024454B02A444CB21A4454B220803AEA0A20022088735EE92A201A2030502E9F32315FE938212C9F33395FE931532F9F9C2720E90A444CB4024454B42A444CB61A4454B639E52C9F383D20E90A2002202A201A200A474FBF024757BF30502E9F3E304FE938212C9F3F384FE92A464EBF1A4656BF31532F9F3A314FE939E52C9F3B394FE931532F9F36304FE939E52C9F37384FE92A434BBF1A4353BF30502E9F9D314FE938212C9F9E394FE931532F9F803157E939E52C9F813957E9374850BD8A3620E9867657E98B3E20E9823057E9877757E9833857E9354951BD84315EE9301F5FE985395EE9572520E92B4820E91D37E1EA1E35E1EA00E02677244920E9ABFF20EA162620E9572EBFEA1C46A0E8234EA0E82B56A0E81D47A0E8244FA0E82C57A0E81C0023002B0000E01D0024002C0000E01C6523652B6500E01D6524652C6500E01C2360EC36D736AD2B8060EC1D2460EC3ED73EAD2C8060EC1C2BDEE82380DEE8368036BD3E803EBD33D71CBD3BD723BD468046CF4F804FCF563356CF473B47CFD3FF20EA008000E84E334ECF573B57CF99FF20EA57C0BFEA0080A0E90000D8EC35 -/* TGZAF */ -:0380000000008898E9008000E80080A0E90000D8ECFF80C0E9008000E8224048BF2A4050BF324149BF3A4151BFC36BCB6B008898E9737BC8EC96E241047B43A0E8734BA0E8ADEE299F00E0490490E251043146B1E84941C0EC3957B1E8000446E27353A0E85141C0EC31003900618015EA080410045149C0EC2F4160EA312039201F42A0E82A424ABF274AA0E81A4252BF1E4960EA737BC8EC265160EA324048BD224050BD124149BD3A4151BDBF2F26BD00E07B723220222012203A20463146BF4E314EBFB3E22D9F008000E8563156BF473947BF4F394FBF573957BF538007EA244120E94273F8EC00E02D7333720CE3A52F1EBD43432DDF4B4B2DDFAE1E26BD58E3336653532DDF008000E8B83833BF00E059E31E1241E91A2241E92B403DE93F4BA0E82D73307605803DEA3743A0E83D53A0E84870F8EC2B483CE91F27BCE8008000E8008000E8008000E815C020E915C020E915C020E915C020E9183A41E91D3241E92A4020E9563D56DF463746DF4E3F4EDF163020E94F3F4FDF32322DDF22222DDF12122DDF3A3A2DDF473747DF573D57DF3DCF74C037CF74C40A444CB0024454B031532F9F343720E939E52C9F3C3D20E92A444CB21A4454B226803AEA0A20022088735EE92A201A203DCF74C227CF74C630502E9F32315FE938212C9F33395FE931532F9F9C2720E90A444CB4024454B42A444CB61A4454B639E52C9F383D20E90A2002202A201A203DCF75C6008000E830502E9F3E304FE938212C9F3F384FE90A454DB6024555B631532F9F3A314FE939E52C9F3B394FE9313D20E90A2002202A464EBF1A4656BF0A474FBF024757BF30502E9F36304FE938212C9F37384FE931532F9F9D314FE939E52C9F9E394FE92A434BBF1A4353BF30502E9F35304FE938212C9F39384FE931532F9F803157E939E52C9F813957E9374850BD8A3620E9867657E98B3E20E9823057E9877757E9833857E9354951BD84315EE9301F5FE985395EE9572520E92B4820E91D37E1EA1E35E1EA00E02677244920E9A6FF20EA162620E9572EBFEA1C46A0E8234EA0E82B56A0E81D47A0E8244FA0E82C57A0E81C0023002B0000E01D0024002C0000E01C6523652B6500E01D6524652C6500E01C2360EC36D736AD2B8060EC1D2460EC3ED73EAD2C8060EC1C2BDEE82380DEE8368036BD3E803EBD33D71CBD3BD723BD468046CF4F804FCF563356CF473B47CFCDFF20EA008000E84E334ECF573B57CF94FF20EA57C0BFEA0080A0E90000D8EC89 -/* TGZS */ -:03A0000000008898E9008000E80080A0E90000D8ECFF80C0E9008000E8224048BF2A4050BF324149BF3A4151BFC36BCB6B008898E9737BC8EC96E241047B43A0E8734BA0E8ADEE299F00E0490490E251043146B1E84941C0EC3957B1E8000446E27353A0E85141C0EC31003900658015EA080410045149C0EC2F4160EA312039201F42A0E82A424ABF274AA0E81A4252BF1E4960EA737BC8EC265160EA324048BD224050BD124149BD3A4151BDBF2F26BD00E07B723220222012203A20463146BF4E314EBFB3E22D9F008000E8563156BF473947BF4F394FBF573957BF578007EA244120E94273F8EC00E02D7333720CE3A52F1EBD43432DDF4B4B2DDFAE1E26BD58E3336653532DDF008000E8B83833BF00E059E31E1241E91A2241E92B403DE93F4BA0E82D73307605803DEA3743A0E83D53A0E84870F8EC2B483CE91F27BCE8008000E8008000E8008000E815C020E915C020E915C020E915C020E9183A41E91D3241E92A4020E9563D56DF463746DF4E3F4EDF163020E94F3F4FDF473747DF573D57DF32322DDF22222DDF12122DDF3A3A2DDF27CF74C237CF74C40A444CB0024454B03DCF74C0343720E931532F9F382720E939E52C9F3C3D20E92A444CB21A4454B229803AEA0A20022027CF75C02A201A2030502E9F32315FE938212C9F33395FE93DCF75C237CF75C431532F9FA62720E939E52C9FA33D20E92A444CB41A4454B40A454DB0024555B088735EE92A201A20A03720E90A20022031532F9F3E304FE939E52C9F3F384FE930502E9F3A314FE92A454DB21A4555B20A454DB4024555B438212C9F3B394FE90A2002202A201A202A464EBF1A4656BF31532F9F36314FE939E52C9F37394FE930502E9FA7304FE938212C9FA8384FE90A474FBF024757BF31532F9FA4314FE939E52C9FA5394FE92A434BBF1A4353BF30502E9FA1304FE938212C9FA2384FE931532F9F803157E939E52C9F813957E9374850BD8A3620E9867657E98B3E20E9823057E9877757E9833857E9354951BD84315EE9301F5FE985395EE9572520E92B4820E91D37E1EA1E35E1EA00E02677244920E9A2FF20EA162620E9572EBFEA1C46A0E8234EA0E82B56A0E81D47A0E8244FA0E82C57A0E81C0023002B0000E01D0024002C0000E01C6523652B6500E01D6524652C6500E01C2360EC36D736AD2B8060EC1D2460EC3ED73EAD2C8060EC1C2BDEE82380DEE8368036BD3E803EBD33D71CBD3BD723BD468046CF4F804FCF563356CF473B47CFCAFF20EA008000E84E334ECF573B57CF90FF20EA57C0BFEA0080A0E90000D8ECD8 -/* TGZSF */ -:03C8000000008898E9008000E80080A0E90000D8ECFF80C0E9008000E8224048BF2A4050BF324149BF3A4151BFC36BCB6B008898E9737BC8EC96E241047B43A0E8734BA0E8ADEE299F00E0490490E251043146B1E84941C0EC3957B1E8000446E27353A0E85141C0EC310039006A8015EA080410045149C0EC2F4160EA312039201F42A0E82A424ABF274AA0E81A4252BF1E4960EA737BC8EC265160EA324048BD224050BD124149BD3A4151BDBF2F26BD00E07B723220222012203A20463146BF4E314EBFB3E22D9F008000E8563156BF473947BF4F394FBF573957BF5C8007EA244120E94273F8EC00E02D7333720CE3A52F1EBD43432DDF4B4B2DDFAE1E26BD58E3336653532DDF008000E8B83833BF00E059E31E1241E91A2241E92B403DE93F4BA0E82D73307605803DEA3743A0E83D53A0E84870F8EC2B483CE91F27BCE8008000E8008000E8008000E815C020E915C020E915C020E915C020E9183A41E91D3241E92A4020E9563D56DF463746DF4E3F4EDF163020E94F3F4FDF473747DF573D57DF32322DDF22222DDF12122DDF3A3A2DDF27CF74C237CF74C40A444CB0024454B03DCF74C0343720E931532F9F382720E939E52C9F3C3D20E92A444CB21A4454B22E803AEA0A20022027CF75C02A201A2030502E9F32315FE938212C9F33395FE93DCF75C237CF75C431532F9FA62720E939E52C9FA33D20E92A444CB41A4454B40A454DB0024555B088735EE92A201A20A03720E90A20022031532F9F3E304FE939E52C9F3F384FE930502E9F3A314FE938212C9F3B394FE92A454DB21A4555B20A454DB4024555B427CF75C62A201A20A7304FE90A20022031532F9F312720E939E52C9FA8384FE92A454DB61A4555B630502E9F36314FE938212C9F37394FE9008000E82A201A202A464EBF1A4656BF31532F9FA4314FE939E52C9FA5394FE90A474FBF024757BF31532F9FA1304FE939E52C9FA2384FE92A434BBF1A4353BF30502E9F35314FE938212C9F39394FE931532F9F803157E939E52C9F813957E9374850BD8A3620E9867657E98B3E20E9823057E9877757E9833857E9354951BD84315EE9301F5FE985395EE9572520E92B4820E91D37E1EA1E35E1EA00E02677244920E99DFF20EA162620E9572EBFEA1C46A0E8234EA0E82B56A0E81D47A0E8244FA0E82C57A0E81C0023002B0000E01D0024002C0000E01C6523652B6500E01D6524652C6500E01C2360EC36D736AD2B8060EC1D2460EC3ED73EAD2C8060EC1C2BDEE82380DEE8368036BD3E803EBD33D71CBD3BD723BD468046CF4F804FCF563356CF473B47CFC5FF20EA008000E84E334ECF573B57CF8BFF20EA57C0BFEA0080A0E90000D8ECD3 -/* TGZSA */ -:03C8000000008898E9008000E80080A0E90000D8ECFF80C0E9008000E8224048BF2A4050BF324149BF3A4151BFC36BCB6B008898E9737BC8EC96E241047B43A0E8734BA0E8ADEE299F00E0490490E251043146B1E84941C0EC3957B1E8000446E27353A0E85141C0EC310039006A8015EA080410045149C0EC2F4160EA312039201F42A0E82A424ABF274AA0E81A4252BF1E4960EA737BC8EC265160EA324048BD224050BD124149BD3A4151BDBF2F26BD00E07B723220222012203A20463146BF4E314EBFB3E22D9F008000E8563156BF473947BF4F394FBF573957BF5C8007EA244120E94273F8EC00E02D7333720CE3A52F1EBD43432DDF4B4B2DDFAE1E26BD58E3336653532DDF008000E8B83833BF00E059E31E1241E91A2241E92B403DE93F4BA0E82D73307605803DEA3743A0E83D53A0E84870F8EC2B483CE91F27BCE8008000E8008000E8008000E815C020E915C020E915C020E915C020E9183A41E91D3241E92A4020E9563D56DF463746DF4E3F4EDF163020E94F3F4FDF473747DF573D57DF32322DDF22222DDF12122DDF3A3A2DDF27CF74C237CF74C40A444CB0024454B03DCF74C0343720E931532F9F382720E939E52C9F3C3D20E92A444CB21A4454B22E803AEA0A20022027CF75C02A201A2030502E9F32315FE938212C9F33395FE93DCF75C237CF75C431532F9FA62720E939E52C9FA33D20E92A444CB41A4454B40A454DB0024555B088735EE92A201A20A03720E90A20022031532F9F3E304FE939E52C9F3F384FE930502E9F3A314FE938212C9F3B394FE92A454DB21A4555B20A454DB4024555B427CF74C62A201A20A7304FE90A20022031532F9F9C2720E939E52C9FA8384FE92A444CB61A4454B630502E9F36314FE938212C9F37394FE9008000E82A201A202A464EBF1A4656BF31532F9FA4314FE939E52C9FA5394FE90A474FBF024757BF31532F9FA1304FE939E52C9FA2384FE92A434BBF1A4353BF30502E9F9D314FE938212C9F9E394FE931532F9F803157E939E52C9F813957E9374850BD8A3620E9867657E98B3E20E9823057E9877757E9833857E9354951BD84315EE9301F5FE985395EE9572520E92B4820E91D37E1EA1E35E1EA00E02677244920E99DFF20EA162620E9572EBFEA1C46A0E8234EA0E82B56A0E81D47A0E8244FA0E82C57A0E81C0023002B0000E01D0024002C0000E01C6523652B6500E01D6524652C6500E01C2360EC36D736AD2B8060EC1D2460EC3ED73EAD2C8060EC1C2BDEE82380DEE8368036BD3E803EBD33D71CBD3BD723BD468046CF4F804FCF563356CF473B47CFC5FF20EA008000E84E334ECF573B57CF8BFF20EA57C0BFEA0080A0E90000D8ECA0 -/* TGZSAF */ -:03E8000000008898E9008000E80080A0E90000D8ECFF80C0E9008000E8224048BF2A4050BF324149BF3A4151BFC36BCB6B008898E9737BC8EC96E241047B43A0E8734BA0E8ADEE299F00E0490490E251043146B1E84941C0EC3957B1E8000446E27353A0E85141C0EC310039006E8015EA080410045149C0EC2F4160EA312039201F42A0E82A424ABF274AA0E81A4252BF1E4960EA737BC8EC265160EA324048BD224050BD124149BD3A4151BDBF2F26BD00E07B723220222012203A20463146BF4E314EBFB3E22D9F008000E8563156BF473947BF4F394FBF573957BF608007EA244120E94273F8EC00E02D7333720CE3A52F1EBD43432DDF4B4B2DDFAE1E26BD58E3336653532DDF008000E8B83833BF00E059E31E1241E91A2241E92B403DE93F4BA0E82D73307605803DEA3743A0E83D53A0E84870F8EC2B483CE91F27BCE8008000E8008000E8008000E815C020E915C020E915C020E915C020E9183A41E91D3241E92A4020E9563D56DF463746DF4E3F4EDF163020E94F3F4FDF473747DF573D57DF32322DDF22222DDF12122DDF3A3A2DDF27CF74C237CF74C40A444CB0024454B03DCF74C0343720E931532F9F382720E939E52C9F3C3D20E92A444CB21A4454B232803AEA0A20022027CF75C02A201A2030502E9F32315FE938212C9F33395FE93DCF75C237CF75C431532F9FA62720E939E52C9FA33D20E92A444CB41A4454B40A454DB0024555B088735EE92A201A20A03720E90A20022031532F9F3E304FE939E52C9F3F384FE930502E9F3A314FE938212C9F3B394FE92A454DB21A4555B20A454DB4024555B427CF74C62A201A20A7304FE90A20022031532F9F9C2720E939E52C9FA8384FE92A444CB61A4454B630502E9F36314FE938212C9F37394FE90A454DB6024555B63DCF75C62A201A202A464EBF1A4656BF31532F9FA4314FE939E52C9FA5394FE9313D20E90A2002200A474FBF024757BF30502E9FA1304FE938212C9FA2384FE931532F9F9D314FE939E52C9F9E394FE92A434BBF1A4353BF30502E9F35304FE938212C9F39384FE931532F9F803157E939E52C9F813957E9374850BD8A3620E9867657E98B3E20E9823057E9877757E9833857E9354951BD84315EE9301F5FE985395EE9572520E92B4820E91D37E1EA1E35E1EA00E02677244920E999FF20EA162620E9572EBFEA1C46A0E8234EA0E82B56A0E81D47A0E8244FA0E82C57A0E81C0023002B0000E01D0024002C0000E01C6523652B6500E01D6524652C6500E01C2360EC36D736AD2B8060EC1D2460EC3ED73EAD2C8060EC1C2BDEE82380DEE8368036BD3E803EBD33D71CBD3BD723BD468046CF4F804FCF563356CF473B47CFC1FF20EA008000E84E334ECF573B57CF87FF20EA57C0BFEA0080A0E90000D8EC83 -/* T2GZ */ -:0438000000008A98E9008000E80080A0E90000D8ECFF80C0E9008000E80A4050BF2A4060BF324151BF3A4161BFC36BD36B008A98E9737BC8EC96E241047B43A0E87353A0E8ADEE239F00E0510490E261043146B1E85141E0EC3967B1E8000446E27363A0E86141E0EC31003900788015EA100420046151E0EC2F4160EA312039201F42A0E82A4252BF0F52A0E81A4262BF1E5160EA737BC8EC0E6160EA324050BD224060BD124151BD3A4161BDBF2F0EBD97E27B723220222012203A203548B1E83D59B1E8463146BF563156BFB3E22D9F008000E8663166BF473947BF573957BF673967BF698007EA244120E935003D0000E02D7333720CE38D2F1EBD4375F8EC35203D2043432DDF53532DDFAE1E0EBD58E33366483548BF583558BF683568BF493D49BF593D59BF693D69BF63632DDF4D7DF8EC59E300E0B83833BF2D733076183A41E93F53A0E805803DEA3743A0E83D63A0E85070F8EC2B503CE91F0FBCE8008000E85978F8EC008000E815C020E915C020E915C020E915C020E91E1241E91A2241E9463746DF563F56DF2B403DE9663D66DF1D3241E9673D67DF473747DF573F57DF2A4020E9593F59DF163020E9693D69DF483748DF583F58DF12122DDF22222DDF32322DDF3A3A2DDF683D68DF493749DF3DCF74C037CF74C431532F9F348020E939E52C9F3C3D20E90A4454B0024464B02A4454B21A4464B225803AEA0A2002203DCF74C22A201A2030502E9F32315FE938212C9F33395FE931532F9F008000E82A4454B41A4464B439E52C9F383D20E988735EE92A201A202A4656BF1A4666BF31532F9F3E304FE939E52C9F3F384FE90A4757BF024767BF31532F9F3A314FE939E52C9F3B394FE92A4353BF1A4363BF30502E9F36314FE938212C9F37394FE90A4858BF024868BF31532F9F803157E939E52C9F813957E92A4959BF1A4969BF30502E9F823057E938212C9F833857E931532F9F84315EE939E52C9F85395EE9867657E98A3620E9877757E98B3EBFEA803057E9813857E9823157E9867857E9833957E9877957E9301F5FE98A3420E98B3C20E9375060BD570D20E9355161BD2B5020E91D37E1EA1E35E1EA00E00E77245120E99FFF20EA160E20E9572EBFEA0B46A0E81B56A0E82B66A0E80C47A0E81C57A0E82C67A0E80B001B002B0000E00C001C002C0000E00B651B652B6500E00C651C652C6500E00B1B60EC36D736AD2B8060EC0C1C60EC3ED73EAD2C8060EC0B2BDEE81B80DEE8368036BD3E803EBD33D70BBD3BD71BBD468046CF578057CF663366CF473B47CF563356CF673B67CF0B48A0E81B58A0E82B68A0E80C49A0E81C59A0E82C69A0E80B001B002B0000E00C001C002C0000E00B651B652B6500E00C651C652C6500E00B1B60EC34D734AD2B8060EC0C1C60EC3CD73CAD2C8060EC0B2BDEE81B80DEE8348034BD3C803CBD33D70BBD3BD71BBD488048CF598059CF683368CF493B49CFBEFF20EA008000E8583358CF693B69CF7DFF20EA57C0BFEA0080A0E90000D8ECAC -/* T2GZF */ -:0460000000008A98E9008000E80080A0E90000D8ECFF80C0E9008000E80A4050BF2A4060BF324151BF3A4161BFC36BD36B008A98E9737BC8EC96E241047B43A0E87353A0E8ADEE239F00E0510490E261043146B1E85141E0EC3967B1E8000446E27363A0E86141E0EC310039007D8015EA100420046151E0EC2F4160EA312039201F42A0E82A4252BF0F52A0E81A4262BF1E5160EA737BC8EC0E6160EA324050BD224060BD124151BD3A4161BDBF2F0EBD97E27B723220222012203A203548B1E83D59B1E8463146BF563156BFB3E22D9F008000E8663166BF473947BF573957BF673967BF6E8007EA244120E935003D0000E02D7333720CE38D2F1EBD4375F8EC35203D2043432DDF53532DDFAE1E0EBD58E33366483548BF583558BF683568BF493D49BF593D59BF693D69BF63632DDF4D7DF8EC59E300E0B83833BF2D733076183A41E93F53A0E805803DEA3743A0E83D63A0E85070F8EC2B503CE91F0FBCE8008000E85978F8EC008000E815C020E915C020E915C020E915C020E91E1241E91A2241E9463746DF563F56DF2B403DE9663D66DF1D3241E9673D67DF473747DF573F57DF2A4020E9593F59DF163020E9693D69DF483748DF583F58DF12122DDF22222DDF32322DDF3A3A2DDF683D68DF493749DF3DCF74C037CF74C439E52C9F348020E931532F9F008000E888735EE9008000E80FCF75C63C3D20E90A4454B0024464B02A4454B21A4464B228803AEA0A2002203DCF74C22A201A2030502E9F32315FE938212C9F33395FE931532F9F310F20E90A4454B4024464B42A4555B61A4565B639E52C9F383D20E90A2002202A201A200A4757BF024767BF30502E9F3E304FE938212C9F3F384FE92A4656BF1A4666BF31532F9F3A314FE939E52C9F3B394FE931532F9F36304FE939E52C9F37384FE92A4353BF1A4363BF30502E9F35314FE938212C9F39394FE90A4858BF024868BF31532F9F803157E939E52C9F813957E92A4959BF1A4969BF30502E9F823057E938212C9F833857E931532F9F84315EE939E52C9F85395EE9867657E98A3620E9877757E98B3EBFEA803057E9813857E9823157E9867857E9833957E9877957E9301F5FE98A3420E98B3C20E9375060BD570D20E9355161BD2B5020E91D37E1EA1E35E1EA00E00E77245120E99AFF20EA160E20E9572EBFEA0B46A0E81B56A0E82B66A0E80C47A0E81C57A0E82C67A0E80B001B002B0000E00C001C002C0000E00B651B652B6500E00C651C652C6500E00B1B60EC36D736AD2B8060EC0C1C60EC3ED73EAD2C8060EC0B2BDEE81B80DEE8368036BD3E803EBD33D70BBD3BD71BBD468046CF578057CF663366CF473B47CF563356CF673B67CF0B48A0E81B58A0E82B68A0E80C49A0E81C59A0E82C69A0E80B001B002B0000E00C001C002C0000E00B651B652B6500E00C651C652C6500E00B1B60EC34D734AD2B8060EC0C1C60EC3CD73CAD2C8060EC0B2BDEE81B80DEE8348034BD3C803CBD33D70BBD3BD71BBD488048CF598059CF683368CF493B49CFBBFF20EA008000E8583358CF693B69CF78FF20EA57C0BFEA0080A0E90000D8ECFB -/* T2GZA */ -:0458000000008A98E9008000E80080A0E90000D8ECFF80C0E9008000E80A4050BF2A4060BF324151BF3A4161BFC36BD36B008A98E9737BC8EC96E241047B43A0E87353A0E8ADEE239F00E0510490E261043146B1E85141E0EC3967B1E8000446E27363A0E86141E0EC310039007C8015EA100420046151E0EC2F4160EA312039201F42A0E82A4252BF0F52A0E81A4262BF1E5160EA737BC8EC0E6160EA324050BD224060BD124151BD3A4161BDBF2F0EBD97E27B723220222012203A203548B1E83D59B1E8463146BF563156BFB3E22D9F008000E8663166BF473947BF573957BF673967BF6D8007EA244120E935003D0000E02D7333720CE38D2F1EBD4375F8EC35203D2043432DDF53532DDFAE1E0EBD58E33366483548BF583558BF683568BF493D49BF593D59BF693D69BF63632DDF4D7DF8EC59E300E0B83833BF2D733076183A41E93F53A0E805803DEA3743A0E83D63A0E85070F8EC2B503CE91F0FBCE8008000E85978F8EC008000E815C020E915C020E915C020E915C020E91E1241E91A2241E9463746DF563F56DF2B403DE9663D66DF1D3241E9673D67DF473747DF573F57DF2A4020E9593F59DF163020E9693D69DF483748DF583F58DF12122DDF22222DDF32322DDF3A3A2DDF683D68DF493749DF3DCF74C037CF74C431532F9F348020E939E52C9F3C3D20E90A4454B0024464B02A4454B21A4464B229803AEA0A2002200FCF74C63DCF74C288735EE92A201A2030502E9F32315FE938212C9F33395FE931532F9F9C0F20E90A4454B4024464B42A4454B61A4464B639E52C9F383D20E90A2002202A201A200A4757BF024767BF30502E9F3E304FE938212C9F3F384FE92A4656BF1A4666BF31532F9F3A314FE939E52C9F3B394FE931532F9F36304FE939E52C9F37384FE92A4353BF1A4363BF30502E9F9D314FE938212C9F9E394FE90A4858BF024868BF31532F9F803157E939E52C9F813957E92A4959BF1A4969BF30502E9F823057E938212C9F833857E931532F9F84315EE939E52C9F85395EE9867657E98A3620E9877757E98B3EBFEA803057E9813857E9823157E9867857E9833957E9877957E9301F5FE98A3420E98B3C20E9375060BD570D20E9355161BD2B5020E91D37E1EA1E35E1EA00E00E77245120E99BFF20EA160E20E9572EBFEA0B46A0E81B56A0E82B66A0E80C47A0E81C57A0E82C67A0E80B001B002B0000E00C001C002C0000E00B651B652B6500E00C651C652C6500E00B1B60EC36D736AD2B8060EC0C1C60EC3ED73EAD2C8060EC0B2BDEE81B80DEE8368036BD3E803EBD33D70BBD3BD71BBD468046CF578057CF663366CF473B47CF563356CF673B67CF0B48A0E81B58A0E82B68A0E80C49A0E81C59A0E82C69A0E80B001B002B0000E00C001C002C0000E00B651B652B6500E00C651C652C6500E00B1B60EC34D734AD2B8060EC0C1C60EC3CD73CAD2C8060EC0B2BDEE81B80DEE8348034BD3C803CBD33D70BBD3BD71BBD488048CF598059CF683368CF493B49CFBAFF20EA008000E8583358CF693B69CF79FF20EA57C0BFEA0080A0E90000D8ECA0 -/* T2GZAF */ -:0480000000008A98E9008000E80080A0E90000D8ECFF80C0E9008000E80A4050BF2A4060BF324151BF3A4161BFC36BD36B008A98E9737BC8EC96E241047B43A0E87353A0E8ADEE239F00E0510490E261043146B1E85141E0EC3967B1E8000446E27363A0E86141E0EC31003900818015EA100420046151E0EC2F4160EA312039201F42A0E82A4252BF0F52A0E81A4262BF1E5160EA737BC8EC0E6160EA324050BD224060BD124151BD3A4161BDBF2F0EBD97E27B723220222012203A203548B1E83D59B1E8463146BF563156BFB3E22D9F008000E8663166BF473947BF573957BF673967BF728007EA244120E935003D0000E02D7333720CE38D2F1EBD4375F8EC35203D2043432DDF53532DDFAE1E0EBD58E33366483548BF583558BF683568BF493D49BF593D59BF693D69BF63632DDF4D7DF8EC59E300E0B83833BF2D733076183A41E93F53A0E805803DEA3743A0E83D63A0E85070F8EC2B503CE91F0FBCE8008000E85978F8EC008000E815C020E915C020E915C020E915C020E91E1241E91A2241E9463746DF563F56DF2B403DE9663D66DF1D3241E9673D67DF473747DF573F57DF2A4020E9593F59DF163020E9693D69DF483748DF583F58DF12122DDF22222DDF32322DDF3A3A2DDF683D68DF493749DF3DCF74C037CF74C40A4454B0024464B031532F9F343720E939E52C9F3C3D20E92A4454B21A4464B22E803AEA0A20022088735EE92A201A203DCF74C20FCF74C630502E9F32315FE938212C9F33395FE931532F9F9C0F20E90A4454B4024464B42A4454B61A4464B639E52C9F383D20E90A2002202A201A203DCF75C6008000E830502E9F3E304FE938212C9F3F384FE90A4555B6024565B631532F9F3A314FE939E52C9F3B394FE9313D20E90A2002202A4656BF1A4666BF0A4757BF024767BF30502E9F36304FE938212C9F37384FE931532F9F9D314FE939E52C9F9E394FE92A4353BF1A4363BF30502E9F35304FE938212C9F39384FE90A4858BF024868BF31532F9F803157E939E52C9F813957E92A4959BF1A4969BF30502E9F823057E938212C9F833857E931532F9F84315EE939E52C9F85395EE9867657E98A3620E9877757E98B3EBFEA803057E9813857E9823157E9867857E9833957E9877957E9301F5FE98A3420E98B3C20E9375060BD570D20E9355161BD2B5020E91D37E1EA1E35E1EA00E00E77245120E996FF20EA160E20E9572EBFEA0B46A0E81B56A0E82B66A0E80C47A0E81C57A0E82C67A0E80B001B002B0000E00C001C002C0000E00B651B652B6500E00C651C652C6500E00B1B60EC36D736AD2B8060EC0C1C60EC3ED73EAD2C8060EC0B2BDEE81B80DEE8368036BD3E803EBD33D70BBD3BD71BBD468046CF578057CF663366CF473B47CF563356CF673B67CF0B48A0E81B58A0E82B68A0E80C49A0E81C59A0E82C69A0E80B001B002B0000E00C001C002C0000E00B651B652B6500E00C651C652C6500E00B1B60EC34D734AD2B8060EC0C1C60EC3CD73CAD2C8060EC0B2BDEE81B80DEE8348034BD3C803CBD33D70BBD3BD71BBD488048CF598059CF683368CF493B49CFB5FF20EA008000E8583358CF693B69CF74FF20EA57C0BFEA0080A0E90000D8ECDC -/* T2GZS */ -:04A0000000008A98E9008000E80080A0E90000D8ECFF80C0E9008000E80A4050BF2A4060BF324151BF3A4161BFC36BD36B008A98E9737BC8EC96E241047B43A0E87353A0E8ADEE239F00E0510490E261043146B1E85141E0EC3967B1E8000446E27363A0E86141E0EC31003900858015EA100420046151E0EC2F4160EA312039201F42A0E82A4252BF0F52A0E81A4262BF1E5160EA737BC8EC0E6160EA324050BD224060BD124151BD3A4161BDBF2F0EBD97E27B723220222012203A203548B1E83D59B1E8463146BF563156BFB3E22D9F008000E8663166BF473947BF573957BF673967BF768007EA244120E935003D0000E02D7333720CE38D2F1EBD4375F8EC35203D2043432DDF53532DDFAE1E0EBD58E33366483548BF583558BF683568BF493D49BF593D59BF693D69BF63632DDF4D7DF8EC59E300E0B83833BF2D733076183A41E93F53A0E805803DEA3743A0E83D63A0E85070F8EC2B503CE91F0FBCE8008000E85978F8EC008000E815C020E915C020E915C020E915C020E91E1241E91A2241E9463746DF563F56DF2B403DE9663D66DF1D3241E9673D67DF473747DF573F57DF2A4020E9593F59DF163020E9693D69DF483748DF583F58DF683D68DF493749DF32322DDF22222DDF12122DDF3A3A2DDF0FCF74C237CF74C40A4454B0024464B03DCF74C0343720E931532F9F380F20E939E52C9F3C3D20E92A4454B21A4464B231803AEA0A2002200FCF75C02A201A2030502E9F32315FE938212C9F33395FE93DCF75C237CF75C431532F9FA60F20E939E52C9FA33D20E92A4454B41A4464B40A4555B0024565B088735EE92A201A20A03720E90A20022031532F9F3E304FE939E52C9F3F384FE930502E9F3A314FE92A4555B21A4565B20A4555B4024565B438212C9F3B394FE92A201A200A2002202A4656BF1A4666BF31532F9F36314FE939E52C9F37394FE930502E9FA7304FE938212C9FA8384FE90A4757BF024767BF31532F9FA4314FE939E52C9FA5394FE92A4353BF1A4363BF30502E9FA1304FE938212C9FA2384FE90A4858BF024868BF31532F9F803157E939E52C9F813957E92A4959BF1A4969BF30502E9F823057E938212C9F833857E931532F9F84315EE939E52C9F85395EE9867657E98A3620E9877757E98B3EBFEA803057E9813857E9823157E9867857E9833957E9877957E9301F5FE98A3420E98B3C20E9375060BD570D20E9355161BD2B5020E91D37E1EA1E35E1EA00E00E77245120E992FF20EA160E20E9572EBFEA0B46A0E81B56A0E82B66A0E80C47A0E81C57A0E82C67A0E80B001B002B0000E00C001C002C0000E00B651B652B6500E00C651C652C6500E00B1B60EC36D736AD2B8060EC0C1C60EC3ED73EAD2C8060EC0B2BDEE81B80DEE8368036BD3E803EBD33D70BBD3BD71BBD468046CF578057CF663366CF473B47CF563356CF673B67CF0B48A0E81B58A0E82B68A0E80C49A0E81C59A0E82C69A0E80B001B002B0000E00C001C002C0000E00B651B652B6500E00C651C652C6500E00B1B60EC34D734AD2B8060EC0C1C60EC3CD73CAD2C8060EC0B2BDEE81B80DEE8348034BD3C803CBD33D70BBD3BD71BBD488048CF598059CF683368CF493B49CFB2FF20EA008000E8583358CF693B69CF70FF20EA57C0BFEA0080A0E90000D8EC43 -/* T2GZSF */ -:04C8000000008A98E9008000E80080A0E90000D8ECFF80C0E9008000E80A4050BF2A4060BF324151BF3A4161BFC36BD36B008A98E9737BC8EC96E241047B43A0E87353A0E8ADEE239F00E0510490E261043146B1E85141E0EC3967B1E8000446E27363A0E86141E0EC310039008A8015EA100420046151E0EC2F4160EA312039201F42A0E82A4252BF0F52A0E81A4262BF1E5160EA737BC8EC0E6160EA324050BD224060BD124151BD3A4161BDBF2F0EBD97E27B723220222012203A203548B1E83D59B1E8463146BF563156BFB3E22D9F008000E8663166BF473947BF573957BF673967BF7B8007EA244120E935003D0000E02D7333720CE38D2F1EBD4375F8EC35203D2043432DDF53532DDFAE1E0EBD58E33366483548BF583558BF683568BF493D49BF593D59BF693D69BF63632DDF4D7DF8EC59E300E0B83833BF2D733076183A41E93F53A0E805803DEA3743A0E83D63A0E85070F8EC2B503CE91F0FBCE8008000E85978F8EC008000E815C020E915C020E915C020E915C020E91E1241E91A2241E9463746DF563F56DF2B403DE9663D66DF1D3241E9673D67DF473747DF573F57DF2A4020E9593F59DF163020E9693D69DF483748DF583F58DF683D68DF493749DF32322DDF22222DDF12122DDF3A3A2DDF0FCF74C237CF74C40A4454B0024464B03DCF74C0343720E931532F9F380F20E939E52C9F3C3D20E92A4454B21A4464B236803AEA0A2002200FCF75C02A201A2030502E9F32315FE938212C9F33395FE93DCF75C237CF75C431532F9FA60F20E939E52C9FA33D20E92A4454B41A4464B40A4555B0024565B088735EE92A201A20A03720E90A20022031532F9F3E304FE939E52C9F3F384FE930502E9F3A314FE938212C9F3B394FE92A4555B21A4565B20A4555B4024565B40FCF75C62A201A20A7304FE90A20022031532F9F310F20E939E52C9FA8384FE92A4555B61A4565B630502E9F36314FE938212C9F37394FE9008000E82A201A202A4656BF1A4666BF31532F9FA4314FE939E52C9FA5394FE90A4757BF024767BF31532F9FA1304FE939E52C9FA2384FE92A4353BF1A4363BF30502E9F35314FE938212C9F39394FE90A4858BF024868BF31532F9F803157E939E52C9F813957E92A4959BF1A4969BF30502E9F823057E938212C9F833857E931532F9F84315EE939E52C9F85395EE9867657E98A3620E9877757E98B3EBFEA803057E9813857E9823157E9867857E9833957E9877957E9301F5FE98A3420E98B3C20E9375060BD570D20E9355161BD2B5020E91D37E1EA1E35E1EA00E00E77245120E98DFF20EA160E20E9572EBFEA0B46A0E81B56A0E82B66A0E80C47A0E81C57A0E82C67A0E80B001B002B0000E00C001C002C0000E00B651B652B6500E00C651C652C6500E00B1B60EC36D736AD2B8060EC0C1C60EC3ED73EAD2C8060EC0B2BDEE81B80DEE8368036BD3E803EBD33D70BBD3BD71BBD468046CF578057CF663366CF473B47CF563356CF673B67CF0B48A0E81B58A0E82B68A0E80C49A0E81C59A0E82C69A0E80B001B002B0000E00C001C002C0000E00B651B652B6500E00C651C652C6500E00B1B60EC34D734AD2B8060EC0C1C60EC3CD73CAD2C8060EC0B2BDEE81B80DEE8348034BD3C803CBD33D70BBD3BD71BBD488048CF598059CF683368CF493B49CFADFF20EA008000E8583358CF693B69CF6BFF20EA57C0BFEA0080A0E90000D8EC56 -/* T2GZSA */ -:04C8000000008A98E9008000E80080A0E90000D8ECFF80C0E9008000E80A4050BF2A4060BF324151BF3A4161BFC36BD36B008A98E9737BC8EC96E241047B43A0E87353A0E8ADEE239F00E0510490E261043146B1E85141E0EC3967B1E8000446E27363A0E86141E0EC310039008A8015EA100420046151E0EC2F4160EA312039201F42A0E82A4252BF0F52A0E81A4262BF1E5160EA737BC8EC0E6160EA324050BD224060BD124151BD3A4161BDBF2F0EBD97E27B723220222012203A203548B1E83D59B1E8463146BF563156BFB3E22D9F008000E8663166BF473947BF573957BF673967BF7B8007EA244120E935003D0000E02D7333720CE38D2F1EBD4375F8EC35203D2043432DDF53532DDFAE1E0EBD58E33366483548BF583558BF683568BF493D49BF593D59BF693D69BF63632DDF4D7DF8EC59E300E0B83833BF2D733076183A41E93F53A0E805803DEA3743A0E83D63A0E85070F8EC2B503CE91F0FBCE8008000E85978F8EC008000E815C020E915C020E915C020E915C020E91E1241E91A2241E9463746DF563F56DF2B403DE9663D66DF1D3241E9673D67DF473747DF573F57DF2A4020E9593F59DF163020E9693D69DF483748DF583F58DF683D68DF493749DF32322DDF22222DDF12122DDF3A3A2DDF0FCF74C237CF74C40A4454B0024464B03DCF74C0343720E931532F9F380F20E939E52C9F3C3D20E92A4454B21A4464B236803AEA0A2002200FCF75C02A201A2030502E9F32315FE938212C9F33395FE93DCF75C237CF75C431532F9FA60F20E939E52C9FA33D20E92A4454B41A4464B40A4555B0024565B088735EE92A201A20A03720E90A20022031532F9F3E304FE939E52C9F3F384FE930502E9F3A314FE938212C9F3B394FE92A4555B21A4565B20A4555B4024565B40FCF74C62A201A20A7304FE90A20022031532F9F9C0F20E939E52C9FA8384FE92A4454B61A4464B630502E9F36314FE938212C9F37394FE9008000E82A201A202A4656BF1A4666BF31532F9FA4314FE939E52C9FA5394FE90A4757BF024767BF31532F9FA1304FE939E52C9FA2384FE92A4353BF1A4363BF30502E9F9D314FE938212C9F9E394FE90A4858BF024868BF31532F9F803157E939E52C9F813957E92A4959BF1A4969BF30502E9F823057E938212C9F833857E931532F9F84315EE939E52C9F85395EE9867657E98A3620E9877757E98B3EBFEA803057E9813857E9823157E9867857E9833957E9877957E9301F5FE98A3420E98B3C20E9375060BD570D20E9355161BD2B5020E91D37E1EA1E35E1EA00E00E77245120E98DFF20EA160E20E9572EBFEA0B46A0E81B56A0E82B66A0E80C47A0E81C57A0E82C67A0E80B001B002B0000E00C001C002C0000E00B651B652B6500E00C651C652C6500E00B1B60EC36D736AD2B8060EC0C1C60EC3ED73EAD2C8060EC0B2BDEE81B80DEE8368036BD3E803EBD33D70BBD3BD71BBD468046CF578057CF663366CF473B47CF563356CF673B67CF0B48A0E81B58A0E82B68A0E80C49A0E81C59A0E82C69A0E80B001B002B0000E00C001C002C0000E00B651B652B6500E00C651C652C6500E00B1B60EC34D734AD2B8060EC0C1C60EC3CD73CAD2C8060EC0B2BDEE81B80DEE8348034BD3C803CBD33D70BBD3BD71BBD488048CF598059CF683368CF493B49CFADFF20EA008000E8583358CF693B69CF6BFF20EA57C0BFEA0080A0E90000D8EC23 -/* T2GZSAF */ -:04E8000000008A98E9008000E80080A0E90000D8ECFF80C0E9008000E80A4050BF2A4060BF324151BF3A4161BFC36BD36B008A98E9737BC8EC96E241047B43A0E87353A0E8ADEE239F00E0510490E261043146B1E85141E0EC3967B1E8000446E27363A0E86141E0EC310039008E8015EA100420046151E0EC2F4160EA312039201F42A0E82A4252BF0F52A0E81A4262BF1E5160EA737BC8EC0E6160EA324050BD224060BD124151BD3A4161BDBF2F0EBD97E27B723220222012203A203548B1E83D59B1E8463146BF563156BFB3E22D9F008000E8663166BF473947BF573957BF673967BF7F8007EA244120E935003D0000E02D7333720CE38D2F1EBD4375F8EC35203D2043432DDF53532DDFAE1E0EBD58E33366483548BF583558BF683568BF493D49BF593D59BF693D69BF63632DDF4D7DF8EC59E300E0B83833BF2D733076183A41E93F53A0E805803DEA3743A0E83D63A0E85070F8EC2B503CE91F0FBCE8008000E85978F8EC008000E815C020E915C020E915C020E915C020E91E1241E91A2241E9463746DF563F56DF2B403DE9663D66DF1D3241E9673D67DF473747DF573F57DF2A4020E9593F59DF163020E9693D69DF483748DF583F58DF683D68DF493749DF32322DDF22222DDF12122DDF3A3A2DDF0FCF74C237CF74C40A4454B0024464B03DCF74C0343720E931532F9F380F20E939E52C9F3C3D20E92A4454B21A4464B23A803AEA0A2002200FCF75C02A201A2030502E9F32315FE938212C9F33395FE93DCF75C237CF75C431532F9FA60F20E939E52C9FA33D20E92A4454B41A4464B40A4555B0024565B088735EE92A201A20A03720E90A20022031532F9F3E304FE939E52C9F3F384FE930502E9F3A314FE938212C9F3B394FE92A4555B21A4565B20A4555B4024565B40FCF74C62A201A20A7304FE90A20022031532F9F9C0F20E939E52C9FA8384FE92A4454B61A4464B630502E9F36314FE938212C9F37394FE90A4555B6024565B63DCF75C62A201A202A4656BF1A4666BF31532F9FA4314FE939E52C9FA5394FE9313D20E90A2002200A4757BF024767BF30502E9FA1304FE938212C9FA2384FE931532F9F9D314FE939E52C9F9E394FE92A4353BF1A4363BF30502E9F35304FE938212C9F39384FE90A4858BF024868BF31532F9F803157E939E52C9F813957E92A4959BF1A4969BF30502E9F823057E938212C9F833857E931532F9F84315EE939E52C9F85395EE9867657E98A3620E9877757E98B3EBFEA803057E9813857E9823157E9867857E9833957E9877957E9301F5FE98A3420E98B3C20E9375060BD570D20E9355161BD2B5020E91D37E1EA1E35E1EA00E00E77245120E989FF20EA160E20E9572EBFEA0B46A0E81B56A0E82B66A0E80C47A0E81C57A0E82C67A0E80B001B002B0000E00C001C002C0000E00B651B652B6500E00C651C652C6500E00B1B60EC36D736AD2B8060EC0C1C60EC3ED73EAD2C8060EC0B2BDEE81B80DEE8368036BD3E803EBD33D70BBD3BD71BBD468046CF578057CF663366CF473B47CF563356CF673B67CF0B48A0E81B58A0E82B68A0E80C49A0E81C59A0E82C69A0E80B001B002B0000E00C001C002C0000E00B651B652B6500E00C651C652C6500E00B1B60EC34D734AD2B8060EC0C1C60EC3CD73CAD2C8060EC0B2BDEE81B80DEE8348034BD3C803CBD33D70BBD3BD71BBD488048CF598059CF683368CF493B49CFA9FF20EA008000E8583358CF693B69CF67FF20EA57C0BFEA0080A0E90000D8ECEE -:0000000001FF diff --git a/firmware/mts_cdma.fw.ihex b/firmware/mts_cdma.fw.ihex deleted file mode 100644 index f6ad0cbd30cb..000000000000 --- a/firmware/mts_cdma.fw.ihex +++ /dev/null @@ -1,867 +0,0 @@ -:1000000014360002001E021AF9FFFFFFFFFF023341 -:100010001DFFFFFFFFFFFFFFFFFFFFFFFFFF02339B -:10002000C87581CE90FDE88583A012353CEC4D600B -:100030007378AB8003760018B89CFA787F800376DB -:100040000018B865FA78208003760018B820FA788E -:10005000208003760018B81FFA90FDDDAE83AF82D2 -:1000600090FBF81200AA6005E4F0A380F690FDE88A -:10007000A88290FDE8A982E8696005E4F20880F7AB -:100080009001081200B390010C1200B390011012FD -:1000900000B39001141200D190011A1200D1900106 -:1000A000201200D175D00012341A020126EF6582A9 -:1000B0007003EE658322E493F8740193F97402935C -:1000C000FE740393F5828E83E869700122E493F64F -:1000D000A30880F4E493FC740193FD740293FE740E -:1000E0000393FF740493F8740593F58288831200D8 -:1000F000AA700122E493A3A883A9828C838D82F045 -:10010000A3AC83AD828883898280E32121049B8014 -:1001100080049BACAE049BFDE8049D049DFBF304AE -:10012000A2049DFBF30502050280FED0F030F00929 -:1001300020F303F68010F7800D30F10920F303F26D -:100140008004F38001F020F404FCD0E0CC22CCC089 -:10015000E0120163020154BC0005D0F0ACF022C3F0 -:1001600013DCFC02012ABF0009ED258275F001F8BD -:10017000E622BF010FED2582F582EE3583F583750A -:10018000F004E022ED258275F002F8E222D083D05F -:1001900082F5F0C3E493A3C5F095F0C0E0C3D0F0BE -:1001A000E493A395F04012A3A3C3E5F033500205F6 -:1001B000832582F58250020583740193C0E0E493A5 -:1001C000C0E022D083D082F5F0E4937009740193EB -:1001D0007004A3A3800C74029365F06005A3A3A32D -:1001E00080E7740193C0E0E493C0E022120264024D -:1001F00001FB1202B80201FB1202DC0201FB30E03B -:100200000720E302E622E72230E10720E302E222B0 -:10021000E32230E202E022E493221202DC02022313 -:100220001202B8020223ABF012022DCBC5F0CB2292 -:1002300030E01020E306E6F5F008E622E7F5F009E5 -:10024000E7192230E11020E306E2F5F008E222E3AC -:10025000F5F009E3192230E206E0F5F0A3E022E42C -:1002600093F5F074019322BB0003740922BB0107CC -:1002700089828A83740422BB020789828A8374106C -:1002800022740A22020284BB0007E92582F8740165 -:1002900022BB010DE92582F582EA3583F5837404DA -:1002A00022BB020DE92582F582EA3583F5837410BD -:1002B00022E92582F87402220202B8BF0005EDF897 -:1002C000740122BF01078D828E83740422BF02074E -:1002D0008D828E83741022EDF87402220202DCBF3C -:1002E0000007ED2582F8740122BF010DED2582F58E -:1002F00082EE3583F583740422BF020DED2582F56D -:1003000082EE3583F583741022ED2582F874022283 -:10031000020310C0E0120264020328C0E01202B817 -:10032000020328C0E01202DC02032830E00B20E3C5 -:1003300004D0E0F622D0E0F72230E10B20E304D035 -:10034000E0F222D0E0F322D0E0F022C9CDC9CACE3B -:10035000CACBCFCB12035BEDF9EEFAEFFB22BB0069 -:100360002FBF000AFAEDF8E7F60809DAFA22BF0112 -:10037000128D828E83F802037809A3E7F0D8FA225F -:10038000020383FAEDF8E7F20809DAFA2202038D94 -:10039000BB014DBF001489828A83F9EDF802039FE7 -:1003A00008A3E0F6D9FA220203B0BF01228D828EA3 -:1003B00083FB08C9C582C9CAC583CAE0A3C9C5826F -:1003C000C9CAC583CAF0A3DBEAD8E8220203D38DE9 -:1003D000828E83F9EDF8E0F208A3D9FA220203DD58 -:1003E000BB024DBF001289828A83F9EDF80203EF48 -:1003F00008A3E493F6D9F922BF01238D828E83FBF3 -:1004000008C9C582C9CAC583CAE493A3C9C582C93C -:10041000CAC583CAF0A3DBE9D8E722020422898295 -:100420008A83F9EDF8E493F208A3D9F922020433A0 -:10043000BF000DFAEDF8E3F60809DAFA2202043DEE -:10044000BF01128D828E83F802044A09A3E3F0D81B -:10045000FA22020455FAEDF8E3F20809DAFA220268 -:10046000045FE6FB08E6FA08E6F904F618700106F0 -:1004700022E6FF08E6FE08E6FD22EFF0A3EEF0A379 -:10048000EDF022EBF0A3EAF0A3E9F022E0FFA3E015 -:10049000FEA3E0FD22E0FBA3E0FAA3E0F9220000C6 -:1004A00000000000000502006105710026059800AB -:1004B000330A0900610A750066154400610CF900F1 -:1004C0006109A9006109E000610DC000610BF10044 -:1004D000610A1C00610A510061173C0033174F008C -:1004E000341E1400431EBF0044202C0044201A0078 -:1004F000471EE600471F8B004D1FDC004F1F080002 -:100500005832A800617CCC7DFF121CC52290FFFCF4 -:10051000E020E72DC2AFAE59AF58755A20E55A1406 -:10052000C55A6019E4FE7F05EE4FCE24FFCECF34CE -:10053000FFCF6007E490FF92F080ED80E08E598F4E -:10054000582212050A7D077CB71232C47D0F7C6EDB -:100550001232DE789D7A06E4F608DAFC7A06120595 -:10056000CD7C03120E55122168E4FEFF7C0F12327F -:100570004DD2A822123138E490FC38F090FFF0E020 -:1005800030E408740190FC39F08005E490FC39F007 -:100590007D0A7C001225461231BB2212313890FCB4 -:1005A00039E014700E90FFF0E04410F07C0012254A -:1005B000DF801990FC39E0700E90FFF0E054EFF00E -:1005C0007C001225DF80057C171225DF1231BB224B -:1005D00090FFF0E054ABF090FFF0E04420F0228C6C -:1005E000378D367882EDF608ECF6EDFEECFD7F01F6 -:1005F0009000051201F57880F67882E6FD08E6FCA9 -:10060000EDFEECFD7F019000041201F5540FFC7D1E -:100610008012176D7880E6700DAD3AAE39AF38E4D0 -:100620001203187C082290FFF0E054FEF090FFF0D7 -:10063000E054FDF0801E7882E6FD08E6FCEDFEEC5D -:10064000FD7F0190000812021725E0440190FFF39E -:10065000F00206D97882E6FD08E6FCEDFEECFD7FAF -:100660000190000612021754FE90FFF3F0802B78E1 -:1006700082E6FD08E6FCEDFEECFD7F01900008122D -:100680000217FAEB90FFF1F01208C8400DAD3AAE38 -:1006900039AF38E41203187C18227882E6FD08E6A8 -:1006A000FCEDFEECFD7F0190000812021790FFF1B7 -:1006B000F01208C8400DAD3AAE39AF38E412031855 -:1006C0007C18227882E6FD08E6FCEDFEECFD7F0159 -:1006D000900006120217440190FFF3F07883E6249D -:1006E00003F618E63400F67880E624FE500990FF01 -:1006F000F0E054FDF0800790FFF0E04402F0E49059 -:10070000FFF1F0788176007880E624FFFCE434FF86 -:10071000FD7881E67F00FEECD39EEF6480CD64809F -:100720009D402F1208AD400F7881E6AD3AAE39AF4B -:10073000381203187C182290FFF2E0FC788286833E -:10074000088682ECF0788106A37882A68308A682C8 -:1007500080B51208AD400F7881E6AD3AAE39AF38BA -:100760001203187C182290FFF2E0FC78828683083E -:100770008682ECF07880E6AD3AAE39AF38120318D5 -:100780007C00228C378D367882EDF608ECF6EDFE93 -:10079000ECFD7F019000051201F57881F67882E684 -:1007A000FD08E6FCEDFEECFD7F019000041201F572 -:1007B000540FFC7D8112176D7881E670037C08224E -:1007C00090FFF0E054FEF090FFF0E054FDF0801B4D -:1007D0007882E6FD08E6FCEDFEECFD7F0190000866 -:1007E00012021725E090FFF3F0805B7882E6FD08A7 -:1007F000E6FCEDFEECFD7F0190000612021754FEB0 -:1008000090FFF3F080217882E6FD08E6FCEDFEEC37 -:10081000FD7F01900008120217FAEB90FFF1F01231 -:1008200008C840037C18227882E6FD08E6FCEDFE4D -:10083000ECFD7F0190000812021790FFF1F0120802 -:10084000C840037C18227883E6240AF618E63400B0 -:10085000F6788076007881E624FFFCE434FFFD78AA -:1008600080E67F00FEECD39EEF6480CD64809D40E7 -:100870002178828683088682E090FFF1F01208C812 -:1008800040037C1822788006788306E618700106FB -:1008900080C390FFF0E04401F0788286830886826E -:1008A000E090FFF1F01208C840037C18227C00227F -:1008B00090FFF0E020E71290FFF0E030E50990FFB4 -:1008C000F0E04420F0C32280E7D32290FFF0E02044 -:1008D000E31290FFF0E030E50990FFF0E04420F0F3 -:1008E000C32280E7D3228C428D417C00ED54F0FD81 -:1008F000EC7003ED64307005753E038003753E04B3 -:10090000AC3E120F72758300858340E541540FF5AC -:100910003FE5407004E53F64037035E53E24FD7516 -:10092000F00AA42402F582E434FCF583E030E60505 -:100930001210598019E53E249DF8E654FBF678A97B -:10094000E62405F58218E63400F583740FF080592B -:10095000E5407004E53F64047048E53E24FD75F011 -:100960000AA42402F582E434FCF583E030E507AC08 -:1009700042AD41121C5AE54230E21578ADE630E056 -:100980000F78ADE630E109E4FF04FE7C0412324D3D -:1009900078A9E62406F58218E63400F583740FF092 -:1009A0008007E4FC7DEE121C5AC203221231381279 -:1009B0000F7278A9E62406F58218E63400F583E084 -:1009C00090FC38F078A9E62405F58218E63400F5A5 -:1009D00083E090FC39F0C2037D027C0012254612B0 -:1009E00031BB221231387895ECF6EC249DF8E630D4 -:1009F000E1077C131225DF800F90FC39E0FD78952C -:100A0000E6FC1213EF1225DF1231BB2212313878C7 -:100A100095ECF67D00120F121225DF1231BB221267 -:100A200031387895ECF6EC249DF8E630E2077C133B -:100A30001225DF801B7895E6249DF8E620E1077CEF -:100A4000121225DF800A7895E6FC1214131225DFB6 -:100A50001231BB221231387895ECF6EC249DF8E681 -:100A600020E2077C111225DF800A7895E6FC12153A -:100A7000141225DF1231BB221231387895ECF612B0 -:100A80000F7278A9E62409F58218E63400F583E0B0 -:100A900090FC3FF078A9E6240AF58218E63400F5C8 -:100AA00083E090FC40F078A9E62403F58218E63450 -:100AB00000F583E0FC78A9E62404F58218E634000A -:100AC000F583E0F56278A9E62402F58218E63400A1 -:100AD000F583E0F5638C61E4EC333354017895F6EB -:100AE0006008E56230E1037895067895E690FC4170 -:100AF000F078A7E62402F58218E63400F583E0FDDD -:100B0000A3E0540CFCED54E68C65F564E56130E53A -:100B100003436501E56220E50EE561547F7008E559 -:100B20006120E703436502E56130E303436510E5B7 -:100B30006130E203436520E561540360034365408F -:100B4000E56130E103436580E56130E4034364011E -:100B5000E56130E603436408E56220E40EE5615494 -:100B60007F7008E56120E7034364105365FB53641D -:100B7000F9AD64E56590FC3ACDF0A3CDF0E56330C6 -:100B8000E30DE5635430C4540F90FC3DF08005E460 -:100B900090FC3DF0E563540390FC3CF0E5635404A5 -:100BA000C31390FC3EF090FC3CE0700E7D357EFC63 -:100BB0007F01740190000912014B78A9E62408F521 -:100BC0008218E63400F583E07C00FD78A9E624076E -:100BD000F58218E63400F583E07F004CFEEF4D907F -:100BE000FC38F0A3CEF0CEC2037D0A7C001225466D -:100BF0001231BB221231387895ECF6789A760108DA -:100C000076FC0876387897760C789A12046E120281 -:100C10001D7898CBF6CB08F67F00EF24EA401FE45E -:100C2000EF25E090357EFD93CD04937899667003AF -:100C3000ED186670067897760080030F80DC789652 -:100C4000EFF6789A12046E9000021202177898CB91 -:100C5000F6CB08F65404CB54064B60047897760B19 -:100C60007899E630E313789A12046E900005120129 -:100C7000F524FB50047897760D7899E654C07D00F2 -:100C800064C04D70047897760B789A12046E9000C9 -:100C9000041201F524FC50047897760F789A120418 -:100CA0006E9000061201F524FD50047897760E78B8 -:100CB0009A12046E9000091201F524FD50047897F1 -:100CC000760A7897E6702A7895E6FC120F72789A81 -:100CD00012046E78A7E6F978A6E6FA7B01740A7822 -:100CE00000120348C2037895E6FC1211157897ECC0 -:100CF000F67897E6FC1225DF1231BB2212313878E4 -:100D000095ECF6120F727895E624FD75F00AA4248E -:100D100014F582E434FCF583AC82AD8378A6868337 -:100D2000088682ECF9EDFA7B0A78011203B0C2035F -:100D30007895E6FC1211151231BB228D2B8C2AED11 -:100D400060407527017529487528FFE52A24FDFCB8 -:100D5000E434FFFDEC7C0325E0CD33CDDCF9FCE58C -:100D6000292CF529E5283DF528AD29AE28AF2774B3 -:100D7000809000061203207480900002120320125B -:100D80000FC5E52B14603B7527017529087528FFF1 -:100D9000E52A24FDFCE434FFFDEC7C0325E0CD33A3 -:100DA000CDDCF9FCE5292CF529E5283DF528AD2910 -:100DB000AE28AF27E4900006120320E49000021250 -:100DC0000320221231387895ECF6EC249DF8E630B9 -:100DD000E2097895E6FC121514D2007895E6FC122B -:100DE0000F727896760090FC39E030E704789676BA -:100DF000017896E6FD7895E6FC120D38C2033000C6 -:100E0000077895E6FC1214137C001225DF1231BB23 -:100E10002278A9E62404F58218E63400F583E0443C -:100E200001F078A9E62404F58218E63400F583E0A1 -:100E300030E00280ED78A9E6240BF58218E6340054 -:100E4000F583E054F8F078A9E62402F58218E63438 -:100E500000F583E04480F022C2038C58120F7278B0 -:100E6000A6868308868279AF7A357B0A78011203D9 -:100E7000FE120E0EAC587D02120D38C203AC581291 -:100E80001115228D538E528F518C50120F72754F47 -:100E90000078A9E62405F58218E63400F583E02001 -:100EA000E41FE54F24F64019054FC2037C181232A7 -:100EB000FB90FF93E04401F0B2B3AC50120F72808C -:100EC000D078A9E62405F58218E63400F583E02001 -:100ED000E405C2037C022278A9E62405F58218E61F -:100EE0003400F583E0540F601678A9E62405F582F6 -:100EF00018E63400F583E0540FF0C2037C01227839 -:100F0000A88683088682E0AD53AE52AF5112031813 -:100F1000C2037C00228D318C30121514E531600F34 -:100F2000E530B4030A7C0112250E7C8112250EAC3B -:100F300030120F72E531601A78AA8683088682E043 -:100F400054E7F0A3A3A3A3E054E7F0AC307D021272 -:100F50000D3878A6868308868279B97A357B0A7837 -:100F6000011203FEC203E530249DF8E654FDF6AC01 -:100F700030121115228C2630030512329A80F87C2B -:100F80000A1231ADD203E52624FD78A3F670077866 -:100F9000AA76FF0876E078A3E67D007C0425E0CD04 -:100FA00033CDDCF9FC24A078A9F6ED34FF18F678EF -:100FB000A3E675F00AA42400FCE434FCFD78A6ED59 -:100FC000F608ECF61232462278A9E62402F58218D9 -:100FD000E63400F583E030E72278A9E62402F582C2 -:100FE00018E63400F583E0547FF078A9E62402F592 -:100FF0008218E63400F583E04480F02278AA8683E4 -:10100000088682E0547FF0AD83E5822404FCE43D51 -:101010008C82F583E0547FF078A9E6240BF58218E2 -:10102000E63400F583E054F8F078ABE62401F5826D -:1010300018E63400F583E04403F078ABE62405F5C8 -:101040008218E63400F583E04403F078A9E624052D -:10105000F58218E63400F583740FF02278AA8683AF -:10106000088682E0543FF0AD83E5822404FCE43D31 -:101070008C82F583E0543FF078A3E624A4F8E6FCE4 -:1010800078ABE62401F58218E63400F583ECF078BD -:10109000A3E624A4F8E6FC78ABE62405F58218E67E -:1010A0003400F583ECF078A9E6240BF58218E634D9 -:1010B00000F583E054FB4402F52678A7E62402F508 -:1010C0008218E63400F583E030E50343260178A971 -:1010D000E62405F58218E63400F583E030E00312DB -:1010E0000FC5E526FC78A9E6240BF58218E6340046 -:1010F000F583ECF078A9E62405F58218E63400F5CE -:1011000083740FF078AA8683088682E04480F0A377 -:10111000A3A3A3E04480F0228C2A120F7278A7E6E2 -:101120002408F58218E63400F583E0FC78A9E6246B -:101130000AF58218E63400F583ECF078A7E6240778 -:10114000F58218E63400F583E0FC78A9E62409F579 -:101150008218E63400F583ECF078A6868308868250 -:10116000E0FDA3E0FCEDFE78A9E62408F58218E690 -:101170003400F583EEF0ECFE78A9E62407F582183A -:10118000E63400F583EEF08C298D28C3EC9405ED50 -:10119000940C400575277C8033D3E5299401E5281C -:1011A0009403400575273C8023D3E5299481E528E5 -:1011B000940140057527188013D3E5299460E5282C -:1011C0009400400575270C8003752708AF27E4EFCE -:1011D000547C4483FF8F27E527FC78ABE62401F598 -:1011E0008218E63400F583ECF0E527FC78ABE624C2 -:1011F00005F58218E63400F583ECF0E527FC78A3CA -:10120000E624A4F8ECF678A9E62402F58218E63480 -:1012100000F583E0F52778A7E62402F58218E63486 -:1012200000F583A3E030E3175327C778A7E624052A -:10123000F58218E63400F583E09035AA93422778CA -:10124000A7E62402F58218E63400F583E030E705CE -:1012500043274080035327BF5327FB78A7E6240684 -:10126000F58218E63400F583E06003432704532732 -:10127000FC78A7E62404F58218E63400F583E04202 -:1012800027432780E527FC78A9E62402F58218E6A3 -:101290003400F583ECF078A9E62404F58218E634EE -:1012A00000F583E0F52778A7E62402F58218E634F6 -:1012B00000F583A3E030E1055327DF8003432720B7 -:1012C00078A7E62402F58218E63400F583E030E4DE -:1012D000055327EF800343271078A7E62409F582FA -:1012E00018E63400F583E0B40203432702E527FC47 -:1012F00078A9E62404F58218E63400F583ECF0784A -:10130000A9E62403F58218E63400F583E0F5277892 -:10131000A7E62409F58218E63400F583E07005534A -:10132000277F800343278078A7E62402F58218E60A -:101330003400F583A3E030E00543272080035327E2 -:10134000DF78A7E62402F58218E63400F583E03062 -:10135000E30543274080035327BF78A7E62402F51F -:101360008218E63400F583E030E00543271080035F -:101370005327EF78A7E62402F58218E63400F583B8 -:10138000A3E030E40543270880035327F778A7E656 -:101390002402F58218E63400F583A3E030E5054326 -:1013A000270480035327FB78A7E62402F58218E67A -:1013B0003400F583A3E030E605432701800353277B -:1013C000FE78A7E62402F58218E63400F583A3E050 -:1013D00030E70543270280035327FDE527FC78A962 -:1013E000E62403F58218E63400F583ECF0C2037CB2 -:1013F00000228D278C26ED54031460037C1022E517 -:1014000027547C24FC40037C0B22E526249DF8E62F -:101410004402F67C00228C30120F72E530249DF8D5 -:10142000E620E24FAC307D02120D38E53024FE4458 -:1014300028FC78AA8683088682ECF0AF83E58224B4 -:1014400004FEE43FFFEC8E828F83F07C038C2CE55E -:101450002CFC78ABE62401F58218E63400F583EC29 -:10146000F0E52CFC78ABE62405F58218E63400F5AF -:1014700083ECF0752D01752F48752EFFE53024FDA6 -:10148000FCE434FFFDEC7C0325E0CD33CDDCF9FC3E -:10149000E52F2CF52FE52E3DF52E78ABE62404F54F -:1014A0008218E63400F583E054E7F52CAD2FAE2E1C -:1014B000AF2DE4900002120320E4900006120320F6 -:1014C0001201EF30E503432C10E52CFC78ABE62449 -:1014D00004F58218E63400F583ECF012105978A96F -:1014E000E62406F58218E63400F583E0C203FCE545 -:1014F00030249DF8E64404F68C2CE530540FC45497 -:10150000F07E00FFEEEF44047D00FFEC4EFCED4F5B -:10151000FD121CC57C00228C2F120F72120FF9785D -:10152000AA8683088682E05408F0A3A3A3A3E0540C -:1015300008F0AC2F7D02120D38C203E52F249DF870 -:10154000E654FBF67C00221231387896ECF6EC2457 -:101550009DF8E630E10A7D007C131225461231BB6E -:101560007896E6249DF8E64401F67896E6FC120F9C -:10157000727896E624FD75F00AA42414F582E4340A -:10158000FCF58378A6E6FA08E6F97B0A78011203EF -:10159000B078A6868308868279B97A357B0A780185 -:1015A0001203FE120FC5C2037896E6FC12111578DD -:1015B00095ECF6EC600A7D007C081225461231BBE2 -:1015C0007896E6FC120F7278A9E62404F58218E6F4 -:1015D0003400F583E0441054DFFC78A9E62404F5D8 -:1015E0008218E63400F583ECF07895ECF6C2037CC3 -:1015F000C81232FB7896E6FC120F7278A9E6240432 -:10160000F58218E63400F583E054EFF0C2037CC89D -:101610001232FB7896E6FC120F7278A9E62404F5E4 -:101620008218E63400F583E04410F0C2037CC8124F -:1016300032FB7896E6FC120F7278A9E62404F58254 -:1016400018E63400F583E04420F0C2037CF0123247 -:10165000FB7896E6FC120F7278A9E62405F582184D -:10166000E63400F583E030E415C2037896E64410D2 -:101670007F00FE7C0712324D1231BB02173B78A966 -:10168000E62404F58218E63400F583E054CFF0C276 -:10169000037CC81232FB7896E6FC120F7278A9E63A -:1016A0002404F58218E63400F583E04430F0C203E8 -:1016B0007CF01232FB7896E6FC120F7278A9E624D1 -:1016C00005F58218E63400F583E030E414C20378AF -:1016D00096E644107F00FE7C0712324D1231BB802B -:1016E0005D78A9E62404F58218E63400F583E05419 -:1016F000EFF078A9E62404F58218E63400F583E0DB -:1017000054DFF07896E624FD75F00AA42414F582DF -:10171000E434FCF583AC82AD8378A68683088682A8 -:10172000ECF9EDFA7B0A78011203B0C2037896E671 -:10173000FC1211157D007C0B1225461231BB2212C2 -:101740003138E490FC39F07D027C001225461231DC -:10175000BB221231387C001225DF1231BB22743CCF -:1017600090FBE0F0743E90FBE0F0E490FC28F02267 -:101770008D358C34ECB401028003D340028028B450 -:1017800002028003D34008A835E625E0F68018B4AD -:1017900004028003D3400AA835E625E025E0F68060 -:1017A00006A83576008000228C3C8D3BEDFEECFDDA -:1017B0007F0175660675670090FC29120477120197 -:1017C000EFB480028006D3500302186E90FC2912F9 -:1017D00004899000031201F554F0B430028003D361 -:1017E000405F90FC29120489900008120217FAFD4C -:1017F000EBFE7F0190FC2C120477EECD9035C3FCFC -:10180000E493FF740193FEF9EFFA7B01EAFFE9FE2E -:10181000ECC39EED9F40259035C5E493FD74019384 -:10182000FCEDFEECFD7F01EECDFC90FC2EE0D39CA8 -:1018300090FC2DE09D5005756680803312198C80D8 -:101840002EB460028003D3400BAC3CAD3B1207804A -:101850008C66801BB41003B34010C3B42003B340A4 -:1018600009C3B440028003D34000756681800080C4 -:1018700075B481028003D3406B90FC2912048990D7 -:1018800000031201F554F0B430028003D3401D90E0 -:10189000FC29120489900008120217FAFDEBFE7F62 -:1018A0000190FC2F1204771218F68036B460028083 -:1018B00003D34013753A67E4F539F538AC3CAD3BDA -:1018C0001205DC8C66801BB41003B34010C3B42037 -:1018D00003B34009C3B440028003D340007566815E -:1018E000800080028000E566FC90FC29120489ECEF -:1018F000900002120320AC672290FC291204899008 -:1019000000041201F5600474018001E4A2E0920178 -:1019100090FC29120489ED2403FD50010E90FC2C4B -:1019200012047790FC291204899000051201F5F544 -:10193000679000041201F5540FFC7D6712176DE5E6 -:10194000677004756608227566007884760078846E -:10195000E6C39567503890FC2F1204891201EFFC02 -:1019600090FC2C120489EC12031830010E90FC310B -:10197000E004F090FC307003E004F078840690FC02 -:101980002EE004F090FC2D7003E004F080C0229063 -:10199000FC2AE0FDA3E0FCEDFEECFD7F01ED240A56 -:1019A000FD50010E90FC3212047790FC291204893C -:1019B0009000041201F5540FB401028003D34017C4 -:1019C00090FC321204890DED70010E90FC2F120470 -:1019D0007778887601804EB402028003D340199054 -:1019E000FC32120489ED2402FD50010E90FC2F12EE -:1019F000047778887602802DB404028003D34019DE -:101A000090FC32120489ED2404FD50010E90FC2F4D -:101A100012047778887604800CB400028003D340E7 -:101A2000007566082290FC291204899000051201B5 -:101A3000F5F567788576007885E6C39567400302FB -:101A40001AF4788676007886E6C378889650769081 -:101A5000FC2C1204891201EFFC90FC321204921249 -:101A600001E9F45CFC1201E9F890FC2F120489E80A -:101A7000C0E01201EFC8D0E0C8584CFC90FC2C121A -:101A80000489EC1203187887ECF690FC31E004F03E -:101A900090FC307003E004F009E970010A90FC3218 -:101AA00012048090FC291204899000041201F53080 -:101AB000E40E90FC2EE004F090FC2D7003E004F0A6 -:101AC00078860680817888E6FDE4FEFFEECDFC9006 -:101AD000FC31E02CF090FC30E03DF07888E6FDE44D -:101AE000FEFFEECDFC90FC34E02CF090FC33E03DAA -:101AF000F0788506021A347566002222C0E0C0F034 -:101B0000C082C083C0D0E8C0E0E9C0E0EAC0E0EB3A -:101B1000C0E0ECC0E0EDC0E0EEC0E0EFC0E090FF60 -:101B200092E01201C01B47301B47321B56381B681E -:101B30003A1B7A3E1B92441B86461B9E501BE0526A -:101B40001BBF541C015600001C2290FF92E07F0036 -:101B5000FE7C0112324D021C32E4FF04FE7C0312B3 -:101B6000324D742090FFFEF0021C32E4FF04FE7C34 -:101B70000212324D744090FFFEF0021C32E4FF046A -:101B8000FE7C0412324D021C32E4FF04FE7C05127E -:101B9000324D021C32E4FF04FE7C0612324D021C60 -:101BA0003290FFA5E07D0090FBF8CDF0A3CDF09042 -:101BB000FBF9E0FCF58390FBF8E04433FD121CC513 -:101BC000807390FFB5E07D0090FBFACDF0A3CDF0DF -:101BD00090FBFBE0FCF58390FBFAE04443FD121C14 -:101BE000C5805290FFA6E07D0090FBFCCDF0A3CD18 -:101BF000F090FBFDE0FCF58390FBFCE04434FD122B -:101C00001CC5803190FFB6E07D0090FBFECDF0A3B7 -:101C1000CDF090FBFFE0FCF58390FBFEE04444FD3B -:101C2000121CC5801090FF92E07D00FCED44AAFDDF -:101C3000121CC58000E490FF92F0D0E0FFD0E0FEDF -:101C4000D0E0FDD0E0FCD0E0FBD0E0FAD0E0F9D06D -:101C5000E0F8D0D0D083D082D0F0D0E0320581053A -:101C60008105810581A881181818EDF608ECF69019 -:101C7000FF5AE020E70280F790FF59E07D00A8813D -:101C800018CDF6CD08F67D03A881E618FCE6CC2534 -:101C9000E0CC33CCDDF9CCF6CC08F6A88118E644CC -:101CA000F8F6A881181818E6FD08E6FCA881188641 -:101CB00083088682EDF0A3ECF0740290FF5AF015D1 -:101CC0008115811581158122E5812405F581E4A81E -:101CD0008118F6A88118181818EDF608ECF690FB94 -:101CE000F5E024F85003021DE6E4A8811818F6A8D0 -:101CF0008118E6FEA88118181818E6FD08E6FC7F92 -:101D000000EF24F8404DE4EF25E0247DF582E43433 -:101D1000FCF583E0FBA3E06C7003FAEB6D700974D3 -:101D200001A8811818F6802BE4EF25E0247DF582C8 -:101D3000E434FCF5837A00E054F0CCF8CCCDF9CD56 -:101D4000FB7800E954F0F9EA687002EB6970010E63 -:101D50000F80AEA88118EEF6A88118181818EDF6B5 -:101D600008ECF6A881EFF6A8811818E67079A8812A -:101D700018E624F74071A88118181818E6540FA81F -:101D800081F664046017A881E664036010A88118D6 -:101D9000181818E6FD08E6FC121C5A804A7C0A1244 -:101DA00031ADA88118181818E6FD08E6FC90FBF480 -:101DB000E025E0247DF582E434FCF583EDF0A3EC2E -:101DC000F090FBF4E0FFE4EF045407FF90FBF4F025 -:101DD00090FBF5E004F012324690FBF6E07008E468 -:101DE000FEFF7C0F12324D802790FBF7E004F05489 -:101DF0003F701D90FBF7E044FE7D00FC90FBF4E09B -:101E000025E0247DF582E434FCF583EDF0A3ECF0CD -:101E1000E58124FBF58122788B7600788C7600743E -:101E20000190FBF6F012313890FBF5E060577C0A28 -:101E30001231AD90FBF3E025E0247DF582E434FC23 -:101E4000F583E0FDA3E0FC90FBF3E025E0247DF5C5 -:101E500082E434FCF583E4F0A3F090FBF3E0FFE4CC -:101E6000EF045407FF90FBF3F090FBF5E014F078DB -:101E700089EDF608ECF61232467889E6FD08E6FCB4 -:101E80001208E380A312329A90FF93E04401F0B26B -:101E9000B3788B06B60011788B7600788CE6F40464 -:101EA00004A2E092B4788CF6021E25E490FBF6F0D2 -:101EB00090FBF5E07D00FCED44CFFD121C5A123181 -:101EC000BB22123138E5706449456F601590FF837D -:101ED000E0540F7D00D39570ED956F5005122F8162 -:101EE00080031230511231BB22123138E57064493F -:101EF000456F600512308B800E90FF80E04408F043 -:101F000090FF83E0547FF01231BB221231388C54A1 -:101F1000EC54F0B41015756A357569FC756801E507 -:101F20006A2403F56AE5693400F569E4F557F55666 -:101F3000E556C394015027E554540FFCAD6AAE69D1 -:101F4000AF68120E808C55EC60028012056AE56A5B -:101F5000700205690557E5577002055680D2E554B1 -:101F6000540F249DF8E654FEF6E554540F7F00FE0E -:101F70007C1212324DE5551470097D007C09122542 -:101F8000468007AD577C001225461231BB22123124 -:101F90003890FFFCE04402F090FF00E030E713903F -:101FA000FF83E04480F0436D8090FFFCE04401F04B -:101FB000801190FF82E04408F0536D7F90FFFCE0B9 -:101FC00054FEF090FF81E04480F01225F990FFFE6E -:101FD000E04405F090FFFCE054FDF01231BB22120A -:101FE00031387C011232FB78ADE64402F674FEFC17 -:101FF00004FD121CC590FF5AE030E70280F7E4F5BB -:102000004E754D10AC4EAD4DE54E154E7002154D52 -:10201000EC4D600280EE4387011231BB2212313851 -:102020007C021231C778ADE654FDF61231BB2212A4 -:10203000313878ADE630E02C78ADE630E12678AD89 -:10204000E6FCF58318E644F0FD121C5A90FFFCE014 -:102050004420F07C021232FB78ADE654FDF6741A8F -:1020600090FFFEF078ADE6FCF58318E644F1FD1232 -:102070001C5A1231BB22756D0090FFFFE0600343D4 -:102080006D01756E00E4F56CF56BE4F56F757049E4 -:10209000748490FF82F0748490FF80F0748090FFCD -:1020A00058F0748090FF5AF0AD46AF457E00EE24A4 -:1020B000FE5003022142E4EE75F007A4247FF5826E -:1020C000E434F8F583E0FFE4EF5480FDE4EF540FCF -:1020D00014FFED6038E4EF75F008A42448F582E4BD -:1020E00034FFF5837490F0E4EF75F008A4244AF50A -:1020F00082E434FFF5837480F0E4EF75F008A424E3 -:102100004EF582E434FFF5837480F08034E4EF759B -:10211000F008A42408F582E434FFF5837490F0E419 -:10212000EF75F008A4240AF582E434FFF583E4F0A7 -:10213000E4EF75F008A4240EF582E434FFF583E49F -:10214000F00E0220AB8D468E448F45747F90FFFDCC -:10215000F0749090FFFCF0228C58EC24F65006E5C9 -:10216000582437FC22E5582430FC22D2B0122543F3 -:10217000EC700302227E755C03AE5B7F00E55C15AC -:102180005C6480247F5035EF2400F582E434FBF555 -:1021900083E0FE24FE501EEF7D00FCE4FB7474C35C -:1021A0009CFAEB9DFBEE7D00FCEAC39CED6480CBCA -:1021B00064809B50028005EF2EFF80C18E5B8F5A9A -:1021C000E55C6480247F500302227EE55A248E5011 -:1021D0000302227E855A5D755B00AE5AAF5B903577 -:1021E000EEE493F55CE55C155C6480247F5018EEAA -:1021F0002400F582E434FBF583E0FCEF9035EE93A8 -:102200006C70040E0F80DE8E5A8F5BE55C64802458 -:102210007F406E755E017560E8755FFFE55D2402C5 -:10222000F55A755C07E55C334057AD60AE5FAF5E55 -:10223000E55CF5823395E0F5831201F5C4540FFC9B -:10224000122155E55A2400F582E434FBF583ECF0C5 -:10225000055A055AAD60AE5FAF5EE55CF582339519 -:10226000E0F5831201F5540FFC122155E55A2400C4 -:10227000F582E434FBF583ECF0055A055A155C80D1 -:10228000A4740290F851F090F86B79C77A357B27E7 -:1022900078011203FE756A357569FC756801E49072 -:1022A000FF83F0748090FF81F0755902E55975F055 -:1022B00007A4247FF582E434F8F583E0788FF6FCF8 -:1022C000540F14FC788FECF6E55975F007A42481BF -:1022D000F582E434F8F583E0789276FD0876E8FC40 -:1022E000788FE675F008A42448F582E434FFF5837E -:1022F000E4F0788FE675F008A4244FF582E434FF0B -:10230000F583ECF07892E6FF08E67E03CFC313CFA7 -:1023100013DEF9FE788FE675F008A42449F582E40F -:1023200034FFF583EEF0788FE675F008A4244AF5C3 -:1023300082E434FFF5837480F07890ECF67D0078C9 -:1023400093E62CF618E63DF67892E6FD08E67C0367 -:10235000CDC313CD13DCF9FC788FE675F008A42407 -:102360004DF582E434FFF583ECF0788FE675F008E4 -:10237000A4244EF582E434FFF583E4F07892E6FD80 -:1023800008E6FC788FE6FF7E00EE24FE5003022470 -:10239000FDE4EE75F007A4247FF582E434F8F583BC -:1023A000E0FFE4EF5480FAE4EF540F14FFE4EE751D -:1023B000F007A42481F582E434F8F583E07890F600 -:1023C000E4EE1313548024F0F8E434FDF9E8FCE95A -:1023D000FD8A5AEA700302246AE4EF75F008A42427 -:1023E00048F582E434FFF583E4F07890E6FAE4EF10 -:1023F00075F008A4244FF582E434FFF583EAF0ED8C -:10240000FBEC7A03CBC313CB13DAF9FAE4EF75F0E4 -:1024100008A42449F582E434FFF583EAF07890E6D5 -:102420007B00FAEC2AFCED3BFDFBEC7A03CBC313FB -:10243000CB13DAF9FAE4EF75F008A4244DF582E441 -:1024400034FFF583EAF0E4EF75F008A4244AF5823E -:10245000E434FFF5837480F0E4EF75F008A4244EB3 -:10246000F582E434FFF5837480F00224F9E4EF751B -:10247000F008A42408F582E434FFF583E4F07890B2 -:10248000E6FAE4EF75F008A4240FF582E434FFF5D2 -:1024900083EAF0EDFBEC7A03CBC313CB13DAF9FA42 -:1024A000E4EF75F008A42409F582E434FFF583EA2B -:1024B000F07890E67B00FAEC2AFCED3BFDFBEC7A31 -:1024C00003CBC313CB13DAF9FAE4EF75F008A424B5 -:1024D0000DF582E434FFF583EAF0E4EF75F008A42B -:1024E000240AF582E434FFF583E4F0E4EF75F008A4 -:1024F000A4240EF582E434FFF583E4F00E02238673 -:102500008E597892EDF608ECF6788FEFF61220737C -:10251000228C26EC30E718E526540F1475F008A439 -:102520002448F582E434FFF583E054DFF08016E5BB -:1025300026540F1475F008A42408F582E434FFF53E -:1025400083E054DFF0227C0022EC90FC37F08C24F6 -:10255000ED2403F5257D00D39572ED95714003853B -:102560007225E52524B75009752503740290FC37C0 -:10257000F0AC2512307622E4F56CF56B12257D2245 -:1025800090FC35E06573600E740490FC37F0E4F560 -:102590006B756C0380467D73E4FEFF79357AFC7BB6 -:1025A0000174057800120348E56C2403F56CE56BB3 -:1025B0003400F56BE56CD39572E56B95714006853B -:1025C000726C85716BD3E56C9448E56B9400400C9C -:1025D000740290FC37F0E4F56B756C03AC6C123050 -:1025E0007622EC90FC37F0E4F56CF56B8C32EC6005 -:1025F0000512306780057C001230762290FF93E050 -:102600004401F0B2B390FF04E0F54A90FF06E0FD0C -:10261000A3E0ED7D00FC7D00FC90FF06E0FFA3E061 -:102620007E00FFE4FEEC4EFCED4FFDC3EC9448ED64 -:102630009400502290FF06E0FDA3E0ED7D00FC7DBC -:1026400000FC90FF06E0FFA3E07E00FFE4FEEC4EFE -:10265000FCED4FFD8004E4FD7C488C728D7190FF91 -:1026600002E0FDA3E0ED7D00FC7D00FC90FF02E0B8 -:10267000FFA3E07E00FFE4FEEC4EF54CED4FF54B82 -:10268000756A357569FC7568017D357EFC7F017959 -:1026900073E4FAFB74057800120348754900E549B4 -:1026A00024FE4019AD6AAE69AF68E412031805490B -:1026B0000DED70010E8D6A8E698F6880E1756A3547 -:1026C0007569FC75680190FF00E05460B4000280F9 -:1026D00006D35003022CBFE54A540FF549E54A548E -:1026E00080A2E0920290FF01E012018A000B2CBA56 -:1026F000270528232CBA292F2CBA2A122A462BADBB -:102700002BB02BF02C632C91E56D30E70EE54C459A -:102710004B7008E572640245716003022CBC90FFA7 -:1027200000E0541FB400028003D34029E54A60034F -:10273000022820AD6AAE69AF68740112031878AD43 -:10274000E630E00BAD6AAE69AF6874021203187C24 -:102750000212307622B401028003D3401BE56D20C3 -:10276000E107E54A6003022820E54A24FE500302FF -:1027700028207C0212307622B402028006D3500355 -:1027800002281EE56D20E10DE54A6009E54A6480F6 -:102790006003022820AC4A1230FD4003022820E5E5 -:1027A00049702530021190FF80E05408AD6AAE698F -:1027B000AF68120318800F90FF82E05408AD6AAE34 -:1027C00069AF68120318803D154930021DE549754F -:1027D000F008A42448F582E434FFF583E05408AD02 -:1027E0006AAE69AF68120318801BE54975F008A44A -:1027F0002408F582E434FFF583E05408AD6AAE693D -:10280000AF68120318AD6AAE69AF681201EF600BD2 -:10281000AD6AAE69AF6874011203187C021230769B -:10282000228000022CBCE56D20E706E57245716050 -:1028300003022CBC90FF00E0541FB400028003D3BD -:10284000401AE54C14454B7004E54A600302292CFC -:1028500078ADE654FEF67C0012307622B401028098 -:1028600003D3402AE56D20E108E56D20E00302294D -:102870002CE56D30E004E54A700BE56D30E109E5CB -:102880004A24FE500302292C7C0012307622B40226 -:10289000028006D3500302292AE54C454B6003020F -:1028A000292CAC4A1230FD400302292CE56D20E1B1 -:1028B00007E56D20E0028077E56D30E006E54960D0 -:1028C00002806CE549700F90FF82E054F7F090FFB2 -:1028D00080E054F7F022E549B401028003D34009B7 -:1028E0007D017C03120F128011B402028003D340D9 -:1028F000097D017C04120F1280001549300215E594 -:102900004975F008A42448F582E434FFF583E054C7 -:10291000F7F08013E54975F008A42408F582E43443 -:10292000FFF583E054F7F07C00123076228000023D -:102930002CBCE56D20E706E57245716003022CBCF6 -:1029400090FF00E0541FB400028003D3401AE54C0E -:1029500014454B7004E54A6003022A0F78ADE64443 -:1029600001F67C0012307622B401028003D34029A4 -:10297000E56D20E108E56D20E003022A0FE56D30EA -:10298000E004E549700BE56D30E108E54924FE50AF -:1029900002807F7C0012307622B402028003D34092 -:1029A0006FE54C454B60028069AC4A1230FD400235 -:1029B0008060E56D20E107E56D20E0028054E54987 -:1029C000701430020990FF80E04408F0800790FF07 -:1029D00082E04408F022E56D30E1331549300215FC -:1029E000E54975F008A42448F582E434FFF583E056 -:1029F0004408F08013E54975F008A42408F582E442 -:102A000034FFF583E04408F07C0012307622800227 -:102A10008000022CBCE56D20E712E5724571700C58 -:102A2000E54A700890FF00E0541F6003022CBCE5EB -:102A30004C90FFFFF090FFFFE06005436D018003C5 -:102A4000536DFE7C0012307622E56D30E70EE572A4 -:102A50004571600890FF00E0541F6003022CBCAD7C -:102A60004BE54CED7D00FC7D00FCBD0002800302C7 -:102A70002BA8B401028003D34032E54A7005E54C2F -:102A8000FC6003022BAA756A407569F8756801D36A -:102A9000E5729412E57194004006E4FD7C12800416 -:102AA000AC72AD718C708D6F12308B22B4020280CB -:102AB00003D34059E54A6003022BAAE54CFC70277A -:102AC000756A527569F8756801D3E5729419E571F4 -:102AD00094004006E4FD7C198004AC72AD718C70EA -:102AE0008D6F12308B8025756A6B7569F87568017A -:102AF000D3E5729427E57194004006E4FD7C2780BD -:102B000004AC72AD718C708D6F12308B22B40302E5 -:102B10008006D35003022BA8E54CF549700F90FFB7 -:102B200004E0FDA3E04D6003022BAA801890FB0295 -:102B3000E0FDA3E0FC90FF05E06C700790FF04E06F -:102B40006D60028068E4F570F56F7F00E54914C59B -:102B500049600FEF2400F582E434FBF583E02FFF9A -:102B600080EA8F4AE54A2400F582E434FBF583E0ED -:102B70007D00D39572ED95714006AC72AD71800FFA -:102B8000E54A2400F582E434FBF583E07D00FC8C0B -:102B9000708D6FE54A2400FCE434FBFDFEECFD7F04 -:102BA000018D6A8E698F6812308B228000022CBCE6 -:102BB000022CBCE56D30E719E5721445717012E521 -:102BC0004A700EE54C454B700890FF00E0541F60C2 -:102BD00003022CBCE56D20E008E56D20E103022C2A -:102BE000BC756A6EE4F569F568E4F56F04F570127A -:102BF000308B22E56D20E727E57245717021E54AAB -:102C0000701DE54C6402454B600DE54C14454B606E -:102C100006E54C454B700890FF00E0541F6003022E -:102C20002CBCE56D20E008E56D20E103022CBC859D -:102C30004C6EE56E700A436D01536DFDD2B080207D -:102C4000E56E64026007E56E1460028072536DFEEB -:102C5000436D02E56E64026005E56E147002C2B059 -:102C60007C0012307622E56D30E71AE5721445716A -:102C70007013E54A700FE54C454B700990FF00E07A -:102C8000541F1460028038E56D20E10280317C0120 -:102C900012307622E56D20E715E5724571700FE57B -:102CA0004C454B700990FF00E0541F146002800FE8 -:102CB000E56D20E10280087C00123076228000025F -:102CC0002F7DB440028006D35003022F7390FF0182 -:102CD000E090FC35F0E54A90FC36F0E490FC37F0EB -:102CE000E56A2403F56AE5693400F569AD4BE54C06 -:102CF000856A82856983CDF0A3CDF090FF01E01253 -:102D000001C02D2A012D50022D7A032DA4042DF28D -:102D1000052E2F062E55072E7B082EA7092ECD0B2C -:102D20002EF30C2F02802F028100002F60E56D2012 -:102D3000E7067C051225DF227D767E357F02793815 -:102D40007AFC7B01740878001203487D087C00122D -:102D5000254622E56D20E7067C051225DF22E54A9F -:102D6000B403004010B40500500BE54A7F00FE7C20 -:102D70001012324D227D007C0712254622E56D207F -:102D8000E7067C051225DF22E54AB403004010B4B3 -:102D90000500500BE54A7F00FE7C1112324D227D6A -:102DA000007C0712254622E56D20E7067C051225EA -:102DB000DF22E54AB405028003D3400AE4FF04FEA3 -:102DC0007C0A12324D22B401028003D3400AE4FF90 -:102DD00004FE7C0812324D22B403004010B40500FA -:102DE000500BE54A7F00FE7C1312324D227D007CA1 -:102DF0000712254622E56D20E734D3E5729448E5B5 -:102E00007194005006E572457170067C021225DF50 -:102E100022E54AB40103B3400BC3B403004009B434 -:102E200006005004123123227C071225DF221225CE -:102E30007D22E56D20E71DE54AB403004010B4058E -:102E400000500BE54A7F00FE7C1612324D227C07B3 -:102E50001225DF2212257D22E56D20E71DE54AB40B -:102E600003004010B40500500BE54A7F00FE7C19BA -:102E700012324D227C071225DF2212257D22E56DBC -:102E800020E723748190FF93F0E54AB403004010DB -:102E9000B40500500BE54A7F00FE7C1712324D222C -:102EA0007C071225DF2212257D22E56D20E71DE536 -:102EB0004AB403004010B40500500BE54A7F00FE01 -:102EC0007C1812324D227C071225DF2212257D222A -:102ED000E56D20E71DE54AB403004010B40500503D -:102EE0000BE54A7F00FE7C1512324D227C0712252D -:102EF000DF2212257D22E56D20E7067C071225DF03 -:102F00002212257D22E56D30E72090FF00E0541F5E -:102F1000701090FF01E0B480051225748003122523 -:102F20007D227D007C051225462290FF00E0541F83 -:102F300060067C051225DF22D3E5729448E5719482 -:102F400000500BC3E5729407E571940050067C03B2 -:102F50001225DF22E54AB40504123123227C071230 -:102F600025DF22E56D30E7087D007C05122546222D -:102F70007C051225DF22B420028003D340008000AC -:102F80001230512275430090FF83E0540FD39543D4 -:102F90004024E54324F0F582E434FEF583E0AD6A95 -:102FA000AE69AF6812031805430DED70010E8D6A0E -:102FB0008E698F6880D1E5437D00FCC3E5709CF588 -:102FC00070E56F9DF56FE570456F6006E490FF83D7 -:102FD000F02290FF82E04408F0E4F56F75704990AC -:102FE000FC35E0B405028003D3404090FC36E0F5A8 -:102FF00043B405028003D3400AE4FF04FE7C0B12B5 -:10300000324D22B401028003D3400AE4FF04FE7C67 -:103010000912324D22B403004010B40500500BE5F4 -:10302000437F00FE7C1412324D2222B480004023E4 -:10303000B48200501E7C357DFC1217A57D008C6C7F -:103040008D6B90FC37E0600512305180057C0012DA -:103050003076222290FF83E0547FF090FF82E0449C -:1030600008F090FF80E04408F02290FF82E04408DE -:10307000F090FF80E04408F0228C237D008C708D5E -:103080006F756A357569FC75680112308B2290FF87 -:1030900083E0547FF0E5706449456F700122C3E519 -:1030A000709408E56F94004015752108E5217D00B6 -:1030B000FCC3E5709CF570E56F9DF56F8009857028 -:1030C00021E4F56F757049752200E522C395215002 -:1030D00026AD6AAE69AF681201EFFCE52224F8F56F -:1030E00082E434FEF583ECF005220DED70010E8DC7 -:1030F0006A8E698F6880D3E521547F90FF81F0222A -:103100008C487F00EF24FD4019E4EF75F007A424FC -:103110007FF582E434F8F583E065487002D3220F2E -:1031200080E28F47C32285727085716F90FF82E0C5 -:1031300054F7F090FF83E0547FF022C000C001C03C -:1031400002C006C007E5782408F8860653067F7C8F -:10315000FF1231AD7C007D00E57B6046FF90FD9560 -:10316000E0547F6E700FC083C082A3E0FDA3E0FC3B -:10317000A3157B8007A3A3A3DFE68026DF06D0820A -:10318000D083801EE0F8A3E0F9A3E0FAD082D083D8 -:10319000E8F0A3E9F0A3EAF0A3C083C082A3A3A34D -:1031A00080DA123246D007D006D002D001D00022F9 -:1031B00085A87A75A888EC70027C3F8C7922E57826 -:1031C0002408F8760012329A80FBC000C001C002C9 -:1031D000C006C007AE047CFF1231ADE57B6042FF44 -:1031E00090FD95E0547F6E700BC083C082A3A3A3B3 -:1031F000157B8007A3A3A3DFEA8026DF06D082D059 -:103200008380D8E0F8A3E0F9A3E0FAD082D083E885 -:10321000F0A3E9F0A3EAF0A3C083C082A3A3A38034 -:10322000DA7808087918097C01E6547F6E70067612 -:10323000007700800608090CBC08EE123246D00761 -:10324000D006D002D001D00022757900857AA8225C -:10325000C0F0C082C083C3E57B24E8500512329AD7 -:1032600080F4EC6031903575E493C39C4028C00431 -:103270007CFF1231ADD004430480E57B75F003A4DC -:103280002495F582E434FDF583ECF0EFA3F0EEA392 -:10329000F0057B123246D083D082D0F022C0047C6D -:1032A00020D28CD28DD504FDD0042275A80075885B -:1032B0000075B80075F00075D000E4F8900000F6D5 -:1032C00008B800FB020000C3ED940250047D037CAB -:1032D000E8ECF4FCEDF4FD0CBC00010D8C7F8D7E60 -:1032E00022C3EC94BCED940250047D077CD0ECF436 -:1032F000FCEDF4FD0CBC00010D8C7D8D7C22EC708E -:103300000122C000E5782418F8A604E5782408F81E -:10331000C6547FF6E630E703D0002212329A80F4DA -:10332000C28C857C8C857D8AD28CC0E0C0D0C0F0F8 -:10333000C082C083C000C001C002C003C004C00579 -:10334000C006C007121AF8E5782408F8E66024E5FC -:10335000782410F8A681E57875F021A4248DF582F3 -:10336000E434FCF58378AEE58104C398F9E6F0080F -:10337000A3D9FA74082578F8057808E65480700C0B -:10338000E578B407F3780875780080EFE5782410C5 -:10339000F88681E57875F021A4248DF582E434FC6B -:1033A000F58378AEE58104C398F9E0F608A3D9FA6D -:1033B000D007D006D005D004D003D002D001D00071 -:1033C000D083D082D0F0D0D0D0E032C0E0C0D0C026 -:1033D00000C001C002C28E857E8D857F8BD28E7823 -:1033E0001979097A07E77004A600800BE6600816D1 -:1033F000E67004E74480F70809DAEAE57960131417 -:10340000F579700EE5782408F87600123246D28CF1 -:10341000D28DD002D001D000D0D0D0E0327581ADB5 -:10342000742A90FF93F0757F30757EF8757D607516 -:103430007CF012053F1234CE12175B90FF93E044EC -:1034400001F0B2B31234F81232A880DA22C0007C44 -:1034500001EC2408F8E660090CBC08F512329A80E9 -:10346000EED00022C0F0C082C083C000C006C007FA -:10347000ED2410F876BCED75F021A4248DF582E4DE -:1034800034FCF583C082C083A3A3E4780DF0A3D8F5 -:10349000FCEC547F75F002A42441F582E5F034354C -:1034A000F583E493FE740193F5828E83E493FE74B6 -:1034B0000193FFD083D082EFF0A3EEF0ED2408F863 -:1034C000EC4480F6D007D006D000D083D082D0F074 -:1034D00022757800757B007A08791878087600776D -:1034E000000809DAF8E478087480447FF67401442F -:1034F00010F58975B808D2ABD2A9227581ADD28EEC -:10350000D28CD2AFE57B6032FF90FD95E0548060B5 -:103510002478087908E0547FFA7B00E6547FB502EE -:10352000027BFF08D9F5EB700CEAF012344AAD04C7 -:10353000AC02123461A3A3A3DFD212329A80C57CFD -:10354000017D002204FE04F204F604EA04E604E22B -:1035500004EE04FA04A604AA04D604DA04A204A21F -:1035600004A204DE04BE04B604BA04B204CA04C64B -:1035700004C204CE04D204AE1901030022004802A2 -:1035800000480E301420C81AD0180A0C0506020391 -:1035900001020001CE0181010000C0008000600036 -:1035A0003000180010000800040002000100081894 -:1035B00028380C05100A0200000000000301100A60 -:1035C000020000000000FBE0FBF2090227000102FC -:1035D00000A0FA0904000003FF00000007058102B3 -:1035E00040000007050102400000070583030200B8 -:1035F00001220354005500530042003300340031CF -:1036000000300020002000200020002000200020AA -:073610000020000000000093 -:00000001FF diff --git a/firmware/mts_edge.fw.ihex b/firmware/mts_edge.fw.ihex deleted file mode 100644 index d14ebd647846..000000000000 --- a/firmware/mts_edge.fw.ihex +++ /dev/null @@ -1,881 +0,0 @@ -:10000000F0360002001E021AFBFFFFFFFFFF023363 -:10001000F9FFFFFFFFFFFFFFFFFFFFFFFFFF0234BE -:10002000A47581D490FDE88583A0123618EC4D604C -:100030007378AF8003760018B8A0FA787F800376D3 -:100040000018B865FA78208003760018B820FA788E -:10005000208003760018B81FFA90FDDDAE83AF82D2 -:1000600090FBF81200AA6005E4F0A380F690FDE88A -:10007000A88290FDE8A982E8696005E4F20880F7AB -:100080009001081200B390010C1200B390011012FD -:1000900000B39001141200D190011A1200D1900106 -:1000A000201200D175D0001234F6020126EF6582CD -:1000B0007003EE658322E493F8740193F97402935C -:1000C000FE740393F5828E83E869700122E493F64F -:1000D000A30880F4E493FC740193FD740293FE740E -:1000E0000393FF740493F8740593F58288831200D8 -:1000F000AA700122E493A3A883A9828C838D82F045 -:10010000A3AC83AD828883898280E32121049B8014 -:1001100080049BB0B4049BFDE8049F049FFBF304A0 -:10012000A4049FFBF30504050480FED0F030F00921 -:1001300020F303F68010F7800D30F10920F303F26D -:100140008004F38001F020F404FCD0E0CC22CCC089 -:10015000E0120163020154BC0005D0F0ACF022C3F0 -:1001600013DCFC02012ABF0009ED258275F001F8BD -:10017000E622BF010FED2582F582EE3583F583750A -:10018000F004E022ED258275F002F8E222D083D05F -:1001900082F5F0C3E493A3C5F095F0C0E0C3D0F0BE -:1001A000E493A395F04012A3A3C3E5F033500205F6 -:1001B000832582F58250020583740193C0E0E493A5 -:1001C000C0E022D083D082F5F0E4937009740193EB -:1001D0007004A3A3800C74029365F06005A3A3A32D -:1001E00080E7740193C0E0E493C0E022120264024D -:1001F00001FB1202B80201FB1202DC0201FB30E03B -:100200000720E302E622E72230E10720E302E222B0 -:10021000E32230E202E022E493221202DC02022313 -:100220001202B8020223ABF012022DCBC5F0CB2292 -:1002300030E01020E306E6F5F008E622E7F5F009E5 -:10024000E7192230E11020E306E2F5F008E222E3AC -:10025000F5F009E3192230E206E0F5F0A3E022E42C -:1002600093F5F074019322BB0003740922BB0107CC -:1002700089828A83740422BB020789828A8374106C -:1002800022740A22020284BB0007E92582F8740165 -:1002900022BB010DE92582F582EA3583F5837404DA -:1002A00022BB020DE92582F582EA3583F5837410BD -:1002B00022E92582F87402220202B8BF0005EDF897 -:1002C000740122BF01078D828E83740422BF02074E -:1002D0008D828E83741022EDF87402220202DCBF3C -:1002E0000007ED2582F8740122BF010DED2582F58E -:1002F00082EE3583F583740422BF020DED2582F56D -:1003000082EE3583F583741022ED2582F874022283 -:10031000020310C0E0120264020328C0E01202B817 -:10032000020328C0E01202DC02032830E00B20E3C5 -:1003300004D0E0F622D0E0F72230E10B20E304D035 -:10034000E0F222D0E0F322D0E0F022C9CDC9CACE3B -:10035000CACBCFCB12035BEDF9EEFAEFFB22BB0069 -:100360002FBF000AFAEDF8E7F60809DAFA22BF0112 -:10037000128D828E83F802037809A3E7F0D8FA225F -:10038000020383FAEDF8E7F20809DAFA2202038D94 -:10039000BB014DBF001489828A83F9EDF802039FE7 -:1003A00008A3E0F6D9FA220203B0BF01228D828EA3 -:1003B00083FB08C9C582C9CAC583CAE0A3C9C5826F -:1003C000C9CAC583CAF0A3DBEAD8E8220203D38DE9 -:1003D000828E83F9EDF8E0F208A3D9FA220203DD58 -:1003E000BB024DBF001289828A83F9EDF80203EF48 -:1003F00008A3E493F6D9F922BF01238D828E83FBF3 -:1004000008C9C582C9CAC583CAE493A3C9C582C93C -:10041000CAC583CAF0A3DBE9D8E722020422898295 -:100420008A83F9EDF8E493F208A3D9F922020433A0 -:10043000BF000DFAEDF8E3F60809DAFA2202043DEE -:10044000BF01128D828E83F802044A09A3E3F0D81B -:10045000FA22020455FAEDF8E3F20809DAFA220268 -:10046000045FE6FB08E6FA08E6F904F618700106F0 -:1004700022E6FF08E6FE08E6FD22EFF0A3EEF0A379 -:10048000EDF022EBF0A3EAF0A3E9F022E0FFA3E015 -:10049000FEA3E0FD22E0FBA3E0FAA3E0F9220000C6 -:1004A000000000000000000504006105730026053F -:1004B0009A00330A0B00610A770066154600610C4A -:1004C000FB006109AB006109E200610DC200610B34 -:1004D000F300610A1E00610A530061173E003317E2 -:1004E0005100341E1600431EBC0044202900442045 -:1004F0001700471EE300471F88004D1FD9004F1FFC -:10050000050058338400617CCC7DFF121CC722900B -:10051000FFFCE020E72DC2AFAE59AF58755A20E579 -:100520005A14C55A6019E4FE7F05EE4FCE24FFCE63 -:10053000CF34FFCF6007E490FF92F080ED80E08E33 -:10054000598F582212050C7D077CB71233A07D0FFE -:100550007C6E1233BA78A17A06E4F608DAFC7A06E1 -:100560001205CF7C03120E57122165E4FEFF7C0FAB -:10057000123329D2A822123214E490FC38F090FFF2 -:10058000F0E030E408740190FC39F08005E490FC60 -:1005900039F07D0A7C00122547123297221232145C -:1005A00090FC39E014700E90FFF0E04410F07C00F5 -:1005B0001225E0801990FC39E0700E90FFF0E054B5 -:1005C000EFF07C001225E080057C171225E0123246 -:1005D000972290FFF0E054ABF090FFF0E04420F061 -:1005E000228C378D367882EDF608ECF6EDFEECFDC8 -:1005F0007F019000051201F57880F67882E6FD080B -:10060000E6FCEDFEECFD7F019000041201F5540FB5 -:10061000FC7D8012176F7880E6700DAD3AAE39AF71 -:1006200038E41203187C082290FFF0E054FEF090AA -:10063000FFF0E054FDF0801E7882E6FD08E6FCED58 -:10064000FEECFD7F0190000812021725E0440190A6 -:10065000FFF3F00206DB7882E6FD08E6FCEDFEEC37 -:10066000FD7F0190000612021754FE90FFF3F08008 -:100670002B7882E6FD08E6FCEDFEECFD7F019000A4 -:1006800008120217FAEB90FFF1F01208CA400DAD04 -:100690003AAE39AF38E41203187C18227882E6FDAE -:1006A00008E6FCEDFEECFD7F0190000812021790B9 -:1006B000FFF1F01208CA400DAD3AAE39AF38E4127E -:1006C00003187C18227882E6FD08E6FCEDFEECFDBE -:1006D0007F01900006120217440190FFF3F0788327 -:1006E000E62403F618E63400F67880E624FE500986 -:1006F00090FFF0E054FDF0800790FFF0E04402F03E -:10070000E490FFF1F0788176007880E624FFFCE445 -:1007100034FFFD7881E67F00FEECD39EEF6480CD50 -:1007200064809D402F1208AF400F7881E6AD3AAE4D -:1007300039AF381203187C182290FFF2E0FC78825F -:100740008683088682ECF0788106A37882A68308E7 -:10075000A68280B51208AF400F7881E6AD3AAE3977 -:10076000AF381203187C182290FFF2E0FC788286E2 -:1007700083088682ECF07880E6AD3AAE39AF381265 -:1007800003187C00228C378D367882EDF608ECF663 -:10079000EDFEECFD7F019000051201F57881F67801 -:1007A00082E6FD08E6FCEDFEECFD7F019000041200 -:1007B00001F5540FFC7D8112176F7881E670037C80 -:1007C000082290FFF0E054FEF090FFF0E054FDF0BE -:1007D000801B7882E6FD08E6FCEDFEECFD7F0190D3 -:1007E000000812021725E090FFF3F0805B7882E6A4 -:1007F000FD08E6FCEDFEECFD7F01900006120217FD -:1008000054FE90FFF3F080217882E6FD08E6FCEDCF -:10081000FEECFD7F01900008120217FAEB90FFF149 -:10082000F01208CA40037C18227882E6FD08E6FC34 -:10083000EDFEECFD7F0190000812021790FFF1F031 -:100840001208CA40037C18227883E6240AF618E6C8 -:100850003400F6788076007881E624FFFCE434FFEB -:10086000FD7880E67F00FEECD39EEF6480CD64804F -:100870009D402178828683088682E090FFF1F01205 -:1008800008CA40037C1822788006788306E6187030 -:10089000010680C390FFF0E04401F078828683086F -:1008A0008682E090FFF1F01208CA40037C18227C97 -:1008B000002290FFF0E020E71290FFF0E030E50921 -:1008C00090FFF0E04420F0C32280E7D32290FFF0B5 -:1008D000E020E31290FFF0E030E50990FFF0E04403 -:1008E00020F0C32280E7D3228C428D417C00ED545E -:1008F000F0FDEC7003ED64307005753E0380037508 -:100900003E04AC3E120F74758300858340E541546C -:100910000FF53FE5407004E53F64037035E53E2484 -:10092000FD75F00AA42402F582E434FCF583E0307E -:10093000E60512105B8019E53E24A1F8E654FBF6AB -:1009400078ADE62405F58218E63400F583740FF0DF -:100950008059E5407004E53F64047048E53E24FD9D -:1009600075F00AA42402F582E434FCF583E030E556 -:1009700007AC42AD41121C5CE54230E21578B1E6AD -:1009800030E00F78B1E630E109E4FF04FE7C0412A8 -:10099000332978ADE62406F58218E63400F5837431 -:1009A0000FF08007E4FC7DEE121C5CC203221232C1 -:1009B00014120F7478ADE62406F58218E63400F5BB -:1009C00083E090FC38F078ADE62405F58218E63433 -:1009D00000F583E090FC39F0C2037D027C00122513 -:1009E00047123297221232147899ECF6EC24A1F8CF -:1009F000E630E1077C131225E0800F90FC39E0FD22 -:100A00007899E6FC1213F11225E012329722123285 -:100A1000147899ECF67D00120F141225E01232972B -:100A2000221232147899ECF6EC24A1F8E630E207B1 -:100A30007C131225E0801B7899E624A1F8E620E1DA -:100A4000077C121225E0800A7899E6FC1214151230 -:100A500025E0123297221232147899ECF6EC24A198 -:100A6000F8E620E2077C111225E0800A7899E6FC7E -:100A70001215161225E0123297221232147899ECD0 -:100A8000F6120F7478ADE62409F58218E63400F505 -:100A900083E090FC3FF078ADE6240AF58218E63456 -:100AA00000F583E090FC40F078ADE62403F5821871 -:100AB000E63400F583E0FC78ADE62404F58218E620 -:100AC0003400F583E0F56278ADE62402F58218E69D -:100AD0003400F583E0F5638C61E4EC333354017842 -:100AE00099F66008E56230E1037899067899E69016 -:100AF000FC41F078ABE62402F58218E63400F58379 -:100B0000E0FDA3E0540CFCED54E68C65F564E56172 -:100B100030E503436501E56220E50EE561547F7031 -:100B200008E56120E703436502E56130E3034365BF -:100B300010E56130E203436520E56154036003433F -:100B40006540E56130E103436580E56130E40343DE -:100B50006401E56130E603436408E56220E40EE5E4 -:100B600061547F7008E56120E7034364105365FB1F -:100B70005364F9AD64E56590FC3ACDF0A3CDF0E5A2 -:100B80006330E30DE5635430C4540F90FC3DF080B6 -:100B900005E490FC3DF0E563540390FC3CF0E56314 -:100BA0005404C31390FC3EF090FC3CE0700E7D3585 -:100BB0007EFC7F01740190000912014B78ADE624A0 -:100BC00008F58218E63400F583E07C00FD78ADE698 -:100BD0002407F58218E63400F583E07F004CFEEF31 -:100BE0004D90FC38F0A3CEF0CEC2037D0A7C0012FB -:100BF0002547123297221232147899ECF6789E76B5 -:100C0000010876FC087638789B760C789E12046E84 -:100C100012021D789CCBF6CB08F67F00EF24EA4049 -:100C20001FE4EF25E090365AFD93CD0493789D663E -:100C30007003ED18667006789B760080030F80DCE9 -:100C4000789AEFF6789E12046E90000212021778DE -:100C50009CCBF6CB08F65404CB54064B6004789B2F -:100C6000760B789DE630E313789E12046E900005B3 -:100C70001201F524FB5004789B760D789DE654C054 -:100C80007D0064C04D7004789B760B789E12046ED4 -:100C90009000041201F524FC5004789B760F789E96 -:100CA00012046E9000061201F524FD5004789B7624 -:100CB0000E789E12046E9000091201F524FD500476 -:100CC000789B760A789BE6702A7899E6FC120F7476 -:100CD000789E12046E78ABE6F978AAE6FA7B017486 -:100CE0000A7800120348C2037899E6FC12111778BB -:100CF0009BECF6789BE6FC1225E01232972212322A -:100D0000147899ECF6120F747899E624FD75F00AC0 -:100D1000A42414F582E434FCF583AC82AD8378AA74 -:100D20008683088682ECF9EDFA7B0A78011203B01B -:100D3000C2037899E6FC121117123297228D2B8C80 -:100D40002AED60407527017529487528FFE52A249A -:100D5000FDFCE434FFFDEC7C0325E0CD33CDDCF974 -:100D6000FCE5292CF529E5283DF528AD29AE28AF6D -:100D700027748090000612032074809000021203F2 -:100D800020120FC7E52B14603B75270175290875E4 -:100D900028FFE52A24FDFCE434FFFDEC7C0325E07C -:100DA000CD33CDDCF9FCE5292CF529E5283DF528E6 -:100DB000AD29AE28AF27E4900006120320E490008E -:100DC00002120320221232147899ECF6EC24A1F8D6 -:100DD000E630E2097899E6FC121516D2007899E619 -:100DE000FC120F74789A760090FC39E030E70478B2 -:100DF0009A7601789AE6FD7899E6FC120D3AC203DC -:100E00003000077899E6FC1214157C001225E012D8 -:100E100032972278ADE62404F58218E63400F58393 -:100E2000E04401F078ADE62404F58218E63400F5DC -:100E300083E030E00280ED78ADE6240BF58218E621 -:100E40003400F583E054F8F078ADE62402F582181A -:100E5000E63400F583E04480F022C2038C58120F80 -:100E60007478AA8683088682798B7A367B0A780121 -:100E70001203FE120E10AC587D02120D3AC203ACE2 -:100E800058121117228D538E528F518C50120F749D -:100E9000754F0078ADE62405F58218E63400F58339 -:100EA000E020E41FE54F24F64019054FC2037C18EB -:100EB0001233D790FF93E04401F0B2B3AC50120F5D -:100EC0007480D078ADE62405F58218E63400F58309 -:100ED000E020E405C2037C022278ADE62405F58219 -:100EE00018E63400F583E0540F601678ADE624056B -:100EF000F58218E63400F583E0540FF0C2037C015C -:100F00002278AC8683088682E0AD53AE52AF511290 -:100F10000318C2037C00228D318C30121516E53186 -:100F2000600FE530B4030A7C0112250F7C81122585 -:100F30000FAC30120F74E531601A78AE86830886E4 -:100F400082E054E7F0A3A3A3A3E054E7F0AC307D24 -:100F500002120D3A78AA868308868279957A367BC2 -:100F60000A78011203FEC203E53024A1F8E654FD1D -:100F7000F6AC30121117228C26300305123376801E -:100F8000F87C0A123289D203E52624FD78A7F67090 -:100F90000778AE76FF0876E078A7E67D007C04252A -:100FA000E0CD33CDDCF9FC24A078ADF6ED34FF18AC -:100FB000F678A7E675F00AA42400FCE434FCFD787A -:100FC000AAEDF608ECF61233222278ADE62402F5FB -:100FD0008218E63400F583E030E72278ADE624029B -:100FE000F58218E63400F583E0547FF078ADE6240E -:100FF00002F58218E63400F583E04480F02278AEF2 -:101000008683088682E0547FF0AD83E5822404FC69 -:10101000E43D8C82F583E0547FF078ADE6240BF557 -:101020008218E63400F583E054F8F078AFE6240146 -:10103000F58218E63400F583E04403F078AFE62447 -:1010400005F58218E63400F583E04403F078ADE658 -:101050002405F58218E63400F583740FF02278AE8B -:101060008683088682E0543FF0AD83E5822404FC49 -:10107000E43D8C82F583E0543FF078A7E624A8F89D -:10108000E6FC78AFE62401F58218E63400F583EC3F -:10109000F078A7E624A8F8E6FC78AFE62405F58208 -:1010A00018E63400F583ECF078ADE6240BF58218F1 -:1010B000E63400F583E054FB4402F52678ABE624E1 -:1010C00002F58218E63400F583E030E5034326019B -:1010D00078ADE62405F58218E63400F583E030E0CB -:1010E00003120FC7E526FC78ADE6240BF58218E65F -:1010F0003400F583ECF078ADE62405F58218E6348B -:1011000000F583740FF078AE8683088682E0448011 -:10111000F0A3A3A3A3E04480F0228C2A120F7478DA -:10112000ABE62408F58218E63400F583E0FC78ADE0 -:10113000E6240AF58218E63400F583ECF078ABE695 -:101140002407F58218E63400F583E0FC78ADE62448 -:1011500009F58218E63400F583ECF078AA86830856 -:101160008682E0FDA3E0FCEDFE78ADE62408F58282 -:1011700018E63400F583EEF0ECFE78ADE62407F5D2 -:101180008218E63400F583EEF08C298D28C3EC94A8 -:1011900005ED940C400575277C8033D3E529940137 -:1011A000E5289403400575273C8023D3E5299481E5 -:1011B000E528940140057527188013D3E52994602C -:1011C000E5289400400575270C8003752708AF2794 -:1011D000E4EF547C4483FF8F27E527FC78AFE624B7 -:1011E00001F58218E63400F583ECF0E527FC78AFD2 -:1011F000E62405F58218E63400F583ECF0E527FCDB -:1012000078A7E624A8F8ECF678ADE62402F5821873 -:10121000E63400F583E0F52778ABE62402F5821882 -:10122000E63400F583A3E030E3175327C778ABE635 -:101230002405F58218E63400F583E0903686934263 -:101240002778ABE62402F58218E63400F583E03017 -:10125000E70543274080035327BF5327FB78ABE6BE -:101260002406F58218E63400F583E0600343270482 -:101270005327FC78ABE62404F58218E63400F583A6 -:10128000E04227432780E527FC78ADE62402F5827B -:1012900018E63400F583ECF078ADE62404F5821806 -:1012A000E63400F583E0F52778ABE62402F58218F2 -:1012B000E63400F583A3E030E1055327DF800343E4 -:1012C000272078ABE62402F58218E63400F583E0A7 -:1012D00030E4055327EF800343271078ABE6240959 -:1012E000F58218E63400F583E0B40203432702E5F3 -:1012F00027FC78ADE62404F58218E63400F583EC8B -:10130000F078ADE62403F58218E63400F583E0F5C5 -:101310002778ABE62409F58218E63400F583E070FF -:101320000553277F800343278078ABE62402F582AC -:1013300018E63400F583A3E030E00543272080035E -:101340005327DF78ABE62402F58218E63400F583F4 -:10135000E030E30543274080035327BF78ABE62402 -:1013600002F58218E63400F583E030E005432710EB -:1013700080035327EF78ABE62402F58218E63400A9 -:10138000F583A3E030E40543270880035327F7786B -:10139000ABE62402F58218E63400F583A3E030E5DD -:1013A0000543270480035327FB78ABE62402F5822C -:1013B00018E63400F583A3E030E6054327018003F7 -:1013C0005327FE78ABE62402F58218E63400F58355 -:1013D000A3E030E70543270280035327FDE527FC00 -:1013E00078ADE62403F58218E63400F583ECF0C20C -:1013F000037C00228D278C26ED54031460037C109F -:1014000022E527547C24FC40037C0B22E52624A102 -:10141000F8E64402F67C00228C30120F74E530248A -:10142000A1F8E620E24FAC307D02120D3AE53024FF -:10143000FE4428FC78AE8683088682ECF0AF83E514 -:10144000822404FEE43FFFEC8E828F83F07C038CC9 -:101450002CE52CFC78AFE62401F58218E63400F583 -:1014600083ECF0E52CFC78AFE62405F58218E63431 -:1014700000F583ECF0752D01752F48752EFFE530D2 -:1014800024FDFCE434FFFDEC7C0325E0CD33CDDC12 -:10149000F9FCE52F2CF52FE52E3DF52E78AFE6244F -:1014A00004F58218E63400F583E054E7F52CAD2FFF -:1014B000AE2EAF2DE4900002120320E4900006123D -:1014C00003201201EF30E503432C10E52CFC78AF2C -:1014D000E62404F58218E63400F583ECF012105B84 -:1014E00078ADE62406F58218E63400F583E0C20301 -:1014F000FCE53024A1F8E64404F68C2CE530540FCA -:10150000C454F07E00FFEEEF44047D00FFEC4EFC7F -:10151000ED4FFD121CC77C00228C2F120F74120F8E -:10152000FB78AE8683088682E05408F0A3A3A3A3C9 -:10153000E05408F0AC2F7D02120D3AC203E52F24CF -:10154000A1F8E654FBF67C0022123214789AECF6ED -:10155000EC24A1F8E630E10A7D007C131225471245 -:101560003297789AE624A1F8E64401F6789AE6FCE8 -:10157000120F74789AE624FD75F00AA42414F582FB -:10158000E434FCF58378AAE6FA08E6F97B0A7801E8 -:101590001203B078AA868308868279957A367B0A08 -:1015A00078011203FE120FC7C203789AE6FC1211EB -:1015B000177899ECF6EC600A7D007C08122547123A -:1015C0003297789AE6FC120F7478ADE62404F5821F -:1015D00018E63400F583E0441054DFFC78ADE624CF -:1015E00004F58218E63400F583ECF07899ECF6C245 -:1015F000037CC81233D7789AE6FC120F7478ADE6F4 -:101600002404F58218E63400F583E054EFF0C203B9 -:101610007CC81233D7789AE6FC120F7478ADE624B2 -:1016200004F58218E63400F583E04410F0C2037C30 -:10163000C81233D7789AE6FC120F7478ADE624040A -:10164000F58218E63400F583E04420F0C2037CF014 -:101650001233D7789AE6FC120F7478ADE62405F5BC -:101660008218E63400F583E030E415C203789AE688 -:1016700044107F00FE7C0712332912329702173D77 -:1016800078ADE62404F58218E63400F583E054CF03 -:10169000F0C2037CC81233D7789AE6FC120F747834 -:1016A000ADE62404F58218E63400F583E04430F01A -:1016B000C2037CF01233D7789AE6FC120F7478AD2F -:1016C000E62405F58218E63400F583E030E414C220 -:1016D00003789AE644107F00FE7C07123329123209 -:1016E00097805D78ADE62404F58218E63400F58332 -:1016F000E054EFF078ADE62404F58218E63400F506 -:1017000083E054DFF0789AE624FD75F00AA42414EF -:10171000F582E434FCF583AC82AD8378AA86830835 -:101720008682ECF9EDFA7B0A78011203B0C20378E5 -:101730009AE6FC1211177D007C0B12254712329796 -:1017400022123214E490FC39F07D027C001225470D -:10175000123297221232147C001225E012329722A4 -:10176000743C90FBE0F0743E90FBE0F0E490FC28C9 -:10177000F0228D358C34ECB401028003D34002801A -:1017800028B402028003D34008A835E625E0F6809D -:1017900018B404028003D3400AA835E625E025E00A -:1017A000F68006A83576008000228C3C8D3BEDFE4D -:1017B000ECFD7F0175660675670090FC29120477C1 -:1017C0001201EFB480028006D3500302187090FC1F -:1017D000291204899000031201F554F0B4300280FC -:1017E00003D3405F90FC291204899000081202176D -:1017F000FAFDEBFE7F0190FC2C120477EECD9036C3 -:101800009FFCE493FF740193FEF9EFFA7B01EAFF7A -:10181000E9FEECC39EED9F40259036A1E493FD7454 -:101820000193FCEDFEECFD7F01EECDFC90FC2EE083 -:10183000D39C90FC2DE09D50057566808033121975 -:101840008E802EB460028003D3400BAC3CAD3B12C3 -:1018500007828C66801BB41003B34010C3B420030E -:10186000B34009C3B440028003D340007566818051 -:10187000008075B481028003D3406B90FC29120470 -:10188000899000031201F554F0B430028003D34074 -:101890001D90FC29120489900008120217FAFDEB32 -:1018A000FE7F0190FC2F1204771218F88036B46086 -:1018B000028003D34013753A67E4F539F538AC3C40 -:1018C000AD3B1205DE8C66801BB41003B34010C321 -:1018D000B42003B34009C3B440028003D340007571 -:1018E0006681800080028000E566FC90FC2912047D -:1018F00089EC900002120320AC672290FC291204AC -:10190000899000041201F5600474018001E4A2E0F2 -:10191000920190FC29120489ED2403FD50010E90E0 -:10192000FC2C12047790FC29120489900005120106 -:10193000F5F5679000041201F5540FFC7D6712174E -:101940006FE5677004756608227566007884760016 -:101950007884E6C39567503890FC2F1204891201F1 -:10196000EFFC90FC2C120489EC12031830010E904D -:10197000FC31E004F090FC307003E004F078840661 -:1019800090FC2EE004F090FC2D7003E004F080C089 -:101990002290FC2AE0FDA3E0FCEDFEECFD7F01EDD2 -:1019A000240AFD50010E90FC3212047790FC29129B -:1019B00004899000041201F5540FB401028003D38E -:1019C000401790FC321204890DED70010E90FC2F2F -:1019D00012047778887601804EB402028003D340E7 -:1019E0001990FC32120489ED2402FD50010E90FC86 -:1019F0002F12047778887602802DB404028003D3F6 -:101A0000401990FC32120489ED2404FD50010E901F -:101A1000FC2F12047778887604800CB400028003CF -:101A2000D340007566082290FC29120489900005B5 -:101A30001201F5F567788576007885E6C3956740ED -:101A400003021AF6788676007886E6C37888965080 -:101A50007690FC2C1204891201EFFC90FC321204E7 -:101A6000921201E9F45CFC1201E9F890FC2F1204D7 -:101A700089E8C0E01201EFC8D0E0C8584CFC90FCE7 -:101A80002C120489EC1203187887ECF690FC31E0F4 -:101A900004F090FC307003E004F009E970010A9052 -:101AA000FC3212048090FC29120489900004120177 -:101AB000F530E40E90FC2EE004F090FC2D7003E075 -:101AC00004F078860680817888E6FDE4FEFFEECD9E -:101AD000FC90FC31E02CF090FC30E03DF07888E6A2 -:101AE000FDE4FEFFEECDFC90FC34E02CF090FC33E6 -:101AF000E03DF0788506021A367566002222C0E0C5 -:101B0000C0F0C082C083C0D0E8C0E0E9C0E0EAC055 -:101B1000E0EBC0E0ECC0E0EDC0E0EEC0E0EFC0E024 -:101B200090FF92E01201C01B49301B49321B58380C -:101B30001B6A3A1B7C3E1B94441B88461BA0501B0F -:101B4000E2521BC1541C035600001C2490FF92E07B -:101B50007F00FE7C01123329021C34E4FF04FE7C6A -:101B600003123329742090FFFEF0021C34E4FF04BA -:101B7000FE7C02123329744090FFFEF0021C34E414 -:101B8000FF04FE7C04123329021C34E4FF04FE7CB3 -:101B900005123329021C34E4FF04FE7C06123329AB -:101BA000021C3490FFA5E07D0090FBF8CDF0A3CDA2 -:101BB000F090FBF9E0FCF58390FBF8E04433FD1274 -:101BC0001CC7807390FFB5E07D0090FBFACDF0A3B9 -:101BD000CDF090FBFBE0FCF58390FBFAE04443FD85 -:101BE000121CC7805290FFA6E07D0090FBFCCDF058 -:101BF000A3CDF090FBFDE0FCF58390FBFCE04434CA -:101C0000FD121CC7803190FFB6E07D0090FBFECD39 -:101C1000F0A3CDF090FBFFE0FCF58390FBFEE044E9 -:101C200044FD121CC7801090FF92E07D00FCED4443 -:101C3000AAFD121CC78000E490FF92F0D0E0FFD014 -:101C4000E0FED0E0FDD0E0FCD0E0FBD0E0FAD0E058 -:101C5000F9D0E0F8D0D0D083D082D0F0D0E03205F7 -:101C600081058105810581A881181818EDF608EC19 -:101C7000F690FF5AE020E70280F790FF59E07D00E0 -:101C8000A88118CDF6CD08F67D03A881E618FCE6FC -:101C9000CC25E0CC33CCDDF9CCF6CC08F6A8811805 -:101CA000E644F8F6A881181818E6FD08E6FCA881B5 -:101CB000188683088682EDF0A3ECF0740290FF5A38 -:101CC000F0158115811581158122E5812405F581A5 -:101CD000E4A88118F6A88118181818EDF608ECF693 -:101CE00090FBF5E024F85003021DE8E4A8811818E1 -:101CF000F6A88118E6FEA88118181818E6FD08E66F -:101D0000FC7F00EF24F8404DE4EF25E0247DF582D0 -:101D1000E434FCF583E0FBA3E06C7003FAEB6D7038 -:101D2000097401A8811818F6802BE4EF25E0247DC2 -:101D3000F582E434FCF5837A00E054F0CCF8CCCDA5 -:101D4000F9CDFB7800E954F0F9EA687002EB6970AC -:101D5000010E0F80AEA88118EEF6A8811818181889 -:101D6000EDF608ECF6A881EFF6A8811818E6707970 -:101D7000A88118E624F74071A88118181818E654AD -:101D80000FA881F664046017A881E664036010A8B8 -:101D90008118181818E6FD08E6FC121C5C804A7CC5 -:101DA0000A123289A88118181818E6FD08E6FC9076 -:101DB000FBF4E025E0247DF582E434FCF583EDF0CE -:101DC000A3ECF090FBF4E0FFE4EF045407FF90FB7A -:101DD000F4F090FBF5E004F012332290FBF6E07093 -:101DE00008E4FEFF7C0F123329802790FBF7E00404 -:101DF000F0543F701D90FBF7E044FE7D00FC90FB2B -:101E0000F4E025E0247DF582E434FCF583EDF0A3D5 -:101E1000ECF0E58124FBF58122788B7600788C76D6 -:101E200000740190FBF6F012321490FBF5E060575D -:101E30007C0A12328990FBF3E025E0247DF582E4F0 -:101E400034FCF583E0FDA3E0FC90FBF3E025E02407 -:101E50007DF582E434FCF583E4F0A3F090FBF3E03D -:101E6000FFE4EF045407FF90FBF3F090FBF5E01460 -:101E7000F07889EDF608ECF61233227889E6FD0851 -:101E8000E6FC1208E580A312337690FF93E044014C -:101E9000F0B2B3788B06B6000D788B7600788CE6BE -:101EA000F40404788CF68082E490FBF6F090FBF565 -:101EB000E07D00FCED44CFFD121C5C123297221233 -:101EC0003214E5706449456F601590FF83E0540F4C -:101ED0007D00D39570ED956F500512305D80031233 -:101EE000312D12329722123214E5706449456F6029 -:101EF00005123167800E90FF80E04408F090FF8368 -:101F0000E0547FF0123297221232148C54EC54F0C9 -:101F1000B41015756A357569FC756801E56A2403A6 -:101F2000F56AE5693400F569E4F557F556E556C3F9 -:101F300094015027E554540FFCAD6AAE69AF6812A6 -:101F40000E828C55EC60028012056AE56A7002050B -:101F5000690557E5577002055680D2E554540F24A1 -:101F6000A1F8E654FEF6E554540F7F00FE7C1212F1 -:101F70003329E5551470097D007C09122547800737 -:101F8000AD577C001225471232972212321490FF6F -:101F9000FCE04402F090FF00E030E71390FF83E0A4 -:101FA0004480F0436D8090FFFCE04401F08011908C -:101FB000FF82E04408F0536D7F90FFFCE054FEF098 -:101FC00090FF81E04480F01225FA90FFFEE0440586 -:101FD000F090FFFCE054FDF0123297221232147C94 -:101FE000011233D778B1E64402F674FEFC04FD1208 -:101FF0001CC790FF5AE030E70280F7E4F54E754DBC -:1020000010AC4EAD4DE54E154E7002154DEC4D60C9 -:102010000280EE438701123297221232147C0212A0 -:1020200032A378B1E654FDF61232972212321478B8 -:10203000B1E630E02C78B1E630E12678B1E6FCF587 -:102040008318E644F0FD121C5C90FFFCE04420F095 -:102050007C021233D778B1E654FDF6741A90FFFE75 -:10206000F078B1E6FCF58318E644F1FD121C5C1231 -:10207000329722756D0090FFFFE06003436D01759C -:102080006E00E4F56CF56BE4F56F7570497484903F -:10209000FF82F0748490FF80F0748090FF58F07499 -:1020A0008090FF5AF0AD46AF457E00EE24FE50030F -:1020B00002213FE4EE75F007A4247FF582E434F8B2 -:1020C000F583E0FFE4EF5480FDE4EF540F14FFEDDF -:1020D0006038E4EF75F008A42448F582E434FFF595 -:1020E000837490F0E4EF75F008A4244AF582E43498 -:1020F000FFF5837480F0E4EF75F008A4244EF582B8 -:10210000E434FFF5837480F08034E4EF75F008A4C4 -:102110002408F582E434FFF5837490F0E4EF75F061 -:1021200008A4240AF582E434FFF583E4F0E4EF75B3 -:10213000F008A4240EF582E434FFF583E4F00E02E7 -:1021400020A88D468E448F45747F90FFFDF07490DB -:1021500090FFFCF0228C58EC24F65006E55824370A -:10216000FC22E5582430FC22D2B0D2B1C2B41225F0 -:1021700044EC700302227F755C03AE5B7F00E55C7C -:10218000155C6480247F5035EF2400F582E434FB35 -:10219000F583E0FE24FE501EEF7D00FCE4FB74742A -:1021A000C39CFAEB9DFBEE7D00FCEAC39CED6480D2 -:1021B000CB64809B50028005EF2EFF80C18E5B8F29 -:1021C0005AE55C6480247F500302227FE55A248E06 -:1021D000500302227F855A5D755B00AE5AAF5B905B -:1021E00036CAE493F55CE55C155C6480247F501886 -:1021F000EE2400F582E434FBF583E0FCEF9036CA70 -:10220000936C70040E0F80DE8E5A8F5BE55C6480E9 -:10221000247F406E755E017560E8755FFFE55D24A3 -:1022200002F55A755C07E55C334057AD60AE5FAFB1 -:102230005EE55CF5823395E0F5831201F5C4540F39 -:10224000FC122152E55A2400F582E434FBF583ECBC -:10225000F0055A055AAD60AE5FAF5EE55CF58233BE -:1022600095E0F5831201F5540FFC122152E55A2432 -:1022700000F582E434FBF583ECF0055A055A155C51 -:1022800080A4740290F851F090F86B79A37A367BB1 -:102290002778011203FE756A357569FC756801E4DB -:1022A00090FF83F0748090FF81F0755902E55975B5 -:1022B000F007A4247FF582E434F8F583E07893F600 -:1022C000FC540F14FC7893ECF6E55975F007A42440 -:1022D00081F582E434F8F583E0789676FD0876E8B7 -:1022E000FC7893E675F008A42448F582E434FFF501 -:1022F00083E4F07893E675F008A4244FF582E43483 -:10230000FFF583ECF07896E6FF08E67E03CFC31373 -:10231000CF13DEF9FE7893E675F008A42449F58220 -:10232000E434FFF583EEF07893E675F008A4244AD0 -:10233000F582E434FFF5837480F07894ECF67D0048 -:102340007897E62CF618E63DF67896E6FD08E67CEA -:1023500003CDC313CD13DCF9FC7893E675F008A424 -:10236000244DF582E434FFF583ECF07893E675F0C4 -:1023700008A4244EF582E434FFF583E4F07896E671 -:10238000FD08E6FC7893E6FF7E00EE24FE50030293 -:1023900024FEE4EE75F007A4247FF582E434F8F51A -:1023A00083E0FFE4EF5480FAE4EF540F14FFE4EE0F -:1023B00075F007A42481F582E434F8F583E078947D -:1023C000F6E4EE1313548024F0F8E434FDF9E8FC4D -:1023D000E9FD8A5AEA700302246BE4EF75F008A461 -:1023E0002448F582E434FFF583E4F07894E6FAE4D7 -:1023F000EF75F008A4244FF582E434FFF583EAF08A -:10240000EDFBEC7A03CBC313CB13DAF9FAE4EF75E7 -:10241000F008A42449F582E434FFF583EAF07894C7 -:10242000E67B00FAEC2AFCED3BFDFBEC7A03CBC328 -:1024300013CB13DAF9FAE4EF75F008A4244DF58212 -:10244000E434FFF583EAF0E4EF75F008A4244AF5DC -:1024500082E434FFF5837480F0E4EF75F008A4247F -:102460004EF582E434FFF5837480F00224FAE4EF41 -:1024700075F008A42408F582E434FFF583E4F078CD -:1024800094E6FAE4EF75F008A4240FF582E434FF33 -:10249000F583EAF0EDFBEC7A03CBC313CB13DAF947 -:1024A000FAE4EF75F008A42409F582E434FFF5831B -:1024B000EAF07894E67B00FAEC2AFCED3BFDFBECBD -:1024C0007A03CBC313CB13DAF9FAE4EF75F008A45F -:1024D000240DF582E434FFF583EAF0E4EF75F008AB -:1024E000A4240AF582E434FFF583E4F0E4EF75F008 -:1024F00008A4240EF582E434FFF583E4F00E0223F1 -:10250000878E597896EDF608ECF67893EFF6122060 -:1025100070228C26EC30E718E526540F1475F0086D -:10252000A42448F582E434FFF583E054DFF08016FC -:10253000E526540F1475F008A42408F582E434FF4E -:10254000F583E054DFF0227C0022EC90FC37F08C25 -:1025500024ED2403F5257D00D39572ED957140039C -:10256000857225E52524B75009752503740290FC72 -:1025700037F0AC2512315222E4F56CF56B12257E52 -:102580002290FC35E06573600E740490FC37F0E433 -:10259000F56B756C0380467D73E4FEFF79357AFC3C -:1025A0007B0174057800120348E56C2403F56CE5A3 -:1025B0006B3400F56BE56CD39572E56B9571400655 -:1025C00085726C85716BD3E56C9448E56B94004023 -:1025D0000C740290FC37F0E4F56B756C03AC6C1274 -:1025E000315222EC90FC37F0E4F56CF56B8C32EC58 -:1025F000600512314380057C001231522290FF9316 -:10260000E04401F0B2B390FF04E0F54A90FF06E029 -:10261000FDA3E0ED7D00FC7D00FC90FF06E0FFA344 -:10262000E07E00FFE4FEEC4EFCED4FFDC3EC944871 -:10263000ED9400502290FF06E0FDA3E0ED7D00FC4C -:102640007D00FC90FF06E0FFA3E07E00FFE4FEECCF -:102650004EFCED4FFD8004E4FD7C488C728D719042 -:10266000FF02E0FDA3E0ED7D00FC7D00FC90FF0299 -:10267000E0FFA3E07E00FFE4FEEC4EF54CED4FF5ED -:102680004B756A357569FC7568017D357EFC7F0187 -:102690007973E4FAFB74057800120348754900E584 -:1026A0004924FE4019AD6AAE69AF68E4120318050B -:1026B000490DED70010E8D6A8E698F6880E1756A33 -:1026C000357569FC75680178B3E614184660030235 -:1026D00027927890E6FF08E6FE788EE4F608F6C3C7 -:1026E000788FE6940218E69400501DE4FEFFC3EED6 -:1026F00094E8EF940350070EBE00010F80F0788F2E -:1027000006E61870010680D77890EFF608EEF6D24C -:10271000B47890E6FF08E6FE788EE4F608F6C37813 -:102720008FE6941E18E69400501DE4FEFFC3EE945D -:10273000E8EF940350070EBE00010F80F0788F067B -:10274000E61870010680D77890EFF608EEF6C2B171 -:102750007890E6FF08E6FE788EE4F608F6C3788FF8 -:10276000E6943A18E69400501DE4FEFFC3EE94E8A8 -:10277000EF940350070EBE00010F80F0788F06E63D -:102780001870010680D77890EFF608EEF6D2B1788F -:10279000B2E4F608F690FF00E05460B40002800650 -:1027A000D35003022D9BE54A540FF549E54A548066 -:1027B000A2E0920290FF01E012018A000B2D962701 -:1027C000D428F22D9629FE2D962AE12B152C7C2C4F -:1027D0007F2CBF2D3F2D6DE56D30E70EE54C454B51 -:1027E0007008E572640245716003022D9890FF0045 -:1027F000E0541FB400028003D34029E54A6003027D -:1028000028EFAD6AAE69AF68740112031878B1E6BB -:1028100030E00BAD6AAE69AF6874021203187C0237 -:1028200012315222B401028003D3401BE56D20E136 -:1028300007E54A60030228EFE54A24FE5003022818 -:10284000EF7C0212315222B402028006D3500302FE -:1028500028EDE56D20E10DE54A6009E54A648060F8 -:10286000030228EFAC4A1231D940030228EFE549B0 -:10287000702530021190FF80E05408AD6AAE69AF58 -:1028800068120318800F90FF82E05408AD6AAE69A9 -:10289000AF68120318803D154930021DE54975F0F7 -:1028A00008A42448F582E434FFF583E05408AD6AB7 -:1028B000AE69AF68120318801BE54975F008A424BF -:1028C00008F582E434FFF583E05408AD6AAE69AFE1 -:1028D00068120318AD6AAE69AF681201EF600BAD04 -:1028E0006AAE69AF6874011203187C021231522279 -:1028F0008000022D98E56D20E706E57245716003C2 -:10290000022D9890FF00E0541FB400028003D340D2 -:102910001AE54C14454B7004E54A60030229FB7824 -:10292000B1E654FEF67C0012315222B4010280035B -:10293000D3402AE56D20E108E56D20E0030229FB84 -:10294000E56D30E004E54A700BE56D30E109E54ADC -:1029500024FE50030229FB7C0012315222B40202F1 -:102960008006D350030229F9E54C454B6003022948 -:10297000FBAC4A1231D940030229FBE56D20E10787 -:10298000E56D20E0028077E56D30E006E549600204 -:10299000806CE549700F90FF82E054F7F090FF8063 -:1029A000E054F7F022E549B401028003D340097DE9 -:1029B000017C03120F148011B402028003D340097A -:1029C0007D017C04120F1480001549300215E54981 -:1029D00075F008A42448F582E434FFF583E054F749 -:1029E000F08013E54975F008A42408F582E434FF6B -:1029F000F583E054F7F07C00123152228000022D62 -:102A000098E56D20E706E57245716003022D989008 -:102A1000FF00E0541FB400028003D3401AE54C14B9 -:102A2000454B7004E54A6003022ADE78B1E64401B2 -:102A3000F67C0012315222B401028003D34029E512 -:102A40006D20E108E56D20E003022ADEE56D30E04F -:102A500004E549700BE56D30E108E54924FE5002BC -:102A6000807F7C0012315222B402028003D3406F77 -:102A7000E54C454B60028069AC4A1231D940028076 -:102A800060E56D20E107E56D20E0028054E54970C6 -:102A90001430020990FF80E04408F0800790FF8224 -:102AA000E04408F022E56D30E1331549300215E5C8 -:102AB0004975F008A42448F582E434FFF583E04426 -:102AC00008F08013E54975F008A42408F582E43481 -:102AD000FFF583E04408F07C00123152228002802E -:102AE00000022D98E56D20E712E5724571700CE546 -:102AF0004A700890FF00E0541F6003022D98E54CD7 -:102B000090FFFFF090FFFFE06005436D01800353ED -:102B10006DFE7C0012315222E56D30E70EE5724504 -:102B200071600890FF00E0541F6003022D98AD4BC8 -:102B3000E54CED7D00FC7D00FCBD00028003022C15 -:102B400077B401028003D34032E54A7005E54CFCBE -:102B50006003022C79756A407569F8756801D3E5E0 -:102B6000729412E57194004006E4FD7C128004AC7E -:102B700072AD718C708D6F12316722B402028003C6 -:102B8000D34059E54A6003022C79E54CFC70277567 -:102B90006A527569F8756801D3E5729419E5719404 -:102BA000004006E4FD7C198004AC72AD718C708D20 -:102BB0006F1231678025756A6B7569F8756801D386 -:102BC000E5729427E57194004006E4FD7C278004BB -:102BD000AC72AD718C708D6F12316722B4030280BC -:102BE00006D35003022C77E54CF549700F90FF0493 -:102BF000E0FDA3E04D6003022C79801890FB02E019 -:102C0000FDA3E0FC90FF05E06C700790FF04E06D11 -:102C100060028068E4F570F56F7F00E54914C549EE -:102C2000600FEF2400F582E434FBF583E02FFF8092 -:102C3000EA8F4AE54A2400F582E434FBF583E07D1F -:102C400000D39572ED95714006AC72AD71800FE5C1 -:102C50004A2400F582E434FBF583E07D00FC8C70AF -:102C60008D6FE54A2400FCE434FBFDFEECFD7F01A2 -:102C70008D6A8E698F68123167228000022D98025A -:102C80002D98E56D30E719E5721445717012E54A2B -:102C9000700EE54C454B700890FF00E0541F600338 -:102CA000022D98E56D20E008E56D20E103022D98E6 -:102CB000756A6EE4F569F568E4F56F04F570123134 -:102CC0006722E56D20E727E57245717021E54A70BE -:102CD0001DE54C6402454B600DE54C14454B600608 -:102CE000E54C454B700890FF00E0541F6003022D37 -:102CF00098E56D20E008E56D20E103022D98854CF4 -:102D00006EE56E7010436D01536DFDD2B078B2E484 -:102D1000F608F68027E56E64026007E56E1460022F -:102D20008079536DFE436D02E56E64026005E56EC9 -:102D300014700978B2E4F60804F6C2B07C001231CF -:102D40005222E56D30E71AE5721445717013E54AB9 -:102D5000700FE54C454B700990FF00E0541F146064 -:102D6000028038E56D20E10280317C01123152226F -:102D7000E56D20E715E5724571700FE54C454B7028 -:102D80000990FF00E0541F146002800FE56D20E100 -:102D90000280087C00123152228000023059B44077 -:102DA000028006D3500302304F90FF01E090FC35C3 -:102DB000F0E54A90FC36F0E490FC37F0E56A240335 -:102DC000F56AE5693400F569AD4BE54C856A8285A5 -:102DD0006983CDF0A3CDF090FF01E01201C02E0673 -:102DE000012E2C022E56032E80042ECE052F0B060C -:102DF0002F31072F57082F83092FA90B2FCF0C2F07 -:102E0000DE802FDE810000303CE56D20E7067C058A -:102E10001225E0227D527E367F0279387AFC7B01D2 -:102E2000740878001203487D087C0012254722E5CB -:102E30006D20E7067C051225E022E54AB403004038 -:102E400010B40500500BE54A7F00FE7C10123329B8 -:102E5000227D007C0712254722E56D20E7067C05D0 -:102E60001225E022E54AB403004010B40500500BDF -:102E7000E54A7F00FE7C11123329227D007C071277 -:102E8000254722E56D20E7067C051225E022E54A6C -:102E9000B405028003D3400AE4FF04FE7C0A123327 -:102EA0002922B401028003D3400AE4FF04FE7C0817 -:102EB00012332922B403004010B40500500BE54A38 -:102EC0007F00FE7C13123329227D007C07122547E8 -:102ED00022E56D20E734D3E5729448E57194005003 -:102EE00006E572457170067C021225E022E54AB4BF -:102EF0000103B3400BC3B403004009B406005004FF -:102F00001231FF227C071225E02212257E22E56D78 -:102F100020E71DE54AB403004010B40500500BE55E -:102F20004A7F00FE7C16123329227C071225E022FC -:102F300012257E22E56D20E71DE54AB4030040100E -:102F4000B40500500BE54A7F00FE7C19123329229C -:102F50007C071225E02212257E22E56D20E72374EE -:102F60008190FF93F0E54AB403004010B40500508F -:102F70000BE54A7F00FE7C17123329227C071225BD -:102F8000E02212257E22E56D20E71DE54AB403000C -:102F90004010B40500500BE54A7F00FE7C18123348 -:102FA00029227C071225E02212257E22E56D20E7EA -:102FB0001DE54AB403004010B40500500BE54A7FFC -:102FC00000FE7C15123329227C071225E0221225EF -:102FD0007E22E56D20E7067C071225E02212257E81 -:102FE00022E56D30E72090FF00E0541F701090FF45 -:102FF00001E0B48005122575800312257E227D0034 -:103000007C051225472290FF00E0541F60067C05D6 -:103010001225E022D3E5729448E5719400500BC369 -:10302000E5729407E571940050067C031225E022B6 -:10303000E54AB405041231FF227C071225E022E59F -:103040006D30E7087D007C05122547227C0512259E -:10305000E022B420028003D34000800012312D22F0 -:1030600075430090FF83E0540FD395434024E5431C -:1030700024F0F582E434FEF583E0AD6AAE69AF6812 -:1030800012031805430DED70010E8D6A8E698F686D -:1030900080D1E5437D00FCC3E5709CF570E56F9D34 -:1030A000F56FE570456F6006E490FF83F02290FFB6 -:1030B00082E04408F0E4F56F75704990FC35E0B4A7 -:1030C00005028003D3404090FC36E0F543B405028E -:1030D0008003D3400AE4FF04FE7C0B12332922B4A0 -:1030E00001028003D3400AE4FF04FE7C0912332965 -:1030F00022B403004010B40500500BE5437F00FEEE -:103100007C141233292222B480004023B482005060 -:103110001E7C357DFC1217A77D008C6C8D6B90FC9E -:1031200037E0600512312D80057C001231522222D9 -:1031300090FF83E0547FF090FF82E04408F090FF1E -:1031400080E04408F02290FF82E04408F090FF8085 -:10315000E04408F0228C237D008C708D6F756A35F9 -:103160007569FC7568011231672290FF83E0547F16 -:10317000F0E5706449456F700122C3E5709408E57D -:103180006F94004015752108E5217D00FCC3E570B2 -:103190009CF570E56F9DF56F8009857021E4F56FF2 -:1031A000757049752200E522C395215026AD6AAE9F -:1031B00069AF681201EFFCE52224F8F582E434FEE1 -:1031C000F583ECF005220DED70010E8D6A8E698F8E -:1031D0006880D3E521547F90FF81F0228C487F00E6 -:1031E000EF24FD4019E4EF75F007A4247FF582E495 -:1031F00034F8F583E065487002D3220F80E28F47F0 -:10320000C32285727085716F90FF82E054F7F09051 -:10321000FF83E0547FF022C000C001C002C006C09E -:1032200007E5782408F8860653067F7CFF1232896A -:103230007C007D00E57B6046FF90FD95E0547F6E4D -:10324000700FC083C082A3E0FDA3E0FCA3157B80C8 -:1032500007A3A3A3DFE68026DF06D082D083801EEB -:10326000E0F8A3E0F9A3E0FAD082D083E8F0A3E984 -:10327000F0A3EAF0A3C083C082A3A3A380DA123331 -:1032800022D007D006D002D001D0002285A87A75BE -:10329000A888EC70027C3F8C7922E5782408F876C7 -:1032A0000012337680FBC000C001C002C006C00718 -:1032B000AE047CFF123289E57B6042FF90FD95E011 -:1032C000547F6E700BC083C082A3A3A3157B8007BD -:1032D000A3A3A3DFEA8026DF06D082D08380D8E0D4 -:1032E000F8A3E0F9A3E0FAD082D083E8F0A3E9F0F4 -:1032F000A3EAF0A3C083C082A3A3A380DA7808085E -:103300007918097C01E6547F6E700676007700809C -:103310000608090CBC08EE123322D007D006D002F2 -:10332000D001D00022757900857AA822C0F0C08231 -:10333000C083C3E57B24E8500512337680F4EC604B -:1033400031903651E493C39C4028C0047CFF123274 -:1033500089D004430480E57B75F003A42495F582AD -:10336000E434FDF583ECF0EFA3F0EEA3F0057B125F -:103370003322D083D082D0F022C0047C20D28CD2E1 -:103380008DD504FDD0042275A80075880075B8009D -:1033900075F00075D000E4F8900000F608B800FB66 -:1033A000020000C3ED940250047D037CE8ECF4FCC1 -:1033B000EDF4FD0CBC00010D8C7F8D7E22C3EC94DE -:1033C000BCED940250047D077CD0ECF4FCEDF4FDE0 -:1033D0000CBC00010D8C7D8D7C22EC700122C000A4 -:1033E000E5782418F8A604E5782408F8C6547FF692 -:1033F000E630E703D0002212337680F4C28C857C5D -:103400008C857D8AD28CC0E0C0D0C0F0C082C083E1 -:10341000C000C001C002C003C004C005C006C00790 -:10342000121AFAE5782408F8E66024E5782410F802 -:10343000A681E57875F021A4248DF582E434FCF5AD -:103440008378B4E58104C398F9E6F008A3D9FA7447 -:10345000082578F8057808E65480700CE578B407FC -:10346000F3780875780080EFE5782410F88681E518 -:103470007875F021A4248DF582E434FCF58378B4CA -:10348000E58104C398F9E0F608A3D9FAD007D0067D -:10349000D005D004D003D002D001D000D083D08298 -:1034A000D0F0D0D0D0E032C0E0C0D0C000C001C069 -:1034B00002C28E857E8D857F8BD28E781979097AAE -:1034C00007E77004A600800BE6600816E67004E7C4 -:1034D0004480F70809DAEAE579601314F579700E8B -:1034E000E5782408F87600123322D28CD28DD002EF -:1034F000D001D000D0D0D0E0327581B3742A90FFD3 -:1035000093F0757F30757EF8757D60757CF01205DF -:10351000411235AA12175D90FF93E04401F0B2B357 -:103520001235D412338480DA22C0007C01EC2408E6 -:10353000F8E660090CBC08F512337680EED0002264 -:10354000C0F0C082C083C000C006C007ED2410F8E0 -:1035500076C2ED75F021A4248DF582E434FCF58368 -:10356000C082C083A3A3E4780DF0A3D8FCEC547F01 -:1035700075F002A4241DF582E5F03436F583E4935A -:10358000FE740193F5828E83E493FE740193FFD061 -:1035900083D082EFF0A3EEF0ED2408F8EC4480F63F -:1035A000D007D006D000D083D082D0F0227578002A -:1035B000757B007A0879187808760077000809DAB0 -:1035C000F8E478087480447FF674014410F5897536 -:1035D000B808D2ABD2A9227581B3D28ED28CD2AF29 -:1035E000E57B6032FF90FD95E05480602478087997 -:1035F00008E0547FFA7B00E6547FB502027BFF08A7 -:10360000D9F5EB700CEAF0123526AD04AC02123598 -:103610003DA3A3A3DFD212337680C57C017D0022B7 -:10362000050004F404F804EC04E804E404F004FCE9 -:1036300004A804AC04D804DC04A404A404A404E096 -:1036400004C004B804BC04B404CC04C804C404D04A -:1036500004D404B0190103002200480200480E30CF -:103660001420C81AD0180A0C050602030102000132 -:10367000CE0181010000C000800060003000180011 -:1036800010000800040002000100081828380C058A -:10369000100A0200000000000301100A02000000EE -:1036A0000000FBE0FBF209022700010200A0FA097A -:1036B00004000003FF00000007058102400000072E -:1036C00005010240000007058303020001220354A4 -:1036D0000055005300420033003400310030002018 -:1036E00000200020002000200020002000200000FA -:0336F000000000D7 -:00000001FF diff --git a/firmware/mts_gsm.fw.ihex b/firmware/mts_gsm.fw.ihex deleted file mode 100644 index f6ad0cbd30cb..000000000000 --- a/firmware/mts_gsm.fw.ihex +++ /dev/null @@ -1,867 +0,0 @@ -:1000000014360002001E021AF9FFFFFFFFFF023341 -:100010001DFFFFFFFFFFFFFFFFFFFFFFFFFF02339B -:10002000C87581CE90FDE88583A012353CEC4D600B -:100030007378AB8003760018B89CFA787F800376DB -:100040000018B865FA78208003760018B820FA788E -:10005000208003760018B81FFA90FDDDAE83AF82D2 -:1000600090FBF81200AA6005E4F0A380F690FDE88A -:10007000A88290FDE8A982E8696005E4F20880F7AB -:100080009001081200B390010C1200B390011012FD -:1000900000B39001141200D190011A1200D1900106 -:1000A000201200D175D00012341A020126EF6582A9 -:1000B0007003EE658322E493F8740193F97402935C -:1000C000FE740393F5828E83E869700122E493F64F -:1000D000A30880F4E493FC740193FD740293FE740E -:1000E0000393FF740493F8740593F58288831200D8 -:1000F000AA700122E493A3A883A9828C838D82F045 -:10010000A3AC83AD828883898280E32121049B8014 -:1001100080049BACAE049BFDE8049D049DFBF304AE -:10012000A2049DFBF30502050280FED0F030F00929 -:1001300020F303F68010F7800D30F10920F303F26D -:100140008004F38001F020F404FCD0E0CC22CCC089 -:10015000E0120163020154BC0005D0F0ACF022C3F0 -:1001600013DCFC02012ABF0009ED258275F001F8BD -:10017000E622BF010FED2582F582EE3583F583750A -:10018000F004E022ED258275F002F8E222D083D05F -:1001900082F5F0C3E493A3C5F095F0C0E0C3D0F0BE -:1001A000E493A395F04012A3A3C3E5F033500205F6 -:1001B000832582F58250020583740193C0E0E493A5 -:1001C000C0E022D083D082F5F0E4937009740193EB -:1001D0007004A3A3800C74029365F06005A3A3A32D -:1001E00080E7740193C0E0E493C0E022120264024D -:1001F00001FB1202B80201FB1202DC0201FB30E03B -:100200000720E302E622E72230E10720E302E222B0 -:10021000E32230E202E022E493221202DC02022313 -:100220001202B8020223ABF012022DCBC5F0CB2292 -:1002300030E01020E306E6F5F008E622E7F5F009E5 -:10024000E7192230E11020E306E2F5F008E222E3AC -:10025000F5F009E3192230E206E0F5F0A3E022E42C -:1002600093F5F074019322BB0003740922BB0107CC -:1002700089828A83740422BB020789828A8374106C -:1002800022740A22020284BB0007E92582F8740165 -:1002900022BB010DE92582F582EA3583F5837404DA -:1002A00022BB020DE92582F582EA3583F5837410BD -:1002B00022E92582F87402220202B8BF0005EDF897 -:1002C000740122BF01078D828E83740422BF02074E -:1002D0008D828E83741022EDF87402220202DCBF3C -:1002E0000007ED2582F8740122BF010DED2582F58E -:1002F00082EE3583F583740422BF020DED2582F56D -:1003000082EE3583F583741022ED2582F874022283 -:10031000020310C0E0120264020328C0E01202B817 -:10032000020328C0E01202DC02032830E00B20E3C5 -:1003300004D0E0F622D0E0F72230E10B20E304D035 -:10034000E0F222D0E0F322D0E0F022C9CDC9CACE3B -:10035000CACBCFCB12035BEDF9EEFAEFFB22BB0069 -:100360002FBF000AFAEDF8E7F60809DAFA22BF0112 -:10037000128D828E83F802037809A3E7F0D8FA225F -:10038000020383FAEDF8E7F20809DAFA2202038D94 -:10039000BB014DBF001489828A83F9EDF802039FE7 -:1003A00008A3E0F6D9FA220203B0BF01228D828EA3 -:1003B00083FB08C9C582C9CAC583CAE0A3C9C5826F -:1003C000C9CAC583CAF0A3DBEAD8E8220203D38DE9 -:1003D000828E83F9EDF8E0F208A3D9FA220203DD58 -:1003E000BB024DBF001289828A83F9EDF80203EF48 -:1003F00008A3E493F6D9F922BF01238D828E83FBF3 -:1004000008C9C582C9CAC583CAE493A3C9C582C93C -:10041000CAC583CAF0A3DBE9D8E722020422898295 -:100420008A83F9EDF8E493F208A3D9F922020433A0 -:10043000BF000DFAEDF8E3F60809DAFA2202043DEE -:10044000BF01128D828E83F802044A09A3E3F0D81B -:10045000FA22020455FAEDF8E3F20809DAFA220268 -:10046000045FE6FB08E6FA08E6F904F618700106F0 -:1004700022E6FF08E6FE08E6FD22EFF0A3EEF0A379 -:10048000EDF022EBF0A3EAF0A3E9F022E0FFA3E015 -:10049000FEA3E0FD22E0FBA3E0FAA3E0F9220000C6 -:1004A00000000000000502006105710026059800AB -:1004B000330A0900610A750066154400610CF900F1 -:1004C0006109A9006109E000610DC000610BF10044 -:1004D000610A1C00610A510061173C0033174F008C -:1004E000341E1400431EBF0044202C0044201A0078 -:1004F000471EE600471F8B004D1FDC004F1F080002 -:100500005832A800617CCC7DFF121CC52290FFFCF4 -:10051000E020E72DC2AFAE59AF58755A20E55A1406 -:10052000C55A6019E4FE7F05EE4FCE24FFCECF34CE -:10053000FFCF6007E490FF92F080ED80E08E598F4E -:10054000582212050A7D077CB71232C47D0F7C6EDB -:100550001232DE789D7A06E4F608DAFC7A06120595 -:10056000CD7C03120E55122168E4FEFF7C0F12327F -:100570004DD2A822123138E490FC38F090FFF0E020 -:1005800030E408740190FC39F08005E490FC39F007 -:100590007D0A7C001225461231BB2212313890FCB4 -:1005A00039E014700E90FFF0E04410F07C0012254A -:1005B000DF801990FC39E0700E90FFF0E054EFF00E -:1005C0007C001225DF80057C171225DF1231BB224B -:1005D00090FFF0E054ABF090FFF0E04420F0228C6C -:1005E000378D367882EDF608ECF6EDFEECFD7F01F6 -:1005F0009000051201F57880F67882E6FD08E6FCA9 -:10060000EDFEECFD7F019000041201F5540FFC7D1E -:100610008012176D7880E6700DAD3AAE39AF38E4D0 -:100620001203187C082290FFF0E054FEF090FFF0D7 -:10063000E054FDF0801E7882E6FD08E6FCEDFEEC5D -:10064000FD7F0190000812021725E0440190FFF39E -:10065000F00206D97882E6FD08E6FCEDFEECFD7FAF -:100660000190000612021754FE90FFF3F0802B78E1 -:1006700082E6FD08E6FCEDFEECFD7F01900008122D -:100680000217FAEB90FFF1F01208C8400DAD3AAE38 -:1006900039AF38E41203187C18227882E6FD08E6A8 -:1006A000FCEDFEECFD7F0190000812021790FFF1B7 -:1006B000F01208C8400DAD3AAE39AF38E412031855 -:1006C0007C18227882E6FD08E6FCEDFEECFD7F0159 -:1006D000900006120217440190FFF3F07883E6249D -:1006E00003F618E63400F67880E624FE500990FF01 -:1006F000F0E054FDF0800790FFF0E04402F0E49059 -:10070000FFF1F0788176007880E624FFFCE434FF86 -:10071000FD7881E67F00FEECD39EEF6480CD64809F -:100720009D402F1208AD400F7881E6AD3AAE39AF4B -:10073000381203187C182290FFF2E0FC788286833E -:10074000088682ECF0788106A37882A68308A682C8 -:1007500080B51208AD400F7881E6AD3AAE39AF38BA -:100760001203187C182290FFF2E0FC78828683083E -:100770008682ECF07880E6AD3AAE39AF38120318D5 -:100780007C00228C378D367882EDF608ECF6EDFE93 -:10079000ECFD7F019000051201F57881F67882E684 -:1007A000FD08E6FCEDFEECFD7F019000041201F572 -:1007B000540FFC7D8112176D7881E670037C08224E -:1007C00090FFF0E054FEF090FFF0E054FDF0801B4D -:1007D0007882E6FD08E6FCEDFEECFD7F0190000866 -:1007E00012021725E090FFF3F0805B7882E6FD08A7 -:1007F000E6FCEDFEECFD7F0190000612021754FEB0 -:1008000090FFF3F080217882E6FD08E6FCEDFEEC37 -:10081000FD7F01900008120217FAEB90FFF1F01231 -:1008200008C840037C18227882E6FD08E6FCEDFE4D -:10083000ECFD7F0190000812021790FFF1F0120802 -:10084000C840037C18227883E6240AF618E63400B0 -:10085000F6788076007881E624FFFCE434FFFD78AA -:1008600080E67F00FEECD39EEF6480CD64809D40E7 -:100870002178828683088682E090FFF1F01208C812 -:1008800040037C1822788006788306E618700106FB -:1008900080C390FFF0E04401F0788286830886826E -:1008A000E090FFF1F01208C840037C18227C00227F -:1008B00090FFF0E020E71290FFF0E030E50990FFB4 -:1008C000F0E04420F0C32280E7D32290FFF0E02044 -:1008D000E31290FFF0E030E50990FFF0E04420F0F3 -:1008E000C32280E7D3228C428D417C00ED54F0FD81 -:1008F000EC7003ED64307005753E038003753E04B3 -:10090000AC3E120F72758300858340E541540FF5AC -:100910003FE5407004E53F64037035E53E24FD7516 -:10092000F00AA42402F582E434FCF583E030E60505 -:100930001210598019E53E249DF8E654FBF678A97B -:10094000E62405F58218E63400F583740FF080592B -:10095000E5407004E53F64047048E53E24FD75F011 -:100960000AA42402F582E434FCF583E030E507AC08 -:1009700042AD41121C5AE54230E21578ADE630E056 -:100980000F78ADE630E109E4FF04FE7C0412324D3D -:1009900078A9E62406F58218E63400F583740FF092 -:1009A0008007E4FC7DEE121C5AC203221231381279 -:1009B0000F7278A9E62406F58218E63400F583E084 -:1009C00090FC38F078A9E62405F58218E63400F5A5 -:1009D00083E090FC39F0C2037D027C0012254612B0 -:1009E00031BB221231387895ECF6EC249DF8E630D4 -:1009F000E1077C131225DF800F90FC39E0FD78952C -:100A0000E6FC1213EF1225DF1231BB2212313878C7 -:100A100095ECF67D00120F121225DF1231BB221267 -:100A200031387895ECF6EC249DF8E630E2077C133B -:100A30001225DF801B7895E6249DF8E620E1077CEF -:100A4000121225DF800A7895E6FC1214131225DFB6 -:100A50001231BB221231387895ECF6EC249DF8E681 -:100A600020E2077C111225DF800A7895E6FC12153A -:100A7000141225DF1231BB221231387895ECF612B0 -:100A80000F7278A9E62409F58218E63400F583E0B0 -:100A900090FC3FF078A9E6240AF58218E63400F5C8 -:100AA00083E090FC40F078A9E62403F58218E63450 -:100AB00000F583E0FC78A9E62404F58218E634000A -:100AC000F583E0F56278A9E62402F58218E63400A1 -:100AD000F583E0F5638C61E4EC333354017895F6EB -:100AE0006008E56230E1037895067895E690FC4170 -:100AF000F078A7E62402F58218E63400F583E0FDDD -:100B0000A3E0540CFCED54E68C65F564E56130E53A -:100B100003436501E56220E50EE561547F7008E559 -:100B20006120E703436502E56130E303436510E5B7 -:100B30006130E203436520E561540360034365408F -:100B4000E56130E103436580E56130E4034364011E -:100B5000E56130E603436408E56220E40EE5615494 -:100B60007F7008E56120E7034364105365FB53641D -:100B7000F9AD64E56590FC3ACDF0A3CDF0E56330C6 -:100B8000E30DE5635430C4540F90FC3DF08005E460 -:100B900090FC3DF0E563540390FC3CF0E5635404A5 -:100BA000C31390FC3EF090FC3CE0700E7D357EFC63 -:100BB0007F01740190000912014B78A9E62408F521 -:100BC0008218E63400F583E07C00FD78A9E624076E -:100BD000F58218E63400F583E07F004CFEEF4D907F -:100BE000FC38F0A3CEF0CEC2037D0A7C001225466D -:100BF0001231BB221231387895ECF6789A760108DA -:100C000076FC0876387897760C789A12046E120281 -:100C10001D7898CBF6CB08F67F00EF24EA401FE45E -:100C2000EF25E090357EFD93CD04937899667003AF -:100C3000ED186670067897760080030F80DC789652 -:100C4000EFF6789A12046E9000021202177898CB91 -:100C5000F6CB08F65404CB54064B60047897760B19 -:100C60007899E630E313789A12046E900005120129 -:100C7000F524FB50047897760D7899E654C07D00F2 -:100C800064C04D70047897760B789A12046E9000C9 -:100C9000041201F524FC50047897760F789A120418 -:100CA0006E9000061201F524FD50047897760E78B8 -:100CB0009A12046E9000091201F524FD50047897F1 -:100CC000760A7897E6702A7895E6FC120F72789A81 -:100CD00012046E78A7E6F978A6E6FA7B01740A7822 -:100CE00000120348C2037895E6FC1211157897ECC0 -:100CF000F67897E6FC1225DF1231BB2212313878E4 -:100D000095ECF6120F727895E624FD75F00AA4248E -:100D100014F582E434FCF583AC82AD8378A6868337 -:100D2000088682ECF9EDFA7B0A78011203B0C2035F -:100D30007895E6FC1211151231BB228D2B8C2AED11 -:100D400060407527017529487528FFE52A24FDFCB8 -:100D5000E434FFFDEC7C0325E0CD33CDDCF9FCE58C -:100D6000292CF529E5283DF528AD29AE28AF2774B3 -:100D7000809000061203207480900002120320125B -:100D80000FC5E52B14603B7527017529087528FFF1 -:100D9000E52A24FDFCE434FFFDEC7C0325E0CD33A3 -:100DA000CDDCF9FCE5292CF529E5283DF528AD2910 -:100DB000AE28AF27E4900006120320E49000021250 -:100DC0000320221231387895ECF6EC249DF8E630B9 -:100DD000E2097895E6FC121514D2007895E6FC122B -:100DE0000F727896760090FC39E030E704789676BA -:100DF000017896E6FD7895E6FC120D38C2033000C6 -:100E0000077895E6FC1214137C001225DF1231BB23 -:100E10002278A9E62404F58218E63400F583E0443C -:100E200001F078A9E62404F58218E63400F583E0A1 -:100E300030E00280ED78A9E6240BF58218E6340054 -:100E4000F583E054F8F078A9E62402F58218E63438 -:100E500000F583E04480F022C2038C58120F7278B0 -:100E6000A6868308868279AF7A357B0A78011203D9 -:100E7000FE120E0EAC587D02120D38C203AC581291 -:100E80001115228D538E528F518C50120F72754F47 -:100E90000078A9E62405F58218E63400F583E02001 -:100EA000E41FE54F24F64019054FC2037C181232A7 -:100EB000FB90FF93E04401F0B2B3AC50120F72808C -:100EC000D078A9E62405F58218E63400F583E02001 -:100ED000E405C2037C022278A9E62405F58218E61F -:100EE0003400F583E0540F601678A9E62405F582F6 -:100EF00018E63400F583E0540FF0C2037C01227839 -:100F0000A88683088682E0AD53AE52AF5112031813 -:100F1000C2037C00228D318C30121514E531600F34 -:100F2000E530B4030A7C0112250E7C8112250EAC3B -:100F300030120F72E531601A78AA8683088682E043 -:100F400054E7F0A3A3A3A3E054E7F0AC307D021272 -:100F50000D3878A6868308868279B97A357B0A7837 -:100F6000011203FEC203E530249DF8E654FDF6AC01 -:100F700030121115228C2630030512329A80F87C2B -:100F80000A1231ADD203E52624FD78A3F670077866 -:100F9000AA76FF0876E078A3E67D007C0425E0CD04 -:100FA00033CDDCF9FC24A078A9F6ED34FF18F678EF -:100FB000A3E675F00AA42400FCE434FCFD78A6ED59 -:100FC000F608ECF61232462278A9E62402F58218D9 -:100FD000E63400F583E030E72278A9E62402F582C2 -:100FE00018E63400F583E0547FF078A9E62402F592 -:100FF0008218E63400F583E04480F02278AA8683E4 -:10100000088682E0547FF0AD83E5822404FCE43D51 -:101010008C82F583E0547FF078A9E6240BF58218E2 -:10102000E63400F583E054F8F078ABE62401F5826D -:1010300018E63400F583E04403F078ABE62405F5C8 -:101040008218E63400F583E04403F078A9E624052D -:10105000F58218E63400F583740FF02278AA8683AF -:10106000088682E0543FF0AD83E5822404FCE43D31 -:101070008C82F583E0543FF078A3E624A4F8E6FCE4 -:1010800078ABE62401F58218E63400F583ECF078BD -:10109000A3E624A4F8E6FC78ABE62405F58218E67E -:1010A0003400F583ECF078A9E6240BF58218E634D9 -:1010B00000F583E054FB4402F52678A7E62402F508 -:1010C0008218E63400F583E030E50343260178A971 -:1010D000E62405F58218E63400F583E030E00312DB -:1010E0000FC5E526FC78A9E6240BF58218E6340046 -:1010F000F583ECF078A9E62405F58218E63400F5CE -:1011000083740FF078AA8683088682E04480F0A377 -:10111000A3A3A3E04480F0228C2A120F7278A7E6E2 -:101120002408F58218E63400F583E0FC78A9E6246B -:101130000AF58218E63400F583ECF078A7E6240778 -:10114000F58218E63400F583E0FC78A9E62409F579 -:101150008218E63400F583ECF078A6868308868250 -:10116000E0FDA3E0FCEDFE78A9E62408F58218E690 -:101170003400F583EEF0ECFE78A9E62407F582183A -:10118000E63400F583EEF08C298D28C3EC9405ED50 -:10119000940C400575277C8033D3E5299401E5281C -:1011A0009403400575273C8023D3E5299481E528E5 -:1011B000940140057527188013D3E5299460E5282C -:1011C0009400400575270C8003752708AF27E4EFCE -:1011D000547C4483FF8F27E527FC78ABE62401F598 -:1011E0008218E63400F583ECF0E527FC78ABE624C2 -:1011F00005F58218E63400F583ECF0E527FC78A3CA -:10120000E624A4F8ECF678A9E62402F58218E63480 -:1012100000F583E0F52778A7E62402F58218E63486 -:1012200000F583A3E030E3175327C778A7E624052A -:10123000F58218E63400F583E09035AA93422778CA -:10124000A7E62402F58218E63400F583E030E705CE -:1012500043274080035327BF5327FB78A7E6240684 -:10126000F58218E63400F583E06003432704532732 -:10127000FC78A7E62404F58218E63400F583E04202 -:1012800027432780E527FC78A9E62402F58218E6A3 -:101290003400F583ECF078A9E62404F58218E634EE -:1012A00000F583E0F52778A7E62402F58218E634F6 -:1012B00000F583A3E030E1055327DF8003432720B7 -:1012C00078A7E62402F58218E63400F583E030E4DE -:1012D000055327EF800343271078A7E62409F582FA -:1012E00018E63400F583E0B40203432702E527FC47 -:1012F00078A9E62404F58218E63400F583ECF0784A -:10130000A9E62403F58218E63400F583E0F5277892 -:10131000A7E62409F58218E63400F583E07005534A -:10132000277F800343278078A7E62402F58218E60A -:101330003400F583A3E030E00543272080035327E2 -:10134000DF78A7E62402F58218E63400F583E03062 -:10135000E30543274080035327BF78A7E62402F51F -:101360008218E63400F583E030E00543271080035F -:101370005327EF78A7E62402F58218E63400F583B8 -:10138000A3E030E40543270880035327F778A7E656 -:101390002402F58218E63400F583A3E030E5054326 -:1013A000270480035327FB78A7E62402F58218E67A -:1013B0003400F583A3E030E605432701800353277B -:1013C000FE78A7E62402F58218E63400F583A3E050 -:1013D00030E70543270280035327FDE527FC78A962 -:1013E000E62403F58218E63400F583ECF0C2037CB2 -:1013F00000228D278C26ED54031460037C1022E517 -:1014000027547C24FC40037C0B22E526249DF8E62F -:101410004402F67C00228C30120F72E530249DF8D5 -:10142000E620E24FAC307D02120D38E53024FE4458 -:1014300028FC78AA8683088682ECF0AF83E58224B4 -:1014400004FEE43FFFEC8E828F83F07C038C2CE55E -:101450002CFC78ABE62401F58218E63400F583EC29 -:10146000F0E52CFC78ABE62405F58218E63400F5AF -:1014700083ECF0752D01752F48752EFFE53024FDA6 -:10148000FCE434FFFDEC7C0325E0CD33CDDCF9FC3E -:10149000E52F2CF52FE52E3DF52E78ABE62404F54F -:1014A0008218E63400F583E054E7F52CAD2FAE2E1C -:1014B000AF2DE4900002120320E4900006120320F6 -:1014C0001201EF30E503432C10E52CFC78ABE62449 -:1014D00004F58218E63400F583ECF012105978A96F -:1014E000E62406F58218E63400F583E0C203FCE545 -:1014F00030249DF8E64404F68C2CE530540FC45497 -:10150000F07E00FFEEEF44047D00FFEC4EFCED4F5B -:10151000FD121CC57C00228C2F120F72120FF9785D -:10152000AA8683088682E05408F0A3A3A3A3E0540C -:1015300008F0AC2F7D02120D38C203E52F249DF870 -:10154000E654FBF67C00221231387896ECF6EC2457 -:101550009DF8E630E10A7D007C131225461231BB6E -:101560007896E6249DF8E64401F67896E6FC120F9C -:10157000727896E624FD75F00AA42414F582E4340A -:10158000FCF58378A6E6FA08E6F97B0A78011203EF -:10159000B078A6868308868279B97A357B0A780185 -:1015A0001203FE120FC5C2037896E6FC12111578DD -:1015B00095ECF6EC600A7D007C081225461231BBE2 -:1015C0007896E6FC120F7278A9E62404F58218E6F4 -:1015D0003400F583E0441054DFFC78A9E62404F5D8 -:1015E0008218E63400F583ECF07895ECF6C2037CC3 -:1015F000C81232FB7896E6FC120F7278A9E6240432 -:10160000F58218E63400F583E054EFF0C2037CC89D -:101610001232FB7896E6FC120F7278A9E62404F5E4 -:101620008218E63400F583E04410F0C2037CC8124F -:1016300032FB7896E6FC120F7278A9E62404F58254 -:1016400018E63400F583E04420F0C2037CF0123247 -:10165000FB7896E6FC120F7278A9E62405F582184D -:10166000E63400F583E030E415C2037896E64410D2 -:101670007F00FE7C0712324D1231BB02173B78A966 -:10168000E62404F58218E63400F583E054CFF0C276 -:10169000037CC81232FB7896E6FC120F7278A9E63A -:1016A0002404F58218E63400F583E04430F0C203E8 -:1016B0007CF01232FB7896E6FC120F7278A9E624D1 -:1016C00005F58218E63400F583E030E414C20378AF -:1016D00096E644107F00FE7C0712324D1231BB802B -:1016E0005D78A9E62404F58218E63400F583E05419 -:1016F000EFF078A9E62404F58218E63400F583E0DB -:1017000054DFF07896E624FD75F00AA42414F582DF -:10171000E434FCF583AC82AD8378A68683088682A8 -:10172000ECF9EDFA7B0A78011203B0C2037896E671 -:10173000FC1211157D007C0B1225461231BB2212C2 -:101740003138E490FC39F07D027C001225461231DC -:10175000BB221231387C001225DF1231BB22743CCF -:1017600090FBE0F0743E90FBE0F0E490FC28F02267 -:101770008D358C34ECB401028003D340028028B450 -:1017800002028003D34008A835E625E0F68018B4AD -:1017900004028003D3400AA835E625E025E0F68060 -:1017A00006A83576008000228C3C8D3BEDFEECFDDA -:1017B0007F0175660675670090FC29120477120197 -:1017C000EFB480028006D3500302186E90FC2912F9 -:1017D00004899000031201F554F0B430028003D361 -:1017E000405F90FC29120489900008120217FAFD4C -:1017F000EBFE7F0190FC2C120477EECD9035C3FCFC -:10180000E493FF740193FEF9EFFA7B01EAFFE9FE2E -:10181000ECC39EED9F40259035C5E493FD74019384 -:10182000FCEDFEECFD7F01EECDFC90FC2EE0D39CA8 -:1018300090FC2DE09D5005756680803312198C80D8 -:101840002EB460028003D3400BAC3CAD3B1207804A -:101850008C66801BB41003B34010C3B42003B340A4 -:1018600009C3B440028003D34000756681800080C4 -:1018700075B481028003D3406B90FC2912048990D7 -:1018800000031201F554F0B430028003D3401D90E0 -:10189000FC29120489900008120217FAFDEBFE7F62 -:1018A0000190FC2F1204771218F68036B460028083 -:1018B00003D34013753A67E4F539F538AC3CAD3BDA -:1018C0001205DC8C66801BB41003B34010C3B42037 -:1018D00003B34009C3B440028003D340007566815E -:1018E000800080028000E566FC90FC29120489ECEF -:1018F000900002120320AC672290FC291204899008 -:1019000000041201F5600474018001E4A2E0920178 -:1019100090FC29120489ED2403FD50010E90FC2C4B -:1019200012047790FC291204899000051201F5F544 -:10193000679000041201F5540FFC7D6712176DE5E6 -:10194000677004756608227566007884760078846E -:10195000E6C39567503890FC2F1204891201EFFC02 -:1019600090FC2C120489EC12031830010E90FC310B -:10197000E004F090FC307003E004F078840690FC02 -:101980002EE004F090FC2D7003E004F080C0229063 -:10199000FC2AE0FDA3E0FCEDFEECFD7F01ED240A56 -:1019A000FD50010E90FC3212047790FC291204893C -:1019B0009000041201F5540FB401028003D34017C4 -:1019C00090FC321204890DED70010E90FC2F120470 -:1019D0007778887601804EB402028003D340199054 -:1019E000FC32120489ED2402FD50010E90FC2F12EE -:1019F000047778887602802DB404028003D34019DE -:101A000090FC32120489ED2404FD50010E90FC2F4D -:101A100012047778887604800CB400028003D340E7 -:101A2000007566082290FC291204899000051201B5 -:101A3000F5F567788576007885E6C39567400302FB -:101A40001AF4788676007886E6C378889650769081 -:101A5000FC2C1204891201EFFC90FC321204921249 -:101A600001E9F45CFC1201E9F890FC2F120489E80A -:101A7000C0E01201EFC8D0E0C8584CFC90FC2C121A -:101A80000489EC1203187887ECF690FC31E004F03E -:101A900090FC307003E004F009E970010A90FC3218 -:101AA00012048090FC291204899000041201F53080 -:101AB000E40E90FC2EE004F090FC2D7003E004F0A6 -:101AC00078860680817888E6FDE4FEFFEECDFC9006 -:101AD000FC31E02CF090FC30E03DF07888E6FDE44D -:101AE000FEFFEECDFC90FC34E02CF090FC33E03DAA -:101AF000F0788506021A347566002222C0E0C0F034 -:101B0000C082C083C0D0E8C0E0E9C0E0EAC0E0EB3A -:101B1000C0E0ECC0E0EDC0E0EEC0E0EFC0E090FF60 -:101B200092E01201C01B47301B47321B56381B681E -:101B30003A1B7A3E1B92441B86461B9E501BE0526A -:101B40001BBF541C015600001C2290FF92E07F0036 -:101B5000FE7C0112324D021C32E4FF04FE7C0312B3 -:101B6000324D742090FFFEF0021C32E4FF04FE7C34 -:101B70000212324D744090FFFEF0021C32E4FF046A -:101B8000FE7C0412324D021C32E4FF04FE7C05127E -:101B9000324D021C32E4FF04FE7C0612324D021C60 -:101BA0003290FFA5E07D0090FBF8CDF0A3CDF09042 -:101BB000FBF9E0FCF58390FBF8E04433FD121CC513 -:101BC000807390FFB5E07D0090FBFACDF0A3CDF0DF -:101BD00090FBFBE0FCF58390FBFAE04443FD121C14 -:101BE000C5805290FFA6E07D0090FBFCCDF0A3CD18 -:101BF000F090FBFDE0FCF58390FBFCE04434FD122B -:101C00001CC5803190FFB6E07D0090FBFECDF0A3B7 -:101C1000CDF090FBFFE0FCF58390FBFEE04444FD3B -:101C2000121CC5801090FF92E07D00FCED44AAFDDF -:101C3000121CC58000E490FF92F0D0E0FFD0E0FEDF -:101C4000D0E0FDD0E0FCD0E0FBD0E0FAD0E0F9D06D -:101C5000E0F8D0D0D083D082D0F0D0E0320581053A -:101C60008105810581A881181818EDF608ECF69019 -:101C7000FF5AE020E70280F790FF59E07D00A8813D -:101C800018CDF6CD08F67D03A881E618FCE6CC2534 -:101C9000E0CC33CCDDF9CCF6CC08F6A88118E644CC -:101CA000F8F6A881181818E6FD08E6FCA881188641 -:101CB00083088682EDF0A3ECF0740290FF5AF015D1 -:101CC0008115811581158122E5812405F581E4A81E -:101CD0008118F6A88118181818EDF608ECF690FB94 -:101CE000F5E024F85003021DE6E4A8811818F6A8D0 -:101CF0008118E6FEA88118181818E6FD08E6FC7F92 -:101D000000EF24F8404DE4EF25E0247DF582E43433 -:101D1000FCF583E0FBA3E06C7003FAEB6D700974D3 -:101D200001A8811818F6802BE4EF25E0247DF582C8 -:101D3000E434FCF5837A00E054F0CCF8CCCDF9CD56 -:101D4000FB7800E954F0F9EA687002EB6970010E63 -:101D50000F80AEA88118EEF6A88118181818EDF6B5 -:101D600008ECF6A881EFF6A8811818E67079A8812A -:101D700018E624F74071A88118181818E6540FA81F -:101D800081F664046017A881E664036010A88118D6 -:101D9000181818E6FD08E6FC121C5A804A7C0A1244 -:101DA00031ADA88118181818E6FD08E6FC90FBF480 -:101DB000E025E0247DF582E434FCF583EDF0A3EC2E -:101DC000F090FBF4E0FFE4EF045407FF90FBF4F025 -:101DD00090FBF5E004F012324690FBF6E07008E468 -:101DE000FEFF7C0F12324D802790FBF7E004F05489 -:101DF0003F701D90FBF7E044FE7D00FC90FBF4E09B -:101E000025E0247DF582E434FCF583EDF0A3ECF0CD -:101E1000E58124FBF58122788B7600788C7600743E -:101E20000190FBF6F012313890FBF5E060577C0A28 -:101E30001231AD90FBF3E025E0247DF582E434FC23 -:101E4000F583E0FDA3E0FC90FBF3E025E0247DF5C5 -:101E500082E434FCF583E4F0A3F090FBF3E0FFE4CC -:101E6000EF045407FF90FBF3F090FBF5E014F078DB -:101E700089EDF608ECF61232467889E6FD08E6FCB4 -:101E80001208E380A312329A90FF93E04401F0B26B -:101E9000B3788B06B60011788B7600788CE6F40464 -:101EA00004A2E092B4788CF6021E25E490FBF6F0D2 -:101EB00090FBF5E07D00FCED44CFFD121C5A123181 -:101EC000BB22123138E5706449456F601590FF837D -:101ED000E0540F7D00D39570ED956F5005122F8162 -:101EE00080031230511231BB22123138E57064493F -:101EF000456F600512308B800E90FF80E04408F043 -:101F000090FF83E0547FF01231BB221231388C54A1 -:101F1000EC54F0B41015756A357569FC756801E507 -:101F20006A2403F56AE5693400F569E4F557F55666 -:101F3000E556C394015027E554540FFCAD6AAE69D1 -:101F4000AF68120E808C55EC60028012056AE56A5B -:101F5000700205690557E5577002055680D2E554B1 -:101F6000540F249DF8E654FEF6E554540F7F00FE0E -:101F70007C1212324DE5551470097D007C09122542 -:101F8000468007AD577C001225461231BB22123124 -:101F90003890FFFCE04402F090FF00E030E713903F -:101FA000FF83E04480F0436D8090FFFCE04401F04B -:101FB000801190FF82E04408F0536D7F90FFFCE0B9 -:101FC00054FEF090FF81E04480F01225F990FFFE6E -:101FD000E04405F090FFFCE054FDF01231BB22120A -:101FE00031387C011232FB78ADE64402F674FEFC17 -:101FF00004FD121CC590FF5AE030E70280F7E4F5BB -:102000004E754D10AC4EAD4DE54E154E7002154D52 -:10201000EC4D600280EE4387011231BB2212313851 -:102020007C021231C778ADE654FDF61231BB2212A4 -:10203000313878ADE630E02C78ADE630E12678AD89 -:10204000E6FCF58318E644F0FD121C5A90FFFCE014 -:102050004420F07C021232FB78ADE654FDF6741A8F -:1020600090FFFEF078ADE6FCF58318E644F1FD1232 -:102070001C5A1231BB22756D0090FFFFE0600343D4 -:102080006D01756E00E4F56CF56BE4F56F757049E4 -:10209000748490FF82F0748490FF80F0748090FFCD -:1020A00058F0748090FF5AF0AD46AF457E00EE24A4 -:1020B000FE5003022142E4EE75F007A4247FF5826E -:1020C000E434F8F583E0FFE4EF5480FDE4EF540FCF -:1020D00014FFED6038E4EF75F008A42448F582E4BD -:1020E00034FFF5837490F0E4EF75F008A4244AF50A -:1020F00082E434FFF5837480F0E4EF75F008A424E3 -:102100004EF582E434FFF5837480F08034E4EF759B -:10211000F008A42408F582E434FFF5837490F0E419 -:10212000EF75F008A4240AF582E434FFF583E4F0A7 -:10213000E4EF75F008A4240EF582E434FFF583E49F -:10214000F00E0220AB8D468E448F45747F90FFFDCC -:10215000F0749090FFFCF0228C58EC24F65006E5C9 -:10216000582437FC22E5582430FC22D2B0122543F3 -:10217000EC700302227E755C03AE5B7F00E55C15AC -:102180005C6480247F5035EF2400F582E434FBF555 -:1021900083E0FE24FE501EEF7D00FCE4FB7474C35C -:1021A0009CFAEB9DFBEE7D00FCEAC39CED6480CBCA -:1021B00064809B50028005EF2EFF80C18E5B8F5A9A -:1021C000E55C6480247F500302227EE55A248E5011 -:1021D0000302227E855A5D755B00AE5AAF5B903577 -:1021E000EEE493F55CE55C155C6480247F5018EEAA -:1021F0002400F582E434FBF583E0FCEF9035EE93A8 -:102200006C70040E0F80DE8E5A8F5BE55C64802458 -:102210007F406E755E017560E8755FFFE55D2402C5 -:10222000F55A755C07E55C334057AD60AE5FAF5E55 -:10223000E55CF5823395E0F5831201F5C4540FFC9B -:10224000122155E55A2400F582E434FBF583ECF0C5 -:10225000055A055AAD60AE5FAF5EE55CF582339519 -:10226000E0F5831201F5540FFC122155E55A2400C4 -:10227000F582E434FBF583ECF0055A055A155C80D1 -:10228000A4740290F851F090F86B79C77A357B27E7 -:1022900078011203FE756A357569FC756801E49072 -:1022A000FF83F0748090FF81F0755902E55975F055 -:1022B00007A4247FF582E434F8F583E0788FF6FCF8 -:1022C000540F14FC788FECF6E55975F007A42481BF -:1022D000F582E434F8F583E0789276FD0876E8FC40 -:1022E000788FE675F008A42448F582E434FFF5837E -:1022F000E4F0788FE675F008A4244FF582E434FF0B -:10230000F583ECF07892E6FF08E67E03CFC313CFA7 -:1023100013DEF9FE788FE675F008A42449F582E40F -:1023200034FFF583EEF0788FE675F008A4244AF5C3 -:1023300082E434FFF5837480F07890ECF67D0078C9 -:1023400093E62CF618E63DF67892E6FD08E67C0367 -:10235000CDC313CD13DCF9FC788FE675F008A42407 -:102360004DF582E434FFF583ECF0788FE675F008E4 -:10237000A4244EF582E434FFF583E4F07892E6FD80 -:1023800008E6FC788FE6FF7E00EE24FE5003022470 -:10239000FDE4EE75F007A4247FF582E434F8F583BC -:1023A000E0FFE4EF5480FAE4EF540F14FFE4EE751D -:1023B000F007A42481F582E434F8F583E07890F600 -:1023C000E4EE1313548024F0F8E434FDF9E8FCE95A -:1023D000FD8A5AEA700302246AE4EF75F008A42427 -:1023E00048F582E434FFF583E4F07890E6FAE4EF10 -:1023F00075F008A4244FF582E434FFF583EAF0ED8C -:10240000FBEC7A03CBC313CB13DAF9FAE4EF75F0E4 -:1024100008A42449F582E434FFF583EAF07890E6D5 -:102420007B00FAEC2AFCED3BFDFBEC7A03CBC313FB -:10243000CB13DAF9FAE4EF75F008A4244DF582E441 -:1024400034FFF583EAF0E4EF75F008A4244AF5823E -:10245000E434FFF5837480F0E4EF75F008A4244EB3 -:10246000F582E434FFF5837480F00224F9E4EF751B -:10247000F008A42408F582E434FFF583E4F07890B2 -:10248000E6FAE4EF75F008A4240FF582E434FFF5D2 -:1024900083EAF0EDFBEC7A03CBC313CB13DAF9FA42 -:1024A000E4EF75F008A42409F582E434FFF583EA2B -:1024B000F07890E67B00FAEC2AFCED3BFDFBEC7A31 -:1024C00003CBC313CB13DAF9FAE4EF75F008A424B5 -:1024D0000DF582E434FFF583EAF0E4EF75F008A42B -:1024E000240AF582E434FFF583E4F0E4EF75F008A4 -:1024F000A4240EF582E434FFF583E4F00E02238673 -:102500008E597892EDF608ECF6788FEFF61220737C -:10251000228C26EC30E718E526540F1475F008A439 -:102520002448F582E434FFF583E054DFF08016E5BB -:1025300026540F1475F008A42408F582E434FFF53E -:1025400083E054DFF0227C0022EC90FC37F08C24F6 -:10255000ED2403F5257D00D39572ED95714003853B -:102560007225E52524B75009752503740290FC37C0 -:10257000F0AC2512307622E4F56CF56B12257D2245 -:1025800090FC35E06573600E740490FC37F0E4F560 -:102590006B756C0380467D73E4FEFF79357AFC7BB6 -:1025A0000174057800120348E56C2403F56CE56BB3 -:1025B0003400F56BE56CD39572E56B95714006853B -:1025C000726C85716BD3E56C9448E56B9400400C9C -:1025D000740290FC37F0E4F56B756C03AC6C123050 -:1025E0007622EC90FC37F0E4F56CF56B8C32EC6005 -:1025F0000512306780057C001230762290FF93E050 -:102600004401F0B2B390FF04E0F54A90FF06E0FD0C -:10261000A3E0ED7D00FC7D00FC90FF06E0FFA3E061 -:102620007E00FFE4FEEC4EFCED4FFDC3EC9448ED64 -:102630009400502290FF06E0FDA3E0ED7D00FC7DBC -:1026400000FC90FF06E0FFA3E07E00FFE4FEEC4EFE -:10265000FCED4FFD8004E4FD7C488C728D7190FF91 -:1026600002E0FDA3E0ED7D00FC7D00FC90FF02E0B8 -:10267000FFA3E07E00FFE4FEEC4EF54CED4FF54B82 -:10268000756A357569FC7568017D357EFC7F017959 -:1026900073E4FAFB74057800120348754900E549B4 -:1026A00024FE4019AD6AAE69AF68E412031805490B -:1026B0000DED70010E8D6A8E698F6880E1756A3547 -:1026C0007569FC75680190FF00E05460B4000280F9 -:1026D00006D35003022CBFE54A540FF549E54A548E -:1026E00080A2E0920290FF01E012018A000B2CBA56 -:1026F000270528232CBA292F2CBA2A122A462BADBB -:102700002BB02BF02C632C91E56D30E70EE54C459A -:102710004B7008E572640245716003022CBC90FFA7 -:1027200000E0541FB400028003D34029E54A60034F -:10273000022820AD6AAE69AF68740112031878AD43 -:10274000E630E00BAD6AAE69AF6874021203187C24 -:102750000212307622B401028003D3401BE56D20C3 -:10276000E107E54A6003022820E54A24FE500302FF -:1027700028207C0212307622B402028006D3500355 -:1027800002281EE56D20E10DE54A6009E54A6480F6 -:102790006003022820AC4A1230FD4003022820E5E5 -:1027A00049702530021190FF80E05408AD6AAE698F -:1027B000AF68120318800F90FF82E05408AD6AAE34 -:1027C00069AF68120318803D154930021DE549754F -:1027D000F008A42448F582E434FFF583E05408AD02 -:1027E0006AAE69AF68120318801BE54975F008A44A -:1027F0002408F582E434FFF583E05408AD6AAE693D -:10280000AF68120318AD6AAE69AF681201EF600BD2 -:10281000AD6AAE69AF6874011203187C021230769B -:10282000228000022CBCE56D20E706E57245716050 -:1028300003022CBC90FF00E0541FB400028003D3BD -:10284000401AE54C14454B7004E54A600302292CFC -:1028500078ADE654FEF67C0012307622B401028098 -:1028600003D3402AE56D20E108E56D20E00302294D -:102870002CE56D30E004E54A700BE56D30E109E5CB -:102880004A24FE500302292C7C0012307622B40226 -:10289000028006D3500302292AE54C454B6003020F -:1028A000292CAC4A1230FD400302292CE56D20E1B1 -:1028B00007E56D20E0028077E56D30E006E54960D0 -:1028C00002806CE549700F90FF82E054F7F090FFB2 -:1028D00080E054F7F022E549B401028003D34009B7 -:1028E0007D017C03120F128011B402028003D340D9 -:1028F000097D017C04120F1280001549300215E594 -:102900004975F008A42448F582E434FFF583E054C7 -:10291000F7F08013E54975F008A42408F582E43443 -:10292000FFF583E054F7F07C00123076228000023D -:102930002CBCE56D20E706E57245716003022CBCF6 -:1029400090FF00E0541FB400028003D3401AE54C0E -:1029500014454B7004E54A6003022A0F78ADE64443 -:1029600001F67C0012307622B401028003D34029A4 -:10297000E56D20E108E56D20E003022A0FE56D30EA -:10298000E004E549700BE56D30E108E54924FE50AF -:1029900002807F7C0012307622B402028003D34092 -:1029A0006FE54C454B60028069AC4A1230FD400235 -:1029B0008060E56D20E107E56D20E0028054E54987 -:1029C000701430020990FF80E04408F0800790FF07 -:1029D00082E04408F022E56D30E1331549300215FC -:1029E000E54975F008A42448F582E434FFF583E056 -:1029F0004408F08013E54975F008A42408F582E442 -:102A000034FFF583E04408F07C0012307622800227 -:102A10008000022CBCE56D20E712E5724571700C58 -:102A2000E54A700890FF00E0541F6003022CBCE5EB -:102A30004C90FFFFF090FFFFE06005436D018003C5 -:102A4000536DFE7C0012307622E56D30E70EE572A4 -:102A50004571600890FF00E0541F6003022CBCAD7C -:102A60004BE54CED7D00FC7D00FCBD0002800302C7 -:102A70002BA8B401028003D34032E54A7005E54C2F -:102A8000FC6003022BAA756A407569F8756801D36A -:102A9000E5729412E57194004006E4FD7C12800416 -:102AA000AC72AD718C708D6F12308B22B4020280CB -:102AB00003D34059E54A6003022BAAE54CFC70277A -:102AC000756A527569F8756801D3E5729419E571F4 -:102AD00094004006E4FD7C198004AC72AD718C70EA -:102AE0008D6F12308B8025756A6B7569F87568017A -:102AF000D3E5729427E57194004006E4FD7C2780BD -:102B000004AC72AD718C708D6F12308B22B40302E5 -:102B10008006D35003022BA8E54CF549700F90FFB7 -:102B200004E0FDA3E04D6003022BAA801890FB0295 -:102B3000E0FDA3E0FC90FF05E06C700790FF04E06F -:102B40006D60028068E4F570F56F7F00E54914C59B -:102B500049600FEF2400F582E434FBF583E02FFF9A -:102B600080EA8F4AE54A2400F582E434FBF583E0ED -:102B70007D00D39572ED95714006AC72AD71800FFA -:102B8000E54A2400F582E434FBF583E07D00FC8C0B -:102B9000708D6FE54A2400FCE434FBFDFEECFD7F04 -:102BA000018D6A8E698F6812308B228000022CBCE6 -:102BB000022CBCE56D30E719E5721445717012E521 -:102BC0004A700EE54C454B700890FF00E0541F60C2 -:102BD00003022CBCE56D20E008E56D20E103022C2A -:102BE000BC756A6EE4F569F568E4F56F04F570127A -:102BF000308B22E56D20E727E57245717021E54AAB -:102C0000701DE54C6402454B600DE54C14454B606E -:102C100006E54C454B700890FF00E0541F6003022E -:102C20002CBCE56D20E008E56D20E103022CBC859D -:102C30004C6EE56E700A436D01536DFDD2B080207D -:102C4000E56E64026007E56E1460028072536DFEEB -:102C5000436D02E56E64026005E56E147002C2B059 -:102C60007C0012307622E56D30E71AE5721445716A -:102C70007013E54A700FE54C454B700990FF00E07A -:102C8000541F1460028038E56D20E10280317C0120 -:102C900012307622E56D20E715E5724571700FE57B -:102CA0004C454B700990FF00E0541F146002800FE8 -:102CB000E56D20E10280087C00123076228000025F -:102CC0002F7DB440028006D35003022F7390FF0182 -:102CD000E090FC35F0E54A90FC36F0E490FC37F0EB -:102CE000E56A2403F56AE5693400F569AD4BE54C06 -:102CF000856A82856983CDF0A3CDF090FF01E01253 -:102D000001C02D2A012D50022D7A032DA4042DF28D -:102D1000052E2F062E55072E7B082EA7092ECD0B2C -:102D20002EF30C2F02802F028100002F60E56D2012 -:102D3000E7067C051225DF227D767E357F02793815 -:102D40007AFC7B01740878001203487D087C00122D -:102D5000254622E56D20E7067C051225DF22E54A9F -:102D6000B403004010B40500500BE54A7F00FE7C20 -:102D70001012324D227D007C0712254622E56D207F -:102D8000E7067C051225DF22E54AB403004010B4B3 -:102D90000500500BE54A7F00FE7C1112324D227D6A -:102DA000007C0712254622E56D20E7067C051225EA -:102DB000DF22E54AB405028003D3400AE4FF04FEA3 -:102DC0007C0A12324D22B401028003D3400AE4FF90 -:102DD00004FE7C0812324D22B403004010B40500FA -:102DE000500BE54A7F00FE7C1312324D227D007CA1 -:102DF0000712254622E56D20E734D3E5729448E5B5 -:102E00007194005006E572457170067C021225DF50 -:102E100022E54AB40103B3400BC3B403004009B434 -:102E200006005004123123227C071225DF221225CE -:102E30007D22E56D20E71DE54AB403004010B4058E -:102E400000500BE54A7F00FE7C1612324D227C07B3 -:102E50001225DF2212257D22E56D20E71DE54AB40B -:102E600003004010B40500500BE54A7F00FE7C19BA -:102E700012324D227C071225DF2212257D22E56DBC -:102E800020E723748190FF93F0E54AB403004010DB -:102E9000B40500500BE54A7F00FE7C1712324D222C -:102EA0007C071225DF2212257D22E56D20E71DE536 -:102EB0004AB403004010B40500500BE54A7F00FE01 -:102EC0007C1812324D227C071225DF2212257D222A -:102ED000E56D20E71DE54AB403004010B40500503D -:102EE0000BE54A7F00FE7C1512324D227C0712252D -:102EF000DF2212257D22E56D20E7067C071225DF03 -:102F00002212257D22E56D30E72090FF00E0541F5E -:102F1000701090FF01E0B480051225748003122523 -:102F20007D227D007C051225462290FF00E0541F83 -:102F300060067C051225DF22D3E5729448E5719482 -:102F400000500BC3E5729407E571940050067C03B2 -:102F50001225DF22E54AB40504123123227C071230 -:102F600025DF22E56D30E7087D007C05122546222D -:102F70007C051225DF22B420028003D340008000AC -:102F80001230512275430090FF83E0540FD39543D4 -:102F90004024E54324F0F582E434FEF583E0AD6A95 -:102FA000AE69AF6812031805430DED70010E8D6A0E -:102FB0008E698F6880D1E5437D00FCC3E5709CF588 -:102FC00070E56F9DF56FE570456F6006E490FF83D7 -:102FD000F02290FF82E04408F0E4F56F75704990AC -:102FE000FC35E0B405028003D3404090FC36E0F5A8 -:102FF00043B405028003D3400AE4FF04FE7C0B12B5 -:10300000324D22B401028003D3400AE4FF04FE7C67 -:103010000912324D22B403004010B40500500BE5F4 -:10302000437F00FE7C1412324D2222B480004023E4 -:10303000B48200501E7C357DFC1217A57D008C6C7F -:103040008D6B90FC37E0600512305180057C0012DA -:103050003076222290FF83E0547FF090FF82E0449C -:1030600008F090FF80E04408F02290FF82E04408DE -:10307000F090FF80E04408F0228C237D008C708D5E -:103080006F756A357569FC75680112308B2290FF87 -:1030900083E0547FF0E5706449456F700122C3E519 -:1030A000709408E56F94004015752108E5217D00B6 -:1030B000FCC3E5709CF570E56F9DF56F8009857028 -:1030C00021E4F56F757049752200E522C395215002 -:1030D00026AD6AAE69AF681201EFFCE52224F8F56F -:1030E00082E434FEF583ECF005220DED70010E8DC7 -:1030F0006A8E698F6880D3E521547F90FF81F0222A -:103100008C487F00EF24FD4019E4EF75F007A424FC -:103110007FF582E434F8F583E065487002D3220F2E -:1031200080E28F47C32285727085716F90FF82E0C5 -:1031300054F7F090FF83E0547FF022C000C001C03C -:1031400002C006C007E5782408F8860653067F7C8F -:10315000FF1231AD7C007D00E57B6046FF90FD9560 -:10316000E0547F6E700FC083C082A3E0FDA3E0FC3B -:10317000A3157B8007A3A3A3DFE68026DF06D0820A -:10318000D083801EE0F8A3E0F9A3E0FAD082D083D8 -:10319000E8F0A3E9F0A3EAF0A3C083C082A3A3A34D -:1031A00080DA123246D007D006D002D001D00022F9 -:1031B00085A87A75A888EC70027C3F8C7922E57826 -:1031C0002408F8760012329A80FBC000C001C002C9 -:1031D000C006C007AE047CFF1231ADE57B6042FF44 -:1031E00090FD95E0547F6E700BC083C082A3A3A3B3 -:1031F000157B8007A3A3A3DFEA8026DF06D082D059 -:103200008380D8E0F8A3E0F9A3E0FAD082D083E885 -:10321000F0A3E9F0A3EAF0A3C083C082A3A3A38034 -:10322000DA7808087918097C01E6547F6E70067612 -:10323000007700800608090CBC08EE123246D00761 -:10324000D006D002D001D00022757900857AA8225C -:10325000C0F0C082C083C3E57B24E8500512329AD7 -:1032600080F4EC6031903575E493C39C4028C00431 -:103270007CFF1231ADD004430480E57B75F003A4DC -:103280002495F582E434FDF583ECF0EFA3F0EEA392 -:10329000F0057B123246D083D082D0F022C0047C6D -:1032A00020D28CD28DD504FDD0042275A80075885B -:1032B0000075B80075F00075D000E4F8900000F6D5 -:1032C00008B800FB020000C3ED940250047D037CAB -:1032D000E8ECF4FCEDF4FD0CBC00010D8C7F8D7E60 -:1032E00022C3EC94BCED940250047D077CD0ECF436 -:1032F000FCEDF4FD0CBC00010D8C7D8D7C22EC708E -:103300000122C000E5782418F8A604E5782408F81E -:10331000C6547FF6E630E703D0002212329A80F4DA -:10332000C28C857C8C857D8AD28CC0E0C0D0C0F0F8 -:10333000C082C083C000C001C002C003C004C00579 -:10334000C006C007121AF8E5782408F8E66024E5FC -:10335000782410F8A681E57875F021A4248DF582F3 -:10336000E434FCF58378AEE58104C398F9E6F0080F -:10337000A3D9FA74082578F8057808E65480700C0B -:10338000E578B407F3780875780080EFE5782410C5 -:10339000F88681E57875F021A4248DF582E434FC6B -:1033A000F58378AEE58104C398F9E0F608A3D9FA6D -:1033B000D007D006D005D004D003D002D001D00071 -:1033C000D083D082D0F0D0D0D0E032C0E0C0D0C026 -:1033D00000C001C002C28E857E8D857F8BD28E7823 -:1033E0001979097A07E77004A600800BE6600816D1 -:1033F000E67004E74480F70809DAEAE57960131417 -:10340000F579700EE5782408F87600123246D28CF1 -:10341000D28DD002D001D000D0D0D0E0327581ADB5 -:10342000742A90FF93F0757F30757EF8757D607516 -:103430007CF012053F1234CE12175B90FF93E044EC -:1034400001F0B2B31234F81232A880DA22C0007C44 -:1034500001EC2408F8E660090CBC08F512329A80E9 -:10346000EED00022C0F0C082C083C000C006C007FA -:10347000ED2410F876BCED75F021A4248DF582E4DE -:1034800034FCF583C082C083A3A3E4780DF0A3D8F5 -:10349000FCEC547F75F002A42441F582E5F034354C -:1034A000F583E493FE740193F5828E83E493FE74B6 -:1034B0000193FFD083D082EFF0A3EEF0ED2408F863 -:1034C000EC4480F6D007D006D000D083D082D0F074 -:1034D00022757800757B007A08791878087600776D -:1034E000000809DAF8E478087480447FF67401442F -:1034F00010F58975B808D2ABD2A9227581ADD28EEC -:10350000D28CD2AFE57B6032FF90FD95E0548060B5 -:103510002478087908E0547FFA7B00E6547FB502EE -:10352000027BFF08D9F5EB700CEAF012344AAD04C7 -:10353000AC02123461A3A3A3DFD212329A80C57CFD -:10354000017D002204FE04F204F604EA04E604E22B -:1035500004EE04FA04A604AA04D604DA04A204A21F -:1035600004A204DE04BE04B604BA04B204CA04C64B -:1035700004C204CE04D204AE1901030022004802A2 -:1035800000480E301420C81AD0180A0C0506020391 -:1035900001020001CE0181010000C0008000600036 -:1035A0003000180010000800040002000100081894 -:1035B00028380C05100A0200000000000301100A60 -:1035C000020000000000FBE0FBF2090227000102FC -:1035D00000A0FA0904000003FF00000007058102B3 -:1035E00040000007050102400000070583030200B8 -:1035F00001220354005500530042003300340031CF -:1036000000300020002000200020002000200020AA -:073610000020000000000093 -:00000001FF diff --git a/firmware/myricom/lanai.bin.ihex b/firmware/myricom/lanai.bin.ihex deleted file mode 100644 index bf47f4c74940..000000000000 --- a/firmware/myricom/lanai.bin.ihex +++ /dev/null @@ -1,4771 +0,0 @@ -:100000004FF8F20EFE00C290000007880008E001E1 -:10001000014C9793FFFCE000001400000001000079 -:1000200000009293FFFC02900008F7062A6C9713D9 -:10003000FFFCF7062C109713FFFC07880008E00070 -:1000400015489793FFFCF702053C9713FFFCF70256 -:1000500000039713FFFCF70629E09713FFFC0788BE -:100060000008E000161C9793FFFCF7062B849713FB -:10007000FFFCF7062C1C9713FFFC07880008E00024 -:1000800015489793FFFCF7020ABC9713FFFCF70291 -:1000900000029713FFFCF7062AF89713FFFC078866 -:1000A0000008E000161C9793FFFC8796FFFC8296E1 -:1000B000FFF802140000013C0000000000019293D0 -:1000C000FFFC02900008F7044A9C85160000203AC5 -:1000D0000001EE00010100000001F70475EC0000D2 -:1000E0000001203A0000E600010000000001F704D2 -:1000F00075F000000001203A0000E600012D00002C -:100100000001F7042D38F6862C2806380001F60584 -:100110002D3877390002F482001220320044E600C4 -:1001200001E0B4BA6802E00001E0F0052D38F70400 -:100130003B64F5844F54F7057A10202E0000E6004A -:100140000199972A002095AA001CF6064A9826AC29 -:10015000000177350001C738680077390002073899 -:10016000000CA4BA60020000000194AA0010C73875 -:100170006000873A000400000001972A0014F70489 -:100180004A9C0000000127380001C02E7200D700F1 -:100190000A01E00001D0F7057A1895AA001CF606BE -:1001A0004A9806AC000177350001C73868007739F6 -:1001B00000020738000CA4BA60020000000194AAF3 -:1001C0000010C7386000873A0004F0057A18972AB3 -:1001D0000014F50579D807880008E00001F497932A -:1001E000FFFC8796FFFC8296FFF802140004013C96 -:1001F0000000000000019293FFFC02900008221012 -:100200000038F7047A10F6843B6400000001C03A1D -:100210006A00470C0001D7000A70203A0000E6008F -:10022000024C00000001F70475EC00000001203AC8 -:100230000000E600024C00000001F70475F0000029 -:100240000001203A0000E6000285F4820000F70475 -:100250002D38F6862C2806380001F6052D3877391A -:100260000002F302001220320044E6000274B33AA6 -:100270006802F0052D38F3062A6CF3052C10E00017 -:100280000528F0057A18F38479D8F6844AA0231457 -:1002900000209316FFC4841E00109696FFD4F70426 -:1002A0004A9C9416FFE0851E0014C0367200EC00D4 -:1002B000036C9516FFE477350001C738680077397D -:1002C0000002F3064A98C6B8300006B4000CC58494 -:1002D00000008736000000000001C03A4200E6003E -:1002E00002FCC62400008736000400000001C03A6A -:1002F0005200E600030020320000F6020001203226 -:100300000000E600030D00000001F58200008636C3 -:1003100000008716FFE000000001C0327200E2001A -:100320000348F5020000C0327200E6000350202AA4 -:10033000000086B600048716FFE400000001C03606 -:100340007200E2000351202A0000F5020001202A79 -:100350000000E6000361202E0000F5820001202E3F -:100360000000E600037020260000F4820001202631 -:100370000000E60003A5F60200018716FFD4F3068D -:100380004A9876B90001C6B4700076B50002C6B4CA -:10039000300006B4001486B600009716FFD8E000BF -:1003A00004189696FFDC2714002C9713FFFC831685 -:1003B000FFC4000000019313FFFCF3064A98931357 -:1003C000FFFC9396FFCC07880008E001256897930F -:1003D000FFFC8396FFCC20220000E6000415F60205 -:1003E00000018716FFD4F3064A9876B90001C6B417 -:1003F000700076B50002C6B4300006B4001486B6AC -:1004000000009716FFD89696FFDCF7054AA0E0009B -:10041000041C20320000F602000020320000E6003A -:10042000042CF4820001E0000484F482000086962B -:10043000FFD80000000177350002C738680077391F -:100440000002F68642C8A63A6802C73868007539C5 -:10045000001E7528FFE505B8000286AE00000738CB -:1004600000049716FFECC63057C07630FFF09616A2 -:10047000FFF475AD001E75ACFFE5C6B45FC076B481 -:10048000FFF09696FFF020260000E6000525F30613 -:1004900029E08696FFF0F5820000C7346800C49C0E -:1004A0007200C02E6A00EC0004F0C5240000C62CC7 -:1004B00000008716FFEC00000001A6B2700205AC38 -:1004C0000001C73070007739001E7738FFE5C6B4E9 -:1004D00077C076B4FFF0F6AB280005280002871637 -:1004E000FFF000000001C02E7200EC0004B10630E5 -:1004F0000002F3020003F30576F48716FFF0869EF0 -:100500000004C7387000C7384800C6B470008716AA -:10051000FFF406B400209702FF6C9482FF5096828D -:10052000FF58F30629E0F3052C108796FFFC82960E -:10053000FFF802140000013C00000000000192934B -:10054000FFFC02900008F7047A1800000001203A2E -:100550000000E60005CD00000001F7047A10F684E3 -:100560003B6400000001C03A6A00470C0001203AD9 -:100570000000E60005CDF5864A98F60479D8F684A1 -:100580004F540000000196B2001C06B400017735FC -:100590000001C7386800773900020738000CA53A17 -:1005A00058020000000195320010C7385800873A01 -:1005B0000004F0057A189732001407880008E0005C -:1005C00001F49793FFFCE00005FC00000001F70434 -:1005D0002D38F6862C2806380001F6052D38773997 -:1005E0000002F502001220320044E60005F4B53A9C -:1005F0006802F0052D38F5062A6CF5052C10879653 -:10060000FFFC8296FFF802140000013C000000008D -:1006100000019293FFFC0290000885960000F70409 -:1006200075EC852E0020203A0000E60006CCF5058A -:100630007A08F70475F000000001203A0000E60097 -:1006400006CC00000001F7047A08F6843B64000041 -:100650000001C03A6A00470C0001D7000A70203A36 -:100660000000E60006CC00000001872E001CF68486 -:100670004F54F7057A00C7347200203A0000EE00AC -:10068000068DF5020001E0000690F50579F8F08589 -:1006900079F8F6847A00C7387000C6B47000F704A1 -:1006A00079F8F68579E8C7387000C6347000F70429 -:1006B0004A9C00000001C0367200EC0006CCF60532 -:1006C00079F020360000EC0006F800000001F70485 -:1006D0002D38F6862C2806380001F6052D38773996 -:1006E0000002F502001320320044E6000738B53A54 -:1006F0006802E0000738F0052D38F7044A9C000036 -:100700000001C0327200EE00071900000001F7047A -:100710004A9CE0000728F70579F020320000EC0041 -:10072000072800000001F08579F0F58579E0078859 -:100730000008E000074C9793FFFC8796FFFC829629 -:10074000FFF802140004013C000000000001929335 -:10075000FFFC0290000822100038F70475EC00003E -:100760000001203A0000E60007A400000001F704A1 -:1007700075F000000001203A0000E60007A4000028 -:100780000001F7047A08F6843B6400000001C03AD7 -:100790006A00470C0001D7000A70203A0000E6000A -:1007A00007D5F4020000F7042D38F6862C28063809 -:1007B0000001F6052D3877390002F30200132032CC -:1007C0000044E60007CCB33A6802F0052D38E0009B -:1007D0000AA4F3062B84F68479E8F6064A9877355E -:1007E0000001C738680077390002F68479E00738DD -:1007F000000CA33A6002C3B4000093360010C7385F -:100800006000873A0004231400209316FFC4973633 -:100810000014849E0010F6844AA09496FFE09696F9 -:10082000FFD4851E0014F7044A9C00000001C03666 -:100830007200EC0008EC9516FFE477350001C7382C -:10084000680077390002C6B8600006B4000CC584A1 -:1008500000008736000000000001C03A4A00E600B0 -:10086000087CC62000008736000400000001C03A62 -:100870005200E600088020320000F602000120321B -:100880000000E600088D00000001F58200008636B9 -:1008900000008716FFE000000001C0327200E20095 -:1008A00008C8F5020000C0327200E60008D0202A15 -:1008B000000086B600048716FFE400000001C03681 -:1008C0007200E20008D1202A0000F5020001202A6F -:1008D0000000E60008E1202E0000F5820001202E35 -:1008E0000000E60008F020220000F40200012022AF -:1008F0000000E6000925F60200018716FFD4F30682 -:100900004A9876B90001C6B4700076B50002C6B444 -:10091000300006B4001486B600009716FFD8E00039 -:1009200009989696FFDC2714002C9713FFFC83167A -:10093000FFC4000000019313FFFCF3064A989313D1 -:10094000FFFC9396FFCC07880008E0012568979389 -:10095000FFFC8396FFCC20220000E6000995F602FA -:1009600000018716FFD4F3064A9876B90001C6B491 -:10097000700076B50002C6B4300006B4001486B626 -:1009800000009716FFD89696FFDCF7054AA0E00016 -:10099000099C20320000F602000020320000E60030 -:1009A00009ACF4820001E0000A04F482000086969B -:1009B000FFD80000000177350002C738680077399A -:1009C0000002F68642C8A63A6802C7386800753940 -:1009D000001E7528FFE505B8000286AE0000073846 -:1009E00000049716FFECC63057C07630FFF096161D -:1009F000FFF475AD001E75ACFFE5C6B45FC076B4FC -:100A0000FFF09696FFF020260000E6000AA5F30608 -:100A10002AF88696FFF0F5820000C7346800C49C6F -:100A20007200C02E6A00EC000A70C5240000C62CBB -:100A300000008716FFEC00000001A6B2700205ACB2 -:100A40000001C73070007739001E7738FFE5C6B463 -:100A500077C076B4FFF0F6AB2800052800028716B1 -:100A6000FFF000000001C02E7200EC000A310630D9 -:100A70000002F3020002F30576F48716FFF0869E6B -:100A80000004C7387000C7384800C6B47000871625 -:100A9000FFF406B400209702FF6C9482FF50968208 -:100AA000FF58F3062AF8F3052C1C8796FFFC829664 -:100AB000FFF802140000013C0000000000019293C6 -:100AC000FFFC02900008F68479E8F70479F800004A -:100AD0000001C6B47000F7047A20F68579E807387B -:100AE0000001F7057A20F70479F0F6047A20C03681 -:100AF0007200E6000B2CF6862C28F7042D38000037 -:100B0000000106380001F6052D3877390002F5821C -:100B1000001320320044E6000B20B5BA6802F0054D -:100B20002D38F5862B84E0000B38F5852C1C0788C2 -:100B30000008E000074C9793FFFC8796FFFC829625 -:100B4000FFF802140000013C000000000001929335 -:100B5000FFFC02900008F7062C109713FFFCF70625 -:100B600029E09713FFFC07880008E00014F497932E -:100B7000FFFCF7062C109713FFFCF7062A6C97135F -:100B8000FFFC07880008E00014F49793FFFCF706C9 -:100B90002C1C9713FFFCF7062AF89713FFFC078815 -:100BA0000008E00014F49793FFFCF7062C1C971341 -:100BB000FFFCF7062B849713FFFC07880008E00072 -:100BC00014F49793FFFC8796FFFC8296FFF80214BB -:100BD0000000013C0000000000019293FFFC029025 -:100BE0000008F0052D38F0052D3C8796FFFC829615 -:100BF000FFF802140000013C000000000001929385 -:100C0000FFFC0290000822100018FF852EDCF7067A -:100C10000C3EC77C7400203A0000E60014299716A9 -:100C2000FFF44738FFFBF6846F50CFB8000083967F -:100C3000FFF4F702003FC39C6D80C71C7400203A8C -:100C4000003FE20012609396FFF477390002F682CB -:100C50000C5CA6B6700200000001C1340000000068 -:100C600012600000126000000D6800000D680000B6 -:100C70000D5C00000D5C00000D6800000D680000B8 -:100C80001250000012500000123C0000123C000004 -:100C90000DE000000DE00000123C0000123C0000DE -:100CA0000DE800000DF400000E0000000E20000012 -:100CB0000E4000000E6000000E8000000EA000003C -:100CC0000EC000000EC800000ED000001228000068 -:100CD0000ED800000EF400000F10000012280000D3 -:100CE0000F1800000F1800000F2400000F24000050 -:100CF0000F4400000F4400000F6400000F64000068 -:100D00000F8400000F8400000F8C00000F8C000087 -:100D10000F9400000F9400000FB000000FB000000F -:100D20000FB800000FD800000FF80000102C0000D2 -:100D3000106000001094000010C8000010FC0000BB -:100D400011300000114C0000116800001214000066 -:100D50001184000011B4000011E400001214F382A9 -:100D60000006E00012549393FFFCF60200052032C7 -:100D70000014E6000DB527000010203A0001E20043 -:100D80000DB5F7062DCCF6842ECC0000000175B50C -:100D90000002B62E700206B40001F6852ECC860243 -:100DA000FF34F7062E4C2036001FE2000DB5B62E9C -:100DB0007002F0052ECCF7042D5800000001873A90 -:100DC000000000000001873A0018000000010788B9 -:100DD0000008C13800009793FFFCE000126000009B -:100DE0000001E0001240F3820006F382000BE000F5 -:100DF00012549393FFFCF3820007E0001254939384 -:100E0000FFFCF382000B9393FFFC07880008E000CF -:100E100015849793FFFCF3820005E000125493932E -:100E2000FFFCF38200079393FFFC07880008E000B3 -:100E300015849793FFFCF3820005E000125493930E -:100E4000FFFCF382000B9393FFFC07880008E0008F -:100E500015849793FFFCF3820006E00012549393ED -:100E6000FFFCF38200079393FFFC07880008E00073 -:100E700015849793FFFCF3820006E00012549393CD -:100E8000FFFCF382000B9393FFFC07880008E0004F -:100E900015849793FFFCF3820005E00012549393AE -:100EA000FFFCF38200079393FFFC07880008E00033 -:100EB00015849793FFFCF3820005E000125493938E -:100EC000FFFCE0001240F382000BE0001240F382CE -:100ED0000007E000122CF382000BF382000B9393C7 -:100EE000FFFC07880008E00015849793FFFCE000F2 -:100EF0001240F3820006F38200079393FFFC0788F9 -:100F00000008E00015849793FFFCE0001240F38294 -:100F10000006E000122CF382000BF3820014E000C4 -:100F200012549393FFFCF38200149393FFFC078801 -:100F30000008E00015849793FFFCF3820005E000B1 -:100F400012549393FFFCF38200149393FFFC0788E1 -:100F50000008E00015849793FFFCF3820006E00090 -:100F600012549393FFFCF38200149393FFFC0788C1 -:100F70000008E00015849793FFFCF3820005E00071 -:100F800012549393FFFCE0001240F3820014E0003F -:100F9000122CF3820014F38200149393FFFC078851 -:100FA0000008E00015849793FFFCE0001240F382F4 -:100FB0000006E000122CF3820014F38200149393D5 -:100FC000FFFC07880008E00015849793FFFCF3827C -:100FD000000BE00012549393FFFCF38200149393F0 -:100FE000FFFC07880008E00015849793FFFCF3825C -:100FF0000007E00012549393FFFCF38200149393D4 -:10100000FFFC07880008E00015849793FFFCF3823B -:10101000000B9393FFFC07880008E000158497936A -:10102000FFFCF3820005E00012549393FFFCF3826F -:1010300000149393FFFC07880008E0001584979341 -:10104000FFFCF38200079393FFFC07880008E00091 -:1010500015849793FFFCF3820005E00012549393EC -:10106000FFFCF38200149393FFFC07880008E00064 -:1010700015849793FFFCF382000B9393FFFC078882 -:101080000008E00015849793FFFCF3820006E0005F -:1010900012549393FFFCF38200149393FFFC078890 -:1010A0000008E00015849793FFFCF38200079393F8 -:1010B000FFFC07880008E00015849793FFFCF3828B -:1010C0000006E00012549393FFFCF3820014939304 -:1010D000FFFC07880008E00015849793FFFCF3826B -:1010E000000B9393FFFC07880008E000158497939A -:1010F000FFFCF3820005E00012549393FFFCF3829F -:1011000000149393FFFC07880008E0001584979370 -:10111000FFFCF38200079393FFFC07880008E000C0 -:1011200015849793FFFCF3820005E000125493931B -:10113000FFFCF38200149393FFFC07880008E00093 -:1011400015849793FFFCE0001240F382000BF382BA -:1011500000149393FFFC07880008E0001584979320 -:10116000FFFCE0001240F3820007F3820014939327 -:10117000FFFC07880008E00015849793FFFCE0005F -:10118000122CF382000BF38200149393FFFC078868 -:101190000008E00015849793FFFCF382000B939303 -:1011A000FFFC07880008E00015849793FFFCE0002F -:1011B0001240F3820006F38200149393FFFC078829 -:1011C0000008E00015849793FFFCF38200079393D7 -:1011D000FFFC07880008E00015849793FFFCE000FF -:1011E0001240F3820006F38200149393FFFC0788F9 -:1011F0000008E00015849793FFFCE000122CF382B6 -:10120000000BF7043528F682000107380008E000DB -:1012100013CCF7053544F38200149393FFFC078841 -:101220000008E00015849793FFFCF3820007939376 -:10123000FFFC07880008E00015849793FFFCF38209 -:1012400000059393FFFC07880008E000158497933E -:10125000FFFC9013FFFC07880008E00015849793BB -:10126000FFFC8396FFF400000001779C0014703EA1 -:10127000FFE1E600129DF7060400F7046F5C000032 -:10128000000107380001F7056F5CF7046F5CE000B0 -:101290000000000000018396FFF4F7060400C01E62 -:1012A0007400E600142900000001F7042ED0F68433 -:1012B00035240738000120360000E6001405F70544 -:1012C0002ED0F704E01400000001203A0000E600F0 -:1012D0001405F6820000F685E014F7042ED8C53414 -:1012E000000007380001F7052ED8202A0002EE0082 -:1012F00013CCF6820000F684352800000001873602 -:10130000000000000001203A0002E60013A005B42E -:1013100000089593FFFC9516FFE89596FFE49696D6 -:10132000FFE007880008E00016649793FFFC85162D -:10133000FFE88596FFE48696FFE020220000E600A5 -:101340001390F70200008636000C000000012032E6 -:10135000000FE20013750000000187360014000042 -:101360000001073800019736001487360014E000AA -:101370001390F702000076B10002C6B46000773522 -:101380000005C7386A00C738600007380010C72C4E -:101390007000203A0000E6001200F705352CF684B4 -:1013A0003528F7046F4C00000001C0367200E600DB -:1013B00013C007341494F3846F44E00013C4F3851E -:1013C0003528F7053528E00012E805280001203609 -:1013D0000000E6001429F6862C28F7042D38F005C5 -:1013E000352406380001F6052D3877390002F382DE -:1013F000000D20320044E6001428B3BA6802E00071 -:101400001428F0052D38F704E01000000001203A00 -:101410000000E6001429F7020000F705E010078835 -:101420000008E00102989793FFFCF4842D38F7043C -:101430002D3C00000001C03A4A00E6000C09F68687 -:101440002C2877390002A53A680200000001202A02 -:101450000014E600149127280015203A0001E2004C -:101460001491F7062DCCF6842ECC8602FF3475B588 -:101470000002B52E700206B40001F6852ECCF706E8 -:101480002E4C2036001FE2001491B62E7002F0059B -:101490002ECCF7062D4476A90002A7367002000074 -:1014A0000001873A000000000001C6B470008736D2 -:1014B00000049496FFEC07880008C1380000979359 -:1014C000FFFCF7042D3C8496FFEC07380001203A1E -:1014D0000044E600142CF7052D3CE000142CF00528 -:1014E0002D3C8796FFFC8296FFF802140000013C19 -:1014F0000000000000019293FFFC02900008841697 -:101500000000F702000085960004203A0021EE005A -:10151000153495A20000F606233807200084C6A0E3 -:101520000000963A000427380004C03A6A00EC0034 -:101530001520000000018796FFFC8296FFF8021438 -:101540000008013C0000000000019293FFFC0290A3 -:1015500000088696000087160004F6042D40973692 -:1015600000009736000407300001F7052D4096363D -:1015700000088796FFFC8296FFF802140008013CE1 -:101580000000000000019293FFFC02900008851605 -:10159000000000000001202A0014E60015D92728C9 -:1015A0000015203A0001E20015D9F7062DCCF6848B -:1015B0002ECC8602FF3475B50002B52E700206B43B -:1015C0000001F6852ECCF7062E4C2036001FE200D7 -:1015D00015D9B62E7002F0052ECCF6862D4477294B -:1015E0000002A6BA68020000000186B600000000F2 -:1015F0000001C7386800873A00040000000107882E -:101600000008C13800009793FFFC8796FFFC829684 -:10161000FFF802140004013C000000000001929356 -:10162000FFFC029000088716000086960004F6066C -:101630002D4476B5000285BA000000000001B5B661 -:101640006002C6B47000859600080000000195B6DF -:1016500000048796FFFC8296FFF80214000C013C00 -:101660000000000000019293FFFC02900008861623 -:101670000000000000018732000400000001203A51 -:10168000000F86B20000C5380000EE0016B4C5B4E5 -:1016900000002036000FEE0016B400000001203AD2 -:1016A0000000EC0016B50000000120360000EC0040 -:1016B00016D0000000018732000C0000000107383E -:1016C00000019732000C8732000CE00016D8F402BB -:1016D0000000C02A5A00440C00018796FFFC829645 -:1016E000FFF802140004013C0000000000010000AB -:1016F00000009293FFFC02900008F7062EE097137B -:10170000FFFCF70632D49713FFFC07880008E000BF -:1017100015489793FFFCF702182C9713FFFCF782EC -:1017200000099793FFFCF7062EE09713FFFC07884C -:101730000008E000161C9793FFFCF702345897133B -:10174000FFFCF702000C9713FFFCF7062F6C9713B2 -:10175000FFFC07880008E000161C9793FFFCF702C7 -:101760003F949713FFFCF782000B9793FFFCF7065B -:101770002FF89713FFFC07880008E000161C9793CA -:10178000FFFCF7023B849713FFFCF782000B979353 -:10179000FFFCF70632289713FFFC07880008E000DB -:1017A000161C9793FFFCF70226E49713FFFCF70241 -:1017B00000139713FFFCF70630849713FFFC07888C -:1017C0000008E000161C9793FFFCF70226A0971371 -:1017D000FFFCF70200119713FFFCF7063110971377 -:1017E000FFFC07880008E000161C9793FFFCF70237 -:1017F000182C9713FFFCF78200099793FFFCF7065C -:10180000319C9713FFFC07880008E000161C979393 -:10181000FFFCF0057A78F00532E88796FFFC8296A7 -:10182000FFF802140000013C000000000001929348 -:10183000FFFC0290000822100050F70471C800005D -:101840000001203A0000E6001855F68671C4E00059 -:10185000186CF6020000F70471D40000000177391B -:101860000002C7386800863A001800000001F6053B -:1018700032C486B2000807018000C5B47400F58543 -:1018800032D087320018F6866F4477390002A73AC3 -:101890006802202E0000F70532C0073809D886B24A -:1018A0000004F70532CCE6001941F68532C8F7048A -:1018B0007198F6847A782738000120360000E60017 -:1018C0001910F7057198F70476FC00000001203A22 -:1018D0000000E60018E8F3020011F30632D4F30525 -:1018E00076FCE00018F8F7020001F30576F8F3063D -:1018F00032D4F3057700F7020000203A0000E6003A -:101900001914F3020001F3063110E000268CF305F0 -:1019100032D4F3020001F3057A78F3063084F3053C -:1019200032D4F30432C4000000019313FFFC078893 -:101930000008E00006109793FFFCE000268C0000F2 -:101940000001F3020000202E0000E6001CB99316EF -:10195000FFE4873200088696FFE4C3040000C03A23 -:101960003200E6001984203600008732000C0000A7 -:101970000001C03A3200E600198420360000F682E9 -:10198000000120360000E6001CB8F3020000F70456 -:1019900032C09316FFACF58432C4863A142803B8DB -:1019A0001420042C000886BA142400000001C03260 -:1019B0006A00EC001A709616FFEC77310001C73808 -:1019C000600077390002C63838000630000C86B255 -:1019D0000000872E00088516FFACC0367200E600B6 -:1019E0001A00C484000086B20004872E000C000098 -:1019F0000001C0367200E6001A04202A0000F50239 -:101A00000001202A0000E6001A1100000001F48203 -:101A1000000086B200008722000000000001C036EE -:101A20007200E2001A4CF5820000C0367200E60037 -:101A30001A54202E000086B2000487220004000001 -:101A40000001C0367200E2001A55202E0000F58217 -:101A50000001202E0000E6001A6520260000F48216 -:101A6000000120260000E6001A70F3020001931620 -:101A7000FFAC8316FFAC00000001201A0000E60056 -:101A80001AB1F60200018716FFEC0000000176B9DA -:101A90000001C6B4700076B50002C6B4380006B4C2 -:101AA000001486B600009716FFF0E0001B1896960B -:101AB000FFF4271400149713FFFC9413FFFC939377 -:101AC000FFFC9396FFBC07880008E0012568979308 -:101AD000FFFC8396FFBC20220000E6001B15F602E7 -:101AE00000018716FFEC0000000176B90001C6B4C2 -:101AF000700076B50002C6B4380006B4001486B68D -:101B000000009716FFF09696FFF4971E0008E0007D -:101B10001B1C20320000F602000020320000E6000C -:101B20001CB8F3020000F60432C09316FFAC86B274 -:101B3000142803B014200430148C873214240000BD -:101B40000001C0367200EC001C049696FFEC77355D -:101B50000001C738680077390002C5B8380005AC05 -:101B6000000C86AE00008732148C8516FFACC036A0 -:101B70007200E6001B94C484000086AE0004873225 -:101B8000149000000001C0367200E6001B98202A65 -:101B90000000F5020001202A0000E6001BA500005D -:101BA0000001F482000086AE0000872200000000E1 -:101BB0000001C0367200E2001BE0F6020000C036F1 -:101BC0007200E6001BE82032000086AE0004872287 -:101BD000000400000001C0367200E2001BE9203260 -:101BE0000000F602000120320000E6001BF920266A -:101BF0000000F482000120260000E6001C04F3022D -:101C000000019316FFAC8316FFAC00000001201A00 -:101C10000000E6001C45F60200018716FFEC0000FC -:101C2000000176B90001C6B4700076B50002C6B4F2 -:101C3000380006B4001486B600009716FFF0E000E6 -:101C40001CAC9696FFF4271400149713FFFC941312 -:101C5000FFFC9393FFFC9396FFBC07880008E0010C -:101C600025689793FFFC8396FFBC20220000E600C6 -:101C70001CA9F60200018716FFEC0000000176B9EE -:101C80000001C6B4700076B50002C6B4380006B4D0 -:101C9000001486B600009716FFF09696FFF4971E84 -:101CA0000008E0001CB020320000F60200002032E4 -:101CB0000000E6001E15F3020001F68432C00000A9 -:101CC000000185B60EF486360EF8202E0010E200D4 -:101CD0001CDC20320010E2001CF9000000018736F5 -:101CE0000F00000000010738000197360F0087360B -:101CF0000F00E0001D24F702000007300001C03A89 -:101D00005A00E6001D1DF682000020320010E60099 -:101D10001D20202E0000E6001D24C7340000F6829E -:101D20000001C7340000203A0000E6001E14F30250 -:101D30000001F30432CC000000019316FFDC931382 -:101D4000FFFC07880008E00043689793FFFC20220F -:101D50000000E6001DFCF30200008316FFDC00001B -:101D60000001861A00000000000120320010E2008D -:101D70001D9176B10002871A000C0000000107389F -:101D80000001971A000C871A000CE0001DFCF302FA -:101D90000000F302004C9313FFFCC6B460007735DB -:101DA0000004C7386A008316FFDCC7386000C738F4 -:101DB0003000073800109713FFFCF3067A289313BE -:101DC000FFFC9616FFB407880008E00126F89793F9 -:101DD000FFFC8616FFB4000000010630000120322F -:101DE0000011E6001DEC00000001F6020000831661 -:101DF000FFDC00000001961A0000F30200019316B8 -:101E0000FFD48316FFD400000001201A0000E60072 -:101E10001E18F30200019316FFE48316FFE400008E -:101E20000001201A0000E6001F35F6820CABF70413 -:101E300032B48316FFD407380001F70532B4F70433 -:101E400032B4201A0000E6001E7000000001F70402 -:101E500032C0F306E030C03A3200E6001E700000E7 -:101E60000001F70432E80000000107380001F7051F -:101E700032E8F70471C400000001203A0000E600D7 -:101E80001EADF6862C28F7042D3800000001063818 -:101E90000001F6052D3877390002F302000A2032DE -:101EA0000044E6001EACB33A6802F0052D38F70492 -:101EB00071D4F68471CC07380001C03A6A00E6009C -:101EC0001EC8F70571D4F00571D4F68471D4F704F7 -:101ED00071D0F00571C4C0367200470C0001F68461 -:101EE00032D00000000120360000E60025D9F705B9 -:101EF00071C8F704719800000001203A0000E60064 -:101F0000257900000001F70475EC00000001203A7B -:101F10000000E600257800000001F70475F00000DD -:101F20000001203A0000E600257800000001E000F2 -:101F300025DCF306319CF00532E8F70432C0F604E4 -:101F40006F5496BA000420320000E6001F60F302CE -:101F5000000CF3020001F3056F54E0001F68F70264 -:101F60000001F3056F58F7020000203A0000E60078 -:101F70001F7CF3062F6CE000268CF30532D4F58429 -:101F80007A7024940010202E0001E6002284F5854A -:101F90007AA0F7020001F60432C8F7057A70F70458 -:101FA00032C4F68432C0F6057A2C9002FF8090028B -:101FB000FF38F5847A28073800249582FF3C970281 -:101FC000FF409602FF448736141000000001C73816 -:101FD0006000973614108736141800000001073887 -:101FE00000019736141887361418F0056F50F7045F -:101FF00032B89596FFECC7386000F70532B8F704A1 -:1020000032BCF3062FF807380001F70532BCF7049D -:1020100032BCF30532D4F7060C3EC07E7400E600F5 -:10202000203400000001C07E7400E600202500007E -:102030000001F7060C3EC77C7400203A0010E60051 -:10204000268C00000001F70432E4FF820010F584C2 -:102050006F5807380001202E0021E2002090F7057C -:1020600032E4F7042D38F6862C2806380001F605F0 -:102070002D387739000220320044E6002084B5BABA -:102080006802F0052D38F3020022E0002094F305E9 -:102090006F58F0056F54F58432C000000001902E97 -:1020A0000004872E000000000001203A0002E60034 -:1020B00021C0000000018702FF38032C0EF49316A4 -:1020C000FFCCF7057A689313FFFC9596FFB8078855 -:1020D0000008E00043A09793FFFC8596FFB82022FC -:1020E0000000E600217C00000001862E0EF80000B2 -:1020F000000120320010E2002119F302004C872E6B -:102100000F000000000107380001972E0F00872EF6 -:102110000F00E000217C000000019313FFFCF30698 -:102120007A289313FFFC76B10002C6B460007735BD -:102130000004C7386A008316FFCCC7386000C73870 -:102140003000073800109713FFFC9596FFB89616DD -:10215000FFB407880008E00126F89793FFFC861675 -:10216000FFB48596FFB80630000120320011E6006A -:10217000217800000001F6020000962E0EF8F70408 -:1021800032C0F306E030C03A3200E60021C0000061 -:102190000001F704E0180000000177B8001E703E4F -:1021A000FFE1E60021C1000000010F814000F704BB -:1021B00079C80000000107380001F70579C8F70465 -:1021C00079C8F70471C400000001203A0000E6005D -:1021D00021FDF6862C28F7042D3800000001063872 -:1021E0000001F6052D3877390002F302000A20328B -:1021F0000044E60021FCB33A6802F0052D38F704EC -:1022000071D4F68471CC07380001C03A6A00E60048 -:102210002218F70571D4F00571D4F68471D4F7044F -:1022200071D0F00571C4C0367200470C0001F6840D -:1022300032D00000000120360000E60025D9F70565 -:1022400071C8F704719800000001203A0000E60010 -:10225000257900000001F70475EC00000001203A28 -:102260000000E600257800000001F70475F000008A -:102270000001203A0000E600257800000001E0009F -:1022800025DCF306319CF0057A889002FF38F005D2 -:102290006F509002FF80F70432C4F3063228F30532 -:1022A00032D4F60432C8F6847A2CF50200000738DE -:1022B0000024F7057A9820320000E60022D5F605C2 -:1022C0007A90C02A5A00E6002620C0326A00EE004A -:1022D000262100000001F68432C00000000187368C -:1022E000141000000001C7386000973614108736BC -:1022F00014180000000107380001973614188736BB -:102300001418F70432B800000001C7386000F70560 -:1023100032B8F70432BC0000000107380001F705AD -:1023200032BCF70432BC20320000E6002345000036 -:102330000001F70432E0F5057A7007380001E0008B -:102340002348F70532E0F5057A70F5846F580000F0 -:102350000001202E0021E200238CF6862C28F704B1 -:102360002D380000000106380001F6052D387739B8 -:10237000000220320044E6002380B5BA6802F0056E -:102380002D38F3020022E0002390F3056F58F0058A -:102390006F54F58432C000000001902E0004872E97 -:1023A000000000000001203A0002E60024BC00000A -:1023B00000018702FF38032C0EF49316FFC4F705C3 -:1023C0007A689313FFFC9596FFB807880008E00031 -:1023D00043A09793FFFC8596FFB820220000E600FB -:1023E000247800000001862E0EF800000001203243 -:1023F0000010E2002415F302004C872E0F000000AD -:10240000000107380001972E0F00872E0F00E00013 -:102410002478000000019313FFFCF3067A2893133D -:10242000FFFC76B10002C6B4600077350004C738FF -:102430006A008316FFC4C7386000C7383000073809 -:1024400000109713FFFC9596FFB89616FFB4078807 -:102450000008E00126F89793FFFC8616FFB48596E6 -:10246000FFB80630000120320011E600247400009D -:102470000001F6020000962E0EF8F70432C0F306B3 -:10248000E030C03A3200E60024BC00000001F7044E -:10249000E0180000000177B8001E703EFFE1E60082 -:1024A00024BD000000010F814000F70479C800003E -:1024B000000107380001F70579C8F70479C8F70467 -:1024C00071C400000001203A0000E60024F9F686FD -:1024D0002C28F7042D380000000106380001F6050D -:1024E0002D3877390002F302000A20320044E6005A -:1024F00024F8B33A6802F0052D38F70471D4F68455 -:1025000071CC07380001C03A6A00E6002514F705CF -:1025100071D4F00571D4F68471D4F70471D0F0054C -:1025200071C4C0367200470C0001F68432D000003E -:10253000000120360000E60025D9F70571C8F70430 -:10254000719800000001203A0000E60025790000A3 -:102550000001F70475EC00000001203A0000E600DD -:10256000257800000001F70475F000000001203A12 -:102570000000E60025D100000001F58476F8000097 -:102580000001202E0021E20025C4F6862C28F70445 -:102590002D380000000106380001F6052D38773986 -:1025A000000220320044E60025B0B5BA6802F0050A -:1025B0002D38F3020022F30576F8F3047700E000EB -:1025C00025C8F30576FCF00576FCE00025D8F0057B -:1025D0007A78E00025DCF306319CF3062EE0F30563 -:1025E00032D4F70471C800000001203A0000E60070 -:1025F000268CF6862C28F7042D38000000010638BA -:102600000001F6052D3877390002F3020009203267 -:102610000044E600268CB33A6802E000268CF00500 -:102620002D38F7047A9000000001C03A6A00EE00ED -:102630002641C5B40000C7385A00E0002648F70517 -:102640007A90C5B80000F0057A90F6847A88F7068B -:102650007A2876350003A732700206B40001971677 -:10266000FFEC84A6FFFCF7067A2CF3047A98948298 -:10267000FF3C9302FF409582FF44B5B27002F7041D -:102680007A98F6857A88C7385800F7057A98879639 -:10269000FFFC8296FFF802140000013C00000000DD -:1026A00000019293FFFC02900008F7020001F70579 -:1026B0007A78F7063084F70532D4F70432C4000084 -:1026C00000019713FFFC07880008E00006109793AD -:1026D000FFFC8796FFFC8296FFF802140000013C85 -:1026E0000000000000019293FFFC029000082210FD -:1026F0000050F70432D0F3020000203A0000E60058 -:102700002A719316FFE4F68432C48616FFE48736F6 -:102710000008C3040000C03A3200E600273C203223 -:1027200000008736000C00000001C03A3200E600CD -:10273000273C20320000F602000120320000E600B3 -:102740002A70F3020000F70432C09316FFACF58440 -:1027500032C4863A142803B81420042C000886BA20 -:10276000142400000001C0326A00EC0028289616EC -:10277000FFEC77310001C738600077390002C638B6 -:1027800038000630000C86B20000872E000885163F -:10279000FFACC0367200E60027B8C484000086B2E1 -:1027A0000004872E000C00000001C0367200E60015 -:1027B00027BC202A0000F5020001202A0000E600C4 -:1027C00027C900000001F482000086B200008722C1 -:1027D000000000000001C0367200E2002804F5820B -:1027E0000000C0367200E600280C202E000086B2E1 -:1027F00000048722000400000001C0367200E200DD -:10280000280D202E0000F5820001202E0000E60099 -:10281000281D20260000F482000120260000E6008A -:102820002828F30200019316FFAC8316FFAC0000CA -:102830000001201A0000E6002869F6020001871650 -:10284000FFEC0000000176B90001C6B4700076B557 -:102850000002C6B4380006B4001486B6000097160D -:10286000FFF0E00028D09696FFF427140014971389 -:10287000FFFC9413FFFC9393FFFC9396FFBC078827 -:102880000008E00125689793FFFC8396FFBC202297 -:102890000000E60028CDF60200018716FFEC0000DC -:1028A000000176B90001C6B4700076B50002C6B466 -:1028B000380006B4001486B600009716FFF096960E -:1028C000FFF4971E0008E00028D420320000F60232 -:1028D000000020320000E6002A70F3020000F60437 -:1028E00032C09316FFAC86B2142803B01420043013 -:1028F000148C8732142400000001C0367200EC00F2 -:1029000029BC9696FFEC77350001C7386800773907 -:102910000002C5B8380005AC000C86AE0000873256 -:10292000148C8516FFACC0367200E600294CC484B6 -:10293000000086AE00048732149000000001C0360B -:102940007200E6002950202A0000F5020001202A2A -:102950000000E600295D00000001F482000086AE60 -:1029600000008722000000000001C0367200E20073 -:102970002998F6020000C0367200E60029A0203235 -:10298000000086AE00048722000400000001C0366B -:102990007200E20029A120320000F602000120327C -:1029A0000000E60029B120260000F4820001202664 -:1029B0000000E60029BCF30200019316FFAC831669 -:1029C000FFAC00000001201A0000E60029FDF6021D -:1029D00000018716FFEC0000000176B90001C6B4C3 -:1029E000700076B50002C6B4380006B4001486B68E -:1029F00000009716FFF0E0002A649696FFF4271473 -:102A000000149713FFFC9413FFFC9393FFFC939621 -:102A1000FFBC07880008E00125689793FFFC8396B8 -:102A2000FFBC20220000E6002A61F60200018716A2 -:102A3000FFEC0000000176B90001C6B4700076B565 -:102A40000002C6B4380006B4001486B6000097161B -:102A5000FFF09696FFF4971E0008E0002A682032E7 -:102A60000000F602000020320000E6002BCDF30249 -:102A70000001F68432C00000000185B60EF48636EF -:102A80000EF8202E0010E2002A9420320010E200FE -:102A90002AB10000000187360F000000000107384E -:102AA000000197360F0087360F00E0002ADCF7029E -:102AB000000007300001C03A5A00E6002AD5F6822D -:102AC000000020320010E6002AD8202E0000E60088 -:102AD0002ADCC7340000F6820001C7340000203A27 -:102AE0000000E6002BCCF3020001F30432CC00001E -:102AF00000019316FFDC9313FFFC07880008E00039 -:102B000043689793FFFC20220000E6002BB4F302F9 -:102B100000008316FFDC00000001861A00000000A0 -:102B2000000120320010E2002B4976B10002871A22 -:102B3000000C0000000107380001971A000C871AEA -:102B4000000CE0002BB4F3020000F302004C9313DE -:102B5000FFFCC6B4600077350004C7386A008316EE -:102B6000FFDCC7386000C738300007380010971303 -:102B7000FFFCF3067A289313FFFC9616FFB4078830 -:102B80000008E00126F89793FFFC8616FFB40000CA -:102B900000010630000120320011E6002BA40000E5 -:102BA0000001F60200008316FFDC00000001961A07 -:102BB0000000F30200019316FFD48316FFD4000037 -:102BC0000001201A0000E6002BD0F302000193164A -:102BD000FFE48316FFE400000001201A0000E60075 -:102BE0002CEDF6820CABF70432B48316FFD4073811 -:102BF0000001F70532B4F70432B4201A0000E600F1 -:102C00002C2800000001F70432C0F306E030C03A7F -:102C10003200E6002C2800000001F70432E8000032 -:102C2000000107380001F70532E8F70471C400001D -:102C30000001203A0000E6002C65F6862C28F704F7 -:102C40002D380000000106380001F6052D387739CF -:102C50000002F302000A20320044E6002C64B33A7A -:102C60006802F0052D38F70471D4F68471CC07386A -:102C70000001C03A6A00E6002C80F70571D4F00527 -:102C800071D4F68471D4F70471D0F00571C4C036E4 -:102C90007200470C0001F68432D00000000120369B -:102CA0000000E6003391F70571C8F7047198000041 -:102CB0000001203A0000E600333100000001F70473 -:102CC00075EC00000001203A0000E60033300000FF -:102CD0000001F70475F000000001203A0000E60052 -:102CE000333000000001E0003394F306319CF0051E -:102CF00032E8F70432C0F6046F5496BA000420326A -:102D00000000E6002D18F302000CF3020001F305A9 -:102D10006F54E0002D20F7020001F3056F58F70211 -:102D20000000203A0000E6002D34F3062F6CE0008E -:102D30003444F30532D4F5847A7024940010202EA4 -:102D40000001E600303CF5857AA0F7020001F604A8 -:102D500032C8F7057A70F70432C4F68432C0F6053B -:102D60007A2C9002FF809002FF38F5847A28073889 -:102D700000249582FF3C9702FF409602FF4487366D -:102D8000141000000001C738600097361410873611 -:102D90001418000000010738000197361418873610 -:102DA0001418F0056F50F70432B89596FFECC73849 -:102DB0006000F70532B8F70432BCF3062FF8073885 -:102DC0000001F70532BCF70432BCF30532D4F70634 -:102DD0000C3EC07E7400E6002DEC00000001C07EB9 -:102DE0007400E6002DDD00000001F7060C3EC77CF4 -:102DF0007400203A0010E600344400000001F7049B -:102E000032E4FF820010F5846F5807380001202E4D -:102E10000021E2002E48F70532E4F7042D38F6864B -:102E20002C2806380001F6052D38773900022032AB -:102E30000044E6002E3CB5BA6802F0052D38F302D6 -:102E40000022E0002E4CF3056F58F0056F54F58416 -:102E500032C000000001902E0004872E0000000008 -:102E60000001203A0002E6002F78000000018702EE -:102E7000FF38032C0EF49316FFCCF7057A689313F2 -:102E8000FFFC9596FFB807880008E00043A09793E1 -:102E9000FFFC8596FFB820220000E6002F340000DA -:102EA0000001862E0EF80000000120320010E20022 -:102EB0002ED1F302004C872E0F00000000010738CE -:102EC0000001972E0F00872E0F00E0002F34000026 -:102ED00000019313FFFCF3067A289313FFFC76B1ED -:102EE0000002C6B4600077350004C7386A00831654 -:102EF000FFCCC7386000C738300007380010971380 -:102F0000FFFC9596FFB89616FFB407880008E0010D -:102F100026F89793FFFC8616FFB48596FFB8063017 -:102F2000000120320011E6002F3000000001F602FF -:102F30000000962E0EF8F70432C0F306E030C03AD7 -:102F40003200E6002F7800000001F704E0180000CE -:102F5000000177B8001E703EFFE1E6002F79000007 -:102F600000010F814000F70479C800000001073814 -:102F70000001F70579C8F70479C8F70471C40000A7 -:102F80000001203A0000E6002FB5F6862C28F70451 -:102F90002D380000000106380001F6052D3877397C -:102FA0000002F302000A20320044E6002FB4B33AD4 -:102FB0006802F0052D38F70471D4F68471CC073817 -:102FC0000001C03A6A00E6002FD0F70571D4F00581 -:102FD00071D4F68471D4F70471D0F00571C4C03691 -:102FE0007200470C0001F68432D000000001203648 -:102FF0000000E6003391F70571C8F70471980000EE -:103000000001203A0000E600333100000001F7041F -:1030100075EC00000001203A0000E60033300000AB -:103020000001F70475F000000001203A0000E600FE -:10303000333000000001E0003394F306319CF005CA -:103040007A889002FF38F0056F509002FF80F704F5 -:1030500032C4F3063228F30532D4F60432C8F684BB -:103060007A2CF502000007380024F7057A98203200 -:103070000000E600308DF6057A90C02A5A00E6007E -:1030800033D8C0326A00EE0033D900000001F68464 -:1030900032C0000000018736141000000001C7385C -:1030A00060009736141087361418000000010738A6 -:1030B00000019736141887361418F70432B8000048 -:1030C0000001C7386000F70532B8F70432BC0000D1 -:1030D000000107380001F70532BCF70432BC20328A -:1030E0000000E60030FD00000001F70432E0F505C5 -:1030F0007A7007380001E0003100F70532E0F5058D -:103100007A70F5846F5800000001202E0021E20043 -:103110003144F6862C28F7042D38000000010638CB -:103120000001F6052D387739000220320044E60010 -:103130003138B5BA6802F0052D38F3020022E000FC -:103140003148F3056F58F0056F54F58432C0000024 -:103150000001902E0004872E000000000001203A9C -:103160000002E6003274000000018702FF38032CE1 -:103170000EF49316FFC4F7057A689313FFFC959637 -:10318000FFB807880008E00043A09793FFFC8596EE -:10319000FFB820220000E600323000000001862E39 -:1031A0000EF80000000120320010E20031CDF302E1 -:1031B000004C872E0F000000000107380001972EF9 -:1031C0000F00872E0F00E000323000000001931343 -:1031D000FFFCF3067A289313FFFC76B10002C6B415 -:1031E000600077350004C7386A008316FFC4C7380B -:1031F0006000C7383000073800109713FFFC959621 -:10320000FFB89616FFB407880008E00126F89793E8 -:10321000FFFC8616FFB48596FFB806300001203209 -:103220000011E600322C00000001F6020000962E8C -:103230000EF8F70432C0F306E030C03A3200E60080 -:10324000327400000001F704E0180000000177B8B4 -:10325000001E703EFFE1E6003275000000010F81A4 -:103260004000F70479C80000000107380001F705A5 -:1032700079C8F70479C8F70471C400000001203A46 -:103280000000E60032B1F6862C28F7042D38000045 -:10329000000106380001F6052D3877390002F302E7 -:1032A000000A20320044E60032B0B33A6802F0056A -:1032B0002D38F70471D4F68471CC07380001C03A78 -:1032C0006A00E60032CCF70571D4F00571D4F684BB -:1032D00071D4F70471D0F00571C4C0367200470C88 -:1032E0000001F68432D00000000120360000E60024 -:1032F0003391F70571C8F704719800000001203A76 -:103300000000E600333100000001F70475EC000016 -:103310000001203A0000E600333000000001F7040D -:1033200075F000000001203A0000E600338900003B -:103330000001F58476F800000001202E0021E20053 -:10334000337CF6862C28F7042D380000000106385F -:103350000001F6052D387739000220320044E600DE -:103360003368B5BA6802F0052D38F3020022F30580 -:1033700076F8F3047700E0003380F30576FCF0057F -:1033800076FCE0003390F0057A78E0003394F306A1 -:10339000319CF3062EE0F30532D4F70471C8000027 -:1033A0000001203A0000E6003444F6862C28F70499 -:1033B0002D380000000106380001F6052D38773958 -:1033C0000002F302000920320044E6003444B33A1C -:1033D0006802E0003444F0052D38F7047A900000CC -:1033E0000001C03A6A00EE0033F9C5B40000C738E6 -:1033F0005A00E0003400F7057A90C5B80000F005E7 -:103400007A90F6847A88F7067A2876350003A73210 -:10341000700206B400019716FFEC84A6FFFCF706C5 -:103420007A2CF3047A989482FF3C9302FF409582B1 -:10343000FF44B5B27002F7047A98F6857A88C738E7 -:103440005800F7057A988796FFFC8296FFF80214D9 -:103450000000013C0000000000019293FFFC02907C -:10346000000822100020F5847A7000000001202E50 -:103470000001E600376CF5857AA0F7020001F6043A -:1034800032C8F7057A70F70432C4F68432C0F60504 -:103490007A2C9002FF809002FF38F5847A28073852 -:1034A00000249582FF3C9702FF409602FF44873636 -:1034B000141000000001C7386000973614108736DA -:1034C00014180000000107380001973614188736D9 -:1034D0001418F0056F50F70432B89596FFF4C7380A -:1034E0006000F70532B8F70432BCF4862FF80738CD -:1034F0000001F70532BCF70432BCF48532D4F7067C -:103500000C3EC07E7400E600351C00000001C07E49 -:103510007400E600350D00000001F7060C3EC77C84 -:103520007400203A0010E6003B7000000001F70430 -:1035300032E4FF820010F5846F5807380001202E16 -:103540000021E2003578F70532E4F7042D38F686DD -:103550002C2806380001F6052D3877390002203274 -:103560000044E600356CB5BA6802F0052D38F482E7 -:103570000022E000357CF4856F58F0056F54F58427 -:1035800032C000000001902E0004872E00000000D1 -:103590000001203A0002E60036A800000001870280 -:1035A000FF3804AC0EF49496FFECF7057A68949318 -:1035B000FFFC9596FFDC07880008E00043A0979386 -:1035C000FFFC8596FFDC20220000E6003664000048 -:1035D0000001862E0EF80000000120320010E200EB -:1035E0003601F482004C872E0F00000000010738DE -:1035F0000001972E0F00872E0F00E00036640000B8 -:1036000000019493FFFCF4867A289493FFFC76B132 -:103610000002C6B4600077350004C7386A0084969B -:10362000FFECC7386000C738480007380010971310 -:10363000FFFC9596FFDC9616FFD807880008E0018E -:1036400026F89793FFFC8616FFD88596FFDC063098 -:10365000000120320011E600366000000001F60291 -:103660000000962E0EF8F70432C0F486E030C03A1F -:103670004A00E60036A800000001F704E018000048 -:10368000000177B8001E703EFFE1E60036A9000099 -:1036900000010F814000F70479C8000000010738DD -:1036A0000001F70579C8F70479C8F70471C4000070 -:1036B0000001203A0000E60036E5F6862C28F704E3 -:1036C0002D380000000106380001F6052D38773945 -:1036D0000002F482000A20320044E60036E4B4BA64 -:1036E0006802F0052D38F70471D4F68471CC0738E0 -:1036F0000001C03A6A00E6003700F70571D4F00512 -:1037000071D4F68471D4F70471D0F00571C4C03659 -:103710007200470C0001F68432D000000001203610 -:103720000000E6003AC1F70571C8F704719800007F -:103730000001203A0000E6003A6100000001F704B1 -:1037400075EC00000001203A0000E6003A6000003D -:103750000001F70475F000000001203A0000E600C7 -:103760003A6000000001E0003AC4F486319CF005A4 -:103770007A889002FF38F0056F509002FF80F704BE -:1037800032C4F4863228F48532D4F60432C8F68482 -:103790007A2CF502000007380024F7057A982032C9 -:1037A0000000E60037BDF6057A90C02A5A00E60010 -:1037B0003B08C0326A00EE003B0900000001F684BD -:1037C00032C0000000018736141000000001C73825 -:1037D000600097361410873614180000000107386F -:1037E00000019736141887361418F70432B8000011 -:1037F0000001C7386000F70532B8F70432BC00009A -:10380000000107380001F70532BCF70432BC203252 -:103810000000E600382D00000001F70432E0F50555 -:103820007A7007380001E0003830F70532E0F5051E -:103830007A70F5846F5800000001202E0021E2000C -:103840003874F6862C28F7042D380000000106385D -:103850000001F6052D387739000220320044E600D9 -:103860003868B5BA6802F0052D38F4820022E0000D -:103870003878F4856F58F0056F54F58432C0000035 -:103880000001902E0004872E000000000001203A65 -:103890000002E60039A4000000018702FF3804ACF2 -:1038A0000EF49496FFE4F7057A689493FFFC9596DE -:1038B000FFDC07880008E00043A09793FFFC859693 -:1038C000FFDC20220000E600396000000001862EA7 -:1038D0000EF80000000120320010E20038FDF482F2 -:1038E000004C872E0F000000000107380001972EC2 -:1038F0000F00872E0F00E000396000000001949354 -:10390000FFFCF4867A289493FFFC76B10002C6B4DB -:10391000600077350004C7386A008496FFE4C73832 -:103920006000C7384800073800109713FFFC9596D1 -:10393000FFDC9616FFD807880008E00126F8979369 -:10394000FFFC8616FFD88596FFDC0630000120328A -:103950000011E600395C00000001F6020000962E1E -:103960000EF8F70432C0F486E030C03A4A00E600B0 -:1039700039A400000001F704E0180000000177B846 -:10398000001E703EFFE1E60039A5000000010F8136 -:103990004000F70479C80000000107380001F7056E -:1039A00079C8F70479C8F70471C400000001203A0F -:1039B0000000E60039E1F6862C28F7042D380000D7 -:1039C000000106380001F6052D3877390002F4822F -:1039D000000A20320044E60039E0B4BA6802F0057B -:1039E0002D38F70471D4F68471CC07380001C03A41 -:1039F0006A00E60039FCF70571D4F00571D4F6844D -:103A000071D4F70471D0F00571C4C0367200470C50 -:103A10000001F68432D00000000120360000E600EC -:103A20003AC1F70571C8F704719800000001203A07 -:103A30000000E6003A6100000001F70475EC0000A8 -:103A40000001203A0000E6003A6000000001F7049F -:103A500075F000000001203A0000E6003AB90000CD -:103A60000001F58476F800000001202E0021E2001C -:103A70003AACF6862C28F7042D38000000010638F1 -:103A80000001F6052D387739000220320044E600A7 -:103A90003A98B5BA6802F0052D38F4820022F48510 -:103AA00076F8F4847700E0003AB0F48576FCF0050F -:103AB00076FCE0003AC0F0057A78E0003AC4F4867B -:103AC000319CF4862EE0F48532D4F70471C80000EE -:103AD0000001203A0000E6003B70F6862C28F7042F -:103AE0002D380000000106380001F6052D38773921 -:103AF0000002F482000920320044E6003B70B4BAB0 -:103B00006802E0003B70F0052D38F7047A90000061 -:103B10000001C03A6A00EE003B29C5B40000C73876 -:103B20005A00E0003B30F7057A90C5B80000F00578 -:103B30007A90F7047A88F6867A2876390003A6B256 -:103B4000680207380001F7057A88F7047A98969694 -:103B5000FFF49682FF3CF4847A98F6867A2CC73874 -:103B600058009482FF409582FF44B5B26802F70581 -:103B70007A988796FFFC8296FFF802140000013CB9 -:103B80000000000000019293FFFC02900008221048 -:103B90000018F5047A88F7067A2CF5847A9076A9CD -:103BA0000003A6B67002202E0000E6003BCD000008 -:103BB0000001F7047AA000000001C02A7200E600AC -:103BC0003F18C02E6A00EE003F1900000001F68485 -:103BD00032C0F60432C88736141000000001C7381E -:103BE000600097361410873614180000000107385B -:103BF00000019736141887361418F70432B80000FD -:103C00000001C7386000F70532B8F70432BC000085 -:103C1000000107380001F70532BCF70432BC202E42 -:103C20000000E6003C3DF6820000F70432E0F68535 -:103C30007A7007380001E0003C40F70532E0F505F6 -:103C40007A70F5846F5800000001202E0021E200F8 -:103C50003C84F6862C28F7042D3800000001063835 -:103C60000001F6052D387739000220320044E600C5 -:103C70003C78B5BA6802F0052D38F4820022E000E5 -:103C80003C88F4856F58F0056F54F58432C000000D -:103C90000001902E0004872E000000000001203A51 -:103CA0000002E6003DB4000000018702FF3804ACCA -:103CB0000EF49496FFECF7057A689493FFFC9596C2 -:103CC000FFE407880008E00043A09793FFFC859677 -:103CD000FFE420220000E6003D7000000001862E77 -:103CE0000EF80000000120320010E2003D0DF482C9 -:103CF000004C872E0F000000000107380001972EAE -:103D00000F00872E0F00E0003D700000000194932B -:103D1000FFFCF4867A289493FFFC76B10002C6B4C7 -:103D2000600077350004C7386A008496FFECC73816 -:103D30006000C7384800073800109713FFFC9596BD -:103D4000FFE49616FFE007880008E00126F8979345 -:103D5000FFFC8616FFE08596FFE406300001203266 -:103D60000011E6003D6C00000001F6020000962EF6 -:103D70000EF8F70432C0F486E030C03A4A00E6009C -:103D80003DB400000001F704E0180000000177B81E -:103D9000001E703EFFE1E6003DB5000000010F810E -:103DA0004000F70479C80000000107380001F7055A -:103DB00079C8F70479C8F70471C400000001203AFB -:103DC0000000E6003DF1F6862C28F7042D380000AF -:103DD000000106380001F6052D3877390002F4821B -:103DE000000A20320044E6003DF0B4BA6802F00553 -:103DF0002D38F70471D4F68471CC07380001C03A2D -:103E00006A00E6003E0CF70571D4F00571D4F68423 -:103E100071D4F70471D0F00571C4C0367200470C3C -:103E20000001F68432D00000000120360000E600D8 -:103E30003ED1F70571C8F704719800000001203ADF -:103E40000000E6003E7100000001F70475EC000080 -:103E50000001203A0000E6003E7000000001F70477 -:103E600075F000000001203A0000E6003EC90000A5 -:103E70000001F58476F800000001202E0021E20008 -:103E80003EBCF6862C28F7042D38000000010638C9 -:103E90000001F6052D387739000220320044E60093 -:103EA0003EA8B5BA6802F0052D38F4820022F485E8 -:103EB00076F8F4847700E0003EC0F48576FCF005E7 -:103EC00076FCE0003ED0F0057A78E0003ED4F4863F -:103ED000319CF4862EE0F48532D4F70471C80000DA -:103EE0000001203A0000E6003F80F6862C28F70407 -:103EF0002D380000000106380001F6052D3877390D -:103F00000002F482000920320044E6003F80B4BA87 -:103F10006802E0003F80F0052D38F7047A90000039 -:103F20000001C03A6A00EE003F39C5B40000C7384E -:103F30005A00E0003F40F7057A90C5B80000F00550 -:103F40007A90F7047A88F6867A2876390003A6B242 -:103F5000680207380001F7057A88F7047A98969680 -:103F6000FFF49682FF3CF4847A98F6867A2CC73860 -:103F700058009482FF409582FF44B5B26802F7056D -:103F80007A988796FFFC8296FFF802140000013CA5 -:103F90000000000000019293FFFC02900008221034 -:103FA0000010F5846F5800000001202E0021E2006F -:103FB0003FE4F6862C28F7042D380000000106386F -:103FC0000001F6052D387739000220320044E60062 -:103FD0003FD8B5BA6802F0052D38F5020022E0009E -:103FE0003FE8F5056F58F0056F54F58432C00000C6 -:103FF0000001902E0004872E000000000001203AEE -:104000000002E6004114000000018702FF38052C81 -:104010000EF49516FFF4F7057A689513FFFC959654 -:10402000FFEC07880008E00043A09793FFFC85960B -:10403000FFEC20220000E60040D000000001862EA8 -:104040000EF80000000120320010E200406DF50281 -:10405000004C872E0F000000000107380001972E4A -:104060000F00872E0F00E00040D0000000019513E4 -:10407000FFFCF5067A289513FFFC76B10002C6B462 -:10408000600077350004C7386A008516FFF4C7382A -:104090006000C7385000073800109713FFFC959652 -:1040A000FFEC9616FFE807880008E00126F89793D2 -:1040B000FFFC8616FFE88596FFEC063000012032F3 -:1040C0000011E60040CC00000001F6020000962E30 -:1040D0000EF8F70432C0F506E030C03A5200E600B0 -:1040E000411400000001F704E0180000000177B857 -:1040F000001E703EFFE1E6004115000000010F8147 -:104100004000F70479C80000000107380001F705F6 -:1041100079C8F70479C8F70471C400000001203A97 -:104120000000E6004151F6862C28F7042D380000E7 -:10413000000106380001F6052D3877390002F50236 -:10414000000A20320044E6004150B53A6802F0050A -:104150002D38F70471D4F68471CC07380001C03AC9 -:104160006A00E600416CF70571D4F00571D4F6845D -:1041700071D4F70471D0F00571C4C0367200470CD9 -:104180000001F68432D00000000120360000E60075 -:104190004231F70571C8F704719800000001203A18 -:1041A0000000E60041D100000001F70475EC0000BA -:1041B0000001203A0000E60041D000000001F704B1 -:1041C00075F000000001203A0000E60042290000DE -:1041D0000001F58476F800000001202E0021E200A5 -:1041E000421CF6862C28F7042D3800000001063802 -:1041F0000001F6052D387739000220320044E60030 -:104200004208B5BA6802F0052D38F5020022F5051E -:1042100076F8F5047700E0004220F50576FCF0051D -:1042200076FCE0004230F0057A78E0004234F50692 -:10423000319CF5062EE0F50532D4F70471C8000074 -:104240000001203A0000E6004274F6862C28F704AC -:104250002D380000000106380001F6052D387739A9 -:104260000002F502000920320044E6004274B53A2B -:104270006802F0052D388796FFFC8296FFF802143D -:104280000000013C0000000000019293FFFC02903E -:104290000008F70632D49713FFFCF7062EE09713B9 -:1042A000FFFC07880008E00014F49793FFFCF70672 -:1042B00032D49713FFFCF7062F6C9713FFFC078887 -:1042C0000008E00014F49793FFFCF70632D497132C -:1042D000FFFCF7062FF89713FFFC07880008E000A3 -:1042E00014F49793FFFCF70632D49713FFFCF706FC -:1042F00030849713FFFC07880008E00014F49793BC -:10430000FFFCF70632D49713FFFCF7063110971322 -:10431000FFFC07880008E00014F49793FFFCF70601 -:1043200032D49713FFFCF706319C9713FFFC0788E4 -:104330000008E00014F49793FFFCF70632D49713BB -:10434000FFFCF70632289713FFFC07880008E000FF -:1043500014F49793FFFC8796FFFC8296FFF80214F3 -:104360000000013C0000000000019293FFFC02905D -:104370000008871600000000000186BA0000873A96 -:10438000000400000001C0367200440C0001879652 -:10439000FFFC8296FFF802140004013C00000000BC -:1043A00000019293FFFC0290000885960000000037 -:1043B0000001862E000086AE000420320010E200CC -:1043C00043D00000000120360010E20043ED073426 -:1043D0000001872E000C0000000107380001972E15 -:1043E000000C872E000CE0004414F4020000C03AD8 -:1043F0006200E6004411F402000020360010E600DE -:1044000044140000000120320000E60044140000C3 -:104410000001F40200018796FFFC8296FFF8021467 -:104420000004013C0000000000019293FFFC029098 -:104430000008F7020001F7053524F7046F44000077 -:104440000001F7053528F70632F49713FFFCF7064D -:1044500035309713FFFC07880008E0001548979354 -:10446000FFFCF70245049713FFFCF702000D9713BA -:10447000FFFCF70632F49713FFFC07880008E00002 -:10448000161C9793FFFCF7024A049713FFFCF702F0 -:10449000000F9713FFFCF70633809713FFFC078884 -:1044A0000008E000161C9793FFFCF7024EEC9713F0 -:1044B000FFFCF70200089713FFFCF706340C971374 -:1044C000FFFC07880008E000161C9793FFFCF7022A -:1044D00057649713FFFCF70200079713FFFCF706DA -:1044E00034989713FFFC07880008E000161C979388 -:1044F000FFFC8796FFFC8296FFF802140000013C47 -:104500000000000000019293FFFC029000082210BE -:104510000014F70475F800000001203A0000E600DE -:10452000452DF68675F8E0004544F7020000F704D3 -:1045300076040000000177390002C7386800873A26 -:10454000001800000001203A0000E600455CF70575 -:104550003548F4863380E00049F0F4853530F704BF -:104560006F5400000001203A0000E6004580F4820C -:104570000008F4820001F4856F54E0004588F702DA -:104580000001F4856F58F7020000203A0000E600B1 -:1045900045A0F4820004F486340CE00049F0F48570 -:1045A0003530F6843548F604352CF4B72800073446 -:1045B0000002F4820001F4BB28008732008CF482F0 -:1045C00000019736001887320090F4856F509736B7 -:1045D000000484B200840000000194B6001084B28C -:1045E00000880000000194B6001484B6001000009A -:1045F000000194B6000884B600140000000194B6CF -:10460000000C84B2009800000001F4853554F48257 -:1046100000019482FF80F5043554F4863498F485C3 -:1046200035309502FF3885B2000006B4002495822B -:10463000FF3C9682FF4087320004F6853550970292 -:10464000FF4486B20004F005354CF704354095165A -:10465000FFF49596FFF4C7386800F7053540F584F8 -:10466000352886B20004872E141400000001C738D4 -:104670006800972E14148732008000000001203A51 -:104680000001EE0049F0F7060C3EC07E7400E60023 -:1046900046A400000001C07E7400E60046950000BC -:1046A0000001F7060C3EC77C7400203A0010E600BB -:1046B00049F000000001FF8200108682FF38F704F5 -:1046C0003558F5846F58F685355407380001202E8B -:1046D0000021E2004708F7053558F7042D38F68623 -:1046E0002C2806380001F6052D38773900022032D3 -:1046F0000044E60046FCB5BA6802F0052D38F482A5 -:104700000022E000470CF4856F58F0056F54F684E2 -:10471000352C0000000187360094C4840000C03AA4 -:104720004A00E60047710000000186360094F684D6 -:1047300035540000000176B4FFF0F7043554969626 -:10474000FFF4473900009716FFF0C6B47000F70475 -:10475000354877B4000F703EFFE107380024E600CB -:104760004769C638600006B40001C7046E00F7331D -:104770002800F6843544000000018736000400005C -:104780000001203A000FE20047BD073800018736DC -:10479000000C00000001073800019736000C873636 -:1047A000000CE00047D000000001F7043528F68235 -:1047B000000107380008E0004968F7053544203A51 -:1047C0000010E60047CC00000001F7020000973619 -:1047D0000004F704353CF684352807380001F70556 -:1047E000353CF704353C8736141C000000010738BF -:1047F00000019736141CF704760486B6141CF604E0 -:1048000075FC07380001F684760000000001C03A0C -:104810006A00E600481CF7057604F0057604F68485 -:104820007604F7047608F00575FCC0367200470C74 -:10483000000120320000E6004881F70575F8F70412 -:104840007648F4867218C03A4A00470C0001203AB4 -:104850000000E6004881F6862C28F7042D38000079 -:10486000000106380001F6052D3877390002F48280 -:10487000000E20320044E6004880B4BA6802F00519 -:104880002D38F5020000202A0002EE004968F68269 -:104890000000F68435280000000187360000000083 -:1048A0000001203A0002E600493C05B40008959357 -:1048B000FFFC9516FFEC9596FFE89696FFE40788B7 -:1048C0000008E0005EDC9793FFFC8516FFEC859600 -:1048D000FFE88696FFE420220000E600492CF7025C -:1048E00000008636000C000000012032000FE200BC -:1048F000491100000001873600140000000107384C -:1049000000019736001487360014E000492CF702A6 -:10491000000076B10002C6B4600077350005C738E4 -:104920006A00C738600007380010C72C7000203AB2 -:104930000000E60047A8F705352CF6843528F70473 -:104940006F4C00000001C0367200E600495C07347D -:104950001494F4846F44E0004960F4853528F70529 -:104960003528E00048840528000120360000E600D4 -:1049700049A1F6862C28F7042D38000000010638DE -:104980000001F6052D3877390002F482000D20323F -:104990000044E60049A8B4BA6802E00049A8F0055E -:1049A0002D38F4820001F4853524F6843528F70487 -:1049B0006F44F48632F4C0367200E60049F0F485A4 -:1049C0003530F704E0180000000177B8001F703E92 -:1049D000FFE1E60049F1000000010F814000F7040B -:1049E00079C80000000107380001F70579C8F7040D -:1049F00079C88796FFFC8296FFF802140000013CFC -:104A00000000000000019293FFFC029000082210B9 -:104A10000014F70475F800000001203A0000E600D9 -:104A20004A2DF68675F8E0004A40F6820000F70449 -:104A300076040000000177390002C738680086BAA2 -:104A40000018F7046F5400000001203A0000E6004F -:104A50004A64F6853548F4820001F4856F54E0001D -:104A60004A70F7020001F4820008F4856F58F702DB -:104A70000000203A0000E6004A88F4820004F48630 -:104A8000340CE0004ED8F4853530F6843548F60411 -:104A9000352CF4B7280007340002F4820001F4BB7F -:104AA00028008732008CF482000197360018873284 -:104AB0000090F4856F509736000484B200840000A3 -:104AC000000194B6001084B200880000000194B682 -:104AD000001484B600100000000194B6000884B6EB -:104AE00000140000000194B6000C84B2009800008D -:104AF0000001F4853554F48200019482FF80F504AE -:104B00003554F4863498F48535309502FF3885B2F3 -:104B1000000006B400249582FF3C9682FF40873255 -:104B20000004F68535509702FF4486B20004F00574 -:104B3000354CF70435409516FFF49596FFF4C738C9 -:104B40006800F7053540F584352886B20004872EC5 -:104B5000141400000001C7386800972E141487321F -:104B6000008000000001203A0001EE004ED8F70658 -:104B70000C3EC07E7400E6004B8C00000001C07E3D -:104B80007400E6004B7D00000001F7060C3EC77C78 -:104B90007400203A0010E6004ED800000001FF82A9 -:104BA00000108682FF38F7043558F5846F58F68573 -:104BB000355407380001202E0021E2004BF0F705A4 -:104BC0003558F7042D38F6862C2806380001F605EE -:104BD0002D387739000220320044E6004BE4B5BAA4 -:104BE0006802F0052D38F4820022E0004BF4F485D1 -:104BF0006F58F0056F54F684352C0000000187369D -:104C00000094C4840000C03A4A00E6004C590000F9 -:104C1000000186360094F68435540000000176B415 -:104C2000FFF0F70435549696FFF4473900009716C5 -:104C3000FFF0C6B47000F704354877B4000F703E3B -:104C4000FFE107380024E6004C51C638600006B486 -:104C50000001C7046E00F7332800F68435440000D5 -:104C600000018736000400000001203A000FE20036 -:104C70004CA5073800018736000C000000010738FA -:104C800000019736000C8736000CE0004CB800009D -:104C90000001F7043528F682000107380008E0001B -:104CA0004E50F7053544203A0010E6004CB40000A1 -:104CB0000001F702000097360004F704353CF68443 -:104CC000352807380001F705353CF704353C8736B1 -:104CD000141C00000001073800019736141CF7046B -:104CE000760486B6141CF60475FC07380001F684B9 -:104CF000760000000001C03A6A00E6004D04F705A6 -:104D00007604F0057604F6847604F7047608F00558 -:104D100075FCC0367200470C000120320000E6002E -:104D20004D69F70575F8F7047648F4867218C03AAD -:104D30004A00470C0001203A0000E6004D69F68663 -:104D40002C28F7042D380000000106380001F60574 -:104D50002D3877390002F482000E20320044E6003C -:104D60004D68B4BA6802F0052D38F5020000202A1B -:104D70000002EE004E50F6820000F6843528000056 -:104D800000018736000000000001203A0002E60022 -:104D90004E2405B400089593FFFC9516FFEC9596FC -:104DA000FFE89696FFE407880008E0005EDC979332 -:104DB000FFFC8516FFEC8596FFE88696FFE420222F -:104DC0000000E6004E14F70200008636000C0000DA -:104DD00000012032000FE2004DF90000000187368B -:104DE00000140000000107380001973600148736D0 -:104DF0000014E0004E14F702000076B10002C6B4C1 -:104E0000600077350005C7386A00C738600007388A -:104E10000010C72C7000203A0000E6004C90F70507 -:104E2000352CF6843528F7046F4C00000001C0369D -:104E30007200E6004E4407341494F4846F44E0009A -:104E40004E48F4853528F7053528E0004D6C0528D7 -:104E5000000120360000E6004E89F6862C28F70473 -:104E60002D380000000106380001F6052D3877398D -:104E70000002F482000D20320044E6004E90B4BAE5 -:104E80006802E0004E90F0052D38F4820001F485B0 -:104E90003524F6843528F7046F44F48632F4C0369E -:104EA0007200E6004ED8F4853530F704E0180000B3 -:104EB000000177B8001F703EFFE1E6004ED9000008 -:104EC00000010F814000F70479C800000001073895 -:104ED0000001F70579C8F70479C88796FFFC829628 -:104EE000FFF802140000013C000000000001929352 -:104EF000FFFC0290000822100014F6843548F604E6 -:104F0000352CF4820004F4B7280007340002F48240 -:104F10000001F4BB28008732008CF4820001973630 -:104F2000001887320090F4856F509736000484B2E1 -:104F300000840000000194B6001084B200880000D4 -:104F4000000194B6001484B600100000000194B66D -:104F5000000884B600140000000194B6000C84B26E -:104F6000009800000001F4853554F4820001948219 -:104F7000FF80F5043554F4863498F4853530950275 -:104F8000FF3885B2000006B400249582FF3C96826B -:104F9000FF4087320004F68535509702FF4486B201 -:104FA0000004F005354CF70435409516FFF495964E -:104FB000FFF4C7386800F7053540F584352886B218 -:104FC0000004872E141400000001C7386800972ED3 -:104FD00014148732008000000001203A0001EE0026 -:104FE000534CF7060C3EC07E7400E60050000000F3 -:104FF0000001C07E7400E6004FF100000001F706DA -:105000000C3EC77C7400203A0010E600534C0000B0 -:105010000001FF8200108682FF38F7043558F584BE -:105020006F58F685355407380001202E0021E20024 -:105030005064F7053558F7042D38F6862C280638C5 -:105040000001F6052D387739000220320044E600D1 -:105050005058B5BA6802F0052D38F4820022E000FD -:105060005068F4856F58F0056F54F684352C0000B5 -:10507000000187360094C4840000C03A4A00E6006C -:1050800050CD0000000186360094F68435540000AF -:10509000000176B4FFF0F70435549696FFF44739D3 -:1050A00000009716FFF0C6B47000F704354877B4D7 -:1050B000000F703EFFE107380024E60050C5C638F7 -:1050C000600006B40001C7046E00F7332800F684C0 -:1050D0003544000000018736000400000001203A3A -:1050E000000FE2005119073800018736000C00005C -:1050F0000001073800019736000C8736000CE000ED -:10510000512C00000001F7043528F6820001073811 -:105110000008E00052C4F7053544203A0010E600CC -:10512000512800000001F702000097360004F70440 -:10513000353CF684352807380001F705353CF7047F -:10514000353C8736141C00000001073800019736F3 -:10515000141CF704760486B6141CF60475FC073894 -:105160000001F684760000000001C03A6A00E60003 -:105170005178F7057604F0057604F6847604F70492 -:105180007608F00575FCC0367200470C000120322D -:105190000000E60051DDF70575F8F7047648F4865F -:1051A0007218C03A4A00470C0001203A0000E6009D -:1051B00051DDF6862C28F7042D3800000001063852 -:1051C0000001F6052D3877390002F482000E2032F6 -:1051D0000044E60051DCB4BA6802F0052D38F5024F -:1051E0000000202A0002EE0052C4F6820000F6847D -:1051F0003528000000018736000000000001203A39 -:105200000002E600529805B400089593FFFC95163D -:10521000FFEC9596FFE89696FFE407880008E0000B -:105220005EDC9793FFFC8516FFEC8596FFE886967B -:10523000FFE420220000E6005288F70200008636D4 -:10524000000C000000012032000FE200526D00004F -:10525000000187360014000000010738000197366E -:10526000001487360014E0005288F702000076B17F -:105270000002C6B4600077350005C7386A00C73839 -:10528000600007380010C72C7000203A0000E600CC -:105290005104F705352CF6843528F7046F4C0000CF -:1052A0000001C0367200E60052B807341494F4844A -:1052B0006F44E00052BCF4853528F7053528E0003E -:1052C00051E00528000120360000E60052FDF68678 -:1052D0002C28F7042D380000000106380001F605DF -:1052E0002D3877390002F482000D20320044E600A8 -:1052F0005304B4BA6802E0005304F0052D38F48278 -:105300000001F4853524F6843528F7046F44F486CB -:1053100032F4C0367200E600534CF4853530F704A1 -:10532000E0180000000177B8001F703EFFE1E600C2 -:10533000534D000000010F814000F70479C80000C0 -:10534000000107380001F70579C8F70479C8879686 -:10535000FFFC8296FFF802140000013C00000000F0 -:1053600000019293FFFC0290000822100014F484C4 -:105370003554F684354CF584352C9482FF3876B557 -:105380000003A52E6802000000019502FF3CF38493 -:105390003550C6AC68009382FF4087360004000099 -:1053A00000019702FF4486360004F70435400000F0 -:1053B0000001C7386000F7053540F604352886B689 -:1053C0000004873214149496FFF4C73868009732AB -:1053D0001414872E008000000001203A0001EE0026 -:1053E00057509516FFF4F7060C3EC07E7400E60099 -:1053F000540400000001C07E7400E60053F5000074 -:105400000001F7060C3EC77C7400203A0010E6004D -:10541000575000000001FF8200108682FF38F70419 -:105420003558F5846F58F685355407380001202E1D -:105430000021E2005468F7053558F7042D38F68648 -:105440002C2806380001F6052D3877390002203265 -:105450000044E600545CB5BA6802F0052D38F382CA -:105460000022E000546CF3856F58F0056F54F68409 -:10547000352C0000000187360094C3840000C03A38 -:105480003A00E60054D10000000186360094F6840C -:1054900035540000000176B4FFF0F70435549696B9 -:1054A000FFF4473900009716FFF0C6B47000F70408 -:1054B000354877B4000F703EFFE107380024E6005E -:1054C00054C9C638600006B40001C7046E00F73343 -:1054D0002800F684354400000001873600040000EF -:1054E0000001203A000FE200551D07380001873601 -:1054F000000C00000001073800019736000C8736C9 -:10550000000CE000553000000001F7043528F68259 -:10551000000107380008E00056C8F7053544203A76 -:105520000010E600552C00000001F702000097363D -:105530000004F704353CF684352807380001F705E8 -:10554000353CF704353C8736141C00000001073851 -:1055500000019736141CF704760486B6141CF60472 -:1055600075FC07380001F684760000000001C03A9F -:105570006A00E600557CF7057604F0057604F684AB -:105580007604F7047608F00575FCC0367200470C07 -:10559000000120320000E60055E1F70575F8F70438 -:1055A0007648F3867218C03A3A00470C0001203A58 -:1055B0000000E60055E1F6862C28F7042D3800009F -:1055C000000106380001F6052D3877390002F38214 -:1055D000000E20320044E60055E0B3BA6802F00540 -:1055E0002D38F5020000202A0002EE0056C8F6828F -:1055F0000000F68435280000000187360000000016 -:105600000001203A0002E600569C05B4000895937C -:10561000FFFC9516FFEC9596FFE89696FFE4078849 -:105620000008E0005EDC9793FFFC8516FFEC859692 -:10563000FFE88696FFE420220000E600568CF70281 -:1056400000008636000C000000012032000FE2004E -:105650005671000000018736001400000001073871 -:1056600000019736001487360014E000568CF702CC -:10567000000076B10002C6B4600077350005C73877 -:105680006A00C738600007380010C72C7000203A45 -:105690000000E6005508F705352CF6843528F70498 -:1056A0006F4C00000001C0367200E60056BC0734A3 -:1056B0001494F3846F44E00056C0F3853528F70551 -:1056C0003528E00055E40528000120360000E600FA -:1056D0005701F6862C28F7042D3800000001063803 -:1056E0000001F6052D3877390002F382000D2032D3 -:1056F0000044E6005708B3BA6802E0005708F00516 -:105700002D38F3820001F3853524F6843528F7041B -:105710006F44F38632F4C0367200E6005750F385CA -:105720003530F704E0180000000177B8001F703E24 -:10573000FFE1E6005751000000010F814000F7042F -:1057400079C80000000107380001F70579C8F7049F -:1057500079C88796FFFC8296FFF802140000013C8E -:105760000000000000019293FFFC0290000822104C -:1057700000148702FF38F384352CF7053554871E53 -:105780000080F504354C27380001C02A7200E6007D -:105790005A4C00000001F5846F5800000001202ED3 -:1057A0000021E20057D8F6862C28F7042D38000097 -:1057B000000106380001F6052D3877390002203245 -:1057C0000044E60057CCB5BA6802F0052D38F30264 -:1057D0000022E00057DCF3056F58F0056F54F684A3 -:1057E000352C0000000187360094C3040000C03A45 -:1057F0003200E60058410000000186360094F6842D -:1058000035540000000176B4FFF0F7043554969645 -:10581000FFF4473900009716FFF0C6B47000F70494 -:10582000354877B4000F703EFFE107380024E600EA -:105830005839C638600006B40001C7046E00F7335B -:105840002800F6843544000000018736000400007B -:105850000001203A000FE200588D0738000187361A -:10586000000C00000001073800019736000C873655 -:10587000000CE00058A000000001F7043528F68273 -:10588000000107380008E0005A38F7053544203A8F -:105890000010E600589C00000001F7020000973657 -:1058A0000004F704353CF684352807380001F70575 -:1058B000353CF704353C8736141C000000010738DE -:1058C00000019736141CF704760486B6141CF604FF -:1058D00075FC07380001F684760000000001C03A2C -:1058E0006A00E60058ECF7057604F0057604F684C5 -:1058F0007604F7047608F00575FCC0367200470C94 -:10590000000120320000E6005951F70575F8F70450 -:105910007648F3067218C03A3200470C0001203A6C -:105920000000E6005951F6862C28F7042D380000B7 -:10593000000106380001F6052D3877390002F30220 -:10594000000E20320044E6005950B33A6802F005D8 -:105950002D38F5020000202A0002EE005A38F682A7 -:105960000000F684352800000001873600000000A2 -:105970000001203A0002E6005A0C05B40008959395 -:10598000FFFC9516FFEC9596FFE89696FFE40788D6 -:105990000008E0005EDC9793FFFC8516FFEC85961F -:1059A000FFE88696FFE420220000E60059FCF7029B -:1059B00000008636000C000000012032000FE200DB -:1059C00059E100000001873600140000000107388B -:1059D00000019736001487360014E00059FCF702E6 -:1059E000000076B10002C6B4600077350005C73804 -:1059F0006A00C738600007380010C72C7000203AD2 -:105A00000000E6005878F705352CF6843528F704B1 -:105A10006F4C00000001C0367200E6005A2C0734BB -:105A20001494F3046F44E0005A30F3053528F70569 -:105A30003528E00059540528000120360000E60012 -:105A40005DC4F3020001E0005DF000000001772971 -:105A50000003C71C7000873A00040528000176A9DE -:105A60000003F4843554F60435509482FF38A41EA4 -:105A70006802C63070009402FF3C9602FF40C69C4C -:105A8000680087360004000000019702FF4485B6D5 -:105A90000004F704354000000001C7385800F7053E -:105AA000354085B60004F505354CF6843528F605F5 -:105AB0003550873614149496FFF4C738580097363B -:105AC0001414871E008000000001203A0001EE003F -:105AD0005E3C9416FFF4F7060C3EC07E7400E600B0 -:105AE0005AF400000001C07E7400E6005AE5000090 -:105AF0000001F7060C3EC77C7400203A0010E60057 -:105B00005E3C00000001FF8200108682FF38F7042F -:105B10003558F5846F58F685355407380001202E26 -:105B20000021E2005B58F7053558F7042D38F6865A -:105B30002C2806380001F6052D387739000220326E -:105B40000044E6005B4CB5BA6802F0052D38F3025C -:105B50000022E0005B5CF3056F58F0056F54F6849B -:105B6000352C0000000187360094C3040000C03AC1 -:105B70003200E6005BC10000000186360094F68426 -:105B800035540000000176B4FFF0F70435549696C2 -:105B9000FFF4473900009716FFF0C6B47000F70411 -:105BA000354877B4000F703EFFE107380024E60067 -:105BB0005BB9C638600006B40001C7046E00F73355 -:105BC0002800F684354400000001873600040000F8 -:105BD0000001203A000FE2005C0D07380001873613 -:105BE000000C00000001073800019736000C8736D2 -:105BF000000CE0005C2000000001F7043528F6826C -:105C0000000107380008E0005DB8F7053544203A88 -:105C10000010E6005C1C00000001F702000097364F -:105C20000004F704353CF684352807380001F705F1 -:105C3000353CF704353C8736141C0000000107385A -:105C400000019736141CF704760486B6141CF6047B -:105C500075FC07380001F684760000000001C03AA8 -:105C60006A00E6005C6CF7057604F0057604F684BD -:105C70007604F7047608F00575FCC0367200470C10 -:105C8000000120320000E6005CD1F70575F8F7044A -:105C90007648F3067218C03A3200470C0001203AE9 -:105CA0000000E6005CD1F6862C28F7042D380000B1 -:105CB000000106380001F6052D3877390002F3029D -:105CC000000E20320044E6005CD0B33A6802F005D2 -:105CD0002D38F5020000202A0002EE005DB8F682A1 -:105CE0000000F6843528000000018736000000001F -:105CF0000001203A0002E6005D8C05B4000895938F -:105D0000FFFC9516FFEC9596FFE89696FFE4078852 -:105D10000008E0005EDC9793FFFC8516FFEC85969B -:105D2000FFE88696FFE420220000E6005D7CF70293 -:105D300000008636000C000000012032000FE20057 -:105D40005D61000000018736001400000001073883 -:105D500000019736001487360014E0005D7CF702DE -:105D6000000076B10002C6B4600077350005C73880 -:105D70006A00C738600007380010C72C7000203A4E -:105D80000000E6005BF8F705352CF6843528F704AB -:105D90006F4C00000001C0367200E6005DAC0734B5 -:105DA0001494F3046F44E0005DB0F3053528F70563 -:105DB0003528E0005CD40528000120360000E6000C -:105DC0005DF1F3020001F7042D38F6862C28063821 -:105DD0000001F6052D3877390002F302000D20325C -:105DE0000044E6005DF4B33A6802E0005DF4F005BB -:105DF0002D38F3053524F6843528F7046F44F3066F -:105E000032F4C0367200E6005E3CF3053530F7042C -:105E1000E0180000000177B8001F703EFFE1E600C7 -:105E20005E3D000000010F814000F70479C80000CA -:105E3000000107380001F70579C8F70479C887968B -:105E4000FFFC8296FFF802140000013C00000000F5 -:105E500000019293FFFC02900008F706353097137B -:105E6000FFFCF70632F49713FFFC07880008E000F8 -:105E700014F49793FFFCF70635309713FFFCF706F1 -:105E800033809713FFFC07880008E00014F4979311 -:105E9000FFFCF70635309713FFFCF706340C971319 -:105EA000FFFC07880008E00014F49793FFFCF70656 -:105EB00035309713FFFCF70634989713FFFC0788DB -:105EC0000008E00014F49793FFFC8796FFFC82968D -:105ED000FFF802140000013C000000000001929352 -:105EE000FFFC0290000886160000000000018732C7 -:105EF000000400000001203A000F86B20000C538FF -:105F00000000EE005F2CC5B400002036000FEE004C -:105F10005F2C00000001203A0000EC005F2D000023 -:105F2000000120360000EC005F48000000018732CD -:105F3000000C00000001073800019732000C873286 -:105F4000000CE0005F50F4020000C02A5A00440C2C -:105F500000018796FFFC8296FFF802140004013CC2 -:105F6000000000000001000000009293FFFC02907E -:105F70000008F68635609693FFFCF68642309693CD -:105F8000FFFC07880008E00015489793FFFCF682A5 -:105F900066F89693FFFCF78200179793FFFCF6864E -:105FA00035609693FFFC07880008E000161C979365 -:105FB000FFFCF68269809693FFFCF78200189793A6 -:105FC000FFFCF68635609693FFFC07880008E0002A -:105FD000161C9793FFFCF6826B509693FFFCF7829A -:105FE00000169793FFFCF68635609693FFFC0788B2 -:105FF0000008E000161C9793FFFCF68261789693E8 -:10600000FFFCF782001F9793FFFCF686356096939E -:10601000FFFC07880008E000161C9793FFFCF6823F -:10602000627C9693FFFCF78200209793FFFCF68634 -:1060300035609693FFFC07880008E000161C9793D4 -:10604000FFFCF68266F89693FFFCF78200179793A1 -:10605000FFFCF68635EC9693FFFC07880008E0000D -:10606000161C9793FFFCF68269809693FFFCF782DB -:1060700000189793FFFCF68635EC9693FFFC078893 -:106080000008E000161C9793FFFCF6826B50969375 -:10609000FFFCF78200169793FFFCF68635EC96938B -:1060A000FFFC07880008E000161C9793FFFCF682AF -:1060B00061789693FFFCF782001F9793FFFCF686AA -:1060C00035EC9693FFFC07880008E000161C9793B8 -:1060D000FFFCF682627C9693FFFCF7820020979388 -:1060E000FFFCF68635EC9693FFFC07880008E0007D -:1060F000161C9793FFFCF704E02800000001203AEB -:106100000000E600611500000001F704E028E0004F -:10611000611877390002F70200F0F7054228F70608 -:10612000408AF03B2800F706408CF03B2800F7023D -:106130000000F7057AC0F7057AB8F7057AB0F705D9 -:106140007AC8F682C3509693FFFCF68200169693A7 -:10615000FFFCF68642309693FFFC07880008E001BA -:106160001EC09793FFFC8796FFFC8296FFF80214EF -:106170000000013C0000000000019293FFFC02902F -:106180000008F6046F340000000120320000E60031 -:1061900061ED76B1001E8732000076B4FFE5C738A6 -:1061A0006FC07739FFF0203A0007E60061EC06B0D7 -:1061B00000028736000076B5001E76B4FFE5C738CA -:1061C0006FC07739FFF0203A0001E60061ECF50678 -:1061D00035ECF704423000000001C03A5200470C91 -:1061E0000001203A0000E6006211F5820000F70489 -:1061F00042A0F60642A276B1001E76B4FFE5C7388B -:106200006FC07739FFF007380001E0006268F733AC -:1062100028008732000400000001F705E00086B284 -:106220000008203A0000E600623CF685E0042036D3 -:106230000000E6006240202E0000F5820001202EC2 -:106240000000E6006265F60642A2F70442A076B1BD -:10625000001E76B4FFE5C7386FC07739FFF0073806 -:106260000001F7332800F00542288796FFFC82964C -:10627000FFF802140000013C0000000000019293AE -:10628000FFFC02900008F704423CF6846F340738A4 -:10629000000120360000E60062B1F705423C873677 -:1062A0000000F59E0002C03A5A00E60062BDF58685 -:1062B00035ECF70442A0E00062DCF60642A2F704E7 -:1062C000423000000001C03A5A00470C0001203A59 -:1062D0000000E60062F9F60642A4F70442A476B193 -:1062E000001E76B4FFE5C7386FC07739FFF0073876 -:1062F0000001E000630CF73328009693FFFC078849 -:106300000008E00063209793FFFCF0054228879681 -:10631000FFFC8296FFF802140000013C0000000020 -:1063200000019293FFFC02900008221000208316C7 -:10633000000000000001871A001800000001203A48 -:106340000000E600636CF7020000839A001C000066 -:106350000001F3857AC0849A0014F7057AC8F485A1 -:106360007AB0F7057AB88316000000000001869A1B -:106370000014F7047AB000000001C0367200E60095 -:1063800063D0F6020000869A001CF7047AC0000071 -:106390000001C0367200E60063D000000001869A5A -:1063A0000018F7047AB800000001C0367200E60059 -:1063B00063D000000001869A0020F7047AC800002C -:1063C0000001C7386800203A0064EE0063D920322B -:1063D0000000F602000120320000E60064580000D0 -:1063E00000018396000000000001871E00180000D5 -:1063F0000001203A0000E600643CF7020000F705C7 -:106400004080F7054084F6846E50F482FFFF831EBF -:10641000000CF4854F5493360010839E0010849630 -:10642000000093B6001484A600080000000194B692 -:106430001DDCF6820064F6854A98F7054A9C8316AF -:10644000000000000001871A002000000001203A2F -:106450000000EE00647CF3820000F70442A4F6061C -:1064600042A676B1001E76B4FFE5C7386FC0773913 -:10647000FFF007380001E00066E4F7332800939648 -:10648000FFF484160000F48642C89496FFECF302F1 -:10649000000C9316FFE4839600008496FFF4871E99 -:1064A000002000000001C0267200EC006648F38660 -:1064B0004A9884A200248316FFE4C5040000B49A1D -:1064C0003802C7183800832200288396FFF4849688 -:1064D000FFE4933A000493BA0008F604E000F306E0 -:1064E0004A98A6A63002F5820000C0326A00E60093 -:1064F0006510C6380000F684E0048732000400000E -:106500000001C0367200E6006514202E0000F582FE -:106510000001202E0000E600652100000001F502C8 -:106520000000F684E0008732000000000001C03661 -:106530007200E200655CF5820000C0367200E60081 -:106540006564202E0000F684E00487320004000019 -:106550000001C0367200E2006565202E0000F58261 -:106560000001202E0000E6006575202A0000F502DB -:106570000001202A0000E6006588000000018396E3 -:10658000FFF400000001F3854F548722002C76A110 -:10659000001E76B4FFE505A0002E762D001E763095 -:1065A000FFE5F48200009496FFDC8316FFEC2026C2 -:1065B0000007C7386FC07738FFF0F71B2800872E19 -:1065C000000006980002C73867C07738FFF0E20085 -:1065D000661CF73728008516FFEC8596FFDC000067 -:1065E0000001C72C400086BA0030062800040528A8 -:1065F000000205AC00028396FFDC7739001E773875 -:10660000FFE5039C00019396FFDC201E0007C6B443 -:1066100077C076B4FFF0E20065E1F6B3280004200D -:10662000001C8496FFEC8316FFE48396FFF404A419 -:1066300000149496FFEC0318000C9316FFE4039CDF -:106640000001E00064949396FFF48496000000003B -:1066500000018726002000000001F7054A9C85A65E -:106660000020F7047AB80000000107380001F705A0 -:106670007AB8F7047AB8F6847AC886260018C6B4C1 -:1066800058008726001C0000000127380001C03296 -:106690007200470C0001203A0000E60066E5F6852E -:1066A0007AC883260008F7046E50F3053B6483A67E -:1066B0000008F682000093BA1DDC84A6000C831645 -:1066C000000094BA0010831A0010F6857AC8933A35 -:1066D0000014F7020001F7054084F6857AC0F685BC -:1066E0007AB8F6857AB08796FFFC8296FFF8021496 -:1066F0000004013C0000000000019293FFFC0290A6 -:10670000000822100008F3846F3400000001871E87 -:106710000018F684E01C00000001C0367200EC0096 -:106720006729F7020001F7020000203A0000E600A6 -:1067300067E8F5820001F704E01C869E001800005F -:106740000001C03A6A00470C0001203A0000E60050 -:1067500067E9C5840000869E0010F704E000F60299 -:106760000000C0367200E6006788051C0010869E97 -:106770000014F704E00400000001C0367200E600D7 -:10678000678C20320000F602000120320000E60093 -:10679000679900000001F582000086AA0000F70456 -:1067A000E00000000001C0367200E20067D4F6028B -:1067B0000000C0367200E60067DC2032000086AAC6 -:1067C0000004F704E00400000001C0367200E2009B -:1067D00067DD20320000F602000120320000E600F2 -:1067E00067ED202E0000F5820001202E0000E6005B -:1067F0006810F606429CF704429C76B1001E76B4FF -:10680000FFE5C7386FC07739FFF007380001F7336D -:106810002800F70475F475ACFFE1203A0000E600AB -:1068200068459596FFF4F7044298F606429876B1CB -:10683000001E76B4FFE5C7386FC07739FFF0073820 -:106840000001F7332800871E0020041C002076A1D9 -:10685000001E76B4FFE5C7386FC07739FFF0203AE5 -:106860000008EE0068C4F3061554F5020000059C0C -:106870000022C4AC0000F60200018722000076A1CD -:10688000001E76B4FFE5C7386FC07739FFF0C02A25 -:106890007200EC0068C0C6A46000A726600276B54E -:1068A000001E76B4FFE505280001C7386FC07739B0 -:1068B000FFE8F72F680005AC0001E00068780630BB -:1068C0000002F30615549313FFFCF704E0240000C4 -:1068D00000019713FFFCF704E01C00000001971370 -:1068E000FFFCF306E0009313FFFC9393FFFCF3021D -:1068F00000019313FFFC07880008E000EE64979303 -:10690000FFFC20220000E6006928F606429EF704FC -:10691000429C76B1001E76B4FFE5C7386FC0773968 -:10692000FFF007380001F73328008316FFF400005A -:106930000001201A0000E600696CF30635ECF7044C -:10694000423000000001C03A3200470C0001203AFA -:106950000000E600696DF0054228F3063560F30596 -:10696000423007880008E000789C9793FFFC8796E8 -:10697000FFFC8296FFF802140000013C00000000BA -:1069800000019293FFFC0290000822100004F5041D -:106990006F34F7044240862A001807380001F68455 -:1069A000E01CF7054240C0366200EC0069B5F70212 -:1069B0000001F7020000203A0000E6006A80F702BA -:1069C0000001F704E01C86AA001800000001C03A8C -:1069D0006A00470C0001203A0000E6006A7DC58489 -:1069E000000086AA0010F704E000F6020000C0369E -:1069F0007200E6006A1404A8001086AA0014F704C6 -:106A0000E00400000001C0367200E6006A1820327F -:106A10000000F602000120320000E6006A250000B6 -:106A20000001F582000086A60000F704E0000000E7 -:106A30000001C0367200E2006A60F6020000C03653 -:106A40007200E6006A682032000086A60004F7049F -:106A5000E00400000001C0367200E2006A692032E2 -:106A60000000F602000120320000E6006A81C72C17 -:106A70000000F5820001E0006A80C72C0000C70416 -:106A80000000203A0000EE006B3DF686408AF704D5 -:106A9000408876B5001E76B4FFE5C7386FC07738FA -:106AA000FFF0203A0000E6006B3CF6820000F6851D -:106AB0004080F68540849693FFFC9693FFFCF70494 -:106AC000E01C000000019713FFFCF386E0009393A5 -:106AD000FFFC9513FFFCF38200029393FFFC969654 -:106AE000FFF407880008E000EE649793FFFCF405CC -:106AF00040848696FFF4F7046E50F38635ECF685F5 -:106B00004090F6854094873A1DDCF6854228F705CB -:106B10003B64F7044230F4054080C03A3A00470C29 -:106B20000001203A0000E6006B3DF3863560F385F6 -:106B3000423007880008E000789C9793FFFC879616 -:106B4000FFFC8296FFF802140000013C00000000E8 -:106B500000019293FFFC02900008F4864230949367 -:106B6000FFFC07880008E00120E49793FFFC202247 -:106B70000000E6006DD9F5820000F704408CF606AF -:106B8000408C7631001EF68442287630FFE506B44C -:106B90000001C73867C07738FFF0203A0000E600F0 -:106BA0006BC8F6854228F7044088F686408A76B599 -:106BB000001E76B4FFE5C7386FC07738FFF0203A83 -:106BC0000000E6006D0D00000001F704408CF68621 -:106BD000408C76B5001E76B4FFE5C7386FC07738B5 -:106BE000FFF0203A0000E6006C35F606408AF70414 -:106BF000408876B1001E76B4FFE5C7386FC077389D -:106C0000FFF0203A0000E6006C34F4863678F70492 -:106C1000424400000001C03A4A00470C0001203AFB -:106C20000000E6006C35F4820001F4B32800E000B7 -:106C30006D10F005422CF704408CF506408C76A9C7 -:106C4000001E76B4FFE5C7386FC07738FFF0203AF2 -:106C50000000E6006CC1F606408AF704408876B171 -:106C6000001E76B4FFE5C7386FC07738FFF0203AD2 -:106C70000000E6006CC100000001F704422C000097 -:106C8000000107380001203A0009EE006D11F705F8 -:106C9000422CF02B2800F0332800F5820001F70485 -:106CA0004294F606429476B1001E76B4FFE5C738EA -:106CB0006FC07739FFF007380001E0006D10F7333F -:106CC0002800F704408CF686408C76B5001E76B41A -:106CD000FFE5C7386FC07738FFF0203A0000E600C4 -:106CE0006D14202E0000F7044088F606408A76B125 -:106CF000001E76B4FFE5C7386FC07738FFF0203A42 -:106D00000000E6006D15202E0000F0332800F5820B -:106D10000001202E0000E6006DB5F48635ECF70486 -:106D2000423000000001C03A4A00470C0001203AFE -:106D30000000E6006D5900000001F704E0280000A3 -:106D40000001203A0000E6006D79F682003CF684EE -:106D5000E028E0006D7800000001F704E028000062 -:106D60000001203A0000E6006D79F68200F0F70499 -:106D7000E0280000000176B90002F7044228000074 -:106D80000001C03A6A00EC006DB5F6862C28F704C5 -:106D90002D38F005422806380001F6052D387739E0 -:106DA0000002F482001920320044E6006DB4B4BA47 -:106DB0006802F0052D38F482C3509493FFFCF482EE -:106DC00000169493FFFCF48642309493FFFC0788EE -:106DD0000008E0011EC09793FFFC8796FFFC829697 -:106DE000FFF802140000013C000000000001929333 -:106DF000FFFC0290000822100004F5863678959377 -:106E0000FFFCF58642449593FFFC07880008E000EC -:106E100015489793FFFCF58274189593FFFCF58253 -:106E200000199593FFFCF58636789593FFFC07884B -:106E30000008E000161C9793FFFCF58274AC959354 -:106E4000FFFCF782001D9793FFFCF58637049593AE -:106E5000FFFC07880008E000161C9793FFFCF582F2 -:106E600078009593FFFCF782001B9793FFFCF58653 -:106E700037049593FFFC07880008E000161C9793E1 -:106E8000FFFCF58278FC9593FFFCF782001A97933C -:106E9000FFFCF58637909593FFFC07880008E0001B -:106EA000161C9793FFFCF58280D89593FFFCF78220 -:106EB000001B9793FFFCF58637909593FFFC07889E -:106EC0000008E000161C9793FFFCF58281749593EF -:106ED000FFFCF782001D9793FFFCF586381C959305 -:106EE000FFFC07880008E000161C9793FFFCF58262 -:106EF00087749593FFFCF782001B9793FFFCF58640 -:106F0000381C9593FFFC07880008E000161C979337 -:106F1000FFFCF58294F89593FFFCF782001B979392 -:106F2000FFFCF58639349593FFFC07880008E000E4 -:106F3000161C9793FFFCF5828A009593FFFCF7825D -:106F4000001C9793FFFCF58639349593FFFC078866 -:106F50000008E000161C9793FFFCF5828E089593BD -:106F6000FFFCF782001A9793FFFCF586393495935E -:106F7000FFFC07880008E000161C9793FFFCF582D1 -:106F8000969C9593FFFCF782001E9793FFFCF58675 -:106F900038A89593FFFC07880008E000161C97931B -:106FA000FFFCF5829B2C9593FFFCF782001B9793C7 -:106FB000FFFCF58638A89593FFFC07880008E000E1 -:106FC000161C9793FFFCF582A2DC9593FFFCF782D9 -:106FD000001E9793FFFCF5863AD89593FFFC07882F -:106FE0000008E000161C9793FFFCF5829E549593D1 -:106FF000FFFCF782001B9793FFFCF5863AD8959328 -:10700000FFFC07880008E000161C9793FFFCF58240 -:10701000A3C09593FFFCF782001C9793FFFCF586B5 -:1070200039C09593FFFC07880008E000161C979371 -:10703000FFFCF582A7649593FFFCF782001E9793EF -:10704000FFFCF58639C09593FFFC07880008E00037 -:10705000161C9793FFFCF582AA049593FFFCF78218 -:10706000001B9793FFFCF58639C09593FFFC0788BA -:107070000008E000161C9793FFFCF582AEF895938C -:10708000FFFCF782001C9793FFFCF5863A4C959322 -:10709000FFFC07880008E000161C9793FFFCF7062A -:1070A0004250F03B2800F7064088F03B2800F602EB -:1070B0000000F6054080F6054084F7063B70F63B7D -:1070C0002800F7063B72F0BB2800F582CA20F58540 -:1070D0003B74F7063B78F03B2800F7063B7AF0BBA1 -:1070E0002800F582B194F5853B7CF7063B80F03BA8 -:1070F0002800F7063B82F0BB2800F582C754F585CF -:107100003B84F7063B88F03B2800F7063B8AF0BB40 -:107110002800F582BEF8F5853B8CF7063B90F03BE6 -:107120002800F7063B92F0BB2800F582C8F8F585E9 -:107130003B94F7063B98F03B2800F7063B9AF0BBE0 -:107140002800F582C5D8F5853B9CF7063BA0F03BAF -:107150002800F7063BA2F0BB2800F582C770F58532 -:107160003BA4F7063BA8F03B2800F7063BAAF0BB80 -:107170002800F582C1B4F5853BAC9616FFF407886C -:107180000008E000D5409793FFFCF6846E50861609 -:10719000FFF40000000196361DDCF6053B6487967F -:1071A000FFFC8296FFF802140000013C0000000082 -:1071B00000019293FFFC02900008221000302594F9 -:1071C0000020F02F280026140038F03328009013F8 -:1071D000FFFCF7044250F686425076B5001E76B4A6 -:1071E000FFE5C7386FC07739FFF09713FFFC9613A0 -:1071F000FFFC9593FFFC07880008E000F5F49793E7 -:10720000FFFC20220000E600721DF5021770F70453 -:1072100042540000000127380001F705425495133D -:10722000FFFCF502001B9513FFFCF5064244951385 -:10723000FFFC07880008E0011EC09793FFFC8796BB -:10724000FFFC8296FFF802140000013C00000000E1 -:1072500000019293FFFC02900008F704E0048616F8 -:107260000000F68200FF7739FFF0C7386C00F73373 -:107270002800F706E006873A000006B00002F7375C -:107280002800F6843B6407300004F6BB2800870220 -:10729000FF3406300006F73328008796FFFC8296FD -:1072A000FFF802140004013C00000000000192936A -:1072B000FFFC029000082210003026140020F0335A -:1072C000280027140038F03B28009713FFFC909308 -:1072D000FFFCF7044250F686425076B5001E76B4A5 -:1072E000FFE5C7386FC07739FFF09713FFFC96139F -:1072F000FFFC07880008E000F3389793FFFC20228A -:107300000000E6007319F5821770F704425400007C -:10731000000127380001F70542549593FFFCF582E0 -:10732000001B9593FFFCF58642449593FFFC07886C -:107330000008E0011EC09793FFFC8796FFFC829631 -:10734000FFF802140000013C0000000000019293CD -:10735000FFFC029000082210004026140020961620 -:10736000FFC4F03328009013FFFC9613FFFC261493 -:1073700000389616FFBC9613FFFC07880008E00053 -:10738000D0DC9793FFFC9013FFFCF7044250F68685 -:10739000425076B5001E76B4FFE5C7386FC0773926 -:1073A000FFF09713FFFC8616FFBC00000001961348 -:1073B000FFFC8616FFC4000000019613FFFC07883F -:1073C0000008E000F5F49793FFFC20220000E6009F -:1073D00073E5F6021770F7044254000000012738E5 -:1073E0000001F70542549613FFFCF602001B9613AA -:1073F000FFFCF60642449613FFFC07880008E001F4 -:107400001EC09793FFFC8796FFFC8296FFF802143C -:107410000000013C0000000000019293FFFC02907C -:10742000000822100004F5820000F5854080959642 -:10743000FFF407880008E000CB509793FFFC859687 -:10744000FFF4F5020064F5053BB4F7044250F486FE -:10745000425076A5001E76B4FFE5F6044F5CF402B8 -:107460000006F4054254F5853B6CF5853BB8953232 -:10747000000095B20004C7386FC07739FFF00738B5 -:107480000001F727280007880008E00071B09793F3 -:10749000FFFCF4063704F40542448796FFFC82960D -:1074A000FFF802140000013C00000000000192936C -:1074B000FFFC0290000822100050F7044250F686AC -:1074C000425076B5001E76B4FFE5F6046F34C73837 -:1074D0006FC086B2000C7739FFF0C0367200E6004C -:1074E00077ECC504000086B20010F704E000F30258 -:1074F0000000C0367200E600751804B0001086B2B5 -:107500000014F704E00400000001C0367200E60039 -:10751000751C201A0000F3020001201A0000E6008A -:10752000752900000001F502000086A60000F7049E -:10753000E00000000001C0367200E2007564F6024F -:107540000000C0367200E600756C2032000086A68E -:107550000004F704E00400000001C0367200E200FD -:10756000756D20320000F602000120320000E600B6 -:10757000757D202A0000F5020001202A0000E600A7 -:1075800077EC0000000107880008E000CBCC97935F -:10759000FFFC26140020F033280004A00002F0278E -:1075A0002800F582000023940022F59F280003A004 -:1075B000001A9396FFD42594002285AE000077AD83 -:1075C000001E77BCFFE5C5AC7FC075ADFFF076311E -:1075D000001E7630FFE506A400022314001E751578 -:1075E000001EF59F2800F384E0007528FFE593A2B4 -:1075F000001CF584E0047399001E739CFFE59396CC -:10760000FFAC7395001E739CFFE59396FFCC23940B -:10761000004295A200208716FFE07595001E75AC0C -:10762000FFE59596FFB47595001E75ACFFE5959640 -:10763000FFC4C73867C07738FFF0F7272800F48405 -:107640004F58871A0000C4A04A0074A4FFFAC5A4CA -:107650000000F59F28008396FFAC2314001A7619CA -:10766000001E7630FFE58596FFB4C7383FC07738F7 -:10767000FFF0F737280006B400028716FFE4839670 -:10768000FFCCC73857C07738FFF0F7372800871A84 -:10769000000006B40002C73867C07738FFF0F7373C -:1076A000280006B400028716FFE823140016761996 -:1076B000001E7630FFE5C7385FC07738FFF0F73738 -:1076C0002800871A000006B40002C73867C0773860 -:1076D000FFF0F737280006B400028716FFEC2314EA -:1076E00000127619001E7630FFE5C7383FC07738A4 -:1076F000FFF0F7372800871A000006B400028596CD -:10770000FFC4C73867C07738FFF0F73728008716FF -:10771000FFF006B40002C7385FC07738FFF0F737D4 -:107720002800F3820002F3A3280004200018259407 -:10773000002285AE000077AD001E77BCFFE5C5AC2A -:107740007FC075ADFFF08396FFD4F5A32800F49FAA -:1077500028002594004285AE000077AD001E77BC5E -:10776000FFE5C5AC7FC075ADFFF044AD000094935C -:10777000FFFCF786E0009793FFFCF3844F5C00006A -:1077800000019393FFFC07880008E00123409793D2 -:10779000FFFC07880008E00078D89793FFFCF0050D -:1077A0004084F786E0009793FFFC07880008E0001C -:1077B000D5A09793FFFCF7046E50F4054084873AF8 -:1077C0001DDC00000001F7053B64F5863678F58581 -:1077D0004244F3863560F3854230F5864244959302 -:1077E000FFFC07880008E0011F489793FFFC87967D -:1077F000FFFC8296FFF802140000013C000000002C -:1078000000019293FFFC02900008F5864244959394 -:10781000FFFC07880008E00120E49793FFFC20228A -:107820000000E600788900000001F70442540000DF -:107830000001203A0000EE007851F6064250078819 -:107840000008E00071B09793FFFCE000788800002A -:107850000001F704425076B1001E76B4FFE5F582D0 -:107860000006F5854254C7386FC07739FFF00738F6 -:107870000001F733280007880008E00072AC9793F6 -:10788000FFFCF5863790F58542448796FFFC82968B -:10789000FFF802140000013C000000000001929378 -:1078A000FFFC02900008F6063678F6054244F7021F -:1078B0000000F7054080F7054094F6846E50F70508 -:1078C000409097361DDC8796FFFC8296FFF80214E5 -:1078D0000000013C0000000000019293FFFC0290B8 -:1078E0000008F7020001F70540808796FFFC8296AA -:1078F000FFF802140000013C000000000001929318 -:10790000FFFC02900008221000A8F7044250F58600 -:10791000425076AD001EF4846F3476B4FFE5949641 -:10792000FFC4C7386FC086A6000C7739FFF0C03699 -:107930007200E6007955F606429AF704429876B14D -:10794000001E76B4FFE5C7386FC07739FFF00738FF -:107950000001F7332800F704425076AD001E76B4DC -:10796000FFE58516FFC4C7386FC086AA000C7739BB -:10797000FFF0C0367200E60080A8F606429A872A19 -:107980000010862A001C203A0000E60079A8F68242 -:107990000000872A001400000001203A0000E600E1 -:1079A00079AC20360000F682000120360000E600A7 -:1079B0007A05249400209496FFBC8516FFC4F02716 -:1079C0002800052800109516FFB49513FFFC0788C2 -:1079D0000008E00072509793FFFC8496FFB400000B -:1079E00000019493FFFC8516FFBC00000001951375 -:1079F000FFFC07880008E000F9349793FFFCE000E3 -:107A000080C40000000120320000E600806C00000D -:107A1000000107880008E000CBCC9793FFFC259479 -:107A20000020F02F280004A000029496FF5CF027AD -:107A30002800F48200002514005AF4AB2800072027 -:107A4000001A2514005A852A000077A9001E77BC69 -:107A5000FFE5C5287FC07529FFF075AD001E75AC28 -:107A6000FFE52314001E7619001EF53B2800F48460 -:107A7000E0007630FFE594A2001CF504E004849653 -:107A8000FF5C952200208716FFE006A40002751512 -:107A9000001E7528FFE59516FF547495001E74A40A -:107AA000FFE59496FF9C7515001E7528FFE5951659 -:107AB000FF947495001E8516FF5C74A4FFE59496F0 -:107AC000FF8C8496FF54C7385FC07738FFF0F72BE0 -:107AD0002800871A00008516FF9CC73867C07738D2 -:107AE000FFF0F737280006B400028716FFE42314DE -:107AF000001A7619001E7630FFE5C7384FC0773878 -:107B0000FFF0F7372800871A000006B400028496B9 -:107B1000FF94C73867C07738FFF0F737280006B4FE -:107B200000028716FFE8231400167619001E76302F -:107B3000FFE5C73857C07738FFF0F7372800871AB6 -:107B4000000006B40002C73867C07738FFF0F73787 -:107B5000280006B400028716FFEC231400127619E1 -:107B6000001E7630FFE5C7384FC07738FFF0F73793 -:107B70002800871A000006B400028516FF8CC7385B -:107B800067C07738FFF0F73728008716FFF006B494 -:107B90000002C73857C07738FFF0F7372800F48263 -:107BA0000002F4A328002514005A852A000077A9B2 -:107BB000001E77BCFFE5C5287FC07529FFF00720B0 -:107BC0000018F53B28009416FFAC07880008E00079 -:107BD000CBCC9793FFFC261400382494005A84A63B -:107BE000000077A5001E77BCFFE5C4A47FC074A584 -:107BF000FFF005A0000206AC000223940036751DBC -:107C0000001E7528FFE50720001AF4B3280076311E -:107C1000001E7630FFE59516FF547495001E74A47F -:107C2000FFE59496FF5C7515001E7528FFE5951617 -:107C3000FF7C7495001E8516FFC474A4FFE594961E -:107C4000FF74852A00342494005A9516FF8484A674 -:107C5000000077A5001E77BCFFE5C4A47FC074A513 -:107C6000FFF02514005AF4AF2800852A000077A9F8 -:107C7000001E77BCFFE5C5287FC07529FFF08496FC -:107C8000FFC4F53B280084A600108516FFC494A20B -:107C9000001C852A00147495001E74A4FFE59496B8 -:107CA000FF6C952200208716FFC88516FF54C73841 -:107CB00067C07738FFF0F72F2800871E00008496F2 -:107CC000FF5CC73857C07738FFF0F737280006B495 -:107CD00000028716FFCC23940032761D001E7630FA -:107CE000FFE58516FF7CC7384FC07738FFF0F737C0 -:107CF0002800871E000006B40002C73867C0773826 -:107D0000FFF0F737280006B400028716FFD023944F -:107D1000002E761D001E7630FFE5C73857C0773835 -:107D2000FFF0F7372800871E000006B40002849693 -:107D3000FF748516FF6CC73867C07738FFF0F737D8 -:107D4000280006B400028716FFD42394002A761D6B -:107D5000001E7630FFE5C7384FC07738FFF0F737A1 -:107D60002800871E000006B40002C73867C07738B5 -:107D7000FFF0F73728008716FFD806B40002C7388F -:107D800057C07738FFF0F7372800F4820002F4A3D9 -:107D90002800072000182514007A852A000077A9FA -:107DA000001E77BCFFE5C5287FC07529FFF08496CB -:107DB000FFC4F53B28008726000400000001203A9C -:107DC0000024F7044F58E6007EF99416FF54C720AC -:107DD0007200F6846E508626002C7738FFFA251440 -:107DE000005A842A000077A9001E77BCFFE5C42052 -:107DF0007FC07421FFF04739000086B61DDC77395B -:107E00000002C0326A00468C0001D6800A68203623 -:107E10000000F6864098E6007EC0C3B86800C584BE -:107E2000000086A60024F704E000F6020000C03639 -:107E30007200E6007E540324002486A60028F7047E -:107E4000E00400000001C0367200E6007E582032D7 -:107E50000000F602000120320000E6007E6500000E -:107E60000001F5820000869A0000F704E00000009F -:107E70000001C0367200E2007EA0F6020000C036AB -:107E80007200E6007EA820320000869A0004F70403 -:107E9000E00400000001C0367200E2007EA920323A -:107EA0000000F602000120320000E6007EB9202E1C -:107EB0000000F5820001202E0000E6007EC50000D3 -:107EC0000001F4020001F7044F58F41F28008496C3 -:107ED000FF548516FFC4F686409AC724720077388F -:107EE000FFFA862A00304739000077390002C73888 -:107EF0006800E0007F4CF63B28008496FF54F606AD -:107F00004098C72472007738FFFAC6B8000046B51B -:107F1000000076B50002C6B46000F5020001F53736 -:107F200028004739000077390002C73860002494E0 -:107F3000005A84A6000077A5001E77BCFFE5C4A404 -:107F40007FC074A5FFF007380002F4BB2800F704D7 -:107F50004F588516FF548496FFACC6A8720076B4BD -:107F6000FFFA0624001AF6B32800C72472007738F7 -:107F7000FFFA06A8001AF7372800473900009713C0 -:107F8000FFFC0724001C9713FFFCF5044F5C000066 -:107F900000019513FFFC07880008E0012340979338 -:107FA000FFFCF7044F588496FF5400000001C724DB -:107FB00072007738FFFA473900009713FFFC072457 -:107FC000001C9713FFFCF5044F5C000000019513A3 -:107FD000FFFC07880008E00123409793FFFC078817 -:107FE0000008E00078D89793FFFCF6846E500000FC -:107FF000000187361DDC00000001073800019736BC -:108000001DDC87361DDCF0054084F486E000949387 -:10801000FFFC07880008E000D5A09793FFFCF4055B -:108020004084F7046E50F005425C873A1DDCF6860A -:108030002C28F7053B64F7042D38F5063A4CF50576 -:10804000424406380001F6052D3877390002F482E3 -:10805000001C20320044E6008060B4BA6802F005DB -:108060002D38F50635ECE000808CF50542302032E5 -:108070000001E60080C40000000107880008E0005D -:10808000789C9793FFFCF4863560F4854230F506C2 -:1080900042449513FFFC07880008E0011F489793AE -:1080A000FFFCE00080C400000001F704429876B1B4 -:1080B000001E76B4FFE5C7386FC07739FFF0073888 -:1080C0000001F73328008796FFFC8296FFF8021420 -:1080D0000000013C0000000000019293FFFC0290B0 -:1080E0000008F58642449593FFFC07880008E001EC -:1080F00020E49793FFFC20220000E600816100004D -:108100000001F704425400000001203A0000EE0094 -:108110008129F606425007880008E00072AC979368 -:10812000FFFCE000816000000001F704425076B1DE -:10813000001E76B4FFE5F5820006F5854254C73887 -:108140006FC07739FFF007380001F7332800078840 -:108150000008E000734C9793FFFCF586381CF5850A -:1081600042448796FFFC8296FFF802140000013C0F -:108170000000000000019293FFFC02900008221012 -:108180000058F7044250F686425076B5001E76B489 -:10819000FFE5F6046F34C7386FC086B2000C77393C -:1081A000FFF0C0367200E6008250F4820000C50481 -:1081B000000086B20010F704E000C5A40000C0363D -:1081C0007200E60081E40430001086B20014F70467 -:1081D000E00400000001C0367200E60081E8202EB5 -:1081E0000000F5820001202E0000E60081F500006D -:1081F0000001F502000086A20000F704E000000084 -:108200000001C0367200E2008230F6020000C03683 -:108210007200E60082382032000086A20004F704D3 -:10822000E00400000001C0367200E2008239203212 -:108230000000F602000120320000E6008249202AF8 -:108240000000F5020001202A0000E60082592026E5 -:108250000000F482000120260000E6008760000094 -:10826000000107880008E000CBCC9793FFFC0720B3 -:108270000002F03B2800F7044F58F4053BB006A07D -:108280000014C72072007738FFFAF737280006A0DD -:108290000016F7372800F3020001F32328000788AF -:1082A0000008E000CBCC9793FFFC26140020F033AD -:1082B000280004A00002F0272800F3020000239405 -:1082C000002AF31F28000720001A2394002A839E07 -:1082D0000000779D001E77BCFFE5C39C7FC0739DA7 -:1082E000FFF07631001E7630FFE506A4000275151A -:1082F000001EF3BB2800F304E0007528FFE593227D -:10830000001CF384E0042314001E9316FFA4759947 -:10831000001E75ACFFE57315001E7318FFE593167C -:10832000FFCC8316FFA493A200208716FFE073956D -:10833000001E739CFFE59396FFAC7395001E739C23 -:10834000FFE5C73867C07738FFF0F7272800871A9E -:1083500000009396FFC4C7385FC07738FFF0F73747 -:10836000280006B400028716FFE42394001A9396AF -:10837000FFA4761D001E7630FFE5C73857C077385A -:10838000FFF0F7372800871E000006B40002C73848 -:1083900067C07738FFF0F737280006B40002871669 -:1083A000FFE8231400169316FFA47619001E839687 -:1083B000FFAC7630FFE5C7383FC07738FFF0F737BE -:1083C0002800871A000006B40002C73867C0773853 -:1083D000FFF0F737280006B400028716FFEC2314DD -:1083E00000129316FFA47619001E8396FFCC7630F8 -:1083F000FFE5C7383FC07738FFF0F7372800871A06 -:10840000000006B40002C73867C07738FFF0F737BE -:1084100028008716FFF08316FFC406B40002C73891 -:1084200037C07738FFF0F7372800F3820002F3A354 -:1084300028002314002A831A00007799001E77BCB5 -:10844000FFE5C3187FC07319FFF007200018F33B46 -:1084500028009416FFDC07880008E000CBCC979337 -:10846000FFFC072000022394002A839E0000779DD2 -:10847000001E77BCFFE5C39C7FC0739DFFF0248086 -:1084800000070520000AF3BB280020260007EE00A5 -:1084900084E00628000E86B200007731001E77388F -:1084A000FFE575B1001E75ACFFE50528000204A4C8 -:1084B0000001C6B477C076B5FFF0F702FF00C6B47E -:1084C0007400F6B3280087320000F30200FFC738BB -:1084D0005FC07739FFF0C7383400E0008488F73395 -:1084E000280005200026862A000076A9001EF584B3 -:1084F0004F5876B4FFE58396FFDCF30200FF941635 -:10850000FFBCC71C5A007738FFFAC6306FC07631FF -:10851000FFF047390000C7383400F682FF00C6304C -:108520006C00C7386000F6843B6CF72B2800C5A0B0 -:108530005A0075ACFFFA8316FFDC07340001F7051B -:108540003B6C0720003AF6BB280007200036F03BC2 -:108550002800F3820003F3A328000718001AF5BBD4 -:10856000280007880008E000CBCC9793FFFC072089 -:108570000002F03B2800248000070520000A202686 -:108580000007EE0085D40628000E86B20000773181 -:10859000001E7738FFE575B1001E75ACFFE50528B4 -:1085A000000204A40001C6B477C076B5FFF0F7025C -:1085B000FF00C6B47400F6B3280087320000F382CF -:1085C00000FFC7385FC07739FFF0C7383C00E000D4 -:1085D000857CF733280005A00026862E000076ADA6 -:1085E000001E76B4FFE5C520000024000007F3025A -:1085F00000019316FFA4F7044F588396FFBC248014 -:10860000000EC71C72007738FFFAC6306FC0763193 -:10861000FFF047390000F68200FFC7386C00F68291 -:10862000FF00C6306C00C7386000F6843B6CF72F43 -:10863000280007340001F7053B6C0728003AF6BB19 -:10864000280007280036F03B2800F3020003F32B34 -:10865000280020220007EE008694C6284800063035 -:1086600000268732000076B1001E76B4FFE504A430 -:108670000002042000018396FFA4C7386FC0773939 -:10868000FFF0F682FF00C7386C00C71C7000E000E6 -:108690008650F73328000628002686B2000077317E -:1086A000001E7738FFE5C6B477C076B5FFF0F70255 -:1086B000FF00C6B47400F6B328009513FFFCF30462 -:1086C0003BB0000000019313FFFC9516FFB4078830 -:1086D0000008E000D42C9793FFFC8516FFB4F0054A -:1086E000407C8396FFBC23000007F3054258F70443 -:1086F0004250F606425076B1001E76B4FFE5F3060E -:108700003934F3054244F5054074F3854260F38241 -:108710000006F3854254C7386FC07739FFF0F684FE -:108720002D3807380001F733280006340001F6051C -:108730002D38F7062C2876B50002F382001C203273 -:108740000044E600874CB3B67002F0052D38F306FE -:1087500042449313FFFC07880008E0011F489793E9 -:10876000FFFC8796FFFC8296FFF802140000013C94 -:108770000000000000019293FFFC0290000822100C -:108780000048F38642449393FFFC07880008E00109 -:1087900020E49793FFFC20220000E60089ED000012 -:1087A0000001F704425400000001203A0000EE00EE -:1087B00087C90000000107880008E000734C979308 -:1087C000FFFCE00089EC0000000107880008E000E1 -:1087D000CBCC9793FFFC26140020F033280005A093 -:1087E0000002F02F2800F382000024940022F3A757 -:1087F000280004A0001A9496FFD423940022839E9C -:108800000000779D001E77BCFFE5C39C7FC0739D71 -:10881000FFF07631001E7630FFE506AC000223142F -:10882000001E7519001EF3A72800F484E0007528C7 -:10883000FFE594A2001CF384E0047495001E74A468 -:10884000FFE59496FFB47495001E74A4FFE594961A -:10885000FFCC8496FFB493A200208716FFE07395A7 -:10886000001E739CFFE59396FFBC7395001E739CDE -:10887000FFE59396FFC48396FFBCC73867C077387F -:10888000FFF0F72F2800F5844F58871A0000C5A085 -:108890005A0075ACFFFAC73857C07738FFF0F73782 -:1088A000280006B400028716FFE42314001A761984 -:1088B000001E7630FFE545AD0000C7384FC0773861 -:1088C000FFF0F7372800871A000006B400028496EC -:1088D000FFCCC73867C07738FFF0F737280006B4F9 -:1088E00000028716FFE8231400167619001E763062 -:1088F000FFE5C7383FC07738FFF0F7372800871A01 -:10890000000006B40002C73867C07738FFF0F737B9 -:10891000280006B400028716FFEC23140012761913 -:10892000001E7630FFE5C7384FC07738FFF0F737C5 -:108930002800871A000006B400028396FFC4C738D7 -:1089400067C07738FFF0F73728008716FFF006B4C6 -:108950000002C7383FC07738FFF0F7372800F482AD -:108960000002F4A328000420001823940022839E10 -:108970000000779D001E77BCFFE5C39C7FC0739D00 -:10898000FFF08496FFD4F3A32800F3820001F3A73D -:1089900028009593FFFCF486E0009493FFFCF38499 -:1089A0004F5C000000019393FFFC07880008E00182 -:1089B00023409793FFFC07880008E00078D897933E -:1089C000FFFCF4863678F4854244F0054084F68452 -:1089D0004F5CF70200649736000090360004F702FF -:1089E0000001F7054084F38635ECF3854230879625 -:1089F000FFFC8296FFF802140000013C000000001A -:108A000000019293FFFC0290000822100090F704EE -:108A10004260F502000005B80018F6044258000054 -:108A2000000120320007EE008A70C7306000C738AE -:108A300058000738000E86BA00007739001E7738D4 -:108A4000FFE5C6B477C076B5FFF0F70200FFC6B405 -:108A50007400C0365200470C0001D7000A70203A5B -:108A60000000E6008A7107300001E0008A18F7056F -:108A70004258F40442580000000120220007EE0092 -:108A80008D9424940036F604426025140038239413 -:108A90000020063000028732000076B1001E76B456 -:108AA000FFE50630000275B1001EC7386FC0773889 -:108AB000FFF0F72B28008732000075ACFFE5C738C0 -:108AC0005FC07738FFF0F727280024940034063081 -:108AD00000028732000076B1001E76B4FFE5C73889 -:108AE0006FC07738FFF0F727280024940032063053 -:108AF00000028732000076B1001E76B4FFE5C73869 -:108B00006FC07738FFF0F727280024940030063034 -:108B100000028732000076B1001E76B4FFE5C73848 -:108B20006FC07738FFF0F72728002494002E063016 -:108B300000028732000076B1001E76B4FFE5C73828 -:108B40006FC07738FFF0F72728002494002C0630F8 -:108B500000028732000076B1001E76B4FFE5C73808 -:108B60006FC07738FFF0F72728002494002A0630DA -:108B700000028732000076B1001E76B4FFE5C738E8 -:108B80006FC07738FFF0F7272800063000028732E1 -:108B90000000249400287631001E7630FFE5C738A7 -:108BA00067C07738FFF0F72728009413FFFC951370 -:108BB000FFFC9396FF7C9393FFFC07880008E0007E -:108BC000D0DC9793FFFCF60442602494007E2514C9 -:108BD000008023940068063000028732000076B1DE -:108BE000001E76B4FFE50630000275B1001EC738DE -:108BF0006FC07738FFF0F72B28008732000075AC84 -:108C0000FFE5C7385FC07738FFF0F72728002494C6 -:108C1000007C063000028732000076B1001E76B478 -:108C2000FFE5C7386FC07738FFF0F7272800249496 -:108C3000007A063000028732000076B1001E76B45A -:108C4000FFE5C7386FC07738FFF0F7272800249476 -:108C50000078063000028732000076B1001E76B43C -:108C6000FFE5C7386FC07738FFF0F7272800249456 -:108C70000076063000028732000076B1001E76B41E -:108C8000FFE5C7386FC07738FFF0F7272800249436 -:108C90000074063000028732000076B1001E76B400 -:108CA000FFE5C7386FC07738FFF0F7272800249416 -:108CB0000072063000028732000076B1001E76B4E2 -:108CC000FFE5C7386FC07738FFF0F7272800063078 -:108CD000000287320000249400707631001E763046 -:108CE000FFE5C73867C07738FFF0F72728009513EE -:108CF000FFFC9396FF749393FFFC07880008E00045 -:108D0000D2589793FFFC8396FF7400000001939361 -:108D1000FFFCF704425823940050C70072009713D9 -:108D2000FFFC9396FF6C9393FFFC07880008E0001C -:108D3000CF249793FFFC8396FF6CF6864250939363 -:108D4000FFFCF384425876B5001E9393FFFCF704B2 -:108D5000425076B4FFE5C7386FC07739FFF09713FC -:108D6000FFFC8396FF7C000000019393FFFC0788C3 -:108D70000008E000F3389793FFFC20220000E60093 -:108D80008D9500000001F7044258000000010738EB -:108D90000001F7054258F704425800000001203A4C -:108DA0000007EE008DD4F3821770F7042D38F68695 -:108DB0002C2806380001F6052D3877390002F38299 -:108DC000001C20320044E6008DF4B3BA6802E000D3 -:108DD0008DF4F0052D389393FFFCF382001B9393E1 -:108DE000FFFCF38642449393FFFC07880008E001F0 -:108DF0001EC09793FFFC8796FFFC8296FFF8021433 -:108E00000000013C0000000000019293FFFC029072 -:108E1000000822100088F7044250F686425076B5CA -:108E2000001EF3846F3476B4FFE59396FFC4C73811 -:108E30006FC0869E000C7739FFF0C0367200E600E6 -:108E40008E65F60642A0F70442A076B1001E76B405 -:108E5000FFE5C7386FC07739FFF007380001E00041 -:108E600094E4F7332800F604426024940036851613 -:108E7000FFC423940038063000028732000076B128 -:108E8000001E76B4FFE5852A001C0630000275B18D -:108E9000001EC7386FC07738FFF09516FFBCF71F6C -:108EA00028008732000075ACFFE58516FFC4C7387F -:108EB0005FC07738FFF0F72728002494003406308D -:108EC00000028732000076B1001E76B4FFE5C73895 -:108ED0006FC07738FFF0F72728002494003206305F -:108EE00000028732000076B1001E76B4FFE5C73875 -:108EF0006FC07738FFF0F727280024940030063041 -:108F000000028732000076B1001E76B4FFE5C73854 -:108F10006FC07738FFF0F72728002494002E063022 -:108F200000028732000076B1001E76B4FFE5C73834 -:108F30006FC07738FFF0F72728002494002C063004 -:108F400000028732000076B1001E76B4FFE5C73814 -:108F50006FC07738FFF0F72728002494002A0630E6 -:108F600000028732000076B1001E76B4FFE5C738F4 -:108F70006FC07738FFF0F7272800063000028732ED -:108F80000000249400287631001E7630FFE5C738B3 -:108F900067C07738FFF0F7272800872A00200000F5 -:108FA00000019713FFFC9393FFFC271400209713F5 -:108FB000FFFC07880008E000D0DC9793FFFC839655 -:108FC000FFC400000001871E001000000001203ACD -:108FD0000000E6008FF0F6820000871E00140000FB -:108FE0000001203A0000E6008FF420360000F682EF -:108FF000000120360000E6009041000000018516C7 -:10900000FFC400000001052800109516FFB4951359 -:10901000FFFC07880008E00072509793FFFC8396DE -:10902000FFB4271400209393FFFC9713FFFC0788DD -:109030000008E000F9349793FFFCE00094E400009E -:1090400000018516FFBC00000001202A0000E60098 -:1090500094BC0000000107880008E000CBCC979387 -:10906000FFFCF502000023940062F51F28007595AF -:10907000001E75ACFFE50620000206B000022314B6 -:10908000001E7399001E739CFFE59396FF7475157F -:10909000001E7528FFE59516FF7C7395001E739CD6 -:1090A000FFE59396FF8C8516FFC47395001E93967B -:1090B000FF84852A0034239400629516FFACF033B8 -:1090C00028000520001A9516FF94839E0000779DC6 -:1090D000001E77BCFFE5C39C7FC0739DFFF07495B5 -:1090E000001EF3AB28008516FFC474A4FFE5852A93 -:1090F00000108396FFC49522001C839E00148516E1 -:10910000FF8493A200208716FFE07528FFE59516DF -:10911000FF84F3844F588516FF74C7385FC07738D3 -:10912000FFF0F7332800871A00009396FFA4C022AF -:109130003A008396FF7CC73857C07738FFF0F7377F -:10914000280006B400028716FFE42314001A7619DB -:10915000001E7630FFE5C7384FC07738FFF0F7378D -:109160002800871A000006B40002C73867C07738A5 -:10917000FFF0F737280006B400028716FFE8231433 -:1091800000167619001E7630FFE5C7383FC07738E5 -:10919000FFF0F7372800871A000006B40002851692 -:1091A000FF8C8396FF84C73867C07738FFF0F737A6 -:1091B000280006B400028716FFEC2314001276196B -:1091C000001E7630FFE5C73857C07738FFF0F73715 -:1091D0002800871A000006B40002C73867C0773835 -:1091E000FFF0F73728008716FFF006B40002C738F3 -:1091F0003FC07738FFF0F7372800F5020002F5236B -:10920000280023940052839E0000779D001E77BCA7 -:10921000FFE5C39C7FC0739DFFF003200018E600AC -:109220009230F39B2800F7044270E000929CF6060F -:1092300042728516FFC40000000186AA00200000CB -:10924000000107340007203A000EE2009294C73470 -:109250006800F5844260F38200FFC72C7000073875 -:10926000002686BA00009716FF747739001E7738FB -:10927000FFE5C6B477C076B5FFF0C6B43C00203633 -:109280000000470C0001D7000A70203A0000E600F9 -:1092900092C900000001F7044274F606427476B1E8 -:1092A000001E76B4FFE5C7386FC07739FFF0073886 -:1092B0000001F733280007880008E000789C9793A6 -:1092C000FFFCE00094E4000000018516FFA48396F3 -:1092D000FF74C720520074B8FFFAC6240000871E2E -:1092E0000000769D001E76B4FFE5C5AC520075AC5B -:1092F000FFFA46310000F50200FFC6305400C738BF -:109300006FC07739FFF0F682FF00C7386C00C630B7 -:109310007000F61F28008396FF948516FFC4F59F02 -:109320002800872A000400000001203A0024E600FB -:109330009469F6864098F7046E50862A002CC6A4DD -:10934000000023940062849E0000779D001E77BC7D -:10935000FFE5C4A47FC074A5FFF046B50000873ABE -:109360001DDC76B50002C0327200470C0001D70048 -:109370000A70203A0000F7064098E6009434C3349F -:109380007000C584000086AA0024F704E000F602FD -:109390000000C036720005280024E60093C495162C -:1093A000FF748396FFC400000001869E0028F70426 -:1093B000E00400000001C0367200E60093C82032CD -:1093C0000000F602000120320000E60093D5000004 -:1093D0000001F58200008516FF74F704E00086AAFC -:1093E000000000000001C0367200E2009414F60292 -:1093F0000000C0367200E600941C2032000086AAED -:109400000004F704E00400000001C0367200E2002E -:10941000941D20320000F602000120320000E60018 -:10942000942D202E0000F5820001202E0000E60081 -:10943000943900000001F4820001F7044F58F49BB6 -:1094400028008396FFC4F686409AC72072007738BA -:10945000FFFA861E00304739000077390002C7380E -:109460006800E00094E4F63B2800472500007739C7 -:109470000002C7386800F5020001F53B28000738F4 -:10948000000223940062839E0000779D001E77BC3B -:10949000FFE5C39C7FC0739DFFF025140062F3BB02 -:1094A0002800852A000077A9001E77BCFFE5C528A3 -:1094B0007FC07529FFF0E00094E4F51B2800839637 -:1094C000FFBC00000001201E0001E60094E4000043 -:1094D000000107880008E000789C9793FFFCF506E0 -:1094E0003560F50542308796FFFC8296FFF802143E -:1094F0000000013C0000000000019293FFFC02907C -:109500000008F50642449513FFFC07880008E001B7 -:1095100020E49793FFFC20220000E60096890000DB -:109520000001F68442540000000120360000EE00E5 -:10953000958DF5864250F7044250762D001E763008 -:10954000FFE526B40001F685425425000007F50525 -:109550004258F6842D38C73867C07739FFF007388E -:109560000001F72F280006340001F6052D38F70614 -:109570002C2876B50002F502001C20320044E600DB -:109580009688B5367002E0009688F0052D38F5040F -:109590004260000000019513FFFC07880008E0000E -:1095A000B2849793FFFCF6844F5800000001073403 -:1095B0000040C0227200E60095ECF6064276F70401 -:1095C000427476B1001E76B4FFE5C7386FC07739B4 -:1095D000FFF007380001F733280007880008E00093 -:1095E000789C9793FFFCE000968800000001F70448 -:1095F000426000000001C0227200E60096240000D4 -:1096000000019713FFFCF5043BB000000001951327 -:10961000FFFC07880008E000D42C9793FFFCE000D3 -:10962000964000000001C0226A00E600967100002A -:1096300000019713FFFC07880008E000CC609793B7 -:10964000FFFCF704407C000000010738000197137D -:10965000FFFCF5044074000000019513FFFC07882F -:109660000008E000BEF89793FFFCE0009688000039 -:109670000001F5044074000000019513FFFC078809 -:109680000008E000C1B49793FFFC8796FFFC829628 -:10969000FFF802140000013C00000000000192935A -:1096A000FFFC0290000822100070F6046F34F704EB -:1096B000426486B2000400000001C0367200E60079 -:1096C0009B1806B0000287360000F404407C76B593 -:1096D000001E76B4FFE5C7386FC07739FFF0C03A97 -:1096E0004200E6009B1824940036F604407423944C -:1096F0000038063000028732000076B1001E76B4D2 -:10970000FFE50630000275B1001EC7386FC077381C -:10971000FFF0F71F28008732000075ACFFE5C7385F -:109720005FC07738FFF0F727280024940034063014 -:1097300000028732000076B1001E76B4FFE5C7381C -:109740006FC07738FFF0F7272800249400320630E6 -:1097500000028732000076B1001E76B4FFE5C738FC -:109760006FC07738FFF0F7272800249400300630C8 -:1097700000028732000076B1001E76B4FFE5C738DC -:109780006FC07738FFF0F72728002494002E0630AA -:1097900000028732000076B1001E76B4FFE5C738BC -:1097A0006FC07738FFF0F72728002494002C06308C -:1097B00000028732000076B1001E76B4FFE5C7389C -:1097C0006FC07738FFF0F72728002494002A06306E -:1097D00000028732000076B1001E76B4FFE5C7387C -:1097E0006FC07738FFF0F727280006300002873275 -:1097F0000000249400287631001E7630FFE5C7383B -:1098000067C07738FFF0F72728009413FFFC939385 -:10981000FFFC271400209713FFFC07880008E000D6 -:10982000D0DC9793FFFC07880008E000CBCC97932F -:10983000FFFCF50440749416FFC407200002F03BBF -:10984000280024800007F40200FF8396FFC49516C9 -:10985000FFBC031C000A20260007EE0098A806188B -:10986000000E86B200007731001E7738FFE575B133 -:10987000001E75ACFFE503180002C6B477C076B5CC -:10988000FFF0F702FF00C6B47400F6B32800873279 -:10989000000004A40001C7385FC07739FFF0C73863 -:1098A0004400E0009854F73328008516FFC47495EF -:1098B000001E74A4FFE58396FFC42314001E7419D0 -:1098C000001E7420FFE5052800269516FF8C85AA4A -:1098D000000076A9001E76B4FFE5039C0002939673 -:1098E000FFB4061C00027395001E739CFFE593965F -:1098F000FFAC7395001E739CFFE59396FF9C8396C7 -:10990000FFBC7515001E7528FFE59516FF947515AB -:10991000001E7528FFE59516FFA48516FFC4C5AC8B -:109920006FC075ADFFF0F5054260F5044F58F68243 -:1099300000FFC71C52007738FFFA47390000C738CC -:109940006C00F682FF00C5AC6C00C73858008396E7 -:10995000FF8CF5843B6C8516FFB4F71F2800871633 -:10996000FFE006AC0001F6853B6C8396FFC4C73868 -:109970004FC07738FFF0F72B2800F5044F58871AAF -:109980000000C01E5200C73847C07738FFF0F733D9 -:109990002800063000028716FFE42314001A769987 -:1099A000001E8396FF9476B4FFE5C7383FC0773832 -:1099B000FFF0F7332800871A000006300002C7388E -:1099C0006FC07738FFF0F7332800063000028716A3 -:1099D000FFE8231400167699001E76B4FFE585167D -:1099E000FFAC8396FFA4C73857C07738FFF0F73332 -:1099F0002800871A0000063000028516FF9CC73831 -:109A00006FC07738FFF0F733280006300002871662 -:109A1000FFEC231400127699001E76B4FFE5C738D8 -:109A20003FC07738FFF0F7332800871A0000063070 -:109A300000028396FFC4C7386FC07738FFF0F73352 -:109A400028008716FFF006300002C73857C0773865 -:109A5000FFF0F7332800071C003AF5BB2800071C6D -:109A60000036F03B2800F5020003E6009AA4F51F3B -:109A70002800F7044278F606427876B1001E76B4E4 -:109A8000FFE5C7386FC07739FFF007380001F733BB -:109A9000280007880008E000789C9793FFFCE0000E -:109AA0009B1800000001F38642449393FFFC078853 -:109AB0000008E0011F489793FFFC25000007F5050B -:109AC0004258F7044250F606425076B1001E76B472 -:109AD000FFE5F3820006F3854254F5063934F505B7 -:109AE0004244C7386FC07739FFF0F6842D38073805 -:109AF0000001F733280006340001F6052D38F7067B -:109B00002C2876B50002F382001C20320044E600C7 -:109B10009B18B3B67002F0052D388796FFFC82962D -:109B2000FFF802140000013C0000000000019293C5 -:109B3000FFFC0290000822100078F38642449393C1 -:109B4000FFFC07880008E00120E49793FFFC202237 -:109B50000000E6009E4100000001F70442540000AE -:109B60000001203A0000EE009D8524940036F604A2 -:109B7000407425140038063000028732000076B1A8 -:109B8000001E76B4FFE50630000275B1001EC7382E -:109B90006FC07738FFF0F72B28008732000075ACD4 -:109BA000FFE5C7385FC07738FFF0F7272800249417 -:109BB0000034063000028732000076B1001E76B411 -:109BC000FFE5C7386FC07738FFF0F72728002494E7 -:109BD0000032063000028732000076B1001E76B4F3 -:109BE000FFE5C7386FC07738FFF0F72728002494C7 -:109BF0000030063000028732000076B1001E76B4D5 -:109C0000FFE5C7386FC07738FFF0F72728002494A6 -:109C1000002E063000028732000076B1001E76B4B6 -:109C2000FFE5C7386FC07738FFF0F7272800249486 -:109C3000002C063000028732000076B1001E76B498 -:109C4000FFE5C7386FC07738FFF0F7272800249466 -:109C5000002A063000028732000076B1001E76B47A -:109C6000FFE5C7386FC07738FFF0F72728000630C8 -:109C7000000287320000249400287631001E7630DE -:109C8000FFE5C73867C07738FFF0F7272800F3846F -:109C9000407C000000019393FFFC9513FFFC23948C -:109CA00000209396FF949393FFFC07880008E00040 -:109CB000D0DC9793FFFC8396FF9400000001939300 -:109CC000FFFC239400689396FF8C9393FFFC078816 -:109CD0000008E000D2589793FFFC8396FF8C0000A9 -:109CE00000019393FFFC9013FFFC23940050939684 -:109CF000FF849393FFFC07880008E000CF2497932C -:109D0000FFFC8702FF3400000001F7054264F38482 -:109D1000407C000000019393FFFC9713FFFC8396A7 -:109D2000FF84000000019393FFFC8396FF940000E2 -:109D300000019393FFFC07880008E000F7C89793A1 -:109D4000FFFC20220000E6009D5DF3821770F704FF -:109D500042540000000127380001F7054254939354 -:109D6000FFFCF382001B9393FFFCF3864244939322 -:109D7000FFFC07880008E0011EC09793FFFCE0008D -:109D80009E4000000001F504407CF4844074C72824 -:109D90005000C724700005B8002686AE0000772D5D -:109DA000001E7738FFE5C6B477C077B40008703E70 -:109DB000FFE8470C0001D7000A70203A0000F704C2 -:109DC0004F58E6009DFDF60200FFF7044278F606C4 -:109DD000427A76B1001E76B4FFE5C7386FC0773996 -:109DE000FFF007380001F733280007880008E0007B -:109DF000789C9793FFFCE0009E400000000186AE37 -:109E00000000772D001E7738FFE5C6B477C076B521 -:109E1000FFF0F7020001C7386400F602FF00C6B485 -:109E20006400C7386800F72F28000728000197133F -:109E3000FFFC9493FFFC07880008E000BEF89793AE -:109E4000FFFC8796FFFC8296FFF802140000013C9D -:109E50000000000000019293FFFC02900008221015 -:109E600000D8F38642449393FFFC07880008E00182 -:109E700020E49793FFFC20220000E600A2C9000026 -:109E80000001F704425400000001203A0000EE00F7 -:109E9000A03524940036F6044074251400380630AA -:109EA00000028732000076B1001E76B4FFE506306E -:109EB000000275B1001EC7386FC07738FFF0F72B6E -:109EC00028008732000075ACFFE5C7385FC07738DF -:109ED000FFF0F72728002494003406300002873270 -:109EE000000076B1001E76B4FFE5C7386FC0773842 -:109EF000FFF0F72728002494003206300002873252 -:109F0000000076B1001E76B4FFE5C7386FC0773821 -:109F1000FFF0F72728002494003006300002873233 -:109F2000000076B1001E76B4FFE5C7386FC0773801 -:109F3000FFF0F72728002494002E06300002873215 -:109F4000000076B1001E76B4FFE5C7386FC07738E1 -:109F5000FFF0F72728002494002C063000028732F7 -:109F6000000076B1001E76B4FFE5C7386FC07738C1 -:109F7000FFF0F72728002494002A063000028732D9 -:109F8000000076B1001E76B4FFE5C7386FC07738A1 -:109F9000FFF0F727280006300002873200002494E3 -:109FA00000287631001E7630FFE5C73867C0773865 -:109FB000FFF0F7272800F384407C00000001939312 -:109FC000FFFC9513FFFC239400209396FF4C939382 -:109FD000FFFC07880008E000D0DC9793FFFC839625 -:109FE000FF4C000000019393FFFC239400509396D4 -:109FF000FF449393FFFC07880008E000D258979332 -:10A00000FFFC8702FF3400000001F7054264F3847F -:10A01000407C000000019393FFFC9713FFFC8396A4 -:10A02000FF44000000019393FFFC8396FF4CE00087 -:10A03000A2809393FFFCF404407CF6044074F38206 -:10A040000000C7204000C73070000738002686BADD -:10A0500000007739001E7738FFE5C6B477C077B4C3 -:10A060000008703EFFE8470C0001D7000A70203A54 -:10A070000000E600A0AD9396FF3CF70442A0F60670 -:10A0800042A076B1001E76B4FFE5C7386FC07739BD -:10A09000FFF007380001F733280007880008E000C8 -:10A0A000789C9793FFFCE000A2C8000000010630F6 -:10A0B00000028732000076B1001E76B4FFE52494DA -:10A0C000007E25140080239400680630000275B1DC -:10A0D000001EC7386FC07738FFF0F72B2800873293 -:10A0E000000075ACFFE5C7385FC07738FFF0F72791 -:10A0F00028002494007C063000028732000076B1EC -:10A10000001E76B4FFE5C7386FC07738FFF0F72739 -:10A1100028002494007A063000028732000076B1CD -:10A12000001E76B4FFE5C7386FC07738FFF0F72719 -:10A13000280024940078063000028732000076B1AF -:10A14000001E76B4FFE5C7386FC07738FFF0F727F9 -:10A15000280024940076063000028732000076B191 -:10A16000001E76B4FFE5C7386FC07738FFF0F727D9 -:10A17000280024940074063000028732000076B173 -:10A18000001E76B4FFE5C7386FC07738FFF0F727B9 -:10A19000280024940072063000028732000076B155 -:10A1A000001E76B4FFE5C7386FC07738FFF0F72799 -:10A1B00028000630000287320000249400707631B7 -:10A1C000001E7630FFE5C73867C07738FFF0F72705 -:10A1D00028009413FFFC9513FFFC9396FF34939390 -:10A1E000FFFC07880008E000D0DC9793FFFC839613 -:10A1F000FF34000000019393FFFC239400B093967A -:10A20000FF2C9393FFFC07880008E000D258979337 -:10A21000FFFC8396FF2C000000019393FFFC8396C4 -:10A22000FF3C000000019393FFFC23940098939659 -:10A23000FF249393FFFC07880008E000CF24979346 -:10A24000FFFCF3820006F38542548702FF34F38655 -:10A2500038A8F3854244F7054264F384407C00004B -:10A2600000019393FFFC9713FFFC8396FF240000EB -:10A2700000019393FFFC8396FF3400000001939349 -:10A28000FFFC07880008E000F7C89793FFFC202236 -:10A290000000E600A2A9F3821770F7044254000000 -:10A2A000000127380001F70542549393FFFCF38225 -:10A2B000001B9393FFFCF38642449393FFFC0788B3 -:10A2C0000008E0011EC09793FFFC8796FFFC829672 -:10A2D000FFF802140000013C00000000000192930E -:10A2E000FFFC02900008F6046F34F704426486B263 -:10A2F000000400000001C0367200E600A3AC06B006 -:10A3000000028736000076B5001E76B4FFE5C73838 -:10A310006FC0F684407C7739FFF0C03A6A00E600EF -:10A32000A3ACC7346800F5844074F6044F580000AD -:10A330000001C62C62007630FFFAC5AC700005AC97 -:10A34000002686AE0000772D001E7738FFE54631E7 -:10A350000000C6B477C076B5FFF0F70200FFC63044 -:10A360007400F702FF00C6B47400C6306800F62F10 -:10A370002800F50642449513FFFC07880008E00119 -:10A380001F489793FFFCF704407C0000000107384A -:10A3900000019713FFFCF5044074000000019513C1 -:10A3A000FFFC07880008E000BEF89793FFFC879643 -:10A3B000FFFC8296FFF802140000013C0000000040 -:10A3C00000019293FFFC0290000822100080F70425 -:10A3D000425800000001203A0000E600A3F4203AB1 -:10A3E0000007F5020001F5054258F7044258000045 -:10A3F0000001203A0007EE00A6F02394001EF604A8 -:10A40000426023140066F4844078063000028732EC -:10A41000000076B1001E76B4FFE504A400027425A6 -:10A42000001E7420FFE5063000027531001E7528FD -:10A43000FFE59516FF7CC7386FC07738FFF025140D -:10A4400000209516FF94F72B280087320000851610 -:10A45000FF7C05A40002C73857C07738FFF0F71F0C -:10A4600028002394001C063000028732000076B1D9 -:10A47000001E76B4FFE525140050C7386FC077384A -:10A48000FFF0F71F28002394001A063000028732DD -:10A49000000076B1001E76B4FFE5C7386FC077388C -:10A4A000FFF0F71F280023940018063000028732BF -:10A4B000000076B1001E76B4FFE5C7386FC077386C -:10A4C000FFF0F71F280023940016063000028732A1 -:10A4D000000076B1001E76B4FFE5C7386FC077384C -:10A4E000FFF0F71F28002394001406300002873283 -:10A4F000000076B1001E76B4FFE5C7386FC077382C -:10A50000FFF0F71F28002394001206300002873264 -:10A51000000076B1001E76B4FFE5C7386FC077380B -:10A52000FFF0F71F28002394001006300002873246 -:10A53000000076AD001E7631001E7630FFE5C7388C -:10A5400067C07738FFF0F71F280087260000261421 -:10A550000068C73847C07738FFF0F7332800872EE8 -:10A56000000076B4FFE5C7386FC07738FFF0F71BFF -:10A5700028002314006405AC0002872E000076AD8D -:10A58000001E76B4FFE5C7386FC07738FFF0F71BC1 -:10A5900028002314006205AC0002872E000076AD6F -:10A5A000001E76B4FFE5C7386FC07738FFF0F71BA1 -:10A5B00028002314006005AC0002872E000076AD51 -:10A5C000001E76B4FFE5C7386FC07738FFF0F71B81 -:10A5D00028002314005E05AC0002872E000076AD33 -:10A5E000001E76B4FFE5C7386FC07738FFF0F71B61 -:10A5F00028002314005C05AC0002872E000076AD15 -:10A60000001E76B4FFE5C7386FC07738FFF0F71B40 -:10A6100028002314005A05AC0002872E000076ADF6 -:10A62000001E76B4FFE5C7386FC07738FFF0F71B20 -:10A63000280005AC0002872E00002314005875ADD9 -:10A64000001E75ACFFE5C7385FC07738FFF0F71B19 -:10A6500028009613FFFC9516FF8C9513FFFC0788C6 -:10A660000008E000D2589793FFFC8516FF8C00008D -:10A6700000019513FFFCF5044258000000019513FA -:10A68000FFFC251400389516FF849513FFFC0788FE -:10A690000008E000CF249793FFFCF5044258000027 -:10A6A00000019513FFFCF5044264000000019513BE -:10A6B000FFFC8516FF84000000019513FFFC851642 -:10A6C000FF94000000019513FFFC07880008E000DC -:10A6D000F7C89793FFFC20220000E600A6F10000D7 -:10A6E0000001F70442580000000107380001F70597 -:10A6F0004258F704425800000001203A0007EE00DB -:10A70000A730F5021770F7042D38F6862C28063886 -:10A710000001F6052D3877390002F502001C2032C1 -:10A720000044E600A750B53A6802E000A750F005E3 -:10A730002D389513FFFCF502001B9513FFFCF50661 -:10A7400042449513FFFC07880008E0011EC0979360 -:10A75000FFFC8796FFFC8296FFF802140000013C84 -:10A760000000000000019293FFFC029000082210FC -:10A770000030F6046F34F704426486B2000400002F -:10A780000001C0367200E600A9F007300002863AE8 -:10A790000000F5820000F684407C7739001E77388F -:10A7A000FFE5C63077C0F7044074C6B46800763160 -:10A7B000FFF0C60062009616FFF4C738680007383D -:10A7C000002686BA00007739001E7738FFE5C6B448 -:10A7D00077C077B40008703EFFE8470C0001D7004F -:10A7E0000A70203A0000E600A834F60200FF831643 -:10A7F000FFF48396FFF4F7044078C6983800C73812 -:10A8000068000738002686BA00007739001E7738BE -:10A81000FFE5C6B477C076B5FFF0C6B46400C036B5 -:10A820005A00470C0001D7000A70203A0000E600E9 -:10A83000A83D202E0000F5820001202E0000E60039 -:10A84000A875F606427CF704427C76B1001E76B409 -:10A85000FFE5C7386FC07739FFF007380001F733DD -:10A86000280007880008E000789C9793FFFCE00030 -:10A87000A9F000000001F3044260000000019313FE -:10A88000FFFC07880008E000CC609793FFFCF4040D -:10A890004078F7044F58F5044074F384407CF30487 -:10A8A000407CC62072007630FFFAC59C3000C5A8F7 -:10A8B000580005AC002686AE000074AD001E74A4DE -:10A8C000FFE573AD001E739CFFE59396FFD4C5288A -:10A8D00072007528FFFA8316FFF48396FFF4463161 -:10A8E000000045290000C7183800C420700004206B -:10A8F00000267321001EC6B44FC076B5FFF0F48267 -:10A9000000FFC6304C00F382FF00C6B43C00C630E6 -:10A910006800F62F2800872E00007318FFE59316B5 -:10A92000FFCC8316FFD48396FFF4C5284C00C738AC -:10A9300037C07739FFF0769D001076B5FFF8C7383D -:10A940004C00C6B47000F6AF28008722000076A144 -:10A95000001E8316FFCCF382FF0076B4FFE5C738F4 -:10A9600037C07739FFF0C7383C00C5287000F523A1 -:10A97000280087220000F304407CC7386FC0773975 -:10A98000FFF0731900109316FFEC7399FFF8C738A6 -:10A990004C00C71C70009716FFDC23140022831A9A -:10A9A00000007799001E77BCFFE5C3187FC07319BC -:10A9B000FFF0F3232800F38642449393FFFC0788BB -:10A9C0000008E0011F489793FFFCF704407C00005B -:10A9D0000001073800019713FFFCF30440740000E6 -:10A9E00000019313FFFC07880008E000BEF897936E -:10A9F000FFFC8796FFFC8296FFF802140000013CE2 -:10AA00000000000000019293FFFC02900008221059 -:10AA10000098F30642449313FFFC07880008E00106 -:10AA200020E49793FFFC20220000E600AEE5000042 -:10AA30000001F704425400000001203A0000EE003B -:10AA4000AD8927380001F70542542394001EF6040F -:10AA50004260249400669496FF64F3044078249442 -:10AA600000209496FF94063000028732000076B1F1 -:10AA7000001E76B4FFE5031800029316FF747419E4 -:10AA8000001E7420FFE505980002063000027531B3 -:10AA9000001EC7386FC07738FFF0F72728008732CD -:10AAA00000007528FFE5C73857C07738FFF0F71F5B -:10AAB00028002394001C063000028732000076B183 -:10AAC000001E76B4FFE58516FF64C7386FC077387F -:10AAD000FFF0F71F28002394001A06300002873287 -:10AAE000000076B1001E76B4FFE5C7386FC0773836 -:10AAF000FFF0F71F28002394001806300002873269 -:10AB0000000076B1001E76B4FFE5C7386FC0773815 -:10AB1000FFF0F71F2800239400160630000287324A -:10AB2000000076B1001E76B4FFE5C7386FC07738F5 -:10AB3000FFF0F71F2800239400140630000287322C -:10AB4000000076B1001E76B4FFE5C7386FC07738D5 -:10AB5000FFF0F71F2800239400120630000287320E -:10AB6000000076B1001E76B4FFE5C7386FC07738B5 -:10AB7000FFF0F71F280023940010063000028732F0 -:10AB8000000076AD001E7631001E7630FFE5C73836 -:10AB900067C07738FFF0F71F2800871A00002614D7 -:10ABA0000068C73847C07738FFF0F7332800872E92 -:10ABB000000076B4FFE5C7386FC07738FFF0F72B99 -:10ABC0002800231400649316FF6405AC0002872E4E -:10ABD000000076AD001E76B4FFE5C7386FC0773849 -:10ABE000FFF0F71B2800249400629496FF6405ACE4 -:10ABF0000002872E000076AD001E76B4FFE5C73850 -:10AC00006FC07738FFF0F7272800251400609516ED -:10AC1000FF6405AC0002872E000076AD001E76B4FE -:10AC2000FFE5C7386FC07738FFF0F72B28002314F3 -:10AC3000005E9316FF6405AC0002872E000076AD1F -:10AC4000001E76B4FFE5C7386FC07738FFF0F71BFA -:10AC500028002494005C9496FF6405AC0002872EC3 -:10AC6000000076AD001E76B4FFE5C7386FC07738B8 -:10AC7000FFF0F72728002514005A9516FF6405AC4D -:10AC80000002872E000076AD001E76B4FFE5249406 -:10AC90000050C7386FC07738FFF0F72B2800231417 -:10ACA000005805AC0002872E00009316FF6475ADB6 -:10ACB000001E75ACFFE5C7385FC07738FFF0F71BA3 -:10ACC00028009613FFFC9496FF8C9493FFFC078852 -:10ACD0000008E000D2589793FFFC8516FF8C2314E0 -:10ACE00000389513FFFC278000079793FFFC93160D -:10ACF000FF849313FFFC07880008E000CF2497939C -:10AD0000FFFC27800007F7854258278000079793AC -:10AD1000FFFCF4844264000000019493FFFC85165C -:10AD2000FF84000000019513FFFC8316FF940000D0 -:10AD300000019313FFFC07880008E000F7C8979311 -:10AD4000FFFC20220000E600AD5D00000001F704DA -:10AD500042580000000107380001F7054258F70487 -:10AD60002D38F6862C2806380001F6052D3877395F -:10AD70000002F482001C20320044E600AEE4B4BAC3 -:10AD80006802E000AEE4F0052D38F7044078F58461 -:10AD90004F580738001686BA0000F4063B90773902 -:10ADA000001E7738FFE5C6B477C076B4FFF076357D -:10ADB0000006A72E6002C52C600076A9001E76B49E -:10ADC000FFE5C7386FC07739FFF077390003C73820 -:10ADD00040000738000286BA00007739001E773835 -:10ADE000FFE5C6B477C073B7FFF0EE00AE55951619 -:10ADF000FF64A72E600276A9001E76B4FFE5C7386F -:10AE00006FC07739FFF077390003C738400086BA42 -:10AE10000004231400887739001E7738FFE5C6B494 -:10AE200077C076B5FFF0A6AA6802771D0003C73881 -:10AE3000680027380008853A000484BA0000000042 -:10AE40000001951A0004949A00008596FF7CE000AA -:10AE5000AE78000000018496FF64A72E600276A5FC -:10AE6000001E76B4FFE5C7386FC07739FFF0773939 -:10AE70000003C738400085BA00048516FF64F60653 -:10AE80003B90872A000076A9001E76B4FFE5C738FC -:10AE90006FC07739FFF077390003A6BA6002201E31 -:10AEA0000000C73860007739001E7738FFE5C6B468 -:10AEB00077C0EE00AEC976B5FFF08316FF780000CC -:10AEC00000017719FFF0C6B868008496FF6400009F -:10AED0000001C72468009713FFFC07880008C12CF5 -:10AEE00000009793FFFC8796FFFC8296FFF8021400 -:10AEF0000000013C0000000000019293FFFC029062 -:10AF0000000822100010F704408400000001203ADD -:10AF10000000E600AF3CF60642B8F70442B876B14E -:10AF2000001E76B4FFE5F3063678F3054244C738D1 -:10AF30006FC07739FFF007380001F7332800F704B6 -:10AF40004F5CF384425C833A0004C43800009316DB -:10AF5000FFEC771D0001C73838007739000204B8CC -:10AF6000000C8316FFEC00000001C01E3200EC0054 -:10AF7000B070C5040000A6A24802F704E000F58204 -:10AF80000000C0367200E600AFA8C620480086B2B6 -:10AF90000004F704E00400000001C0367200E6007F -:10AFA000AFAC202E0000F5820001202E0000E6004C -:10AFB000AFB900000001F502000086B20000F704FE -:10AFC000E00000000001C0367200E200AFF4F5823C -:10AFD0000000C0367200E600AFFC202E000086B2F2 -:10AFE0000004F704E00400000001C0367200E20033 -:10AFF000AFFD202E0000F5820001202E0000E600AB -:10B00000B00D202A0000F5020001202A0000E60011 -:10B01000B05900000001F7047AD000000001203A86 -:10B020000000E600B064C7204800873A0008F60632 -:10B03000409877390002A6BA6002C73860007739B5 -:10B04000001E7738FFE5C6B477C076B5FFF020362E -:10B050000000E600B0640000000104A4000CE00061 -:10B06000AF60039C00018316FFEC00000001C01ECE -:10B070003200EC00B104F3063678F6844F5C771D9D -:10B080000001C7383800773900020738000CC6B411 -:10B09000700087360008F6844F5877390006C6B42A -:10B0A00070009693FFFC9396FFF407880008E00079 -:10B0B000FA989793FFFC20220000F684426C839656 -:10B0C000FFF4470C0001D7000A70C71C7000F70599 -:10B0D000425C06B40001F7042D38F685426CF68612 -:10B0E0002C2806380001F6052D3877390002F302C6 -:10B0F000001C20320044E600B108B33A6802E000C8 -:10B10000B108F0052D38F30542448796FFFC82967E -:10B11000FFF802140000013C0000000000019293BF -:10B12000FFFC02900008F4020000C5A00000F682B7 -:10B130000770F7046E5020360000E600B16D063847 -:10B14000001C8732000000000001C4207000C022F3 -:10B150007200E400B15D0000000105AC000126B4FE -:10B16000000120360000E600B14006300004C42093 -:10B170005800C0225A00E400B18100000001042000 -:10B1800000018796FFFC8296FFF802140000013C44 -:10B190000000000000019293FFFC02900008078865 -:10B1A0000008E00078D89793FFFC07880008E000CB -:10B1B000B11C9793FFFCF704409400000001C022EB -:10B1C0007200E600B1EDF4054090F7046E50000007 -:10B1D000000186BA1DDCF582000106B4000196BAB2 -:10B1E0001DDC873A1DDCE000B1F0F5857AD0F00572 -:10B1F0007AD0F5844090F0054084F5854094F5863A -:10B20000E0009593FFFC07880008E000D5A0979325 -:10B21000FFFCF7046E50F405408485BA1DDC000085 -:10B220000001F5853B64F584E000F005425C95BAC9 -:10B230000010F584E004F6862C2895BA0014F70473 -:10B240002D38F5863A4CF585424406380001F6055E -:10B250002D3877390002F582001C20320044E600C8 -:10B26000B268B5BA6802F0052D38F58635ECF5857B -:10B2700042308796FFFC8296FFF802140008013CDA -:10B280000000000000019293FFFC029000082210D1 -:10B2900000C8F30200009316FF94248000089496DF -:10B2A000FF84238000078316FF940000000193169B -:10B2B000FF54201E0007EE00B564C71C38008496BA -:10B2C000000000000001C72470000738002686BA7D -:10B2D0000000F5844F587739001E7738FFE5C6B473 -:10B2E00077C076B5FFF0F70200FFC6B67400E6003F -:10B2F000B32D20360001E600B32D77350006A6BA3F -:10B300005802C73858007639001E7630FFE5C6B4BB -:10B3100067C076B5FFF020360002E600B331C6B84C -:10B320000000C72C0000E000B330C6B80000F6846F -:10B330004F58F7044F58C5340000C02A7200E60089 -:10B34000B55D00000001F6843BBCF30200009316DB -:10B35000FF3C0428001CF7043BB800000001C03685 -:10B360007200EC00B4409696FFAC77350001C73808 -:10B37000680077390002F4863BB4C63848000630CE -:10B38000000CC30400009316FF3486B20000872A25 -:10B39000001C8596FF3CC0367200E600B3C0202E2C -:10B3A000000086B20004872A002000000001C03699 -:10B3B0007200E600B3C0202E0000F5820001202EAE -:10B3C0000000E600B3D100000001F4820000949672 -:10B3D000FF3486B200008722000000000001C03662 -:10B3E0007200E200B40CF5820000C0367200E60084 -:10B3F000B414202E000086B200048722000400004E -:10B400000001C0367200E200B415202E0000F58263 -:10B410000001202E0000E600B42500000001F30228 -:10B4200000019316FF348496FF34000000012026AB -:10B430000000E600B44000000001F3020001931692 -:10B44000FF3C8496FF3C0000000120260000E6003F -:10B45000B481F60200018716FFACF3063BB476B95F -:10B460000001C6B4700076B50002C6B4300006B460 -:10B47000001486B600009716FFB0E000B4F496966C -:10B48000FFB4271400549713FFFC9413FFFCF486B9 -:10B490003BB49493FFFC9396FF4C9516FF440788AA -:10B4A0000008E00125689793FFFC8396FF4C851602 -:10B4B000FF4420220000E600B4F1F60200018716E6 -:10B4C000FFACF3063BB476B90001C6B4700076B5A4 -:10B4D0000002C6B4300006B4001486B60000971609 -:10B4E000FFB09696FFB4F7053BBCE000B4F82032FD -:10B4F0000000F602000020320000E600B52D2714FF -:10B5000000088496FF5400000001C72470008316D1 -:10B51000FFB404A400049496FF548496FF94933AD5 -:10B52000FFC004A40001E000B5549496FF94831674 -:10B53000FF5400000001C7187000F4844F5803182E -:10B5400000049316FF548316FF9494BAFFC00318A7 -:10B5500000019316FF949516FF3C9396FF8CE00034 -:10B56000B2B0039C00018496FF94000000012026E5 -:10B570000000E600B584F3820001F4044F58E000B7 -:10B58000BEE4000000018316FFB88496FF9400001B -:10B590000001C01E4A00EC00B5CC9316FF7C269437 -:10B5A00000048736FFC08316FF7C00000001C03A0C -:10B5B0003200E600BB98039C00018496FF940000D3 -:10B5C0000001C01E4A00EC00B5A106B40004F4045A -:10B5D0004F588316FF7C00000001C01A4200E600AD -:10B5E000BA2DF48200009496FF7423800007201E79 -:10B5F0000007EE00B748C71C38008316FF7C000028 -:10B600000001C71870000738002686BA0000F584CC -:10B610004F587739001E7738FFE5C6B477C076B546 -:10B62000FFF0F70200FFC6B67400E600B6692036E8 -:10B630000001E600B66977350006A6BA5802C73899 -:10B6400058007639001E7630FFE5C6B467C076B57F -:10B65000FFF020360002E600B66DC6B80000C72C29 -:10B660000000E000B66CC6B80000F6844F58F7043E -:10B670004F58C5340000C02A7200E600B741C584A7 -:10B6800000008496FF7486AA001C8316FF3CF60215 -:10B69000000004A400019496FF74871A001C04A8FB -:10B6A000001C9496FF34C0367200E600B6CC041835 -:10B6B000001C86AA0020871A002000000001C03666 -:10B6C0007200E600B6D020320000F60200012032FF -:10B6D0000000E600B6DD00000001F58200008316E0 -:10B6E000FF3487220000869A000000000001C03667 -:10B6F0007200E200B71CF6020000C0367200E600DD -:10B70000B72420320000869A00048722000400003B -:10B710000001C0367200E200B72520320000F602B8 -:10B72000000120320000E600B735202E0000F5822F -:10B730000001202E0000E600B740000000019396B3 -:10B74000FF84E000B5EC039C00018496FF7483162F -:10B75000FF9400000001C0263200E600BB982300E1 -:10B7600000088496FF8400000001C0263200E60035 -:10B77000BB99F6020000F684407CF7044074C6B41E -:10B780006800C73868000738002686BA0000773995 -:10B79000001E7738FFE5C6B477C077B40008703E66 -:10B7A000FFE8470C0001D7000A70203A0000E600CD -:10B7B000B804F58200FF8496FF848316FF8C000096 -:10B7C0000001C72432008496FF7CC7387000C7246C -:10B7D00070000738002686BA00007739001E7738D7 -:10B7E000FFE5C6B477C076B5FFF0C6B45C00C036DE -:10B7F0006200470C0001D7000A70203A0000E60002 -:10B80000B80D20320000F602000120320000E600F0 -:10B81000BB9823800007201E0007EE00B8C8C71C95 -:10B8200038008316000000000001C71870000738B8 -:10B83000002686BA0000F5844F587739001E773805 -:10B84000FFE5C6B477C076B5FFF0F70200FFC6B6D5 -:10B850007400E600B89120360001E600B891773513 -:10B860000006A6BA5802C73858007639001E76304E -:10B87000FFE5C6B467C076B5FFF020360002E600EB -:10B88000B895C6B80000C72C0000E000B894C6B850 -:10B890000000F6844F58F7044F58C5340000C02A02 -:10B8A0007200E600B8C1000000019513FFFC9396FA -:10B8B000FF4C07880008E000CC609793FFFC83965C -:10B8C000FF4CE000B814039C00018496FF848316AB -:10B8D000FF8CF384407CF5044074C4A43200949639 -:10B8E000FF348316FF34C59C3800C5A8580005AC4A -:10B8F000002686AE0000772D001E7738FFE5742DF8 -:10B90000001E7420FFE5739D0010739DFFF8C4A412 -:10B9100030009496FF3C8316FF7CC6B477C0C49871 -:10B9200048009496FF3C04A400269496FF3C73259F -:10B93000001E7318FFE59316FF6C74A5001E949605 -:10B94000FF6474A4FFE59496FF648316FF7CF4847F -:10B950004F5876B5FFF0C6184A007630FFFA4631E8 -:10B960000000F30200FFC6303400F482FF00C6B4CA -:10B970004C00C6306800F62F2800872E0000831682 -:10B98000FF34C73847C07739FFF07319001093169A -:10B99000FF347499FFF8F30200FFC7383400C7245E -:10B9A00070009716FF34249400CA84A6000077A57F -:10B9B000001E77BCFFE5C4A47FC074A5FFF083160A -:10B9C000FF3CF4AF2800F4844F58871A0000C528C4 -:10B9D0004A007528FFFA8316FF6C45290000F4829F -:10B9E00000FFC5284C008496FF3CC73837C0773924 -:10B9F000FFF0F302FF00C7383400C5287000F527B8 -:10BA00002800872600008316FF648416FF7CC73851 -:10BA100037C07739FFF0F48200FFC7384C00831637 -:10BA2000FF3CC39C7000E000BEE4F39B2800F704D9 -:10BA3000407CF6044074C7387000C7307000073887 -:10BA4000002686BA00007739001E7738FFE5C6B4B5 -:10BA500077C077B40008703EFFE8470C0001D700BC -:10BA60000A70203A0000E600BA7D25800007E00059 -:10BA7000BEE404200040E000BAD8C42C0000C73067 -:10BA80004200849600007538FFFA0624000A202E32 -:10BA90000007EE00BAD40730000E86BA00007739EE -:10BAA000001E7738FFE5C6B477C076B5FFF0F70221 -:10BAB00000FFC6B4740047290000C0367200470C6E -:10BAC0000001203A0000E600BA7406300002E000EF -:10BAD000BA8C05AC0001F402000807200007203AE8 -:10BAE000000EE200BBA4C5A0400083160000F504D0 -:10BAF000407CF48200FFF6044F58C598580005AC0E -:10BB0000002686AE0000772D001E7738FFE5C618A8 -:10BB100062007630FFFA46310000C6304C00C6B4F1 -:10BB200077C076B5FFF0772900107739FFF8C6B4F3 -:10BB30004C00C7386800F72F2800F5844074C528EA -:10BB40005000C5AC500005AC002686AE0000772D35 -:10BB5000001E7738FFE5752D001E7528FFE5C6B479 -:10BB600077C076B5FFF0F702FF00C6B47400C630A8 -:10BB70006800F62F2800872E000076A1001076B509 -:10BB8000FFF8C73857C07739FFF0C7384C00C6B444 -:10BB90007000E000BBF8F6AF2800F4044F58E00056 -:10BBA000BEE404200040F6044F5883160000F7045A -:10BBB000407CF5844074C61862007630FFFAC738BE -:10BBC0007000C5AC700005AC002686AE0000772D75 -:10BBD000001E7738FFE546310000C6B477C076B561 -:10BBE000FFF0F70200FFC6307400F702FF00C6B492 -:10BBF0007400C6306800F62F280023800007201E3E -:10BC00000007EE00BEE0C71C38008496000000006C -:10BC10000001C72470000738002686BA0000F584AA -:10BC20004F587739001E7738FFE5C6B477C076B530 -:10BC3000FFF0F70200FFC6B67400E600BC792036BC -:10BC40000001E600BC7977350006A6BA5802C7386D -:10BC500058007639001E7630FFE5C6B467C076B569 -:10BC6000FFF020360002E600BC7DC6B80000C72CFD -:10BC70000000E000BC7CC6B80000F6844F58F70412 -:10BC80004F58C5340000C02A7200E600BED906A88D -:10BC9000001C83160000000000019313FFFC969324 -:10BCA000FFFCF4863BB49493FFFC9396FF4C9516EF -:10BCB000FF449696FF4007880008E00123409793D1 -:10BCC000FFFCF3044F5CF48200009496FF5C8696C0 -:10BCD000FF408396FF4C8516FF449316FF34861A67 -:10BCE00000089696FF3C871A000400000001C0324D -:10BCF0007200EC00BDB89616FF9C77310001C73882 -:10BD0000600077390002C63830000630000C86B279 -:10BD10000000872A001C8596FF5CC0367200E60092 -:10BD2000BD40C404000086B20004872A0020000041 -:10BD30000001C0367200E600BD44202E0000F582EE -:10BD40000001202E0000E600BD5100000001F402B9 -:10BD500000008316FF3C86B20000871A0000000036 -:10BD60000001C0367200E200BD90F5820000C036CE -:10BD70007200E600BD98202E000086B20004871AEB -:10BD8000000400000001C0367200E200BD99202EC0 -:10BD90000000F5820001202E0000E600BDA920224F -:10BDA0000000F402000120220000E600BDB80000FF -:10BDB0000001F48200019496FF5C8316FF5C000092 -:10BDC0000001201A0000E600BDF9F6020001871606 -:10BDD000FF9C8496FF3476B90001C6B4700076B536 -:10BDE0000002C6B4480006B4001486B600009716D8 -:10BDF000FFA0E000BE709696FFA42714006497137E -:10BE0000FFFC8316FF3C000000019313FFFC8496A7 -:10BE1000FF34000000019493FFFC9396FF4C9516AD -:10BE2000FF4407880008E00125689793FFFC83968C -:10BE3000FF4C8516FF4420220000E600BE71F6028A -:10BE400000008716FF9C8316FF3476B90001C6B444 -:10BE5000700076B50002C6B4300006B4001486B691 -:10BE600000009716FFA09696FFA4971A0008F60206 -:10BE7000000120320000E600BE99F606429CF7045D -:10BE8000429C76B1001E76B4FFE5C7386FC07739A3 -:10BE9000FFF007380001F7332800F7044F5800007F -:10BEA0000001C72872007738FFFA4739000097135E -:10BEB000FFFC0728001C9713FFFCF4844F5C000074 -:10BEC00000019493FFFC9396FF4C07880008E00163 -:10BED00023409793FFFC8396FF4CE000BBFC039C40 -:10BEE0000001841600008796FFFC8296FFF802147A -:10BEF0000004013C0000000000019293FFFC02904E -:10BF0000000822100060851600008616000406A8AE -:10BF10000018C7306000C5B8680020320007EE0086 -:10BF2000BF64072C000E86BA00007739001E7738F0 -:10BF3000FFE5C6B477C076B5FFF0F70200FFC6B4E0 -:10BF4000740020360000470C0001D7000A70203A28 -:10BF50000000E600BF6105AC0002E000BF1806303B -:10BF6000000120320007EE00C04C06A80016F505BF -:10BF70004074F605407CF3020006F3054254961324 -:10BF8000FFFC052800029516FFC49513FFFC2394BF -:10BF900000209396FFBC9393FFFC9616FFAC078896 -:10BFA0000008E000D0DC9793FFFC8496FFC42314C4 -:10BFB00000389493FFFC9316FFB49313FFFC07889B -:10BFC0000008E000D2589793FFFC8702FF348616E2 -:10BFD000FFACF70542649613FFFC9713FFFC8396B2 -:10BFE000FFB4000000019393FFFC8496FFBC0000A7 -:10BFF00000019493FFFC07880008E000F7C89793BE -:10C00000FFFC20220000E600C01DF3063AD8F7042A -:10C0100042540000000127380001F7054254F3059F -:10C020004244F38217709393FFFCF482001B9493B5 -:10C03000FFFCF30642449313FFFC07880008E0016D -:10C040001EC09793FFFCE000C1A0000000018736EE -:10C050000000F5844F58F4063B7076B5001E76B4A8 -:10C06000FFE5C7386FC07738FFF076390006A72E96 -:10C070006002C52C600076A9001E76B4FFE5C738C3 -:10C080006FC07739FFF077390003C73840000738B1 -:10C09000000286BA00007739001E7738FFE5C6B483 -:10C0A00077C076B7FFF0EE00C1159696FF9CA72EDD -:10C0B000600276A9001E76B4FFE58396FF9CC73820 -:10C0C0006FC07739FFF077390003C738400086BA70 -:10C0D0000004249400607739001E7738FFE5C6B469 -:10C0E00077C076B5FFF0A6AA6802771D0003C738AF -:10C0F00068002738000883BA0004833A0000000073 -:10C10000000193A60004932600008596FFA4E0009A -:10C11000C13823000007A72E600276A9001E76B45E -:10C12000FFE5C7386FC07739FFF077390003C738AC -:10C13000400085BA0004230000079313FFFC872A00 -:10C14000000076A9001E76B4FFE58396FF9CF606F4 -:10C150003B70C7386FC07739FFF077390003A6BA54 -:10C160006002201E0000C73860007739001E773853 -:10C17000FFE5C6B477C0EE00C18D76B5FFF08496BA -:10C18000FFA0000000017725FFF0C6B86800C728AF -:10C1900068009713FFFC07880008C12C00009793E4 -:10C1A000FFFC8796FFFC8296FFF802140008013C12 -:10C1B0000000000000019293FFFC02900008221092 -:10C1C000007025000007202A0007EE00C3B8C7282A -:10C1D00050008316000000000001C71870000738E7 -:10C1E000002686BA0000F5844F587739001E77384C -:10C1F000FFE5C6B477C076B5FFF0F70200FFC6B61C -:10C200007400E600C23D20360001E600C23D7735ED -:10C210000006A6BA5802C73858007639001E763094 -:10C22000FFE5C6B467C076B5FFF020360002E60031 -:10C23000C24DC03A5A00E000C248C72C0000F704C3 -:10C240004F58F5844F5800000001C03A5A00E600EC -:10C25000C3B1F4863B908396000000000001069C69 -:10C2600000168736000076B5001E76B4FFE5C738A5 -:10C270006FC07738FFF076390006A72E6002C52C14 -:10C28000600076A9001E76B4FFE5C7386FC0773925 -:10C29000FFF077390003C73848000738000286BA34 -:10C2A00000007739001E7738FFE5C6B477C076B74F -:10C2B000FFF0EE00C3219696FF8CA72E600276A9B0 -:10C2C000001E76B4FFE58316FF8CC7386FC0773940 -:10C2D000FFF077390003C738480086BA0004249479 -:10C2E00000707739001E7738FFE5C6B477C076B5A1 -:10C2F000FFF0A6AA680277190003C738680027383C -:10C30000000883BA0004833A00000000000193A6ED -:10C310000004932600008616FF94E000C34400004A -:10C320000001A72E600276A9001E76B4FFE5F30691 -:10C330003B90C7386FC07739FFF077390003C738B3 -:10C340003000863A0004872A000076A9001E76B4E1 -:10C35000FFE58396FF8CF4863B90C7386FC0773932 -:10C36000FFF077390003A6BA4802201E0000C73844 -:10C3700048007739001E7738FFE5C6B477C0EE0075 -:10C38000C39576B5FFF08316FF9000000001771982 -:10C39000FFF0C6B86800C72868009713FFFC07883D -:10C3A0000008C13000009793FFFCE000C5C4000006 -:10C3B0000001E000C1C40528000183960000F4825A -:10C3C0000006F4854254F60442602514001E23142E -:10C3D00000209316FFACF3854078063000028732C8 -:10C3E000000076B1001E76B4FFE50630000275B19C -:10C3F000001EC7386FC07738FFF0F71B2800873260 -:10C40000000075ACFFE5C7385FC07738FFF0F72B49 -:10C4100028002514001C063000028732000076B187 -:10C42000001E76B4FFE5C7386FC07738FFF0F72BF2 -:10C4300028002514001A063000028732000076B169 -:10C44000001E76B4FFE5C7386FC07738FFF0F72BD2 -:10C45000280025140018063000028732000076B14B -:10C46000001E76B4FFE5C7386FC07738FFF0F72BB2 -:10C47000280025140016063000028732000076B12D -:10C48000001E76B4FFE5C7386FC07738FFF0F72B92 -:10C49000280025140014063000028732000076B10F -:10C4A000001E76B4FFE5C7386FC07738FFF0F72B72 -:10C4B000280025140012063000028732000076B1F1 -:10C4C000001E76B4FFE5C7386FC07738FFF0F72B52 -:10C4D0002800063000028732000025140010763153 -:10C4E000001E7630FFE5C73867C07738FFF0F72BBE -:10C4F0002800071C00029713FFFC2394005093961A -:10C50000FFA49393FFFC07880008E000D25897939C -:10C51000FFFC8496FFA4231400389493FFFC27802B -:10C5200000079793FFFC9316FF9C9313FFFC07886B -:10C530000008E000CF249793FFFC8702FF34278098 -:10C540000007F7854258F705426427800007979354 -:10C55000FFFC9713FFFC8396FF9C00000001939360 -:10C56000FFFC8496FFAC000000019493FFFC078859 -:10C570000008E000F5F49793FFFC20220000E6009D -:10C58000C59500000001F70442580000000107387B -:10C590000001F7054258F7042D38F30639C0F305BA -:10C5A0004244F6862C2806380001F6052D387739E6 -:10C5B0000002F382001C20320044E600C5C4B3BA76 -:10C5C0006802F0052D388796FFFC8296FFF802146A -:10C5D0000004013C0000000000019293FFFC029067 -:10C5E000000825000007F7044074F6844F58F6044D -:10C5F0004260C7386A0075B8FFFA0630000A202A80 -:10C600000007EE00C6480730000E86BA00007739F2 -:10C61000001E7738FFE5C6B477C076B5FFF0F702A5 -:10C6200000FFC6B47400472D0000C0367200470CEE -:10C630000001203A0000E600C64CC3280000063086 -:10C640000002E000C5FC05280001F3020008C5183F -:10C650003000F3844260F6044F58F704407CF484C1 -:10C660004074C51C50000528002685AA00007429C6 -:10C67000001E7420FFE5C61C62007630FFFAC6B8C3 -:10C680007000C4A4680004A4002676A5001E76B439 -:10C69000FFE5773900107739FFF846310000C5AC67 -:10C6A00047C075ADFFF0F40200FFC5AC4400C738C9 -:10C6B0005800F72B28008726000075A5001EC630FD -:10C6C000440075ACFFE5C7386FC07739FFF0F682DC -:10C6D000FF00C7386C00C6307000F6272800872698 -:10C6E00000007699001076B5FFF8C7385FC077393B -:10C6F000FFF0C7384400C6B47000F6A72800939333 -:10C70000FFFCF3843BB0000000019393FFFC07881B -:10C710000008E000D42C9793FFFCF704407C000055 -:10C720000001073800019713FFFCF38440740000F8 -:10C7300000019393FFFC07880008E000BEF8979380 -:10C74000FFFC8796FFFC8296FFF802140004013C70 -:10C750000000000000019293FFFC02900008879601 -:10C76000FFFC8296FFF802140008013C0000000064 -:10C7700000019293FFFC029000088796FFFC8296CE -:10C78000FFF802140004013C000000000001929335 -:10C79000FFFC029000088796FFFC8296FFF80214C7 -:10C7A0000000013C0000000000019293FFFC029099 -:10C7B0000008F70642309713FFFCF7063560971321 -:10C7C000FFFC07880008E00014F49793FFFCF706CD -:10C7D00042309713FFFCF70635EC9713FFFC0788F0 -:10C7E0000008E00014F49793FFFCF7064244971307 -:10C7F000FFFCF70636789713FFFC07880008E00077 -:10C8000014F49793FFFCF70642449713FFFCF706D6 -:10C8100037049713FFFC07880008E00014F497938F -:10C82000FFFCF70642449713FFFCF7063790971377 -:10C83000FFFC07880008E00014F49793FFFCF7065C -:10C8400042449713FFFCF706381C9713FFFC078838 -:10C850000008E00014F49793FFFCF7064244971396 -:10C86000FFFCF70638A89713FFFC07880008E000D4 -:10C8700014F49793FFFCF70642449713FFFCF70666 -:10C8800039349713FFFC07880008E00014F49793ED -:10C89000FFFCF70642449713FFFCF70639C09713D5 -:10C8A000FFFC07880008E00014F49793FFFCF706EC -:10C8B00042449713FFFCF7063A4C9713FFFC078896 -:10C8C0000008E00014F49793FFFCF7064244971326 -:10C8D000FFFCF7063AD89713FFFC07880008E00032 -:10C8E00014F49793FFFC8796FFFC8296FFF80214DE -:10C8F0000000013C0000000000019293FFFC029048 -:10C90000000885960000F5063B90872E000076AD66 -:10C91000001E76B4FFE5C7386FC07739FFF077396E -:10C920000003C73850000738000286BA0000773984 -:10C93000001E7738FFE5C6B477C07637FFF0EE000B -:10C94000C99500000001872E000076AD001E76B468 -:10C95000FFE5C7386FC07739FFF077390003C73874 -:10C96000500086BA00047739001E7738FFE5C6B458 -:10C9700077C076B5FFF0A6AE680277310003C738FE -:10C9800068002738000884BA0004843A0000E000F8 -:10C99000C9B4C5240000872E000076AD001E76B411 -:10C9A000FFE5C7386FC07739FFF077390003C73824 -:10C9B0005000853A0004872E000076AD001E76B444 -:10C9C000FFE520320000F6063B90C7386FC077398C -:10C9D000FFF077390003A6BA6002C73860007739E4 -:10C9E000001E7738FFE5C6B477C0EE00C9F976B50A -:10C9F000FFF07721FFF0C6B86800C72C68009713D6 -:10CA0000FFFC07880008C12800009793FFFC879669 -:10CA1000FFFC8296FFF802140004013C00000000B5 -:10CA200000019293FFFC0290000885960000F50635 -:10CA30003B70872E000076AD001E76B4FFE5C73848 -:10CA40006FC07739FFF077390003C73850000738D7 -:10CA5000000286BA00007739001E7738FFE5C6B4B9 -:10CA600077C07637FFF0EE00CABD00000001872EC8 -:10CA7000000076AD001E76B4FFE5C7386FC0773989 -:10CA8000FFF077390003C738500086BA00047739C1 -:10CA9000001E7738FFE5C6B477C076B5FFF0A6AEC6 -:10CAA000680277310003C73868002738000884BA65 -:10CAB0000004843A0000E000CADCC5240000872E90 -:10CAC000000076AD001E76B4FFE5C7386FC0773939 -:10CAD000FFF077390003C7385000853A0004839689 -:10CAE000000476AD001E76B4FFE52032000093937B -:10CAF000FFFC872E0000F6063B70C7386FC0773901 -:10CB0000FFF077390003A6BA6002C73860007739B2 -:10CB1000001E7738FFE5C6B477C0EE00CB2976B5A6 -:10CB2000FFF07721FFF0C6B86800C72C68009713A4 -:10CB3000FFFC07880008C12800009793FFFC879638 -:10CB4000FFFC8296FFF802140008013C0000000080 -:10CB500000019293FFFC02900008F5044F58F58203 -:10CB6000000206280080202E0062EE00CB900730E5 -:10CB70000040F0332800C6B8520076B4FFFA063001 -:10CB80000014F6B32800C6380000E000CB6405AC02 -:10CB90000001F7044F580000000106B818D4F482D1 -:10CBA0000001F4B72800073818C0F03B2800F7064A -:10CBB00042C0F4820002F4BB28008796FFFC8296F4 -:10CBC000FFF802140000013C0000000000019293F5 -:10CBD000FFFC02900008F68442C0F60642C077319E -:10CBE000001E7738FFE575B1001EC6B477C076B475 -:10CBF000FFF0F7044F5876B50006C4386800872266 -:10CC0000001476A1001E76B4FFE5C7386FC07738F0 -:10CC1000FFF0F7332800F70442C075ACFFE5C738D2 -:10CC20005FC07738FFF0203A0001E600CC4CF606F2 -:10CC30004290F704429076B1001E76B4FFE5C73803 -:10CC40006FC07739FFF007380001F7332800879667 -:10CC5000FFFC8296FFF802140000013C0000000077 -:10CC600000019293FFFC0290000822100004851638 -:10CC70000000000000019513FFFC9516FFF40788E3 -:10CC80000008E000CD009793FFFC8516FFF42022FA -:10CC90000000E600CCBCF58642C0F7044290F606E0 -:10CCA000429276B1001E76B4FFE5C7386FC077397F -:10CCB000FFF007380001E000CCECF7332800F02B40 -:10CCC0002800F68442C0772D001E7738FFE506283D -:10CCD0000014C6B477C076B4FFF0F7044F58F6B32B -:10CCE0002800C72872007738FFFAF72F28008796A8 -:10CCF000FFFC8296FFF802140004013C00000000D3 -:10CD000000019293FFFC0290000886960000F70451 -:10CD10004F58F4020000C6B472007734FFFA273887 -:10CD20000002203A0061F702003FE200CD40C6B4A5 -:10CD3000740020360000E600CD4000000001F4023F -:10CD400000018796FFFC8296FFF802140004013C64 -:10CD50000000000000019293FFFC0290000886167C -:10CD600000008716000885960004C5307000C032A8 -:10CD70005200E600CDA10000000186B2000077312C -:10CD8000001E7738FFE5C6B477C076B5FFE8F6AF8A -:10CD9000680006300001C0325200E600CD7805ACD4 -:10CDA00000018796FFFC8296FFF80214000C013CFC -:10CDB000000000000001000000009293FFFC0290C0 -:10CDC000000884960000841600048596000886A654 -:10CDD00000007725001E7738FFE5C6B477C07535AB -:10CDE000FFF0202A0010E200CE0DF606428EF5027A -:10CDF0000010F704428C76B1001E76B4FFE5C73808 -:10CE00006FC07739FFF007380001F7332800202E74 -:10CE10000001E600CE70202A0000EE00CE7107244B -:10CE2000000225280001A5BA50028622000076A142 -:10CE3000001E76B4FFE5C73850007739001E7738FA -:10CE4000FFE5C5AC77C0C6306FC07631FFF075AD79 -:10CE5000FFE8F68200FFF702F15475AD0002A72E3D -:10CE60007002C6306C00C6307580F623280024207E -:10CE7000000225A80001F302F24603A40002C4AC9C -:10CE80003800252C0001202E0000EC00CF110000FE -:10CE90000001E600CEA0C71C5000E000CEB4F602B0 -:10CEA0000000A69E50027739001E7738FFE5C6B411 -:10CEB00077C07635FFE886A600007725001E773814 -:10CEC000FFE52528000225AC0002C6B477C076B580 -:10CED000FFE877310004C738620077390001C738AE -:10CEE0003000C6B46800C6B4700006B4000E8736C1 -:10CEF000000024A4000276B5001E76B4FFE5C73812 -:10CF00006FC07738FFF0F7232800E000CE8424209C -:10CF100000028796FFFC8296FFF80214000C013C89 -:10CF20000000000000019293FFFC029000088616AA -:10CF3000000883160004839600008732000076B153 -:10CF4000001E76B4FFE5059C0002749D001E74A4CB -:10CF5000FFE5741D001E063000027531001EC73843 -:10CF60006FC07738FFF0F71F280087320000752860 -:10CF7000FFE5C73857C07738FFF0F72F280005AC1A -:10CF80000002063000028732000076B1001E76B43F -:10CF9000FFE5C7386FC07738FFF0F72F280005ACE2 -:10CFA0000002063000028732000076B1001E76B41F -:10CFB000FFE5C7386FC07738FFF0F72F280005ACC2 -:10CFC0000002063000028732000076B1001E76B4FF -:10CFD000FFE5C7386FC07738FFF0F72F280005ACA2 -:10CFE0000002063000028732000076B1001E76B4DF -:10CFF000FFE5C7386FC07738FFF0F72F280005AC82 -:10D000000002063000028732000076B1001E76B4BE -:10D01000FFE5C7386FC07738FFF0F72F280005AC61 -:10D020000002063000028732000076B1001E76B49E -:10D03000FFE5C7386FC07738FFF0F72F28000630BC -:10D0400000028732000005AC00027631001E763007 -:10D05000FFE5C73867C07738FFF0F72F2800871E35 -:10D0600000007420FFE5C7384FC07739FFF007385C -:10D070000001F71F2800871E0000049C0002C7382B -:10D0800047C07739FFF025380001202A0000EE0064 -:10D09000D0BD26280001A7266002C6A4600076B590 -:10D0A000001E76B4FFE5C5A45000C5300000C738A7 -:10D0B0006FC07739FFE8E000D088F72F6800071CC1 -:10D0C0000002F33B6800C41C00008796FFFC8296B8 -:10D0D000FFF80214000C013C0000000000019293D4 -:10D0E000FFFC0290000886160004841600008732B8 -:10D0F000000076B1001E76B4FFE505A0000274A121 -:10D10000001E74A4FFE5063000027531001EC7380A -:10D110006FC07738FFF0F7232800873200007528AA -:10D12000FFE5C73857C07738FFF0F72F280005AC68 -:10D130000002063000028732000076B1001E76B48D -:10D14000FFE5C7386FC07738FFF0F72F280005AC30 -:10D150000002063000028732000076B1001E76B46D -:10D16000FFE5C7386FC07738FFF0F72F280005AC10 -:10D170000002063000028732000076B1001E76B44D -:10D18000FFE5C7386FC07738FFF0F72F280005ACF0 -:10D190000002063000028732000076B1001E76B42D -:10D1A000FFE5C7386FC07738FFF0F72F280005ACD0 -:10D1B0000002063000028732000076B1001E76B40D -:10D1C000FFE5C7386FC07738FFF0F72F280005ACB0 -:10D1D0000002063000028732000076B1001E76B4ED -:10D1E000FFE5C7386FC07738FFF0F72F280005AC90 -:10D1F0000002063000028732000006A000027631ED -:10D20000001E7630FFE5C73867C07738FFF0F72F8C -:10D210002800872200007621001E85960008C73866 -:10D220004FC07739FFF0C6B47000F5B768008722A9 -:10D2300000007630FFE5C73867C07739FFF0073860 -:10D240000001F72328008796FFFC8296FFF802145E -:10D25000000C013C0000000000019293FFFC0290D2 -:10D2600000082210002027140020F03B280084969C -:10D270000004F502000086A600007625001E763028 -:10D28000FFE504240002C6B467C076B4FFF0F6BB25 -:10D2900028008726000076A5001E76B4FFE5C73873 -:10D2A0006FC07739FFF0C02A7200EC00D2F876A583 -:10D2B000001E8726000076B4FFE5062800012594AD -:10D2C000001EC5AC5000C5300000C7386FC07739AC -:10D2D000FFF0C7385200A6A27002C720700077394D -:10D2E000001E7738FFE5C6B477C076B5FFE8C68084 -:10D2F0006A00E000D290F6AF68008716FFE076156E -:10D30000001E7630FFE5839600002314001E7599F9 -:10D31000001E75ACFFE57515001E7528FFE57495B8 -:10D32000001E74A4FFE57415001E7420FFE5069C22 -:10D3300000027395001E9396FFDCC73867C0839682 -:10D3400000007738FFF0F71F28008396FFDC871A6C -:10D350000000739CFFE59396FFDCC7385FC0773809 -:10D36000FFF0F737280006B400028716FFE4231405 -:10D37000001A7619001E7630FFE5C73857C0773897 -:10D38000FFF0F7372800871A000006B40002C738FC -:10D3900067C07738FFF0F737280006B40002871619 -:10D3A000FFE8231400167619001E7630FFE5C73813 -:10D3B0004FC07738FFF0F7372800871A000006B40F -:10D3C0000002C73867C07738FFF0F737280006B487 -:10D3D00000028716FFEC231400127619001E763027 -:10D3E000FFE5C73847C07738FFF0F7372800871ABE -:10D3F000000006B4000284160000C73867C0773802 -:10D40000FFF0F73728008716FFF006B40002C73890 -:10D410003FC07738FFF0F73728008796FFFC8296E9 -:10D42000FFF802140008013C000000000001929384 -:10D43000FFFC029000088616000084160004F684A3 -:10D440004F5887320014033000147519001E7528D8 -:10D45000FFE5C3A06A00739CFFFA04A0001475A541 -:10D46000001EC6306A007630FFFAC73857C07738DA -:10D47000FFF0F7272800F39B280007200016F63B53 -:10D4800028008722001475ACFFE5C7385FC07738E5 -:10D49000FFF077390006C6B4700006B40016F3B783 -:10D4A00028008796FFFC8296FFF802140008013CD2 -:10D4B0000000000000019293FFFC02900008861615 -:10D4C0000000F5844F5805300016872A000076A921 -:10D4D000001E76B4FFE5C7386FC07738FFF07739A4 -:10D4E0000006C42C7000C0226200E600D52906A008 -:10D4F000001687360000C6305A007630FFFA76B53F -:10D50000001E76B4FFE5C7386FC07738FFF0773973 -:10D51000000676B8FFFAF6AB2800C72C7000073873 -:10D520000014E000D52CF63B2800C42C00008796A0 -:10D53000FFFC8296FFF802140004013C000000008A -:10D5400000019293FFFC02900008F7064F844738D1 -:10D55000FFFCF7056F30F686505C46B4FFFCF6859D -:10D560006E50F7066E7C4738FFFCF7056E540734A3 -:10D57000191CF7054F5CF70200649736191CF70277 -:10D5800000009736192006B4001CF6854F58879680 -:10D59000FFFC8296FFF802140000013C000000002E -:10D5A00000019293FFFC0290000822100090F30209 -:10D5B000FFFFF3054F54F38200009396FFAC231452 -:10D5C00000209316FF9C239400389396FF948316B3 -:10D5D000FFACF7044F5CF382000C9396FF74931634 -:10D5E000FF8C873A0004000000019716FFA4831601 -:10D5F000FFAC8396FFA400000001C01A3A00EC00C3 -:10D60000DB78F30204BCF7044F5C8316FF74000060 -:10D610000001C7383000873A0008F6844F58773940 -:10D620000006C4B470009493FFFC9496FF7C0788B6 -:10D630000008E000CD009793FFFC8496FF7C202239 -:10D640000000E600D654C5040000F7044288E0005C -:10D65000D87CF6064288F6044F5C83960000831659 -:10D66000FF74869E0000A7323002F5820000C036AB -:10D670007200E600D694C6303000869E00048732E1 -:10D68000000400000001C0367200E600D698202E8B -:10D690000000F5820001202E0000E600D6A5000063 -:10D6A0000001F50200008396000087320000869E8C -:10D6B000000000000001C0367200E200D6E4F582EE -:10D6C0000000C0367200E600D6EC202E0000869ED8 -:10D6D00000048732000400000001C0367200E2003E -:10D6E000D6ED202E0000F5820001202E0000E6007D -:10D6F000D6FD202A0000F5020001202A0000E600E5 -:10D70000D72804A400028316FFACF70642C883960C -:10D71000FF8CF3054F54C71C7000F03B28000738FE -:10D720000002E000DB50F03B28009496FF6C872657 -:10D73000000076A5001E76B4FFE58316FF6C839685 -:10D74000FF9C2494001E0618000275B1001E75ACE3 -:10D75000FFE5C7386FC07738FFF0F71F2800873222 -:10D760000000751D001E7528FFE5C7385FC07738BB -:10D77000FFF0F72728002494001C063000028732AF -:10D78000000076B1001E76B4FFE5C7386FC0773869 -:10D79000FFF0F72728002494001A06300002873291 -:10D7A000000076B1001E76B4FFE5C7386FC0773849 -:10D7B000FFF0F72728002494001806300002873273 -:10D7C000000076B1001E76B4FFE5C7386FC0773829 -:10D7D000FFF0F72728002494001606300002873255 -:10D7E000000076B1001E76B4FFE5C7386FC0773809 -:10D7F000FFF0F72728002494001406300002873237 -:10D80000000076B1001E76B4FFE5C7386FC07738E8 -:10D81000FFF0F72728002494001206300002873218 -:10D82000000076B1001E76B4FFE5C7386FC07738C8 -:10D83000FFF0F7272800063000028732000024940A -:10D8400000107631001E7630FFE5C73867C07738A4 -:10D85000FFF0F72728008716FFE0F682FFFCC738A5 -:10D8600057C07739FFF007380003C4B86C00202692 -:10D870000010E200D89DF606428AF704428876B18D -:10D88000001E76B4FFE5F4020000C7386FC0773998 -:10D89000FFF007380001E000DBA0F7332800831613 -:10D8A000FF6C251400368396FF94871A0000769942 -:10D8B000001E76B4FFE50618000275B1001EC738D9 -:10D8C0006FC07738FFF0F71F28008732000075AC73 -:10D8D000FFE5C7385FC07738FFF0F72B2800251425 -:10D8E0000034063000028732000076B1001E76B4A4 -:10D8F000FFE5C7386FC07738FFF0F72B28002514F5 -:10D900000032063000028732000076B1001E76B485 -:10D91000FFE5C7386FC07738FFF0F72B28002514D4 -:10D920000030063000028732000076B1001E76B467 -:10D93000FFE5C7386FC07738FFF0F72B28002514B4 -:10D94000002E063000028732000076B1001E76B449 -:10D95000FFE5C7386FC07738FFF0F72B2800251494 -:10D96000002C063000028732000076B1001E76B42B -:10D97000FFE5C7386FC07738FFF0F72B2800251474 -:10D98000002A063000028732000076B1001E76B40D -:10D99000FFE5C7386FC07738FFF0F72B2800251454 -:10D9A0000028063000028732000026A4000274A47A -:10D9B000FFFF7631001E7630FFE5C73867C0773845 -:10D9C000FFF0F72B28009013FFFC8316FF8CF7065F -:10D9D00042CCC7187000C73868009713FFFC9393B8 -:10D9E000FFFC9496FF7C07880008E000CDB8979371 -:10D9F000FFFC8396FF6C2414004E25140050831600 -:10DA0000FF8C8496FF7C871E0000769D001E76B4F6 -:10DA1000FFE5061C000275B1001E75ACFFE5C738B6 -:10DA20006FC07738FFF0F72B280087320000752988 -:10DA3000001E7528FFE5C7385FC07738FFF0F72371 -:10DA400028002414004C063000028732000076B112 -:10DA5000001E76B4FFE5C7386FC07738FFF0F723B4 -:10DA600028002414004A063000028732000076B1F4 -:10DA7000001E76B4FFE5C7386FC07738FFF0F72394 -:10DA8000280024140048063000028732000076B1D6 -:10DA9000001E76B4FFE5C7386FC07738FFF0F72374 -:10DAA000280024140046063000028732000076B1B8 -:10DAB000001E76B4FFE5C7386FC07738FFF0F72354 -:10DAC000280024140044063000028732000076B19A -:10DAD000001E76B4FFE5C7386FC07738FFF0F72334 -:10DAE000280024140042063000028732000076B17C -:10DAF000001E76B4FFE5C7386FC07738FFF0F72314 -:10DB000028000630000287320000241400407631DD -:10DB1000001E7630FFE5C73867C07738FFF0F7237F -:10DB200028008696FFB0F60642C8C6186000F702C5 -:10DB30000003C6B457C076B5FFF0C6B47400F70250 -:10DB40000004C7386A00F733280006300002F4B337 -:10DB500028008396FF8C8316FF74039C0014939611 -:10DB6000FF8C0318000C8396FFAC9316FF74039C84 -:10DB70000001E000D5EC9396FFAC9313FFFCF38417 -:10DB80004F5C000000019393FFFCF3064A98931347 -:10DB9000FFFC07880008E00126F89793FFFCF402D9 -:10DBA00000018796FFFC8296FFF802140004013CF6 -:10DBB0000000000000019293FFFC02900008221078 -:10DBC00001A0F5020000F3846E50F602001C202A2A -:10DBD0000063EE00DC08C59C6000A69E6002772D05 -:10DBE000001E7738FFE5C6B477C076B5FFF0203663 -:10DBF0000003E600DBFC072C0036F03B2800063073 -:10DC00000040E000DBCC05280001F5844F5C0000FB -:10DC1000000186AE0008F4020000872E0004000018 -:10DC20000001C0367200EC00DCF09696FFEC773510 -:10DC30000001C738680077390002C638580006303E -:10DC4000000CC38400008316000086B20000871A0F -:10DC5000000000000001C0367200E600DC7CC52038 -:10DC6000000086B20004871A000400000001C036DC -:10DC70007200E600DC80202A0000F5020001202A64 -:10DC80000000E600DC8D00000001F38200008496B5 -:10DC9000000086B200008726000000000001C036A8 -:10DCA0007200E200DCCCF5020000C0367200E60033 -:10DCB000DCD4202A000086B200048726000400007D -:10DCC0000001C0367200E200DCD5202A0000F50217 -:10DCD0000001202A0000E600DCE5201E0000F3829F -:10DCE0000001201E0000E600DCF420220000F40207 -:10DCF000000120220000E600DD29F602000187165F -:10DD0000FFEC0000000176B90001C6B4700076B5E2 -:10DD10000002C6B4580006B4001486B60000971678 -:10DD2000FFF0E000DD989696FFF427140014971397 -:10DD3000FFFC83160000000000019313FFFC959385 -:10DD4000FFFC9596FE7007880008E0012568979310 -:10DD5000FFFC8596FE7020220000E600DD95F602AD -:10DD600000018716FFEC0000000176B90001C6B47F -:10DD7000700076B50002C6B4580006B4001486B62A -:10DD800000009716FFF09696FFF4972E0008E0002B -:10DD9000DD9C20320000F602000020320000E60088 -:10DDA000DDB0F4820000F704427CE000E09CF6065F -:10DDB000427E9496FF448716FFF4F6044F58773955 -:10DDC0000006C73070009716FF5406B8001A873651 -:10DDD00000008316FF5476B5001E76B4FFE5C73801 -:10DDE0006FC09313FFFC7738FFF077390006C63019 -:10DDF00070009616FF4C07880008E000CD0097934E -:10DE0000FFFC20220000E600DE35F30200018496CC -:10DE1000FF4C000000019493FFFC07880008E0001D -:10DE2000CD009793FFFC20220000E600DE380000C2 -:10DE30000001F30200019316FF448496FF440000A2 -:10DE4000000120260000E600DE59F60642A4F70491 -:10DE500042A4E000E0A076B1001E8316FF4C8616B7 -:10DE6000FF4C871A00007699001E76B4FFE5C7388C -:10DE70006FC07739FFF0203A0002E600DE8500002F -:10DE80000001F6044F58F5844F5800000001C032DD -:10DE90005A00E600E025000000018496FF4C0000D7 -:10DEA000000106A4001A873600008316FF5476B5D9 -:10DEB000001E76B4FFE5C7386FC07738FFF07739BA -:10DEC0000006C72C7000C03A3200E600DEDDF60620 -:10DED0004280F7044280E000E0A076B1001E2614E4 -:10DEE0000030F03328008716FFD07631001E7630E0 -:10DEF000FFE58496FF4C2314002E9316FE6475995B -:10DF0000001E75ACFFE57515001E7528FFE573153D -:10DF1000001E7318FFE59316FF348316FE64042475 -:10DF2000000206A000027495001E74A4FFE59496FA -:10DF3000FF3C7495001EC73867C07738FFF0F723A1 -:10DF40002800871A000074A4FFE59496FF2CC738B8 -:10DF50005FC07738FFF0F737280006B40002871655 -:10DF6000FFD42494002A9496FE647625001E763011 -:10DF7000FFE5C73857C07738FFF0F7372800872606 -:10DF8000000006B40002C73867C07738FFF0F737E3 -:10DF9000280006B400028716FFD823140026931623 -:10DFA000FE647619001E8496FF3C7630FFE5C73884 -:10DFB0004FC07738FFF0F7372800871A000006B403 -:10DFC00000028496FF34C73867C07738FFF0F73710 -:10DFD000280006B400028716FFDC231400229316E3 -:10DFE000FE647619001E7630FFE5C7384FC07738DB -:10DFF000FFF0F7372800871A000006B40002C73880 -:10E0000067C07738FFF0F73728008716FFE08316E0 -:10E01000FF2C06B40002C73837C07738FFF0E000A5 -:10E02000EAA0F737280007880008E000CBCC9793D8 -:10E03000FFFC06A00002F7044F58F037280006A0A6 -:10E0400000149416FF24C72072007738FFFAF737C0 -:10E05000280006A00016F7372800F4820001F4A378 -:10E0600028009413FFFC07880008E000CD00979378 -:10E07000FFFC20220000E600E0BC26940048F704E4 -:10E080004280E000E09CF60642828696FEF4E000C4 -:10E09000E29400000001F7044284F606428476B15F -:10E0A000001E76B4FFE5F4020000C7386FC0773970 -:10E0B000FFF007380001E000EAA4F73328008316D8 -:10E0C000FF4C7515001E7528FFE59316FF1C0718F9 -:10E0D0000036F4820001F4BB2800F03728008716D0 -:10E0E000FFB876B5001E76B4FFE5041800020620DE -:10E0F0000002231400469316FF147599001E75AC98 -:10E10000FFE57495001E74A4FFE59496FF0C73154B -:10E11000001E7318FFE59316FF047495001E74A487 -:10E12000FFE59496FEFC230000079316FEF4849608 -:10E13000FF1C8316FF1404A4000A9496FE7CC738C3 -:10E140006FC07738FFF0F7232800F6844F58849685 -:10E15000FF54871A0000C6A46A007434FFFAC73857 -:10E160005FC07738FFF0F7332800063000028716CB -:10E17000FFBC231400429316FF147699001E76B458 -:10E18000FFE5C73857C07738FFF0F7332800871A04 -:10E19000000006300002C7386FC07738FFF0F73351 -:10E1A0002800063000028716FFC02494003E949693 -:10E1B000FF1476A5001E8316FF0C76B4FFE5C73862 -:10E1C00037C07738FFF0F733280087260000063085 -:10E1D0000002C7386FC07738FFF0F73328000630E9 -:10E1E00000028716FFC42494003A9496FF1476A583 -:10E1F000001E8316FF0476B4FFE5C73837C07738B2 -:10E20000FFF0F73328008726000006300002C738E9 -:10E210006FC07738FFF0F73328008716FFC8849661 -:10E22000FEFC06300002C7384FC07738FFF0F733E6 -:10E2300028008316FEF400000001201A0007EE00FB -:10E24000E294F68200088496FE7C00000001072418 -:10E25000000E86BA00007739001E7738FFE5C6B495 -:10E2600077C076B5FFF0F70200FFC6B4740047210F -:10E270000000C0367200470C0001203A0000E600A2 -:10E28000E08804A400029496FE7C03180001E000DC -:10E29000E2309316FEF48316FF1C000000010718FD -:10E2A0000038F6BB28009313FFFC8496FF2400007F -:10E2B00000019493FFFC07880008E000D42C97939A -:10E2C000FFFC231400789316FEBC849600002314F0 -:10E2D00000A886A60004872600009316FE9CC6B4FC -:10E2E00070009696FEECF7020001C7347400971692 -:10E2F000FEE48496FF24000000019493FFFC07884D -:10E300000008E000D4B49793FFFCF7044F580000D6 -:10E310000001C0227200E600EAA19416FF1C86A24A -:10E3200000387721001E7738FFE5F30200009316CE -:10E33000FED4C6B477C076B5FFF09696FEDC849620 -:10E34000FED4000000012026000EEE00E2F0F302F1 -:10E35000000F9313FFFC8316FEEC00000001C718AA -:10E3600048009713FFFC07880008E00127E897930F -:10E37000FFFCC3A000008496FEE4000000012026FC -:10E380000000E600E38D239C0007C3803A00C71C11 -:10E3900038008316FF1CF48200FFF6044F58C7189C -:10E3A00070000738002686BA00009716FEC4773939 -:10E3B000001E7738FFE5C6B477C076B5FFF0C6B467 -:10E3C0004C0076B50006C330680007300040C01A24 -:10E3D0007200E600E40D9316FECC9313FFFC9396B7 -:10E3E000FE749616FE6C9696FE6807880008E0009C -:10E3F000CD009793FFFC8396FE748616FE6C86967E -:10E40000FE6820220000E600E09500000001F5848F -:10E410004F588496FECC072C0040C0267200E600C0 -:10E42000EA8D00000001A732680276A5001E76B4CE -:10E43000FFE58616FECCC7386FC07739FFF0203A6B -:10E440000002E600E451C0325A00C62C0000C0327F -:10E450005A00E600E6E5251400768316FF1C849634 -:10E46000FEBC061800028732000076B1001E76B4AA -:10E47000FFE58316FEDC0630000275B1001EC738CA -:10E480006FC07738FFF0F72728008732000075AC9F -:10E49000FFE5C7385FC07738FFF0F72B2800251459 -:10E4A0000074063000028732000076B1001E76B498 -:10E4B000FFE5C7386FC07738FFF0F72B2800251429 -:10E4C0000072063000028732000076B1001E76B47A -:10E4D000FFE5C7386FC07738FFF0F72B2800251409 -:10E4E0000070063000028732000076B1001E76B45C -:10E4F000FFE5C7386FC07738FFF0F72B28002514E9 -:10E50000006E063000028732000076B1001E76B43D -:10E51000FFE5C7386FC07738FFF0F72B28002514C8 -:10E52000006C063000028732000076B1001E76B41F -:10E53000FFE5C7386FC07738FFF0F72B28002514A8 -:10E54000006A063000028732000076B1001E76B401 -:10E55000FFE5C7386FC07738FFF0F72B280006308B -:10E56000000287320000251400687631001E7630E4 -:10E57000FFE5C73867C07738FFF0F72B2800C71CC6 -:10E5800032009713FFFC9493FFFC2614006096134F -:10E59000FFFC9616FE6C07880008E000D0DC97931D -:10E5A000FFFC8716FFA08616FE6C8496FECC231413 -:10E5B000005E9316FE5C7599001E75ACFFE5741540 -:10E5C000001E7420FFE57315001E7318FFE59316F7 -:10E5D000FEAC8316FE5C7631001E7630FFE5052426 -:10E5E000000206A800027495001E74A4FFE594962C -:10E5F000FEB47495001EC73867C07738FFF0F72B5C -:10E600002800871A000074A4FFE59496FEA4C7387A -:10E610005FC07738FFF0F737280006B4000287168E -:10E62000FFA42494005A9496FE5C7625001E83165F -:10E63000FEB47630FFE5C73837C07738FFF0F737DC -:10E6400028008726000006B40002C73867C0773864 -:10E65000FFF0F737280006B400028716FFA82494BD -:10E6600000569496FE5C7625001E7630FFE5C7388E -:10E6700047C07738FFF0F73728008726000006B438 -:10E680000002C73867C07738FFF0F737280006B4B4 -:10E6900000028716FFAC231400529316FE5C761915 -:10E6A000001E8496FEAC7630FFE5C7384FC0773841 -:10E6B000FFF0F7372800871A000006B40002C738B9 -:10E6C00067C07738FFF0F73728008716FFB083164A -:10E6D000FEA406B40002C73837C07738FFF0E00068 -:10E6E000EA8CF73728008496FECC0000000104A4D1 -:10E6F00000369496FE5C8726000076A5001E76B450 -:10E70000FFE5C7386FC07739FFF0203A0000470CAB -:10E710000001203A0000E600EA8D000000018316A7 -:10E72000FECC8496FF1C0618003A85B20000072430 -:10E73000003A86BA00007631001E7630FFE5773960 -:10E74000001E7738FFE5C5AC67C0C6B477C075ADAD -:10E75000FFF076B5FFF0C02E6A00EC00E764F5022A -:10E760000002F50200018316FF1C000000010718DB -:10E77000003686BA00007739001E7738FFE5C6B448 -:10E7800077C076B5FFF020360002E600E79C000077 -:10E790000001202A0001E600EA8D000000018496B5 -:10E7A000FE5C8316FF1CF52728000618000287323E -:10E7B000000076B1001E76B4FFE5251400A684960D -:10E7C000FE9C8316FEDC0630000275B1001EC738C1 -:10E7D0006FC07738FFF0F72728008732000075AC4C -:10E7E000FFE5C7385FC07738FFF0F72B2800251406 -:10E7F00000A4063000028732000076B1001E76B415 -:10E80000FFE5C7386FC07738FFF0F72B28002514D5 -:10E8100000A2063000028732000076B1001E76B4F6 -:10E82000FFE5C7386FC07738FFF0F72B28002514B5 -:10E8300000A0063000028732000076B1001E76B4D8 -:10E84000FFE5C7386FC07738FFF0F72B2800251495 -:10E85000009E063000028732000076B1001E76B4BA -:10E86000FFE5C7386FC07738FFF0F72B2800251475 -:10E87000009C063000028732000076B1001E76B49C -:10E88000FFE5C7386FC07738FFF0F72B2800251455 -:10E89000009A063000028732000076B1001E76B47E -:10E8A000FFE5C7386FC07738FFF0F72B2800063038 -:10E8B000000287320000251400987631001E763061 -:10E8C000FFE5C73867C07738FFF0F72B2800C71C73 -:10E8D00032009713FFFC9493FFFC261400909613CC -:10E8E000FFFC9616FE6C07880008E000D0DC9793CA -:10E8F000FFFC8716FF708616FE6C8496FECC239470 -:10E90000008E759D001E75ACFFE57315001E731813 -:10E91000FFE59316FE947415001E7420FFE5731531 -:10E92000001E7318FFE59316FE848316FE9476315D -:10E93000001E7630FFE50524000206A8000274954B -:10E94000001E74A4FFE59496FE8CC73867C0773824 -:10E95000FFF0F72B28008496FEC4871E0000752563 -:10E96000001EC7385FC07738FFF0F737280006B4BD -:10E9700000028716FF742394008A761D001E7630ED -:10E98000FFE58496FE8C7528FFE5C73837C07738D9 -:10E99000FFF0F7372800871E000006B40002831638 -:10E9A000FE84C73867C07738FFF0F737280006B411 -:10E9B00000028716FF7823940086761D001E7630AD -:10E9C000FFE5C73847C07738FFF0F7372800871EC4 -:10E9D000000006B40002C73867C07738FFF0F73789 -:10E9E000280006B400028716FF7C23940082761D5F -:10E9F000001E7630FFE5C7384FC07738FFF0F73795 -:10EA00002800871E000006B400028496FEC4C738A2 -:10EA100067C07738FFF0F73728008716FF8006B405 -:10EA20000002C73837C07738FFF0F737280087264D -:10EA30000000F30200FFC73857C07738FFE8C6B8B8 -:10EA40003400F7020080C73474007739001077393A -:10EA5000FFF0203A0000E600EA6127000100C6B49A -:10EA600075808496FECC0000000107240038F6BBB8 -:10EA700028009493FFFC8316FF24000000019313E9 -:10EA8000FFFC07880008E000D42C9793FFFC8496D5 -:10EA9000FED40000000104A40001E000E33C9496D1 -:10EAA000FED4F40200018796FFFC8296FFF8021460 -:10EAB0000004013C0000000000019293FFFC029062 -:10EAC0000008861600088696000CF502FFFC859665 -:10EAD000000484160010F484E0000730000294B2B1 -:10EAE0000010F484E00406B4000394B20014F4842B -:10EAF000E01CC6B4540094B20018F4820005F4B3CC -:10EB00002800F4820001F4BB280027340008973263 -:10EB1000000486160000072C0003C7385400C6B84E -:10EB200068009693FFFCC63072009613FFFCF70254 -:10EB30000003C5AC7400F7020004C7385A009713ED -:10EB4000FFFC07880008C12000009793FFFC879610 -:10EB5000FFFC8296FFF802140014013C0000000044 -:10EB600000019293FFFC0290000822100018871603 -:10EB700000040000000183BA000084960000939610 -:10EB8000FFF0F3846E54873A00049396FFEC9716D7 -:10EB9000FFF49013FFFC271C00029713FFFC0724CF -:10EBA00000209713FFFC9496FFE407880008E0001C -:10EBB000CDB89793FFFC8496FFE4839600088726E0 -:10EBC00000188516FFECC03A3A00EE00EC7CF582A6 -:10EBD0000001872600188396000800000001C01E6F -:10EBE0007200E600EC7CC584000086A60010871643 -:10EBF000FFF0F6020000C0367200E600EC1C0424B0 -:10EC0000001086A600148716FFF400000001C0362D -:10EC10007200E600EC2020320000F60200012032F3 -:10EC20000000E600EC2D00000001F582000086A245 -:10EC300000008716FFF000000001C0367200E200FD -:10EC4000EC68F6020000C0367200E600EC7020327C -:10EC5000000086A200048716FFF400000001C03601 -:10EC60007200E200EC7120320000F6020001203256 -:10EC70000000E600EC81202E0000F5820001202E2D -:10EC80000000E600ECACF7020001F704429CF60637 -:10EC9000429C76B1001E76B4FFE5C7386FC0773965 -:10ECA000FFF007380001F7332800F7020001972A28 -:10ECB000000883A6000C772CFFE193AA000C972A8A -:10ECC000001C83A6001CF7046E5093AA002083BA90 -:10ECD0001DDCF682000093AA002C8396000CC5B4BC -:10ECE000000093AA003083BA0010C634000093AA33 -:10ECF0000024873A001400000001972A00282036DB -:10ED0000001FEE00ED1CC73050000738003495BAE4 -:10ED1000000006300004E000ECFC06B4000183961D -:10ED2000001076A5001E9393FFFCF38200B493932A -:10ED3000FFFC9513FFFC8726002076B4FFE5C7385B -:10ED40006FC07739FFF09713FFFC8396FFEC00004C -:10ED500000019393FFFC07880008E000EAB897934E -:10ED6000FFFC8796FFFC8296FFF802140014013C1A -:10ED70000000000000019293FFFC029000082210A6 -:10ED800000188716000400000001863A0000000009 -:10ED900000019616FFF0873A000400000001971664 -:10EDA000FFF4F6021DE09613FFFC8616000000003B -:10EDB00000019613FFFCF6046E500000000196134C -:10EDC000FFFC261400109616FFEC07880008E001EF -:10EDD00026F89793FFFCF6846E50F6020000873603 -:10EDE0001DD89616FFE476B5001E76B4FFE5C73849 -:10EDF0006FC07738FFF0F68642C0F73728008616D6 -:10EE0000FFEC000000019613FFFC07880008E000FB -:10EE1000DBB49793FFFC20220000E600EE4D0000DB -:10EE200000018616FFEC000000019613FFFC078826 -:10EE30000008E000D5A09793FFFC20220000E60028 -:10EE4000EE4D00000001F60200019616FFE4841664 -:10EE5000FFE48796FFFC8296FFF802140008013C4D -:10EE60000000000000019293FFFC029000088696CB -:10EE70000004861600008736000885960008203AB0 -:10EE80000000E600EE99203A0003E600EEE9F40205 -:10EE90000000E000EF0C0000000177B0001F703EA2 -:10EEA000FFE1E600EF0DF4020000851600140000FB -:10EEB00000019513FFFC851600100000000195135A -:10EEC000FFFC8516000C000000019513FFFC9593D4 -:10EED000FFFC9693FFFC07880008E000EB60979327 -:10EEE000FFFCE000EF0C0000000177B0001E703E58 -:10EEF000FFE1E600EF0D000000019593FFFC969303 -:10EF0000FFFC07880008E000ED749793FFFC8796EC -:10EF1000FFFC8296FFF802140018013C000000007C -:10EF200000019293FFFC0290000822100018F48266 -:10EF3000000086960000F6044AA023940010843650 -:10EF400000009616FFE4F7044A9C9416FFF08536FD -:10EF50000004C0327200EC00F0149516FFF4773113 -:10EF60000001C738600077390002F3064A98C6B836 -:10EF7000300006B4000CC584000087360000000095 -:10EF80000001C03A4200E600EFA4C6240000873624 -:10EF9000000400000001C03A5200E600EFA8203251 -:10EFA0000000F602000120320000E600EFB500008C -:10EFB0000001F5820000863600008716FFF0000091 -:10EFC0000001C0327200E200EFF0F5020000C03232 -:10EFD0007200E600EFF8202A000086B600048716CB -:10EFE000FFF400000001C0367200E200EFF9202AB1 -:10EFF0000000F5020001202A0000E600F009202EA2 -:10F000000000F5820001202E0000E600F018202606 -:10F010000000F482000120260000E600F04DF60218 -:10F0200000018716FFE4F3064A9876B90001C6B4DA -:10F03000700076B50002C6B4300006B4001486B67F -:10F0400000009716FFE8E000F0B09696FFEC27145A -:10F05000001C9713FFFC9393FFFCF3064A9893134D -:10F06000FFFC07880008E00125689793FFFC202239 -:10F070000000E600F0ADF60200018716FFE4F3069B -:10F080004A9876B90001C6B4700076B50002C6B4DD -:10F09000300006B4001486B600009716FFE8969676 -:10F0A000FFECF7054AA0E000F0B420320000F602C1 -:10F0B000000020320000E600F121F4020001871672 -:10F0C000FFE8F60642C876B90002C6B4700076B50D -:10F0D0000002A736600283160004C6B460007635CD -:10F0E000001E7630FFE50534000275A9001EC73802 -:10F0F00067C07738FFF0971A0000872A000075ACC8 -:10F10000FFE583160008C7385FC07738FFF0971A0D -:10F1100000008316000C06B40004E000F124969A67 -:10F120000000F40200008796FFFC8296FFF80214AC -:10F130000010013C0000000000010000B9000000C8 -:10F14000BA000000BB000000BC000000BD000000D1 -:10F15000BE000000BF000000800000008100000031 -:10F160008200000083000000840000008500000091 -:10F17000860000008700B9B9B9BAB9BBB9BCB9BD3E -:10F18000B9BEB9BFB980B981B982B983B984B9852B -:10F19000B986B987BAB9BABABABBBABCBABDBABE2F -:10F1A000BABFBA80BA81BA82BA83BA84BA85BA863B -:10F1B000BA87BBB9BBBABBBBBBBCBBBDBBBEBBBFCD -:10F1C000BB80BB81BB82BB83BB84BB85BB86BB874B -:10F1D000BCB9BCBABCBBBCBCBCBDBCBEBCBFBC80AB -:10F1E000BC81BC82BC83BC84BC85BC86BC87BDB9E9 -:10F1F000BDBABDBBBDBCBDBDBDBEBDBFBD80BD81BB -:10F20000BD82BD83BD84BD85BD86BD87BEB9BEBA86 -:10F21000BEBBBEBCBEBDBEBEBEBFBE80BE81BE82CA -:10F22000BE83BE84BE85BE86BE87BFB9BFBABFBB24 -:10F23000BFBCBFBDBFBEBFBFBF80BF81BF82BF83DA -:10F24000BF84BF85BF86BF8780B980BA80BB80BCC2 -:10F2500080BD80BE80BF80808081808280838084EA -:10F2600080858086808781B981BA81BB81BC81BD60 -:10F2700081BE81BF818081818182818381848185FA -:10F280008186818782B982BA82BB82BC82BD82BEFE -:10F2900082BF82808281828282838284828582860A -:10F2A000828783B983BA83BB83BC83BD83BE83BF9C -:10F2B000838083818382838383848385838683871A -:10F2C00084B984BA84BB84BC84BD84BE84BF84807A -:10F2D000848184828483848484858486848785B9B8 -:10F2E00085BA85BB85BC85BD85BE85BF858085818A -:10F2F00085828583858485858586858786B986BA56 -:10F3000086BB86BC86BD86BE86BF86808681868299 -:10F310008683868486858686868787B987BA87BBF3 -:10F3200087BC87BD87BE87BF8780878187828783A9 -:10F33000878487858786878700009293FFFC0290E9 -:10F34000000822100018F70475EC00000001203AB4 -:10F350000000E600F37DF6064296F704429476B18B -:10F36000001E76B4FFE5F4020000C7386FC077399D -:10F37000FFF007380001E000F5E0F7332800F384E0 -:10F380006F309013FFFC271C00029713FFFC8316BD -:10F390000000000000019313FFFC9396FFEC078828 -:10F3A0000008E000CDB89793FFFC8396FFECF702CE -:10F3B0000000971E00088316000400000001931E41 -:10F3C000000C83160008049C0022931E001C831668 -:10F3D000000C9396FFF4871A00007699001E76B40D -:10F3E000FFE50618000275B1001E75ACFFE5C738D1 -:10F3F0006FC07738FFF0069C0020F737280087326F -:10F4000000009696FFE47535001EC7385FC0773858 -:10F41000FFF0F7272800049C002406300002873202 -:10F42000000076B1001E76B4FFE5C7386FC07738AC -:10F43000FFF0F7272800049C0026063000028732E0 -:10F44000000076B1001E76B4FFE5C7386FC077388C -:10F45000FFF0F7272800049C0028063000028732BE -:10F46000000076B1001E76B4FFE5C7386FC077386C -:10F47000FFF0F7272800049C002A0630000287329C -:10F48000000076B1001E76B4FFE5C7386FC077384C -:10F49000FFF0F7272800049C002C0630000287327A -:10F4A000000076B1001E76B4FFE5C7386FC077382C -:10F4B000FFF0F7272800049C002E06300002873258 -:10F4C000000076B1001E76B4FFE5C7386FC077380C -:10F4D000FFF0F72728000630000287320000049C66 -:10F4E00000307631001E7630FFE5C73867C07738C8 -:10F4F000FFF0F7272800871E00207528FFE5C73892 -:10F5000057C07739FFF0203A0008EE00F598F3066F -:10F5100014D88316FFE4871E00207699001E76B467 -:10F52000FFE5C7386FC07739FFF025B80001C4ACDC -:10F53000580004240001202E0000EC00F595F5028F -:10F5400000008316FFE40000000106180002A73245 -:10F550005802C6B0580076B5001E76B4FFE5C7382D -:10F560006FC07739FFE8C6B0400077B80018703E2A -:10F57000FFE1E600F57DF7376800F502FFFFC730D1 -:10F580004800F53B680024A4000224200002E000AB -:10F59000F53425AC0001F30614D89313FFFCF302F5 -:10F5A00000349313FFFC8316FFF400000001931353 -:10F5B000FFFC8316000000000001871A0000769906 -:10F5C000001E76B4FFE5C7386FC07739FFF0971398 -:10F5D000FFFC9393FFFC07880008E000EAB89793CC -:10F5E000FFFC8796FFFC8296FFF802140010013C96 -:10F5F0000000000000019293FFFC0290000822101E -:10F600000010F70475EC00000001203A0000E6004D -:10F61000F639F6064296F704429476B1001E76B4A7 -:10F62000FFE5F4020000C7386FC07739FFF00738F4 -:10F630000001E000F748F7332800F5046F300000C0 -:10F6400000019516FFF49013FFFC27280002971382 -:10F65000FFFC85960004000000019593FFFC0788DD -:10F660000008E000CDB89793FFFC85160004F60271 -:10F67000000086AA00007729001E7738FFE5C6B48F -:10F6800077C076B5FFF0F7020001C0367400E600DF -:10F69000F6999696FFECC63800009613FFFC859607 -:10F6A000FFEC8516FFF4472CFFFE07380002C72841 -:10F6B00072009713FFFC85960000000000019593EF -:10F6C000FFFC07880008E000CDB89793FFFC851683 -:10F6D000FFF4F7020002972A000885960008000050 -:10F6E000000195AA000C8596000C0000000195AA67 -:10F6F000001CF50614D89513FFFCF58200209593A5 -:10F70000FFFC8516FFF4000000019513FFFC8596B1 -:10F7100000008516FFEC872E000076AD001E76B443 -:10F72000FFE5C7386FC07739FFF0C738500097132F -:10F73000FFFC8596FFF4000000019593FFFC07880D -:10F740000008E000EAB89793FFFC8796FFFC8296DA -:10F75000FFF802140010013C000000000001929329 -:10F76000FFFC0290000885960000851600048716AD -:10F770000008F602FFFC06A80003C6B464000738C0 -:10F780000003C7386400C73470009713FFFCC5AC92 -:10F790006A009593FFFCF7020003C5287400F70286 -:10F7A0000004C73852009713FFFC07880008E001E7 -:10F7B00014D89793FFFC8796FFFC8296FFF80214FB -:10F7C0000010013C0000000000019293FFFC029039 -:10F7D000000822100010F70475EC00000001203A28 -:10F7E0000000E600F80DF6064296F704429476B162 -:10F7F000001E76B4FFE5F4020000C7386FC0773909 -:10F80000FFF007380001E000F920F7332800F50485 -:10F810006F30000000019516FFF49013FFFC2728BD -:10F8200000029713FFFC85960004000000019593E9 -:10F83000FFFC07880008E000CDB89793FFFC851611 -:10F840000004F602000086AA00007729001E77381F -:10F85000FFE5C6B477C076B5FFF0F7020001C03609 -:10F860007400E600F86D9696FFECC638000096131B -:10F87000FFFC8596FFEC8516FFF4472CFFFE07384A -:10F880000002C72872009713FFFC85960000000055 -:10F8900000019593FFFC07880008E000CDB897931E -:10F8A000FFFC8516FFF4F5820006F5AB280085966F -:10F8B00000080728000295AA00040514000E852AF6 -:10F8C000000077A9001E77BCFFE5C5287FC0752919 -:10F8D000FFF0F53B2800F58614D89593FFFCF50260 -:10F8E00000089513FFFC859600008516FFEC872E17 -:10F8F000000076AD001E76B4FFE5C7386FC07739DB -:10F90000FFF0C73850009713FFFC8596FFF4000006 -:10F9100000019593FFFC07880008E000F75C9793CF -:10F92000FFFC8796FFFC8296FFF802140010013C52 -:10F930000000000000019293FFFC029000082210DA -:10F940000008F70475EC83960004203A0000E600F6 -:10F95000FA64F6064296F5046F309013FFFC2728F0 -:10F9600000029713FFFC83160000000000019313B0 -:10F97000FFFC9396FFF49516FFF007880008E0005F -:10F98000CDB89793FFFC8516FFF0F302000783962E -:10F99000FFF4F32B280007280002F3020001F33BD9 -:10F9A0002800871E0000769D001E76B4FFE5059CAA -:10F9B0000002762D001E7630FFE5749D001E74A4B3 -:10F9C000FFE5041C000683160000C7386FC07738B7 -:10F9D000FFF006A80004F7372800872E000006A8CD -:10F9E000000675A1001EC73867C07738FFF0F737EB -:10F9F0002800871E000475ACFFE506A800087619EC -:10FA0000001EC7384FC07738FFF0F737280087222D -:10FA1000000006A8000AC7385FC07738FFF0F73744 -:10FA20002800F30614D89313FFFCF302000C931381 -:10FA3000FFFC8316000000000001871A00007630EA -:10FA4000FFE5C73867C07739FFF09713FFFC9513C0 -:10FA5000FFFC07880008E000F75C9793FFFCE000DC -:10FA6000FA8400000001F704429476B1001E76B4D7 -:10FA7000FFE5F4020000C7386FC07739FFF00738A0 -:10FA80000001F73328008796FFFC8296FFF80214E6 -:10FA90000008013C0000000000019293FFFC02906E -:10FAA000000822100048F70475EC85960000203A03 -:10FAB0000000E600FD98F606429605AC0002872E8F -:10FAC000000076AD001E76B4FFE52414001E062C5F -:10FAD00000027531001E249400207528FFE5F38490 -:10FAE0006E50C7386FC07738FFF0F727280087328D -:10FAF00000009396FFC4C73857C07738FFF0F7234C -:10FB000028002414001C063000028732000076B161 -:10FB1000001E76B4FFE5C7386FC07738FFF0F723D3 -:10FB200028002414001A063000028732000076B143 -:10FB3000001E76B4FFE5C7386FC07738FFF0F723B3 -:10FB4000280024140018063000028732000076B125 -:10FB5000001E76B4FFE5C7386FC07738FFF0F72393 -:10FB6000280024140016063000028732000076B107 -:10FB7000001E76B4FFE5C7386FC07738FFF0F72373 -:10FB8000280024140014063000028732000076B1E9 -:10FB9000001E76B4FFE5C7386FC07738FFF0F72353 -:10FBA000280024140012063000028732000076B1CB -:10FBB000001E76B4FFE5C7386FC07738FFF0F72333 -:10FBC000280006300002873200002414001076312D -:10FBD000001E7630FFE5C73867C07738FFF0F7239F -:10FBE00028009013FFFC271C00029713FFFC94933E -:10FBF000FFFC9596FFBC07880008E000CDB89793FE -:10FC0000FFFC8596FFBC231400362494003873A5AE -:10FC1000001E739CFFE5F40442C0F68642C076B530 -:10FC2000001E76B4FFE5872E0000762D001E76308C -:10FC3000FFE5C4206FC07420FFF005AC0002752DF5 -:10FC4000001E7528FFE5C73867C07738FFF0F72733 -:10FC50002800872E0000F6046E50C73857C077384A -:10FC6000FFF0F71B28002314003405AC0002872E98 -:10FC7000000076AD001E76B4FFE5C7386FC0773858 -:10FC8000FFF0F71B28002314003205AC0002872E7A -:10FC9000000076AD001E76B4FFE5C7386FC0773838 -:10FCA000FFF0F71B28002314003005AC0002872E5C -:10FCB000000076AD001E76B4FFE5C7386FC0773818 -:10FCC000FFF0F71B28002314002E05AC0002872E3E -:10FCD000000076AD001E76B4FFE5C7386FC07738F8 -:10FCE000FFF0F71B28002314002C05AC0002872E20 -:10FCF000000076AD001E76B4FFE5C7386FC07738D8 -:10FD0000FFF0F71B28002314002A05AC0002872E01 -:10FD1000000076AD001E76B4FFE5C7386FC07738B7 -:10FD2000FFF0F71B280005AC0002872E000023140B -:10FD3000002875AD001E75ACFFE5C7385FC0773889 -:10FD4000FFF0F71B28008716FFC8F6820003C738AC -:10FD50003FC096B2000806B01DD8F4372800F386DD -:10FD600014D89393FFFCF3821DE09393FFFC96134A -:10FD7000FFFC7739FFF09713FFFC8396FFC4000068 -:10FD800000019393FFFC07880008E000EAB897930E -:10FD9000FFFCE000FDB800000001F704429476B1DA -:10FDA000001E76B4FFE5F4020000C7386FC0773953 -:10FDB000FFF007380001F73328008796FFFC829692 -:10FDC000FFF802140004013C0000000000019293BF -:10FDD000FFFC029000088616000000000001873238 -:10FDE000000076B1001E76B4FFE5C7386FC07739E2 -:10FDF000FFF0203A0006E600FE21F582001EF7041F -:10FE000042A8F60642A876B1001E76B4FFE5C738D0 -:10FE10006FC07739FFF007380001E000FE34F73398 -:10FE20002800F6056F349593FFFC07880008E00072 -:10FE300015849793FFFC8796FFFC8296FFF80214C7 -:10FE40000004013C0000000000019293FFFC0290BE -:10FE5000000886160000859600048732000076B1FF -:10FE6000001E76B4FFE5C7386FC07739FFF0203A3F -:10FE70000007E600FE9DF4020000F70442A8F60623 -:10FE800042AA76B1001E76B4FFE5C7386FC0773955 -:10FE9000FFF007380001E000FF1CF73328000730AF -:10FEA000000286BA00007739001E7738FFE5C6B435 -:10FEB00077C076B5FFF020360001E600FED5F605E6 -:10FEC0006F3420360002E600FEE5F5020020E00077 -:10FED000FEFCF60642AC202E000CE600FF1CF402ED -:10FEE0000000F502001F9513FFFC07880008E000E2 -:10FEF00015849793FFFCE000FF1CF4020001F70457 -:10FF000042AC76B1001E76B4FFE5C7386FC07739D2 -:10FF1000FFF007380001F7332800F402000187964C -:10FF2000FFFC8296FFF802140008013C000000006C -:10FF300000019293FFFC02900008869600000000EA -:10FF4000000187360004F6020000073800089736E3 -:10FF500000048736000800000001203A0000EC0091 -:10FF6000FF7DF6856F348736000800000001203AD7 -:10FF70000003EE00FF8020320000F6020001203274 -:10FF80000000E600FFBDF60642AEF7046F34000045 -:10FF90000001873A0008F682FFEC77390002A73AA1 -:10FFA0006802000000019713FFFC07880008E000CA -:10FFB00015849793FFFCE000FFD800000001F704D0 -:10FFC00042AC76B1001E76B4FFE5C7386FC0773912 -:10FFD000FFF007380001F73328008796FFFC829670 -:10FFE000FFF802140004013C0000000000010000C2 -:10FFF00000170000001A0000001D0000001800009B -:020000021000EC -:10000000000056657273696F6E537472696E673A59 -:10001000206D63702D6C34763320332E303863209E -:1000200044656320313120313939362031333A305B -:10003000363A313600009293FFFC02900008F70434 -:10004000E00CFF0200009702FF84F7060C3ECFFC95 -:100050007580F60200029602FF8C9002FF88F7047A -:10006000E02000000001203A0000E6010074F68262 -:100070000000F68200039682FF988796FFFC829626 -:10008000FFF802140000013C000000000001929300 -:10009000FFFC029000082210000CF5021494F505F4 -:1000A0007B00F50EF014F5057B08F706E000F686F8 -:1000B0007B68C7386A00F7057AF0F502004CF682D3 -:1000C000000020360002EE010124F5057AF8C5B4DF -:1000D0000000C6340000F706E030C72C7000F506BB -:1000E0006F44B73250029013FFFC9713FFFC9596B4 -:1000F000FFF49616FFF09696FFEC07880008E001E3 -:10010000031C9793FFFC8596FFF48616FFF08696F6 -:10011000FFEC05AC149406B4000120360002EE0199 -:1001200000D506300004F5020022F5056F58F005F1 -:100130006F54F0056F50F0052D408796FFFC8296B6 -:10014000FFF802140000013C00000000000192933F -:10015000FFFC0290000807880008E00129589793E7 -:10016000FFFCF7020003F705E008F7047AD8F6026F -:1001700000019602FF94203A0000E6010191F70683 -:100180007AE807880008E00103DC9793FFFCF70694 -:100190007AE8F6020005F63B2800F7067AE0868248 -:1001A000FF44F602000320360000E60101C9F63BD9 -:1001B0002800F7046F648682FF4407380001203668 -:1001C0000000E60101B0F7056F6407880008E00150 -:1001D00000349793FFFC07880008E001008C979398 -:1001E000FFFC07880008E00044289793FFFC07887D -:1001F0000008E00016F09793FFFC07880008E00174 -:100200000C609793FFFC07880008E00104089793AF -:10021000FFFC07880008E00000209793FFFC078898 -:100220000008E0000BD89793FFFC07880008E00166 -:100230001D689793FFFC07880008E0011E50979304 -:10024000FFFC07880008E0005F689793FFFC0788C1 -:100250000008E0006DEC9793FFFC07880008E001C0 -:1002600021D09793FFFC07880008E001222C979388 -:10027000FFFC9002FF9407880008E0000BFC9793B6 -:10028000FFFCF40200008796FFFC8296FFF8021440 -:100290000000013C0000000000019293FFFC02906E -:1002A000000822100008F6020000C5B0000020324D -:1002B0000002EE010308F5066F44A6AE50020000EE -:1002C00000018736000000000001203A0001E6012D -:1002D00002FCF50200029513FFFC9693FFFC959635 -:1002E000FFF49616FFF007880008E001031C9793BF -:1002F000FFFC8616FFF08596FFF40000000105ACB8 -:100300000004E00102AC063000018796FFFC8296F3 -:10031000FFF802140000013C00000000000192936D -:10032000FFFC0290000887160000F6020000F6822B -:100330000008963A0008963A000C963A09D8963A80 -:1003400009DC963A0EF4963A0EF896BA1420963ACC -:10035000142490BA148C8696000490BA149096BA1D -:100360000000963A00048796FFFC8296FFF802147C -:100370000008013C0000000000019293FFFC029085 -:100380000008859600008716000886160004773856 -:10039000FFFFC5307000C0325200E40103C9000005 -:1003A0000001872E000076AD001E76B4FFE5C73849 -:1003B0006FC07738FFF0F733280006300002C032F4 -:1003C0005200E40103A005AC00028796FFFC829670 -:1003D000FFF80214000C013C0000000000019293A1 -:1003E000FFFC02900008F7020001E00103E8F705B6 -:1003F0007AD88796FFFC8296FFF802140000013C31 -:10040000000000000001000000009293FFFC029039 -:100410000008F502000AF50571CCF00571D4F0056D -:1004200071D0F00571C4F5020001F682000020369B -:10043000000AEC010464F50571C8F58A1E00F60691 -:1004400071C4472CFFFC973200180630000406B434 -:100450000001F70471CC00000001C0367200EC010D -:10046000044105AC214CF0057198F5066F689513B1 -:10047000FFFCF5067B189513FFFC07880008E000D9 -:1004800015489793FFFCF50605D49513FFFCF782FA -:1004900000059793FFFCF5066F689513FFFC07882E -:1004A0000008E000161C9793FFFCF5060B709513EF -:1004B000FFFCF78200069793FFFCF5066F68951323 -:1004C000FFFC07880008E000161C9793FFFCF50668 -:1004D0000BA09513FFFCF78200059793FFFCF50630 -:1004E00070809513FFFC07880008E000161C9793A6 -:1004F000FFFCF5060B709513FFFCF782000697933F -:10050000FFFCF50670809513FFFC07880008E000EB -:10051000161C9793FFFCF50605589513FFFCF50292 -:10052000000A9513FFFCF506710C9513FFFC078874 -:100530000008E000161C9793FFFC07880008E00104 -:1005400005589793FFFC8796FFFC8296FFF80214EC -:100550000000013C0000000000019293FFFC0290AB -:100560000008F70471C400000001203A0000E60111 -:10057000057DF68671C4E0010594F7020000F704DA -:1005800071D00000000177390002C7386800873A4F -:10059000001800000001203A0000E60105ACF70554 -:1005A0007B10F606710CE00105C0F6057B18F60617 -:1005B0006F68F6057B189702FF48073821289702D5 -:1005C000FF4C8796FFFC8296FFF802140000013C66 -:1005D0000000000000019293FFFC0290000822102E -:1005E00000108682FF48F4866F68F4857B18F50456 -:1005F0007B1026B4000285B60000872A0000762909 -:10060000001E7630FFE576B5001E76B4FFE5C5AC7A -:100610006FC0C73867C07739FFF077B80010703EF9 -:10062000FFE1E601064575ACFFF0F70471AC000090 -:10063000000107380001F70571ACF70471ACE00167 -:1006400008C4F7020001772CFFF8203A0000E60109 -:10065000067176A9001EF70471A800000001073892 -:100660000001F70571A8F70471A8E00108C4F702BA -:100670000001872A000076B4FFE5C7386FC07739DC -:10068000FFF027380004203A0003E20108A400002C -:10069000000177390002F68606A4A6B670020000B3 -:1006A0000001C1340000000106B40001077C000114 -:1006B00007EC00010844872A0004C4840000C03A03 -:1006C0004A00E60106D8000000018702FF4800004A -:1006D0000001C7385200972A0004872A000400004E -:1006E0000001203A2100EE01073CF602000086AA34 -:1006F00000048702FF4800000001C7385200273875 -:100700000028C0367200E601073C0000000177FCBB -:10071000001D703EFFE1E601073C0000000177FC90 -:100720000017703EFFE1E601073D0000000177FC85 -:100730000016703EFFE1E601074420320000F60299 -:10074000000120320000E601088800000001872A2D -:10075000001800000001203A0002EE0108C100006C -:100760000001F70471A40000000107380001F7053B -:1007700071A4F70471A4E00108C4F7020001872AFC -:10078000000400000001203A2100EE0107E0F6021B -:10079000000086AA00048702FF4800000001C73855 -:1007A00052002738000CC0367200E60107E0000056 -:1007B000000177FC001D703EFFE1E60107E000004C -:1007C000000177FC0017703EFFE1E60107E1000041 -:1007D000000177FC0016703EFFE1E6010880203240 -:1007E0000000F6020001E0010880203200008702CC -:1007F000FF4800000001C738520027380004203AA3 -:100800000008E6010838F682000077FC001D703E03 -:10081000FFE1E60108380000000177FC0017703E98 -:10082000FFE1E60108390000000177FC0016703E88 -:10083000FFE1E601088020360000F6820001E001B9 -:10084000088020360000F702000077FC001D703E93 -:10085000FFE1E60108780000000177FC0017703E18 -:10086000FFE1E60108790000000177FC0016703E08 -:10087000FFE1E6010880203A0000F7020001203A7B -:100880000000E60108C100000001F70471A00000AB -:10089000000107380001F70571A0F70471A0E0011D -:1008A00008C4F7020001F704719C0000000107383A -:1008B0000001F705719CF704719CE00108C4F70280 -:1008C0000001F7020000203A0000E601096800007C -:1008D0000001F6847B10000000018736000076B529 -:1008E000001E76B4FFE5C7386FC07739FFF02738B0 -:1008F0000004203A0003E2010B5077390002F6862B -:10090000090CA6B6700200000001C134000000010D -:10091000091C00010AE000010AAC00010B14F704F5 -:1009200071D0F60471CC06B80001C0366200E60151 -:100930000938C7340000F7020000F58471D40000C4 -:100940000001C03A5A00470C0001203A0000E601BD -:10095000098500000001F70471B0000000010738AC -:100960000001F70571B0F70471B0F70471B400002D -:10097000000107380001F70571B4F70471B4E00114 -:100980000B5000000001F48471C8F68571D0949674 -:10099000FFF4F4847B10C0366200E60109A494964B -:1009A000FFECF00571D0F70471D0F00571C88496A2 -:1009B000FFECC03A5A00470C0001F70571C48726C6 -:1009C000000800000001703AFFE1E60109E10000C3 -:1009D0000001F70471980000000107380001F705D5 -:1009E00071988496FFF40000000120260000E601C3 -:1009F0000A710000000107880008E001055897937C -:100A0000FFFCF602000920320014E6010A4D27001F -:100A1000000C203A0001E2010A4DF7062DCCF684C5 -:100A20002ECC0000000175B50002B62E700206B48F -:100A30000001F6852ECC8602FF34F7062E4C2036B8 -:100A4000001FE2010A4DB62E7002F0052ECCF7040D -:100A50002D6800000001873A000000000001873A7D -:100A600000280000000107880008C13800009793A3 -:100A7000FFFCF70471BC8496FFEC07380001F70512 -:100A800071BCF70471BC86A600048496FFF4F704D9 -:100A900071B820260000C7386800F70571B8E60174 -:100AA0000B5100000001E0010B5C00000001F704A5 -:100AB00071C00000000107380001F70571C0F7049C -:100AC00071C0F4847B10000000019493FFFC078840 -:100AD0000008E000FDCC9793FFFCE0010B50000004 -:100AE0000001F70471C00000000107380001F7059C -:100AF00071C0F70471C0F4847B100000000194936E -:100B0000FFFC07880008E000FF309793FFFCE0013E -:100B10000B5000000001F70471C00000000107380D -:100B20000001F70571C0F70471C0F6847B108702DD -:100B3000FF4800000001C7386A00273800049713F7 -:100B4000FFFC9693FFFC07880008E000FE4897939F -:100B5000FFFC07880008E00105589793FFFC879683 -:100B6000FFFC8296FFF802140000013C0000000028 -:100B700000019293FFFC02900008F7067080F705D1 -:100B80007B1807880008E00105589793FFFC8796BB -:100B9000FFFC8296FFF802140000013C00000000F8 -:100BA00000019293FFFC02900008F7066F68F705BA -:100BB0007B1807880008E00105589793FFFC87968B -:100BC000FFFC8296FFF802140000013C00000000C8 -:100BD00000019293FFFC02900008F7067B18971320 -:100BE000FFFCF7066F689713FFFC07880008E0001A -:100BF00014F49793FFFCF7067B189713FFFCF70696 -:100C00006FF49713FFFC07880008E00014F4979333 -:100C1000FFFCF7067B189713FFFCF706708097130D -:100C2000FFFC07880008E00014F49793FFFCF70628 -:100C30007B189713FFFCF706710C9713FFFC0788CE -:100C40000008E00014F49793FFFC8796FFFC82965F -:100C5000FFF802140000013C000000000001000049 -:100C600000009293FFFC02900008F5020004F505D5 -:100C70007600F0057608F0057604F00575F8F502C3 -:100C80000001F682000020360004EC010CBCF505E2 -:100C900075FCF58E6AF8F60675F8472CFFFC97325E -:100CA00000180630000406B40001F70476000000C6 -:100CB0000001C0367200EC010C9905AC214CF50620 -:100CC00072189513FFFCF50676489513FFFC07880C -:100CD0000008E00015489793FFFCF5060DF4951306 -:100CE000FFFCF782000E9793FFFCF5067218951330 -:100CF000FFFC07880008E000161C9793FFFCF50630 -:100D00000DF49513FFFCF782000E9793FFFCF50698 -:100D100072A49513FFFC07880008E000161C979347 -:100D2000FFFCF506132C9513FFFCF7820001979347 -:100D3000FFFCF50673309513FFFC07880008E00000 -:100D4000161C9793FFFCF50616C89513FFFCF78257 -:100D500000019793FFFCF50673BC9513FFFC078811 -:100D60000008E000161C9793FFFCF5061800951389 -:100D7000FFFCF78200109793FFFCF506744895136B -:100D8000FFFC07880008E000161C9793FFFCF5069F -:100D900016409513FFFCF78200109793FFFCF506B1 -:100DA00074D49513FFFC07880008E000161C979385 -:100DB000FFFCF506132C9513FFFCF50200129513AA -:100DC000FFFCF50675609513FFFC07880008E0003E -:100DD000161C9793FFFCF00575F0F00575ECF00517 -:100DE00075F48796FFFC8296FFF802140000013C20 -:100DF0000000000000019293FFFC02900008221006 -:100E00000038F70475EC00000001203A0000E6010C -:100E10000E2800000001F70475F000000001203AE0 -:100E20000000E6010E3D0000000107880008E00117 -:100E300015D09793FFFCE001131800000001F704A0 -:100E400075FC00000001203A0000E6010E59F6860C -:100E500075F8E0010E6CF6820000F70476080000D9 -:100E6000000177390002C738680086BA0018F70415 -:100E700076FC00000001203A0000E6010E90F685A5 -:100E80007660F3067648F30576FCE0010EA4F702DF -:100E90000001F3020010F30576F8F3067648F30537 -:100EA0007700F7020000203A0000E6011315F30670 -:100EB0007448F70475EC00000001203A0000E601D8 -:100EC0000ED800000001F70475F000000001203A80 -:100ED0000000E6010EED0000000107880008E001B7 -:100EE00016409793FFFCE001131800000001F68400 -:100EF0007660000000018736000800000001703AAB -:100F0000FFE1E6010F21F48200009693FFFC0788C1 -:100F10000008E00000BC9793FFFCE0011314F30607 -:100F20007560C3B40000841E0010F6844AA0231428 -:100F300000209316FFC49416FFE09696FFD4851EFA -:100F40000014F7044A9C00000001C0367200EC0156 -:100F5000100C9516FFE477350001C7386800773923 -:100F60000002F3064A98C6B8300006B4000CC584E7 -:100F700000008736000000000001C03A4200E60190 -:100F80000F9CC62400008736000400000001C03A10 -:100F90005200E6010FA020320000F60200012032CC -:100FA0000000E6010FAD00000001F582000086366A -:100FB00000008716FFE000000001C0327200E2016D -:100FC0000FE8F5020000C0327200E6010FF0202A9F -:100FD000000086B600048716FFE400000001C0365A -:100FE0007200E2010FF1202A0000F5020001202A20 -:100FF0000000E6011001202E0000F5820001202EE5 -:101000000000E601101020260000F48200012026D6 -:101010000000E6011045F60200018716FFD4F30632 -:101020004A9876B90001C6B4700076B50002C6B41D -:10103000300006B4001486B600009716FFD8E00111 -:1010400010B89696FFDC2714002C9713FFFC83162C -:10105000FFC4000000019313FFFCF3064A989313AA -:10106000FFFC9396FFCC07880008E0012568979362 -:10107000FFFC8396FFCC20220000E60110B5F602AB -:1010800000018716FFD4F3064A9876B90001C6B46A -:10109000700076B50002C6B4300006B4001486B6FF -:1010A00000009716FFD89696FFDCF7054AA0E001EE -:1010B00010BC20320000F602000020320000E601E1 -:1010C00010CCF4820001E0011124F4820000869625 -:1010D000FFD80000000177350002C7386800773973 -:1010E0000002F68642C8A63A6802C7386800753919 -:1010F000001E7528FFE505B8000286AE000007381F -:1011000000049716FFECC63057C07630FFF09616F5 -:10111000FFF475AD001E75ACFFE5C6B45FC076B4D4 -:10112000FFF09696FFF020260000E6011138F582C8 -:101130000000E00111CCF60200008696FFF00000EE -:101140000001C7346800C49C7200C02E6A00EC0124 -:101150001198C5240000C62C00008716FFEC000083 -:101160000001A6B2700205AC0001C73070007739EB -:10117000001E7738FFE5C6B477C076B4FFF0F6AB53 -:101180002800052800028716FFF000000001C02E8D -:101190007200EC01115906300002F3020001F30560 -:1011A00076F4F60200018716FFF0869E0004C73829 -:1011B0007000C7384800C6B470008716FFF406B444 -:1011C00000209702FF6C9482FF509682FF582032D5 -:1011D0000000E601131000000001F704765CF584BE -:1011E00076F807380001F705765CF704765C202E68 -:1011F0000021E2011230F6862C28F7042D38000079 -:10120000000106380001F6052D387739000220323A -:101210000044E601121CB5BA6802F0052D38F3024D -:101220000022F30576F8F3047700E0011234F305A9 -:1012300076FCF00576FCF70475F800000001203A12 -:101240000000E6011271F6862C28F7042D38000004 -:10125000000106380001F6052D3877390002F30247 -:10126000000F20320044E6011270B33A6802F00524 -:101270002D38F7047608F684760007380001C03A66 -:101280006A00E601128CF7057608F0057608F68408 -:101290007608F7047604F00575F8F60675F8C0369A -:1012A0007200470C0001203A0000E60112B9F70570 -:1012B00075FCE00112C8F702000077350002C7385C -:1012C0006000873A001800000001203A0000E601A3 -:1012D0001309F7057660F7042D38F30672A4F305B9 -:1012E0007648F6862C2806380001F6052D38773921 -:1012F0000002F302000E20320044E6011318B33A54 -:101300006802E0011318F0052D38E0011314F3060C -:101310007218F3067330F30576488796FFFC8296C1 -:10132000FFF802140000013C00000000000192934D -:10133000FFFC02900008F70476600000000186BA06 -:101340000004F704765400000001C7386800F70570 -:101350007654F70476580000000107380001F705BD -:101360007658F70475F8F6847658203A0000E601BE -:10137000139DF6862C28F7042D380000000106384E -:101380000001F6052D3877390002F502000F2032F2 -:101390000044E601139CB53A6802F0052D38F704C5 -:1013A0007608F684760007380001C03A6A00E60144 -:1013B00013B8F7057608F0057608F7047608F68482 -:1013C0007604F00575F8F58476F8C03A6A00470CA3 -:1013D0000001202E0021E2011414F70575FCF7042A -:1013E0002D38F6862C2806380001F6052D38773979 -:1013F000000220320044E6011400B5BA6802F0058C -:101400002D38F5020022F50576F8F5047700E001A5 -:101410001418F50576FCF00576FCF70475ECF50676 -:101420007218203A0000E6011440F5057648F704EA -:1014300075F000000001203A0000E601145500009C -:10144000000107880008E00115D09793FFFCE00138 -:1014500014C400000001F70475FC00000001203AEC -:101460000000E6011471F68675F8E0011488F702B1 -:101470000000F70476080000000177390002C73841 -:101480006800873A001800000001203A0000E601D9 -:1014900014C5F7057660F7042D38F6862C28063833 -:1014A0000001F6052D3877390002F502000E2032D2 -:1014B0000044E60114BCB53A6802F0052D38F50683 -:1014C00072A4F50576488796FFFC8296FFF8021411 -:1014D0000000013C0000000000019293FFFC02901C -:1014E0000008F70475EC00000001203A0000E60156 -:1014F0001540F40200008696000400000001F68505 -:1015000075EC8696000800000001F6857B3886960B -:101510000000F7047648F6857B30F6867218C03AEC -:101520006A00470C0001203A0000E6011541F40270 -:10153000000107880008E00115D09793FFFCF40232 -:1015400000018796FFFC8296FFF80214000C013C14 -:101550000000000000019293FFFC02900008F704D5 -:1015600075F400000001203A0000E60115BCF40209 -:1015700000008696000400000001F68575F086964E -:10158000000800000001F6857B4886960000F704FD -:101590007648F6857B40F6867218C03A6A00470C9A -:1015A0000001203A0000E60115BDF40200010788A1 -:1015B0000008E00115D09793FFFCF4020001879624 -:1015C000FFFC8296FFF80214000C013C00000000B2 -:1015D00000019293FFFC02900008F70476FC0000E3 -:1015E0000001203A0000E60115FCF6820010F686A4 -:1015F0007648F68576FCE001160CF7020001F685C8 -:1016000076F8F6867648F6857700F7020000203AED -:101610000000E6011620F68674D4E001162CF6854B -:10162000764807880008E00116409793FFFC8796EC -:10163000FFFC8296FFF802140000013C000000004D -:1016400000019293FFFC02900008F60475F0000080 -:10165000000120320000E6011685F7020001F705BF -:1016600075F4F6847B48F70576F4F7047B40C6B042 -:10167000680026B400049702FF6C9602FF50E00158 -:1016800016A800000001F70475ECF6847B38F5829B -:101690000001F58576F4F6047B30C6B8680026B400 -:1016A00000049602FF6C9702FF509682FF58F58661 -:1016B00073BCF58576488796FFFC8296FFF8021486 -:1016C0000000013C0000000000019293FFFC02902A -:1016D0000008F7047B280000000107380001F70527 -:1016E0007B28F70475F4F6847B28203A0000E60195 -:1016F000172100000001F00575F4F70475EC0000F7 -:101700000001203A0000E6011725F00575F0078872 -:101710000008E00116409793FFFCE00117EC000081 -:101720000001F00575ECF70475FC00000001203A9B -:101730000000E6011741F68675F8E0011758F70238 -:101740000000F70476080000000177390002C7386E -:101750006800873A001800000001203A0000E60106 -:101760001795F7057660F7042D38F6862C2806388D -:101770000001F6052D3877390002F502000E2032FF -:101780000044E601178CB53A6802F0052D38E001F7 -:101790001798F50672A4F5067218F5057648F584D3 -:1017A00076F800000001202E0021E20117E8F686FD -:1017B0002C28F7042D380000000106380001F6053A -:1017C0002D387739000220320044E60117D4B5BA2B -:1017D0006802F0052D38F5020022F50576F8F504CB -:1017E0007700E00117ECF50576FCF00576FC8796AE -:1017F000FFFC8296FFF802140000013C000000008C -:1018000000019293FFFC0290000822100038F704B8 -:1018100075EC00000001203A0000E60118340000D9 -:101820000001F70475F000000001203A0000E60115 -:1018300018490000000107880008E001164097934E -:10184000FFFCE0011C7400000001F68476600000DB -:1018500000018736000800000001703AFFE1E60150 -:10186000187DF48200009693FFFC07880008E000D2 -:1018700000BC9793FFFCE0011C70F3067560C3B4D5 -:101880000000841E0010F6844AA023140020931642 -:10189000FFC49416FFE09696FFD4851E0014F7044B -:1018A0004A9C00000001C0367200EC0119689516D0 -:1018B000FFE477350001C738680077390002F30686 -:1018C0004A98C6B8300006B4000CC58400008736BC -:1018D000000000000001C03A4200E60118F8C624EA -:1018E00000008736000400000001C03A5200E60103 -:1018F00018FC20320000F602000120320000E60150 -:10190000190900000001F5820000863600008716E4 -:10191000FFE000000001C0327200E2011944F5024C -:101920000000C0327200E601194C202A000086B681 -:1019300000048716FFE400000001C0367200E201D7 -:10194000194D202A0000F5020001202A0000E601BE -:10195000195D202E0000F5820001202E0000E60116 -:10196000196C20260000F482000120260000E60108 -:1019700019A1F60200018716FFD4F3064A9876B93A -:101980000001C6B4700076B50002C6B4300006B4DB -:10199000001486B600009716FFD8E0011A14969638 -:1019A000FFDC2714002C9713FFFC8316FFC40000F4 -:1019B00000019313FFFCF3064A989313FFFC9396E0 -:1019C000FFCC07880008E00125689793FFFC839609 -:1019D000FFCC20220000E6011A11F6020001871652 -:1019E000FFD4F3064A9876B90001C6B4700076B504 -:1019F0000002C6B4300006B4001486B60000971684 -:101A0000FFD89696FFDCF7054AA0E0011A182032AD -:101A10000000F602000020320000E6011A28F482DD -:101A20000001E0011A80F48200008696FFD80000D1 -:101A3000000177350002C738680077390002F68662 -:101A400042C8A63A6802C73868007539001E752872 -:101A5000FFE505B8000286AE0000073800049716BF -:101A6000FFECC63057C07630FFF09616FFF475AD28 -:101A7000001E75ACFFE5C6B45FC076B4FFF0969665 -:101A8000FFF020260000E6011A94F5820000E00134 -:101A90001B28F60200008696FFF000000001C73404 -:101AA0006800C49C7200C02E6A00EC011AF4C524C0 -:101AB0000000C62C00008716FFEC00000001A6B253 -:101AC000700205AC0001C73070007739001E77380E -:101AD000FFE5C6B477C076B4FFF0F6AB2800052862 -:101AE00000028716FFF000000001C02E7200EC011A -:101AF0001AB506300002F3020001F30576F4F6028F -:101B000000018716FFF0869E0004C7387000C738B2 -:101B10004800C6B470008716FFF406B40020970290 -:101B2000FF6C9482FF509682FF5820320000E6013D -:101B30001C6C00000001F704765CF58476F8073829 -:101B40000001F705765CF704765C202E0021E201A7 -:101B50001B8CF6862C28F7042D380000000106386F -:101B60000001F6052D387739000220320044E601E5 -:101B70001B78B5BA6802F0052D38F3020022F30590 -:101B800076F8F3047700E0011B90F30576FCF0058E -:101B900076FCF70475F800000001203A0000E60129 -:101BA0001BCDF6862C28F7042D38000000010638DE -:101BB0000001F6052D3877390002F302000F2032BC -:101BC0000044E6011BCCB33A6802F0052D38F70457 -:101BD0007608F684760007380001C03A6A00E6010C -:101BE0001BE8F7057608F0057608F6847608F70412 -:101BF0007604F00575F8F60675F8C0367200470CE5 -:101C00000001203A0000E6011C15F70575FCE00113 -:101C10001C24F702000077350002C7386000873ABD -:101C2000001800000001203A0000E6011C65F705DD -:101C30007660F7042D38F30672A4F3057648F6862D -:101C40002C2806380001F6052D3877390002F302FA -:101C5000000E20320044E6011C74B33A6802E00131 -:101C60001C74F0052D38E0011C70F3067218F306A1 -:101C70007330F30576488796FFFC8296FFF80214CE -:101C80000000013C0000000000019293FFFC029064 -:101C90000008F70676489713FFFCF70672189713AB -:101CA000FFFC07880008E00014F49793FFFCF70698 -:101CB00076489713FFFCF70672A49713FFFC07887A -:101CC0000008E00014F49793FFFCF706764897139A -:101CD000FFFCF70673309713FFFC07880008E0004D -:101CE00014F49793FFFCF70676489713FFFCF7066A -:101CF00073BC9713FFFC07880008E00014F4979367 -:101D0000FFFCF70676489713FFFCF7067448971315 -:101D1000FFFC07880008E00014F49793FFFCF70627 -:101D200076489713FFFCF70674D49713FFFC0788D7 -:101D30000008E00014F49793FFFCF7067648971329 -:101D4000FFFCF70675609713FFFC07880008E000AA -:101D500014F49793FFFC8796FFFC8296FFF8021419 -:101D60000000013C0000000000019293FFFC029083 -:101D70000008F68676689693FFFCF68677049693BD -:101D8000FFFC07880008E00015489793FFFCF686E3 -:101D90001DD49693FFFC9013FFFCF686766896930D -:101DA000FFFC07880008E000161C9793FFFCF70271 -:101DB0000022F70576F4F70576F8F00576FCF005D5 -:101DC00077008796FFFC8296FFF802140000013C22 -:101DD0000000000000019293FFFC02900008F7044D -:101DE00076F400000001203A0022E6011E01000006 -:101DF00000019713FFFC07880008E0001584979303 -:101E0000FFFC8796FFFC8296FFF802140000013C5D -:101E10000000000000019293FFFC02900008F7060A -:101E200077049713FFFCF70676689713FFFC078883 -:101E30000008E00014F49793FFFC8796FFFC82965D -:101E4000FFF802140000013C000000000001000047 -:101E500000009293FFFC02900008F686781096939B -:101E6000FFFCF68678A49693FFFC07880008E00044 -:101E700015489793FFFCF6861FBC9693FFFCF682ED -:101E800000149693FFFCF68678109693FFFC078863 -:101E90000008E000161C9793FFFCF005789C900268 -:101EA000FF34F7027FFFF70578A09702FF3087968F -:101EB000FFFC8296FFF802140000013C00000000C5 -:101EC00000019293FFFC02900008F604789C8716AC -:101ED000000084960008F5867710873A0008F68699 -:101EE000218C7539000477390002A73A6802203244 -:101EF0000000C6A8580084160004C63075809436C9 -:101F00000004B4AA580287360008F605789C073802 -:101F10000001E6011F2D973600088702FF30000000 -:101F20000001C03A4A00EE011F3500000001F485AF -:101F300078A09482FF308796FFFC8296FFF8021407 -:101F4000000C013C0000000000019293FFFC029095 -:101F500000088596000000000001872E0008F68624 -:101F6000218C77390002A73A6802F604789CC704EE -:101F7000760086AE0008C6307400F7067710F605C6 -:101F8000789C76B50004C6B470008736000820320D -:101F9000000007380001E6011FA897360008F70285 -:101FA0007FFFF70578A09702FF308796FFFC8296A7 -:101FB000FFF802140004013C0000000000019293AD -:101FC000FFFC0290000822100008F704789C000033 -:101FD0000001203A0000E60120D1F6027FFF9616AC -:101FE000FFF4F6842D40F606771026B4000177350D -:101FF0000004C4B86000C338000074350002F6065F -:102000007710C0266200EC0120C1F606218CF38413 -:10201000789CA722600200000001C01E7400E60147 -:1020200020B10000000186A60000F70478A000009F -:102030000001C6B4720020360000EE01209896A67A -:102040000000F7042D38F6067710C5186000F686F4 -:102050002C28862A000405B80001F5852D3877392B -:102060000002202E0044E6012070B63A6802F00516 -:102070002D38862A000800000001962A000CF6067A -:10208000218CA722600200000001C7047600C71C53 -:102090007400E00120B0F705789C8616FFF400007C -:1020A0000001C0366200EC0120B0000000019696ED -:1020B000FFF424A4001023180010E0011FFC2420CA -:1020C00000048616FFF400000001F60578A09602D1 -:1020D000FF308796FFFC8296FFF802140000013C57 -:1020E0000000000000019293FFFC02900008871698 -:1020F000000000000001873A0008F6867710773963 -:102100000004C738680086BA000C873A000800004F -:102110000001C0367200440C00018796FFFC8296D5 -:10212000FFF802140004013C00000000000192933B -:10213000FFFC02900008F702000F203A0000EC01BB -:10214000215DF68677189036000027380001C60416 -:102150000000C03A6200E601214406B40010F60611 -:1021600078A49613FFFCF60678109613FFFC0788F8 -:102170000008E00014F49793FFFC8796FFFC82961A -:10218000FFF802140000013C000000000001000004 -:102190000001000000020000000400000008000030 -:1021A000001000000020000000400000008000003F -:1021B0000100000002000000040000000800000010 -:1021C000100000002000000040000000800000001F -:1021D00000009293FFFC02900008F70678B0971376 -:1021E000FFFCF70679CC9713FFFC07880008E00096 -:1021F00015489793FFFCF706222C9713FFFCF70274 -:1022000000159713FFFCF70678B09713FFFC0788BB -:102210000008E000161C9793FFFC8796FFFC82964F -:10222000FFF802140000013C00000000000192933E -:10223000FFFC02900008F6846F440000000187361E -:10224000000000000001203A0002E6012270F602C0 -:10225000000087360EF486B60EF800000001C03A82 -:102260006A00470C0001203A0000E6012278203283 -:102270000000F602000120320000E6012294000076 -:102280000001F70432E800000001203A0000E601F6 -:1022900022B1F58203E80F814000F70479C80000FD -:1022A000000107380001F70579C8F70479C8F582FD -:1022B00003E89593FFFCF58200159593FFFCF586E6 -:1022C00079CC9593FFFC07880008E0011EC0979326 -:1022D000FFFC8796FFFC8296FFF802140000013C89 -:1022E0000000000000019293FFFC02900008F70636 -:1022F00079CC9713FFFCF70678B09713FFFC07889B -:102300000008E00014F49793FFFCF70679CC9713CC -:10231000FFFCF706793C9713FFFC07880008E000F4 -:1023200014F49793FFFC8796FFFC8296FFF8021443 -:102330000000013C000000000001C13C0000021050 -:1023400000049293FFFC029000082210000C859676 -:1023500000000000000186AE0004000000012036ED -:102360000000E60123842714000C872E00040000DF -:10237000000107380001972E0004872E0004E001B9 -:1023800024349696FFF49713FFFC85160004000092 -:1023900000019513FFFC9593FFFC9596FFEC0788D1 -:1023A0000008E00125689793FFFC8596FFEC20224A -:1023B0000000E60124340000000186AE0004861609 -:1023C000FFF400000001C0366200EE0124217735E1 -:1023D0000001C738680077390002C6B85800773165 -:1023E0000001C738600077390002C73858008536C9 -:1023F0000000000000019536000C85360004000046 -:102400000001953600108536000800000001953661 -:10241000001426B4000CC0367200EE0123EC00005C -:102420000001872E00040000000107380001972EEC -:102430000004872E00048696FFF485160004773585 -:102440000001C738680077390002C72C7000852A60 -:10245000000000000001953A000C85160004000001 -:102460000001852A000400000001953A001085163D -:102470000008F4020001953A001496AE0008879611 -:10248000FFFC8296FFF80214000C013C00000000E3 -:1024900000019293FFFC029000082210000C859628 -:1024A000000000000001842E000400000001202232 -:1024B0000000E60125552714000C9713FFFC851634 -:1024C0000004000000019513FFFC9593FFFC959616 -:1024D000FFEC07880008E00125689793FFFC8596CC -:1024E000FFEC20220000E6012555000000018616C1 -:1024F000FFF40000000120320000EE012545773195 -:102500000001C6AC0000C738600077390002C73848 -:10251000580085360018000000019536000C8536FD -:10252000001C0000000195360010853600200000D8 -:1025300000019536001406B4000CC0367200EC01A0 -:10254000251100000001872E0004F4020001273845 -:102550000001972E00048796FFFC8296FFF8021474 -:102560000008013C0000000000019293FFFC029073 -:102570000008221000088396000483160000C5009E -:102580000000841A0004C4A800009416FFF4C026BA -:102590004200E60126D1000000018316FFF400008E -:1025A0000001C02A3200E60126D1C7204A00951654 -:1025B000FFF476B8FFE1C73868007739FFFFC5241C -:1025C000700077290001C738500077390002831660 -:1025D0000000869E0000C5B8300005AC000C872EB8 -:1025E0000000C6000000C0367200E601261020324E -:1025F0000000869E0004872E000400000001C03603 -:102600007200E601261020320000F602000120329E -:102610000000E601262500000001C7000000E001DF -:102620002678203A0000869E0000872E00000000D9 -:102630000001C0367200E201265C00000001E601E4 -:10264000266420320000869E0004872E00040000CD -:102650000001C0367200E201266520320000F60259 -:102660000001203200004704FFFFE6012679203AEE -:102670000000F7020001203A0000E60126B1203AEE -:102680000000EE0126A0203A00014304FFFFC03AFB -:102690003200E60126C9C0264200E0012590000074 -:1026A0000001E60126C1C0264200E001259000009D -:1026B000000183160008F4020001E00126E0951AEB -:1026C0000000E001258CC4A80000E001258CC4288E -:1026D00000008316000800000001941A0000C400E6 -:1026E00000008796FFFC8296FFF80214000C013C64 -:1026F000000000000001000000009293FFFC029027 -:102700000008859600048416000084960008F702ED -:102710000003C6A04D80C6B67400E6012771C6202E -:10272000000020360002E60127A0C5204800C7208F -:10273000480027380002C0227200E201279CC538F9 -:102740000000872E000076AD001E76B4FFE5C73886 -:102750006FC07738FFF0F733280006300002C03230 -:102760005200E201274105AC0002E00127A0C5208C -:102770004800C720480027380004C0227200E20148 -:1027800027A0C520480083AD00040000000193B1DC -:102790000004C0327200E201278500000001C5205C -:1027A0004800C0325200E40127D50000000186AE87 -:1027B0000000772D001E7738FFE5C6B477C076B5E8 -:1027C000FFE8F6B3680006300001C0325200E401B1 -:1027D00027AC05AC00018796FFFC8296FFF8021437 -:1027E000000C013C0000000000019293FFFC0290ED -:1027F0000008841600008696000400000001C7222D -:102800006D80E601281020360000E0012874C438ED -:102810000000F7020001EE012841F602000076B543 -:10282000000120360000EE01281C77390001E0018C -:10283000284420220000742100017738FFFF063071 -:10284000000120220000EE012834203A0000E601B9 -:10285000287100000001C0226A00E4012864000021 -:102860000001C4206A00773AFFFFE601285476B4DD -:10287000FFFFD42007628796FFFC8296FFF80214C0 -:102880000008013C0000000000019293FFFC029050 -:10289000000822100004E00128CCF70629DC86BAE3 -:1028A00000000000000120360000E60128C90000F9 -:1028B00000019716FFF407880008C13400009793C1 -:1028C000FFFC8716FFF40000000127380004F6061D -:1028D00029E0C03A6200E401289D000000018796CB -:1028E000FFFC8296FFF802140000013C000000008B -:1028F00000019293FFFC0290000822100004E00106 -:102900002934F706299886BA000000000001203615 -:102910000000E6012931000000019716FFF4078846 -:102920000008C13400009793FFFC8716FFF40000F5 -:10293000000107380004F60629E0C03A6200E4010D -:102940002904000000018796FFFC8296FFF802141C -:102950000000013C0000000000019293FFFC029087 -:102960000008F7047B5000000001203A0000E60157 -:102970002984F6820001F6857B5007880008E00173 -:1029800028F09793FFFC8796FFFC8296FFF80214CD -:102990000000013C00000000000100000B4C0000A2 -:1029A0000000000042880000000000005E500000AF -:1029B00000000000C7A80000000000010BD00000CC -:1029C000000000011C880000000000011E1400002F -:1029D00000000001212C00000000000122E40000A2 -:0229E0000000F5 -:00000001FF -/* This is the Myrinet MCP code for LANai4.x */ -/* Generated by cat $MYRI_HOME/lib/lanai/mcp4.dat > myri_code4.h */ diff --git a/firmware/ositech/Xilinx7OD.bin.ihex b/firmware/ositech/Xilinx7OD.bin.ihex deleted file mode 100644 index 03e80857a549..000000000000 --- a/firmware/ositech/Xilinx7OD.bin.ihex +++ /dev/null @@ -1,177 +0,0 @@ -:10000000FF04A036F3ECFFFFFFDFFBFFF3FFFFFF72 -:10001000EF3FFFF7FFFFFFFFEF7FFEFFCEFEFEFE8D -:10002000FEDEBDDDFDFFFDCFF7BF7FFF7F3FFEBFE3 -:10003000FFFFFFBCFFFFBDB57F7FBFBF7FFFEFFFAF -:10004000FFFFFBFFF7F7FFFFFFFFFEDEFEFEFADE1E -:10005000BDFDEDFDFDCFEFEFEFEFC7DFDFDFDFDF52 -:10006000FF7EFEFD7D6DEEFE7CFBF4FBCFDBDFFF54 -:10007000FFBB7FFF7FFFF7FF9EBF3BBFBF7F7F7F41 -:100080007E6FDFEFF5F6FDF6F5EDEBFFEFEFEF7EC0 -:100090007F7F6F7FFFFEFEFEFEFEEFBFFFFFFFFFD5 -:1000A000FFFFFFFFFFFFBC1F1FEEFFBCB7FFDFFF1F -:1000B000DFEF3BE3D3FFFBFFFFDFFFFFFFBABF2D07 -:1000C000DBBDFDDBDFFAFBFFEFFBDBF3FFDFFD7FDB -:1000D000EFFBFFFFBEBF27BAFEFBDFFFF6FFFFEF20 -:1000E000FBDBF3D99A3FFFAFBFFFFFBE3F37BD96A3 -:1000F000FFFFFFFFFFFFAEFBF3F3EBFFFFFFFFFF91 -:10010000FFF7FABCAEFEBEFEBB7FFDFF7FEFF7FB45 -:10011000BBD7F77FFFF7FFFFF7BCEDFDBD9D7D7BF4 -:10012000FB7B7BFBAFFFFEFDFDFEFEFFFFFFFFF74E -:10013000AAB9BF8FBFDFFF7FFFFF7FCFFBEBCBEB0A -:10014000EEFFFFD7FFFFFF3E333F1C7CFCFFFFFFAE -:10015000FFFFCFD3F3E3F3FBFFFFFFFFFFEBFE3522 -:100160003F3DFDFDFFFFFFBFFFEF6FE3E3E3EFFF69 -:10017000FFDFFFFFF7FE3E5EFEFFFFFFFFFDFFFF1D -:10018000AFCFF2CBCF8EFFFFFFFFFFFDFC3E1F9EE8 -:10019000ADFDFFFFBFFFFFEFFFB3F7E7F7FAFFFF8C -:1001A000FFFFFFEEEBABAF9FE37FFFDEFF7FEEFFD6 -:1001B000FFFB3AFAFFF277FFFFF7FEFFFEBDAEDE70 -:1001C0007D7DFDFFBFEEFFFDFFDBFBFFF7EFFBFFDC -:1001D000FFFEFF2DAFB9FD79FBFAFFBFEFFFFF91E7 -:1001E000FAFBDFF7F7FFFFFFFCCF37BFBFFF7F7FD3 -:1001F000FFFFFFAFFFFFF3FBFBFFF5EFFFFFF7FA9A -:10020000FFFFEEFAFEFB55DDFF7FAFFEFFFBFBF5C8 -:10021000FFF7EFFFFFFFBEBDBDBDBD7D7B7B7B7BE1 -:10022000FBAEFFFDFEFFFFFFFFFFFFFFF7DAB76149 -:10023000FFB959F373F3DF7F6FDFEFF7EBEBD7FF16 -:10024000D7FFFFF7FE7FFB3E3873F67FFCFFFFCF43 -:10025000FFB7FBB3B367FFE7FDFFEFF67FB7BCF572 -:100260007BF6F7F5FFFFEFFFF7FFF7CEE7FF9FFF06 -:10027000FFF5FE7DFF5FFFFFFFFFFFFFFFEFFFF6D4 -:10028000CBDBEEFEFFDFFFFFFFFE7FBE1E3EFEFF6D -:100290007DFEFFFFEFBFE7FFE3E3FFDFE7FFFFFFC9 -:1002A000B8EFB72FEEFFDFFFBFFF7FEFEBBFA3D3AA -:1002B000FF7FFFFFFFFFF7BEFD3FCFFDFBFFFFFF0F -:1002C000FFFFAFFBBFBBBFDBFDFBFFFFFFFF3EFE42 -:1002D0003FBABAFEFFFFFFEFFFEFC37FB29BFFFF06 -:1002E000FFFFFEFFFF3CFF3F3CFFFEFFFFFFFFFF66 -:1002F000AFF3FEF3E3EBFFFFFFFBFFF79AFEAF9ECA -:10030000BEFEFFDFFFFF7BEFF7BFFBFBFBFFFF7FC7 -:10031000FFFFFFBCBDFDBDDD7D7B7B7B7BFBAEFFBF -:10032000FFFFFEFEFFFDFFFFFFF79AFF9FFFAFEF0E -:10033000FFFFFFFF7FCFF3FFEBFFEBFFFFBFFFFFF1 -:10034000EFFEFF37FCBFFFFFFFFFFFFFCFEFFDF327 -:10035000FFEEFEFFFFFFFFFF6EFD2FFDFFFDFFFF26 -:10036000FFFFFFEFCFFFF3BF69FFFFFFFFFFFFFEC0 -:10037000FB9FFFBFFDFFFFFFFFFFEF87FEDAEFCF21 -:10038000FFFFFFFFFFFFFEEFBFEFEFFDFFFFFFFFF0 -:10039000FFEFFDFF7BFFEBFEFFFFFFFFEBF8FFEF43 -:1003A000AFFFFFBDFFFFFF7FEE7FEFFFBBFFBFFB98 -:1003B000FFFFFFF7F6FBBDFDDDF5FFFFFFFFFFAF22 -:1003C000FF5FF5DFFF7FFFFFFFFFFFF6F3FFDEFEBE -:1003D000EFFDFFFFFFFFEFFFDEDF5FDFFDFFFFFF52 -:1003E000FFFFFEFFFFFEFEFFFDFFFFFFFFAFFFFF72 -:1003F000EFEDFFDFFFFFFBFFFFDABDBEAEFE7FFDCF -:10040000DFFFFF7FEFFFFBFBFB7FF7FFFFFFFFF748 -:10041000BCFDBDBDBDFD7B7B7B7BFBAEFFFFFDFF60 -:10042000FFFFFDFFFFFFFFFA9FBFBFCF7FFFFFFF73 -:10043000FFFFAFFFEBEBEBFFD7FEFFFFBFE7FEBF1A -:100440007FFCFFFFEDFFFFFFFF4FFFFBFBFFFFDD2B -:10045000FFFFFFFFFFFEBDDF9DFDDFB9FFFFFFFFD9 -:10046000EFFFFBEFEBFFDEFFFFFFFFFFF69FFFFC61 -:10047000FEFBFDFFFFFFFFEFDFFACDCFBF9FFFFFCA -:10048000FFFFF7FEBFFFDFEF5FFFFFFFFF7F6FFFA5 -:10049000BBFDFFFFFFFFFFFFFFFF7EFF5FFFBFBF53 -:1004A000F9FFFFFF7F6E7BFFEFFDEBDFFFFFFFFF3D -:1004B000F7B63EFCFDBF7EFBFFFFFFF7EFF7F3F75C -:1004C000FFFBFFFFFFFFFFFF6E3579FFBFFCFFFF64 -:1004D000FFFFFFEFFB53DFFFEBBFFFFFFFFFFFBCA3 -:1004E000FFFFFFBFFFFDFFFFFFFFAFF5FFF7FFFBC4 -:1004F000FFFFFFFFFFFFBAAAEEFE3F7DFDFFFFFFFC -:100500007FAF77FBFBFFFBF7FFFFFFFFF7BEBDBD34 -:10051000BDBDFD7B7B7B7BFBAEFFEFFFFFFFFFFCE9 -:10052000FFFFFFFF9AD9B8FFFF79FFFFFFFFFFCF63 -:10053000FBFFEBFFEBD7FFFFFFFFE7DEF8FBFE3F24 -:10054000FBFDFFFFFFFFCFADBFFAFF73DFFFFFFF34 -:10055000FFFF3AF5B7FC3FF9FDFFFFFF7FEFF3FF29 -:10056000BFFEF39FFEFFFFFFF73EFFFFFFBFFFFF52 -:10057000FFFFFFFFAFD3FEDBFFDBDFFFFFFFFFFF70 -:100580003EFFBFFF7FFFFDFFFFFFFF8FF3FFEDFF8C -:10059000F7FBFFFFFFFFEFF63CFEFFFFFFFFFFFF54 -:1005A000FF9FEFEFD1FFFFFFFFFFFFFFFFFF7EBFCA -:1005B000FDFFFFFFFFFFFFFFBBEFDFF1FFFFFFFFCF -:1005C000FFFFFFFFFFEE3EFEFFFFFFFFFFFFFFBF4E -:1005D000EFFDC3FFFFFFFFFFFFFFBFFFFC3EFEFF7E -:1005E000FFFFFFFFFFFFFF2EEFF3FFFFFFFFFFFF08 -:1005F000FFFFF7BABEFEFFFFFFFFFFFFFF7FAFFB6E -:10060000FBFDFFFFFFFEFFFFFFF2D6EDBDBDBD7D91 -:100610007B7B7B7BFBAFDFFFFFFFFFFFFFFFFFFF6E -:10062000FF92BFFFFFFFFFFFFFFFFF7FAFEBEBFF7F -:10063000FFFFFFFFFFFFFFE7FE2EFEFFFFFFFFFFB5 -:10064000FFFFFF4FEFF3FFFFFFFFFFFFFFFFFFFE87 -:100650003CFEFFFFFFFFFFFFFFFFEFCEC3FDFFFFED -:10066000FFFFFFFFFFFFFE5DFFFFFFFFFFFFFFFF3D -:10067000FFEFCFEBFFFFFFFFFFFFFFFFF7EE3EFFB8 -:10068000FFFFFFFFFFFFFF7FEFDFE2FFFFFFFBFF4B -:10069000FFFFFFFFF6BEFCFFFFFFFFFFFFFF7FEE48 -:1006A0005FE6FFFFFFFFFFFFFFFFFF3E7DFFFFFF56 -:1006B000FFFFFFFFFFFFEFF3FBFFFFFFFFFFFFFF6A -:1006C000BFF736BEFEFFFFFFFFFFFFFFFFEFD3F6D2 -:1006D000FEFFFFFFFFFFFFFFFFFC7FEEFFFFFFFFBF -:1006E000FFFFFFFFAFEFEBFFFFFFFFFFFFFFFFFF8E -:1006F000BABEFEFFFFFFFFFFFFFFFFEEFBFAFFFFAB -:10070000FFFFFFFFFFFFF7D6FDBDBDBD7D7B7B7B00 -:100710007BFBAEFF7EFFFFFFFFFFFFFFFFF7BABFD0 -:10072000FFFFFFFFFFFFFFFF7FEFEB6BFFFFFFFF11 -:10073000FFFFFFFFF7FEBEFEFFFFFFFFFFFFFFFF14 -:100740004FEFF7FFFFFFFFFFFFFFFFEF3E6EFCFFE6 -:10075000FFFFFFFFFFFFFFEFC3C9FFFFFFFFFFFF2B -:10076000FFFFFF3EBFFFFFFFFFFFFFFFFFFFEFFBAE -:10077000D5FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFB6 -:10078000FFFFFFFFFF6FEFFBFFFFFFFBFFFFFFFF21 -:10079000FFF6DFFFFFFFFFFFFFFF7FFEEFFFFFFF23 -:1007A000FFFFFFFFFFFFE7FFFEFFF7FFFFFFFFFF7A -:1007B000FF7FFAEFBFFFFFFFFFFFFFFFFFE7FFFE37 -:1007C000FFFFFFFFFFFFFFFF7FFEEFBFFFFFFFFF0A -:1007D000FFFFFFFFA7FFFCF7FFFFFFFFFFFFFF7F0C -:1007E000FEAEFFFFFDFFFFFFFFFFFFE7F7FAFFFD94 -:1007F000FFFFFFFFFFFFFF7FAFFFFFFFFFFFFFFFD9 -:10080000FFFFFFF7BEBDBDBDBD7D7B7B7B7BFBAF2F -:100810007FFFFFFFFFFFFFFFFFFFFFCAFFFFFFFF9D -:10082000FFFFFFFFFF7F6FFFFFFFFFFFFFFFFFFFE8 -:10083000FFE7FEFFFFFFFFFFFFFFFFFFFFCFFEFF12 -:10084000FFFFFFFFFFFFFFFFFFFEDFFFFFFFFFFFD9 -:10085000FFFFFFFFEFFFFEFFFFFFFFFFFFFFFFFFB9 -:10086000FEFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFA9 -:10087000FFFFFFFFFFFFF7FEFFFFFFFFFFFFFFFF91 -:10088000FFFFEFFFFEFFFFFFFBFFFFFFFFE7F2FCB5 -:10089000EFFFFFFFFFFFFFFF7FAEEFFFFFFFFFFF59 -:1008A000FFFFFFFFF77EFDFFFFFFFFFFFFFFFFFFE3 -:1008B000EFFFFEFFFFFFBFFFFFFFBFFFFEFEFFFFDB -:1008C000FFFFFFFFFFFFDFEFDDFEFFFFFFFFFFFF8B -:1008D000FFFFFFFEFEFFFFFFFFFFFFFFFFFFAFEF8A -:1008E000FFFFFFFFFFFFFFFFFFFFBAFEFFFFFFFF5E -:1008F000FFFFFFFFFFEFFAFEFFFFFFFFFFFFFFFF1E -:10090000F69CBDBDBDBD7D7B7B7B7BFBAEFFFFFF52 -:10091000FFFFFFFFFFFFFFF77AFFFFFFFFDFFFFF94 -:10092000FFFF6FEFF7FFFFFFDFFFFFFFFFFFF7FEA8 -:10093000FEFFFFFFDFFFFFFFFFFFCFEBFFFFFFFF2C -:10094000FFFFFFFFFFEF9EFCFFFFFFFFFFFFFFFF2B -:10095000FFEFEFFFFFFFFFFFFFFFFFFFFFFEFFFFC8 -:10096000FFFFFFFFFFFFFF7FEFCBFFFFFFFFFFFD5D -:10097000FFFFFFFFBEFDFFFFFFFFFFFFFFFFFFEFDA -:10098000EFFFFFFFDFFFFFFFFFFFFFF8FFFFFFFFAE -:10099000BFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFB7 -:1009A000FFFFFEFFFFFFFFFFFFFFFFFFFBAF7FFF2C -:1009B000FFFFDFFFFFFFFFFFFFFEEFFFFFFFFFFF78 -:1009C000FFFFFFFFEFFFFFFFFFFFFFFFFFFFBFFF87 -:1009D000FEFFFFFFFFFFFFFFFFFFFFAEFFFFFFFF79 -:1009E000FFFFFFFFFFFFF7FAFFFFFFFFFFFFFFFF24 -:1009F000FF7FEFFFFFFFFFFFFFFFFFFFFFF7BCBD24 -:100A0000BDBDBD7D7B7B7B7BFBAFFFFFFFFFFFFFA2 -:100A1000FFFFFFFFF7FAFFFFFFFFFFFFFFFFFF7F73 -:100A2000AF7FFFFFFFFFFFFFFFFFFFEFFEFFFFFFB7 -:100A3000FFFFFFFFFFFFFFCFFFFFFFFFFFFFFFFFF6 -:100A4000FFFFFFFEFFFFFFFFFFFFFBFFFFFFEFFFCB -:100A5000FFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFA7 -:100A6000FFFFFFFFFFEFFFFFFFFFFFFFBFFFFFFFE6 -:100A7000FFFCFFFFFFFFFFFFFFFFFFFFEFFFFFFF99 -:100A8000FFFFFBFFFFFFFFEFFEFF9F9F9F3F3F3FEB -:100A90003F3FFFEFDFDFDFDFCFB7BFBFBFBFFFBC31 -:100AA000B99DBDBD7D7B7B7B7BFBEFD7F5F3F1D1A2 -:100AB00065E3E3E3A3FFFE7FFEDEDEFFBDBDBDBD5C -:100AC000DFEFFBF7F3F3F3E7E7E7E7E7FBFEFFFF13 -:0A0AD000FFFFFFFFFFFFFFFFFFFF26 -:00000001FF -This file contains the firmware of Seven of Diamonds from OSITECH. -(Special thanks to Kevin MacPherson of OSITECH) diff --git a/firmware/qlogic/1040.bin.ihex b/firmware/qlogic/1040.bin.ihex deleted file mode 100644 index d1213307f713..000000000000 --- a/firmware/qlogic/1040.bin.ihex +++ /dev/null @@ -1,2111 +0,0 @@ -:1000000007410600001078003A1000005841000037 -:100010004320504F525947495448312039392035EF -:100020004C51474F43494320524F4F50415249543E -:100030004E4F49205053303130324920542F462002 -:100040007269776D726120655620726569736E6F93 -:1000500030202E3735362020432073756F74656D40 -:1000600020726F4E202E303050206F727564746392 -:100070004E202E6F2020313024200120FD0404204A -:1000800082A005004800451038004B10780047104A -:1000900028004B10B920121278004D10B9202222EE -:1000A000C120080071201000C3700400C920FF782F -:1000B00089208611C7705349CB702050CF70202003 -:1000C000D3700700003FD670C1200800192000003F -:1000D0000920FFFE00210B20A5A5ECA1FF7F642DC8 -:1000E0006B200A0ADCADFF3F542B5B2050501421DB -:1000F00086A2A5A54000BF1086A30F004000851072 -:100100006A2C5A2AC120000019200F0078006510BF -:100110006A2C5A2AC12008000920FF7F482144295F -:100120004B200A0ABCA9FF3F34273B205050142122 -:1001300086A20A0A4000A9104A283A26C1200400D3 -:100140000920FF3F34210B205050142186A250502B -:100150004000AA1078008E114A283A26C09888A13B -:1001600000102C210B20A5A5142186A2A5A54000D6 -:10017000BC100A258AA10010C1987800C1100A2578 -:100180007800C1106A2C5A2A30218AA14000282107 -:10019000A2A10052248424842484248424842484DA -:1001A00092A1007909200000012031007810261D5D -:1001B000182279200052A02F082411200000A92025 -:1001C0004000A4420981C000DC10F27E2885E67D53 -:1001D000EA7CEE7B8378000031203000CF7801018B -:1001E0000B7802000F7802004F780300692040521C -:1001F0000120FD04042082A00500480004113800FD -:100200000011780008111B683C0078000A11A80052 -:1002100008111B683C001B682800076807000B6872 -:10022000FA000F68080013680500236800002768BB -:100230000600176808002B6800001F681900692075 -:10024000805411202000092010000B680C080F6852 -:100250001900036800FD076818001A6A002DE8A05D -:10026000080090A204000981C000221169200055F5 -:1002700009200200A9200001376800000B68400037 -:10028000F07B86A3FFFEC0004811176800011F68BD -:10029000640078004C11176864001F680200E8AD24 -:1002A000100070005211780039110981C000371117 -:1002B0007810A72278103D497810B5197810334E80 -:1002C000003285A00D009020C370000090006C11DA -:1002D000C07086A00200C0006C11781084127810E3 -:1002E0009611CC7805A0C0007A1178104F1D10002F -:1002F000801168008011781086211000801168003C -:1003000080117810B91AE0006C117810BA4C78009E -:100310006C118E119011AC24AC24BE49BE49AC24A2 -:10032000AC2478008E11780090117800921178003A -:1003300094116800011261200000186084A001007F -:10034000C0000112147805A0C000A711100002120D -:100350007800011209205B52042105A0C00001129F -:10036000092064520B200000147986A14200C000CD -:10037000CC1116780920625264210B20000018600D -:10038000C6701460CA701C618CA100FF206084A03C -:10039000FF0005A1CE7078109A197800FF1114782B -:1003A00086A01800C000D3117810781617780000C6 -:1003B00009206252042165A04000EF117E0C9C6070 -:1003C00060207810171A7F0C9F60000078104E177D -:1003D00009200C000760030178107619C000FB119A -:1003E00078109A19092062520B20000009205C52F3 -:1003F00004210B20000005A04000FF110120054052 -:1004000078008612780084127C00C3700000C770E8 -:100410000000CB700000CF700000C070BCA0C0FF17 -:10042000C00052123820790012128412E512A9126B -:10043000FE120D131313A012661717139812AD12A4 -:10044000AF12B112B3126B179812291365139016DD -:100450006017B512AF15CB15E7151216681576158E -:100460008A159E15E913981297139D13A213A713CB -:10047000AD13B213B713BC13C113C513DA13E613CC -:100480009812981298129812F513FE130D14511425 -:100490005B146214A814B714C614D8144815581560 -:1004A00098129812981298125D15BCA0A0FFC00077 -:1004B0009812382084A01F0079005B12A417A71798 -:1004C000B7179812981231194E199812981298125B -:1004D00052195A199812981298129812DB12F412A3 -:1004E0001F135B1386168217961798124718601908 -:1004F0000D1917191B19291998129812CA72C67169 -:100500000120064078008612CE73CA72C67101209F -:100510000040C27068008712612000001B6001006B -:1005200091200050E0008F12E000911268009112BB -:10053000912080407C00C370014078008712C37016 -:1005400006407800871299204100A1204100A9208F -:100550000500A35378008412C470C37004007A00AD -:100560007800841278008412780084127800841253 -:1005700091200080C3700000C7705349CB70205099 -:10058000CF702020D3700700003FD6707920000084 -:100590001B78010031203000592000102920570419 -:1005A0005120700461207204B920FFFFC1200000B7 -:1005B0009120005091208040780055047810C41B91 -:1005C000C0009C12D875DC74DA75DE747800E8120D -:1005D000292000002025D071C873CC72C470781017 -:1005E000FE1A40008412C370024078008412781012 -:1005F000C41BC0009C12D875DC74DA75DE747800F8 -:100600000113292000002025D071C873CC72C4705A -:1006100078105E1B40008412C37002407800841280 -:10062000C471C87014210A2078008212C471142188 -:1006300078008212C7700700CB704100CF700600AF -:10064000780084127810C41BC0009C12D875DC7628 -:10065000DA75DE7678002C13292000003025C4706E -:10066000C872CC73D074C670CA72CE73D27405A02F -:10067000400055130AA440003C13C80046130180F3 -:10068000927884A000FC40004A13CC7885A0010039 -:10069000CE7801200540780086129A7A9E7BA27D52 -:1006A000A67E967CCC7884A0FCFFCE787800591387 -:1006B000CC7885A00100CE78780084127810C41B15 -:1006C000C0009C12D875DC76DA75DE767800681387 -:1006D000292000003025C470C872CC73D474C67051 -:1006E000CA72CE73D67405A0400091130AA44000CC -:1006F0007813C80082130180AE7884A000FC40000B -:100700008613CC7885A00001CE78012005407800C2 -:100710008612B67ABA7BBE7DC27EB27CCC7884A0CB -:10072000FFFCCE7878009513CC7885A00001CE78B8 -:1007300078008412092061520C21EC7A7800821230 -:10074000092041520C2178008312092042520C21C9 -:1007500078008312612040520C611062780082128E -:10076000092045520C2178008312092046520C21A1 -:1007700078008312092048520C2178008312092046 -:1007800049520C217800831208790C7A7800821281 -:10079000C471078184A00F00038003800380E8A058 -:1007A0008054006A046884A008004000D713086BD6 -:1007B0007800D8130C6B78008112C4777810C519B3 -:1007C000912000801C6B146A91200180082778001A -:1007D00081124C7978008312C4777810C519912062 -:1007E00000800869186A106B9120018078008112DE -:1007F000C47182A11000C8007C1278107F23780099 -:100800008112C47182A11000C8007C1211204152D3 -:1008100004227E001221781038237F017800831291 -:10082000C47119200001042382A0060048001B1493 -:1008300011204914A920080078001F141120411428 -:10084000A9200800042206A140002A14108270008A -:10085000281478001F1478007C12042382A006005C -:100860004800331492A249147800351492A241141E -:100870007E0211204252042212217F017E00781054 -:1008800044237F0178008312E803FA00F401EE02AA -:100890006400190032004B00E803FA00F401EE0294 -:1008A0000400010002000300612040520C6110624C -:1008B000C4700E60C87012607800821261204052CD -:1008C0001461C47016607800831261204052C471B4 -:1008D000112004001F6019001920121286A128009F -:1008E00040008314112005001F6019001920121206 -:1008F00086A1320040008314112006001F600C0006 -:100900001920222286A13C00C0007C1218607E00C3 -:100910001A61007884A00100C0009E140120FD042B -:10092000042082A005004800961438009A1478002C -:100930009E1428009A1478009E1419202222780010 -:10094000A01419201212B823781055237810334EB2 -:100950007F0178008312C47184A1CFFFC0007C1294 -:1009600011204852042212217E00781077237F0143 -:1009700078008312C47182A11000C8007C1211207B -:10098000495204227E001221781066237F017800EC -:100990008312C471C87284A1FDFFC0007B1284A2BF -:1009A000FDFFC0007B12002108790A7800220C7A32 -:1009B0000E7878008212C471078184A00F00038032 -:1009C00003800380E8A0805419200000C872BCD2C4 -:1009D0004000E9149DA31000B4D24000EE149DA382 -:1009E000080000687E0026A240001115026A84A457 -:1009F00000204000FA149DA3100084A400104000C1 -:100A000000159DA3080084A40040400011150F812B -:100A100084A2004040000D1578109923780011152C -:100A200078108B2378001115CC72086806A240005C -:100A30004015A4A2FF0061204052186186A1280041 -:100A40004000271586A1320040002D1586A13C00EC -:100A50004000331582A4640048003D157800371526 -:100A600082A4500048003D157800371582A4430049 -:100A700048003D15C471C6717F02CA7278007D12AC -:100A80000A6A9DA30A00046805A306687F020C6B2E -:100A9000C47178008112C4777810C5199120008044 -:100AA000146A1C6B91200180C8701668CC701E6897 -:100AB000082778008112C4704C794E787800831230 -:100AC000C471C872CC7382A11000C8007C12781067 -:100AD000A72378008112C4777810C519912000806F -:100AE000086A95A202000A6A91200180082778000E -:100AF0008212C4777810C51991200080086A94A2E8 -:100B0000F9FF0A6A046805A04000851578106F2275 -:100B100091200180082778008212C4777810C519C7 -:100B200091200080086A95A204000A6A046805A062 -:100B30004000991578106F229120018008277800D5 -:100B40008212C47741200100492005005120200075 -:100B5000912000807810D219912001800827086A1E -:100B600078008212C477C872CC73C677CA72CE730B -:100B70007810521AC000C715186805A04000C715A4 -:100B800008277810B723C000C715177815009120E3 -:100B900001807C009120018078008412C477C677A0 -:100BA0004120210049200500512020009120008093 -:100BB0007810D219612040526F6003008267936001 -:100BC0000F00736000001778160078106F229120D4 -:100BD00001807C00C877CA77C477C677BCA700FFBE -:100BE00091200080612040526F600200736000001D -:100BF000826793600F001778170078106F2291209A -:100C00000180412021004920040051201000912042 -:100C100000807810D219C8703668388784A71F0002 -:100C2000C0000616912001807C00CC7884A00300CF -:100C3000C000361639200000412021004920040060 -:100C4000512008007810C5199120008008680DA86F -:100C50000A6991200180388784A71F00C0001F16F1 -:100C6000BCA700FF3F8738873F8784A7000FC000DD -:100C70001F169120008069200001306884A0400088 -:100C800040005F164B680400A9201400486884A047 -:100C9000040040004C1670004C16780043164B6858 -:100CA0000900A9201400486884A0010040005916DA -:100CB0007000591678005016A920FA0070005F16CF -:100CC00078005B1679200052177818006120405296 -:100CD0006F6001007360000093600F00CC7885A006 -:100CE0000200CE78086884A0FDFF0A681B684800EF -:100CF000912001807C00CC7884A0FDFFCE7884A078 -:100D00000100C000821678109C1AC471C6714A791D -:100D10007C007810C41BC0009C12D875DC74DA7596 -:100D2000DE7478009316292000002025C471C87352 -:100D3000CC72C671CA73CE727920005291200080A5 -:100D4000781080199120018040004A17A9200500E1 -:100D5000A120185291200080A141912001800920FA -:100D6000200078107B194000B61678109A19780088 -:100D70004A17046084A000FF07800980400019170B -:100D80007E0C682C912000807810801991200180C1 -:100D90004000EA16002C9E680981C000BE169F60C4 -:100DA00000007F0C7E0C18721C7320742475682C54 -:100DB0009C6865A0400018170920200078107B1956 -:100DC000C0000117046084A0FF0086A00200C000DC -:100DD000EA16002D02607800D0167F0C7E0C9C6015 -:100DE00060207810171A7F0C9F60000078104E1753 -:100DF00009200C00086085A000020A6078107619AE -:100E000078109A1978004A177F0C7E0C9C6060203D -:100E10007810171A7F0C9F60000078104E17092079 -:100E20000C00076003011B6003007810761978102E -:100E30009A1978004A177F0CC474C873CC72146076 -:100E400091200080177812007E0E712040526F7042 -:100E500005007370000076737A727E7482708770FA -:100E60000000002C8A708F7000002EA030251C61BD -:100E7000A26184A1600040003C177810D3487F0E27 -:100E80009665A6659A66AA66AF600000B36000002A -:100E900078106F22912001807C00C370054078009B -:100EA0008712A920050099201852912000800A532A -:100EB00091200180002110A299A30000A1A40000AC -:100EC000A9A500007C00C471C770000006797800F5 -:100ED0008412C471C671682178006D1769200010F2 -:100EE0000C6916A0042D10A2688D0981C0006F172F -:100EF00085A20000C0007D17C370004078007F17F6 -:100F0000C3700340CA7078008712112067520C2208 -:100F1000C470038048008F177810513C84A1FF7F74 -:100F2000780093177810443C85A100801220780047 -:100F30008312C47178103B3C006101206752042089 -:100F400084A000800DA10462086378008112E47916 -:100F500078008312C471C6719821A1204200A92093 -:100F60000400A353A02199204200A9200400A35308 -:100F700078008412C470682079200052912000808B -:100F8000781080199120018040004318076001000B -:100F90000B6000002B6000001B600600106A8CA232 -:100FA0000F0084A2F000038003800380038005A16A -:100FB000166084A200084000DE171B600A0078005B -:100FC000E41784A200104000E4171B600C0084A208 -:100FD00000034000ED172B600100048004800480B2 -:100FE00085A001001E60236000002760000084A22D -:100FF00000044000FA172B600000A920060080AC16 -:101000000B00A02080AD05009820A35384A200030C -:10101000C0000F1846604A604E60526096609A6049 -:10102000780019180068466004684A60086E4E66C9 -:101030000C6D526596659A66146091200080177851 -:101040004200082C612040526F6005007360000070 -:10105000776000007B6000007F60000082608A6132 -:1010600084A200048E60912001807E0E71202000F9 -:1010700007700A0007700200037000007F0E9120C5 -:10108000008078106F22912001807C00C3700540A1 -:10109000780087127E0C7E0D7E0E7E0F91200080E0 -:1010A000712040527920000161201000A0706DA0D5 -:1010B00040000319046A94A2FF0086A207004000C2 -:1010C000621886A20F00C00003191C6984A1C00029 -:1010D0004000031984A18000C000D318246884A0B4 -:1010E00000FF85A019002668B071FF8140008918B3 -:1010F0007E0D69202000076810000869086806A1B5 -:10110000C0007A180C690C6806A1C0007F1884A181 -:10111000FF00C0007F187F0DB87884A01F80C0003A -:101120008918487885A00C004A78B071FF8140008A -:10113000AC18B37000007E0D69202000076818000D -:10114000046884A00800C0009D18076808000468AF -:1011500084A00800C000A418076802007F0DC461C5 -:10116000C862CC63C661CA62CE637E0E7120005233 -:1011700066726A7380AE19007F0E487884A00C00F6 -:10118000C000BA187810E147A3780000587884A00E -:10119000FFED5A78B47080A0DA001A787F0F7F0EC6 -:1011A0007F0D7F0C9120018078008412246884A038 -:1011B00000FF85A019002668B87884A01F80C000B1 -:1011C000D918487885A00C004A78487884A00C008B -:1011D000C000E218B071FF8140000119B370000037 -:1011E0007E0D6920200007681800046884A00800AC -:1011F000C000F21807680800046884A00800C00056 -:10120000F918076802007F0D7800CB187F0F7F0E5A -:101210007F0D7F0C9120018001200540780086120F -:101220008079C671C47182A10300C8007C128279E2 -:10123000780084128079C671780084127479C6713E -:10124000C47176797879CA71C8717A797C79CE71EE -:10125000CC717E79780084127479C6717879CA71FC -:101260007C79CE71780084120079C671C4710279DC -:101270000120FD04042082A0050048004019380028 -:10128000421978004C19A8004C198CA10100C0002B -:101290004A19B920222278004C19B920121278007C -:1012A00084120079C67178008412092074520421D6 -:1012B000C670C4700A207800841209207452042178 -:1012C000C67078008412C471078184A00F00038067 -:1012D00003800380E8A08054146AB4D240007119DE -:1012E0001120010078007319112000000C6B7800A8 -:1012F000811280AC01007810801B7C0080AC010062 -:101300007810201B7C00507865A040008819042CC0 -:101310005278632000007C007E0F792000525078C4 -:101320006DA040009819042D5278036800000768EA -:1013300000000B6800007F0F7C00912000807E0F72 -:101340007920005250786220002C05A0C000A71917 -:1013500078108C2452787F0F912001807C007E0FC2 -:101360007920005250786A20002D52787F0F7C003F -:1013700011200079527AEC7B19834000C21980A2B7 -:101380003100122010207800B919132000007C00D1 -:1013900084A7000F0B8084A71F00038003800380B5 -:1013A000038005A1E8A000557C007810C51900292C -:1013B0002A68002A2E68086884A0EFFF0DA80A6931 -:1013C000092052520C21046805A04000041A16A1FD -:1013D000C000EF196020006006687E010B2000004D -:1013E0007800F219092000007E01046865A0400021 -:1013F000011A006006687810311A7810CB1C10684A -:1014000001801268C000F2197F01026906697C0040 -:1014100065A04000161A08209C6005A04000131A21 -:1014200062209F60000065A07800091A5078527908 -:1014300062207C0065A04000301A08209C6005A056 -:101440004000251A62209F60000065A078001B1AEA -:101450007E0F7920005291200080507852797F0FC2 -:101460006220912001807C00076003018F600000F2 -:10147000A9201C0080AC0500A02001200000A44091 -:1014800028681A602C6822607C007E0E7120405211 -:101490004C708CA00002C000501A88A080520A2D07 -:1014A00000804E7006A07F0E7C007810C519912038 -:1014B000008004681E7865A040009B1A7800631ABB -:1014C000002C1E78006065A040009B1A0C6006A3EB -:1014D000C0005D1A106006A2C0005D1A282C012011 -:1014E0005252042006ACC000741A7800991A04689D -:1014F00006ACC000811A006065A00668C0008B1AA7 -:101500000368000078008B1A00641C786020026475 -:1015100086A40000C0008B1A002C02686025781099 -:10152000311A1B600500236020007810CB1C106866 -:10153000018050108C24126885A0FFFF7C003920A8 -:101540000000412021004920040051200800912082 -:1015500000807810D219388784A71F00C000A61A0F -:10156000BCA700FF3F8738873F8784A7000FC000D4 -:10157000A61A912001807C0061200000186084A0E0 -:101580000100C000CA1A91200080E078E3780000D2 -:101590009120018005A0C000CB1A7C008CA0F0FF38 -:1015A0004000D11A78108C247900D31AE31AE61A75 -:1015B000EC1AF01AE41AF41AFA1AE41AE41A951C4E -:1015C000B91CBD1CE41AE41AE41AE41A7C00781071 -:1015D0008C2478109C1A012001807800C31C012003 -:1015E00003807800C31C012004807800C31C78109D -:1015F0009C1A012006807800C31C01200780780017 -:10160000C31C3020382182A721004800061B092076 -:10161000200000267810201BC0001F1BBAA7200046 -:1016200048001E1B40001E1B0827B0A6200090A2E9 -:10163000400099A30000A1A40000A9A50000780023 -:10164000001B06A07C00FF8140005B1B992030003E -:10165000A0200C7084A0FF004000321B0770040023 -:10166000047084A00400C0002D1BA8211770000086 -:101670000B8112711A721E73227426750C7885A064 -:1016800001000270077001000120FD04042082A007 -:101690000500C8004F1B09202200042184A000403F -:1016A000C000411B08700B80C800411B077002007E -:1016B0008CA0E001C0005B1BA55306A003700000D6 -:1016C0007C003020382182A721004800661B0920B9 -:1016D000200000267810801BC0007F1BBAA72000C6 -:1016E00048007E1B40007E1B0827B0A6200090A269 -:1016F000400099A30000A1A40000A9A50000780063 -:10170000601B06A07C00FF814000C11B9820A12027 -:1017100030000C7084A0FF004000921B0770040092 -:10172000047084A00400C0008D1BA8211770000065 -:101730000B8112711A721E73227426750C7885A0A3 -:1017400000000270A653077001000120FD04042070 -:1017500082A00500C800B01B09202200042184A03B -:101760000040C000A21B107084A000F04000B91B14 -:10177000077008007800BD1B08710381C800A21B18 -:101780000770020084A1E001037000007C000120CA -:10179000FD04042082A00400C800CD1B7800D01BEB -:1017A00006A07800D21B85A001007C007E0E71206F -:1017B0000052082D5870026805A0C000DD1B5E7144 -:1017C0005A717F0E7C00082C5878026005A0C0007A -:1017D000E71B5E795A797C009120008014617810B3 -:1017E0008021006984A10001C000352084A100028D -:1017F000C00031201C6805A0C0003D20036000002F -:10180000082C5C7865A0C000051C5A797800061C7D -:1018100002615E799120018078108C227C007E0E1E -:101820007120005258706DA040001A1C00685A7058 -:1018300005A0C000191C5E70FF8D7F0E7C007E0D20 -:101840007E0C7E0F7920005280AF16006020006071 -:1018500005A04000431C6820146806A3C000331C88 -:10186000286884A0FF0006A44000361C602D780084 -:10187000241C006805A00260C000421C80AF160056 -:1018800006AC4000411C002C5E78002D7F0F7F0CC1 -:101890007F0D05A07C007E0D7E0C7E0F792000520E -:1018A00080AF16006020006005A040006B1C68201F -:1018B000146884A0FF0006A340005E1C602D780021 -:1018C000501C006805A00260C0006A1C80AF1600B2 -:1018D00006AC4000691C002C5E78002D7F0F7F0C49 -:1018E0007F0D05A07C007E0D7E0C7E0F79200052BE -:1018F00080AF1600602000606DA04000901C14684E -:1019000006A34000831C602D7800781C006805A0A9 -:101910000260C0008F1C80AF160006AC40008E1C19 -:10192000002C5E78002D7F0F7F0C7F0D05A07C00C2 -:101930009120008069204052006886A0000040008D -:10194000A31C91200180E37809007C008068BCA082 -:1019500000FF412021004920040051201000781090 -:10196000D219388784A71F00C000AC1C91200180C9 -:1019700001200A807800C31C01200C807800C31C61 -:1019800078109C1A01200D807800C31CC270612061 -:1019900000001B600100912080407C000460082C46 -:1019A00063200000847800808678887805A08A7992 -:1019B0004000DA1C022C7800DB1C8E797C00076862 -:1019C00003017E0C61200052082D6B200000846012 -:1019D00000808660886005A08A614000EF1C022DAF -:1019E0007800F01C8E617F0C7C007810031D400095 -:1019F000021D7E0C9C6065A04000FD1C7810171A2B -:101A00007F0C9F60000078109A197C008C7865A08C -:101A10004000151D91200080847801808678042C78 -:101A20008E7805A0C000131D8A7800809120018067 -:101A30007C00A920100006A0048086808E81C8004A -:101A40001F1D00A27000231D78001A1D86808E8144 -:101A50007C007E15A920100005A04000491D1AA198 -:101A6000C800491D13828D8148003A1D1AA1C80083 -:101A70003B1D7000411D78002F1D1AA10823108204 -:101A80007000411D78002F1D7E00003284A0FFF7FA -:101A900080207F007F157C007E00003285A000083A -:101AA0007800451D9479D07006A14000BD1D91209D -:101AB000008071202000047005A0C000BD1D0870CA -:101AC000087206A2C000BD1D86A20800C000BD1D90 -:101AD00071201000781080194000BD1D9C7A987B01 -:101AE000A47CA07D84A100FF40008B1D312000005C -:101AF0000B81B5860B81B5860B81B5860B81B586CA -:101B00000B81B5860B81B586002110A2002619A392 -:101B1000A1A40000A9A500007800951D07810480FC -:101B2000048010A299A30000A1A40000A9A50000B0 -:101B30000920200078107B19912001804000B41DFD -:101B400078109A19A8780080AA7886A00200C000B0 -:101B5000BD1D91200080E3780200AB780000CC78B6 -:101B600085A00300CE78912001807800BD1DAB7860 -:101B7000000078104921046084A00F007900C21D84 -:101B800071201000912001807C00D21DF41D1A1ECE -:101B9000D21D371EE11DC91FE41FD21DEE1D141EEC -:101BA0007F1EEE1E571F691FE01F39200004DC78DE -:101BB00005A7DE78086005A70A60781064209C609D -:101BC000DA78781031217C00DC7884A000014000B4 -:101BD000E81D7800D21D1C6085A080001E60780082 -:101BE000FB1D7810C41BC000D21D78106321DC7867 -:101BF00084A000014000FB1D7800D21DDF780000AA -:101C00000460078084A0FF00D27801809F600000FC -:101C10004000111E781064204000111EDC7885A061 -:101C20000001DE787800131E781088207C00781080 -:101C3000C41BC000D21D78105F21DC788CA0000E80 -:101C4000C000231E84A00001C000251E7800D21D04 -:101C500078106420C000361E04618CA1FF0086A1AC -:101C600007004000212086A10F00400021207810AD -:101C700088207C00DC7884A0000140003E1E7800B3 -:101C8000D21DDF780000146711200100A920010097 -:101C9000186084A0FF0005A04000611E1120010013 -:101CA000BCA700FFA92020008EA001004000611EFB -:101CB0003920000011200200A92000018EA002009E -:101CC0004000611E78007C1E7810C51991200080AC -:101CD0002B6800002F680000086884A0DEFF0A68F7 -:101CE000E8AD1000912001807000751E7800631E21 -:101CF000118240007C1EA92000017800631E78102C -:101D00009A197C0001206752042084A000804000C2 -:101D10004920146178108021006984A101004000ED -:101D2000A01E286084A0FF00C0004120006884A09D -:101D3000010040004920036800000B6800000768AC -:101D4000000078005120112001002060F4D04000F4 -:101D5000A81E95A20200C4D04000AD1E95A20800A6 -:101D6000CCD04000B21E95A200041C6084A00200EA -:101D70004000B91E95A204002C608CA0FF0082A137 -:101D8000020048004D2082A11B00C8004D204000E9 -:101D90004D200E692C6007808CA0FF0082A10200FC -:101DA00048004D2082A11B00C8004D2040004D205E -:101DB0001269306005A0C000DC1E01201E000080FA -:101DC0001668286084A0FF0040004920066828604B -:101DD000078084A0FF00400049200A68026A78005A -:101DE000512001204052042086A00700C000531F4C -:101DF00001206752042084A0008040004920146123 -:101E0000781080210120525204201020FF824000CF -:101E10000E1F80A00500042084A0FF0006A1C000C2 -:101E2000531F91200080046A086B186484A4030087 -:101E300040002D1F28618CA1FF000180C000231FDE -:101E4000002110A24800531F78002D1F0180C00000 -:101E5000531F002112A24800531FFF824000531F4E -:101E600084A40C004000471F28610F818CA1FF0053 -:101E700082A00400C0003F1F002118A34800531F88 -:101E80007800471F82A00400C000531F00211AA33E -:101E90004800531F306005A040004D1F00801668A9 -:101EA000066A0A6B91200180780051209120018000 -:101EB00078004D2014617810802191200080086BFB -:101EC00018834800651F0A6B91200180780060200C -:101ED0009120018078004D202460078084A0FF00BD -:101EE0004000871F86A08000C000C71FA9200800EF -:101EF0006920107691200080006884A0FFFC0268B1 -:101F0000E8AD08007000831F7800791F91200180E0 -:101F100078005120286015A04000C71F1461781078 -:101F200080217E0C7E0DE8AD0700912000800068C6 -:101F30000DA04000C31F06A240009E1F682178002C -:101F4000941F602100600268682C7810AC197F0D26 -:101F500018680DA04000BB1F602000621A6A1C6A4E -:101F600002621E6878108919A02D9821A9203100DD -:101F7000A353602D7810CB1C7800BE1F086800802A -:101F80000A68912001807F0C7800602091200180F8 -:101F90007F0D7F0C78004920146178108021006843 -:101FA00084A001004000392091200080046A108242 -:101FB0004800DC1F066A9120018078006020912093 -:101FC000018078004D207810C41BC000D21D146120 -:101FD00078108021BE60BB600000006984A1080009 -:101FE0004000F31F206085A00001226084A1010051 -:101FF0004000492084A10001C000352084A10002D6 -:10200000C00031201C6805A0C0003D20046084A0F1 -:10201000FF0086A00F00C0000C2078106321DF783D -:1020200000000460078084A0FF00D27801809F60D8 -:102030000000400021207810642040002120DC783E -:1020400085A00001DE787C00D7780000DB780000F6 -:10205000246084A000FF26607810AC3A40004F1D39 -:102060007810E91B78004F1D0920170078005320D5 -:1020700009200E0078005320092007007800532023 -:10208000092035007800532009203E0078005320B5 -:10209000092004007800532009200600780053200E -:1020A000092016007800532009200100246084A034 -:1020B00000FF05A12660912000807810CB1C9120A4 -:1020C000018078004F1D78109A1978004F1DD47840 -:1020D0006DA0C0006F20002CD678DA789F600000D9 -:1020E00078007B20002C9E689F600000D678002D31 -:1020F0000260D87806ADC0007B200260D0780180F5 -:10210000D278C0008720DC7884A0FFFEDE78D87803 -:10211000602006A07C002EA030251C61A26184A155 -:10212000FFE11E6084A16000400097207E0E7810C1 -:10213000D3487F0E9665A6659A66AA66AF600000D2 -:10214000B360000014677810C51991200080A0606A -:1021500084A00080C000BE20086884A00100400068 -:10216000BE20912001807810311A912000807810D3 -:10217000CB1C91200180D7780000DB78000078002C -:102180003021246096A00100C000C5200080266098 -:10219000106A14689120018002A24800D4204000F7 -:1021A000D420392000027810312178003021082C09 -:1021B00091200080A06084A0008040000121006880 -:1021C00065A040000621046A7E0E71204052007016 -:1021D00084A001004000FB20487006A2C000FB2044 -:1021E000046B1C2360210263002305A0C000F620BD -:1021F0000269602202617F0E78000D216021026277 -:1022000006697F0E78000D21006865A04000062158 -:1022100002610269C0000A210669602103600000B2 -:102220006021A06084A0008040001721086884A07D -:10223000FCFF0A681068008012689120018008681D -:102240008CA040004000262186A040000A6878103B -:10225000421A9120008078106F2291200180DB7853 -:102260000000D77800007C00086005A70A60912074 -:1022700000807810CB1C91200180D87865A04000A8 -:1022800044219C60DA789F60000078003421D77880 -:102290000000DB7800007C009079947800800AA12F -:1022A000C800502106A09678D270047805A040009E -:1022B0005E2101800678C0005E2168005E219120C9 -:1022C00080407C00392077217800652139207D21EC -:1022D000042705A04000762100AC6820086B0C6C38 -:1022E0001069146A0A690E6A126B166C38877800D6 -:1022F00065217C00030009000F0015001B00000091 -:1023000015001B0000007E0C78103B3C682C7F0CF5 -:102310007C001000F7216800F72129200000CB780D -:1023200000008C7865A04000F0210920745204213F -:1023300084A001004000BE21046086A00301C0000B -:10234000BE21186005A0C000BE21146005A0C00019 -:10235000BE217E0D69200000186884A00100C00025 -:10236000BD210C60C6701060CA70C37020801B68ED -:102370000100912080407F0D7810F21C7800F5213B -:102380007F0D7810F8214000F021046294A2FF0034 -:1023900096A203004000D021046296A21001C00062 -:1023A000DE21CB780100046294A200FF1782118223 -:1023B0004000DE21FF85C000F021108202A2C8008B -:1023C000F0217E05781007227F054000EB21E078A0 -:1023D00086A003004000F0217800DE212885C8781F -:1023E00005A040008E21FF854000F721912080400C -:1023F000B078D6707C00AC7BB079D47002A1C000FC -:102400000122002305A07C004800052202A37C00D5 -:1024100002807C000120FD04042082A00500C80089 -:1024200021229120008071202000047005A0C000AE -:1024300056220870087206A2C000562286A2080022 -:10244000C00056227120100078105B220920200065 -:10245000046086A00301C0003022286005A0C000EF -:10246000302209200C007810761940004922C478E7 -:102470000080C67886A00200C0005622912000800D -:10248000E3780300C7780000CC7885A00003CE78FD -:102490009120018078005622C77800007810F21C45 -:1024A000AC79B07800800AA1C800542206A0B278A6 -:1024B00006A071201000912001807C00078104801B -:1024C0000480B87AB47BC07CBC7D10A299A30000C4 -:1024D000A1A40000A9A500007C0009205B52912066 -:1024E00000800A207E0F7E0E71204052007086A070 -:1024F0000000C000892209201252042105A0C0005A -:10250000892279200001307884A0C000C00089228F -:10251000180089221B784B007F0E7F0F7C007E0FF6 -:102520007E0E7120405291200080007086A0000035 -:10253000C000A22279200001307884A0C000C00031 -:10254000A2221800A2221B784D00912001807F0E4C -:102550007F0F7C007E129120002371204052792051 -:1025600000014B780F009800B52238787800AE2231 -:10257000A9204000007882A004004800BE22A920C3 -:1025800060009B780000AF780000AF78000070001A -:10259000C8227800C022007882A004004800D72218 -:1025A000B77093001920F04F781013232F7001801B -:1025B0007800E322B77000001920704E78101323C2 -:1025C0001920AF4E781013232F7000800370000085 -:1025D00078102024047084A00F007E010920FD04DF -:1025E0000C218AA105004800F8223800FE2285A0AF -:1025F0008062780000232800FE2285A08062780097 -:10260000002385A0C0627F0106780F7804B243786A -:10261000D800537880000B7808004770080053708A -:102620007F524F7000007F1200207C007E137E14CA -:102630007E157E04A1202B01042305A09A7840007A -:1026400033231883242318839823A82484A400FF09 -:1026500040002B2382A40001A92000012020A653C2 -:1026600005A0C00022231833780019237F047F15AA -:102670007F147F137C008CA10F0011200101042224 -:1026800084A0F0FF05A11220781020247C001120E6 -:102690000101A92009000B8170004D237800482317 -:1026A0008CA1000E042284A0FFF105A112207C0061 -:1026B00009200101A9200500138270005E23780023 -:1026C000592394A2E000042184A01FFF05A20A2040 -:1026D0007C0011200101A9200C000B8170006F23E8 -:1026E00078006A238CA100F0042284A0FF0F05A1CA -:1026F00012207C0011200201042284A0CFFF05A13A -:1027000012207C000381038080A020007E0C6120C9 -:1027100000019A60AC62AC637F0C7C000381038093 -:1027200080A022007E0C612000019A60A46084A039 -:10273000DFFFAE607F0C7C000381038080A022005D -:102740007E0C612000019A60A46085A02000AE602C -:102750007F0C7C000381038080A020007E0C612020 -:1027600000019A60A460AE621020A460AE631820DD -:102770007F0C7C00912000807E0C7E0E186805A0E6 -:102780004000FE2361200076781006244000E823F4 -:10279000A9200000612000757E0C781006244000FE -:1027A000D6237F0C608C7000D4237800C923780076 -:1027B000FE237F0082A000757120405286708271D6 -:1027C000012004006E7093700F0073700000781089 -:1027D0006A227800FA23C06005A0C000FE237120A1 -:1027E00040528271002C8A70012006006E70937036 -:1027F0000F007370000078106A220120000078003A -:102800000024012001009120018005A07F0E7F0C93 -:102810007C00042C05A040001D2460200C6006A351 -:10282000C0001A24106006A2C0001A24146006A179 -:10283000C0001A2406A078001F2400607800072436 -:1028400085A001007C00112041520C228CA10F00B8 -:1028500011203B01042284A00001400036242120E5 -:1028600004FF22210B810B810B810B818DA1000FB5 -:1028700004217C007E0EE4688CA0200040008A24A5 -:1028800084A00600C0008A241460078084A00F0082 -:10289000038003800380F0A08054047084A00A00A9 -:1028A000C0008A24087194A100FF40008A248CA1F2 -:1028B000FF0001200C0006A140007124012012003D -:1028C00006A1400075240120140006A140007924CF -:1028D0000120190006A140007D240120320006A13C -:1028E0004000812478008524092012007800872484 -:1028F0000920140078008724092019007800872413 -:10290000092020007800872409203F0078008724D0 -:1029100011200000002105A20A707F0E7C006800D3 -:102920008C2491200080712000007E00187084A00B -:102930000100C00093247F0071201000CA707F0046 -:10294000C670C3700280DB704107DF700600712023 -:1029500000001B700100912080407800AA247E10A6 -:102960007E007E12912000233C7F587E307C387D93 -:10297000C277C674CA76CE7594A53F009CA40300A6 -:1029800084A40F007900C124D324D324D3240D2898 -:10299000093AD12402250C25D124D124D124D124D3 -:1029A000D124D124D124D12478108C24078584A06B -:1029B0001F007900D82416250D28C729C42AEC2A1F -:1029C0008C2D37309A30FB3080313832D6320225A8 -:1029D000E9280C30F824AC3DCC3D8F3F9B3F744040 -:1029E000F824F82449414D41AA3DF824FA3EF82440 -:1029F0005E3C0C25F82478108C241800B1247F123A -:102A0000912001807F007F107C001920494F7810B1 -:102A100013232F7001001B784F007800FA2419202F -:102A2000AF4E781013232F7000801B78CD007800F4 -:102A3000FA24427209200F520B20000084A50100E5 -:102A4000C000723C4000332578108C2403700000D5 -:102A50004B70000043700000377000007810E039C0 -:102A60001800B12409200F520B200000687005A047 -:102A7000C000FE256C7084A0070079003C25352637 -:102A8000442550256D258F25DC25B5254425781056 -:102A9000C839092048007810D82EC0004E25037090 -:102AA00004007800FA247810C839C0006B258070C3 -:102AB000078082789B781000AB780C009B786000D0 -:102AC000AB7801005B7804000920DD007810CC2E83 -:102AD000C0006B250370040093700F007800FA2487 -:102AE0007810C839C0008D258071078182789B7865 -:102AF00010008CA11F008DA1C000AA79AB78060040 -:102B00009B786000AB7802005B7804000920DD0050 -:102B10007810CC2EC0008D250370040093700F0038 -:102B20007800FA247810C839C000B3258071078175 -:102B300082789B7810008CA11F008DA1C000AA791B -:102B4000AB7820008471AA79AB780D009B78600087 -:102B5000AB7804005B7804000920DD007810CC2EEF -:102B6000C000B3250370040093700F007800FA24AE -:102B70007810C839C000DA258071078182789B7887 -:102B800010008CA11F008DA1C000AA79AB780600AF -:102B90009B786000AB7802005B7804000920DD00C0 -:102BA0007810CC2EC000DA2588708B700000682069 -:102BB0004A700370020093700F007800FA247810B6 -:102BC000C839C000FA2488706820146F7810BD38A6 -:102BD000502C78107A3A9B781000146884A01F005B -:102BE00085A08000AA781C6E412001008C7084A012 -:102BF0000004012004004000FC25012006007800AC -:102C00001D277810C839C000FA249B78100068701E -:102C10006820146F7810BD38502C78107A3A08600C -:102C200085A010000A60246805A040001C2682A030 -:102C3000060048001A2678001C2627680500146B39 -:102C40009CA31F009DA3C000587084A0008040007A -:102C50002A2684A6010040002C269CA3BFFFAA7B45 -:102C600031202000412001000120030078001D27B1 -:102C70001800B1244C7485A4000040004F2680A0A9 -:102C800080523020507108812AA148004626092030 -:102C9000805264210465FF85C00060262184C00045 -:102CA00040265271037000004B700000407005A078 -:102CB0004000723C7800FA244C76B0A680525071E5 -:102CC000002678004B265271682558254A75502CED -:102CD000346085A00000C0005D2608673A7784A7AD -:102CE0003F034000962684A72100C0005D2684A7EC -:102CF000020040007F2684A7040040005D26BCA798 -:102D0000FBFF0A6784A70800C0005D2684A71000A7 -:102D1000C0005D2684A70002C0005D2684A70001D4 -:102D200040009626186005A0C0005D26BCA7FFFEE7 -:102D30000A67236800001C6E84A60E00186140001C -:102D4000A6261C6002A14800A9264000A9267800FA -:102D50005926FF81C0005926C368000084A780005F -:102D6000C000B1260C702260BCA77FFF0A677810F4 -:102D70007A3A1800B1249B78100046A07810C83920 -:102D8000C000FA24146B9CA31F009DA3C0005870C0 -:102D900084A000804000CD2684A601004000CF26FC -:102DA0009CA3BFFF84A610004000D5269DA3200051 -:102DB000AA7B408884A60E00C000E026BDA71000B4 -:102DC0000A6778001B2758718CA100084000CB349B -:102DD0001120200084A60800C000F126108284A6DD -:102DE0000200C000F1261082AA7A40887810E039EB -:102DF000146A0C6108818CA1FF00E0A10075642CAD -:102E0000FF8C40001227146006A2C000FC26B860A8 -:102E10000180BA60C000F7267E0C602A086085A099 -:102E200000010A607F0C780035267810C839C00090 -:102E3000FA24602A0E61AA794088327101200100CB -:102E40007E005C7184A118004000382784A1100026 -:102E500040002B277810D036C0005B2784A10800E3 -:102E600040003827A06984A10006C00038277810E8 -:102E7000BB3578005B27A06984A1000840004F277C -:102E80007E0C7E026029006085A000200260046143 -:102E90008DA1100006617F027F0C7810D036C00033 -:102EA0005B27A06984A100024000572778100C36E8 -:102EB00078005B2784A10004C0003427A06984A1A6 -:102EC00000104000662714698CA100FF0F81781064 -:102ED0008B237F0002708CA6E00084A66000400077 -:102EE000742786A06000C00074278DA10040FF8871 -:102EF000400079278DA104005A79B6699B7860005B -:102F00000028AA789B78610018688DA0008084A0B2 -:102F1000FF7F1A698CA680004000982797700000F8 -:102F20008AA00D00500096278AA00C0096710120FF -:102F30000C000C809A71AA7808800C814000D13472 -:102F40008CA1F800C000D1347E157E137E14A12020 -:102F50002B019B7800000080AC8080AD0B00982096 -:102F6000A6537F147F137F15146807808278946DB1 -:102F7000D67DDE7D986ED27EDA7E7810C839C000AC -:102F8000CF272C7003804800C8271920AF4E781037 -:102F900013232F700080307884A0C000C000CF279A -:102FA0009800D727086084A0EFFF0A607810E03906 -:102FB00078002325007284A2070086A00100C000CB -:102FC000E4271B784F007810E0397800F527B46AC1 -:102FD00095A200205A7A1B784F007810E0390072D1 -:102FE000002505A64000F52784A2070079100328D4 -:102FF00080AD0900367084A2070086A00100C000E1 -:10300000FA24186000801A607800FA240B284B4BD1 -:103010004B4B3A4B4B4B0B283A4B0B2878108C24DC -:103020007810C8397E0F79200052CC787F0F84A0A9 -:103030000100400031286C7086A00100C0002028EB -:103040006E707800C4286C7086A00500C0002F2820 -:10305000887068201B68040017680000206885A03D -:10306000080022686F700000112004006C7186A1B6 -:1030700001004000522886A10700C0004228092014 -:1030800038520B20050078005228092013520421E1 -:10309000092012520A20092038520B2001006F70BB -:1030A000000073700100780054286F7000007810E1 -:1030B00087487E15A9201000392000007810B0370D -:1030C000B8A700017000632878005B287F150070A6 -:1030D0007900672895287C287C286F2895289528D2 -:1030E0009528952821205A52042405A040009528AF -:1030F00006ADC0007C280068222078008C2820685B -:1031000084A00100C0008828146F7810BD387810A2 -:10311000A23478008C2860706020006802601A6A0F -:1031200017680000206885A0080022687810DC1C61 -:10313000212000767810D12821205A527810D128E9 -:103140007E15A9200000212000757810D128208448 -:103150007000A9287800A2286120005521200200D3 -:10316000A920000118601061FF814000B82802A169 -:103170005000B82812601B600000E0AC1000700026 -:10318000C0287800AF282184C000AD287F159C702E -:1031900084A000804000CB287810CE3A0370000055 -:1031A0004B7000007800FA247E04042405A040003F -:1031B000E528682000687E001A6A17680000206809 -:1031C00085A0080022687810DC1C7F007800D328D6 -:1031D0007F04232000007C0082A203005000EF281F -:1031E00078108C2400237900F228F5286829852995 -:1031F00082A202004000FB2878108C246C706F7053 -:10320000000093700000790002290A290A290C297C -:103210004029D7340A2940290A2978108C2480773C -:103220007810B0378077BCA7000F7810BD381860D1 -:1032300005A0400037292120007609200400112034 -:1032400010007810A029400037297E15A920000021 -:10325000212000757E040920040011201000781040 -:10326000A0297F0440003629208470003629780088 -:1032700027297F15388784A71F00C00012297800EE -:1032800023257800232580777810BD38186005A0A5 -:103290004000662921200076092005001120200029 -:1032A0007810A029400066297E15A9200000212061 -:1032B00000757E0409200500112020007810A02947 -:1032C0007F04400065292084700065297800562914 -:1032D0007F1578002325002279006B296E2970293B -:1032E000702978108C24092012006C7086A00200CE -:1032F0004000792909200E00186884A00080400051 -:103300007F291A696F7000007370010078005639C8 -:103310000022790088298D2970298B2978108C2426 -:1033200078108748007086A00100C00067347810CC -:10333000B834086084A0EFFF0A6078105A34400067 -:10334000673478003526042405A04000C32968208E -:10335000042D7E00146806A74000AF29202D7F00B1 -:103360007800A1297F0022201A69176800002068D0 -:1033700005A222687810DC1C1060018012600860D1 -:1033800084A0EFFF0A607810B8347C0085A00100AB -:103390007800C22900237900CA29CF29CD29682ABB -:1033A00078108C24EC7884A00100C000E329007020 -:1033B00086A00400C000DB297800062A7810B83403 -:1033C000086084A0EFFF0A6078006734E47805A005 -:1033D000D000062A1800FA24082084A03000C0007B -:1033E000F2291B784F007800FA24EC7884A00300BF -:1033F0004000EE29002184A007007900FC293F2A23 -:103400004A2A302A042ABB39BB39042A592A78109F -:103410008C24007086A00400C000202A6C7086A056 -:103420000200C000162A11200200192000007800B6 -:10343000E9286C7086A006004000102A6C7086A0F7 -:1034400004004000102AE47984A1300040002A2AB8 -:10345000EC7884A00300C0002C2A78000C300120F6 -:1034600003007800A02D186884A000804000372A4F -:103470001B681D0078108F372B7808301B7856009A -:103480007800FA24186884A000804000462A1B684F -:103490001D0078108F3778008639186884A0008066 -:1034A0004000512A1B681D0078108F372B78083098 -:1034B0001B78CA007800FA24186884A000804000B5 -:1034C000602A1B681D0078108F372B7808301B7816 -:1034D0008F007800FA2484A50F00C000852A0070B0 -:1034E00079006F2A2325792A772A6734673467346D -:1034F0006734772A78108C247810B834086084A058 -:10350000EFFF0A6078105A3440006734780035269F -:10351000E47805A0D000062A1800062A082084A016 -:103520003000C000942A1B784F007800FA24EC7811 -:1035300084A003004000902A002184A107007900A4 -:103540009E2AB02AB42AA82AA62ABB39BB39A62AA1 -:10355000B13978108C24781097372B7808301B7885 -:1035600056007800FA24781097377800863978105A -:1035700097372B7808301B78CA007800FA24781027 -:1035800097372B7808301B788F007800FA240023B7 -:103590007900C72ACC2ACA2ACE2A78108C2478002F -:1035A00080311B680800A3780000E47984A1300012 -:1035B00040008031EC7884A003004000803184A179 -:1035C00007007900E02AE82AB42A302A5639BB39A4 -:1035D000BB39E82AB13978106A397800FA2482A216 -:1035E00005005000F22A78108C2400237900F52A77 -:1035F000F82A4D2D5B2D00227900FB2A152B022B7A -:10360000152B002B322D78108C249B781800A8786D -:1036100084A0FF0082A0200048006B378AA004002D -:10362000C8006B377900112B6B376B376B37193745 -:103630009B781800A87984A180004000262B780090 -:103640006B37007005A0C0001C2B1120040078000F -:10365000E93284A1FF008AA01000C8006B3779000E -:103660002E2B402B3E2B582B5C2B172C6B376B379C -:10367000192C6B376B372E2D2E2D6B376B376B3725 -:10368000302D78108C2484A6001040004D2B012092 -:103690000005008000803A781B788D007800FA24BD -:1036A000186884A000804000562B1B681D0078001D -:1036B000442B780056391B681D0078007B37206941 -:1036C000226984A60018C0009D2B206884A00100F8 -:1036D000C000A52B186886A00800C0006E2B1B68D0 -:1036E000000084A600044000132C84A68000400043 -:1036F000992B97700000186884A03F008AA00D00E5 -:103700005000992B8AA00C00967101200C000C80AF -:103710009A719B786100AA787E157E137E14A12091 -:103720002B019B7800000080AC8080AD0B009820BE -:10373000A6537F147F137F151B7858007800FA2456 -:1037400084A600104000A52B1B7865007800FA24A1 -:1037500084A6600040000F2C84A6000840000F2CB7 -:1037600084A60080C000B32B7800CB2BB4A6FF7FCB -:103770005A7EB66EDC7AD879D0781B80C800BE2B12 -:10378000008084A03F0008A191A20000986B002156 -:1037900002A3B268946B002203A3AE6884A6004023 -:1037A0004000D32BB4A6FFBF5A7EB66E007086A031 -:1037B0000300C000E02B78103D4978103A4B1B788D -:1037C00064007800FA2406A07810414CB06AAC6915 -:1037D000986C946B002205A14000EF2B002222A4DC -:1037E00000211BA3AA6CD27CDA7CA66BD67BDE7B85 -:1037F000002305A4C000012CB5A600405A7EB66E79 -:103800001B7864007800FA241B786400002215A15C -:10381000C0000B2C78104B4B7800FA247810964B94 -:103820007800FA241B7865007800FA241B78580089 -:103830007800FA2478108C2478007A2C206984A1EE -:1038400000014000312C8CA1FFFE22697E0C5470D7 -:103850006020006084A0FFEF0260046084A0F5FF98 -:1038600006607F0C7800692C84A100024000692C5E -:103870008CA1FFFD22697E0C54706020006084A042 -:10388000FFDF0260046084A0EFFF06600820482C80 -:103890007F0C84A108004000692C7810B93878109A -:1038A000BB35FF884000692C9B7860000028AA780F -:1038B000587EB5A604005A7E84A60004C000632C7E -:1038C0002B7808301B7856007800FA242B780830C3 -:1038D0001B7865007800FA24587E84A60004C00096 -:1038E000722C1B7858007800FA241B786500780049 -:1038F000FA24780073377800733719200000907924 -:103900008CA10700C000882C206884A00001400022 -:10391000782C092008009B781000A87894A0FF005C -:1039200086A20100C000BF2C0023A87C00A41820A0 -:1039300002A14000B72C48009C2C7800B92C80A331 -:10394000020002A1C800B72C20698CA1FFFC2269EB -:103950007E0C54706020006084A0EFEF0260046071 -:1039600084A0E5FF06607F0C587EB4A6FBFF5A7E5C -:1039700078006A2C78001B2CA824A87AF000B92CB7 -:1039800078008A2C84A2F00086A02000C0001F2DA1 -:1039900018831883002302A14000CF2C4800CF2CAD -:1039A00078001C2D86A223004000782C1C6884A07F -:1039B000F1FF1E68587E84A6F1FF85A0100030201C -:1039C0005A7E086085A010000A607E0C547060204A -:1039D00004600820482C7F0C84A110004000F32CC8 -:1039E0007810B9387810D0367800022D7E0C5470DB -:1039F000602004600820482C7F0C84A1080040004F -:103A0000692C7810B9387810BB35FF884000692CD4 -:103A10009B7860000028AA78B5A604005A7E84A688 -:103A20000004C000162D2B7808301B785600780053 -:103A3000FA242B7808301B7865007800FA24A87ADD -:103A400078008A2C1883002302A14000282D48000A -:103A5000282D78008A2C84A28000C0007B37780053 -:103A6000733778007B3778006B379B781800A8781D -:103A700084A0FF008EA0010040003D2D78108C2412 -:103A8000A87A94A2FF00A87884A0FF008AA004006E -:103A9000C8006B377900492D6B3708356B376536B1 -:103AA00082A20000C000532D78108C2478108F372C -:103AB0002B7808301B7865007800FA2482A2030076 -:103AC000C000612D78108C2484A40080C000842D57 -:103AD0006C7005A040006B2D78108C24146F8277D9 -:103AE000BCA7000F7810BD38086085A021000A60CF -:103AF000388784A71F00C0006F2D781093376F7030 -:103B00000200092038520B2009007800862D781019 -:103B10009F372B7808301B7865007800FA2482A242 -:103B200004005000922D78108C2400237900952DEC -:103B3000982D812EB42E86A2030040009E2D781071 -:103B40008C24012000007E00C06805A04000A72D45 -:103B500003700300A06884A000204000B02D08601E -:103B600085A002000A607F003E70007084A00700FC -:103B70007900B72D2325C12DC12DB62FF22F232576 -:103B8000F22FBF2D78108C2484A60010C000C92D00 -:103B90007810874840005B2E68788CA0FF004000BA -:103BA000112E86A10800C000E02D7810B8340860FE -:103BB00084A0EFFF0A6078105A344000112E78106C -:103BC00087487800F82D86A12800C000112E7810B3 -:103BD0008748086084A0EFFF0A60186005A04000D5 -:103BE000F82D01801A6005A04000F82D018005A085 -:103BF0004000F82D1E60206884A0010040002325AD -:103C0000206884A0FEFF226860707E0C602000683F -:103C100002607F0C0460026805A0002DC0000E2E1B -:103C200002600660780023257E017810E52E7F0172 -:103C300084A600DF1E682B680000146FFF8140001F -:103C40005B2E86A10200C0005B2E84A60008C00087 -:103C50002E2E84A6600040002E2ED878DC7A2E68A6 -:103C6000326A206884A00008C0005B2E178794A2E7 -:103C70000F0013821382138290A2805490A200003E -:103C80001C2284A30001C000442E78004A2E10821A -:103C9000042285A018001220118284A30004400091 -:103CA000572EA06884A00001C000572E7810692FFD -:103CB00078002325086085A002000A60166918684C -:103CC00084A000804000632E3C701A688CA600DF40 -:103CD0001E697810A9347810B834C000702E0860BE -:103CE00084A0EFFF0A60206884A00100C000792E44 -:103CF0007810A23478007D2E607060200068026029 -:103D00007810DC1C7800232582A204004800872E4E -:103D100078108C24002279008A2E852E8E2E9B2EE0 -:103D20008E2E007086A005004000972E78108F37E9 -:103D30002B7808301B7865007800FA24907807808B -:103D4000018084A0070080A018009A78A8798CA12F -:103D5000FF0086A103004000B02E86A100004000B5 -:103D6000B02E78006B371B7865007800FA24206845 -:103D700085A004002268FF82C000BF2E78108F3714 -:103D80007800C62E11824000C42E78108C24781042 -:103D90009F372B7808301B7865007800FA242C7048 -:103DA00003804800D62E1920AF4E781013232F70B1 -:103DB00000807810E039307884A0C000C000E22E86 -:103DC0001800E22E1A7906A07C0085A001007C0074 -:103DD00084A66000C000EF2E2F680000336800004A -:103DE0007800682F84A60008C000112FB46884A052 -:103DF000004835A684A60008C000112F9869946A6F -:103E00002E69326A3C7005A0C000092F002205A16E -:103E10004000102F3F701500007086A00600400083 -:103E2000102F781087487C0084A620004000332F94 -:103E300084A6004040001F2F2F6800003368000058 -:103E40007800092FB46884A0004835A684A60040F5 -:103E5000C000192F3C7005A0C0002D2F3F70150029 -:103E6000D879DC7A2E69326A7800092F84A600405E -:103E700040003D2F2F680000336800007800092FB4 -:103E8000B46884A0004835A684A60040C000372F3F -:103E90003C7005A0C0004B2F3F701500D879DC7A2C -:103EA000D078FB80C800522F008084A03F0008A17A -:103EB00091A200002E69326A002105A2C0005F2F86 -:103EC0007800092F007086A006004000682F781047 -:103ED000414C7800092F7C00086085A000020A6030 -:103EE00084A300024000752F086085A002000A60CC -:103EF0001B6806008F68000093680000306A2C6918 -:103F00003E6A42692F68030033680000376820006A -:103F1000976800009B682000B3680000AF6800004D -:103F200000707900902F23259A2FA32F982F982F78 -:103F3000982F982F982F78108C24206884A0010047 -:103F4000C000A32F7810A2347800A92F6070502CE5 -:103F5000602000680260602A21205A52042405A0D3 -:103F60004000B22F20207800AB2F222D6B200000C4 -:103F70007C007810A9347810B834086084A0FFFD64 -:103F80000A602B6800009B780E00146F176802000F -:103F90007810894C84A600084000CF2F1C698DA1A1 -:103FA00000201E69186884A000804000DF2F687818 -:103FB0008CA0FF004000DD2F1B681E007800DF2F63 -:103FC0001B68000021205A52042406AD4000E62F51 -:103FD000607400682220C36800003C6A4069326A4D -:103FE0002E697810DC1C780023257810E52E2B68CC -:103FF000000001200E00146F7810E6398CA0FF003D -:104000001669186884A00080400005303C701A686A -:104010008CA600DF1E696F700000780023250070F9 -:1040200005A0C00012307800232506A0781087482C -:10403000176800001B6814008CA600DF1E692B683F -:104040000000206885A0FF002268007079002530FC -:1040500023252F302F3031303130313031302D3079 -:1040600078108C247810B834086084A0EFFF0A60C0 -:1040700078007234002379003A303D303F30983078 -:1040800078108C2484A60080C0007D3000707900F8 -:1040900046302325503050306C30503079306C3001 -:1040A0004E3078108C2484A6600086A06000C0008A -:1040B0006830B4A6DFFFB4A6FFBFB5A600205A7EC5 -:1040C000B66E1C6884A0DFFF1E68781087487810E1 -:1040D0004B4B7800563984A6002040005A301868AF -:1040E00084A00080400079301B68150084A6004041 -:1040F000400079301B68070078106A397800FA248C -:10410000B4A6FF7F5A7EDC7AD879D078D2791B802A -:10411000C8008830008084A03F0008A191A2000060 -:10412000986B002102A3B268946B002203A3AE68CF -:104130001B7865007C0078108C24002379009D306A -:10414000A030A230EB3078108C2484A60080C00010 -:10415000DA3000707900A9302325B330B330CF3086 -:10416000B330D630CF30B13078108C2484A66000C4 -:1041700086A06000C000CB30B4A6BFFFB4A6FFBFCE -:10418000B5A600205A7EB66E1C6884A0BFFF1E68CC -:104190007810874878104B4B7800563984A6002059 -:1041A0004000BD30186884A000804000D6301B68F5 -:1041B00007001B78CA007800FA24B4A6FF7F5A7E55 -:1041C000DC7AD879986B002102A3B268946B002244 -:1041D00003A3AE68D2791B7865007C00206885A0B7 -:1041E0000400226878102139B5A6000878108F37AE -:1041F0002B7808301B7865007800FA2400237900BA -:10420000FE3001310331053178108C2478007B3782 -:1042100084A60004C0002E31E47984A1200040006F -:104220001531EC7884A00300400015312B7809305B -:104230009B786000AB78000084A6FBFF5A78E47995 -:1042400084A1200040002631EC7884A00300C00047 -:104250002A31012014007800A02D84A107007900E4 -:104260006631907A94A207009B786000A879FF815C -:10427000400064319B781000A87B84A30100C0003B -:104280005531A87BA87B86A30100C00048310920D6 -:10429000F7FF78004E3186A30300C0005531092096 -:1042A000EFFF7E0C54706020046004A106607F0C58 -:1042B0009B786000AB78000084A6FBFF5A782B78CF -:1042C000093020698CA1FFFD8CA1FFFE22697800D6 -:1042D00056393F2A4A2A703178316E316E3156395B -:1042E000563978108C2420698CA1FFFD8CA1FFFE2B -:1042F00022697800603920698CA1FFFD8CA1FFFE46 -:10430000226978005639E47984A1300040008A316E -:10431000EC7884A00300C000B131007086A00400D6 -:10432000C000A4316C7086A00200C0009A31112038 -:104330000200192000007800E9286C7086A00600B1 -:10434000400094316C7086A00400400094310070ED -:1043500086A000004000FA24186885A000801A6832 -:10436000012014007800A02D84A107007900B53148 -:1043700056395639BD315639BB39BB39563956399C -:1043800084A680004000EC319471FF814000EC3144 -:1043900082A10D00D000CD31977000007800D2319D -:1043A00082A10C00967009200C009B786100AA790C -:1043B0007E157E137E149870148110A29A7280A0CC -:1043C0000B0000AD9820A1202B019B7800000881F4 -:1043D000AC81A6537F147F137F157800603984A6C3 -:1043E0000004C0002D32206884A001004000603924 -:1043F0008CA6600084A660004000013286A06000A8 -:10440000C00001328DA100408CA1FBFF5A79B66932 -:104410009B786000AB7800009B786100186885A0ED -:1044200000801A68AA7808800C814000D1348CA1E1 -:10443000F800C000D1347E157E137E14A1202B011C -:104440009B7800000080AC8080AD0B009820A653C4 -:104450007F147F137F151468078082787800603995 -:10446000186884A00080400034321B6808001B7864 -:10447000C0007800FA24002379003B324032D43265 -:104480003E3278108C24007084A0070079004532F9 -:1044900023254F3284325A324D3223254D324D324C -:1044A00078108C241C6884A00020400068320860CA -:1044B00085A002000A6078006832C06805A0C000CC -:1044C000843220698DA101002269C368010000685F -:1044D0006A7078007E3220698DA10100226900682F -:1044E000066005A0C000723202601C6884A00E0045 -:1044F00040007E321470BA68307188A1007578006F -:10450000803209200076042102680A2D6271B66E9D -:1045100084A660004000D23284A60008C000983211 -:1045200084A6FF7FB6689468A6689868AA68781021 -:1045300087487800D23284A620004000AD32C0689F -:1045400005A04000A4327810894C7800A73206A05C -:104550007810414CD879DC7AAA69A66A7800B3321F -:104560007810CA38AA69A66A7810414C84A60080DF -:104570004000D23284A6FF7FB668DC7AD87984A660 -:104580002000C000CA32D0781B80C800C53200802D -:1045900084A03F0008A191A20000986B002102A313 -:1045A000B268946B002203A3AE68780023257800DC -:1045B0007B373770000082A206005000DE32781090 -:1045C0008C24007084A00700C0108C3A002379006E -:1045D000E632E9321233263300227900EC3210330E -:1045E0007B37F232103342338433037005000120ED -:1045F000107768204A707E15A92031000320000042 -:104600000080700002337800FB327F1580AD090016 -:10461000367017680000B76800072368000827682D -:10462000030078006B3778108C240370050001209C -:10463000107768204A7080AD09003670002279003A -:104640001E337B3724332433423324337B377810B3 -:104650008C24037005000120107768204A7080AD1B -:10466000090036700022790032333A333833383358 -:104670003A3338333A3378108C2478109F372B78BC -:1046800008301B7865007800FA2403700200807AF5 -:1046900094A2000F9B781800A87C84A41F0015A288 -:1046A00069200076042D082D6271682005A0400065 -:1046B0005D33146806A240007933006878005033F7 -:1046C000037005000120107768204A7036707E154F -:1046D000A920310003200000008070006E337800B4 -:1046E00067337F1580AD09003670166AB76800071A -:1046F0002368000827680300B46E5A7E206884A0EF -:10470000000C4000D333781097377800D333037010 -:104710000200807A94A2000F9B781800A87C84A4E1 -:104720001F0015A2A879A8798CA1FF00E8A1007547 -:10473000042D082D6271682005A04000A333146881 -:1047400006A24000BE33006878009633037005006F -:104750000120107768204A707E15A92031000320BF -:10476000000000807000B3337800AC337F1580AD5B -:1047700009003670166AB7680007236800082768C2 -:104780000300B46E5A7E206884A0000C4000D3332E -:1047900084A000084000CD3378109B377800D333D5 -:1047A000781097378B7000007800D3337E02078231 -:1047B00084A00F0003800380038080A080546020C9 -:1047C000567000605A7004605E7084A660004000FD -:1047D0002B34986B946CAC69B06805A1C0000D34A3 -:1047E000D27BDA7BD67CDE7CB4A6FFB75A7E84A669 -:1047F000600086A0600040002B34C06805A0400027 -:104800000634037003002B68000078103A4B7800E0 -:10481000083478104B4BB5A600205A7E78002B3414 -:10482000B0681AA3002123A4002405A340002B3460 -:10483000D27BDA7BD67CDE7CB068B4A6FFBF5A7E22 -:104840007E00C06805A07F0040002934037003008B -:1048500078103A4B78002B347810964B7F077810FD -:10486000BD380920650084A6040040004C34E4787B -:1048700084A0300040004434EC7884A00300400061 -:1048800044342B7808300920650078004C347E0FC2 -:1048900079200052781087487F0F400023251A792D -:1048A000002D4A70078284A00F00038003800380DC -:1048B00080A0805448207800FA24206005A04000A1 -:1048C000663401802260086085A008000A601070CC -:1048D00026607C0006A078108748176800001B68D7 -:1048E0000100236840001F680001007084A00700D9 -:1048F000790077342325813481349E348934873498 -:1049000089347F3478108C247810A9347810A2343C -:104910007810DC1C780023256C706F700000937099 -:104920000000790090349A349A349834983498344A -:104930009A3498349A34790002296F700000780014 -:1049400023251B6800007800B62F006805A0C00072 -:10495000A734026006607C00106005A04000B234FD -:104960000180D000B23478108C241260086084A0DA -:10497000EFFF0A607C00186005A04000BE34018093 -:104980001A607C007810E0391B6818007800F53454 -:104990007810E0391B6819007800F5347810E03998 -:1049A0001B681A007800F5347810E0391B680300A2 -:1049B0007800F53480777810BD3884718CA1FF00C1 -:1049C000E8A10075042D082D682005A0C000E7347B -:1049D000780023251468807206A24000EF34006836 -:1049E0007800E03400680A201B6805008B70000026 -:1049F0007810A934206884A00100C000FE3478102B -:104A0000A2347810B8341F680000236820007810A2 -:104A1000DC1C7800232582A20300C0006B37A87D30 -:104A2000ACA5FF00A87CA4A4FF0020698DA1800094 -:104A3000226984A1000140006C358CA1FFFE22692F -:104A4000A4A4FF004000563582A40C00480029357C -:104A50004000293521200C002B852B8578102E381D -:104A6000400033357810273678005F357810E93705 -:104A70007E0C6029046084A0F5FF06607810523631 -:104A80007F0C20698DA100012269587EB5A6040023 -:104A90005A7E84A60004C00050352B7808301B785D -:104AA00056007800FA242B7808301B7865007800CF -:104AB000FA247E0C6029046084A0F5FF066078105B -:104AC00052367F0C587E84A60004C00068351B78DF -:104AD00058007800FA241B7865007800FA247E0CD0 -:104AE0005470602000618CA100104000AC35086259 -:104AF000178294A2FF0082A20C004800803540007B -:104B0000803511200C00002402A2C8008535202227 -:104B1000086294A2FF00187086A02800C000953596 -:104B200082A21900C8009B351120190078009B351E -:104B300082A20C00C8009B3511200C00002202A5A7 -:104B4000C800A03528227810ED372B852B857810EA -:104B50002E384000AC35781027367800B035781004 -:104B6000E93778105236587885A004005A787F0CBF -:104B70002B7808301B7865007800FA247E0C6029B9 -:104B80000060E4D0C000D535B4D0C000CF3510608F -:104B900084A00F00C000CF3504618CA1F5FF066131 -:104BA0007F0C7C0011203200192000007800FC35B9 -:104BB000A06884A00002C000CF35086294A2FF0064 -:104BC000187086A02800C000EA3582A21900C8002B -:104BD000F035112019007800F03582A20C00C800D1 -:104BE000F03511200C0008631F839CA3FF0082A3F3 -:104BF0000C004800FC354000FC3519200C00AB7857 -:104C00000100AB780300AB780100AA7AAA7BC0A8A8 -:104C10000500206885A0000122687F0C7C007E0CC6 -:104C200060298CA1F5FF06611120320019200000D7 -:104C300078001736AB780100AB780300AB78010041 -:104C4000AA7AAA7BC0A80500206885A00001226876 -:104C50007F0C7C007E0C5471602178102E367F0C06 -:104C60007C00082084A0F0FF25A4867C18609A7838 -:104C7000AE7C1264A47884A0F8FF8CA1070005A183 -:104C8000A67816608A78A4A40F0027840482048082 -:104C900084A0FF0005A40E60EC788CD0C0005136D3 -:104CA000046084A0F5FF06607C007E0C54706020D8 -:104CB000781059367F0C7C0018609A78A47884A00C -:104CC000F0FFA6781260847884A0F0FF86787C00DC -:104CD00082A20200C0006B37A87A20698DA18000F3 -:104CE000226984A100024000AE368CA1FFFD22693A -:104CF00094A2FF0082A20200C8006B377810F93638 -:104D00007810523680A901000C207810B93878103C -:104D1000BB35FF884000A1369B7860000028AA7848 -:104D2000587EB5A604005A7E84A60004C0009B36B7 -:104D30002B7808301B7856007800FA242B7808303E -:104D40001B7865007800FA24587E84A60004C00011 -:104D5000AA361B7858007800FA241B786500780082 -:104D6000FA2482A20200C800B63684A201004000E4 -:104D7000C036547188A100000C218CA10020C00015 -:104D8000C036112000007810DB377810F936781023 -:104D90005236587885A004005A782B7808301B7852 -:104DA00065007800FA247E0C7E02602900601120E4 -:104DB0000100ECD0C000E936BCD0C000E73614607A -:104DC00084A04000C000E7368CA1EFFF066106A07A -:104DD0007800F63611200000AB780100AB780200B5 -:104DE000AB780300AA7AC0A80400206885A000025E -:104DF00022687F027F0C7C007E0C5470602078104B -:104E000000377F0C7C00FF824000053711204000F6 -:104E1000186080A002009A78A47884A0BFFF05A241 -:104E2000A6788A781660EC788CD0C00018370460B9 -:104E300084A0EFFF06607C007E00007086A0030067 -:104E4000400022377F00780025377F0078006737E1 -:104E500084A6200040006737887884A04000400086 -:104E60006737B87B84A33F001B83C80035370080B9 -:104E700005A040004B371B83C8003E37018040002F -:104E8000633784A6004040004B37B8781B80C800C9 -:104E90004737008084A03F00C0006337B4A6FFBF3F -:104EA0005A7ED879DC7A0120010008A1C800573762 -:104EB00091A20000D279DA79D67ADE7A7810414C64 -:104EC0001B7864007810C64A7800FA241B786400C6 -:104ED0007800FA241B7865007800FA247810A3374C -:104EE0002B7808301B7865007800FA2478108F370B -:104EF0002B7808301B7865007800FA2427680200B8 -:104F000078109737E47884A0300040002325EC78AF -:104F100084A00300400023252B7808301B7865000F -:104F20007800FA24012005007800A53701200C0044 -:104F30007800A537012006007800A53701200D0074 -:104F40007800A537012009007800A5370120070067 -:104F50009B781000AA789B786000AB780100B5A61A -:104F600004005A7E7C007E073F87BCA70F003B876A -:104F70003B870387E0A08054B8A720009A7FA479DC -:104F800084A10F004000C93784A1F0FFA678126009 -:104F9000046085A008000660388738879A7FA47966 -:104FA00084A140004000D93784A1BFFFA6781660D5 -:104FB000046085A0100006607F077C009B781000CD -:104FC000AB780100AB780200AB780300AA7A9B783B -:104FD0006000AB7804007C00212000002920320012 -:104FE0009B781000AB780100AB780300AB78010030 -:104FF000AA7DAA7C9B786000AB7805007C007E15BA -:10500000078084A0FF000380038080A020009A789E -:10501000A4798CA1F0FF01204652042082A0280030 -:10502000400017382120A03819201400A9200C00B6 -:1050300078001D382120AC3819201900A9200D0056 -:1050400011206400042484A0F0FF06A140002C3845 -:105050002084002310A270002C3878001F387F15A0 -:105060007C007E15092046520C2182A132004800A6 -:105070004238400046380920923819201100A920F2 -:105080000E00112032007800583882A1280040001C -:1050900050380920A03819201400A9200C00112034 -:1050A0006400780058380920AC3819201900A9206C -:1050B0000D0011206400002202A54000683848005D -:1050C00068380881002310A27000653878005838CD -:1050D0007F1506A07C007F1582A56400C800773884 -:1050E000087885A070000A78447085A0700046702A -:1050F00078007738EC7884A0000340007F380421E2 -:105100007800903804219EA00211C0009038012040 -:10511000FD04042082A0050048008F380120011200 -:1051200078009038042105A07C0002110230023280 -:105130000342034404540456056605680678067A5B -:10514000070C070C070E0232024202520262027280 -:10515000056605760578057A057C057E057F0222C1 -:105160000232024202520454046404740476047845 -:10517000047A047C047E047F9B78100046A07C00A7 -:1051800084A7000F0B8084A71F0003800380038087 -:10519000038005A1E0A000557C00D879DC7AD078A6 -:1051A0001B80C800D138008084A03F0008A191A2D4 -:1051B00000007C007E0F79200001092040529120E0 -:1051C000008004217900E1381739EB38EB38EB38EF -:1051D000EB38EB38EB381B3978108C244B78040013 -:1051E000487884A00400C000ED384B780800487867 -:1051F00084A00800C000F438B46885A00040B668F8 -:10520000587885A000405A78307884A08000C0008B -:105210001739180017391C6884A02000C000153900 -:105220007E0E7120405278106A397F0E780017394F -:105230001B78CA00912001807F0F7C00B3700000B2 -:105240007810443B780017397E0C1468078084A0DE -:105250000F00038003800380E0A08054046084A0DA -:105260000A00C0005439086194A100FF400054397D -:105270008CA1FF000120190006A140004339012044 -:10528000320006A14000473978004B390920200040 -:1052900078004D3909203F0078004D391120000079 -:1052A000002105A20A60046085A0020006607F0C50 -:1052B0007C001B7865007800FA242B7808301B7876 -:1052C00065007800FA241B7858007800FA242B78BF -:1052D00008301B7856007800FA24092020520C214F -:1052E00086A1000040007E3986A10100400081397E -:1052F000092038520B200B006F7001001B7848000A -:105300007C001B78C4007C00092038520B200A0066 -:105310007C00092020520C2186A100004000A13908 -:1053200086A1010040009B39092038520B200B0058 -:105330006F7001001B7848007800FA240920385269 -:105340000B200A007800FA242B7808301B78C40060 -:105350007800FA241B78CA007800FA242B780830E9 -:105360001B78CA007800FA241B788F007800FA2492 -:105370002B7808301B788F007800FA24186884A0F6 -:1053800000804000C2391B681D006F7001001B784F -:1053900048007800FA247E00307884A0C000C00065 -:1053A000DE39087884A0FCFF0A78050005000500B6 -:1053B0000500EC7884A021004000DE3944700A78B2 -:1053C00005A07F007C00447085A0020046700A782A -:1053D0007C007E00307884A04000C000E73998004F -:1053E000F2397F009A78AC787C00087884A0FDFFC1 -:1053F0000A780500050005000500EC7884A021006E -:105400004000013A9800FF397F009A78AC787E001E -:1054100044700A787F007C00EC7884A00200C00011 -:10542000714884A77D00C000153A002778108C24AD -:1054300084A70100C0000C3084A770004000253A0A -:105440007E0C602D682F78103724782D682C7F0C07 -:1054500084A708004000323A4B780800EC7884A01A -:105460000300400023257800563984A7040040003B -:10547000653AB87884A001404000653A4B7808004E -:10548000EC7884A0030040002325E47884A0070082 -:1054900086A00100C000653AC07885A00048302091 -:1054A0005A7E1B78CA007800FA244B7808001868E6 -:1054B00084A000804000613A1B68150084A600406B -:1054C0004000613A1B68070078106A397800FA24B6 -:1054D0001B680300587884A0003F1E682F680000F6 -:1054E000336800004B780800EC7884A0030040008B -:1054F000062A1800FA2478007337146B078384A0F7 -:105500000F0003800380038080A080546020482027 -:10551000567000605A7004605E70602A7C007900EA -:105520008E3A963A973A963A993A963A963A963AFF -:105530009E3A7C007810B8347810874838700A603A -:105540007C00A07005A04000AB3A68207810D31B07 -:105550007810FE4778100548A37000007C007E0E8E -:105560009120008071204052007086A00700C0008A -:10557000C23A1061BC7006A1C000C23A7F0E78101A -:10558000E01B7810C83A06A07C00912001807F0EB5 -:1055900085A001007C007E0F7E0E712040527800B5 -:1055A00097225B780000AF700E00092000017E0199 -:1055B000A0706DA04000DD3AA37000007800E33ACF -:1055C000B370000078100C1C4000E93AAC702668FB -:1055D0007810C63B7800DD3A7F017E157E0C7E0D8B -:1055E000A920080061201076006005A102601C60FF -:1055F0006DA04000013B00681E607810AC19086087 -:1056000000800A607800F43A18606DA040000B3BFF -:1056100000681A607810AC197800013BE0AC080013 -:105620007000113B7800F13A9C7084A0008040002B -:10563000183B7810443C7F0D7F0C7F157C007E1258 -:1056400091200023046884A00F007900243B343BA0 -:10565000343B343B343B343B343B363B3C3B343BC8 -:10566000343B343B343B343B3E3B343B363B78109D -:105670008C247810D3457810AC197800423B276809 -:105680000B007810D3457810C63B7F127C007E1249 -:10569000912000239800603B307884A0C000C000B7 -:1056A000603B7E0D78101248002D2E680920040002 -:1056B00001200000276884007810C7477810C63B97 -:1056C0007F0D7800943B487985A100404A78980086 -:1056D000693B4A7978004E3B287886A03418C00090 -:1056E000723B85A104007800793B287886A01418C5 -:1056F000C000663B85A10C004A789B780E00AB7811 -:105700000200587884A0FF0085A000045A78B47085 -:1057100080A091001A78276884022C683668306867 -:105720003A6809200400012000007810C7477F1262 -:105730007C007E0D146B7810701C4000A33B682029 -:10574000276802007810C63B7800983B7F0D7C00EC -:105750007E0D146B286CA4A4FF0078101C1C400064 -:10576000B33B6820276802007810C63B7F0D7C00A1 -:105770007E0D146B9CA3FF007810481C4000C43BB6 -:105780006820276802007810C63B7800B93B7F0D7F -:105790007C007E0C146978103B3C04698CA1FF00EE -:1057A00086A106004000E13B86A10D004000003CC0 -:1057B00086A11700C000DD3B7810AC197800DF3BF4 -:1057C0007810DE1C7F0C7C00046001804800FE3BEA -:1057D00006600920000084A60100C000EE3B8DA1F8 -:1057E000008084A604004000F43B8DA102001E69E5 -:1057F0002368000004710F81186805A11A687800F9 -:10580000DD3B78108C24186005A0C0000F3C0860B8 -:10581000018048000F3C0A601C600268002D1E6079 -:105820007800253C88AC0600042105A04000183C07 -:1058300008207800113C02680A2D086001804800A9 -:10584000DF3B0A601860682000681A607800093C35 -:105850007E157E137E147E0C7E0D78108919C00093 -:10586000303C78108C24A02D7F13A9203100A35345 -:105870007F0C7F147F137F157800DD3B84A11F0010 -:1058800003800380038080A0107660207C001920B4 -:105890005152042385A001001A201920020104237B -:1058A00085A001001A207C0019205152042384A0F5 -:1058B000FEFF1A2019200201042384A0FEFF1A20F3 -:1058C0007C0090798CA1F8FF9279B47080A0D80008 -:1058D0001A787800FA24A370000003700000437067 -:1058E0000100377000001800B12478100C1C400033 -:1058F000993C09200F520B200000BC686020006119 -:1059000084A1000340008D3C27680E0084A00002A3 -:105910004000893C276817007810C63B7800683C37 -:10592000007086A00700C0000D3D002DA27080AD64 -:105930000F0036707800A03C407086A00100400047 -:1059400033257800FA24312000001C6984A102006C -:105950004000A93CB5A6040084A1C00003800380D8 -:10596000078080A0A63D042035A6206884A00004FE -:105970004000C13C9B781800AB7803009B78810005 -:10598000AB780100B5A60050206884A000804000DC -:10599000CF3CB5A600049B780E0024680780AA7847 -:1059A0007800EF3C1C68FCD0C000DD3CB5A60008C8 -:1059B0002068C4D04000EF3CB5A600407800EF3C22 -:1059C0002068C4D04000E53CB5A600407800EF3C1C -:1059D0009B781800AB7802009B788100AB780100BF -:1059E000B5A6001084A600024000093D2C68D278BC -:1059F0003068D67884A600014000073D2C6884A05A -:105A000001004000073D887884A040004000073D29 -:105A1000B5A600807810F6475A7EB66E78003548F5 -:105A20007810C839C000A03D2C70048048001B3D90 -:105A30001920494F781013232F70010041200100D5 -:105A4000312000109B781800146884A01F0085A0E6 -:105A50008000AA781C6984A102004000343DB5A6EC -:105A60000400AB7820002868AA78C0A802001C684F -:105A7000F4D040003D3D502C78107A3A781002471F -:105A8000206884A0008040004B3DB5A600049B78B0 -:105A90000E0024680780AA787800523D1C6884A014 -:105AA0000080C000523DB5A60008206884A0000117 -:105AB0004000593DB5A600401C6884A0C00003808A -:105AC0000380078080A0A63D042035A684A600019F -:105AD0004000733D2C6884A001004000733D88782D -:105AE00084A040004000733DB5A600809B787E00F6 -:105AF000AE7EB66E14680780AA7882781028AA7ADB -:105B0000307884A0C000C000A03D1800A03DB47053 -:105B100080A0DD001A787810E03984A600024000E9 -:105B2000943D2C68D2783068D6787810F647002DEE -:105B3000A2704A701068BE700370070080AD0F003D -:105B400036707800FA247810D31B7810E03978008A -:105B5000FA24000000030002000078108C240023C7 -:105B60007900AF3DB23DB23DB43D78108C24781041 -:105B70000548246984A1FF0086A00A004000C63DB4 -:105B800084A100FF85A00A0026687810D31B780046 -:105B9000683C01200A00781097477800683C82A290 -:105BA00005005000D23D78108C24007084A00700BE -:105BB000C0108C3A78108919C000F43D6920FFFFAD -:105BC00084A604004000E53D012000287800E73D60 -:105BD00001200008B47188A191009B780E00078015 -:105BE000AA78312000045A7E1A797800FA240768CE -:105BF00006010B6800009F6800002768000086A36C -:105C00000200C000153E86A20200C000153EA0782A -:105C100005A0C000153E84A40080C000153EE478B5 -:105C200084A008004000153EB5A608001920000019 -:105C300078101742002DA2704A7003700700377069 -:105C40000000246884A080004000273E7810CD42E8 -:105C50007800FA24002379002A3E2D3EAE3EC73E4E -:105C600000227900303E353E453E6B3E773E9A3EFF -:105C70002920010026A0112000007810F3437900AC -:105C80003E3E433EFA24683C433E433E78108C241B -:105C900090798CA10700C0004C3E0920080011201B -:105CA000010084A604004000543E1120030020227D -:105CB0002AA1112001007810F34379005C3E613E77 -:105CC000FA24683C693E633E78003B48AB70673E0F -:105CD0007800FA247800613E78108C2484A61000A5 -:105CE0004000753E78109C424000753E7800FA24D2 -:105CF00078000D43006084A002004000943EB47020 -:105D000080A0CD001A787E0D78101248002D2E68E4 -:105D1000276800007810C63B7F0D7810AC1903701F -:105D20000000377000004B7000007800683C84A6CB -:105D30000400C0009A3E78003B48006084A0040044 -:105D4000C000AC3E006084A001004000AC3EAB70DF -:105D5000AC3E0120070078108F477800414878005A -:105D60003B4800227900B13EB63EB83EB63EB63E54 -:105D7000B63E78108C24A770BC3E78004748E47883 -:105D800084A00800C000B83E78108147AB70C53EC3 -:105D900078003B4800227900CA3ECF3ED13ED13E3A -:105DA000CF3ECF3E78108C24E47884A008004000D9 -:105DB000E63EA770DA3E78004748112004007810CC -:105DC000ED437900E03EE63EFA24683CE63EF03ED4 -:105DD000F43EAB70EE3E0120030078108F47780050 -:105DE000414878003B48AB70E63E7800FA24AB703F -:105DF000F83E7800FA247800EE3E82A203005000BC -:105E0000003F78108C2486A30200C000193F86A2B0 -:105E10000200C0001F3FA07805A0C0001F3F84A45F -:105E20000080C0001F3FE47884A008004000193FB4 -:105E3000B5A608001920000084A6080040001F3FF6 -:105E4000781079421068BE70037007000023790053 -:105E5000263F293F563F5E3F002279002C3F313FCD -:105E60002F3F4A3F78108C249079ACA1070026A0E0 -:105E7000112001007810F34379003B3F403FFA24A2 -:105E8000683C483F423F78003B48AB70463F780053 -:105E9000FA247800403F78108C2484A6100040003B -:105EA000543F78109C424000543F7800FA24780018 -:105EB0000D4300227900593F5C3F5C3F5C3F781006 -:105EC0008C2400227900613F643F663F663F781072 -:105ED0008C24E47884A0080040007B3FA7706F3FCB -:105EE00078004748112004007810ED437900753F91 -:105EF0007B3FFA24683C7B3F853F893FAB70833F03 -:105F00000120030078108F477800414878003B4813 -:105F1000AB707B3F7800FA24AB708D3F7800FA2499 -:105F20007800833F00237900923F973F993F953F48 -:105F300078108C24A4707A00A4707A0082A20200E7 -:105F40005000A13F78108C2484A600024000AB3F93 -:105F50007810FE477810D543781005480023790063 -:105F6000AE3FB13FD93F3F4086ADFFFF4000683CA8 -:105F700086A201004000BB3F78108C2484A600025A -:105F80004000C33F7810FE4778100548012001000B -:105F900078109747B87884A001C04000D53F487872 -:105FA00085A008004A78487884A00800C000D03F47 -:105FB000037000007800683C00227900DC3FDE3F7F -:105FC0000F40A770E23F7800474811200D0078107D -:105FD000ED437900E83FEF3FFA24683CF73FFF3F8D -:105FE00005400740B4A6FF00B5A60004B66E5A7E71 -:105FF00078003548B4A6FF00B5A60004B66E5A7EF8 -:1060000078003548AB7003407800FA247800EF3F01 -:1060100078108C24AB700B407800FA2478104D482F -:106020007800FA24A7701340780047481120120026 -:106030007810ED43790019401F40FA24683C2B404A -:1060400033403940B4A6FF00B5A60004B66E5A7EB0 -:10605000B47080A0AA001A787800FA24B4A6FF00D1 -:10606000B5A60004B66E5A7E78003548AB7037404E -:106070007800FA2478001F40AB703D407800FA2485 -:1060800078002B4086A201004000454078108C2407 -:10609000A770494078004748112015007810ED435B -:1060A00079004F405440FA24683C62406E40B4A6E8 -:1060B000FF00B5A60004B66E5A7E3B780113B4709B -:1060C00080A0B5001A787800FA24B4A6FF00B5A61F -:1060D0000004B66E5A7EB47080A0AA001A787800C8 -:1060E000FA24AB7072407800FA247800544082A2FF -:1060F000030050007A4078108C24002379007D4002 -:106100008040B740144186A20100400086407810CC -:106110008C24046884A0FF0086A00600C000934081 -:106120007810C63B037000007800683C3B680000B4 -:106130003768000084A600024000A1407810FE47A6 -:106140007810D54378100548012001007810974752 -:10615000B87884A001C04000B340487885A008000A -:106160004A78487884A00800C000AE400370000060 -:106170007800683C00227900BA40BC40EF40A7702C -:10618000C0407800474811200D007810ED43790099 -:10619000C640CD40FA24683CD540DD40E340E540B0 -:1061A000B4A6FF00B5A60008B66E5A7E7800354842 -:1061B000B4A6FF00B5A60008B66E5A7E7800354832 -:1061C000AB70E1407800FA247800CD4078108C2440 -:1061D000AB70EB40781005487800FA2478104D48F1 -:1061E0007800FA24A770F340780047481120050092 -:1061F0007810ED437900F940FE40FA24683C0641EE -:106200000E41B4A6FF00B5A60008B66E5A7E78000F -:106210003548B4A6FF00B5A60008B66E5A7E7800D1 -:106220003548AB7012417800FA247800FE4086A20F -:10623000010040001A4178108C24A7701E4178009C -:106240004748112006007810ED4379002441294188 -:10625000FA24683C2F413941B5A60008B66E5A7E33 -:1062600078003548B4A6FF00B5A60008B66EB5A6FE -:1062700000405A7E78003548AB703D417800FA24E2 -:106280007800294100237900424147414541454179 -:1062900078108C2478108C240023A87105A07A0132 -:1062A0001068BE7082A203005000554178108C2403 -:1062B0000023790058415B4169418B4184A600026B -:1062C000400063417810FE47781005480120010026 -:1062D000781097477800FA2496A202004000724195 -:1062E000FF824000724178108C24A77076417800BC -:1062F0004748112018007810ED4379007C41814116 -:10630000FA24683C83418541780035487800354857 -:10631000AB7089417800FA2478008141002279002D -:106320008E419041A941A7709441780047481120BF -:1063300017007810ED4379009A419F41FA24683C98 -:10634000A141A3417800354878003548AB70A7419A -:106350007800FA2478009F4184A40080C0000542A0 -:1063600084A600014000B5417810FE477810D5435F -:10637000D878D278DC78D678B4A6FFEF5A7EA770AA -:10638000C0417800474811200D007810ED43790096 -:10639000C641CD41FA24683CCD41F341F941FB416E -:1063A000D878DC7905A1C000DF41B87884A01F004F -:1063B000C000DF41B3700000587884A0FFFD5A7818 -:1063C0007800354884A600014000F141487885A056 -:1063D00008004A787810BC472C68D2783068D678A4 -:1063E000B37000007810F64778003548AB70F7417D -:1063F0007800FA247800CD4178108C24AB700142EB -:10640000781005487800FA2478104D487800FA246E -:1064100078100548AB700F420120030078108F47B9 -:10642000780041487810F6472C68D2783068D678E2 -:1064300078003548B8701268BE700080BA701B686A -:10644000000084A6080040003A427E157E137E14A8 -:106450009078048004800480048084A00F001A686F -:10646000AC809B78000080AF2B00982080AD0B00A3 -:10647000A020A5537F147F137F15C4A6000F84A608 -:106480000200C00049422C690D810D810D8184A15B -:106490000700082078005C429B781000AC7984A14A -:1064A000200040005C427E01092005000120003DE3 -:1064B0007810C747246885A03B0026687F0184A127 -:1064C0001F0005A8166878103B3CBE6884A604002F -:1064D00040006D428CA100FFA87884A0FF0005A1B8 -:1064E0002A68B4A6FF00006084A00800400077423C -:1064F000B5A60040B66E7C007E157E137E1418692A -:106500009078048004800480048084A00F007E00C2 -:1065100000A11A687F000080048040009842A820F3 -:10652000048180A00B0000ADA0209B78000080AF0C -:106530002B009820A5537F147F137F157C002C68B7 -:1065400084A02000C000A4420C627800A542106222 -:10655000186B002302A24000C542182082A30E003F -:106560004800B5424000B54219200E007800B942FB -:10657000587884A0EFFF5A783B78011B937800008D -:10658000A27BB47080A08E001A7885A001007C00E8 -:10659000587884A0EFFF5A789378000006A07C001A -:1065A00004698CA1FF0096A107004000DA4296A181 -:1065B0000F004000DA4207681701146978103B3C6D -:1065C00000610481C800F5421C6005A04000E9425A -:1065D000012000087800F7427E0D24687E007810C4 -:1065E00012487F002668002D2E687810C63B7F0D6C -:1065F0000120000224698CA1FF000DA126690780FB -:106600009B780E00AA78206885A00080226831203F -:106610000004B66E5A7EB47188A191001A797C008C -:10662000C4A6000F84A60200C00021432C690D817E -:106630000D810D8184A10700082005A81668781037 -:106640003B3CBE6878002443146978103B3C0061F1 -:106650000481C800824384A10003400030430768DE -:10666000170178004E43046005A0C0005743076837 -:1066700017011C6005A0C00044437E0D781012482D -:1066800027683400002D2E687810C63B7F0D84A645 -:10669000040040004E43312000040120002878000F -:1066A00052433120000401200008B47188A19100F8 -:1066B0007800B043186005A0C00044431C6005A0EA -:1066C000C00044439F68000027683D0084A6010085 -:1066D0004000BE4394D6C0007B430061D4D140004B -:1066E0007B432C698CA1FF004000BE4386A10300C0 -:1066F0004000BE4386A112004000BE43B5A600087C -:10670000B47188A1AE007800B94307681701312041 -:1067100000042C698CA1FF0086A11200C0009343E5 -:106720000120CB43092001007800A44386A1030087 -:10673000C0009D430120CC43092012007800A443EF -:1067400001200002B47188A191007800B043781054 -:10675000E147A37800001C6885A040001E68B47162 -:1067600088A1DA0006A0266807809B780E00AA7828 -:10677000206885A000802268B66E5A7E1A7978005B -:10678000FA24B66E7810C63B1068BE70037007001E -:10679000A37000004B7000007800FA242300700002 -:1067A00005000000000A00000000250000000000B5 -:1067B0003B6800003768000084A600024000EC43FC -:1067C000B8788CA01F0084A000804000E5430881B9 -:1067D000D87800A13668DC7881A000003A687C0097 -:1067E00090790F81ACA507002120000080A4100043 -:1067F0009A78A8798CA1FF0084A18000C0001B4476 -:1068000082A12000C800394482A11200C80081473B -:106810000021791009447C008147EB45814781477D -:10682000464449448344B944ED44F0448147814798 -:10683000A44414454E4581478147744584A12000F6 -:10684000C000A8458CA11F00146884A01F0006A1E9 -:1068500040003644B47080A0CD001A7801201400A6 -:106860007810974778100548037000000120020057 -:106870007C00012000007C0082A12400C800814728 -:1068800084A10300791009447C0081478147814736 -:106890008147781081477C00002279004C4477457D -:1068A0007745704470447044704470447044704440 -:1068B00070446E4470446544704470447044704445 -:1068C000704478447B4477457B4470447044704402 -:1068D0007E0C7E07146F7810B0377F077F0C78002E -:1068E000704478108E462768B30209200B000120FF -:1068F00000487800AB45781073477C002768930008 -:1069000009200B000120004878009345582D0468A9 -:1069100084A0FF0086A00600C0008D440768170110 -:106920002768020078101248276836003269002D67 -:106930002E687E0D7810963B7810D345682B781022 -:10694000C63B7F0D7810C63B012002007C0078100A -:10695000D3450120170078109747A3700000092045 -:1069600038520B200600AF70170009200002781083 -:10697000D43A012001007C0000227900BC44774514 -:10698000A845A845A845DD44BA45E544BA45BA45F9 -:10699000BD45BD45C245C245D544D544A845A845D9 -:1069A000BA45A845E5447745E544E544E544E54472 -:1069B0002768840009200B00012000437800CC45A3 -:1069C00027680D0009200B00012000437800AB452B -:1069D0002768930009200B000120004378009345AD -:1069E000012000007C0000227900F34477450C452B -:1069F0000C450C450C45BA45BA45BA45BA45BA45A9 -:106A0000BA45BA45BA450C450C450C450C45BA4546 -:106A10000C450C45BA45BA45BA45BA45774527688D -:106A2000930009200B00012000437800934584A6C1 -:106A30000400C0002845046884A0FF0086A006006A -:106A4000C00081477810D345076817017810C63B0E -:106A5000012002007C00006084A004004000814707 -:106A6000582D046884A0FF0086A00600C0003745AA -:106A70000768170127680200781012482768360057 -:106A80003269002D2E687E0D7810A53B7810D34515 -:106A9000682B7810C63B7F0D7810C63B01200200A2 -:106AA0007C00006084A0040040008147046A94A236 -:106AB000FF0086A20600C0005C4507681701276832 -:106AC0000200582D78101248276836003269002DD0 -:106AD0002E687E0D7810B53B7810D345682B781062 -:106AE000C63B7F0D7810C63B012002007C00781069 -:106AF00081477C00B47080A0CD001A78012001008D -:106B000078109747781005480370000001200200B4 -:106B10007C007810C7477810FE477810D54378106E -:106B2000CD4278100548012001007C007810C7474D -:106B30007810FE477810D543B47080A0CD001A7845 -:106B40000120130078109747781005480370000063 -:106B5000012002007C00781081477C007810C74734 -:106B60007810FE477810D5437810CD42781005484C -:106B700078104D48012001007C00012003007C00BA -:106B800078108E46012000007C007E0C7E07146F7A -:106B90007810B0377F077F0C012000007C00781050 -:106BA000C74778108147012006007C0004698CA14A -:106BB000FF0086A107004000DE4586A10F00C0004F -:106BC000E2457810FE477810D543B47080A0CD0020 -:106BD0001A7878100548037000007C00A87A94A207 -:106BE000FF00A87884A0FF008AA00400C8008147A5 -:106BF0007910F8457C008147FC458147954682A283 -:106C0000030040000346781081477C00A87DACA5B6 -:106C1000FF00A87CA4A4FF00B86984A10001400083 -:106C200042468CA1FFFEBA69A07805A0C00042468A -:106C3000A4A4FF004000364682A40C0040001F467A -:106C4000C80029462B852B8578102E384000294610 -:106C5000781027367800384678106047781052361A -:106C6000B8698DA10001BA69B5A600105A7E7800F6 -:106C70003B4678105236B4A6FFEF5A7EB47080A01F -:106C800091001A78012001007C007E0C7810824669 -:106C90000062E4D2400073460862178294A2FF00AB -:106CA00082A20C00480055464000554611200C00B9 -:106CB000002402A2C8005A462022086294A2FF00C3 -:106CC0001C7002A2C80062461C72002202A5C80005 -:106CD00067462822781064472B852B8578102E383C -:106CE0004000734678102E3678007746781060475B -:106CF00078105936B5A600105A7EB47080A0B9003D -:106D00001A78012004007F0C7C007E001468078044 -:106D100084A00F00038003800380E0A080547F00E4 -:106D20007C007E0C78108246781059367F0C7C00EF -:106D300082A20200C0008147A87A94A2FF00B8692D -:106D400084A100024000CC468CA1FFFDBA69A07866 -:106D500005A0C000CC4682A20200C8006B377810A4 -:106D60002A477810F9367810523684A60001400080 -:106D7000C2462C6884A001004000C246FCC6887848 -:106D800084A040004000C246FDC6B5A600105A7E51 -:106D9000B47080A091001A78012001007C007E0C64 -:106DA0007810824684A2FEFF4000D74611200100E1 -:106DB0007800DB4684A201004000E1460061ECD18E -:106DC000C000E1461120000078101C477810003701 -:106DD0007810593684A600014000F7462C6884A03C -:106DE00001004000F746FCC6887884A040004000BF -:106DF000F746FDC6B5A600105A7EB47080A0B90053 -:106E00001A78012004007F0C7C007E0C6029006051 -:106E10001120010084A00020C0000D4711200000B7 -:106E2000AB780100AB780200AB780300AA7AC0A867 -:106E30000400B86885A00002BA687F0C7C009B78CB -:106E40001800AB780100AB780200AB780300AA7A97 -:106E50009B788100AB7804007C007E0C547060202D -:106E6000006084A00010C000384729203200212093 -:106E70000000780058470865ACA5FF00187086A090 -:106E80002800C000484782A51900C8004E472920A5 -:106E9000190078004E4782A50C00C8004E472920F3 -:106EA0000C0008642784A4A4FF0082A40C004800FE -:106EB000584721200C0078106447B86885A000016D -:106EC000BA687F0C7C0021200000292032009B78CA -:106ED0001800AB780100AB780300AB780100AA7D05 -:106EE000AA7C9B788100AB7805007C000120030020 -:106EF00078108F47B5A600105A7EB47080A0B900F4 -:106F00001A78012005007C000120070078108F47C7 -:106F1000B5A600105A7EB47080A0B9001A7801207E -:106F200004007C009B781800AA789B788100AB78DD -:106F300001007C0004698CA1FF0096A107004000BD -:106F4000A54796A10F004000A5477810AC197C001A -:106F5000246994A13F00C000AE478CA1C0FF05A1E9 -:106F600026687810C63B1C6984A100014000BB471D -:106F7000146978103B3C0462108206627C002C6924 -:106F800034682E6812A13069386832681BA100A2EB -:106F900001A37C007E0CE0AD180003607000066168 -:106FA0000B6000000F60000A136000001760000013 -:106FB00007801A601F600000236000007F0C2468B7 -:106FC00085A0800026687C007E157E137E149820A4 -:106FD00080AF2D00A020AC814000EC47A65384A1D7 -:106FE00001004000F2470433BE787F147F137F1501 -:106FF0007C00B07005A0C0108C24B37000807800B5 -:107000004B4BB071FF81400004487810414C7C002C -:10701000B071FF8140001148487885A008004A7887 -:10702000B3700000781087487C007E0C7E0D7810CD -:107030008919C0001A4878108C247F0C7E157E13A5 -:107040007E14A02D982CA9203100A3537F147F1308 -:107050007F1507680D010B680000047007801A682F -:10706000236800001F6800009F6800007F0C7C0000 -:10707000B47080A091001A787800FA24B47080A0CF -:1070800081001A787800FA24B47080A0B9001A78C8 -:107090007800FA24B47080A0C3001A787800FA242B -:1070A00004698CA1FF0096A1070040005A4896A1F0 -:1070B0000F0040005A4807681701246884A0FF00A9 -:1070C00085A00002266807809B780E00AA782068B9 -:1070D00085A00080226831200004B66E5A7EB4710B -:1070E00088A191001A797C0078100548487885A01D -:1070F0000C004A78B47080A0CD001A7809200B00EB -:10710000012000447810C7470120130078109747EA -:107110007800683C7E129120002249208748007048 -:10712000047205A20C7215A2087084A0F7FF05A2D4 -:107130004000994878009E48037000007F120020AC -:107140007C00007084A00100C000CC48087103815D -:10715000C800AB487810CE497800A3480C708CA0CA -:10716000FF004000CC4804700480C800C34814707D -:1071700005A0C000BF48107005A04000C34802A190 -:10718000C800A348077010007800CC48FF8A400070 -:10719000CC487810184CC000C6484000A34878106E -:1071A0005749037000007F1200207C007E010461BB -:1071B0008CA1FF0086A107004000DF488EA10F00D0 -:1071C000C000E24840607800E34828647F01FF8403 -:1071D00040000D49702C0470BCA00F00B8A71D49D9 -:1071E0003C27FB87C000FB484800F54878108C24FA -:1071F0009C6075A040000D497800E848042768AEFF -:10720000086830A60C6829A5218440000D493887FC -:10721000042705A0C000FC489C7075A0C000E84889 -:107220007C000000050009000D0011001500190088 -:107230001D000000030009000F0015001B000000E6 -:10724000000012490F4900000000008000001249B0 -:1072500000001A49174900000000000000001A4908 -:107260000000154915490000000000800000154984 -:1072700000001B491B4900000000000000001B49E2 -:107280007E12912000227920005271201000077098 -:107290000A000770020003700000712020000770D0 -:1072A0000A000770020003700000492000007F12EE -:1072B00000207C00492057491920000004700480F8 -:1072C000C800AA49077012000871087006A1C00022 -:1072D000614984A1E00140006C4978108C240120B0 -:1072E000FD04042082A00500C800774984A1004065 -:1072F000C00061499CA10C3086A304204000854950 -:1073000086A308004000904986A30C20C000614974 -:1073100000720482480090490C7384A3FF0040006F -:10732000904978108C2407701200007084A001002E -:10733000C000AA49087084A0E001C000AA491073E7 -:10734000147005A34000AA490C7184A10003C00079 -:10735000AA4984A1FF00C0005749077012000770B6 -:107360000800047084A00800C000AE490770120035 -:10737000087103814800B3490370000049200000F0 -:107380007C007E107E007E127E1591200022087106 -:107390007810CE497F157F12912001807F007F10E9 -:1073A0007C00047200750C7384A30003C000F549CF -:1073B00084A1E001C000194A087184A1E001C00065 -:1073C000194A0120FD04042082A00500C800E949F3 -:1073D00084A10040C000D94984A107007900ED498B -:1073E000F749094AF549094AF549554AF549534AC1 -:1073F00078108C24047084A0100085A00200067010 -:10740000FF8AC000044A492000007800084A78102A -:10741000184CC000044A7C00047084A0100085A0B1 -:1074200002000670FF8AC000144A7800184A7810DB -:10743000184CC000144A7C00077012000871E0006C -:107440001C4A91200060E000204A912000600770F3 -:10745000120007700800047084A00800C000284AC9 -:10746000077012000871038148002D4A0370000064 -:10747000007005A0C000414A047005A0C000414A48 -:107480000C7005A04000434A7800244A49200000BF -:107490007810D738186884A0008040004E4A1B68D6 -:1074A00002007C0078108C2478108C247810B14A6B -:1074B000107214710C709CA0FF00002800A311A290 -:1074C00089A100007810B14A0427582C60AC0863E9 -:1074D000002222A30C6300211BA3002405A340006B -:1074E000784AC800784A128410820A8389A1000071 -:1074F000602B78005F4A602B078A7E00046084A0BE -:1075000008004000844ABAA717497800864ABAA7FB -:107510000F497F003DA7002C86688A6F926C8E6BA6 -:1075200007701200781057497C003887042705A09F -:10753000C000A54A9C6005A04000AE4A60200460DF -:1075400084A00F0080A01D493C20FB8740108C24A4 -:10755000518A4000AD4A087084A0030086A0030051 -:107560007C00512000007C00508A3987042704A049 -:10757000C000C54A006064A0C000BC4A602D046021 -:1075800084A00F0080A02D493C20FB8740108C2454 -:107590007C007E127E0D912000227F0D8468602089 -:1075A00088688C6B906C5780D4AAFF0084A0FF0081 -:1075B0007E00046884A008007F004000E04AB8A074 -:1075C00017497800E24AB8A00F49087EB5A60C001A -:1075D00004698CA1FF0086A107004000F04A8EA13B -:1075E0000F00C000F94A1C6884A040004000004B16 -:1075F000B5A601007800004B1C6884A04000400044 -:10760000004BB5A6010007700400047084A00400BC -:10761000C000024B002405A3C0000D4B7800334B83 -:10762000582C0427046160AC006000A41A70046048 -:1076300001A31E7084A108004000234B106081A0AC -:1076400000002270146081A00000267008620024EF -:1076500002A212700C62002303A216700276077059 -:107660000100602B7810924A7800354B7810184C46 -:10767000C000334B7F1200207C007E127E0D9120D3 -:1076800000227F0D07700400047084A00400C00075 -:10769000414B037008007F1200207C007E127E0D9B -:1076A000912000227F0D49204B4B0770040004708D -:1076B00084A00400C000544B087EB5A60C000469E9 -:1076C0008CA1FF0086A107004000674B8EA10F0030 -:1076D000C000724B1C6884A0400040006E4BB5A6F1 -:1076E00001004068502078007B4B1C6884A020007B -:1076F000C000794BB5A6010028685020602D0460B9 -:10770000BCA00F00B8A71D493C27FB87C0008F4BCA -:107710004800894B78108C249C6865A04000934BEE -:1077200078007C4B7810184CC0008F4B7F120020E3 -:107730007C007E127E007E017E0D912000227F0D56 -:107740007F037F04087EB5A60C0004698CA1FF00AE -:1077500086A107004000AD4B8EA10F00C000B64BC4 -:107760001C6884A040004000BD4BB5A60100780015 -:10777000BD4B1C6884A040004000BD4BB5A6010075 -:107780004920964B7E0104698CA1FF0086A1070069 -:107790004000CB4B8EA10F00C000CE4B406878005C -:1077A000CF4B28687F0155A04000154C702D602EEE -:1077B0000470BCA00F00B8A71D493C27FB87C00080 -:1077C000E94B4800E24B78108C249C7075A0602037 -:1077D0004000154C7800D54B042768AE086822A4F9 -:1077E0000C681BA34800024C518AC000F64B78106D -:1077F0008C243887042705A0C000EA4B9C7075A034 -:1078000060204000154C7800D54B228420841A83D8 -:1078100099A300000869002422A10C6900231BA180 -:10782000C800114C78108C24712020007800004B87 -:107830007F1200207C00087084A0030086A0030053 -:107840004000404C042708AC04211A700881042130 -:107850001E700881042112700881042116700460D2 -:1078600084A008004000374C088104212270088160 -:10787000042126700276047084A0100085A0010007 -:1078800006707810924A7C007E127E007E0D912058 -:1078900000224920414C7F0D7F08087184A103001C -:1078A000C0006B4C7E0104698CA1FF0086A107001B -:1078B00040005B4C8EA10F00C0005E4C4068780019 -:1078C0005F4C28687F0105A04000794C78009E48F5 -:1078D00020006B4C7810554A7800794CA000724C0F -:1078E00008717810CE4978004A4C07701000A0004B -:1078F000744C08717810CE49087086A00800C0004A -:107900004A4C007005A0C0004A4C0370000049209A -:1079100000007F1200207C007E127E147E137E15F4 -:107920007E0C7E0D912000227F0D4920894C80AD78 -:107930001100A020992031000C7084A0FF002A685B -:107940000770080007700200037001004000A84C97 -:107950000080AC80A55307700400047084A004006C -:10796000C000AA4C7F0C49200000037000007F1566 -:107970007F137F147F1200207C00912000609120F3 -:107980000080CC7805A04000D14C9479D07006A13D -:10799000C000D14C047805A04000D14C077800000D -:1079A0006800D14C91208040207801802278C0006E -:1079B0002C4D2478227869204052006884A007006A -:1079C0004000EF4C86A002004000EF4C34680DA050 -:1079D0004000EF4C042105A04000EF4C01800A203C -:1079E0004000D44D487805A04000FD4C01804A7805 -:1079F000C000FD4C0920020144680A2078106F2263 -:107A0000906805A04000094D01809268C000094DB2 -:107A10006F6800007368010061200055A920000113 -:107A200009200200346005A040001F4D018036602F -:107A3000C0001F4D106005A040001F4D7E01781052 -:107A40006F227F01E0AC10007000254D78000F4DD3 -:107A5000098140002C4DA920000178000F4D7810BD -:107A6000394D78105E4D0920515204210920020140 -:107A70000A20912001807C00347801803678C00093 -:107A80005D4D3878367891200080447805A0C0009C -:107A9000484D012001010180467880A000754020FA -:107AA000042065A040005D4D246005A04000594DB4 -:107AB0000180266040008D4D0060402C78004E4DC6 -:107AC0007C00287801802A78C0008C4D2C782A7898 -:107AD000307805A0C0006B4D012000020180327893 -:107AE000038003800380038090A0005598A20200C9 -:107AF000042384A0080040008C4D90A209000422B9 -:107B000005A04000844D01801220C0008C4D04234C -:107B100084A0F7FF85A080001A2078106F227C00D7 -:107B200069204052006805A04000974D486806ACA7 -:107B30004000D44D1B600600B46084A0003F1E606E -:107B4000206084A0FF0085A06000226000604220C9 -:107B50001467826F7810C519186805A04000AF4DF2 -:107B600001801A68086884A0EFFF0A681068018025 -:107B7000D000B94D78108C2412682F60000033605B -:107B80000000682C7810DC1C69204052447984A1E4 -:107B90000001012006006E68C000CF4D86690120FB -:107BA00004006E6878106A22912001807C006920B0 -:107BB000000109204052042184A007004000304EFB -:107BC00086A00700C000EA4D7E0D092052526C21AC -:107BD00078101C3B7F0D7800304E092052526421F2 -:107BE000781037241B600600586884A0003F1E6090 -:107BF000206084A0FF0085A0480022602F60000064 -:107C000033600000306884A040004000244E4B6880 -:107C10000400A9201400486884A004004000114E0C -:107C20007000114E7800084E4B680900A92014001E -:107C3000486884A0010040001E4E70001E4E78006F -:107C4000154EA920FA007000244E7800204E0868D6 -:107C500084A0FDFF0A681B68480009205B520B20C6 -:107C600007004C784A78912001807C0079200052EE -:107C700078105E4E7810424E7810504E33780000E7 -:107C8000477800004B7800007C0019200300112089 -:107C90004652042286A03C0040004D4E19200200AE -:107CA0002A7B2E7B7C0019203900112046520422A9 -:107CB00086A03C0040005B4E19202700367B3A7BB3 -:107CC0007C001920713911204652042286A03C0004 -:107CD0004000694E19202626227B267B3F78000033 -:107CE00043780A007C0020002B00000020000000E8 -:107CF0002000000020000000200000002000000004 -:107D000020000000200000002000000020000000F3 -:107D100020000000200000002000000020000000E3 -:107D200020000000200000002000000014001400CB -:107D300049981400140014001400140014001400D6 -:107D400080000F00000001020406080C20212240E0 -:107D500080F818000B3001A2140000A2140000A249 -:107D6000140200006C0002001400CD989E009300E5 -:107D700002A2388806383988C32064088598C1284B -:107D8000AE9C03A20C30462861816A840083561899 -:107D90003A886598F228919C58980C30E128919C7B -:107DA000022806A2C3642E2807A2A064E06DA06783 -:107DB000C06F14183B882478C16864783E8879982D -:107DC000768577866B20C128AE9C44200321A220B3 -:107DD0008120659809A201298D98140005A200A3AD -:107DE00072189A873C88E21F01C60AA26E850407B2 -:107DF000919C140004A200A30930E21964F86E8576 -:107E00003F88E608919881F88C9801C81400C1F861 -:107E10001600B285F080329502FBE21D1400328517 -:107E200041F21400E21DA884A0D7E61F140008A2A6 -:107E300043600880C11D1600008360812A8441F0E0 -:107E40000830A884D6114270DD201100D520228888 -:107E50001600008047281110C098008000A002285A -:107E60001110C69865983E281110CA980BA21700E9 -:107E70000C3000A3E21D81DB14001002D79814001F -:107E8000E0263A8702FBF219E21F14000DA2063821 -:107E90001002B39C040700006C0002004F9814000D -:107EA0009E00A0001700FF600C30208711A2D09C1C -:107EB0007287378801217A98D210E278D39C59983A -:107EC00084D9E2F0A1F0CD981400318866D13088D1 -:107ED0000F80019420B502C820887A9801237A98EF -:107EE000D210E478D39C21882088599823F142F15C -:107EF00001F1C698D210F670328803820C879ED9A1 -:107F000001601400456814021BA2D09C0120C59892 -:107F10000182521884D163D1348801808D98273032 -:107F2000A884561A3388140018A28169BC9C26695B -:107F30000269341A9998141A2170140000A341613F -:107F40006469108092852680B984E4692380E116F3 -:107F50000180F110466913A2621413A20080E11699 -:107F6000B598696914A2C2610280E1140480E11627 -:107F700001010A302788140017A2BC9C140000A33A -:107F800081812A84A884E61C2C88160012A2D09C29 -:107F9000D210E4700400078024941ACCD39CC598B6 -:107FA00027880A3013000080A4841600C2111E2105 -:107FB0000E871DA214008E8716001CA23510919802 -:107FC00010A200A0108092853B8544D02280073803 -:107FD000BB84EA9821800738B9840C307E812B87D6 -:107FE00072879198000020002B0000002000000004 -:107FF0002000000020000000200000002000000001 -:1080000020000000200000002000000020000000F0 -:1080100020000000200000002000000020000000E0 -:1080200020000000200000002000000014001400C8 -:10803000499814001400E298CD981400140014001C -:1080400080003701000001020406080C20212240B4 -:1080500080F818000B3001A2140000A2140000A246 -:10806000140202A2388806383988C32064082FA871 -:10807000C128AE9C03A20C30462861816A8400832B -:1080800056183A8804A8F228919CF4A80C30E128EC -:10809000919C022806A2C3642E2807A2A064E06D6A -:1080A000A067C06F14183B882478C16864783E8844 -:1080B00002A8768577866B20C128AE9C44200321D8 -:1080C000A2208120E4A809A2012909A8140005A280 -:1080D00000A372189A873C88E21F01C60AA26E8527 -:1080E0000407919C140004A200A30930E21964F86B -:1080F0006E853F88E608F7A881F8F0A801C814004B -:10810000C1F81600B285F080329502FBE21D140022 -:10811000328541F21400E21DA884A0D7E61F1400A6 -:1081200008A243600880C11D1600008360812A8474 -:1081300041F00830A884D6114270DD201100D5200E -:1081400022881600008047281110FCA8008000A09B -:1081500002281110FDA89BA83E281110FDA80BA213 -:1081600017000C3000A3E21D81DB1400100201A8EF -:108170001400E0263A8702FBF219E21F14000DA258 -:1081800006381002B39C04071700FF600C302087EC -:1081900011A2639D72873788012121A8D210E2784D -:1081A000669DFCA884D9E2F0A1F06CA81400318887 -:1081B00066D130880F80019420B502C820880FA8AE -:1081C00001230DA8D210E478669D21882088E6A8B6 -:1081D00023F142F101F14FA8D210F67032880382E8 -:1081E0000C879ED901601400456814021BA2639D90 -:1081F000012040A80182521884D163D134880180C3 -:1082000001A82730A884561A3388140018A281695F -:108210004F9D26690269341A01A8141A21701400AE -:1082200000A341616469108092852680B984E46965 -:108230002380E1160180F110466913A2621413A293 -:108240000080E11607A8696914A2C2610280E114E6 -:108250000480E11601010A302788140017A24F9DFF -:10826000140000A381812A84A884E61C2C881600AF -:1082700012A2639DD210E4700400078024941ACCEB -:10828000669DF8A827880A3013000080A484160091 -:10829000C2111E210E871DA214008E8716001CA27B -:1082A0003510B4A810A207380C307E812B87728756 -:0682B000ADA800000C0D5A -:00000001FF -/************************************************************************** - * QLOGIC LINUX SOFTWARE - * - * Copyright (C) 2004 QLogic Corporation - * (www.qlogic.com) - * - *************************************************************************/ - -/************************************************************************ - * * - * --- ISP1040 Initiator/Target Firmware --- * - * 32 LUN Support * - * * - ************************************************************************/ - -/* - * Firmware Version 7.65.06 (14:38 Jan 07, 2002) - */ diff --git a/firmware/qlogic/12160.bin.ihex b/firmware/qlogic/12160.bin.ihex deleted file mode 100644 index dc800ecdaf3a..000000000000 --- a/firmware/qlogic/12160.bin.ihex +++ /dev/null @@ -1,1771 +0,0 @@ -:100000000A042A000010040841100000C93600004C -:100010004320504F525947495448312039392C31E7 -:1000200039313239312C39392C3339313439512085 -:100030004F4C494720434F435052524F54414F4930 -:10004000004E492050533231363146207269776D67 -:10005000726120655620726569736E6F31202E3093 -:1000600034302020432073756F74656D20726F4E9D -:10007000202E303050206F72756474634E202E6FC6 -:100080002020303020200024C920FF907120000261 -:10009000A070A2700120FF010420FCD0201171206B -:1000A0000001A070A270C1202000892021127120BF -:1000B0001000C3700400C7705349CB702050CF703C -:1000C0002020D3700A000120FD040420D6700920EE -:1000D000FFFE30212821A2A1004724842484248407 -:1000E00024842484248492A100910920000001200A -:1000F00032000C08051E182279200047A02F082482 -:1001000011200000A9204000A4420981D81D092027 -:1001100000FF003402A118021001A820A4421B789D -:1001200064001478CDC0D5C0167871200002D600C6 -:10013000692040470C085C460120FF010420FCD0E8 -:10014000301169208047712000010C085C4614784A -:10015000D4C01678DE00CA7EC27CC67B67780000F9 -:1001600000788DC0027831203000AF78010123780B -:1001700002002778020009200200692040471B681E -:100180000300236807002768FA002B6808002F681F -:10019000280037680600336808003B6800000981C2 -:1001A0000005CF680A00BF68C04779200047D368C0 -:1001B0002D76C368C04CC768C04BCB68C08CA7689D -:1001C000448FAB68498FAF68448FB368448FA3688E -:1001D00001000120FF010420FCD0C81169208047E4 -:1001E0007008CF680A00BF68C049D3683978C3680F -:1001F000C06CC768404CCB68D08DA768498FAB688E -:100200004E8FAF68498FB368498FA3680100E6003D -:100210006920C04B71200002EC70E4D0192009184D -:1002200021200900201119200C1821200C000C0895 -:10023000751D0120FF010420FCD088116920404C6D -:1002400071200001EC70E4D0192009182120090068 -:10025000201119200C1821200C000C08751DEE002F -:10026000112002006920C04C09200200A9200001D1 -:10027000376800000B684000C87B86A3FFFE28118A -:10028000176800011F6864002000176864001F6879 -:100290000200E8AD1000041F35110981381D01204E -:1002A000FF010420FCD02811118218016920C06CC4 -:1002B000D8080C08F6220C083D400C088C1B0C08D2 -:1002C000154691200022792000477120500091208E -:1002D00000247920004771202000912000267920F9 -:1002E00000027120404791200028792000017120F0 -:1002F00080479120002079200047712010000032B3 -:1003000085A03D30902071201000C37000000410C3 -:100310008C11C07086A0020010110C08BA1339208D -:1003200000000C08AB12AC7805A08011040E9A11E5 -:100330006C7865A010010C08A1200C08261E040E84 -:10034000AF116C7865A010010C08A120040EAF114C -:10035000092047471120874704210C2205A11001DD -:100360000C089B1C71204047A07005A0E8014C744C -:1003700085A40000C8017920000291200080D0727D -:100380008CA23D3090210C084C27912000809120B8 -:100390003D30040ED111792000476C7865A0200112 -:1003A000712010000C08A120041DD91179200047EC -:1003B000712010000C08294471208047A07005A00E -:1003C00088014C7025A070017920000191200080E7 -:1003D000D0728CA23D3090210C084C2791200080D7 -:1003E00091203D307920004771201000040EFA1151 -:1003F0006C7865A010010C08A120041D8E110C085A -:10040000294404088E11003C84A0070002000C124D -:100410000C120E120E1213121312181218120C08CC -:100420007525912000240C08D5400500912000225C -:100430000C08D5400500912000220C08D5409120E1 -:1004400000240C08D540050041124112421242120C -:100450004D124D124D124D1256125612611261126A -:100460004D124D124D124D12701270127012701208 -:10047000701270127012701270127012701270126C -:100480007012701270127012F80C0600060126012C -:10049000912000280C0892252E010E010E000D005F -:1004A0000600060126010C0800122E010E010E00A6 -:1004B0000D00060006012601912000260C08922559 -:1004C0002E010E010E000D000600060126019120EE -:1004D00000260C089225912000280C0892252E0158 -:1004E0000E010E000D00060006012601D600E600F2 -:1004F000F600792000477120000269204047003D46 -:100500008CD03001EC7084A0001CE2780C085C46B2 -:10051000003D84D050016920804771200001EC70BB -:1005200084A0001CE6780C085C460C082625FE001A -:10053000EE00DE002E010E010E000D0008700B8093 -:100540004012077002008CA0E00120119CD008012D -:1005500087089708C37002400408BD13040E1E13D9 -:1005600061200000186084D004191E13287805A0AB -:10057000201104001F1304081E13FCD030010600D4 -:100580000C08291B0E005001280006000C081E1B39 -:100590000E002001012007400408BC131079FCD094 -:1005A0002811612040479CC1FCC720006120804782 -:1005B0009DC1FDC7606005A004191E1312797E60FD -:1005C0002878FCC086A018002011C6000C08261947 -:1005D000CE002B780000786065A0E001C6009C602A -:1005E0000C08F31BCE009F6000000C08601A092065 -:1005F00018008760030110780600FF841011FF8542 -:100600001001C5C012780C08341B0E001278981126 -:100610000C087F1B10789CD01811612040472000E7 -:10062000612080479CC012787B600000D060C4D0FD -:100630003001C4C0D260012005400408BC13040886 -:10064000BA13050006A0C270C670CA70CE70DA7008 -:10065000C0703DA08AA04000041A6C130200BA13B7 -:100660000814D6133C1470147014CE13781A7A142C -:10067000C813DA13DB13DC13DD137C1AC8138714D9 -:10068000DB144119721ADE13C817FE1730187618DA -:1006900085179217A517B717BF15C8130D1518158D -:1006A000261534154B1559155C156E157C158615D8 -:1006B000A515B115C813C813C813C813CC15DD157B -:1006C000F7152B165416661669169316CC16DE16F9 -:1006D00053176317C813C813C813C813751700211D -:1006E0008AA04000041AC8130200C813C813C81314 -:1006F000C813C8139E1AA41AC813C813C813A81A7B -:10070000E81AC813C813C813C81303146B1482144F -:10071000D6143C19C813C8130B19C813EC1A901A35 -:100720009A1AC813C813C813C813C813C813C81318 -:10073000C813C813C813C813C813C813C813C813E1 -:10074000C813C813C813C813C813C813C813C813D1 -:10075000C813C813C813C813C813C813C813C813C1 -:10076000C813C813C813C813C813CA72C6710120AE -:1007700006402800CE73CA72C67101200040C270C4 -:10078000040EBD13612000001B6001009120005089 -:10079000912080400500C3700140900CC37006405A -:1007A000780C99204100A1204100A9200500A35305 -:1007B000200CC470C37004000708F808F008E808AB -:1007C000E00891200080C3700400C7705349CB70CB -:1007D0002050CF702020D3700A0001200400D67072 -:1007E000792000001B7801003120300059200010D2 -:1007F00029201A045120450461204704C12020000B -:10080000912000509120804004081804D875DC74B1 -:10081000DA75DE741800292000002025D071C87216 -:10082000CC73C470A02099203000037001000770C1 -:1008300006001A731E722274267521204000FF8163 -:100840000409BA1382A140001012202106A008203A -:100850000384127007700400077001000870FCD058 -:10086000E80D0770020084A0E0012001C37002407F -:100870000408BD13A824A553100C0408BA1329209A -:1008800000002025D071C872CC73C4709820A120BC -:10089000300003700000077006001A731E72227485 -:1008A00026752120400007700600FF810409BA1355 -:1008B00082A140001012202106A00820038412709B -:1008C000A824A653077001000870FCD0E80D84A08E -:1008D000E001480DC37002400408BD13D875DC74F4 -:1008E000DA75DE747808C471C87014219EA70400FC -:1008F00008110A20CA720408B913C7700A00CB7025 -:100900000400CF702A000408BA13D875DC76DA75B3 -:10091000DE761800292000003025C470C872CC7320 -:10092000D074C670CA72CE73D27405A0E8050AA44A -:10093000080140120180727884A000FC3801AC7874 -:1009400085C0AE78012005400408BC137E7B7A7A0E -:10095000867E827D767C8CA400FF700107840480F3 -:1009600004800C810C810F8118A191A20000B1A616 -:10097000000081A50000500007840480048018A3B3 -:1009800091A20000B1A6000081A500001A731E729A -:100990002276267005A61801107AC5C2127AAC78A4 -:1009A00084A0FCFFAE781800AC7885C0AE7804084F -:1009B000BA13D875DC76DA75DE76180029200000C7 -:1009C0003025C470C872CC73D474C670CA72CE732A -:1009D000D67405A000050AA41001041ABC130180F6 -:1009E000927884A000FC3801AC78C5C0AE780120B4 -:1009F00005400408BC139A7A9E7BA27DA67E002641 -:100A000005A51801107AC5C2127A967CAC7884A02C -:100A1000FFFCAE781800AC78C5C0AE780408BA13F5 -:100A2000092000006C7865A0180108810060D80CCE -:100A3000C47A0408B813092048470C210120FF019B -:100A40000420FCD00419B91311208847142204088B -:100A5000B813092049470C210120FF010420FCD0D4 -:100A60000419B9131120894714220408B81361200E -:100A7000404728612C621482148214820120FF01F5 -:100A80000420FCD04811612080472863DA732C636E -:100A90001C831C831C83DE730408B81309204C4795 -:100AA0000C210120FF010420FCD00419B9131120EE -:100AB0008C4714220408B81318790408B9130920C4 -:100AC00002020C218CA1300F0120FF010420FCD078 -:100AD0000419B91311200201142294A2300F040842 -:100AE000B81309204D470C210120FF010420FCD040 -:100AF0000419B91311208D4714220408B813207962 -:100B00000120FF010420FCD00419B913247A040841 -:100B1000B8131120404CC471FCD110111120C04BEE -:100B2000078184A00F0003800380038068A2006A0D -:100B3000086B1C6CDA74FCD1181121203B021000E8 -:100B400021203B012424A4A4001CDE740408B71354 -:100B5000C4770C089A1B912000801C6B146A9120AA -:100B6000018008270408B71361204047186101205D -:100B7000FF010420FCD00419B913612080471862DA -:100B80000408B813C4770C089A1B912000800869E8 -:100B9000186A106BDA77912001800408B713C471CA -:100BA000102194A20F0082A21000041AB3130C08A3 -:100BB000B42384A30040100195A220000408B713B9 -:100BC000C4710021BCC082A01000041AB313BCD1B0 -:100BD00020111120484704222000112088470422B8 -:100BE000BDC006000021BCC012200C0858231E0006 -:100BF0000408B913C471212049470424C670192080 -:100C000000003000C871212089470424CA70FDC348 -:100C100011202316A9200800042206A13801108201 -:100C2000041F0916C471C8720408B21392A22316D5 -:100C3000260022211E000C086A230120FF01042047 -:100C4000FCD01011FCD3F0090408BA13E803FA0031 -:100C5000F401EE020400010002000300612040479D -:100C600028612C62148214821482C4702A60C870B5 -:100C70000380038003802E600120FF010420FCD04C -:100C8000A011260016006120804728612C62148282 -:100C900014821482D8702A60DC7003800380038081 -:100CA0002E60DA71DE721E002E000408B813612077 -:100CB00040473061C47032600120FF010420FCD045 -:100CC0000419B913612080473062C870326004088B -:100CD000B81318790408B913C47184A1CFF048017E -:100CE0000120FF010420FCD00419B313C8720408CA -:100CF000B213192000000C08A62336000120FF01C2 -:100D00000420FCD018011E000408B913C87184A186 -:100D1000CFF028010E001021C4710408B213FDC3E6 -:100D20000C08A62310231E000408B813C47182A166 -:100D3000100048020120FF010420FCD00419B31365 -:100D4000C8720408B21311204D4704220600048122 -:100D5000081208811221192000000C089323012099 -:100D6000FF010420FCD018011E000408B913C8714B -:100D700082A11000280206001021C4710408B213D9 -:100D800011208D47042206000481081208811221D7 -:100D9000FDC30C0893232E001E000408B813C47171 -:100DA000C87284A1FDFF0419B21384A2FDFF0419C7 -:100DB000B2130021207922780022247A26780408B0 -:100DC000B8131120404CC471FCD110111120C04B3C -:100DD000078184A00F0003800380038068A2C8728B -:100DE000CC73D874C6710068CA70CE73DA7491205F -:100DF0000080026AACD2181121200000900084A467 -:100E0000FF0082A00200041A4F173F84BCA7FF0016 -:100E1000400186A7020004194F1784A4FF000409AB -:100E20004F1761200002FCD1100161200001292030 -:100E30000900312062003F84BCA7FF003001078316 -:100E400084A0FF0010113DA738114120190084A390 -:100E5000FF0082A01A001002A4A4FF00078384A050 -:100E6000FF00880142A8F00286A0100020119CA378 -:100E7000FF009DA3000FBCA3FF00002502A7900266 -:100E8000002602A7781239203A00046805A70668F0 -:100E90000A6B0C6BCE731C68DA701E6C912001809B -:100EA0000408BA13912001800408B413C4770C0815 -:100EB0009A1B91200080146A1C6B91200180C870DD -:100EC0001668CC701E6808270408B713C470612028 -:100ED000404718611A600120FF010420FCD004196A -:100EE000B913C8706120804718621A600408B813EB -:100EF000C471C872CC7382A11000041AB3130C0819 -:100F0000D82384A30040100195A220000408B71341 -:100F1000C4770C089A1B91200080086A8DC20A6A67 -:100F20009120018008270408B813C4770C089A1B85 -:100F300091200080086A94A2F9FF0A6A046805A05B -:100F400010010C08D5229120018008270408B8134D -:100F5000C4770C089A1B91200080086A95C20A6A1F -:100F6000046805A010010C08D522912001800827F3 -:100F70000408B813C477412001004920050051201E -:100F80002000912000800C08B21B912001800827CE -:100F9000086A0408B813C477FCD728010C08291B79 -:100FA00038010408BC130C081E1B10010408BC13F4 -:100FB000C873CC72C677CA73CE720C082A1CE811AB -:100FC000186805A0A001082776000C08F7237E000A -:100FD000701101201500FCD718116120404718003E -:100FE000FDC0612080472A78912001800500912072 -:100FF0000180012005400408BC13912001800408F1 -:10100000BA13C477FCD728010C08291B380104083F -:10101000BC130C081E1B10010408BC13C67741202A -:1010200021004920050051202000912000800C085B -:10103000B21B09201600FCD7181161204047180088 -:1010400061208047FDC1636003007B600000726720 -:101050007F600F002A79D061C4C1D2610C08D5220B -:10106000912001800500C877CA77C477C677FCD77E -:1010700028010C08291B38010408BC130C081E1B8E -:1010800010010408BC13BCA700FF912000800920B8 -:101090001700FCD7181161204047180061208047D5 -:1010A000FDC17B6000006360020072677F600F001B -:1010B0002A79D061C4C1D2610C08D5229120018067 -:1010C000412021004920050051201000912000807E -:1010D000C87005A01801D060FDC0D2600C08B21B1A -:1010E000C8703668388784A71F00C01D9120018012 -:1010F000050019200000C87284D228010C08291BA1 -:1011000038010408BC130C081E1B10010408BC1392 -:10111000C872CA72AC7884A0030018153920000088 -:1011200084D20801FDC7412021004920040051203C -:1011300008000C089A1B912000800868D4C00DA8F4 -:101140000A693768000091200180388784A71F0052 -:10115000801DBCA700FF3F8738873F8784A7000F0B -:10116000401D91200080C8726920000184D21011B6 -:1011700069200002086884A0FDFF0A683068B4D0C6 -:10118000B0014B680400A9201400486894D01001F5 -:10119000041FC2184B680900A9201400486884D0B5 -:1011A0001001041FCB18A920FA00041FD2187920BF -:1011B000004709201800C87284D2181161204047E6 -:1011C000180061208047FDC17B6000002A796360C0 -:1011D00001007F600F00A3600000A460AE60B260F9 -:1011E000D060B4D06001B4C0D260C600B46065A065 -:1011F0000860D4C00A60186001801A60CE00D06018 -:1012000084A0FF7ED260AC788DC0AE78FF830801E9 -:1012100005001B685400912001800500CC730C0868 -:101220007818EC69486A85A100184A6885A14000D1 -:10123000EE68CC7321200400A920FF09041F1B19AC -:101240002184D01D1983B01DEE694A6A9120018066 -:101250000500FCD71811692040471000692080471D -:10126000C471C6711669FF811011A3680100AC78C2 -:101270008CC0AE7884D010110C087A1C0500D8758B -:10128000DC74DA75DE7410002EA02025C471C873DA -:10129000CC72C671CA73CE7279200047DE7DDA7CCB -:1012A000D67BD27A0C08771B04095C1AA9200500AA -:1012B000A120144791200080A141912001800920A4 -:1012C00040000C08411D20010C087F1B04085C1A1B -:1012D00004608CA0FF008EA10900201106000C08FC -:1012E00086200E0084A000FF078009800409F11900 -:1012F000C600682C0C08771BA805002C9E68098185 -:10130000C01D9F600000CE00C600DC7DD87CD47B71 -:10131000D07A90A2400099A30000A1A40000A9A542 -:101320000000DE7DDA7CD67BD27A682C9C6865A0D2 -:101330000409F019092040000C08411DA0150460A3 -:1013400084A0FF0086A002005001046084A0FF007A -:1013500086A00A00381116000C0883201E00002DFC -:1013600002609808CE00C6009C600C08F31BCE00FB -:101370009F6000000C08601A092018000860CDC0AA -:101380000A600460866010780600FF841011FF85F3 -:101390001001C5C012780C08341B0E0012780C081E -:1013A0007F1B04085C1ACE00C6009C600C08F31B6F -:1013B000CE009F6000000C08601A092018008760AA -:1013C00003011B60030010780600FF841011FF85E5 -:1013D0001001C5C012780C08341B0E0012780C08DE -:1013E0007F1B04085C1ACE001461FCD120010C089C -:1013F000291BF00118000C081E1BD0010C08601AF4 -:1014000009201800876003011B6021001078060086 -:10141000FF841011FF851001C5C012780C08341B21 -:101420000E0012780C087F1B012007400408BC1333 -:1014300004618CA1FF0086A1050018111C60BDC0CD -:101440001E60C474C873CC72146091200080E600E2 -:1014500009201200FCD0181171204047180071209B -:101460008047FDC12A7963700500D071C4C1D27173 -:1014700066736A726E74727077700000002C7A70F6 -:101480002EA030251C6184A1600010010C08E93FEA -:10149000EE009665A6659A66AA66AF600000B36026 -:1014A0000000146723600000246096A00100101162 -:1014B000008026600C08D522912001800500C370B1 -:1014C00005400408BD13A920050099201447912068 -:1014D00000800A5391200180002110A299A30000EE -:1014E000A1A40000A9A500000500C471C7700000F8 -:1014F0001E790408BA13C471C671682110006920EE -:1015000000100C6916A0042D10A2688D0981D81D49 -:1015100085A200001811C37000401000C370034082 -:10152000CA700408BD136479C671C47182A1030036 -:10153000041AB31366790408BA136479C6710408EF -:10154000BA130079C671C47102790408BA1300791C -:10155000C6710408BA13C470112000008CA00D00DD -:1015600060010C81300210820C810C81100210820B -:101570000C81FF810419B41310820E7A8CD23805C5 -:101580001079CDC11279092021001920030084D2DD -:10159000C00108811920410011204E8F122319200B -:1015A00042001082122319204300108212231920B6 -:1015B000460010821223192047001082122319209E -:1015C00006001120538F12211120738F12230479EA -:1015D00006780408B9130478C6700408BA13C471F5 -:1015E000FCD118111120C04B10001120404C078174 -:1015F00084A00F0003800380038068A211200000F4 -:101600001468FCD0100195A20002B4D0100195A27C -:1016100001000C6B0068DA700408B7131478F4D07A -:10162000300101200740DB70000005A04800FCD01D -:10163000300101200740DB70010005A0080006A072 -:1016400005001478F4D0300101200740DB70000061 -:1016500005A0080006A005001478FCD03001012088 -:101660000740DB70010005A0080006A0050012710C -:101670001A721E731078C4D010012274267580ACC3 -:10168000010008810C81A9819880A120300003709D -:1016900000008460A220A65307700100747984A121 -:1016A00000FF40010F810C810C81048004800780C1 -:1016B00000A118000781048004807C7908A1787A51 -:1016C00006A011A2107DC4D52001847B19A3807CC3 -:1016D00021A40870FCD0E80D03700100077006001B -:1016E0001A711E72107DC4D510012273267484A055 -:1016F000E0010500487865A02001042C4A786320A9 -:1017000000000500F6007920004748786220002C90 -:1017100005A010110C0875254A78FE00050011205F -:1017200000914A7AC47B1983280180A232001220DA -:101730001020C80C13200000050016002600FCD75E -:1017400018111120C04C10001120C06C84A7000F8C -:101750000B8084A71F002001038003800380038087 -:1017600005A168A22E001E000500390C00292A6878 -:10177000002A2E68086884A0EFF90DA80A69E6001F -:10178000FCD728110920524771204047200009202A -:101790009247712080470C21046805A0480116A1DA -:1017A000381160200060066816000B200000180049 -:1017B000092000001600046865A078010060066832 -:1017C00021040C08B21D1068087909810A7901808A -:1017D0001268881D1079A5C112791E000269066978 -:1017E000002D60200C08BF26EE00050065A06001FA -:1017F00008209C6005A0280162209F60000065A071 -:10180000C00C48784A7962200500076003018F60A8 -:101810000000A9201C0080AC0500A02001200000D1 -:10182000A44028681A602C6822600500E600FCD7F6 -:101830002811712040473120C04720007120804787 -:101840003120C0494C708CA00002281108A60A2D36 -:1018500000804E7006A0EE000500F600FCD71811BF -:10186000792040471000792080470C089A1B91206E -:10187000008004680A7865A0F0053000002C0A7822 -:101880006020006065A0B805106006A3B81D0C605C -:1018900006A2A01D282C487806AC0811480404684C -:1018A00006AC401100606020066805A018110368AE -:1018B00000004800006408786020026486A40000EC -:1018C0001011002C026860250C08021C1B6005002A -:1018D00023602000FE000C08B21DF6000879098183 -:1018E0000A7910680180126818111078A5C0127862 -:1018F0000120FFFF05A0FE0005007600002739202B -:101900000000FCD00801FDC741202100492004004F -:1019100051200800912000800C08B21B388784A752 -:101920001F00D01DBCA700FF3F8738873F8784A7D3 -:10193000000F901D912001807E0005006C78092029 -:10194000748F0C210DA1180165A00408A12061204D -:101950000000186084D0B81110788CD030018CC091 -:101960001278FCC76920404728008DC01278692092 -:101970008047FDC7912000801C681F6800009120EF -:10198000018005A0081105008CA0F0FF10010C08D3 -:1019900075250200D71CDA1CE01CE41CD81CE81CCE -:1019A000D81CD81CD81CEE1C181D1B1D201D291D61 -:1019B000D81CD81C05000C0875250C087A1C0120C1 -:1019C00001800408321D012003800408321D01201B -:1019D00004800408321D0C087A1C012006800408CB -:1019E000321D11200A8091200080FCD71811692037 -:1019F00040471000692080473820006886A000001A -:101A000020011E6F91200180050026007068BCA097 -:101A100000FF4120210049200400512010000C0843 -:101A2000B21B388784A71F00D01D912001800E00B3 -:101A30007069C671D00001200C80B8000C087A1CB7 -:101A400001200D809000FCD71001E4780800E078B8 -:101A5000C67001200E804800FCD71001EC78080009 -:101A6000E878C67001200F800000C270FCD7181102 -:101A7000DB7000001000DB700100612000001B60C3 -:101A8000010091208040050080AC0100FF81180515 -:101A900099203000A0200C7084A0FF07000118706E -:101AA00006001C70060020700600247006001271EB -:101AB000AC811A721E7322742675037001000770C0 -:101AC000010008700B80E81E077002008CA0E00186 -:101AD0001011A55306A003700000077004000E004B -:101AE00026700E0022700E001E700E001A70050087 -:101AF00011202000092010000A6B0E6C1F680102E3 -:101B0000036820FD076838001A6A002DE8A0080065 -:101B100090A204000981801D0500EC70DCD0201526 -:101B2000292001001478CCD06011EC70E4D0192089 -:101B30000A0C21200A00201119200C0C21200C0075 -:101B40007000EC70E4D0281119200C1821200C0032 -:101B500030001920091821200900ADA500020A6BE8 -:101B60000E6C1E6D07683800050004608660082C46 -:101B700063200000687805A06A791001022C080033 -:101B80006E790500C6006120004787680301082DB3 -:101B90006B200000686005A06A611001022D08003A -:101BA0006E61CE00050091200080042C6E7805A0A7 -:101BB00008116A78912001809C6005A08801C60008 -:101BC000602008209C6005A0380162209F60000012 -:101BD00065A09C6005A0C81D48784A796220CE00A7 -:101BE000487862209F60000085AC000010110C084E -:101BF00075254A780500A920100006A0048086807B -:101C00008E81081200A2041FFC1D86808E810500B3 -:101C10005601A920100005A0B8011AA1A81213822C -:101C20008D8128021AA12012041F0C1E28001AA15F -:101C300008231082041F0C1E0600003284A0FFEF50 -:101C400080200E005E0105000600003285A0001015 -:101C5000B80C747DD07006A50409DA1E10785020E7 -:101C60000C08771B0409DA1E46A070790025008055 -:101C700012A10920400008123000D07206A21801FB -:101C8000408809208000C600127107700100992069 -:101C90003000A920200080AC0100A02061200000BD -:101CA000FF8810010C08771B0870FCD0E80D077046 -:101CB0000200912001808CA0E0013815A553FF8C13 -:101CC0002011FF880409C71E5000002C8E78A9201F -:101CD000200080AC0100A020A5530408C71E46A028 -:101CE00018721C73C4DA10012074247592A240008B -:101CF0009BA30000A3A40000ABA500001A721E73F2 -:101D0000C4DA18012274267506A0077004000409BD -:101D1000C71EFF8C10010C087F1BCE000C087F1B18 -:101D200046A0887800808A7886A00200C0017C7A6C -:101D3000787BC4DA1001847C807D7479078104800B -:101D4000048010A299A30000A1A40000A9A500008E -:101D50001A721E73C4DA8805227426757004146022 -:101D6000FCD018116920404710006920804791205D -:101D700000801F680200FF88200146A08C78602048 -:101D8000700C8B780000AC7885A00300AE789120B1 -:101D900001809800CE008B7800000C085C20046065 -:101DA00084A00F005900FF8830018C786020046007 -:101DB00084A00F0019000408261E05000200EC1E76 -:101DC000071F201FEC1E2D1FFD1EEC1EEC1EEC1E1F -:101DD000051F1E1FEC1EEC1EEC1EEC1EEC1E392017 -:101DE0000004BC7805A7BE78086005A70A600C0847 -:101DF000691F9C60BA789F6000000C0848200500AD -:101E0000BC78C4D00801580C1C60BDC01E603000F6 -:101E10000C088620BC78C4D00801080CBF780000EC -:101E20000460078084A0FF00B278018038010C08AC -:101E3000691F2001BC78C5C0BE7810000408841F4B -:101E400005000C088320BC788CA0000E1011C4D0B3 -:101E5000081128080C08691F10110408841F0500C8 -:101E6000BC78C4D010010408EC1EBF7800001467D1 -:101E700011200100A822186084A0FF0005A088019D -:101E8000BCA700FFA92020008EA001005001BCA724 -:101E9000008011200200A92000018EA0020008018C -:101EA000C0000C089A1B002D912000802B680000B8 -:101EB0002F680000086884A0DEFF0A68E8AD100003 -:101EC00091200180041F511F11821801A9200001D7 -:101ED000580C0C087F1B05009F600000B4786DA0B3 -:101EE000002CB6781011BA7838009E68002D026078 -:101EF000B87806AD08110260B0780180B278301170 -:101F0000BC78C4C0BE78B878602006A00500E600A2 -:101F10002EA03025BA7DB67DAE65B2651C60A2608C -:101F2000482084A9FFE11E6084A9600060010C08BC -:101F3000E93FFF864011FF853011392000080C0869 -:101F40004820040846209665A6659A66AA66146726 -:101F500071208047FCD710117120404784A7000FE3 -:101F60000B8084A71F00200103800380038003806F -:101F700005A1C07168A10027078084A00F0003801D -:101F800003800380C47100A1C26091200080147896 -:101F9000C4D03801FCD71811F4D040111000FCD087 -:101FA0002811086E84D6F001FCD9E011912001803F -:101FB0000C08021C912000800C08B21D91200180A9 -:101FC0001478C4D004094620FCD72011F4D0301175 -:101FD00004084620FCD01011040846201B60210094 -:101FE00004084620246096A001001011008026609D -:101FF000106A146802A268026001912001803920F1 -:1020000000029C60BA789F6000000C084820040819 -:102010004620082CFCD9F001006865A0D801046AAC -:10202000007084A002006801487006A25011046B81 -:1020300060210423026005A0081102696022026188 -:102040009800002D60200C08BF26086E60210262F7 -:10205000066950000068026965A01001026108006D -:1020600006696021036000006021FCD91801B4A654 -:10207000FCFF0A6E1068087D28850A7D00801268C2 -:1020800091200180B4D62801B6A640000A6E0C0843 -:10209000131CEE000500086005A70A60912000806F -:1020A0000C08B21D91200180B87865A028019C60C1 -:1020B000BA789F600000780CB678BA78050070791D -:1020C0007478182884D31801008012A1200200809F -:1020D00012A1781284C37C7A1A72787A1E72C4DADA -:1020E0002001847A2272807A267206A084D30801A5 -:1020F00000807678D2701C7805A0380101801E78A7 -:102100002011040E82209120804005003920982063 -:10211000100039209E20042705A0600100AC682033 -:102120000869106812690A680C69146816690E68F3 -:102130003887880C0500030009000F0015001B00FC -:10214000000015001B000000412000000C78020078 -:102150004A222522A92019213920748F3427107D85 -:10216000C000846086A00301041903211461186073 -:1021700005A12001FF86D81104080321038680A051 -:10218000558F0C6202220080106202220C08D01DC2 -:1021900030868EA60F00040984216C7865A0081D86 -:1021A000087802A62012ACD510113A26050082A6A6 -:1021B0000300041A8421912000806920000018681F -:1021C00084D0F8111120558F0422C6701082042289 -:1021D000CA7084D6301110820422DA701082042270 -:1021E000DE7085A62080C2701B68010091208040AF -:1021F000107884A0CFFF1278912001803B2000004E -:1022000005001078ADC01278040884213A260C0825 -:10221000502204196C226C7865A00419AE2091201C -:102220000080107884A0CFFFFF860801ADC012782F -:102230009120018004086C223920748F3427107D8E -:10224000A000846086A0030104196E211461186047 -:1022500005A12001FF86B81104086E2180A6558FC4 -:102260000C6202220C08D01D30868EA61E000409C6 -:1022700084216C7865A0281D087802A62012ACD5B0 -:1022800010113A26050082A60600041A8421912026 -:10229000008069200000186884D0F8111120558F43 -:1022A00009204E8FA8261C2104221A2008811082A2 -:1022B000041F502185A63080C2701B680100912048 -:1022C0008040107884A0CFFF12789120018006A072 -:1022D0000920758F0A203A2005001078ADC01278C9 -:1022E000B0003A260C08502204196C226C7865A0C4 -:1022F00004191E2191200080107884A0CFFFFF8652 -:102300000801ADC012789120018004086C22912050 -:102310000080077004009479D47002A1280268013B -:10232000907B02A350111000028038113A261078D9 -:10233000ADC0127891200180050084A100FF40010A -:102340000F810C810C8104800480078000A118009B -:102350000781048004809C7A10A21A72987A06A0E1 -:1023600011A21E72C4D43001A47A11A22272A07AE2 -:1023700011A22672A1203000037000000920548FA2 -:102380000A2609819821042184D008013386B0A649 -:102390000200A826A65303861270077001009079E8 -:1023A000947800800AA1081206A02820747984A1DC -:1023B00000FF40010F810C810C81048004800780A4 -:1023C00000A118000781048004807C7908A1787A34 -:1023D00006A011A2C4D42001847B19A3807C21A46F -:1023E0000870FCD0E80D84A0E001D001107D312000 -:1023F000548F3426A8780080AA788CD038110770C2 -:102400000600047094D0E81D04088621692047471F -:102410006B200300AC7885A00003AE7806A04800CE -:102420003020D67591208040967D107DACA5CFFFE1 -:10243000127D91200180AA78077006003A26037069 -:1024400001001A711E72C4D5100122732674050092 -:10245000846086A00301D8111461186005A1B81129 -:1024600069200000186884D090110C60C67010605C -:10247000CA70C37020801B680100912080400C0846 -:10248000D01D040E43226C7865A0101D0500590074 -:1024900030156C7865A0E0191004290000156C78DF -:1024A00065A0D81DE000846086A003016811186053 -:1024B000FCC01A6086A0040038110478A4D0200162 -:1024C0000C08D01D06A005007900181185A0010098 -:1024D0000500B900101141200100107D0500FF88A2 -:1024E0001001912080400500907B9479D47002A166 -:1024F000181185A300000500100202A30500028048 -:10250000050084A100FF40010F810C810C81048033 -:102510000480078000A118000781048004809C7A51 -:10252000987BA47CA07D10A206A019A321A429A5B4 -:1025300009201800286005A01001092040000C089F -:10254000341BD001A8780080AA788CD010151460B4 -:10255000FCD0181169204047100069208047912065 -:1025600000801F680300AB780000AC7885A00003F2 -:10257000AE78912001806800AB7800000C08D01D77 -:102580009079947800800AA1081206A09678D670F7 -:1025900006A071201000912001800500FCD71811C1 -:1025A00009205847100009209847912000800A20F0 -:1025B000F6000920804779200001FCD7201109206E -:1025C000404779200002042186A000008011FCD73A -:1025D000181109204547100009208547042105A04E -:1025E0003011307884A0C00010111B785200FE001A -:1025F000050009200200692000470120FF01042096 -:10260000FCD004194B237120804779200001212040 -:10261000BF494B780F000120FF010420FCD01801B6 -:102620001920373E3000A1202B011920373E84D1DC -:102630001001A1202B02042305A040019A781883E1 -:10264000AC2318839823A6531833A80C9B7800005A -:102650009B782000A9201000AF780000AF782020E0 -:10266000041F29230370000016008CD109200000EC -:102670000801BDC10C086C241E00207084A00F004E -:1026800085A0006306780F7800904378D8005378CF -:1026900090000B78082F52744F70000009814001A0 -:1026A00071204047792000022120BF4704080623FB -:1026B0000C0826250500160011200101BCD11011BF -:1026C000112001028CA10F00042284A0F0FF05A1BB -:1026D00012201E000C086C24050011200101FCD3FF -:1026E000101111200102A92009000B81041F72237F -:1026F0008CA1000E042284A0FFF105A11220050088 -:102700001920020009200101A92005001382041FDD -:10271000832394A2E000042184A01FFF05A20A20C5 -:102720001983180109200102780C0500112001010C -:10273000FCD3101111200102A9200C000B81041FF1 -:102740009B238CA100F0042284A0FF0F05A112207E -:10275000050011200201FCD31011112002020422F5 -:102760009CA0300F84A0CFF005A112200500C60068 -:1027700061200001BCD1101161200002BCC10381A5 -:10278000038080A020009A60AC62AC63CE0005009C -:10279000C60061200001BCD1101161200002BCC143 -:1027A0000381038080A022009A60A46084A0DFFFE0 -:1027B000AE60CE000500C60061200001BCD1101142 -:1027C00061200002BCC10381038080A020009A60C8 -:1027D000A4608CA220001801ACC29DA30040ECC3F1 -:1027E000B4D30811EDC3AE621020A460AE6318200C -:1027F000CE00050091200080C600E600186805A004 -:1028000004095024FCD118016120D08E10006120F1 -:10281000C08D0C0858246005A9200101FCD11801C5 -:102820006120D08D10006120C08CC6000C08582497 -:102830002801CE00608C041F1224A8040E00FCD1D5 -:10284000280182A0D08D71208047200082A0C08CFA -:102850007120404776707271382101200400627047 -:102860007F700F00D071C4C1D2710C08CB22C000A0 -:10287000FCD1181171204047100071208047206062 -:10288000DDC0226072713821002C7A7001200600B0 -:1028900062707F700F00D071C4C1D2710C08CB225E -:1028A000012000001000012001009120018005A0FE -:1028B000EE00CE000500042C05A070016020106021 -:1028C00006A340110C6006A22811146006A1101185 -:1028D00006A020000060800C85A001000500F60025 -:1028E000E60016007920804771200001BCD120113C -:1028F000792040477120000220798CA10F00EC70F4 -:10290000C4D010111E0060000B810B810B810B8164 -:102910000E008DA10008BCD010118DA1000F042164 -:10292000EE00FE000500012001470420ACD0381164 -:10293000E468ACD0200184A006000811090005005D -:102940001460E600360018207120404CFCD01011B5 -:102950007120C04B078084A00F0003800380038098 -:1029600070AE047084A00A0004192325087194A194 -:1029700000FF040923258CA1FF001C7084A000FF28 -:10298000C001047085A03A0006700120090002A170 -:10299000D81601200A0002A1D01601200C0002A1C5 -:1029A000C8161C7084A0FF001E70047084A0DFFF96 -:1029B000067001200A0006A1A80101200C0006A152 -:1029C000A0010120120006A198010120140006A117 -:1029D00090010120190006A188010120320006A102 -:1029E0008001D80009200C00D00009201200B80096 -:1029F00009201400A00009201900880009202000E7 -:102A0000700009203F00580009200A0040000920FA -:102A10000C002800092019001000112000000021DE -:102A200005A20A70047085A00A0006707120004794 -:102A30000470BCD05801FCD32011EA7371204047C8 -:102A40001800EE73712080471F700D003E00EE00ED -:102A500005000120FF010420FCD0D0110120FD045D -:102A6000042082A00500A01271200002EC718CA14C -:102A7000001C0F810C810C8179200001EC7884A06E -:102A8000001C07800480048005A18AA007000802BA -:102A90000500020074255B2574255B254E256825FD -:102AA0004E25087084A0FFC385A000300A70087806 -:102AB00084A0FFC385A000300A780500087084A0B8 -:102AC000FFC385A000200A70087884A0FFC385A0FA -:102AD00000200A780500087084A0FFC385A0000CC0 -:102AE0000A70087884A0FFC385A0000C0A7805004E -:102AF000040E7525912000807120000006001870DA -:102B000084D0E81D0E0071201000CA700E00C6703F -:102B1000C3700280DB70040ADF702A00712000009D -:102B20001B70010091208040F80C3C7F587E307C67 -:102B3000387DA0788A708E75927496769A7794A56F -:102B40003F00F4D43801BCD7281184A77D000419B4 -:102B50009C3C71089CA40F0082A304002003A6A340 -:102B6000070030191824078584A00F0002006C2B81 -:102B7000572C952CFB2E7932D03276330534D9344C -:102B8000AB35C725C4259E29852A4D32C4250C089E -:102B90007525050006A0380008788DC00A7806A0C3 -:102BA00002704A704270CE705C7005A0041918273C -:102BB000607084A007000200E12552265A26632691 -:102BC0006C26FE26752652263078BCD0101DD0719A -:102BD000BCD1F819B4D104192F26A07086A0010029 -:102BE000C009147005A0A819B0706DA0006865A098 -:102BF00055A09B7880000C6BAA7B086845A0106DDF -:102C000004686DA05DA086A801001801BC69AA7DBA -:102C1000AA79C0684DA01C6E0120100004084B2842 -:102C20005C7005A00419C625C600D600B0706DA062 -:102C3000006865A055A09B7880000C6BAA7B086893 -:102C400045A0106D04686DA05DA086A80100180164 -:102C5000BC69AA7DAA79C0684DA01C6E0120200025 -:102C600004084B280C085B3C0419C6251B78680037 -:102C7000B8706DA0B4685A789468D678DE78986891 -:102C8000D278DA7808788DC00A78BC683E70B4C112 -:102C9000D271B47065A0C068567003700200002D38 -:102CA0004A7080AD0900427005000C085B3C2011A1 -:102CB0001B7854000370040005000C085B3C2811CD -:102CC00011200C0019040370040005000C085B3C83 -:102CD000281111200600D1000370040005000C0823 -:102CE0005B3C281111200D008900037004000500D1 -:102CF0000C085B3C501111200600410078707B707D -:102D0000000068204A700370040005007071FCC167 -:102D1000078182789B78800086A20C002011AA7A15 -:102D20000120010098008CA11F008DA1C000AA798C -:102D300086A20D002001AA7A012002003800AB789B -:102D400020007471AA79AA7A012004009B7860009F -:102D5000AA785B7804001B7813010C086E3C7F7026 -:102D60000F00D070B4D06801B4C0D270C600B47087 -:102D700065A0086084A0EFFB0A60186001801A60FB -:102D8000CE000500147005A03811D070B4D0280111 -:102D9000B47006AC1011290C05001600A07186A1B4 -:102DA00001002805D600260000211120010012A2F2 -:102DB000B0706820006806AC20011182B001C90023 -:102DC000C80CC60000211120010012A2B0706820BA -:102DD00000686020086084A0EFFB0A601182100187 -:102DE0004100B00CA3700100CE002E00DE001E00DA -:102DF0000500E8AD0500A87006AD1011A4706820AC -:102E000005000C085B3C0419C625787068207077B3 -:102E10000C08953B502C0C08F63C9B7880001468FD -:102E200084A01F00BDC0AA781C6E412001000120B3 -:102E30000400040850280C085B3C0419C6259B7844 -:102E400080005C706820146FD070B4D06801B4C08A -:102E5000D270C600B47065A0086084A0EFFB0A6061 -:102E6000186001801A60CE000C08953B502C0C08AD -:102E7000F63C246805A0300182A00600080210007C -:102E800027680500146884A01F00BDC0AA783120FF -:102E900020004120010001200300040850288DC2B9 -:102EA000D272BC7200A215A0507108812AA108023A -:102EB000BC7164210465FF85701152712184A81DC5 -:102EC000D0708CD02801CC7005A01011CF700A00F2 -:102ED00005000022900CD0708CC0D270CF70000022 -:102EE000346005A0B01D086784A73F07D001D4D780 -:102EF000801D84A72100681D84A70200300184A7DB -:102F00000400380DBCA7FBFF0A6784A71802081D40 -:102F100084A700013001186005A0D819BCA7FFFEE6 -:102F20000A676825236800001C6E84A60E001863DB -:102F300028011C6002A3200218015808FF834819C9 -:102F4000582D502C5271BCD72011287022603A6045 -:102F50001000BCC70A67C06865A04DA00061602A68 -:102F600041200100146B9CA31F009DA3C000FCD155 -:102F7000100184D610019CA3BFFFA4D610019DA30D -:102F8000200084A60E0004190228A5C70A67002C99 -:102F9000C668A07786A701007811D070B4D0601100 -:102FA000007082A0020040123078BCD028119B78BB -:102FB0008000AA7B040849283987A2775027AC777C -:102FC000B0A70500A87006A60811A476AE763A2C24 -:102FD00038873A2D38873A2838873A2338873A2570 -:102FE0003078BCD050019120008091203D30D070CD -:102FF00084A03D30912000809020D5AA00002001BF -:1030000021840022041951270500DCD10409F1377D -:10301000292020009CD6201128858CD608112885CF -:103020004088146F0C6108818CA1FF00C87060A1FA -:10303000642CFF8C8801146006A7D01DB860018045 -:10304000BA60881D602A086085A000010A6000221D -:103050002184041951270500602A0E61BE69002CE5 -:10306000C66840880860D5C00A60A07786A70100BE -:103070000419D927D070B4D00419D927007082A0C0 -:103080000200041AD9273078BCD00419D9279B78BC -:103090008000AA7BAA7DAA790120020006001860A0 -:1030A00000801A600800060060290461602A0C088C -:1030B000093D901584A11800800184A11000180119 -:1030C0000C089A39481584A108003801A06984A128 -:1030D000000618110C08B838F800A06984A1001E79 -:1030E000280584A100087801C6006029006085A039 -:1030F0000020026004618DA110000661CE000C0862 -:103100009A395011A06984A1000218010C08FD38F9 -:10311000180084A10004F019A06984A100103001F6 -:1031200014698CA100FF0F810C08C5232E008CA60A -:10313000E00084A66000280186A0600010118DA127 -:1031400000408DA10401B6699B7860000028AA7830 -:103150001868FDC01A68BCD66801FCC08370000006 -:103160008AA00D0028038AA00C00827101200C00A7 -:103170000C808671AA781835403328340080AC80E2 -:1031800080AF2B00A0209B78000080AD0B00982022 -:10319000A653A8239828A02586A220000815D07041 -:1031A000B5C0D270002CB670002DBA701468FCC087 -:1031B0000780827886A2020004092129A07000807D -:1031C000A270B07498A40500A87006A30811A47397 -:1031D000B27386A210000409C625DE00CE000500E9 -:1031E000007005A0E01986A20200041938290C0815 -:1031F0005B3CA8191468FCC007808278912000808D -:103200001B786800B4685A789468D678DE78986835 -:10321000D278DA789120018008788DC00A7826016A -:10322000D600C600D07084A0002E9020CE00DE0014 -:103230002E0100295670BC683E7003700200002DFC -:103240004A7080AD090042703078BCD040019120B6 -:103250003D30D07084A03D30912000809020A0703F -:1032600005A0081105002184E80D4C72BC7000A275 -:1032700015A00408512786A2100060150C085B3CBD -:103280000419CC281468FCC0078082781B78680079 -:10329000B4685A789468D678DE789868D278DA7804 -:1032A00008788DC00A78A0700080A270B07490A4D5 -:1032B0000500A87006A20811A472B2720029567007 -:1032C000BC683E7003700200002D4A7080AD09009A -:1032D00042700500B46B9DA300205A7B1468FCC0AB -:1032E00007808278946BD67BDE7B986ED27EDA7E06 -:1032F0001B78680000295670027208788DC00A7821 -:10330000002305A67001D07084A0002E86A00026A0 -:1033100018110920000010000920010084A20F00EC -:10332000330080AD09004270002D4A7005009C29D1 -:1033300008420842F64108429C299C299C290C0815 -:103340007525087884A0FDFF0A78F60079200047EB -:10335000AC78FE0084D0C001607186A10100040930 -:10336000612A86A10700700186A1050058117870B6 -:1033700068201B68040017680000206884A0FF0014 -:103380009DC0226863700000A3700000A470AE703E -:10339000B2700C08AE26560111200400607186A19F -:1033A0000100580186A1070018111F7005001000C8 -:1033B0001F700100D070C5C0D27001200A470420E0 -:1033C00084A0FF0086A0180030011870167005A0B8 -:1033D0001011A370010066000C084E3FA9201000D8 -:1033E000392000000C088B3AB8A70001041FEF2910 -:1033F0006E00007002002C2A0A2A0A2A022A2C2AAD -:103400002C2A2C2A002A0C0875255C7005A038058A -:1034100006AD181100685E708000206884D04811E5 -:10342000146F0C08953B0860D4C00A600C08C737BD -:103430002000587060200068026084A6005F1E684B -:103440001868FCD008011A6A176800002B68000091 -:10345000206884A0FF009DC022680C08BF1D1120B9 -:103460000400C874A0A40001B104A0AE1700990420 -:10347000A9200101C87479042084041F382AC0706F -:10348000602021200200A92000011061FF81980125 -:10349000186016000600112002470C2202A112201B -:1034A0000E001E0002A138031260281111200447EB -:1034B0000422A5C012201B600000E0AC1000041F15 -:1034C000422A2184001D5E01637000000370000029 -:1034D0004B70000005004600042405A0A8016820E8 -:1034E000006806001A6A176800002B680000B468BC -:1034F00084A0005F1E68206884A0FF009DC0226831 -:103500000C08BF1D0E00480C4E00232000000500D3 -:1035100082A2030010030C087525002302008F2AE5 -:103520000C2B1A2B82A2020010010C08752560706A -:10353000637000007F7000002200D077C5C7D2778B -:103540000200A62AA62AA82AE02AFB37A62AE02AF1 -:10355000A62A0C08752570770C088B3A7077BCA7E3 -:10356000008F0C08953B186005A02805FCD71811A2 -:103570002120C08D10002120D08E092005001120AF -:1035800010000C08342BB8015601A9200101FCD70A -:1035900018112120C08C10002120D08D4600092058 -:1035A0000500112010000C08342B4E001801208457 -:1035B000041FCB2A5E01388784A71F0090190408D6 -:1035C000C9250408C92570770C08953B186005A02B -:1035D0002005FCD718112120C08D10002120D08E8D -:1035E00009200500112020000C08342BB0015601E1 -:1035F000A9200101FCD718112120C08C1000212026 -:10360000D08D4600092005001120200081044E00C5 -:1036100018012084041FFE2A5E010408C925002227 -:103620000200112B132B132B0C087525637000005F -:10363000D070C5C0D2700408C92500220200212B19 -:10364000132B1F2B0C0875250C084E3F007086A00D -:103650000200041980370C08E137086084A0EFFBF2 -:103660000A600C087237040980370408C92504244D -:1036700005A090056820042D0600146806A718010F -:10368000202D0E00A80C0E0022201A6917680000D9 -:103690002B680000B46884A0005F1E68206884A0C6 -:1036A000FF0005A222680C08BF1D212002471C2430 -:1036B0001983222310600180126028112120044701 -:1036C0000424A5C02220086084A0EFF90A600C0839 -:1036D000CA260C08E137050085A00100E00C002394 -:1036E0000200732B712BEE2B0C087525E47805A0D6 -:1036F000B01708328CA1000818010401C62510007B -:103700000403C625082084A03000101104084D329F -:10371000EC7884A00300D00D8478FCD0181184A12B -:103720000700900084A1070086A004001811012062 -:103730000000500084A1070086A00500180184A1A4 -:1037400007001000012001000200D12BDA2BC72B4B -:10375000AA2B4F3C4F3CAA2BE42B0C08752500707C -:1037600086A004009011607086A002003011112024 -:103770000200192000000408852A607086A0060057 -:10378000B00D607086A00400900DE4790120030064 -:1037900004083B2F1868FCD010011B681D000C08A2 -:1037A000613A1B786E0005001868FCD010011B6898 -:1037B0001D000C08613A04082D3C1868FCD010016B -:1037C0001B681D000C08613A1B78FA000500186898 -:1037D000FCD010011B681D000C08613A1B78CB005F -:1037E000050084A50F00C01100700200C925FB2B45 -:1037F000FD2B803780378037FB2BFB2B0C08752582 -:103800000C08E137086084A0EFFB0A600C087237EF -:10381000040980370408C925E47805A0041BAC2BF3 -:1038200008328CA1000818010401AC2B100004031D -:10383000AC2B082084A0300018111B78680005000C -:10384000EC7884A00300C80D8478FCD0181184A102 -:103850000700900084A1070086A004001811012031 -:103860000000500084A1070086A00500180184A173 -:1038700007001000012001000200492C4D2C442CAF -:10388000422C4F3C4F3C422C493C0C0875250C08FF -:10389000673A1B786E0005000C08673A04082D3C57 -:1038A0000C08673A1B78FA0005000C08673A1B7889 -:1038B000CB000500002302005E2C5C2C602C0C0861 -:1038C0007525040805341B681600A3780000E47908 -:1038D00084A1300004090534EC7884A003000409B5 -:1038E000053484A10001980D8478FCD0181184A1BE -:1038F0000700900084A1070086A004001811012091 -:103900000000500084A1070086A00500180184A1D2 -:1039100007001000012001000200922C4D2CC72B43 -:103920000B3C4F3C4F3C0B3C493C0C08173C050002 -:1039300082A2050010030C0875259878402000230A -:103940000200A12CCB2ED52E00220200BD2CAA2CC9 -:10395000BD2CA82CAD2E0C0875259B781800A878D6 -:10396000102084A0FF0082A02000040A303A8AA020 -:103970000400041A303A0200303A303A303AE4395E -:103980009B781800A87984A1800048010408303A87 -:10399000007005A0D81D112004000408B73584A1CB -:1039A000FF008AA01000041A303A0200E52CE32C34 -:1039B000F72CFB2CA92D303A303AAB2D303A303A67 -:1039C000A92EA92E303A303A303AAB2E0C08752584 -:1039D000E4D6400101200003008000803A781B7883 -:1039E000C70005001868FCD018011B681D00900C6A -:1039F00004080B3C1B681D0004085B3A206922691F -:103A000084A6001804194C2D206884D00419542D64 -:103A1000186886A0080010111B680000D4D668053D -:103A2000BCD6580583700000186884A03F008AA0A7 -:103A30000D0018078AA00C00827101200C000C8078 -:103A400086719B786100AA785601360146011600FE -:103A500008328CA100061801A1202B021000A12021 -:103A60002B011E009B7800000080AC8080AD0B0015 -:103A70009820A6534E013E015E01386005A050110A -:103A80001C6884A00E0004095B3A0C086D3A2B7880 -:103A90000830100001803A601B7871000500E4D600 -:103AA00030011B78830005001B788300050084A685 -:103AB0006000D00DDCD6C00DFCD6A001FCC65A7E3D -:103AC000B66EDC7AD879D078078084A07F0008A110 -:103AD00091A20000986B002102A3B268946B0022AF -:103AE00003A3AE68F4D61801F4C65A7EB66E007011 -:103AF00086A00300481106000C084E3F0C0808423F -:103B00000E001B788000050006A00C08E842B06A91 -:103B1000AC69986C946B002205A12001002222A4BC -:103B200000211BA3AA6CD27CDA7CA66BD67BDE7B41 -:103B3000002305A43011F5C65A7EB66E1B788000AE -:103B400005001B788000002215A118110C080842FE -:103B500005000C08354205000C08752504083F2EA9 -:103B6000C6005470602020698CA1FFEC22690060BF -:103B700084A0DFCF02600C08173906A0402038204F -:103B80000C08BF390408332EC60054706020482C3E -:103B9000A87A94A2FF0086A20400D8112069E4D17B -:103BA000701139200000412000003120000006A0E3 -:103BB00010200C081A390C08BF390408332E8CA1C8 -:103BC000FFEC226904618CA1DDFF06610060ACC0DE -:103BD000026086A20300D001046184A110004805A0 -:103BE0000C08913B0C089A39FF881805CE009B7889 -:103BF00060000028AA78587E95C65A7ED4D618113F -:103C00001B786E0005001B78820005002069CCD16E -:103C100030018CA1FFFD22690060ECC002603920F8 -:103C20000000412000003120000006A010200C08F8 -:103C3000BF3986A201005801046184A10800B001C7 -:103C40000C08913B0C08B838FF888019780020696F -:103C5000C4D130018CA1FFFE22690060E4C0026083 -:103C60003120000006A010200C081A39CE00587E22 -:103C7000D4D618111B78710005001B78830005004D -:103C80000408573A08289B78800019208000A878FB -:103C900094A0FF0086A20100B811002302A186A013 -:103CA00001000409AD2DA87CA4A4FF0080A402009B -:103CB00000A3182002A1040AC12D0409C12DA824C3 -:103CC000A87A041F5D2E180C84A2F00082A02000A8 -:103CD000B806002282A021009816A87A18831883BB -:103CE000002102A3A00A86A2230050091C6884A018 -:103CF000F1FF1E68587E84A6F1FFA5C030205A7ED1 -:103D00000860A5C00A60A07805A00409342EA82088 -:103D100098799B786000AA78112080009A79A87819 -:103D200098799A7AAA78987A041F8B2E95C65A7E2B -:103D3000D4D618111B786E0005001B788200050090 -:103D40001883002102A3040A442E84A280000419CF -:103D50005B3AA07805A0C80804085B3A0408303A2A -:103D600054704DA09B781800A87884A0FF008EA006 -:103D7000010010010C087525A87A94A2FF004B7869 -:103D80000800A87884A0FF008AA00500041A303A31 -:103D90000200303A2F38303A4A39593D82A20000A9 -:103DA00010110C0875250C08613A1B78820005007B -:103DB00082A2030010110C087525FCD4D01160708C -:103DC00005A010010C087525146F7277BCA7008F31 -:103DD0000C08953B086085A021000A60388784A7FD -:103DE0001F00B01D0C08643A637002001F700900C8 -:103DF00010000C08703A1B788200050082A20400B3 -:103E000010030C08752500230200052F9B30D730C6 -:103E100086A2030098050072D87CDC7DD07FD0712B -:103E2000B4D12805BCD11815012001470420C4D005 -:103E3000F011687884A0FF00D01182A20200B812AD -:103E4000D6003B7800831B785900B8706DA0B46829 -:103E50005A789468D678DE789868D278DA78B4C1DF -:103E6000D27103703000DE000120000058003B7862 -:103E700000131B7857000120000020000072D87C3E -:103E8000DC7DD07F4670A068ECD0180108608DC042 -:103E90000A6084A20F0002007C30562F532FA731F6 -:103EA0003232C925512F512F0C0875250860D4C016 -:103EB0000A60E4D62001447086A01400E8110C08C2 -:103EC0004E3F092000001868FCD00801447086A00D -:103ED00014006801186886A0080004193E3058785C -:103EE0009CD004093E302068ACD004093E301B68E9 -:103EF000140009200200A80468788CA0FF0088053F -:103F000086A1080058110860A4C00A600C08723726 -:103F100040050C08E1370C084E3F600086A12800E0 -:103F20000015186005A0780D0180680D0180580DFE -:103F30001E60480C206884D00409C92584C022680A -:103F40000C08BF265870C600602000680260CE00D2 -:103F50000460026805A0002D0811026006600408D4 -:103F6000C9251600FF81F015007086A03000D0052D -:103F7000D071BCD1B815B4D1E8115C7005A0901512 -:103F8000A07086A001007005037000004600560076 -:103F900076006600C600D6000C08F125DE00CE00D3 -:103FA0006E007E005E004E00D071B4D1D811037057 -:103FB0004000C0000C085B3CA8111B786800D600CC -:103FC000B8706DA0B4685A789468D678DE7898682E -:103FD000D278DA78B4C1D2710370300008788DC01D -:103FE0000A78DE000C08FF301E00FF8104093E3015 -:103FF00084A600DF1E682B680000146F86A10200F3 -:1040000004193F30186886A0140030110820E4D647 -:10401000180168788CA0FF000C087A3A0C08CA26B0 -:104020002068DCD07815178794A20F0013821382C2 -:10403000138284B20006180190A2C04B100090A217 -:10404000404C90A200001C22C4D370012068E4D030 -:10405000280184A0FFEF2268ACC31223108204223F -:1040600085A0380012201182D4D33801A068C4D0B2 -:1040700020110C0867310408C92508608DC00A604A -:1040800008002A6916691868FCD0100144701A6883 -:104090008CA600DF1E691064FF84680109200247B6 -:1040A000042101800A202184126428112120044760 -:1040B0000424A5C02220186005A0180101801A6000 -:1040C00018110860A4C00A60206884D0301100680C -:1040D00005A008110260066020005870602000688A -:1040E00002606120004787680301082D6B200000F3 -:1040F000686005A06A611001022D08006E610072FF -:1041000086A23000580186A240000419C925037018 -:10411000020048706820C468602005000370020037 -:10412000B8706DA0BC683E70B47065A0C068567071 -:10413000002D4A7080AD09004270050082A2040083 -:1041400010020C08752500220200A630B530C130DF -:10415000B53086A50013600186A50083901D03700D -:104160000000186001801A60086084A0EFFB0A60FC -:10417000007086A0050028010C08613A1B788200B7 -:1041800005001B788300050090780780018084A0DB -:10419000070080A018009A78A8798CA1FF0086A15A -:1041A0000300280186A1000010010408303A1B78A2 -:1041B00083000500206895C02268FF8218110C0852 -:1041C000613A3000118210010C0875250C08703A14 -:1041D0001B78820005000C086E3C307884A0C0007B -:1041E0007011160008328CA100081E00180104018D -:1041F000FC3010000403FC301A7906A0050085A0ED -:104200000100050084A6600030112F6800003368AB -:10421000000004086631DCD69811B468DCD0801147 -:104220009869946A2E69326A447005A030110022A0 -:1042300005A104094E3F4770150004084E3F0500D4 -:10424000ACD6F001F4D630012F68000033680000CE -:1042500004084E3FB46884A0004035A6F4D6A01DE3 -:10426000447005A0101147701500DCD62811B46801 -:10427000DCD01001A86CA46D2E6C326D04084E3F8A -:10428000F4D630012F6800003368000004084E3F68 -:10429000B46884A0004835A6F4D6A01D447005A0DB -:1042A000101147701500082410250027078084A0EE -:1042B0007F0008A191A200002E69326A002105A2A8 -:1042C000101104084E3F007086A00600100104087B -:1042D0004E3F050046690860CDC0CCD308018DC0B3 -:1042E0000A6018683A681B6806008F6800009368C7 -:1042F0000000306A2C693E6A42692F680300336807 -:10430000000037682000976800009B68200000705C -:104310000200C925963190318E318E318E318E3129 -:104320008E310C087525206884D018110C08C73709 -:1043300030005870502C602000680260602AA0AEE7 -:104340001700042405A010012020D80C222D6B207A -:10435000000005000C08CD370C08E1370860CCC020 -:104360000A602B6800009B780E00146F38691A6988 -:10437000446916690920000086AE404710010920F3 -:1043800001000C081F43DCD6C8011C69EDC11E6981 -:10439000286882A00E009002486884A00F0086A0C2 -:1043A0000B0060115C6886A04700401101200147A6 -:1043B0000420ACD0181100270C089E241868FCD0EB -:1043C00040011B68000068788CA0FF0010011B688A -:1043D0001E00A0AE1700006822203C6A4069326AC5 -:1043E0002E69C06860200060A4D0800541202100B3 -:1043F0004920050051202000D600F6005601460154 -:10440000792000470C08B21B4E015E01FE00C87007 -:10441000102009200101260004226DA0400114682B -:1044200006A710010068C80C2068D5C022682E00BD -:1044300010820981801DDE00637003007B70000024 -:1044400072777F700F00D071C4C1D271186886A0D6 -:1044500002003811176800002B6800001C68ECC0CF -:104460001E680C08BF1D0408C925D87CDC7DD07FE0 -:104470000C08FF302B6800009B780E00146F0C08AE -:10448000723C8CA0FF0016691868FCD010014470C3 -:104490001A688CA600DF1E69637000000408C92535 -:1044A000007005A010110408C92506A00C084E3F95 -:1044B0002069ACD110111B6814008CA600DF1E69A6 -:1044C0002B680000206884A0FF00226800700200B2 -:1044D000C9256F326F327232723272326D326D3282 -:1044E0000C087525186804083B2F0860A4C00A60F2 -:1044F0001768000004089537002302007E328032DE -:10450000CE320C087525FCD604195B2D00700DA069 -:104510000200C92590329032BA329032CB328E32BC -:104520008E320C08752584A66000380586A06000D0 -:104530001015ACC6F4C6EDC65A7EB66E1C68ACC08B -:104540001E6886A1020048010C084E3FAC69B068A5 -:1045500015A118010C08354210000C0808421B7800 -:104560008300D071B4D10419C625A07086A00100C3 -:1045700004190D260500ECD6F0091868FCD070016E -:10458000F4D630111B6815001B7883000408C6257B -:104590001B6807002F680000336800000C08173CF8 -:1045A00005000C08752500230200D732F93251337B -:1045B0000C08752500700200E132E332EA32E13284 -:1045C000E132E132E132E1320C087525AC69B068C4 -:1045D00015A118010C08354210000C0808421C688F -:1045E000B4C01E68D070B4D00419C625A07086A0CF -:1045F000010004190D260500FCD604194133007092 -:104600000DA00200C9250F33093339330F333E3370 -:10461000073307330C0875259468D678DE789868D8 -:10462000D278DA7884A66000380586A0600010157C -:10463000B4A6BFBFEDC65A7EB66E86A10200480181 -:104640000C084E3FAC69B06815A118010C08354242 -:1046500010000C0808421B7883001C68B4C01E6858 -:10466000D071B4D10419C625A07086A00100041928 -:104670000D260500ECD6F0091868FCD010011B6867 -:1046800007001B78FB000500FCC65A7EDC7AD8794F -:10469000986B002102A3B268946B002203A3AE685A -:1046A000D2791B7883000500DCD630012B780930E5 -:1046B0001B7883000408C6258478ACC08678E4782B -:1046C00084A00800501184A400020801F5C6DDC6CC -:1046D0005A7E1B7883000408C625206895C022688E -:1046E0000C08023CDDC60C08613A1B788200040805 -:1046F000C625002302007B337D337F330C087525EC -:1047000004085B3A987DD4D6A815E479ACD1300181 -:10471000EC7884A0030010012B7809309B786000AE -:10472000AB78000084A6FBFF5A789A7DE479ACD17F -:104730002001EC7884A0030020110120140004085B -:104740003B2F8478FCD0181184A10700900084A12D -:10475000070086A00400181101200000500084A169 -:10476000070086A00500180184A1070010000120A1 -:104770000100C204907A94A207009B786000A87997 -:10478000FF8168059B788000A87B84A30100D0117D -:10479000A87BA87B86A3040018110920DFFF58001E -:1047A00086A3010018110920F7FF280086A3030043 -:1047B00048110920EFFFC60054706020046004A176 -:1047C0000660CE009B786000AB78000084A6FBFFFB -:1047D0005A782B78093020698CA1FFEC22699A7DE8 -:1047E00004080B3CD12BDA2BF933FF33F733F733C3 -:1047F0000B3C0B3C0C08752520698CA1FFFC226941 -:104800000408113C20698CA1FFFC226904080B3CC0 -:10481000E47984A130002001EC7884A003007015B5 -:10482000007086A004009011607086A00200301114 -:1048300011200200192000000408852A607086A05B -:104840000600B00D607086A00400900D007086A078 -:1048500000000409C625206984A120042801D4C1D0 -:104860002269186804083B2F18688EA002002001F6 -:10487000FDC01A680120140004083B2F8478FCD086 -:10488000181184A10700900084A1070086A00400ED -:10489000181101200000500084A1070086A0050027 -:1048A000180184A1070010000120010002000B3C48 -:1048B0000B3C5C340B3C4F3C4F3C0B3C0B3CBCD6A4 -:1048C00070058071FF81580582A10D001813837057 -:1048D0000000280082A10C00827009200C009B7847 -:1048E0006100AA795601360146018470148110A234 -:1048F000867280A00B0000AD982084B200061801DB -:10490000A1202B021000A1202B019B780000088120 -:10491000AC81A6534E013E015E010408113CD4D681 -:104920000419CF34206884D00409113C8CA660009F -:1049300084A66000200186A060000811F5C194C122 -:104940005A79B6699B786000AB7800009B7861006B -:104950001868FDC01A68AA7808800C810409F63727 -:104960008CA1F8000419F6375601360146011600ED -:10497000A1202B0108328CA100061001A1202B02DE -:104980001E009B7800000080AC8080AD0B0098205A -:10499000A6534E013E015E011468FCC00780827878 -:1049A0000408113C1868FCD010011B6808000C08B2 -:1049B000613A1B78ED00050000230200E0349D35CC -:1049C000DE340C087525D87CDC7DD07FFF8228156D -:1049D000007286A203000409092FD071BCD1F8111E -:1049E000B4D1E801012001470420C4D0C011D60091 -:1049F0003B7800881B785900B8706DA0B468A5C0DA -:104A00005A789468D678DE789868D278DA78B4C123 -:104A1000D27103703000DE003000007220003B785D -:104A200000181B78570084A20F0002008835453516 -:104A30001D35382F1B3588351B351B350C08752562 -:104A40001C68ECD0180108608DC00A60206985C11F -:104A500022690068066005A0081102600860D4C0E1 -:104A60000A601C6884A00E002011C87188A1000192 -:104A700028003070BA683C71C87008A1042102682F -:104A80000A2D5A71DCD62011FCC6B66E0408883592 -:104A9000B66E84A66000201184A6FF7FB668D80495 -:104AA000DCD6501184A6FF7FB6689468A668986823 -:104AB000AA680C084E3F7804ACD6400106A00C084A -:104AC0004E3F08241025AA69A66A6800082410250C -:104AD0000027078084A07F0008A191A20000AA6996 -:104AE000A66A0C084E3FFCD6B00184A6FF7FB668CC -:104AF00010250824ACD638110027078084A07F0039 -:104B000008A191A20000986B002102A3B268946BE7 -:104B1000002203A3AE68007086A030000419C925E6 -:104B200003700200B8706DA0BC683E70B47065A0E0 -:104B3000C0685670002D4A7080AD090042700500B3 -:104B400086A50088481103700000186001801A6073 -:104B5000086084A0EFFB0A6004085B3A4370000021 -:104B600082A2060010030C08752500230200B73549 -:104B7000C835D23500220200BF355B3AC135BF359A -:104B8000033651360C087525807A94A2000F0C0864 -:104B9000A5360408303AC10002005B3AD035D03562 -:104BA0000336D0355B3A0C08752571000200DC3500 -:104BB000DA35DA35DC35DA35DC350C0875250C08E4 -:104BC000703A1B7882000500007086A00200501128 -:104BD0000C08E13710000C084E3F086084A0EFFB82 -:104BE0000A602000007086A00300A80D0370050075 -:104BF0000120E08E8EAE404710010120128F682008 -:104C00004A7080AD0900427000220500007086A045 -:104C100002005811D070B5C0D270002CB670002DB3 -:104C2000BA7038000C084E3F2000007086A00300C8 -:104C3000C80D03700100807A94A2000F9B781800C1 -:104C4000A87C84A41F0015A26920C08D84B2000630 -:104C50001811FDC26920D08E042D082D5A716DA047 -:104C60002801146806A220010068B80C0C08A536BB -:104C7000B46E5A7E206984A1000C0409CB366070A2 -:104C800086A006002811707006A2101162707A705A -:104C90001B680500ADC11B680500ADC1D4C1226908 -:104CA0000C08673A0408CB36007286A2020058113D -:104CB000D070B5C0D270002CB670002DBA70300024 -:104CC0000C084E3F180086A20300D00D03700100AF -:104CD000807A94A2000F9B781800A87C84A41F00FF -:104CE00015A286AE40470801FDC2A879A8798CA11B -:104CF000FF001821C87068A1042D082D5A716DA0FD -:104D00002801146806A218010068B80C0904B46EE2 -:104D1000206984A1000C0409CB36DCD078016070D6 -:104D200086A004004011707006A22811747006A3BA -:104D3000101162707A700C086D3A80041B680500CF -:104D4000ADC1D4C122690C08673A7B700000300401 -:104D50000370050084B2000618010120E08E1000E7 -:104D60000120128F68204A705601A92032000320CA -:104D700000000080041FB4365E0184B200061001FA -:104D8000FCC20800FDC2166A80AD09004270B76817 -:104D9000000723680008276803000500ECC6ACA6DE -:104DA000600004091237986B946CAC69B06805A177 -:104DB000E011D27BDA7BD67CDE7C86A56000C8055C -:104DC000F4D60811EDC6B4A6FFB75A7E09208300B9 -:104DD0009CD62801092082001920000020231A797E -:104DE000ECD688050C0808427004B0681AA30021AC -:104DF00023A4002405A3F801D27BDA7BD67CDE7CD9 -:104E0000B068F4D60811EDC6F4C65A7E11208300AE -:104E10009CD62801112082001920000020231A7A34 -:104E2000ECD688010C0835427000192000002023C0 -:104E30001000B4A6FFB75A7E092083009CD610014B -:104E4000092082001A79C0685670002D4A70C46823 -:104E50006020D071012001470420C4D0C815D4704F -:104E60002DA0B801BCD14805807A94A2000FD8705B -:104E700006A21801E07804A55815D670BCC1D271FD -:104E80003804312001002C85180233861082D80C9A -:104E90000500E07D94A500FF3001112008002F855A -:104EA000810C37860800690C1782807884A0000F77 -:104EB00006A27001DA72D6765800807A94A2000FAA -:104EC000D87036A2C00DE07834A5A80DBDC1D2714E -:104ED000B4D10419C625002305A40409C625A07071 -:104EE00086A0010004190D260500206005A05001D0 -:104EF00001802260086085A008000A600F70000130 -:104F00002C702660050006A00C084E3F007086A09D -:104F100002002001607086A0050050112B6800007F -:104F2000176800001B680100236840001F6800012B -:104F3000007084A00F000200C925A637A337C3372D -:104F4000AF37C925A137A1370C08752549041104CD -:104F50002800310458706020006802600C08BF1DF2 -:104F60000408C9256070637000007F7000000200B3 -:104F7000BF37BF37BD37BD37BD37BF37BD37BF3789 -:104F800004089A2A637000000408C9251B68000001 -:104F90000408A731006805A008110260066005003A -:104FA0001064FF84680109200247042101800A205F -:104FB000218412642811212004470424A5C0222042 -:104FC0000860A4C00A600500186005A010010180F7 -:104FD0001A6005000C086E3C1B68180090040C0851 -:104FE0006E3C1B68190068040C086E3C1B681A00B4 -:104FF00040040C086E3C1B680300180470770C0812 -:10500000953B74718CA1FF00103294A20006180128 -:10501000E8A1C08C1000E8A1D08D042D082D6820D7 -:1050200005A018117A700408C9251468707206A2C8 -:1050300010010068980C00680A201B6805007B704E -:1050400000000C08CD37206884D010110C08C73739 -:105050000C08E1371F680000236820000C08BF1D02 -:105060000408C92582A203000419353AA87DACA51D -:10507000FF00A87EB4A6FF002069BDC12269C4D18B -:10508000B005C4C12269B4A6FF00300582A618008D -:10509000180210013120180086A610000811308671 -:1050A0002B852B85412000000C08EE3A18010C08D6 -:1050B0001A39A0000C08BA3A0C0817392069C5C182 -:1050C0002269587E95C65A7ED4D618111B786E0078 -:1050D00005001B78820005000C081739587ED4D6CD -:1050E00018111B78710005001B7883000500C600AD -:1050F000547060200061E4D198050862178294A280 -:10510000FF0082A2180018021001112018000026CA -:1051100002A20812302286A610000811308608620A -:1051200094A2FF00EC78E4D0300182A20A00401281 -:1051300011200A00280082A20C00101211200C007D -:10514000002202A5081228220C08BE3A2B852B85C6 -:10515000412000000C08EE3A18010C081A39200012 -:105160000C08BA3A0C081739587895C05A78CE000E -:105170001B7882000500C60060290060E4D0881119 -:10518000B4D05011106084A00F00301104618CA1C4 -:10519000F5FF0661CE000500112032001920000045 -:1051A000F000A068CCD0C01D086294A2FF00EC788B -:1051B000E4D0300182A20B00181211200A0028004E -:1051C00082A20C00101211200C0008631F839CA304 -:1051D000FF0082A318001802100119201800AB78F4 -:1051E0000100AB780300AB780100AA7AAA7BC0A8C3 -:1051F00005002068C5C022680C087A3ACE00050078 -:10520000C600602904618CA1F5FF066111203200FF -:10521000192000000000AB780100AB780300AB78E8 -:105220000100AA7AAA7BC0A805002068C5C0226830 -:10523000CE00050006A030201020C6005471602169 -:105240001820082084A0E0FF35A6867E18609A7892 -:10525000AE7E1266A47884A070778CA10F0005A1A1 -:10526000292005472C25CCD54001A4D3100185A0C9 -:105270000008FCD3100185A08080A67816608A788B -:10528000B4A61F0037860482048005A60E60046061 -:1052900084A0D5FF0660CE00050082A2020004199A -:1052A0003F3AA87A2069BDC12269CCD16805CCC13A -:1052B000226994A2FF0082A20200041A303A0C086C -:1052C000C1390C08173980A901000C200C08913B4A -:1052D0000C08B838FF8878019B7860000028AA780D -:1052E000587E95C65A7ED4D618111B786E000500DC -:1052F0001B7882000500587ED4D618111B787100E7 -:1053000005001B788300050082A20200181284A207 -:1053100001004001547188A100000C21ECD1101152 -:10532000112000000C08AC3A79040C0817395878A1 -:1053300095C05A781B7882000500C60026006029B7 -:10534000006011200100ECD05811BCD0381114605D -:10535000B4D02011A4C1066106A08800112000006D -:10536000AB780100AB780200AB780300AA7AC0A842 -:1053700004000C087A3A206885A0000222682E00FA -:10538000CE000500078815A7C6000920000054704C -:105390006020FF82100109204000186080A00200F8 -:1053A0009A78A47884A09FFF05A1ECC0B4D008111E -:1053B000EDC00061F4D1100185A02000A678166030 -:1053C0008A78046084A0EFFF0660CE000500060026 -:1053D000007086A0030010010E0010000E0098045B -:1053E000ACD68805887884A040006805B87B078320 -:1053F00084A07F001815078284A0FF000409573A93 -:105400009AA00400041A573AF4D6D011D879DC7A5D -:1054100008A191A20000D279DA79D67ADE7A0C0856 -:10542000E8421B78800084B20006180101200000C9 -:105430001000012001000C089A4105000C08752598 -:105440001B78800005001B788300050039200000D0 -:10545000412000003120000006A010200C081A395D -:105460000C08BF39587E0C08733A1B78820005007F -:10547000D10C2068C4C02268C600547060200C089B -:105480004439B000810C2068CCC02268C60054703A -:1054900060200C08DE396000310C206884A0FFEC2D -:1054A0002268C60054706020046084A0C5FF0660B6 -:1054B000CE00050049001B78820005002768020025 -:1054C00049001B78820005000120050088000120AA -:1054D0000C0070002068D5C0226801200600400042 -:1054E00001200D0028000120090010000120070004 -:1054F0009B787E00AA789DC65A7ED070B4D0680191 -:10550000B4C0D270C600B47065A0086084A0EFFB80 -:105510000A60186001801A60CE00050076003F879F -:10552000BCA70F003B873B870387E0A0C04B8EAE34 -:1055300040471001E0A0404CB8A720009A7FA47912 -:1055400084A1E07FAE781260A47984A13F77A67829 -:105550001660046085A0380006607E0005009B7818 -:105560008000AB780100AB780200AB780300AA7A28 -:105570009B786000AB7804000008312000002920EF -:1055800032009B788000AB780100AB780300AB78E9 -:105590000100AA7DAA7E9B786000AB780500040814 -:1055A0007A3A5601078084A0FF000380038080A020 -:1055B00020009A78A4798CA1E0FF21207A3B192061 -:1055C0001100A9200E0011203200042484A0E0FF65 -:1055D00006A128012084002310A2041FE23A5E01E4 -:1055E000050056010408303B2120883BA920090012 -:1055F0001120290082A5280050052084A99511209A -:10560000330082A5330018062084A99519200A00CA -:1056100011206500002202A5D0022084002310A2E0 -:10562000041F073B5E01880021207A3B19201100EE -:10563000A9200E0011203300002202A54002208480 -:10564000002310A2041F193B5E0106A00500118271 -:105650005E0182A564002012087885A070000A7897 -:10566000042405A0050086A80200E8012120663B6D -:10567000A9200D001120280082A52800480D2084B3 -:105680001920190011203300002202A5000E2084E9 -:10569000002310A2041F413B5E011120840182A55A -:1056A0008501B00A90082120753BA9200300112034 -:1056B000240086A52400600920841120280086A5E6 -:1056C0002800300920841920190011203300040813 -:1056D000193B21100222033404460558066A077C50 -:1056E000104612461258125A146A146C146E177E21 -:1056F000219002B004E210E210E2091202300232FC -:105700000342034404540456056605680678067A85 -:10571000070C070C070EE1100A330558055A066AF4 -:10572000066C077C077E000E9B78800046A0050073 -:1057300084A7000F0B8084A71F00038003800380D1 -:10574000038005A1FCD71801E0A0C06C1000E0A008 -:10575000C04C0500E600F60084D038017920000135 -:105760000920804771208047300009204047792078 -:1057700000027120404791200080042184A00F0086 -:105780000200C83BC83BC83BC83BC83BC83BC63B04 -:10579000C63B0C087525B469F5C18CA19FFFB6699D -:1057A00005A08005587884A09FFF85A000605A78E6 -:1057B000287886A0141830154B780400487884A007 -:1057C0000400E01D4B780800487884A00800E01D24 -:1057D0003078BCD0B81184B2000818010401FF3B36 -:1057E00010000403FF3BE47984A130005801EC78F9 -:1057F00084A0030038011C68ACD01011D90010003F -:105800001B78FB00FE00EE0005000120014704208C -:10581000ACD0181114680C089E2405001B78830076 -:1058200005001B78820005001B78710005001B78BD -:105830006E000500092019470C2186A100005001C7 -:1058400086A1010050011F700B00637001001B78DE -:10585000540005001B78F30005001F700A000500C6 -:10586000092019470C2186A10000680186A10100CA -:1058700038011F700B00637001001B785400050095 -:105880001F700A0005001B78F20005001B78FB0062 -:1058900005001B78FA0005001B78CC0005001B787A -:1058A000CB0005001868FCD010011B681D001F709C -:1058B0000B00637001001B7854000500307884A051 -:1058C000C000701108788CC00A7800E000E000E0A9 -:1058D00000E0EC7884A02100180108788DC00A78D7 -:1058E000050008788DC00A780500307884A0400053 -:1058F000E01D84B2000818010411803C100004135C -:10590000803CAC780500087884A0FDFF0A7800E0B0 -:1059100000E000E000E0EC7884A02100400184B2C7 -:105920000008180104118F3C10000413923CAC785D -:105930000600087885A002000A780E00050084A7FA -:10594000010004194D3284A770004001C600602D8B -:10595000682F0C089024782D682CCE0084A70800AE -:1059600048014B780800EC7884A0030004094D320C -:1059700004080B3C84A70400C801B87884A0008008 -:10598000A8014B780800EC7884A0030004094D328C -:10599000E47884A0070086A001004011C07885A6A5 -:1059A000004830205A7E1B78FB00050084A7800049 -:1059B00040018478FCD028010C08573A1B6822006B -:1059C00005001B680300587884A0005F1E682F68DC -:1059D0000000336800004B780800EC7884A00300D6 -:1059E0000409AC2B84B2000810010401C62504038D -:1059F000C625146B078384A00F00038003800380F7 -:105A0000FCD3180180A0404C100080A0C04B602047 -:105A100048205670602A0500C60060290060ACD09E -:105A20000409573DA068ACD1201184A0000E0409E0 -:105A3000553D086117818CA1FF001C632F83DCD0CA -:105A400010019DA30100CCD0C81184A5FF0038012E -:105A5000EC78E4D010011382B8002920000082A164 -:105A60000C009012EC78E4D0181109200C006000B2 -:105A700082A10B00481209200A00300009203200E0 -:105A80001120000029200000AB780100AB7806004F -:105A9000AB780400AA79AB780000AA7AAA7BAA7D29 -:105AA000C0A80800206885A0001022680C087A3A77 -:105AB00085A00100CE00050082A206000419493A23 -:105AC000A87DAC7E3786ACA5FF00B4A6FF00AC7FF6 -:105AD0004787BCA7FF00C4A8FF002069BDC1226999 -:105AE000E4D10409CB3D8CA1FFEC226982A702001E -:105AF000041A233AB4A6FF000409C83D82A6310067 -:105B0000041A233A82A50900040A233A82A8030052 -:105B1000041A233A86A80200D00186A800000419BE -:105B2000233A01200C00EC79E4D1100101200A0095 -:105B300002A590120C08233AC6006029046085A0D3 -:105B40001A0006600060ACC00260CE00050086A7A7 -:105B500000000409233A348682A618002802200196 -:105B6000312018000408193E86A61000081130865E -:105B70002B852B850C08EE3A0409233A0C081A39B8 -:105B80000C08BF39587ED4D618111B787100050057 -:105B90001B78830005000C081739900C86A80200BA -:105BA00008113486547188A100000C21ACD104097D -:105BB000233AECD120113920000041200000E4D12B -:105BC0002011312000004120000082A70200C812ED -:105BD0001C6284A2FF0006A710013920000005A660 -:105BE000900108611F819CA3FF00680102A30812B5 -:105BF0003023078805A786A00102600186A800005F -:105C0000680139200000412000003120000006A07A -:105C10001020700084A200FF0811402084A1FF0022 -:105C200002A5080128212B852B850C08EE3A580D7A -:105C30000C081A390C08BF399B788000AB7801003A -:105C4000AB780600AB780400AA7DAB780000AA7E92 -:105C5000AA7F0028AA789B786000AB7808002068AB -:105C6000E5C022680C087A3A587895C05A781B78B3 -:105C7000820005002000200000002000000020001D -:105C80000000200000002000000020000000200094 -:105C90000000200000002000000020000000200084 -:105CA0000000200000002000000020000000200074 -:105CB0000000200000002000620009001400140011 -:105CC00055984D9814001199FF98140014009000F5 -:105CD000E70000010204082080F8180017000F8474 -:105CE000C1D8140016000AA214000B300CA2140034 -:105CF00000251300002510001000100010001000F7 -:105D00001000100010001000100010001000100013 -:105D1000100000A206383988C420640850A8083052 -:105D2000C128189D01A20C30472861816A84008037 -:105D3000A48456183A8808A8E228CE9CF3A86408E0 -:105D40003EA80C3001A80830E128CE9CA22863713F -:105D500031A8212018A805A20C87DED8A064E06D28 -:105D6000C06FA467806C120205A23D882B881418AE -:105D70003B882770F28537A732A503F076857786B2 -:105D800013A83E8811A88228627114A80A2804A2C8 -:105D9000C064E06DA067C06F14183B8823707685DF -:105DA000778602A861783E886A20C128189D422023 -:105DB0000121CAA802290EA20BA807A2140003A25F -:105DC0000080A48572189A873C88E21F01F608A219 -:105DD0006E852171140004070830CE9C140002A2C5 -:105DE0000080A4850930A884E21944F86E853F88B4 -:105DF000E608F5A861F8EBA801F8140081F8160090 -:105E0000B285F0803295A2FAE21D1400328521F2AB -:105E10001400E21DA884E0D6E61F140008300080BC -:105E200049281110FCA80830008000A08120022819 -:105E30001110FCA889A80830A1203C281110FCA84A -:105E400009A217000C300080A485E21DC1DA1400FD -:105E5000100201A81400E0263A87A3FAF219E026FE -:105E6000F21814000BA214000DA206381002229D95 -:105E7000040706A265687E812A84C11D2388160056 -:105E800042600880FAA860812A84808121F008306D -:105E9000A884D7114270DD201100D5202288160079 -:105EA00000002601D07084A0004C04809020047271 -:105EB00008709CC005A2A0110C72FF822801FF8A05 -:105EC0007811007284D260110478CCD010010C08D3 -:105ED0005B4307700800037008002E0100200500D6 -:105EE000007084A0030002709CC684D088050871ED -:105EF00000E0087006A1D81D84A103000409CA3F70 -:105F000084A1E0010419CA3FF4D1881D84A10030A6 -:105F100086A00010600D112080010C7111823001EB -:105F20000870F4D0201D0C7006A1C00D077012007F -:105F3000087100E0087006A1D81D84A1030068055F -:105F400094D1B00DF4D148050770020080082804F0 -:105F50000871FCD130010C08D640FF8A0409543F77 -:105F6000B80C0C708CA0FF07E801047084D0780195 -:105F7000147005A048111070107306A3E01D0023D3 -:105F800005A0280102A1201E077010003000FF8A22 -:105F900048010C089A42E81DD8090C085C402E0103 -:105FA00000200500047208719CC10381181207705B -:105FB0000200C00C05A2881D0770080003700800CD -:105FC0000600012001470420CCD010010C085B43DF -:105FD0000E002E01002005002864FF840805702CA7 -:105FE0000470BCA00F00B8A71D403C27FB874811D8 -:105FF00010020C0875259C6075A09001880C392052 -:106000001240042768AE086830A60C6829A52184D0 -:1060100038013887042705A0A81D9C7075A0001DB5 -:1060200005000000050009000D0011001500190011 -:106030001D000000030009000F0015001B000000F8 -:10604000000012400F4000000000008000001240DD -:1060500000001A40174000000000000000001A4035 -:1060600000001540154000000000008000001540B1 -:1060700000001B401B4000000000000000001B400F -:10608000792000477120100007700A000770020095 -:1060900003700100092002007120500007700A00FF -:1060A00007700200037000000120FF010420FCD0F3 -:1060B00028110981180171202000800C050004704E -:1060C0000480041AB2400871087006A1E01D84A182 -:1060D000E00120010C080E410408D24007701200B4 -:1060E000192000000871087006A1E01D84A1E001DC -:1060F00020010C080E410408D2409CA10C3086A35C -:106100000420900186A30800C001047084D04811C7 -:106110000871087006A1E01D84A1030010010408A5 -:106120000E4186A30C20F0190072048230020C7319 -:1061300084A3FF0710010C0875250871087006A1DB -:10614000E01D84A1E00118010C080E4170040770E5 -:106150001200007084D048111073147005A3280138 -:106160000C7184A1FF0704195C400871087006A136 -:10617000E01D84A1E00118010C080E41B000077079 -:1061800012000770080004709CD0E81D08710870A8 -:1061900006A1E01D84A1E00118010C080E412800B1 -:1061A0000770120008710381880E03700800050053 -:1061B000087184A1E001A815087184A1E001881587 -:1061C00084A107000200EA40F840E840F840E840B7 -:1061D0004841E84046410C087525047084A0100031 -:1061E0008DC00670FF8A18114920000005000C08B8 -:1061F0009A42E81D0500047084A010008DC006704E -:10620000047084D040110871087006A1E01D84A1BB -:10621000030008013000FF8A18010C089A42E81DAB -:106220000500077012000871041D114191200060E3 -:10623000041D1541912000600770120007700800CE -:1062400004709CD0E81D077012000871FCD1D81DA5 -:1062500003700000007005A03011047005A0181133 -:106260000C7005A00801400C4920000084B2000217 -:106270001801012000001000012001000C08A73BBC -:106280001B6802005120000005000C0875250C0851 -:1062900075250C088741107214710C709CA0FF07C3 -:1062A000002800A311A289A10000A1040427582CF2 -:1062B00060AC0863002222A30C6300211BA300240E -:1062C00005A340013812128410820A8389A10000BC -:1062D000602B580C602B078A060004609CD01801C4 -:1062E000BAA717401000BAA70F400E003DA7002C18 -:1062F00086688A6F926C8E6B0871087006A1E01D2B -:1063000084A1E00110010C080E41077012000C0876 -:106310005C400500508A3987042704A0681100609A -:1063200064A00811602D046084A00F0080A02D409F -:106330003C20FB870C09752505002601D600D0708E -:1063400084A0004C04809020DE008468602088686F -:106350008C6B906C5780D4AAFF0084A0FF000600CD -:10636000046884A008000E001801B8A017401000AF -:10637000B8A00F4084B200021001207E0800247EE5 -:10638000B5A60C001C68B4D0080185C6002405A37E -:106390005005582C0427046160AC006000A448201C -:1063A000CCA9040018010C08A34300041A7004606F -:1063B00001A31E709CD14001106081A000002270DA -:1063C000146081A0000026700862002402A21270EE -:1063D0000C62002303A21670027607700100602B86 -:1063E0000C08C54210000C089A42E81D2E0100203E -:1063F00005002601D600D07084A0004C04809020B7 -:10640000DE0007700400047094D0E81D03700800DB -:106410002E01002005002601D600D07084A0004C7B -:1064200004809020DE00207E84B200020811247EC9 -:10643000B5A60C001C68ACD0181185C6037000000E -:1064400028685020602D0460BCA00F00B8A71D4034 -:106450003C27FB87381110020C0875259C6865A045 -:106460002001880C0C089A42E81D2E01002005002E -:10647000260106001600D600D07084A0004C0480CF -:106480009020207E84B200020811247EDE003E00AF -:106490004E00B5A60C001C68B4D0280185C6037058 -:1064A00000000770040049203542286855A0D60036 -:1064B00004099642702D602E0470BCA00F00B8A78E -:1064C0001D403C27FB87401110020C0875259C706D -:1064D00075A060207005800C042768AE086822A4AF -:1064E0000C681BA36802518A10110C0875253887A7 -:1064F000042705A0901D9C7075A06020D001E008C5 -:10650000228420841A8399A300000869002422A110 -:106510000C6900231BA110120C08752584B200021F -:10652000180171205000100071202000DE000408C6 -:10653000C341DE002E01002005000870060084A083 -:10654000E0010E00100106A0050084A0030086A053 -:10655000030008110500042778AC0078082F94D0B8 -:106560000419A6431A7004781E70087812700C780B -:10657000167004609CD02001107822701478267068 -:106580000276047084A0100085C006707920004750 -:10659000518AE8013887042705A068119C6005A08E -:1065A000B8016020046084A00F0080A01D403C2042 -:1065B000FB870C0975250870060084A0E0010E0019 -:1065C000100106A0280084A0030086A00300050097 -:1065D00051200000050026010600D600D07084A0DE -:1065E000004C04809020DE008E00087184A103001E -:1065F0002811286805A0780104086D3F0871FCD1B6 -:1066000018010C08D640880C077010000871FCD1E6 -:10661000E80D0C08D640087086A00800301D0070F8 -:1066200005A0181D0370000049200000060001208D -:1066300001470420CCD010010C085B430E002E0152 -:10664000002005002601460136015601C600D6008D -:10665000D07084A0004C04809020DE0049201F43AD -:1066600080AD1100A02084B20002180199203200F0 -:106670001000992031000C7084A0FF072A68077071 -:106680000800077002000370010018010080AC8050 -:10669000A5530C7084A0FF0730010770040004703C -:1066A00084A00400E01DCE0049200000037000001B -:1066B0005E013E014E012E01002005001468FCD051 -:1066C00004099E43007084D0E005247EB5A6040032 -:1066D00007700400047084A00400E01D1871160007 -:1066E0001C71160020711600247116001B7000002A -:1066F0001F70FF3F2370000027700000137004001C -:10670000177000000276077001000120FFFF0920CA -:1067100031000A200A200871087006A1E01DFCD192 -:10672000D00D2E0026722E0022722E001E722E0018 -:106730001A7207700200087086A008001001040891 -:106740000E41077004000370000005004920C3419A -:106750006800087084A00300100106A0050006A0D0 -:1067600020201820582C602149200000588B0061FF -:10677000002108A41A71046001A31E700600042BF6 -:1067800084A008005001106081A000002270060063 -:10679000146081A000002670060084A1070011206B -:1067A00008002AA20862002412A226000C624022DD -:1067B000002343A82E00FF887011002502A20801C3 -:1067C0005012202241200000042B9CD010010E000A -:1067D0000E000E005004127517700000027686A994 -:1067E000C3411811077001002800047084A0100034 -:1067F00085C00670002500A11A70042B84A0080033 -:1068000010010E004E001E0089A100001E710C2B0D -:106810008CA108003001A1A40000227481A0000016 -:106820002670002522A2C3A8000012742028167426 -:10683000027686A9C3411811077001002800047070 -:1068400084A0100085C00670598B602B792000470A -:106850000C08C54206A00500912000809120006030 -:10686000AC7805A068117479D07006A148111C7825 -:1068700005A030011F780000040E3D4491208040A7 -:1068800069208047FDC7006884A00F009811D06878 -:10689000B4D08001BCD07011F60079200001FCD783 -:1068A000101179200002307884A0C00010110C086B -:1068B000D522FE00FCD7200169204047FCC7180CF8 -:1068C0003078018032780419C744347832786120F6 -:1068D000C06C69208047FDC7CC6805A028010180F5 -:1068E000CE6810110C083946006884A00F006801BA -:1068F00086A00100500140680DA03801042105A0C8 -:10690000200101800A200409D645146805A0A801C9 -:10691000018016689011A3680100F600FCD71811D9 -:10692000792000021000792000010C086E3CFE0066 -:10693000606805A010010C08D5227C6805A0400104 -:1069400001807E68281163680000D068C5C0D268E5 -:10695000D068FCD0B001FCC0D268A920000234602D -:1069600005A0580101803660D068FDC0D2682811AA -:10697000106005A010010C08D522E0AC1000041F27 -:10698000AC44FCD738016120C04C69204047FCC7AB -:10699000040869445904387801803A78A0113C7899 -:1069A0003A786120C04C69204047FCC70C6805A0BC -:1069B00010010C084345FCD730116120C06C6920E0 -:1069C0008047FDC7980C1078CCD06801ACD020115E -:1069D000A4D04801ADC0127891200180040EEF448C -:1069E0000C08A1200500912001800500407801805D -:1069F0004278041942454478427869204047FCC7F0 -:106A000079200002D46805A03801E07D04A520119A -:106A1000D668D068BCC0D26879200047106805A04D -:106A200010110120010101801268FCD7180180A01B -:106A3000D08D100080A0C08C4020042065A0E00113 -:106A4000246005A0B001018026609811006805A0AF -:106A50003001486806AC18110C08D645680060681B -:106A600005A018012760010020000C0884450428B7 -:106A7000280C0060402C100CFCD73811692080478E -:106A8000FDC7792000010408FF440500092000002B -:106A9000A920000208609CD05805246005A01801B8 -:106AA00001802660180408609CC084D01011ACD00E -:106AB000C0010A60046005A0D801D600C600160017 -:106AC00068201060018012600C08C737002D682C08 -:106AD00060200C08021C0C08B21D1E00CE00DE0057 -:106AE0003800BDC00A608DA1010010008DA1000119 -:106AF000E0AC1000041F474584A1010030018CA1C7 -:106B0000FEFF0E690C08D52208000E690500002C56 -:106B10007A681467726F176000002B6000001B60BA -:106B20000600B46084A0005F1E60206084A0FF00A7 -:106B300085A0600022600060422069208047FCD769 -:106B4000101169204047586806AC101100285A6897 -:106B50000C089A1B186805A0100101801A680868C3 -:106B6000A4C00A681068087909810A7901801013A5 -:106B70000C087525126818111079A5C112792F60BB -:106B8000000033600000682C0C08BF1DFCD71811F2 -:106B900069204047100069208047106984A10001E6 -:106BA0000120060018117669012004000C08CB2290 -:106BB0000500D60048696021FCD718116920000241 -:106BC0001000692000010C0890241B600600586822 -:106BD00084A0005F1E60206084A0FF0085A04800A4 -:106BE00022602F60000033600000086884A0FDFF71 -:106BF0000A683068B4D0B0014B680400A9201400C2 -:106C0000486894D01001041FFD454B680900A92075 -:106C10001400486884D01001041F0646A920FA0019 -:106C2000041F0D461B685400DE0063680700050062 -:106C300079200047E1008900A900092002006920AD -:106C400080470F6800001368000017680000098182 -:106C5000180169204047A80C05001920A3003A7BC1 -:106C60003E7B050019203300427B467B050019203E -:106C7000DD32327B367B05004C6A85A20000F001D4 -:106C80005069BC6B00A3C60064210463FF83381104 -:106C90001182480108811AA1B80EBC69A80CCF68FE -:106CA0000A00CE0005004C69BC6A64220860B5C0C9 -:106CB0000A6010820981C81D4E69CE0005001600C9 -:106CC000041D5D4691200060041D61469120006016 -:106CD000EC70DCD01811D4D09001A0008EAE000171 -:106CE00038011478F5C0C5C01678D4D0801560047A -:106CF0001478FDC0C5C01678D4D048152804E4D057 -:106D00000409C446041D7F469120006009200C0040 -:106D1000041D8546912000600981D01DE47084A087 -:106D2000FF0186A0FF011011EC70C0088EAE0001BB -:106D300028011478F4C0FCD0301120001478FCC075 -:106D4000F4D00811C4C0167804788CD00005C600B1 -:106D500061200000186084D0B81186AE0002E60001 -:106D6000712010002001DB700100E4781800DB7056 -:106D70000000E078C670C3700E801B600100912097 -:106D80008040EE00CE001800CE001F680C001E00F0 -:086D9000A070A2700500260CA2 -:00000001FF -/***************************************************************************** - * QLOGIC LINUX SOFTWARE - * - * QLogic ISP12160 device driver for Linux 2.2.x and 2.4.x - * Copyright (C) 2002 Qlogic Corporation (www.qlogic.com) - * - *****************************************************************************/ - -/************************************************************************ - * --- ISP12160A Initiator Firmware --- * - * 32 LUN Support * - ************************************************************************/ - -/* - * Firmware Version 10.04.42 (15:44 Apr 18, 2003) - */ diff --git a/firmware/qlogic/1280.bin.ihex b/firmware/qlogic/1280.bin.ihex deleted file mode 100644 index 612c2633f8cd..000000000000 --- a/firmware/qlogic/1280.bin.ihex +++ /dev/null @@ -1,2008 +0,0 @@ -:10000000080F0B0000107800411000002E3E000089 -:100010004320504F525947495448312039392C31E7 -:1000200039313239312C39392C3339313439512085 -:100030004F4C494720434F435052524F54414F4930 -:10004000004E492050533231303446207269776D6A -:10005000726120655620726569736E6F30202E388C -:1000600035312020432073756F74656D20726F4E9B -:10007000202E303050206F72756474634E202E6FC6 -:100080002020303020200024C920FF980120FC04CB -:10009000042086A08010C000541071200001A070C0 -:1000A000A270C12010008920741378006D10012007 -:1000B000FC04042086A08012C00069107120000298 -:1000C000A070A27071200001A070A270C120100069 -:1000D0008920F81378006D10C120200089201C139E -:1000E00071201000C3700400C7705349CB702050BA -:1000F000CF702020D37008000120FE04D670C120EC -:100100002100192000000920FFFE00210B20A5A5D9 -:10011000ECA1FF7F642D6B200A0ADCADFF3F542B5E -:100120005B205050142186A2A5A54000A41086A3F0 -:100130000F004000A0106A2C5A2AC120200019206C -:100140000F00780080106A2C5A2A7800A2106A2CBE -:100150005A2A30212821A2A1004F248424842484F7 -:1001600024842484248492A1009909200000012081 -:1001700032007810C12018227920004FA02F0824C7 -:1001800011200000A9204000A4420981C000BF1036 -:10019000092000FF003402A14800CF104000CF101A -:1001A000A820A4420120FC04042086A08010C000E6 -:1001B000E510712000017E0D6920404F7810B04D90 -:1001C0007F0D1078EDC012781B78640078000A115A -:1001D0000120FC04042086A08012C00005111478C0 -:1001E000EDC0D5C016781B786400712000027E0D2A -:1001F0006920404F7810B04D6920804F7120000178 -:100200007810B04D1478D4C016787F0D78000A119C -:100210001478E5C016781B783C00CA7EC27CC67B89 -:100220006778000000788DC0027831203000AF7808 -:1002300001012378020027780200092002006920CA -:10024000404F1B680300236807002768FA002B68EB -:1002500008002F682800376800003B6806003368F4 -:1002600008003F680000098140005E11D3680A0061 -:10027000C368C04F7920004F1478E4D0C000441107 -:10028000ECD0C0004811D768297378004A11D768AC -:100290000D7378004A11D7682D73C768C054CB68B6 -:1002A000C053CF68C094AB684497AF684997B368B0 -:1002B0004497B7684497A76801006920804F780089 -:1002C0001E11D3680A00C368C0511478E4D0C0007E -:1002D0006A11D768397478006C11D7681974C768C7 -:1002E000C074CB684054CF68D095AB684997AF686D -:1002F0004E97B3684997B7684997A7680100107887 -:10030000ECD0C000C2111478E4D0C000B4117E0E4D -:100310006920C05371200002EC70E4D0C000951138 -:1003200019200C0C21200C007810502078009B1113 -:1003300019200A0C21200A0078105020692040540E -:1003400071200001EC70E4D0C000AB1119200C0C3E -:1003500021200C00781050207800B11119200A0CCF -:1003600021200A00781050207F0E7800DB11192020 -:100370000C0C21200C006920C053781050206920FB -:100380004054781050207800DB116920C0537E0E55 -:1003900071200001EC70E4D0C000D41119200C0CC5 -:1003A00021200C00781050207F0E7800DB111920DE -:1003B0000A0C21200A00781050207F0E1120020024 -:1003C0006920C05409200200A920000137680000FC -:1003D0000B684000C87B86A3FFFEC000F2111768BF -:1003E00000011F6864007800F611176864001F6838 -:1003F0000200E8AD1000F000E3110981C000E11136 -:100400001182400004126920C0747800DF11781056 -:10041000A2267810124778101B1E7810424D9120AA -:1004200000217920004F1078ECD040001812712084 -:10043000200078001A1271205000912000227920AB -:10044000004F71202000912000237920004F107868 -:10045000ECD040002C127920000178002E12792077 -:1004600000027120404F912000247920000171206A -:10047000804F912000207920004F71201000003221 -:1004800085A03D30902071201000C37000009000C6 -:100490004D12C07086A00200C0004D127810C11528 -:1004A000392000001078ECD0C000CF1278108E14E4 -:1004B000AC7805A0C0006B12680061126C7865A072 -:1004C000400061127810DC237810E8206800781270 -:1004D0006C7865A040006B127810DC2368007812FD -:1004E0000920474F1120874F04210C2205A140000D -:1004F00078127810511F7120404FA47005A0400061 -:100500009D12507485A4000040009D1279200002C5 -:1005100091200080D4728CA23D3090217810B12BB4 -:100520009120008091203D3068009D127920004F7D -:100530006C7865A040009D12712010007810DC23BB -:10054000E000A5127920004F712010007810164BA2 -:100550007120804FA47005A04000BD12507025A0EE -:100560004000BD127920000191200080D4728CA23D -:100570003D3090217810B12B9120008091203D30AA -:100580007920004F712010006800C9126C7865A0B6 -:100590004000C9127810DC23E00053127810164B8B -:1005A0007800531278108E14AC7805A0C000E712C2 -:1005B0006800DD126C7865A04000DD127810DC2345 -:1005C0007810E8206800F1126C7865A04000E7120E -:1005D0007810DC236800F1120920474F042105A0A0 -:1005E0004000F1127810511F7120404FA47005A0F7 -:1005F00040000C13507485A4000040000C137920B7 -:10060000000191200080D4728CA23D30902178109E -:10061000B12B9120008091203D307920004F712036 -:100620001000680016136C7865A04000161378104F -:10063000DC23E000CF127810164B7800CF123C1369 -:100640003C133E133E134B134B134B134B135613D8 -:100650005613631363134B134B134B134B133C137E -:100660003C133E133E134B134B134B134B135613B8 -:100670005613631363134B134B134B134B13780035 -:100680003C137E007E107E12912000247810D12928 -:100690007F127F107F00912001807C007E007E1001 -:1006A0007E127810C8137F127F107F009120018086 -:1006B0007C007E007E107E12912000237810D129CC -:1006C0007F127F107F00912001807C007E007E10D1 -:1006D0007E12912000237810D129912000247810D7 -:1006E000D1297F127F107F00912001807C0094131C -:1006F000941396139613A313A313A313A313AE1368 -:10070000AE1396139613A313A313A313A313AF133C -:10071000AF13AF13AF13AF13AF13AF13AF13AF13C9 -:10072000AF13AF13AF13AF13AF13AF13AF13780003 -:1007300094137E007E107E12912000237810D12920 -:100740007F127F107F00912001807C007E007E1050 -:100750007E127810D5137F127F107F0091200180C8 -:100760007C007C007E107E127E0D7E0E7E0F7E0051 -:10077000712000016920404F7920004FEC7084A067 -:10078000001CE2787810B04D7F007F0F7F0E7F0D48 -:100790007F127F107C00003C84A007007900CD13FD -:1007A000DE13DE13E013E013E513E513EA13EA1397 -:1007B000003C84A003007900DA13DE13DE13F31388 -:1007C000F3137810B229912000227810EC477C00B6 -:1007D000912000217810EC477C00912000217810B6 -:1007E000EC47912000227810EC477C0091200021FA -:1007F0007810EC477C00181418141A141A142714D3 -:10080000271427142714321432143F143F142714CA -:100810002714271427145014501450145014501433 -:1008200050145014501450145014501450145014A8 -:10083000501450145014780018147E007E107E124C -:10084000912000247810D1297F127F107F00912001 -:1008500001807C007E007E107E127810C8137F120B -:100860007F107F00912001807C007E007E107E1230 -:10087000912000237810D1297F127F107F009120D2 -:1008800001807C007E007E107E1291200023781073 -:10089000D129912000247810D1297F127F107F0068 -:1008A000912001807C007E007E107E127E0D7E0EE7 -:1008B0007E0F7920004F712000026920404F003DDB -:1008C0008CD040006614EC7084A0001CE278781094 -:1008D000B04D003D84D0400074146920804F7120D9 -:1008E0000001EC7084A0001CE6787810B04D7F0FFA -:1008F0007F0E7F0D7F127F107F007C0008700B80C1 -:10090000C8008914077002008CA0E001C0008A149E -:100910009CD0400089147A087A09C370024078009C -:10092000C41568001A1561200000186084D0C0004A -:100930001A15287805A0C0009E1410001B15780019 -:100940001A151079F4D14000A4147800B914147960 -:10095000ECD14000BD14FCD04000B3147E007810F0 -:10096000AE1D7F004000BD147800B9147E007810E1 -:10097000A11D7F004000BD14012007407800C31571 -:100980001079FCD0C000C7146120404F9CC1FCC747 -:100990007800CB146120804F9DC1FDC7646005A025 -:1009A000C0001A15127982602878FCC086A0180051 -:1009B000C000DB147E0C7810851B7F0C2B780000A8 -:1009C0007C6065A0400000157E0C9C607810901E35 -:1009D0007F0C9F6000007810D51C092018008760EC -:1009E000030110787E00FF84C000F614FF854000EC -:1009F000F814C5C012787810BB1D7F001278C000B3 -:100A0000141578100D1E10789CD0C00008156120B8 -:100A1000404F78000C156120804F9CC012787F6099 -:100A20000000D460DCD040001815DCC0D660012086 -:100A300005407800C3157800C1157C001078F4D00B -:100A400040002315012007407800C31506A0C2709E -:100A5000C670CA70CE70DA70C0703DA08AA0400027 -:100A6000C80031157900381500218AA04000C8005F -:100A7000CF1579007815C1151716E0154F16871692 -:100A80008716D715ED1C9216CF15E415E615E81557 -:100A9000EA15F21CCF15A016FD16A51BE71CEC15D8 -:100AA000EA192C1A671AB81AA519B219C619D91950 -:100AB000EB17CF15341741174D1759176F177B17C1 -:100AC0007E178A1796179E17D317DF17CF15CF15E6 -:100AD000CF15CF15F8170A1826185C188418941823 -:100AE0009718C818F9180B1974198419CF15CF1550 -:100AF000CF15CF159419CF15CF15CF15CF15CF150D -:100B0000171D1D1DCF15CF15CF15211D661DCF1526 -:100B1000CF15CF15CF15111681169A16F7169F1BF4 -:100B2000CF15CF15681BCF156A1D091D131DCF15D5 -:100B3000CF15CF15CF15CF15CF15CF15CF15CF1595 -:100B4000CF15CF15CF15CF15CF15CF15CF15CF1585 -:100B5000CF15CF15CF15CF15CF15CF15CF15CF1575 -:100B6000CF15CF15CF15CF15CF15CF15CF15CF1565 -:100B7000CF15CF15CF15CA72C67101200640780077 -:100B8000C315CE73CA72C67101200040C2706800DE -:100B9000C415612000001B600100912000509120CD -:100BA00080407C00C37001407800C415C3700640CB -:100BB0007800C41599204100A1204100A92005001A -:100BC000A3537800C115C470C37004007A00780084 -:100BD000C1157800C1157800C1157800C1159120A4 -:100BE0000080C3700400C7705349CB702050CF7091 -:100BF0002020D370080001200F00D670792000005B -:100C00001B780100312030005920001029201A04DF -:100C10005120450461204704C1202000912000504C -:100C20009120804078001804D875DC74DA75DE7481 -:100C300078001A16292000002025D071C872CC73C4 -:100C4000C470A020992030000370010007700600D6 -:100C50001A731E722274267521204000FF81400005 -:100C6000C11582A14000C8003416202106A008202A -:100C70000384127007700400077001000870FCD034 -:100C800040003B160770020084A0E00140004916B6 -:100C9000C37002407800C415A824A55378002B1611 -:100CA0007800C115292000002025D071C872CC73AE -:100CB000C4709820A1203000037000000770060067 -:100CC0001A731E72227426752120400007700600D8 -:100CD000FF814000C11582A14000C8006E1620218E -:100CE00006A0082003841270A824A65307700100F0 -:100CF0000870FCD04000751684A0E0014000631627 -:100D0000C37002407800C415D875DC74DA75DE74DF -:100D100078005216C471C87014219EA70400C00048 -:100D20008F160A20CA727800C015C7700800CB70F1 -:100D30000F00CF700B007800C115D875DC76DA751E -:100D4000DE767800A316292000003025C470C87212 -:100D5000CC73D074C670CA72CE73D27405A0400032 -:100D6000F2160AA44000B316C800BC1601807278BF -:100D700084A000FC4000C016AC7885C0AE7801208D -:100D800005407800C3157E7B7A7A867E827D767CEC -:100D90008CA400FF4000D8160784048004800C81D6 -:100DA0000C810F8118A191A20000B1A6000081A5BD -:100DB00000007800E21607840480048018A391A242 -:100DC0000000B1A6000081A500001A731E722276F1 -:100DD000267005A64000EC16107AC5C2127AAC78CF -:100DE00084A0FCFFAE787800F516AC7885C0AE78AC -:100DF0007800C115D875DC76DA75DE7678000017D4 -:100E0000292000003025C470C872CC73D474C67019 -:100E1000CA72CE73D67405A040002F170AA44000F2 -:100E20001017C80019170180927884A000FC4000B8 -:100E30001D17AC78C5C0AE78012005407800C315F9 -:100E40009A7A9E7BA27DA67E002605A540002817E3 -:100E5000107AC5C2127A967CAC7884A0FFFCAE787A -:100E600078003217AC78C5C0AE787800C11509207B -:100E700000006C7865A040003E1708810060780093 -:100E80003717C47A7800BF150920484F0C21107815 -:100E9000ECD0C000C0151120884F14227800BF1577 -:100EA0000920494F0C211078ECD0C000C01511204A -:100EB000894F14227800BF156120404F28612C62B1 -:100EC0001482148214821078ECD0C0006D17612057 -:100ED000804F2863DA732C631C831C831C83DE73AE -:100EE0007800BF1509204C4F0C211078ECD0C000C1 -:100EF000C01511208C4F14227800BF151879780086 -:100F0000C01509204D4F0C211078ECD0C000C01541 -:100F100011208D4F14227800BF1509204E4F0C214F -:100F20001078ECD0C000C01511208E4F142278002C -:100F3000BF1520791078ECD0C000C015247A780055 -:100F4000BF15C471FCD1C000A6171120C053780092 -:100F5000A81711204054078184A00F00038003804C -:100F6000038068A2006A04689CD04000B717086B31 -:100F70007800B8170C6BFCD1C000BF1721203B02D2 -:100F80007800C11721203B0124241479E4D14000CA -:100F9000CD17C4D4C000CC17D5C47800CD17DDC49C -:100FA000A4A4001CDE74C4717800BE15C477781048 -:100FB0002B1E912000801C6B146A91200180082751 -:100FC0007800BE156120404F18611078ECD0C00049 -:100FD000C0156120804F18627800BF15C477781063 -:100FE0002B1E912000800869186A106BDA77912017 -:100FF00001807800BE15C471102194A20F0082A256 -:101000001000C800B9157810C62784A3004040001E -:10101000081895A220007800BE15C4710021BCC03C -:1010200082A01000C800B915BCD1C0001918112049 -:10103000484F042278001D181120884F0422BDC09B -:101040007E000021BCC01220781023277F01780089 -:10105000C015C4712120494F0424C6701920000016 -:1010600078003518C8712120894F0424CA70FDC347 -:1010700011205418A9200800042206A14000441899 -:101080001082F0003918C471C8727800B81592A2A5 -:1010900054187E0222217F01781044271078ECD06A -:1010A000C0005218FCD340002F187800C115E80387 -:1010B000FA00F401EE0204000100020003006120C6 -:1010C000404F28612C62148214821482C4702A60FA -:1010D000C8700380038003802E601078ECD0C000BD -:1010E00082187E027E016120804F28612C6214826A -:1010F00014821482D8702A60DC700380038003801D -:101100002E60DA71DE727F017F027800BF156120E8 -:10111000404F3061C47032601078ECD0C000C01510 -:101120006120804F3062C87032607800BF15187936 -:101130007800C015C47184A1CFFF4000A3181078B7 -:10114000ECD0C000B915C8727800B81511204D4F09 -:10115000042212217E00192000007810AB2710789D -:10116000ECD04000B3187F017800C015C87184A18D -:10117000CFFF4000BC181021C4717800B8151120B1 -:101180008D4F042212217E00FDC37810AB277F0211 -:101190007F017800BF15C47182A110004800D418E7 -:1011A0001078ECD0C000B915C8727800B8151120BD -:1011B0004E4F04227E00122119200000781089274A -:1011C0001078ECD04000E4187F017800C015C87199 -:1011D00082A110004800ED181021C4717800B815E4 -:1011E00011208E4F04227E001221FDC37810892722 -:1011F0007F027F017800BF15C471C87284A1FDFF12 -:10120000C000B81584A2FDFFC000B81500212079E8 -:1012100022780022247A26787800BF15C471FCD188 -:10122000C00013191120C053780015191120405423 -:10123000078184A00F0003800380038068A2192027 -:101240000000C872BCD2400024199DA31000B4D283 -:10125000400029199DA308009120008000687E00AD -:1012600026A240004819026AECD440003519A5C3F3 -:10127000E4D4400039199DC3F4D4400048190F81CB -:10128000F4D24000441978100828780048197810E2 -:10129000E62778004819CC72086806A240006A194F -:1012A000A4A2FF001478E4D0C0005B1982A4280037 -:1012B000480067194000671978005F1982A443004D -:1012C00048006719C471C6717F02CA7291200180FB -:1012D0007800BA150A6A9DA30A00046805A3066887 -:1012E0007F020C6BC471912001807800BE15C47719 -:1012F00078102B1E91200080146A1C6B91200180B5 -:10130000C8701668CC701E6808277800BE15C470B7 -:101310006120404F18611A601078ECD0C000C015F1 -:10132000C8706120804F18621A607800BF15C471C0 -:10133000C872CC7382A11000C800B91578102A2891 -:1013400084A300404000A31995A220007800BE1598 -:10135000C47778102B1E91200080086A8DC20A6A1B -:101360009120018008277800BF15C47778102B1EC4 -:1013700091200080086A94A2F9FF0A6A046805A017 -:101380004000C11978106F2691200180082778004D -:10139000BF15C47778102B1E91200080086A95C273 -:1013A0000A6A046805A04000D41978106F269120BD -:1013B000018008277800BF15C4774120010049202B -:1013C000050051202000912000807810461E9120B9 -:1013D00001800827086A7800BF15C4771478E4D024 -:1013E000C000FE19FCD74000F8197810AE1D40006F -:1013F000FE197800C3157810A11D4000FE19780071 -:10140000C315C873CC72C677CA73CE727810CD1E5E -:10141000C000281A186805A04000221A08277E0775 -:1014200078105A287F07C000221A01201500FCD727 -:10143000C0001B1A6120404F78001E1AFDC06120B9 -:10144000804F2A78912001807C009120018001202A -:1014500005407800C315912001807800C115C4773C -:101460001478E4D0C000401AFCD740003A1A781033 -:10147000AE1D4000401A7800C3157810A11D400031 -:10148000401A7800C315C677412021004920050085 -:1014900051202000912000807810461E092016005F -:1014A000FCD7C000541A6120404F7800571A6120C1 -:1014B000804FFDC1676003007F6000007667836036 -:1014C0000F002A79D461DCC1D66178106F26912093 -:1014D00001807C00C877CA77C477C6771478E4D0D7 -:1014E000C0007E1AFCD74000781A7810AE1D40006C -:1014F0007E1A7800C3157810A11D40007E1A78006E -:10150000C315BCA700FF9120008009201700FCD75D -:10151000C0008B1A6120404F78008E1A6120804FE6 -:10152000FDC17F60000067600200766783600F0086 -:101530002A79D461DCC1D66178106F2691200180B0 -:1015400041202100492005005120100091200080F9 -:10155000C87005A04000AC1AD460FDC0D6607810F9 -:10156000461EC8703668388784A71F00C000AC1AB2 -:10157000912001807C00192000001478E4D0C00084 -:10158000CE1AC87284D24000C81A7810AE1D40002E -:10159000CE1A7800C3157810A11D4000CE1A78002D -:1015A000C315C872CA72AC7884A00300C000F91ACF -:1015B0003920000084D24000DB1AFDC74120210001 -:1015C000492004005120080078102B1E9120008033 -:1015D0000868D4C00DA80A6991200180388784A7C3 -:1015E0001F00C000E11ABCA700FF3F8738873F8774 -:1015F00084A7000FC000E11A91200080C87284D235 -:10160000C0000B1B1078ECD04000071B69200001C4 -:1016100078000D1B6920000278000D1B6920000175 -:10162000086884A0FDFF0A683068B4D040002D1B14 -:101630004B680400A9201400486894D040001F1B88 -:10164000F000191B4B680900A9201400486884D0D9 -:101650004000291BF000231BA920FA00F0002B1BDF -:101660007920004F09201800C87284D2C000391BAD -:101670006120404F78003C1B6120804FFDC17F609E -:1016800000002A796760010083600F00A7600000F6 -:10169000A860B260B660D460B4D04000581BB4C03B -:1016A000D6607E0CB86065A00860D4C00A6018607F -:1016B00001801A607F0CD46084A0FF77D660AC787C -:1016C0008DC0AE78FF834000631B7C001B68470021 -:1016D000912001807C00CC737810BA1AEC69486ABA -:1016E00085A100184A6885A14000EE68CC732120CE -:1016F0000400A920FF09F000781B2184C000761B9C -:101700001983C000741BEE694A6A912001807C0035 -:10171000FCD7C0008C1B6920404F78008E1B6920CD -:10172000804FC471C6711669FF81C000961BA768FF -:101730000100AC788CC0AE7884D0C0009E1B7810BD -:101740002D1F7C00D875DC74DA75DE747800A71B59 -:101750002EA02025C471C873CC72C671CA73CE7214 -:101760007920004FDE7DDA7CD67BD27A7810041E99 -:101770004000D11CA9200500A120144F9120008019 -:10178000A1419120018009204000781018204000DC -:10179000CA1B78100D1E7800D11C04608CA0FF00BD -:1017A0008EA10900C000D51B7E007810BF237F00EA -:1017B00084A000FF078009804000611C7E0C682C1B -:1017C0007810041E40001B1C002C9E680981C0007C -:1017D000DC1B9F6000007F0C7E0CDC7DD87CD47B02 -:1017E000D07A90A2400099A30000A1A40000A9A56E -:1017F0000000DE7DDA7CD67BD27A682C9C6865A0FE -:101800004000601C0920400078101820C0003E1CD9 -:10181000046084A0FF0086A00200C0001B1C0460BE -:1018200084A0FF0086A00A00C000171C7E0178106B -:10183000BB237F01002D02607800EA1B7F0C7E0C29 -:101840009C607810901E7F0C9F6000007810D51C63 -:10185000092018000860CDC00A6004608660107816 -:101860007E00FF84C000341CFF854000361CC5C0CC -:1018700012787810BB1D7F00127878100D1E78004A -:10188000D11C7F0C7E0C9C607810901E7F0C9F609A -:1018900000007810D51C09201800876003011B6028 -:1018A000030010787E00FF84C000561CFF854000B6 -:1018B000581CC5C012787810BB1D7F0012787810B4 -:1018C0000D1E7800D11C7F0C1478E4D0C0008F1C52 -:1018D0001461FCD140006F1C7810AE1D40008F1CBD -:1018E0007800731C7810A11D40008F1C7810D51C47 -:1018F00009201800876003011B60210010787E001A -:10190000FF84C000831CFF854000851CC5C0127881 -:101910007810BB1D7F00127878100D1E0120074043 -:101920007800C315C474C873CC7214609120008011 -:101930007E0E09201200FCD0C0009F1C7120404F79 -:101940007800A21C7120804FFDC12A7967700500C4 -:10195000D471DCC1D6716A736E72727476707B70EA -:101960000000002C7E702EA030251C6184A1600038 -:101970004000B91C7810B6467F0E9665A6659A663B -:10198000AA66AF600000B360000014672360000027 -:10199000246096A00100C000CC1C00802660781056 -:1019A0006F26912001807C00C37005407800C4152B -:1019B000A92005009920144F912000800A539120FE -:1019C0000180002110A299A30000A1A40000A9A5F4 -:1019D00000007C00C471C77000001E797800C1153A -:1019E000C471C67168217800F41C692000100C696C -:1019F00016A0042D10A2688D0981C000F61C85A2D6 -:101A00000000C000041DC37000407800061DC370B4 -:101A10000340CA707800C4156479C671C47182A18C -:101A20000300C800B91566797800C1156479C671DC -:101A30007800C1150079C671C47102797800C115AA -:101A40000079C6717800C115C470112000008CA007 -:101A50000D004000361D0C814800321D10820C81A3 -:101A60000C814800321D10820C81FF81C000BA1524 -:101A700010820E7A8CD24000621D1079CDC112798D -:101A8000092021001920030084D240005C1D088138 -:101A90001920410011204E97122319204200108274 -:101AA00012231920430010821223192046001082AD -:101AB000122319204700108212231920060011203A -:101AC0005397122111207397122304790678780016 -:101AD000C0150478C6707800C115C471FCD1C0006F -:101AE000721D1120C0537800741D112040540781CD -:101AF00084A00F0003800380038068A2146AB4D21C -:101B00004000831D112001007800851D1120000078 -:101B10000C6B0068DA707800BE151478F4D04000C1 -:101B2000951D01200740DB70000005A07800A01D76 -:101B3000FCD040009F1D01200740DB70010005A084 -:101B40007800A01D06A07C001478F4D04000AC1DE5 -:101B500001200740DB70000005A07800AD1D06A045 -:101B60007C001478FCD04000B91D01200740DB70D8 -:101B7000010005A07800BA1D06A07C0012711A723F -:101B80001E731078C4D04000C41D2274267580AC2A -:101B9000010008810C81A9819880A1203000037088 -:101BA00000008460A220A65307700100747984A10C -:101BB00000FF4000E11D0F810C810C810480048036 -:101BC000078000A17800E41D0781048004807C79EF -:101BD00008A1787A06A011A2107DC4D54000F11D9D -:101BE000847B19A3807C21A40870FCD04000F11DE7 -:101BF00003700100077006001A711E72107DC4D5B3 -:101C00004000011E2273267484A0E0017C00487805 -:101C100065A040000C1E042C4A78632000007C0064 -:101C20007E0F7920004F48786220002C05A0C0006C -:101C3000181E7810B2294A787F0F7C001120009975 -:101C40004A7AC47B19834000281E80A232001220E9 -:101C5000102078001F1E132000007C007E017E02F1 -:101C6000FCD7C000341E1120C0547800361E11204D -:101C7000C07484A7000F0B8084A71F004000411E82 -:101C8000038003800380038005A168A27F027F0197 -:101C90007C0078102B1E00292A68002A2E6808680C -:101CA00084A0EFF90DA80A697E0EFCD7C0005B1E68 -:101CB0000920534F7120404F78005F1E0920934F39 -:101CC0007120804F0C21046805A040006F1E16A1F2 -:101CD000C0006F1E6020006006687E010B200000BF -:101CE0007800721E092000007E01046865A0400093 -:101CF000871E006006687810A21E781064201068A5 -:101D0000087909810A7901801268C000721E107971 -:101D1000A5C112797F0102690669002D6020781043 -:101D2000132B7F0E7C0065A04000A11E08209C6044 -:101D300005A040009E1E62209F60000065A0780004 -:101D4000941E48784A7962207C00076003018F6006 -:101D50000000A9201C0080AC0500A020012000008C -:101D6000A44028681A602C6822607C007E0EFCD794 -:101D7000C000BD1E7120404F3120C04F7800C11EF1 -:101D80007120804F3120C05150708CA00002C000E3 -:101D9000CB1E08A60A2D0080527006A07F0E7C0084 -:101DA0007E0FFCD7C000D51E7920404F7800D71E8B -:101DB0007920804F78102B1E9120008004680A78CB -:101DC00065A040002B1F7800E91E002C0A786020D7 -:101DD000006065A040002B1F106006A3C000E21E3B -:101DE0000C6006A2C000E21E282C4C7806ACC00095 -:101DF000F81E7800281F046806ACC000061F0060AB -:101E00006020066805A0C000061F03680000780077 -:101E1000101F006408786020026486A40000C000DF -:101E2000101F002C026860257F0F7810A21E7E0F05 -:101E30001B600500236020007F0F781064207E0F58 -:101E4000087909810A79106801801268C000281F8A -:101E50001078A5C012780120FFFF05A07F0F7C003D -:101E60007E07002739200000FCD04000351FFDC749 -:101E700041202100492004005120080091200080C9 -:101E80007810461E388784A71F00C0003D1FBCA7DE -:101E900000FF3F8738873F8784A7000FC0003D1FA2 -:101EA000912001807F077C006C78092074970C21B9 -:101EB0000DA140005B1F65A07800DC2361200000BD -:101EC000186084D0C0007B1F10788CD040006C1F3D -:101ED0008CC01278FCC76920404F7800711F8DC0FC -:101EE00012786920804FFDC7912000801C681F6810 -:101EF00000009120018005A0C0007C1F7C008CA008 -:101F0000F0FF4000821F7810B2297900841F941FCF -:101F1000971F9D1FA11F951FA51F951F951F951FFB -:101F2000AB1FDC1FE01FE61FFB1F951F951F7C00EA -:101F30007810B22978102D1F012001807800072029 -:101F4000012003807800072001200480780007200A -:101F500078102D1F01200680780007209120008036 -:101F60007E07FCD7C000B71F6920404F3920090009 -:101F70007800BB1F6920804F39200900006886A0C7 -:101F800000004000C51F7F001E6F912001807C0073 -:101F900074687F07BCA000FF412021004920040095 -:101FA000512010007810461E388784A71F00C000FB -:101FB000CF1F9120018001200A8078000720012096 -:101FC0000C807800072078102D1F01200D807800EC -:101FD00007201478E4D0C000F91FECD04000F31FB4 -:101FE000FCD74000F31FE4787800F41FE078C67057 -:101FF00001200E80780007207800951FFCD7400054 -:102000000120EC7878000220E878C67001200F806B -:1020100078000720C270FCD7C0000F20DB700000E2 -:1020200078001120DB700100612000001B600100BE -:10203000912080407C0080AC0100FF814000432063 -:1020400099203000A0200C7084A0FF0340002520C0 -:1020500018707E001C707E0020707E0024707E0050 -:102060001271AC811A721E732274267503700100FE -:102070000770010008700B80C8003720077002004D -:102080008CA0E001C0004320A55306A0037000000F -:10209000077004007F0026707F0022707F001E7092 -:1020A0007F001A707C0011202000092010000A6BAC -:1020B0000E6C036800FD076818001A6A002DE8A07E -:1020C000080090A204000981C00054207C00046034 -:1020D0008660082C63200000687805A06A794000BB -:1020E0007120022C780072206E797C007E0C6120B9 -:1020F000004F87680301082D6B200000686005A071 -:102100006A6140008320022D780084206E617F0C7C -:102110007C0091200080042C6E7805A0C0008E20E9 -:102120006A78912001809C6005A04000A7207E0C69 -:10213000602008209C6005A04000A32062209F60D2 -:10214000000065A09C6005A0C0009B2048784A79EB -:1021500062207F0C487862209F60000085AC000000 -:10216000C000B1207810B2294A787C00A920100064 -:1021700006A0048086808E81C800BC2000A2F000EA -:10218000B72086808E817C007E15A920100005A0D6 -:102190004000E2201AA1C800E22013828D8148008D -:1021A000D5201AA1C800D620F000CA207800DA2075 -:1021B0001AA108231082F000CA207E00003284A0F9 -:1021C000FFF780207F007F157C007E00003285A015 -:1021D00000087800DE20747DD07006A54000CE2176 -:1021E0001078502000788CD040000A21ECDA4000B2 -:1021F0000A217E0E9120008071202000047005A02D -:10220000C000072108707F0E86A0080040000A2148 -:102210007800CE217F0E7800CE217810041E400079 -:10222000CE2146A070790025008012A1092040002F -:10223000C800192178002021D07206A24000202178 -:102240004088092080007E0C1271077001009920DF -:102250003000A920200080AC0100A02061200000F7 -:10226000FF88400032217810041E0870FCD0400026 -:10227000322107700200912001808CA0E001C00093 -:102280006921A553FF8CC0004721FF884000B82179 -:1022900078005121002C8E78A920200080AC01000C -:1022A000A020A5537800B82146A018721C73C4DA88 -:1022B000400059212074247592A240009BA3000085 -:1022C000A3A40000ABA500001A721E73C4DA40007C -:1022D00069212274267506A0077004004000B82109 -:1022E000FF8C4000722178100D1E7F0C78100D1E9F -:1022F00046A0887800808A7886A002004000982155 -:102300007C7A787BC4DA40008421847C807D747977 -:1023100007810480048010A299A30000A1A40000FA -:10232000A9A500001A721E73C4DA4000CE212274DF -:1023300026757800CE211460FCD0C000A021692051 -:10234000404F7800A2216920804F912000801F68B3 -:102350000200FF884000AE2146A08C786020780003 -:1023600098218B780000AC7885A00300AE7891208E -:1023700001807800CE217F0C8B78000078108D23AF -:10238000046084A00F007810CF21FF884000CC218A -:102390008C786020046084A00F007810CF21780032 -:1023A000E8207C007900D121E121FF211D22E121DB -:1023B0002E22F221E121E121E121FD211B22E12157 -:1023C000E121E121E121E12139200004BC7805A7C8 -:1023D000BE78086005A70A60781071229C60BA7800 -:1023E0009F600000781077237C00BC78C4D0400048 -:1023F000F8217800E1211C60BDC01E607800052234 -:102400007810BF23BC78C4D0400005227800E121B9 -:10241000BF7800000460078084A0FF00B2780180CC -:10242000400018227810712240001822BC78C5C0E4 -:10243000BE7878001A22780090227C007810BB23A6 -:10244000BC788CA0000EC0002522C4D0C00027227A -:102450007800E12178107122C0002D2278009022AE -:102460007C00BC78C4D0400034227800E121BF78E1 -:102470000000146711200100A822186084A0FF004A -:1024800005A040005422BCA700FFA92020008EA078 -:10249000010040005422BCA7008011200200A920A6 -:1024A00000018EA002004000542278006E227810B5 -:1024B0002B1E002D912000802B6800002F6800004B -:1024C000086884A0DEFF0A68E8AD10009120018052 -:1024D000F0005722118240006E22A92000017800EE -:1024E000572278100D1E7C009F600000B4786DA00C -:1024F000002CB678C0007C22BA78780084229E68CE -:10250000002D0260B87806ADC00084220260B07869 -:102510000180B278C0008F22BC78C4C0BE78B87881 -:10252000602006A07C007E0E2EA03025BA7DB67DF0 -:10253000AE65B2651C60A260482084A9FFE11E6000 -:1025400084A960004000A3227810B6469665A6656F -:102550009A66AA6614677120804FFCD7C000AF222C -:102560007120404F84A7000F0B8084A71F004000FC -:10257000BA22038003800380038005A1C47168A18F -:102580000027078084A00F00038003800380C871A8 -:1025900000A1C260912000801478C4D04000DF22E6 -:1025A000ECD04000DB22FCD7C000D822F4D0C00021 -:1025B000E6227800DF22FCD0C000E6221078F4D0BA -:1025C000C000E622086E84D640001023FCD9C0006B -:1025D0001023912001807810A21E91200080781095 -:1025E0006420912001801478E4D0C0007523147811 -:1025F000C4D040007523ECD040000823FCD7C000B5 -:102600000323F4D0C0000C2378007523FCD0C00055 -:102610000C23780075231078F4D0400075231B60DC -:10262000210078007523246096A00100C0001723C4 -:1026300000802660106A146802A248002A23400025 -:102640002A2391200180392000029C60BA789F6083 -:1026500000007810772378007523082CFCD94000FF -:102660005223006865A040005223046A007084A0D1 -:102670000200400048234C7006A2C0004823046BAF -:1026800060210423026005A0C00044230269602287 -:10269000026178005E23002D60207810132B086EF5 -:1026A00060210262066978005E230068026965A005 -:1026B00040005A23026178005B23066960210360B1 -:1026C00000006021FCD940006523B4A6FCFF0A6E1F -:1026D0001068087D28850A7D00801268912001809D -:1026E000B4D640007523B6A640000A6E7810B31E1B -:1026F0007F0E7C00086005A70A609120008078109A -:10270000642091200180B87865A040008A239C60F5 -:10271000BA789F60000078007723B678BA787C009A -:1027200070797478182884D340009723008012A110 -:1027300048009C23008012A1C800AC2384C37C7A8B -:102740001A72787A1E72C4DA4000A723847A227241 -:10275000807A267206A084D34000AC23008076786D -:10276000D2701C7805A04000BA2301801E78C000FA -:10277000BA236800BA23912080407C003920D323FB -:102780007800C1233920D923042705A04000D22393 -:1027900000AC68200869106812690A680C6914683E -:1027A00016690E6838877800C1237C000300090091 -:1027B0000F0015001B00000015001B000000412049 -:1027C00000000C787900E123B3258625E5235E24FB -:1027D000392074973427107D78000524846086A002 -:1027E0000301C00047241461186005A14000FA23CA -:1027F000FF86C000162478004724038680A05597E2 -:102800000C6202220080106202227810862030863C -:102810008EA60F004000D2246C7865A0C000EB2388 -:10282000087802A6C8001624ACD5C00016243A26A3 -:102830007C0082A60300C800D22491200080692079 -:102840000000186884D0C00042241120559704224B -:10285000C67010820422CA7084D6C000322410824E -:102860000422DA7010820422DE7085A62080C270F5 -:102870001B68010091208040107884A0CFFF12785F -:10288000912001803B2000007C001078ADC01278C0 -:102890007800D2243A267810BD25C000E0256C7857 -:1028A00065A0C000EB2391200080107884A0CFFFAA -:1028B000FF8640005924ADC0127891200180780035 -:1028C000E025392074973427107D78007A248460BD -:1028D00086A00301C000BB241461186005A140005C -:1028E0007324FF86C0008B247800BB2480A65597F4 -:1028F0000C6202227810862030868EA61E004000D0 -:10290000D2246C7865A0C0006424087802A6C800B0 -:102910008B24ACD5C0008B243A267C0082A606000E -:10292000C800D2249120008069200000186884D05B -:10293000C000B6241120559709204E97A8261C21C7 -:1029400004221A2008811082F0009C2485A6308081 -:10295000C2701B68010091208040107884A0CFFFD6 -:1029600012789120018006A0092075970A203A204C -:102970007C001078ADC012787800D2243A26781006 -:10298000BD25C000E0256C7865A0C00064249120BE -:102990000080107884A0CFFFFF864000CD24ADC01A -:1029A0001278912001807800E02591200080077046 -:1029B00004009479D47002A14800E3244000ED247F -:1029C000907B02A3C000ED247800E6240280C000C2 -:1029D000ED243A261078ADC01278912001807C0059 -:1029E00084A100FF4000FA240F810C810C81048037 -:1029F0000480078000A17800FD2407810480048002 -:102A00009C7A10A21A72987A06A011A21E72C4D4DF -:102A100040000D25A47A11A22272A07A11A226727A -:102A2000A120300003700000092054970A26098174 -:102A30009821042184D040001B253386B0A60200D3 -:102A4000A826A65303861270077001009079947827 -:102A500000800AA1C8002A2506A02820747984A134 -:102A600000FF400039250F810C810C810480048017 -:102A7000078000A178003C250781048004807C79D0 -:102A800008A1787A06A011A2C4D440004825847B0E -:102A900019A3807C21A40870FCD04000482584A0A4 -:102AA000E00140006D25107D312054973426A87830 -:102AB0000080AA788CD0C0006225077006000470E0 -:102AC00094D0C0005C257800D4246920474F6B2047 -:102AD0000300AC7885A00003AE7806A078007625C8 -:102AE0003020D67591208040967D107DACA5CFFF1B -:102AF000127D91200180AA78077006003A260370A3 -:102B000001001A711E72C4D54000852522732674F7 -:102B10007C00846086A00301C000A92514611860B0 -:102B200005A1C000A92569200000186884D0C00054 -:102B3000A9250C60C6701060CA70C37020801B6825 -:102B4000010091208040781086206800A8256C78CC -:102B500065A0C00086257C007810BD25C000E0255A -:102B60006C7865A0C00086257800E0257810BD252A -:102B7000C000E0256C7865A0C000B3257800E02592 -:102B8000846086A00301C000D1251860FCC01A60D3 -:102B900086A00400C000D1250478A4D04000D1252F -:102BA0007810862006A07C007810E625C000D82585 -:102BB00085A001007C007810F525C000DE254120AD -:102BC0000100107D7C00FF884000E52591208040B9 -:102BD0007C00907B9479D47002A1C000EF2585A37E -:102BE00000007C004800F32502A37C0002807C00EA -:102BF0001078ECD040000D267E0E912000807120D0 -:102C00002000047005A0C0000A2608707F0E86A070 -:102C1000080040000D2678005E267F0E78005E26B4 -:102C200084A100FF40001A260F810C810C810480D2 -:102C30000480078000A178001D260781048004809D -:102C40009C7A987BA47CA07D10A206A019A321A445 -:102C500029A509201800286005A040002E2609207B -:102C600040007810BB1D40005026A8780080AA784C -:102C70008CD0C0005E261460FCD0C00040266920C5 -:102C8000404F780042266920804F912000801F68C5 -:102C90000300AB780000AC7885A00003AE789120EB -:102CA000018078005E26AB7800007810862090794D -:102CB000947800800AA1C8005B2606A09678D6709A -:102CC00006A071201000912001807C00FCD7C0007C -:102CD0006A260920594F78006C260920994F9120C7 -:102CE00000800A207E0FFCD7C00083260920404FB9 -:102CF0000120044F0420ECD040007F267920000101 -:102D00007800872679200002780087260920804FE6 -:102D100079200001042186A00000C000A026FCD775 -:102D2000C00093260920454F780095260920854F3D -:102D3000042105A0C000A026307884A0C000C000F7 -:102D4000A0261B7845007F0F7C0009200200692027 -:102D5000004F1068ECD0C0000F277120804F792001 -:102D600000012120BF514B780F001920A74484D1C6 -:102D70004000C3261068ECD04000BF26A1202B01E4 -:102D80007800C526A1202B027800C526A1202B01A2 -:102D9000042305A04000D2269A781883AC23188318 -:102DA0009823A65318337800C5269B782000A920C5 -:102DB00010001468E4D04000E226AF780000AF783D -:102DC0002090F000DA267800E826AF780000AF788F -:102DD0002080F000E226037000007E018CD10920E3 -:102DE00000004000F126BDC17810E2287F0120706C -:102DF00084A00F007E001468E4D07F00C00001278B -:102E000085A040637800032785A0C06206780F780C -:102E100000924378D800537880000B7808005674ED -:102E2000537000000981400022277120404F106834 -:102E3000ECD040001C277920000178001E27792063 -:102E400000022120BF4F7800B0267C007E01BCD15B -:102E5000C00037277E000120044F0420ECD07F0003 -:102E60004000332711200101780039271120010289 -:102E700078003927112001018CA10F00042284A0C1 -:102E8000F0FF05A112207F017810E2287C00FCD31E -:102E9000C00057277E000120044F0420ECD07F00A3 -:102EA0004000532711200101780059271120010209 -:102EB0007800592711200101A92009000B81F00099 -:102EC0005B278CA1000E042284A0FFF105A1122033 -:102ED0007C00192002000120044F0420ECD04000A7 -:102EE0007327198309200101780075270920010142 -:102EF000A92005001382F000772794A2E0000421A6 -:102F000084A01FFF05A20A201983400088270920FA -:102F10000102780075277C00FCD3C0009C277E004E -:102F20000120044F0420ECD07F004000982711209E -:102F3000010178009E271120010278009E271120B0 -:102F40000101A9200C000B81F000A0278CA100F04A -:102F5000042284A0FF0F05A112207C00FCD3C00036 -:102F6000BE277E000120044F0420ECD07F004000EB -:102F7000BA27112002017800C02711200202780030 -:102F8000C02711200201042284A0CFFF05A1122036 -:102F90007C007E0CBCD1C000DA277E000120044FEB -:102FA0000420ECD07F004000D6276120000178008B -:102FB000DC27612000027800DC2761200001BCC111 -:102FC0000381038080A020009A60AC62AC637F0C18 -:102FD0007C007E0CBCD1C000FA277E000120044F8B -:102FE0000420ECD07F004000F6276120000178002B -:102FF000FC27612000027800FC2761200001BCC191 -:103000000381038080A022009A60A46084A0DFFF77 -:10301000AE607F0C7C007E0CBCD1C0001C287E0002 -:103020000120044F0420ECD07F00400018286120CC -:10303000000178001E286120000278001E2861200F -:103040000001BCC10381038080A022009A60A460BB -:1030500085A02000AE607F0C7C007E0CBCD1C0003F -:103060003E287E000120044F0420ECD07F00400069 -:103070003A28612000017800402861200002780091 -:10308000402861200001BCC10381038080A0200092 -:103090009A60A4608CA2200040004E28ACC29DA380 -:1030A0000040FCC3B4D3C0005328FDC3AE6210205F -:1030B000A460AE6318207F0C7C00912000807E0C01 -:1030C0007E0E186805A04000C028FCD14000692889 -:1030D0006120D09678006B286120C0957810C828B0 -:1030E0004000A228A9200101FCD1400078286120DD -:1030F000D09578007A286120C0947E0C7810C8287A -:10310000400085287F0C608CF0007A287800C02869 -:103110007F00FCD140008F2882A0D0957120804F85 -:103120007800932882A0C0947120404F7A70767105 -:10313000382101200400667083700F00D471DCC157 -:10314000D671781063267800BC28FCD1C000A9286D -:103150007120404F7800AB287120804F2060DDC087 -:10316000226076713821002C7E7001200600667086 -:1031700083700F00D471DCC1D671781063260120F2 -:1031800000007800C228012001009120018005A0E4 -:103190007F0E7F0C7C00042C05A04000DF286020FF -:1031A000106006A3C000DC280C6006A2C000DC286A -:1031B000146006A1C000DC2806A07800E1280060A9 -:1031C0007800C92885A001007C007E0F7E0E7E015C -:1031D000BCD1C000FA287920404F7E000120044F66 -:1031E0000420ECD07F004000F62871200001780018 -:1031F000FE28712000027800FE287920804F71207F -:10320000000120798CA10F00EC70C4D0C000082907 -:103210007F01780023290B810B810B810B817F00BB -:10322000BCD0C00020297E000120044F0420ECD037 -:103230007F0040001C298DA1000F780022298DA15C -:10324000000F780022298DA1000804217F0E7F0F36 -:103250007C007E0E0120014F0420ACD0C000A329C9 -:10326000E468ACD04000A32984A00600C000A329D4 -:103270001460FCD0C0003D297120C05378003F2964 -:1032800071204054078084A00F00038003800380D6 -:1032900070AE047084A00A00C000A329087194A134 -:1032A00000FF4000A3298CA1FF0001200A0006A115 -:1032B0004000722901200C0006A14000762901205F -:1032C000120006A140007A290120140006A1400046 -:1032D0007E290120190006A1400082290120320028 -:1032E00006A14000862978008A2909200C00780070 -:1032F0008C290920120078008C29092014007800FC -:103300008C290920190078008C29092020007800D8 -:103310008C2909203F0078008C2911200000002111 -:1033200005A20A707120004F0470BCD04000A32990 -:103330001460FCD0C0009E29EA707120404F7800D4 -:10334000A129EE707120804F1F700D007F0E7C0050 -:103350000120054F0420E4D0C000B129047884A0E6 -:103360001FFF85A0406306787C006800B229912089 -:103370000080712000007E00187084D0C000B92940 -:103380007F0071201000CA707F00C670C370028079 -:10339000DB700F08DF700B00712000001B70010054 -:1033A000912080407800CF293C7F587E307C387D4A -:1033B000A0788E70927596749A769E7794A53F0049 -:1033C000F4D44000E62984A77D00C0001D44781095 -:1033D000B2299CA40F0082A304005000F129A6A3E7 -:1033E0000700C000B2291824078584A00F007900C7 -:1033F000F629713062318D31FF33E8376238173981 -:10340000A839963A853B092A062A422E652FB937F4 -:10341000062A7810B2297C0006A07800132A0878C2 -:103420008DC00A7806A002704E704670D27060702F -:1034300005A0C000792B647084A0070079001D2AC4 -:10344000252A982AA12AAC2AB72A5F2BC22A982AB1 -:103450003078BCD0C000082AD471BCD1C000082A82 -:10346000B4D1C000752AA47086A001004000082ACB -:10347000B4706DA0006865A055A09B7810000C6B1F -:10348000AA7B086845A0106D04686DA05DA086A8A1 -:10349000010040004B2ABC69AA7DAA79C0684DA0F2 -:1034A0001C6E012010007800D32C607005A0C000B5 -:1034B000082A7E0C7E0DB4706DA0006865A055A032 -:1034C0009B7810000C6BAA7B086845A0106D0468FF -:1034D0006DA05DA086A8010040006E2ABC69AA7D8F -:1034E000AA79C0684DA01C6E012020007800D32C62 -:1034F0007810B043C000082A1B785B00BC706DA038 -:10350000B4685A789468D678DE789868D278DA7891 -:1035100008788DC00A78BC684270B4C1D671B870A2 -:1035200065A0C0685A7003700200002D4E7080AD17 -:10353000090046707C007810B043C000A02A1B78B8 -:103540004700037004007C007810B043C000AB2A31 -:1035500011200C007810D22A037004007C0078102F -:10356000B043C000B62A112006007810D22A03709A -:1035700004007C007810B043C000C12A11200D0067 -:103580007810D22A037004007C007810B043C00089 -:10359000D12A112006007810D22A7C707F7000009A -:1035A00068204E70037001007C007471FCC10781BB -:1035B00082789B78100086A20C00C000E12AAA7ACB -:1035C000012001007800F62A8CA11F008DA1C00007 -:1035D000AA7986A20D004000EF2AAA7A01200200F3 -:1035E0007800F62AAB7820007871AA79AA7A0120AF -:1035F00004009B786000AA785B7804001B781601B1 -:103600007810D34383700F00D470B4D04000122BD5 -:10361000B4C0D6707E0CB87065A0086084A0EFFBC3 -:103620000A60186001801A607F0C7C00147005A08D -:10363000C000212BD470B4D04000222BB87006AC4F -:10364000C000222B7810012B7C007E01A47186A182 -:1036500001004000542B7E0D7E020021112001004C -:1036600012A2B4706820006806AC40003B2B1182A7 -:103670004000522B7810562B7800302B7E0C002106 -:103680001120010012A2B470682000686020086058 -:1036900084A0EFFB0A60118240004F2B7810562B5C -:1036A0007800422BA77001007F0C7F027F0D7F0105 -:1036B0007C00E8AD0500AC7006ADC0005E2BA870C4 -:1036C00068207C007810B043C000082A7C70682015 -:1036D000747778104E42502C781092449B781000EA -:1036E000146884A01F00BDC0AA781C6E4120010090 -:1036F000012004007800D92C7810B043C000082ABB -:103700009B78100060706820146FD470B4D04000B3 -:10371000932BB4C0D6707E0CB87065A0086084A0EE -:10372000EFFB0A60186001801A607F0C78104E422F -:10373000502C78109244246805A04000A42B82A04D -:1037400006004800A22B7800A42B27680500146807 -:1037500084A01F00BDC0AA783120200041200100B4 -:10376000012003007800D92C8DC2D672C07200A24D -:1037700015A0547108812AA14800BC2BC071642196 -:103780000465FF85C000D32B56712184C000B72B80 -:10379000D4708CD04000CF2BD07005A0C000CF2BB0 -:1037A000D3700A007C0000227800C12BD4708CC03A -:1037B000D670D3700000346005A0C000D02B08671D -:1037C00084A73F074000022CD4D7C000D02B84A789 -:1037D0002100C000D02B84A702004000F32B84A757 -:1037E00004004000D02BBCA7FBFF0A6784A7180287 -:1037F000C000D02B84A700014000022C186005A057 -:10380000C000D02BBCA7FFFE0A6768252368000014 -:103810001C6E84A60E0018634000132C1C6002A3CB -:103820004800162C4000162C7800D02BFF83C000D7 -:10383000D02B582D502C5671BCD7C0001F2C28708F -:1038400022603A60BCC70A67C06865A04DA00061ED -:10385000602A41200100146B9CA31F009DA3C0009F -:10386000FCD14000332C84D64000352C9CA3BFFFF4 -:10387000A4D640003A2C9DA3200084A60E00C000D0 -:10388000852CA5C70A67002CC668A47786A7010007 -:10389000C000592CD470B4D0C000592C007082A044 -:1038A0000200C800592C3078BCD0C000592C9B783D -:1038B0001000AA7B7800D12C3987A6775027B077E3 -:1038C000B0A70500AC7006A6C000642CA876B2763E -:1038D0003A2C38873A2D38873A2838873A23388760 -:1038E0003A253078BCD040007C2C9120008091207B -:1038F0003D30D47084A03D30912000809020D5AA26 -:1039000000004000842C21840022C000B62B7C00E3 -:10391000DCD14000493E292020009CD6C000922CDA -:1039200028858CD6C000922C28854088146F0C61A5 -:1039300008818CA1FF00CC7060A1642CFF8C40003A -:10394000B12C146006A7C0009A2CB8600180BA6040 -:10395000C000952C602A086085A000010A60002242 -:103960002184C000B62B7C00602A0E61BE69002C49 -:10397000C66840880860D5C00A60A47786A70100A1 -:10398000C000592CD470B4D0C000592C007082A053 -:103990000200C800592C3078BCD0C000592C9B784C -:1039A0001000AA7BAA7DAA79012002007E0018607F -:1039B00000801A607800DA2C7E0060290461602A99 -:1039C00084A118004000F62C84A110004000E92CCE -:1039D00078105E40C0001B2D84A108004000F62C2A -:1039E000A06984A10006C000F62C78103E3F780044 -:1039F0001B2DA06984A1001E4000262D84A1000873 -:103A000040000F2D7E0C6029006085A00020026020 -:103A100004618DA1100006617F0C78105E40C0002B -:103A20001B2DA06984A100024000172D7810A13F32 -:103A300078001B2D84A10004C000F22CA06984A191 -:103A400000104000262D14698CA100FF0F81781012 -:103A5000E6277F028CA6E00084A660004000332D9C -:103A600086A06000C000332D8DA100408DA104010F -:103A7000B6699B7860000028AA781868FDC01A68AB -:103A8000BCD640004E2DFCC0877000008AA00D00FF -:103A900050004C2D8AA00C00867101200C000C8077 -:103AA0008A71AA781835403328340080AC8080AF02 -:103AB0002B00A0209B78000080AD0B009820A6531F -:103AC000A8239828A02586A22000C000862DD470A7 -:103AD000B5C0D670002CBA70002DBE701468FCC042 -:103AE0000780827886A202004000BC2DA47000806E -:103AF000A670B47498A40500AC7006A3C0007E2D17 -:103B0000A873B67386A210004000082A7F0D7F0CB0 -:103B10007C00007005A0C000642D86A20200C000D9 -:103B2000D62D7810B043C000642D1468FCC0078007 -:103B30008278912000801B785B00B4685A78946882 -:103B4000D678DE789868D278DA7891200180087883 -:103B50008DC00A787E127E0D7E0CD47084A0002762 -:103B600090207F0C7F0D7F1200295A70BC68427034 -:103B700003700200002D4E7080AD09004670307851 -:103B8000BCD04000C82D91203D30D47084A03D3081 -:103B9000912000809020A47005A0C000CD2D7C0055 -:103BA00021844000CC2D5072C07000A215A0780076 -:103BB000B62B86A21000C000072E7810B043C000BC -:103BC000642D1468FCC0078082781B785B00B468A1 -:103BD0005A789468D678DE789868D278DA78087857 -:103BE0008DC00A78A4700080A670B47490A40500FB -:103BF000AC7006A2C000FA2DA872B67200295A70E5 -:103C0000BC68427003700200002D4E7080AD090048 -:103C100046707C00B46B9DA300205A7B1468FCC0E6 -:103C200007808278946BD67BDE7B986ED27EDA7EBC -:103C30001B785B0000295A70027208788DC00A78E0 -:103C4000002305A64000322ED47084A0002786A051 -:103C50000023C0002C2E0920000078002E2E092001 -:103C6000010084A20F007910382E80AD0900467043 -:103C7000002D4E707C00402E3F493F492C493F4962 -:103C8000402E402E402E7810B229087884A0FDFFE7 -:103C90000A787810A5297E0F7920004FAC787F0F25 -:103CA00084D040006A2E647086A00100C000582EA7 -:103CB00066707800412F647086A00500C000682EF1 -:103CC0007C7068201B68040017680000206884A0CE -:103CD000FF009DC0226867700000A7700000A870F8 -:103CE000B270B6707810012B7E151120040064713B -:103CF00086A1010040008A2E86A10700C000812E07 -:103D00001F70050078008A2E1F7001006770000088 -:103D1000D470DDC0D67078008C2E67700000012052 -:103D20000A4F042084A0FF0086A0180040009C2EAB -:103D30001870167005A0C0009C2EA77001007E06AA -:103D40007810D645A920100039200000781048418D -:103D5000B8A70001F000A32E7F0600707900AD2EF9 -:103D6000E72EC22EC22EB72EE72EE72EE72EB52E57 -:103D70007810B229607005A04000E72E06ADC000A3 -:103D8000C22E006862707800D42E206884D0C000F3 -:103D9000D02E146F78104E420860D4C00A6078109C -:103DA000193E7800D42E5C7060200068026084A602 -:103DB000005F1E681868FCD04000DC2E1A6A176885 -:103DC00000002B680000206884A0FF009DC02268CE -:103DD0007810732084B200044000EF2E2120D0968A -:103DE0007800F12E2120C0957810462F84B200046F -:103DF0004000FB2E2120984F7800FD2E2120584FA7 -:103E00007810462FA920010184B200044000092F38 -:103E10002120D09578000B2F2120C0947810462FB8 -:103E20002084F0000B2F84B200034000182F612083 -:103E3000C05478001A2F6120C07421200200A920EC -:103E400000011061FF814000372F18607E017E0065 -:103E50001120024F0C2202A112207F007F0102A13B -:103E60005000372F1260C000372F1120044F04225A -:103E7000A5C012201B600000E0AC1000F0001E2F57 -:103E80002184C0001C2F7F15037000004F700000BC -:103E90007C007E04042405A04000612F6820006897 -:103EA0007E001A6A176800002B680000B46884A0BE -:103EB000005F1E68206884A0FF009DC02268781003 -:103EC00073207F007800482F7F04232000007C00AF -:103ED00082A2030050006B2F7810B22900237900D2 -:103EE0006E2F712FFC2F193082A202004000772F15 -:103EF0007810B22964706770000083700000790048 -:103F00007E2F862F862F882FC82F553E862FC82FAD -:103F1000862F7810B2297477781048417477BCA73F -:103F2000008F78104E42186005A04000BF2FFCD7CC -:103F3000C0009B2F2120C09578009D2F2120D09676 -:103F40000920050011201000781034304000BF2FE8 -:103F50007E15A9200101FCD7C000AF2F2120C094FD -:103F60007800B12F2120D0957E0409200500112072 -:103F70001000781034307F044000BE2F2084F00001 -:103F8000B12F7F15388784A71F00C0008E2F7800BF -:103F90000C2A78000C2A747778104E42186005A01D -:103FA0004000FA2FFCD7C000D62F2120C095780002 -:103FB000D82F2120D096092005001120200078104C -:103FC00034304000FA2F7E15A9200101FCD7C00033 -:103FD000EA2F2120C0947800EC2F2120D0957E0478 -:103FE0000920050011202000781034307F044000A3 -:103FF000F92F2084F000EC2F7F1578000C2A002286 -:104000007900FF2F0230043004307810B2290920E3 -:104010001200647086A0020040000D3009200E00DE -:104020001868FCD0400012301A6967700000D47024 -:10403000DDC0D67078005D43002279001C3021304D -:1040400004301F307810B2297810D645007086A051 -:104050000200C000C73D7810363E086084A0EFFB28 -:104060000A607810B83D4000C73D78000C2A04244F -:1040700005A040006D306820042D7E00146806A75E -:1040800040004330202D7F00780035307F00222013 -:104090001A69176800002B680000B46884A0005FEC -:1040A0001E68206884A0FF0005A222687810732093 -:1040B0002120024F1C2419832223106001801260EA -:1040C000C00064302120044F0424A5C022200860D1 -:1040D00084A0EFF90A607810222B7810363E7C001D -:1040E00085A0010078006C300023790074307930AD -:1040F0007730F9307810B229E47805A0D000AF30DD -:1041000008327E000120044F0420ECD07F004000E4 -:104110008A308CA1000378008C308CA10004400010 -:1041200092301800082A780094302800082A0820C5 -:1041300084A03000C0009B307800B937EC7884A0B0 -:10414000030040009930002184A007007900A530C9 -:10415000D930E330CE30AD30A543A543AD30EE309D -:104160007810B229007086A00400C000C9306470C5 -:1041700086A00200C000BF301120020019200000FC -:104180007800652F647086A006004000B930647026 -:1041900086A004004000B930E479012003007800D3 -:1041A00043341868FCD04000D4301B681D007810E0 -:1041B00018411B7864007C001868FCD04000DF3098 -:1041C0001B681D0078101841780081431868FCD0E6 -:1041D0004000E9301B681D00781018411B78F8007A -:1041E0007C001868FCD04000F4301B681D0078107B -:1041F00018411B78C8007C0084A50F00C00018314E -:104200007810A5290070790002310C2A0A310C318E -:10421000C73DC73DC73D0A310A317810B229781031 -:10422000363E086084A0EFFB0A607810B83D40007D -:10423000C73D78000C2AE47805A0D000AF300832E2 -:104240007E000120044F0420ECD07F004000293183 -:104250008CA1000378002B318CA100044000313187 -:104260001800AF30780033312800AF30082084A028 -:104270003000C0003B311B785B007C00EC7884A0F0 -:10428000030040003831002184A107007900453146 -:10429000543158314F314D31A543A5434D319F43E2 -:1042A0007810B229781020411B7864007C007810C7 -:1042B000204178008143781020411B78F8007C0071 -:1042C000781020411B78C8007C00002379006531FC -:1042D0006A3168316C317810B2297800A8391B68CE -:1042E0001600A3780000E47984A130004000A839CA -:1042F000EC7884A003004000A83984A100014000AC -:10430000703184A10700790082318A315831CE3072 -:104310005D43A543A5435D439F43781069437C00FB -:1043200082A20500500093317810B2290023790051 -:1043300096319931C933D433002279009C31B6319A -:10434000A331B631A131AC337810B2299B78180073 -:10435000A87884A0FF0082A02000480007418AA01E -:104360000400C80007417900B23107410741074105 -:10437000B1409B781800A87984A180004000C73123 -:1043800078000741007005A0C000BD311120040075 -:104390007800933B84A1FF008AA01000C800074169 -:1043A0007900CF31E131DF31F631FA31CD320741D9 -:1043B0000741CF3207410741A833A83307410741DE -:1043C0000741AA337810B229E4D64000EC3101202D -:1043D0000003008000803A781B78C3007C001868D6 -:1043E000FCD04000F4311B681D007800E4317800F7 -:1043F0005D431B681D00780011412069226984A675 -:104400000018C0005F32206884D0C0006532186890 -:1044100086A00800C0000B321B680000D4D6400004 -:10442000CA32BCD640004B3287700000186884A0A6 -:104430003F008AA00D0050004B328AA00C0086710C -:1044400001200C000C808A719B786100AA787E158F -:104450007E137E147E0108328CA1000340003D32A1 -:104460007E000120044F0420ECD07F004000393250 -:10447000A1202B0178003F32A1202B0278003F328F -:10448000A1202B017F019B7800000080AC8080ADD3 -:104490000B009820A6537F147F137F15386005A06A -:1044A000C0005A321C6884A00E00400011417810F0 -:1044B00027412B78083078005C3201803A601B7805 -:1044C00067007C00E4D6400065321B7879007C00F0 -:1044D00084A660004000C732DCD64000C732FCD65C -:1044E000C000713278008832FCC65A7EB66EDC7A23 -:1044F000D879D0781B80C8007B32008084A03F0030 -:1045000008A191A20000986B002102A3B268946BED -:10451000002203A3AE68F4D640008E32F4C65A7E61 -:10452000B66E007086A00300C0009C327E0078103A -:10453000D64578103F497F001B7876007C0006A0A6 -:104540007810444AB06AAC69986C946B002205A15B -:104550004000AB32002222A400211BA3AA6CD27C13 -:10456000DA7CA66BD67BDE7B002305A4C000BB32C1 -:10457000F5C65A7EB66E1B7876007C001B787600F6 -:10458000002215A1C000C43278103F497C00781089 -:1045900077497C001B7879007C001B7867007C00E1 -:1045A0007810B22978001B332069C4D14000E4326E -:1045B000C4C122697E0C587060200060E4C00260B3 -:1045C000046084A0F5FF06607F0C78000F33CCD127 -:1045D00040000F33CCC122697E0C5870602000600F -:1045E000ECC002600460A4C006600820482C7F0C68 -:1045F0009CD140000F3378104A4278103E3FFF882C -:1046000040000F339B7860000028AA78587E95C63A -:104610005A7ED4D6C0000C331B7864007C001B7813 -:1046200078007C00587ED4D6C00016331B78670013 -:104630007C001B7879007C0078000C411920000078 -:1046400090798CA10700C0002933206884A0000164 -:1046500040001933092008009B781000A87894A026 -:10466000FF0086A20100C00045330023A87C00A4FF -:10467000182002A140003D3348003D3378003F330D -:104680007800D132A824A87AF0003F3378002B3389 -:1046900084A2F00086A02000C000993318831883FC -:1046A000002302A14000553348005533780096336B -:1046B00086A22300400019331C6884A0F1FF1E6805 -:1046C000587E84A6F1FFA5C030205A7E0860A5C0A0 -:1046D0000A607E0C5870602004600820482C7F0C13 -:1046E000A4D14000763378104A4278105E407800BA -:1046F00084337E0C5870602004600820482C7F0CA6 -:104700009CD140000F3378104A4278103E3FFF881A -:1047100040000F339B7860000028AA7895C65A7E27 -:10472000D4D6C00093331B7864007C001B787800DB -:104730007C00A87A78002B331883002302A1400064 -:10474000A2334800A23378002B3384A28000C0003B -:10475000114178000C4178001141780007415870F0 -:104760004DA09B781800A87884A0FF008EA00100BF -:104770004000B9337810B229A87A94A2FF00A87833 -:1047800084A0FF008AA00400C80007417900C53357 -:1047900007418F3E0741064082A20000C000CF3390 -:1047A0007810B229781018411B7878007C0082A21A -:1047B0000300C000DA337810B229FCD4C000FA3309 -:1047C000647005A04000E3337810B229146F767747 -:1047D000BCA7008F78104E42086085A021000A60B7 -:1047E000388784A71F00C000E73378101C4167702A -:1047F00002001F7009007800FC3378102B411B78F1 -:1048000078007C0082A20400500005347810B229A0 -:104810000023790008340B34CB350E3686A2030012 -:10482000400043340072D87CDC7DD07FD471BCD191 -:10483000C0003B34B4D140003B34687884A0FF0012 -:10484000C0003B3482A20200C8003B347E0D3B789E -:1048500000831B784C00BC706DA0B4685A789468D3 -:10486000D678DE789868D278DA78B4C1D6710370D9 -:1048700030007F0D01200000780047343B780013A2 -:104880001B784A0001200000780047340072D87C71 -:10489000DC7DD07F4A70A068ECD040004F340860C7 -:1048A0008DC00A6084A20F0079005334AB356034A8 -:1048B0005D3411379D370C2A5B345B347810B22994 -:1048C0000860D4C00A60E4D640006834487086A00E -:1048D0001400C00088347810D645092000001868FC -:1048E000FCD040007134487086A01400400082342F -:1048F000186886A00800C000633558789CD0400036 -:1049000063352068ACD0400063351B681400092073 -:1049100002007800C73468788CA0FF004000C734DC -:1049200086A10800C0009E340860A4C00A60781008 -:10493000B83D4000C7347810363E7810D645780030 -:10494000AF3486A12800C000C734186005A040001D -:1049500091340180400091340180400091341E6008 -:1049600078009134206884D040000C2A84C02268EA -:104970007810132B5C707E0C6020006802607F0C46 -:104980000460026805A0002DC000C4340260066007 -:1049900078000C2A7E01FF81C0001135007086A0CE -:1049A000300040001135D471BCD1C0001135B4D1F4 -:1049B000C000F834607005A0C0001135A47086A056 -:1049C000010040001135037000007E047E057E0763 -:1049D0007E067E0C7E0D7810352A7F0D7F0C7F06BB -:1049E0007F077F057F04D471B4D1C00011350370F7 -:1049F0004000780011357810B043C00011351B78A5 -:104A00005B007E0DBC706DA0B4685A789468D6784F -:104A1000DE789868D278DA78B4C1D6710370300045 -:104A200008788DC00A787F0D781048367F01FF81A5 -:104A30004000633584A600DF1E682B680000146FF9 -:104A400086A10200C0006435186886A01400C0006A -:104A50002D350820E4D640002D3568788CA0FF0065 -:104A60007810012B7810222B2068DCD0C000643530 -:104A7000178794A20F0013821382138284B200035B -:104A80004000433590A2C0537800453590A2405471 -:104A900090A200001C22C4D3C0004D3578005335CD -:104AA0001082042285A0180012201182D4D3400065 -:104AB0005E35A068C4D0C0005E357810C23678007C -:104AC0000C2A08608DC00A60780064352A6916696E -:104AD0001868FCD040006B3548701A688CA600DF5F -:104AE0001E691064FF84400080350920024F0421B4 -:104AF00001800A2021841264C00080352120044FE7 -:104B00000424A5C02220186005A04000883501803B -:104B10001A60C0008B350860A4C00A60206884D089 -:104B2000C0009735006805A0C0009435026006609B -:104B300078009B355C706020006802606120004F47 -:104B400087680301082D6B200000686005A06A617A -:104B50004000AA35022D7800AB356E61007286A246 -:104B600030004000BB3586A24000C0000C2A037014 -:104B700002004C706820C46860207C000370020052 -:104B8000BC706DA0BC684270B87065A0C0685A70F7 -:104B9000002D4E7080AD090046707C0082A204009A -:104BA0004800D1357810B22900227900D435D835A3 -:104BB000E935F635E93586A500134000E93586A5C7 -:104BC0000083C000CF3503700000186001801A60B8 -:104BD000086084A0EFFB0A60007086A0050040001A -:104BE000F335781018411B7878007C001B78790029 -:104BF0007C0090780780018084A0070080A01800C6 -:104C00009A78A8798CA1FF0086A1030040000B369A -:104C100086A1000040000B36780007411B78790020 -:104C20007C00206895C02268FF82C000183678108A -:104C3000184178001F36118240001D367810B229C5 -:104C400078102B411B7878007C007810D3433078A3 -:104C500084A0C000C00045367E0108327E000120DD -:104C6000044F0420ECD07F00400037368CA10003B5 -:104C7000780039368CA100047F01400040361800CE -:104C8000453678004236280045361A7906A07C0061 -:104C900085A001007C0084A66000C00052362F6809 -:104CA0000000336800007800C136DCD6C0006A36E8 -:104CB000B468DCD0C0006A369869946A2E69326A9A -:104CC000487005A0C0006736002205A14000D64507 -:104CD0004B7015007800D6457C00ACD6400090366D -:104CE000F4D6400076362F68000033680000780064 -:104CF000D645B46884A0004035A6F4D6C00070360E -:104D0000487005A0C00083364B701500DCD6C0008B -:104D10008C36B468DCD040008C36A86CA46D2E6C48 -:104D2000326D7800D645F4D6400099362F680000E1 -:104D3000336800007800D645B46884A0004835A6E2 -:104D4000F4D6C0009336487005A0C000A6364B705C -:104D50001500082410250027FB80C800AD36008010 -:104D600084A03F0008A191A200002E69326A0021B0 -:104D700005A2C000BA367800D645007086A00600AD -:104D80004000C1367800D6457C0046690860CDC039 -:104D9000CCD34000C9368DC00A6018683A681B68D9 -:104DA00006008F68000093680000306A2C693E6A34 -:104DB00042692F6803003368000037682000976855 -:104DC00000009B68200000707900E3360C2AF5365D -:104DD000ED36EB36EB36EB36EB36EB367810B229A8 -:104DE000206884D0C000F5367810193E7800FB3674 -:104DF0005C70502C602000680260602A08328CA130 -:104E00000003400004372120584F78000637212046 -:104E1000984F042405A040000D3720207800063765 -:104E2000222D6B2000007C007810203E7810363E4A -:104E30000860CCC00A602B6800009B780E00146FDD -:104E400038691A694469166908328CA10003400068 -:104E50002A370920000078002C370920010078103B -:104E6000814ADCD6400034371C69EDC11E691868E0 -:104E7000FCD04000433768788CA0FF0040004137E9 -:104E80001B681E00780043371B68000084B20003D3 -:104E9000C0004B372120984F78004D372120584FC4 -:104EA000006822203C6A4069326A2E69C06860202E -:104EB0000060A4D040008D3741202100492005002A -:104EC000512020007E0D7E0F7E157E147920004F2C -:104ED0007810461E7F147F157F0FCC70102009209C -:104EE00001017E0204226DA040007D37146806A7F0 -:104EF00040007A370068780070372068D5C0226893 -:104F00007F0210820981C0006E377F0D6770030039 -:104F10007F700000767783700F00D471DCC1D6718A -:104F2000186886A00200C0009937176800002B6837 -:104F300000001C68ECC01E687810732078000C2AF2 -:104F4000D87CDC7DD07F781048362B6800009B78B9 -:104F50000E00146F7810D7438CA0FF0016691868F4 -:104F6000FCD04000B23748701A688CA600DF1E697A -:104F70006770000078000C2A007005A0C000BF37E1 -:104F800078000C2A06A07810D6452069ACD1C00064 -:104F9000C8371B6814008CA600DF1E692B68000050 -:104FA000206884A0FF00226800707900D4370C2AA2 -:104FB000DE37DE37E137E137E137DC37DC377810D1 -:104FC000B2291868780043340860A4C00A601768E2 -:104FD00000007800DE3D00237900EB37EE37F03734 -:104FE00060387810B229FCD6C000473800700DA098 -:104FF0007900F7370C2A0138013831380138443844 -:10500000FF37FF377810B22984A66000400031389E -:1050100086A06000C0002E38ACC6F4C6EDC65A7E2D -:10502000B66E1C68ACC01E6886A102004000203825 -:105030007810D645AC69B06815A1400020387810CA -:1050400077497800223878103F491B787900D4716D -:10505000B4D1C000082AA47086A00100C000522A62 -:105060007C00ECD640000B381868FCD04000443877 -:10507000F4D6C0003E381B6815001B787900780014 -:10508000082A1B6807002F680000336800007810AA -:1050900069437C00FCC65A7EDC7AD879D0781B80C4 -:1050A000C8005038008084A03F0008A191A20000F1 -:1050B000986B002102A3B268946B002203A3AE6830 -:1050C0001B7879007C007810B229002379006538BC -:1050D0006A388F38EF387810B229007079006D384F -:1050E000753877388038753875387538753875384B -:1050F0007810B229AC69B06815A1400080387810EA -:1051000077497800823878103F491C68B4C01E681F -:10511000D470B4D0C000082AA47086A00100C000DA -:10512000522A7C00FCD6C000DF3800700DA0790048 -:1051300096380C2AA638A038D638A638DC389E38DF -:105140009E387810B2299468D678DE789868D2783C -:10515000DA7884A660004000D63886A06000C000DF -:10516000D338B4A6BFBFEDC65A7EB66E86A1020084 -:105170004000C2387810D645AC69B06815A140002F -:10518000C238781077497800C43878103F491B78C6 -:1051900079001C68B4C01E68D471B4D1C000082A5C -:1051A000A47086A00100C000522A7C00ECD640000A -:1051B000B0381868FCD04000DC381B6807001B784A -:1051C000F9007C00FCC65A7EDC7AD879986B002105 -:1051D00002A3B268946B002203A3AE68D2791B7855 -:1051E00079007C00DCD64000F8382B7809301B7839 -:1051F00079007800082A8478ACC08678E47884A0A6 -:105200000800C0000B3984A4000240000539F5C62F -:10521000DDC65A7E1B7879007800082A206895C080 -:1052200022687810E242DDC6781018411B787800B9 -:105230007800082A002379001A391D391F392139CD -:105240007810B22978001141D4D6C0005C39E479D5 -:10525000ACD140002F39EC7884A0030040002F39F6 -:105260002B7809309B786000AB78000084A6FBFFA8 -:105270005A78E479ACD140003F39EC7884A003003F -:10528000C00058390120044F0420E4D0C000543934 -:105290002068C4D0400054397E0C587060200460EF -:1052A0009DC00660086084A0FF000A607F0C01209A -:1052B00014007800433484A1070079009239907A71 -:1052C00094A207009B786000A879FF814000903984 -:1052D0009B781000A87B84A30100C0008339A87BC1 -:1052E000A87B86A30100C00076390920F7FF78006B -:1052F0007C3986A30300C00083390920EFFF7E0CB0 -:1053000058706020046004A106607F0C9B786000E8 -:10531000AB78000084A6FBFF5A782B78093020690F -:105320008CA1FFFC226978005D43D930E3309C39C1 -:10533000A2399A399A395D435D437810B2292069C0 -:105340008CA1FFFC22697800634320698CA1FFFCDB -:10535000226978005D43E47984A130004000B239CD -:10536000EC7884A00300C000E639007086A0040039 -:10537000C000CC39647086A00200C000C239112080 -:105380000200192000007800652F647086A00600D6 -:105390004000BC39647086A004004000BC39007035 -:1053A00086A000004000082A206984A12004400053 -:1053B000DB39D4C1226918687800433418688EA09C -:1053C00002004000E439FDC01A6801201400780092 -:1053D000433484A107007900EA395D435D43F23923 -:1053E0005D43A543A5435D435D43BCD64000343ACD -:1053F0008471FF814000343A82A10D00D000013A4F -:10540000877000007800063A82A10C00867009209F -:105410000C009B786100AA797E157E137E1488703B -:10542000148110A28A7280A00B0000AD982084B273 -:1054300000034000283A7E000120044F0420ECD0F5 -:105440007F004000243AA1202B0178002A3AA120B5 -:105450002B0278002A3AA1202B019B7800000881BA -:10546000AC81A6537F147F137F1578006343D4D695 -:10547000C000883A206884D0400063438CA6600056 -:1054800084A660004000463A86A06000C000463A0C -:10549000F5C194C15A79B6699B786000AB78000079 -:1054A0009B7861001868FDC01A68AA7808800C8192 -:1054B00040004F3E8CA1F800C0004F3E7E157E1389 -:1054C0007E147E0108328CA100034000743A7E00F5 -:1054D0000120044F0420ECD07F004000703AA1204E -:1054E0002B017800763AA1202B027800763AA12091 -:1054F0002B017F019B7800000080AC8080AD0B0009 -:105500009820A6537F147F137F151468FCC0078072 -:105510008278780063431868FCD040008E3A1B689C -:1055200008002068ADC02268781020411B78EA008E -:105530007C0000237900993A9E3A763B9C3A781099 -:10554000B229D87CDC7DD07FFF82C000C73A0072D0 -:1055500086A2030040001034D471BCD1C000CA3A06 -:10556000B4D14000CA3A7E0D3B7800881B784C00CD -:10557000BC706DA0B468A5C05A789468D678DE78FF -:105580009868D278DA78B4C1D671037030007F0D94 -:105590007800CE3A00727800CE3A3B7800181B783B -:1055A0004A0084A20F007900D23A613B103BDC3AFA -:1055B0003F34DA3A613BDA3ADA3A7810B2291C68B9 -:1055C000ECD04000E33A08608DC00A60206985C1D4 -:1055D00022690068066005A0C000EC3A026008601D -:1055E000D4C00A601C6884A00E00C000003B84B2D6 -:1055F00000034000FC3A0920C0957800053B0920D3 -:10560000D0967800053B3070BA684071CC7008A124 -:10561000042102680A2D5E71DCD6C000103BFCC676 -:10562000B66E7800613BB66E84A66000C0001A3B7F -:1056300084A6FF7FB6687800613BDCD6C000283BBB -:1056400084A6FF7FB6689468A6689868AA687810F0 -:10565000D6457800613BACD64000343B06A07810BC -:10566000D64508241025AA69A66A7800443B082478 -:10567000102500271B80C8003B3B008084A03F0012 -:1056800008A191A20000AA69A66A7810D645FCD6A6 -:105690004000613B84A6FF7FB66810250824ACD685 -:1056A000C000593B00271B80C800543B008084A0E9 -:1056B0003F0008A191A20000986B002102A3B268EC -:1056C000946B002203A3AE68007086A03000C00077 -:1056D0000C2A03700200BC706DA0BC684270B870E8 -:1056E00065A0C0685A70002D4E7080AD09004670EC -:1056F0007C0086A50088C000833B03700000186012 -:1057000001801A60086084A0EFFB0A6078001141F4 -:105710004770000082A2060050008D3B7810B2292D -:1057200000237900903B933BA53BB13B00227900DD -:10573000963B9C3B11419E3B9C3BEB3B403C781095 -:10574000B229807A94A2000F7810CA3C78000741F1 -:105750007810C23B7900A93B1141AF3BAF3BEB3B1B -:10576000AF3B11417810B2297810C23B7900B53BAC -:10577000BD3BBB3BBB3BBD3BBB3BBD3B7810B229FC -:1057800078102B411B7878007C00007086A0020006 -:10579000C000D33B7810363E7800CD3B7810D6451C -:1057A000086084A0EFFB0A607800D83B007086A0F8 -:1057B00003004000CB3B0370050084B200034000AF -:1057C000E23B0120E0967800E43B0120129768203C -:1057D0004E7080AD0900467000227C00007086A0EB -:1057E0000200C000FD3BD470B5C0D670002CBA706A -:1057F000002DBE707800023C7810D6457800023C3F -:10580000007086A003004000F93B03700100807A1D -:1058100094A2000F9B781800A87C84A41F0015A2F6 -:105820006920C09584B20003C000163CFDC2692007 -:10583000D096042D082D5E716DA04000233C1468A5 -:1058400006A24000253C00687800173C7810CA3C4E -:10585000B46E5A7E206984A1000C4000F43C647050 -:1058600086A00600C000373C747006A2C000373C1A -:1058700066707E701B680500ADC1D4C122697810C6 -:1058800020417800F43C007286A20200C000523C25 -:10589000D470B5C0D670002CBA70002DBE707800E0 -:1058A000563C7810D6457800563C86A2030040004E -:1058B0004E3C03700100807A94A2000F9B78180080 -:1058C000A87C84A41F0015A284B20003C000663C1B -:1058D000FDC2A879A8798CA1FF001821CC7068A11D -:1058E000042D082D5E716DA040007A3C146806A25C -:1058F0004000A33C006878006E3C0370050084B251 -:1059000000034000843C0120E0967800863C0120A2 -:10591000129768204E707E15A920320003200000E7 -:105920000080F0008B3C7F1584B200034000983C5F -:10593000FCC27800993CFDC2166A80AD0900467031 -:10594000B76800072368000827680300B46E206961 -:1059500084A1000C4000F43CDCD04000BF3C6470EB -:1059600086A00400C000BB3C747006A2C000BB3C13 -:10597000787006A3C000BB3C66707E70781027412B -:105980007800F43C1B680500ADC1D4C122697810D1 -:1059900020417F7000007800F43C0370050084B261 -:1059A00000034000D43C0120E0967800D63C012062 -:1059B000129768204E707E15A92032000320000047 -:1059C0000080F000DB3C7F1584B200034000E83C1F -:1059D000FCC27800E93CFDC2166A80AD0900467041 -:1059E000B768000723680008276803007C00ECC63E -:1059F000ACA660004000463D986B946CAC69B06802 -:105A000005A1C000213DD27BDA7BD67CDE7C86A559 -:105A1000600040004B3DF4D6C0000C3DEDC6B4A67E -:105A2000FFB75A7E092079009CD64000193D092015 -:105A300078001920000020231A79ECD64000563D4A -:105A400078103F497800563DB0681AA3002123A47E -:105A5000002405A340004D3DD27BDA7BD67CDE7C62 -:105A6000B068F4D6C000323DEDC6F4C65A7E1120AF -:105A700079009CD640003E3D11207800192000009E -:105A800020231A7AECD64000563D781077497800EA -:105A9000563D19200000202378004D3DB4A6FFB7E5 -:105AA0005A7E092079009CD64000553D0920780097 -:105AB0001A79C0685A70002D4E70C4686020D47185 -:105AC0000120014F0420C4D0C000AB3DD8702DA0F0 -:105AD0004000843DBCD140009E3D807A94A2000FDE -:105AE000DC7006A24000753DE07804A5C000AB3D27 -:105AF000DA70BCC1D6717800AB3D312001002C8535 -:105B00004800833D3386108278007C3D7C00E07D38 -:105B100094A500FF4000913D112008002F857810CA -:105B20007A3D37867800933D78107A3D17828078E9 -:105B300084A0000F06A24000AB3DDE72DA7678004A -:105B4000AB3D807A94A2000FDC7036A240009B3DF2 -:105B5000E07834A540009B3DBDC1D671B4D1C000F2 -:105B6000082A002305A44000082AA47086A001008A -:105B7000C000522A7C00206005A04000C63D018084 -:105B80002260086085A008000A600F7000012C7078 -:105B900026607C0006A07810D645007086A0020022 -:105BA0004000D43D647086A00500C000DE3D2B6837 -:105BB0000000176800001B680100236840001F6890 -:105BC0000001007084A00F007900E33D0C2AF33D32 -:105BD000ED3D153EFD3D0C2AEB3DEB3D7810B22925 -:105BE0007810203E7810193E7800F93D7810203E5C -:105BF0005C706020006802607810732078000C2AC6 -:105C0000647067700000837000007900043E113EEC -:105C1000113E0C3E0C3E0C3E113E0C3E113ED47724 -:105C2000DDC7D67779007E2F6770000078000C2AD8 -:105C30001B68000078001137006805A0C0001E3EF8 -:105C4000026006607C001064FF844000323E092040 -:105C5000024F042101800A2021841264C000323ED8 -:105C60002120044F0424A5C022200860A4C00A609B -:105C70007C00186005A040003C3E01801A607C005A -:105C80007810D3431B68180078007D3E7810D3430A -:105C90001B68190078007D3E7810D3431B681A00FA -:105CA00078007D3E7810D3431B68030078007D3E6A -:105CB000747778104E4278718CA1FF00103294A254 -:105CC00000034000643EE8A1C0947800663EE8A16D -:105CD000D095042D082D682005A0C0006F3E7E7071 -:105CE00078000C2A1468747206A24000773E00689F -:105CF0007800673E00680A201B6805007F7000007E -:105D00007810203E206884D0C000853E7810193E6F -:105D10007810363E1F68000023682000781073203A -:105D200078000C2A82A20300C0000741A87DACA520 -:105D3000FF005A7EA87EB4A6FF002069BDC122697B -:105D4000C4D14000EA3EC4C12269B4A6FF004000AD -:105D5000D73E82A60C004800AE3E4000AE3E312049 -:105D60000C00002586A00A004000B53E2B852B853F -:105D70007810E0414000BD3E7810BC3F7800E03E26 -:105D800078109B417E0C6029046084A0F5FF0660BA -:105D90007810F23F7F0C2069C5C12269587E95C6F4 -:105DA0005A7ED4D6C000D43E1B7864007C001B7899 -:105DB00078007C007E0C6029046084A0F5FF0660FA -:105DC0007810F23F7F0C587ED4D6C000E73E1B7897 -:105DD00067007C001B7879007C007E0C5870602086 -:105DE0000061E4D14000333F0862178294A2FF00B3 -:105DF00082A20C004800FD3E4000FD3E11200C0038 -:105E0000002602A2C800023F3022086294A2FF00CE -:105E10000120054F0420E4D0C000173FEC78E4D007 -:105E20004000173F82A20A00C8001D3F11200A004F -:105E300078001D3F82A20C00C8001D3F11200C00FD -:105E4000002202A5C800223F282278109F41002589 -:105E500086A00A0040002B3F2B852B857810E0415F -:105E60004000333F7810BC3F7800373F78109B41AB -:105E70007810F23F587895C05A787F0C1B787800DC -:105E80007C007E0C60290060E4D0C000583FB4D094 -:105E9000C000523F106084A00F00C000523F046158 -:105EA0008CA1F5FF06617F0C7C00112032001920C7 -:105EB00000007800833FA068CCD0C000523F086249 -:105EC00094A2FF000120054F0420E4D0C000713FE0 -:105ED000EC78E4D04000713F82A20B00C800713F13 -:105EE00011200A007800773F82A20C00C800773F9B -:105EF00011200C0008631F839CA3FF0082A30C00E9 -:105F00004800833F4000833F19200C00AB7801001C -:105F1000AB780300AB780100AA7AAA7BC0A8050081 -:105F20002068C5C02268D470B4D040009F3FB4C080 -:105F3000D670B87065A0086084A0EFFB0A60186096 -:105F400001801A607F0C7C007E0C602904618CA1AA -:105F5000F5FF066111203200192000007800AD3FE6 -:105F6000AB780100AB780300AB780100AA7AAA7B7A -:105F7000C0A805002068C5C022687F0C7C007E0C8C -:105F80005871602118208CA020004000C53FACC093 -:105F9000082084A0F0FF35A6867E18609A78AE7E31 -:105FA0001266A47884A0F0FF8CA10F0005A1F4C0B4 -:105FB0009CA320004000DB3F85A00040FCC0B4D083 -:105FC000C000E03FFDC0A67816608A78B4A60F0036 -:105FD00037860482048084A0FF0005A60E6004605A -:105FE00084A0F5FF06607F0C7C007E0C587060205A -:105FF00018609A78A47884A0F0FFA678126084785C -:1060000084A0F0FF86780C6084A0FF000E607F0CF7 -:106010007C0082A20200C0000741A87A2069BDC1AD -:106020002269CCD140004140CCC1226994A2FF003A -:1060300082A20200C8000741781094407810F23F15 -:1060400080A901000C2078104A4278103E3FFF885A -:10605000400037409B7860000028AA78587E95C69B -:106060005A7ED4D6C00034401B7864007C001B7874 -:1060700078007C00587ED4D6C0003E401B78670074 -:106080007C001B7879007C0082A20200C800494095 -:1060900084A2010040005240587188A100000C21E8 -:1060A000ECD1C00052401120000078107C417810E3 -:1060B00094407810F23F587895C05A781B78780051 -:1060C0007C007E0C7E026029006011200100ECD073 -:1060D000C0007540BCD0C00073401460B4D0C00094 -:1060E0007340A4C1066106A0780091401120000011 -:1060F000AB780100AB780200AB780300AA7AC0A8A5 -:106100000400D470B4D040008D40B4C0D670B870D4 -:1061100065A0086084A0EFFB0A60186001801A6027 -:10612000206885A0000222687F027F0C7C007E0C24 -:1061300058706020FF8240009C4011204000186091 -:1061400080A002009A78A47884A0BFFF05A2FCC0BA -:10615000B4D0C000A940FDC0A67816608A7804605B -:10616000A4C006607F0C7C007E00007086A0030047 -:106170004000BA407F007800BD407F0078000441B5 -:10618000ACD640000441887884A04000400004411F -:10619000B87B84A33F001B83C800CC40008005A0CF -:1061A0004000E1401B83C800D54001804000014110 -:1061B000F4D64000E140B8781B80C800DD40008084 -:1061C00084A03F00C0000141F4C65A7ED879DC7A31 -:1061D0000120010008A1C800EC4091A20000D27982 -:1061E000DA79D67ADE7A7810444A1B78760084B25F -:1061F00000034000FC40012000007800FE40012028 -:1062000001007810CE487C001B7876007C001B785B -:1062100079007C0078102F411B7878007C00781082 -:1062200018411B7878007C00276802007810204114 -:106230001B7878007C0001200500780031410120A6 -:106240000C00780031412068D5C02268012006008A -:106250007800314101200D00780031410120090012 -:1062600078003141012007009B787E00AA789DC606 -:106270005A7ED470B4D040004741B4C0D6707E0C72 -:10628000B87065A0086084A0EFFB0A601860018008 -:106290001A607F0C7C007E073F87BCA70F003B87FE -:1062A0003B8703877E018CB2000340005841E0A089 -:1062B000C05378005A41E0A040547F01B8A72000A5 -:1062C0009A7FA47984A10F0040006A4184A1F0FF65 -:1062D000A678126004609DC00660388738879A7F70 -:1062E000A47984A1400040007A4184A1BFFFFDC091 -:1062F000A67816600460A5C006607F077C009B78C6 -:106300001000AB780100AB780200AB780300AA7AEA -:106310009B786000AB780400D470B4D040009A4100 -:10632000B4C0D6707E0CB87065A0086084A0EFFB86 -:106330000A60186001801A607F0C7C003120000028 -:10634000292032009B781000AB780100AB78030065 -:10635000AB780100AA7DAA7E9B786000AB7805002F -:10636000D470B4D04000BE41B4C0D6707E0CB870BA -:1063700065A0086084A0EFFB0A60186001801A60C5 -:106380007F0C7C007E15078084A0FF0003800380C3 -:1063900080A020009A78A4798CA1F0FF21203342BC -:1063A00019201100A9200E0011203200042484A01D -:1063B000F0FF06A14000DE412084002310A2F0007F -:1063C000D3417F157C007E150120054F0420E4D0C9 -:1063D000C000114221204142A920090011202800BB -:1063E00082A5190040002742480027422084A99531 -:1063F0001120320082A53200400027424800274287 -:106400002084A99519200A0011206400002202A509 -:1064100040002742480027422084002310A2F000B9 -:1064200003427F15780025422120334219201100B4 -:10643000A9200E0011203200002202A540002742B0 -:10644000480027422084002310A2F00019427F1543 -:1064500006A07C007F1582A56400C8003042087841 -:1064600085A070000A78042405A07C00091202307F -:106470000232034203440454045605660568067854 -:10648000067A070C070C070EE1100A330558055A67 -:10649000066A066C077C077E000E9B78100046A0FB -:1064A0007C0084A7000F0B8084A71F00038003805B -:1064B0000380038005A1FCD740005F42E0A0C074C8 -:1064C00078006142E0A0C0547C007E0E7E0F84D034 -:1064D00040006F42792000010920804F7120804FD9 -:1064E00078007F420920404F7120404F0120044F27 -:1064F0000420ECD040007D427920000178007F42EA -:106500007920000291200080042184A00F007900EE -:1065100086429042904290429042904290428E42F7 -:106520008E427810B229B469F5C18CA19FFFB6697B -:1065300005A04000DF42587884A09FFF85A000603E -:106540005A78287886A01418C000DF424B780400DF -:10655000487884A00400C000A5424B780800487821 -:1065600084A00800C000AC423078BCD0C000DF423C -:106570007E000120044F0420ECD07F004000C14287 -:1065800084B200037800C34284B200044000C942D0 -:106590001800DF427800CB422800DF42E47984A172 -:1065A00030004000DF42EC7884A003004000DF426E -:1065B0001C68ACD0C000DD42781069437800DF422F -:1065C0001B78F9007F0F7F0E7C007E0C0120014FAD -:1065D0000420ACD0C0005B431468078084A00F0087 -:1065E0000380038003808CB200034000F842E0A0E7 -:1065F000C0537800FA42E0A04054046084A00A002E -:10660000C0005B43086194A100FF40005B438CA184 -:10661000FF0001200A0006A14000264301200C00D3 -:1066200006A140002A430120120006A140002E438B -:106630000120140006A1400032430120190006A1E8 -:10664000400036430120320006A140003A43780062 -:106650003E4309200C0078004043092012007800D6 -:1066600040430920140078004043092019007800B5 -:106670004043092020007800404309203F00780073 -:10668000404311200000002105A20A60046085A09B -:10669000020006606120004F0460BCD040005B43F4 -:1066A0001468FCD0C0005643EA606120404F780077 -:1066B0005943EE606120804F1F600F807F0C7C008B -:1066C0001B7879007C001B7878007C001B786700C1 -:1066D0007C001B7864007C000920194F0C2186A1E6 -:1066E000000040007B4386A1010040007E431F70F4 -:1066F0000B00677001001B7847007C001B78F000DE -:106700007C001F700A007C000920194F0C2186A113 -:1067100000004000964386A10100400093431F7093 -:106720000B00677001001B7847007C001F700A0097 -:106730007C001B78EF007C001B78F9007C001B7844 -:10674000F8007C001B78C9007C001B78C8007C0026 -:106750001868FCD04000AB431B681D006770010047 -:106760001B7847007C00307884A0C000C000D24372 -:1067700008788CC00A780500050005000500EC7853 -:1067800084A02100C000CF430120054F0420E4D0A5 -:10679000C000CD43047884A01FFF85A0E0000678E8 -:1067A00006A07C0008788DC00A787C0008788DC02F -:1067B0000A787C00307884A04000C000D7430120D4 -:1067C000044F0420ECD04000E64384B2000378007C -:1067D000E84384B200044000EE439800F24378009E -:1067E000F043A800F243AC787C00087884A0FDFF59 -:1067F0000A780500050005000500EC7884A021005A -:10680000400015447E000120044F0420ECD07F009E -:1068100040000B4484B2000378000D4484B20004AD -:106820004000134498000F4478001544A800134416 -:10683000AC787E00087885A002000A787F007C0092 -:1068400084A70100C000B93784A7700040002D4420 -:106850007E0C602D682F78102629782D682C7F0CEF -:1068600084A7080040003A444B780800EC7884A0E4 -:1068700003004000B93778005D4384A7040040005E -:106880006944B87884A00140400069444B7808000E -:10689000EC7884A003004000B937E47884A00700B6 -:1068A00086A00100C0006944C07885A60048302059 -:1068B0005A7E1B78F9007C004B7808001868FCD0E1 -:1068C000400066441B681500F4D6400066441B680F -:1068D0000700781069437C001B680300587884A087 -:1068E000003F1E682F680000336800004B780800E6 -:1068F000EC7884A003004000AF307E000120044FFC -:106900000420ECD07F004000864484B2000378006D -:10691000884484B2000440008E441800082A78009D -:1069200090442800082A78000C41146B078384A047 -:106930000F00038003800380FCD34000A04480A0AC -:1069400040547800A24480A0C053602048205A7070 -:10695000602A7C00200020000000200000002000B1 -:1069600000002000000020000000200000002000A7 -:106970000000200000002000000020000000200097 -:106980000000200000002000000020000000200087 -:106990000000200000002000620009001400140024 -:1069A0004898140014001499FD98140014008000F5 -:1069B000FF0000010204082080F818000AA2140059 -:1069C0000B300CA21400002513000025100010004D -:1069D0001000100010001000100010001000100037 -:1069E000100010001000100000A2063802715F8035 -:1069F00081943988C420640856A80830C1281B9D9A -:106A000001A20C30472861816A840080A484561852 -:106A10003A8808A8E228CB9CF3A8640844A80C3064 -:106A200001A80830E128CB9C21201DA805A20C87D5 -:106A3000DED8A064E06DC06FA463806C120205A272 -:106A40003D8842792080A1A42B8814183B88DF80E0 -:106A5000A1942770F28537A732A503F07685778653 -:106A600016A83E8814A8012012A804A2C064E06DF4 -:106A7000A067C06F42792080A1A41418DF80A19480 -:106A80003B8823707685778602A861783E886B20E4 -:106A9000C1281B9D44200321A2208120C3A807A256 -:106AA00004090EA209A803A20080A48572189A877F -:106AB0003C88E21F01F608A26E856F8661711400A2 -:106AC00004070830CB9C140002A20080A485093082 -:106AD000A884E21944F86E853F88E608F5A861F8B5 -:106AE000EAA801F8140081F81600B285F08032950A -:106AF000A2FAE21D1400328521F21400E21DA884DE -:106B0000E0D6E61F1400083000804A281110FCA8C7 -:106B10000830339D008000A002281110FDA8399D87 -:106B2000BDA80830339D3B281110FDA809A20271B1 -:106B30005F80819417000C3009A20080A485E21DBB -:106B400009A2C1DA1400100201A81400E0263A8755 -:106B5000A3FAF219E026F21814000BA214000DA2F9 -:106B600006381002259D040706A265687E812A84E6 -:106B7000C11D2388160042600880FAA80080A48402 -:106B800060812A8421F00830A884D6114270DD206B -:106B90001100D420228816004479218420A032A537 -:106BA000A184160044792184DFA03295A1841600C7 -:106BB00000007E12D47084A00046048090200472ED -:106BC00008709CC005A2C00002460C72FF82400003 -:106BD000ED45FF8AC0000246007284D2C000024622 -:106BE0000478CCD04000F3457810CC4A23700000E4 -:106BF00027700000007084D04000FD45077004003D -:106C0000037008007F1200207C00007084A0030045 -:106C100002709CC684D040005B4608710500087075 -:106C200006A1C0000A4684A1030040008C4684A14E -:106C3000E001C0008C46F4D1C0000A4684A10030B7 -:106C400086A0001040000A460120054F0420E4D031 -:106C500040003746112080010C71118240004546EA -:106C60000870F4D0C0000A460C7006A140002A4605 -:106C700078002746112080010C71118240004546A2 -:106C80000870F4D0C0000A460C7006A140003A46D5 -:106C90000770120008710500087006A1C000474681 -:106CA00084A1030040008C4694D140004746F4D1B3 -:106CB00040008C460770020078000A460871FCD13B -:106CC000400066467810ED47FF8A4000DC457800BA -:106CD0005B460C708CA0FF0340009146047084D08A -:106CE00040008346147005A0C0007F4610701073EA -:106CF00006A3C0007346002305A04000834602A1FE -:106D0000C8005B460770100078008C46FF8A400080 -:106D100091467810F249C000864640005B467810E4 -:106D200038477F1200207C00047208719CC10381E7 -:106D3000C800A04607700200780091460370080062 -:106D40007F1200207C0005A2C0008C46237000004A -:106D500027700000037008007E000120014F04200E -:106D6000CCD04000B2467810CC4A7F007F12002081 -:106D70007C002864FF844000E246702C0470BCA0B4 -:106D80000F00B8A7F2463C27FB87C000D04648005A -:106D9000C8467810B2299C6075A04000E246780091 -:106DA000BB463920E746042768AE086830A60C6861 -:106DB00029A521844000E2463887042705A0C000A9 -:106DC000D1469C7075A0C000BB467C000000050049 -:106DD00009000D001100150019001D00000003003E -:106DE00009000F0015001B0000000000E746E44604 -:106DF0000000000000800000E7460000EF46EC467F -:106E00000000000000000000EF460000EA46EA46ED -:106E10000000000000800000EA460000F046F04656 -:106E20000000000000000000F0467920004F7120B3 -:106E3000100007700A00077002000370010010784C -:106E4000ECD0400026470920010071202000780086 -:106E50002A47092002007120500007700A000770BD -:106E600002000370000009814000374771202000B4 -:106E700078002A477C0004700480C800C14708716C -:106E8000087006A1C0003C4784A1E00140004947CA -:106E9000781030487800E947077012001920000088 -:106EA0000871087006A1C0004D4784A1E0014000B0 -:106EB0005A47781030487800E9471078ECD0400005 -:106EC00074470120FD04042086A00300C000784719 -:106ED00084A1004040007C4782A30300C8007C4797 -:106EE00084A1040040004D47188378004D47147872 -:106EF000ECD0C0007C4784A10040C0004D479CA15D -:106F00000C3086A304204000994786A30800400067 -:106F1000A447047084D0C00095470871087006A18A -:106F2000C0008A4784A1030040009547780030489C -:106F300086A30C20C0004D47007204824800A4477D -:106F40000C7384A3FF034000A4477810B229087192 -:106F5000087006A1C000A44784A1E0014000B14729 -:106F6000781030487800E94707701200007084D02C -:106F7000C000C1471073147005A34000C1470C71D5 -:106F800084A1FF03C00038470871087006A1C00043 -:106F9000C14784A1E0014000CE4778103048780016 -:106FA000E947077012000770080004709CD0C00009 -:106FB000D2470871087006A1C000D64784A1E0013D -:106FC0004000E347781030487800E9470770120026 -:106FD000087103814800D647037008007C000871DF -:106FE00084A1E001C0003048087184A1E001C00024 -:106FF000304884A107007900FA4704481448024841 -:10700000144802487248024870487810B229047047 -:1070100084A010008DC00670FF8AC0000F48492070 -:1070200000007C007810F249C0000F487C0004701A -:1070300084A010008DC00670047084D0C000284861 -:107040000871087006A1C0001D4884A1030040001B -:10705000284878003048FF8A40002F487810F249CD -:10706000C0002B487C00077012000871E000334814 -:1070700091200060E0003748912000600770120006 -:107080000770080004709CD0C0003F4807701200D1 -:107090000871FCD1C000434803700000007005A0D7 -:1070A000C0005748047005A0C00057480C7005A0E8 -:1070B0004000594878003B484920000084B2000154 -:1070C000400063480120000078006548012001006D -:1070D000781062421B680200512000007C0078108A -:1070E000B2297810B2297810B948107214710C7056 -:1070F0009CA0FF03002800A311A289A10000781022 -:10710000B9480427582C60AC0863002222A30C6302 -:1071100000211BA3002405A340009548C800954802 -:10712000128410820A8389A10000602B78007C48B9 -:10713000602B078A7E0004609CD04000A048BAA75C -:10714000EC467800A248BAA7E4467F003DA7002C91 -:1071500086688A6F926C8E6B0871087006A1C000F9 -:10716000A94884A1E0014000B44878103048077075 -:107170001200781038477C00508A3987042704A011 -:10718000C000CD48006064A0C000C448602D046009 -:1071900084A00F0080A002473C20FB874010B2294A -:1071A0007C007E127E0DD47084A000460480902066 -:1071B0007F0D8468602088688C6B906C5780D4AA9F -:1071C000FF0084A0FF007E00046884A008007F0008 -:1071D0004000EB48B8A0EC467800ED48B8A0E44683 -:1071E00084B200014000F448207E7800F548247EF7 -:1071F000B5A60C001C68B4D04000FC4885C600242D -:1072000005A340002549582C0427046160AC0060A8 -:1072100000A41A70046001A31E709CD1400015499F -:10722000106081A000002270146081A00000267010 -:107230000862002402A212700C62002303A21670DE -:10724000027607700100602B78101C4A78002749ED -:107250007810F249C00025497F1200207C007E1280 -:107260007E0DD47084A00046048090207F0D0770AE -:107270000400047094D0C0003649037008007F12E7 -:1072800000207C007E127E0DD47084A00046048015 -:107290007E0090207F007F0D207E84B20001C00020 -:1072A0004F49247EB5A60C001C68ACD0C0005A49DA -:1072B00085C6037000000770040028685020602D08 -:1072C0000460BCA00F00B8A7F2463C27FB87C000B3 -:1072D000704948006A497810B2299C6865A040004E -:1072E000744978005D497810F249C00070497F12F6 -:1072F00000207C007E127E007E017E0DD47084A072 -:10730000004604807E0090207F00207E84B2000131 -:10731000C0008849247E7F0D7F037F04B5A60C0042 -:107320001C68B4D04000964985C603700000077001 -:10733000040049207749286855A07E0D4000EE4999 -:10734000702D602E0470BCA00F00B8A7F2463C2739 -:10735000FB87C000B3494800AC497810B2299C7043 -:1073600075A060204000EE4978009F49042768AE70 -:10737000086822A40C681BA34800CC49518AC000AD -:10738000C0497810B2293887042705A0C000B44945 -:107390009C7075A060204000EE4978009F492284CF -:1073A00020841A8399A300000869002422A10C6993 -:1073B00000231BA1C800DB497810B22984B2000168 -:1073C0004000E9490120044F0420ECD0C000E94905 -:1073D000712050007800EB49712020007F0D78006B -:1073E000FC487F0D7F1200207C0008707E0084A086 -:1073F000E0017F004000FB4906A07C0084A0030060 -:1074000086A00300C000024A7C00042778AC007804 -:107410001A7004781E70087812700C781670046068 -:107420009CD04000144A107822701478267002769E -:10743000047084A0100085C006707920004F388742 -:10744000518A4000404A042705A0C000324A9C608F -:1074500005A04000414A6020046084A00F0080A085 -:10746000F2463C20FB874010B22908707E0084A0C1 -:10747000E0017F0040003C4A06A07800414A84A019 -:10748000030086A003007C00512000007C007E12D7 -:107490007E007E0DD47084A00046048090207F0D75 -:1074A0007F08087184A10300C000594A286805A01C -:1074B0004000694A780002460871FCD14000614AE8 -:1074C0007810ED4778004E4A077010000871FCD123 -:1074D0004000634A7810ED47087086A00800C0009D -:1074E0004E4A007005A0C0004E4A037000004920BB -:1074F00000007E000478CCD040007D4A7810CC4A51 -:107500007F007F1200207C007E127E147E137E1589 -:107510007E0C7E0DD47084A00046048090207F0DE8 -:107520004920814A80AD1100A02084B200014000B2 -:10753000A44A0120044F0420ECD04000A04A992026 -:1075400031007800A64A992032007800A64A992096 -:1075500031000C7084A0FF032A68077008000770D0 -:107560000200037001004000B54A0080AC80A553C2 -:107570000C7084A0FF034000C14A0770040004702F -:1075800084A00400C000BC4A7F0C492000000370A6 -:1075900000007F157F137F147F1200207C00146889 -:1075A000FCD04000114B007084D04000114B247E71 -:1075B000B5A6040007700400047084A00400C00095 -:1075C000D94A18717E011C717E0120717E012471DF -:1075D0007E010EA01A711F70FF3F22712671137079 -:1075E000040016710276077001000120FFFF0920D8 -:1075F00031000A200A200871087006A1C000F84A6C -:10760000FCD14000F84A7F0226727F0222727F027C -:107610001E727F021A7207700200087086A00800AE -:107620004000114B780030480770040003700000E0 -:107630007C009120008091200060AC7805A0C00003 -:107640002D4B7479D07006A1C0002D4B1C7805A07D -:1076500040002D4B1F78000068002D4B912080408A -:10766000307801803278C000B54B347832781078A9 -:10767000ECD0C000AE4B6120C0746920804FFDC7C4 -:10768000D06805A04000474B0180D268C000474B3E -:107690007810834D006884A00F0040005C4B86A0EA -:1076A000010040005C4B44680DA040005C4B04218D -:1076B00005A040005C4B01800A204000F64C146895 -:1076C00005A04000814B01801668C000814BA7686F -:1076D00001007E0FFCD7C000764B1078ECD0400044 -:1076E000724B792000017800784B792000027800F5 -:1076F000784B792000017810D3437F0F646805A090 -:107700004000814B78106F26806805A040008E4BAA -:1077100001808268C0008E4B67680000D468DDC0BD -:10772000D668D468FCD04000AB4BFCC0D668A9201A -:107730000002346005A04000A74B01803660D46889 -:10774000FDC0D668C000A74B106005A04000A74B45 -:1077500078106F26E0AC1000F000964BFCD740008C -:10776000B54B6120C0546920404FFCC778003D4BA9 -:107770007810F14B387801803A78C000D74B3C78CC -:107780003A786120C0546920404FFCC70C6805A0BE -:107790004000C94B78105B4CFCD7C000D74B107829 -:1077A000ECD0C000D74B6120C0746920804FFDC76A -:1077B0007800C34B1478E4D0C000DB4B1078CCD0F9 -:1077C0004000EE4BACD0C000E74BA4D04000EE4BE5 -:1077D000ADC01278912001806800ED4B7810DC2359 -:1077E0007C00912001807C00407801804278C000BC -:1077F0005A4C447842786920404FFCC71078792071 -:107800000002ECD04000034C79200001D86805A0AC -:1078100040000F4CE07D04A5C0000F4CDA68D4682E -:10782000BCC0D6687920004F106805A0C000174C76 -:107830000120010101801268FCD74000204C80A08B -:10784000D0957800224C80A0C0944020042065A0F0 -:1078500040004C4C246005A04000484C018026604C -:10786000C000484C006805A040003B4C4C6806AC8A -:10787000C0003B4C7810F64C78004C4C646805A076 -:107880004000434C276001007800484C7810A94C18 -:1078900004287800244C0060402C7800244CFCD74D -:1078A000C0005A4C1078ECD0C0005A4C6920804F70 -:1078B000FDC7792000017800034C7C0009200000FE -:1078C000A920000208609CD04000954C246005A0CF -:1078D00040006B4C018026607800934C08609CC08F -:1078E00084D0C000734CACD040008D4C0A60046062 -:1078F00005A04000954C7E0D7E0C7E016820106036 -:10790000018012607810193E002D682C60207810DC -:10791000A21E781064207F017F0C7F0D7800954CAB -:10792000BDC00A608DA101007800954C8DA10001B9 -:10793000E0AC1000F0005F4C84A101004000A44CBA -:107940008CA1FEFF0E6978106F267800A54C0E6999 -:107950007C00C000A54C6C78002C7E681467766FA4 -:10796000176000002B6000001B600600B46084A05C -:10797000003F1E60206084A0FF0085A060002260A0 -:107980000060422078102B1E186805A04000C74CEC -:1079900001801A680868A4C00A681068087909811B -:1079A0000A790180D000D34C7810B2291268C00047 -:1079B000D94C1079A5C112792F6000003360000006 -:1079C000682C78107320FCD7C000E74C6920404F2A -:1079D0007800E94C6920804F106984A100010120E2 -:1079E0000600C000F34C7A69012004007810632679 -:1079F0007C007E0D4C696021FCD7C000084D1078DA -:107A0000ECD04000044D6920000178000A4D692047 -:107A1000000278000A4D69200001781026291B60B9 -:107A20000600586884A0003F1E60206084A0FF000C -:107A300085A0480022602F600000336000000868C5 -:107A400084A0FDFF0A683068B4D040003C4D4B680C -:107A50000400A9201400486894D040002E4DF00086 -:107A6000284D4B680900A9201400486884D04000C4 -:107A7000384DF000324DA920FA00F0003A4D1B6855 -:107A800047007F0D676807007C007920004F781061 -:107A9000764D78105C4D7810694D09200200692000 -:107AA000804F0F680000136800001768000009810C -:107AB00040005B4D6920404F78004E4D7C001078AF -:107AC000ECD04000644D1920CC007800664D1920A0 -:107AD0007B003A7B3E7B7C001478E4D0C000714D83 -:107AE000192040007800734D19202600427B467B08 -:107AF0007C001478E4D0C0007E4D1920943F7800BB -:107B0000804D19202426327B367B7C00506A85A26A -:107B100000004000AF4D5469C06B00A37E0C64218F -:107B20000463FF83C0009B4D118240009F4D08817C -:107B30001AA148008C4DC06978008C4DD3680A00AA -:107B40007F0C7C005069C06A64222B6000002F60AB -:107B500000000860B5C00A6010820981C000A14D14 -:107B600052697F0C7C00E000B04D91200060E00085 -:107B7000B44D91200060EC70DCD0C000C14DD4D079 -:107B80004000EA4D7800ED4D08201078ECD0400020 -:107B9000D44DC4D1C0000E4E1478C5C016781078EC -:107BA000F5C01278ECD040000A4E7800064E8EAE3A -:107BB00000014000E14D1478F5C0C5C01678D4D05E -:107BC000C0000A4E7800064E1478FDC0C5C0167875 -:107BD000D4D0C0000A4E7800064EE4D040000C4ECF -:107BE000E000ED4D9120006009200C00E000F34D15 -:107BF000912000600981C000F34DE47084A0FF0172 -:107C000086A0FF01C000044EEC707800C14D7810D2 -:107C10000F4E04788CD040000C4E1F680C00A070F2 -:107C2000A2707C001079ECD14000194E1478C4C0C9 -:107C3000F4C1127978002B4E8EAE00014000254E23 -:107C40001478F4C0FCD0C0002B4EC4C078002B4E7A -:107C50001478FCC0F4D0C0002B4EC4C016787C0051 -:027C6000E3142B -:00000001FF -/***************************************************************************** - * QLOGIC LINUX SOFTWARE - * - * QLogic ISP1280/ device driver for Linux 2.2.x and 2.4.x - * Copyright (C) 2001 Qlogic Corporation (www.qlogic.com) - * - *****************************************************************************/ - -/************************************************************************ - * --- ISP1240/1080/1280 Initiator Firmware --- * - * 32 LUN Support * - ************************************************************************/ - -/* - * Firmware Version 8.15.11 (10:20 Jan 02, 2002) - */ diff --git a/firmware/qlogic/isp1000.bin.ihex b/firmware/qlogic/isp1000.bin.ihex deleted file mode 100644 index a5c242cda220..000000000000 --- a/firmware/qlogic/isp1000.bin.ihex +++ /dev/null @@ -1,1158 +0,0 @@ -:1000000078003010000019240000FF124320504FE8 -:10001000525947495448312039392C313931323914 -:10002000312C39392C333931343951204F4C49472F -:1000300020434F435052524F54414F49004E4920A4 -:1000400050533031303046207269776D72612065CF -:100050005620726569736E6F30202E313133202047 -:10006000B9201212C120080071201000C3700400D2 -:10007000C920FF3F8920C810C7705349CB7020505A -:10008000CF702020D3700100003FD67031203000A7 -:100090007920003563780000A02F09202703112064 -:1000A0000000A9204000A4420981C00051109B78A3 -:1000B00001010B7802000F7802004F78B80B69201D -:1000C0004035A8006A101B683C0009201313B821B2 -:1000D00078006C101B682800076807000B68FA009E -:1000E0000F680800136805001F68000023680600F9 -:1000F00017680800276800006920003611202000DA -:10010000092010000B68190C0F681900036800DD46 -:1001100007681A001A6A002DE8A0080090A20400DF -:100120000981C000821069208036A92080003768CC -:1001300000000B684000176800011F686400E8AD0C -:1001400010007000A510780097107810381A7810F9 -:100150003A2F781081167810BA33003285A00D003E -:100160009020C37000009000BC10C07086A00200F8 -:10017000C000BC107810BA117810EC107810171865 -:100180007810A81978107D3278107D177800BC108F -:10019000D010D210C31BC31B982F982FC31BC31B97 -:1001A0007800D0107800D2107800D4107800D610E3 -:1001B00008700C80C800E710077002008CA00C00CB -:1001C000C000E81004800480C800E7107A087A09AB -:1001D000C37002407800BD11147805A0C000F4106F -:1001E0001000301178002F1109206835042105A076 -:1001F000C0002F11147886A00100C00001117810F2 -:1002000036151778000009206F35042165A04000DD -:100210001D1109206A351C2108811421088104213F -:1002200010A299A3000009201C008360030178102C -:100230001116C00029117810781609206F350B208F -:1002400000000920693504210B20000005A04000B2 -:100250002D11012005407800BC117800BA117C00F6 -:1002600061200000186084A00100400038117C006B -:10027000C3700000C7700000CB700000CF7000009A -:10028000C070BCA0C0FFC0008811382079004811A0 -:10029000BA110512D311051256125612CA11901531 -:1002A0006112C611D711D911DB11DD119515C611D7 -:1002B0006712831244158A15DF116B148D14A7146D -:1002C000D0142414321446145A14EF12C6119F127B -:1002D000A612AB12B012B612BB12C012C512CA12CD -:1002E000CE12E312C611C611C611C611C611FB12F9 -:1002F00004131313391343134A1370137F138E130C -:10030000A0130914C611C611C611C611C6111914BD -:10031000BCA0A0FFC000C611382084A01F00790037 -:100320009111C611C611C611C611C611C611C6114A -:10033000C611C611C611C611C611C611C611C61105 -:10034000C611C611C611C611C611C611C611C611F5 -:10035000C611C611C611ED15F715FB150916C61104 -:10036000C611CA72C671012006407800BC11CE7356 -:10037000CA72C67101200040C270612000001B607B -:10038000010091200050912080407C00C37001400A -:100390007800BD1199204100A1204100A92005004D -:1003A000A3537800BA11C470C37004007A007800B7 -:1003B000BA117800BA117800BA117800BA119120F8 -:1003C0000080C3700000C7705349CB702050CF70BD -:1003D0002020D3700100003FD670792000001B78E8 -:1003E00001003120300059200010292057045120ED -:1003F000700461207204B920FFFFC1200000912029 -:1004000000509120804078005504D071C872CC73A0 -:10041000C470A020982031203000FF814000BA1124 -:10042000077004001A731E72512012004920341202 -:100430004120BA110370020086A70100C0002612F5 -:100440004920421241204E12037003001770000031 -:100450000B811271C8002E12177001000770010085 -:1004600086A70100400042120C7084A07F00048027 -:100470000920200002A142094A09A820A026A6536B -:100480007800D8100C7084A07F0040004212AC802D -:10049000480042129826A5537800D8100C7084A00A -:1004A0007F00AC809826A5537800BA11C471C8703B -:1004B00014219EA70400C0005E120A20CA727800B0 -:1004C000B911C7700100CB701F007800BA11C47059 -:1004D000C872CC73D074C670CA72CE73D27405A0C1 -:1004E00040007D12018072787A7A7E7B767C9878E3 -:1004F00084A0FCFF9A7878008112987885A001008A -:100500009A787800BA11C470C872CC73D474C6706B -:10051000CA72CE73D67405A0400099120180867805 -:100520008E7A927B8A7C987884A0FFFC9A787800F7 -:100530009D12987885A000019A787800BA11092058 -:1005400059350C21112010047800B81109204135CB -:100550000C217800B911092042350C217800B9111D -:10056000612040350C6110627800B81109204535D2 -:100570000C217800B911092046350C217800B911F9 -:10058000092047350C217800B911092048350C2184 -:100590007800B91108790C7A7800B811C471078114 -:1005A00084A00F00038003800380E8A00036006A67 -:1005B000046884A008004000E012086B7800E11293 -:1005C0000C6B7800B711C4777810921691200080D8 -:1005D0001C6B146A9120018008277800B711C4773A -:1005E00078109216912000800869186A106B91208B -:1005F00001807800B711C47182A11000C800B21147 -:100600007810BC1A7800B711C47182A11000C8001C -:10061000B2111120413504227E0012217810751A82 -:100620007F017800B911C47111203113A92008008D -:10063000042206A1400023131082700021137800C9 -:1006400018137800B21192A231137E0211204235A4 -:10065000042212217F017E007810811A7F01780028 -:10066000B911E803FA00F401EE0264001900320047 -:100670004B00612040350C611062C4700E60C87080 -:1006800012607800B811612040351461C4701660A2 -:100690007800B911C471112004001920121286A12A -:1006A000280040006313112005001920121286A1B2 -:1006B000320040006313112006001920131386A195 -:1006C0003C00C000B2116120403518607E001A6104 -:1006D000B8237810921A7810BA337F017800B911D4 -:1006E000C47184A1CFFFC000B2111120473504228C -:1006F00012217E007810B41A7F017800B911C471FC -:1007000082A11000C800B2111120483504227E00D9 -:1007100012217810A31A7F017800B911C471C87230 -:1007200084A1FDFFC000B11184A2FDFFC000B11182 -:10073000002108790A7800220C7A0E787800B81126 -:10074000C471078184A00F00038003800380E8A0A8 -:10075000003619200000C87200687E0026A2400002 -:10076000CF13026A84A400204000B8139DA3100098 -:1007700084A400104000BE139DA3080084A4004080 -:100780004000CF130F8184A200404000CB137810AB -:10079000D61A7800CF137810C81A7800CF13CC720D -:1007A000FF8240000114086806A240000114A4A2C0 -:1007B000FF0061204035186186A128004000E81341 -:1007C00086A132004000EE1386A13C004000F413E5 -:1007D00082A464004800FE137800F81382A450003D -:1007E0004800FE137800F81382A443004800FE136B -:1007F000C471C6717F02CA727800B3110A6A9DA3E0 -:100800000A00046805A306687F020C6BC4717800B7 -:10081000B711C4777810921691200080146A1C6B6F -:1008200091200180C8701668CC701E680827780077 -:10083000B711C471C872CC7382A11000C800B21184 -:100840007810E41A7800B711C477781092169120C6 -:100850000080086A95A202000A6A91200180082798 -:100860007800B811C4777810921691200080086A39 -:1008700094A2F9FF0A6A046805A0400041147810A8 -:10088000191A9120018008277800B811C4777810D0 -:10089000921691200080086A95A204000A6A0468F2 -:1008A00005A0400055147810191A912001800827DE -:1008B0007800B811C477412001004920050051207B -:1008C00020009120008078109F1691200180082739 -:1008D000086A7800B811C477C872CC73C677CA7238 -:1008E000CE7378101817C0008914186805A040004E -:1008F000831408277810F41AC00083141778FFFFB8 -:10090000912001807C009120018001200540780029 -:10091000BC11912001807800BA11C477C6774120BC -:1009200021004920050051202000912000807810EE -:100930009F1661204035A3600300B667A7600000E2 -:100940001778FFFF912001807810191A7C00C87772 -:10095000CA77C477C677BCA700FF912000806120CA -:100960004035A3600200A7600000B6671778FFFF5C -:100970007810191A9120018041202100492004009B -:10098000512010009120008078109F16C8703668A2 -:10099000388784A70700C000C414912001807C0020 -:1009A000987884A00300C000F4143920000041208E -:1009B000210049200400512008007810921691204F -:1009C000008008680DA80A6991200180388784A7F3 -:1009D0000700C000DD14BCA700FF3F8738873F87B2 -:1009E00084A7000FC000DD14912000806920000161 -:1009F000306884A0400040001D154B680400A92009 -:100A00001400486884A0040040000A1570000A150C -:100A1000780001154B680900A9201400486884A0DB -:100A20000100400017157000171578000E15A92059 -:100A3000FA0070001D157800191579200035177817 -:100A4000010061204035A3600100A7600000C36081 -:100A50000F00987885A002009A78086884A0FDFFAE -:100A60000A681B684600912001807C00987884A069 -:100A7000FDFF9A7884A00100C0004015781060172F -:100A8000C471C6714A797C00C474C873CC72C674D0 -:100A9000CA73CE72792000350920400078106F1695 -:100AA0004000861578103F1640005A1578107816C9 -:100AB000780086151060912001801778FFFF0920CB -:100AC00068350B20050008810B20000008810A23EF -:100AD00008810A2208810A2408810A2008810B2043 -:100AE000000008810A2C2EA030257E0E7810132FCE -:100AF0007F0E9265A2659666A666AB600000AF6049 -:100B00000000912001807810191A7C00C370054004 -:100B10007800BD11C471C770000006797800BA1161 -:100B2000C471C671682178009715692000100C699E -:100B300016A0042D10A2688D0981C000991585A208 -:100B40000000C000A715C37000407800A915C3704D -:100B50000340CA707800BD11C471C872CC73002103 -:100B600084A1FCFFC000C61100217900B715CE1585 -:100B7000E315E515E715C3700340CE71D272D67345 -:100B80007800CA15C3700040CF700000D370000019 -:100B9000D7700000C677CA717800BA113120E91504 -:100BA000242630861224042246A4C000BB1584A447 -:100BB000FFFFC000D0153120E9151082198384A3EE -:100BC000FFFFC000D0157800C2157800C21578006C -:100BD000C2155555AAAAFFFF00006079C671C471FD -:100BE00082A10300C800B21162797800BA1160795D -:100BF000C6717800BA115479C671C47156795879A2 -:100C0000CA71C8715A795C79CE71CC715E797800FD -:100C1000BA115479C6715879CA715C79CE7178006D -:100C2000BA110C7084A07F0040001D1607700400EC -:100C3000047084A00400C000181617700000127120 -:100C40001A721E7308810C81A981988CA120300032 -:100C50008060A220A6530C7885A000000270077067 -:100C6000010008710481C80031160770020084A1D8 -:100C70000C000C7184A10003037000007C000C7058 -:100C800084A07F0040004B1607700400047084A00D -:100C90000400C00046161770000012711A721E730D -:100CA000992030000881AC810C7885A00100027089 -:100CB0000770010008700C80C8005A160770020007 -:100CC0008CA00C00C0006C160C7184A10003C00045 -:100CD0006C16A02CA55306A0037000007C00507871 -:100CE00065A040007716042C5278632000007C0039 -:100CF0007E0F7920003550786220002C52787F0FCB -:100D00007C0011200040527A192010041983400001 -:100D10008F1680A22F001220102078008616132034 -:100D200000007C0084A7000F0C8084A707000380CC -:100D300003800380038005A1E8A080367C00781042 -:100D4000921600292A68002A2E68086884A0EFFFFE -:100D50000DA80A6909204F350C21046805A0400040 -:100D6000BC1616A1C000BC166020006006687E019B -:100D70000B2000007800BF16092000007E010468E7 -:100D800065A04000CE16006006687810DF16781067 -:100D9000CB17106801801268C000BF167F0102697E -:100DA00006697C0065A04000DE1698609B6000002C -:100DB00008207810781600217800D2167C00036095 -:100DC0000301A9201C0080AC0400A0200120000029 -:100DD000A440286816602C681E607C007E0E71207E -:100DE000403540708CA08000C000FC1688A0803583 -:100DF0000A2D0080427006A07F0E7C007E0E7120BE -:100E00004035092080354072218211824800161732 -:100E10000421088106ADC000051719811E21088133 -:100E200018831182C8000E17427406A07F0E7C0042 -:100E3000781092169120008004681E7865A040000A -:100E40005F1778002917002C1E78006065A040000D -:100E50005F170C6006A3C0002317086006A2C0003D -:100E60002317282C01204F35042006AC40005F17C3 -:100E7000046806ACC000461700606020066805A044 -:100E8000C0004617036800007800501700641C7803 -:100E90006020026486A40000C0005017002C026885 -:100EA00060257810DF16176005001F60200078109D -:100EB000CB171068018012680120FFFF05A07C009D -:100EC0003920000041202100492004005120080061 -:100ED0009120008078109F16388784A70700C000F3 -:100EE0006A17BCA700FF3F8738873F8784A7000F9A -:100EF000C0006A17912001807C006120000018600A -:100F000084A00100C0008A17AC78AF78000005A06B -:100F1000C0008B177C008CA0F0FF40009117781068 -:100F2000A51B79009317A317A517AB17AF17A31726 -:100F3000B317A317A317A317A317B917BD17A317A1 -:100F4000A317A317A3177810A51B7810601701200B -:100F500001807800C317012003807800C3170120A7 -:100F600004807800C317781060170120068078008D -:100F7000C31701200C807800C31778106017012078 -:100F80000D807800C317C270612000001B60010053 -:100F9000912080407C00042C8260082C632000009B -:100FA000647800806678687805A06A794000DB176D -:100FB000022C7800DC176E797C007E0C61200035F5 -:100FC00083680301082D6B20000064600080666068 -:100FD000686005A06A614000F017022D7800F117E3 -:100FE0006E617F0C7C0078100418400003187E0CA2 -:100FF000986065A04000FE177810D2167F0C9B60A9 -:101000000000781078167C006C7865A040001618F7 -:1010100091200080647801806678042C6E7805A0A9 -:10102000C00014186A780080912001807C009878B4 -:1010300005A0C00065187479D07005000500D07255 -:1010400006A2C0001C18002206A1C00033180478B4 -:1010500005A0400065180778000068006518912019 -:1010600080407800651878106F16400065187C7A0B -:10107000787B07810480048010A299A300000920D6 -:10108000400078103F1640005C1878107816807881 -:101090000080827886A00200C00065189120008040 -:1010A000AF78020083780000987885A003009A78D2 -:1010B00091200180780065188378000078109219DB -:1010C000006084A00700790066187C006E187D1807 -:1010D0009D186E18AF186E186E186E18392000041F -:1010E000A87805A7AA78046005A706607810ED180F -:1010F0001860A67878107A197C00A87884A000017E -:101100004000841878006E18AB78000000600780FB -:1011100084A0FF009E7801809B60000040009A1828 -:101120007810ED1840009A18A87885A00001AA78D8 -:1011300078009C18781011197C00A8788CA0000EFB -:10114000C000A61884A00001C000A81878006E187E -:101150007810ED18C000AE18781011197C00A8782E -:1011600084A000014000B61878006E18AB7800002B -:101170001067A9200100146084A0FF0005A04000B2 -:10118000D318BCA700FFA92008008EA001004000D2 -:10119000D31839200000A92080008EA00200400052 -:1011A000D3187800EA1878109216002D912000804C -:1011B0002B6800002F680000086884A0DEFF0A6822 -:1011C000002D80A010006820912001807000EA1896 -:1011D0007800D618781078167C00A0786DA0C00032 -:1011E000F818002CA278A6789B60000078000419FB -:1011F000002C9A689B600000A278002D0260A47801 -:1012000006ADC000041902609C7801809E78C00081 -:101210001019A87884A00000AA78A478602006A0FD -:101220007C002EA03025186184A160009E614000E2 -:101230001D197E0E7810132F7F0E9265A26596669B -:10124000A666AB600000AF600000106778109216D1 -:1012500091200080086884A0010040003F1991207F -:1012600001807810DF16912000807810CB17912034 -:101270000180A3780000A778000078007919206029 -:1012800096A00100C000461900802260106A146810 -:101290009120018002A248005519400055193920BB -:1012A000000278107A1978007919082C91200080B2 -:1012B000006865A040005D1902610269C000611903 -:1012C00006696021036000001068008012689120A8 -:1012D000018008688CA040004000731986A040007F -:1012E0000A687810EE167810191AA7780000A3780B -:1012F00000007C00046005A7066091200080781043 -:10130000CB1791200180A47865A040008D199860CA -:10131000A6789B60000078007D19A3780000A7786C -:1013200000007C007079747800800AA1C8009919C7 -:1013300006A07678D270047805A04000A719018035 -:101340000678C000A7196800A719912080407C008A -:101350006800C219292000006C7865A04000BD1902 -:101360007810C3194000BD197E057810D9197F0582 -:10137000C000BD1928857800AC19FF854000C2194E -:10138000912080407C00847B8879D4720500050020 -:10139000D47006A2C000C519002202A1C000D31952 -:1013A000002305A07C004800D71902A37C0002801E -:1013B0007C0078100B1A09201C00246005A0400056 -:1013C000E31909204000781011164000FC199478A8 -:1013D0000080967886A00200C0000A1A9120008042 -:1013E000AF78030097780000987885A000039A787A -:1013F0009120018078000A1A977800007810F3177E -:101400008479887800800AA1C800071A06A08A7823 -:10141000D67006A07C00078104800480907A8C7BC3 -:1014200010A299A300007C0009206835912000805B -:101430000A207E0F7920000109204035912000808C -:10144000042186A00000C000341A092012350421AE -:1014500005A0C000341A307884A0C000C000341A3F -:101460001800341A1B784400912001807F0F7C0003 -:101470007E1291200023712040357920000119202F -:10148000D82DA1202B01042305A04000501A9A78E2 -:101490001883AC2318839823A65318337800431A73 -:1014A0009B782000A9201000AF780000AF782002C0 -:1014B00070005C1A7800541A0370000078105B1BEF -:1014C000047084A00F0085A0806206780F780092D7 -:1014D0004378D800537880000B78380047707F3508 -:1014E000437000007F1200207C008CA10F001120AF -:1014F0000101042284A0F0FF05A1122078105B1BDB -:101500007C0011200101A92009000B8170008A1ABA -:101510007800851A8CA1000E042284A0FFF105A199 -:1015200012207C0009200101A9200500138270000F -:101530009B1A7800961A94A2E000042184A01FFF51 -:1015400005A20A207C0011200101A9200C000B81BA -:101550007000AC1A7800A71A8CA100F0042284A0B5 -:10156000FF0F05A112207C0011200201042284A09B -:10157000CFFF05A112207C000381038080A0200002 -:101580007E0C612000019A60AC62AC637F0C7C0031 -:101590000381038080A022007E0C612000019A60FC -:1015A000A46084A0DFFFAE607F0C7C000381038019 -:1015B00080A022007E0C612000019A60A46085A0BA -:1015C0002000AE607F0C7C000381038080A020009F -:1015D0007E0C612000019A60A460AE621020A460BD -:1015E000AE6318207F0C7C00912000807E0C7E0E64 -:1015F000186805A04000391B6120803F7810411B0E -:101600004000271BA92000006120803E7E0C78103E -:10161000411B4000131B7F0C608C7000111B780075 -:10162000061B7800391B7F0082A0803E7120403568 -:10163000BA701C6085A000081E60B671A76000002B -:1016400001200400A2707810141A7800351B712054 -:1016500040351C6085A000081E60B671A7600000C0 -:1016600001200600A2707810141A012000007800F2 -:101670003B1B012001009120018005A07F0E7F0C03 -:101680007C00042C05A04000581B60200C6006A3C1 -:10169000C000551B086006A2C000551B106006A1C3 -:1016A000C000551B06A078005A1B00607800421B42 -:1016B00085A001007C00112041350C228CA10F0077 -:1016C00011203B01042284A0000140006A1B21205C -:1016D00080FF22217C007E0EE4688CA02000400068 -:1016E000A31B84A00600C000A31B1060078084A079 -:1016F0000F00038003800380F0A00036047084A0F4 -:101700000A00C000A31B087194A100FF4000A31BA6 -:101710008CA1FF000120190006A14000961B0120AA -:10172000320006A140009A1B78009E1B0920200071 -:101730007800A01B09203F007800A01B11200000AA -:10174000002105A20A707F0E7C006800A51B7E00A8 -:1017500071200000187084A00100C000AA1B7F0047 -:10176000082E71201000CA707F00C670C3700280FE -:10177000712000001B700100912080407F007020CC -:101780007F007800C11B7E107E007E129120002316 -:101790003C7F587E307C387D94A53F0084A4004077 -:1017A0004000D81B84A77C00C0009C2D7810A51B8E -:1017B0009CA40F0082A304005000E01B7810A51B1E -:1017C000078584A00F007900E51BEA1F9A20C0203E -:1017D000E6226B25B325EA256526BF2644270B1C88 -:1017E000F51B531E1D1F4A25F51B7810A51B18005D -:1017F000C81B7F12912001807F007F107C00037046 -:1018000000003F700000307005A04000091C3370DC -:1018100000001800C81B5C7005A0C000B61CA070BA -:1018200084A007007900141CD61C1C1C2A1C4B1C0D -:10183000711C9D1C9B1C1C1C087884A0FDFF0A7851 -:101840000920460078101224C000281C03700400F0 -:101850007800F71B78105E2DC000491CB47007801B -:101860009B787E00AA789B781000AB780C009B7860 -:101870006000AB7801005B7804000920F700781065 -:101880001024C000491C03700400C3700F003370A3 -:1018900070357800F71B78105E2DC0006F1CB47196 -:1018A00007819B787E00AA789B7810008CA10700A6 -:1018B0008DA1C000AA79AB7806009B786000AB7858 -:1018C00002005B7804000920F70078101024C000A3 -:1018D0006F1C03700400C3700F0033707035780004 -:1018E000F71B78105E2DC000991CB47107819B789E -:1018F0007E00AA789B7810008CA107008DA1C00003 -:10190000AA79AB782000B871AA79AB780D009B78E2 -:101910006000AB7804005B7804000920F7007810C1 -:101920001024C000991C03700400C3700F003370B2 -:1019300070357800F71B78004B1C78105E2DC000C6 -:10194000F71BBC7068209B781000106F7810A12CDA -:10195000502C106884A0070085A08000AA78186E1B -:1019600041200100012004007800DE1D78105E2D6A -:10197000C000F71B9B7810005C706820106F781017 -:10198000A12C502C086085A010000A60106884A06B -:10199000070085A08000AA783120200041200100A6 -:1019A0007810C52D012003007800C91D1800C81B40 -:1019B000407485A400004000F01C80A080353020D9 -:1019C000447108812AA14800E71C09208035642160 -:1019D0000465FF85C000FD1C2184C000E11C467128 -:1019E000037000003F7000007800F71B4076B0A63F -:1019F0008035447100267800EC1C46716825582516 -:101A00003E75502C346085A00000C000FA1C0867A9 -:101A1000367784A73F0140002F1D84A72100C00016 -:101A2000FA1C84A7020040001C1D84A7040040008B -:101A3000FA1CBCA7FBFF0A6784A70800C000FA1CB9 -:101A400084A71000C000FA1C84A7000140002F1DCD -:101A5000186005A0C000FA1CBCA7FFFE0A671F683B -:101A60000000186E84A60E00186140003F1D1C6027 -:101A700002A14800421D4000421D7800F61CFF8173 -:101A8000C000F61C84A78000C000481D0C702260B6 -:101A9000BCA77FFF0A67106B078384A00F00038039 -:101AA0000380038080A00036602048204A700060D8 -:101AB0004E7004605270602A1800C81B9B7810009A -:101AC00046A078105E2DC000F71B106B9CA307008A -:101AD0009DA3C0004C7084A000804000731D84A6AC -:101AE00001004000751D9CA3BFFF84A610004000AC -:101AF0007B1D9DA32000AA7B408884A60E00C00009 -:101B0000861DBDA710000A677800C71D4C718CA107 -:101B100000084000022911202100048004804800B0 -:101B20009D1D11202200048048009D1D11202000D1 -:101B3000048048009D1D4000C71DAA7A4088781087 -:101B4000772D106A0C6108818CA1FF00E0A1803E16 -:101B5000642CFF8C4000BE1D106006A2C000A81DB2 -:101B6000B4600180B660C000A31D7E0C602A0860CE -:101B700085A000010A607F0C7800D61C78105E2DCD -:101B8000C000F71B602A0E61AA7940882E710120DF -:101B900001007E00507184A118004000DD1D84A169 -:101BA00010004000D71D7810CC2AC000DD1D84A194 -:101BB00008004000DD1D7810E6297F0002708CA629 -:101BC0006000FF884000E61D8DA104005A79B269CB -:101BD0009B7860000028AA789B786100146885A033 -:101BE00000801668AA787E157E137E14A1202C0131 -:101BF0009B7800000080AC8080AD0A009820A6533E -:101C00007F147F137F15106807809B787E00AA7869 -:101C1000906DD67DDE7D946ED27EDA7E307884A0A3 -:101C2000C000C000151E98001D1E086084A0EFFFB4 -:101C30000A607810772D7800FF1B007284A20700DD -:101C400086A00100C0002A1E1B7849007810772D5D -:101C500078003B1EB06A95A200205A7A1B78490092 -:101C60007810772D0072002505A640003B1E84A247 -:101C700007007910491E80AD0800327084A2070069 -:101C800086A00100C000471E186000801A6078001E -:101C9000F71B511EF030F030DF30F030511E511E76 -:101CA000511E7810A51B087884A0FDFF0A787E0FCE -:101CB0007920003598787F0F84A001004000791EBC -:101CC000A07086A00100C000681EA2707800011FED -:101CD000A07086A00500C000771EBC706820176841 -:101CE0000400136800001C6885A008001E68A3702B -:101CF00000007E1511200400A07186A101004000A3 -:101D00009B1E86A10700C0008B1E09202B350B20CF -:101D1000050078009B1E0920133504210920123587 -:101D20000A2009202B350B200100A3700000A770AA -:101D3000010078009D1EA37000007810C72EA92016 -:101D40001000392000007810A62BB8A70001700001 -:101D5000AB1E7800A31E007020207900AF1EDD1E90 -:101D6000C61EC61EB91EDD1EDD1EB71EB71E7810AC -:101D7000A51B21205735042405A04000C61E06AD32 -:101D8000C000C61E006822207800D61E1C6884A0F1 -:101D90000100C000D21E106F7810A12C7810D92835 -:101DA0007800D61E5470602000680260166A1C68B5 -:101DB00085A008001E687810DD172120803F78106C -:101DC000071F212057357810071FA9200000212068 -:101DD000803E7810071F20847000F01E7800E91EF6 -:101DE000A9208000612080361860106102A1126075 -:101DF0001B600000E0AC10007000001F7800F41EB3 -:101E00007F15037000003F7000007800F71B7E0410 -:101E1000042405A04000191F682000687E00166A8F -:101E20001C6885A008001E687810DD177F00780008 -:101E3000091F7F04232000007C0082A203005000C1 -:101E4000231F7810A51B00237900261F291F9C1F24 -:101E5000AA1F82A2020040002F1F7810A51BA070AD -:101E6000A3700000C37000007900361F3E1F3E1FA4 -:101E7000401F741F08293E1F741F3E1F7810A51BAA -:101E8000B4777810A62BB477BCA7000F7810A12CDC -:101E9000186005A040006B1F2120803F092004002E -:101EA000112010007810C51F40006B1F7E15A9205F -:101EB00000002120803E7E04092004001120100033 -:101EC0007810C51F7F0440006A1F208470006A1FBD -:101ED00078005B1F7F15388784A70700C000461F66 -:101EE0007800FF1B7800FF1BB4777810A12C1860D6 -:101EF00005A040009A1F2120803F092005001120E5 -:101F000020007810C51F40009A1F7E15A9200000F0 -:101F10002120803E7E040920050011202000781039 -:101F2000C51F7F044000991F20847000991F78000E -:101F30008A1F7F157800FF1B002279009F1FA21FB8 -:101F4000A41FA41F7810A51BA3700000A770010098 -:101F50007800F71B00227900AD1FB21FA41FB01F2D -:101F60007810A51B78101F24007086A00100C00007 -:101F7000AF287810EF28086084A0EFFF0A6078107F -:101F8000A2284000AF287800D61C042405A04000F9 -:101F9000E61F6820042D7E00106806A74000D41FAD -:101FA000202D7F007800C61F7F00222016691C6844 -:101FB00005A21E687810DD171060018012600860AD -:101FC00084A0EFFF0A607810EF287C0085A0010054 -:101FD0007800E51F00237900ED1FF21FF01F352068 -:101FE0007810A51BE47805A0D00015201800152056 -:101FF000082084A03000C00001201B784900780030 -:10200000F71BEC7884A003004000FD1F002184A092 -:10201000070079000B20232029201D201320582D94 -:10202000582D13202F207810A51B007005A040000C -:10203000FF1B012003007800FA227810892B1B78FF -:1020400055007800F71B7810892B1B78DC0078008E -:10205000F71B7810892B1B78E3007800F71B7810AA -:10206000892B1B789D007800F71B84A50F00C0000A -:102070005F2078101F24007079003E2046205320F6 -:102080004620AF284820AF28462046207810A51BC0 -:10209000A071A370000086A10400C0005120780048 -:1020A00008297800AF287810EF28086084A0EFFF97 -:1020B0000A607810A2284000AF287800D61CE47887 -:1020C00005A0D000152018001520082084A030009D -:1020D000C0006E201B7849007800F71BEC7884A0C4 -:1020E000030040006A20002184A1070079007820C5 -:1020F00088208E2082208020582D582D8020502D21 -:102100007810A51B7810912B1B7855007800F71BD1 -:102110007810912B1B78DC007800F71B7810912B3E -:102120001B78E3007800F71B7810912B1B789D003B -:102130007800F71B002379009D20A220A020A42076 -:102140007810A51B7800652617680800A3780000A2 -:10215000E47984A1300040006526EC7884A0030077 -:102160004000652684A107007900B620232029209D -:102170001D20302D582D582DBE20502D7810A51B18 -:1021800082A205005000C6207810A51B002379000C -:10219000C920CC20CE22DA2200227900CF20D42000 -:1021A000D620E920D420B3227810A51B9B781800F4 -:1021B000A87884A0FF0082A0200048006A2B8AA093 -:1021C0000400C8006A2B7900E5206A2B6A2B6A2B71 -:1021D0000C2B9B781800A87984A180004000FE2079 -:1021E00084A118004000FA2078006A2B007005A036 -:1021F000C000F420112003007800522784A1FF00C2 -:102200008AA01000C8006A2B790006211821162127 -:102210002E213021C2216A2B6A2BC4216A2B6A2B02 -:10222000AF22AF226A2B6A2B6A2BB1227810A51B32 -:1022300084A60010400025210120000300800080BA -:102240003A781B789A007800F71B146884A0008005 -:1022500040002C21176803007800302D7810A51B52 -:102260001C691E6984A60018C0004A211C6884A04D -:102270000100C0005221146886A00800C00042215D -:102280001768000084A600044000BE211B78580097 -:102290007800F71B84A60010400052211B785800DC -:1022A0007800F71B84A660004000BA2184A60008CD -:1022B0004000BA2184A60080C000602178007A2105 -:1022C000B4A6FF7F5A7EB26E9B787400AC7AAC796C -:1022D000AC781B80C8006D21008084A03F0008A15D -:1022E00091A20000946B002102A3AE68906B0022C3 -:1022F00003A3AA6884A6004040008221B4A6FFBFC1 -:102300005A7EB26E007086A00300C0008F21781044 -:102310003A2F7810DF301B7867007800F71B06A093 -:1023200078109431AC6AA869946C906B002205A176 -:1023300040009E21002222A400211BA3D27CD67B38 -:10234000002305A4C000AC21B5A600405A7EB26EA1 -:102350001B7867007800F71B1B786700002215A127 -:10236000C000B6217810F0307800F71B78101D31CE -:102370007800F71B1B786A007800F71B1B78580061 -:102380007800F71B7810A51B780021221C6984A116 -:1023900000014000DC218CA1FFFE1E697E0C48700C -:1023A0006020006084A0FFEF0260046084A0F5FF5D -:1023B00006607F0C7800102284A1000240001022E9 -:1023C0008CA1FFFD1E697E0C48706020006084A017 -:1023D000FFDF0260046084A0EFFF06600820482C45 -:1023E0007F0C84A108004000102278109D2C7810EA -:1023F000E629FF88400010229B7860000028AA7818 -:10240000587EB5A604005A7E84A60004C0000C22A3 -:102410001B7855007800F71B1B7869007800F71BC4 -:10242000587E84A60004C00019221B78580078004A -:10243000F71B1B786A007800F71B7800702B780078 -:10244000702B1920000090798CA1070040001F22FA -:102450009B781000A87894A0FF0086A20100C0001D -:1024600044220023A87C00A4182002A140003C22A2 -:1024700048003C2278003E227800C621A824A87A91 -:10248000F0003E2278002A2284A2F00086A02000DC -:10249000C000A02218831883002302A14000542208 -:1024A0004800542278009D2286A2230040001F226B -:1024B000186884A0F1FF1A68587E84A6F1FF85A0F1 -:1024C000100030205A7E086085A010000A607E0C43 -:1024D0004870602004600820482C7F0C84A1100004 -:1024E0004000782278109D2C7810CC2A7800872222 -:1024F0007E0C4870602004600820482C7F0C84A16A -:1025000008004000102278109D2C7810E629FF88E2 -:10251000400010229B7860000028AA78B5A604002D -:102520005A7E84A60004C00099221B7855007800CA -:10253000F71B1B7869007800F71BA87A78002A221D -:102540001883002302A14000A9224800A922780094 -:102550002A2284A28000C000762B7800702B78009D -:10256000762B78006A2B9B781800A87884A0FF004F -:102570008EA001004000BE227810A51BA87A94A26C -:10258000FF00A87884A0FF008AA00400C8006A2B7E -:102590007900CA226A2B39296A2B672A82A2000095 -:1025A000C000D4227810A51B7810892B1B786900F5 -:1025B0007800F71B82A20300C000E0227810A51B60 -:1025C0007810992B1B7869007800F71B82A2040011 -:1025D0005000EC227810A51B00237900EF22F22294 -:1025E000C923FA2386A203004000F8227810A51B15 -:1025F000012000003A70007084A0070079000023D9 -:1026000008230A230A2308253025D2240823082377 -:102610007810A51B84A60010C00012237810C72EC6 -:102620004000A32368788CA0FF0040005A2386A1B5 -:102630000800C00029237810EF28086084A0EFFF6D -:102640000A607810A22840005A237810C72E78001C -:10265000412386A12800C0005A237810C72E0860A5 -:1026600084A0EFFF0A60186005A0400041230180AC -:102670001A6005A040004123018005A040004123CD -:102680001E601C6884A001004000FF1B1C6884A021 -:10269000FEFF1E6854707E0C6020006802607F0C94 -:1026A0000460026805A0002DC00057230260066088 -:1026B0007800FF1B7E0178101F247F0184A600DFB5 -:1026C0001A6827680000106FFF814000A32386A1CD -:1026D0000200C0009B2384A60008C000772384A6C4 -:1026E000600040007723D878DC7A2E682A6A178742 -:1026F00094A20F0013821382138290A2003690A23C -:1027000000001C2284A30001C000882378008E23CF -:102710001082042285A018001220118284A30004D4 -:1027200040009B239C6884A00001C0009B2378107C -:1027300091247800FF1B86A118004000A32386A1E6 -:1027400014004000FF1B1269146884A00080400040 -:10275000AB23387016688CA600DF1A697810E02861 -:102760007810EF28C000B823086084A0EFFF0A604B -:102770001C6884A00100C000C1237810D92878000B -:10278000C52354706020006802607810DD1778005F -:10279000FF1B82A204004800CF237810A51B002253 -:1027A0007900D223D623D823E523D8237810A51B7C -:1027B000007086A005004000E1237810892B1B786B -:1027C00069001B786A007800F71B90780780018009 -:1027D00084A0070080A018009A78A8798CA1FF0037 -:1027E00086A103004000F62378006A2B1B786A005C -:1027F0007800F71B1C6885A004001E68FF82C000DB -:1028000005247810892B78000C24118240000A24BA -:102810007810A51B7810992B1B7869007800F71B9E -:102820007810772D307884A0C000C0001C241800D8 -:102830001C241A7906A07C0085A001007C0084A6D7 -:102840006000C00029242F6800002B680000780079 -:10285000902484A60008C0003824B06884A00048F2 -:1028600035A684A60008C00038247810C72E7C0046 -:1028700084A6200040006224D0780380C80046244B -:1028800006A078109431D4787810F93184A60040ED -:10289000400050242F6800002B6800007800352489 -:1028A000B06884A0004835A684A60040C0004A2431 -:1028B000387005A0C0005C24D879DC7A2E692A6AB9 -:1028C0007800352484A6004040006C242F68000066 -:1028D0002B68000078003524B06884A0004835A635 -:1028E00084A60040C0006624387005A0C0007A2489 -:1028F0003B700700D879DC7AD078F380C800812457 -:10290000008084A03F0008A191A200002E692A6ADD -:10291000002105A2C0008E2478003524781094315F -:102920007C0084A3000240009924086085A0020076 -:102930000A6017680600286A2C693A6A3E692B68A3 -:1029400000032F6800003368002093680000976838 -:10295000200000707900AC24B424B624BF24B42431 -:10296000B424B424B424B4247810A51B1C6884A017 -:102970000100C000BF247810D9287800C524547005 -:10298000502C602000680260602A21205735042402 -:1029900005A04000CE2420207800C724222D6B20E3 -:1029A00000007C00B4777810A62BBCA7000F78102D -:1029B000A12C186005A0400001257E0D0120903F4C -:1029C00068207F0D2120803F092004001120100085 -:1029D0007810C51F400001257E15A9200000212088 -:1029E000803E7E0409200400112010007810C51FCD -:1029F0007F04400000252084700000257800F12429 -:102A00007F15388784A70700C000D7247800FF1BF4 -:102A10007810E0287810EF28276800009B780E00D7 -:102A2000106F136802007810CA3184A600084000B5 -:102A30001D2518698DA100201A69146884A00080E2 -:102A40004000242517680000212057350068222007 -:102A5000386A3C692A6A2E697810DD177800FF1BF6 -:102A600078101F24276800009B780E00106F7810E4 -:102A70007C2D8CA0FF001269146884A000804000A7 -:102A80004325387016688CA600DF1A69A370000011 -:102A90007800FF1B06A07810C72E13680000176887 -:102AA00001008CA600DF1A69276800000070790019 -:102AB00059256125632563256525652565256125DE -:102AC00061257810A51B7810EF28086084A0EFFF1F -:102AD0000A607800BA28002379006E2571257325D5 -:102AE000B1257810A51B0070790076257E258025FC -:102AF00080258B25802592257E257E257810A51B97 -:102B000084A60020C0008B25B5A600205A7E781030 -:102B1000F0307800302D146884A0008040009225A9 -:102B200017680700092018350C2186A10000400015 -:102B3000A72586A101004000AB2509202B350B20DD -:102B40000B00A37001001B7846007800F71B1B7870 -:102B5000DD007800F71B09202B350B200A007800D8 -:102B6000F71B7810A51B00237900B625B925BB25D6 -:102B7000DE257810A51B00707900BE25C625C82566 -:102B8000C825D325C825DA25C625C6257810A51B56 -:102B900084A60020C000D325B5A600205A7E781058 -:102BA000F0307800302D146884A000804000DA25D1 -:102BB000176807001B78E4007800F71B1C6885A0E5 -:102BC00004001E68B5A600087810892B1B786900E0 -:102BD0007800F71B00237900ED25F025F225F42578 -:102BE0007810A51B7810A51B84A60004C00013262E -:102BF0002B7809309B786000AB78000084A6FBFF3F -:102C00005A78E47984A1200040000B26EC7884A057 -:102C10000300C0000F26012014007800FA2284A1CE -:102C2000070079004B26907A94A207009B786000F9 -:102C3000A879FF81400049269B781000A87B84A3D7 -:102C40000100C0003A26A87BA87B86A30100C00033 -:102C50002D260920F7FF7800332686A30300C00045 -:102C60003A260920EFFF7E0C48706020046004A122 -:102C700006607F0C9B786000AB78000084A6FBFFA9 -:102C80005A782B7809301C698CA1FFFD8CA1FFFEBE -:102C90001E697800302D2320292055265D265326D5 -:102CA00053265326302D7810A51B1C698CA1FFFDDF -:102CB0008CA1FFFE1E697800382D1C698CA1FFFDD8 -:102CC0008CA1FFFE1E697800302DE47984A13000CC -:102CD00040006F26EC7884A00300C00077261468BB -:102CE00085A000801668012014007800FA2284A1D3 -:102CF000070079007B26302D302D8326302D582D6E -:102D0000582D302D302D84A60004C000B4261C6838 -:102D100084A001004000382D8CA660208CA1FBFF10 -:102D20005A79B2699B786000AB7800009B786100AB -:102D3000146885A000801668AA787E157E137E141C -:102D4000A1202C019B7800000080AC8080AD0A009F -:102D50009820A6537F147F137F15106807809B78F7 -:102D60007E00AA787800382D146884A00080400086 -:102D7000BB26176808001B78D8007800F71B0023D3 -:102D80007900C226C7264227C5267810A51B0070E9 -:102D900084A007007900CC26D426D626F226D42695 -:102DA000D426D224D426D4267810A51B1C698DA144 -:102DB00001001E690068066005A0C000E0260260F0 -:102DC000186884A00E004000EC261470B6682C71C0 -:102DD00088A1803E7800EE260920803F0421026809 -:102DE0000A2D5671B26E84A660004000402784A66A -:102DF0000008C000042784A6FF7FB268906894682A -:102E00007810C72E7800402784A62000400016279F -:102E100006A078109431D0780380C8001227D478A7 -:102E20007810F931D879DC7A78001A277810AE2C2E -:102E30007810943184A600804000402784A6FF7F4C -:102E4000B2689B78740078107C2D102078107C2D4F -:102E5000082084A62000C000382778107C2D1B8015 -:102E6000C8003327008084A03F0008A191A2000081 -:102E7000946B002102A3AE68906B002203A3AA68A2 -:102E80007800FF1B7800762B3370000082A20500CB -:102E900050004C277810A51B002379004F2752279C -:102EA0005C277F270022790055275A27762B5A273F -:102EB000A827F9277810A51B007086A00100C00084 -:102EC00069277810EF287810C72E34700A607800D0 -:102ED0006E27007086A00300400063270370050082 -:102EE0000120903F68203E703270002279007827E0 -:102EF000762B7D27A8277D27762B7810A51B0070C1 -:102F000086A00100C0008C277810EF287810C72E0B -:102F100034700A6078009127007086A0030040009A -:102F20008627037005000120903F68203E703270B4 -:102F3000002279009B27A227A027A227A027A2274B -:102F40007810A51B7810992B1B7869007800F71B67 -:102F5000007086A00100C000B5277810EF28781017 -:102F6000C72E34700A607800BA27007086A003006C -:102F70004000AF2703700200807A94A2000F9B7874 -:102F80001800A87C84A4070015A26920803F042DA6 -:102F9000082D5671682005A04000D527106806A2AC -:102FA0004000EE2700687800C82703700500012064 -:102FB000903F68203E7032707E15A9202F000320BC -:102FC000000000807000E6277800DF277F15126A76 -:102FD000B36800071F68000823680300B06E5A7EBC -:102FE0001C6884A0000C40004F287810912B7800BA -:102FF0004F28007086A00100C00006287810EF2836 -:103000007810C72E34700A6078000B28007086A0F4 -:1030100003004000002803700200807A94A2000F91 -:103020009B781800A87C84A4070015A2A879A87929 -:103030008CA1FF00E8A1803E042D082D5671682068 -:1030400005A040002A28106806A240004328006816 -:1030500078001D28037005000120903F68203E7015 -:1030600032707E15A9202F00032000000080700020 -:103070003B28780034287F15126AB36800071F6860 -:10308000000823680300B06E5A7E1C6884A0000C00 -:1030900040004F2878108D2B587E78004F287E02F4 -:1030A000078284A00F0003800380038080A0003685 -:1030B00060204A7000604E700460527084A6600008 -:1030C00040008628946B906CA869AC6805A1C0008C -:1030D0007428D27BDA7BD67CDE7CB4A6FFB75A7E1E -:1030E0007810F03078008628AC681AA3002123A459 -:1030F000002405A340008628D27BDA7BD67CDE7CC8 -:10310000AC68B4A6FFBF5A7E78101D317F077810D7 -:10311000A12C09206A0084A60800400091280920FB -:103120006900B5A600205A7E1A79002D3E700782EC -:1031300084A00F0003800380038080A00036482015 -:103140007800F71B206005A04000AE2801802260B7 -:10315000086085A008000A60107026607C0006A048 -:103160007810C72E13680000176801001F68400020 -:103170001B680001007084A007007900BF28C728E1 -:10318000C928C928D528D128C728C728C728781012 -:10319000A51B7810E0287810D9287810DD17780062 -:1031A000FF1BA37000007800FF1B17680000780069 -:1031B0000825006805A0C000DE28026006607C00CB -:1031C000106005A04000E9280180D000E9287810AF -:1031D000A51B1260086084A0EFFF0A607C001860E5 -:1031E00005A04000F52801801A607C007810772D3A -:1031F00017681800780026297810772D17681900AD -:10320000780026297810772D17681A00780026296B -:10321000B4777810A12CB8718CA1FF00E8A1803E92 -:10322000042D082D682005A0C00018297800FF1B78 -:103230001068B47206A240002029006878001129A5 -:1032400000680A2017680500BF7000007810E028A9 -:103250001C6884A00100C0002F297810D92878109C -:10326000EF281B6800001F6820007810DD17780029 -:10327000FF1B82A20300C0006A2BA87DACA5FF0043 -:10328000A87EB4A6FF001C698DA180001E6984A1E0 -:103290000001400099298CA1FFFE1E69B4A6FF0021 -:1032A0004000832982A60F0048005A2940005A296D -:1032B00031200F002B852B857810242C40006429A9 -:1032C0007810332A78008C297810DF2B7E0C602947 -:1032D000046084A0F5FF06607810572A7F0C1C69F3 -:1032E0008DA100011E69587EB5A604005A7E84A6F1 -:1032F0000004C0007F291B7855007800F71B1B785D -:1033000069007800F71B7E0C6029046084A0F5FF3B -:1033100006607810572A7F0C587E84A60004C000EF -:1033200095291B7858007800F71B1B786A007800F5 -:10333000F71B7E0C4870602000618CA100104000DB -:10334000D9290862178294A2FF0082A20F004800C8 -:10335000AD294000AD2911200F00002602A2C800AF -:10336000B2293022086294A2FF00187086A02800BB -:10337000C000C22982A21900C800C8291120190062 -:103380007800C82982A20C00C800C82911200C00AE -:10339000002202A5C800CD2928227810E32B2B8516 -:1033A0002B857810242C4000D9297810332A7800F6 -:1033B000DD297810DF2B7810572A587885A0040073 -:1033C0005A787F0C1B7869007800F71B7E0C602907 -:1033D000006084A00010C000012A106084A00F00CB -:1033E000C000FB298CA10200C000FB298CA1F5FFC5 -:1033F00006617F0C7C00112032001920000078004B -:10340000232A086294A2FF00187086A02800C0003A -:10341000112A82A21900C800172A11201900780069 -:10342000172A82A20C00C800172A11200C0008637A -:103430001F839CA3FF0082A30F004800232A4000A3 -:10344000232A19200F00AB780100AB780300AB787A -:103450000100AA7AAA7BC0A805001C6885A000010B -:103460001E687F0C7C007E0C48716021082084A0BF -:10347000F0FF35A6867E18609A78AE7E1266A47834 -:1034800084A0F8FF8CA1070005A1A67816608A78B1 -:10349000B4A60F0037860482048084A0FF0005A62E -:1034A0000E60046084A0F5FF06607F0C7C007E0C3B -:1034B0004870602018609A78A47884A0F0FFA678FD -:1034C0001260847884A0F0FF86787F0C7C0082A252 -:1034D0000200C0006A2BA87A1C698DA180001E69B9 -:1034E00084A100024000AC2A8CA1FFFD1E6994A2B9 -:1034F000FF0082A20200C8006A2B7810F32A78101D -:10350000572A80A901000C2078109D2C7810E629FC -:10351000FF8840009F2A9B7860000028AA78587E88 -:10352000B5A604005A7E84A60004C0009B2A1B781E -:1035300055007800F71B1B7869007800F71B587E50 -:1035400084A60004C000A82A1B7858007800F71B46 -:103550001B786A007800F71B82A20200C800B42A18 -:1035600084A201004000BE2A487188A100000C21FD -:103570008CA10020C000BE2A112000007810D12BA1 -:103580007810F32A7810572A587885A004005A78C2 -:103590001B7869007800F71B7E0C7E0260290060B2 -:1035A0001120010084A00020C000E32A146084A040 -:1035B0004000C000E12A8CA1EFFF066106A0780060 -:1035C000F02A11200000AB780100AB780200AB7844 -:1035D0000300AA7AC0A804001C6885A000021E6827 -:1035E0007F027F0C7C007E0C48706020FF824000D0 -:1035F000FB2A11204000186080A002009A78A4786D -:1036000084A0BFFF05A2A67816608A78046084A013 -:10361000EFFF06607F0C7C007E00007086A0030038 -:103620004000152B7F007800182B7F007800662B58 -:1036300084A620004000662B887884A040004000CB -:10364000662BA87801804000252BB87B84A33F001F -:103650001B83C8002C2B008005A040004D2B1B8332 -:10366000C800352B01804000622B06A078109431F1 -:10367000B4787810F9317800662B84A600404000B9 -:103680004D2BB8781B80C800462B008084A03F00DB -:10369000C000622BB4A6FFBF5A7ED879DC7A012025 -:1036A000010008A1C800562B91A20000D279DA7956 -:1036B000D67ADE7A781094311B78670078105E3005 -:1036C0007800F71B1B7867007800F71B1B786A00EF -:1036D0007800F71B78109D2B1B7869007800F71B8A -:1036E0007810892B1B7869007800F71B236802008B -:1036F0007810912B1C698DA120001E69146884A08C -:1037000000804000852B176805001B786900780051 -:10371000F71B0120050078009F2B01200C0078008A -:103720009F2B0120060078009F2B01200D007800C0 -:103730009F2B0120090078009F2B012007009B7818 -:103740007F00AA78B5A608005A7E7C007E073F87D6 -:10375000BCA70F003B873B870387E0A00036B8A7D4 -:1037600020009A7FA47984A10F004000BF2B84A180 -:10377000F0FFA6781260046085A008000660388714 -:1037800038879A7FA47984A140004000CF2B84A180 -:10379000BFFFA6781660046085A0100006607F0752 -:1037A0007C009B781000AB780100AB780200AB780E -:1037B0000300AA7A9B786000AB7804007C0031207B -:1037C0000000292032009B781000AB780100AB7814 -:1037D0000300AB780100AA7DAA7E9B786000AB78DD -:1037E00005007C007E15078084A0FF000380038015 -:1037F00080A020009A78A4798CA1F0FF01204635A2 -:10380000042082A0280040000D2C2120842C1920A7 -:103810001400A9200C007800132C2120902C1920D2 -:103820001900A9200D0011206400042484A0F0FFD9 -:1038300006A14000222C2084002310A27000222C1C -:103840007800152C7F157C007E151120463514223A -:1038500082A232004800382C40003C2C2120762CDB -:1038600019201100A9200E001120320078004C2CE4 -:1038700082A228004000442C2120842C192014000E -:10388000A9200C0078004A2C2120902C1920190026 -:10389000A9200D0011206400002202A540005C2C2C -:1038A00048005C2C2084002310A27000592C780062 -:1038B0004C2C7F1506A07C007F1582A56400C800F3 -:1038C000652C087885A070000A78EC7884A0000345 -:1038D0004000732C04249EA00112C000732C012010 -:1038E00001217800742C042405A07C000112023010 -:1038F0000232034203440454045605660568067800 -:10390000067A070A070C070E0232024202520262CE -:103910000272056605760578057A057C057E057FC9 -:1039200002220232024202520454046404740476F5 -:103930000478047A047C047E047F9B78100046A0FF -:103940007C0084A7000F0C8084A7070003800380FD -:103950000380038005A1E0A080367C00D879DC7A62 -:10396000D0781B80C800B52C008084A03F0008A13F -:1039700091A200007C007E0F7920000109204035D3 -:103980009120008004217900C52CF72CCF2CCF2C5E -:10399000CF2CCF2CCF2CCD2CCD2C7810A51B4B7839 -:1039A0000400487884A00400C000D12C4B780800A3 -:1039B000487884A00800C000D82CB06885A00040DA -:1039C000B268587885A000405A78307884A080008A -:1039D000C000F72C1800F72C186884A02000C00045 -:1039E000F52C1B78DD007800F72C1B78E400912083 -:1039F00001807F0F7C007E0C1068078084A00F0080 -:103A0000038003800380E0A00036046084A00A00E5 -:103A1000C0002E2D086194A100FF40002E2D8CA126 -:103A2000FF000120190006A140001D2D01203200D9 -:103A300006A14000212D7800252D092020007800C6 -:103A4000272D09203F007800272D1120000000219C -:103A500005A20A60046085A0020006607F0C7C005D -:103A60001B786A007800F71B1B7869007800F71B49 -:103A70001B7858007800F71B1B7855007800F71B5F -:103A80001B78DD007800F71B1B78DC007800F71B43 -:103A90001B78E4007800F71B1B78E3007800F71B25 -:103AA0001B789E007800F71B1B789D007800F71BA1 -:103AB000A37001001B7846007800F71B7E00307869 -:103AC00084A0C000C000752D087884A0FDFF0A788E -:103AD0000500050005000500EC7884A021004000E9 -:103AE000752D087885A002000A787F007C00087890 -:103AF00085A002000A787C00307884A04000C000D5 -:103B00007C2D9800852DAC787C00087884A0FDFF82 -:103B10000A780500050005000500EC7884A0210066 -:103B20004000942D9800922DAC787E00087885A0F6 -:103B300002000A787F007C0084A770004000A82D56 -:103B40007E0C602D682F78106B1B782D682C7F0CF5 -:103B500017680300587884A0003F1A682F68000097 -:103B60002B6800004B780800E47805A0D0001520F1 -:103B700084A0200040001520EC7884A003004000C1 -:103B80001520180015207800702B7E0C1068078017 -:103B900084A00F0003800380038080A00036602093 -:103BA00048204A7000604E70046052707F0C7C00A8 -:103BB0002000200000002000000020000000200065 -:103BC0000000200000002000000020000000200075 -:103BD0000000200000002000000020000000200065 -:103BE0000000200000002000000020000000200055 -:103BF000000020006200090014001400479814001F -:103C00001400F598E798140014008000BF0000012C -:103C10000204082080F80AA214000B300CA2140041 -:103C200000A238887E812A84A08406383988C22878 -:103C3000C39C05A864083BA80830C128C39C01A206 -:103C40000C30472861816A840080A48456183A8821 -:103C500008A8E228A09CF3A8640829A80C3001A8B1 -:103C60000830E128A09C0D2804A2C064A067C06FA2 -:103C700014183B882370768577860FA86E783E8867 -:103C80000CA82B2805A2A064A067C06F14183B885D -:103C900023707685778601A83E886920C128C39C59 -:103CA00044200321A2208120DCA807A2140003A243 -:103CB0000080A884A48572189A843C88E21F01F6CB -:103CC00008A26E856F8604070830A09C140002A22B -:103CD0000080A4850930A884E21948F87481EB8635 -:103CE000EB852E87A9873F88E608F1A861F8E8A848 -:103CF00001F8140081F81600B285F0803295A2FA1E -:103D0000E21D1400328521F21400E21DA884E0D6E1 -:103D1000E61F140006A265687F812A84C11D2388DE -:103D2000160042600880FAA80080A48460812A847A -:103D300021F00830A884C61DD720228816000080F4 -:103D400048281110FCA80830008000A0022811109B -:103D5000FDA887A808303D281110FDA809A217006A -:103D60000C300080A485E21DC1DA1400E0263A87F9 -:103D7000A2FAF219E21F14000BA214000DA27E8118 -:103D80002A84A08406381002CD9C040700007E120D -:103D9000912000224920C72E0070047205A20C72E7 -:103DA00015A2087084A0FDFF05A24000D92E78005E -:103DB000DE2E037000007F1200207C00007084A0C3 -:103DC0000100C0000C2F08710481C800EB2E781090 -:103DD000A82F7800E32E0C708CA07F0040000C2FE1 -:103DE00004700480C800032F147005A0C000FF2ECB -:103DF000107005A04000032F02A1C800E32E077039 -:103E0000100078000C2FFF8A40000C2F78106B31C7 -:103E1000C000062F4000E32E7810562F03700000DC -:103E20007F1200207C002464FF844000302F702C1F -:103E30003920352F042768AE0C6830A6086829A5FC -:103E400021844000302F3887042705A0C0001B2F95 -:103E5000987075A04000302F3920322F78001A2F2B -:103E60007C000000040008000C0010001400180082 -:103E70001C0000007E129120002279200035712064 -:103E8000100007700A000770020003700000712024 -:103E9000200007700A00077002000370000049202C -:103EA0000000B37800007F1200207C004920562FCC -:103EB00004700480C800822F077012000871087017 -:103EC00006A1C0005E2F84A1300040006B2F86A0A9 -:103ED0003000C0005E2F007084A00100C000822F5F -:103EE000087084A00C00C000802F0C7184A1000316 -:103EF000C000802F84A17F00C000562F7800822F41 -:103F0000176803000770120007700800047084A08F -:103F10000800C000862F0770120008710481480055 -:103F20008B2FB378000003700000492000007C0054 -:103F30007E107E007E127E1591200022087178107E -:103F4000A82F7F157F12912001807F007F107C00B9 -:103F50000472182108710C7084A00003C000EA2FBD -:103F600084A10C00C000EA2F1382138213821382F3 -:103F700084A200010DA10B810B810F8184A1070098 -:103F80007900C22FCC2FDC2FEA2FDC2FFE2FFE2F43 -:103F9000EA2FFC2F7810A51B07700200FF8AC000D3 -:103FA000D52F492000007800D92F78106B31C00040 -:103FB000D52FB37800007C0007700200FF8AC00094 -:103FC000E32F7800E72F78106B31C000E32FB37830 -:103FD00000007C00077002007810562F7810BB2C70 -:103FE000146884A000804000F72F176802007C004E -:103FF0007810A51B7810A51B781050301072147122 -:104000000C709CA07F00002800A311A289A10000D1 -:10401000B07805A040001030B3780000780033304D -:10402000781050300427582C60AC0C63002222A377 -:10403000086300211BA3002405A340002930C80009 -:104040002930128410820A8389A10000602B780035 -:104050001030602B078ABAA7322F3DA7002C826848 -:10406000866F8E6C8A6B077012007810562F7C005A -:104070003887042705A0C0004430986005A04000A0 -:104080004D3060203920322F518A40004C3008706A -:1040900084A0C00086A0C0007C00512000007C00ED -:1040A000508A3987042704A0C0005D303920382F9A -:1040B000006064A0C0005D30602D7C007E127E0D2B -:1040C000912000227F0D806860208468886B8C6C52 -:1040D0005780D4AAFF0084A0FF00B8A0322F087E2A -:1040E000B5A60C00186884A0400040007930B5A641 -:1040F00001007E0F7920000158787F0F84A04000D6 -:104100004000883084A60100C0008830B5A60100B8 -:1041100007700400047084A00400C0008A3000709E -:1041200005A0400095307810A51B002405A3C00011 -:104130009B307800D830582C042760AC046000A471 -:104140007E001A70006001A31E700920FD04042186 -:1041500086A0FD047F00C000C83084A0010040009C -:10416000C83084A60100C000C83013700100177069 -:104170000000027607700100B3780100A0A40100DE -:1041800099A30000046000A41A70006001A31E70CF -:104190000C62002402A212700862002303A21670AF -:1041A000027607700100602B781038307800DA3022 -:1041B00078106B31C000D8307F1200207C007E1256 -:1041C0007E0D912000227F0D07700400047084A0F2 -:1041D0000400C000E630037008007F1200207C005D -:1041E0007E127E0D912000227F0D4920F030077055 -:1041F0000400047084A00400C000F930007005A021 -:10420000400004317810A51B087EB5A60C00186884 -:1042100084A0400040000E31B5A60100246805A02E -:1042200040001A3150203920352F602D78106B3125 -:10423000C00016317F1200207C007E127E007E01BD -:104240007E0D912000227F0D7F037F04087EB5A69E -:104250000C00186884A0400040003031B5A6010071 -:1042600049201D31246855A040006831702D602E12 -:104270003920352F042768AE0C6822A408681BA3D8 -:1042800048005531518AC00047317810A51B388746 -:10429000042705A0C0003B31987075A06020400045 -:1042A00068313920322F78003A31228420841A83F1 -:1042B00099A300000C69002422A1086900231BA116 -:1042C000C80064317810A51B712020007800883068 -:1042D0007F1200207C00087084A0C00086A0C0006F -:1042E00040009331042708AC04211E70088104218A -:1042F0001A700881042116700881042112707E0F43 -:104300007920000158787F0F84A0400040008E3152 -:1043100084A60100C0008E31B5A6010002760770A8 -:104320000100781038307C007E127E007E0D9120D6 -:104330000022492094317F0D7F08087184A1C000BC -:10434000C000AA31246805A04000BA317800DE2EF2 -:104350007800BA3108710481C800B2317810A82FF2 -:1043600078009D310770100008710481C800B431D5 -:104370007810A82F087086A00200C0009D31007040 -:1043800005A0C0009D3103700000492000007F128D -:1043900000207C007E127E147E137E157E0D9120FF -:1043A00000227F0D4920CA3180AD1000A020992045 -:1043B00031000C7084A07F00266807700800077029 -:1043C0000200037001004000E8310080AC80A5537A -:1043D00007700400047084A00400C000EA31492082 -:1043E0000000037000007F157F137F147F120020F0 -:1043F0007C007E127E007E0D912000227F0D4920E0 -:10440000F931806860208468886B8C6C5780D4AAEE -:10441000FF0084A0FF00B8A0322F087EB5A60400DC -:1044200007700400047084A00400C0001232582CED -:10443000042760AC046000A41A70006001A31E7021 -:1044400013700100177000000276077001007F00F2 -:104450000780092031000A20A0002C320871077063 -:1044600002000C81C8002C320C81480039327800DF -:10447000EA2FA0A4010099A300008A6B8E6C07703C -:10448000040049200000037000007F1200207C001F -:10449000A920100006A0048086808E81C8005132B9 -:1044A00000A2F0004C3286808E817C007E15A9200F -:1044B000100005A0400077321AA1C800773213829D -:1044C0008D8148006A321AA1C8006B32F0005F3259 -:1044D00078006F321AA108231082F0005F327E004C -:1044E000003284A0FFF780207F007F157C007E00D3 -:1044F000003285A0000878007332E000BF329120BE -:104500000060207801802278C000B93224782278B7 -:104510009120008069204035006884A00700400099 -:10452000A13286A002004000A13230680DA04000F8 -:10453000A132042105A04000A13201800A204000E0 -:104540006F3361208036A9208000346005A04000D0 -:10455000B33201803660C000B332106005A0400065 -:10456000B3327810191AE0AC10007000B93278003C -:10457000A5327810D4327810C2327810F9329120F6 -:1045800001807C003C7801803E78C000D3324078C6 -:104590003E78487805A04000D33201804A78C000B8 -:1045A000D3327810191A7C00347801803678C00034 -:1045B000F8323878367891200080447805A0C00021 -:1045C000E332012001010180467880A0803E402036 -:1045D000042065A04000F832206005A04000F432BD -:1045E00001802260400028330060402C7800E932CE -:1045F0007C00287801802A78C00027332C782A781C -:10460000307805A0C0000633012080000180327898 -:10461000038003800380038090A0803698A202006C -:10462000042384A008004000273390A2090004223C -:1046300005A040001F3301801220C000273304234F -:1046400084A0F7FF85A080001A207810191A7C003A -:1046500069204035006805A0400032333C6806AC54 -:1046600040006F3317600600B06084A0003F1A60FE -:104670001C6084A0FF0085A060001E6000604220D6 -:104680001067B66F78109216186805A040004A337C -:1046900001801A68086884A0EFFF0A68106801802A -:1046A000D00054337810A51B12682F6000002B60D7 -:1046B0000000682C7810DD176920403501200600C5 -:1046C000A268447984A10001C0006A33BA6901205C -:1046D0000400A2687810141A912001807C0009203F -:1046E0004F3564216920000178106B1B17600600AC -:1046F000586884A0003F1A601C6084A0FF0085A059 -:1047000048001E602F6000002B600000306884A00D -:1047100040004000AB334B680400A92014004868F7 -:1047200084A00400400098337000983378008F33E1 -:104730004B680900A9201400486884A001004000CB -:10474000A5337000A53378009C33A920FA007000CF -:10475000AB337800A733086884A0FDFF0A681B68A4 -:104760004600092068350B2007004C784A789120D4 -:1047700001807C0079200035781003347810CB3329 -:104780007810E0337810F533337800004778000074 -:104790004B7800007C0019200A00112046350422C5 -:1047A00086A032004000DD3319200C00042286A0D0 -:1047B0003C004000DD33192008002A7B2E7B7C0062 -:1047C0001920300011204635042286A03200400016 -:1047D000F23319203900042286A03C004000F23355 -:1047E00019202700367B3A7B7C0019200D00112010 -:1047F0004635042286A03C004000003419200A00FF -:104800003E7B427B7C001920AF2F112046350422CD -:1048100086A032004000153419207139042286A088 -:104820003C004000153419202626227B267B7C0084 -:02483000A7924D -:00000001FF -/* Version 1.31.00 ISP1000 Initiator RISC firmware */ diff --git a/firmware/qlogic/sd7220.fw.ihex b/firmware/qlogic/sd7220.fw.ihex deleted file mode 100644 index a33636319112..000000000000 --- a/firmware/qlogic/sd7220.fw.ihex +++ /dev/null @@ -1,513 +0,0 @@ -:10000000020A29020A87E5E630E6047F0180027FC2 -:1000100000E5E230E4047E0180027E00EE5F6008CD -:1000200053F9F7E4F5FE80087F0A121731120EA289 -:1000300075FC08E4F5FDE5E720E70343F908220035 -:1000400001201100042000755101E4F552F553F52B -:1000500052F57E7F04020438C2360552E552D3942D -:100060000C4005755201D23690070C7407F0A3744A -:10007000FFF0E4F50CA3F0900714F0A3F0750B204B -:10008000F509E4F508E508D39430400302040412AE -:100090000006150BE50870047F0180027F00E5096A -:1000A00070047E0180027E00EE5F6005121871D23E -:1000B0003553E1F7E5084509FFE50B25E025E02488 -:1000C00083F582E43407F583EFF085E220E552D32F -:1000D0009401400D1219F3E054A064407003020330 -:1000E000FB53F9F8909470E4F0E0F510AF09121E9C -:1000F000B3AF08EF4408F582758380E0F529EF443B -:1001000007121A3CF5225440D39400401EE52954AE -:10011000F070211219F3E04480F0E52254306508B4 -:1001200070091219F3E054BFF080091219F37440FA -:10013000F00203FB121A127583AE74FFF0AF087E53 -:1001400000EF4407F582E0FDE50B25E025E0248182 -:10015000F582E43407F583EDF090070EE004F0EF4C -:100160004407F582758398E0F528121A23400C1293 -:1001700019F3E04401121A320203F6AF087E00744C -:1001800080CDEFCD8D82F583E030E00A1219F3E0E7 -:100190004420F00203FB1219F3E054DFF0EE44AE0A -:1001A000121A4330E4030203FB749E121A0520E086 -:1001B000030203FB8F828E83E020E0030203FB1225 -:1001C00019F3E04410F0E5E320E708E508121A3AD5 -:1001D0004404F0AF087E00EF121A3A20E2341219FC -:1001E000F3E04408F0E5E430E6047D0180027D00A0 -:1001F000E57EC3940450047C0180027C00EC4D60D9 -:1002000005C2350203FBEE44D2121A434440F00209 -:1002100003FB1219F3E054F7F0121A127583D2E0BF -:1002200054BFF0900714E004F0E57E7003757E0182 -:10023000AF087E00121A2340121219F3E044011293 -:1002400019F2E05402121A320203FB1219F3E044CD -:10025000021219F2E054FEF0C235EE448A8F82F5A4 -:1002600083E0F517548F4440F07490FCE508440790 -:10027000FDF5828C83E0543F900702F0E054C08D7E -:10028000828C83F07492121A05900703121A197463 -:1002900082121A05900704121A1974B4121A0590E2 -:1002A0000705121A197494FEE5084406121A0AF595 -:1002B0001030E004D2378002C237E510547F8F82BD -:1002C0008E83F0304430121A035480D394004004DB -:1002D000D2398002C2398F828E83E04480F0121AB4 -:1002E000035440D394004004D23A8002C23A8F8231 -:1002F0008E83E04440F07492FEE5084406121A0A28 -:1003000030E704D2388002C2388F828E83E0547F77 -:10031000F0121E46E4F50A20030280033043031264 -:1003200019952002028003304203120C8F303006F0 -:10033000121995120C8F120D471219F3E054FBF0AD -:10034000E50AC39401404643E1081219F3E044046E -:10035000F0E5E420E72A121A127583D2E05408D39C -:10036000940040047F0180027F00E50AC3940140AD -:10037000047E0180027E00EF5E6005121DD78017AB -:10038000121A127583D2E04408F00203FB121A120B -:100390007583D2E054F7F0121E467F0812173174AD -:1003A0008EFE121A128E83E0F51054FEF0E5104412 -:1003B00001FFE508FDED4407F582EFF0E51054FE7E -:1003C000FFED4407F582EF121A11758386E04410A1 -:1003D000121A11E04410F01219F3E054FD4401FF29 -:1003E0001219F3EF121A3230320CE5084408F58284 -:1003F0007583827405F0AF0B1218D774102508F5B9 -:10040000080200850509E509D3940750030200821C -:10041000E57ED3940040047F0180027F00E57EC327 -:1004200094FA50047E0180027E00EE5F6002057E39 -:1004300030350B43E1017F0912173102005853E1B7 -:10044000FE0200588E6A8F6B8C6C8D6D756E017517 -:100450006F01757001E4F573F574F57590072FF071 -:10046000F53CF53EF546F547F53DF53FF56FE56F93 -:10047000700FE56B456A12072A758380743AF08025 -:100480000912072A758380741AF0E4F56EC3743F6D -:10049000956EFF120865758382EFF0121A4D1208EF -:1004A000C6E533F01208FA1208B140E1E56F700BAF -:1004B00012072A7583807436F0800912072A758323 -:1004C000807416F0756E0112072A7583B4E56EF01C -:1004D000121A4D743F256EF582E43400F583E5333E -:1004E000F074BF256EF582E434001208B140D8E400 -:1004F000F570F546F547F56E1208FAF583E0FE1241 -:1005000008C6E07C002400FFEC3EFEAD3BD3EF9D2F -:10051000EE9C50047B0180027B00E57070047A0140 -:1005200080027A00EB5A6006856E46757001D3EF43 -:100530009DEE9C50047F0180027F00E570B40104B1 -:100540007E0180027E00EF5E6003856E47056EE5EA -:100550006E647F70A3E5466005E547B47E0385467B -:1005600047E56F7008854676854777800EC3747FB0 -:100570009546F578C3747F9547F579E56F7037E553 -:10058000466547700C757301757401F53CF53D8047 -:1005900035E4F54EC3E5479546F53CC313F57125A3 -:1005A00046F572C3943F4005E4F53D8040C3743F77 -:1005B0009572F53D8037E5466547700F7573017597 -:1005C0007501F53EF53F754E018022E4F54EC3E519 -:1005D000479546F53EC313F5712546F572D3943F12 -:1005E0005005E4F53F8006E57224C1F53F056FE54F -:1005F0006FC39402500302046EE56D456C70028077 -:1006000004E574457590072FF07F01E53E6004E531 -:100610003C7014E4F53CF53DF53EF53F1208D27010 -:1006200004F00206A4807AE53CC3953E4007E53C11 -:10063000953EFF8006C3E53E953CFFE576D3957970 -:10064000400585767A800385797AE577C395785079 -:100650000585777B800385787BE57BD3957A403071 -:10066000E57B957AF53CF53EC3E57B957A900719D5 -:10067000F0E53CC313F571257AF572C3943F40054C -:10068000E4F53D801FC3743F9572F53DF53F80143E -:10069000E4F53CF53E900719F01208D27003F080A3 -:1006A000037401F01208657583D0E0540FFEAD3C71 -:1006B00070027E07BE0F027E80EEFBEFD39B74803C -:1006C000F898401FE4F53CF53E1208D27003F08024 -:1006D000127401F0E508FBEB4407F5827583D2E064 -:1006E0004410F0E508FBEB4409F58275839EEDF0BC -:1006F000EB4407F5827583CAEDF01208657583CC6B -:10070000EFF022E5084407F5827583BCE054F0F071 -:10071000E5084407F5827583BEE054F0F0E508442F -:1007200007F5827583C0E054F0F0E5084407F582D0 -:1007300022F0900728E0FEA3E0F5828E8322854216 -:100740004285414185404074C02FF58274023EF5D8 -:1007500083E542F074E02FF58274023EF58322E5D2 -:100760004229FDE433FCE53CC39DEC6480F87480D1 -:100770009822F583E0900722541FFDE0FAA3E0F5EC -:10078000828A83EDF022900722E0FCA3E0F5828CC0 -:100790008322900724FFED4407CFF0A3EFF02285DA -:1007A0003838853939853A3A74C02FF58274023E5B -:1007B000F58322900726FFED4407CFF0A3EFF02248 -:1007C000F074A02FF58274023EF5832274C02511C7 -:1007D000F582E43401F5832274002511F582E434B6 -:1007E00002F5832274602511F582E43403F5832237 -:1007F00074802511F582E43403F5832274E0251119 -:10080000F582E43403F5832274402511F582E43443 -:1008100006F5832274802FF58274023EF58322AFA1 -:10082000087E00EF4407F58222F583E5824407F550 -:1008300082E540F02274402511F582E43402F5830C -:100840002274C02511F582E43403F5832274002557 -:1008500011F582E43406F5832274202511F582E433 -:100860003406F58322E508FDED4407F58222E541D3 -:10087000F0E56564014564227E00FB7A00FD7C00A2 -:100880002274202511F582E434022274A02511F58A -:1008900082E4340322853E42853F418F4022853CDD -:1008A00042853D418F402275453F900720E4F0A3EB -:1008B00022F583E532F0056EE56EC3944022F0E543 -:1008C000084406F582227400256EF582E43400F5B2 -:1008D0008322E56D456C90072F22E4F9E53CD39522 -:1008E0003E2274802EF582E43402F583E02274A067 -:1008F0002EF582E43402F583E0227480256EF582C1 -:10090000E43400222542FDE433FC22854242854145 -:100910004185404022ED4C60030209E5EF4E7037FF -:10092000900726120789E0FD1207CCEDF09007280A -:10093000120789E0FD1207D8EDF0120786E0541F78 -:10094000FD120881F583EDF0900724120789E05429 -:100950001FFD120835EDF0EF64044E703790072646 -:10096000120789E0FD1207E4EDF0900728120789CD -:10097000E0FD1207F0EDF0120786E0541FFD1208AB -:100980008BF583EDF0900724120789E0541FFD12C8 -:100990000841EDF0EF64014E70047D0180027D009E -:1009A000EF64024E70047F0180027F00EF4D60789B -:1009B000900726120735E0FF1207FCEF120731E01F -:1009C000FF120808EFF0900722120735E0541FFFCE -:1009D00012084DEFF0900724120735E0541FFF1264 -:1009E0000859EFF0221207CCE4F01207D8E4F01215 -:1009F0000881F583E4F01208357414F01207E4E47A -:100A0000F01207F0E4F012088BF583E4F0120841CD -:100A10007414F01207FCE4F0120808E4F012084D18 -:100A2000E4F01208597414F02253F9F775FC10E43D -:100A3000F5FD75FE30F5FFE5E720E70343F908E52E -:100A4000E620E70B78FFE4F6D8FD53E6FE80097850 -:100A500008E4F6D8FD53E6FE758180E4F5A8D2A837 -:100A6000C2A9D2AFE5E220E50520E602800343E11A -:100A700002E5E220E00E9000007F007E08E4F0A393 -:100A8000DFFCDEFA020ADB43FA01C0E0C0F0C083FB -:100A9000C082C0D0121CE7D0D0D082D083D0F0D09A -:100AA000E053FAFE32021B55E493A3F8E493A3F655 -:100AB00008DFF98029E493A3F85407240CC8C33352 -:100AC000C4540F4420C8834004F456800146F6DF26 -:100AD000E4800B010204081020408090003FE47E77 -:100AE000019360C1A3FF543F30E509541FFEE49316 -:100AF000A360010ECF54C025E060AD40B880FE8CED -:100B0000648D658A668B67E4F569EF4E7003021D9C -:100B100055E4F568E5674566703212072A758390DB -:100B2000E41207297583C2E41207297583C4E4120D -:100B30000870702912072A758392E41207297583B9 -:100B4000C6E41207297583C8E4F0801190072612C5 -:100B50000735E41208707005120732E4F0121D55D3 -:100B6000121EBFE5674566703312072A758390E54C -:100B7000411207297583C2E5411207297583C41202 -:100B8000086E702912072A758392E54012072975AD -:100B900083C6E5401207297583C8800E9007261288 -:100BA000073512086E7006120732E540F0AF697E15 -:100BB00000AD67AC6612044412072A7583CAE0D3FD -:100BC0009400500C0568E568C394055003020B14AB -:100BD000228C608D611208DA7420400D2FF582742A -:100BE000033EF583E53EF0800B2FF58274033EF55E -:100BF00083E53CF0E53CD3953E403CE561456070C3 -:100C000010E9120904E53E120768403B120895807E -:100C100018E53EC39538401D853E38E53E600585A4 -:100C20003F3980038539398F3A120814E53E12079F -:100C3000C0E53FF0228043E5614560701912075F0F -:100C4000400512089E802712090B120814E5421273 -:100C500007C0E541F022E53CC39538401D853C388E -:100C6000E53C6005853D3980038539398F3A1208A6 -:100C700014E53C1207C0E53DF02285383885393946 -:100C8000853A3A120814E5381207C0E539F0227F98 -:100C900006121731121D23120E04120E33E0440AFD -:100CA000F0748EFE120E04120E0BEFF0E52830E504 -:100CB00003D38001C3400575142080037514081206 -:100CC0000E0475838AE514F0B4FF05751280800662 -:100CD000E514C313F512E4F516F57F121936121355 -:100CE000A3E50AC3940150090516E516C394144000 -:100CF000EAE5E420E728120E047583D2E05408D315 -:100D0000940040047F0180027F00E50AC394014003 -:100D1000047E0180027E00EF5E6003121DD7E57F36 -:100D2000C394114014120E047583D2E04480F0E5A0 -:100D3000E420E70F121DD7800A120E047583D2E05B -:100D4000547FF0121D2322748A850882F583E517EB -:100D5000F0120E3AE4F0900702E0120E177583903D -:100D6000EFF07492FEE5084407FFF5828E83E054AD -:100D7000C0FD900703E0543F4D8F828E83F09007B3 -:100D800004E0120E17758382EFF0900705E0FFED87 -:100D90004407F5827583B4EF120E03758380E05427 -:100DA000BFF030370A120E91758394E04480F03022 -:100DB000380A120E91758392E04480F0E52830E401 -:100DC0001A20390A120E04758388E0547FF0203A05 -:100DD0000A120E04758388E054BFF0748CFE120E64 -:100DE000048E83E0540F120E03758386E054BFF027 -:100DF000E5084406120DFD75838AE4F022F582753C -:100E00008382E4F0E5084407F582228E83E0F51042 -:100E100054FEF0E5104401FFE508FDED4407F582BE -:100E200022E515C45407FFE508FDED4408F5827579 -:100E3000838222758380E04440F0E5084408F5820F -:100E400075838A22E51625E025E024AFF582E43497 -:100E50001AF583E493F50D2243E11043E18053E159 -:100E6000FD85E11022E51625E025E024B2F582E4B7 -:100E7000341AF583E49322855582855483E515F071 -:100E800022E5E25420D3940022E5E25440D39400BA -:100E900022E5084406F58222FDE508FBEB4407F550 -:100EA000822253F9F775FE3022EF4E70261207CCDE -:100EB000E0FD90072612077B1207D8E0FD90072877 -:100EC00012077B120881120772120835E09007247E -:100ED000120778EF64044E70291207E4E0FD9007D2 -:100EE0002612077B1207F0E0FD90072812077B12FD -:100EF000088B120772120841E0541FFD900724125C -:100F0000077BEF64014E70047D0180027D00EF6479 -:100F1000024E70047F0180027F00EF4D60351207A2 -:100F2000FCE0FF900726120789EFF0120808E0FFA7 -:100F3000900728120789EFF012084DE0541FFF12A6 -:100F40000786EFF0120859E0541FFF90072412079C -:100F500089EFF022E4F553120E8140047F018002F4 -:100F60007F00120E8940047E0180027E00EE4F70E9 -:100F700003020FF685E11043E10253E10F85E11012 -:100F8000E4F551E5E3543FF552120E89401DAD5290 -:100F9000AF51121118EF600885E11043E140800B5A -:100FA00053E1BF120E5812000680FBE5E3543FF5F3 -:100FB00051E5E4543FF552120E81401DAD52AF5140 -:100FC000121118EF600885E11043E120800B53E116 -:100FD000DF120E5812000680FB120E8140047F01C2 -:100FE00080027F00120E8940047E0180027E00EEA6 -:100FF0004F6003120E5B22120E21EFF012109122AD -:1010000002110002104002109000000000000000D9 -:1010100001200120E4F5571216BD121644E4121007 -:10102000561214B7900726120735E4120731E4F080 -:101030001210561214B7900726120735E541120711 -:1010400031E540F0AF577E00AD567C00120444AF4E -:10105000567E000211EEFF900720A3E0FDE4F55656 -:10106000F540FEFCAB56FA1211517F0F7D18E4F5E6 -:1010700056F540FEFCAB56FA121541AF567E0012F3 -:101080001AFFE4FFF5567D1FF540FEFCAB56FA2231 -:1010900022E4F555E508FD74A0F556ED4407F55733 -:1010A000E52830E503D38001C340057F28EF8004A5 -:1010B0007F14EFC313F554E4F9120E1875838EE014 -:1010C000F510CEEFCEEED394004026E51054FE127C -:1010D0000E9875838EEDF0E5104401FDEB4407F5A5 -:1010E00082EDF0855782855683E030E301091E804A -:1010F000D4C234E9C395544002D2342202000622FD -:10110000303011901000E493F510901010E493F536 -:101110001012109012115022E4FCC3ED9FFAEFF56B -:101120008375820079FFE493CC6CCCA3D9F8DAF60E -:10113000E5E230E4028CE5ED24FFFFEF7582FFF578 -:1011400083E4936C70037F01227F00222211000050 -:10115000228E588F598C5A8D5B8A5C8B5D755E012F -:10116000E4F55FF560F56212072A7583D0E0FFC4ED -:10117000540FF561121EA585595ED3E55E955BE5BA -:101180005A12076B504B1207037583BCE0455E1281 -:1011900007297583BEE0455E1207297583C0E045C7 -:1011A0005EF0AF5FE560120878120AFFAF627E0062 -:1011B000AD5DAC5C120444E561AF5E7E00B4030536 -:1011C000121E218007AD5DAC5C121317055E021183 -:1011D0007A1207037583BCE045401207297583BE68 -:1011E000E045401207297583C0E04540F0228E5843 -:1011F0008F59755A017901755B01E4FB12072A7555 -:1012000083AEE0541AFF120865E0C4135407FEEFE2 -:10121000700CEE6535700790072FE0B4010DAF3507 -:101220007E00120EA9CFEBCF021E60E55964024585 -:101230005870047F0180027F00E559455870047E94 -:101240000180027E00EE4F602385414985404BE5D9 -:10125000594558702CAF5AFECDE9CDFCAB59AA5870 -:10126000120AFFAF5B7E00121E608015AF5B7E002E -:10127000121E60900726120735E549120731E54B2B -:10128000F0E4FDAF35FEFC120915228C648D651269 -:1012900008DA403CE56545647010120904C3E53E78 -:1012A000120769403B1208958018E53EC395384007 -:1012B0001D853E38E53E6005853F39800385393917 -:1012C0008F3A1207A8E53E120753E53FF022803B14 -:1012D000E5654564701112075F400512089E801F86 -:1012E00012073EE541F022E53CC39538401D853CA0 -:1012F00038E53C6005853D3980038539398F3A12E0 -:1013000007A8E53C120753E53DF02212079FE53898 -:10131000120753E539F0228C638D641208DA403CE1 -:10132000E56445637010120904C3E53E1207694085 -:101330003B1208958018E53EC39538401D853E3820 -:10134000E53E6005853F3980038539398F3A1207BC -:10135000A8E53E120753E53FF022803BE564456374 -:10136000701112075F400512089E801F12073EE5AC -:1013700041F022E53CC39538401D853C38E53C6092 -:1013800005853D3980038539398F3A1207A8E53C38 -:10139000120753E53DF02212079FE538120753E587 -:1013A00039F022E50DFEE5088E544405F555751516 -:1013B0000FF582120E7A1217A320310575150380DE -:1013C0000375150BE50AC39401503812142020311F -:1013D0000605150515800415151515E50AC39401B4 -:1013E0005021121420203104051580021515E50A3C -:1013F000C39401500E120E771217A3203105051564 -:10140000120E77E515B408047F0180027F00E51510 -:10141000B407047E0180027E00EE4F6002057F2249 -:10142000855582855483E515F01217A32212072AE9 -:101430007583AE74FF120729E0541AF534E0C41323 -:101440005407F53524FE602424FE603C24047063B8 -:1014500075312DE508FD74B612079274BC90072211 -:1014600012079574901207B37492803C75313AE577 -:1014700008FD74BA12079274C09007221207B6745E -:10148000C41207B374C88020753135E508FD74B8FF -:1014900012079274BEFFED4407900722CFF0A3EF2E -:1014A000F074C21207B374C6FFED4407A3CFF0A3D4 -:1014B000EFF022753401228E588F598C5A8D5B8A39 -:1014C0005C8B5D755E01E4F55F121EA585595ED3E8 -:1014D000E55E955BE55A12076B5057E55D455C701C -:1014E0003012072A758392E55E1207297583C6E5D7 -:1014F0005E1207297583C8E55E120729758390E59A -:101500005E1207297583C2E55E1207297583C480C0 -:1015100003120732E55EF0AF5F7E00AD5DAC5C129A -:101520000444AF5E7E00AD5DAC5C120BD1055E0283 -:1015300014CFAB5DAA5CAD5BAC5AAF59AE58021B81 -:10154000FB8C5C8D5D8A5E8B5F756001E4F561F5F7 -:1015500062F563121EA58F60D3E560955DE55C12B0 -:10156000076B5061E55F455E702712072A7583B6E9 -:10157000E5601207297583B8E5601207297583BAFB -:10158000E560F0AF617E00E56212087A120AFF8022 -:1015900019900724120735E56012072975838EE438 -:1015A0001207297401120729E4F0AF637E00AD5FD2 -:1015B000AC5E120444AF607E00AD5FAC5E12128B75 -:1015C00005600215582290114DE49390072EF012F9 -:1015D000081F7583AEE0541AF5347067EF4407F5C1 -:1015E000827583CEE0FF1313135407F536540FD3DF -:1015F0009400400612142D121BA9E536540F24FE48 -:10160000600C14600C146019240370378010021EE3 -:1016100091121E9112072A7583CEE054EFF0021D3D -:10162000AE121014E4F555121D850555E555C39409 -:101630000540F412072A7583CEE054C7120729E04B -:101640004408F022E4F558F559AF08EF4407F58255 -:101650007583D0E0FDC4540FF55AEF4407F5827549 -:1016600083807401F0120821758382E545F0EF4410 -:1016700007F58275838A74FFF0121A4D12072A75D6 -:1016800083BCE054EF1207297583BEE054EF1207C4 -:10169000297583C0E054EF1207297583BCE044101C -:1016A0001207297583BEE044101207297583C0E034 -:1016B0004410F0AF58E559120878020AFFE4F558D3 -:1016C0007D01F559AF35FEFC12091512072A758305 -:1016D000B674101207297583B87410120729758320 -:1016E000BA74101207297583BC7410120729758308 -:1016F000BE74101207297583C074101207297583F0 -:1017000090E41207297583C2E41207297583C4E4A3 -:10171000120729758392E41207297583C6E412071C -:10172000297583C8E4F0AF58FEE55912087A020A19 -:10173000FFE5E230E46CE5E754C064407064E5091D -:10174000C45430FEE50825E025E054C04EFEEF54B9 -:101750003F4EFDE52BAE2A7802C333CE33CED8F907 -:10176000F5828E83EDF0E52BAE2A7802C333CE33BB -:10177000CED8F9FFF5828E83A3E5FEF08F828E83AB -:10178000A3A3E5FDF08F828E83A3A3A3E5FCF0C3A2 -:10179000E52B94FAE52A94005008052BE52B7002FE -:1017A000052A22E4FFE4F558F556F5577482FC1239 -:1017B0000E048C83E0F510547FF0E5104480120E87 -:1017C00098EDF07E0A120E047583A0E020E026DE7C -:1017D000F40557E55770020556E5142401FDE4337E -:1017E000FCD3E5579DE5569C40D9E50A942050026C -:1017F000050A43E108C231120E047583A6E05512B2 -:1018000065127003D23122C23122900726E0FAA37A -:10181000E0F5828A83E0F541E539C395414026E54C -:10182000399541C39FEE12076B40047C0180027C16 -:1018300000E541643F60047B0180027B00EC5B605B -:101840002905418028C3E5419539C39FEE12076BF6 -:1018500040047F0180027F00E54160047E01800238 -:101860007E00EF5E600415418003853941853A4072 -:1018700022E5E230E460E5E130E25BE50970047FF7 -:101880000180027F00E50870047E0180027E00EE88 -:101890005F604353F9F8E5E230E43BE5E130E22EE6 -:1018A00043FA0253FAFBE4F510909470E510F0E56A -:1018B000E130E2E7909470E06510600343FA0405BC -:1018C00010909470E510F070E612000680E153FA73 -:1018D000FD53FAFB80C0228F54120006E5E130E090 -:1018E000047F0180027F00E57ED3940540047E01E1 -:1018F00080027E00EE4F603D855411E5E220E1322A -:1019000074CE121A0530E7047D0180027D008F82BB -:101910008E83E030E6047F0180027F00EF5D70156A -:101920001215C674CE121A0530E607E04480F04363 -:10193000F98012187122120E44E51625E025E024E4 -:10194000B0F582E4341AF583E493F50FE51625E04B -:1019500025E024B1F582E4341AF583E493F50E1200 -:101960000E65F510E50F54F0120E1775838CEFF02D -:10197000E50F30E00C120E04758386E04440F080E1 -:101980000A120E04758386E054BFF0120E9175831F -:1019900082E50EF0227F05121731120E04120E336B -:1019A0007402F0748EFE120E04120E0BEFF0751519 -:1019B00070120FF72034057515108003751550123D -:1019C0000FF72034047410800274F02515F51512F9 -:1019D0000E21EFF0121091203417E5156430600CE1 -:1019E00074102515F515B48003E4F515120E21EFDA -:1019F000F022F0E50B25E025E02482F582E43407AF -:101A0000F583227488FEE5084407FFF5828E83E0A3 -:101A100022F0E5084407F58222F0E054C08F828E60 -:101A200083F022EF4407F582758386E05410D39447 -:101A30000022F0900715E004F0224406F582758339 -:101A40009EE022FEEF4407F5828E83E022E49007B9 -:101A50002AF0A3F012072A758382E0547F12072927 -:101A6000E04480F01210FC12081F7583A0E020E013 -:101A70001A90072BE004F0700690072AE004F0901B -:101A8000072AE0B410E1A3E0B400DCEE44A6FCEFCA -:101A90004407F5828C83E0F532EE44A8FEEF44075C -:101AA000F5828E83E0F5332201201100042000909E -:101AB00000200F9200210F9400220F9600230F9810 -:101AC00000240F9A00250F9C00260F9E00270FA0D0 -:101AD000012001A2012101A4012201A6012301A8E4 -:101AE000012401AA012501AC012601AE012701B0A4 -:101AF000012801B400280FB640280FB8612801CB97 -:101B0000EFCBCAEECA7F01E4FDEB4A7024E508F58D -:101B10008274B6120829E508F58274B8120829E51E -:101B200008F58274BA1208297E007C00120AFF8030 -:101B300012900726120735E541F090072412073569 -:101B4000E540F012072A75838EE41207297401120A -:101B50000729E4F022E4F526F52753E1FEF52A757E -:101B60002B01F5087F0112173130301C901AA9E4BF -:101B700093F510901FF9E493F510900041E493F56C -:101B800010901ECAE493F5107F02121731120F5401 -:101B90007F03121731120006E5E230E70912100048 -:101BA00030300312110002004712081F7583D0E085 -:101BB000C4540FFD7543017544FF1208AA7404F064 -:101BC000753B01ED14600C14600B14600F2403705E -:101BD0000B800980001208A704F080061208A77481 -:101BE00004F0EE4482FEEF4407F5828E83E5451251 -:101BF00008BE758382E531F002114C8E608F611250 -:101C00001EA5E4FFCEEDCEEED39561E56012076B25 -:101C1000403974202EF582E43403F583E07003FF2D -:101C200080261208E2FDC39F401ECFEDCFEB4A7025 -:101C30000B8D421208EEF5418E40800C1208E2F541 -:101C4000381208EEF5398E3A1E80BC22755801E52F -:101C500035700C1207CCE0F54A1207D8E0F54CE5D8 -:101C600035B4040C1207E4E0F54A1207F0E0F54C35 -:101C7000E535B401047F0180027F00E535B402043C -:101C80007E0180027E00EE4F600C1207FCE0F54AF8 -:101C9000120808E0F54C85414985404B22755B01EF -:101CA000900724120735E0541FFFD3940250048F8D -:101CB000588005EF24FEF558EFC394184005755978 -:101CC000188004EF04F55985435AAF587E00AD598A -:101CD0007C00AB5B7A00121541AF5A7E0012180AE5 -:101CE000AF5B7E00021AFFE5E230E70E121003C27E -:101CF000303030031210FF203328E5E730E70512BB -:101D00000EA2800DE5FEC394205006120EA243F9E8 -:101D100008E5F230E70353F97FE5F15470D39400FE -:101D200050D822120E04758380E4F0E508440712AF -:101D30000DFD758384120E02758386120E02758363 -:101D40008CE054F3120E0375838E120E0275839489 -:101D5000E054FBF02212072A75838EE412072974DF -:101D600001120729E41208BE75838CE04420120892 -:101D7000BEE054DFF07484850882F583E0547FF080 -:101D8000E04480F022755601E4FDF557AF35FEFCC6 -:101D9000120915121C9D121E7A121C4CAF577E00A0 -:101DA000AD567C00120444AF567E000211EE75560B -:101DB00001E4FDF557AF35FEFC120915121C9D120A -:101DC0001E7A121C4CAF577E00AD567C00120444A4 -:101DD000AF567E000211EEE4F516120E44FEE50841 -:101DE0004405FF120E658F828E83F00516E516C33B -:101DF000941440E6E508120E2BE4F022E4F558F5C1 -:101E000059F55AFFFEAD58FC1209157F047E00AD4E -:101E1000587C001209157F027E00AD587C00020933 -:101E200015E53C253EFCE5422400FBE433FAECC317 -:101E30009BEA12076B400B8C42E53D253FF5418F35 -:101E4000402212090B227484F5188508198519821D -:101E5000851883E0547FF0E04480F0E04480F02275 -:101E6000EF4E700B12072A7583D2E054DFF0221276 -:101E7000072A7583D2E04420F02275580190072686 -:101E8000120735E0543FF541120732E0543FF54068 -:101E900022755602E4F557121DFCAF577E00AD5671 -:101EA0007C00020444E4F542F541F540F538F5398B -:101EB000F53A22EF5407FFE5F954F84FF5F9227F80 -:101EC00001E4FE0F0EBEFFFB2201200001042000F2 -:101ED0000000000000000000000000000000000002 -:101EE00000000000000000000000000000000000F2 -:101EF00000000000000000000000000000000000E2 -:101F000000000000000000000000000000000000D1 -:101F100000000000000000000000000000000000C1 -:101F200000000000000000000000000000000000B1 -:101F300000000000000000000000000000000000A1 -:101F40000000000000000000000000000000000091 -:101F50000000000000000000000000000000000081 -:101F60000000000000000000000000000000000071 -:101F70000000000000000000000000000000000061 -:101F80000000000000000000000000000000000051 -:101F90000000000000000000000000000000000041 -:101FA0000000000000000000000000000000000031 -:101FB0000000000000000000000000000000000021 -:101FC0000000000000000000000000000000000011 -:101FD0000000000000000000000000000000000001 -:101FE00000000000000000000000000000000000F1 -:101FF000000000000000000001201100042000810A -:00000001FF diff --git a/firmware/r128/r128_cce.bin.ihex b/firmware/r128/r128_cce.bin.ihex deleted file mode 100644 index 4831315d7b99..000000000000 --- a/firmware/r128/r128_cce.bin.ihex +++ /dev/null @@ -1,129 +0,0 @@ -:1000000000000000108038000000000010003800E0 -:10001000000000020000008E0000000200000091BD -:1000200000000000402E2423000000006062124FF8 -:10003000000000002E2B596D000000007677753E01 -:1000400000000000898984820000000023BC8B0D21 -:10005000000000002323232300000000238DABB405 -:1000600000000000232323230000000100B028002B -:100070000000000100032800000000010004C0008F -:100080000000000100030800000000023660300E8E -:100090000000000B00040000000000000000000051 -:1000A000000000010200151D0000000100001D0EEF -:1000B00000000001000039D900000001000019D73C -:1000C0000000000C0000001C00000001000019D618 -:1000D0000000000C0000001C0000000200000017DF -:1000E0000000000B01200000000000000100358A24 -:1000F0000000000100064000000000090000001E92 -:100100000000000108D015B4000000101910100004 -:100110000000000300002000000000000000280094 -:1001200000000001000308000000000100003D0E77 -:10013000000000010000C8000000000A0000882A3A -:10014000000000090000002A000000010200150F55 -:1001500000000002000028240000000100003D65AE -:100160000000000100003D66000000020000002BBE -:100170000000000100F32DB4000000012200D8BFF0 -:100180000000000100E088BF0000000C1333383786 -:1001900000000001020615650000000C0000003799 -:1001A00000000001020015640000000100003D662F -:1001B000000000020000002E000000040020083AA9 -:1001C0000000000100080800000000010006C0FF58 -:1001D000000000040040003D000000010007C800CE -:1001E00000000001000700FF000000030000000005 -:1001F0000000000C0000005C000000020000002E67 -:100200000000000C000000B00000000100003D767E -:100210000000000100032800000000010000480069 -:1002200000000001000208000000000106001D0E91 -:1002300000000001000248000000000100028800E8 -:100240000000000100F3C5F80000000100100000EC -:10025000000000060030004E0000000100003D6379 -:100260000000001080303DF0000000021000384314 -:1002700000000002000028430000000C000000B055 -:100280000000000100003D760000000100003D7705 -:100290000000000100003D0E0000000100003D0FC5 -:1002A000000000010050280000000006003000524D -:1002B0000000001080303DF00000000100003DF81B -:1002C00000000002000000520000000100053D0E89 -:1002D0000000000100103D0F00000002003000553A -:1002E0000000000100003D700000000100001E89B8 -:1002F0000000000100003D710000000300003D729D -:100300000000000C0000005C000000020000006221 -:100310000000000100003F280000000100003F270E -:100320000000000100003E820000000100003E8845 -:100330000000000100003E660000000100003E6772 -:100340000000000100003E760000000100003E6851 -:100350000000000100003E690000000100003E6C4A -:100360000000000000003E6D0000000100002800B9 -:1003700000000001005028000000000100003D685E -:100380000000000100030800000000060000006EED -:10039000000000010002C0000000000106303D62C4 -:1003A0000000000200000070000000020030006F3A -:1003B00000000000200038C0000000010001C0C0A3 -:1003C0000000000E0000007D0000000C0003287FEC -:1003D00000000001020015BB0000000C00030880B3 -:1003E0000000000002003DBC0000000100003DBB19 -:1003F0000000000000003DBC00000003000480007D -:100400000000000100048000000000030006C0029C -:100410000000000100B0280000000000306038003B -:100420000000000100C028000000000100B008002A -:100430000000000100D600000000000712801086B6 -:10044000000000000000280000000001000039CC7E -:1004500000000001000039CD00000001000039C992 -:1004600000000001000039CA00000000000039CB84 -:10047000000000011003B80000000001009000001F -:100480000000000110003800000000010003080017 -:100490000000000100903D1B0000000140203D0ACB -:1004A0000000000140203D0B00000001000880001A -:1004B000000000010001C0C00000000E0000009F0D -:1004C0000000000C000308800000000142203DBD38 -:1004D0000000000C0003087F0000000142003DBB4B -:1004E0000000000C000308800000000142203DBC19 -:1004F00000000002000000A20000000140203DBDFD -:100500000000000140003DBB0000000140203DBC58 -:1005100000000001000840000000000100A00000F1 -:1005200000000006003000A6000000101060380037 -:1005300000000009000000A80000000300400000C7 -:100540000000000300403D1D00000000000000000E -:1005500000000000000001000000000E000000AEDE -:10056000000000010001C0A900000001020015C741 -:100570000000000C000000B0000000000000280097 -:10058000000000010001C0AA00000001020015D215 -:10059000000000010001C0A900000003020015C70F -:1005A0000000000100003E88000000010001C0BA08 -:1005B0000000000102001728000000010001C0BB7C -:1005C000000000010200165A0000000000003E5B1F -:1005D000000000000000010000000000000010000A -:1005E000000000010006400B00000009000000BCF4 -:1005F00000000000000028000000000000000000D3 -:1006000000000000000000000000000000000000EA -:1006100000000000000000000000000000000000DA -:1006200000000000000000000000000000000000CA -:1006300000000000000000000000000000000000BA -:1006400000000000000000000000000000000000AA -:10065000000000000000000000000000000000009A -:10066000000000000000000000000000000000008A -:10067000000000000000000000000000000000007A -:10068000000000000000000000000000000000006A -:10069000000000000000000000000000000000005A -:1006A000000000000000000000000000000000004A -:1006B000000000000000000000000000000000003A -:1006C000000000000000000000000000000000002A -:1006D000000000000000000000000000000000001A -:1006E000000000000000000000000000000000000A -:1006F00000000000000000000000000000000000FA -:1007000000000000000000000000000000000000E9 -:1007100000000000000000000000000000000000D9 -:1007200000000000000000000000000000000000C9 -:1007300000000000000000000000000000000000B9 -:1007400000000000000000000000000000000000A9 -:100750000000000000000000000000000000000099 -:100760000000000000000000000000000000000089 -:100770000000000000000000000000000000000079 -:100780000000000000000000000000000000000069 -:100790000000000000000000000000000000000059 -:1007A0000000000000000000000000000000000049 -:1007B0000000000000000000000000000000000039 -:1007C0000000000000000000000000000000000029 -:1007D0000000000000000000000000000000000019 -:1007E0000000000000000000000000000000000009 -:1007F00000000000000000000000000000000000F9 -:00000001FF diff --git a/firmware/radeon/R100_cp.bin.ihex b/firmware/radeon/R100_cp.bin.ihex deleted file mode 100644 index 151647b04fc4..000000000000 --- a/firmware/radeon/R100_cp.bin.ihex +++ /dev/null @@ -1,130 +0,0 @@ -:1000000000000000210070000000000020007000CF -:1000100000000004000000B400000004000000B86C -:10002000000000006F5B4D4C000000004C4C427F14 -:10003000000000005B568A92000000004CA09C6DFE -:1000400000000000AD4C4C4C000000004CE1AF3D06 -:1000500000000000D8AFAFAF00000000D64C4CDC71 -:10006000000000004CD10D1000000016000F000031 -:1000700000000000362F242D0000000400000012B4 -:1000800000000016000F000000000000362F282D91 -:1000900000000002000380E70000000204002C972B -:1000A00000000016000F000100000000333A373056 -:1000B00000000002000077EF0000000200061000C0 -:1000C0000000001A000000210000001E0000400097 -:1000D00000000002000610000000001A00000021CD -:1000E0000000001E0000400000000002000610009A -:1000F0000000001A000000210000001E0000400067 -:100100000000000400000017000000020003802B24 -:1001100000000002040067E0000000040000001777 -:1001200000000002000077E000000002000650001E -:1001300000000002000037E100000006040067E153 -:1001400000000002000077E000000002000077E1FC -:1001500000000006000077E100000000FFFFFFFF45 -:100160000000000010000000000000020003802BCF -:1001700000000006040067E0000000020000767541 -:100180000000000200007676000000020000767792 -:100190000000000600007678000000020003802CBA -:1001A00000000002040026760000000200007677BE -:1001B0000000000600007678000000180000002F04 -:1001C000000000180000002F0000000600000000E2 -:1001D000000000180000003000000018000000308F -:1001E0000000000600000000000000020160500056 -:1001F000000000020006500000000002000980001C -:1002000000000002000610000000000464C0603E10 -:1002100000000002000380E600000002040025C583 -:1002200000000016000800000000000000000000B0 -:10023000000000020400251D00000002000075807F -:100240000000000200067581000000020400258005 -:100250000000000200067581000000040000004953 -:10026000000000000000500000000002000380E6D3 -:1002700000000002040025C5000000020006100076 -:10028000000000020000750E000000020001900056 -:10029000000000140001105500000012000000557D -:1002A000000000020400250F000000040000504F71 -:1002B00000000002000380E600000002040025C5E3 -:1002C0000000000200007565000000020000756675 -:1002D000000000040000005800000002000380E657 -:1002E00000000002040025C50000000201E655B42C -:1002F000000000024401B0E40000000201C110E46B -:10030000000000182666706600000002040C2565D7 -:1003100000000018000000660000000204002564D0 -:100320000000000200007566000000040000005D8F -:1003300000000008004010690000000200101000DA -:1003400000000002000D80FF000000080080006C2B -:1003500000000002000F900000000002000E00FFED -:100360000000000600000000000000180000008FE0 -:10037000000000040000005B00000002000380E6B3 -:1003800000000002040025C5000000020000757690 -:100390000000000200065000000000020000900073 -:1003A0000000000200041000000000020C00350EE6 -:1003B0000000000200049000000000020005100090 -:1003C0000000000201E785F80000000200200000A4 -:1003D0000000000C0060007E000000020000756359 -:1003E00000000021006075F0000000042000707320 -:1003F000000000040000507300000002000380E6CB -:1004000000000002040025C500000002000075760F -:100410000000000200007577000000020000750E69 -:10042000000000020000750F0000000200A0500054 -:100430000000000C0060008300000021006075F0E7 -:1004400000000002000075F80000000400000083B6 -:1004500000000002000A750E00000002000380E6A2 -:1004600000000002040025C5000000020020750FF6 -:1004700000000004006000860000000200007570AB -:100480000000000200007571000000060000757297 -:1004900000000002000380E600000002040025C501 -:1004A00000000002000050000000000200A0500008 -:1004B0000000000200007568000000020006100045 -:1004C0000000000C00000095000000020005800004 -:1004D000000000020C60756200000004000000973C -:1004E00000000002000380E600000002040025C5B1 -:1004F000000000040060009600000000400070E56D -:1005000000000002000380E600000002040025C590 -:1005100000000002000380E50000001C000000A8AD -:1005200000000018000650AA00000002040025BBCD -:1005300000000018000610AB00000000040075BCAD -:1005400000000002000075BB00000000000075BC48 -:100550000000000600090000000000020009000081 -:1005600000000006000D800200000002000078324A -:10057000000000020000500000000002000380E7BD -:100580000000000204002C97000000020000782008 -:100590000000000200007821000000000000780048 -:1005A000000000020120000000000002200770008F -:1005B0000000000201200000000000022000700086 -:1005C0000000000200061000000000020120751B60 -:1005D000000000028040750A000000028040750B98 -:1005E000000000020011000000000002000380E58E -:1005F0000000001C000000C600000018000610AB40 -:1006000000000002844075BD00000018000610AA1A -:1006100000000002840075BB00000018000610AB4B -:1006200000000002844075BC00000004000000C906 -:1006300000000002804075BD00000002800075BB14 -:1006400000000002804075BC000000020010800025 -:1006500000000002014000000000000C006000CD1E -:100660000000002020C0700000000012000000CF39 -:100670000000000600800000000000060080751DDC -:100680000000000000000000000000020000775C95 -:100690000000000200A050000000000200661000F0 -:1006A000000000200460275D000000000000400002 -:1006B0000000000201E0083000000000210070008E -:1006C000000000006464614D00000000696874204F -:1006D00000000000000000730000000000000000A7 -:1006E000000000020000500000000002000380D063 -:1006F00000000002040025E000000000000075E199 -:10070000000000000000000100000002000380E083 -:1007100000000002040023940000000000005000CC -:1007200000000000000000000000000000000000C9 -:1007300000000000000000080000000000000004AD -:1007400000000000000000000000000000000000A9 -:100750000000000000000000000000000000000099 -:100760000000000000000000000000000000000089 -:100770000000000000000000000000000000000079 -:100780000000000000000000000000000000000069 -:100790000000000000000000000000000000000059 -:1007A0000000000000000000000000000000000049 -:1007B0000000000000000000000000000000000039 -:1007C0000000000000000000000000000000000029 -:1007D0000000000000000000000000000000000019 -:1007E0000000000000000000000000000000000009 -:1007F00000000000000000000000000000000000F9 -:00000001FF -/* production radeon ucode r1xx-r6xx */ diff --git a/firmware/radeon/R200_cp.bin.ihex b/firmware/radeon/R200_cp.bin.ihex deleted file mode 100644 index 3a0bd73111c4..000000000000 --- a/firmware/radeon/R200_cp.bin.ihex +++ /dev/null @@ -1,130 +0,0 @@ -:1000000000000000210070000000000020007000CF -:1000100000000004000000BF00000004000000C356 -:10002000000000007A685E5D000000005D5D55889C -:100030000000000068659197000000005DA19F78B6 -:10004000000000005D5D5D5D000000005DEE5D5044 -:1000500000000000F2ACACAC00000000E75DF9E984 -:1000600000000000B1DD0E1100000000E2AFAFAFF4 -:1000700000000016000F000000000000452F232D97 -:10008000000000040000001300000016000F000034 -:1000900000000000452F272D00000016000F000172 -:1000A000000000003E4D4A3700000002000077EFDC -:1000B00000000002000610000000001A00000020EE -:1000C0000000001E000040000000000200061000BA -:1000D0000000001A000000200000001E0000400088 -:1000E00000000002000610000000001A00000020BE -:1000F0000000001E00004000000000040000001688 -:10010000000000020003802A00000002040067E0F3 -:10011000000000040000001600000002000077E06C -:10012000000000020006500000000002000037E15D -:1001300000000006040067E100000002000077E014 -:1001400000000002000077E100000006000077E1F7 -:1001500000000000FFFFFFFF000000001000000093 -:100160000000000007F007F0000000020003802AF2 -:1001700000000006040067E0000000020003802C7D -:100180000000000204002741000000020400274193 -:100190000000000204002743000000020000767502 -:1001A0000000000200007676000000020000767772 -:1001B0000000000600007678000000020003802C9A -:1001C0000000000204002741000000020400274153 -:1001D00000000002040027430000000200007676C1 -:1001E000000000020000767700000006000076782C -:1001F000000000020003802B0000000204002676AD -:100200000000000200007677000000020003802C4E -:100210000000000204002741000000020400274300 -:100220000000000600007678000000020003802C29 -:1002300000000002040027410000000204002741E2 -:10024000000000020400274300000006000076784A -:10025000000000180000002F000000180000002F10 -:100260000000000600000000000000180000003739 -:100270000000001800000037000000060000000029 -:100280000000000201605000000000020006500063 -:1002900000000002000980000000000200061000BB -:1002A0000000000464C06051000000160008000057 -:1002B0000000000000000000000000020400251DF6 -:1002C0000000000200007580000000020006758139 -:1002D0000000000204002580000000020006758175 -:1002E000000000040000005A000000000000500060 -:1002F0000000000200061000000000020000750E61 -:1003000000000002000190000000001400011064D1 -:100310000000001200000064000000020400250F2D -:10032000000000040000505E00000002000075653F -:100330000000000200007566000000040000006577 -:100340000000000201E655B4000000024401B0F0D4 -:100350000000000201C110F0000000182666707154 -:1003600000000002040C2565000000180000007168 -:100370000000000204002564000000020000756611 -:100380000000000400000068000000080040107435 -:10039000000000020010100000000002000D80FFAD -:1003A000000000080080007700000002000F9000AD -:1003B00000000002000E00FF000000060000000028 -:1003C0000000001800000094000000040000006815 -:1003D00000000002000075760000000200065000D8 -:1003E0000000000200009000000000020004100065 -:1003F000000000020C00350E000000020004900016 -:1004000000000002000510000000000201E785F86E -:1004100000000002002000000000000C00600087C7 -:10042000000000020000756300000021006075F00C -:10043000000000042000707C000000040000507CDC -:1004400000000002000075760000000200007577D1 -:10045000000000020000750E000000020000750F91 -:100460000000000200A050000000000C0060008AA4 -:1004700000000021006075F000000002000075F827 -:10048000000000040000008A00000002000A750E4F -:10049000000000020020750F000000040060008DC5 -:1004A000000000020000757000000002000075717D -:1004B00000000006000075720000000200005000FD -:1004C0000000000200A0500000000002000075685B -:1004D00000000002000610000000000C0000009860 -:1004E0000000000200058000000000020C60756240 -:1004F000000000040000009A000000040060009961 -:1005000000000000400070F100000002000380F1D4 -:100510000000001C000000A700000018000650A901 -:1005200000000002040025BB00000018000610AA0D -:1005300000000000040075BC00000002000075BB54 -:1005400000000000000075BC00000006000900006B -:10055000000000020009000000000006000D8002FB -:10056000000000020000500000000002000078219E -:100570000000000000007800000000020000782168 -:10058000000000000000780000000002016650003A -:1005900000000002000A000000000002000671CC0A -:1005A000000000020286F1CD00000010000000B73C -:1005B00000000000210070000000001C000000BED0 -:1005C000000000020006500000000002000A0000C7 -:1005D000000000020006100000000002000B0000F6 -:1005E000000000023806700000000004000A00BA93 -:1005F0000000000020007000000000020120000048 -:10060000000000022007700000000002012000002E -:100610000000000020007000000000020006100032 -:10062000000000020120751B000000028040750AD6 -:10063000000000028040750B000000020011000065 -:1006400000000002000380F10000001C000000D147 -:1006500000000018000610AA00000002844075BDCA -:1006600000000018000610A900000002840075BBFD -:1006700000000018000610AA00000002844075BCAB -:1006800000000004000000D400000002804075BD9E -:1006900000000002800075BB00000002804075BCB5 -:1006A0000000000200108000000000020140000075 -:1006B0000000000C006000D80000002020C0700086 -:1006C00000000012000000DA0000000600800000B8 -:1006D000000000060080751D00000002000025BB20 -:1006E00000000004000040D4000000020000775C1D -:1006F0000000000200A05000000000020066100090 -:10070000000000200460275D0000000000004000A1 -:1007100000000002000079990000000200A05000D3 -:100720000000000200661000000000200460299B09 -:1007300000000000000040000000000201E008305E -:1007400000000000210070000000000200005000C6 -:10075000000000020003805600000002040025E0B3 -:1007600000000000000075E1000000000000000132 -:1007700000000002000380ED0000000004007394FC -:100780000000000000000000000000000000000069 -:1007900000000002000078C400000002000078C5DC -:1007A00000000002000078C600000002000079246A -:1007B00000000002000079250000000200007926F8 -:1007C00000000004000000F2000000020000792494 -:1007D00000000002000079250000000200007926D8 -:1007E00000000004000000F900000000000000000C -:1007F00000000000000000000000000000000000F9 -:00000001FF -/* production radeon ucode r1xx-r6xx */ diff --git a/firmware/radeon/R300_cp.bin.ihex b/firmware/radeon/R300_cp.bin.ihex deleted file mode 100644 index d307d56882c9..000000000000 --- a/firmware/radeon/R300_cp.bin.ihex +++ /dev/null @@ -1,130 +0,0 @@ -:10000000000000004200E000000000004000E000AE -:1000100000000008000000AE00000008000000B270 -:100020000000000067554B4A000000004A4A447532 -:100030000000000055527D83000000004A8C8B6553 -:10004000000000004AEF4AF6000000004AE14A4A78 -:1000500000000000E497979700000000DB4AEBDD0A -:10006000000000009CCC4A4A00000000D1989898FB -:10007000000000004A0F9AD600000004000CA00007 -:1000800000000038000D0012000000040000E8B479 -:1000900000000038000D0014000000040000E8B665 -:1000A00000000038000D0016000000040000E854B5 -:1000B00000000038000D0018000000040000E855A2 -:1000C00000000038000D001A000000040000E8568F -:1000D00000000038000D001C000000040000E8577C -:1000E00000000038000D001E000000040000E8249D -:1000F00000000038000D0020000000040000E8258A -:1001000000000038000D0022000000040000E8306C -:1001100000000038000D0024000000040000F0C0C2 -:1001200000000038000D0026000000040000F0C1AF -:1001300000000038000D0028000000040000F0411D -:1001400000000038000D002A000000040000F184C7 -:1001500000000038000D002C000000040000F185B4 -:1001600000000038000D002E000000040000F186A1 -:1001700000000038000D0030000000040000F1878E -:1001800000000038000D0032000000040000F18083 -:1001900000000038000D0034000000040000F3935C -:1001A00000000038000D0036000000040000F38A53 -:1001B00000000038000D0038000000040000F38E3D -:1001C000000000040000E821000000040140A0003D -:1001D00000000018000000430000000400CCE8000C -:1001E00000000004001B000100000004080048009B -:1001F00000000004001B000100000004080048008B -:1002000000000004001B000100000004080048007A -:10021000000000080000003A000000000000A000FC -:10022000000000042000451D000000040000E580DF -:1002300000000004000CE581000000040800458077 -:1002400000000004000CE5810000000800000047E9 -:10025000000000000000A00000000004000C2000CE -:10026000000000040000E50E000000040003200070 -:10027000000000280002205100000024000000516E -:10028000000000040800450F000000080000A04B1B -:10029000000000040000E565000000040000E566C1 -:1002A00000000008000000520000000403CCA5B4C8 -:1002B00000000004054320000000000400022000AC -:1002C000000000304CCCE05E0000000408274565CB -:1002D000000000300000005E0000000408004564DB -:1002E000000000040000E566000000080000005562 -:1002F00000000010008020610000000400202000A9 -:1003000000000004001B00FF00000010010000645A -:1003100000000004001F200000000004001C00FF7B -:100320000000000C00000000000000300000008011 -:100330000000000800000055000000040000E57601 -:1003400000000004000CA0000000000400012000D8 -:100350000000000400082000000000041800650EE2 -:10036000000000040009200000000004000A200032 -:1003700000000004000F0000000000040040000026 -:100380000000001800000074000000040000E56395 -:10039000000000C200C0E5F900000008000000698C -:1003A000000000080000A069000000040000E576DD -:1003B000000000040000E577000000040000E50EE6 -:1003C000000000040000E50F000000040140A00050 -:1003D0000000001800000077000000C200C0E5F92E -:1003E0000000000800000077000000040014E50E83 -:1003F000000000040040E50F0000000800C0007A83 -:10040000000000040000E570000000040000E57139 -:100410000000000C0000E572000000040000A000D5 -:10042000000000040140A000000000040000E56896 -:1004300000000004000C20000000001800000084F0 -:1004400000000004000B00000000000418C0E5627A -:1004500000000008000000860000000800C00085C1 -:1004600000000004000700E30000003800000092D4 -:1004700000000030000CA09400000004080045BB00 -:1004800000000030000C2095000000000800E5BCD2 -:10049000000000040000E5BB000000000000E5BC17 -:1004A0000000000C00120000000000040012000018 -:1004B0000000000C001B0002000000040000A0006F -:1004C000000000040000E821000000000000E80037 -:1004D000000000040000E821000000000000E82EF9 -:1004E0000000000402CCA000000000040014000082 -:1004F00000000004000CE1CC00000004050DE1CD7B -:10050000000000040040000000000018000000A4EB -:100510000000000400C0A00000000008000000A1CE -:1005200000000020000000A6000000004200E000E3 -:1005300000000038000000AD00000004000CA00026 -:10054000000000040014000000000004000C200063 -:10055000000000040016000000000004700CE00021 -:1005600000000008001400A9000000004000E000A6 -:10057000000000040240000000000004400EE00003 -:100580000000000402400000000000004000E00005 -:1005900000000004000C2000000000040240E51BE5 -:1005A000000000050080E50A000000050080E50B62 -:1005B000000000040022000000000004000700E327 -:1005C00000000038000000C000000030000C209542 -:1005D000000000050880E5BD00000030000C2094FC -:1005E000000000050800E5BB00000030000C20956D -:1005F000000000050880E5BC00000008000000C302 -:10060000000000050080E5BD000000050000E5BB1E -:10061000000000050080E5BC00000004002100008F -:1006200000000004028000000000001800C000C7A5 -:10063000000000404180E00000000024000000C9EC -:100640000000000C010000000000000C0100E51D8E -:1006500000000004000045BB00000008000080C34B -:10066000000000040000F3CE000000040140A000E0 -:100670000000000400CC20000000004008C053CF60 -:100680000000000000008000000000040000F3D221 -:10069000000000040140A0000000000400CC200085 -:1006A0000000004008C053D300000000000080009C -:1006B000000000040000F39D000000040140A000C1 -:1006C0000000000400CC20000000004008C0539E41 -:1006D00000000000000080000000000403C008309B -:1006E000000000004200E000000000040000A00044 -:1006F00000000004200045E0000000000000E5E1EB -:10070000000000000000000100000004000700E0FD -:10071000000000000800E39400000000000000005A -:10072000000000040000E8C4000000040000E8C568 -:10073000000000040000E8C6000000040000E928F2 -:10074000000000040000E929000000040000E92A7C -:1007500000000008000000E4000000040000E92898 -:10076000000000040000E929000000040000E92A5C -:1007700000000008000000EB0000000402C02000A0 -:10078000000000040006000000000034000000F338 -:1007900000000008000000F00000000400008000DD -:1007A00000000000C000E0000000000000000000A9 -:1007B00000000004000C200000000004001D0018D0 -:1007C00000000004001A000100000034000000FBDB -:1007D000000000080000004A000000080500A04AD0 -:1007E0000000000000000000000000000000000009 -:1007F00000000000000000000000000000000000F9 -:00000001FF -/* production radeon ucode r1xx-r6xx */ diff --git a/firmware/radeon/R420_cp.bin.ihex b/firmware/radeon/R420_cp.bin.ihex deleted file mode 100644 index 3815891275f9..000000000000 --- a/firmware/radeon/R420_cp.bin.ihex +++ /dev/null @@ -1,130 +0,0 @@ -:10000000000000004200E000000000004000E000AE -:100010000000000800000099000000080000009D9A -:10002000000000004A554B4A000000004A4A44675D -:100030000000000055526F75000000004A7E7D658B -:1000400000000000D9D3DFF6000000004AC54A4A8C -:1000500000000000C882828200000000BF4ACFC1B9 -:100060000000000087B04A4A00000000B583838387 -:10007000000000004A0F85BA00000004000CA00038 -:1000800000000038000D0012000000040000E8B479 -:1000900000000038000D0014000000040000E8B665 -:1000A00000000038000D0016000000040000E854B5 -:1000B00000000038000D0018000000040000E855A2 -:1000C00000000038000D001A000000040000E8568F -:1000D00000000038000D001C000000040000E8577C -:1000E00000000038000D001E000000040000E8249D -:1000F00000000038000D0020000000040000E8258A -:1001000000000038000D0022000000040000E8306C -:1001100000000038000D0024000000040000F0C0C2 -:1001200000000038000D0026000000040000F0C1AF -:1001300000000038000D0028000000040000F0411D -:1001400000000038000D002A000000040000F184C7 -:1001500000000038000D002C000000040000F185B4 -:1001600000000038000D002E000000040000F186A1 -:1001700000000038000D0030000000040000F1878E -:1001800000000038000D0032000000040000F18083 -:1001900000000038000D0034000000040000F3935C -:1001A00000000038000D0036000000040000F38A53 -:1001B00000000038000D0038000000040000F38E3D -:1001C000000000040000E821000000040140A0003D -:1001D00000000018000000430000000400CCE8000C -:1001E00000000004001B000100000004080048009B -:1001F00000000004001B000100000004080048008B -:1002000000000004001B000100000004080048007A -:10021000000000080000003A000000000000A000FC -:10022000000000042000451D000000040000E580DF -:1002300000000004000CE581000000040800458077 -:1002400000000004000CE5810000000800000047E9 -:10025000000000000000A00000000004000C2000CE -:10026000000000040000E50E000000040003200070 -:10027000000000280002205100000024000000516E -:10028000000000040800450F000000080000A04B1B -:10029000000000040000E565000000040000E566C1 -:1002A00000000008000000520000000403CCA5B4C8 -:1002B00000000004054320000000000400022000AC -:1002C000000000304CCCE05E0000000408274565CB -:1002D000000000300000005E0000000408004564DB -:1002E000000000040000E566000000080000005562 -:1002F00000000010008020610000000400202000A9 -:1003000000000004001B00FF00000010010000645A -:1003100000000004001F200000000004001C00FF7B -:100320000000000C0000000000000030000000721F -:100330000000000800000055000000040000E57601 -:10034000000000040000E577000000040000E50E56 -:10035000000000040000E50F000000040140A000C0 -:100360000000001800000069000000C200C0E5F9AC -:100370000000000800000069000000040014E50E01 -:10038000000000040040E50F0000000800C0006C01 -:10039000000000040000E570000000040000E571AA -:1003A0000000000C0000E572000000040000A00046 -:1003B000000000040140A000000000040000E56807 -:1003C00000000004000C200000000018000000766F -:1003D00000000004000B00000000000418C0E562EB -:1003E00000000008000000780000000800C000774E -:1003F00000000004000700C7000000380000008073 -:10040000000000040000E5BB000000000000E5BCA7 -:10041000000000040000A000000000040000E8212B -:10042000000000000000E800000000040000E821D7 -:10043000000000000000E82E0000000402CCA00034 -:10044000000000040014000000000004000CE1CCD7 -:1004500000000004050DE1CD000000040040000094 -:10046000000000180000008F0000000400C0A00081 -:10047000000000080000008C000000200000009137 -:10048000000000004200E00000000038000000987A -:1004900000000004000CA000000000040014000094 -:1004A00000000004000C2000000000040016000002 -:1004B00000000004700CE00000000008001400942C -:1004C000000000004000E0000000000402400000C6 -:1004D00000000004400EE0000000000402400000A4 -:1004E000000000004000E00000000004000C2000BC -:1004F000000000040240E51B000000050080E50A42 -:10050000000000050080E50B000000040022000050 -:1005100000000004000700C700000038000000A42D -:10052000000000050080E5BD000000050000E5BBFF -:10053000000000050080E5BC000000040021000070 -:1005400000000004028000000000001800C000ABA2 -:10055000000000404180E00000000024000000ADE9 -:100560000000000C010000000000000C0100E51D6F -:1005700000000004000045BB00000008000080A748 -:10058000000000040000F3CE000000040140A000C1 -:100590000000000400CC20000000004008C053CF41 -:1005A0000000000000008000000000040000F3D202 -:1005B000000000040140A0000000000400CC200066 -:1005C0000000004008C053D300000000000080007D -:1005D000000000040000F39D000000040140A000A2 -:1005E0000000000400CC20000000004008C0539E22 -:1005F00000000000000080000000000403C008307C -:10060000000000004200E000000000040000A00024 -:1006100000000004200045E0000000000000E5E1CB -:10062000000000000000000100000004000700C4FA -:10063000000000000800E39400000000000000003B -:10064000000000040000E8C4000000040000E8C549 -:10065000000000040000E8C6000000040000E928D3 -:10066000000000040000E929000000040000E92A5D -:1006700000000008000000C8000000040000E92895 -:10068000000000040000E929000000040000E92A3D -:1006900000000008000000CF0000000402C020009D -:1006A000000000040006000000000034000000D735 -:1006B00000000008000000D40000000400008000DA -:1006C00000000000C000E000000000040000E1CCD9 -:1006D000000000040500E1CD00000004000CA000B3 -:1006E00000000034000000DE00000008000000DA16 -:1006F000000000000000A000000000040019E1CC90 -:1007000000000004001B0001000000040500A00020 -:1007100000000004080041CD00000004000CA0000F -:1007200000000034000000FB000000080000004A48 -:1007300000000000000000000000000000000000B9 -:1007400000000000000000000000000000000000A9 -:100750000000000000000000000000000000000099 -:100760000000000000000000000000000000000089 -:100770000000000000000000000000000000000079 -:100780000000000000000000000000000000000069 -:100790000000000000000000000000000000000059 -:1007A0000000000000000000000000000000000049 -:1007B00000000004000C200000000004001D0018D0 -:1007C00000000004001A000100000034000000FBDB -:1007D000000000080000004A000000080500A04AD0 -:1007E0000000000000000000000000000000000009 -:1007F00000000000000000000000000000000000F9 -:00000001FF -/* production radeon ucode r1xx-r6xx */ diff --git a/firmware/radeon/R520_cp.bin.ihex b/firmware/radeon/R520_cp.bin.ihex deleted file mode 100644 index 372ff82a0143..000000000000 --- a/firmware/radeon/R520_cp.bin.ihex +++ /dev/null @@ -1,130 +0,0 @@ -:10000000000000004200E000000000004000E000AE -:100010000000000800000099000000080000009D9A -:10002000000000004A554B4A000000004A4A44675D -:100030000000000055526F75000000004A7E7D658B -:1000400000000000E0DAE6F6000000004AC54A4A77 -:1000500000000000C882828200000000BF4ACFC1B9 -:100060000000000087B04AD500000000B5838383FC -:10007000000000004A0F85BA00000004000CA00038 -:1000800000000038000D0012000000040000E8B479 -:1000900000000038000D0014000000040000E8B665 -:1000A00000000038000D0016000000040000E854B5 -:1000B00000000038000D0018000000040000E855A2 -:1000C00000000038000D001A000000040000E8568F -:1000D00000000038000D001C000000040000E8577C -:1000E00000000038000D001E000000040000E8249D -:1000F00000000038000D0020000000040000E8258A -:1001000000000038000D0022000000040000E8306C -:1001100000000038000D0024000000040000F0C0C2 -:1001200000000038000D0026000000040000F0C1AF -:1001300000000038000D0028000000040000E0006E -:1001400000000038000D002A000000040000E0005C -:1001500000000038000D002C000000040000E0004A -:1001600000000038000D002E000000040000E00038 -:1001700000000038000D0030000000040000E00026 -:1001800000000038000D0032000000040000F18083 -:1001900000000038000D0034000000040000F3935C -:1001A00000000038000D0036000000040000F38A53 -:1001B00000000038000D0038000000040000F38E3D -:1001C000000000040000E821000000040140A0003D -:1001D00000000018000000430000000400CCE8000C -:1001E00000000004001B000100000004080048009B -:1001F00000000004001B000100000004080048008B -:1002000000000004001B000100000004080048007A -:10021000000000080000003A000000000000A000FC -:10022000000000042000451D000000040000E580DF -:1002300000000004000CE581000000040800458077 -:1002400000000004000CE5810000000800000047E9 -:10025000000000000000A00000000004000C2000CE -:10026000000000040000E50E000000040003200070 -:10027000000000280002205100000024000000516E -:10028000000000040800450F000000080000A04B1B -:10029000000000040000E565000000040000E566C1 -:1002A00000000008000000520000000403CCA5B4C8 -:1002B00000000004054320000000000400022000AC -:1002C000000000304CCCE05E0000000408274565CB -:1002D000000000300000005E0000000408004564DB -:1002E000000000040000E566000000080000005562 -:1002F00000000010008020610000000400202000A9 -:1003000000000004001B00FF00000010010000645A -:1003100000000004001F200000000004001C00FF7B -:100320000000000C0000000000000030000000721F -:100330000000000800000055000000040000E57601 -:10034000000000040000E577000000040000E50E56 -:10035000000000040000E50F000000040140A000C0 -:100360000000001800000069000000C200C0E5F9AC -:100370000000000800000069000000040014E50E01 -:10038000000000040040E50F0000000800C0006C01 -:10039000000000040000E570000000040000E571AA -:1003A0000000000C0000E572000000040000A00046 -:1003B000000000040140A000000000040000E56807 -:1003C00000000004000C200000000018000000766F -:1003D00000000004000B00000000000418C0E562EB -:1003E00000000008000000780000000800C000774E -:1003F00000000004000700C7000000380000008073 -:10040000000000040000E5BB000000000000E5BCA7 -:10041000000000040000A000000000040000E8212B -:10042000000000000000E800000000040000E821D7 -:10043000000000000000E82E0000000402CCA00034 -:10044000000000040014000000000004000CE1CCD7 -:1004500000000004050DE1CD000000040040000094 -:10046000000000180000008F0000000400C0A00081 -:10047000000000080000008C000000200000009137 -:10048000000000004200E00000000038000000987A -:1004900000000004000CA000000000040014000094 -:1004A00000000004000C2000000000040016000002 -:1004B00000000004700CE00000000008001400942C -:1004C000000000004000E0000000000402400000C6 -:1004D00000000004400EE0000000000402400000A4 -:1004E000000000004000E00000000004000C2000BC -:1004F000000000040240E51B000000050080E50A42 -:10050000000000050080E50B000000040022000050 -:1005100000000004000700C700000038000000A42D -:10052000000000050080E5BD000000050000E5BBFF -:10053000000000050080E5BC000000040021000070 -:1005400000000004028000000000001800C000ABA2 -:10055000000000404180E00000000024000000ADE9 -:100560000000000C010000000000000C0100E51D6F -:1005700000000004000045BB00000008000080A748 -:10058000000000040000F3CE000000040140A000C1 -:100590000000000400CC20000000004008C053CF41 -:1005A0000000000000008000000000040000F3D202 -:1005B000000000040140A0000000000400CC200066 -:1005C0000000004008C053D300000000000080007D -:1005D000000000040000F39D000000040140A000A2 -:1005E0000000000400CC20000000004008C0539E22 -:1005F00000000000000080000000000403C008307C -:10060000000000004200E000000000040000A00024 -:1006100000000004200045E0000000000000E5E1CB -:10062000000000000000000100000004000700C4FA -:10063000000000000800E39400000000000000003B -:10064000000000040000E8C4000000040000E8C549 -:10065000000000040000E8C6000000040000E928D3 -:10066000000000040000E929000000040000E92A5D -:1006700000000008000000C8000000040000E92895 -:10068000000000040000E929000000040000E92A3D -:1006900000000008000000CF00000000DEADBEEF4B -:1006A000000000000000011600000004000700D355 -:1006B00000000004080050E700000004000700D418 -:1006C000000000040800401C000000000000E01DC5 -:1006D0000000000402C0200000000004000600002A -:1006E00000000034000000DE00000008000000DB15 -:1006F000000000040000800000000000C000E000D6 -:10070000000000040000E1CC000000040500E1CD81 -:1007100000000004000CA00000000034000000E510 -:1007200000000008000000E1000000000000A00040 -:10073000000000040019E1CC00000004001B0001CF -:10074000000000040500A00000000004080041CDE6 -:1007500000000004000CA00000000034000000FBBA -:10076000000000080000004A000000000000000037 -:100770000000000000000000000000000000000079 -:100780000000000000000000000000000000000069 -:100790000000000000000000000000000000000059 -:1007A0000000000000000000000000000000000049 -:1007B00000000004000C200000000004001D0018D0 -:1007C00000000004001A000100000034000000FBDB -:1007D000000000080000004A000000080500A04AD0 -:1007E0000000000000000000000000000000000009 -:1007F00000000000000000000000000000000000F9 -:00000001FF -/* production radeon ucode r1xx-r6xx */ diff --git a/firmware/radeon/R600_me.bin.ihex b/firmware/radeon/R600_me.bin.ihex deleted file mode 100644 index 30d4c14a308d..000000000000 --- a/firmware/radeon/R600_me.bin.ihex +++ /dev/null @@ -1,1345 +0,0 @@ -:1000000000000000C020040000000000000000000C -:1000100000A0000A000000000000FFFF00284621A9 -:100020000000000000000000D900480000000000AF -:1000300000000000C02004000000000000000000DC -:1000400000A0000A000000000000000000E0000026 -:100050000000000000010000C02946200000000050 -:1000600000000000D900480000000000000000006F -:10007000C0200400000000000000000000A0000AF2 -:10008000000000008100000000204411000000007A -:1000900000000001002048110000000000042004BE -:1000A0000060441100000614000000000060000021 -:1000B000000005B20000000000600000000005C55F -:1000C00000000000C02008000000000000000F0039 -:1000D000002816220000000000000008002116255C -:1000E0000000000000000020002036250000000075 -:1000F0008D000000002044110000000000000004FA -:10010000002F022500000000000000000CE00000AD -:1001100000000018004120000040481100000019B4 -:100120000042200000204811000000008E00000066 -:1001300000204411000000000000003100204A2D82 -:1001400000000000900000000020441100000000AA -:100150000000000000204805000000000000000C26 -:1001600000211622000000000000000300281625D0 -:10017000000000000000001900211A220000000009 -:100180000000000400281A26000000000000000003 -:10019000002914C5000000000000002100203625C1 -:1001A0000000000000000000003A140200000000FF -:1001B00000000016002116250000000000000003CA -:1001C00000281625000000000000001D00200E2D54 -:1001D00000000000FFFFFFFC00280E2300000000CD -:1001E00000000000002914A3000000000000001D12 -:1001F00000203625000000000000800000280E22AC -:10020000000000000000000700220E230000000094 -:10021000000000000029386E0000000020000000EF -:1002200000280E22000000000000000600210E231E -:1002300000000000000000000029386E00000000EF -:100240000000000000220222000000000000000068 -:1002500014E0000000000038000000002EE0000064 -:1002600000000035000000002CE000000000003716 -:100270000000000000400E2D0000003900000008C2 -:1002800000200E2D00000000000000090040122D8B -:10029000000000460000000100400E2D0000003963 -:1002A00000000000C0200C0000000000003FFFFC28 -:1002B0000028122300000000000000020022122487 -:1002C000000000000000001F00211E2300000000AD -:1002D0000000000014E000000000003E00000008E4 -:1002E00000401C11000000410000000D00201E2DE8 -:1002F000000000000000000F00281E270000000082 -:100300000000000300221E27000000007FC0000044 -:1003100000281A23000000000000001400211A2603 -:10032000000000000000000100331A260000000059 -:100330000000000800221A26000000000000000053 -:1003400000290CC700000000000000300020362407 -:100350000000000000007F000028122100000000C3 -:1003600000001400002F0224000000000000000024 -:100370000CE000000000004B0000000100290E23EB -:1003800000000000000000100020362300000000E4 -:100390000000E0000020441100000000FFF8000011 -:1003A00000294A230000000000000000003A2C024F -:1003B000000000000000000200220E2B00000000E0 -:1003C000FC00000000280E230000000000000011C7 -:1003D000002036230000000000001FFF00294A23F0 -:1003E000000000000000003000204A2D0000000046 -:1003F0000000000000204811000000000000003252 -:1004000000200E2D00000000060A020000294A23E9 -:100410000000000000000000002048110000000063 -:100420000000000000204811000000000000000152 -:1004300000210222000000000000000014E0000083 -:1004400000000061000000002EE000000000005FDE -:10045000000000002CE000000000005E0000000032 -:1004600000400E2D000000620000000100400E2D33 -:10047000000000620000000A00200E2D00000000B5 -:100480000000000B0040122D0000006A0000000078 -:10049000C0200C0000000000003FFFFC00281223D9 -:1004A00000000000000000020022122400000000F2 -:1004B0007FC0000000281623000000000000001488 -:1004C0000021162500000000000000010033162561 -:1004D000000000008000000000280E230000000043 -:1004E0000000000000290CA3000000003FFFFC00FA -:1004F00000290E23000000000000001F00211E2321 -:10050000000000000000000014E000000000006D8A -:100510000000010000401C11000000700000000DF0 -:1005200000201E2D00000000000000F000281E2703 -:10053000000000000000000400221E270000000050 -:100540008100000000204411000000000000000DA8 -:100550000020481100000000FFFFF0FF00281A30C3 -:10056000000000000000A02800204411000000004E -:1005700000000000002948E6000000000000A0186C -:1005800000204411000000003FFFFFFF00284A2325 -:10059000000000000000A010002044110000000036 -:1005A0000000000000204804000000000000002DB2 -:1005B0000020162D0000000000000000002F00A306 -:1005C00000000000000000000CC0000000000080DF -:1005D0000000002E0020162D00000000000000008A -:1005E000002F00A400000000000000000CC000006C -:1005F00000000081000000000040000000000087B3 -:100600000000002D00203623000000000000002E16 -:1006100000203624000000000000001D00201E2DD8 -:10062000000000000000000200210227000000007E -:100630000000000014E0000000000087000000003F -:1006400000600000000005ED0000000000600000F8 -:10065000000005E10000000200210E220000000061 -:100660000000000014C000000000008A0000001814 -:10067000C040362000000090000000002EE0000086 -:100680000000008E000000002CE000000000008D43 -:100690000000000200400E2D0000008F000000034B -:1006A00000400E2D0000008F0000000C00200E2DD9 -:1006B00000000000000000180020362300000000A9 -:1006C0000000000300210E220000000000000000D6 -:1006D00014C00000000000950000A00C0020441190 -:1006E0000000000000000000C020480000000000E2 -:1006F00000000000C04048000000009D0000A00C69 -:1007000000204411000000000000000000204811FB -:1007100000000000000000002EE000000000009B30 -:10072000000000002CE000000000009A0000000221 -:1007300000400E2D0000009C0000000300400E2D24 -:100740000000009C0000000C00200E2D00000000A6 -:10075000000000000020480300000000000000002E -:10076000003A0C0200000000003F000000280E23A9 -:10077000000000000000001000210E230000000017 -:100780000000001300203623000000000000001EBF -:100790000021022B000000000000000014C0000037 -:1007A000000000A40000001CC02036200000000053 -:1007B0000000001F0021022B0000000000000000CC -:1007C00014C00000000000A70000001BC02036205D -:1007D000000000000000000800210E2B00000000B7 -:1007E0000000007F00280E23000000000000000031 -:1007F000002F022300000000000000000CE00000B9 -:10080000000000DB000000002700000000000000E6 -:1008100000000000006000000000028C8100000069 -:1008200000204411000000000000000600204811D4 -:10083000000000000000000C00221E30000000003C -:100840009980000000204411000000000000000416 -:100850000020122D000000000000000800221224D9 -:10086000000000000000001000201811000000002F -:100870000000000000291CE400000000000000004F -:1008800000604807000001289B0000000020441180 -:1008900000000000000000000020480200000000EE -:1008A0009C00000000204411000000000000000037 -:1008B0000033146F000000000000000100333E23ED -:1008C0000000000000000000D90048000000000007 -:1008D0000000000000203C05000000008100000036 -:1008E00000204411000000000000000E002048110C -:1008F00000000000000000000020101000000000B8 -:100900000000E00700204411000000000000000F7C -:100910000021022B000000000000000014C00000B5 -:10092000000000C500F8FF0800204811000000008A -:100930009800000000404811000000D6000000F0C0 -:1009400000280E2200000000000000A0002F02235B -:1009500000000000000000000CC00000000000D4F7 -:100960000000001300200E2D000000000000000118 -:10097000002F022300000000000000000CE0000037 -:10098000000000CF00000002002F02230000000042 -:10099000000000000CE00000000000CE00003F005E -:1009A00000400C11000000D000001F0000400C119E -:1009B000000000D000000F0000200C11000000001B -:1009C0000038000900294A23000000003F00000011 -:1009D00000280E2B000000000000000200220E2361 -:1009E000000000000000000700494A23000000D674 -:1009F00000380F09002048110000000068000007BF -:100A000000204811000000000000000800214A27D3 -:100A1000000000000000000000204811000000005D -:100A2000060A020000294A2400000000000000001D -:100A300000204811000000000000000000204811C4 -:100A4000000000000000A20200204411000000008D -:100A500000FF000000284A220000000000000030D3 -:100A600000200E2D000000000000002E0020122D9E -:100A70000000000000000000002F008300000000C4 -:100A8000000000000CE00000000000E30000000097 -:100A900000600000000005E70000000000400000CA -:100AA000000000E40000000000600000000005EA13 -:100AB000000000070020222D0000000000000005BB -:100AC00000220E22000000000010000000280E236B -:100AD0000000000000000000002920680000000065 -:100AE00000000000003A0C0200000000000000EFCF -:100AF00000280E23000000000000000000292068EC -:100B0000000000000000001D00200E2D000000006D -:100B1000000000030021022300000000000000008C -:100B200014E00000000000F10000000B002102288A -:100B3000000000000000000014C00000000000F1F0 -:100B40000000040000292228000000000000001A14 -:100B500000203628000000000000001C00210E22AA -:100B6000000000000000000014C00000000000F6BB -:100B70000000A30C00204411000000000000000051 -:100B800000204811000000000000001E00210E227D -:100B9000000000000000000014C00000000001047C -:100BA0000000A30F0020441100000000000000130B -:100BB00000200E2D0000000000000001002F022385 -:100BC00000000000000000000CC00000000000FD5C -:100BD000FFFFFFFF00404811000001040000000279 -:100BE000002F022300000000000000000CC00000E5 -:100BF000000001000000FFFF004048110000010458 -:100C000000000004002F022300000000000000008C -:100C10000CC0000000000103000000FF004048116C -:100C20000000010400000001002048110000000045 -:100C30000002C40000204411000000000000001F5A -:100C400000210E22000000000000000014C000007F -:100C50000000010B0000001040210E2000000000E9 -:100C600000000019002036230000000000000018DA -:100C700040224A200000000000000010C0424A202C -:100C80000000010D0000000000200C110000000019 -:100C900000000019002036230000000000000000C2 -:100CA0000020481100000000000000000020481152 -:100CB000000000000000000A0020101100000000E9 -:100CC00000000000002F02240000000000000000CF -:100CD0000CE000000000011400000000002048119A -:100CE0000000000000000001005312240000011069 -:100CF000FFBFFFFF00283A2E000000000000001B8D -:100D000000210222000000000000000014C00000CA -:100D100000000127810000000020441100000000B5 -:100D20000000000D00204811000000000000001825 -:100D300000220E3000000000FC00000000280E23FE -:100D400000000000810000000020441100000000AD -:100D50000000000E0020481100000000000000000C -:100D600000201010000000000000E00E00204411E0 -:100D70000000000007F8FF080020481100000000F4 -:100D80000000000000294A230000000000000024A9 -:100D900000201E2D000000000000000800214A274E -:100DA00000000000000000000020481100000000CA -:100DB000060A020000294A2400000000000000008A -:100DC0000020481100000000000000000020481131 -:100DD0000000000000000000008000000000000093 -:100DE000810000000020441100000000000000010C -:100DF00000204811000000000000217C0020441168 -:100E000000000000008000000020481100000000E9 -:100E1000000000000020480600000000000000085C -:100E200000214A2700000000000000001700000019 -:100E3000000000000004217F00604411000006143F -:100E40000000001F00210230000000000000000030 -:100E500014C00000000006130000000400404C1104 -:100E60000000012E00000000006000000000000BE8 -:100E70000000000000600411000002FE00000000FD -:100E800000200411000000000000000000600811B4 -:100E90000000019F00000000006000000000015100 -:100EA0000000FFFF40280E2000000000000000109E -:100EB000C0211220000000000000FFFF4028062093 -:100EC0000000000000000010C0210A200000000007 -:100ED0000000000000341461000000000000000069 -:100EE00000741882000002A40001A1FD00604411FA -:100EF000000002C900003FFF002F022F0000000089 -:100F0000000000000CC000000000013800000000DC -:100F1000C04004000000000100000000006000006C -:100F20000000000B0000000000600411000002FE41 -:100F3000000000000020041100000000000000007C -:100F4000006008110000019F00003FFF002F022FEA -:100F500000000000000000000CE0000000000000A5 -:100F600000000000006000000000015100000010BF -:100F700040210E20000000000000FFFFC0281220CA -:100F800000000000000000104021162000000000BA -:100F90000000FFFFC0681A20000002A40001A1FDAC -:100FA00000604411000002C900003FFF002F022F23 -:100FB00000000000000000000CC00000000001491B -:100FC00000000000C0400400000000010000225C9E -:100FD00000204411000000000000000100300A2F32 -:100FE000000000000000000100210A2200000000B3 -:100FF0000000000300384A220000000000002256D2 -:1010000000204411000000000000001A00204811D8 -:10101000000000000000A1FC0020441100000000BE -:1010200000000001008048110000000000000000E6 -:10103000006000000000000B0000000000600000E5 -:101040000000017C00000000006000000000018D35 -:1010500000003FFF002F022F0000000000000000F2 -:101060000CE00000000000000000000000202C0840 -:10107000000000000000000000202411000000001B -:10108000000000000020281100000000000022568F -:10109000002044110000000000000016002048114C -:1010A000000000000000225C00204411000000004D -:1010B00000000003002048110000000093800000A1 -:1010C00000204411000000000000000200221E2940 -:1010D0000000000000000000007048EB00000189E3 -:1010E0000000000000600000000002A400000001F9 -:1010F000403306200000000000000000C03024093A -:101100000000000000003FFF002F022F0000000041 -:10111000000000000CE000000000000000000000E3 -:10112000006000000000028C9500000000204411C7 -:101130000000000000000000002F0221000000005D -:10114000000000000CE0000000000173000000003F -:10115000C0204800000000000000000100530621EC -:101160000000016F92000000002044110000000008 -:1011700000000000C0604800000001840001A1FDE3 -:101180000020441100000000000000130020062D84 -:1011900000000000000000000078042A000002E4C3 -:1011A00000000000002028090000000000003FFFB0 -:1011B000002F022F00000000000000000CC0000003 -:1011C0000000016500000000C040040000000001B4 -:1011D0000000021000600411000002FE00003FFF4A -:1011E000002F022F00000000000000000CE00000B3 -:1011F000000001810000001BC0203620000000001C -:101200000000001CC0203620000000003F800000CD -:1012100000200411000000004600000000600811DA -:101220000000019F0000000000800000000000009E -:101230000000A1FC002044110000000000003FFF5E -:10124000002F022F00000000000000000CC0000072 -:10125000000001880000000100804811000000002B -:101260000000002100804811000000000000FFFF86 -:1012700040280E200000000000000010C0211220B5 -:10128000000000000000FFFF4028162000000000C2 -:1012900000000010C0811A20000000008100000042 -:1012A000002044110000000000000006002048114A -:1012B000000000000000000800221E3000000000B6 -:1012C0000000003200201A2D000000000000E000A5 -:1012D0000020441100000000FFFBFF09002048111E -:1012E00000000000000000110020222D000000007E -:1012F00000001FFF00294A2800000000000000062F -:101300000020222D0000000000000000002920E83D -:10131000000000000000000000204808000000005D -:10132000000000000020481100000000060A020032 -:1013300000294A260000000000000000002048119B -:101340000000000000000000002048110000000024 -:10135000000001000020181100000000000000083B -:1013600000621E28000001280000000800822228D8 -:10137000000000000002C000002044110000000036 -:101380000000001B00600E2D000001AA0000001CE0 -:1013900000600E2D000001AA0000C00800204411CA -:1013A000000000000000001D00200E2D00000000C5 -:1013B0000000000014C00000000001A600000000B2 -:1013C000002004110000000000000000002048017F -:1013D000000000003900000000204811000000005B -:1013E0000000000000204811000000000000000084 -:1013F00000804802000000000000002000202E2D88 -:101400000000000000000000003B0D630000000031 -:101410000000000800224A23000000000000001025 -:1014200000224A23000000000000001800224A2386 -:1014300000000000000000000080480300000000E1 -:1014400000000000006000000000000B0000100021 -:1014500000600411000002FE0000000000200411E2 -:101460000000000000000000006008110000019F63 -:10147000000000070021062F0000000000000019F6 -:1014800000200A2D000000000000000100202C11A7 -:10149000000000000000FFFF4028222000000000A4 -:1014A0000000000F002622280000000000000010AD -:1014B00040212620000000000000000F0026262901 -:1014C00000000000000000000020280200000000D2 -:1014D0000000225600204411000000000000001B04 -:1014E000002048110000000000000000002F022131 -:1014F00000000000000000000CE00000000001CD32 -:101500000000225C00204411000000000000008167 -:1015100000204811000000000000A1FC0020441140 -:101520000000000000000001002048110000000041 -:101530000000008000201C110000000000000000DE -:10154000002F022700000000000000000CE0000057 -:10155000000001C90000000000600000000001D68A -:101560000000000100531E27000001C5000000011B -:1015700000202C11000000000000001F00280A229B -:10158000000000000000001F00282A2A00000000C0 -:101590000000000100530621000001BE0000225C93 -:1015A00000204411000000000000000200304A2F1B -:1015B000000000000000A1FC002044110000000019 -:1015C00000000001002048110000000000000001A0 -:1015D00000301E2F0000000000000000002F022736 -:1015E00000000000000000000CE00000000000000F -:1015F0000000000000600000000001D600000001B3 -:1016000000531E27000001D20000FFFF40280E20DB -:10161000000000000000000F00260E230000000064 -:1016200000000010C0211220000000000000000F88 -:101630000026122400000000000000000020141109 -:10164000000000000000000000601811000002A46B -:101650000001A1FD00204411000000000000000076 -:10166000002F022B00000000000000000CE0000032 -:10167000000001E500000010002216280000000014 -:10168000FFFF000000281625000000000000FFFFFB -:1016900000281A290000000000000000002948C5A9 -:1016A00000000000000000000020480A00000000C8 -:1016B0000000000000202C110000000000000010BD -:1016C0000022162300000000FFFF0000002816255E -:1016D000000000000000FFFF00281A2400000000A6 -:1016E00000000000002948C50000000000000000C4 -:1016F00000731503000001F200000000002018052F -:10170000000000000000000000731524000001F23A -:1017100000000000002D14C50000000000000000C3 -:10172000003008A200000000000000000020480275 -:10173000000000000000000000202802000000005F -:101740000000000000202003000000000000000056 -:1017500000802404000000000000000F002102258A -:10176000000000000000000014C00000000006138C -:1017700000000000002B1405000000000000000124 -:10178000009016250000000000000000006000002E -:101790000000000B0000000000600411000002FEC9 -:1017A0000000000000200411000000000000000004 -:1017B000006008110000019F000022560020441123 -:1017C000000000000000001A00294A22000000006A -:1017D00000000000C02000000000000000003FFFEB -:1017E000002F022F00000000000000000CE00000AD -:1017F0000000000000000000C02004000000000005 -:101800000000225C002044110000000000000003E2 -:1018100000384A21000000000000A1FC0020441113 -:10182000000000000000000100204811000000003E -:101830000000FFFF40281220000000000000001000 -:10184000C0211A20000000000000FFFF40280E20E9 -:101850000000000000000010C02116200000000061 -:101860000000000000741465000002A40001A1FD46 -:1018700000604411000002C900000001003306218D -:101880000000000000000000002F02210000000006 -:10189000000000000CC000000000020600003FFF36 -:1018A000002F022F00000000000000000CC000000C -:1018B000000001FF00000000C04004000000000123 -:1018C0000000000000600000000005C500000000EE -:1018D0000040040F00000200000000000060000053 -:1018E000000005B20000000000600000000005C517 -:1018F0000000021000600411000002FE0000000061 -:10190000006000000000018D000000000060000089 -:10191000000001890000000000600000000002A437 -:1019200000000000006000000000028C93800000B6 -:1019300000204411000000000000000000204808C2 -:10194000000000009500000000204411000000008D -:1019500000000000002F022F000000000000000027 -:101960000CE000000000021F00000000C040480022 -:101970000000021C92000000002044110000000042 -:1019800000000000C02048000000000000002256B7 -:101990000020441100000000000000160020481143 -:1019A000000000000000225C002044110000000044 -:1019B0000000000300204811000000000000A1FC0E -:1019C0000020441100000000000000010020481128 -:1019D000000000000001A1FD0020441100000000F3 -:1019E0000000000000600411000002E4000000009C -:1019F000C040040000000001000000000060000082 -:101A0000000005B20000A00C0020441100000000FE -:101A100000000000C020480000000000000000009E -:101A2000C04048000000000000000000006000000E -:101A30000000000B0000001840210A2000000000F8 -:101A400000000003002F0222000000000000000040 -:101A50000AE00000000002350000001A0020222DDC -:101A600000000000000801010029222800000000F9 -:101A70000000001A00203628000000000000A30C1F -:101A8000002044110000000000000000C0204800B9 -:101A90000000000000000000C0204800000000001E -:101AA00000000000C04048000000023A00000000B2 -:101AB000006000000000000B000000100060041136 -:101AC000000002FE3F800000002004110000000022 -:101AD00000000000006008110000019F0000225C6F -:101AE0000020441100000000000000030020481105 -:101AF000000000000000000000600000000002651F -:101B00000000001D00201E2D00000000000000014C -:101B100000211E27000000000000000014E000006B -:101B2000000002530000001800201E2D00000000DD -:101B30000000FFFF00281E2700000000000000003A -:101B400000341C27000000000000000012C000004C -:101B5000000002480000000000201C1100000000EE -:101B600000000000002F00E5000000000000000061 -:101B700008C000000000024B000000000020140715 -:101B8000000000000000001800201E2D00000000D2 -:101B90000000001000211E270000000000000000CF -:101BA00000341C47000000000000000012C00000CC -:101BB000000002500000000000201C110000000086 -:101BC00000000000002F00E6000000000000000000 -:101BD00008C00000000002530000000000201807A9 -:101BE000000000000000000000600000000002AAE9 -:101BF00000002256002044110000000000000000F8 -:101C000000342023000000000000000012C000008B -:101C10000000025B000000000034204400000000CF -:101C20000000000012C000000000025A0000001670 -:101C3000004048110000025F0000001800404811F9 -:101C40000000025F0000000000342044000000009B -:101C50000000000012C000000000025E000000173B -:101C6000004048110000025F0000001900204811E8 -:101C7000000000000000A1FC002044110000000052 -:101C80000000000100204811000000000001A1FD3B -:101C900000604411000002D200003FFF002F022F1D -:101CA00000000000000000000CC000000000023F27 -:101CB00000000000C040040000000001000000100F -:101CC00040210620000000000000FFFFC0280A207D -:101CD000000000000000001040210E200000000065 -:101CE0000000FFFFC02812200000000000000010CC -:101CF00040211620000000000000FFFFC0881A20CD -:101D000000000000810000000020441100000000DD -:101D10000000000100204811000000000004200421 -:101D20000060441100000614000000000060000084 -:101D3000000005B200000000C06000000000028C3E -:101D40000000000500200A2D00000000000000082F -:101D500000220A22000000000000003400201A2D9A -:101D6000000000000000002400201E2D00000000E4 -:101D70000000700000281E27000000000000000086 -:101D800000311CE6000000000000003300201A2D86 -:101D9000000000000000000C00221A2600000000D5 -:101DA00000000000002F00E600000000000000001E -:101DB00006E000000000027B0000000000201C1173 -:101DC000000000000000000000200C1100000000D6 -:101DD0000000003400203623000000000000001046 -:101DE00000201811000000000000000000691CE243 -:101DF0000000012893800000002044110000000032 -:101E000000000000002048070000000095000000CE -:101E1000002044110000000000000000002F022FED -:101E200000000000000000000CE00000000002863E -:101E30000000000100333E2F000000000000000001 -:101E4000D90048000000000092000000002044116A -:101E50000000000000000000C0204800000000005A -:101E60000000002400403627000000000000000CA5 -:101E7000C0220A20000000000000003200203622AC -:101E80000000000000000031C040362000000000CB -:101E90000000A2A40020441100000000000000097E -:101EA0000020481100000000A100000000204411A3 -:101EB0000000000000000001008048110000000048 -:101EC0000000002900201E2D00000000000000007E -:101ED000002C1CE300000000000000290020362731 -:101EE000000000000000002A00201E2D000000005D -:101EF00000000000002C1CE4000000000000002A8C -:101F000000203627000000000000002B00201E2DBE -:101F10000000000000000000003120A300000000CD -:101F200000000000002D1D07000000000000002B35 -:101F300000203627000000000000002C00201E2D8D -:101F40000000000000000000003120C4000000007C -:101F500000000000002D1D07000000000000002C04 -:101F600000803627000000000000002900203623F2 -:101F7000000000000000002A0020362400000000BD -:101F80000000000000311CA3000000000000002B36 -:101F900000203627000000000000000000311CC4B3 -:101FA000000000000000002C008036270000000028 -:101FB000000000220020362700000000000000235F -:101FC00000203628000000000000001D00201E2D0B -:101FD00000000000000000020021022700000000B5 -:101FE0000000000014C00000000002C50000000056 -:101FF00000400000000002C200000022002036273E -:10200000000000000000002300203628000000002F -:102010000000001D00201E2D000000000000000236 -:1020200000210227000000000000000014E0000072 -:10203000000002C20000000300210227000000008F -:102040000000000014E00000000002C50000002BAA -:1020500000201E2D0000000000000000002E00E106 -:10206000000000000000000002C00000000002C5E7 -:102070000000002900201E2D0000000000000000CC -:10208000003120A10000000000000000002E00E848 -:10209000000000000000000006C00000000002C5B3 -:1020A0000000002C00201E2D000000000000000099 -:1020B000002E00E2000000000000000002C000004E -:1020C000000002C50000002A00201E2D00000000B4 -:1020D00000000000003120C20000000000000000ED -:1020E000002E00E8000000000000000006C0000014 -:1020F000000002C50000000000600000000005EDC7 -:1021000000000000006000000000029E00000000CF -:1021100000400000000002C7000000000060000056 -:102120000000029E0000000000600000000005E4C6 -:102130000000000000400000000002C70000000096 -:10214000006000000000029000000000004000005D -:10215000000002C70000002200201E2D0000000029 -:10216000000000230080222D00000000000000106D -:1021700000221E2300000000000000000029488704 -:10218000000000000000000000311CA3000000005F -:102190000000001000221E270000000000000000C8 -:1021A00000294887000000000000001000221E23C4 -:1021B0000000000000000000003120C4000000000A -:1021C0000000FFFF0028222800000000000000009F -:1021D00000894907000000000000001000221E23B3 -:1021E00000000000000000000029488700000000F7 -:1021F0000000001000221E2100000000000000006E -:1022000000294847000000000000000000311CA326 -:10221000000000000000001000221E270000000047 -:1022200000000000002948870000000000000000B6 -:1022300000311CA1000000000000001000221E2739 -:1022400000000000000000000029484700000000D6 -:102250000000001000221E2300000000000000000B -:10226000003120C4000000000000FFFF00282228E9 -:1022700000000000000000000029490700000000E5 -:102280000000001000221E210000000000000000DD -:10229000003120C2000000000000FFFF00282228BB -:1022A0000000000000000000008949070000000055 -:1022B0000000001000221E230000000000000000AB -:1022C00000294887000000000000000100220A21C8 -:1022D0000000000000000000003308A20000000021 -:1022E0000000001000221E2200000000000000106C -:1022F0000021222200000000000000000029490700 -:10230000000000000000000000311CA300000000DD -:102310000000001000221E27000000000000000046 -:1023200000294887000000000000000100220A2167 -:102330000000000000000000003008A200000000C3 -:102340000000001000221E2200000000000000100B -:10235000002122220000000000000000002949079F -:10236000000000000000001000221E2300000000FA -:1023700000000000003120C4000000000000FFFF4A -:102380000028222800000000000000000029490762 -:102390000000000000000000003808C50000000038 -:1023A00000000000003008410000000000000001B3 -:1023B00000220A220000000000000000003308A2F2 -:1023C000000000000000001000221E22000000009B -:1023D0000000001000212222000000000000000088 -:1023E00000894907000000000000001D0020222D88 -:1023F000000000000000000014C000000000030105 -:10240000FFFFFFEF00280621000000000000001A77 -:102410000020222D000000000000F8E00020441100 -:102420000000000000000000002949010000000039 -:1024300000000000008949010000000000000000C9 -:10244000002048110000000000000000002048119A -:1024500000000000060A0200008048110000000091 -:1024600000000000C02000000000000097000000F5 -:10247000C02044110000000000000000C0204811EE -:10248000000000008A00000000204411000000004D -:102490000000000000204811000000000000225C45 -:1024A000002044110000000000000000C02048008F -:1024B000000000000000A1FC00204411000000000A -:1024C00000000000C02048000000000000000000E4 -:1024D000C0200400000000000000000000A0000A6E -:1024E00000000000970000000020441100000000E0 -:1024F0000000000000204811000000008A000000D9 -:1025000000204411000000000000000000204811DD -:10251000000000000000225C0020441100000000C8 -:1025200000000000C0204800000000000000A1FCE6 -:10253000002044110000000000000000C0204800FE -:102540000000000000000000C020040000000000A7 -:102550000000000000A0000A00000000970000003A -:10256000002044110000000000000000002048117D -:10257000000000008A00000000204411000000005C -:102580000000000000204811000000000000225C54 -:10259000002044110000000000000000C02048009E -:1025A000000000000000A1FC002044110000000019 -:1025B00000000000C0204800000000000001A1FD54 -:1025C000002044110000000000000000D900480075 -:1025D0000000000000000000C02004000000000017 -:1025E0000000000000A0000A0000000000002257C8 -:1025F000002044110000000000000003C0484A20F1 -:10260000000000000000225D0020441100000000D6 -:1026100000000000C0404800000000000000000072 -:1026200000600000000005C500000000C020080098 -:10263000000000000000225C0020441100000000A7 -:102640000000000300384A22000000000000A1FC46 -:10265000002044110000000000000000C0204800DD -:10266000000000000001A1FD002044110000000056 -:1026700000000000002F0222000000000000000007 -:102680000CE00000000000000000000040204800B6 -:10269000000000000000000140304A20000000005F -:1026A00000000002C0304A200000000000000001CD -:1026B00000530A22000003340000003FC0280A2013 -:1026C0000000000081000000002044110000000014 -:1026D000000000010020481100000000000021F867 -:1026E00000204411000000000000001700204811E5 -:1026F00000000000000421F90060441100000614ED -:102700000000001100210230000000000000000065 -:1027100014E000000000033D00000014002F02221E -:1027200000000000000000000CC000000000035189 -:102730000000201000204411000000000000800074 -:1027400000204811000000000001A2A40020441154 -:102750000000000000000000002048110000000000 -:1027600000000016006048110000035E0000210018 -:10277000002044110000000000000000C0204800BC -:102780000000000000000000C02048000000000021 -:1027900000000000C0204800000000000000000011 -:1027A000C0204800000000000001A2A40020441145 -:1027B00000000000000000000020481100000000A0 -:1027C000000000000040480200000000000000047B -:1027D000002F022200000000000000000CC00000DA -:1027E00000000355000020100020441100000000EC -:1027F000000080000040481100000349000000284C -:10280000002F022200000000000000000CE0000089 -:1028100000000349000021040020441100000000D2 -:1028200000000000C0204800000000000000000080 -:10283000C02048000000000000000000C020480048 -:102840000000000000000000C02048000000000060 -:102850000000A2A4002044110000000000000000BD -:10286000004048020000000000000035002036262D -:1028700000000000000000490020181100000000C6 -:1028800000000000002048110000000000000001CE -:1028900000331A260000000000000000002F02266E -:1028A00000000000000000000CC0000000000360F9 -:1028B0000000003500801A2D000000000000003FDD -:1028C000C0280A200000000000000015002F02228E -:1028D00000000000000000000CE000000000037693 -:1028E0000000001E002F0222000000000000000077 -:1028F0000CE000000000038000000020002F0222F6 -:1029000000000000000000000CE000000000038C4C -:102910000000000F002F0222000000000000000055 -:102920000CE000000000039800000010002F0222BD -:1029300000000000000000000CE000000000039810 -:1029400000000006002F022200000000000000002E -:102950000CE000000000039A00000016002F022285 -:1029600000000000000000000CE000000000039FD9 -:102970000000A2A40020441100000000000000009C -:1029800000404802000000000800000000290A2260 -:10299000000000000000000340210E2000000000A5 -:1029A0000000000CC0211220000000000008000000 -:1029B000002812240000000000000014C02216208D -:1029C0000000000000000000002914A40000000026 -:1029D0000000A2A40020441100000000000000003C -:1029E000002948A2000000000000A1FE00204411C0 -:1029F000000000000000000000404803000000004C -:102A000081000000002044110000000000000001CF -:102A10000020481100000000000021F800204411AF -:102A20000000000000000015002048110000000018 -:102A3000000421F900604411000006140000001594 -:102A400000210230000000000000000014E000003F -:102A5000000003820000210E00204411000000004D -:102A600000000000C020480000000000000000003E -:102A7000C0204800000000000000A2A40020441173 -:102A800000000000000000000040480200000000BC -:102A9000810000000020441100000000000000013F -:102AA0000020481100000000000021F8002044111F -:102AB0000000000000000016002048110000000087 -:102AC000000421F900604411000006140000000316 -:102AD00000210230000000000000000014E00000AF -:102AE0000000038E000021080020441100000000B7 -:102AF00000000000C02048000000000000000000AE -:102B0000C0204800000000000000A2A400204411E2 -:102B1000000000000000000000404802000000002B -:102B20000000201000204411000000000000800080 -:102B30000040481100000000000020100020441157 -:102B4000000000000000800000204811000000008C -:102B50000001A2A4002044110000000000000000B9 -:102B6000002048110000000000000006004048114D -:102B700000000000000020100020441100000000B0 -:102B80000000800000204811000000000001A2A405 -:102B90000020441100000000000000000020481147 -:102BA0000000000000000016006048110000035EF5 -:102BB0000000001600404811000000000000000066 -:102BC000C02008000000000000000000C0200C0031 -:102BD000000000000000001D002102230000000092 -:102BE0000000000014E00000000003B981000000B4 -:102BF00000204411000000000000000100204811E6 -:102C000000000000000021F8002044110000000036 -:102C1000000000170020481100000000000421F906 -:102C20000060441100000614000000110021023071 -:102C3000000000000000000014E00000000003ABF2 -:102C400000002100002044110000000000000000EE -:102C5000002048020000000000000000002048039F -:102C600000000000BABECAFE0020481100000000AB -:102C7000CAFEBABE0020481100000000000020106B -:102C800000204411000000000000800000204811D6 -:102C9000000000000000A2A4002044110000000079 -:102CA00000000004004048110000000000002170F6 -:102CB0000020441100000000000000000020480235 -:102CC0000000000000000000002048030000000099 -:102CD0008100000000204411000000000000000AF4 -:102CE000002048110000000000000000002000103B -:102CF000000000000000000014C00000000003BE3F -:102D00008C0000000020441100000000CAFEBABE82 -:102D10000040481100000000810000000020441124 -:102D20000000000000000001002048110000000029 -:102D300000003FFF40280A20000000008000000043 -:102D400040280E200000000040000000C028122093 -:102D50000000000000040000006946220000061484 -:102D6000000000000020141000000000000000001F -:102D7000002F022300000000000000000CC0000033 -:102D8000000003CC00000000C0401800000003CF8A -:102D900000003FFFC0281A200000000000040000CF -:102DA00000694626000006140000000000201810EC -:102DB0000000000000000000002F022400000000BE -:102DC000000000000CC00000000003D20000000062 -:102DD000C0401C00000003D500003FFFC0281E209B -:102DE00000000000000400000069462700000614EF -:102DF0000000000000201C10000000000000000087 -:102E0000002044020000000000000000002820C54F -:102E10000000000000000000004948E80000000039 -:102E2000A580000000200811000000000000200024 -:102E300000200C110000000083000000006044111D -:102E4000000003FD0000000000204402000000001C -:102E500000000000C020480000000000000000004A -:102E600040204800000000000000001FC021022098 -:102E7000000000000000000014C00000000003E299 -:102E8000000020100020441100000000000080001D -:102E900000204811000000000000FFFFC048122081 -:102EA000000003EAA78000000020081100000000D5 -:102EB0000000A00000200C110000000083000000B2 -:102EC00000604411000003FD0000000000204402E7 -:102ED0000000000000000000C020480000000000CA -:102EE00000000000C0204800000000000000FFFFBC -:102EF000C0281220000000008300000000204411C0 -:102F000000000000000000000030488300000000C6 -:102F100084000000002044110000000000000000B8 -:102F2000C020480000000000000000001D0000005C -:102F3000000000008300000000604411000003FD59 -:102F400000000000C040040000000001A980000053 -:102F500000200811000000000000C00000400C111B -:102F6000000003E5AB800000002008110000000015 -:102F70000000F8E000400C11000003E5AD80000007 -:102F800000200811000000000000F88000400C1133 -:102F9000000003E5B38000000020081100000000DD -:102FA0000000F3FC00400C11000003E5AF800000BE -:102FB00000200811000000000000E00000400C119B -:102FC000000003E5B18000000020081100000000AF -:102FD0000000F00000400C11000003E58300000039 -:102FE000002044110000000000002148002048118A -:102FF00000000000840000000020441100000000D8 -:1030000000000000C0204800000000000000000098 -:103010001D00000000000000000000000080000013 -:103020000000000000182000C03046200000000012 -:1030300000000000D900480000000000000000006F -:10304000C0200400000000000000000000A0000AF2 -:10305000000000000018A000C03046200000000062 -:1030600000000000D900480000000000000000003F -:10307000C0200400000000000000000000A0000AC2 -:10308000000000000018C000C03046200000000012 -:1030900000000000D900480000000000000000000F -:1030A000C0200400000000000000000000A0000A92 -:1030B000000000000018F8E0C030462000000000CA -:1030C00000000000D90048000000000000000000DF -:1030D000C0200400000000000000000000A0000A62 -:1030E000000000000018F880C030462000000000FA -:1030F00000000000D90048000000000000000000AF -:10310000C0200400000000000000000000A0000A31 -:10311000000000000018E000C03046200000000061 -:1031200000000000D900480000000000000000007E -:10313000C0200400000000000000000000A0000A01 -:10314000000000000018F000C03046200000000021 -:1031500000000000D900480000000000000000004E -:10316000C0200400000000000000000000A0000AD1 -:10317000000000000018F3FCC030462000000000F2 -:1031800000000000D900480000000000000000001E -:10319000C0200400000000000000000000A0000AA1 -:1031A0000000000086000000002044110000000024 -:1031B0000000000000404801000000008500000001 -:1031C0000020441100000000000000000040480101 -:1031D000000000000000217C0020441100000000DD -:1031E00000000000C02048000000000000000000B7 -:1031F000C02048000000000000000000C02048007F -:1032000000000000810000000020441100000000C8 -:103210000000000100204811000000000000000034 -:10322000C02008000000000000000000170000009F -:10323000000000000004217F00604411000006141B -:103240000000001F0021023000000000000000000C -:1032500014C00000000000000000000000404C020C -:103260000000042E00000000C0200C000000000040 -:1032700000000000C020100000000000000000005E -:10328000C02014000000000000000000C020180052 -:103290000000000000000000C0201C000000000032 -:1032A00000007F0000280A21000000000000450007 -:1032B000002F022200000000000000000CE00000CF -:1032C0000000043C00000000C020200000000000BE -:1032D00000000000170000000000000000000010C7 -:1032E00000280A230000000000000010002F022226 -:1032F00000000000000000000CE00000000004449A -:1033000081000000002044110000000000000001C6 -:10331000002048110000000000040000006946245D -:103320000000061400000000004000000000044DF2 -:103330008100000000204411000000000000000097 -:1033400000204811000000000000216D0020441101 -:103350000000000000000000002048040000000001 -:1033600000000000002048050000000000000000F0 -:103370001AC00000000004499E0000000020441113 -:1033800000000000CAFEBABE002048110000000084 -:10339000000000001AE000000000044C00000000E3 -:1033A000002824F0000000000000000700280A2385 -:1033B0000000000000000001002F022200000000B9 -:1033C000000000000AE000000000045400000000BB -:1033D000002F00C9000000000000000004E0000011 -:1033E0000000046D00000000004000000000047AAE -:1033F00000000002002F0222000000000000000078 -:103400000AE000000000045900000000002F00C97D -:10341000000000000000000002E000000000046D59 -:1034200000000000004000000000047A00000003DB -:10343000002F022200000000000000000AE000004F -:103440000000045E00000000002F00C90000000022 -:10345000000000000CE000000000046D000000000F -:10346000004000000000047A00000004002F022247 -:1034700000000000000000000AE0000000000463FB -:1034800000000000002F00C9000000000000000044 -:103490000AE000000000046D000000000040000091 -:1034A0000000047A00000005002F02220000000046 -:1034B000000000000AE000000000046800000000B6 -:1034C000002F00C9000000000000000006E000001E -:1034D0000000046D00000000004000000000047ABD -:1034E00000000006002F0222000000000000000083 -:1034F0000AE000000000046D00000000002F00C979 -:10350000000000000000000008E000000000046D62 -:1035100000000000004000000000047A00007F006E -:1035200000280A210000000000004500002F0222B0 -:1035300000000000000000000AE0000000000000A1 -:103540000000000800210A23000000000000000025 -:1035500014C000000000047700002169002044111D -:103560000000000000000000C02048000000000033 -:1035700000000000C0204800000000000000000023 -:10358000C020480000000000CAFEBABE004048113A -:103590000000000000000000C02044000000000007 -:1035A00000000000C020000000000000000000003B -:1035B000C04048000000000000007F0000280A21F1 -:1035C0000000000000004500002F02220000000063 -:1035D000000000000AE0000000000480000000007D -:1035E000C02000000000000000000000C02000001B -:1035F0000000000000000000C040000000000000CB -:103600000000000000404C080000043C00000000E6 -:10361000C0200800000000000000001040210E2023 -:1036200000000000000000114021122000000000F6 -:103630000000001240211620000000000000216957 -:10364000002044110000000000000000002048029B -:103650000000000000000000002102250000000022 -:103660000000000014E000000000048A00040000D4 -:10367000C0494A200000048BFFFBFFFFC0284A20FE -:1036800000000000000000000021022300000000F4 -:103690000000000014E0000000000497000000009B -:1036A000C02048000000000000000000C0204800CA -:1036B00000000000000000000021022400000000C3 -:1036C0000000000014C000000000000081000000A5 -:1036D00000204411000000000000000C00204811F0 -:1036E00000000000000000000020001000000000AA -:1036F0000000000014C0000000000493A0000000BF -:103700000020441100000000CAFEBABE004048116B -:1037100000000000810000000020441100000000B3 -:103720000000000400204811000000000000216B90 -:10373000002044110000000000000000C0204810DC -:103740000000000081000000002044110000000083 -:103750000000000500204811000000000000216C5E -:10376000002044110000000000000000C0204810AC -:103770000000000000000000002F022400000000F4 -:10378000000000000CE0000000000000000000004D -:10379000004000000000049100000000C0210A2049 -:1037A000000000000000000014C00000000004AE93 -:1037B0008100000000204411000000000000000013 -:1037C00000204811000000000000216D002044117D -:1037D0000000000000000000C020480000000000C1 -:1037E00000000000C02048000000000000000000B1 -:1037F0001AC00000000004A99E000000002044112F -:1038000000000000CAFEBABE0020481100000000FF -:10381000000000001AE00000000004AC00000000FE -:1038200000400000000004B28100000000204411AC -:10383000000000000000000100204811000000000E -:1038400000040000C0294620000000000000000025 -:10385000C0600000000006140000000100210222E8 -:10386000000000000000000014C00000000004B9C7 -:103870000000216900204411000000000000000049 -:10388000C02048000000000000000000C0204800E8 -:1038900000000000000000000020481000000000B0 -:1038A000CAFEBABE0040481100000000000000003F -:1038B000C02044000000000000000000C04048108C -:1038C0000000000081000000002044110000000002 -:1038D000000000010020481100000000000021F855 -:1038E00000204411000000000000000D00204811DD -:1038F00000000000000421F90060441100000614DB -:103900000000000000210230000000000000000064 -:1039100014C00000000004BB0000218000204411FE -:103920000000000000000000C0204800000000006F -:1039300000000000C02000000000000000000000A7 -:10394000C02048000000000000000000C02000006F -:103950000000000000000000C0404800000000001F -:103960000000000300333E2F0000000000000001B3 -:1039700000210221000000000000000014E000000F -:10398000000004EB0000003500200A2D00000000BC -:103990000004000018E00C11000004DA000000012F -:1039A00000333E2F00000000000021690020441178 -:1039B000000000000000000000204802000000009D -:1039C0000000000000204803000000000000000884 -:1039D00000300A220000000000000000C020480063 -:1039E0000000000000000000C020480000000000AF -:1039F00000002169002044110000000000000000C8 -:103A000000204802000000000000000000204803E1 -:103A1000000000000000000800300A220000000042 -:103A200000000000C020480000000000000000006E -:103A3000D8C04800000004CE0000216900204411D5 -:103A4000000000000000000000204802000000000C -:103A500000000000002048030000000000000008F3 -:103A600000300A220000000000000000C0204800D2 -:103A70000000000000000000C0204800000000001E -:103A8000000000360020122D0000000000000000A1 -:103A900000290C830000000000002169002044116F -:103AA00000000000000000000020480200000000AC -:103AB0000000000000204803000000000000000893 -:103AC00000300A220000000000000000C020480072 -:103AD0000000000000000000C020480000000000BE -:103AE000000000110021022400000000000000007E -:103AF00014C00000000000000000000000400000B2 -:103B00000000049100000035C020362000000000B5 -:103B100000000036C0403620000000000000304A9F -:103B20000020441100000000E0000000C0484A20CE -:103B3000000000000000000F002102210000000032 -:103B40000000000014C00000000004F200000000AB -:103B5000006000000000000B00000000D900000021 -:103B60000000000000000000C04004000000000150 -:103B7000810000000020441100000000000000024D -:103B80000020481100000000000000FF00280E3057 -:103B90000000000000000000002F022300000000D1 -:103BA000000000000CC00000000004F6000000004F -:103BB000C0200800000000000000000014C0000049 -:103BC0000000050B0000000000200C1100000000A8 -:103BD0000000002400203623000000000000003414 -:103BE00000203623000000000000003200203623B1 -:103BF000000000000000003100203623000000001B -:103C00000000001D00203623000000000000002DF1 -:103C100000203623000000000000002E0020362384 -:103C2000000000000000001B002036230000000000 -:103C30000000001C0020362300000000FFFFE00011 -:103C400000200C1100000000000000290020362395 -:103C5000000000000000002A0020362300000000C1 -:103C600000001FFF00200C11000000000000002BCE -:103C700000203623000000000000002C0020362326 -:103C800000000000F1FFFFFF00283A2E00000000B6 -:103C90000000001AC0220E200000000000000000FA -:103CA0000029386E0000000081000000002044114F -:103CB0000000000000000006002048110000000085 -:103CC0000000003340203620000000008700000084 -:103CD000002044110000000000000000C020480047 -:103CE000000000000000A1F40020441100000000CA -:103CF0000000000000204810000000009D000000AF -:103D000000204411000000000000001F40214A2054 -:103D10000000000096000000002044110000000098 -:103D200000000000C020480000000000000000006B -:103D3000C0200C000000000000000000C0201000A7 -:103D4000000000000000001F0021162400000000F9 -:103D50000000000014C0000000000000000000256A -:103D600000203623000000000000000300281E236E -:103D700000000000000000080022222300000000D4 -:103D8000FFFFF000002822280000000000000000D3 -:103D9000002920E80000000000000027002036284D -:103DA000000000000000001800211E230000000099 -:103DB000000000280020362700000000000000025C -:103DC000002216240000000000000000003014A8AB -:103DD0000000000000000026002036250000000042 -:103DE0000000000300211A24000000001000000061 -:103DF00000281A2600000000EFFFFFFF00283A2EDF -:103E00000000000000000000004938CE000006025B -:103E10000000000140280A20000000000000000609 -:103E200040280E200000000000000300C0281220DF -:103E30000000000000000008002112240000000023 -:103E400000000000C020162000000000000000005C -:103E5000C0201A2000000000000000000021022203 -:103E6000000000000000000014C000000000054138 -:103E7000810000000020441100000000000000014B -:103E800000204811000000000000225800300A24E1 -:103E90000000000000040000006946220000061433 -:103EA0000000216900204411000000000000000013 -:103EB00000204805000000000002000000294A26FA -:103EC000000000000000000000204810000000007A -:103ED000CAFEBABE00204811000000000000000227 -:103EE000002F022300000000000000000CC00000B2 -:103EF0000000054900000000C0201C100000000068 -:103F000000000000C04000000000055B000000024F -:103F1000002F022300000000000000000CC0000081 -:103F2000000005498100000000204411000000004D -:103F3000000000010020481100000000000022588D -:103F400000300A240000000000040000006946223E -:103F50000000061400000000C0201C10000000003B -:103F600000000000C04000000000055B00000000F1 -:103F7000002F022300000000000000000CC0000021 -:103F80000000054D00000000C0201C0000000000E3 -:103F900000000000C04000000000055B00000004BD -:103FA000002F022300000000000000000CC00000F1 -:103FB00000000559810000000020441100000000AD -:103FC0000000000000204811000000000000216DEA -:103FD000002044110000000000000000C020480044 -:103FE0000000000000000000C020480000000000A9 -:103FF000000000001AC00000000005549E000000F0 -:104000000020441100000000CAFEBABE0020481182 -:1040100000000000000000001AE00000000005574A -:104020000000000000401C100000055B00000000C4 -:10403000C02000000000000000000000C0400000A0 -:1040400000000000000000000EE000000000055D20 -:104050000000000000600000000005A40000000057 -:10406000002F022400000000000000000CC000002F -:104070000000056D0000A2B7002044110000000000 -:104080000000000000204807000000008100000040 -:104090000020441100000000000000010020481131 -:1040A000000000000004A2B60060441100000614E5 -:1040B0000000001A0021223000000000000000066D -:1040C00000222630000000000000A2C4002044119D -:1040D0000000000000000000003048E9000000007F -:1040E0000000000000E000000000056B0000A2D10D -:1040F00000204411000000000000000000404808BB -:10410000000000000000A2D10020441100000000C7 -:104110000000000100504A280000000000000001DB -:10412000002F022400000000000000000CC000006E -:104130000000057D0000A2BB00204411000000002B -:10414000000000000020480700000000810000007F -:104150000020441100000000000000010020481170 -:10416000000000000004A2BA006044110000061420 -:104170000000001A002122300000000000000006AC -:1041800000222630000000000000A2C500204411DB -:104190000000000000000000003048E900000000BE -:1041A0000000000000E000000000057B0000A2D23B -:1041B00000204411000000000000000000404808FA -:1041C000000000000000A2D2002044110000000006 -:1041D0000000000100504A2800000000000000021A -:1041E000002F022400000000000000000CC00000AE -:1041F0000000058D0000A2BF002044110000000057 -:1042000000000000002048070000000081000000BE -:1042100000204411000000000000000100204811AF -:10422000000000000004A2BE00604411000006145B -:104230000000001A002122300000000000000006EB -:1042400000222630000000000000A2C60020441119 -:104250000000000000000000003048E900000000FD -:104260000000000000E000000000058B0000A2D369 -:104270000020441100000000000000000040480839 -:10428000000000000000A2D3002044110000000044 -:104290000000000100504A28000000000000A2C3F6 -:1042A000002044110000000000000000002048072A -:1042B0000000000081000000002044110000000008 -:1042C0000000000100204811000000000004A2C20C -:1042D00000604411000006140000001A0021223082 -:1042E0000000000000000006002226300000000050 -:1042F0000000A2C7002044110000000000000000E0 -:10430000003048E9000000000000000000E000006C -:10431000000005990000A2D4002044110000000014 -:104320000000000000404808000000000000A2D487 -:1043300000204411000000000000000100504A2845 -:104340000000000085000000002044110000000073 -:104350000000000000204801000000000000304A7A -:10436000002044110000000001000000002048115E -:104370000000000000000000004000000000059F59 -:10438000A4000000C0204411000000000000000054 -:10439000C04048000000000000000000C0600000B5 -:1043A000000005A400000000C0400400000000015F -:1043B0000001A2A400204411000000000000000041 -:1043C00000204811000000000000000000204811FB -:1043D0000000000000000000002048110000000064 -:1043E000000000000020481100000000000000054F -:1043F00000204811000000000000A1F4002044113A -:104400000000000000000000002048110000000033 -:10441000880000000020441100000000000000019E -:104420000020481100000000FF000000002044119F -:104430000000000000000000002048110000000003 -:1044400000000001002048110000000000000002F0 -:104450000080481100000000000000000EE0000095 -:10446000000005B700001000002008110000000047 -:104470000000003400203622000000000000000090 -:1044800000600000000005BB0000000000600000AC -:10449000000005A498000000002044110000000066 -:1044A0000000000000804811000000000000000033 -:1044B000C0600000000005BB00000000C040040018 -:1044C000000000010000A2A4002044110000000030 -:1044D00000000022002048110000000089000000B8 -:1044E00000204411000000000000000100204811DD -:1044F00000000000FF000000002044110000000048 -:104500000000000000204811000000000000000131 -:104510000020481100000000000000020080481147 -:10452000000000000000217AC020441100000000BB -:10453000000000000040481100000000970000004B -:10454000002044110000000000000000002048117D -:10455000000000008A00000000204411000000005C -:10456000000000000020481100000000FF000000D3 -:10457000002044110000000000000000002048114D -:1045800000000000000000010020481100000000B1 -:104590000000000200804811000000000000000040 -:1045A00000600000000005E1000020100020441120 -:1045B0000000000000008000002048110000000002 -:1045C0000001A2A4C020441100000000000000006F -:1045D0000020481100000000000000160060481193 -:1045E0000000035E000000160020481100000000DB -:1045F0000000201000204411000000000001000015 -:10460000002048110000000081000000002044113B -:104610000000000000000001002048110000000020 -:104620000000217C002044110000000009800000EF -:104630000020481100000000FFFFFFFF002048118C -:1046400000000000000000000020481100000000F1 -:104650000000000017000000000000000004217F9F -:1046600000604411000006140000001F0021023009 -:10467000000000000000000014C000000000000066 -:104680000000000400404C11000005DC0000001D8B -:1046900000201E2D000000000000000400291E273D -:1046A000000000000000001D008036270000000010 -:1046B0000000001D00201E2D00000000FFFFFFFB7A -:1046C00000281E27000000000000001D0080362783 -:1046D000000000000000001D00201E2D0000000052 -:1046E0000000000800291E27000000000000001D37 -:1046F00000803627000000000000001D00201E2D55 -:1047000000000000FFFFFFF700281E270000000048 -:104710000000001D0080362700000000000020106F -:10472000002044110000000000008000002048111B -:10473000000000000001A2A40020441100000000BD -:1047400000000000002048110000000000000016DA -:10475000006048110000035E0000001600204811B0 -:1047600000000000000020100020441100000000A4 -:104770000001000000204811000000000000217C22 -:1047800000204411000000000180000000204811BA -:104790000000000000FFFFFF0020481100000000A3 -:1047A0000000000000204811000000000000000090 -:1047B00017000000000000008100000000204411EC -:1047C000000000000000000100204811000000006F -:1047D0000004217F00604411000006140000000066 -:1047E00000200010000000000000000014C00000C5 -:1047F000000006130000001000404C11000005F9F5 -:1048000000000000C02004000000000000000000C4 -:1048100038C00000000000000000002500200A2D24 -:10482000000000000000002600200E2D0000000007 -:10483000000000270020122D0000000000000028CA -:104840000020162D00000000000021690020441106 -:1048500000000000000000000020480400000000EC -:1048600000000000002048050000000000000000DB -:104870000020480100000000CAFEBABE0020481116 -:1048800000000000000000040030122400000000BE -:1048900000000000002F0064000000000000000085 -:1048A0000CC00000000006120000000300281A22BD -:1048B000000000000000000800221222000000009A -:1048C000FFFFF0000028122400000000000000009C -:1048D000002910C40000000000000027004036241A -:1048E0000000000000000000008000000000000048 -:1048F000000000001AC00000000006149F00000025 -:104900000020441100000000CAFEBABE0020481179 -:1049100000000000000000001AE000000000061780 -:104920000000000000800000000000000000000007 -:10493000006000000000000B000010000060041187 -:10494000000002FE00000000002004110000000032 -:1049500000000000006008110000019F0000225CC0 -:104960000020441100000000000000030020481156 -:10497000000000000000225600204411000000004A -:104980000000001B00204811000000000000A1FCF6 -:104990000020441100000000000000010020481128 -:1049A000000000000001A1FDC02044110000000033 -:1049B0000000002900201E2D000000000000001053 -:1049C00000221E27000000000000002C0020222DE5 -:1049D000000000000000FFFF002822280000000067 -:1049E000000000000029490700000000000000004E -:1049F00000204811000000000000002A0020222DA5 -:104A0000000000000000FFFF002822280000000036 -:104A1000000000000029490700000000000000001D -:104A200000204811000000000000002B00201E2D77 -:104A3000000000000000001000221E2700000000FF -:104A400000000000002949070000000000000000ED -:104A500000404811000000000000000000000000BD -:104A60000000000000000000000000000000000046 -:104A70000000000000000000000000000000000036 -:104A80000000000000000000000000000000000026 -:104A90000000000000000000000000000000000016 -:104AA0000000000000000000000000000000000006 -:104AB00000000000000000000000000000000000F6 -:104AC00000000000000000000000000000000000E6 -:104AD00000000000000000000000000000000000D6 -:104AE00000000000000000000000000000000000C6 -:104AF00000000000000000000000000000000000B6 -:104B000000000000000000000000000000000000A5 -:104B10000000000000000000000000000000000095 -:104B20000000000000000000000000000000000085 -:104B30000000000000000000000000000000000075 -:104B40000000000000000000000000000000000065 -:104B50000000000000000000000000000000000055 -:104B60000000000000000000000000000000000045 -:104B70000000000000000000000000000000000035 -:104B80000000000000000000000000000000000025 -:104B90000000000000000000000000000000000015 -:104BA0000000000000000000000000000000000005 -:104BB00000000000000000000000000000000000F5 -:104BC00000000000000000000000000000000000E5 -:104BD00000000000000000000000000000000000D5 -:104BE00000000000000000000000000000000000C5 -:104BF00000000000000000000000000000000000B5 -:104C000000000000000000000000000000000000A4 -:104C10000000000000000000000000000000000094 -:104C20000000000000000000000000000000000084 -:104C30000000000000000000000000000000000074 -:104C40000000000000000000000000000000000064 -:104C50000000000000000000000000000000000054 -:104C60000000000000000000000000000000000044 -:104C70000000000000000000000000000000000034 -:104C80000000000000000000000000000000000024 -:104C90000000000000000000000000000000000014 -:104CA0000000000000000000000000000000000004 -:104CB00000000000000000000000000000000000F4 -:104CC00000000000000000000000000000000000E4 -:104CD00000000000000000000000000000000000D4 -:104CE00000000000000000000000000000000000C4 -:104CF00000000000000000000000000000000000B4 -:104D000000000000000000000000000000000000A3 -:104D10000000000000000000000000000000000093 -:104D20000000000000000000000000000000000083 -:104D30000000000000000000000000000000000073 -:104D40000000000000000000000000000000000063 -:104D50000000000000000000000000000000000053 -:104D60000000000000000000000000000000000043 -:104D70000000000000000000000000000000000033 -:104D80000000000000000000000000000000000023 -:104D90000000000000000000000000000000000013 -:104DA0000000000000000000000000000000000003 -:104DB00000000000000000000000000000000000F3 -:104DC00000000000000000000000000000000000E3 -:104DD00000000000000000000000000000000000D3 -:104DE00000000000000000000000000000000000C3 -:104DF00000000000000000000000000000000000B3 -:104E000000000000000000000000000000000000A2 -:104E10000000000000000000000000000000000092 -:104E20000000000000000000000000000000000082 -:104E30000000000000000000000000000000000072 -:104E40000000000000000000000000000000000062 -:104E50000000000000000000000000000000000052 -:104E60000000000000000000000000000000000042 -:104E70000000000000000000000000000000000032 -:104E80000000000000000000000000000000000022 -:104E90000000000000000000000000000000000012 -:104EA0000000000000000000000000000000000002 -:104EB00000000000000000000000000000000000F2 -:104EC00000000000000000000000000000000000E2 -:104ED00000000000000000000000000000000000D2 -:104EE00000000000000000000000000000000000C2 -:104EF00000000000000000000000000000000000B2 -:104F000000000000000000000000000000000000A1 -:104F10000000000000000000000000000000000091 -:104F20000000000000000000000000000000000081 -:104F30000000000000000000000000000000000071 -:104F40000000000000000000000000000000000061 -:104F50000000000000000000000000000000000051 -:104F60000000000000000000000000000000000041 -:104F70000000000000000000000000000000000031 -:104F80000000000000000000000000000000000021 -:104F90000000000000000000000000000000000011 -:104FA0000000000000000000000000000000000001 -:104FB00000000000000000000000000000000000F1 -:104FC00000000000000000000000000000000000E1 -:104FD00000000000000000000000000000000000D1 -:104FE00000000000000000000000000000000000C1 -:104FF00000000000000000000000000000000000B1 -:1050000000000000000000000000000000000000A0 -:105010000000000000000000000000000000000090 -:105020000000000000000000000000000000000080 -:105030000000000000000000000000000000000070 -:105040000000000000000000000000000000000060 -:105050000000000000000000000000000000000050 -:105060000000000000000000000000000000000040 -:105070000000000000000000000000000000000030 -:105080000000000000000000000000000000000020 -:105090000000000000000000000000000000000010 -:1050A0000000000000000000000000000000000000 -:1050B00000000000000000000000000000000000F0 -:1050C00000000000000000000000000000000000E0 -:1050D00000000000000000000000000000000000D0 -:1050E00000000000000000000000000000000000C0 -:1050F00000000000000000000000000000000000B0 -:10510000000000000000000000000000000000009F -:10511000000000000000000000000000000000008F -:10512000000000000000000000000000000000007F -:10513000000000000000000000000000000000006F -:10514000000000000000000000000000000000005F -:10515000000000000000000000000000000000004F -:10516000000000000000000000000000000000003F -:10517000000000000000000000000000000000002F -:10518000000000000000000000000000000000001F -:10519000000000000000000000000000000000000F -:1051A00000000000000000000000000000000000FF -:1051B00000000000000000000000000000000000EF -:1051C00000000000000000000000000000000000DF -:1051D00000000000000000000000000000000000CF -:1051E00000000000000000000000000000000000BF -:1051F00000000000000000000000000000000000AF -:10520000000000000000000000000000000000009E -:10521000000000000000000000000000000000008E -:10522000000000000000000000000000000000007E -:10523000000000000000000000000000000000006E -:10524000000000000000000000000000000000005E -:10525000000000000000000000000000000000004E -:10526000000000000000000000000000000000003E -:10527000000000000000000000000000000000002E -:10528000000000000000000000000000000000001E -:10529000000000000000000000000000000000000E -:1052A00000000000000000000000000000000000FE -:1052B000013304EF059B02390000000001B00159E1 -:1052C0000425059B00000000021201F6023901428C -:1052D000000000000210022E0289022A00000000D5 -:1052E00003C2059B059B059B0000000005CD05CE74 -:1052F0000308059B00000000059B05A00309032986 -:10530000000000000313026B032B031D00000000CC -:10531000059B059B059B059B00000000059B052C3C -:10532000059B059B0000000003A5059B04A2032D1F -:1053300000000000048104330423059B00000000EA -:1053400004BB04ED042704C800000000043304F487 -:10535000033A036500000000059B059B059B059B28 -:1053600000000000059B059B059B059B00000000BD -:10537000059B059B05B905A200000000059B059B48 -:105380000007059B00000000059B059B059B059BF6 -:1053900000000000059B059B059B059B000000008D -:1053A00003E303D803F303F10000000003F903F55E -:1053B00003F703FB0000000004070403040F040BC1 -:1053C0000000000004170413041F041B0000000069 -:1053D000059B059B059B059B00000000059B059B0D -:1053E000059B059B00000000059B059B059B059BFD -:1053F0000000000000020600061900060000000080 -:00000001FF diff --git a/firmware/radeon/R600_pfp.bin.ihex b/firmware/radeon/R600_pfp.bin.ihex deleted file mode 100644 index 52361086c280..000000000000 --- a/firmware/radeon/R600_pfp.bin.ihex +++ /dev/null @@ -1,145 +0,0 @@ -:1000000000D4007100D4007200CA040000A00000F7 -:10001000007E828B0080000300CA040000D4401ED2 -:1000200000EE001E00CA040000A00000007E828BCB -:1000300000C4183800CA240000CA2800009581A80E -:1000400000C41C3A00C3C00000CA080000CA0C006B -:10005000007C744B00C200050099C00000C41C3A2B -:10006000007C744C00C0FFF000042C0400309002AF -:10007000007D250000351402007D350B002554035A -:10008000007CD58000259C030095C00400D5001B92 -:10009000007EDDC1007D9D8000D6801B00D5801BC9 -:1000A00000D4401E00D5401E00D6401E00D6801E43 -:1000B00000D4801E00D4C01E009783D400D5C01E7B -:1000C00000CA08000080001B00CA0C0000E4011EEA -:1000D00000D4001E0080000D00C4183800E4013E6A -:1000E00000D4001E0080000D00C4183800D4401E4B -:1000F00000EE001E00CA040000A00000007E828BFB -:1001000000E4011E00D4001E00D4401E00EE001EBC -:1001100000CA040000A00000007E828B00E4013EC3 -:1001200000D4001E00D4401E00EE001E00CA0400D1 -:1001300000A00000007E828B00CA180000D4401E80 -:1001400000D5801E0080005400D4007300D4401EEF -:1001500000CA080000CA0C0000CA100000D48019B0 -:1001600000D4C01800D5001700D4801E00D4C01ED3 -:1001700000D5001E00E2001E00CA040000A000001E -:10018000007E828B00CA080000D4806000D4401E2C -:100190000080000200D4801E00CA080000D48061E4 -:1001A00000D4401E0080000200D4801E00CA080057 -:1001B00000CA0C0000D4401E00D4801600D4C01623 -:1001C00000D4801E008001B900D4C01E00C6083EC5 -:1001D00000CA0C0000CA10000094800400CA140079 -:1001E00000E420F300D4201300D5606500D4E01CA7 -:1001F00000D5201C00D5601C0080000200062001F4 -:1002000000C6083E00CA0C0000CA1000009483F724 -:1002100000CA140000E420F30080007A00D4201308 -:1002200000C6083E00CA0C0000CA1000009883EF08 -:1002300000CA140000D400640080008E000000009A -:1002400000C4143200C6183E00C4082F00954005B3 -:1002500000C40C3000D4401E0080000200EE001EDE -:10026000009583F500C4103100D4403300D52065DB -:1002700000D4A01C00D4E01C00D5201C00D40073C6 -:1002800000E4015E00D4001E008001B900062001D8 -:10029000000A200100D6007400C4083600C61040D1 -:1002A0000098800700CC38350095010F00D4001F5E -:1002B00000D460620080000200D4206200CC1433BD -:1002C000008401BC00D4007000D5401E00800002F4 -:1002D00000EE001E00CA0C0000CA100000D4C01AB4 -:1002E000008401BC00D5001A00CC04430035101F67 -:1002F000002C9401007D098B00984005007D15CBF2 -:1003000000D4001A008001B900D4006D003444010B -:1003100000CC0C440098403A00CC2C460095800458 -:1003200000CC0445008001B900D4001A00D4C01AE2 -:1003300000282801008400F300CC10030098801BE3 -:100340000004380C008400F300CC100300988017E0 -:1003500000043808008400F300CC100300988013D8 -:1003600000043804008400F300CC100300988014CB -:1003700000CC1047009A800900CC1448009840DA5D -:1003800000D4006D00CC184400D5001A00D5401AE6 -:10039000008000CC00D5801A0096C0D300D4006D38 -:1003A000008001B900D4006E009AC00300D4006D33 -:1003B00000D4006E0080000200EC007F009AC0CAEA -:1003C00000D4006D008001B900D4006E00CC14038D -:1003D00000CC180300CC1C03007D9103007DD58365 -:1003E000007D190C0035CC1F0035701F007CF0CB50 -:1003F000007CD08B00880000007E8E8B0095C004AE -:1004000000D4006E008001B900D4001A00D4C01AD4 -:1004100000CC080300CC0C0300CC100300CC140368 -:1004200000CC180300CC1C0300CC240300CC280310 -:100430000035C41F0036B01F007C704B0034F01F25 -:10044000007C704B0035701F007C704B007D8881F4 -:10045000007DCCC1007E5101007E9541007C9082E0 -:10046000007CD4C2007C848B009AC003007C8C8BFF -:10047000002C88010098809C00D4006D0098409A60 -:1004800000D4006E00CC084700CC0C4800CC1044CF -:1004900000D4801A00D4C01A0080010400D5001ACC -:1004A00000CC083200D40032009482D800CA0C007C -:1004B00000D4401E0080000200D4001E00E4011E93 -:1004C00000D4001E00CA080000CA0C0000CA1000B8 -:1004D00000D4401E00CA140000D4801E00D4C01EE8 -:1004E00000D5001E00D5401E00D54034008000021B -:1004F00000EE001E0028040400E2001A00E2001AC8 -:1005000000D4401A00CA380000CC080300CC0C0309 -:1005100000CC0C0300CC0C03009882BC000000004F -:10052000008401BC00D7806F0080000200EE001F35 -:1005300000CA040000C2FF0000CC083400C13FFF25 -:10054000007C74CB007CC90B007D010F009902AFC9 -:10055000007C738B008401BC00D7806F0080000298 -:1005600000EE001F00CA080000281900007D898BDA -:10057000009580140028140400CA0C0000CA100062 -:1005800000CA1C0000CA240000E2001F00D4C01AE8 -:1005900000D5001A00D5401A00CC180300CC2C035B -:1005A00000CC2C0300CC2C03007DA58B007D9C4748 -:1005B00000984296000000000080016400D4C01A38 -:1005C00000D4401E00D4801E0080000200EE001EF9 -:1005D00000E4011E00D4001E00D4401E00EE001EE8 -:1005E00000CA040000A00000007E828B00E4013EEF -:1005F00000D4001E00D4401E00EE001E00CA0400FD -:1006000000A00000007E828B00CA080000248C0637 -:10061000000CCC060098C00600CC104900990004DC -:1006200000D4007100E4011E00D4001E00D4401E5E -:1006300000D4801E0080000200EE001E00CA0800E8 -:1006400000CA0C000034D018002510010095001FCE -:1006500000C17FFF00CA100000CA140000CA1800C1 -:1006600000D4801D00D4C01D007DB18B00C14202AA -:1006700000C2C00100D5801D0034DC0E007D5D4C41 -:10068000007F734C00D7401E00D5001E00D5401ED1 -:1006900000C1420000C2C00000099C010031DC1012 -:1006A000007F5F4C007F734C007D838000D5806F9E -:1006B00000D5806600D7401E00EC005E00C8240212 -:1006C000008001B900D6007400D4401E00D4801E02 -:1006D00000D4C01E0080000200EE001E0080000258 -:1006E00000EE001F00D4001F0080000200D4001F95 -:1006F00000D4001F0088000000D4001F000000008C -:1007000000000000000000000000000000000000E9 -:1007100000000000000000000000000000000000D9 -:1007200000000000000000000000000000000000C9 -:1007300000000000000000000000000000000000B9 -:1007400000000000000000000000000000000000A9 -:100750000000000000000000000000000000000099 -:100760000000000000000000000000000000000089 -:100770000000000000000000000000000000000079 -:100780000000000000000000000000000000000069 -:100790000000000000000000000000000000000059 -:1007A0000000000000000000000000000000000049 -:1007B0000000000000000000000000000000000039 -:1007C0000000000000000000000000000000000029 -:1007D0000000000000000000000000000000000019 -:1007E0000000000000000000000000000000000009 -:1007F00000000000000000000000000000000000F9 -:10080000000101740002017B0003009000040080DD -:100810000005000500060040000700330008012F16 -:1008200000090047000A0037001001B7001700A4B4 -:100830000022013D0023014C002000B500240128C6 -:100840000027004E0028006B002A0061002B005397 -:10085000002F00660032008800340182003C0159FC -:10086000003F00730041018F0044013100550176C3 -:100870000056017D0060000C006100350062003907 -:1008800000630039006400390065003900660039F2 -:10089000006700390068003B00690042006A0049B7 -:1008A000006B0049006C0049006D0049006E004972 -:1008B000006F0049007301B7000000070000000747 -:1008C000000000070000000700000007000000070C -:1008D00000000007000000070000000700000007FC -:1008E00000000007000000070000000700000007EC -:1008F00000000007000000070000000700000007DC -:00000001FF diff --git a/firmware/radeon/RS600_cp.bin.ihex b/firmware/radeon/RS600_cp.bin.ihex deleted file mode 100644 index 4a895016aca4..000000000000 --- a/firmware/radeon/RS600_cp.bin.ihex +++ /dev/null @@ -1,130 +0,0 @@ -:10000000000000004200E000000000004000E000AE -:1000100000000008000000A000000008000000A48C -:10002000000000004A554B4A000000004A4A44675D -:100030000000000055526F75000000004A7E7D658B -:10004000000000004AE74AF6000000004AD34A4A8E -:1000500000000000D689898900000000CD4ADDCF6C -:10006000000000008EBE4AE200000000C38A8A8AB7 -:10007000000000004A0F8CC800000004000CA00023 -:1000800000000038000D0012000000040000E8B479 -:1000900000000038000D0014000000040000E8B665 -:1000A00000000038000D0016000000040000E854B5 -:1000B00000000038000D0018000000040000E855A2 -:1000C00000000038000D001A000000040000E8568F -:1000D00000000038000D001C000000040000E8577C -:1000E00000000038000D001E000000040000E8249D -:1000F00000000038000D0020000000040000E8258A -:1001000000000038000D0022000000040000E8306C -:1001100000000038000D0024000000040000F0C0C2 -:1001200000000038000D0026000000040000F0C1AF -:1001300000000038000D0028000000040000F0411D -:1001400000000038000D002A000000040000F184C7 -:1001500000000038000D002C000000040000F185B4 -:1001600000000038000D002E000000040000F186A1 -:1001700000000038000D0030000000040000F1878E -:1001800000000038000D0032000000040000F18083 -:1001900000000038000D0034000000040000F3935C -:1001A00000000038000D0036000000040000F38A53 -:1001B00000000038000D0038000000040000F38E3D -:1001C000000000040000E821000000040140A0003D -:1001D00000000018000000430000000400CCE8000C -:1001E00000000004001B000100000004080048009B -:1001F00000000004001B000100000004080048008B -:1002000000000004001B000100000004080048007A -:10021000000000080000003A000000000000A000FC -:10022000000000042000451D000000040000E580DF -:1002300000000004000CE581000000040800458077 -:1002400000000004000CE5810000000800000047E9 -:10025000000000000000A00000000004000C2000CE -:10026000000000040000E50E000000040003200070 -:10027000000000280002205100000024000000516E -:10028000000000040800450F000000080000A04B1B -:10029000000000040000E565000000040000E566C1 -:1002A00000000008000000520000000403CCA5B4C8 -:1002B00000000004054320000000000400022000AC -:1002C000000000304CCCE05E0000000408274565CB -:1002D000000000300000005E0000000408004564DB -:1002E000000000040000E566000000080000005562 -:1002F00000000010008020610000000400202000A9 -:1003000000000004001B00FF00000010010000645A -:1003100000000004001F200000000004001C00FF7B -:100320000000000C0000000000000030000000721F -:100330000000000800000055000000040000E57601 -:10034000000000040000E577000000040000E50E56 -:10035000000000040000E50F000000040140A000C0 -:100360000000001800000069000000C200C0E5F9AC -:100370000000000800000069000000040014E50E01 -:10038000000000040040E50F0000000800C0006C01 -:10039000000000040000E570000000040000E571AA -:1003A0000000000C0000E572000000040000A00046 -:1003B000000000040140A000000000040000E56807 -:1003C00000000004000C200000000018000000766F -:1003D00000000004000B00000000000418C0E562EB -:1003E00000000008000000780000000800C000774E -:1003F00000000004000700D5000000380000008461 -:1004000000000030000CA08600000004080045BB7E -:1004100000000030000C2087000000000800E5BC50 -:10042000000000040000E5BB000000000000E5BC87 -:100430000000000C00120000000000040012000088 -:100440000000000C001B0002000000040000A000DF -:10045000000000040000E821000000000000E800A7 -:10046000000000040000E821000000000000E82E69 -:100470000000000402CCA0000000000400140000F2 -:1004800000000004000CE1CC00000004050DE1CDEB -:10049000000000040040000000000018000000966A -:1004A0000000000400C0A00000000008000000934D -:1004B0000000002000000098000000004200E00062 -:1004C000000000380000009F00000004000CA000A5 -:1004D000000000040014000000000004000C2000D4 -:1004E000000000040016000000000004700CE00092 -:1004F000000000080014009B000000004000E00025 -:10050000000000040240000000000004400EE00073 -:100510000000000402400000000000004000E00075 -:1005200000000004000C2000000000040240E51B55 -:10053000000000050080E50A000000050080E50BD2 -:10054000000000040022000000000004000700D5A5 -:1005500000000038000000B200000030000C2087CE -:10056000000000050880E5BD00000030000C20867A -:10057000000000050800E5BB00000030000C2087EB -:10058000000000050880E5BC00000008000000B580 -:10059000000000050080E5BD000000050000E5BB8F -:1005A000000000050080E5BC000000040021000000 -:1005B00000000004028000000000001800C000B924 -:1005C000000000404180E00000000024000000BB6B -:1005D0000000000C010000000000000C0100E51DFF -:1005E00000000004000045BB00000008000080B5CA -:1005F000000000040000F3CE000000040140A00051 -:100600000000000400CC20000000004008C053CFD0 -:100610000000000000008000000000040000F3D291 -:10062000000000040140A0000000000400CC2000F5 -:100630000000004008C053D300000000000080000C -:10064000000000040000F39D000000040140A00031 -:100650000000000400CC20000000004008C0539EB1 -:1006600000000000000080000000000403C008300B -:10067000000000004200E000000000040000A000B4 -:1006800000000004200045E0000000000000E5E15B -:10069000000000000000000100000004000700D27C -:1006A000000000000800E3940000000000000000CB -:1006B000000000040000E8C4000000040000E8C5D9 -:1006C000000000040000E8C6000000040000E92863 -:1006D000000000040000E929000000040000E92AED -:1006E00000000008000000D6000000040000E92817 -:1006F000000000040000E929000000040000E92ACD -:1007000000000008000000DD0000000000E001160D -:1007100000000004000700E1000000040800401C85 -:1007200000000004200050E7000000040000E01D6D -:1007300000000008000000E40000000402C02000E7 -:10074000000000040006000000000034000000EB80 -:1007500000000008000000E8000000040000800025 -:1007600000000000C000E0000000000000000000E9 -:100770000000000000000000000000000000000079 -:100780000000000000000000000000000000000069 -:100790000000000000000000000000000000000059 -:1007A0000000000000000000000000000000000049 -:1007B00000000004000C200000000004001D0018D0 -:1007C00000000004001A000100000034000000FBDB -:1007D000000000080000004A000000080500A04AD0 -:1007E0000000000000000000000000000000000009 -:1007F00000000000000000000000000000000000F9 -:00000001FF -/* production radeon ucode r1xx-r6xx */ diff --git a/firmware/radeon/RS690_cp.bin.ihex b/firmware/radeon/RS690_cp.bin.ihex deleted file mode 100644 index 689627441d8b..000000000000 --- a/firmware/radeon/RS690_cp.bin.ihex +++ /dev/null @@ -1,130 +0,0 @@ -:1000000000000008000000DD00000008000000DF24 -:1000100000000008000000A000000008000000A48C -:10002000000000004A554B4A000000004A4A44675D -:100030000000000055526F75000000004A7E7D658B -:10004000000000004AD74AF6000000004AC94A4AA8 -:1000500000000000CC89898900000000C34AD3C594 -:10006000000000008E4A4A4A000000004A8A8A8A3C -:10007000000000004A0F8C4A00000004000CA000A1 -:1000800000000038000D0012000000040000E8B479 -:1000900000000038000D0014000000040000E8B665 -:1000A00000000038000D0016000000040000E854B5 -:1000B00000000038000D0018000000040000E855A2 -:1000C00000000038000D001A000000040000E8568F -:1000D00000000038000D001C000000040000E8577C -:1000E00000000038000D001E000000040000E8249D -:1000F00000000038000D0020000000040000E8258A -:1001000000000038000D0022000000040000E8306C -:1001100000000038000D0024000000040000F0C0C2 -:1001200000000038000D0026000000040000F0C1AF -:1001300000000038000D0028000000040000F0411D -:1001400000000038000D002A000000040000F184C7 -:1001500000000038000D002C000000040000F185B4 -:1001600000000038000D002E000000040000F186A1 -:1001700000000038000D0030000000040000F1878E -:1001800000000038000D0032000000040000F18083 -:1001900000000038000D0034000000040000F3935C -:1001A00000000038000D0036000000040000F38A53 -:1001B00000000038000D0038000000040000F38E3D -:1001C000000000040000E821000000040140A0003D -:1001D00000000018000000430000000400CCE8000C -:1001E00000000004001B000100000004080048009B -:1001F00000000004001B000100000004080048008B -:1002000000000004001B000100000004080048007A -:10021000000000080000003A000000000000A000FC -:10022000000000042000451D000000040000E580DF -:1002300000000004000CE581000000040800458077 -:1002400000000004000CE5810000000800000047E9 -:10025000000000000000A00000000004000C2000CE -:10026000000000040000E50E000000040003200070 -:10027000000000280002205100000024000000516E -:10028000000000040800450F000000080000A04B1B -:10029000000000040000E565000000040000E566C1 -:1002A00000000008000000520000000403CCA5B4C8 -:1002B00000000004054320000000000400022000AC -:1002C000000000304CCCE05E0000000408274565CB -:1002D000000000300000005E0000000408004564DB -:1002E000000000040000E566000000080000005562 -:1002F00000000010008020610000000400202000A9 -:1003000000000004001B00FF00000010010000645A -:1003100000000004001F200000000004001C00FF7B -:100320000000000C0000000000000030000000721F -:100330000000000800000055000000040000E57601 -:10034000000000040000E577000000040000E50E56 -:10035000000000040000E50F000000040140A000C0 -:100360000000001800000069000000C200C0E5F9AC -:100370000000000800000069000000040014E50E01 -:10038000000000040040E50F0000000800C0006C01 -:10039000000000040000E570000000040000E571AA -:1003A0000000000C0000E572000000040000A00046 -:1003B000000000040140A000000000040000E56807 -:1003C00000000004000C200000000018000000766F -:1003D00000000004000B00000000000418C0E562EB -:1003E00000000008000000780000000800C000774E -:1003F00000000004000700CB00000038000000846B -:1004000000000030000CA08600000004080045BB7E -:1004100000000030000C2087000000000800E5BC50 -:10042000000000040000E5BB000000000000E5BC87 -:100430000000000C00120000000000040012000088 -:100440000000000C001B0002000000040000A000DF -:10045000000000040000E821000000000000E800A7 -:10046000000000040000E821000000000000E82E69 -:100470000000000402CCA0000000000400140000F2 -:1004800000000004000CE1CC00000004050DE1CDEB -:10049000000000040040000000000018000000966A -:1004A0000000000400C0A00000000008000000934D -:1004B0000000002000000098000000004200E00062 -:1004C000000000380000009F00000004000CA000A5 -:1004D000000000040014000000000004000C2000D4 -:1004E000000000040016000000000004700CE00092 -:1004F000000000080014009B000000004000E00025 -:10050000000000040240000000000004400EE00073 -:100510000000000402400000000000004000E00075 -:100520000000002C0010000000000000000040004F -:1005300000000004080045C8000000040024000575 -:100540000000000408004D0B00000004000C200017 -:10055000000000040240E51B000000050080E50AE1 -:10056000000000050080E50B0000000400220000F0 -:1005700000000004000700CB00000038000000B7B6 -:1005800000000030000C2087000000050880E5BD59 -:1005900000000030000C2086000000050800E5BBCC -:1005A00000000030000C2087000000050880E5BC3A -:1005B00000000008000000BA000000050080E5BD52 -:1005C000000000050000E5BB000000050080E5BC60 -:1005D0000000000400210000000000040280000070 -:1005E0000000001800C000BE000000404180E00094 -:1005F00000000024000000C00000000C010000000A -:100600000000000C0100E51D00000004000045BBD7 -:1006100000000008000080BA0000000403C0083099 -:10062000000000004200E000000000040000A00004 -:1006300000000004200045E0000000000000E5E1AB -:10064000000000000000000100000004000700C8D6 -:10065000000000000800E39400000000000000001B -:10066000000000040000E8C4000000040000E8C529 -:10067000000000040000E8C6000000040000E928B3 -:10068000000000040000E929000000040000E92A3D -:1006900000000008000000CC000000040000E92871 -:1006A000000000040000E929000000040000E92A1D -:1006B00000000008000000D30000000402C0200079 -:1006C000000000040006000000000034000000DB11 -:1006D00000000008000000D80000000400008000B6 -:1006E00000000000C000E00000000030000000E159 -:1006F000000000004200E00000000030000000E1C7 -:10070000000000004000E000000000040025001B85 -:100710000000000400230000000000040025000584 -:1007200000000034000000E60000000C00000000A3 -:10073000000000040024400000000004080045C838 -:1007400000000004002400050000000C08004D0B10 -:100750000000000000000000000000000000000099 -:100760000000000000000000000000000000000089 -:100770000000000000000000000000000000000079 -:100780000000000000000000000000000000000069 -:100790000000000000000000000000000000000059 -:1007A0000000000000000000000000000000000049 -:1007B00000000004000C200000000004001D0018D0 -:1007C00000000004001A000100000034000000FBDB -:1007D000000000080000004A000000080500A04AD0 -:1007E0000000000000000000000000000000000009 -:1007F00000000000000000000000000000000000F9 -:00000001FF -/* production radeon ucode r1xx-r6xx */ diff --git a/firmware/radeon/RS780_me.bin.ihex b/firmware/radeon/RS780_me.bin.ihex deleted file mode 100644 index 6479c106b91f..000000000000 --- a/firmware/radeon/RS780_me.bin.ihex +++ /dev/null @@ -1,1345 +0,0 @@ -:1000000000000000C020040000000000000000000C -:1000100000A0000A000000000000FFFF00284621A9 -:100020000000000000000000D900480000000000AF -:1000300000000000C02004000000000000000000DC -:1000400000A0000A000000000000000000E0000026 -:100050000000000000010000C02946200000000050 -:1000600000000000D900480000000000000000006F -:10007000C0200400000000000000000000A0000AF2 -:10008000000000008100000000204411000000007A -:1000900000000001002048110000000000042004BE -:1000A0000060441100000622000000000060000013 -:1000B000000005D10000000000600000000005DE27 -:1000C00000000000C02008000000000000000F0039 -:1000D000002816220000000000000008002116255C -:1000E000000000000000001800203625000000007D -:1000F0008D000000002044110000000000000004FA -:10010000002F022500000000000000000CE00000AD -:1001100000000018004120000040481100000019B4 -:100120000042200000204811000000008E00000066 -:1001300000204411000000000000002800204A2D8B -:1001400000000000900000000020441100000000AA -:100150000000000000204805000000000000000C26 -:1001600000211622000000000000000300281625D0 -:10017000000000000000001900211A220000000009 -:100180000000000400281A26000000000000000003 -:10019000002914C5000000000000001900203625C9 -:1001A0000000000000000000003A140200000000FF -:1001B00000000016002116250000000000000003CA -:1001C00000281625000000000000001700200E2D5A -:1001D00000000000FFFFFFFC00280E2300000000CD -:1001E00000000000002914A3000000000000001718 -:1001F00000203625000000000000800000280E22AC -:10020000000000000000000700220E230000000094 -:10021000000000000029386E0000000020000000EF -:1002200000280E22000000000000000600210E231E -:1002300000000000000000000029386E00000000EF -:100240000000000000220222000000000000000068 -:1002500014E0000000000038000000002EE0000064 -:1002600000000035000000002CE000000000003716 -:100270000000000000400E2D0000003900000008C2 -:1002800000200E2D00000000000000090040122D8B -:10029000000000460000000100400E2D0000003963 -:1002A00000000000C0200C0000000000003FFFFC28 -:1002B0000028122300000000000000020022122487 -:1002C000000000000000001F00211E2300000000AD -:1002D0000000000014E000000000003E00000008E4 -:1002E00000401C11000000410000000D00201E2DE8 -:1002F000000000000000000F00281E270000000082 -:100300000000000300221E27000000007FC0000044 -:1003100000281A23000000000000001400211A2603 -:10032000000000000000000100331A260000000059 -:100330000000000800221A26000000000000000053 -:1003400000290CC700000000000000270020362410 -:100350000000000000007F000028122100000000C3 -:1003600000001400002F0224000000000000000024 -:100370000CE000000000004B0000000100290E23EB -:10038000000000000000000E0020362300000000E6 -:100390000000E0000020441100000000FFF8000011 -:1003A00000294A230000000000000000003A2C024F -:1003B000000000000000000200220E2B00000000E0 -:1003C000FC00000000280E23000000000000000FC9 -:1003D000002036230000000000001FFF00294A23F0 -:1003E000000000000000002700204A2D000000004F -:1003F000000000000020481100000000000000295B -:1004000000200E2D00000000060A020000294A23E9 -:100410000000000000000000002048110000000063 -:100420000000000000204811000000000000000152 -:1004300000210222000000000000000014E0000083 -:1004400000000061000000002EE000000000005FDE -:10045000000000002CE000000000005E0000000032 -:1004600000400E2D000000620000000100400E2D33 -:10047000000000620000000A00200E2D00000000B5 -:100480000000000B0040122D0000006A0000000078 -:10049000C0200C0000000000003FFFFC00281223D9 -:1004A00000000000000000020022122400000000F2 -:1004B0007FC0000000281623000000000000001488 -:1004C0000021162500000000000000010033162561 -:1004D000000000008000000000280E230000000043 -:1004E0000000000000290CA3000000003FFFFC00FA -:1004F00000290E23000000000000001F00211E2321 -:10050000000000000000000014E000000000006D8A -:100510000000010000401C11000000700000000DF0 -:1005200000201E2D00000000000000F000281E2703 -:10053000000000000000000400221E270000000050 -:100540008100000000204411000000000000000DA8 -:100550000020481100000000FFFFF0FF00281A30C3 -:10056000000000000000A02800204411000000004E -:1005700000000000002948E6000000000000A0186C -:1005800000204411000000003FFFFFFF00284A2325 -:10059000000000000000A010002044110000000036 -:1005A00000000000002048040000000000000030AF -:1005B0000020162D00000000000000020029162572 -:1005C0000000000000000030002036250000000080 -:1005D000000000250020162D000000000000000093 -:1005E000002F00A300000000000000000CC000006D -:1005F00000000083000000260020162D00000000EF -:1006000000000000002F00A4000000000000000017 -:100610000CC000000000008400000000004000004A -:100620000000008A000000250020362300000000A2 -:100630000000002600203624000000000000001703 -:1006400000201E2D000000000000000200210227F3 -:10065000000000000000000014E000000000008A1C -:100660000000000000600000000005FF0000000026 -:1006700000600000000005F30000000200210E22CF -:10068000000000000000000014C000000000008D09 -:1006900000000012C040362000000093000000005F -:1006A0002EE0000000000091000000002CE000009F -:1006B000000000900000000200400E2D000000929B -:1006C0000000000300400E2D000000920000000C0E -:1006D00000200E2D00000000000000120020362334 -:1006E000000000000000000300210E2200000000B6 -:1006F0000000000014C00000000000980000A00CE2 -:10070000002044110000000000000000C02048004C -:100710000000000000000000C0404800000000A0F1 -:100720000000A00C002044110000000000000000A8 -:100730000020481100000000000000002EE0000032 -:100740000000009E000000002CE000000000009D62 -:100750000000000200400E2D0000009F000000037A -:1007600000400E2D0000009F0000000C00200E2D08 -:10077000000000000000000000204803000000000E -:1007800000000000003A0C0200000000003F0000E2 -:1007900000280E23000000000000001000210E239E -:1007A00000000000000000110020362300000000BF -:1007B0000000001E0021022B0000000000000000CD -:1007C00014C00000000000A700000016C020362062 -:1007D000000000000000001F0021022B00000000AC -:1007E0000000000014C00000000000AA0000001576 -:1007F000C0203620000000000000000800210E2B61 -:10080000000000000000007F00280E230000000010 -:1008100000000000002F0223000000000000000084 -:100820000CE00000000000E10000000027000000D4 -:10083000000000000000000000600000000002A3B3 -:1008400000000001002F0223000000000000000053 -:100850000AE00000000000B300000000006000009B -:100860000000013A81000000002044110000000057 -:100870000000000600204811000000000000000CED -:1008800000221E300000000099800000002044116A -:1008900000000000000000040020122D00000000F5 -:1008A00000000008002212240000000000000010D8 -:1008B00000201811000000000000000000291CE4C6 -:1008C0000000000000000000006048070000012F49 -:1008D0009B00000000204411000000000000000008 -:1008E00000204802000000009C000000002044118D -:1008F00000000000000000000033146F0000000042 -:100900000000000100333E23000000000000000052 -:10091000D9004800000000000000000000203C0555 -:1009200000000000810000000020441100000000D1 -:100930000000000E00204811000000000000000030 -:1009400000201010000000000000E007002044110B -:10095000000000000000000F0021022B000000003A -:100960000000000014C00000000000CB00F8FF08E9 -:1009700000204811000000009800000000404811CD -:10098000000000DC000000F000280E220000000043 -:10099000000000A0002F0223000000000000000063 -:1009A0000CC00000000000DA0000001100200E2D35 -:1009B0000000000000000001002F022300000000E2 -:1009C000000000000CE00000000000D50000000264 -:1009D000002F022300000000000000000CE00000D7 -:1009E000000000D400003F0000400C11000000D6C1 -:1009F00000001F0000400C11000000D600000F0096 -:100A000000200C11000000000038000900294A23D2 -:100A1000000000003F00000000280E2B0000000036 -:100A20000000000200220E2300000000000000076A -:100A300000494A23000000DC00380F09002048115B -:100A400000000000680000070020481100000000BE -:100A50000000000800214A270000000000000000FC -:100A60000020481100000000060A020000294A2464 -:100A700000000000000000000020481100000000FD -:100A80000000000000204811000000000000A20249 -:100A9000002044110000000000FF000000280E228A -:100AA000000000000000008000294A230000000030 -:100AB0000000002700200E2D00000000000000268E -:100AC0000020122D0000000000000000002F008315 -:100AD00000000000000000000CE00000000000EA40 -:100AE0000000000000600000000005F900000000A8 -:100AF00000400000000000EB00000000006000006B -:100B0000000005FC000000070020222D000000006E -:100B10000000000500220E2200000000001000006E -:100B200000280E23000000000000000000292068BB -:100B30000000000000000000003A0C02000000006D -:100B4000000000EF00280E2300000000000000005D -:100B500000292068000000000000001700200E2D72 -:100B6000000000000000000300210223000000003C -:100B70000000000014E00000000000F80000000B7E -:100B800000210228000000000000000014C0000046 -:100B9000000000F8000004000029222800000000E6 -:100BA0000000001400203628000000000000001C97 -:100BB00000210E22000000000000000014C0000010 -:100BC000000000FD0000A30C002044110000000004 -:100BD0000000000000204811000000000000001E7E -:100BE00000210E22000000000000000014C00000E0 -:100BF0000000010B0000A30F0020441100000000C2 -:100C00000000001100200E2D000000000000000177 -:100C1000002F022300000000000000000CC00000B4 -:100C200000000104FFFFFFFF004048110000010B1E -:100C300000000002002F022300000000000000005E -:100C40000CC00000000001070000FFFF0040481139 -:100C50000000010B00000004002F02230000000030 -:100C6000000000000CC000000000010A000000FFAE -:100C7000004048110000010B000000010020481155 -:100C8000000000000002C400002044110000000029 -:100C90000000001F00210E220000000000000000E4 -:100CA00014C00000000001120000001040210E20BE -:100CB00000000000000000130020362300000000A8 -:100CC0000000001840224A20000000000000001030 -:100CD000C0424A20000001140000000000200C1156 -:100CE0000000000000000013002036230000000078 -:100CF000000000000020481100000000000000007B -:100D000000204811000000000000000A002010111F -:100D10000000000000000000002F0224000000007E -:100D2000000000000CE000000000011B00000000BB -:100D300000204811000000000000000100531224B0 -:100D400000000117FFBFFFFF00283A2E000000003F -:100D50000000001B00210222000000000000000033 -:100D600014C000000000012E81000000002044118A -:100D7000000000000000000D0020481100000000ED -:100D80000000001800220E3000000000FC000000EF -:100D900000280E2300000000810000000020441104 -:100DA000000000000000000E0020481100000000BC -:100DB0000000000000201010000000000000E00E05 -:100DC000002044110000000007F8FF08002048112F -:100DD000000000000000000000294A23000000007D -:100DE0000000001C00201E2D000000000000000874 -:100DF00000214A27000000000000000000204811E8 -:100E000000000000060A020000294A240000000039 -:100E10000000000000204811000000000000000059 -:100E200000204811000000000000000000800000C9 -:100E300000000000810000000020441100000000BC -:100E40000000000100204811000000000000217C8B -:100E50000020441100000000008000000020481124 -:100E60000000000000000000002048060000000014 -:100E70000000000800214A270000000000000000D8 -:100E800017000000000000000004217F00604411F2 -:100E9000000006220000001F0021023000000000B8 -:100EA0000000000014C00000000006210000000443 -:100EB00000404C1100000135810000000020441169 -:100EC00000000000000000010020481100000000A8 -:100ED000000021F800204411000000000000001C68 -:100EE0000020481100000000000421F900604411B6 -:100EF0000000062200000011002102300000000066 -:100F00000000000014E000000000013C00000000B0 -:100F100000800000000000000000000000600000F1 -:100F20000000000B00000000006004110000031529 -:100F3000000000000020041100000000000000007C -:100F400000600811000001B2000000000060000015 -:100F5000000001600000FFFF40280E20000000009C -:100F600000000010C0211220000000000000FFFF60 -:100F7000402806200000000000000010C0210A20C8 -:100F800000000000000000000034146100000000B8 -:100F90000000000000741882000002BB0001A1FDE7 -:100FA00000604411000002E000003FFF002F022F0C -:100FB00000000000000000000CC00000000001471D -:100FC00000000000C040040000000001000000001C -:100FD000006000000000000B000000000060041131 -:100FE00000000315000000000020041100000000B4 -:100FF0000000000000600811000001B200003FFF87 -:10100000002F022F00000000000000000CE0000094 -:10101000000000000000000000600000000001600F -:101020000000001040210E20000000000000FFFF23 -:10103000C0281220000000000000001040211620EF -:10104000000000000000FFFFC0681A20000002BB83 -:101050000001A1FD00604411000002E000003FFF1C -:10106000002F022F00000000000000000CC0000054 -:101070000000015800000000C04004000000000112 -:101080000000225C0020441100000000000000016C -:1010900000300A2F000000000000000100210A2299 -:1010A000000000000000000300384A220000000099 -:1010B0000000225600204411000000000000001A29 -:1010C00000204811000000000000A1FC0020441195 -:1010D0000000000000000001008048110000000036 -:1010E00000000000006000000000000B0000000095 -:1010F000006000000000018F0000000000600000A0 -:10110000000001A000003FFF002F022F00000000A0 -:10111000000000000CE000000000000000000000E3 -:1011200000202C0800000000000000000020241116 -:101130000000000000000000002028110000000056 -:10114000000022560020441100000000000000169C -:1011500000204811000000000000225C0020441123 -:101160000000000000000003002048110000000003 -:1011700093800000002044110000000000000002E5 -:1011800000221E290000000000000000007048EB53 -:101190000000019C0000000000600000000002BB95 -:1011A00000000001403306200000000000000000A5 -:1011B000C03024090000000000003FFF002F022F74 -:1011C00000000000000000000CE000000000000033 -:1011D0000000000000600000000002A3000000000A -:1011E000002F022100000000000000000AE00000C3 -:1011F0000000018100000000006000000000013AD2 -:101200000000000000400000000001869500000082 -:10121000002044110000000000000000002F022107 -:1012200000000000000000000CE00000000001864B -:1012300000000000C0204800000000000000000185 -:10124000005306210000018292000000002044119A -:101250000000000000000000C0604800000001978E -:101260000001A1FD00204411000000000000001159 -:101270000020062D00000000000000000078042A75 -:10128000000002FB00000000002028090000000010 -:1012900000003FFF002F022F0000000000000000B0 -:1012A0000CC000000000017400000000C0400400F9 -:1012B000000000010000021000600411000003158E -:1012C00000003FFF002F022F000000000000000080 -:1012D0000CE000000000019400000015C020362042 -:1012E0000000000000000016C020362000000000B2 -:1012F0003F800000002004110000000046000000B4 -:1013000000600811000001B2000000000080000031 -:10131000000000000000A1FC0020441100000000BB -:1013200000003FFF002F022F00000000000000001F -:101330000CC000000000019B00000001008048116B -:1013400000000000000000210080481100000000A3 -:101350000000FFFF40280E200000000000000010E9 -:10136000C0211220000000000000FFFF40281620CE -:101370000000000000000010C0811A2000000000E2 -:101380008100000000204411000000000000000661 -:1013900000204811000000000000000800221E305C -:1013A000000000000000002900201A2D00000000AD -:1013B0000000E0000020441100000000FFFBFF09D6 -:1013C00000204811000000000000000F0020222D26 -:1013D0000000000000001FFF00294A280000000054 -:1013E000000000060020222D000000000000000088 -:1013F000002920E80000000000000000002048084C -:101400000000000000000000002048110000000063 -:10141000060A020000294A26000000000000000021 -:1014200000204811000000000000000000204811CA -:101430000000000000000100002018110000000062 -:101440000000000800621E280000012F00000008B4 -:1014500000822228000000000002C0000020441189 -:10146000000000000000001500600E2D000001BD0E -:101470000000001600600E2D000001BD0000C00835 -:1014800000204411000000000000001700200E2D75 -:10149000000000000000000014C00000000001B9BE -:1014A0000000000000200411000000000000000007 -:1014B0000020480100000000390000000020481111 -:1014C00000000000000000000020481100000000A3 -:1014D000000000000080480200000000000000182A -:1014E00000202E2D0000000000000000003B0D63D6 -:1014F000000000000000000800224A230000000055 -:101500000000001000224A23000000000000001824 -:1015100000224A2300000000000000000080480371 -:101520000000000000000000006000000000000B50 -:10153000000010000060041100000315000000000E -:1015400000200411000000000000000000600811ED -:10155000000001B2000000070021062F000000007B -:101560000000001300200A2D000000000000000110 -:1015700000202C11000000000000FFFF4028222066 -:10158000000000000000000F0026222800000000DC -:101590000000001040212620000000000000000F85 -:1015A000002626290000000000000000002028027C -:1015B000000000000000225600204411000000003E -:1015C0000000001B00204811000000000000000087 -:1015D000002F022100000000000000000CE00000CD -:1015E000000001E00000225C002044110000000027 -:1015F0000000008100204811000000000000A1FC54 -:1016000000204411000000000000000100204811EB -:10161000000000000000008000201C1100000000FD -:1016200000000000002F0227000000000000000062 -:101630000CE00000000001DC000000000060000081 -:10164000000001E90000000100531E27000001D83E -:101650000000000100202C11000000000000001F0D -:1016600000280A22000000000000001F00282A2A8B -:10167000000000000000000100530621000001D11D -:101680000000225C00204411000000000000000265 -:1016900000304A2F000000000000A1FC002044118F -:1016A00000000000000000010020481100000000C0 -:1016B0000000000100301E2F0000000000000000AC -:1016C000002F022700000000000000000CE00000D6 -:1016D000000000000000000000600000000001E9C0 -:1016E0000000000100531E27000001E50000FFFF7D -:1016F00040280E20000000000000000F00260E23EE -:101700000000000000000010C021122000000000B6 -:101710000000000F0026122400000000000000005E -:1017200000201411000000000000000000601811EB -:10173000000002BB0001A1FD0020441100000000D8 -:1017400000000000002F022B00000000000000003D -:101750000CE00000000001F8000000100022162834 -:1017600000000000FFFF0000002816250000000018 -:101770000000FFFF00281A29000000000000000000 -:10178000002948C500000000000000000020480AB1 -:10179000000000000000000000202C1100000000EC -:1017A000000000100022162300000000FFFF0000D0 -:1017B00000281625000000000000FFFF00281A2462 -:1017C0000000000000000000002948C500000000E3 -:1017D0000000000000731503000002050000000077 -:1017E0000020180500000000000000000073152410 -:1017F0000000020500000000002D14C500000000DC -:1018000000000000003008A20000000000000000FE -:101810000020480200000000000000000020280214 -:101820000000000000000000002020030000000075 -:101830000000000000802404000000000000000FF1 -:1018400000210225000000000000000014C000007C -:101850000000062100000000002B1405000000001D -:1018600000000001009016250000000000000000AC -:10187000006000000000000B000000000060041188 -:10188000000003150000000000200411000000000B -:101890000000000000600811000001B200002256A4 -:1018A00000204411000000000000001A00294A2214 -:1018B0000000000000000000C02000000000000048 -:1018C00000003FFF002F022F00000000000000007A -:1018D0000CE000000000000000000000C020040038 -:1018E000000000000000225C002044110000000005 -:1018F0000000000300384A21000000000000A1FCA5 -:1019000000204411000000000000000100204811E8 -:10191000000000000000FFFF40281220000000002F -:1019200000000010C0211A20000000000000FFFF8E -:1019300040280E200000000000000010C0211620EA -:10194000000000000000000000741465000002BBED -:101950000001A1FD00604411000002E00000000150 -:10196000003306210000000000000000002F0221CB -:1019700000000000000000000CC000000000021980 -:1019800000003FFF002F022F0000000000000000B9 -:101990000CC000000000021200000000C040040063 -:1019A000000000010000000000600000000005DEF3 -:1019B000000000000040040F0000021300000000BF -:1019C00000600000000005D1000000000060000081 -:1019D000000005DE00000210006004110000031585 -:1019E0000000000000600000000001A000000000F6 -:1019F000006000000000019C00000000006000008A -:101A0000000002BB0000000000600000000002A314 -:101A1000938000000020441100000000000000003E -:101A2000002048080000000000000000002F022FE6 -:101A300000000000000000000AE000000000023288 -:101A400000000000006000000000013A00000000FB -:101A50000040000000000236950000000020441104 -:101A60000000000000000000002F022F0000000016 -:101A7000000000000CE00000000002360000000042 -:101A8000C0404800000002339200000000204411D2 -:101A90000000000000000000C0204800000000001E -:101AA0000000225600204411000000000000001633 -:101AB00000204811000000000000225C00204411BA -:101AC000000000000000000300204811000000009A -:101AD0000000A1FC002044110000000000000001F3 -:101AE00000204811000000000001A1FD0020441169 -:101AF000000000000000000000600411000002FB74 -:101B000000000000C04004000000000100000000D0 -:101B100000600000000005D10000A00C002044116E -:101B20000000000000000000C0204800000000008D -:101B300000000000C040480000000000000000005D -:101B4000006000000000000B0000001840210A2087 -:101B50000000000000000003002F0222000000002F -:101B6000000000000AE000000000024C0000001429 -:101B70000020222D00000000000801010029222879 -:101B800000000000000000140020362800000000C3 -:101B90000000A30C00204411000000000000000021 -:101BA000C02048000000000000000000C0204800E5 -:101BB0000000000000000000C0404800000002518A -:101BC00000000000006000000000000B000000109A -:101BD00000600411000003153F8000000020041184 -:101BE000000000000000000000600811000001B2C9 -:101BF0000000225C002044110000000000000003EF -:101C000000204811000000000000000000600000FB -:101C10000000027C0000001700201E2D00000000C4 -:101C20000000000100211E2700000000000000004D -:101C300014E000000000026A0000001200201E2DC7 -:101C4000000000000000FFFF00281E270000000029 -:101C50000000000000341C2700000000000000000D -:101C600012C000000000025F0000000000201C11F4 -:101C70000000000000000000002F00E50000000050 -:101C80000000000008C00000000002620000000028 -:101C900000201407000000000000001200201E2D8C -:101CA000000000000000001000211E2700000000BE -:101CB0000000000000341C4700000000000000008D -:101CC00012C00000000002670000000000201C118C -:101CD0000000000000000000002F00E600000000EF -:101CE0000000000008C000000000026A00000000C0 -:101CF0000020180700000000000000000060000045 -:101D0000000002C100002256002044110000000023 -:101D1000000000000034202300000000000000004C -:101D200012C00000000002720000000000342044D5 -:101D3000000000000000000012C00000000002715E -:101D40000000001600404811000002760000001854 -:101D500000404811000002760000000000342044DA -:101D6000000000000000000012C00000000002752A -:101D70000000001700404811000002760000001922 -:101D800000204811000000000000A1FC00204411C8 -:101D900000000000000000010020481100000000C9 -:101DA0000001A1FD00604411000002E900003FFFB6 -:101DB000002F022F00000000000000000CC00000F7 -:101DC0000000025600000000C040040000000001B6 -:101DD0000000001040210620000000000000FFFF6E -:101DE000C0280A20000000000000001040210E2042 -:101DF000000000000000FFFFC028122000000000CB -:101E00000000001040211620000000000000FFFF2D -:101E1000C0881A200000000081000000002044114A -:101E20000000000000000001002048110000000038 -:101E3000000420040060441100000622000000009D -:101E400000600000000005D100000000C06000003C -:101E5000000002A30000000500200A2D0000000081 -:101E60000000000800220A22000000000000002BF1 -:101E700000201A2D000000000000001C00201E2D74 -:101E8000000000000000700000281E270000000075 -:101E90000000000000311CE6000000000000002AE5 -:101EA00000201A2D000000000000000C00221A265D -:101EB0000000000000000000002F00E6000000000D -:101EC0000000000006E00000000002920000000098 -:101ED00000201C11000000000000000000200C1178 -:101EE000000000000000002B00203623000000004E -:101EF0000000001000201811000000000000000089 -:101F000000691CE20000012F9380000000204411B2 -:101F10000000000000000000002048070000000052 -:101F200095000000002044110000000000000000A7 -:101F3000002F022F00000000000000000CE0000055 -:101F40000000029D0000000100333E2F0000000051 -:101F500000000000D90048000000000092000000CE -:101F6000002044110000000000000000C0204800D4 -:101F7000000000000000001C0040362700000000A8 -:101F80000000000CC0220A20000000000000002910 -:101F9000002036220000000000000028C04036204B -:101FA000000000000000A2A4002044110000000076 -:101FB000000000090020481100000000A1000000FE -:101FC00000204411000000000000000100804811C2 -:101FD000000000000000002100201E2D0000000075 -:101FE00000000000002C1CE30000000000000021A5 -:101FF00000203627000000000000002200201E2DD7 -:102000000000000000000000002C1CE400000000A4 -:1020100000000022002036270000000000000023FE -:1020200000201E2D0000000000000000003120A351 -:102030000000000000000000002D1D07000000004F -:1020400000000023002036270000000000000024CC -:1020500000201E2D0000000000000000003120C400 -:102060000000000000000000002D1D07000000001F -:10207000000000240080362700000000000000213E -:10208000002036230000000000000022002036243B -:10209000000000000000000000311CA30000000050 -:1020A0000000002300203627000000000000000090 -:1020B00000311CC40000000000000024008036270E -:1020C000000000000000001A002036270000000079 -:1020D0000000001B00203628000000000000001750 -:1020E00000201E2D00000000000000020021022739 -:1020F000000000000000000014C00000000002DC2E -:102100000000000000400000000002D90000001A9A -:1021100000203627000000000000001B00203628A9 -:10212000000000000000001700201E2D000000002D -:102130000000000200210227000000000000000053 -:1021400014E00000000002D9000000030021022773 -:10215000000000000000000014E00000000002DCAD -:102160000000002300201E2D0000000000000000E1 -:10217000002E00E1000000000000000002C000008E -:10218000000002DC0000002100201E2D00000000E5 -:1021900000000000003120A100000000000000004D -:1021A000002E00E8000000000000000006C0000053 -:1021B000000002DC0000002400201E2D00000000B2 -:1021C00000000000002E00E20000000000000000FF -:1021D00002C00000000002DC0000002200201E2DD2 -:1021E0000000000000000000003120C200000000DC -:1021F00000000000002E00E80000000000000000C9 -:1022000006C00000000002DC0000000000600000CA -:10221000000005FF0000000000600000000002B5A3 -:102220000000000000400000000002DE000000008E -:1022300000600000000002B5000000000060000027 -:10224000000005F60000000000400000000002DE73 -:102250000000000000600000000002A70000000075 -:1022600000400000000002DE0000001A00201E2DC9 -:10227000000000000000001B0080222D0000000074 -:102280000000001000221E230000000000000000DB -:1022900000294887000000000000000000311CA356 -:1022A000000000000000001000221E2700000000B7 -:1022B0000000000000294887000000000000001016 -:1022C00000221E230000000000000000003120C496 -:1022D000000000000000FFFF00282228000000008E -:1022E0000000000000894907000000000000001005 -:1022F00000221E2300000000000000000029488783 -:10230000000000000000001000221E21000000005C -:102310000000000000294847000000000000000005 -:1023200000311CA3000000000000001000221E2746 -:1023300000000000000000000029488700000000A5 -:102340000000000000311CA100000000000000108F -:1023500000221E270000000000000000002948475E -:10236000000000000000001000221E2300000000FA -:1023700000000000003120C4000000000000FFFF4A -:102380000028222800000000000000000029490762 -:10239000000000000000001000221E2100000000CC -:1023A00000000000003120C2000000000000FFFF1C -:1023B00000282228000000000000000000894907D2 -:1023C000000000000000001000221E23000000009A -:1023D0000000000000294887000000000000000104 -:1023E00000220A210000000000000000003308A2C3 -:1023F000000000000000001000221E22000000006B -:102400000000001000212222000000000000000057 -:1024100000294907000000000000000000311CA353 -:10242000000000000000001000221E270000000035 -:1024300000000000002948870000000000000001A3 -:1024400000220A210000000000000000003008A265 -:10245000000000000000001000221E22000000000A -:1024600000000010002122220000000000000000F7 -:1024700000294907000000000000001000221E2370 -:102480000000000000000000003120C40000000037 -:102490000000FFFF002822280000000000000000CC -:1024A000002949070000000000000000003808C5AE -:1024B00000000000000000000030084100000000A3 -:1024C0000000000100220A220000000000000000BD -:1024D000003308A2000000000000001000221E22AD -:1024E0000000000000000010002122220000000077 -:1024F00000000000008949070000000000000017EC -:102500000020222D000000000000000014C0000088 -:1025100000000318FFFFFFEF002806210000000065 -:10252000000000140020222D000000000000F8E050 -:1025300000204411000000000000000000294901B3 -:1025400000000000000000000089490100000000B8 -:102550000000000000204811000000000000000002 -:102560000020481100000000060A02000080481107 -:102570000000000000000000C0200000000000007B -:1025800097000000C020441100000000000000007F -:10259000C0204811000000008A0000000020441103 -:1025A00000000000000000000020481100000000B2 -:1025B0000000225C00204411000000000000000028 -:1025C000C0204800000000000000A1FC00204411D1 -:1025D0000000000000000000C020480000000000D3 -:1025E00000000000C0200400000000000000000007 -:1025F00000A0000A0000000097000000C020441165 -:102600000000000000000000C02048110000000091 -:102610008A000000C02044110000000000000000FB -:1026200000204811000000000000225C002044113E -:102630000000000000000000C02048000000000072 -:102640000000A1FC00204411000000000000000078 -:10265000C02048000000000000000000C02004006E -:10266000000000000000000000A0000A00000000C0 -:10267000970000000020441100000000000000004E -:1026800000204811000000008A00000000204411D2 -:1026900000000000000000000020481100000000C1 -:1026A0000000225C00204411000000000000000037 -:1026B000C0204800000000000000A1FC00204411E0 -:1026C0000000000000000000C020480000000000E2 -:1026D00000000000C0200400000000000000000016 -:1026E00000A0000A00000000970000000020441134 -:1026F0000000000000000000002048110000000061 -:102700008A000000002044110000000000000000CA -:1027100000204811000000000000225C002044114D -:102720000000000000000000C02048000000000081 -:102730000000A1FC00204411000000000000000087 -:10274000C0204800000000000001A1FD002044114D -:102750000000000000000000D90048000000000058 -:1027600000000000C0200400000000000000000085 -:1027700000A0000A000000000000225700204411C1 -:102780000000000000000003C0484A2000000000D4 -:102790000000225D00204411000000000000000045 -:1027A000C040480000000000000000000060000081 -:1027B000000005DE00000000C0200800000000004E -:1027C0000000225C00204411000000000000000313 -:1027D00000384A22000000000000A1FC0020441143 -:1027E0000000000000000000C020480000000000C1 -:1027F0000001A1FD002044110000000000000000C5 -:10280000002F022200000000000000000CE0000089 -:102810000000000000000000402048000000000010 -:102820000000000140304A200000000000000002CB -:10283000C0304A20000000000000000100530A22BE -:10284000000003550000003FC0280A2000000000DF -:102850008100000000204411000000000000000181 -:102860000020481100000000000021F80020441161 -:1028700000000000000000180020481100000000C7 -:10288000000421F90060441100000622000000113C -:1028900000210230000000000000000014E00000F1 -:1028A0000000035E00000014002F02220000000060 -:1028B000000000000CC000000000036C0001A2A496 -:1028C00000204411000000000000000000604802E9 -:1028D00000000374000021000020441100000000EB -:1028E00000000000C02048000000000000000000C0 -:1028F000C02048000000000000000000C020480088 -:102900000000000000000000C0404800000000007F -:1029100000000004002F0222000000000000000060 -:102920000CC00000000003700001A2A400204411AC -:1029300000000000000000000040480200000367A3 -:1029400000000028002F022200000000000000000C -:102950000CC00000000005BA0001A2A40020441130 -:102960000000000000000000004048020000036773 -:102970000000002C00203626000000000000004966 -:1029800000201811000000000000003F0020481146 -:10299000000000000000000100331A2600000000C3 -:1029A00000000000002F02260000000000000000D0 -:1029B0000CC00000000003760000002C00801A2DDF -:1029C000000000000000003FC0280A2000000000B6 -:1029D00000000015002F022200000000000000008F -:1029E0000CE000000000038C00000006002F022213 -:1029F00000000000000000000CE00000000003B731 -:102A000000000016002F022200000000000000005D -:102A10000CE00000000003B900000020002F02229B -:102A200000000000000000000CE00000000003A215 -:102A30000000000F002F0222000000000000000034 -:102A40000CE00000000003AE00000010002F022286 -:102A500000000000000000000CE00000000003AED9 -:102A60000000001E002F02220000000000000000F5 -:102A70000CE00000000003960000A2A40020441116 -:102A800000000000000000000040480200000000BC -:102A90000800000000290A220000000000000003D6 -:102AA00040210E20000000000000000CC021122078 -:102AB00000000000000800000028122400000000B0 -:102AC00000000014C02216200000000000000000DA -:102AD000002914A4000000000000A2A4002044115A -:102AE0000000000000000000002948A200000000D3 -:102AF0000000A1FE002044110000000000000000C2 -:102B00000040480300000000810000000020441144 -:102B1000000000000000000100204811000000003B -:102B2000000021F800204411000000000000001601 -:102B30000020481100000000000421F90060441149 -:102B400000000622000000150021023000000000F5 -:102B50000000000014E00000000003980000210EB7 -:102B6000002044110000000000000000C0204800C8 -:102B70000000000000000000C0204800000000002D -:102B80000000A2A40020441100000000000000008A -:102B900000404802000000008100000000204411B5 -:102BA00000000000000000010020481100000000AB -:102BB000000021F800204411000000000000001770 -:102BC0000020481100000000000421F900604411B9 -:102BD0000000062200000003002102300000000077 -:102BE0000000000014E00000000003A40000210821 -:102BF000002044110000000000000000C020480038 -:102C00000000000000000000C0204800000000009C -:102C10000000A2A4002044110000000000000000F9 -:102C200000404802000000000000A2A4002044115F -:102C3000000000000000000000204802000000002A -:102C4000800000000020441100000000000000008F -:102C50000020481100000000810000000020441105 -:102C600000000000000000100020481100000000DB -:102C70000000000000200010000000000000000024 -:102C800014C00000000003B4000000000040000079 -:102C9000000000000001A2A4002044110000000078 -:102CA0000000000600404811000000000001A2A43E -:102CB00000204411000000000000001600604811D0 -:102CC000000003740000000000400000000000004D -:102CD00000000000C020080000000000000000000C -:102CE000C0200C00000000000000001D0021022395 -:102CF000000000000000000014E00000000003CE0F -:102D000081000000002044110000000000000001CC -:102D10000020481100000000000021F800204411AC -:102D20000000000000000018002048110000000012 -:102D3000000421F900604411000006220000001187 -:102D400000210230000000000000000014E000003C -:102D5000000003C200002100002044110000000018 -:102D600000000000002048020000000000000000F9 -:102D70000020480300000000BABECAFE002048112F -:102D800000000000CAFEBABE00204811000000008A -:102D90000000A2A400204411000000000000000474 -:102DA0000040481100000000000021700020441184 -:102DB00000000000000000000020480200000000A9 -:102DC0000000000000204803000000008100000017 -:102DD00000204411000000000000000A00204811FB -:102DE00000000000000000000020001000000000B3 -:102DF0000000000014C00000000003D38C0000009D -:102E00000020441100000000CAFEBABE0040481174 -:102E100000000000810000000020441100000000BC -:102E200000000001002048110000000000003FFFEA -:102E300040280A20000000008000000040280E20EA -:102E40000000000040000000C02812200000000028 -:102E50000004000000694622000006220000000075 -:102E6000002014100000000000000000002F0223CA -:102E700000000000000000000CC00000000003E1A2 -:102E800000000000C0401800000003E400003FFF05 -:102E9000C0281A2000000000000400000069462637 -:102EA00000000622000000000020181000000000B2 -:102EB00000000000002F02240000000000000000BD -:102EC0000CC00000000003E700000000C0401C0030 -:102ED000000003EA00003FFFC0281E2000000000A1 -:102EE00000040000006946270000062200000000E0 -:102EF00000201C1000000000000000000020440220 -:102F00000000000000000000002820C500000000B4 -:102F100000000000004948E800000000A580000013 -:102F200000200811000000000000200000200C110B -:102F30000000000083000000006044110000041243 -:102F4000000000000020440200000000000000001B -:102F5000C0204800000000000000000040204800A1 -:102F6000000000000000001FC0210220000000003F -:102F70000000000014C00000000003F70000201053 -:102F800000204411000000000000800000204811D3 -:102F9000000000000000FFFFC0481220000003FFF7 -:102FA000A780000000200811000000000000A00021 -:102FB00000200C110000000083000000006044119C -:102FC0000000041200000000002044020000000085 -:102FD00000000000C02048000000000000000000C9 -:102FE000C0204800000000000000FFFFC0281220A1 -:102FF00000000000830000000020441100000000D9 -:103000000000000000304883000000008400000041 -:10301000002044110000000000000000C020480013 -:1030200000000000000000001D0000000000000083 -:103030008300000000604411000004120000000042 -:10304000C040040000000001A98000000020081119 -:10305000000000000000C00000400C11000003FA56 -:10306000AB80000000200811000000000000F8E024 -:1030700000400C11000003FAAD8000000020081190 -:10308000000000000000F88000400C11000003FA6E -:10309000B380000000200811000000000000F3FCD5 -:1030A00000400C11000003FAAF800000002008115E -:1030B000000000000000E00000400C11000003FAD6 -:1030C000B180000000200811000000000000F000A6 -:1030D00000400C11000003FA83000000002044119E -:1030E00000000000000021480020481100000000FE -:1030F00084000000002044110000000000000000D7 -:10310000C020480000000000000000001D0000007A -:10311000000000000000000000800000000000002F -:1031200001182000C0304620000000000000000010 -:10313000D90048000000000000000000C02004008A -:10314000000000000000000000A0000A00000000D5 -:103150000218A000C030462000000000000000005F -:10316000D90048000000000000000000C02004005A -:10317000000000000000000000A0000A00000000A5 -:103180000318C000C030462000000000000000000E -:10319000D90048000000000000000000C02004002A -:1031A000000000000000000000A0000A0000000075 -:1031B0000418F8E0C03046200000000000000000C5 -:1031C000D90048000000000000000000C0200400FA -:1031D000000000000000000000A0000A0000000045 -:1031E0000518F880C03046200000000000000000F4 -:1031F000D90048000000000000000000C0200400CA -:10320000000000000000000000A0000A0000000014 -:103210000618E000C030462000000000000000005A -:10322000D90048000000000000000000C020040099 -:10323000000000000000000000A0000A00000000E4 -:103240000718F000C0304620000000000000000019 -:10325000D90048000000000000000000C020040069 -:10326000000000000000000000A0000A00000000B4 -:103270000818F3FCC03046200000000000000000E9 -:10328000D90048000000000000000000C020040039 -:10329000000000000000000000A0000A0000000084 -:1032A00000000033C0300A200000000000000000D1 -:1032B000C0403440000000000000003000200A2D13 -:1032C0000000000000000000C0290C4000000000C9 -:1032D0000000003000203623000000000000000045 -:1032E000C0200400000000000000000000A0000A50 -:1032F00000000000860000000020441100000000D3 -:1033000000000000004048010000000085000000AF -:10331000C0204411000000000000000000404801EF -:10332000000000000000217C00204411000000008B -:1033300000000018402102200000000000000000F2 -:1033400014C000000000044700800000C0494A206B -:103350000000044800000000C020480000000000F9 -:1033600000000000C0204800000000000000000035 -:10337000C02048000000000081000000002044112F -:1033800000000000000000010020481100000000C3 -:1033900000000000C0200800000000000000000441 -:1033A000002F0222000000000000000006E00000E4 -:1033B000000004500000000400200811000000007C -:1033C0000000000017000000000000000004217F42 -:1033D00000604411000006220000001F002102309E -:1033E000000000000000000014C000000000000009 -:1033F0000000000000404C020000045000000000EB -:10340000C0200C000000000000000000C0201000E0 -:103410000000000000000000C020140000000000B8 -:1034200000000000C02018000000000000000000A4 -:10343000C0201C000000000000007F0000280A21BE -:103440000000000000004500002F022200000000E4 -:10345000000000000CE0000000000461000000001B -:10346000C02020000000000000000004002F0228FF -:10347000000000000000000006E000000000046101 -:1034800000000004002020110000000000000000E7 -:1034900017000000000000000000001000280A23B0 -:1034A0000000000000000010002F022200000000B9 -:1034B000000000000CE00000000004698100000032 -:1034C000002044110000000000000001002048110D -:1034D00000000000000400000069462400000622ED -:1034E00000000000004000000000046E81000000A9 -:1034F00000204411000000000000000000204811DE -:10350000000000000000216D0020441100000000B8 -:10351000000000000020480400000000000000003F -:10352000006048050000062700000000002824F085 -:10353000000000000000000700280A23000000002F -:1035400000000001002F0222000000000000000027 -:103550000AE000000000047500000000002F00C910 -:10356000000000000000000004E000000000048EE5 -:1035700000000000004000000000049B000000026A -:10358000002F022200000000000000000AE00000FE -:103590000000047A00000000002F00C900000000B5 -:1035A0000000000002E000000000048E00000000A7 -:1035B000004000000000049B00000003002F0222D6 -:1035C00000000000000000000AE000000000047F8E -:1035D00000000000002F00C90000000000000000F3 -:1035E0000CE000000000048E00000000004000001D -:1035F0000000049B00000004002F022200000000D5 -:10360000000000000AE00000000004840000000048 -:10361000002F00C900000000000000000AE00000C8 -:103620000000048E00000000004000000000049B29 -:1036300000000005002F0222000000000000000032 -:103640000AE000000000048900000000002F00C90B -:10365000000000000000000006E000000000048EF2 -:1036600000000000004000000000049B0000000675 -:10367000002F022200000000000000000AE000000D -:103680000000048E00000000002F00C900000000B0 -:103690000000000008E000000000048E00000000B0 -:1036A000004000000000049B00007F0000280A2169 -:1036B0000000000000004500002F02220000000072 -:1036C000000000000AE00000000000000000000808 -:1036D00000210A23000000000000000014C00000C8 -:1036E000000004980000216900204411000000003F -:1036F00000000000C02048000000000000000000A2 -:10370000C02048000000000000000000C020480069 -:1037100000000000CAFEBABE0040481100000000D0 -:1037200000000000C0204400000000000000000075 -:10373000C02000000000000000000000C040480061 -:103740000000000000007F0000280A2100000000A7 -:1037500000004500002F02220000000000000000D1 -:103760000AE00000000004A100000000C0200000EA -:103770000000000000000000C02000000000000069 -:1037800000000000C0400000000000000000000039 -:1037900000404C080000046100000000C020080048 -:1037A000000000000000001040210E20000000007A -:1037B0000000001140211220000000000000001253 -:1037C0004021162000000000000021690020441163 -:1037D000000000000000000000204802000000007F -:1037E0000000000000210225000000000000000091 -:1037F00014E00000000004AB00040000C0494A20AF -:10380000000004ACFFFBFFFFC0284A2000000000BE -:103810000000000000210223000000000000000062 -:1038200014E00000000004B800000000C0204800C0 -:103830000000000000000000C02048000000000060 -:103840000000000000210224000000000000000031 -:1038500014C000000000000081000000002044119E -:10386000000000000000000C0020481100000000D3 -:103870000000000000200010000000000000000018 -:1038800014C00000000004B4A00000000020441197 -:1038900000000000CAFEBABE00404811000000004F -:1038A000810000000020441100000000000000041E -:1038B00000204811000000000000216B002044118E -:1038C0000000000000000000C020481000000000C0 -:1038D00081000000002044110000000000000005ED -:1038E00000204811000000000000216C002044115D -:1038F0000000000000000000C02048100000000090 -:1039000000000000002F0224000000000000000062 -:103910000CE000000000000000000000004000007B -:10392000000004B200000000C0210A2000000000D6 -:103930000000000014C00000000004CB8100000063 -:103940000020441100000000000000000020481189 -:10395000000000000000216D002044110000000064 -:1039600000000000C020480000000000000000002F -:10397000C060480000000627000000000040000072 -:10398000000004CF8100000000204411000000006E -:1039900000000001002048110000000000040000A9 -:1039A000C02946200000000000000000C0600000A8 -:1039B0000000062200000001002102220000000099 -:1039C0000000000014C00000000004D600002169BF -:1039D000002044110000000000000000C02048004A -:1039E0000000000000000000C020480000000000AF -:1039F000000000000020481000000000CAFEBABE0F -:103A0000004048110000000000000000C0204400F9 -:103A10000000000000000000C0404810000000004E -:103A2000810000000020441100000000000000019F -:103A30000020481100000000000021F8002044117F -:103A4000000000000000000E0020481100000000EF -:103A5000000421F90060441100000622000000006B -:103A600000210230000000000000000014C000002F -:103A7000000004D800002180002044110000000054 -:103A800000000000C020480000000000000000000E -:103A9000C02000000000000000000000C02048001E -:103AA0000000000000000000C02000000000000036 -:103AB00000000000C04048000000000000000003BB -:103AC00000333E2F00000000000000010021022111 -:103AD000000000000000000014E0000000000508E5 -:103AE0000000002C00200A2D00000000000400004F -:103AF00018E00C11000004F70000000100333E2F15 -:103B000000000000000021690020441100000000B6 -:103B1000000000000020480200000000000000003B -:103B200000204803000000000000000800300A22C6 -:103B30000000000000000000C0204800000000005D -:103B400000000000C02048000000000000002169C3 -:103B50000020441100000000000000000020480286 -:103B600000000000000000000020480300000000EA -:103B70000000000800300A220000000000000000E1 -:103B8000C02048000000000000000000D8C048002D -:103B9000000004EB00002169002044110000000037 -:103BA00000000000002048020000000000000000AB -:103BB00000204803000000000000000800300A2236 -:103BC0000000000000000000C020480000000000CD -:103BD00000000000C0204800000000000000002D90 -:103BE0000020122D000000000000000000290C83BE -:103BF00000000000000021690020441100000000C6 -:103C0000000000000020480200000000000000004A -:103C100000204803000000000000000800300A22D5 -:103C20000000000000000000C0204800000000006C -:103C300000000000C020480000000000000000114B -:103C400000210224000000000000000014C0000059 -:103C5000000000000000000000400000000004B26E -:103C60000000002CC0203620000000000000002DC5 -:103C7000C0403620000000000000000F002102219B -:103C8000000000000000000014C000000000050D4E -:103C900000000000006000000000000B00000000B9 -:103CA000D90000000000000000000000C040040037 -:103CB00000000001B50000000020441100000000D9 -:103CC000000020000020481100000000B6000000A5 -:103CD00000204411000000000000A0000020481156 -:103CE00000000000B70000000020441100000000A8 -:103CF0000000C0000020481100000000B8000000D3 -:103D000000204411000000000000F8E000204811ED -:103D100000000000B9000000002044110000000075 -:103D20000000F8800020481100000000BA000000E8 -:103D300000204411000000000000E00000204811B5 -:103D400000000000BB000000002044110000000043 -:103D50000000F0000020481100000000BC0000003E -:103D600000204411000000000000F3FC0020481176 -:103D7000000000008100000000204411000000004D -:103D8000000000020020481100000000000000FFB9 -:103D900000280E300000000000000000002F022369 -:103DA00000000000000000000CC000000000052121 -:103DB00000000000C020080000000000000000001B -:103DC00014C00000000005360000000000200C11A7 -:103DD000000000000000001C00203623000000004E -:103DE0000000002B00203623000000000000002906 -:103DF00000203623000000000000002800203623A9 -:103E00000000000000000017002036230000000022 -:103E100000000025002036230000000000000026DE -:103E2000002036230000000000000015002036238B -:103E300000000000000000160020362300000000F3 -:103E4000FFFFE00000200C11000000000000002136 -:103E5000002036230000000000000022002036234E -:103E60000000000000001FFF00200C1100000000F7 -:103E70000000002300203623000000000000002482 -:103E80000020362300000000F1FFFFFF00283A2E3B -:103E9000000000000000001AC0220E2000000000F8 -:103EA000000000000029386E0000000081000000C2 -:103EB000002044110000000000000006002048110E -:103EC000000000000000002A402036200000000012 -:103ED00087000000002044110000000000000000E6 -:103EE000C0204800000000000000A1F400204411A0 -:103EF000000000000000000000204810000000004A -:103F00009D00000000204411000000000000001F80 -:103F100040214A20000000009600000000204411CB -:103F20000000000000000000C02048000000000069 -:103F300000000000C0200C00000000000000000095 -:103F4000C0201000000000000000001F0021162407 -:103F5000000000000000000014C00000000000008D -:103F60000000001D002036230000000000000003B8 -:103F700000281E2300000000000000080022222369 -:103F800000000000FFFFF0000028222800000000D1 -:103F900000000000002920E8000000000000001FD1 -:103FA00000203628000000000000001800211E2319 -:103FB0000000000000000020002036270000000064 -:103FC0000000000200221624000000000000000093 -:103FD000003014A8000000000000001E002036255C -:103FE000000000000000000300211A24000000006F -:103FF0001000000000281A2600000000EFFFFFFF5D -:1040000000283A2E0000000000000000004938CED1 -:10401000000006100000000140280A2000000000F7 -:104020000000000640280E200000000000000300F1 -:10403000C028122000000000000000080021122407 -:104040000000000000000000C0201620000000005A -:1040500000000000C0201A20000000000000000046 -:1040600000210222000000000000000014C0000037 -:104070000000056C810000000020441100000000D9 -:10408000000000010020481100000000000022583C -:1040900000300A24000000000004000000694622ED -:1040A00000000622000021690020441100000000E9 -:1040B0000000000000204805000000000002000091 -:1040C00000294A26000000000000000000204810DF -:1040D00000000000CAFEBABE002048110000000027 -:1040E00000000002002F022300000000000000007A -:1040F0000CC000000000057400000000C0201C106F -:104100000000000000000000C04000000000058228 -:1041100000000002002F0223000000000000000049 -:104120000CC0000000000574810000000020441154 -:104130000000000000000001002048110000000005 -:104140000000225800300A24000000000004000093 -:10415000006946220000062200000000C0201C105A -:104160000000000000000000C040000000000582C8 -:1041700000000000002F02230000000000000000EB -:104180000CC000000000057800000000C0201C00EA -:104190000000000000000000C04000000000058298 -:1041A00000000004002F02230000000000000000B7 -:1041B0000CC00000000005808100000000204411B8 -:1041C0000000000000000000002048110000000076 -:1041D0000000216D002044110000000000000000DC -:1041E000C02048000000000000000000C06048003F -:1041F000000006270000000000401C10000005829F -:1042000000000000C02000000000000000000000CE -:10421000C040000000000000000000000EE00000B0 -:10422000000005840000000000600000000005C3DD -:1042300000000000002F0224000000000000000029 -:104240000CC00000000005920000A2B7002044113D -:1042500000000000000000000020480700000000EF -:10426000000000330020262D000000000000001A8E -:10427000002122290000000000000006002226295B -:10428000000000000000A2C4002044110000000053 -:1042900000000000003048E90000000000000000BD -:1042A00000E00000000005900000A2D100204411B1 -:1042B000000000000000000000404808000000006E -:1042C0000000A2D100204411000000000000000105 -:1042D00000504A280000000000000001002F0224C6 -:1042E00000000000000000000CC00000000005A05D -:1042F0000000A2BB002044110000000000000000EC -:104300000020480700000000000000340020262D97 -:10431000000000000000001A002122290000000017 -:104320000000000600222629000000000000A2C5AF -:10433000002044110000000000000000003048E9A7 -:10434000000000000000000000E000000000059EEA -:104350000000A2D200204411000000000000000074 -:1043600000404808000000000000A2D200204411D4 -:10437000000000000000000100504A28000000007A -:1043800000000002002F02240000000000000000D6 -:104390000CC00000000005AE0000A2BF00204411C8 -:1043A000000000000000000000204807000000009E -:1043B000000000350020262D000000000000001A3B -:1043C000002122290000000000000006002226290A -:1043D000000000000000A2C6002044110000000000 -:1043E00000000000003048E900000000000000006C -:1043F00000E00000000005AC0000A2D30020441142 -:10440000000000000000000000404808000000001C -:104410000000A2D3002044110000000000000001B1 -:1044200000504A28000000000000A2C300204411F0 -:10443000000000000000000000204807000000000D -:10444000000000360020262D000000000000001AA9 -:104450000021222900000000000000060022262979 -:10446000000000000000A2C700204411000000006E -:1044700000000000003048E90000000000000000DB -:1044800000E00000000005B80000A2D400204411A4 -:10449000000000000000000000404808000000008C -:1044A0000000A2D400204411000000000000000120 -:1044B00000504A2800000000850000000020441140 -:1044C0000000000000000000002048010000000083 -:1044D0000000304A002044110000000001000000EC -:1044E0000020481100000000000000000040000013 -:1044F000000005BEA4000000C02044110000000020 -:1045000000000000C0404800000000000000000063 -:10451000C0600000000005C300000000C0400400AF -:10452000000000010001A2A40020441100000000CE -:104530000000003F00204811000000000000003F84 -:1045400000204811000000000000003F002048113A -:10455000000000000000003F0020481100000000A3 -:104560000000000500204811000000000000A1F438 -:10457000002044110000000000000000002048114D -:10458000000000008800000000204411000000002E -:10459000000000010020481100000000FF000000A2 -:1045A000002044110000000000000000002048111D -:1045B0000000000000000001002048110000000081 -:1045C0000000000200804811000000000000000010 -:1045D0000EE00000000005D60000100000200811C9 -:1045E000000000000000002B002036220000000028 -:1045F0000000000000600000000005DA000000007C -:1046000000600000000005C3980000000020441175 -:1046100000000000000000000080481100000000C1 -:1046200000000000C0600000000005DA000000008B -:10463000C0400400000000010000A2A400204411BA -:1046400000000000000000220020481100000000CF -:10465000890000000020441100000000000000015B -:1046600000404811000005CD9700000000204411D3 -:1046700000000000000000000020481100000000C1 -:104680008A0000000020441100000000000000002B -:1046900000404811000005CD00000000006000004F -:1046A000000005F30001A2A4C02044110000000096 -:1046B0000000001600604811000003740000201084 -:1046C00000204411000000000001000000204811FB -:1046D00000000000810000000020441100000000E4 -:1046E0000000000100204811000000000000217CB3 -:1046F0000020441100000000098000000020481143 -:1047000000000000FFFFFFFF002048110000000034 -:104710000000000000204811000000000000000020 -:1047200017000000000000000004217F0060441119 -:10473000000006220000001F0021023000000000DF -:104740000000000014C00000000000000000000491 -:1047500000404C11000005ED00000000004000008A -:10476000000000000000001700201E2D00000000C7 -:104770000000000400291E270000000000000017B0 -:1047800000803627000000000000001700201E2DCA -:1047900000000000FFFFFFFB00281E2700000000B4 -:1047A00000000017008036270000000000000017FE -:1047B00000201E2D000000000000000800291E2718 -:1047C00000000000000000170080362700000000F5 -:1047D0000000001700201E2D00000000FFFFFFF763 -:1047E00000281E2700000000000000170080362768 -:1047F000000000000001A2A40020441100000000FD -:104800000000001600604811000003740000201032 -:1048100000204411000000000001000000204811A9 -:10482000000000000000217C002044110000000076 -:10483000018000000020481100000000FFFFFFFF82 -:104840000020481100000000000000000020481176 -:104850000000000000000000170000000000000041 -:104860008100000000204411000000000000000151 -:1048700000204811000000000004217F0060441166 -:10488000000006220000001F00210230000000008E -:104890000000000014C0000000000621000000100D -:1048A00000404C110000060700000000C02004007A -:1048B000000000000000000038C000000000000000 -:1048C0000000001D00200A2D000000000000001E56 -:1048D00000200E2D000000000000001F0020122DFF -:1048E00000000000000000200020162D0000000045 -:1048F00000002169002044110000000000000000B9 -:1049000000204804000000000000000000204805CE -:10491000000000000000000000204801000000002E -:10492000CAFEBABE002048110000000000000004CA -:10493000003012240000000000000000002F00647E -:1049400000000000000000000CC000000000062075 -:104950000000000300281A220000000000000008E8 -:104960000022122200000000FFFFF00000281224A5 -:104970000000000000000000002910C4000000003A -:104980000000001F0040362400000000000000006E -:104990000080000000000000000000001AC00000BD -:1049A000000006229F0000000020441100000000CB -:1049B000CAFEBABE0020481100000000000000003E -:1049C0001AE0000000000625000000000080000042 -:1049D00000000000000000001AC0000000000627D0 -:1049E0009E0000000020441100000000CAFEBABE74 -:1049F0000020481100000000000000001AE0000044 -:104A00000000062A000000000080000000000000F6 -:104A100000000000006000000000000B000010001B -:104A200000600411000003150000000000200411C4 -:104A3000000000000000000000600811000001B24A -:104A40000000225C00204411000000000000000370 -:104A500000204811000000000000225600204411F0 -:104A6000000000000000001B0020481100000000B2 -:104A70000000A1FC00204411000000000000000123 -:104A800000204811000000000001A1FDC0204411D9 -:104A9000000000000000002100201E2D000000008A -:104AA0000000001000221E2700000000000000246B -:104AB0000020222D000000000000FFFF0028222817 -:104AC000000000000000000000294907000000006D -:104AD000000000000020481100000000000000223B -:104AE0000020222D000000000000FFFF00282228E7 -:104AF000000000000000000000294907000000003D -:104B00000000000000204811000000000000002309 -:104B100000201E2D000000000000001000221E27B3 -:104B2000000000000000000000294907000000000C -:104B300000000000004048110000000000000000DC -:104B40000000000000000000000000000000000065 -:104B50000000000000000000000000000000000055 -:104B60000000000000000000000000000000000045 -:104B70000000000000000000000000000000000035 -:104B80000000000000000000000000000000000025 -:104B90000000000000000000000000000000000015 -:104BA0000000000000000000000000000000000005 -:104BB00000000000000000000000000000000000F5 -:104BC00000000000000000000000000000000000E5 -:104BD00000000000000000000000000000000000D5 -:104BE00000000000000000000000000000000000C5 -:104BF00000000000000000000000000000000000B5 -:104C000000000000000000000000000000000000A4 -:104C10000000000000000000000000000000000094 -:104C20000000000000000000000000000000000084 -:104C30000000000000000000000000000000000074 -:104C40000000000000000000000000000000000064 -:104C50000000000000000000000000000000000054 -:104C60000000000000000000000000000000000044 -:104C70000000000000000000000000000000000034 -:104C80000000000000000000000000000000000024 -:104C90000000000000000000000000000000000014 -:104CA0000000000000000000000000000000000004 -:104CB00000000000000000000000000000000000F4 -:104CC00000000000000000000000000000000000E4 -:104CD00000000000000000000000000000000000D4 -:104CE00000000000000000000000000000000000C4 -:104CF00000000000000000000000000000000000B4 -:104D000000000000000000000000000000000000A3 -:104D10000000000000000000000000000000000093 -:104D20000000000000000000000000000000000083 -:104D30000000000000000000000000000000000073 -:104D40000000000000000000000000000000000063 -:104D50000000000000000000000000000000000053 -:104D60000000000000000000000000000000000043 -:104D70000000000000000000000000000000000033 -:104D80000000000000000000000000000000000023 -:104D90000000000000000000000000000000000013 -:104DA0000000000000000000000000000000000003 -:104DB00000000000000000000000000000000000F3 -:104DC00000000000000000000000000000000000E3 -:104DD00000000000000000000000000000000000D3 -:104DE00000000000000000000000000000000000C3 -:104DF00000000000000000000000000000000000B3 -:104E000000000000000000000000000000000000A2 -:104E10000000000000000000000000000000000092 -:104E20000000000000000000000000000000000082 -:104E30000000000000000000000000000000000072 -:104E40000000000000000000000000000000000062 -:104E50000000000000000000000000000000000052 -:104E60000000000000000000000000000000000042 -:104E70000000000000000000000000000000000032 -:104E80000000000000000000000000000000000022 -:104E90000000000000000000000000000000000012 -:104EA0000000000000000000000000000000000002 -:104EB00000000000000000000000000000000000F2 -:104EC00000000000000000000000000000000000E2 -:104ED00000000000000000000000000000000000D2 -:104EE00000000000000000000000000000000000C2 -:104EF00000000000000000000000000000000000B2 -:104F000000000000000000000000000000000000A1 -:104F10000000000000000000000000000000000091 -:104F20000000000000000000000000000000000081 -:104F30000000000000000000000000000000000071 -:104F40000000000000000000000000000000000061 -:104F50000000000000000000000000000000000051 -:104F60000000000000000000000000000000000041 -:104F70000000000000000000000000000000000031 -:104F80000000000000000000000000000000000021 -:104F90000000000000000000000000000000000011 -:104FA0000000000000000000000000000000000001 -:104FB00000000000000000000000000000000000F1 -:104FC00000000000000000000000000000000000E1 -:104FD00000000000000000000000000000000000D1 -:104FE00000000000000000000000000000000000C1 -:104FF00000000000000000000000000000000000B1 -:1050000000000000000000000000000000000000A0 -:105010000000000000000000000000000000000090 -:105020000000000000000000000000000000000080 -:105030000000000000000000000000000000000070 -:105040000000000000000000000000000000000060 -:105050000000000000000000000000000000000050 -:105060000000000000000000000000000000000040 -:105070000000000000000000000000000000000030 -:105080000000000000000000000000000000000020 -:105090000000000000000000000000000000000010 -:1050A0000000000000000000000000000000000000 -:1050B00000000000000000000000000000000000F0 -:1050C00000000000000000000000000000000000E0 -:1050D00000000000000000000000000000000000D0 -:1050E00000000000000000000000000000000000C0 -:1050F00000000000000000000000000000000000B0 -:10510000000000000000000000000000000000009F -:10511000000000000000000000000000000000008F -:10512000000000000000000000000000000000007F -:10513000000000000000000000000000000000006F -:10514000000000000000000000000000000000005F -:10515000000000000000000000000000000000004F -:10516000000000000000000000000000000000003F -:10517000000000000000000000000000000000002F -:10518000000000000000000000000000000000001F -:10519000000000000000000000000000000000000F -:1051A00000000000000000000000000000000000FF -:1051B00000000000000000000000000000000000EF -:1051C00000000000000000000000000000000000DF -:1051D00000000000000000000000000000000000CF -:1051E00000000000000000000000000000000000BF -:1051F00000000000000000000000000000000000AF -:10520000000000000000000000000000000000009E -:10521000000000000000000000000000000000008E -:10522000000000000000000000000000000000007E -:10523000000000000000000000000000000000006E -:10524000000000000000000000000000000000005E -:10525000000000000000000000000000000000004E -:10526000000000000000000000000000000000003E -:10527000000000000000000000000000000000002E -:10528000000000000000000000000000000000001E -:10529000000000000000000000000000000000000E -:1052A00000000000000000000000000000000000FE -:1052B0000142050A05BA02500000000001C301685E -:1052C000044105BA00000000022502090250015104 -:1052D000000000000223024502A00241000000007D -:1052E00003D705BA05BA05BA0000000005E205E3D8 -:1052F000031F05BA00000000032005BF0320034A76 -:105300000000000003340282034C033E0000000052 -:1053100005BA05BA05BA05BA0000000005BA055776 -:1053200005BA032A0000000003BC05BA04C3034EFB -:105330000000000004A20455043F05BA000000006C -:1053400004D805BA044304E5000000000455050F25 -:10535000035B037B0000000005BA05BA05BA05BA75 -:105360000000000005BA05BA05BA05BA0000000041 -:1053700005BA05BA05D805C10000000005BA05BA8E -:10538000000705BA0000000005BA05BA05BA05BA5B -:105390000000000005BA05BA05BA05BA0000000011 -:1053A00003F803ED0408040600000000040E040ADC -:1053B000040C041000000000041C04180424042041 -:1053C00000000000042C0428043404300000000015 -:1053D00005BA05BA043A04380000000005BA05BA57 -:1053E00005BA05BA0000000005BA05BA05BA05BA43 -:1053F000000000000002060E062C0006000000005F -:00000001FF diff --git a/firmware/radeon/RS780_pfp.bin.ihex b/firmware/radeon/RS780_pfp.bin.ihex deleted file mode 100644 index 40880411e785..000000000000 --- a/firmware/radeon/RS780_pfp.bin.ihex +++ /dev/null @@ -1,145 +0,0 @@ -:1000000000CA040000A00000007E828B007C038BED -:10001000008001DB007C038B00D4401E00EE001E3C -:1000200000CA040000A00000007E828B00C41838C3 -:1000300000CA240000CA2800009581CB00C41C3AE5 -:1000400000C3C00000CA080000CA0C00007C744B4A -:1000500000C200050099C00000C41C3A007C744C2A -:1000600000C0FFE000042C0800309002007D250055 -:1000700000351402007D350B00255407007CD58027 -:1000800000259C070095C00400D5001B007EDDC143 -:10009000007D9D8000D6801B00D5801B00D4401EB3 -:1000A00000D5401E00D6401E00D6801E00D4801E03 -:1000B00000D4C01E009783D300D5C01E00CA08001C -:1000C0000080001A00CA0C0000E4011E00D4001ECB -:1000D0000080000C00C4183800E4013E00D4001E6B -:1000E0000080000C00C4183800D4401E00EE001E32 -:1000F00000CA040000A00000007E828B00E4011E04 -:1001000000D4001E00D4401E00EE001E00CA0400F1 -:1001100000A00000007E828B00E4013E00D4001E9F -:1001200000D4401E00EE001E00CA040000A0000023 -:10013000007E828B00CA080000CA0C00008001DB30 -:1001400000D4802400CA0800007C00C000C8142528 -:1001500000C81824007C9488007C988000C20003AA -:1001600000D40075007C744C0080006400D4401EF4 -:1001700000CA180000D4401E00D5801E0080006216 -:1001800000D4007500D4401E00CA080000CA0C004C -:1001900000CA100000D4801900D4C01800D5001780 -:1001A00000D4801E00D4C01E00D5001E00E2001E38 -:1001B00000CA040000A00000007E828B00D40075FD -:1001C00000D4401E00CA080000CA0C0000CA10007B -:1001D00000D4801900D4C01800D5001700D4801EA8 -:1001E00000D4C01E00D5001E00EE001E00CA040090 -:1001F00000A00000007E828B00CA080000248C0151 -:1002000000D480600094C0030004100100041002B8 -:1002100000D5002500D4401E0080000000D4801EC0 -:1002200000CA080000D4806100D4401E0080000095 -:1002300000D4801E00CA080000CA0C0000D4401E72 -:1002400000D4801600D4C01600D4801E008001DBCC -:1002500000D4C01E00C6084300CA0C0000CA10002B -:100260000094800400CA140000E420F300D420139A -:1002700000D5606500D4E01C00D5201C00D5601CB2 -:10028000008000000006200100C6084300CA0C00E0 -:1002900000CA1000009483F700CA140000E420F3A1 -:1002A0000080009C00D4201300C6084300CA0C0044 -:1002B00000CA1000009883EF00CA140000D4006444 -:1002C000008000B00000000000C4143200C61843D3 -:1002D00000C4082F0095400500C40C3000D4401E17 -:1002E0000080000000EE001E009583F500C4103170 -:1002F00000D4403300D5206500D4A01C00D4E01CFD -:1003000000D5201C00E4015E00D4001E0080000027 -:100310000006200100CA1800000A200100D600765D -:1003200000C408360098800700C6104500950110EB -:1003300000D4001F00D460620080000000D420625E -:1003400000CC383500CC1433008401DE00D40072B8 -:1003500000D5401E0080000000EE001E00E2001AE2 -:10036000008401DE00E2001A00CC104B00CC0447F0 -:10037000002C9401007D098B00984005007D15CB71 -:1003800000D4001A008001DB00D4006D0034440169 -:1003900000CC0C480098403A00CC2C4A00958004D0 -:1003A00000CC0449008001DB00D4001A00D4C01A3C -:1003B000002828010084011300CC10030098801B42 -:1003C0000004380C0084011300CC1003009880173F -:1003D000000438080084011300CC10030098801337 -:1003E000000438040084011300CC1003009880142A -:1003F00000CC104C009A800900CC144D009840DCD1 -:1004000000D4006D00CC184800D5001A00D5401A61 -:10041000008000EC00D5801A0096C0D500D4006D95 -:10042000008001DB00D4006E009AC00300D4006D90 -:1004300000D4006E0080000000EC007F009AC0CC69 -:1004400000D4006D008001DB00D4006E00CC1403EA -:1004500000CC180300CC1C03007D9103007DD583E4 -:10046000007D190C0035CC1F0035701F007CF0CBCF -:10047000007CD08B00880000007E8E8B0095C0042D -:1004800000D4006E008001DB00D4001A00D4C01A32 -:1004900000CC080300CC0C0300CC100300CC1403E8 -:1004A00000CC180300CC1C0300CC240300CC280390 -:1004B0000035C41F0036B01F007C704B0034F01FA5 -:1004C000007C704B0035701F007C704B007D888174 -:1004D000007DCCC1007E5101007E9541007C908260 -:1004E000007CD4C2007C848B009AC003007C8C8B7F -:1004F000002C88010098809E00D4006D0098409CDC -:1005000000D4006E00CC084C00CC0C4D00CC104840 -:1005100000D4801A00D4C01A0080012400D5001A2B -:1005200000CC083200D40032009482B600CA0C001D -:1005300000D4401E0080000000D4001E00E4011E14 -:1005400000D4001E00CA080000CA0C0000CA100037 -:1005500000D4401E00CA140000D4801E00D4C01E67 -:1005600000D5001E00D5401E00D54034008000009C -:1005700000EE001E0028040400E2001A00E2001A47 -:1005800000D4401A00CA380000CC080300CC0C0389 -:1005900000CC0C0300CC0C030098829A00000000F1 -:1005A000008401DE00D7A06F0080000000EE001F75 -:1005B00000CA040000C2FF0000CC083400C13FFFA5 -:1005C000007C74CB007CC90B007D010F0099028D6B -:1005D000007C738B008401DE00D7A06F00800000D8 -:1005E00000EE001F00CA080000281900007D898B5A -:1005F000009580140028140400CA0C0000CA1000E2 -:1006000000CA1C0000CA240000E2001F00D4C01A67 -:1006100000D5001A00D5401A00CC180300CC2C03DA -:1006200000CC2C0300CC2C03007DA58B007D9C47C7 -:1006300000984274000000000080018400D4C01AB9 -:1006400000D4401E00D4801E0080000000EE001E7A -:1006500000E4011E00D4001E00D4401E00EE001E67 -:1006600000CA040000A00000007E828B00E4013E6E -:1006700000D4001E00D4401E00EE001E00CA04007C -:1006800000A00000007E828B00CA080000248C06B7 -:10069000000CCC060098C00600CC104E0099000457 -:1006A00000D4007300E4011E00D4001E00D4401EDC -:1006B00000D4801E0080000000EE001E00CA08006A -:1006C00000CA0C000034D01800251001009500214C -:1006D00000C17FFF00CA100000CA140000CA180041 -:1006E00000D4801D00D4C01D007DB18B00C142022A -:1006F00000C2C00100D5801D0034DC0E007D5D4CC1 -:10070000007F734C00D7401E00D5001E00D5401E50 -:1007100000C1420000C2C00000099C010031DC1091 -:10072000007F5F4C007F734C00042802007D8380B3 -:1007300000D5A86F00D5806600D7401E00EC005E93 -:1007400000C8240200C82402008001DB00D6007625 -:1007500000D4401E00D4801E00D4C01E00800000C3 -:1007600000EE001E0080000000EE001F00D4001FFD -:100770000080000000D4001F00D4001F008800008B -:1007800000D4001F00000000000000000000000076 -:100790000000000000000000000000000000000059 -:1007A0000000000000000000000000000000000049 -:1007B0000000000000000000000000000000000039 -:1007C0000000000000000000000000000000000029 -:1007D0000000000000000000000000000000000019 -:1007E0000000000000000000000000000000000009 -:1007F00000000000000000000000000000000000F9 -:10080000000101940002019B000300B2000400A259 -:10081000000500030006003F000700320008014FFA -:1008200000090046000A0036001001D9001700C573 -:100830000022015D0023016C002000D70024014844 -:100840000026004D0027005C0028008D0029005183 -:10085000002A007E002B0061002F0088003200AAD1 -:10086000003401A20036006F003C0179003F009582 -:10087000004101AF00440151005501960056019D11 -:100880000060000B00610034006200380063003833 -:1008900000640038006500380066003800670038E2 -:1008A0000068003A00690041006A0048006B004897 -:1008B000006C0048006D0048006E0048006F004862 -:1008C000007301D9000000060000000600000006C9 -:1008D0000000000600000006000000060000000600 -:1008E00000000006000000060000000600000006F0 -:1008F00000000006000000060000000600000006E0 -:00000001FF diff --git a/firmware/radeon/RV610_me.bin.ihex b/firmware/radeon/RV610_me.bin.ihex deleted file mode 100644 index ba19ed892920..000000000000 --- a/firmware/radeon/RV610_me.bin.ihex +++ /dev/null @@ -1,1345 +0,0 @@ -:1000000000000000C020040000000000000000000C -:1000100000A0000A000000000000FFFF00284621A9 -:100020000000000000000000D900480000000000AF -:1000300000000000C02004000000000000000000DC -:1000400000A0000A000000000000000000E0000026 -:100050000000000000010000C02946200000000050 -:1000600000000000D900480000000000000000006F -:10007000C0200400000000000000000000A0000AF2 -:10008000000000008100000000204411000000007A -:1000900000000001002048110000000000042004BE -:1000A000006044110000068D0000000000600000A8 -:1000B000000006310000000000600000000006455E -:1000C00000000000C02008000000000000000F0039 -:1000D000002816220000000000000008002116255C -:1000E000000000000000001800203625000000007D -:1000F0008D000000002044110000000000000004FA -:10010000002F022500000000000000000CE00000AD -:1001100000000018004120000040481100000019B4 -:100120000042200000204811000000008E00000066 -:1001300000204411000000000000002800204A2D8B -:1001400000000000900000000020441100000000AA -:100150000000000000204805000000000000000C26 -:1001600000211622000000000000000300281625D0 -:10017000000000000000001900211A220000000009 -:100180000000000400281A26000000000000000003 -:10019000002914C5000000000000001900203625C9 -:1001A0000000000000000000003A140200000000FF -:1001B00000000016002116250000000000000003CA -:1001C00000281625000000000000001700200E2D5A -:1001D00000000000FFFFFFFC00280E2300000000CD -:1001E00000000000002914A3000000000000001718 -:1001F00000203625000000000000800000280E22AC -:10020000000000000000000700220E230000000094 -:10021000000000000029386E0000000020000000EF -:1002200000280E22000000000000000600210E231E -:1002300000000000000000000029386E00000000EF -:100240000000000000220222000000000000000068 -:1002500014E0000000000038000000002EE0000064 -:1002600000000035000000002CE000000000003716 -:100270000000000000400E2D0000003900000008C2 -:1002800000200E2D00000000000000090040122D8B -:10029000000000460000000100400E2D0000003963 -:1002A00000000000C0200C0000000000003FFFFC28 -:1002B0000028122300000000000000020022122487 -:1002C000000000000000001F00211E2300000000AD -:1002D0000000000014E000000000003E00000008E4 -:1002E00000401C11000000410000000D00201E2DE8 -:1002F000000000000000000F00281E270000000082 -:100300000000000300221E27000000007FC0000044 -:1003100000281A23000000000000001400211A2603 -:10032000000000000000000100331A260000000059 -:100330000000000800221A26000000000000000053 -:1003400000290CC700000000000000270020362410 -:100350000000000000007F000028122100000000C3 -:1003600000001400002F0224000000000000000024 -:100370000CE000000000004B0000000100290E23EB -:10038000000000000000000E0020362300000000E6 -:100390000000E0000020441100000000FFF8000011 -:1003A00000294A230000000000000000003A2C024F -:1003B000000000000000000200220E2B00000000E0 -:1003C000FC00000000280E23000000000000000FC9 -:1003D000002036230000000000001FFF00294A23F0 -:1003E000000000000000002700204A2D000000004F -:1003F000000000000020481100000000000000295B -:1004000000200E2D00000000060A020000294A23E9 -:100410000000000000000000002048110000000063 -:100420000000000000204811000000000000000152 -:1004300000210222000000000000000014E0000083 -:1004400000000061000000002EE000000000005FDE -:10045000000000002CE000000000005E0000000032 -:1004600000400E2D000000620000000100400E2D33 -:10047000000000620000000A00200E2D00000000B5 -:100480000000000B0040122D0000006A0000000078 -:10049000C0200C0000000000003FFFFC00281223D9 -:1004A00000000000000000020022122400000000F2 -:1004B0007FC0000000281623000000000000001488 -:1004C0000021162500000000000000010033162561 -:1004D000000000008000000000280E230000000043 -:1004E0000000000000290CA3000000003FFFFC00FA -:1004F00000290E23000000000000001F00211E2321 -:10050000000000000000000014E000000000006D8A -:100510000000010000401C11000000700000000DF0 -:1005200000201E2D00000000000000F000281E2703 -:10053000000000000000000400221E270000000050 -:100540008100000000204411000000000000000DA8 -:100550000020481100000000FFFFF0FF00281A30C3 -:10056000000000000000A02800204411000000004E -:1005700000000000002948E6000000000000A0186C -:1005800000204411000000003FFFFFFF00284A2325 -:10059000000000000000A010002044110000000036 -:1005A00000000000002048040000000000000030AF -:1005B0000020162D00000000000000020029162572 -:1005C0000000000000000030002036250000000080 -:1005D000000000250020162D000000000000000093 -:1005E000002F00A300000000000000000CC000006D -:1005F00000000083000000260020162D00000000EF -:1006000000000000002F00A4000000000000000017 -:100610000CC000000000008400000000004000004A -:100620000000008A000000250020362300000000A2 -:100630000000002600203624000000000000001703 -:1006400000201E2D000000000000000200210227F3 -:10065000000000000000000014E000000000008A1C -:1006600000000000006000000000066800000000BC -:10067000006000000000065C0000000200210E2265 -:10068000000000000000000014C000000000008D09 -:1006900000000012C040362000000093000000005F -:1006A0002EE0000000000091000000002CE000009F -:1006B000000000900000000200400E2D000000929B -:1006C0000000000300400E2D000000920000000C0E -:1006D00000200E2D00000000000000120020362334 -:1006E000000000000000000300210E2200000000B6 -:1006F0000000000014C00000000000980000A00CE2 -:10070000002044110000000000000000C02048004C -:100710000000000000000000C0404800000000A0F1 -:100720000000A00C002044110000000000000000A8 -:100730000020481100000000000000002EE0000032 -:100740000000009E000000002CE000000000009D62 -:100750000000000200400E2D0000009F000000037A -:1007600000400E2D0000009F0000000C00200E2D08 -:10077000000000000000000000204803000000000E -:1007800000000000003A0C0200000000003F0000E2 -:1007900000280E23000000000000001000210E239E -:1007A00000000000000000110020362300000000BF -:1007B0000000001E0021022B0000000000000000CD -:1007C00014C00000000000A700000016C020362062 -:1007D000000000000000001F0021022B00000000AC -:1007E0000000000014C00000000000AA0000001576 -:1007F000C0203620000000000000000800210E2B61 -:10080000000000000000007F00280E230000000010 -:1008100000000000002F0223000000000000000084 -:100820000CE00000000000E10000000027000000D4 -:10083000000000000000000000600000000002A3B3 -:1008400000000001002F0223000000000000000053 -:100850000AE00000000000B300000000006000009B -:100860000000013A81000000002044110000000057 -:100870000000000600204811000000000000000CED -:1008800000221E300000000099800000002044116A -:1008900000000000000000040020122D00000000F5 -:1008A00000000008002212240000000000000010D8 -:1008B00000201811000000000000000000291CE4C6 -:1008C0000000000000000000006048070000012F49 -:1008D0009B00000000204411000000000000000008 -:1008E00000204802000000009C000000002044118D -:1008F00000000000000000000033146F0000000042 -:100900000000000100333E23000000000000000052 -:10091000D9004800000000000000000000203C0555 -:1009200000000000810000000020441100000000D1 -:100930000000000E00204811000000000000000030 -:1009400000201010000000000000E007002044110B -:10095000000000000000000F0021022B000000003A -:100960000000000014C00000000000CB00F8FF08E9 -:1009700000204811000000009800000000404811CD -:10098000000000DC000000F000280E220000000043 -:10099000000000A0002F0223000000000000000063 -:1009A0000CC00000000000DA0000001100200E2D35 -:1009B0000000000000000001002F022300000000E2 -:1009C000000000000CE00000000000D50000000264 -:1009D000002F022300000000000000000CE00000D7 -:1009E000000000D400003F0000400C11000000D6C1 -:1009F00000001F0000400C11000000D600000F0096 -:100A000000200C11000000000038000900294A23D2 -:100A1000000000003F00000000280E2B0000000036 -:100A20000000000200220E2300000000000000076A -:100A300000494A23000000DC00380F09002048115B -:100A400000000000680000070020481100000000BE -:100A50000000000800214A270000000000000000FC -:100A60000020481100000000060A020000294A2464 -:100A700000000000000000000020481100000000FD -:100A80000000000000204811000000000000A20249 -:100A9000002044110000000000FF000000280E228A -:100AA000000000000000008000294A230000000030 -:100AB0000000002700200E2D00000000000000268E -:100AC0000020122D0000000000000000002F008315 -:100AD00000000000000000000CE00000000000EA40 -:100AE000000000000060000000000662000000003E -:100AF00000400000000000EB00000000006000006B -:100B000000000665000000070020222D0000000004 -:100B10000000000500220E2200000000001000006E -:100B200000280E23000000000000000000292068BB -:100B30000000000000000000003A0C02000000006D -:100B4000000000EF00280E2300000000000000005D -:100B500000292068000000000000001700200E2D72 -:100B6000000000000000000300210223000000003C -:100B70000000000014E00000000000F80000000B7E -:100B800000210228000000000000000014C0000046 -:100B9000000000F8000004000029222800000000E6 -:100BA0000000001400203628000000000000001C97 -:100BB00000210E22000000000000000014C0000010 -:100BC000000000FD0000A30C002044110000000004 -:100BD0000000000000204811000000000000001E7E -:100BE00000210E22000000000000000014C00000E0 -:100BF0000000010B0000A30F0020441100000000C2 -:100C00000000001100200E2D000000000000000177 -:100C1000002F022300000000000000000CC00000B4 -:100C200000000104FFFFFFFF004048110000010B1E -:100C300000000002002F022300000000000000005E -:100C40000CC00000000001070000FFFF0040481139 -:100C50000000010B00000004002F02230000000030 -:100C6000000000000CC000000000010A000000FFAE -:100C7000004048110000010B000000010020481155 -:100C8000000000000002C400002044110000000029 -:100C90000000001F00210E220000000000000000E4 -:100CA00014C00000000001120000001040210E20BE -:100CB00000000000000000130020362300000000A8 -:100CC0000000001840224A20000000000000001030 -:100CD000C0424A20000001140000000000200C1156 -:100CE0000000000000000013002036230000000078 -:100CF000000000000020481100000000000000007B -:100D000000204811000000000000000A002010111F -:100D10000000000000000000002F0224000000007E -:100D2000000000000CE000000000011B00000000BB -:100D300000204811000000000000000100531224B0 -:100D400000000117FFBFFFFF00283A2E000000003F -:100D50000000001B00210222000000000000000033 -:100D600014C000000000012E81000000002044118A -:100D7000000000000000000D0020481100000000ED -:100D80000000001800220E3000000000FC000000EF -:100D900000280E2300000000810000000020441104 -:100DA000000000000000000E0020481100000000BC -:100DB0000000000000201010000000000000E00E05 -:100DC000002044110000000007F8FF08002048112F -:100DD000000000000000000000294A23000000007D -:100DE0000000001C00201E2D000000000000000874 -:100DF00000214A27000000000000000000204811E8 -:100E000000000000060A020000294A240000000039 -:100E10000000000000204811000000000000000059 -:100E200000204811000000000000000000800000C9 -:100E300000000000810000000020441100000000BC -:100E40000000000100204811000000000000217C8B -:100E50000020441100000000008000000020481124 -:100E60000000000000000000002048060000000014 -:100E70000000000800214A270000000000000000D8 -:100E800017000000000000000004217F00604411F2 -:100E90000000068D0000001F00210230000000004D -:100EA0000000000014C000000000068C00000004D8 -:100EB00000404C1100000135810000000020441169 -:100EC00000000000000000010020481100000000A8 -:100ED000000021F800204411000000000000001C68 -:100EE0000020481100000000000421F900604411B6 -:100EF0000000068D000000110021023000000000FB -:100F00000000000014E000000000013C00000000B0 -:100F100000800000000000000000000000600000F1 -:100F20000000000B00000000006004110000031529 -:100F3000000000000020041100000000000000007C -:100F400000600811000001B2000000000060000015 -:100F5000000001600000FFFF40280E20000000009C -:100F600000000010C0211220000000000000FFFF60 -:100F7000402806200000000000000010C0210A20C8 -:100F800000000000000000000034146100000000B8 -:100F90000000000000741882000002BB0001A1FDE7 -:100FA00000604411000002E000003FFF002F022F0C -:100FB00000000000000000000CC00000000001471D -:100FC00000000000C040040000000001000000001C -:100FD000006000000000000B000000000060041131 -:100FE00000000315000000000020041100000000B4 -:100FF0000000000000600811000001B200003FFF87 -:10100000002F022F00000000000000000CE0000094 -:10101000000000000000000000600000000001600F -:101020000000001040210E20000000000000FFFF23 -:10103000C0281220000000000000001040211620EF -:10104000000000000000FFFFC0681A20000002BB83 -:101050000001A1FD00604411000002E000003FFF1C -:10106000002F022F00000000000000000CC0000054 -:101070000000015800000000C04004000000000112 -:101080000000225C0020441100000000000000016C -:1010900000300A2F000000000000000100210A2299 -:1010A000000000000000000300384A220000000099 -:1010B0000000225600204411000000000000001A29 -:1010C00000204811000000000000A1FC0020441195 -:1010D0000000000000000001008048110000000036 -:1010E00000000000006000000000000B0000000095 -:1010F000006000000000018F0000000000600000A0 -:10110000000001A000003FFF002F022F00000000A0 -:10111000000000000CE000000000000000000000E3 -:1011200000202C0800000000000000000020241116 -:101130000000000000000000002028110000000056 -:10114000000022560020441100000000000000169C -:1011500000204811000000000000225C0020441123 -:101160000000000000000003002048110000000003 -:1011700093800000002044110000000000000002E5 -:1011800000221E290000000000000000007048EB53 -:101190000000019C0000000000600000000002BB95 -:1011A00000000001403306200000000000000000A5 -:1011B000C03024090000000000003FFF002F022F74 -:1011C00000000000000000000CE000000000000033 -:1011D0000000000000600000000002A3000000000A -:1011E000002F022100000000000000000AE00000C3 -:1011F0000000018100000000006000000000013AD2 -:101200000000000000400000000001869500000082 -:10121000002044110000000000000000002F022107 -:1012200000000000000000000CE00000000001864B -:1012300000000000C0204800000000000000000185 -:10124000005306210000018292000000002044119A -:101250000000000000000000C0604800000001978E -:101260000001A1FD00204411000000000000001159 -:101270000020062D00000000000000000078042A75 -:10128000000002FB00000000002028090000000010 -:1012900000003FFF002F022F0000000000000000B0 -:1012A0000CC000000000017400000000C0400400F9 -:1012B000000000010000021000600411000003158E -:1012C00000003FFF002F022F000000000000000080 -:1012D0000CE000000000019400000015C020362042 -:1012E0000000000000000016C020362000000000B2 -:1012F0003F800000002004110000000046000000B4 -:1013000000600811000001B2000000000080000031 -:10131000000000000000A1FC0020441100000000BB -:1013200000003FFF002F022F00000000000000001F -:101330000CC000000000019B00000001008048116B -:1013400000000000000000210080481100000000A3 -:101350000000FFFF40280E200000000000000010E9 -:10136000C0211220000000000000FFFF40281620CE -:101370000000000000000010C0811A2000000000E2 -:101380008100000000204411000000000000000661 -:1013900000204811000000000000000800221E305C -:1013A000000000000000002900201A2D00000000AD -:1013B0000000E0000020441100000000FFFBFF09D6 -:1013C00000204811000000000000000F0020222D26 -:1013D0000000000000001FFF00294A280000000054 -:1013E000000000060020222D000000000000000088 -:1013F000002920E80000000000000000002048084C -:101400000000000000000000002048110000000063 -:10141000060A020000294A26000000000000000021 -:1014200000204811000000000000000000204811CA -:101430000000000000000100002018110000000062 -:101440000000000800621E280000012F00000008B4 -:1014500000822228000000000002C0000020441189 -:10146000000000000000001500600E2D000001BD0E -:101470000000001600600E2D000001BD0000C00835 -:1014800000204411000000000000001700200E2D75 -:10149000000000000000000014C00000000001B9BE -:1014A0000000000000200411000000000000000007 -:1014B0000020480100000000390000000020481111 -:1014C00000000000000000000020481100000000A3 -:1014D000000000000080480200000000000000182A -:1014E00000202E2D0000000000000000003B0D63D6 -:1014F000000000000000000800224A230000000055 -:101500000000001000224A23000000000000001824 -:1015100000224A2300000000000000000080480371 -:101520000000000000000000006000000000000B50 -:10153000000010000060041100000315000000000E -:1015400000200411000000000000000000600811ED -:10155000000001B2000000070021062F000000007B -:101560000000001300200A2D000000000000000110 -:1015700000202C11000000000000FFFF4028222066 -:10158000000000000000000F0026222800000000DC -:101590000000001040212620000000000000000F85 -:1015A000002626290000000000000000002028027C -:1015B000000000000000225600204411000000003E -:1015C0000000001B00204811000000000000000087 -:1015D000002F022100000000000000000CE00000CD -:1015E000000001E00000225C002044110000000027 -:1015F0000000008100204811000000000000A1FC54 -:1016000000204411000000000000000100204811EB -:10161000000000000000008000201C1100000000FD -:1016200000000000002F0227000000000000000062 -:101630000CE00000000001DC000000000060000081 -:10164000000001E90000000100531E27000001D83E -:101650000000000100202C11000000000000001F0D -:1016600000280A22000000000000001F00282A2A8B -:10167000000000000000000100530621000001D11D -:101680000000225C00204411000000000000000265 -:1016900000304A2F000000000000A1FC002044118F -:1016A00000000000000000010020481100000000C0 -:1016B0000000000100301E2F0000000000000000AC -:1016C000002F022700000000000000000CE00000D6 -:1016D000000000000000000000600000000001E9C0 -:1016E0000000000100531E27000001E50000FFFF7D -:1016F00040280E20000000000000000F00260E23EE -:101700000000000000000010C021122000000000B6 -:101710000000000F0026122400000000000000005E -:1017200000201411000000000000000000601811EB -:10173000000002BB0001A1FD0020441100000000D8 -:1017400000000000002F022B00000000000000003D -:101750000CE00000000001F8000000100022162834 -:1017600000000000FFFF0000002816250000000018 -:101770000000FFFF00281A29000000000000000000 -:10178000002948C500000000000000000020480AB1 -:10179000000000000000000000202C1100000000EC -:1017A000000000100022162300000000FFFF0000D0 -:1017B00000281625000000000000FFFF00281A2462 -:1017C0000000000000000000002948C500000000E3 -:1017D0000000000000731503000002050000000077 -:1017E0000020180500000000000000000073152410 -:1017F0000000020500000000002D14C500000000DC -:1018000000000000003008A20000000000000000FE -:101810000020480200000000000000000020280214 -:101820000000000000000000002020030000000075 -:101830000000000000802404000000000000000FF1 -:1018400000210225000000000000000014C000007C -:101850000000068C00000000002B140500000000B2 -:1018600000000001009016250000000000000000AC -:10187000006000000000000B000000000060041188 -:10188000000003150000000000200411000000000B -:101890000000000000600811000001B200002256A4 -:1018A00000204411000000000000001A00294A2214 -:1018B0000000000000000000C02000000000000048 -:1018C00000003FFF002F022F00000000000000007A -:1018D0000CE000000000000000000000C020040038 -:1018E000000000000000225C002044110000000005 -:1018F0000000000300384A21000000000000A1FCA5 -:1019000000204411000000000000000100204811E8 -:10191000000000000000FFFF40281220000000002F -:1019200000000010C0211A20000000000000FFFF8E -:1019300040280E200000000000000010C0211620EA -:10194000000000000000000000741465000002BBED -:101950000001A1FD00604411000002E00000000150 -:10196000003306210000000000000000002F0221CB -:1019700000000000000000000CC000000000021980 -:1019800000003FFF002F022F0000000000000000B9 -:101990000CC000000000021200000000C040040063 -:1019A000000000010000000000600000000006458B -:1019B000000000000040040F0000021300000000BF -:1019C0000060000000000631000000000060000020 -:1019D000000006450000021000600411000003151D -:1019E0000000000000600000000001A000000000F6 -:1019F000006000000000019C00000000006000008A -:101A0000000002BB0000000000600000000002A314 -:101A1000938000000020441100000000000000003E -:101A2000002048080000000000000000002F022FE6 -:101A300000000000000000000AE000000000023288 -:101A400000000000006000000000013A00000000FB -:101A50000040000000000236950000000020441104 -:101A60000000000000000000002F022F0000000016 -:101A7000000000000CE00000000002360000000042 -:101A8000C0404800000002339200000000204411D2 -:101A90000000000000000000C0204800000000001E -:101AA0000000225600204411000000000000001633 -:101AB00000204811000000000000225C00204411BA -:101AC000000000000000000300204811000000009A -:101AD0000000A1FC002044110000000000000001F3 -:101AE00000204811000000000001A1FD0020441169 -:101AF000000000000000000000600411000002FB74 -:101B000000000000C04004000000000100000000D0 -:101B100000600000000006310000A00C002044110D -:101B20000000000000000000C0204800000000008D -:101B300000000000C040480000000000000000005D -:101B4000006000000000000B0000001840210A2087 -:101B50000000000000000003002F0222000000002F -:101B6000000000000AE000000000024C0000001429 -:101B70000020222D00000000000801010029222879 -:101B800000000000000000140020362800000000C3 -:101B90000000A30C00204411000000000000000021 -:101BA000C02048000000000000000000C0204800E5 -:101BB0000000000000000000C0404800000002518A -:101BC00000000000006000000000000B000000109A -:101BD00000600411000003153F8000000020041184 -:101BE000000000000000000000600811000001B2C9 -:101BF0000000225C002044110000000000000003EF -:101C000000204811000000000000000000600000FB -:101C10000000027C0000001700201E2D00000000C4 -:101C20000000000100211E2700000000000000004D -:101C300014E000000000026A0000001200201E2DC7 -:101C4000000000000000FFFF00281E270000000029 -:101C50000000000000341C2700000000000000000D -:101C600012C000000000025F0000000000201C11F4 -:101C70000000000000000000002F00E50000000050 -:101C80000000000008C00000000002620000000028 -:101C900000201407000000000000001200201E2D8C -:101CA000000000000000001000211E2700000000BE -:101CB0000000000000341C4700000000000000008D -:101CC00012C00000000002670000000000201C118C -:101CD0000000000000000000002F00E600000000EF -:101CE0000000000008C000000000026A00000000C0 -:101CF0000020180700000000000000000060000045 -:101D0000000002C100002256002044110000000023 -:101D1000000000000034202300000000000000004C -:101D200012C00000000002720000000000342044D5 -:101D3000000000000000000012C00000000002715E -:101D40000000001600404811000002760000001854 -:101D500000404811000002760000000000342044DA -:101D6000000000000000000012C00000000002752A -:101D70000000001700404811000002760000001922 -:101D800000204811000000000000A1FC00204411C8 -:101D900000000000000000010020481100000000C9 -:101DA0000001A1FD00604411000002E900003FFFB6 -:101DB000002F022F00000000000000000CC00000F7 -:101DC0000000025600000000C040040000000001B6 -:101DD0000000001040210620000000000000FFFF6E -:101DE000C0280A20000000000000001040210E2042 -:101DF000000000000000FFFFC028122000000000CB -:101E00000000001040211620000000000000FFFF2D -:101E1000C0881A200000000081000000002044114A -:101E20000000000000000001002048110000000038 -:101E300000042004006044110000068D0000000032 -:101E4000006000000000063100000000C0600000DB -:101E5000000002A30000000500200A2D0000000081 -:101E60000000000800220A22000000000000002BF1 -:101E700000201A2D000000000000001C00201E2D74 -:101E8000000000000000700000281E270000000075 -:101E90000000000000311CE6000000000000002AE5 -:101EA00000201A2D000000000000000C00221A265D -:101EB0000000000000000000002F00E6000000000D -:101EC0000000000006E00000000002920000000098 -:101ED00000201C11000000000000000000200C1178 -:101EE000000000000000002B00203623000000004E -:101EF0000000001000201811000000000000000089 -:101F000000691CE20000012F9380000000204411B2 -:101F10000000000000000000002048070000000052 -:101F200095000000002044110000000000000000A7 -:101F3000002F022F00000000000000000CE0000055 -:101F40000000029D0000000100333E2F0000000051 -:101F500000000000D90048000000000092000000CE -:101F6000002044110000000000000000C0204800D4 -:101F7000000000000000001C0040362700000000A8 -:101F80000000000CC0220A20000000000000002910 -:101F9000002036220000000000000028C04036204B -:101FA000000000000000A2A4002044110000000076 -:101FB000000000090020481100000000A1000000FE -:101FC00000204411000000000000000100804811C2 -:101FD000000000000000002100201E2D0000000075 -:101FE00000000000002C1CE30000000000000021A5 -:101FF00000203627000000000000002200201E2DD7 -:102000000000000000000000002C1CE400000000A4 -:1020100000000022002036270000000000000023FE -:1020200000201E2D0000000000000000003120A351 -:102030000000000000000000002D1D07000000004F -:1020400000000023002036270000000000000024CC -:1020500000201E2D0000000000000000003120C400 -:102060000000000000000000002D1D07000000001F -:10207000000000240080362700000000000000213E -:10208000002036230000000000000022002036243B -:10209000000000000000000000311CA30000000050 -:1020A0000000002300203627000000000000000090 -:1020B00000311CC40000000000000024008036270E -:1020C000000000000000001A002036270000000079 -:1020D0000000001B00203628000000000000001750 -:1020E00000201E2D00000000000000020021022739 -:1020F000000000000000000014C00000000002DC2E -:102100000000000000400000000002D90000001A9A -:1021100000203627000000000000001B00203628A9 -:10212000000000000000001700201E2D000000002D -:102130000000000200210227000000000000000053 -:1021400014E00000000002D9000000030021022773 -:10215000000000000000000014E00000000002DCAD -:102160000000002300201E2D0000000000000000E1 -:10217000002E00E1000000000000000002C000008E -:10218000000002DC0000002100201E2D00000000E5 -:1021900000000000003120A100000000000000004D -:1021A000002E00E8000000000000000006C0000053 -:1021B000000002DC0000002400201E2D00000000B2 -:1021C00000000000002E00E20000000000000000FF -:1021D00002C00000000002DC0000002200201E2DD2 -:1021E0000000000000000000003120C200000000DC -:1021F00000000000002E00E80000000000000000C9 -:1022000006C00000000002DC0000000000600000CA -:10221000000006680000000000600000000002B539 -:102220000000000000400000000002DE000000008E -:1022300000600000000002B5000000000060000027 -:102240000000065F0000000000400000000002DE09 -:102250000000000000600000000002A70000000075 -:1022600000400000000002DE0000001A00201E2DC9 -:10227000000000000000001B0080222D0000000074 -:102280000000001000221E230000000000000000DB -:1022900000294887000000000000000000311CA356 -:1022A000000000000000001000221E2700000000B7 -:1022B0000000000000294887000000000000001016 -:1022C00000221E230000000000000000003120C496 -:1022D000000000000000FFFF00282228000000008E -:1022E0000000000000894907000000000000001005 -:1022F00000221E2300000000000000000029488783 -:10230000000000000000001000221E21000000005C -:102310000000000000294847000000000000000005 -:1023200000311CA3000000000000001000221E2746 -:1023300000000000000000000029488700000000A5 -:102340000000000000311CA100000000000000108F -:1023500000221E270000000000000000002948475E -:10236000000000000000001000221E2300000000FA -:1023700000000000003120C4000000000000FFFF4A -:102380000028222800000000000000000029490762 -:10239000000000000000001000221E2100000000CC -:1023A00000000000003120C2000000000000FFFF1C -:1023B00000282228000000000000000000894907D2 -:1023C000000000000000001000221E23000000009A -:1023D0000000000000294887000000000000000104 -:1023E00000220A210000000000000000003308A2C3 -:1023F000000000000000001000221E22000000006B -:102400000000001000212222000000000000000057 -:1024100000294907000000000000000000311CA353 -:10242000000000000000001000221E270000000035 -:1024300000000000002948870000000000000001A3 -:1024400000220A210000000000000000003008A265 -:10245000000000000000001000221E22000000000A -:1024600000000010002122220000000000000000F7 -:1024700000294907000000000000001000221E2370 -:102480000000000000000000003120C40000000037 -:102490000000FFFF002822280000000000000000CC -:1024A000002949070000000000000000003808C5AE -:1024B00000000000000000000030084100000000A3 -:1024C0000000000100220A220000000000000000BD -:1024D000003308A2000000000000001000221E22AD -:1024E0000000000000000010002122220000000077 -:1024F00000000000008949070000000000000017EC -:102500000020222D000000000000000014C0000088 -:1025100000000318FFFFFFEF002806210000000065 -:10252000000000140020222D000000000000F8E050 -:1025300000204411000000000000000000294901B3 -:1025400000000000000000000089490100000000B8 -:102550000000000000204811000000000000000002 -:102560000020481100000000060A02000080481107 -:102570000000000000000000C0200000000000007B -:1025800097000000C020441100000000000000007F -:10259000C0204811000000008A0000000020441103 -:1025A00000000000000000000020481100000000B2 -:1025B0000000225C00204411000000000000000028 -:1025C000C0204800000000000000A1FC00204411D1 -:1025D0000000000000000000C020480000000000D3 -:1025E00000000000C0200400000000000000000007 -:1025F00000A0000A00000000970000000020441125 -:102600000000000000000000002048110000000051 -:102610008A000000002044110000000000000000BB -:1026200000204811000000000000225C002044113E -:102630000000000000000000C02048000000000072 -:102640000000A1FC00204411000000000000000078 -:10265000C02048000000000000000000C02004006E -:10266000000000000000000000A0000A00000000C0 -:10267000970000000020441100000000000000004E -:1026800000204811000000008A00000000204411D2 -:1026900000000000000000000020481100000000C1 -:1026A0000000225C00204411000000000000000037 -:1026B000C0204800000000000000A1FC00204411E0 -:1026C0000000000000000000C020480000000000E2 -:1026D0000001A1FD002044110000000000000000E6 -:1026E000D90048000000000000000000C0200400E5 -:1026F000000000000000000000A0000A0000000030 -:1027000000002257002044110000000000000003D8 -:10271000C0484A20000000000000225D0020441153 -:102720000000000000000000C04048000000000061 -:1027300000000000006000000000064500000000EE -:10274000C0200800000000000000225C00204411AE -:10275000000000000000000300384A2200000000D2 -:102760000000A1FC00204411000000000000000057 -:10277000C0204800000000000001A1FD002044111D -:102780000000000000000000002F022200000000F6 -:10279000000000000CE0000000000000000000004D -:1027A00040204800000000000000000140304A20A6 -:1027B0000000000000000002C0304A2000000000BD -:1027C0000000000100530A220000034B0000003FFC -:1027D000C0280A20000000008100000000204411F1 -:1027E000000000000000000100204811000000006F -:1027F000000021F800204411000000000000001833 -:102800000020481100000000000421F9006044117C -:102810000000068D000000110021023000000000C1 -:102820000000000014E00000000003540000001449 -:10283000002F022200000000000000000CC0000079 -:10284000000003640000201000204411000000007C -:102850000000800000204811000000000001A2A438 -:102860000020441100000000000000000060480249 -:102870000000036E00002100002044110000000051 -:1028800000000000C0204800000000000000000020 -:10289000C02048000000000000000000C0204800E8 -:1028A0000000000000000000C040480000000000E0 -:1028B00000000004002F02220000000000000000C1 -:1028C0000CC000000000036A00002010002044112A -:1028D00000000000000080000020481100000000FF -:1028E0000001A2A40020441100000000000000002C -:1028F000004048020000035F00000028002F022271 -:1029000000000000000000000CC00000000005C036 -:102910000001A2A4002044110000000000000000FB -:10292000004048020000035F0000002C0020362613 -:102930000000000000000049002018110000000005 -:102940000000003F002048110000000000000001CE -:1029500000331A260000000000000000002F0226AD -:1029600000000000000000000CC000000000037028 -:102970000000002C00801A2D000000000000003F25 -:10298000C0280A200000000000000015002F0222CD -:1029900000000000000000000CE0000000000386C2 -:1029A00000000006002F02220000000000000000CE -:1029B0000CE00000000003B100000016002F02220E -:1029C00000000000000000000CE00000000003B563 -:1029D00000000020002F0222000000000000000084 -:1029E0000CE000000000039C0000000F002F0222FA -:1029F00000000000000000000CE00000000003A840 -:102A000000000010002F0222000000000000000063 -:102A10000CE00000000003A80000001E002F0222AE -:102A200000000000000000000CE000000000039027 -:102A30000000A2A4002044110000000000000000DB -:102A400000404802000000000800000000290A229F -:102A5000000000000000000340210E2000000000E4 -:102A60000000000CC021122000000000000800003F -:102A7000002812240000000000000014C0221620CC -:102A80000000000000000000002914A40000000065 -:102A90000000A2A40020441100000000000000007B -:102AA000002948A2000000000000A1FE00204411FF -:102AB000000000000000000000404803000000008B -:102AC000810000000020441100000000000000010F -:102AD0000020481100000000000021F800204411EF -:102AE0000000000000000016002048110000000057 -:102AF000000421F9006044110000068D000000155B -:102B000000210230000000000000000014E000007E -:102B1000000003920000210E00204411000000007C -:102B200000000000C020480000000000000000007D -:102B3000C0204800000000000000A2A400204411B2 -:102B400000000000000000000040480200000000FB -:102B5000810000000020441100000000000000017E -:102B60000020481100000000000021F8002044115E -:102B700000000000000000170020481100000000C5 -:102B8000000421F9006044110000068D00000003DC -:102B900000210230000000000000000014E00000EE -:102BA0000000039E000021080020441100000000E6 -:102BB00000000000C02048000000000000000000ED -:102BC000C0204800000000000000A2A40020441122 -:102BD000000000000000000000404802000000006B -:102BE0000000A2A40020441100000000000000002A -:102BF0000020480200000000800000000020441176 -:102C0000000000000000000000204811000000004B -:102C100081000000002044110000000000000010AE -:102C200000204811000000000000000000200010FB -:102C3000000000000000000014C00000000003AE0F -:102C40000000000000400000000000000000201014 -:102C50000020441100000000000080000020481106 -:102C6000000000000001A2A40020441100000000A8 -:102C70000000000600404811000000000000201085 -:102C800000204411000000000000800000204811D6 -:102C9000000000000001A2A4002044110000000078 -:102CA00000000016006048110000036E00000000E4 -:102CB000004000000000000000000000C0200800EC -:102CC0000000000000000000C0200C000000000018 -:102CD0000000001D00210223000000000000000091 -:102CE00014E00000000003CE810000000020441129 -:102CF000000000000000000100204811000000005A -:102D0000000021F80020441100000000000000181D -:102D10000020481100000000000421F90060441167 -:102D20000000068D000000110021023000000000AC -:102D30000000000014E00000000003C000002100BB -:102D400000204411000000000000000000204802A4 -:102D50000000000000000000002048030000000008 -:102D6000BABECAFE0020481100000000CAFEBABE6A -:102D70000020481100000000000020100020441135 -:102D8000000000000000800000204811000000004A -:102D90000000A2A400204411000000000000000474 -:102DA0000040481100000000000021700020441184 -:102DB00000000000000000000020480200000000A9 -:102DC0000000000000204803000000008100000017 -:102DD00000204411000000000000000A00204811FB -:102DE00000000000000000000020001000000000B3 -:102DF0000000000014C00000000003D38C0000009D -:102E00000020441100000000CAFEBABE0040481174 -:102E100000000000810000000020441100000000BC -:102E200000000001002048110000000000003FFFEA -:102E300040280A20000000008000000040280E20EA -:102E40000000000040000000C02812200000000028 -:102E500000040000006946220000068D000000000A -:102E6000002014100000000000000000002F0223CA -:102E700000000000000000000CC00000000003E1A2 -:102E800000000000C0401800000003E400003FFF05 -:102E9000C0281A2000000000000400000069462637 -:102EA0000000068D00000000002018100000000047 -:102EB00000000000002F02240000000000000000BD -:102EC0000CC00000000003E700000000C0401C0030 -:102ED000000003EA00003FFFC0281E2000000000A1 -:102EE00000040000006946270000068D0000000075 -:102EF00000201C1000000000000000000020440220 -:102F00000000000000000000002820C500000000B4 -:102F100000000000004948E800000000A580000013 -:102F200000200811000000000000200000200C110B -:102F30000000000083000000006044110000041243 -:102F4000000000000020440200000000000000001B -:102F5000C0204800000000000000000040204800A1 -:102F6000000000000000001FC0210220000000003F -:102F70000000000014C00000000003F70000201053 -:102F800000204411000000000000800000204811D3 -:102F9000000000000000FFFFC0481220000003FFF7 -:102FA000A780000000200811000000000000A00021 -:102FB00000200C110000000083000000006044119C -:102FC0000000041200000000002044020000000085 -:102FD00000000000C02048000000000000000000C9 -:102FE000C0204800000000000000FFFFC0281220A1 -:102FF00000000000830000000020441100000000D9 -:103000000000000000304883000000008400000041 -:10301000002044110000000000000000C020480013 -:1030200000000000000000001D0000000000000083 -:103030008300000000604411000004120000000042 -:10304000C040040000000001A98000000020081119 -:10305000000000000000C00000400C11000003FA56 -:10306000AB80000000200811000000000000F8E024 -:1030700000400C11000003FAAD8000000020081190 -:10308000000000000000F88000400C11000003FA6E -:10309000B380000000200811000000000000F3FCD5 -:1030A00000400C11000003FAAF800000002008115E -:1030B000000000000000E00000400C11000003FAD6 -:1030C000B180000000200811000000000000F000A6 -:1030D00000400C11000003FA83000000002044119E -:1030E00000000000000021480020481100000000FE -:1030F00084000000002044110000000000000000D7 -:10310000C020480000000000000000001D0000007A -:10311000000000000000000000800000000000002F -:1031200001182000C0304620000000000000000010 -:10313000D90048000000000000000000C02004008A -:10314000000000000000000000A0000A00000000D5 -:103150000218A000C030462000000000000000005F -:10316000D90048000000000000000000C02004005A -:10317000000000000000000000A0000A00000000A5 -:103180000318C000C030462000000000000000000E -:10319000D90048000000000000000000C02004002A -:1031A000000000000000000000A0000A0000000075 -:1031B0000418F8E0C03046200000000000000000C5 -:1031C000D90048000000000000000000C0200400FA -:1031D000000000000000000000A0000A0000000045 -:1031E0000518F880C03046200000000000000000F4 -:1031F000D90048000000000000000000C0200400CA -:10320000000000000000000000A0000A0000000014 -:103210000618E000C030462000000000000000005A -:10322000D90048000000000000000000C020040099 -:10323000000000000000000000A0000A00000000E4 -:103240000718F000C0304620000000000000000019 -:10325000D90048000000000000000000C020040069 -:10326000000000000000000000A0000A00000000B4 -:103270000818F3FCC03046200000000000000000E9 -:10328000D90048000000000000000000C020040039 -:10329000000000000000000000A0000A0000000084 -:1032A0000000003000200A2D000000000000000097 -:1032B000C0290C4000000000000000300020362330 -:1032C0000000000000000000C0200400000000001A -:1032D0000000000000A0000A0000000086000000BE -:1032E00000204411000000000000000000404801E0 -:1032F0000000000085000000C02044110000000014 -:103300000000000000404801000000000000217C97 -:10331000002044110000000000000018402102209D -:10332000000000000000000014C000000000044580 -:1033300000800000C0494A20000004460000000050 -:10334000C02048000000000000000000C02048002D -:103350000000000000000000C02048000000000045 -:103360008100000000204411000000000000000166 -:10337000002048110000000000000000C0200800EC -:103380000000000000000000170000000000000026 -:103390000004217F006044110000068D0000001F22 -:1033A00000210230000000000000000014C00000F6 -:1033B000000000000000000000404C020000044B30 -:1033C00000000000C0200C00000000000000000011 -:1033D000C02010000000000000000000C020140009 -:1033E0000000000000000000C020180000000000E5 -:1033F00000000000C0201C000000000000007F0052 -:1034000000280A210000000000004500002F0222D1 -:1034100000000000000000000CE000000000045963 -:1034200000000000C020200000000000000000009C -:1034300017000000000000000000001000280A2310 -:103440000000000000000010002F02220000000019 -:10345000000000000CE0000000000461810000009A -:10346000002044110000000000000001002048116D -:103470000000000000040000006946240000068DE2 -:103480000000000000400000000004668100000011 -:10349000002044110000000000000000002048113E -:1034A000000000000000216D002044110000000019 -:1034B00000000000002048040000000000000000A0 -:1034C000006048050000069200000000002824F07B -:1034D000000000000000000700280A230000000090 -:1034E00000000001002F0222000000000000000088 -:1034F0000AE000000000046D00000000002F00C979 -:10350000000000000000000004E00000000004864D -:1035100000000000004000000000049300000002D2 -:10352000002F022200000000000000000AE000005E -:103530000000047200000000002F00C9000000001D -:103540000000000002E0000000000486000000000F -:10355000004000000000049300000003002F02223E -:1035600000000000000000000AE0000000000477F6 -:1035700000000000002F00C9000000000000000053 -:103580000CE0000000000486000000000040000085 -:103590000000049300000004002F0222000000003D -:1035A000000000000AE000000000047C00000000B1 -:1035B000002F00C900000000000000000AE0000029 -:1035C000000004860000000000400000000004939A -:1035D00000000005002F0222000000000000000093 -:1035E0000AE000000000048100000000002F00C974 -:1035F000000000000000000006E00000000004865B -:1036000000000000004000000000049300000006DD -:10361000002F022200000000000000000AE000006D -:103620000000048600000000002F00C90000000018 -:103630000000000008E00000000004860000000018 -:10364000004000000000049300007F0000280A21D1 -:103650000000000000004500002F022200000000D2 -:10366000000000000AE00000000000000000000868 -:1036700000210A23000000000000000014C0000028 -:1036800000000490000021690020441100000000A7 -:1036900000000000C0204800000000000000000002 -:1036A000C02048000000000000000000C0204800CA -:1036B00000000000CAFEBABE004048110000000031 -:1036C00000000000C02044000000000000000000D6 -:1036D000C02000000000000000000000C0404800C2 -:1036E0000000000000007F0000280A210000000008 -:1036F00000004500002F0222000000000000000032 -:103700000AE000000000049900000000C020000052 -:103710000000000000000000C020000000000000C9 -:1037200000000000C0400000000000000000000099 -:1037300000404C080000045900000000C0200800B0 -:10374000000000000000001040210E2000000000DA -:1037500000000011402112200000000000000012B3 -:1037600040211620000000000000216900204411C3 -:1037700000000000000000000020480200000000DF -:1037800000000000002102250000000000000000F1 -:1037900014E00000000004A300040000C0494A2017 -:1037A000000004A4FFFBFFFFC0284A200000000027 -:1037B00000000000002102230000000000000000C3 -:1037C00014E00000000004B000000000C020480029 -:1037D0000000000000000000C020480000000000C1 -:1037E0000000000000210224000000000000000092 -:1037F00014C00000000000008100000000204411FF -:10380000000000000000000C002048110000000033 -:103810000000000000200010000000000000000078 -:1038200014C00000000004ACA000000000204411FF -:1038300000000000CAFEBABE0040481100000000AF -:10384000810000000020441100000000000000047E -:1038500000204811000000000000216B00204411EE -:103860000000000000000000C02048100000000020 -:10387000810000000020441100000000000000054D -:1038800000204811000000000000216C00204411BD -:103890000000000000000000C020481000000000F0 -:1038A00000000000002F02240000000000000000C3 -:1038B0000CE00000000000000000000000400000DC -:1038C000000004AA00000000C0210A20000000003F -:1038D0000000000014C00000000004C381000000CC -:1038E00000204411000000000000000000204811EA -:1038F000000000000000216D0020441100000000C5 -:1039000000000000C020480000000000000000008F -:10391000C060480000000692000000000040000067 -:10392000000004C7810000000020441100000000D6 -:103930000000000100204811000000000004000009 -:10394000C02946200000000000000000C060000008 -:103950000000068D0000000100210222000000008E -:103960000000000014C00000000004CE0000216927 -:10397000002044110000000000000000C0204800AA -:103980000000000000000000C0204800000000000F -:10399000000000000020481000000000CAFEBABE6F -:1039A000004048110000000000000000C02044005A -:1039B0000000000000000000C040481000000000AF -:1039C0008100000000204411000000000000000100 -:1039D0000020481100000000000021F800204411E0 -:1039E000000000000000000E002048110000000050 -:1039F000000421F9006044110000068D0000000061 -:103A000000210230000000000000000014C000008F -:103A1000000004D0000021800020441100000000BC -:103A200000000000C020480000000000000000006E -:103A3000C02000000000000000000000C02048007E -:103A40000000000000000000C02000000000000096 -:103A500000000000C040480000000000000000031B -:103A600000333E2F00000000000000010021022171 -:103A7000000000000000000014E00000000005004D -:103A80000000002C00200A2D0000000000040000AF -:103A900018E00C11000004EF0000000100333E2F7D -:103AA0000000000000002169002044110000000017 -:103AB000000000000020480200000000000000009C -:103AC00000204803000000000000000800300A2227 -:103AD0000000000000000000C020480000000000BE -:103AE00000000000C0204800000000000000216924 -:103AF00000204411000000000000000000204802E7 -:103B0000000000000000000000204803000000004A -:103B10000000000800300A22000000000000000041 -:103B2000C02048000000000000000000D8C048008D -:103B3000000004E30000216900204411000000009F -:103B4000000000000020480200000000000000000B -:103B500000204803000000000000000800300A2296 -:103B60000000000000000000C0204800000000002D -:103B700000000000C0204800000000000000002DF0 -:103B80000020122D000000000000000000290C831E -:103B90000000000000002169002044110000000026 -:103BA00000000000002048020000000000000000AB -:103BB00000204803000000000000000800300A2236 -:103BC0000000000000000000C020480000000000CD -:103BD00000000000C02048000000000000000011AC -:103BE00000210224000000000000000014C00000BA -:103BF000000000000000000000400000000004AAD7 -:103C00000000002CC0203620000000000000002D25 -:103C1000C0403620000000000000000F00210221FB -:103C2000000000000000000014C0000000000505B6 -:103C300000000000006000000000000B0000000019 -:103C4000D90000000000000000000000C040040097 -:103C500000000001B5000000002044110000000039 -:103C6000000020000020481100000000B600000005 -:103C700000204411000000000000A00000204811B6 -:103C800000000000B7000000002044110000000008 -:103C90000000C0000020481100000000B800000033 -:103CA00000204411000000000000F8E0002048114E -:103CB00000000000B90000000020441100000000D6 -:103CC0000000F8800020481100000000BA00000049 -:103CD00000204411000000000000E0000020481116 -:103CE00000000000BB0000000020441100000000A4 -:103CF0000000F0000020481100000000BC0000009F -:103D000000204411000000000000F3FC00204811D6 -:103D100000000000810000000020441100000000AD -:103D2000000000020020481100000000000000FF19 -:103D300000280E300000000000000000002F0223C9 -:103D400000000000000000000CC000000000051989 -:103D500000000000C020080000000000000000007B -:103D600014C000000000052E0000000000200C110F -:103D7000000000000000001C0020362300000000AE -:103D80000000002B00203623000000000000002966 -:103D90000020362300000000000000280020362309 -:103DA0000000000000000017002036230000000083 -:103DB000000000250020362300000000000000263F -:103DC00000203623000000000000001500203623EC -:103DD0000000000000000016002036230000000054 -:103DE000FFFFE00000200C11000000000000002197 -:103DF00000203623000000000000002200203623AF -:103E00000000000000001FFF00200C110000000057 -:103E100000000023002036230000000000000024E2 -:103E20000020362300000000F1FFFFFF00283A2E9B -:103E3000000000000000001AC0220E200000000058 -:103E4000000000000029386E000000008100000022 -:103E5000002044110000000000000006002048116E -:103E6000000000000000002A402036200000000072 -:103E70008700000000204411000000000000000046 -:103E8000C0204800000000000000A1F40020441100 -:103E900000000000000000000020481000000000AA -:103EA0000000000000200C110000000000000030A5 -:103EB00000203623000000009D0000000020441177 -:103EC000000000000000001F40214A200000000008 -:103ED00096000000002044110000000000000000D7 -:103EE000C02048000000000000000000C0200C00BE -:103EF0000000000000000000C020100000000000D2 -:103F00000000001F00211624000000000000000037 -:103F100014C00000000000000000001D0020362337 -:103F2000000000000000000300281E230000000025 -:103F3000000000080022222300000000FFFFF00024 -:103F4000002822280000000000000000002920E8CE -:103F5000000000000000001F0020362800000000C4 -:103F60000000001800211E230000000000000020B7 -:103F70000020362700000000000000020022162466 -:103F80000000000000000000003014A80000000045 -:103F90000000001E00203625000000000000000385 -:103FA00000211A24000000001000000000281A263A -:103FB00000000000EFFFFFFF00283A2E0000000085 -:103FC00000000000004938CE0000067B0000000120 -:103FD00040280A20000000000000000640280E20B3 -:103FE0000000000000000300C028122000000000B4 -:103FF0000000000800211224000000000000000062 -:10400000C02016200000000000000000C0201A2080 -:10401000000000000000000000210222000000005B -:104020000000000014C000000000056681000000D0 -:104030000020441100000000000000010020481191 -:10404000000000000000225800300A240000000098 -:1040500000040000006946220000068D000021696E -:10406000002044110000000000000000002048056E -:10407000000000000002000000294A2600000000A5 -:10408000000000000020481000000000CAFEBABE78 -:10409000002048110000000000000002002F022351 -:1040A00000000000000000000CC000000000056ED1 -:1040B00000000000C0201C100000000000000000F4 -:1040C000C04000000000057C00000002002F022319 -:1040D00000000000000000000CC000000000056EA1 -:1040E00081000000002044110000000000000001D9 -:1040F00000204811000000000000225800300A246F -:104100000000000000040000006946220000068D47 -:1041100000000000C0201C10000000000000000093 -:10412000C04000000000057C00000000002F0223BA -:1041300000000000000000000CC00000000005723C -:1041400000000000C0201C00000000000000000073 -:10415000C04000000000057C00000004002F022386 -:1041600000000000000000000CC000000000057A04 -:104170008100000000204411000000000000000049 -:1041800000204811000000000000216D00204411B3 -:104190000000000000000000C020480000000000F7 -:1041A00000000000C060480000000692000000000F -:1041B00000401C100000057C00000000C020000032 -:1041C0000000000000000000C040000000000000EF -:1041D000000000000EE000000000057E000000006E -:1041E00000600000000005C900000000002F02244C -:1041F00000000000000000000CC000000000058F5F -:104200000000A2B7002044110000000000000000E0 -:104210000020480700000000810000000020441139 -:104220000000000000000001002048110000000014 -:104230000004A2B6006044110000068D0000001AC0 -:10424000002122300000000000000006002226307D -:104250000000000000042004006044110000068DEE -:104260000000A2C400204411000000000000000073 -:10427000003048E9000000000000000000E00000FD -:104280000000058D0000A2D10020441100000000B4 -:104290000000000000404808000000000000A2D11B -:1042A00000204411000000000000000100504A28D6 -:1042B0000000000000000001002F022400000000A8 -:1042C000000000000CC00000000005A00000A2BB20 -:1042D00000204411000000000000000000204807FA -:1042E00000000000810000000020441100000000D8 -:1042F0000000000100204811000000000004A2BAE4 -:10430000006044110000068D0000001A00212230D8 -:10431000000000000000000600222630000000001F -:1043200000042004006044110000068D0000A2C5B6 -:10433000002044110000000000000000003048E9A7 -:10434000000000000000000000E000000000059EEA -:104350000000A2D200204411000000000000000074 -:1043600000404808000000000000A2D200204411D4 -:10437000000000000000000100504A28000000007A -:1043800000000002002F02240000000000000000D6 -:104390000CC00000000005B10000A2BF00204411C5 -:1043A000000000000000000000204807000000009E -:1043B0008100000000204411000000000000000106 -:1043C00000204811000000000004A2BE006044115B -:1043D0000000068D0000001A0021223000000000BD -:1043E0000000000600222630000000000004200427 -:1043F000006044110000068D0000A2C60020441198 -:104400000000000000000000003048E9000000004B -:104410000000000000E00000000005AF0000A2D393 -:104420000020441100000000000000000040480887 -:10443000000000000000A2D3002044110000000092 -:104440000000000100504A28000000000000A2C344 -:104450000020441100000000000000000020480778 -:104460000000000081000000002044110000000056 -:104470000000000100204811000000000004A2C25A -:10448000006044110000068D0000001A0021223057 -:10449000000000000000000600222630000000009E -:1044A00000042004006044110000068D0000A2C733 -:1044B000002044110000000000000000003048E926 -:1044C000000000000000000000E00000000005BE49 -:1044D0000000A2D4002044110000000000000000F1 -:1044E00000404808000000000000A2D40020441151 -:1044F000000000000000000100504A2800000000F9 -:1045000085000000002044110000000000000000B1 -:1045100000204801000000000000304A0020441143 -:104520000000000001000000002048110000000011 -:104530000000000000400000000005C4A4000000CE -:10454000C02044110000000000000000C0404800EE -:104550000000000000000000C0600000000005C96D -:1045600000000000C0400400000000010000002C1A -:1045700000203621000000008100000000204411CE -:1045800000000000000000060020481100000000AC -:1045900000000000002F02300000000000000000BA -:1045A0000CC00000000005D0000000000020041135 -:1045B000000000000000003000403621000005E34C -:1045C000000000300020062D0000000000007E00EA -:1045D000002806210000000000000000002F02213A -:1045E00000000000000000000CE00000000005E3F7 -:1045F00081000000002044110000000000000001C4 -:1046000000204811000000000004A0920060441146 -:104610000000068D00000031002036300000000050 -:104620000004A093006044110000068D00000032D9 -:1046300000203630000000000004A2B600604411E3 -:104640000000068D0000003300203630000000001E -:104650000004A2BA006044110000068D000000347E -:1046600000203630000000000004A2BE00604411AB -:104670000000068D000000350020363000000000EC -:104680000004A2C2006044110000068D0000003644 -:1046900000203630000000000004200400604411B7 -:1046A0000000068D0001A2A40020441100000000BB -:1046B0000000003F00204811000000000000003F03 -:1046C00000204811000000000000003F00204811B9 -:1046D000000000000000003F002048110000000022 -:1046E0000000000500204811000000000000A1F4B7 -:1046F00000204411000000000000000000204811CC -:1047000000000000880000000020441100000000AC -:10471000000000010020481100000000810000009E -:104720000020441100000000000000060020481195 -:104730000000000000000001002F02300000000017 -:10474000000000000CE000000000062C000000301B -:104750000020062D0000000000000000002F0221B4 -:1047600000000000000000000CE000000000062C2B -:104770008100000000204411000000000000000142 -:10478000002048110000000000007E0000280621E3 -:104790000000000000000000002F022100000000C7 -:1047A000000000000CE00000000006050000A092E0 -:1047B00000204411000000000000003100204A2DBC -:1047C000000000000000A093002044110000000041 -:1047D0000000003200204A2D000000000000A2B6B8 -:1047E00000204411000000000000003300204A2D8A -:1047F000000000000000A2BA0020441100000000E8 -:104800000000003400204A2D000000000000A2BE7D -:1048100000204411000000000000003500204A2D57 -:10482000000000000000A2C20020441100000000AF -:104830000000003600204A2D00000000000000307B -:104840000020062D00000000000001FF00280621C6 -:104850000000000000000000002F02210000000006 -:10486000000000000CE000000000062B000000002B -:1048700000210221000000000000000014C0000020 -:104880000000060E0004A003006044110000068D25 -:104890000000A00300204411000000000000000000 -:1048A0000020481000000000000000010021062147 -:1048B000000000000000000014C00000000006130B -:1048C0000004A010006044110000068D0000A0103C -:1048D00000204411000000000000000000204810EB -:1048E000000000000000000100210621000000007F -:1048F00000000000002F0221000000000000000066 -:104900000CE000000000062B0004A0110060441120 -:104910000000068D0000A0110020441100000000DE -:104920000000000000204810000000000004A01259 -:10493000006044110000068D0000A0120020441108 -:1049400000000000000000000020481000000000EF -:104950000004A013006044110000068D0000A013A5 -:10496000002044110000000000000000002048105A -:10497000000000000004A014006044110000068D37 -:104980000000A014002044110000000000000000FE -:1049900000204810000000000004A0150060441131 -:1049A0000000068D0000A01500204411000000004A -:1049B0000000000000204810000000000004A016C5 -:1049C000006044110000068D0000A0160020441174 -:1049D000000000000000000000204810000000005F -:1049E0000004A017006044110000068D0000A0170D -:1049F00000204411000000000000000000204810CA -:104A00000000000000042004006044110000068D36 -:104A10000000002C0080062D00000000FF000000B8 -:104A20000020441100000000000000000020481198 -:104A300000000000000000010020481100000000FC -:104A4000000000020080481100000000000000008B -:104A50000EE000000000063D000000300020062DA2 -:104A600000000000000000020028062100000000F5 -:104A700000000000002F02210000000000000000E4 -:104A80000CE000000000063B810000000020441103 -:104A9000000000000000000100204811000000009C -:104AA00000042004006044110000068D0000100086 -:104AB00000200811000000000000002B002036221A -:104AC000000000000000000000600000000006413F -:104AD0000000000000600000000005C99800000010 -:104AE0000020441100000000000000000080481178 -:104AF0000000000000000000C0600000000006414F -:104B000000000000C0400400000000010000A2A45A -:104B10000020441100000000000000220020481185 -:104B20000000000089000000002044110000000087 -:104B300000000001004048110000062D9700000011 -:104B40000020441100000000000000000020481177 -:104B5000000000008A000000002044110000000056 -:104B600000000000004048110000062D0000000079 -:104B7000006000000000065C0000201000204411CE -:104B8000000000000000800000204811000000002C -:104B90000001A2A4C0204411000000000000001683 -:104BA000006048110000036E000020100020441136 -:104BB000000000000001000000204811000000007B -:104BC00081000000002044110000000000000001EE -:104BD00000204811000000000000217C002044114A -:104BE00000000000098000000020481100000000C3 -:104BF000FFFFFFFF00204811000000000000000040 -:104C00000020481100000000000000001700000014 -:104C1000000000000004217F006044110000068DA8 -:104C20000000001F00210230000000000000000012 -:104C300014C00000000000000000000400404C11FF -:104C400000000656000000000040000000000000C8 -:104C50000000001700201E2D0000000000000004CE -:104C600000291E27000000000000001700803627E2 -:104C7000000000000000001700201E2D00000000B2 -:104C8000FFFFFFFB00281E270000000000000017A8 -:104C900000803627000000000000001700201E2DB5 -:104CA000000000000000000800291E27000000008E -:104CB00000000017008036270000000000000017E9 -:104CC00000201E2D00000000FFFFFFF700281E2718 -:104CD00000000000000000170080362700000000E0 -:104CE000000020100020441100000000000080009F -:104CF00000204811000000000001A2A4002044117F -:104D00000000000000000016006048110000036E63 -:104D100000002010002044110000000000010000ED -:104D200000204811000000000000217C00204411F8 -:104D30000000000001800000002048110000000079 -:104D4000FFFFFFFF002048110000000000000000EE -:104D500000204811000000000000000017000000C3 -:104D6000000000008100000000204411000000004D -:104D70000000000100204811000000000004217F15 -:104D8000006044110000068D0000001F0021023069 -:104D9000000000000000000014C000000000068CAD -:104DA0000000001000404C110000067200000000DE -:104DB000C0200400000000000000000038C0000017 -:104DC000000000000000001D00200A2D000000006F -:104DD0000000001E00200E2D000000000000001F3B -:104DE0000020122D00000000000000200020162DE1 -:104DF00000000000000021690020441100000000B4 -:104E00000000000000204804000000000000000036 -:104E100000204805000000000000000000204801BC -:104E200000000000CAFEBABE0020481100000000C9 -:104E30000000000400301224000000000000000008 -:104E4000002F006400000000000000000CC0000003 -:104E50000000068B0000000300281A22000000005A -:104E6000000000080022122200000000FFFFF000F6 -:104E7000002812240000000000000000002910C4D7 -:104E8000000000000000001F004036240000000069 -:104E90000000000000800000000000000000000092 -:104EA0001AC000000000068D9F0000000020441181 -:104EB00000000000CAFEBABE002048110000000039 -:104EC000000000001AE00000000006900000000052 -:104ED0000080000000000000000000001AC0000078 -:104EE000000006929E000000002044110000000017 -:104EF000CAFEBABE002048110000000000000000F9 -:104F00001AE000000000069500000000008000008C -:104F10000000000000000000006000000000000B26 -:104F200000001000006004110000031500000000E4 -:104F300000200411000000000000000000600811C3 -:104F4000000001B20000225C0020441100000000BB -:104F5000000000030020481100000000000022565D -:104F600000204411000000000000001B0020481138 -:104F7000000000000000A1FC00204411000000001F -:104F80000000000100204811000000000001A1FD08 -:104F9000C0204411000000000000002100201E2D50 -:104FA000000000000000001000221E27000000008A -:104FB000000000240020222D000000000000FFFF60 -:104FC00000282228000000000000000000294907F6 -:104FD0000000000000000000002048110000000058 -:104FE000000000220020222D000000000000FFFF32 -:104FF00000282228000000000000000000294907C6 -:105000000000000000000000002048110000000027 -:105010000000002300201E2D0000000000000010F2 -:1050200000221E27000000000000000000294907A0 -:1050300000000000000000000040481100000000D7 -:105040000000000000000000000000000000000060 -:105050000000000000000000000000000000000050 -:105060000000000000000000000000000000000040 -:105070000000000000000000000000000000000030 -:105080000000000000000000000000000000000020 -:105090000000000000000000000000000000000010 -:1050A0000000000000000000000000000000000000 -:1050B00000000000000000000000000000000000F0 -:1050C00000000000000000000000000000000000E0 -:1050D00000000000000000000000000000000000D0 -:1050E00000000000000000000000000000000000C0 -:1050F00000000000000000000000000000000000B0 -:10510000000000000000000000000000000000009F -:10511000000000000000000000000000000000008F -:10512000000000000000000000000000000000007F -:10513000000000000000000000000000000000006F -:10514000000000000000000000000000000000005F -:10515000000000000000000000000000000000004F -:10516000000000000000000000000000000000003F -:10517000000000000000000000000000000000002F -:10518000000000000000000000000000000000001F -:10519000000000000000000000000000000000000F -:1051A00000000000000000000000000000000000FF -:1051B00000000000000000000000000000000000EF -:1051C00000000000000000000000000000000000DF -:1051D00000000000000000000000000000000000CF -:1051E00000000000000000000000000000000000BF -:1051F00000000000000000000000000000000000AF -:10520000000000000000000000000000000000009E -:10521000000000000000000000000000000000008E -:10522000000000000000000000000000000000007E -:10523000000000000000000000000000000000006E -:10524000000000000000000000000000000000005E -:10525000000000000000000000000000000000004E -:10526000000000000000000000000000000000003E -:10527000000000000000000000000000000000002E -:10528000000000000000000000000000000000001E -:10529000000000000000000000000000000000000E -:1052A00000000000000000000000000000000000FE -:1052B0000142050205C002500000000001C3016860 -:1052C000043F05C000000000022502090250015100 -:1052D000000000000223024502A00241000000007D -:1052E00003D705C005C005C0000000000649064AF6 -:1052F000031F05C00000000005C005C503200340D2 -:1053000000000000032A0282034203340000000070 -:1053100005C005C005C005C00000000005C005515E -:1053200005C005C00000000003BA05C004BB03446B -:1053300000000000049A0450043D05C00000000075 -:1053400004D005C0044104DD00000000045005073E -:10535000035103750000000005C005C005C005C06D -:105360000000000005C005C005C005C00000000029 -:1053700005C005C0063F05C70000000005C005C008 -:10538000000705C00000000005C005C005C005C03D -:105390000000000005C005C005C005C000000000F9 -:1053A00003F803ED0408040600000000040E040ADC -:1053B000040C041000000000041C04180424042041 -:1053C00000000000042C0428043404300000000015 -:1053D00005C005C0043805C00000000005C005C0B8 -:1053E00005C005C00000000005C005C005C005C01F -:1053F0000000000000020679069700060000000089 -:00000001FF diff --git a/firmware/radeon/RV610_pfp.bin.ihex b/firmware/radeon/RV610_pfp.bin.ihex deleted file mode 100644 index f55292c97b79..000000000000 --- a/firmware/radeon/RV610_pfp.bin.ihex +++ /dev/null @@ -1,145 +0,0 @@ -:1000000000CA040000A00000007E828B007C038BED -:10001000008001B8007C038B00D4401E00EE001E5F -:1000200000CA040000A00000007E828B00C41838C3 -:1000300000CA240000CA2800009581A800C41C3A08 -:1000400000C3C00000CA080000CA0C00007C744B4A -:1000500000C200050099C00000C41C3A007C744C2A -:1000600000C0FFF000042C0400309002007D250049 -:1000700000351402007D350B00255403007CD5802B -:1000800000259C030095C00400D5001B007EDDC147 -:10009000007D9D8000D6801B00D5801B00D4401EB3 -:1000A00000D5401E00D6401E00D6801E00D4801E03 -:1000B00000D4C01E009783D300D5C01E00CA08001C -:1000C0000080001A00CA0C0000E4011E00D4001ECB -:1000D0000080000C00C4183800E4013E00D4001E6B -:1000E0000080000C00C4183800D4401E00EE001E32 -:1000F00000CA040000A00000007E828B00E4011E04 -:1001000000D4001E00D4401E00EE001E00CA0400F1 -:1001100000A00000007E828B00E4013E00D4001E9F -:1001200000D4401E00EE001E00CA040000A0000023 -:10013000007E828B00CA180000D4401E00D5801EAD -:100140000080005300D4007500D4401E00CA08008F -:1001500000CA0C0000CA100000D4801900D4C018D6 -:1001600000D5001700D4801E00D4C01E00D5001E8C -:1001700000E2001E00CA040000A00000007E828B86 -:1001800000CA080000D4806000D4401E0080000037 -:1001900000D4801E00CA080000D4806100D4401E34 -:1001A0000080000000D4801E00CA080000CA0C00B5 -:1001B00000D4401E00D4801600D4C01600D4801E87 -:1001C000008001B800D4C01E00C6084300CA0C005D -:1001D00000CA10000094800400CA140000E420F358 -:1001E00000D4201300D5606500D4E01C00D5201C8D -:1001F00000D5601C008000000006200100C60843F6 -:1002000000CA0C0000CA1000009483F700CA140052 -:1002100000E420F30080007900D4201300C60843D6 -:1002200000CA0C0000CA1000009883EF00CA140036 -:1002300000D400640080008D0000000000C414326F -:1002400000C6184300C4082F0095400500C40C30B8 -:1002500000D4401E0080000000EE001E009583F5D3 -:1002600000C4103100D4403300D5206500D4A01C58 -:1002700000D4E01C00D5201C00E4015E00D4001E68 -:10028000008000000006200100CA1800000A2001BA -:1002900000D6007600C408360098800700C61045D6 -:1002A0000095011000D4001F00D46062008000009F -:1002B00000D4206200CC383500CC1433008401BB5C -:1002C00000D4007200D5401E0080000000EE001E29 -:1002D00000E2001A008401BB00E2001A00CC104BBF -:1002E00000CC0447002C9401007D098B0098400548 -:1002F000007D15CB00D4001A008001B800D4006D39 -:100300000034440100CC0C480098403A00CC2C4A00 -:100310000095800400CC0449008001B800D4001A84 -:1003200000D4C01A00282801008400F000CC10037B -:100330000098801B0004380C008400F000CC1003EF -:100340000098801700043808008400F000CC1003E7 -:100350000098801300043804008400F000CC1003DF -:100360000098801400CC104C009A800900CC144DE9 -:10037000009840DC00D4006D00CC184800D5001A6D -:1003800000D5401A008000C900D5801A0096C0D55B -:1003900000D4006D008001B800D4006E009AC00344 -:1003A00000D4006D00D4006E0080000000EC007FDF -:1003B000009AC0CC00D4006D008001B800D4006E5B -:1003C00000CC140300CC180300CC1C03007D910367 -:1003D000007DD583007D190C0035CC1F0035701FC2 -:1003E000007CF0CB007CD08B00880000007E8E8BE0 -:1003F0000095C00400D4006E008001B800D4001A3B -:1004000000D4C01A00CC080300CC0C0300CC1003AD -:1004100000CC140300CC180300CC1C0300CC240334 -:1004200000CC28030035C41F0036B01F007C704B81 -:100430000034F01F007C704B0035701F007C704B47 -:10044000007D8881007DCCC1007E5101007E9541F8 -:10045000007C9082007CD4C2007C848B009AC00314 -:10046000007C8C8B002C88010098809E00D4006D4D -:100470000098409C00D4006E00CC084C00CC0C4D81 -:1004800000CC104800D4801A00D4C01A00800101AA -:1004900000D5001A00CC083200D40032009482D972 -:1004A00000CA0C0000D4401E0080000000D4001ED2 -:1004B00000E4011E00D4001E00CA080000CA0C009F -:1004C00000CA100000D4401E00CA140000D4801ED0 -:1004D00000D4C01E00D5001E00D5401E00D54034FB -:1004E0000080000000EE001E0028040400E2001A54 -:1004F00000E2001A00D4401A00CA380000CC0803F9 -:1005000000CC0C0300CC0C0300CC0C03009882BD83 -:1005100000000000008401BB00D7A06F0080000035 -:1005200000EE001F00CA040000C2FF0000CC083427 -:1005300000C13FFF007C74CB007CC90B007D010F24 -:10054000009902B0007C738B008401BB00D7A06FC0 -:100550000080000000EE001F00CA080000281900FB -:10056000007D898B009580140028140400CA0C00BB -:1005700000CA100000CA1C0000CA240000E2001FCC -:1005800000D4C01A00D5001A00D5401A00CC1803B8 -:1005900000CC2C0300CC2C0300CC2C03007DA58BBD -:1005A000007D9C4700984297000000000080016198 -:1005B00000D4C01A00D4401E00D4801E0080000069 -:1005C00000EE001E00E4011E00D4001E00D4401EF8 -:1005D00000EE001E00CA040000A00000007E828B16 -:1005E00000E4013E00D4001E00D4401E00EE001EB8 -:1005F00000CA040000A00000007E828B00CA080030 -:1006000000248C06000CCC060098C00600CC104ECE -:100610000099000400D4007300E4011E00D4001E01 -:1006200000D4401E00D4801E0080000000EE001E9A -:1006300000CA080000CA0C000034D01800251001C0 -:100640000095002100C17FFF00CA100000CA1400FD -:1006500000CA180000D4801D00D4C01D007DB18BDD -:1006600000C1420200C2C00100D5801D0034DC0E72 -:10067000007D5D4C007F734C00D7401E00D5001EEE -:1006800000D5401E00C1420000C2C00000099C010C -:100690000031DC10007F5F4C007F734C00042802A7 -:1006A000007D838000D5A86F00D5806600D7401EEE -:1006B00000EC005E00C8240200C82402008001B8DB -:1006C00000D6007600D4401E00D4801E00D4C01E88 -:1006D0000080000000EE001E0080000000EE001F01 -:1006E00000D4001F0080000000D4001F00D4001FB1 -:1006F0000088000000D4001F00000000000000007F -:1007000000000000000000000000000000000000E9 -:1007100000000000000000000000000000000000D9 -:1007200000000000000000000000000000000000C9 -:1007300000000000000000000000000000000000B9 -:1007400000000000000000000000000000000000A9 -:100750000000000000000000000000000000000099 -:100760000000000000000000000000000000000089 -:100770000000000000000000000000000000000079 -:100780000000000000000000000000000000000069 -:100790000000000000000000000000000000000059 -:1007A0000000000000000000000000000000000049 -:1007B0000000000000000000000000000000000039 -:1007C0000000000000000000000000000000000029 -:1007D0000000000000000000000000000000000019 -:1007E0000000000000000000000000000000000009 -:1007F00000000000000000000000000000000000F9 -:1008000000010171000201780003008F0004007FE5 -:10081000000500030006003F000700320008012C1D -:1008200000090046000A0036001001B6001700A2B9 -:100830000022013A00230149002000B400240125D0 -:100840000027004D0028006A002A0060002B00529B -:10085000002F0065003200870034017F003C015604 -:10086000003F00720041018C0044012E00550173CD -:100870000056017A0060000B00610034006200380D -:1008800000630038006400380065003800660038F6 -:10089000006700380068003A00690041006A0048BB -:1008A000006B0048006C0048006D0048006E004876 -:1008B000006F00480000000600000006000000066F -:1008C0000000000600000006000000060000000610 -:1008D0000000000600000006000000060000000600 -:1008E00000000006000000060000000600000006F0 -:1008F00000000006000000060000000600000006E0 -:00000001FF diff --git a/firmware/radeon/RV620_me.bin.ihex b/firmware/radeon/RV620_me.bin.ihex deleted file mode 100644 index ba19ed892920..000000000000 --- a/firmware/radeon/RV620_me.bin.ihex +++ /dev/null @@ -1,1345 +0,0 @@ -:1000000000000000C020040000000000000000000C -:1000100000A0000A000000000000FFFF00284621A9 -:100020000000000000000000D900480000000000AF -:1000300000000000C02004000000000000000000DC -:1000400000A0000A000000000000000000E0000026 -:100050000000000000010000C02946200000000050 -:1000600000000000D900480000000000000000006F -:10007000C0200400000000000000000000A0000AF2 -:10008000000000008100000000204411000000007A -:1000900000000001002048110000000000042004BE -:1000A000006044110000068D0000000000600000A8 -:1000B000000006310000000000600000000006455E -:1000C00000000000C02008000000000000000F0039 -:1000D000002816220000000000000008002116255C -:1000E000000000000000001800203625000000007D -:1000F0008D000000002044110000000000000004FA -:10010000002F022500000000000000000CE00000AD -:1001100000000018004120000040481100000019B4 -:100120000042200000204811000000008E00000066 -:1001300000204411000000000000002800204A2D8B -:1001400000000000900000000020441100000000AA -:100150000000000000204805000000000000000C26 -:1001600000211622000000000000000300281625D0 -:10017000000000000000001900211A220000000009 -:100180000000000400281A26000000000000000003 -:10019000002914C5000000000000001900203625C9 -:1001A0000000000000000000003A140200000000FF -:1001B00000000016002116250000000000000003CA -:1001C00000281625000000000000001700200E2D5A -:1001D00000000000FFFFFFFC00280E2300000000CD -:1001E00000000000002914A3000000000000001718 -:1001F00000203625000000000000800000280E22AC -:10020000000000000000000700220E230000000094 -:10021000000000000029386E0000000020000000EF -:1002200000280E22000000000000000600210E231E -:1002300000000000000000000029386E00000000EF -:100240000000000000220222000000000000000068 -:1002500014E0000000000038000000002EE0000064 -:1002600000000035000000002CE000000000003716 -:100270000000000000400E2D0000003900000008C2 -:1002800000200E2D00000000000000090040122D8B -:10029000000000460000000100400E2D0000003963 -:1002A00000000000C0200C0000000000003FFFFC28 -:1002B0000028122300000000000000020022122487 -:1002C000000000000000001F00211E2300000000AD -:1002D0000000000014E000000000003E00000008E4 -:1002E00000401C11000000410000000D00201E2DE8 -:1002F000000000000000000F00281E270000000082 -:100300000000000300221E27000000007FC0000044 -:1003100000281A23000000000000001400211A2603 -:10032000000000000000000100331A260000000059 -:100330000000000800221A26000000000000000053 -:1003400000290CC700000000000000270020362410 -:100350000000000000007F000028122100000000C3 -:1003600000001400002F0224000000000000000024 -:100370000CE000000000004B0000000100290E23EB -:10038000000000000000000E0020362300000000E6 -:100390000000E0000020441100000000FFF8000011 -:1003A00000294A230000000000000000003A2C024F -:1003B000000000000000000200220E2B00000000E0 -:1003C000FC00000000280E23000000000000000FC9 -:1003D000002036230000000000001FFF00294A23F0 -:1003E000000000000000002700204A2D000000004F -:1003F000000000000020481100000000000000295B -:1004000000200E2D00000000060A020000294A23E9 -:100410000000000000000000002048110000000063 -:100420000000000000204811000000000000000152 -:1004300000210222000000000000000014E0000083 -:1004400000000061000000002EE000000000005FDE -:10045000000000002CE000000000005E0000000032 -:1004600000400E2D000000620000000100400E2D33 -:10047000000000620000000A00200E2D00000000B5 -:100480000000000B0040122D0000006A0000000078 -:10049000C0200C0000000000003FFFFC00281223D9 -:1004A00000000000000000020022122400000000F2 -:1004B0007FC0000000281623000000000000001488 -:1004C0000021162500000000000000010033162561 -:1004D000000000008000000000280E230000000043 -:1004E0000000000000290CA3000000003FFFFC00FA -:1004F00000290E23000000000000001F00211E2321 -:10050000000000000000000014E000000000006D8A -:100510000000010000401C11000000700000000DF0 -:1005200000201E2D00000000000000F000281E2703 -:10053000000000000000000400221E270000000050 -:100540008100000000204411000000000000000DA8 -:100550000020481100000000FFFFF0FF00281A30C3 -:10056000000000000000A02800204411000000004E -:1005700000000000002948E6000000000000A0186C -:1005800000204411000000003FFFFFFF00284A2325 -:10059000000000000000A010002044110000000036 -:1005A00000000000002048040000000000000030AF -:1005B0000020162D00000000000000020029162572 -:1005C0000000000000000030002036250000000080 -:1005D000000000250020162D000000000000000093 -:1005E000002F00A300000000000000000CC000006D -:1005F00000000083000000260020162D00000000EF -:1006000000000000002F00A4000000000000000017 -:100610000CC000000000008400000000004000004A -:100620000000008A000000250020362300000000A2 -:100630000000002600203624000000000000001703 -:1006400000201E2D000000000000000200210227F3 -:10065000000000000000000014E000000000008A1C -:1006600000000000006000000000066800000000BC -:10067000006000000000065C0000000200210E2265 -:10068000000000000000000014C000000000008D09 -:1006900000000012C040362000000093000000005F -:1006A0002EE0000000000091000000002CE000009F -:1006B000000000900000000200400E2D000000929B -:1006C0000000000300400E2D000000920000000C0E -:1006D00000200E2D00000000000000120020362334 -:1006E000000000000000000300210E2200000000B6 -:1006F0000000000014C00000000000980000A00CE2 -:10070000002044110000000000000000C02048004C -:100710000000000000000000C0404800000000A0F1 -:100720000000A00C002044110000000000000000A8 -:100730000020481100000000000000002EE0000032 -:100740000000009E000000002CE000000000009D62 -:100750000000000200400E2D0000009F000000037A -:1007600000400E2D0000009F0000000C00200E2D08 -:10077000000000000000000000204803000000000E -:1007800000000000003A0C0200000000003F0000E2 -:1007900000280E23000000000000001000210E239E -:1007A00000000000000000110020362300000000BF -:1007B0000000001E0021022B0000000000000000CD -:1007C00014C00000000000A700000016C020362062 -:1007D000000000000000001F0021022B00000000AC -:1007E0000000000014C00000000000AA0000001576 -:1007F000C0203620000000000000000800210E2B61 -:10080000000000000000007F00280E230000000010 -:1008100000000000002F0223000000000000000084 -:100820000CE00000000000E10000000027000000D4 -:10083000000000000000000000600000000002A3B3 -:1008400000000001002F0223000000000000000053 -:100850000AE00000000000B300000000006000009B -:100860000000013A81000000002044110000000057 -:100870000000000600204811000000000000000CED -:1008800000221E300000000099800000002044116A -:1008900000000000000000040020122D00000000F5 -:1008A00000000008002212240000000000000010D8 -:1008B00000201811000000000000000000291CE4C6 -:1008C0000000000000000000006048070000012F49 -:1008D0009B00000000204411000000000000000008 -:1008E00000204802000000009C000000002044118D -:1008F00000000000000000000033146F0000000042 -:100900000000000100333E23000000000000000052 -:10091000D9004800000000000000000000203C0555 -:1009200000000000810000000020441100000000D1 -:100930000000000E00204811000000000000000030 -:1009400000201010000000000000E007002044110B -:10095000000000000000000F0021022B000000003A -:100960000000000014C00000000000CB00F8FF08E9 -:1009700000204811000000009800000000404811CD -:10098000000000DC000000F000280E220000000043 -:10099000000000A0002F0223000000000000000063 -:1009A0000CC00000000000DA0000001100200E2D35 -:1009B0000000000000000001002F022300000000E2 -:1009C000000000000CE00000000000D50000000264 -:1009D000002F022300000000000000000CE00000D7 -:1009E000000000D400003F0000400C11000000D6C1 -:1009F00000001F0000400C11000000D600000F0096 -:100A000000200C11000000000038000900294A23D2 -:100A1000000000003F00000000280E2B0000000036 -:100A20000000000200220E2300000000000000076A -:100A300000494A23000000DC00380F09002048115B -:100A400000000000680000070020481100000000BE -:100A50000000000800214A270000000000000000FC -:100A60000020481100000000060A020000294A2464 -:100A700000000000000000000020481100000000FD -:100A80000000000000204811000000000000A20249 -:100A9000002044110000000000FF000000280E228A -:100AA000000000000000008000294A230000000030 -:100AB0000000002700200E2D00000000000000268E -:100AC0000020122D0000000000000000002F008315 -:100AD00000000000000000000CE00000000000EA40 -:100AE000000000000060000000000662000000003E -:100AF00000400000000000EB00000000006000006B -:100B000000000665000000070020222D0000000004 -:100B10000000000500220E2200000000001000006E -:100B200000280E23000000000000000000292068BB -:100B30000000000000000000003A0C02000000006D -:100B4000000000EF00280E2300000000000000005D -:100B500000292068000000000000001700200E2D72 -:100B6000000000000000000300210223000000003C -:100B70000000000014E00000000000F80000000B7E -:100B800000210228000000000000000014C0000046 -:100B9000000000F8000004000029222800000000E6 -:100BA0000000001400203628000000000000001C97 -:100BB00000210E22000000000000000014C0000010 -:100BC000000000FD0000A30C002044110000000004 -:100BD0000000000000204811000000000000001E7E -:100BE00000210E22000000000000000014C00000E0 -:100BF0000000010B0000A30F0020441100000000C2 -:100C00000000001100200E2D000000000000000177 -:100C1000002F022300000000000000000CC00000B4 -:100C200000000104FFFFFFFF004048110000010B1E -:100C300000000002002F022300000000000000005E -:100C40000CC00000000001070000FFFF0040481139 -:100C50000000010B00000004002F02230000000030 -:100C6000000000000CC000000000010A000000FFAE -:100C7000004048110000010B000000010020481155 -:100C8000000000000002C400002044110000000029 -:100C90000000001F00210E220000000000000000E4 -:100CA00014C00000000001120000001040210E20BE -:100CB00000000000000000130020362300000000A8 -:100CC0000000001840224A20000000000000001030 -:100CD000C0424A20000001140000000000200C1156 -:100CE0000000000000000013002036230000000078 -:100CF000000000000020481100000000000000007B -:100D000000204811000000000000000A002010111F -:100D10000000000000000000002F0224000000007E -:100D2000000000000CE000000000011B00000000BB -:100D300000204811000000000000000100531224B0 -:100D400000000117FFBFFFFF00283A2E000000003F -:100D50000000001B00210222000000000000000033 -:100D600014C000000000012E81000000002044118A -:100D7000000000000000000D0020481100000000ED -:100D80000000001800220E3000000000FC000000EF -:100D900000280E2300000000810000000020441104 -:100DA000000000000000000E0020481100000000BC -:100DB0000000000000201010000000000000E00E05 -:100DC000002044110000000007F8FF08002048112F -:100DD000000000000000000000294A23000000007D -:100DE0000000001C00201E2D000000000000000874 -:100DF00000214A27000000000000000000204811E8 -:100E000000000000060A020000294A240000000039 -:100E10000000000000204811000000000000000059 -:100E200000204811000000000000000000800000C9 -:100E300000000000810000000020441100000000BC -:100E40000000000100204811000000000000217C8B -:100E50000020441100000000008000000020481124 -:100E60000000000000000000002048060000000014 -:100E70000000000800214A270000000000000000D8 -:100E800017000000000000000004217F00604411F2 -:100E90000000068D0000001F00210230000000004D -:100EA0000000000014C000000000068C00000004D8 -:100EB00000404C1100000135810000000020441169 -:100EC00000000000000000010020481100000000A8 -:100ED000000021F800204411000000000000001C68 -:100EE0000020481100000000000421F900604411B6 -:100EF0000000068D000000110021023000000000FB -:100F00000000000014E000000000013C00000000B0 -:100F100000800000000000000000000000600000F1 -:100F20000000000B00000000006004110000031529 -:100F3000000000000020041100000000000000007C -:100F400000600811000001B2000000000060000015 -:100F5000000001600000FFFF40280E20000000009C -:100F600000000010C0211220000000000000FFFF60 -:100F7000402806200000000000000010C0210A20C8 -:100F800000000000000000000034146100000000B8 -:100F90000000000000741882000002BB0001A1FDE7 -:100FA00000604411000002E000003FFF002F022F0C -:100FB00000000000000000000CC00000000001471D -:100FC00000000000C040040000000001000000001C -:100FD000006000000000000B000000000060041131 -:100FE00000000315000000000020041100000000B4 -:100FF0000000000000600811000001B200003FFF87 -:10100000002F022F00000000000000000CE0000094 -:10101000000000000000000000600000000001600F -:101020000000001040210E20000000000000FFFF23 -:10103000C0281220000000000000001040211620EF -:10104000000000000000FFFFC0681A20000002BB83 -:101050000001A1FD00604411000002E000003FFF1C -:10106000002F022F00000000000000000CC0000054 -:101070000000015800000000C04004000000000112 -:101080000000225C0020441100000000000000016C -:1010900000300A2F000000000000000100210A2299 -:1010A000000000000000000300384A220000000099 -:1010B0000000225600204411000000000000001A29 -:1010C00000204811000000000000A1FC0020441195 -:1010D0000000000000000001008048110000000036 -:1010E00000000000006000000000000B0000000095 -:1010F000006000000000018F0000000000600000A0 -:10110000000001A000003FFF002F022F00000000A0 -:10111000000000000CE000000000000000000000E3 -:1011200000202C0800000000000000000020241116 -:101130000000000000000000002028110000000056 -:10114000000022560020441100000000000000169C -:1011500000204811000000000000225C0020441123 -:101160000000000000000003002048110000000003 -:1011700093800000002044110000000000000002E5 -:1011800000221E290000000000000000007048EB53 -:101190000000019C0000000000600000000002BB95 -:1011A00000000001403306200000000000000000A5 -:1011B000C03024090000000000003FFF002F022F74 -:1011C00000000000000000000CE000000000000033 -:1011D0000000000000600000000002A3000000000A -:1011E000002F022100000000000000000AE00000C3 -:1011F0000000018100000000006000000000013AD2 -:101200000000000000400000000001869500000082 -:10121000002044110000000000000000002F022107 -:1012200000000000000000000CE00000000001864B -:1012300000000000C0204800000000000000000185 -:10124000005306210000018292000000002044119A -:101250000000000000000000C0604800000001978E -:101260000001A1FD00204411000000000000001159 -:101270000020062D00000000000000000078042A75 -:10128000000002FB00000000002028090000000010 -:1012900000003FFF002F022F0000000000000000B0 -:1012A0000CC000000000017400000000C0400400F9 -:1012B000000000010000021000600411000003158E -:1012C00000003FFF002F022F000000000000000080 -:1012D0000CE000000000019400000015C020362042 -:1012E0000000000000000016C020362000000000B2 -:1012F0003F800000002004110000000046000000B4 -:1013000000600811000001B2000000000080000031 -:10131000000000000000A1FC0020441100000000BB -:1013200000003FFF002F022F00000000000000001F -:101330000CC000000000019B00000001008048116B -:1013400000000000000000210080481100000000A3 -:101350000000FFFF40280E200000000000000010E9 -:10136000C0211220000000000000FFFF40281620CE -:101370000000000000000010C0811A2000000000E2 -:101380008100000000204411000000000000000661 -:1013900000204811000000000000000800221E305C -:1013A000000000000000002900201A2D00000000AD -:1013B0000000E0000020441100000000FFFBFF09D6 -:1013C00000204811000000000000000F0020222D26 -:1013D0000000000000001FFF00294A280000000054 -:1013E000000000060020222D000000000000000088 -:1013F000002920E80000000000000000002048084C -:101400000000000000000000002048110000000063 -:10141000060A020000294A26000000000000000021 -:1014200000204811000000000000000000204811CA -:101430000000000000000100002018110000000062 -:101440000000000800621E280000012F00000008B4 -:1014500000822228000000000002C0000020441189 -:10146000000000000000001500600E2D000001BD0E -:101470000000001600600E2D000001BD0000C00835 -:1014800000204411000000000000001700200E2D75 -:10149000000000000000000014C00000000001B9BE -:1014A0000000000000200411000000000000000007 -:1014B0000020480100000000390000000020481111 -:1014C00000000000000000000020481100000000A3 -:1014D000000000000080480200000000000000182A -:1014E00000202E2D0000000000000000003B0D63D6 -:1014F000000000000000000800224A230000000055 -:101500000000001000224A23000000000000001824 -:1015100000224A2300000000000000000080480371 -:101520000000000000000000006000000000000B50 -:10153000000010000060041100000315000000000E -:1015400000200411000000000000000000600811ED -:10155000000001B2000000070021062F000000007B -:101560000000001300200A2D000000000000000110 -:1015700000202C11000000000000FFFF4028222066 -:10158000000000000000000F0026222800000000DC -:101590000000001040212620000000000000000F85 -:1015A000002626290000000000000000002028027C -:1015B000000000000000225600204411000000003E -:1015C0000000001B00204811000000000000000087 -:1015D000002F022100000000000000000CE00000CD -:1015E000000001E00000225C002044110000000027 -:1015F0000000008100204811000000000000A1FC54 -:1016000000204411000000000000000100204811EB -:10161000000000000000008000201C1100000000FD -:1016200000000000002F0227000000000000000062 -:101630000CE00000000001DC000000000060000081 -:10164000000001E90000000100531E27000001D83E -:101650000000000100202C11000000000000001F0D -:1016600000280A22000000000000001F00282A2A8B -:10167000000000000000000100530621000001D11D -:101680000000225C00204411000000000000000265 -:1016900000304A2F000000000000A1FC002044118F -:1016A00000000000000000010020481100000000C0 -:1016B0000000000100301E2F0000000000000000AC -:1016C000002F022700000000000000000CE00000D6 -:1016D000000000000000000000600000000001E9C0 -:1016E0000000000100531E27000001E50000FFFF7D -:1016F00040280E20000000000000000F00260E23EE -:101700000000000000000010C021122000000000B6 -:101710000000000F0026122400000000000000005E -:1017200000201411000000000000000000601811EB -:10173000000002BB0001A1FD0020441100000000D8 -:1017400000000000002F022B00000000000000003D -:101750000CE00000000001F8000000100022162834 -:1017600000000000FFFF0000002816250000000018 -:101770000000FFFF00281A29000000000000000000 -:10178000002948C500000000000000000020480AB1 -:10179000000000000000000000202C1100000000EC -:1017A000000000100022162300000000FFFF0000D0 -:1017B00000281625000000000000FFFF00281A2462 -:1017C0000000000000000000002948C500000000E3 -:1017D0000000000000731503000002050000000077 -:1017E0000020180500000000000000000073152410 -:1017F0000000020500000000002D14C500000000DC -:1018000000000000003008A20000000000000000FE -:101810000020480200000000000000000020280214 -:101820000000000000000000002020030000000075 -:101830000000000000802404000000000000000FF1 -:1018400000210225000000000000000014C000007C -:101850000000068C00000000002B140500000000B2 -:1018600000000001009016250000000000000000AC -:10187000006000000000000B000000000060041188 -:10188000000003150000000000200411000000000B -:101890000000000000600811000001B200002256A4 -:1018A00000204411000000000000001A00294A2214 -:1018B0000000000000000000C02000000000000048 -:1018C00000003FFF002F022F00000000000000007A -:1018D0000CE000000000000000000000C020040038 -:1018E000000000000000225C002044110000000005 -:1018F0000000000300384A21000000000000A1FCA5 -:1019000000204411000000000000000100204811E8 -:10191000000000000000FFFF40281220000000002F -:1019200000000010C0211A20000000000000FFFF8E -:1019300040280E200000000000000010C0211620EA -:10194000000000000000000000741465000002BBED -:101950000001A1FD00604411000002E00000000150 -:10196000003306210000000000000000002F0221CB -:1019700000000000000000000CC000000000021980 -:1019800000003FFF002F022F0000000000000000B9 -:101990000CC000000000021200000000C040040063 -:1019A000000000010000000000600000000006458B -:1019B000000000000040040F0000021300000000BF -:1019C0000060000000000631000000000060000020 -:1019D000000006450000021000600411000003151D -:1019E0000000000000600000000001A000000000F6 -:1019F000006000000000019C00000000006000008A -:101A0000000002BB0000000000600000000002A314 -:101A1000938000000020441100000000000000003E -:101A2000002048080000000000000000002F022FE6 -:101A300000000000000000000AE000000000023288 -:101A400000000000006000000000013A00000000FB -:101A50000040000000000236950000000020441104 -:101A60000000000000000000002F022F0000000016 -:101A7000000000000CE00000000002360000000042 -:101A8000C0404800000002339200000000204411D2 -:101A90000000000000000000C0204800000000001E -:101AA0000000225600204411000000000000001633 -:101AB00000204811000000000000225C00204411BA -:101AC000000000000000000300204811000000009A -:101AD0000000A1FC002044110000000000000001F3 -:101AE00000204811000000000001A1FD0020441169 -:101AF000000000000000000000600411000002FB74 -:101B000000000000C04004000000000100000000D0 -:101B100000600000000006310000A00C002044110D -:101B20000000000000000000C0204800000000008D -:101B300000000000C040480000000000000000005D -:101B4000006000000000000B0000001840210A2087 -:101B50000000000000000003002F0222000000002F -:101B6000000000000AE000000000024C0000001429 -:101B70000020222D00000000000801010029222879 -:101B800000000000000000140020362800000000C3 -:101B90000000A30C00204411000000000000000021 -:101BA000C02048000000000000000000C0204800E5 -:101BB0000000000000000000C0404800000002518A -:101BC00000000000006000000000000B000000109A -:101BD00000600411000003153F8000000020041184 -:101BE000000000000000000000600811000001B2C9 -:101BF0000000225C002044110000000000000003EF -:101C000000204811000000000000000000600000FB -:101C10000000027C0000001700201E2D00000000C4 -:101C20000000000100211E2700000000000000004D -:101C300014E000000000026A0000001200201E2DC7 -:101C4000000000000000FFFF00281E270000000029 -:101C50000000000000341C2700000000000000000D -:101C600012C000000000025F0000000000201C11F4 -:101C70000000000000000000002F00E50000000050 -:101C80000000000008C00000000002620000000028 -:101C900000201407000000000000001200201E2D8C -:101CA000000000000000001000211E2700000000BE -:101CB0000000000000341C4700000000000000008D -:101CC00012C00000000002670000000000201C118C -:101CD0000000000000000000002F00E600000000EF -:101CE0000000000008C000000000026A00000000C0 -:101CF0000020180700000000000000000060000045 -:101D0000000002C100002256002044110000000023 -:101D1000000000000034202300000000000000004C -:101D200012C00000000002720000000000342044D5 -:101D3000000000000000000012C00000000002715E -:101D40000000001600404811000002760000001854 -:101D500000404811000002760000000000342044DA -:101D6000000000000000000012C00000000002752A -:101D70000000001700404811000002760000001922 -:101D800000204811000000000000A1FC00204411C8 -:101D900000000000000000010020481100000000C9 -:101DA0000001A1FD00604411000002E900003FFFB6 -:101DB000002F022F00000000000000000CC00000F7 -:101DC0000000025600000000C040040000000001B6 -:101DD0000000001040210620000000000000FFFF6E -:101DE000C0280A20000000000000001040210E2042 -:101DF000000000000000FFFFC028122000000000CB -:101E00000000001040211620000000000000FFFF2D -:101E1000C0881A200000000081000000002044114A -:101E20000000000000000001002048110000000038 -:101E300000042004006044110000068D0000000032 -:101E4000006000000000063100000000C0600000DB -:101E5000000002A30000000500200A2D0000000081 -:101E60000000000800220A22000000000000002BF1 -:101E700000201A2D000000000000001C00201E2D74 -:101E8000000000000000700000281E270000000075 -:101E90000000000000311CE6000000000000002AE5 -:101EA00000201A2D000000000000000C00221A265D -:101EB0000000000000000000002F00E6000000000D -:101EC0000000000006E00000000002920000000098 -:101ED00000201C11000000000000000000200C1178 -:101EE000000000000000002B00203623000000004E -:101EF0000000001000201811000000000000000089 -:101F000000691CE20000012F9380000000204411B2 -:101F10000000000000000000002048070000000052 -:101F200095000000002044110000000000000000A7 -:101F3000002F022F00000000000000000CE0000055 -:101F40000000029D0000000100333E2F0000000051 -:101F500000000000D90048000000000092000000CE -:101F6000002044110000000000000000C0204800D4 -:101F7000000000000000001C0040362700000000A8 -:101F80000000000CC0220A20000000000000002910 -:101F9000002036220000000000000028C04036204B -:101FA000000000000000A2A4002044110000000076 -:101FB000000000090020481100000000A1000000FE -:101FC00000204411000000000000000100804811C2 -:101FD000000000000000002100201E2D0000000075 -:101FE00000000000002C1CE30000000000000021A5 -:101FF00000203627000000000000002200201E2DD7 -:102000000000000000000000002C1CE400000000A4 -:1020100000000022002036270000000000000023FE -:1020200000201E2D0000000000000000003120A351 -:102030000000000000000000002D1D07000000004F -:1020400000000023002036270000000000000024CC -:1020500000201E2D0000000000000000003120C400 -:102060000000000000000000002D1D07000000001F -:10207000000000240080362700000000000000213E -:10208000002036230000000000000022002036243B -:10209000000000000000000000311CA30000000050 -:1020A0000000002300203627000000000000000090 -:1020B00000311CC40000000000000024008036270E -:1020C000000000000000001A002036270000000079 -:1020D0000000001B00203628000000000000001750 -:1020E00000201E2D00000000000000020021022739 -:1020F000000000000000000014C00000000002DC2E -:102100000000000000400000000002D90000001A9A -:1021100000203627000000000000001B00203628A9 -:10212000000000000000001700201E2D000000002D -:102130000000000200210227000000000000000053 -:1021400014E00000000002D9000000030021022773 -:10215000000000000000000014E00000000002DCAD -:102160000000002300201E2D0000000000000000E1 -:10217000002E00E1000000000000000002C000008E -:10218000000002DC0000002100201E2D00000000E5 -:1021900000000000003120A100000000000000004D -:1021A000002E00E8000000000000000006C0000053 -:1021B000000002DC0000002400201E2D00000000B2 -:1021C00000000000002E00E20000000000000000FF -:1021D00002C00000000002DC0000002200201E2DD2 -:1021E0000000000000000000003120C200000000DC -:1021F00000000000002E00E80000000000000000C9 -:1022000006C00000000002DC0000000000600000CA -:10221000000006680000000000600000000002B539 -:102220000000000000400000000002DE000000008E -:1022300000600000000002B5000000000060000027 -:102240000000065F0000000000400000000002DE09 -:102250000000000000600000000002A70000000075 -:1022600000400000000002DE0000001A00201E2DC9 -:10227000000000000000001B0080222D0000000074 -:102280000000001000221E230000000000000000DB -:1022900000294887000000000000000000311CA356 -:1022A000000000000000001000221E2700000000B7 -:1022B0000000000000294887000000000000001016 -:1022C00000221E230000000000000000003120C496 -:1022D000000000000000FFFF00282228000000008E -:1022E0000000000000894907000000000000001005 -:1022F00000221E2300000000000000000029488783 -:10230000000000000000001000221E21000000005C -:102310000000000000294847000000000000000005 -:1023200000311CA3000000000000001000221E2746 -:1023300000000000000000000029488700000000A5 -:102340000000000000311CA100000000000000108F -:1023500000221E270000000000000000002948475E -:10236000000000000000001000221E2300000000FA -:1023700000000000003120C4000000000000FFFF4A -:102380000028222800000000000000000029490762 -:10239000000000000000001000221E2100000000CC -:1023A00000000000003120C2000000000000FFFF1C -:1023B00000282228000000000000000000894907D2 -:1023C000000000000000001000221E23000000009A -:1023D0000000000000294887000000000000000104 -:1023E00000220A210000000000000000003308A2C3 -:1023F000000000000000001000221E22000000006B -:102400000000001000212222000000000000000057 -:1024100000294907000000000000000000311CA353 -:10242000000000000000001000221E270000000035 -:1024300000000000002948870000000000000001A3 -:1024400000220A210000000000000000003008A265 -:10245000000000000000001000221E22000000000A -:1024600000000010002122220000000000000000F7 -:1024700000294907000000000000001000221E2370 -:102480000000000000000000003120C40000000037 -:102490000000FFFF002822280000000000000000CC -:1024A000002949070000000000000000003808C5AE -:1024B00000000000000000000030084100000000A3 -:1024C0000000000100220A220000000000000000BD -:1024D000003308A2000000000000001000221E22AD -:1024E0000000000000000010002122220000000077 -:1024F00000000000008949070000000000000017EC -:102500000020222D000000000000000014C0000088 -:1025100000000318FFFFFFEF002806210000000065 -:10252000000000140020222D000000000000F8E050 -:1025300000204411000000000000000000294901B3 -:1025400000000000000000000089490100000000B8 -:102550000000000000204811000000000000000002 -:102560000020481100000000060A02000080481107 -:102570000000000000000000C0200000000000007B -:1025800097000000C020441100000000000000007F -:10259000C0204811000000008A0000000020441103 -:1025A00000000000000000000020481100000000B2 -:1025B0000000225C00204411000000000000000028 -:1025C000C0204800000000000000A1FC00204411D1 -:1025D0000000000000000000C020480000000000D3 -:1025E00000000000C0200400000000000000000007 -:1025F00000A0000A00000000970000000020441125 -:102600000000000000000000002048110000000051 -:102610008A000000002044110000000000000000BB -:1026200000204811000000000000225C002044113E -:102630000000000000000000C02048000000000072 -:102640000000A1FC00204411000000000000000078 -:10265000C02048000000000000000000C02004006E -:10266000000000000000000000A0000A00000000C0 -:10267000970000000020441100000000000000004E -:1026800000204811000000008A00000000204411D2 -:1026900000000000000000000020481100000000C1 -:1026A0000000225C00204411000000000000000037 -:1026B000C0204800000000000000A1FC00204411E0 -:1026C0000000000000000000C020480000000000E2 -:1026D0000001A1FD002044110000000000000000E6 -:1026E000D90048000000000000000000C0200400E5 -:1026F000000000000000000000A0000A0000000030 -:1027000000002257002044110000000000000003D8 -:10271000C0484A20000000000000225D0020441153 -:102720000000000000000000C04048000000000061 -:1027300000000000006000000000064500000000EE -:10274000C0200800000000000000225C00204411AE -:10275000000000000000000300384A2200000000D2 -:102760000000A1FC00204411000000000000000057 -:10277000C0204800000000000001A1FD002044111D -:102780000000000000000000002F022200000000F6 -:10279000000000000CE0000000000000000000004D -:1027A00040204800000000000000000140304A20A6 -:1027B0000000000000000002C0304A2000000000BD -:1027C0000000000100530A220000034B0000003FFC -:1027D000C0280A20000000008100000000204411F1 -:1027E000000000000000000100204811000000006F -:1027F000000021F800204411000000000000001833 -:102800000020481100000000000421F9006044117C -:102810000000068D000000110021023000000000C1 -:102820000000000014E00000000003540000001449 -:10283000002F022200000000000000000CC0000079 -:10284000000003640000201000204411000000007C -:102850000000800000204811000000000001A2A438 -:102860000020441100000000000000000060480249 -:102870000000036E00002100002044110000000051 -:1028800000000000C0204800000000000000000020 -:10289000C02048000000000000000000C0204800E8 -:1028A0000000000000000000C040480000000000E0 -:1028B00000000004002F02220000000000000000C1 -:1028C0000CC000000000036A00002010002044112A -:1028D00000000000000080000020481100000000FF -:1028E0000001A2A40020441100000000000000002C -:1028F000004048020000035F00000028002F022271 -:1029000000000000000000000CC00000000005C036 -:102910000001A2A4002044110000000000000000FB -:10292000004048020000035F0000002C0020362613 -:102930000000000000000049002018110000000005 -:102940000000003F002048110000000000000001CE -:1029500000331A260000000000000000002F0226AD -:1029600000000000000000000CC000000000037028 -:102970000000002C00801A2D000000000000003F25 -:10298000C0280A200000000000000015002F0222CD -:1029900000000000000000000CE0000000000386C2 -:1029A00000000006002F02220000000000000000CE -:1029B0000CE00000000003B100000016002F02220E -:1029C00000000000000000000CE00000000003B563 -:1029D00000000020002F0222000000000000000084 -:1029E0000CE000000000039C0000000F002F0222FA -:1029F00000000000000000000CE00000000003A840 -:102A000000000010002F0222000000000000000063 -:102A10000CE00000000003A80000001E002F0222AE -:102A200000000000000000000CE000000000039027 -:102A30000000A2A4002044110000000000000000DB -:102A400000404802000000000800000000290A229F -:102A5000000000000000000340210E2000000000E4 -:102A60000000000CC021122000000000000800003F -:102A7000002812240000000000000014C0221620CC -:102A80000000000000000000002914A40000000065 -:102A90000000A2A40020441100000000000000007B -:102AA000002948A2000000000000A1FE00204411FF -:102AB000000000000000000000404803000000008B -:102AC000810000000020441100000000000000010F -:102AD0000020481100000000000021F800204411EF -:102AE0000000000000000016002048110000000057 -:102AF000000421F9006044110000068D000000155B -:102B000000210230000000000000000014E000007E -:102B1000000003920000210E00204411000000007C -:102B200000000000C020480000000000000000007D -:102B3000C0204800000000000000A2A400204411B2 -:102B400000000000000000000040480200000000FB -:102B5000810000000020441100000000000000017E -:102B60000020481100000000000021F8002044115E -:102B700000000000000000170020481100000000C5 -:102B8000000421F9006044110000068D00000003DC -:102B900000210230000000000000000014E00000EE -:102BA0000000039E000021080020441100000000E6 -:102BB00000000000C02048000000000000000000ED -:102BC000C0204800000000000000A2A40020441122 -:102BD000000000000000000000404802000000006B -:102BE0000000A2A40020441100000000000000002A -:102BF0000020480200000000800000000020441176 -:102C0000000000000000000000204811000000004B -:102C100081000000002044110000000000000010AE -:102C200000204811000000000000000000200010FB -:102C3000000000000000000014C00000000003AE0F -:102C40000000000000400000000000000000201014 -:102C50000020441100000000000080000020481106 -:102C6000000000000001A2A40020441100000000A8 -:102C70000000000600404811000000000000201085 -:102C800000204411000000000000800000204811D6 -:102C9000000000000001A2A4002044110000000078 -:102CA00000000016006048110000036E00000000E4 -:102CB000004000000000000000000000C0200800EC -:102CC0000000000000000000C0200C000000000018 -:102CD0000000001D00210223000000000000000091 -:102CE00014E00000000003CE810000000020441129 -:102CF000000000000000000100204811000000005A -:102D0000000021F80020441100000000000000181D -:102D10000020481100000000000421F90060441167 -:102D20000000068D000000110021023000000000AC -:102D30000000000014E00000000003C000002100BB -:102D400000204411000000000000000000204802A4 -:102D50000000000000000000002048030000000008 -:102D6000BABECAFE0020481100000000CAFEBABE6A -:102D70000020481100000000000020100020441135 -:102D8000000000000000800000204811000000004A -:102D90000000A2A400204411000000000000000474 -:102DA0000040481100000000000021700020441184 -:102DB00000000000000000000020480200000000A9 -:102DC0000000000000204803000000008100000017 -:102DD00000204411000000000000000A00204811FB -:102DE00000000000000000000020001000000000B3 -:102DF0000000000014C00000000003D38C0000009D -:102E00000020441100000000CAFEBABE0040481174 -:102E100000000000810000000020441100000000BC -:102E200000000001002048110000000000003FFFEA -:102E300040280A20000000008000000040280E20EA -:102E40000000000040000000C02812200000000028 -:102E500000040000006946220000068D000000000A -:102E6000002014100000000000000000002F0223CA -:102E700000000000000000000CC00000000003E1A2 -:102E800000000000C0401800000003E400003FFF05 -:102E9000C0281A2000000000000400000069462637 -:102EA0000000068D00000000002018100000000047 -:102EB00000000000002F02240000000000000000BD -:102EC0000CC00000000003E700000000C0401C0030 -:102ED000000003EA00003FFFC0281E2000000000A1 -:102EE00000040000006946270000068D0000000075 -:102EF00000201C1000000000000000000020440220 -:102F00000000000000000000002820C500000000B4 -:102F100000000000004948E800000000A580000013 -:102F200000200811000000000000200000200C110B -:102F30000000000083000000006044110000041243 -:102F4000000000000020440200000000000000001B -:102F5000C0204800000000000000000040204800A1 -:102F6000000000000000001FC0210220000000003F -:102F70000000000014C00000000003F70000201053 -:102F800000204411000000000000800000204811D3 -:102F9000000000000000FFFFC0481220000003FFF7 -:102FA000A780000000200811000000000000A00021 -:102FB00000200C110000000083000000006044119C -:102FC0000000041200000000002044020000000085 -:102FD00000000000C02048000000000000000000C9 -:102FE000C0204800000000000000FFFFC0281220A1 -:102FF00000000000830000000020441100000000D9 -:103000000000000000304883000000008400000041 -:10301000002044110000000000000000C020480013 -:1030200000000000000000001D0000000000000083 -:103030008300000000604411000004120000000042 -:10304000C040040000000001A98000000020081119 -:10305000000000000000C00000400C11000003FA56 -:10306000AB80000000200811000000000000F8E024 -:1030700000400C11000003FAAD8000000020081190 -:10308000000000000000F88000400C11000003FA6E -:10309000B380000000200811000000000000F3FCD5 -:1030A00000400C11000003FAAF800000002008115E -:1030B000000000000000E00000400C11000003FAD6 -:1030C000B180000000200811000000000000F000A6 -:1030D00000400C11000003FA83000000002044119E -:1030E00000000000000021480020481100000000FE -:1030F00084000000002044110000000000000000D7 -:10310000C020480000000000000000001D0000007A -:10311000000000000000000000800000000000002F -:1031200001182000C0304620000000000000000010 -:10313000D90048000000000000000000C02004008A -:10314000000000000000000000A0000A00000000D5 -:103150000218A000C030462000000000000000005F -:10316000D90048000000000000000000C02004005A -:10317000000000000000000000A0000A00000000A5 -:103180000318C000C030462000000000000000000E -:10319000D90048000000000000000000C02004002A -:1031A000000000000000000000A0000A0000000075 -:1031B0000418F8E0C03046200000000000000000C5 -:1031C000D90048000000000000000000C0200400FA -:1031D000000000000000000000A0000A0000000045 -:1031E0000518F880C03046200000000000000000F4 -:1031F000D90048000000000000000000C0200400CA -:10320000000000000000000000A0000A0000000014 -:103210000618E000C030462000000000000000005A -:10322000D90048000000000000000000C020040099 -:10323000000000000000000000A0000A00000000E4 -:103240000718F000C0304620000000000000000019 -:10325000D90048000000000000000000C020040069 -:10326000000000000000000000A0000A00000000B4 -:103270000818F3FCC03046200000000000000000E9 -:10328000D90048000000000000000000C020040039 -:10329000000000000000000000A0000A0000000084 -:1032A0000000003000200A2D000000000000000097 -:1032B000C0290C4000000000000000300020362330 -:1032C0000000000000000000C0200400000000001A -:1032D0000000000000A0000A0000000086000000BE -:1032E00000204411000000000000000000404801E0 -:1032F0000000000085000000C02044110000000014 -:103300000000000000404801000000000000217C97 -:10331000002044110000000000000018402102209D -:10332000000000000000000014C000000000044580 -:1033300000800000C0494A20000004460000000050 -:10334000C02048000000000000000000C02048002D -:103350000000000000000000C02048000000000045 -:103360008100000000204411000000000000000166 -:10337000002048110000000000000000C0200800EC -:103380000000000000000000170000000000000026 -:103390000004217F006044110000068D0000001F22 -:1033A00000210230000000000000000014C00000F6 -:1033B000000000000000000000404C020000044B30 -:1033C00000000000C0200C00000000000000000011 -:1033D000C02010000000000000000000C020140009 -:1033E0000000000000000000C020180000000000E5 -:1033F00000000000C0201C000000000000007F0052 -:1034000000280A210000000000004500002F0222D1 -:1034100000000000000000000CE000000000045963 -:1034200000000000C020200000000000000000009C -:1034300017000000000000000000001000280A2310 -:103440000000000000000010002F02220000000019 -:10345000000000000CE0000000000461810000009A -:10346000002044110000000000000001002048116D -:103470000000000000040000006946240000068DE2 -:103480000000000000400000000004668100000011 -:10349000002044110000000000000000002048113E -:1034A000000000000000216D002044110000000019 -:1034B00000000000002048040000000000000000A0 -:1034C000006048050000069200000000002824F07B -:1034D000000000000000000700280A230000000090 -:1034E00000000001002F0222000000000000000088 -:1034F0000AE000000000046D00000000002F00C979 -:10350000000000000000000004E00000000004864D -:1035100000000000004000000000049300000002D2 -:10352000002F022200000000000000000AE000005E -:103530000000047200000000002F00C9000000001D -:103540000000000002E0000000000486000000000F -:10355000004000000000049300000003002F02223E -:1035600000000000000000000AE0000000000477F6 -:1035700000000000002F00C9000000000000000053 -:103580000CE0000000000486000000000040000085 -:103590000000049300000004002F0222000000003D -:1035A000000000000AE000000000047C00000000B1 -:1035B000002F00C900000000000000000AE0000029 -:1035C000000004860000000000400000000004939A -:1035D00000000005002F0222000000000000000093 -:1035E0000AE000000000048100000000002F00C974 -:1035F000000000000000000006E00000000004865B -:1036000000000000004000000000049300000006DD -:10361000002F022200000000000000000AE000006D -:103620000000048600000000002F00C90000000018 -:103630000000000008E00000000004860000000018 -:10364000004000000000049300007F0000280A21D1 -:103650000000000000004500002F022200000000D2 -:10366000000000000AE00000000000000000000868 -:1036700000210A23000000000000000014C0000028 -:1036800000000490000021690020441100000000A7 -:1036900000000000C0204800000000000000000002 -:1036A000C02048000000000000000000C0204800CA -:1036B00000000000CAFEBABE004048110000000031 -:1036C00000000000C02044000000000000000000D6 -:1036D000C02000000000000000000000C0404800C2 -:1036E0000000000000007F0000280A210000000008 -:1036F00000004500002F0222000000000000000032 -:103700000AE000000000049900000000C020000052 -:103710000000000000000000C020000000000000C9 -:1037200000000000C0400000000000000000000099 -:1037300000404C080000045900000000C0200800B0 -:10374000000000000000001040210E2000000000DA -:1037500000000011402112200000000000000012B3 -:1037600040211620000000000000216900204411C3 -:1037700000000000000000000020480200000000DF -:1037800000000000002102250000000000000000F1 -:1037900014E00000000004A300040000C0494A2017 -:1037A000000004A4FFFBFFFFC0284A200000000027 -:1037B00000000000002102230000000000000000C3 -:1037C00014E00000000004B000000000C020480029 -:1037D0000000000000000000C020480000000000C1 -:1037E0000000000000210224000000000000000092 -:1037F00014C00000000000008100000000204411FF -:10380000000000000000000C002048110000000033 -:103810000000000000200010000000000000000078 -:1038200014C00000000004ACA000000000204411FF -:1038300000000000CAFEBABE0040481100000000AF -:10384000810000000020441100000000000000047E -:1038500000204811000000000000216B00204411EE -:103860000000000000000000C02048100000000020 -:10387000810000000020441100000000000000054D -:1038800000204811000000000000216C00204411BD -:103890000000000000000000C020481000000000F0 -:1038A00000000000002F02240000000000000000C3 -:1038B0000CE00000000000000000000000400000DC -:1038C000000004AA00000000C0210A20000000003F -:1038D0000000000014C00000000004C381000000CC -:1038E00000204411000000000000000000204811EA -:1038F000000000000000216D0020441100000000C5 -:1039000000000000C020480000000000000000008F -:10391000C060480000000692000000000040000067 -:10392000000004C7810000000020441100000000D6 -:103930000000000100204811000000000004000009 -:10394000C02946200000000000000000C060000008 -:103950000000068D0000000100210222000000008E -:103960000000000014C00000000004CE0000216927 -:10397000002044110000000000000000C0204800AA -:103980000000000000000000C0204800000000000F -:10399000000000000020481000000000CAFEBABE6F -:1039A000004048110000000000000000C02044005A -:1039B0000000000000000000C040481000000000AF -:1039C0008100000000204411000000000000000100 -:1039D0000020481100000000000021F800204411E0 -:1039E000000000000000000E002048110000000050 -:1039F000000421F9006044110000068D0000000061 -:103A000000210230000000000000000014C000008F -:103A1000000004D0000021800020441100000000BC -:103A200000000000C020480000000000000000006E -:103A3000C02000000000000000000000C02048007E -:103A40000000000000000000C02000000000000096 -:103A500000000000C040480000000000000000031B -:103A600000333E2F00000000000000010021022171 -:103A7000000000000000000014E00000000005004D -:103A80000000002C00200A2D0000000000040000AF -:103A900018E00C11000004EF0000000100333E2F7D -:103AA0000000000000002169002044110000000017 -:103AB000000000000020480200000000000000009C -:103AC00000204803000000000000000800300A2227 -:103AD0000000000000000000C020480000000000BE -:103AE00000000000C0204800000000000000216924 -:103AF00000204411000000000000000000204802E7 -:103B0000000000000000000000204803000000004A -:103B10000000000800300A22000000000000000041 -:103B2000C02048000000000000000000D8C048008D -:103B3000000004E30000216900204411000000009F -:103B4000000000000020480200000000000000000B -:103B500000204803000000000000000800300A2296 -:103B60000000000000000000C0204800000000002D -:103B700000000000C0204800000000000000002DF0 -:103B80000020122D000000000000000000290C831E -:103B90000000000000002169002044110000000026 -:103BA00000000000002048020000000000000000AB -:103BB00000204803000000000000000800300A2236 -:103BC0000000000000000000C020480000000000CD -:103BD00000000000C02048000000000000000011AC -:103BE00000210224000000000000000014C00000BA -:103BF000000000000000000000400000000004AAD7 -:103C00000000002CC0203620000000000000002D25 -:103C1000C0403620000000000000000F00210221FB -:103C2000000000000000000014C0000000000505B6 -:103C300000000000006000000000000B0000000019 -:103C4000D90000000000000000000000C040040097 -:103C500000000001B5000000002044110000000039 -:103C6000000020000020481100000000B600000005 -:103C700000204411000000000000A00000204811B6 -:103C800000000000B7000000002044110000000008 -:103C90000000C0000020481100000000B800000033 -:103CA00000204411000000000000F8E0002048114E -:103CB00000000000B90000000020441100000000D6 -:103CC0000000F8800020481100000000BA00000049 -:103CD00000204411000000000000E0000020481116 -:103CE00000000000BB0000000020441100000000A4 -:103CF0000000F0000020481100000000BC0000009F -:103D000000204411000000000000F3FC00204811D6 -:103D100000000000810000000020441100000000AD -:103D2000000000020020481100000000000000FF19 -:103D300000280E300000000000000000002F0223C9 -:103D400000000000000000000CC000000000051989 -:103D500000000000C020080000000000000000007B -:103D600014C000000000052E0000000000200C110F -:103D7000000000000000001C0020362300000000AE -:103D80000000002B00203623000000000000002966 -:103D90000020362300000000000000280020362309 -:103DA0000000000000000017002036230000000083 -:103DB000000000250020362300000000000000263F -:103DC00000203623000000000000001500203623EC -:103DD0000000000000000016002036230000000054 -:103DE000FFFFE00000200C11000000000000002197 -:103DF00000203623000000000000002200203623AF -:103E00000000000000001FFF00200C110000000057 -:103E100000000023002036230000000000000024E2 -:103E20000020362300000000F1FFFFFF00283A2E9B -:103E3000000000000000001AC0220E200000000058 -:103E4000000000000029386E000000008100000022 -:103E5000002044110000000000000006002048116E -:103E6000000000000000002A402036200000000072 -:103E70008700000000204411000000000000000046 -:103E8000C0204800000000000000A1F40020441100 -:103E900000000000000000000020481000000000AA -:103EA0000000000000200C110000000000000030A5 -:103EB00000203623000000009D0000000020441177 -:103EC000000000000000001F40214A200000000008 -:103ED00096000000002044110000000000000000D7 -:103EE000C02048000000000000000000C0200C00BE -:103EF0000000000000000000C020100000000000D2 -:103F00000000001F00211624000000000000000037 -:103F100014C00000000000000000001D0020362337 -:103F2000000000000000000300281E230000000025 -:103F3000000000080022222300000000FFFFF00024 -:103F4000002822280000000000000000002920E8CE -:103F5000000000000000001F0020362800000000C4 -:103F60000000001800211E230000000000000020B7 -:103F70000020362700000000000000020022162466 -:103F80000000000000000000003014A80000000045 -:103F90000000001E00203625000000000000000385 -:103FA00000211A24000000001000000000281A263A -:103FB00000000000EFFFFFFF00283A2E0000000085 -:103FC00000000000004938CE0000067B0000000120 -:103FD00040280A20000000000000000640280E20B3 -:103FE0000000000000000300C028122000000000B4 -:103FF0000000000800211224000000000000000062 -:10400000C02016200000000000000000C0201A2080 -:10401000000000000000000000210222000000005B -:104020000000000014C000000000056681000000D0 -:104030000020441100000000000000010020481191 -:10404000000000000000225800300A240000000098 -:1040500000040000006946220000068D000021696E -:10406000002044110000000000000000002048056E -:10407000000000000002000000294A2600000000A5 -:10408000000000000020481000000000CAFEBABE78 -:10409000002048110000000000000002002F022351 -:1040A00000000000000000000CC000000000056ED1 -:1040B00000000000C0201C100000000000000000F4 -:1040C000C04000000000057C00000002002F022319 -:1040D00000000000000000000CC000000000056EA1 -:1040E00081000000002044110000000000000001D9 -:1040F00000204811000000000000225800300A246F -:104100000000000000040000006946220000068D47 -:1041100000000000C0201C10000000000000000093 -:10412000C04000000000057C00000000002F0223BA -:1041300000000000000000000CC00000000005723C -:1041400000000000C0201C00000000000000000073 -:10415000C04000000000057C00000004002F022386 -:1041600000000000000000000CC000000000057A04 -:104170008100000000204411000000000000000049 -:1041800000204811000000000000216D00204411B3 -:104190000000000000000000C020480000000000F7 -:1041A00000000000C060480000000692000000000F -:1041B00000401C100000057C00000000C020000032 -:1041C0000000000000000000C040000000000000EF -:1041D000000000000EE000000000057E000000006E -:1041E00000600000000005C900000000002F02244C -:1041F00000000000000000000CC000000000058F5F -:104200000000A2B7002044110000000000000000E0 -:104210000020480700000000810000000020441139 -:104220000000000000000001002048110000000014 -:104230000004A2B6006044110000068D0000001AC0 -:10424000002122300000000000000006002226307D -:104250000000000000042004006044110000068DEE -:104260000000A2C400204411000000000000000073 -:10427000003048E9000000000000000000E00000FD -:104280000000058D0000A2D10020441100000000B4 -:104290000000000000404808000000000000A2D11B -:1042A00000204411000000000000000100504A28D6 -:1042B0000000000000000001002F022400000000A8 -:1042C000000000000CC00000000005A00000A2BB20 -:1042D00000204411000000000000000000204807FA -:1042E00000000000810000000020441100000000D8 -:1042F0000000000100204811000000000004A2BAE4 -:10430000006044110000068D0000001A00212230D8 -:10431000000000000000000600222630000000001F -:1043200000042004006044110000068D0000A2C5B6 -:10433000002044110000000000000000003048E9A7 -:10434000000000000000000000E000000000059EEA -:104350000000A2D200204411000000000000000074 -:1043600000404808000000000000A2D200204411D4 -:10437000000000000000000100504A28000000007A -:1043800000000002002F02240000000000000000D6 -:104390000CC00000000005B10000A2BF00204411C5 -:1043A000000000000000000000204807000000009E -:1043B0008100000000204411000000000000000106 -:1043C00000204811000000000004A2BE006044115B -:1043D0000000068D0000001A0021223000000000BD -:1043E0000000000600222630000000000004200427 -:1043F000006044110000068D0000A2C60020441198 -:104400000000000000000000003048E9000000004B -:104410000000000000E00000000005AF0000A2D393 -:104420000020441100000000000000000040480887 -:10443000000000000000A2D3002044110000000092 -:104440000000000100504A28000000000000A2C344 -:104450000020441100000000000000000020480778 -:104460000000000081000000002044110000000056 -:104470000000000100204811000000000004A2C25A -:10448000006044110000068D0000001A0021223057 -:10449000000000000000000600222630000000009E -:1044A00000042004006044110000068D0000A2C733 -:1044B000002044110000000000000000003048E926 -:1044C000000000000000000000E00000000005BE49 -:1044D0000000A2D4002044110000000000000000F1 -:1044E00000404808000000000000A2D40020441151 -:1044F000000000000000000100504A2800000000F9 -:1045000085000000002044110000000000000000B1 -:1045100000204801000000000000304A0020441143 -:104520000000000001000000002048110000000011 -:104530000000000000400000000005C4A4000000CE -:10454000C02044110000000000000000C0404800EE -:104550000000000000000000C0600000000005C96D -:1045600000000000C0400400000000010000002C1A -:1045700000203621000000008100000000204411CE -:1045800000000000000000060020481100000000AC -:1045900000000000002F02300000000000000000BA -:1045A0000CC00000000005D0000000000020041135 -:1045B000000000000000003000403621000005E34C -:1045C000000000300020062D0000000000007E00EA -:1045D000002806210000000000000000002F02213A -:1045E00000000000000000000CE00000000005E3F7 -:1045F00081000000002044110000000000000001C4 -:1046000000204811000000000004A0920060441146 -:104610000000068D00000031002036300000000050 -:104620000004A093006044110000068D00000032D9 -:1046300000203630000000000004A2B600604411E3 -:104640000000068D0000003300203630000000001E -:104650000004A2BA006044110000068D000000347E -:1046600000203630000000000004A2BE00604411AB -:104670000000068D000000350020363000000000EC -:104680000004A2C2006044110000068D0000003644 -:1046900000203630000000000004200400604411B7 -:1046A0000000068D0001A2A40020441100000000BB -:1046B0000000003F00204811000000000000003F03 -:1046C00000204811000000000000003F00204811B9 -:1046D000000000000000003F002048110000000022 -:1046E0000000000500204811000000000000A1F4B7 -:1046F00000204411000000000000000000204811CC -:1047000000000000880000000020441100000000AC -:10471000000000010020481100000000810000009E -:104720000020441100000000000000060020481195 -:104730000000000000000001002F02300000000017 -:10474000000000000CE000000000062C000000301B -:104750000020062D0000000000000000002F0221B4 -:1047600000000000000000000CE000000000062C2B -:104770008100000000204411000000000000000142 -:10478000002048110000000000007E0000280621E3 -:104790000000000000000000002F022100000000C7 -:1047A000000000000CE00000000006050000A092E0 -:1047B00000204411000000000000003100204A2DBC -:1047C000000000000000A093002044110000000041 -:1047D0000000003200204A2D000000000000A2B6B8 -:1047E00000204411000000000000003300204A2D8A -:1047F000000000000000A2BA0020441100000000E8 -:104800000000003400204A2D000000000000A2BE7D -:1048100000204411000000000000003500204A2D57 -:10482000000000000000A2C20020441100000000AF -:104830000000003600204A2D00000000000000307B -:104840000020062D00000000000001FF00280621C6 -:104850000000000000000000002F02210000000006 -:10486000000000000CE000000000062B000000002B -:1048700000210221000000000000000014C0000020 -:104880000000060E0004A003006044110000068D25 -:104890000000A00300204411000000000000000000 -:1048A0000020481000000000000000010021062147 -:1048B000000000000000000014C00000000006130B -:1048C0000004A010006044110000068D0000A0103C -:1048D00000204411000000000000000000204810EB -:1048E000000000000000000100210621000000007F -:1048F00000000000002F0221000000000000000066 -:104900000CE000000000062B0004A0110060441120 -:104910000000068D0000A0110020441100000000DE -:104920000000000000204810000000000004A01259 -:10493000006044110000068D0000A0120020441108 -:1049400000000000000000000020481000000000EF -:104950000004A013006044110000068D0000A013A5 -:10496000002044110000000000000000002048105A -:10497000000000000004A014006044110000068D37 -:104980000000A014002044110000000000000000FE -:1049900000204810000000000004A0150060441131 -:1049A0000000068D0000A01500204411000000004A -:1049B0000000000000204810000000000004A016C5 -:1049C000006044110000068D0000A0160020441174 -:1049D000000000000000000000204810000000005F -:1049E0000004A017006044110000068D0000A0170D -:1049F00000204411000000000000000000204810CA -:104A00000000000000042004006044110000068D36 -:104A10000000002C0080062D00000000FF000000B8 -:104A20000020441100000000000000000020481198 -:104A300000000000000000010020481100000000FC -:104A4000000000020080481100000000000000008B -:104A50000EE000000000063D000000300020062DA2 -:104A600000000000000000020028062100000000F5 -:104A700000000000002F02210000000000000000E4 -:104A80000CE000000000063B810000000020441103 -:104A9000000000000000000100204811000000009C -:104AA00000042004006044110000068D0000100086 -:104AB00000200811000000000000002B002036221A -:104AC000000000000000000000600000000006413F -:104AD0000000000000600000000005C99800000010 -:104AE0000020441100000000000000000080481178 -:104AF0000000000000000000C0600000000006414F -:104B000000000000C0400400000000010000A2A45A -:104B10000020441100000000000000220020481185 -:104B20000000000089000000002044110000000087 -:104B300000000001004048110000062D9700000011 -:104B40000020441100000000000000000020481177 -:104B5000000000008A000000002044110000000056 -:104B600000000000004048110000062D0000000079 -:104B7000006000000000065C0000201000204411CE -:104B8000000000000000800000204811000000002C -:104B90000001A2A4C0204411000000000000001683 -:104BA000006048110000036E000020100020441136 -:104BB000000000000001000000204811000000007B -:104BC00081000000002044110000000000000001EE -:104BD00000204811000000000000217C002044114A -:104BE00000000000098000000020481100000000C3 -:104BF000FFFFFFFF00204811000000000000000040 -:104C00000020481100000000000000001700000014 -:104C1000000000000004217F006044110000068DA8 -:104C20000000001F00210230000000000000000012 -:104C300014C00000000000000000000400404C11FF -:104C400000000656000000000040000000000000C8 -:104C50000000001700201E2D0000000000000004CE -:104C600000291E27000000000000001700803627E2 -:104C7000000000000000001700201E2D00000000B2 -:104C8000FFFFFFFB00281E270000000000000017A8 -:104C900000803627000000000000001700201E2DB5 -:104CA000000000000000000800291E27000000008E -:104CB00000000017008036270000000000000017E9 -:104CC00000201E2D00000000FFFFFFF700281E2718 -:104CD00000000000000000170080362700000000E0 -:104CE000000020100020441100000000000080009F -:104CF00000204811000000000001A2A4002044117F -:104D00000000000000000016006048110000036E63 -:104D100000002010002044110000000000010000ED -:104D200000204811000000000000217C00204411F8 -:104D30000000000001800000002048110000000079 -:104D4000FFFFFFFF002048110000000000000000EE -:104D500000204811000000000000000017000000C3 -:104D6000000000008100000000204411000000004D -:104D70000000000100204811000000000004217F15 -:104D8000006044110000068D0000001F0021023069 -:104D9000000000000000000014C000000000068CAD -:104DA0000000001000404C110000067200000000DE -:104DB000C0200400000000000000000038C0000017 -:104DC000000000000000001D00200A2D000000006F -:104DD0000000001E00200E2D000000000000001F3B -:104DE0000020122D00000000000000200020162DE1 -:104DF00000000000000021690020441100000000B4 -:104E00000000000000204804000000000000000036 -:104E100000204805000000000000000000204801BC -:104E200000000000CAFEBABE0020481100000000C9 -:104E30000000000400301224000000000000000008 -:104E4000002F006400000000000000000CC0000003 -:104E50000000068B0000000300281A22000000005A -:104E6000000000080022122200000000FFFFF000F6 -:104E7000002812240000000000000000002910C4D7 -:104E8000000000000000001F004036240000000069 -:104E90000000000000800000000000000000000092 -:104EA0001AC000000000068D9F0000000020441181 -:104EB00000000000CAFEBABE002048110000000039 -:104EC000000000001AE00000000006900000000052 -:104ED0000080000000000000000000001AC0000078 -:104EE000000006929E000000002044110000000017 -:104EF000CAFEBABE002048110000000000000000F9 -:104F00001AE000000000069500000000008000008C -:104F10000000000000000000006000000000000B26 -:104F200000001000006004110000031500000000E4 -:104F300000200411000000000000000000600811C3 -:104F4000000001B20000225C0020441100000000BB -:104F5000000000030020481100000000000022565D -:104F600000204411000000000000001B0020481138 -:104F7000000000000000A1FC00204411000000001F -:104F80000000000100204811000000000001A1FD08 -:104F9000C0204411000000000000002100201E2D50 -:104FA000000000000000001000221E27000000008A -:104FB000000000240020222D000000000000FFFF60 -:104FC00000282228000000000000000000294907F6 -:104FD0000000000000000000002048110000000058 -:104FE000000000220020222D000000000000FFFF32 -:104FF00000282228000000000000000000294907C6 -:105000000000000000000000002048110000000027 -:105010000000002300201E2D0000000000000010F2 -:1050200000221E27000000000000000000294907A0 -:1050300000000000000000000040481100000000D7 -:105040000000000000000000000000000000000060 -:105050000000000000000000000000000000000050 -:105060000000000000000000000000000000000040 -:105070000000000000000000000000000000000030 -:105080000000000000000000000000000000000020 -:105090000000000000000000000000000000000010 -:1050A0000000000000000000000000000000000000 -:1050B00000000000000000000000000000000000F0 -:1050C00000000000000000000000000000000000E0 -:1050D00000000000000000000000000000000000D0 -:1050E00000000000000000000000000000000000C0 -:1050F00000000000000000000000000000000000B0 -:10510000000000000000000000000000000000009F -:10511000000000000000000000000000000000008F -:10512000000000000000000000000000000000007F -:10513000000000000000000000000000000000006F -:10514000000000000000000000000000000000005F -:10515000000000000000000000000000000000004F -:10516000000000000000000000000000000000003F -:10517000000000000000000000000000000000002F -:10518000000000000000000000000000000000001F -:10519000000000000000000000000000000000000F -:1051A00000000000000000000000000000000000FF -:1051B00000000000000000000000000000000000EF -:1051C00000000000000000000000000000000000DF -:1051D00000000000000000000000000000000000CF -:1051E00000000000000000000000000000000000BF -:1051F00000000000000000000000000000000000AF -:10520000000000000000000000000000000000009E -:10521000000000000000000000000000000000008E -:10522000000000000000000000000000000000007E -:10523000000000000000000000000000000000006E -:10524000000000000000000000000000000000005E -:10525000000000000000000000000000000000004E -:10526000000000000000000000000000000000003E -:10527000000000000000000000000000000000002E -:10528000000000000000000000000000000000001E -:10529000000000000000000000000000000000000E -:1052A00000000000000000000000000000000000FE -:1052B0000142050205C002500000000001C3016860 -:1052C000043F05C000000000022502090250015100 -:1052D000000000000223024502A00241000000007D -:1052E00003D705C005C005C0000000000649064AF6 -:1052F000031F05C00000000005C005C503200340D2 -:1053000000000000032A0282034203340000000070 -:1053100005C005C005C005C00000000005C005515E -:1053200005C005C00000000003BA05C004BB03446B -:1053300000000000049A0450043D05C00000000075 -:1053400004D005C0044104DD00000000045005073E -:10535000035103750000000005C005C005C005C06D -:105360000000000005C005C005C005C00000000029 -:1053700005C005C0063F05C70000000005C005C008 -:10538000000705C00000000005C005C005C005C03D -:105390000000000005C005C005C005C000000000F9 -:1053A00003F803ED0408040600000000040E040ADC -:1053B000040C041000000000041C04180424042041 -:1053C00000000000042C0428043404300000000015 -:1053D00005C005C0043805C00000000005C005C0B8 -:1053E00005C005C00000000005C005C005C005C01F -:1053F0000000000000020679069700060000000089 -:00000001FF diff --git a/firmware/radeon/RV620_pfp.bin.ihex b/firmware/radeon/RV620_pfp.bin.ihex deleted file mode 100644 index f55292c97b79..000000000000 --- a/firmware/radeon/RV620_pfp.bin.ihex +++ /dev/null @@ -1,145 +0,0 @@ -:1000000000CA040000A00000007E828B007C038BED -:10001000008001B8007C038B00D4401E00EE001E5F -:1000200000CA040000A00000007E828B00C41838C3 -:1000300000CA240000CA2800009581A800C41C3A08 -:1000400000C3C00000CA080000CA0C00007C744B4A -:1000500000C200050099C00000C41C3A007C744C2A -:1000600000C0FFF000042C0400309002007D250049 -:1000700000351402007D350B00255403007CD5802B -:1000800000259C030095C00400D5001B007EDDC147 -:10009000007D9D8000D6801B00D5801B00D4401EB3 -:1000A00000D5401E00D6401E00D6801E00D4801E03 -:1000B00000D4C01E009783D300D5C01E00CA08001C -:1000C0000080001A00CA0C0000E4011E00D4001ECB -:1000D0000080000C00C4183800E4013E00D4001E6B -:1000E0000080000C00C4183800D4401E00EE001E32 -:1000F00000CA040000A00000007E828B00E4011E04 -:1001000000D4001E00D4401E00EE001E00CA0400F1 -:1001100000A00000007E828B00E4013E00D4001E9F -:1001200000D4401E00EE001E00CA040000A0000023 -:10013000007E828B00CA180000D4401E00D5801EAD -:100140000080005300D4007500D4401E00CA08008F -:1001500000CA0C0000CA100000D4801900D4C018D6 -:1001600000D5001700D4801E00D4C01E00D5001E8C -:1001700000E2001E00CA040000A00000007E828B86 -:1001800000CA080000D4806000D4401E0080000037 -:1001900000D4801E00CA080000D4806100D4401E34 -:1001A0000080000000D4801E00CA080000CA0C00B5 -:1001B00000D4401E00D4801600D4C01600D4801E87 -:1001C000008001B800D4C01E00C6084300CA0C005D -:1001D00000CA10000094800400CA140000E420F358 -:1001E00000D4201300D5606500D4E01C00D5201C8D -:1001F00000D5601C008000000006200100C60843F6 -:1002000000CA0C0000CA1000009483F700CA140052 -:1002100000E420F30080007900D4201300C60843D6 -:1002200000CA0C0000CA1000009883EF00CA140036 -:1002300000D400640080008D0000000000C414326F -:1002400000C6184300C4082F0095400500C40C30B8 -:1002500000D4401E0080000000EE001E009583F5D3 -:1002600000C4103100D4403300D5206500D4A01C58 -:1002700000D4E01C00D5201C00E4015E00D4001E68 -:10028000008000000006200100CA1800000A2001BA -:1002900000D6007600C408360098800700C61045D6 -:1002A0000095011000D4001F00D46062008000009F -:1002B00000D4206200CC383500CC1433008401BB5C -:1002C00000D4007200D5401E0080000000EE001E29 -:1002D00000E2001A008401BB00E2001A00CC104BBF -:1002E00000CC0447002C9401007D098B0098400548 -:1002F000007D15CB00D4001A008001B800D4006D39 -:100300000034440100CC0C480098403A00CC2C4A00 -:100310000095800400CC0449008001B800D4001A84 -:1003200000D4C01A00282801008400F000CC10037B -:100330000098801B0004380C008400F000CC1003EF -:100340000098801700043808008400F000CC1003E7 -:100350000098801300043804008400F000CC1003DF -:100360000098801400CC104C009A800900CC144DE9 -:10037000009840DC00D4006D00CC184800D5001A6D -:1003800000D5401A008000C900D5801A0096C0D55B -:1003900000D4006D008001B800D4006E009AC00344 -:1003A00000D4006D00D4006E0080000000EC007FDF -:1003B000009AC0CC00D4006D008001B800D4006E5B -:1003C00000CC140300CC180300CC1C03007D910367 -:1003D000007DD583007D190C0035CC1F0035701FC2 -:1003E000007CF0CB007CD08B00880000007E8E8BE0 -:1003F0000095C00400D4006E008001B800D4001A3B -:1004000000D4C01A00CC080300CC0C0300CC1003AD -:1004100000CC140300CC180300CC1C0300CC240334 -:1004200000CC28030035C41F0036B01F007C704B81 -:100430000034F01F007C704B0035701F007C704B47 -:10044000007D8881007DCCC1007E5101007E9541F8 -:10045000007C9082007CD4C2007C848B009AC00314 -:10046000007C8C8B002C88010098809E00D4006D4D -:100470000098409C00D4006E00CC084C00CC0C4D81 -:1004800000CC104800D4801A00D4C01A00800101AA -:1004900000D5001A00CC083200D40032009482D972 -:1004A00000CA0C0000D4401E0080000000D4001ED2 -:1004B00000E4011E00D4001E00CA080000CA0C009F -:1004C00000CA100000D4401E00CA140000D4801ED0 -:1004D00000D4C01E00D5001E00D5401E00D54034FB -:1004E0000080000000EE001E0028040400E2001A54 -:1004F00000E2001A00D4401A00CA380000CC0803F9 -:1005000000CC0C0300CC0C0300CC0C03009882BD83 -:1005100000000000008401BB00D7A06F0080000035 -:1005200000EE001F00CA040000C2FF0000CC083427 -:1005300000C13FFF007C74CB007CC90B007D010F24 -:10054000009902B0007C738B008401BB00D7A06FC0 -:100550000080000000EE001F00CA080000281900FB -:10056000007D898B009580140028140400CA0C00BB -:1005700000CA100000CA1C0000CA240000E2001FCC -:1005800000D4C01A00D5001A00D5401A00CC1803B8 -:1005900000CC2C0300CC2C0300CC2C03007DA58BBD -:1005A000007D9C4700984297000000000080016198 -:1005B00000D4C01A00D4401E00D4801E0080000069 -:1005C00000EE001E00E4011E00D4001E00D4401EF8 -:1005D00000EE001E00CA040000A00000007E828B16 -:1005E00000E4013E00D4001E00D4401E00EE001EB8 -:1005F00000CA040000A00000007E828B00CA080030 -:1006000000248C06000CCC060098C00600CC104ECE -:100610000099000400D4007300E4011E00D4001E01 -:1006200000D4401E00D4801E0080000000EE001E9A -:1006300000CA080000CA0C000034D01800251001C0 -:100640000095002100C17FFF00CA100000CA1400FD -:1006500000CA180000D4801D00D4C01D007DB18BDD -:1006600000C1420200C2C00100D5801D0034DC0E72 -:10067000007D5D4C007F734C00D7401E00D5001EEE -:1006800000D5401E00C1420000C2C00000099C010C -:100690000031DC10007F5F4C007F734C00042802A7 -:1006A000007D838000D5A86F00D5806600D7401EEE -:1006B00000EC005E00C8240200C82402008001B8DB -:1006C00000D6007600D4401E00D4801E00D4C01E88 -:1006D0000080000000EE001E0080000000EE001F01 -:1006E00000D4001F0080000000D4001F00D4001FB1 -:1006F0000088000000D4001F00000000000000007F -:1007000000000000000000000000000000000000E9 -:1007100000000000000000000000000000000000D9 -:1007200000000000000000000000000000000000C9 -:1007300000000000000000000000000000000000B9 -:1007400000000000000000000000000000000000A9 -:100750000000000000000000000000000000000099 -:100760000000000000000000000000000000000089 -:100770000000000000000000000000000000000079 -:100780000000000000000000000000000000000069 -:100790000000000000000000000000000000000059 -:1007A0000000000000000000000000000000000049 -:1007B0000000000000000000000000000000000039 -:1007C0000000000000000000000000000000000029 -:1007D0000000000000000000000000000000000019 -:1007E0000000000000000000000000000000000009 -:1007F00000000000000000000000000000000000F9 -:1008000000010171000201780003008F0004007FE5 -:10081000000500030006003F000700320008012C1D -:1008200000090046000A0036001001B6001700A2B9 -:100830000022013A00230149002000B400240125D0 -:100840000027004D0028006A002A0060002B00529B -:10085000002F0065003200870034017F003C015604 -:10086000003F00720041018C0044012E00550173CD -:100870000056017A0060000B00610034006200380D -:1008800000630038006400380065003800660038F6 -:10089000006700380068003A00690041006A0048BB -:1008A000006B0048006C0048006D0048006E004876 -:1008B000006F00480000000600000006000000066F -:1008C0000000000600000006000000060000000610 -:1008D0000000000600000006000000060000000600 -:1008E00000000006000000060000000600000006F0 -:1008F00000000006000000060000000600000006E0 -:00000001FF diff --git a/firmware/radeon/RV630_me.bin.ihex b/firmware/radeon/RV630_me.bin.ihex deleted file mode 100644 index ba3a7e632d97..000000000000 --- a/firmware/radeon/RV630_me.bin.ihex +++ /dev/null @@ -1,1345 +0,0 @@ -:1000000000000000C020040000000000000000000C -:1000100000A0000A000000000000FFFF00284621A9 -:100020000000000000000000D900480000000000AF -:1000300000000000C02004000000000000000000DC -:1000400000A0000A000000000000000000E0000026 -:100050000000000000010000C02946200000000050 -:1000600000000000D900480000000000000000006F -:10007000C0200400000000000000000000A0000AF2 -:10008000000000008100000000204411000000007A -:1000900000000001002048110000000000042004BE -:1000A000006044110000068A0000000000600000AB -:1000B0000000062E00000000006000000000064264 -:1000C00000000000C02008000000000000000F0039 -:1000D000002816220000000000000008002116255C -:1000E000000000000000001800203625000000007D -:1000F0008D000000002044110000000000000004FA -:10010000002F022500000000000000000CE00000AD -:1001100000000018004120000040481100000019B4 -:100120000042200000204811000000008E00000066 -:1001300000204411000000000000002800204A2D8B -:1001400000000000900000000020441100000000AA -:100150000000000000204805000000000000000C26 -:1001600000211622000000000000000300281625D0 -:10017000000000000000001900211A220000000009 -:100180000000000400281A26000000000000000003 -:10019000002914C5000000000000001900203625C9 -:1001A0000000000000000000003A140200000000FF -:1001B00000000016002116250000000000000003CA -:1001C00000281625000000000000001700200E2D5A -:1001D00000000000FFFFFFFC00280E2300000000CD -:1001E00000000000002914A3000000000000001718 -:1001F00000203625000000000000800000280E22AC -:10020000000000000000000700220E230000000094 -:10021000000000000029386E0000000020000000EF -:1002200000280E22000000000000000600210E231E -:1002300000000000000000000029386E00000000EF -:100240000000000000220222000000000000000068 -:1002500014E0000000000038000000002EE0000064 -:1002600000000035000000002CE000000000003716 -:100270000000000000400E2D0000003900000008C2 -:1002800000200E2D00000000000000090040122D8B -:10029000000000460000000100400E2D0000003963 -:1002A00000000000C0200C0000000000003FFFFC28 -:1002B0000028122300000000000000020022122487 -:1002C000000000000000001F00211E2300000000AD -:1002D0000000000014E000000000003E00000008E4 -:1002E00000401C11000000410000000D00201E2DE8 -:1002F000000000000000000F00281E270000000082 -:100300000000000300221E27000000007FC0000044 -:1003100000281A23000000000000001400211A2603 -:10032000000000000000000100331A260000000059 -:100330000000000800221A26000000000000000053 -:1003400000290CC700000000000000270020362410 -:100350000000000000007F000028122100000000C3 -:1003600000001400002F0224000000000000000024 -:100370000CE000000000004B0000000100290E23EB -:10038000000000000000000E0020362300000000E6 -:100390000000E0000020441100000000FFF8000011 -:1003A00000294A230000000000000000003A2C024F -:1003B000000000000000000200220E2B00000000E0 -:1003C000FC00000000280E23000000000000000FC9 -:1003D000002036230000000000001FFF00294A23F0 -:1003E000000000000000002700204A2D000000004F -:1003F000000000000020481100000000000000295B -:1004000000200E2D00000000060A020000294A23E9 -:100410000000000000000000002048110000000063 -:100420000000000000204811000000000000000152 -:1004300000210222000000000000000014E0000083 -:1004400000000061000000002EE000000000005FDE -:10045000000000002CE000000000005E0000000032 -:1004600000400E2D000000620000000100400E2D33 -:10047000000000620000000A00200E2D00000000B5 -:100480000000000B0040122D0000006A0000000078 -:10049000C0200C0000000000003FFFFC00281223D9 -:1004A00000000000000000020022122400000000F2 -:1004B0007FC0000000281623000000000000001488 -:1004C0000021162500000000000000010033162561 -:1004D000000000008000000000280E230000000043 -:1004E0000000000000290CA3000000003FFFFC00FA -:1004F00000290E23000000000000001F00211E2321 -:10050000000000000000000014E000000000006D8A -:100510000000010000401C11000000700000000DF0 -:1005200000201E2D00000000000000F000281E2703 -:10053000000000000000000400221E270000000050 -:100540008100000000204411000000000000000DA8 -:100550000020481100000000FFFFF0FF00281A30C3 -:10056000000000000000A02800204411000000004E -:1005700000000000002948E6000000000000A0186C -:1005800000204411000000003FFFFFFF00284A2325 -:10059000000000000000A010002044110000000036 -:1005A00000000000002048040000000000000030AF -:1005B0000020162D00000000000000020029162572 -:1005C0000000000000000030002036250000000080 -:1005D000000000250020162D000000000000000093 -:1005E000002F00A300000000000000000CC000006D -:1005F00000000083000000260020162D00000000EF -:1006000000000000002F00A4000000000000000017 -:100610000CC000000000008400000000004000004A -:100620000000008A000000250020362300000000A2 -:100630000000002600203624000000000000001703 -:1006400000201E2D000000000000000200210227F3 -:10065000000000000000000014E000000000008A1C -:1006600000000000006000000000066500000000BF -:1006700000600000000006590000000200210E2268 -:10068000000000000000000014C000000000008D09 -:1006900000000012C040362000000093000000005F -:1006A0002EE0000000000091000000002CE000009F -:1006B000000000900000000200400E2D000000929B -:1006C0000000000300400E2D000000920000000C0E -:1006D00000200E2D00000000000000120020362334 -:1006E000000000000000000300210E2200000000B6 -:1006F0000000000014C00000000000980000A00CE2 -:10070000002044110000000000000000C02048004C -:100710000000000000000000C0404800000000A0F1 -:100720000000A00C002044110000000000000000A8 -:100730000020481100000000000000002EE0000032 -:100740000000009E000000002CE000000000009D62 -:100750000000000200400E2D0000009F000000037A -:1007600000400E2D0000009F0000000C00200E2D08 -:10077000000000000000000000204803000000000E -:1007800000000000003A0C0200000000003F0000E2 -:1007900000280E23000000000000001000210E239E -:1007A00000000000000000110020362300000000BF -:1007B0000000001E0021022B0000000000000000CD -:1007C00014C00000000000A700000016C020362062 -:1007D000000000000000001F0021022B00000000AC -:1007E0000000000014C00000000000AA0000001576 -:1007F000C0203620000000000000000800210E2B61 -:10080000000000000000007F00280E230000000010 -:1008100000000000002F0223000000000000000084 -:100820000CE00000000000E10000000027000000D4 -:10083000000000000000000000600000000002A3B3 -:1008400000000001002F0223000000000000000053 -:100850000AE00000000000B300000000006000009B -:100860000000013A81000000002044110000000057 -:100870000000000600204811000000000000000CED -:1008800000221E300000000099800000002044116A -:1008900000000000000000040020122D00000000F5 -:1008A00000000008002212240000000000000010D8 -:1008B00000201811000000000000000000291CE4C6 -:1008C0000000000000000000006048070000012F49 -:1008D0009B00000000204411000000000000000008 -:1008E00000204802000000009C000000002044118D -:1008F00000000000000000000033146F0000000042 -:100900000000000100333E23000000000000000052 -:10091000D9004800000000000000000000203C0555 -:1009200000000000810000000020441100000000D1 -:100930000000000E00204811000000000000000030 -:1009400000201010000000000000E007002044110B -:10095000000000000000000F0021022B000000003A -:100960000000000014C00000000000CB00F8FF08E9 -:1009700000204811000000009800000000404811CD -:10098000000000DC000000F000280E220000000043 -:10099000000000A0002F0223000000000000000063 -:1009A0000CC00000000000DA0000001100200E2D35 -:1009B0000000000000000001002F022300000000E2 -:1009C000000000000CE00000000000D50000000264 -:1009D000002F022300000000000000000CE00000D7 -:1009E000000000D400003F0000400C11000000D6C1 -:1009F00000001F0000400C11000000D600000F0096 -:100A000000200C11000000000038000900294A23D2 -:100A1000000000003F00000000280E2B0000000036 -:100A20000000000200220E2300000000000000076A -:100A300000494A23000000DC00380F09002048115B -:100A400000000000680000070020481100000000BE -:100A50000000000800214A270000000000000000FC -:100A60000020481100000000060A020000294A2464 -:100A700000000000000000000020481100000000FD -:100A80000000000000204811000000000000A20249 -:100A9000002044110000000000FF000000280E228A -:100AA000000000000000008000294A230000000030 -:100AB0000000002700200E2D00000000000000268E -:100AC0000020122D0000000000000000002F008315 -:100AD00000000000000000000CE00000000000EA40 -:100AE00000000000006000000000065F0000000041 -:100AF00000400000000000EB00000000006000006B -:100B000000000662000000070020222D0000000007 -:100B10000000000500220E2200000000001000006E -:100B200000280E23000000000000000000292068BB -:100B30000000000000000000003A0C02000000006D -:100B4000000000EF00280E2300000000000000005D -:100B500000292068000000000000001700200E2D72 -:100B6000000000000000000300210223000000003C -:100B70000000000014E00000000000F80000000B7E -:100B800000210228000000000000000014C0000046 -:100B9000000000F8000004000029222800000000E6 -:100BA0000000001400203628000000000000001C97 -:100BB00000210E22000000000000000014C0000010 -:100BC000000000FD0000A30C002044110000000004 -:100BD0000000000000204811000000000000001E7E -:100BE00000210E22000000000000000014C00000E0 -:100BF0000000010B0000A30F0020441100000000C2 -:100C00000000001100200E2D000000000000000177 -:100C1000002F022300000000000000000CC00000B4 -:100C200000000104FFFFFFFF004048110000010B1E -:100C300000000002002F022300000000000000005E -:100C40000CC00000000001070000FFFF0040481139 -:100C50000000010B00000004002F02230000000030 -:100C6000000000000CC000000000010A000000FFAE -:100C7000004048110000010B000000010020481155 -:100C8000000000000002C400002044110000000029 -:100C90000000001F00210E220000000000000000E4 -:100CA00014C00000000001120000001040210E20BE -:100CB00000000000000000130020362300000000A8 -:100CC0000000001840224A20000000000000001030 -:100CD000C0424A20000001140000000000200C1156 -:100CE0000000000000000013002036230000000078 -:100CF000000000000020481100000000000000007B -:100D000000204811000000000000000A002010111F -:100D10000000000000000000002F0224000000007E -:100D2000000000000CE000000000011B00000000BB -:100D300000204811000000000000000100531224B0 -:100D400000000117FFBFFFFF00283A2E000000003F -:100D50000000001B00210222000000000000000033 -:100D600014C000000000012E81000000002044118A -:100D7000000000000000000D0020481100000000ED -:100D80000000001800220E3000000000FC000000EF -:100D900000280E2300000000810000000020441104 -:100DA000000000000000000E0020481100000000BC -:100DB0000000000000201010000000000000E00E05 -:100DC000002044110000000007F8FF08002048112F -:100DD000000000000000000000294A23000000007D -:100DE0000000001C00201E2D000000000000000874 -:100DF00000214A27000000000000000000204811E8 -:100E000000000000060A020000294A240000000039 -:100E10000000000000204811000000000000000059 -:100E200000204811000000000000000000800000C9 -:100E300000000000810000000020441100000000BC -:100E40000000000100204811000000000000217C8B -:100E50000020441100000000008000000020481124 -:100E60000000000000000000002048060000000014 -:100E70000000000800214A270000000000000000D8 -:100E800017000000000000000004217F00604411F2 -:100E90000000068A0000001F002102300000000050 -:100EA0000000000014C000000000068900000004DB -:100EB00000404C1100000135810000000020441169 -:100EC00000000000000000010020481100000000A8 -:100ED000000021F800204411000000000000001C68 -:100EE0000020481100000000000421F900604411B6 -:100EF0000000068A000000110021023000000000FE -:100F00000000000014E000000000013C00000000B0 -:100F100000800000000000000000000000600000F1 -:100F20000000000B00000000006004110000031529 -:100F3000000000000020041100000000000000007C -:100F400000600811000001B2000000000060000015 -:100F5000000001600000FFFF40280E20000000009C -:100F600000000010C0211220000000000000FFFF60 -:100F7000402806200000000000000010C0210A20C8 -:100F800000000000000000000034146100000000B8 -:100F90000000000000741882000002BB0001A1FDE7 -:100FA00000604411000002E000003FFF002F022F0C -:100FB00000000000000000000CC00000000001471D -:100FC00000000000C040040000000001000000001C -:100FD000006000000000000B000000000060041131 -:100FE00000000315000000000020041100000000B4 -:100FF0000000000000600811000001B200003FFF87 -:10100000002F022F00000000000000000CE0000094 -:10101000000000000000000000600000000001600F -:101020000000001040210E20000000000000FFFF23 -:10103000C0281220000000000000001040211620EF -:10104000000000000000FFFFC0681A20000002BB83 -:101050000001A1FD00604411000002E000003FFF1C -:10106000002F022F00000000000000000CC0000054 -:101070000000015800000000C04004000000000112 -:101080000000225C0020441100000000000000016C -:1010900000300A2F000000000000000100210A2299 -:1010A000000000000000000300384A220000000099 -:1010B0000000225600204411000000000000001A29 -:1010C00000204811000000000000A1FC0020441195 -:1010D0000000000000000001008048110000000036 -:1010E00000000000006000000000000B0000000095 -:1010F000006000000000018F0000000000600000A0 -:10110000000001A000003FFF002F022F00000000A0 -:10111000000000000CE000000000000000000000E3 -:1011200000202C0800000000000000000020241116 -:101130000000000000000000002028110000000056 -:10114000000022560020441100000000000000169C -:1011500000204811000000000000225C0020441123 -:101160000000000000000003002048110000000003 -:1011700093800000002044110000000000000002E5 -:1011800000221E290000000000000000007048EB53 -:101190000000019C0000000000600000000002BB95 -:1011A00000000001403306200000000000000000A5 -:1011B000C03024090000000000003FFF002F022F74 -:1011C00000000000000000000CE000000000000033 -:1011D0000000000000600000000002A3000000000A -:1011E000002F022100000000000000000AE00000C3 -:1011F0000000018100000000006000000000013AD2 -:101200000000000000400000000001869500000082 -:10121000002044110000000000000000002F022107 -:1012200000000000000000000CE00000000001864B -:1012300000000000C0204800000000000000000185 -:10124000005306210000018292000000002044119A -:101250000000000000000000C0604800000001978E -:101260000001A1FD00204411000000000000001159 -:101270000020062D00000000000000000078042A75 -:10128000000002FB00000000002028090000000010 -:1012900000003FFF002F022F0000000000000000B0 -:1012A0000CC000000000017400000000C0400400F9 -:1012B000000000010000021000600411000003158E -:1012C00000003FFF002F022F000000000000000080 -:1012D0000CE000000000019400000015C020362042 -:1012E0000000000000000016C020362000000000B2 -:1012F0003F800000002004110000000046000000B4 -:1013000000600811000001B2000000000080000031 -:10131000000000000000A1FC0020441100000000BB -:1013200000003FFF002F022F00000000000000001F -:101330000CC000000000019B00000001008048116B -:1013400000000000000000210080481100000000A3 -:101350000000FFFF40280E200000000000000010E9 -:10136000C0211220000000000000FFFF40281620CE -:101370000000000000000010C0811A2000000000E2 -:101380008100000000204411000000000000000661 -:1013900000204811000000000000000800221E305C -:1013A000000000000000002900201A2D00000000AD -:1013B0000000E0000020441100000000FFFBFF09D6 -:1013C00000204811000000000000000F0020222D26 -:1013D0000000000000001FFF00294A280000000054 -:1013E000000000060020222D000000000000000088 -:1013F000002920E80000000000000000002048084C -:101400000000000000000000002048110000000063 -:10141000060A020000294A26000000000000000021 -:1014200000204811000000000000000000204811CA -:101430000000000000000100002018110000000062 -:101440000000000800621E280000012F00000008B4 -:1014500000822228000000000002C0000020441189 -:10146000000000000000001500600E2D000001BD0E -:101470000000001600600E2D000001BD0000C00835 -:1014800000204411000000000000001700200E2D75 -:10149000000000000000000014C00000000001B9BE -:1014A0000000000000200411000000000000000007 -:1014B0000020480100000000390000000020481111 -:1014C00000000000000000000020481100000000A3 -:1014D000000000000080480200000000000000182A -:1014E00000202E2D0000000000000000003B0D63D6 -:1014F000000000000000000800224A230000000055 -:101500000000001000224A23000000000000001824 -:1015100000224A2300000000000000000080480371 -:101520000000000000000000006000000000000B50 -:10153000000010000060041100000315000000000E -:1015400000200411000000000000000000600811ED -:10155000000001B2000000070021062F000000007B -:101560000000001300200A2D000000000000000110 -:1015700000202C11000000000000FFFF4028222066 -:10158000000000000000000F0026222800000000DC -:101590000000001040212620000000000000000F85 -:1015A000002626290000000000000000002028027C -:1015B000000000000000225600204411000000003E -:1015C0000000001B00204811000000000000000087 -:1015D000002F022100000000000000000CE00000CD -:1015E000000001E00000225C002044110000000027 -:1015F0000000008100204811000000000000A1FC54 -:1016000000204411000000000000000100204811EB -:10161000000000000000008000201C1100000000FD -:1016200000000000002F0227000000000000000062 -:101630000CE00000000001DC000000000060000081 -:10164000000001E90000000100531E27000001D83E -:101650000000000100202C11000000000000001F0D -:1016600000280A22000000000000001F00282A2A8B -:10167000000000000000000100530621000001D11D -:101680000000225C00204411000000000000000265 -:1016900000304A2F000000000000A1FC002044118F -:1016A00000000000000000010020481100000000C0 -:1016B0000000000100301E2F0000000000000000AC -:1016C000002F022700000000000000000CE00000D6 -:1016D000000000000000000000600000000001E9C0 -:1016E0000000000100531E27000001E50000FFFF7D -:1016F00040280E20000000000000000F00260E23EE -:101700000000000000000010C021122000000000B6 -:101710000000000F0026122400000000000000005E -:1017200000201411000000000000000000601811EB -:10173000000002BB0001A1FD0020441100000000D8 -:1017400000000000002F022B00000000000000003D -:101750000CE00000000001F8000000100022162834 -:1017600000000000FFFF0000002816250000000018 -:101770000000FFFF00281A29000000000000000000 -:10178000002948C500000000000000000020480AB1 -:10179000000000000000000000202C1100000000EC -:1017A000000000100022162300000000FFFF0000D0 -:1017B00000281625000000000000FFFF00281A2462 -:1017C0000000000000000000002948C500000000E3 -:1017D0000000000000731503000002050000000077 -:1017E0000020180500000000000000000073152410 -:1017F0000000020500000000002D14C500000000DC -:1018000000000000003008A20000000000000000FE -:101810000020480200000000000000000020280214 -:101820000000000000000000002020030000000075 -:101830000000000000802404000000000000000FF1 -:1018400000210225000000000000000014C000007C -:101850000000068900000000002B140500000000B5 -:1018600000000001009016250000000000000000AC -:10187000006000000000000B000000000060041188 -:10188000000003150000000000200411000000000B -:101890000000000000600811000001B200002256A4 -:1018A00000204411000000000000001A00294A2214 -:1018B0000000000000000000C02000000000000048 -:1018C00000003FFF002F022F00000000000000007A -:1018D0000CE000000000000000000000C020040038 -:1018E000000000000000225C002044110000000005 -:1018F0000000000300384A21000000000000A1FCA5 -:1019000000204411000000000000000100204811E8 -:10191000000000000000FFFF40281220000000002F -:1019200000000010C0211A20000000000000FFFF8E -:1019300040280E200000000000000010C0211620EA -:10194000000000000000000000741465000002BBED -:101950000001A1FD00604411000002E00000000150 -:10196000003306210000000000000000002F0221CB -:1019700000000000000000000CC000000000021980 -:1019800000003FFF002F022F0000000000000000B9 -:101990000CC000000000021200000000C040040063 -:1019A000000000010000000000600000000006428E -:1019B000000000000040040F0000021300000000BF -:1019C000006000000000062E000000000060000023 -:1019D0000000064200000210006004110000031520 -:1019E0000000000000600000000001A000000000F6 -:1019F000006000000000019C00000000006000008A -:101A0000000002BB0000000000600000000002A314 -:101A1000938000000020441100000000000000003E -:101A2000002048080000000000000000002F022FE6 -:101A300000000000000000000AE000000000023288 -:101A400000000000006000000000013A00000000FB -:101A50000040000000000236950000000020441104 -:101A60000000000000000000002F022F0000000016 -:101A7000000000000CE00000000002360000000042 -:101A8000C0404800000002339200000000204411D2 -:101A90000000000000000000C0204800000000001E -:101AA0000000225600204411000000000000001633 -:101AB00000204811000000000000225C00204411BA -:101AC000000000000000000300204811000000009A -:101AD0000000A1FC002044110000000000000001F3 -:101AE00000204811000000000001A1FD0020441169 -:101AF000000000000000000000600411000002FB74 -:101B000000000000C04004000000000100000000D0 -:101B1000006000000000062E0000A00C0020441110 -:101B20000000000000000000C0204800000000008D -:101B300000000000C040480000000000000000005D -:101B4000006000000000000B0000001840210A2087 -:101B50000000000000000003002F0222000000002F -:101B6000000000000AE000000000024C0000001429 -:101B70000020222D00000000000801010029222879 -:101B800000000000000000140020362800000000C3 -:101B90000000A30C00204411000000000000000021 -:101BA000C02048000000000000000000C0204800E5 -:101BB0000000000000000000C0404800000002518A -:101BC00000000000006000000000000B000000109A -:101BD00000600411000003153F8000000020041184 -:101BE000000000000000000000600811000001B2C9 -:101BF0000000225C002044110000000000000003EF -:101C000000204811000000000000000000600000FB -:101C10000000027C0000001700201E2D00000000C4 -:101C20000000000100211E2700000000000000004D -:101C300014E000000000026A0000001200201E2DC7 -:101C4000000000000000FFFF00281E270000000029 -:101C50000000000000341C2700000000000000000D -:101C600012C000000000025F0000000000201C11F4 -:101C70000000000000000000002F00E50000000050 -:101C80000000000008C00000000002620000000028 -:101C900000201407000000000000001200201E2D8C -:101CA000000000000000001000211E2700000000BE -:101CB0000000000000341C4700000000000000008D -:101CC00012C00000000002670000000000201C118C -:101CD0000000000000000000002F00E600000000EF -:101CE0000000000008C000000000026A00000000C0 -:101CF0000020180700000000000000000060000045 -:101D0000000002C100002256002044110000000023 -:101D1000000000000034202300000000000000004C -:101D200012C00000000002720000000000342044D5 -:101D3000000000000000000012C00000000002715E -:101D40000000001600404811000002760000001854 -:101D500000404811000002760000000000342044DA -:101D6000000000000000000012C00000000002752A -:101D70000000001700404811000002760000001922 -:101D800000204811000000000000A1FC00204411C8 -:101D900000000000000000010020481100000000C9 -:101DA0000001A1FD00604411000002E900003FFFB6 -:101DB000002F022F00000000000000000CC00000F7 -:101DC0000000025600000000C040040000000001B6 -:101DD0000000001040210620000000000000FFFF6E -:101DE000C0280A20000000000000001040210E2042 -:101DF000000000000000FFFFC028122000000000CB -:101E00000000001040211620000000000000FFFF2D -:101E1000C0881A200000000081000000002044114A -:101E20000000000000000001002048110000000038 -:101E300000042004006044110000068A0000000035 -:101E4000006000000000062E00000000C0600000DE -:101E5000000002A30000000500200A2D0000000081 -:101E60000000000800220A22000000000000002BF1 -:101E700000201A2D000000000000001C00201E2D74 -:101E8000000000000000700000281E270000000075 -:101E90000000000000311CE6000000000000002AE5 -:101EA00000201A2D000000000000000C00221A265D -:101EB0000000000000000000002F00E6000000000D -:101EC0000000000006E00000000002920000000098 -:101ED00000201C11000000000000000000200C1178 -:101EE000000000000000002B00203623000000004E -:101EF0000000001000201811000000000000000089 -:101F000000691CE20000012F9380000000204411B2 -:101F10000000000000000000002048070000000052 -:101F200095000000002044110000000000000000A7 -:101F3000002F022F00000000000000000CE0000055 -:101F40000000029D0000000100333E2F0000000051 -:101F500000000000D90048000000000092000000CE -:101F6000002044110000000000000000C0204800D4 -:101F7000000000000000001C0040362700000000A8 -:101F80000000000CC0220A20000000000000002910 -:101F9000002036220000000000000028C04036204B -:101FA000000000000000A2A4002044110000000076 -:101FB000000000090020481100000000A1000000FE -:101FC00000204411000000000000000100804811C2 -:101FD000000000000000002100201E2D0000000075 -:101FE00000000000002C1CE30000000000000021A5 -:101FF00000203627000000000000002200201E2DD7 -:102000000000000000000000002C1CE400000000A4 -:1020100000000022002036270000000000000023FE -:1020200000201E2D0000000000000000003120A351 -:102030000000000000000000002D1D07000000004F -:1020400000000023002036270000000000000024CC -:1020500000201E2D0000000000000000003120C400 -:102060000000000000000000002D1D07000000001F -:10207000000000240080362700000000000000213E -:10208000002036230000000000000022002036243B -:10209000000000000000000000311CA30000000050 -:1020A0000000002300203627000000000000000090 -:1020B00000311CC40000000000000024008036270E -:1020C000000000000000001A002036270000000079 -:1020D0000000001B00203628000000000000001750 -:1020E00000201E2D00000000000000020021022739 -:1020F000000000000000000014C00000000002DC2E -:102100000000000000400000000002D90000001A9A -:1021100000203627000000000000001B00203628A9 -:10212000000000000000001700201E2D000000002D -:102130000000000200210227000000000000000053 -:1021400014E00000000002D9000000030021022773 -:10215000000000000000000014E00000000002DCAD -:102160000000002300201E2D0000000000000000E1 -:10217000002E00E1000000000000000002C000008E -:10218000000002DC0000002100201E2D00000000E5 -:1021900000000000003120A100000000000000004D -:1021A000002E00E8000000000000000006C0000053 -:1021B000000002DC0000002400201E2D00000000B2 -:1021C00000000000002E00E20000000000000000FF -:1021D00002C00000000002DC0000002200201E2DD2 -:1021E0000000000000000000003120C200000000DC -:1021F00000000000002E00E80000000000000000C9 -:1022000006C00000000002DC0000000000600000CA -:10221000000006650000000000600000000002B53C -:102220000000000000400000000002DE000000008E -:1022300000600000000002B5000000000060000027 -:102240000000065C0000000000400000000002DE0C -:102250000000000000600000000002A70000000075 -:1022600000400000000002DE0000001A00201E2DC9 -:10227000000000000000001B0080222D0000000074 -:102280000000001000221E230000000000000000DB -:1022900000294887000000000000000000311CA356 -:1022A000000000000000001000221E2700000000B7 -:1022B0000000000000294887000000000000001016 -:1022C00000221E230000000000000000003120C496 -:1022D000000000000000FFFF00282228000000008E -:1022E0000000000000894907000000000000001005 -:1022F00000221E2300000000000000000029488783 -:10230000000000000000001000221E21000000005C -:102310000000000000294847000000000000000005 -:1023200000311CA3000000000000001000221E2746 -:1023300000000000000000000029488700000000A5 -:102340000000000000311CA100000000000000108F -:1023500000221E270000000000000000002948475E -:10236000000000000000001000221E2300000000FA -:1023700000000000003120C4000000000000FFFF4A -:102380000028222800000000000000000029490762 -:10239000000000000000001000221E2100000000CC -:1023A00000000000003120C2000000000000FFFF1C -:1023B00000282228000000000000000000894907D2 -:1023C000000000000000001000221E23000000009A -:1023D0000000000000294887000000000000000104 -:1023E00000220A210000000000000000003308A2C3 -:1023F000000000000000001000221E22000000006B -:102400000000001000212222000000000000000057 -:1024100000294907000000000000000000311CA353 -:10242000000000000000001000221E270000000035 -:1024300000000000002948870000000000000001A3 -:1024400000220A210000000000000000003008A265 -:10245000000000000000001000221E22000000000A -:1024600000000010002122220000000000000000F7 -:1024700000294907000000000000001000221E2370 -:102480000000000000000000003120C40000000037 -:102490000000FFFF002822280000000000000000CC -:1024A000002949070000000000000000003808C5AE -:1024B00000000000000000000030084100000000A3 -:1024C0000000000100220A220000000000000000BD -:1024D000003308A2000000000000001000221E22AD -:1024E0000000000000000010002122220000000077 -:1024F00000000000008949070000000000000017EC -:102500000020222D000000000000000014C0000088 -:1025100000000318FFFFFFEF002806210000000065 -:10252000000000140020222D000000000000F8E050 -:1025300000204411000000000000000000294901B3 -:1025400000000000000000000089490100000000B8 -:102550000000000000204811000000000000000002 -:102560000020481100000000060A02000080481107 -:102570000000000000000000C0200000000000007B -:1025800097000000C020441100000000000000007F -:10259000C0204811000000008A0000000020441103 -:1025A00000000000000000000020481100000000B2 -:1025B0000000225C00204411000000000000000028 -:1025C000C0204800000000000000A1FC00204411D1 -:1025D0000000000000000000C020480000000000D3 -:1025E00000000000C0200400000000000000000007 -:1025F00000A0000A00000000970000000020441125 -:102600000000000000000000002048110000000051 -:102610008A000000002044110000000000000000BB -:1026200000204811000000000000225C002044113E -:102630000000000000000000C02048000000000072 -:102640000000A1FC00204411000000000000000078 -:10265000C02048000000000000000000C02004006E -:10266000000000000000000000A0000A00000000C0 -:10267000970000000020441100000000000000004E -:1026800000204811000000008A00000000204411D2 -:1026900000000000000000000020481100000000C1 -:1026A0000000225C00204411000000000000000037 -:1026B000C0204800000000000000A1FC00204411E0 -:1026C0000000000000000000C020480000000000E2 -:1026D0000001A1FD002044110000000000000000E6 -:1026E000D90048000000000000000000C0200400E5 -:1026F000000000000000000000A0000A0000000030 -:1027000000002257002044110000000000000003D8 -:10271000C0484A20000000000000225D0020441153 -:102720000000000000000000C04048000000000061 -:1027300000000000006000000000064200000000F1 -:10274000C0200800000000000000225C00204411AE -:10275000000000000000000300384A2200000000D2 -:102760000000A1FC00204411000000000000000057 -:10277000C0204800000000000001A1FD002044111D -:102780000000000000000000002F022200000000F6 -:10279000000000000CE0000000000000000000004D -:1027A00040204800000000000000000140304A20A6 -:1027B0000000000000000002C0304A2000000000BD -:1027C0000000000100530A220000034B0000003FFC -:1027D000C0280A20000000008100000000204411F1 -:1027E000000000000000000100204811000000006F -:1027F000000021F800204411000000000000001833 -:102800000020481100000000000421F9006044117C -:102810000000068A000000110021023000000000C4 -:102820000000000014E00000000003540000001449 -:10283000002F022200000000000000000CC0000079 -:10284000000003640000201000204411000000007C -:102850000000800000204811000000000001A2A438 -:102860000020441100000000000000000060480249 -:102870000000036E00002100002044110000000051 -:1028800000000000C0204800000000000000000020 -:10289000C02048000000000000000000C0204800E8 -:1028A0000000000000000000C040480000000000E0 -:1028B00000000004002F02220000000000000000C1 -:1028C0000CC000000000036A00002010002044112A -:1028D00000000000000080000020481100000000FF -:1028E0000001A2A40020441100000000000000002C -:1028F000004048020000035F00000028002F022271 -:1029000000000000000000000CC00000000005BD39 -:102910000001A2A4002044110000000000000000FB -:10292000004048020000035F0000002C0020362613 -:102930000000000000000049002018110000000005 -:102940000000003F002048110000000000000001CE -:1029500000331A260000000000000000002F0226AD -:1029600000000000000000000CC000000000037028 -:102970000000002C00801A2D000000000000003F25 -:10298000C0280A200000000000000015002F0222CD -:1029900000000000000000000CE0000000000386C2 -:1029A00000000006002F02220000000000000000CE -:1029B0000CE00000000003B100000016002F02220E -:1029C00000000000000000000CE00000000003B563 -:1029D00000000020002F0222000000000000000084 -:1029E0000CE000000000039C0000000F002F0222FA -:1029F00000000000000000000CE00000000003A840 -:102A000000000010002F0222000000000000000063 -:102A10000CE00000000003A80000001E002F0222AE -:102A200000000000000000000CE000000000039027 -:102A30000000A2A4002044110000000000000000DB -:102A400000404802000000000800000000290A229F -:102A5000000000000000000340210E2000000000E4 -:102A60000000000CC021122000000000000800003F -:102A7000002812240000000000000014C0221620CC -:102A80000000000000000000002914A40000000065 -:102A90000000A2A40020441100000000000000007B -:102AA000002948A2000000000000A1FE00204411FF -:102AB000000000000000000000404803000000008B -:102AC000810000000020441100000000000000010F -:102AD0000020481100000000000021F800204411EF -:102AE0000000000000000016002048110000000057 -:102AF000000421F9006044110000068A000000155E -:102B000000210230000000000000000014E000007E -:102B1000000003920000210E00204411000000007C -:102B200000000000C020480000000000000000007D -:102B3000C0204800000000000000A2A400204411B2 -:102B400000000000000000000040480200000000FB -:102B5000810000000020441100000000000000017E -:102B60000020481100000000000021F8002044115E -:102B700000000000000000170020481100000000C5 -:102B8000000421F9006044110000068A00000003DF -:102B900000210230000000000000000014E00000EE -:102BA0000000039E000021080020441100000000E6 -:102BB00000000000C02048000000000000000000ED -:102BC000C0204800000000000000A2A40020441122 -:102BD000000000000000000000404802000000006B -:102BE0000000A2A40020441100000000000000002A -:102BF0000020480200000000800000000020441176 -:102C0000000000000000000000204811000000004B -:102C100081000000002044110000000000000010AE -:102C200000204811000000000000000000200010FB -:102C3000000000000000000014C00000000003AE0F -:102C40000000000000400000000000000000201014 -:102C50000020441100000000000080000020481106 -:102C6000000000000001A2A40020441100000000A8 -:102C70000000000600404811000000000000201085 -:102C800000204411000000000000800000204811D6 -:102C9000000000000001A2A4002044110000000078 -:102CA00000000016006048110000036E00000000E4 -:102CB000004000000000000000000000C0200800EC -:102CC0000000000000000000C0200C000000000018 -:102CD0000000001D00210223000000000000000091 -:102CE00014E00000000003CE810000000020441129 -:102CF000000000000000000100204811000000005A -:102D0000000021F80020441100000000000000181D -:102D10000020481100000000000421F90060441167 -:102D20000000068A000000110021023000000000AF -:102D30000000000014E00000000003C000002100BB -:102D400000204411000000000000000000204802A4 -:102D50000000000000000000002048030000000008 -:102D6000BABECAFE0020481100000000CAFEBABE6A -:102D70000020481100000000000020100020441135 -:102D8000000000000000800000204811000000004A -:102D90000000A2A400204411000000000000000474 -:102DA0000040481100000000000021700020441184 -:102DB00000000000000000000020480200000000A9 -:102DC0000000000000204803000000008100000017 -:102DD00000204411000000000000000A00204811FB -:102DE00000000000000000000020001000000000B3 -:102DF0000000000014C00000000003D38C0000009D -:102E00000020441100000000CAFEBABE0040481174 -:102E100000000000810000000020441100000000BC -:102E200000000001002048110000000000003FFFEA -:102E300040280A20000000008000000040280E20EA -:102E40000000000040000000C02812200000000028 -:102E500000040000006946220000068A000000000D -:102E6000002014100000000000000000002F0223CA -:102E700000000000000000000CC00000000003E1A2 -:102E800000000000C0401800000003E400003FFF05 -:102E9000C0281A2000000000000400000069462637 -:102EA0000000068A0000000000201810000000004A -:102EB00000000000002F02240000000000000000BD -:102EC0000CC00000000003E700000000C0401C0030 -:102ED000000003EA00003FFFC0281E2000000000A1 -:102EE00000040000006946270000068A0000000078 -:102EF00000201C1000000000000000000020440220 -:102F00000000000000000000002820C500000000B4 -:102F100000000000004948E800000000A580000013 -:102F200000200811000000000000200000200C110B -:102F30000000000083000000006044110000041243 -:102F4000000000000020440200000000000000001B -:102F5000C0204800000000000000000040204800A1 -:102F6000000000000000001FC0210220000000003F -:102F70000000000014C00000000003F70000201053 -:102F800000204411000000000000800000204811D3 -:102F9000000000000000FFFFC0481220000003FFF7 -:102FA000A780000000200811000000000000A00021 -:102FB00000200C110000000083000000006044119C -:102FC0000000041200000000002044020000000085 -:102FD00000000000C02048000000000000000000C9 -:102FE000C0204800000000000000FFFFC0281220A1 -:102FF00000000000830000000020441100000000D9 -:103000000000000000304883000000008400000041 -:10301000002044110000000000000000C020480013 -:1030200000000000000000001D0000000000000083 -:103030008300000000604411000004120000000042 -:10304000C040040000000001A98000000020081119 -:10305000000000000000C00000400C11000003FA56 -:10306000AB80000000200811000000000000F8E024 -:1030700000400C11000003FAAD8000000020081190 -:10308000000000000000F88000400C11000003FA6E -:10309000B380000000200811000000000000F3FCD5 -:1030A00000400C11000003FAAF800000002008115E -:1030B000000000000000E00000400C11000003FAD6 -:1030C000B180000000200811000000000000F000A6 -:1030D00000400C11000003FA83000000002044119E -:1030E00000000000000021480020481100000000FE -:1030F00084000000002044110000000000000000D7 -:10310000C020480000000000000000001D0000007A -:10311000000000000000000000800000000000002F -:1031200001182000C0304620000000000000000010 -:10313000D90048000000000000000000C02004008A -:10314000000000000000000000A0000A00000000D5 -:103150000218A000C030462000000000000000005F -:10316000D90048000000000000000000C02004005A -:10317000000000000000000000A0000A00000000A5 -:103180000318C000C030462000000000000000000E -:10319000D90048000000000000000000C02004002A -:1031A000000000000000000000A0000A0000000075 -:1031B0000418F8E0C03046200000000000000000C5 -:1031C000D90048000000000000000000C0200400FA -:1031D000000000000000000000A0000A0000000045 -:1031E0000518F880C03046200000000000000000F4 -:1031F000D90048000000000000000000C0200400CA -:10320000000000000000000000A0000A0000000014 -:103210000618E000C030462000000000000000005A -:10322000D90048000000000000000000C020040099 -:10323000000000000000000000A0000A00000000E4 -:103240000718F000C0304620000000000000000019 -:10325000D90048000000000000000000C020040069 -:10326000000000000000000000A0000A00000000B4 -:103270000818F3FCC03046200000000000000000E9 -:10328000D90048000000000000000000C020040039 -:10329000000000000000000000A0000A0000000084 -:1032A0000000003000200A2D000000000000000097 -:1032B000C0290C4000000000000000300020362330 -:1032C0000000000000000000C0200400000000001A -:1032D0000000000000A0000A0000000086000000BE -:1032E00000204411000000000000000000404801E0 -:1032F0000000000085000000C02044110000000014 -:103300000000000000404801000000000000217C97 -:10331000002044110000000000000000C020480010 -:103320000000000000000000C02048000000000075 -:1033300000000000C02048000000000081000000E4 -:10334000002044110000000000000001002048118E -:103350000000000000000000C02008000000000085 -:103360000000000017000000000000000004217FA2 -:10337000006044110000068A0000001F0021023096 -:10338000000000000000000014C000000000000069 -:103390000000000000404C02000004480000000053 -:1033A000C0200C000000000000000000C020100041 -:1033B0000000000000000000C02014000000000019 -:1033C00000000000C0201800000000000000000005 -:1033D000C0201C000000000000007F0000280A211F -:1033E0000000000000004500002F02220000000045 -:1033F000000000000CE00000000004560000000087 -:10340000C0202000000000000000000017000000A5 -:10341000000000000000001000280A230000000047 -:1034200000000010002F0222000000000000000039 -:103430000CE000000000045E810000000020441148 -:103440000000000000000001002048110000000002 -:1034500000040000006946240000068A0000000005 -:1034600000400000000004638100000000204411BF -:1034700000000000000000000020481100000000D3 -:103480000000216D00204411000000000000000039 -:103490000020480400000000000000000060480513 -:1034A0000000068F00000000002824F0000000004B -:1034B0000000000700280A230000000000000001AF -:1034C000002F022200000000000000000AE00000BF -:1034D0000000046A00000000002F00C90000000086 -:1034E0000000000004E00000000004830000000071 -:1034F000004000000000049000000002002F0222A3 -:1035000000000000000000000AE000000000046F5E -:1035100000000000002F00C90000000000000000B3 -:1035200002E00000000004830000000000400000F2 -:103530000000049000000003002F022200000000A1 -:10354000000000000AE00000000004740000000019 -:10355000002F00C900000000000000000CE0000087 -:103560000000048300000000004000000000049000 -:1035700000000004002F02220000000000000000F4 -:103580000AE000000000047900000000002F00C9DC -:1035900000000000000000000AE0000000000483BA -:1035A0000000000000400000000004900000000542 -:1035B000002F022200000000000000000AE00000CE -:1035C0000000047E00000000002F00C90000000081 -:1035D0000000000006E0000000000483000000007E -:1035E000004000000000049000000006002F0222AE -:1035F00000000000000000000AE00000000004835A -:1036000000000000002F00C90000000000000000C2 -:1036100008E00000000004830000000000400000FB -:103620000000049000007F0000280A210000000034 -:1036300000004500002F02220000000000000000F2 -:103640000AE00000000000000000000800210A233A -:10365000000000000000000014C000000000048D05 -:10366000000021690020441100000000000000005B -:10367000C02048000000000000000000C0204800FA -:103680000000000000000000C02048000000000012 -:10369000CAFEBABE00404811000000000000000051 -:1036A000C02044000000000000000000C020000016 -:1036B0000000000000000000C040480000000000C2 -:1036C00000007F0000280A210000000000004500E3 -:1036D000002F022200000000000000000AE00000AD -:1036E0000000049600000000C02000000000000060 -:1036F00000000000C02000000000000000000000EA -:10370000C0400000000000000000000000404C0825 -:103710000000045600000000C02008000000000067 -:103720000000001040210E200000000000000011E9 -:10373000402112200000000000000012402116204D -:10374000000000000000216900204411000000007A -:1037500000000000002048020000000000000000FF -:1037600000210225000000000000000014E000001D -:10377000000004A000040000C0494A20000004A189 -:10378000FFFBFFFFC0284A200000000000000000EF -:1037900000210223000000000000000014E00000EF -:1037A000000004AD00000000C02048000000000040 -:1037B00000000000C02048000000000000000000E1 -:1037C00000210224000000000000000014C00000DE -:1037D00000000000810000000020441100000000F3 -:1037E0000000000C00204811000000000000000054 -:1037F00000200010000000000000000014C00000C5 -:10380000000004A9A00000000020441100000000F6 -:10381000CAFEBABE0040481100000000810000004E -:1038200000204411000000000000000400204811A6 -:10383000000000000000216B002044110000000087 -:1038400000000000C02048100000000081000000BF -:103850000020441100000000000000050020481175 -:10386000000000000000216C002044110000000056 -:1038700000000000C0204810000000000000000010 -:10388000002F022400000000000000000CE00000F7 -:10389000000000000000000000400000000004A73D -:1038A00000000000C0210A2000000000000000000D -:1038B00014C00000000004C081000000002044117A -:1038C000000000000000000000204811000000007F -:1038D0000000216D002044110000000000000000E5 -:1038E000C02048000000000000000000C060480048 -:1038F0000000068F0000000000400000000004C42B -:1039000081000000002044110000000000000001C0 -:10391000002048110000000000040000C0294620DB -:103920000000000000000000C06000000000068AE7 -:103930000000000100210222000000000000000041 -:1039400014C00000000004CB0000216900204411D5 -:103950000000000000000000C0204800000000003F -:1039600000000000C020480000000000000000002F -:103970000020481000000000CAFEBABE00404811F6 -:103980000000000000000000C02044000000000013 -:1039900000000000C040481000000000810000004E -:1039A0000020441100000000000000010020481128 -:1039B00000000000000021F8002044110000000079 -:1039C0000000000E0020481100000000000421F952 -:1039D000006044110000068A00000000002102304F -:1039E000000000000000000014C00000000004CD32 -:1039F00000002180002044110000000000000000B1 -:103A0000C02048000000000000000000C0200000AE -:103A10000000000000000000C0204800000000007E -:103A200000000000C02000000000000000000000B6 -:103A3000C0404800000000000000000300333E2F9B -:103A40000000000000000001002102210000000031 -:103A50000000000014E00000000004FD0000002C45 -:103A600000200A2D000000000004000018E00C11E6 -:103A7000000004EC0000000100333E2F00000000B5 -:103A80000000216900204411000000000000000037 -:103A90000020480200000000000000000020480351 -:103AA000000000000000000800300A2200000000B2 -:103AB00000000000C02048000000000000000000DE -:103AC000C0204800000000000000216900204411CF -:103AD000000000000000000000204802000000007C -:103AE0000000000000204803000000000000000863 -:103AF00000300A220000000000000000C020480042 -:103B00000000000000000000D8C04800000004E0F1 -:103B100000002169002044110000000000000000A6 -:103B200000204802000000000000000000204803C0 -:103B3000000000000000000800300A220000000021 -:103B400000000000C020480000000000000000004D -:103B5000C0204800000000000000002D0020122DB1 -:103B6000000000000000000000290C83000000009D -:103B70000000216900204411000000000000000046 -:103B80000020480200000000000000000020480360 -:103B9000000000000000000800300A2200000000C1 -:103BA00000000000C02048000000000000000000ED -:103BB000C020480000000000000000110021022485 -:103BC000000000000000000014C000000000000021 -:103BD0000000000000400000000004A70000002CCE -:103BE000C0203620000000000000002DC04036201C -:103BF000000000000000000F002102210000000072 -:103C00000000000014C000000000050200000000D9 -:103C1000006000000000000B00000000D900000060 -:103C20000000000000000000C0400400000000018F -:103C3000B50000000020441100000000000020003A -:103C40000020481100000000B600000000204411D0 -:103C5000000000000000A00000204811000000004B -:103C6000B700000000204411000000000000C00068 -:103C70000020481100000000B8000000002044119E -:103C8000000000000000F8E00020481100000000E3 -:103C9000B900000000204411000000000000F8807E -:103CA0000020481100000000BA000000002044116C -:103CB000000000000000E0000020481100000000AB -:103CC000BB00000000204411000000000000F000D4 -:103CD0000020481100000000BC000000002044113A -:103CE000000000000000F3FC00204811000000006C -:103CF00081000000002044110000000000000002CC -:103D00000020481100000000000000FF00280E30D5 -:103D10000000000000000000002F0223000000004F -:103D2000000000000CC000000000051600000000AC -:103D3000C0200800000000000000000014C00000C7 -:103D40000000052B0000000000200C110000000006 -:103D50000000001C00203623000000000000002BA3 -:103D60000020362300000000000000290020362338 -:103D700000000000000000280020362300000000A2 -:103D8000000000170020362300000000000000257E -:103D9000002036230000000000000026002036230B -:103DA0000000000000000015002036230000000085 -:103DB000000000160020362300000000FFFFE00096 -:103DC00000200C110000000000000021002036231C -:103DD0000000000000000022002036230000000048 -:103DE00000001FFF00200C11000000000000002355 -:103DF00000203623000000000000002400203623AD -:103E000000000000F1FFFFFF00283A2E0000000034 -:103E10000000001AC0220E20000000000000000078 -:103E20000029386E000000008100000000204411CD -:103E30000000000000000006002048110000000003 -:103E40000000002A4020362000000000870000000B -:103E5000002044110000000000000000C0204800C5 -:103E6000000000000000A1F4002044110000000048 -:103E700000000000002048100000000000000000CA -:103E800000200C110000000000000030002036234C -:103E9000000000009D000000002044110000000010 -:103EA0000000001F40214A20000000009600000092 -:103EB000002044110000000000000000C020480065 -:103EC0000000000000000000C0200C000000000006 -:103ED00000000000C0201000000000000000001FD3 -:103EE00000211624000000000000000014C00000A3 -:103EF000000000000000001D00203623000000002C -:103F00000000000300281E2300000000000000083D -:103F10000022222300000000FFFFF00000282228DA -:103F20000000000000000000002920E80000000060 -:103F30000000001F002036280000000000000018CC -:103F400000211E2300000000000000200020362772 -:103F50000000000000000002002216240000000003 -:103F600000000000003014A8000000000000001E47 -:103F700000203625000000000000000300211A2464 -:103F8000000000001000000000281A2600000000B9 -:103F9000EFFFFFFF00283A2E0000000000000000A5 -:103FA000004938CE000006780000000140280A20B1 -:103FB000000000000000000640280E200000000065 -:103FC00000000300C02812200000000000000008CC -:103FD000002112240000000000000000C020162074 -:103FE0000000000000000000C0201A2000000000B7 -:103FF000000000000021022200000000000000007C -:1040000014C000000000056381000000002044117E -:104010000000000000000001002048110000000026 -:104020000000225800300A240000000000040000B4 -:10403000006946220000068A000021690020441120 -:104040000000000000000000002048050000000003 -:104050000002000000294A260000000000000000C5 -:104060000020481000000000CAFEBABE002048111F -:104070000000000000000002002F022300000000EA -:10408000000000000CC000000000056B00000000F4 -:10409000C0201C100000000000000000C040000014 -:1040A0000000057900000002002F0223000000003C -:1040B000000000000CC000000000056B8100000043 -:1040C0000020441100000000000000010020481101 -:1040D000000000000000225800300A240000000008 -:1040E00000040000006946220000068A000000006B -:1040F000C0201C100000000000000000C0400000B4 -:104100000000057900000000002F022300000000DD -:10411000000000000CC000000000056F000000005F -:10412000C0201C000000000000000000C040000093 -:104130000000057900000004002F022300000000A9 -:10414000000000000CC000000000057781000000A6 -:104150000020441100000000000000000020481171 -:10416000000000000000216D00204411000000004C -:1041700000000000C0204800000000000000000017 -:10418000C06048000000068F0000000000401C10C6 -:104190000000057900000000C020000000000000C1 -:1041A00000000000C040000000000000000000000F -:1041B0000EE000000000057B000000000060000031 -:1041C000000005C600000000002F022400000000CF -:1041D000000000000CC000000000058C0000A2B729 -:1041E00000204411000000000000000000204807EB -:1041F00000000000810000000020441100000000C9 -:104200000000000100204811000000000004A2B6D8 -:10421000006044110000068A0000001A00212230CC -:104220000000000000000006002226300000000010 -:1042300000042004006044110000068A0000A2C4AB -:10424000002044110000000000000000003048E998 -:10425000000000000000000000E000000000058AEF -:104260000000A2D100204411000000000000000066 -:1042700000404808000000000000A2D100204411C6 -:10428000000000000000000100504A28000000006B -:1042900000000001002F02240000000000000000C8 -:1042A0000CC000000000059D0000A2BB00204411CE -:1042B000000000000000000000204807000000008F -:1042C00081000000002044110000000000000001F7 -:1042D00000204811000000000004A2BA0060441150 -:1042E0000000068A0000001A0021223000000000B1 -:1042F0000000000600222630000000000004200418 -:10430000006044110000068A0000A2C5002044118C -:104310000000000000000000003048E9000000003C -:104320000000000000E000000000059B0000A2D299 -:104330000020441100000000000000000040480878 -:10434000000000000000A2D2002044110000000084 -:104350000000000100504A28000000000000000298 -:10436000002F022400000000000000000CC000002C -:10437000000005AE0000A2BF0020441100000000B4 -:10438000000000000020480700000000810000003D -:10439000002044110000000000000001002048112E -:1043A000000000000004A2BE006044110000068A64 -:1043B0000000001A0021223000000000000000066A -:1043C0000022263000000000000420040060441198 -:1043D0000000068A0000A2C6002044110000000070 -:1043E00000000000003048E900000000000000006C -:1043F00000E00000000005AC0000A2D30020441142 -:10440000000000000000000000404808000000001C -:104410000000A2D3002044110000000000000001B1 -:1044200000504A28000000000000A2C300204411F0 -:10443000000000000000000000204807000000000D -:104440008100000000204411000000000000000175 -:1044500000204811000000000004A2C200604411C6 -:104460000000068A0000001A00212230000000002F -:104470000000000600222630000000000004200496 -:10448000006044110000068A0000A2C70020441109 -:104490000000000000000000003048E900000000BB -:1044A0000000000000E00000000005BB0000A2D4F6 -:1044B00000204411000000000000000000404808F7 -:1044C000000000000000A2D4002044110000000001 -:1044D0000000000100504A28000000008500000094 -:1044E00000204411000000000000000000204801EE -:1044F000000000000000304A0020441100000000CD -:104500000100000000204811000000000000000031 -:1045100000400000000005C1A4000000C0204411BC -:104520000000000000000000C04048000000000043 -:1045300000000000C0600000000005C60000000090 -:10454000C0400400000000010000002C00203621C3 -:104550000000000081000000002044110000000065 -:1045600000000006002048110000000000000000CC -:10457000002F023000000000000000000CC000000E -:10458000000005CD00000000002004110000000024 -:104590000000003000403621000005E0000000303F -:1045A0000020062D0000000000007E0000280621EB -:1045B0000000000000000000002F022100000000A9 -:1045C000000000000CE00000000005E08100000099 -:1045D00000204411000000000000000100204811EC -:1045E000000000000004A092006044110000068A50 -:1045F0000000003100203630000000000004A093CD -:10460000006044110000068A0000003200203630AD -:10461000000000000004A2B6006044110000068AF9 -:104620000000003300203630000000000004A2BA71 -:10463000006044110000068A00000034002036307B -:10464000000000000004A2BE006044110000068AC1 -:104650000000003500203630000000000004A2C237 -:10466000006044110000068A000000360020363049 -:104670000000000000042004006044110000068ACD -:104680000001A2A400204411000000000000003F2F -:1046900000204811000000000000003F00204811E9 -:1046A000000000000000003F002048110000000052 -:1046B0000000003F0020481100000000000000053D -:1046C00000204811000000000000A1F40020441167 -:1046D0000000000000000000002048110000000061 -:1046E00088000000002044110000000000000001CC -:1046F000002048110000000081000000002044114B -:10470000000000000000000600204811000000002A -:1047100000000001002F0230000000000000000037 -:104720000CE0000000000629000000300020062DEB -:104730000000000000000000002F02210000000027 -:10474000000000000CE000000000062981000000CD -:10475000002044110000000000000001002048116A -:104760000000000000007E0000280621000000007C -:1047700000000000002F02210000000000000000E7 -:104780000CE00000000006020000A092002044118E -:10479000000000000000003100204A2D0000000051 -:1047A0000000A0930020441100000000000000322F -:1047B00000204A2D000000000000A2B60020441195 -:1047C000000000000000003300204A2D000000001F -:1047D0000000A2BA002044110000000000000034D4 -:1047E00000204A2D000000000000A2BE002044115D -:1047F000000000000000003500204A2D00000000ED -:104800000000A2C200204411000000000000003699 -:1048100000204A2D00000000000000300020062D7E -:1048200000000000000001FF002806210000000039 -:1048300000000000002F0221000000000000000026 -:104840000CE000000000062800000000002102210A -:10485000000000000000000014C000000000060B73 -:104860000004A003006044110000068A0000A003B9 -:10487000002044110000000000000000002048104B -:1048800000000000000000010021062100000000DF -:104890000000000014C00000000006100004A0107A -:1048A000006044110000068A0000A010002044119E -:1048B0000000000000000000002048100000000080 -:1048C000000000010021062100000000000000009F -:1048D000002F022100000000000000000CE000009A -:1048E000000006280004A011006044110000068AA0 -:1048F0000000A01100204411000000000000000092 -:1049000000204810000000000004A01200604411C4 -:104910000000068A0000A0120020441100000000E0 -:104920000000000000204810000000000004A01358 -:10493000006044110000068A0000A013002044110A -:1049400000000000000000000020481000000000EF -:104950000004A014006044110000068A0000A014A6 -:10496000002044110000000000000000002048105A -:10497000000000000004A015006044110000068A39 -:104980000000A015002044110000000000000000FD -:1049900000204810000000000004A0160060441130 -:1049A0000000068A0000A01600204411000000004C -:1049B0000000000000204810000000000004A017C4 -:1049C000006044110000068A0000A0170020441176 -:1049D000000000000000000000204810000000005F -:1049E00000042004006044110000068A0000002C2E -:1049F0000080062D00000000FF0000000020441190 -:104A0000000000000000000000204811000000002D -:104A1000000000010020481100000000000000021A -:104A20000080481100000000000000000EE00000BF -:104A30000000063A000000300020062D00000000B3 -:104A40000000000200280621000000000000000015 -:104A5000002F022100000000000000000CE0000018 -:104A60000000063881000000002044110000000012 -:104A70000000000100204811000000000004200494 -:104A8000006044110000068A000010000020081198 -:104A9000000000000000002B002036220000000073 -:104AA00000000000006000000000063E0000000062 -:104AB00000600000000005C69800000000204411BE -:104AC000000000000000000000804811000000000D -:104AD00000000000C06000000000063E0000000072 -:104AE000C0400400000000010000A2A40020441106 -:104AF000000000000000002200204811000000001B -:104B000089000000002044110000000000000001A6 -:104B1000004048110000062A9700000000204411C0 -:104B2000000000000000000000204811000000000C -:104B30008A00000000204411000000000000000076 -:104B4000004048110000062A00000000006000003C -:104B50000000065900002010002044110000000051 -:104B60000000800000204811000000000001A2A405 -:104B7000C020441100000000000000160060481131 -:104B80000000036E0000201000204411000000000F -:104B9000000100000020481100000000810000001A -:104BA0000020441100000000000000010020481116 -:104BB000000000000000217C0020441100000000E3 -:104BC000098000000020481100000000FFFFFFFFE7 -:104BD00000204811000000000000000000204811E3 -:104BE00000000000000000001700000000000000AE -:104BF0000004217F006044110000068A0000001FAD -:104C000000210230000000000000000014C000007D -:104C1000000000000000000400404C11000006539A -:104C2000000000000040000000000000000000172D -:104C300000201E2D000000000000000400291E2797 -:104C40000000000000000017008036270000000070 -:104C50000000001700201E2D00000000FFFFFFFBDA -:104C600000281E27000000000000001700803627E3 -:104C7000000000000000001700201E2D00000000B2 -:104C80000000000800291E27000000000000001797 -:104C900000803627000000000000001700201E2DB5 -:104CA00000000000FFFFFFF700281E2700000000A3 -:104CB00000000017008036270000000000002010D0 -:104CC0000020441100000000000080000020481176 -:104CD000000000000001A2A4002044110000000018 -:104CE00000000016006048110000036E0000201054 -:104CF00000204411000000000001000000204811C5 -:104D0000000000000000217C002044110000000091 -:104D1000018000000020481100000000FFFFFFFF9D -:104D20000020481100000000000000000020481191 -:104D3000000000000000000017000000000000005C -:104D4000810000000020441100000000000000016C -:104D500000204811000000000004217F0060441181 -:104D60000000068A0000001F002102300000000041 -:104D70000000000014C000000000068900000010C0 -:104D800000404C110000066F00000000C02004002D -:104D9000000000000000000038C00000000000001B -:104DA0000000001D00200A2D000000000000001E71 -:104DB00000200E2D000000000000001F0020122D1A -:104DC00000000000000000200020162D0000000060 -:104DD00000002169002044110000000000000000D4 -:104DE00000204804000000000000000000204805EA -:104DF000000000000000000000204801000000004A -:104E0000CAFEBABE002048110000000000000004E5 -:104E1000003012240000000000000000002F006499 -:104E200000000000000000000CC000000000068828 -:104E30000000000300281A22000000000000000803 -:104E40000022122200000000FFFFF00000281224C0 -:104E50000000000000000000002910C40000000055 -:104E60000000001F00403624000000000000000089 -:104E70000080000000000000000000001AC00000D8 -:104E80000000068A9F00000000204411000000007E -:104E9000CAFEBABE00204811000000000000000059 -:104EA0001AE000000000068D0000000000800000F5 -:104EB00000000000000000001AC000000000068F83 -:104EC0009E0000000020441100000000CAFEBABE8F -:104ED0000020481100000000000000001AE000005F -:104EE00000000692000000000080000000000000AA -:104EF00000000000006000000000000B0000100037 -:104F000000600411000003150000000000200411DF -:104F1000000000000000000000600811000001B265 -:104F20000000225C0020441100000000000000038B -:104F3000002048110000000000002256002044110B -:104F4000000000000000001B0020481100000000CD -:104F50000000A1FC0020441100000000000000013E -:104F600000204811000000000001A1FDC0204411F4 -:104F7000000000000000002100201E2D00000000A5 -:104F80000000001000221E27000000000000002486 -:104F90000020222D000000000000FFFF0028222832 -:104FA0000000000000000000002949070000000088 -:104FB0000000000000204811000000000000002256 -:104FC0000020222D000000000000FFFF0028222802 -:104FD0000000000000000000002949070000000058 -:104FE0000000000000204811000000000000002325 -:104FF00000201E2D000000000000001000221E27CF -:105000000000000000000000002949070000000027 -:1050100000000000004048110000000000000000F7 -:105020000000000000000000000000000000000080 -:105030000000000000000000000000000000000070 -:105040000000000000000000000000000000000060 -:105050000000000000000000000000000000000050 -:105060000000000000000000000000000000000040 -:105070000000000000000000000000000000000030 -:105080000000000000000000000000000000000020 -:105090000000000000000000000000000000000010 -:1050A0000000000000000000000000000000000000 -:1050B00000000000000000000000000000000000F0 -:1050C00000000000000000000000000000000000E0 -:1050D00000000000000000000000000000000000D0 -:1050E00000000000000000000000000000000000C0 -:1050F00000000000000000000000000000000000B0 -:10510000000000000000000000000000000000009F -:10511000000000000000000000000000000000008F -:10512000000000000000000000000000000000007F -:10513000000000000000000000000000000000006F -:10514000000000000000000000000000000000005F -:10515000000000000000000000000000000000004F -:10516000000000000000000000000000000000003F -:10517000000000000000000000000000000000002F -:10518000000000000000000000000000000000001F -:10519000000000000000000000000000000000000F -:1051A00000000000000000000000000000000000FF -:1051B00000000000000000000000000000000000EF -:1051C00000000000000000000000000000000000DF -:1051D00000000000000000000000000000000000CF -:1051E00000000000000000000000000000000000BF -:1051F00000000000000000000000000000000000AF -:10520000000000000000000000000000000000009E -:10521000000000000000000000000000000000008E -:10522000000000000000000000000000000000007E -:10523000000000000000000000000000000000006E -:10524000000000000000000000000000000000005E -:10525000000000000000000000000000000000004E -:10526000000000000000000000000000000000003E -:10527000000000000000000000000000000000002E -:10528000000000000000000000000000000000001E -:10529000000000000000000000000000000000000E -:1052A00000000000000000000000000000000000FE -:1052B000014204FF05BD02500000000001C3016867 -:1052C000043F05BD00000000022502090250015103 -:1052D000000000000223024502A00241000000007D -:1052E00003D705BD05BD05BD000000000646064705 -:1052F000031F05BD0000000005BD05C203200340DB -:1053000000000000032A0282034203340000000070 -:1053100005BD05BD05BD05BD0000000005BD054E70 -:1053200005BD05BD0000000003BA05BD04B8034477 -:10533000000000000497044D043D05BD000000007E -:1053400004CD05BD044104DA00000000044D05044D -:10535000035103750000000005BD05BD05BD05BD79 -:105360000000000005BD05BD05BD05BD0000000035 -:1053700005BD05BD063C05C40000000005BD05BD1A -:10538000000705BD0000000005BD05BD05BD05BD4C -:105390000000000005BD05BD05BD05BD0000000005 -:1053A00003F803ED0408040600000000040E040ADC -:1053B000040C041000000000041C04180424042041 -:1053C00000000000042C0428043404300000000015 -:1053D00005BD05BD043805BD0000000005BD05BDC7 -:1053E00005BD05BD0000000005BD05BD05BD05BD31 -:1053F000000000000002067606940006000000008F -:00000001FF diff --git a/firmware/radeon/RV630_pfp.bin.ihex b/firmware/radeon/RV630_pfp.bin.ihex deleted file mode 100644 index f55292c97b79..000000000000 --- a/firmware/radeon/RV630_pfp.bin.ihex +++ /dev/null @@ -1,145 +0,0 @@ -:1000000000CA040000A00000007E828B007C038BED -:10001000008001B8007C038B00D4401E00EE001E5F -:1000200000CA040000A00000007E828B00C41838C3 -:1000300000CA240000CA2800009581A800C41C3A08 -:1000400000C3C00000CA080000CA0C00007C744B4A -:1000500000C200050099C00000C41C3A007C744C2A -:1000600000C0FFF000042C0400309002007D250049 -:1000700000351402007D350B00255403007CD5802B -:1000800000259C030095C00400D5001B007EDDC147 -:10009000007D9D8000D6801B00D5801B00D4401EB3 -:1000A00000D5401E00D6401E00D6801E00D4801E03 -:1000B00000D4C01E009783D300D5C01E00CA08001C -:1000C0000080001A00CA0C0000E4011E00D4001ECB -:1000D0000080000C00C4183800E4013E00D4001E6B -:1000E0000080000C00C4183800D4401E00EE001E32 -:1000F00000CA040000A00000007E828B00E4011E04 -:1001000000D4001E00D4401E00EE001E00CA0400F1 -:1001100000A00000007E828B00E4013E00D4001E9F -:1001200000D4401E00EE001E00CA040000A0000023 -:10013000007E828B00CA180000D4401E00D5801EAD -:100140000080005300D4007500D4401E00CA08008F -:1001500000CA0C0000CA100000D4801900D4C018D6 -:1001600000D5001700D4801E00D4C01E00D5001E8C -:1001700000E2001E00CA040000A00000007E828B86 -:1001800000CA080000D4806000D4401E0080000037 -:1001900000D4801E00CA080000D4806100D4401E34 -:1001A0000080000000D4801E00CA080000CA0C00B5 -:1001B00000D4401E00D4801600D4C01600D4801E87 -:1001C000008001B800D4C01E00C6084300CA0C005D -:1001D00000CA10000094800400CA140000E420F358 -:1001E00000D4201300D5606500D4E01C00D5201C8D -:1001F00000D5601C008000000006200100C60843F6 -:1002000000CA0C0000CA1000009483F700CA140052 -:1002100000E420F30080007900D4201300C60843D6 -:1002200000CA0C0000CA1000009883EF00CA140036 -:1002300000D400640080008D0000000000C414326F -:1002400000C6184300C4082F0095400500C40C30B8 -:1002500000D4401E0080000000EE001E009583F5D3 -:1002600000C4103100D4403300D5206500D4A01C58 -:1002700000D4E01C00D5201C00E4015E00D4001E68 -:10028000008000000006200100CA1800000A2001BA -:1002900000D6007600C408360098800700C61045D6 -:1002A0000095011000D4001F00D46062008000009F -:1002B00000D4206200CC383500CC1433008401BB5C -:1002C00000D4007200D5401E0080000000EE001E29 -:1002D00000E2001A008401BB00E2001A00CC104BBF -:1002E00000CC0447002C9401007D098B0098400548 -:1002F000007D15CB00D4001A008001B800D4006D39 -:100300000034440100CC0C480098403A00CC2C4A00 -:100310000095800400CC0449008001B800D4001A84 -:1003200000D4C01A00282801008400F000CC10037B -:100330000098801B0004380C008400F000CC1003EF -:100340000098801700043808008400F000CC1003E7 -:100350000098801300043804008400F000CC1003DF -:100360000098801400CC104C009A800900CC144DE9 -:10037000009840DC00D4006D00CC184800D5001A6D -:1003800000D5401A008000C900D5801A0096C0D55B -:1003900000D4006D008001B800D4006E009AC00344 -:1003A00000D4006D00D4006E0080000000EC007FDF -:1003B000009AC0CC00D4006D008001B800D4006E5B -:1003C00000CC140300CC180300CC1C03007D910367 -:1003D000007DD583007D190C0035CC1F0035701FC2 -:1003E000007CF0CB007CD08B00880000007E8E8BE0 -:1003F0000095C00400D4006E008001B800D4001A3B -:1004000000D4C01A00CC080300CC0C0300CC1003AD -:1004100000CC140300CC180300CC1C0300CC240334 -:1004200000CC28030035C41F0036B01F007C704B81 -:100430000034F01F007C704B0035701F007C704B47 -:10044000007D8881007DCCC1007E5101007E9541F8 -:10045000007C9082007CD4C2007C848B009AC00314 -:10046000007C8C8B002C88010098809E00D4006D4D -:100470000098409C00D4006E00CC084C00CC0C4D81 -:1004800000CC104800D4801A00D4C01A00800101AA -:1004900000D5001A00CC083200D40032009482D972 -:1004A00000CA0C0000D4401E0080000000D4001ED2 -:1004B00000E4011E00D4001E00CA080000CA0C009F -:1004C00000CA100000D4401E00CA140000D4801ED0 -:1004D00000D4C01E00D5001E00D5401E00D54034FB -:1004E0000080000000EE001E0028040400E2001A54 -:1004F00000E2001A00D4401A00CA380000CC0803F9 -:1005000000CC0C0300CC0C0300CC0C03009882BD83 -:1005100000000000008401BB00D7A06F0080000035 -:1005200000EE001F00CA040000C2FF0000CC083427 -:1005300000C13FFF007C74CB007CC90B007D010F24 -:10054000009902B0007C738B008401BB00D7A06FC0 -:100550000080000000EE001F00CA080000281900FB -:10056000007D898B009580140028140400CA0C00BB -:1005700000CA100000CA1C0000CA240000E2001FCC -:1005800000D4C01A00D5001A00D5401A00CC1803B8 -:1005900000CC2C0300CC2C0300CC2C03007DA58BBD -:1005A000007D9C4700984297000000000080016198 -:1005B00000D4C01A00D4401E00D4801E0080000069 -:1005C00000EE001E00E4011E00D4001E00D4401EF8 -:1005D00000EE001E00CA040000A00000007E828B16 -:1005E00000E4013E00D4001E00D4401E00EE001EB8 -:1005F00000CA040000A00000007E828B00CA080030 -:1006000000248C06000CCC060098C00600CC104ECE -:100610000099000400D4007300E4011E00D4001E01 -:1006200000D4401E00D4801E0080000000EE001E9A -:1006300000CA080000CA0C000034D01800251001C0 -:100640000095002100C17FFF00CA100000CA1400FD -:1006500000CA180000D4801D00D4C01D007DB18BDD -:1006600000C1420200C2C00100D5801D0034DC0E72 -:10067000007D5D4C007F734C00D7401E00D5001EEE -:1006800000D5401E00C1420000C2C00000099C010C -:100690000031DC10007F5F4C007F734C00042802A7 -:1006A000007D838000D5A86F00D5806600D7401EEE -:1006B00000EC005E00C8240200C82402008001B8DB -:1006C00000D6007600D4401E00D4801E00D4C01E88 -:1006D0000080000000EE001E0080000000EE001F01 -:1006E00000D4001F0080000000D4001F00D4001FB1 -:1006F0000088000000D4001F00000000000000007F -:1007000000000000000000000000000000000000E9 -:1007100000000000000000000000000000000000D9 -:1007200000000000000000000000000000000000C9 -:1007300000000000000000000000000000000000B9 -:1007400000000000000000000000000000000000A9 -:100750000000000000000000000000000000000099 -:100760000000000000000000000000000000000089 -:100770000000000000000000000000000000000079 -:100780000000000000000000000000000000000069 -:100790000000000000000000000000000000000059 -:1007A0000000000000000000000000000000000049 -:1007B0000000000000000000000000000000000039 -:1007C0000000000000000000000000000000000029 -:1007D0000000000000000000000000000000000019 -:1007E0000000000000000000000000000000000009 -:1007F00000000000000000000000000000000000F9 -:1008000000010171000201780003008F0004007FE5 -:10081000000500030006003F000700320008012C1D -:1008200000090046000A0036001001B6001700A2B9 -:100830000022013A00230149002000B400240125D0 -:100840000027004D0028006A002A0060002B00529B -:10085000002F0065003200870034017F003C015604 -:10086000003F00720041018C0044012E00550173CD -:100870000056017A0060000B00610034006200380D -:1008800000630038006400380065003800660038F6 -:10089000006700380068003A00690041006A0048BB -:1008A000006B0048006C0048006D0048006E004876 -:1008B000006F00480000000600000006000000066F -:1008C0000000000600000006000000060000000610 -:1008D0000000000600000006000000060000000600 -:1008E00000000006000000060000000600000006F0 -:1008F00000000006000000060000000600000006E0 -:00000001FF diff --git a/firmware/radeon/RV635_me.bin.ihex b/firmware/radeon/RV635_me.bin.ihex deleted file mode 100644 index ba3a7e632d97..000000000000 --- a/firmware/radeon/RV635_me.bin.ihex +++ /dev/null @@ -1,1345 +0,0 @@ -:1000000000000000C020040000000000000000000C -:1000100000A0000A000000000000FFFF00284621A9 -:100020000000000000000000D900480000000000AF -:1000300000000000C02004000000000000000000DC -:1000400000A0000A000000000000000000E0000026 -:100050000000000000010000C02946200000000050 -:1000600000000000D900480000000000000000006F -:10007000C0200400000000000000000000A0000AF2 -:10008000000000008100000000204411000000007A -:1000900000000001002048110000000000042004BE -:1000A000006044110000068A0000000000600000AB -:1000B0000000062E00000000006000000000064264 -:1000C00000000000C02008000000000000000F0039 -:1000D000002816220000000000000008002116255C -:1000E000000000000000001800203625000000007D -:1000F0008D000000002044110000000000000004FA -:10010000002F022500000000000000000CE00000AD -:1001100000000018004120000040481100000019B4 -:100120000042200000204811000000008E00000066 -:1001300000204411000000000000002800204A2D8B -:1001400000000000900000000020441100000000AA -:100150000000000000204805000000000000000C26 -:1001600000211622000000000000000300281625D0 -:10017000000000000000001900211A220000000009 -:100180000000000400281A26000000000000000003 -:10019000002914C5000000000000001900203625C9 -:1001A0000000000000000000003A140200000000FF -:1001B00000000016002116250000000000000003CA -:1001C00000281625000000000000001700200E2D5A -:1001D00000000000FFFFFFFC00280E2300000000CD -:1001E00000000000002914A3000000000000001718 -:1001F00000203625000000000000800000280E22AC -:10020000000000000000000700220E230000000094 -:10021000000000000029386E0000000020000000EF -:1002200000280E22000000000000000600210E231E -:1002300000000000000000000029386E00000000EF -:100240000000000000220222000000000000000068 -:1002500014E0000000000038000000002EE0000064 -:1002600000000035000000002CE000000000003716 -:100270000000000000400E2D0000003900000008C2 -:1002800000200E2D00000000000000090040122D8B -:10029000000000460000000100400E2D0000003963 -:1002A00000000000C0200C0000000000003FFFFC28 -:1002B0000028122300000000000000020022122487 -:1002C000000000000000001F00211E2300000000AD -:1002D0000000000014E000000000003E00000008E4 -:1002E00000401C11000000410000000D00201E2DE8 -:1002F000000000000000000F00281E270000000082 -:100300000000000300221E27000000007FC0000044 -:1003100000281A23000000000000001400211A2603 -:10032000000000000000000100331A260000000059 -:100330000000000800221A26000000000000000053 -:1003400000290CC700000000000000270020362410 -:100350000000000000007F000028122100000000C3 -:1003600000001400002F0224000000000000000024 -:100370000CE000000000004B0000000100290E23EB -:10038000000000000000000E0020362300000000E6 -:100390000000E0000020441100000000FFF8000011 -:1003A00000294A230000000000000000003A2C024F -:1003B000000000000000000200220E2B00000000E0 -:1003C000FC00000000280E23000000000000000FC9 -:1003D000002036230000000000001FFF00294A23F0 -:1003E000000000000000002700204A2D000000004F -:1003F000000000000020481100000000000000295B -:1004000000200E2D00000000060A020000294A23E9 -:100410000000000000000000002048110000000063 -:100420000000000000204811000000000000000152 -:1004300000210222000000000000000014E0000083 -:1004400000000061000000002EE000000000005FDE -:10045000000000002CE000000000005E0000000032 -:1004600000400E2D000000620000000100400E2D33 -:10047000000000620000000A00200E2D00000000B5 -:100480000000000B0040122D0000006A0000000078 -:10049000C0200C0000000000003FFFFC00281223D9 -:1004A00000000000000000020022122400000000F2 -:1004B0007FC0000000281623000000000000001488 -:1004C0000021162500000000000000010033162561 -:1004D000000000008000000000280E230000000043 -:1004E0000000000000290CA3000000003FFFFC00FA -:1004F00000290E23000000000000001F00211E2321 -:10050000000000000000000014E000000000006D8A -:100510000000010000401C11000000700000000DF0 -:1005200000201E2D00000000000000F000281E2703 -:10053000000000000000000400221E270000000050 -:100540008100000000204411000000000000000DA8 -:100550000020481100000000FFFFF0FF00281A30C3 -:10056000000000000000A02800204411000000004E -:1005700000000000002948E6000000000000A0186C -:1005800000204411000000003FFFFFFF00284A2325 -:10059000000000000000A010002044110000000036 -:1005A00000000000002048040000000000000030AF -:1005B0000020162D00000000000000020029162572 -:1005C0000000000000000030002036250000000080 -:1005D000000000250020162D000000000000000093 -:1005E000002F00A300000000000000000CC000006D -:1005F00000000083000000260020162D00000000EF -:1006000000000000002F00A4000000000000000017 -:100610000CC000000000008400000000004000004A -:100620000000008A000000250020362300000000A2 -:100630000000002600203624000000000000001703 -:1006400000201E2D000000000000000200210227F3 -:10065000000000000000000014E000000000008A1C -:1006600000000000006000000000066500000000BF -:1006700000600000000006590000000200210E2268 -:10068000000000000000000014C000000000008D09 -:1006900000000012C040362000000093000000005F -:1006A0002EE0000000000091000000002CE000009F -:1006B000000000900000000200400E2D000000929B -:1006C0000000000300400E2D000000920000000C0E -:1006D00000200E2D00000000000000120020362334 -:1006E000000000000000000300210E2200000000B6 -:1006F0000000000014C00000000000980000A00CE2 -:10070000002044110000000000000000C02048004C -:100710000000000000000000C0404800000000A0F1 -:100720000000A00C002044110000000000000000A8 -:100730000020481100000000000000002EE0000032 -:100740000000009E000000002CE000000000009D62 -:100750000000000200400E2D0000009F000000037A -:1007600000400E2D0000009F0000000C00200E2D08 -:10077000000000000000000000204803000000000E -:1007800000000000003A0C0200000000003F0000E2 -:1007900000280E23000000000000001000210E239E -:1007A00000000000000000110020362300000000BF -:1007B0000000001E0021022B0000000000000000CD -:1007C00014C00000000000A700000016C020362062 -:1007D000000000000000001F0021022B00000000AC -:1007E0000000000014C00000000000AA0000001576 -:1007F000C0203620000000000000000800210E2B61 -:10080000000000000000007F00280E230000000010 -:1008100000000000002F0223000000000000000084 -:100820000CE00000000000E10000000027000000D4 -:10083000000000000000000000600000000002A3B3 -:1008400000000001002F0223000000000000000053 -:100850000AE00000000000B300000000006000009B -:100860000000013A81000000002044110000000057 -:100870000000000600204811000000000000000CED -:1008800000221E300000000099800000002044116A -:1008900000000000000000040020122D00000000F5 -:1008A00000000008002212240000000000000010D8 -:1008B00000201811000000000000000000291CE4C6 -:1008C0000000000000000000006048070000012F49 -:1008D0009B00000000204411000000000000000008 -:1008E00000204802000000009C000000002044118D -:1008F00000000000000000000033146F0000000042 -:100900000000000100333E23000000000000000052 -:10091000D9004800000000000000000000203C0555 -:1009200000000000810000000020441100000000D1 -:100930000000000E00204811000000000000000030 -:1009400000201010000000000000E007002044110B -:10095000000000000000000F0021022B000000003A -:100960000000000014C00000000000CB00F8FF08E9 -:1009700000204811000000009800000000404811CD -:10098000000000DC000000F000280E220000000043 -:10099000000000A0002F0223000000000000000063 -:1009A0000CC00000000000DA0000001100200E2D35 -:1009B0000000000000000001002F022300000000E2 -:1009C000000000000CE00000000000D50000000264 -:1009D000002F022300000000000000000CE00000D7 -:1009E000000000D400003F0000400C11000000D6C1 -:1009F00000001F0000400C11000000D600000F0096 -:100A000000200C11000000000038000900294A23D2 -:100A1000000000003F00000000280E2B0000000036 -:100A20000000000200220E2300000000000000076A -:100A300000494A23000000DC00380F09002048115B -:100A400000000000680000070020481100000000BE -:100A50000000000800214A270000000000000000FC -:100A60000020481100000000060A020000294A2464 -:100A700000000000000000000020481100000000FD -:100A80000000000000204811000000000000A20249 -:100A9000002044110000000000FF000000280E228A -:100AA000000000000000008000294A230000000030 -:100AB0000000002700200E2D00000000000000268E -:100AC0000020122D0000000000000000002F008315 -:100AD00000000000000000000CE00000000000EA40 -:100AE00000000000006000000000065F0000000041 -:100AF00000400000000000EB00000000006000006B -:100B000000000662000000070020222D0000000007 -:100B10000000000500220E2200000000001000006E -:100B200000280E23000000000000000000292068BB -:100B30000000000000000000003A0C02000000006D -:100B4000000000EF00280E2300000000000000005D -:100B500000292068000000000000001700200E2D72 -:100B6000000000000000000300210223000000003C -:100B70000000000014E00000000000F80000000B7E -:100B800000210228000000000000000014C0000046 -:100B9000000000F8000004000029222800000000E6 -:100BA0000000001400203628000000000000001C97 -:100BB00000210E22000000000000000014C0000010 -:100BC000000000FD0000A30C002044110000000004 -:100BD0000000000000204811000000000000001E7E -:100BE00000210E22000000000000000014C00000E0 -:100BF0000000010B0000A30F0020441100000000C2 -:100C00000000001100200E2D000000000000000177 -:100C1000002F022300000000000000000CC00000B4 -:100C200000000104FFFFFFFF004048110000010B1E -:100C300000000002002F022300000000000000005E -:100C40000CC00000000001070000FFFF0040481139 -:100C50000000010B00000004002F02230000000030 -:100C6000000000000CC000000000010A000000FFAE -:100C7000004048110000010B000000010020481155 -:100C8000000000000002C400002044110000000029 -:100C90000000001F00210E220000000000000000E4 -:100CA00014C00000000001120000001040210E20BE -:100CB00000000000000000130020362300000000A8 -:100CC0000000001840224A20000000000000001030 -:100CD000C0424A20000001140000000000200C1156 -:100CE0000000000000000013002036230000000078 -:100CF000000000000020481100000000000000007B -:100D000000204811000000000000000A002010111F -:100D10000000000000000000002F0224000000007E -:100D2000000000000CE000000000011B00000000BB -:100D300000204811000000000000000100531224B0 -:100D400000000117FFBFFFFF00283A2E000000003F -:100D50000000001B00210222000000000000000033 -:100D600014C000000000012E81000000002044118A -:100D7000000000000000000D0020481100000000ED -:100D80000000001800220E3000000000FC000000EF -:100D900000280E2300000000810000000020441104 -:100DA000000000000000000E0020481100000000BC -:100DB0000000000000201010000000000000E00E05 -:100DC000002044110000000007F8FF08002048112F -:100DD000000000000000000000294A23000000007D -:100DE0000000001C00201E2D000000000000000874 -:100DF00000214A27000000000000000000204811E8 -:100E000000000000060A020000294A240000000039 -:100E10000000000000204811000000000000000059 -:100E200000204811000000000000000000800000C9 -:100E300000000000810000000020441100000000BC -:100E40000000000100204811000000000000217C8B -:100E50000020441100000000008000000020481124 -:100E60000000000000000000002048060000000014 -:100E70000000000800214A270000000000000000D8 -:100E800017000000000000000004217F00604411F2 -:100E90000000068A0000001F002102300000000050 -:100EA0000000000014C000000000068900000004DB -:100EB00000404C1100000135810000000020441169 -:100EC00000000000000000010020481100000000A8 -:100ED000000021F800204411000000000000001C68 -:100EE0000020481100000000000421F900604411B6 -:100EF0000000068A000000110021023000000000FE -:100F00000000000014E000000000013C00000000B0 -:100F100000800000000000000000000000600000F1 -:100F20000000000B00000000006004110000031529 -:100F3000000000000020041100000000000000007C -:100F400000600811000001B2000000000060000015 -:100F5000000001600000FFFF40280E20000000009C -:100F600000000010C0211220000000000000FFFF60 -:100F7000402806200000000000000010C0210A20C8 -:100F800000000000000000000034146100000000B8 -:100F90000000000000741882000002BB0001A1FDE7 -:100FA00000604411000002E000003FFF002F022F0C -:100FB00000000000000000000CC00000000001471D -:100FC00000000000C040040000000001000000001C -:100FD000006000000000000B000000000060041131 -:100FE00000000315000000000020041100000000B4 -:100FF0000000000000600811000001B200003FFF87 -:10100000002F022F00000000000000000CE0000094 -:10101000000000000000000000600000000001600F -:101020000000001040210E20000000000000FFFF23 -:10103000C0281220000000000000001040211620EF -:10104000000000000000FFFFC0681A20000002BB83 -:101050000001A1FD00604411000002E000003FFF1C -:10106000002F022F00000000000000000CC0000054 -:101070000000015800000000C04004000000000112 -:101080000000225C0020441100000000000000016C -:1010900000300A2F000000000000000100210A2299 -:1010A000000000000000000300384A220000000099 -:1010B0000000225600204411000000000000001A29 -:1010C00000204811000000000000A1FC0020441195 -:1010D0000000000000000001008048110000000036 -:1010E00000000000006000000000000B0000000095 -:1010F000006000000000018F0000000000600000A0 -:10110000000001A000003FFF002F022F00000000A0 -:10111000000000000CE000000000000000000000E3 -:1011200000202C0800000000000000000020241116 -:101130000000000000000000002028110000000056 -:10114000000022560020441100000000000000169C -:1011500000204811000000000000225C0020441123 -:101160000000000000000003002048110000000003 -:1011700093800000002044110000000000000002E5 -:1011800000221E290000000000000000007048EB53 -:101190000000019C0000000000600000000002BB95 -:1011A00000000001403306200000000000000000A5 -:1011B000C03024090000000000003FFF002F022F74 -:1011C00000000000000000000CE000000000000033 -:1011D0000000000000600000000002A3000000000A -:1011E000002F022100000000000000000AE00000C3 -:1011F0000000018100000000006000000000013AD2 -:101200000000000000400000000001869500000082 -:10121000002044110000000000000000002F022107 -:1012200000000000000000000CE00000000001864B -:1012300000000000C0204800000000000000000185 -:10124000005306210000018292000000002044119A -:101250000000000000000000C0604800000001978E -:101260000001A1FD00204411000000000000001159 -:101270000020062D00000000000000000078042A75 -:10128000000002FB00000000002028090000000010 -:1012900000003FFF002F022F0000000000000000B0 -:1012A0000CC000000000017400000000C0400400F9 -:1012B000000000010000021000600411000003158E -:1012C00000003FFF002F022F000000000000000080 -:1012D0000CE000000000019400000015C020362042 -:1012E0000000000000000016C020362000000000B2 -:1012F0003F800000002004110000000046000000B4 -:1013000000600811000001B2000000000080000031 -:10131000000000000000A1FC0020441100000000BB -:1013200000003FFF002F022F00000000000000001F -:101330000CC000000000019B00000001008048116B -:1013400000000000000000210080481100000000A3 -:101350000000FFFF40280E200000000000000010E9 -:10136000C0211220000000000000FFFF40281620CE -:101370000000000000000010C0811A2000000000E2 -:101380008100000000204411000000000000000661 -:1013900000204811000000000000000800221E305C -:1013A000000000000000002900201A2D00000000AD -:1013B0000000E0000020441100000000FFFBFF09D6 -:1013C00000204811000000000000000F0020222D26 -:1013D0000000000000001FFF00294A280000000054 -:1013E000000000060020222D000000000000000088 -:1013F000002920E80000000000000000002048084C -:101400000000000000000000002048110000000063 -:10141000060A020000294A26000000000000000021 -:1014200000204811000000000000000000204811CA -:101430000000000000000100002018110000000062 -:101440000000000800621E280000012F00000008B4 -:1014500000822228000000000002C0000020441189 -:10146000000000000000001500600E2D000001BD0E -:101470000000001600600E2D000001BD0000C00835 -:1014800000204411000000000000001700200E2D75 -:10149000000000000000000014C00000000001B9BE -:1014A0000000000000200411000000000000000007 -:1014B0000020480100000000390000000020481111 -:1014C00000000000000000000020481100000000A3 -:1014D000000000000080480200000000000000182A -:1014E00000202E2D0000000000000000003B0D63D6 -:1014F000000000000000000800224A230000000055 -:101500000000001000224A23000000000000001824 -:1015100000224A2300000000000000000080480371 -:101520000000000000000000006000000000000B50 -:10153000000010000060041100000315000000000E -:1015400000200411000000000000000000600811ED -:10155000000001B2000000070021062F000000007B -:101560000000001300200A2D000000000000000110 -:1015700000202C11000000000000FFFF4028222066 -:10158000000000000000000F0026222800000000DC -:101590000000001040212620000000000000000F85 -:1015A000002626290000000000000000002028027C -:1015B000000000000000225600204411000000003E -:1015C0000000001B00204811000000000000000087 -:1015D000002F022100000000000000000CE00000CD -:1015E000000001E00000225C002044110000000027 -:1015F0000000008100204811000000000000A1FC54 -:1016000000204411000000000000000100204811EB -:10161000000000000000008000201C1100000000FD -:1016200000000000002F0227000000000000000062 -:101630000CE00000000001DC000000000060000081 -:10164000000001E90000000100531E27000001D83E -:101650000000000100202C11000000000000001F0D -:1016600000280A22000000000000001F00282A2A8B -:10167000000000000000000100530621000001D11D -:101680000000225C00204411000000000000000265 -:1016900000304A2F000000000000A1FC002044118F -:1016A00000000000000000010020481100000000C0 -:1016B0000000000100301E2F0000000000000000AC -:1016C000002F022700000000000000000CE00000D6 -:1016D000000000000000000000600000000001E9C0 -:1016E0000000000100531E27000001E50000FFFF7D -:1016F00040280E20000000000000000F00260E23EE -:101700000000000000000010C021122000000000B6 -:101710000000000F0026122400000000000000005E -:1017200000201411000000000000000000601811EB -:10173000000002BB0001A1FD0020441100000000D8 -:1017400000000000002F022B00000000000000003D -:101750000CE00000000001F8000000100022162834 -:1017600000000000FFFF0000002816250000000018 -:101770000000FFFF00281A29000000000000000000 -:10178000002948C500000000000000000020480AB1 -:10179000000000000000000000202C1100000000EC -:1017A000000000100022162300000000FFFF0000D0 -:1017B00000281625000000000000FFFF00281A2462 -:1017C0000000000000000000002948C500000000E3 -:1017D0000000000000731503000002050000000077 -:1017E0000020180500000000000000000073152410 -:1017F0000000020500000000002D14C500000000DC -:1018000000000000003008A20000000000000000FE -:101810000020480200000000000000000020280214 -:101820000000000000000000002020030000000075 -:101830000000000000802404000000000000000FF1 -:1018400000210225000000000000000014C000007C -:101850000000068900000000002B140500000000B5 -:1018600000000001009016250000000000000000AC -:10187000006000000000000B000000000060041188 -:10188000000003150000000000200411000000000B -:101890000000000000600811000001B200002256A4 -:1018A00000204411000000000000001A00294A2214 -:1018B0000000000000000000C02000000000000048 -:1018C00000003FFF002F022F00000000000000007A -:1018D0000CE000000000000000000000C020040038 -:1018E000000000000000225C002044110000000005 -:1018F0000000000300384A21000000000000A1FCA5 -:1019000000204411000000000000000100204811E8 -:10191000000000000000FFFF40281220000000002F -:1019200000000010C0211A20000000000000FFFF8E -:1019300040280E200000000000000010C0211620EA -:10194000000000000000000000741465000002BBED -:101950000001A1FD00604411000002E00000000150 -:10196000003306210000000000000000002F0221CB -:1019700000000000000000000CC000000000021980 -:1019800000003FFF002F022F0000000000000000B9 -:101990000CC000000000021200000000C040040063 -:1019A000000000010000000000600000000006428E -:1019B000000000000040040F0000021300000000BF -:1019C000006000000000062E000000000060000023 -:1019D0000000064200000210006004110000031520 -:1019E0000000000000600000000001A000000000F6 -:1019F000006000000000019C00000000006000008A -:101A0000000002BB0000000000600000000002A314 -:101A1000938000000020441100000000000000003E -:101A2000002048080000000000000000002F022FE6 -:101A300000000000000000000AE000000000023288 -:101A400000000000006000000000013A00000000FB -:101A50000040000000000236950000000020441104 -:101A60000000000000000000002F022F0000000016 -:101A7000000000000CE00000000002360000000042 -:101A8000C0404800000002339200000000204411D2 -:101A90000000000000000000C0204800000000001E -:101AA0000000225600204411000000000000001633 -:101AB00000204811000000000000225C00204411BA -:101AC000000000000000000300204811000000009A -:101AD0000000A1FC002044110000000000000001F3 -:101AE00000204811000000000001A1FD0020441169 -:101AF000000000000000000000600411000002FB74 -:101B000000000000C04004000000000100000000D0 -:101B1000006000000000062E0000A00C0020441110 -:101B20000000000000000000C0204800000000008D -:101B300000000000C040480000000000000000005D -:101B4000006000000000000B0000001840210A2087 -:101B50000000000000000003002F0222000000002F -:101B6000000000000AE000000000024C0000001429 -:101B70000020222D00000000000801010029222879 -:101B800000000000000000140020362800000000C3 -:101B90000000A30C00204411000000000000000021 -:101BA000C02048000000000000000000C0204800E5 -:101BB0000000000000000000C0404800000002518A -:101BC00000000000006000000000000B000000109A -:101BD00000600411000003153F8000000020041184 -:101BE000000000000000000000600811000001B2C9 -:101BF0000000225C002044110000000000000003EF -:101C000000204811000000000000000000600000FB -:101C10000000027C0000001700201E2D00000000C4 -:101C20000000000100211E2700000000000000004D -:101C300014E000000000026A0000001200201E2DC7 -:101C4000000000000000FFFF00281E270000000029 -:101C50000000000000341C2700000000000000000D -:101C600012C000000000025F0000000000201C11F4 -:101C70000000000000000000002F00E50000000050 -:101C80000000000008C00000000002620000000028 -:101C900000201407000000000000001200201E2D8C -:101CA000000000000000001000211E2700000000BE -:101CB0000000000000341C4700000000000000008D -:101CC00012C00000000002670000000000201C118C -:101CD0000000000000000000002F00E600000000EF -:101CE0000000000008C000000000026A00000000C0 -:101CF0000020180700000000000000000060000045 -:101D0000000002C100002256002044110000000023 -:101D1000000000000034202300000000000000004C -:101D200012C00000000002720000000000342044D5 -:101D3000000000000000000012C00000000002715E -:101D40000000001600404811000002760000001854 -:101D500000404811000002760000000000342044DA -:101D6000000000000000000012C00000000002752A -:101D70000000001700404811000002760000001922 -:101D800000204811000000000000A1FC00204411C8 -:101D900000000000000000010020481100000000C9 -:101DA0000001A1FD00604411000002E900003FFFB6 -:101DB000002F022F00000000000000000CC00000F7 -:101DC0000000025600000000C040040000000001B6 -:101DD0000000001040210620000000000000FFFF6E -:101DE000C0280A20000000000000001040210E2042 -:101DF000000000000000FFFFC028122000000000CB -:101E00000000001040211620000000000000FFFF2D -:101E1000C0881A200000000081000000002044114A -:101E20000000000000000001002048110000000038 -:101E300000042004006044110000068A0000000035 -:101E4000006000000000062E00000000C0600000DE -:101E5000000002A30000000500200A2D0000000081 -:101E60000000000800220A22000000000000002BF1 -:101E700000201A2D000000000000001C00201E2D74 -:101E8000000000000000700000281E270000000075 -:101E90000000000000311CE6000000000000002AE5 -:101EA00000201A2D000000000000000C00221A265D -:101EB0000000000000000000002F00E6000000000D -:101EC0000000000006E00000000002920000000098 -:101ED00000201C11000000000000000000200C1178 -:101EE000000000000000002B00203623000000004E -:101EF0000000001000201811000000000000000089 -:101F000000691CE20000012F9380000000204411B2 -:101F10000000000000000000002048070000000052 -:101F200095000000002044110000000000000000A7 -:101F3000002F022F00000000000000000CE0000055 -:101F40000000029D0000000100333E2F0000000051 -:101F500000000000D90048000000000092000000CE -:101F6000002044110000000000000000C0204800D4 -:101F7000000000000000001C0040362700000000A8 -:101F80000000000CC0220A20000000000000002910 -:101F9000002036220000000000000028C04036204B -:101FA000000000000000A2A4002044110000000076 -:101FB000000000090020481100000000A1000000FE -:101FC00000204411000000000000000100804811C2 -:101FD000000000000000002100201E2D0000000075 -:101FE00000000000002C1CE30000000000000021A5 -:101FF00000203627000000000000002200201E2DD7 -:102000000000000000000000002C1CE400000000A4 -:1020100000000022002036270000000000000023FE -:1020200000201E2D0000000000000000003120A351 -:102030000000000000000000002D1D07000000004F -:1020400000000023002036270000000000000024CC -:1020500000201E2D0000000000000000003120C400 -:102060000000000000000000002D1D07000000001F -:10207000000000240080362700000000000000213E -:10208000002036230000000000000022002036243B -:10209000000000000000000000311CA30000000050 -:1020A0000000002300203627000000000000000090 -:1020B00000311CC40000000000000024008036270E -:1020C000000000000000001A002036270000000079 -:1020D0000000001B00203628000000000000001750 -:1020E00000201E2D00000000000000020021022739 -:1020F000000000000000000014C00000000002DC2E -:102100000000000000400000000002D90000001A9A -:1021100000203627000000000000001B00203628A9 -:10212000000000000000001700201E2D000000002D -:102130000000000200210227000000000000000053 -:1021400014E00000000002D9000000030021022773 -:10215000000000000000000014E00000000002DCAD -:102160000000002300201E2D0000000000000000E1 -:10217000002E00E1000000000000000002C000008E -:10218000000002DC0000002100201E2D00000000E5 -:1021900000000000003120A100000000000000004D -:1021A000002E00E8000000000000000006C0000053 -:1021B000000002DC0000002400201E2D00000000B2 -:1021C00000000000002E00E20000000000000000FF -:1021D00002C00000000002DC0000002200201E2DD2 -:1021E0000000000000000000003120C200000000DC -:1021F00000000000002E00E80000000000000000C9 -:1022000006C00000000002DC0000000000600000CA -:10221000000006650000000000600000000002B53C -:102220000000000000400000000002DE000000008E -:1022300000600000000002B5000000000060000027 -:102240000000065C0000000000400000000002DE0C -:102250000000000000600000000002A70000000075 -:1022600000400000000002DE0000001A00201E2DC9 -:10227000000000000000001B0080222D0000000074 -:102280000000001000221E230000000000000000DB -:1022900000294887000000000000000000311CA356 -:1022A000000000000000001000221E2700000000B7 -:1022B0000000000000294887000000000000001016 -:1022C00000221E230000000000000000003120C496 -:1022D000000000000000FFFF00282228000000008E -:1022E0000000000000894907000000000000001005 -:1022F00000221E2300000000000000000029488783 -:10230000000000000000001000221E21000000005C -:102310000000000000294847000000000000000005 -:1023200000311CA3000000000000001000221E2746 -:1023300000000000000000000029488700000000A5 -:102340000000000000311CA100000000000000108F -:1023500000221E270000000000000000002948475E -:10236000000000000000001000221E2300000000FA -:1023700000000000003120C4000000000000FFFF4A -:102380000028222800000000000000000029490762 -:10239000000000000000001000221E2100000000CC -:1023A00000000000003120C2000000000000FFFF1C -:1023B00000282228000000000000000000894907D2 -:1023C000000000000000001000221E23000000009A -:1023D0000000000000294887000000000000000104 -:1023E00000220A210000000000000000003308A2C3 -:1023F000000000000000001000221E22000000006B -:102400000000001000212222000000000000000057 -:1024100000294907000000000000000000311CA353 -:10242000000000000000001000221E270000000035 -:1024300000000000002948870000000000000001A3 -:1024400000220A210000000000000000003008A265 -:10245000000000000000001000221E22000000000A -:1024600000000010002122220000000000000000F7 -:1024700000294907000000000000001000221E2370 -:102480000000000000000000003120C40000000037 -:102490000000FFFF002822280000000000000000CC -:1024A000002949070000000000000000003808C5AE -:1024B00000000000000000000030084100000000A3 -:1024C0000000000100220A220000000000000000BD -:1024D000003308A2000000000000001000221E22AD -:1024E0000000000000000010002122220000000077 -:1024F00000000000008949070000000000000017EC -:102500000020222D000000000000000014C0000088 -:1025100000000318FFFFFFEF002806210000000065 -:10252000000000140020222D000000000000F8E050 -:1025300000204411000000000000000000294901B3 -:1025400000000000000000000089490100000000B8 -:102550000000000000204811000000000000000002 -:102560000020481100000000060A02000080481107 -:102570000000000000000000C0200000000000007B -:1025800097000000C020441100000000000000007F -:10259000C0204811000000008A0000000020441103 -:1025A00000000000000000000020481100000000B2 -:1025B0000000225C00204411000000000000000028 -:1025C000C0204800000000000000A1FC00204411D1 -:1025D0000000000000000000C020480000000000D3 -:1025E00000000000C0200400000000000000000007 -:1025F00000A0000A00000000970000000020441125 -:102600000000000000000000002048110000000051 -:102610008A000000002044110000000000000000BB -:1026200000204811000000000000225C002044113E -:102630000000000000000000C02048000000000072 -:102640000000A1FC00204411000000000000000078 -:10265000C02048000000000000000000C02004006E -:10266000000000000000000000A0000A00000000C0 -:10267000970000000020441100000000000000004E -:1026800000204811000000008A00000000204411D2 -:1026900000000000000000000020481100000000C1 -:1026A0000000225C00204411000000000000000037 -:1026B000C0204800000000000000A1FC00204411E0 -:1026C0000000000000000000C020480000000000E2 -:1026D0000001A1FD002044110000000000000000E6 -:1026E000D90048000000000000000000C0200400E5 -:1026F000000000000000000000A0000A0000000030 -:1027000000002257002044110000000000000003D8 -:10271000C0484A20000000000000225D0020441153 -:102720000000000000000000C04048000000000061 -:1027300000000000006000000000064200000000F1 -:10274000C0200800000000000000225C00204411AE -:10275000000000000000000300384A2200000000D2 -:102760000000A1FC00204411000000000000000057 -:10277000C0204800000000000001A1FD002044111D -:102780000000000000000000002F022200000000F6 -:10279000000000000CE0000000000000000000004D -:1027A00040204800000000000000000140304A20A6 -:1027B0000000000000000002C0304A2000000000BD -:1027C0000000000100530A220000034B0000003FFC -:1027D000C0280A20000000008100000000204411F1 -:1027E000000000000000000100204811000000006F -:1027F000000021F800204411000000000000001833 -:102800000020481100000000000421F9006044117C -:102810000000068A000000110021023000000000C4 -:102820000000000014E00000000003540000001449 -:10283000002F022200000000000000000CC0000079 -:10284000000003640000201000204411000000007C -:102850000000800000204811000000000001A2A438 -:102860000020441100000000000000000060480249 -:102870000000036E00002100002044110000000051 -:1028800000000000C0204800000000000000000020 -:10289000C02048000000000000000000C0204800E8 -:1028A0000000000000000000C040480000000000E0 -:1028B00000000004002F02220000000000000000C1 -:1028C0000CC000000000036A00002010002044112A -:1028D00000000000000080000020481100000000FF -:1028E0000001A2A40020441100000000000000002C -:1028F000004048020000035F00000028002F022271 -:1029000000000000000000000CC00000000005BD39 -:102910000001A2A4002044110000000000000000FB -:10292000004048020000035F0000002C0020362613 -:102930000000000000000049002018110000000005 -:102940000000003F002048110000000000000001CE -:1029500000331A260000000000000000002F0226AD -:1029600000000000000000000CC000000000037028 -:102970000000002C00801A2D000000000000003F25 -:10298000C0280A200000000000000015002F0222CD -:1029900000000000000000000CE0000000000386C2 -:1029A00000000006002F02220000000000000000CE -:1029B0000CE00000000003B100000016002F02220E -:1029C00000000000000000000CE00000000003B563 -:1029D00000000020002F0222000000000000000084 -:1029E0000CE000000000039C0000000F002F0222FA -:1029F00000000000000000000CE00000000003A840 -:102A000000000010002F0222000000000000000063 -:102A10000CE00000000003A80000001E002F0222AE -:102A200000000000000000000CE000000000039027 -:102A30000000A2A4002044110000000000000000DB -:102A400000404802000000000800000000290A229F -:102A5000000000000000000340210E2000000000E4 -:102A60000000000CC021122000000000000800003F -:102A7000002812240000000000000014C0221620CC -:102A80000000000000000000002914A40000000065 -:102A90000000A2A40020441100000000000000007B -:102AA000002948A2000000000000A1FE00204411FF -:102AB000000000000000000000404803000000008B -:102AC000810000000020441100000000000000010F -:102AD0000020481100000000000021F800204411EF -:102AE0000000000000000016002048110000000057 -:102AF000000421F9006044110000068A000000155E -:102B000000210230000000000000000014E000007E -:102B1000000003920000210E00204411000000007C -:102B200000000000C020480000000000000000007D -:102B3000C0204800000000000000A2A400204411B2 -:102B400000000000000000000040480200000000FB -:102B5000810000000020441100000000000000017E -:102B60000020481100000000000021F8002044115E -:102B700000000000000000170020481100000000C5 -:102B8000000421F9006044110000068A00000003DF -:102B900000210230000000000000000014E00000EE -:102BA0000000039E000021080020441100000000E6 -:102BB00000000000C02048000000000000000000ED -:102BC000C0204800000000000000A2A40020441122 -:102BD000000000000000000000404802000000006B -:102BE0000000A2A40020441100000000000000002A -:102BF0000020480200000000800000000020441176 -:102C0000000000000000000000204811000000004B -:102C100081000000002044110000000000000010AE -:102C200000204811000000000000000000200010FB -:102C3000000000000000000014C00000000003AE0F -:102C40000000000000400000000000000000201014 -:102C50000020441100000000000080000020481106 -:102C6000000000000001A2A40020441100000000A8 -:102C70000000000600404811000000000000201085 -:102C800000204411000000000000800000204811D6 -:102C9000000000000001A2A4002044110000000078 -:102CA00000000016006048110000036E00000000E4 -:102CB000004000000000000000000000C0200800EC -:102CC0000000000000000000C0200C000000000018 -:102CD0000000001D00210223000000000000000091 -:102CE00014E00000000003CE810000000020441129 -:102CF000000000000000000100204811000000005A -:102D0000000021F80020441100000000000000181D -:102D10000020481100000000000421F90060441167 -:102D20000000068A000000110021023000000000AF -:102D30000000000014E00000000003C000002100BB -:102D400000204411000000000000000000204802A4 -:102D50000000000000000000002048030000000008 -:102D6000BABECAFE0020481100000000CAFEBABE6A -:102D70000020481100000000000020100020441135 -:102D8000000000000000800000204811000000004A -:102D90000000A2A400204411000000000000000474 -:102DA0000040481100000000000021700020441184 -:102DB00000000000000000000020480200000000A9 -:102DC0000000000000204803000000008100000017 -:102DD00000204411000000000000000A00204811FB -:102DE00000000000000000000020001000000000B3 -:102DF0000000000014C00000000003D38C0000009D -:102E00000020441100000000CAFEBABE0040481174 -:102E100000000000810000000020441100000000BC -:102E200000000001002048110000000000003FFFEA -:102E300040280A20000000008000000040280E20EA -:102E40000000000040000000C02812200000000028 -:102E500000040000006946220000068A000000000D -:102E6000002014100000000000000000002F0223CA -:102E700000000000000000000CC00000000003E1A2 -:102E800000000000C0401800000003E400003FFF05 -:102E9000C0281A2000000000000400000069462637 -:102EA0000000068A0000000000201810000000004A -:102EB00000000000002F02240000000000000000BD -:102EC0000CC00000000003E700000000C0401C0030 -:102ED000000003EA00003FFFC0281E2000000000A1 -:102EE00000040000006946270000068A0000000078 -:102EF00000201C1000000000000000000020440220 -:102F00000000000000000000002820C500000000B4 -:102F100000000000004948E800000000A580000013 -:102F200000200811000000000000200000200C110B -:102F30000000000083000000006044110000041243 -:102F4000000000000020440200000000000000001B -:102F5000C0204800000000000000000040204800A1 -:102F6000000000000000001FC0210220000000003F -:102F70000000000014C00000000003F70000201053 -:102F800000204411000000000000800000204811D3 -:102F9000000000000000FFFFC0481220000003FFF7 -:102FA000A780000000200811000000000000A00021 -:102FB00000200C110000000083000000006044119C -:102FC0000000041200000000002044020000000085 -:102FD00000000000C02048000000000000000000C9 -:102FE000C0204800000000000000FFFFC0281220A1 -:102FF00000000000830000000020441100000000D9 -:103000000000000000304883000000008400000041 -:10301000002044110000000000000000C020480013 -:1030200000000000000000001D0000000000000083 -:103030008300000000604411000004120000000042 -:10304000C040040000000001A98000000020081119 -:10305000000000000000C00000400C11000003FA56 -:10306000AB80000000200811000000000000F8E024 -:1030700000400C11000003FAAD8000000020081190 -:10308000000000000000F88000400C11000003FA6E -:10309000B380000000200811000000000000F3FCD5 -:1030A00000400C11000003FAAF800000002008115E -:1030B000000000000000E00000400C11000003FAD6 -:1030C000B180000000200811000000000000F000A6 -:1030D00000400C11000003FA83000000002044119E -:1030E00000000000000021480020481100000000FE -:1030F00084000000002044110000000000000000D7 -:10310000C020480000000000000000001D0000007A -:10311000000000000000000000800000000000002F -:1031200001182000C0304620000000000000000010 -:10313000D90048000000000000000000C02004008A -:10314000000000000000000000A0000A00000000D5 -:103150000218A000C030462000000000000000005F -:10316000D90048000000000000000000C02004005A -:10317000000000000000000000A0000A00000000A5 -:103180000318C000C030462000000000000000000E -:10319000D90048000000000000000000C02004002A -:1031A000000000000000000000A0000A0000000075 -:1031B0000418F8E0C03046200000000000000000C5 -:1031C000D90048000000000000000000C0200400FA -:1031D000000000000000000000A0000A0000000045 -:1031E0000518F880C03046200000000000000000F4 -:1031F000D90048000000000000000000C0200400CA -:10320000000000000000000000A0000A0000000014 -:103210000618E000C030462000000000000000005A -:10322000D90048000000000000000000C020040099 -:10323000000000000000000000A0000A00000000E4 -:103240000718F000C0304620000000000000000019 -:10325000D90048000000000000000000C020040069 -:10326000000000000000000000A0000A00000000B4 -:103270000818F3FCC03046200000000000000000E9 -:10328000D90048000000000000000000C020040039 -:10329000000000000000000000A0000A0000000084 -:1032A0000000003000200A2D000000000000000097 -:1032B000C0290C4000000000000000300020362330 -:1032C0000000000000000000C0200400000000001A -:1032D0000000000000A0000A0000000086000000BE -:1032E00000204411000000000000000000404801E0 -:1032F0000000000085000000C02044110000000014 -:103300000000000000404801000000000000217C97 -:10331000002044110000000000000000C020480010 -:103320000000000000000000C02048000000000075 -:1033300000000000C02048000000000081000000E4 -:10334000002044110000000000000001002048118E -:103350000000000000000000C02008000000000085 -:103360000000000017000000000000000004217FA2 -:10337000006044110000068A0000001F0021023096 -:10338000000000000000000014C000000000000069 -:103390000000000000404C02000004480000000053 -:1033A000C0200C000000000000000000C020100041 -:1033B0000000000000000000C02014000000000019 -:1033C00000000000C0201800000000000000000005 -:1033D000C0201C000000000000007F0000280A211F -:1033E0000000000000004500002F02220000000045 -:1033F000000000000CE00000000004560000000087 -:10340000C0202000000000000000000017000000A5 -:10341000000000000000001000280A230000000047 -:1034200000000010002F0222000000000000000039 -:103430000CE000000000045E810000000020441148 -:103440000000000000000001002048110000000002 -:1034500000040000006946240000068A0000000005 -:1034600000400000000004638100000000204411BF -:1034700000000000000000000020481100000000D3 -:103480000000216D00204411000000000000000039 -:103490000020480400000000000000000060480513 -:1034A0000000068F00000000002824F0000000004B -:1034B0000000000700280A230000000000000001AF -:1034C000002F022200000000000000000AE00000BF -:1034D0000000046A00000000002F00C90000000086 -:1034E0000000000004E00000000004830000000071 -:1034F000004000000000049000000002002F0222A3 -:1035000000000000000000000AE000000000046F5E -:1035100000000000002F00C90000000000000000B3 -:1035200002E00000000004830000000000400000F2 -:103530000000049000000003002F022200000000A1 -:10354000000000000AE00000000004740000000019 -:10355000002F00C900000000000000000CE0000087 -:103560000000048300000000004000000000049000 -:1035700000000004002F02220000000000000000F4 -:103580000AE000000000047900000000002F00C9DC -:1035900000000000000000000AE0000000000483BA -:1035A0000000000000400000000004900000000542 -:1035B000002F022200000000000000000AE00000CE -:1035C0000000047E00000000002F00C90000000081 -:1035D0000000000006E0000000000483000000007E -:1035E000004000000000049000000006002F0222AE -:1035F00000000000000000000AE00000000004835A -:1036000000000000002F00C90000000000000000C2 -:1036100008E00000000004830000000000400000FB -:103620000000049000007F0000280A210000000034 -:1036300000004500002F02220000000000000000F2 -:103640000AE00000000000000000000800210A233A -:10365000000000000000000014C000000000048D05 -:10366000000021690020441100000000000000005B -:10367000C02048000000000000000000C0204800FA -:103680000000000000000000C02048000000000012 -:10369000CAFEBABE00404811000000000000000051 -:1036A000C02044000000000000000000C020000016 -:1036B0000000000000000000C040480000000000C2 -:1036C00000007F0000280A210000000000004500E3 -:1036D000002F022200000000000000000AE00000AD -:1036E0000000049600000000C02000000000000060 -:1036F00000000000C02000000000000000000000EA -:10370000C0400000000000000000000000404C0825 -:103710000000045600000000C02008000000000067 -:103720000000001040210E200000000000000011E9 -:10373000402112200000000000000012402116204D -:10374000000000000000216900204411000000007A -:1037500000000000002048020000000000000000FF -:1037600000210225000000000000000014E000001D -:10377000000004A000040000C0494A20000004A189 -:10378000FFFBFFFFC0284A200000000000000000EF -:1037900000210223000000000000000014E00000EF -:1037A000000004AD00000000C02048000000000040 -:1037B00000000000C02048000000000000000000E1 -:1037C00000210224000000000000000014C00000DE -:1037D00000000000810000000020441100000000F3 -:1037E0000000000C00204811000000000000000054 -:1037F00000200010000000000000000014C00000C5 -:10380000000004A9A00000000020441100000000F6 -:10381000CAFEBABE0040481100000000810000004E -:1038200000204411000000000000000400204811A6 -:10383000000000000000216B002044110000000087 -:1038400000000000C02048100000000081000000BF -:103850000020441100000000000000050020481175 -:10386000000000000000216C002044110000000056 -:1038700000000000C0204810000000000000000010 -:10388000002F022400000000000000000CE00000F7 -:10389000000000000000000000400000000004A73D -:1038A00000000000C0210A2000000000000000000D -:1038B00014C00000000004C081000000002044117A -:1038C000000000000000000000204811000000007F -:1038D0000000216D002044110000000000000000E5 -:1038E000C02048000000000000000000C060480048 -:1038F0000000068F0000000000400000000004C42B -:1039000081000000002044110000000000000001C0 -:10391000002048110000000000040000C0294620DB -:103920000000000000000000C06000000000068AE7 -:103930000000000100210222000000000000000041 -:1039400014C00000000004CB0000216900204411D5 -:103950000000000000000000C0204800000000003F -:1039600000000000C020480000000000000000002F -:103970000020481000000000CAFEBABE00404811F6 -:103980000000000000000000C02044000000000013 -:1039900000000000C040481000000000810000004E -:1039A0000020441100000000000000010020481128 -:1039B00000000000000021F8002044110000000079 -:1039C0000000000E0020481100000000000421F952 -:1039D000006044110000068A00000000002102304F -:1039E000000000000000000014C00000000004CD32 -:1039F00000002180002044110000000000000000B1 -:103A0000C02048000000000000000000C0200000AE -:103A10000000000000000000C0204800000000007E -:103A200000000000C02000000000000000000000B6 -:103A3000C0404800000000000000000300333E2F9B -:103A40000000000000000001002102210000000031 -:103A50000000000014E00000000004FD0000002C45 -:103A600000200A2D000000000004000018E00C11E6 -:103A7000000004EC0000000100333E2F00000000B5 -:103A80000000216900204411000000000000000037 -:103A90000020480200000000000000000020480351 -:103AA000000000000000000800300A2200000000B2 -:103AB00000000000C02048000000000000000000DE -:103AC000C0204800000000000000216900204411CF -:103AD000000000000000000000204802000000007C -:103AE0000000000000204803000000000000000863 -:103AF00000300A220000000000000000C020480042 -:103B00000000000000000000D8C04800000004E0F1 -:103B100000002169002044110000000000000000A6 -:103B200000204802000000000000000000204803C0 -:103B3000000000000000000800300A220000000021 -:103B400000000000C020480000000000000000004D -:103B5000C0204800000000000000002D0020122DB1 -:103B6000000000000000000000290C83000000009D -:103B70000000216900204411000000000000000046 -:103B80000020480200000000000000000020480360 -:103B9000000000000000000800300A2200000000C1 -:103BA00000000000C02048000000000000000000ED -:103BB000C020480000000000000000110021022485 -:103BC000000000000000000014C000000000000021 -:103BD0000000000000400000000004A70000002CCE -:103BE000C0203620000000000000002DC04036201C -:103BF000000000000000000F002102210000000072 -:103C00000000000014C000000000050200000000D9 -:103C1000006000000000000B00000000D900000060 -:103C20000000000000000000C0400400000000018F -:103C3000B50000000020441100000000000020003A -:103C40000020481100000000B600000000204411D0 -:103C5000000000000000A00000204811000000004B -:103C6000B700000000204411000000000000C00068 -:103C70000020481100000000B8000000002044119E -:103C8000000000000000F8E00020481100000000E3 -:103C9000B900000000204411000000000000F8807E -:103CA0000020481100000000BA000000002044116C -:103CB000000000000000E0000020481100000000AB -:103CC000BB00000000204411000000000000F000D4 -:103CD0000020481100000000BC000000002044113A -:103CE000000000000000F3FC00204811000000006C -:103CF00081000000002044110000000000000002CC -:103D00000020481100000000000000FF00280E30D5 -:103D10000000000000000000002F0223000000004F -:103D2000000000000CC000000000051600000000AC -:103D3000C0200800000000000000000014C00000C7 -:103D40000000052B0000000000200C110000000006 -:103D50000000001C00203623000000000000002BA3 -:103D60000020362300000000000000290020362338 -:103D700000000000000000280020362300000000A2 -:103D8000000000170020362300000000000000257E -:103D9000002036230000000000000026002036230B -:103DA0000000000000000015002036230000000085 -:103DB000000000160020362300000000FFFFE00096 -:103DC00000200C110000000000000021002036231C -:103DD0000000000000000022002036230000000048 -:103DE00000001FFF00200C11000000000000002355 -:103DF00000203623000000000000002400203623AD -:103E000000000000F1FFFFFF00283A2E0000000034 -:103E10000000001AC0220E20000000000000000078 -:103E20000029386E000000008100000000204411CD -:103E30000000000000000006002048110000000003 -:103E40000000002A4020362000000000870000000B -:103E5000002044110000000000000000C0204800C5 -:103E6000000000000000A1F4002044110000000048 -:103E700000000000002048100000000000000000CA -:103E800000200C110000000000000030002036234C -:103E9000000000009D000000002044110000000010 -:103EA0000000001F40214A20000000009600000092 -:103EB000002044110000000000000000C020480065 -:103EC0000000000000000000C0200C000000000006 -:103ED00000000000C0201000000000000000001FD3 -:103EE00000211624000000000000000014C00000A3 -:103EF000000000000000001D00203623000000002C -:103F00000000000300281E2300000000000000083D -:103F10000022222300000000FFFFF00000282228DA -:103F20000000000000000000002920E80000000060 -:103F30000000001F002036280000000000000018CC -:103F400000211E2300000000000000200020362772 -:103F50000000000000000002002216240000000003 -:103F600000000000003014A8000000000000001E47 -:103F700000203625000000000000000300211A2464 -:103F8000000000001000000000281A2600000000B9 -:103F9000EFFFFFFF00283A2E0000000000000000A5 -:103FA000004938CE000006780000000140280A20B1 -:103FB000000000000000000640280E200000000065 -:103FC00000000300C02812200000000000000008CC -:103FD000002112240000000000000000C020162074 -:103FE0000000000000000000C0201A2000000000B7 -:103FF000000000000021022200000000000000007C -:1040000014C000000000056381000000002044117E -:104010000000000000000001002048110000000026 -:104020000000225800300A240000000000040000B4 -:10403000006946220000068A000021690020441120 -:104040000000000000000000002048050000000003 -:104050000002000000294A260000000000000000C5 -:104060000020481000000000CAFEBABE002048111F -:104070000000000000000002002F022300000000EA -:10408000000000000CC000000000056B00000000F4 -:10409000C0201C100000000000000000C040000014 -:1040A0000000057900000002002F0223000000003C -:1040B000000000000CC000000000056B8100000043 -:1040C0000020441100000000000000010020481101 -:1040D000000000000000225800300A240000000008 -:1040E00000040000006946220000068A000000006B -:1040F000C0201C100000000000000000C0400000B4 -:104100000000057900000000002F022300000000DD -:10411000000000000CC000000000056F000000005F -:10412000C0201C000000000000000000C040000093 -:104130000000057900000004002F022300000000A9 -:10414000000000000CC000000000057781000000A6 -:104150000020441100000000000000000020481171 -:10416000000000000000216D00204411000000004C -:1041700000000000C0204800000000000000000017 -:10418000C06048000000068F0000000000401C10C6 -:104190000000057900000000C020000000000000C1 -:1041A00000000000C040000000000000000000000F -:1041B0000EE000000000057B000000000060000031 -:1041C000000005C600000000002F022400000000CF -:1041D000000000000CC000000000058C0000A2B729 -:1041E00000204411000000000000000000204807EB -:1041F00000000000810000000020441100000000C9 -:104200000000000100204811000000000004A2B6D8 -:10421000006044110000068A0000001A00212230CC -:104220000000000000000006002226300000000010 -:1042300000042004006044110000068A0000A2C4AB -:10424000002044110000000000000000003048E998 -:10425000000000000000000000E000000000058AEF -:104260000000A2D100204411000000000000000066 -:1042700000404808000000000000A2D100204411C6 -:10428000000000000000000100504A28000000006B -:1042900000000001002F02240000000000000000C8 -:1042A0000CC000000000059D0000A2BB00204411CE -:1042B000000000000000000000204807000000008F -:1042C00081000000002044110000000000000001F7 -:1042D00000204811000000000004A2BA0060441150 -:1042E0000000068A0000001A0021223000000000B1 -:1042F0000000000600222630000000000004200418 -:10430000006044110000068A0000A2C5002044118C -:104310000000000000000000003048E9000000003C -:104320000000000000E000000000059B0000A2D299 -:104330000020441100000000000000000040480878 -:10434000000000000000A2D2002044110000000084 -:104350000000000100504A28000000000000000298 -:10436000002F022400000000000000000CC000002C -:10437000000005AE0000A2BF0020441100000000B4 -:10438000000000000020480700000000810000003D -:10439000002044110000000000000001002048112E -:1043A000000000000004A2BE006044110000068A64 -:1043B0000000001A0021223000000000000000066A -:1043C0000022263000000000000420040060441198 -:1043D0000000068A0000A2C6002044110000000070 -:1043E00000000000003048E900000000000000006C -:1043F00000E00000000005AC0000A2D30020441142 -:10440000000000000000000000404808000000001C -:104410000000A2D3002044110000000000000001B1 -:1044200000504A28000000000000A2C300204411F0 -:10443000000000000000000000204807000000000D -:104440008100000000204411000000000000000175 -:1044500000204811000000000004A2C200604411C6 -:104460000000068A0000001A00212230000000002F -:104470000000000600222630000000000004200496 -:10448000006044110000068A0000A2C70020441109 -:104490000000000000000000003048E900000000BB -:1044A0000000000000E00000000005BB0000A2D4F6 -:1044B00000204411000000000000000000404808F7 -:1044C000000000000000A2D4002044110000000001 -:1044D0000000000100504A28000000008500000094 -:1044E00000204411000000000000000000204801EE -:1044F000000000000000304A0020441100000000CD -:104500000100000000204811000000000000000031 -:1045100000400000000005C1A4000000C0204411BC -:104520000000000000000000C04048000000000043 -:1045300000000000C0600000000005C60000000090 -:10454000C0400400000000010000002C00203621C3 -:104550000000000081000000002044110000000065 -:1045600000000006002048110000000000000000CC -:10457000002F023000000000000000000CC000000E -:10458000000005CD00000000002004110000000024 -:104590000000003000403621000005E0000000303F -:1045A0000020062D0000000000007E0000280621EB -:1045B0000000000000000000002F022100000000A9 -:1045C000000000000CE00000000005E08100000099 -:1045D00000204411000000000000000100204811EC -:1045E000000000000004A092006044110000068A50 -:1045F0000000003100203630000000000004A093CD -:10460000006044110000068A0000003200203630AD -:10461000000000000004A2B6006044110000068AF9 -:104620000000003300203630000000000004A2BA71 -:10463000006044110000068A00000034002036307B -:10464000000000000004A2BE006044110000068AC1 -:104650000000003500203630000000000004A2C237 -:10466000006044110000068A000000360020363049 -:104670000000000000042004006044110000068ACD -:104680000001A2A400204411000000000000003F2F -:1046900000204811000000000000003F00204811E9 -:1046A000000000000000003F002048110000000052 -:1046B0000000003F0020481100000000000000053D -:1046C00000204811000000000000A1F40020441167 -:1046D0000000000000000000002048110000000061 -:1046E00088000000002044110000000000000001CC -:1046F000002048110000000081000000002044114B -:10470000000000000000000600204811000000002A -:1047100000000001002F0230000000000000000037 -:104720000CE0000000000629000000300020062DEB -:104730000000000000000000002F02210000000027 -:10474000000000000CE000000000062981000000CD -:10475000002044110000000000000001002048116A -:104760000000000000007E0000280621000000007C -:1047700000000000002F02210000000000000000E7 -:104780000CE00000000006020000A092002044118E -:10479000000000000000003100204A2D0000000051 -:1047A0000000A0930020441100000000000000322F -:1047B00000204A2D000000000000A2B60020441195 -:1047C000000000000000003300204A2D000000001F -:1047D0000000A2BA002044110000000000000034D4 -:1047E00000204A2D000000000000A2BE002044115D -:1047F000000000000000003500204A2D00000000ED -:104800000000A2C200204411000000000000003699 -:1048100000204A2D00000000000000300020062D7E -:1048200000000000000001FF002806210000000039 -:1048300000000000002F0221000000000000000026 -:104840000CE000000000062800000000002102210A -:10485000000000000000000014C000000000060B73 -:104860000004A003006044110000068A0000A003B9 -:10487000002044110000000000000000002048104B -:1048800000000000000000010021062100000000DF -:104890000000000014C00000000006100004A0107A -:1048A000006044110000068A0000A010002044119E -:1048B0000000000000000000002048100000000080 -:1048C000000000010021062100000000000000009F -:1048D000002F022100000000000000000CE000009A -:1048E000000006280004A011006044110000068AA0 -:1048F0000000A01100204411000000000000000092 -:1049000000204810000000000004A01200604411C4 -:104910000000068A0000A0120020441100000000E0 -:104920000000000000204810000000000004A01358 -:10493000006044110000068A0000A013002044110A -:1049400000000000000000000020481000000000EF -:104950000004A014006044110000068A0000A014A6 -:10496000002044110000000000000000002048105A -:10497000000000000004A015006044110000068A39 -:104980000000A015002044110000000000000000FD -:1049900000204810000000000004A0160060441130 -:1049A0000000068A0000A01600204411000000004C -:1049B0000000000000204810000000000004A017C4 -:1049C000006044110000068A0000A0170020441176 -:1049D000000000000000000000204810000000005F -:1049E00000042004006044110000068A0000002C2E -:1049F0000080062D00000000FF0000000020441190 -:104A0000000000000000000000204811000000002D -:104A1000000000010020481100000000000000021A -:104A20000080481100000000000000000EE00000BF -:104A30000000063A000000300020062D00000000B3 -:104A40000000000200280621000000000000000015 -:104A5000002F022100000000000000000CE0000018 -:104A60000000063881000000002044110000000012 -:104A70000000000100204811000000000004200494 -:104A8000006044110000068A000010000020081198 -:104A9000000000000000002B002036220000000073 -:104AA00000000000006000000000063E0000000062 -:104AB00000600000000005C69800000000204411BE -:104AC000000000000000000000804811000000000D -:104AD00000000000C06000000000063E0000000072 -:104AE000C0400400000000010000A2A40020441106 -:104AF000000000000000002200204811000000001B -:104B000089000000002044110000000000000001A6 -:104B1000004048110000062A9700000000204411C0 -:104B2000000000000000000000204811000000000C -:104B30008A00000000204411000000000000000076 -:104B4000004048110000062A00000000006000003C -:104B50000000065900002010002044110000000051 -:104B60000000800000204811000000000001A2A405 -:104B7000C020441100000000000000160060481131 -:104B80000000036E0000201000204411000000000F -:104B9000000100000020481100000000810000001A -:104BA0000020441100000000000000010020481116 -:104BB000000000000000217C0020441100000000E3 -:104BC000098000000020481100000000FFFFFFFFE7 -:104BD00000204811000000000000000000204811E3 -:104BE00000000000000000001700000000000000AE -:104BF0000004217F006044110000068A0000001FAD -:104C000000210230000000000000000014C000007D -:104C1000000000000000000400404C11000006539A -:104C2000000000000040000000000000000000172D -:104C300000201E2D000000000000000400291E2797 -:104C40000000000000000017008036270000000070 -:104C50000000001700201E2D00000000FFFFFFFBDA -:104C600000281E27000000000000001700803627E3 -:104C7000000000000000001700201E2D00000000B2 -:104C80000000000800291E27000000000000001797 -:104C900000803627000000000000001700201E2DB5 -:104CA00000000000FFFFFFF700281E2700000000A3 -:104CB00000000017008036270000000000002010D0 -:104CC0000020441100000000000080000020481176 -:104CD000000000000001A2A4002044110000000018 -:104CE00000000016006048110000036E0000201054 -:104CF00000204411000000000001000000204811C5 -:104D0000000000000000217C002044110000000091 -:104D1000018000000020481100000000FFFFFFFF9D -:104D20000020481100000000000000000020481191 -:104D3000000000000000000017000000000000005C -:104D4000810000000020441100000000000000016C -:104D500000204811000000000004217F0060441181 -:104D60000000068A0000001F002102300000000041 -:104D70000000000014C000000000068900000010C0 -:104D800000404C110000066F00000000C02004002D -:104D9000000000000000000038C00000000000001B -:104DA0000000001D00200A2D000000000000001E71 -:104DB00000200E2D000000000000001F0020122D1A -:104DC00000000000000000200020162D0000000060 -:104DD00000002169002044110000000000000000D4 -:104DE00000204804000000000000000000204805EA -:104DF000000000000000000000204801000000004A -:104E0000CAFEBABE002048110000000000000004E5 -:104E1000003012240000000000000000002F006499 -:104E200000000000000000000CC000000000068828 -:104E30000000000300281A22000000000000000803 -:104E40000022122200000000FFFFF00000281224C0 -:104E50000000000000000000002910C40000000055 -:104E60000000001F00403624000000000000000089 -:104E70000080000000000000000000001AC00000D8 -:104E80000000068A9F00000000204411000000007E -:104E9000CAFEBABE00204811000000000000000059 -:104EA0001AE000000000068D0000000000800000F5 -:104EB00000000000000000001AC000000000068F83 -:104EC0009E0000000020441100000000CAFEBABE8F -:104ED0000020481100000000000000001AE000005F -:104EE00000000692000000000080000000000000AA -:104EF00000000000006000000000000B0000100037 -:104F000000600411000003150000000000200411DF -:104F1000000000000000000000600811000001B265 -:104F20000000225C0020441100000000000000038B -:104F3000002048110000000000002256002044110B -:104F4000000000000000001B0020481100000000CD -:104F50000000A1FC0020441100000000000000013E -:104F600000204811000000000001A1FDC0204411F4 -:104F7000000000000000002100201E2D00000000A5 -:104F80000000001000221E27000000000000002486 -:104F90000020222D000000000000FFFF0028222832 -:104FA0000000000000000000002949070000000088 -:104FB0000000000000204811000000000000002256 -:104FC0000020222D000000000000FFFF0028222802 -:104FD0000000000000000000002949070000000058 -:104FE0000000000000204811000000000000002325 -:104FF00000201E2D000000000000001000221E27CF -:105000000000000000000000002949070000000027 -:1050100000000000004048110000000000000000F7 -:105020000000000000000000000000000000000080 -:105030000000000000000000000000000000000070 -:105040000000000000000000000000000000000060 -:105050000000000000000000000000000000000050 -:105060000000000000000000000000000000000040 -:105070000000000000000000000000000000000030 -:105080000000000000000000000000000000000020 -:105090000000000000000000000000000000000010 -:1050A0000000000000000000000000000000000000 -:1050B00000000000000000000000000000000000F0 -:1050C00000000000000000000000000000000000E0 -:1050D00000000000000000000000000000000000D0 -:1050E00000000000000000000000000000000000C0 -:1050F00000000000000000000000000000000000B0 -:10510000000000000000000000000000000000009F -:10511000000000000000000000000000000000008F -:10512000000000000000000000000000000000007F -:10513000000000000000000000000000000000006F -:10514000000000000000000000000000000000005F -:10515000000000000000000000000000000000004F -:10516000000000000000000000000000000000003F -:10517000000000000000000000000000000000002F -:10518000000000000000000000000000000000001F -:10519000000000000000000000000000000000000F -:1051A00000000000000000000000000000000000FF -:1051B00000000000000000000000000000000000EF -:1051C00000000000000000000000000000000000DF -:1051D00000000000000000000000000000000000CF -:1051E00000000000000000000000000000000000BF -:1051F00000000000000000000000000000000000AF -:10520000000000000000000000000000000000009E -:10521000000000000000000000000000000000008E -:10522000000000000000000000000000000000007E -:10523000000000000000000000000000000000006E -:10524000000000000000000000000000000000005E -:10525000000000000000000000000000000000004E -:10526000000000000000000000000000000000003E -:10527000000000000000000000000000000000002E -:10528000000000000000000000000000000000001E -:10529000000000000000000000000000000000000E -:1052A00000000000000000000000000000000000FE -:1052B000014204FF05BD02500000000001C3016867 -:1052C000043F05BD00000000022502090250015103 -:1052D000000000000223024502A00241000000007D -:1052E00003D705BD05BD05BD000000000646064705 -:1052F000031F05BD0000000005BD05C203200340DB -:1053000000000000032A0282034203340000000070 -:1053100005BD05BD05BD05BD0000000005BD054E70 -:1053200005BD05BD0000000003BA05BD04B8034477 -:10533000000000000497044D043D05BD000000007E -:1053400004CD05BD044104DA00000000044D05044D -:10535000035103750000000005BD05BD05BD05BD79 -:105360000000000005BD05BD05BD05BD0000000035 -:1053700005BD05BD063C05C40000000005BD05BD1A -:10538000000705BD0000000005BD05BD05BD05BD4C -:105390000000000005BD05BD05BD05BD0000000005 -:1053A00003F803ED0408040600000000040E040ADC -:1053B000040C041000000000041C04180424042041 -:1053C00000000000042C0428043404300000000015 -:1053D00005BD05BD043805BD0000000005BD05BDC7 -:1053E00005BD05BD0000000005BD05BD05BD05BD31 -:1053F000000000000002067606940006000000008F -:00000001FF diff --git a/firmware/radeon/RV635_pfp.bin.ihex b/firmware/radeon/RV635_pfp.bin.ihex deleted file mode 100644 index f55292c97b79..000000000000 --- a/firmware/radeon/RV635_pfp.bin.ihex +++ /dev/null @@ -1,145 +0,0 @@ -:1000000000CA040000A00000007E828B007C038BED -:10001000008001B8007C038B00D4401E00EE001E5F -:1000200000CA040000A00000007E828B00C41838C3 -:1000300000CA240000CA2800009581A800C41C3A08 -:1000400000C3C00000CA080000CA0C00007C744B4A -:1000500000C200050099C00000C41C3A007C744C2A -:1000600000C0FFF000042C0400309002007D250049 -:1000700000351402007D350B00255403007CD5802B -:1000800000259C030095C00400D5001B007EDDC147 -:10009000007D9D8000D6801B00D5801B00D4401EB3 -:1000A00000D5401E00D6401E00D6801E00D4801E03 -:1000B00000D4C01E009783D300D5C01E00CA08001C -:1000C0000080001A00CA0C0000E4011E00D4001ECB -:1000D0000080000C00C4183800E4013E00D4001E6B -:1000E0000080000C00C4183800D4401E00EE001E32 -:1000F00000CA040000A00000007E828B00E4011E04 -:1001000000D4001E00D4401E00EE001E00CA0400F1 -:1001100000A00000007E828B00E4013E00D4001E9F -:1001200000D4401E00EE001E00CA040000A0000023 -:10013000007E828B00CA180000D4401E00D5801EAD -:100140000080005300D4007500D4401E00CA08008F -:1001500000CA0C0000CA100000D4801900D4C018D6 -:1001600000D5001700D4801E00D4C01E00D5001E8C -:1001700000E2001E00CA040000A00000007E828B86 -:1001800000CA080000D4806000D4401E0080000037 -:1001900000D4801E00CA080000D4806100D4401E34 -:1001A0000080000000D4801E00CA080000CA0C00B5 -:1001B00000D4401E00D4801600D4C01600D4801E87 -:1001C000008001B800D4C01E00C6084300CA0C005D -:1001D00000CA10000094800400CA140000E420F358 -:1001E00000D4201300D5606500D4E01C00D5201C8D -:1001F00000D5601C008000000006200100C60843F6 -:1002000000CA0C0000CA1000009483F700CA140052 -:1002100000E420F30080007900D4201300C60843D6 -:1002200000CA0C0000CA1000009883EF00CA140036 -:1002300000D400640080008D0000000000C414326F -:1002400000C6184300C4082F0095400500C40C30B8 -:1002500000D4401E0080000000EE001E009583F5D3 -:1002600000C4103100D4403300D5206500D4A01C58 -:1002700000D4E01C00D5201C00E4015E00D4001E68 -:10028000008000000006200100CA1800000A2001BA -:1002900000D6007600C408360098800700C61045D6 -:1002A0000095011000D4001F00D46062008000009F -:1002B00000D4206200CC383500CC1433008401BB5C -:1002C00000D4007200D5401E0080000000EE001E29 -:1002D00000E2001A008401BB00E2001A00CC104BBF -:1002E00000CC0447002C9401007D098B0098400548 -:1002F000007D15CB00D4001A008001B800D4006D39 -:100300000034440100CC0C480098403A00CC2C4A00 -:100310000095800400CC0449008001B800D4001A84 -:1003200000D4C01A00282801008400F000CC10037B -:100330000098801B0004380C008400F000CC1003EF -:100340000098801700043808008400F000CC1003E7 -:100350000098801300043804008400F000CC1003DF -:100360000098801400CC104C009A800900CC144DE9 -:10037000009840DC00D4006D00CC184800D5001A6D -:1003800000D5401A008000C900D5801A0096C0D55B -:1003900000D4006D008001B800D4006E009AC00344 -:1003A00000D4006D00D4006E0080000000EC007FDF -:1003B000009AC0CC00D4006D008001B800D4006E5B -:1003C00000CC140300CC180300CC1C03007D910367 -:1003D000007DD583007D190C0035CC1F0035701FC2 -:1003E000007CF0CB007CD08B00880000007E8E8BE0 -:1003F0000095C00400D4006E008001B800D4001A3B -:1004000000D4C01A00CC080300CC0C0300CC1003AD -:1004100000CC140300CC180300CC1C0300CC240334 -:1004200000CC28030035C41F0036B01F007C704B81 -:100430000034F01F007C704B0035701F007C704B47 -:10044000007D8881007DCCC1007E5101007E9541F8 -:10045000007C9082007CD4C2007C848B009AC00314 -:10046000007C8C8B002C88010098809E00D4006D4D -:100470000098409C00D4006E00CC084C00CC0C4D81 -:1004800000CC104800D4801A00D4C01A00800101AA -:1004900000D5001A00CC083200D40032009482D972 -:1004A00000CA0C0000D4401E0080000000D4001ED2 -:1004B00000E4011E00D4001E00CA080000CA0C009F -:1004C00000CA100000D4401E00CA140000D4801ED0 -:1004D00000D4C01E00D5001E00D5401E00D54034FB -:1004E0000080000000EE001E0028040400E2001A54 -:1004F00000E2001A00D4401A00CA380000CC0803F9 -:1005000000CC0C0300CC0C0300CC0C03009882BD83 -:1005100000000000008401BB00D7A06F0080000035 -:1005200000EE001F00CA040000C2FF0000CC083427 -:1005300000C13FFF007C74CB007CC90B007D010F24 -:10054000009902B0007C738B008401BB00D7A06FC0 -:100550000080000000EE001F00CA080000281900FB -:10056000007D898B009580140028140400CA0C00BB -:1005700000CA100000CA1C0000CA240000E2001FCC -:1005800000D4C01A00D5001A00D5401A00CC1803B8 -:1005900000CC2C0300CC2C0300CC2C03007DA58BBD -:1005A000007D9C4700984297000000000080016198 -:1005B00000D4C01A00D4401E00D4801E0080000069 -:1005C00000EE001E00E4011E00D4001E00D4401EF8 -:1005D00000EE001E00CA040000A00000007E828B16 -:1005E00000E4013E00D4001E00D4401E00EE001EB8 -:1005F00000CA040000A00000007E828B00CA080030 -:1006000000248C06000CCC060098C00600CC104ECE -:100610000099000400D4007300E4011E00D4001E01 -:1006200000D4401E00D4801E0080000000EE001E9A -:1006300000CA080000CA0C000034D01800251001C0 -:100640000095002100C17FFF00CA100000CA1400FD -:1006500000CA180000D4801D00D4C01D007DB18BDD -:1006600000C1420200C2C00100D5801D0034DC0E72 -:10067000007D5D4C007F734C00D7401E00D5001EEE -:1006800000D5401E00C1420000C2C00000099C010C -:100690000031DC10007F5F4C007F734C00042802A7 -:1006A000007D838000D5A86F00D5806600D7401EEE -:1006B00000EC005E00C8240200C82402008001B8DB -:1006C00000D6007600D4401E00D4801E00D4C01E88 -:1006D0000080000000EE001E0080000000EE001F01 -:1006E00000D4001F0080000000D4001F00D4001FB1 -:1006F0000088000000D4001F00000000000000007F -:1007000000000000000000000000000000000000E9 -:1007100000000000000000000000000000000000D9 -:1007200000000000000000000000000000000000C9 -:1007300000000000000000000000000000000000B9 -:1007400000000000000000000000000000000000A9 -:100750000000000000000000000000000000000099 -:100760000000000000000000000000000000000089 -:100770000000000000000000000000000000000079 -:100780000000000000000000000000000000000069 -:100790000000000000000000000000000000000059 -:1007A0000000000000000000000000000000000049 -:1007B0000000000000000000000000000000000039 -:1007C0000000000000000000000000000000000029 -:1007D0000000000000000000000000000000000019 -:1007E0000000000000000000000000000000000009 -:1007F00000000000000000000000000000000000F9 -:1008000000010171000201780003008F0004007FE5 -:10081000000500030006003F000700320008012C1D -:1008200000090046000A0036001001B6001700A2B9 -:100830000022013A00230149002000B400240125D0 -:100840000027004D0028006A002A0060002B00529B -:10085000002F0065003200870034017F003C015604 -:10086000003F00720041018C0044012E00550173CD -:100870000056017A0060000B00610034006200380D -:1008800000630038006400380065003800660038F6 -:10089000006700380068003A00690041006A0048BB -:1008A000006B0048006C0048006D0048006E004876 -:1008B000006F00480000000600000006000000066F -:1008C0000000000600000006000000060000000610 -:1008D0000000000600000006000000060000000600 -:1008E00000000006000000060000000600000006F0 -:1008F00000000006000000060000000600000006E0 -:00000001FF diff --git a/firmware/radeon/RV670_me.bin.ihex b/firmware/radeon/RV670_me.bin.ihex deleted file mode 100644 index 9fbfc0e4438c..000000000000 --- a/firmware/radeon/RV670_me.bin.ihex +++ /dev/null @@ -1,1345 +0,0 @@ -:1000000000000000C020040000000000000000000C -:1000100000A0000A000000000000FFFF00284621A9 -:100020000000000000000000D900480000000000AF -:1000300000000000C02004000000000000000000DC -:1000400000A0000A000000000000000000E0000026 -:100050000000000000010000C02946200000000050 -:1000600000000000D900480000000000000000006F -:10007000C0200400000000000000000000A0000AF2 -:10008000000000008100000000204411000000007A -:1000900000000001002048110000000000042004BE -:1000A000006044110000067C0000000000600000B9 -:1000B0000000062400000000006000000000063878 -:1000C00000000000C02008000000000000000F0039 -:1000D000002816220000000000000008002116255C -:1000E000000000000000001800203625000000007D -:1000F0008D000000002044110000000000000004FA -:10010000002F022500000000000000000CE00000AD -:1001100000000018004120000040481100000019B4 -:100120000042200000204811000000008E00000066 -:1001300000204411000000000000002800204A2D8B -:1001400000000000900000000020441100000000AA -:100150000000000000204805000000000000000C26 -:1001600000211622000000000000000300281625D0 -:10017000000000000000001900211A220000000009 -:100180000000000400281A26000000000000000003 -:10019000002914C5000000000000001900203625C9 -:1001A0000000000000000000003A140200000000FF -:1001B00000000016002116250000000000000003CA -:1001C00000281625000000000000001700200E2D5A -:1001D00000000000FFFFFFFC00280E2300000000CD -:1001E00000000000002914A3000000000000001718 -:1001F00000203625000000000000800000280E22AC -:10020000000000000000000700220E230000000094 -:10021000000000000029386E0000000020000000EF -:1002200000280E22000000000000000600210E231E -:1002300000000000000000000029386E00000000EF -:100240000000000000220222000000000000000068 -:1002500014E0000000000038000000002EE0000064 -:1002600000000035000000002CE000000000003716 -:100270000000000000400E2D0000003900000008C2 -:1002800000200E2D00000000000000090040122D8B -:10029000000000460000000100400E2D0000003963 -:1002A00000000000C0200C0000000000003FFFFC28 -:1002B0000028122300000000000000020022122487 -:1002C000000000000000001F00211E2300000000AD -:1002D0000000000014E000000000003E00000008E4 -:1002E00000401C11000000410000000D00201E2DE8 -:1002F000000000000000000F00281E270000000082 -:100300000000000300221E27000000007FC0000044 -:1003100000281A23000000000000001400211A2603 -:10032000000000000000000100331A260000000059 -:100330000000000800221A26000000000000000053 -:1003400000290CC700000000000000270020362410 -:100350000000000000007F000028122100000000C3 -:1003600000001400002F0224000000000000000024 -:100370000CE000000000004B0000000100290E23EB -:10038000000000000000000E0020362300000000E6 -:100390000000E0000020441100000000FFF8000011 -:1003A00000294A230000000000000000003A2C024F -:1003B000000000000000000200220E2B00000000E0 -:1003C000FC00000000280E23000000000000000FC9 -:1003D000002036230000000000001FFF00294A23F0 -:1003E000000000000000002700204A2D000000004F -:1003F000000000000020481100000000000000295B -:1004000000200E2D00000000060A020000294A23E9 -:100410000000000000000000002048110000000063 -:100420000000000000204811000000000000000152 -:1004300000210222000000000000000014E0000083 -:1004400000000061000000002EE000000000005FDE -:10045000000000002CE000000000005E0000000032 -:1004600000400E2D000000620000000100400E2D33 -:10047000000000620000000A00200E2D00000000B5 -:100480000000000B0040122D0000006A0000000078 -:10049000C0200C0000000000003FFFFC00281223D9 -:1004A00000000000000000020022122400000000F2 -:1004B0007FC0000000281623000000000000001488 -:1004C0000021162500000000000000010033162561 -:1004D000000000008000000000280E230000000043 -:1004E0000000000000290CA3000000003FFFFC00FA -:1004F00000290E23000000000000001F00211E2321 -:10050000000000000000000014E000000000006D8A -:100510000000010000401C11000000700000000DF0 -:1005200000201E2D00000000000000F000281E2703 -:10053000000000000000000400221E270000000050 -:100540008100000000204411000000000000000DA8 -:100550000020481100000000FFFFF0FF00281A30C3 -:10056000000000000000A02800204411000000004E -:1005700000000000002948E6000000000000A0186C -:1005800000204411000000003FFFFFFF00284A2325 -:10059000000000000000A010002044110000000036 -:1005A00000000000002048040000000000000030AF -:1005B0000020162D00000000000000020029162572 -:1005C0000000000000000030002036250000000080 -:1005D000000000250020162D000000000000000093 -:1005E000002F00A300000000000000000CC000006D -:1005F00000000083000000260020162D00000000EF -:1006000000000000002F00A4000000000000000017 -:100610000CC000000000008400000000004000004A -:100620000000008A000000250020362300000000A2 -:100630000000002600203624000000000000001703 -:1006400000201E2D000000000000000200210227F3 -:10065000000000000000000014E000000000008A1C -:1006600000000000006000000000065900000000CB -:10067000006000000000064D0000000200210E2274 -:10068000000000000000000014C000000000008D09 -:1006900000000012C040362000000093000000005F -:1006A0002EE0000000000091000000002CE000009F -:1006B000000000900000000200400E2D000000929B -:1006C0000000000300400E2D000000920000000C0E -:1006D00000200E2D00000000000000120020362334 -:1006E000000000000000000300210E2200000000B6 -:1006F0000000000014C00000000000980000A00CE2 -:10070000002044110000000000000000C02048004C -:100710000000000000000000C0404800000000A0F1 -:100720000000A00C002044110000000000000000A8 -:100730000020481100000000000000002EE0000032 -:100740000000009E000000002CE000000000009D62 -:100750000000000200400E2D0000009F000000037A -:1007600000400E2D0000009F0000000C00200E2D08 -:10077000000000000000000000204803000000000E -:1007800000000000003A0C0200000000003F0000E2 -:1007900000280E23000000000000001000210E239E -:1007A00000000000000000110020362300000000BF -:1007B0000000001E0021022B0000000000000000CD -:1007C00014C00000000000A700000016C020362062 -:1007D000000000000000001F0021022B00000000AC -:1007E0000000000014C00000000000AA0000001576 -:1007F000C0203620000000000000000800210E2B61 -:10080000000000000000007F00280E230000000010 -:1008100000000000002F0223000000000000000084 -:100820000CE00000000000E10000000027000000D4 -:10083000000000000000000000600000000002A3B3 -:1008400000000001002F0223000000000000000053 -:100850000AE00000000000B300000000006000009B -:100860000000013A81000000002044110000000057 -:100870000000000600204811000000000000000CED -:1008800000221E300000000099800000002044116A -:1008900000000000000000040020122D00000000F5 -:1008A00000000008002212240000000000000010D8 -:1008B00000201811000000000000000000291CE4C6 -:1008C0000000000000000000006048070000012F49 -:1008D0009B00000000204411000000000000000008 -:1008E00000204802000000009C000000002044118D -:1008F00000000000000000000033146F0000000042 -:100900000000000100333E23000000000000000052 -:10091000D9004800000000000000000000203C0555 -:1009200000000000810000000020441100000000D1 -:100930000000000E00204811000000000000000030 -:1009400000201010000000000000E007002044110B -:10095000000000000000000F0021022B000000003A -:100960000000000014C00000000000CB00F8FF08E9 -:1009700000204811000000009800000000404811CD -:10098000000000DC000000F000280E220000000043 -:10099000000000A0002F0223000000000000000063 -:1009A0000CC00000000000DA0000001100200E2D35 -:1009B0000000000000000001002F022300000000E2 -:1009C000000000000CE00000000000D50000000264 -:1009D000002F022300000000000000000CE00000D7 -:1009E000000000D400003F0000400C11000000D6C1 -:1009F00000001F0000400C11000000D600000F0096 -:100A000000200C11000000000038000900294A23D2 -:100A1000000000003F00000000280E2B0000000036 -:100A20000000000200220E2300000000000000076A -:100A300000494A23000000DC00380F09002048115B -:100A400000000000680000070020481100000000BE -:100A50000000000800214A270000000000000000FC -:100A60000020481100000000060A020000294A2464 -:100A700000000000000000000020481100000000FD -:100A80000000000000204811000000000000A20249 -:100A9000002044110000000000FF000000280E228A -:100AA000000000000000008000294A230000000030 -:100AB0000000002700200E2D00000000000000268E -:100AC0000020122D0000000000000000002F008315 -:100AD00000000000000000000CE00000000000EA40 -:100AE000000000000060000000000653000000004D -:100AF00000400000000000EB00000000006000006B -:100B000000000656000000070020222D0000000013 -:100B10000000000500220E2200000000001000006E -:100B200000280E23000000000000000000292068BB -:100B30000000000000000000003A0C02000000006D -:100B4000000000EF00280E2300000000000000005D -:100B500000292068000000000000001700200E2D72 -:100B6000000000000000000300210223000000003C -:100B70000000000014E00000000000F80000000B7E -:100B800000210228000000000000000014C0000046 -:100B9000000000F8000004000029222800000000E6 -:100BA0000000001400203628000000000000001C97 -:100BB00000210E22000000000000000014C0000010 -:100BC000000000FD0000A30C002044110000000004 -:100BD0000000000000204811000000000000001E7E -:100BE00000210E22000000000000000014C00000E0 -:100BF0000000010B0000A30F0020441100000000C2 -:100C00000000001100200E2D000000000000000177 -:100C1000002F022300000000000000000CC00000B4 -:100C200000000104FFFFFFFF004048110000010B1E -:100C300000000002002F022300000000000000005E -:100C40000CC00000000001070000FFFF0040481139 -:100C50000000010B00000004002F02230000000030 -:100C6000000000000CC000000000010A000000FFAE -:100C7000004048110000010B000000010020481155 -:100C8000000000000002C400002044110000000029 -:100C90000000001F00210E220000000000000000E4 -:100CA00014C00000000001120000001040210E20BE -:100CB00000000000000000130020362300000000A8 -:100CC0000000001840224A20000000000000001030 -:100CD000C0424A20000001140000000000200C1156 -:100CE0000000000000000013002036230000000078 -:100CF000000000000020481100000000000000007B -:100D000000204811000000000000000A002010111F -:100D10000000000000000000002F0224000000007E -:100D2000000000000CE000000000011B00000000BB -:100D300000204811000000000000000100531224B0 -:100D400000000117FFBFFFFF00283A2E000000003F -:100D50000000001B00210222000000000000000033 -:100D600014C000000000012E81000000002044118A -:100D7000000000000000000D0020481100000000ED -:100D80000000001800220E3000000000FC000000EF -:100D900000280E2300000000810000000020441104 -:100DA000000000000000000E0020481100000000BC -:100DB0000000000000201010000000000000E00E05 -:100DC000002044110000000007F8FF08002048112F -:100DD000000000000000000000294A23000000007D -:100DE0000000001C00201E2D000000000000000874 -:100DF00000214A27000000000000000000204811E8 -:100E000000000000060A020000294A240000000039 -:100E10000000000000204811000000000000000059 -:100E200000204811000000000000000000800000C9 -:100E300000000000810000000020441100000000BC -:100E40000000000100204811000000000000217C8B -:100E50000020441100000000008000000020481124 -:100E60000000000000000000002048060000000014 -:100E70000000000800214A270000000000000000D8 -:100E800017000000000000000004217F00604411F2 -:100E90000000067C0000001F00210230000000005E -:100EA0000000000014C000000000067B00000004E9 -:100EB00000404C1100000135810000000020441169 -:100EC00000000000000000010020481100000000A8 -:100ED000000021F800204411000000000000001C68 -:100EE0000020481100000000000421F900604411B6 -:100EF0000000067C0000001100210230000000000C -:100F00000000000014E000000000013C00000000B0 -:100F100000800000000000000000000000600000F1 -:100F20000000000B00000000006004110000031529 -:100F3000000000000020041100000000000000007C -:100F400000600811000001B2000000000060000015 -:100F5000000001600000FFFF40280E20000000009C -:100F600000000010C0211220000000000000FFFF60 -:100F7000402806200000000000000010C0210A20C8 -:100F800000000000000000000034146100000000B8 -:100F90000000000000741882000002BB0001A1FDE7 -:100FA00000604411000002E000003FFF002F022F0C -:100FB00000000000000000000CC00000000001471D -:100FC00000000000C040040000000001000000001C -:100FD000006000000000000B000000000060041131 -:100FE00000000315000000000020041100000000B4 -:100FF0000000000000600811000001B200003FFF87 -:10100000002F022F00000000000000000CE0000094 -:10101000000000000000000000600000000001600F -:101020000000001040210E20000000000000FFFF23 -:10103000C0281220000000000000001040211620EF -:10104000000000000000FFFFC0681A20000002BB83 -:101050000001A1FD00604411000002E000003FFF1C -:10106000002F022F00000000000000000CC0000054 -:101070000000015800000000C04004000000000112 -:101080000000225C0020441100000000000000016C -:1010900000300A2F000000000000000100210A2299 -:1010A000000000000000000300384A220000000099 -:1010B0000000225600204411000000000000001A29 -:1010C00000204811000000000000A1FC0020441195 -:1010D0000000000000000001008048110000000036 -:1010E00000000000006000000000000B0000000095 -:1010F000006000000000018F0000000000600000A0 -:10110000000001A000003FFF002F022F00000000A0 -:10111000000000000CE000000000000000000000E3 -:1011200000202C0800000000000000000020241116 -:101130000000000000000000002028110000000056 -:10114000000022560020441100000000000000169C -:1011500000204811000000000000225C0020441123 -:101160000000000000000003002048110000000003 -:1011700093800000002044110000000000000002E5 -:1011800000221E290000000000000000007048EB53 -:101190000000019C0000000000600000000002BB95 -:1011A00000000001403306200000000000000000A5 -:1011B000C03024090000000000003FFF002F022F74 -:1011C00000000000000000000CE000000000000033 -:1011D0000000000000600000000002A3000000000A -:1011E000002F022100000000000000000AE00000C3 -:1011F0000000018100000000006000000000013AD2 -:101200000000000000400000000001869500000082 -:10121000002044110000000000000000002F022107 -:1012200000000000000000000CE00000000001864B -:1012300000000000C0204800000000000000000185 -:10124000005306210000018292000000002044119A -:101250000000000000000000C0604800000001978E -:101260000001A1FD00204411000000000000001159 -:101270000020062D00000000000000000078042A75 -:10128000000002FB00000000002028090000000010 -:1012900000003FFF002F022F0000000000000000B0 -:1012A0000CC000000000017400000000C0400400F9 -:1012B000000000010000021000600411000003158E -:1012C00000003FFF002F022F000000000000000080 -:1012D0000CE000000000019400000015C020362042 -:1012E0000000000000000016C020362000000000B2 -:1012F0003F800000002004110000000046000000B4 -:1013000000600811000001B2000000000080000031 -:10131000000000000000A1FC0020441100000000BB -:1013200000003FFF002F022F00000000000000001F -:101330000CC000000000019B00000001008048116B -:1013400000000000000000210080481100000000A3 -:101350000000FFFF40280E200000000000000010E9 -:10136000C0211220000000000000FFFF40281620CE -:101370000000000000000010C0811A2000000000E2 -:101380008100000000204411000000000000000661 -:1013900000204811000000000000000800221E305C -:1013A000000000000000002900201A2D00000000AD -:1013B0000000E0000020441100000000FFFBFF09D6 -:1013C00000204811000000000000000F0020222D26 -:1013D0000000000000001FFF00294A280000000054 -:1013E000000000060020222D000000000000000088 -:1013F000002920E80000000000000000002048084C -:101400000000000000000000002048110000000063 -:10141000060A020000294A26000000000000000021 -:1014200000204811000000000000000000204811CA -:101430000000000000000100002018110000000062 -:101440000000000800621E280000012F00000008B4 -:1014500000822228000000000002C0000020441189 -:10146000000000000000001500600E2D000001BD0E -:101470000000001600600E2D000001BD0000C00835 -:1014800000204411000000000000001700200E2D75 -:10149000000000000000000014C00000000001B9BE -:1014A0000000000000200411000000000000000007 -:1014B0000020480100000000390000000020481111 -:1014C00000000000000000000020481100000000A3 -:1014D000000000000080480200000000000000182A -:1014E00000202E2D0000000000000000003B0D63D6 -:1014F000000000000000000800224A230000000055 -:101500000000001000224A23000000000000001824 -:1015100000224A2300000000000000000080480371 -:101520000000000000000000006000000000000B50 -:10153000000010000060041100000315000000000E -:1015400000200411000000000000000000600811ED -:10155000000001B2000000070021062F000000007B -:101560000000001300200A2D000000000000000110 -:1015700000202C11000000000000FFFF4028222066 -:10158000000000000000000F0026222800000000DC -:101590000000001040212620000000000000000F85 -:1015A000002626290000000000000000002028027C -:1015B000000000000000225600204411000000003E -:1015C0000000001B00204811000000000000000087 -:1015D000002F022100000000000000000CE00000CD -:1015E000000001E00000225C002044110000000027 -:1015F0000000008100204811000000000000A1FC54 -:1016000000204411000000000000000100204811EB -:10161000000000000000008000201C1100000000FD -:1016200000000000002F0227000000000000000062 -:101630000CE00000000001DC000000000060000081 -:10164000000001E90000000100531E27000001D83E -:101650000000000100202C11000000000000001F0D -:1016600000280A22000000000000001F00282A2A8B -:10167000000000000000000100530621000001D11D -:101680000000225C00204411000000000000000265 -:1016900000304A2F000000000000A1FC002044118F -:1016A00000000000000000010020481100000000C0 -:1016B0000000000100301E2F0000000000000000AC -:1016C000002F022700000000000000000CE00000D6 -:1016D000000000000000000000600000000001E9C0 -:1016E0000000000100531E27000001E50000FFFF7D -:1016F00040280E20000000000000000F00260E23EE -:101700000000000000000010C021122000000000B6 -:101710000000000F0026122400000000000000005E -:1017200000201411000000000000000000601811EB -:10173000000002BB0001A1FD0020441100000000D8 -:1017400000000000002F022B00000000000000003D -:101750000CE00000000001F8000000100022162834 -:1017600000000000FFFF0000002816250000000018 -:101770000000FFFF00281A29000000000000000000 -:10178000002948C500000000000000000020480AB1 -:10179000000000000000000000202C1100000000EC -:1017A000000000100022162300000000FFFF0000D0 -:1017B00000281625000000000000FFFF00281A2462 -:1017C0000000000000000000002948C500000000E3 -:1017D0000000000000731503000002050000000077 -:1017E0000020180500000000000000000073152410 -:1017F0000000020500000000002D14C500000000DC -:1018000000000000003008A20000000000000000FE -:101810000020480200000000000000000020280214 -:101820000000000000000000002020030000000075 -:101830000000000000802404000000000000000FF1 -:1018400000210225000000000000000014C000007C -:101850000000067B00000000002B140500000000C3 -:1018600000000001009016250000000000000000AC -:10187000006000000000000B000000000060041188 -:10188000000003150000000000200411000000000B -:101890000000000000600811000001B200002256A4 -:1018A00000204411000000000000001A00294A2214 -:1018B0000000000000000000C02000000000000048 -:1018C00000003FFF002F022F00000000000000007A -:1018D0000CE000000000000000000000C020040038 -:1018E000000000000000225C002044110000000005 -:1018F0000000000300384A21000000000000A1FCA5 -:1019000000204411000000000000000100204811E8 -:10191000000000000000FFFF40281220000000002F -:1019200000000010C0211A20000000000000FFFF8E -:1019300040280E200000000000000010C0211620EA -:10194000000000000000000000741465000002BBED -:101950000001A1FD00604411000002E00000000150 -:10196000003306210000000000000000002F0221CB -:1019700000000000000000000CC000000000021980 -:1019800000003FFF002F022F0000000000000000B9 -:101990000CC000000000021200000000C040040063 -:1019A0000000000100000000006000000000063898 -:1019B000000000000040040F0000021300000000BF -:1019C000006000000000062400000000006000002D -:1019D000000006380000021000600411000003152A -:1019E0000000000000600000000001A000000000F6 -:1019F000006000000000019C00000000006000008A -:101A0000000002BB0000000000600000000002A314 -:101A1000938000000020441100000000000000003E -:101A2000002048080000000000000000002F022FE6 -:101A300000000000000000000AE000000000023288 -:101A400000000000006000000000013A00000000FB -:101A50000040000000000236950000000020441104 -:101A60000000000000000000002F022F0000000016 -:101A7000000000000CE00000000002360000000042 -:101A8000C0404800000002339200000000204411D2 -:101A90000000000000000000C0204800000000001E -:101AA0000000225600204411000000000000001633 -:101AB00000204811000000000000225C00204411BA -:101AC000000000000000000300204811000000009A -:101AD0000000A1FC002044110000000000000001F3 -:101AE00000204811000000000001A1FD0020441169 -:101AF000000000000000000000600411000002FB74 -:101B000000000000C04004000000000100000000D0 -:101B100000600000000006240000A00C002044111A -:101B20000000000000000000C0204800000000008D -:101B300000000000C040480000000000000000005D -:101B4000006000000000000B0000001840210A2087 -:101B50000000000000000003002F0222000000002F -:101B6000000000000AE000000000024C0000001429 -:101B70000020222D00000000000801010029222879 -:101B800000000000000000140020362800000000C3 -:101B90000000A30C00204411000000000000000021 -:101BA000C02048000000000000000000C0204800E5 -:101BB0000000000000000000C0404800000002518A -:101BC00000000000006000000000000B000000109A -:101BD00000600411000003153F8000000020041184 -:101BE000000000000000000000600811000001B2C9 -:101BF0000000225C002044110000000000000003EF -:101C000000204811000000000000000000600000FB -:101C10000000027C0000001700201E2D00000000C4 -:101C20000000000100211E2700000000000000004D -:101C300014E000000000026A0000001200201E2DC7 -:101C4000000000000000FFFF00281E270000000029 -:101C50000000000000341C2700000000000000000D -:101C600012C000000000025F0000000000201C11F4 -:101C70000000000000000000002F00E50000000050 -:101C80000000000008C00000000002620000000028 -:101C900000201407000000000000001200201E2D8C -:101CA000000000000000001000211E2700000000BE -:101CB0000000000000341C4700000000000000008D -:101CC00012C00000000002670000000000201C118C -:101CD0000000000000000000002F00E600000000EF -:101CE0000000000008C000000000026A00000000C0 -:101CF0000020180700000000000000000060000045 -:101D0000000002C100002256002044110000000023 -:101D1000000000000034202300000000000000004C -:101D200012C00000000002720000000000342044D5 -:101D3000000000000000000012C00000000002715E -:101D40000000001600404811000002760000001854 -:101D500000404811000002760000000000342044DA -:101D6000000000000000000012C00000000002752A -:101D70000000001700404811000002760000001922 -:101D800000204811000000000000A1FC00204411C8 -:101D900000000000000000010020481100000000C9 -:101DA0000001A1FD00604411000002E900003FFFB6 -:101DB000002F022F00000000000000000CC00000F7 -:101DC0000000025600000000C040040000000001B6 -:101DD0000000001040210620000000000000FFFF6E -:101DE000C0280A20000000000000001040210E2042 -:101DF000000000000000FFFFC028122000000000CB -:101E00000000001040211620000000000000FFFF2D -:101E1000C0881A200000000081000000002044114A -:101E20000000000000000001002048110000000038 -:101E300000042004006044110000067C0000000043 -:101E4000006000000000062400000000C0600000E8 -:101E5000000002A30000000500200A2D0000000081 -:101E60000000000800220A22000000000000002BF1 -:101E700000201A2D000000000000001C00201E2D74 -:101E8000000000000000700000281E270000000075 -:101E90000000000000311CE6000000000000002AE5 -:101EA00000201A2D000000000000000C00221A265D -:101EB0000000000000000000002F00E6000000000D -:101EC0000000000006E00000000002920000000098 -:101ED00000201C11000000000000000000200C1178 -:101EE000000000000000002B00203623000000004E -:101EF0000000001000201811000000000000000089 -:101F000000691CE20000012F9380000000204411B2 -:101F10000000000000000000002048070000000052 -:101F200095000000002044110000000000000000A7 -:101F3000002F022F00000000000000000CE0000055 -:101F40000000029D0000000100333E2F0000000051 -:101F500000000000D90048000000000092000000CE -:101F6000002044110000000000000000C0204800D4 -:101F7000000000000000001C0040362700000000A8 -:101F80000000000CC0220A20000000000000002910 -:101F9000002036220000000000000028C04036204B -:101FA000000000000000A2A4002044110000000076 -:101FB000000000090020481100000000A1000000FE -:101FC00000204411000000000000000100804811C2 -:101FD000000000000000002100201E2D0000000075 -:101FE00000000000002C1CE30000000000000021A5 -:101FF00000203627000000000000002200201E2DD7 -:102000000000000000000000002C1CE400000000A4 -:1020100000000022002036270000000000000023FE -:1020200000201E2D0000000000000000003120A351 -:102030000000000000000000002D1D07000000004F -:1020400000000023002036270000000000000024CC -:1020500000201E2D0000000000000000003120C400 -:102060000000000000000000002D1D07000000001F -:10207000000000240080362700000000000000213E -:10208000002036230000000000000022002036243B -:10209000000000000000000000311CA30000000050 -:1020A0000000002300203627000000000000000090 -:1020B00000311CC40000000000000024008036270E -:1020C000000000000000001A002036270000000079 -:1020D0000000001B00203628000000000000001750 -:1020E00000201E2D00000000000000020021022739 -:1020F000000000000000000014C00000000002DC2E -:102100000000000000400000000002D90000001A9A -:1021100000203627000000000000001B00203628A9 -:10212000000000000000001700201E2D000000002D -:102130000000000200210227000000000000000053 -:1021400014E00000000002D9000000030021022773 -:10215000000000000000000014E00000000002DCAD -:102160000000002300201E2D0000000000000000E1 -:10217000002E00E1000000000000000002C000008E -:10218000000002DC0000002100201E2D00000000E5 -:1021900000000000003120A100000000000000004D -:1021A000002E00E8000000000000000006C0000053 -:1021B000000002DC0000002400201E2D00000000B2 -:1021C00000000000002E00E20000000000000000FF -:1021D00002C00000000002DC0000002200201E2DD2 -:1021E0000000000000000000003120C200000000DC -:1021F00000000000002E00E80000000000000000C9 -:1022000006C00000000002DC0000000000600000CA -:10221000000006590000000000600000000002B548 -:102220000000000000400000000002DE000000008E -:1022300000600000000002B5000000000060000027 -:10224000000006500000000000400000000002DE18 -:102250000000000000600000000002A70000000075 -:1022600000400000000002DE0000001A00201E2DC9 -:10227000000000000000001B0080222D0000000074 -:102280000000001000221E230000000000000000DB -:1022900000294887000000000000000000311CA356 -:1022A000000000000000001000221E2700000000B7 -:1022B0000000000000294887000000000000001016 -:1022C00000221E230000000000000000003120C496 -:1022D000000000000000FFFF00282228000000008E -:1022E0000000000000894907000000000000001005 -:1022F00000221E2300000000000000000029488783 -:10230000000000000000001000221E21000000005C -:102310000000000000294847000000000000000005 -:1023200000311CA3000000000000001000221E2746 -:1023300000000000000000000029488700000000A5 -:102340000000000000311CA100000000000000108F -:1023500000221E270000000000000000002948475E -:10236000000000000000001000221E2300000000FA -:1023700000000000003120C4000000000000FFFF4A -:102380000028222800000000000000000029490762 -:10239000000000000000001000221E2100000000CC -:1023A00000000000003120C2000000000000FFFF1C -:1023B00000282228000000000000000000894907D2 -:1023C000000000000000001000221E23000000009A -:1023D0000000000000294887000000000000000104 -:1023E00000220A210000000000000000003308A2C3 -:1023F000000000000000001000221E22000000006B -:102400000000001000212222000000000000000057 -:1024100000294907000000000000000000311CA353 -:10242000000000000000001000221E270000000035 -:1024300000000000002948870000000000000001A3 -:1024400000220A210000000000000000003008A265 -:10245000000000000000001000221E22000000000A -:1024600000000010002122220000000000000000F7 -:1024700000294907000000000000001000221E2370 -:102480000000000000000000003120C40000000037 -:102490000000FFFF002822280000000000000000CC -:1024A000002949070000000000000000003808C5AE -:1024B00000000000000000000030084100000000A3 -:1024C0000000000100220A220000000000000000BD -:1024D000003308A2000000000000001000221E22AD -:1024E0000000000000000010002122220000000077 -:1024F00000000000008949070000000000000017EC -:102500000020222D000000000000000014C0000088 -:1025100000000318FFFFFFEF002806210000000065 -:10252000000000140020222D000000000000F8E050 -:1025300000204411000000000000000000294901B3 -:1025400000000000000000000089490100000000B8 -:102550000000000000204811000000000000000002 -:102560000020481100000000060A02000080481107 -:102570000000000000000000C0200000000000007B -:1025800097000000C020441100000000000000007F -:10259000C0204811000000008A0000000020441103 -:1025A00000000000000000000020481100000000B2 -:1025B0000000225C00204411000000000000000028 -:1025C000C0204800000000000000A1FC00204411D1 -:1025D0000000000000000000C020480000000000D3 -:1025E00000000000C0200400000000000000000007 -:1025F00000A0000A00000000970000000020441125 -:102600000000000000000000002048110000000051 -:102610008A000000002044110000000000000000BB -:1026200000204811000000000000225C002044113E -:102630000000000000000000C02048000000000072 -:102640000000A1FC00204411000000000000000078 -:10265000C02048000000000000000000C02004006E -:10266000000000000000000000A0000A00000000C0 -:10267000970000000020441100000000000000004E -:1026800000204811000000008A00000000204411D2 -:1026900000000000000000000020481100000000C1 -:1026A0000000225C00204411000000000000000037 -:1026B000C0204800000000000000A1FC00204411E0 -:1026C0000000000000000000C020480000000000E2 -:1026D0000001A1FD002044110000000000000000E6 -:1026E000D90048000000000000000000C0200400E5 -:1026F000000000000000000000A0000A0000000030 -:1027000000002257002044110000000000000003D8 -:10271000C0484A20000000000000225D0020441153 -:102720000000000000000000C04048000000000061 -:1027300000000000006000000000063800000000FB -:10274000C0200800000000000000225C00204411AE -:10275000000000000000000300384A2200000000D2 -:102760000000A1FC00204411000000000000000057 -:10277000C0204800000000000001A1FD002044111D -:102780000000000000000000002F022200000000F6 -:10279000000000000CE0000000000000000000004D -:1027A00040204800000000000000000140304A20A6 -:1027B0000000000000000002C0304A2000000000BD -:1027C0000000000100530A220000034B0000003FFC -:1027D000C0280A20000000008100000000204411F1 -:1027E000000000000000000100204811000000006F -:1027F000000021F800204411000000000000001833 -:102800000020481100000000000421F9006044117C -:102810000000067C000000110021023000000000D2 -:102820000000000014E00000000003540000001449 -:10283000002F022200000000000000000CC0000079 -:10284000000003620001A2A4002044110000000067 -:1028500000000000006048020000036A0000210040 -:10286000002044110000000000000000C0204800CB -:102870000000000000000000C02048000000000030 -:1028800000000000C0204800000000000000000020 -:10289000C04048000000000000000004002F022299 -:1028A00000000000000000000CC0000000000366F3 -:1028B0000001A2A40020441100000000000000005C -:1028C000004048020000035D00000028002F0222A3 -:1028D00000000000000000000CC00000000005B374 -:1028E0000001A2A40020441100000000000000002C -:1028F000004048020000035D0000002C0020362646 -:102900000000000000000049002018110000000035 -:102910000000003F002048110000000000000001FE -:1029200000331A260000000000000000002F0226DD -:1029300000000000000000000CC000000000036C5C -:102940000000002C00801A2D000000000000003F55 -:10295000C0280A200000000000000015002F0222FD -:1029600000000000000000000CE0000000000382F6 -:1029700000000006002F02220000000000000000FE -:102980000CE00000000003AD00000016002F022242 -:1029900000000000000000000CE00000000003AF99 -:1029A00000000020002F02220000000000000000B4 -:1029B0000CE00000000003980000000F002F02222E -:1029C00000000000000000000CE00000000003A474 -:1029D00000000010002F0222000000000000000094 -:1029E0000CE00000000003A40000001E002F0222E3 -:1029F00000000000000000000CE000000000038C5C -:102A00000000A2A40020441100000000000000000B -:102A100000404802000000000800000000290A22CF -:102A2000000000000000000340210E200000000014 -:102A30000000000CC021122000000000000800006F -:102A4000002812240000000000000014C0221620FC -:102A50000000000000000000002914A40000000095 -:102A60000000A2A4002044110000000000000000AB -:102A7000002948A2000000000000A1FE002044112F -:102A800000000000000000000040480300000000BB -:102A9000810000000020441100000000000000013F -:102AA0000020481100000000000021F8002044111F -:102AB0000000000000000016002048110000000087 -:102AC000000421F9006044110000067C000000159C -:102AD00000210230000000000000000014E00000AF -:102AE0000000038E0000210E0020441100000000B1 -:102AF00000000000C02048000000000000000000AE -:102B0000C0204800000000000000A2A400204411E2 -:102B1000000000000000000000404802000000002B -:102B200081000000002044110000000000000001AE -:102B30000020481100000000000021F8002044118E -:102B400000000000000000170020481100000000F5 -:102B5000000421F9006044110000067C000000031D -:102B600000210230000000000000000014E000001E -:102B70000000039A0000210800204411000000001A -:102B800000000000C020480000000000000000001D -:102B9000C0204800000000000000A2A40020441152 -:102BA000000000000000000000404802000000009B -:102BB0000000A2A40020441100000000000000005A -:102BC00000204802000000008000000000204411A6 -:102BD000000000000000000000204811000000007C -:102BE00081000000002044110000000000000010DF -:102BF000002048110000000000000000002000102C -:102C0000000000000000000014C00000000003AA43 -:102C10000000000000400000000000000001A2A42D -:102C20000020441100000000000000060040481190 -:102C3000000000000001A2A40020441100000000D8 -:102C400000000016006048110000036A0000000048 -:102C5000004000000000000000000000C02008004C -:102C60000000000000000000C0200C000000000078 -:102C70000000001D002102230000000000000000F1 -:102C800014E00000000003C4810000000020441193 -:102C900000000000000000010020481100000000BA -:102CA000000021F80020441100000000000000187E -:102CB0000020481100000000000421F900604411C8 -:102CC0000000067C0000001100210230000000001E -:102CD0000000000014E00000000003B80000210024 -:102CE0000020441100000000000000000020480205 -:102CF0000000000000000000002048030000000069 -:102D0000BABECAFE0020481100000000CAFEBABECA -:102D100000204811000000000000A2A4002044117F -:102D20000000000000000004004048110000000006 -:102D3000000021700020441100000000000000008D -:102D400000204802000000000000000000204803AE -:102D5000000000008100000000204411000000007D -:102D60000000000A002048110000000000000000E0 -:102D700000200010000000000000000014C000004F -:102D8000000003C98C000000002044110000000076 -:102D9000CAFEBABE004048110000000081000000D9 -:102DA0000020441100000000000000010020481134 -:102DB0000000000000003FFF40280A200000000043 -:102DC0008000000040280E200000000040000000AD -:102DD000C028122000000000000400000069462204 -:102DE0000000067C0000000000201410000000001D -:102DF00000000000002F022300000000000000007F -:102E00000CC00000000003D700000000C040180004 -:102E1000000003DA00003FFFC0281A200000000075 -:102E200000040000006946260000067C0000000047 -:102E3000002018100000000000000000002F0224F5 -:102E400000000000000000000CC00000000003DDD6 -:102E500000000000C0401C00000003E000003FFF35 -:102E6000C0281E2000000000000400000069462762 -:102E70000000067C0000000000201C100000000084 -:102E800000000000002044020000000000000000DC -:102E9000002820C50000000000000000004948E8AC -:102EA00000000000A58000000020081100000000C4 -:102EB0000000200000200C11000000008300000032 -:102EC00000604411000004080000000000204402DB -:102ED0000000000000000000C020480000000000CA -:102EE0000000000040204800000000000000001F1B -:102EF000C0210220000000000000000014C00000FB -:102F0000000003ED0000201000204411000000002C -:102F10000000800000204811000000000000FFFFBA -:102F2000C0481220000003F5A7800000002008110F -:102F3000000000000000A00000200C1100000000B4 -:102F4000830000000060441100000408000000003D -:102F5000002044020000000000000000C0204800E3 -:102F60000000000000000000C02048000000000039 -:102F70000000FFFFC02812200000000083000000B6 -:102F800000204411000000000000000000304883D1 -:102F90000000000084000000002044110000000038 -:102FA00000000000C02048000000000000000000F9 -:102FB0001D000000000000008300000000604411BC -:102FC0000000040800000000C040040000000001F0 -:102FD000A980000000200811000000000000C000CF -:102FE00000400C11000003F0AB800000002008112D -:102FF000000000000000F8E000400C11000003F0A9 -:10300000AD80000000200811000000000000F880E2 -:1030100000400C11000003F0B380000000200811F4 -:10302000000000000000F3FC00400C11000003F061 -:10303000AF80000000200811000000000000E00048 -:1030400000400C11000003F0B180000000200811C6 -:10305000000000000000F00000400C11000003F030 -:1030600083000000002044110000000000002148FF -:1030700000204811000000008400000000204411DE -:103080000000000000000000C02048000000000018 -:10309000000000001D000000000000000000000013 -:1030A000008000000000000001182000C030462011 -:1030B0000000000000000000D900480000000000EF -:1030C00000000000C020040000000000000000001C -:1030D00000A0000A000000000218A000C030462036 -:1030E0000000000000000000D900480000000000BF -:1030F00000000000C02004000000000000000000EC -:1031000000A0000A000000000318C000C0304620E4 -:103110000000000000000000D9004800000000008E -:1031200000000000C02004000000000000000000BB -:1031300000A0000A000000000418F8E0C03046209B -:103140000000000000000000D9004800000000005E -:1031500000000000C020040000000000000000008B -:1031600000A0000A000000000518F880C0304620CA -:103170000000000000000000D9004800000000002E -:1031800000000000C020040000000000000000005B -:1031900000A0000A000000000618E000C030462031 -:1031A0000000000000000000D900480000000000FE -:1031B00000000000C020040000000000000000002B -:1031C00000A0000A000000000718F000C0304620F0 -:1031D0000000000000000000D900480000000000CE -:1031E00000000000C02004000000000000000000FB -:1031F00000A0000A000000000818F3FCC0304620C0 -:103200000000000000000000D9004800000000009D -:1032100000000000C02004000000000000000000CA -:1032200000A0000A000000000000003000200A2D6D -:103230000000000000000000C0290C400000000059 -:1032400000000030002036230000000000000000D5 -:10325000C0200400000000000000000000A0000AE0 -:103260000000000086000000002044110000000063 -:103270000000000000404801000000008500000040 -:10328000C020441100000000000000000040480180 -:10329000000000000000217C00204411000000001C -:1032A00000000000C02048000000000000000000F6 -:1032B000C02048000000000000000000C0204800BE -:1032C0000000000081000000002044110000000008 -:1032D0000000000100204811000000000000000074 -:1032E000C0200800000000000000000017000000DF -:1032F000000000000004217F006044110000067CF3 -:103300000000001F0021023000000000000000004B -:1033100014C00000000000000000000000404C024B -:103320000000043E00000000C0200C00000000006F -:1033300000000000C020100000000000000000009D -:10334000C02014000000000000000000C020180091 -:103350000000000000000000C0201C000000000071 -:1033600000007F0000280A21000000000000450046 -:10337000002F022200000000000000000CE000000E -:103380000000044C00000000C020200000000000ED -:103390000000000017000000000000000000001006 -:1033A00000280A230000000000000010002F022265 -:1033B00000000000000000000CE0000000000454C9 -:1033C0008100000000204411000000000000000106 -:1033D000002048110000000000040000006946249D -:1033E0000000067C000000000040000000000459BE -:1033F00081000000002044110000000000000000D7 -:1034000000204811000000000000216D0020441140 -:103410000000000000000000002048040000000040 -:103420000000000000604805000006810000000068 -:10343000002824F0000000000000000700280A23F4 -:103440000000000000000001002F02220000000028 -:10345000000000000AE0000000000460000000001E -:10346000002F00C9000000000000000004E0000080 -:103470000000047900000000004000000000048605 -:1034800000000002002F02220000000000000000E7 -:103490000AE000000000046500000000002F00C9E1 -:1034A000000000000000000002E0000000000479BD -:1034B000000000000040000000000486000000033F -:1034C000002F022200000000000000000AE00000BF -:1034D0000000046A00000000002F00C90000000086 -:1034E000000000000CE00000000004790000000073 -:1034F000004000000000048600000004002F0222AB -:1035000000000000000000000AE000000000046F5E -:1035100000000000002F00C90000000000000000B3 -:103520000AE00000000004790000000000400000F4 -:103530000000048600000005002F022200000000A9 -:10354000000000000AE00000000004740000000019 -:10355000002F00C9000000000000000006E000008D -:103560000000047900000000004000000000048614 -:1035700000000006002F02220000000000000000F2 -:103580000AE000000000047900000000002F00C9DC -:10359000000000000000000008E0000000000479C6 -:1035A00000000000004000000000048600007F00D2 -:1035B00000280A210000000000004500002F022220 -:1035C00000000000000000000AE000000000000011 -:1035D0000000000800210A23000000000000000095 -:1035E00014C0000000000483000021690020441181 -:1035F0000000000000000000C020480000000000A3 -:1036000000000000C0204800000000000000000092 -:10361000C020480000000000CAFEBABE00404811A9 -:103620000000000000000000C02044000000000076 -:1036300000000000C02000000000000000000000AA -:10364000C04048000000000000007F0000280A2160 -:103650000000000000004500002F022200000000D2 -:10366000000000000AE000000000048C00000000E0 -:10367000C02000000000000000000000C02000008A -:103680000000000000000000C0400000000000003A -:103690000000000000404C080000044C0000000046 -:1036A000C0200800000000000000001040210E2093 -:1036B0000000000000000011402112200000000066 -:1036C00000000012402116200000000000002169C7 -:1036D000002044110000000000000000002048020B -:1036E0000000000000000000002102250000000092 -:1036F0000000000014E00000000004960004000038 -:10370000C0494A2000000497FFFBFFFFC0284A2061 -:103710000000000000000000002102230000000063 -:103720000000000014E00000000004A300000000FE -:10373000C02048000000000000000000C020480039 -:103740000000000000000000002102240000000032 -:103750000000000014C00000000000008100000014 -:1037600000204411000000000000000C002048115F -:103770000000000000000000002000100000000019 -:103780000000000014C000000000049FA000000022 -:103790000020441100000000CAFEBABE00404811DB -:1037A0000000000081000000002044110000000023 -:1037B0000000000400204811000000000000216B00 -:1037C000002044110000000000000000C02048104C -:1037D00000000000810000000020441100000000F3 -:1037E0000000000500204811000000000000216CCE -:1037F000002044110000000000000000C02048101C -:103800000000000000000000002F02240000000063 -:10381000000000000CE000000000000000000000BC -:10382000004000000000049D00000000C0210A20AC -:10383000000000000000000014C00000000004B6FA -:103840008100000000204411000000000000000082 -:1038500000204811000000000000216D00204411EC -:103860000000000000000000C02048000000000030 -:1038700000000000C0604800000006810000000059 -:1038800000400000000004BA810000000020441144 -:1038900000000000000000010020481100000000AE -:1038A00000040000C02946200000000000000000C5 -:1038B000C06000000000067C000000010021022220 -:1038C000000000000000000014C00000000004C15F -:1038D00000002169002044110000000000000000E9 -:1038E000C02048000000000000000000C020480088 -:1038F0000000000000000000002048100000000050 -:10390000CAFEBABE004048110000000000000000DE -:10391000C02044000000000000000000C04048102B -:1039200000000000810000000020441100000000A1 -:10393000000000010020481100000000000021F8F4 -:1039400000204411000000000000000E002048117B -:1039500000000000000421F9006044110000067C12 -:103960000000000000210230000000000000000004 -:1039700014C00000000004C3000021800020441196 -:103980000000000000000000C0204800000000000F -:1039900000000000C0200000000000000000000047 -:1039A000C02048000000000000000000C02000000F -:1039B0000000000000000000C040480000000000BF -:1039C0000000000300333E2F000000000000000153 -:1039D00000210221000000000000000014E00000AF -:1039E000000004F30000002C00200A2D000000005D -:1039F0000004000018E00C11000004E200000001C7 -:103A000000333E2F00000000000021690020441117 -:103A1000000000000000000000204802000000003C -:103A20000000000000204803000000000000000823 -:103A300000300A220000000000000000C020480002 -:103A40000000000000000000C0204800000000004E -:103A50000000216900204411000000000000000067 -:103A60000020480200000000000000000020480381 -:103A7000000000000000000800300A2200000000E2 -:103A800000000000C020480000000000000000000E -:103A9000D8C04800000004D600002169002044116D -:103AA00000000000000000000020480200000000AC -:103AB0000000000000204803000000000000000893 -:103AC00000300A220000000000000000C020480072 -:103AD0000000000000000000C020480000000000BE -:103AE0000000002D0020122D00000000000000004A -:103AF00000290C830000000000002169002044110F -:103B0000000000000000000000204802000000004B -:103B10000000000000204803000000000000000832 -:103B200000300A220000000000000000C020480011 -:103B30000000000000000000C0204800000000005D -:103B4000000000110021022400000000000000001D -:103B500014C0000000000000000000000040000051 -:103B60000000049D0000002CC02036200000000052 -:103B70000000002DC0403620000000000000000FB3 -:103B800000210221000000000000000014C000001D -:103B9000000004F800000000006000000000000BBE -:103BA00000000000D900000000000000000000003C -:103BB000C040040000000001B500000000204411D6 -:103BC000000000000000200000204811000000005C -:103BD000B600000000204411000000000000A0001A -:103BE0000020481100000000B70000000020441130 -:103BF000000000000000C00000204811000000008C -:103C0000B800000000204411000000000000F8E0AF -:103C10000020481100000000B900000000204411FD -:103C2000000000000000F8800020481100000000A3 -:103C3000BA00000000204411000000000000E00075 -:103C40000020481100000000BB00000000204411CB -:103C5000000000000000F0000020481100000000FB -:103C6000BC00000000204411000000000000F3FC34 -:103C700000204811000000008100000000204411D5 -:103C800000000000000000020020481100000000B9 -:103C9000000000FF00280E300000000000000000BF -:103CA000002F022300000000000000000CC00000F4 -:103CB0000000050C00000000C0200800000000000B -:103CC0000000000014C000000000052100000000FA -:103CD00000200C11000000000000001C0020362312 -:103CE000000000000000002B002036230000000030 -:103CF00000000029002036230000000000000028FA -:103D000000203623000000000000001700203623AA -:103D10000000000000000025002036230000000005 -:103D200000000026002036230000000000000015DF -:103D3000002036230000000000000016002036237B -:103D400000000000FFFFE00000200C110000000058 -:103D500000000021002036230000000000000022A7 -:103D6000002036230000000000001FFF00200C117F -:103D700000000000000000230020362300000000A7 -:103D8000000000240020362300000000F1FFFFFFA8 -:103D900000283A2E000000000000001AC0220E2069 -:103DA00000000000000000000029386E0000000044 -:103DB0008100000000204411000000000000000607 -:103DC00000204811000000000000002A402036209A -:103DD00000000000870000000020441100000000E7 -:103DE00000000000C0204800000000000000A1F416 -:103DF00000204411000000000000000000204810D6 -:103E0000000000000000000000200C110000000075 -:103E10000000003000203623000000009D0000005C -:103E200000204411000000000000001F40214A2033 -:103E30000000000096000000002044110000000077 -:103E400000000000C020480000000000000000004A -:103E5000C0200C000000000000000000C020100086 -:103E6000000000000000001F0021162400000000D8 -:103E70000000000014C00000000000000000001D51 -:103E800000203623000000000000000300281E234D -:103E900000000000000000080022222300000000B3 -:103EA000FFFFF000002822280000000000000000B2 -:103EB000002920E8000000000000001F0020362834 -:103EC000000000000000001800211E230000000078 -:103ED0000000002000203627000000000000000243 -:103EE000002216240000000000000000003014A88A -:103EF000000000000000001E002036250000000029 -:103F00000000000300211A2400000000100000003F -:103F100000281A2600000000EFFFFFFF00283A2EBD -:103F20000000000000000000004938CE0000066AD2 -:103F30000000000140280A200000000000000006E8 -:103F400040280E200000000000000300C0281220BE -:103F50000000000000000008002112240000000002 -:103F600000000000C020162000000000000000003B -:103F7000C0201A20000000000000000000210222E2 -:103F8000000000000000000014C0000000000559FF -:103F9000810000000020441100000000000000012A -:103FA00000204811000000000000225800300A24C0 -:103FB0000000000000040000006946220000067CAA -:103FC00000002169002044110000000000000000F2 -:103FD00000204805000000000002000000294A26D9 -:103FE0000000000000000000002048100000000059 -:103FF000CAFEBABE00204811000000000000000206 -:10400000002F022300000000000000000CC0000090 -:104010000000056100000000C0201C10000000002E -:1040200000000000C04000000000056F000000021A -:10403000002F022300000000000000000CC0000060 -:104040000000056181000000002044110000000014 -:10405000000000010020481100000000000022586C -:1040600000300A240000000000040000006946221D -:104070000000067C00000000C0201C1000000000B2 -:1040800000000000C04000000000056F00000000BC -:10409000002F022300000000000000000CC0000000 -:1040A0000000056500000000C0201C0000000000AA -:1040B00000000000C04000000000056F0000000488 -:1040C000002F022300000000000000000CC00000D0 -:1040D0000000056D81000000002044110000000078 -:1040E0000000000000204811000000000000216DC9 -:1040F000002044110000000000000000C020480023 -:104100000000000000000000C060480000000681C0 -:104110000000000000401C100000056F00000000BF -:10412000C02000000000000000000000C0400000AF -:1041300000000000000000000EE00000000005711B -:104140000000000000600000000005BC000000004E -:10415000002F022400000000000000000CC000003E -:10416000000005820000A2B70020441100000000FA -:10417000000000000020480700000000810000004F -:104180000020441100000000000000010020481140 -:10419000000000000004A2B6006044110000067C8C -:1041A0000000001A0021223000000000000000067C -:1041B00000222630000000000004200400604411AA -:1041C0000000067C0000A2C4002044110000000092 -:1041D00000000000003048E900000000000000007E -:1041E00000E00000000005800000A2D10020441182 -:1041F000000000000000000000404808000000002F -:104200000000A2D1002044110000000000000001C5 -:1042100000504A280000000000000001002F022486 -:1042200000000000000000000CC00000000005932A -:104230000000A2BB002044110000000000000000AC -:104240000020480700000000810000000020441109 -:1042500000000000000000010020481100000000E4 -:104260000004A2BA006044110000067C0000001A9D -:10427000002122300000000000000006002226304D -:104280000000000000042004006044110000067CCF -:104290000000A2C500204411000000000000000042 -:1042A000003048E9000000000000000000E00000CD -:1042B000000005910000A2D200204411000000007F -:1042C0000000000000404808000000000000A2D2EA -:1042D00000204411000000000000000100504A28A6 -:1042E0000000000000000002002F02240000000077 -:1042F000000000000CC00000000005A40000A2BFE8 -:1043000000204411000000000000000000204807C9 -:1043100000000000810000000020441100000000A7 -:104320000000000100204811000000000004A2BEAF -:10433000006044110000067C0000001A00212230B9 -:1043400000000000000000060022263000000000EF -:1043500000042004006044110000067C0000A2C696 -:10436000002044110000000000000000003048E977 -:10437000000000000000000000E00000000005A2B6 -:104380000000A2D300204411000000000000000043 -:1043900000404808000000000000A2D300204411A3 -:1043A000000000000000000100504A28000000004A -:1043B0000000A2C300204411000000000000000023 -:1043C0000020480700000000810000000020441188 -:1043D0000000000000000001002048110000000063 -:1043E0000004A2C2006044110000067C0000001A14 -:1043F00000212230000000000000000600222630CC -:104400000000000000042004006044110000067C4D -:104410000000A2C7002044110000000000000000BE -:10442000003048E9000000000000000000E000004B -:10443000000005B10000A2D40020441100000000DB -:104440000000000000404808000000000000A2D466 -:1044500000204411000000000000000100504A2824 -:104460000000000085000000002044110000000052 -:104470000000000000204801000000000000304A59 -:10448000002044110000000001000000002048113D -:10449000000000000000000000400000000005B720 -:1044A000A4000000C0204411000000000000000033 -:1044B000C04048000000000000000000C060000094 -:1044C000000005BC00000000C04004000000000126 -:1044D0000000002C002036210000000081000000B8 -:1044E00000204411000000000000000600204811D8 -:1044F0000000000000000000002F0230000000005B -:10450000000000000CC00000000005C30000000017 -:10451000002004110000000000000030004036219F -:10452000000005D6000000300020062D000000002D -:1045300000007E00002806210000000000000000AE -:10454000002F022100000000000000000CE000002D -:10455000000005D68100000000204411000000008A -:104560000000000100204811000000000004A0929B -:10457000006044110000067C00000031002036304D -:10458000000000000004A093006044110000067CBD -:104590000000003200203630000000000004A2B607 -:1045A000006044110000067C00000033002036301B -:1045B000000000000004A2BA006044110000067C64 -:1045C0000000003400203630000000000004A2BECD -:1045D000006044110000067C0000003500203630E9 -:1045E000000000000004A2C2006044110000067C2C -:1045F00000000036002036300000000000042004D7 -:10460000006044110000067C0001A2A400204411B7 -:10461000000000000000003F0020481100000000E2 -:104620000000003F00204811000000000000003F93 -:1046300000204811000000000000003F0020481149 -:1046400000000000000000050020481100000000EC -:104650000000A1F400204411000000000000000050 -:1046600000204811000000008800000000204411D4 -:1046700000000000000000010020481100000000C0 -:10468000810000000020441100000000000000062E -:10469000002048110000000000000001002F02303F -:1046A00000000000000000000CE000000000061FF9 -:1046B000000000300020062D000000000000000077 -:1046C000002F022100000000000000000CE00000AC -:1046D0000000061F810000000020441100000000BF -:1046E00000000001002048110000000000007E00D2 -:1046F000002806210000000000000000002F022119 -:1047000000000000000000000CE00000000005F8C0 -:104710000000A092002044110000000000000031C1 -:1047200000204A2D000000000000A093002044114A -:10473000000000000000003200204A2D00000000B0 -:104740000000A2B600204411000000000000003369 -:1047500000204A2D000000000000A2BA00204411F1 -:10476000000000000000003400204A2D000000007E -:104770000000A2BE0020441100000000000000352F -:1047800000204A2D000000000000A2C200204411B9 -:10479000000000000000003600204A2D000000004C -:1047A000000000300020062D00000000000001FF86 -:1047B000002806210000000000000000002F022158 -:1047C00000000000000000000CE000000000061ED9 -:1047D0000000000000210221000000000000000095 -:1047E00014C00000000006010004A0030060441192 -:1047F0000000067C0000A00300204411000000001F -:10480000000000000020481000000000000000012F -:1048100000210621000000000000000014C000007C -:10482000000006060004A010006044110000067C91 -:104830000000A01000204411000000000000000053 -:1048400000204810000000000000000100210621A7 -:104850000000000000000000002F02210000000006 -:10486000000000000CE000000000061E0004A01183 -:10487000006044110000067C0000A01100204411DB -:1048800000000000000000000020481000000000B0 -:104890000004A012006044110000067C0000A01279 -:1048A000002044110000000000000000002048101B -:1048B000000000000004A013006044110000067C0A -:1048C0000000A013002044110000000000000000C0 -:1048D00000204810000000000004A01400604411F3 -:1048E0000000067C0000A01400204411000000001D -:1048F0000000000000204810000000000004A01587 -:10490000006044110000067C0000A0150020441146 -:10491000000000000000000000204810000000001F -:104920000004A016006044110000067C0000A016E0 -:10493000002044110000000000000000002048108A -:10494000000000000004A017006044110000067C75 -:104950000000A0170020441100000000000000002B -:1049600000204810000000000004200400604411F2 -:104970000000067C0000002C0080062D00000000D6 -:10498000FF000000002044110000000000000000B3 -:104990000020481100000000000000010020481124 -:1049A000000000000000000200804811000000002C -:1049B000000000000EE000000000063000000030A3 -:1049C0000020062D00000000000000020028062143 -:1049D0000000000000000000002F02210000000085 -:1049E000000000000CE000000000062E8100000026 -:1049F00000204411000000000000000100204811C8 -:104A00000000000000042004006044110000067C47 -:104A10000000100000200811000000000000002B22 -:104A200000203622000000000000000000600000AE -:104A3000000006340000000000600000000005BC1B -:104A40009800000000204411000000000000000059 -:104A5000008048110000000000000000C06000005D -:104A60000000063400000000C04004000000000107 -:104A70000000A2A400204411000000000000002259 -:104A800000204811000000008900000000204411AF -:104A90000000000000000001004048110000062056 -:104AA00097000000002044110000000000000000FA -:104AB00000204811000000008A000000002044117E -:104AC0000000000000000000004048110000062027 -:104AD00000000000006000000000064D0001A2A4DC -:104AE000C0204411000000000000001600604811C2 -:104AF0000000036A000020100020441100000000A4 -:104B000000010000002048110000000081000000AA -:104B100000204411000000000000000100204811A6 -:104B2000000000000000217C002044110000000073 -:104B3000098000000020481100000000FFFFFFFF77 -:104B40000020481100000000000000000020481173 -:104B5000000000000000000017000000000000003E -:104B60000004217F006044110000067C0000001F4B -:104B700000210230000000000000000014C000000E -:104B8000000000000000000400404C110000064737 -:104B900000000000004000000000000000000017BE -:104BA00000201E2D000000000000000400291E2728 -:104BB0000000000000000017008036270000000001 -:104BC0000000001700201E2D00000000FFFFFFFB6B -:104BD00000281E2700000000000000170080362774 -:104BE000000000000000001700201E2D0000000043 -:104BF0000000000800291E27000000000000001728 -:104C000000803627000000000000001700201E2D45 -:104C100000000000FFFFFFF700281E270000000033 -:104C20000000001700803627000000000001A2A449 -:104C30000020441100000000000000160060481130 -:104C40000000036A00002010002044110000000052 -:104C50000001000000204811000000000000217C3D -:104C600000204411000000000180000000204811D5 -:104C700000000000FFFFFFFF0020481100000000BF -:104C800000000000002048110000000000000000AB -:104C90001700000000000000810000000020441107 -:104CA000000000000000000100204811000000008A -:104CB0000004217F006044110000067C0000001FFA -:104CC00000210230000000000000000014C00000BD -:104CD0000000067B0000001000404C11000006613F -:104CE00000000000C02004000000000000000000E0 -:104CF00038C00000000000000000001D00200A2D48 -:104D0000000000000000001E00200E2D000000002A -:104D10000000001F0020122D0000000000000020F5 -:104D20000020162D00000000000021690020441121 -:104D30000000000000000000002048040000000007 -:104D400000000000002048050000000000000000F6 -:104D50000020480100000000CAFEBABE0020481131 -:104D600000000000000000040030122400000000D9 -:104D700000000000002F00640000000000000000A0 -:104D80000CC000000000067A0000000300281A2270 -:104D900000000000000000080022122200000000B5 -:104DA000FFFFF000002812240000000000000000B7 -:104DB000002910C4000000000000001F004036243D -:104DC0000000000000000000008000000000000063 -:104DD000000000001AC000000000067C9F000000D8 -:104DE0000020441100000000CAFEBABE0020481195 -:104DF00000000000000000001AE000000000067F34 -:104E00000000000000800000000000000000000022 -:104E10001AC00000000006819E000000002044111E -:104E200000000000CAFEBABE0020481100000000C9 -:104E3000000000001AE000000000068400000000EE -:104E40000080000000000000000000000060000082 -:104E50000000000B000010000060041100000315AA -:104E6000000000000020041100000000000000000D -:104E700000600811000001B20000225C0020441113 -:104E800000000000000000030020481100000000A6 -:104E90000000225600204411000000000000001B0A -:104EA00000204811000000000000A1FC0020441177 -:104EB0000000000000000001002048110000000078 -:104EC0000001A1FDC02044110000000000000021ED -:104ED00000201E2D000000000000001000221E27F0 -:104EE00000000000000000240020222D000000002F -:104EF0000000FFFF00282228000000000000000042 -:104F000000294907000000000000000000204811AF -:104F100000000000000000220020222D0000000000 -:104F20000000FFFF00282228000000000000000011 -:104F3000002949070000000000000000002048117F -:104F4000000000000000002300201E2D00000000D3 -:104F50000000001000221E270000000000000000DA -:104F6000002949070000000000000000004048112F -:104F70000000000000000000000000000000000031 -:104F80000000000000000000000000000000000021 -:104F90000000000000000000000000000000000011 -:104FA0000000000000000000000000000000000001 -:104FB00000000000000000000000000000000000F1 -:104FC00000000000000000000000000000000000E1 -:104FD00000000000000000000000000000000000D1 -:104FE00000000000000000000000000000000000C1 -:104FF00000000000000000000000000000000000B1 -:1050000000000000000000000000000000000000A0 -:105010000000000000000000000000000000000090 -:105020000000000000000000000000000000000080 -:105030000000000000000000000000000000000070 -:105040000000000000000000000000000000000060 -:105050000000000000000000000000000000000050 -:105060000000000000000000000000000000000040 -:105070000000000000000000000000000000000030 -:105080000000000000000000000000000000000020 -:105090000000000000000000000000000000000010 -:1050A0000000000000000000000000000000000000 -:1050B00000000000000000000000000000000000F0 -:1050C00000000000000000000000000000000000E0 -:1050D00000000000000000000000000000000000D0 -:1050E00000000000000000000000000000000000C0 -:1050F00000000000000000000000000000000000B0 -:10510000000000000000000000000000000000009F -:10511000000000000000000000000000000000008F -:10512000000000000000000000000000000000007F -:10513000000000000000000000000000000000006F -:10514000000000000000000000000000000000005F -:10515000000000000000000000000000000000004F -:10516000000000000000000000000000000000003F -:10517000000000000000000000000000000000002F -:10518000000000000000000000000000000000001F -:10519000000000000000000000000000000000000F -:1051A00000000000000000000000000000000000FF -:1051B00000000000000000000000000000000000EF -:1051C00000000000000000000000000000000000DF -:1051D00000000000000000000000000000000000CF -:1051E00000000000000000000000000000000000BF -:1051F00000000000000000000000000000000000AF -:10520000000000000000000000000000000000009E -:10521000000000000000000000000000000000008E -:10522000000000000000000000000000000000007E -:10523000000000000000000000000000000000006E -:10524000000000000000000000000000000000005E -:10525000000000000000000000000000000000004E -:10526000000000000000000000000000000000003E -:10527000000000000000000000000000000000002E -:10528000000000000000000000000000000000001E -:10529000000000000000000000000000000000000E -:1052A00000000000000000000000000000000000FE -:1052B000014204F505B302500000000001C301687B -:1052C000043505B300000000022502090250015117 -:1052D000000000000223024502A00241000000007D -:1052E00003CD05B305B305B300000000063C063D41 -:1052F000031F05B30000000005B305B803200340F9 -:1053000000000000032A0282034203340000000070 -:1053100005B305B305B305B30000000005B30544AC -:1053200005B305B30000000003B205B304AE0344A7 -:1053300000000000048D0443043305B300000000A6 -:1053400004C305B3043704D000000000044304FA8A -:10535000035103710000000005B305B305B305B3A5 -:105360000000000005B305B305B305B3000000005D -:1053700005B305B3063205BA0000000005B305B356 -:10538000000705B30000000005B305B305B305B37E -:105390000000000005B305B305B305B3000000002D -:1053A00003EE03E303FE03FC00000000040404001A -:1053B00004020406000000000412040E041A04167D -:1053C000000000000422041E042A0426000000003D -:1053D00005B305B3042E05B30000000005B305B303 -:1053E00005B305B30000000005B305B305B305B36D -:1053F00000000000000206680686000600000000AB -:00000001FF diff --git a/firmware/radeon/RV670_pfp.bin.ihex b/firmware/radeon/RV670_pfp.bin.ihex deleted file mode 100644 index f55292c97b79..000000000000 --- a/firmware/radeon/RV670_pfp.bin.ihex +++ /dev/null @@ -1,145 +0,0 @@ -:1000000000CA040000A00000007E828B007C038BED -:10001000008001B8007C038B00D4401E00EE001E5F -:1000200000CA040000A00000007E828B00C41838C3 -:1000300000CA240000CA2800009581A800C41C3A08 -:1000400000C3C00000CA080000CA0C00007C744B4A -:1000500000C200050099C00000C41C3A007C744C2A -:1000600000C0FFF000042C0400309002007D250049 -:1000700000351402007D350B00255403007CD5802B -:1000800000259C030095C00400D5001B007EDDC147 -:10009000007D9D8000D6801B00D5801B00D4401EB3 -:1000A00000D5401E00D6401E00D6801E00D4801E03 -:1000B00000D4C01E009783D300D5C01E00CA08001C -:1000C0000080001A00CA0C0000E4011E00D4001ECB -:1000D0000080000C00C4183800E4013E00D4001E6B -:1000E0000080000C00C4183800D4401E00EE001E32 -:1000F00000CA040000A00000007E828B00E4011E04 -:1001000000D4001E00D4401E00EE001E00CA0400F1 -:1001100000A00000007E828B00E4013E00D4001E9F -:1001200000D4401E00EE001E00CA040000A0000023 -:10013000007E828B00CA180000D4401E00D5801EAD -:100140000080005300D4007500D4401E00CA08008F -:1001500000CA0C0000CA100000D4801900D4C018D6 -:1001600000D5001700D4801E00D4C01E00D5001E8C -:1001700000E2001E00CA040000A00000007E828B86 -:1001800000CA080000D4806000D4401E0080000037 -:1001900000D4801E00CA080000D4806100D4401E34 -:1001A0000080000000D4801E00CA080000CA0C00B5 -:1001B00000D4401E00D4801600D4C01600D4801E87 -:1001C000008001B800D4C01E00C6084300CA0C005D -:1001D00000CA10000094800400CA140000E420F358 -:1001E00000D4201300D5606500D4E01C00D5201C8D -:1001F00000D5601C008000000006200100C60843F6 -:1002000000CA0C0000CA1000009483F700CA140052 -:1002100000E420F30080007900D4201300C60843D6 -:1002200000CA0C0000CA1000009883EF00CA140036 -:1002300000D400640080008D0000000000C414326F -:1002400000C6184300C4082F0095400500C40C30B8 -:1002500000D4401E0080000000EE001E009583F5D3 -:1002600000C4103100D4403300D5206500D4A01C58 -:1002700000D4E01C00D5201C00E4015E00D4001E68 -:10028000008000000006200100CA1800000A2001BA -:1002900000D6007600C408360098800700C61045D6 -:1002A0000095011000D4001F00D46062008000009F -:1002B00000D4206200CC383500CC1433008401BB5C -:1002C00000D4007200D5401E0080000000EE001E29 -:1002D00000E2001A008401BB00E2001A00CC104BBF -:1002E00000CC0447002C9401007D098B0098400548 -:1002F000007D15CB00D4001A008001B800D4006D39 -:100300000034440100CC0C480098403A00CC2C4A00 -:100310000095800400CC0449008001B800D4001A84 -:1003200000D4C01A00282801008400F000CC10037B -:100330000098801B0004380C008400F000CC1003EF -:100340000098801700043808008400F000CC1003E7 -:100350000098801300043804008400F000CC1003DF -:100360000098801400CC104C009A800900CC144DE9 -:10037000009840DC00D4006D00CC184800D5001A6D -:1003800000D5401A008000C900D5801A0096C0D55B -:1003900000D4006D008001B800D4006E009AC00344 -:1003A00000D4006D00D4006E0080000000EC007FDF -:1003B000009AC0CC00D4006D008001B800D4006E5B -:1003C00000CC140300CC180300CC1C03007D910367 -:1003D000007DD583007D190C0035CC1F0035701FC2 -:1003E000007CF0CB007CD08B00880000007E8E8BE0 -:1003F0000095C00400D4006E008001B800D4001A3B -:1004000000D4C01A00CC080300CC0C0300CC1003AD -:1004100000CC140300CC180300CC1C0300CC240334 -:1004200000CC28030035C41F0036B01F007C704B81 -:100430000034F01F007C704B0035701F007C704B47 -:10044000007D8881007DCCC1007E5101007E9541F8 -:10045000007C9082007CD4C2007C848B009AC00314 -:10046000007C8C8B002C88010098809E00D4006D4D -:100470000098409C00D4006E00CC084C00CC0C4D81 -:1004800000CC104800D4801A00D4C01A00800101AA -:1004900000D5001A00CC083200D40032009482D972 -:1004A00000CA0C0000D4401E0080000000D4001ED2 -:1004B00000E4011E00D4001E00CA080000CA0C009F -:1004C00000CA100000D4401E00CA140000D4801ED0 -:1004D00000D4C01E00D5001E00D5401E00D54034FB -:1004E0000080000000EE001E0028040400E2001A54 -:1004F00000E2001A00D4401A00CA380000CC0803F9 -:1005000000CC0C0300CC0C0300CC0C03009882BD83 -:1005100000000000008401BB00D7A06F0080000035 -:1005200000EE001F00CA040000C2FF0000CC083427 -:1005300000C13FFF007C74CB007CC90B007D010F24 -:10054000009902B0007C738B008401BB00D7A06FC0 -:100550000080000000EE001F00CA080000281900FB -:10056000007D898B009580140028140400CA0C00BB -:1005700000CA100000CA1C0000CA240000E2001FCC -:1005800000D4C01A00D5001A00D5401A00CC1803B8 -:1005900000CC2C0300CC2C0300CC2C03007DA58BBD -:1005A000007D9C4700984297000000000080016198 -:1005B00000D4C01A00D4401E00D4801E0080000069 -:1005C00000EE001E00E4011E00D4001E00D4401EF8 -:1005D00000EE001E00CA040000A00000007E828B16 -:1005E00000E4013E00D4001E00D4401E00EE001EB8 -:1005F00000CA040000A00000007E828B00CA080030 -:1006000000248C06000CCC060098C00600CC104ECE -:100610000099000400D4007300E4011E00D4001E01 -:1006200000D4401E00D4801E0080000000EE001E9A -:1006300000CA080000CA0C000034D01800251001C0 -:100640000095002100C17FFF00CA100000CA1400FD -:1006500000CA180000D4801D00D4C01D007DB18BDD -:1006600000C1420200C2C00100D5801D0034DC0E72 -:10067000007D5D4C007F734C00D7401E00D5001EEE -:1006800000D5401E00C1420000C2C00000099C010C -:100690000031DC10007F5F4C007F734C00042802A7 -:1006A000007D838000D5A86F00D5806600D7401EEE -:1006B00000EC005E00C8240200C82402008001B8DB -:1006C00000D6007600D4401E00D4801E00D4C01E88 -:1006D0000080000000EE001E0080000000EE001F01 -:1006E00000D4001F0080000000D4001F00D4001FB1 -:1006F0000088000000D4001F00000000000000007F -:1007000000000000000000000000000000000000E9 -:1007100000000000000000000000000000000000D9 -:1007200000000000000000000000000000000000C9 -:1007300000000000000000000000000000000000B9 -:1007400000000000000000000000000000000000A9 -:100750000000000000000000000000000000000099 -:100760000000000000000000000000000000000089 -:100770000000000000000000000000000000000079 -:100780000000000000000000000000000000000069 -:100790000000000000000000000000000000000059 -:1007A0000000000000000000000000000000000049 -:1007B0000000000000000000000000000000000039 -:1007C0000000000000000000000000000000000029 -:1007D0000000000000000000000000000000000019 -:1007E0000000000000000000000000000000000009 -:1007F00000000000000000000000000000000000F9 -:1008000000010171000201780003008F0004007FE5 -:10081000000500030006003F000700320008012C1D -:1008200000090046000A0036001001B6001700A2B9 -:100830000022013A00230149002000B400240125D0 -:100840000027004D0028006A002A0060002B00529B -:10085000002F0065003200870034017F003C015604 -:10086000003F00720041018C0044012E00550173CD -:100870000056017A0060000B00610034006200380D -:1008800000630038006400380065003800660038F6 -:10089000006700380068003A00690041006A0048BB -:1008A000006B0048006C0048006D0048006E004876 -:1008B000006F00480000000600000006000000066F -:1008C0000000000600000006000000060000000610 -:1008D0000000000600000006000000060000000600 -:1008E00000000006000000060000000600000006F0 -:1008F00000000006000000060000000600000006E0 -:00000001FF diff --git a/firmware/radeon/RV710_me.bin.ihex b/firmware/radeon/RV710_me.bin.ihex deleted file mode 100644 index 5cdfe306eea5..000000000000 --- a/firmware/radeon/RV710_me.bin.ihex +++ /dev/null @@ -1,341 +0,0 @@ -:10000000CC0003EA04080003CC8000437C4080005D -:10001000A0000000CC80006280000003D040007F80 -:1000200080000003CC4000417C40C000C0160004AA -:1000300030D03FFF7D15000CCC11000028D8001EE9 -:100040003198000128DC001FC820000495C000067C -:100050007C424000CC0000627E56800CCC2900001F -:10006000C82400047E26000B958000067C42C00058 -:10007000CC0000627ED7000CCC310000C82C0004FC -:100080007E2E000CCC00006231103FFF8000000388 -:10009000CE1100007C40C00080000003CC40004036 -:1000A00080000003CC4122577C418000CC400045B9 -:1000B000CC400048CC41225CCC41A1FC7C4080007B -:1000C000A0000000CC800062CC400045CC4000483D -:1000D0007C40C000CC41225CCC41A1FC7C40800033 -:1000E000A0000000CC800062CC000045CC0000489D -:1000F000CC41225CCC41A1FC7C408000A0000000EF -:10010000CC800062040CA1FDC0120001CC000045AF -:10011000CC0000487CD0C00CCC41225CCC41A1FC7E -:10012000D04D00007C408000A0000000CC80006228 -:1001300080000003CC41225D7C4080007C40C000F8 -:10014000C02A00027C4100007D29000C309400018F -:1001500030980006309C030029DC00087C42000037 -:100160007C4240009540000FC02E000405F022584C -:100170007F2F000CCC310000C8280004CCC12169BD -:10018000CD01216ACE81216B0DB40002CC01216C1E -:100190009740000E0DB400008000007DC834000AB6 -:1001A0000DB40002974000090DB40000C02E0004F9 -:1001B00005F022587F2F000CCC310000C828000425 -:1001C0008000007DC834000A974000047E02800051 -:1001D0008000007DC834000A0DB400049740FF8CF5 -:1001E00000000000CE01216DCE41216EC828000321 -:1001F000C834000A9B400004043C00058400026DE2 -:10020000CC0000620DF400009740000BC82C03E600 -:10021000CE81A2B7C03000067EF34028C030002057 -:100220007F6B80207FB3C029CF81A2C480000003F0 -:10023000CFC1A2D10DF400019740000BC82C03E7F9 -:10024000CE81A2BBC03000067EF34028C030002023 -:100250007F6B80207FB3C029CF81A2C580000003BF -:10026000CFC1A2D20DF400029740000BC82C03E8C6 -:10027000CE81A2BFC03000067EF34028C0300020EF -:100280007F6B80207FB3C029CF81A2C6800000038E -:10029000CFC1A2D3C82C03E9CE81A2C3C0300006CF -:1002A0007EF34028C03000207F6B80207FB3C029C0 -:1002B000CF81A2C780000003CFC1A2D48000000379 -:1002C000CC4000427C40C0007C4100002914001D4D -:1002D000315400019940000C31181000C81C001165 -:1002E00095C00000C81C0011CCC12100CD01210126 -:1002F000CCC12102CD012103041800048000037E3B -:10030000CD81A2A4C02A00049580000836A821A3AC -:10031000CC290000C8280004C81C00110DE40040CE -:100320009640FFFFC81C0011CCC12170CD01217186 -:10033000C820001296000000C82000128000037E32 -:10034000CC0000647C40C0007C410000CC00004533 -:10035000CC00004840D40003CD41225CCD01A1FC7B -:10036000C01A0001041CA1FD7DD9C00C7C42000014 -:1003700008CC00010624000106280002CE1D000062 -:10038000CE5D000098C0FFFACE9D00007C4080004A -:10039000A0000000CC8000627C40C00030D0000192 -:1003A00028CC00017C414000950000067C41800083 -:1003B000CD41216DCD81216E800000F4C81C000369 -:1003C000C02200047E16000CCC210000C81C0004D2 -:1003D0007C42400098C000047C4280008000000302 -:1003E000CDE50000CE412169CE81216ACDC1216BCE -:1003F00080000003CC01216C7C40C0007C410000E7 -:100400007C4140007C4180007C41C00028A4000861 -:10041000326400FF0E68003C9680000A7C020000F7 -:100420007C4200001E300003CC00006A9B000003E9 -:100430004220000504200040800001117C024000A1 -:100440007E0240009A4000000A64000130EC001077 -:100450009AC0000ACC000062C02A0004C82C002107 -:100460007E92800CCC000041CC290000CEC000213F -:1004700080000121C8300004CD01216DCD41216EE5 -:10048000C83000037F1F000B30F4000727780001FD -:100490009740002A07B801269F8000000000000056 -:1004A000800001367F1B80048000013A7F1B80059D -:1004B0008000013E7F1B8002800001427F1B800381 -:1004C000800001467F1B80078000014A7F1B800659 -:1004D0008000014F28A400089B80001928A4000870 -:1004E0008000015F326400FF9B80001528A4000893 -:1004F0008000015F326400FF9B80001128A4000887 -:100500008000015F326400FF9B80000D28A400087A -:100510008000015F326400FF9B80000928A400086E -:100520008000015F326400FF9B80000528A4000862 -:100530008000015F326400FF28A40008326400FFDD -:100540000E68003C9A80FEB228EC00087C43400014 -:100550007C4380007C43C00096C00007CC00006252 -:10056000CF412169CF81216ACFC1216B8000000377 -:10057000CC01216C80000003CFF50000CC00006BA3 -:10058000840003810E68003C9A800004C82800158E -:1005900080000003D040007F9680FFAB7E024000C9 -:1005A0008400023BC00E0002CC00004180000239F2 -:1005B000CCC1304A7C40C0007C410000C01E00011C -:1005C00029240012C022000296400005C026000423 -:1005D000C027FFFB7D25000BC02600007DD2800BCD -:1005E0007E12C00B7D25000C7C4140007C418000C8 -:1005F000CCC121699A80000ACD01216ACD41216BCD -:1006000096C0FE83CD81216CC83000189700000091 -:10061000C830001880000003CC000018840003815B -:10062000CC00007FC8140013C8180014CD41216B02 -:1006300096C0FE77CD81216C80000183C830001800 -:10064000C80C000898C00000C80C00087C410000DD -:1006500095000002000000007C414000C820000915 -:10066000CC400043CE01A1F4CC400044C00E800039 -:100670007C4240007C4280002AAC001F96C0FE6491 -:10068000C035F000CE4003E232780003267C00083B -:100690007FF7C00B7FFBC00C2A780018CFC003E3A4 -:1006A000CF8003E426B000027F3F0000CF0003E5C7 -:1006B0008000031F7C80C0007C40C00028D0000860 -:1006C0003110000F9500000F2528000106A801B485 -:1006D0009E80000000000000800001D5C0120800CC -:1006E000800001E3C814000F800001EAC814001064 -:1006F000800001F1CCC1A2A4800001FAC81400114D -:1007000030D0003F0D2800159A8000120D28001EE1 -:100710009A80001E0D2800209A8000230D24000FCF -:100720000D2800107E6A800C9A8000260D2000049F -:100730000D2400140D2800287E62400C7EA6800C3B -:100740009A80002AC814001180000003CCC1A2A422 -:10075000C01208007C4140007D0CC00CC012000893 -:1007600029580003295C000C7C4200007DD1C00B9D -:10077000262000147E1E400C7E4E800CCE81A2A44A -:1007800080000003CD81A1FEC814000F0410210ECB -:1007900095400000C814000FD051000080000003F5 -:1007A000CCC1A2A4C8140010041021089540000078 -:1007B000C8140010D051000080000003CCC1A2A4D6 -:1007C000CCC1A2A404100001CD0000198400038153 -:1007D000CC00007FC810001999000000C810001953 -:1007E000800000047C40800004102100954000003F -:1007F000C8140011D05100008000037ECCC1A2A417 -:100800007C40C000CC40000D94C0FE01CC40000EE6 -:100810007C4100009500000508CC0001C8140005CB -:10082000994000140000000098C0FFFB7C410000CC -:10083000800000047D008000C81400057C40C000DA -:100840009940000CC818000C7C4100009580FDF018 -:10085000C820000EC81C000D662000207E1E002C43 -:10086000252400027E62402080000003CCE60000C8 -:100870007C410000CC00006CCC00006DC818001F4B -:10088000C81C001E659800207DD9C02C7CD4C00CEB -:10089000CCDE000045DC0004C82800179680000F5D -:1008A000C00E0001286800082AAC001632A800FF1C -:1008B0000EB000497F2F000B9700000600000000DB -:1008C000C81400057C40C000800002237C41000069 -:1008D00080000226D040007F8400023BCC00004113 -:1008E000CCC1304A94000000C83C001A043C00050A -:1008F000CFC1A2A4C0361F90C0387FFF7C03C010B8 -:100900007F7B400CCF41217CCFC1217DCC01217E5A -:10091000C03A00040434217F7F7B400CCC350000BA -:10092000C83C00042BFC001F0438002097C00005C1 -:10093000CC0000629B8000000BB8000180000247E1 -:10094000CC000071CC01A1F404380016C0360002BE -:10095000CF81A2A488000000CF4120107C40C000BD -:1009600028D0001C9500000504D40001CD4000658E -:1009700080000003CD40006809540002800000039D -:10098000CD4000668400026CC81803EA7C40C000B9 -:100990009980FD9FC814001608D000019940002BD3 -:1009A000CD0000687C408000A0000000CC80006288 -:1009B000043C0005CFC1A2A4CC01A1F484000381B2 -:1009C000CC00004688000000CC00007F8400027E3E -:1009D000C81803EA7C40C0009980FD8DC814001639 -:1009E00008D0000199400019CD0000687C408000CB -:1009F000A0000000CC800062043C0022CFC1A2A471 -:100A000084000381CC00004788000000CC00007FF8 -:100A1000C81000169900000DCC400067800000044B -:100A20007C408000C81803EA9980FD797C40C000B2 -:100A300094C00003C810001699000004CCC00068E0 -:100A4000800000047C4080008400023BC0148000D1 -:100A5000CC000041CD41304AC01480009900000014 -:100A6000C8100016800000047C408000C012000105 -:100A70007C51400C80000003D05500007C40C00039 -:100A80007C4100007C4140007C418000291C001F0B -:100A9000CCC0004ACD00004B95C00003C01C8000B4 -:100AA000CDC12010DD830000055C2000CC00006279 -:100AB00080000003D81F41007C40C0007C41000042 -:100AC0007C4140007C418000CCC0004CCD00004DFA -:100AD000DD830000055CA00080000003D81F4100FA -:100AE0007C40C0007C4100007C4140007C41800093 -:100AF000CCC0004ECD00004FDD830000055CC0007F -:100B000080000003D81F41007C40C0007C410000F1 -:100B10007C4140007C418000CCC00050CD000051A1 -:100B2000DD830000055CF8E080000003D81F410071 -:100B30007C40C0007C4100007C4140007C41800042 -:100B4000CCC00052CD000053DD830000055CF8806E -:100B500080000003D81F41007C40C0007C410000A1 -:100B60007C4140007C418000CCC00054CD00005549 -:100B7000DD830000055CE00080000003D81F410019 -:100B80007C40C0007C4100007C4140007C418000F2 -:100B9000CCC00056CD000057DD830000055CF0009E -:100BA00080000003D81F41007C40C0007C41000051 -:100BB0007C4140007C418000CCC00058CD000059F1 -:100BC000DD830000055CF3FC80000003D81F4100BA -:100BD000D04320007C408000A0000000CC80006258 -:100BE000D043A0007C408000A0000000CC800062C8 -:100BF000D043C0007C408000A0000000CC80006298 -:100C0000D043F8E07C408000A0000000CC8000626F -:100C1000D043F8807C408000A0000000CC800062BF -:100C2000D043E0007C408000A0000000CC80006247 -:100C3000D043F0007C408000A0000000CC80006227 -:100C4000D043F3FC7C408000A0000000CC80006218 -:100C5000C81403E0CC430000CC430000CC430000A8 -:100C60007D45C000CDC30000D04300007C40800023 -:100C7000A0000000CC8000627C40C000C81003E2ED -:100C8000C81403E5C81803E3C81C03E4CD81216937 -:100C9000CDC1216ACCC1216BCC01216C04200004A0 -:100CA0007DA180007D9640029640FCD9CD8003E373 -:100CB00031280003C02DF000251800087DAD800B01 -:100CC0007DA9800C80000003CD8003E3308CFFFF02 -:100CD000D04D00007C408000A0000000CC8000626D -:100CE000C8140020155800029580FFFFC81400208A -:100CF000CC00006ECC4121807C40C000CCC1218D55 -:100D0000CC41218128D0001F34588000CD81218C16 -:100D10009500FCBFCC412182C81400209940FFFF00 -:100D2000C8140020800000047C4080007C40C0008B -:100D300028D0001831100001C01600809500000373 -:100D4000C02A00047CD4C00CCCC1217CCC41217DC4 -:100D5000CC41217E7C4180001DB0000336A0217F64 -:100D60009B000003419C0005041C004099C000004A -:100D700009DC0001CC210000C82400042A6C001FFB -:100D8000419C00059AC0FFFACC80006280000004FC -:100D90007C4080007C40C00004D403E68000000357 -:100DA000CC5400008000037ECC4003EAC01C8000CD -:100DB000044CA000CDC120107C410000C8140009E3 -:100DC00004180000041C0008CD80007109DC00013B -:100DD00005980001CD0D000099C0FFFCCC80006299 -:100DE0008000037ECD400071C00E0100CC000041A8 -:100DF000CCC1304AC83C007FCC00007F800000039B -:100E0000CC00007FCC00007F88000000CC00007F79 -:100E100000000000000000000000000000000000D2 -:100E200000000000000000000000000000000000C2 -:100E300000000000000000000000000000000000B2 -:100E400000000000000000000000000000000000A2 -:100E50000000000000000000000000000000000092 -:100E60000000000000000000000000000000000082 -:100E70000000000000000000000000000000000072 -:100E80000000000000000000000000000000000062 -:100E90000000000000000000000000000000000052 -:100EA0000000000000000000000000000000000042 -:100EB0000000000000000000000000000000000032 -:100EC0000000000000000000000000000000000022 -:100ED0000000000000000000000000000000000012 -:100EE0000000000000000000000000000000000002 -:100EF00000000000000000000000000000000000F2 -:100F000000000000000000000000000000000000E1 -:100F100000000000000000000000000000000000D1 -:100F200000000000000000000000000000000000C1 -:100F300000000000000000000000000000000000B1 -:100F400000000000000000000000000000000000A1 -:100F50000000000000000000000000000000000091 -:100F60000000000000000000000000000000000081 -:100F70000000000000000000000000000000000071 -:100F80000000000000000000000000000000000061 -:100F90000000000000000000000000000000000051 -:100FA0000000000000000000000000000000000041 -:100FB0000000000000000000000000000000000031 -:100FC0000000000000000000000000000000000021 -:100FD0000000000000000000000000000000000011 -:100FE0000000000000000000000000000000000001 -:100FF00000000000000000000000000000000000F1 -:1010000000000000000000000000000000000000E0 -:1010100000000000000000000000000000000000D0 -:1010200000000000000000000000000000000000C0 -:1010300000000000000000000000000000000000B0 -:1010400000000000000000000000000000000000A0 -:101050000000000000000000000000000000000090 -:101060000000000000000000000000000000000080 -:101070000000000000000000000000000000000070 -:101080000000000000000000000000000000000060 -:101090000000000000000000000000000000000050 -:1010A0000000000000000000000000000000000040 -:1010B0000000000000000000000000000000000030 -:1010C0000000000000000000000000000000000020 -:1010D0000000000000000000000000000000000010 -:1010E0000000000000000000000000000000000000 -:1010F00000000000000000000000000000000000F0 -:1011000000000000000000000000000000000000DF -:1011100000000000000000000000000000000000CF -:1011200000000000000000000000000000000000BF -:1011300000000000000000000000000000000000AF -:10114000000000000000000000000000000000009F -:10115000000000000000000000000000000000008F -:10116000000000000000000000000000000000007F -:10117000000000000000000000000000000000006F -:10118000000000000000000000000000000000005F -:10119000000000000000000000000000000000004F -:1011A000000000000000000000000000000000003F -:1011B000000000000000000000000000000000002F -:1011C000000000000000000000000000000000001F -:1011D000000000000000000000000000000000000F -:1011E00000000000000000000000000000000000FF -:1011F00000000000000000000000000000000000EF -:1012000000000000000000000000000000000000DE -:1012100000000000000000000000000000000000CE -:1012200000000000000000000000000000000000BE -:1012300000000000000000000000000000000000AE -:10124000000000000000000000000000000000009E -:10125000000000000000000000000000000000008E -:10126000000000000000000000000000000000007E -:10127000000000000000000000000000000000006E -:10128000000000000000000000000000000000005E -:10129000000000000000000000000000000000004E -:1012A000000000000000000000000000000000003E -:1012B000000000000000000000000000000000002E -:1012C000000000000000000000000000000000001E -:1012D000000000000000000000000000000000000E -:1012E00000000000000000000000000000000000FE -:1012F00000000000000000000000000000000000EE -:1013000000000000000000000000000000000000DD -:1013100000000000000000000000000000000000CD -:1013200000000000000000000000000000000000BD -:1013300000000000000000000000000000000000AD -:10134000000000000000000000000000000000009D -:10135000000000000000000000000000000000008D -:10136000000000000000000000000000000000007D -:10137000000000000000000000000000000000006D -:10138000000000000000000000000000000000005D -:10139000000000000000000000000000000000004D -:1013A000000000000000000000000000000000003D -:1013B000000000000000000000000000000000002D -:1013C000000000000000000000000000000000001D -:1013D000000000000000000000000000000000000D -:1013E00000000000000000000000000000000000FD -:1013F00000000000000000000000000000000000ED -:101400000001033300100006001700080021000A45 -:101410000027002A002800250029002B002A002888 -:10142000002B002B002D003A002E0041002F004C15 -:101430000034004E00360032003900B1003A00D1CD -:10144000003B00E6003C00FE003D016D003F00AFA8 -:10145000004103380043034B00440190004500FE67 -:10146000004601AE004701AE004802000049020EEE -:10147000004A0257004B028400520261005302737B -:10148000005402890057029B0060029F006102AE77 -:10149000006202B8006302C2006402CC006502D69A -:1014A000006602E0006702EA006802F4006902F8E0 -:1014B000006A02FC006B0300006C0304006D03086B -:1014C000006E030C006F03100070031400720365BC -:1014D0000074036B00790369007C031E000F037A1C -:1014E000000F037A000F037A000F037A000F037ACC -:1014F000000F037A000F037A000F037A000F037ABC -:10150000000F037A000F037A000F037A000F037AAB -:10151000000F037A000F037A000F037A000F037A9B -:10152000000F037A000F037A000F037A000F037A8B -:10153000000F037A000F037A000F037A000F037A7B -:00000001FF diff --git a/firmware/radeon/RV710_pfp.bin.ihex b/firmware/radeon/RV710_pfp.bin.ihex deleted file mode 100644 index 3d811ff0a1a8..000000000000 --- a/firmware/radeon/RV710_pfp.bin.ihex +++ /dev/null @@ -1,213 +0,0 @@ -:100000007C408000A00000007E82800B8000000009 -:10001000DC030000CC800040D04000407C408000E9 -:10002000A00000007E82800BC818000E31980001ED -:100030007C4240009580023A7C428000C81C001C33 -:10004000C037C0007C40C0007C4100007CB4800B05 -:10005000C036000399C00000C81C001C7CB4800C92 -:1000600024D400027D654000CD400043CE80004393 -:10007000CD000043CC800040CE400040CE80004008 -:10008000CCC00040DC3A00009780FFDECD0000408D -:100090007C40C000800000187C410000D400034078 -:1000A000D4000FC0D4000FA2C818000E8000000CAE -:1000B00031980002D40003C0D4000FC0D4000FA2B6 -:1000C000C818000E288C000830CC000F3410000136 -:1000D0007D0D00088000000C7D91800BCC800040DD -:1000E000D04000407C408000A00000007E82800B59 -:1000F000D4000340D4000FC0D4000FA2CC80004035 -:10010000D04000407C408000A00000007E82800B38 -:10011000D40003C0D4000FC0D4000FA2CC80004094 -:10012000D04000407C408000A00000007E82800B18 -:10013000CC4003F980000249CC4003F8C037FFFFF0 -:100140007C414000CF41A29EC82003F8C81C03F99F -:1001500066200020C81803FB7DE1C02C7D58C00834 -:100160007CDCC02069100020C0360003CC000054A5 -:100170007CB4800C80000069CC8000407C41800011 -:10018000CD81A29ECC80004080000067CD800040E1 -:10019000C019FFFFCC800040CD81A29E7C40C000F2 -:1001A0007C4100007C414000CCC1A1FACD01A1F905 -:1001B000CD41A29DCCC00040CD000040CD400040CC -:1001C000CC4000407C408000A00000007E82800B7C -:1001D000CC000054CC8000407C40C0007C4100003A -:1001E0007C414000CCC1A1FACD01A1F9CD41A29D35 -:1001F000CCC00040CD000040CD400040D040004089 -:100200007C408000A00000007E82800B7C40C0000B -:1002100030D00001CCC1A29F95000003041400015E -:1002200004140002CD4003FBCC800040800000009D -:10023000CCC000407C40C000CC800040CCC1A2A219 -:1002400080000000CCC000407C40C00028D4001FCB -:10025000CC800040954000037C410000CCC000579A -:100260002918001FCCC0004095800003CD0000403D -:10027000CD00005880000249CC00007FC820001744 -:10028000C83000229A0000060E280001C824001E73 -:100290000A640001D4001240CE400040C036C000C5 -:1002A0009680000737747900041C0001CF4000409D -:1002B000CDC00040CF0003FA7C030000CA0C001040 -:1002C0007C41000094C000047C414000D42002C462 -:1002D000CDE000449B00000B7C418000CC00004B33 -:1002E000CDA00049CD200041CD600041CDA000410E -:1002F00006200001CE00005680000249CC00007F9D -:10030000C8280020C82C0021CC0000637EEA4001F0 -:10031000657400207F53402C269C00027DF5C02090 -:1003200069F80020CE80004BCE600049CDE000414E -:10033000CFA00041CE600041271C00027DF5C02007 -:1003400069F800207DB24001CF00004BCE6000492B -:10035000CDE00041CFA00041800000BCCE60004154 -:10036000C8200017C83000229A0000060E2800019D -:10037000C824001E0A640001D4001240CE40004090 -:10038000CA0C00107C41000094C0000BC036C000B5 -:100390009680000737747900041C0001CF400040AC -:1003A000CDC00040CF0003FA7C030000800000B500 -:1003B0007C414000CC000048800000EE00000000BE -:1003C000C8200017C81C00230E24000299C0001585 -:1003D0007C4180000A200001CE000056D400044079 -:1003E000CC000040C036C000CA140013964000077D -:1003F00037747900CF400040CC000040C83003FA89 -:1004000080000103CF000022CC000022954001466D -:10041000CC00007FCCA0004680000000CC2000462D -:1004200080000249CC000064C8200017C810001FDB -:100430009600000509100001D4000440CD000040E2 -:10044000CD000022CC800040D0400040C80C0025E8 -:1004500094C0FEECC8100008CD000040D4000FC0CE -:1004600080000000D4000FA27C40C0007C4100004E -:10047000CCC003FDCD0003FCCCC00042CD00004247 -:100480002914001F29180010319800073B5C000157 -:100490007D76000B998000057D5E400BCC0000420C -:1004A00080000249CC00004D29980001292C000849 -:1004B0009980003D32EC0001960000042930000CC8 -:1004C00080000249CC00004204140010CD400042DC -:1004D00033300001342800018400015DC81400039A -:1004E0009B40001B0438000C8400015DC81400030D -:1004F0009B400017043800088400015DC814000305 -:100500009B400013043800048400015DC8140003FC -:100510009B400015C80C03FD9A800009C81003FC1D -:100520009B000101CC00004D04140010CCC000421F -:10053000CD00004280000135CD40004296C000FA57 -:10054000CC00004D80000249CC00004E9AC0000350 -:10055000CC00004DCC00004EDF8300008000000086 -:10056000D80301FF9AC000F0CC00004D8000024982 -:10057000CC00004EC8180003C81C0003C8200003AC -:100580007D5D40037DA1C0037D5D400C2A10001FEE -:10059000299C001F7D1D000B7D17400B880000006B -:1005A0007E92800B96400004CC00004E80000249F1 -:1005B000CC00004204380008CF800042C808000385 -:1005C000C80C0003C8100003C8140003C8180003B7 -:1005D000C81C0003C8240003C828000329FC001F0E -:1005E0002AB0001F7FF3C00B28F0001F7FF3C00B61 -:1005F0002970001F7FF3C00B7D8880017DCCC00176 -:100600007E5100017E9540017C9080027CD4C00226 -:100610007CBC800B9AC000037C8F400B38B4000177 -:100620009B4000C1CC00004D9BC000BFCC00004EE1 -:10063000C80C03FDC81003FCCCC000428000016E52 -:10064000CD000042D4000340D4000FC0D4000FA25C -:10065000CC800040CC400040CC400040CC4000402A -:100660007C40C000CCC00040CCC0000D8000000029 -:10067000D04000407C40C0007C4100006514002058 -:100680007D4D402C245800027D5980207C41C000C3 -:10069000CD80004269980020CD800042CDC000424C -:1006A000C023C00005E400027CA0800B266400107B -:1006B0007CA4800CCC800040CDC00040CCC0004069 -:1006C00095C0000ECD00004009DC0001C8280003E1 -:1006D00096800008CE800040C834001D974000007E -:1006E000C834001D26A800088400024CCC2B000052 -:1006F00099C0FFF709DC0001DC3A00009780000494 -:100700007C418000800001A225980002A00000002A -:100710007D808000C818001D7C40C00064D00008A7 -:1007200095800000C818001DCC130000CC8000404C -:10073000CCC0004080000000CC400040C810001F2A -:100740007C40C000CC8000407CD1400CCD400040BB -:100750000518000180000000CD8000227C40C00010 -:10076000645000208400024CCC0000617CD0C02C7E -:10077000C8200017C8D60000994000087C438000BC -:10078000DF830000CFA0004F8400024CCC00006249 -:1007900080000000D040007F80000249CC00006251 -:1007A0008400024CCC000061C82000177C40C000CF -:1007B000C036FF00C810000DC0303FFF7CF5400B75 -:1007C0007D51800B7D81800F998000087CF3800B28 -:1007D000DF830000CFA0004F8400024CCC000062F9 -:1007E00080000000D040007F80000249CC00006201 -:1007F0008400024C7C40C00028DC000895C0001931 -:1008000030DC00107C41000099C0000464540020DA -:1008100080000208C91D00007D15002CC91E0000C3 -:100820007C4200007C4240007C4180007DE5C00BA2 -:100830007DE280079A80000E41AC00059AC000005E -:100840000AEC000130DC001099C000040000000038 -:100850008000020BC91D00008000020BC91E0000B1 -:10086000CC800040CCC00040D0400040C80C0025E7 -:1008700094C0FDE4C8100008CD000040D4000FC0B3 -:1008800080000000D4000FA2D4000340D4000FC0A9 -:10089000D4000FA2CC800040D04000407C408000BB -:1008A000A00000007E82800BD40003C0D4000FC0E3 -:1008B000D4000FA2CC800040D04000407C4080009B -:1008C000A00000007E82800B7C40C00030D000067B -:1008D0000D10000699000007C81400159940000586 -:1008E000CC000052D4000340D4000FC0D4000FA2AB -:1008F000CC800040CCC0004080000000D0400040D0 -:100900007C40C000CC4D0000DC3A00009780FDBD6B -:1009100004CC000180000242CC4D000080000000A9 -:10092000D040007FCC00007F80000000CC00007F22 -:10093000CC00007F88000000CC00007F0000000099 -:1009400000000000000000000000000000000000A7 -:100950000000000000000000000000000000000097 -:100960000000000000000000000000000000000087 -:100970000000000000000000000000000000000077 -:100980000000000000000000000000000000000067 -:100990000000000000000000000000000000000057 -:1009A0000000000000000000000000000000000047 -:1009B0000000000000000000000000000000000037 -:1009C0000000000000000000000000000000000027 -:1009D0000000000000000000000000000000000017 -:1009E0000000000000000000000000000000000007 -:1009F00000000000000000000000000000000000F7 -:100A000000000000000000000000000000000000E6 -:100A100000000000000000000000000000000000D6 -:100A200000000000000000000000000000000000C6 -:100A300000000000000000000000000000000000B6 -:100A400000000000000000000000000000000000A6 -:100A50000000000000000000000000000000000096 -:100A60000000000000000000000000000000000086 -:100A70000000000000000000000000000000000076 -:100A80000000000000000000000000000000000066 -:100A90000000000000000000000000000000000056 -:100AA0000000000000000000000000000000000046 -:100AB0000000000000000000000000000000000036 -:100AC0000000000000000000000000000000000026 -:100AD0000000000000000000000000000000000016 -:100AE0000000000000000000000000000000000006 -:100AF00000000000000000000000000000000000F6 -:100B000000000000000000000000000000000000E5 -:100B100000000000000000000000000000000000D5 -:100B200000000000000000000000000000000000C5 -:100B300000000000000000000000000000000000B5 -:100B400000000000000000000000000000000000A5 -:100B50000000000000000000000000000000000095 -:100B60000000000000000000000000000000000085 -:100B70000000000000000000000000000000000075 -:100B80000000000000000000000000000000000065 -:100B90000000000000000000000000000000000055 -:100BA0000000000000000000000000000000000045 -:100BB0000000000000000000000000000000000035 -:100BC0000000000000000000000000000000000025 -:100BD0000000000000000000000000000000000015 -:100BE0000000000000000000000000000000000005 -:100BF00000000000000000000000000000000000F5 -:100C0000000302220004022A0005009F00020003E4 -:100C10000006003C0007002700080191000900447D -:100C2000000A002D00100247001700F0002201D733 -:100C3000002301E80026004C0027005F0020011A75 -:100C4000002800920029004F002A0083002B006436 -:100C5000002F008D003200D80034023200360074BC -:100C60000039010A003C01FC003F009F00410005E3 -:100C7000004401940048019D004901C5004A01CF8C -:100C8000005502250056022D0060000A0061002A6E -:100C90000062003000630030006400300065003006 -:100CA0000066003000670030006800370069003FD0 -:100CB000006A0047006B0047006C0047006D00476A -:100CC000006E0047006F0047007000470073024746 -:100CD000007B024000000005000000050000000548 -:100CE00000000005000000050000000500000005F0 -:100CF00000000005000000050000000500000005E0 -:100D000000000005000000050000000500000005CF -:100D100000000005000000050000000500000005BF -:100D200000000005000000050000000500000005AF -:100D3000000000050000000500000005000000059F -:00000001FF diff --git a/firmware/radeon/RV730_me.bin.ihex b/firmware/radeon/RV730_me.bin.ihex deleted file mode 100644 index 390c18e7cef3..000000000000 --- a/firmware/radeon/RV730_me.bin.ihex +++ /dev/null @@ -1,341 +0,0 @@ -:10000000CC0003EA7C408000A0000000CC800062AD -:1000100080000001D040007F80000001CC40004102 -:100020007C40C000C016000430D03FFF7D15000C9E -:10003000CC11000028D8001E3198000128DC001FD8 -:10004000C820000495C000067C424000CC0000623D -:100050007E56800CCC290000C82400047E26000BAC -:10006000958000067C42C000CC0000627ED7000C68 -:10007000CC310000C82C00047E2E000CCC000062A5 -:1000800031103FFF80000001CE1100007C40C00015 -:1000900080000001CC40004080000001CC4122578C -:1000A0007C418000CC400045CC400048CC41225CE3 -:1000B000CC41A1FC7C408000A0000000CC8000620C -:1000C000CC400045CC4000487C40C000CC41225C84 -:1000D000CC41A1FC7C408000A0000000CC800062EC -:1000E000CC000045CC000048CC41225CCC41A1FCB6 -:1000F0007C408000A0000000CC800062040CA1FDC8 -:10010000C0120001CC000045CC0000487CD0C00CDF -:10011000CC41225CCC41A1FCD04D00007C40800051 -:10012000A0000000CC80006280000001CC41225D74 -:100130007C4080007C40C000C02A00027C4100005E -:100140007D29000C3094000130980006309C03009B -:1001500029DC00087C4200007C4240009540000FF2 -:10016000C02E000405F022587F2F000CCC31000077 -:10017000C8280004CCC12169CD01216ACE81216B40 -:100180000DB40002CC01216C9740000E0DB40000AC -:100190008000007BC834000A0DB4000297400009BB -:1001A0000DB40000C02E000405F022587F2F000C73 -:1001B000CC310000C82800048000007BC834000A4D -:1001C000974000047E0280008000007BC834000A53 -:1001D0000DB400049740FF8C00000000CE01216D9B -:1001E000CE41216EC8280003C834000A9B40000499 -:1001F000043C00058400026BCC0000620DF400009A -:100200009740000BC82C03E6CE81A2B7C030000691 -:100210007EF34028C03000207F6B80207FB3C02950 -:10022000CF81A2C480000001CFC1A2D10DF4000192 -:100230009740000BC82C03E7CE81A2BBC03000065C -:100240007EF34028C03000207F6B80207FB3C02920 -:10025000CF81A2C580000001CFC1A2D20DF400025F -:100260009740000BC82C03E8CE81A2BFC030000627 -:100270007EF34028C03000207F6B80207FB3C029F0 -:10028000CF81A2C680000001CFC1A2D3C82C03E950 -:10029000CE81A2C3C03000067EF34028C0300020CB -:1002A0007F6B80207FB3C029CF81A2C7800000016F -:1002B000CFC1A2D480000001CC4000427C40C000ED -:1002C0007C4100002914001D315400019940000CAC -:1002D00031181000C81C001195C00000C81C001186 -:1002E000CCC12100CD012101CCC12102CD012103CE -:1002F000041800048000037CCD81A2A4C02A00045D -:100300009580000836A821A3CC290000C828000445 -:10031000C81C00110DE400409640FFFFC81C0011EE -:10032000CCC12170CD012171C820001296000000BF -:10033000C82000128000037CCC0000647C40C00018 -:100340007C410000CC000045CC00004840D40003B4 -:10035000CD41225CCD01A1FCC01A0001041CA1FD0D -:100360007DD9C00C7C42000008CC000106240001AD -:1003700006280002CE1D0000CE5D000098C0FFFAE6 -:10038000CE9D00007C408000A0000000CC80006278 -:100390007C40C00030D0000128CC00017C414000EE -:1003A000950000067C418000CD41216DCD81216EFC -:1003B000800000F2C81C0003C02200047E16000C5E -:1003C000CC210000C81C00047C42400098C00004FE -:1003D0007C42800080000001CDE50000CE41216913 -:1003E000CE81216ACDC1216B80000001CC01216C3E -:1003F0007C40C0007C4100007C4140007C4180008A -:100400007C41C00028A40008326400FF0E68003C54 -:100410009680000A7C0200007C4200001E3000032F -:10042000CC00006A9B00000342200005042000402D -:100430008000010F7C0240007E0240009A400000D4 -:100440000A64000130EC00109AC0000ACC0000627F -:10045000C02A0004C82C00217E92800CCC000041F0 -:10046000CC290000CEC000218000011FC83000044C -:10047000CD01216DCD41216EC83000037F1F000BDF -:1004800030F40007277800019740002A07B80124BC -:100490009F80000000000000800001347F1B80046A -:1004A000800001387F1B80058000013C7F1B80029B -:1004B000800001407F1B8003800001447F1B800778 -:1004C000800001487F1B80068000014D28A40008A1 -:1004D0009B80001928A400088000015D326400FFA1 -:1004E0009B80001528A400088000015D326400FF95 -:1004F0009B80001128A400088000015D326400FF89 -:100500009B80000D28A400088000015D326400FF7C -:100510009B80000928A400088000015D326400FF70 -:100520009B80000528A400088000015D326400FF64 -:1005300028A40008326400FF0E68003C9A80FEB2D6 -:1005400028EC00087C4340007C4380007C43C000D2 -:1005500096C00007CC000062CF412169CF81216A9B -:10056000CFC1216B80000001CC01216C8000000113 -:10057000CFF50000CC00006B8400037F0E68003CC8 -:100580009A800004C828001580000001D040007F38 -:100590009680FFAB7E02400084000239C00E00024C -:1005A000CC00004180000237CCC1304A7C40C00002 -:1005B0007C410000C01E000129240012C02200025C -:1005C00096400005C0260004C027FFFB7D25000BD8 -:1005D000C02600007DD2800B7E12C00B7D25000C52 -:1005E0007C4140007C418000CCC121699A80000A96 -:1005F000CD01216ACD41216B96C0FE83CD81216C56 -:10060000C830001897000000C830001880000001B2 -:10061000CC0000188400037FCC00007FC8140013B6 -:10062000C8180014CD41216B96C0FE77CD81216C96 -:1006300080000181C8300018C80C000898C0000074 -:10064000C80C00087C41000095000002000000007A -:100650007C414000C8200009CC400043CE01A1F4F9 -:10066000CC400044C00E80007C4240007C428000B0 -:100670002AAC001F96C0FE64C035F000CE4003E2F5 -:1006800032780003267C00087FF7C00B7FFBC00C8C -:100690002A780018CFC003E3CF8003E426B000021D -:1006A0007F3F0000CF0003E58000031D7C80C00079 -:1006B0007C40C00028D000083110000F9500000FCA -:1006C0002528000106A801B29E800000000000005D -:1006D000800001D3C0120800800001E1C814000F9F -:1006E000800001E8C8140010800001EFCCC1A2A472 -:1006F000800001F8C814001130D0003F0D2800150B -:100700009A8000120D28001E9A80001E0D280020DD -:100710009A8000230D24000F0D2800107E6A800CA3 -:100720009A8000260D2000040D2400140D280028B6 -:100730007E62400C7EA6800C9A80002AC8140011AC -:1007400080000001CCC1A2A4C01208007C4140007E -:100750007D0CC00CC012000829580003295C000C55 -:100760007C4200007DD1C00B262000147E1E400C70 -:100770007E4E800CCE81A2A480000001CD81A1FE1E -:10078000C814000F0410210E95400000C814000F7B -:10079000D051000080000001CCC1A2A4C8140010F8 -:1007A0000410210895400000C8140010D05100002A -:1007B00080000001CCC1A2A4CCC1A2A404100001FD -:1007C000CD0000198400037FCC00007FC810001901 -:1007D00099000000C8100019800000027C408000D1 -:1007E0000410210095400000C8140011D0510000F1 -:1007F0008000037CCCC1A2A47C40C000CC40000D92 -:1008000094C0FE01CC40000E7C4100009500000524 -:1008100008CC0001C8140005994000140000000035 -:1008200098C0FFFB7C410000800000027D0080003A -:10083000C81400057C40C0009940000CC818000C8A -:100840007C4100009580FDF0C820000EC81C000D02 -:10085000662000207E1E002C252400027E6240209F -:1008600080000001CCE600007C410000CC00006C60 -:10087000CC00006DC818001FC81C001E6598002021 -:100880007DD9C02C7CD4C00CCCDE000045DC00043B -:10089000C82800179680000FC00E000128680008C5 -:1008A0002AAC001632A800FF0EB000497F2F000BC3 -:1008B0009700000600000000C81400057C40C0003E -:1008C000800002217C41000080000224D040007F93 -:1008D00084000239CC000041CCC1304A94000000B1 -:1008E000C83C001A043C0005CFC1A2A4C0361F902A -:1008F000C0387FFF7C03C0107F7B400CCF41217C40 -:10090000CFC1217DCC01217EC03A00040434217F77 -:100910007F7B400CCC350000C83C00042BFC001F42 -:100920000438002097C00005CC0000629B800000C6 -:100930000BB8000180000245CC000071CC01A1F48D -:1009400004380016C0360002CF81A2A4880000003F -:10095000CF4120107C40C00028D0001C950000052D -:1009600004D40001CD40006580000001CD40006846 -:100970000954000280000001CD4000668400026A34 -:10098000C81803EA7C40C0009980FD9FC814001677 -:1009900008D000019940002BCD0000687C40800009 -:1009A000A0000000CC800062043C0005CFC1A2A4DE -:1009B000CC01A1F48400037FCC0000468800000035 -:1009C000CC00007F8400027CC81803EA7C40C00091 -:1009D0009980FD8DC814001608D0000199400019B7 -:1009E000CD0000687C408000A0000000CC80006248 -:1009F000043C0022CFC1A2A48400037FCC000047A6 -:100A000088000000CC00007FC81000169900000D7F -:100A1000CC400067800000027C408000C81803EAD8 -:100A20009980FD797C40C00094C00003C810001676 -:100A300099000004CCC00068800000027C40800067 -:100A400084000239C0148000CC000041CD41304AFE -:100A5000C014800099000000C81000168000000239 -:100A60007C408000C01200017C51400C80000001DD -:100A7000D05500007C40C0007C4100007C4140001B -:100A80007C418000291C001FCCC0004ACD00004BD7 -:100A900095C00003C01C8000CDC12010DD83000084 -:100AA000055C2000CC00006280000001D81F4100DE -:100AB0007C40C0007C4100007C4140007C418000C3 -:100AC000CCC0004CCD00004DDD830000055CA000D3 -:100AD00080000001D81F41007C40C0007C41000024 -:100AE0007C4140007C418000CCC0004ECD00004FD6 -:100AF000DD830000055CC00080000001D81F4100BC -:100B00007C40C0007C4100007C4140007C41800072 -:100B1000CCC00050CD000051DD830000055CF8E042 -:100B200080000001D81F41007C40C0007C410000D3 -:100B30007C4140007C418000CCC00052CD0000537D -:100B4000DD830000055CF88080000001D81F4100B3 -:100B50007C40C0007C4100007C4140007C41800022 -:100B6000CCC00054CD000055DD830000055CE000E2 -:100B700080000001D81F41007C40C0007C41000083 -:100B80007C4140007C418000CCC00056CD00005725 -:100B9000DD830000055CF00080000001D81F4100EB -:100BA0007C40C0007C4100007C4140007C418000D2 -:100BB000CCC00058CD000059DD830000055CF3FC7B -:100BC00080000001D81F4100D04320007C408000FD -:100BD000A0000000CC800062D043A0007C408000D8 -:100BE000A0000000CC800062D043C0007C408000A8 -:100BF000A0000000CC800062D043F8E07C40800080 -:100C0000A0000000CC800062D043F8807C408000CF -:100C1000A0000000CC800062D043E0007C40800057 -:100C2000A0000000CC800062D043F0007C40800037 -:100C3000A0000000CC800062D043F3FC7C40800028 -:100C4000A0000000CC800062C81403E0CC43000088 -:100C5000CC430000CC4300007D45C000CDC3000064 -:100C6000D04300007C408000A0000000CC800062E7 -:100C70007C40C000C81003E2C81403E5C81803E3B1 -:100C8000C81C03E4CD812169CDC1216ACCC1216B8F -:100C9000CC01216C042000047DA180007D964002DF -:100CA0009640FCD9CD8003E331280003C02DF0002D -:100CB000251800087DAD800B7DA9800C8000000107 -:100CC000CD8003E3308CFFFFD04D00007C408000DE -:100CD000A0000000CC800062C8140020155800025B -:100CE0009580FFFFC8140020CC00006ECC4121800D -:100CF0007C40C000CCC1218DCC41218128D0001F77 -:100D000034588000CD81218C9500FCBFCC412182DC -:100D1000C81400209940FFFFC81400208000000282 -:100D20007C4080007C40C00028D0001831100001B9 -:100D3000C016008095000003C02A00047CD4C00CBB -:100D4000CCC1217CCC41217DCC41217E7C418000E5 -:100D50001DB0000336A0217F9B000003419C0005CD -:100D6000041C004099C0000009DC0001CC210000F7 -:100D7000C82400042A6C001F419C00059AC0FFFA99 -:100D8000CC800062800000027C4080007C40C0007B -:100D900004D403E680000001CC5400008000037CF2 -:100DA000CC4003EAC01C8000044CA000CDC1201040 -:100DB0007C410000C814000904180000041C00084D -:100DC000CD80007109DC000105980001CD0D000007 -:100DD00099C0FFFCCC8000628000037CCD40007194 -:100DE000C00E0100CC000041CCC1304AC83C007F9D -:100DF000CC00007F80000001CC00007FCC00007F91 -:100E000088000000CC00007F00000000000000000F -:100E100000000000000000000000000000000000D2 -:100E200000000000000000000000000000000000C2 -:100E300000000000000000000000000000000000B2 -:100E400000000000000000000000000000000000A2 -:100E50000000000000000000000000000000000092 -:100E60000000000000000000000000000000000082 -:100E70000000000000000000000000000000000072 -:100E80000000000000000000000000000000000062 -:100E90000000000000000000000000000000000052 -:100EA0000000000000000000000000000000000042 -:100EB0000000000000000000000000000000000032 -:100EC0000000000000000000000000000000000022 -:100ED0000000000000000000000000000000000012 -:100EE0000000000000000000000000000000000002 -:100EF00000000000000000000000000000000000F2 -:100F000000000000000000000000000000000000E1 -:100F100000000000000000000000000000000000D1 -:100F200000000000000000000000000000000000C1 -:100F300000000000000000000000000000000000B1 -:100F400000000000000000000000000000000000A1 -:100F50000000000000000000000000000000000091 -:100F60000000000000000000000000000000000081 -:100F70000000000000000000000000000000000071 -:100F80000000000000000000000000000000000061 -:100F90000000000000000000000000000000000051 -:100FA0000000000000000000000000000000000041 -:100FB0000000000000000000000000000000000031 -:100FC0000000000000000000000000000000000021 -:100FD0000000000000000000000000000000000011 -:100FE0000000000000000000000000000000000001 -:100FF00000000000000000000000000000000000F1 -:1010000000000000000000000000000000000000E0 -:1010100000000000000000000000000000000000D0 -:1010200000000000000000000000000000000000C0 -:1010300000000000000000000000000000000000B0 -:1010400000000000000000000000000000000000A0 -:101050000000000000000000000000000000000090 -:101060000000000000000000000000000000000080 -:101070000000000000000000000000000000000070 -:101080000000000000000000000000000000000060 -:101090000000000000000000000000000000000050 -:1010A0000000000000000000000000000000000040 -:1010B0000000000000000000000000000000000030 -:1010C0000000000000000000000000000000000020 -:1010D0000000000000000000000000000000000010 -:1010E0000000000000000000000000000000000000 -:1010F00000000000000000000000000000000000F0 -:1011000000000000000000000000000000000000DF -:1011100000000000000000000000000000000000CF -:1011200000000000000000000000000000000000BF -:1011300000000000000000000000000000000000AF -:10114000000000000000000000000000000000009F -:10115000000000000000000000000000000000008F -:10116000000000000000000000000000000000007F -:10117000000000000000000000000000000000006F -:10118000000000000000000000000000000000005F -:10119000000000000000000000000000000000004F -:1011A000000000000000000000000000000000003F -:1011B000000000000000000000000000000000002F -:1011C000000000000000000000000000000000001F -:1011D000000000000000000000000000000000000F -:1011E00000000000000000000000000000000000FF -:1011F00000000000000000000000000000000000EF -:1012000000000000000000000000000000000000DE -:1012100000000000000000000000000000000000CE -:1012200000000000000000000000000000000000BE -:1012300000000000000000000000000000000000AE -:10124000000000000000000000000000000000009E -:10125000000000000000000000000000000000008E -:10126000000000000000000000000000000000007E -:10127000000000000000000000000000000000006E -:10128000000000000000000000000000000000005E -:10129000000000000000000000000000000000004E -:1012A000000000000000000000000000000000003E -:1012B000000000000000000000000000000000002E -:1012C000000000000000000000000000000000001E -:1012D000000000000000000000000000000000000E -:1012E00000000000000000000000000000000000FE -:1012F00000000000000000000000000000000000EE -:1013000000000000000000000000000000000000DD -:1013100000000000000000000000000000000000CD -:1013200000000000000000000000000000000000BD -:1013300000000000000000000000000000000000AD -:10134000000000000000000000000000000000009D -:10135000000000000000000000000000000000008D -:10136000000000000000000000000000000000007D -:10137000000000000000000000000000000000006D -:10138000000000000000000000000000000000005D -:10139000000000000000000000000000000000004D -:1013A000000000000000000000000000000000003D -:1013B000000000000000000000000000000000002D -:1013C000000000000000000000000000000000001D -:1013D000000000000000000000000000000000000D -:1013E00000000000000000000000000000000000FD -:1013F00000000000000000000000000000000000ED -:10140000000103310010000400170006002100084D -:10141000002700280028002300290029002A002690 -:10142000002B0029002D0038002E003F002F004A1D -:101430000034004C00360030003900AF003A00CFD5 -:10144000003B00E4003C00FC003D016B003F00ADB0 -:1014500000410336004303490044018E004500FC6F -:10146000004601AC004701AC004801FE0049020CF7 -:10147000004A0255004B02820052025F0053027183 -:1014800000540287005702990060029D006102AC7F -:10149000006202B6006302C0006402CA006502D4A2 -:1014A000006602DE006702E8006802F2006902F6E8 -:1014B000006A02FA006B02FE006C0302006D030674 -:1014C000006E030A006F030E0070031200720363C4 -:1014D0000074036900790367007C031C000F037824 -:1014E000000F0378000F0378000F0378000F0378D4 -:1014F000000F0378000F0378000F0378000F0378C4 -:10150000000F0378000F0378000F0378000F0378B3 -:10151000000F0378000F0378000F0378000F0378A3 -:10152000000F0378000F0378000F0378000F037893 -:10153000000F0378000F0378000F0378000F037883 -:00000001FF diff --git a/firmware/radeon/RV730_pfp.bin.ihex b/firmware/radeon/RV730_pfp.bin.ihex deleted file mode 100644 index 3d811ff0a1a8..000000000000 --- a/firmware/radeon/RV730_pfp.bin.ihex +++ /dev/null @@ -1,213 +0,0 @@ -:100000007C408000A00000007E82800B8000000009 -:10001000DC030000CC800040D04000407C408000E9 -:10002000A00000007E82800BC818000E31980001ED -:100030007C4240009580023A7C428000C81C001C33 -:10004000C037C0007C40C0007C4100007CB4800B05 -:10005000C036000399C00000C81C001C7CB4800C92 -:1000600024D400027D654000CD400043CE80004393 -:10007000CD000043CC800040CE400040CE80004008 -:10008000CCC00040DC3A00009780FFDECD0000408D -:100090007C40C000800000187C410000D400034078 -:1000A000D4000FC0D4000FA2C818000E8000000CAE -:1000B00031980002D40003C0D4000FC0D4000FA2B6 -:1000C000C818000E288C000830CC000F3410000136 -:1000D0007D0D00088000000C7D91800BCC800040DD -:1000E000D04000407C408000A00000007E82800B59 -:1000F000D4000340D4000FC0D4000FA2CC80004035 -:10010000D04000407C408000A00000007E82800B38 -:10011000D40003C0D4000FC0D4000FA2CC80004094 -:10012000D04000407C408000A00000007E82800B18 -:10013000CC4003F980000249CC4003F8C037FFFFF0 -:100140007C414000CF41A29EC82003F8C81C03F99F -:1001500066200020C81803FB7DE1C02C7D58C00834 -:100160007CDCC02069100020C0360003CC000054A5 -:100170007CB4800C80000069CC8000407C41800011 -:10018000CD81A29ECC80004080000067CD800040E1 -:10019000C019FFFFCC800040CD81A29E7C40C000F2 -:1001A0007C4100007C414000CCC1A1FACD01A1F905 -:1001B000CD41A29DCCC00040CD000040CD400040CC -:1001C000CC4000407C408000A00000007E82800B7C -:1001D000CC000054CC8000407C40C0007C4100003A -:1001E0007C414000CCC1A1FACD01A1F9CD41A29D35 -:1001F000CCC00040CD000040CD400040D040004089 -:100200007C408000A00000007E82800B7C40C0000B -:1002100030D00001CCC1A29F95000003041400015E -:1002200004140002CD4003FBCC800040800000009D -:10023000CCC000407C40C000CC800040CCC1A2A219 -:1002400080000000CCC000407C40C00028D4001FCB -:10025000CC800040954000037C410000CCC000579A -:100260002918001FCCC0004095800003CD0000403D -:10027000CD00005880000249CC00007FC820001744 -:10028000C83000229A0000060E280001C824001E73 -:100290000A640001D4001240CE400040C036C000C5 -:1002A0009680000737747900041C0001CF4000409D -:1002B000CDC00040CF0003FA7C030000CA0C001040 -:1002C0007C41000094C000047C414000D42002C462 -:1002D000CDE000449B00000B7C418000CC00004B33 -:1002E000CDA00049CD200041CD600041CDA000410E -:1002F00006200001CE00005680000249CC00007F9D -:10030000C8280020C82C0021CC0000637EEA4001F0 -:10031000657400207F53402C269C00027DF5C02090 -:1003200069F80020CE80004BCE600049CDE000414E -:10033000CFA00041CE600041271C00027DF5C02007 -:1003400069F800207DB24001CF00004BCE6000492B -:10035000CDE00041CFA00041800000BCCE60004154 -:10036000C8200017C83000229A0000060E2800019D -:10037000C824001E0A640001D4001240CE40004090 -:10038000CA0C00107C41000094C0000BC036C000B5 -:100390009680000737747900041C0001CF400040AC -:1003A000CDC00040CF0003FA7C030000800000B500 -:1003B0007C414000CC000048800000EE00000000BE -:1003C000C8200017C81C00230E24000299C0001585 -:1003D0007C4180000A200001CE000056D400044079 -:1003E000CC000040C036C000CA140013964000077D -:1003F00037747900CF400040CC000040C83003FA89 -:1004000080000103CF000022CC000022954001466D -:10041000CC00007FCCA0004680000000CC2000462D -:1004200080000249CC000064C8200017C810001FDB -:100430009600000509100001D4000440CD000040E2 -:10044000CD000022CC800040D0400040C80C0025E8 -:1004500094C0FEECC8100008CD000040D4000FC0CE -:1004600080000000D4000FA27C40C0007C4100004E -:10047000CCC003FDCD0003FCCCC00042CD00004247 -:100480002914001F29180010319800073B5C000157 -:100490007D76000B998000057D5E400BCC0000420C -:1004A00080000249CC00004D29980001292C000849 -:1004B0009980003D32EC0001960000042930000CC8 -:1004C00080000249CC00004204140010CD400042DC -:1004D00033300001342800018400015DC81400039A -:1004E0009B40001B0438000C8400015DC81400030D -:1004F0009B400017043800088400015DC814000305 -:100500009B400013043800048400015DC8140003FC -:100510009B400015C80C03FD9A800009C81003FC1D -:100520009B000101CC00004D04140010CCC000421F -:10053000CD00004280000135CD40004296C000FA57 -:10054000CC00004D80000249CC00004E9AC0000350 -:10055000CC00004DCC00004EDF8300008000000086 -:10056000D80301FF9AC000F0CC00004D8000024982 -:10057000CC00004EC8180003C81C0003C8200003AC -:100580007D5D40037DA1C0037D5D400C2A10001FEE -:10059000299C001F7D1D000B7D17400B880000006B -:1005A0007E92800B96400004CC00004E80000249F1 -:1005B000CC00004204380008CF800042C808000385 -:1005C000C80C0003C8100003C8140003C8180003B7 -:1005D000C81C0003C8240003C828000329FC001F0E -:1005E0002AB0001F7FF3C00B28F0001F7FF3C00B61 -:1005F0002970001F7FF3C00B7D8880017DCCC00176 -:100600007E5100017E9540017C9080027CD4C00226 -:100610007CBC800B9AC000037C8F400B38B4000177 -:100620009B4000C1CC00004D9BC000BFCC00004EE1 -:10063000C80C03FDC81003FCCCC000428000016E52 -:10064000CD000042D4000340D4000FC0D4000FA25C -:10065000CC800040CC400040CC400040CC4000402A -:100660007C40C000CCC00040CCC0000D8000000029 -:10067000D04000407C40C0007C4100006514002058 -:100680007D4D402C245800027D5980207C41C000C3 -:10069000CD80004269980020CD800042CDC000424C -:1006A000C023C00005E400027CA0800B266400107B -:1006B0007CA4800CCC800040CDC00040CCC0004069 -:1006C00095C0000ECD00004009DC0001C8280003E1 -:1006D00096800008CE800040C834001D974000007E -:1006E000C834001D26A800088400024CCC2B000052 -:1006F00099C0FFF709DC0001DC3A00009780000494 -:100700007C418000800001A225980002A00000002A -:100710007D808000C818001D7C40C00064D00008A7 -:1007200095800000C818001DCC130000CC8000404C -:10073000CCC0004080000000CC400040C810001F2A -:100740007C40C000CC8000407CD1400CCD400040BB -:100750000518000180000000CD8000227C40C00010 -:10076000645000208400024CCC0000617CD0C02C7E -:10077000C8200017C8D60000994000087C438000BC -:10078000DF830000CFA0004F8400024CCC00006249 -:1007900080000000D040007F80000249CC00006251 -:1007A0008400024CCC000061C82000177C40C000CF -:1007B000C036FF00C810000DC0303FFF7CF5400B75 -:1007C0007D51800B7D81800F998000087CF3800B28 -:1007D000DF830000CFA0004F8400024CCC000062F9 -:1007E00080000000D040007F80000249CC00006201 -:1007F0008400024C7C40C00028DC000895C0001931 -:1008000030DC00107C41000099C0000464540020DA -:1008100080000208C91D00007D15002CC91E0000C3 -:100820007C4200007C4240007C4180007DE5C00BA2 -:100830007DE280079A80000E41AC00059AC000005E -:100840000AEC000130DC001099C000040000000038 -:100850008000020BC91D00008000020BC91E0000B1 -:10086000CC800040CCC00040D0400040C80C0025E7 -:1008700094C0FDE4C8100008CD000040D4000FC0B3 -:1008800080000000D4000FA2D4000340D4000FC0A9 -:10089000D4000FA2CC800040D04000407C408000BB -:1008A000A00000007E82800BD40003C0D4000FC0E3 -:1008B000D4000FA2CC800040D04000407C4080009B -:1008C000A00000007E82800B7C40C00030D000067B -:1008D0000D10000699000007C81400159940000586 -:1008E000CC000052D4000340D4000FC0D4000FA2AB -:1008F000CC800040CCC0004080000000D0400040D0 -:100900007C40C000CC4D0000DC3A00009780FDBD6B -:1009100004CC000180000242CC4D000080000000A9 -:10092000D040007FCC00007F80000000CC00007F22 -:10093000CC00007F88000000CC00007F0000000099 -:1009400000000000000000000000000000000000A7 -:100950000000000000000000000000000000000097 -:100960000000000000000000000000000000000087 -:100970000000000000000000000000000000000077 -:100980000000000000000000000000000000000067 -:100990000000000000000000000000000000000057 -:1009A0000000000000000000000000000000000047 -:1009B0000000000000000000000000000000000037 -:1009C0000000000000000000000000000000000027 -:1009D0000000000000000000000000000000000017 -:1009E0000000000000000000000000000000000007 -:1009F00000000000000000000000000000000000F7 -:100A000000000000000000000000000000000000E6 -:100A100000000000000000000000000000000000D6 -:100A200000000000000000000000000000000000C6 -:100A300000000000000000000000000000000000B6 -:100A400000000000000000000000000000000000A6 -:100A50000000000000000000000000000000000096 -:100A60000000000000000000000000000000000086 -:100A70000000000000000000000000000000000076 -:100A80000000000000000000000000000000000066 -:100A90000000000000000000000000000000000056 -:100AA0000000000000000000000000000000000046 -:100AB0000000000000000000000000000000000036 -:100AC0000000000000000000000000000000000026 -:100AD0000000000000000000000000000000000016 -:100AE0000000000000000000000000000000000006 -:100AF00000000000000000000000000000000000F6 -:100B000000000000000000000000000000000000E5 -:100B100000000000000000000000000000000000D5 -:100B200000000000000000000000000000000000C5 -:100B300000000000000000000000000000000000B5 -:100B400000000000000000000000000000000000A5 -:100B50000000000000000000000000000000000095 -:100B60000000000000000000000000000000000085 -:100B70000000000000000000000000000000000075 -:100B80000000000000000000000000000000000065 -:100B90000000000000000000000000000000000055 -:100BA0000000000000000000000000000000000045 -:100BB0000000000000000000000000000000000035 -:100BC0000000000000000000000000000000000025 -:100BD0000000000000000000000000000000000015 -:100BE0000000000000000000000000000000000005 -:100BF00000000000000000000000000000000000F5 -:100C0000000302220004022A0005009F00020003E4 -:100C10000006003C0007002700080191000900447D -:100C2000000A002D00100247001700F0002201D733 -:100C3000002301E80026004C0027005F0020011A75 -:100C4000002800920029004F002A0083002B006436 -:100C5000002F008D003200D80034023200360074BC -:100C60000039010A003C01FC003F009F00410005E3 -:100C7000004401940048019D004901C5004A01CF8C -:100C8000005502250056022D0060000A0061002A6E -:100C90000062003000630030006400300065003006 -:100CA0000066003000670030006800370069003FD0 -:100CB000006A0047006B0047006C0047006D00476A -:100CC000006E0047006F0047007000470073024746 -:100CD000007B024000000005000000050000000548 -:100CE00000000005000000050000000500000005F0 -:100CF00000000005000000050000000500000005E0 -:100D000000000005000000050000000500000005CF -:100D100000000005000000050000000500000005BF -:100D200000000005000000050000000500000005AF -:100D3000000000050000000500000005000000059F -:00000001FF diff --git a/firmware/radeon/RV770_me.bin.ihex b/firmware/radeon/RV770_me.bin.ihex deleted file mode 100644 index a0e16990a20a..000000000000 --- a/firmware/radeon/RV770_me.bin.ihex +++ /dev/null @@ -1,341 +0,0 @@ -:10000000CC0003EA7C408000A0000000CC800062AD -:1000100080000001D040007F80000001CC40004102 -:100020007C40C000C016000430D03FFF7D15000C9E -:10003000CC11000028D8001E3198000128DC001FD8 -:10004000C820000495C000067C424000CC0000623D -:100050007E56800CCC290000C82400047E26000BAC -:10006000958000067C42C000CC0000627ED7000C68 -:10007000CC310000C82C00047E2E000CCC000062A5 -:1000800031103FFF80000001CE1100007C40C00015 -:1000900080000001CC40004080000001CC4122578C -:1000A0007C418000CC400045CC400048CC41225CE3 -:1000B000CC41A1FC7C408000A0000000CC8000620C -:1000C000CC400045CC4000487C40C000CC41225C84 -:1000D000CC41A1FC7C408000A0000000CC800062EC -:1000E000CC000045CC000048CC41225CCC41A1FCB6 -:1000F0007C408000A0000000CC800062040CA1FDC8 -:10010000C0120001CC000045CC0000487CD0C00CDF -:10011000CC41225CCC41A1FCD04D00007C40800051 -:10012000A0000000CC80006280000001CC41225D74 -:100130007C4080007C40C000C02A00027C4100005E -:100140007D29000C3094000130980006309C03009B -:1001500029DC00087C4200007C4240009540000FF2 -:10016000C02E000405F022587F2F000CCC31000077 -:10017000C8280004CCC12169CD01216ACE81216B40 -:100180000DB40002CC01216C9740000E0DB40000AC -:100190008000007BC834000A0DB4000297400009BB -:1001A0000DB40000C02E000405F022587F2F000C73 -:1001B000CC310000C82800048000007BC834000A4D -:1001C000974000047E0280008000007BC834000A53 -:1001D0000DB400049740FF8C00000000CE01216D9B -:1001E000CE41216EC8280003C834000A9B40000499 -:1001F000043C00058400026DCC0000620DF4000098 -:100200009740000BC82C03E6CE81A2B7C030000691 -:100210007EF34028C03000207F6B80207FB3C02950 -:10022000CF81A2C480000001CFC1A2D10DF4000192 -:100230009740000BC82C03E7CE81A2BBC03000065C -:100240007EF34028C03000207F6B80207FB3C02920 -:10025000CF81A2C580000001CFC1A2D20DF400025F -:100260009740000BC82C03E8CE81A2BFC030000627 -:100270007EF34028C03000207F6B80207FB3C029F0 -:10028000CF81A2C680000001CFC1A2D3C82C03E950 -:10029000CE81A2C3C03000067EF34028C0300020CB -:1002A0007F6B80207FB3C029CF81A2C7800000016F -:1002B000CFC1A2D480000001CC4000427C40C000ED -:1002C0007C4100002914001D315400019940000DAB -:1002D00031181000C81C001109DC000195C0FFFF97 -:1002E000C81C0011CCC12100CD012101CCC12102CB -:1002F000CD012103041800048000039FCD81A2A436 -:10030000C02A00049580000836A821A3CC2900004B -:10031000C8280004C81C00110DE400409640FFFFEF -:10032000C81C0011CCC12170CD012171C820001260 -:1003300096000000C82000128000039FCC000064DB -:100340007C40C0007C410000CC000045CC0000484F -:1003500040D40003CD41225CCD01A1FCC01A0001B4 -:10036000041CA1FD7DD9C00C7C42000008CC00011A -:100370000624000106280002CE1D0000CE5D00000C -:1003800098C0FFFACE9D00007C408000A0000000D5 -:10039000CC8000627C40C00030D0000128CC00013D -:1003A0007C414000950000067C418000CD41216DDC -:1003B000CD81216E800000F3C81C0003C022000420 -:1003C0007E16000CCC210000C81C00047C424000BA -:1003D00098C000047C42800080000001CDE5000050 -:1003E000CE412169CE81216ACDC1216B80000001FF -:1003F000CC01216C7C40C0007C4100007C4140006D -:100400007C4180007C41C00028A40008326400FFC9 -:100410000E68003C9680000A7C0200007C420000CE -:100420001E300003CC00006A9B0000034220000540 -:1004300004200040800001107C0240007E02400049 -:100440009A4000000A64000130EC00109AC0000AD3 -:10045000CC000062C02A0004C82C00217E92800CCF -:10046000CC000041CC290000CEC00021800001203A -:10047000C8300004CD01216DCD41216EC83000038C -:100480007F1F000B30F40007277800019740002AF7 -:1004900007B801259F8000000000000080000135A2 -:1004A0007F1B8004800001397F1B80058000013D97 -:1004B0007F1B8002800001417F1B8003800001457B -:1004C0007F1B8007800001497F1B80068000014E52 -:1004D00028A400089B80001928A400088000015E61 -:1004E000326400FF9B80001528A400088000015E94 -:1004F000326400FF9B80001128A400088000015E88 -:10050000326400FF9B80000D28A400088000015E7B -:10051000326400FF9B80000928A400088000015E6F -:10052000326400FF9B80000528A400088000015E63 -:10053000326400FF28A40008326400FF0E68003C0B -:100540009A80FEB128EC00087C4340007C43800088 -:100550007C43C00096C00007CC000062CF412169F7 -:10056000CF81216ACFC1216B80000001CC01216CB9 -:1005700080000001CFF50000CC00006B840003A2D6 -:100580000E68003C9A800004C82800158000000115 -:10059000D040007F9680FFAB7E0240008400023B8B -:1005A000C00E0002CC00004180000239CCC1304AAC -:1005B0007C40C0007C410000C01E000129240012C4 -:1005C000C022000296400005C0260004C027FFFBA1 -:1005D0007D25000BC02600007DD2800B7E12C00B53 -:1005E0007D25000C7C4140007C418000CCC121690C -:1005F0009A80000ACD01216ACD41216B96C0FE820E -:10060000CD81216CC830001897000000C830001858 -:1006100080000001CC000018840003A2CC00007F01 -:10062000C8140013C8180014CD41216B96C0FE7683 -:10063000CD81216C80000182C8300018C80C0008F0 -:1006400098C00000C80C00087C4100009500000222 -:10065000000000007C414000C8200009CC4000435D -:10066000CE01A1F4CC400044C00E80007C4240008A -:100670007C4280002AAC001F96C0FE63C035F000AB -:10068000CE4003E232780003267C00087FF7C00BDF -:100690007FFBC00C2A780018CFC003E3CF8003E4AF -:1006A00026B000027F3F0000CF0003E58000031F5B -:1006B0007C80C0007C40C00028D000083110000FB2 -:1006C0009500000F2528000106A801B39E800000B8 -:1006D00000000000800001D4C0120800800001E288 -:1006E000C814000F800001E9C8140010800001F058 -:1006F000CCC1A2A4800001F9C814001130D0003F81 -:100700000D2800159A8000120D28001E9A80001EE8 -:100710000D2800209A8000230D24000F0D280010C2 -:100720007E6A800C9A8000260D2000040D2400149F -:100730000D2800287E62400C7EA6800C9A80002A3C -:10074000C814001180000001CCC1A2A4C01208008E -:100750007C4140007D0CC00CC012000829580003E9 -:10076000295C000C7C4200007DD1C00B26200014C7 -:100770007E1E400C7E4E800CCE81A2A48000000123 -:10078000CD81A1FEC814000F0410210E9540000079 -:10079000C814000FD051000080000001CCC1A2A4F9 -:1007A000C81400100410210895400000C81400105F -:1007B000D051000080000001CCC1A2A4CCC1A2A4F1 -:1007C00004100001CD000019840003A2CC00007FBA -:1007D000C810001999000000C8100019800000021C -:1007E0007C40800004102100095400019540FFFF67 -:1007F000C8140011D05100008000039FCCC1A2A4F6 -:100800007C40C000CC40000D94C0FDFFCC40000EE9 -:100810007C4100009500000508CC0001C8140005CB -:10082000994000140000000098C0FFFB7C410000CC -:10083000800000027D008000C81400057C40C000DC -:100840009940000CC818000C7C4100009580FDEE1A -:10085000C820000EC81C000D662000207E1E002C43 -:10086000252400027E62402080000001CCE60000CA -:100870007C410000CC00006CCC00006DC818001F4B -:10088000C81C001E659800207DD9C02C7CD4C00CEB -:10089000CCDE000045DC0004C82800179680000F5D -:1008A000C00E0001286800082AAC001632A800FF1C -:1008B0000EB000497F2F000B9700000600000000DB -:1008C000C81400057C40C000800002237C41000069 -:1008D00080000226D040007F8400023BCC00004113 -:1008E000CCC1304A94000000C83C001A043C00050A -:1008F000CFC1A2A4C0361F90C0387FFF7C03C010B8 -:100900007F7B400CCF41217CCFC1217DCC01217E5A -:10091000C03A00040434217F7F7B400CCC350000BA -:10092000C83C00042BFC001F0438002097C00005C1 -:10093000CC0000629B8000000BB8000180000247E1 -:10094000CC000071CC01A1F404380016C0360002BE -:10095000CF81A2A488000000CF4120107C40C000BD -:1009600028D0001C9500000504D40001CD4000658E -:1009700080000001CD4000680954000280000001A1 -:10098000CD4000668400026CC81803EA7C40C000B9 -:100990009980FD9DC814001608D000019940002BD5 -:1009A000CD0000687C408000A0000000CC80006288 -:1009B000043C0005CFC1A2A4CC01A1F4840003A291 -:1009C000CC00004688000000CC00007F8400027E3E -:1009D000C81803EA7C40C0009980FD8BC81400163B -:1009E00008D0000199400019CD0000687C408000CB -:1009F000A0000000CC800062043C0022CFC1A2A471 -:100A0000840003A2CC00004788000000CC00007FD7 -:100A1000C81000169900000DCC400067800000024D -:100A20007C408000C81803EA9980FD777C40C000B4 -:100A300094C00003C810001699000004CCC00068E0 -:100A4000800000027C4080008400023BC0148000D3 -:100A5000CC000041CD41304AC01480009900000014 -:100A6000C8100016800000027C408000C012000107 -:100A70007C51400C80000001D05500007C40C0003B -:100A80007C4100007C4140007C418000291C001F0B -:100A9000CCC0004ACD00004B95C00003C01C8000B4 -:100AA000CDC12010DD830000055C2000CC00006279 -:100AB00080000001D81F41007C40C0007C41000044 -:100AC0007C4140007C418000CCC0004CCD00004DFA -:100AD000DD830000055CA00080000001D81F4100FC -:100AE0007C40C0007C4100007C4140007C41800093 -:100AF000CCC0004ECD00004FDD830000055CC0007F -:100B000080000001D81F41007C40C0007C410000F3 -:100B10007C4140007C418000CCC00050CD000051A1 -:100B2000DD830000055CF8E080000001D81F410073 -:100B30007C40C0007C4100007C4140007C41800042 -:100B4000CCC00052CD000053DD830000055CF8806E -:100B500080000001D81F41007C40C0007C410000A3 -:100B60007C4140007C418000CCC00054CD00005549 -:100B7000DD830000055CE00080000001D81F41001B -:100B80007C40C0007C4100007C4140007C418000F2 -:100B9000CCC00056CD000057DD830000055CF0009E -:100BA00080000001D81F41007C40C0007C41000053 -:100BB0007C4140007C418000CCC00058CD000059F1 -:100BC000DD830000055CF3FC80000001D81F4100BC -:100BD000D04320007C408000A0000000CC80006258 -:100BE000D043A0007C408000A0000000CC800062C8 -:100BF000D043C0007C408000A0000000CC80006298 -:100C0000D043F8E07C408000A0000000CC8000626F -:100C1000D043F8807C408000A0000000CC800062BF -:100C2000D043E0007C408000A0000000CC80006247 -:100C3000D043F0007C408000A0000000CC80006227 -:100C4000D043F3FC7C408000A0000000CC80006218 -:100C5000C81403E0CC430000CC430000CC430000A8 -:100C60007D45C000CDC30000D04300007C40800023 -:100C7000A0000000CC8000627C40C000C81003E2ED -:100C8000C81403E5C81803E3C81C03E4CD81216937 -:100C9000CDC1216ACCC1216BCC01216C04200004A0 -:100CA0007DA180007D9640029640FCD7CD8003E375 -:100CB00031280003C02DF000251800087DAD800B01 -:100CC0007DA9800C80000001CD8003E3308CFFFF04 -:100CD000D04D00007C408000A0000000CC8000626D -:100CE0007C40C0007C4100002924001832640001CF -:100CF0009A400013C8140020155800029580FFFF89 -:100D0000C8140020CC00006ECCC12180CD01218D03 -:100D1000CC4121812914001F34588000CD81218CC1 -:100D20009540FCB9CC412182C81400209940FFFFB6 -:100D3000C8140020800000027C4080007C414000FC -:100D40007C4180007C41C00065B400207F57402C6E -:100D5000D437810047740004D437810047740004FD -:100D6000D43781004774000409DC0004D4378100C3 -:100D700099C0FFF8477400042924001FC0380019E7 -:100D80009640FCA1C03E0004CF8121F837E021F954 -:100D9000CC210000C82000042A20001832200001C5 -:100DA0009A00FFFBCF8121F8800000027C40800088 -:100DB0007C40C00028D0001831100001C01600800F -:100DC00095000003C02A00047CD4C00CCCC1217C57 -:100DD000CC41217DCC41217E7C4180001DB00003AF -:100DE00036A0217F9B000003419C0005041C0040AD -:100DF00099C0000009DC0001CC210000C8240004D7 -:100E00002A6C001F419C00059AC0FFFACC8000624A -:100E1000800000027C4080007C40C00004D403E6D7 -:100E200080000001CC5400008000039FCC4003EA06 -:100E3000C01C8000044CA000CDC120107C410000EB -:100E4000C814000904180000041C0008CD800071BB -:100E500009DC000105980001CD0D000099C0FFFCE0 -:100E6000CC8000628000039FCD400071C00E010065 -:100E7000CC000041CCC1304AC83C007FCC00007F90 -:100E800080000001CC00007FCC00007F88000000C3 -:100E9000CC00007F00000000000000000000000007 -:100EA0000000000000000000000000000000000042 -:100EB0000000000000000000000000000000000032 -:100EC0000000000000000000000000000000000022 -:100ED0000000000000000000000000000000000012 -:100EE0000000000000000000000000000000000002 -:100EF00000000000000000000000000000000000F2 -:100F000000000000000000000000000000000000E1 -:100F100000000000000000000000000000000000D1 -:100F200000000000000000000000000000000000C1 -:100F300000000000000000000000000000000000B1 -:100F400000000000000000000000000000000000A1 -:100F50000000000000000000000000000000000091 -:100F60000000000000000000000000000000000081 -:100F70000000000000000000000000000000000071 -:100F80000000000000000000000000000000000061 -:100F90000000000000000000000000000000000051 -:100FA0000000000000000000000000000000000041 -:100FB0000000000000000000000000000000000031 -:100FC0000000000000000000000000000000000021 -:100FD0000000000000000000000000000000000011 -:100FE0000000000000000000000000000000000001 -:100FF00000000000000000000000000000000000F1 -:1010000000000000000000000000000000000000E0 -:1010100000000000000000000000000000000000D0 -:1010200000000000000000000000000000000000C0 -:1010300000000000000000000000000000000000B0 -:1010400000000000000000000000000000000000A0 -:101050000000000000000000000000000000000090 -:101060000000000000000000000000000000000080 -:101070000000000000000000000000000000000070 -:101080000000000000000000000000000000000060 -:101090000000000000000000000000000000000050 -:1010A0000000000000000000000000000000000040 -:1010B0000000000000000000000000000000000030 -:1010C0000000000000000000000000000000000020 -:1010D0000000000000000000000000000000000010 -:1010E0000000000000000000000000000000000000 -:1010F00000000000000000000000000000000000F0 -:1011000000000000000000000000000000000000DF -:1011100000000000000000000000000000000000CF -:1011200000000000000000000000000000000000BF -:1011300000000000000000000000000000000000AF -:10114000000000000000000000000000000000009F -:10115000000000000000000000000000000000008F -:10116000000000000000000000000000000000007F -:10117000000000000000000000000000000000006F -:10118000000000000000000000000000000000005F -:10119000000000000000000000000000000000004F -:1011A000000000000000000000000000000000003F -:1011B000000000000000000000000000000000002F -:1011C000000000000000000000000000000000001F -:1011D000000000000000000000000000000000000F -:1011E00000000000000000000000000000000000FF -:1011F00000000000000000000000000000000000EF -:1012000000000000000000000000000000000000DE -:1012100000000000000000000000000000000000CE -:1012200000000000000000000000000000000000BE -:1012300000000000000000000000000000000000AE -:10124000000000000000000000000000000000009E -:10125000000000000000000000000000000000008E -:10126000000000000000000000000000000000007E -:10127000000000000000000000000000000000006E -:10128000000000000000000000000000000000005E -:10129000000000000000000000000000000000004E -:1012A000000000000000000000000000000000003E -:1012B000000000000000000000000000000000002E -:1012C000000000000000000000000000000000001E -:1012D000000000000000000000000000000000000E -:1012E00000000000000000000000000000000000FE -:1012F00000000000000000000000000000000000EE -:1013000000000000000000000000000000000000DD -:1013100000000000000000000000000000000000CD -:1013200000000000000000000000000000000000BD -:1013300000000000000000000000000000000000AD -:10134000000000000000000000000000000000009D -:10135000000000000000000000000000000000008D -:10136000000000000000000000000000000000007D -:10137000000000000000000000000000000000006D -:10138000000000000000000000000000000000005D -:10139000000000000000000000000000000000004D -:1013A000000000000000000000000000000000003D -:1013B000000000000000000000000000000000002D -:1013C000000000000000000000000000000000001D -:1013D000000000000000000000000000000000000D -:1013E00000000000000000000000000000000000FD -:1013F00000000000000000000000000000000000ED -:10140000000103330010000400170006002100084B -:10141000002700280028002300290029002A002690 -:10142000002B0029002D0038002E003F002F004A1D -:101430000034004C00360030003900AF003A00D0D4 -:10144000003B00E5003C00FD003D016C003F00ADAD -:10145000004103380043036C0044018F004500FD48 -:10146000004601AD004701AD004802000049020EF0 -:10147000004A0257004B028400520261005302737B -:10148000005402890057029B0060029F006102AE77 -:10149000006202B8006302C2006402CC006502D69A -:1014A000006602E0006702EA006802F4006902F8E0 -:1014B000006A02FC006B0300006C0304006D03086B -:1014C000006E030C006F031000700314007203869B -:1014D0000074038C0079038A007C031E000F039BB9 -:1014E000000F039B000F039B000F039B000F039B48 -:1014F000000F039B000F039B000F039B000F039B38 -:10150000000F039B000F039B000F039B000F039B27 -:10151000000F039B000F039B000F039B000F039B17 -:10152000000F039B000F039B000F039B000F039B07 -:10153000000F039B000F039B000F039B000F039BF7 -:00000001FF diff --git a/firmware/radeon/RV770_pfp.bin.ihex b/firmware/radeon/RV770_pfp.bin.ihex deleted file mode 100644 index a2d1619107de..000000000000 --- a/firmware/radeon/RV770_pfp.bin.ihex +++ /dev/null @@ -1,213 +0,0 @@ -:100000007C408000A00000007E82800B8000000009 -:10001000DC030000CC800040D04000407C408000E9 -:10002000A00000007E82800BC818000E31980001ED -:100030007C424000958002527C428000C81C001C1B -:10004000C037C0007C40C0007C4100007CB4800B05 -:10005000C036000399C00000C81C001C7CB4800C92 -:1000600024D400027D654000CD400043CE80004393 -:10007000CD000043CC800040CE400040CE80004008 -:10008000CCC00040DC3A00009780FFDECD0000408D -:100090007C40C000800000187C410000D400034078 -:1000A000D4000FC0D4000FA2C818000E8000000CAE -:1000B00031980002D40003C0D4000FC0D4000FA2B6 -:1000C000C818000E288C000830CC000F3410000136 -:1000D0007D0D00088000000C7D91800BCC800040DD -:1000E000D04000407C408000A00000007E82800B59 -:1000F000D4000340D4000FC0D4000FA2CC80004035 -:10010000D04000407C408000A00000007E82800B38 -:10011000D40003C0D4000FC0D4000FA2CC80004094 -:10012000D04000407C408000A00000007E82800B18 -:10013000CC4003F980000261CC4003F8C82003F8EA -:10014000C81C03F9C81803FBC037FFFF7C414000FF -:10015000CF41A29E662000207DE1C02C7D58C008C2 -:100160007CDCC02068D00020C0360003CC000054E6 -:100170007CB4800C8000006ACC8000407C41800010 -:10018000CD81A29ECC800040CD80004080000068E0 -:10019000CC000054C019FFFFCC800040CD81A29E4E -:1001A0007C40C0007C4100007C414000CCC1A1FAF1 -:1001B000CD01A1F9CD41A29DCCC00040CD000040B1 -:1001C000CD400040CC4000407C408000A0000000BA -:1001D0007E82800BCC000054CC8000407C40C0006C -:1001E0007C4100007C414000CCC1A1FACD01A1F9C5 -:1001F000CD41A29DCCC00040CD000040CD4000408C -:10020000D04000407C408000A00000007E82800B37 -:100210007C40C00030D00001CCC1A29F95000003FB -:100220000414000104140002CD4003FBCC80004004 -:1002300080000000CCC000407C40C000CC8000406A -:10024000CCC1A2A280000000CCC000407C40C00015 -:1002500028D4001FCC800040954000037C41000062 -:10026000CCC000572918001FCCC000409580000367 -:10027000CD000040CD00005880000261CC00007F1E -:10028000C8200017C83000229A0000060E2800017E -:10029000C824001E0A640001D4001240CE40004071 -:1002A000C036C0009680000737747900041C000136 -:1002B000CF400040CDC00040CF0003FA7C030000D7 -:1002C000CA0C00107C41000094C000047C41400036 -:1002D000D42002C4CDE000449B00000B7C41800090 -:1002E000CC00004BCDA00049CD200041CD600041A5 -:1002F000CDA0004106200001CE0000568000026122 -:10030000CC00007FC8280020C82C0021CC0000634E -:100310007EEA4001657400207F53402C269C000239 -:100320007DF5C02069F80020CE80004BCE600049EA -:10033000CDE00041CFA00041CE600041271C00026B -:100340007DF5C02069F800207DB24001CF00004B50 -:10035000CE600049CDE00041CFA00041800000BD4B -:10036000CE600041C8200017C83000229A00000665 -:100370000E280001C824001E0A640001D4001240A7 -:10038000CE400040CA0C00107C41000094C0000B1D -:10039000C036C0009680000737747900041C000145 -:1003A000CF400040CDC00040CF0003FA7C030000E6 -:1003B000800000B67C414000CC000048800000EF87 -:1003C00000000000C8200017C81C00230E240002F3 -:1003D00099C000157C4180000A200001CE00005623 -:1003E000D4000440CC000040C036C000CA14001342 -:1003F0009640000737747900CF400040CC000040A1 -:10040000C83003FA80000104CF000022CC00002293 -:100410009540015DCC00007FCCA00046800000002C -:10042000CC20004680000261CC000064C820001788 -:10043000C810001F9600000509100001D4000440F8 -:10044000CD000040CD000022CC800040D0400040D4 -:10045000C80C002594C0FEEBC8100008CD00004079 -:10046000D4000FC080000000D4000FA27C40C00068 -:100470007C410000CCC003FDCD0003FCCCC0004299 -:10048000CD0000422914001F2918001031980007E0 -:100490003B5C00017D76000B998000057D5E400B82 -:1004A000CC00004280000261CC00004D2998000180 -:1004B000292C00089980003D32EC000196000004D0 -:1004C0002930000C80000261CC00004204140010AE -:1004D000CD40004233300001342800018400015E29 -:1004E000C81400039B40001B0438000C8400015E0C -:1004F000C81400039B400017043800088400015E04 -:10050000C81400039B400013043800048400015EFB -:10051000C81400039B400015C80C03FD9A80000915 -:10052000C81003FC9B000118CC00004D04140010FF -:10053000CCC00042CD00004280000136CD400042D8 -:1005400096C00111CC00004D80000261CC00004E2D -:100550009AC00003CC00004DCC00004EDF830000A9 -:1005600080000000D80301FF9AC00107CC00004DB5 -:1005700080000261CC00004EC8180003C81C0003B4 -:10058000C82000037D5D40037DA1C0037D5D400C5C -:100590002A10001F299C001F7D1D000B7D17400B9A -:1005A000880000007E92800B96400004CC00004E34 -:1005B00080000261CC00004204380008CF80004275 -:1005C000C8080003C80C0003C8100003C8140003C7 -:1005D000C8180003C81C0003C8240003C82800036F -:1005E00029FC001F2AB0001F7FF3C00B28F0001F5A -:1005F0007FF3C00B2970001F7FF3C00B7D88800143 -:100600007DCCC0017E5100017E9540017C9080022E -:100610007CD4C0027CBC800B9AC000037C8F400B52 -:1006200038B400019B4000D8CC00004D9BC000D6E0 -:10063000CC00004EC80C03FDC81003FCCCC0004227 -:100640008000016FCD000042D4000340D4000FC0F1 -:10065000D4000FA2CC800040CC400040CC400040F1 -:10066000CC4000407C40C000CCC00040CCC0000D5D -:1006700080000000D04000407C40C0007C41000071 -:10068000651400207D4D402C245800027D598020A7 -:100690007C41C000CD80004269980020CD8000429E -:1006A000CDC00042C023C00005E400027CA0800B46 -:1006B000266400107CA4800CCC800040CDC000409B -:1006C000CCC0004095C0000ECD00004009DC000108 -:1006D000C828000396800008CE800040C834001D62 -:1006E00097400000C834001D26A80008840002645A -:1006F000CC2B000099C0FFF709DC0001DC3A0000B8 -:10070000978000047C418000800001A325980002AE -:10071000A00000007D808000C818001D7C40C00043 -:1007200064D0000895800000C818001DCC1300009C -:10073000CC800040CCC0004080000000CC40004095 -:10074000C810001F7C40C000CC8000407CD1400C11 -:10075000CD4000400518000180000000CD8000223F -:100760007C40C0006450002084000264CC00006122 -:100770007CD0C02CC8200017C8D6000099400008C3 -:100780007C438000DF830000CFA0004F8400026420 -:10079000CC00006280000000D040007F8000026139 -:1007A000CC00006284000264CC000061C820001705 -:1007B0007C40C000C036FF00C810000DC0303FFFB5 -:1007C0007CF5400B7D51800B7D81800F9980000866 -:1007D0007CF3800BDF830000CFA0004F8400026415 -:1007E000CC00006280000000D040007F80000261E9 -:1007F000CC000062840002647C40C00028DC000859 -:1008000095C0001930DC00107C41000099C0000444 -:100810006454002080000209C91D00007D15002CD1 -:10082000C91E00007C4200007C4240007C418000E8 -:100830007DE5C00B7DE280079A80000E41AC00058B -:100840009AC000000AEC000130DC001099C00004DE -:10085000000000008000020CC91D00008000020C96 -:10086000C91E0000CC800040CCC00040D0400040F9 -:10087000C80C002594C0FDE3C8100008CD0000405E -:10088000D4000FC080000000D4000FA2D4000340A9 -:10089000D4000FC0D4000FA2CC800040D040004054 -:1008A0007C408000A00000007E82800BD40003C04A -:1008B000D4000FC0D4000FA2CC800040D040004034 -:1008C0007C408000A00000007E82800B7C40C00045 -:1008D00030D000060D10000699000007C81400155E -:1008E00099400005CC000052D4000340D4000FC052 -:1008F000D4000FA2CC800040CCC00040800000009B -:10090000D04000407C40C000CC4D0000DC3A0000EC -:100910009780FDBC04CC000180000243CC4D000058 -:100920007C40C0007C410000292400183264000192 -:100930009640000FCC8000407C4140007C4180000C -:100940007C41C000CCC00043CD00004331DC7FFFC0 -:10095000CDC00043CCC00040CD000040CD400040A1 -:10096000CD80004080000000CDC00040CCC00040E1 -:10097000CD00004080000000D0400040800000001A -:10098000D040007FCC00007F80000000CC00007FC2 -:10099000CC00007F88000000CC00007F0000000039 -:1009A0000000000000000000000000000000000047 -:1009B0000000000000000000000000000000000037 -:1009C0000000000000000000000000000000000027 -:1009D0000000000000000000000000000000000017 -:1009E0000000000000000000000000000000000007 -:1009F00000000000000000000000000000000000F7 -:100A000000000000000000000000000000000000E6 -:100A100000000000000000000000000000000000D6 -:100A200000000000000000000000000000000000C6 -:100A300000000000000000000000000000000000B6 -:100A400000000000000000000000000000000000A6 -:100A50000000000000000000000000000000000096 -:100A60000000000000000000000000000000000086 -:100A70000000000000000000000000000000000076 -:100A80000000000000000000000000000000000066 -:100A90000000000000000000000000000000000056 -:100AA0000000000000000000000000000000000046 -:100AB0000000000000000000000000000000000036 -:100AC0000000000000000000000000000000000026 -:100AD0000000000000000000000000000000000016 -:100AE0000000000000000000000000000000000006 -:100AF00000000000000000000000000000000000F6 -:100B000000000000000000000000000000000000E5 -:100B100000000000000000000000000000000000D5 -:100B200000000000000000000000000000000000C5 -:100B300000000000000000000000000000000000B5 -:100B400000000000000000000000000000000000A5 -:100B50000000000000000000000000000000000095 -:100B60000000000000000000000000000000000085 -:100B70000000000000000000000000000000000075 -:100B80000000000000000000000000000000000065 -:100B90000000000000000000000000000000000055 -:100BA0000000000000000000000000000000000045 -:100BB0000000000000000000000000000000000035 -:100BC0000000000000000000000000000000000025 -:100BD0000000000000000000000000000000000015 -:100BE0000000000000000000000000000000000005 -:100BF00000000000000000000000000000000000F5 -:100C0000000302230004022B000500A000020003E1 -:100C10000006003C0007002700080192000900447C -:100C2000000A002D0010025F001700F1002201D819 -:100C3000002301E90026004C0027005F0020011B73 -:100C4000002800930029004F002A0084002B006533 -:100C5000002F008E003200D90034023300360075B8 -:100C60000039010B003C01FD003F00A0004102489B -:100C7000004401950048019E004901C6004A01D088 -:100C8000005502260056022E0060000A0061002A6C -:100C90000062003000630030006400300065003006 -:100CA0000066003000670030006800370069003FD0 -:100CB000006A0047006B0047006C0047006D00476A -:100CC000006E0047006F0047007000470073025F2E -:100CD000007B024100000005000000050000000547 -:100CE00000000005000000050000000500000005F0 -:100CF00000000005000000050000000500000005E0 -:100D000000000005000000050000000500000005CF -:100D100000000005000000050000000500000005BF -:100D200000000005000000050000000500000005AF -:100D3000000000050000000500000005000000059F -:00000001FF diff --git a/firmware/sb16/alaw_main.csp.ihex b/firmware/sb16/alaw_main.csp.ihex deleted file mode 100644 index 04502707c42a..000000000000 --- a/firmware/sb16/alaw_main.csp.ihex +++ /dev/null @@ -1,87 +0,0 @@ -:10000000001000440800004400B1004400610044B6 -:10001000085000440DF261A8440404190000404552 -:10002000404939AC5555718B500563800000063945 -:10003000FF2E2149FF0FD4492001090E2000718BAA -:10004000A801A8808801A880A8000080D200718B38 -:100050008800A880A804B3802007B3808803B180FB -:10006000C000095CC2010082A100718BCD0004199F -:100070002120718BCF0004190000B180C200041947 -:100080000040001408400424000034490C4000449F -:1000900044040439000040453200095C00000C397A -:1000A00000004045404009EFFF2009CF000463A154 -:1000B000500333800004A38000FFC28B00D004549F -:1000C00004E000C4200380C03000008800007A0AE9 -:1000D000D001008200600044C0000099006000442C -:1000E00000FFC28B20000080000D428B083200C44C -:1000F000000E428B00A200C4001E428B0CB200C452 -:10010000008E428B006200C4009E428B085200C4E5 -:1001100000BE428B085200C40004428B047200C42B -:100120000024428B00D200C40055428B006000C402 -:1001300000004045200179800030428B088200C4D5 -:10014000000040450000718B4001008000600044C9 -:10015000FF00E2AB00B200C40FF2A8A82000B188F3 -:10016000000041024DF20039C001008200600044ED -:100170000DF2A3A84DF2003900600044FF00E2AB8D -:1001800020000088000061024DF204190060004464 -:10019000FF00E2ABA0000088000061104DF20419DE -:1001A00000600044FF20E2AB60000088000071C0E6 -:1001B0004DF20419006000440000798000E20084E0 -:1001C0000303044904C20054006004640060004456 -:1001D0000000638000000619030004490060004429 -:1001E00020016380000006190020E28B0CF20084DD -:1001F000BE00518BC020003908010044EC00518B37 -:10020000C02000390002E28B042100843F00518BA2 -:10021000C2200039001100443D00518BC22000393A -:10022000E500718BCD0000390000B180C9200419B0 -:10023000CB200419C1200419C32004191000718BAC -:10024000C7200419DE00518BCF0000390001B180B6 -:10025000C4200419C6200419C8200419CA2004198E -:100260002000718BCC200419030004490060004475 -:10027000090461A8C10004190B0461A8CA0004198B -:10028000046000D40D00610A9040098F0001004510 -:100290000F00610A0040098F000100458200092E0D -:1002A000804009CF02006122432561224033008053 -:1002B0000848004420B1495C9200094E0203092E0F -:1002C0000000A302C00071C02000EB800004C28BBC -:1002D0002004618000047A02C00000820CC3084937 -:1002E000B001F3800000103920000C890C88084907 -:1002F0000300A81800001039BDFF628B20010080A8 -:10030000000063CB00007A024000015B2000008007 -:1003100000004ACB2000138020007A80E02100C03A -:10032000080008491041098EAEAE628B00046122BC -:1003300000030045220133802001A30200007A80DF -:10034000C00000820720400A08A3008440210080EA -:1003500040059310C7200039000040450720400A9F -:100360000C930084080000820C246150400100803E -:10037000C7200039000040450004638000000639B2 -:100380004201090E0220610A000100450C20600AAA -:1003900000C300840004B180000006390C6104D45D -:1003A000002471C0203333C0E001A38222037A020B -:1003B000C301A3822001338000007A80C201B350C0 -:1003C000CC20003900007180000800440C20600A35 -:1003D00000F300840004B180000006390C6104D4ED -:1003E000000071C000009310CC20003900080044C8 -:1003F000CC200039002000C0003071C0000800444B -:1004000020010080AEAE628B20013380000083802B -:1004100020007A8020A1495C8200096E804A098E02 -:10042000E001B3822004A38000007ACB2804EA1004 -:100430000C047A107000C08B00001039900300800B -:100440004000215B900061800C8A084900001C1963 -:100450004000085B08000849200200800300A8183B -:1004600000001419400021CB000041020000EB8085 -:10047000F2010082402133020820610AC4000419FD -:10048000C70000990200610A0C0A04140100610A05 -:100490000300480A00580454C30004190C580044CF -:1004A0000800C80A0C580454C80004190A00610A5C -:1004B0000900480A00C80454C90004190CC80044C3 -:1004C0000B00C80A0CC80454CB0004190400610ACC -:1004D0000600480A00D80454C60004190CD8004489 -:1004E0000500C80A0CD80454C50004190700610AA5 -:1004F0000C00480A000A0454CC0004190C0A0044F9 -:100500000E00C80A0C0A0454CE000419000040452D -:080510002010718B0842060067 -:00000001FF -/* - * Copyright (c) 1994 Creative Technology Ltd. - * Microcode files for SB16 Advanced Signal Processor - */ diff --git a/firmware/sb16/ima_adpcm_capture.csp.ihex b/firmware/sb16/ima_adpcm_capture.csp.ihex deleted file mode 100644 index 9a50a58564ae..000000000000 --- a/firmware/sb16/ima_adpcm_capture.csp.ihex +++ /dev/null @@ -1,121 +0,0 @@ -:1000000000100044080000440070004408D0004480 -:1000100000F000440DF261A84404041900004045BA -:100020000004638000000639FF2E2149FF0CD449EB -:10003000404939AC5555718B5001B1800000718B2E -:10004000C2300419C0A00419C2A004198900718B20 -:10005000C83004197100718BCD000419CF00041948 -:100060008000718BCB2004192000718BC4200419EF -:100070004700518BC020003900006380C1A00419E3 -:100080009300014FCD300009CF3000090C4000141F -:1000900000600014000461A8020461A80C6004243C -:1000A000000034490850004444040439000040452D -:1000B0000830610A05B0E8180CC00454C8300419AF -:1000C000090400A80B0400A800004045090461A829 -:1000D000C10004190B0461A8CA0004190D00610ACB -:1000E000000100450F00610A0040098F0001004532 -:1000F000404009EFFF2009CF000463A15003338083 -:100100000004A38000FFC28B0C120454081200C428 -:10011000200380C03000008800007A0AD0010082ED -:1001200004500044C00000990450004400FFC28BFA -:1001300020000080000D428B044200C4000E428B60 -:10014000085200C4001E428B00E200C4008E428BA5 -:1001500008D200C4009E428B04F200C400BE428B51 -:1001600004F200C40004428B041100C40024428B3A -:100170000C6100C40055428B045000C4003F428B08 -:100180000C0100C400004045200179800030428B02 -:10019000046200C4000040450000718B40010080F3 -:1001A00004500044FF00E2AB08C200C40FF2A8A84C -:1001B0002000B188000041024DF20039C0010082E8 -:1001C000045000440DF2A3A84DF20039045000443D -:1001D000FF00E2AB20000088000061024DF204192C -:1001E00004500044FF00E2ABA00000880000611052 -:1001F0004DF2041904500044FF20E2AB6000008877 -:10020000000071C04DF204190450004400007A0A45 -:100210002001F08001A0410A001100C42001F080FB -:10022000C130041904500044000079800C4100845E -:100230008900718BC83004199700718BCD0000398B -:100240000001B1808000041982000419C120041942 -:10025000C3200419C2300419CD100419CF10041999 -:10026000B000718B84000419860004198000718B22 -:10027000CB2004199300014FCD300009CF30000985 -:100280000302044908410014045000440000638044 -:100290000000061903000449045000442001638053 -:1002A000000006190020E28B00C100844700518B3A -:1002B000C020003900006380C1A0041900E100449F -:1002C000BD00518BC02000390000B180C1A00419CD -:1002D00003000449045000440020610A0001004565 -:1002E0000230610A0C8300C40C780844045A0844A4 -:1002F000B200094F1042098E05B0E01804230084B3 -:100300000C01001108056110004908440048084428 -:10031000B200094F8000718BC00000820C013310C5 -:100320002801A31000017A808C0100800230610A4C -:10033000200004190C8300C405B0C818084300C489 -:100340000130C80A0C3800C4088800440C780844FE -:10035000045A08440000A318800004190B0461A883 -:10036000C3200039C33004190F10610ACA300419C0 -:10037000090441A8E1200039D100094F00046102BD -:10038000086300440330410A20000039A300094FEC -:100390000004610200480844088800440230610AF1 -:1003A000000800C40C780844045A0844B200090F3D -:1003B0001040098E0000685B2004B1800200615B80 -:1003C00088037A80AC01008005B0E01800D3008477 -:1003D0000049084400480844B200090F8000718BAE -:1003E000C00000820230610A000800C405B0C818CD -:1003F0000C1800C40130C80A0C3800C40888004436 -:100400000C780844000061182005B180000068CB1A -:10041000800004190D10610AC33004190B0441A8AF -:10042000090441A8E1200039083800440330410A9A -:100430002004B18000480844088800440000B180CE -:10044000C23004190CB800D40F30610A0D30C80A4C -:100450000CB800C49300014FE700016F0F30610A30 -:1004600020000088020061024104041902046102B4 -:1004700043040439CF3000092000094900590044E1 -:100480009300014FE700016F0D30610A2000618881 -:10049000C2000082C2030082CD3000092000094959 -:1004A0000F30610A0D30C80A0C5800840230610A0E -:1004B00005B0A818C2300419000000469040098F0A -:1004C0001204096E0300090E0001718220010080F0 -:1004D000000061CB8004B1800001E0600CD80414FE -:1004E0000001EB804000521B80007980C00171C286 -:1004F0002000C080080A0454C004A8828000721B37 -:10050000800000800001F0802000C0800C2A04548C -:10051000C004A8821000721B800000800001F080DF -:100520002000C080083A0454C004A8822000721B36 -:1005300080000080C003F0822000A0800001001134 -:100540004000C28B00AA00C40000E98005B0A818D2 -:100550000001A822D0010082F000E21B0620A80AB8 -:100560002D10610AD100092E0001A8020E10C80A40 -:100570000CBA04140E10610A044A00440C10C80A94 -:10058000044A04540C10610AD00100820010A8181B -:10059000A0000088000171820300090E9A0100602A -:1005A0003200092E00000046000171822001008007 -:1005B000000061CB8024B1C00031E0600CCA04149B -:1005C0000001EB804000521B80007980C00171C2A5 -:1005D0002000C08008DA0454C004A8828000721B86 -:1005E000800000800001F0802000C0800CFA0454DC -:1005F000C004A8821000721B800000800001F080FF -:100600002000C08008290454C004A8822000721B66 -:1006100080000080C003F0822000A0800001001153 -:100620004000C28B003900C40000E98005B0A81862 -:100630000001A822D0010082B000E21B0620A80A17 -:100640002F10610AF100092E0001A8020E10C80A3D -:100650000CA904140E10610A049900440C10C80A75 -:10066000049904540C10610AD00100820010A818EB -:10067000A0000088000171829F0100600000004618 -:10068000000033800000838020007A8020073380C0 -:100690000000838020047A80200100800000004652 -:1006A0000200610A041B04140100610A0300480AE5 -:1006B0000C790454C300041904C900440800C80A92 -:1006C00004C90454C80004190A00610A0900480A50 -:1006D0000CE90454C900041904D900440B00C80AE9 -:1006E00004D90454CB0004190400610A0600480A26 -:1006F0000CF90454C6000419040B00440500C80A90 -:10070000040B0454C50004190700610A0C00480AD0 -:100710000C2B0454CC000419041B00440E00C80A1E -:10072000041B0454CE000419000040459220718B34 -:04073000A6C5110049 -:00000001FF -/* - * Copyright (c) 1994 Creative Technology Ltd. - * Microcode files for SB16 Advanced Signal Processor - */ diff --git a/firmware/sb16/ima_adpcm_init.csp.ihex b/firmware/sb16/ima_adpcm_init.csp.ihex deleted file mode 100644 index a899a9e743f4..000000000000 --- a/firmware/sb16/ima_adpcm_init.csp.ihex +++ /dev/null @@ -1,70 +0,0 @@ -:10000000001000440000404500004045000040450D -:1000100000004045AAAA718B440404190000404521 -:10002000FF6E2149FF0FD449404939AC5555718BBA -:100030005005B1806200190E2100718B880000808C -:10004000B000718B880000804000718B88000080B8 -:100050006000718B880000805000718B88000080E8 -:100060007000718B88000080C000718B8800008058 -:10007000E000718B88000080D000718B88000080C8 -:100080000200718B880000802200718B8800008044 -:100090003200718B88000080A200718B8800008084 -:1000A000B200718B880000806200718B8800008034 -:1000B000C200718B88000080F200718B8800008084 -:1000C0001100718B88000080A100718B8800008076 -:1000D0006100718B88000080E100718B88000080D6 -:1000E0001300718B88000080B300718B8800008042 -:1000F000C300718B880000801800718B880000801D -:100100006800718B880000800A00718B8800008075 -:100110004A00718B880000802900718B8800008064 -:100120007900718B880000809B00718B88000080B3 -:100130001400718B88000080F400718B88000080AF -:10014000E600718B88000080E500718B88000080DC -:10015000D700718B880000802E00718B8800008092 -:100160009D00718B88000080EF00718B88000080FB -:10017000B220718B880000803320718B8800008052 -:100180002A20718B880000803B20718B88000080C2 -:100190004620718B880000802C20718B88000080A5 -:1001A000DD20718B880000800110718B8800008039 -:1001B0009A10718B880000801610718B8800008067 -:1001C0008E10718B88000080C230718B8800008097 -:1001D000C930718B880000803C30718B88000080B2 -:1001E0008180718B88000080D480718B88000080B2 -:1001F00010A0718B8800008034A0718B8800008073 -:100200000290718B880000807590718B880000804F -:100210009AB0718B880000801240718B880000803A -:100220000D40718B880000803C60718B88000080DD -:10023000E750718B880000800E70718B8800008001 -:10024000FFC0718B88000080C8D0718B880000804F -:1002500057F0718B88000080C822718B8800008065 -:10026000B032718B88000080DD82718B8800008045 -:1002700090B2718B880000808A62718B8800008048 -:10028000CE72718B88000080A5D2718B88000080AF -:100290009721718B88000080A2A1718B880000805B -:1002A0005C41718B88000080FEC1718B88000080EA -:1002B0007A23718B880000807893718B880000808E -:1002C0006773718B880000801728718B880000800D -:1002D0008848718B88000080DBF8718B8800008073 -:1002E0002BBA718B88000080F109718B8800008027 -:1002F000DC69718B88000080198B718B880000800D -:10030000FFFB718B880000802000718B88000080CB -:100310005200718BC2000082FFFF718BC20000820D -:10032000C2000082C2000082C20000821000718BF5 -:10033000C20000828000718BC20000829000718B2D -:10034000C20000824000718BC2000082FFFF718BEF -:10035000C2000082C2000082C2000082C20000828D -:100360001000718BC20000828000718BC20000827D -:100370009000718BC20000824000718BC20000822D -:10038000FFFB718BC20000820004718BC2000082EF -:100390004A00718BC20000820000718BC200008293 -:1003A0000000718BC2000082C2000082C2300419BA -:1003B0001000094FC2010082C2010082C201008206 -:1003C000C2010082C2010082C2010082C201008219 -:1003D000C2010082C2010082C2010082C201008209 -:1003E000C2010082C20100820010718BC130041969 -:1003F0009300014FCD300009CF300009000034498F -:0804000000080044C85411007B -:00000001FF -/* - * Copyright (c) 1994 Creative Technology Ltd. - * Microcode files for SB16 Advanced Signal Processor - */ diff --git a/firmware/sb16/ima_adpcm_playback.csp.ihex b/firmware/sb16/ima_adpcm_playback.csp.ihex deleted file mode 100644 index f09f18cf35e2..000000000000 --- a/firmware/sb16/ima_adpcm_playback.csp.ihex +++ /dev/null @@ -1,122 +0,0 @@ -:1000000000100044080000440C50004400700044FC -:10001000047000440DF261A8440404190000404536 -:100020000004638000000639FF2E2149FF0DD449EA -:10003000404939AC5555718B5001B1800001B180F8 -:10004000C92004195100718BCD000419E420718B73 -:10005000CF0004198000718BCB2004191000718B24 -:10006000C42004196500518BC22000390000B18002 -:10007000C230041900006380C1A004199300014F2D -:10008000CD300009CF300009044000140C400014AA -:10009000000461A8020461A804600424000034493B -:1000A000005000444404043900004045000040452D -:1000B0000F00610A00010045404009EFFF2009CF11 -:1000C000000463A1500333800004A38000FFC28BAF -:1000D00008F004540CD000C4200380C03000008815 -:1000E00000007A0AD001008208500044C000009944 -:1000F0000850004400FFC28B20000080000D428B9E -:1001000000A200C4000E428B0C9200C4001E428B61 -:10011000046200C4008E428B0C5200C4009E428BCD -:1001200000C200C400BE428B00C200C40004428B67 -:1001300000F200C40024428B009100C40055428BA1 -:10014000085000C4003F428B08E200C40000404554 -:10015000200179800030428B009200C400004045AD -:100160000000718B4001008008500044FF00E2ABAA -:100170000C4200C40FF2A8A82000B1880000410280 -:100180004DF20039C0010082085000440DF2A3A8CE -:100190004DF2003908500044FF00E2AB2000008817 -:1001A000000061024DF2041908500044FF00E2AB68 -:1001B000A0000088000061104DF2041908500044AE -:1001C000FF20E2AB60000088000071C04DF204190E -:1001D0000850004400007A0A2001F08001A0410A82 -:1001E00004D200C42001F080C1300419085000443A -:1001F0000000798000A10084B500518BCF00003948 -:100200000001B180880004198A000419C82004196B -:10021000CA200419C2300419CD100419CF100419D2 -:10022000B000718B8C0004198E0004191000718BC2 -:10023000C42004199300014FCD300009CF300009CC -:100240000303044904810054085004640850004426 -:1002500000006380000006190300044908500044B0 -:1002600020016380000006190002E28B084100842F -:100270006500518BC220003900006380C1A00419C1 -:10028000086100442D00518BC22000390000B1806C -:10029000C1A0041903000449085000440220610A67 -:1002A000000100450230610A040300C405B0C8180B -:1002B000047100C4001300440079084400047980EC -:1002C000004900C4CA2004194A040419FF00E28B43 -:1002D0000CF90844CF1004190C2B08448E000419A3 -:1002E0000330610AC8200039480400390A30610A25 -:1002F0000CF90844CD1004190C2B08448C00041987 -:100300000CD908440C5A0044007908440004798050 -:10031000004900C4C3300419CA3000990CD90844FC -:10032000420A090E000133118C01A38000017A10EA -:100330008005B18005B0E01800930084007908447E -:1003400000047980004900C40C1B0844880004198B -:100350008A0000990CD90844420A090E8000718B6A -:10036000C004B1821000E00B004300840230610A37 -:100370000130C80A004300840000B180C230041973 -:100380000CA800440230610A00D300C405B0C818AC -:10039000046300C408F30044007908440004798031 -:1003A000004900C420000419FF00E28B0CF9084446 -:1003B000CD100419CF1004190C2B08448C0004191B -:1003C0008E0004190330610AC8200039CA200039A0 -:1003D000480400394A0400390CD908440C5A004436 -:1003E0000079084400047980004900C4C33004192E -:1003F0000CD90844420A090E05B0E0180018008420 -:100400000079084400047980004900C40C1B0844AA -:10041000800100800CD90844420A090E8000718BCB -:10042000C004B1821000E00B008800840230610A31 -:100430000130C80A008800840000B180C23004196D -:1004400000010011000FE28B000041CB8C00008006 -:10045000000048CB20007A8080010080820C096E69 -:100460000308090E804009CF000171C20008C21BB9 -:1004700004B800C42005A8802001F0800001C21B40 -:10048000044800C42005A8802001F0800002C21B9F -:10049000046800C42005A8802001F0802003A88003 -:1004A000000100110004C28B087800C40000E9803C -:1004B00005B0A81800004ACB2000A822D001008275 -:1004C00040010080C4000419B000E28B0620A80A95 -:1004D0002D10610AD108092E0001A8020CF9084468 -:1004E000CD1004190C2B08440308090E9A25B1609D -:1004F000A20E096E0300090F000171822001008025 -:10050000000061CB800100800300090F000171C26F -:100510000008C21B0C2A00C42005A8802001F0801E -:100520000001C21B0C1A00C42005A8802001F08025 -:100530000002C21B0C3A00C42005A8802001F080F4 -:100540002003A880000100110004C28B04AA00C48B -:100550000000E98005B0A81800004ACB2000A822BE -:10056000D001008240010080C7000419B000E28B76 -:100570000620A80A2F10610AF108092E0001A8021E -:100580000CF90844CF1004190C2B08449F35B160B6 -:100590000308090E0001718220010080000061CB78 -:1005A00080010080E420718B000100459040098F9C -:1005B0000005638000000639081904D49300014F38 -:1005C000E700016F0D30610A200461A8C2000082BB -:1005D000020461A8C2000082CD30000902000002BE -:1005E00002000002C0800009200009490F30610AA2 -:1005F0000D30C80A002900C40080C80A002900C4C0 -:100600000004B18000000639C920043900390044D3 -:1006100000046380000006390004B180C920043959 -:10062000003900440920230A00000619C9200419D2 -:10063000000040450200610A0CB904140400610A7C -:100640000600480A00A90454C60004190CA9004475 -:100650000500C80A0CA90454C50004190700610A62 -:100660000C00480A00B90454CC0004190CB9004429 -:100670000E00C80A0CB90454CE0004190C5A0044E8 -:10068000820D092E804009CF00DF718B8001008030 -:1006900002C1002203C1002200016580D2056582EB -:1006A00040210080D3030082403300800C5A004474 -:1006B0000F30610A0D30C80A08D900C49300014FF9 -:1006C000E700016F0F30610A20000088020061021C -:1006D00002000003CF3000092000094900046380B4 -:1006E00004D900440004B180000000460230610AD1 -:1006F00005B0A818C2300419000000460E10C80A40 -:100700000C0B04140E10610A042B00440C10C80AD0 -:10071000042B04540C10610A000000460010A818B5 -:10072000A0000088000171820000004600043380B0 -:100730000000838020047A802001338000008380C1 -:1007400020007A80200300800000004616CE1100B1 -:00000001FF -/* - * Copyright (c) 1994 Creative Technology Ltd. - * Microcode files for SB16 Advanced Signal Processor - */ diff --git a/firmware/sb16/mulaw_main.csp.ihex b/firmware/sb16/mulaw_main.csp.ihex deleted file mode 100644 index b64b565f2296..000000000000 --- a/firmware/sb16/mulaw_main.csp.ihex +++ /dev/null @@ -1,84 +0,0 @@ -:10000000001000440800004400B1004400610044B6 -:10001000085000440DF261A8440404190000404552 -:10002000404939AC5555718B500563800000063945 -:10003000FF2E2149FF0FD4492001090E2000718BAA -:10004000A801A8808801A880A8000080D200718B38 -:100050008800A880A804B3802007B3808803B180FB -:10006000C000095CC2010082A100718BCD0004199F -:10007000A220718BCF0004190000B180C2000419C6 -:100080000040001408400424000034490C4000449F -:1000900044040439000040453200095C00000C397A -:1000A00000004045404009EFFF2009CF000463A154 -:1000B000500333800004A38000FFC28B00D004549F -:1000C00004E000C4200380C03000008800007A0AE9 -:1000D000D001008200600044C0000099006000442C -:1000E00000FFC28B20000080000D428B083200C44C -:1000F000000E428B00A200C4001E428B0CB200C452 -:10010000008E428B006200C4009E428B085200C4E5 -:1001100000BE428B085200C40004428B047200C42B -:100120000024428B00D200C40055428B006000C402 -:1001300000004045200179800030428B088200C4D5 -:10014000000040450000718B4001008000600044C9 -:10015000FF00E2AB00B200C40FF2A8A82000B188F3 -:10016000000041024DF20039C001008200600044ED -:100170000DF2A3A84DF2003900600044FF00E2AB8D -:1001800020000088000061024DF204190060004464 -:10019000FF00E2ABA0000088000061104DF20419DE -:1001A00000600044FF20E2AB60000088000071C0E6 -:1001B0004DF20419006000440000798000E20084E0 -:1001C0000303044908C20054006004640060004452 -:1001D0000000638000000619030004490060004429 -:1001E00020016380000006190020E28B0CF20084DD -:1001F0003E00518BC0200039080100446C00518B37 -:10020000C02000390002E28B04210084FD00518BE4 -:10021000C220003900110044FE00518BC220003979 -:10022000E500718BCD0000390000B180C9200419B0 -:10023000CB200419C1200419C32004191000718BAC -:10024000C72004195E00718BCF0000390000B18017 -:10025000C4200419C6200419C8200419CA2004198E -:100260002000718BCC200419030004490060004475 -:10027000090461A8C10004190B0461A8CA0004198B -:10028000046000D40D00610A9040098F0001004510 -:100290000F00610A0040098F000100458200092E0D -:1002A000804009CF02006122432561224033008053 -:1002B00008A800442031495C9200094E0203092E2F -:1002C0000000A302C00071C02000EB800004C28BBC -:1002D0002004618000047A02CB00A858B005F380A6 -:1002E0002004A81000001039B000E08B200100802D -:1002F000000063CB00007A024000015B2000008018 -:1003000000004ACB2000138020007A80E02100C04A -:10031000080008491041098EFFFF628B000461222A -:1003200000030045220133802001A30200007A80EF -:10033000C00000820720400A08830084402100801A -:1003400040059310C7200039000040450720400AAF -:100350000CA30084080000820C246150400100803E -:10036000C7200039000040450004638000000639C2 -:100370004201090E0220610A000100450C20600ABA -:10038000007300840004B180000006390C6104D4BD -:10039000002471C0203333C0E001A38222037A021B -:1003A000C301A3822001338000007A80C201B350D0 -:1003B000CC2000390000718000F300440C20600A5A -:1003C00000D300840004B180000006390C6104D41D -:1003D0000000B310CC200039000071C000F30044CD -:1003E000CC200039002071C0003071C000F30044FF -:1003F00020010080FFFF628B20013380000083809A -:1004000020007A8020E1095C8200092F804A098E51 -:10041000E001B3822004A38000007ACB0300A81877 -:10042000000010390804EA1008047A102000008047 -:10043000400021CB0C00E810000041020C00EB1042 -:10044000F2010082402133020820610AC40004192D -:10045000C70000990200610A0CE804140100610A57 -:100460000300480A00B80454C30004190CB800443F -:100470000800C80A0CB80454C80004190A00610A2C -:100480000900480A00680454C90004190C680044B3 -:100490000B00C80A0C680454CB0004190400610A5C -:1004A0000600480A00780454C60004190C78004479 -:1004B0000500C80A0C780454C50004190700610A35 -:1004C0000C00480A00E80454CC0004190CE800446D -:1004D0000E00C80A0CE80454CE0004190000404580 -:0804E0002010718B093F070099 -:00000001FF -/* - * Copyright (c) 1994 Creative Technology Ltd. - * Microcode files for SB16 Advanced Signal Processor - */ diff --git a/firmware/sun/cassini.bin.ihex b/firmware/sun/cassini.bin.ihex deleted file mode 100644 index 5cd7ae70e71f..000000000000 --- a/firmware/sun/cassini.bin.ihex +++ /dev/null @@ -1,143 +0,0 @@ -:1000000000827E82090000000000008E8EFFCE82FA -:1000100025FF010FCE8426FF0111CE853DDFE58649 -:1000200039B78FF87EC3C2964784F38A009747CECC -:100030008233FF010F9646840C8104270B96468479 -:100040000C810827577E8425964784F38A049747B6 -:10005000CE8254FF010F9646840C81042638B612D6 -:1000600020842026037E8425967BD67CFE8F56BD79 -:10007000F7B6FE8F4EBDEC8EBDFAF7BDF728CE82E7 -:1000800082FF010F9646840C8104260AB612208452 -:100090002027B57E8425BDF71F7E841F964784F3F5 -:1000A0008A089747DEE1AD00CE82AFFF010F7E8464 -:1000B00025964185102606962385402706BDED002E -:1000C0007E83A2DE42BDEB8E9624840827037E83C6 -:1000D000DF967BD67CFE8F56BDF7B6FE8F50BDEC0B -:1000E0008EBDFAF78611C649BDE412CE82EFFF013C -:1000F0000F9646840C81002717C649BDE491240D54 -:10010000B612208520260CCE82C1FF010F7E8425E9 -:100110007E8416FE8F52BDEC8EBDFAF7866AC64904 -:10012000BDE412CE8327FF010F9646840C81002781 -:100130000AC649BDE49125067E84257E8416B6183C -:1001400070BB19702A0481AF2E19967BF62007FA2E -:100150002027C4388138270BF62007FA2027CB0840 -:100160007E82D3BDF7668674C649BDE412CE837124 -:10017000FF010F9646840C8108260AC649BDE4910A -:1001800025067E84257E8416BDF73E260EBDE50934 -:100190002606CE82C1FF010F7E8425FE8F54BDEC62 -:1001A0008EBDFAF7BDF733860FC651BDE412CE837C -:1001B000B2FF010F9646840C8108265CB61220849B -:1001C0003F813A271C9623854027037E8425C6510C -:1001D000BDE49125037E8425CE82C1FF010F7E847C -:1001E00025BDF8377C007ACE83EEFF010F7E842593 -:1001F0009646840C81082620962484082629B61861 -:1002000082BB1982B1013B2209B6122084378132A8 -:100210002715BDF8447E82C1BDF71FBDF844BDFC63 -:1002200029CE8225FF010F39964784FC8A00974723 -:10023000CE8434FF011196468403810227037E8514 -:100240001E964784FC8A029747DEE1AD008601B71F -:100250001251BDF714B6103184FDB71031BDF81E30 -:100260009681D682FE8F5ABDF7B6FE8F5CBDEC8EAE -:10027000BDFAF78608D600C51026028B20C651BDF0 -:10028000E412CE8486FF011196468403810227037F -:100290007E850FC651BDE49125037E851E9644855B -:1002A00010260AB61250BA013C851027A8BDF76681 -:1002B000CE84B7FF01117E851E96468403810226F7 -:1002C00050B612308403810127037E851E96448533 -:1002D000102613B61250BA013C85102609CE84535D -:1002E000FF01117E851EB610318A02B71031BD851F -:1002F0001FBDF8377C0080CE84FEFF01117E851E75 -:100300009646840381022609B612308403810127B0 -:100310000FBDF844BDF70BBDFC29CE8426FF0111AB -:1003200039D622C40FB61230BA12328404270D9681 -:100330002285042705CA107E853ACA20D72239862D -:1003400000978318CE1C00BDEB4696578501270207 -:100350004F3985022701397F8F7D8604B7120486C5 -:1003600008B712078610B7120C8607B71206B68FA9 -:100370007DB712708601BA1204B71204010101019F -:100380000101B6120484FE8A02B7120401010101C0 -:10039000010186FDB41204B71204B612008408816C -:1003A000082716B68F7D810C27088B04B78F7D7EBA -:1003B000856C860397407E896E8607B712065FF7C5 -:1003C0008F825FF78F7FF78F70F78F71F78F72F7DC -:1003D0008F73F78F74F78F75F78F76F78F77F78FA7 -:1003E00078F78F79F78F7AF78F7BB612048A10B778 -:1003F000120486E4B71270B71207F71205F7120954 -:100400008608BA1204B7120486F7B41204B71204AD -:10041000010101010101B61208277F8180260B86A8 -:1004200008CE8F79BD897B7E868E8140260B86041F -:10043000CE8F76BD897B7E868E8120260B8602CE6E -:100440008F73BD897B7E868E8110260B8601CE8FB1 -:1004500070BD897B7E868E8108260B8608CE8F79BB -:10046000BD897F7E868E8104260B8604CE8F76BD65 -:10047000897F7E868E8102260B8A02CE8F73BD898C -:100480007F7E868E810126088601CE8F70BD897F92 -:10049000B68F7F810F26037E8747B61209840381BA -:1004A0000327067C12097E85FEB6120684078107A3 -:1004B00027088B01B712067E86D5B68F82260A7C66 -:1004C0008F824FB712067E85C0B61206843F813FE9 -:1004D00027108B08B71206B6120984FCB712097EE2 -:1004E00085FECE8F7018CE8F84C60CBD896FCE8FDF -:1004F0008418CE8F70C60CBD896FD683C14F2D0373 -:100500007E8740B68F7F8107270F810B2715810DCE -:10051000271B810E27217E8740F78F7B8602B78FAE -:100520007A201CF78F788602B78F772012F78F75A5 -:100530008602B78F742008F78F728602B78F717E9C -:100540008747860497407E896ECE8F72BD89F7CE2D -:100550008F75BD89F7CE8F78BD89F7CE8F7BBD892A -:10056000F74FB78F7DB78F81B68F7227477C8F7D0E -:10057000B68F75273F7C8F7DB68F7827377C8F7D30 -:10058000B68F7B272F7F8F7D7C8F817A8F72271B81 -:100590007C8F7D7A8F7527167C8F7D7A8F782711D7 -:1005A0007C8F7D7A8F7B270C7E87837A8F757A8FFD -:1005B000787A8F7BCEC1FCF68F7D3AA600B7127099 -:1005C000B68F7226037E87FAB68F75260A18CE8FED -:1005D00073BD89D57E87FAB68F78260A18CE8F76B6 -:1005E000BD89D57E87FAB68F7B260A18CE8F79BD56 -:1005F00089D57E87FA860597407E8900B68F7581FA -:10060000072EF2F61206C4F81BB71206B68F7881D1 -:10061000072EE2484848F61206C4C71BB71206B6B2 -:100620008F7B81072ECFF61205C4F81BB712058603 -:1006300000F68F71BD89948601F68F74BD8994860A -:1006400002F68F77BD89948603F68F7ABD8994CEA2 -:100650008F70A60181012707810327037E8866A684 -:1006600000B88F818401260B8C8F792C0E08080826 -:100670007E8850B612048A40B71204B6120484FB76 -:1006800084EFB71204B6120736B68F7C4848B7120B -:10069000078601BA1204B7120401010101010186A3 -:1006A000FEB41204B712048602BA1204B71204860A -:1006B000FDB41204B7120432B71207B61200840850 -:1006C0008108270F7C82082607867697407E896EF0 -:1006D0007E86ECB68F7F810F273CBDE6C7B7120D33 -:1006E000BDE6CBB612048A20B71204CEFFFFB612C5 -:1006F00000810C26050926F6271CB6120484DFB7F4 -:100700001204968381072C057C0083200696838B38 -:100710000897837E85417F8F7E8680B7120C860185 -:10072000B78F7DB6120C847FB7120C8A80B7120C7B -:10073000860ABD8A06B6120A2A09B6120CBA8F7D3D -:10074000B7120CB68F7E8160271A8B20B78F7EB6CA -:10075000120C849FBA8F7EB7120CB68F7D48B78F6C -:100760007D7E8921B612048A20B71204BD8A0A4F01 -:1007700039A60018A7000818085A26F539366C0063 -:1007800032BA8F7FB78F7FB612098403A701B612E2 -:1007900006843FA70239368603B78F8032C1002610 -:1007A00006B78F7C7E89C9C1012718C102270CC1F9 -:1007B000032700F68F800505F78F80F68F800505EB -:1007C000F78F80F68F800505F78F80F68F8053F4C2 -:1007D00012071BB7120739CE8F70A60018E6001853 -:1007E000A700E700A60118E60118A701E701A60285 -:1007F00018E60218A702E70239A6008407E600C43B -:10080000385454541BA700394A26FD399622840FC8 -:1008100097228601B78F70B61207B78F71F6120C48 -:10082000C40FC80FF78F72F68F72B68F71840327CB -:10083000148101271C81022724F48F70272A962215 -:100840008A807E8A64F48F70271E96228A107E8AA0 -:1008500064F48F70271296228A207E8A64F48F7047 -:10086000270696228A409722748F71748F71788F31 -:1008700070B68F70851027AFD622C41058B612708C -:1008800081E4273681E1260C96228420441BD6225F -:10089000C4CF20235881C6260D9622844044441B91 -:1008A000D622C4AF2011588127260F962284804477 -:1008B00044441BD622C46F1B972239270C7C820626 -:0D08C000BDD9EDB682077E8AB97F82063968 -:00000001FF -/* firmware patch for NS_DP83065 */ diff --git a/firmware/tehuti/bdx.bin.ihex b/firmware/tehuti/bdx.bin.ihex deleted file mode 100644 index b029e4c85795..000000000000 --- a/firmware/tehuti/bdx.bin.ihex +++ /dev/null @@ -1,2678 +0,0 @@ -:1000000002000F00008071402D000000000000C0C1 -:1000100002000F00018071002D000000000080C070 -:1000200002000F00028071002D000000000000C1DE -:1000300002000F00038071002D000000000080C14D -:1000400002000F00048071002D000000000000C2BB -:1000500002000F00058071002D000000000080C22A -:1000600002000F00068071002D000000000000C398 -:1000700002000F00078071002D000000000080C307 -:1000800002000F00088071002D000000000000C475 -:1000900002000F00098071002D000000000080C4E4 -:1000A00002000F000A8071002D000000000000C552 -:1000B00002000F000B8071002D000000000080C5C1 -:1000C00002000F000C8071002D000000000000C62F -:1000D00002000F000D8071002D000000000080C69E -:1000E00002000F000E8071002D000000000000C70C -:1000F00002000F000F8071002D000000000080C77B -:1001000002000F00108071002D000000000000C8E8 -:1001100002000F00118071002D000000000080C857 -:1001200002000F00128071002D000000000000C9C5 -:1001300002000F00138071002D000000000080C934 -:1001400002000F00148071002D000000000000CAA2 -:1001500002000F00158071002D000000000080CA11 -:1001600002000F00168071002D000000000000CB7F -:1001700002000F00178071002D000000000080CBEE -:1001800002000F00188071002D000000000000CC5C -:1001900002000F00198071002D000000000080CCCB -:1001A00002000F001A8071002D000000000000CD39 -:1001B00002000F001B8071002D000000000080CDA8 -:1001C00002000F001C8071002D000000000000CE16 -:1001D00002000F001D8071002D000000000080CE85 -:1001E00002000F001E8071002D000000000000CFF3 -:1001F00002000F001F8071002D000000000080CF62 -:1002000002000F00208071002D000000000000D0CF -:1002100002000F00218071002D000000000080D03E -:1002200002000F00228071002D000000000000D1AC -:1002300002000F00238071002D000000000080D11B -:1002400002000F00248071002D000000000000D289 -:1002500002000F00258071002D000000000080D2F8 -:1002600002000F00268071002D000000000000D366 -:1002700002000F00278071002D000000000080D3D5 -:1002800002000F00288071002D000000000000D443 -:1002900002000F00298071002D000000000080D4B2 -:1002A00002000F002A8071002D000000000000D520 -:1002B00002000F002B8071002D000000000080D58F -:1002C00002000F002C8071002D000000000000D6FD -:1002D00002000F002D8071002D000000000080D66C -:1002E00002000F002E8071002D000000000000D7DA -:1002F00002000F002F8071002D000000000080D749 -:1003000002000F00308071002D000000000000D8B6 -:1003100002000F00318071002D000000000080D825 -:1003200002000F00328071002D000000000000D993 -:1003300002000F00338071002D000000000080D902 -:1003400002000F00348071002D000000000000DA70 -:1003500002000F00358071002D000000000080DADF -:1003600002000F00368071002D000000000000DB4D -:1003700002000F00378071002D000000000080DBBC -:1003800002000F00388071007B000000008060DDFB -:1003900002000F00398071002D000000000000DD18 -:1003A00002000F003A8071002D000000000080DB89 -:1003B00002000F003B8071002D000000000000DDF6 -:1003C00002000F003C8071002D000000000000DDE5 -:1003D00002000F003D8071000000000000000000DE -:1003E00002000F003E8071000000000000000000CD -:1003F00002000F003F8071000000000000000000BC -:1004000002000F00408071000000000000000000AA -:1004100002000F0041807100000000000000000099 -:1004200002000F0042807100000000000000000088 -:1004300002000F0043807100000000000000000077 -:1004400002000F0044807100000000000000000066 -:1004500002000F0045807100000000000000000055 -:1004600002000F0046807100000000000000000044 -:1004700002000F0047807100000000000000000033 -:1004800002000F0048807100000000000000000022 -:1004900002000F0049807100000000000000000011 -:1004A00002000F004A807100000000000000000000 -:1004B00002000F004B8071000000000000000000EF -:1004C00002000F004C8071000000000000000000DE -:1004D00002000F004D8071000000000000000000CD -:1004E00002000F004E8071000000000000000000BC -:1004F00002000F004F8071000000000000000000AB -:1005000002000F0050807100000000000000000099 -:1005100002000F0051807100000000000000000088 -:1005200002000F0052807100000000000000000077 -:1005300002000F0053807100000000000000000066 -:1005400002000F0054807100000000000000000055 -:1005500002000F0055807100000000000000000044 -:1005600002000F0056807100000000000000000033 -:1005700002000F0057807100000000000000000022 -:1005800002000F0058807100000000000000000011 -:1005900002000F0059807100000000000000000000 -:1005A00002000F005A8071000000000000000000EF -:1005B00002000F005B8071000000000000000000DE -:1005C00002000F005C8071000000000000000000CD -:1005D00002000F005D8071000000000000000000BC -:1005E00002000F005E8071000000000000000000AB -:1005F00002000F005F80710000000000000000009A -:1006000002000F0060807100000000000000000088 -:1006100002000F0061807100000000000000000077 -:1006200002000F0062807100000000000000000066 -:1006300002000F0063807100000000000000000055 -:1006400002000F00648071002D000000000000DB3C -:1006500002000F00658071003F000000040100DD12 -:1006600002000F00668071003F000000010018DDED -:1006700002000F0067807100690000007A3D00DD14 -:1006800002000F00688071003F000000040800DDD8 -:1006900002000F0069807100690000007A3D00DDF2 -:1006A00002000F006A8071003F000000043000DD8E -:1006B00002000F006B8071003F000000010018DD98 -:1006C00002000F006C807100690000007A3D00DDBF -:1006D00002000F006D8071003F000000040000DD8B -:1006E00002000F006E807100690000007A3D00DD9D -:1006F00002000F006F8071003F000000043D00DD2C -:1007000002000F00708071003F000000010018DD42 -:1007100002000F0071807100690000007A3D00DD69 -:1007200002000F00728071003F000000040700DD2E -:1007300002000F0073807100690000007A3D00DD47 -:1007400002000F00748071003F000000842800DD6B -:1007500002000F00758071003F000000010018DDED -:1007600002000F0076807100690000007A3D00DD14 -:1007700002000F00778071003F000000043700DDA9 -:1007800002000F0078807100690000007A3D00DDF2 -:1007900002000F00798071003F000000042900DD95 -:1007A00002000F007A8071003F000000010018DD98 -:1007B00002000F007B807100690000007A3D00DDBF -:1007C00002000F007C8071003F00000004AA04DDDD -:1007D00002000F007D807100690000007A3D00DD9D -:1007E00002000F007E8071003F000000042800DD41 -:1007F00002000F007F8071003F000000010018DD43 -:1008000002000F0080807100690000007A3D00DD69 -:1008100002000F00818071003F000000043100DD04 -:1008200002000F0082807100690000007A3D00DD47 -:1008300002000F00838071003F000000842B00DD68 -:1008400002000F00848071003F000000010018DDED -:1008500002000F0085807100690000007A3D00DD14 -:1008600002000F00868071003F00000004E401DDFB -:1008700002000F0087807100690000007A3D00DDF2 -:1008800002000F00888071003F000000840080D7C4 -:1008900002000F00898071003F000000010098D71E -:1008A00002000F008A80710059000000EF3780D7E6 -:1008B00002000F008B8071003D0000006F0080F788 -:1008C00002000F008C8071003D0000006F0080F777 -:1008D00002000F008D8071003D0000006F0080F766 -:1008E00002000F008E8071002D0000007F02D6D71D -:1008F00002000F008F807100180000008100FF17B8 -:1009000002000F00908071003D0000006F0080F732 -:1009100002000F00918071003D0000006F0080F721 -:1009200002000F00928071002D000000B800D8D79F -:1009300002000F0093807100180000008100EB1787 -:1009400002000F00948071003F000000042900DDC8 -:1009500002000F00958071003F000000010018DDCB -:1009600002000F0096807100690000007A3D00DDF2 -:1009700002000F00978071003F00000084AA04DD90 -:1009800002000F0098807100690000007A3D00DDD0 -:1009900002000F00998071003F000000042B00DD71 -:1009A00002000F009A8071003F000000010018DD76 -:1009B00002000F009B807100690000007A3D00DD9D -:1009C00002000F009C8071003F000000040000DD69 -:1009D00002000F009D807100690000007A3D00DD7B -:1009E00002000F009E8071003F000000842900DD9E -:1009F00002000F009F8071003F000000010018DD21 -:100A000002000F00A0807100690000007A3D00DD47 -:100A100002000F00A18071003F000000040000DD13 -:100A200002000F00A2807100690000007A3D00DD25 -:100A300002000F00A38071003F000000042A00DDC7 -:100A400002000F00A48071003F000000010018DDCB -:100A500002000F00A5807100690000007A3D00DDF2 -:100A600002000F00A68071003F000000849100DDAD -:100A700002000F00A7807100690000007A3D00DDD0 -:100A800002000F00A88071003F000000841980D68A -:100A900002000F00A98071003F000000010080D615 -:100AA00002000F00AA80710035000000ED0080D622 -:100AB00002000F00AB807100180000008100FF37BA -:100AC00002000F00AC8071003F000000042B00DD2D -:100AD00002000F00AD8071003F000000010018DD32 -:100AE00002000F00AE807100690000007A3D00DD59 -:100AF00002000F00AF8071003F000000040000DD25 -:100B000002000F00B0807100690000007A3D00DD36 -:100B100002000F00B18071003F000000842A00DD58 -:100B200002000F00B28071003F000000010018DDDC -:100B300002000F00B3807100690000007A3D00DD03 -:100B400002000F00B48071003F000000040000DDCF -:100B500002000F00B5807100690000007A3D00DDE1 -:100B600002000F00B68071003F000000840C80D6A8 -:100B700002000F00B78071003F000000010080D626 -:100B800002000F00B880710035000000ED0080D633 -:100B900002000F00B9807100180000008100FF37CB -:100BA00002000F00BA8071003F000000842A00DDBF -:100BB00002000F00BB8071003F000000010018DD43 -:100BC00002000F00BC807100690000007A3D00DD6A -:100BD00002000F00BD8071003F000000040000DD36 -:100BE00002000F00BE807100690000007A3D00DD48 -:100BF00002000F00BF8071003F000000840F80D60C -:100C000002000F00C08071003F000000010080D68C -:100C100002000F00C180710035000000ED0080D699 -:100C200002000F00C2807100180000008100FF3731 -:100C300002000F00C38071003F000000042A00DDA5 -:100C400002000F00C48071003F000000010018DDA9 -:100C500002000F00C5807100690000007A3D00DDD0 -:100C600002000F00C68071003F000000841100DD0B -:100C700002000F00C7807100690000007A3D00DDAE -:100C800002000F00C88071003F000000842800DDD2 -:100C900002000F00C98071003F000000010018DD54 -:100CA00002000F00CA807100690000007A3D00DD7B -:100CB00002000F00CB8071003F000000843700DD90 -:100CC00002000F00CC807100690000007A3D00DD59 -:100CD00002000F00CD8071002D000000000080D3C5 -:100CE00002000F00CE8071003F000000803700D26C -:100CF00002000F00CF8071003F000000040480D18B -:100D000002000F00D08071003F000000010084D17C -:100D100002000F00D180710069000000763B00DD09 -:100D200002000F00D280710069000000763B00DDF8 -:100D300002000F00D380710069000000763B00DDE7 -:100D400002000F00D48071003F00000084FF7FD1BB -:100D500002000F00D58071003F00000081FF7FD1AD -:100D600002000F00D680710069000000763B00DDB4 -:100D700002000F00D780710069000000763B00DDA3 -:100D800002000F00D880710069000000763B00DD92 -:100D900002000F00D980710069000000763B00DD81 -:100DA00002000F00DA80710069000000763B00DD70 -:100DB00002000F00DB80710069000000763B00DD5F -:100DC00002000F00DC8071003F000000840780D625 -:100DD00002000F00DD8071003F000000010080D69E -:100DE00002000F00DE80710035000000ED0080D6AB -:100DF00002000F00DF807100180000008100FF3743 -:100E000002000F00E080710049000000633B00DD3C -:100E100002000F00E180710059000000763B00DD08 -:100E200002000F00E28071003D0000006F0080F7BB -:100E300002000F00E38071003D0000006F0080F7AA -:100E400002000F00E48071003D0000006F0080F799 -:100E500002000F00E58071002D0000007F0206DD1A -:100E600002000F00E6807100180000007A3D7F1D2F -:100E700002000F00E780710045000000393100DDFD -:100E800002000F00E8807100940000003B310B006D -:100E900002000F00E9807100940000003D3109005C -:100EA00002000F00EA807100940000003F3107004B -:100EB00002000F00EB80710094000000763B0500FB -:100EC00002000F00EC807100090000007A3DEDC1C6 -:100ED00002000F00ED8071003F00000080B700D2DB -:100EE00002000F00EE8071003F000000842800DD4A -:100EF00002000F00EF8071003F000000010018DDCC -:100F000002000F00F080710069000000643200DD13 -:100F100002000F00F1807100690000007A3D00DDE1 -:100F200002000F00F28071003F000000840780D6AD -:100F300002000F00F38071003F000000010080D626 -:100F400002000F00F480710035000000ED0080D633 -:100F500002000F00F5807100180000008100FF37CB -:100F600002000F00F680710049000000633B00DDC5 -:100F700002000F00F780710059000000763B00DD91 -:100F800002000F00F88071003D0000006F0080F744 -:100F900002000F00F98071003D0000006F0080F733 -:100FA00002000F00FA8071003D0000006F0080F722 -:100FB00002000F00FB8071002D0000007F0206DDA3 -:100FC00002000F00FC807100180000007A3D7F1DB8 -:100FD00002000F00FD807100450000003A3100DD85 -:100FE00002000F00FE80710018000000763B2D1DEE -:100FF00002000F00FF807100450000003C3100DD61 -:1010000002000F000081710018000000763B131DE4 -:1010100002000F0001817100450000003E3100DD3B -:1010200002000F000281710018000000763B1B1DBA -:1010300002000F00038171003F000000043000DD5A -:1010400002000F00048171003F000000010018DD64 -:1010500002000F0005817100690000007A3D00DD8B -:1010600002000F00068171003F000000040100DD56 -:1010700002000F0007817100690000007A3D00DD69 -:1010800002000F0008817100090000007A3D2DC5A3 -:1010900002000F000981710029000000640001D2E4 -:1010A00002000F000A8171003F000000842800DD6B -:1010B00002000F000B8171003F000000010018DDED -:1010C00002000F000C81710069000000643200DD35 -:1010D00002000F000D817100690000007A3D00DD03 -:1010E00002000F000E817100090000007A3D29C244 -:1010F00002000F000F81710029000000640000D27F -:1011000002000F00108171003F000000842800DD04 -:1011100002000F00118171003F000000010018DD86 -:1011200002000F001281710069000000643200DDCE -:1011300002000F0013817100690000007A3D00DD9C -:1011400002000F001481710049000000633B00DDC4 -:1011500002000F001581710059000000763B00DD90 -:1011600002000F00168171003D0000006F0080F743 -:1011700002000F00178171003D0000006F0080F732 -:1011800002000F00188171003D0000006F0080F721 -:1011900002000F00198171002D0000007F0206DDA2 -:1011A00002000F001A817100180000007A3D7F1DB7 -:1011B00002000F001B817100450000003A3100DD84 -:1011C00002000F001C81710018000000763B0F1D0B -:1011D00002000F001D8171003F000000043000DD9F -:1011E00002000F001E8171003F000000010018DDA9 -:1011F00002000F001F817100690000007A3D00DDD0 -:1012000002000F00208171003F000000040100DD9A -:1012100002000F0021817100690000007A3D00DDAD -:1012200002000F0022817100090000007A3D2DC5E7 -:1012300002000F00238171002D000000820008D100 -:1012400002000F0024817100080000007A3DC323D2 -:1012500002000F0025817100490000000A3B00D602 -:1012600002000F00268171003F000000040000D33F -:1012700002000F00278171003F000000010004D32D -:1012800002000F00288171002F000000854081D6E8 -:1012900002000F00298171003F00000084FFFFD48D -:1012A00002000F002A8171003F000000810780D4F6 -:1012B00002000F002B8171003F00000084FFFFD16E -:1012C00002000F002C8171003F000000010080D15E -:1012D00002000F002D81710049000000663600DD1C -:1012E00002000F002E81710069000000763B00DDD6 -:1012F00002000F002F81710069000000763B00DDC5 -:1013000002000F003081710069000000763B00DDB3 -:1013100002000F003181710069000000693B00DDAF -:1013200002000F003281710069000000763B00DD91 -:1013300002000F003381710069000000763B00DD80 -:1013400002000F003481710069000000763B00DD6F -:1013500002000F003581710069000000693B00DD6B -:1013600002000F0036817100610000006C0400F67D -:1013700002000F003781710035000000ED0080D6BB -:1013800002000F00388171001800000081006B3DE1 -:1013900002000F0039817100490000008B0500D662 -:1013A00002000F003A8171002F000000060181D673 -:1013B00002000F003B8171002D000000000000D2F0 -:1013C00002000F003C81710021000000E40000D207 -:1013D00002000F003D8171003D0000006F0080F7AA -:1013E00002000F003E8171002D0000007F0106DD2C -:1013F00002000F003F817100180000007A3D7F1D40 -:1014000002000F0040817100490000006C3600D8D6 -:1014100002000F004181710069000000E73300D82D -:1014200002000F004281710069000000E73300D81C -:1014300002000F004381710069000000EF3700D8FF -:1014400002000F0044817100310000006C0100D6E1 -:1014500002000F00458171002D000000000000D146 -:1014600002000F004681710049000000E4337AD188 -:1014700002000F00478171002F000000620171D14E -:1014800002000F00488171002F000000620161D14D -:1014900002000F004981710049000000E33340D190 -:1014A00002000F004A8171003D0000006F0080F7CC -:1014B00002000F004B8171002D0000007F0106DD4E -:1014C00002000F004C817100180000007A3D7F1D62 -:1014D00002000F004D817100490000006C3600D8F9 -:1014E00002000F004E81710069000000E73300D850 -:1014F00002000F004F81710069000000623100D8C6 -:1015000002000F005081710069000000EF3700D821 -:1015100002000F0051817100310000006C0100D603 -:1015200002000F00528171003D0000006F0080F743 -:1015300002000F00538171002D0000007F0106DDC5 -:1015400002000F0054817100180000007A3D7F1DD9 -:1015500002000F0055817100490000006C3600D870 -:1015600002000F005681710069000000E73300D8C7 -:1015700002000F005781710069000000E73300D8B6 -:1015800002000F005881710069000000EF3700D899 -:1015900002000F0059817100310000006C0100D67B -:1015A00002000F005A8171002D000000000000D1E0 -:1015B00002000F005B8171002D000000E4076CD178 -:1015C00002000F005C81710049000000E33340D14C -:1015D00002000F005D8171003D0000006F0080F788 -:1015E00002000F005E8171002D0000007F0106DD0A -:1015F00002000F005F817100180000007A3D7F1D1E -:1016000002000F0060817100490000006C3600D8B4 -:1016100002000F006181710069000000E73300D80B -:1016200002000F006281710069000000623100D881 -:1016300002000F006381710069000000EF3700D8DD -:1016400002000F0064817100310000006C0100D6BF -:1016500002000F00658171003D0000006F0080F7FF -:1016600002000F00668171002D0000007F0106DD81 -:1016700002000F0067817100180000007A3D7F1D95 -:1016800002000F0068817100490000006C3600D82C -:1016900002000F006981710069000000E73300D883 -:1016A00002000F006A81710069000000E73300D872 -:1016B00002000F006B81710069000000EF3700D855 -:1016C00002000F006C817100310000006C0100D637 -:1016D00002000F006D8171002D000000000000D19C -:1016E00002000F006E81710049000000E43378D1E0 -:1016F00002000F006F8171002F000000620171D1A4 -:1017000002000F00708171002F000000620161D1A2 -:1017100002000F007181710049000000E33340D1E5 -:1017200002000F00728171003D0000006F0080F721 -:1017300002000F00738171002D0000007F0106DDA3 -:1017400002000F0074817100180000007A3D7F1DB7 -:1017500002000F0075817100490000006C3600D84E -:1017600002000F007681710069000000E73300D8A5 -:1017700002000F007781710069000000623100D81B -:1017800002000F007881710069000000EF3700D877 -:1017900002000F0079817100310000006C0100D659 -:1017A00002000F007A8171003D0000006F0080F799 -:1017B00002000F007B8171002D0000007F0106DD1B -:1017C00002000F007C817100180000007A3D7F1D2F -:1017D00002000F007D817100490000006C3600D8C6 -:1017E00002000F007E81710069000000E73300D81D -:1017F00002000F007F81710069000000E73300D80C -:1018000002000F008081710069000000EF3700D8EE -:1018100002000F0081817100310000006C0100D6D0 -:1018200002000F00828171002D000000000000D135 -:1018300002000F00838171002D000000E40768D1D1 -:1018400002000F008481710049000000E33340D1A1 -:1018500002000F00858171003D0000006F0080F7DD -:1018600002000F00868171002D0000007F0106DD5F -:1018700002000F0087817100180000007A3D7F1D73 -:1018800002000F0088817100490000006C3600D80A -:1018900002000F008981710069000000E73300D861 -:1018A00002000F008A81710069000000623100D8D7 -:1018B00002000F008B81710069000000EF3700D833 -:1018C00002000F008C817100310000006C0100D615 -:1018D00002000F008D81710035000000ED0080D600 -:1018E00002000F008E817100080000008100792243 -:1018F00002000F008F817100490000000C0600D625 -:1019000002000F00908171002F000000060181D6B7 -:1019100002000F00918171003F000000020080D49E -:1019200002000F00928171003F000000840080D40B -:1019300002000F00938171003F000000020100D5FA -:1019400002000F00948171003F000000840100D567 -:1019500002000F00958171003F000000020280D557 -:1019600002000F00968171003F000000040280D544 -:1019700002000F00978171003D0000006F0080F7AA -:1019800002000F00988171002D0000007F0106DD2C -:1019900002000F0099817100180000007A3D7F1D40 -:1019A00002000F009A817100490000006C3600D8D7 -:1019B00002000F009B81710069000000E93400D82B -:1019C00002000F009C817100690000006A3500D898 -:1019D00002000F009D81710069000000EF3700D800 -:1019E00002000F009E817100310000006C0100D6E2 -:1019F00002000F009F81710041000000EB3480D491 -:101A000002000F00A0817100410000006B3500D57D -:101A100002000F00A181710035000000ED0080D6AA -:101A200002000F00A2817100180000008100EB3756 -:101A300002000F00A3817100490000000D3B00D699 -:101A400002000F00A481710049000000073B80D60E -:101A500002000F00A58171002D000000000000D1E0 -:101A600002000F00A681710049000000663600DD0B -:101A700002000F00A781710069000000763B00DDC5 -:101A800002000F00A881710069000000763B00DDB4 -:101A900002000F00A981710069000000763B00DDA3 -:101AA00002000F00AA81710069000000763B00DD92 -:101AB00002000F00AB81710069000000763B00DD81 -:101AC00002000F00AC81710069000000763B00DD70 -:101AD00002000F00AD81710069000000763B00DD5F -:101AE00002000F00AE81710069000000763B00DD4E -:101AF00002000F00AF817100610000006C0400F66D -:101B000002000F00B081710035000000ED0080D6AA -:101B100002000F00B1817100180000008100EB3756 -:101B200002000F00B2817100490000000E3B00D698 -:101B300002000F00B381710049000000083B80D60D -:101B400002000F00B481710049000000093B80D5FC -:101B500002000F00B58171003D0000006F0080F7AA -:101B600002000F00B68171002D0000007F0106DD2C -:101B700002000F00B7817100180000007A3D7F1D40 -:101B800002000F00B8817100490000006C3600D8D7 -:101B900002000F00B981710069000000EB3500D828 -:101BA00002000F00BA81710069000000E73300D81D -:101BB00002000F00BB81710069000000EF3700D800 -:101BC00002000F00BC81710041000000EC0700D64C -:101BD00002000F00BD817100410000006B0880D53C -:101BE00002000F00BE81710035000000ED0080D6BC -:101BF00002000F00BF817100180000008100ED3766 -:101C000002000F00C08171003F00000080FFFFD480 -:101C100002000F00C18171003F000000040002D5E6 -:101C200002000F00C28171003F000000010018D5C2 -:101C300002000F00C3817100490000006A3B00DD13 -:101C400002000F00C481710069000000693B00DDE3 -:101C500002000F00C581710069000000693B00DDD2 -:101C600002000F00C681710021000000EA0000D5CB -:101C700002000F00C7817100490000006A3B0EDDC1 -:101C800002000F00C8817100350000007A0004D105 -:101C900002000F00C9817100180000008100F537B3 -:101CA00002000F00CA8171003F00000080FFFFD4D6 -:101CB00002000F00CB8171003F000000040004D53A -:101CC00002000F00CC8171003F000000010018D518 -:101CD00002000F00CD81710069000000693B00DD4A -:101CE00002000F00CE81710069000000693B00DD39 -:101CF00002000F00CF817100490000006A3B00DD47 -:101D000002000F00D081710051000000EA0000F5D0 -:101D100002000F00D18171003D0000006F0080F7CC -:101D200002000F00D28171003D0000006F0080F7BB -:101D300002000F00D3817100490000006A3B0EDDF4 -:101D400002000F00D4817100350000007A8004D1B8 -:101D500002000F00D5817100180000008100F537E6 -:101D600002000F00D68171003F000000047F7FC792 -:101D700002000F00D78171003F000000017F7FC784 -:101D800002000F00D88171003F000000004080D6A3 -:101D900002000F00D98171003F00000000C003D194 -:101DA00002000F00DA81710025000000E20020DE51 -:101DB00002000F00DB817100490000004E2780DE29 -:101DC00002000F00DC8171003D0000006F0080F711 -:101DD00002000F00DD8171003D0000006F0080F700 -:101DE00002000F00DE81710035000000E20000D12A -:101DF00002000F00DF81710035000000ED0080D689 -:101E000002000F00E0817100180000008100F5372A -:101E100002000F00E18171003F000000043000DD8E -:101E200002000F00E28171003F000000010018DD98 -:101E300002000F00E3817100690000003A1D00DD1F -:101E400002000F00E4817100690000007A3D00DDAE -:101E500002000F00E58171007D00000013A760C73C -:101E600002000F00E681710031000000410080C0D7 -:101E700002000F00E781710031000000480000C43B -:101E800002000F00E881710031000000450080C2AF -:101E900002000F00E9817100000000000000000056 -:101EA00002000F00EA817100000000000000000045 -:101EB00002000F00EB817100000000000000000034 -:101EC00002000F00EC817100000000000000000023 -:101ED00002000F00ED817100000000000000000012 -:101EE00002000F00EE817100000000000000000001 -:101EF00002000F00EF8171000000000000000000F0 -:101F000002000F00F08171000000000000000000DE -:101F100002000F00F18171000000000000000000CD -:101F200002000F00F28171000000000000000000BC -:101F300002000F00F38171000000000000000000AB -:101F400002000F00F48171002D000000000000DB92 -:101F500002000F00F58171003F000000043000DD39 -:101F600002000F00F68171003F000000010018DD43 -:101F700002000F00F7817100690000007A3D00DD6A -:101F800002000F00F88171003F000000040000DD36 -:101F900002000F00F9817100690000007A3D00DD48 -:101FA00002000F00FA8171002D000000000080D3B4 -:101FB00002000F00FB8171003F000000040400DDFF -:101FC00002000F00FC8171003F000000010018DDDD -:101FD00002000F00FD81710069000000140A00DD9D -:101FE00002000F00FE817100690000007A3D00DDF3 -:101FF00002000F00FF81710049000000943304D1FA -:1020000002000F00008271003F000000840400DD28 -:1020100002000F00018271003F000000010018DD86 -:1020200002000F000282710069000000623100DDD1 -:1020300002000F0003827100690000007A3D00DD9C -:1020400002000F00048271003F000000040500DD63 -:1020500002000F00058271003F000000010018DD42 -:1020600002000F000682710069000000950A00DD81 -:1020700002000F0007827100690000007A3D00DD58 -:1020800002000F000882710049000000953304D15E -:1020900002000F00098271003F000000840500DD8E -:1020A00002000F000A8271003F000000010018DDED -:1020B00002000F000B82710069000000623100DD38 -:1020C00002000F000C827100690000007A3D00DD03 -:1020D00002000F000D8271003F000000040600DDC9 -:1020E00002000F000E8271003F000000010018DDA9 -:1020F00002000F000F827100690000007A3D00DDD0 -:1021000002000F00108271003F000000840000DD1B -:1021100002000F0011827100690000007A3D00DDAD -:1021200002000F00128271003F000000040000DD79 -:1021300002000F00138271003F000000010018DD53 -:1021400002000F001482710069000000160B00DD10 -:1021500002000F0015827100690000007A3D00DD69 -:1021600002000F00168271003F000000041000DD25 -:1021700002000F00178271003F000000010018DD0F -:1021800002000F0018827100690000007A3D00DD36 -:1021900002000F00198271003F000000040000DD02 -:1021A00002000F001A827100690000007A3D00DD14 -:1021B00002000F001B8271003F000000841000DD50 -:1021C00002000F001C8271003F000000010018DDBA -:1021D00002000F001D827100690000007A3D00DDE1 -:1021E00002000F001E8271003F000000048001DD2C -:1021F00002000F001F827100690000007A3D00DDBF -:1022000002000F00208271003F000000041100DD79 -:1022100002000F00218271003F000000010018DD64 -:1022200002000F0022827100690000007A3D00DD8B -:1022300002000F00238271003F000000040000DD57 -:1022400002000F0024827100690000007A3D00DD69 -:1022500002000F00258271003F000000841100DDA4 -:1022600002000F00268271003F000000010018DD0F -:1022700002000F0027827100690000007A3D00DD36 -:1022800002000F00288271003F000000040016DDEC -:1022900002000F0029827100690000007A3D00DD14 -:1022A00002000F002A8271003F000000041200DDCE -:1022B00002000F002B8271003F000000010018DDBA -:1022C00002000F002C827100690000007A3D00DDE1 -:1022D00002000F002D8271003F000000040000DDAD -:1022E00002000F002E827100690000007A3D00DDBF -:1022F00002000F002F8271003F000000841200DDF9 -:1023000002000F00308271003F000000010018DD64 -:1023100002000F0031827100690000007A3D00DD8B -:1023200002000F00328271003F000000040000DD57 -:1023300002000F0033827100690000007A3D00DD69 -:1023400002000F00348271003F000000041300DD22 -:1023500002000F00358271003F000000010018DD0F -:1023600002000F0036827100690000007A3D00DD36 -:1023700002000F00378271003F000000040000DD02 -:1023800002000F0038827100690000007A3D00DD14 -:1023900002000F00398271003F000000841300DD4D -:1023A00002000F003A8271003F000000010018DDBA -:1023B00002000F003B827100690000007A3D00DDE1 -:1023C00002000F003C8271003F000000040005DDA8 -:1023D00002000F003D827100690000007A3D00DDBF -:1023E00002000F003E8271003F000000042000DD6B -:1023F00002000F003F8271003F000000010018DD65 -:1024000002000F0040827100690000007A3D00DD8B -:1024100002000F00418271003F000000040000DD57 -:1024200002000F0042827100690000007A3D00DD69 -:1024300002000F00438271003F000000842000DD95 -:1024400002000F00448271003F000000010018DD0F -:1024500002000F0045827100690000007A3D00DD36 -:1024600002000F00468271003F000000049001DD71 -:1024700002000F0047827100690000007A3D00DD14 -:1024800002000F00488271003F000000042100DDBF -:1024900002000F00498271003F000000010018DDBA -:1024A00002000F004A827100690000007A3D00DDE1 -:1024B00002000F004B8271003F000000840000DD2D -:1024C00002000F004C827100690000007A3D00DDBF -:1024D00002000F004D8271003F000000842100DDEA -:1024E00002000F004E8271003F000000010018DD65 -:1024F00002000F004F827100690000007A3D00DD8C -:1025000002000F00508271003F000000040000DD57 -:1025100002000F0051827100690000007A3D00DD69 -:1025200002000F00528271003F000000042200DD13 -:1025300002000F00538271003F000000010018DD0F -:1025400002000F0054827100690000007A3D00DD36 -:1025500002000F00558271003F000000840200DD80 -:1025600002000F0056827100690000007A3D00DD14 -:1025700002000F00578271003F000000842200DD3E -:1025800002000F00588271003F000000010018DDBA -:1025900002000F0059827100690000007A3D00DDE1 -:1025A00002000F005A8271003F000000040000DDAD -:1025B00002000F005B827100690000007A3D00DDBF -:1025C00002000F005C8271003F000000042300DD68 -:1025D00002000F005D8271003F000000010018DD65 -:1025E00002000F005E827100690000007A3D00DD8C -:1025F00002000F005F8271003F000000040000DD58 -:1026000002000F0060827100690000007A3D00DD69 -:1026100002000F00618271003F000000041800DD1D -:1026200002000F00628271003F000000010018DD0F -:1026300002000F006382710069000000970B00DD4B -:1026400002000F0064827100690000007A3D00DD25 -:1026500002000F006582710049000000973304D129 -:1026600002000F00668271003F000000841800DD48 -:1026700002000F00678271003F000000010018DDBA -:1026800002000F006882710069000000623100DD05 -:1026900002000F0069827100690000007A3D00DDD0 -:1026A00002000F006A8271003F000000041900DD83 -:1026B00002000F006B8271003F000000010018DD76 -:1026C00002000F006C82710069000000180C00DD30 -:1026D00002000F006D827100690000007A3D00DD8C -:1026E00002000F006E82710049000000983304D18F -:1026F00002000F006F8271003F000000841900DDAE -:1027000002000F00708271003F000000010018DD20 -:1027100002000F007182710069000000623100DD6B -:1027200002000F0072827100690000007A3D00DD36 -:1027300002000F00738271003F000000041A00DDE8 -:1027400002000F00748271003F000000010018DDDC -:1027500002000F0075827100690000007A3D00DD03 -:1027600002000F00768271003F000000040000DDCF -:1027700002000F0077827100690000007A3D00DDE1 -:1027800002000F00788271003F000000841A00DD13 -:1027900002000F00798271003F000000010018DD87 -:1027A00002000F007A82710069000000160B00DD44 -:1027B00002000F007B827100690000007A3D00DD9D -:1027C00002000F007C8271003F000000041C00DD4D -:1027D00002000F007D8271003F000000010018DD43 -:1027E00002000F007E82710069000000990C00DD7C -:1027F00002000F007F827100690000007A3D00DD59 -:1028000002000F00808271003F000000841C00DD88 -:1028100002000F00818271003F000000010018DDFE -:1028200002000F0082827100690000001A0D00DDB5 -:1028300002000F0083827100690000007A3D00DD14 -:1028400002000F00848271003F000000041D00DDC3 -:1028500002000F00858271003F000000010018DDBA -:1028600002000F0086827100690000009B0D00DDF0 -:1028700002000F0087827100690000007A3D00DDD0 -:1028800002000F0088827100490000009B3304D1D0 -:1028900002000F00898271003F000000841D00DDEE -:1028A00002000F008A8271003F000000010018DD65 -:1028B00002000F008B82710069000000623100DDB0 -:1028C00002000F008C827100690000007A3D00DD7B -:1028D00002000F008D8271003F000000041E00DD29 -:1028E00002000F008E8271003F000000010018DD21 -:1028F00002000F008F827100690000001C0E00DDD5 -:1029000002000F0090827100690000007A3D00DD36 -:1029100002000F00918271003F000000040100DD01 -:1029200002000F00928271003F000000010018DDDC -:1029300002000F0093827100690000007A3D00DD03 -:1029400002000F00948271003F000000040F00DDC0 -:1029500002000F0095827100690000007A3D00DDE1 -:1029600002000F00968271007D00000013A760C76F -:1029700002000F009782710031000000410080C00A -:1029800002000F009882710031000000480000C46E -:1029900002000F009982710031000000450080C2E2 -:1029A00002000F009A827100310000006D0080D695 -:1029B0000F000F0064007000000000000000000025 -:1029C00000000000400000000001000000040000C2 -:1029D000640000005400000000000000002400001B -:1029E0000028000000040000802800008001000092 -:1029F00003000000000000000000000000000000D4 -:102A0000510000007D01000008000000510000009E -:102A10005D00000000000000090000000050000000 -:102A200000000000000000000F000F00F401700023 -:102A30000000000000000000000000004000000056 -:102A400000010000000400006400000054000000C9 -:102A50000000000000240000002800000004000026 -:102A6000802800008001000003000000000000003A -:102A70000000000000000000510000007D01000087 -:102A800008000000510000005D0000000000000090 -:102A900009000000005000000000000000000000DD -:102AA00002000F00000070000100000000000000A4 -:102AB00002000F0000007000010000000000000094 -:102AC00002000F00008071002500000002000EDDF2 -:102AD00002000F000180710004000000763BD1016C -:102AE00002000F00028071002500000082000EDD50 -:102AF00002000F000380710004000000763B890291 -:102B000002000F00048071002500000002010EDDAC -:102B100002000F000580710004000000763B850272 -:102B200002000F00068071002500000082010EDD0A -:102B300002000F000780710004000000763BFD03D7 -:102B400002000F000880710009000000763B81CF71 -:102B500002000F000980710000000000000000006A -:102B600002000F000A807100000000000000000059 -:102B700002000F000B807100000000000000000048 -:102B800002000F000C807100000000000000000037 -:102B900002000F000D807100000000000000000026 -:102BA00002000F000E807100000000000000000015 -:102BB00002000F000F807100000000000000000004 -:102BC00002000F00108071000000000000000000F3 -:102BD00002000F00118071000000000000000000E2 -:102BE00002000F00128071000000000000000000D1 -:102BF00002000F00138071000000000000000000C0 -:102C000002000F00148071000000000000000000AE -:102C100002000F001580710000000000000000009D -:102C200002000F001680710000000000000000008C -:102C300002000F001780710000000000000000007B -:102C400002000F001880710000000000000000006A -:102C500002000F0019807100000000000000000059 -:102C600002000F001A807100000000000000000048 -:102C700002000F001B807100000000000000000037 -:102C800002000F001C807100000000000000000026 -:102C900002000F001D807100000000000000000015 -:102CA00002000F001E807100000000000000000004 -:102CB00002000F001F8071000000000000000000F3 -:102CC00002000F00208071000000000000000000E2 -:102CD00002000F00218071000000000000000000D1 -:102CE00002000F00228071000000000000000000C0 -:102CF00002000F00238071000000000000000000AF -:102D000002000F002480710000000000000000009D -:102D100002000F002580710000000000000000008C -:102D200002000F002680710000000000000000007B -:102D300002000F002780710000000000000000006A -:102D400002000F002880710049000000003B00C015 -:102D500002000F002980710049000000023B80C082 -:102D600002000F002A80710049000000033B00C1EF -:102D700002000F002B80710049000000043B80C15D -:102D800002000F002C80710029000000760060DF37 -:102D900002000F002D807100490000007D3B44DFE0 -:102DA00002000F002E80710079000000769060FD17 -:102DB00002000F002F8071003D0000006F0080F7BF -:102DC00002000F00308071003D0000006F0080F7AE -:102DD00002000F00318071003D0000006F0080F79D -:102DE00002000F00328071003D0000006F0080F78C -:102DF00002000F003380710000000000000000009E -:102E000002000F003480710000000000000000008C -:102E100002000F003580710000000000000000007B -:102E200002000F003680710000000000000000006A -:102E300002000F0037807100000000000000000059 -:102E400002000F0038807100000000000000000048 -:102E500002000F0039807100000000000000000037 -:102E600002000F003A807100000000000000000026 -:102E700002000F003B807100000000000000000015 -:102E800002000F003C807100000000000000000004 -:102E900002000F003D8071000000000000000000F3 -:102EA00002000F003E8071000000000000000000E2 -:102EB00002000F003F8071000000000000000000D1 -:102EC00002000F00408071000000000000000000C0 -:102ED00002000F00418071000000000000000000AF -:102EE00002000F004280710000000000000000009E -:102EF00002000F004380710000000000000000008D -:102F000002000F004480710000000000000000007B -:102F100002000F004580710000000000000000006A -:102F200002000F0046807100000000000000000059 -:102F300002000F0047807100000000000000000048 -:102F400002000F0048807100000000000000000037 -:102F500002000F0049807100000000000000000026 -:102F600002000F004A807100000000000000000015 -:102F700002000F004B807100000000000000000004 -:102F800002000F004C8071000000000000000000F3 -:102F900002000F004D8071000000000000000000E2 -:102FA00002000F004E8071000000000000000000D1 -:102FB00002000F004F8071000000000000000000C0 -:102FC00002000F00508071000000000000000000AF -:102FD00002000F005180710000000000000000009E -:102FE00002000F005280710000000000000000008D -:102FF00002000F005380710000000000000000007C -:1030000002000F005480710000000000000000006A -:1030100002000F0055807100000000000000000059 -:1030200002000F0056807100000000000000000048 -:1030300002000F0057807100000000000000000037 -:1030400002000F0058807100000000000000000026 -:1030500002000F0059807100000000000000000015 -:1030600002000F005A807100000000000000000004 -:1030700002000F005B8071000000000000000000F3 -:1030800002000F005C8071000000000000000000E2 -:1030900002000F005D8071000000000000000000D1 -:1030A00002000F005E8071000000000000000000C0 -:1030B00002000F005F8071000000000000000000AF -:1030C00002000F00608071003F000000030000DF7D -:1030D00002000F00618071002D000000810FE0DD13 -:1030E00002000F00628071003F000000830280DD5B -:1030F00002000F00638071002D000000800104DDDC -:1031000002000F00648071007D000000800015FD4A -:1031100002000F00658071007A000000763B2010ED -:1031200002000F00668071007A000000767B20307C -:1031300002000F006780710021000000600024D0B1 -:1031400002000F00688071003F000000040100DDF4 -:1031500002000F00698071003F000000810240DD25 -:1031600002000F006A8071007900000003BB31DDAE -:1031700002000F006B8071007900000004FB31DD5C -:1031800002000F006C8071007900000076BB31DD19 -:1031900002000F006D8071007900000076FB31DDC8 -:1031A00002000F006E80710079000000010121FD16 -:1031B00002000F006F8071007D00000081402BFD38 -:1031C00002000F0070807100400000000230003DDE -:1031D00002000F007180710048000000023B001DDA -:1031E00002000F007280710079000000767B21DD03 -:1031F00002000F00738071002D0000007F0504DDC8 -:1032000002000F007480710018000000763B7F3DC3 -:1032100002000F00758071003D0000006F0080F714 -:1032200002000F00768071003D0000006F0080F703 -:1032300002000F00778071003D0000006F0080F7F2 -:1032400002000F007880710021000000761F37E334 -:1032500002000F007980710049000000793B00DD19 -:1032600002000F007A8071007900000076BB21DD3A -:1032700002000F007B80710049000000793B00DDF7 -:1032800002000F007C8071007900000076BB21DD18 -:1032900002000F007D80710049000000793B00DDD5 -:1032A00002000F007E8071007900000076BB21DDF6 -:1032B00002000F007F80710079000000769060FDB1 -:1032C00002000F00808071007900000076FB21DD94 -:1032D00002000F00818071003F000000830000DFCA -:1032E00002000F00828071003D0000006F0080F737 -:1032F00002000F0083807100000000000000000049 -:1033000002000F0084807100000000000000000037 -:1033100002000F0085807100000000000000000026 -:1033200002000F0086807100000000000000000015 -:1033300002000F0087807100000000000000000004 -:1033400002000F00888071000000000000000000F3 -:1033500002000F00898071000000000000000000E2 -:1033600002000F008A8071000000000000000000D1 -:1033700002000F008B8071000000000000000000C0 -:1033800002000F008C8071000000000000000000AF -:1033900002000F008D80710000000000000000009E -:1033A00002000F008E80710000000000000000008D -:1033B00002000F008F80710000000000000000007C -:1033C00002000F009080710000000000000000006B -:1033D00002000F009180710000000000000000005A -:1033E00002000F0092807100000000000000000049 -:1033F00002000F0093807100000000000000000038 -:1034000002000F0094807100000000000000000026 -:1034100002000F0095807100000000000000000015 -:1034200002000F0096807100000000000000000004 -:1034300002000F00978071000000000000000000F3 -:1034400002000F00988071000000000000000000E2 -:1034500002000F00998071000000000000000000D1 -:1034600002000F009A8071000000000000000000C0 -:1034700002000F009B8071000000000000000000AF -:1034800002000F009C80710000000000000000009E -:1034900002000F009D80710000000000000000008D -:1034A00002000F009E80710000000000000000007C -:1034B00002000F009F80710000000000000000006B -:1034C00002000F00A08071002D000000030808D04A -:1034D00002000F00A18071000800000076FBB521FA -:1034E00002000F00A280710079000000810001DD60 -:1034F00002000F00A380710079000000028101DD4D -:1035000002000F00A48071007D000000838001FD97 -:1035100002000F00A580710079000000763B90D07A -:1035200002000F00A6807100490000007A3B58D0CD -:1035300002000F00A780710049000000003B04D288 -:1035400002000F00A88071003D000000030040DD74 -:1035500002000F00A9807100240000006402003204 -:1035600002000F00AA8071003D00000003F87FDD1B -:1035700002000F00AB807100290000007A0120D00A -:1035800002000F00AC807100490000000E3BA4D087 -:1035900002000F00AD8071002D000000FF4204DD2D -:1035A00002000F00AE80710018000000763B7F3DE6 -:1035B00002000F00AF8071002D000000820006DDC8 -:1035C00002000F00B080710038000000E001003000 -:1035D00002000F00B180710039000000600100D0CE -:1035E00002000F00B2807100790000007C3BB1D175 -:1035F00002000F00B38071002D000000E30FE0DD3A -:1036000002000F00B480710049000000E43080D057 -:1036100002000F00B5807100790000007C7B31DD75 -:1036200002000F00B6807100790000007C3B31DDA4 -:1036300002000F00B78071007D000000824037FD5E -:1036400002000F00B880710008000000763B7D0189 -:1036500002000F00B98071003D0000006F0080F78C -:1036600002000F00BA8071003D0000006F0080F77B -:1036700002000F00BB80710049000000870300DDDD -:1036800002000F00BC80710079000000080431DDE9 -:1036900002000F00BD807100790000007A7D31DDED -:1036A00002000F00BE807100490000007C3B00D387 -:1036B00002000F00BF807100790000007CBB81D345 -:1036C00002000F00C08071007F0000007CB201D1B9 -:1036D00002000F00C18071004800000064320051F8 -:1036E00002000F00C28071003D000000030040DDB9 -:1036F00002000F00C38071000800000062319501D4 -:1037000002000F00C480710021000000660600D393 -:1037100002000F00C580710020000000E700805308 -:1037200002000F00C68071003F000000000800DDAD -:1037300002000F00C78071007900000066B301DD50 -:1037400002000F00C880710079000000E7B301DDBE -:1037500002000F00C980710075000000628601F14F -:1037600002000F00CA8071007500000064B101D230 -:1037700002000F00CB80710078000000767B001DF6 -:1037800002000F00CC80710025000000E30100DD85 -:1037900002000F00CD807100080000006231B1010D -:1037A00002000F00CE8071003D0000006F0080F726 -:1037B00002000F00CF8071003D0000006F0080F715 -:1037C00002000F00D08071003D0000006F0080F704 -:1037D00002000F00D180710021000000639F37E3D9 -:1037E00002000F00D2807100490000007C3B00D332 -:1037F00002000F00D3807100790000007CBB81D3F0 -:1038000002000F00D48071007F0000007CB201D163 -:1038100002000F00D58071004800000064320051A2 -:1038200002000F00D68071007500000064B101D263 -:1038300002000F00D780710078000000767B001D29 -:1038400002000F00D88071003F000000040000DD7E -:1038500002000F00D98071007900000081C001DDF5 -:1038600002000F00DA80710079000000769060FDA0 -:1038700002000F00DB8071002D000000030808DD4E -:1038800002000F00DC8071007800000081C0013D63 -:1038900002000F00DD8071003D0000006F0080F726 -:1038A00002000F00DE807100000000000000000038 -:1038B00002000F00DF807100000000000000000027 -:1038C00002000F00E0807100000000000000000016 -:1038D00002000F00E1807100000000000000000005 -:1038E00002000F00E28071000000000000000000F4 -:1038F00002000F00E38071000000000000000000E3 -:1039000002000F00E48071000000000000000000D1 -:1039100002000F00E58071000000000000000000C0 -:1039200002000F00E68071000000000000000000AF -:1039300002000F00E780710000000000000000009E -:1039400002000F00E880710049000000033B8ED1A7 -:1039500002000F00E98071002F000000E30081D118 -:1039600002000F00EA8071003F000000031880D1C0 -:1039700002000F00EB80710049000000033B04D1FE -:1039800002000F00EC8071003F000000030280DDA8 -:1039900002000F00ED80710049000000023B04D2DC -:1039A00002000F00EE80710049000000003B84D24D -:1039B00002000F00EF80710025000000E20000DD32 -:1039C00002000F00F08071009400000062411300BB -:1039D00002000F00F18071009400000062430B00B0 -:1039E00002000F00F280710094000000E248150010 -:1039F00002000F00F38071009400000062491B0078 -:103A000002000F00F48071009400000076402F0047 -:103A100002000F00F5807100090000007A3D81CF9F -:103A200002000F00F68071001D000000E5802BFDF4 -:103A300002000F00F78071003000000063808331C6 -:103A400002000F00F88071003000000063808211D6 -:103A500002000F00F98071001D000000E58025FDC7 -:103A600002000F00FA807100300000006300833113 -:103A700002000F00FB807100300000006300821123 -:103A800002000F00FC8071002F000000E30081D1D4 -:103A900002000F00FD8071001D000000E58009FD9F -:103AA00002000F00FE8071003000000063D38331FC -:103AB00002000F00FF8071003000000063D283110C -:103AC00002000F00008171002F000000E30081D18F -:103AD00002000F00018171003F000000840180D6C8 -:103AE00002000F00028171003F000000010080D63B -:103AF00002000F000381710035000000ED0080D648 -:103B000002000F0004817100180000008100FF37DF -:103B100002000F000581710025000000640200D240 -:103B200002000F0006817100180000007AFD777D09 -:103B300002000F000781710049000000633B20DE96 -:103B400002000F000881710049000000793B80DE0F -:103B500002000F000981710021000000E30080D104 -:103B600002000F000A817100090000007A3D81CF38 -:103B700002000F000B81710049000000E33100DDFD -:103B800002000F000C81710069000000783B0EDD1F -:103B900002000F000D81710061000000763B00DD26 -:103BA00002000F000E8171003F000000840100DD63 -:103BB00002000F000F8171003F000000010000DDD6 -:103BC00002000F001081710035000000FA0000DDD6 -:103BD00002000F001181710018000000763B7F3B4E -:103BE00002000F00128171003D0000006F0080F79D -:103BF00002000F00138171003D0000006F0080F78C -:103C000002000F00148171003D0000006F0080F77A -:103C100002000F001581710021000000E30080D137 -:103C200002000F001681710069000000793B04DD7D -:103C300002000F001781710061000000E30080F1B5 -:103C400002000F00188171003F000000840180D63F -:103C500002000F00198171003F000000010080D6B2 -:103C600002000F001A81710035000000ED0080D6BF -:103C700002000F001B817100180000008100FF3757 -:103C800002000F001C81710025000000640200D2B8 -:103C900002000F001D8171009800000076BB5D607E -:103CA00002000F001E817100090000007A3D81CFE3 -:103CB00002000F001F8171000000000000000000E2 -:103CC00002000F00208171000000000000000000D1 -:103CD00002000F00218171000000000000000000C0 -:103CE00002000F00228171000000000000000000AF -:103CF00002000F002381710000000000000000009E -:103D000002000F002481710000000000000000008C -:103D100002000F002581710000000000000000007B -:103D200002000F002681710000000000000000006A -:103D300002000F0027817100000000000000000059 -:103D400002000F0028817100000000000000000048 -:103D500002000F0029817100000000000000000037 -:103D600002000F002A817100000000000000000026 -:103D700002000F002B817100000000000000000015 -:103D800002000F002C817100000000000000000004 -:103D900002000F002D8171000000000000000000F3 -:103DA00002000F002E8171000000000000000000E2 -:103DB00002000F002F8171000000000000000000D1 -:103DC00002000F00308171000000000000000000C0 -:103DD00002000F00318171000000000000000000AF -:103DE00002000F003281710000000000000000009E -:103DF00002000F003381710000000000000000008D -:103E000002000F003481710000000000000000007B -:103E100002000F003581710000000000000000006A -:103E200002000F0036817100000000000000000059 -:103E300002000F0037817100000000000000000048 -:103E400002000F0038817100000000000000000037 -:103E500002000F0039817100000000000000000026 -:103E600002000F003A817100000000000000000015 -:103E700002000F003B817100000000000000000004 -:103E800002000F003C8171000000000000000000F3 -:103E900002000F003D8171000000000000000000E2 -:103EA00002000F003E8171000000000000000000D1 -:103EB00002000F003F8171000000000000000000C0 -:103EC00002000F004081710049000000013B08D44E -:103ED00002000F0041817100090000007A3D8BC291 -:103EE00002000F00428171003F000000800300D4F7 -:103EF00002000F0043817100090000007A3D8BC26F -:103F000002000F004481710049000000033B0ED401 -:103F100002000F00458171003F000000000042D602 -:103F200002000F00468171002F000000804081D206 -:103F300002000F00478171002D000000650384D24C -:103F400002000F00488171003F000000800080D611 -:103F500002000F00498171003F000000040004DDF1 -:103F600002000F004A8171003F000000010018DDCF -:103F700002000F004B817100690000006D3B00DD05 -:103F800002000F004C817100690000006D3B00DDF4 -:103F900002000F004D8171003100000065D203D393 -:103FA00002000F004E81710049000000663B40DEB8 -:103FB00002000F004F8171003F000000840180D695 -:103FC00002000F00508171003F000000010080D608 -:103FD00002000F005181710035000000ED0080D615 -:103FE00002000F0052817100180000008100FF37AD -:103FF00002000F0053817100490000007E3B80D514 -:1040000002000F005481710021000000E60040DE34 -:1040100002000F00558171003F000000840180D62E -:1040200002000F00568171003F000000010080D6A1 -:1040300002000F005781710035000000ED0080D6AE -:1040400002000F0058817100180000008100FF3746 -:1040500002000F0059817100490000007E3B00D52D -:1040600002000F005A81710079000000763B01DDEB -:1040700002000F005B8171002D0000007F4004DD15 -:1040800002000F005C81710018000000763B7F3D4C -:1040900002000F005D8171007900000076BB01DD38 -:1040A00002000F005E81710075000000E88001FDD4 -:1040B00002000F005F81710094000000684115004C -:1040C00002000F006081710094000000E8442500A8 -:1040D00002000F006181710094000000E84123009C -:1040E00002000F0062817100940000006845170013 -:1040F00002000F0063817100940000006842150007 -:1041000002000F006481710094000000E842270063 -:1041100002000F00658171009400000068432D00CB -:1041200002000F00668171009400000068442D00B9 -:1041300002000F006781710094000000E843330023 -:1041400002000F006881710004000000763B9703B5 -:1041500002000F00698171000D00000065C10DE3D0 -:1041600002000F006A817100300000007600033207 -:1041700002000F006B817100300000007600021217 -:1041800002000F006C8171003F000000000080D42D -:1041900002000F006D8171003F000000008080D19F -:1041A00002000F006E8171000D00000065C13FE349 -:1041B00002000F006F817100300000007660043251 -:1041C00002000F0070817100300000007640041280 -:1041D00002000F00718171003F000000008082D456 -:1041E00002000F00728171003F000000008080D14A -:1041F00002000F00738171000D00000065C13FE3F4 -:1042000002000F007481710030000000762004323B -:1042100002000F007581710030000000760004126A -:1042200002000F00768171003F000000000082D480 -:1042300002000F00778171000D00000065C163E38B -:1042400002000F00788171003000000076200332F8 -:1042500002000F0079817100300000007600031227 -:1042600002000F007A8171003F000000000083D43B -:1042700002000F007B81710049000000763B80D274 -:1042800002000F007C8171000D00000065C10DE38C -:1042900002000F007D817100300000007680033243 -:1042A00002000F007E817100300000007680021253 -:1042B00002000F007F8171003F000000000081D4E8 -:1042C00002000F00808171003F000000000002D654 -:1042D00002000F00818171003F000000000081D1C9 -:1042E00002000F00828171000D00000065C13FE3F4 -:1042F00002000F008381710030000000762004323C -:1043000002000F008481710030000000760004126A -:1043100002000F00858171003F000000000082D480 -:1043200002000F008681710041000000EB3480D450 -:1043300002000F0087817100790000006ABB01DD77 -:1043400002000F00888171007900000076BB01DD5A -:1043500002000F00898171003F000000031800D2A5 -:1043600002000F008A8171003F000000000081D12F -:1043700002000F008B81710075000000638001FD59 -:1043800002000F008C81710098000000643B69807E -:1043900002000F008D81710051000000E40000F266 -:1043A00002000F008E8171003F000000840180D662 -:1043B00002000F008F8171003F000000010080D6D5 -:1043C00002000F009081710035000000ED0080D6E2 -:1043D00002000F0091817100180000008100FF377A -:1043E00002000F00928171002D0000007F4004DD6B -:1043F00002000F009381710018000000763B7F3DA2 -:1044000002000F009481710049000000383BC0D3C6 -:1044100002000F009581710049000000643B00DD3F -:1044200002000F009681710051000000E40000F2CC -:1044300002000F00978171003F000000840180D6C8 -:1044400002000F00988171003F000000010080D63B -:1044500002000F009981710035000000ED0080D648 -:1044600002000F009A817100180000008100FF37E0 -:1044700002000F009B81710049000000383BA0D36F -:1044800002000F009C8171001900000076BB61DD05 -:1044900002000F009D81710049000000673B00DDB4 -:1044A00002000F009E81710075000000638281F19F -:1044B00002000F009F81710041000000EB3480D4A6 -:1044C00002000F00A0817100790000006ABB01DDCD -:1044D00002000F00A18171007900000076BB01DDB0 -:1044E00002000F00A28171003F000000031800D2FB -:1044F00002000F00A38171003F000000008080D106 -:1045000002000F00A481710075000000638001FDAE -:1045100002000F00A581710098000000643B378005 -:1045200002000F00A681710051000000E40000F2BB -:1045300002000F00A78171003F000000840180D6B7 -:1045400002000F00A88171003F000000010080D62A -:1045500002000F00A981710035000000ED0080D637 -:1045600002000F00AA817100180000008100FF37CF -:1045700002000F00AB8171002D0000007F4004DDC0 -:1045800002000F00AC81710018000000763B7F3DF7 -:1045900002000F00AD81710049000000383B80D35C -:1045A00002000F00AE8171001900000076BB6FDDC4 -:1045B00002000F00AF81710049000000673B00DD81 -:1045C00002000F00B081710075000000638281F16C -:1045D00002000F00B181710041000000EB3480D473 -:1045E00002000F00B2817100790000006ABB01DD9A -:1045F00002000F00B38171007900000063BB01DD90 -:1046000002000F00B481710075000000638001FD9D -:1046100002000F00B581710098000000643B178014 -:1046200002000F00B681710049000000643B40DECB -:1046300002000F00B78171003F000000840180D6A6 -:1046400002000F00B88171003F000000010080D619 -:1046500002000F00B981710035000000ED0080D626 -:1046600002000F00BA817100180000008100FF37BE -:1046700002000F00BB8171002D0000007F4004DDAF -:1046800002000F00BC81710018000000763B7F3DE6 -:1046900002000F00BD81710021000000E40000D283 -:1046A00002000F00BE817100190000007E7BEFD375 -:1046B00002000F00BF81710075000000638281F16C -:1046C00002000F00C08171003F000000000080D692 -:1046D00002000F00C18171003F000000040004DDF2 -:1046E00002000F00C28171003F000000010018DDD0 -:1046F00002000F00C3817100690000006D3B00DD06 -:1047000002000F00C4817100690000006D3B00DDF4 -:1047100002000F00C58171003F000000000000DDB5 -:1047200002000F00C68171002D000000800154DDE1 -:1047300002000F00C7817100790000007680E0F36D -:1047400002000F00C8817100490000007A3600D6CF -:1047500002000F00C98171007900000076FB01DDC5 -:1047600002000F00CA8171003D0000006F0080F759 -:1047700002000F00CB81710049000000033B00DD07 -:1047800002000F00CC81710059000000763B00FD53 -:1047900002000F00CD8171003F000000031C80DD8E -:1047A00002000F00CE8171003D0000006F0080F715 -:1047B00002000F00CF8171003D0000006F0080F704 -:1047C00002000F00D08171003D0000006F0080F7F3 -:1047D00002000F00D18171002D0000007F0206DD74 -:1047E00002000F00D2817100180000007A3D7F1D89 -:1047F00002000F00D3817100310000006B8883D468 -:1048000002000F00D4817100790000006ABB01DD55 -:1048100002000F00D581710079000000769081F1CF -:1048200002000F00D681710075000000638001FD59 -:1048300002000F00D78171009800000076BB538002 -:1048400002000F00D881710019000000797B7FDD24 -:1048500002000F00D981710075000000638281F1B0 -:1048600002000F00DA81710000000000000000006B -:1048700002000F00DB81710000000000000000005A -:1048800002000F00DC817100000000000000000049 -:1048900002000F00DD817100000000000000000038 -:1048A00002000F00DE817100000000000000000027 -:1048B00002000F00DF817100000000000000000016 -:1048C00002000F00E0817100000000000000000005 -:1048D00002000F00E18171000000000000000000F4 -:1048E00002000F00E28171000000000000000000E3 -:1048F00002000F00E38171000000000000000000D2 -:1049000002000F00E48171000000000000000000C0 -:1049100002000F00E58171000000000000000000AF -:1049200002000F00E681710000000000000000009E -:1049300002000F00E781710000000000000000008D -:1049400002000F00E881710000000000000000007C -:1049500002000F00E981710000000000000000006B -:1049600002000F00EA81710000000000000000005A -:1049700002000F00EB817100000000000000000049 -:1049800002000F00EC817100000000000000000038 -:1049900002000F00ED817100000000000000000027 -:1049A00002000F00EE817100000000000000000016 -:1049B00002000F00EF817100000000000000000005 -:1049C00002000F00F08171000000000000000000F4 -:1049D00002000F00F18171000000000000000000E3 -:1049E00002000F00F28171000000000000000000D2 -:1049F00002000F00F38171000000000000000000C1 -:104A000002000F00F48171000000000000000000AF -:104A100002000F00F581710000000000000000009E -:104A200002000F00F681710000000000000000008D -:104A300002000F00F781710000000000000000007C -:104A400002000F00F881710000000000000000006B -:104A500002000F00F981710000000000000000005A -:104A600002000F00FA817100000000000000000049 -:104A700002000F00FB817100000000000000000038 -:104A800002000F00FC817100000000000000000027 -:104A900002000F00FD817100000000000000000016 -:104AA00002000F00FE8171003F000000030280DD64 -:104AB00002000F00FF81710049000000023B84D119 -:104AC00002000F000082710049000000033B00DD7E -:104AD00002000F0001827100690000007A3B00DDD6 -:104AE00002000F000282710049000000793B00DDE6 -:104AF00002000F000382710065000000630280F174 -:104B000002000F000482710018000000763B7D7DDA -:104B100002000F0005827100090000007A3D81CF7C -:104B200002000F000682710000000000000000007B -:104B300002000F000782710000000000000000006A -:104B400002000F0008827100000000000000000059 -:104B500002000F0009827100000000000000000048 -:104B600002000F000A827100000000000000000037 -:104B700002000F000B827100000000000000000026 -:104B800002000F000C827100000000000000000015 -:104B900002000F000D827100000000000000000004 -:104BA00002000F000E8271000000000000000000F3 -:104BB00002000F000F8271000000000000000000E2 -:104BC00002000F00108271000000000000000000D1 -:104BD00002000F00118271000000000000000000C0 -:104BE00002000F00128271000000000000000000AF -:104BF00002000F001382710000000000000000009E -:104C000002000F001482710000000000000000008C -:104C100002000F001582710000000000000000007B -:104C200002000F001682710000000000000000006A -:104C300002000F0017827100000000000000000059 -:104C400002000F0018827100000000000000000048 -:104C500002000F0019827100000000000000000037 -:104C600002000F001A827100000000000000000026 -:104C700002000F001B827100000000000000000015 -:104C800002000F001C827100000000000000000004 -:104C900002000F001D8271000000000000000000F3 -:104CA00002000F001E8271000000000000000000E2 -:104CB00002000F001F8271000000000000000000D1 -:104CC00002000F00208271000000000000000000C0 -:104CD00002000F00218271000000000000000000AF -:104CE00002000F002282710000000000000000009E -:104CF00002000F002382710000000000000000008D -:104D000002000F002482710000000000000000007B -:104D100002000F002582710000000000000000006A -:104D200002000F0026827100000000000000000059 -:104D300002000F0027827100000000000000000048 -:104D400002000F0028827100000000000000000037 -:104D500002000F0029827100000000000000000026 -:104D600002000F002A827100000000000000000015 -:104D700002000F002B827100000000000000000004 -:104D800002000F002C8271000000000000000000F3 -:104D900002000F002D8271000000000000000000E2 -:104DA00002000F002E8271000000000000000000D1 -:104DB00002000F002F8271000000000000000000C0 -:104DC00002000F00308271000000000000000000AF -:104DD00002000F003182710000000000000000009E -:104DE00002000F003282710000000000000000008D -:104DF00002000F003382710000000000000000007C -:104E000002000F003482710000000000000000006A -:104E100002000F0035827100000000000000000059 -:104E200002000F0036827100000000000000000048 -:104E300002000F0037827100000000000000000037 -:104E400002000F0038827100000000000000000026 -:104E500002000F0039827100000000000000000015 -:104E600002000F003A827100000000000000000004 -:104E700002000F003B8271000000000000000000F3 -:104E800002000F003C8271000000000000000000E2 -:104E900002000F003D8271000000000000000000D1 -:104EA00002000F003E8271000000000000000000C0 -:104EB00002000F003F8271000000000000000000AF -:104EC00002000F004082710000000000000000009E -:104ED00002000F004182710000000000000000008D -:104EE00002000F004282710000000000000000007C -:104EF00002000F004382710000000000000000006B -:104F000002000F0044827100000000000000000059 -:104F100002000F0045827100000000000000000048 -:104F200002000F0046827100000000000000000037 -:104F300002000F0047827100000000000000000026 -:104F400002000F0048827100000000000000000015 -:104F500002000F0049827100000000000000000004 -:104F600002000F004A8271000000000000000000F3 -:104F700002000F004B8271000000000000000000E2 -:104F800002000F004C8271000000000000000000D1 -:104F900002000F004D8271000000000000000000C0 -:104FA00002000F004E8271000000000000000000AF -:104FB00002000F004F82710000000000000000009E -:104FC00002000F005082710000000000000000008D -:104FD00002000F005182710000000000000000007C -:104FE00002000F005282710000000000000000006B -:104FF00002000F005382710000000000000000005A -:1050000002000F0054827100000000000000000048 -:1050100002000F0055827100000000000000000037 -:1050200002000F0056827100000000000000000026 -:1050300002000F0057827100000000000000000015 -:1050400002000F0058827100000000000000000004 -:1050500002000F00598271000000000000000000F3 -:1050600002000F005A8271000000000000000000E2 -:1050700002000F005B8271000000000000000000D1 -:1050800002000F005C8271000000000000000000C0 -:1050900002000F005D8271000000000000000000AF -:1050A00002000F005E82710000000000000000009E -:1050B00002000F005F82710000000000000000008D -:1050C00002000F006082710000000000000000007C -:1050D00002000F006182710000000000000000006B -:1050E00002000F006282710000000000000000005A -:1050F00002000F0063827100000000000000000049 -:1051000002000F0064827100000000000000000037 -:1051100002000F0065827100000000000000000026 -:1051200002000F0066827100000000000000000015 -:1051300002000F0067827100000000000000000004 -:1051400002000F00688271000000000000000000F3 -:1051500002000F00698271000000000000000000E2 -:1051600002000F006A8271000000000000000000D1 -:1051700002000F006B8271000000000000000000C0 -:1051800002000F006C8271000000000000000000AF -:1051900002000F006D82710000000000000000009E -:1051A00002000F006E82710000000000000000008D -:1051B00002000F006F82710000000000000000007C -:1051C00002000F007082710000000000000000006B -:1051D00002000F007182710000000000000000005A -:1051E00002000F0072827100000000000000000049 -:1051F00002000F0073827100000000000000000038 -:1052000002000F0074827100000000000000000026 -:1052100002000F0075827100000000000000000015 -:1052200002000F0076827100000000000000000004 -:1052300002000F00778271000000000000000000F3 -:1052400002000F00788271000000000000000000E2 -:1052500002000F00798271000000000000000000D1 -:1052600002000F007A8271000000000000000000C0 -:1052700002000F007B8271000000000000000000AF -:1052800002000F007C82710000000000000000009E -:1052900002000F007D82710000000000000000008D -:1052A00002000F007E82710000000000000000007C -:1052B00002000F007F82710000000000000000006B -:1052C00002000F008082710000000000000000005A -:1052D00002000F0081827100000000000000000049 -:1052E00002000F0082827100000000000000000038 -:1052F00002000F0083827100000000000000000027 -:1053000002000F0084827100000000000000000015 -:1053100002000F0085827100000000000000000004 -:1053200002000F00868271000000000000000000F3 -:1053300002000F00878271000000000000000000E2 -:1053400002000F00888271000000000000000000D1 -:1053500002000F00898271000000000000000000C0 -:1053600002000F008A8271000000000000000000AF -:1053700002000F008B82710000000000000000009E -:1053800002000F008C82710000000000000000008D -:1053900002000F008D82710000000000000000007C -:1053A00002000F008E82710000000000000000006B -:1053B00002000F008F82710000000000000000005A -:1053C00002000F0090827100000000000000000049 -:1053D00002000F0091827100000000000000000038 -:1053E00002000F0092827100000000000000000027 -:1053F00002000F0093827100000000000000000016 -:1054000002000F0094827100000000000000000004 -:1054100002000F00958271000000000000000000F3 -:1054200002000F00968271000000000000000000E2 -:1054300002000F00978271000000000000000000D1 -:1054400002000F00988271000000000000000000C0 -:1054500002000F00998271000000000000000000AF -:1054600002000F009A82710000000000000000009E -:1054700002000F009B82710000000000000000008D -:1054800002000F009C82710000000000000000007C -:1054900002000F009D82710000000000000000006B -:1054A00002000F009E82710000000000000000005A -:1054B00002000F009F827100000000000000000049 -:1054C00002000F00A0827100000000000000000038 -:1054D00002000F00A1827100000000000000000027 -:1054E00002000F00A2827100000000000000000016 -:1054F00002000F00A3827100000000000000000005 -:1055000002000F00A48271000000000000000000F3 -:1055100002000F00A58271000000000000000000E2 -:1055200002000F00A68271000000000000000000D1 -:1055300002000F00A78271000000000000000000C0 -:1055400002000F00A88271000000000000000000AF -:1055500002000F00A982710000000000000000009E -:1055600002000F00AA82710000000000000000008D -:1055700002000F00AB82710000000000000000007C -:1055800002000F00AC82710000000000000000006B -:1055900002000F00AD82710000000000000000005A -:1055A00002000F00AE827100000000000000000049 -:1055B00002000F00AF827100000000000000000038 -:1055C00002000F00B0827100000000000000000027 -:1055D00002000F00B1827100000000000000000016 -:1055E00002000F00B2827100000000000000000005 -:1055F00002000F00B38271000000000000000000F4 -:1056000002000F00B48271000000000000000000E2 -:1056100002000F00B58271000000000000000000D1 -:1056200002000F00B68271000000000000000000C0 -:1056300002000F00B78271000000000000000000AF -:1056400002000F00B882710000000000000000009E -:1056500002000F00B982710000000000000000008D -:1056600002000F00BA82710000000000000000007C -:1056700002000F00BB82710000000000000000006B -:1056800002000F00BC82710000000000000000005A -:1056900002000F00BD827100000000000000000049 -:1056A00002000F00BE827100000000000000000038 -:1056B00002000F00BF827100000000000000000027 -:1056C00002000F00C0827100000000000000000016 -:1056D00002000F00C1827100000000000000000005 -:1056E00002000F00C28271000000000000000000F4 -:1056F00002000F00C38271000000000000000000E3 -:1057000002000F00C48271000000000000000000D1 -:1057100002000F00C58271000000000000000000C0 -:1057200002000F00C68271000000000000000000AF -:1057300002000F00C782710000000000000000009E -:1057400002000F00C882710000000000000000008D -:1057500002000F00C982710000000000000000007C -:1057600002000F00CA82710000000000000000006B -:1057700002000F00CB82710000000000000000005A -:1057800002000F00CC827100000000000000000049 -:1057900002000F00CD827100000000000000000038 -:1057A00002000F00CE827100000000000000000027 -:1057B00002000F00CF827100000000000000000016 -:1057C00002000F00D0827100000000000000000005 -:1057D00002000F00D18271000000000000000000F4 -:1057E00002000F00D28271000000000000000000E3 -:1057F00002000F00D38271000000000000000000D2 -:1058000002000F00D48271000000000000000000C0 -:1058100002000F00D58271000000000000000000AF -:1058200002000F00D682710000000000000000009E -:1058300002000F00D782710000000000000000008D -:1058400002000F00D882710000000000000000007C -:1058500002000F00D982710000000000000000006B -:1058600002000F00DA82710000000000000000005A -:1058700002000F00DB827100000000000000000049 -:1058800002000F00DC827100000000000000000038 -:1058900002000F00DD827100000000000000000027 -:1058A00002000F00DE827100000000000000000016 -:1058B00002000F00DF827100000000000000000005 -:1058C00002000F00E08271000000000000000000F4 -:1058D00002000F00E18271000000000000000000E3 -:1058E00002000F00E28271000000000000000000D2 -:1058F00002000F00E38271000000000000000000C1 -:1059000002000F00E48271000000000000000000AF -:1059100002000F00E582710000000000000000009E -:1059200002000F00E682710000000000000000008D -:1059300002000F00E782710000000000000000007C -:1059400002000F00E882710000000000000000006B -:1059500002000F00E982710000000000000000005A -:1059600002000F00EA827100000000000000000049 -:1059700002000F00EB827100000000000000000038 -:1059800002000F00EC827100000000000000000027 -:1059900002000F00ED827100000000000000000016 -:1059A00002000F00EE827100000000000000000005 -:1059B00002000F00EF8271000000000000000000F4 -:1059C00002000F00F08271000000000000000000E3 -:1059D00002000F00F18271000000000000000000D2 -:1059E00002000F00F28271000000000000000000C1 -:1059F00002000F00F38271000000000000000000B0 -:105A000002000F00F482710000000000000000009E -:105A100002000F00F582710000000000000000008D -:105A200002000F00F682710000000000000000007C -:105A300002000F00F782710000000000000000006B -:105A400002000F00F882710000000000000000005A -:105A500002000F00F9827100000000000000000049 -:105A600002000F00FA827100000000000000000038 -:105A700002000F00FB827100000000000000000027 -:105A800002000F00FC827100000000000000000016 -:105A900002000F00FD827100000000000000000005 -:105AA00002000F00FE8271000000000000000000F4 -:105AB00002000F00FF8271000000000000000000E3 -:105AC00002000F00008371000000000000000000D1 -:105AD00002000F00018371000000000000000000C0 -:105AE00002000F00028371000000000000000000AF -:105AF00002000F000383710000000000000000009E -:105B000002000F000483710000000000000000008C -:105B100002000F000583710000000000000000007B -:105B200002000F000683710000000000000000006A -:105B300002000F0007837100000000000000000059 -:105B400002000F0008837100000000000000000048 -:105B500002000F0009837100000000000000000037 -:105B600002000F000A837100000000000000000026 -:105B700002000F000B837100000000000000000015 -:105B800002000F000C837100000000000000000004 -:105B900002000F000D8371000000000000000000F3 -:105BA00002000F000E8371000000000000000000E2 -:105BB00002000F000F8371000000000000000000D1 -:105BC00002000F00108371000000000000000000C0 -:105BD00002000F00118371000000000000000000AF -:105BE00002000F001283710000000000000000009E -:105BF00002000F001383710000000000000000008D -:105C000002000F001483710000000000000000007B -:105C100002000F001583710000000000000000006A -:105C200002000F0016837100000000000000000059 -:105C300002000F0017837100000000000000000048 -:105C400002000F0018837100000000000000000037 -:105C500002000F0019837100000000000000000026 -:105C600002000F001A837100000000000000000015 -:105C700002000F001B837100000000000000000004 -:105C800002000F001C8371000000000000000000F3 -:105C900002000F001D8371000000000000000000E2 -:105CA00002000F001E8371000000000000000000D1 -:105CB00002000F001F8371000000000000000000C0 -:105CC00002000F00208371000000000000000000AF -:105CD00002000F002183710000000000000000009E -:105CE00002000F002283710000000000000000008D -:105CF00002000F002383710000000000000000007C -:105D000002000F002483710000000000000000006A -:105D100002000F0025837100000000000000000059 -:105D200002000F0026837100000000000000000048 -:105D300002000F0027837100000000000000000037 -:105D400002000F0028837100000000000000000026 -:105D500002000F0029837100000000000000000015 -:105D600002000F002A837100000000000000000004 -:105D700002000F002B8371000000000000000000F3 -:105D800002000F002C8371000000000000000000E2 -:105D900002000F002D8371000000000000000000D1 -:105DA00002000F002E8371000000000000000000C0 -:105DB00002000F002F8371000000000000000000AF -:105DC00002000F003083710000000000000000009E -:105DD00002000F003183710000000000000000008D -:105DE00002000F003283710000000000000000007C -:105DF00002000F003383710000000000000000006B -:105E000002000F0034837100000000000000000059 -:105E100002000F0035837100000000000000000048 -:105E200002000F0036837100000000000000000037 -:105E300002000F0037837100000000000000000026 -:105E400002000F0038837100000000000000000015 -:105E500002000F0039837100000000000000000004 -:105E600002000F003A8371000000000000000000F3 -:105E700002000F003B8371000000000000000000E2 -:105E800002000F003C8371000000000000000000D1 -:105E900002000F003D8371000000000000000000C0 -:105EA00002000F003E8371000000000000000000AF -:105EB00002000F003F83710000000000000000009E -:105EC00002000F004083710000000000000000008D -:105ED00002000F004183710000000000000000007C -:105EE00002000F004283710000000000000000006B -:105EF00002000F004383710000000000000000005A -:105F000002000F0044837100000000000000000048 -:105F100002000F0045837100000000000000000037 -:105F200002000F0046837100000000000000000026 -:105F300002000F0047837100000000000000000015 -:105F400002000F0048837100000000000000000004 -:105F500002000F00498371000000000000000000F3 -:105F600002000F004A8371000000000000000000E2 -:105F700002000F004B8371000000000000000000D1 -:105F800002000F004C8371000000000000000000C0 -:105F900002000F004D8371000000000000000000AF -:105FA00002000F004E83710000000000000000009E -:105FB00002000F004F83710000000000000000008D -:105FC00002000F005083710000000000000000007C -:105FD00002000F005183710000000000000000006B -:105FE00002000F005283710000000000000000005A -:105FF00002000F0053837100000000000000000049 -:1060000002000F0054837100000000000000000037 -:1060100002000F0055837100000000000000000026 -:1060200002000F0056837100000000000000000015 -:1060300002000F0057837100000000000000000004 -:1060400002000F00588371000000000000000000F3 -:1060500002000F00598371000000000000000000E2 -:1060600002000F005A8371000000000000000000D1 -:1060700002000F005B8371000000000000000000C0 -:1060800002000F005C8371000000000000000000AF -:1060900002000F005D83710000000000000000009E -:1060A00002000F005E83710000000000000000008D -:1060B00002000F005F83710000000000000000007C -:1060C00002000F006083710000000000000000006B -:1060D00002000F006183710000000000000000005A -:1060E00002000F0062837100000000000000000049 -:1060F00002000F0063837100000000000000000038 -:1061000002000F0064837100000000000000000026 -:1061100002000F0065837100000000000000000015 -:1061200002000F0066837100000000000000000004 -:1061300002000F00678371000000000000000000F3 -:1061400002000F00688371000000000000000000E2 -:1061500002000F00698371000000000000000000D1 -:1061600002000F006A8371000000000000000000C0 -:1061700002000F006B8371000000000000000000AF -:1061800002000F006C83710000000000000000009E -:1061900002000F006D83710000000000000000008D -:1061A00002000F006E83710000000000000000007C -:1061B00002000F006F83710000000000000000006B -:1061C00002000F007083710000000000000000005A -:1061D00002000F0071837100000000000000000049 -:1061E00002000F0072837100000000000000000038 -:1061F00002000F0073837100000000000000000027 -:1062000002000F0074837100000000000000000015 -:1062100002000F0075837100000000000000000004 -:1062200002000F00768371000000000000000000F3 -:1062300002000F00778371000000000000000000E2 -:1062400002000F00788371000000000000000000D1 -:1062500002000F00798371000000000000000000C0 -:1062600002000F007A8371000000000000000000AF -:1062700002000F007B83710000000000000000009E -:1062800002000F007C83710000000000000000008D -:1062900002000F007D83710000000000000000007C -:1062A00002000F007E83710000000000000000006B -:1062B00002000F007F83710000000000000000005A -:1062C00002000F0080837100000000000000000049 -:1062D00002000F0081837100000000000000000038 -:1062E00002000F0082837100000000000000000027 -:1062F00002000F0083837100000000000000000016 -:1063000002000F0084837100000000000000000004 -:1063100002000F00858371000000000000000000F3 -:1063200002000F00868371000000000000000000E2 -:1063300002000F00878371000000000000000000D1 -:1063400002000F00888371000000000000000000C0 -:1063500002000F00898371000000000000000000AF -:1063600002000F008A83710000000000000000009E -:1063700002000F008B83710000000000000000008D -:1063800002000F008C83710000000000000000007C -:1063900002000F008D83710000000000000000006B -:1063A00002000F008E83710000000000000000005A -:1063B00002000F008F837100000000000000000049 -:1063C00002000F0090837100000000000000000038 -:1063D00002000F0091837100000000000000000027 -:1063E00002000F0092837100000000000000000016 -:1063F00002000F0093837100000000000000000005 -:1064000002000F00948371000000000000000000F3 -:1064100002000F00958371000000000000000000E2 -:1064200002000F00968371000000000000000000D1 -:1064300002000F00978371000000000000000000C0 -:1064400002000F00988371000000000000000000AF -:1064500002000F009983710000000000000000009E -:1064600002000F009A83710000000000000000008D -:1064700002000F009B83710000000000000000007C -:1064800002000F009C83710000000000000000006B -:1064900002000F009D83710000000000000000005A -:1064A00002000F009E837100000000000000000049 -:1064B00002000F009F837100000000000000000038 -:1064C00002000F00A0837100000000000000000027 -:1064D00002000F00A1837100000000000000000016 -:1064E00002000F00A2837100000000000000000005 -:1064F00002000F00A38371000000000000000000F4 -:1065000002000F00A48371000000000000000000E2 -:1065100002000F00A58371000000000000000000D1 -:1065200002000F00A68371000000000000000000C0 -:1065300002000F00A78371000000000000000000AF -:1065400002000F00A883710000000000000000009E -:1065500002000F00A983710000000000000000008D -:1065600002000F00AA83710000000000000000007C -:1065700002000F00AB83710000000000000000006B -:1065800002000F00AC83710000000000000000005A -:1065900002000F00AD837100000000000000000049 -:1065A00002000F00AE837100000000000000000038 -:1065B00002000F00AF837100000000000000000027 -:1065C00002000F00B0837100000000000000000016 -:1065D00002000F00B1837100000000000000000005 -:1065E00002000F00B28371000000000000000000F4 -:1065F00002000F00B38371000000000000000000E3 -:1066000002000F00B48371000000000000000000D1 -:1066100002000F00B58371000000000000000000C0 -:1066200002000F00B68371000000000000000000AF -:1066300002000F00B783710000000000000000009E -:1066400002000F00B883710000000000000000008D -:1066500002000F00B983710000000000000000007C -:1066600002000F00BA83710000000000000000006B -:1066700002000F00BB83710000000000000000005A -:1066800002000F00BC837100000000000000000049 -:1066900002000F00BD837100000000000000000038 -:1066A00002000F00BE837100000000000000000027 -:1066B00002000F00BF837100000000000000000016 -:1066C00002000F00C0837100000000000000000005 -:1066D00002000F00C18371000000000000000000F4 -:1066E00002000F00C28371000000000000000000E3 -:1066F00002000F00C38371000000000000000000D2 -:1067000002000F00C48371000000000000000000C0 -:1067100002000F00C58371000000000000000000AF -:1067200002000F00C683710000000000000000009E -:1067300002000F00C783710000000000000000008D -:1067400002000F00C883710000000000000000007C -:1067500002000F00C983710000000000000000006B -:1067600002000F00CA83710000000000000000005A -:1067700002000F00CB837100000000000000000049 -:1067800002000F00CC837100000000000000000038 -:1067900002000F00CD837100000000000000000027 -:1067A00002000F00CE837100000000000000000016 -:1067B00002000F00CF837100000000000000000005 -:1067C00002000F00D08371000000000000000000F4 -:1067D00002000F00D18371000000000000000000E3 -:1067E00002000F00D28371000000000000000000D2 -:1067F00002000F00D38371000000000000000000C1 -:1068000002000F00D48371000000000000000000AF -:1068100002000F00D583710000000000000000009E -:1068200002000F00D683710000000000000000008D -:1068300002000F00D783710000000000000000007C -:1068400002000F00D883710000000000000000006B -:1068500002000F00D983710000000000000000005A -:1068600002000F00DA837100000000000000000049 -:1068700002000F00DB837100000000000000000038 -:1068800002000F00DC837100000000000000000027 -:1068900002000F00DD837100000000000000000016 -:1068A00002000F00DE837100000000000000000005 -:1068B00002000F00DF8371000000000000000000F4 -:1068C00002000F00E08371000000000000000000E3 -:1068D00002000F00E18371000000000000000000D2 -:1068E00002000F00E28371000000000000000000C1 -:1068F00002000F00E38371000000000000000000B0 -:1069000002000F00E483710000000000000000009E -:1069100002000F00E583710000000000000000008D -:1069200002000F00E683710000000000000000007C -:1069300002000F00E783710000000000000000006B -:1069400002000F00E883710000000000000000005A -:1069500002000F00E9837100000000000000000049 -:1069600002000F00EA837100000000000000000038 -:1069700002000F00EB837100000000000000000027 -:1069800002000F00EC837100000000000000000016 -:1069900002000F00ED837100000000000000000005 -:1069A00002000F00EE8371000000000000000000F4 -:1069B00002000F00EF8371000000000000000000E3 -:1069C00002000F00F08371000000000000000000D2 -:1069D00002000F00F18371000000000000000000C1 -:1069E00002000F00F28371000000000000000000B0 -:1069F00002000F00F383710000000000000000009F -:106A000002000F00F483710000000000000000008D -:106A100002000F00F583710000000000000000007C -:106A200002000F00F683710000000000000000006B -:106A300002000F00F783710000000000000000005A -:106A400002000F00F8837100000000000000000049 -:106A500002000F00F9837100000000000000000038 -:106A600002000F00FA837100000000000000000027 -:106A700002000F00FB837100000000000000000016 -:106A800002000F00FC837100000000000000000005 -:106A900002000F00FD8371000000000000000000F4 -:106AA00002000F00FE8371000000000000000000E3 -:106AB00002000F00FF8371000000000000000000D2 -:106AC00002000F00008471000000000000000000C0 -:106AD00002000F00018471000000000000000000AF -:106AE00002000F000284710000000000000000009E -:106AF00002000F000384710000000000000000008D -:106B000002000F000484710000000000000000007B -:106B100002000F000584710000000000000000006A -:106B200002000F0006847100000000000000000059 -:106B300002000F0007847100000000000000000048 -:106B400002000F0008847100000000000000000037 -:106B500002000F0009847100000000000000000026 -:106B600002000F000A847100000000000000000015 -:106B700002000F000B847100000000000000000004 -:106B800002000F000C8471000000000000000000F3 -:106B900002000F000D8471000000000000000000E2 -:106BA00002000F000E8471000000000000000000D1 -:106BB00002000F000F8471000000000000000000C0 -:106BC00002000F00108471000000000000000000AF -:106BD00002000F001184710000000000000000009E -:106BE00002000F001284710000000000000000008D -:106BF00002000F001384710000000000000000007C -:106C000002000F001484710000000000000000006A -:106C100002000F0015847100000000000000000059 -:106C200002000F0016847100000000000000000048 -:106C300002000F0017847100000000000000000037 -:106C400002000F0018847100000000000000000026 -:106C500002000F0019847100000000000000000015 -:106C600002000F001A847100000000000000000004 -:106C700002000F001B8471000000000000000000F3 -:106C800002000F001C8471000000000000000000E2 -:106C900002000F001D8471000000000000000000D1 -:106CA00002000F001E8471000000000000000000C0 -:106CB00002000F001F8471000000000000000000AF -:106CC00002000F002084710000000000000000009E -:106CD00002000F002184710000000000000000008D -:106CE00002000F002284710000000000000000007C -:106CF00002000F002384710000000000000000006B -:106D000002000F0024847100000000000000000059 -:106D100002000F0025847100000000000000000048 -:106D200002000F0026847100000000000000000037 -:106D300002000F0027847100000000000000000026 -:106D400002000F0028847100000000000000000015 -:106D500002000F0029847100000000000000000004 -:106D600002000F002A8471000000000000000000F3 -:106D700002000F002B8471000000000000000000E2 -:106D800002000F002C8471000000000000000000D1 -:106D900002000F002D8471000000000000000000C0 -:106DA00002000F002E8471000000000000000000AF -:106DB00002000F002F84710000000000000000009E -:106DC00002000F003084710000000000000000008D -:106DD00002000F003184710000000000000000007C -:106DE00002000F003284710000000000000000006B -:106DF00002000F003384710000000000000000005A -:106E000002000F0034847100000000000000000048 -:106E100002000F0035847100000000000000000037 -:106E200002000F0036847100000000000000000026 -:106E300002000F0037847100000000000000000015 -:106E400002000F0038847100000000000000000004 -:106E500002000F00398471000000000000000000F3 -:106E600002000F003A8471000000000000000000E2 -:106E700002000F003B8471000000000000000000D1 -:106E800002000F003C8471000000000000000000C0 -:106E900002000F003D8471000000000000000000AF -:106EA00002000F003E84710000000000000000009E -:106EB00002000F003F84710000000000000000008D -:106EC00002000F004084710000000000000000007C -:106ED00002000F004184710000000000000000006B -:106EE00002000F004284710000000000000000005A -:106EF00002000F0043847100000000000000000049 -:106F000002000F0044847100000000000000000037 -:106F100002000F0045847100000000000000000026 -:106F200002000F0046847100000000000000000015 -:106F300002000F0047847100000000000000000004 -:106F400002000F00488471000000000000000000F3 -:106F500002000F00498471000000000000000000E2 -:106F600002000F004A8471000000000000000000D1 -:106F700002000F004B8471000000000000000000C0 -:106F800002000F004C8471000000000000000000AF -:106F900002000F004D84710000000000000000009E -:106FA00002000F004E84710000000000000000008D -:106FB00002000F004F84710000000000000000007C -:106FC00002000F005084710000000000000000006B -:106FD00002000F005184710000000000000000005A -:106FE00002000F0052847100000000000000000049 -:106FF00002000F0053847100000000000000000038 -:1070000002000F0054847100000000000000000026 -:1070100002000F0055847100000000000000000015 -:1070200002000F0056847100000000000000000004 -:1070300002000F00578471000000000000000000F3 -:1070400002000F00588471000000000000000000E2 -:1070500002000F00598471000000000000000000D1 -:1070600002000F005A8471000000000000000000C0 -:1070700002000F005B8471000000000000000000AF -:1070800002000F005C84710000000000000000009E -:1070900002000F005D84710000000000000000008D -:1070A00002000F005E84710000000000000000007C -:1070B00002000F005F84710000000000000000006B -:1070C00002000F006084710000000000000000005A -:1070D00002000F0061847100000000000000000049 -:1070E00002000F0062847100000000000000000038 -:1070F00002000F0063847100000000000000000027 -:1071000002000F0064847100000000000000000015 -:1071100002000F0065847100000000000000000004 -:1071200002000F00668471000000000000000000F3 -:1071300002000F00678471000000000000000000E2 -:1071400002000F00688471000000000000000000D1 -:1071500002000F00698471000000000000000000C0 -:1071600002000F006A8471000000000000000000AF -:1071700002000F006B84710000000000000000009E -:1071800002000F006C84710000000000000000008D -:1071900002000F006D84710000000000000000007C -:1071A00002000F006E84710000000000000000006B -:1071B00002000F006F84710000000000000000005A -:1071C00002000F0070847100000000000000000049 -:1071D00002000F0071847100000000000000000038 -:1071E00002000F0072847100000000000000000027 -:1071F00002000F0073847100000000000000000016 -:1072000002000F0074847100000000000000000004 -:1072100002000F00758471000000000000000000F3 -:1072200002000F00768471000000000000000000E2 -:1072300002000F00778471000000000000000000D1 -:1072400002000F00788471000000000000000000C0 -:1072500002000F00798471000000000000000000AF -:1072600002000F007A84710000000000000000009E -:1072700002000F007B84710000000000000000008D -:1072800002000F007C84710000000000000000007C -:1072900002000F007D84710000000000000000006B -:1072A00002000F007E84710000000000000000005A -:1072B00002000F007F847100000000000000000049 -:1072C00002000F0080847100000000000000000038 -:1072D00002000F0081847100000000000000000027 -:1072E00002000F0082847100000000000000000016 -:1072F00002000F0083847100000000000000000005 -:1073000002000F00848471000000000000000000F3 -:1073100002000F00858471000000000000000000E2 -:1073200002000F00868471000000000000000000D1 -:1073300002000F00878471000000000000000000C0 -:1073400002000F00888471000000000000000000AF -:1073500002000F008984710000000000000000009E -:1073600002000F008A84710000000000000000008D -:1073700002000F008B84710000000000000000007C -:1073800002000F008C84710000000000000000006B -:1073900002000F008D84710000000000000000005A -:1073A00002000F008E847100000000000000000049 -:1073B00002000F008F847100000000000000000038 -:1073C00002000F0090847100000000000000000027 -:1073D00002000F0091847100000000000000000016 -:1073E00002000F0092847100000000000000000005 -:1073F00002000F00938471000000000000000000F4 -:1074000002000F00948471000000000000000000E2 -:1074100002000F00958471000000000000000000D1 -:1074200002000F00968471000000000000000000C0 -:1074300002000F00978471000000000000000000AF -:1074400002000F009884710000000000000000009E -:1074500002000F009984710000000000000000008D -:1074600002000F009A84710000000000000000007C -:1074700002000F009B84710000000000000000006B -:1074800002000F009C84710000000000000000005A -:1074900002000F009D847100000000000000000049 -:1074A00002000F009E847100000000000000000038 -:1074B00002000F009F847100000000000000000027 -:1074C00002000F00A0847100000000000000000016 -:1074D00002000F00A1847100000000000000000005 -:1074E00002000F00A28471000000000000000000F4 -:1074F00002000F00A38471000000000000000000E3 -:1075000002000F00A48471000000000000000000D1 -:1075100002000F00A58471000000000000000000C0 -:1075200002000F00A68471000000000000000000AF -:1075300002000F00A784710000000000000000009E -:1075400002000F00A884710000000000000000008D -:1075500002000F00A984710000000000000000007C -:1075600002000F00AA84710000000000000000006B -:1075700002000F00AB84710000000000000000005A -:1075800002000F00AC847100000000000000000049 -:1075900002000F00AD847100000000000000000038 -:1075A00002000F00AE847100000000000000000027 -:1075B00002000F00AF847100000000000000000016 -:1075C00002000F00B0847100000000000000000005 -:1075D00002000F00B18471000000000000000000F4 -:1075E00002000F00B28471000000000000000000E3 -:1075F00002000F00B38471000000000000000000D2 -:1076000002000F00B48471000000000000000000C0 -:1076100002000F00B58471000000000000000000AF -:1076200002000F00B684710000000000000000009E -:1076300002000F00B784710000000000000000008D -:1076400002000F00B884710000000000000000007C -:1076500002000F00B984710000000000000000006B -:1076600002000F00BA84710000000000000000005A -:1076700002000F00BB847100000000000000000049 -:1076800002000F00BC847100000000000000000038 -:1076900002000F00BD847100000000000000000027 -:1076A00002000F00BE847100000000000000000016 -:1076B00002000F00BF847100000000000000000005 -:1076C00002000F00C08471000000000000000000F4 -:1076D00002000F00C18471000000000000000000E3 -:1076E00002000F00C28471000000000000000000D2 -:1076F00002000F00C38471000000000000000000C1 -:1077000002000F00C48471000000000000000000AF -:1077100002000F00C584710000000000000000009E -:1077200002000F00C684710000000000000000008D -:1077300002000F00C784710000000000000000007C -:1077400002000F00C884710000000000000000006B -:1077500002000F00C984710000000000000000005A -:1077600002000F00CA847100000000000000000049 -:1077700002000F00CB847100000000000000000038 -:1077800002000F00CC847100000000000000000027 -:1077900002000F00CD847100000000000000000016 -:1077A00002000F00CE847100000000000000000005 -:1077B00002000F00CF8471000000000000000000F4 -:1077C00002000F00D08471000000000000000000E3 -:1077D00002000F00D18471000000000000000000D2 -:1077E00002000F00D28471000000000000000000C1 -:1077F00002000F00D38471000000000000000000B0 -:1078000002000F00D484710000000000000000009E -:1078100002000F00D584710000000000000000008D -:1078200002000F00D684710000000000000000007C -:1078300002000F00D784710000000000000000006B -:1078400002000F00D884710000000000000000005A -:1078500002000F00D9847100000000000000000049 -:1078600002000F00DA847100000000000000000038 -:1078700002000F00DB847100000000000000000027 -:1078800002000F00DC847100000000000000000016 -:1078900002000F00DD847100000000000000000005 -:1078A00002000F00DE8471000000000000000000F4 -:1078B00002000F00DF8471000000000000000000E3 -:1078C00002000F00E08471000000000000000000D2 -:1078D00002000F00E18471000000000000000000C1 -:1078E00002000F00E28471000000000000000000B0 -:1078F00002000F00E384710000000000000000009F -:1079000002000F00E484710000000000000000008D -:1079100002000F00E584710000000000000000007C -:1079200002000F00E684710000000000000000006B -:1079300002000F00E784710000000000000000005A -:1079400002000F00E8847100000000000000000049 -:1079500002000F00E9847100000000000000000038 -:1079600002000F00EA847100000000000000000027 -:1079700002000F00EB847100000000000000000016 -:1079800002000F00EC847100000000000000000005 -:1079900002000F00ED8471000000000000000000F4 -:1079A00002000F00EE8471000000000000000000E3 -:1079B00002000F00EF8471000000000000000000D2 -:1079C00002000F00F08471000000000000000000C1 -:1079D00002000F00F18471000000000000000000B0 -:1079E00002000F00F284710000000000000000009F -:1079F00002000F00F384710000000000000000008E -:107A000002000F00F484710000000000000000007C -:107A100002000F00F584710000000000000000006B -:107A200002000F00F684710000000000000000005A -:107A300002000F00F7847100000000000000000049 -:107A400002000F00F8847100000000000000000038 -:107A500002000F00F9847100000000000000000027 -:107A600002000F00FA847100000000000000000016 -:107A700002000F00FB847100000000000000000005 -:107A800002000F00FC8471000000000000000000F4 -:107A900002000F00FD8471000000000000000000E3 -:107AA00002000F00FE8471000000000000000000D2 -:107AB00002000F00FF8471000000000000000000C1 -:107AC00002000F00008571000000000000000000AF -:107AD00002000F000185710000000000000000009E -:107AE00002000F000285710000000000000000008D -:107AF00002000F000385710000000000000000007C -:107B000002000F000485710000000000000000006A -:107B100002000F0005857100000000000000000059 -:107B200002000F0006857100000000000000000048 -:107B300002000F0007857100000000000000000037 -:107B400002000F0008857100000000000000000026 -:107B500002000F0009857100000000000000000015 -:107B600002000F000A857100000000000000000004 -:107B700002000F000B8571000000000000000000F3 -:107B800002000F000C8571000000000000000000E2 -:107B900002000F000D8571000000000000000000D1 -:107BA00002000F000E8571000000000000000000C0 -:107BB00002000F000F8571000000000000000000AF -:107BC00002000F001085710000000000000000009E -:107BD00002000F001185710000000000000000008D -:107BE00002000F001285710000000000000000007C -:107BF00002000F001385710000000000000000006B -:107C000002000F0014857100000000000000000059 -:107C100002000F0015857100000000000000000048 -:107C200002000F0016857100000000000000000037 -:107C300002000F0017857100000000000000000026 -:107C400002000F0018857100000000000000000015 -:107C500002000F0019857100000000000000000004 -:107C600002000F001A8571000000000000000000F3 -:107C700002000F001B8571000000000000000000E2 -:107C800002000F001C8571000000000000000000D1 -:107C900002000F001D8571000000000000000000C0 -:107CA00002000F001E8571000000000000000000AF -:107CB00002000F001F85710000000000000000009E -:107CC00002000F002085710000000000000000008D -:107CD00002000F002185710000000000000000007C -:107CE00002000F002285710000000000000000006B -:107CF00002000F002385710000000000000000005A -:107D000002000F0024857100000000000000000048 -:107D100002000F0025857100000000000000000037 -:107D200002000F0026857100000000000000000026 -:107D300002000F0027857100000000000000000015 -:107D400002000F0028857100000000000000000004 -:107D500002000F00298571000000000000000000F3 -:107D600002000F002A8571000000000000000000E2 -:107D700002000F002B8571000000000000000000D1 -:107D800002000F002C8571000000000000000000C0 -:107D900002000F002D8571000000000000000000AF -:107DA00002000F002E85710000000000000000009E -:107DB00002000F002F85710000000000000000008D -:107DC00002000F003085710000000000000000007C -:107DD00002000F003185710000000000000000006B -:107DE00002000F003285710000000000000000005A -:107DF00002000F0033857100000000000000000049 -:107E000002000F0034857100000000000000000037 -:107E100002000F0035857100000000000000000026 -:107E200002000F0036857100000000000000000015 -:107E300002000F0037857100000000000000000004 -:107E400002000F00388571000000000000000000F3 -:107E500002000F00398571000000000000000000E2 -:107E600002000F003A8571000000000000000000D1 -:107E700002000F003B8571000000000000000000C0 -:107E800002000F003C8571000000000000000000AF -:107E900002000F003D85710000000000000000009E -:107EA00002000F003E85710000000000000000008D -:107EB00002000F003F85710000000000000000007C -:107EC00002000F004085710000000000000000006B -:107ED00002000F004185710000000000000000005A -:107EE00002000F0042857100000000000000000049 -:107EF00002000F0043857100000000000000000038 -:107F000002000F0044857100000000000000000026 -:107F100002000F0045857100000000000000000015 -:107F200002000F0046857100000000000000000004 -:107F300002000F00478571000000000000000000F3 -:107F400002000F00488571000000000000000000E2 -:107F500002000F00498571000000000000000000D1 -:107F600002000F004A8571000000000000000000C0 -:107F700002000F004B8571000000000000000000AF -:107F800002000F004C85710000000000000000009E -:107F900002000F004D85710000000000000000008D -:107FA00002000F004E85710000000000000000007C -:107FB00002000F004F85710000000000000000006B -:107FC00002000F005085710000000000000000005A -:107FD00002000F0051857100000000000000000049 -:107FE00002000F0052857100000000000000000038 -:107FF00002000F0053857100000000000000000027 -:1080000002000F0054857100000000000000000015 -:1080100002000F0055857100000000000000000004 -:1080200002000F00568571000000000000000000F3 -:1080300002000F00578571000000000000000000E2 -:1080400002000F00588571000000000000000000D1 -:1080500002000F00598571000000000000000000C0 -:1080600002000F005A8571000000000000000000AF -:1080700002000F005B85710000000000000000009E -:1080800002000F005C85710000000000000000008D -:1080900002000F005D85710000000000000000007C -:1080A00002000F005E85710000000000000000006B -:1080B00002000F005F85710000000000000000005A -:1080C00002000F0060857100000000000000000049 -:1080D00002000F0061857100000000000000000038 -:1080E00002000F0062857100000000000000000027 -:1080F00002000F0063857100000000000000000016 -:1081000002000F0064857100000000000000000004 -:1081100002000F00658571000000000000000000F3 -:1081200002000F00668571000000000000000000E2 -:1081300002000F00678571000000000000000000D1 -:1081400002000F00688571000000000000000000C0 -:1081500002000F00698571000000000000000000AF -:1081600002000F006A85710000000000000000009E -:1081700002000F006B85710000000000000000008D -:1081800002000F006C85710000000000000000007C -:1081900002000F006D85710000000000000000006B -:1081A00002000F006E85710000000000000000005A -:1081B00002000F006F857100000000000000000049 -:1081C00002000F0070857100000000000000000038 -:1081D00002000F0071857100000000000000000027 -:1081E00002000F0072857100000000000000000016 -:1081F00002000F0073857100000000000000000005 -:1082000002000F00748571000000000000000000F3 -:1082100002000F00758571000000000000000000E2 -:1082200002000F00768571000000000000000000D1 -:1082300002000F00778571000000000000000000C0 -:1082400002000F00788571000000000000000000AF -:1082500002000F007985710000000000000000009E -:1082600002000F007A85710000000000000000008D -:1082700002000F007B85710000000000000000007C -:1082800002000F007C85710000000000000000006B -:1082900002000F007D85710000000000000000005A -:1082A00002000F007E857100000000000000000049 -:1082B00002000F007F857100000000000000000038 -:1082C00002000F0080857100000000000000000027 -:1082D00002000F0081857100000000000000000016 -:1082E00002000F0082857100000000000000000005 -:1082F00002000F00838571000000000000000000F4 -:1083000002000F00848571000000000000000000E2 -:1083100002000F00858571000000000000000000D1 -:1083200002000F00868571000000000000000000C0 -:1083300002000F00878571000000000000000000AF -:1083400002000F008885710000000000000000009E -:1083500002000F008985710000000000000000008D -:1083600002000F008A85710000000000000000007C -:1083700002000F008B85710000000000000000006B -:1083800002000F008C85710000000000000000005A -:1083900002000F008D857100000000000000000049 -:1083A00002000F008E857100000000000000000038 -:1083B00002000F008F857100000000000000000027 -:1083C00002000F0090857100000000000000000016 -:1083D00002000F0091857100000000000000000005 -:1083E00002000F00928571000000000000000000F4 -:1083F00002000F00938571000000000000000000E3 -:1084000002000F00948571000000000000000000D1 -:1084100002000F00958571000000000000000000C0 -:1084200002000F00968571000000000000000000AF -:1084300002000F009785710000000000000000009E -:1084400002000F009885710000000000000000008D -:1084500002000F009985710000000000000000007C -:1084600002000F009A85710000000000000000006B -:1084700002000F009B85710000000000000000005A -:1084800002000F009C857100000000000000000049 -:1084900002000F009D857100000000000000000038 -:1084A00002000F009E857100000000000000000027 -:1084B00002000F009F857100000000000000000016 -:1084C00002000F00A0857100000000000000000005 -:1084D00002000F00A18571000000000000000000F4 -:1084E00002000F00A28571000000000000000000E3 -:1084F00002000F00A38571000000000000000000D2 -:1085000002000F00A48571000000000000000000C0 -:1085100002000F00A58571000000000000000000AF -:1085200002000F00A685710000000000000000009E -:1085300002000F00A785710000000000000000008D -:1085400002000F00A885710000000000000000007C -:1085500002000F00A985710000000000000000006B -:1085600002000F00AA85710000000000000000005A -:1085700002000F00AB857100000000000000000049 -:1085800002000F00AC857100000000000000000038 -:1085900002000F00AD857100000000000000000027 -:1085A00002000F00AE857100000000000000000016 -:1085B00002000F00AF857100000000000000000005 -:1085C00002000F00B08571000000000000000000F4 -:1085D00002000F00B18571000000000000000000E3 -:1085E00002000F00B28571000000000000000000D2 -:1085F00002000F00B38571000000000000000000C1 -:1086000002000F00B48571000000000000000000AF -:1086100002000F00B585710000000000000000009E -:1086200002000F00B685710000000000000000008D -:1086300002000F00B785710000000000000000007C -:1086400002000F00B885710000000000000000006B -:1086500002000F00B985710000000000000000005A -:1086600002000F00BA857100000000000000000049 -:1086700002000F00BB857100000000000000000038 -:1086800002000F00BC857100000000000000000027 -:1086900002000F00BD857100000000000000000016 -:1086A00002000F00BE857100000000000000000005 -:1086B00002000F00BF8571000000000000000000F4 -:1086C00002000F00C08571000000000000000000E3 -:1086D00002000F00C18571000000000000000000D2 -:1086E00002000F00C28571000000000000000000C1 -:1086F00002000F00C38571000000000000000000B0 -:1087000002000F00C485710000000000000000009E -:1087100002000F00C585710000000000000000008D -:1087200002000F00C685710000000000000000007C -:1087300002000F00C785710000000000000000006B -:1087400002000F00C885710000000000000000005A -:1087500002000F00C9857100000000000000000049 -:1087600002000F00CA857100000000000000000038 -:1087700002000F00CB857100000000000000000027 -:1087800002000F00CC857100000000000000000016 -:1087900002000F00CD857100000000000000000005 -:1087A00002000F00CE8571000000000000000000F4 -:1087B00002000F00CF8571000000000000000000E3 -:1087C00002000F00D08571000000000000000000D2 -:1087D00002000F00D18571000000000000000000C1 -:1087E00002000F00D28571000000000000000000B0 -:1087F00002000F00D385710000000000000000009F -:1088000002000F00D485710000000000000000008D -:1088100002000F00D585710000000000000000007C -:1088200002000F00D685710000000000000000006B -:1088300002000F00D785710000000000000000005A -:1088400002000F00D8857100000000000000000049 -:1088500002000F00D9857100000000000000000038 -:1088600002000F00DA857100000000000000000027 -:1088700002000F00DB857100000000000000000016 -:1088800002000F00DC857100000000000000000005 -:1088900002000F00DD8571000000000000000000F4 -:1088A00002000F00DE8571000000000000000000E3 -:1088B00002000F00DF8571000000000000000000D2 -:1088C00002000F00E08571000000000000000000C1 -:1088D00002000F00E18571000000000000000000B0 -:1088E00002000F00E285710000000000000000009F -:1088F00002000F00E385710000000000000000008E -:1089000002000F00E485710000000000000000007C -:1089100002000F00E585710000000000000000006B -:1089200002000F00E685710000000000000000005A -:1089300002000F00E7857100000000000000000049 -:1089400002000F00E8857100000000000000000038 -:1089500002000F00E9857100000000000000000027 -:1089600002000F00EA857100000000000000000016 -:1089700002000F00EB857100000000000000000005 -:1089800002000F00EC8571000000000000000000F4 -:1089900002000F00ED8571000000000000000000E3 -:1089A00002000F00EE8571000000000000000000D2 -:1089B00002000F00EF8571000000000000000000C1 -:1089C00002000F00F08571000000000000000000B0 -:1089D00002000F00F185710000000000000000009F -:1089E00002000F00F285710000000000000000008E -:1089F00002000F00F385710000000000000000007D -:108A000002000F00F485710000000000000000006B -:108A100002000F00F585710000000000000000005A -:108A200002000F00F6857100000000000000000049 -:108A300002000F00F7857100000000000000000038 -:108A400002000F00F8857100000000000000000027 -:108A500002000F00F9857100000000000000000016 -:108A600002000F00FA857100000000000000000005 -:108A700002000F00FB8571000000000000000000F4 -:108A800002000F00FC8571000000000000000000E3 -:108A900002000F00FD8571000000000000000000D2 -:108AA00002000F00FE8571000000000000000000C1 -:108AB00002000F00FF8571000000000000000000B0 -:108AC00002000F000086710000000000000000009E -:108AD00002000F000186710000000000000000008D -:108AE00002000F000286710000000000000000007C -:108AF00002000F000386710000000000000000006B -:108B000002000F0004867100000000000000000059 -:108B100002000F0005867100000000000000000048 -:108B200002000F0006867100000000000000000037 -:108B300002000F0007867100000000000000000026 -:108B400002000F0008867100000000000000000015 -:108B500002000F0009867100000000000000000004 -:108B600002000F000A8671000000000000000000F3 -:108B700002000F000B8671000000000000000000E2 -:108B800002000F000C8671000000000000000000D1 -:108B900002000F000D8671000000000000000000C0 -:108BA00002000F000E8671000000000000000000AF -:108BB00002000F000F86710000000000000000009E -:108BC00002000F001086710000000000000000008D -:108BD00002000F001186710000000000000000007C -:108BE00002000F001286710000000000000000006B -:108BF00002000F001386710000000000000000005A -:108C000002000F0014867100000000000000000048 -:108C100002000F0015867100000000000000000037 -:108C200002000F0016867100000000000000000026 -:108C300002000F0017867100000000000000000015 -:108C400002000F0018867100000000000000000004 -:108C500002000F00198671000000000000000000F3 -:108C600002000F001A8671000000000000000000E2 -:108C700002000F001B8671000000000000000000D1 -:108C800002000F001C8671000000000000000000C0 -:108C900002000F001D8671000000000000000000AF -:108CA00002000F001E86710000000000000000009E -:108CB00002000F001F86710000000000000000008D -:108CC00002000F002086710000000000000000007C -:108CD00002000F002186710000000000000000006B -:108CE00002000F002286710000000000000000005A -:108CF00002000F0023867100000000000000000049 -:108D000002000F0024867100000000000000000037 -:108D100002000F0025867100000000000000000026 -:108D200002000F0026867100000000000000000015 -:108D300002000F0027867100000000000000000004 -:108D400002000F00288671000000000000000000F3 -:108D500002000F00298671000000000000000000E2 -:108D600002000F002A8671000000000000000000D1 -:108D700002000F002B8671000000000000000000C0 -:108D800002000F002C8671000000000000000000AF -:108D900002000F002D86710000000000000000009E -:108DA00002000F002E86710000000000000000008D -:108DB00002000F002F86710000000000000000007C -:108DC00002000F003086710000000000000000006B -:108DD00002000F003186710000000000000000005A -:108DE00002000F0032867100000000000000000049 -:108DF00002000F0033867100000000000000000038 -:108E000002000F0034867100000000000000000026 -:108E100002000F0035867100000000000000000015 -:108E200002000F0036867100000000000000000004 -:108E300002000F00378671000000000000000000F3 -:108E400002000F00388671000000000000000000E2 -:108E500002000F00398671000000000000000000D1 -:108E600002000F003A8671000000000000000000C0 -:108E700002000F003B8671000000000000000000AF -:108E800002000F003C86710000000000000000009E -:108E900002000F003D86710000000000000000008D -:108EA00002000F003E86710000000000000000007C -:108EB00002000F003F86710000000000000000006B -:108EC00002000F004086710000000000000000005A -:108ED00002000F0041867100000000000000000049 -:108EE00002000F0042867100000000000000000038 -:108EF00002000F0043867100000000000000000027 -:108F000002000F0044867100000000000000000015 -:108F100002000F0045867100000000000000000004 -:108F200002000F00468671000000000000000000F3 -:108F300002000F00478671000000000000000000E2 -:108F400002000F00488671000000000000000000D1 -:108F500002000F00498671000000000000000000C0 -:108F600002000F004A8671000000000000000000AF -:108F700002000F004B86710000000000000000009E -:108F800002000F004C86710000000000000000008D -:108F900002000F004D86710000000000000000007C -:108FA00002000F004E86710000000000000000006B -:108FB00002000F004F86710000000000000000005A -:108FC00002000F0050867100000000000000000049 -:108FD00002000F0051867100000000000000000038 -:108FE00002000F0052867100000000000000000027 -:108FF00002000F0053867100000000000000000016 -:1090000002000F0054867100000000000000000004 -:1090100002000F00558671000000000000000000F3 -:1090200002000F00568671000000000000000000E2 -:1090300002000F00578671000000000000000000D1 -:1090400002000F00588671000000000000000000C0 -:1090500002000F00598671000000000000000000AF -:1090600002000F005A86710000000000000000009E -:1090700002000F005B86710000000000000000008D -:1090800002000F005C86710000000000000000007C -:1090900002000F005D86710000000000000000006B -:1090A00002000F005E86710000000000000000005A -:1090B00002000F005F867100000000000000000049 -:1090C00002000F0060867100000000000000000038 -:1090D00002000F0061867100000000000000000027 -:1090E00002000F0062867100000000000000000016 -:1090F00002000F0063867100000000000000000005 -:1091000002000F00648671000000000000000000F3 -:1091100002000F00658671000000000000000000E2 -:1091200002000F00668671000000000000000000D1 -:1091300002000F00678671000000000000000000C0 -:1091400002000F00688671000000000000000000AF -:1091500002000F006986710000000000000000009E -:1091600002000F006A86710000000000000000008D -:1091700002000F006B86710000000000000000007C -:1091800002000F006C86710000000000000000006B -:1091900002000F006D86710000000000000000005A -:1091A00002000F006E867100000000000000000049 -:1091B00002000F006F867100000000000000000038 -:1091C00002000F0070867100000000000000000027 -:1091D00002000F0071867100000000000000000016 -:1091E00002000F0072867100000000000000000005 -:1091F00002000F00738671000000000000000000F4 -:1092000002000F00748671000000000000000000E2 -:1092100002000F00758671000000000000000000D1 -:1092200002000F00768671000000000000000000C0 -:1092300002000F00778671000000000000000000AF -:1092400002000F007886710000000000000000009E -:1092500002000F007986710000000000000000008D -:1092600002000F007A86710000000000000000007C -:1092700002000F007B86710000000000000000006B -:1092800002000F007C86710000000000000000005A -:1092900002000F007D867100000000000000000049 -:1092A00002000F007E867100000000000000000038 -:1092B00002000F007F867100000000000000000027 -:1092C00002000F0080867100000000000000000016 -:1092D00002000F0081867100000000000000000005 -:1092E00002000F00828671000000000000000000F4 -:1092F00002000F00838671000000000000000000E3 -:1093000002000F00848671000000000000000000D1 -:1093100002000F00858671000000000000000000C0 -:1093200002000F00868671000000000000000000AF -:1093300002000F008786710000000000000000009E -:1093400002000F008886710000000000000000008D -:1093500002000F008986710000000000000000007C -:1093600002000F008A86710000000000000000006B -:1093700002000F008B86710000000000000000005A -:1093800002000F008C867100000000000000000049 -:1093900002000F008D867100000000000000000038 -:1093A00002000F008E867100000000000000000027 -:1093B00002000F008F867100000000000000000016 -:1093C00002000F0090867100000000000000000005 -:1093D00002000F00918671000000000000000000F4 -:1093E00002000F00928671000000000000000000E3 -:1093F00002000F00938671000000000000000000D2 -:1094000002000F00948671000000000000000000C0 -:1094100002000F00958671000000000000000000AF -:1094200002000F009686710000000000000000009E -:1094300002000F009786710000000000000000008D -:1094400002000F009886710000000000000000007C -:1094500002000F009986710000000000000000006B -:1094600002000F009A86710000000000000000005A -:1094700002000F009B867100000000000000000049 -:1094800002000F009C867100000000000000000038 -:1094900002000F009D867100000000000000000027 -:1094A00002000F009E867100000000000000000016 -:1094B00002000F009F867100000000000000000005 -:1094C00002000F00A08671000000000000000000F4 -:1094D00002000F00A18671000000000000000000E3 -:1094E00002000F00A28671000000000000000000D2 -:1094F00002000F00A38671000000000000000000C1 -:1095000002000F00A48671000000000000000000AF -:1095100002000F00A586710000000000000000009E -:1095200002000F00A686710000000000000000008D -:1095300002000F00A786710000000000000000007C -:1095400002000F00A886710000000000000000006B -:1095500002000F00A986710000000000000000005A -:1095600002000F00AA867100000000000000000049 -:1095700002000F00AB867100000000000000000038 -:1095800002000F00AC867100000000000000000027 -:1095900002000F00AD867100000000000000000016 -:1095A00002000F00AE867100000000000000000005 -:1095B00002000F00AF8671000000000000000000F4 -:1095C00002000F00B08671000000000000000000E3 -:1095D00002000F00B18671000000000000000000D2 -:1095E00002000F00B28671000000000000000000C1 -:1095F00002000F00B38671000000000000000000B0 -:1096000002000F00B486710000000000000000009E -:1096100002000F00B586710000000000000000008D -:1096200002000F00B686710000000000000000007C -:1096300002000F00B786710000000000000000006B -:1096400002000F00B886710000000000000000005A -:1096500002000F00B9867100000000000000000049 -:1096600002000F00BA867100000000000000000038 -:1096700002000F00BB867100000000000000000027 -:1096800002000F00BC867100000000000000000016 -:1096900002000F00BD867100000000000000000005 -:1096A00002000F00BE8671000000000000000000F4 -:1096B00002000F00BF8671000000000000000000E3 -:1096C00002000F00C08671000000000000000000D2 -:1096D00002000F00C18671000000000000000000C1 -:1096E00002000F00C28671000000000000000000B0 -:1096F00002000F00C386710000000000000000009F -:1097000002000F00C486710000000000000000008D -:1097100002000F00C586710000000000000000007C -:1097200002000F00C686710000000000000000006B -:1097300002000F00C786710000000000000000005A -:1097400002000F00C8867100000000000000000049 -:1097500002000F00C9867100000000000000000038 -:1097600002000F00CA867100000000000000000027 -:1097700002000F00CB867100000000000000000016 -:1097800002000F00CC867100000000000000000005 -:1097900002000F00CD8671000000000000000000F4 -:1097A00002000F00CE8671000000000000000000E3 -:1097B00002000F00CF8671000000000000000000D2 -:1097C00002000F00D08671000000000000000000C1 -:1097D00002000F00D18671000000000000000000B0 -:1097E00002000F00D286710000000000000000009F -:1097F00002000F00D386710000000000000000008E -:1098000002000F00D486710000000000000000007C -:1098100002000F00D586710000000000000000006B -:1098200002000F00D686710000000000000000005A -:1098300002000F00D7867100000000000000000049 -:1098400002000F00D8867100000000000000000038 -:1098500002000F00D9867100000000000000000027 -:1098600002000F00DA867100000000000000000016 -:1098700002000F00DB867100000000000000000005 -:1098800002000F00DC8671000000000000000000F4 -:1098900002000F00DD8671000000000000000000E3 -:1098A00002000F00DE8671000000000000000000D2 -:1098B00002000F00DF8671000000000000000000C1 -:1098C00002000F00E08671000000000000000000B0 -:1098D00002000F00E186710000000000000000009F -:1098E00002000F00E286710000000000000000008E -:1098F00002000F00E386710000000000000000007D -:1099000002000F00E486710000000000000000006B -:1099100002000F00E586710000000000000000005A -:1099200002000F00E6867100000000000000000049 -:1099300002000F00E7867100000000000000000038 -:1099400002000F00E8867100000000000000000027 -:1099500002000F00E9867100000000000000000016 -:1099600002000F00EA867100000000000000000005 -:1099700002000F00EB8671000000000000000000F4 -:1099800002000F00EC8671000000000000000000E3 -:1099900002000F00ED8671000000000000000000D2 -:1099A00002000F00EE8671000000000000000000C1 -:1099B00002000F00EF8671000000000000000000B0 -:1099C00002000F00F086710000000000000000009F -:1099D00002000F00F186710000000000000000008E -:1099E00002000F00F286710000000000000000007D -:1099F00002000F00F386710000000000000000006C -:109A000002000F00F486710000000000000000005A -:109A100002000F00F5867100000000000000000049 -:109A200002000F00F6867100000000000000000038 -:109A300002000F00F7867100000000000000000027 -:109A400002000F00F8867100000000000000000016 -:109A500002000F00F9867100000000000000000005 -:109A600002000F00FA8671000000000000000000F4 -:109A700002000F00FB8671000000000000000000E3 -:109A800002000F00FC8671000000000000000000D2 -:109A900002000F00FD8671000000000000000000C1 -:109AA00002000F00FE8671000000000000000000B0 -:109AB00002000F00FF86710000000000000000009F -:109AC00002000F000087710000000000000000008D -:109AD00002000F000187710000000000000000007C -:109AE00002000F000287710000000000000000006B -:109AF00002000F000387710000000000000000005A -:109B000002000F0004877100000000000000000048 -:109B100002000F0005877100000000000000000037 -:109B200002000F0006877100000000000000000026 -:109B300002000F0007877100000000000000000015 -:109B400002000F0008877100000000000000000004 -:109B500002000F00098771000000000000000000F3 -:109B600002000F000A8771000000000000000000E2 -:109B700002000F000B8771000000000000000000D1 -:109B800002000F000C8771000000000000000000C0 -:109B900002000F000D8771000000000000000000AF -:109BA00002000F000E87710000000000000000009E -:109BB00002000F000F87710000000000000000008D -:109BC00002000F001087710000000000000000007C -:109BD00002000F001187710000000000000000006B -:109BE00002000F001287710000000000000000005A -:109BF00002000F0013877100000000000000000049 -:109C000002000F0014877100000000000000000037 -:109C100002000F0015877100000000000000000026 -:109C200002000F0016877100000000000000000015 -:109C300002000F0017877100000000000000000004 -:109C400002000F00188771000000000000000000F3 -:109C500002000F00198771000000000000000000E2 -:109C600002000F001A8771000000000000000000D1 -:109C700002000F001B8771000000000000000000C0 -:109C800002000F001C8771000000000000000000AF -:109C900002000F001D87710000000000000000009E -:109CA00002000F001E87710000000000000000008D -:109CB00002000F001F87710000000000000000007C -:109CC00002000F002087710000000000000000006B -:109CD00002000F002187710000000000000000005A -:109CE00002000F0022877100000000000000000049 -:109CF00002000F0023877100000000000000000038 -:109D000002000F0024877100000000000000000026 -:109D100002000F0025877100000000000000000015 -:109D200002000F0026877100000000000000000004 -:109D300002000F00278771000000000000000000F3 -:109D400002000F00288771000000000000000000E2 -:109D500002000F00298771000000000000000000D1 -:109D600002000F002A8771000000000000000000C0 -:109D700002000F002B8771000000000000000000AF -:109D800002000F002C87710000000000000000009E -:109D900002000F002D87710000000000000000008D -:109DA00002000F002E87710000000000000000007C -:109DB00002000F002F87710000000000000000006B -:109DC00002000F003087710000000000000000005A -:109DD00002000F0031877100000000000000000049 -:109DE00002000F0032877100000000000000000038 -:109DF00002000F0033877100000000000000000027 -:109E000002000F0034877100000000000000000015 -:109E100002000F0035877100000000000000000004 -:109E200002000F00368771000000000000000000F3 -:109E300002000F00378771000000000000000000E2 -:109E400002000F00388771000000000000000000D1 -:109E500002000F00398771000000000000000000C0 -:109E600002000F003A8771000000000000000000AF -:109E700002000F003B87710000000000000000009E -:109E800002000F003C87710000000000000000008D -:109E900002000F003D87710000000000000000007C -:109EA00002000F003E87710000000000000000006B -:109EB00002000F003F87710000000000000000005A -:109EC00002000F0040877100000000000000000049 -:109ED00002000F0041877100000000000000000038 -:109EE00002000F0042877100000000000000000027 -:109EF00002000F0043877100000000000000000016 -:109F000002000F0044877100000000000000000004 -:109F100002000F00458771000000000000000000F3 -:109F200002000F00468771000000000000000000E2 -:109F300002000F00478771000000000000000000D1 -:109F400002000F00488771000000000000000000C0 -:109F500002000F00498771000000000000000000AF -:109F600002000F004A87710000000000000000009E -:109F700002000F004B87710000000000000000008D -:109F800002000F004C87710000000000000000007C -:109F900002000F004D87710000000000000000006B -:109FA00002000F004E87710000000000000000005A -:109FB00002000F004F877100000000000000000049 -:109FC00002000F0050877100000000000000000038 -:109FD00002000F0051877100000000000000000027 -:109FE00002000F0052877100000000000000000016 -:109FF00002000F0053877100000000000000000005 -:10A0000002000F00548771000000000000000000F3 -:10A0100002000F00558771000000000000000000E2 -:10A0200002000F00568771000000000000000000D1 -:10A0300002000F00578771000000000000000000C0 -:10A0400002000F00588771000000000000000000AF -:10A0500002000F005987710000000000000000009E -:10A0600002000F005A87710000000000000000008D -:10A0700002000F005B87710000000000000000007C -:10A0800002000F005C87710000000000000000006B -:10A0900002000F005D87710000000000000000005A -:10A0A00002000F005E877100000000000000000049 -:10A0B00002000F005F877100000000000000000038 -:10A0C00002000F0060877100000000000000000027 -:10A0D00002000F0061877100000000000000000016 -:10A0E00002000F0062877100000000000000000005 -:10A0F00002000F00638771000000000000000000F4 -:10A1000002000F00648771000000000000000000E2 -:10A1100002000F00658771000000000000000000D1 -:10A1200002000F00668771000000000000000000C0 -:10A1300002000F00678771000000000000000000AF -:10A1400002000F006887710000000000000000009E -:10A1500002000F006987710000000000000000008D -:10A1600002000F006A87710000000000000000007C -:10A1700002000F006B87710000000000000000006B -:10A1800002000F006C87710000000000000000005A -:10A1900002000F006D877100000000000000000049 -:10A1A00002000F006E877100000000000000000038 -:10A1B00002000F006F877100000000000000000027 -:10A1C00002000F0070877100000000000000000016 -:10A1D00002000F0071877100000000000000000005 -:10A1E00002000F00728771000000000000000000F4 -:10A1F00002000F00738771000000000000000000E3 -:10A2000002000F00748771000000000000000000D1 -:10A2100002000F00758771000000000000000000C0 -:10A2200002000F00768771000000000000000000AF -:10A2300002000F007787710000000000000000009E -:10A2400002000F007887710000000000000000008D -:10A2500002000F007987710000000000000000007C -:10A2600002000F007A87710000000000000000006B -:10A2700002000F007B87710000000000000000005A -:10A2800002000F007C877100000000000000000049 -:10A2900002000F007D877100000000000000000038 -:10A2A00002000F007E877100000000000000000027 -:10A2B00002000F007F877100000000000000000016 -:10A2C00002000F0080877100000000000000000005 -:10A2D00002000F00818771000000000000000000F4 -:10A2E00002000F00828771000000000000000000E3 -:10A2F00002000F00838771000000000000000000D2 -:10A3000002000F00848771000000000000000000C0 -:10A3100002000F00858771000000000000000000AF -:10A3200002000F008687710000000000000000009E -:10A3300002000F008787710000000000000000008D -:10A3400002000F008887710000000000000000007C -:10A3500002000F008987710000000000000000006B -:10A3600002000F008A87710000000000000000005A -:10A3700002000F008B877100000000000000000049 -:10A3800002000F008C877100000000000000000038 -:10A3900002000F008D877100000000000000000027 -:10A3A00002000F008E877100000000000000000016 -:10A3B00002000F008F877100000000000000000005 -:10A3C00002000F00908771000000000000000000F4 -:10A3D00002000F00918771000000000000000000E3 -:10A3E00002000F00928771000000000000000000D2 -:10A3F00002000F00938771000000000000000000C1 -:10A4000002000F00948771000000000000000000AF -:10A4100002000F009587710000000000000000009E -:10A4200002000F009687710000000000000000008D -:10A4300002000F009787710000000000000000007C -:10A4400002000F009887710000000000000000006B -:10A4500002000F009987710000000000000000005A -:10A4600002000F009A877100000000000000000049 -:10A4700002000F009B877100000000000000000038 -:10A4800002000F009C877100000000000000000027 -:10A4900002000F009D877100000000000000000016 -:10A4A00002000F009E877100000000000000000005 -:10A4B00002000F009F8771000000000000000000F4 -:10A4C00002000F00A08771000000000000000000E3 -:10A4D00002000F00A18771000000000000000000D2 -:10A4E00002000F00A28771000000000000000000C1 -:10A4F00002000F00A38771000000000000000000B0 -:10A5000002000F00A487710000000000000000009E -:10A5100002000F00A587710000000000000000008D -:10A5200002000F00A687710000000000000000007C -:10A5300002000F00A787710000000000000000006B -:10A5400002000F00A887710000000000000000005A -:10A5500002000F00A9877100000000000000000049 -:10A5600002000F00AA877100000000000000000038 -:10A5700002000F00AB877100000000000000000027 -:10A5800002000F00AC877100000000000000000016 -:10A5900002000F00AD877100000000000000000005 -:10A5A00002000F00AE8771000000000000000000F4 -:10A5B00002000F00AF8771000000000000000000E3 -:10A5C00002000F00B08771000000000000000000D2 -:10A5D00002000F00B18771000000000000000000C1 -:10A5E00002000F00B28771000000000000000000B0 -:10A5F00002000F00B387710000000000000000009F -:10A6000002000F00B487710000000000000000008D -:10A6100002000F00B587710000000000000000007C -:10A6200002000F00B687710000000000000000006B -:10A6300002000F00B787710000000000000000005A -:10A6400002000F00B8877100000000000000000049 -:10A6500002000F00B9877100000000000000000038 -:10A6600002000F00BA877100000000000000000027 -:10A6700002000F00BB877100000000000000000016 -:10A6800002000F00BC877100000000000000000005 -:10A6900002000F00BD8771000000000000000000F4 -:10A6A00002000F00BE8771000000000000000000E3 -:10A6B00002000F00BF8771000000000000000000D2 -:10A6C00002000F00C087710079000000769060FDE5 -:10A6D00002000F00C18771003D0000006F0080F78D -:10A6E00002000F00C28771003D0000006F0080F77C -:10A6F00002000F00C38771003D0000006F0080F76B -:10A7000002000F00C48771803D0000006F0080F7D9 -:00000001FF -/* Loading Firmware */ -/* INT_MEM Ver */ - * Tehuti Networks(R) Network Driver - * Copyright (C) 2007 Tehuti Networks Ltd. All rights reserved diff --git a/firmware/ti_3410.fw.ihex b/firmware/ti_3410.fw.ihex deleted file mode 100644 index b22c0425980e..000000000000 --- a/firmware/ti_3410.fw.ihex +++ /dev/null @@ -1,862 +0,0 @@ -:10000000C2350002001E021ADBFFFFFFFFFF0232B3 -:10001000CBFFFFFFFFFFFFFFFFFFFFFFFFFF0233ED -:10002000767581CE90FDE88583A01234EAEC4D60B0 -:100030006A78AB8003760018B89CFA787F800376E4 -:100040000018B865FA78208003760018B820FA9076 -:10005000FDDDAE83AF8290FBF81200A16005E4F0F5 -:10006000A380F690FDE8A88290FDE8A982E8C399F4 -:10007000500576000880F69000FF1200AA90010358 -:100080001200AA9001071200AA90010B1200C8905A -:1000900001111200C89001171200C875D000123368 -:1000A000C802011DEF65827003EE658322E493F8B8 -:1000B000740193F9740293FE740393F5828E83E8BE -:1000C00069700122E493F6A30880F4E493FC7401C0 -:1000D00093FD740293FE740393FF740493F8740504 -:1000E00093F58288831200A1700122E493A3A88370 -:1000F000A9828C838D82F0A3AC83AD8288838982B0 -:1001000080E32121049280800492ACAE0492FDE849 -:1001100004940494FBF304990494FBF304F904F9A4 -:1001200080FED0F030F00920F303F68010F7800D48 -:1001300030F10920F303F28004F38001F020F4048D -:10014000FCD0E0CC22CCC0E012015A02014BBC0032 -:1001500005D0F0ACF022C313DCFC020121BF000982 -:10016000ED258275F001F8E622BF010FED2582F53D -:1001700082EE3583F58375F004E022ED258275F07B -:1001800002F8E222D083D082F5F0C3E493A3C5F055 -:1001900095F0C0E0C3D0F0E493A395F04012A3A380 -:1001A000C3E5F033500205832582F58250020583B2 -:1001B000740193C0E0E493C0E022D083D082F5F0D4 -:1001C000E49370097401937004A3A3800C740293E8 -:1001D00065F06005A3A3A380E7740193C0E0E493F6 -:1001E000C0E02212025B0201F21202AF0201F2121F -:1001F00002D30201F230E00720E302E622E72230D8 -:10020000E10720E302E222E32230E202E022E4936B -:10021000221202D302021A1202AF02021AABF01229 -:100220000224CBC5F0CB2230E01020E306E6F5F047 -:1002300008E622E7F5F009E7192230E11020E3068D -:10024000E2F5F008E222E3F5F009E3192230E206D4 -:10025000E0F5F0A3E022E493F5F074019322BB00F3 -:1002600003740922BB010789828A83740422BB02BA -:100270000789828A83741022740A2202027BBB00DF -:1002800007E92582F8740122BB010DE92582F58278 -:10029000EA3583F583740422BB020DE92582F582D9 -:1002A000EA3583F583741022E92582F8740222026C -:1002B00002AFBF0005EDF8740122BF01078D828EE9 -:1002C00083740422BF02078D828E83741022EDF89E -:1002D0007402220202D3BF0007ED2582F8740122C6 -:1002E000BF010DED2582F582EE3583F5837404227E -:1002F000BF020DED2582F582EE3583F58374102261 -:10030000ED2582F8740222020307C0E012025B02AC -:10031000031FC0E01202AF02031FC0E01202D302AB -:10032000031F30E00B20E304D0E0F622D0E0F722F8 -:1003300030E10B20E304D0E0F222D0E0F322D0E061 -:10034000F022C9CDC9CACECACBCFCB120352EDF928 -:10035000EEFAEFFB22BB002FBF000AFAEDF8E7F63A -:100360000809DAFA22BF01128D828E83F802036F28 -:1003700009A3E7F0D8FA2202037AFAEDF8E7F208C7 -:1003800009DAFA22020384BB014DBF001489828A74 -:1003900083F9EDF802039608A3E0F6D9FA220203E6 -:1003A000A7BF01228D828E83FB08C9C582C9CAC539 -:1003B00083CAE0A3C9C582C9CAC583CAF0A3DBEA60 -:1003C000D8E8220203CA8D828E83F9EDF8E0F208A4 -:1003D000A3D9FA220203D4BB024DBF001289828A3C -:1003E00083F9EDF80203E608A3E493F6D9F922BFF6 -:1003F00001238D828E83FB08C9C582C9CAC583CA01 -:10040000E493A3C9C582C9CAC583CAF0A3DBE9D8EE -:10041000E72202041989828A83F9EDF8E493F2084D -:10042000A3D9F92202042ABF000DFAEDF8E3F60879 -:1004300009DAFA22020434BF01128D828E83F80297 -:10044000044109A3E3F0D8FA2202044CFAEDF8E3E0 -:10045000F20809DAFA22020456E6FB08E6FA08E690 -:10046000F904F61870010622E6FF08E6FE08E6FD2C -:1004700022EFF0A3EEF0A3EDF022EBF0A3EAF0A35D -:10048000E9F022E0FFA3E0FEA3E0FD22E0FBA3E011 -:10049000FAA3E0F9220000000000000004F9006166 -:1004A00005680026058F00330A0000610A6C0066AB -:1004B000151D00610CF0006109A0006109D7006101 -:1004C0000DB700610BE800610A1300610A48006182 -:1004D00017150033172800341DF600431EA10044F1 -:1004E000200E00441FFC00471EC800471F6D004D32 -:1004F0001FBE004F1EEA0058325600617CCC7DFFC3 -:10050000121CA72290FFFCE020E72DC2AFAE59AF2E -:1005100058755A20E55A14C55A6019E4FE7F05EE55 -:100520004FCE24FFCECF34FFCF6007E490FF92F090 -:1005300080ED80E08E598F58221205017D077CB72F -:100540001232727D0F7C6E12328C789D7A06E4F640 -:1005500008DAFC7A061205C47C03120E4C12214AFA -:10056000E4FEFF7C0F1231FBD2A8221230E6E490A9 -:10057000FC38F090FFF0E030E408740190FC39F0B2 -:100580008005E490FC39F07D0A7C001225261231AA -:1005900069221230E690FC39E014700E90FFF0E012 -:1005A0004410F07C001225BF801990FC39E0700ED9 -:1005B00090FFF0E054EFF07C001225BF80057C171F -:1005C0001225BF1231692290FFF0E054ABF090FF8A -:1005D000F0E04420F0228C378D367882EDF608EC7E -:1005E000F6EDFEECFD7F019000051201EC7880F63F -:1005F0007882E6FD08E6FCEDFEECFD7F019000044C -:100600001201EC540FFC7D801217467880E6700DC5 -:10061000AD3AAE39AF38E412030F7C082290FFF0F8 -:10062000E054FEF090FFF0E054FDF0801E7882E68A -:10063000FD08E6FCEDFEECFD7F0190000812020EC5 -:1006400025E0440190FFF3F00206D07882E6FD0831 -:10065000E6FCEDFEECFD7F0190000612020E54FE5A -:1006600090FFF3F0802B7882E6FD08E6FCEDFEECCF -:10067000FD7F0190000812020EFAEB90FFF1F012DC -:1006800008BF400DAD3AAE39AF38E412030F7C1805 -:10069000227882E6FD08E6FCEDFEECFD7F0190008D -:1006A0000812020E90FFF1F01208BF400DAD3AAEF5 -:1006B00039AF38E412030F7C18227882E6FD08E691 -:1006C000FCEDFEECFD7F0190000612020E4401904D -:1006D000FFF3F07883E62403F618E63400F678801A -:1006E000E624FE500990FFF0E054FDF0800790FFF3 -:1006F000F0E04402F0E490FFF1F078817600788039 -:10070000E624FFFCE434FFFD7881E67F00FEECD3B5 -:100710009EEF6480CD64809D402F1208A4400F7826 -:1007200081E6AD3AAE39AF3812030F7C182290FF44 -:10073000F2E0FC78828683088682ECF0788106A35A -:100740007882A68308A68280B51208A4400F78811B -:10075000E6AD3AAE39AF3812030F7C182290FFF2A3 -:10076000E0FC78828683088682ECF07880E6AD3AF9 -:10077000AE39AF3812030F7C00228C378D36788269 -:10078000EDF608ECF6EDFEECFD7F019000051201A0 -:10079000EC7881F67882E6FD08E6FCEDFEECFD7F64 -:1007A000019000041201EC540FFC7D811217467871 -:1007B00081E670037C082290FFF0E054FEF090FF89 -:1007C000F0E054FDF0801B7882E6FD08E6FCEDFECB -:1007D000ECFD7F0190000812020E25E090FFF3F07F -:1007E000805B7882E6FD08E6FCEDFEECFD7F019083 -:1007F000000612020E54FE90FFF3F080217882E68C -:10080000FD08E6FCEDFEECFD7F0190000812020EF3 -:10081000FAEB90FFF1F01208BF40037C18227882B7 -:10082000E6FD08E6FCEDFEECFD7F019000081202FB -:100830000E90FFF1F01208BF40037C18227883E687 -:10084000240AF618E63400F6788076007881E624EB -:10085000FFFCE434FFFD7880E67F00FEECD39EEFE2 -:100860006480CD64809D402178828683088682E002 -:1008700090FFF1F01208BF40037C182278800678C0 -:100880008306E61870010680C390FFF0E04401F093 -:1008900078828683088682E090FFF1F01208BF40DC -:1008A000037C18227C002290FFF0E020E71290FFEA -:1008B000F0E030E50990FFF0E04420F0C32280E74B -:1008C000D32290FFF0E020E31290FFF0E030E50942 -:1008D00090FFF0E04420F0C32280E7D3228C428DC9 -:1008E000417C00ED54F0FDEC7003ED643070057553 -:1008F0003E038003753E04AC3E120F69758300858C -:100900008340E541540FF53FE5407004E53F640343 -:100910007035E53E24FD75F00AA42402F582E43426 -:10092000FCF583E030E60512104B8019E53E249D6E -:10093000F8C654FBF678A9E62405F58218E63400DB -:10094000F583740FF08059E5407004E53F6404704E -:1009500048E53E24FD75F00AA42402F582E434FC47 -:10096000F583E030E507AC42AD41121C3CE5423076 -:10097000E21578ADE630E00F78ADE630E109E4FF4E -:1009800004FE7C041231FB78A9E62406F58218E601 -:100990003400F583740FF08007E4FC7DEE121C3CFC -:1009A000C203221230E6120F6978A9E62406F58206 -:1009B00018E63400F583E090FC38F078A9E62405C9 -:1009C000F58218E63400F583E090FC39F0C2037D2F -:1009D000027C00122526123169221230E67895EC4D -:1009E000F6EC249DF8E630E1077C131225BF800F5A -:1009F00090FC39E0FD7895E6FC1213C81225BF1271 -:100A00003169221230E67895ECF67D00120F09125A -:100A100025BF123169221230E67895ECF6EC249D60 -:100A2000F8E630E2077C131225BF801B7895E62498 -:100A30009DF8E620E1077C121225BF800A7895E632 -:100A4000FC1213EC1225BF123169221230E67895A0 -:100A5000ECF6EC249DF8E620E2077C111225BF801D -:100A60000A7895E6FC1214ED1225BF1231692212A4 -:100A700030E67895ECF6120F6978A9E62409F5823C -:100A800018E63400F583E090FC3FF078A9E6240AEC -:100A9000F58218E63400F583E090FC40F078A9E692 -:100AA0002403F58218E63400F583E0FC78A9E624F7 -:100AB00004F58218E63400F583E0F56278A9E624AF -:100AC00002F58218E63400F583E0F5638C61E4EC0E -:100AD000333354017895F66008E56230E103789588 -:100AE000067895E690FC41F078A7E62402F5821896 -:100AF000E63400F583E0FDA3E0540CFCED54E68CF5 -:100B000065F564E56130E503436501E56220E50EC6 -:100B1000E561547F7008E56120E703436502E56104 -:100B200030E303436510E56130E203436520E5618E -:100B300054036003436540E56130E103436580E5AC -:100B40006130E403436401E56130E603436408E592 -:100B50006220E40EE561547F7008E56120E70343FD -:100B600064105365FB536479AD64E56590FC3ACD40 -:100B7000F0A3CDF0E56330E30DE5635430C4540FCA -:100B800090FC3DF08005E490FC3DF0E5635403905B -:100B9000FC3CF0E5635404C31390FC3EF090FC3C35 -:100BA000E0700E7D357EFC7F01740190000912011A -:100BB0004278A9E62408F58218E63400F583E07C43 -:100BC00000FD78A9E62407F58218E63400F583E0F5 -:100BD0007F004CFEEF4D90FC38F0A3CEF0CEC20368 -:100BE0007D0A7C00122526123169221230E67895A2 -:100BF000ECF6789A76010876FC0876387897760CC9 -:100C0000789A1204651202147898CBF6CB08F67F16 -:100C100000EF24EA401FE4EF25E090352CFD93CD52 -:100C200004937899667003ED1866700678977600DD -:100C300080030F80DC7896EFF6789A1204659000B6 -:100C40000212020E7898CBF6CB08F65404CB5486E9 -:100C50004B60047897760B7899E630E313789A1214 -:100C600004659000051201EC24FB50047897760D82 -:100C70007899E654C07D0064C04D70047897760B77 -:100C8000789A1204659000041201EC24FC50047858 -:100C900097760F789A1204659000061201EC24FDF5 -:100CA00050047897760E789A120465900009120124 -:100CB000EC24FD50047897760A7897E6702A7895A8 -:100CC000E6FC120F69789A12046578A7E6F978A60F -:100CD000E6FA7B01740A780012033FC2037895E6B6 -:100CE000FC1211077897ECF67897E6FC1225BF12F4 -:100CF0003169221230E67895ECF6120F697895E6A4 -:100D000024FD75F00AA42414F582E434FCF583ACC8 -:100D100082AD8378A68683088682ECF9EDFA7B0A99 -:100D200078011203A7C2037895E6FC12110712316D -:100D300069228D2B8C2AED60407527017529487535 -:100D400028FFE52A24FDFCE434FFFDEC7C0325E0CC -:100D5000CD33CDDCF9FCE5292CF529E5283DF52836 -:100D6000AD29AE28AF277480900006120317748057 -:100D7000900002120317120FB7E52B14603B752782 -:100D8000017529087528FFE52A24FDFCE434FFFDE0 -:100D9000EC7C0325E0CD33CDDCF9FCE5292CF529ED -:100DA000E5283DF528AD29AE28AF27E490000612CE -:100DB0000317E4900002120317221230E67895EC34 -:100DC000F6EC249DF8E630E2097895E6FC1214ED85 -:100DD000D2007895E6FC120F697896760090FC397F -:100DE000E030E704789676017896E6FD7895E6FCA3 -:100DF000120D2FC2033000077895E6FC1213EC7C2D -:100E0000001225BF1231692278A9E62404F5821860 -:100E1000E63400F583E04401F078A9E62404F58285 -:100E200018E63400F583E030E00280ED78A9E6248E -:100E30000BF58218E63400F583E054F8F078A9E663 -:100E40002402F58218E63400F583E04480F022C2E3 -:100E5000038C58120F6978A68683088682795D7A9A -:100E6000357B0A78011203F5120E05AC587D02128B -:100E70000D2FC203AC58121107228D538E528F5181 -:100E80008C50120F69754F0078A9E62405F5821879 -:100E9000E63400F583E020E41FE54F24F640190511 -:100EA0004FC2037C181232A990FF93E04401F0B2C4 -:100EB000B3AC50120F6980D078A9E62405F58218EA -:100EC000E63400F583E020E405C2037C022278A921 -:100ED000E62405F58218E63400F583E0540F601629 -:100EE00078A9E62405F58218E63400F583E0540F6E -:100EF000F0C2037C012278A88683088682E0AD5385 -:100F0000AE52AF5112030FC2037C00228D318C30E0 -:100F10001214EDE531600FE530B4030A7C011224B0 -:100F2000EE7C811224EEAC30120F69E531601A7844 -:100F3000AA8683088682E054E7F0A3A3A3A3E05423 -:100F4000E7F0AC307D02120D2F78A68683088682EA -:100F500079677A357B0A78011203F5C203E53024FC -:100F60009DF8C654FDF6AC30121107228C263003D2 -:100F70000512324880F87C0A12315BD203E5262440 -:100F8000FD78A3F6700778AA76FF0876E078A3E6E6 -:100F900075F010A4ADF0FC24A078A9F6ED34FF188C -:100FA000F678A3E675F00AA42400FCE434FCFD788E -:100FB000A6EDF608ECF61231F42278A9E62402F543 -:100FC0008218E63400F583E030E72278A9E62402AF -:100FD000F58218E63400F583E0547FF078A9E62422 -:100FE00002F58218E63400F583E04480F02278AA06 -:100FF0008683088682E0547FF0AD83E5822404FC7A -:10100000E43D8C82F583E0547FF078A9E6240BF56B -:101010008218E63400F583E054F8F078ABE624015A -:10102000F58218E63400F583E04403F078ABE6245B -:1010300005F58218E63400F583E04403F078A9E66C -:101040002405F58218E63400F583740FF02278AA9F -:101050008683088682E0543FF0AD83E5822404FC59 -:10106000E43D8C82F583E0543FF078A3E624A4F8B5 -:10107000E6FC78ABE62401F58218E63400F583EC53 -:10108000F078A3E624A4F8E6FC78ABE62405F58224 -:1010900018E63400F583ECF078A9E6240BF5821805 -:1010A000E63400F583E054FB4402F52678A7E624F5 -:1010B00002F58218E63400F583E030E503432601AB -:1010C00078A9E62405F58218E63400F583E030E0DF -:1010D00003120FB7E526FC78A9E6240BF58218E683 -:1010E0003400F583ECF078A9E62405F58218E6349F -:1010F00000F583740FF078AA8683088682E0448026 -:10110000F0A3A3A3A3E04480F0228C2A120F6978F5 -:10111000A7E62408F58218E63400F583E0FC78A9F8 -:10112000E6240AF58218E63400F583ECF078A7E6A9 -:101130002407F58218E63400F583E0FC78A9E6245C -:1011400009F58218E63400F583ECF078A68683086A -:101150008682E0FDA3E0FCEDFE78A9E62408F58296 -:1011600018E63400F583EEF0ECFE78A9E62407F5E6 -:101170008218E63400F583EEF08C298D28C3EC94B8 -:1011800005ED940C400575277C8033D3E529940147 -:10119000E5289403400575273C8023D3E5299481F5 -:1011A000E528940140057527188013D3E52994603C -:1011B000E5289400400575270C8003752708AF27A4 -:1011C000E4EF547C4483FF8F27E527FC78ABE624CB -:1011D00001F58218E63400F583ECF0E527FC78ABE6 -:1011E000E62405F58218E63400F583ECF0E527FCEB -:1011F00078A3E624A4F8ECF678A9E62402F5821890 -:10120000E63400F583E0F52778A7E62402F5821896 -:10121000E63400F583A3E030E3175327C778A7E649 -:101220002405F58218E63400F583E09035589342A2 -:10123000275327FB78A7E62406F58218E63400F545 -:1012400083E060034327045327FC78A7E62404F5D2 -:101250008218E63400F583E04227432780E527FC27 -:1012600078A9E62402F58218E63400F583ECF078DC -:10127000A9E62404F58218E63400F583E0F5277822 -:10128000A7E62402F58218E63400F583A3E030E1F6 -:10129000055327DF800343272078A7E62402F58241 -:1012A00018E63400F583E030E4055327EF8003436C -:1012B000271078A7E62409F58218E63400F583E0C4 -:1012C000B40203432702E527FC78A9E62404F5824B -:1012D00018E63400F583ECF078A9E62403F58218CB -:1012E000E63400F583E0F52778A7E62409F58218AF -:1012F000E63400F583E0700553277F8003432780A1 -:1013000078A7E62402F58218E63400F583A3E030DE -:10131000E00543272080035327DF78A7E62402F562 -:101320008218E63400F583E030E30543274080036C -:101330005327BF78A7E62402F58218E63400F58328 -:10134000E030E00543271080035327EF78A7E62419 -:1013500002F58218E63400F583A3E030E405432764 -:101360000880035327F778A7E62402F58218E634AD -:1013700000F583A3E030E50543270480035327FBF2 -:1013800078A7E62402F58218E63400F583A3E0305E -:10139000E60543270180035327FE78A7E62402F5DC -:1013A0008218E63400F583A3E030E7054327028086 -:1013B000035327FDE527FC78A9E62403F58218E608 -:1013C0003400F583ECF0C2037C00228D278C26EDDF -:1013D00054031460037C1022E527547C24FC400352 -:1013E0007C0B22E526249DF8C64402F67C00228C64 -:1013F00030120F69E530249DF8E620E24FAC307DD5 -:1014000002120D2FE53024FE4428FC78AA868308BA -:101410008682ECF0AF83E5822404FEE43FFFEC8E8D -:10142000828F83F07C038C2CE52CFC78ABE62401C6 -:10143000F58218E63400F583ECF0E52CFC78ABE699 -:101440002405F58218E63400F583ECF0752D01755E -:101450002F48752EFFE53024FDFCE434FFFDEC7CC5 -:101460000325E0CD33CDDCF9FCE52F2CF52FE52E5F -:101470003DF52E78ABE62404F58218E63400F583BA -:10148000E054E7F52CAD2FAE2EAF2DE49000021204 -:101490000317E49000061203171201E630E5034338 -:1014A0002C10E52CFC78ABE62404F58218E6340019 -:1014B000F583ECF012104B78A9E62406F58218E6C5 -:1014C0003400F583E0C203FCE530249DF8C64404F3 -:1014D000F68C2CE530540FC454F07E00FFEEEF4440 -:1014E000047D00FFEC4EFCED4FFD121CA77C00229A -:1014F0008C2F120F69120FEB78AA8683088682E080 -:101500005408F0A3A3A3A3E05408F0AC2F7D02126B -:101510000D2FC203E52F249DF8C654FBF67C002254 -:101520001230E67896ECF6EC249DF8E630E10A7D80 -:10153000007C131225261231697896E6249DF8C6A0 -:101540004401F67896E6FC120F697896E624FD755C -:10155000F00AA42414F582E434FCF58378A6E6FAB4 -:1015600008E6F97B0A78011203A778A68683088625 -:101570008279677A357B0A78011203F5120FB7C2B8 -:10158000037896E6FC1211077895ECF6EC600A7D7C -:10159000007C081225261231697896E6FC120F6944 -:1015A00078A9E62404F58218E63400F583E04410B7 -:1015B00054DFFC78A9E62404F58218E63400F583AC -:1015C000ECF07895ECF6C2037CC81232A97896E666 -:1015D000FC120F6978A9E62404F58218E63400F5B8 -:1015E00083E054EFF0C2037CC81232A97896E6FC7F -:1015F000120F6978A9E62404F58218E63400F58311 -:10160000E04410F0C2037CC81232A97896E6FC12BE -:101610000F6978A9E62404F58218E63400F583E022 -:101620004420F0C2037CF01232A97896E6FC120F37 -:101630006978A9E62405F58218E63400F583E030E0 -:10164000E415C2037896E644107F00FE7C07123151 -:10165000FB12316902171478A9E62404F58218E612 -:101660003400F583E054CFF0C2037CC81232A9786D -:1016700096E6FC120F6978A9E62404F58218E63490 -:1016800000F583E04430F0C2037CF01232A9789672 -:10169000E6FC120F6978A9E62405F58218E6340005 -:1016A000F583E030E414C2037896E644107F00FE30 -:1016B0007C071231FB123169805D78A9E62404F5BC -:1016C0008218E63400F583E054EFF078A9E62404AC -:1016D000F58218E63400F583E054DFF07896E624CE -:1016E000FD75F00AA42414F582E434FCF583AC8281 -:1016F000AD8378A68683088682ECF9EDFA7B0A78BA -:10170000011203A7C2037896E6FC1211077D007C44 -:101710000B122526123169221230E6E490FC39F0D2 -:101720007D027C00122526123169221230E67C00EF -:101730001225BF12316922743C90FBE0F0743E9098 -:10174000FBE0F0E490FC28F0228D358C34ECB40101 -:10175000028003D340028028B402028003D34008F1 -:10176000A835C625E0F68018B404028003D3400AE9 -:10177000A835C625E025E0F68006A835760080006D -:10178000228C3C8D3BEDFEECFD7F01756606756796 -:101790000090FC2912046E1201E6B480028006D388 -:1017A000500302184790FC29120480900003120194 -:1017B000EC54F0B430028003D3405F90FC29120453 -:1017C0008090000812020EFAFDEBFE7F0190FC2CC7 -:1017D00012046EEECD903571FCE493FF740193FE1C -:1017E000F9EFFA7B01EAFFE9FEECC39EED9F40258D -:1017F000903573E493FD740193FCEDFEECFD7F01E5 -:10180000EECDFC90FC2EE0D39C90FC2DE09D50058D -:101810007566808033121965802EB460028003D310 -:10182000400BAC3CAD3B1207778C66801BB41003B9 -:10183000B34010C3B42003B34009C3B440028003D3 -:10184000D3400075668180008075B481028003D327 -:10185000406B90FC291204809000031201EC54F0BC -:10186000B430028003D3401D90FC29120480900004 -:101870000812020EFAFDEBFE7F0190FC2F12046E9F -:101880001218CF8036B460028003D34013753A67D4 -:10189000E4F539F538AC3CAD3B1205D38C66801BC2 -:1018A000B41003B34010C3B42003B34009C3B44021 -:1018B000028003D34000756681800080028000E5CD -:1018C00066FC90FC29120480EC900002120317AC15 -:1018D000672290FC291204809000041201EC60043D -:1018E00074018001E4A2E0920190FC29120480EDD1 -:1018F0002403FD50010E90FC2C12046E90FC291262 -:1019000004809000051201ECF5679000041201ECD0 -:10191000540FFC7D67121746E56770047566082250 -:10192000756600788476007884E6C39567503890B1 -:10193000FC2F1204801201E6FC90FC2C120480ECB7 -:1019400012030F30010E90FC31E004F090FC307077 -:1019500003E004F078840690FC2EE004F090FC2D67 -:101960007003E004F080C02290FC2AE0FDA3E0FCBC -:10197000EDFEECFD7F01ED240AFD50010E90FC32DE -:1019800012046E90FC291204809000041201EC54A1 -:101990000FB401028003D3401790FC321204800D73 -:1019A000ED70010E90FC2F12046E78887601804E47 -:1019B000B402028003D3401990FC32120480ED245B -:1019C00002FD50010E90FC2F12046E788876028082 -:1019D0002DB404028003D3401990FC32120480ED30 -:1019E0002404FD50010E90FC2F12046E78887604BA -:1019F000800CB400028003D340007566082290FC7E -:101A0000291204809000051201ECF56778857600B4 -:101A10007885E6C395674003021ACD78867600780C -:101A200086E6C3788896507690FC2C1204801201CA -:101A3000E6FC90FC321204891201E0F45CFC120115 -:101A4000E0F890FC2F120480E8C0E01201E6C8D054 -:101A5000E0C8584CFC90FC2C120480EC12030F7868 -:101A600087ECF690FC31E004F090FC307003E00469 -:101A7000F009E970010A90FC3212047790FC2912F7 -:101A800004809000041201EC30E40E90FC2EE0047F -:101A9000F090FC2D7003E004F07886068081788851 -:101AA000E6FDE4FEFFEECDFC90FC31E02CF090FC76 -:101AB00030E03DF07888E6FDE4FEFFEECDFC90FCE2 -:101AC00034E02CF090FC33E03DF0788506021A0DEE -:101AD00075660022E53D053D047002B2B022C0E00B -:101AE000C0F0C082C083C0D0E8C0E0E9C0E0EAC076 -:101AF000E0EBC0E0ECC0E0EDC0E0EEC0E0EFC0E045 -:101B000090FF92E01201B71B29301B29321B383895 -:101B10001B4A3A1B5C3E1B74441B68461B80501BCF -:101B2000C2521BA1541BE35600001C0490FF92E01C -:101B30007F00FE7C011231FB021C14E4FF04FE7CDA -:101B4000031231FB742090FFFEF0021C14E4FF042A -:101B5000FE7C021231FB744090FFFEF0021C14E484 -:101B6000FF04FE7C041231FB021C14E4FF04FE7C23 -:101B7000051231FB021C14E4FF04FE7C061231FB4B -:101B8000021C1490FFA5E07D0090FBF8CDF0A3CDE2 -:101B9000F090FBF9E0FCF58390FBF8E04433FD1294 -:101BA0001CA7807390FFB5E07D0090FBFACDF0A3F9 -:101BB000CDF090FBFBE0FCF58390FBFAE04443FDA5 -:101BC000121CA7805290FFA6E07D0090FBFCCDF098 -:101BD000A3CDF090FBFDE0FCF58390FBFCE04434EA -:101BE000FD121CA7803190FFB6E07D0090FBFECD7A -:101BF000F0A3CDF090FBFFE0FCF58390FBFEE0440A -:101C000044FD121CA7801090FF92E07D00FCED4483 -:101C1000AAFD121CA78000E490FF92F0D0E0FFD054 -:101C2000E0FED0E0FDD0E0FCD0E0FBD0E0FAD0E078 -:101C3000F9D0E0F8D0D0D083D082D0F0D0E0320517 -:101C400081058105810581A881181818EDF608EC39 -:101C5000F690FF5AE020E70280F790FF59E07D0000 -:101C6000A88118CDF6CD08F67D03A881E618FCE61C -:101C7000CC25E0CC33CCDDF9CCF6CC08F6A8811825 -:101C8000E644F8F6A881181818E6FD08E6FCA881D5 -:101C9000188683088682EDF0A3ECF0740290FF5A58 -:101CA000F0158115811581158122E5812405F581C5 -:101CB000E4A88118F6A88118181818EDF608ECF6B3 -:101CC00090FBF5E024F85003021DC8E4A881181821 -:101CD000F6A88118E6FEA88118181818E6FD08E68F -:101CE000FC7F00EF24F8404DE4EF25E0247DF582F1 -:101CF000E434FCF583E0FBA3E06C7003FAEB6D7059 -:101D0000097401A8811818F6802BE4EF25E0247DE2 -:101D1000F582E434FCF5837A00E054F0CCF8CCCDC5 -:101D2000F9CDFB7800E954F0F9EA687002EB6970CC -:101D3000010E0F80AEA88118EEF6A88118181818A9 -:101D4000EDF608ECF6A881EFF6A8811818E6707990 -:101D5000A88118E624F74071A88118181818E654CD -:101D60000FA881F664046017A881E664036010A8D8 -:101D70008118181818E6FD08E6FC121C3C804A7C05 -:101D80000A12315BA88118181818E6FD08E6FC90C5 -:101D9000FBF4E025E0247DF582E434FCF583EDF0EE -:101DA000A3ECF090FBF4E0FFE4EF045407FF90FB9A -:101DB000F4F090FBF5E004F01231F490FBF6E070E3 -:101DC00008E4FEFF7C0F1231FB802790FBF7E00454 -:101DD000F0543F701D90FBF7E044FE7D00FC90FB4B -:101DE000F4E025E0247DF582E434FCF583EDF0A3F6 -:101DF000ECF0E58124FBF58122788B7600788C76F7 -:101E000000740190FBF6F01230E690FBF5E06057AD -:101E10007C0A12315B90FBF3E025E0247DF582E43F -:101E200034FCF583E0FDA3E0FC90FBF3E025E02427 -:101E30007DF582E434FCF583E4F0A3F090FBF3E05D -:101E4000FFE4EF045407FF90FBF3F090FBF5E01480 -:101E5000F07889EDF608ECF61231F47889E6FD08A1 -:101E6000E6FC1208DA80A312324890FF93E04401A6 -:101E7000F0B2B3788B06B60011788B7600788CE6DA -:101E8000F40404A2E092B4788CF6021E07E490FBFE -:101E9000F6F090FBF5E07D00FCED44CFFD121C3C1C -:101EA000123169221230E6E5706449456F60159081 -:101EB000FF83E0540F7D00D39570ED956F500512B0 -:101EC0002F2F8003122FFF123169221230E6E570A6 -:101ED0006449456F6005123039800E90FF80E04400 -:101EE00008F090FF83E0547FF0123169221230E64F -:101EF0008C54EC54F0B41015756A357569FC75682E -:101F000001E56A2403F56AE5693400F569E4F557EB -:101F1000F556E556C394015027E554540FFCAD6ABD -:101F2000AE69AF68120E778C55EC60028012056ABC -:101F3000E56A700205690557E5577002055680D2BB -:101F4000E554540F249DF8C654FEF6E554540F7F13 -:101F500000FE7C121231FBE5551470097D007C09EE -:101F60001225268007AD577C0012252612316922E2 -:101F70001230E690FFFCE04402F090FF00E030E712 -:101F80001390FF83E04480F0436D8090FFFCE044B9 -:101F900001F0801190FF82E04408F0536D7F90FFC4 -:101FA000FCE054FEF090FF81E04480F01225D990CF -:101FB000FFFEE04405F090FFFCE054FDF0123169B3 -:101FC000221230E67C011232A978ADE64402F674A2 -:101FD000FEFC04FD121CA790FF5AE030E70280F7D8 -:101FE000E4F54E754D10AC4EAD4DE54E154E7002FC -:101FF000154DEC4D600280EE4387011231692212CB -:1020000030E67C0212317578ADE654FDF612316986 -:10201000221230E678ADE630E02C78ADE630E126ED -:1020200078ADE6FCF58318E644F0FD121C3C90FF09 -:10203000FCE04420F07C021232A978ADE654FDF6B3 -:10204000741A90FFFEF078ADE6FCF58318E644F1D3 -:10205000FD121C3C12316922756D0090FFFFE0609B -:1020600003436D01756E00E4F56CF56BE4F56F7577 -:102070007049748490FF82F0748490FF80F07480C3 -:1020800090FF58F0748090FF5AF0AD46AF457E0047 -:10209000EE24FE5003022124E4EE75F007A4247F11 -:1020A000F582E434F8F583E0FFE4EF5480FDE4EFDB -:1020B000540F14FFED6038E4EF75F008A42448F5E0 -:1020C00082E434FFF5837490F0E4EF75F008A42403 -:1020D0004AF582E434FFF5837480F0E4EF75F0088C -:1020E000A4244EF582E434FFF5837480F08034E458 -:1020F000EF75F008A42408F582E434FFF5837490AA -:10210000F0E4EF75F008A4240AF582E434FFF583C7 -:10211000E4F0E4EF75F008A4240EF582E434FFF552 -:1021200083E4F00E02208D8D468E448F45747F909F -:10213000FFFDF0749090FFFCF0228C58EC24F650D8 -:1021400006E5582437FC22E5582430FC22122523CA -:10215000EC700302225E755C03AE5B7F00E55C15EC -:102160005C6480247F5035EF2400F582E434FBF575 -:1021700083E0FE24FE501EEF7D00FCE4FB7474C37C -:102180009CFAEB9DFBEE7D00FCEAC39CED6480CBEA -:1021900064809B50028005EF2EFF80C18E5B8F5ABA -:1021A000E55C6480247F500302225EE55A248E5051 -:1021B0000302225E855A5D755B00AE5AAF5B9035B7 -:1021C0009CE493F55CE55C155C6480247F5018EE1C -:1021D0002400F582E434FBF583E0FCEF90359C931A -:1021E0006C70040E0F80DE8E5A8F5BE55C64802479 -:1021F0007F406E755E017560E8755FFFE55D2402E6 -:10220000F55A755C07E55C334057AD60AE5FAF5E75 -:10221000E55CF5823395E0F5831201ECC4540FFCC4 -:10222000122137E55A2400F582E434FBF583ECF003 -:10223000055A055AAD60AE5FAF5EE55CF582339539 -:10224000E0F5831201EC540FFC122137E55A24000B -:10225000F582E434FBF583ECF0055A055A155C80F1 -:10226000A4740290F851F090F86B79757A357B2759 -:1022700078011203F5756A357569FC756801E4909B -:10228000FF83F0748090FF81F0755902E55975F075 -:1022900007A4247FF582E434F8F583E0788FF6FC18 -:1022A000540F14FC788FECF6E55975F007A42481DF -:1022B000F582E434F8F583E0789276FD0876E8FC60 -:1022C000788FE675F008A42448F582E434FFF5839E -:1022D000E4F0788FE675F008A4244FF582E434FF2B -:1022E000F583ECF07892E6FF08E67E03CFC313CFC8 -:1022F00013DEF9FE788FE675F008A42449F582E430 -:1023000034FFF583EEF0788FE675F008A4244AF5E3 -:1023100082E434FFF5837480F07890ECF67D0078E9 -:1023200093E62CF618E63DF67892E6FD08E67C0387 -:10233000CDC313CD13DCF9FC788FE675F008A42427 -:102340004DF582E434FFF583ECF0788FE675F00804 -:10235000A4244EF582E434FFF583E4F07892E6FDA0 -:1023600008E6FC788FE6FF7E00EE24FE5003022490 -:10237000DDE4EE75F007A4247FF582E434F8F583FC -:10238000E0FFE4EF5480FAE4EF540F14FFE4EE753D -:10239000F007A42481F582E434F8F583E07890F620 -:1023A000E4EE1313548024F0F8E434FDF9E8FCE97A -:1023B000FD8A5AEA700302244AE4EF75F008A42467 -:1023C00048F582E434FFF583E4F07890E6FAE4EF30 -:1023D00075F008A4244FF582E434FFF583EAF0EDAC -:1023E000FBEC7A03CBC313CB13DAF9FAE4EF75F005 -:1023F00008A42449F582E434FFF583EAF07890E6F6 -:102400007B00FAEC2AFCED3BFDFBEC7A03CBC3131B -:10241000CB13DAF9FAE4EF75F008A4244DF582E461 -:1024200034FFF583EAF0E4EF75F008A4244AF5825E -:10243000E434FFF5837480F0E4EF75F008A4244ED3 -:10244000F582E434FFF5837480F00224D9E4EF755B -:10245000F008A42408F582E434FFF583E4F07890D2 -:10246000E6FAE4EF75F008A4240FF582E434FFF5F2 -:1024700083EAF0EDFBEC7A03CBC313CB13DAF9FA62 -:10248000E4EF75F008A42409F582E434FFF583EA4B -:10249000F07890E67B00FAEC2AFCED3BFDFBEC7A51 -:1024A00003CBC313CB13DAF9FAE4EF75F008A424D5 -:1024B0000DF582E434FFF583EAF0E4EF75F008A44B -:1024C000240AF582E434FFF583E4F0E4EF75F008C4 -:1024D000A4240EF582E434FFF583E4F00E022366B3 -:1024E0008E597892EDF608ECF6788FEFF6122055BB -:1024F000228C26EC30E718E526540F1475F008A45A -:102500002448F582E434FFF583E054DFF08016E5DB -:1025100026540F1475F008A42408F582E434FFF55E -:1025200083E054DFF0227C0022EC90FC37F08C2416 -:10253000ED2403F5257D00D39572ED95714003855B -:102540007225E52524B75009752503740290FC37E0 -:10255000F0AC2512302422E4F56CF56B12255D22D7 -:1025600090FC35E06573600E740490FC37F0E4F580 -:102570006B756C0380467D73E4FEFF79357AFC7BD6 -:10258000017405780012033FE56C2403F56CE56BDC -:102590003400F56BE56CD39572E56B95714006855B -:1025A000726C85716BD3E56C9448E56B9400400CBC -:1025B000740290FC37F0E4F56B756C03AC6C123070 -:1025C0002422EC90FC37F0E4F56CF56B8C32EC6077 -:1025D0000512301580057C001230242290FF93E014 -:1025E0004401F0B2B390FF04E0F54A90FF06E0FD2D -:1025F000A3E0ED7D00FC7D00FC90FF06E0FFA3E082 -:102600007E00FFE4FEEC4EFCED4FFDC3EC9448ED84 -:102610009400502290FF06E0FDA3E0ED7D00FC7DDC -:1026200000FC90FF06E0FFA3E07E00FFE4FEEC4E1E -:10263000FCED4FFD8004E4FD7C488C728D7190FFB1 -:1026400002E0FDA3E0ED7D00FC7D00FC90FF02E0D8 -:10265000FFA3E07E00FFE4FEEC4EF54CED4FF54BA2 -:10266000756A357569FC7568017D357EFC7F017979 -:1026700073E4FAFB7405780012033F754900E549DD -:1026800024FE4019AD6AAE69AF68E412030F054934 -:102690000DED70010E8D6A8E698F6880E1756A3567 -:1026A0007569FC75680190FF00E05460B400028019 -:1026B00006D35003022C6DE54A540FF549E54A5400 -:1026C00080A2E0920290FF01E0120181000B2C68D1 -:1026D00026E528032C68290F2C6829F22A262B8D41 -:1026E0002B902BD02C112C3FE56D30E70EE54C459F -:1026F0004B7008E572640245716003022C6A90FF1A -:1027000000E0541FB400028003D34029E54A60036F -:10271000022800AD6AAE69AF68740112030F78AD8C -:10272000E630E00BAD6AAE69AF68740212030F7C4D -:102730000212302422B401028003D3401BE56D2035 -:10274000E107E54A6003022800E54A24FE5003023F -:1027500028007C0212302422B402028006D35003E7 -:102760000227FEE56D20E10DE54A6009E54A648037 -:102770006003022800AC4A1230AB4003022800E597 -:1027800049702530021190FF80E05408AD6AAE69AF -:10279000AF6812030F800F90FF82E05408AD6AAE5D -:1027A00069AF6812030F803D154930021DE5497578 -:1027B000F008A42448F582E434FFF583E05408AD22 -:1027C0006AAE69AF6812030F801BE54975F008A473 -:1027D0002408F582E434FFF583E05408AD6AAE695D -:1027E000AF6812030FAD6AAE69AF681201E6600B05 -:1027F000AD6AAE69AF68740112030F7C0212302417 -:10280000228000022C6AE56D20E706E572457160C2 -:1028100003022C6A90FF00E0541FB400028003D32F -:10282000401AE54C14454B7004E54A600302290C3C -:1028300078ADE654FEF67C0012302422B40102800A -:1028400003D3402AE56D20E108E56D20E00302296D -:102850000CE56D30E004E54A700BE56D30E109E50B -:102860004A24FE500302290C7C0012302422B402B8 -:10287000028006D3500302290AE54C454B6003024F -:10288000290CAC4A1230AB400302290CE56D20E163 -:1028900007E56D20E0028077E56D30E006E54960F0 -:1028A00002806CE549700F90FF82E054F7F090FFD2 -:1028B00080E054F7F022E549B401028003D34009D7 -:1028C0007D017C03120F098011B402028003D34002 -:1028D000097D017C04120F0980001549300215E5BD -:1028E0004975F008A42448F582E434FFF583E054E8 -:1028F000F7F08013E54975F008A42408F582E43464 -:10290000FFF583E054F7F07C0012302422800002AF -:102910002C6AE56D20E706E57245716003022C6ABA -:1029200090FF00E0541FB400028003D3401AE54C2E -:1029300014454B7004E54A60030229EF78ADE64484 -:1029400001F67C0012302422B401028003D3402916 -:10295000E56D20E108E56D20E0030229EFE56D302B -:10296000E004E549700BE56D30E108E54924FE50CF -:1029700002807F7C0012302422B402028003D34004 -:102980006FE54C454B60028069AC4A1230AB4002A7 -:102990008060E56D20E107E56D20E0028054E549A7 -:1029A000701430020990FF80E04408F0800790FF27 -:1029B00082E04408F022E56D30E13315493002151C -:1029C000E54975F008A42448F582E434FFF583E076 -:1029D0004408F08013E54975F008A42408F582E462 -:1029E00034FFF583E04408F07C001230242280029A -:1029F0008000022C6AE56D20E712E5724571700CCB -:102A0000E54A700890FF00E0541F6003022C6AE55D -:102A10004C90FFFFF090FFFFE06005436D018003E5 -:102A2000536DFE7C0012302422E56D30E70EE57216 -:102A30004571600890FF00E0541F6003022C6AADEE -:102A40004BE54CED7D00FC7D00FCBD0002800302E7 -:102A50002B88B401028003D34032E54A7005E54C6F -:102A6000FC6003022B8A756A407569F8756801D3AA -:102A7000E5729412E57194004006E4FD7C12800436 -:102A8000AC72AD718C708D6F12303922B40202803D -:102A900003D34059E54A6003022B8AE54CFC7027BA -:102AA000756A527569F8756801D3E5729419E57114 -:102AB00094004006E4FD7C198004AC72AD718C700A -:102AC0008D6F1230398025756A6B7569F8756801EC -:102AD000D3E5729427E57194004006E4FD7C2780DD -:102AE00004AC72AD718C708D6F12303922B4030258 -:102AF0008006D35003022B88E54CF549700F90FFF8 -:102B000004E0FDA3E04D6003022B8A801890FB02D5 -:102B1000E0FDA3E0FC90FF05E06C700790FF04E08F -:102B20006D60028068E4F570F56F7F00E54914C5BB -:102B300049600FEF2400F582E434FBF583E02FFFBA -:102B400080EA8F4AE54A2400F582E434FBF583E00D -:102B50007D00D39572ED95714006AC72AD71800F1A -:102B6000E54A2400F582E434FBF583E07D00FC8C2B -:102B7000708D6FE54A2400FCE434FBFDFEECFD7F24 -:102B8000018D6A8E698F68123039228000022C6AAA -:102B9000022C6AE56D30E719E5721445717012E593 -:102BA0004A700EE54C454B700890FF00E0541F60E2 -:102BB00003022C6AE56D20E008E56D20E103022C9C -:102BC0006A756A6EE4F569F568E4F56F04F57012EC -:102BD000303922E56D20E712E5724571700CE54A47 -:102BE000700890FF00E0541F6003022C6AE56D201E -:102BF000E007E56D20E1028074854C6EE56E70089B -:102C0000436D01536DFD8006536DFE436D027C00E4 -:102C100012302422E56D30E71AE572144571701305 -:102C2000E54A700FE54C454B700990FF00E0541FDA -:102C30001460028038E56D20E10280317C011230A1 -:102C40002422E56D20E715E5724571700FE54C45CE -:102C50004B700990FF00E0541F146002800FE56D77 -:102C600020E10280087C00123024228000022F2BF9 -:102C7000B440028006D35003022F2190FF01E09060 -:102C8000FC35F0E54A90FC36F0E490FC37F0E56A5C -:102C90002403F56AE5693400F569AD4BE54C856AB6 -:102CA00082856983CDF0A3CDF090FF01E01201B7DA -:102CB0002CD8012CFE022D28032D52042DA0052D09 -:102CC000DD062E03072E29082E55092E7B0B2EA17B -:102CD0000C2EB0802EB08100002F0EE56D20E7068F -:102CE0007C051225BF227D247E357F0279387AFC4F -:102CF0007B017408780012033F7D087C00122526B2 -:102D000022E56D20E7067C051225BF22E54AB403C3 -:102D1000004010B40500500BE54A7F00FE7C101205 -:102D200031FB227D007C0712252622E56D20E70677 -:102D30007C051225BF22E54AB403004010B405000B -:102D4000500BE54A7F00FE7C111231FB227D007C96 -:102D50000712252622E56D20E7067C051225BF22F5 -:102D6000E54AB405028003D3400AE4FF04FE7C0A6E -:102D70001231FB22B401028003D3400AE4FF04FEB7 -:102D80007C081231FB22B403004010B40500500B44 -:102D9000E54A7F00FE7C131231FB227D007C071286 -:102DA000252622E56D20E734D3E5729448E5719439 -:102DB000005006E572457170067C021225BF22E5BF -:102DC0004AB40103B3400BC3B403004009B4060086 -:102DD00050041230D1227C071225BF2212255D2219 -:102DE000E56D20E71DE54AB403004010B40500502E -:102DF0000BE54A7F00FE7C161231FB227C07122570 -:102E0000BF2212255D22E56D20E71DE54AB40300CF -:102E10004010B40500500BE54A7F00FE7C191231CA -:102E2000FB227C071225BF2212255D22E56D20E7DB -:102E300023748190FF93F0E54AB403004010B40579 -:102E400000500BE54A7F00FE7C171231FB227C0705 -:102E50001225BF2212255D22E56D20E71DE54AB44B -:102E600003004010B40500500BE54A7F00FE7C18BB -:102E70001231FB227C071225BF2212255D22E56D4F -:102E800020E71DE54AB403004010B40500500BE5EF -:102E90004A7F00FE7C151231FB227C071225BF22DF -:102EA00012255D22E56D20E7067C071225BF221260 -:102EB000255D22E56D30E72090FF00E0541F701083 -:102EC00090FF01E0B48005122554800312255D2295 -:102ED0007D007C051225262290FF00E0541F60062D -:102EE0007C051225BF22D3E5729448E57194005009 -:102EF0000BC3E5729407E571940050067C0312251C -:102F0000BF22E54AB405041230D1227C071225BF46 -:102F100022E56D30E7087D007C05122526227C0520 -:102F20001225BF22B420028003D340008000122F5C -:102F3000FF2275430090FF83E0540FD39543402454 -:102F4000E54324F0F582E434FEF583E0AD6AAE6932 -:102F5000AF6812030F05430DED70010E8D6A8E6987 -:102F60008F6880D1E5437D00FCC3E5709CF570E57A -:102F70006F9DF56FE570456F6006E490FF83F0226A -:102F800090FF82E04408F0E4F56F75704990FC35DD -:102F9000E0B405028003D3404090FC36E0F543B432 -:102FA00005028003D3400AE4FF04FE7C0B1231FBD0 -:102FB00022B401028003D3400AE4FF04FE7C09121C -:102FC00031FB22B403004010B40500500BE5437FF1 -:102FD00000FE7C141231FB2222B480004023B48214 -:102FE00000501E7C357DFC12177E7D008C6C8D6B35 -:102FF00090FC37E06005122FFF80057C0012302422 -:10300000222290FF83E0547FF090FF82E04408F09A -:1030100090FF80E04408F02290FF82E04408F090A6 -:10302000FF80E04408F0228C237D008C708D6F754A -:103030006A357569FC7568011230392290FF83E0AA -:10304000547FF0E5706449456F700122C3E57094C8 -:1030500008E56F94004015752108E5217D00FCC34B -:10306000E5709CF570E56F9DF56F8009857021E432 -:10307000F56F757049752200E522C395215026AD84 -:103080006AAE69AF681201E6FCE52224F8F582E435 -:1030900034FEF583ECF005220DED70010E8D6A8E85 -:1030A000698F6880D3E521547F90FF81F0228C489E -:1030B0007F00EF24FD4019E4EF75F007A4247FF5AD -:1030C00082E434F8F583E065487002D3220F80E291 -:1030D0008F47C32285727085716F90FF82E054F72D -:1030E000F090FF83E0547FF022C000C001C002C016 -:1030F00006C007E5782408F8860653067F7CFF1291 -:10310000315B7C007D00E57B6046FF90FD95E054DF -:103110007F6E700FC083C082A3E0FDA3E0FCA31507 -:103120007B8007A3A3A3DFE68026DF06D082D083BF -:10313000801EE0F8A3E0F9A3E0FAD082D083E8F0A3 -:10314000A3E9F0A3EAF0A3C083C082A3A3A380DA1B -:103150001231F4D007D006D002D001D0002285A8C9 -:103160007A75A888EC70027C3F8C7922E578240877 -:10317000F8760012324880FBC000C001C002C006D1 -:10318000C007AE047CFF12315BE57B6042FF90FD1F -:1031900095E0547F6E700BC083C082A3A3A3157B00 -:1031A0008007A3A3A3DFEA8026DF06D082D0838036 -:1031B000D8E0F8A3E0F9A3E0FAD082D083E8F0A346 -:1031C000E9F0A3EAF0A3C083C082A3A3A380DA78C6 -:1031D00008087918097C01E6547F6E70067600773E -:1031E00000800608090CBC08EE1231F4D007D006A6 -:1031F000D002D001D00022757900857AA822C0F0D3 -:10320000C082C083C3E57B24E8500512324880F4B5 -:10321000EC6031903523E493C39C4028C0047CFFCC -:1032200012315BD004430480E57B75F003A4249540 -:10323000F582E434FDF583ECF0EFA3F0EEA3F005A6 -:103240007B1231F4D083D082D0F022C0047C20D213 -:103250008CD28DD504FDD0042275A8007588007528 -:10326000B80075F00075D000E4F8900000F608B8DA -:1032700000FB020000C3ED940250047D037CE8ECE7 -:10328000F4FCEDF4FD0CBC00010D8C7F8D7E22C39F -:10329000EC94BCED940250047D077CD0ECF4FCED82 -:1032A000F4FD0CBC00010D8C7D8D7C22EC700122A4 -:1032B000C000E5782418F8A604E5782408F8C65478 -:1032C0007FF6E630E703D0002212324880F4C28C49 -:1032D000857C8C857D8AD28CC0E0C0D0C0F0C08255 -:1032E000C083C000C001C002C003C004C005C00646 -:1032F000C007121AD1E5782408F8E66024E578249E -:1033000010F8A681E57875F021A4248DF582E434C7 -:10331000FCF58378AEE58104C398F9E6F008A3D9FB -:10332000FA74082578F8057808E65480700CE5787A -:10333000B407F3780875780080EFE5782410F886F4 -:1033400081E57875F021A4248DF582E434FCF583C1 -:1033500078AEE58104C398F9E0F608A3D9FAD0075E -:10336000D006D005D004D003D002D001D000D08345 -:10337000D082D0F0D0D0D0E032C0E0C0D0C000C009 -:1033800001C002C28E857E8D857F8BD28E781979A1 -:10339000097A07E77004A600800BE6600816E6705D -:1033A00004E74480F70809DAEAE579601314F5794F -:1033B000700EE5782408F876001231F4D28CD28DA4 -:1033C000D002D001D000D0D0D0E0327581AD742AC7 -:1033D00090FF93F0757F30757EF8757D60757CF099 -:1033E00012053612347C12173490FF93E04401F03A -:1033F000B2B31234A612325680DA22C0007C01EC3D -:103400002408F8E660090CBC08F512324880EED0BA -:103410000022C0F0C082C083C000C006C007ED24F7 -:1034200010F876BCED75F021A4248DF582E434FC0F -:10343000F583C082C083A3A3E4780DF0A3D8FCEC8D -:10344000547F75F002A424EFF582E5F03434F5835F -:10345000E493FE740193F5828E83E493FE740193EA -:10346000FFD083D082EFF0A3EEF0ED2408F8EC4417 -:1034700080F6D007D006D000D083D082D0F022755D -:103480007800757B007A087918780876007700084C -:1034900009DAF8E478087480447FF674014410F582 -:1034A0008975B808D2ABD2A9227581ADD28ED28CE3 -:1034B000D2AFE57B6032FF90FD95E05480602478C8 -:1034C000087908E0547FFA7B00E6547FB502027B5E -:1034D000FF08D9F5EB700CEAF01233F8AD04AC023A -:1034E00012340FA3A3A3DFD212324880C57C017D22 -:1034F000002204F504E904ED04E104DD04D904E547 -:1035000004F1049D04A104CD04D104990499049903 -:1035100004D504B504AD04B104A904C104BD04B9C3 -:1035200004C504C904A5190103002200480200488B -:103530000E301420C81AD0180A0C05060203010226 -:103540000001CE0181010000C00080006000300059 -:1035500018001000080004000200010008183828B4 -:103560000C05100A0200000000000301100A02000E -:1035700000000000FBE0FBF209022700010200A0AE -:10358000320904000003FF0000000705810240002B -:103590000007050102400000070583030200012225 -:1035A0000354005500530042003300340031003012 -:1035B000002000200020002000200020002000200B -:0535C000000000000006 -:00000001FF diff --git a/firmware/ti_5052.fw.ihex b/firmware/ti_5052.fw.ihex deleted file mode 100644 index b529e07cd6ec..000000000000 --- a/firmware/ti_5052.fw.ihex +++ /dev/null @@ -1,862 +0,0 @@ -:10000000C1350002001E021B32FFFFFFFFFF02325C -:100010006AFFFFFFFFFFFFFFFFFFFFFFFFFF02334E -:10002000157581C890FEF08583A012347DEC4D607B -:100030006A78A58003760018B896FA7879800376F6 -:100040000018B85FFA78208003760018B820FA907C -:10005000FEE5AE83AF8290FD001200A16005E4F0E2 -:10006000A380F690FEF0A88290FEF0A982E8C399E2 -:10007000500576000880F69000FF1200AA90010358 -:100080001200AA9001071200AA90010B1200C8905A -:1000900001111200C89001171200C875D000123368 -:1000A0006702011DEF65827003EE658322E493F819 -:1000B000740193F9740293FE740393F5828E83E8BE -:1000C00069700122E493F6A30880F4E493FC7401C0 -:1000D00093FD740293FE740393FF740493F8740504 -:1000E00093F58288831200A1700122E493A3A88370 -:1000F000A9828C838D82F0A3AC83AD8288838982B0 -:1001000080E3212104927A7A0492A6A80492FEF058 -:1001100004940494FBFB04990494FBFB04F904F994 -:1001200080FED0F030F00920F303F68010F7800D48 -:1001300030F10920F303F28004F38001F020F4048D -:10014000FCD0E0CC22CCC0E012015A02014BBC0032 -:1001500005D0F0ACF022C313DCFC020121BF000982 -:10016000ED258275F001F8E622BF010FED2582F53D -:1001700082EE3583F58375F004E022ED258275F07B -:1001800002F8E222D083D082F5F0C3E493A3C5F055 -:1001900095F0C0E0C3D0F0E493A395F04012A3A380 -:1001A000C3E5F033500205832582F58250020583B2 -:1001B000740193C0E0E493C0E022D083D082F5F0D4 -:1001C000E49370097401937004A3A3800C740293E8 -:1001D00065F06005A3A3A380E7740193C0E0E493F6 -:1001E000C0E02212025B0201F21202AF0201F2121F -:1001F00002D30201F230E00720E302E622E72230D8 -:10020000E10720E302E222E32230E202E022E4936B -:10021000221202D302021A1202AF02021AABF01229 -:100220000224CBC5F0CB2230E01020E306E6F5F047 -:1002300008E622E7F5F009E7192230E11020E3068D -:10024000E2F5F008E222E3F5F009E3192230E206D4 -:10025000E0F5F0A3E022E493F5F074019322BB00F3 -:1002600003740922BB010789828A83740422BB02BA -:100270000789828A83741022740A2202027BBB00DF -:1002800007E92582F8740122BB010DE92582F58278 -:10029000EA3583F583740422BB020DE92582F582D9 -:1002A000EA3583F583741022E92582F8740222026C -:1002B00002AFBF0005EDF8740122BF01078D828EE9 -:1002C00083740422BF02078D828E83741022EDF89E -:1002D0007402220202D3BF0007ED2582F8740122C6 -:1002E000BF010DED2582F582EE3583F5837404227E -:1002F000BF020DED2582F582EE3583F58374102261 -:10030000ED2582F8740222020307C0E012025B02AC -:10031000031FC0E01202AF02031FC0E01202D302AB -:10032000031F30E00B20E304D0E0F622D0E0F722F8 -:1003300030E10B20E304D0E0F222D0E0F322D0E061 -:10034000F022C9CDC9CACECACBCFCB120352EDF928 -:10035000EEFAEFFB22BB002FBF000AFAEDF8E7F63A -:100360000809DAFA22BF01128D828E83F802036F28 -:1003700009A3E7F0D8FA2202037AFAEDF8E7F208C7 -:1003800009DAFA22020384BB014DBF001489828A74 -:1003900083F9EDF802039608A3E0F6D9FA220203E6 -:1003A000A7BF01228D828E83FB08C9C582C9CAC539 -:1003B00083CAE0A3C9C582C9CAC583CAF0A3DBEA60 -:1003C000D8E8220203CA8D828E83F9EDF8E0F208A4 -:1003D000A3D9FA220203D4BB024DBF001289828A3C -:1003E00083F9EDF80203E608A3E493F6D9F922BFF6 -:1003F00001238D828E83FB08C9C582C9CAC583CA01 -:10040000E493A3C9C582C9CAC583CAF0A3DBE9D8EE -:10041000E72202041989828A83F9EDF8E493F2084D -:10042000A3D9F92202042ABF000DFAEDF8E3F60879 -:1004300009DAFA22020434BF01128D828E83F80297 -:10044000044109A3E3F0D8FA2202044CFAEDF8E3E0 -:10045000F20809DAFA22020456E6FB08E6FA08E690 -:10046000F904F61870010622E6FF08E6FE08E6FD2C -:1004700022EFF0A3EEF0A3EDF022EBF0A3EAF0A35D -:10048000E9F022E0FFA3E0FEA3E0FD22E0FBA3E011 -:10049000FAA3E0F9220000000000000004F9005B6C -:1004A00005730026059A00330A0B005B0A7700608B -:1004B0001552005B0CFB005B09AB005B09E2005BC3 -:1004C0000DC2005B0BF3005B0A1E005B0A53005B6E -:1004D000174A0033176000341E4D00431EF00044DD -:1004E000205D0044204B00471F1700471FBC004DF4 -:1004F000200D004F1F39005831F5005B7CCC7DFF8B -:10050000121CFE22749090FF91F090FFFCE020E717 -:100510002DC2AFAE59AF58755A20E55A14C55A606E -:1005200019E4FE7F05EE4FCE24FFCECF34FFCF601F -:1005300007E490FF92F080ED80E08E598F582212F0 -:1005400005017D077CB71232117D0F7C6E12322BB4 -:1005500078977A06E4F608DAFC7A061205CF7C036F -:10056000120E577C04120E5712218BE4FEFF7C0FF3 -:1005700012319AD2A822123085E490FD40F090FF0B -:10058000F0E030E408740190FD41F08005E490FD56 -:1005900041F07D0A7C001224B1123108221230850C -:1005A00090FD41E014700E90FFF0E04410F07C00EC -:1005B00012254A801990FD41E0700E90FFF0E05442 -:1005C000EFF07C0012254A80057C1712254A123173 -:1005D000082290FFF0E054ABF090FFF0E04420F0F0 -:1005E000228C378D36787CEDF608ECF6EDFEECFDCE -:1005F0007F019000051201EC787AF6787CE6FD0820 -:10060000E6FCEDFEECFD7F019000041201EC540FBE -:10061000FC7D7A12179D787AE6700DAD3AAE39AF4F -:1006200038E412030F7C082290FFF0E054FEF090B3 -:10063000FFF0E054FDF0801E787CE6FD08E6FCED5E -:10064000FEECFD7F0190000812020E25E0440190AF -:10065000FFF3F00206DB787CE6FD08E6FCEDFEEC3D -:10066000FD7F0190000612020E54FE90FFF3F08011 -:100670002B787CE6FD08E6FCEDFEECFD7F019000AA -:100680000812020EFAEB90FFF1F01208CA400DAD0D -:100690003AAE39AF38E412030F7C1822787CE6FDBD -:1006A00008E6FCEDFEECFD7F0190000812020E90C2 -:1006B000FFF1F01208CA400DAD3AAE39AF38E4127E -:1006C000030F7C1822787CE6FD08E6FCEDFEECFDCD -:1006D0007F0190000612020E440190FFF3F0787D36 -:1006E000E62403F618E63400F6787AE624FE50098C -:1006F00090FFF0E054FDF0800790FFF0E04402F03E -:10070000E490FFF1F0787B7600787AE624FFFCE451 -:1007100034FFFD787BE67F00FEECD39EEF6480CD56 -:1007200064809D402F1208AF400F787BE6AD3AAE53 -:1007300039AF3812030F7C182290FFF2E0FC787C6E -:100740008683088682ECF0787B06A3787CA68308F3 -:10075000A68280B51208AF400F787BE6AD3AAE397D -:10076000AF3812030F7C182290FFF2E0FC787C86F1 -:1007700083088682ECF0787AE6AD3AAE39AF38126B -:10078000030F7C00228C378D36787CEDF608ECF672 -:10079000EDFEECFD7F019000051201EC787BF67810 -:1007A0007CE6FD08E6FCEDFEECFD7F019000041206 -:1007B00001EC540FFC7D7B12179D787BE670037C67 -:1007C000082290FFF0E054FEF090FFF0E054FDF0BE -:1007D000801B787CE6FD08E6FCEDFEECFD7F0190D9 -:1007E000000812020E25E090FFF3F0805B787CE6B3 -:1007F000FD08E6FCEDFEECFD7F0190000612020E06 -:1008000054FE90FFF3F08021787CE6FD08E6FCEDD5 -:10081000FEECFD7F0190000812020EFAEB90FFF152 -:10082000F01208CA40037C1822787CE6FD08E6FC3A -:10083000EDFEECFD7F0190000812020E90FFF1F03A -:100840001208CA40037C1822787DE6240AF618E6CE -:100850003400F6787A7600787BE624FFFCE434FFF7 -:10086000FD787AE67F00FEECD39EEF6480CD648055 -:100870009D4021787C8683088682E090FFF1F0120B -:1008800008CA40037C1822787A06787D06E618703C -:10089000010680C390FFF0E04401F0787C86830875 -:1008A0008682E090FFF1F01208CA40037C18227C97 -:1008B000002290FFF0E020E71290FFF0E030E50921 -:1008C00090FFF0E04420F0C32280E7D32290FFF0B5 -:1008D000E020E31290FFF0E030E50990FFF0E04403 -:1008E00020F0C32280E7D3228C428D417C00ED545E -:1008F000F0FDEC7003ED64307005753E0380037508 -:100900003E04AC3E120F7C758300858340E5415464 -:100910000FF53FE5407004E53F64037035E53E2484 -:10092000FD75F00AA4240AF582E434FDF583E03075 -:10093000E6051210678019E53E2497F8C654FBF6C9 -:1009400078A3E62405F58218E63400F583740FF0E9 -:100950008059E5407004E53F64047048E53E24FD9D -:1009600075F00AA4240AF582E434FDF583E030E54D -:1009700007AC42AD41121C93E54230E21578A7E680 -:1009800030E00F78A7E630E109E4FF04FE7C0412B2 -:10099000319A78A3E62406F58218E63400F58374CC -:1009A0000FF08007E4FC7DEE121C93C2032212308C -:1009B00085120F7C78A3E62406F58218E63400F54C -:1009C00083E090FD40F078A3E62405F58218E63434 -:1009D00000F583E090FD41F0C2037D027C0012240B -:1009E000B112310822123085788FECF6EC2497F89A -:1009F000E630E1077C1312254A800F90FD41E0FDAF -:100A0000788FE6FC1213FD12254A123108221230AB -:100A100085788FECF67D00120F0B12254A123108F3 -:100A200022123085788FECF6EC2497F8E630E20756 -:100A30007C1312254A801B788FE62497F8E620E184 -:100A4000077C1212254A800A788FE6FC12142112C4 -:100A5000254A12310822123085788FECF6EC249763 -:100A6000F8E620E2077C1112254A800A788FE6FC1E -:100A700012152212254A12310822123085788FEC85 -:100A8000F6120F7C78A3E62409F58218E63400F507 -:100A900083E090FD47F078A3E6240AF58218E63457 -:100AA00000F583E090FD48F078A3E62403F5821872 -:100AB000E63400F583E0FC78A3E62404F58218E62A -:100AC0003400F583E0F55C78A3E62402F58218E6AD -:100AD0003400F583E0F55D8C5BE4EC33335401784E -:100AE0008FF66008E55C30E103788F06788FE6903A -:100AF000FD49F078A1E62402F58218E63400F5837A -:100B0000E0FDA3E0540CFCED54E68C5FF55EE55B84 -:100B100030E503435F01E55C20E50EE55B547F7043 -:100B200008E55B20E703435F02E55B30E303435FD7 -:100B300010E55B30E203435F20E55B540360034351 -:100B40005F40E55B30E103435F80E55B30E40343F6 -:100B50005E01E55B30E603435E08E55C20E40EE5FC -:100B60005B547F7008E55B20E703435E10535FFB37 -:100B7000535EF9AD5EE55F90FD42CDF0A3CDF0E5AB -:100B80005D30E30DE55D5430C4540F90FD45F080B9 -:100B900005E490FD45F0E55D540390FD44F0E55D0E -:100BA0005404C31390FD46F090FD44E0700E7D3D6B -:100BB0007EFD7F01740190000912014278A3E624B2 -:100BC00008F58218E63400F583E07C00FD78A3E6A2 -:100BD0002407F58218E63400F583E07F004CFEEF31 -:100BE0004D90FD40F0A3CEF0CEC2037D0A7C0012F2 -:100BF00024B112310822123085788FECF678947681 -:100C0000010876FD0876407891760C789412046598 -:100C10001202147892CBF6CB08F67F00EF24EB405B -:100C20001FE4EF25E09034BFFD93CD0493789366E5 -:100C30007003ED186670067891760080030F80DCF3 -:100C40007890EFF6789412046590000212020E7804 -:100C500092CBF6CB08F65404CB54064B6004789143 -:100C6000760B7893E630E3137894120465900005D0 -:100C70001201EC24FB50047891760D7893E654C071 -:100C80007D0064C04D70047891760B7894120465F1 -:100C90009000041201EC24FC50047891760F7894B3 -:100CA0001204659000061201EC24FD500478917640 -:100CB0000E78941204659000091201EC24FD500492 -:100CC0007891760A7891E6702A788FE6FC120F7C8C -:100CD000789412046578A1E6F978A0E6FA7B0174AD -:100CE0000A780012033FC203788FE6FC12112378C2 -:100CF00091ECF67891E6FC12254A12310822123066 -:100D000085788FECF6120F7C788FE624FD75F00A5B -:100D1000A4241CF582E434FDF583AC82AD8378A075 -:100D20008683088682ECF9EDFA7B0A78011203A724 -:100D3000C203788FE6FC121123123108228D2B8C0E -:100D40002AED60407527017529487528FFE52A249A -:100D5000FDFCE434FFFDEC7C0325E0CD33CDDCF974 -:100D6000FCE5292CF529E5283DF528AD29AE28AF6D -:100D700027748090000612031774809000021203FB -:100D800017120FD3E52B14603B75270175290875E1 -:100D900028FFE52A24FDFCE434FFFDEC7C0325E07C -:100DA000CD33CDDCF9FCE5292CF529E5283DF528E6 -:100DB000AD29AE28AF27E4900006120317E4900097 -:100DC0000212031722123085788FECF6EC2497F884 -:100DD000E630E209788FE6FC121522D200788FE621 -:100DE000FC120F7C7890760090FD41E030E70478AB -:100DF0009076017890E6FD788FE6FC120D3AC203FA -:100E0000300007788FE6FC1214217C0012254A126C -:100E100031082278A3E62404F58218E63400F5832D -:100E2000E04401F078A3E62404F58218E63400F5E6 -:100E300083E030E00280ED78A3E6240BF58218E62B -:100E40003400F583E054F8F078A3E62402F5821824 -:100E5000E63400F583E04480F022C2038C58120F80 -:100E60007C78A0868308868279EE7A347B0A7801C2 -:100E70001203F5120E10AC587D02120D3AC203ACEB -:100E800058121123228D538E528F518C50120F7C89 -:100E9000754F0078A3E62405F58218E63400F58343 -:100EA000E020E416E54F24F64010054FC2037C18FD -:100EB000123248AC50120F7C80D978A3E62405F595 -:100EC0008218E63400F583E020E405C2037C0222A8 -:100ED00078A3E62405F58218E63400F583E0540F84 -:100EE000601678A3E62405F58218E63400F583E061 -:100EF000540FF0C2037C012278A28683088682E028 -:100F0000AD53AE52AF5112030FC2037C00228D319C -:100F10008C30121522E5316020E530B4030C7C01E1 -:100F200012247C7C8112247C800FE530B4040A7C7E -:100F30000212247C7C8212247CAC30120F7CE531BE -:100F4000601A78A48683088682E054E7F0A3A3A3FE -:100F5000A3E054E7F0AC307D02120D3A78A086830E -:100F600008868279F87A347B0A78011203F5C20385 -:100F7000E5302497F8C654FDF6AC30121123228CCC -:100F8000263003051231E780F87C0A1230FAD203CA -:100F9000E52624FD789DF6700978A476FF0876E0B2 -:100FA000800778A476FF0876E2789DE675F010A4B5 -:100FB000ADF0FC24A078A3F6ED34FF18F6789DE69A -:100FC00075F00AA42408FCE434FDFD78A0EDF608D1 -:100FD000ECF61231932278A3E62402F58218E63467 -:100FE00000F583E030E72278A3E62402F58218E6D4 -:100FF0003400F583E0547FF078A3E62402F58218EC -:10100000E63400F583E04480F02278A486830886E5 -:1010100082E0547FF0AD83E5822404FCE43D8C82C1 -:10102000F583E0547FF078A3E6240BF58218E634CC -:1010300000F583E054F8F078A5E62401F58218E67F -:101040003400F583E04403F078A5E62405F5821822 -:10105000E63400F583E04403F078A3E62405F58246 -:1010600018E63400F583740FF02278A4868308868E -:1010700082E0543FF0AD83E5822404FCE43D8C82A1 -:10108000F583E0543FF0789DE6249EF8E6FC78A5D1 -:10109000E62401F58218E63400F583ECF0789DE64D -:1010A000249EF8E6FC78A5E62405F58218E63400CF -:1010B000F583ECF078A3E6240BF58218E63400F50E -:1010C00083E054FB4402F52678A1E62402F5821859 -:1010D000E63400F583E030E50343260178A3E624F7 -:1010E00005F58218E63400F583E030E003120FD3F3 -:1010F000E526FC78A3E6240BF58218E63400F58398 -:10110000ECF078A3E62405F58218E63400F5837444 -:101110000FF078A48683088682E04480F0A3A3A31E -:10112000A3E04480F0228C2A120F7C78A1E62408E8 -:10113000F58218E63400F583E0FC78A3E6240AF58E -:101140008218E63400F583ECF078A1E62407F582F6 -:1011500018E63400F583E0FC78A3E62409F582184C -:10116000E63400F583ECF078A08683088682E0FD03 -:10117000A3E0FCEDFE78A3E62408F58218E634002F -:10118000F583EEF0ECFE78A3E62407F58218E6344A -:1011900000F583EEF08C298D28C3EC9402ED9406C3 -:1011A000400575277C8033D3E5299481E528940197 -:1011B000400575273C8023D3E52994C0E528940099 -:1011C00040057527188013D3E5299430E52894004D -:1011D000400575270C8003752708AF27E4EF547C82 -:1011E0004483FF8F27E527FC78A5E62401F58218C4 -:1011F000E63400F583ECF0E527FC78A5E62405F558 -:101200008218E63400F583ECF0E527FC789DE624AF -:101210009EF8ECF678A3E62402F58218E63400F591 -:1012200083E0F52778A1E62402F58218E63400F57C -:1012300083A3E030E3175327C778A1E62405F5829E -:1012400018E63400F583E09034E993422778A1E66C -:101250002402F58218E63400F583E030E7054327E1 -:101260004080035327BF5327FB78A1E62406F5826D -:1012700018E63400F583E060034327045327FC7825 -:10128000A1E62404F58218E63400F583E042274302 -:101290002780E527FC78A3E62402F58218E63400CF -:1012A000F583ECF078A3E62404F58218E63400F523 -:1012B00083E0F52778A1E62402F58218E63400F5EC -:1012C00083A3E030E1055327DF800343272078A183 -:1012D000E62402F58218E63400F583E030E4055395 -:1012E00027EF800343271078A1E62409F58218E64A -:1012F0003400F583E0B40203432702E527FC78A31A -:10130000E62404F58218E63400F583ECF078A3E6D1 -:101310002403F58218E63400F583E0F52778A1E68A -:101320002409F58218E63400F583E0700553277F21 -:10133000800343278078A1E62402F58218E6340072 -:10134000F583A3E030E00543272080035327DF78AF -:10135000A1E62402F58218E63400F583E030E305C7 -:1013600043274080035327BF78A1E62402F5821863 -:10137000E63400F583E030E005432710800353276F -:10138000EF78A1E62402F58218E63400F583A3E0A5 -:1013900030E40543270880035327F778A1E62402A9 -:1013A000F58218E63400F583A3E030E50543270411 -:1013B00080035327FB78A1E62402F58218E6340067 -:1013C000F583A3E030E60543270180035327FE7829 -:1013D000A1E62402F58218E63400F583A3E030E7A5 -:1013E0000543270280035327FDE527FC78A3E62465 -:1013F00003F58218E63400F583ECF0C2037C00228A -:101400008D278C26ED54031460037C1022E52754AD -:101410007C24FC40037C0B22E5262497F8C644027A -:10142000F67C00228C30120F7CE5302497F8E62001 -:10143000E24FAC307D02120D3AE53024FE4428FC28 -:1014400078A48683088682ECF0AF83E5822404FECC -:10145000E43FFFEC8E828F83F07C038C2CE52CFC28 -:1014600078A5E62401F58218E63400F583ECF0E572 -:101470002CFC78A5E62405F58218E63400F583EC0B -:10148000F0752D01752F48752EFFE53024FDFCE425 -:1014900034FFFDEC7C0325E0CD33CDDCF9FCE52FFA -:1014A0002CF52FE52E3DF52E78A5E62404F58218BF -:1014B000E63400F583E054E7F52CAD2FAE2EAF2DCA -:1014C000E4900002120317E49000061203171201C1 -:1014D000E630E503432C10E52CFC78A5E62404F562 -:1014E0008218E63400F583ECF012106778A3E62446 -:1014F00006F58218E63400F583E0C203FCE53024EB -:1015000097F8C64404F68C2CE530540FC454F07E92 -:1015100000FFEEEF44047D00FFEC4EFCED4FFD12AA -:101520001CFE7C00228C2F120F7C12100778A486E0 -:1015300083088682E05408F0A3A3A3A3E05408F034 -:10154000AC2F7D02120D3AC203E52F2497F8C65442 -:10155000FBF67C00221230857890ECF6EC2497F8AC -:10156000E630E10A7D007C131224B1123108789034 -:10157000E62497F8C64401F67890E6FC120F7C78D2 -:1015800090E624FD75F00AA4241CF582E434FDF5F0 -:101590008378A0E6FA08E6F97B0A78011203A778B7 -:1015A000A0868308868279F87A347B0A7801120350 -:1015B000F5120FD3C2037890E6FC121123788FEC5A -:1015C000F6EC600A7D007C081224B1123108789094 -:1015D000E6FC120F7C78A3E62404F58218E63400BA -:1015E000F583E0441054DFFC78A3E62404F5821868 -:1015F000E63400F583ECF0788FECF6C2037CC81279 -:1016000032487890E6FC120F7C78A3E62404F58239 -:1016100018E63400F583E054EFF0C2037CC81232C0 -:10162000487890E6FC120F7C78A3E62404F5821833 -:10163000E63400F583E04410F0C2037CC81232485F -:101640007890E6FC120F7C78A3E62404F58218E675 -:101650003400F583E04420F0C2037CF01232487875 -:1016600090E6FC120F7C78A3E62405F58218E63498 -:1016700000F583E030E415C2037890E644107F0063 -:10168000FE7C0712319A12310802174978A3E6242A -:1016900004F58218E63400F583E054CFF0C2037CF1 -:1016A000C81232487890E6FC120F7C78A3E6240436 -:1016B000F58218E63400F583E04430F0C2037CF094 -:1016C0001232487890E6FC120F7C78A3E62405F5E8 -:1016D0008218E63400F583E030E414C2037890E623 -:1016E00044107F00FE7C0712319A123108805D7829 -:1016F000A3E62404F58218E63400F583E054EFF005 -:1017000078A3E62404F58218E63400F583E054DF7C -:10171000F07890E624FD75F00AA4241CF582E434E8 -:10172000FDF583AC82AD8378A08683088682ECF9D0 -:10173000EDFA7B0A78011203A7C2037890E6FC1247 -:1017400011237D007C0B1224B11231082212308546 -:1017500090FF91E090FD41F07D027C001224B112D7 -:1017600031082212308590FD40E0F4FC90FF91E0BA -:101770005CF53390FD41E0FC90FD40E05C4233E5D8 -:101780003390FF91F07C0012254A12310822743CFC -:1017900090FBE8F0743E90FBE8F0E490FD30F0221E -:1017A0008D358C34ECB401028003D340028028B420 -:1017B00002028003D34008A835C625E0F68018B49D -:1017C00004028003D3400AA835C625E025E0F68050 -:1017D00006A83576008000228C3C8D3BEDFEECFDAA -:1017E0007F0175600675610090FD3112046E120173 -:1017F000E6B480028006D3500302189E90FD311299 -:1018000004809000031201EC54F0B430028003D342 -:10181000405F90FD3112048090000812020EFAFD24 -:10182000EBFE7F0190FD3412046EEECD903502FC8C -:10183000E493FF740193FEF9EFFA7B01EAFFE9FEFE -:10184000ECC39EED9F4025903504E493FD74019315 -:10185000FCEDFEECFD7F01EECDFC90FD36E0D39C6F -:1018600090FD35E09D500575608080331219BC8075 -:101870002EB460028003D3400BAC3CAD3B12078218 -:101880008C60801BB41003B34010C3B42003B3407A -:1018900009C3B440028003D340007560818000809A -:1018A00075B481028003D3406B90FD3112048090A7 -:1018B00000031201EC54F0B430028003D3401D90B9 -:1018C000FD3112048090000812020EFAFDEBFE7F3B -:1018D0000190FD3712046E1219268036B460028022 -:1018E00003D34013753A61E4F539F538AC3CAD3BB0 -:1018F0001205DE8C60801BB41003B34010C3B4200B -:1019000003B34009C3B440028003D3400075608133 -:10191000800080028000E560FC90FD31120480ECC4 -:10192000900002120317AC612290FD3112048090E6 -:1019300000041201EC600474018001E4A2E0920151 -:1019400090FD31120480ED2403FD50010E90FD3412 -:1019500012046E90FD311204809000051201ECF526 -:10196000619000041201EC540FFC7D6112179DE59B -:1019700061700475600822756000787E7600787E5C -:10198000E6C39561503890FD371204801201E6FCE1 -:1019900090FD34120480EC12030F30010E90FD39DB -:1019A000E004F090FD387003E004F0787E0690FDCE -:1019B00036E004F090FD357003E004F080C0229022 -:1019C000FD32E0FDA3E0FCEDFEECFD7F01ED240A1D -:1019D000FD50010E90FD3A12046E90FD311204800C -:1019E0009000041201EC540FB401028003D340179D -:1019F00090FD3A1204800DED70010E90FD37120437 -:101A00006E78827601804EB402028003D340199032 -:101A1000FD3A120480ED2402FD50010E90FD3712B4 -:101A2000046E78827602802DB404028003D34019BC -:101A300090FD3A120480ED2404FD50010E90FD3714 -:101A400012046E78827604800CB400028003D340C6 -:101A5000007560082290FD3112048090000512018B -:101A6000ECF561787F7600787FE6C39561400302EC -:101A70001B24788076007880E6C378829650769032 -:101A8000FD341204801201E6FC90FD3A1204891222 -:101A900001E0F45CFC1201E0F890FD37120480E8EC -:101AA000C0E01201E6C8D0E0C8584CFC90FD3412EA -:101AB0000480EC12030F7881ECF690FD39E004F01D -:101AC00090FD387003E004F009E970010A90FD3AD6 -:101AD00012047790FD311204809000041201EC3062 -:101AE000E40E90FD36E004F090FD357003E004F064 -:101AF00078800680817882E6FDE4FEFFEECDFC90E2 -:101B0000FD39E02CF090FD38E03DF07882E6FDE410 -:101B1000FEFFEECDFC90FD3CE02CF090FD3BE03D67 -:101B2000F0787F06021A6475600022E53D053D04E9 -:101B30007002B2B022C0E0C0F0C082C083C0D0E862 -:101B4000C0E0E9C0E0EAC0E0EBC0E0ECC0E0EDC01E -:101B5000E0EEC0E0EFC0E090FF92E01201B71B8022 -:101B6000301B80321B8F381BA13A1BB33E1BCB446A -:101B70001BBF461BD7501C19521BF8541C3A560069 -:101B8000001C5B90FF92E07F00FE7C0112319A0204 -:101B90001C6BE4FF04FE7C0312319A742090FFFE5C -:101BA000F0021C6BE4FF04FE7C0212319A74409038 -:101BB000FFFEF0021C6BE4FF04FE7C0412319A026B -:101BC0001C6BE4FF04FE7C0512319A021C6BE4FFDF -:101BD00004FE7C0612319A021C6B90FFA5E07D008A -:101BE00090FD00CDF0A3CDF090FD01E0FCF58390D9 -:101BF000FD00E04433FD121CFE807390FFB5E07DD4 -:101C00000090FD02CDF0A3CDF090FD03E0FCF58344 -:101C100090FD02E04443FD121CFE805290FFA6E0BE -:101C20007D0090FD04CDF0A3CDF090FD05E0FCF526 -:101C30008390FD04E04434FD121CFE803190FFB619 -:101C4000E07D0090FD06CDF0A3CDF090FD07E0FC17 -:101C5000F58390FD06E04444FD121CFE801090FFC9 -:101C600092E07D00FCED44AAFD121CFE8000E49091 -:101C7000FF92F0D0E0FFD0E0FED0E0FDD0E0FCD05D -:101C8000E0FBD0E0FAD0E0F9D0E0F8D0D0D083D0BB -:101C900082D0F0D0E0320581058105810581A881DF -:101CA000181818EDF608ECF690FF6AE020E70280BD -:101CB000F790FF69E07D00A88118CDF6CD08F67D8C -:101CC00003A881E618FCE6CC25E0CC33CCDDF9CCCA -:101CD000F6CC08F6A88118E644F8F6A8811818187A -:101CE000E6FD08E6FCA881188683088682EDF0A34D -:101CF000ECF0740290FF6AF0158115811581158151 -:101D000022E5812405F581E4A88118F6A881181838 -:101D10001818EDF608ECF690FBFDE024F8500302ED -:101D20001E1FE4A8811818F6A88118E6FEA88118DD -:101D3000181818E6FD08E6FC7F00EF24F8404DE493 -:101D4000EF25E02485F582E434FDF583E0FBA3E094 -:101D50006C7003FAEB6D70097401A8811818F68095 -:101D60002BE4EF25E02485F582E434FDF5837A0049 -:101D7000E054F0CCF8CCCDF9CDFB7800E954F0F983 -:101D8000EA687002EB6970010E0F80AEA88118EE50 -:101D9000F6A88118181818EDF608ECF6A881EFF6E9 -:101DA000A8811818E67079A88118E624F74071A870 -:101DB0008118181818E6540FA881F664046017A853 -:101DC00081E664036010A88118181818E6FD08E67B -:101DD000FC121C93804A7C0A1230FAA88118181849 -:101DE00018E6FD08E6FC90FBFCE025E02485F58282 -:101DF000E434FDF583EDF0A3ECF090FBFCE0FFE4B0 -:101E0000EF045407FF90FBFCF090FBFDE004F012A0 -:101E1000319390FBFEE07008E4FEFF7C0F12319AD4 -:101E2000802790FBFFE004F0543F701D90FBFFE023 -:101E300044FE7D00FC90FBFCE025E02485F582E477 -:101E400034FDF583EDF0A3ECF0E58124FBF5812270 -:101E50007885760078867600740190FBFEF012306B -:101E60008590FBFDE060597C0A1230FA90FBFBE0A4 -:101E700025E02485F582E434FDF583E0FDA3E0FC54 -:101E800090FBFBE025E02485F582E434FDF583E456 -:101E9000F0A3F090FBFBE0FFE4EF045407FF90FB9E -:101EA000FBF090FBFDE014F07883EDF608ECF61201 -:101EB0003193B2B37883E6FD08E6FC1208E580A111 -:101EC0001231E7788506B60011788576007886E6C7 -:101ED000F40404A2E092B47886F68085E490FBFED8 -:101EE000F090FBFDE07D00FCED44CFFD121C931251 -:101EF000310822123085E56A64494569601590FF12 -:101F000083E0540F7D00D3956AED95695005122E3C -:101F1000CE8003122F9E12310822123085E56A64AA -:101F20004945696005122FD8800E90FF80E0440873 -:101F3000F090FF83E0547FF0123108221230858C3C -:101F400054EC54F0B4101575643D7563FD75620171 -:101F5000E5642403F564E5633400F563E4F557F5BF -:101F600056E556C394015027E554540FFCAD64AEBA -:101F700063AF62120E828C55EC600280120564E53C -:101F800064700205630557E5577002055680D2E577 -:101F900054540F2497F8C654FEF6E554540F7F00AE -:101FA000FE7C1212319AE5551470097D007C0912ED -:101FB00024B18007AD577C001224B11231082212DF -:101FC000308590FFFCE04402F090FF00E030E71322 -:101FD00090FF83E04480F043678090FFFCE0440181 -:101FE000F0801190FF82E04408F053677F90FFFC7F -:101FF000E054FEF090FF81E04480F012256490FFF1 -:10200000FEE04405F090FFFCE054FDF012310822A0 -:102010001230857C0112324878A7E64402F674FE3D -:10202000FC04FD121CFE90FF6AE030E70280F7E43A -:10203000F54E754D10AC4EAD4DE54E154E7002157A -:102040004DEC4D600280EE438701123108221230C0 -:10205000857C0212311478A7E654FDF6123108226D -:1020600012308578A7E630E02C78A7E630E12678B4 -:10207000A7E6FCF58318E644F0FD121C9390FFFCE4 -:10208000E04420F07C0212324878A7E654FDF67452 -:102090001A90FFFEF078A7E6FCF58318E644F1FD00 -:1020A000121C9312310822756700756800E4F5660A -:1020B000F565E4F569756A49748490FF82F074846B -:1020C00090FF80F0748090FF68F0748090FF6AF059 -:1020D000AD46AF457E00EE24FC500302216AE4EEDB -:1020E00075F007A4243FF582E434FCF583E0FFE4B7 -:1020F000EF5480FDE4EF540F14FFED6038E4EF750A -:10210000F008A42448F582E434FFF5837490F0E4E9 -:10211000EF75F008A4244AF582E434FFF583748057 -:10212000F0E4EF75F008A4244EF582E434FFF58363 -:102130007480F08034E4EF75F008A42408F582E49C -:1021400034FFF5837490F0E4EF75F008A4240AF5E9 -:1021500082E434FFF583E4F0E4EF75F008A4240E84 -:10216000F582E434FFF583E4F00E0220D38D468E31 -:10217000448F45747F90FFFDF0749090FFFCF090C9 -:10218000FC19E030E60790FFFCE04404F02290FCEC -:102190000DE014700490FC0CE0703990FC0079069E -:1021A0007A357B1278011203F57F00EF334015EF8B -:1021B00090354D93FCEF2480F582E434FCF583ECFC -:1021C000F00F80E78F5990FC2B79187A357B3578A2 -:1021D000011203F5E490FFFFF0745190FFFAF074E0 -:1021E0000490FFFBF0745390FFF8F0745190FFF9E6 -:1021F000F0745590FFF7F0749390FFF6F0743290FE -:10220000FFF5F075643D7563FD756201E490FF8331 -:10221000F0748090FF81F0755804E55875F007A4BC -:10222000243FF582E434FCF583E07889F6FC540F12 -:1022300014FC7889ECF6E55875F007A42441F58282 -:10224000E434FCF583E0788C76F8087600FC788935 -:10225000E675F008A42448F582E434FFF583E4F041 -:102260007889E675F008A4244FF582E434FFF583FD -:10227000ECF0788CE6FF08E67E03CFC313CF13DEC5 -:10228000F9FE7889E675F008A42449F582E434FF64 -:10229000F583EEF07889E675F008A4244AF582E427 -:1022A00034FFF5837480F0788AECF67D00788DE653 -:1022B0002CF618E63DF6788CE6FD08E67C03CDC3E7 -:1022C00013CD13DCF9FC7889E675F008A4244DF5EC -:1022D00082E434FFF583ECF07889E675F008A424F5 -:1022E0004EF582E434FFF583E4F0788CE6FD08E6F1 -:1022F000FC7889E6FF7E00EE24FC500302246BE4A8 -:10230000EE75F007A4243FF582E434FCF583E0FF8A -:10231000E4EF5480FAE4EF540F14FFE4EE75F00795 -:10232000A42441F582E434FCF583E0788AF6EE7566 -:10233000F080A42408F8E5F034F8F9E8FCE9FD8A17 -:1023400059EA70030223D8E4EF75F008A42448F595 -:1023500082E434FFF583E4F0788AE6FAE4EF75F07E -:1023600008A4244FF582E434FFF583EAF0EDFBEC9A -:102370007A03CBC313CB13DAF9FAE4EF75F008A4B0 -:102380002449F582E434FFF583EAF0788AE67B009D -:10239000FAEC2AFCED3BFDFBEC7A03CBC313CB1329 -:1023A000DAF9FAE4EF75F008A4244DF582E434FF7D -:1023B000F583EAF0E4EF75F008A4244AF582E434EA -:1023C000FFF5837480F0E4EF75F008A4244EF582E5 -:1023D000E434FFF5837480F0022467E4EF75F008BD -:1023E000A42408F582E434FFF583E4F0788AE6FA61 -:1023F000E4EF75F008A4240FF582E434FFF583EAD6 -:10240000F0EDFBEC7A03CBC313CB13DAF9FAE4EF6C -:1024100075F008A42409F582E434FFF583EAF07826 -:102420008AE67B00FAEC2AFCED3BFDFBEC7A03CB61 -:10243000C313CB13DAF9FAE4EF75F008A4240DF511 -:1024400082E434FFF583EAF0E4EF75F008A4240A8F -:10245000F582E434FFF583E4F0E4EF75F008A4249A -:102460000EF582E434FFF583E4F00E0222F48E5878 -:10247000788CEDF608ECF67889EFF61220A4228C21 -:1024800026EC30E718E526540F1475F008A424480C -:10249000F582E434FFF583E054DFF08016E526543E -:1024A0000F1475F008A42408F582E434FFF583E0E6 -:1024B00054DFF022EC90FD3FF08C24ED2403F52551 -:1024C0007D00D3956CED956B4003856C25E5252447 -:1024D000B75009752503740290FD3FF0AC25122F0B -:1024E000C322E4F566F5651224E82290FD3DE0651F -:1024F0006D600E740490FD3FF0E4F5657566038031 -:10250000467D6DE4FEFF793D7AFD7B017405780020 -:1025100012033FE5662403F566E5653400F565E5DD -:1025200066D3956CE565956B4006856C66856B6535 -:10253000D3E5669448E5659400400C740290FD3F35 -:10254000F0E4F565756603AC66122FC322EC90FDCE -:102550003FF0E4F566F5658C32EC6005122FB4802F -:10256000057C00122FC32290FF04E0F54A90FF067D -:10257000E0FDA3E0ED7D00FC7D00FC90FF06E0FFA8 -:10258000A3E07E00FFE4FEEC4EFCED4FFDC3EC94B7 -:1025900048ED9400502290FF06E0FDA3E0ED7D00A1 -:1025A000FC7D00FC90FF06E0FFA3E07E00FFE4FE60 -:1025B000EC4EFCED4FFD8004E4FD7C488C6C8D6B93 -:1025C00090FF02E0FDA3E0ED7D00FC7D00FC90FFAC -:1025D00002E0FFA3E07E00FFE4FEEC4EF54CED4F81 -:1025E000F54B75643D7563FD7562017D3D7EFD7F34 -:1025F00001796DE4FAFB7405780012033F75490018 -:10260000E54924FE4019AD64AE63AF62E412030FE6 -:1026100005490DED70010E8D648E638F6280E1754A -:10262000643D7563FD75620190FF00E05460B40085 -:10263000028006D35003022C12E54A540FF549E5F7 -:102640004A5480A2E0920290FF01E0120181000B47 -:102650002C0D266727852C0D28912C0D297429A86F -:102660002B0F2B122B522BB62BE4E56730E70EE530 -:102670004C454B7008E56C6402456B6003022C0FFF -:1026800090FF00E0541FB400028003D34029E54AC4 -:102690006003022782AD64AE63AF62740112030F60 -:1026A00078A7E630E00BAD64AE63AF62740212034C -:1026B0000F7C02122FC322B401028003D3401BE51A -:1026C0006720E107E54A6003022782E54A24FE50BD -:1026D000030227827C02122FC322B402028006D397 -:1026E0005003022780E56720E10DE54A6009E54ACD -:1026F00064806003022782AC4A12304A40030227FA -:1027000082E549702530021190FF80E05408AD64E5 -:10271000AE63AF6212030F800F90FF82E05408ADEA -:1027200064AE63AF6212030F803D154930021DE5B0 -:102730004975F008A42448F582E434FFF583E05499 -:1027400008AD64AE63AF6212030F801BE54975F0FC -:1027500008A42408F582E434FFF583E05408AD644E -:10276000AE63AF6212030FAD64AE63AF621201E6F7 -:10277000600BAD64AE63AF62740112030F7C021292 -:102780002FC3228000022C0FE56720E706E56C4589 -:102790006B6003022C0F90FF00E0541FB400028016 -:1027A00003D3401AE54C14454B7004E54A6003021C -:1027B000288E78A7E654FEF67C00122FC322B401BF -:1027C000028003D3402AE56720E108E56720E003A3 -:1027D00002288EE56730E004E54A700BE56730E1DA -:1027E00009E54A24FE500302288E7C00122FC322E2 -:1027F000B402028006D3500302288CE54C454B609E -:102800000302288EAC4A12304A400302288EE56744 -:1028100020E107E56720E0028077E56730E006E524 -:10282000496002806CE549700F90FF82E054F7F038 -:1028300090FF80E054F7F022E549B401028003D311 -:1028400040097D017C03120F0B8011B4020280034A -:10285000D340097D017C04120F0B80001549300222 -:1028600015E54975F008A42448F582E434FFF583A2 -:10287000E054F7F08013E54975F008A42408F582C8 -:10288000E434FFF583E054F7F07C00122FC322807C -:1028900000022C0FE56720E706E56C456B6003023C -:1028A0002C0F90FF00E0541FB400028003D3401AA5 -:1028B000E54C14454B7004E54A600302297178A782 -:1028C000E64401F67C00122FC322B401028003D338 -:1028D0004029E56720E108E56720E003022971E56A -:1028E0006730E004E549700BE56730E108E549240D -:1028F000FE5002807F7C00122FC322B402028003AC -:10290000D3406FE54C454B60028069AC4A12304AB7 -:1029100040028060E56720E107E56720E00280541F -:10292000E549701430020990FF80E04408F0800708 -:1029300090FF82E04408F022E56730E1331549302A -:102940000215E54975F008A42448F582E434FFF542 -:1029500083E04408F08013E54975F008A42408F5E5 -:1029600082E434FFF583E04408F07C00122FC32298 -:1029700080028000022C0FE56720E712E56C456BB2 -:10298000700CE54A700890FF00E0541F6003022CB1 -:102990000FE54C90FFFFF090FFFFE06005436701FB -:1029A00080035367FE7C00122FC322E56730E70ED9 -:1029B000E56C456B600890FF00E0541F6003022C3B -:1029C0000FAD4BE54CED7D00FC7D00FCBD000280B1 -:1029D00003022B0AB401028003D34032E54A70059A -:1029E000E54CFC6003022B0C7564007563FC75629A -:1029F00001D3E56C9412E56B94004006E4FD7C1273 -:102A00008004AC6CAD6B8C6A8D69122FD822B40235 -:102A1000028003D34059E54A6003022B0CE54CFCCD -:102A200070277564127563FC756201D3E56C9419A7 -:102A3000E56B94004006E4FD7C198004AC6CAD6B42 -:102A40008C6A8D69122FD8802575642B7563FC758F -:102A50006201D3E56C9435E56B94004006E4FD7C9F -:102A6000358004AC6CAD6B8C6A8D69122FD822B4A2 -:102A700003028006D35003022B0AE54CF549700F80 -:102A800090FF04E0FDA3E04D6003022B0C80189042 -:102A9000FC82E0FDA3E0FC90FF05E06C700790FF76 -:102AA00004E06D60028068E4F56AF5697F00E5493D -:102AB00014C549600FEF2480F582E434FCF583E00F -:102AC0002FFF80EA8F4AE54A2480F582E434FCF542 -:102AD00083E07D00D3956CED956B4006AC6CAD6BDF -:102AE000800FE54A2480F582E434FCF583E07D0024 -:102AF000FC8C6A8D69E54A2480FCE434FCFDFEEC24 -:102B0000FD7F018D648E638F62122FD822800002B8 -:102B10002C0F022C0FE56730E719E56C14456B703C -:102B200012E54A700EE54C454B700890FF00E054EA -:102B30001F6003022C0FE56720E008E56720E10332 -:102B4000022C0F756468E4F563F562E4F56904F539 -:102B50006A122FD822E56720E727E56C456B7021C4 -:102B6000E54A701DE54C6402454B600DE54C14458B -:102B70004B6006E54C454B700890FF00E0541F6029 -:102B800003022C0FE56720E008E56720E103022C33 -:102B90000F854C68E56870084367015367FD801333 -:102BA000E56864026007E56814600280655367FEAB -:102BB0004367027C00122FC322E56730E71AE56CF9 -:102BC00014456B7013E54A700FE54C454B70099046 -:102BD000FF00E0541F1460028038E56720E10280A6 -:102BE000317C01122FC322E56720E715E56C456BA8 -:102BF000700FE54C454B700990FF00E0541F1460C6 -:102C000002800FE56720E10280087C00122FC322BA -:102C10008000022ECAB440028006D35003022EC0A8 -:102C200090FF01E090FD3DF0E54A90FD3EF0E4901C -:102C3000FD3FF0E5642403F564E5633400F563AD1E -:102C40004BE54C856482856383CDF0A3CDF090FF86 -:102C500001E01201B72C7D012CA3022CCD032CF72F -:102C6000042D45052D82062DA8072DCE082DF4092B -:102C70002E1A0B2E400C2E4F802E4F8100002EADB1 -:102C8000E56720E7067C0512254A227DB77E347F62 -:102C90000279407AFD7B017408780012033F7D08B9 -:102CA0007C001224B122E56720E7067C0512254A44 -:102CB00022E54AB403004010B40500500BE54A7FFA -:102CC00000FE7C1012319A227D007C071224B12272 -:102CD000E56720E7067C0512254A22E54AB4030091 -:102CE0004010B40500500BE54A7F00FE7C11123104 -:102CF0009A227D007C071224B122E56720E7067C3A -:102D00000512254A22E54AB405028003D3400AE4AD -:102D1000FF04FE7C0A12319A22B401028003D340E0 -:102D20000AE4FF04FE7C0812319A22B4030040102A -:102D3000B40500500BE54A7F00FE7C1312319A2245 -:102D40007D007C071224B122E56720E734D3E56CCF -:102D50009448E56B94005006E56C456B70067C0268 -:102D600012254A22E54AB40103B3400BC3B4030061 -:102D70004009B406005004123070227C0712254A24 -:102D8000221224E822E56720E71DE54AB40300404B -:102D900010B40500500BE54A7F00FE7C1612319AF4 -:102DA000227C0712254A221224E822E56720E71D2B -:102DB000E54AB403004010B40500500BE54A7F001B -:102DC000FE7C1912319A227C0712254A221224E82D -:102DD00022E56720E71DE54AB403004010B4050072 -:102DE000500BE54A7F00FE7C1712319A227C0712B5 -:102DF000254A221224E822E56720E71DE54AB403AC -:102E0000004010B40500500BE54A7F00FE7C18120C -:102E1000319A227C0712254A221224E822E56720F3 -:102E2000E71DE54AB403004010B40500500BE54A25 -:102E30007F00FE7C1512319A227C0712254A22124D -:102E400024E822E56720E7067C0712254A2212249F -:102E5000E822E56730E72090FF00E0541F701090F3 -:102E6000FF01E0B480051224DF80031224E8227DF4 -:102E7000007C051224B12290FF00E0541F60067C04 -:102E80000512254A22D3E56C9448E56B9400500B5B -:102E9000C3E56C9407E56B940050067C0312254A49 -:102EA00022E54AB40504123070227C0712254A221A -:102EB000E56730E7087D007C051224B1227C05120D -:102EC000254A22B420028003D340008000122F9EA6 -:102ED0002275430090FF83E0540FD395434024E5CF -:102EE0004324F0F582E434FEF583E0AD64AE63AFD5 -:102EF0006212030F05430DED70010E8D648E638F1A -:102F00006280D1E5437D00FCC3E56A9CF56AE56912 -:102F10009DF569E56A45696006E490FF83F02290BB -:102F2000FF82E04408F0E4F569756A4990FD3DE0F0 -:102F3000B405028003D3404090FD3EE0F543B40564 -:102F4000028003D3400AE4FF04FE7C0B12319A2274 -:102F5000B401028003D3400AE4FF04FE7C0912316D -:102F60009A22B403004010B40500500BE5437F00E3 -:102F7000FE7C1412319A2222B480004023B48200D5 -:102F8000501E7C3D7DFD1217D57D008C668D6590B1 -:102F9000FD3FE06005122F9E80057C00122FC322AA -:102FA0002290FF83E0547FF090FF82E04408F0908D -:102FB000FF80E04408F02290FF82E04408F090FF98 -:102FC00080E04408F0228C237D008C6A8D69756452 -:102FD0003D7563FD756201122FD82290FF83E05486 -:102FE0007FF0E56A64494569700122C3E56A940887 -:102FF000E56994004015752108E5217D00FCC3E5D5 -:103000006A9CF56AE5699DF5698009856A21E4F5A0 -:1030100069756A49752200E522C395215026AD6481 -:10302000AE63AF621201E6FCE52224F8F582E434D7 -:10303000FEF583ECF005220DED70010E8D648E63BC -:103040008F6280D3E521547F90FF81F0228C487FEE -:1030500000EF24FB4019E4EF75F007A4243FF5824C -:10306000E434FCF583E065487002D3220F80E28FE0 -:1030700047C322856C6A856B6990FF82E054F7F044 -:1030800090FF83E0547FF022C000C001C002C00660 -:10309000C007E5722408F8860653067F7CFF1230CD -:1030A000FA7C007D00E5756046FF90FE9DE0547F50 -:1030B0006E700FC083C082A3E0FDA3E0FCA3157572 -:1030C0008007A3A3A3DFE68026DF06D082D083801B -:1030D0001EE0F8A3E0F9A3E0FAD082D083E8F0A3E1 -:1030E000E9F0A3EAF0A3C083C082A3A3A380DA120D -:1030F0003193D007D006D002D001D0002285A87429 -:1031000075A888EC70027C3F8C7322E5722408F865 -:1031100076001231E780FBC000C001C002C006C0CB -:1031200007AE047CFF1230FAE5756042FF90FE9D09 -:10313000E0547F6E700BC083C082A3A3A31575807B -:1031400007A3A3A3DFEA8026DF06D082D08380D83E -:10315000E0F8A3E0F9A3E0FAD082D083E8F0A3E995 -:10316000F0A3EAF0A3C083C082A3A3A380DA780807 -:10317000087918097C01E6547F6E700676007700A6 -:10318000800608090CBC08EE123193D007D006D097 -:1031900002D001D000227573008574A822C0F0C04F -:1031A00082C083C3E57524E850051231E780F4EC52 -:1031B00060319034B6E493C39C4028C0047CFF1275 -:1031C00030FAD004430480E57575F003A4249DF51E -:1031D00082E434FEF583ECF0EFA3F0EEA3F0057586 -:1031E000123193D083D082D0F022C0047C20D28CC4 -:1031F000D28DD504FDD0042275A80075880075B85D -:103200000075F00075D000E4F8900000F608B800F2 -:10321000FB020000C3ED940250047D037CE8ECF453 -:10322000FCEDF4FD0CBC00010D8C798D7822C3EC13 -:1032300094BCED940250047D077CD0ECF4FCEDF4DA -:10324000FD0CBC00010D8C778D7622EC700122C044 -:1032500000E5722418F8A604E5722408F8C6547F25 -:10326000F6E630E703D000221231E780F4C28C8505 -:10327000768C85778AD28CC0E0C0D0C0F0C082C086 -:1032800083C000C001C002C003C004C005C006C0A6 -:1032900007121B28E5722408F8E66024E572241062 -:1032A000F8A681E57275F021A42495F582E434FD39 -:1032B000F58378A8E58104C398F9E6F008A3D9FA64 -:1032C00074082572F8057208E65480700CE572B433 -:1032D00007F3780875720080EFE5722410F8868194 -:1032E000E57275F021A42495F582E434FDF5837828 -:1032F000A8E58104C398F9E0F608A3D9FAD007D06D -:1033000006D005D004D003D002D001D000D083D0A5 -:1033100082D0F0D0D0D0E032C0E0C0D0C000C00138 -:10332000C002C28E85788D85798BD28E7819790905 -:103330007A07E77004A600800BE6600816E67004C2 -:10334000E74480F70809DAEAE573601314F573704F -:103350000EE5722408F87600123193D28CD28DD00B -:1033600002D001D000D0D0D0E0327581A775900096 -:103370007579307578F87577607576F012053C12BE -:10338000340F12178B1234391231F580E322C0004A -:103390007C01EC2408F8E660090CBC08F51231E762 -:1033A00080EED00022C0F0C082C083C000C006C042 -:1033B00007ED2410F876B6ED75F021A42495F5827A -:1033C000E434FDF583C082C083A3A3E4780DF0A3A9 -:1033D000D8FCEC547F75F002A42482F582E5F03429 -:1033E00034F583E493FE740193F5828E83E493FEB7 -:1033F000740193FFD083D082EFF0A3EEF0ED2408A8 -:10340000F8EC4480F6D007D006D000D083D082D02C -:10341000F0227572007575007A08791878087600C0 -:1034200077000809DAF8E478087480447FF67401BC -:103430004410F58975B808D2ABD2A9227581A7D2FC -:103440008ED28CD2AFE5756032FF90FE9DE0548045 -:10345000602478087908E0547FFA7B00E6547FB551 -:1034600002027BFF08D9F5EB700CEAF012338BAD4A -:1034700004AC021233A2A3A3A3DFD21231E780C5AA -:103480007C017D002204F504E904ED04E104DD047F -:10349000D904E504F1049D04A104CD04D1049904E8 -:1034A00099049904D504B504AD04B104A904C10478 -:1034B000BD04B904C504C904A519010300220048CC -:1034C0000200240F180A10640D680C05060203019F -:1034D0000181010000E700C0008000600040003072 -:1034E0000018000C00080004000200010008183851 -:1034F000280602100A0200000000000181100A02E2 -:103500000000000000FBE8FBFA12011001FF0000C0 -:103510000851045F50160101020002090235000142 -:103520000200E0000904000005FF0000000705811B -:10353000024000000705010240000007058202402A -:103540000000070502024000000705850302000194 -:10355000040309042403540065007800610073002B -:10356000200049006E0073007400720075006D0049 -:1035700065006E00740073002A0354005500530068 -:103580004200350030003500320020005300650055 -:103590007200690061006C00200050006F00720032 -:1035A00074002203540055005300420035003000DF -:1035B00035003200200020002000200020002000E4 -:0435C00020002000C7 -:00000001FF diff --git a/firmware/tigon/tg3.bin.ihex b/firmware/tigon/tg3.bin.ihex deleted file mode 100644 index d842d7cc91b5..000000000000 --- a/firmware/tigon/tg3.bin.ihex +++ /dev/null @@ -1,175 +0,0 @@ -:10000000000000000800000000000A80000000005E -:1000100010000003000000000000000D0000000DB3 -:100020003C1D080037BD3FFC03A0F0213C10080038 -:10003000261000000E000018000000000000000D57 -:100040003C1D080037BD3FFC03A0F0213C10080018 -:10005000261000340E00021C000000000000000DFD -:1000600000000000000000000000000027BDFFE0CD -:100070003C1CC000AFBF0018AF80680C0E00004CE5 -:10008000241B210597850000978700029782002C8A -:100090009783002E3C040800248409C0AFA00014FC -:1000A000000214000062182500052C00AFA3001008 -:1000B0008F86001000E528250E000060240701024D -:1000C0003C02AC00344201003C03AC01346301004B -:1000D000AF8204903C02FFFFAF820494AF83049888 -:1000E000AF82049C24020001AF825CE00E00003F5E -:1000F000AF825D000E000140000000008FBF0018BD -:1001000003E0000827BD00202402FFFFAF82540453 -:100110008F83540034630400AF835400AF825404CF -:100120003C02080024420034AF82541C03E0000863 -:10013000AF80540000000000000000003C020800F6 -:10014000344230003C030800346330003C040800B3 -:10015000348437FF3C010800AC220A6424020040CA -:100160003C010800AC220A683C010800AC200A608F -:10017000AC600000246300040083102B5040FFFD9E -:10018000AC60000003E0000800000000008048218F -:100190008FAA00103C0208008C420A603C04080050 -:1001A0008C840A688FAB0014244300010044102B98 -:1001B0003C010800AC230A60144000030000402109 -:1001C0003C010800AC200A603C0208008C420A6036 -:1001D0003C0308008C630A64912400000002114073 -:1001E000004310210048102125080001A044000010 -:1001F000290200081440FFF4252900013C020800F0 -:100200008C420A603C0308008C630A648F84680C8B -:100210000002114000431021AC440008AC45000C22 -:10022000AC460010AC470014AC4A001803E00008CC -:10023000AC4B001C000000000000000000000000AB -:1002400000000000000000000000000000000000AE -:10025000000000000000000000000000000000009E -:10026000000000000000000000000000000000008E -:10027000000000000000000000000000000000007E -:10028000000000000000000000000000000000006E -:10029000000000000000000000000000000000005E -:1002A000000000000000000000000000000000004E -:1002B000000000000000000000000000000000003E -:1002C000000000000000000000000000000000002E -:1002D000000000000000000000000000000000001E -:1002E000000000000000000000000000000000000E -:1002F00000000000000000000000000000000000FE -:1003000000000000000000000000000002000008E3 -:10031000000000000A0001E33C0A00010A0001E3BA -:100320003C0A00020A0001E3000000000A0001E3A9 -:10033000000000000A0001E3000000000A0001E3E1 -:10034000000000000A0001E3000000000A0001E3D1 -:10035000000000000A0001E3000000000A0001E3C1 -:10036000000000000A0001E3000000000A0001E3B1 -:100370003C0A00070A0001E33C0A00080A0001E306 -:100380003C0A00090A0001E3000000000A0001E342 -:10039000000000000A0001E33C0A000B0A0001E330 -:1003A0003C0A000C0A0001E33C0A000D0A0001E3CC -:1003B000000000000A0001E3000000000A0001E361 -:1003C0003C0A000E0A0001E3000000000A0001E3FD -:1003D000000000000A0001E3000000000A0001E341 -:1003E000000000000A0001E3000000000A0001E331 -:1003F000000000000A0001E3000000000A0001E321 -:10040000000000000A0001E33C0A00130A0001E3B7 -:100410003C0A001400000000000000000000000082 -:1004200000000000000000000000000000000000CC -:1004300000000000000000000000000000000000BC -:1004400000000000000000000000000000000000AC -:10045000000000000000000000000000000000009C -:10046000000000000000000000000000000000008C -:10047000000000000000000000000000000000007C -:10048000000000000000000000000000000000006C -:10049000000000000000000000000000000000005C -:1004A000000000000000000000000000000000004C -:1004B000000000000000000000000000000000003C -:1004C000000000000000000000000000000000002C -:1004D000000000000000000000000000000000001C -:1004E000000000000000000000000000000000000C -:1004F00000000000000000000000000000000000FC -:1005000000000000000000000000000027BDFFE028 -:100510000000182100001021AFBF0018AFB1001477 -:10052000AFB000103C01080000220821AC200A7086 -:100530003C01080000220821AC200A743C0108009C -:1005400000220821AC200A78246300011860FFF51E -:100550002442000C241100018F9068103202000424 -:1005600014400005240400013C0208008C420A7873 -:1005700018400003000020210E000182000000004E -:100580003202000110400003000000000E0001696B -:10059000000000000A000153AF9150288FBF0018DF -:1005A0008FB100148FB0001003E0000827BD0020B9 -:1005B0003C0508008CA50A703C0608008CC60A8021 -:1005C0003C0708008CE70A7827BDFFE03C040800E0 -:1005D000248409D0AFBF0018AFA000100E00006047 -:1005E000AFA000140E00017B000020218FBF001877 -:1005F00003E0000827BD0020240200018F8368105B -:1006000000821004000210270062182403E0000892 -:10061000AF83681027BDFFD8AFBF00241080002E25 -:10062000AFB000208F825CECAFA200188F825CEC30 -:100630003C10080026100A78AFA2001C340280008B -:10064000AF825CEC8E020000184000160000000033 -:100650003C02080094420A748FA3001C000221C0CF -:10066000AC8300048FA2001C3C0108000E000201B4 -:10067000AC220A7410400005000000008E02000049 -:10068000244200010A0001DFAE0200003C02080023 -:100690008C420A7000021C02000321C00A0001C53E -:1006A000AFA2001C0E000201000000001040001F5D -:1006B000000000008E0200008FA3001C24420001F5 -:1006C0003C010800AC230A703C010800AC230A740A -:1006D0000A0001DFAE0200003C10080026100A7874 -:1006E0008E02000018400028000000000E000201E9 -:1006F0000000000014400024000000008E020000F2 -:100700003C0308008C630A702442FFFFAFA3001C67 -:1007100018400006AE02000000031402000221C0CF -:100720008C8200043C010800AC220A7097A2001ED3 -:100730002442FF002C4203001440000B240240001E -:100740003C040800248409DCAFA00010AFA0001412 -:100750008FA6001C240500080E0000600000382150 -:100760000A0001DF00000000AF825CF83C020800D4 -:100770008C420A408FA3001C24420001AF835CF826 -:100780003C010800AC220A408FBF00248FB000203B -:1007900003E0000827BD002827BDFFE03C04080057 -:1007A000248409E8000028210000302100003821BD -:1007B000AFBF0018AFA000100E000060AFA0001483 -:1007C0008FBF001803E0000827BD00208F82680C4F -:1007D0008F85680C000218270003182B00031823CC -:1007E000004310240044102100A2282B10A0000672 -:1007F00000000000004018218F82680C0043102B7D -:100800001440FFFD0000000003E0000800000000AD -:100810003C0408008C8400003C0308008C630A4000 -:100820000064102B54400002008310230064102346 -:100830002C42000803E000083842000127BDFFE019 -:10084000008028213C04080024840A000000302194 -:1008500000003821AFBF0018AFA000100E000060EC -:10086000AFA000140A000216000000008FBF00189D -:1008700003E0000827BD00200000000027BDFFE0C6 -:100880003C1CC000AFBF00180E00004CAF80680CCD -:100890003C04080024840A10038028210000302131 -:1008A00000003821AFA000100E000060AFA00014BF -:1008B0002402FFFFAF8254043C0200AA0E0002345F -:1008C000AF8254348FBF001803E0000827BD00201A -:1008D00000000000000000000000000027BDFFE84D -:1008E000AFB0001024100001AFBF00143C01C003E2 -:1008F000AC2000008F8268103042200010400003BE -:10090000000000000E000246000000000A00023A4B -:10091000AF9054288FBF00148FB0001003E0000880 -:1009200027BD001827BDFFF88F845D0C3C0200FF37 -:100930003C0308008C630A503442FFF80082102404 -:100940001043001E3C0500FF34A5FFF83C06C00321 -:100950003C074000008518248C6200103C01080010 -:10096000AC230A50304200081040000500871025D3 -:100970008CC2000024420001ACC200000087102598 -:10098000AF825D0C8FA2000024420001AFA20000E4 -:100990008FA200008FA2000024420001AFA200003D -:1009A0008FA200008F845D0C3C0308008C630A500A -:1009B000008510241443FFE80085182427BD000893 -:1009C00003E000080000000000000000353730316F -:1009D000726C734100000000000000005377457600 -:1009E000656E743000000000726C704576656E7440 -:1009F00031000000556E6B6E45766E74000000008D -:100A0000000000000000000000000000666174614A -:100A10006C45727200000000000000004D61696EBC -:100A2000437075420000000000000000000000005C -:100A300000000000000000000000000000000000B6 -:100A400000000000000000000000000000000000A6 -:100A50000000000000000000000000000000000096 -:0C0A60000000000000000000000000008A -:00000001FF - * Firmware is: - * Derived from proprietary unpublished source code, - * Copyright (C) 2000-2003 Broadcom Corporation. - * - * Permission is hereby granted for the distribution of this firmware - * data in hexadecimal or equivalent format, provided this copyright - * notice is accompanying it. diff --git a/firmware/tigon/tg3_tso.bin.ihex b/firmware/tigon/tg3_tso.bin.ihex deleted file mode 100644 index f10c4ef90513..000000000000 --- a/firmware/tigon/tg3_tso.bin.ihex +++ /dev/null @@ -1,446 +0,0 @@ -:100000000106000008000000000024140E00000398 -:100010000000000008001B24000000001000000386 -:10002000000000000000000D0000000D3C1D080055 -:1000300037BD400003A0F0213C100800261000004E -:100040000E000010000000000000000D27BDFFE0C2 -:100050003C04FEFEAFBF00180E0005D83484000239 -:100060000E000668000000003C03080090631B6857 -:10007000240200023C04080024841AAC1462000329 -:10008000240500013C04080024841AA0240600066C -:1000900000003821AFA000100E00067CAFA00014B5 -:1000A0008F625C5034420001AF625C508F625C90A2 -:1000B00034420001AF625C902402FFFF0E00003466 -:1000C000AF6254048FBF001803E0000827BD002072 -:1000D00000000000000000000000000027BDFFE05D -:1000E000AFBF001CAFB20018AFB100140E00005B30 -:1000F000AFB0001024120002241100018F7068209C -:100100003202010010400003000000000E0000BB9E -:10011000000000008F7068203202200010400004B0 -:10012000320200010E0001F024040001320200013D -:1001300010400003000000000E0000A300000000BB -:100140003C02080090421B9814520003000000007B -:100150000E0004C0000000000A00003CAF715028EF -:100160008FBF001C8FB200188FB100148FB0001029 -:1001700003E0000827BD002027BDFFE03C04080085 -:1001800024841AC0000028210000302100003821FA -:10019000AFBF0018AFA000100E00067CAFA0001487 -:1001A0003C040800248423D8A48000003C010800FB -:1001B000A0201B983C010800AC201B9C3C010800BF -:1001C000AC201BA03C010800AC201BA43C01080093 -:1001D000AC201BAC3C010800AC201BB83C01080063 -:1001E000AC201BBC8F6244343C010800AC221B884D -:1001F0008F6244383C010800AC221B8C8F62441093 -:10020000AC80F7A83C010800AC201B843C0108002E -:10021000AC2023E03C010800AC2023C83C010800CE -:10022000AC2023CC3C010800AC2024003C01080099 -:10023000AC221B908F6200682403000700021702A3 -:1002400010430005000000008F62006800021702E2 -:1002500014400004240200013C0108000A00009739 -:10026000AC20240CAC8200343C04080024841ACC5A -:100270003C0508008CA5240C00003021000038212A -:10028000AFA000100E00067CAFA000148FBF0018B6 -:1002900003E0000827BD002027BDFFE03C04080064 -:1002A00024841AD8000028210000302100003821C1 -:1002B000AFBF0018AFA000100E00067CAFA0001466 -:1002C0000E00005B000000000E0000B400002021C2 -:1002D0008FBF001803E0000827BD002024020001A2 -:1002E0008F63682000821004000210270062182427 -:1002F00003E00008AF63682027BDFFD0AFBF002C2C -:10030000AFB60028AFB50024AFB40020AFB3001CD7 -:10031000AFB20018AFB10014AFB000108F675C5CD3 -:100320003C03080024631BBC8C62000014470005DA -:100330003C0200FF3C02080090421B981440011947 -:100340003C0200FF3442FFF800E28824AC67000062 -:1003500000111902306300FF30E20003000211C0F7 -:100360000062282500A04021000716023C03080077 -:1003700090631B983044000F1460003600804821C1 -:10038000240200013C010800A0221B980005110076 -:10039000008210253C010800AC201B9C3C01080099 -:1003A000AC201BA03C010800AC201BA43C010800B1 -:1003B000AC201BAC3C010800AC201BB83C01080081 -:1003C000AC201BB03C010800AC201BB43C01080071 -:1003D000A42223D89622000C30437FFF3C01080062 -:1003E000A4222410304280003C010800A4231BC634 -:1003F00010400005240200013C010800AC2223F457 -:100400000A0001022406003E240600363C010800D2 -:10041000AC2023F49622000A3C03080094631BC618 -:100420003C010800AC2023F03C010800AC2023F87C -:10043000000213020002108000C210210062182185 -:100440003C010800A42223D03C0108000A00011549 -:10045000A4231B969622000C3C010800A42223EC46 -:100460003C04080024841B9C8C82000000021100C4 -:100470003C01080000220821AC311BC88C8200001E -:10048000000211003C01080000220821AC271BCC0F -:100490008C82000025030001306601FF000211007C -:1004A0003C01080000220821AC261BD08C820000F1 -:1004B000000211003C01080000220821AC291BD4D5 -:1004C000962300083C0208008C421BAC0043282104 -:1004D0003C010800AC251BAC9622000A3042000407 -:1004E00014400018000611008F630C143063000FD5 -:1004F0002C6200021440000B3C02C0008F630C14FD -:100500003C0208008C421B403063000F2442000173 -:100510003C010800AC221B402C6200021040FFF797 -:100520003C02C00000E21825AF635C5C8F625C5047 -:100530003042000210400014000000000A00014791 -:10054000000000003C0308008C631B803C04080092 -:1005500094841B94012210253C010800A42223DA74 -:10056000240200013C010800AC221BB824630001F6 -:100570000085202A3C01080010800003AC231B806A -:100580003C010800A4251B943C06080024C61B9CC3 -:100590008CC2000024420001ACC20000284200804E -:1005A00014400005000000000E000656240400025E -:1005B0000A0001E6000000003C0208008C421BB863 -:1005C00010400078240200013C05080090A51B980B -:1005D00014A20072000000003C15080096B51B969E -:1005E0003C0408008C841BAC32A3FFFF0083102A5C -:1005F0001440006C000000001483000300000000A1 -:100600003C010800AC2523F01060005C0000902144 -:1006100024D600040060A02124D300148EC2000060 -:10062000000281003C110800023088210E000625DE -:100630008E311BC80040282110A00054000000008B -:100640009628000A31020040104000052407180CCB -:100650008E22000C2407188C00021400ACA2001893 -:100660003C030800007018218C631BD03C0208007A -:10067000005010218C421BD400031D000002140006 -:1006800000621825ACA300148EC300049622000853 -:10069000004320233242FFFF3083FFFF004310213D -:1006A0000282102A1440000202B23023008030215E -:1006B0008E62000030C4FFFF00441021AE620000D3 -:1006C0008E220000ACA200008E2200048E63FFF494 -:1006D00000431021ACA20004A4A6000E8E62FFF419 -:1006E00000441021AE62FFF4962300080043102A54 -:1006F00014400005024690218E62FFF0AE60FFF4C8 -:1007000024420001AE62FFF0ACA000083242FFFFBD -:1007100014540008240203053102008054400001F3 -:1007200034E7001024020905A4A2000C0A0001CB42 -:1007300034E70020A4A2000C3C0208008C4223F005 -:10074000104000033C024B650A0001D3344276544A -:100750003C02B49A344289ABACA2001C30E2FFFFE9 -:10076000ACA200100E0005A200A020213242FFFF23 -:100770000054102B1440FFA90000000024020002C6 -:100780003C0108000A0001E6A0221B988EC2083C2A -:10079000244200010A0001E6AEC2083C0E0004C07B -:1007A000000000008FBF002C8FB600288FB50024FA -:1007B0008FB400208FB3001C8FB200188FB10014CB -:1007C0008FB0001003E0000827BD003027BDFFD028 -:1007D000AFBF0028AFB30024AFB20020AFB1001C00 -:1007E000AFB000188F725C9C3C0200FF3442FFF8EF -:1007F0003C07080024E71BB4024288249623000E1D -:100800008CE2000000431021ACE200008E220010B8 -:100810003042002014400011008098210E00063B59 -:10082000022020213C02C00002421825AF635C9CDC -:100830008F625C90304200021040011E00000000F8 -:10084000AF635C9C8F625C903042000210400119E3 -:10085000000000000A00020D000000008E240008C5 -:100860008E23001400041402000231C0000315029C -:10087000304201FF2442FFFF3042007F0003194253 -:1008800030637800000211002442400000624821D9 -:100890009522000A3084FFFF30420008104000B06B -:1008A000000429C03C0208008C42240014400024AB -:1008B00024C5000894C200143C010800A42223D0DF -:1008C0008CC40010000414023C010800A42223D2AE -:1008D0003C010800A42423D494C2000E3083FFFFFF -:1008E000004310233C010800AC22240894C2001AE3 -:1008F0003C010800AC2624003C010800AC32240472 -:100900003C010800AC2223FC3C02C0000242182536 -:10091000AF635C9C8F625C9030420002104000E547 -:1009200000000000AF635C9C8F625C90304200026C -:10093000104000E0000000000A0002460000000035 -:1009400094C2000E3C030800946323D40043402368 -:100950003103FFFF2C6200081040001C0000000063 -:1009600094C200142442002800A22821000310424F -:100970001840000B0000202124E6084800403821E0 -:1009800094A300008CC200002484000100431021C5 -:10099000ACC200000087102A1440FFF924A5000211 -:1009A000310200011040001F3C0240003C040800DE -:1009B000248423FCA0A0000194A300008C820000EA -:1009C000004310210A000285AC8200008F6268009B -:1009D0003C030010004310241040000900000000F8 -:1009E00094C2001A3C0308008C6323FC00431021CE -:1009F0003C010800AC2223FC0A0002863C024000B5 -:100A000094C2001A94C4001C3C0308008C6323FCAD -:100A100000441023006218213C010800AC2323FC91 -:100A20003C02400002421825AF635C9C8F625C90E0 -:100A3000304200021440FFFC000000009522000A32 -:100A4000304200101040009B000000003C030800F2 -:100A5000946323D43C07080024E724008CE40000BE -:100A60008F62680024630030008328213C0300105B -:100A7000004310241440000A0000000094A2000467 -:100A80003C0408008C8424083C0308008C6323FC8D -:100A900000441023006218213C010800AC2323FC11 -:100AA0003C0408008C8423FC00041C023082FFFFFD -:100AB000006220210004140200822021000410277B -:100AC000A4A200063C0308008C6324043C0200FF3F -:100AD0003442FFF8006288249622000824050001B1 -:100AE00024034000000231C000801021A4C2001A7B -:100AF000A4C0001CACE000003C010800AC251B6059 -:100B0000AF635CB88F625CB03042000210400003FB -:100B1000000000003C010800AC201B608E22000891 -:100B2000AF625CB88F625CB03042000210400003DC -:100B3000000000003C010800AC201B603C020800E3 -:100B40008C421B601040FFEC000000003C040800D9 -:100B50000E00063B8C8424040A00032A00000000D7 -:100B60003C03080090631B982402000214620003F7 -:100B70003C034B650A0002E1000080218E22001C2C -:100B80003463765410430002241000022410000144 -:100B900000C020210E000350020030212402000377 -:100BA0003C010800A0221B98240200021202000A45 -:100BB000240200013C0308008C6323F0106200064D -:100BC000000000003C020800944223D800021400F8 -:100BD0000A00031FAE2200143C040800248423DA18 -:100BE0009482000000021400AE2200143C020800AF -:100BF0008C421BBC3C03C0003C010800A0201B9899 -:100C000000431025AF625C5C8F625C503042000292 -:100C100010400009000000002484F7E28C820000EC -:100C200000431025AF625C5C8F625C503042000272 -:100C30001440FFFA000000003C02080024421B841C -:100C40008C43000024630001AC4300008F630C144C -:100C50003063000F2C6200021440000C3C02400084 -:100C60008F630C143C0208008C421B403063000F61 -:100C7000244200013C010800AC221B402C6200020F -:100C80001040FFF7000000003C024000024218251F -:100C9000AF635C9C8F625C90304200021440FFFCAA -:100CA0000000000012600003000000000E0004C0FD -:100CB000000000008FBF00288FB300248FB20020F7 -:100CC0008FB1001C8FB0001803E0000827BD003072 -:100CD0008F6344503C04080024841B888C820000ED -:100CE00000031C020043102B144000073C0380004B -:100CF0008C8400048F62445000021C020083102B7D -:100D00001040FFFC3C038000AF6344448F624444C6 -:100D1000004310241440FFFD000000008F6244488F -:100D200003E000083042FFFF3C0240000082202523 -:100D3000AF645C388F625C30304200021440FFFCCC -:100D40000000000003E000080000000027BDFFE0F5 -:100D50000080582114C00011256E00083C020800D4 -:100D60008C4223F410400007240200163C010800C6 -:100D7000A42223D22402002A3C0108000A000364B2 -:100D8000A42223D48D670010000714023C01080040 -:100D9000A42223D23C010800A42723D43C04080049 -:100DA000948423D43C030800946323D295CF000697 -:100DB0003C020800944223D00083202301E2C02398 -:100DC0003065FFFF24A2002801C248213082FFFFC6 -:100DD00014C0001A012260219582000C3042003FAD -:100DE0003C010800A42223D69582000495830006C6 -:100DF0003C010800AC2023E43C010800AC2023E8BF -:100E000000021400004310253C010800AC221BC066 -:100E1000952200043C010800A4221BC49523000273 -:100E200001E510230043102A1040001024020001A5 -:100E30003C0108000A000398AC2223F83C03080098 -:100E40008C6323E83C02080094421BC40043102139 -:100E5000A52200043C02080094421BC0A5820004A5 -:100E60003C0208008C421BC0A58200063C02080020 -:100E70008C4223F03C0D08008DAD23E43C0A0800B1 -:100E8000144000E58D4A23E83C02080094421BC44C -:100E9000004A18213063FFFF0062182B2402000271 -:100EA00010C2000D014350233C020800944223D697 -:100EB0003042000910400008000000009582000C3C -:100EC0003042FFF6A582000C3C020800944223D673 -:100ED0003042000901A268233C0208008C4223F83A -:100EE0001040004A012038213C020800944223D2DD -:100EF00000004021A520000A01E21023A5220002E3 -:100F00003082FFFF0002104218400008000030212C -:100F10000040182194E200002508000100C23021A1 -:100F20000103102A1440FFFB24E7000200061C0204 -:100F300030C2FFFF006230210006140200C23021DF -:100F400000C0282100061027A522000A0000302139 -:100F50002527000C0000402194E200002508000134 -:100F600000C230212D0200041440FFFB24E70002E0 -:100F70009522000200004021912300090044202313 -:100F8000018038213082FFFFA4E0001000621821A8 -:100F9000000210421840001000C3302100404821D8 -:100FA00094E2000024E7000200C2302130E2007F1A -:100FB00014400006250800018D6300003C02007FFC -:100FC0003442FF8000625824256700080109102A76 -:100FD0001440FFF3000000003082000110400005C3 -:100FE00000061C02A0E0000194E2000000C23021D3 -:100FF00000061C0230C2FFFF00623021000614020E -:1010000000C230210A00047D30C6FFFF2402000226 -:1010100014C20081000000003C0208008C42240C35 -:1010200014400007000000003C020800944223D254 -:101030009523000201E210231062007700000000F7 -:101040003C020800944223D201E21023A5220002B0 -:101050003C0208008C42240C1040001A31E3FFFFD0 -:101060008DC700103C02080094421B9600E040210E -:1010700000072C0200AA20210043102300823823FD -:101080000007240230E2FFFF00823821000710270A -:10109000A522000A3102FFFF3C040800948423D4F7 -:1010A0000045302300E0282100641823006D18213A -:1010B00000C3302100061C0230C2FFFF0A00047D7D -:1010C0000062302101203821000040213082FFFFE2 -:1010D0000002104218400008000030210040182192 -:1010E00094E200002508000100C230210103102A0B -:1010F0001440FFFB24E7000200061C0230C2FFFF81 -:10110000006230210006140200C2302100C02821F4 -:1011100000061027A522000A000030212527000C18 -:101120000000402194E200002508000100C23021A7 -:101130002D0200041440FFFB24E700029522000268 -:101140000000402191230009004420230180382120 -:101150003082FFFFA4E000103C040800948423D4F4 -:101160000062182100C3302100061C0230C2FFFFBC -:101170000062302100061C023C020800944223D089 -:1011800000C348210044102300021FC20043102165 -:1011900000021043184000100000302100402021C0 -:1011A00094E2000024E7000200C2302130E2007F18 -:1011B00014400006250800018D6300003C02007FFA -:1011C0003442FF8000625824256700080104102A79 -:1011D0001440FFF3000000003C020800944223EC9E -:1011E00000C230213122FFFF00C2302100061C0264 -:1011F00030C2FFFF006230210006140200C230211D -:1012000000C0402100061027A5820010ADC00014C8 -:101210000A00049DADC000008DC7001000E0402111 -:101220001140000700072C0200AA3021000614021A -:1012300030C3FFFF004330210006140200C2282102 -:1012400000051027A522000A3C030800946323D45C -:101250003102FFFF01E210210043302300CD302195 -:1012600000061C0230C2FFFF00623021000614029B -:1012700000C2302100C0402100061027A5820010C6 -:101280003102FFFF00051C0000431025ADC2001015 -:101290003C0208008C4223F4104000052DE205EBCF -:1012A0001440000225E2FFF234028870A5C2003427 -:1012B0003C030800246323E88C6200002442000100 -:1012C000AC6200003C0408008C8423E43C0208006B -:1012D0008C421BC03303FFFF0083202100431821F1 -:1012E0000062102B3C010800AC2423E410400003F2 -:1012F0002482FFFF3C010800AC2223E43C010800EB -:10130000AC231BC003E0000827BD002027BDFFB8A9 -:101310003C05080024A51B96AFBF0044AFBE0040AB -:10132000AFB7003CAFB60038AFB50034AFB4003053 -:10133000AFB3002CAFB20028AFB10024AFB0002093 -:1013400094A900003C020800944223D03C0308000A -:101350008C631BB03C0408008C841BAC012210235E -:101360000064182AA7A9001E106000BEA7A20016DC -:1013700024BE002297B6001E24B3001A24B700161C -:101380008FC2000014400008000000008FC2FFF868 -:1013900097A300168FC4FFF4004310210082202A77 -:1013A000148000B00000000097D5081832A2FFFF9B -:1013B000104000A3000090210040A02100008821DF -:1013C0000E000625000000000040302114C0000778 -:1013D000000000003C0208008C4223DC2442000193 -:1013E0003C0108000A000596AC2223DC3C100800F2 -:1013F000021180218E101BC89608000A310200409D -:10140000104000052407180C8E02000C2407188CCD -:1014100000021400ACC200183102008054400001E8 -:1014200034E700103C020800005110218C421BD010 -:101430003C030800007118218C631BD400021500C6 -:1014400000031C0000431025ACC2001496040008E1 -:101450003242FFFF008210210282102A1440000253 -:1014600002B22823008028218E020000024590212C -:10147000ACC200008E02000400C020212631001002 -:10148000AC82000430E2FFFFAC800008A485000EAF -:10149000AC820010240203050E0005A2A482000CF9 -:1014A0003242FFFF0054102B1440FFC53242FFFFB1 -:1014B0000A00058E000000008E6200008E63FFFCB3 -:1014C0000043102A10400067000000008E62FFF009 -:1014D000000289003C100800021180210E00062540 -:1014E0008E101BC80040302114C000050000000011 -:1014F0008E62082C244200010A000596AE62082C78 -:101500009608000A31020040104000052407180C1C -:101510008E02000C2407188C00021400ACC20018C4 -:101520003C020800005110218C421BD03C030800F3 -:10153000007118218C631BD40002150000031C00ED -:1015400000431025ACC200148E63FFF4960200081D -:10155000004320233242FFFF3083FFFF004310216E -:1015600002C2102A104000030080282197A9001E03 -:10157000013228238E62000030A4FFFF00441021B6 -:10158000AE620000A4C5000E8E020000ACC20000D6 -:101590008E0200048E63FFF400431021ACC20004ED -:1015A0008E63FFF496020008006418210062102A7E -:1015B00014400006024590218E62FFF0AE60FFF4F9 -:1015C000244200010A000571AE62FFF0AE63FFF431 -:1015D000ACC000083242FFFF105600033102000485 -:1015E000104000062402030531020080544000012F -:1015F00034E7001034E7002024020905A4C2000CDF -:101600008EE300008EE20004146200073C02B49AEC -:101610008EE208605440000134E704003C024B6550 -:101620000A00058834427654344289ABACC2001CAF -:1016300030E2FFFFACC200100E0005A200C0202166 -:101640003242FFFF0056102B1440FF9B00000000A9 -:101650008E6200008E63FFFC0043102A1440FF4896 -:10166000000000008FBF00448FBE00408FB7003CD9 -:101670008FB600388FB500348FB400308FB3002C94 -:101680008FB200288FB100248FB0002003E0000843 -:1016900027BD004827BDFFE8AFBF0014AFB0001062 -:1016A0008F6244508F6344100A0005B1008080218E -:1016B0008F626820304220001040000300000000CC -:1016C0000E0001F0000020218F6244508F6344100F -:1016D0003042FFFF0043102B1440FFF500000000D4 -:1016E0008F630C143063000F2C6200021440000B57 -:1016F000000000008F630C143C0208008C421B4069 -:101700003063000F244200013C010800AC221B4062 -:101710002C6200021040FFF700000000AF705C1860 -:101720008F625C103042000210400009000000008F -:101730008F626820304220001040FFF80000000057 -:101740000E0001F0000020210A0005C40000000086 -:101750008FBF00148FB0001003E0000827BD0018F1 -:1017600000000000000000000000000027BDFFE8AE -:101770003C1BC000AFBF0014AFB00010AF60680CDE -:101780008F62680434420082AF6268048F63400055 -:1017900024020B503C010800AC221B5424020B789D -:1017A0003C010800AC221B6434630002AF634000BC -:1017B0000E000605008080213C010800A0221B6865 -:1017C000304200FF24030002144300050000000023 -:1017D0003C0208008C421B540A0005F8AC5000C0C3 -:1017E0003C0208008C421B54AC5000BC8F62443455 -:1017F0008F6344388F6444103C010800AC221B5CAA -:101800003C010800AC231B6C3C010800AC241B58B5 -:101810008FBF00148FB0001003E0000827BD001830 -:101820003C0408008C8700003C03AA553463AA5589 -:101830003C06C003AC8300008CC2000014430007C8 -:10184000240500023C0355AA346355AAAC8300006A -:101850008CC2000050430001240500013C02080036 -:10186000AC47000003E0000800A0102127BDFFF8EE -:1018700018800009000028218F63680C8F62680CB3 -:101880001043FFFE0000000024A5000100A4102A60 -:101890001440FFF90000000003E0000827BD000825 -:1018A0008F6344503C0208008C421B5C00031C0206 -:1018B0000043102B144000083C0380003C04080047 -:1018C0008C841B6C8F62445000021C020083102B1E -:1018D0001040FFFC3C038000AF6344448F624444EB -:1018E000004310241440FFFD000000008F624448B4 -:1018F00003E000083042FFFF3082FFFF2442E00097 -:101900002C422001144000033C0240000A0006481B -:101910002402FFFF00822025AF645C388F625C30B8 -:10192000304200021440FFFC0000102103E00008D8 -:10193000000000008F6244503C0308008C631B5879 -:101940000A0006513042FFFF8F6244503042FFFFD1 -:101950000043102B1440FFFC0000000003E00008CF -:101960000000000027BDFFE0008028213C040800A3 -:1019700024841AF00000302100003821AFBF001885 -:10198000AFA000100E00067CAFA000140A00066095 -:10199000000000008FBF001803E0000827BD0020F2 -:1019A0000000000000000000000000003C020800F1 -:1019B000344230003C030800346330003C0408002B -:1019C000348437FF3C010800AC221B742402004021 -:1019D0003C010800AC221B783C010800AC201B70C5 -:1019E000AC600000246300040083102B5040FFFD16 -:1019F000AC60000003E00008000000000080482107 -:101A00008FAA00103C0208008C421B703C040800A6 -:101A10008C841B788FAB0014244300010044102BEE -:101A20003C010800AC231B7014400003000040215F -:101A30003C010800AC201B703C0208008C421B706B -:101A40003C0308008C631B749124000000021140C9 -:101A5000004310210048102125080001A044000087 -:101A6000290200081440FFF4252900013C02080067 -:101A70008C421B703C0308008C631B748F64680CE1 -:101A80000002114000431021AC440008AC45000C9A -:101A9000AC460010AC470014AC4A001803E0000844 -:101AA000AC4B001C00000000000000004D61696E9E -:101AB00043707542000000004D61696E43707541CE -:101AC00000000000000000000000000073746B6F55 -:101AD00066666C64496E000073746B6F66662A2AD2 -:101AE0000000000053774576656E743000000000FA -:101AF000000000000000000000000000666174614A -:101B00006C45727200000000000000000000000040 -:101B100000000000000000000000000000000000C5 -:101B200000000000000000000000000000000000B5 -:101B300073746B6F66666C645F76312E362E300080 -:101B40000000000000000000000000000000000095 -:0C1B500000000000000000000000000089 -:00000001FF - * Firmware is: - * Derived from proprietary unpublished source code, - * Copyright (C) 2000-2003 Broadcom Corporation. - * - * Permission is hereby granted for the distribution of this firmware - * data in hexadecimal or equivalent format, provided this copyright - * notice is accompanying it. diff --git a/firmware/tigon/tg3_tso5.bin.ihex b/firmware/tigon/tg3_tso5.bin.ihex deleted file mode 100644 index 33672514eab3..000000000000 --- a/firmware/tigon/tg3_tso5.bin.ihex +++ /dev/null @@ -1,252 +0,0 @@ -:10000000010200000001000000000FD80C004003B6 -:100010000000000000010F040000000010000003B9 -:10002000000000000000000D0000000D3C1D00015C -:1000300037BDE00003A0F0213C10000126100000B5 -:100040000C004010000000000000000D27BDFFE084 -:100050003C04FEFEAFBF00180C0042E834840002EE -:100060000C004364000000003C03000190630F3467 -:10007000240200023C04000124840E9C146200034C -:10008000240500013C04000124840E902406000293 -:1000900000003821AFA000100C004378AFA000147E -:1000A0000C00402C000000008FBF001803E0000887 -:1000B00027BD0020000000000000000027BDFFE079 -:1000C000AFBF001CAFB20018AFB100140C0042D497 -:1000D000AFB000103C128000241100018F70681036 -:1000E0003202040010400007000000008F64100876 -:1000F0000092102414400003000000000C00406433 -:10010000000000003C02000190420F561051000315 -:10011000320202001040FFF1000000000C0041B468 -:100120000000000008004034000000008FBF001CE9 -:100130008FB200188FB100148FB0001003E00008D8 -:1001400027BD002027BDFFE03C04000124840EB041 -:10015000000028210000302100003821AFBF001826 -:10016000AFA000100C004378AFA000140000D02115 -:1001700024020130AF6250003C010001A4200F5066 -:100180003C010001A0200F578FBF001803E00008BA -:1001900027BD002000000000000000003C0300011B -:1001A00024630F609062000027BDFFF0144000033D -:1001B0000080C02108004073000048213C0220005C -:1001C00003021024104000032409000208004073B9 -:1001D000A0600000240900010018104030431F8077 -:1001E000346F80081520004B25EB00283C040001EB -:1001F000008320218C8480103C05000124A50F7A07 -:1002000000041402A0A200003C010001A0240F7B06 -:100210003C02000100431021944280143C01000183 -:10022000A0220F7C3C0C0001018360218D8C801882 -:10023000304200FF24420008000220C324020001D3 -:100240003C010001A0220F600124102B1040000C83 -:100250000000382124A6000E016028218CA2000095 -:100260008CA3000424A5000824E70001ACC2000010 -:10027000ACC3000400E4102B1440FFF824C60008AF -:10028000000038213C08000125080F7B9106000082 -:100290003C02000190420F7C2503000D00C3282181 -:1002A0000046102300021FC2004310210002104329 -:1002B0001840000C0000202191020001004610238C -:1002C00000021FC2004310210002184394A2000044 -:1002D00024E700010082202100E3102A1440FFFBE4 -:1002E00024A5000200041C023082FFFF00622021CE -:1002F00000041402008220213C02FFFF018210242E -:100300003083FFFF004310253C010001080040FA44 -:10031000AC220F803C05000124A50F7C90A20000B8 -:100320003C0C0001018360218D8C8018000220C2EA -:100330001080000E000038210160302124A5000C3F -:100340008CA200008CA3000424A5000824E700016F -:10035000ACC20000ACC3000400E4102B1440FFF852 -:1003600024C600083C05000124A50F7C90A20000D3 -:1003700030430007240200041062001128620005C7 -:10038000104000052402000210620008000710C09F -:10039000080040FA00000000240200061062000E6F -:1003A000000710C0080040FA0000000000A2182159 -:1003B0009463000C004B1021080040FAA443000095 -:1003C000000710C000A218218C63000C004B102104 -:1003D000080040FAAC43000000A218218C63000C16 -:1003E000004B202100A21021AC8300009442001099 -:1003F000A482000495E700063C02000190420F7CB5 -:100400003C03000190630F7A00E2C8233C02000124 -:1004100090420F7B2463002801E3402124420028FE -:100420001520001201E2302194C2000C3C010001B1 -:10043000A4220F7894C2000494C300063C0100017A -:10044000A4200F763C010001A4200F7200021400CA -:10045000004310253C010001AC220F6C9502000402 -:100460003C01000108004124A4220F703C0200015D -:1004700094420F703C03000194630F7200431021FB -:10048000A50200043C02000194420F6CA4C20004C7 -:100490003C0200018C420F6CA4C200063C04000127 -:1004A00094840F723C02000194420F703C0A0001D8 -:1004B000954A0F76004418213063FFFF0062182A26 -:1004C000240200021122000B008320233C030001C0 -:1004D00094630F7830620009104000063062FFF626 -:1004E000A4C2000C3C02000194420F783042000983 -:1004F00001425023240200011122001B2922000284 -:1005000050400005240200021120000731A2FFFF25 -:1005100008004197000000001122001D240200166F -:100520000800419731A2FFFF3C0E000195CE0F80DD -:10053000108000050180682101C4202100041C02F4 -:100540003082FFFF00627021000E1027A502000A12 -:100550003C03000190630F7B31A2FFFF00E21021FA -:100560000800418D004320233C02000194420F808B -:100570000044202100041C023082FFFF0062202181 -:10058000008070210004102708004185A502000AA0 -:100590003C05000124A50F7A90A30000146200021C -:1005A00024E2FFF2A5E2003490A2000000E2102352 -:1005B000A50200023C03000194630F803C0200018D -:1005C00094420F5A30E5FFFF0064182100451023C4 -:1005D0000062202300041C023082FFFF0062202101 -:1005E00000041027A502000A3C03000190630F7C61 -:1005F0002462000114A20005008070210163102113 -:10060000904200000800418500026200246200025E -:1006100014A20003306200FE004B1021944C000035 -:100620003C02000194420F823183FFFF3C04000131 -:1006300090840F7B0043102100E21021004420230E -:10064000008A202100041C023082FFFF006220216A -:100650000004140200822021008068210004102779 -:10066000A4C2001031A2FFFF000E1C0000431025A1 -:100670003C04000124840F72ADE20010948200005B -:100680003C05000194A50F763C0300018C630F6CC0 -:100690002442000100B92821A48200003322FFFF78 -:1006A000006220210083182B3C010001A4250F7655 -:1006B0001060000324A2FFFF3C010001A4220F767A -:1006C0003C024000030210253C010001AC240F6CE9 -:1006D000AF62100803E0000827BD00103C030001D2 -:1006E00090630F5627BDFFE824020001AFBF00143E -:1006F00010620026AFB000108F620CF42442FFFF9E -:100700003042007F000211008C4340003C01000198 -:10071000AC230F648C434008244440008C5C4004AC -:1007200030620040144000022402008824020008C5 -:100730003C010001A4220F68306200041040000553 -:10074000240200013C010001A0220F57080041D5FE -:10075000000314023C010001A0200F570003140203 -:100760003C010001A4220F549483000C24020001D8 -:100770003C010001A4200F503C010001A0220F56B3 -:100780003C010001A4230F62240200011342001E59 -:10079000000000001340000524020003134200671C -:1007A00000000000080042CF000000003C020001F1 -:1007B00094420F62241A00013C010001A4200F5E44 -:1007C0003C010001A4200F52304407FF00021BC26D -:1007D000000318233063003E3463003600021242E7 -:1007E0003042003C006218213C010001A4240F5853 -:1007F00000832021246300303C010001A4240F5A0F -:100800003C010001A4230F5C3C06000124C60F52EA -:1008100094C5000094C300023C04000194840F5A64 -:10082000006510210044102A104000133C10800085 -:1008300000A31021A4C200003C02A000AF620CF48F -:100840003C010001A0200F568F6410080090102476 -:1008500014400003000000000C0040640000000091 -:100860008F620CF400501024104000B7000000000C -:100870000800420F000000003C03000194630F5089 -:1008800000851023A4C40000006218213042FFFF3D -:100890003C010001A4230F50AF620CE83C020001B0 -:1008A00094420F6834420024AF620CEC94C30002FF -:1008B0003C02000194420F50146200123C0280007E -:1008C0003C1080003C02A000AF620CF43C0100012F -:1008D000A0200F568F6410080090102414400003CD -:1008E000000000000C004064000000008F620CF467 -:1008F000005010241440FFF700000000080042CF11 -:10090000241A0003AF620CF43C1080008F641008BE -:100910000090102414400003000000000C0040640C -:10092000000000008F620CF4005010241440FFF708 -:1009300000000000080042CF241A00033C07000119 -:1009400024E70F5094E2000003821021AF620CE014 -:100950003C0200018C420F64AF620CE43C050001D4 -:1009600094A50F5494E300003C04000194840F58B4 -:100970003C02000194420F5E00A328230082202342 -:1009800030A6FFFF3083FFFF00C3102B144000434D -:10099000000000003C02000194420F5C00021400C1 -:1009A00000621025AF620CE894E200003C030001F5 -:1009B00094630F5400441021A4E200003042FFFF72 -:1009C000144300213C0200083C02000190420F57F2 -:1009D000104000063C03000C3C02000194420F68EA -:1009E000346306240800427C0000D0213C02000150 -:1009F00094420F683C03000834630624004310252A -:100A0000AF620CEC3C1080003C02A000AF620CF422 -:100A10003C010001A0200F568F64100800901024A4 -:100A200014400003000000000C00406400000000BF -:100A30008F620CF4005010241040001500000000DC -:100A400008004283000000003C03000194630F682B -:100A5000344206243C108000006218253C028000CD -:100A6000AF630CECAF620CF48F641008009010249C -:100A700014400003000000000C004064000000006F -:100A80008F620CF4005010241440FFF700000000A7 -:100A90003C010001080042CFA4200F5E3C0200018F -:100AA00094420F5C0002140000C21025AF620CE8F3 -:100AB0003C02000190420F57104000093C03000C1B -:100AC0003C02000194420F68346306240000D021E8 -:100AD00000431025AF620CEC080042C13C108000BE -:100AE0003C02000194420F683C0300083463060492 -:100AF00000431025AF620CEC3C02000194420F5EF3 -:100B0000004510213C010001A4220F5E3C10800032 -:100B10003C02A000AF620CF43C010001A0200F5683 -:100B20008F6410080090102414400003000000009F -:100B30000C004064000000008F620CF40050102490 -:100B40001440FFF7000000008FBF00148FB00010AA -:100B500003E0000827BD00180000000027BDFFE0EB -:100B60003C04000124840EC0000028210000302134 -:100B700000003821AFBF0018AFA000100C00437870 -:100B8000AFA000140000D02124020130AF62500059 -:100B90003C010001A4200F503C010001A0200F5790 -:100BA0008FBF001803E0000827BD002027BDFFE825 -:100BB0003C1BC000AFBF0014AFB00010AF60680CAA -:100BC0008F62680434420082AF6268048F63400021 -:100BD00024020B503C010001AC220F2024020B78B0 -:100BE0003C010001AC220F3034630002AF634000CF -:100BF0000C004315008080213C010001A0220F342D -:100C0000304200FF240300021443000500000000EE -:100C10003C0200018C420F2008004308AC5000C089 -:100C20003C0200018C420F20AC5000BC8F62443467 -:100C30008F6344388F6444103C010001AC220F28BC -:100C40003C010001AC230F383C010001AC240F240F -:100C50008FBF00148FB0001003E0000827BD0018FC -:100C600003E000082402000127BDFFF818800009F6 -:100C7000000028218F63680C8F62680C1043FFFE10 -:100C80000000000024A5000100A4102A1440FFF970 -:100C90000000000003E0000827BD00088F634450F7 -:100CA0003C0200018C420F2800031C020043102B61 -:100CB000144000083C0380003C0400018C840F3881 -:100CC0008F62445000021C020083102B1040FFFC76 -:100CD0003C038000AF6344448F62444400431024CB -:100CE0001440FFFD000000008F62444803E000084C -:100CF0003042FFFF3082FFFF2442E0002C422001FF -:100D0000144000033C024000080043472402FFFF58 -:100D100000822025AF645C388F625C303042000274 -:100D20001440FFFC0000102103E000080000000058 -:100D30008F6244503C0300018C630F240800435031 -:100D40003042FFFF8F6244503042FFFF0043102BC0 -:100D50001440FFFC0000000003E000080000000059 -:100D600027BDFFE0008028213C04000124840ED030 -:100D70000000302100003821AFBF0018AFA00010E4 -:100D80000C004378AFA000140800435F000000008F -:100D90008FBF001803E0000827BD00203C020001BF -:100DA0003442D6003C0300013463D6003C04000109 -:100DB0003484DDFF3C010001AC220F4024020040DE -:100DC0003C010001AC220F443C010001AC200F3C6F -:100DD000AC600000246300040083102B5040FFFD32 -:100DE000AC60000003E00008000000000080482123 -:100DF0008FAA00103C0200018C420F3C3C04000111 -:100E00008C840F448FAB0014244300010044102B4A -:100E10003C010001AC230F3C1440000300004021C2 -:100E20003C010001AC200F3C3C0200018C420F3C15 -:100E30003C0300018C630F4091240000000211402C -:100E4000004310210048102125080001A0440000A3 -:100E5000290200081440FFF4252900013C0200018A -:100E60008C420F3C3C0300018C630F408F64680C84 -:100E70000002114000431021AC440008AC45000CB6 -:100E8000AC460010AC470014AC4A001803E0000860 -:100E9000AC4B001C00000000000000004D61696EBA -:100EA00043707542000000004D61696E43707541EA -:100EB00000000000000000000000000073746B6F71 -:100EC00066666C64000000000000000073746B6FC5 -:100ED00066666C64000000000000000066617461DA -:100EE0006C4572720000000000000000000000006D -:100EF00000000000000000000000000000000000F2 -:100F000000000000000000000000000000000000E1 -:100F100073746B6F66666C645F76312E322E3000B0 -:0C0F2000000000000000000000000000C5 -:00000001FF - * Firmware is: - * Derived from proprietary unpublished source code, - * Copyright (C) 2000-2003 Broadcom Corporation. - * - * Permission is hereby granted for the distribution of this firmware - * data in hexadecimal or equivalent format, provided this copyright - * notice is accompanying it. -/* 5705 needs a special version of the TSO firmware. */ diff --git a/firmware/ttusb-budget/dspbootcode.bin.ihex b/firmware/ttusb-budget/dspbootcode.bin.ihex deleted file mode 100644 index b4b2247077c4..000000000000 --- a/firmware/ttusb-budget/dspbootcode.bin.ihex +++ /dev/null @@ -1,820 +0,0 @@ -:1000000008AA001800030800001000000180185F13 -:100010000000018077182AEB6BF8001803FF68F8DE -:100020000018FFFEF7B8F7BEF6B9F4A0F6B7F6B5BC -:10003000F6B6F02019DFF1000001F84D01ABF6B87B -:10004000F02019DFF07301A57EF80012F000000126 -:1000500047F800117E9200F80011F00000017EF8D0 -:100060000011F00000016C89019AF7B8EEFCF02055 -:10007000FFFFF1000001F84D01BFF27301B94E021C -:10008000F495F5E356027E001100FA4C01B76B03BC -:100090000001F6B8EE04F0740DA7F07401C54A1122 -:1000A0004A1672112AE610F80011FA4501DBF495A0 -:1000B000EEFF4811F0002AC68816F495F49510EE6C -:1000C000FFFFF4E36CE9FFFF01D510F82AE7F845DC -:1000D00001E210F82AE7F4E3F07401FFEE018A165A -:1000E0008A11FC00F7B8E9204A1109F82AE6F84E0F -:1000F00001F3F27301FDF495E80172112AE649114A -:1001000080E12AC6F3000001E80081F82AE68A119E -:10011000FC00F495F073020010F82A0FFC004A115D -:10012000F074020280F82A107308000940F82A15BA -:1001300082F80011F495771003E8F5A9F830022150 -:1001400071F82A102A1556F82A0CF0E34EF82A16F0 -:10015000E8004EF82A0C8A11FC004A064A074A1D9C -:1001600068F800077D3F69F80007400068F8001D47 -:10017000FFFC6BF82A0F00018A1D8A078A06F4EB40 -:10018000EEFD76F82A0F000076000000FB80194C87 -:10019000F495E80080F82A11F980190780F82A0EF2 -:1001A000F980166676002A1210F82A11F98018E3F1 -:1001B00010F82A0EF980166610F82A0EF9801687B4 -:1001C000EE03FC004A11F6B8F495F020800011F817 -:1001D0002A5AF84D029311F82A9FF84C027C7712A4 -:1001E0002A39491201F82A9F8911F495F4957181F1 -:1001F00000116CE1FFAB02936BF82A9F0001E90547 -:1002000001E2000381F82AA0F073029572112A9F7F -:10021000F49510E12A396BF82A9F000111F82A9F02 -:1002200009F82AA0F84C029376F82A5A000076F8CA -:100230002A9F000076F82AA000008811F495481142 -:100240008A11FC004A11EEFE10F82A5AF84402B254 -:1002500076F82A5A0001F07402588811F495771044 -:100260008000F4A9F83002B24811F03000FF80009D -:1002700010F82A5BF98018D6EE028A11FC00F4957A -:100280004A084A094A0A4A0B4A0C4A0D4A104A11BE -:100290004A124A134A144A154A164A174A174A1963 -:1002A0004A0E4A064A074A1A4A1D4A1B4A1C68F85F -:1002B00000077D3F69F80007400068F8001DFFFC5B -:1002C000481868F80018FFFEF495F4954A08EEFD0A -:1002D000F07402588811F49577108000F4A9F83072 -:1002E00002EF4811F03000FF800010F82A5BF9801F -:1002F00018D6EE038A18F4958A1C8A1B8A1D8A1A5E -:100300008A078A068A0E8A198A178A178A168A1510 -:100310008A148A138A128A118A108A0D8A0C8A0B0F -:100320008A0A8A098A08F4EB4A1177112A397681F8 -:10033000005577122A1810E2000180E1000110E256 -:10034000000280E1000276E10003000076E1000493 -:1003500000AAF07402988A11FC004A118811F495E1 -:10036000F49510816FF82A9E0C88E8FF18E10001CF -:100370001AF82A9EF0301FFF80F82A9E8A11FC008E -:100380004A1177112A397681005577122A1811E21D -:10039000000181E1000111E2000281E1000276E149 -:1003A0000003000248086FE100040C98F03000FFE1 -:1003B00080E1000576E1000600AAF07402988A1137 -:1003C000FC004A1177112A397681005577122A18D4 -:1003D00010E2000180E1000110E2000280E1000271 -:1003E00076E1000300044811F00000048812F4953F -:1003F00077132A76E900E598F3000001F6B8480B78 -:1004000008F82A3CF8430371768200AAF074029837 -:100410008A11FC004A11EEF08811F495F49571816F -:10042000001471E1000100154911F3000002891167 -:10043000E7826DEA0004E7836DEB000A771A000596 -:10044000F07203AA1181F2E88082E9FF19E100014C -:10045000F1A0819211E1000CF2E88083E9FF19E13B -:10046000000DF1A081936DE9000248184918700051 -:100470000015F0000004F300000A80018102F2740C -:100480000E54F4954814EE108A11FC004A11F074D1 -:100490000C5E80F82A5C77122A3976820055771133 -:1004A0002A1810E1000180E2000110E1000280E260 -:1004B000000276E20003001CF6B856F82A16F0F0A7 -:1004C000F0F880E2000756F82A16F1F0E8FFF28013 -:1004D00080E2000656F82A16F1F8E8FFF28080E282 -:1004E000000557F82A16E8FFF28080E2000456F86B -:1004F000276CF0F0F0F880E2000B56F8276CF1F072 -:10050000E8FFF28080E2000A56F8276CF1F8E8FF75 -:10051000F28080E20009E8FF57F8276CF28080E261 -:10052000000856F8276AF0F0F0F880E2000F56F85D -:10053000276AF1F0E8FFF28080E2000E56F8276AA1 -:10054000F1F8E8FFF28080E2000D57F8276AE8FF33 -:10055000F28080E2000C76E20013000076E20012E6 -:1005600000006FF82A5C0C5880E20011E8FF18F8D0 -:100570002A5C80E2001076E20017000076E20016A6 -:1005800000006FF82A9E0C5880E20015E8FF18F86A -:100590002A9E80E2001476E2001B000076E2001A38 -:1005A000000076E20019000070E20018276E76E283 -:1005B000001F000076E2001E000076E2001D000031 -:1005C00076E2001C000076E2002000AAF074029897 -:1005D0008A11FC004A11EEFE10F82A38F84504EDA5 -:1005E00077122A1810E200028811F495771000089B -:1005F0006DE9FFDFF6A9F8200475F073047DF010B3 -:100600000021F0001A8348087EF80008F4E2F07434 -:10061000030AF07304EA4812F2740323F0000004A2 -:10062000F2740336F495E800F07304EA77112A189F -:10063000E8FF6FE100040D4818E10005F274096954 -:10064000F495F2A0F0740336F07304EA77112A18D7 -:10065000E8FF6FE100040D4818E10005F27409415C -:10066000F495F2A0F0740336F07304EAF0740357C3 -:10067000F07304EA10F82A1CF07412A4F274033622 -:10068000F495E800F07304EA4812F2740380F00075 -:100690000004F2740336F495E800F07304EA10F8ED -:1006A0002A1CF07412C5F2740336F495E800F07356 -:1006B00004EA77112A18E8FF6FE100060D4818E1F7 -:1006C000000771E100050012F2A070000012800125 -:1006D00010E10004F0740E7AF2740336F495E80029 -:1006E000F07304EAF07403BC76F82A380000EE02D6 -:1006F0008A11FC004A1177112A3976810055771248 -:100700002A1810E2000180E1000110E2000280E1FD -:10071000000276E1000300094811F000000488128D -:10072000F49577132A86E900E598F3000001F6B8FE -:10073000480B08F82A3CF843050A768200AAF074B0 -:1007400002988A11FC004A1177112A3976810055E6 -:1007500077132A1810E3000180E1000110E3000282 -:1007600080E1000213E3000381E1000348117711E7 -:100770000000F84D0544F000000488124813F00012 -:1007800000048813F495F495E5986D91F6B8481136 -:1007900008F82A3CF843053AF0202A394911F500B7 -:1007A0008911F495F49576E1000400AAF07402989A -:1007B0008A11FC004A1177112A3976810055771287 -:1007C0002A1810E2000180E1000110E2000280E13D -:1007D000000276E10003000C4811F00000048812CA -:1007E000F49577132A7AE900E598F3000001F6B84A -:1007F000480B08F82A3CF843056A768200AAF07490 -:1008000002988A11FC004A1177112A397681005525 -:1008100077122A1810E2000180E1000110E20002C4 -:1008200080E1000276E1000300194811F0000004A5 -:100830008812F49577132A5DE900E598F30000012A -:10084000F6B8480B08F82A3CF8430593768200AACC -:10085000F07402988A11FC004A11881110F82A38A5 -:10086000F84405E310F82AA1F84405BA6CE1FF56F4 -:1008700005E372122AA1F49570E22A1800116BF8B0 -:100880002AA10001F07305E372122AA1F49570E227 -:100890002A18001110F82AA1F00000018812F4951E -:1008A000F4956EE2FFFC05D173122AA14811F00005 -:1008B000000580F82AA210F82AA108F82AA2F84414 -:1008C00005E36CE1FFAB05DD76F82A38000176F828 -:1008D0002AA1000076F82AA200008A11FC00F495F3 -:1008E0004A084A094A0A4A0B4A0C4A0D4A104A1158 -:1008F0004A124A134A144A154A164A174A174A19FD -:100900004A0E4A064A074A1A4A1D4A1B4A1C68F8F8 -:1009100000077D3F69F80007400068F8001DFFFCF4 -:10092000481868F80018FFFEF495F4954A08EEFFA1 -:1009300010F82A5BF9801804F07405A2EE018A18F9 -:10094000F4958A1C8A1B8A1D8A1A8A078A068A0ECF -:100950008A198A178A178A168A158A148A138A129C -:100960008A118A108A0D8A0C8A0B8A0A8A098A08D7 -:10097000F4EBEEFD76F82A38000076F82A5A0000EB -:10098000E8014E00FB8017D6F495E80180F82A5B59 -:1009900076002A8FF98016AA10F82A5BF980175C76 -:1009A00010F82A5BF980176FFB801666F495E81A39 -:1009B000FB801687F495E81AFB801666F495E81B11 -:1009C000FB801687F495E81BEE03FC004A11F495B2 -:1009D00013028811E800F84D066AF3100001891A25 -:1009E000F495F07206691C918A11FC004A11881175 -:1009F00012031102F8450679F0100001881AF495E7 -:100A0000F072067881918A11FC004A11F495710206 -:100A10000011110361F800110001F8300691F6B8D9 -:100A20006FF800110C1F8811F3E8E8FF1881F1A09E -:100A30008181F073069DF6B86FF800110C1F8811C4 -:100A4000F33000FFF020FF001881F1A081818A11AE -:100A5000FC004A11F495110261F8000B0001F82026 -:100A600006B1490BF61F8811F495F4951081F273C5 -:100A700006B8F03000FF490BF61F8811F495F49585 -:100A80001281F4788A11FC004A11F4957102001267 -:100A900013038811E800F84D06CCF3100001891A01 -:100AA000F495F07206CB1192F2C081918A11FC008C -:100AB0008812120271010013F84506DBF0100001E4 -:100AC000881AF495F07206DAE598FC004A11EEFEF9 -:100AD0008811110410067105001261F8001200015E -:100AE000F82006EAF0000001F6B8F00000016FF807 -:100AF00000120F1F48088100F47F8001F27406BACB -:100B0000F4954811EE028A11FC004A11EEFE88129B -:100B1000110410067105001361F800130001F8209C -:100B20000709F0000001F00000018811F6B86FF825 -:100B300000130F1F81004811F47F8001F27406CE6C -:100B4000F49548124811F030FFFEEE028A11FC00C5 -:100B50004A114A164A17EEFCF495800271080016F5 -:100B60001009710B00178003710A00114817F8452E -:100B7000073F700000111003F074069F80017000A1 -:100B800000161002F074067B6D916D966CEFFFFFFE -:100B9000072FEE048A178A168A11FC004A11EEFE0E -:100BA00010F82AE808F82AE9F845076476000001F9 -:100BB00062F82AE9005EF274120BF0003040721104 -:100BC0002AE97710000FF5A9F82007616BF82AE9E8 -:100BD0000001F073076476F82AE90000EE028A113A -:100BE000FC004A118811E80075F800080008E800C8 -:100BF00075F800080009F6B8F495F020FC3F75F888 -:100C00000008000DF0200C3075F80008000C76F894 -:100C10002AE8000076F82AE900006C81079276F84D -:100C20002AEA0000FB801676F495E810E80075F8D3 -:100C300000080000F07307A876F82AEA0001FB809C -:100C40001666F495E810FB801687F495E810E80026 -:100C500075F800080000F6B8F495F020FFFF75F86D -:100C6000000800008A11FC00F4954A084A094A0A63 -:100C70004A064A074A1D68F800077D3F69F80007E1 -:100C8000400068F8001DFFFC10F82AEAF84507E16B -:100C900010F82AE8F0000001F030000F80F82AE890 -:100CA00010F82AE8F84407D6F6B8F495F020FC3F8F -:100CB00075F80008000DF0200C3075F80008000CE5 -:100CC000E80075F800080000F6B8F495F020FFFF82 -:100CD00075F8000800008A1D8A078A068A0A8A09B0 -:100CE0008A08F4EBEEFFF2740767F495E801EE0171 -:100CF000FC004A074A1D68F800077D3F69F80007B5 -:100D0000400068F8001DFFFC8A1D8A07F4EB4A11B9 -:100D10007711002876812400E80075F800080001AA -:100D2000F2740767F495E8007711001D6881007F71 -:100D3000F6B8F495F020FF807711001DF030010027 -:100D40001A818081F0740A33F07411ACF980132594 -:100D5000F9801653F9801782F074062FF98014B2C7 -:100D6000F9801910F0740DE3F07407E8F07402369E -:100D70008A11FC004A1160F8277BFFFFF830083920 -:100D800071F8277B277960F82779FFFFF83008B2E0 -:100D900010F8298608F82779F0307FFF8811F4953C -:100DA00077104000F6A9F830085810F8277908F8AD -:100DB000277AF0307FFF8811F49577104000F6A96C -:100DC000F820086376F82779FFFF76F8277BFFFF86 -:100DD000F7B8F27308D9F020FFFFF6B856F8277479 -:100DE000F0F9881156F82772F0F98812F495F49505 -:100DF000E720F4A9F830088FF120277C4811F6008D -:100E00008813F495F495108308F82779F0307FFF64 -:100E10008813F49577104000F5ABF830088F6D918A -:100E20004811F03001FF8811F495E720F7A9F83058 -:100E300008746D894811F03001FFF0E7F495480817 -:100E40004EF827744808F1F98911F495F49571E189 -:100E5000277C277A60F8277BFFFFF83008AB48082B -:100E60004EF8277276F8277BFFFF76F82779FFFF89 -:100E7000F27308D9F495E80044F8277340F8277511 -:100E800082F80011F49577108000F6A9F82008D8B0 -:100E9000F6B810F82773F000800048084EF8277461 -:100EA0004808F0F98811F495F49571E1277C277AC8 -:100EB000F7B857F82774F062FFFFF040FF80F28028 -:100EC0004EF82774E8008A11FC004A114A16EEFB1E -:100ED00011F8277109F8277389118810F495F49592 -:100EE000F6A9F82008EDF273090EF495E800F62053 -:100EF00076000041F07412EE8816F495F7B86D96FE -:100F000010F80016F847090AE7617600000076013C -:100F10000080760200FF76030000F2740CB9F495AD -:100F2000E8006CE9FFFF08FB7316000EF066004155 -:100F3000EE058A168A11FC004A11F495710200131D -:100F4000F6B877117FFF57F827724811F280F0004A -:100F500080008811F640F0E0F1F1E801F28080F8BD -:100F600027787712800057F827724812F28088128B -:100F7000F495F4956C820938E80075F800080001D2 -:100F8000F073093DF020800175F8000800017081C0 -:100F900000138A11FC004A11F0307FFF11F82986F6 -:100FA000F520F3307FFF8911F49577104000F6A902 -:100FB000F8200954F2730967F495E8026FF8277A6C -:100FC0000D20F3307FFF8911F49577104000F6A9CA -:100FD000F8200964F2730967F495E80180F8277B2B -:100FE000E8008A11FC004A1111F82986F520F33037 -:100FF0007FFF8911F49577104000F6A9F820097A4F -:10100000F273098DF495E8026FF8277A0D20F3301A -:101010007FFF8911F49577104000F6A9F820098A1E -:10102000F273098DF495E80180F82779E8008A11B8 -:10103000FC004A11F495710200128811F6B857F8B5 -:101040002772F0207FFFF280F0008000808157F847 -:101050002772E801F3F1F28080F827787711800099 -:10106000481157F82772F2808811F495F4956C8135 -:1010700009B5E80075F800080001F07309BAF0201E -:10108000800175F80008000145F8277143F82773BF -:1010900083F80011F495E720F6A9F83009C9F27336 -:1010A00009E47712000057F82772F0207FFFF280E2 -:1010B0004912F500F300800061F8000B8000F83061 -:1010C00009DCF1208000F5208912F49548126FF8B0 -:1010D00027730D00F495490B4FF827728A11FE0013 -:1010E0004812F4954A114A164A17EEFCF495710815 -:1010F00000168817F0740830481870000016F27453 -:10110000098FF00000028811F495F4956C810A0AA9 -:10111000F27408DBF4954816481870000016F27453 -:10112000098FF00000028811100270010011800088 -:10113000F27406CEF495481749114817F60088173F -:10114000E760F5A9F8200A2D4816F62088114818FE -:1011500070000011F274098FF00000028811700114 -:10116000001110028000F27406CEF4954817EE04C8 -:1011700048168A178A168A11FC00EEFDE8004EF820 -:101180002770E8004EF82772E8004EF82774E80050 -:101190004EF8277676F82779FFFF76F8277A000051 -:1011A00076F8277BFFFF76F827780000E80075F8CF -:1011B000000800017600000076010200F27412DCE3 -:1011C000F020277CEE03FC004A11EEFCF4954E0063 -:1011D00077127FFFF6B84912F180F3008000891280 -:1011E000F0E0F1F14F02E901F495480BF5405602A9 -:1011F000F18081F827787711800056004911F1803D -:101200008911F495F4956C810A81E80075F800085D -:101210000001F0730A86F020800175F800080001D3 -:101220001082EE048A11FC004A11EEFEF4954E0085 -:1012300077117FFFF6B84911F180F3008000891122 -:10124000F0E0F1F1E801F28080F827785600F12013 -:101250008000F180F495490BF84D0AABF020800135 -:1012600075F800080001F0730AAFE80075F800088F -:101270000001EE0248118A11FC004A118812130283 -:1012800077110000F84D0ACBF3100001891AF4958C -:10129000F0720ACA48111CF8297E881111F8297EBB -:1012A000F200000180F8297E819248118A11FC0029 -:1012B0004A11F495710200118812F6B8F0207FFFF0 -:1012C00057F82770F280F0008000808257F827706E -:1012D000E801F3F1F28080F8277877128000481255 -:1012E00057F82770F2808812F495F4956C820AF40E -:1012F000E80075F800080001F0730AF9F020800199 -:1013000075F80008000145F82775E71043F82771C4 -:1013100083F800126DE800046D8AF6AAF8300B0A13 -:10132000F2730B257711000057F82770F0207FFF2C -:10133000F2804911F500F300800061F8000B800095 -:10134000F8300B1DF1208000F5208911F49548112B -:101350006FF827710D00F495490B4FF8277048116D -:101360008A11FC004A114A164A17EEF08817101726 -:1013700080051016800610158007711400111005E5 -:10138000F030000188101006F0300001800849118B -:101390001005F6018009100661F800080001F82028 -:1013A0000B4B1009F0000001800971080012F4AA2B -:1013B000F8300B541009F00000018009120949119E -:1013C000F47F8009F620800A56F827704E0C100929 -:1013D00080004818F2740ACEF00000048816F495D4 -:1013E000F4956C860B6DF2730C59F495E800F6B821 -:1013F000F495560CF0F98812F495F49570E2277C78 -:101400002986E800800E4811F8450BCC77100001C2 -:10141000F4A9F8300B896CE1FFFD0B8B10E700029B -:10142000800EF0730B8B1087800EE710F5AEF8205E -:101430000BB270000017700100161004F07406CE95 -:1014400048174916F60088174811F6208811100928 -:10145000F62080004818F2740ACEF00000048816C6 -:1014600010047000001770010011F07406CE4811CE -:1014700000048004F0730BBC7000001770010011B1 -:101480001004F07406CE4811000480044911481677 -:10149000F6208816F495F4956C860BCC100A800023 -:1014A0004818F2740ACEF00000048816120AF845B3 -:1014B0000C33710A0010F4AEF8300C1C4816F0E141 -:1014C00088111208F8450BDB6D891207F8450BE906 -:1014D0001007800070020011100680011004F074E3 -:1014E00006DCF0730BEF48116F000C9F1004F074D2 -:1014F0000AB3110EF1C0810E10064911F6008006E4 -:101500001005F6208811F000000148086F000C9FBC -:101510004818F2740ACEF00000041207F8450C11C6 -:101520001007800070020011100680011004F07492 -:1015300006DCF0730C1748116F000C9F1004F07458 -:101540000AB3110EF1C0810EF0730C331207F84587 -:101550000C2A10078000100680011005800210047C -:10156000F07406DCF0730C3012056F000C9F100451 -:10157000F0740AB3110EF1C0810E76000001481814 -:10158000F2740ACEF0000004710400117081298603 -:10159000100E1CF82986800E760000014818F2749F -:1015A0000ACEF0000004100E71040011808110F8C2 -:1015B0002986F0000001F0307FFF80F829861009AD -:1015C000F00000028009EE108A178A168A11FC00CA -:1015D00010F8277508F82771F01000014808FC0082 -:1015E0004A114A16EEFFF49571040016F00000014E -:1015F00048084EF8297C6DEEFFFD4816F8450C9919 -:1016000056F8297CF0740A5A881110F8297DF000E8 -:10161000000148084EF8297C10F82982F0000001EA -:101620008810F495F495F4A9FA300C9680F8298284 -:1016300056F82980F00000014EF8298073112982A4 -:101640006CEEFFFF0C76EE018A168A11FC004A113F -:1016500076F82984000076F829850001E8004EF824 -:101660002A0C76F82986000076F829870000771181 -:1016700029887681AAAA76E10001AAAA76E1000269 -:1016800000008A11FC004A11EEFCF495710600146A -:10169000710700137108001271090015771000FF1F -:1016A000F4AAF8300D44491353F82A0C4FF82A0CC9 -:1016B0007312000EF166000D8911F4957710000188 -:1016C00071E124000011F4A9F8300D177710000221 -:1016D000F4A9F8300CEC7711298A76810000E80033 -:1016E0007714000077130000F0730D486C830CFA38 -:1016F0007711298A4812F0E8F04080008081E800E4 -:1017000077140000F0730D484913F340800081F80E -:10171000298A61F800150001F8200D0769F8298A67 -:10172000400061F800140001F8200D0F69F8298AC3 -:1017300020007711298A4912F3E81B818181F07317 -:101740000D4811F82984F84C0D37771129887681D6 -:10175000AAAA11F82985F3100001F340AA0081E13B -:101760000001760000028001700200147003001373 -:10177000F2740B28F495481171F829852984F073C7 -:101780000D737600000080017602000070030013E4 -:10179000F2740B28F495E800F0730D737711298A21 -:1017A0007081001311F82984F84C0D68771129888D -:1017B0007681AAAA11F82985F3100001F340AA0046 -:1017C00081E10001760000038001700200147003C3 -:1017D0000013F2740B28F495481171F829852984B7 -:1017E000F0730D7376000001800170020014700325 -:1017F0000013F2740B28F49548116BF82984FFFF4D -:10180000EE048A11FC004A11F540F495480BF47877 -:101810008811F495F4956CE1FFB90D88F2730DA56C -:10182000F495E860F200000661F800110020F8303D -:101830000D9861F8000B0001F8200DA3F2000007DD -:10184000F0730DA361F8000B0001F8200DA1F273F5 -:101850000DA3F0000001F00000024808F47F8A1197 -:10186000FC00EEFFF07407FDF0740744F0740DB453 -:10187000F0740205F0740460F0730DAAEEFD10F828 -:101880002AA3F8440DCB10F82AA4F8450DD776000A -:101890000200F27409E8F020220076F82AA4000081 -:1018A00076F82AA70000F0730DD776000200F274D4 -:1018B00009E8F020200076F82AA3000076F82AA78D -:1018C0000001F0740C5EF0E0F0103A98F8470DE17A -:1018D00076F8276E0000EE03FC004A11EEFE771149 -:1018E00020007600AAAA76010200F274066CF49534 -:1018F000481176005555760102004811F274066CC5 -:10190000F000020076F82AA3000076F82AA400006E -:10191000E8004E00FB80153EF495E80480F82AA507 -:1019200076002AA8F980148776002AADFB8013621E -:10193000F495E80210F82AA5F9801463FB80166676 -:10194000F495E81CFB801687F495E81CE8014E002E -:10195000FB8017D6F495E80080F82AA676002AB70F -:10196000F98016AA10F82AA6F980175C10F82AA6A2 -:10197000F980176FEE028A11FC00F4954A084A09B3 -:101980004A0A4A074A1D68F800077D3F69F80007C0 -:10199000400068F8001DFFFC10F82AA7F8440E4B21 -:1019A00076F82AA30001F0730E4E76F82AA40001FF -:1019B0008A1D8A078A0A8A098A08F4EB4A114A169C -:1019C0004A17EEFE880E71080016710600171107FF -:1019D000F066000DF00025A0881176010006810058 -:1019E000F27406CEF00000017601000670000016C9 -:1019F0004811F27406CEF000000770810017EE0265 -:101A00008A178A168A11FC004A11880E7102001288 -:101A10001103F066000DF00024008811F495708128 -:101A200000126EE2FFFE0E8DF495E800E80180E101 -:101A3000000276E1000300FF76E10004000076E199 -:101A4000000B000076E1000C000081E100018A112A -:101A5000FC004A11EEFC880EF495F166000DF300CF -:101A600024008911F495F49576E1000C000076E1EC -:101A7000000B000076E10002000176000000760114 -:101A80000000800276030000F2740CB9F495E800BF -:101A9000EE048A11FC004A118819F4957319000E9E -:101AA000F166000DF2002400771525A077140000E0 -:101AB000771A001FF0720F14F6B849190985F84C0F -:101AC0000F13F100000589114915F3000001891376 -:101AD0004915F3000007891211931D91199289107D -:101AE000F495F4956C800F1311931D911992891040 -:101AF000F495F4956C800F1311931D911992891030 -:101B0000F495F4956C800F1311931D91199289101F -:101B1000F495F4956C800F1311931D91199289100F -:101B2000F495F4956C800F1311931D9119928911FE -:101B3000F495F4956C810F136D946DED000D4814C0 -:101B40008A11FC004A114A164A17EEF88817100D40 -:101B50008004100C8005710E00167317000EF066DD -:101B6000000DF0002400881110F82763F8450F32AB -:101B7000F2740E9FF495481710F82760F8440F3D53 -:101B800060E100020001F8200F6DF07311331004C2 -:101B900080001005F074069F1104F3000001810419 -:101BA0006D8E7710000171E100020012F4AAF83086 -:101BB0000F6277100002F4AAF8300F6D45E1000BB8 -:101BC000881043E1000C83F80012F495F495F4AA10 -:101BD000F8300F6DF0730F96F50081044916F5206B -:101BE000891676E1000C000076E10004000048163A -:101BF000F8451133F7B871E10002001210F8001235 -:101C0000F0100003F8460F8C10F80012F0100003DB -:101C1000F845101677100001F4AAF8300F9C7710E1 -:101C20000002F4AAF8300FA8F0730F9677100004A2 -:101C3000F4AAF83010B777100005F4AAF83010BCF9 -:101C4000F2740E9FF4954817F073113176E1000C91 -:101C5000000076E1000B000076E10004000076E170 -:101C60000002000211E1000CE803F6208912F4954D -:101C700077100003F5AAF8300FB66BF8276F000154 -:101C80008810F495F495F5AEF8200FBD481680063F -:101C90008813F49577100003F6ABF8200FC86BF8A3 -:101CA000276F00011206F845100010E100048000C3 -:101CB0001005800110048002100680034811F274A0 -:101CC000071EF0000005100600E1000480E100049A -:101CD000100600E1000C80E1000C881211061004CF -:101CE000F60080044816F62088168913F4957710BC -:101CF0000003F6ABF8200FF56BF8276F00017710A3 -:101D0000000C71E100040013F6ABF82010006BF832 -:101D1000276F00016CE2FFFD1131F6B86FE100059D -:101D20000C486FE100060C18F0300FFFF0000003C4 -:101D300080E1000B76E1000200034816F8451133FC -:101D400071E1000C001210E1000B4912F62088131B -:101D5000E80CF6208810F495F495F5ABF8201027E0 -:101D6000481380068810F495F495F5AEF8201030ED -:101D7000700600161206F845105F10E1000480009E -:101D80001005800110048002100680034811F274CF -:101D9000071EF0000005100600E1000480E10004C9 -:101DA000100600E1000C80E1000C881211061004FE -:101DB000F60080044816F6208816F4957710000C7B -:101DC00071E100040013F6ABF820105F6BF8276F89 -:101DD00000017710000CF6AAF820106BF2740E9F29 -:101DE000F495481771E1000C00127710000CF4AA6A -:101DF000F830107C7710000C71E1000B0013F6AB8B -:101E0000F83010B4E730F7AAF83010B4F2740EC10D -:101E1000F49548178812F495F4956C82108D76E14C -:101E20000004000076E100020005F07310B476E1D2 -:101E3000000200047710000C71E1000B0012F5AAFB -:101E4000F820109AF073109C7712000C76000000B6 -:101E50007001001270020017760300014811F2743D -:101E60000CB9F000000576E1000400007710000CCA -:101E700071E1000B0012F6AAF820111C4816F84573 -:101E8000113360E100020005F82010DF10E1000BC3 -:101E900008E1000C11E10004F84D10C76BF8276F42 -:101EA00000018810F495F495F5AEF82010CF48168F -:101EB000F4954808F84511166FE1000C0D0081E11A -:101EC000000C1104F50081044916F5208916F07301 -:101ED000110E10E1000B71E1000C00128810F49556 -:101EE000F495F6AAF83011164912F6208810F495E8 -:101EF000F495F5AEF82010F3481680064808F8452A -:101F000011161004700200178000760300001006FE -:101F100080011005F0740CB9100600E1000C80E19E -:101F2000000C11061004F60080044816F6208816EE -:101F300010E1000C08E1000BF845111CF0731131A1 -:101F4000F2740E9FF4954817F073113376E1000C8C -:101F5000000076E1000B000076E1000200011004B1 -:101F600080001005F074069F8812F495771000FF2A -:101F7000F4AAF83011336C860F70EE088A178A16AF -:101F80008A11FC004A11EEFCF495710600128811CA -:101F90007312000EF166000DF30024008914138102 -:101FA000F77AF330000181F8276013E10001F77C34 -:101FB000F330000381F82761E90F19E1000181F88E -:101FC000276271E400030013F6B84913F30000011F -:101FD000F330000F490B09F82762F84D117577109F -:101FE00000FFF4ABF830117557F8276CF3000001CF -:101FF0004FF8276C76F827630001F073117876F8B4 -:102000002763000070E40003276276F8276400006D -:1020100011F8276161F8000B0002F820118DE90129 -:102020006FE100020F1881F8276411F8276161F849 -:10203000000B0001F82011A910F82764F10000043A -:102040008913E9B8F52081F8276560840002F8203B -:1020500011A9700000117001001370022765F2745D -:102060000F18F4954812EE048A11FC004A114A1622 -:102070004A17EEFCE8004EF82766E8004EF827689D -:10208000E8004EF8276CE8004EF8276A77122740E0 -:1020900077112400771A001FF07211DB7092001183 -:1020A00076E10001FFFF7681000076E1000200008A -:1020B00076E1000300FF76E1000C000076E1000B02 -:1020C000000076E1000400006DE9000DF02025A07D -:1020D000F10000078911F100000181028816F495D2 -:1020E00077170020768600FF760000007601000654 -:1020F0001002F074066C7600000076010006F2749F -:10210000066CF49548111002F000000D80026DE994 -:10211000000D6DEE000D6CEFFFFF11E8F0740C9DEB -:10212000EE048A178A168A11FC004A114A164A17C9 -:10213000EEFA8811100A4911F84D129F4808F84527 -:10214000129F80041281F5788912F495F4956CE25F -:10215000FFB9128A61F800080080F830128A13E192 -:102160000001F0E8F778F1A0F2301FFF8817F4952E -:10217000771224007716000077130020F6B848176E -:1021800008E20001F84512426DEA000D6D966CEB15 -:10219000FFFF1234F073129056F8276AF000000126 -:1021A0004EF8276A60820001F83012547000001661 -:1021B000F2741138F4954811F07312907000001603 -:1021C000F2741138F495481172102A9EF495F4AF08 -:1021D000F830126E76000000760100BC7002001626 -:1021E00076030000F2740CB9F4954811F073129064 -:1021F00010F8276EF844129076000000760100BCBB -:102200007002001676030000F2740CB9F4954811C0 -:10221000F0740C5EF0E0F0101388F842129076F83B -:10222000276E0001F073129056F82766F000000147 -:102230004EF827666DE9005E56F82768F000000149 -:102240004EF82768710400126EEAFFFF121870043E -:102250000012EE068A178A168A11FC004A11EEFE59 -:10226000880EF495F066000DF00025A08811F49515 -:10227000F495768100FF7600000076010006F27486 -:10228000066CF0000001760000007601000648119F -:10229000F274066CF0000007EE028A11FC004A118D -:1022A000880EF495F066000DF00024008811F49576 -:1022B000F49576E10001FFFF7681000076E10002EF -:1022C000000076E1000300FF8A11FC004A11F4953A -:1022D00013038811FA4D12EC71020012F310000181 -:1022E000891AF495F07212EB709100128A11FC00B9 -:1022F000F4954A0B4A0C4A0DF7B8EEFE10F80008A8 -:102300001106F1C08300F4851106F7858106F6B841 -:10231000EC0F1E0661008000F8201305F484EE0225 -:102320008A0D8A0C8A0BFC00F4954A0B4A0C4A0D64 -:10233000EEFEF7B8800010F80008F4851106F78566 -:102340008106F6B8EC0F1E06F0F061008000F82060 -:102350001320F484EE028A0D8A0C8A0BFC004A11C9 -:102360007711007B76812EEC7711007BEEFF718177 -:102370000011EE0176E10001000076E100040000AA -:1023800076E10006000076E10062000076E100766A -:10239000000076E10092000076E10094000076E112 -:1023A00000B0000076E100B3000076E100BE00005E -:1023B00076E100BF000076E100C1000076E100C3D5 -:1023C000000076E100C5000076E100C700007681DC -:1023D00000008A11F495F4E44A114A164A17EEFFF8 -:1023E000F49571060016FB8016A28817F495F7B8CD -:1023F00010F80017F0100002FA4613887711000059 -:1024000010F80017F0100002F84513F910F8001743 -:10241000F845143910F80017F0100001F845141FA2 -:10242000F073145210F80017F0100003F84513D39E -:1024300010F80017F0100006F84414527712007BD1 -:102440007182001461E400070040F830145249140E -:102450004817F6008812F495771300557711005746 -:102460006DEA003BE50110E600068081481400F8A3 -:1024700000178812F4957711005510E20040808112 -:102480007711005710E6000780817711005510E2A0 -:102490000045808110E60008771100578081771190 -:1024A000005510E2004A80817711005710E60009BC -:1024B0008081F2731452771103C07712007B10826F -:1024C000F00000078813F495F495961BF830145229 -:1024D00010E300357712005580827712005710E61E -:1024E000000480827712005510E300378082771253 -:1024F000005710E6000580824811F0400010F2738A -:102500001450F04000207712007B1082F00000078A -:102510008812F495F495960DF830145210E20034B8 -:102520007713005580837713005710E600028083ED -:1025300010E200367712005580827712005710E6BD -:10254000000380824811F0400004F2731450F04000 -:1025500000087712007B1082F00000078812F495C3 -:10256000F495960EF830145210E2003377120055AD -:1025700080827712005710E6000180824811F273C2 -:102580001450F04000027712007B1082F000000728 -:102590008812F495F495960FF830145210E2003238 -:1025A000771200557713005780824811E762F04098 -:1025B0000001E5018811F4957712007B48117182C2 -:1025C00000121AE2000780E20007F980169AEE0175 -:1025D0008A1748118A168A11F4E44A118811770E75 -:1025E000000577120055E804F6B828E10002EEFF76 -:1025F000808277120057F0208000EE011A82771255 -:1026000000578082E80132E10002F5827711005420 -:10261000F693188177110054F2A080818A11F49505 -:10262000F4E44A114A16F49571040011FB8016A2D5 -:102630008816F4957712005510E600038082771211 -:10264000005610E100027713005680827712005680 -:1026500010E10003808210E10004771200568082AE -:102660007712005610E100018082E712E501F9803F -:10267000169A8A168A11F4E44A114A164A17EEF994 -:102680007711007B76000016760100177602001A9B -:102690007603001B7604001C7605001D718100176F -:1026A00071E7000600111081F84414DFF980165319 -:1026B000F6B8FB801585F020FFFFF6B8FB80160802 -:1026C000F020FFFF7711007B7181001776E700068D -:1026D00000014817771600007710000477150003F3 -:1026E0007714000277130001F000003976E7000844 -:1026F000001F76E700070000880E771A00054817CC -:10270000F0000009881248188819E800F072152CAA -:10271000731900117682000011917311001970E293 -:102720000003001670E20004001370E200050014BC -:1027300081E2000170E20006001570E2000700105F -:1027400080E20002730E0011F100001E6DEE000524 -:102750006DEB00056DEC00056DED00056DE8000505 -:10276000F000000181916DEA00087311000EEE0780 -:1027700076E70041002476E70046002576E7004B27 -:10278000002676E7005000278A178A168A11F4E49B -:102790004A114A16EEFE881156064E00F98016A21E -:1027A000F7B810F80011F010FFFFFA451560771622 -:1027B000FFFF7712007B49111082F603F000000939 -:1027C0008811F495F4951081F8441571F273157120 -:1027D000F495E7167711007B1081F000000988114D -:1027E000F495771200061081F845155C6EEAFFFF3C -:1027F00015696DE9000876860001E9015600F1804F -:1028000010F8000BF845157EFB801585F4954816E9 -:10281000F980169AEE0248168A168A11F4E44A11D3 -:10282000EEFFFB8016A28811F4957710FFFFF4A944 -:10283000F83015C410E1000377120055808277123A -:1028400000567682000077120056768200007712DA -:1028500000567682000077120056768200007712CA -:1028600000567682000010E10002F000000832F805 -:10287000000877120054E801F482F493188277126A -:102880000054F0400000808210E10001F9801676CB -:1028900010E10001F9801666F07316037711007BD2 -:1028A0007181001171E1000700127682000010E1D1 -:1028B0000009F98015857711007B7181001110E105 -:1028C0000009FB801585F00000087711007B7181FD -:1028D000001110E10009FB801585F0000010771150 -:1028E000007B7181001110E10009FB801585F0006B -:1028F00000187711007B7181001110E10009FB8045 -:102900001585F00000207711007B7181001110E126 -:102910000009FB801585F0000028F980169AEE0169 -:102920008A11F4E44A11EEFFFB8016A28811F49597 -:102930007710FFFFF4A9F830164177110055768122 -:10294000001E7711005676810000771100567681BF -:1029500000007711005676810000771100567681CD -:1029600000007711005676810000771100567681BD -:1029700000007711005676810000771100567681AD -:102980000000771100567681000077110056F2732F -:10299000164E768100007711007B7181001171E184 -:1029A000000700127682000010E10039F980160855 -:1029B000F980169AEE018A11F4E44A117711007B2E -:1029C0001081F00000048811F495F4951081FA4408 -:1029D0001663F495EEFF76810001EE018A11F4E4AE -:1029E000F01000104A1132F80008EEFF77110001D4 -:1029F000E801EE01F4821A8180818A11F495F4E4F1 -:102A0000F01000104A1132F80008EEFFE8017711CB -:102A10000000F482EE01F493188180818A11F4950C -:102A2000F4E44A11F01000107711000032F80008A9 -:102A3000EEFF1181E801EE0177110000F482F2A0AF -:102A400080818A11F495F4E4F273169EF6BBF49536 -:102A5000F495F495F495F4E4F27316A6F7BBF495A7 -:102A6000F495F495F495F4E44A114A16F49571043A -:102A70000016FB8016A28811F49571E10005001282 -:102A80007682000E10E6000E71E1000600128082D0 -:102A900071E1000500127682000D71E1000600125E -:102AA00010E6000D808271E1000500127682000CB4 -:102AB00010E6000C71E100060012808271E1000551 -:102AC00000127682000B10E6000B71E10006001286 -:102AD000808271E1000500127682000A71E1000631 -:102AE000001210E6000A808271E100050012768271 -:102AF000000910E6000971E100060012808271E110 -:102B0000000500127682000871E10006001210E64E -:102B10000008808271E1000500127682000710E64D -:102B2000000771E100060012808271E100050012C9 -:102B30007682000671E10006001210E6000680822F -:102B400071E1000500127682000571E100060012B5 -:102B500010E60005808271E1000500127682000413 -:102B600071E10006001210E60004808271E10005A8 -:102B700000127682000371E10006001210E60003E5 -:102B8000808271E1000500127682000210E60002E8 -:102B900071E100060012808271E100050012768268 -:102BA000000110E6000171E100060012808271E16F -:102BB000000500127682000071E100060013E76252 -:102BC000E501F980169A8A168A11F4E44A118811EF -:102BD000F495F49571E100050012EEFF7682000095 -:102BE000EE0171E100060011698100018A11F4957E -:102BF000F4E44A118811F495F49571E1000500128E -:102C0000EEFF76820001EE0171E10006001169819C -:102C100000018A11F495F4E44A117711007B1081C8 -:102C2000F00000948811F495F4951081FA44179CF3 -:102C3000F495EEFFF98016537711007B1081F000B8 -:102C400000948811F495F49576810001EE0176E107 -:102C50000001000076E10002002176E1000300207F -:102C600076E10004002376E10005002276E100060B -:102C7000003876E10007003976E10008001576E1BA -:102C80000009001476E1000A000076E1000B004123 -:102C900076E1000C004076E1000D004376E1000E85 -:102CA000004276E1000F004876E10010004976E12D -:102CB0000011001B76E10012001A8A11F495F4E469 -:102CC0004A11EEFD881156064E00F98016A27712C1 -:102CD000007B770E0009108228F80011F0000095A3 -:102CE0008811F495F4951081F84517F0F27317FDEB -:102CF0007711FFFF76810001E9015600F18010F89D -:102D0000000BF84517FDFB801810F4954811F98069 -:102D1000169AEE0348118A11F495F4E44A118811C9 -:102D2000F495EEFF71E100010011EE0110818A11AE -:102D3000F495F4E44A11EEFFFB8016A28811F49595 -:102D40007710FFFFF4A9F83018C371E100050012F5 -:102D50007682000071E1000600127682000071E1C7 -:102D6000000500127682000171E1000600127682F1 -:102D7000000071E1000500127682000271E1000698 -:102D800000127682000071E10005001276820003D5 -:102D900071E1000600127682000071E10005001268 -:102DA0007682000471E1000600127682000071E173 -:102DB000000500127682000571E10006001276829D -:102DC000000071E1000500127682000671E1000644 -:102DD00000127682000171E1000500127682000780 -:102DE00071E1000600127682200071E100050012F8 -:102DF0007682000871E1000600127682000071E11F -:102E0000000500127682000971E100060012768248 -:102E1000000071E1000500127682000A71E10006EF -:102E200000127682000071E1000500127682000B2C -:102E300071E1000600127682000071E100050012C7 -:102E40007682000C71E1000600127682000071E1CA -:102E5000000500127682000D71E1000600127682F4 -:102E6000000071E1000500127682000E71E100069B -:102E700000127682000010E10007F980167610E15A -:102E80000008F980167610E10007F980166610E157 -:102E90000008F9801666F07318D17711007B108155 -:102EA000FB801810F00000957711007B1081FB80EB -:102EB0001810F000009EF980169AEE018A11F4E4D1 -:102EC0004A118811EEFFF495100471E1000300111E -:102ED000EE0180818A11F495F4E44A114A16F495C2 -:102EE00071040016FB8016A28811F49571E10002AE -:102EF00000127682001010E6000171E1000300125A -:102F0000808271E10004001210E600028082E76214 -:102F100071E100020013E501F980169A8A168A1100 -:102F2000F4E44A118811EEFFEE0110E100018A116C -:102F3000F495F4E44A117711007B1081F00000B39E -:102F40008811F495F4951081FA44192AF495EEFF4E -:102F5000F98016537711007B1081F00000B38811BF -:102F6000F495F49576810001EE0176E10001000010 -:102F700076E10002001376E10003002676E100040A -:102F8000002576E10005002476E10006000076E1E8 -:102F90000007001776E10008003276E100090031F1 -:102FA00076E1000A00308A11F495F4E44A114A16D9 -:102FB0004A17EEFFF49571060017FB8016A28811E0 -:102FC000F495F7B810F80011F010FFFFFA451973E7 -:102FD0007716FFFF7712007B770E0005108228F826 -:102FE0000011F00000B48811F495F4951081F844B4 -:102FF0001984F2731984F495E7167711007B108118 -:10300000F00000B48811F495771200021081F845A1 -:10301000196F6EEAFFFF197C6DE9000561F8001772 -:103020000001FA20198F76860001FB801997F4952C -:103030004816F980169AEE018A1748168A168A11E0 -:10304000F4E44A11EEFFFB8016A28811F495771084 -:10305000FFFFF4A9F83019CC71E100020012698277 -:10306000001071E1000200126882F7FF71E10002B6 -:1030700000126882FBFF71E1000200126882FFF01B -:1030800071E1000300127682FFFF71E1000400127B -:103090007682FFFF71E1000200126982002071E177 -:1030A00000020011F27319DA6881FFEF7711007BDB -:1030B0001081FB801997F00000B47711007B10811C -:1030C000FB801997F00000B9F980169AEE018A1179 -:1030D000F4E400A4000019DF00012AE6000000016A -:1030E0002AE7000000032A120C01C34F0000000170 -:1030F0002A15000000022A160000000000192A5DAF -:103100000043006F0070007900720069006700687A -:10311000007400200054006500630068006E006FBA -:10312000005400720065006E0064002000410047FA -:10313000000000042A760030002E00300000000C51 -:103140002A7A004600650062002000320037002025 -:103150000032003000300031000000092A860031C2 -:103160000034003A00330035003A003300330000E9 -:10317000000F2A8F00000000000000010000000185 -:10318000000000000000000000000000000000003F -:10319000000000012A9E000000012A9F000000019B -:1031A0002AA0000000012AA1000000012AA20000BC -:1031B0000001297E000000022980000000000001BB -:1031C0002982FFFF00012AA7000000052AA87141FB -:1031D0002000200000230400000A2AAD00000000A7 -:1031E00000000000000000000000000000000000DF -:1031F000000F2AB7000000000000004000A082403D -:103200000008307F00800180000000000000000006 -:1032100000000001276E00000001276F0000000081 -:10322000000900001A8304E804CF04C504BA04B0FE -:1032300004AC049C048C0481007800000100F2734B -:1032400007EFF495F495F27307EFF495F495F273A4 -:1032500007EFF495F495F27307EFF495F495F27394 -:1032600007EFF495F495F27307EFF495F495F27384 -:1032700007EFF495F495F27307EFF495F495F27374 -:1032800007EFF495F495F27307EFF495F495F27364 -:1032900007EFF495F495F27307EFF495F495F27354 -:1032A00007EFF495F495F27307EFF495F495F27344 -:1032B00007EFF495F495F27307EFF495F495F27334 -:1032C00007AAF495F495F27307EFF495F495F27369 -:1032D00007EFF495F495F2730223F495F495F273E5 -:1032E00007EFF495F495F27307EFF495F495F27304 -:1032F00007EFF495F495F27307EFF495F495F273F4 -:1033000007EFF495F495F27307EFF495F495F273E3 -:1033100005E5F495F495F27302B5F495F495F2731E -:103320000E33F495F495F27307EFF495F4950000DD -:00000001FF diff --git a/firmware/vicam/firmware.H16 b/firmware/vicam/firmware.H16 deleted file mode 100644 index cac0cba68cc7..000000000000 --- a/firmware/vicam/firmware.H16 +++ /dev/null @@ -1,7 +0,0 @@ -:0026000000B6C31F000264E767FDFF0EC0E709DE008E00C0094003C01744034BAFC00700004BAF97CF00001D -:000A000000B6C30300036418000000FB -:0008000000B6C301000664000014 -:0696000000B6C38F060264E707000008C0E70700003EC0E7075401AA00E707C805B600E7074201D200E7077C001600E70756001800E707060092C0E70700001EC0E707FFFF22C0E707040024C0E707EC2728C0E70716018E00E78701000EC097CFD70900C0E777010092C009C1E709FE052401E70904062601E707070092C0E70500C0C0DF97CF170057001702D70900C0E777010092C00AC1E757FFFFFA050DC0E7570000FA050FC09FAFC600E70500C0C805C105C005C0DF97CF27DAFA05EF0701000B0673CF9FAF78019FAF1A036ECFE709FC052401E70902062601E707070092C0E709FC05FE05E70902060406E7090006FC05E709FE05000627DAFA05E7570100FA0502CA04C097CF9FAF660597CFE70740000206C809FC059FAFDA0297CFCF170200EF57810009069FA0B601EF57800009069FA04002EF5701000B069FA04603E70701000AC046AF47AF9FAF4002E7072E000AC0EF878000090697CF000E0100C05751009FC09E02C057500020C0C057550012C0C05756009FC072029FCFD602C10B080601D06F900806C0070800C10B08069FAF280597CF2F0E02000806C0070800C10B08069FAF28059FCFD6022F0E02000906EF87800009069FCFD602EF677FFF0906E767FFFD22C0E767EFFF24C0E787100028C09FAFB805E787E02124C09FAFA805E787080024C0E767DFFF24C0C8070A00C0070000C10701009FAF28059FAFB805C0079E009FAF4405E767FFFE24C0C00920C0E787000124C0C07700020FC1E767F7FF24C0E767F7FF24C0E787080024C008DA5EC1EF078000090697CFEF0701000A0697CFEF0700000B06EF0700000A06EF677FFF0906EF0700000D06E767EFFF28C0E76717D824C0E70700001EC0E707FFFF22C097CFC8070E069FAFDA02E7070000F205E7071000F605E7070E06F405E707D602F805C807F205C107008050AF97CF2F0C020007062F0C04000606E7070000F205E7071000F605E707E205F405E707CE02F805C807F205C107008051AF97CF9FAF66049FAF1A0359AF97CFC0070E00C10B0C0641D19FAF2805C0073C009FAF44056800C0073B009FAF44056F000C066800E0070401E80B0A06E8070000E0070002E007EC01E007FCFF97CFE707FFFFFA05EF0700000B06E7070E062401E7070E06FE05E70740002601E70740000406E707070092C097CFEF0702000B069FAF7801EF77800007069FC01404EF770100070637C0EF7701000D060FC1EF0701000D06C0070200C10730009FAF2805C0070100C10702009FAF2805C807FF4F9FAFA805C00738009FAF4405C177030002C108DA75C1C17701000AC1C0070100C10702009FAF2805EF07010006062CCFC0070100C10704009FAF2805EF070000060622CFEF0700000D06EF57010006061BC0C0070100C10701009FAF2805C0070200C10730009FAF2805C807FF4F9FAFA805C00738009FAF4405C1670300C157030002C008DA73C1C0070200C1071200EF570000060602C0C10723009FAF2805C0071400C10BEA059FAF2805C0073E009FAF0A05E709E405FA0527D8FA05E7070E06FC05E7074E060006E707400002069FAF66059FAFC60097CFC10BE20541D001D2C11723009FAFDC04C0070400C10BE3059FAF2805C0070600C109E6059FAF2805C0070700C109E605C1D19FAF2805C0070B00C109E8059FAF2805C0070C00C109E805C1D19FAF2805C0070D00C10709009FAF2805C0070300C10732009FAF2805C0070F00C10700009FAF280597CFE767FFD924C0C8070A004000C0670002278024C0E787000424C0E767FFF924C001D208DA72C1E787002024C097CF27001EC0E787FF0022C0E7677FFF24C0E787800024C0E787800024C097CF9FAF0A0567001EC0E767BFFF24C0E787400024C0E787400024C097CF9FAF0A05E76700FF22C0E767FFFE24C0E767FFFE24C0C10920C0E787000124C097CFC0074000C809FC05E76700FF22C0E767FFFE24C0E767BFFF24C0E767BFFF24C000DAE80920C0E787400024C0E787400024C000DAE80920C06DC1E787000124C097CFE707320012C0E777008012C07CC097CFE707204E12C0E777008012C07CC097CF0902190001010080960904000001000000000705810240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A1 -:0136000000B6C32F0103640E0014001A00200026004A0064006A0092009A00A000B200B800BE00C200C800CE00DC00DA00E200E000E800E600EE00EC00F200F80002010A010E0112011E01220128012C0132013601440150015E01720176017A01800188018C0194019C01A001A401AA01B001B401BA01D001DA01F601FA01020234023C0244024A0250025602740278027E0284028A02880290028E029402A202A802AE02B402BA02B802C002BE02C402D002D402E002E602EE02F802FC0206031E032403280330032E033C034A034E03540358035E0366036E037A0386038E039603B203B803C603CC03D403DA03E803F403FC03040420042A04320436043E044404420448044E044C04540452045A045E046204680474047C04800488048C0494049A04A204A604AE04B404C004CC04D8042A0546056C0500005E -:0008000000B6C301000664000014 -:0000000001FF diff --git a/firmware/whiteheat.HEX b/firmware/whiteheat.HEX deleted file mode 100644 index 8dae60295d55..000000000000 --- a/firmware/whiteheat.HEX +++ /dev/null @@ -1,1097 +0,0 @@ -:030000000297E381 -:03000300021312D3 -:03000B00020BB530 -:0300330002081CA4 -:03004300020A00AE -:03005B0002833BE2 -:10037000907FE9E070030204731470030204E72421 -:10038000FE700302054F24FB700302046414700323 -:1003900002045214700302043A1470030204492444 -:1003A00005600302059E907FEBE024FE601614605A -:1003B000362402707B7412907FD4F07400907FD545 -:1003C000F00205A5907FEAE0FF120A99EA49600D64 -:1003D000EA907FD4F0E9907FD5F00205A5907FB434 -:1003E000E04401F00205A5907FEAE0FF120A58EA16 -:1003F00049603312A23BF54E907FEEE0FFE54ED30D -:100400009F4003E0F54EE54ED394404003754E40C7 -:10041000AE02AF017C7F7D00AB4E129137907FB56D -:10042000E54EF00205A5907FB4E04401F00205A579 -:10043000907FB4E04401F00205A5907F00E521F033 -:10044000907FB57401F00205A5907FEAE0F52102E6 -:1004500005A5907FEAE0F535D202438810D2EBD2B1 -:10046000A80205A5907F00E535F0907FB57401F0F6 -:100470000205A5907FE8E0247F6024146031240207 -:10048000705BA200E433FF25E0FFA205E4334F9048 -:100490007F00F0E4A3F0907FB57402F00205A5E4BC -:1004A000907F00F0A3F0907FB57402F00205A59054 -:1004B0007FECE0F45480FFC4540FFFE054072F2575 -:1004C000E024B4F582E4347FF583E05401907F00AA -:1004D000F0E4A3F0907FB57402F00205A5907FB41C -:1004E000E04401F00205A5907FE8E024FE601D24B1 -:1004F0000260030205A5907FEAE0B40105C2000294 -:1005000005A5907FB4E04401F00205A5907FEAE0E4 -:100510007034907FECE0FF5407FEF54EEF30E703B8 -:10052000434E10907FD7E54EF0E54E4420F0EFF4B7 -:100530005480FDC4540F2E25E024B4F582E4347FAA -:10054000F583E4F0805F907FB4E04401F080569042 -:100550007FE8E024FE60182402704A907FEAE0B44D -:100560000104D200803F907FB4E04401F0803690D7 -:100570007FEAE07020907FECE0F45480FFC4540FD9 -:10058000FFE054072F25E024B4F582E4347FF5839F -:100590007401F08010907FB4E04401F08007907FF8 -:0C05A000B4E04401F0907FB4E04402F0AD -:0105AC00222C -:1005AD00754AFF7549FF75480F754700D203C2069E -:1005BD00C202C200C205C2019003007419F0E4909A -:1005CD0001BCF0C2049001C0F0A3F0C2AFC2A812EA -:1005DD000C22E49002AFF09001BDF0900100F0A369 -:1005ED00F0A3F0A3F0A3F0A37410F0A37401F0A393 -:1005FD007408F07E017F001219C1754C12754D0AF9 -:10060D0090010BE0FF054DE54DAC4C7002054C140F -:10061D00F5828C83EFF090010CE04480FF054DE5F1 -:10062D004DAC4C7002054C14F5828C83EFF09001AB -:10063D000DE0FF054DE54DAC4C7002054C14F582F7 -:10064D008C83EFF090010EE0FF054DE54DAC4C7045 -:10065D0002054C14F5828C83EFF090120AE493FF9F -:10066D0074019390011CCFF0A3EFF090011CE0FFFB -:10067D00A3E0FEEF6EFF90011CF0A3E06FFFF09082 -:10068D00011CE06FF0E0FEA3E0FFE4FCFD755210ED -:10069D007553027554127555AC129426754C12751E -:1006AD004DB290010DE0FF054DE54DAC4C700205CE -:1006BD004C14F5828C83EFF090010EE0FF054DE5B3 -:1006CD004DAC4C7002054C14F5828C83EFF0907F8D -:1006DD0092E0FFC4540F2441FF054DE54DAC4C7025 -:1006ED0002054C14F5828C83EFF0054DE54DAE4CB3 -:1006FD007002054C14F5828E83E4F07582107583BB -:10070D0001E0FCA3E0FDA3E0FEA3E0FF90011812C1 -:10071D00A3EE7E017F181286BE900118E0FCA3E0C7 -:10072D00FDA3E0FEA3E0FF75520A75530675541242 -:10073D007555B8129426D2E843D820907FAB74FF3C -:10074D00F05391EF907FAFE04401F0907FAEE04425 -:10075D001FF0D2AF20012E20012BA2039207120908 -:10076D00C575465075456D7544337543002001E4DC -:10077D007FFF7EFF7DFF7CFF784312A3D7EC4D4EAC -:10078D004F60D180E8300105120370C20130060AB6 -:10079D001209FB5003120AE8C20612965E9001BDC3 -:1007AD00E0600C129201E49001BDF0907FD3F090C7 -:1007BD0002AFE0B40F031299B912A095E4FF7401D2 -:1007CD00A807088002C333D8FCFE9001BCE05E6030 -:1007DD001474282FF8E6D3940A40047E0180027E1B -:1007ED00008E4B8003754B0174682FF582E4342025 -:1007FD00F583E54BF00FBF04C5E52CD3940A4004F7 -:0E080D007F0180027F0090206CEFF0020792C6 -:01081B0022BA -:04081C0053D8EF328C -:10082000E533C39401400E907F93E04430F0907F15 -:1008300095E044C0F07FF47E011209AE907F96E00F -:1008400054FEF07F0A7E001209AE907F96E04408C5 -:10085000F07F057E001209AE907F96E054FBF07F9A -:10086000057E001209AEE533C39401500E7F027D70 -:10087000FF1282EA7F057E001209AE907F96E04467 -:1008800002F0E0547FF07F057E001209AE907F9663 -:10089000E04440F07F057E001209AE907F96E05460 -:1008A000BFF07F327E001209AE907F96E04440F0A8 -:0808B0007F327E001209AE2226 -:1008B800907F96E054FDF0E04480F07F0A7E0012BD -:1008C80009AEE533C39401500E7F02E4FD1282EABB -:1008D8007F057E001209AE907F96E054BFF07F0539 -:1008E8007E001209AE907F96E04404F07F057E00FA -:1008F8001209AE907F96E054F7F07F057E0012094A -:10090800AE907F96E04401F07F057E001209AEE5C7 -:1009180033C39401400E907F93E054CFF0907F95BD -:08092800E0543FF0120B002225 -:10093000900AF4E4937076907F937430F0907F94F3 -:10094000743CF0907F9574C6F07F0A7E001209AE69 -:10095000E4907F9CF0907F967408F0907F9C74CF19 -:10096000F07F0A7E001209AE902070E0FFC4540FA1 -:10097000F533C394015007907F96E04480F0E490F3 -:100980007F97F0907F9D7402F0E533C39401400B94 -:10099000E4907F98F0907F9E74C0F0907FE2741294 -:0E09A000F01208207582F475830A74FFF022AD -:1009AE008E5D8F5EE55E155EAE5D7002155D4E600E -:0709BE00051209EA80EE2298 -:1009C500907FD6E054FBF0E04408F0300704E044A3 -:1009D50002F07FD07E071209AE907FD6E054F7F083 -:0509E500E04404F022D3 -:1009EA007400F58690FDA57C05A3E582458370F920 -:0109FA0022DA -:0509FB001208B8D32230 -:100A0000020C4E00020C8100020C6600020CC000B9 -:100A1000020CAA00020AED00020AEE00020AEF0030 -:100A2000020CDB00020DCB00020D1700020E2B00A2 -:100A3000020D5300020E8B00020D8F00020EEB0020 -:100A4000020AF000020AF200020AF100020AF300B0 -:080A5000020F4B00020F6100D0 -:020A58008F4FBE -:100A5A00E4F5507551FF75521275536AAB51AA529B -:100A6A00A95390000112A254B4031DAF500550EFD0 -:100A7A00B54F012212A23B7E0029FFEE3AA9077563 -:0E0A8A0051FFF552895380D47B007A00790029 -:010A9800223B -:100A9900E4FE7551FF755212755312AB51AA52A952 -:100AA9005390000112A2546402702DAD060EEDB5EB -:100AB90007012290000212A2AD85F04FF550624F56 -:100AC900E54F6250E550624F29FDE54F3AA905759A -:0E0AD90051FFF552895380C37B007A007900EB -:010AE70022EC -:050AE800120820D322DA -:010AED0032D6 -:010AEE0032D5 -:010AEF0032D4 -:010AF00032D3 -:010AF10032D2 -:010AF20032D1 -:010AF30032D0 -:030AF400000407F4 -:090B0000907FD6E04480F080747F -:100B7D00438701000000000000000000000000227B -:100B8D00538EF7E58954F14401F589758CB1D2A9DD -:100B9D0075984075CBFF75CAF375C834E4FF7F05B2 -:070BAD007828E4F608DFFCE4 -:010BB400221E -:100BB500C0E0C083C082C0D075D000C000C006C0F0 -:010BC5000728 -:100BC600300416758CF8758A307F2FAE071FEE60DD -:100BD6003C9020007455F080F2758CB17F28EFD3DD -:100BE600942C5009A807E66001160F80F1900300C7 -:100BF600E0600214F09001C0E07002A3E0600E9085 -:0D0C060001C1E024FFF09001C0E034FFF0D8 -:0F0C1300D007D006D000D0D0D082D083D0E0322E -:100C2200D200758E10120930E533C394014008904A -:100C32007F927402F08005E4907F92F0128000129D -:0C0C42000F7D1294F7121B0C120B8D2278 -:100C4E00C0E0C083C082D2015391EF907FAB74019C -:080C5E00F0D082D083D0E03217 -:100C6600C0E0C083C082907FC4E4F05391EF907FD0 -:0B0C7600AB7404F0D082D083D0E032D9 -:100C8100C0E0C083C0825391EF907FAB7402F090BB -:100C91007FD8E0700D907FD9E07007E52C70037567 -:090CA1002C14D082D083D0E03283 -:100CAA00C0E0C083C0825391EF907FAB7410F0D044 -:060CBA0082D083D0E0327D -:100CC000C0E0C083C082300202D2065391EF907F11 -:0B0CD000AB7408F0D082D083D0E0327B -:100CDB00C0E0C083C082C0D075D0105391EF907F1D -:100CEB00A97402F0E53430E013E53230E0079020D0 -:100CFB0004E04401F0902001E04401F0E52C700386 -:0C0D0B00752C14D0D0D082D083D0E03200 -:100D1700C0E0C083C082C0D075D0105391EF907FE0 -:100D2700A97404F0E53430E113E53230E10790208F -:100D37000CE04401F0902009E04401F0E52C700339 -:0C0D4700752C14D0D0D082D083D0E032C4 -:100D5300C0E0C083C082C0D075D0105391EF907FA4 -:100D6300A97408F0E53430E213E53230E20790204D -:100D730014E04401F0902011E04401F0E52C7003ED -:0C0D8300752C14D0D0D082D083D0E03288 -:100D8F00C0E0C083C082C0D075D0105391EF907F68 -:100D9F00A97410F0E53430E313E53230E307902007 -:100DAF001CE04401F0902019E04401F0E52C7003A1 -:0C0DBF00752C14D0D0D082D083D0E0324C -:100DCB00C0E0C083C082C085C084C086758600C069 -:100DDB00D075D0105391EF907FAA7402F0E53420B8 -:100DEB00E006907FC7F08022E53130E00A907FC7A4 -:100DFB00E09002F8F08013E52230E007902004E049 -:100E0B004402F0902001E04402F0E52C7003752CB5 -:100E1B0014D0D0D086D084D085D082D083D0E0328D -:100E2B00C0E0C083C082C085C084C086758600C008 -:100E3B00D075D0105391EF907FAA7404F0E5342055 -:100E4B00E106907FC9F08022E53130E10A907FC93D -:100E5B00E09002F9F08013E52230E10790200CE0DE -:100E6B004402F0902009E04402F0E52C7003752C4D -:100E7B0014D0D0D086D084D085D082D083D0E0322D -:100E8B00C0E0C083C082C085C084C086758600C0A8 -:100E9B00D075D0105391EF907FAA7408F0E53420F1 -:100EAB00E206907FCBF08022E53130E20A907FCBD7 -:100EBB00E09002FAF08013E52230E207902014E074 -:100ECB004402F0902011E04402F0E52C7003752CE5 -:100EDB0014D0D0D086D084D085D082D083D0E032CD -:100EEB00C0E0C083C082C085C084C086758600C048 -:100EFB00D075D0105391EF907FAA7410F0E5342089 -:100F0B00E306907FCDF08022E53130E30A907FCD70 -:100F1B00E09002FBF08013E52230E30790201CE009 -:100F2B004402F0902019E04402F0E52C7003752C7C -:100F3B0014D0D0D086D084D085D082D083D0E0326C -:100F4B00C0E0C083C0825391EF907FA97480F0D032 -:060F5B0082D083D0E032D9 -:100F6100C0E0C083C0825391EF907FAA7480F0905B -:0C0F710001BD74FFF0D082D083D0E032CC -:100F7D0090012012A3FA000025809001247408F03E -:100F8D00A37401F0A3746EF0A3F0A37413F0A37413 -:100F9D0011F0E4A3F0A3F090011EF090011EE0FF0C -:100FAD0004A3F0EF75F00DA42401F9740335F0A836 -:100FBD0001FC7D017B017A01791F7E007F0D12A25C -:100FCD00127E017F1F1287A690011EE004F0E0C380 -:100FDD00940440C7E4F52790011EF090011EE0FF38 -:100FED00C39404501A74F82FF582E43402F583E4A7 -:100FFD00F074232FF8E4F690011EE004F080DCE499 -:10100D00F534E5C0602F90011E7401F090011EE0D3 -:10101D00FFD39404501FEF14FF7401A8070880023A -:10102D00C333D8FC42347E017F1E12844190011ED1 -:10103D00E004F080D7E4F53EF522F531F53290016C -:10104D001EF090011EE0FF75F008A42406F582E461 -:10105D003420F583E054F0FE74C52FF582E434019D -:10106D00F583EEF0743A2FF8A60674362FF8E4F6F1 -:10107D00742D2FF8E4F674FC2FF582E43402F58319 -:10108D00E4F090011EE004F0E0B404B6902060E0BE -:04109D00540FF54EA9 -:1010A1007003021126E490011EF090011EE0FFC3BF -:1010B100940450E47401A807088002C333D8FC5596 -:1010C1004E605A90011EE0FE75F008A42402F582DC -:1010D100E43420F583E0FFEE75F008A42405F582E1 -:1010E100E43420F583E0EE75F008A42406F582E4EB -:1010F1003420F583E0FFAF06EE75F00DA42402F570 -:1011010082E43403F583E0FCA3E0FDA3E0FEA3E069 -:10111100F5668E658D648C637D061283DF90011EFA -:06112100E004F0808522CD -:02112700AC0713 -:10112900907FA5E04480F0EC25E04441907FA6F053 -:101139007B3CAF031BEF7016907FA5E04440F09015 -:101149007FA6E0FD7D32AF051DEF60D480F8907F6A -:10115900A5E0FD30E0DC20E109E04440F07EFF7FBE -:10116900F922ED30E20C907FA5E04440F07EFF7F4C -:10117900FA22907FA5E04420F0907FA6E0FD7B1E37 -:10118900AF031BEF7016907FA5E04440F0907FA657 -:10119900E0FD7D32AF051DEF608680F8907FA5E008 -:1011A900FD20E0DC7B3CAF031BEF7019907FA5E0CD -:1011B9004440F0907FA6E0FD7D32AF051DEF70033E -:1011C90002112980F5907FA5E0FD30E0D930E209D0 -:1011D900E04440F07EFF7FFA22C2AF907FA5E04451 -:0C11E90040F0907FA6E0FDD2AFFF7E003A -:0111F50022D7 -:1012000012010001FFFFFF401007018042000102B0 -:10121000030109025800010104803C090400000A8E -:10122000FFFFFF050705810240000007050102409E -:10123000000007058202400000070502024000008E -:101240000705830240000007050302400000070570 -:1012500084024000000705040240000007058702E1 -:1012600040000007050702400000040309042403AE -:1012700043006F006E006E00650063007400200084 -:101280005400650063006800200049006E006300A0 -:101290002E001803570068006900740065004800BC -:1012A0004500410054002D0034001A035800580036 -:1012B0002D00580058002D005800580058005800C4 -:1012C000580058002A0343006F006E006600690052 -:1012D0006700750072006100740069006F006E00A5 -:1012E000200053007400720069006E006700220342 -:1012F00049006E00740065007200660061006300C2 -:101300006500200053007400720069006E006700E1 -:021310000000DB -:10131200C0E0C0F0C083C082C085C084C086C0D097 -:1013220075860075D018902060E0540FF5F07011AA -:10133200D0D0D086D084D085D082D083D0F0D0E0F7 -:101342003275860010F00B10F11210F21910F32012 -:1013520080D4E528700375281402137CE5297003F4 -:1013620075291402150DE52A7003752A1402169EBA -:10137200E52B7003752B1402182F902002E0543FC6 -:1013820020E23A20E10B20E40B20E514600902136D -:1013920043021465021343438204E0F53A02134305 -:1013A200438204E0432D010213435382F843820532 -:1013B200E042365382FBE054FBF002134330E10279 -:1013C20080E8F585E53230E00A5382F8438204E092 -:1013D20054FEF0E58520E3569020507400F09020F2 -:1013E200587401F0907FE2E04440F0907FE305867C -:1013F200907E800586E585F0A3E584F00586907FE2 -:10140200E5E53FFD030303FEF0F0F0F0F0F0F0F04D -:10141200DEF6907FE2E054BFF09020587400F09026 -:101422007FB7EDF0902001E054FEF00213437F40BD -:10143200907E800586902000E584FE2405FD8D8443 -:10144200E08E8430E009E00586F0A30586DFEF0533 -:1014520086C374409F907FB7F00586A3E054FEF0E8 -:10146200021343532DFAE5236008752300D2E7FEE9 -:10147200800A907FC7E0FE70030214FF9020507430 -:1014820000F09020587401F0907FE2E04440F09028 -:101492007FE30586907E400586E585F0A3E584F02E -:1014A2000586907FE5EE30E7080586E02438F005F2 -:1014B20086EE547FFE5407FBEE547860300303033C -:1014C20030E30474077B08FDFCE0E0E0E0E0E0E0EC -:1014D200E0DDF6EBFE6019EC640770118B23907F60 -:1014E200E2E054BFF09020587400F0801BE0DEFD73 -:1014F200907FE2E054BFF09020587400F0902001F9 -:10150200E054FDF0907FC7F002134390200AE054AC -:101512003F20E23A20E10B20E40B20E514600902AF -:1015220013430215F6021343438204E0F53B021310 -:1015320043438204E0432E010213435382F8438261 -:1015420005E042375382FBE054FBF002134330E1E3 -:101552000280E8F585E53230E10A5382F8438204DD -:10156200E054FEF0E58520E3569020507401F0909F -:1015720020587401F0907FE2E04440F0907FE30550 -:1015820086907E000586E585F0A3E584F0058690C9 -:101592007FE5E540FD030303FEF0F0F0F0F0F0F02C -:1015A200F0DEF6907FE2E054BFF09020587400F035 -:1015B200907FB9EDF0902009E054FEF00213437FD2 -:1015C20040907E000586902008E584FE2405FD8D6E -:1015D20084E08E8430E009E00586F0A30586DFEF23 -:1015E2000586C374409F907FB9F00586A3E054FE40 -:1015F200F0021343532EFAE5246008752400D2E763 -:10160200FE800A907FC9E0FE70030216909020507F -:101612007401F09020587401F0907FE2E04440F0B1 -:10162200907FE30586907DC00586E585F0A3E5847D -:10163200F00586907FE5EE30E7080586E02438F075 -:101642000586EE547FFE5407FBEE547860300303A8 -:101652000330E30474077B08FDFCE0E0E0E0E0E037 -:10166200E0E0DDF6EBFE6019EC640770118B24906C -:101672007FE2E054BFF09020587400F0801BE0DE5F -:0E168200FD907FE2E054BFF09020587400F01D -:10169000902009E054FDF0907FC9F00213439020A0 -:1016A00012E0543F20E23A20E10B20E40B20E51445 -:1016B0006009021343021787021343438204E0F5D3 -:1016C0003C021343438204E0432F0102134353823D -:1016D000F8438205E042385382FBE054FBF00213EA -:1016E0004330E10280E8F585E53230E20A5382F8C2 -:1016F000438204E054FEF0E58520E35690205074C8 -:1017000002F09020587401F0907FE2E04440F090A5 -:101710007FE30586907D800586E585F0A3E584F06E -:101720000586907FE5E541FD030303FEF0F0F0F050 -:10173000F0F0F0F0DEF6907FE2E054BFF090205839 -:101740007400F0907FBBEDF0902011E054FEF002A9 -:1017500013437F40907D800586902010E584FE2411 -:1017600005FD8D84E08E8430E009E00586F0A30558 -:1017700086DFEF0586C374409F907FBBF00586A38C -:10178000E054FEF0021343532FFAE5256008752557 -:1017900000D2E7FE800A907FCBE0FE7003021821A2 -:1017A0009020507402F09020587401F0907FE2E095 -:1017B0004440F0907FE30586907D400586E585F006 -:1017C000A3E584F00586907FE5EE30E7080586E026 -:1017D0002438F00586EE547FFE5407FBEE54786003 -:1017E0003003030330E30474077B08FDFCE0E0E012 -:1017F000E0E0E0E0E0DDF6EBFE6019EC640770117C -:101800008B25907FE2E054BFF09020587400F08068 -:101810001BE0DEFD907FE2E054BFF09020587400A2 -:10182000F0902011E054FDF0907FCBF00213439034 -:10183000201AE0543F20E23A20E10B20E40B20E59F -:10184000146009021343021918021343438204E08F -:10185000F53D021343438204E04330010213435336 -:1018600082F8438205E042395382FBE054FBF002E8 -:10187000134330E10280E8F585E53230E30A538214 -:10188000F8438204E054FEF0E58520E356902050B2 -:101890007403F09020587401F0907FE2E04440F02F -:1018A000907FE30586907D000586E585F0A3E584BD -:1018B000F00586907FE5E542FD030303FEF0F0F0BE -:1018C000F0F0F0F0F0DEF6907FE2E054BFF0902010 -:1018D000587400F0907FBDEDF0902019E054FEF0B8 -:1018E0000213437F40907D000586902018E584FE1A -:1018F0002405FD8D84E08E8430E009E00586F0A3A8 -:101900000586DFEF0586C374409F907FBDF0058696 -:10191000A3E054FEF00213435330FAE52660087545 -:101920002600D2E7FE800A907FCDE0FE7003021908 -:10193000B29020507403F09020587401F0907FE230 -:10194000E04440F0907FE30586907CC00586E58505 -:10195000F0A3E584F00586907FE5EE30E708058684 -:10196000E02438F00586EE547FFE5407FBEE5478F1 -:10197000603003030330E30474077B08FDFCE0E000 -:10198000E0E0E0E0E0E0DDF6EBFE6019EC6407701B -:10199000118B26907FE2E054BFF09020587400F045 -:1019A000801BE0DEFD907FE2E054BFF09020587491 -:1019B00000F0902019E054FDF0907FCDF002134329 -:0119C00032F4 -:0419C100AD07AC06BC -:1019C5007906ED2404F582E43CF583E0FAA3E0FB17 -:1019D5004A7003021B09E9B407004003021ADB90B1 -:1019E50019EBF8282873021AB9021A71021A5A0259 -:1019F5001A40021A2F021A1A021A00907FA5E04413 -:101A050080F08D828C83A3E0FF25E044A0907FA623 -:101A1500F019021ADB198D828C83E0C39420400AE9 -:101A2500A3A3E0907FA6F0021ADB8D828C83A3A38B -:101A3500E0A3E0907FA6F019021ADB907FA5E044B1 -:101A450080F08D828C83A3E0FF25E044A1907FA6E2 -:101A5500F019021ADBEB64014A7008907FA5E04497 -:101A650020F019907FA6E0F55919806AED2404F558 -:101A750082E43CF583E0FEA3E064024E7008907FAB -:101A8500A5E04420F019907FA6E0FFED2406F5823D -:101A9500E43CF583E475F00112A29785F082F583A5 -:101AA500EFF0ED2404F582E43CF58374FFF5F012C4 -:101AB500A2818022907FA5E04440F0907FA6E0FFC0 -:101AC500ED2406F582E43CF583E0FAA3E0F5828A8D -:101AD50083EFF07F0822907FA5E0F55930E0F730DD -:101AE500E207E04440F07F0622E9D3940250030266 -:101AF50019C7E55930E1030219C7907FA5E04440B5 -:061B0500F07F07227F08BB -:011B0B0022B7 -:101B0C00E533C39401501C7F057E001209AE7F02A1 -:101B1C007DFF1282EA7F057E001209AE7F037DFFF6 -:041B2C001282EA2215 -:108000007BFF7A12791B90000412A254FD8B5075ED -:108010005112755224E4907FE1F0907FE0F0F54E2C -:10802000F54F9002AEF0907FDFF0907FDEF0907F12 -:10803000A974FFF0907FAAF0E4FCEC25E024B4F5ED -:1080400082E4347FF583E4F00CBC10EEE4907FDD35 -:10805000F0AF051DEF70030281C6AB50AA51A952C3 -:1080600090000112A254640560030281B5900003E0 -:1080700012A2546401600302813C90000212A254D7 -:10808000FF547FFCD394075003028116ECC3941075 -:108090004003028116EF30E742E54FAE4E7802CE44 -:1080A000C313CE13D8F9FF74F02CF582E4347FF5B6 -:1080B00083EFF0907FE0E0FFEC24F8FE7401A80667 -:1080C000088002C333D8FC4F907FE0F09002AEE00E -:1080D00004F0907FDDE04480F0803EE54FAE4E78C6 -:1080E00002CEC313CE13D8F9FF74E82CF582E43422 -:1080F0007FF583EFF0907FE1E0FFEC24F8FE740160 -:10810000A806088002C333D8FC4F907FE1F09002AC -:10811000AEE004F080037FFF2290000412A25425F9 -:108120004FF54FE4354EF54E90000512A254FEE493 -:10813000254FF54FEE354EF54E0281B8AB50AA51A2 -:10814000A95290000312A254FF64026005EF640379 -:10815000706090000212A254FF547FFCD394075029 -:108160004EEF30E71E907FDEE0FF7401A804088028 -:1081700002C333D8FCFE4F907FDEF0907FACE04E20 -:10818000F08035907FDFE0FF7401A804088002C30F -:1081900033D8FCFE4F907FDFF0907FADE04EF0ECE7 -:1081A00025E024C5F582E4347FF583ECF080097F77 -:1081B000FF227FFF227FFF2274072552F552E4350C -:1081C00051F55102805120030D9002AEE0600790FE -:0881D0007FAEE04402F07F00E5 -:0181D8002284 -:0481D9008E598F5AD2 -:1081DD00755B03E55A2404F582E43559F583E0FE19 -:1081ED00A3E04E70030282E7E55B604E1460381425 -:1081FD00602014600302828B907FA5E04480F0859F -:10820D005A82855983A3E0FF25E044A0907FA6F014 -:10821D00806C855A82855983E0C394204009A3A3BD -:10822D00E0907FA6F08057155B855A82855983A310 -:10823D00A3E0A3E0907FA6F08044E55A2406F582E2 -:10824D00E43559F583E475F00112A29785F082F5B6 -:10825D0083E0907FA6F0907FA5E04440F0E55A249E -:10826D0004F582E43559F58374FFF5F012A281858A -:10827D005A82855983A3A3E475F00112A281907FE0 -:10828D00A5E0F55C30E0F730E207E04440F07F0612 -:10829D0022E55C20E10A907FA5E04440F07F0722B3 -:1082AD00E55B70317F017E001209AE907FA5E04441 -:1082BD0080F0855A82855983A3E0FF25E044A09084 -:1082CD007FA6F0907FA5E0F55C30E0F730E1D57545 -:0C82DD005B030281E0155B0281E07F087A -:0182E9002272 -:0282EA00AE07DD -:1082EC007C02EC14601514701E907FA5E04480F0A5 -:1082FC00EE25E04440907FA6F0800C907FA6EDF038 -:10830C00907FA5E04440F0907FA5E0FB30E0F8BC06 -:10831C00020A20E107E04440F07F0722EB30E20A3A -:0E832C00907FA5E04440F07F0622DCB67F087B -:01833A002220 -:10833B00C0E0C083C082C2A99003007419F0D2A917 -:0F834B0053917F9001C4E4F0D082D083D0E03210 -:10835A00EF75F008A42400F582E43420AB82FAF524 -:10836A0083A3E4F08B828A83A3A3A3E0F56174BF9D -:10837A00F08B828A83A3A3E04410F08B828A83A3C2 -:10838A00A3A3E4F08B828A83A3F0F9ED601D740144 -:10839A007E00A807088005C333CE33CED8F9FFE4A0 -:1083AA00EF5531600479098002790D8B828A83A3A3 -:1083BA00A3A374BFF08B828A83A3A3E054EFF08B4C -:1083CA00828A83A3A3A3E561F0AE02AF038F828EF4 -:0483DA0083A3E9F0A0 -:0183DE00227C -:0483DF008F618D62BB -:1083E300E4F567743F2FF876087F807E257D007C57 -:1083F30000AB66AA65A964A863D312A3B340267F22 -:10840300007E967D007C00A863D312A3B3500C7545 -:108413006740743F2561F87610800A756780743F62 -:108423002561F87638E56745624401FFE56175F03B -:0D84330008A42402F582E43420F583EFF064 -:018440002219 -:108441008F828E83E014F557C3940440037FFF228B -:10845100E55775F008A42400F582E43420AF82F5D5 -:10846100588F59E55725E024C6F582E4347FF5831A -:10847100E020E10FE55725E024C7F582E4347FF5DC -:1084810083E4F074232557F8E4F6E5592404F582D2 -:10849100E43558F583E04403F0E55775F00DA42465 -:1084A10002F582E43403F583E0FCA3E0FDA3E0FEE2 -:1084B100A3E0F5668E658D648C637D06AF571283EC -:1084C100DFAF577D0112835A855982855883A3A353 -:1084D100E020E043E0FFE5592405F582E43558F555 -:1084E10083E0E5592406F582E43558F583E0FFE59C -:1084F1005775F00DA42402F582E43403F583E0FC02 -:10850100A3E0FDA3E0FEA3E0F5668E658D648C63B8 -:108511007D06AF571283DF74F82557F582E43402E4 -:10852100F583E4F0E55725E0FFC3740C9F75F04037 -:10853100A42440F582E5F0347BAF82FEE55725E0C7 -:1085410024EFF582E43402F583EEF0A3EFF0AF57A8 -:0F8551007401A807088002C333D8FC42347F00AE -:0185600022F8 -:108561008F828E83E014F557C3940440037FFF226A -:10857100AF57E4FD12835A74F82557F582E43402AB -:10858100F583E4F0E55775F008A42400F582E4349E -:1085910020AF82F5598F5AF583E5822404F582E4F0 -:1085A1003583F583E054FCF0E55775F00DA4240CF8 -:1085B100F582E43403F583E4F0E55775F00DA42466 -:1085C10002F582E43403F583E0FCA3E0FDA3E0FEC1 -:1085D100A3E0F5668E658D648C637D06AF571283CB -:1085E100DFE55A2405F582E43559F583E030E009E9 -:1085F100855A82855983E0F558AF577401A8070859 -:108601008002C333D8FCF45234E55725E024C6F583 -:1086110082E4347FF583E020E10FE55725E024C7AC -:0B862100F582E4347FF583E4F07F0075 -:01862C00222B -:04862D008E578F587D -:108631008F828E83E014F559C3940440037FFF2297 -:10864100E55975F008A42401F582E43420F583E0AE -:1086510054037066855882855783A3E030E028E58E -:108661005975F00DA42402F582E43403F583E0FC8E -:10867100A3E0FDA3E0FEA3E0F5668E658D648C6347 -:108681007D02AF591283DF855882855783A3E0307D -:10869100E128E55975F00DA42402F582E43403F5CF -:1086A10083E0FCA3E0FDA3E0FEA3E0F5668E658D0B -:0C86B100648C637D04AF591283DF7F00EE -:0186BD00229A -:1086BE008F828E83C083C082E0FDA3A3A3E0FCED76 -:1086CE006CD082D083F08F828E83A3A3A3C083C08D -:1086DE0082E0FD8F828E83E0FCED6CD082D083F041 -:1086EE008F828E83C083C082A3A3A3E0FDEC6DD0E6 -:1086FE0082D083F08F828E83A3C083C082E0FD8FF1 -:10870E00828E83A3A3E0FCED6CD082D083F08F82A7 -:10871E008E83A3A3C083C082E0FD8F828E83A3E0ED -:10872E00FCED6CD082D083F08F828E83A3C083C089 -:10873E0082E0FD8F828E83A3A3E0FFED6FD082D007 -:03874E0083F02293 -:04875100AD07AC06BE -:10875500790D8D828C83E014FEC3940440037FFF62 -:10876500228C578D58EE75F00DA42401F582E43462 -:1087750003AF82FEAD0119ED60240FEFAC06700169 -:108785000E14F5828C83E0FD0558E558AA57700252 -:10879500055714F5828A83E06D60D97F01227F0039 -:0187A50022B1 -:0487A6008E578F5803 -:1087AA008F828E83E014F55EC3940440037FFF2218 -:1087BA00E55E75F008A42400F582E43420AF82F562 -:1087CA005F8F60855882855783A3E0FCA3E0FDA3F1 -:1087DA00E0FEA3E0FF7B087A0079007800D312A3B9 -:1087EA00B34010855882855783A312A3FA0000006C -:1087FA0008802E855882855783A3E0FCA3E0FDA359 -:10880A00E0FEA3E0FF7B007A0879077800C312A391 -:10881A00B3500E855882855783A312A3FA0007081E -:10882A0000855882855783A3E0F8A3E0F9A3E0FA0C -:10883A00A3E0FB7F007E507D467C0012A3218F5C63 -:10884A008E5B8D5A8C597B0A7A007900780012A3C4 -:10885A0021AF038F5DAF5CAE5BAD5AAC597B0A7A30 -:10886A00007900780012A3218F5C8E5B8D5A8C5997 -:10887A00E55DC394054015E55C2401F55CE4355BD0 -:10888A00F55BE4355AF55AE43559F5598560828520 -:10889A005F83A3E4F0856082855F83A3A3A3E0449A -:1088AA0080F0856082855F83E55CF0AF5CAE5BAD8E -:1088BA005AAC59780812A3C4856082855F83A3EFF6 -:1088CA00F0856082855F83A3A3A3E0547FF0E4F57B -:1088DA005DE558240BF582E43557F583E0FF30E077 -:1088EA00235401F0E5602404F582E4355FF583E062 -:1088FA0054FDF0AF5E7401A807088002C333D8FCA8 -:10890A004222803674017E00A85E088005C333CEF9 -:10891A0033CED8F9FFE4EF5522601FE5602404F551 -:10892A0082E4355FF583E04402F0AF5E7401A80784 -:10893A00088002C333D8FCF45222E5582408F58291 -:10894A00E43557F583E0FFB46205435D0A801AEF08 -:10895A00B47205435D088011EFB47405435D02806B -:10896A0008EF646E60037FFF22E558240BF582E46A -:10897A003557F583E0FF30E303435D80EF30E712BC -:10898A00435D40E5602404F582E4355FF583E04405 -:10899A0002F0E558240BF582E43557F583E030E11F -:1089AA0020AF5E7401A807088002C333D8FC4232A4 -:1089BA00E5602404F582E4355FF583E04401F08044 -:1089CA0010AF5E7401A807088002C333D8FCF452C2 -:1089DA0032E558240BF582E43557F583E0FF30E49D -:1089EA0011AE5E7401A806088002C333D8FC423176 -:1089FA008010AE5E7401A806088002C333D8FCF466 -:108A0A005231EF20E10330E403E4F55D85608285AD -:108A1A005F83A3A3A374BFF0856082855F83A3A34A -:108A2A00E4F0E55DF0E558240AF582E43557F5836C -:108A3A00E0FFE5602404F582E4355FF583EFF0E5B5 -:108A4A0058240AF582E43557F583E0FFE5602405EA -:108A5A00F582E4355FF583EFF0E5582409F582E401 -:108A6A003557F583E0FFE5602406F582E4355FF5C6 -:108A7A0083EFF0E5582409F582E43557F583E0FFE2 -:108A8A00E5602407F582E4355FF583EFF0856082BF -:108A9A00855F83A3A3A3E4F0856082855F83A3A394 -:108AAA00F0855882855783A3E0FCA3E0FDA3E0FE8E -:108ABA00A3E0F5668E658D648C637D06AF5E1283D6 -:108ACA00DF755D08E558240CF582E43557F583E037 -:108ADA006003435D10E5602404F582E4355FF583A5 -:108AEA00E05403455DF0E5582405F582E43557F571 -:108AFA0083E0FEC394054006EED3940840037FFF4B -:108B0A0022E5582406F582E43557F583E0FDC3943F -:108B1A00014006EDD3940240037FFF22ED14FF25A6 -:108B2A00E025E0FFEE24FB4FF55DE5582407F582CA -:108B3A00E43557F583E024D0601814601A24C36022 -:108B4A001E146009240A7014435D188012435D08DC -:108B5A00800D435D388008435D2880037FFF2285AE -:108B6A006082855F83A3A3A3E55DF074017E00A8FC -:108B7A005E088005C333CE33CED8F9FFE4EF55340F -:108B8A006007AF5E7D0112835AAA57A9587B01C0BC -:108B9A0003C001E55E75F00DA42401F9740335F0F4 -:108BAA00A801FCAD03D001D0037E007F0D12A212F2 -:028BBA007F003A -:018BBC002296 -:108BBD008F828E83E014FEC3940440037FFF22EE68 -:108BCD0075F008A42400F582E43420AD82FC9001F8 -:108BDD002C7408F0EE04A3F0E4A3F08D828C83E5F1 -:108BED00822406F582E43583F583E090012FF08D24 -:108BFD00828C83E5822405F582E43583F583E05488 -:108C0D001E900130F0742D2EF8E6A3F0AF0674011E -:108C1D00A807088002C333D8FCF557E533C3940188 -:108C2D00400D902078E0540F755800F55980097F5C -:108C3D00021211278E588F59C3E5586480948040D5 -:108C4D00DAE5575559900132F07E017F2C7D0712E0 -:048C5D00916A7F0099 -:018C610022F0 -:108C62008F828E83E014FEC3940440037FFF22EEC2 -:108C720075F008A42400F582E43420AF82FE90014E -:108C820033740AF08F828E83E5822404F582E43500 -:108C920083F583E0900134F07E017F337D021291EF -:038CA2006A7F00E6 -:018CA50022AC -:048CA6008E578F58FE -:108CAA008F828E83E014FEC3940440037FFF22EE7A -:108CBA0075F008A42400F582E43420AD82FC8558BE -:108CCA0082855783A3E0600FED2404F582E43CF526 -:108CDA0083E04402F08043EE75F00DA4240CF58283 -:108CEA00E43403F583E030E020EE25E024C6F58283 -:108CFA00E4347FF583E030E1F07F60ED2405F5820E -:108D0A00E43CF583E05FB507F2AE04AF05EF240457 -:0C8D1A00F582E43EF583E054FDF07F009C -:018D2600222A -:048D2700AD07AC06E2 -:108D2B008D828C83E014FEC3940440037FFF22EEFC -:108D3B0075F008A42400F582E43420AF82FE8D8206 -:108D4B008C83A3E0600FEF2404F582E43EF583E00F -:108D5B004401F0800DEF2404F582E43EF583E054EA -:048D6B00FEF07F0097 -:018D6F0022E1 -:048D7000AD07AC0699 -:108D74008D828C83E014FEC3940440037FFF22EEB3 -:108D840075F008A42400F582E43420AF82FE8D82BD -:108D94008C83A3E0600D8F828E83A3A3A3E0444061 -:108DA400F0800B8F828E83A3A3A3E054BFF07F00D7 -:018DB400229C -:108DB5008F828E83E014FEC3940440037FFF22AFAD -:108DC500067401A807088002C333D8FC423E7F0021 -:018DD500227B -:048DD6008E578F58CD -:108DDA008F828E83A3E0F55C8F828E83E0F559D370 -:108DEA00940440037FFF22E55924FE601614601F95 -:108DFA001460282403702E7E7E7F80755A7E755BF0 -:108E0A008080227E7E7F00755A7E755B0080167E8A -:108E1A007D7F80755A7D755B80800A7E7D7F0075B7 -:108E2A005A7D755B00E55C701B855B82855A83748D -:108E3A00FFF0E55925E024B5F582E4347FF5837423 -:108E4A0001F08048E5582402FFE43557FEE55C60EE -:108E5A00230FEFAC0670010E14F5828C83E0FD053A -:108E6A005BE55BAA5A7002055A14F5828A83EDF013 -:108E7A00155C80D9855882855783A3E0FFE559257B -:0E8E8A00E024B5F582E4347FF583EFF07F003D -:018E980022B7 -:108E9900EF2405F558E43EF5579001357407F09035 -:108EA900017A7401F0A37436F0855882855783A33B -:108EB900A3A3E0FEA3E08E59F55A8558828557830E -:108EC900E0249E606124F9600E24F17003028F7A18 -:108ED90024146003028FC8855882855783A3E0FE56 -:108EE900A3E0FFC3E49FF55C74019EF55BD3E55CE9 -:108EF900943FE55B94004006755B00755C3FD3E5E4 -:108F09005A955CE559955B5003028FCBAE5BAF5C1C -:108F1900855882855783A3A3A3EEF0FEA3EFF08EB5 -:108F290059F55A028FCB855882855783A3E0FEA352 -:108F3900E0FFC374309FF55CE49EF55BD3E55C9478 -:108F490010E55B94004006755B00755C10D3E55A2B -:108F5900955CE559955B406AAE5BAF5C8558828547 -:108F69005783A3A3A3EEF0FEA3EFF08E59F55A8021 -:108F790051855882855783A3E0FEA3E0FFC3E49F90 -:108F8900F55CE49EF55B455C600BD3E55C943FE5DD -:108F99005B94004006755B00755C3FD3E55A955CB0 -:108FA900E559955B401CAE5BAF5C8558828557835C -:108FB900A3A3A3EEF0FEA3EFF08E59F55A80037F29 -:108FC9000122855882855783E0249E700302908B85 -:108FD90024F9605824F170030290DB241460030221 -:108FE900911F855882855783A3E0FEA3E0FFD394A0 -:108FF900FFEE9400400302911F900175EFF0E55ACE -:10900900155AAE59700215594E700302911F9001FD -:1090190075E0FF04F0A807E6FF90017AE475F00116 -:1090290012A29785F082F583EFF080D28558828568 -:109039005783A3E0FEA3E0FFC39480EE940050039E -:1090490002911FD3EF94FFEE9400400302911F9009 -:109059000176EFF0E55A155AAE59700215594E705E -:109069000302911F900176E0FF04F0A807E6FF9044 -:10907900017AE475F00112A29785F082F583EFF089 -:1090890080D2855882855783A3E0FEA3E0FFC3946D -:1090990020EE9400500302911FD3EF942FEE940019 -:1090A9005074900177EFF0E55A155AAE59700215D0 -:1090B900594E6062900177E0FF04F0A807E6FF903F -:1090C900017AE475F00112A29785F082F583EFF039 -:1090D90080D5855882855783A3E0FFA3E090017866 -:1090E900CFF0A3EFF0E55A155AAE59700215594E53 -:1090F9006024900178E475F00112A29785F082F559 -:1091090083E0FF90017AE475F00112A29785F0825D -:10911900F583EFF080CF7E017F35855882855783AF -:0D912900A3A3A3E0A3E004FD12916A7F0060 -:019136002216 -:109137008E628F638C648D65AF031BEF60240563BC -:10914700E563AE627002056214F5828E83E0FF0567 -:1091570065E565AC647002056414F5828C83EFF0F5 -:0391670080D6228D -:06916A008D5DAB07AA06B3 -:1091700075614075600D755F03755E00907FC2E09C -:1091800020E1F9AF61AE60AD5FAC5EEC4D4E4F706B -:1091900008907FC27402F080D7907FC2E020E11671 -:1091A000AF03AE027C7B7D80AB5D129137907FC3B5 -:0891B000E55DF07F01227F0064 -:0191B8002294 -:1091B900900184740BF0A3E533F0900AF5E49390E1 -:1091C9000186F0900AF6E493900187F0E490017C1F -:1091D900F0A3F0A3F0A3F0A3F0A37410F0A374011B -:1091E900F0A37488F07E017F7C1219C17E017F840F -:0791F9007D1412916A7F0052 -:01920000224B -:109201007E7B7F40754E7B754F40907FD3E0FF851D -:109211004E51854F52E5522401F556E43551F5552D -:10922100E4F550855282855183E0FE14B40C005060 -:109231005B909239F828287302925D02925D029246 -:109241006702927102927102927102928502925D9D -:1092510002927B02925D02928D02925DEF64026046 -:109261002B7550FF8026EF640E60217550FF801C26 -:10927100EF640360177550FF8012EF6403600D7592 -:1092810050FF8008EF640660037550FFE5506015DC -:109291009001987411F0A3EEF07E017F987D021287 -:1092A100916AAF5022E4F550855282855183E014D2 -:1092B100B40F0040030293CF9092C0F828287302A4 -:1092C10092ED0292F902930502935302935E029387 -:1092D1006902937402937F02938A0293950293A089 -:1092E1000293A70293CF0293B20293BDAF56AE553C -:1092F1001284418F500293D2AF56AE551285618FC1 -:10930100500293D2855553855654E5542401FFE408 -:109311003553FE1286BEAF54AE531287518F50EFB4 -:10932100640160030293D2AF54AE531287A68F50EB -:10933100E55070030293D2855482855383E075F022 -:109341000DA424F4F582E43402AF82FE1287A60252 -:1093510093D2AF56AE55128CA68F508074AF56AED5 -:1093610055128D278F508069AF56AE55128D708F73 -:1093710050805EAF4FAE4E128E998F508053AF56D4 -:10938100AE55128BBD8F508048AF56AE5512862D0B -:109391008F50803DAF56AE55128C628F5080321285 -:1093A10091B98F50802BAF56AE55128DB58F50802D -:1093B10020AF56AE55128DD68F508015AF4FAE4EA1 -:1093C1007C027DAF7B40129137E4F55080037550EC -:1093D100FFE550601D9001987411F085528285510E -:1093E10083E0900199F07E017F987D0212916AAF2E -:1093F1005022855282855183E0FF1424FA500424BF -:10940100FE701F9001987410F0A3EFF085568285CD -:109411005583E090019AF07E017F987D0312916A55 -:049421008F50AF5069 -:019425002224 -:089426008F518E508D4F8C4ECA -:10942E0075580175599CE4F557AF531553EF7003FA -:10943E000294C4AF52E4FCFDFEF8F9FAAB07AF514B -:10944E00AE50AD4FAC4E12A321AF038F56AF51AEFF -:10945E0050AD4FAC4EC004C005C006C007AF52E4BD -:10946E00FCFDFEF8F9FAAB07D007D006D005D00404 -:10947E0012A3218F518E508D4F8C4EE5562430F510 -:10948E0056D39439400674072556F5560559E559B5 -:10949E00AE587002055814F5828E83E4F00559E536 -:1094AE0059AE587002055814F5828E83E556F005B4 -:1094BE00570557029437E559155970021558AF578D -:1094CE001557EF6023E5591559AE5870021558F52A -:1094DE00828E83E0FF0555E555AC54700205541499 -:0894EE00F5828C83EFF080D6BB -:0194F6002253 -:1094F700E49001C9F07E017FCA9001BEEEF0A3EFB0 -:0A950700F09001C2EEF0A3EFF02295 -:10951100AA07A9059001C9E0C394405061AC027447 -:10952100017E00A804088005C333CE33CED8F9FFED -:10953100E4EF55346045EA04FF9001C2E0FCA3E08A -:10954100FDF5828C83EFF0A3E9F08D828C83A3A3D8 -:10955100EBF09001C2E475F00312A281FCD3E5F0B7 -:109561009487EC9402400A9001C27401F0A374CA7A -:10957100F0C2AF9001C9E004F0D2AF7F01227F00B9 -:0195810022C7 -:109582009001C9E0D3940040559001BEE0FCA3E0F5 -:10959200AA04F97B01C003C002C001AA06A907A858 -:1095A20001AC02AD03D001D002D0037E007F0312D2 -:1095B200A2129001BEE475F00312A281FCD3E5F081 -:1095C2009487EC9402400A9001BE7401F0A374CA1D -:1095D200F0C2AF9001C9E014F0D2AF7F01227F0048 -:0195E2002266 -:1095E300907FC2E020E1737E7B7F8075537B75544F -:1095F30080E5542401FFE43553A9077B018B55F51E -:10960300568957FE129582EF6050AB55AA56A9575B -:1096130012A23B14FF90000112A254B40216C2AF6F -:10962300EF75F008A42401F582E43420F583E044C7 -:1096330004F0D2AF74017E00A807088005C333CEBF -:1096430033CED8F9FFE4EF5534600F855482855348 -:0A96530083740DF0907FC37404F0DF -:01965D0022EA -:10965E001295E3E4F54E743A254EF8E654F0F54FC4 -:10966E0074C5254EF582E43401F583E0654FFFC4E1 -:10967E00540FF550602274C5254EF582E43401F581 -:10968E0083E54FF0AF4E7D01E54F4550FB1295112E -:10969E00EF70051295E380EC054EE54EC394044041 -:1096AE00B51295E3E53E6048E4F54EAF4E7401A861 -:1096BE0007088002C333D8FCF54F553E6029E54EAE -:1096CE0075F008A42405F582E43420F583E030E635 -:1096DE0016AF4E7D047B80129511EF70051295E347 -:1096EE0080EFE54FF4523E054EE54EC3940440BB69 -:1096FE00900300E060030297DF7419F0E533C39422 -:10970E0001400D902078E0540F755100F5528009FC -:10971E007F021211278E518F52C3E55164809480BF -:10972E0040DA9001BCE06552F06037E4F54EAF4E82 -:10973E007401A807088002C333D8FCF54F9001BC12 -:10974E00E0554F6014AF4E7D08E54F5552FB129514 -:10975E0011EF70051295E380EC054EE54EC39404AF -:10976E0040CC9001BCE552F0E4F54EC2AF74362504 -:10977E004EF8E6F54FE4F6D2AF534F1EE54F6011AB -:10978E00AF4E7D02AB4F129511EF70051295E3802F -:10979E00EF742D254EF8E6F54F74FC254EF582E458 -:1097AE003402F583E0654F6011AF4E7D04AB4F126E -:1097BE009511EF70051295E380EF74FC254EF5823E -:1097CE00E43402F583E54FF0054EE54EC3940440B4 -:0497DE009A1295E363 -:0197E2002264 -:0C97E300787FE4F6D8FD75816702982AB3 -:1097EF000205ADE493A3F8E493A34003F68001F2DE -:1097FF0008DFF48029E493A3F85407240CC8C3337B -:10980F00C4540F4420C8834004F456800146F6DF49 -:10981F00E4800B010204081020408090986FE47ED2 -:10982F00019360BCA3FF543F30E509541FFEE4933E -:10983F00A360010ECF54C025E060A840B8E493A305 -:10984F00FAE493A3F8E493A3C8C582C8CAC583CA30 -:10985F00F0A3C8C582C8CAC583CADFE9DEE780BEE8 -:10986F006024028A010204081020408081828488CB -:10987F0090A0C0C1C2C4C8D0E0E1E2E4E8F0F1F2C8 -:08988F00F4F8F9FAFCFDFEFFFC -:0198970000D0 -:089898008B598A5A895B8D5C33 -:1098A000E4F55DF55EAF5C155CEF6036AB59055BCA -:1098B000E55BAA5A7002055A14F912A23BFFE55D56 -:1098C000E55E6F25E0FFE433FE74952FF582EE34FC -:1098D0009EF583E55DFFE493F55D7401936FF55E9E -:0698E00080C3AE5DAF5E27 -:0198E600225F -:0B98E700C0E0C083C082C0D075D01864 -:1098F200902060E0540FFE30E005902002E0FFEE81 -:1099020030E10590200AE0FFEE30E205902012E0FF -:10991200FFEE30E30590201AE0FF9001C4E0B51E8F -:0A99220004E4F080059001C4EEF0AB -:09992C00D0D0D082D083D0E0320B -:02993500A90384 -:10993700EF75F008A42400F582E43420AB82FAE541 -:109947005C455DF55EE960148A83E5822404F5824F -:10995700E43583F583E04DF0E4FE8013EB2404F552 -:1099670082E43AF583E0FFEDF4FCEF5CF0AE5EEBEA -:109977002406F582E43AF583E0555EFCB50603AFAD -:109987000522E55C5CFEE55D5CFDE96016EE7004B2 -:109997007F0180027F00AE07ED70047F0180027FA8 -:1099A70000AD07EE6003AF5C22ED6003AF5D227F81 -:0199B70000AF -:0199B800228C -:1099B9007555027556B0900335740FF0855682853A -:1099C9005583A3E0FF900337F0855682855583E0E0 -:1099D900900336F090033874FFF0755703755839C2 -:1099E900EF14B40B004003029E5D9099FAF8282801 -:1099F90073029A1B029ABA029BBF029BDE029BDE8C -:109A0900029C94029CCF029CF4029DB2029DE20248 -:109A19009E0EE4F54EE54E75F008A42400F582E4A7 -:109A29003420AF82F5538F54E4FFE4FEEF601074E5 -:109A39008A2EF582E43402F583E0F4F54F800D7443 -:109A49008A2EF582E43402F583E0F54FE5542407C4 -:109A5900F582E43553F583E54FF0E0F550654F6045 -:109A690038E4900338F0E54E04FD0558E558AA5747 -:109A79007002055714F5828A83EDF00558E558AC54 -:109A8900577002055714F5828C83E54FF08558828B -:109A9900855783E550F0029E630EBE248F0FEF6455 -:109AA900027087054EE54E64046003029A1E029E09 -:109AB90063E4F54EAF4EE4FD12835A054EE54ED3ED -:109AC900940340F09000047498F0A374E7F0E4F56F -:109AD900507E207F00755320755400F54EAF4E74AB -:109AE90001A807088002C333D8FCF54F9001C4F0E0 -:109AF9009001C0E4F0A3740AF0855482855383A3CE -:109B09007402F09001C4E0B54F349001C0E07002D6 -:109B1900A3E070EF900338F0E54E04FF0558E558CF -:109B2900AC577002055714F5828C83EFF085588283 -:109B390085578374FFF0E49001C4F07550FF9001DC -:109B4900C4E0FF6037E4900338F0E54E04FE0558A1 -:109B5900E558AC577002055714F5828C83EEF00571 -:109B690058E558AC577002055714F5828C83EFF00D -:109B7900855882855783E54FF07550FFE55070167B -:109B890074082554F554E43553F553054EE54E64F0 -:109B9900046003029AE6E4F54EAF4E7D0112835A42 -:109BA900054EE54ED3940340F09000047413F0A3DE -:109BB9007412F0029E63855682855583E014FF7402 -:109BC90001A807088002C333D8FC9002F7F090017E -:109BD900C4F0029E639001C07403F0A374E8F0E43A -:109BE900F5509002F7E0FF9001C4E0B50719900124 -:109BF900C0E07002A3E070EA900338F085588285CE -:109C0900578374FFF0F550E5506003029E6390019D -:109C1900C0F0A37496F09001C0E07002A3E070F662 -:109C2900E533C39401400D902078E0540F7551003D -:109C3900F55280097F021211278E518F52C3E551C7 -:109C49006480948040DAE552540FF5509002F7E0B1 -:109C5900555070047F0180027F008F4F85568285A1 -:109C69005583A3E0B4050CE54F70047F0180027FA2 -:109C7900008F4FE54F7003029E63E4900338F0852F -:109C89005882855783E550F0029E63E4FFFD1283F5 -:109C99005A7E207F00755320755400855482855360 -:109CA90083A3A3A3E04480F0855482855383740180 -:109CB900F0A3E4F0855482855383A3A3A3E0547FE2 -:109CC900F0D204029E63C2047E207F007553207582 -:109CD9005400E5542405F582E43553F583E030E674 -:109CE900F1E4FF7D0112835A029E63E4F550F54EBB -:109CF900AF4EE4FD12835AE54E75F008A42400F531 -:109D090082E43420AF82F5538F54F583E58224042D -:109D1900F582E43583F583E054FCF0AF4E7D017B99 -:109D290001755C80755D401299358F50E550701151 -:109D3900AF4E7D027B01755C10755D201299358FE0 -:109D490050E5507010AF4E7D01FB755C80755D402C -:109D59001299358F50E5507010AF4E7D02FB755C3E -:109D690010755D201299358F50AF4E7D0112835ABF -:109D7900E5506026E4900338F0E54E04FF0558E508 -:109D890058AC577002055714F5828C83EFF085584B -:109D990082855783E550F0029E63054EE54ED394C4 -:109DA900035003029CF9029E63E4900359F0A3F067 -:109DB900A3F0A3F0A3F0A37410F0A3749EF0A3740E -:109DC90085F07E037F591281D9EF64087003029EE2 -:109DD90063E4900338F0029E63E4900359F0A3F022 -:109DE900A3F0A3F0A3F0A37410F0A3E557F0A3E543 -:109DF90058F07E037F591219C1EF6408605CE49042 -:109E09000338F08055E5562402FFE43555FAA907D1 -:109E19007B017D10129898EF4E7032900359F0A390 -:109E2900F0A3F0A3F0A3F0A37410F0E55624029078 -:109E39000360F0E4355590035FF07E037F5912818A -:109E4900D9EF64086014E4900338F0800DE49003BE -:109E590038F080069003387401F09001C0E4F0A353 -:109E6900740AF09001C0E07002A3E070F67E037FEF -:0B9E7900357D2412916AE49002AFF0E6 -:019E840022BB -:109E8500FFFEFCF8F0E0C080000103070F1F3F7FD5 -:109E95000000C0C1C1810140C30103C00280C241AD -:109EA500C60106C00780C7410500C5C1C48104407D -:109EB500CC010CC00D80CD410F00CFC1CE810E402D -:109EC5000A00CAC1CB810B40C90109C00880C8413D -:109ED500D80118C01980D9411B00DBC1DA811A40AD -:109EE5001E00DEC1DF811F40DD011DC01C80DC417D -:109EF5001400D4C1D5811540D70117C01680D641AD -:109F0500D20112C01380D3411100D1C1D0811040BC -:109F1500F00130C03180F1413300F3C1F2813240AC -:109F25003600F6C1F7813740F50135C03480F4417C -:109F35003C00FCC1FD813D40FF013FC03E80FE412C -:109F4500FA013AC03B80FB413900F9C1F88138403C -:109F55002800E8C1E9812940EB012BC02A80EA41AC -:109F6500EE012EC02F80EF412D00EDC1EC812C407C -:109F7500E40124C02580E5412700E7C1E6812640AC -:109F85002200E2C1E3812340E10121C02080E041BC -:109F9500A00160C06180A1416300A3C1A2816240AC -:109FA5006600A6C1A7816740A50165C06480A4417C -:109FB5006C00ACC1AD816D40AF016FC06E80AE412C -:109FC500AA016AC06B80AB416900A9C1A88168403C -:109FD5007800B8C1B9817940BB017BC07A80BA41AC -:109FE500BE017EC07F80BF417D00BDC1BC817C407C -:109FF500B40174C07580B5417700B7C1B6817640AC -:10A005007200B2C1B3817340B10171C07080B041BB -:10A01500500090C191815140930153C052809241AB -:10A02500960156C057809741550095C1948154407B -:10A035009C015CC05D809D415F009FC19E815E402B -:10A045005A009AC19B815B40990159C0588098413B -:10A05500880148C0498089414B008BC18A814A40AB -:10A065004E008EC18F814F408D014DC04C808C417B -:10A07500440084C185814540870147C046808641AB -:10A08500820142C043808341410081C180814040BB -:10A09500E4FF74F82FF582E43402F583E0700302DF -:10A0A500A138743A2FF8E620E50302A138EF75F0E0 -:10A0B50008A42400F582E43420AD82FCF583E58212 -:10A0C5002405F582E43583F583E0546064607063AC -:10A0D500EF25E024EFF582E43402F583E475F00121 -:10A0E50012A29785F082F583E08D828C83F074F857 -:10A0F5002FF582E43402F583E014F07036EF25E0A5 -:10A1050024C7F582E4347FF583E4F0EF25E0FEC350 -:10A11500740C9E75F040A42440F582E5F0347BADC7 -:10A1250082FCEF25E024EFF582E43402F583ECF0C0 -:0CA13500A3EDF00FEF6404600302A0979C -:01A1410022FB -:10A14200E709F608DFFA8046E709F208DFFA803EFF -:10A1520088828C83E709F0A3DFFA8032E309F608EC -:10A16200DFFA8078E309F208DFFA807088828C8354 -:10A17200E309F0A3DFFA806489828A83E0A3F60808 -:10A18200DFFA805889828A83E0A3F208DFFA804CE2 -:10A1920080D280FA80C680D4806980F280338010B9 -:10A1A20080A680EA809A80A880DA80E280CA803322 -:10A1B20089828A83ECFAE493A3C8C582C8CCC5839A -:10A1C200CCF0A3C8C582C8CCC583CCDFE9DEE7806A -:10A1D2000D89828A83E493A3F608DFF9ECFAA9F0E9 -:10A1E200EDFB2289828A83ECFAE0A3C8C582C8CC3F -:10A1F200C583CCF0A3C8C582C8CCC583CCDFEADE58 -:10A20200E880DB89828A83E493A3F208DFF980CCB9 -:10A2120088F0ED2402B4040050C2F582EB2402B4AB -:10A22200040050B823234582F582EF4E60AEEF6002 -:09A23200010EE5822390A1927354 -:10A23B00BB010689828A83E0225002E722BBFE0221 -:09A24B00E32289828A83E4932254 -:10A25400BB010CE58229F582E5833AF583E02250BF -:10A2640006E92582F8E622BBFE06E92582F8E22209 -:0DA27400E58229F582E5833AF583E4932223 -:10A28100C5F0F8A3E028F0C5F0F8E5821582700268 -:06A291001583E038F02205 -:10A29700A3F8E0C5F025F0F0E5821582700215837A -:06A2A700E0C838F0E822D7 -:10A2AD00BB0110E58229F582E5833AF583E0F5F0EF -:10A2BD00A3E0225009E92582F886F008E622BBFECC -:10A2CD000AE92582F8E2F5F008E222E5832AF58312 -:08A2DD00E993F5F0A3E99322D7 -:10A2E50075F008758200EF2FFFEE33FECD33CDCC30 -:10A2F50033CCC58233C5829BED9AEC99E5829840B3 -:10A305000CF582EE9BFEED9AFDEC99FC0FD5F0D68F -:10A31500E4CEFBE4CDFAE4CCF9A88222B800C1B9B9 -:10A325000059BA002DEC8BF084CFCECDFCE5F0CBF7 -:10A33500F97818EF2FFFEE33FEED33FDEC33FCEB30 -:10A3450033FB10D703994004EB99FB0FD8E5E4F9EB -:10A35500FA227818EF2FFFEE33FEED33FDEC33FCD8 -:10A36500C933C910D7059BE99A4007EC9BFCE99ACC -:10A37500F90FD8E0E4C9FAE4CCFB2275F010EF2F11 -:10A38500FFEE33FEED33FDCC33CCC833C810D70711 -:10A395009BEC9AE899400AED9BFDEC9AFCE899F84C -:0EA3A5000FD5F0DAE4CDFBE4CCFAE4C8F922DF -:10A3B300EB9FF5F0EA9E42F0E99D42F0E89C45F000 -:01A3C3002277 -:10A3C400E8600FECC313FCED13FDEE13FEEF13FF77 -:03A3D400D8F1229B -:10A3D700080808E6CF2FF618E6CE3EF618E6CD3D7C -:07A3E700F618E6CC3CF6225B -:0CA3EE00ECF0A3EDF0A3EEF0A3EFF022E2 -:10A3FA00A8828583F0D083D08212A41112A41112EC -:10A40A00A41112A411E473E493A3C583C5F0C58310 -:10A41A00C8C582C8F0A3C583C5F0C583C8C582C8AC -:01A42A00220F -:00000001FF -/***************************************************************************** - * - * whiteheat.h -- ConnectTech WhiteHEAT Firmware. - * - * Copyright (C) 2000-2002 ConnectTech Inc (http://www.connecttech.com/) - * - * 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., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * (10/09/2002) Stuart MacDonald - * Firmware 4.06 - * - * (04/09/2000) gkh - * Updated the firmware with the latest provided by ConnectTech. - * - * (01/16/2000) gkh - * Fixed my intel hex processing tool, so now the firmware actually - * matches the original file (this was causing a few problems...) - * - * (01/15/2000) gkh - * Added debug loader firmware if DEBUG is #defined: - * Port 1 LED flashes when the vend_ax program is running - * Port 2 LED flashes when any SETUP command arrives - * Port 3 LED flashes when any valid VENDOR request occurs - * Port 4 LED flashes when the EXTERNAL RAM DOWNLOAD request occurs - * - * version 1.0 (01/09/2000) gkh - * Original firmware from ConnectTech massaged a little to be program - * readable. - * - *****************************************************************************/ - -#define whiteheat_DATE "20000106" diff --git a/firmware/whiteheat_loader.HEX b/firmware/whiteheat_loader.HEX deleted file mode 100644 index 5f663f6a2849..000000000000 --- a/firmware/whiteheat_loader.HEX +++ /dev/null @@ -1,314 +0,0 @@ -:0300000002098D65 -:030033000208FBC5 -:03004300020B00AD -:03004B000205AA01 -:10010000907FA5E05410FFC4540F4450F50F13E442 -:1001100033F511907FE9E0245EB407004003020349 -:1001200078900128F82828730201BC0201BC020162 -:100130009102013D02015302016F02019A907F007A -:10014000E511F0907FB57401F0907FB4E04402F0C7 -:10015000020378907F92E0FFC4540F907F00F090EC -:100160007FB57401F0907FB4E04402F0020378128E -:100170000A895007E4907F00F08006907F00740F9A -:10018000F0907FB57401F0907FB4E04402F0020378 -:1001900078907FEAE0F50F020378907F007407F013 -:1001A000907FB57401F0907FB4E04402F07FE87E68 -:1001B00003120D94D206120CCC020378907FEAE071 -:1001C000752800F529A3E0FEE4EE4228907FEEE0DA -:1001D000752A00F52BA3E0FEE4EE422A907FE8E0CA -:1001E00064C060030202C9E52B452A70030203784C -:1001F000C3E52B9440E52A94005008852A2C852BD2 -:100200002D8006752C00752D40907FE9E064A37069 -:1002100034F530F531C3E531952DE530952C505C42 -:10022000E5292531F582E5303528F583E0FF7400B6 -:100230002531F582E4347FF583EFF00531E5317047 -:1002400002053080D0E4F530F531C3E531952DE578 -:1002500030952C501874002531F582E4347FF583F5 -:1002600074CDF00531E5317002053080DDAF29AE87 -:1002700028AD2D7A7F79007B00120BF4907FB5E5D5 -:100280002DF0E52D2529F529E52C3528F528C3E5A0 -:100290002B952DF52BE52A952CF52A907F92E0FFE2 -:1002A000C4540F752E00F52FD39400E52E94005002 -:1002B0000C907FB4E020E1030201E780F4907FB46A -:1002C000E020E2030201E780F4907FE8E064406010 -:1002D00003020378E52B452A7003020378E4907F3C -:1002E000C5F0907F92E0FFC4540F752E00F52FD318 -:1002F0009400E52E94005009907FC4E030E109801D -:10030000F7907FB4E020E3F9907FC5E0752C00F50D -:100310002D907FE9E064A37034F530F531C3E53109 -:10032000952DE530952C503474C02531F582E43498 -:010330007E4E -:10033100F583E0FFE5292531F582E5303528F583A0 -:10034100EFF00531E5317002053080D0AF29AE28DC -:10035100AD2D7A7E79C07BC0120C3FE52D2529F5A4 -:1003610029E52C3528F528C3E52B952DF52BE52A14 -:09037100952CF52A0202D4C322E6 -:10037A00907FE9E070030204521470030204CE2451 -:10038A00FE700302054224FB700302044C1470033E -:10039A0002044614700302043A147003020440244F -:1003AA00056003020596120E4440030205A2907FDF -:1003BA00EBE024FE60161460402402706974119008 -:1003CA007FD4F07400907FD5F00205A2907FEAE016 -:1003DA00FF120B588B258A268927EA496011AE023B -:1003EA00EE907FD4F0AF01EF907FD5F00205A29096 -:1003FA007FB4E04401F00205A2907FEAE0FF120810 -:10040A00BA8B258A268927EA496011AE02EE907FC7 -:10041A00D4F0AF01EF907FD5F00205A2907FB4E04F -:10042A004401F00205A2907FB4E04401F00205A263 -:10043A00120E1F0205A2120E2D0205A2120AF702BF -:10044A0005A2120E110205A2120E4640030205A2CF -:10045A00907FE8E0247F60241460312402705BA25C -:10046A0000E433FF25E0FFA202E4334F907F00F05F -:10047A00E4A3F0907FB57402F00205A2E4907F0035 -:10048A00F0A3F0907FB57402F00205A2907FECE031 -:10049A00F45480FFC4540FFFE054072F25E024B41E -:1004AA00F582E4347FF583E054FD907F00F0E4A305 -:1004BA00F0907FB57402F00205A2907FB4E0440187 -:1004CA00F00205A2120E4840030205A2907FE8E05E -:1004DA0024FE601D240260030205A2907FEAE0B4B4 -:1004EA000105C2000205A2907FB4E04401F00205B2 -:1004FA00A2907FEAE07038907FECE0F45480FFC469 -:10050A00540FFFE054072F25E024B4F582E4347F2A -:10051A00F583E4F0907FECE05480FF131313541F2B -:10052A00FFE054072F907FD7F0E04420F0806990D5 -:10053A007FB4E04401F08060120E4A505B907FE87D -:10054A00E024FE60182402704F907FEAE0B40104B0 -:10055A00D2008044907FB4E04401F0803B907FEA6F -:10056A00E07020907FECE0F45480FFC4540FFFE069 -:10057A0054072F25E024B4F582E4347FF58374010F -:10058A00F08015907FB4E04401F0800C1201005015 -:10059A0007907FB4E04401F0907FB4E04402F02277 -:1005AA00C0E0C083C082C085C084C086758600C092 -:1005BA00D0C000C001C002C003C006C007907FA51A -:1005CA00E030E206750D06020676907FA5E020E18E -:1005DA000CE50D64026006750D07020676AF0DEF95 -:1005EA0024FE604814602C24FE6077240460030211 -:1005FA000676AB09AA0AA90BAF0C050C8F82758384 -:10060A0000120822907FA6F0E50C6508705E750D51 -:10061A00058059907FA6E0AB09AA0AA90BAE0C8EF9 -:10062A008275830012084F750D028040E50824FE8A -:10063A00B50C07907FA5E04420F0E50814B50C0A34 -:10064A00907FA5E04440F0E4F50D907FA6E0AB0969 -:10065A00AA0AA90BAE0C8E8275830012084F050CEC -:10066A00800A907FA5E04440F0E4F50D5391DFD075 -:10067A0007D006D003D002D001D000D0D0D086D087 -:0A068A0084D085D082D083D0E03206 -:100694008C338D34907F95E044C0F0E4F535F53625 -:1006A400C3E5369534E53595335069EF2536F58243 -:1006B400E5353EF58374FFF0F46002C322EF25367E -:1006C400F582E5353EF583E4F06002C322EF25367A -:1006D400F582E5353EF58374AAF064AA6002C3226C -:1006E400EF2536F582E5353EF5837455F0645560A3 -:1006F40002C322AD36E5362FF582E5353EF583EDAE -:10070400F0FCAC05ED6C6002C3220536E5367002E0 -:100714000535808CE4F535F536C3E5369534E53595 -:1007240095335027EF2536F582E5353EF583E065B0 -:10073400366002C322EF2536F582E5353EF583E4C3 -:0D074400F00536E5367002053580CED32273 -:10075100C204D205C203C200C202C201120E3DD2BE -:10076100E843D820907FAB74FFF0907FA9F0907F91 -:10077100AAF05391EF907F95E044C0F0907F93747D -:1007810030F0120A19907FAFE04401F0907FAEE0A3 -:10079100440DF0D2AF120E352001427524007523AD -:1007A100007522007521007F487E927D007C00ABA0 -:1007B10024AA23A922A821C31208A950DB2001D809 -:1007C1007A0079007800E5242401F524EA3523F53F -:1007D10023E93522F522E83521F52180CA300105CA -:1007E10012037AC20130041A120E4050131209008A -:1007F100300007907FD6E030E7F3120D4A120E4227 -:08080100C2031208FF80D62299 -:10080900BB010689828A83E0225002E722BBFE02ED -:09081900E32289828A83E4932220 -:10082200BB010CE58229F582E5833AF583E022508B -:1008320006E92582F8E622BBFE06E92582F8E222D5 -:0D084200E58229F582E5833AF583E49322EF -:10084F00F8BB010DE58229F582E5833AF583E8F0DF -:10085F00225006E92582C8F622BBFE05E92582C88B -:02086F00F22273 -:10087100BB0110E58229F582E5833AF583E0F5F0C5 -:10088100A3E0225009E92582F886F008E622BBFEA2 -:100891000AE92582F8E2F5F008E222E5832AF583E8 -:0808A100E993F5F0A3E99322AD -:1008A900EB9FF5F0EA9E42F0E99D42F0E89C45F0A5 -:0108B900221C -:0208BA008F2885 -:1008BC00E4F529752AFF752B11752C32AB2AAA2B5E -:1008CC00A92C900001120822B4031DAF290529EFB1 -:1008DC00B52801221208097E0029FFEE3AA90775F6 -:0E08EC002AFFF52B892C80D47B007A0079003E -:0108FA0022DB -:0408FB0053D8EF32AD -:0108FF0022D6 -:09090000907FD6E04480F0807481 -:10097D00438701000000000000000000000000227D -:0C098D00787FE4F6D8FD7581390209D4AA -:10099900020751E493A3F8E493A34003F68001F21C -:1009A90008DFF48029E493A3F85407240CC8C3335F -:1009B900C4540F4420C8834004F456800146F6DF2E -:1009C900E4800B0102040810204080900DECE47EC5 -:1009D900019360BCA3FF543F30E509541FFEE49323 -:1009E900A360010ECF54C025E060A840B8E493A3EA -:1009F900FAE493A3F8E493A3C8C582C8CAC583CA15 -:100A0900F0A3C8C582C8CAC583CADFE9DEE780BECC -:100A1900E4907F9CF07F0AFE120D94907F96748972 -:100A2900F0907F9C74CFF07FF47E01120D94907F3B -:100A390096E054FEF07F0A7E00120D947F057E0039 -:100A4900120D94907F96E04402F0E0547FF07F0508 -:100A59007E00120D94907F96E04440F07F057E0061 -:100A6900120D94907F96E054BFF07F327E00120DF4 -:100A790094907F96E04440F07F327E00120D9422DC -:100A8900753201E532601B7F01120DD77F007E0EA2 -:100A99007D007C01120694E433F53270057F0F1254 -:100AA9000DD7E532601B7F02120DD77F007E807D56 -:100AB900007C80120694E433F53270057F0F120D25 -:100AC900D7E532601B7F03120DD77F007E207D4062 -:100AD9007C5B120694E433F53270057F0F120DD753 -:0E0AE900E5326005E4FF120DD7E53224FF224E -:080AF700907FEAE0F510D32224 -:010AFF0032C4 -:100B0000020D6400020DAB00020D2F00020D7C00EF -:100B1000020DC100020AFF00020E4C00020E4D0041 -:100B2000020E4E00020E4F00020E5000020E510047 -:100B3000020E5200020E5300020E5400020E550027 -:100B4000020E5600020E5700020E5800020E590007 -:080B5000020E5A00020E5B00C8 -:100B5800E4FE752AFF752B11752C12AB2AAA2BA956 -:100B68002C9000011208226402702DAD060EEDB51E -:100B780007012290000212087185F028F5296228E1 -:100B8800E5286229E529622829FDE5283AA905759D -:0E0B98002AFFF52B892C80C37B007A007900A0 -:010BA600222C -:100BA700AB07AA06AC05E4FDE5116011EAFFAE0547 -:100BB7000DEE2410F582E4340FF583EFF0EBAE056C -:100BC7000D74102EF582E4340FF583EBF0AF050DAD -:100BD70074102FF582E4340FF583ECF0AF0F7A0F22 -:0D0BE7007B10120D107F0A7E00120D94226B -:100BF4008E328F338D348A358B36E4FDF537E5112B -:100C04006012E532FFAE050DEE2413F582E4340FD5 -:100C1400F583EFF0E533AE050D74132EF582E4345D -:100C24000FF583E533F0AF0F7A0F7B13120D10AF7E -:0B0C34000FAD34AB36AA35120CF122D4 -:100C3F008E328F338D348A358B36E4F537E537C3F3 -:100C4F00953450200533E533AE327002053214FF70 -:100C5F00E5362537F582E43535F583E0FD120BA730 -:050C6F00053780D922C9 -:100C7400A907E50D7025907FA5E04480F0E925E003 -:100C84004401907FA6F08D08AF03A9077509018A76 -:0D0C94000A890BE4F50C750D03D322C32271 -:100CA100A907E50D7023907FA5E04480F0E925E0D8 -:100CB100907FA6F08D08AF03A9077509018A0A89FB -:0B0CC1000BE4F50C750D01D322C322DB -:100CCC00907FD6E054FBF0E04408F0300604E0449A -:100CDC0002F07FD07E07120D94907FD6E054F7F08F -:050CEC00E04404F022C9 -:100CF100120C74E50D24FA6010146007240770F3D8 -:0F0D01007F0822E4F50D7F0722E4F50D7F06221F -:100D1000120CA1E50D24FA6010146007240770F38B -:0F0D20007F0822E4F50D7F0722E4F50D7F062200 -:100D2F00C0E0C083C082907FC4E4F05391EF907F06 -:0B0D3F00AB7404F0D082D083D0E0320F -:100D4A00907FD6E030E712E04401F07F147E001273 -:0A0D5A000D94907FD6E054FEF022C5 -:100D6400C0E0C083C082D2015391EF907FAB740185 -:080D7400F0D082D083D0E03200 -:100D7C00C0E0C083C082D2035391EF907FAB740864 -:080D8C00F0D082D083D0E032E8 -:100D94008E388F39E5391539AE38700215384E6002 -:070DA40005120E0080EE2293 -:100DAB00C0E0C083C0825391EF907FAB7402F0D050 -:060DBB0082D083D0E0327B -:100DC100C0E0C083C0825391EF907FAB7410F0D02C -:060DD10082D083D0E03265 -:100DD700AE077F217D0174002EF582E4340FAB82CC -:050DE700FA120D1022BC -:100DEC00500F00C0F9A4B0999282F880988883C6FD -:030DFC00A1868E3F -:010DFF0000F3 -:100E00007400F58690FDA57C05A3E582458370F905 -:010E100022BF -:0E0E1100907F00E510F0907FB57401F0D322C1 -:0E0E1F00907F00E50EF0907FB57401F0D322B5 -:080E2D00907FEAE0F50ED322EC -:080E3500E4F50DD2E9D2AF2271 -:030E3D00D20022BE -:020E4000D322BB -:020E4200D322B9 -:020E4400D322B7 -:020E4600D322B5 -:020E4800D322B3 -:020E4A00D322B1 -:010E4C003273 -:010E4D003272 -:010E4E003271 -:010E4F003270 -:010E5000326F -:010E5100326E -:010E5200326D -:010E5300326C -:010E5400326B -:010E5500326A -:010E56003269 -:010E57003268 -:010E58003267 -:010E59003266 -:010E5A003265 -:010E5B003264 -:101100001201000100000040470510270100010204 -:10111000000109022000010103A0000904000002EF -:10112000FF0000040705820240000007050202409C -:10113000000004030904260341006E0063006800F8 -:101140006F007200200043006800690070007300A7 -:101150002C00200049006E0063002E00280346008A -:10116000690072006D007700610072006500200068 -:101170004600720061006D00650057006F0072004C -:101180006B0073002A0343006F006E006600690065 -:101190006700750072006100740069006F006E00E6 -:1011A000200053007400720069006E006700220383 -:1011B00049006E0074006500720066006100630003 -:1011C0006500200053007400720069006E00670023 -:0211D00000001D -:00000001FF -/***************************************************************************** - * - * whiteheat.h -- ConnectTech WhiteHEAT Firmware. - * - * Copyright (C) 2000-2002 ConnectTech Inc (http://www.connecttech.com/) - * - * 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., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * (10/09/2002) Stuart MacDonald - * Firmware 4.06 - * - * (04/09/2000) gkh - * Updated the firmware with the latest provided by ConnectTech. - * - * (01/16/2000) gkh - * Fixed my intel hex processing tool, so now the firmware actually - * matches the original file (this was causing a few problems...) - * - * (01/15/2000) gkh - * Added debug loader firmware if DEBUG is #defined: - * Port 1 LED flashes when the vend_ax program is running - * Port 2 LED flashes when any SETUP command arrives - * Port 3 LED flashes when any valid VENDOR request occurs - * Port 4 LED flashes when the EXTERNAL RAM DOWNLOAD request occurs - * - * version 1.0 (01/09/2000) gkh - * Original firmware from ConnectTech massaged a little to be program - * readable. - * - *****************************************************************************/ - -#define whiteheat_DATE "20000106" diff --git a/firmware/whiteheat_loader_debug.HEX b/firmware/whiteheat_loader_debug.HEX deleted file mode 100644 index 5633d588613e..000000000000 --- a/firmware/whiteheat_loader_debug.HEX +++ /dev/null @@ -1,403 +0,0 @@ -:10000000000000000302098D0000003303020E709F -:100010000000004303020B000000004B030205B385 -:100020000000010010907FA5E05410FFC4540F445D -:1000300050F50F13E4000110000001101033F5110A -:10004000907FE9E0245EB407004003020300012032 -:1000500000000120107C900128F82828730201BCC0 -:100060000201BC02010001300000013010910201C8 -:100070003D02015302016F02019A907F000001408E -:100080000000014010E511F0907FB57401F0907F01 -:10009000B4E04402F0000150000001501002037C63 -:1000A000907F92E0FFC4540F907F00F090000160B9 -:1000B00000000160107FB57401F0907FB4E044024D -:1000C000F002037C1200017000000170100A8950D8 -:1000D00007E4907F00F08006907F00740F0001809D -:1000E0000000018010F0907FB57401F0907FB4E0C3 -:1000F0004402F0020300019000000190107C907F08 -:10010000EAE0F50F02037C907F007407F00001A085 -:10011000000001A010907FB57401F0907FB4E0441E -:1001200002F07FE87E0001B0000001B01003120D64 -:10013000D5D206120D0D02037C907FEAE00001C0CB -:10014000000001C010752900F52AA3E0FEE4EE428C -:1001500029907FEEE00001D0000001D010752B0047 -:10016000F52CA3E0FEE4EE422B907FE8E00001E0F6 -:10017000000001E01064C060030202C9E52C452BB9 -:10018000700302037C0001F0000001F010C3E52CB5 -:100190009440E52B94005008852B2D852C000200FF -:1001A00000000200102E8006752D00752E40907FF5 -:1001B000E9E064A370000210000002101034F53171 -:1001C000F532C3E532952EE531952D505C000220C5 -:1001D0000000022010E52A2532F582E5313529F5A7 -:1001E00083E0FF740000023000000230102532F579 -:1001F00082E4347FF583EFF00532E532700002408F -:10020000000002401002053180D0E4F531F532C320 -:10021000E532952EE5000250000002501031952D78 -:10022000501874002532F582E4347FF583000260B3 -:10023000000002601074CDF00532E5327002053125 -:1002400080DDAF2AAE000270000002701029AD2ED2 -:100250007A7F79007B00120BF4907FB5E500028075 -:1002600000000280102EF0E52E252AF52AE52D3516 -:1002700029F529C3E500029000000290102C952E6C -:10028000F52CE52B952DF52B907F92E0FF0002A039 -:10029000000002A010C4540F752F00F530D3940055 -:1002A000E52F9400500002B0000002B0100C907FC7 -:1002B000B4E020E1030201E780F4907FB40002C0C3 -:1002C000000002C010E020E2030201E780F4907F0A -:1002D000E8E06440600002D0000002D01003020396 -:1002E0007CE52C452B700302037CE4907F0002E048 -:1002F000000002E010C5F0907F92E0FFC4540F753B -:100300002F00F530D30002F0000002F0109400E559 -:100310002F94005009907FC4E030E1098000030071 -:100320000000030010F7907FB4E020E3F9907FC550 -:10033000E0752D00F500031000000310102E907FD3 -:10034000E9E064A3703890206BF0F531F5000320EC -:10035000000003201032C3E532952EE531952D5073 -:100360003474C025320003300000033010F582E4FD -:10037000347EF583E0FFE52A2532F582E50003406F -:100380000000034010313529F583EFF00532E532E6 -:1003900070020531800003500000035010D0AF2AD6 -:1003A000AE29AD2E7A7E79C07BC0120C800003602E -:1003B0000000036010E52E252AF52AE52D3529F5E4 -:1003C00029C3E52C95000370000003700D2EF52C59 -:1003D000E52B952DF52B0202D4C300000000037D10 -:1003E000012200000000037E10907FE9E07003020C -:1003F00004561470030204D22400038E0000038EFE -:1004000010FE700302054624FB70030204501470B2 -:100410000300039E0000039E1002044A14700302AE -:10042000043E147003020444240003AE000003AE33 -:100430001005600302059A120E7B40030205AB9083 -:100440007F0003BE000003BE10EBE024FE60161424 -:100450006040240270697411900003CE000003CE46 -:10046000107FD4F07400907FD5F00205AB907FEA46 -:10047000E00003DE000003DE10FF120B588B268A1B -:10048000278928EA496011AE020003EE000003EE5E -:1004900010EE907FD4F0AF01EF907FD5F00205AB66 -:1004A000900003FE000003FE107FB4E04401F00260 -:1004B00005AB907FEAE0FF120C00040E0000040E72 -:1004C000103F8B268A278928EA496011AE02EE90F8 -:1004D0007F00041E0000041E10D4F0AF01EF907FD7 -:1004E000D5F00205AB907FB4E000042E0000042E8E -:1004F000104401F00205AB907FB4E04401F0020526 -:10050000AB00043E0000043E10120E520205AB1276 -:100510000E600205AB120AF70200044E0000044E02 -:100520001005AB1208F10205AB120E7D4003020567 -:10053000AB00045E0000045E10907FE8E0247F6062 -:10054000241460312402705BA200046E0000046E6B -:100550001000E433FF25E0FFA202E4334F907F0058 -:10056000F000047E0000047E10E4A3F0907FB574D8 -:1005700002F00205ABE4907F0000048E0000048EC0 -:1005800010F0A3F0907FB57402F00205AB907FEC01 -:10059000E000049E0000049E10F45480FFC4540F39 -:1005A000FFE054072F25E024B40004AE000004AEA1 -:1005B00010F582E4347FF583E054FD907F00F0E491 -:1005C000A30004BE000004BE10F0907FB57402F0DA -:1005D0000205AB907FB4E044010004CE000004CEDD -:1005E00010F00205AB120E7F40030205AB907FE8CE -:1005F000E00004DE000004DE1024FE601D24026022 -:10060000030205AB907FEAE0B40004EE000004EEC4 -:10061000100105C2000205AB907FB4E04401F00276 -:10062000050004FE000004FE10AB907FEAE0703885 -:10063000907FECE0F45480FFC400050E0000050E2E -:1006400010540FFFE054072F25E024B4F582E43462 -:100650007F00051E0000051E10F583E4F0907FEC7E -:10066000E05480FF131313541F00052E0000052EC5 -:1006700010FFE054072F907FD7F0E04420F0806E09 -:100680009000053E0000053E107FB4E04401F0807C -:1006900065120E815060907FE800054E0000054E07 -:1006A00010E024FE601824027054907FEAE0B40148 -:1006B0000400055E0000055E10D2008049907FB402 -:1006C000E04401F08040907FEA00056E0000056E76 -:1006D00010E07020907FECE0F45480FFC4540FFFD2 -:1006E000E000057E0000057E1054072F25E024B4AD -:1006F000F582E4347FF583740100058E0000058ED9 -:1007000010F0801A907FB4E04401F08011E4902052 -:100710006A00059E0000059E10F01201005007902F -:100720007FB4E04401F0907FB40005AE000005AE58 -:1007300004E04402F0000000000005B201220000C5 -:10074000000005B310C0E0C083C082C085C084C073 -:1007500086758600C00005C3000005C310D0C00028 -:10076000C001C002C003C006C007907FA50005D32A -:10077000000005D310E030E206750D0602067F90FA -:100780007FA5E020E10005E3000005E3100CE50D86 -:1007900064026006750D0702067FAF0DEF0005F3DA -:1007A000000005F31024FE604814602C24FE6077DE -:1007B00024046003020006030000060310067FAB5A -:1007C00009AA0AA90BAF0C050C8F827583000613CA -:1007D000000006131000120785907FA6F0E50C6557 -:1007E00008705E750D000623000006231005805971 -:1007F000907FA6E0AB09AA0AA90BAE0C8E000633C7 -:100800000000063310827583001207B2750D028056 -:1008100040E50824FE0006430000064310B50C071F -:10082000907FA5E04420F0E50814B50C0A000653BB -:100830000000065310907FA5E04440F0E4F50D90D1 -:100840007FA6E0AB090006630000066310AA0AA9B0 -:100850000BAE0C8E827583001207B2050C00067376 -:100860000000067310800A907FA5E04440F0E4F594 -:100870000D5391DFD0000683000006831007D006D9 -:10088000D003D002D001D000D0D0D086D0000693C3 -:10089000000006930A84D085D082D083D0E0320055 -:1008A0000000069D10C204D205E4F525C203C20073 -:1008B000C202C201120006AD000006AD100E74D2D5 -:1008C000E843D820907FAB74FFF0907FA90006BD6D -:1008D000000006BD10F0907FAAF05391EF907F9535 -:1008E000E044C0F0900006CD000006CD107F937468 -:1008F00030F0120A1975244875239275220006DD1E -:10090000000006DD1000752100E4FFFE7E0590204A -:10091000687401F0A30006ED000006ED10DEFC7E19 -:10092000007F05907FAFE04401F0907FAE0006FDB0 -:10093000000006FD10E0440DF0D2AF120E68300149 -:100940000AE490206900070D0000070D10F0120363 -:100950007EC20130041A120E775013120900071DCF -:100960000000071D1000300007907FD6E030E7F34D -:10097000120D8B120E00072D0000072D1079C203F7 -:100980007FFF7EFF7DFF7CFF782112081D00073D61 -:100990000000073D107B007A0079007800C3120840 -:1009A0000C701B752400074D0000074D104875237F -:1009B00092F522F5216325FF902068E52500075D6B -:1009C0000000075D0EF0A37401F0A3F0A3F012087D -:1009D000FF809B000000076B012200000000076CF5 -:1009E00010BB010689828A83E0225002E722BBFE07 -:1009F0000200077C0000077C09E32289828A83E4E5 -:100A0000932200000000078510BB010CE58229F548 -:100A100082E5833AF583E0225000079500000795B0 -:100A20001006E92582F8E622BBFE06E92582F8E2F7 -:100A3000220007A5000007A50DE58229F582E583C0 -:100A40003AF583E493220000000007B210F8BB01DE -:100A50000DE58229F582E5833AF583E8F00007C2C7 -:100A6000000007C210225006E92582C8F622BBFE0C -:100A700005E92582C80007D2000007D202F2220051 -:100A8000000007D410BB0110E58229F582E5833A06 -:100A9000F583E0F5F00007E4000007E410A3E0228E -:100AA0005009E92582F886F008E622BBFE0007F42B -:100AB000000007F4100AE92582F8E2F5F008E222C6 -:100AC000E5832AF5830008040000080408E993F58B -:100AD000F0A3E993220000000000080C10EB9FF542 -:100AE000F0EA9E42F0E99D42F0E89C45F000081CC7 -:100AF0000000081C012200000000081D1008080862 -:100B0000E62FFFF618E63EFEF618E63DFD00082D3E -:100B10000000082D07F618E63CFCF6220000083419 -:100B2000048C348D350000000000083810907F954B -:100B3000E044C0F0E4F536F537C3E53795000848E2 -:100B4000000008481035E53695345069EF2537F533 -:100B500082E5363EF500085800000858108374FFFF -:100B6000F0F46002C322EF2537F582E5360008680D -:100B700000000868103EF583E4F06002C322EF2510 -:100B800037F582E53600087800000878103EF583D6 -:100B900074AAF064AA6002C322EF2537F500088822 -:100BA000000008881082E5363EF5837455F06455E0 -:100BB0006002C322AD000898000008981037E5379E -:100BC0002FF582E5363EF583EDF0FCAC050008A874 -:100BD000000008A810ED6C6002C3220537E53770ED -:100BE000020536808C0008B8000008B810E4F5361D -:100BF000F537C3E5379535E536953450270008C8F5 -:100C0000000008C810EF2537F582E5363EF583E091 -:100C100065376002C30008D8000008D81022EF250D -:100C200037F582E5363EF583E4F00537E50008E860 -:100C3000000008E808377002053680CED3000000B7 -:100C4000000008F001220000000008F10E907F0073 -:100C5000E510F0907FB57401F0D32200000008FF8A -:100C6000012200000000090009907FD6E04480F0D6 -:100C7000807400000000097D10438701000000001F -:100C800000000000000000002200098D0000098D16 -:100C90000C787FE4F6D8FD75813A0209D400000093 -:100CA000000009991002069DE493A3F8E493A34081 -:100CB00003F68001F20009A9000009A91008DFF479 -:100CC0008029E493A3F85407240CC8C3330009B95E -:100CD000000009B910C4540F4420C8834004F456DE -:100CE000800146F6DF0009C9000009C910E4800B45 -:100CF0000102040810204080900E2DE47E0009D9E6 -:100D0000000009D910019360BCA3FF543F30E509EE -:100D1000541FFEE4930009E9000009E910A36001F3 -:100D20000ECF54C025E060A840B8E493A30009F9B1 -:100D3000000009F910FAE493A3F8E493A3C8C5826C -:100D4000C8CAC583CA000A0900000A0910F0A3C86E -:100D5000C582C8CAC583CADFE9DEE780BE000A19BA -:100D600000000A1910E4907F9CF07F0AFE120DD556 -:100D7000907F967489000A2900000A2910F0907F5C -:100D80009C74CFF07FF47E01120DD5907F000A395C -:100D900000000A391096E054FEF07F0A7E00120D22 -:100DA000D57F057E00000A4900000A4910120DD5C2 -:100DB000907F96E04402F0E0547FF07F05000A59EE -:100DC00000000A59107E00120DD5907F96E0444035 -:100DD000F07F057E00000A6900000A6910120DD537 -:100DE000907F96E054BFF07F327E00120D000A79AA -:100DF00000000A7910D5907F96E04440F07F327E63 -:100E000000120DD522000A8900000A8910753301ED -:100E1000E533601B7F01120E187F007E0E000A99D9 -:100E200000000A99107D007C01120834E433F53388 -:100E300070057F0F12000AA900000AA9100E18E51C -:100E400033601B7F02120E187F007E807D000AB97E -:100E500000000AB910007C80120834E433F53370C6 -:100E6000057F0F120E000AC900000AC91018E533E9 -:100E7000601B7F03120E187F007E207D40000AD980 -:100E800000000AD9107C5B120834E433F533700596 -:100E90007F0F120E18000AE900000AE90DE5336021 -:100EA00005E4FF120E18E53324FF000000000AF6E7 -:100EB0000122000000000AF708907FEAE0F510D355 -:100EC0002200000000000AFF0132000000000B00B9 -:100ED00010020DA500020DEC00020D7000020DBD08 -:100EE00000000B1000000B1010020E0200020AFF9F -:100EF00000020E8300020E8400000B2000000B2075 -:100F000010020E8500020E8600020E8700020E8877 -:100F100000000B3000000B3010020E8900020E8A18 -:100F200000020E8B00020E8C00000B4000000B40F4 -:100F300010020E8D00020E8E00020E8F00020E9027 -:100F400000000B5000000B5008020E9100020E92A0 -:100F50000000000000000B5810E4FE752BFF752CFC -:100F600011752D12AB2BAA2CA9000B6800000B6881 -:100F7000102D9000011207856402702DAD060EED54 -:100F8000B5000B7800000B781007012290000212C8 -:100F900007D485F029F52A6229000B8800000B8808 -:100FA00010E529622AE52A622929FDE5293AA905E1 -:100FB00075000B9800000B980E2BFFF52C892D80E7 -:100FC000C37B007A0079000000000BA6012200001C -:100FD00000000BA706AB07AA06AC050000000BAD8E -:100FE00010E4FDE5116011EAFFAE050DEE2410F5E9 -:100FF00082000BBD00000BBD10E4340FF583EFF051 -:10100000EBAE050D74102EF582000BCD00000BCD5C -:1010100010E4340FF583EBF0AF050D74102FF5825B -:10102000E4000BDD00000BDD10340FF583ECF0AFB6 -:101030000F7A0F7B10120D517F000BED00000BEDAE -:10104000060A7E00120DD50000000BF301220000FD -:1010500000000BF40A8E338F348D358A368B3700BF -:1010600000000BFE10E4FDF538E5116012E533FFDA -:10107000AE050DEE24000C0E00000C0E1013F582D0 -:10108000E4340FF583EFF0E534AE050D74000C1E6B -:1010900000000C1E10132EF582E4340FF583E534A6 -:1010A000F0AF0F7A0F000C2E00000C2E107B1312E5 -:1010B0000D51AF0FAD35AB37AA36120D32000C3ED5 -:1010C00000000C3E0122000000000C3F028F2900AE -:1010D00000000C4110E4F52A752BFF752C11752DBD -:1010E00032AB2BAA2C000C5100000C5110A92D90F2 -:1010F0000001120785B4031DAF2A052AEF000C6119 -:1011000000000C6110B529012212076C7E0029FF36 -:10111000EE3AA90775000C7100000C710E2BFFF55B -:101120002C892D80D47B007A0079000000000C7F90 -:101130000122000000000C800A8E338F348D358A26 -:10114000368B370000000C8A10E4F538E538C3957B -:101150003550200534E534AE33000C9A00000C9A6B -:10116000107002053314FFE5372538F582E4353673 -:10117000F5000CAA00000CAA0A83E0FD120BA705DB -:101180003880D90000000CB40122000000000CB52A -:1011900010A907E50D7025907FA5E04480F0E925B2 -:1011A000E0000CC500000CC5104401907FA6F08D36 -:1011B00008AF03A9077509018A000CD500000CD5FA -:1011C0000D0A890BE4F50C750D03D322C322000030 -:1011D00000000CE210A907E50D7023907FA5E04404 -:1011E00080F0E925E0000CF200000CF210907FA6E0 -:1011F000F08D08AF03A9077509018A0A89000D025D -:1012000000000D020B0BE4F50C750D01D322C32277 -:1012100000000D0D10907FD6E054FBF0E04408F084 -:10122000300604E044000D1D00000D1D1002F07F8B -:10123000D07E07120DD5907FD6E054F7F0000D2D2B -:1012400000000D2D05E04404F022000000000D32E6 -:1012500010120CB5E50D24FA601014600724077015 -:10126000F3000D4200000D420F7F0822E4F50D7FD0 -:101270000722E4F50D7F062200000D5110120CE24A -:10128000E50D24FA6010146007240770F3000D6167 -:1012900000000D610F7F0822E4F50D7F0722E4F5C1 -:1012A0000D7F062200000D7010C0E0C083C0829048 -:1012B0007FC4E4F05391EF907F000D8000000D801B -:1012C0000BAB7404F0D082D083D0E03200000D8BE1 -:1012D00010907FD6E030E712E04401F07F147E00EA -:1012E00012000D9B00000D9B0A0DD5907FD6E05497 -:1012F000FEF0220000000DA510C0E0C083C082D225 -:10130000015391EF907FAB7401000DB500000DB556 -:1013100008F0D082D083D0E03200000000000DBD84 -:1013200010C0E0C083C082D2035391EF907FAB74B2 -:1013300008000DCD00000DCD08F0D082D083D0E0A4 -:101340003200000000000DD5108E398F3AE53A15B5 -:101350003AAE39700215394E60000DE500000DE51A -:101360000705120E4180EE2200000DEC10C0E0C017 -:1013700083C0825391EF907FAB7402F0D0000DFCDC -:1013800000000DFC0682D083D0E0320000000E0287 -:1013900010C0E0C083C0825391EF907FAB7410F017 -:1013A000D0000E1200000E120682D083D0E0320070 -:1013B00000000E1810AE077F217D0174002EF5820B -:1013C000E4340FAB82000E2800000E2805FA120D3F -:1013D0005122000000000E2D10500F00C0F9A4B0E3 -:1013E000999282F880988883C6000E3D00000E3DD9 -:1013F00003A1868E00000E400100000000000E4197 -:10140000107400F58690FDA57C05A3E582458370E8 -:10141000F9000E5100000E510122000000000E5292 -:101420000E907F00E50EF0907FB57401F0D322009E -:1014300000000E6008907FEAE0F50ED32200000065 -:1014400000000E6808E4F50DD2E9D2AF22000000DA -:1014500000000E700453D8EF3200000000000E743C -:1014600003D2002200000E7702D3220000000E7982 -:1014700002D3220000000E7B02D3220000000E7D6A -:1014800002D3220000000E7F02D3220000000E8152 -:1014900002D3220000000E830132000000000E84FF -:1014A0000132000000000E850132000000000E86AF -:1014B0000132000000000E870132000000000E889B -:1014C0000132000000000E890132000000000E8A87 -:1014D0000132000000000E8B0132000000000E8C73 -:1014E0000132000000000E8D0132000000000E8E5F -:1014F0000132000000000E8F0132000000000E904B -:101500000132000000000E910132000000000E9236 -:101510000132000000001100101201000100000063 -:1015200040470510270100010200111000001110B2 -:1015300010000109022000010103A00009040000BD -:10154000020011200000112010FF00000407058296 -:101550000240000007050202400011300000113077 -:1015600010000004030904260341006E00630068B4 -:101570000000114000001140106F00720020004375 -:1015800000680069007000730000115000001150E5 -:10159000102C00200049006E0063002E0028034636 -:1015A000000011600000116010690072006D00778A -:1015B00000610072006500200000117000001170D1 -:1015C000104600720061006D00650057006F0072E8 -:1015D0000000118000001180106B0073002A03438B -:1015E000006F006E0066006900001190000011900D -:1015F000106700750072006100740069006F006E72 -:10160000000011A0000011A010200053007400720F -:101610000069006E00670022030011B0000011B0E5 -:101620001049006E0074006500720066006100637E -:10163000000011C0000011C01065002000530074AC -:1016400000720069006E0067000011D0000011D028 -:091650000200000000000000008F -:00000001FF -/***************************************************************************** - * - * whiteheat.h -- ConnectTech WhiteHEAT Firmware. - * - * Copyright (C) 2000-2002 ConnectTech Inc (http://www.connecttech.com/) - * - * 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., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * (10/09/2002) Stuart MacDonald - * Firmware 4.06 - * - * (04/09/2000) gkh - * Updated the firmware with the latest provided by ConnectTech. - * - * (01/16/2000) gkh - * Fixed my intel hex processing tool, so now the firmware actually - * matches the original file (this was causing a few problems...) - * - * (01/15/2000) gkh - * Added debug loader firmware if DEBUG is #defined: - * Port 1 LED flashes when the vend_ax program is running - * Port 2 LED flashes when any SETUP command arrives - * Port 3 LED flashes when any valid VENDOR request occurs - * Port 4 LED flashes when the EXTERNAL RAM DOWNLOAD request occurs - * - * version 1.0 (01/09/2000) gkh - * Original firmware from ConnectTech massaged a little to be program - * readable. - * - *****************************************************************************/ - -#define whiteheat_DATE "20000106" diff --git a/firmware/yam/1200.bin.ihex b/firmware/yam/1200.bin.ihex deleted file mode 100644 index 9d34e5680e38..000000000000 --- a/firmware/yam/1200.bin.ihex +++ /dev/null @@ -1,342 +0,0 @@ -:10000000FFF200A5ADFFFE9FFFEFF3CBFFDBFCF29D -:10001000FFF6FF3CBFFDBFDF6E3F6FF17DB4FDBF5C -:10002000DF6F3F6FF70BFFDBFDF2FFF6FFFFFFFF18 -:10003000F0CFFFFFFFFEFFFFDFFFFFFFEFFFFFFF40 -:10004000FDFFFFFFFEFFFFFFFFFFF1FFFFFFFFBF11 -:10005000FFFFF7FFFFFBFFFFFFFCFFFEFFFFFFF0CF -:100060005FFFFFFFFEFFFFFFFFFFFFFFFFFFFFFF41 -:10007000FFFFFFFFFFF7FFFFFFF1FFFFFE7FBFFF67 -:10008000FFFFFFFFFFFFFFFFF7FFFBFFFFFFF09FFB -:10009000FFFFFFFEFFFDFFFFFFFFDFFFFFFFF7FF9B -:1000A000FFFFFBFFFBFFFFFFF0FFFFFFFFFFFFFF77 -:1000B000F7FFFFFBFFFFFFFEFFFFFFEFFFF05FFF1C -:1000C000FFFFFEFFFFEFFFFFFBFFFFFFFFFFFFFF55 -:1000D000FFBFFFFFDFF7FFF1FFFFFFFFFFFFFFFFA6 -:1000E000FFFFFFFFFFFBFEFFFFFFFFFFF0FFFFFF34 -:1000F000FFFEFFFFFFFFFFFFFFFFFFFFFFFFFFEB25 -:10010000FFFFFFFDFFBFF1FFFFFFFFDFFFFFFFFB73 -:10011000FFFFFFFFFFFFFFFFFFFFFFF06FFFFFFF8E -:10012000FEFFFFFFFFFFFFFFFFFFDFFFFFFFFFFF00 -:10013000FFFFF7FFFFF1FFFFF7BFE7FFFFFFFFFB49 -:10014000FFFFFFFFFFFF77FFFFFFF0FFFFFFFFFE57 -:10015000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:10016000FFFFFFFFF1FFFFFFFFFFFFFFFFFFFFFFAD -:10017000FFFFFFFFFFFFFFFFFFF01FFFFFFFFEDBA3 -:10018000FFFFF5A5FD4B6EEF3332DDD34AD692FE6D -:10019000B33FBDF1FADBFEF7F696BDBDFFBDFFED47 -:1001A0007F6B7FFBDFFEFBFE90CFFFFFFFFEBEEF0E -:1001B000FFFFDB5FF6FFF68FFDA5DDFFFFFFFF6FA3 -:1001C0007FDBF1FCBFFF6FFFEFFC5B5DDADFF4FF6D -:1001D000F2FFFDBFFFFFFFD01FFFFFFFFEFFFFFF8E -:1001E000FFFBEFB7FC33FFFBFF046AF33C36FFF085 -:1001F0000FF10FFFFFFFF315720FF16FFFFE943F3A -:10020000FFFFFF7BFFFFF0FFFFFFFFFEFFFFFFF0A1 -:10021000F7EFB7FC33FFFFFF046AF33C36FFF00F44 -:10022000F10FFFFFFFF315738FF26FFFFE943FFF97 -:10023000FFFF7D9FFFF00FFFFFFFFEFFFFFFFF9E11 -:10024000FFFCEFD3FBFF7FF55FFE59FFFFFFFCF1E3 -:10025000FE7FFFFFFA17FFE7EFEFFFFF3FF1FFFF22 -:10026000FFFFFFFFF0FFFFFFFFFEF5FFBFFFFCEA10 -:10027000FFF0FFFFBFF93FB1EFFFD7FFFBFFF0FF3C -:10028000FFF3FFDFFF7BFFFDFFF6FFBFFFFFBFFFB9 -:10029000FFFFDAF0FFFFFFFFFEF2C00100000202E5 -:1002A0000202004040401000000020000001000059 -:1002B000000000001900040400000000000000100D -:1002C000003CF0AFFFFFFFFEFDBFFFFFFBFFFDFFA8 -:1002D000FF7FFFFFBFFFEFFFFFFDFFFFF1FFDFFF2E -:1002E000FFFFFFFFFFBFFEFFFFFEFFFFFFFFFFDF80 -:1002F000DBF06FFFFFFFFEF0BFDFFF7FFFFFFFFFC1 -:10030000DFDFFFEFFF9EEFFFFF7FFFF1EFFFFFFF5C -:10031000F7FABFFFFFFE47EFFFBDF6FFFFDFF5F087 -:10032000F0EFFFFFFFFEF8300000000400010208BC -:1003300016000000800001020080010C0200000194 -:100340000000200000060020001000140004C1F08E -:100350002FFFFFFFFEFFFFFFFFFFFFFFFBFFFF7F02 -:10036000ECFFFFFAFFBFFF6FFFE1FFFFFFFFBDFEE6 -:1003700046FFEF7FCDDFFFFFFDFFBDFF7F7FF04F2B -:10038000FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7E -:10039000FFFFFFFFFFFFFFFFF1FFFFFFFFFFFFFF7B -:1003A000FFFFFFFFFFFFFFFFFFFFFFFFFFF00FFF5C -:1003B000FFFFFEFFFFFFFDA4BCCD6D6B6F5BDC3369 -:1003C0005AF6F7F6B33FBDC1FA5AF6F6B6F7FFBDD7 -:1003D000BB3CCECF34EF33BBCCFFFFFFF04FFFFF72 -:1003E000FFFEBFFFFFFFDBFFF6D6FFFDFDBFFFAD4A -:1003F000BFF97F6FFCDBF1FDBFFF6FFFFFDADBFCB6 -:10040000DBFF768FF6FFCDABFEFBFFD0FFFFFFFFDC -:10041000FEFF9FFFF420AF6D0BC17BFFFFFFCBFF03 -:100420003FF0EF7F0FF1C33CFFFFFFFFFFFFF80B33 -:100430001D6A64056B9901FFFDEFF02FFFFFFFFEC2 -:10044000FFFFFFF4002FCC0BC37FFFFFFF0ADFBFCE -:10045000FD7FFFFFF1C3BFFFFFFFFFFFFFF04A0E6D -:10046000966402979910FFFFFFF0DFFFFFFFFEFF8A -:10047000FFFFFE84F9D527F17FFFF8EBDFF3CF3FD5 -:100480001FFFF711FFCFFFFE67FFFFFFFFC4FFFF56 -:10049000B3A1FFF9E0FFFFFFF0EFFFFFFFFEF5FF65 -:1004A000FFFB7FE0FFC7FE7F3FFFFD778D7F0FFFE4 -:1004B000C3FFF1BF8FCFFFFFDD7BFFF6FAF7FF40F1 -:1004C0009FF97FD8FFFFFAF01FFFFFFFFEF1C0008A -:1004D00000030000000000000000400010000010B9 -:1004E00000010010202000001000040105000000A1 -:1004F00000404000003CF01FFFFFFFFEFDBFFFFF7C -:10050000FFFFFE7F7FFFEFFFFFDFFFFFDFFFEFF764 -:10051000F1FFFFFFFFDFFFFFF7FFFFFFFCFDFF7FA6 -:100520007EFFFFFFDBF06FFFFFFFFEF0BBFFFFFF73 -:10053000FFFFFEEBFD6FFFF7FEF57FFFFF7FBFB113 -:10054000FFFF9FBFFBFFFEFFFEFFF7EBDFBF5FDD9F -:10055000FFDBFDD0F06FFFFFFFFEF8302000420010 -:100560000000301804080921828002000800010000 -:1005700000000C2010001100448400202084800022 -:100580000000C1F0DFFFFFFFFEFFF7FFFBDDF9FF1B -:10059000DAFFDCDDFCFBFFBFFB3ED796FE61F7FF19 -:1005A0007FFF3FFDFFDFCFF7DFF7BFFDFFFEEFEF80 -:1005B000FEFFF07FFFFFFFFEFFFFFFFFFFFFFFFFDC -:1005C000FFFFFFFFFFFFFFFFFFFFFFFFF1FFFFFF49 -:1005D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:1005E000FFF02FFFFFFFFEFFFFFFF3BDFD4B74CFBA -:1005F000735BCB3BDFFEF7FED375ACA1FBDFFEF7F1 -:100600007696B524BDA5AD492F692B525BBDFFFF82 -:10061000F0CFFFFFFFFEBFFFFFFFDBFFF6FEFFCCCB -:10062000A7FBADFF7F6FFF6D7FDBF1FDBFFF6FFFAE -:100630006FFFDBFFDBFFF697F6FFB5B5FFFFFFD0DF -:10064000EFFFFFFFFEFFFFFFFDA5BC43FC7C03E7C0 -:10065000FFFF20FFFFFFCCFD7DF1FFFFFFFFD5591E -:10066000BA56666AAD9AA99A97A5AABBFFFFF00F82 -:10067000FFFFFFFEFEFBFFFDF7FD43FFFD6BE7FF06 -:10068000FFDFFFFFFFFFFF3FF1FFFFFFFFD559B582 -:10069000A6666AAD9AA9996B5AAAFFFFB7F03FFF09 -:1006A000FFFFFEFFFFFFFE9CF7FDD241FFFFF27F41 -:1006B0008FFFFF3DF3FF17F1FFFFFFFFFF7FDFFC21 -:1006C0008F38FFEF23FFFBF7C8FFFFFFF09FFFFF0F -:1006D000FFFEF57FFFFDFFE4FFEBFFCFBFFAFFABAF -:1006E000EFFFFBFFF3FD61FFFFFFFFFAFFFBFD0DD7 -:1006F000FFFEFF437FFEBFD0FDFFFAF03FFFFFFF8D -:10070000FEF3C0000000020002010060C0400000D3 -:100710000000340400010000000000000008880010 -:100720000003000040004000003CF03FFFFFFFFEE0 -:10073000FD3FFFFFFFFFFFFF7F7FBFFFFFFFFFFFCB -:10074000FFFFFFF7F1FFFFFFFFFFF7FFFFFFFDFFD9 -:10075000FFFFFFFEFE5FFFFFCBF0DFFFFFFFFEF0BE -:10076000FFFFFDFFEFE3DEEED9C593FFFFFEFEFFC7 -:10077000FBEEFEF1FFFFFFFFFFFDFFBFF7FFFF7F77 -:10078000AFBDDFDFFBF3F3F0F0AFFFFFFFFEF834A8 -:10079000000661001801A0051700200528200000B0 -:1007A0000500410000400009000120868208400346 -:1007B000803070081402C1F0CFFFFFFFFEFFFFFF83 -:1007C000FFFFBDEFFBFFFFFB9C7FEFDFFFBFEBDE1B -:1007D000FFC17FFFFB7FFFFFFF5FFFFFFFDFBFEF7B -:1007E0003FF78FEF7FFFF07FFFFFFFFEFFFFFFFF71 -:1007F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:10080000F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:10081000FFFFFFFFFFF03FFFFFFFFEFFFFFFFFBDFA -:10082000DFEF7D6D2B5A5DD2DFF692B6B2B3ACA18D -:10083000FBDFFEF1EEF5F6BC6BBD7DAF1AEF5F6B33 -:10084000C6FFFFFFF05FFFFFFFFEBFFFFFFFDBFF05 -:10085000F6FFF6B7FDADFDBFF36FFF6FFFDBD1FD18 -:10086000BFFF6FF56BBC5B3CDAEF16AF16FFCDAB8D -:10087000FF6FFFD0FFFFFFFFFEFFFFFFFCBFFFFF8B -:10088000FF6C0310C1F3FFF33AF3CAFFAFF1FFFFB0 -:10089000FFFFD996A665A6666A9569696A5A5AFFE6 -:1008A000FF5FF01FFFFFFFFEFFFFFFFFBFFFFFFF28 -:1008B000EA0F50C3F37FFFF3F3C3FFAFF1FFFFFF76 -:1008C000FFD996A665A6666A9569696A5A5AFFFFB6 -:1008D000FFF03FFFFFFFFEFFFFFFFFD7FFFF5FC1FE -:1008E0003FF75EF5CE9E5F3F17FFF3E1FFFFFFFF8F -:1008F000D8FFFAFE67FFFEBF5AFFFFAFF5FFFFFF0D -:10090000F02FFFFFFFFEF5FFFFFDFFF7FFFD4E3D60 -:100910003FE70BBF8FF9FFEBE3FFE1FFFFFCFFC7F2 -:100920009FFF3E39E5FFCF9BF9FFFFC5FFFFFAF0C0 -:100930005FFFFFFFFEF3C00000000000000040006A -:100940000000006000000000000100000020002006 -:10095000000110080000000000000000003CF04F03 -:10096000FFFFFFFEFDBFFFFFFFFFFFFFFEFFFFBF1B -:100970003FFFFFBFFFFFFFFBF1FFFFFFFFF7FFF7A9 -:10098000FFEDFFFBFEFF7FFF7FDFFFFFDDF03FFF9F -:10099000FFFFFEF0FFFFF3FFF7FFFE5FFFF7FFFF34 -:1009A000DFFFFFFFF7FE7BF1FFFDFDFFDFDFFF7DD8 -:1009B00073F9FFC37EFEFFEFD7FFCFD0F06FFFFFCD -:1009C000FFFEF83000004004000141200004000256 -:1009D000D50900028002010000000A04000700019E -:1009E000500180026140410C1408C1F09FFFFFFFDD -:1009F000FEFFFFFFFEFFFFFFFEDFCB5FFEEFFFFE10 -:100A0000FF3FFF7FFDC1FFFF7FFFDFFDFCFDF7EE36 -:100A1000FFFF4EFFDFCFDBEBFFFFF01FFFFFFFFE0F -:100A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:100A3000FFFFFFFFF1FFFFFFFFFFFFFFFFFFFFFFD4 -:100A4000FFFFFFFFFFFFFFFFFFF02FFFFFFFFE7F16 -:100A5000FFFFFFFDFFFFFFFFFFFFFFFFDFFFFFFFC8 -:100A6000F7FBFFF1FFFFFFFFFFFFFFFFFFFFFFFFB0 -:100A7000FFFF7FFFFFFF7FFFF01FFFFFFFFEDDFF98 -:100A8000FFFFA5FF6F6BE96FDACAFBDDEEF7F6B289 -:100A9000B3A4A15B5BF6D7F4F77BBDBDADCFEF7F11 -:100AA0006B7F3BDFDBFFFF30CFFFFFFFFEBFFFFFB2 -:100AB000FFFFFFF6FE96FFFDB5FDBFAD7FFF6FFFA9 -:100AC000DED1ADADE9FFF1ECEFDE3FCBFFF6FF325B -:100AD000FFC5BDFFFFFFD0BFFFFFFFFEFEFBFFF422 -:100AE00028BFFFFDFBD3FFFF42FFFFFFEAB3FCC3BC -:100AF000C1FF33FFC0156B70FFF0F24FFFFC3E9754 -:100B00003CFFFFFDEFF0BFFFFFFFFEFFFFFFFE78A2 -:100B1000BFFFFDF3EF55FF7EFFFFFFEAB3FCC3C14C -:100B2000FF33FFC0156FFF0FF0F00FFFFC3D6BC3ED -:100B3000FFFFFEF7F0CFFFFFFFFEFFFFFFFFFCFF11 -:100B4000FF23F87FFF4EFFFFFFFBF917FFF6F1FFD2 -:100B5000CFEFFFFF13DFE62FC7FFFFE7C1FDFFFE6B -:100B6000FFFFFFF04FFFFFFFFEF5FFFFFFFEAEFFB1 -:100B7000FF7F3B3FFC7FFCEFFFFCE27BFFF1FDEDE5 -:100B8000EFFFFF3573FFFFFEFAFFFFFFFEBFFFFF22 -:100B9000FFFAF08FFFFFFFFEF1C000000000000031 -:100BA000000000800000400000000C0401404000F4 -:100BB00000302804000800000001000100000000CF -:100BC00038F00FFFFFFFFEFDBFFFFFFFFFFBFF7FC2 -:100BD000FFFF9FFFFFFFFFFFFFFFFFF1FFDFDFFFD3 -:100BE000FFFFFFEDFFFDFFFFFFFFFFBFBFFFFFC3E5 -:100BF000F03FFFFFFFFEF0BFFDFFBFFFFFFDFFFF68 -:100C0000FFFFFFFD7BFF7FFFBDFFF1EFFFFFFDDF7C -:100C1000FDFBFFFFBFBEFFCD7FFCF7F76FBFD8F036 -:100C2000EFFFFFFFFEF830000000040000A000000E -:100C3000C0000020340000000C810020A42000101F -:100C400008044808004093001000381820C1F03F05 -:100C5000FFFFFFFEFFFBFFFFB9DFFEB3FFFFE7FD76 -:100C6000FFFF3BFF7FFFBFFFC1FFFCFFFF3F77FEA2 -:100C7000FECFFFBFFDBFFFFEEDF2FDF7FFF02FFF40 -:100C8000FFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:100C9000FFFFFFFFFFFFFFF1FFFFFFFFFFFFFFFF72 -:100CA000FFFFFFFFFFFFFFFFFFFFFFFFF0BFFFFFA3 -:100CB000FFFEFFFFFFF3ADCFEF70C9733BDF5B4A71 -:100CC000F6B7FED7F5BCC133CAD6B76EF7FBBDC5C4 -:100CD00024CF6F2F4D2BBA5AFFFFFFF0AFFFFFFF5E -:100CE000FEBFFFFFFFFFF6F6D7FFFFADBDFFFFFF23 -:100CF000EFF77FFC5BB1FDBD756FEF6AFD5BFBDB62 -:100D00003ABF8E9FFFBFFDFF6FFFD06FFFFFFFFE5B -:100D1000FFBBFFF03FFFFFFDFB7FDEFFFF5AD6BFAB -:100D2000D82ABFBFF1E5FFCCC0A970FFF33C3CFD62 -:100D300057FD980300C3FFFFFFF0AFFFFFFFFEFF6B -:100D4000FFFFFF3DBFFFFDFBFFDBFFFF0FFC3FD8B9 -:100D50002ABFBFF1EFFFCCC096BEFFF33FFFFD57A8 -:100D6000FD990FFFC3FFFFFFF04FFFFFFFFEFFFFE7 -:100D7000FFF1E7FFFFF38E7BFFA8FFDF7F8E787325 -:100D8000FFF15162FFFC4BFFF3FF7ECFF9FFFDFF48 -:100D9000FF7FFFE0FFFFFFF04FFFFFFFFEF5FFFFCC -:100DA000FBFDAEFFFCFE6F3FF8FD77AFFE37FE7B2D -:100DB000FFB18CFFEFFDF8E7BFFFF1FE3EF7FE95B8 -:100DC0003EBFFFFFFFFAF0BFFFFFFFFEF1C00000D4 -:100DD0000104000000008002000010001000100854 -:100DE0004180100000081084000C040261000081A2 -:100DF000000000003DF07FFFFFFFFEFDBFFFFFFF93 -:100E0000FFFF7FFFFEFDBFFFFFFFFFFFFFFFFFF1C3 -:100E10007FBFF77FEFFFEFFFF7FDFFFFFD7FFFBE17 -:100E2000DFFFFFD9F0BFFFFFFFFEF0BBFF7FFBFF3F -:100E3000FBFFBFFFF37FFBFDEB7FDFFAFFDEF0ED93 -:100E4000FFB1F7F91FB55BFE7EF7BEFD7F5FB5F71B -:100E5000FFFFD0F04FFFFFFFFEF830010007420117 -:100E6000006A185080000002400101200101241492 -:100E700021100208070800401080580084801810D4 -:100E800040C1F0BFFFFFFFFEFFFFFFF7FFDBB7F33F -:100E9000DF7CF874FFFF6F7D3F7EEC7FC1F5FFCFF5 -:100EA0006F9FF9DFBEE5E7FFD7F3DDFBFFFCFFBF78 -:100EB000FFF0FFFFFFFFFEFFFFFFFFFFFFFFFFFF52 -:100EC000FFFFFFFFFFFFFFFFFFFFFFF1FFFFFFFF40 -:100ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:100EE000F02FFFFFFFFED7FFFFFFB4CFEF776F7349 -:100EF0003A4A3ACBD4F72ED6BDBDA13BDFD6F7EEAA -:100F0000D335BDFBBDCEEB2B4D2FBBDAFFFFFEB0C3 -:100F10005FFFFFFFFEBFFFFFFFDF5F36AF3FEDB7B5 -:100F2000F5FDF32BEF77FFFBDAB1BDA377697F4FB8 -:100F3000FFDBFA5BFFF2FEFF96FFFFFEDFFFD0AFA5 -:100F4000FFFFFFFEFFFFFFFD8FFD406F9E835A0FE7 -:100F5000FAC3FFFFFCE97FF301D000FEBFCD3FF0F5 -:100F6000EFFCC50C3FFD680BFFFFFFFEDFF0FFFF4E -:100F7000FFFFFEFFBBFFFD85FFD46F9FC35A0FFF2E -:100F8000FFFFFFFCE97FF301F0FBC2BFFC0037EF7E -:100F9000FCCDBC3FFF0CBFFFFFFFFFFFF05FFFFF7B -:100FA000FFFEFFFFFFFFD9F7D1B77E7FF1E4FDFF22 -:100FB000FBFBFF5FFF7FB1BC0F67EBB83FFFE2FFBA -:100FC000E9FFFDE3FF3F9FC2FFFFFFF09FFFFFFF31 -:100FD000FEF57FFFF03FBCFFD5F5CE3FFEFFFE6D77 -:100FE000FFF1BF7BFFF1FDFF4FFF87FFAEFFB1F8C1 -:100FF000FEFFFF7801B9FFFFFFFAF02FFFFFFFFEB2 -:10100000F3C00000000402130200804000901000B2 -:1010100010000200012080121000400800040000AF -:1010200002000140008000003CF0EFFFFFFFFEFDEA -:101030001FFFFFFF7FFFFFFFFF7FFF7FF7DFF7FF50 -:10104000F7FBEBD1FFFFFFFFEFF7FFFFFBFFFEFF1B -:10105000FF7EFFFBFFFFFFDBF0FFFFFFFFFEF0FF68 -:10106000FFB7EBF7DFFFFEF56BE7EDF73EECFF5464 -:10107000EF6FF1F5AF6FF6FDFFDD7BFFEFBF7FFF99 -:10108000FFF7FFF35FF7D0F0CFFFFFFFFEF8300070 -:1010900080400400812C0424000201C802000224C4 -:1010A0000001B442DC4402159002034839100224C6 -:1010B000A0BA000040C1F0BFFFFFFFFEFFFFFFFF2F -:1010C000FEFCF7F0EEB65DFDF5FFDBF77F7FBEFFC0 -:1010D000C1FEBFFAFA5FFFADFFEFFF7FDF7FFEBF0C -:1010E000B794BFFFFFF09FFFFFFFFEFFFFFFFFFF73 -:1010F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10E -:10110000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:10111000FFFFFFFFF08FFFFFFFFED7FFFFFBB5FFD5 -:10112000EF7CEB2B525B3BDAD4F33696B5BDF1FB8B -:10113000DAEEF6FED335BDDFADCFEF7ECD6BBBDF94 -:10114000FFFFFDB0EFFFFFFFFEBFFFFFFFD35FF626 -:10115000FFF6FFFDADFDFF7FEFFF6F7FDBF1A5A386 -:101160007F6F6B4FFFDBFBCBFFF6FFF4D7FDBFFEBE -:10117000DFFFD0CFFFFFFFFEFFFFFFF7DFFFFFFF27 -:101180003F7FFCE5FF20FEFFFFDF7FFFF17FFFFEDB -:10119000FFF07C3D4FF3C33FFFFF6FC3FF0FFFFF27 -:1011A000AFF02FFFFFFFFEFFFFFBB7E00FFFFF2BAE -:1011B000FF7DBFFFDFFFFFF89F7FFFF155FFFFFFC0 -:1011C000FD7C3CFFF3C33FFFFFEFC3FFDFFFFFFFEB -:1011D000F09FFFFFFFFEFFFFFFFFEFFFFF9FBF7FBF -:1011E000F919478EE79F3F17FFFC81C17EF3D9F9BC -:1011F00073DFF47FFAFFFFFFFB7F77C7FFFFFFF08E -:101200002FFFFFFFFEF5F7FFFBFFF73FFCBF3E3F61 -:10121000ECFF81AFFE4FF3BBFFF07EFF6FFF87FF58 -:10122000BBFFD5FCFF7FFC6FFFEFE7FFFFFAF03F4E -:10123000FFFFFFFEF3C00000000000000000008080 -:101240000030106020000800012080001000040021 -:101250000000000000020080400008203CF06FFF0A -:10126000FFFFFEF5BFFFFFFEFFFFFFFF7FFE3FFF1B -:10127000FFFFFFFFEFFFFFF1DFDFFFFFFF7FDFFF7C -:10128000FDBDFFFFFFFBDFFFFFFFFF5BF0FFFFFF89 -:10129000FFFEF0BFBFBFFFF7FBFFFEEEFAFFFFFF51 -:1012A0003D3BFFFFFEFBF1FFBF7BFFFFEFFFBFFFFB -:1012B000FFFFFFFFFEFFF7EFFFFBD0F0DFFFFFFFB9 -:1012C000FEF83000000000000B10050100080002CD -:1012D000010100001001C8080000000042020000E7 -:1012E000008002000040248000C1F03FFFFFFFFEAD -:1012F000FFFFFFFFF7FDF7FAEFEEF9FDFFF7FEBF87 -:101300001FFD9EFDD1EFFFF77F9FFFEFFFF6FFFE72 -:10131000FE7BFFBDFF7EFFFFFFF03FFFFFFFFEFFF5 -:10132000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:10133000FFFFFFF1FFFFFFFFFFFFFFFFFFFFFFFFCB -:10134000FFFFFFFFFFFFFFFFF0AFFFFFFFFEFFFF0D -:10135000FFF7FFFFFFFF7FFFFFFFDFFDFFFFDFFF67 -:10136000FF5FF1BFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10137000FFFFFFFFFFFFFFF0DFFFFFFFFEFFEFFFBD -:10138000F7FFFFFFFFFFFFFFFF3FFBFFFFEFFBFD4F -:10139000FFF1FFFFFBFFFFFFFFFFFFFFFFFFFFFF6F -:1013A000FFFFFFFFFFFFF02FFFFFFFFEF7FFFFFF35 -:1013B000FFFFFFFFFDFFFFFFFFFFFF7FFFFFE7FFD7 -:1013C000F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:1013D000FFFFFFFFFFF0FFFFFFFFFEFFFFFFFFFF2D -:1013E000FFFFFFFFFFFFFFFFFFFFCFFFFBFFFBF153 -:1013F000FFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:10140000FFFFFFFFF02FFFFFFFFEFFFFFFFFFFFFCC -:10141000FFFFFFFFFFFFFFFF7BFFFFFF7FFFF1FFEE -:10142000FFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:10143000FFFFFFF07FFFFFFFFEFFFFFFEFFFFFFF5C -:10144000FFFFFFFFFFFFFFDF57FFFEBFFBF1FFFFC7 -:10145000FDF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:10146000D7FFF07FFFFFFFFEFFFFFFF7DBFFDBFD96 -:10147000F6FFF6FF3CBCBCBFDF6FEF2FF13CBFBCFB -:10148000BFDF6FFF6FF7DBFFDBFDF6FFF6FFFFFF50 -:1014900001E2EFFFFFFFFEFFFFFFFFFFFFFFFFFF88 -:1014A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:0614B000FFFFFFFFFFFF3C -:00000001FF -/* - * - * File yam1k2b5.mcs converted to h format by mcs2h - * - * (C) F6FBB 1998 - * - * Tue Aug 25 20:24:08 1998 - * - */ diff --git a/firmware/yam/9600.bin.ihex b/firmware/yam/9600.bin.ihex deleted file mode 100644 index 817a34be22cc..000000000000 --- a/firmware/yam/9600.bin.ihex +++ /dev/null @@ -1,342 +0,0 @@ -:10000000FFF200A5ADFFFE9FFFEFFBCBFFDBFEF293 -:10001000FFF6FF9CBFFDBFEF2E3F6FF1FDB4FDBFAC -:10002000FF6FFF6FFF0BFFDBFFF2FFF6FFFFFFFF2E -:10003000F06FFFFFFFFEFFFDDFFFFFFFF7FFFFFF9A -:10004000FBFFFFF7FFFFFFFEFF7FF1FFFEFFBFBFDC -:10005000FFFFFFFFFFF7FFFFFFFEFFFEFFFFFFF0C9 -:10006000EFFFFFFFFEFFFFFFFFFFFFBFFFFFFFF7F9 -:10007000FFFFF7EFFFFFFFFFFFF1FFFFFF7EFFFF37 -:10008000FFFFFFFFDFFFFFFFFFFFFDFFFFFFF0DFD1 -:10009000FFFFFFFEFFFFDFFFFFFFFFFFFFFFFFFF91 -:1000A000FFFFEFFFF3FBFEFFF1FFFDFFFFFFFFFF91 -:1000B000FFFFFFFFFFFFFFFEFFFFFFDFFFF07FFF00 -:1000C000FFFFFEFFFFEFFFFFFFFFFFFFFFFFFFFF51 -:1000D000FFFFDFFFFFFFF7F1FFFFFFDFFFFFFFFF86 -:1000E000FFFFFFFFFFFFFFFEFFFFFFFFF00FFFFF20 -:1000F000FFFEFFFFFFFFFFFFFFFFFFFFFFFF7FFF91 -:10010000FFFFFFFFFFFFF1FFFFFFFFFFFFFFFFF517 -:10011000FFFFFFFFFFFFFFFFFFFFFFF02FFFFFFFCE -:10012000FEFFFFFFFFFFFFFBFFFFFFEFFF7FFFEF84 -:10013000FFEFFF7FEFF1FFEFFF7FFFFFFFFFFFFF0D -:10014000FFFFFFFFFFFEFFFFFFFFF09FFFFFFFFE30 -:10015000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:10016000FFFFFFFFF1FFFFFFFFFFFFFFFFFFFFFFAD -:10017000FFFFFFFFFFFFFFFFFFF0BFFFFFFFFEFFDF -:10018000FFFFFFBDFFEF7FEF7FFBDFD35AFED7D628 -:10019000F77FBDF1BB5DD6F7FE96FFBDAFADBFEFFC -:1001A0007F6B7FFBD6FEF7FF10EFFFFFFFFEBEEF7A -:1001B000FFFFDBFFF6FFF6FFFDBFFDBFFF7FFF7F09 -:1001C000DFDBF1FD35FF6FFF6FFFDBFFCBFFF6FFDE -:1001D000F2FDFDBFFFFFFFD0EFFFFFFFFEFFFFFFC0 -:1001E000FFFFFFFFFFFFFFFFFFFF55FFCCC03FFFFB -:1001F000FFF124F0FFFFCFEF3FFFF0FFFFFFFC3FD9 -:10020000FFFFFFFFFFFFF0CFFFFFFFFEFFFFFFFF3E -:10021000FFFFFFFFFFFFFFFFFF55FFCCC03FFFFFCA -:10022000F100F0FFFFCFDFFFFFF0FFFFFFFC3FFF1C -:10023000FFFF7DFFFFF0FFFFFFFFFEFFFFFFFFFF60 -:10024000FFFFFFFFFFFFFFFFDFFE7FDFFFFFFFF18D -:10025000FFCFFFF3FF97FFFF8FE7FFFFFC71FFFF6B -:10026000FFFFFFFFF0EFFFFFFFFEF5FFBFFFFFFF08 -:10027000FFFFFFFFFFFFE3F7EFFFFFFC7BFFF13F17 -:10028000FFEFFFCFE3E3FFFFFFFF3FFFFFFFBFFFF6 -:10029000BFFFDAF07FFFFFFFFEF2C00000000000AA -:1002A000000000000000000000000000000100004D -:1002B000000000000000000100000200000000003B -:1002C000013CF0AFFFFFFFFEFDBFFFFFFFFFFFFFA1 -:1002D000FFFFFFFFFFDBFFFFFFFFFFFFF1FF9FFFC0 -:1002E000FFFFF7FFEFFFFFFFFFFFFFFFFFFFFFFF36 -:1002F000DBF07FFFFFFFFEF0BBDFFFFFFFFFFFFF35 -:10030000FFFFFFFFFFFFFFEFFBDFBFF1FEFDF7FF8A -:10031000FFFFFFFFFEFFFFFFFFFFFFFFFF77FDF285 -:10032000F01FFFFFFFFEF838000000000000000390 -:100330000000000200900000000C010000042400F6 -:100340004001000000400000000002000001C0F079 -:100350004FFFFFFFFEFFFFFFFFFFFFFFFFFFFFFF5E -:10036000FFFFBFFFFF6FFFDFFFD1FFFEFFFFFFFFBC -:10037000FFFFDFFFFBFFFBEFFFFFEEFFFF7FF0DF85 -:10038000FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7E -:10039000FFFFFFFFFFFFFFFFF1FFFFFFFFFFFFFF7B -:1003A000FFFFFFFFFFFFFFFFFFFFFFFFFFF08FFFDC -:1003B000FFFFFEFFFFFFF5ADFF692AED6BFBDF3AA4 -:1003C000DCF496EEB33D35C1BBDDFEF6FED6B5AD31 -:1003D000BFA5AD492F4F2BDA5FFFFFFFF02FFFFFC7 -:1003E000FFFEBFFFFFFB5BF7F6FFF6FFFDBFFDA5BE -:1003F000F36FF36EFA7BD1FDB5776FE96FFFDBFB2F -:10040000DBDFF6FFF6FFFD3FFEF7FFD04FFFFFFFFC -:10041000FEFF9FFFFF0FFFC03F9C03FFFF8BA5FE6A -:10042000803EC2BFACB124FFFFFFFFFFFF0FFFA361 -:10043000FFFD6BFFFFF0A5FFFFFFF0AFFFFFFFFE2B -:10044000FFFFFFFF0FFFC03FD46BFFFFDBFFFE8608 -:10045000BFC2BF30A124FFFFFFFFCCFF0FFFA3FFF0 -:10046000056BFFFFF0A5FFFFFFF07FFFFFFFFEFF23 -:10047000FFFFFBC7FFC4FFFF7FFFECFE7FDFD8B9A4 -:1004800047FC36C1DFFFFFF9FFF3FFF7FFFCFFFD7D -:100490003FFFFFFF3FFFFFFFF07FFFFFFFFEF5FF86 -:1004A000FFFFFFFEFFFF7EBD3FFF2BFE2FF5A3FCEE -:1004B0005BFE619F7FEFFFFFA7FBFFFFFAFEFF33AD -:1004C000F1FFBFFFFFFFFAF07FFFFFFFFEF1C0006B -:1004D0000000000000000000000000400030240484 -:1004E000000100804000080000000201010002003D -:1004F00000000000013DF02FFFFFFFFEFDBDFFFDEE -:10050000FFFFFFFFFFFBFFFF7FF6EFBFF7FF73EB80 -:10051000F1FFFFFFDFFFFFFFFFFFF9FFFDFEFFFF22 -:10052000FFFFFFFFD9F0DFFFFFFFFEF0BF7FFFFF00 -:10053000FF7FFFFFDEFFFFEFDDDE77F2FBEDE7F190 -:1005400073FDFDDFFF7DBEDFFFFBFFEFFFEFFFFF72 -:10055000FFFFFFD0F0BFFFFFFFFEF83020020022B8 -:1005600040C0000000080002410212002187810003 -:100570000080040B2801B000820040000000000051 -:100580000000C1F0DFFFFFFFFEFFFFFFFFFFFDFFE9 -:10059000F7FFFE7FED79FFDEEB7F74F7F7E1F9FF00 -:1005A000F65F7FFFFFFFD7DBEFFFBBFFFFFFCCFF57 -:1005B000FFFFF0CFFFFFFFFEFFFFFFFFFFFFFFFF8B -:1005C000FFFFFFFFFFFFFFFFFFFFFFFFF1FFFFFF49 -:1005D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:1005E000FFF00FFFFFFFFEFFFFFFFD3DCD497F6FD7 -:1005F0002BBA5CD2DAF6F33EF7FFBDF1FADFFEF775 -:10060000CCF6BBA5B3ADBF6F7D6F6BDBDFBDFFFE6F -:10061000B05FFFFFFFFEBFFFFFFBDB57F6FE9FD57E -:10062000B7FFAFE53FFFFF6FFFDBF1FDBFFF6F6976 -:100630006CDFDADFCBFFF6FF76FDFDBFFFFFFFD0FB -:100640003FFFFFFFFEFFFFFFFFFDBD0803894F5A7D -:100650000FF0FFF8BFFFFFFFFFF15AFFFFFFFFF3AF -:10066000FAA0F0F2BFFFFFFFFFFFFFFFFFFFF0FF69 -:10067000FFFFFFFEFFFFFFFFFCFD006BFFFF5A0FB8 -:10068000F0FFFFFFFFFFFFFFF15AFFFFFFFFB3F592 -:1006900050F0F0FFFFFFD7FFFFFFFFFFFFF07FFFEE -:1006A000FFFFFEFFFFFFFDBCFFE4E771FFF9C4F4AD -:1006B0007F7FCFFFFFFFFFF1FFFFFFFBF773BF144B -:1006C000FFE6FFFFE17DFFFFE7FFFFFFF03FFFFFDA -:1006D000FFFEF5FFFFFED2FAFFC4F45CBFFAFFFF96 -:1006E000EC7EBFFFFFFFF1FFFFEFFFFF6BDBFFDFE4 -:1006F000F9FBBFFFF1FFBFFFFFFFFBF0BFFFFFFFF5 -:10070000FEF3C00002000000008200000000800034 -:10071000000000400001000000010820000000006F -:100720000100010000800200013CF05FFFFFFFFEBE -:10073000FDBFFFFFFFDFFFFFFFFF7FFFDFFFEFFFDB -:10074000FFFFFFFFF1FFFFFFFFFFF7FFFBFFFDFFD5 -:10075000FFFFFFFFFFFDFFFFC3F0AFFFFFFFFEF056 -:10076000FFDFFFFFF723FFFFFDFFEFFFFE7F7DF7BA -:10077000FEFF7F71FFFB7FFFFFFF6EFDF7FDFFBFF9 -:10078000FFBFF9FDFFDFEFF0F0AFFFFFFFFEF83036 -:10079000400100830000000C060804262600000625 -:1007A0000300010000000004007008800020012008 -:1007B000000200300000C1F05FFFFFFFFEFFFFFFFF -:1007C000FFFF7B3FF7FFD7FEFEFBFE3BFEBDFF2F8B -:1007D000FF71FFFB7FE7FFF9EFFFD7FAFFB7BBFE23 -:1007E000FFFF74FFF7FFF0CFFFFFFFFEFFFFFFFFEC -:1007F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:10080000F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:10081000FFFFFFFFFFF08FFFFFFFFEFFFFFFFFB5B2 -:10082000BD6F7CEB7FFBDBD34BEED6F6B7FDACA107 -:10083000FBDFFEF7F496BDB4C5A5AF6F694F7FBA75 -:10084000DBFFFFFFF03FFFFFFFFEBFFFFFFFDBFF10 -:10085000F6FFF6FFBDBFA5BFFF7D7FEFFFFBF1FDFC -:10086000BFFF6FFF6B7ADBFFDBDFF6FEB6FDFDBF80 -:10087000FEF7FFD0EFFFFFFFFEFFFFFFFFF42FFFAC -:10088000FC436BFFFFFF0DFFFC333FF05FF1FFFF09 -:10089000FFFFF9DEF04CFE77AFFFFFEFFFF0FFDB6D -:1008A000FF5FF0EFFFFFFFFEFFFEF7FFF02FFFFD02 -:1008B000437FFFFFF10FFFFC333FFFAFF1FFFFFF6F -:1008C000FFF6D7FFBCFDBDFFFFFFFFFFF0FFFFFFFF -:1008D000FFF0EFFFFFFFFEFFFFFFFFFCFFFFFBF15D -:1008E000BFFFF9FDCFF270FF1F9FF3F1FFFFFFFF86 -:1008F000FCF7FF139FFCFFFF84F7FFFF47FFFFFF9D -:10090000F0BFFFFFFFFEF5FFFFFFF1FCFFFEFE79EA -:100910003FFF1D46CFFFCFFC7BFFF1FFFFFFFFED49 -:10092000F3ABFFCBFFF8FFFCF5FFBFFFFFFFFAF0D3 -:100930008FFFFFFFFEF3C200000000000000010077 -:10094000000020002000000408010000000000203A -:100950000C0000040100010000800000013CF07F59 -:10096000FFFFFFFEFDBFFFFFFDFEFFFFFFFFFEFFDE -:10097000DFFFFFF7FFFFFFEFF1FFFFFFFFFFFFEBE1 -:10098000FFDFFFFFFBF77FFFFEFFFFBFDBF0FFFF97 -:10099000FFFFFEF0FFFFFFFFFFDFFFFFFF7FF7FF1F -:1009A000BFBFCFFFFFFF3EF17FFFFFEFFFFFFFFE67 -:1009B000FFFDFFBFBDFEFFFBF7DFFBD0F09FFFFF9A -:1009C000FFFEF8302000400180C030000020001001 -:1009D00050882000001301000000000000100000FB -:1009E00000000180080000A00010C1F0EFFFFFFF31 -:1009F000FEFDEF7FFFFFBFFFF7FFEFFBFD77EFBFD0 -:100A0000F77FFFFFBFD17FFFFFF7FFFFFFFFAFFFC4 -:100A1000DFF7FBFFFDFFFCFFFDFFF0FFFFFFFFFE29 -:100A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:100A3000FFFFFFFFF1FFFFFFFFFFFFFFFFFFFFFFD4 -:100A4000FFFFFFFFFFFFFFFFFFF05FFFFFFFFEFF66 -:100A5000FFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFC6 -:100A6000FFFFFFF1FFFFFFFFFFFFFFFFFFFFFFFFA4 -:100A7000FFFFFFFFFFFFFFFFE03FFFFFFFFEDDFF88 -:100A8000FFFFA5FD6F7D6D7F52DF5A4BEEB6EEF294 -:100A9000BBACA15B4DD6F7FEB2BD35B5B5DD6F7F02 -:100AA000E95F52DFBDFFFFF0DFFFFFFFFEBFFFFF8B -:100AB000FFDBFEF6FFF6FFFDBFFDB5BFF97F6FFF61 -:100AC000DBF1FDBFFF6FFF697FDBFFD3FFF6FEF2B7 -:100AD000FFADBFFFFFFFD0DFFFFFFFFEFFFFFFF512 -:100AE000300FFFFFFD6BCAFFF00FD6BFCF3FFFFFF8 -:100AF000F1FFFFFFCAFEBFFFF005AF0FFFFCF0CF15 -:100B0000F0FFFFFFFFF0EFFFFFFFFEFFFFFFF530FD -:100B10000FFFFFFC3FCAFF0F0FD6BFFFFFF55FF1CE -:100B2000FF8BFFC3FFFFFFFFFFFF0FFFFCF0CFF0C6 -:100B3000FFFFFFFFF03FFFFFFFFEFFFFFFFFCFFFC5 -:100B4000FFBF9F3FFEFCFF4FFFFFFFFFFFF7F1FFDF -:100B5000DFFE7E3F9FF4FC7FFCFFFF3FFF3FFE3F39 -:100B6000FFFFFFF04FFFFFFFFEF5FFFFFBFFFEFF64 -:100B7000FFFFFFBFFBFFF8EDFF8FFFBBFFB1F3EF00 -:100B80008FF7FFFFDBFFFFFFEFBFFD79BFBFFFFF69 -:100B9000FFFBF0DFFFFFFFFEF3C0000000040000DA -:100BA000000000000000008000040808010100901F -:100BB000000000040008000000000800040000011C -:100BC0003CF0DFFFFFFFFEFDBFFFFFFFFFFFFFFF6A -:100BD000FFFFFFFF9FFFAFDFFFFFFFF1FFFFFFFF03 -:100BE000BFEFFFFFFFEDFFFFFFEFFFBFFFFFFFC303 -:100BF000F03FFFFFFFFEF0FFFDFFFFFFFBFFBBFF2E -:100C0000FFFF7FF6FF7FFBFDEDFFF1FFFE7FFFFFA4 -:100C1000FF5FFFF7FF7EFFFDFFEFFFFFFFEFF0F04D -:100C20008FFFFFFFFEF83080000400004002000349 -:100C300000050420000001D0008100200404000011 -:100C4000810408801000C0000000200008C1F06F7F -:100C5000FFFFFFFEFFFF7FFFFFFFFFF3FDFFEDFC48 -:100C6000FFFF9FFBFDFFFFFFF1FFFF7FFB3EFF9FAD -:100C7000FFFFFFFFFDF9FFFFFFFDFFFFFFF06FFF2D -:100C8000FFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:100C9000FFFFFFFFFFFFFFF1FFFFFFFFFFFFFFFF72 -:100CA000FFFFFFFFFFFFFFFFFFFFFFFFF0CFFFFF93 -:100CB000FFFEFFFFFFFDBDFFEF7CEB7FFBDBFADC00 -:100CC000EEF7F6D7F52DA1BBDDEEF754F7FB2CB50B -:100CD000B4BD6B6FEF6FBBDFFFFFFFF01FFFFFFFC8 -:100CE000FEBFFFFFFFFBFFF6FFF6FFFDBFFFBFEFFD -:100CF0006FFF6FFADBF1C5BDF56FFF6FCADBFFDB7E -:100D0000FBF697F6FFFDBFFEF7FFD09FFFFFFFFE4C -:100D1000FFFFFFFFFFFFFFFF8B7FFFFFE763FFFF8B -:100D2000FFFC77DFF1DBFFD6A83FFFFF082FF0FFC6 -:100D3000C3FFEBFFFFFFFFFF5FF0EFFFFFFFFEFFD3 -:100D4000FFFFFFFFFFFFFF8BFFFFFFFFFFFFFFFF27 -:100D5000FCFFCFF1DBFFD6A83FFFFF082FF0FFC35A -:100D6000FFEBFFFFFFFFFFFFF05FFFFFFFFEFFFF57 -:100D7000FFFFFFFFFFFFF5BFFFCAFF9FFFFAB9E7C5 -:100D80009FF381FFFFFC73D7FFFF77FFFDFFFCFFA1 -:100D9000FFFFFFCFFFFFFFF01FFFFFFFFEF5FFFF8D -:100DA000FFF7DEFFFE7EFFBFFFBFF1B3FFFFE3FBF8 -:100DB000FFE11F7FFFF878FFFB1EFFF7FEE7FFFF55 -:100DC000FFBFFFFFFFFAF04FFFFFFFFEF3C0000081 -:100DD00000000000000000000000500000000400BF -:100DE00001804040200000080000000003000000D7 -:100DF000800000013CF0AFFFFFFFFEFDBFFFFBFFE7 -:100E0000FFFFFFFFFFFEFFFFFFFFFFFFFFEFF7F119 -:100E1000FDFFFFFFDFFFEFFFFFFFFFFFFFFF7FFF94 -:100E2000FFFFFFDBF08FFFFFFFFEF0FFDFFFFF7F25 -:100E3000FFFFFFBED7FFEDBD7EBFFEF67FBF71FF98 -:100E4000FFDAFFF9FFBF7FFEFF6F7FFFFFFFFFFFAE -:100E50007FFFD0F0CFFFFFFFFEF830420000000020 -:100E600080C100009000C400001220432281840051 -:100E700000140001000880000200020004020000CB -:100E800010C1F01FFFFFFFFEFFFFFDFFFFDDFEFFB4 -:100E9000B676E5BCF9F7AF5FBFFCDFCFF1FFEF79C6 -:100EA000FFBDFFEFFFFFF76F5FFFFFFDEFEFBFFF3E -:100EB000FFF09FFFFFFFFEFFFFFFFFFFFFFFFFFFB2 -:100EC000FFFFFFFFFFFFFFFFFFFFFFF1FFFFFFFF40 -:100ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:100EE000F0FFFFFFFFFEDBFFFFFD2DFF692AEF771D -:100EF000BBDD5ADFF6F6D6F77DBDD1B24AD6B2BE1B -:100F000097F5BDB3ADFFEF7F696BFBDFFFFFFFF030 -:100F10002FFFFFFFFEBFFFFFFFDBFFF6FE9FD4BFEB -:100F2000EDAFFF6B6FF7FFDDDB31FDBFFF6F7FFFC5 -:100F3000FFDBFFCBDFF6FFF6FFFDBFFEF7FFD08F35 -:100F4000FFFFFFFEFFFFFFFD1FFF462F9FFFFFFF7D -:100F5000A5FFFFFFDFB7FFFFF1FFFFFFF7E96ABF64 -:100F6000FFFFFDFFFFFD5557FFFFFFFFAFF04FFFF6 -:100F7000FFFFFEFEDFFFFD1FFF462F9FFFFFFFA5C8 -:100F8000FFFFFFC037FFFFF1998EDC7FE96ABFFFEB -:100F9000F00FFFFFFD5557FFFFFFFFFFF00FFFFFB3 -:100FA000FFFEFFFFFFFF07FFC0BEFFFFCFEF9FFF6A -:100FB000FFFBFFE7FFFFA1E3CE3C583FF3FFFDEF50 -:100FC000F9FFFFF7F17FFFCBFFFFFFF02FFFFFFFE0 -:100FD000FEF57FFFF0FFFEFFC475E7B9FFFFFFEFEF -:100FE000FFC7373BFFF0139E0FF4FFFEFBFFFFF937 -:100FF000FCFFFFFFFFBFFFFFFFFAF0EFFFFFFFFE69 -:10100000F3C0010000020002220000C040004000C6 -:101010000408040A0101102020000004080804004C -:1010200000000000010000013CF0CFFFFFFFFEFDCB -:101030003FFFFFFFFFFFFF7FFF7FFF7FFFCF9DFF92 -:10104000FFF7FDF1FFFFFFEEBFFFFFFFFFFEFFFF1A -:10105000FFFFFFFFFFFFFFDBF06FFFFFFFFEF0FF73 -:10106000FFFFF7F7FFFFFEBFF7FFFF5BFFBFF7FFD5 -:10107000FD7F71FDFFEDF7FEEFFFFF7FFFFFFFFF3D -:10108000FFFFEFFF7FFFD0F0FFFFFFFFFEF8301103 -:10109000004860408260246000CC008004010000B1 -:1010A00014010C0400300000000808000100C20018 -:1010B0000002008000C1F05FFFFFFFFEFFFFFFFFA7 -:1010C000F77BFFF3EBBFFFF7FFFFFFE75D3FFFF6A7 -:1010D000D1FDFFEBF73DFFFFFF5FFF7F7FF3FFFFDA -:1010E000EFFDBFFFFFF05FFFFFFFFEFFFFFFFFFF12 -:1010F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10E -:10110000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:10111000FFFFFFFFF0DFFFFFFFFEFFFFFFF5B5DF83 -:101120006F7D697FFBDF525FF6F7FEF6F3BDB1DA44 -:10113000CDFEF6EED2BDA5AFBDFF6F7CEB2BFADA8C -:10114000FFFEDFF04FFFFFFFFEBFFFFFFFDBFFF6FD -:10115000FFF6FFBDBFCDBFEB6FF76FDFDB51FDBD0E -:10116000FF6FFF6FFB5BFFDBFFF6FEF6FDFDBFFED3 -:10117000F7FFD0FFFFFFFFFEFFFFFFFA50FFFFFF6B -:10118000F06FFFFFF096FFFFC62BFFFFF1FCFFFFA4 -:10119000F7DBC3FF00FFFFFFFFFFC14FC3FFFFFFF0 -:1011A000AFF09FFFFFFFFEFFFFFFF5A0FFFFFFF087 -:1011B0006FFFFFF096FFFFC62BFFFFF15AFFFFFF07 -:1011C000F3C3FF00FFFFFFFFFFC14FC3FFFFFFFFA0 -:1011D000F0CFFFFFFFFEFFFFFFFFFCFFFF9FF07F51 -:1011E000FFF9FC4FF3FF27EBFFFC81FC7FFE7BFF49 -:1011F000F7FF127FFFFFFFFF18FFFFFFFFFFFFF06A -:101200007FFFFFFFFEF5FFFFFFDFFEFFFC7E7FBFDE -:10121000FFFFAFEFFFDFDFFBFFF1C3FE6FF1CF3F5B -:10122000FBFFFFCFFEFFFFFE7FBFFFFFBFFAF0DF38 -:10123000FFFFFFFEF3C000000100000000010000FE -:10124000200001001000000001000200000000006A -:101250000000000200008000028000023CF02FFF2E -:10126000FFFFFEFDBFFFFBFDFFFFFFFFFFFFFFFFD7 -:10127000FFFFFFFFFFFFF5F1FF7FFFFFFFFFEFFF26 -:10128000FFFFFFFFFEFFFFFFFFFFFFDBF02FFFFF72 -:10129000FFFEF0FFFFFFFBFFBFFFFFFFFFF7BFFBFE -:1012A000FFFFFFDFF7FFF1F7BFFBFFFFFF7FDEFF71 -:1012B000FFFFFFFFFFEDF7FFFF7FD0F03FFFFFFFD6 -:1012C000FEF830000000004000000000E000008058 -:1012D0002001019200010100E01C6020300808009C -:1012E000000000000000008000C1F06FFFFFFFFE63 -:1012F000FFFFFFFFFFDBFEFFFFDFFFFC7FFBBFFF0A -:10130000FFFFFFFFF1F6FFF77E3FFF7FFFFFFFF7D5 -:10131000FFFFFFEDFFDFFFB7FFF03FFFFFFFFEFF27 -:10132000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:10133000FFFFFFF1FFFFFFFFFFFFFFFFFFFFFFFFCB -:10134000FFFFFFFFFFFFFFFFF0FFFFFFFFFEFFFFBD -:10135000FFFFFFFFDFFFFFFFDFFFFFFFFFBFFFDF3D -:1013600057EFF1FDFE7FFFFFFFFFFFFFFFDFFBFFFA -:10137000FFFFFFFFFFFFFFF07FFFFFFFFEFFFFFF0D -:10138000FFFFFF7FFFFFFFFFFFFFFFFFFBFFDFFF11 -:10139000FFF1FDFF7FBFFFFFFFFFFFFFFFFFFFFF2D -:1013A000FFFEFFFFFFFFF09FFFFFFFFEF7FDFFFFC8 -:1013B000FFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFF7D -:1013C000F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:1013D000FFFFFFFFFFF06FFFFFFFFEFFFFFFFFFFBD -:1013E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11B -:1013F000FFFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:10140000FFFFFFFFF0CFFFFFFFFEFFFFFFFFFFFF2C -:10141000FFFBFFFFFFFEFFFFFB6FFFFEBFFFF1FFC4 -:10142000F7FFFF7FFFFFFFFFFFFFFFFFFFFFFFFD56 -:10143000FFFFFFF0EFFFFFFFFEFFFFFFFFFFFFFFDC -:10144000FBFFFFFFFEFFFFFF57FFFDBFFFF1FFEFB9 -:10145000FEFFBFFFFFFFFFFFFFFFFFFFFFFFFEFFDE -:10146000DEFFF0CFFFFFFFFEFFFFFFF7DBFFDBFD3F -:10147000F6FFF6FF3CBCBCBFDF6FE72FF13CBFFDC2 -:10148000BFDF6FFF6FF7DBFFDBFDF6FFF6FFFFFF50 -:101490000201DFFFFFFFFEFFFFFFFFFFFFFFFFFF78 -:1014A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:0614B000FFFFFFFFFFFF3C -:00000001FF -/* - * - * File yam111.mcs converted to h format by mcs2h - * - * (C) F6FBB 1998 - * - * Tue Aug 25 20:23:03 1998 - * - */ diff --git a/firmware/yamaha/ds1_ctrl.fw.ihex b/firmware/yamaha/ds1_ctrl.fw.ihex deleted file mode 100644 index aa9b1d7dcb0b..000000000000 --- a/firmware/yamaha/ds1_ctrl.fw.ihex +++ /dev/null @@ -1,769 +0,0 @@ -:10000000070000000700240007000C0007001C0088 -:1000100007000600020070002000000040000300FE -:100020000471000086420000400003000D0F000034 -:10003000100800003A042000820200000D020000B7 -:10004000100800003A04200082120000820E2000F6 -:10005000821A00000D2D0300100800003A04100061 -:100060008DD30200100800003A0418000D010000B2 -:1000700015000200FD000000200000006088030061 -:100080006090030060800300408003004080030014 -:1000900040800300408001007D0A00004080030092 -:1000A000408003004080010002042000820800001C -:1000B0001A0008000409000086590100070000002A -:1000C000070026000700000007000000068A010064 -:1000D000070000008D0C0300100800003A0418000F -:1000E000070026007D080000428001000A1600007B -:1000F00006A20400070000008D2100001008000087 -:100100003A04080006C2210007000000FD070000B5 -:10011000428001000A0008000409000086930200E2 -:1001200095010000040D09000700000020080000F0 -:10013000F50000007D0B000060F00100FD000000F4 -:1001400006220300408001007D0A00004280030077 -:100150004A8013000A001800201800006090050073 -:100160006088050040800100FD0000004280010021 -:100170000A007000150100004411070086230300E7 -:100180000000030020700000064A030040800100C8 -:100190008D340000100800003A04080006EA21002F -:1001A000070000008DD30200100800003A04180078 -:1001B0000682010007000000070024008D0F0000E8 -:1001C000100800003A16000002240000025C000043 -:1001D000FD28000020000000408001000D00080004 -:1001E0001508000084095100070000004D000000C0 -:1001F0005D0E0000020E00008D410000100800009E -:100200003A040800068A2C00070000008D00000058 -:1002100024090000020F00008D45000010080000B6 -:100220003A040800068A2C00070000007D38000010 -:10023000428001000A000800151000008409010036 -:10024000868301000700000006AA010007000000E5 -:10025000FD080000428001000A0018000419000097 -:100260008680210007002800101800003A042800AA -:10027000020C28000D000000100800003A142800AD -:100280008D80080020080000FD0200004080010071 -:10029000070020000D02000004991800070000006C -:1002A0002D400000BD000000FD0200004280010062 -:1002B0000A00080004090000865A05000700000033 -:1002C00000010000200A00007D04000040800100C1 -:1002D000428001000A002000153000004421010086 -:1002E000864903000700000004210000864903003E -:1002F000070000008D0F0000100800003A0C2800D5 -:100300004439020086C906000700000010180000EA -:100310003A0428000D81080020080000FD020000BA -:100320004080010007002000102800003A007800FB -:100330008D680000100800003A040800068A2800B2 -:10034000070000000D40000015100000049918007F -:1003500004292900043939000700000006020600BC -:1003600007000000F50400007D00000020000000F0 -:100370008D00000060080100408001007D04000045 -:10038000428003004A8021000A001800441902003C -:1003900086582100070000007540000004F171003C -:1003A00007000000420001000A00280004290000A4 -:1003B00086202100070000000D3C000004A9300049 -:1003C000070000007D070000428001000A000800CD -:1003D0000409000086DA07007D05000020280000DF -:1003E00060B0030006F207004080010020300000EA -:1003F00060A8030040800100FD020000428001006F -:100400000A0008000409000086FA0700070000003F -:100410007D050000428001000A0428008D0E0000C6 -:10042000100800003A0C28000D0000001008000021 -:100430003A1428000D00090020080000FD02000009 -:100440004080010007002000FD3D0000200000006A -:10045000408001007D1000008D8D0000100800001C -:100460003A040800068A280007000000150800006A -:100470001A00080084090100865109007D1300005C -:1004800000052000200F2800608F3300608F3B00A4 -:10049000608F4300608F4B00608F5300608F5B0064 -:1004A000608A030040800100BD7F0000C43D380029 -:1004B000070000007D1A0000751300004280010053 -:1004C0004A0009000A001000048D0B000495130077 -:1004D00007000000200800006090010004110000E7 -:1004E0008620210040000100FD170000428001002D -:1004F0000A0008000409000086222100070000000D -:100500007D190000428003004A8009000A001000A3 -:100510002409000064160000FD1100004280030061 -:100520004A802B004A8019008D0000004489210078 -:10053000070000004422000086E10A0007000000D6 -:10054000641A0000242A00007D190000020108003E -:10055000220110002008000060900300408001008C -:10056000FD3D00008D0000002008000040800100DB -:10057000751300007D1A0000420001004A80090046 -:100580000A0010001D020000E4890100E492290025 -:1005900044913000070000000D060000150A00001D -:1005A0001D0C000025100000E4A90000E42B010050 -:1005B00064040000E4B30100E432020064040000BB -:1005C0006404000064040000640400000D040000E2 -:1005D000C4B108000700000020080000F50B00006F -:1005E000400003007D190000428003004A8009009A -:1005F000240A00000A000800640E0800070000003A -:1006000022011000200800006010030040000100DB -:10061000AC6400007D02000020000000408001006A -:100620007D10000042800100FD1100004A803B0067 -:100630004A8009000A0020009500000044111A00B9 -:1006400044A1000086200D000D04000084B90000C4 -:1006500086210D00FD18000042800100FD10000001 -:100660004A8009000A0028009500000024090100C2 -:10067000642A000086110D00070000000429000014 -:1006800086220D0007000000062A0D000200080067 -:100690008D0000007D38000020080000408001002F -:1006A0007D120000428001000A00100004390000A1 -:1006B00086D10D000D080000B5FF7F0084B9000051 -:1006C00086A10D0025000000067A0E002D00000016 -:1006D000150000002D0800008DC702002008000052 -:1006E00006C20E000D00000035807F0084B90000B6 -:1006F00086710E00250040008D00000044091100A5 -:10070000070000008D0100000495100007000000A4 -:10071000649100002404000024040000240400006C -:1007200002011000020028008DC60200200800000F -:1007300006C20E008D0100002D0400008D00000097 -:1007400004951000070000000D02000084911000C5 -:10075000070000000DC70200200800008D00000007 -:10076000FD38000040800100FD3B0000201000002B -:1007700060A80300150800008431310084212100A5 -:100780000700000060B0030060A00300408001008B -:10079000FD2200009500000024090100240400004F -:1007A0002404000064120000020110002008000070 -:1007B0006090030040800100241900008DFB0000C0 -:1007C0007D390000200800004080050042800300C1 -:1007D0004A840900060600000A04080024040000F8 -:1007E000240400007D110000428001000A0008007E -:1007F000240A000002052800020C28000D800900D0 -:1008000020080000FD0200004080010007002000D9 -:10081000FD220000428001000A000800950000004F -:10082000C40D2800241901007D1900004280010038 -:10083000FD1100004A8009000A001000B500000008 -:1008400044311100048D0A0007000000440A08002A -:100850000495120007000000FD2300002010000096 -:100860004080030044121000070000002008000030 -:100870006090030040800100FD0200004280010002 -:100880000A0008000409000086FA100007000000B2 -:10089000FD3B000000010000100A00007A800B0000 -:1008A0004A80130084090900070000009500000039 -:1008B000043D0100868011000A00100002001000B3 -:1008C0008409090007000000428003004A801100EB -:1008D000040D0900070000000A001000840D090043 -:1008E000070000007D250000200800004080010076 -:1008F0000D010000100800003A1428007D120000CD -:10090000428001000A0020007D19000042800100A1 -:100910007D1100004A8031000A00100024310000DF -:100920000D2801007D3900002008000040800500EE -:10093000428003004A840900060600000A040800F9 -:1009400002013000243100002404000024040000CF -:1009500024120000020528004C1A00008601130032 -:10096000020070002D000000000003007D38000030 -:10097000428001000A001000062A13002421000012 -:10098000AD000000020010000D010000240900006D -:10099000246B00008D3601007D3900002008000026 -:1009A00040800500428003004A84090006060000DA -:1009B0000A040800643200008D000000240A0000D0 -:1009C000201000007D220000408001000D3C01004D -:1009D000100800003A04080006D2290007000000B1 -:1009E000202800007D200000408001007D110000D3 -:1009F000428003004A8013000A8033007D380000E3 -:100A0000428001000A00080004090000863A16002E -:100A1000070000008D000000640903008D470100FD -:100A20007D3900002008000040800500428003005E -:100A30004A840900060600000A0408000201380082 -:100A4000240400002404000024120000FD02000021 -:100A5000428001000A0008000409000086A2140078 -:100A600007000000020528004C1A00008639160015 -:100A700007000000642103002C630000FD3D00001E -:100A8000428001000A0008009500000004090900E6 -:100A900007000000200800004C1A000086611500C5 -:100AA0004080010000000300067A150024210000A8 -:100AB0000D01000024090000246B00008D5B010083 -:100AC0007D390000200800004080050042800300BE -:100AD0004A840900060600000A040800643A00007F -:100AE0009500000024120000FD0200004280010079 -:100AF0000A0008000409000086DA1500070000005B -:100B00008D620100100800003A04080006D2290096 -:100B10000700000006D2140007000000207000004B -:100B20000A0108002A011000FD200000608803006F -:100B300060900300408001007D220000428001009F -:100B4000FD3D00000A0008004A843100040900004D -:100B500086D816008B0018008D000000049918003C -:100B60002C31000006AA1700070000004C320000DC -:100B700086331700070000000419000086301700B4 -:100B80000700000095000000449119002C2200008D -:100B9000243100006C6300003D0E0000751300005E -:100BA000FD0B0000420001004A8009000A0010000D -:100BB000EC8A0300EC9303004C22000086A9170086 -:100BC000070000008D000000049918006C2200004E -:100BD0002C3200000A053000AB1D300083200000DD -:100BE000FD180000428001000A000800248901006D -:100BF000020530008310000075180000420001005B -:100C00000A0010008D000000240901007513000087 -:100C100042053300CB0C3300CB2C3300CB343300F4 -:100C2000CB3C3300CB443300CB4C3300CB543300AC -:100C30008B5C300083600000F50200004200010080 -:100C40000A00080004090000867A18000700000066 -:100C50002D1E0000FD050000428001000A00080072 -:100C600024890200020528000D060000100800007B -:100C70003A0C28008D000000100800003A142800EB -:100C80008D800A0020080000F502000040000100ED -:100C90000700220075120000420003004A002100F4 -:100CA0008D00000044091A00070000000D980100A3 -:100CB000100800003A04080006222B00070000007C -:100CC000F5010000420003004A000D000A00100078 -:100CD00044910800070000002008000040000100C7 -:100CE000F525000044310A0007000000200800003C -:100CF00060280300400003007D21000042800300C3 -:100D00004A800B000A001000200800006010030059 -:100D1000400003008D000000240100002C010000B1 -:100D2000640E0000641A00006C6300000A010800F1 -:100D30002A0110002008000060100300400003009A -:100D4000FD200000428001000A0008007D22000012 -:100D5000428001000A00100020080000601003001B -:100D6000400003007D190000428001000A000800D5 -:100D7000FD220000428003000A001000200800004D -:100D80006010030040000300040D0900070000008C -:100D90002008000040000300428003004A800B004E -:100DA0000A0010002008000060100300400003004B -:100DB000428003004A8013004A801900040D11008C -:100DC000048D1900070000000A0008002010000030 -:100DD0006018030060080300400003008D0000005D -:100DE00044090B000700000020080000400001003B -:100DF000F5050000420003000A000800200800007A -:100E000040000100F5000000420001000A00080057 -:100E10000409000086601C00751E000042000300EB -:100E20004A0401000A0C000006721C0007000000C2 -:100E300002040000020C00007D170000F51A0000FB -:100E4000428001004A1403004A1C03004A240300A4 -:100E50004A2C03004A3403004A3C03004A4403007E -:100E60000A4C00003D040000F5130000FD1A0000CC -:100E7000420003004A000B004A801B004A80130016 -:100E80000A0020004491080044A11900E4890300ED -:100E9000EC990300025500000A5D000042000300C7 -:100EA0004A000B004A801B004A8013000A00200001 -:100EB0004491080044A11900E4890300EC9903005F -:100EC000026500000A6D0000420003004A000B00AA -:100ED0004A0019004A802B004A8013004A802100F2 -:100EE0000A0030004491080044A1190044B12A00CE -:100EF000E4890300EC990300027500000A7D0000FC -:100F0000E4A90300020700007D10000015040000A2 -:100F1000428001000A000800E4090100020F0000FD -:100F2000F52A0000FD190000420001004A80090076 -:100F30000A0010003409000074160000F5290000B2 -:100F4000420001000A0010007C91000075200000A2 -:100F5000420001000A0008000409000086D21E00B9 -:100F6000F5260000F5270000420003004A000900B2 -:100F70000A0010003C0A00007C160000751A0000F0 -:100F8000FD0B0000420001004A8051000A004800A9 -:100F90000700160075100000420001000A2C28000E -:100FA000121D280012252800321F000007001E0015 -:100FB00007000E007519000042000100F52D000029 -:100FC0004A000D000A0010004491000086B21F0084 -:100FD000420001000A3428005D0E00008D00000070 -:100FE000750300002008000040000100F4D2050055 -:100FF00004D154005C7300008653200007000000F9 -:1010000007000C000700080007000A000D0402009A -:10101000100800003A040800062233000700000010 -:10102000065A200007000000070008007522000093 -:10103000420001000A002000042100008620210057 -:101040002D1E0000F5020000420001000A00080009 -:101050000409000086922000070000001020000014 -:101060003A0430007D050000C38001000A0008003A -:101070002489020002052800020C28000D810A00C4 -:1010800020080000F50200004000010007002200D7 -:10109000FD040000428001000A007000000003000F -:1010A0002070000006FA0600408001000D180200C2 -:1010B000100800003A04080006222B000700000078 -:1010C000FD020000428001000A000800040900003F -:1010D000868A21000700000006F2010007000000D8 -:1010E00075080000FD0900000D010000060A22003D -:1010F00095020000750B00007D0900000D00000046 -:1011000015050000420001000A0018000419000043 -:1011100086782800F506000020100000400001003D -:10112000F5040000200800004000010075070000E1 -:10113000420001004A8009000A001000241100004A -:101140000409000086BA2200150800000201080008 -:101150000412100006DA22007505000004120800CF -:1011600007000000020110007505000025040000C2 -:10117000241102000201100020080000601003008A -:101180004000010024190000867828008D0000002E -:1011900064040000049D00008688270002011800F6 -:1011A00075050000420001000A0428008D010000BE -:1011B00024090000020D28000D0000002409000091 -:1011C000021528000D00100020080000F5020000A4 -:1011D000400001000700200075110000FD02000022 -:1011E000428001000A0008000409000086C22300B2 -:1011F0000700000000010000200B0800600B130036 -:10120000600B1B00600A0300400001004200050063 -:101210004A003D004A0035004A002D000A00200027 -:10122000F5060000420001000A142800F504000041 -:10123000420001000A00080015030000040D01002F -:1012400086CA24001540000095000000040D01002E -:1012500086B82400220010002A00100006E22400B4 -:10126000070000000431330004A92A000700000031 -:10127000242103000205280024110000240400009A -:1012800024040000243200002C2900006C630000BC -:1012900086F325000700000064B10200640400002A -:1012A000640400008D000000640A0000020D2800A4 -:1012B0008D00100020080000F50200004000010031 -:1012C000070022008D00000004B93800070000006C -:1012D0006C2903000A013000F50200004200010001 -:1012E0000A0008000409000086BA25000700000073 -:1012F0002C3102000A0528008D0000006C09010055 -:101300000A0D28000D01100020080000F502000061 -:101310004000010007002200241100002404000006 -:10132000240400002432000002013000442903009C -:10133000867A26000700000002003000F504000055 -:10134000420001000A00080015030000040D01001E -:1013500086C0260024310000640400000201300031 -:10136000F5020000420001000A0008000409000024 -:1013700086CA260007000000243100000205300064 -:10138000243900008305300083080000F5050000C3 -:10139000420001000A0428008D00000024810000A2 -:1013A000020D28008D000000248100000215280095 -:1013B0008D01100020080000F5020000400001002F -:1013C0000700220025100000750500004200030000 -:1013D0004A0009000A00100004090A000411120062 -:1013E0000700000020100000600805004000050014 -:1013F000FD060000428001004A0009000A001000BA -:10140000A500000004090A000411120007000000F2 -:10141000200800006090010040000100F50200007B -:10142000420001000A00080004090000864228006A -:1014300007000000060A230007000000060600005F -:1014400007000000F5020000420001000A00080049 -:101450000409000086922800070000000001000037 -:10146000200B0800608B1300608B1B00608B230037 -:10147000608B2B00608B3300608B3B00608B4300E4 -:10148000608B4B00608B5300608B5B00608B630054 -:10149000608B6B00608B7300608B7B00608F030040 -:1014A000608F0B00608F1300608F1B00608F230024 -:1014B000608F2B00608F3300608F3B00608F430094 -:1014C000608F4B00608F5300608F5B00608F630004 -:1014D000608F6B00608F7300608F7B00608A0300F9 -:1014E00006060000408001008D000000640A000034 -:1014F000020D2800240A00007D0200004280010045 -:101500000A00100024120000FD03000042800100C8 -:101510000A0008000409000086822A000700000073 -:101520008D010000240A000064040000640400002F -:101530000201080024090000240400002404000023 -:10154000020110000D0002004491000086D92A001B -:1015500007000000FD010000428001000A000800B1 -:10156000440A000086BB2A00428001000D000A00E8 -:1015700020080000FD02000040800100070020005C -:101580007D020000201000000606000040800100DF -:10159000F5020000420001000A00080004090000F2 -:1015A000862A2B00070000007D0300004280010016 -:1015B0000A00080004090000865A2B0007000000FA -:1015C000750000007D2E0000420001004A800B00E3 -:1015D0002000000004090000860600004000010011 -:1015E0004A8431008B043000830800008D00000025 -:1015F000100800003A1428008D00000010080000B8 -:101600003A0C280075060000420001000A0008009C -:101610001538000024090100020528000D000B0008 -:1016200020080000F502000040000100060600004E -:1016300007002200640400006404000006060000A5 -:1016400007000000340100008D7F00003C0900000D -:10165000121D280012252800321F000007000E006E -:101660000D0100007D030000200800004080010003 -:10167000F4D2050007000000070008007D03000009 -:10168000428001000A0008000409000086022D00C3 -:101690000700000006060000070000000700000029 -:1016A0001200000007001000070032000700600071 -:1016B000800010001A0048000449000086612D00D7 -:1016C00007000000101200003A0058004501000019 -:1016D000045D5C0007000000800000001A00480064 -:1016E0000449000086B12D00070000001012000020 -:1016F0003A0050000459000086082E004500000002 -:10170000C5000000F5FF7F007DFF7F0024D50700A6 -:101710002442000002015000020520008200000067 -:101720001A0040000441000086392E000700000026 -:10173000653800001A004000204000004D100000F5 -:1017400084C10400861B3000400000000700040034 -:10175000650100004501000020400000400000003D -:1017600065070000800008001A00400004410000E6 -:1017700086C92E0007000000101200003A00400049 -:101780000441000086222F004D000000CD00000023 -:10179000104800003A042000820800001A004000AF -:1017A0000441000086312F0007000000204800009F -:1017B000045900008608300040000000E5070000E2 -:1017C00080042000A0162800E0163200E0163A003F -:1017D000E0164200601202004000000032000000EB -:1017E000750040007D00000074D507001205200040 -:1017F000820000001A0040000441000086E12F0032 -:1018000007000000067203000700640007000600DE -:10181000E50000002000000040000000650A000014 -:1018200020000000400002004000020040000000D4 -:1018300065010000420000000A0070000471000011 -:1018400086A2300007000000068201000700640045 -:101850000000050020700000400000000672030038 -:1018600007006400070000006D300000608802007F -:10187000609002000A0008006088020040800000BA -:10188000120010000D10000084910000864131000C -:101890000D0E000084910000865132000700000008 -:1018A00007003000201000006D3B00004080000069 -:1018B000800000001A000800040900008661310061 -:1018C0000700000020120000ED0D00004080000025 -:1018D000428000000A0010000D00400044951000F6 -:1018E0000700000020100000ED0D00004080000007 -:1018F000428000000A042000820000001A00080054 -:101900000409000086F13100070000006D3B000073 -:10191000428000000A000800150E00008409010042 -:10192000869B3200070060001A000800150C0000BA -:1019300084090100868332002000000007001A009D -:10194000ED02000040800000070062006D300000E2 -:10195000428002004A800A00200800004A800A00F3 -:10196000060600004A80100007000000122528002B -:10197000321F0000F4D2050004D154005C73000053 -:10198000860700000700000007000C0007000A009F -:1019900007001C00653400004000020020480000E1 -:1019A000605002000A004000604002004000000059 -:1019B000444945000700000020400000E53A0000CF -:1019C00040000000E5280000420000000A00480036 -:1019D0000449000086683800652C000042000000C1 -:1019E0000A004000D5000000044145000700000047 -:1019F000550600000445050086F23400D5010000BC -:101A00000445050086F03400652B0000420000000C -:101A1000E53A00004A0050000A004000D4C34500E7 -:101A2000070000000445450007000000CD0000004D -:101A30004449440007000000044545000700000039 -:101A40004D010000444955000700000044510400C6 -:101A500086E93400652C0000420000000A004800BE -:101A600004D14C000700000044C1040086F3340098 -:101A70000700000007001600E52C000042000400EB -:101A80000A004000204000004000000065290000DE -:101A9000420000000A00400004410000866035005A -:101AA000070000000224000006A23600025C0000CD -:101AB000E5250000420000000A00400074420000DA -:101AC000E52A0000420000000A00400074420000C5 -:101AD00012015000E5290000420000000A00400009 -:101AE000344200000441450007000000204000008F -:101AF00040000000E53E0000200000004000000023 -:101B0000E52D0000520140000A005000445104003D -:101B1000864A3600C5000000E53E00002040000077 -:101B200040000000E52B0000420000000A004000D9 -:101B30005442400007000000E52A00002040000059 -:101B400040000000320150003401040074560000CF -:101B5000E5290000420002000A00420042000000A5 -:101B60000A0050007C410500E5280000420000000A -:101B70000A004800C500000044C14C008610370030 -:101B8000E5260000E5270000420002004A00400070 -:101B90000A0050003C4200007C560000E52800008E -:101BA0002048000040000000121D280012252800D7 -:101BB000721F000065290000420000000A0040007A -:101BC0000441000086AA370007000E000700160037 -:101BD00007001E00E53E0000420000000A00400031 -:101BE0000441000086E83700652D00004200000037 -:101BF0000A34280065340000420002004A00420016 -:101C0000204000004A004A004A005000F4D205007B -:101C100004D154005C7300008651380007000000B6 -:101C2000060600000700080007000C000700080077 -:101C300007000A00E5010000450002002040000006 -:101C4000600000006503000040000000652E0000F9 -:101C5000201A0000601A0A004000000065340000ED -:101C6000420002004A004200204000004A004A00B0 -:101C7000060600004A0050000000000000000000BE -:101C80000000000000000000000000000000000054 -:101C90000000000000000000000000000000000044 -:101CA0000000000000000000000000000000000034 -:101CB0000000000000000000000000000000000024 -:101CC0000000000000000000000000000000000014 -:101CD0000000000000000000000000000000000004 -:101CE00000000000000000000000000000000000F4 -:101CF00000000000000000000000000000000000E4 -:101D000000000000000000000000000000000000D3 -:101D100000000000000000000000000000000000C3 -:101D200000000000000000000000000000000000B3 -:101D300000000000000000000000000000000000A3 -:101D40000000000000000000000000000000000093 -:101D50000000000000000000000000000000000083 -:101D60000000000000000000000000000000000073 -:101D70000000000000000000000000000000000063 -:101D80000000000000000000000000000000000053 -:101D90000000000000000000000000000000000043 -:101DA0000000000000000000000000000000000033 -:101DB0000000000000000000000000000000000023 -:101DC0000000000000000000000000000000000013 -:101DD0000000000000000000000000000000000003 -:101DE00000000000000000000000000000000000F3 -:101DF00000000000000000000000000000000000E3 -:101E000000000000000000000000000000000000D2 -:101E100000000000000000000000000000000000C2 -:101E200000000000000000000000000000000000B2 -:101E300000000000000000000000000000000000A2 -:101E40000000000000000000000000000000000092 -:101E50000000000000000000000000000000000082 -:101E60000000000000000000000000000000000072 -:101E70000000000000000000000000000000000062 -:101E80000000000000000000000000000000000052 -:101E90000000000000000000000000000000000042 -:101EA0000000000000000000000000000000000032 -:101EB0000000000000000000000000000000000022 -:101EC0000000000000000000000000000000000012 -:101ED0000000000000000000000000000000000002 -:101EE00000000000000000000000000000000000F2 -:101EF00000000000000000000000000000000000E2 -:101F000000000000000000000000000000000000D1 -:101F100000000000000000000000000000000000C1 -:101F200000000000000000000000000000000000B1 -:101F300000000000000000000000000000000000A1 -:101F40000000000000000000000000000000000091 -:101F50000000000000000000000000000000000081 -:101F60000000000000000000000000000000000071 -:101F70000000000000000000000000000000000061 -:101F80000000000000000000000000000000000051 -:101F90000000000000000000000000000000000041 -:101FA0000000000000000000000000000000000031 -:101FB0000000000000000000000000000000000021 -:101FC0000000000000000000000000000000000011 -:101FD0000000000000000000000000000000000001 -:101FE00000000000000000000000000000000000F1 -:101FF00000000000000000000000000000000000E1 -:1020000000000000000000000000000000000000D0 -:1020100000000000000000000000000000000000C0 -:1020200000000000000000000000000000000000B0 -:1020300000000000000000000000000000000000A0 -:102040000000000000000000000000000000000090 -:102050000000000000000000000000000000000080 -:102060000000000000000000000000000000000070 -:102070000000000000000000000000000000000060 -:102080000000000000000000000000000000000050 -:102090000000000000000000000000000000000040 -:1020A0000000000000000000000000000000000030 -:1020B0000000000000000000000000000000000020 -:1020C0000000000000000000000000000000000010 -:1020D0000000000000000000000000000000000000 -:1020E00000000000000000000000000000000000F0 -:1020F00000000000000000000000000000000000E0 -:1021000000000000000000000000000000000000CF -:1021100000000000000000000000000000000000BF -:1021200000000000000000000000000000000000AF -:10213000000000000000000000000000000000009F -:10214000000000000000000000000000000000008F -:10215000000000000000000000000000000000007F -:10216000000000000000000000000000000000006F -:10217000000000000000000000000000000000005F -:10218000000000000000000000000000000000004F -:10219000000000000000000000000000000000003F -:1021A000000000000000000000000000000000002F -:1021B000000000000000000000000000000000001F -:1021C000000000000000000000000000000000000F -:1021D00000000000000000000000000000000000FF -:1021E00000000000000000000000000000000000EF -:1021F00000000000000000000000000000000000DF -:1022000000000000000000000000000000000000CE -:1022100000000000000000000000000000000000BE -:1022200000000000000000000000000000000000AE -:10223000000000000000000000000000000000009E -:10224000000000000000000000000000000000008E -:10225000000000000000000000000000000000007E -:10226000000000000000000000000000000000006E -:10227000000000000000000000000000000000005E -:10228000000000000000000000000000000000004E -:10229000000000000000000000000000000000003E -:1022A000000000000000000000000000000000002E -:1022B000000000000000000000000000000000001E -:1022C000000000000000000000000000000000000E -:1022D00000000000000000000000000000000000FE -:1022E00000000000000000000000000000000000EE -:1022F00000000000000000000000000000000000DE -:1023000000000000000000000000000000000000CD -:1023100000000000000000000000000000000000BD -:1023200000000000000000000000000000000000AD -:10233000000000000000000000000000000000009D -:10234000000000000000000000000000000000008D -:10235000000000000000000000000000000000007D -:10236000000000000000000000000000000000006D -:10237000000000000000000000000000000000005D -:10238000000000000000000000000000000000004D -:10239000000000000000000000000000000000003D -:1023A000000000000000000000000000000000002D -:1023B000000000000000000000000000000000001D -:1023C000000000000000000000000000000000000D -:1023D00000000000000000000000000000000000FD -:1023E00000000000000000000000000000000000ED -:1023F00000000000000000000000000000000000DD -:1024000000000000000000000000000000000000CC -:1024100000000000000000000000000000000000BC -:1024200000000000000000000000000000000000AC -:10243000000000000000000000000000000000009C -:10244000000000000000000000000000000000008C -:10245000000000000000000000000000000000007C -:10246000000000000000000000000000000000006C -:10247000000000000000000000000000000000005C -:10248000000000000000000000000000000000004C -:10249000000000000000000000000000000000003C -:1024A000000000000000000000000000000000002C -:1024B000000000000000000000000000000000001C -:1024C000000000000000000000000000000000000C -:1024D00000000000000000000000000000000000FC -:1024E00000000000000000000000000000000000EC -:1024F00000000000000000000000000000000000DC -:1025000000000000000000000000000000000000CB -:1025100000000000000000000000000000000000BB -:1025200000000000000000000000000000000000AB -:10253000000000000000000000000000000000009B -:10254000000000000000000000000000000000008B -:10255000000000000000000000000000000000007B -:10256000000000000000000000000000000000006B -:10257000000000000000000000000000000000005B -:10258000000000000000000000000000000000004B -:10259000000000000000000000000000000000003B -:1025A000000000000000000000000000000000002B -:1025B000000000000000000000000000000000001B -:1025C000000000000000000000000000000000000B -:1025D00000000000000000000000000000000000FB -:1025E00000000000000000000000000000000000EB -:1025F00000000000000000000000000000000000DB -:1026000000000000000000000000000000000000CA -:1026100000000000000000000000000000000000BA -:1026200000000000000000000000000000000000AA -:10263000000000000000000000000000000000009A -:10264000000000000000000000000000000000008A -:10265000000000000000000000000000000000007A -:10266000000000000000000000000000000000006A -:10267000000000000000000000000000000000005A -:10268000000000000000000000000000000000004A -:10269000000000000000000000000000000000003A -:1026A000000000000000000000000000000000002A -:1026B000000000000000000000000000000000001A -:1026C000000000000000000000000000000000000A -:1026D00000000000000000000000000000000000FA -:1026E00000000000000000000000000000000000EA -:1026F00000000000000000000000000000000000DA -:1027000000000000000000000000000000000000C9 -:1027100000000000000000000000000000000000B9 -:1027200000000000000000000000000000000000A9 -:102730000000000000000000000000000000000099 -:102740000000000000000000000000000000000089 -:102750000000000000000000000000000000000079 -:102760000000000000000000000000000000000069 -:102770000000000000000000000000000000000059 -:102780000000000000000000000000000000000049 -:102790000000000000000000000000000000000039 -:1027A0000000000000000000000000000000000029 -:1027B0000000000000000000000000000000000019 -:1027C0000000000000000000000000000000000009 -:1027D00000000000000000000000000000000000F9 -:1027E00000000000000000000000000000000000E9 -:1027F00000000000000000000000000000000000D9 -:1028000000000000000000000000000000000000C8 -:1028100000000000000000000000000000000000B8 -:1028200000000000000000000000000000000000A8 -:102830000000000000000000000000000000000098 -:102840000000000000000000000000000000000088 -:102850000000000000000000000000000000000078 -:102860000000000000000000000000000000000068 -:102870000000000000000000000000000000000058 -:102880000000000000000000000000000000000048 -:102890000000000000000000000000000000000038 -:1028A0000000000000000000000000000000000028 -:1028B0000000000000000000000000000000000018 -:1028C0000000000000000000000000000000000008 -:1028D00000000000000000000000000000000000F8 -:1028E00000000000000000000000000000000000E8 -:1028F00000000000000000000000000000000000D8 -:1029000000000000000000000000000000000000C7 -:1029100000000000000000000000000000000000B7 -:1029200000000000000000000000000000000000A7 -:102930000000000000000000000000000000000097 -:102940000000000000000000000000000000000087 -:102950000000000000000000000000000000000077 -:102960000000000000000000000000000000000067 -:102970000000000000000000000000000000000057 -:102980000000000000000000000000000000000047 -:102990000000000000000000000000000000000037 -:1029A0000000000000000000000000000000000027 -:1029B0000000000000000000000000000000000017 -:1029C0000000000000000000000000000000000007 -:1029D00000000000000000000000000000000000F7 -:1029E00000000000000000000000000000000000E7 -:1029F00000000000000000000000000000000000D7 -:102A000000000000000000000000000000000000C6 -:102A100000000000000000000000000000000000B6 -:102A200000000000000000000000000000000000A6 -:102A30000000000000000000000000000000000096 -:102A40000000000000000000000000000000000086 -:102A50000000000000000000000000000000000076 -:102A60000000000000000000000000000000000066 -:102A70000000000000000000000000000000000056 -:102A80000000000000000000000000000000000046 -:102A90000000000000000000000000000000000036 -:102AA0000000000000000000000000000000000026 -:102AB0000000000000000000000000000000000016 -:102AC0000000000000000000000000000000000006 -:102AD00000000000000000000000000000000000F6 -:102AE00000000000000000000000000000000000E6 -:102AF00000000000000000000000000000000000D6 -:102B000000000000000000000000000000000000C5 -:102B100000000000000000000000000000000000B5 -:102B200000000000000000000000000000000000A5 -:102B30000000000000000000000000000000000095 -:102B40000000000000000000000000000000000085 -:102B50000000000000000000000000000000000075 -:102B60000000000000000000000000000000000065 -:102B70000000000000000000000000000000000055 -:102B80000000000000000000000000000000000045 -:102B90000000000000000000000000000000000035 -:102BA0000000000000000000000000000000000025 -:102BB0000000000000000000000000000000000015 -:102BC0000000000000000000000000000000000005 -:102BD00000000000000000000000000000000000F5 -:102BE00000000000000000000000000000000000E5 -:102BF00000000000000000000000000000000000D5 -:102C000000000000000000000000000000000000C4 -:102C100000000000000000000000000000000000B4 -:102C200000000000000000000000000000000000A4 -:102C30000000000000000000000000000000000094 -:102C40000000000000000000000000000000000084 -:102C50000000000000000000000000000000000074 -:102C60000000000000000000000000000000000064 -:102C70000000000000000000000000000000000054 -:102C80000000000000000000000000000000000044 -:102C90000000000000000000000000000000000034 -:102CA0000000000000000000000000000000000024 -:102CB0000000000000000000000000000000000014 -:102CC0000000000000000000000000000000000004 -:102CD00000000000000000000000000000000000F4 -:102CE00000000000000000000000000000000000E4 -:102CF00000000000000000000000000000000000D4 -:102D000000000000000000000000000000000000C3 -:102D100000000000000000000000000000000000B3 -:102D200000000000000000000000000000000000A3 -:102D30000000000000000000000000000000000093 -:102D40000000000000000000000000000000000083 -:102D50000000000000000000000000000000000073 -:102D60000000000000000000000000000000000063 -:102D70000000000000000000000000000000000053 -:102D80000000000000000000000000000000000043 -:102D90000000000000000000000000000000000033 -:102DA0000000000000000000000000000000000023 -:102DB0000000000000000000000000000000000013 -:102DC0000000000000000000000000000000000003 -:102DD00000000000000000000000000000000000F3 -:102DE00000000000000000000000000000000000E3 -:102DF00000000000000000000000000000000000D3 -:102E000000000000000000000000000000000000C2 -:102E100000000000000000000000000000000000B2 -:102E200000000000000000000000000000000000A2 -:102E30000000000000000000000000000000000092 -:102E40000000000000000000000000000000000082 -:102E50000000000000000000000000000000000072 -:102E60000000000000000000000000000000000062 -:102E70000000000000000000000000000000000052 -:102E80000000000000000000000000000000000042 -:102E90000000000000000000000000000000000032 -:102EA0000000000000000000000000000000000022 -:102EB0000000000000000000000000000000000012 -:102EC0000000000000000000000000000000000002 -:102ED00000000000000000000000000000000000F2 -:102EE00000000000000000000000000000000000E2 -:102EF00000000000000000000000000000000000D2 -:102F000000000000000000000000000000000000C1 -:102F100000000000000000000000000000000000B1 -:102F200000000000000000000000000000000000A1 -:102F30000000000000000000000000000000000091 -:102F40000000000000000000000000000000000081 -:102F50000000000000000000000000000000000071 -:102F60000000000000000000000000000000000061 -:102F70000000000000000000000000000000000051 -:102F80000000000000000000000000000000000041 -:102F90000000000000000000000000000000000031 -:102FA0000000000000000000000000000000000021 -:102FB0000000000000000000000000000000000011 -:102FC0000000000000000000000000000000000001 -:102FD00000000000000000000000000000000000F1 -:102FE00000000000000000000000000000000000E1 -:102FF00000000000000000000000000000000000D1 -:00000001FF diff --git a/firmware/yamaha/ds1_dsp.fw.ihex b/firmware/yamaha/ds1_dsp.fw.ihex deleted file mode 100644 index acb0ba48f112..000000000000 --- a/firmware/yamaha/ds1_dsp.fw.ihex +++ /dev/null @@ -1,9 +0,0 @@ -:1000000081000000A40100000A0000002F00000091 -:1000100053020800170380017B4000003F8400006A -:100020003C4801003C9401003CD805003C1C000009 -:100030007BC000003F0C05003C5021010000000087 -:1000400000000000000000000000000000000000B0 -:1000500000000000000000000000000000000000A0 -:100060000000000000000000000000000000000090 -:100070000000000000000000000000000000000080 -:00000001FF diff --git a/firmware/yamaha/ds1e_ctrl.fw.ihex b/firmware/yamaha/ds1e_ctrl.fw.ihex deleted file mode 100644 index 597f429ee31a..000000000000 --- a/firmware/yamaha/ds1e_ctrl.fw.ihex +++ /dev/null @@ -1,769 +0,0 @@ -:10000000070000000700240007000C0007001C0088 -:1000100007000600020070002000000040000300FE -:100020000471000086420000400003000D0F000034 -:10003000100800003A042000820200000D020000B7 -:10004000100800003A04200082120000820E2000F6 -:100050000D800000100800003A042000821A000001 -:100060000D460300100800003A0410000DEC0200D9 -:10007000100800003A0418000D01000015000200ED -:10008000FD00000020000000608803006090030075 -:100090006080030040800300408003004080030034 -:1000A000408001007D0A0000408003004080030082 -:1000B0004080010002042000820800001A000800AD -:1000C00004090000867101000700000007002600F7 -:1000D00007004000070000008D2503001008000005 -:1000E0003A04180007002600024428007D0800009A -:1000F000428001000A16000006A205000700000069 -:10010000070044000D230000100800003A04080016 -:1001100006FA220007000000FD07000042800100EF -:100120000A0008000409000086AB020095010000E7 -:10013000040D09000700000020080000F500000081 -:100140007D0B000060F00100FD000000063A030096 -:10015000408001007D0A0000428003004A801300B5 -:100160000A00180020180000609005006088050053 -:1001700040800100FD000000428001000A00700084 -:100180001501000044110700863B03000000030036 -:100190002070000006620300408001000D36000060 -:1001A000100800003A04080006222300070000009F -:1001B0000DEC0200100800003A041800069A010035 -:1001C00007000000070024008D0F00001008000049 -:1001D0003A16000002240000025C0000FD28000026 -:1001E00020000000408001000D00080015080000FC -:1001F00084095100070000004D0000005D0E000062 -:10020000020E00000D430000100800003A04080030 -:1002100006122E00070000008D00000024090000D7 -:10022000020F00000D470000100800003A0408000B -:1002300006122E0007000000800448001012000083 -:100240003A0428008D770000100800003A0C2800BE -:100250008D060000100800003A142800024428000F -:100260008D250300100800003A0418008DFF0700D8 -:1002700020080000FD020000408001000700260069 -:1002800007002000FD020000428001000A00080073 -:100290000409000086120500070000000700240082 -:1002A0000DEC0200100800003A0418007D38000030 -:1002B000428001000A0008001510000084090100B6 -:1002C000869B01000700000006B201000700000045 -:1002D000FD080000428001000A0018000419000017 -:1002E00086B8220007002800101800003A042800F1 -:1002F000020C28000D000000100800003A1428002D -:100300008D80080020080000FD02000040800100F0 -:10031000070020000D0200000499180007000000EB -:100320002D400000BD000000FD02000042800100E1 -:100330000A00080004090000865A060007000000B1 -:1003400000010000200A00007D0400004080010040 -:10035000428001000A002000153000004421010005 -:10036000866103000700000004210000866103008D -:10037000070000008D0F0000100800003A0C280054 -:100380004439020086C90700070000001018000069 -:100390003A0428000D81080020080000FD0200003A -:1003A0004080010007002000102800003A0078007B -:1003B0008D780000100800003A04080006122A0098 -:1003C000070000000D4000001510000004991800FF -:1003D000042929000439390007000000060207003B -:1003E00007000000F50400007D0000002000000070 -:1003F0008D00000060080100408001007D040000C5 -:10040000428003004A8021000A00180044190200BB -:1004100086902200070000007540000004F1710082 -:1004200007000000420001000A0028000429000023 -:1004300086582200070000000D3C000004A930008F -:10044000070000007D070000428001000A0008004C -:100450000409000086DA08007D050000202800005D -:1004600060B0030006F20800408001002030000068 -:1004700060A8030040800100FD02000042800100EE -:100480000A0008000409000086FA080007000000BE -:100490007D050000428001000A0428008D0E000046 -:1004A000100800003A0C28000D00000010080000A1 -:1004B0003A1428000D00090020080000FD02000089 -:1004C0004080010007002000FD3D000020000000EA -:1004D000408001007D1000008D9D0000100800008C -:1004E0003A04080006122A00070000001508000060 -:1004F0001A0008008409010086510A007D130000DB -:1005000000052000200F2800608F3300608F3B0023 -:10051000608F4300608F4B00608F5300608F5B00E3 -:10052000608A0300408001007D10000042800100CD -:100530000A000800150200008409010086813A00C3 -:1005400007000000BD7F0000C43D38000700000028 -:100550007D1A000075130000428001004A00090066 -:100560000A001000048D0B00049513000700000022 -:10057000200800006090010004110000865822004D -:1005800040000100FD170000428001000A00080041 -:1005900004090000865A2200070000007D190000AF -:1005A000428003004A8009000A001000240900006C -:1005B00064160000FD110000428003004A802B00F9 -:1005C0004A8019008D0000004489210007000000C6 -:1005D0004422000086190C0007000000641A000085 -:1005E000242A00007D1900000201080022011000E9 -:1005F000200800006090030040800100FD3D0000E5 -:100600008D000000200800004080010075130000EC -:100610007D1A0000420001004A8009000A00100013 -:100620001D020000E4890100E49229004491300099 -:10063000070000000D060000150A00001D0C000058 -:1006400025100000E4A90000E42B01006404000070 -:10065000E4B30100E432020064040000640400001A -:1006600064040000640400000D040000C4B108002C -:100670000700000020080000F50B00004000030008 -:100680007D190000428003004A800900240A00000E -:100690000A000800640E0800070000002201100094 -:1006A000200800006010030040000100AC6400005E -:1006B0007D02000020000000408001007D1000004D -:1006C00042800100FD1100004A803B004A80090081 -:1006D0000A0020009500000044111A0044A1000007 -:1006E00086580E000D04000084B9000086590E00E3 -:1006F000FD18000042800100FD1000004A80090042 -:100700000A0028009500000024090100642A000066 -:1007100086490E000700000004290000865A0E00DA -:100720000700000006620E00020008008D000000B5 -:100730007D38000020080000408001007D1200008C -:10074000428001000A0010000439000086090F00F1 -:100750000D080000B5FF7F0084B9000086D90E00A7 -:100760002500000006B20F002D000000150000005B -:100770002D0800000DE002002008000006FA0F001E -:100780000D00000035807F0084B9000086A90F00AD -:10079000250040008D000000440911000700000002 -:1007A0008D01000004951000070000006491000016 -:1007B00024040000240400002404000002011000AE -:1007C000020028000DDF02002008000006FA0F00DA -:1007D0008D0100002D0400008D0000000495100024 -:1007E000070000000D0200008491100007000000C7 -:1007F0008DDF0200200800008D000000FD380000A1 -:1008000040800100FD3B00002010000060A80300B4 -:100810001508000084313100842121000700000008 -:1008200060B0030060A0030040800100FD220000D2 -:1008300095000000240901002404000024040000A5 -:100840006412000002011000200800006090030004 -:1008500040800100241900000D0F01007D390000C7 -:100860002008000040800500428003004A840900FF -:10087000060600000A040800240400002404000006 -:100880007D110000428001000A000800240A0000D7 -:1008900002052800020C28000D8009002008000035 -:1008A000FD0200004080010007002000FD22000042 -:1008B000428001000A00080095000000C40D2800D5 -:1008C000241901007D19000042800100FD11000083 -:1008D0004A8009000A001000B500000044311100F0 -:1008E000048D0A0007000000440A08000495120065 -:1008F00007000000FD2300002010000040800300DE -:10090000441210000700000020080000609003005F -:1009100040800100FD020000428001000A00080042 -:10092000040900008632120007000000FD3B0000B1 -:1009300000010000100A00007A800B004A801300BA -:10094000840909000700000095000000043D010033 -:1009500086B812000A001000020010008409090085 -:1009600007000000428003004A801100040D0900C6 -:10097000070000000A001000840D090007000000B5 -:100980007D25000020080000408001000D010000CE -:10099000100800003A1428007D1200004280010077 -:1009A0000A0020007D190000428001007D11000036 -:1009B0004A8031000A001000243100008D3B010004 -:1009C0007D390000200800004080050042800300BF -:1009D0004A840900060600000A04080002013000EB -:1009E000243100002404000024040000241200002C -:1009F000020528004C1A000086391400020070001D -:100A00002D000000000003007D380000428001003E -:100A10000A0010000662140024210000AD0000004E -:100A2000020010000D01000024090000246B0000EA -:100A30000D4A01007D3900002008000040800500BB -:100A4000428003004A840900060600000A040800E8 -:100A5000643200008D000000240A00002010000015 -:100A60007D220000408001008D4F01001008000031 -:100A70003A040800065A2B00070000002028000056 -:100A80007D200000408001007D11000042800300B5 -:100A90004A8013000A8033007D3800004280010044 -:100AA0000A00080004090000867217000700000011 -:100AB0008D000000640903000D5B01007D3900001A -:100AC0002008000040800500428003004A8409009D -:100AD000060600000A040800020138002404000091 -:100AE0002404000024120000FD02000042800100E6 -:100AF0000A0008000409000086DA1500070000005B -:100B0000020528004C1A000086711700070000003B -:100B1000642103002C630000FD3D000042800100C1 -:100B20000A00080095000000040909000700000001 -:100B3000200800004C1A0000869916004080010031 -:100B40000000030006B21600242100000D01000081 -:100B500024090000246B00000D6F01007D390000A6 -:100B60002008000040800500428003004A840900FC -:100B7000060600000A040800643A00009500000020 -:100B800024120000FD020000428001000A0008005B -:100B90000409000086121700070000000D7601000E -:100BA000100800003A040800065A2B000700000055 -:100BB000060A160007000000207000000A01080065 -:100BC0002A011000FD2000006088030060900300EF -:100BD000408001007D22000042800100FD3D0000B8 -:100BE0000A0008004A843100040900008610180039 -:100BF0008B0018008D000000049918002C310000B3 -:100C000006E21800070000004C320000866B180056 -:100C100007000000041900008668180007000000A3 -:100C200095000000449119002C220000243100009E -:100C30006C6300003D0E000075130000FD0B00000A -:100C4000420001004A8009000A001000EC8A0300FB -:100C5000EC9303004C22000086E11800070000001E -:100C60008D000000049918006C2200002C32000056 -:100C70000A053000AB1D300083200000FD18000085 -:100C8000428001000A0008002489010002053000AA -:100C90008310000075180000420001000A001000D7 -:100CA0008D00000024090100751300004205330087 -:100CB000CB0C3300CB2C3300CB343300CB3C330094 -:100CC000CB443300CB4C3300CB5433008B5C30002F -:100CD00083600000F5020000420001000A000800E5 -:100CE0000409000086B21900070000002D1E000054 -:100CF000FD050000428001000A000800248902006E -:100D0000020528000D060000100800003A0C28001B -:100D10008D000000100800003A1428008D800A00A1 -:100D200020080000F502000040000100070022003A -:100D300075120000420003004A0021008D000000EF -:100D400044091A00070000008DAB010010080000E4 -:100D50003A04080006AA2C0007000000F501000074 -:100D6000420003004A000D000A00100044910800F0 -:100D7000070000002008000040000100F5250000E9 -:100D800044310A000700000020080000602803002A -:100D9000400003007D210000428003004A800B00D8 -:100DA0000A0010002008000060100300400003004B -:100DB0008D000000240100002C010000640E0000E2 -:100DC000641A00006C6300000A0108002A01100088 -:100DD000200800006010030040000300FD20000018 -:100DE000428001000A0008007D22000042800100CC -:100DF0000A001000200800006010030040000300FB -:100E00007D190000428001000A000800FD22000058 -:100E1000428003000A001000200800006010030058 -:100E200040000300040D0900070000002008000036 -:100E300040000300428003004A800B000A001000BB -:100E400020080000601003004000030042800300FF -:100E50004A8013004A801900040D1100048D190006 -:100E6000070000000A0008002010000060180300BE -:100E700060080300400003008D00000044090B00DF -:100E8000070000002008000040000100F5050000F8 -:100E9000420003000A000800200800004000010092 -:100EA000F5000000420001000A00080004090000EB -:100EB00086981D00751E0000420003004A040100D0 -:100EC0000A0C000006AA1D00070000000204000032 -:100ED000020C00007D170000F51A0000428001009E -:100EE0004A1403004A1C03004A2403004A2C03004E -:100EF0004A3403004A3C03004A4403000A4C000001 -:100F00003D040000F5130000FD1A0000420003003C -:100F10004A000B004A801B004A8013000A00200090 -:100F20004491080044A11900E4890300EC990300EE -:100F3000025500000A5D0000420003004A000B0059 -:100F40004A801B004A8013000A00200044910800D8 -:100F500044A11900E4890300EC9903000265000034 -:100F60000A6D0000420003004A000B004A0019000D -:100F70004A802B004A8013004A8021000A0030007A -:100F80004491080044A1190044B12A00E4890300F7 -:100F9000EC990300027500000A7D0000E4A903003B -:100FA000020700007D1000001504000042800100CF -:100FB0000A000800E4090100020F0000F52A000001 -:100FC000FD190000420001004A8009000A001000DB -:100FD0003409000074160000F529000042000100E9 -:100FE0000A0010007C910000752000004200010002 -:100FF0000A00080004090000860A2000F526000007 -:10100000F5270000420003004A0009000A00100012 -:101010003C0A00007C160000751A0000FD0B000061 -:10102000420001004A8051000A00480007001600F3 -:1010300075100000420001000A2C2800121D280033 -:1010400012252800321F000007001E0007000E00B6 -:101050007519000042000100F52D00004A000D0046 -:101060000A0010004491000086EA200042000100BE -:101070000A3428005D0E00008D000000750300009A -:101080002008000040000100F4D2050004D1540003 -:101090005C730000868B21000700000007000C0035 -:1010A0000700080007000A008D1702001008000062 -:1010B0003A04080006B2340007000000069221003E -:1010C0000700000007000800752200004200010030 -:1010D0000A00200004210000865822002D1E000076 -:1010E000F5020000420001000A00080004090000A7 -:1010F00086CA210007000000102000003A043000DA -:101100007D050000C38001000A0008002489020058 -:1011100002052800020C28000D810A0020080000AA -:10112000F50200004000010007002200FD0400005D -:10113000428001000A0070000000030020700000DF -:1011400006FA0700408001008D2B02001008000005 -:101150003A04080006AA2C0007000000FD02000067 -:10116000428001000A0008000409000086C2220033 -:1011700007000000060202000700000075080000DA -:10118000FD0900000D010000064223009502000049 -:10119000750B00007D0900000D0000001505000022 -:1011A000420001000A0018000419000086002A000D -:1011B000F50600002010000040000100F5040000CA -:1011C00020080000400001007507000042000100F7 -:1011D0004A8009000A0010002411000004090000E0 -:1011E00086F2230015080000020108000412100016 -:1011F0000612240075050000041208000700000014 -:1012000002011000750500002504000024110200F1 -:1012100002011000200800006010030040000100DF -:101220002419000086002A008D00000064040000DC -:10123000049D0000861029000201180075050000B9 -:10124000420001000A0428008D010000240900006A -:10125000020D28000D0000002409000002152800DE -:101260000D00100020080000F50200004000010001 -:101270000700200075110000FD02000042800100FF -:101280000A0008000409000086FA24000700000094 -:1012900000010000200B0800600B1300600B1B0016 -:1012A000600A030040000100420005004A003D00C2 -:1012B0004A0035004A002D000A002000F506000013 -:1012C000420001000A142800F50400004200010059 -:1012D0000A00080015030000040D01008602260024 -:1012E0001540000095000000040D010086F0250067 -:1012F000220010002A001000061A26000700000035 -:101300000431330004A92A0007000000242103004F -:1013100002052800024428002411000002014000B8 -:101320002404000024040000243200002C290000C2 -:101330006C630000867327000700000064B10200A0 -:1013400064040000640400008D000000640A0000D2 -:10135000020D28008D00100020080000F50200009A -:1013600040000100070022008D00000004B9380091 -:10137000070000006C2903000A013000F50200009C -:10138000420001000A00080004090000860227004C -:10139000070000002C2100000A0528006C31000025 -:1013A0006C0400006C0400000A45280024110000B1 -:1013B000646B0000020110008D0000006C09010048 -:1013C0000A0D28000D01100020080000F5020000A1 -:1013D0004000010007002200244100002404000016 -:1013E00024040000243200000201300044290300DC -:1013F00086FA27000700000002003000F504000014 -:10140000420001000A00080015030000040D01005D -:1014100086402800243100006404000002013000EE -:10142000F5020000420001000A0008000409000063 -:10143000864A2800070000000244280024310000EA -:1014400002053000243900008305300083080000C5 -:10145000F5050000420001000A0428008D0000008C -:1014600024810000020D28008D000000248100006E -:10147000021528008D01100020080000F502000070 -:101480004000010007002200251000007505000043 -:10149000420003004A0009000A00100004090A0083 -:1014A0000411120007000000201000006008050071 -:1014B00040000500FD060000428001004A000900CE -:1014C0000A001000A500000004090A00041112001F -:1014D00007000000200800006090010040000100AB -:1014E000F5020000420001000A00080004090000A3 -:1014F00086CA2900070000000642240007000000F9 -:101500000606000007000000F5020000420001008E -:101510000A00080004090000861A2A0007000000DB -:1015200000010000200B0800608B1300608B1B0083 -:10153000608B2300608B2B00608B3300608B3B0043 -:10154000608B4300608B4B00608B5300608B5B00B3 -:10155000608B6300608B6B00608B7300608B7B0023 -:10156000608F0300608F0B00608F1300608F1B0083 -:10157000608F2300608F2B00608F3300608F3B00F3 -:10158000608F4300608F4B00608F5300608F5B0063 -:10159000608F6300608F6B00608F7300608F7B00D3 -:1015A000608A030006060000408001008D000000F4 -:1015B000640A0000020D2800240A00007D020000D9 -:1015C000428001000A00100024120000FD03000008 -:1015D000428001000A00080004090000860A2C006D -:1015E000070000008D010000240A000064040000D0 -:1015F0006404000002010800240900002404000023 -:1016000024040000020110000D00020044910000BB -:1016100086612C0007000000FD01000042800100EF -:101620000A000800440A000086432C0042800100A2 -:101630000D000A0020080000FD02000040800100AB -:10164000070020007D0200002010000006060000B8 -:1016500040800100F5020000420001000A0008007D -:101660000409000086B22C00070000007D03000082 -:10167000428001000A0008000409000086E22C00F4 -:1016800007000000750000007D2E000042000100F0 -:101690004A800B00200000000409000086060000BC -:1016A000400001004A8431008B04300083080000B0 -:1016B0008D000000100800003A1428008D00000082 -:1016C000100800003A0C28007506000042000100D6 -:1016D0000A0008001538000024090100020528004E -:1016E0000D000B0020080000F50200004000010082 -:1016F00006060000070022006404000064040000E5 -:101700000606000007000000340100008D7F000085 -:101710003C090000121D280012252800321F00007D -:1017200007000E000D0100007D03000020080000EE -:1017300040800100F4D20500070000000700080007 -:101740007D030000428001000A0008000409000037 -:10175000868A2E0007000000060600000700000031 -:101760000700000012000000070010000700320010 -:101770000700600007004600800010001A004800C3 -:101780000449000086F12E0007000000101200003E -:101790003A00580045010000045D5C0007000000AD -:1017A000800000001A0048000449000086412F0014 -:1017B00007000000101200003A0050000459000019 -:1017C00086982F0045000000C5000000F5FF7F004F -:1017D0007DFF7F0024D50700244200000201500055 -:1017E00002052000820000001A00400004410000B1 -:1017F00086C92F0007000000653800001A0040006D -:10180000204000004D10000084C1040086AB310070 -:1018100040000000070004006501000045010000D1 -:101820002040000040000000650700008000080024 -:101830001A004000044100008659300007000000F3 -:10184000101200003A0040000441000086B230004F -:101850004D000000CD000000104800003A042000B8 -:10186000820800001A0040000441000086C13000D8 -:10187000070000002048000004590000869831004D -:1018800040000000E507000080042000A0162800AA -:10189000E0163200E0163A00E01642006012020044 -:1018A0004000000032000000750040007D00000094 -:1018B00074D5070012052000820000001A004000C5 -:1018C000044100008671310007000000068A030011 -:1018D00007006400E5000000200000004000000058 -:1018E000650A0000200000004000020040000200E5 -:1018F0004000000065010000420000000A00700086 -:101900000471000086323200070000000700060064 -:10191000069A010007006400000005002070000026 -:1019200040000000068A0300070064000700000072 -:101930006D30000060880200609002000A0008001C -:101940006088020040800000120010000D100000AE -:101950008491000086D132000D0E000084910000B9 -:1019600086E133000700000007003000201000006F -:101970006D3B000040800000800000001A0008005D -:101980000409000086F13200070000002012000068 -:10199000ED0D000040800000428000000A001000B1 -:1019A0000D004000449510000700000020100000CA -:1019B000ED0D000040800000428000000A0420007D -:1019C000820000001A00080004090000868133002C -:1019D000070000006D3B0000428000000A00080084 -:1019E000150E000084090100862B340007006000FA -:1019F0001A000800150C0000840901008613340049 -:101A00002000000007001A00ED02000040800000E6 -:101A1000070062006D300000428002004A800A0028 -:101A2000200800004A800A00060600004A801000D4 -:101A30000700000012252800321F0000F4D2050024 -:101A400004D154005C73000086070000070000000A -:101A500007000C0007000A0007001C0065340000A6 -:101A60004000020020480000605002000A004000D0 -:101A700060400200400000004449450007000000AB -:101A800020400000E53A000040000000E52800008A -:101A9000420000000A0048000449000086F83900AE -:101AA000652C0000420000000A004000D500000044 -:101AB00004414500070000005506000004450500EC -:101AC00086823600D5010000044505008680360078 -:101AD000652B000042000000E53A00004A0050007B -:101AE0000A004000D4C3450007000000044545003B -:101AF00007000000CD00000044494400070000003A -:101B000004454500070000004D0100004449550010 -:101B1000070000004451040086793600652C00005F -:101B2000420000000A00480004D14C0007000000F9 -:101B300044C1040086833600070000000700160039 -:101B4000E52C0000420004000A0040002040000094 -:101B50004000000065290000420000000A0040002B -:101B60000441000086F03600070000000224000057 -:101B700006323800025C0000E5250000420000004B -:101B80000A00400074420000E52A00004200000004 -:101B90000A0040007442000012015000E5290000D4 -:101BA000420000000A0040003442000004414500A9 -:101BB000070000002040000040000000E53E00005B -:101BC0002000000040000000E52D00005201400010 -:101BD0000A0050004451040086DA3700C5000000B6 -:101BE000E53E00002040000040000000E52B000022 -:101BF000420000000A00400054424000070000007C -:101C0000E52A0000204000004000000032015000A2 -:101C10003401040074560000E5290000420002006F -:101C20000A004200420000000A0050007C4105000A -:101C3000E5280000420000000A004800C50000003E -:101C400044C14C0086A03800E5260000E5270000CE -:101C5000420002004A0040000A0050003C420000DE -:101C60007C560000E52800002048000040000000ED -:101C7000121D280012252800721F0000652900008F -:101C8000420000000A00400004410000863A39008A -:101C900007000E000700160007001E00E53E0000CA -:101CA000420000000A00400004410000867839002C -:101CB000652D0000420000000A3428006534000051 -:101CC000420002004A004200204000004A004A0050 -:101CD0004A005000F4D2050004D154005C730000A7 -:101CE00086E1390007000000060600000700080032 -:101CF00007000C000700080007000A00E5010000CB -:101D00004500020020400000600000006503000064 -:101D100040000000652E0000201A0000601A0A0032 -:101D20004000000065340000420002004A0042000A -:101D3000204000004A004A00060600004A00500009 -:101D4000FD170000428001000A000800040900009D -:101D5000865A2200070000007D100000428001002A -:101D6000FD1100004A8033004A8019000A0020005B -:101D70009500000044112A0044A1010086903B0018 -:101D80000D04000084B1000086913B00FD180000A6 -:101D900042800100FD1000004A8009000A0038005E -:101DA0009500000024090100643A000086813B0090 -:101DB000070000000439000086923B000700000085 -:101DC000069A3B000D0000008D0000002008000076 -:101DD0007D38000040800100020070007D1100008D -:101DE000428001007D1900004A8029000A0030006D -:101DF0000200380024310000240400002404000004 -:101E0000242A0000020528008D06000010080000AA -:101E10003A1428000D75000024B10000642200006F -:101E200086033D0002442800100800003A0C2800F8 -:101E30000D800B0020080000FD0200004080010022 -:101E4000070020008D75000024B100000201100081 -:101E50004421010086493E00101800003A0010009D -:101E60007D380000428001000A00080004090000DB -:101E700086483E0000000300064A3E00BD00000008 -:101E80008D00000064310200640A0000020D280089 -:101E90008D800B0020080000FD0200004080010042 -:101EA000070020007D380000428001000A00080081 -:101EB0000409000086323E0000000300FD0200001D -:101EC000428001000A0008000409000086823D00EB -:101ED00007000000102800003A0428000D750000DB -:101EE0002409030064220000020D28006C31020066 -:101EF0000A4528000D810B0020080000FD020000AB -:101F000040800100070020008D000000240A00002E -:101F1000064A3E0002011000101800003A001000AE -:101F2000BD000000103800003A0430007D180000A9 -:101F300042800100FD1800004A8009000A002000CC -:101F4000AD000000248902002C21070010100000C1 -:101F5000830530008B0D3000BB143000831C300033 -:101F6000832000007D130000428003004A84330078 -:101F7000CBAC3300CBB43300CBBC3300CBC4330089 -:101F8000CBCC3300CBD433008B5C300083600000BB -:101F90000D1E0000FD050000428001000A00200027 -:101FA000240902008D0600006CA900009D000000BD -:101FB000FD020000428001000A0008000409000040 -:101FC000866A3F0007000000020528000A0D28006D -:101FD00002442800101800003A1428008D000C005C -:101FE00020080000FD0200004080010007002200E0 -:101FF00004390000865822000D1E00007D050000F7 -:10200000428001000A00200024090200A50000000F -:10201000FD020000428001000A00080004090000DF -:10202000862A40000700000002052800020C280054 -:10203000102000003A1428000D010C0020080000B8 -:10204000FD02000040800100065A22000700220025 -:102050000000000000000000000000000000000080 -:102060000000000000000000000000000000000070 -:102070000000000000000000000000000000000060 -:102080000000000000000000000000000000000050 -:102090000000000000000000000000000000000040 -:1020A0000000000000000000000000000000000030 -:1020B0000000000000000000000000000000000020 -:1020C0000000000000000000000000000000000010 -:1020D0000000000000000000000000000000000000 -:1020E00000000000000000000000000000000000F0 -:1020F00000000000000000000000000000000000E0 -:1021000000000000000000000000000000000000CF -:1021100000000000000000000000000000000000BF -:1021200000000000000000000000000000000000AF -:10213000000000000000000000000000000000009F -:10214000000000000000000000000000000000008F -:10215000000000000000000000000000000000007F -:10216000000000000000000000000000000000006F -:10217000000000000000000000000000000000005F -:10218000000000000000000000000000000000004F -:10219000000000000000000000000000000000003F -:1021A000000000000000000000000000000000002F -:1021B000000000000000000000000000000000001F -:1021C000000000000000000000000000000000000F -:1021D00000000000000000000000000000000000FF -:1021E00000000000000000000000000000000000EF -:1021F00000000000000000000000000000000000DF -:1022000000000000000000000000000000000000CE -:1022100000000000000000000000000000000000BE -:1022200000000000000000000000000000000000AE -:10223000000000000000000000000000000000009E -:10224000000000000000000000000000000000008E -:10225000000000000000000000000000000000007E -:10226000000000000000000000000000000000006E -:10227000000000000000000000000000000000005E -:10228000000000000000000000000000000000004E -:10229000000000000000000000000000000000003E -:1022A000000000000000000000000000000000002E -:1022B000000000000000000000000000000000001E -:1022C000000000000000000000000000000000000E -:1022D00000000000000000000000000000000000FE -:1022E00000000000000000000000000000000000EE -:1022F00000000000000000000000000000000000DE -:1023000000000000000000000000000000000000CD -:1023100000000000000000000000000000000000BD -:1023200000000000000000000000000000000000AD -:10233000000000000000000000000000000000009D -:10234000000000000000000000000000000000008D -:10235000000000000000000000000000000000007D -:10236000000000000000000000000000000000006D -:10237000000000000000000000000000000000005D -:10238000000000000000000000000000000000004D -:10239000000000000000000000000000000000003D -:1023A000000000000000000000000000000000002D -:1023B000000000000000000000000000000000001D -:1023C000000000000000000000000000000000000D -:1023D00000000000000000000000000000000000FD -:1023E00000000000000000000000000000000000ED -:1023F00000000000000000000000000000000000DD -:1024000000000000000000000000000000000000CC -:1024100000000000000000000000000000000000BC -:1024200000000000000000000000000000000000AC -:10243000000000000000000000000000000000009C -:10244000000000000000000000000000000000008C -:10245000000000000000000000000000000000007C -:10246000000000000000000000000000000000006C -:10247000000000000000000000000000000000005C -:10248000000000000000000000000000000000004C -:10249000000000000000000000000000000000003C -:1024A000000000000000000000000000000000002C -:1024B000000000000000000000000000000000001C -:1024C000000000000000000000000000000000000C -:1024D00000000000000000000000000000000000FC -:1024E00000000000000000000000000000000000EC -:1024F00000000000000000000000000000000000DC -:1025000000000000000000000000000000000000CB -:1025100000000000000000000000000000000000BB -:1025200000000000000000000000000000000000AB -:10253000000000000000000000000000000000009B -:10254000000000000000000000000000000000008B -:10255000000000000000000000000000000000007B -:10256000000000000000000000000000000000006B -:10257000000000000000000000000000000000005B -:10258000000000000000000000000000000000004B -:10259000000000000000000000000000000000003B -:1025A000000000000000000000000000000000002B -:1025B000000000000000000000000000000000001B -:1025C000000000000000000000000000000000000B -:1025D00000000000000000000000000000000000FB -:1025E00000000000000000000000000000000000EB -:1025F00000000000000000000000000000000000DB -:1026000000000000000000000000000000000000CA -:1026100000000000000000000000000000000000BA -:1026200000000000000000000000000000000000AA -:10263000000000000000000000000000000000009A -:10264000000000000000000000000000000000008A -:10265000000000000000000000000000000000007A -:10266000000000000000000000000000000000006A -:10267000000000000000000000000000000000005A -:10268000000000000000000000000000000000004A -:10269000000000000000000000000000000000003A -:1026A000000000000000000000000000000000002A -:1026B000000000000000000000000000000000001A -:1026C000000000000000000000000000000000000A -:1026D00000000000000000000000000000000000FA -:1026E00000000000000000000000000000000000EA -:1026F00000000000000000000000000000000000DA -:1027000000000000000000000000000000000000C9 -:1027100000000000000000000000000000000000B9 -:1027200000000000000000000000000000000000A9 -:102730000000000000000000000000000000000099 -:102740000000000000000000000000000000000089 -:102750000000000000000000000000000000000079 -:102760000000000000000000000000000000000069 -:102770000000000000000000000000000000000059 -:102780000000000000000000000000000000000049 -:102790000000000000000000000000000000000039 -:1027A0000000000000000000000000000000000029 -:1027B0000000000000000000000000000000000019 -:1027C0000000000000000000000000000000000009 -:1027D00000000000000000000000000000000000F9 -:1027E00000000000000000000000000000000000E9 -:1027F00000000000000000000000000000000000D9 -:1028000000000000000000000000000000000000C8 -:1028100000000000000000000000000000000000B8 -:1028200000000000000000000000000000000000A8 -:102830000000000000000000000000000000000098 -:102840000000000000000000000000000000000088 -:102850000000000000000000000000000000000078 -:102860000000000000000000000000000000000068 -:102870000000000000000000000000000000000058 -:102880000000000000000000000000000000000048 -:102890000000000000000000000000000000000038 -:1028A0000000000000000000000000000000000028 -:1028B0000000000000000000000000000000000018 -:1028C0000000000000000000000000000000000008 -:1028D00000000000000000000000000000000000F8 -:1028E00000000000000000000000000000000000E8 -:1028F00000000000000000000000000000000000D8 -:1029000000000000000000000000000000000000C7 -:1029100000000000000000000000000000000000B7 -:1029200000000000000000000000000000000000A7 -:102930000000000000000000000000000000000097 -:102940000000000000000000000000000000000087 -:102950000000000000000000000000000000000077 -:102960000000000000000000000000000000000067 -:102970000000000000000000000000000000000057 -:102980000000000000000000000000000000000047 -:102990000000000000000000000000000000000037 -:1029A0000000000000000000000000000000000027 -:1029B0000000000000000000000000000000000017 -:1029C0000000000000000000000000000000000007 -:1029D00000000000000000000000000000000000F7 -:1029E00000000000000000000000000000000000E7 -:1029F00000000000000000000000000000000000D7 -:102A000000000000000000000000000000000000C6 -:102A100000000000000000000000000000000000B6 -:102A200000000000000000000000000000000000A6 -:102A30000000000000000000000000000000000096 -:102A40000000000000000000000000000000000086 -:102A50000000000000000000000000000000000076 -:102A60000000000000000000000000000000000066 -:102A70000000000000000000000000000000000056 -:102A80000000000000000000000000000000000046 -:102A90000000000000000000000000000000000036 -:102AA0000000000000000000000000000000000026 -:102AB0000000000000000000000000000000000016 -:102AC0000000000000000000000000000000000006 -:102AD00000000000000000000000000000000000F6 -:102AE00000000000000000000000000000000000E6 -:102AF00000000000000000000000000000000000D6 -:102B000000000000000000000000000000000000C5 -:102B100000000000000000000000000000000000B5 -:102B200000000000000000000000000000000000A5 -:102B30000000000000000000000000000000000095 -:102B40000000000000000000000000000000000085 -:102B50000000000000000000000000000000000075 -:102B60000000000000000000000000000000000065 -:102B70000000000000000000000000000000000055 -:102B80000000000000000000000000000000000045 -:102B90000000000000000000000000000000000035 -:102BA0000000000000000000000000000000000025 -:102BB0000000000000000000000000000000000015 -:102BC0000000000000000000000000000000000005 -:102BD00000000000000000000000000000000000F5 -:102BE00000000000000000000000000000000000E5 -:102BF00000000000000000000000000000000000D5 -:102C000000000000000000000000000000000000C4 -:102C100000000000000000000000000000000000B4 -:102C200000000000000000000000000000000000A4 -:102C30000000000000000000000000000000000094 -:102C40000000000000000000000000000000000084 -:102C50000000000000000000000000000000000074 -:102C60000000000000000000000000000000000064 -:102C70000000000000000000000000000000000054 -:102C80000000000000000000000000000000000044 -:102C90000000000000000000000000000000000034 -:102CA0000000000000000000000000000000000024 -:102CB0000000000000000000000000000000000014 -:102CC0000000000000000000000000000000000004 -:102CD00000000000000000000000000000000000F4 -:102CE00000000000000000000000000000000000E4 -:102CF00000000000000000000000000000000000D4 -:102D000000000000000000000000000000000000C3 -:102D100000000000000000000000000000000000B3 -:102D200000000000000000000000000000000000A3 -:102D30000000000000000000000000000000000093 -:102D40000000000000000000000000000000000083 -:102D50000000000000000000000000000000000073 -:102D60000000000000000000000000000000000063 -:102D70000000000000000000000000000000000053 -:102D80000000000000000000000000000000000043 -:102D90000000000000000000000000000000000033 -:102DA0000000000000000000000000000000000023 -:102DB0000000000000000000000000000000000013 -:102DC0000000000000000000000000000000000003 -:102DD00000000000000000000000000000000000F3 -:102DE00000000000000000000000000000000000E3 -:102DF00000000000000000000000000000000000D3 -:102E000000000000000000000000000000000000C2 -:102E100000000000000000000000000000000000B2 -:102E200000000000000000000000000000000000A2 -:102E30000000000000000000000000000000000092 -:102E40000000000000000000000000000000000082 -:102E50000000000000000000000000000000000072 -:102E60000000000000000000000000000000000062 -:102E70000000000000000000000000000000000052 -:102E80000000000000000000000000000000000042 -:102E90000000000000000000000000000000000032 -:102EA0000000000000000000000000000000000022 -:102EB0000000000000000000000000000000000012 -:102EC0000000000000000000000000000000000002 -:102ED00000000000000000000000000000000000F2 -:102EE00000000000000000000000000000000000E2 -:102EF00000000000000000000000000000000000D2 -:102F000000000000000000000000000000000000C1 -:102F100000000000000000000000000000000000B1 -:102F200000000000000000000000000000000000A1 -:102F30000000000000000000000000000000000091 -:102F40000000000000000000000000000000000081 -:102F50000000000000000000000000000000000071 -:102F60000000000000000000000000000000000061 -:102F70000000000000000000000000000000000051 -:102F80000000000000000000000000000000000041 -:102F90000000000000000000000000000000000031 -:102FA0000000000000000000000000000000000021 -:102FB0000000000000000000000000000000000011 -:102FC0000000000000000000000000000000000001 -:102FD00000000000000000000000000000000000F1 -:102FE00000000000000000000000000000000000E1 -:102FF00000000000000000000000000000000000D1 -:00000001FF diff --git a/firmware/yamaha/yss225_registers.bin.ihex b/firmware/yamaha/yss225_registers.bin.ihex deleted file mode 100644 index 6dd3d8c4de2b..000000000000 --- a/firmware/yamaha/yss225_registers.bin.ihex +++ /dev/null @@ -1,998 +0,0 @@ -:10000000FF000E100F00FF000E110F00FF000E1278 -:100010000F00FF000E130F00FF000E140F00FF0073 -:100020000E150F00FF000E160F00FF000E170F0039 -:10003000FF000E180F00FF000E190F00FF000E1A30 -:100040000F00FF000E1B0F00FF000E1C0F00FF0033 -:100050000E1D0F00FF000E1E0F00FF000E1F0F00F1 -:10006000FF000E200F00FF000E210F00FF000E22E8 -:100070000F00FF000E230F00FF000E240F00FF00F3 -:100080000E250F00FF000E260F00FF000E270F00A9 -:10009000FF000E280F00FF000E290F00FF000E2AA0 -:1000A0000F00FF000E2B0F00FF000E2C0F00FF00B3 -:1000B0000E2D0F00FF000E2E0F00FF000E2F0F0061 -:1000C000FF000E300F00FF000E310F00FF000E3258 -:1000D0000F00FF000E330F00FF000E340F00FF0073 -:1000E0000E350F00FF000E360F00FF000E370F0019 -:1000F000FF000E380F00FF000E390F00FF000E3A10 -:100100000F00FF000E3B0F00FF000E3C0F00FF0032 -:100110000E3D0F00FF000E3E0F00FF000E3F0F00D0 -:10012000FF000E400F00FF000E410F00FF000E42C7 -:100130000F00FF000E430F00FF000E440F00FF00F2 -:100140000E450F00FF000E460F00FF000E470F0088 -:10015000FF000E480F00FF000E490F00FF000E4A7F -:100160000F00FF000E4B0F00FF000E4C0F00FF00B2 -:100170000E4D0F00FF000E4E0F00FF000E4F0F0040 -:10018000FF000E500F00FF000E510F00FF000E5237 -:100190000F00FF000E530F00FF000E540F00FF0072 -:1001A0000E550F00FF000E560F00FF000E570F00F8 -:1001B000FF000E580F00FF000E590F00FF000E5AEF -:1001C0000F00FF000E5B0F00FF000E5C0F00FF0032 -:1001D0000E5D0F00FF000E5E0F00FF000E5F0F00B0 -:1001E000FF000E600F00FF000E610F00FF000E62A7 -:1001F0000F00FF000E630F00FF000E640F00FF00F2 -:100200000E650F00FF000E660F00FF000E670F0067 -:10021000FF000E680F00FF000E690F00FF000E6A5E -:100220000F00FF000E6B0F00FF000E6C0F00FF00B1 -:100230000E6D0F00FF000E6E0F00FF000E6F0F001F -:10024000FF000E700F00FF000E710F00FF000E7216 -:100250000F00FF000E730F00FF000E740F00FF0071 -:100260000E750F00FF000E760F00FF000E770F00D7 -:10027000FF000E780F00FF000E790F00FF000E7ACE -:100280000F00FF000E7B0F00FF000E7C0F00FF0031 -:100290000E7D0F00FF000E7E0F00FF000E7F0F008F -:1002A000FF000E800F00FF000E810F00FF000E8286 -:1002B0000F00FF000E830F00FF000E840F00FF00F1 -:1002C0000E850F00FF000E860F00FF000E870F0047 -:1002D000FF000E880F00FF000E890F00FF000E8A3E -:1002E0000F00FF000E8B0F00FF000E8C0F00FF00B1 -:1002F0000E8D0F00FF000E8E0F00FF000E8F0F00FF -:10030000FF000E900F00FF000E910F00FF000E92F5 -:100310000F00FF000E930F00FF000E940F00FF0070 -:100320000E950F00FF000E960F00FF000E970F00B6 -:10033000FF000E980F00FF000E990F00FF000E9AAD -:100340000F00FF000E9B0F00FF000E9C0F00FF0030 -:100350000E9D0F00FF000E9E0F00FF000E9F0F006E -:10036000FF000EA00F00FF000EA10F00FF000EA265 -:100370000F00FF000EA30F00FF000EA40F00FF00F0 -:100380000EA50F00FF000EA60F00FF000EA70F0026 -:10039000FF000EA80F00FF000EA90F00FF000EAA1D -:1003A0000F00FF000EAB0F00FF000EAC0F00FF00B0 -:1003B0000EAD0F00FF000EAE0F00FF000EAF0F00DE -:1003C000FF000EB00F00FF000EB10F00FF000EB2D5 -:1003D0000F00FF000EB30F00FF000EB40F00FF0070 -:1003E0000EB50F00FF000EB60F00FF000EB70F0096 -:1003F000FF000EB80F00FF000EB90F00FF000EBA8D -:100400000F00FF000EBB0F00FF000EBC0F00FF002F -:100410000EBD0F00FF000EBE0F00FF000EBF0F004D -:10042000FF000EC00F00FF000EC10F00FF000EC244 -:100430000F00FF000EC30F00FF000EC40F00FF00EF -:100440000EC50F00FF000EC60F00FF000EC70F0005 -:10045000FF000EC80F00FF000EC90F00FF000ECAFC -:100460000F00FF000ECB0F00FF000ECC0F00FF00AF -:100470000ECD0F00FF000ECE0F00FF000ECF0F00BD -:10048000FF000ED00F00FF000ED10F00FF000ED2B4 -:100490000F00FF000ED30F00FF000ED40F00FF006F -:1004A0000ED50F00FF000ED60F00FF000ED70F0075 -:1004B000FF000ED80F00FF000ED90F00FF000EDA6C -:1004C0000F00FF000EDB0F00FF000EDC0F00FF002F -:1004D0000EDD0F00FF000EDE0F00FF000EDF0F002D -:1004E000FF000EE00F00FF000EE10F00FF000EE224 -:1004F0000F00FF000EE30F00FF000EE40F00FF00EF -:100500000EE50F00FF000EE60F00FF000EE70F00E4 -:10051000FF000EE80F00FF000EE90F00FF000EEADB -:100520000F00FF000EEB0F00FF000EEC0F00FF00AE -:100530000EED0F00FF000EEE0F00FF000EEF0F009C -:10054000FF000EF00F00FF000EF10F00FF000EF293 -:100550000F00FF000EF30F00FF000EF40F00FF006E -:100560000EF50F00FF000EF60F00FF000EF70F0054 -:10057000FF000EF80F00FF000EF90F00FF000EFA4B -:100580000F00FF000EFB0F00FF000EFC0F00FF002E -:100590000EFD0F00FF000EFE0F00FF000EFF0F000C -:1005A000FF000E100F00FF000E110F00FF000E12D3 -:1005B0000F00FF000E130F00FF000E140F00FF00CE -:1005C0000E150F00FF000E160F00FF000E170F0094 -:1005D000FF000E180F00FF000E190F00FF000E1A8B -:1005E0000F00FF000E1B0F00FF000E1C0F00FF008E -:1005F0000E1D0F00FF000E1E0F00FF000E1F0F004C -:10060000FF000E200F00FF000E210F00FF000E2242 -:100610000F00FF000E230F00FF000E240F00FF004D -:100620000E250F00FF000E260F00FF000E270F0003 -:10063000FF000E280F00FF000E290F00FF000E2AFA -:100640000F00FF000E2B0F00FF000E2C0F00FF000D -:100650000E2D0F00FF000E2E0F00FF000E2F0F00BB -:10066000FF000E300F00FF000E310F00FF000E32B2 -:100670000F00FF000E330F00FF000E340F00FF00CD -:100680000E350F00FF000E360F00FF000E370F0073 -:10069000FF000E380F00FF000E390F00FF000E3A6A -:1006A0000F00FF000E3B0F00FF000E3C0F00FF008D -:1006B0000E3D0F00FF000E3E0F00FF000E3F0F002B -:1006C000FF000E400F00FF000E410F00FF000E4222 -:1006D0000F00FF000E430F00FF000E440F00FF004D -:1006E0000E450F00FF000E460F00FF000E470F00E3 -:1006F000FF000E480F00FF000E490F00FF000E4ADA -:100700000F00FF000E4B0F00FF000E4C0F00FF000C -:100710000E4D0F00FF000E4E0F00FF000E4F0F009A -:10072000FF000E500F00FF000E510F00FF000E5291 -:100730000F00FF000E530F00FF000E540F00FF00CC -:100740000E550F00FF000E560F00FF000E570F0052 -:10075000FF000E580F00FF000E590F00FF000E5A49 -:100760000F00FF000E5B0F00FF000E5C0F00FF008C -:100770000E5D0F00FF000E5E0F00FF000E5F0F000A -:10078000FF000E600F00FF000E610F00FF000E6201 -:100790000F00FF000E630F00FF000E640F00FF004C -:1007A0000E650F00FF000E660F00FF000E670F00C2 -:1007B000FF000E680F00FF000E690F00FF000E6AB9 -:1007C0000F00FF000E6B0F00FF000E6C0F00FF000C -:1007D0000E6D0F00FF000E6E0F00FF000E6F0F007A -:1007E000FF000E700F00FF000E710F00FF000E7271 -:1007F0000F00FF000E730F00FF000E740F00FF00CC -:100800000E750F00FF000E760F00FF000E770F0031 -:10081000FF000E780F00FF000E790F00FF000E7A28 -:100820000F00FF000E7B0F00FF000E7C0F00FF008B -:100830000E7D0F00FF000E7E0F00FF000E7F0F00E9 -:10084000FF000E800F00FF000E810F00FF000E82E0 -:100850000F00FF000E830F00FF000E840F00FF004B -:100860000E850F00FF000E860F00FF000E870F00A1 -:10087000FF000E880F00FF000E890F00FF000E8A98 -:100880000F00FF000E8B0F00FF000E8C0F00FF000B -:100890000E8D0F00FF000E8E0F00FF000E8F0F0059 -:1008A000FF000E900F00FF000E910F00FF000E9250 -:1008B0000F00FF000E930F00FF000E940F00FF00CB -:1008C0000E950F00FF000E960F00FF000E970F0011 -:1008D000FF000E980F00FF000E990F00FF000E9A08 -:1008E0000F00FF000E9B0F00FF000E9C0F00FF008B -:1008F0000E9D0F00FF000E9E0F00FF000E9F0F00C9 -:10090000FF000EA00F00FF000EA10F00FF000EA2BF -:100910000F00FF000EA30F00FF000EA40F00FF004A -:100920000EA50F00FF000EA60F00FF000EA70F0080 -:10093000FF000EA80F00FF000EA90F00FF000EAA77 -:100940000F00FF000EAB0F00FF000EAC0F00FF000A -:100950000EAD0F00FF000EAE0F00FF000EAF0F0038 -:10096000FF000EB00F00FF000EB10F00FF000EB22F -:100970000F00FF000EB30F00FF000EB40F00FF00CA -:100980000EB50F00FF000EB60F00FF000EB70F00F0 -:10099000FF000EB80F00FF000EB90F00FF000EBAE7 -:1009A0000F00FF000EBB0F00FF000EBC0F00FF008A -:1009B0000EBD0F00FF000EBE0F00FF000EBF0F00A8 -:1009C000FF000EC00F00FF000EC10F00FF000EC29F -:1009D0000F00FF000EC30F00FF000EC40F00FF004A -:1009E0000EC50F00FF000EC60F00FF000EC70F0060 -:1009F000FF000EC80F00FF000EC90F00FF000ECA57 -:100A00000F00FF000ECB0F00FF000ECC0F00FF0009 -:100A10000ECD0F00FF000ECE0F00FF000ECF0F0017 -:100A2000FF000ED00F00FF000ED10F00FF000ED20E -:100A30000F00FF000ED30F00FF000ED40F00FF00C9 -:100A40000ED50F00FF000ED60F00FF000ED70F00CF -:100A5000FF000ED80F00FF000ED90F00FF000EDAC6 -:100A60000F00FF000EDB0F00FF000EDC0F00FF0089 -:100A70000EDD0F00FF000EDE0F00FF000EDF0F0087 -:100A8000FF000EE00F00FF000EE10F00FF000EE27E -:100A90000F00FF000EE30F00FF000EE40F00FF0049 -:100AA0000EE50F00FF000EE60F00FF000EE70F003F -:100AB000FF000EE80F00FF000EE90F00FF000EEA36 -:100AC0000F00FF000EEB0F00FF000EEC0F00FF0009 -:100AD0000EED0F00FF000EEE0F00FF000EEF0F00F7 -:100AE000FF000EF00F00FF000EF10F00FF000EF2EE -:100AF0000F00FF000EF30F00FF000EF40F00FF00C9 -:100B00000EF50F00FF000EF60F00FF000EF70F00AE -:100B1000FF000EF80F00FF000EF90F00FF000EFAA5 -:100B20000F00FF000EFB0F00FF000EFC0F00FF0088 -:100B30000EFD0F00FF000EFE0F00FF000EFF0F0066 -:100B4000FF000802FF000B070A440D000C00FF0025 -:100B50000B070A420D000C00FF000B070A430D00B3 -:100B60000C00FF000B070A7C0D000C00FF000B07B8 -:100B70000A7E0D000C00FF000B070A460D000C005A -:100B8000FF000B070A490D000C00FF000B070A4786 -:100B90000D000C00FF000B070A4A0D000C00FF00BF -:100BA0000E100F00FF000E110F00FF000E120F00BD -:100BB000FF000E130F00FF000E140F00FF000E15B4 -:100BC0000F00FF000E160F00FF000E170F00FF00B2 -:100BD0000E180F00FF000E190F00FF000E1A0F0075 -:100BE000FF000E1B0F00FF000E1C0F00FF000E1D6C -:100BF0000F00FF000E1E0F00FF000E1F0F00FF0072 -:100C00000E200F00FF000E210F00FF000E220F002C -:100C1000FF000E230F00FF000E240F00FF000E2523 -:100C20000F00FF000E260F00FF000E270F00FF0031 -:100C30000E280F00FF000E290F00FF000E2A0F00E4 -:100C4000FF000E2B0F00FF000E2C0F00FF000E2DDB -:100C50000F00FF000E2E0F00FF000E2F0F00FF00F1 -:100C60000E300F00FF000E310F00FF000E320F009C -:100C7000FF000E330F00FF000E340F00FF000E3593 -:100C80000F00FF000E360F00FF000E370F00FF00B1 -:100C90000E380F00FF000E390F00FF000E3A0F0054 -:100CA000FF000E3B0F00FF000E3C0F00FF000E3D4B -:100CB0000F00FF000E3E0F00FF000E3F0F00FF0071 -:100CC0000E400F00FF000E410F00FF000E420F000C -:100CD000FF000E430F00FF000E440F00FF000E4503 -:100CE0000F00FF000E460F00FF000E470F00FF0031 -:100CF0000E480F00FF000E490F00FF000E4A0F00C4 -:100D0000FF000E4B0F00FF000E4C0F00FF000E4DBA -:100D10000F00FF000E4E0F00FF000E4F0F00FF00F0 -:100D20000E500F00FF000E510F00FF000E520F007B -:100D3000FF000E530F00FF000E540F00FF000E5572 -:100D40000F00FF000E560F00FF000E570F00FF00B0 -:100D50000E580F00FF000E590F00FF000E5A0F0033 -:100D6000FF000E5B0F00FF000E5C0F00FF000E5D2A -:100D70000F00FF000E5E0F00FF000E5F0F00FF0070 -:100D80000E600F00FF000E610F00FF000E620F00EB -:100D9000FF000E630F00FF000E640F00FF000E65E2 -:100DA0000F00FF000E660F00FF000E670F00FF0030 -:100DB0000E680F00FF000E690F00FF000E6A0F00A3 -:100DC000FF000E6B0F00FF000E6C0F00FF000E6D9A -:100DD0000F00FF000E6E0F00FF000E6F0F00FF00F0 -:100DE0000E700F00FF000E710F00FF000E720F005B -:100DF000FF000E730F00FF000E740F00FF000E7552 -:100E00000F00FF000E760F00FF000E770F00FF00AF -:100E10000E780F00FF000E790F00FF000E7A0F0012 -:100E2000FF000E7B0F00FF000E7C0F00FF000E7D09 -:100E30000F00FF000E7E0F00FF000E7F0F00FF006F -:100E40000E800F00FF000E810F00FF000E820F00CA -:100E5000FF000E830F00FF000E840F00FF000E85C1 -:100E60000F00FF000E860F00FF000E870F00FF002F -:100E70000E880F00FF000E890F00FF000E8A0F0082 -:100E8000FF000E8B0F00FF000E8C0F00FF000E8D79 -:100E90000F00FF000E8E0F00FF000E8F0F00FF00EF -:100EA0000E900F00FF000E910F00FF000E920F003A -:100EB000FF000E930F00FF000E940F00FF000E9531 -:100EC0000F00FF000E960F00FF000E970F00FF00AF -:100ED0000E980F00FF000E990F00FF000E9A0F00F2 -:100EE000FF000E9B0F00FF000E9C0F00FF000E9DE9 -:100EF0000F00FF000E9E0F00FF000E9F0F00FF006F -:100F00000EA00F00FF000EA10F00FF000EA20F00A9 -:100F1000FF000EA30F00FF000EA40F00FF000EA5A0 -:100F20000F00FF000EA60F00FF000EA70F00FF002E -:100F30000EA80F00FF000EA90F00FF000EAA0F0061 -:100F4000FF000EAB0F00FF000EAC0F00FF000EAD58 -:100F50000F00FF000EAE0F00FF000EAF0F00FF00EE -:100F60000EB00F00FF000EB10F00FF000EB20F0019 -:100F7000FF000EB30F00FF000EB40F00FF000EB510 -:100F80000F00FF000EB60F00FF000EB70F00FF00AE -:100F90000EB80F00FF000EB90F00FF000EBA0F00D1 -:100FA000FF000EBB0F00FF000EBC0F00FF000EBDC8 -:100FB0000F00FF000EBE0F00FF000EBF0F00FF006E -:100FC0000EC00F00FF000EC10F00FF000EC20F0089 -:100FD000FF000EC30F00FF000EC40F00FF000EC580 -:100FE0000F00FF000EC60F00FF000EC70F00FF002E -:100FF0000EC80F00FF000EC90F00FF000ECA0F0041 -:10100000FF000ECB0F00FF000ECC0F00FF000ECD37 -:101010000F00FF000ECE0F00FF000ECF0F00FF00ED -:101020000ED00F00FF000ED10F00FF000ED20F00F8 -:10103000FF000ED30F00FF000ED40F00FF000ED5EF -:101040000F00FF000ED60F00FF000ED70F00FF00AD -:101050000ED80F00FF000ED90F00FF000EDA0F00B0 -:10106000FF000EDB0F00FF000EDC0F00FF000EDDA7 -:101070000F00FF000EDE0F00FF000EDF0F00FF006D -:101080000EE00F00FF000EE10F00FF000EE20F0068 -:10109000FF000EE30F00FF000EE40F00FF000EE55F -:1010A0000F00FF000EE60F00FF000EE70F00FF002D -:1010B0000EE80F00FF000EE90F00FF000EEA0F0020 -:1010C000FF000EEB0F00FF000EEC0F00FF000EED17 -:1010D0000F00FF000EEE0F00FF000EEF0F00FF00ED -:1010E0000EF00F00FF000EF10F00FF000EF20F00D8 -:1010F000FF000EF30F00FF000EF40F00FF000EF5CF -:101100000F00FF000EF60F00FF000EF70F00FF00AC -:101110000EF80F00FF000EF90F00FF000EFA0F008F -:10112000FF000EFB0F00FF000EFC0F00FF000EFD86 -:101130000F00FF000EFE0F00FF000EFF0F0009055D -:101140000B000A000D010C7CFF000D000C1EFF00BF -:101150000D000C00FF000D000C00FF000D000CF551 -:10116000FF000D000C11FF000D000C20FF000D0012 -:101170000C32FF000D000C40FF000D000C13FF00AF -:101180000D000C00FF000D000C14FF000D020C768A -:10119000FF000D000C60FF000D000C80FF000D0231 -:1011A0000C00FF000D000C00FF000D000C00FF0004 -:1011B0000D020C00FF000D000C00FF000D000C00E4 -:1011C000FF000D000C00FF000D000C00FF000D00E3 -:1011D0000C00FF000D000C00FF000D000C00FF00D4 -:1011E0000D000C00FF000D000C00FF000D000C00B6 -:1011F000FF000D000C00FF000D000C00FF000D00B3 -:101200000C00FF000D000C00FF000D000C00FF00A3 -:101210000D000C00FF000D000C00FF000D000C0085 -:10122000FF000D000C00FF000D000C00FF000D0082 -:101230000C00FF000D000C00FF000D000C00FF0073 -:101240000D000C00FF000D000C00FF000D000C0055 -:10125000FF000D000C00FF000D000C00FF000D0052 -:101260000C00FF000D000C00FF000D000C00FF0043 -:101270000D000C00FF000D000C00FF000D000C0025 -:10128000FF000D000C00FF000D000C00FF000D0022 -:101290000C00FF000D000C00FF000D000C00FF0013 -:1012A0000D000C00FF000D000C00FF000D000C00F5 -:1012B000FF000D000C00FF000D000C00FF000D00F2 -:1012C0000C00FF000D000C18FF000D000C19FF00B2 -:1012D0000D010C1AFF000D010C20FF000D010C4048 -:1012E000FF000D010C17FF000D000C00FF000D01A9 -:1012F0000C80FF000D010C20FF000D000C10FF0002 -:101300000D010CA0FF000D030CD1FF000D000C001F -:10131000FF000D010CF2FF000D020C00FF000D009C -:101320000C13FF000D000C00FF000D000CF4FF007B -:101330000D020CE0FF000D000C15FF000D000C006D -:10134000FF000D000C16FF000D000C00FF000D004B -:101350000C17FF000D000C20FF000D000C00FF001B -:101360000D000C20FF000D000C50FF000D000C00C4 -:10137000FF000D000C40FF000D000C00FF000D00F1 -:101380000C71FF000D020C00FF000D000C60FF004F -:101390000D000C00FF000D000C92FF000D000C0072 -:1013A000FF000D000C80FF000D000C00FF000D0081 -:1013B0000CB3FF000D020C00FF000D000CA0FF009D -:1013C0000D000C00FF000D000CD4FF000D000C0000 -:1013D000FF000D000C40FF000D000C80FF000D0011 -:1013E0000CF5FF000D000C20FF000D000C70FF003D -:1013F0000D000CA0FF000D020C11FF000D000C16DB -:10140000FF000D000C00FF000D000C00FF000D00A0 -:101410000C00FF000D000C20FF000D020C00FF006F -:101420000D000C20FF000D000C10FF000D000C172C -:10143000FF000D000C1BFF000D000C1DFF000D0236 -:101440000CDFFF0009050B010A000D000C00FF0076 -:101450000D000C00FF000D000C00FF000D020C0041 -:10146000FF000D000C19FF000D000C1FFF000D0008 -:101470000C00FF000D000C00FF000D000C00FF0031 -:101480000D030CD8FF000D000C00FF000D020C2016 -:10149000FF000D000C19FF000D000C00FF000D00F7 -:1014A0000C00FF000D000C18FF000D010CC0FF0028 -:1014B0000D010CFAFF000D000C1AFF000D000C00CE -:1014C000FF000D000C00FF000D000C00FF000D00E0 -:1014D0000C00FF000D000C00FF000D000C00FF00D1 -:1014E0000D000C00FF000D000C00FF000D000C00B3 -:1014F000FF000D000C00FF000D000C00FF000D00B0 -:101500000C00FF000D000C00FF000D000C00FF00A0 -:101510000D000C00FF000D000C00FF000D000C0082 -:10152000FF000D000C00FF000D000C00FF000D007F -:101530000C00FF000D000C00FF000D000C00FF0070 -:101540000D000C00FF000D000C00FF000D000C0052 -:10155000FF000D000C00FF000D000C00FF000D004F -:101560000C00FF000D000C00FF000D000C00FF0040 -:101570000D000C00FF000D000C00FF000D000C0022 -:10158000FF000D000C00FF000D000C00FF000D001F -:101590000C00FF000D000C00FF000D000C00FF0010 -:1015A0000D000C00FF000D000C00FF000D000C00F2 -:1015B000FF000D000C00FF000D000C00FF000D00EF -:1015C0000C00FF000D000C00FF000D020C40FF009E -:1015D0000D020C60FF000D000C00FF000D000C0060 -:1015E000FF000D000C00FF000D020CC0FF000D02FB -:1015F0000C80FF000D000C00FF000D020CFBFF0033 -:101600000D020CA0FF000D000C00FF000D000C1BD4 -:10161000FF000D020CD7FF000D000C00FF000D02B3 -:101620000CF7FF000D030C20FF000D030C00FF0062 -:101630000D000C00FF000D000C1CFF000D030C3C06 -:10164000FF000D000C00FF000D030C3FFF000D001C -:101650000C00FF000D030CC0FF000D000C00FF008C -:101660000D030CDFFF000D000C00FF000D000C004F -:10167000FF000D030C5DFF000D000C00FF000D03CB -:101680000CC0FF000D000C00FF000D030C7DFF00DF -:101690000D000C00FF000D030CC0FF000D000C003E -:1016A000FF000D030C9EFF000D000C00FF000D035A -:1016B0000CC0FF000D000C00FF000D030CBEFF006E -:1016C0000D000C00FF000D030CC0FF000D000C000E -:1016D000FF000D000C00FF000D000C00FF000D00CE -:1016E0000C00FF000D000C1BFF000D000C00FF00A4 -:1016F0000D000C00FF000D000C00FF000D020CDBC4 -:10170000FF000D000C00FF000D020CDBFF000D00C0 -:101710000C00FF000D020CE0FF000D000C00FF00AC -:101720000D020CFBFF000D000C00FF000D020CC0B1 -:10173000FF000D020C40FF000D020CFBFF000D022C -:101740000C60FF000D000C1BFF0009050B020A00D6 -:101750000CC4FF000C00FF000C44FF000C07FF004E -:101760000C44FF000C00FF000C40FF000C25FF00A4 -:101770000C01FF000C06FF000CC4FF000C07FF006B -:101780000C40FF000C25FF000C01FF000C00FF00C7 -:101790000C46FF000C46FF000C00FF000C00FF0091 -:1017A0000C00FF000C00FF000C00FF000C00FF000D -:1017B0000C00FF000C00FF000C00FF000C00FF00FD -:1017C0000C00FF000C00FF000C00FF000C00FF00ED -:1017D0000C00FF000C00FF000C00FF000C00FF00DD -:1017E0000C00FF000C00FF000C00FF000C00FF00CD -:1017F0000C00FF000C00FF000C00FF000C00FF00BD -:101800000C00FF000C00FF000C00FF000C00FF00AC -:101810000C00FF000C00FF000C00FF000C00FF009C -:101820000C00FF000C00FF000C00FF000C00FF008C -:101830000C00FF000C00FF000C00FF000C00FF007C -:101840000C00FF000C00FF000C00FF000C00FF006C -:101850000C46FF000C07FF000C05FF000C05FF0005 -:101860000C05FF000C04FF000C07FF000C05FF0037 -:101870000C04FF000C07FF000C05FF000C44FF00E8 -:101880000C46FF000C44FF000C46FF000C46FF0016 -:101890000C07FF000C05FF000C44FF000C46FF0086 -:1018A0000C05FF000C46FF000C05FF000C46FF0076 -:1018B0000C05FF000C46FF000C05FF000C44FF0068 -:1018C0000C46FF000C05FF000C07FF000C44FF0056 -:1018D0000C46FF000C05FF000C07FF000C44FF0046 -:1018E0000C46FF000C05FF000C07FF000C44FF0036 -:1018F0000C46FF000C05FF000C07FF000C44FF0026 -:101900000C05FF000C05FF000C05FF000C44FF0058 -:101910000C05FF000C05FF000C05FF000C46FF0046 -:101920000C05FF000C46FF000C05FF000C46FF00F5 -:101930000C05FF000C46FF000C05FF000C46FF00E5 -:101940000C07FF000C46FF000C07FF000C44FF00D3 -:1019500009050B030A000C07FF000C40FF000C00F8 -:10196000FF000C00FF000C00FF000C47FF000C0004 -:10197000FF000C40FF000C00FF000C40FF000C06B5 -:10198000FF000C40FF000C00FF000C00FF000C00EB -:10199000FF000C00FF000C00FF000C00FF000C001B -:1019A000FF000C00FF000C00FF000C00FF000C000B -:1019B000FF000C00FF000C00FF000C00FF000C00FB -:1019C000FF000C00FF000C00FF000C00FF000C00EB -:1019D000FF000C00FF000C00FF000C00FF000C00DB -:1019E000FF000C00FF000C00FF000C00FF000C00CB -:1019F000FF000C00FF000C00FF000C00FF000C00BB -:101A0000FF000C00FF000C00FF000C00FF000C00AA -:101A1000FF000C00FF000C00FF000C00FF000C009A -:101A2000FF000C00FF000C00FF000C00FF000C008A -:101A3000FF000C00FF000C00FF000C00FF000C007A -:101A4000FF000C00FF000C00FF000C00FF000C006A -:101A5000FF000C00FF000C80FF000C80FF000CC09A -:101A6000FF000C00FF000C00FF000C40FF000C000A -:101A7000FF000C00FF000C00FF000C40FF000C00FA -:101A8000FF000C40FF000C00FF000C60FF000C008A -:101A9000FF000C70FF000C00FF000C40FF000C006A -:101AA000FF000C40FF000C00FF000C42FF000C0088 -:101AB000FF000C40FF000C00FF000C02FF000C00B8 -:101AC000FF000C40FF000C00FF000C00FF000C00AA -:101AD000FF000C40FF000C00FF000C00FF000C009A -:101AE000FF000C40FF000C00FF000C00FF000C008A -:101AF000FF000C40FF000C00FF000C00FF000C007A -:101B0000FF000C40FF000C00FF000C00FF000C0069 -:101B1000FF000C42FF000C00FF000C40FF000C0017 -:101B2000FF000C42FF000C00FF000C02FF000C0045 -:101B3000FF000C02FF000C00FF000C02FF000C0075 -:101B4000FF000C42FF000C00FF000CC0FF000C0067 -:101B5000FF000C40FF0009050B040A000C63FF00A6 -:101B60000C03FF000C26FF000C02FF000C2CFF00F2 -:101B70000C00FF000C24FF000C00FF000C2EFF00E7 -:101B80000C02FF000C02FF000C02FF000C00FF0023 -:101B90000C00FF000C00FF000C00FF000C00FF0019 -:101BA0000C00FF000C00FF000C00FF000C00FF0009 -:101BB0000C00FF000C00FF000C00FF000C00FF00F9 -:101BC0000C00FF000C00FF000C00FF000C00FF00E9 -:101BD0000C00FF000C00FF000C00FF000C00FF00D9 -:101BE0000C00FF000C00FF000C00FF000C00FF00C9 -:101BF0000C00FF000C00FF000C00FF000C00FF00B9 -:101C00000C00FF000C00FF000C00FF000C00FF00A8 -:101C10000C00FF000C00FF000C00FF000C00FF0098 -:101C20000C00FF000C00FF000C00FF000C00FF0088 -:101C30000C00FF000C00FF000C00FF000C00FF0078 -:101C40000C00FF000C00FF000C00FF000C00FF0068 -:101C50000C00FF000C00FF000C00FF000C00FF0058 -:101C60000C01FF000C20FF000C00FF000C60FF00C7 -:101C70000C00FF000C20FF000C00FF000C20FF00F8 -:101C80000C00FF000C20FF000C00FF000C20FF00E8 -:101C90000C00FF000C20FF000C00FF000C20FF00D8 -:101CA0000C00FF000C20FF000C00FF000C20FF00C8 -:101CB0000C00FF000C60FF000C00FF000C20FF0078 -:101CC0000C00FF000C60FF000C00FF000C20FF0068 -:101CD0000C00FF000C60FF000C00FF000C20FF0058 -:101CE0000C00FF000C60FF000C00FF000C20FF0048 -:101CF0000C00FF000C60FF000C00FF000C20FF0038 -:101D00000C00FF000C60FF000C00FF000C20FF0027 -:101D10000C00FF000C20FF000C00FF000C22FF0055 -:101D20000C02FF000C22FF000C02FF000C20FF0041 -:101D30000C00FF000C60FF000C00FF000C22FF00F5 -:101D40000C02FF000C62FF000C02FF000C20FF00E1 -:101D50000C01FF000C21FF000C01FF0009010B0624 -:101D60000A000D000C00FF000A020D000C00FF002D -:101D70000A040D000C00FF000A060D000C00FF0015 -:101D80000A080D000C00FF000A0A0D000C00FF00FD -:101D90000A0C0D000C00FF000A0E0D000C00FF00E5 -:101DA0000A100D000C00FF000A120D000C00FF00CD -:101DB0000A140D000C00FF000A160D000C00FF00B5 -:101DC0000A180D000C00FF000A1A0D000C00FF009D -:101DD0000A1C0D000C00FF000A1E0D000C00FF0085 -:101DE0000A200D000C00FF000A220D000C00FF006D -:101DF0000A240D000C00FF000A260D000C00FF0055 -:101E00000A280D000C00FF000A2A0D000C00FF003C -:101E10000A2C0D000C00FF000A2E0D000C00FF0024 -:101E20000A300D000C00FF000A320D000C00FF000C -:101E30000A340D000C00FF000A360D000C00FF00F4 -:101E40000A380D000C00FF000A3A0D000C00FF00DC -:101E50000A3C0D000C00FF000A3E0D000C00FF00C4 -:101E60000A400D000C00FF000A420D030C00FF00A9 -:101E70000A440D010C00FF000A460D0A0C21FF0068 -:101E80000A480D0D0C23FF000A4A0D230C1BFF000E -:101E90000A4C0D370C8FFF000A4E0D450C77FF00E2 -:101EA0000A500D520CE2FF000A520D1C0C92FF006A -:101EB0000A540D1C0C52FF000A560D070C00FF00BF -:101EC0000A580D2F0CC6FF000A5A0D0B0C00FF001C -:101ED0000A5C0D300C06FF000A5E0D170C00FF00B7 -:101EE0000A600D3D0CDAFF000A620D290C00FF00AC -:101EF0000A640D3E0C41FF000A660D390C00FF001C -:101F00000A680D4C0C48FF000A6A0D490C00FF00DE -:101F10000A6C0D4C0C6CFF000A6E0D110CD2FF0008 -:101F20000A700D160C0CFF000A720D000C00FF0069 -:101F30000A740D000C80FF000A760D0F0C00FF00E4 -:101F40000A780D000C80FF000A7A0D130C00FF00C8 -:101F50000A7C0D800C00FF000A7E0D800C80FF00C3 -:101F600009050B070A000D0F0CFFFF000D000C0008 -:101F7000FF000D080C00FF000D080C00FF000D0213 -:101F80000C00FF000D000C00FF000D000C00FF0016 -:101F90000D0F0CFFFF000D000C00FF000D000C00EA -:101FA000FF000D080C00FF000D080C00FF000D00E5 -:101FB0000C00FF000D0F0CFFFF000D000C00FF00D8 -:101FC0000D000C00FF000D0F0CFFFF000D0F0CFFAC -:101FD000FF000D000C00FF000D000C00FF000D00C5 -:101FE0000C00FF000D000C00FF000D000C00FF00B6 -:101FF0000D000C00FF000D000C00FF000D000C0098 -:10200000FF000D000C00FF000D000C00FF000D0094 -:102010000C00FF000D000C00FF000D000C00FF0085 -:102020000D000C00FF000D000C00FF000D000C0067 -:10203000FF000D000C00FF000D000C00FF000D0064 -:102040000C00FF000D000C00FF000D000C00FF0055 -:102050000D000C00FF000D000C00FF000D000C0037 -:10206000FF000D000C00FF000D000C00FF000D0034 -:102070000C00FF000D000C00FF000D000C00FF0025 -:102080000D000C00FF000D000C00FF000D000C0007 -:10209000FF000D000C00FF000D000C00FF000D0004 -:1020A0000C00FF000D000C00FF000D000C00FF00F5 -:1020B0000D000C00FF000D000C00FF000D000C00D7 -:1020C000FF000D000C00FF000D000C00FF000D00D4 -:1020D0000C00FF000D000C00FF000D000C00FF00C5 -:1020E0000D000C00FF000D000C00FF000D000C00A7 -:1020F000FF000D000C00FF000D000C00FF000D00A4 -:102100000C00FF000D000C00FF000D000C00FF0094 -:102110000D000C00FF000D000C00FF000D000C0076 -:10212000FF000D000C00FF000D0F0CFFFF000D0F56 -:102130000CFFFF000D0F0CFFFF000D0F0CFFFF0049 -:102140000D020CE9FF000D060C8CFF000D060C8C37 -:10215000FF000D0F0CFFFF000D1A0C75FF000D0D99 -:102160000C8BFF000D040CE9FF000D0B0C16FF009B -:102170000D1A0C38FF000D0D0CC8FF000D040C6F7C -:10218000FF000D0B0C91FF000D0F0CFFFF000D0663 -:102190000C40FF000D060C40FF000D020C8FFF00ED -:1021A0000D0F0CFFFF000D060C62FF000D060C6208 -:1021B000FF000D020C7BFF000D0F0CFFFF000D0652 -:1021C0000C97FF000D060C97FF000D020C52FF004C -:1021D0000D0F0CFFFF000D060CF6FF000D060CF6B0 -:1021E000FF000D020C19FF000D050C55FF000D0539 -:1021F0000C55FF000D050C55FF000D050C55FF009B -:102200000D050C55FF000D050C55FF000D050C5577 -:10221000FF000D050C55FF000D140CDAFF000D0D2D -:102220000C93FF000D040CDAFF000D050C93FF006A -:102230000D140CDAFF000D0D0C93FF000D040CDAE9 -:10224000FF000D050C93FF000D000C00FF000D00BA -:102250000C00FF000D000C00FF000D000C00FF0043 -:102260000D020C00FF000E010F00FF000E020F0018 -:10227000FF000E010F01FF000E020F00FF000E0114 -:102280000F02FF000E020F00FF000E010F03FF0000 -:102290000E020F00FF000E010F04FF000E020F00E0 -:1022A000FF000E010F05FF000E020F00FF000E01E0 -:1022B0000F06FF000E020F00FF000E010F07FF00C8 -:1022C0000E020F00FF000E010F08FF000E020F00AC -:1022D000FF000E010F09FF000E020F00FF000E01AC -:1022E0000F0AFF000E020F00FF000E010F0BFF0090 -:1022F0000E020F00FF000E010F0CFF000E020F0078 -:10230000FF000E010F0DFF000E020F00FF000E0177 -:102310000F0EFF000E020F00FF000E010F0FFF0057 -:102320000E020F00FF000EB00F20FF000EB10F20B5 -:10233000FF000EB20F20FF000EB30F20FF000EB4FF -:102340000F20FF000EB50F20FF000EB60F20FF007C -:102350000EB70F20FF000EB80F20FF000EB90F20A0 -:10236000FF000EBA0F20FF000EBB0F20FF000EBCB7 -:102370000F20FF000EBD0F20FF000EBE0F20FF003C -:102380000EBF0F20FF000EF00F20FF000EF10F20F8 -:10239000FF000EF20F20FF000EF30F20FF000EF4DF -:1023A0000F20FF000EF50F20FF000EF60F20FF009C -:1023B0000EF70F20FF000EF80F20FF000EF90F2080 -:1023C000FF000EFA0F20FF000EFB0F20FF000EFC97 -:1023D0000F20FF000EFD0F20FF000EFE0F20FF005C -:1023E0000EFF0F20FF000E100FFFFF000E110FFF5A -:1023F000FF000E120FFFFF000E130FFFFF000E1461 -:102400000FFFFF000E150FFFFF000E160FFFFF005E -:102410000E170FFFFF000E180FFFFF000E190FFF22 -:10242000FF000E1A0FFFFF000E1B0FFFFF000E1C18 -:102430000FFFFF000E1D0FFFFF000E1E0F40FF00DD -:102440000E1F0FFFFF000E200FFFFF000E210FFFDA -:10245000FF000E220FFFFF000E230FFFFF000E24D0 -:102460000FFFFF000E250FFFFF000E260FFFFF00DE -:102470000E270FFFFF000E280FFFFF000E290FFF92 -:10248000FF000E2A0FFFFF000E2B0FFFFF000E2C88 -:102490000FFFFF000E2D0FFFFF000E2E0F00FF009D -:1024A0000E2F0F00FF000E300F00FF000E310F0047 -:1024B000FF000E320F00FF000E330F00FF000E343E -:1024C0000F00FF000E350F00FF000E360F00FF005B -:1024D0000E370F00FF000E380F00FF000E390F00FF -:1024E000FF000E3A0F00FF000E3B0F00FF000E3CF6 -:1024F0000F00FF000E3D0F00FF000E3E0F00FF001B -:102500000E3F0F20FF000E400F00FF000E410F0096 -:10251000FF000E420F00FF000E430F00FF000E44AD -:102520000F00FF000E450F00FF000E460F00FF00DA -:102530000E470F00FF000E480F00FF000E490F006E -:10254000FF000E4A0F00FF000E4B0F00FF000E4C65 -:102550000F00FF000E4D0F00FF000E4E0F0EFF008C -:102560000E4F0F0EFF000E500F00FF000E510F0018 -:10257000FF000E520F00FF000E530F00FF000E541D -:102580000F00FF000E550F00FF000E560F00FF005A -:102590000E570F00FF000E580F00FF000E590F00DE -:1025A000FF000E5A0F00FF000E5B0F00FF000E5CD5 -:1025B0000F00FF000E5D0F00FF000E5E0F00FF001A -:1025C0000E5F0F00FF000E600F00FF000E610F0096 -:1025D000FF000E620F00FF000E630F00FF000E648D -:1025E0000F00FF000E650F00FF000E660F00FF00DA -:1025F0000E670F00FF000E680F00FF000E690F004E -:10260000FF000E6A0F00FF000E6B0F00FF000E6C44 -:102610000F40FF000E6D0F00FF000E6E0F40FF0019 -:102620000E6F0F40FF000E700FC0FF000E710FC045 -:10263000FF000E720FC0FF000E730FC0FF000E747C -:102640000FC0FF000E750FC0FF000E760FC0FF0019 -:102650000E770FC0FF000E780FC0FF000E790FC07D -:10266000FF000E7A0FC0FF000E7B0FC0FF000E7C34 -:102670000FC0FF000E7D0FC0FF000E7E0FC0FF00D9 -:102680000E7F0FC0FF000E800F00FF000E810F00B5 -:10269000FF000E820F00FF000E830F00FF000E846C -:1026A0000F00FF000E850F00FF000E860F00FF00D9 -:1026B0000E870F00FF000E880F00FF000E890F002D -:1026C000FF000E8A0F00FF000E8B0F00FF000E8C24 -:1026D0000F00FF000E8D0F00FF000E8E0F00FF0099 -:1026E0000E8F0F00FF000E900F00FF000E910F00E5 -:1026F000FF000E920F00FF000E930F00FF000E94DC -:102700000F00FF000E950F00FF000E960F00FF0058 -:102710000E970F00FF000E980F00FF000E990F009C -:10272000FF000E9A0F00FF000E9B0F00FF000E9C93 -:102730000F00FF000E9D0F00FF000E9E0F00FF0018 -:102740000E9F0F00FF000EA00F00FF000EA10F0054 -:10275000FF000EA20F00FF000EA30F00FF000EA44B -:102760000F00FF000EA50F00FF000EA60F00FF00D8 -:102770000EA70F00FF000EA80F00FF000EA90F000C -:10278000FF000EAA0F00FF000EAB0F00FF000EAC03 -:102790000F00FF000EAD0F00FF000EAE0F00FF0098 -:1027A0000EAF0F00FF000EC00F00FF000EC10F00A4 -:1027B000FF000EC20F00FF000EC30F00FF000EC48B -:1027C0000F00FF000EC50F00FF000EC60F00FF0038 -:1027D0000EC70F00FF000EC80F00FF000EC90F004C -:1027E000FF000ECA0F00FF000ECB0F00FF000ECC43 -:1027F0000F00FF000ECD0F00FF000ECE0F00FF00F8 -:102800000ECF0F00FF000ED00F00FF000ED10F0003 -:10281000FF000ED20F00FF000ED30F00FF000ED4FA -:102820000F00FF000ED50F00FF000ED60F00FF00B7 -:102830000ED70F00FF000ED80F00FF000ED90F00BB -:10284000FF000EDA0F00FF000EDB0F00FF000EDCB2 -:102850000F00FF000EDD0F00FF000EDE0F10FF0067 -:102860000EDF0F10FF000EE00F00FF000EE10F0063 -:10287000FF000EE20F00FF000EE30F00FF000EE46A -:102880000F00FF000EE50F00FF000EE60F00FF0037 -:102890000EE70F00FF000EE80F00FF000EE90F002B -:1028A000FF000EEA0F00FF000EEB0F00FF000EEC22 -:1028B0000F00FF000EED0F00FF000EEE0F00FF00F7 -:1028C0000EEF0F00FF000E010F000E020F01FF00C0 -:1028D0000E010F010E020F01FF000E010F020E028A -:1028E0000F01FF000E010F030E020F01FF000E018A -:1028F0000F040E020F01FF000E010F050E020F0163 -:10290000FF000E010F060E020F01FF000E010F0760 -:102910000E020F01FF000E010F080E020F01FF0053 -:102920000E010F090E020F01FF000E010F0A0E0229 -:102930000F01FF000E010F0B0E020F01FF000E0131 -:102940000F0C0E020F01FF000E010F0D0E020F0102 -:10295000FF000E010F0E0E020F01FF000E010F0F00 -:102960000E020F01FF0008020B070A460D000C00C3 -:10297000FF000B070A490D000C00FF000B000A4B7B -:102980000D030C11FF000B000A4D0D010C32FF006E -:102990000B070A460D000C00FF000B070A490D004B -:1029A0000C00FF000B070A400D000C00FF000B0796 -:1029B0000A410D000C00FF000B010A400D020C4003 -:1029C000FF000B010A410D020C60FF000B070A40DB -:1029D0000D000C00FF000B070A410D000C00FF006A -:1029E0000B070A470D000C00FF000B070A4A0D00F9 -:1029F0000C00FF000B000A470D010C00FF000B004C -:102A00000A4A0D010C20FF000B070A470D000C00BD -:102A1000FF000B070A4A0D000C00FF000B070A7CA1 -:102A20000D000C00FF000B070A7E0D000C00FF00DC -:102A30000B000A000D010C1CFF000B070A7C0D00A7 -:102A40000C00FF000B070A7E0D000C00FF000B07B7 -:102A50000A440D000C00FF000B000A440D010C009D -:102A6000FF000B070A440D000C00FF000B070A4291 -:102A70000D000C00FF000B070A430D000C00FF00C7 -:102A80000B000A420D010C1AFF000B000A430D0156 -:102A90000C20FF000B070A420D000C00FF000B0783 -:102AA0000A430D000C00FF000B070A400D000C004C -:102AB000FF000B070A410D000C00FF000B010A404C -:102AC0000D020C40FF000B010A410D020C60FF00DB -:102AD0000B070A400D000C00FF000B070A410D0018 -:102AE0000C00FF000B070A440D0F0CFFFF000B0743 -:102AF0000A420D000C00FF000B070A430D000C00FA -:102B0000FF000B070A400D000C00FF000B070A41F5 -:102B10000D000C00FF000B070A510D060C40FF00D2 -:102B20000B070A500D060C40FF000B070A4F0D0360 -:102B30000C81FF000B070A530D1A0C76FF000B07E0 -:102B40000A540D0D0C8BFF000B070A550D040CE900 -:102B5000FF000B070A560D0B0C17FF000B070A5757 -:102B60000D1A0C38FF000B070A580D0D0CC9FF0099 -:102B70000B070A590D040C6FFF000B070A5A0D0BC7 -:102B80000C91FF000B070A730D140CDAFF000B0702 -:102B90000A740D0D0C93FF000B070A750D040CD978 -:102BA000FF000B070A760D050C93FF000B070A7751 -:102BB0000D140CDAFF000B070A780D0D0C93FF00C3 -:102BC0000B070A790D040CD9FF000B070A7A0D05D3 -:102BD0000C93FF000B070A5E0D030C68FF000B0748 -:102BE0000A5C0D040C31FF000B070A5D0D040C316B -:102BF000FF000B070A620D030C52FF000B070A606F -:102C00000D040C76FF000B070A610D040C76FF0023 -:102C10000B070A660D030C2EFF000B070A640D0458 -:102C20000CDAFF000B070A650D040CDAFF000B0736 -:102C30000A6A0D020CF6FF000B070A680D050C620C -:102C4000FF000B070A690D050C62FF000B060A4620 -:102C50000D0A0C22FF000B060A480D0D0C24FF0084 -:102C60000B060A6E0D110CD3FF000B060A700D1532 -:102C70000CCBFF000B060A520D200C93FF000B0635 -:102C80000A540D200C54FF000B060A4A0D270C1D98 -:102C9000FF000B060A580D2F0CC8FF000B060A5C3C -:102CA0000D300C07FF000B060A4C0D370C90FF008F -:102CB0000B060A600D3D0CDBFF000B060A640D3E9F -:102CC0000C42FF000B060A4E0D450C78FF000B0668 -:102CD0000A680D4C0C48FF000B060A6C0D4C0C6C7E -:102CE000FF000B060A500D520CE2FF000B060A42D1 -:102CF0000D020CBAFF00FF000E1E0F14FF000EDEC7 -:102D00000F20FF000EDF0F20FF000B060A780D00DA -:102D10000C40FF000B070A030D0F0CFFFF000B0711 -:102D20000A0B0D0F0CFFFF000B070A020D000C0031 -:102D3000FF000B070A0A0D000C00FF000B070A46F4 -:102D40000D000C00FF000B070A490D000C000905DF -:102D50000B000A100D000C00FF000D000C00FF001E -:102D60000D020C00FF000D000C00FF000D000C0018 -:102D7000FF000D000C00FF000D000C00FF000D0017 -:102D80000C00FF000D000C00FF000D000C00FF0008 -:102D90000D000C00FF000D000C00FF000D000C00EA -:102DA000FF000D000C00FF000D000C00FF000D00E7 -:102DB0000C00FF000D000C00FF000D000C00FF00D8 -:102DC0000D000C00FF000D000C00FF000D000C00BA -:102DD000FF000D000C00FF000D000C00FF000D00B7 -:102DE0000C00FF000D000C00FF000D000C00FF00A8 -:102DF0000D000C00FF000D000C00FF000D000C008A -:102E0000FF000D000C00FF000D000C00FF000D0086 -:102E10000C00FF000D000C00FF000D000C00FF0077 -:102E20000D000C00FF000D000C00FF000D000C0059 -:102E3000FF000D000C00FF000D000C00FF000D0056 -:102E40000C00FF000D000C00FF000D000C00FF0047 -:102E50000D000C00FF000D000C00FF000D000C0029 -:102E6000FF000D000C00FF000D000C00FF000D0026 -:102E70000C00FF0009050B010A100D010CC0FF003A -:102E80000D010CFAFF000D000C1AFF000D000C00E4 -:102E9000FF000D000C00FF000D000C00FF000D00F6 -:102EA0000C00FF000D000C00FF000D000C00FF00E7 -:102EB0000D000C00FF000D000C00FF000D000C00C9 -:102EC000FF000D000C00FF000D000C00FF000D00C6 -:102ED0000C00FF000D000C00FF000D000C00FF00B7 -:102EE0000D000C00FF000D000C00FF000D000C0099 -:102EF000FF000D000C00FF000D000C00FF000D0096 -:102F00000C00FF000D000C00FF000D000C00FF0086 -:102F10000D000C00FF000D000C00FF000D000C0068 -:102F2000FF000D000C00FF000D000C00FF000D0065 -:102F30000C00FF000D000C00FF000D000C00FF0056 -:102F40000D000C00FF000D000C00FF000D000C0038 -:102F5000FF000D000C00FF000D000C00FF000D0035 -:102F60000C00FF000D000C00FF000D000C00FF0026 -:102F70000D000C00FF000D000C00FF000D000C0008 -:102F8000FF000D000C00FF000D000C00FF000D0005 -:102F90000C00FF000D000C00FF00FF00FF00090502 -:102FA0000B020A100C46FF000C46FF000C00FF004D -:102FB0000C00FF000C00FF000C00FF000C00FF00E5 -:102FC0000C00FF000C00FF000C00FF000C00FF00D5 -:102FD0000C00FF000C00FF000C00FF000C00FF00C5 -:102FE0000C00FF000C00FF000C00FF000C00FF00B5 -:102FF0000C00FF000C00FF000C00FF000C00FF00A5 -:103000000C00FF000C00FF000C00FF000C00FF0094 -:103010000C00FF000C00FF000C00FF000C00FF0084 -:103020000C00FF000C00FF000C00FF000C00FF0074 -:103030000C00FF000C00FF000C00FF000C00FF0064 -:103040000C00FF000C00FF000C00FF000C00FF0054 -:103050000C00FF000C00FF000C00FF000C00FF0044 -:103060000C00FF0009050B030A100C00FF000C0008 -:10307000FF000C00FF000C00FF000C00FF000C0024 -:10308000FF000C00FF000C00FF000C00FF000C0014 -:10309000FF000C00FF000C00FF000C00FF000C0004 -:1030A000FF000C00FF000C00FF000C00FF000C00F4 -:1030B000FF000C00FF000C00FF000C00FF000C00E4 -:1030C000FF000C00FF000C00FF000C00FF000C00D4 -:1030D000FF000C00FF000C00FF000C00FF000C00C4 -:1030E000FF000C00FF000C00FF000C00FF000C00B4 -:1030F000FF000C00FF000C00FF000C00FF000C00A4 -:10310000FF000C00FF000C00FF000C00FF000C0093 -:10311000FF000C00FF000C00FF000C00FF000C0083 -:10312000FF000C00FF000C00FF0009050B040A1053 -:103130000C00FF000C00FF000C00FF000C00FF0063 -:103140000C00FF000C00FF000C00FF000C00FF0053 -:103150000C00FF000C00FF000C00FF000C00FF0043 -:103160000C00FF000C00FF000C00FF000C00FF0033 -:103170000C00FF000C00FF000C00FF000C00FF0023 -:103180000C00FF000C00FF000C00FF000C00FF0013 -:103190000C00FF000C00FF000C00FF000C00FF0003 -:1031A0000C00FF000C00FF000C00FF000C00FF00F3 -:1031B0000C00FF000C00FF000C00FF000C00FF00E3 -:1031C0000C00FF000C00FF000C00FF000C00FF00D3 -:1031D0000C00FF000C00FF000C00FF000C00FF00C3 -:1031E0000C00FF000C00FF000C00FF000C00FF00B3 -:1031F00009010B060A100D000C00FF000A120D0059 -:103200000C00FF000A140D000C00FF000A160D0050 -:103210000C00FF000A180D000C00FF000A1A0D0038 -:103220000C00FF000A1C0D000C00FF000A1E0D0020 -:103230000C00FF000A200D000C00FF000A220D0008 -:103240000C00FF000A240D000C00FF000A260D00F0 -:103250000C00FF000A280D000C00FF000A2A0D00D8 -:103260000C00FF000A2C0D000C00FF000A2E0D00C0 -:103270000C00FF000A300D000C00FF000A320D00A8 -:103280000C00FF000A340D000C00FF000A360D0090 -:103290000C00FF000A380D000C00FF000A3A0D0078 -:1032A0000C00FF000A3C0D000C00FF000A3E0D0060 -:1032B0000C00FF0009050B070A100D0F0CFFFF00A3 -:1032C0000D0F0CFFFF000D000C00FF000D000C00A7 -:1032D000FF000D000C00FF000D000C00FF000D00B2 -:1032E0000C00FF000D000C00FF000D000C00FF00A3 -:1032F0000D000C00FF000D000C00FF000D000C0085 -:10330000FF000D000C00FF000D000C00FF000D0081 -:103310000C00FF000D000C00FF000D000C00FF0072 -:103320000D000C00FF000D000C00FF000D000C0054 -:10333000FF000D000C00FF000D000C00FF000D0051 -:103340000C00FF000D000C00FF000D000C00FF0042 -:103350000D000C00FF000D000C00FF000D000C0024 -:10336000FF000D000C00FF000D000C00FF000D0021 -:103370000C00FF000D000C00FF000D000C00FF0012 -:103380000D000C00FF000D000C00FF000D000C00F4 -:10339000FF000D000C00FF000D000C00FF000D00F1 -:1033A0000C00FF000D000C00FF000D000C00FF00E2 -:1033B0000D000C00FF000D000C00FF000D000C00C4 -:1033C000FF000D000C00FF000D000C00FF000D00C1 -:1033D0000C00FF000D000C00FF000E010F00FF00AD -:1033E0000E020F00FF000E010F01FF000E020F0082 -:1033F000FF000E010F02FF000E020F00FF000E0182 -:103400000F03FF000E020F00FF000E010F04FF006C -:103410000E020F00FF000E010F05FF000E020F004D -:10342000FF000E010F06FF000E020F00FF000E014D -:103430000F07FF000E020F00FF000EB00F20FF006D -:103440000EB10F20FF000EB20F20FF000EB30F20B1 -:10345000FF000EB40F20FF000EB50F20FF000EB6C8 -:103460000F20FF000EB70F20FF000EF00F20FF000F -:103470000EF10F20FF000EF20F20FF000EF30F20C1 -:10348000FF000EF40F20FF000EF50F20FF000EF6D8 -:103490000F20FF000EF70F20FF000E100FFFFF00A0 -:1034A0000E110FFFFF000E120FFFFF000E130FFF94 -:1034B000FF000E140FFFFF000E150FFFFF000E168A -:1034C0000FFFFF000E170FFFFF000E200FFFFF0082 -:1034D0000E210FFFFF000E220FFFFF000E230FFF34 -:1034E000FF000E240FFFFF000E250FFFFF000E262A -:1034F0000FFFFF000E270FFFFF000E300F00FF0031 -:103500000E310F00FF000E320F00FF000E330F00D0 -:10351000FF000E340F00FF000E350F00FF000E36C7 -:103520000F00FF000E370F00FF000E400F00FF00DE -:103530000E410F00FF000E420F00FF000E430F0070 -:10354000FF000E440F00FF000E450F00FF000E4667 -:103550000F00FF000E470F00FF000E500F00FF008E -:103560000E510F00FF000E520F00FF000E530F0010 -:10357000FF000E540F00FF000E550F00FF000E5607 -:103580000F00FF000E570F00FF000E600F00FF003E -:103590000E610F00FF000E620F00FF000E630F00B0 -:1035A000FF000E640F00FF000E650F00FF000E66A7 -:1035B0000F00FF000E670F00FF000E700FC0FF002E -:1035C0000E710FC0FF000E720FC0FF000E730FC010 -:1035D000FF000E740FC0FF000E750FC0FF000E76C7 -:1035E0000FC0FF000E770FC0FF000E800F00FF001E -:1035F0000E810F00FF000E820F00FF000E830F00F0 -:10360000FF000E840F00FF000E850F00FF000E86E6 -:103610000F00FF000E870F00FF000E900F00FF004D -:103620000E910F00FF000E920F00FF000E930F008F -:10363000FF000E940F00FF000E950F00FF000E9686 -:103640000F00FF000E970F00FF000EA00F00FF00FD -:103650000EA10F00FF000EA20F00FF000EA30F002F -:10366000FF000EA40F00FF000EA50F00FF000EA626 -:103670000F00FF000EA70F00FF000EC00F00FF009D -:103680000EC10F00FF000EC20F00FF000EC30F009F -:10369000FF000EC40F00FF000EC50F00FF000EC696 -:1036A0000F00FF000EC70F00FF000ED00F00FF003D -:1036B0000ED10F00FF000ED20F00FF000ED30F003F -:1036C000FF000ED40F00FF000ED50F00FF000ED636 -:1036D0000F00FF000ED70F00FF000EE00F00FF00ED -:1036E0000EE10F00FF000EE20F00FF000EE30F00DF -:1036F000FF000EE40F00FF000EE50F00FF000EE6D6 -:103700000F00FF000EE70F00FF000E010F00FF008B -:103710000E020F01FF000E010F01FF000E020F014C -:10372000FF000E010F02FF000E020F01FF000E014D -:103730000F03FF000E020F01FF000E010F04FF0038 -:103740000E020F01FF000E010F05FF000E020F0118 -:10375000FF000E010F06FF000E020F01FF000E0119 -:103760000F07FF000E020F01FF000B070A460D00B6 -:103770000C00FF000B070A490D000C00FF000B07AF -:103780000A450D0F0CFFFF000B070A480D0F0CFF39 -:10379000FF000B070A7B0D040CCCFF000B070A7D12 -:1037A0000D040CCCFF000B070A7C0D000C00FF0081 -:1037B0000B070A7E0D000C00FF000B070A460D00E8 -:1037C0000C00FF000B070A490D000C00FF000B075F -:1037D0000A470D000C00FF000B070A4A0D000C0001 -:1037E000FF000B070A4C0D000C00FF000B070A4EF0 -:1037F0000D000C00FF000B070A4C0D000C000B071E -:103800000A4E0D000C000B070A4C0D000C280B078C -:103810000A4E0D000C280B070A4C0D000C510B072B -:103820000A4E0D000C510B070A4C0D000C7A0B07C9 -:103830000A4E0D000C7A0B070A4C0D000CA30B0767 -:103840000A4E0D000CA30B070A4C0D000CCC0B0705 -:103850000A4E0D000CCC0B070A4C0D000CF50B07A3 -:103860000A4E0D000CF50B070A4C0D010C1E0B0740 -:103870000A4E0D010C1E0B070A4C0D010C470B07DD -:103880000A4E0D010C470B070A4C0D010C700B077B -:103890000A4E0D010C700B070A4C0D010C990B0719 -:1038A0000A4E0D010C990B070A4C0D010CC20B07B7 -:1038B0000A4E0D010CC20B070A4C0D010CEB0B0755 -:1038C0000A4E0D010CEB0B070A4C0D020C140B07F2 -:1038D0000A4E0D020C140B070A4C0D020C3D0B078F -:1038E0000A4E0D020C3D0B070A4C0D020C660B072D -:1038F0000A4E0D020C660B070A4C0D020C8F0B07CB -:103900000A4E0D020C8F0B070A4C0D020CB80B0768 -:103910000A4E0D020CB80B070A4C0D020CE10B0706 -:103920000A4E0D020CE10B070A4C0D030C0A0B07A3 -:103930000A4E0D030C0A0B070A4C0D030C330B0740 -:103940000A4E0D030C330B070A4C0D030C5C0B07DE -:103950000A4E0D030C5C0B070A4C0D030C850B077C -:103960000A4E0D030C850B070A4C0D030CAE0B071A -:103970000A4E0D030CAE0B070A4C0D030CD70B07B8 -:103980000A4E0D030CD70B070A4C0D040C000B0755 -:103990000A4E0D040C000B070A4C0D040C280B07F3 -:1039A0000A4E0D040C280B070A4C0D040C510B0792 -:1039B0000A4E0D040C510B070A4C0D040C7A0B0730 -:1039C0000A4E0D040C7A0B070A4C0D040CA30B07CE -:1039D0000A4E0D040CA30B070A4C0D040CCC0B076C -:1039E0000A4E0D040CCC0B070A4C0D040CF50B070A -:1039F0000A4E0D040CF50B070A4C0D050C1E0B07A7 -:103A00000A4E0D050C1E0B070A4C0D050C470B0743 -:103A10000A4E0D050C470B070A4C0D050C700B07E1 -:103A20000A4E0D050C700B070A4C0D050C990B077F -:103A30000A4E0D050C990B070A4C0D050CC20B071D -:103A40000A4E0D050CC20B070A4C0D050CEB0B07BB -:103A50000A4E0D050CEB0B070A4C0D060C140B0758 -:103A60000A4E0D060C140B070A4C0D060C3D0B07F5 -:103A70000A4E0D060C3D0B070A4C0D060C660B0793 -:103A80000A4E0D060C660B070A4C0D060C8F0B0731 -:103A90000A4E0D060C8F0B070A4C0D060CB80B07CF -:103AA0000A4E0D060CB80B070A4C0D060CE10B076D -:103AB0000A4E0D060CE10B070A4C0D070C0A0B070A -:103AC0000A4E0D070C0A0B070A4C0D070C330B07A7 -:103AD0000A4E0D070C330B070A4C0D070C5C0B0745 -:103AE0000A4E0D070C5C0B070A4C0D070C850B07E3 -:103AF0000A4E0D070C850B070A4C0D070CAE0B0781 -:103B00000A4E0D070CAE0B070A4C0D070CD70B071E -:103B10000A4E0D070CD70B070A4C0D080C000B07BB -:103B20000A4E0D080C000B070A4C0D080C280B0759 -:103B30000A4E0D080C280B070A4C0D080C510B07F8 -:103B40000A4E0D080C510B070A4C0D080C7A0B0796 -:103B50000A4E0D080C7A0B070A4C0D080CA30B0734 -:103B60000A4E0D080CA30B070A4C0D080CCC0B07D2 -:103B70000A4E0D080CCC0B070A4C0D080CF50B0770 -:103B80000A4E0D080CF50B070A4C0D090C1E0B070D -:103B90000A4E0D090C1E0B070A4C0D090C470B07AA -:103BA0000A4E0D090C470B070A4C0D090C700B0748 -:103BB0000A4E0D090C700B070A4C0D090C990B07E6 -:103BC0000A4E0D090C990B070A4C0D090CC20B0784 -:103BD0000A4E0D090CC20B070A4C0D090CEB0B0722 -:103BE0000A4E0D090CEB0B070A4C0D0A0C140B07BF -:103BF0000A4E0D0A0C140B070A4C0D0A0C3D0B075C -:103C00000A4E0D0A0C3D0B070A4C0D0A0C660B07F9 -:103C10000A4E0D0A0C660B070A4C0D0A0C8F0B0797 -:103C20000A4E0D0A0C8F0B070A4C0D0A0CB80B0735 -:103C30000A4E0D0A0CB80B070A4C0D0A0CE10B07D3 -:103C40000A4E0D0A0CE10B070A4C0D0B0C0A0B0770 -:103C50000A4E0D0B0C0A0B070A4C0D0B0C330B070D -:103C60000A4E0D0B0C330B070A4C0D0B0C5C0B07AB -:103C70000A4E0D0B0C5C0B070A4C0D0B0C850B0749 -:103C80000A4E0D0B0C850B070A4C0D0B0CAE0B07E7 -:103C90000A4E0D0B0CAE0B070A4C0D0B0CD70B0785 -:103CA0000A4E0D0B0CD70B070A4C0D0C0C000B0722 -:103CB0000A4E0D0C0C000B070A4C0D0C0C280B07C0 -:103CC0000A4E0D0C0C280B070A4C0D0C0C510B075F -:103CD0000A4E0D0C0C510B070A4C0D0C0C7A0B07FD -:103CE0000A4E0D0C0C7A0B070A4C0D0C0CA30B079B -:103CF0000A4E0D0C0CA30B070A4C0D0C0CCC0B0739 -:103D00000A4E0D0C0CCC0B070A4C0D0C0CF50B07D6 -:103D10000A4E0D0C0CF50B070A4C0D0D0C1E0B0773 -:103D20000A4E0D0D0C1E0B070A4C0D0D0C470B0710 -:103D30000A4E0D0D0C470B070A4C0D0D0C700B07AE -:103D40000A4E0D0D0C700B070A4C0D0D0C990B074C -:103D50000A4E0D0D0C990B070A4C0D0D0CC20B07EA -:103D60000A4E0D0D0CC20B070A4C0D0D0CEB0B0788 -:103D70000A4E0D0D0CEB0B070A4C0D0E0C140B0725 -:103D80000A4E0D0E0C140B070A4C0D0E0C3D0B07C2 -:103D90000A4E0D0E0C3D0B070A4C0D0E0C660B0760 -:103DA0000A4E0D0E0C660B070A4C0D0E0C8F0B07FE -:103DB0000A4E0D0E0C8F0B070A4C0D0E0CB80B079C -:103DC0000A4E0D0E0CB80B070A4C0D0E0CE10B073A -:103DD0000A4E0D0E0CE10B070A4C0D0F0C0A0B07D7 -:103DE0000A4E0D0F0C0A0B070A4C0D0F0C330B0774 -:103DF0000A4E0D0F0C330B070A4C0D0F0C5C0B0712 -:103E00000A4E0D0F0C5C0B070A4C0D0F0C850B07AF -:103E10000A4E0D0F0C850B070A4C0D0F0CAE0B074D -:103E20000A4E0D0F0CAE0B070A4C0D0F0CD70B07EB -:103E30000A4E0D0F0CD70B070A4C0D0F0CFF0B078A -:0A3E40000A4E0D0F0CFF0800FF00F2 -:00000001FF diff --git a/scripts/Makefile.fwinst b/scripts/Makefile.fwinst deleted file mode 100644 index b27290035253..000000000000 --- a/scripts/Makefile.fwinst +++ /dev/null @@ -1,70 +0,0 @@ -# ========================================================================== -# Installing firmware -# -# We don't include the .config, so all firmware files are in $(fw-shipped-) -# rather than in $(fw-shipped-y) or $(fw-shipped-m). -# ========================================================================== - -INSTALL := install -src := $(obj) - -# For modules_install installing firmware, we want to see .config -# But for firmware_install, we don't care, but don't want to require it. --include $(objtree)/.config - -include scripts/Kbuild.include -include $(src)/Makefile - -include scripts/Makefile.host - -mod-fw := $(fw-shipped-m) -# If CONFIG_FIRMWARE_IN_KERNEL isn't set, then install the -# firmware for in-kernel drivers too. -ifndef CONFIG_FIRMWARE_IN_KERNEL -mod-fw += $(fw-shipped-y) -endif - -ifneq ($(KBUILD_SRC),) -# Create output directory if not already present -_dummy := $(shell [ -d $(obj) ] || mkdir -p $(obj)) - -firmware-dirs := $(sort $(addprefix $(objtree)/$(obj)/,$(dir $(fw-external-y) $(fw-shipped-all)))) -# Create directories for firmware in subdirectories -_dummy := $(foreach d,$(firmware-dirs), $(shell [ -d $(d) ] || mkdir -p $(d))) -endif - -installed-mod-fw := $(addprefix $(INSTALL_FW_PATH)/,$(mod-fw)) - -installed-fw := $(addprefix $(INSTALL_FW_PATH)/,$(fw-shipped-all)) - -quiet_cmd_install = INSTALL $(subst $(srctree)/,,$@) - cmd_install = mkdir -p $(@D); $(INSTALL) -m0644 $< $@ - -$(installed-fw): $(INSTALL_FW_PATH)/%: $(obj)/% - $(call cmd,install) - -PHONY += __fw_install __fw_modinst FORCE - -.PHONY: $(PHONY) - -__fw_install: $(installed-fw) - -__fw_modinst: $(installed-mod-fw) - @: - -__fw_modbuild: $(addprefix $(obj)/,$(mod-fw)) - @: - -FORCE: - -# Read all saved command lines and dependencies for the $(targets) we -# may be building using $(if_changed{,_dep}). As an optimization, we -# don't need to read them if the target does not exist; we will rebuild -# anyway in that case. - -targets := $(wildcard $(sort $(targets))) -cmd_files := $(wildcard $(foreach f,$(targets),$(dir $(f)).$(notdir $(f)).cmd)) - -ifneq ($(cmd_files),) - include $(cmd_files) -endif From 5a0d157b6153b462eabd8afcf827877e885336b9 Mon Sep 17 00:00:00 2001 From: Markus Trippelsdorf Date: Mon, 6 Nov 2017 15:33:19 +0100 Subject: [PATCH 0155/1149] firmware: Restore support for built-in firmware commit df85b2d767aad90fd2746f993fcd66dd322768f8 upstream. Commit 5620a0d1aac ("firmware: delete in-kernel firmware") removed the entire firmware directory. Unfortunately it thereby also removed the support for built-in firmware. This restores the ability to build firmware directly into the kernel by pruning the original Makefile to the necessary minimum. The default for EXTRA_FIRMWARE_DIR is now the standard directory /lib/firmware/. Fixes: 5620a0d1aac ("firmware: delete in-kernel firmware") Signed-off-by: Markus Trippelsdorf Acked-by: Greg K-H Signed-off-by: Linus Torvalds Signed-off-by: Jan Kiszka Signed-off-by: Ben Hutchings --- Makefile | 2 +- drivers/base/Kconfig | 5 +--- firmware/.gitignore | 6 +++++ firmware/Makefile | 63 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 71 insertions(+), 5 deletions(-) create mode 100644 firmware/.gitignore create mode 100644 firmware/Makefile diff --git a/Makefile b/Makefile index 08c4e55b7e44..2aa590009e0e 100644 --- a/Makefile +++ b/Makefile @@ -557,7 +557,7 @@ scripts: scripts_basic include/config/auto.conf include/config/tristate.conf \ # Objects we will link into vmlinux / subdirs we need to visit init-y := init/ -drivers-y := drivers/ sound/ +drivers-y := drivers/ sound/ firmware/ net-y := net/ libs-y := lib/ core-y := usr/ diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig index 98504ec99c7d..e2be98b7dfa5 100644 --- a/drivers/base/Kconfig +++ b/drivers/base/Kconfig @@ -140,13 +140,10 @@ config EXTRA_FIRMWARE config EXTRA_FIRMWARE_DIR string "Firmware blobs root directory" depends on EXTRA_FIRMWARE != "" - default "firmware" + default "/lib/firmware" help This option controls the directory in which the kernel build system looks for the firmware files listed in the EXTRA_FIRMWARE option. - The default is firmware/ in the kernel source tree, but by changing - this option you can point it elsewhere, such as /lib/firmware/ or - some other directory containing the firmware files. config FW_LOADER_USER_HELPER bool diff --git a/firmware/.gitignore b/firmware/.gitignore new file mode 100644 index 000000000000..d9c69017bc9a --- /dev/null +++ b/firmware/.gitignore @@ -0,0 +1,6 @@ +*.gen.S +*.fw +*.bin +*.csp +*.dsp +ihex2fw diff --git a/firmware/Makefile b/firmware/Makefile new file mode 100644 index 000000000000..fa0808853883 --- /dev/null +++ b/firmware/Makefile @@ -0,0 +1,63 @@ +# +# kbuild file for firmware/ +# + +# Create $(fwabs) from $(CONFIG_EXTRA_FIRMWARE_DIR) -- if it doesn't have a +# leading /, it's relative to $(srctree). +fwdir := $(subst $(quote),,$(CONFIG_EXTRA_FIRMWARE_DIR)) +fwabs := $(addprefix $(srctree)/,$(filter-out /%,$(fwdir)))$(filter /%,$(fwdir)) + +fw-external-y := $(subst $(quote),,$(CONFIG_EXTRA_FIRMWARE)) + +quiet_cmd_fwbin = MK_FW $@ + cmd_fwbin = FWNAME="$(patsubst firmware/%.gen.S,%,$@)"; \ + FWSTR="$(subst /,_,$(subst .,_,$(subst -,_,$(patsubst \ + firmware/%.gen.S,%,$@))))"; \ + ASM_WORD=$(if $(CONFIG_64BIT),.quad,.long); \ + ASM_ALIGN=$(if $(CONFIG_64BIT),3,2); \ + PROGBITS=$(if $(CONFIG_ARM),%,@)progbits; \ + echo "/* Generated by firmware/Makefile */" > $@;\ + echo " .section .rodata" >>$@;\ + echo " .p2align $${ASM_ALIGN}" >>$@;\ + echo "_fw_$${FWSTR}_bin:" >>$@;\ + echo " .incbin \"$(2)\"" >>$@;\ + echo "_fw_end:" >>$@;\ + echo " .section .rodata.str,\"aMS\",$${PROGBITS},1" >>$@;\ + echo " .p2align $${ASM_ALIGN}" >>$@;\ + echo "_fw_$${FWSTR}_name:" >>$@;\ + echo " .string \"$$FWNAME\"" >>$@;\ + echo " .section .builtin_fw,\"a\",$${PROGBITS}" >>$@;\ + echo " .p2align $${ASM_ALIGN}" >>$@;\ + echo " $${ASM_WORD} _fw_$${FWSTR}_name" >>$@;\ + echo " $${ASM_WORD} _fw_$${FWSTR}_bin" >>$@;\ + echo " $${ASM_WORD} _fw_end - _fw_$${FWSTR}_bin" >>$@; + +# One of these files will change, or come into existence, whenever +# the configuration changes between 32-bit and 64-bit. The .S files +# need to change when that happens. +wordsize_deps := $(wildcard include/config/64bit.h include/config/32bit.h \ + include/config/ppc32.h include/config/ppc64.h \ + include/config/superh32.h include/config/superh64.h \ + include/config/x86_32.h include/config/x86_64.h \ + firmware/Makefile) + +$(patsubst %,$(obj)/%.gen.S, $(fw-external-y)): %: $(wordsize_deps) \ + include/config/extra/firmware/dir.h + $(call cmd,fwbin,$(fwabs)/$(patsubst $(obj)/%.gen.S,%,$@)) + +# The .o files depend on the binaries directly; the .S files don't. +$(patsubst %,$(obj)/%.gen.o, $(fw-external-y)): $(obj)/%.gen.o: $(fwdir)/% + +obj-y += $(patsubst %,%.gen.o, $(fw-external-y)) + +ifeq ($(KBUILD_SRC),) +# Makefile.build only creates subdirectories for O= builds, but external +# firmware might live outside the kernel source tree +_dummy := $(foreach d,$(addprefix $(obj)/,$(dir $(fw-external-y))), $(shell [ -d $(d) ] || mkdir -p $(d))) +endif + +targets := $(patsubst $(obj)/%,%, \ + $(shell find $(obj) -name \*.gen.S 2>/dev/null)) +# Without this, built-in.o won't be created when it's empty, and the +# final vmlinux link will fail. +obj- := dummy From e53a9c77c1e695ea55ab503b657ab59f30dd658c Mon Sep 17 00:00:00 2001 From: Guenter Roeck Date: Fri, 10 Nov 2017 13:09:55 +0100 Subject: [PATCH 0156/1149] watchdog: Introduce hardware maximum heartbeat in watchdog core commit 664a39236e718f9f03fa73fc01006da9ced04efc upstream. Introduce an optional hardware maximum heartbeat in the watchdog core. The hardware maximum heartbeat can be lower than the maximum timeout. Drivers can set the maximum hardware heartbeat value in the watchdog data structure. If the configured timeout exceeds the maximum hardware heartbeat, the watchdog core enables a timer function to assist sending keepalive requests to the watchdog driver. Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck [mosipov@ilbers.de backported to 4.4.y] Signed-off-by: Maxim Yu. Osipov Signed-off-by: Ben Hutchings --- .../watchdog/watchdog-kernel-api.txt | 19 ++- drivers/watchdog/watchdog_dev.c | 122 +++++++++++++++++- include/linux/watchdog.h | 30 +++-- 3 files changed, 154 insertions(+), 17 deletions(-) diff --git a/Documentation/watchdog/watchdog-kernel-api.txt b/Documentation/watchdog/watchdog-kernel-api.txt index d8b0d3367706..9887fa6d8f68 100644 --- a/Documentation/watchdog/watchdog-kernel-api.txt +++ b/Documentation/watchdog/watchdog-kernel-api.txt @@ -53,6 +53,7 @@ struct watchdog_device { unsigned int timeout; unsigned int min_timeout; unsigned int max_timeout; + unsigned int max_hw_heartbeat_ms; void *driver_data; struct mutex lock; unsigned long status; @@ -73,8 +74,18 @@ It contains following fields: additional information about the watchdog timer itself. (Like it's unique name) * ops: a pointer to the list of watchdog operations that the watchdog supports. * timeout: the watchdog timer's timeout value (in seconds). + This is the time after which the system will reboot if user space does + not send a heartbeat request if WDOG_ACTIVE is set. * min_timeout: the watchdog timer's minimum timeout value (in seconds). -* max_timeout: the watchdog timer's maximum timeout value (in seconds). + If set, the minimum configurable value for 'timeout'. +* max_timeout: the watchdog timer's maximum timeout value (in seconds), + as seen from userspace. If set, the maximum configurable value for + 'timeout'. Not used if max_hw_heartbeat_ms is non-zero. +* max_hw_heartbeat_ms: Maximum hardware heartbeat, in milli-seconds. + If set, the infrastructure will send heartbeats to the watchdog driver + if 'timeout' is larger than max_hw_heartbeat_ms, unless WDOG_ACTIVE + is set and userspace failed to send a heartbeat for at least 'timeout' + seconds. * bootstatus: status of the device after booting (reported with watchdog WDIOF_* status bits). * driver_data: a pointer to the drivers private data of a watchdog device. @@ -160,7 +171,11 @@ they are supported. These optional routines/operations are: and -EIO for "could not write value to the watchdog". On success this routine should set the timeout value of the watchdog_device to the achieved timeout value (which may be different from the requested one - because the watchdog does not necessarily has a 1 second resolution). + because the watchdog does not necessarily have a 1 second resolution). + Drivers implementing max_hw_heartbeat_ms set the hardware watchdog heartbeat + to the minimum of timeout and max_hw_heartbeat_ms. Those drivers set the + timeout value of the watchdog_device either to the requested timeout value + (if it is larger than max_hw_heartbeat_ms), or to the achieved timeout value. (Note: the WDIOF_SETTIMEOUT needs to be set in the options field of the watchdog's info structure). * get_timeleft: this routines returns the time that's left before a reset. diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c index 56a649e66eb2..df43c586e53f 100644 --- a/drivers/watchdog/watchdog_dev.c +++ b/drivers/watchdog/watchdog_dev.c @@ -35,9 +35,11 @@ #include /* For module stuff/... */ #include /* For standard types (like size_t) */ #include /* For the -ENODEV/... values */ +#include /* For timeout functions */ #include /* For printk/panic/... */ #include /* For file operations */ #include /* For watchdog specific items */ +#include /* For workqueue */ #include /* For handling misc devices */ #include /* For __init/__exit/... */ #include /* For copy_to_user/put_user/... */ @@ -49,6 +51,73 @@ static dev_t watchdog_devt; /* the watchdog device behind /dev/watchdog */ static struct watchdog_device *old_wdd; +static struct workqueue_struct *watchdog_wq; + +static inline bool watchdog_need_worker(struct watchdog_device *wdd) +{ + /* All variables in milli-seconds */ + unsigned int hm = wdd->max_hw_heartbeat_ms; + unsigned int t = wdd->timeout * 1000; + + /* + * A worker to generate heartbeat requests is needed if all of the + * following conditions are true. + * - Userspace activated the watchdog. + * - The driver provided a value for the maximum hardware timeout, and + * thus is aware that the framework supports generating heartbeat + * requests. + * - Userspace requests a longer timeout than the hardware can handle. + */ + return watchdog_active(wdd) && hm && t > hm; +} + +static long watchdog_next_keepalive(struct watchdog_device *wdd) +{ + unsigned int timeout_ms = wdd->timeout * 1000; + unsigned long keepalive_interval; + unsigned long last_heartbeat; + unsigned long virt_timeout; + unsigned int hw_heartbeat_ms; + + virt_timeout = wdd->last_keepalive + msecs_to_jiffies(timeout_ms); + hw_heartbeat_ms = min(timeout_ms, wdd->max_hw_heartbeat_ms); + keepalive_interval = msecs_to_jiffies(hw_heartbeat_ms / 2); + + /* + * To ensure that the watchdog times out wdd->timeout seconds + * after the most recent ping from userspace, the last + * worker ping has to come in hw_heartbeat_ms before this timeout. + */ + last_heartbeat = virt_timeout - msecs_to_jiffies(hw_heartbeat_ms); + return min_t(long, last_heartbeat - jiffies, keepalive_interval); +} + +static inline void watchdog_update_worker(struct watchdog_device *wdd) +{ + if (watchdog_need_worker(wdd)) { + long t = watchdog_next_keepalive(wdd); + + if (t > 0) + mod_delayed_work(watchdog_wq, &wdd->work, t); + } else { + cancel_delayed_work(&wdd->work); + } +} + +static int __watchdog_ping(struct watchdog_device *wdd) +{ + int err; + + if (wdd->ops->ping) + err = wdd->ops->ping(wdd); /* ping the watchdog */ + else + err = wdd->ops->start(wdd); /* restart watchdog */ + + watchdog_update_worker(wdd); + + return err; +} + /* * watchdog_ping: ping the watchdog. * @wdd: the watchdog device to ping @@ -73,16 +142,27 @@ static int watchdog_ping(struct watchdog_device *wdd) if (!watchdog_active(wdd)) goto out_ping; - if (wdd->ops->ping) - err = wdd->ops->ping(wdd); /* ping the watchdog */ - else - err = wdd->ops->start(wdd); /* restart watchdog */ + wdd->last_keepalive = jiffies; + err = __watchdog_ping(wdd); out_ping: mutex_unlock(&wdd->lock); return err; } +static void watchdog_ping_work(struct work_struct *work) +{ + struct watchdog_device *wdd; + + wdd = container_of(to_delayed_work(work), struct watchdog_device, + work); + + mutex_lock(&wdd->lock); + if (wdd && watchdog_active(wdd)) + __watchdog_ping(wdd); + mutex_unlock(&wdd->lock); +} + /* * watchdog_start: wrapper to start the watchdog. * @wdd: the watchdog device to start @@ -95,6 +175,7 @@ static int watchdog_ping(struct watchdog_device *wdd) static int watchdog_start(struct watchdog_device *wdd) { int err = 0; + unsigned long started_at; mutex_lock(&wdd->lock); @@ -106,9 +187,13 @@ static int watchdog_start(struct watchdog_device *wdd) if (watchdog_active(wdd)) goto out_start; + started_at = jiffies; err = wdd->ops->start(wdd); - if (err == 0) + if (err == 0) { set_bit(WDOG_ACTIVE, &wdd->status); + wdd->last_keepalive = started_at; + watchdog_update_worker(wdd); + } out_start: mutex_unlock(&wdd->lock); @@ -146,8 +231,10 @@ static int watchdog_stop(struct watchdog_device *wdd) } err = wdd->ops->stop(wdd); - if (err == 0) + if (err == 0) { clear_bit(WDOG_ACTIVE, &wdd->status); + cancel_delayed_work(&wdd->work); + } out_stop: mutex_unlock(&wdd->lock); @@ -211,6 +298,8 @@ static int watchdog_set_timeout(struct watchdog_device *wdd, err = wdd->ops->set_timeout(wdd, timeout); + watchdog_update_worker(wdd); + out_timeout: mutex_unlock(&wdd->lock); return err; @@ -490,6 +579,8 @@ static int watchdog_release(struct inode *inode, struct file *file) /* Allow the owner module to be unloaded again */ module_put(wdd->ops->owner); + cancel_delayed_work_sync(&wdd->work); + /* make sure that /dev/watchdog can be re-opened */ clear_bit(WDOG_DEV_OPEN, &wdd->status); @@ -527,6 +618,11 @@ int watchdog_dev_register(struct watchdog_device *wdd) { int err, devno; + if (!watchdog_wq) + return -ENODEV; + + INIT_DELAYED_WORK(&wdd->work, watchdog_ping_work); + if (wdd->id == 0) { old_wdd = wdd; watchdog_miscdev.parent = wdd->parent; @@ -573,6 +669,8 @@ int watchdog_dev_unregister(struct watchdog_device *wdd) set_bit(WDOG_UNREGISTERED, &wdd->status); mutex_unlock(&wdd->lock); + cancel_delayed_work_sync(&wdd->work); + cdev_del(&wdd->cdev); if (wdd->id == 0) { misc_deregister(&watchdog_miscdev); @@ -589,7 +687,16 @@ int watchdog_dev_unregister(struct watchdog_device *wdd) int __init watchdog_dev_init(void) { - int err = alloc_chrdev_region(&watchdog_devt, 0, MAX_DOGS, "watchdog"); + int err; + + watchdog_wq = alloc_workqueue("watchdogd", + WQ_HIGHPRI | WQ_MEM_RECLAIM, 0); + if (!watchdog_wq) { + pr_err("Failed to create watchdog workqueue\n"); + return -ENOMEM; + } + + err = alloc_chrdev_region(&watchdog_devt, 0, MAX_DOGS, "watchdog"); if (err < 0) pr_err("watchdog: unable to allocate char dev region\n"); return err; @@ -604,4 +711,5 @@ int __init watchdog_dev_init(void) void __exit watchdog_dev_exit(void) { unregister_chrdev_region(watchdog_devt, MAX_DOGS); + destroy_workqueue(watchdog_wq); } diff --git a/include/linux/watchdog.h b/include/linux/watchdog.h index 027b1f43f12d..26aba9b17ac3 100644 --- a/include/linux/watchdog.h +++ b/include/linux/watchdog.h @@ -10,8 +10,9 @@ #include -#include #include +#include +#include #include struct watchdog_ops; @@ -61,12 +62,17 @@ struct watchdog_ops { * @bootstatus: Status of the watchdog device at boot. * @timeout: The watchdog devices timeout value (in seconds). * @min_timeout:The watchdog devices minimum timeout value (in seconds). - * @max_timeout:The watchdog devices maximum timeout value (in seconds). + * @max_timeout:The watchdog devices maximum timeout value (in seconds) + * as configurable from user space. Only relevant if + * max_hw_heartbeat_ms is not provided. + * @max_hw_heartbeat_ms: + * Hardware limit for maximum timeout, in milli-seconds. + * Replaces max_timeout if specified. * @driver-data:Pointer to the drivers private data. * @lock: Lock for watchdog core internal use only. * @status: Field that contains the devices internal status bits. - * @deferred: entry in wtd_deferred_reg_list which is used to - * register early initialized watchdogs. + * @deferred: Entry in wtd_deferred_reg_list which is used to + * register early initialized watchdogs. * * The watchdog_device structure contains all information about a * watchdog timer device. @@ -88,8 +94,11 @@ struct watchdog_device { unsigned int timeout; unsigned int min_timeout; unsigned int max_timeout; + unsigned int max_hw_heartbeat_ms; void *driver_data; struct mutex lock; + unsigned long last_keepalive; + struct delayed_work work; unsigned long status; /* Bit numbers for status flags */ #define WDOG_ACTIVE 0 /* Is the watchdog running/active */ @@ -121,13 +130,18 @@ static inline bool watchdog_timeout_invalid(struct watchdog_device *wdd, unsigne { /* * The timeout is invalid if + * - the requested value is larger than UINT_MAX / 1000 + * (since internal calculations are done in milli-seconds), + * or * - the requested value is smaller than the configured minimum timeout, * or - * - a maximum timeout is configured, and the requested value is larger - * than the maximum timeout. + * - a maximum hardware timeout is not configured, a maximum timeout + * is configured, and the requested value is larger than the + * configured maximum timeout. */ - return t < wdd->min_timeout || - (wdd->max_timeout && t > wdd->max_timeout); + return t > UINT_MAX / 1000 || t < wdd->min_timeout || + (!wdd->max_hw_heartbeat_ms && wdd->max_timeout && + t > wdd->max_timeout); } /* Use the following functions to manipulate watchdog driver specific data */ From 3f5b2538786e5e7e704afbf66dbf57ccb49cd6ed Mon Sep 17 00:00:00 2001 From: Guenter Roeck Date: Fri, 10 Nov 2017 13:09:56 +0100 Subject: [PATCH 0157/1149] watchdog: Introduce WDOG_HW_RUNNING flag commit ee142889e32f564f9b5e57b68b06693ec5473074 upstream. The WDOG_HW_RUNNING flag is expected to be set by watchdog drivers if the hardware watchdog is running. If the flag is set, the watchdog subsystem will ping the watchdog even if the watchdog device is closed. The watchdog driver stop function is now optional and may be omitted if the watchdog can not be stopped. If stopping the watchdog is not possible but the driver implements a stop function, it is responsible to set the WDOG_HW_RUNNING flag in its stop function. Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck [mosipov@ilbers.de backported to 4.4.y] Signed-off-by: Maxim Yu. Osipov Signed-off-by: Ben Hutchings --- .../watchdog/watchdog-kernel-api.txt | 22 ++++++--- drivers/watchdog/watchdog_dev.c | 47 +++++++++++++++---- include/linux/watchdog.h | 10 ++++ 3 files changed, 62 insertions(+), 17 deletions(-) diff --git a/Documentation/watchdog/watchdog-kernel-api.txt b/Documentation/watchdog/watchdog-kernel-api.txt index 9887fa6d8f68..b12789745f86 100644 --- a/Documentation/watchdog/watchdog-kernel-api.txt +++ b/Documentation/watchdog/watchdog-kernel-api.txt @@ -144,10 +144,10 @@ are: * stop: with this routine the watchdog timer device is being stopped. The routine needs a pointer to the watchdog timer device structure as a parameter. It returns zero on success or a negative errno code for failure. - Some watchdog timer hardware can only be started and not be stopped. The - driver supporting this hardware needs to make sure that a start and stop - routine is being provided. This can be done by using a timer in the driver - that regularly sends a keepalive ping to the watchdog timer hardware. + Some watchdog timer hardware can only be started and not be stopped. + If a watchdog can not be stopped, the watchdog driver must set the + WDOG_HW_RUNNING flag in its stop function to inform the watchdog core that + the watchdog is still running. Not all watchdog timer hardware supports the same functionality. That's why all other routines/operations are optional. They only need to be provided if @@ -191,9 +191,8 @@ they are supported. These optional routines/operations are: The status bits should (preferably) be set with the set_bit and clear_bit alike bit-operations. The status bits that are defined are: * WDOG_ACTIVE: this status bit indicates whether or not a watchdog timer device - is active or not. When the watchdog is active after booting, then you should - set this status bit (Note: when you register the watchdog timer device with - this bit set, then opening /dev/watchdog will skip the start operation) + is active or not from user perspective. User space is expected to send + heartbeat requests to the driver while this flag is set. * WDOG_DEV_OPEN: this status bit shows whether or not the watchdog device was opened via /dev/watchdog. (This bit should only be used by the WatchDog Timer Driver Core). @@ -202,6 +201,15 @@ bit-operations. The status bits that are defined are: (This bit should only be used by the WatchDog Timer Driver Core). * WDOG_NO_WAY_OUT: this bit stores the nowayout setting for the watchdog. If this bit is set then the watchdog timer will not be able to stop. +* WDOG_HW_RUNNING: Set by the watchdog driver if the hardware watchdog is + running. The bit must be set if the watchdog timer hardware can not be + stopped. The bit may also be set if the watchdog timer is running after + booting, before the watchdog device is opened. If set, the watchdog + infrastructure will send keepalives to the watchdog hardware while + WDOG_ACTIVE is not set. + Note: when you register the watchdog timer device with this bit set, + then opening /dev/watchdog will skip the start operation but send a keepalive + request instead. * WDOG_UNREGISTERED: this bit gets set by the WatchDog Timer Driver Core after calling watchdog_unregister_device, and then checked before calling any watchdog_ops, so that you can be sure that no operations (other then diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c index df43c586e53f..f38d4abf5ede 100644 --- a/drivers/watchdog/watchdog_dev.c +++ b/drivers/watchdog/watchdog_dev.c @@ -68,7 +68,8 @@ static inline bool watchdog_need_worker(struct watchdog_device *wdd) * requests. * - Userspace requests a longer timeout than the hardware can handle. */ - return watchdog_active(wdd) && hm && t > hm; + return hm && ((watchdog_active(wdd) && t > hm) || + (t && !watchdog_active(wdd) && watchdog_hw_running(wdd))); } static long watchdog_next_keepalive(struct watchdog_device *wdd) @@ -83,6 +84,9 @@ static long watchdog_next_keepalive(struct watchdog_device *wdd) hw_heartbeat_ms = min(timeout_ms, wdd->max_hw_heartbeat_ms); keepalive_interval = msecs_to_jiffies(hw_heartbeat_ms / 2); + if (!watchdog_active(wdd)) + return keepalive_interval; + /* * To ensure that the watchdog times out wdd->timeout seconds * after the most recent ping from userspace, the last @@ -139,7 +143,7 @@ static int watchdog_ping(struct watchdog_device *wdd) goto out_ping; } - if (!watchdog_active(wdd)) + if (!watchdog_active(wdd) && !watchdog_hw_running(wdd)) goto out_ping; wdd->last_keepalive = jiffies; @@ -158,7 +162,7 @@ static void watchdog_ping_work(struct work_struct *work) work); mutex_lock(&wdd->lock); - if (wdd && watchdog_active(wdd)) + if (wdd && (watchdog_active(wdd) || watchdog_hw_running(wdd))) __watchdog_ping(wdd); mutex_unlock(&wdd->lock); } @@ -188,7 +192,10 @@ static int watchdog_start(struct watchdog_device *wdd) goto out_start; started_at = jiffies; - err = wdd->ops->start(wdd); + if (watchdog_hw_running(wdd) && wdd->ops->ping) + err = wdd->ops->ping(wdd); + else + err = wdd->ops->start(wdd); if (err == 0) { set_bit(WDOG_ACTIVE, &wdd->status); wdd->last_keepalive = started_at; @@ -233,7 +240,7 @@ static int watchdog_stop(struct watchdog_device *wdd) err = wdd->ops->stop(wdd); if (err == 0) { clear_bit(WDOG_ACTIVE, &wdd->status); - cancel_delayed_work(&wdd->work); + watchdog_update_worker(wdd); } out_stop: @@ -519,7 +526,7 @@ static int watchdog_open(struct inode *inode, struct file *file) * If the /dev/watchdog device is open, we don't want the module * to be unloaded. */ - if (!try_module_get(wdd->ops->owner)) + if (!watchdog_hw_running(wdd) && !try_module_get(wdd->ops->owner)) goto out; err = watchdog_start(wdd); @@ -528,7 +535,7 @@ static int watchdog_open(struct inode *inode, struct file *file) file->private_data = wdd; - if (wdd->ops->ref) + if (!watchdog_hw_running(wdd) && wdd->ops->ref) wdd->ops->ref(wdd); /* dev/watchdog is a virtual (and thus non-seekable) filesystem */ @@ -577,15 +584,22 @@ static int watchdog_release(struct inode *inode, struct file *file) } /* Allow the owner module to be unloaded again */ - module_put(wdd->ops->owner); + /* + * Allow the owner module to be unloaded again unless the watchdog + * is still running. If the watchdog is still running, it can not + * be stopped, and its driver must not be unloaded. + */ + if (!watchdog_hw_running(wdd)) + module_put(wdd->ops->owner); cancel_delayed_work_sync(&wdd->work); + watchdog_update_worker(wdd); /* make sure that /dev/watchdog can be re-opened */ clear_bit(WDOG_DEV_OPEN, &wdd->status); /* Note wdd may be gone after this, do not use after this! */ - if (wdd->ops->unref) + if (!watchdog_hw_running(wdd) && wdd->ops->unref) wdd->ops->unref(wdd); return 0; @@ -652,8 +666,21 @@ int watchdog_dev_register(struct watchdog_device *wdd) misc_deregister(&watchdog_miscdev); old_wdd = NULL; } + return err; } - return err; + + /* + * If the watchdog is running, prevent its driver from being unloaded, + * and schedule an immediate ping. + */ + if (watchdog_hw_running(wdd)) { + __module_get(wdd->ops->owner); + if (wdd->ops->ref) + wdd->ops->ref(wdd); + queue_delayed_work(watchdog_wq, &wdd->work, 0); + } + + return 0; } /* diff --git a/include/linux/watchdog.h b/include/linux/watchdog.h index 26aba9b17ac3..cbe31d5b352c 100644 --- a/include/linux/watchdog.h +++ b/include/linux/watchdog.h @@ -106,6 +106,7 @@ struct watchdog_device { #define WDOG_ALLOW_RELEASE 2 /* Did we receive the magic char ? */ #define WDOG_NO_WAY_OUT 3 /* Is 'nowayout' feature set ? */ #define WDOG_UNREGISTERED 4 /* Has the device been unregistered */ +#define WDOG_HW_RUNNING 5 /* True if HW watchdog running */ struct list_head deferred; }; @@ -118,6 +119,15 @@ static inline bool watchdog_active(struct watchdog_device *wdd) return test_bit(WDOG_ACTIVE, &wdd->status); } +/* + * Use the following function to check whether or not the hardware watchdog + * is running + */ +static inline bool watchdog_hw_running(struct watchdog_device *wdd) +{ + return test_bit(WDOG_HW_RUNNING, &wdd->status); +} + /* Use the following function to set the nowayout feature */ static inline void watchdog_set_nowayout(struct watchdog_device *wdd, bool nowayout) { From c143cb2ba0806f04b123a003787c28bb442a2509 Mon Sep 17 00:00:00 2001 From: Guenter Roeck Date: Fri, 10 Nov 2017 13:09:57 +0100 Subject: [PATCH 0158/1149] watchdog: Make stop function optional commit d0684c8a9354953efdea214b437445c00743cf49 upstream. Not all hardware watchdogs can be stopped. The driver for such watchdogs would typically only set the WATCHDOG_HW_RUNNING flag in its stop function. Make the stop function optional and set WATCHDOG_HW_RUNNING in the watchdog core if it is not provided. Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck [mosipov@ilbers.de backported to 4.4.y] Signed-off-by: Maxim Yu. Osipov Signed-off-by: Ben Hutchings --- .../watchdog/watchdog-kernel-api.txt | 20 +++++++++++-------- drivers/watchdog/watchdog_core.c | 2 +- drivers/watchdog/watchdog_dev.c | 6 +++++- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/Documentation/watchdog/watchdog-kernel-api.txt b/Documentation/watchdog/watchdog-kernel-api.txt index b12789745f86..a376f281f5a7 100644 --- a/Documentation/watchdog/watchdog-kernel-api.txt +++ b/Documentation/watchdog/watchdog-kernel-api.txt @@ -85,7 +85,8 @@ It contains following fields: If set, the infrastructure will send heartbeats to the watchdog driver if 'timeout' is larger than max_hw_heartbeat_ms, unless WDOG_ACTIVE is set and userspace failed to send a heartbeat for at least 'timeout' - seconds. + seconds. max_hw_heartbeat_ms must be set if a driver does not implement + the stop function. * bootstatus: status of the device after booting (reported with watchdog WDIOF_* status bits). * driver_data: a pointer to the drivers private data of a watchdog device. @@ -141,17 +142,20 @@ are: device. The routine needs a pointer to the watchdog timer device structure as a parameter. It returns zero on success or a negative errno code for failure. -* stop: with this routine the watchdog timer device is being stopped. - The routine needs a pointer to the watchdog timer device structure as a - parameter. It returns zero on success or a negative errno code for failure. - Some watchdog timer hardware can only be started and not be stopped. - If a watchdog can not be stopped, the watchdog driver must set the - WDOG_HW_RUNNING flag in its stop function to inform the watchdog core that - the watchdog is still running. Not all watchdog timer hardware supports the same functionality. That's why all other routines/operations are optional. They only need to be provided if they are supported. These optional routines/operations are: +* stop: with this routine the watchdog timer device is being stopped. + The routine needs a pointer to the watchdog timer device structure as a + parameter. It returns zero on success or a negative errno code for failure. + Some watchdog timer hardware can only be started and not be stopped. A + driver supporting such hardware does not have to implement the stop routine. + If a driver has no stop function, the watchdog core will set WDOG_HW_RUNNING + and start calling the driver's keepalive pings function after the watchdog + device is closed. + If a watchdog driver does not implement the stop function, it must set + max_hw_heartbeat_ms. * ping: this is the routine that sends a keepalive ping to the watchdog timer hardware. The routine needs a pointer to the watchdog timer device structure as a diff --git a/drivers/watchdog/watchdog_core.c b/drivers/watchdog/watchdog_core.c index 873f13972cf4..41f1854d026b 100644 --- a/drivers/watchdog/watchdog_core.c +++ b/drivers/watchdog/watchdog_core.c @@ -145,7 +145,7 @@ static int __watchdog_register_device(struct watchdog_device *wdd) return -EINVAL; /* Mandatory operations need to be supported */ - if (wdd->ops->start == NULL || wdd->ops->stop == NULL) + if (!wdd->ops->start || (!wdd->ops->stop && !wdd->max_hw_heartbeat_ms)) return -EINVAL; watchdog_check_min_max_timeout(wdd); diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c index f38d4abf5ede..7cefe9aad123 100644 --- a/drivers/watchdog/watchdog_dev.c +++ b/drivers/watchdog/watchdog_dev.c @@ -237,7 +237,11 @@ static int watchdog_stop(struct watchdog_device *wdd) goto out_stop; } - err = wdd->ops->stop(wdd); + if (wdd->ops->stop) + err = wdd->ops->stop(wdd); + else + set_bit(WDOG_HW_RUNNING, &wdd->status); + if (err == 0) { clear_bit(WDOG_ACTIVE, &wdd->status); watchdog_update_worker(wdd); From 7a2d47fc9562bb2b9ccf6b48288412bd770f8559 Mon Sep 17 00:00:00 2001 From: Guenter Roeck Date: Fri, 10 Nov 2017 13:09:58 +0100 Subject: [PATCH 0159/1149] watchdog: imx2: Convert to use infrastructure triggered keepalives commit 11d7aba9ceb726d86aaaca3eb5f7d79de38989c5 upstream. The watchdog infrastructure now supports handling watchdog keepalive if the watchdog is running while the watchdog device is closed. Convert the driver to use this infrastructure. Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck [mosipov@ilbers.de backported to 4.4.y] Signed-off-by: Maxim Yu. Osipov Signed-off-by: Ben Hutchings --- drivers/watchdog/imx2_wdt.c | 74 +++++++------------------------------ 1 file changed, 13 insertions(+), 61 deletions(-) diff --git a/drivers/watchdog/imx2_wdt.c b/drivers/watchdog/imx2_wdt.c index 29ef719a6a3c..378e7c5dfc50 100644 --- a/drivers/watchdog/imx2_wdt.c +++ b/drivers/watchdog/imx2_wdt.c @@ -25,7 +25,6 @@ #include #include #include -#include #include #include #include @@ -34,7 +33,6 @@ #include #include #include -#include #include #define DRIVER_NAME "imx2-wdt" @@ -62,7 +60,6 @@ struct imx2_wdt_device { struct clk *clk; struct regmap *regmap; - struct timer_list timer; /* Pings the watchdog when closed */ struct watchdog_device wdog; struct notifier_block restart_handler; }; @@ -151,16 +148,6 @@ static int imx2_wdt_ping(struct watchdog_device *wdog) return 0; } -static void imx2_wdt_timer_ping(unsigned long arg) -{ - struct watchdog_device *wdog = (struct watchdog_device *)arg; - struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); - - /* ping it every wdog->timeout / 2 seconds to prevent reboot */ - imx2_wdt_ping(wdog); - mod_timer(&wdev->timer, jiffies + wdog->timeout * HZ / 2); -} - static int imx2_wdt_set_timeout(struct watchdog_device *wdog, unsigned int new_timeout) { @@ -177,40 +164,19 @@ static int imx2_wdt_start(struct watchdog_device *wdog) { struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); - if (imx2_wdt_is_running(wdev)) { - /* delete the timer that pings the watchdog after close */ - del_timer_sync(&wdev->timer); + if (imx2_wdt_is_running(wdev)) imx2_wdt_set_timeout(wdog, wdog->timeout); - } else + else imx2_wdt_setup(wdog); - return imx2_wdt_ping(wdog); -} - -static int imx2_wdt_stop(struct watchdog_device *wdog) -{ - /* - * We don't need a clk_disable, it cannot be disabled once started. - * We use a timer to ping the watchdog while /dev/watchdog is closed - */ - imx2_wdt_timer_ping((unsigned long)wdog); - return 0; -} - -static inline void imx2_wdt_ping_if_active(struct watchdog_device *wdog) -{ - struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); + set_bit(WDOG_HW_RUNNING, &wdog->status); - if (imx2_wdt_is_running(wdev)) { - imx2_wdt_set_timeout(wdog, wdog->timeout); - imx2_wdt_timer_ping((unsigned long)wdog); - } + return imx2_wdt_ping(wdog); } static const struct watchdog_ops imx2_wdt_ops = { .owner = THIS_MODULE, .start = imx2_wdt_start, - .stop = imx2_wdt_stop, .ping = imx2_wdt_ping, .set_timeout = imx2_wdt_set_timeout, }; @@ -257,7 +223,7 @@ static int __init imx2_wdt_probe(struct platform_device *pdev) wdog->info = &imx2_wdt_info; wdog->ops = &imx2_wdt_ops; wdog->min_timeout = 1; - wdog->max_timeout = IMX2_WDT_MAX_TIME; + wdog->max_hw_heartbeat_ms = IMX2_WDT_MAX_TIME * 1000; wdog->parent = &pdev->dev; ret = clk_prepare_enable(wdev->clk); @@ -277,9 +243,10 @@ static int __init imx2_wdt_probe(struct platform_device *pdev) watchdog_set_nowayout(wdog, nowayout); watchdog_init_timeout(wdog, timeout, &pdev->dev); - setup_timer(&wdev->timer, imx2_wdt_timer_ping, (unsigned long)wdog); - - imx2_wdt_ping_if_active(wdog); + if (imx2_wdt_is_running(wdev)) { + imx2_wdt_set_timeout(wdog, wdog->timeout); + set_bit(WDOG_HW_RUNNING, &wdog->status); + } /* * Disable the watchdog power down counter at boot. Otherwise the power @@ -320,7 +287,6 @@ static int __exit imx2_wdt_remove(struct platform_device *pdev) watchdog_unregister_device(wdog); if (imx2_wdt_is_running(wdev)) { - del_timer_sync(&wdev->timer); imx2_wdt_ping(wdog); dev_crit(&pdev->dev, "Device removed: Expect reboot!\n"); } @@ -334,10 +300,9 @@ static void imx2_wdt_shutdown(struct platform_device *pdev) if (imx2_wdt_is_running(wdev)) { /* - * We are running, we need to delete the timer but will - * give max timeout before reboot will take place + * We are running, configure max timeout before reboot + * will take place. */ - del_timer_sync(&wdev->timer); imx2_wdt_set_timeout(wdog, IMX2_WDT_MAX_TIME); imx2_wdt_ping(wdog); dev_crit(&pdev->dev, "Device shutdown: Expect reboot!\n"); @@ -355,10 +320,6 @@ static int imx2_wdt_suspend(struct device *dev) if (imx2_wdt_is_running(wdev)) { imx2_wdt_set_timeout(wdog, IMX2_WDT_MAX_TIME); imx2_wdt_ping(wdog); - - /* The watchdog is not active */ - if (!watchdog_active(wdog)) - del_timer_sync(&wdev->timer); } clk_disable_unprepare(wdev->clk); @@ -384,19 +345,10 @@ static int imx2_wdt_resume(struct device *dev) * watchdog again. */ imx2_wdt_setup(wdog); + } + if (imx2_wdt_is_running(wdev)) { imx2_wdt_set_timeout(wdog, wdog->timeout); imx2_wdt_ping(wdog); - } else if (imx2_wdt_is_running(wdev)) { - /* Resuming from non-deep sleep state. */ - imx2_wdt_set_timeout(wdog, wdog->timeout); - imx2_wdt_ping(wdog); - /* - * But the watchdog is not active, then start - * the timer again. - */ - if (!watchdog_active(wdog)) - mod_timer(&wdev->timer, - jiffies + wdog->timeout * HZ / 2); } return 0; From bdad652498d81705a0996fb0bf4e6d03ac4509ba Mon Sep 17 00:00:00 2001 From: Guenter Roeck Date: Fri, 10 Nov 2017 13:09:59 +0100 Subject: [PATCH 0160/1149] watchdog: core: Fix circular locking dependency commit e1f30282a1d3d0c75d5a08e47c6ac1563065be52 upstream. lockdep reports the following circular locking dependency. ====================================================== INFO: possible circular locking dependency detected ] 4.6.0-rc3-00191-gfabf418 #162 Not tainted ------------------------------------------------------- systemd/1 is trying to acquire lock: ((&(&wd_data->work)->work)){+.+...}, at: [<80141650>] flush_work+0x0/0x280 but task is already holding lock: (&wd_data->lock){+.+...}, at: [<804acfa8>] watchdog_release+0x18/0x190 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (&wd_data->lock){+.+...}: >-------[<80662310>] mutex_lock_nested+0x64/0x4a8 >-------[<804aca4c>] watchdog_ping_work+0x18/0x4c >-------[<80143128>] process_one_work+0x1ac/0x500 >-------[<801434b4>] worker_thread+0x38/0x554 >-------[<80149510>] kthread+0xf4/0x108 >-------[<80107c10>] ret_from_fork+0x14/0x24 -> #0 ((&(&wd_data->work)->work)){+.+...}: >-------[<8017c4e8>] lock_acquire+0x70/0x90 >-------[<8014169c>] flush_work+0x4c/0x280 >-------[<801440f8>] __cancel_work_timer+0x9c/0x1e0 >-------[<804acfcc>] watchdog_release+0x3c/0x190 >-------[<8022c5e8>] __fput+0x80/0x1c8 >-------[<80147b28>] task_work_run+0x94/0xc8 >-------[<8010b998>] do_work_pending+0x8c/0xb4 >-------[<80107ba8>] slow_work_pending+0xc/0x20 other info that might help us debug this: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&wd_data->lock); lock((&(&wd_data->work)->work)); lock(&wd_data->lock); lock((&(&wd_data->work)->work)); *** DEADLOCK *** 1 lock held by systemd/1: stack backtrace: CPU: 2 PID: 1 Comm: systemd Not tainted 4.6.0-rc3-00191-gfabf418 #162 Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree) [<8010f5e4>] (unwind_backtrace) from [<8010c038>] (show_stack+0x10/0x14) [<8010c038>] (show_stack) from [<8039d7fc>] (dump_stack+0xa8/0xd4) [<8039d7fc>] (dump_stack) from [<80177ee0>] (print_circular_bug+0x214/0x334) [<80177ee0>] (print_circular_bug) from [<80179230>] (check_prevs_add+0x4dc/0x8e8) [<80179230>] (check_prevs_add) from [<8017b3d8>] (__lock_acquire+0xc6c/0x14ec) [<8017b3d8>] (__lock_acquire) from [<8017c4e8>] (lock_acquire+0x70/0x90) [<8017c4e8>] (lock_acquire) from [<8014169c>] (flush_work+0x4c/0x280) [<8014169c>] (flush_work) from [<801440f8>] (__cancel_work_timer+0x9c/0x1e0) [<801440f8>] (__cancel_work_timer) from [<804acfcc>] (watchdog_release+0x3c/0x190) [<804acfcc>] (watchdog_release) from [<8022c5e8>] (__fput+0x80/0x1c8) [<8022c5e8>] (__fput) from [<80147b28>] (task_work_run+0x94/0xc8) [<80147b28>] (task_work_run) from [<8010b998>] (do_work_pending+0x8c/0xb4) [<8010b998>] (do_work_pending) from [<80107ba8>] (slow_work_pending+0xc/0x20) Turns out the call to cancel_delayed_work_sync() in watchdog_release() is not necessary and can be dropped. If the worker is no longer necessary, the subsequent call to watchdog_update_worker() will cancel it. If it is already running, it won't do anything, since the worker function checks if it needs to ping the watchdog or not. Reported-by: Clemens Gruber Tested-by: Clemens Gruber Fixes: 11d7aba9ceb7 ("watchdog: imx2: Convert to use infrastructure triggered keepalives") Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck Cc: stable [mosipov@ilbers.de backported to 4.4.y] Signed-off-by: Maxim Yu. Osipov Signed-off-by: Ben Hutchings --- drivers/watchdog/watchdog_dev.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c index 7cefe9aad123..e98e4294ec92 100644 --- a/drivers/watchdog/watchdog_dev.c +++ b/drivers/watchdog/watchdog_dev.c @@ -596,7 +596,6 @@ static int watchdog_release(struct inode *inode, struct file *file) if (!watchdog_hw_running(wdd)) module_put(wdd->ops->owner); - cancel_delayed_work_sync(&wdd->work); watchdog_update_worker(wdd); /* make sure that /dev/watchdog can be re-opened */ From 7c814a35e51e01be341279755c10ec33200d104f Mon Sep 17 00:00:00 2001 From: Pratyush Anand Date: Fri, 10 Nov 2017 13:10:00 +0100 Subject: [PATCH 0161/1149] watchdog: skip min and max timeout validity check when max_hw_heartbeat_ms is defined commit 1894cad9bf2c10359b2b7a0c00e564698f712751 upstream. When max_hw_heartbeat_ms has a none zero value, max_timeout is not used. So it's value can be 0. In such case if a driver uses min_timeout functionality, then check will always fail. This patch fixes above issue. Signed-off-by: Pratyush Anand Signed-off-by: Fu Wei Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck [mosipov@ilbers.de backported to 4.4.y] Signed-off-by: Maxim Yu. Osipov Signed-off-by: Ben Hutchings --- drivers/watchdog/watchdog_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/watchdog/watchdog_core.c b/drivers/watchdog/watchdog_core.c index 41f1854d026b..5de14c51bf95 100644 --- a/drivers/watchdog/watchdog_core.c +++ b/drivers/watchdog/watchdog_core.c @@ -88,7 +88,7 @@ static void watchdog_check_min_max_timeout(struct watchdog_device *wdd) * Check that we have valid min and max timeout values, if * not reset them both to 0 (=not used or unknown) */ - if (wdd->min_timeout > wdd->max_timeout) { + if (!wdd->max_hw_heartbeat_ms && wdd->min_timeout > wdd->max_timeout) { pr_info("Invalid min and max timeout values, resetting to 0!\n"); wdd->min_timeout = 0; wdd->max_timeout = 0; From a9e9e2c817df1418d5f1d9c479a3f456f85b5fcd Mon Sep 17 00:00:00 2001 From: Rasmus Villemoes Date: Fri, 10 Nov 2017 13:10:01 +0100 Subject: [PATCH 0162/1149] watchdog: change watchdog_need_worker logic commit 3fbfe9264756d3fd99a9210345016c94ec4ada73 upstream. If the driver indicates that the watchdog is running, the framework should feed it until userspace opens the device, regardless of whether the driver has set max_hw_heartbeat_ms. This patch only affects the case where wdd->max_hw_heartbeat_ms is zero, wdd->timeout is non-zero, the watchdog is not active and the hardware device is running (*): - If wdd->timeout is zero, watchdog_need_worker() returns false both before and after this patch, and watchdog_next_keepalive() is not called. - If watchdog_active(wdd), the return value from watchdog_need_worker is also the same as before (namely, hm && t > hm). Hence in that case, watchdog_next_keepalive() is only called if hm == max_hw_heartbeat_ms is non-zero, so the change to min_not_zero there is a no-op. - If the watchdog is not active and the device is not running, we return false from watchdog_need_worker just as before. That leaves the watchdog_hw_running(wdd) && !watchdog_active(wdd) && wdd->timeout case. Again, it's easy to see that if wdd->max_hw_heartbeat_ms is non-zero, we return true from watchdog_need_worker with and without this patch, and the logic in watchdog_next_keepalive is unchanged. Finally, if wdd->max_hw_heartbeat_ms is 0, we used to end up in the cancel_delayed_work branch, whereas with this patch we end up scheduling a ping timeout_ms/2 from now. (*) This should imply that no current kernel drivers are affected, since the only drivers which explicitly set WDOG_HW_RUNNING are imx2_wdt.c and dw_wdt.c, both of which also provide a non-zero value for max_hw_heartbeat_ms. The watchdog core also sets WDOG_HW_RUNNING, but only when the driver doesn't provide ->stop, in which case it must, according to Documentation/watchdog/watchdog-kernel-api.txt, set max_hw_heartbeat_ms. Signed-off-by: Rasmus Villemoes Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck [mosipov@ilbers.de backported to 4.4.y] Signed-off-by: Maxim Yu. Osipov Signed-off-by: Ben Hutchings --- drivers/watchdog/watchdog_dev.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c index e98e4294ec92..2a204bb56705 100644 --- a/drivers/watchdog/watchdog_dev.c +++ b/drivers/watchdog/watchdog_dev.c @@ -67,9 +67,13 @@ static inline bool watchdog_need_worker(struct watchdog_device *wdd) * thus is aware that the framework supports generating heartbeat * requests. * - Userspace requests a longer timeout than the hardware can handle. + * + * Alternatively, if userspace has not opened the watchdog + * device, we take care of feeding the watchdog if it is + * running. */ - return hm && ((watchdog_active(wdd) && t > hm) || - (t && !watchdog_active(wdd) && watchdog_hw_running(wdd))); + return (hm && watchdog_active(wdd) && t > hm) || + (t && !watchdog_active(wdd) && watchdog_hw_running(wdd)); } static long watchdog_next_keepalive(struct watchdog_device *wdd) @@ -81,7 +85,7 @@ static long watchdog_next_keepalive(struct watchdog_device *wdd) unsigned int hw_heartbeat_ms; virt_timeout = wdd->last_keepalive + msecs_to_jiffies(timeout_ms); - hw_heartbeat_ms = min(timeout_ms, wdd->max_hw_heartbeat_ms); + hw_heartbeat_ms = min_not_zero(timeout_ms, wdd->max_hw_heartbeat_ms); keepalive_interval = msecs_to_jiffies(hw_heartbeat_ms / 2); if (!watchdog_active(wdd)) From 3da08365f4795bd04ab62b80a0c0074518ad15d7 Mon Sep 17 00:00:00 2001 From: Wei Yongjun Date: Fri, 10 Nov 2017 13:10:02 +0100 Subject: [PATCH 0163/1149] watchdog: core: Fix error handling of watchdog_dev_init() commit 138913cb632be12344982e54ccd12f6f15971bf7 upstream. Fix the error handling paths of watchdog_dev_init(). Signed-off-by: Wei Yongjun Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck [mosipov@ilbers.de backported to 4.4.y] Signed-off-by: Maxim Yu. Osipov Signed-off-by: Ben Hutchings --- drivers/watchdog/watchdog_dev.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c index 2a204bb56705..263d7fa0ef31 100644 --- a/drivers/watchdog/watchdog_dev.c +++ b/drivers/watchdog/watchdog_dev.c @@ -731,8 +731,15 @@ int __init watchdog_dev_init(void) } err = alloc_chrdev_region(&watchdog_devt, 0, MAX_DOGS, "watchdog"); - if (err < 0) + if (err < 0) { pr_err("watchdog: unable to allocate char dev region\n"); + goto err_alloc; + } + + return 0; + +err_alloc: + destroy_workqueue(watchdog_wq); return err; } From ef549ac019d9fa84a02d85445dba04a8b2b4363d Mon Sep 17 00:00:00 2001 From: Guenter Roeck Date: Fri, 10 Nov 2017 13:10:03 +0100 Subject: [PATCH 0164/1149] watchdog: core: Clear WDOG_HW_RUNNING before calling the stop function commit 3c10bbde10fe4dca52726e246cefa6b0a1dfbd3e upstream. WDOG_HW_RUNNING indicates that the hardware watchdog is running while the watchdog device is closed. The flag may be set by the driver when it is instantiated to indicate that the watchdog is running, and that the watchdog core needs to send heartbeat requests to the driver until the watchdog device is opened. When the watchdog device is closed, the flag can be used by the driver's stop function to indicate to the watchdog core that it was unable to stop the watchdog, and that the watchdog core needs to send heartbeat requests. This only works if the flag is actually cleared when the watchdog is stopped. To avoid having to clear the flag in each driver's stop function, clear it in the watchdog core before calling the stop function. Reported-by: Rasmus Villemoes Fixes: ee142889e32f ("watchdog: Introduce WDOG_HW_RUNNING flag") Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck [mosipov@ilbers.de backported to 4.4.y] Signed-off-by: Maxim Yu. Osipov Signed-off-by: Ben Hutchings --- drivers/watchdog/watchdog_dev.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c index 263d7fa0ef31..1edc3d78636b 100644 --- a/drivers/watchdog/watchdog_dev.c +++ b/drivers/watchdog/watchdog_dev.c @@ -241,10 +241,12 @@ static int watchdog_stop(struct watchdog_device *wdd) goto out_stop; } - if (wdd->ops->stop) + if (wdd->ops->stop) { + clear_bit(WDOG_HW_RUNNING, &wdd->status); err = wdd->ops->stop(wdd); - else + } else { set_bit(WDOG_HW_RUNNING, &wdd->status); + } if (err == 0) { clear_bit(WDOG_ACTIVE, &wdd->status); From 9af3bd121c756f7f75ef63bc86d5090db4de8dc7 Mon Sep 17 00:00:00 2001 From: Sebastian Reichel Date: Fri, 10 Nov 2017 13:10:04 +0100 Subject: [PATCH 0165/1149] watchdog: core: add option to avoid early handling of watchdog commit 2501b015313fe2fa40ed11fa4dd1748e09b7c773 upstream. On some systems its desirable to have watchdog reboot the system when it does not come up fast enough. This adds a kernel parameter to disable the auto-update of watchdog before userspace takes over and a kernel option to set the default. The info messages were added to shorten error searching on misconfigured systems. Signed-off-by: Sebastian Reichel Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck [mosipov@ilbers.de backported to 4.4.y] Signed-off-by: Maxim Yu. Osipov Signed-off-by: Ben Hutchings --- drivers/watchdog/Kconfig | 11 +++++++++++ drivers/watchdog/watchdog_dev.c | 21 +++++++++++++++++---- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index 1c427beffadd..88743cd0a7e6 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -46,6 +46,17 @@ config WATCHDOG_NOWAYOUT get killed. If you say Y here, the watchdog cannot be stopped once it has been started. +config WATCHDOG_HANDLE_BOOT_ENABLED + bool "Update boot-enabled watchdog until userspace takes over" + default y + help + The default watchdog behaviour (which you get if you say Y here) is + to ping watchdog devices that were enabled before the driver has + been loaded until control is taken over from userspace using the + /dev/watchdog file. If you say N here, the kernel will not update + the watchdog on its own. Thus if your userspace does not start fast + enough your device will reboot. + # # General Watchdog drivers # diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c index 1edc3d78636b..8ca87ae467f2 100644 --- a/drivers/watchdog/watchdog_dev.c +++ b/drivers/watchdog/watchdog_dev.c @@ -53,6 +53,9 @@ static struct watchdog_device *old_wdd; static struct workqueue_struct *watchdog_wq; +static bool handle_boot_enabled = + IS_ENABLED(CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED); + static inline bool watchdog_need_worker(struct watchdog_device *wdd) { /* All variables in milli-seconds */ @@ -683,10 +686,15 @@ int watchdog_dev_register(struct watchdog_device *wdd) * and schedule an immediate ping. */ if (watchdog_hw_running(wdd)) { - __module_get(wdd->ops->owner); - if (wdd->ops->ref) - wdd->ops->ref(wdd); - queue_delayed_work(watchdog_wq, &wdd->work, 0); + if (handle_boot_enabled) { + __module_get(wdd->ops->owner); + if (wdd->ops->ref) + wdd->ops->ref(wdd); + queue_delayed_work(watchdog_wq, &wdd->work, 0); + } else { + pr_info("watchdog%d running and kernel based pre-userspace handler disabled\n", + wdd->id); + } } return 0; @@ -756,3 +764,8 @@ void __exit watchdog_dev_exit(void) unregister_chrdev_region(watchdog_devt, MAX_DOGS); destroy_workqueue(watchdog_wq); } + +module_param(handle_boot_enabled, bool, 0444); +MODULE_PARM_DESC(handle_boot_enabled, + "Watchdog core auto-updates boot enabled watchdogs before userspace takes over (default=" + __MODULE_STRING(IS_ENABLED(CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED)) ")"); From 485a011c02dc874d9a90d70f4e27cc3a89248af8 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Wed, 15 Nov 2017 21:49:09 +0000 Subject: [PATCH 0166/1149] CIP: Bump version suffix to -cip12 after watchdog backports and fw removal Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index a7efddb5ccbe..4a6a5e8b1447 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip11 +-cip12 From 94e27e1f565ba7790a67796f4e2630861497a476 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Wed, 15 Nov 2017 21:49:57 +0000 Subject: [PATCH 0167/1149] CIP: Bump version suffix to -cip13 after merge Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 4a6a5e8b1447..af4f7b6e9dab 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip12 +-cip13 From 3d3bc50700ba7e7c370229f20f0b3ddafc1562cd Mon Sep 17 00:00:00 2001 From: Mika Westerberg Date: Fri, 17 Nov 2017 21:45:39 +0100 Subject: [PATCH 0168/1149] spi: pxa2xx: Add support for GPIO descriptor chip selects commit 99f499cd650405bbe6a9b5386d4b11ee81514fb7 upstream. The driver uses custom chip_info coming from platform data for chip selects implemented as GPIOs. If the system lacks board files setting up the platform data, it is not possible to use GPIOs as chip selects. This adds support for GPIO descriptors so that regardless of the underlying firmware interface (DT, ACPI or platform data) the driver can request GPIOs used as chip selects and configure them accordingly. The custom chip_info GPIO support is still left there to make sure the existing systems keep working as expected. Signed-off-by: Mika Westerberg Signed-off-by: Mark Brown Signed-off-by: Jan Kiszka Signed-off-by: Ben Hutchings --- drivers/spi/spi-pxa2xx.c | 57 +++++++++++++++++++++++++++++++++++++--- drivers/spi/spi-pxa2xx.h | 3 +++ 2 files changed, 57 insertions(+), 3 deletions(-) diff --git a/drivers/spi/spi-pxa2xx.c b/drivers/spi/spi-pxa2xx.c index 3cac73e4c3e4..21339ca204d9 100644 --- a/drivers/spi/spi-pxa2xx.c +++ b/drivers/spi/spi-pxa2xx.c @@ -1122,9 +1122,26 @@ static int pxa2xx_spi_unprepare_transfer(struct spi_master *master) static int setup_cs(struct spi_device *spi, struct chip_data *chip, struct pxa2xx_spi_chip *chip_info) { + struct driver_data *drv_data = spi_master_get_devdata(spi->master); int err = 0; - if (chip == NULL || chip_info == NULL) + if (chip == NULL) + return 0; + + if (drv_data->cs_gpiods) { + struct gpio_desc *gpiod; + + gpiod = drv_data->cs_gpiods[spi->chip_select]; + if (gpiod) { + chip->gpio_cs = desc_to_gpio(gpiod); + chip->gpio_cs_inverted = spi->mode & SPI_CS_HIGH; + gpiod_set_value(gpiod, chip->gpio_cs_inverted); + } + + return 0; + } + + if (chip_info == NULL) return 0; /* NOTE: setup() can be called multiple times, possibly with @@ -1305,7 +1322,8 @@ static void cleanup(struct spi_device *spi) if (!chip) return; - if (drv_data->ssp_type != CE4100_SSP && gpio_is_valid(chip->gpio_cs)) + if (drv_data->ssp_type != CE4100_SSP && !drv_data->cs_gpiods && + gpio_is_valid(chip->gpio_cs)) gpio_free(chip->gpio_cs); kfree(chip); @@ -1453,7 +1471,7 @@ static int pxa2xx_spi_probe(struct platform_device *pdev) struct driver_data *drv_data; struct ssp_device *ssp; const struct lpss_config *config; - int status; + int status, count; u32 tmp; platform_info = dev_get_platdata(dev); @@ -1590,6 +1608,39 @@ static int pxa2xx_spi_probe(struct platform_device *pdev) } master->num_chipselect = platform_info->num_chipselect; + count = gpiod_count(&pdev->dev, "cs"); + if (count > 0) { + int i; + + master->num_chipselect = max_t(int, count, + master->num_chipselect); + + drv_data->cs_gpiods = devm_kcalloc(&pdev->dev, + master->num_chipselect, sizeof(struct gpio_desc *), + GFP_KERNEL); + if (!drv_data->cs_gpiods) { + status = -ENOMEM; + goto out_error_clock_enabled; + } + + for (i = 0; i < master->num_chipselect; i++) { + struct gpio_desc *gpiod; + + gpiod = devm_gpiod_get_index(dev, "cs", i, + GPIOD_OUT_HIGH); + if (IS_ERR(gpiod)) { + /* Means use native chip select */ + if (PTR_ERR(gpiod) == -ENOENT) + continue; + + status = (int)PTR_ERR(gpiod); + goto out_error_clock_enabled; + } else { + drv_data->cs_gpiods[i] = gpiod; + } + } + } + tasklet_init(&drv_data->pump_transfers, pump_transfers, (unsigned long)drv_data); diff --git a/drivers/spi/spi-pxa2xx.h b/drivers/spi/spi-pxa2xx.h index 58efa98313aa..1320538f8623 100644 --- a/drivers/spi/spi-pxa2xx.h +++ b/drivers/spi/spi-pxa2xx.h @@ -80,6 +80,9 @@ struct driver_data { void (*cs_control)(u32 command); void __iomem *lpss_base; + + /* GPIOs for chip selects */ + struct gpio_desc **cs_gpiods; }; struct chip_data { From c2f4fcae5dbae7f24304e3857b737c0f07247815 Mon Sep 17 00:00:00 2001 From: Andy Shevchenko Date: Thu, 16 Nov 2017 13:06:00 +0100 Subject: [PATCH 0169/1149] spi: pxa2xx-pci: fix ACPI-based enumeration of SPI devices commit b70cd2de0ea85f5ab51a1d01893cba6415011b9d upstream. Slave devices are not enumerated by ACPI data because the ACPI handle for the core driver is NULL if it was enumerated by PCI. Propagate firmware node handle of the PCI device to the platform device. Suggested-by: Mika Westerberg Signed-off-by: Andy Shevchenko Signed-off-by: Mark Brown Signed-off-by: Jan Kiszka Signed-off-by: Ben Hutchings --- drivers/spi/spi-pxa2xx-pci.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/spi/spi-pxa2xx-pci.c b/drivers/spi/spi-pxa2xx-pci.c index d19d7f28aecb..ac0658ead1b9 100644 --- a/drivers/spi/spi-pxa2xx-pci.c +++ b/drivers/spi/spi-pxa2xx-pci.c @@ -167,6 +167,7 @@ static int pxa2xx_spi_pci_probe(struct pci_dev *dev, return PTR_ERR(ssp->clk); memset(&pi, 0, sizeof(pi)); + pi.fwnode = dev->dev.fwnode; pi.parent = &dev->dev; pi.name = "pxa2xx-spi"; pi.id = ssp->port_id; From 2f8f4caefc38c1c3908e9a927f2b8cff8863fab4 Mon Sep 17 00:00:00 2001 From: Dave Young Date: Sun, 15 Nov 2015 15:31:05 +0800 Subject: [PATCH 0170/1149] wireless: change cfg80211 regulatory domain info as debug messages commit 94c4fd641e1bc438092f0214bb5ec77ea73b13cf upstream. cfg80211 module prints a lot of messages like below. Actually printing once is acceptable but sometimes it will print again and again, it looks very annoying. It is better to change these detail messages to debugging only. cfg80211: World regulatory domain updated: cfg80211: DFS Master region: unset cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time) cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A) cfg80211: (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A) cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A) cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A) cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s) cfg80211: (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s) cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A) cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A) The changes in this patch is to replace pr_info with pr_debug in function print_rd_rules and print_regdomain_info Signed-off-by: Dave Young [change some pr_err() statements to at least keep the alpha2] Signed-off-by: Johannes Berg Signed-off-by: Maxim Yu. Osipov Signed-off-by: Ben Hutchings --- net/wireless/reg.c | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/net/wireless/reg.c b/net/wireless/reg.c index 06d050da0d94..40e5b36ddbba 100644 --- a/net/wireless/reg.c +++ b/net/wireless/reg.c @@ -2763,7 +2763,7 @@ static void print_rd_rules(const struct ieee80211_regdomain *rd) const struct ieee80211_power_rule *power_rule = NULL; char bw[32], cac_time[32]; - pr_info(" (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)\n"); + pr_debug(" (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)\n"); for (i = 0; i < rd->n_reg_rules; i++) { reg_rule = &rd->reg_rules[i]; @@ -2790,7 +2790,7 @@ static void print_rd_rules(const struct ieee80211_regdomain *rd) * in certain regions */ if (power_rule->max_antenna_gain) - pr_info(" (%d KHz - %d KHz @ %s), (%d mBi, %d mBm), (%s)\n", + pr_debug(" (%d KHz - %d KHz @ %s), (%d mBi, %d mBm), (%s)\n", freq_range->start_freq_khz, freq_range->end_freq_khz, bw, @@ -2798,7 +2798,7 @@ static void print_rd_rules(const struct ieee80211_regdomain *rd) power_rule->max_eirp, cac_time); else - pr_info(" (%d KHz - %d KHz @ %s), (N/A, %d mBm), (%s)\n", + pr_debug(" (%d KHz - %d KHz @ %s), (N/A, %d mBm), (%s)\n", freq_range->start_freq_khz, freq_range->end_freq_khz, bw, @@ -2831,35 +2831,35 @@ static void print_regdomain(const struct ieee80211_regdomain *rd) struct cfg80211_registered_device *rdev; rdev = cfg80211_rdev_by_wiphy_idx(lr->wiphy_idx); if (rdev) { - pr_info("Current regulatory domain updated by AP to: %c%c\n", + pr_debug("Current regulatory domain updated by AP to: %c%c\n", rdev->country_ie_alpha2[0], rdev->country_ie_alpha2[1]); } else - pr_info("Current regulatory domain intersected:\n"); + pr_debug("Current regulatory domain intersected:\n"); } else - pr_info("Current regulatory domain intersected:\n"); + pr_debug("Current regulatory domain intersected:\n"); } else if (is_world_regdom(rd->alpha2)) { - pr_info("World regulatory domain updated:\n"); + pr_debug("World regulatory domain updated:\n"); } else { if (is_unknown_alpha2(rd->alpha2)) - pr_info("Regulatory domain changed to driver built-in settings (unknown country)\n"); + pr_debug("Regulatory domain changed to driver built-in settings (unknown country)\n"); else { if (reg_request_cell_base(lr)) - pr_info("Regulatory domain changed to country: %c%c by Cell Station\n", + pr_debug("Regulatory domain changed to country: %c%c by Cell Station\n", rd->alpha2[0], rd->alpha2[1]); else - pr_info("Regulatory domain changed to country: %c%c\n", + pr_debug("Regulatory domain changed to country: %c%c\n", rd->alpha2[0], rd->alpha2[1]); } } - pr_info(" DFS Master region: %s", reg_dfs_region_str(rd->dfs_region)); + pr_debug(" DFS Master region: %s", reg_dfs_region_str(rd->dfs_region)); print_rd_rules(rd); } static void print_regdomain_info(const struct ieee80211_regdomain *rd) { - pr_info("Regulatory domain: %c%c\n", rd->alpha2[0], rd->alpha2[1]); + pr_debug("Regulatory domain: %c%c\n", rd->alpha2[0], rd->alpha2[1]); print_rd_rules(rd); } @@ -2880,7 +2880,8 @@ static int reg_set_rd_user(const struct ieee80211_regdomain *rd, return -EALREADY; if (!is_valid_rd(rd)) { - pr_err("Invalid regulatory domain detected:\n"); + pr_err("Invalid regulatory domain detected: %c%c\n", + rd->alpha2[0], rd->alpha2[1]); print_regdomain_info(rd); return -EINVAL; } @@ -2916,7 +2917,8 @@ static int reg_set_rd_driver(const struct ieee80211_regdomain *rd, return -EALREADY; if (!is_valid_rd(rd)) { - pr_err("Invalid regulatory domain detected:\n"); + pr_err("Invalid regulatory domain detected: %c%c\n", + rd->alpha2[0], rd->alpha2[1]); print_regdomain_info(rd); return -EINVAL; } @@ -2974,7 +2976,8 @@ static int reg_set_rd_country_ie(const struct ieee80211_regdomain *rd, */ if (!is_valid_rd(rd)) { - pr_err("Invalid regulatory domain detected:\n"); + pr_err("Invalid regulatory domain detected: %c%c\n", + rd->alpha2[0], rd->alpha2[1]); print_regdomain_info(rd); return -EINVAL; } From a9b0d48aff5957c2c14c0022390c249491f6449c Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Sun, 10 Dec 2017 20:02:44 +0000 Subject: [PATCH 0171/1149] CIP: Bump version suffix to -cip14 before merge Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index af4f7b6e9dab..0467784cb568 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip13 +-cip14 From 5f02bece61a3b29629394c6e9eb59872a7256d7b Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Sun, 10 Dec 2017 20:04:06 +0000 Subject: [PATCH 0172/1149] Revert "x86/efi: Build our own page table structures" This reverts commit 36e0f05afd4e1d09fd47936761a502aedbc50649, which was commit 67a9108ed4313b85a9c53406d80dc1ae3f8c3e36 upstream. This caused several regressions which will need to be addressed by backporting further fixes. Until and unless those changes are made in 4.4-stable, simply revert it. Signed-off-by: Ben Hutchings --- arch/x86/include/asm/efi.h | 1 - arch/x86/platform/efi/efi.c | 39 +++++++++----- arch/x86/platform/efi/efi_32.c | 5 -- arch/x86/platform/efi/efi_64.c | 97 ++++++---------------------------- 4 files changed, 40 insertions(+), 102 deletions(-) diff --git a/arch/x86/include/asm/efi.h b/arch/x86/include/asm/efi.h index 8fd9e637629a..347eeacb06a8 100644 --- a/arch/x86/include/asm/efi.h +++ b/arch/x86/include/asm/efi.h @@ -136,7 +136,6 @@ extern void __init efi_memory_uc(u64 addr, unsigned long size); extern void __init efi_map_region(efi_memory_desc_t *md); extern void __init efi_map_region_fixed(efi_memory_desc_t *md); extern void efi_sync_low_kernel_mappings(void); -extern int __init efi_alloc_page_tables(void); extern int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages); extern void __init efi_cleanup_page_tables(unsigned long pa_memmap, unsigned num_pages); extern void __init old_map_region(efi_memory_desc_t *md); diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c index 3c1f3cd7b2ba..ad285404ea7f 100644 --- a/arch/x86/platform/efi/efi.c +++ b/arch/x86/platform/efi/efi.c @@ -869,7 +869,7 @@ static void __init kexec_enter_virtual_mode(void) * This function will switch the EFI runtime services to virtual mode. * Essentially, we look through the EFI memmap and map every region that * has the runtime attribute bit set in its memory descriptor into the - * efi_pgd page table. + * ->trampoline_pgd page table using a top-down VA allocation scheme. * * The old method which used to update that memory descriptor with the * virtual address obtained from ioremap() is still supported when the @@ -879,8 +879,8 @@ static void __init kexec_enter_virtual_mode(void) * * The new method does a pagetable switch in a preemption-safe manner * so that we're in a different address space when calling a runtime - * function. For function arguments passing we do copy the PUDs of the - * kernel page table into efi_pgd prior to each call. + * function. For function arguments passing we do copy the PGDs of the + * kernel page table into ->trampoline_pgd prior to each call. * * Specially for kexec boot, efi runtime maps in previous kernel should * be passed in via setup_data. In that case runtime ranges will be mapped @@ -895,12 +895,6 @@ static void __init __efi_enter_virtual_mode(void) efi.systab = NULL; - if (efi_alloc_page_tables()) { - pr_err("Failed to allocate EFI page tables\n"); - clear_bit(EFI_RUNTIME_SERVICES, &efi.flags); - return; - } - efi_merge_regions(); new_memmap = efi_map_regions(&count, &pg_shift); if (!new_memmap) { @@ -960,11 +954,28 @@ static void __init __efi_enter_virtual_mode(void) efi_runtime_mkexec(); /* - * We mapped the descriptor array into the EFI pagetable above - * but we're not unmapping it here because if we're running in - * EFI mixed mode we need all of memory to be accessible when - * we pass parameters to the EFI runtime services in the - * thunking code. + * We mapped the descriptor array into the EFI pagetable above but we're + * not unmapping it here. Here's why: + * + * We're copying select PGDs from the kernel page table to the EFI page + * table and when we do so and make changes to those PGDs like unmapping + * stuff from them, those changes appear in the kernel page table and we + * go boom. + * + * From setup_real_mode(): + * + * ... + * trampoline_pgd[0] = init_level4_pgt[pgd_index(__PAGE_OFFSET)].pgd; + * + * In this particular case, our allocation is in PGD 0 of the EFI page + * table but we've copied that PGD from PGD[272] of the EFI page table: + * + * pgd_index(__PAGE_OFFSET = 0xffff880000000000) = 272 + * + * where the direct memory mapping in kernel space is. + * + * new_memmap's VA comes from that direct mapping and thus clearing it, + * it would get cleared in the kernel page table too. * * efi_cleanup_page_tables(__pa(new_memmap), 1 << pg_shift); */ diff --git a/arch/x86/platform/efi/efi_32.c b/arch/x86/platform/efi/efi_32.c index 58d669bc8250..ed5b67338294 100644 --- a/arch/x86/platform/efi/efi_32.c +++ b/arch/x86/platform/efi/efi_32.c @@ -38,11 +38,6 @@ * say 0 - 3G. */ -int __init efi_alloc_page_tables(void) -{ - return 0; -} - void efi_sync_low_kernel_mappings(void) {} void __init efi_dump_pagetable(void) {} int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages) diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c index 18dfaad71c99..be8a32416e12 100644 --- a/arch/x86/platform/efi/efi_64.c +++ b/arch/x86/platform/efi/efi_64.c @@ -40,7 +40,6 @@ #include #include #include -#include /* * We allocate runtime services regions bottom-up, starting from -4G, i.e. @@ -122,92 +121,22 @@ void __init efi_call_phys_epilog(pgd_t *save_pgd) early_code_mapping_set_exec(0); } -static pgd_t *efi_pgd; - -/* - * We need our own copy of the higher levels of the page tables - * because we want to avoid inserting EFI region mappings (EFI_VA_END - * to EFI_VA_START) into the standard kernel page tables. Everything - * else can be shared, see efi_sync_low_kernel_mappings(). - */ -int __init efi_alloc_page_tables(void) -{ - pgd_t *pgd; - pud_t *pud; - gfp_t gfp_mask; - - if (efi_enabled(EFI_OLD_MEMMAP)) - return 0; - - gfp_mask = GFP_KERNEL | __GFP_NOTRACK | __GFP_REPEAT | __GFP_ZERO; - efi_pgd = (pgd_t *)__get_free_page(gfp_mask); - if (!efi_pgd) - return -ENOMEM; - - pgd = efi_pgd + pgd_index(EFI_VA_END); - - pud = pud_alloc_one(NULL, 0); - if (!pud) { - free_page((unsigned long)efi_pgd); - return -ENOMEM; - } - - pgd_populate(NULL, pgd, pud); - - return 0; -} - /* * Add low kernel mappings for passing arguments to EFI functions. */ void efi_sync_low_kernel_mappings(void) { - unsigned num_entries; - pgd_t *pgd_k, *pgd_efi; - pud_t *pud_k, *pud_efi; + unsigned num_pgds; + pgd_t *pgd = (pgd_t *)__va(real_mode_header->trampoline_pgd); if (efi_enabled(EFI_OLD_MEMMAP)) return; - /* - * We can share all PGD entries apart from the one entry that - * covers the EFI runtime mapping space. - * - * Make sure the EFI runtime region mappings are guaranteed to - * only span a single PGD entry and that the entry also maps - * other important kernel regions. - */ - BUILD_BUG_ON(pgd_index(EFI_VA_END) != pgd_index(MODULES_END)); - BUILD_BUG_ON((EFI_VA_START & PGDIR_MASK) != - (EFI_VA_END & PGDIR_MASK)); - - pgd_efi = efi_pgd + pgd_index(PAGE_OFFSET); - pgd_k = pgd_offset_k(PAGE_OFFSET); - - num_entries = pgd_index(EFI_VA_END) - pgd_index(PAGE_OFFSET); - memcpy(pgd_efi, pgd_k, sizeof(pgd_t) * num_entries); + num_pgds = pgd_index(MODULES_END - 1) - pgd_index(PAGE_OFFSET); - /* - * We share all the PUD entries apart from those that map the - * EFI regions. Copy around them. - */ - BUILD_BUG_ON((EFI_VA_START & ~PUD_MASK) != 0); - BUILD_BUG_ON((EFI_VA_END & ~PUD_MASK) != 0); - - pgd_efi = efi_pgd + pgd_index(EFI_VA_END); - pud_efi = pud_offset(pgd_efi, 0); - - pgd_k = pgd_offset_k(EFI_VA_END); - pud_k = pud_offset(pgd_k, 0); - - num_entries = pud_index(EFI_VA_END); - memcpy(pud_efi, pud_k, sizeof(pud_t) * num_entries); - - pud_efi = pud_offset(pgd_efi, EFI_VA_START); - pud_k = pud_offset(pgd_k, EFI_VA_START); - - num_entries = PTRS_PER_PUD - pud_index(EFI_VA_START); - memcpy(pud_efi, pud_k, sizeof(pud_t) * num_entries); + memcpy(pgd + pgd_index(PAGE_OFFSET), + init_mm.pgd + pgd_index(PAGE_OFFSET), + sizeof(pgd_t) * num_pgds); } int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages) @@ -220,8 +149,8 @@ int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages) if (efi_enabled(EFI_OLD_MEMMAP)) return 0; - efi_scratch.efi_pgt = (pgd_t *)__pa(efi_pgd); - pgd = efi_pgd; + efi_scratch.efi_pgt = (pgd_t *)(unsigned long)real_mode_header->trampoline_pgd; + pgd = __va(efi_scratch.efi_pgt); /* * It can happen that the physical address of new_memmap lands in memory @@ -267,14 +196,16 @@ int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages) void __init efi_cleanup_page_tables(unsigned long pa_memmap, unsigned num_pages) { - kernel_unmap_pages_in_pgd(efi_pgd, pa_memmap, num_pages); + pgd_t *pgd = (pgd_t *)__va(real_mode_header->trampoline_pgd); + + kernel_unmap_pages_in_pgd(pgd, pa_memmap, num_pages); } static void __init __map_region(efi_memory_desc_t *md, u64 va) { + pgd_t *pgd = (pgd_t *)__va(real_mode_header->trampoline_pgd); unsigned long flags = 0; unsigned long pfn; - pgd_t *pgd = efi_pgd; if (!(md->attribute & EFI_MEMORY_WB)) flags |= _PAGE_PCD; @@ -383,7 +314,9 @@ void __init efi_runtime_mkexec(void) void __init efi_dump_pagetable(void) { #ifdef CONFIG_EFI_PGT_DUMP - ptdump_walk_pgd_level(NULL, efi_pgd); + pgd_t *pgd = (pgd_t *)__va(real_mode_header->trampoline_pgd); + + ptdump_walk_pgd_level(NULL, pgd); #endif } From 9642d38c83082d213877f6e486033971ee2f093c Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Wed, 13 Dec 2017 15:15:09 +0000 Subject: [PATCH 0173/1149] CIP: Bump version suffix to -cip15 after merge Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 0467784cb568..f29c9f243acb 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip14 +-cip15 From cef2d19a508c6100153885adc199988b4dcffd0e Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Fri, 5 Jan 2018 18:04:36 +0000 Subject: [PATCH 0174/1149] CIP: Bump version suffix to -cip16 after merge Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index f29c9f243acb..2d43ae5ed573 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip15 +-cip16 From 3d295110601fc2bf36afaed5f4ed2100c291faea Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 11 Jan 2018 16:53:35 +0000 Subject: [PATCH 0175/1149] xhci: Fix ring leak in failure path of xhci_alloc_virt_device() This is a stable-only fix for the backport of commit 5d9b70f7d52e ("xhci: Don't add a virt_dev to the devs array before it's fully allocated"). In branches that predate commit c5628a2af83a ("xhci: remove endpoint ring cache") there is an additional failure path in xhci_alloc_virt_device() where ring cache allocation fails, in which case we need to free the ring allocated for endpoint 0. Signed-off-by: Ben Hutchings --- drivers/usb/host/xhci-mem.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c index f7481c4e2bc9..d9363713b7f1 100644 --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c @@ -1071,7 +1071,8 @@ int xhci_alloc_virt_device(struct xhci_hcd *xhci, int slot_id, return 1; fail: - + if (dev->eps[0].ring) + xhci_ring_free(xhci, dev->eps[0].ring); if (dev->in_ctx) xhci_free_container_ctx(xhci, dev->in_ctx); if (dev->out_ctx) From 1054e0e1837b6a87f4195705c993ec37822c5c97 Mon Sep 17 00:00:00 2001 From: Tomas Henzl Date: Mon, 20 Mar 2017 16:42:48 +0100 Subject: [PATCH 0176/1149] scsi: hpsa: fix volume offline state commit eb94588dabec82e012281608949a860f64752914 upstream. In a previous patch a hpsa_scsi_dev_t.volume_offline update line has been removed, so let us put it back.. Fixes: 85b29008d8 (hpsa: update check for logical volume status) Signed-off-by: Tomas Henzl Acked-by: Don Brace Signed-off-by: Martin K. Petersen Cc: Ben Hutchings Signed-off-by: Greg Kroah-Hartman --- drivers/scsi/hpsa.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c index 0c87f341fed4..910b795fc5eb 100644 --- a/drivers/scsi/hpsa.c +++ b/drivers/scsi/hpsa.c @@ -3638,6 +3638,7 @@ static int hpsa_update_device_info(struct ctlr_info *h, if (h->fw_support & MISC_FW_RAID_OFFLOAD_BASIC) hpsa_get_ioaccel_status(h, scsi3addr, this_device); volume_offline = hpsa_volume_offline(h, scsi3addr); + this_device->volume_offline = volume_offline; if (volume_offline == HPSA_LV_FAILED) { rc = HPSA_LV_FAILED; dev_err(&h->pdev->dev, From c937d6f7a3729f4aabc5bba5389fd087795d6bc7 Mon Sep 17 00:00:00 2001 From: Xunlei Pang Date: Wed, 10 May 2017 21:03:37 +0800 Subject: [PATCH 0177/1149] sched/deadline: Zero out positive runtime after throttling constrained tasks commit ae83b56a56f8d9643dedbee86b457fa1c5d42f59 upstream. When a contrained task is throttled by dl_check_constrained_dl(), it may carry the remaining positive runtime, as a result when dl_task_timer() fires and calls replenish_dl_entity(), it will not be replenished correctly due to the positive dl_se->runtime. This patch assigns its runtime to 0 if positive after throttling. Signed-off-by: Xunlei Pang Signed-off-by: Peter Zijlstra (Intel) Acked-by: Daniel Bristot de Oliveira Cc: Juri Lelli Cc: Linus Torvalds Cc: Luca Abeni Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Fixes: df8eac8cafce ("sched/deadline: Throttle a constrained deadline task activated after the deadline) Link: http://lkml.kernel.org/r/1494421417-27550-1-git-send-email-xlpang@redhat.com Signed-off-by: Ingo Molnar Cc: Ben Hutchings Signed-off-by: Greg Kroah-Hartman --- kernel/sched/deadline.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c index a996f7356216..6be2afd9bfd6 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -732,6 +732,8 @@ static inline void dl_check_constrained_dl(struct sched_dl_entity *dl_se) if (unlikely(dl_se->dl_boosted || !start_dl_timer(p))) return; dl_se->dl_throttled = 1; + if (dl_se->runtime > 0) + dl_se->runtime = 0; } } From 25c3bedde7064f279397c9f7d3336f0b4c80f614 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Mon, 22 Jan 2018 20:11:06 +0000 Subject: [PATCH 0178/1149] nfsd: auth: Fix gid sorting when rootsquash enabled commit 1995266727fa8143897e89b55f5d3c79aa828420 upstream. Commit bdcf0a423ea1 ("kernel: make groups_sort calling a responsibility group_info allocators") appears to break nfsd rootsquash in a pretty major way. It adds a call to groups_sort() inside the loop that copies/squashes gids, which means the valid gids are sorted along with the following garbage. The net result is that the highest numbered valid gids are replaced with any lower-valued garbage gids, possibly including 0. We should sort only once, after filling in all the gids. Fixes: bdcf0a423ea1 ("kernel: make groups_sort calling a responsibility ...") Signed-off-by: Ben Hutchings Acked-by: J. Bruce Fields Signed-off-by: Linus Torvalds --- fs/nfsd/auth.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/nfsd/auth.c b/fs/nfsd/auth.c index a260060042ad..6b8b16d79d76 100644 --- a/fs/nfsd/auth.c +++ b/fs/nfsd/auth.c @@ -59,10 +59,10 @@ int nfsd_setuser(struct svc_rqst *rqstp, struct svc_export *exp) GROUP_AT(gi, i) = exp->ex_anon_gid; else GROUP_AT(gi, i) = GROUP_AT(rqgi, i); - - /* Each thread allocates its own gi, no race */ - groups_sort(gi); } + + /* Each thread allocates its own gi, no race */ + groups_sort(gi); } else { gi = get_group_info(rqgi); } From c9dd3514d2307037e7c1a2a48bb524454ddb0313 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Wed, 24 Jan 2018 02:28:12 +0000 Subject: [PATCH 0179/1149] x86/microcode/intel: Fix BDW late-loading revision check The backport of commit b94b73733171 ("x86/microcode/intel: Extend BDW late-loading with a revision check") to 4.4-stable deleted a "return true" statement. This bug is not present upstream or other stable branches. Signed-off-by: Ben Hutchings --- arch/x86/kernel/cpu/microcode/intel.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/x86/kernel/cpu/microcode/intel.c b/arch/x86/kernel/cpu/microcode/intel.c index b428a8174be1..ee011bd7934d 100644 --- a/arch/x86/kernel/cpu/microcode/intel.c +++ b/arch/x86/kernel/cpu/microcode/intel.c @@ -1005,6 +1005,7 @@ static bool is_blacklisted(unsigned int cpu) c->microcode < 0x0b000021) { pr_err_once("Erratum BDF90: late loading with revision < 0x0b000021 (0x%x) disabled.\n", c->microcode); pr_err_once("Please consider either early loading through initrd/built-in or a potential BIOS update.\n"); + return true; } return false; From 8261ccd8aa5fc7ca8c4b3144a5e61bbc5bd1e954 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Fri, 26 Jan 2018 03:12:17 +0000 Subject: [PATCH 0180/1149] vsyscall: Fix permissions for emulate mode with KAISER/PTI The backport of KAISER to 4.4 turned vsyscall emulate mode into native mode. Add a vsyscall_pgprot variable to hold the correct page protections, like Borislav and Hugh did for 3.2 and 3.18. Cc: Borislav Petkov Cc: Hugh Dickins Signed-off-by: Ben Hutchings --- arch/x86/entry/vsyscall/vsyscall_64.c | 7 ++++--- arch/x86/include/asm/vsyscall.h | 1 + arch/x86/mm/kaiser.c | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/arch/x86/entry/vsyscall/vsyscall_64.c b/arch/x86/entry/vsyscall/vsyscall_64.c index 112178b401a1..2d359991a273 100644 --- a/arch/x86/entry/vsyscall/vsyscall_64.c +++ b/arch/x86/entry/vsyscall/vsyscall_64.c @@ -46,6 +46,7 @@ static enum { EMULATE, NATIVE, NONE } vsyscall_mode = #else EMULATE; #endif +unsigned long vsyscall_pgprot = __PAGE_KERNEL_VSYSCALL; static int __init vsyscall_setup(char *str) { @@ -336,11 +337,11 @@ void __init map_vsyscall(void) extern char __vsyscall_page; unsigned long physaddr_vsyscall = __pa_symbol(&__vsyscall_page); + if (vsyscall_mode != NATIVE) + vsyscall_pgprot = __PAGE_KERNEL_VVAR; if (vsyscall_mode != NONE) __set_fixmap(VSYSCALL_PAGE, physaddr_vsyscall, - vsyscall_mode == NATIVE - ? PAGE_KERNEL_VSYSCALL - : PAGE_KERNEL_VVAR); + __pgprot(vsyscall_pgprot)); BUILD_BUG_ON((unsigned long)__fix_to_virt(VSYSCALL_PAGE) != (unsigned long)VSYSCALL_ADDR); diff --git a/arch/x86/include/asm/vsyscall.h b/arch/x86/include/asm/vsyscall.h index 4865e10dbb55..9ee85066f407 100644 --- a/arch/x86/include/asm/vsyscall.h +++ b/arch/x86/include/asm/vsyscall.h @@ -13,6 +13,7 @@ extern void map_vsyscall(void); */ extern bool emulate_vsyscall(struct pt_regs *regs, unsigned long address); extern bool vsyscall_enabled(void); +extern unsigned long vsyscall_pgprot; #else static inline void map_vsyscall(void) {} static inline bool emulate_vsyscall(struct pt_regs *regs, unsigned long address) diff --git a/arch/x86/mm/kaiser.c b/arch/x86/mm/kaiser.c index 8af98513d36c..2298434f7bdb 100644 --- a/arch/x86/mm/kaiser.c +++ b/arch/x86/mm/kaiser.c @@ -345,7 +345,7 @@ void __init kaiser_init(void) if (vsyscall_enabled()) kaiser_add_user_map_early((void *)VSYSCALL_ADDR, PAGE_SIZE, - __PAGE_KERNEL_VSYSCALL); + vsyscall_pgprot); for_each_possible_cpu(cpu) { void *percpu_vaddr = __per_cpu_user_mapped_start + From f66b9bbffde5697812b8417006e28f6a78c7ef58 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Wed, 24 Jan 2018 03:14:26 +0000 Subject: [PATCH 0181/1149] CIP: Bump version suffix to -cip17 after merge and fixups Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 2d43ae5ed573..3523252e3984 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip16 +-cip17 From fb0403a018bcab9eb2597e68c862968722c885b4 Mon Sep 17 00:00:00 2001 From: Chris Paterson Date: Tue, 9 Jan 2018 11:48:37 +0000 Subject: [PATCH 0182/1149] ARM: shmobile: r8a7743: Fix Watchdog timer clock R8A7743_CLK_RWDT should be 2 as specified in the hardware manual. Fixes: 9683f2eba952bc0d ("ARM: shmobile: r8a7743: Add clock index macros for DT sources") Reported-by: Thong Ho Signed-off-by: Chris Paterson Signed-off-by: Ben Hutchings --- include/dt-bindings/clock/r8a7743-clock.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/dt-bindings/clock/r8a7743-clock.h b/include/dt-bindings/clock/r8a7743-clock.h index a5c7e387e66d..53f54dfce592 100644 --- a/include/dt-bindings/clock/r8a7743-clock.h +++ b/include/dt-bindings/clock/r8a7743-clock.h @@ -71,7 +71,7 @@ #define R8A7743_CLK_USBDMAC1 31 /* MSTP4 */ -#define R8A7743_CLK_RWDT 4 +#define R8A7743_CLK_RWDT 2 #define R8A7743_CLK_USB_DDM 6 #define R8A7743_CLK_IRQC 7 #define R8A7743_CLK_INTC_SYS 8 From 4e52cc5f668c4666e31a8485725b5f4e897b3baf Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Wed, 24 Jan 2018 22:02:52 +0000 Subject: [PATCH 0183/1149] CIP: Bump version suffix to -cip18 after Renesas DT patch Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 3523252e3984..5bf5c2723ddd 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip17 +-cip18 From dcbf2871384ad32688ffd4df94a725066a1f8aaf Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 31 Jan 2018 11:15:46 +0000 Subject: [PATCH 0184/1149] ARM: shmobile: Add pm support for r8a7743 Adding pm support for r8a7743 SoC. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- arch/arm/mach-shmobile/pm-rcar-gen2.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm/mach-shmobile/pm-rcar-gen2.c b/arch/arm/mach-shmobile/pm-rcar-gen2.c index 6815781ad116..94a275931dd9 100644 --- a/arch/arm/mach-shmobile/pm-rcar-gen2.c +++ b/arch/arm/mach-shmobile/pm-rcar-gen2.c @@ -82,6 +82,9 @@ void __init rcar_gen2_pm_init(void) } else if (of_machine_is_compatible("renesas,r8a7791")) { boot_vector_addr = RAM; syscier = 0x00111003; + } else if (of_machine_is_compatible("renesas,r8a7743")) { + boot_vector_addr = RAM; + syscier = 0x00101003; } /* RAM for jump stub, because BAR requires 256KB aligned address */ From 3c6f8208a771f8c99bfa6d4181aa0acadfa50cd1 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Wed, 31 Jan 2018 11:15:47 +0000 Subject: [PATCH 0185/1149] ARM: shmobile: apmu: Move #ifdef CONFIG_SMP to cover more functions shmobile_smp_apmu_prepare_cpus() is used only if CONFIG_SMP=y. Hence move the #ifdef to cover shmobile_smp_apmu_prepare_cpus() and all functions only called by it (apmu_init_cpu() and apmu_parse_cfg()). Signed-off-by: Geert Uytterhoeven Reviewed-by: Ulrich Hecht Signed-off-by: Simon Horman (cherry picked from commit d3f3fb0cfdcf4cbf69af65e8bfdde65cedf4e53a) Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- arch/arm/mach-shmobile/platsmp-apmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/mach-shmobile/platsmp-apmu.c b/arch/arm/mach-shmobile/platsmp-apmu.c index 911884f7e28b..cff623f2dfcb 100644 --- a/arch/arm/mach-shmobile/platsmp-apmu.c +++ b/arch/arm/mach-shmobile/platsmp-apmu.c @@ -74,6 +74,7 @@ static int __maybe_unused apmu_wrap(int cpu, int (*fn)(void __iomem *p, int cpu) return p ? fn(p, apmu_cpus[cpu].bit) : -EINVAL; } +#ifdef CONFIG_SMP static void apmu_init_cpu(struct resource *res, int cpu, int bit) { if ((cpu >= ARRAY_SIZE(apmu_cpus)) || apmu_cpus[cpu].iomem) @@ -129,7 +130,6 @@ void __init shmobile_smp_apmu_prepare_cpus(unsigned int max_cpus, apmu_parse_cfg(apmu_init_cpu, apmu_config, num); } -#ifdef CONFIG_SMP int shmobile_smp_apmu_boot_secondary(unsigned int cpu, struct task_struct *idle) { /* For this particular CPU register boot vector */ From 6dbda7deacc495c751404ea473e038a08049d365 Mon Sep 17 00:00:00 2001 From: Magnus Damm Date: Wed, 31 Jan 2018 11:15:48 +0000 Subject: [PATCH 0186/1149] ARM: shmobile: apmu: Add APMU DT support via Enable method Allow DT configuration of the APMU hardware in the case when the APMU is pointed out in the DTB via the enable-method. The ability to configure the APMU via C code is still kept intact to prevent DTB breakage for older SoCs that do not rely on the enable-method for SMP support. Signed-off-by: Magnus Damm [geert: Fix CONFIG_SMP=n build] Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 5f3bca0db8ac01a73622361f6062939638bf4730) (Backported APMU DT support via Enable method) Signed-off-by: Biju Das Reviewed-by: Chris Paterson Conflicts: arch/arm/mach-shmobile/platsmp-apmu.c Signed-off-by: Ben Hutchings --- arch/arm/mach-shmobile/platsmp-apmu.c | 90 ++++++++++++++++++++++++++- 1 file changed, 89 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-shmobile/platsmp-apmu.c b/arch/arm/mach-shmobile/platsmp-apmu.c index cff623f2dfcb..444765eec5ae 100644 --- a/arch/arm/mach-shmobile/platsmp-apmu.c +++ b/arch/arm/mach-shmobile/platsmp-apmu.c @@ -24,6 +24,7 @@ #include #include "common.h" #include "platsmp-apmu.h" +#include "rcar-gen2.h" static struct { void __iomem *iomem; @@ -118,12 +119,68 @@ static void apmu_parse_cfg(void (*fn)(struct resource *res, int cpu, int bit), } } +static const struct of_device_id apmu_ids[] = { + { .compatible = "renesas,apmu" }, + { /*sentinel*/ } +}; + +static void apmu_parse_dt(void (*fn)(struct resource *res, int cpu, int bit)) +{ + struct device_node *np_apmu, *np_cpu; + struct resource res; + int bit, index; + u32 id; + + for_each_matching_node(np_apmu, apmu_ids) { + /* only enable the cluster that includes the boot CPU */ + bool is_allowed = false; + + for (bit = 0; bit < CONFIG_NR_CPUS; bit++) { + np_cpu = of_parse_phandle(np_apmu, "cpus", bit); + if (np_cpu) { + if (!of_property_read_u32(np_cpu, "reg", &id)) { + if (id == cpu_logical_map(0)) { + is_allowed = true; + of_node_put(np_cpu); + break; + } + + } + of_node_put(np_cpu); + } + } + if (!is_allowed) + continue; + + for (bit = 0; bit < CONFIG_NR_CPUS; bit++) { + np_cpu = of_parse_phandle(np_apmu, "cpus", bit); + if (np_cpu) { + if (!of_property_read_u32(np_cpu, "reg", &id)) { + index = get_logical_index(id); + if ((index >= 0) && + !of_address_to_resource(np_apmu, + 0, &res)) + fn(&res, index, bit); + } + of_node_put(np_cpu); + } + } + } +} + +static void __init shmobile_smp_apmu_setup_boot(void) +{ + /* install boot code shared by all CPUs */ + shmobile_boot_fn = virt_to_phys(shmobile_smp_boot); + shmobile_boot_arg = MPIDR_HWID_BITMASK; +} + void __init shmobile_smp_apmu_prepare_cpus(unsigned int max_cpus, struct rcar_apmu_config *apmu_config, int num) { /* install boot code shared by all CPUs */ - shmobile_boot_fn = virt_to_phys(shmobile_smp_boot); + shmobile_smp_apmu_setup_boot(); shmobile_boot_arg = MPIDR_HWID_BITMASK; /* perform per-cpu setup */ @@ -137,7 +194,38 @@ int shmobile_smp_apmu_boot_secondary(unsigned int cpu, struct task_struct *idle) return apmu_wrap(cpu, apmu_power_on); } + +static void __init shmobile_smp_apmu_prepare_cpus_dt(unsigned int max_cpus) +{ + shmobile_smp_apmu_setup_boot(); + apmu_parse_dt(apmu_init_cpu); + rcar_gen2_pm_init(); +} + +static int shmobile_smp_apmu_boot_secondary_md21(unsigned int cpu, + struct task_struct *idle) +{ + /* Error out when hardware debug mode is enabled */ + if (rcar_gen2_read_mode_pins() & BIT(21)) { + pr_warn("Unable to boot CPU%u when MD21 is set\n", cpu); + return -ENOTSUPP; + } + + return shmobile_smp_apmu_boot_secondary(cpu, idle); +} + +static struct smp_operations apmu_smp_ops __initdata = { + .smp_prepare_cpus = shmobile_smp_apmu_prepare_cpus_dt, + .smp_boot_secondary = shmobile_smp_apmu_boot_secondary_md21, +#ifdef CONFIG_HOTPLUG_CPU + .cpu_can_disable = shmobile_smp_cpu_can_disable, + .cpu_die = shmobile_smp_apmu_cpu_die, + .cpu_kill = shmobile_smp_apmu_cpu_kill, #endif +}; + +CPU_METHOD_OF_DECLARE(shmobile_smp_apmu, "renesas,apmu", &apmu_smp_ops); +#endif /* CONFIG_SMP */ #if defined(CONFIG_HOTPLUG_CPU) || defined(CONFIG_SUSPEND) /* nicked from arch/arm/mach-exynos/hotplug.c */ From 9dac851921181592f584dc863b1c3b10be91b025 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Wed, 31 Jan 2018 11:15:49 +0000 Subject: [PATCH 0187/1149] ARM: shmobile: apmu: Add debug resource reset for secondary CPU boot In debug mode (MD21=1), reset requests derived from power-shutoff to the AP-system CPU cores must be enabled before the AP-system CPU cores resume from power-shutoff for the first time. Else resume may fail, causing the system to hang during boot. As setting these bits is a no-op in normal mode, there's no need to check the actual state of MD21 first. Inspired by CPU-specific patches in the BSP by Hisashi Nakamura . Signed-off-by: Geert Uytterhoeven Tested-by: Hiep Cao Minh Signed-off-by: Simon Horman (cherry picked from commit 10f778a97845e8b10af8878af99c9cfe6c31baf9) Signed-off-by: Biju Das Reviewed-by: Chris Paterson Conflicts: arch/arm/mach-shmobile/platsmp-apmu.c Signed-off-by: Ben Hutchings --- arch/arm/mach-shmobile/platsmp-apmu.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/arch/arm/mach-shmobile/platsmp-apmu.c b/arch/arm/mach-shmobile/platsmp-apmu.c index 444765eec5ae..81a687f62850 100644 --- a/arch/arm/mach-shmobile/platsmp-apmu.c +++ b/arch/arm/mach-shmobile/platsmp-apmu.c @@ -35,6 +35,13 @@ static struct { #define PSTR_OFFS 0x40 #define CPUNCR_OFFS(n) (0x100 + (0x10 * (n))) +#define DBGRCR_OFFS 0x180 /* Debug Resource Reset Control Reg. */ + +/* Debug Resource Reset Control Register */ +#define DBGCPUREN BIT(24) /* CPU Other Reset Request Enable */ +#define DBGCPUNREN(n) BIT((n) + 20) /* CPUn Reset Request Enable */ +#define DBGCPUPREN BIT(19) /* CPU Peripheral Reset Req. Enable */ + static int __maybe_unused apmu_power_on(void __iomem *p, int bit) { /* request power on */ @@ -78,6 +85,8 @@ static int __maybe_unused apmu_wrap(int cpu, int (*fn)(void __iomem *p, int cpu) #ifdef CONFIG_SMP static void apmu_init_cpu(struct resource *res, int cpu, int bit) { + u32 x; + if ((cpu >= ARRAY_SIZE(apmu_cpus)) || apmu_cpus[cpu].iomem) return; @@ -85,6 +94,11 @@ static void apmu_init_cpu(struct resource *res, int cpu, int bit) apmu_cpus[cpu].bit = bit; pr_debug("apmu ioremap %d %d %pr\n", cpu, bit, res); + + /* Setup for debug mode */ + x = readl(apmu_cpus[cpu].iomem + DBGRCR_OFFS); + x |= DBGCPUREN | DBGCPUNREN(bit) | DBGCPUPREN; + writel(x, apmu_cpus[cpu].iomem + DBGRCR_OFFS); } static void apmu_parse_cfg(void (*fn)(struct resource *res, int cpu, int bit), From b6e7f4f69521841ba29ec79ac5c20743f935b08a Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Wed, 31 Jan 2018 11:15:50 +0000 Subject: [PATCH 0188/1149] ARM: shmobile: apmu: Allow booting secondary CPU cores in debug mode Now debug resource reset is handled properly, allow booting secondary CPU cores when hardware debug mode is enabled (MD21=1) on SoCs using the "renesas,apmu" enable method. Signed-off-by: Geert Uytterhoeven Tested-by: Hiep Cao Minh Signed-off-by: Simon Horman (cherry picked from commit d03c8f78d03af2a46127537dd1daa67164e53c09) Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- arch/arm/mach-shmobile/platsmp-apmu.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/arch/arm/mach-shmobile/platsmp-apmu.c b/arch/arm/mach-shmobile/platsmp-apmu.c index 81a687f62850..331409a5c721 100644 --- a/arch/arm/mach-shmobile/platsmp-apmu.c +++ b/arch/arm/mach-shmobile/platsmp-apmu.c @@ -216,21 +216,9 @@ static void __init shmobile_smp_apmu_prepare_cpus_dt(unsigned int max_cpus) rcar_gen2_pm_init(); } -static int shmobile_smp_apmu_boot_secondary_md21(unsigned int cpu, - struct task_struct *idle) -{ - /* Error out when hardware debug mode is enabled */ - if (rcar_gen2_read_mode_pins() & BIT(21)) { - pr_warn("Unable to boot CPU%u when MD21 is set\n", cpu); - return -ENOTSUPP; - } - - return shmobile_smp_apmu_boot_secondary(cpu, idle); -} - static struct smp_operations apmu_smp_ops __initdata = { .smp_prepare_cpus = shmobile_smp_apmu_prepare_cpus_dt, - .smp_boot_secondary = shmobile_smp_apmu_boot_secondary_md21, + .smp_boot_secondary = shmobile_smp_apmu_boot_secondary, #ifdef CONFIG_HOTPLUG_CPU .cpu_can_disable = shmobile_smp_cpu_can_disable, .cpu_die = shmobile_smp_apmu_cpu_die, From 3e3844ead92050c1af73a4af0889431a1f5ad00e Mon Sep 17 00:00:00 2001 From: Magnus Damm Date: Wed, 31 Jan 2018 11:15:51 +0000 Subject: [PATCH 0189/1149] devicetree: bindings: Renesas APMU and SMP Enable method Add DT binding documentation for the APMU hardware and add "renesas,apmu" to the list of enable methods for the ARM cpus. Signed-off-by: Magnus Damm Signed-off-by: Geert Uytterhoeven Acked-by: Rob Herring Cc: devicetree@vger.kernel.org Signed-off-by: Simon Horman (cherry picked from commit e454b359b7a0a6f59e3d83394e6d4e598554cb33) [removed r8a7792,r8a7793 and r8a7794 devices] Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- .../devicetree/bindings/arm/cpus.txt | 1 + .../bindings/power/renesas,apmu.txt | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 Documentation/devicetree/bindings/power/renesas,apmu.txt diff --git a/Documentation/devicetree/bindings/arm/cpus.txt b/Documentation/devicetree/bindings/arm/cpus.txt index 3a07a87fef20..9ef9a2089a5e 100644 --- a/Documentation/devicetree/bindings/arm/cpus.txt +++ b/Documentation/devicetree/bindings/arm/cpus.txt @@ -200,6 +200,7 @@ nodes to be present and contain the properties described below. "qcom,gcc-msm8660" "qcom,kpss-acc-v1" "qcom,kpss-acc-v2" + "renesas,apmu" "rockchip,rk3066-smp" "ste,dbx500-smp" diff --git a/Documentation/devicetree/bindings/power/renesas,apmu.txt b/Documentation/devicetree/bindings/power/renesas,apmu.txt new file mode 100644 index 000000000000..bc8de21f2663 --- /dev/null +++ b/Documentation/devicetree/bindings/power/renesas,apmu.txt @@ -0,0 +1,28 @@ +DT bindings for the Renesas Advanced Power Management Unit + +Renesas R-Car line of SoCs utilize one or more APMU hardware units +for CPU core power domain control including SMP boot and CPU Hotplug. + +Required properties: + +- compatible: Should be "renesas,-apmu", "renesas,apmu" as fallback. + Examples with soctypes are: + - "renesas,r8a7790-apmu" (R-Car H2) + - "renesas,r8a7791-apmu" (R-Car M2-W) + +- reg: Base address and length of the I/O registers used by the APMU. + +- cpus: This node contains a list of CPU cores, which should match the order + of CPU cores used by the WUPCR and PSTR registers in the Advanced Power + Management Unit section of the device's datasheet. + + +Example: + +This shows the r8a7791 APMU that can control CPU0 and CPU1. + + apmu@e6152000 { + compatible = "renesas,r8a7791-apmu", "renesas,apmu"; + reg = <0 0xe6152000 0 0x188>; + cpus = <&cpu0 &cpu1>; + }; From 4ab1083233d9f987104f430ec339ecc2074cbe18 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 31 Jan 2018 11:15:52 +0000 Subject: [PATCH 0190/1149] dt-bindings: apmu: Document r8a7743 support Document APMU and SMP enable method for RZ/G1M (also known as r8a7743) SoC. Signed-off-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 304ce59242e11e715bfdc86577771502df99f7cd) Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/power/renesas,apmu.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/power/renesas,apmu.txt b/Documentation/devicetree/bindings/power/renesas,apmu.txt index bc8de21f2663..e3a0e55fdd85 100644 --- a/Documentation/devicetree/bindings/power/renesas,apmu.txt +++ b/Documentation/devicetree/bindings/power/renesas,apmu.txt @@ -1,12 +1,13 @@ DT bindings for the Renesas Advanced Power Management Unit -Renesas R-Car line of SoCs utilize one or more APMU hardware units +Renesas R-Car and RZ/G1 SoCs utilize one or more APMU hardware units for CPU core power domain control including SMP boot and CPU Hotplug. Required properties: - compatible: Should be "renesas,-apmu", "renesas,apmu" as fallback. Examples with soctypes are: + - "renesas,r8a7743-apmu" (RZ/G1M) - "renesas,r8a7790-apmu" (R-Car H2) - "renesas,r8a7791-apmu" (R-Car M2-W) From ad4269dc09ab7b2262a1f150df0fd82632415b02 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 31 Jan 2018 11:15:53 +0000 Subject: [PATCH 0191/1149] ARM: dts: r8a7743: Add APMU node and second CPU core Add DT nodes for the Advanced Power Management Unit (APMU) and the second CPU core. Use the enable-method to point out that the APMU should be used for SMP support. Signed-off-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 60dce695b097a52e6ea5874aa80301f2e4ac627a) (removed power domain property, since we don't have sysc driver in 4.4 kernel to support CA15-CPU1 and CA15-SCU power domains). Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index a9dda2842b95..bd1121a59bcf 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -21,6 +21,7 @@ cpus { #address-cells = <1>; #size-cells = <0>; + enable-method = "renesas,apmu"; cpu0: cpu@0 { device_type = "cpu"; @@ -31,6 +32,14 @@ next-level-cache = <&L2_CA15>; }; + cpu1: cpu@1 { + device_type = "cpu"; + compatible = "arm,cortex-a15"; + reg = <1>; + clock-frequency = <1500000000>; + next-level-cache = <&L2_CA15>; + }; + L2_CA15: cache-controller-0 { compatible = "cache"; cache-unified; @@ -46,6 +55,12 @@ #size-cells = <2>; ranges; + apmu@e6152000 { + compatible = "renesas,r8a7743-apmu", "renesas,apmu"; + reg = <0 0xe6152000 0 0x188>; + cpus = <&cpu0 &cpu1>; + }; + gic: interrupt-controller@f1001000 { compatible = "arm,gic-400"; #interrupt-cells = <3>; From 1c671719f1a4774738761adfc2ef863276f7534f Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 31 Jan 2018 11:15:54 +0000 Subject: [PATCH 0192/1149] ARM: dts: r8a7743: Add OPP table for frequency scaling Add needed information inside CPU0 for the generic cpufreq-cpu0 driver. - clock-latency = 300 us Approximate worst-case latency to do clock transition for every OPPs. Using an arbitrary safe value similar to r8a7791(R-Car M2) Soc. - operating-points = < kHz - uV > List of 6 operating points. All of them are using the same voltage since DVS is not supported in RZ/G1 Soc. Note:This also fixes the below errors seen on kernel logs [ 0.876877] cpu cpu0: dev_pm_opp_get_opp_count: OPP table not found (-19) [ 0.883727] cpu cpu1: cpufreq_init: failed to get clk: -2 Signed-off-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 0417814ea140d1bc7e8a5d54e95e17a234b34e49) Signed-off-by: Biju Das Reviewed-by: Chris Paterson Conflicts: arch/arm/boot/dts/r8a7743.dtsi Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index bd1121a59bcf..e4e0dc381ab4 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -29,7 +29,16 @@ reg = <0>; clock-frequency = <1500000000>; clocks = <&cpg_clocks R8A7743_CLK_Z>; + clock-latency = <300000>; /* 300 us */ next-level-cache = <&L2_CA15>; + + /* kHz - uV - OPPs unknown yet */ + operating-points = <1500000 1000000>, + <1312500 1000000>, + <1125000 1000000>, + < 937500 1000000>, + < 750000 1000000>, + < 375000 1000000>; }; cpu1: cpu@1 { From b0209561a46c92cc03e8962b0afbecaf1eede451 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Wed, 31 Jan 2018 11:15:55 +0000 Subject: [PATCH 0193/1149] ARM: dts: r8a7743: Add missing clock for secondary CA15 CPU core Currently only the primary CPU in the CA15 cluster has a clocks property, while the secondary CPU core is driven by the same clock. Add the missing clocks property to fix this. Signed-off-by: Geert Uytterhoeven Reviewed-by: Chris Paterson Signed-off-by: Simon Horman (cherry picked from commit a60ddf507dda0ede43b72d348283d8725a5a83c7) Signed-off-by: Biju Das Reviewed-by: Chris Paterson Conflicts: arch/arm/boot/dts/r8a7743.dtsi Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index e4e0dc381ab4..e755cb91bb24 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -46,6 +46,7 @@ compatible = "arm,cortex-a15"; reg = <1>; clock-frequency = <1500000000>; + clocks = <&cpg_clocks R8A7743_CLK_Z>; next-level-cache = <&L2_CA15>; }; From b94f79194e383c2abf2f713e0ef7013a497c3d4a Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 1 Feb 2018 13:46:23 +0000 Subject: [PATCH 0194/1149] dt-bindings: i2c: Spelling s/propoerty/property/ Signed-off-by: Geert Uytterhoeven Signed-off-by: Wolfram Sang (cherry picked from commit ddf3dc82f10e15469b3967ae777d39745d3aab16) Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/i2c/i2c-imx.txt | 2 +- Documentation/devicetree/bindings/i2c/i2c-rcar.txt | 2 +- Documentation/devicetree/bindings/i2c/i2c-sirf.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/i2c/i2c-imx.txt b/Documentation/devicetree/bindings/i2c/i2c-imx.txt index eab5836ba7f9..b967544590e8 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-imx.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-imx.txt @@ -11,7 +11,7 @@ Required properties: Optional properties: - clock-frequency : Constains desired I2C/HS-I2C bus clock frequency in Hz. - The absence of the propoerty indicates the default frequency 100 kHz. + The absence of the property indicates the default frequency 100 kHz. - dmas: A list of two dma specifiers, one for each entry in dma-names. - dma-names: should contain "tx" and "rx". - scl-gpios: specify the gpio related to SCL pin diff --git a/Documentation/devicetree/bindings/i2c/i2c-rcar.txt b/Documentation/devicetree/bindings/i2c/i2c-rcar.txt index ea406eb20fa5..dea14f7afbdf 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-rcar.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-rcar.txt @@ -17,7 +17,7 @@ Required properties: Optional properties: - clock-frequency: desired I2C bus clock frequency in Hz. The absence of this - propoerty indicates the default frequency 100 kHz. + property indicates the default frequency 100 kHz. - clocks: clock specifier. Examples : diff --git a/Documentation/devicetree/bindings/i2c/i2c-sirf.txt b/Documentation/devicetree/bindings/i2c/i2c-sirf.txt index 7baf9e133fa8..2701eefb00f7 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-sirf.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-sirf.txt @@ -8,7 +8,7 @@ Required properties : Optional properties: - clock-frequency : Constains desired I2C/HS-I2C bus clock frequency in Hz. - The absence of the propoerty indicates the default frequency 100 kHz. + The absence of the property indicates the default frequency 100 kHz. Examples : From b173fb8caca88a71dd927cda2aa16428ec847e8d Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Thu, 1 Feb 2018 13:46:24 +0000 Subject: [PATCH 0195/1149] i2c: rcar: Add per-Generation fallback bindings In the case of Renesas R-Car hardware we know that there are generations of SoCs, e.g. Gen 2 and Gen 3. But beyond that it's not clear what the relationship between IP blocks might be. For example, I believe that r8a7790 is older than r8a7791 but that doesn't imply that the latter is a descendant of the former or vice versa. We can, however, by examining the documentation and behaviour of the hardware at run-time observe that the current driver implementation appears to be compatible with the IP blocks on SoCs within a given generation. For the above reasons and convenience when enabling new SoCs a per-generation fallback compatibility string scheme is being adopted for drivers for Renesas SoCs. Also: * Deprecate renesas,i2c-rcar. It seems poorly named as it is only compatible with R-Car Gen 1. It also appears unused in mainline. * Add some text to describe per-SoC bindings Signed-off-by: Simon Horman Reviewed-by: Geert Uytterhoeven Signed-off-by: Wolfram Sang (cherry picked from commit ad4a8dc3fec6485b18654d1090ef8012fcfc37b8) Signed-off-by: Biju Das Reviewed-by: Chris Paterson Conflicts: Documentation/devicetree/bindings/i2c/i2c-rcar.txt drivers/i2c/busses/i2c-rcar.c Signed-off-by: Ben Hutchings --- .../devicetree/bindings/i2c/i2c-rcar.txt | 30 ++++++++++++------- drivers/i2c/busses/i2c-rcar.c | 5 +++- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/Documentation/devicetree/bindings/i2c/i2c-rcar.txt b/Documentation/devicetree/bindings/i2c/i2c-rcar.txt index dea14f7afbdf..e26f2240f025 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-rcar.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-rcar.txt @@ -1,16 +1,24 @@ I2C for R-Car platforms Required properties: -- compatible: Must be one of - "renesas,i2c-rcar" - "renesas,i2c-r8a7778" - "renesas,i2c-r8a7779" - "renesas,i2c-r8a7790" - "renesas,i2c-r8a7791" - "renesas,i2c-r8a7792" - "renesas,i2c-r8a7793" - "renesas,i2c-r8a7794" - "renesas,i2c-r8a7795" +- compatible: + "renesas,i2c-r8a7778" if the device is a part of a R8A7778 SoC. + "renesas,i2c-r8a7779" if the device is a part of a R8A7779 SoC. + "renesas,i2c-r8a7790" if the device is a part of a R8A7790 SoC. + "renesas,i2c-r8a7791" if the device is a part of a R8A7791 SoC. + "renesas,i2c-r8a7792" if the device is a part of a R8A7792 SoC. + "renesas,i2c-r8a7793" if the device is a part of a R8A7793 SoC. + "renesas,i2c-r8a7794" if the device is a part of a R8A7794 SoC. + "renesas,i2c-r8a7795" if the device is a part of a R8A7795 SoC. + "renesas,rcar-gen1-i2c" for a generic R-Car Gen1 compatible device. + "renesas,rcar-gen2-i2c" for a generic R-Car Gen2 compatible device. + "renesas,rcar-gen3-i2c" for a generic R-Car Gen3 compatible device. + "renesas,i2c-rcar" (deprecated) + + When compatible with the generic version, nodes must list the + SoC-specific version corresponding to the platform first followed + by the generic version. + - reg: physical base address of the controller and length of memory mapped region. - interrupts: interrupt specifier. @@ -25,7 +33,7 @@ Examples : i2c0: i2c@e6508000 { #address-cells = <1>; #size-cells = <0>; - compatible = "renesas,i2c-r8a7791"; + compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c"; reg = <0 0xe6508000 0 0x40>; interrupts = <0 287 IRQ_TYPE_LEVEL_HIGH>; clocks = <&mstp9_clks R8A7791_CLK_I2C0>; diff --git a/drivers/i2c/busses/i2c-rcar.c b/drivers/i2c/busses/i2c-rcar.c index 599c0d7bd906..aa3730dd0338 100644 --- a/drivers/i2c/busses/i2c-rcar.c +++ b/drivers/i2c/busses/i2c-rcar.c @@ -618,7 +618,6 @@ static const struct i2c_algorithm rcar_i2c_algo = { }; static const struct of_device_id rcar_i2c_dt_ids[] = { - { .compatible = "renesas,i2c-rcar", .data = (void *)I2C_RCAR_GEN1 }, { .compatible = "renesas,i2c-r8a7778", .data = (void *)I2C_RCAR_GEN1 }, { .compatible = "renesas,i2c-r8a7779", .data = (void *)I2C_RCAR_GEN1 }, { .compatible = "renesas,i2c-r8a7790", .data = (void *)I2C_RCAR_GEN2 }, @@ -627,6 +626,10 @@ static const struct of_device_id rcar_i2c_dt_ids[] = { { .compatible = "renesas,i2c-r8a7793", .data = (void *)I2C_RCAR_GEN2 }, { .compatible = "renesas,i2c-r8a7794", .data = (void *)I2C_RCAR_GEN2 }, { .compatible = "renesas,i2c-r8a7795", .data = (void *)I2C_RCAR_GEN3 }, + { .compatible = "renesas,i2c-rcar", .data = (void *)I2C_RCAR_GEN1 }, /* Deprecated */ + { .compatible = "renesas,rcar-gen1-i2c", .data = (void *)I2C_RCAR_GEN1 }, + { .compatible = "renesas,rcar-gen2-i2c", .data = (void *)I2C_RCAR_GEN2 }, + { .compatible = "renesas,rcar-gen3-i2c", .data = (void *)I2C_RCAR_GEN3 }, {}, }; MODULE_DEVICE_TABLE(of, rcar_i2c_dt_ids); From b353b26212fe2910b092fd9c3d94e8861a80e739 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 1 Feb 2018 13:46:25 +0000 Subject: [PATCH 0196/1149] dt-bindings: i2c: Document r8a7743/5 support Document i2c Device Tree support for RZ/G1[ME] (also known as r8aA774[35]) SoCs. They are compatible with R-Car Gen2 SoC family. Signed-off-by: Biju Das Acked-by: Simon Horman Signed-off-by: Wolfram Sang (cherry picked from commit 4523656ff6cba7a217d44e5e8f726ccca2736473) Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/i2c/i2c-rcar.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/i2c/i2c-rcar.txt b/Documentation/devicetree/bindings/i2c/i2c-rcar.txt index e26f2240f025..f6cb9e51ae2f 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-rcar.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-rcar.txt @@ -2,6 +2,8 @@ I2C for R-Car platforms Required properties: - compatible: + "renesas,i2c-r8a7743" if the device is a part of a R8A7743 SoC. + "renesas,i2c-r8a7745" if the device is a part of a R8A7745 SoC. "renesas,i2c-r8a7778" if the device is a part of a R8A7778 SoC. "renesas,i2c-r8a7779" if the device is a part of a R8A7779 SoC. "renesas,i2c-r8a7790" if the device is a part of a R8A7790 SoC. @@ -11,7 +13,8 @@ Required properties: "renesas,i2c-r8a7794" if the device is a part of a R8A7794 SoC. "renesas,i2c-r8a7795" if the device is a part of a R8A7795 SoC. "renesas,rcar-gen1-i2c" for a generic R-Car Gen1 compatible device. - "renesas,rcar-gen2-i2c" for a generic R-Car Gen2 compatible device. + "renesas,rcar-gen2-i2c" for a generic R-Car Gen2 or RZ/G1 compatible + device. "renesas,rcar-gen3-i2c" for a generic R-Car Gen3 compatible device. "renesas,i2c-rcar" (deprecated) From 2358c8d2a847bc335fc1a60f0423cc625bf1f32b Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 1 Feb 2018 13:46:26 +0000 Subject: [PATCH 0197/1149] ARM: dts: r8a7743: Add I2C DT support Add the I2C[0-5] devices to the r8a7743 device tree. Signed-off-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 2d33ced5500320f55fd2f63364f1212ba19453e8) (modified clk property,removed reset property) Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 85 ++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index e755cb91bb24..b7be573ffbd7 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -18,6 +18,15 @@ #address-cells = <2>; #size-cells = <2>; + aliases { + i2c0 = &i2c0; + i2c1 = &i2c1; + i2c2 = &i2c2; + i2c3 = &i2c3; + i2c4 = &i2c4; + i2c5 = &i2c5; + }; + cpus { #address-cells = <1>; #size-cells = <0>; @@ -297,6 +306,82 @@ dma-channels = <15>; }; + /* The memory map in the User's Manual maps the cores to bus + * numbers + */ + i2c0: i2c@e6508000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a7743", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6508000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A7743_CLK_I2C0>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + i2c1: i2c@e6518000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a7743", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6518000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A7743_CLK_I2C1>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + i2c2: i2c@e6530000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a7743", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6530000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A7743_CLK_I2C2>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + i2c3: i2c@e6540000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a7743", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6540000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A7743_CLK_I2C3>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + i2c4: i2c@e6520000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a7743", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6520000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A7743_CLK_I2C4>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + i2c5: i2c@e6528000 { + /* doesn't need pinmux */ + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a7743", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6528000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A7743_CLK_I2C5>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + scifa0: serial@e6c40000 { compatible = "renesas,scifa-r8a7743", "renesas,scifa"; reg = <0 0xe6c40000 0 0x40>; From a584d2f67026b0d51fdd36192f2b6f8df24f5a76 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Thu, 1 Feb 2018 13:46:27 +0000 Subject: [PATCH 0198/1149] i2c: sh_mobile: Add per-Generation fallback bindings Add per-Generation fallback bindings for R-Car SoCs. This is in keeping with the compatibility string scheme is being adopted for drivers for Renesas SoCs. Also, improve readability by listing the rmobile fallback compatibility string after the more-specific compatibility strings they provide a fallback for. Signed-off-by: Simon Horman Acked-by: Geert Uytterhoeven Signed-off-by: Wolfram Sang (cherry picked from commit b880ccaf1742c28e91534ad7820c4405c04dabf9) Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- .../devicetree/bindings/i2c/i2c-sh_mobile.txt | 17 ++++++++++++++--- drivers/i2c/busses/i2c-sh_mobile.c | 4 +++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt b/Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt index 214f94c25d37..7716acc55dec 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt @@ -1,8 +1,7 @@ Device tree configuration for Renesas IIC (sh_mobile) driver Required properties: -- compatible : "renesas,iic-". "renesas,rmobile-iic" as fallback - Examples with soctypes are: +- compatible : - "renesas,iic-r8a73a4" (R-Mobile APE6) - "renesas,iic-r8a7740" (R-Mobile A1) - "renesas,iic-r8a7790" (R-Car H2) @@ -12,6 +11,17 @@ Required properties: - "renesas,iic-r8a7794" (R-Car E2) - "renesas,iic-r8a7795" (R-Car H3) - "renesas,iic-sh73a0" (SH-Mobile AG5) + - "renesas,rcar-gen2-iic" (generic R-Car Gen2 compatible device) + - "renesas,rcar-gen3-iic" (generic R-Car Gen3 compatible device) + - "renesas,rmobile-iic" (generic device) + + When compatible with a generic R-Car version, nodes + must list the SoC-specific version corresponding to + the platform first followed by the generic R-Car + version. + + renesas,rmobile-iic must always follow. + - reg : address start and address range size of device - interrupts : interrupt of device - clocks : clock for device @@ -31,7 +41,8 @@ Pinctrl properties might be needed, too. See there. Example: iic0: i2c@e6500000 { - compatible = "renesas,iic-r8a7790", "renesas,rmobile-iic"; + compatible = "renesas,iic-r8a7790", "renesas,rcar-gen2-iic", + "renesas,rmobile-iic"; reg = <0 0xe6500000 0 0x425>; interrupts = <0 174 IRQ_TYPE_LEVEL_HIGH>; clocks = <&mstp3_clks R8A7790_CLK_IIC0>; diff --git a/drivers/i2c/busses/i2c-sh_mobile.c b/drivers/i2c/busses/i2c-sh_mobile.c index 7d2bd3ec2d2d..3eb5167c3b5e 100644 --- a/drivers/i2c/busses/i2c-sh_mobile.c +++ b/drivers/i2c/busses/i2c-sh_mobile.c @@ -828,7 +828,6 @@ static const struct sh_mobile_dt_config r8a7740_dt_config = { }; static const struct of_device_id sh_mobile_i2c_dt_ids[] = { - { .compatible = "renesas,rmobile-iic", .data = &default_dt_config }, { .compatible = "renesas,iic-r8a73a4", .data = &fast_clock_dt_config }, { .compatible = "renesas,iic-r8a7740", .data = &r8a7740_dt_config }, { .compatible = "renesas,iic-r8a7790", .data = &fast_clock_dt_config }, @@ -836,8 +835,11 @@ static const struct of_device_id sh_mobile_i2c_dt_ids[] = { { .compatible = "renesas,iic-r8a7792", .data = &fast_clock_dt_config }, { .compatible = "renesas,iic-r8a7793", .data = &fast_clock_dt_config }, { .compatible = "renesas,iic-r8a7794", .data = &fast_clock_dt_config }, + { .compatible = "renesas,rcar-gen2-iic", .data = &fast_clock_dt_config }, { .compatible = "renesas,iic-r8a7795", .data = &fast_clock_dt_config }, + { .compatible = "renesas,rcar-gen3-iic", .data = &fast_clock_dt_config }, { .compatible = "renesas,iic-sh73a0", .data = &fast_clock_dt_config }, + { .compatible = "renesas,rmobile-iic", .data = &default_dt_config }, {}, }; MODULE_DEVICE_TABLE(of, sh_mobile_i2c_dt_ids); From 8e6da92124114c1fca25d88c8a49f1101453932e Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 1 Feb 2018 13:46:28 +0000 Subject: [PATCH 0199/1149] dt-bindings: i2c: sh_mobile: Document r8a7743/5 support Document i2c Device Tree support for RZ/G1[ME] (also known as r8a774[35]) SoCs. They are compatible with R-Car Gen2 SoC family. No driver change is required as the initialisation sequence is currently the same as for the R-Car Gen2 fallback binding. Signed-off-by: Biju Das Acked-by: Simon Horman Signed-off-by: Wolfram Sang (cherry picked from commit 6c448f04c83713c49be7baf341ed6a04d7493a15) Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt b/Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt index 7716acc55dec..4bfb89ea11c2 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt @@ -4,6 +4,8 @@ Required properties: - compatible : - "renesas,iic-r8a73a4" (R-Mobile APE6) - "renesas,iic-r8a7740" (R-Mobile A1) + - "renesas,iic-r8a7743" (RZ/G1M) + - "renesas,iic-r8a7745" (RZ/G1E) - "renesas,iic-r8a7790" (R-Car H2) - "renesas,iic-r8a7791" (R-Car M2-W) - "renesas,iic-r8a7792" (R-Car V2H) @@ -11,7 +13,8 @@ Required properties: - "renesas,iic-r8a7794" (R-Car E2) - "renesas,iic-r8a7795" (R-Car H3) - "renesas,iic-sh73a0" (SH-Mobile AG5) - - "renesas,rcar-gen2-iic" (generic R-Car Gen2 compatible device) + - "renesas,rcar-gen2-iic" (generic R-Car Gen2 or RZ/G1 + compatible device) - "renesas,rcar-gen3-iic" (generic R-Car Gen3 compatible device) - "renesas,rmobile-iic" (generic device) From d51ae2ddfcc6e2760223b7e7621dacb264add769 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 1 Feb 2018 13:46:29 +0000 Subject: [PATCH 0200/1149] ARM: dts: r8a7743: Add IIC cores to dtsi Signed-off-by: Biju Das Signed-off-by: Chris Paterson Signed-off-by: Simon Horman (cherry picked from commit f523405f2a22cc0c30701ea0cb3671dc0abbcda1) (Modified clocks,power domain property and removed resets property) Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 52 ++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index b7be573ffbd7..9255582680f1 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -25,6 +25,9 @@ i2c3 = &i2c3; i2c4 = &i2c4; i2c5 = &i2c5; + i2c6 = &iic0; + i2c7 = &iic1; + i2c8 = &iic3; }; cpus { @@ -382,6 +385,55 @@ status = "disabled"; }; + iic0: i2c@e6500000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,iic-r8a7743", + "renesas,rcar-gen2-iic", + "renesas,rmobile-iic"; + reg = <0 0xe6500000 0 0x425>; + interrupts = ; + clocks = <&mstp3_clks R8A7743_CLK_IIC0>; + dmas = <&dmac0 0x61>, <&dmac0 0x62>, + <&dmac1 0x61>, <&dmac1 0x62>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + iic1: i2c@e6510000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,iic-r8a7743", + "renesas,rcar-gen2-iic", + "renesas,rmobile-iic"; + reg = <0 0xe6510000 0 0x425>; + interrupts = ; + clocks = <&mstp3_clks R8A7743_CLK_IIC1>; + dmas = <&dmac0 0x65>, <&dmac0 0x66>, + <&dmac1 0x65>, <&dmac1 0x66>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + iic3: i2c@e60b0000 { + /* doesn't need pinmux */ + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,iic-r8a7743", + "renesas,rcar-gen2-iic", + "renesas,rmobile-iic"; + reg = <0 0xe60b0000 0 0x425>; + interrupts = ; + clocks = <&mstp9_clks R8A7743_CLK_IICDVFS>; + dmas = <&dmac0 0x77>, <&dmac0 0x78>, + <&dmac1 0x77>, <&dmac1 0x78>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + scifa0: serial@e6c40000 { compatible = "renesas,scifa-r8a7743", "renesas,scifa"; reg = <0 0xe6c40000 0 0x40>; From b9c1d2d486bdd0885fddb752dc57d529582b909b Mon Sep 17 00:00:00 2001 From: Biju Das Date: Mon, 19 Feb 2018 18:45:49 +0000 Subject: [PATCH 0201/1149] ARM: dts: iwg20d-q7: Add RTC support Define the iWave RainboW-G20D-Qseven board dependent part of the RTC device node. Signed-off-by: Biju Das Signed-off-by: Chris Paterson Signed-off-by: Simon Horman (cherry picked from commit e0e63658c2f291e0672fdf96df1f9f2963a6a9f6) Signed-off-by: Fabrizio Castro Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743-iwg20d-q7.dts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts b/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts index 081af0192851..f3b489092e20 100644 --- a/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts +++ b/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts @@ -22,6 +22,11 @@ }; &pfc { + i2c2_pins: i2c2 { + groups = "i2c2"; + function = "i2c2"; + }; + scif0_pins: scif0 { groups = "scif0_data_d"; function = "scif0"; @@ -54,3 +59,16 @@ micrel,led-mode = <1>; }; }; + +&i2c2 { + pinctrl-0 = <&i2c2_pins>; + pinctrl-names = "default"; + + status = "okay"; + clock-frequency = <400000>; + + rtc@68 { + compatible = "bq32000"; + reg = <0x68>; + }; +}; From 1766bc05f6ab25a4c9d2dd874e0d03ef04ac75f2 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Mon, 19 Feb 2018 18:45:50 +0000 Subject: [PATCH 0202/1149] ARM: shmobile: Enable BQ32000 rtc in shmobile_defconfig The iWave RZ/G1M Q7 SOM supports RTC (TI BQ32000). To increase hardware support enable the driver in the shmobile_defconfig multiplatform configuration. Signed-off-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 0736aad1290d61bc3668f20253e1e1997ad8b3c1) Signed-off-by: Fabrizio Castro Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- arch/arm/configs/shmobile_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/shmobile_defconfig b/arch/arm/configs/shmobile_defconfig index e8a2d0b3c617..2e793324fec8 100644 --- a/arch/arm/configs/shmobile_defconfig +++ b/arch/arm/configs/shmobile_defconfig @@ -178,6 +178,7 @@ CONFIG_LEDS_CLASS=y CONFIG_LEDS_GPIO=y CONFIG_RTC_CLASS=y CONFIG_RTC_DRV_RS5C372=y +CONFIG_RTC_DRV_BQ32K=y CONFIG_RTC_DRV_S35390A=y CONFIG_RTC_DRV_RX8581=y CONFIG_DMADEVICES=y From 46e105f2719376118961cdf5700a5c357779d8dd Mon Sep 17 00:00:00 2001 From: Biju Das Date: Mon, 19 Feb 2018 18:45:51 +0000 Subject: [PATCH 0203/1149] ARM: multi_v7_defconfig: Enable BQ32000 RTC driver The iWave RZ/G1M Q7 SOM supports RTC (TI BQ32000). To increase hardware support enable the driver in the multi_v7_defconfig multiplatform configuration. Signed-off-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 545dc83ed09b5c04f663b766a92cbc8bb02c5f15) Signed-off-by: Fabrizio Castro Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig index f1ba3fbec768..ba520f6cf6e2 100644 --- a/arch/arm/configs/multi_v7_defconfig +++ b/arch/arm/configs/multi_v7_defconfig @@ -607,6 +607,7 @@ CONFIG_RTC_DRV_MAX77686=y CONFIG_RTC_DRV_RK808=m CONFIG_RTC_DRV_MAX77802=m CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_BQ32K=m CONFIG_RTC_DRV_PALMAS=y CONFIG_RTC_DRV_ST_LPC=y CONFIG_RTC_DRV_TWL4030=y From a84b052e1e311debb4ca66982c4b1972478dd696 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 2 Mar 2018 11:44:47 +0000 Subject: [PATCH 0204/1149] ARM: shmobile: r8a7743: Rename SDHI clocks This commit renames R8A7743_CLK_SDHI2 to R8A7743_CLK_SDHI1 and R8A7743_CLK_SDHI3 to R8A7743_CLK_SDHI2. This is to make the SDHI clock names of the r8a7743 more similar to upstream definitions. Signed-off-by: Fabrizio Castro Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 4 ++-- include/dt-bindings/clock/r8a7743-clock.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 9255582680f1..b1534a081ed1 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -958,8 +958,8 @@ <&hp_clk>, <&hp_clk>; #clock-cells = <1>; clock-indices = < - R8A7743_CLK_TPU0 R8A7743_CLK_SDHI3 - R8A7743_CLK_SDHI2 R8A7743_CLK_SDHI0 + R8A7743_CLK_TPU0 R8A7743_CLK_SDHI2 + R8A7743_CLK_SDHI1 R8A7743_CLK_SDHI0 R8A7743_CLK_MMCIF0 R8A7743_CLK_IIC0 R8A7743_CLK_PCIEC R8A7743_CLK_IIC1 R8A7743_CLK_SSUSB R8A7743_CLK_CMT1 diff --git a/include/dt-bindings/clock/r8a7743-clock.h b/include/dt-bindings/clock/r8a7743-clock.h index 53f54dfce592..8e4b843aa414 100644 --- a/include/dt-bindings/clock/r8a7743-clock.h +++ b/include/dt-bindings/clock/r8a7743-clock.h @@ -58,8 +58,8 @@ /* MSTP3 */ #define R8A7743_CLK_TPU0 4 -#define R8A7743_CLK_SDHI3 11 -#define R8A7743_CLK_SDHI2 12 +#define R8A7743_CLK_SDHI2 11 +#define R8A7743_CLK_SDHI1 12 #define R8A7743_CLK_SDHI0 14 #define R8A7743_CLK_MMCIF0 15 #define R8A7743_CLK_IIC0 18 From c602618a4f9155b5543b325ba382875a86e2b79a Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 2 Mar 2018 11:44:48 +0000 Subject: [PATCH 0205/1149] mmc: renesas_sdhi: Add r8a7743/5 support Add support for r8a7743/5 SoC.Renesas RZ/G1[ME] (R8A7743/5) SDHI is identical to the R-Car Gen2 family. Signed-off-by: Biju Das Acked-by: Simon Horman Signed-off-by: Ulf Hansson (cherry picked from commit c16a854e4463078aedad601fac76341760a66dd1) Signed-off-by: Fabrizio Castro Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- drivers/mmc/host/sh_mobile_sdhi.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index 354f4f335ed5..e43aff4a4bd6 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -73,6 +73,8 @@ static const struct of_device_id sh_mobile_sdhi_of_match[] = { { .compatible = "renesas,sdhi-r8a7740", .data = &sh_mobile_sdhi_of_cfg[0], }, { .compatible = "renesas,sdhi-r8a7778", .data = &of_rcar_gen1_compatible, }, { .compatible = "renesas,sdhi-r8a7779", .data = &of_rcar_gen1_compatible, }, + { .compatible = "renesas,sdhi-r8a7743", .data = &of_rcar_gen2_compatible, }, + { .compatible = "renesas,sdhi-r8a7745", .data = &of_rcar_gen2_compatible, }, { .compatible = "renesas,sdhi-r8a7790", .data = &of_rcar_gen2_compatible, }, { .compatible = "renesas,sdhi-r8a7791", .data = &of_rcar_gen2_compatible, }, { .compatible = "renesas,sdhi-r8a7792", .data = &of_rcar_gen2_compatible, }, From 70195defaaecbc184a938d941db409251b3d0f3f Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 2 Mar 2018 11:44:49 +0000 Subject: [PATCH 0206/1149] mmc: renesas_sdhi: Add r8a7743/5 support Add support for r8a7743/5 SoC. Renesas RZ/G1[ME] (R8A7743/5) SDHI is identical to the R-Car Gen2 family. Signed-off-by: Biju Das Reviewed-by: Wolfram Sang Acked-by: Simon Horman Signed-off-by: Ulf Hansson (cherry picked from commit 34292311f0195b2113a5f30e5bea33e4c2668315) Signed-off-by: Fabrizio Castro Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/mmc/tmio_mmc.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/mmc/tmio_mmc.txt b/Documentation/devicetree/bindings/mmc/tmio_mmc.txt index 400b640fabc7..cbf91352b5b0 100644 --- a/Documentation/devicetree/bindings/mmc/tmio_mmc.txt +++ b/Documentation/devicetree/bindings/mmc/tmio_mmc.txt @@ -15,6 +15,8 @@ Required properties: "renesas,sdhi-sh73a0" - SDHI IP on SH73A0 SoC "renesas,sdhi-r8a73a4" - SDHI IP on R8A73A4 SoC "renesas,sdhi-r8a7740" - SDHI IP on R8A7740 SoC + "renesas,sdhi-r8a7743" - SDHI IP on R8A7743 SoC + "renesas,sdhi-r8a7745" - SDHI IP on R8A7745 SoC "renesas,sdhi-r8a7778" - SDHI IP on R8A7778 SoC "renesas,sdhi-r8a7779" - SDHI IP on R8A7779 SoC "renesas,sdhi-r8a7790" - SDHI IP on R8A7790 SoC From 538152eae3a706efe75f47e04ce0e9cc8df96ea8 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 2 Mar 2018 11:44:50 +0000 Subject: [PATCH 0207/1149] ARM: dts: r8a7743: Add SDHI controllers Add the SDHI controllers to the r8a7743 device tree. Signed-off-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 63ce8a617b5129f7cb20ed0d6d822a31ecca4696) Signed-off-by: Fabrizio Castro Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 39 ++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index b1534a081ed1..8515abf1f5b3 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -716,6 +716,45 @@ status = "disabled"; }; + sdhi0: sd@ee100000 { + compatible = "renesas,sdhi-r8a7743"; + reg = <0 0xee100000 0 0x328>; + interrupts = ; + clocks = <&mstp3_clks R8A7743_CLK_SDHI0>; + dmas = <&dmac0 0xcd>, <&dmac0 0xce>, + <&dmac1 0xcd>, <&dmac1 0xce>; + dma-names = "tx", "rx", "tx", "rx"; + max-frequency = <195000000>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + sdhi1: sd@ee140000 { + compatible = "renesas,sdhi-r8a7743"; + reg = <0 0xee140000 0 0x100>; + interrupts = ; + clocks = <&mstp3_clks R8A7743_CLK_SDHI1>; + dmas = <&dmac0 0xc1>, <&dmac0 0xc2>, + <&dmac1 0xc1>, <&dmac1 0xc2>; + dma-names = "tx", "rx", "tx", "rx"; + max-frequency = <97500000>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + sdhi2: sd@ee160000 { + compatible = "renesas,sdhi-r8a7743"; + reg = <0 0xee160000 0 0x100>; + interrupts = ; + clocks = <&mstp3_clks R8A7743_CLK_SDHI2>; + dmas = <&dmac0 0xd3>, <&dmac0 0xd4>, + <&dmac1 0xd3>, <&dmac1 0xd4>; + dma-names = "tx", "rx", "tx", "rx"; + max-frequency = <97500000>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + clocks { #address-cells = <2>; #size-cells = <2>; From ccb42a6015cbb44fba236b13e12bb5465aecc7cf Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 2 Mar 2018 11:44:51 +0000 Subject: [PATCH 0208/1149] ARM: dts: iwg20m: Enable SDHI0 controller Enable the SDHI0 controller on iWave RZG1M Qseven SOM. Signed-off-by: Biju Das Acked-by: Wolfram Sang Signed-off-by: Simon Horman (cherry picked from commit e75e71e7bcee2e04be8bbca6fb67af1a45fa128b) Signed-off-by: Fabrizio Castro Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743-iwg20m.dtsi | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743-iwg20m.dtsi b/arch/arm/boot/dts/r8a7743-iwg20m.dtsi index ff7993818637..4119737cb883 100644 --- a/arch/arm/boot/dts/r8a7743-iwg20m.dtsi +++ b/arch/arm/boot/dts/r8a7743-iwg20m.dtsi @@ -9,6 +9,7 @@ */ #include "r8a7743.dtsi" +#include / { compatible = "iwave,g20m", "renesas,r8a7743"; @@ -42,6 +43,12 @@ groups = "mmc_data8_b", "mmc_ctrl"; function = "mmc"; }; + + sdhi0_pins: sd0 { + groups = "sdhi0_data4", "sdhi0_ctrl"; + function = "sdhi0"; + power-source = <3300>; + }; }; &mmcif0 { @@ -53,3 +60,13 @@ non-removable; status = "okay"; }; + +&sdhi0 { + pinctrl-0 = <&sdhi0_pins>; + pinctrl-names = "default"; + + vmmc-supply = <®_3p3v>; + vqmmc-supply = <®_3p3v>; + cd-gpios = <&gpio7 11 GPIO_ACTIVE_LOW>; + status = "okay"; +}; From e932f283be9fbc28600e02305bac683de0a42e52 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 2 Mar 2018 11:44:52 +0000 Subject: [PATCH 0209/1149] ARM: dts: iwg20d-q7: Add SDHI1 support Define the iWave RainboW-G20D-Qseven board dependent part of the SDHI1 device node. Signed-off-by: Biju Das Acked-by: Wolfram Sang Signed-off-by: Simon Horman (cherry picked from commit 029efb3a03c5039902a6f1cfe266ed664cb97f20) Signed-off-by: Fabrizio Castro Reviewed-by: Chris Paterson Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743-iwg20d-q7.dts | 40 +++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts b/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts index f3b489092e20..0bd97542b78e 100644 --- a/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts +++ b/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts @@ -19,6 +19,29 @@ serial0 = &scif0; ethernet0 = &avb; }; + + vcc_sdhi1: regulator-vcc-sdhi1 { + compatible = "regulator-fixed"; + + regulator-name = "SDHI1 Vcc"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + + gpio = <&gpio1 16 GPIO_ACTIVE_LOW>; + }; + + vccq_sdhi1: regulator-vccq-sdhi1 { + compatible = "regulator-gpio"; + + regulator-name = "SDHI1 VccQ"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + + gpios = <&gpio2 30 GPIO_ACTIVE_LOW>; + gpios-states = <1>; + states = <3300000 1 + 1800000 0>; + }; }; &pfc { @@ -36,6 +59,12 @@ groups = "avb_mdio", "avb_gmii"; function = "avb"; }; + + sdhi1_pins: sd1 { + groups = "sdhi1_data4", "sdhi1_ctrl"; + function = "sdhi1"; + power-source = <3300>; + }; }; &scif0 { @@ -60,6 +89,17 @@ }; }; +&sdhi1 { + pinctrl-0 = <&sdhi1_pins>; + pinctrl-names = "default"; + + vmmc-supply = <&vcc_sdhi1>; + vqmmc-supply = <&vccq_sdhi1>; + cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>; + wp-gpios = <&gpio6 15 GPIO_ACTIVE_HIGH>; + status = "okay"; +}; + &i2c2 { pinctrl-0 = <&i2c2_pins>; pinctrl-names = "default"; From 77be71c7d0f852a6f60243cdda0c2b8f0a1e2b2e Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Wed, 7 Mar 2018 18:13:28 +0000 Subject: [PATCH 0210/1149] CIP: Bump version suffix to -cip19 after Renesas patches Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 5bf5c2723ddd..fdb4a99b989f 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip18 +-cip19 From 40f71cd6d63e30babe635402ca3dd0cbe2aa4571 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 28 Feb 2018 17:49:47 +0100 Subject: [PATCH 0211/1149] x86/apic/vector: Handle legacy irq data correctly The backport of upstream commit 45d55e7bac40 ("x86/apic/vector: Fix off by one in error path") missed to fixup the legacy interrupt data which is not longer available upstream. Handle legacy irq data correctly by clearing the legacy storage to prevent use after free. Fixes: 7fd133539289 ("x86/apic/vector: Fix off by one in error path") - 4.4.y Fixes: c557481a9491 ("x86/apic/vector: Fix off by one in error path") - 4.9.y Reported-by: Ben Hutchings Signed-off-by: Thomas Gleixner Signed-off-by: Ben Hutchings --- arch/x86/kernel/apic/vector.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/arch/x86/kernel/apic/vector.c b/arch/x86/kernel/apic/vector.c index a41e523536a2..592e260ba05b 100644 --- a/arch/x86/kernel/apic/vector.c +++ b/arch/x86/kernel/apic/vector.c @@ -91,8 +91,12 @@ static struct apic_chip_data *alloc_apic_chip_data(int node) return NULL; } -static void free_apic_chip_data(struct apic_chip_data *data) +static void free_apic_chip_data(unsigned int virq, struct apic_chip_data *data) { +#ifdef CONFIG_X86_IO_APIC + if (virq < nr_legacy_irqs()) + legacy_irq_data[virq] = NULL; +#endif if (data) { free_cpumask_var(data->domain); free_cpumask_var(data->old_domain); @@ -316,11 +320,7 @@ static void x86_vector_free_irqs(struct irq_domain *domain, apic_data = irq_data->chip_data; irq_domain_reset_irq_data(irq_data); raw_spin_unlock_irqrestore(&vector_lock, flags); - free_apic_chip_data(apic_data); -#ifdef CONFIG_X86_IO_APIC - if (virq + i < nr_legacy_irqs()) - legacy_irq_data[virq + i] = NULL; -#endif + free_apic_chip_data(virq + i, apic_data); } } } @@ -361,7 +361,7 @@ static int x86_vector_alloc_irqs(struct irq_domain *domain, unsigned int virq, err = assign_irq_vector_policy(virq + i, node, data, info); if (err) { irq_data->chip_data = NULL; - free_apic_chip_data(data); + free_apic_chip_data(virq + i, data); goto error; } } From a805329b42da588613066b1bcfbbcf46f210f4ef Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Wed, 6 Dec 2017 14:17:17 +0100 Subject: [PATCH 0212/1149] ARM: omap2: hide omap3_save_secure_ram on non-OMAP3 builds commit 863204cfdae98626a92535ac928ad79f4d6b74ff upstream. In configurations without CONFIG_OMAP3 but with secure RAM support, we now run into a link failure: arch/arm/mach-omap2/omap-secure.o: In function `omap3_save_secure_ram': omap-secure.c:(.text+0x130): undefined reference to `save_secure_ram_context' The omap3_save_secure_ram() function is only called from the OMAP34xx power management code, so we can simply hide that function in the appropriate #ifdef. Fixes: d09220a887f7 ("ARM: OMAP2+: Fix SRAM virt to phys translation for save_secure_ram_context") Acked-by: Tony Lindgren Tested-by: Dan Murphy Signed-off-by: Arnd Bergmann Signed-off-by: Ben Hutchings --- arch/arm/mach-omap2/omap-secure.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/mach-omap2/omap-secure.c b/arch/arm/mach-omap2/omap-secure.c index 9ff92050053c..fa7f308c9027 100644 --- a/arch/arm/mach-omap2/omap-secure.c +++ b/arch/arm/mach-omap2/omap-secure.c @@ -73,6 +73,7 @@ phys_addr_t omap_secure_ram_mempool_base(void) return omap_secure_memblock_base; } +#if defined(CONFIG_ARCH_OMAP3) && defined(CONFIG_PM) u32 omap3_save_secure_ram(void __iomem *addr, int size) { u32 ret; @@ -91,6 +92,7 @@ u32 omap3_save_secure_ram(void __iomem *addr, int size) return ret; } +#endif /** * rx51_secure_dispatcher: Routine to dispatch secure PPA API calls From 9a3e03888f83cde5589bbe239265dcfa1a780e17 Mon Sep 17 00:00:00 2001 From: Dmitry Torokhov Date: Mon, 13 Feb 2017 15:45:59 -0800 Subject: [PATCH 0213/1149] Input: tca8418_keypad - remove double read of key event register commit 9dd46c02532a6bed6240101ecf4bbc407f8c6adf upstream. There is no need to tread the same register twice in a row. Fixes: ea4348c8462a ("Input: tca8418_keypad - hide gcc-4.9 -Wmaybe-un ...") Signed-off-by: Dmitry Torokhov Signed-off-by: Ben Hutchings --- drivers/input/keyboard/tca8418_keypad.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/input/keyboard/tca8418_keypad.c b/drivers/input/keyboard/tca8418_keypad.c index 3048ef3e3e16..a5e8998047fe 100644 --- a/drivers/input/keyboard/tca8418_keypad.c +++ b/drivers/input/keyboard/tca8418_keypad.c @@ -189,8 +189,6 @@ static void tca8418_read_keypad(struct tca8418_keypad *keypad_data) input_event(input, EV_MSC, MSC_SCAN, code); input_report_key(input, keymap[code], state); - /* Read for next loop */ - error = tca8418_read_byte(keypad_data, REG_KEY_EVENT_A, ®); } while (1); input_sync(input); From a6c97050ec3447f8050a0e8896f5982a1605231e Mon Sep 17 00:00:00 2001 From: Jiri Slaby Date: Wed, 7 Mar 2018 08:56:23 +0100 Subject: [PATCH 0214/1149] x86/syscall: Sanitize syscall table de-references under speculation fix In 4.4.118, we have commit c8961332d6da (x86/syscall: Sanitize syscall table de-references under speculation), which is a backport of upstream commit 2fbd7af5af86. But it fixed only the C part of the upstream patch -- the IA32 sysentry. So it ommitted completely the assembly part -- the 64bit sysentry. Fix that in this patch by explicit array_index_mask_nospec written in assembly. The same was used in lib/getuser.S. However, to have "sbb" working properly, we have to switch from "cmp" against (NR_syscalls-1) to (NR_syscalls), otherwise the last syscall number would be "and"ed by 0. It is because the original "ja" relies on "CF" or "ZF", but we rely only on "CF" in "sbb". That means: switch to "jae" conditional jump too. Final note: use rcx for mask as this is exactly what is overwritten by the 4th syscall argument (r10) right after. Reported-by: Jan Beulich Cc: Linus Torvalds Cc: Dan Williams Cc: Thomas Gleixner Cc: linux-arch@vger.kernel.org Cc: kernel-hardening@lists.openwall.com Cc: gregkh@linuxfoundation.org Cc: Andy Lutomirski Cc: alan@linux.intel.com Cc: Jinpu Wang Signed-off-by: Jiri Slaby Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- arch/x86/entry/entry_64.S | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S index a03b22c615d9..59a4e1604a36 100644 --- a/arch/x86/entry/entry_64.S +++ b/arch/x86/entry/entry_64.S @@ -178,12 +178,14 @@ GLOBAL(entry_SYSCALL_64_after_swapgs) jnz tracesys entry_SYSCALL_64_fastpath: #if __SYSCALL_MASK == ~0 - cmpq $__NR_syscall_max, %rax + cmpq $NR_syscalls, %rax #else andl $__SYSCALL_MASK, %eax - cmpl $__NR_syscall_max, %eax + cmpl $NR_syscalls, %eax #endif - ja 1f /* return -ENOSYS (already in pt_regs->ax) */ + jae 1f /* return -ENOSYS (already in pt_regs->ax) */ + sbb %rcx, %rcx /* array_index_mask_nospec() */ + and %rcx, %rax movq %r10, %rcx #ifdef CONFIG_RETPOLINE movq sys_call_table(, %rax, 8), %rax @@ -276,12 +278,14 @@ tracesys_phase2: RESTORE_C_REGS_EXCEPT_RAX RESTORE_EXTRA_REGS #if __SYSCALL_MASK == ~0 - cmpq $__NR_syscall_max, %rax + cmpq $NR_syscalls, %rax #else andl $__SYSCALL_MASK, %eax - cmpl $__NR_syscall_max, %eax + cmpl $NR_syscalls, %eax #endif - ja 1f /* return -ENOSYS (already in pt_regs->ax) */ + jae 1f /* return -ENOSYS (already in pt_regs->ax) */ + sbb %rcx, %rcx /* array_index_mask_nospec() */ + and %rcx, %rax movq %r10, %rcx /* fixup for C */ #ifdef CONFIG_RETPOLINE movq sys_call_table(, %rax, 8), %rax From 3e78f532559a6c0f0f0e40515213a400f47f338a Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 8 Mar 2018 15:56:24 +0000 Subject: [PATCH 0215/1149] Revert "led: core: Fix brightness setting when setting delay_off=0" This reverts commit 20ac8f72514b3af8b62c520d55656ded865eff00, which was commit 2b83ff96f51d0b039c4561b9f95c824d7bddb85c upstream. The bug that it should fix was only introduced in Linux 4.7, and in 4.4 it causes a regression. Reported-by: Jacek Anaszewski Cc: Matthieu CASTET Signed-off-by: Ben Hutchings --- drivers/leds/led-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/leds/led-core.c b/drivers/leds/led-core.c index 92b6798ef5b3..c1c3af089634 100644 --- a/drivers/leds/led-core.c +++ b/drivers/leds/led-core.c @@ -149,7 +149,7 @@ void led_blink_set(struct led_classdev *led_cdev, unsigned long *delay_on, unsigned long *delay_off) { - led_stop_software_blink(led_cdev); + del_timer_sync(&led_cdev->blink_timer); led_cdev->flags &= ~LED_BLINK_ONESHOT; led_cdev->flags &= ~LED_BLINK_ONESHOT_STOP; From 72a3e06c8befc22f9b2e99e0389799785e396e1d Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Wed, 14 Feb 2018 10:14:17 +0300 Subject: [PATCH 0216/1149] x86/spectre: Fix an error message commit 9de29eac8d2189424d81c0d840cd0469aa3d41c8 upstream. If i == ARRAY_SIZE(mitigation_options) then we accidentally print garbage from one space beyond the end of the mitigation_options[] array. Signed-off-by: Dan Carpenter Cc: Andy Lutomirski Cc: Borislav Petkov Cc: David Woodhouse Cc: Greg Kroah-Hartman Cc: KarimAllah Ahmed Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: kernel-janitors@vger.kernel.org Fixes: 9005c6834c0f ("x86/spectre: Simplify spectre_v2 command line parsing") Link: http://lkml.kernel.org/r/20180214071416.GA26677@mwanda Signed-off-by: Ingo Molnar [bwh: Backported to 4.4: adjust context] Signed-off-by: Ben Hutchings --- arch/x86/kernel/cpu/bugs.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index ecaf7c9baf75..2bbc74f8a4a8 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -175,8 +175,7 @@ static enum spectre_v2_mitigation_cmd __init spectre_v2_parse_cmdline(void) } if (i >= ARRAY_SIZE(mitigation_options)) { - pr_err("unknown option (%s). Switching to AUTO select\n", - mitigation_options[i].option); + pr_err("unknown option (%s). Switching to AUTO select\n", arg); return SPECTRE_V2_CMD_AUTO; } } From 01f292da5269eb21a13e8637d42f1516446f9072 Mon Sep 17 00:00:00 2001 From: Will Deacon Date: Mon, 5 Feb 2018 14:16:06 +0000 Subject: [PATCH 0217/1149] nospec: Move array_index_nospec() parameter checking into separate macro commit 8fa80c503b484ddc1abbd10c7cb2ab81f3824a50 upstream. For architectures providing their own implementation of array_index_mask_nospec() in asm/barrier.h, attempting to use WARN_ONCE() to complain about out-of-range parameters using WARN_ON() results in a mess of mutually-dependent include files. Rather than unpick the dependencies, simply have the core code in nospec.h perform the checking for us. Signed-off-by: Will Deacon Acked-by: Thomas Gleixner Cc: Dan Williams Cc: Linus Torvalds Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1517840166-15399-1-git-send-email-will.deacon@arm.com Signed-off-by: Ingo Molnar Signed-off-by: Ben Hutchings --- include/linux/nospec.h | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/include/linux/nospec.h b/include/linux/nospec.h index b99bced39ac2..fbc98e2c8228 100644 --- a/include/linux/nospec.h +++ b/include/linux/nospec.h @@ -19,20 +19,6 @@ static inline unsigned long array_index_mask_nospec(unsigned long index, unsigned long size) { - /* - * Warn developers about inappropriate array_index_nospec() usage. - * - * Even if the CPU speculates past the WARN_ONCE branch, the - * sign bit of @index is taken into account when generating the - * mask. - * - * This warning is compiled out when the compiler can infer that - * @index and @size are less than LONG_MAX. - */ - if (WARN_ONCE(index > LONG_MAX || size > LONG_MAX, - "array_index_nospec() limited to range of [0, LONG_MAX]\n")) - return 0; - /* * Always calculate and emit the mask even if the compiler * thinks the mask is not needed. The compiler does not take @@ -43,6 +29,26 @@ static inline unsigned long array_index_mask_nospec(unsigned long index, } #endif +/* + * Warn developers about inappropriate array_index_nospec() usage. + * + * Even if the CPU speculates past the WARN_ONCE branch, the + * sign bit of @index is taken into account when generating the + * mask. + * + * This warning is compiled out when the compiler can infer that + * @index and @size are less than LONG_MAX. + */ +#define array_index_mask_nospec_check(index, size) \ +({ \ + if (WARN_ONCE(index > LONG_MAX || size > LONG_MAX, \ + "array_index_nospec() limited to range of [0, LONG_MAX]\n")) \ + _mask = 0; \ + else \ + _mask = array_index_mask_nospec(index, size); \ + _mask; \ +}) + /* * array_index_nospec - sanitize an array index after a bounds check * @@ -61,7 +67,7 @@ static inline unsigned long array_index_mask_nospec(unsigned long index, ({ \ typeof(index) _i = (index); \ typeof(size) _s = (size); \ - unsigned long _mask = array_index_mask_nospec(_i, _s); \ + unsigned long _mask = array_index_mask_nospec_check(_i, _s); \ \ BUILD_BUG_ON(sizeof(_i) > sizeof(long)); \ BUILD_BUG_ON(sizeof(_s) > sizeof(long)); \ From bb052b768e0b48f2bf72b72191897293a7e36f26 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Fri, 16 Feb 2018 13:20:42 -0800 Subject: [PATCH 0218/1149] nospec: Kill array_index_nospec_mask_check() commit 1d91c1d2c80cb70e2e553845e278b87a960c04da upstream. There are multiple problems with the dynamic sanity checking in array_index_nospec_mask_check(): * It causes unnecessary overhead in the 32-bit case since integer sized @index values will no longer cause the check to be compiled away like in the 64-bit case. * In the 32-bit case it may trigger with user controllable input when the expectation is that should only trigger during development of new kernel enabling. * The macro reuses the input parameter in multiple locations which is broken if someone passes an expression like 'index++' to array_index_nospec(). Reported-by: Linus Torvalds Signed-off-by: Dan Williams Cc: Andy Lutomirski Cc: Arjan van de Ven Cc: Borislav Petkov Cc: Dave Hansen Cc: David Woodhouse Cc: Greg Kroah-Hartman Cc: Josh Poimboeuf Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Will Deacon Cc: linux-arch@vger.kernel.org Link: http://lkml.kernel.org/r/151881604278.17395.6605847763178076520.stgit@dwillia2-desk3.amr.corp.intel.com Signed-off-by: Ingo Molnar Signed-off-by: Ben Hutchings --- include/linux/nospec.h | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/include/linux/nospec.h b/include/linux/nospec.h index fbc98e2c8228..d6701e34424f 100644 --- a/include/linux/nospec.h +++ b/include/linux/nospec.h @@ -29,26 +29,6 @@ static inline unsigned long array_index_mask_nospec(unsigned long index, } #endif -/* - * Warn developers about inappropriate array_index_nospec() usage. - * - * Even if the CPU speculates past the WARN_ONCE branch, the - * sign bit of @index is taken into account when generating the - * mask. - * - * This warning is compiled out when the compiler can infer that - * @index and @size are less than LONG_MAX. - */ -#define array_index_mask_nospec_check(index, size) \ -({ \ - if (WARN_ONCE(index > LONG_MAX || size > LONG_MAX, \ - "array_index_nospec() limited to range of [0, LONG_MAX]\n")) \ - _mask = 0; \ - else \ - _mask = array_index_mask_nospec(index, size); \ - _mask; \ -}) - /* * array_index_nospec - sanitize an array index after a bounds check * @@ -67,7 +47,7 @@ static inline unsigned long array_index_mask_nospec(unsigned long index, ({ \ typeof(index) _i = (index); \ typeof(size) _s = (size); \ - unsigned long _mask = array_index_mask_nospec_check(_i, _s); \ + unsigned long _mask = array_index_mask_nospec(_i, _s); \ \ BUILD_BUG_ON(sizeof(_i) > sizeof(long)); \ BUILD_BUG_ON(sizeof(_s) > sizeof(long)); \ From 33794cf387669bb8c250ad0ff82fefdf47ea318f Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Fri, 16 Feb 2018 13:20:54 -0800 Subject: [PATCH 0219/1149] nospec: Include dependency commit eb6174f6d1be16b19cfa43dac296bfed003ce1a6 upstream. The nospec.h header expects the per-architecture header file to optionally define array_index_mask_nospec(). Include that dependency to prevent inadvertent fallback to the default array_index_mask_nospec() implementation. The default implementation may not provide a full mitigation on architectures that perform data value speculation. Reported-by: Christian Borntraeger Signed-off-by: Dan Williams Cc: Andy Lutomirski Cc: Arjan van de Ven Cc: Borislav Petkov Cc: Dave Hansen Cc: David Woodhouse Cc: Greg Kroah-Hartman Cc: Josh Poimboeuf Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Will Deacon Cc: linux-arch@vger.kernel.org Link: http://lkml.kernel.org/r/151881605404.17395.1341935530792574707.stgit@dwillia2-desk3.amr.corp.intel.com Signed-off-by: Ingo Molnar Signed-off-by: Ben Hutchings --- include/linux/nospec.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/linux/nospec.h b/include/linux/nospec.h index d6701e34424f..3b1d69c52beb 100644 --- a/include/linux/nospec.h +++ b/include/linux/nospec.h @@ -5,6 +5,7 @@ #ifndef _LINUX_NOSPEC_H #define _LINUX_NOSPEC_H +#include /** * array_index_mask_nospec() - generate a ~0 mask when index < size, 0 otherwise From 6ae5aa25c4f9783930434ae370552fcb7602d20e Mon Sep 17 00:00:00 2001 From: David Ahern Date: Sat, 27 May 2017 16:19:30 -0600 Subject: [PATCH 0220/1149] net: mpls: Pull common label check into helper commit b7b386f42f079b25b942c756820e36c6bd09b2ca upstream. mpls_route_add and mpls_route_del have the same checks on the label. Move to a helper. Avoid duplicate extack messages in the next patch. Signed-off-by: David Ahern Signed-off-by: David S. Miller Signed-off-by: Ben Hutchings --- net/mpls/af_mpls.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/net/mpls/af_mpls.c b/net/mpls/af_mpls.c index 52cfc4478511..ff7f7f05523a 100644 --- a/net/mpls/af_mpls.c +++ b/net/mpls/af_mpls.c @@ -714,6 +714,19 @@ static int mpls_nh_build_multi(struct mpls_route_config *cfg, return err; } +static bool mpls_label_ok(struct net *net, unsigned int index) +{ + /* Reserved labels may not be set */ + if (index < MPLS_LABEL_FIRST_UNRESERVED) + return false; + + /* The full 20 bit range may not be supported. */ + if (index >= net->mpls.platform_labels) + return false; + + return true; +} + static int mpls_route_add(struct mpls_route_config *cfg) { struct mpls_route __rcu **platform_label; @@ -732,12 +745,7 @@ static int mpls_route_add(struct mpls_route_config *cfg) index = find_free_label(net); } - /* Reserved labels may not be set */ - if (index < MPLS_LABEL_FIRST_UNRESERVED) - goto errout; - - /* The full 20 bit range may not be supported. */ - if (index >= net->mpls.platform_labels) + if (!mpls_label_ok(net, index)) goto errout; /* Append makes no sense with mpls */ @@ -798,12 +806,7 @@ static int mpls_route_del(struct mpls_route_config *cfg) index = cfg->rc_label; - /* Reserved labels may not be removed */ - if (index < MPLS_LABEL_FIRST_UNRESERVED) - goto errout; - - /* The full 20 bit range may not be supported */ - if (index >= net->mpls.platform_labels) + if (!mpls_label_ok(net, index)) goto errout; mpls_route_update(net, index, NULL, &cfg->rc_nlinfo); @@ -1162,10 +1165,9 @@ static int rtm_to_route_config(struct sk_buff *skb, struct nlmsghdr *nlh, &cfg->rc_label)) goto errout; - /* Reserved labels may not be set */ - if (cfg->rc_label < MPLS_LABEL_FIRST_UNRESERVED) + if (!mpls_label_ok(cfg->rc_nlinfo.nl_net, + cfg->rc_label)) goto errout; - break; } case RTA_VIA: From c35d6cf0e26d43d09ac35b972a46dc514fbb593f Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Wed, 7 Feb 2018 22:34:24 -0800 Subject: [PATCH 0221/1149] mpls, nospec: Sanitize array index in mpls_label_ok() commit 3968523f855050b8195134da951b87c20bd66130 upstream. mpls_label_ok() validates that the 'platform_label' array index from a userspace netlink message payload is valid. Under speculation the mpls_label_ok() result may not resolve in the CPU pipeline until after the index is used to access an array element. Sanitize the index to zero to prevent userspace-controlled arbitrary out-of-bounds speculation, a precursor for a speculative execution side channel vulnerability. Cc: "David S. Miller" Cc: Eric W. Biederman Signed-off-by: Dan Williams Signed-off-by: David S. Miller [bwh: Backported to 4.4: - mpls_label_ok() doesn't take an extack parameter - Drop change in mpls_getroute()] Signed-off-by: Ben Hutchings --- net/mpls/af_mpls.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/net/mpls/af_mpls.c b/net/mpls/af_mpls.c index ff7f7f05523a..c2ce7dec5198 100644 --- a/net/mpls/af_mpls.c +++ b/net/mpls/af_mpls.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -714,17 +715,20 @@ static int mpls_nh_build_multi(struct mpls_route_config *cfg, return err; } -static bool mpls_label_ok(struct net *net, unsigned int index) +static bool mpls_label_ok(struct net *net, unsigned int *index) { + bool is_ok = true; + /* Reserved labels may not be set */ - if (index < MPLS_LABEL_FIRST_UNRESERVED) - return false; + if (*index < MPLS_LABEL_FIRST_UNRESERVED) + is_ok = false; /* The full 20 bit range may not be supported. */ - if (index >= net->mpls.platform_labels) - return false; + if (is_ok && *index >= net->mpls.platform_labels) + is_ok = false; - return true; + *index = array_index_nospec(*index, net->mpls.platform_labels); + return is_ok; } static int mpls_route_add(struct mpls_route_config *cfg) @@ -745,7 +749,7 @@ static int mpls_route_add(struct mpls_route_config *cfg) index = find_free_label(net); } - if (!mpls_label_ok(net, index)) + if (!mpls_label_ok(net, &index)) goto errout; /* Append makes no sense with mpls */ @@ -806,7 +810,7 @@ static int mpls_route_del(struct mpls_route_config *cfg) index = cfg->rc_label; - if (!mpls_label_ok(net, index)) + if (!mpls_label_ok(net, &index)) goto errout; mpls_route_update(net, index, NULL, &cfg->rc_nlinfo); @@ -1166,7 +1170,7 @@ static int rtm_to_route_config(struct sk_buff *skb, struct nlmsghdr *nlh, goto errout; if (!mpls_label_ok(cfg->rc_nlinfo.nl_net, - cfg->rc_label)) + &cfg->rc_label)) goto errout; break; } From 7beb4071e7b286d93d11802423cd7ea68f6cf8c5 Mon Sep 17 00:00:00 2001 From: Daniel Borkmann Date: Thu, 22 Feb 2018 15:12:53 +0100 Subject: [PATCH 0222/1149] bpf, x64: implement retpoline for tail call commit a493a87f38cfa48caaa95c9347be2d914c6fdf29 upstream. Implement a retpoline [0] for the BPF tail call JIT'ing that converts the indirect jump via jmp %rax that is used to make the long jump into another JITed BPF image. Since this is subject to speculative execution, we need to control the transient instruction sequence here as well when CONFIG_RETPOLINE is set, and direct it into a pause + lfence loop. The latter aligns also with what gcc / clang emits (e.g. [1]). JIT dump after patch: # bpftool p d x i 1 0: (18) r2 = map[id:1] 2: (b7) r3 = 0 3: (85) call bpf_tail_call#12 4: (b7) r0 = 2 5: (95) exit With CONFIG_RETPOLINE: # bpftool p d j i 1 [...] 33: cmp %edx,0x24(%rsi) 36: jbe 0x0000000000000072 |* 38: mov 0x24(%rbp),%eax 3e: cmp $0x20,%eax 41: ja 0x0000000000000072 | 43: add $0x1,%eax 46: mov %eax,0x24(%rbp) 4c: mov 0x90(%rsi,%rdx,8),%rax 54: test %rax,%rax 57: je 0x0000000000000072 | 59: mov 0x28(%rax),%rax 5d: add $0x25,%rax 61: callq 0x000000000000006d |+ 66: pause | 68: lfence | 6b: jmp 0x0000000000000066 | 6d: mov %rax,(%rsp) | 71: retq | 72: mov $0x2,%eax [...] * relative fall-through jumps in error case + retpoline for indirect jump Without CONFIG_RETPOLINE: # bpftool p d j i 1 [...] 33: cmp %edx,0x24(%rsi) 36: jbe 0x0000000000000063 |* 38: mov 0x24(%rbp),%eax 3e: cmp $0x20,%eax 41: ja 0x0000000000000063 | 43: add $0x1,%eax 46: mov %eax,0x24(%rbp) 4c: mov 0x90(%rsi,%rdx,8),%rax 54: test %rax,%rax 57: je 0x0000000000000063 | 59: mov 0x28(%rax),%rax 5d: add $0x25,%rax 61: jmpq *%rax |- 63: mov $0x2,%eax [...] * relative fall-through jumps in error case - plain indirect jump as before [0] https://support.google.com/faqs/answer/7625886 [1] https://github.com/gcc-mirror/gcc/commit/a31e654fa107be968b802786d747e962c2fcdb2b Signed-off-by: Daniel Borkmann Signed-off-by: Alexei Starovoitov [bwh: Backported to 4.4: adjust context] Signed-off-by: Ben Hutchings --- arch/x86/include/asm/nospec-branch.h | 37 ++++++++++++++++++++++++++++ arch/x86/net/bpf_jit_comp.c | 9 ++++--- 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/arch/x86/include/asm/nospec-branch.h b/arch/x86/include/asm/nospec-branch.h index 66094a0473a8..249f1c769f21 100644 --- a/arch/x86/include/asm/nospec-branch.h +++ b/arch/x86/include/asm/nospec-branch.h @@ -195,4 +195,41 @@ static inline void vmexit_fill_RSB(void) } #endif /* __ASSEMBLY__ */ + +/* + * Below is used in the eBPF JIT compiler and emits the byte sequence + * for the following assembly: + * + * With retpolines configured: + * + * callq do_rop + * spec_trap: + * pause + * lfence + * jmp spec_trap + * do_rop: + * mov %rax,(%rsp) + * retq + * + * Without retpolines configured: + * + * jmp *%rax + */ +#ifdef CONFIG_RETPOLINE +# define RETPOLINE_RAX_BPF_JIT_SIZE 17 +# define RETPOLINE_RAX_BPF_JIT() \ + EMIT1_off32(0xE8, 7); /* callq do_rop */ \ + /* spec_trap: */ \ + EMIT2(0xF3, 0x90); /* pause */ \ + EMIT3(0x0F, 0xAE, 0xE8); /* lfence */ \ + EMIT2(0xEB, 0xF9); /* jmp spec_trap */ \ + /* do_rop: */ \ + EMIT4(0x48, 0x89, 0x04, 0x24); /* mov %rax,(%rsp) */ \ + EMIT1(0xC3); /* retq */ +#else +# define RETPOLINE_RAX_BPF_JIT_SIZE 2 +# define RETPOLINE_RAX_BPF_JIT() \ + EMIT2(0xFF, 0xE0); /* jmp *%rax */ +#endif + #endif /* _ASM_X86_NOSPEC_BRANCH_H_ */ diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c index 33c42b826791..a889211e21c5 100644 --- a/arch/x86/net/bpf_jit_comp.c +++ b/arch/x86/net/bpf_jit_comp.c @@ -12,6 +12,7 @@ #include #include #include +#include #include int bpf_jit_enable __read_mostly; @@ -269,7 +270,7 @@ static void emit_bpf_tail_call(u8 **pprog) EMIT2(0x89, 0xD2); /* mov edx, edx */ EMIT3(0x39, 0x56, /* cmp dword ptr [rsi + 16], edx */ offsetof(struct bpf_array, map.max_entries)); -#define OFFSET1 43 /* number of bytes to jump */ +#define OFFSET1 (41 + RETPOLINE_RAX_BPF_JIT_SIZE) /* number of bytes to jump */ EMIT2(X86_JBE, OFFSET1); /* jbe out */ label1 = cnt; @@ -278,7 +279,7 @@ static void emit_bpf_tail_call(u8 **pprog) */ EMIT2_off32(0x8B, 0x85, -STACKSIZE + 36); /* mov eax, dword ptr [rbp - 516] */ EMIT3(0x83, 0xF8, MAX_TAIL_CALL_CNT); /* cmp eax, MAX_TAIL_CALL_CNT */ -#define OFFSET2 32 +#define OFFSET2 (30 + RETPOLINE_RAX_BPF_JIT_SIZE) EMIT2(X86_JA, OFFSET2); /* ja out */ label2 = cnt; EMIT3(0x83, 0xC0, 0x01); /* add eax, 1 */ @@ -292,7 +293,7 @@ static void emit_bpf_tail_call(u8 **pprog) * goto out; */ EMIT3(0x48, 0x85, 0xC0); /* test rax,rax */ -#define OFFSET3 10 +#define OFFSET3 (8 + RETPOLINE_RAX_BPF_JIT_SIZE) EMIT2(X86_JE, OFFSET3); /* je out */ label3 = cnt; @@ -305,7 +306,7 @@ static void emit_bpf_tail_call(u8 **pprog) * rdi == ctx (1st arg) * rax == prog->bpf_func + prologue_size */ - EMIT2(0xFF, 0xE0); /* jmp rax */ + RETPOLINE_RAX_BPF_JIT(); /* out: */ BUILD_BUG_ON(cnt - label1 != OFFSET1); From 7699d9cb2dbb608e3ac78d2d5934e10cd96d4091 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Thu, 17 Dec 2015 09:45:09 -0800 Subject: [PATCH 0223/1149] x86: reorganize SMAP handling in user space accesses commit 11f1a4b9755f5dbc3e822a96502ebe9b044b14d8 upstream. This reorganizes how we do the stac/clac instructions in the user access code. Instead of adding the instructions directly to the same inline asm that does the actual user level access and exception handling, add them at a higher level. This is mainly preparation for the next step, where we will expose an interface to allow users to mark several accesses together as being user space accesses, but it does already clean up some code: - the inlined trivial cases of copy_in_user() now do stac/clac just once over the accesses: they used to do one pair around the user space read, and another pair around the write-back. - the {get,put}_user_ex() macros that are used with the catch/try handling don't do any stac/clac at all, because that happens in the try/catch surrounding them. Other than those two cleanups that happened naturally from the re-organization, this should not make any difference. Yet. Signed-off-by: Linus Torvalds Signed-off-by: Ben Hutchings --- arch/x86/include/asm/uaccess.h | 53 +++++++++++------ arch/x86/include/asm/uaccess_64.h | 94 ++++++++++++++++++++++--------- 2 files changed, 101 insertions(+), 46 deletions(-) diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h index d788b0cdc0ad..e93a69f9a225 100644 --- a/arch/x86/include/asm/uaccess.h +++ b/arch/x86/include/asm/uaccess.h @@ -144,6 +144,9 @@ extern int __get_user_4(void); extern int __get_user_8(void); extern int __get_user_bad(void); +#define __uaccess_begin() stac() +#define __uaccess_end() clac() + /* * This is a type: either unsigned long, if the argument fits into * that type, or otherwise unsigned long long. @@ -203,10 +206,10 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL)) #ifdef CONFIG_X86_32 #define __put_user_asm_u64(x, addr, err, errret) \ - asm volatile(ASM_STAC "\n" \ + asm volatile("\n" \ "1: movl %%eax,0(%2)\n" \ "2: movl %%edx,4(%2)\n" \ - "3: " ASM_CLAC "\n" \ + "3:" \ ".section .fixup,\"ax\"\n" \ "4: movl %3,%0\n" \ " jmp 3b\n" \ @@ -217,10 +220,10 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL)) : "A" (x), "r" (addr), "i" (errret), "0" (err)) #define __put_user_asm_ex_u64(x, addr) \ - asm volatile(ASM_STAC "\n" \ + asm volatile("\n" \ "1: movl %%eax,0(%1)\n" \ "2: movl %%edx,4(%1)\n" \ - "3: " ASM_CLAC "\n" \ + "3:" \ _ASM_EXTABLE_EX(1b, 2b) \ _ASM_EXTABLE_EX(2b, 3b) \ : : "A" (x), "r" (addr)) @@ -314,6 +317,10 @@ do { \ } \ } while (0) +/* + * This doesn't do __uaccess_begin/end - the exception handling + * around it must do that. + */ #define __put_user_size_ex(x, ptr, size) \ do { \ __chk_user_ptr(ptr); \ @@ -368,9 +375,9 @@ do { \ } while (0) #define __get_user_asm(x, addr, err, itype, rtype, ltype, errret) \ - asm volatile(ASM_STAC "\n" \ + asm volatile("\n" \ "1: mov"itype" %2,%"rtype"1\n" \ - "2: " ASM_CLAC "\n" \ + "2:\n" \ ".section .fixup,\"ax\"\n" \ "3: mov %3,%0\n" \ " xor"itype" %"rtype"1,%"rtype"1\n" \ @@ -380,6 +387,10 @@ do { \ : "=r" (err), ltype(x) \ : "m" (__m(addr)), "i" (errret), "0" (err)) +/* + * This doesn't do __uaccess_begin/end - the exception handling + * around it must do that. + */ #define __get_user_size_ex(x, ptr, size) \ do { \ __chk_user_ptr(ptr); \ @@ -410,7 +421,9 @@ do { \ #define __put_user_nocheck(x, ptr, size) \ ({ \ int __pu_err; \ + __uaccess_begin(); \ __put_user_size((x), (ptr), (size), __pu_err, -EFAULT); \ + __uaccess_end(); \ __builtin_expect(__pu_err, 0); \ }) @@ -418,7 +431,9 @@ do { \ ({ \ int __gu_err; \ unsigned long __gu_val; \ + __uaccess_begin(); \ __get_user_size(__gu_val, (ptr), (size), __gu_err, -EFAULT); \ + __uaccess_end(); \ (x) = (__force __typeof__(*(ptr)))__gu_val; \ __builtin_expect(__gu_err, 0); \ }) @@ -433,9 +448,9 @@ struct __large_struct { unsigned long buf[100]; }; * aliasing issues. */ #define __put_user_asm(x, addr, err, itype, rtype, ltype, errret) \ - asm volatile(ASM_STAC "\n" \ + asm volatile("\n" \ "1: mov"itype" %"rtype"1,%2\n" \ - "2: " ASM_CLAC "\n" \ + "2:\n" \ ".section .fixup,\"ax\"\n" \ "3: mov %3,%0\n" \ " jmp 2b\n" \ @@ -455,11 +470,11 @@ struct __large_struct { unsigned long buf[100]; }; */ #define uaccess_try do { \ current_thread_info()->uaccess_err = 0; \ - stac(); \ + __uaccess_begin(); \ barrier(); #define uaccess_catch(err) \ - clac(); \ + __uaccess_end(); \ (err) |= (current_thread_info()->uaccess_err ? -EFAULT : 0); \ } while (0) @@ -557,12 +572,13 @@ extern void __cmpxchg_wrong_size(void) __typeof__(ptr) __uval = (uval); \ __typeof__(*(ptr)) __old = (old); \ __typeof__(*(ptr)) __new = (new); \ + __uaccess_begin(); \ switch (size) { \ case 1: \ { \ - asm volatile("\t" ASM_STAC "\n" \ + asm volatile("\n" \ "1:\t" LOCK_PREFIX "cmpxchgb %4, %2\n" \ - "2:\t" ASM_CLAC "\n" \ + "2:\n" \ "\t.section .fixup, \"ax\"\n" \ "3:\tmov %3, %0\n" \ "\tjmp 2b\n" \ @@ -576,9 +592,9 @@ extern void __cmpxchg_wrong_size(void) } \ case 2: \ { \ - asm volatile("\t" ASM_STAC "\n" \ + asm volatile("\n" \ "1:\t" LOCK_PREFIX "cmpxchgw %4, %2\n" \ - "2:\t" ASM_CLAC "\n" \ + "2:\n" \ "\t.section .fixup, \"ax\"\n" \ "3:\tmov %3, %0\n" \ "\tjmp 2b\n" \ @@ -592,9 +608,9 @@ extern void __cmpxchg_wrong_size(void) } \ case 4: \ { \ - asm volatile("\t" ASM_STAC "\n" \ + asm volatile("\n" \ "1:\t" LOCK_PREFIX "cmpxchgl %4, %2\n" \ - "2:\t" ASM_CLAC "\n" \ + "2:\n" \ "\t.section .fixup, \"ax\"\n" \ "3:\tmov %3, %0\n" \ "\tjmp 2b\n" \ @@ -611,9 +627,9 @@ extern void __cmpxchg_wrong_size(void) if (!IS_ENABLED(CONFIG_X86_64)) \ __cmpxchg_wrong_size(); \ \ - asm volatile("\t" ASM_STAC "\n" \ + asm volatile("\n" \ "1:\t" LOCK_PREFIX "cmpxchgq %4, %2\n" \ - "2:\t" ASM_CLAC "\n" \ + "2:\n" \ "\t.section .fixup, \"ax\"\n" \ "3:\tmov %3, %0\n" \ "\tjmp 2b\n" \ @@ -628,6 +644,7 @@ extern void __cmpxchg_wrong_size(void) default: \ __cmpxchg_wrong_size(); \ } \ + __uaccess_end(); \ *__uval = __old; \ __ret; \ }) diff --git a/arch/x86/include/asm/uaccess_64.h b/arch/x86/include/asm/uaccess_64.h index f2f9b39b274a..b89c34c4019b 100644 --- a/arch/x86/include/asm/uaccess_64.h +++ b/arch/x86/include/asm/uaccess_64.h @@ -56,35 +56,49 @@ int __copy_from_user_nocheck(void *dst, const void __user *src, unsigned size) if (!__builtin_constant_p(size)) return copy_user_generic(dst, (__force void *)src, size); switch (size) { - case 1:__get_user_asm(*(u8 *)dst, (u8 __user *)src, + case 1: + __uaccess_begin(); + __get_user_asm(*(u8 *)dst, (u8 __user *)src, ret, "b", "b", "=q", 1); + __uaccess_end(); return ret; - case 2:__get_user_asm(*(u16 *)dst, (u16 __user *)src, + case 2: + __uaccess_begin(); + __get_user_asm(*(u16 *)dst, (u16 __user *)src, ret, "w", "w", "=r", 2); + __uaccess_end(); return ret; - case 4:__get_user_asm(*(u32 *)dst, (u32 __user *)src, + case 4: + __uaccess_begin(); + __get_user_asm(*(u32 *)dst, (u32 __user *)src, ret, "l", "k", "=r", 4); + __uaccess_end(); return ret; - case 8:__get_user_asm(*(u64 *)dst, (u64 __user *)src, + case 8: + __uaccess_begin(); + __get_user_asm(*(u64 *)dst, (u64 __user *)src, ret, "q", "", "=r", 8); + __uaccess_end(); return ret; case 10: + __uaccess_begin(); __get_user_asm(*(u64 *)dst, (u64 __user *)src, ret, "q", "", "=r", 10); - if (unlikely(ret)) - return ret; - __get_user_asm(*(u16 *)(8 + (char *)dst), - (u16 __user *)(8 + (char __user *)src), - ret, "w", "w", "=r", 2); + if (likely(!ret)) + __get_user_asm(*(u16 *)(8 + (char *)dst), + (u16 __user *)(8 + (char __user *)src), + ret, "w", "w", "=r", 2); + __uaccess_end(); return ret; case 16: + __uaccess_begin(); __get_user_asm(*(u64 *)dst, (u64 __user *)src, ret, "q", "", "=r", 16); - if (unlikely(ret)) - return ret; - __get_user_asm(*(u64 *)(8 + (char *)dst), - (u64 __user *)(8 + (char __user *)src), - ret, "q", "", "=r", 8); + if (likely(!ret)) + __get_user_asm(*(u64 *)(8 + (char *)dst), + (u64 __user *)(8 + (char __user *)src), + ret, "q", "", "=r", 8); + __uaccess_end(); return ret; default: return copy_user_generic(dst, (__force void *)src, size); @@ -106,35 +120,51 @@ int __copy_to_user_nocheck(void __user *dst, const void *src, unsigned size) if (!__builtin_constant_p(size)) return copy_user_generic((__force void *)dst, src, size); switch (size) { - case 1:__put_user_asm(*(u8 *)src, (u8 __user *)dst, + case 1: + __uaccess_begin(); + __put_user_asm(*(u8 *)src, (u8 __user *)dst, ret, "b", "b", "iq", 1); + __uaccess_end(); return ret; - case 2:__put_user_asm(*(u16 *)src, (u16 __user *)dst, + case 2: + __uaccess_begin(); + __put_user_asm(*(u16 *)src, (u16 __user *)dst, ret, "w", "w", "ir", 2); + __uaccess_end(); return ret; - case 4:__put_user_asm(*(u32 *)src, (u32 __user *)dst, + case 4: + __uaccess_begin(); + __put_user_asm(*(u32 *)src, (u32 __user *)dst, ret, "l", "k", "ir", 4); + __uaccess_end(); return ret; - case 8:__put_user_asm(*(u64 *)src, (u64 __user *)dst, + case 8: + __uaccess_begin(); + __put_user_asm(*(u64 *)src, (u64 __user *)dst, ret, "q", "", "er", 8); + __uaccess_end(); return ret; case 10: + __uaccess_begin(); __put_user_asm(*(u64 *)src, (u64 __user *)dst, ret, "q", "", "er", 10); - if (unlikely(ret)) - return ret; - asm("":::"memory"); - __put_user_asm(4[(u16 *)src], 4 + (u16 __user *)dst, - ret, "w", "w", "ir", 2); + if (likely(!ret)) { + asm("":::"memory"); + __put_user_asm(4[(u16 *)src], 4 + (u16 __user *)dst, + ret, "w", "w", "ir", 2); + } + __uaccess_end(); return ret; case 16: + __uaccess_begin(); __put_user_asm(*(u64 *)src, (u64 __user *)dst, ret, "q", "", "er", 16); - if (unlikely(ret)) - return ret; - asm("":::"memory"); - __put_user_asm(1[(u64 *)src], 1 + (u64 __user *)dst, - ret, "q", "", "er", 8); + if (likely(!ret)) { + asm("":::"memory"); + __put_user_asm(1[(u64 *)src], 1 + (u64 __user *)dst, + ret, "q", "", "er", 8); + } + __uaccess_end(); return ret; default: return copy_user_generic((__force void *)dst, src, size); @@ -160,39 +190,47 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size) switch (size) { case 1: { u8 tmp; + __uaccess_begin(); __get_user_asm(tmp, (u8 __user *)src, ret, "b", "b", "=q", 1); if (likely(!ret)) __put_user_asm(tmp, (u8 __user *)dst, ret, "b", "b", "iq", 1); + __uaccess_end(); return ret; } case 2: { u16 tmp; + __uaccess_begin(); __get_user_asm(tmp, (u16 __user *)src, ret, "w", "w", "=r", 2); if (likely(!ret)) __put_user_asm(tmp, (u16 __user *)dst, ret, "w", "w", "ir", 2); + __uaccess_end(); return ret; } case 4: { u32 tmp; + __uaccess_begin(); __get_user_asm(tmp, (u32 __user *)src, ret, "l", "k", "=r", 4); if (likely(!ret)) __put_user_asm(tmp, (u32 __user *)dst, ret, "l", "k", "ir", 4); + __uaccess_end(); return ret; } case 8: { u64 tmp; + __uaccess_begin(); __get_user_asm(tmp, (u64 __user *)src, ret, "q", "", "=r", 8); if (likely(!ret)) __put_user_asm(tmp, (u64 __user *)dst, ret, "q", "", "er", 8); + __uaccess_end(); return ret; } default: From 01d8a48b509ef51f9d1a1bde9a18ae934e3ff064 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Tue, 23 Feb 2016 14:58:52 -0800 Subject: [PATCH 0224/1149] x86: fix SMAP in 32-bit environments commit de9e478b9d49f3a0214310d921450cf5bb4a21e6 upstream. In commit 11f1a4b9755f ("x86: reorganize SMAP handling in user space accesses") I changed how the stac/clac instructions were generated around the user space accesses, which then made it possible to do batched accesses efficiently for user string copies etc. However, in doing so, I completely spaced out, and didn't even think about the 32-bit case. And nobody really even seemed to notice, because SMAP doesn't even exist until modern Skylake processors, and you'd have to be crazy to run 32-bit kernels on a modern CPU. Which brings us to Andy Lutomirski. He actually tested the 32-bit kernel on new hardware, and noticed that it doesn't work. My bad. The trivial fix is to add the required uaccess begin/end markers around the raw accesses in . I feel a bit bad about this patch, just because that header file really should be cleaned up to avoid all the duplicated code in it, and this commit just expands on the problem. But this just fixes the bug without any bigger cleanup surgery. Reported-and-tested-by: Andy Lutomirski Signed-off-by: Linus Torvalds Signed-off-by: Ben Hutchings --- arch/x86/include/asm/uaccess_32.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/arch/x86/include/asm/uaccess_32.h b/arch/x86/include/asm/uaccess_32.h index f5dcb5204dcd..3fe0eac59462 100644 --- a/arch/x86/include/asm/uaccess_32.h +++ b/arch/x86/include/asm/uaccess_32.h @@ -48,20 +48,28 @@ __copy_to_user_inatomic(void __user *to, const void *from, unsigned long n) switch (n) { case 1: + __uaccess_begin(); __put_user_size(*(u8 *)from, (u8 __user *)to, 1, ret, 1); + __uaccess_end(); return ret; case 2: + __uaccess_begin(); __put_user_size(*(u16 *)from, (u16 __user *)to, 2, ret, 2); + __uaccess_end(); return ret; case 4: + __uaccess_begin(); __put_user_size(*(u32 *)from, (u32 __user *)to, 4, ret, 4); + __uaccess_end(); return ret; case 8: + __uaccess_begin(); __put_user_size(*(u64 *)from, (u64 __user *)to, 8, ret, 8); + __uaccess_end(); return ret; } } @@ -103,13 +111,19 @@ __copy_from_user_inatomic(void *to, const void __user *from, unsigned long n) switch (n) { case 1: + __uaccess_begin(); __get_user_size(*(u8 *)to, from, 1, ret, 1); + __uaccess_end(); return ret; case 2: + __uaccess_begin(); __get_user_size(*(u16 *)to, from, 2, ret, 2); + __uaccess_end(); return ret; case 4: + __uaccess_begin(); __get_user_size(*(u32 *)to, from, 4, ret, 4); + __uaccess_end(); return ret; } } @@ -148,13 +162,19 @@ __copy_from_user(void *to, const void __user *from, unsigned long n) switch (n) { case 1: + __uaccess_begin(); __get_user_size(*(u8 *)to, from, 1, ret, 1); + __uaccess_end(); return ret; case 2: + __uaccess_begin(); __get_user_size(*(u16 *)to, from, 2, ret, 2); + __uaccess_end(); return ret; case 4: + __uaccess_begin(); __get_user_size(*(u32 *)to, from, 4, ret, 4); + __uaccess_end(); return ret; } } @@ -170,13 +190,19 @@ static __always_inline unsigned long __copy_from_user_nocache(void *to, switch (n) { case 1: + __uaccess_begin(); __get_user_size(*(u8 *)to, from, 1, ret, 1); + __uaccess_end(); return ret; case 2: + __uaccess_begin(); __get_user_size(*(u16 *)to, from, 2, ret, 2); + __uaccess_end(); return ret; case 4: + __uaccess_begin(); __get_user_size(*(u32 *)to, from, 4, ret, 4); + __uaccess_end(); return ret; } } From 0d645567cbda8ac719b9215bd7d0bc0d87139671 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Mon, 29 Jan 2018 17:02:39 -0800 Subject: [PATCH 0225/1149] x86: Introduce __uaccess_begin_nospec() and uaccess_try_nospec commit b3bbfb3fb5d25776b8e3f361d2eedaabb0b496cd upstream. For __get_user() paths, do not allow the kernel to speculate on the value of a user controlled pointer. In addition to the 'stac' instruction for Supervisor Mode Access Protection (SMAP), a barrier_nospec() causes the access_ok() result to resolve in the pipeline before the CPU might take any speculative action on the pointer value. Given the cost of 'stac' the speculation barrier is placed after 'stac' to hopefully overlap the cost of disabling SMAP with the cost of flushing the instruction pipeline. Since __get_user is a major kernel interface that deals with user controlled pointers, the __uaccess_begin_nospec() mechanism will prevent speculative execution past an access_ok() permission check. While speculative execution past access_ok() is not enough to lead to a kernel memory leak, it is a necessary precondition. To be clear, __uaccess_begin_nospec() is addressing a class of potential problems near __get_user() usages. Note, that while the barrier_nospec() in __uaccess_begin_nospec() is used to protect __get_user(), pointer masking similar to array_index_nospec() will be used for get_user() since it incorporates a bounds check near the usage. uaccess_try_nospec provides the same mechanism for get_user_try. No functional changes. Suggested-by: Linus Torvalds Suggested-by: Andi Kleen Suggested-by: Ingo Molnar Signed-off-by: Dan Williams Signed-off-by: Thomas Gleixner Cc: linux-arch@vger.kernel.org Cc: Tom Lendacky Cc: Kees Cook Cc: kernel-hardening@lists.openwall.com Cc: gregkh@linuxfoundation.org Cc: Al Viro Cc: alan@linux.intel.com Link: https://lkml.kernel.org/r/151727415922.33451.5796614273104346583.stgit@dwillia2-desk3.amr.corp.intel.com [bwh: Backported to 4.4: use current_thread_info()] Signed-off-by: Ben Hutchings --- arch/x86/include/asm/uaccess.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h index e93a69f9a225..4b50bc52ea3e 100644 --- a/arch/x86/include/asm/uaccess.h +++ b/arch/x86/include/asm/uaccess.h @@ -146,6 +146,11 @@ extern int __get_user_bad(void); #define __uaccess_begin() stac() #define __uaccess_end() clac() +#define __uaccess_begin_nospec() \ +({ \ + stac(); \ + barrier_nospec(); \ +}) /* * This is a type: either unsigned long, if the argument fits into @@ -473,6 +478,10 @@ struct __large_struct { unsigned long buf[100]; }; __uaccess_begin(); \ barrier(); +#define uaccess_try_nospec do { \ + current_thread_info()->uaccess_err = 0; \ + __uaccess_begin_nospec(); \ + #define uaccess_catch(err) \ __uaccess_end(); \ (err) |= (current_thread_info()->uaccess_err ? -EFAULT : 0); \ From dd1b4fd546729b729d76f9eb24364764ee75c4d4 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Mon, 29 Jan 2018 17:02:44 -0800 Subject: [PATCH 0226/1149] x86/usercopy: Replace open coded stac/clac with __uaccess_{begin, end} commit b5c4ae4f35325d520b230bab6eb3310613b72ac1 upstream. In preparation for converting some __uaccess_begin() instances to __uacess_begin_nospec(), make sure all 'from user' uaccess paths are using the _begin(), _end() helpers rather than open-coded stac() and clac(). No functional changes. Suggested-by: Ingo Molnar Signed-off-by: Dan Williams Signed-off-by: Thomas Gleixner Cc: linux-arch@vger.kernel.org Cc: Tom Lendacky Cc: Kees Cook Cc: kernel-hardening@lists.openwall.com Cc: gregkh@linuxfoundation.org Cc: Al Viro Cc: torvalds@linux-foundation.org Cc: alan@linux.intel.com Link: https://lkml.kernel.org/r/151727416438.33451.17309465232057176966.stgit@dwillia2-desk3.amr.corp.intel.com Signed-off-by: Ben Hutchings --- arch/x86/lib/usercopy_32.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/x86/lib/usercopy_32.c b/arch/x86/lib/usercopy_32.c index 91d93b95bd86..891bec2a0de5 100644 --- a/arch/x86/lib/usercopy_32.c +++ b/arch/x86/lib/usercopy_32.c @@ -570,12 +570,12 @@ do { \ unsigned long __copy_to_user_ll(void __user *to, const void *from, unsigned long n) { - stac(); + __uaccess_begin(); if (movsl_is_ok(to, from, n)) __copy_user(to, from, n); else n = __copy_user_intel(to, from, n); - clac(); + __uaccess_end(); return n; } EXPORT_SYMBOL(__copy_to_user_ll); @@ -627,7 +627,7 @@ EXPORT_SYMBOL(__copy_from_user_ll_nocache); unsigned long __copy_from_user_ll_nocache_nozero(void *to, const void __user *from, unsigned long n) { - stac(); + __uaccess_begin(); #ifdef CONFIG_X86_INTEL_USERCOPY if (n > 64 && cpu_has_xmm2) n = __copy_user_intel_nocache(to, from, n); @@ -636,7 +636,7 @@ unsigned long __copy_from_user_ll_nocache_nozero(void *to, const void __user *fr #else __copy_user(to, from, n); #endif - clac(); + __uaccess_end(); return n; } EXPORT_SYMBOL(__copy_from_user_ll_nocache_nozero); From 351055728e4dfc72ac1d543e93c2713988e09311 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Mon, 29 Jan 2018 17:02:49 -0800 Subject: [PATCH 0227/1149] x86/uaccess: Use __uaccess_begin_nospec() and uaccess_try_nospec commit 304ec1b050310548db33063e567123fae8fd0301 upstream. Quoting Linus: I do think that it would be a good idea to very expressly document the fact that it's not that the user access itself is unsafe. I do agree that things like "get_user()" want to be protected, but not because of any direct bugs or problems with get_user() and friends, but simply because get_user() is an excellent source of a pointer that is obviously controlled from a potentially attacking user space. So it's a prime candidate for then finding _subsequent_ accesses that can then be used to perturb the cache. __uaccess_begin_nospec() covers __get_user() and copy_from_iter() where the limit check is far away from the user pointer de-reference. In those cases a barrier_nospec() prevents speculation with a potential pointer to privileged memory. uaccess_try_nospec covers get_user_try. Suggested-by: Linus Torvalds Suggested-by: Andi Kleen Signed-off-by: Dan Williams Signed-off-by: Thomas Gleixner Cc: linux-arch@vger.kernel.org Cc: Kees Cook Cc: kernel-hardening@lists.openwall.com Cc: gregkh@linuxfoundation.org Cc: Al Viro Cc: alan@linux.intel.com Link: https://lkml.kernel.org/r/151727416953.33451.10508284228526170604.stgit@dwillia2-desk3.amr.corp.intel.com [bwh: Backported to 4.4: - Convert several more functions to use __uaccess_begin_nospec(), that are just wrappers in mainline - Adjust context] Signed-off-by: Ben Hutchings --- arch/x86/include/asm/uaccess.h | 6 +++--- arch/x86/include/asm/uaccess_32.h | 26 +++++++++++++------------- arch/x86/include/asm/uaccess_64.h | 20 ++++++++++---------- arch/x86/lib/usercopy_32.c | 4 ++-- 4 files changed, 28 insertions(+), 28 deletions(-) diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h index 4b50bc52ea3e..6f8eadf0681f 100644 --- a/arch/x86/include/asm/uaccess.h +++ b/arch/x86/include/asm/uaccess.h @@ -436,7 +436,7 @@ do { \ ({ \ int __gu_err; \ unsigned long __gu_val; \ - __uaccess_begin(); \ + __uaccess_begin_nospec(); \ __get_user_size(__gu_val, (ptr), (size), __gu_err, -EFAULT); \ __uaccess_end(); \ (x) = (__force __typeof__(*(ptr)))__gu_val; \ @@ -546,7 +546,7 @@ struct __large_struct { unsigned long buf[100]; }; * get_user_ex(...); * } get_user_catch(err) */ -#define get_user_try uaccess_try +#define get_user_try uaccess_try_nospec #define get_user_catch(err) uaccess_catch(err) #define get_user_ex(x, ptr) do { \ @@ -581,7 +581,7 @@ extern void __cmpxchg_wrong_size(void) __typeof__(ptr) __uval = (uval); \ __typeof__(*(ptr)) __old = (old); \ __typeof__(*(ptr)) __new = (new); \ - __uaccess_begin(); \ + __uaccess_begin_nospec(); \ switch (size) { \ case 1: \ { \ diff --git a/arch/x86/include/asm/uaccess_32.h b/arch/x86/include/asm/uaccess_32.h index 3fe0eac59462..f575ee3aea5c 100644 --- a/arch/x86/include/asm/uaccess_32.h +++ b/arch/x86/include/asm/uaccess_32.h @@ -48,25 +48,25 @@ __copy_to_user_inatomic(void __user *to, const void *from, unsigned long n) switch (n) { case 1: - __uaccess_begin(); + __uaccess_begin_nospec(); __put_user_size(*(u8 *)from, (u8 __user *)to, 1, ret, 1); __uaccess_end(); return ret; case 2: - __uaccess_begin(); + __uaccess_begin_nospec(); __put_user_size(*(u16 *)from, (u16 __user *)to, 2, ret, 2); __uaccess_end(); return ret; case 4: - __uaccess_begin(); + __uaccess_begin_nospec(); __put_user_size(*(u32 *)from, (u32 __user *)to, 4, ret, 4); __uaccess_end(); return ret; case 8: - __uaccess_begin(); + __uaccess_begin_nospec(); __put_user_size(*(u64 *)from, (u64 __user *)to, 8, ret, 8); __uaccess_end(); @@ -111,17 +111,17 @@ __copy_from_user_inatomic(void *to, const void __user *from, unsigned long n) switch (n) { case 1: - __uaccess_begin(); + __uaccess_begin_nospec(); __get_user_size(*(u8 *)to, from, 1, ret, 1); __uaccess_end(); return ret; case 2: - __uaccess_begin(); + __uaccess_begin_nospec(); __get_user_size(*(u16 *)to, from, 2, ret, 2); __uaccess_end(); return ret; case 4: - __uaccess_begin(); + __uaccess_begin_nospec(); __get_user_size(*(u32 *)to, from, 4, ret, 4); __uaccess_end(); return ret; @@ -162,17 +162,17 @@ __copy_from_user(void *to, const void __user *from, unsigned long n) switch (n) { case 1: - __uaccess_begin(); + __uaccess_begin_nospec(); __get_user_size(*(u8 *)to, from, 1, ret, 1); __uaccess_end(); return ret; case 2: - __uaccess_begin(); + __uaccess_begin_nospec(); __get_user_size(*(u16 *)to, from, 2, ret, 2); __uaccess_end(); return ret; case 4: - __uaccess_begin(); + __uaccess_begin_nospec(); __get_user_size(*(u32 *)to, from, 4, ret, 4); __uaccess_end(); return ret; @@ -190,17 +190,17 @@ static __always_inline unsigned long __copy_from_user_nocache(void *to, switch (n) { case 1: - __uaccess_begin(); + __uaccess_begin_nospec(); __get_user_size(*(u8 *)to, from, 1, ret, 1); __uaccess_end(); return ret; case 2: - __uaccess_begin(); + __uaccess_begin_nospec(); __get_user_size(*(u16 *)to, from, 2, ret, 2); __uaccess_end(); return ret; case 4: - __uaccess_begin(); + __uaccess_begin_nospec(); __get_user_size(*(u32 *)to, from, 4, ret, 4); __uaccess_end(); return ret; diff --git a/arch/x86/include/asm/uaccess_64.h b/arch/x86/include/asm/uaccess_64.h index b89c34c4019b..7e3f50abfab9 100644 --- a/arch/x86/include/asm/uaccess_64.h +++ b/arch/x86/include/asm/uaccess_64.h @@ -57,31 +57,31 @@ int __copy_from_user_nocheck(void *dst, const void __user *src, unsigned size) return copy_user_generic(dst, (__force void *)src, size); switch (size) { case 1: - __uaccess_begin(); + __uaccess_begin_nospec(); __get_user_asm(*(u8 *)dst, (u8 __user *)src, ret, "b", "b", "=q", 1); __uaccess_end(); return ret; case 2: - __uaccess_begin(); + __uaccess_begin_nospec(); __get_user_asm(*(u16 *)dst, (u16 __user *)src, ret, "w", "w", "=r", 2); __uaccess_end(); return ret; case 4: - __uaccess_begin(); + __uaccess_begin_nospec(); __get_user_asm(*(u32 *)dst, (u32 __user *)src, ret, "l", "k", "=r", 4); __uaccess_end(); return ret; case 8: - __uaccess_begin(); + __uaccess_begin_nospec(); __get_user_asm(*(u64 *)dst, (u64 __user *)src, ret, "q", "", "=r", 8); __uaccess_end(); return ret; case 10: - __uaccess_begin(); + __uaccess_begin_nospec(); __get_user_asm(*(u64 *)dst, (u64 __user *)src, ret, "q", "", "=r", 10); if (likely(!ret)) @@ -91,7 +91,7 @@ int __copy_from_user_nocheck(void *dst, const void __user *src, unsigned size) __uaccess_end(); return ret; case 16: - __uaccess_begin(); + __uaccess_begin_nospec(); __get_user_asm(*(u64 *)dst, (u64 __user *)src, ret, "q", "", "=r", 16); if (likely(!ret)) @@ -190,7 +190,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size) switch (size) { case 1: { u8 tmp; - __uaccess_begin(); + __uaccess_begin_nospec(); __get_user_asm(tmp, (u8 __user *)src, ret, "b", "b", "=q", 1); if (likely(!ret)) @@ -201,7 +201,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size) } case 2: { u16 tmp; - __uaccess_begin(); + __uaccess_begin_nospec(); __get_user_asm(tmp, (u16 __user *)src, ret, "w", "w", "=r", 2); if (likely(!ret)) @@ -213,7 +213,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size) case 4: { u32 tmp; - __uaccess_begin(); + __uaccess_begin_nospec(); __get_user_asm(tmp, (u32 __user *)src, ret, "l", "k", "=r", 4); if (likely(!ret)) @@ -224,7 +224,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size) } case 8: { u64 tmp; - __uaccess_begin(); + __uaccess_begin_nospec(); __get_user_asm(tmp, (u64 __user *)src, ret, "q", "", "=r", 8); if (likely(!ret)) diff --git a/arch/x86/lib/usercopy_32.c b/arch/x86/lib/usercopy_32.c index 891bec2a0de5..d2006fa3a367 100644 --- a/arch/x86/lib/usercopy_32.c +++ b/arch/x86/lib/usercopy_32.c @@ -570,7 +570,7 @@ do { \ unsigned long __copy_to_user_ll(void __user *to, const void *from, unsigned long n) { - __uaccess_begin(); + __uaccess_begin_nospec(); if (movsl_is_ok(to, from, n)) __copy_user(to, from, n); else @@ -627,7 +627,7 @@ EXPORT_SYMBOL(__copy_from_user_ll_nocache); unsigned long __copy_from_user_ll_nocache_nozero(void *to, const void __user *from, unsigned long n) { - __uaccess_begin(); + __uaccess_begin_nospec(); #ifdef CONFIG_X86_INTEL_USERCOPY if (n > 64 && cpu_has_xmm2) n = __copy_user_intel_nocache(to, from, n); From 2524e54aaf511a4bf4dbd39265546bae506c27c7 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 8 Mar 2018 19:55:03 +0000 Subject: [PATCH 0228/1149] CIP: Bump version suffix to -cip20 after merge from stable ...plus fixes for regressions, and missing pieces. Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index fdb4a99b989f..fdbd1ce014a8 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip19 +-cip20 From 6226cbee32e900ee378427ed2e9bdaec8ec8e601 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 4 Apr 2018 17:24:44 +0200 Subject: [PATCH 0229/1149] Revert "PCI/MSI: Stop disabling MSI/MSI-X in pci_device_shutdown()" This reverts commit 4fbe422076d36615ec6fe8648d1aecfa460bc67d which was commit fda78d7a0ead144f4b2cdb582dcba47911f4952c upstream. The dependancy tree is just too messy here, just drop it from this kernel as it's not really needed here. Reported-by: Ben Hutchings Cc: Prarit Bhargava Cc: Bjorn Helgaas Cc: Alex Williamson Cc: David Arcari Cc: Myron Stowe Cc: Lukas Wunner Cc: Keith Busch Cc: Mika Westerberg Cc: Sasha Levin Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- drivers/pci/pci-driver.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c index 5e42b5f2f565..32bd8ab79d53 100644 --- a/drivers/pci/pci-driver.c +++ b/drivers/pci/pci-driver.c @@ -463,6 +463,8 @@ static void pci_device_shutdown(struct device *dev) if (drv && drv->shutdown) drv->shutdown(pci_dev); + pci_msi_shutdown(pci_dev); + pci_msix_shutdown(pci_dev); #ifdef CONFIG_KEXEC_CORE /* From aec96ccae15fc5b386ef68bcc2e0764f5a3305c9 Mon Sep 17 00:00:00 2001 From: Masami Hiramatsu Date: Thu, 25 May 2017 19:38:17 +0900 Subject: [PATCH 0230/1149] kprobes/x86: Fix to set RWX bits correctly before releasing trampoline commit c93f5cf571e7795f97d49ef51b766cf25e328545 upstream. Fix kprobes to set(recover) RWX bits correctly on trampoline buffer before releasing it. Releasing readonly page to module_memfree() crash the kernel. Without this fix, if kprobes user register a bunch of kprobes in function body (since kprobes on function entry usually use ftrace) and unregister it, kernel hits a BUG and crash. Link: http://lkml.kernel.org/r/149570868652.3518.14120169373590420503.stgit@devbox Signed-off-by: Masami Hiramatsu Fixes: d0381c81c2f7 ("kprobes/x86: Set kprobes pages read-only") Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Ben Hutchings --- arch/x86/kernel/kprobes/core.c | 9 +++++++++ kernel/kprobes.c | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/arch/x86/kernel/kprobes/core.c b/arch/x86/kernel/kprobes/core.c index 565e24e9ddf2..df9be5b91270 100644 --- a/arch/x86/kernel/kprobes/core.c +++ b/arch/x86/kernel/kprobes/core.c @@ -49,6 +49,7 @@ #include #include #include +#include #include #include @@ -402,6 +403,14 @@ int __copy_instruction(u8 *dest, u8 *src) return length; } +/* Recover page to RW mode before releasing it */ +void free_insn_page(void *page) +{ + set_memory_nx((unsigned long)page & PAGE_MASK, 1); + set_memory_rw((unsigned long)page & PAGE_MASK, 1); + module_memfree(page); +} + static int arch_copy_kprobe(struct kprobe *p) { int ret; diff --git a/kernel/kprobes.c b/kernel/kprobes.c index 695763516908..bbe9dd0886bd 100644 --- a/kernel/kprobes.c +++ b/kernel/kprobes.c @@ -125,7 +125,7 @@ static void *alloc_insn_page(void) return module_alloc(PAGE_SIZE); } -static void free_insn_page(void *page) +void __weak free_insn_page(void *page) { module_memfree(page); } From c7c3dd7d7ad53df839af59cc6d4b6c6cd9f4043d Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 6 Apr 2018 08:46:40 +0200 Subject: [PATCH 0231/1149] Revert "ARM: dts: am335x-pepper: Fix the audio CODEC's reset pin" This reverts commit 59df934af72fe74a64be6a0d8dba21375a5482bc which was comit e153db03c6b7a035c797bcdf35262586f003ee93 upstream. It requires a driver that was not merged until 4.16, so remove it from this stable tree as it is pointless. Reported-by: Ben Hutchings Cc: Andrew F. Davis Cc: Tony Lindgren Cc: Sasha Levin Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/am335x-pepper.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/am335x-pepper.dts b/arch/arm/boot/dts/am335x-pepper.dts index 2dbe13a3d89b..7106114c7464 100644 --- a/arch/arm/boot/dts/am335x-pepper.dts +++ b/arch/arm/boot/dts/am335x-pepper.dts @@ -139,7 +139,7 @@ &audio_codec { status = "okay"; - reset-gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; + gpio-reset = <&gpio1 16 GPIO_ACTIVE_LOW>; AVDD-supply = <&ldo3_reg>; IOVDD-supply = <&ldo3_reg>; DRVDD-supply = <&ldo3_reg>; From 45b50e66608b2f3cda8d6a6036bbd3555b330471 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 6 Apr 2018 08:57:11 +0200 Subject: [PATCH 0232/1149] Revert "ARM: dts: omap3-n900: Fix the audio CODEC's reset pin" This reverts commit ffa0a8252863189f0bc92d46c34588df3699f8f8 which was commit 7be4b5dc7ffa9499ac6ef33a5ffa9ff43f9b7057 upstream. It requires a driver that was not merged until 4.16, so remove it from this stable tree as it is pointless. Reported-by: Ben Hutchings Cc: Andrew F. Davis Cc: Tony Lindgren Cc: Sasha Levin Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/omap3-n900.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts index 731860314ab5..27cd4abfc74d 100644 --- a/arch/arm/boot/dts/omap3-n900.dts +++ b/arch/arm/boot/dts/omap3-n900.dts @@ -488,7 +488,7 @@ tlv320aic3x: tlv320aic3x@18 { compatible = "ti,tlv320aic3x"; reg = <0x18>; - reset-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; /* 60 */ + gpio-reset = <&gpio2 28 GPIO_ACTIVE_HIGH>; /* 60 */ ai3x-gpio-func = < 0 /* AIC3X_GPIO1_FUNC_DISABLED */ 5 /* AIC3X_GPIO2_FUNC_DIGITAL_MIC_INPUT */ @@ -505,7 +505,7 @@ tlv320aic3x_aux: tlv320aic3x@19 { compatible = "ti,tlv320aic3x"; reg = <0x19>; - reset-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; /* 60 */ + gpio-reset = <&gpio2 28 GPIO_ACTIVE_HIGH>; /* 60 */ AVDD-supply = <&vmmc2>; DRVDD-supply = <&vmmc2>; From 41c2ff089ca5ed07f77d691a1de0a395e98be42e Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 6 Apr 2018 09:04:23 +0200 Subject: [PATCH 0233/1149] Revert "cpufreq: Fix governor module removal race" This reverts commit 3f7dfb7fcf98a7e73dee018c4a68537ce7fec646 which was commit a8b149d32b663c1a4105273295184b78f53d33cf upstream. The backport was not correct, so just drop it entirely. Reported-by: Ben Hutchings Cc: Rafael J. Wysocki Cc: Viresh Kumar Cc: Sasha Levin Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- drivers/cpufreq/cpufreq.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index c0fb6f12f547..ebed319657e7 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c @@ -551,8 +551,6 @@ static int cpufreq_parse_governor(char *str_governor, unsigned int *policy, *governor = t; err = 0; } - if (t && !try_module_get(t->owner)) - t = NULL; mutex_unlock(&cpufreq_governor_mutex); } @@ -671,10 +669,6 @@ static ssize_t store_scaling_governor(struct cpufreq_policy *policy, return -EINVAL; ret = cpufreq_set_policy(policy, &new_policy); - - if (new_policy.governor) - module_put(new_policy.governor->owner); - return ret ? ret : count; } From ddc601f5aa5391ebddfdaa3f7e628275f8c9050b Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 6 Apr 2018 09:27:10 +0200 Subject: [PATCH 0234/1149] Revert "mtip32xx: use runtime tag to initialize command header" This reverts commit 9bf9e352ed51d4cdee107675609ba12b42d00c5b which was commit a4e84aae8139aca9fbfbced1f45c51ca81b57488 upstream. Ben writes: MQ IO schedulers were introduced in 4.11, so this shouldn't be needed in older branches. It also causes a performance regression (fixed upstream). Please revert this for 4.4 and 4.9. So let's revert it! Reported-by: Ben Hutchings Cc: Ming Lei Cc: Jens Axboe Cc: Sasha Levin Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- drivers/block/mtip32xx/mtip32xx.c | 36 +++++++++++-------------------- 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/drivers/block/mtip32xx/mtip32xx.c b/drivers/block/mtip32xx/mtip32xx.c index 9ba89315dae1..55d3d1da72de 100644 --- a/drivers/block/mtip32xx/mtip32xx.c +++ b/drivers/block/mtip32xx/mtip32xx.c @@ -169,25 +169,6 @@ static bool mtip_check_surprise_removal(struct pci_dev *pdev) return false; /* device present */ } -/* we have to use runtime tag to setup command header */ -static void mtip_init_cmd_header(struct request *rq) -{ - struct driver_data *dd = rq->q->queuedata; - struct mtip_cmd *cmd = blk_mq_rq_to_pdu(rq); - u32 host_cap_64 = readl(dd->mmio + HOST_CAP) & HOST_CAP_64; - - /* Point the command headers at the command tables. */ - cmd->command_header = dd->port->command_list + - (sizeof(struct mtip_cmd_hdr) * rq->tag); - cmd->command_header_dma = dd->port->command_list_dma + - (sizeof(struct mtip_cmd_hdr) * rq->tag); - - if (host_cap_64) - cmd->command_header->ctbau = __force_bit2int cpu_to_le32((cmd->command_dma >> 16) >> 16); - - cmd->command_header->ctba = __force_bit2int cpu_to_le32(cmd->command_dma & 0xFFFFFFFF); -} - static struct mtip_cmd *mtip_get_int_command(struct driver_data *dd) { struct request *rq; @@ -199,9 +180,6 @@ static struct mtip_cmd *mtip_get_int_command(struct driver_data *dd) if (IS_ERR(rq)) return NULL; - /* Internal cmd isn't submitted via .queue_rq */ - mtip_init_cmd_header(rq); - return blk_mq_rq_to_pdu(rq); } @@ -3840,8 +3818,6 @@ static int mtip_queue_rq(struct blk_mq_hw_ctx *hctx, struct request *rq = bd->rq; int ret; - mtip_init_cmd_header(rq); - if (unlikely(mtip_check_unal_depth(hctx, rq))) return BLK_MQ_RQ_QUEUE_BUSY; @@ -3873,6 +3849,7 @@ static int mtip_init_cmd(void *data, struct request *rq, unsigned int hctx_idx, { struct driver_data *dd = data; struct mtip_cmd *cmd = blk_mq_rq_to_pdu(rq); + u32 host_cap_64 = readl(dd->mmio + HOST_CAP) & HOST_CAP_64; /* * For flush requests, request_idx starts at the end of the @@ -3889,6 +3866,17 @@ static int mtip_init_cmd(void *data, struct request *rq, unsigned int hctx_idx, memset(cmd->command, 0, CMD_DMA_ALLOC_SZ); + /* Point the command headers at the command tables. */ + cmd->command_header = dd->port->command_list + + (sizeof(struct mtip_cmd_hdr) * request_idx); + cmd->command_header_dma = dd->port->command_list_dma + + (sizeof(struct mtip_cmd_hdr) * request_idx); + + if (host_cap_64) + cmd->command_header->ctbau = __force_bit2int cpu_to_le32((cmd->command_dma >> 16) >> 16); + + cmd->command_header->ctba = __force_bit2int cpu_to_le32(cmd->command_dma & 0xFFFFFFFF); + sg_init_table(cmd->sg, MTIP_MAX_SG); return 0; } From 03df359c3c8e2f1565bc7492bebe0aefdad9027b Mon Sep 17 00:00:00 2001 From: Guoqing Jiang Date: Thu, 6 Apr 2017 09:12:18 +0800 Subject: [PATCH 0235/1149] md/raid10: reset the 'first' at the end of loop commit 6f287ca6046edd34ed83aafb7f9033c9c2e809e2 upstream. We need to set "first = 0' at the end of rdev_for_each loop, so we can get the array's min_offset_diff correctly otherwise min_offset_diff just means the last rdev's offset diff. [only the first chunk, due to b506335e5d2b ("md/raid10: skip spare disk as 'first' disk") being already applied - gregkh] Suggested-by: NeilBrown Signed-off-by: Guoqing Jiang Reviewed-by: NeilBrown Signed-off-by: Shaohua Li Cc: Ben Hutchings Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- drivers/md/raid10.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index 3a0d557146c7..bf0410403a6f 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c @@ -3638,6 +3638,7 @@ static int run(struct mddev *mddev) if (blk_queue_discard(bdev_get_queue(rdev->bdev))) discard_supported = true; + first = 0; } if (mddev->queue) { From dcaeda97e6f5a96c9d56dffa776ee2c746548c4e Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 6 Apr 2018 09:42:53 +0200 Subject: [PATCH 0236/1149] Revert "ip6_vti: adjust vti mtu according to mtu of lower device" This reverts commit 2fe832c678189d6b19b5ff282e7e70df79c1406b which is commit 53c81e95df1793933f87748d36070a721f6cb287 upstream. Ben writes that there are a number of follow-on patches needed to fix this up, but they get complex to backport, and some custom fixes are needed, so let's just revert this and wait for a "real" set of patches to resolve this to be submitted if it is really needed. Reported-by: Ben Hutchings Cc: Petr Vorel Cc: Alexey Kodanev Cc: David S. Miller Cc: Stefano Brivio Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- net/ipv6/ip6_vti.c | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/net/ipv6/ip6_vti.c b/net/ipv6/ip6_vti.c index e4b0fb2f06a3..d7105422bc63 100644 --- a/net/ipv6/ip6_vti.c +++ b/net/ipv6/ip6_vti.c @@ -614,7 +614,6 @@ static void vti6_link_config(struct ip6_tnl *t) { struct net_device *dev = t->dev; struct __ip6_tnl_parm *p = &t->parms; - struct net_device *tdev = NULL; memcpy(dev->dev_addr, &p->laddr, sizeof(struct in6_addr)); memcpy(dev->broadcast, &p->raddr, sizeof(struct in6_addr)); @@ -627,25 +626,6 @@ static void vti6_link_config(struct ip6_tnl *t) dev->flags |= IFF_POINTOPOINT; else dev->flags &= ~IFF_POINTOPOINT; - - if (p->flags & IP6_TNL_F_CAP_XMIT) { - int strict = (ipv6_addr_type(&p->raddr) & - (IPV6_ADDR_MULTICAST | IPV6_ADDR_LINKLOCAL)); - struct rt6_info *rt = rt6_lookup(t->net, - &p->raddr, &p->laddr, - p->link, strict); - - if (rt) - tdev = rt->dst.dev; - ip6_rt_put(rt); - } - - if (!tdev && p->link) - tdev = __dev_get_by_index(t->net, p->link); - - if (tdev) - dev->mtu = max_t(int, tdev->mtu - dev->hard_header_len, - IPV6_MIN_MTU); } /** From d61c71d897837c7bdf6ac64277e33a12e5407bca Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Tue, 10 Apr 2018 16:30:17 +0100 Subject: [PATCH 0237/1149] CIP: Bump version suffix to -cip21 after merge from stable ...plus fixes for regressions, and missing pieces. Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index fdbd1ce014a8..b7919e72719f 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip20 +-cip21 From 42f238dafdb19036fe7275d24ccd47a476db2ea6 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Mon, 5 Mar 2018 11:01:57 +0000 Subject: [PATCH 0238/1149] serial: sh-sci: Update DT binding documentation for GPIO modem lines Amend the DT bindings for the Renesas SCI driver to allow describing optional GPIO-controlled modem lines, which can be used where dedicated modem lines are not available. The property naming is dictated by the Generic Serial DT Bindings. Signed-off-by: Geert Uytterhoeven Acked-by: Rob Herring Cc: devicetree@vger.kernel.org Signed-off-by: Greg Kroah-Hartman (cherry picked from commit 0c529b3fc6c66e618088aa3a998d760d1ad05272) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/serial/renesas,sci-serial.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt index cbcfdc07fd89..e0fd7eeb7589 100644 --- a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt +++ b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt @@ -59,6 +59,8 @@ Optional properties: - dmas: Must contain a list of two references to DMA specifiers, one for transmission, and one for reception. - dma-names: Must contain a list of two DMA names, "tx" and "rx". + - {cts,dsr,dcd,rng,rts,dtr}-gpios: Specify GPIOs for modem lines, cfr. the + generic serial DT bindings in serial.txt. Example: aliases { From aefadfb2388fafee37a01077091e0e8727318f6c Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Mon, 5 Mar 2018 11:01:58 +0000 Subject: [PATCH 0239/1149] serial: sh-sci: Update DT binding documentation for dedicated RTS/CTS Some Renesas SCIF UARTs have dedicated lines for RTS/CTS hardware flow control. Whether these lines exist depends on SoC and UART instance inside the SoC. Whether these lines can be used for hardware flow control depends on board wiring. Amend the DT bindings with an optional property to indicate that RTS/CTS hardware flow control lines exist, and can be used as such, according to the Generic Serial DT Bindings. Signed-off-by: Geert Uytterhoeven Acked-by: Rob Herring Cc: devicetree@vger.kernel.org Signed-off-by: Greg Kroah-Hartman (cherry picked from commit b0405dc998e425bbb1f64488b6fda781b627056b) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/serial/renesas,sci-serial.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt index e0fd7eeb7589..211f193fff2b 100644 --- a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt +++ b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt @@ -61,6 +61,8 @@ Optional properties: - dma-names: Must contain a list of two DMA names, "tx" and "rx". - {cts,dsr,dcd,rng,rts,dtr}-gpios: Specify GPIOs for modem lines, cfr. the generic serial DT bindings in serial.txt. + - uart-has-rtscts: Indicates dedicated lines for RTS/CTS hardware flow + control, cfr. the generic serial DT bindings in serial.txt. Example: aliases { From 386e3d68831ed4a20a76525ba861f44c0b6c545c Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Mon, 5 Mar 2018 11:01:59 +0000 Subject: [PATCH 0240/1149] serial: sh-sci: Always set TIOCM_CTS in .get_mctrl() callback Documentation/serial/driver clearly states: If the port does not support CTS, DCD or DSR, the driver should indicate that the signal is permanently active. Hence always set TIOCM_CTS, as we currently don't look at the CTS hardware line state at all. FWIW, this fixes the transmit path when hardware-assisted flow control is enabled, and userspace enables CRTSCTS. The receive path is still broken, as RTS is never asserted. Signed-off-by: Geert Uytterhoeven Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman (cherry picked from commit 71e98e0e2aede08d6e0a0f3d94ea28b591ef4306) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/tty/serial/sh-sci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c index fc7711c75b01..2d7ef5b9e076 100644 --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c @@ -1758,9 +1758,9 @@ static unsigned int sci_get_mctrl(struct uart_port *port) { /* * CTS/RTS is handled in hardware when supported, while nothing - * else is wired up. Keep it simple and simply assert DSR/CAR. + * else is wired up. Keep it simple and simply assert CTS/DSR/CAR. */ - return TIOCM_DSR | TIOCM_CAR; + return TIOCM_CTS | TIOCM_DSR | TIOCM_CAR; } static void sci_break_ctl(struct uart_port *port, int break_state) From 8bac17a7f5105b8b036465cdd71e3ea0a6bdc1c5 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Mon, 5 Mar 2018 11:02:00 +0000 Subject: [PATCH 0241/1149] serial: sh-sci: Add support for GPIO-controlled modem lines Enhance the Renesas SCI UART driver to add support for GPIO-controlled modem lines (CTS, DSR, DCD, RNG, RTS, DTR), using the serial_mctrl_gpio helpers. GPIO-controlled modem lines can be used when dedicated modem lines are not available. Invalid configurations specifying both GPIO RTS/CTS and dedicated RTS/CTS are rejected. Signed-off-by: Geert Uytterhoeven Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman (cherry picked from commit f907c9ea88355ac9fe065ffbd6acc914408b4232) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/tty/serial/Kconfig | 1 + drivers/tty/serial/sh-sci.c | 46 ++++++++++++++++++++++++++++++++++++- 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig index f38beb28e7ae..05a2b2ce822d 100644 --- a/drivers/tty/serial/Kconfig +++ b/drivers/tty/serial/Kconfig @@ -731,6 +731,7 @@ config SERIAL_SH_SCI tristate "SuperH SCI(F) serial port support" depends on SUPERH || ARCH_SHMOBILE || H8300 || COMPILE_TEST select SERIAL_CORE + select SERIAL_MCTRL_GPIO if GPIOLIB config SERIAL_SH_SCI_NR_UARTS int "Maximum number of SCI(F) serial ports" diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c index 2d7ef5b9e076..a82e014dc23e 100644 --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c @@ -56,6 +56,7 @@ #include #endif +#include "serial_mctrl_gpio.h" #include "sh-sci.h" /* Offsets into the sci_port->irqs array */ @@ -86,6 +87,7 @@ struct sci_port { unsigned int error_clear; unsigned int sampling_rate; resource_size_t reg_size; + struct mctrl_gpios *gpios; /* Break timer */ struct timer_list break_timer; @@ -1740,6 +1742,8 @@ static unsigned int sci_tx_empty(struct uart_port *port) */ static void sci_set_mctrl(struct uart_port *port, unsigned int mctrl) { + struct sci_port *s = to_sci_port(port); + if (mctrl & TIOCM_LOOP) { const struct plat_sci_reg *reg; @@ -1752,15 +1756,35 @@ static void sci_set_mctrl(struct uart_port *port, unsigned int mctrl) serial_port_in(port, SCFCR) | SCFCR_LOOP); } + + mctrl_gpio_set(s->gpios, mctrl); } static unsigned int sci_get_mctrl(struct uart_port *port) { + struct sci_port *s = to_sci_port(port); + struct mctrl_gpios *gpios = s->gpios; + unsigned int mctrl = 0; + + mctrl_gpio_get(gpios, &mctrl); + /* * CTS/RTS is handled in hardware when supported, while nothing * else is wired up. Keep it simple and simply assert CTS/DSR/CAR. */ - return TIOCM_CTS | TIOCM_DSR | TIOCM_CAR; + if (IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(gpios, UART_GPIO_CTS))) + mctrl |= TIOCM_CTS; + if (IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(gpios, UART_GPIO_DSR))) + mctrl |= TIOCM_DSR; + if (IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(gpios, UART_GPIO_DCD))) + mctrl |= TIOCM_CAR; + + return mctrl; +} + +static void sci_enable_ms(struct uart_port *port) +{ + mctrl_gpio_enable_ms(to_sci_port(port)->gpios); } static void sci_break_ctl(struct uart_port *port, int break_state) @@ -1824,6 +1848,8 @@ static void sci_shutdown(struct uart_port *port) dev_dbg(port->dev, "%s(%d)\n", __func__, port->line); + mctrl_gpio_disable_ms(to_sci_port(port)->gpios); + spin_lock_irqsave(&port->lock, flags); sci_stop_rx(port); sci_stop_tx(port); @@ -2077,6 +2103,9 @@ static void sci_set_termios(struct uart_port *port, struct ktermios *termios, sci_start_rx(port); sci_port_disable(s); + + if (UART_ENABLE_MS(port, termios->c_cflag)) + sci_enable_ms(port); } static void sci_pm(struct uart_port *port, unsigned int state, @@ -2202,6 +2231,7 @@ static struct uart_ops sci_uart_ops = { .start_tx = sci_start_tx, .stop_tx = sci_stop_tx, .stop_rx = sci_stop_rx, + .enable_ms = sci_enable_ms, .break_ctl = sci_break_ctl, .startup = sci_startup, .shutdown = sci_shutdown, @@ -2643,6 +2673,20 @@ static int sci_probe_single(struct platform_device *dev, if (ret) return ret; + sciport->gpios = mctrl_gpio_init(&sciport->port, 0); + if (IS_ERR(sciport->gpios) && PTR_ERR(sciport->gpios) != -ENOSYS) + return PTR_ERR(sciport->gpios); + + if (p->capabilities & SCIx_HAVE_RTSCTS) { + if (!IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(sciport->gpios, + UART_GPIO_CTS)) || + !IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(sciport->gpios, + UART_GPIO_RTS))) { + dev_err(&dev->dev, "Conflicting RTS/CTS config\n"); + return -EINVAL; + } + } + ret = uart_add_one_port(&sci_uart_driver, &sciport->port); if (ret) { sci_cleanup_single(sciport); From 579c80b6ccaa10cadda60d0f3b8a1c55356672f5 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Mon, 5 Mar 2018 11:02:01 +0000 Subject: [PATCH 0242/1149] serial: sh-sci: Do not open-code sci_getreg() Replace open-coded variants of sci_getreg() by function calls, and drop intermediate variables where appropriate. Signed-off-by: Geert Uytterhoeven Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman (cherry picked from commit abbf121fb6dae6657388a32feac346e5e1debdbd) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/tty/serial/sh-sci.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c index a82e014dc23e..f3c98f627eaa 100644 --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c @@ -624,7 +624,6 @@ static void sci_poll_put_char(struct uart_port *port, unsigned char c) static void sci_init_pins(struct uart_port *port, unsigned int cflag) { struct sci_port *s = to_sci_port(port); - const struct plat_sci_reg *reg = sci_regmap[s->cfg->regtype] + SCSPTR; /* * Use port-specific handler if provided. @@ -638,7 +637,7 @@ static void sci_init_pins(struct uart_port *port, unsigned int cflag) * For the generic path SCSPTR is necessary. Bail out if that's * unavailable, too. */ - if (!reg->size) + if (!sci_getreg(port, SCSPTR)->size) return; if ((s->cfg->capabilities & SCIx_HAVE_RTSCTS) && @@ -1789,12 +1788,10 @@ static void sci_enable_ms(struct uart_port *port) static void sci_break_ctl(struct uart_port *port, int break_state) { - struct sci_port *s = to_sci_port(port); - const struct plat_sci_reg *reg = sci_regmap[s->cfg->regtype] + SCSPTR; unsigned short scscr, scsptr; /* check wheter the port has SCSPTR */ - if (!reg->size) { + if (!sci_getreg(port, SCSPTR)->size) { /* * Not supported by hardware. Most parts couple break and rx * interrupts together, with break detection always enabled. From 1c3177a69b89fdb4e7ac71aa159e1b0ed45c3bec Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Mon, 5 Mar 2018 11:02:02 +0000 Subject: [PATCH 0243/1149] serial: sh-sci: Add more Serial Port Register documentation Improve documentation for the (H)SCIF Serial Port Register: - Make it clear the RTS and CTS lines are active-low, - Document the bits related to the serial port's clock pin. Signed-off-by: Geert Uytterhoeven Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman (cherry picked from commit ef5e90e8ccb7b715c0a1509339f730b2bf9698a2) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/tty/serial/sh-sci.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/tty/serial/sh-sci.h b/drivers/tty/serial/sh-sci.h index bf69bbdcc1f9..fa560c020aaa 100644 --- a/drivers/tty/serial/sh-sci.h +++ b/drivers/tty/serial/sh-sci.h @@ -91,10 +91,12 @@ enum { #define SCLSR_ORER BIT(0) /* Overrun Error */ /* SCSPTR (Serial Port Register), optional */ -#define SCSPTR_RTSIO BIT(7) /* Serial Port RTS Pin Input/Output */ -#define SCSPTR_RTSDT BIT(6) /* Serial Port RTS Pin Data */ -#define SCSPTR_CTSIO BIT(5) /* Serial Port CTS Pin Input/Output */ -#define SCSPTR_CTSDT BIT(4) /* Serial Port CTS Pin Data */ +#define SCSPTR_RTSIO BIT(7) /* Serial Port RTS# Pin Input/Output */ +#define SCSPTR_RTSDT BIT(6) /* Serial Port RTS# Pin Data */ +#define SCSPTR_CTSIO BIT(5) /* Serial Port CTS# Pin Input/Output */ +#define SCSPTR_CTSDT BIT(4) /* Serial Port CTS# Pin Data */ +#define SCSPTR_SCKIO BIT(3) /* Serial Port Clock Pin Input/Output */ +#define SCSPTR_SCKDT BIT(2) /* Serial Port Clock Pin Data */ #define SCSPTR_SPB2IO BIT(1) /* Serial Port Break Input/Output */ #define SCSPTR_SPB2DT BIT(0) /* Serial Port Break Data */ From b241e4cb7a049e45e33f68ad9a2e4f03d67010ce Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Mon, 5 Mar 2018 11:02:03 +0000 Subject: [PATCH 0244/1149] serial: sh-sci: Add more Serial Port Control/Data Register documentation Improve documentation for the SCIFA/SCIFB Serial Port Control and Data Registers: - State clearly that the RTS and CTS lines are active-low, - Document the bits related to the serial port's SCK, RXD, and TXD pins. Signed-off-by: Geert Uytterhoeven Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman (cherry picked from commit 4780c09f7a0926674c96c0a40dfeb7469f759c8e) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/tty/serial/sh-sci.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/tty/serial/sh-sci.h b/drivers/tty/serial/sh-sci.h index fa560c020aaa..1b699ea6d0bf 100644 --- a/drivers/tty/serial/sh-sci.h +++ b/drivers/tty/serial/sh-sci.h @@ -104,12 +104,18 @@ enum { #define HSCIF_SRE BIT(15) /* Sampling Rate Register Enable */ /* SCPCR (Serial Port Control Register), SCIFA/SCIFB only */ -#define SCPCR_RTSC BIT(4) /* Serial Port RTS Pin / Output Pin */ -#define SCPCR_CTSC BIT(3) /* Serial Port CTS Pin / Input Pin */ +#define SCPCR_RTSC BIT(4) /* Serial Port RTS# Pin / Output Pin */ +#define SCPCR_CTSC BIT(3) /* Serial Port CTS# Pin / Input Pin */ +#define SCPCR_SCKC BIT(2) /* Serial Port SCK Pin / Output Pin */ +#define SCPCR_RXDC BIT(1) /* Serial Port RXD Pin / Input Pin */ +#define SCPCR_TXDC BIT(0) /* Serial Port TXD Pin / Output Pin */ /* SCPDR (Serial Port Data Register), SCIFA/SCIFB only */ -#define SCPDR_RTSD BIT(4) /* Serial Port RTS Output Pin Data */ -#define SCPDR_CTSD BIT(3) /* Serial Port CTS Input Pin Data */ +#define SCPDR_RTSD BIT(4) /* Serial Port RTS# Output Pin Data */ +#define SCPDR_CTSD BIT(3) /* Serial Port CTS# Input Pin Data */ +#define SCPDR_SCKD BIT(2) /* Serial Port SCK Output Pin Data */ +#define SCPDR_RXDD BIT(1) /* Serial Port RXD Input Pin Data */ +#define SCPDR_TXDD BIT(0) /* Serial Port TXD Output Pin Data */ #define SCxSR_TEND(port) (((port)->type == PORT_SCI) ? SCI_TEND : SCIF_TEND) From 445b047a32cc3668f8224146862bcc8b6a34a6be Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Mon, 5 Mar 2018 11:02:04 +0000 Subject: [PATCH 0245/1149] serial: sh-sci: Correct pin initialization on (H)SCIF Correct pin initialization on (H)SCIF: - RTS must be deasserted (it's active low), - SCK must be an input, as it may be used as the optional external clock input. Initial pin configuration must always be done: - Regardless of the presence of dedicated RTS and CTS pins: if the register exists, the RTS/CTS bits exist, too, - Regardless of hardware flow control being enabled or not: RTS must be deasserted. Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman (cherry picked from commit d2b9775d795ec05fb42504c0f47dd06ba5fd709e) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/tty/serial/sh-sci.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c index f3c98f627eaa..eeaa36918e9d 100644 --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c @@ -633,21 +633,14 @@ static void sci_init_pins(struct uart_port *port, unsigned int cflag) return; } - /* - * For the generic path SCSPTR is necessary. Bail out if that's - * unavailable, too. - */ - if (!sci_getreg(port, SCSPTR)->size) - return; - - if ((s->cfg->capabilities & SCIx_HAVE_RTSCTS) && - ((!(cflag & CRTSCTS)))) { - unsigned short status; - - status = serial_port_in(port, SCSPTR); - status &= ~SCSPTR_CTSIO; - status |= SCSPTR_RTSIO; - serial_port_out(port, SCSPTR, status); /* Set RTS = 1 */ + if (sci_getreg(port, SCSPTR)->size) { + u16 status = serial_port_in(port, SCSPTR); + + /* RTS# is output, driven 1 */ + status |= SCSPTR_RTSIO | SCSPTR_RTSDT; + /* CTS# and SCK are inputs */ + status &= ~(SCSPTR_CTSIO | SCSPTR_SCKIO); + serial_port_out(port, SCSPTR, status); } } From 5813b66d99436d95d951e4bc504dcd463b81a46a Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Mon, 5 Mar 2018 11:02:05 +0000 Subject: [PATCH 0246/1149] serial: sh-sci: Add pin initialization for SCIFA/SCIFB Before, the driver relied on initialization by the boot loader, or by implicit reset state. Note that unlike on (H)SCIF, the RTS/CTS bits exist only if dedicated RTS/CTS pins are available, which depends on the SoC and UART instance. Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman (cherry picked from commit e9d7a45a039913497a57887d85f5decfda4679f0) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/tty/serial/sh-sci.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c index eeaa36918e9d..c16789e71d52 100644 --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c @@ -633,7 +633,21 @@ static void sci_init_pins(struct uart_port *port, unsigned int cflag) return; } - if (sci_getreg(port, SCSPTR)->size) { + if (port->type == PORT_SCIFA || port->type == PORT_SCIFB) { + u16 ctrl = serial_port_in(port, SCPCR); + + /* Enable RXD and TXD pin functions */ + ctrl &= ~(SCPCR_RXDC | SCPCR_TXDC); + if (to_sci_port(port)->cfg->capabilities & SCIx_HAVE_RTSCTS) { + /* RTS# is output, driven 1 */ + ctrl |= SCPCR_RTSC; + serial_port_out(port, SCPDR, + serial_port_in(port, SCPDR) | SCPDR_RTSD); + /* Enable CTS# pin function */ + ctrl &= ~SCPCR_CTSC; + } + serial_port_out(port, SCPCR, ctrl); + } else if (sci_getreg(port, SCSPTR)->size) { u16 status = serial_port_in(port, SCSPTR); /* RTS# is output, driven 1 */ From 34088874a526939aa18f9793b7f4d673889de28f Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Mon, 5 Mar 2018 11:02:06 +0000 Subject: [PATCH 0247/1149] serial: sh-sci: Fix support for hardware-assisted RTS/CTS The existing support for hardware-assisted RTS/CTS is rudimentary and doesn't work. Add support for hardware-assisted RTS/CTS hardware flow control for the (H)SCIF, SCIFA, and SCIFB variants. Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman (cherry picked from commit 33f50ffc253854cf6cd556786ae893c7454a1a67) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/tty/serial/sh-sci.c | 90 ++++++++++++++++++++++++++++++++++--- 1 file changed, 83 insertions(+), 7 deletions(-) diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c index c16789e71d52..fb76ca32c241 100644 --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c @@ -117,6 +117,8 @@ struct sci_port { struct timer_list rx_timer; unsigned int rx_timeout; #endif + + bool autorts; }; #define SCI_NPORTS CONFIG_SERIAL_SH_SCI_NR_UARTS @@ -1734,6 +1736,46 @@ static unsigned int sci_tx_empty(struct uart_port *port) return (status & SCxSR_TEND(port)) && !in_tx_fifo ? TIOCSER_TEMT : 0; } +static void sci_set_rts(struct uart_port *port, bool state) +{ + if (port->type == PORT_SCIFA || port->type == PORT_SCIFB) { + u16 data = serial_port_in(port, SCPDR); + + /* Active low */ + if (state) + data &= ~SCPDR_RTSD; + else + data |= SCPDR_RTSD; + serial_port_out(port, SCPDR, data); + + /* RTS# is output */ + serial_port_out(port, SCPCR, + serial_port_in(port, SCPCR) | SCPCR_RTSC); + } else if (sci_getreg(port, SCSPTR)->size) { + u16 ctrl = serial_port_in(port, SCSPTR); + + /* Active low */ + if (state) + ctrl &= ~SCSPTR_RTSDT; + else + ctrl |= SCSPTR_RTSDT; + serial_port_out(port, SCSPTR, ctrl); + } +} + +static bool sci_get_cts(struct uart_port *port) +{ + if (port->type == PORT_SCIFA || port->type == PORT_SCIFB) { + /* Active low */ + return !(serial_port_in(port, SCPDR) & SCPDR_CTSD); + } else if (sci_getreg(port, SCSPTR)->size) { + /* Active low */ + return !(serial_port_in(port, SCSPTR) & SCSPTR_CTSDT); + } + + return true; +} + /* * Modem control is a bit of a mixed bag for SCI(F) ports. Generally * CTS/RTS is supported in hardware by at least one port and controlled @@ -1764,6 +1806,31 @@ static void sci_set_mctrl(struct uart_port *port, unsigned int mctrl) } mctrl_gpio_set(s->gpios, mctrl); + + if (!(s->cfg->capabilities & SCIx_HAVE_RTSCTS)) + return; + + if (!(mctrl & TIOCM_RTS)) { + /* Disable Auto RTS */ + serial_port_out(port, SCFCR, + serial_port_in(port, SCFCR) & ~SCFCR_MCE); + + /* Clear RTS */ + sci_set_rts(port, 0); + } else if (s->autorts) { + if (port->type == PORT_SCIFA || port->type == PORT_SCIFB) { + /* Enable RTS# pin function */ + serial_port_out(port, SCPCR, + serial_port_in(port, SCPCR) & ~SCPCR_RTSC); + } + + /* Enable Auto RTS */ + serial_port_out(port, SCFCR, + serial_port_in(port, SCFCR) | SCFCR_MCE); + } else { + /* Set RTS */ + sci_set_rts(port, 1); + } } static unsigned int sci_get_mctrl(struct uart_port *port) @@ -1776,10 +1843,14 @@ static unsigned int sci_get_mctrl(struct uart_port *port) /* * CTS/RTS is handled in hardware when supported, while nothing - * else is wired up. Keep it simple and simply assert CTS/DSR/CAR. + * else is wired up. */ - if (IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(gpios, UART_GPIO_CTS))) + if (s->autorts) { + if (sci_get_cts(port)) + mctrl |= TIOCM_CTS; + } else if (IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(gpios, UART_GPIO_CTS))) { mctrl |= TIOCM_CTS; + } if (IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(gpios, UART_GPIO_DSR))) mctrl |= TIOCM_DSR; if (IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(gpios, UART_GPIO_DCD))) @@ -1852,6 +1923,7 @@ static void sci_shutdown(struct uart_port *port) dev_dbg(port->dev, "%s(%d)\n", __func__, port->line); + s->autorts = false; mctrl_gpio_disable_ms(to_sci_port(port)->gpios); spin_lock_irqsave(&port->lock, flags); @@ -2037,15 +2109,18 @@ static void sci_set_termios(struct uart_port *port, struct ktermios *termios, sci_init_pins(port, termios->c_cflag); + port->status &= ~UPSTAT_AUTOCTS; + s->autorts = false; reg = sci_getreg(port, SCFCR); if (reg->size) { unsigned short ctrl = serial_port_in(port, SCFCR); - if (s->cfg->capabilities & SCIx_HAVE_RTSCTS) { - if (termios->c_cflag & CRTSCTS) - ctrl |= SCFCR_MCE; - else - ctrl &= ~SCFCR_MCE; + if ((port->flags & UPF_HARD_FLOW) && + (termios->c_cflag & CRTSCTS)) { + /* There is no CTS interrupt to restart the hardware */ + port->status |= UPSTAT_AUTOCTS; + /* MCE is enabled when RTS is raised */ + s->autorts = true; } /* @@ -2689,6 +2764,7 @@ static int sci_probe_single(struct platform_device *dev, dev_err(&dev->dev, "Conflicting RTS/CTS config\n"); return -EINVAL; } + sciport->port.flags |= UPF_HARD_FLOW; } ret = uart_add_one_port(&sci_uart_driver, &sciport->port); From 3c9299756526011ec1454626836eccb93bb8bf2d Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Mon, 5 Mar 2018 11:02:07 +0000 Subject: [PATCH 0248/1149] serial: sh-sci: Add DT support for dedicated RTS/CTS Add support for indicating the availability of dedicated lines for RTS/CTS hardware flow control, using the standard "uart-has-rtscts" DT property. Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman (cherry picked from commit 861a70abb483645d4474a6bc006471c2db59a78d) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/tty/serial/sh-sci.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c index fb76ca32c241..cf8d0955657d 100644 --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c @@ -2730,6 +2730,9 @@ sci_parse_dt(struct platform_device *pdev, unsigned int *dev_id) p->regtype = info->regtype; p->scscr = SCSCR_RE | SCSCR_TE; + if (of_find_property(np, "uart-has-rtscts", NULL)) + p->capabilities |= SCIx_HAVE_RTSCTS; + return p; } From df02729ef36214a81684dbadab749eea36f597fc Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Mon, 5 Mar 2018 11:02:08 +0000 Subject: [PATCH 0249/1149] ARM: dts: iwg20d-q7: Rework DT architecture MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since the same carrier board may host RZ/G1M and RZ/G1N based Systems on Module, the DT architecture for iwg20d-q7 needs better decoupling. This patch provides: * iwg20d-q7-common.dtsi - its purpose is to define the carrier board definitions, and its content is basically the same as the previous version of r8a7743-iwg20d-q7.dts, only it has no reference to the SoM .dtsi, and that's why the filename doesn't mention the SoC name any more. * r8a7743-iwg20d-q7.dts - its new purpose is to put together the SoM .dtsi (r8a7743-iwg20m.dtsi) and the carrier board .dtsi defined by this very patch, along with "model" and "compatible" properties. The final DT architecture to describe the board is now: r8a7743-iwg20d-q7.dts # Carrier Board + SoM ├── r8a7743-iwg20m.dtsi # SoM │   └── r8a7743.dtsi # SoC └── iwg20d-q7-common.dtsi # Carrier Board and maximizes the reuse of the definitions for the carrier board and for the SoM. Signed-off-by: Fabrizio Castro Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 4f0b2563c4c0c67fc5b5e2369d5f62f91abc42e7) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/iwg20d-q7-common.dtsi | 108 ++++++++++++++++++++++++ arch/arm/boot/dts/r8a7743-iwg20d-q7.dts | 100 +--------------------- 2 files changed, 110 insertions(+), 98 deletions(-) create mode 100644 arch/arm/boot/dts/iwg20d-q7-common.dtsi diff --git a/arch/arm/boot/dts/iwg20d-q7-common.dtsi b/arch/arm/boot/dts/iwg20d-q7-common.dtsi new file mode 100644 index 000000000000..1a0bb24f81c0 --- /dev/null +++ b/arch/arm/boot/dts/iwg20d-q7-common.dtsi @@ -0,0 +1,108 @@ +/* + * Device Tree Source for the iWave-RZ/G1M/G1N Qseven carrier board + * + * Copyright (C) 2017 Renesas Electronics Corp. + * + * This file is licensed under the terms of the GNU General Public License + * version 2. This program is licensed "as is" without any warranty of any + * kind, whether express or implied. + */ + +/ { + aliases { + serial0 = &scif0; + ethernet0 = &avb; + }; + + vcc_sdhi1: regulator-vcc-sdhi1 { + compatible = "regulator-fixed"; + + regulator-name = "SDHI1 Vcc"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + + gpio = <&gpio1 16 GPIO_ACTIVE_LOW>; + }; + + vccq_sdhi1: regulator-vccq-sdhi1 { + compatible = "regulator-gpio"; + + regulator-name = "SDHI1 VccQ"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + + gpios = <&gpio2 30 GPIO_ACTIVE_LOW>; + gpios-states = <1>; + states = <3300000 1 + 1800000 0>; + }; +}; + +&avb { + pinctrl-0 = <&avb_pins>; + pinctrl-names = "default"; + + phy-handle = <&phy3>; + phy-mode = "gmii"; + renesas,no-ether-link; + status = "okay"; + + phy3: ethernet-phy@3 { + reg = <3>; + micrel,led-mode = <1>; + }; +}; + +&i2c2 { + pinctrl-0 = <&i2c2_pins>; + pinctrl-names = "default"; + + status = "okay"; + clock-frequency = <400000>; + + rtc@68 { + compatible = "bq32000"; + reg = <0x68>; + }; +}; + +&pfc { + avb_pins: avb { + groups = "avb_mdio", "avb_gmii"; + function = "avb"; + }; + + i2c2_pins: i2c2 { + groups = "i2c2"; + function = "i2c2"; + }; + + scif0_pins: scif0 { + groups = "scif0_data_d"; + function = "scif0"; + }; + + sdhi1_pins: sd1 { + groups = "sdhi1_data4", "sdhi1_ctrl"; + function = "sdhi1"; + power-source = <3300>; + }; +}; + +&scif0 { + pinctrl-0 = <&scif0_pins>; + pinctrl-names = "default"; + + status = "okay"; +}; + +&sdhi1 { + pinctrl-0 = <&sdhi1_pins>; + pinctrl-names = "default"; + + vmmc-supply = <&vcc_sdhi1>; + vqmmc-supply = <&vccq_sdhi1>; + cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>; + wp-gpios = <&gpio6 15 GPIO_ACTIVE_HIGH>; + status = "okay"; +}; diff --git a/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts b/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts index 0bd97542b78e..6aa6b7467704 100644 --- a/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts +++ b/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts @@ -1,5 +1,5 @@ /* - * Device Tree Source for the iWave-RZG1M Qseven carrier board + * Device Tree Source for the iWave-RZ/G1M Qseven board * * Copyright (C) 2017 Renesas Electronics Corp. * @@ -10,105 +10,9 @@ /dts-v1/; #include "r8a7743-iwg20m.dtsi" +#include "iwg20d-q7-common.dtsi" / { model = "iWave Systems RainboW-G20D-Qseven board based on RZ/G1M"; compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7743"; - - aliases { - serial0 = &scif0; - ethernet0 = &avb; - }; - - vcc_sdhi1: regulator-vcc-sdhi1 { - compatible = "regulator-fixed"; - - regulator-name = "SDHI1 Vcc"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - - gpio = <&gpio1 16 GPIO_ACTIVE_LOW>; - }; - - vccq_sdhi1: regulator-vccq-sdhi1 { - compatible = "regulator-gpio"; - - regulator-name = "SDHI1 VccQ"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <3300000>; - - gpios = <&gpio2 30 GPIO_ACTIVE_LOW>; - gpios-states = <1>; - states = <3300000 1 - 1800000 0>; - }; -}; - -&pfc { - i2c2_pins: i2c2 { - groups = "i2c2"; - function = "i2c2"; - }; - - scif0_pins: scif0 { - groups = "scif0_data_d"; - function = "scif0"; - }; - - avb_pins: avb { - groups = "avb_mdio", "avb_gmii"; - function = "avb"; - }; - - sdhi1_pins: sd1 { - groups = "sdhi1_data4", "sdhi1_ctrl"; - function = "sdhi1"; - power-source = <3300>; - }; -}; - -&scif0 { - pinctrl-0 = <&scif0_pins>; - pinctrl-names = "default"; - - status = "okay"; -}; - -&avb { - pinctrl-0 = <&avb_pins>; - pinctrl-names = "default"; - - phy-handle = <&phy3>; - phy-mode = "gmii"; - renesas,no-ether-link; - status = "okay"; - - phy3: ethernet-phy@3 { - reg = <3>; - micrel,led-mode = <1>; - }; -}; - -&sdhi1 { - pinctrl-0 = <&sdhi1_pins>; - pinctrl-names = "default"; - - vmmc-supply = <&vcc_sdhi1>; - vqmmc-supply = <&vccq_sdhi1>; - cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>; - wp-gpios = <&gpio6 15 GPIO_ACTIVE_HIGH>; - status = "okay"; -}; - -&i2c2 { - pinctrl-0 = <&i2c2_pins>; - pinctrl-names = "default"; - - status = "okay"; - clock-frequency = <400000>; - - rtc@68 { - compatible = "bq32000"; - reg = <0x68>; - }; }; From d9d786dfc38d61ca008a97263e3f399e30103bd7 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Mon, 5 Mar 2018 11:02:09 +0000 Subject: [PATCH 0250/1149] ARM: dts: iwg20d-q7-dbcm-ca: Add device trees for camera DB This patch adds a .dtsi that describes the camera daughter board and a .dts to describe the HW made of iWave's RZ/G1M SoM, iWave's RZ/G1M/G1N Qseven carrier board, and the camera daughter board. The camera daughter board .dtsi adds support for ttySC[14]. Signed-off-by: Fabrizio Castro Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 2ee18841ff649e973d62afc6096b892396a676ef) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi | 43 +++++++++++++++++++ .../boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dts | 19 ++++++++ 3 files changed, 63 insertions(+) create mode 100644 arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi create mode 100644 arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dts diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index f8fd69254b61..22fc8abfeef7 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -545,6 +545,7 @@ dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += \ r8a73a4-ape6evm.dtb \ r8a7740-armadillo800eva.dtb \ r8a7743-iwg20d-q7.dtb \ + r8a7743-iwg20d-q7-dbcm-ca.dtb \ r8a7778-bockw.dtb \ r8a7779-marzen.dtb \ r8a7790-lager.dtb \ diff --git a/arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi b/arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi new file mode 100644 index 000000000000..31fab5f183a9 --- /dev/null +++ b/arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi @@ -0,0 +1,43 @@ +/* + * Device Tree Source for the iWave-RZ-G1M/N Daughter Board Camera Module + * + * Copyright (C) 2017 Renesas Electronics Corp. + * + * This file is licensed under the terms of the GNU General Public License + * version 2. This program is licensed "as is" without any warranty of any + * kind, whether express or implied. + */ + +/ { + aliases { + serial1 = &scif1; + serial4 = &hscif1; + }; +}; + +&hscif1 { + pinctrl-0 = <&hscif1_pins>; + pinctrl-names = "default"; + + uart-has-rtscts; + status = "okay"; +}; + +&pfc { + hscif1_pins: hscif1 { + groups = "hscif1_data_c", "hscif1_ctrl_c"; + function = "hscif1"; + }; + + scif1_pins: scif1 { + groups = "scif1_data_d"; + function = "scif1"; + }; +}; + +&scif1 { + pinctrl-0 = <&scif1_pins>; + pinctrl-names = "default"; + + status = "okay"; +}; diff --git a/arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dts b/arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dts new file mode 100644 index 000000000000..d90eb8464222 --- /dev/null +++ b/arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dts @@ -0,0 +1,19 @@ +/* + * Device Tree Source for the iWave-RZ/G1M Qseven board + camera daughter board + * + * Copyright (C) 2017 Renesas Electronics Corp. + * + * This file is licensed under the terms of the GNU General Public License + * version 2. This program is licensed "as is" without any warranty of any + * kind, whether express or implied. + */ + +/dts-v1/; +#include "r8a7743-iwg20m.dtsi" +#include "iwg20d-q7-common.dtsi" +#include "iwg20d-q7-dbcm-ca.dtsi" + +/ { + model = "iW-RainboW-G20D-Q7 RZ/G1M based plus camera daughter board"; + compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7743"; +}; From 86ba3a7cf59d942db8ff2ecded92987adda77b2b Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Mon, 5 Mar 2018 11:02:10 +0000 Subject: [PATCH 0251/1149] ARM: dts: iwg20d-q7: Add support for ttySC3 Signed-off-by: Fabrizio Castro Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 77014a7c654c76e1c0cf82563cc48e07c546461c) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/iwg20d-q7-common.dtsi | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/arch/arm/boot/dts/iwg20d-q7-common.dtsi b/arch/arm/boot/dts/iwg20d-q7-common.dtsi index 1a0bb24f81c0..7d93a7c549e9 100644 --- a/arch/arm/boot/dts/iwg20d-q7-common.dtsi +++ b/arch/arm/boot/dts/iwg20d-q7-common.dtsi @@ -11,6 +11,7 @@ / { aliases { serial0 = &scif0; + serial3 = &scifb1; ethernet0 = &avb; }; @@ -82,6 +83,11 @@ function = "scif0"; }; + scifb1_pins: scifb1 { + groups = "scifb1_data_d", "scifb1_ctrl"; + function = "scifb1"; + }; + sdhi1_pins: sd1 { groups = "sdhi1_data4", "sdhi1_ctrl"; function = "sdhi1"; @@ -96,6 +102,14 @@ status = "okay"; }; +&scifb1 { + pinctrl-0 = <&scifb1_pins>; + pinctrl-names = "default"; + + uart-has-rtscts; + status = "okay"; +}; + &sdhi1 { pinctrl-0 = <&sdhi1_pins>; pinctrl-names = "default"; From ef22289db589dfbe33fc7f69aaace2f98b6b6f26 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Mon, 5 Mar 2018 11:02:11 +0000 Subject: [PATCH 0252/1149] ARM: dts: iwg20d-q7: Add chosen node Signed-off-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit f9c1e87e77ca1ef1c4de2d419b0dcb42e4a47043) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/iwg20d-q7-common.dtsi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/iwg20d-q7-common.dtsi b/arch/arm/boot/dts/iwg20d-q7-common.dtsi index 7d93a7c549e9..5dec24787118 100644 --- a/arch/arm/boot/dts/iwg20d-q7-common.dtsi +++ b/arch/arm/boot/dts/iwg20d-q7-common.dtsi @@ -15,6 +15,11 @@ ethernet0 = &avb; }; + chosen { + bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; + stdout-path = "serial0:115200n8"; + }; + vcc_sdhi1: regulator-vcc-sdhi1 { compatible = "regulator-fixed"; From e4d8c1dd05a4068ab4f9c5977219398d7cfbc8c5 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Mon, 5 Mar 2018 11:39:05 +0000 Subject: [PATCH 0253/1149] PCI: rcar: Add gen2 fallback compatibility string for pci-rcar-gen2 Add fallback compatibility string for R-Car Gen 2 family. This is in keeping with the fallback scheme being adopted wherever appropriate for drivers for Renesas SoCs. Signed-off-by: Simon Horman Signed-off-by: Bjorn Helgaas Acked-by: Rob Herring (cherry picked from commit 3517652fda51bfeea3768ba05819744c8ac57d9e) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- .../devicetree/bindings/pci/pci-rcar-gen2.txt | 11 +++++++++-- drivers/pci/host/pci-rcar-gen2.c | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt b/Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt index 7fab84b33531..3690f68678a6 100644 --- a/Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt +++ b/Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt @@ -8,7 +8,14 @@ OHCI and EHCI controllers. Required properties: - compatible: "renesas,pci-r8a7790" for the R8A7790 SoC; "renesas,pci-r8a7791" for the R8A7791 SoC; - "renesas,pci-r8a7794" for the R8A7794 SoC. + "renesas,pci-r8a7794" for the R8A7794 SoC; + "renesas,pci-rcar-gen2" for a generic R-Car Gen2 compatible device + + + When compatible with the generic version, nodes must list the + SoC-specific version corresponding to the platform first + followed by the generic version. + - reg: A list of physical regions to access the device: the first is the operational registers for the OHCI/EHCI controllers and the second is for the bridge configuration and control registers. @@ -27,7 +34,7 @@ Required properties: Example SoC configuration: pci0: pci@ee090000 { - compatible = "renesas,pci-r8a7790"; + compatible = "renesas,pci-r8a7790", "renesas,pci-rcar-gen2"; clocks = <&mstp7_clks R8A7790_CLK_EHCI>; reg = <0x0 0xee090000 0x0 0xc00>, <0x0 0xee080000 0x0 0x1100>; diff --git a/drivers/pci/host/pci-rcar-gen2.c b/drivers/pci/host/pci-rcar-gen2.c index c4f64bfee551..5683e7068b29 100644 --- a/drivers/pci/host/pci-rcar-gen2.c +++ b/drivers/pci/host/pci-rcar-gen2.c @@ -360,6 +360,7 @@ static int rcar_pci_probe(struct platform_device *pdev) } static struct of_device_id rcar_pci_of_match[] = { + { .compatible = "renesas,pci-rcar-gen2", }, { .compatible = "renesas,pci-r8a7790", }, { .compatible = "renesas,pci-r8a7791", }, { .compatible = "renesas,pci-r8a7794", }, From 3b1dfb0ce3d964e90cdd11cf262f8fa9a05c1712 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Mon, 5 Mar 2018 11:39:06 +0000 Subject: [PATCH 0254/1149] PCI: rcar-gen2: Use gen2 fallback compatibility last Improve readability by listing fallback compatibility strings after the more-specific compatibility strings they provide a fallback for. This does not affect run-time behaviour as it is the order in the DTB that determines which compatibility string is used. Signed-off-by: Simon Horman Signed-off-by: Bjorn Helgaas (cherry picked from commit 7b99d94277ba49f401b7a5c1ad8a9084cc6c34a6) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/pci/host/pci-rcar-gen2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/host/pci-rcar-gen2.c b/drivers/pci/host/pci-rcar-gen2.c index 5683e7068b29..acefff73d2af 100644 --- a/drivers/pci/host/pci-rcar-gen2.c +++ b/drivers/pci/host/pci-rcar-gen2.c @@ -360,10 +360,10 @@ static int rcar_pci_probe(struct platform_device *pdev) } static struct of_device_id rcar_pci_of_match[] = { - { .compatible = "renesas,pci-rcar-gen2", }, { .compatible = "renesas,pci-r8a7790", }, { .compatible = "renesas,pci-r8a7791", }, { .compatible = "renesas,pci-r8a7794", }, + { .compatible = "renesas,pci-rcar-gen2", }, { }, }; From 1bc607fad79d9467b3eb33c4b8d61fd1eb8f7067 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Mon, 5 Mar 2018 11:39:07 +0000 Subject: [PATCH 0255/1149] PCI: rcar: Add device tree support for r8a7743/5 Add internal PCI bridge support for r8a7743/5 SoC. The Renesas RZ/G1[ME] (R8A7743/5) internal PCI bridge is identical to the R-Car Gen2 family. This doesn't change the driver, so it does nothing by itself. But it does mean that checkpatch won't complain about a future patch that adds "renesas,pci-r8a7743" to a DT, which helps ensure that shipped DTs use documented compatibility strings. Signed-off-by: Biju Das [bhelgaas: add explanatory note] Signed-off-by: Bjorn Helgaas Acked-by: Simon Horman (cherry picked from commit c31c83c970165b9f2cb4c0ad6ae89d0a8242cf7b) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt b/Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt index 3690f68678a6..421ab0a14ccd 100644 --- a/Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt +++ b/Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt @@ -6,7 +6,9 @@ AHB. There is one bridge instance per USB port connected to the internal OHCI and EHCI controllers. Required properties: -- compatible: "renesas,pci-r8a7790" for the R8A7790 SoC; +- compatible: "renesas,pci-r8a7743" for the R8A7743 SoC; + "renesas,pci-r8a7745" for the R8A7745 SoC; + "renesas,pci-r8a7790" for the R8A7790 SoC; "renesas,pci-r8a7791" for the R8A7791 SoC; "renesas,pci-r8a7794" for the R8A7794 SoC; "renesas,pci-rcar-gen2" for a generic R-Car Gen2 compatible device From 0d354cf907f8e37e7b6ecede05645b84a4757001 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Mon, 5 Mar 2018 11:39:08 +0000 Subject: [PATCH 0256/1149] ARM: dts: r8a7743: Add internal PCI bridge nodes Add device nodes for the r8a7743 internal PCI bridge devices. Signed-off-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 46d9cf5202fd8cd266748779c1a941aaeff0dcad) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 50 ++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 8515abf1f5b3..d90310c7941c 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -1184,6 +1184,56 @@ "scifa5"; }; }; + + pci0: pci@ee090000 { + compatible = "renesas,pci-r8a7743", + "renesas,pci-rcar-gen2"; + device_type = "pci"; + reg = <0 0xee090000 0 0xc00>, + <0 0xee080000 0 0x1100>; + interrupts = ; + clocks = <&mstp7_clks R8A7743_CLK_USB_EHCI>; + power-domains = <&cpg_clocks>; + status = "disabled"; + + bus-range = <0 0>; + #address-cells = <3>; + #size-cells = <2>; + #interrupt-cells = <1>; + ranges = <0x02000000 0 0xee080000 0 0xee080000 0 + 0x00010000>; + interrupt-map-mask = <0xff00 0 0 0x7>; + interrupt-map = < + 0x0000 0 0 1 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH + 0x0800 0 0 1 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH + 0x1000 0 0 2 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH + >; + }; + + pci1: pci@ee0d0000 { + compatible = "renesas,pci-r8a7743", + "renesas,pci-rcar-gen2"; + device_type = "pci"; + reg = <0 0xee0d0000 0 0xc00>, + <0 0xee0c0000 0 0x1100>; + interrupts = ; + clocks = <&mstp7_clks R8A7743_CLK_USB_EHCI>; + power-domains = <&cpg_clocks>; + status = "disabled"; + + bus-range = <1 1>; + #address-cells = <3>; + #size-cells = <2>; + #interrupt-cells = <1>; + ranges = <0x02000000 0 0xee0c0000 0 0xee0c0000 0 + 0x00010000>; + interrupt-map-mask = <0xff00 0 0 0x7>; + interrupt-map = < + 0x0000 0 0 1 &gic GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH + 0x0800 0 0 1 &gic GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH + 0x1000 0 0 2 &gic GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH + >; + }; }; /* External root clock */ From e9cc5179a1fd415ac660c9273524c96e807979a1 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Mon, 5 Mar 2018 11:39:09 +0000 Subject: [PATCH 0257/1149] phy: rcar-gen2: Add r8a7743/5 support Add USB PHY support for r8a7743/5 SoC. Renesas RZ/G1[ME] (R8A7743/5) USB PHY is identical to the R-Car Gen2 family. Signed-off-by: Biju Das Acked-by: Simon Horman Acked-by: Rob Herring Reviewed-by: Geert Uytterhoeven Signed-off-by: Kishon Vijay Abraham I (cherry picked from commit f7da4e6d29539bad2c29dd8ccb4ac628fe19f82b) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt b/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt index d564ba4f1cf6..883b915b14fc 100644 --- a/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt +++ b/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt @@ -4,7 +4,9 @@ This file provides information on what the device node for the R-Car generation 2 USB PHY contains. Required properties: -- compatible: "renesas,usb-phy-r8a7790" if the device is a part of R8A7790 SoC. +- compatible: "renesas,usb-phy-r8a7743" if the device is a part of R8A7743 SoC. + "renesas,usb-phy-r8a7745" if the device is a part of R8A7745 SoC. + "renesas,usb-phy-r8a7790" if the device is a part of R8A7790 SoC. "renesas,usb-phy-r8a7791" if the device is a part of R8A7791 SoC. "renesas,usb-phy-r8a7794" if the device is a part of R8A7794 SoC. - reg: offset and length of the register block. From 3aa2a003dab12612fc1b345aeadd2f027db82778 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Mon, 5 Mar 2018 11:39:10 +0000 Subject: [PATCH 0258/1149] phy: rcar-gen2: add fallback binding In the case of Renesas R-Car hardware we know that there are generations of SoCs, e.g. Gen 2 and Gen 3. But beyond that its not clear what the relationship between IP blocks might be. For example, I believe that r8a7790 is older than r8a7791 but that doesn't imply that the latter is a descendant of the former or vice versa. We can, however, by examining the documentation and behaviour of the hardware at run-time observe that the current driver implementation appears to be compatible with the IP blocks on SoCs within a given generation. For the above reasons and convenience when enabling new SoCs a per-generation fallback compatibility string scheme being adopted for drivers for Renesas SoCs. Signed-off-by: Simon Horman Acked-by: Geert Uytterhoeven Acked-by: Rob Herring Signed-off-by: Kishon Vijay Abraham I (cherry picked from commit 7777cb8ba08dabcab8dc0e91ac0a26dde675edb6) Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt | 8 +++++++- drivers/phy/phy-rcar-gen2.c | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt b/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt index 883b915b14fc..75abc6d90616 100644 --- a/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt +++ b/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt @@ -9,6 +9,12 @@ Required properties: "renesas,usb-phy-r8a7790" if the device is a part of R8A7790 SoC. "renesas,usb-phy-r8a7791" if the device is a part of R8A7791 SoC. "renesas,usb-phy-r8a7794" if the device is a part of R8A7794 SoC. + "renesas,rcar-gen2-usb-phy" for a generic R-Car Gen2 compatible device. + + When compatible with the generic version, nodes must list the + SoC-specific version corresponding to the platform first + followed by the generic version. + - reg: offset and length of the register block. - #address-cells: number of address cells for the USB channel subnodes, must be <1>. @@ -36,7 +42,7 @@ the USB channel; see the selector meanings below: Example (Lager board): usb-phy@e6590100 { - compatible = "renesas,usb-phy-r8a7790"; + compatible = "renesas,usb-phy-r8a7790", "renesas,rcar-gen2-usb-phy"; reg = <0 0xe6590100 0 0x100>; #address-cells = <1>; #size-cells = <0>; diff --git a/drivers/phy/phy-rcar-gen2.c b/drivers/phy/phy-rcar-gen2.c index c7a05996d5c1..97d4dd6ea924 100644 --- a/drivers/phy/phy-rcar-gen2.c +++ b/drivers/phy/phy-rcar-gen2.c @@ -195,6 +195,7 @@ static const struct of_device_id rcar_gen2_phy_match_table[] = { { .compatible = "renesas,usb-phy-r8a7790" }, { .compatible = "renesas,usb-phy-r8a7791" }, { .compatible = "renesas,usb-phy-r8a7794" }, + { .compatible = "renesas,rcar-gen2-usb-phy" }, { } }; MODULE_DEVICE_TABLE(of, rcar_gen2_phy_match_table); From e5bcef4c32a6a8d368fc6aa12bc2ff86e6af3a46 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Mon, 5 Mar 2018 11:39:11 +0000 Subject: [PATCH 0259/1149] ARM: dts: r8a7743: Add USB PHY DT support Define the r8a7743 generic part of the USB PHY device node. Signed-off-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 9412c391af67fc8aa4e2d8975ba6143cd5289296) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index d90310c7941c..be8881a4f13d 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -1185,6 +1185,27 @@ }; }; + usbphy: usb-phy@e6590100 { + compatible = "renesas,usb-phy-r8a7743", + "renesas,rcar-gen2-usb-phy"; + reg = <0 0xe6590100 0 0x100>; + #address-cells = <1>; + #size-cells = <0>; + clocks = <&mstp7_clks R8A7743_CLK_HSUSB>; + clock-names = "usbhs"; + power-domains = <&cpg_clocks>; + status = "disabled"; + + usb0: usb-channel@0 { + reg = <0>; + #phy-cells = <1>; + }; + usb2: usb-channel@2 { + reg = <2>; + #phy-cells = <1>; + }; + }; + pci0: pci@ee090000 { compatible = "renesas,pci-r8a7743", "renesas,pci-rcar-gen2"; From fff22fa33a1c14123568e93ef734794ad2e89e4c Mon Sep 17 00:00:00 2001 From: Biju Das Date: Mon, 5 Mar 2018 11:39:12 +0000 Subject: [PATCH 0260/1149] ARM: dts: r8a7743: Link PCI USB devices to USB PHY Describe the PCI USB devices that are behind the PCI bridges, adding necessary links to the USB PHY device. Signed-off-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 96963454655c10663f1bc2eea57ac734cab171a7) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index be8881a4f13d..1b17a2061ffb 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -1229,6 +1229,18 @@ 0x0800 0 0 1 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0x1000 0 0 2 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH >; + + usb@1,0 { + reg = <0x800 0 0 0 0>; + phys = <&usb0 0>; + phy-names = "usb"; + }; + + usb@2,0 { + reg = <0x1000 0 0 0 0>; + phys = <&usb0 0>; + phy-names = "usb"; + }; }; pci1: pci@ee0d0000 { @@ -1254,6 +1266,18 @@ 0x0800 0 0 1 &gic GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH 0x1000 0 0 2 &gic GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH >; + + usb@1,0 { + reg = <0x10800 0 0 0 0>; + phys = <&usb2 0>; + phy-names = "usb"; + }; + + usb@2,0 { + reg = <0x11000 0 0 0 0>; + phys = <&usb2 0>; + phy-names = "usb"; + }; }; }; From 0556810997e8c2e99db7315ba950c84cd3a772c4 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Mon, 5 Mar 2018 11:39:13 +0000 Subject: [PATCH 0261/1149] ARM: dts: iwg20d-q7: Enable internal PCI Enable internal AHB-PCI bridges for the USB EHCI/OHCI controllers attached to them. Signed-off-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 35a8eeeac89c56435277fa76f8d557bf00530320) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/iwg20d-q7-common.dtsi | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/arch/arm/boot/dts/iwg20d-q7-common.dtsi b/arch/arm/boot/dts/iwg20d-q7-common.dtsi index 5dec24787118..ecd7bd8abee2 100644 --- a/arch/arm/boot/dts/iwg20d-q7-common.dtsi +++ b/arch/arm/boot/dts/iwg20d-q7-common.dtsi @@ -98,6 +98,28 @@ function = "sdhi1"; power-source = <3300>; }; + + usb0_pins: usb0 { + groups = "usb0"; + function = "usb0"; + }; + + usb1_pins: usb1 { + groups = "usb1"; + function = "usb1"; + }; +}; + +&pci0 { + status = "okay"; + pinctrl-0 = <&usb0_pins>; + pinctrl-names = "default"; +}; + +&pci1 { + status = "okay"; + pinctrl-0 = <&usb1_pins>; + pinctrl-names = "default"; }; &scif0 { From 937635d1c4d224acf0e5e2b35b5b5010639f7c38 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Mon, 5 Mar 2018 11:39:14 +0000 Subject: [PATCH 0262/1149] ARM: dts: iwg20d-q7: Enable USB PHY Signed-off-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 51be0086e6d2ebb3f0ddbeedab8d7c4232c1c5f6) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/iwg20d-q7-common.dtsi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/boot/dts/iwg20d-q7-common.dtsi b/arch/arm/boot/dts/iwg20d-q7-common.dtsi index ecd7bd8abee2..fbb5215838e7 100644 --- a/arch/arm/boot/dts/iwg20d-q7-common.dtsi +++ b/arch/arm/boot/dts/iwg20d-q7-common.dtsi @@ -147,3 +147,7 @@ wp-gpios = <&gpio6 15 GPIO_ACTIVE_HIGH>; status = "okay"; }; + +&usbphy { + status = "okay"; +}; From 711877c359e3e605cec07ac9c249bec79e1dfd77 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Tue, 6 Mar 2018 11:34:41 +0000 Subject: [PATCH 0263/1149] usb: renesas_usbhs: add SoC names to compatibility string documentation This extends the documentation of compatibility strings a little to include the SoC names. Signed-off-by: Simon Horman Acked-by: Kuninori Morimoto Signed-off-by: Felipe Balbi (cherry picked from commit 89d75bf18d0e3e9a02961f537c87d7991df3bd32) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/usb/renesas_usbhs.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Documentation/devicetree/bindings/usb/renesas_usbhs.txt b/Documentation/devicetree/bindings/usb/renesas_usbhs.txt index 7d48f63db44e..a14c0bb561d5 100644 --- a/Documentation/devicetree/bindings/usb/renesas_usbhs.txt +++ b/Documentation/devicetree/bindings/usb/renesas_usbhs.txt @@ -2,10 +2,10 @@ Renesas Electronics USBHS driver Required properties: - compatible: Must contain one of the following: - - "renesas,usbhs-r8a7790" - - "renesas,usbhs-r8a7791" - - "renesas,usbhs-r8a7794" - - "renesas,usbhs-r8a7795" + - "renesas,usbhs-r8a7790" for r8a7790 (R-Car H2) compatible device + - "renesas,usbhs-r8a7791" for r8a7791 (R-Car M2-W) compatible device + - "renesas,usbhs-r8a7794" for r8a7794 (R-Car E2) compatible device + - "renesas,usbhs-r8a7795" for r8a7795 (R-Car H3) compatible device - reg: Base address and length of the register for the USBHS - interrupts: Interrupt specifier for the USBHS - clocks: A list of phandle + clock specifier pairs From 22187d6f88c54e947fb732365055dca994694f19 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Tue, 6 Mar 2018 11:34:42 +0000 Subject: [PATCH 0264/1149] usb: renesas_usbhs: add fallback compatibility strings Add fallback compatibility strings for R-Car Gen2 and Gen3. This is in keeping with the fallback scheme being adopted wherever appropriate for drivers for Renesas SoCs. Signed-off-by: Simon Horman Acked-by: Kuninori Morimoto Signed-off-by: Felipe Balbi (cherry picked from commit 2f1a993a0da652c50e08159f16590b7f9820d192) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- .../devicetree/bindings/usb/renesas_usbhs.txt | 12 ++++++++++-- drivers/usb/renesas_usbhs/common.c | 9 +++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/usb/renesas_usbhs.txt b/Documentation/devicetree/bindings/usb/renesas_usbhs.txt index a14c0bb561d5..45d9ae13ffa3 100644 --- a/Documentation/devicetree/bindings/usb/renesas_usbhs.txt +++ b/Documentation/devicetree/bindings/usb/renesas_usbhs.txt @@ -1,11 +1,19 @@ Renesas Electronics USBHS driver Required properties: - - compatible: Must contain one of the following: + - compatible: Must contain one or more of the following: + - "renesas,usbhs-r8a7790" for r8a7790 (R-Car H2) compatible device - "renesas,usbhs-r8a7791" for r8a7791 (R-Car M2-W) compatible device - "renesas,usbhs-r8a7794" for r8a7794 (R-Car E2) compatible device - "renesas,usbhs-r8a7795" for r8a7795 (R-Car H3) compatible device + - "renesas,rcar-gen2-usbhs" for R-Car Gen2 compatible device + - "renesas,rcar-gen3-usbhs" for R-Car Gen3 compatible device + + When compatible with the generic version, nodes must list the + SoC-specific version corresponding to the platform first followed + by the generic version. + - reg: Base address and length of the register for the USBHS - interrupts: Interrupt specifier for the USBHS - clocks: A list of phandle + clock specifier pairs @@ -22,7 +30,7 @@ Optional properties: Example: usbhs: usb@e6590000 { - compatible = "renesas,usbhs-r8a7790"; + compatible = "renesas,usbhs-r8a7790", "renesas,rcar-gen2-usbhs"; reg = <0 0xe6590000 0 0x100>; interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>; clocks = <&mstp7_clks R8A7790_CLK_HSUSB>; diff --git a/drivers/usb/renesas_usbhs/common.c b/drivers/usb/renesas_usbhs/common.c index 005da0866836..2fa4479e8df6 100644 --- a/drivers/usb/renesas_usbhs/common.c +++ b/drivers/usb/renesas_usbhs/common.c @@ -481,6 +481,15 @@ static const struct of_device_id usbhs_of_match[] = { .compatible = "renesas,usbhs-r8a7795", .data = (void *)USBHS_TYPE_RCAR_GEN2, }, + { + .compatible = "renesas,rcar-gen2-usbhs", + .data = (void *)USBHS_TYPE_RCAR_GEN2, + }, + { + /* Gen3 is compatible with Gen2 */ + .compatible = "renesas,rcar-gen3-usbhs", + .data = (void *)USBHS_TYPE_RCAR_GEN2, + }, { }, }; MODULE_DEVICE_TABLE(of, usbhs_of_match); From a623add57e25d6856204f6ba51534f3a46dde13f Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 6 Mar 2018 11:34:43 +0000 Subject: [PATCH 0265/1149] usb: renesas_usbhs: Add compatible string for r8a7743/5 This patch adds support for r8a7743/5 SoCs. The Renesas RZ/G1[ME] (R8A7743/5) usbhs is identical to the R-Car Gen2 family. No driver change is needed due to the fallback compatible value "renesas,rcar-gen2-usbhs". Adding the SoC-specific compatible values here has two purposes: 1. Document which SoCs have this hardware module, 2. Allow checkpatch to validate compatible values. Acked-by: Rob Herring Acked-by: Simon Horman Signed-off-by: Biju Das Signed-off-by: Chris Paterson Reviewed-by: Yoshihiro Shimoda Reviewed-by: Geert Uytterhoeven Signed-off-by: Felipe Balbi (cherry picked from commit e0d63c4083852e07655dfcda1320504c304218be) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/usb/renesas_usbhs.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/usb/renesas_usbhs.txt b/Documentation/devicetree/bindings/usb/renesas_usbhs.txt index 45d9ae13ffa3..65af38c938f1 100644 --- a/Documentation/devicetree/bindings/usb/renesas_usbhs.txt +++ b/Documentation/devicetree/bindings/usb/renesas_usbhs.txt @@ -3,6 +3,8 @@ Renesas Electronics USBHS driver Required properties: - compatible: Must contain one or more of the following: + - "renesas,usbhs-r8a7743" for r8a7743 (RZ/G1M) compatible device + - "renesas,usbhs-r8a7745" for r8a7745 (RZ/G1E) compatible device - "renesas,usbhs-r8a7790" for r8a7790 (R-Car H2) compatible device - "renesas,usbhs-r8a7791" for r8a7791 (R-Car M2-W) compatible device - "renesas,usbhs-r8a7794" for r8a7794 (R-Car E2) compatible device From 8d442545df1806ff299aaf55dd4f1aa7fbdb10b4 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 6 Mar 2018 11:34:44 +0000 Subject: [PATCH 0266/1149] ARM: dts: r8a7743: Add HS-USB device node Define the R8A7743 generic part of the HS-USB device node. It is up to the board file to enable the device. Signed-off-by: Biju Das Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 4b4a3b1c33b7a389d90624683d8f1a8d1dc2affa) (modified clocks, power-domains properties and removed resets property) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 1b17a2061ffb..12377462d802 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -1185,6 +1185,19 @@ }; }; + hsusb: usb@e6590000 { + compatible = "renesas,usbhs-r8a7743", + "renesas,rcar-gen2-usbhs"; + reg = <0 0xe6590000 0 0x100>; + interrupts = ; + clocks = <&mstp7_clks R8A7743_CLK_HSUSB>; + power-domains = <&cpg_clocks>; + renesas,buswait = <4>; + phys = <&usb0 1>; + phy-names = "usb"; + status = "disabled"; + }; + usbphy: usb-phy@e6590100 { compatible = "renesas,usb-phy-r8a7743", "renesas,rcar-gen2-usb-phy"; From 0fd2987e9858e58967883a2bd223ef98209bca04 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 6 Mar 2018 11:34:45 +0000 Subject: [PATCH 0267/1149] ARM: dts: iwg20d-q7: Enable HS-USB Enable HS-USB device for the iWave G20D-Q7 carrier board based on RZ/G1M. Also disable the host mode support on usb otg port by default to avoid pin conflicts. Signed-off-by: Biju Das Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 405b580227ff1ae8fde82a666a2a5c0391a7e64a) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/iwg20d-q7-common.dtsi | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/iwg20d-q7-common.dtsi b/arch/arm/boot/dts/iwg20d-q7-common.dtsi index fbb5215838e7..8f203c5792e6 100644 --- a/arch/arm/boot/dts/iwg20d-q7-common.dtsi +++ b/arch/arm/boot/dts/iwg20d-q7-common.dtsi @@ -59,6 +59,12 @@ }; }; +&hsusb { + status = "okay"; + pinctrl-0 = <&usb0_pins>; + pinctrl-names = "default"; +}; + &i2c2 { pinctrl-0 = <&i2c2_pins>; pinctrl-names = "default"; @@ -111,7 +117,6 @@ }; &pci0 { - status = "okay"; pinctrl-0 = <&usb0_pins>; pinctrl-names = "default"; }; From 07c07590c331df845869a2cf23793e7e3b124a0a Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 6 Mar 2018 11:34:46 +0000 Subject: [PATCH 0268/1149] ARM: dts: r8a7743: Add USB-DMAC device nodes Signed-off-by: Biju Das Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 310861003a0d59cb410538bcdf73a218157a111d) (modified clocks and power-domains properties, removed resets property) Signed-off-by: Fabrizio Castro [bwh: Add back compatible strings to match upstream] Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 12377462d802..6943b2909f05 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -309,6 +309,32 @@ dma-channels = <15>; }; + usb_dmac0: dma-controller@e65a0000 { + compatible = "renesas,r8a7743-usb-dmac", + "renesas,usb-dmac"; + reg = <0 0xe65a0000 0 0x100>; + interrupts = ; + interrupt-names = "ch0", "ch1"; + clocks = <&mstp3_clks R8A7743_CLK_USBDMAC0>; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <2>; + }; + + usb_dmac1: dma-controller@e65b0000 { + compatible = "renesas,r8a7743-usb-dmac", + "renesas,usb-dmac"; + reg = <0 0xe65b0000 0 0x100>; + interrupts = ; + interrupt-names = "ch0", "ch1"; + clocks = <&mstp3_clks R8A7743_CLK_USBDMAC1>; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <2>; + }; + /* The memory map in the User's Manual maps the cores to bus * numbers */ From 512a3e796ab905b9ffcd114b4fb75ebed182fd3d Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 6 Mar 2018 11:34:47 +0000 Subject: [PATCH 0269/1149] ARM: dts: r8a7743: Enable DMA for HSUSB This patch adds DMA properties to the HSUSB node. Signed-off-by: Biju Das Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit e0a10e7b070624965f20205c59fb2a0c0b465782) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 6943b2909f05..b66a7f55f087 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -1217,6 +1217,9 @@ reg = <0 0xe6590000 0 0x100>; interrupts = ; clocks = <&mstp7_clks R8A7743_CLK_HSUSB>; + dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, + <&usb_dmac1 0>, <&usb_dmac1 1>; + dma-names = "ch0", "ch1", "ch2", "ch3"; power-domains = <&cpg_clocks>; renesas,buswait = <4>; phys = <&usb0 1>; From 79feacb964678890656ae22d4038ad76bbe50e63 Mon Sep 17 00:00:00 2001 From: Vinod Koul Date: Thu, 8 Mar 2018 16:45:45 +0000 Subject: [PATCH 0270/1149] dmaengine: ensure dmaengine helpers check valid callback dmaengine has various device callbacks and exposes helper functions to invoke these. These helpers should check if channel, device and callback is valid or not before invoking them. Reported-by: Jon Hunter Signed-off-by: Vinod Koul (cherry picked from commit 757d12e5849be549076901b0d33c60d5f360269c) Signed-off-by: Fabrizio Castro Signed-off-by: Jianming Qiao Signed-off-by: Ben Hutchings --- include/linux/dmaengine.h | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index c47c68e535e8..a16d1851cfb1 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h @@ -767,6 +767,9 @@ static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_single( sg_dma_address(&sg) = buf; sg_dma_len(&sg) = len; + if (!chan || !chan->device || !chan->device->device_prep_slave_sg) + return NULL; + return chan->device->device_prep_slave_sg(chan, &sg, 1, dir, flags, NULL); } @@ -775,6 +778,9 @@ static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_sg( struct dma_chan *chan, struct scatterlist *sgl, unsigned int sg_len, enum dma_transfer_direction dir, unsigned long flags) { + if (!chan || !chan->device || !chan->device->device_prep_slave_sg) + return NULL; + return chan->device->device_prep_slave_sg(chan, sgl, sg_len, dir, flags, NULL); } @@ -786,6 +792,9 @@ static inline struct dma_async_tx_descriptor *dmaengine_prep_rio_sg( enum dma_transfer_direction dir, unsigned long flags, struct rio_dma_ext *rio_ext) { + if (!chan || !chan->device || !chan->device->device_prep_slave_sg) + return NULL; + return chan->device->device_prep_slave_sg(chan, sgl, sg_len, dir, flags, rio_ext); } @@ -796,6 +805,9 @@ static inline struct dma_async_tx_descriptor *dmaengine_prep_dma_cyclic( size_t period_len, enum dma_transfer_direction dir, unsigned long flags) { + if (!chan || !chan->device || !chan->device->device_prep_dma_cyclic) + return NULL; + return chan->device->device_prep_dma_cyclic(chan, buf_addr, buf_len, period_len, dir, flags); } @@ -804,6 +816,9 @@ static inline struct dma_async_tx_descriptor *dmaengine_prep_interleaved_dma( struct dma_chan *chan, struct dma_interleaved_template *xt, unsigned long flags) { + if (!chan || !chan->device || !chan->device->device_prep_interleaved_dma) + return NULL; + return chan->device->device_prep_interleaved_dma(chan, xt, flags); } @@ -811,7 +826,7 @@ static inline struct dma_async_tx_descriptor *dmaengine_prep_dma_memset( struct dma_chan *chan, dma_addr_t dest, int value, size_t len, unsigned long flags) { - if (!chan || !chan->device) + if (!chan || !chan->device || !chan->device->device_prep_dma_memset) return NULL; return chan->device->device_prep_dma_memset(chan, dest, value, @@ -824,6 +839,9 @@ static inline struct dma_async_tx_descriptor *dmaengine_prep_dma_sg( struct scatterlist *src_sg, unsigned int src_nents, unsigned long flags) { + if (!chan || !chan->device || !chan->device->device_prep_dma_sg) + return NULL; + return chan->device->device_prep_dma_sg(chan, dst_sg, dst_nents, src_sg, src_nents, flags); } From 519a3094c5344f4c04a6416706a5d253a94cacec Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Thu, 8 Mar 2018 17:28:06 +0000 Subject: [PATCH 0271/1149] spi: sh-msiof: Add R-Car Gen 2 and 3 fallback bindings In the case of Renesas R-Car hardware we know that there are generations of SoCs, e.g. Gen 2 and Gen 3. But beyond that it's not clear what the relationship between IP blocks might be. For example, I believe that r8a7790 is older than r8a7791 but that doesn't imply that the latter is a descendant of the former or vice versa. We can, however, by examining the documentation and behaviour of the hardware at run-time observe that the current driver implementation appears to be compatible with the IP blocks on SoCs within a given generation. For the above reasons and convenience when enabling new SoCs a per-generation fallback compatibility string scheme is being adopted for drivers for Renesas SoCs. Also: * Deprecate renesas,sh-msiof. It seems poorly named as it is only compatible with SH-Mobile. It also appears unused in mainline. Signed-off-by: Simon Horman Reviewed-by: Geert Uytterhoeven Signed-off-by: Mark Brown (cherry picked from commit 4286db8456f4fa0c6af2b6b9abc5991a7e7da69c) (removed "renesas,rcar-gen3-msiof") Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- .../devicetree/bindings/spi/sh-msiof.txt | 18 ++++++++++++------ drivers/spi/spi-sh-msiof.c | 3 ++- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Documentation/devicetree/bindings/spi/sh-msiof.txt b/Documentation/devicetree/bindings/spi/sh-msiof.txt index 705075da2f10..ef65d5440bf1 100644 --- a/Documentation/devicetree/bindings/spi/sh-msiof.txt +++ b/Documentation/devicetree/bindings/spi/sh-msiof.txt @@ -1,15 +1,20 @@ Renesas MSIOF spi controller Required properties: -- compatible : "renesas,msiof-" for SoCs, - "renesas,sh-msiof" for SuperH, or - "renesas,sh-mobile-msiof" for SH Mobile series. - Examples with soctypes are: - "renesas,msiof-r8a7790" (R-Car H2) +- compatible : "renesas,msiof-r8a7790" (R-Car H2) "renesas,msiof-r8a7791" (R-Car M2-W) "renesas,msiof-r8a7792" (R-Car V2H) "renesas,msiof-r8a7793" (R-Car M2-N) "renesas,msiof-r8a7794" (R-Car E2) + "renesas,sh-mobile-msiof" (generic SH-Mobile compatibile device) + "renesas,rcar-gen2-msiof" (generic R-Car Gen2 compatible device) + "renesas,sh-msiof" (deprecated) + + When compatible with the generic version, nodes + must list the SoC-specific version corresponding + to the platform first followed by the generic + version. + - reg : A list of offsets and lengths of the register sets for the device. If only one register set is present, it is to be used @@ -59,7 +64,8 @@ Documentation/devicetree/bindings/pinctrl/renesas,*. Example: msiof0: spi@e6e20000 { - compatible = "renesas,msiof-r8a7791"; + compatible = "renesas,msiof-r8a7791", + "renesas,rcar-gen2-msiof"; reg = <0 0xe6e20000 0 0x0064>; interrupts = <0 156 IRQ_TYPE_LEVEL_HIGH>; clocks = <&mstp0_clks R8A7791_CLK_MSIOF0>; diff --git a/drivers/spi/spi-sh-msiof.c b/drivers/spi/spi-sh-msiof.c index 3de39bd794b6..e190b330c774 100644 --- a/drivers/spi/spi-sh-msiof.c +++ b/drivers/spi/spi-sh-msiof.c @@ -974,13 +974,14 @@ static const struct sh_msiof_chipdata r8a779x_data = { }; static const struct of_device_id sh_msiof_match[] = { - { .compatible = "renesas,sh-msiof", .data = &sh_data }, { .compatible = "renesas,sh-mobile-msiof", .data = &sh_data }, { .compatible = "renesas,msiof-r8a7790", .data = &r8a779x_data }, { .compatible = "renesas,msiof-r8a7791", .data = &r8a779x_data }, { .compatible = "renesas,msiof-r8a7792", .data = &r8a779x_data }, { .compatible = "renesas,msiof-r8a7793", .data = &r8a779x_data }, { .compatible = "renesas,msiof-r8a7794", .data = &r8a779x_data }, + { .compatible = "renesas,rcar-gen2-msiof", .data = &r8a779x_data }, + { .compatible = "renesas,sh-msiof", .data = &sh_data }, // Deprecated {}, }; MODULE_DEVICE_TABLE(of, sh_msiof_match); From a70be393c802cfbf406fd37929c573dae505583a Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 8 Mar 2018 17:28:07 +0000 Subject: [PATCH 0272/1149] spi: sh-msiof: Add compatible strings for r8a774[35] Signed-off-by: Fabrizio Castro Signed-off-by: Mark Brown (cherry picked from commit bdacfc7b6216dd30d07c10732fd4c0a660c62853) (using r8a779x_data instead of rcar_gen2_data) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/spi/spi-sh-msiof.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/spi/spi-sh-msiof.c b/drivers/spi/spi-sh-msiof.c index e190b330c774..dc5419d0dfa1 100644 --- a/drivers/spi/spi-sh-msiof.c +++ b/drivers/spi/spi-sh-msiof.c @@ -975,6 +975,8 @@ static const struct sh_msiof_chipdata r8a779x_data = { static const struct of_device_id sh_msiof_match[] = { { .compatible = "renesas,sh-mobile-msiof", .data = &sh_data }, + { .compatible = "renesas,msiof-r8a7743", .data = &r8a779x_data }, + { .compatible = "renesas,msiof-r8a7745", .data = &r8a779x_data }, { .compatible = "renesas,msiof-r8a7790", .data = &r8a779x_data }, { .compatible = "renesas,msiof-r8a7791", .data = &r8a779x_data }, { .compatible = "renesas,msiof-r8a7792", .data = &r8a779x_data }, From 80bf73bdaab8460a297cdf07dab90aa2dbef185a Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 8 Mar 2018 17:28:08 +0000 Subject: [PATCH 0273/1149] spi: sh-msiof: Add r8a774[35] to the compatible list Signed-off-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Mark Brown (cherry picked from commit 4702f4b23a2fc6196abacf515a959e69176da40e) (removed "renesas,rcar-gen3-msiof") Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/spi/sh-msiof.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/spi/sh-msiof.txt b/Documentation/devicetree/bindings/spi/sh-msiof.txt index ef65d5440bf1..7a20ec6a595e 100644 --- a/Documentation/devicetree/bindings/spi/sh-msiof.txt +++ b/Documentation/devicetree/bindings/spi/sh-msiof.txt @@ -1,13 +1,15 @@ Renesas MSIOF spi controller Required properties: -- compatible : "renesas,msiof-r8a7790" (R-Car H2) +- compatible : "renesas,msiof-r8a7743" (RZ/G1M) + "renesas,msiof-r8a7745" (RZ/G1E) + "renesas,msiof-r8a7790" (R-Car H2) "renesas,msiof-r8a7791" (R-Car M2-W) "renesas,msiof-r8a7792" (R-Car V2H) "renesas,msiof-r8a7793" (R-Car M2-N) "renesas,msiof-r8a7794" (R-Car E2) "renesas,sh-mobile-msiof" (generic SH-Mobile compatibile device) - "renesas,rcar-gen2-msiof" (generic R-Car Gen2 compatible device) + "renesas,rcar-gen2-msiof" (generic R-Car Gen2 and RZ/G1 compatible device) "renesas,sh-msiof" (deprecated) When compatible with the generic version, nodes From ecc8cfdffbf1090fdbea8f6e272df73cf19713c5 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 8 Mar 2018 17:28:09 +0000 Subject: [PATCH 0274/1149] ARM: dts: r8a7743: Add MSIOF[012] support Add the DT nodes needed by MSIOF[012] interfaces to the SoC dtsi. Also, define aliases for spi[123]. Signed-off-by: Fabrizio Castro Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 7031a219f649d12acda8a70a4b6b816ee123c8e2) (changed clocks and power-domains properties, removed resets property) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 48 ++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index b66a7f55f087..644f91690d65 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -28,6 +28,9 @@ i2c6 = &iic0; i2c7 = &iic1; i2c8 = &iic3; + spi1 = &msiof0; + spi2 = &msiof1; + spi3 = &msiof2; }; cpus { @@ -781,6 +784,51 @@ status = "disabled"; }; + msiof0: spi@e6e20000 { + compatible = "renesas,msiof-r8a7743", + "renesas,rcar-gen2-msiof"; + reg = <0 0xe6e20000 0 0x0064>; + interrupts = ; + clocks = <&mstp0_clks R8A7743_CLK_MSIOF0>; + dmas = <&dmac0 0x51>, <&dmac0 0x52>, + <&dmac1 0x51>, <&dmac1 0x52>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + msiof1: spi@e6e10000 { + compatible = "renesas,msiof-r8a7743", + "renesas,rcar-gen2-msiof"; + reg = <0 0xe6e10000 0 0x0064>; + interrupts = ; + clocks = <&mstp2_clks R8A7743_CLK_MSIOF1>; + dmas = <&dmac0 0x55>, <&dmac0 0x56>, + <&dmac1 0x55>, <&dmac1 0x56>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + msiof2: spi@e6e00000 { + compatible = "renesas,msiof-r8a7743", + "renesas,rcar-gen2-msiof"; + reg = <0 0xe6e00000 0 0x0064>; + interrupts = ; + clocks = <&mstp2_clks R8A7743_CLK_MSIOF2>; + dmas = <&dmac0 0x41>, <&dmac0 0x42>, + <&dmac1 0x41>, <&dmac1 0x42>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + clocks { #address-cells = <2>; #size-cells = <2>; From 9b01a75c9f4820bd44b9d65ac71b12bd972747b2 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 8 Mar 2018 17:54:37 +0000 Subject: [PATCH 0275/1149] spi: rspi: Add r8a7743/5 to the compatible list Signed-off-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Acked-by: Rob Herring Signed-off-by: Mark Brown (cherry picked from commit 10c1705eced11d6ad710fddcdb57aaa9f85a6f98) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/spi/spi-rspi.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/spi/spi-rspi.txt b/Documentation/devicetree/bindings/spi/spi-rspi.txt index 8f4169f63936..3b02b3a7cfb2 100644 --- a/Documentation/devicetree/bindings/spi/spi-rspi.txt +++ b/Documentation/devicetree/bindings/spi/spi-rspi.txt @@ -5,11 +5,14 @@ Required properties: "renesas,rspi-", "renesas,rspi" as fallback. For Renesas Serial Peripheral Interface on RZ/A1H: "renesas,rspi-", "renesas,rspi-rz" as fallback. - For Quad Serial Peripheral Interface on R-Car Gen2: + For Quad Serial Peripheral Interface on R-Car Gen2 and + RZ/G1 devices: "renesas,qspi-", "renesas,qspi" as fallback. Examples with soctypes are: - "renesas,rspi-sh7757" (SH) - "renesas,rspi-r7s72100" (RZ/A1H) + - "renesas,qspi-r8a7743" (RZ/G1M) + - "renesas,qspi-r8a7745" (RZ/G1E) - "renesas,qspi-r8a7790" (R-Car H2) - "renesas,qspi-r8a7791" (R-Car M2-W) - "renesas,qspi-r8a7792" (R-Car V2H) From d6faf985603c2d20dff2803b4a0d63d8f41dab87 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 8 Mar 2018 17:54:38 +0000 Subject: [PATCH 0276/1149] ARM: dts: r8a7743: Add QSPI support Add the DT node for the QSPI interface to the SoC dtsi. Signed-off-by: Fabrizio Castro Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 450c03718e971880ae067dc5f94a86f961acd6c3) (changed clocks and power-domains property, removed resets property) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 644f91690d65..82744310e709 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -28,6 +28,7 @@ i2c6 = &iic0; i2c7 = &iic1; i2c8 = &iic3; + spi0 = &qspi; spi1 = &msiof0; spi2 = &msiof1; spi3 = &msiof2; @@ -784,6 +785,21 @@ status = "disabled"; }; + qspi: spi@e6b10000 { + compatible = "renesas,qspi-r8a7743", "renesas,qspi"; + reg = <0 0xe6b10000 0 0x2c>; + interrupts = ; + clocks = <&mstp9_clks R8A7743_CLK_QSPI_MOD>; + dmas = <&dmac0 0x17>, <&dmac0 0x18>, + <&dmac1 0x17>, <&dmac1 0x18>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + num-cs = <1>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + msiof0: spi@e6e20000 { compatible = "renesas,msiof-r8a7743", "renesas,rcar-gen2-msiof"; From 7ab4c2d66738097f5ff6946436830b0d3c0c5518 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 8 Mar 2018 17:54:39 +0000 Subject: [PATCH 0277/1149] ARM: dts: iwg20m: Add SPI NOR support Add support for the SPI NOR device used to boot up the system to the System on Module DT. Signed-off-by: Fabrizio Castro Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 781e923a5fe4751d3aaa740ca3de0f9d179c34ef) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743-iwg20m.dtsi | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743-iwg20m.dtsi b/arch/arm/boot/dts/r8a7743-iwg20m.dtsi index 4119737cb883..75a8ca571846 100644 --- a/arch/arm/boot/dts/r8a7743-iwg20m.dtsi +++ b/arch/arm/boot/dts/r8a7743-iwg20m.dtsi @@ -44,6 +44,11 @@ function = "mmc"; }; + qspi_pins: qspi { + groups = "qspi_ctrl", "qspi_data2"; + function = "qspi"; + }; + sdhi0_pins: sd0 { groups = "sdhi0_data4", "sdhi0_ctrl"; function = "sdhi0"; @@ -61,6 +66,27 @@ status = "okay"; }; +&qspi { + pinctrl-0 = <&qspi_pins>; + pinctrl-names = "default"; + + status = "okay"; + + /* WARNING - This device contains the bootloader. Handle with care. */ + flash: flash@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "sst,sst25vf016b", "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <50000000>; + spi-tx-bus-width = <1>; + spi-rx-bus-width = <1>; + m25p,fast-read; + spi-cpol; + spi-cpha; + }; +}; + &sdhi0 { pinctrl-0 = <&sdhi0_pins>; pinctrl-names = "default"; From d09ccbb733864223402b541bdb9897cfe811881c Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 9 Mar 2018 09:57:01 +0000 Subject: [PATCH 0278/1149] usb: host: xhci-plat: Add r8a7743 support This patch adds xhci r8a7743 driver support. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/usb/host/xhci-plat.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c index 7afd607ea60f..8e6ec16113f6 100644 --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c @@ -53,7 +53,8 @@ static int xhci_plat_setup(struct usb_hcd *hcd) int ret; if (of_device_is_compatible(of_node, "renesas,xhci-r8a7790") || - of_device_is_compatible(of_node, "renesas,xhci-r8a7791")) { + of_device_is_compatible(of_node, "renesas,xhci-r8a7791") || + of_device_is_compatible(of_node, "renesas,xhci-r8a7743")) { ret = xhci_rcar_init_quirk(hcd); if (ret) return ret; @@ -67,7 +68,8 @@ static int xhci_plat_start(struct usb_hcd *hcd) struct device_node *of_node = hcd->self.controller->of_node; if (of_device_is_compatible(of_node, "renesas,xhci-r8a7790") || - of_device_is_compatible(of_node, "renesas,xhci-r8a7791")) + of_device_is_compatible(of_node, "renesas,xhci-r8a7791") || + of_device_is_compatible(of_node, "renesas,xhci-r8a7743")) xhci_rcar_start(hcd); return xhci_run(hcd); @@ -267,6 +269,7 @@ static const struct of_device_id usb_xhci_of_match[] = { { .compatible = "xhci-platform" }, { .compatible = "marvell,armada-375-xhci"}, { .compatible = "marvell,armada-380-xhci"}, + { .compatible = "renesas,xhci-r8a7743"}, { .compatible = "renesas,xhci-r8a7790"}, { .compatible = "renesas,xhci-r8a7791"}, { }, From 9967b1e2570ab838eef9f918cb8781e3b34c0f72 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 9 Mar 2018 09:57:02 +0000 Subject: [PATCH 0279/1149] dt-bindings: usb-xhci: Document r8a7743 support Document r8a7743 xhci support. The driver will use the fallback compatible string "renesas,rcar-gen2-xhci", therefore no driver change is needed. Signed-off-by: Fabrizio Castro Reviewed-by: Yoshihiro Shimoda Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman (cherry picked from commit 5fd29937dec4b64aa91a3207742cd8c720cd0595) (removed "renesas,rcar-gen2-xhci" fallback compatible string) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/usb/usb-xhci.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/usb/usb-xhci.txt b/Documentation/devicetree/bindings/usb/usb-xhci.txt index 86f67f0886bc..fce0320dd574 100644 --- a/Documentation/devicetree/bindings/usb/usb-xhci.txt +++ b/Documentation/devicetree/bindings/usb/usb-xhci.txt @@ -3,8 +3,8 @@ USB xHCI controllers Required properties: - compatible: should be one of "generic-xhci", "marvell,armada-375-xhci", "marvell,armada-380-xhci", - "renesas,xhci-r8a7790", "renesas,xhci-r8a7791" (deprecated: - "xhci-platform"). + "renesas,xhci-r8a7790", "renesas,xhci-r8a7791", "renesas,xhci-r8a7743" + (deprecated: "xhci-platform"). - reg: should contain address and length of the standard XHCI register set for the device. - interrupts: one XHCI interrupt should be described here. From 55cef058a08cf0be9edc27aa188818dfce0d8872 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 9 Mar 2018 09:57:03 +0000 Subject: [PATCH 0280/1149] ARM: dts: r8a7743: Add xhci support to SoC dtsi Add node for xhci. Boards DT files will enable it if needed. Signed-off-by: Fabrizio Castro Reviewed-by: Yoshihiro Shimoda Signed-off-by: Simon Horman (cherry picked from commit b6d3b649441936621c87b79bff8dd436e2397e3c) (modified clocks and power-domains properties, removed resets property) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 82744310e709..eb3cdc89d70d 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -845,6 +845,24 @@ status = "disabled"; }; + /* + * pci1 and xhci share the same phy, therefore only one of them + * can be active at any one time. If both of them are enabled, + * a race condition will determine who'll control the phy. + * A firmware file is needed by the xhci driver in order for + * USB 3.0 to work properly. + */ + xhci: usb@ee000000 { + compatible = "renesas,xhci-r8a7743"; + reg = <0 0xee000000 0 0xc00>; + interrupts = ; + clocks = <&mstp3_clks R8A7743_CLK_SSUSB>; + power-domains = <&cpg_clocks>; + phys = <&usb2 1>; + phy-names = "usb"; + status = "disabled"; + }; + clocks { #address-cells = <2>; #size-cells = <2>; From 2f44d1cd75f2eb3004e9876df65c1d28e9ff4fb0 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Fri, 9 Mar 2018 09:57:04 +0000 Subject: [PATCH 0281/1149] ARM: shmobile: enable XHCI_RCAR in defconfig Signed-off-by: Simon Horman (cherry picked from commit ae6b99bc6928d13856172f287ee21be2eac39673) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/configs/shmobile_defconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/configs/shmobile_defconfig b/arch/arm/configs/shmobile_defconfig index 2e793324fec8..30a34242f1c3 100644 --- a/arch/arm/configs/shmobile_defconfig +++ b/arch/arm/configs/shmobile_defconfig @@ -162,6 +162,8 @@ CONFIG_SND_SOC_RSRC_CARD=y CONFIG_SND_SOC_AK4642=y CONFIG_SND_SOC_WM8978=y CONFIG_USB=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_RCAR=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_OHCI_HCD=y CONFIG_USB_R8A66597_HCD=y From 4c5667275f97ea63c597f946df0ecba2ef0d6801 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Tue, 10 Apr 2018 20:19:06 +0100 Subject: [PATCH 0282/1149] CIP: Bump version suffix to -cip22 after Renesas patches Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index b7919e72719f..4b19f164aedf 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip21 +-cip22 From 60d06ca71d7bd50e6f24ebbd93bcb96160373bdc Mon Sep 17 00:00:00 2001 From: Richard Guy Briggs Date: Tue, 28 Jun 2016 12:06:58 -0400 Subject: [PATCH 0283/1149] audit: move calcs after alloc and check when logging set loginuid commit 76a658c20efd541a62838d9ff68ce94170d7a549 upstream. Move the calculations of values after the allocation in case the allocation fails. This avoids wasting effort in the rare case that it fails, but more importantly saves us extra logic to release the tty ref. Signed-off-by: Richard Guy Briggs Signed-off-by: Paul Moore Cc: Ben Hutchings Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- kernel/auditsc.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/kernel/auditsc.c b/kernel/auditsc.c index 4bdea31cf6ce..7444f95f3ee9 100644 --- a/kernel/auditsc.c +++ b/kernel/auditsc.c @@ -1981,14 +1981,15 @@ static void audit_log_set_loginuid(kuid_t koldloginuid, kuid_t kloginuid, if (!audit_enabled) return; + ab = audit_log_start(NULL, GFP_KERNEL, AUDIT_LOGIN); + if (!ab) + return; + uid = from_kuid(&init_user_ns, task_uid(current)); oldloginuid = from_kuid(&init_user_ns, koldloginuid); loginuid = from_kuid(&init_user_ns, kloginuid), tty = audit_get_tty(current); - ab = audit_log_start(NULL, GFP_KERNEL, AUDIT_LOGIN); - if (!ab) - return; audit_log_format(ab, "pid=%d uid=%u", task_pid_nr(current), uid); audit_log_task_context(ab); audit_log_format(ab, " old-auid=%u auid=%u tty=%s old-ses=%u ses=%u res=%d", From db9b85107a52d753fc0eb4141a8733c631d811ac Mon Sep 17 00:00:00 2001 From: Mel Gorman Date: Wed, 9 Aug 2017 08:27:11 +0100 Subject: [PATCH 0284/1149] futex: Remove unnecessary warning from get_futex_key commit 48fb6f4db940e92cfb16cd878cddd59ea6120d06 upstream. Commit 65d8fc777f6d ("futex: Remove requirement for lock_page() in get_futex_key()") removed an unnecessary lock_page() with the side-effect that page->mapping needed to be treated very carefully. Two defensive warnings were added in case any assumption was missed and the first warning assumed a correct application would not alter a mapping backing a futex key. Since merging, it has not triggered for any unexpected case but Mark Rutland reported the following bug triggering due to the first warning. kernel BUG at kernel/futex.c:679! Internal error: Oops - BUG: 0 [#1] PREEMPT SMP Modules linked in: CPU: 0 PID: 3695 Comm: syz-executor1 Not tainted 4.13.0-rc3-00020-g307fec773ba3 #3 Hardware name: linux,dummy-virt (DT) task: ffff80001e271780 task.stack: ffff000010908000 PC is at get_futex_key+0x6a4/0xcf0 kernel/futex.c:679 LR is at get_futex_key+0x6a4/0xcf0 kernel/futex.c:679 pc : [] lr : [] pstate: 80000145 The fact that it's a bug instead of a warning was due to an unrelated arm64 problem, but the warning itself triggered because the underlying mapping changed. This is an application issue but from a kernel perspective it's a recoverable situation and the warning is unnecessary so this patch removes the warning. The warning may potentially be triggered with the following test program from Mark although it may be necessary to adjust NR_FUTEX_THREADS to be a value smaller than the number of CPUs in the system. #include #include #include #include #include #include #include #include #define NR_FUTEX_THREADS 16 pthread_t threads[NR_FUTEX_THREADS]; void *mem; #define MEM_PROT (PROT_READ | PROT_WRITE) #define MEM_SIZE 65536 static int futex_wrapper(int *uaddr, int op, int val, const struct timespec *timeout, int *uaddr2, int val3) { syscall(SYS_futex, uaddr, op, val, timeout, uaddr2, val3); } void *poll_futex(void *unused) { for (;;) { futex_wrapper(mem, FUTEX_CMP_REQUEUE_PI, 1, NULL, mem + 4, 1); } } int main(int argc, char *argv[]) { int i; mem = mmap(NULL, MEM_SIZE, MEM_PROT, MAP_SHARED | MAP_ANONYMOUS, -1, 0); printf("Mapping @ %p\n", mem); printf("Creating futex threads...\n"); for (i = 0; i < NR_FUTEX_THREADS; i++) pthread_create(&threads[i], NULL, poll_futex, NULL); printf("Flipping mapping...\n"); for (;;) { mmap(mem, MEM_SIZE, MEM_PROT, MAP_FIXED | MAP_SHARED | MAP_ANONYMOUS, -1, 0); } return 0; } Reported-and-tested-by: Mark Rutland Signed-off-by: Mel Gorman Acked-by: Peter Zijlstra (Intel) Cc: stable@vger.kernel.org # 4.7+ Signed-off-by: Linus Torvalds Cc: Ben Hutchings Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- kernel/futex.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/kernel/futex.c b/kernel/futex.c index a12aa6785361..ca659410e58c 100644 --- a/kernel/futex.c +++ b/kernel/futex.c @@ -666,13 +666,14 @@ get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key, int rw) * this reference was taken by ihold under the page lock * pinning the inode in place so i_lock was unnecessary. The * only way for this check to fail is if the inode was - * truncated in parallel so warn for now if this happens. + * truncated in parallel which is almost certainly an + * application bug. In such a case, just retry. * * We are not calling into get_futex_key_refs() in file-backed * cases, therefore a successful atomic_inc return below will * guarantee that get_futex_key() will still imply smp_mb(); (B). */ - if (WARN_ON_ONCE(!atomic_inc_not_zero(&inode->i_count))) { + if (!atomic_inc_not_zero(&inode->i_count)) { rcu_read_unlock(); put_page(page_head); From 408658a76ce18a833ab24975a058dae2b9d8a9a9 Mon Sep 17 00:00:00 2001 From: Vasily Averin Date: Thu, 2 Nov 2017 13:03:42 +0300 Subject: [PATCH 0285/1149] lockd: lost rollback of set_grace_period() in lockd_down_net() commit 3a2b19d1ee5633f76ae8a88da7bc039a5d1732aa upstream. Commit efda760fe95ea ("lockd: fix lockd shutdown race") is incorrect, it removes lockd_manager and disarm grace_period_end for init_net only. If nfsd was started from another net namespace lockd_up_net() calls set_grace_period() that adds lockd_manager into per-netns list and queues grace_period_end delayed work. These action should be reverted in lockd_down_net(). Otherwise it can lead to double list_add on after restart nfsd in netns, and to use-after-free if non-disarmed delayed work will be executed after netns destroy. Fixes: efda760fe95e ("lockd: fix lockd shutdown race") Cc: stable@vger.kernel.org Signed-off-by: Vasily Averin Signed-off-by: J. Bruce Fields Cc: Ben Hutchings Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- fs/lockd/svc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fs/lockd/svc.c b/fs/lockd/svc.c index a2edb0049eb5..f038d4ac9aec 100644 --- a/fs/lockd/svc.c +++ b/fs/lockd/svc.c @@ -271,6 +271,8 @@ static void lockd_down_net(struct svc_serv *serv, struct net *net) if (ln->nlmsvc_users) { if (--ln->nlmsvc_users == 0) { nlm_shutdown_hosts_net(net); + cancel_delayed_work_sync(&ln->grace_period_end); + locks_end_grace(&ln->lockd_manager); svc_shutdown_net(serv, net); dprintk("lockd_down_net: per-net data destroyed; net=%p\n", net); } From fb58eaf97014fd32a94c1e586ec7124d65b3af67 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Wed, 10 Feb 2016 12:47:03 +0100 Subject: [PATCH 0286/1149] ALSA: timer: Call notifier in the same spinlock commit f65e0d299807d8a11812845c972493c3f9a18e10 upstream. snd_timer_notify1() is called outside the spinlock and it retakes the lock after the unlock. This is rather racy, and it's safer to move snd_timer_notify() call inside the main spinlock. The patch also contains a slight refactoring / cleanup of the code. Now all start/stop/continue/pause look more symmetric and a bit better readable. Signed-off-by: Takashi Iwai Cc: Ben Hutchings Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- sound/core/timer.c | 220 +++++++++++++++++++++------------------------ 1 file changed, 102 insertions(+), 118 deletions(-) diff --git a/sound/core/timer.c b/sound/core/timer.c index 48eaccba82a3..5a718b2d3c9a 100644 --- a/sound/core/timer.c +++ b/sound/core/timer.c @@ -318,8 +318,6 @@ int snd_timer_open(struct snd_timer_instance **ti, return 0; } -static int _snd_timer_stop(struct snd_timer_instance *timeri, int event); - /* * close a timer instance */ @@ -408,7 +406,6 @@ unsigned long snd_timer_resolution(struct snd_timer_instance *timeri) static void snd_timer_notify1(struct snd_timer_instance *ti, int event) { struct snd_timer *timer; - unsigned long flags; unsigned long resolution = 0; struct snd_timer_instance *ts; struct timespec tstamp; @@ -432,34 +429,66 @@ static void snd_timer_notify1(struct snd_timer_instance *ti, int event) return; if (timer->hw.flags & SNDRV_TIMER_HW_SLAVE) return; - spin_lock_irqsave(&timer->lock, flags); list_for_each_entry(ts, &ti->slave_active_head, active_list) if (ts->ccallback) ts->ccallback(ts, event + 100, &tstamp, resolution); - spin_unlock_irqrestore(&timer->lock, flags); } -static int snd_timer_start1(struct snd_timer *timer, struct snd_timer_instance *timeri, - unsigned long sticks) +/* start/continue a master timer */ +static int snd_timer_start1(struct snd_timer_instance *timeri, + bool start, unsigned long ticks) { + struct snd_timer *timer; + int result; + unsigned long flags; + + timer = timeri->timer; + if (!timer) + return -EINVAL; + + spin_lock_irqsave(&timer->lock, flags); + if (timer->card && timer->card->shutdown) { + result = -ENODEV; + goto unlock; + } + if (timeri->flags & (SNDRV_TIMER_IFLG_RUNNING | + SNDRV_TIMER_IFLG_START)) { + result = -EBUSY; + goto unlock; + } + + if (start) + timeri->ticks = timeri->cticks = ticks; + else if (!timeri->cticks) + timeri->cticks = 1; + timeri->pticks = 0; + list_move_tail(&timeri->active_list, &timer->active_list_head); if (timer->running) { if (timer->hw.flags & SNDRV_TIMER_HW_SLAVE) goto __start_now; timer->flags |= SNDRV_TIMER_FLG_RESCHED; timeri->flags |= SNDRV_TIMER_IFLG_START; - return 1; /* delayed start */ + result = 1; /* delayed start */ } else { - timer->sticks = sticks; + if (start) + timer->sticks = ticks; timer->hw.start(timer); __start_now: timer->running++; timeri->flags |= SNDRV_TIMER_IFLG_RUNNING; - return 0; + result = 0; } + snd_timer_notify1(timeri, start ? SNDRV_TIMER_EVENT_START : + SNDRV_TIMER_EVENT_CONTINUE); + unlock: + spin_unlock_irqrestore(&timer->lock, flags); + return result; } -static int snd_timer_start_slave(struct snd_timer_instance *timeri) +/* start/continue a slave timer */ +static int snd_timer_start_slave(struct snd_timer_instance *timeri, + bool start) { unsigned long flags; @@ -473,88 +502,37 @@ static int snd_timer_start_slave(struct snd_timer_instance *timeri) spin_lock(&timeri->timer->lock); list_add_tail(&timeri->active_list, &timeri->master->slave_active_head); + snd_timer_notify1(timeri, start ? SNDRV_TIMER_EVENT_START : + SNDRV_TIMER_EVENT_CONTINUE); spin_unlock(&timeri->timer->lock); } spin_unlock_irqrestore(&slave_active_lock, flags); return 1; /* delayed start */ } -/* - * start the timer instance - */ -int snd_timer_start(struct snd_timer_instance *timeri, unsigned int ticks) +/* stop/pause a master timer */ +static int snd_timer_stop1(struct snd_timer_instance *timeri, bool stop) { struct snd_timer *timer; - int result = -EINVAL; + int result = 0; unsigned long flags; - if (timeri == NULL || ticks < 1) - return -EINVAL; - if (timeri->flags & SNDRV_TIMER_IFLG_SLAVE) { - result = snd_timer_start_slave(timeri); - if (result >= 0) - snd_timer_notify1(timeri, SNDRV_TIMER_EVENT_START); - return result; - } - timer = timeri->timer; - if (timer == NULL) - return -EINVAL; - if (timer->card && timer->card->shutdown) - return -ENODEV; - spin_lock_irqsave(&timer->lock, flags); - if (timeri->flags & (SNDRV_TIMER_IFLG_RUNNING | - SNDRV_TIMER_IFLG_START)) { - result = -EBUSY; - goto unlock; - } - timeri->ticks = timeri->cticks = ticks; - timeri->pticks = 0; - result = snd_timer_start1(timer, timeri, ticks); - unlock: - spin_unlock_irqrestore(&timer->lock, flags); - if (result >= 0) - snd_timer_notify1(timeri, SNDRV_TIMER_EVENT_START); - return result; -} - -static int _snd_timer_stop(struct snd_timer_instance *timeri, int event) -{ - struct snd_timer *timer; - unsigned long flags; - - if (snd_BUG_ON(!timeri)) - return -ENXIO; - - if (timeri->flags & SNDRV_TIMER_IFLG_SLAVE) { - spin_lock_irqsave(&slave_active_lock, flags); - if (!(timeri->flags & SNDRV_TIMER_IFLG_RUNNING)) { - spin_unlock_irqrestore(&slave_active_lock, flags); - return -EBUSY; - } - if (timeri->timer) - spin_lock(&timeri->timer->lock); - timeri->flags &= ~SNDRV_TIMER_IFLG_RUNNING; - list_del_init(&timeri->ack_list); - list_del_init(&timeri->active_list); - if (timeri->timer) - spin_unlock(&timeri->timer->lock); - spin_unlock_irqrestore(&slave_active_lock, flags); - goto __end; - } timer = timeri->timer; if (!timer) return -EINVAL; spin_lock_irqsave(&timer->lock, flags); if (!(timeri->flags & (SNDRV_TIMER_IFLG_RUNNING | SNDRV_TIMER_IFLG_START))) { - spin_unlock_irqrestore(&timer->lock, flags); - return -EBUSY; + result = -EBUSY; + goto unlock; } list_del_init(&timeri->ack_list); list_del_init(&timeri->active_list); - if (timer->card && timer->card->shutdown) { - spin_unlock_irqrestore(&timer->lock, flags); - return 0; + if (timer->card && timer->card->shutdown) + goto unlock; + if (stop) { + timeri->cticks = timeri->ticks; + timeri->pticks = 0; } if ((timeri->flags & SNDRV_TIMER_IFLG_RUNNING) && !(--timer->running)) { @@ -569,13 +547,49 @@ static int _snd_timer_stop(struct snd_timer_instance *timeri, int event) } } timeri->flags &= ~(SNDRV_TIMER_IFLG_RUNNING | SNDRV_TIMER_IFLG_START); + snd_timer_notify1(timeri, stop ? SNDRV_TIMER_EVENT_STOP : + SNDRV_TIMER_EVENT_CONTINUE); + unlock: spin_unlock_irqrestore(&timer->lock, flags); - __end: - if (event != SNDRV_TIMER_EVENT_RESOLUTION) - snd_timer_notify1(timeri, event); + return result; +} + +/* stop/pause a slave timer */ +static int snd_timer_stop_slave(struct snd_timer_instance *timeri, bool stop) +{ + unsigned long flags; + + spin_lock_irqsave(&slave_active_lock, flags); + if (!(timeri->flags & SNDRV_TIMER_IFLG_RUNNING)) { + spin_unlock_irqrestore(&slave_active_lock, flags); + return -EBUSY; + } + timeri->flags &= ~SNDRV_TIMER_IFLG_RUNNING; + if (timeri->timer) { + spin_lock(&timeri->timer->lock); + list_del_init(&timeri->ack_list); + list_del_init(&timeri->active_list); + snd_timer_notify1(timeri, stop ? SNDRV_TIMER_EVENT_STOP : + SNDRV_TIMER_EVENT_CONTINUE); + spin_unlock(&timeri->timer->lock); + } + spin_unlock_irqrestore(&slave_active_lock, flags); return 0; } +/* + * start the timer instance + */ +int snd_timer_start(struct snd_timer_instance *timeri, unsigned int ticks) +{ + if (timeri == NULL || ticks < 1) + return -EINVAL; + if (timeri->flags & SNDRV_TIMER_IFLG_SLAVE) + return snd_timer_start_slave(timeri, true); + else + return snd_timer_start1(timeri, true, ticks); +} + /* * stop the timer instance. * @@ -583,21 +597,10 @@ static int _snd_timer_stop(struct snd_timer_instance *timeri, int event) */ int snd_timer_stop(struct snd_timer_instance *timeri) { - struct snd_timer *timer; - unsigned long flags; - int err; - - err = _snd_timer_stop(timeri, SNDRV_TIMER_EVENT_STOP); - if (err < 0) - return err; - timer = timeri->timer; - if (!timer) - return -EINVAL; - spin_lock_irqsave(&timer->lock, flags); - timeri->cticks = timeri->ticks; - timeri->pticks = 0; - spin_unlock_irqrestore(&timer->lock, flags); - return 0; + if (timeri->flags & SNDRV_TIMER_IFLG_SLAVE) + return snd_timer_stop_slave(timeri, true); + else + return snd_timer_stop1(timeri, true); } /* @@ -605,32 +608,10 @@ int snd_timer_stop(struct snd_timer_instance *timeri) */ int snd_timer_continue(struct snd_timer_instance *timeri) { - struct snd_timer *timer; - int result = -EINVAL; - unsigned long flags; - - if (timeri == NULL) - return result; if (timeri->flags & SNDRV_TIMER_IFLG_SLAVE) - return snd_timer_start_slave(timeri); - timer = timeri->timer; - if (! timer) - return -EINVAL; - if (timer->card && timer->card->shutdown) - return -ENODEV; - spin_lock_irqsave(&timer->lock, flags); - if (timeri->flags & SNDRV_TIMER_IFLG_RUNNING) { - result = -EBUSY; - goto unlock; - } - if (!timeri->cticks) - timeri->cticks = 1; - timeri->pticks = 0; - result = snd_timer_start1(timer, timeri, timer->sticks); - unlock: - spin_unlock_irqrestore(&timer->lock, flags); - snd_timer_notify1(timeri, SNDRV_TIMER_EVENT_CONTINUE); - return result; + return snd_timer_start_slave(timeri, false); + else + return snd_timer_start1(timeri, false, 0); } /* @@ -638,7 +619,10 @@ int snd_timer_continue(struct snd_timer_instance *timeri) */ int snd_timer_pause(struct snd_timer_instance * timeri) { - return _snd_timer_stop(timeri, SNDRV_TIMER_EVENT_PAUSE); + if (timeri->flags & SNDRV_TIMER_IFLG_SLAVE) + return snd_timer_stop_slave(timeri, false); + else + return snd_timer_stop1(timeri, false); } /* From 08acbfc3bafa340ea7ec645c4958da3b4906fa2a Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 17 May 2018 22:35:59 +0100 Subject: [PATCH 0287/1149] CIP: Bump version suffix to -cip23 after merge from stable ...plus fixes for regressions, and a missing dependency. Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 4b19f164aedf..1fef53f319cc 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip22 +-cip23 From 82adb6760e689846b3b22476776e624e57d3ad38 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Tue, 15 May 2018 12:19:51 +0100 Subject: [PATCH 0288/1149] dt-bindings: display: rcar-du: Document R8A774[35] DU Add device tree bindings for r8a7743 and r8a7745 DUs. r8a7743 DU is similar to the one from r8a7791, r8a7745 DU is similar to the one from r8a7794. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Laurent Pinchart [Don't reference R8A779[0123456] and R8A774[35] explicitly] [Number all DPAD, HDMI and LVDS ports] Signed-off-by: Laurent Pinchart (cherry picked from commit faf4a3ff36137aaa8de1a8da99a92f6e712903f1) (removed R-Car gen3 SoCs) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- .../bindings/display/renesas,du.txt | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/Documentation/devicetree/bindings/display/renesas,du.txt b/Documentation/devicetree/bindings/display/renesas,du.txt index eccd4f4867b2..2cc5fdde69d1 100644 --- a/Documentation/devicetree/bindings/display/renesas,du.txt +++ b/Documentation/devicetree/bindings/display/renesas,du.txt @@ -3,6 +3,8 @@ Required Properties: - compatible: must be one of the following. + - "renesas,du-r8a7743" for R8A7743 (RZ/G1M) compatible DU + - "renesas,du-r8a7745" for R8A7745 (RZ/G1E) compatible DU - "renesas,du-r8a7779" for R8A7779 (R-Car H1) compatible DU - "renesas,du-r8a7790" for R8A7790 (R-Car H2) compatible DU - "renesas,du-r8a7791" for R8A7791 (R-Car M2-W) compatible DU @@ -24,10 +26,10 @@ Required Properties: - clock-names: Name of the clocks. This property is model-dependent. - R8A7779 uses a single functional clock. The clock doesn't need to be named. - - R8A779[0134] use one functional clock per channel and one clock per LVDS - encoder (if available). The functional clocks must be named "du.x" with - "x" being the channel numerical index. The LVDS clocks must be named - "lvds.x" with "x" being the LVDS encoder numerical index. + - All other DU instances use one functional clock per channel and one + clock per LVDS encoder (if available). The functional clocks must be + named "du.x" with "x" being the channel numerical index. The LVDS clocks + must be named "lvds.x" with "x" being the LVDS encoder numerical index. - In addition to the functional and encoder clocks, all DU versions also support externally supplied pixel clocks. Those clocks are optional. When supplied they must be named "dclkin.x" with "x" being the input @@ -41,13 +43,15 @@ bindings specified in Documentation/devicetree/bindings/graph.txt. The following table lists for each supported model the port number corresponding to each DU output. - Port 0 Port1 Port2 + Port 0 Port1 Port2 ----------------------------------------------------------------------------- - R8A7779 (H1) DPAD 0 DPAD 1 - - R8A7790 (H2) DPAD LVDS 0 LVDS 1 - R8A7791 (M2-W) DPAD LVDS 0 - - R8A7793 (M2-N) DPAD LVDS 0 - - R8A7794 (E2) DPAD 0 DPAD 1 - + R8A7743 (RZ/G1M) DPAD 0 LVDS 0 - + R8A7745 (RZ/G1E) DPAD 0 DPAD 1 - + R8A7779 (R-Car H1) DPAD 0 DPAD 1 - + R8A7790 (R-Car H2) DPAD 0 LVDS 0 LVDS 1 + R8A7791 (R-Car M2-W) DPAD 0 LVDS 0 - + R8A7793 (R-Car M2-N) DPAD 0 LVDS 0 - + R8A7794 (R-Car E2) DPAD 0 DPAD 1 - Example: R8A7790 (R-Car H2) DU From 97c8b2f49a03c8585b5e3241ed30b648de0d965f Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Tue, 15 May 2018 12:19:52 +0100 Subject: [PATCH 0289/1149] drm: rcar-du: Add R8A7743 support Add support for the R8A7743 DU (which is very similar to the R8A7791 DU); it has 1 DPAD (RGB) output and 1 LVDS output. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Laurent Pinchart (cherry picked from commit 36a46da90212ddeeb78c2f902caaca264d8496a9) (removed .gen/added .encoder_type from/to rzg1_du_r8a7743_info) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/gpu/drm/rcar-du/rcar_du_drv.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c index bb9cd35d7fdf..eee90f52a676 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c @@ -35,6 +35,28 @@ * Device Information */ +static const struct rcar_du_device_info rzg1_du_r8a7743_info = { + .features = RCAR_DU_FEATURE_CRTC_IRQ_CLOCK + | RCAR_DU_FEATURE_EXT_CTRL_REGS, + .num_crtcs = 2, + .routes = { + /* + * R8A7743 has one RGB output and one LVDS output + */ + [RCAR_DU_OUTPUT_DPAD0] = { + .possible_crtcs = BIT(1) | BIT(0), + .encoder_type = DRM_MODE_ENCODER_NONE, + .port = 0, + }, + [RCAR_DU_OUTPUT_LVDS0] = { + .possible_crtcs = BIT(0), + .encoder_type = DRM_MODE_ENCODER_LVDS, + .port = 1, + }, + }, + .num_lvds = 1, +}; + static const struct rcar_du_device_info rcar_du_r8a7779_info = { .features = 0, .num_crtcs = 2, @@ -130,6 +152,7 @@ static const struct rcar_du_device_info rcar_du_r8a7794_info = { }; static const struct of_device_id rcar_du_of_table[] = { + { .compatible = "renesas,du-r8a7743", .data = &rzg1_du_r8a7743_info }, { .compatible = "renesas,du-r8a7779", .data = &rcar_du_r8a7779_info }, { .compatible = "renesas,du-r8a7790", .data = &rcar_du_r8a7790_info }, { .compatible = "renesas,du-r8a7791", .data = &rcar_du_r8a7791_info }, From 37d04cae55aafe55eb1d28610901d74e9ae797b4 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Tue, 15 May 2018 12:19:53 +0100 Subject: [PATCH 0290/1149] ARM: dts: r8a7743: Add DU support Add du node to r8a7743 SoC DT. Boards that want to enable the DU need to specify the output topology. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Laurent Pinchart Signed-off-by: Simon Horman (cherry picked from commit 0d975e29a51011c244d41e16a59a26fddf6ea281) (changed clocks property) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index eb3cdc89d70d..173eae5d912a 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -1330,6 +1330,36 @@ }; }; + du: display@feb00000 { + compatible = "renesas,du-r8a7743"; + reg = <0 0xfeb00000 0 0x40000>, + <0 0xfeb90000 0 0x1c>; + reg-names = "du", "lvds.0"; + interrupts = , + ; + clocks = <&mstp7_clks R8A7743_CLK_DU0>, + <&mstp7_clks R8A7743_CLK_DU1>, + <&mstp7_clks R8A7743_CLK_LVDS0>; + clock-names = "du.0", "du.1", "lvds.0"; + status = "disabled"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + du_out_rgb: endpoint { + }; + }; + port@1 { + reg = <1>; + du_out_lvds0: endpoint { + }; + }; + }; + }; + pci0: pci@ee090000 { compatible = "renesas,pci-r8a7743", "renesas,pci-rcar-gen2"; From bc4390d1a913f422c4e5ab8147e298f296dd0477 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Tue, 15 May 2018 12:19:54 +0100 Subject: [PATCH 0291/1149] ARM: dts: iwg20d-q7-dbcm-ca: Add HDMI video output Although there is a HDMI connector on the q7 carrier board it is not connected to the RZ/G1M SoC. One must use the HDMI connector on the camera daughter board. This patch adds support for this connector. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Laurent Pinchart Signed-off-by: Simon Horman (cherry picked from commit 55cce0a07678e5fe21c7f81cc437653b485a712c) (taken out interrupt support) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi | 73 ++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi b/arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi index 31fab5f183a9..b9c377e5c361 100644 --- a/arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi +++ b/arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi @@ -13,6 +13,37 @@ serial1 = &scif1; serial4 = &hscif1; }; + + cec_clock: cec-clock { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <12000000>; + }; + + hdmi-out { + compatible = "hdmi-connector"; + type = "a"; + + port { + hdmi_con_out: endpoint { + remote-endpoint = <&adv7511_out>; + }; + }; + }; +}; + +&du { + pinctrl-0 = <&du_pins>; + pinctrl-names = "default"; + status = "okay"; + + ports { + port@0 { + endpoint { + remote-endpoint = <&adv7511_in>; + }; + }; + }; }; &hscif1 { @@ -23,7 +54,49 @@ status = "okay"; }; +&i2c5 { + status = "okay"; + clock-frequency = <400000>; + + hdmi@39 { + compatible = "adi,adv7511w"; + reg = <0x39>; + clocks = <&cec_clock>; + clock-names = "cec"; + + adi,input-depth = <8>; + adi,input-colorspace = "rgb"; + adi,input-clock = "1x"; + adi,input-style = <1>; + adi,input-justification = "evenly"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + adv7511_in: endpoint { + remote-endpoint = <&du_out_rgb>; + }; + }; + + port@1 { + reg = <1>; + adv7511_out: endpoint { + remote-endpoint = <&hdmi_con_out>; + }; + }; + }; + }; +}; + &pfc { + du_pins: du { + groups = "du_rgb888", "du_sync", "du_oddf", "du_clk_out_0"; + function = "du"; + }; + hscif1_pins: hscif1 { groups = "hscif1_data_c", "hscif1_ctrl_c"; function = "hscif1"; From 0e2bac5e452b8f6eb02117505e165f26780736b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Date: Tue, 15 May 2018 12:19:55 +0100 Subject: [PATCH 0292/1149] ARM: shmobile: defconfig: Enable CMA for DMA MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit To be able to use VIN with larger frame sizes CMA memory are needed for DMA. If this is not enabled trying to capture large frames can result in errors such as: rcar-vin e6ef0000.video: dma_alloc_coherent of size 8388608 failed A CMA area of 64MB are needed for v4l2-compliance to pass on all formats on the largest possible frame size of 2048x2048. Signed-off-by: Niklas Söderlund Signed-off-by: Simon Horman (cherry picked from commit 77af670a7698bbc4dc9fd8bbd553b33bfb16b68a) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/configs/shmobile_defconfig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm/configs/shmobile_defconfig b/arch/arm/configs/shmobile_defconfig index 30a34242f1c3..733b4f228101 100644 --- a/arch/arm/configs/shmobile_defconfig +++ b/arch/arm/configs/shmobile_defconfig @@ -35,6 +35,7 @@ CONFIG_HAVE_ARM_ARCH_TIMER=y CONFIG_NR_CPUS=8 CONFIG_AEABI=y CONFIG_HIGHMEM=y +CONFIG_CMA=y CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_ARM_APPENDED_DTB=y @@ -58,6 +59,8 @@ CONFIG_IP_PNP_DHCP=y CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y +CONFIG_DMA_CMA=y +CONFIG_CMA_SIZE_MBYTES=64 CONFIG_SIMPLE_PM_BUS=y CONFIG_MTD=y CONFIG_MTD_BLOCK=y From fc6e92be1e37c5aa998c823004bae7c35a3862ff Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 29 May 2018 11:08:06 +0100 Subject: [PATCH 0293/1149] ARM: dts: r8a7743: Add VSP support Add VSP support to SoC DT. Signed-off-by: Biju Das (cherry picked from commit 0565605aa9887a3d6423fb08c0cbb0de3a22f838) (dropped resets property. changed clocks and power-domains properties. added vsp device configuration) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 42 ++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 173eae5d912a..e7705a6e8ee3 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -1360,6 +1360,48 @@ }; }; + vsp@fe928000 { + compatible = "renesas,vsp1"; + reg = <0 0xfe928000 0 0x8000>; + interrupts = ; + clocks = <&mstp1_clks R8A7743_CLK_VSP1_S>; + power-domains = <&cpg_clocks>; + + renesas,has-lut; + renesas,has-sru; + renesas,#rpf = <5>; + renesas,#uds = <3>; + renesas,#wpf = <4>; + }; + + vsp@fe930000 { + compatible = "renesas,vsp1"; + reg = <0 0xfe930000 0 0x8000>; + interrupts = ; + clocks = <&mstp1_clks R8A7743_CLK_VSP1_DU0>; + power-domains = <&cpg_clocks>; + + renesas,has-lif; + renesas,has-lut; + renesas,#rpf = <4>; + renesas,#uds = <1>; + renesas,#wpf = <4>; + }; + + vsp@fe938000 { + compatible = "renesas,vsp1"; + reg = <0 0xfe938000 0 0x8000>; + interrupts = ; + clocks = <&mstp1_clks R8A7743_CLK_VSP1_DU1>; + power-domains = <&cpg_clocks>; + + renesas,has-lif; + renesas,has-lut; + renesas,#rpf = <4>; + renesas,#uds = <1>; + renesas,#wpf = <4>; + }; + pci0: pci@ee090000 { compatible = "renesas,pci-r8a7743", "renesas,pci-rcar-gen2"; From 35db20324296dd164c0e2c30c73c23080f10a836 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 10 May 2018 16:07:50 +0100 Subject: [PATCH 0294/1149] pinctrl: sh-pfc: r8a7791: Add can_clk function This patch adds can_clk function to r8a7743/r8a7791 which is cleaner, and allows for independent configuration. We keep the can_clk* pins definitions from within can0_groups and can1_groups for uniformity and backwards compatibility. Signed-off-by: Fabrizio Castro Reviewed-by: Ramesh Shanmugasundaram Signed-off-by: Geert Uytterhoeven (cherry picked from commit 57eec02caee60332b8052615e7257f932ae07abc) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c index 351842e310d6..39fc9ad9945c 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c @@ -4830,6 +4830,10 @@ static const char * const can0_groups[] = { "can0_data_d", "can0_data_e", "can0_data_f", + /* + * Retained for backwards compatibility, use can_clk_groups in new + * designs. + */ "can_clk", "can_clk_b", "can_clk_c", @@ -4841,6 +4845,21 @@ static const char * const can1_groups[] = { "can1_data_b", "can1_data_c", "can1_data_d", + /* + * Retained for backwards compatibility, use can_clk_groups in new + * designs. + */ + "can_clk", + "can_clk_b", + "can_clk_c", + "can_clk_d", +}; + +/* + * can_clk_groups allows for independent configuration, use can_clk function + * in new designs. + */ +static const char * const can_clk_groups[] = { "can_clk", "can_clk_b", "can_clk_c", @@ -5312,7 +5331,7 @@ static const char * const vin2_groups[] = { }; static const struct { - struct sh_pfc_function common[56]; + struct sh_pfc_function common[57]; struct sh_pfc_function r8a779x[2]; } pinmux_functions = { .common = { @@ -5320,6 +5339,7 @@ static const struct { SH_PFC_FUNCTION(avb), SH_PFC_FUNCTION(can0), SH_PFC_FUNCTION(can1), + SH_PFC_FUNCTION(can_clk), SH_PFC_FUNCTION(du), SH_PFC_FUNCTION(du0), SH_PFC_FUNCTION(du1), From b0374760e97709d6a63b43b51d34447f7c476083 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Thu, 10 May 2018 16:07:51 +0100 Subject: [PATCH 0295/1149] can: rcar: add gen[12] fallback compatibility strings Add fallback compatibility string for R-Car Gen 1 and Gen2. In the case of Renesas R-Car hardware we know that there are generations of SoCs, e.g. Gen 1 and Gen 2. But beyond that its not clear what the relationship between IP blocks might be. For example, I believe that r8a7779 is older than r8a7778 but that doesn't imply that the latter is a descendant of the former or vice versa. We can, however, by examining the documentation and behaviour of the hardware at run-time observe that the current driver implementation appears to be compatible with the IP blocks on SoCs within a given generation. For the above reasons and convenience when enabling new SoCs a per-generation fallback compatibility string scheme being adopted for drivers for Renesas SoCs. Signed-off-by: Simon Horman Acked-by: Rob Herring Acked-by: Geert Uytterhoeven Signed-off-by: Marc Kleine-Budde (cherry picked from commit 0dfa61bba38513957240660a9cad82dd408789ca) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/net/can/rcar_can.txt | 8 +++++++- drivers/net/can/rcar_can.c | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/net/can/rcar_can.txt b/Documentation/devicetree/bindings/net/can/rcar_can.txt index 002d8440bf66..f2172fb42cd8 100644 --- a/Documentation/devicetree/bindings/net/can/rcar_can.txt +++ b/Documentation/devicetree/bindings/net/can/rcar_can.txt @@ -6,6 +6,12 @@ Required properties: "renesas,can-r8a7779" if CAN controller is a part of R8A7779 SoC. "renesas,can-r8a7790" if CAN controller is a part of R8A7790 SoC. "renesas,can-r8a7791" if CAN controller is a part of R8A7791 SoC. + "renesas,rcar-gen1-can" for a generic R-Car Gen1 compatible device. + "renesas,rcar-gen2-can" for a generic R-Car Gen2 compatible device. + When compatible with the generic version, nodes must list the + SoC-specific version corresponding to the platform first + followed by the generic version. + - reg: physical base address and size of the R-Car CAN register map. - interrupts: interrupt specifier for the sole interrupt. - clocks: phandles and clock specifiers for 3 CAN clock inputs. @@ -25,7 +31,7 @@ Example SoC common .dtsi file: can0: can@e6e80000 { - compatible = "renesas,can-r8a7791"; + compatible = "renesas,can-r8a7791", "renesas,rcar-gen2-can"; reg = <0 0xe6e80000 0 0x1000>; interrupts = <0 186 IRQ_TYPE_LEVEL_HIGH>; clocks = <&mstp9_clks R8A7791_CLK_RCAN0>, diff --git a/drivers/net/can/rcar_can.c b/drivers/net/can/rcar_can.c index bc46be39549d..ad3d2e0cb191 100644 --- a/drivers/net/can/rcar_can.c +++ b/drivers/net/can/rcar_can.c @@ -904,6 +904,8 @@ static const struct of_device_id rcar_can_of_table[] __maybe_unused = { { .compatible = "renesas,can-r8a7779" }, { .compatible = "renesas,can-r8a7790" }, { .compatible = "renesas,can-r8a7791" }, + { .compatible = "renesas,rcar-gen1-can" }, + { .compatible = "renesas,rcar-gen2-can" }, { } }; MODULE_DEVICE_TABLE(of, rcar_can_of_table); From 4402762e7117f81021af65c583dcbac36f9d51aa Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 10 May 2018 16:07:52 +0100 Subject: [PATCH 0296/1149] dt-bindings: can: rcar_can: document r8a774[35] can support Document "renesas,can-r8a7743" and "renesas,can-r8a7745" compatible strings. Since the fallback compatible string ("renesas,rcar-gen2-can") activates the right code in the driver, no driver change is needed. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Marc Kleine-Budde (cherry picked from commit 216bf2f490c214b8a0702b52cc957138ba24bc3f) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/net/can/rcar_can.txt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/net/can/rcar_can.txt b/Documentation/devicetree/bindings/net/can/rcar_can.txt index f2172fb42cd8..6f81b1fed909 100644 --- a/Documentation/devicetree/bindings/net/can/rcar_can.txt +++ b/Documentation/devicetree/bindings/net/can/rcar_can.txt @@ -2,12 +2,15 @@ Renesas R-Car CAN controller Device Tree Bindings ------------------------------------------------- Required properties: -- compatible: "renesas,can-r8a7778" if CAN controller is a part of R8A7778 SoC. +- compatible: "renesas,can-r8a7743" if CAN controller is a part of R8A7743 SoC. + "renesas,can-r8a7745" if CAN controller is a part of R8A7745 SoC. + "renesas,can-r8a7778" if CAN controller is a part of R8A7778 SoC. "renesas,can-r8a7779" if CAN controller is a part of R8A7779 SoC. "renesas,can-r8a7790" if CAN controller is a part of R8A7790 SoC. "renesas,can-r8a7791" if CAN controller is a part of R8A7791 SoC. "renesas,rcar-gen1-can" for a generic R-Car Gen1 compatible device. - "renesas,rcar-gen2-can" for a generic R-Car Gen2 compatible device. + "renesas,rcar-gen2-can" for a generic R-Car Gen2 or RZ/G1 + compatible device. When compatible with the generic version, nodes must list the SoC-specific version corresponding to the platform first followed by the generic version. From b5e7036753835dc4e348953cfbdb0764a704234a Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 10 May 2018 16:07:53 +0100 Subject: [PATCH 0297/1149] ARM: dts: r8a7743: Add CAN[01] SoC support Add the definitions for can0 and can1 to the SoC .dtsi. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 6ee6959fb85c3e03ec0674d329dc96c733f51dce) (updated clocks and power-domains property. removed resets property) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index eb3cdc89d70d..94ccda02b00f 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -1330,6 +1330,32 @@ }; }; + can0: can@e6e80000 { + compatible = "renesas,can-r8a7743", + "renesas,rcar-gen2-can"; + reg = <0 0xe6e80000 0 0x1000>; + interrupts = ; + clocks = <&mstp9_clks R8A7743_CLK_RCAN0>, + <&cpg_clocks R8A7743_CLK_RCAN>, + <&can_clk>; + clock-names = "clkp1", "clkp2", "can_clk"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + can1: can@e6e88000 { + compatible = "renesas,can-r8a7743", + "renesas,rcar-gen2-can"; + reg = <0 0xe6e88000 0 0x1000>; + interrupts = ; + clocks = <&mstp9_clks R8A7743_CLK_RCAN1>, + <&cpg_clocks R8A7743_CLK_RCAN>, + <&can_clk>; + clock-names = "clkp1", "clkp2", "can_clk"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + pci0: pci@ee090000 { compatible = "renesas,pci-r8a7743", "renesas,pci-rcar-gen2"; @@ -1420,6 +1446,14 @@ clock-frequency = <48000000>; }; + /* External CAN clock */ + can_clk: can { + compatible = "fixed-clock"; + #clock-cells = <0>; + /* This value must be overridden by the board. */ + clock-frequency = <0>; + }; + /* External SCIF clock */ scif_clk: scif { compatible = "fixed-clock"; From db9ae5b45e0e0c7271ec2341ff7fa7f09be3ff49 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 10 May 2018 16:07:54 +0100 Subject: [PATCH 0298/1149] ARM: dts: iwg20d-q7-common: Add can0 support to carrier board This patch enables CAN0 interface exposed through connector J20 on the carrier board. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 47f3c7b66b6d316f86b0ce957c99958da0268e36) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/iwg20d-q7-common.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/iwg20d-q7-common.dtsi b/arch/arm/boot/dts/iwg20d-q7-common.dtsi index 8f203c5792e6..0bcb42febb63 100644 --- a/arch/arm/boot/dts/iwg20d-q7-common.dtsi +++ b/arch/arm/boot/dts/iwg20d-q7-common.dtsi @@ -59,6 +59,13 @@ }; }; +&can0 { + pinctrl-0 = <&can0_pins>; + pinctrl-names = "default"; + + status = "okay"; +}; + &hsusb { status = "okay"; pinctrl-0 = <&usb0_pins>; @@ -79,6 +86,11 @@ }; &pfc { + can0_pins: can0 { + groups = "can0_data_d"; + function = "can0"; + }; + avb_pins: avb { groups = "avb_mdio", "avb_gmii"; function = "avb"; From 754fc76cd45e4e3c09100cbf737c84a723a74690 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 10 May 2018 16:07:55 +0100 Subject: [PATCH 0299/1149] ARM: dts: iwg20d-q7-dbcm-ca: Add can1 support to camera DB CAN1 interface is exposed via connector J3 found on the camera daughter board. This patch enables can1 DT node from within the daughter board specific dtsi. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 04e31b155f628e572d4ee2eeda5d6ee20ba86038) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi b/arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi index 31fab5f183a9..cbdfdc858f2b 100644 --- a/arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi +++ b/arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi @@ -15,6 +15,13 @@ }; }; +&can1 { + pinctrl-0 = <&can1_pins>; + pinctrl-names = "default"; + + status = "okay"; +}; + &hscif1 { pinctrl-0 = <&hscif1_pins>; pinctrl-names = "default"; @@ -24,6 +31,11 @@ }; &pfc { + can1_pins: can1 { + groups = "can1_data_d"; + function = "can1"; + }; + hscif1_pins: hscif1 { groups = "hscif1_data_c", "hscif1_ctrl_c"; function = "hscif1"; From 49b2a42823195d43db67e5a871b4ae3f0b30fef9 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 10 May 2018 16:07:56 +0100 Subject: [PATCH 0300/1149] ARM: shmobile: defconfig: Enable missing support based on DTSes Enable all missing support, extracted from the various Renesas ARM DTSes using linux-config-from-dt. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 6161cc147277e7537d73a45d732a7112997c20f6) (enabling CAN driver only) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/configs/shmobile_defconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/configs/shmobile_defconfig b/arch/arm/configs/shmobile_defconfig index 30a34242f1c3..dfbd2de7f341 100644 --- a/arch/arm/configs/shmobile_defconfig +++ b/arch/arm/configs/shmobile_defconfig @@ -55,6 +55,8 @@ CONFIG_UNIX=y CONFIG_INET=y CONFIG_IP_PNP=y CONFIG_IP_PNP_DHCP=y +CONFIG_CAN=y +CONFIG_CAN_RCAR=y CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y From a9387b79b2fe1f58eec786a5155c32328774064a Mon Sep 17 00:00:00 2001 From: Phil Edworthy Date: Thu, 10 May 2018 16:07:57 +0100 Subject: [PATCH 0301/1149] PCI: rcar: Convert to DT resource parsing API The main purpose of this change is to avoid calling pci_ioremap_io() as this is not available on arm64. However, instead of doing the range parsing in this driver we can utilise of_pci_get_host_bridge_resources(). This is similar to changes made to the generic PCI host driver in commit dbf9826d5797 ("PCI: generic: Convert to DT resource parsing API") Reported-by: Wolfram Sang Tested-by: Wolfram Sang Signed-off-by: Phil Edworthy Signed-off-by: Bjorn Helgaas Acked-by: Simon Horman (cherry picked from commit 5d2917d469faab72ac6efd95ef1f8319c16a29eb) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/pci/host/pcie-rcar.c | 116 ++++++++++++++++++++++------------- 1 file changed, 73 insertions(+), 43 deletions(-) diff --git a/drivers/pci/host/pcie-rcar.c b/drivers/pci/host/pcie-rcar.c index 414c33686621..5e4f02d31b7f 100644 --- a/drivers/pci/host/pcie-rcar.c +++ b/drivers/pci/host/pcie-rcar.c @@ -108,8 +108,6 @@ #define RCAR_PCI_MAX_RESOURCES 4 #define MAX_NR_INBOUND_MAPS 6 -static unsigned long global_io_offset; - struct rcar_msi { DECLARE_BITMAP(used, INT_PCI_MSI_NR); struct irq_domain *domain; @@ -138,8 +136,7 @@ struct rcar_pcie { #endif struct device *dev; void __iomem *base; - struct resource res[RCAR_PCI_MAX_RESOURCES]; - struct resource busn; + struct list_head resources; int root_bus_nr; struct clk *clk; struct clk *bus_clk; @@ -323,10 +320,9 @@ static struct pci_ops rcar_pcie_ops = { .write = rcar_pcie_write_conf, }; -static void rcar_pcie_setup_window(int win, struct rcar_pcie *pcie) +static void rcar_pcie_setup_window(int win, struct rcar_pcie *pcie, + struct resource *res) { - struct resource *res = &pcie->res[win]; - /* Setup PCIe address space mappings for each resource */ resource_size_t size; resource_size_t res_start; @@ -359,31 +355,33 @@ static void rcar_pcie_setup_window(int win, struct rcar_pcie *pcie) rcar_pci_write_reg(pcie, mask, PCIEPTCTLR(win)); } -static int rcar_pcie_setup(struct list_head *resource, struct rcar_pcie *pcie) +static int rcar_pcie_setup(struct list_head *resource, struct rcar_pcie *pci) { - struct resource *res; - int i; - - pcie->root_bus_nr = pcie->busn.start; + struct resource_entry *win; + int i = 0; /* Setup PCI resources */ - for (i = 0; i < RCAR_PCI_MAX_RESOURCES; i++) { + resource_list_for_each_entry(win, &pci->resources) { + struct resource *res = win->res; - res = &pcie->res[i]; if (!res->flags) continue; - rcar_pcie_setup_window(i, pcie); - - if (res->flags & IORESOURCE_IO) { - phys_addr_t io_start = pci_pio_to_address(res->start); - pci_ioremap_io(global_io_offset, io_start); - global_io_offset += SZ_64K; + switch (resource_type(res)) { + case IORESOURCE_IO: + case IORESOURCE_MEM: + rcar_pcie_setup_window(i, pci, res); + i++; + break; + case IORESOURCE_BUS: + pci->root_bus_nr = res->start; + break; + default: + continue; } pci_add_resource(resource, res); } - pci_add_resource(resource, &pcie->busn); return 1; } @@ -925,14 +923,63 @@ static const struct of_device_id rcar_pcie_of_match[] = { }; MODULE_DEVICE_TABLE(of, rcar_pcie_of_match); +static void rcar_pcie_release_of_pci_ranges(struct rcar_pcie *pci) +{ + pci_free_resource_list(&pci->resources); +} + +static int rcar_pcie_parse_request_of_pci_ranges(struct rcar_pcie *pci) +{ + int err; + struct device *dev = pci->dev; + struct device_node *np = dev->of_node; + resource_size_t iobase; + struct resource_entry *win; + + err = of_pci_get_host_bridge_resources(np, 0, 0xff, &pci->resources, &iobase); + if (err) + return err; + + resource_list_for_each_entry(win, &pci->resources) { + struct resource *parent, *res = win->res; + + switch (resource_type(res)) { + case IORESOURCE_IO: + parent = &ioport_resource; + err = pci_remap_iospace(res, iobase); + if (err) { + dev_warn(dev, "error %d: failed to map resource %pR\n", + err, res); + continue; + } + break; + case IORESOURCE_MEM: + parent = &iomem_resource; + break; + + case IORESOURCE_BUS: + default: + continue; + } + + err = devm_request_resource(dev, parent, res); + if (err) + goto out_release_res; + } + + return 0; + +out_release_res: + rcar_pcie_release_of_pci_ranges(pci); + return err; +} + static int rcar_pcie_probe(struct platform_device *pdev) { struct rcar_pcie *pcie; unsigned int data; - struct of_pci_range range; - struct of_pci_range_parser parser; const struct of_device_id *of_id; - int err, win = 0; + int err; int (*hw_init_fn)(struct rcar_pcie *); pcie = devm_kzalloc(&pdev->dev, sizeof(*pcie), GFP_KERNEL); @@ -942,16 +989,9 @@ static int rcar_pcie_probe(struct platform_device *pdev) pcie->dev = &pdev->dev; platform_set_drvdata(pdev, pcie); - /* Get the bus range */ - if (of_pci_parse_bus_range(pdev->dev.of_node, &pcie->busn)) { - dev_err(&pdev->dev, "failed to parse bus-range property\n"); - return -EINVAL; - } + INIT_LIST_HEAD(&pcie->resources); - if (of_pci_range_parser_init(&parser, pdev->dev.of_node)) { - dev_err(&pdev->dev, "missing ranges property\n"); - return -EINVAL; - } + rcar_pcie_parse_request_of_pci_ranges(pcie); err = rcar_pcie_get_resources(pdev, pcie); if (err < 0) { @@ -959,16 +999,6 @@ static int rcar_pcie_probe(struct platform_device *pdev) return err; } - for_each_of_pci_range(&parser, &range) { - err = of_pci_range_to_resource(&range, pdev->dev.of_node, - &pcie->res[win++]); - if (err < 0) - return err; - - if (win > RCAR_PCI_MAX_RESOURCES) - break; - } - err = rcar_pcie_parse_map_dma_ranges(pcie, pdev->dev.of_node); if (err) return err; From dd46a6c42917ce01c34c790ab127d1896567c7ee Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Thu, 10 May 2018 16:07:58 +0100 Subject: [PATCH 0302/1149] PCI: rcar: Add gen2 fallback compatibility string for pcie-rcar Add fallback compatibility string for R-Car Gen 2 family. This is in keeping with the fallback scheme being adopted wherever appropriate for drivers for Renesas SoCs. Signed-off-by: Simon Horman Signed-off-by: Bjorn Helgaas (cherry picked from commit a37b3eafe8e9cbe7c7754bc6003c125b23749554) (removed r8a7795 soc from DT binding documentation) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/pci/rcar-pci.txt | 13 ++++++++++--- drivers/pci/host/pcie-rcar.c | 1 + 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/pci/rcar-pci.txt b/Documentation/devicetree/bindings/pci/rcar-pci.txt index 29d3b989d3b0..6b4d2f798386 100644 --- a/Documentation/devicetree/bindings/pci/rcar-pci.txt +++ b/Documentation/devicetree/bindings/pci/rcar-pci.txt @@ -1,8 +1,15 @@ * Renesas RCar PCIe interface Required properties: -- compatible: should contain one of the following - "renesas,pcie-r8a7779", "renesas,pcie-r8a7790", "renesas,pcie-r8a7791" +compatible: "renesas,pcie-r8a7779" for the R8A7779 SoC; + "renesas,pcie-r8a7790" for the R8A7790 SoC; + "renesas,pcie-r8a7791" for the R8A7791 SoC; + "renesas,pcie-rcar-gen2" for a generic R-Car Gen2 compatible device. + + When compatible with the generic version, nodes must list the + SoC-specific version corresponding to the platform first + followed by the generic version. + - reg: base address and length of the pcie controller registers. - #address-cells: set to <3> - #size-cells: set to <2> @@ -25,7 +32,7 @@ Example: SoC specific DT Entry: pcie: pcie@fe000000 { - compatible = "renesas,pcie-r8a7791"; + compatible = "renesas,pcie-r8a7791", "renesas,pcie-rcar-gen2"; reg = <0 0xfe000000 0 0x80000>; #address-cells = <3>; #size-cells = <2>; diff --git a/drivers/pci/host/pcie-rcar.c b/drivers/pci/host/pcie-rcar.c index 5e4f02d31b7f..ae095fcb400d 100644 --- a/drivers/pci/host/pcie-rcar.c +++ b/drivers/pci/host/pcie-rcar.c @@ -917,6 +917,7 @@ static int rcar_pcie_parse_map_dma_ranges(struct rcar_pcie *pcie, static const struct of_device_id rcar_pcie_of_match[] = { { .compatible = "renesas,pcie-r8a7779", .data = rcar_pcie_hw_init_h1 }, + { .compatible = "renesas,pcie-rcar-gen2", .data = rcar_pcie_hw_init }, { .compatible = "renesas,pcie-r8a7790", .data = rcar_pcie_hw_init }, { .compatible = "renesas,pcie-r8a7791", .data = rcar_pcie_hw_init }, {}, From 00b6e14602784c187ea7433027b289063781a95f Mon Sep 17 00:00:00 2001 From: Phil Edworthy Date: Thu, 10 May 2018 16:07:59 +0100 Subject: [PATCH 0303/1149] PCI: rcar: Remove unused pci_sys_data struct from pcie-rcar The pci_sys_data struct was previously used by pci_common_init_dev() and by the ARM pcibios_align_resource(), but recent commits removed those uses: cbce7900598c ("PCI: designware: Make driver arch-agnostic") b3a72384fe29 ("ARM/PCI: Replace pci_sys_data->align_resource with global function pointer") cbce7900598c removed the use of pci_common_init_dev() by DesignWare drivers, including pcie-rcar.c, and b3a72384fe29 removed the use of struct pci_sys_data by the ARM pcibios_align_resource(). Remove struct pci_sys_data from pcie-rcar.c. [bhelgaas: changelog] Signed-off-by: Phil Edworthy Signed-off-by: Bjorn Helgaas (cherry picked from commit 049f419399e937e333bf121b7b234888d804a25e) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/pci/host/pcie-rcar.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/drivers/pci/host/pcie-rcar.c b/drivers/pci/host/pcie-rcar.c index ae095fcb400d..83ba747f9475 100644 --- a/drivers/pci/host/pcie-rcar.c +++ b/drivers/pci/host/pcie-rcar.c @@ -124,16 +124,7 @@ static inline struct rcar_msi *to_rcar_msi(struct msi_controller *chip) } /* Structure representing the PCIe interface */ -/* - * ARM pcibios functions expect the ARM struct pci_sys_data as the PCI - * sysdata. Add pci_sys_data as the first element in struct gen_pci so - * that when we use a gen_pci pointer as sysdata, it is also a pointer to - * a struct pci_sys_data. - */ struct rcar_pcie { -#ifdef CONFIG_ARM - struct pci_sys_data sys; -#endif struct device *dev; void __iomem *base; struct list_head resources; From d62b146cb865c5fc6d63e8edf3c9b0c025f206b1 Mon Sep 17 00:00:00 2001 From: Phil Edworthy Date: Thu, 10 May 2018 16:08:00 +0100 Subject: [PATCH 0304/1149] PCI: rcar: Add runtime PM support to pcie-rcar If runtime PM is enabled in the kernel config, simply enable the clocks once during probe. Signed-off-by: Phil Edworthy Signed-off-by: Bjorn Helgaas Acked-by: Wolfram Sang (cherry picked from commit de1be9a8897cb35bee7617da8b6ddd7d144db332) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/pci/host/pcie-rcar.c | 44 ++++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/drivers/pci/host/pcie-rcar.c b/drivers/pci/host/pcie-rcar.c index 83ba747f9475..1468e04b7648 100644 --- a/drivers/pci/host/pcie-rcar.c +++ b/drivers/pci/host/pcie-rcar.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #define DRV_NAME "rcar-pcie" @@ -995,32 +996,51 @@ static int rcar_pcie_probe(struct platform_device *pdev) if (err) return err; - if (IS_ENABLED(CONFIG_PCI_MSI)) { - err = rcar_pcie_enable_msi(pcie); - if (err < 0) { - dev_err(&pdev->dev, - "failed to enable MSI support: %d\n", - err); - return err; - } - } - of_id = of_match_device(rcar_pcie_of_match, pcie->dev); if (!of_id || !of_id->data) return -EINVAL; hw_init_fn = of_id->data; + pm_runtime_enable(pcie->dev); + err = pm_runtime_get_sync(pcie->dev); + if (err < 0) { + dev_err(pcie->dev, "pm_runtime_get_sync failed\n"); + goto err_pm_disable; + } + /* Failure to get a link might just be that no cards are inserted */ err = hw_init_fn(pcie); if (err) { dev_info(&pdev->dev, "PCIe link down\n"); - return 0; + err = 0; + goto err_pm_put; } data = rcar_pci_read_reg(pcie, MACSR); dev_info(&pdev->dev, "PCIe x%d: link up\n", (data >> 20) & 0x3f); - return rcar_pcie_enable(pcie); + if (IS_ENABLED(CONFIG_PCI_MSI)) { + err = rcar_pcie_enable_msi(pcie); + if (err < 0) { + dev_err(&pdev->dev, + "failed to enable MSI support: %d\n", + err); + goto err_pm_put; + } + } + + err = rcar_pcie_enable(pcie); + if (err) + goto err_pm_put; + + return 0; + +err_pm_put: + pm_runtime_put(pcie->dev); + +err_pm_disable: + pm_runtime_disable(pcie->dev); + return err; } static struct platform_driver rcar_pcie_driver = { From 926e9bebe14197ec150c34c4e167b28187f96491 Mon Sep 17 00:00:00 2001 From: Phil Edworthy Date: Thu, 10 May 2018 16:08:01 +0100 Subject: [PATCH 0305/1149] PCI: rcar: Add Gen2 PHY setup to pcie-rcar For PCIe compliance, the PHY registers need setting as per the manual. Signed-off-by: Phil Edworthy Signed-off-by: Bjorn Helgaas Reviewed-by: Wolfram Sang (cherry picked from commit 581d9434aa56b465c5abd82caf18937e9973ca42) (removed gen3 devices) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/pci/host/pcie-rcar.c | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/drivers/pci/host/pcie-rcar.c b/drivers/pci/host/pcie-rcar.c index 1468e04b7648..848f9bf5e2d0 100644 --- a/drivers/pci/host/pcie-rcar.c +++ b/drivers/pci/host/pcie-rcar.c @@ -95,6 +95,11 @@ #define H1_PCIEPHYDOUTR 0x040014 #define H1_PCIEPHYSR 0x040018 +/* R-Car Gen2 PHY */ +#define GEN2_PCIEPHYADDR 0x780 +#define GEN2_PCIEPHYDATA 0x784 +#define GEN2_PCIEPHYCTRL 0x78c + #define INT_PCI_MSI_NR 32 #define RCONF(x) (PCICONF(0)+(x)) @@ -568,6 +573,26 @@ static int rcar_pcie_hw_init_h1(struct rcar_pcie *pcie) return -ETIMEDOUT; } +static int rcar_pcie_hw_init_gen2(struct rcar_pcie *pcie) +{ + /* + * These settings come from the R-Car Series, 2nd Generation User's + * Manual, section 50.3.1 (2) Initialization of the physical layer. + */ + rcar_pci_write_reg(pcie, 0x000f0030, GEN2_PCIEPHYADDR); + rcar_pci_write_reg(pcie, 0x00381203, GEN2_PCIEPHYDATA); + rcar_pci_write_reg(pcie, 0x00000001, GEN2_PCIEPHYCTRL); + rcar_pci_write_reg(pcie, 0x00000006, GEN2_PCIEPHYCTRL); + + rcar_pci_write_reg(pcie, 0x000f0054, GEN2_PCIEPHYADDR); + /* The following value is for DC connection, no termination resistor */ + rcar_pci_write_reg(pcie, 0x13802007, GEN2_PCIEPHYDATA); + rcar_pci_write_reg(pcie, 0x00000001, GEN2_PCIEPHYCTRL); + rcar_pci_write_reg(pcie, 0x00000006, GEN2_PCIEPHYCTRL); + + return rcar_pcie_hw_init(pcie); +} + static int rcar_msi_alloc(struct rcar_msi *chip) { int msi; @@ -909,9 +934,9 @@ static int rcar_pcie_parse_map_dma_ranges(struct rcar_pcie *pcie, static const struct of_device_id rcar_pcie_of_match[] = { { .compatible = "renesas,pcie-r8a7779", .data = rcar_pcie_hw_init_h1 }, - { .compatible = "renesas,pcie-rcar-gen2", .data = rcar_pcie_hw_init }, - { .compatible = "renesas,pcie-r8a7790", .data = rcar_pcie_hw_init }, - { .compatible = "renesas,pcie-r8a7791", .data = rcar_pcie_hw_init }, + { .compatible = "renesas,pcie-rcar-gen2", .data = rcar_pcie_hw_init_gen2 }, + { .compatible = "renesas,pcie-r8a7790", .data = rcar_pcie_hw_init_gen2 }, + { .compatible = "renesas,pcie-r8a7791", .data = rcar_pcie_hw_init_gen2 }, {}, }; MODULE_DEVICE_TABLE(of, rcar_pcie_of_match); From 298955f44073dff489b258ce94fc0f92b0f68656 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 10 May 2018 16:08:02 +0100 Subject: [PATCH 0306/1149] PCI: rcar: Use proper name for the R-Car SoC It is 'R-Car', not 'RCar'. No code or binding changes, only descriptive text. Signed-off-by: Wolfram Sang Signed-off-by: Bjorn Helgaas Acked-by: Geert Uytterhoeven Acked-by: Simon Horman (cherry picked from commit a8d992d8f8d4bf6051e7b9df86ffe21d8a78a472) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/pci/rcar-pci.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/pci/rcar-pci.txt b/Documentation/devicetree/bindings/pci/rcar-pci.txt index 6b4d2f798386..a85353a5c6d9 100644 --- a/Documentation/devicetree/bindings/pci/rcar-pci.txt +++ b/Documentation/devicetree/bindings/pci/rcar-pci.txt @@ -1,4 +1,4 @@ -* Renesas RCar PCIe interface +* Renesas R-Car PCIe interface Required properties: compatible: "renesas,pcie-r8a7779" for the R8A7779 SoC; From 45f4e730a377bf166fd5d8408b5a5c0278848644 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 10 May 2018 16:08:03 +0100 Subject: [PATCH 0307/1149] dt-bindings: PCI: rcar: Add device tree support for r8a7743 Add support for r8a7743. The Renesas RZ/G1M(R8A7743)PCIe controller is identical to the R-Car Gen2 family. No driver change is needed due to the fallback compatible value "renesas,pcie-rcar-gen2". Adding the SoC-specific compatible values here has three purposes: 1. Document which SoCs have this hardware module, 2. Allow checkpatch to validate compatible values. 3. Allow the driver to support SoC specific implementations in future as necessary. Signed-off-by: Biju Das Signed-off-by: Lorenzo Pieralisi Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Acked-by: Simon Horman (cherry picked from commit 2380ca5f1f46412d08c96ebea996e049548829bd) (removed gen3 devices from DT binding documentation) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/pci/rcar-pci.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/pci/rcar-pci.txt b/Documentation/devicetree/bindings/pci/rcar-pci.txt index a85353a5c6d9..bedfdc122543 100644 --- a/Documentation/devicetree/bindings/pci/rcar-pci.txt +++ b/Documentation/devicetree/bindings/pci/rcar-pci.txt @@ -1,10 +1,12 @@ * Renesas R-Car PCIe interface Required properties: -compatible: "renesas,pcie-r8a7779" for the R8A7779 SoC; +compatible: "renesas,pcie-r8a7743" for the R8A7743 SoC; + "renesas,pcie-r8a7779" for the R8A7779 SoC; "renesas,pcie-r8a7790" for the R8A7790 SoC; "renesas,pcie-r8a7791" for the R8A7791 SoC; - "renesas,pcie-rcar-gen2" for a generic R-Car Gen2 compatible device. + "renesas,pcie-rcar-gen2" for a generic R-Car Gen2 or + RZ/G1 compatible device. When compatible with the generic version, nodes must list the SoC-specific version corresponding to the platform first From a1c045026faca203ea114eae68d537873d664588 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 10 May 2018 16:08:04 +0100 Subject: [PATCH 0308/1149] ARM: dts: r8a7743: Add default PCIe bus clock This patch adds a default PCIe bus clock node. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit a827886558d4b975903824d9786c331e08c60e9b) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 94ccda02b00f..767b7fe7ffbc 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -1454,6 +1454,13 @@ clock-frequency = <0>; }; + /* External PCIe clock - can be overridden by the board */ + pcie_bus_clk: pcie_bus { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <0>; + }; + /* External SCIF clock */ scif_clk: scif { compatible = "fixed-clock"; From 7483daa8942ee48f401c508c10ae7fa62646ca3b Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 10 May 2018 16:08:05 +0100 Subject: [PATCH 0309/1149] ARM: dts: r8a7743: Add PCIe Controller device node Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit 4c5c952e61190e5a0e06128156eef84d290a0045) (updated clocks, power-domains property and removed reset property) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 767b7fe7ffbc..fccd70c1a07f 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -1429,6 +1429,33 @@ phy-names = "usb"; }; }; + + pciec: pcie@fe000000 { + compatible = "renesas,pcie-r8a7743", + "renesas,pcie-rcar-gen2"; + reg = <0 0xfe000000 0 0x80000>; + #address-cells = <3>; + #size-cells = <2>; + bus-range = <0x00 0xff>; + device_type = "pci"; + ranges = <0x01000000 0 0x00000000 0 0xfe100000 0 0x00100000 + 0x02000000 0 0xfe200000 0 0xfe200000 0 0x00200000 + 0x02000000 0 0x30000000 0 0x30000000 0 0x08000000 + 0x42000000 0 0x38000000 0 0x38000000 0 0x08000000>; + /* Map all possible DDR as inbound ranges */ + dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 0 0x80000000 + 0x43000000 2 0x00000000 2 0x00000000 1 0x00000000>; + interrupts = , + , + ; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 0>; + interrupt-map = <0 0 0 0 &gic GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&mstp3_clks R8A7743_CLK_PCIEC>, <&pcie_bus_clk>; + clock-names = "pcie", "pcie_bus"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; }; /* External root clock */ From b89456b5296543590303600a89dfbf342b54c01e Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 10 May 2018 16:08:06 +0100 Subject: [PATCH 0310/1149] ARM: dts: iwg20d-q7: Enable PCIe Controller Enable PCIe Controller & set PCIe bus clock frequency. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit b3a0317e312cc6d6359c7a0854d763cde528391d) (sorted pci nodes alphabetically) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/iwg20d-q7-common.dtsi | 30 ++++++++++++++++--------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/arch/arm/boot/dts/iwg20d-q7-common.dtsi b/arch/arm/boot/dts/iwg20d-q7-common.dtsi index 0bcb42febb63..624907b6e79c 100644 --- a/arch/arm/boot/dts/iwg20d-q7-common.dtsi +++ b/arch/arm/boot/dts/iwg20d-q7-common.dtsi @@ -85,6 +85,25 @@ }; }; +&pci0 { + pinctrl-0 = <&usb0_pins>; + pinctrl-names = "default"; +}; + +&pci1 { + status = "okay"; + pinctrl-0 = <&usb1_pins>; + pinctrl-names = "default"; +}; + +&pcie_bus_clk { + clock-frequency = <100000000>; +}; + +&pciec { + status = "okay"; +}; + &pfc { can0_pins: can0 { groups = "can0_data_d"; @@ -128,17 +147,6 @@ }; }; -&pci0 { - pinctrl-0 = <&usb0_pins>; - pinctrl-names = "default"; -}; - -&pci1 { - status = "okay"; - pinctrl-0 = <&usb1_pins>; - pinctrl-names = "default"; -}; - &scif0 { pinctrl-0 = <&scif0_pins>; pinctrl-names = "default"; From af4833a031042c1f94b741366931242887bb7770 Mon Sep 17 00:00:00 2001 From: Yoshihiro Kaneko Date: Thu, 10 May 2018 16:08:07 +0100 Subject: [PATCH 0311/1149] soc_camera: rcar_vin: add R-Car Gen 2 and 3 fallback compatibility strings Add fallback compatibility string for R-Car Gen 1 and 2. In the case of Renesas R-Car hardware we know that there are generations of SoCs, e.g. Gen 2 and 3. But beyond that it's unclear what the relationship between IP blocks might be. For example, I believe that r8a7790 is older than r8a7791 but that doesn't imply that the latter is a descendant of the former or vice versa. We can, however, by examining the documentation and behaviour of the hardware at run-time observe that the current driver implementation appears to be compatible with the IP blocks on SoCs within a given generation. For the above reasons and convenience when enabling new SoCs a per-generation fallback compatibility string scheme being adopted for drivers for Renesas SoCs. Signed-off-by: Yoshihiro Kaneko Signed-off-by: Simon Horman Acked-by: Geert Uytterhoeven Signed-off-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab (cherry picked from commit bd546882ff3476718d6df872c1c95aedcc5ed37d) (removed gen3 devices) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/media/rcar_vin.txt | 10 ++++++++-- drivers/media/platform/soc_camera/rcar_vin.c | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/media/rcar_vin.txt b/Documentation/devicetree/bindings/media/rcar_vin.txt index 9dafe6b06cd2..1abe1ef89235 100644 --- a/Documentation/devicetree/bindings/media/rcar_vin.txt +++ b/Documentation/devicetree/bindings/media/rcar_vin.txt @@ -5,13 +5,19 @@ The rcar_vin device provides video input capabilities for the Renesas R-Car family of devices. The current blocks are always slaves and suppot one input channel which can be either RGB, YUYV or BT656. - - compatible: Must be one of the following + - compatible: Must be one or more of the following - "renesas,vin-r8a7794" for the R8A7794 device - "renesas,vin-r8a7793" for the R8A7793 device - "renesas,vin-r8a7791" for the R8A7791 device - "renesas,vin-r8a7790" for the R8A7790 device - "renesas,vin-r8a7779" for the R8A7779 device - "renesas,vin-r8a7778" for the R8A7778 device + - "renesas,rcar-gen2-vin" for a generic R-Car Gen2 compatible device. + + When compatible with the generic version nodes must list the + SoC-specific version corresponding to the platform first + followed by the generic version. + - reg: the register base and size for the device registers - interrupts: the interrupt for the device - clocks: Reference to the parent clock @@ -36,7 +42,7 @@ Device node example }; vin0: vin@0xe6ef0000 { - compatible = "renesas,vin-r8a7790"; + compatible = "renesas,vin-r8a7790", "renesas,rcar-gen2-vin"; clocks = <&mstp8_clks R8A7790_CLK_VIN0>; reg = <0 0xe6ef0000 0 0x1000>; interrupts = <0 188 IRQ_TYPE_LEVEL_HIGH>; diff --git a/drivers/media/platform/soc_camera/rcar_vin.c b/drivers/media/platform/soc_camera/rcar_vin.c index efe57b23fac1..dfb2c723560c 100644 --- a/drivers/media/platform/soc_camera/rcar_vin.c +++ b/drivers/media/platform/soc_camera/rcar_vin.c @@ -1848,6 +1848,7 @@ static const struct of_device_id rcar_vin_of_table[] = { { .compatible = "renesas,vin-r8a7790", .data = (void *)RCAR_GEN2 }, { .compatible = "renesas,vin-r8a7779", .data = (void *)RCAR_H1 }, { .compatible = "renesas,vin-r8a7778", .data = (void *)RCAR_M1 }, + { .compatible = "renesas,rcar-gen2-vin", .data = (void *)RCAR_GEN2 }, { }, }; MODULE_DEVICE_TABLE(of, rcar_vin_of_table); From 1b5e8795a67bbfa3592a94ca0b1d14d8eeb61b83 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 10 May 2018 16:08:08 +0100 Subject: [PATCH 0312/1149] ARM: dts: r8a7743: add VIN dt support Add VIN[012] support to SoC dt. Also, add aliases. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 001b32ae64dbf780d89fbc258c3f1007ee7b34e8) (updated clocks and power-domains property. removed resets property) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index fccd70c1a07f..97246090d7aa 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -32,6 +32,9 @@ spi1 = &msiof0; spi2 = &msiof1; spi3 = &msiof2; + vin0 = &vin0; + vin1 = &vin1; + vin2 = &vin2; }; cpus { @@ -1330,6 +1333,36 @@ }; }; + vin0: video@e6ef0000 { + compatible = "renesas,vin-r8a7743", + "renesas,rcar-gen2-vin"; + reg = <0 0xe6ef0000 0 0x1000>; + interrupts = ; + clocks = <&mstp8_clks R8A7743_CLK_VIN0>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + vin1: video@e6ef1000 { + compatible = "renesas,vin-r8a7743", + "renesas,rcar-gen2-vin"; + reg = <0 0xe6ef1000 0 0x1000>; + interrupts = ; + clocks = <&mstp8_clks R8A7743_CLK_VIN1>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + vin2: video@e6ef2000 { + compatible = "renesas,vin-r8a7743", + "renesas,rcar-gen2-vin"; + reg = <0 0xe6ef2000 0 0x1000>; + interrupts = ; + clocks = <&mstp8_clks R8A7743_CLK_VIN2>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + can0: can@e6e80000 { compatible = "renesas,can-r8a7743", "renesas,rcar-gen2-can"; From d1f2a8b2761423584290926b596c5dbc4bb9fb87 Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Thu, 10 May 2018 16:08:09 +0100 Subject: [PATCH 0313/1149] ASoC: rsnd: audio_clkout0/1/2/3 are optional properties Renesas sound driver can output Audio-clkout0/1/2/3, but these are optional properties for each board. Reported-by: Geert Uytterhoeven Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown (cherry picked from commit 209c09071f365aed48f8a7af5a25ea3edcfb891c) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/sound/renesas,rsnd.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/sound/renesas,rsnd.txt b/Documentation/devicetree/bindings/sound/renesas,rsnd.txt index c57cbd65736c..bbcb3272977d 100644 --- a/Documentation/devicetree/bindings/sound/renesas,rsnd.txt +++ b/Documentation/devicetree/bindings/sound/renesas,rsnd.txt @@ -34,6 +34,8 @@ Required properties: see below for detail. - #sound-dai-cells : it must be 0 if your system is using single DAI it must be 1 if your system is using multi DAI + +Optional properties: - #clock-cells : it must be 0 if your system has audio_clkout it must be 1 if your system has audio_clkout0/1/2/3 - clock-frequency : for all audio_clkout0/1/2/3 From 96a60c7315a5220300ca95aff98aaac6da88195a Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Thu, 10 May 2018 16:08:10 +0100 Subject: [PATCH 0314/1149] ASoC: rsnd: add missing DT example for Simple Card Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown (cherry picked from commit f3f17d32fe0f3be9b1514c7e6245edee3673dccc) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- .../bindings/sound/renesas,rsnd.txt | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/Documentation/devicetree/bindings/sound/renesas,rsnd.txt b/Documentation/devicetree/bindings/sound/renesas,rsnd.txt index bbcb3272977d..27c45cb90364 100644 --- a/Documentation/devicetree/bindings/sound/renesas,rsnd.txt +++ b/Documentation/devicetree/bindings/sound/renesas,rsnd.txt @@ -246,3 +246,43 @@ rcar_sound: sound@ec500000 { }; }; }; + +Example: simple sound card + + rsnd_ak4643: sound { + compatible = "simple-audio-card"; + + simple-audio-card,format = "left_j"; + simple-audio-card,bitclock-master = <&sndcodec>; + simple-audio-card,frame-master = <&sndcodec>; + + sndcpu: simple-audio-card,cpu { + sound-dai = <&rcar_sound>; + }; + + sndcodec: simple-audio-card,codec { + sound-dai = <&ak4643>; + clocks = <&audio_clock>; + }; + }; + +&rcar_sound { + pinctrl-0 = <&sound_pins &sound_clk_pins>; + pinctrl-names = "default"; + + /* Single DAI */ + #sound-dai-cells = <0>; + + status = "okay"; + + rcar_sound,dai { + dai0 { + playback = <&ssi0 &src2 &dvc0>; + capture = <&ssi1 &src3 &dvc1>; + }; + }; +}; + +&ssi1 { + shared-pin; +}; From 036e904411fae355dab0b57c6d7d1d6203e28e5d Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Thu, 10 May 2018 16:08:11 +0100 Subject: [PATCH 0315/1149] ASoC: rsnd: add missing DT example for Simple Card with TDM Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown (cherry picked from commit 44bf5361e21d507e23f8cf8d696c0600f3795e54) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- .../bindings/sound/renesas,rsnd.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Documentation/devicetree/bindings/sound/renesas,rsnd.txt b/Documentation/devicetree/bindings/sound/renesas,rsnd.txt index 27c45cb90364..3f03fd0855e0 100644 --- a/Documentation/devicetree/bindings/sound/renesas,rsnd.txt +++ b/Documentation/devicetree/bindings/sound/renesas,rsnd.txt @@ -286,3 +286,22 @@ Example: simple sound card &ssi1 { shared-pin; }; + +Example: simple sound card for TDM + + rsnd_tdm: sound { + compatible = "simple-audio-card"; + + simple-audio-card,format = "left_j"; + simple-audio-card,bitclock-master = <&sndcodec>; + simple-audio-card,frame-master = <&sndcodec>; + + sndcpu: simple-audio-card,cpu { + sound-dai = <&rcar_sound>; + dai-tdm-slot-num = <6>; + }; + + sndcodec: simple-audio-card,codec { + sound-dai = <&xxx>; + }; + }; From 8246dfcdad497936e128088085cff70ecc589db5 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 10 May 2018 16:08:12 +0100 Subject: [PATCH 0316/1149] ASoC: rsnd: Add device tree support for r8a774[35] Document r8a774[35] specific compatible strings. The Renesas RZ/G1[ME] (r8a774[35]) sound modules are identical to the R-Car Gen2 family. No driver change is needed as the fallback compatible string "renesas,rcar_sound-gen2" activates the right code in the driver. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Mark Brown (cherry picked from commit b0a858a47a7889757dbc9ac9872685955eaa5cc0) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/sound/renesas,rsnd.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/sound/renesas,rsnd.txt b/Documentation/devicetree/bindings/sound/renesas,rsnd.txt index 3f03fd0855e0..649cd3a54e21 100644 --- a/Documentation/devicetree/bindings/sound/renesas,rsnd.txt +++ b/Documentation/devicetree/bindings/sound/renesas,rsnd.txt @@ -3,9 +3,11 @@ Renesas R-Car sound Required properties: - compatible : "renesas,rcar_sound-", fallbacks "renesas,rcar_sound-gen1" if generation1, and - "renesas,rcar_sound-gen2" if generation2 + "renesas,rcar_sound-gen2" if generation2 (or RZ/G1) "renesas,rcar_sound-gen3" if generation3 Examples with soctypes are: + - "renesas,rcar_sound-r8a7743" (RZ/G1M) + - "renesas,rcar_sound-r8a7745" (RZ/G1E) - "renesas,rcar_sound-r8a7778" (R-Car M1A) - "renesas,rcar_sound-r8a7790" (R-Car H2) - "renesas,rcar_sound-r8a7791" (R-Car M2-W) From 83239df901c390e5b02513205fbe626587fbe389 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 10 May 2018 16:08:13 +0100 Subject: [PATCH 0317/1149] ARM: shmobile: defconfig: Enable SGTL5000 audio codec The iWave RZ/G1M Q7 carrier board supports I2S audio codec "SGTL5000". To increase hardware support enable the driver in the shmobile_defconfig multiplatform configuration. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit 66d7b080aade3be61f7b41de800215c85a8d3593) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/configs/shmobile_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/shmobile_defconfig b/arch/arm/configs/shmobile_defconfig index dfbd2de7f341..8b559ca48507 100644 --- a/arch/arm/configs/shmobile_defconfig +++ b/arch/arm/configs/shmobile_defconfig @@ -162,6 +162,7 @@ CONFIG_SND_SOC_SH4_FSI=y CONFIG_SND_SOC_RCAR=y CONFIG_SND_SOC_RSRC_CARD=y CONFIG_SND_SOC_AK4642=y +CONFIG_SND_SOC_SGTL5000=y CONFIG_SND_SOC_WM8978=y CONFIG_USB=y CONFIG_USB_XHCI_HCD=y From da2f442202edb5d89dccb99882e8caa12d5abef8 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Thu, 10 May 2018 16:08:14 +0100 Subject: [PATCH 0318/1149] dmaengine: rcar-dmac: Document SoC specific bindings In general Renesas hardware is not documented to the extent where the relationship between IP blocks on different SoCs can be assumed although they may appear to operate the same way. Furthermore the documentation typically does not specify a version for individual IP blocks. For these reasons a convention of using the SoC name in place of a version and providing SoC-specific compat strings has been adopted. Although not universally liked this convention is used in the bindings for most drivers for Renesas hardware. The purpose of this patch is to update the Renesas R-Car DMA Controller driver to follow this convention. Cc: devicetree@vger.kernel.org Cc: Magnus Damm Cc: Laurent Pinchart Signed-off-by: Simon Horman Acked-by: Geert Uytterhoeven Acked-by: Rob Herring Signed-off-by: Vinod Koul (cherry picked from commit 6bf641039f96e0c0cf3b10ae9ba12039d1a01122) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- .../devicetree/bindings/dma/renesas,rcar-dmac.txt | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt b/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt index 09daeef1ff22..5b902ac8d97e 100644 --- a/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt +++ b/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt @@ -14,7 +14,14 @@ not described in these device tree bindings. Required Properties: -- compatible: must contain "renesas,rcar-dmac" +- compatible: "renesas,dmac-", "renesas,rcar-dmac" as fallback. + Examples with soctypes are: + - "renesas,dmac-r8a7790" (R-Car H2) + - "renesas,dmac-r8a7791" (R-Car M2-W) + - "renesas,dmac-r8a7792" (R-Car V2H) + - "renesas,dmac-r8a7793" (R-Car M2-N) + - "renesas,dmac-r8a7794" (R-Car E2) + - "renesas,dmac-r8a7795" (R-Car H3) - reg: base address and length of the registers block for the DMAC @@ -35,7 +42,7 @@ Required Properties: Example: R8A7790 (R-Car H2) SYS-DMACs dmac0: dma-controller@e6700000 { - compatible = "renesas,rcar-dmac"; + compatible = "renesas,dmac-r8a7790", "renesas,rcar-dmac"; reg = <0 0xe6700000 0 0x20000>; interrupts = <0 197 IRQ_TYPE_LEVEL_HIGH 0 200 IRQ_TYPE_LEVEL_HIGH @@ -65,7 +72,7 @@ Example: R8A7790 (R-Car H2) SYS-DMACs }; dmac1: dma-controller@e6720000 { - compatible = "renesas,rcar-dmac"; + compatible = "renesas,dmac-r8a7790", "renesas,rcar-dmac"; reg = <0 0xe6720000 0 0x20000>; interrupts = <0 220 IRQ_TYPE_LEVEL_HIGH 0 216 IRQ_TYPE_LEVEL_HIGH From 87424157a9564aa961f1689dbe24442e48be34ac Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Thu, 10 May 2018 16:08:15 +0100 Subject: [PATCH 0319/1149] DT: dmaengine: rcar-dmac: document R8A7743/5 support Renesas RZ/G SoC also have the R-Car gen2/3 compatible DMA controllers. Document RZ/G1[ME] (also known as R8A774[35]) SoC bindings. Signed-off-by: Sergei Shtylyov Acked-by: Geert Uytterhoeven Signed-off-by: Vinod Koul (cherry picked from commit 3770f2a6bfe00869a4b83ee3cced0361ab33289a) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt b/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt index 5b902ac8d97e..5f2ce669789a 100644 --- a/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt +++ b/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt @@ -1,4 +1,4 @@ -* Renesas R-Car DMA Controller Device Tree bindings +* Renesas R-Car (RZ/G) DMA Controller Device Tree bindings Renesas R-Car Generation 2 SoCs have multiple multi-channel DMA controller instances named DMAC capable of serving multiple clients. Channels @@ -16,6 +16,8 @@ Required Properties: - compatible: "renesas,dmac-", "renesas,rcar-dmac" as fallback. Examples with soctypes are: + - "renesas,dmac-r8a7743" (RZ/G1M) + - "renesas,dmac-r8a7745" (RZ/G1E) - "renesas,dmac-r8a7790" (R-Car H2) - "renesas,dmac-r8a7791" (R-Car M2-W) - "renesas,dmac-r8a7792" (R-Car V2H) From b21d160e3030221d5e8c2b1a7020bcf9fcaba1d4 Mon Sep 17 00:00:00 2001 From: Clemens Gruber Date: Thu, 10 May 2018 16:08:16 +0100 Subject: [PATCH 0320/1149] ASoC: sgtl5000: Remove misleading comment All new designs should use external VDDD according to official documentation. See ER1 in errata sheet: http://cache.nxp.com/files/analog/doc/errata/SGTL5000ER.pdf Signed-off-by: Clemens Gruber Tested-by: Fabio Estevam Signed-off-by: Mark Brown (cherry picked from commit 7e74436410a9a74f41f3be9cc45b504e83544f60) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- sound/soc/codecs/sgtl5000.c | 1 - 1 file changed, 1 deletion(-) diff --git a/sound/soc/codecs/sgtl5000.c b/sound/soc/codecs/sgtl5000.c index 08b40460663c..23766bc4f8e8 100644 --- a/sound/soc/codecs/sgtl5000.c +++ b/sound/soc/codecs/sgtl5000.c @@ -1113,7 +1113,6 @@ static const u8 vol_quot_table[] = { * and should be set according to: * 1. vddd provided by external or not * 2. vdda and vddio voltage value. > 3.1v or not - * 3. chip revision >=0x11 or not. If >=0x11, not use external vddd. */ static int sgtl5000_set_power_regs(struct snd_soc_codec *codec) { From 7be54279d4dd4e6fd12a5ed4449c1e531c5f8211 Mon Sep 17 00:00:00 2001 From: Eric Nelson Date: Thu, 10 May 2018 16:08:17 +0100 Subject: [PATCH 0321/1149] ASoC: sgtl5000: Fix regulator support Regulator support on SGTL5000 is broken because the VDDIO and VDDA and VDDD should be powered on before enabling MCLK as shown in Figure 4 of [1]. This requires moving control of the regulators from the codec block to the I2C block of the driver. The bulk of this patch consists of swapping the codec device with the i2c client. The new field num_supplies in struct sgtl5000_priv is used instead of ARRAY_SIZE(supplies) to handle the special case when the internal LDO is used instead of external VDDD. Note that ER1 in the SGTL5000 Errata document [2] suggests that all designs should use external VDDD. Since the internal LDO can only be enabled after I2C is available, there's no benefit in treating it as a regulator, so this patch removes the regulator structure surrounding it. Instead, a single block of code in sgtl5000_i2c_probe() performs the initialization sequence in section 2.2.1.1 of [3] and page 26 of [1]. References: [1] SGTL5000 data sheet http://cache.nxp.com/files/analog/doc/data_sheet/SGTL5000.pdf [2] SGTL5000 errata http://cache.nxp.com/files/analog/doc/errata/SGTL5000ER.pdf [3] SGTL5000 Initialization and programming app note http://cache.nxp.com/files/analog/doc/app_note/AN3663.pdf Signed-off-by: Eric Nelson Signed-off-by: Clemens Gruber Tested-by: Fabio Estevam Signed-off-by: Mark Brown (cherry picked from commit 940adb280d23512965409c1fd6b42cc796ce6eb8) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- sound/soc/codecs/sgtl5000.c | 343 ++++++++---------------------------- 1 file changed, 78 insertions(+), 265 deletions(-) diff --git a/sound/soc/codecs/sgtl5000.c b/sound/soc/codecs/sgtl5000.c index 23766bc4f8e8..77bdd1daa322 100644 --- a/sound/soc/codecs/sgtl5000.c +++ b/sound/soc/codecs/sgtl5000.c @@ -92,36 +92,8 @@ static const char *supply_names[SGTL5000_SUPPLY_NUM] = { "VDDD" }; -#define LDO_CONSUMER_NAME "VDDD_LDO" #define LDO_VOLTAGE 1200000 -static struct regulator_consumer_supply ldo_consumer[] = { - REGULATOR_SUPPLY(LDO_CONSUMER_NAME, NULL), -}; - -static struct regulator_init_data ldo_init_data = { - .constraints = { - .min_uV = 1200000, - .max_uV = 1200000, - .valid_modes_mask = REGULATOR_MODE_NORMAL, - .valid_ops_mask = REGULATOR_CHANGE_STATUS, - }, - .num_consumer_supplies = 1, - .consumer_supplies = &ldo_consumer[0], -}; - -/* - * sgtl5000 internal ldo regulator, - * enabled when VDDD not provided - */ -struct ldo_regulator { - struct regulator_desc desc; - struct regulator_dev *dev; - int voltage; - void *codec_data; - bool enabled; -}; - enum sgtl5000_micbias_resistor { SGTL5000_MICBIAS_OFF = 0, SGTL5000_MICBIAS_2K = 2, @@ -135,7 +107,7 @@ struct sgtl5000_priv { int master; /* i2s master or not */ int fmt; /* i2s data format */ struct regulator_bulk_data supplies[SGTL5000_SUPPLY_NUM]; - struct ldo_regulator *ldo; + int num_supplies; struct regmap *regmap; struct clk *mclk; int revision; @@ -778,155 +750,6 @@ static int sgtl5000_pcm_hw_params(struct snd_pcm_substream *substream, return 0; } -#ifdef CONFIG_REGULATOR -static int ldo_regulator_is_enabled(struct regulator_dev *dev) -{ - struct ldo_regulator *ldo = rdev_get_drvdata(dev); - - return ldo->enabled; -} - -static int ldo_regulator_enable(struct regulator_dev *dev) -{ - struct ldo_regulator *ldo = rdev_get_drvdata(dev); - struct snd_soc_codec *codec = (struct snd_soc_codec *)ldo->codec_data; - int reg; - - if (ldo_regulator_is_enabled(dev)) - return 0; - - /* set regulator value firstly */ - reg = (1600 - ldo->voltage / 1000) / 50; - reg = clamp(reg, 0x0, 0xf); - - /* amend the voltage value, unit: uV */ - ldo->voltage = (1600 - reg * 50) * 1000; - - /* set voltage to register */ - snd_soc_update_bits(codec, SGTL5000_CHIP_LINREG_CTRL, - SGTL5000_LINREG_VDDD_MASK, reg); - - snd_soc_update_bits(codec, SGTL5000_CHIP_ANA_POWER, - SGTL5000_LINEREG_D_POWERUP, - SGTL5000_LINEREG_D_POWERUP); - - /* when internal ldo is enabled, simple digital power can be disabled */ - snd_soc_update_bits(codec, SGTL5000_CHIP_ANA_POWER, - SGTL5000_LINREG_SIMPLE_POWERUP, - 0); - - ldo->enabled = 1; - return 0; -} - -static int ldo_regulator_disable(struct regulator_dev *dev) -{ - struct ldo_regulator *ldo = rdev_get_drvdata(dev); - struct snd_soc_codec *codec = (struct snd_soc_codec *)ldo->codec_data; - - snd_soc_update_bits(codec, SGTL5000_CHIP_ANA_POWER, - SGTL5000_LINEREG_D_POWERUP, - 0); - - /* clear voltage info */ - snd_soc_update_bits(codec, SGTL5000_CHIP_LINREG_CTRL, - SGTL5000_LINREG_VDDD_MASK, 0); - - ldo->enabled = 0; - - return 0; -} - -static int ldo_regulator_get_voltage(struct regulator_dev *dev) -{ - struct ldo_regulator *ldo = rdev_get_drvdata(dev); - - return ldo->voltage; -} - -static struct regulator_ops ldo_regulator_ops = { - .is_enabled = ldo_regulator_is_enabled, - .enable = ldo_regulator_enable, - .disable = ldo_regulator_disable, - .get_voltage = ldo_regulator_get_voltage, -}; - -static int ldo_regulator_register(struct snd_soc_codec *codec, - struct regulator_init_data *init_data, - int voltage) -{ - struct ldo_regulator *ldo; - struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec); - struct regulator_config config = { }; - - ldo = kzalloc(sizeof(struct ldo_regulator), GFP_KERNEL); - - if (!ldo) - return -ENOMEM; - - ldo->desc.name = kstrdup(dev_name(codec->dev), GFP_KERNEL); - if (!ldo->desc.name) { - kfree(ldo); - dev_err(codec->dev, "failed to allocate decs name memory\n"); - return -ENOMEM; - } - - ldo->desc.type = REGULATOR_VOLTAGE; - ldo->desc.owner = THIS_MODULE; - ldo->desc.ops = &ldo_regulator_ops; - ldo->desc.n_voltages = 1; - - ldo->codec_data = codec; - ldo->voltage = voltage; - - config.dev = codec->dev; - config.driver_data = ldo; - config.init_data = init_data; - - ldo->dev = regulator_register(&ldo->desc, &config); - if (IS_ERR(ldo->dev)) { - int ret = PTR_ERR(ldo->dev); - - dev_err(codec->dev, "failed to register regulator\n"); - kfree(ldo->desc.name); - kfree(ldo); - - return ret; - } - sgtl5000->ldo = ldo; - - return 0; -} - -static int ldo_regulator_remove(struct snd_soc_codec *codec) -{ - struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec); - struct ldo_regulator *ldo = sgtl5000->ldo; - - if (!ldo) - return 0; - - regulator_unregister(ldo->dev); - kfree(ldo->desc.name); - kfree(ldo); - - return 0; -} -#else -static int ldo_regulator_register(struct snd_soc_codec *codec, - struct regulator_init_data *init_data, - int voltage) -{ - dev_err(codec->dev, "this setup needs regulator support in the kernel\n"); - return -EINVAL; -} - -static int ldo_regulator_remove(struct snd_soc_codec *codec) -{ - return 0; -} -#endif - /* * set dac bias * common state changes: @@ -950,7 +773,7 @@ static int sgtl5000_set_bias_level(struct snd_soc_codec *codec, case SND_SOC_BIAS_STANDBY: if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_OFF) { ret = regulator_bulk_enable( - ARRAY_SIZE(sgtl5000->supplies), + sgtl5000->num_supplies, sgtl5000->supplies); if (ret) return ret; @@ -964,7 +787,7 @@ static int sgtl5000_set_bias_level(struct snd_soc_codec *codec, "Failed to restore cache: %d\n", ret); regcache_cache_only(sgtl5000->regmap, true); - regulator_bulk_disable(ARRAY_SIZE(sgtl5000->supplies), + regulator_bulk_disable(sgtl5000->num_supplies, sgtl5000->supplies); return ret; @@ -974,8 +797,8 @@ static int sgtl5000_set_bias_level(struct snd_soc_codec *codec, break; case SND_SOC_BIAS_OFF: regcache_cache_only(sgtl5000->regmap, true); - regulator_bulk_disable(ARRAY_SIZE(sgtl5000->supplies), - sgtl5000->supplies); + regulator_bulk_disable(sgtl5000->num_supplies, + sgtl5000->supplies); break; } @@ -1130,7 +953,9 @@ static int sgtl5000_set_power_regs(struct snd_soc_codec *codec) vdda = regulator_get_voltage(sgtl5000->supplies[VDDA].consumer); vddio = regulator_get_voltage(sgtl5000->supplies[VDDIO].consumer); - vddd = regulator_get_voltage(sgtl5000->supplies[VDDD].consumer); + vddd = (sgtl5000->num_supplies > VDDD) + ? regulator_get_voltage(sgtl5000->supplies[VDDD].consumer) + : LDO_VOLTAGE; vdda = vdda / 1000; vddio = vddio / 1000; @@ -1255,78 +1080,43 @@ static int sgtl5000_set_power_regs(struct snd_soc_codec *codec) return 0; } -static int sgtl5000_replace_vddd_with_ldo(struct snd_soc_codec *codec) -{ - struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec); - int ret; - - /* set internal ldo to 1.2v */ - ret = ldo_regulator_register(codec, &ldo_init_data, LDO_VOLTAGE); - if (ret) { - dev_err(codec->dev, - "Failed to register vddd internal supplies: %d\n", ret); - return ret; - } - - sgtl5000->supplies[VDDD].supply = LDO_CONSUMER_NAME; - - dev_info(codec->dev, "Using internal LDO instead of VDDD\n"); - return 0; -} - -static int sgtl5000_enable_regulators(struct snd_soc_codec *codec) +static int sgtl5000_enable_regulators(struct i2c_client *client) { int ret; int i; int external_vddd = 0; - struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec); struct regulator *vddd; + struct sgtl5000_priv *sgtl5000 = i2c_get_clientdata(client); for (i = 0; i < ARRAY_SIZE(sgtl5000->supplies); i++) sgtl5000->supplies[i].supply = supply_names[i]; - /* External VDDD only works before revision 0x11 */ - if (sgtl5000->revision < 0x11) { - vddd = regulator_get_optional(codec->dev, "VDDD"); - if (IS_ERR(vddd)) { - /* See if it's just not registered yet */ - if (PTR_ERR(vddd) == -EPROBE_DEFER) - return -EPROBE_DEFER; - } else { - external_vddd = 1; - regulator_put(vddd); - } - } - - if (!external_vddd) { - ret = sgtl5000_replace_vddd_with_ldo(codec); - if (ret) - return ret; + vddd = regulator_get_optional(&client->dev, "VDDD"); + if (IS_ERR(vddd)) { + /* See if it's just not registered yet */ + if (PTR_ERR(vddd) == -EPROBE_DEFER) + return -EPROBE_DEFER; + } else { + external_vddd = 1; + regulator_put(vddd); } - ret = regulator_bulk_get(codec->dev, ARRAY_SIZE(sgtl5000->supplies), + sgtl5000->num_supplies = ARRAY_SIZE(sgtl5000->supplies) + - 1 + external_vddd; + ret = regulator_bulk_get(&client->dev, sgtl5000->num_supplies, sgtl5000->supplies); if (ret) - goto err_ldo_remove; - - ret = regulator_bulk_enable(ARRAY_SIZE(sgtl5000->supplies), - sgtl5000->supplies); - if (ret) - goto err_regulator_free; - - /* wait for all power rails bring up */ - udelay(10); + return ret; - return 0; + ret = regulator_bulk_enable(sgtl5000->num_supplies, + sgtl5000->supplies); + if (!ret) + usleep_range(10, 20); + else + regulator_bulk_free(sgtl5000->num_supplies, + sgtl5000->supplies); -err_regulator_free: - regulator_bulk_free(ARRAY_SIZE(sgtl5000->supplies), - sgtl5000->supplies); -err_ldo_remove: - if (!external_vddd) - ldo_regulator_remove(codec); return ret; - } static int sgtl5000_probe(struct snd_soc_codec *codec) @@ -1334,10 +1124,6 @@ static int sgtl5000_probe(struct snd_soc_codec *codec) int ret; struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec); - ret = sgtl5000_enable_regulators(codec); - if (ret) - return ret; - /* power up sgtl5000 */ ret = sgtl5000_set_power_regs(codec); if (ret) @@ -1388,25 +1174,11 @@ static int sgtl5000_probe(struct snd_soc_codec *codec) return 0; err: - regulator_bulk_disable(ARRAY_SIZE(sgtl5000->supplies), - sgtl5000->supplies); - regulator_bulk_free(ARRAY_SIZE(sgtl5000->supplies), - sgtl5000->supplies); - ldo_regulator_remove(codec); - return ret; } static int sgtl5000_remove(struct snd_soc_codec *codec) { - struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec); - - regulator_bulk_disable(ARRAY_SIZE(sgtl5000->supplies), - sgtl5000->supplies); - regulator_bulk_free(ARRAY_SIZE(sgtl5000->supplies), - sgtl5000->supplies); - ldo_regulator_remove(codec); - return 0; } @@ -1474,11 +1246,17 @@ static int sgtl5000_i2c_probe(struct i2c_client *client, if (!sgtl5000) return -ENOMEM; + i2c_set_clientdata(client, sgtl5000); + + ret = sgtl5000_enable_regulators(client); + if (ret) + return ret; + sgtl5000->regmap = devm_regmap_init_i2c(client, &sgtl5000_regmap); if (IS_ERR(sgtl5000->regmap)) { ret = PTR_ERR(sgtl5000->regmap); dev_err(&client->dev, "Failed to allocate regmap: %d\n", ret); - return ret; + goto disable_regs; } sgtl5000->mclk = devm_clk_get(&client->dev, NULL); @@ -1487,21 +1265,25 @@ static int sgtl5000_i2c_probe(struct i2c_client *client, dev_err(&client->dev, "Failed to get mclock: %d\n", ret); /* Defer the probe to see if the clk will be provided later */ if (ret == -ENOENT) - return -EPROBE_DEFER; - return ret; + ret = -EPROBE_DEFER; + goto disable_regs; } ret = clk_prepare_enable(sgtl5000->mclk); - if (ret) - return ret; + if (ret) { + dev_err(&client->dev, "Error enabling clock %d\n", ret); + goto disable_regs; + } /* Need 8 clocks before I2C accesses */ udelay(1); /* read chip information */ ret = regmap_read(sgtl5000->regmap, SGTL5000_CHIP_ID, ®); - if (ret) + if (ret) { + dev_err(&client->dev, "Error reading chip id %d\n", ret); goto disable_clk; + } if (((reg & SGTL5000_PARTID_MASK) >> SGTL5000_PARTID_SHIFT) != SGTL5000_PARTID_PART_ID) { @@ -1515,6 +1297,31 @@ static int sgtl5000_i2c_probe(struct i2c_client *client, dev_info(&client->dev, "sgtl5000 revision 0x%x\n", rev); sgtl5000->revision = rev; + /* Follow section 2.2.1.1 of AN3663 */ + if (sgtl5000->num_supplies <= VDDD) { + /* internal VDDD at 1.2V */ + regmap_update_bits(sgtl5000->regmap, + SGTL5000_CHIP_LINREG_CTRL, + SGTL5000_LINREG_VDDD_MASK, 8); + regmap_update_bits(sgtl5000->regmap, + SGTL5000_CHIP_ANA_POWER, + SGTL5000_LINEREG_D_POWERUP + | SGTL5000_LINREG_SIMPLE_POWERUP, + SGTL5000_LINEREG_D_POWERUP); + dev_info(&client->dev, "Using internal LDO instead of VDDD: check ER1\n"); + } else { + /* using external LDO for VDDD + * Clear startup powerup and simple powerup + * bits to save power + */ + regmap_update_bits(sgtl5000->regmap, + SGTL5000_CHIP_ANA_POWER, + SGTL5000_STARTUP_POWERUP + | SGTL5000_LINREG_SIMPLE_POWERUP, + 0); + dev_dbg(&client->dev, "Using external VDDD\n"); + } + if (np) { if (!of_property_read_u32(np, "micbias-resistor-k-ohms", &value)) { @@ -1556,8 +1363,6 @@ static int sgtl5000_i2c_probe(struct i2c_client *client, } } - i2c_set_clientdata(client, sgtl5000); - /* Ensure sgtl5000 will start with sane register values */ ret = sgtl5000_fill_defaults(sgtl5000); if (ret) @@ -1572,6 +1377,11 @@ static int sgtl5000_i2c_probe(struct i2c_client *client, disable_clk: clk_disable_unprepare(sgtl5000->mclk); + +disable_regs: + regulator_bulk_disable(sgtl5000->num_supplies, sgtl5000->supplies); + regulator_bulk_free(sgtl5000->num_supplies, sgtl5000->supplies); + return ret; } @@ -1581,6 +1391,9 @@ static int sgtl5000_i2c_remove(struct i2c_client *client) snd_soc_unregister_codec(&client->dev); clk_disable_unprepare(sgtl5000->mclk); + regulator_bulk_disable(sgtl5000->num_supplies, sgtl5000->supplies); + regulator_bulk_free(sgtl5000->num_supplies, sgtl5000->supplies); + return 0; } From e3e4595576a4ba118c81dffba87ed6168a656eef Mon Sep 17 00:00:00 2001 From: Eric Nelson Date: Thu, 10 May 2018 16:08:18 +0100 Subject: [PATCH 0322/1149] ASoC: sgtl5000: Write all default registers If an error occurs writing defaults, produce an error message but continue writing other registers. The failure of a single write should not cause catastrophic device failure. In at least one occurrence, I2C writes of CHIP_ANA_POWER were nacked, though continuing allowed the device to operate properly. Signed-off-by: Eric Nelson Signed-off-by: Clemens Gruber Tested-by: Fabio Estevam Signed-off-by: Mark Brown (cherry picked from commit f219b16959ee3df2fd49f09493b3f6b28487c416) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- sound/soc/codecs/sgtl5000.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/sound/soc/codecs/sgtl5000.c b/sound/soc/codecs/sgtl5000.c index 77bdd1daa322..56d61a212083 100644 --- a/sound/soc/codecs/sgtl5000.c +++ b/sound/soc/codecs/sgtl5000.c @@ -1219,8 +1219,9 @@ static const struct regmap_config sgtl5000_regmap = { * and avoid problems like, not being able to probe after an audio playback * followed by a system reset or a 'reboot' command in Linux */ -static int sgtl5000_fill_defaults(struct sgtl5000_priv *sgtl5000) +static void sgtl5000_fill_defaults(struct i2c_client *client) { + struct sgtl5000_priv *sgtl5000 = i2c_get_clientdata(client); int i, ret, val, index; for (i = 0; i < ARRAY_SIZE(sgtl5000_reg_defaults); i++) { @@ -1228,10 +1229,10 @@ static int sgtl5000_fill_defaults(struct sgtl5000_priv *sgtl5000) index = sgtl5000_reg_defaults[i].reg; ret = regmap_write(sgtl5000->regmap, index, val); if (ret) - return ret; + dev_err(&client->dev, + "%s: error %d setting reg 0x%02x to 0x%04x\n", + __func__, ret, index, val); } - - return 0; } static int sgtl5000_i2c_probe(struct i2c_client *client, @@ -1364,9 +1365,7 @@ static int sgtl5000_i2c_probe(struct i2c_client *client, } /* Ensure sgtl5000 will start with sane register values */ - ret = sgtl5000_fill_defaults(sgtl5000); - if (ret) - goto disable_clk; + sgtl5000_fill_defaults(client); ret = snd_soc_register_codec(&client->dev, &sgtl5000_driver, &sgtl5000_dai, 1); From 93888a58caf0bd22a7b83105e5a0b41879b69bef Mon Sep 17 00:00:00 2001 From: Eric Nelson Date: Thu, 10 May 2018 16:08:19 +0100 Subject: [PATCH 0323/1149] ASoC: sgtl5000: Initialize CHIP_ANA_POWER to power-on defaults Initialize CHIP_ANA_POWER to match power on defaults, which disables ADC, DAC, and charge pumps. In the process, remove references to the following register/bitfields from the sgtl5000_set_power_regs routine: CHIP_ANA_POWER/LINREG_SIMPLE_POWERUP and CHIP_LINREG_CTRL/LINREG_VDD_MASK And remove CHIP_ANA_POWER and CHIP_LINREG_CTRL from the set of default registers so they don't get clobbered by sgtl5000_fill_defaults(). Signed-off-by: Eric Nelson Signed-off-by: Clemens Gruber Tested-by: Fabio Estevam Signed-off-by: Mark Brown (cherry picked from commit 3d632cc87204b51a4b32bdaa970fe6b8d879347e) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- sound/soc/codecs/sgtl5000.c | 56 ++++++++++++++----------------------- sound/soc/codecs/sgtl5000.h | 1 + 2 files changed, 22 insertions(+), 35 deletions(-) diff --git a/sound/soc/codecs/sgtl5000.c b/sound/soc/codecs/sgtl5000.c index 56d61a212083..42f2eb62664e 100644 --- a/sound/soc/codecs/sgtl5000.c +++ b/sound/soc/codecs/sgtl5000.c @@ -47,12 +47,10 @@ static const struct reg_default sgtl5000_reg_defaults[] = { { SGTL5000_CHIP_ANA_ADC_CTRL, 0x0000 }, { SGTL5000_CHIP_ANA_HP_CTRL, 0x1818 }, { SGTL5000_CHIP_ANA_CTRL, 0x0111 }, - { SGTL5000_CHIP_LINREG_CTRL, 0x0000 }, { SGTL5000_CHIP_REF_CTRL, 0x0000 }, { SGTL5000_CHIP_MIC_CTRL, 0x0000 }, { SGTL5000_CHIP_LINE_OUT_CTRL, 0x0000 }, { SGTL5000_CHIP_LINE_OUT_VOL, 0x0404 }, - { SGTL5000_CHIP_ANA_POWER, 0x7060 }, { SGTL5000_CHIP_PLL_CTRL, 0x5000 }, { SGTL5000_CHIP_CLK_TOP_CTRL, 0x0000 }, { SGTL5000_CHIP_ANA_STATUS, 0x0000 }, @@ -93,6 +91,7 @@ static const char *supply_names[SGTL5000_SUPPLY_NUM] = { }; #define LDO_VOLTAGE 1200000 +#define LINREG_VDDD ((1600 - LDO_VOLTAGE / 1000) / 50) enum sgtl5000_micbias_resistor { SGTL5000_MICBIAS_OFF = 0, @@ -1002,25 +1001,6 @@ static int sgtl5000_set_power_regs(struct snd_soc_codec *codec) snd_soc_write(codec, SGTL5000_CHIP_ANA_POWER, ana_pwr); - /* set voltage to register */ - snd_soc_update_bits(codec, SGTL5000_CHIP_LINREG_CTRL, - SGTL5000_LINREG_VDDD_MASK, 0x8); - - /* - * if vddd linear reg has been enabled, - * simple digital supply should be clear to get - * proper VDDD voltage. - */ - if (ana_pwr & SGTL5000_LINEREG_D_POWERUP) - snd_soc_update_bits(codec, SGTL5000_CHIP_ANA_POWER, - SGTL5000_LINREG_SIMPLE_POWERUP, - 0); - else - snd_soc_update_bits(codec, SGTL5000_CHIP_ANA_POWER, - SGTL5000_LINREG_SIMPLE_POWERUP | - SGTL5000_STARTUP_POWERUP, - 0); - /* * set ADC/DAC VAG to vdda / 2, * should stay in range (0.8v, 1.575v) @@ -1242,6 +1222,7 @@ static int sgtl5000_i2c_probe(struct i2c_client *client, int ret, reg, rev; struct device_node *np = client->dev.of_node; u32 value; + u16 ana_pwr; sgtl5000 = devm_kzalloc(&client->dev, sizeof(*sgtl5000), GFP_KERNEL); if (!sgtl5000) @@ -1299,29 +1280,34 @@ static int sgtl5000_i2c_probe(struct i2c_client *client, sgtl5000->revision = rev; /* Follow section 2.2.1.1 of AN3663 */ + ana_pwr = SGTL5000_ANA_POWER_DEFAULT; if (sgtl5000->num_supplies <= VDDD) { /* internal VDDD at 1.2V */ - regmap_update_bits(sgtl5000->regmap, - SGTL5000_CHIP_LINREG_CTRL, - SGTL5000_LINREG_VDDD_MASK, 8); - regmap_update_bits(sgtl5000->regmap, - SGTL5000_CHIP_ANA_POWER, - SGTL5000_LINEREG_D_POWERUP - | SGTL5000_LINREG_SIMPLE_POWERUP, - SGTL5000_LINEREG_D_POWERUP); - dev_info(&client->dev, "Using internal LDO instead of VDDD: check ER1\n"); + ret = regmap_update_bits(sgtl5000->regmap, + SGTL5000_CHIP_LINREG_CTRL, + SGTL5000_LINREG_VDDD_MASK, + LINREG_VDDD); + if (ret) + dev_err(&client->dev, + "Error %d setting LINREG_VDDD\n", ret); + + ana_pwr |= SGTL5000_LINEREG_D_POWERUP; + dev_info(&client->dev, + "Using internal LDO instead of VDDD: check ER1\n"); } else { /* using external LDO for VDDD * Clear startup powerup and simple powerup * bits to save power */ - regmap_update_bits(sgtl5000->regmap, - SGTL5000_CHIP_ANA_POWER, - SGTL5000_STARTUP_POWERUP - | SGTL5000_LINREG_SIMPLE_POWERUP, - 0); + ana_pwr &= ~(SGTL5000_STARTUP_POWERUP + | SGTL5000_LINREG_SIMPLE_POWERUP); dev_dbg(&client->dev, "Using external VDDD\n"); } + ret = regmap_write(sgtl5000->regmap, SGTL5000_CHIP_ANA_POWER, ana_pwr); + if (ret) + dev_err(&client->dev, + "Error %d setting CHIP_ANA_POWER to %04x\n", + ret, ana_pwr); if (np) { if (!of_property_read_u32(np, diff --git a/sound/soc/codecs/sgtl5000.h b/sound/soc/codecs/sgtl5000.h index 1c317de26176..1be82379c689 100644 --- a/sound/soc/codecs/sgtl5000.h +++ b/sound/soc/codecs/sgtl5000.h @@ -325,6 +325,7 @@ /* * SGTL5000_CHIP_ANA_POWER */ +#define SGTL5000_ANA_POWER_DEFAULT 0x7060 #define SGTL5000_DAC_STEREO 0x4000 #define SGTL5000_LINREG_SIMPLE_POWERUP 0x2000 #define SGTL5000_STARTUP_POWERUP 0x1000 From 839aacf9d915ee4fa6d7bf5a1cf0b1c3313a143b Mon Sep 17 00:00:00 2001 From: Eric Nelson Date: Thu, 10 May 2018 16:08:20 +0100 Subject: [PATCH 0324/1149] ASoC: sgtl5000: Disable internal PLL early To handle the soft reboot case, the internal PLL must be disabled in SGTL5000_CHIP_CLK_CTRL before clearing bits SGTL5000_VCOAMP_POWERUP and SGTL5000_PLL_POWERUP in register SGTL5000_CHIP_ANA_POWER. Signed-off-by: Eric Nelson Signed-off-by: Clemens Gruber Tested-by: Fabio Estevam Signed-off-by: Mark Brown (cherry picked from commit 08dea16e0960ea5caf7876045b747145cb677096) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- sound/soc/codecs/sgtl5000.c | 9 ++++++++- sound/soc/codecs/sgtl5000.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/sound/soc/codecs/sgtl5000.c b/sound/soc/codecs/sgtl5000.c index 42f2eb62664e..0916bb46ccf2 100644 --- a/sound/soc/codecs/sgtl5000.c +++ b/sound/soc/codecs/sgtl5000.c @@ -38,7 +38,6 @@ /* default value of sgtl5000 registers */ static const struct reg_default sgtl5000_reg_defaults[] = { { SGTL5000_CHIP_DIG_POWER, 0x0000 }, - { SGTL5000_CHIP_CLK_CTRL, 0x0008 }, { SGTL5000_CHIP_I2S_CTRL, 0x0010 }, { SGTL5000_CHIP_SSS_CTRL, 0x0010 }, { SGTL5000_CHIP_ADCDAC_CTRL, 0x020c }, @@ -1279,6 +1278,14 @@ static int sgtl5000_i2c_probe(struct i2c_client *client, dev_info(&client->dev, "sgtl5000 revision 0x%x\n", rev); sgtl5000->revision = rev; + /* reconfigure the clocks in case we're using the PLL */ + ret = regmap_write(sgtl5000->regmap, + SGTL5000_CHIP_CLK_CTRL, + SGTL5000_CHIP_CLK_CTRL_DEFAULT); + if (ret) + dev_err(&client->dev, + "Error %d initializing CHIP_CLK_CTRL\n", ret); + /* Follow section 2.2.1.1 of AN3663 */ ana_pwr = SGTL5000_ANA_POWER_DEFAULT; if (sgtl5000->num_supplies <= VDDD) { diff --git a/sound/soc/codecs/sgtl5000.h b/sound/soc/codecs/sgtl5000.h index 1be82379c689..22f3442af982 100644 --- a/sound/soc/codecs/sgtl5000.h +++ b/sound/soc/codecs/sgtl5000.h @@ -92,6 +92,7 @@ /* * SGTL5000_CHIP_CLK_CTRL */ +#define SGTL5000_CHIP_CLK_CTRL_DEFAULT 0x0008 #define SGTL5000_RATE_MODE_MASK 0x0030 #define SGTL5000_RATE_MODE_SHIFT 4 #define SGTL5000_RATE_MODE_WIDTH 2 From 0849994540cf4b3b6252609a2266242fc2f1ab6f Mon Sep 17 00:00:00 2001 From: Eric Nelson Date: Thu, 10 May 2018 16:08:21 +0100 Subject: [PATCH 0325/1149] ASoC: sgtl5000: Do not disable regulators in SND_SOC_BIAS_OFF Disabling the SGTL5000 through regulators would certainly save more power than simply disabling the reference voltages as described in the data sheet, but won't properly restore things on resume. This driver does not support active regulators. So we simply disable the reference bias currents. Signed-off-by: Eric Nelson Signed-off-by: Clemens Gruber Reviewed-by: Fabio Estevam Signed-off-by: Mark Brown (cherry picked from commit 8419caa7270291e26f8b34b12b29680586c85d30) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- sound/soc/codecs/sgtl5000.c | 35 +++++------------------------------ 1 file changed, 5 insertions(+), 30 deletions(-) diff --git a/sound/soc/codecs/sgtl5000.c b/sound/soc/codecs/sgtl5000.c index 0916bb46ccf2..39a178a88b36 100644 --- a/sound/soc/codecs/sgtl5000.c +++ b/sound/soc/codecs/sgtl5000.c @@ -761,42 +761,17 @@ static int sgtl5000_pcm_hw_params(struct snd_pcm_substream *substream, static int sgtl5000_set_bias_level(struct snd_soc_codec *codec, enum snd_soc_bias_level level) { - int ret; - struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec); - switch (level) { case SND_SOC_BIAS_ON: case SND_SOC_BIAS_PREPARE: - break; case SND_SOC_BIAS_STANDBY: - if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_OFF) { - ret = regulator_bulk_enable( - sgtl5000->num_supplies, - sgtl5000->supplies); - if (ret) - return ret; - udelay(10); - - regcache_cache_only(sgtl5000->regmap, false); - - ret = regcache_sync(sgtl5000->regmap); - if (ret != 0) { - dev_err(codec->dev, - "Failed to restore cache: %d\n", ret); - - regcache_cache_only(sgtl5000->regmap, true); - regulator_bulk_disable(sgtl5000->num_supplies, - sgtl5000->supplies); - - return ret; - } - } - + snd_soc_update_bits(codec, SGTL5000_CHIP_ANA_POWER, + SGTL5000_REFTOP_POWERUP, + SGTL5000_REFTOP_POWERUP); break; case SND_SOC_BIAS_OFF: - regcache_cache_only(sgtl5000->regmap, true); - regulator_bulk_disable(sgtl5000->num_supplies, - sgtl5000->supplies); + snd_soc_update_bits(codec, SGTL5000_CHIP_ANA_POWER, + SGTL5000_REFTOP_POWERUP, 0); break; } From 54ba7d9ae4f1657bee4ce68c1da297e1db6c66b4 Mon Sep 17 00:00:00 2001 From: Kalle Kankare Date: Thu, 10 May 2018 16:08:22 +0100 Subject: [PATCH 0326/1149] sgtl5000: add Lineout volume control This controls the volume for the line out pins of SGTL5000. Signed-off-by: Fabien Lahoudere Signed-off-by: Mark Brown (cherry picked from commit 0593d4612146dc16ff6bd23423bdd434dd7b8c7b) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- sound/soc/codecs/sgtl5000.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sound/soc/codecs/sgtl5000.c b/sound/soc/codecs/sgtl5000.c index 39a178a88b36..527b759c1562 100644 --- a/sound/soc/codecs/sgtl5000.c +++ b/sound/soc/codecs/sgtl5000.c @@ -385,6 +385,9 @@ static const DECLARE_TLV_DB_RANGE(mic_gain_tlv, /* tlv for hp volume, -51.5db to 12.0db, step .5db */ static const DECLARE_TLV_DB_SCALE(headphone_volume, -5150, 50, 0); +/* tlv for lineout volume, 31 steps of .5db each */ +static const DECLARE_TLV_DB_SCALE(lineout_volume, -1550, 50, 0); + static const struct snd_kcontrol_new sgtl5000_snd_controls[] = { /* SOC_DOUBLE_S8_TLV with invert */ { @@ -413,6 +416,13 @@ static const struct snd_kcontrol_new sgtl5000_snd_controls[] = { SOC_SINGLE_TLV("Mic Volume", SGTL5000_CHIP_MIC_CTRL, 0, 3, 0, mic_gain_tlv), + + SOC_DOUBLE_TLV("Lineout Playback Volume", + SGTL5000_CHIP_LINE_OUT_VOL, + SGTL5000_LINE_OUT_VOL_LEFT_SHIFT, + SGTL5000_LINE_OUT_VOL_RIGHT_SHIFT, + 0x1f, 1, + lineout_volume), }; /* mute the codec used by alsa core */ From bc9b277c4cecbdc2722f335bf4c4b3d74cef7cb6 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 10 May 2018 16:08:23 +0100 Subject: [PATCH 0327/1149] ARM: dts: r8a7743: Add audio clocks Describe the external audio clocks required by the sound driver. Boards that provide audio clocks need to override the clock frequencies. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit f27244593782059ad9e4d176006814609f4abfa1) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 97246090d7aa..e0531e73e646 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -1499,6 +1499,29 @@ clock-frequency = <0>; }; + /* + * The external audio clocks are configured as 0 Hz fixed frequency + * clocks by default. + * Boards that provide audio clocks should override them. + */ + audio_clk_a: audio_clk_a { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <0>; + }; + + audio_clk_b: audio_clk_b { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <0>; + }; + + audio_clk_c: audio_clk_c { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <0>; + }; + /* External USB clock - can be overridden by the board */ usb_extal_clk: usb_extal { compatible = "fixed-clock"; From a8ff0cf3d1f2eb935e94895ce35259a942532fd0 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 10 May 2018 16:08:24 +0100 Subject: [PATCH 0328/1149] ARM: dts: r8a7743: Add audio DMAC support Instantiate the two audio DMA controllers on the r8a7743 device tree. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit 1a86529ed8bc982c690a540ab472cd5a2d93c6cb) (updated clocks and power-domains property. removed resets property) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 60 ++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index e0531e73e646..625d5aca8f4c 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -316,6 +316,66 @@ dma-channels = <15>; }; + audma0: dma-controller@ec700000 { + compatible = "renesas,dmac-r8a7743", + "renesas,rcar-dmac"; + reg = <0 0xec700000 0 0x10000>; + interrupts = ; + interrupt-names = "error", + "ch0", "ch1", "ch2", "ch3", + "ch4", "ch5", "ch6", "ch7", + "ch8", "ch9", "ch10", "ch11", + "ch12"; + clocks = <&mstp5_clks R8A7743_CLK_AUDIO_DMAC0>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <13>; + }; + + audma1: dma-controller@ec720000 { + compatible = "renesas,dmac-r8a7743", + "renesas,rcar-dmac"; + reg = <0 0xec720000 0 0x10000>; + interrupts = ; + interrupt-names = "error", + "ch0", "ch1", "ch2", "ch3", + "ch4", "ch5", "ch6", "ch7", + "ch8", "ch9", "ch10", "ch11", + "ch12"; + clocks = <&mstp5_clks R8A7743_CLK_AUDIO_DMAC1>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <13>; + }; + usb_dmac0: dma-controller@e65a0000 { compatible = "renesas,r8a7743-usb-dmac", "renesas,usb-dmac"; From 6e7cbfe8f80d5d5ca5949bae1eff51a9313f7bec Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 10 May 2018 16:08:25 +0100 Subject: [PATCH 0329/1149] ARM: dts: r8a7743: Add sound support Define the generic r8a7743(RZ/G1M) part of the sound device node. This patch is based on the r8a7791 sound work by Kuninori Morimoto. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit de812613376a202d70c8ce37211044a29aae33b2) (updated clock, power-domains property. Removed resets and reset-names properties. Also changed the rcar_sound,module children names (for eg:- ssi-0 to ssi@0) for similarity with other r-car gen2 devices present in 4.4 kernel) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 179 +++++++++++++++++++++++++++++++++ 1 file changed, 179 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 625d5aca8f4c..73c658bc4da3 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -1549,6 +1549,185 @@ power-domains = <&cpg_clocks>; status = "disabled"; }; + + rcar_sound: sound@ec500000 { + /* + * #sound-dai-cells is required + * + * Single DAI : #sound-dai-cells = <0>; <&rcar_sound>; + * Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>; + */ + compatible = "renesas,rcar_sound-r8a7743", + "renesas,rcar_sound-gen2"; + reg = <0 0xec500000 0 0x1000>, /* SCU */ + <0 0xec5a0000 0 0x100>, /* ADG */ + <0 0xec540000 0 0x1000>, /* SSIU */ + <0 0xec541000 0 0x280>, /* SSI */ + <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/ + reg-names = "scu", "adg", "ssiu", "ssi", "audmapp"; + + clocks = <&mstp10_clks R8A7743_CLK_SSI_ALL>, + <&mstp10_clks R8A7743_CLK_SSI9>, <&mstp10_clks R8A7743_CLK_SSI8>, + <&mstp10_clks R8A7743_CLK_SSI7>, <&mstp10_clks R8A7743_CLK_SSI6>, + <&mstp10_clks R8A7743_CLK_SSI5>, <&mstp10_clks R8A7743_CLK_SSI4>, + <&mstp10_clks R8A7743_CLK_SSI3>, <&mstp10_clks R8A7743_CLK_SSI2>, + <&mstp10_clks R8A7743_CLK_SSI1>, <&mstp10_clks R8A7743_CLK_SSI0>, + <&mstp10_clks R8A7743_CLK_SCU_SRC9>, <&mstp10_clks R8A7743_CLK_SCU_SRC8>, + <&mstp10_clks R8A7743_CLK_SCU_SRC7>, <&mstp10_clks R8A7743_CLK_SCU_SRC6>, + <&mstp10_clks R8A7743_CLK_SCU_SRC5>, <&mstp10_clks R8A7743_CLK_SCU_SRC4>, + <&mstp10_clks R8A7743_CLK_SCU_SRC3>, <&mstp10_clks R8A7743_CLK_SCU_SRC2>, + <&mstp10_clks R8A7743_CLK_SCU_SRC1>, <&mstp10_clks R8A7743_CLK_SCU_SRC0>, + <&mstp10_clks R8A7743_CLK_SCU_CTU0_MIX0>, <&mstp10_clks R8A7743_CLK_SCU_CTU1_MIX1>, + <&mstp10_clks R8A7743_CLK_SCU_CTU0_MIX0>, <&mstp10_clks R8A7743_CLK_SCU_CTU1_MIX1>, + <&mstp10_clks R8A7743_CLK_SCU_DVC0>, <&mstp10_clks R8A7743_CLK_SCU_DVC1>, + <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, + <&m2_clk>; + clock-names = "ssi-all", + "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5", + "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0", + "src.9", "src.8", "src.7", "src.6", "src.5", + "src.4", "src.3", "src.2", "src.1", "src.0", + "ctu.0", "ctu.1", + "mix.0", "mix.1", + "dvc.0", "dvc.1", + "clk_a", "clk_b", "clk_c", "clk_i"; + power-domains = <&cpg_clocks>; + + status = "disabled"; + + rcar_sound,dvc { + dvc0: dvc@0 { + dmas = <&audma1 0xbc>; + dma-names = "tx"; + }; + dvc1: dvc@1 { + dmas = <&audma1 0xbe>; + dma-names = "tx"; + }; + }; + + rcar_sound,mix { + mix0: mix@0 { }; + mix1: mix@1 { }; + }; + + rcar_sound,ctu { + ctu00: ctu@0 { }; + ctu01: ctu@1 { }; + ctu02: ctu@2 { }; + ctu03: ctu@3 { }; + ctu10: ctu@4 { }; + ctu11: ctu@5 { }; + ctu12: ctu@6 { }; + ctu13: ctu@7 { }; + }; + + rcar_sound,src { + src0: src@0 { + interrupts = ; + dmas = <&audma0 0x85>, <&audma1 0x9a>; + dma-names = "rx", "tx"; + }; + src1: src@1 { + interrupts = ; + dmas = <&audma0 0x87>, <&audma1 0x9c>; + dma-names = "rx", "tx"; + }; + src2: src@2 { + interrupts = ; + dmas = <&audma0 0x89>, <&audma1 0x9e>; + dma-names = "rx", "tx"; + }; + src3: src@3 { + interrupts = ; + dmas = <&audma0 0x8b>, <&audma1 0xa0>; + dma-names = "rx", "tx"; + }; + src4: src@4 { + interrupts = ; + dmas = <&audma0 0x8d>, <&audma1 0xb0>; + dma-names = "rx", "tx"; + }; + src5: src@5 { + interrupts = ; + dmas = <&audma0 0x8f>, <&audma1 0xb2>; + dma-names = "rx", "tx"; + }; + src6: src@6 { + interrupts = ; + dmas = <&audma0 0x91>, <&audma1 0xb4>; + dma-names = "rx", "tx"; + }; + src7: src@7 { + interrupts = ; + dmas = <&audma0 0x93>, <&audma1 0xb6>; + dma-names = "rx", "tx"; + }; + src8: src@8 { + interrupts = ; + dmas = <&audma0 0x95>, <&audma1 0xb8>; + dma-names = "rx", "tx"; + }; + src9: src@9 { + interrupts = ; + dmas = <&audma0 0x97>, <&audma1 0xba>; + dma-names = "rx", "tx"; + }; + }; + + rcar_sound,ssi { + ssi0: ssi@0 { + interrupts = ; + dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi1: ssi@1 { + interrupts = ; + dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi2: ssi@2 { + interrupts = ; + dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi3: ssi@3 { + interrupts = ; + dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi4: ssi@4 { + interrupts = ; + dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi5: ssi@5 { + interrupts = ; + dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi6: ssi@6 { + interrupts = ; + dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi7: ssi@7 { + interrupts = ; + dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi8: ssi@8 { + interrupts = ; + dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi9: ssi@9 { + interrupts = ; + dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + }; + }; }; /* External root clock */ From f747829c7813378b869132f28ee09f412d3639aa Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 10 May 2018 16:08:26 +0100 Subject: [PATCH 0330/1149] ARM: dts: iwg20d-q7-common: Enable SGTL5000 audio codec This patch enables SGTL5000 audio codec on the carrier board. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit 3091626868981e086f57d580cb1711b4553c5663) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/iwg20d-q7-common.dtsi | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/arch/arm/boot/dts/iwg20d-q7-common.dtsi b/arch/arm/boot/dts/iwg20d-q7-common.dtsi index 624907b6e79c..8d69a678452a 100644 --- a/arch/arm/boot/dts/iwg20d-q7-common.dtsi +++ b/arch/arm/boot/dts/iwg20d-q7-common.dtsi @@ -20,6 +20,20 @@ stdout-path = "serial0:115200n8"; }; + audio_clock: audio_clock { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <26000000>; + }; + + reg_1p5v: 1p5v { + compatible = "regulator-fixed"; + regulator-name = "1P5V"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + }; + vcc_sdhi1: regulator-vcc-sdhi1 { compatible = "regulator-fixed"; @@ -83,6 +97,16 @@ compatible = "bq32000"; reg = <0x68>; }; + + sgtl5000: codec@a { + compatible = "fsl,sgtl5000"; + #sound-dai-cells = <0>; + reg = <0x0a>; + clocks = <&audio_clock>; + VDDA-supply = <®_3p3v>; + VDDIO-supply = <®_3p3v>; + VDDD-supply = <®_1p5v>; + }; }; &pci0 { From 16dcf3c6fbaeb8063bae85eddfac61cd4b50528f Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 10 May 2018 16:08:27 +0100 Subject: [PATCH 0331/1149] ARM: dts: iwg20d-q7-common: Sound PIO support Enable sound PIO support on carrier board. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Acked-by: Kuninori Morimoto Signed-off-by: Simon Horman (cherry picked from commit cfa2e2f7cf22d0523a88c6284606baa9b2698866) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/iwg20d-q7-common.dtsi | 46 +++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/arch/arm/boot/dts/iwg20d-q7-common.dtsi b/arch/arm/boot/dts/iwg20d-q7-common.dtsi index 8d69a678452a..01f60ce73888 100644 --- a/arch/arm/boot/dts/iwg20d-q7-common.dtsi +++ b/arch/arm/boot/dts/iwg20d-q7-common.dtsi @@ -34,6 +34,22 @@ regulator-always-on; }; + rsnd_sgtl5000: sound { + compatible = "simple-audio-card"; + + simple-audio-card,format = "i2s"; + simple-audio-card,bitclock-master = <&sndcodec>; + simple-audio-card,frame-master = <&sndcodec>; + + sndcpu: simple-audio-card,cpu { + sound-dai = <&rcar_sound>; + }; + + sndcodec: simple-audio-card,codec { + sound-dai = <&sgtl5000>; + }; + }; + vcc_sdhi1: regulator-vcc-sdhi1 { compatible = "regulator-fixed"; @@ -160,6 +176,11 @@ power-source = <3300>; }; + sound_pins: sound { + groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data"; + function = "ssi"; + }; + usb0_pins: usb0 { groups = "usb0"; function = "usb0"; @@ -171,6 +192,22 @@ }; }; +&rcar_sound { + pinctrl-0 = <&sound_pins>; + pinctrl-names = "default"; + status = "okay"; + + /* Single DAI */ + #sound-dai-cells = <0>; + + rcar_sound,dai { + dai0 { + playback = <&ssi1>; + capture = <&ssi0>; + }; + }; +}; + &scif0 { pinctrl-0 = <&scif0_pins>; pinctrl-names = "default"; @@ -197,6 +234,15 @@ status = "okay"; }; +&ssi0 { + pio-transfer; +}; + +&ssi1 { + pio-transfer; + shared-pin; +}; + &usbphy { status = "okay"; }; From 7092be84c952d3115d6f51f1a16c17fbbc80efc0 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 10 May 2018 16:08:28 +0100 Subject: [PATCH 0332/1149] ARM: dts: iwg20d-q7-common: Sound DMA support on DTS DMA transfer to/from SSI DMA [MEM] -> [SSI] DMA [MEM] <- [SSI] Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Acked-by: Kuninori Morimoto Signed-off-by: Simon Horman (cherry picked from commit eeecf0b2a04e118c6404da7fbca3c8f82b0302a3) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/iwg20d-q7-common.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/iwg20d-q7-common.dtsi b/arch/arm/boot/dts/iwg20d-q7-common.dtsi index 01f60ce73888..0c16f4c1735a 100644 --- a/arch/arm/boot/dts/iwg20d-q7-common.dtsi +++ b/arch/arm/boot/dts/iwg20d-q7-common.dtsi @@ -235,11 +235,11 @@ }; &ssi0 { - pio-transfer; + no-busif; }; &ssi1 { - pio-transfer; + no-busif; shared-pin; }; From 106ea37943d888fb7984ae633328eea8c297aca1 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 10 May 2018 16:08:29 +0100 Subject: [PATCH 0333/1149] ARM: dts: iwg20d-q7-common: Sound DMA support via BUSIF on DTS DMA transfer to/from SSIU DMA [MEM] -> [SSIU] -> [SSI] DMA [MEM] <- [SSIU] <- [SSI] Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Acked-by: Kuninori Morimoto Signed-off-by: Simon Horman (cherry picked from commit 354cce5a1c8700afa8cff8f85c93c84feb342815) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/iwg20d-q7-common.dtsi | 5 ----- 1 file changed, 5 deletions(-) diff --git a/arch/arm/boot/dts/iwg20d-q7-common.dtsi b/arch/arm/boot/dts/iwg20d-q7-common.dtsi index 0c16f4c1735a..6c16f9975b09 100644 --- a/arch/arm/boot/dts/iwg20d-q7-common.dtsi +++ b/arch/arm/boot/dts/iwg20d-q7-common.dtsi @@ -234,12 +234,7 @@ status = "okay"; }; -&ssi0 { - no-busif; -}; - &ssi1 { - no-busif; shared-pin; }; From 702e9f268b6d550d0645d40e249b1b87c74f8ea6 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 10 May 2018 16:08:30 +0100 Subject: [PATCH 0334/1149] ARM: dts: iwg20d-q7-common: Sound DMA support via SRC on DTS DMA transfer to/from SRC DMA DMApp [MEM] -> [SRC] -> [SSIU] -> [SSI] DMA DMApp [MEM] <- [SRC] <- [SSIU] <- [SSI] Current sound driver is supporting SSI/SRC random connection. So, this patch is trying SSI1 -> SRC3 SSI0 <- SRC2 Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Acked-by: Kuninori Morimoto Signed-off-by: Simon Horman (cherry picked from commit b4b2094511166d904e6f15df8eff9d2776bf138c) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/iwg20d-q7-common.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/iwg20d-q7-common.dtsi b/arch/arm/boot/dts/iwg20d-q7-common.dtsi index 6c16f9975b09..937c6fe31b41 100644 --- a/arch/arm/boot/dts/iwg20d-q7-common.dtsi +++ b/arch/arm/boot/dts/iwg20d-q7-common.dtsi @@ -202,8 +202,8 @@ rcar_sound,dai { dai0 { - playback = <&ssi1>; - capture = <&ssi0>; + playback = <&ssi1 &src3>; + capture = <&ssi0 &src2>; }; }; }; From bd97de63efa95b373b7b08f0369a407118113994 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 10 May 2018 16:08:31 +0100 Subject: [PATCH 0335/1149] ARM: dts: iwg20d-q7-common: Sound DMA support via DVC on DTS DMA transfer uses DVC DMA DMApp [MEM] -> [SRC] -> [DVC] -> [SSIU] -> [SSI] DMA DMApp [MEM] <- [DVC] <- [SRC] <- [SSIU] <- [SSI] Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Acked-by: Kuninori Morimoto Signed-off-by: Simon Horman (cherry picked from commit 0ed33948cb43193ba3dbdff8e521f84326669405) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/iwg20d-q7-common.dtsi | 27 +++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/iwg20d-q7-common.dtsi b/arch/arm/boot/dts/iwg20d-q7-common.dtsi index 937c6fe31b41..6920e3f2d2bd 100644 --- a/arch/arm/boot/dts/iwg20d-q7-common.dtsi +++ b/arch/arm/boot/dts/iwg20d-q7-common.dtsi @@ -8,6 +8,29 @@ * kind, whether express or implied. */ +/* + * SSI-SGTL5000 + * + * This command is required when Playback/Capture + * + * amixer set "DVC Out" 100% + * amixer set "DVC In" 100% + * + * You can use Mute + * + * amixer set "DVC Out Mute" on + * amixer set "DVC In Mute" on + * + * You can use Volume Ramp + * + * amixer set "DVC Out Ramp Up Rate" "0.125 dB/64 steps" + * amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps" + * amixer set "DVC Out Ramp" on + * aplay xxx.wav & + * amixer set "DVC Out" 80% // Volume Down + * amixer set "DVC Out" 100% // Volume Up + */ + / { aliases { serial0 = &scif0; @@ -202,8 +225,8 @@ rcar_sound,dai { dai0 { - playback = <&ssi1 &src3>; - capture = <&ssi0 &src2>; + playback = <&ssi1 &src3 &dvc1>; + capture = <&ssi0 &src2 &dvc0>; }; }; }; From c0a147b21d05c9e2be1c72fe0fd80a684b175e8e Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 10 May 2018 16:08:32 +0100 Subject: [PATCH 0336/1149] pinctrl: sh-pfc: r8a7791: Add tpu groups and function This patch adds tpu groups and function to r8a7743/r8a7791/r8a7793. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Geert Uytterhoeven (cherry picked from commit 21047d5736918b19a3efe11e8ace856cb1b4b403) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 42 ++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c index 39fc9ad9945c..4f971a9c762b 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c @@ -4149,6 +4149,32 @@ static const unsigned int ssi9_ctrl_b_mux[] = { SSI_SCK9_B_MARK, SSI_WS9_B_MARK, }; +/* - TPU -------------------------------------------------------------------- */ +static const unsigned int tpu_to0_pins[] = { + RCAR_GP_PIN(6, 14), +}; +static const unsigned int tpu_to0_mux[] = { + TPU_TO0_MARK, +}; +static const unsigned int tpu_to1_pins[] = { + RCAR_GP_PIN(1, 17), +}; +static const unsigned int tpu_to1_mux[] = { + TPU_TO1_MARK, +}; +static const unsigned int tpu_to2_pins[] = { + RCAR_GP_PIN(1, 18), +}; +static const unsigned int tpu_to2_mux[] = { + TPU_TO2_MARK, +}; +static const unsigned int tpu_to3_pins[] = { + RCAR_GP_PIN(1, 24), +}; +static const unsigned int tpu_to3_mux[] = { + TPU_TO3_MARK, +}; + /* - USB0 ------------------------------------------------------------------- */ static const unsigned int usb0_pins[] = { RCAR_GP_PIN(7, 23), /* PWEN */ @@ -4435,7 +4461,7 @@ static const unsigned int vin2_clk_mux[] = { }; static const struct { - struct sh_pfc_pin_group common[342]; + struct sh_pfc_pin_group common[346]; struct sh_pfc_pin_group r8a779x[9]; } pinmux_groups = { .common = { @@ -4747,6 +4773,10 @@ static const struct { SH_PFC_PIN_GROUP(ssi9_data_b), SH_PFC_PIN_GROUP(ssi9_ctrl), SH_PFC_PIN_GROUP(ssi9_ctrl_b), + SH_PFC_PIN_GROUP(tpu_to0), + SH_PFC_PIN_GROUP(tpu_to1), + SH_PFC_PIN_GROUP(tpu_to2), + SH_PFC_PIN_GROUP(tpu_to3), SH_PFC_PIN_GROUP(usb0), SH_PFC_PIN_GROUP(usb1), VIN_DATA_PIN_GROUP(vin0_data, 24), @@ -5282,6 +5312,13 @@ static const char * const ssi_groups[] = { "ssi9_ctrl_b", }; +static const char * const tpu_groups[] = { + "tpu_to0", + "tpu_to1", + "tpu_to2", + "tpu_to3", +}; + static const char * const usb0_groups[] = { "usb0", }; @@ -5331,7 +5368,7 @@ static const char * const vin2_groups[] = { }; static const struct { - struct sh_pfc_function common[57]; + struct sh_pfc_function common[58]; struct sh_pfc_function r8a779x[2]; } pinmux_functions = { .common = { @@ -5387,6 +5424,7 @@ static const struct { SH_PFC_FUNCTION(sdhi1), SH_PFC_FUNCTION(sdhi2), SH_PFC_FUNCTION(ssi), + SH_PFC_FUNCTION(tpu), SH_PFC_FUNCTION(usb0), SH_PFC_FUNCTION(usb1), SH_PFC_FUNCTION(vin0), From cb4a3aa465560dba6cbf39118b772365f00c3d3f Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 10 May 2018 16:08:33 +0100 Subject: [PATCH 0337/1149] dt-bindings: pwm: renesas-tpu: Document r8a774[35] support Document r8a774[35] specific compatible strings. No driver change is needed as the fallback compatible string "renesas,tpu" activates the right code in the driver. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Rob Herring Reviewed-by: Geert Uytterhoeven Reviewed-by: Simon Horman Signed-off-by: Thierry Reding (cherry picked from commit 3ba111a0182265b65e303c969294b8033ce9d122) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt b/Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt index b067e84a94b5..90e0a0a3ae71 100644 --- a/Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt +++ b/Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt @@ -5,9 +5,11 @@ Required Properties: - compatible: should be one of the following. - "renesas,tpu-r8a73a4": for R8A77A4 (R-Mobile APE6) compatible PWM controller. - "renesas,tpu-r8a7740": for R8A7740 (R-Mobile A1) compatible PWM controller. + - "renesas,tpu-r8a7743": for R8A7743 (RZ/G1M) compatible PWM controller. + - "renesas,tpu-r8a7745": for R8A7745 (RZ/G1E) compatible PWM controller. - "renesas,tpu-r8a7790": for R8A7790 (R-Car H2) compatible PWM controller. - "renesas,tpu-sh7372": for SH7372 (SH-Mobile AP4) compatible PWM controller. - - "renesas,tpu": for generic R-Car TPU PWM controller. + - "renesas,tpu": for generic R-Car and RZ/G1 TPU PWM controller. - reg: Base address and length of each memory resource used by the PWM controller hardware module. From 0c761b31ee854bbc1d01b04f562f4c8ade04bd19 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 10 May 2018 16:08:34 +0100 Subject: [PATCH 0338/1149] ARM: dts: r8a7743: Add TPU support Add TPU support to SoC DT. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit ba8f6bda525121e310cec7532bf218d0bace4ff1) (updated clock and power-domains property. removed resets property) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 73c658bc4da3..c0e53ee46af9 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -254,6 +254,15 @@ reg = <0 0xe6060000 0 0x250>; }; + tpu: pwm@e60f0000 { + compatible = "renesas,tpu-r8a7743", "renesas,tpu"; + reg = <0 0xe60f0000 0 0x148>; + clocks = <&mstp3_clks R8A7743_CLK_TPU0>; + power-domains = <&cpg_clocks>; + #pwm-cells = <3>; + status = "disabled"; + }; + dmac0: dma-controller@e6700000 { compatible = "renesas,rcar-dmac"; reg = <0 0xe6700000 0 0x20000>; From 66eb74e89996e38ad9298af80f43063b2af82042 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 10 May 2018 16:08:35 +0100 Subject: [PATCH 0339/1149] ARM: multi_v7_defconfig: Select PWM_RCAR as module Enable PWM support for R-Car and friends by default. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 7c57fbcf1455e6823ac6ce44ab45cc351bd79b42) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig index ba520f6cf6e2..47f98ebb6f6e 100644 --- a/arch/arm/configs/multi_v7_defconfig +++ b/arch/arm/configs/multi_v7_defconfig @@ -687,6 +687,7 @@ CONFIG_AK8975=y CONFIG_PWM=y CONFIG_PWM_ATMEL=m CONFIG_PWM_ATMEL_TCB=m +CONFIG_PWM_RCAR=m CONFIG_PWM_RENESAS_TPU=y CONFIG_PWM_ROCKCHIP=m CONFIG_PWM_SAMSUNG=m From 9b0b24849e0ad165b352c2b8b4282df07cf29e05 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 10 May 2018 16:08:36 +0100 Subject: [PATCH 0340/1149] ARM: shmobile: defconfig: Enable PWM RZ/G1 and R-Car platforms have PWM timers. This patch enables PWM support by default. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 1943cbd3b39ee3310494d5b531a906e836bb9f7f) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/configs/shmobile_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/shmobile_defconfig b/arch/arm/configs/shmobile_defconfig index 8b559ca48507..31d7ccc4eb58 100644 --- a/arch/arm/configs/shmobile_defconfig +++ b/arch/arm/configs/shmobile_defconfig @@ -193,6 +193,7 @@ CONFIG_RCAR_DMAC=y CONFIG_IIO=y CONFIG_AK8975=y CONFIG_PWM=y +CONFIG_PWM_RCAR=y CONFIG_PWM_RENESAS_TPU=y CONFIG_GENERIC_PHY=y CONFIG_PHY_RCAR_GEN2=y From 61acfc4805efccfe39f09ede7363324ccead94b7 Mon Sep 17 00:00:00 2001 From: Ryo Kodama Date: Thu, 10 May 2018 16:08:37 +0100 Subject: [PATCH 0341/1149] pwm: rcar: Improve accuracy of frequency division setting When period_ns is set to the same value of RCAR_PWM_MAX_CYCLE in rcar_pwm_get_clock_division(), this function should allow such value for improving accuracy of frequency division setting. Signed-off-by: Ryo Kodama Signed-off-by: Yoshihiro Shimoda Signed-off-by: Thierry Reding (cherry picked from commit 72c16a9f98afad073b4a9c947c1c89bfb886ffcb) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/pwm/pwm-rcar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pwm/pwm-rcar.c b/drivers/pwm/pwm-rcar.c index 6e99a63ffa29..7b8ac0678137 100644 --- a/drivers/pwm/pwm-rcar.c +++ b/drivers/pwm/pwm-rcar.c @@ -81,7 +81,7 @@ static int rcar_pwm_get_clock_division(struct rcar_pwm_chip *rp, int period_ns) max = (unsigned long long)NSEC_PER_SEC * RCAR_PWM_MAX_CYCLE * (1 << div); do_div(max, clk_rate); - if (period_ns < max) + if (period_ns <= max) break; } From 5cc27b4082f9d4a09c46ae60e5978798f3029ec7 Mon Sep 17 00:00:00 2001 From: Boris BREZILLON Date: Thu, 10 May 2018 16:08:38 +0100 Subject: [PATCH 0342/1149] pwm: rcar: Make use of pwm_is_enabled() Commit 5c31252c4a86 ("pwm: Add the pwm_is_enabled() helper") introduced a new function to test whether a PWM device is enabled or not without manipulating PWM internal fields. Hiding this is necessary if we want to smoothly move to the atomic PWM config approach without impacting PWM drivers. Fix this driver to use pwm_is_enabled() instead of directly accessing the ->flags field. Signed-off-by: Boris Brezillon Signed-off-by: Thierry Reding (cherry picked from commit 3587c260906259632df07652743269627f408d85) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/pwm/pwm-rcar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pwm/pwm-rcar.c b/drivers/pwm/pwm-rcar.c index 7b8ac0678137..1c85ecc9e7ac 100644 --- a/drivers/pwm/pwm-rcar.c +++ b/drivers/pwm/pwm-rcar.c @@ -157,7 +157,7 @@ static int rcar_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm, return div; /* Let the core driver set pwm->period if disabled and duty_ns == 0 */ - if (!test_bit(PWMF_ENABLED, &pwm->flags) && !duty_ns) + if (!pwm_is_enabled(pwm) && !duty_ns) return 0; rcar_pwm_update(rp, RCAR_PWMCR_SYNC, RCAR_PWMCR_SYNC, RCAR_PWMCR); From fe0749ee02ce2aca2beefaf79c5ef6b9016cf83e Mon Sep 17 00:00:00 2001 From: Hien Dang Date: Thu, 10 May 2018 16:08:39 +0100 Subject: [PATCH 0343/1149] pwm: rcar: Use PM Runtime to control module clock Runtime PM API (pm_runtime_get_sync/pm_runtime_put) should be used to control module clock instead of clk_prepare_enable and clk_disable_unprepare. Signed-off-by: Hien Dang Signed-off-by: Yoshihiro Shimoda Reviewed-by: Geert Uytterhoeven Signed-off-by: Thierry Reding (cherry picked from commit f2e6142cdc10b1b7edea8d65b07293f152e4d110) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/pwm/pwm-rcar.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/pwm/pwm-rcar.c b/drivers/pwm/pwm-rcar.c index 1c85ecc9e7ac..b94201058dfe 100644 --- a/drivers/pwm/pwm-rcar.c +++ b/drivers/pwm/pwm-rcar.c @@ -134,16 +134,12 @@ static int rcar_pwm_set_counter(struct rcar_pwm_chip *rp, int div, int duty_ns, static int rcar_pwm_request(struct pwm_chip *chip, struct pwm_device *pwm) { - struct rcar_pwm_chip *rp = to_rcar_pwm_chip(chip); - - return clk_prepare_enable(rp->clk); + return pm_runtime_get_sync(chip->dev); } static void rcar_pwm_free(struct pwm_chip *chip, struct pwm_device *pwm) { - struct rcar_pwm_chip *rp = to_rcar_pwm_chip(chip); - - clk_disable_unprepare(rp->clk); + pm_runtime_put(chip->dev); } static int rcar_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm, From 256de68251db46ac74601146ddadaf0510dc336b Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 10 May 2018 16:08:40 +0100 Subject: [PATCH 0344/1149] dt-bindings: pwm: rcar: Document r8a774[35] PWM bindings This patch adds compatible strings specific to r8a774[35], no driver change is needed as the fallback compatible string will activate the right code. Also, this patch replaces the example with a DT snippet used for adding PWM0 support to an r8a7743 based platform as the r8a7743 is now the first platform fully compatible with this driver and its PWM DT nodes refer to up-to-date code. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Rob Herring Reviewed-by: Geert Uytterhoeven Reviewed-by: Simon Horman Signed-off-by: Thierry Reding (cherry picked from commit 9d7e72858d9d84abbbb49e98e2dafeee2f7fd9b6) (removed r8a7743 example,since it is based on cpg-mssr framework) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/pwm/renesas,pwm-rcar.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/pwm/renesas,pwm-rcar.txt b/Documentation/devicetree/bindings/pwm/renesas,pwm-rcar.txt index 0822a083fc57..4493fc5771a9 100644 --- a/Documentation/devicetree/bindings/pwm/renesas,pwm-rcar.txt +++ b/Documentation/devicetree/bindings/pwm/renesas,pwm-rcar.txt @@ -2,6 +2,8 @@ Required Properties: - compatible: should be "renesas,pwm-rcar" and one of the following. + - "renesas,pwm-r8a7743": for RZ/G1M + - "renesas,pwm-r8a7745": for RZ/G1E - "renesas,pwm-r8a7778": for R-Car M1A - "renesas,pwm-r8a7779": for R-Car H1 - "renesas,pwm-r8a7790": for R-Car H2 From 435e4c79e35fd1c351e682773fec39a97dffeece Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 10 May 2018 16:08:41 +0100 Subject: [PATCH 0345/1149] ARM: dts: r8a7743: Add PWM SoC support Add the definitions for pwm[0123456] to the SoC .dtsi. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit ea16b5896267a2358fc17cf5340b27b906513119) (updated clocks and power-domains property.removed resets property) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 63 ++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index c0e53ee46af9..17be22c284b8 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -917,6 +917,69 @@ status = "disabled"; }; + pwm0: pwm@e6e30000 { + compatible = "renesas,pwm-r8a7743", "renesas,pwm-rcar"; + reg = <0 0xe6e30000 0 0x8>; + clocks = <&mstp5_clks R8A7743_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm1: pwm@e6e31000 { + compatible = "renesas,pwm-r8a7743", "renesas,pwm-rcar"; + reg = <0 0xe6e31000 0 0x8>; + clocks = <&mstp5_clks R8A7743_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm2: pwm@e6e32000 { + compatible = "renesas,pwm-r8a7743", "renesas,pwm-rcar"; + reg = <0 0xe6e32000 0 0x8>; + clocks = <&mstp5_clks R8A7743_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm3: pwm@e6e33000 { + compatible = "renesas,pwm-r8a7743", "renesas,pwm-rcar"; + reg = <0 0xe6e33000 0 0x8>; + clocks = <&mstp5_clks R8A7743_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm4: pwm@e6e34000 { + compatible = "renesas,pwm-r8a7743", "renesas,pwm-rcar"; + reg = <0 0xe6e34000 0 0x8>; + clocks = <&mstp5_clks R8A7743_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm5: pwm@e6e35000 { + compatible = "renesas,pwm-r8a7743", "renesas,pwm-rcar"; + reg = <0 0xe6e35000 0 0x8>; + clocks = <&mstp5_clks R8A7743_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm6: pwm@e6e36000 { + compatible = "renesas,pwm-r8a7743", "renesas,pwm-rcar"; + reg = <0 0xe6e36000 0 0x8>; + clocks = <&mstp5_clks R8A7743_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + /* * pci1 and xhci share the same phy, therefore only one of them * can be active at any one time. If both of them are enabled, From cf12afb3c047aca54d9969137975e3634c8a01cd Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Thu, 10 May 2018 16:08:42 +0100 Subject: [PATCH 0346/1149] thermal: rcar: move rcar_thermal_dt_ids to upside This patch is prepare for of-thermal support. Signed-off-by: Kuninori Morimoto Signed-off-by: Eduardo Valentin (cherry picked from commit ca1e4558fcca68a5ac2a4e0f7834f788f9f4ac8f) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/thermal/rcar_thermal.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/thermal/rcar_thermal.c b/drivers/thermal/rcar_thermal.c index 13d01edc7a04..96707a6abd7f 100644 --- a/drivers/thermal/rcar_thermal.c +++ b/drivers/thermal/rcar_thermal.c @@ -81,6 +81,12 @@ struct rcar_thermal_priv { # define rcar_force_update_temp(priv) 0 #endif +static const struct of_device_id rcar_thermal_dt_ids[] = { + { .compatible = "renesas,rcar-thermal", }, + {}, +}; +MODULE_DEVICE_TABLE(of, rcar_thermal_dt_ids); + /* * basic functions */ @@ -484,12 +490,6 @@ static int rcar_thermal_probe(struct platform_device *pdev) return ret; } -static const struct of_device_id rcar_thermal_dt_ids[] = { - { .compatible = "renesas,rcar-thermal", }, - {}, -}; -MODULE_DEVICE_TABLE(of, rcar_thermal_dt_ids); - static struct platform_driver rcar_thermal_driver = { .driver = { .name = "rcar_thermal", From 9575dbd1f5e24d1bbf845f543cae687859cdde81 Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Thu, 10 May 2018 16:08:43 +0100 Subject: [PATCH 0347/1149] thermal: rcar: check every rcar_thermal_update_temp() return value Every rcar_thermal_update_temp() return value will be checked. And also, rcar_thermal_get_temp() always call rcar_thermal_update_temp() by this patch. Signed-off-by: Kuninori Morimoto Signed-off-by: Eduardo Valentin (cherry picked from commit a1ade5653804b8eb9d14c5ba964da6d5c2f4cd30) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/thermal/rcar_thermal.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/drivers/thermal/rcar_thermal.c b/drivers/thermal/rcar_thermal.c index 96707a6abd7f..b012d900c3f2 100644 --- a/drivers/thermal/rcar_thermal.c +++ b/drivers/thermal/rcar_thermal.c @@ -75,12 +75,6 @@ struct rcar_thermal_priv { #define rcar_has_irq_support(priv) ((priv)->common->base) #define rcar_id_to_shift(priv) ((priv)->id * 8) -#ifdef DEBUG -# define rcar_force_update_temp(priv) 1 -#else -# define rcar_force_update_temp(priv) 0 -#endif - static const struct of_device_id rcar_thermal_dt_ids[] = { { .compatible = "renesas,rcar-thermal", }, {}, @@ -209,9 +203,11 @@ static int rcar_thermal_update_temp(struct rcar_thermal_priv *priv) static int rcar_thermal_get_temp(struct thermal_zone_device *zone, int *temp) { struct rcar_thermal_priv *priv = rcar_zone_to_priv(zone); + int ret; - if (!rcar_has_irq_support(priv) || rcar_force_update_temp(priv)) - rcar_thermal_update_temp(priv); + ret = rcar_thermal_update_temp(priv); + if (ret < 0) + return ret; mutex_lock(&priv->lock); *temp = MCELSIUS((priv->ctemp * 5) - 65); @@ -305,11 +301,15 @@ static void rcar_thermal_work(struct work_struct *work) { struct rcar_thermal_priv *priv; int cctemp, nctemp; + int ret; priv = container_of(work, struct rcar_thermal_priv, work.work); rcar_thermal_get_temp(priv->zone, &cctemp); - rcar_thermal_update_temp(priv); + ret = rcar_thermal_update_temp(priv); + if (ret < 0) + return; + rcar_thermal_irq_enable(priv); rcar_thermal_get_temp(priv->zone, &nctemp); @@ -447,7 +447,9 @@ static int rcar_thermal_probe(struct platform_device *pdev) mutex_init(&priv->lock); INIT_LIST_HEAD(&priv->list); INIT_DELAYED_WORK(&priv->work, rcar_thermal_work); - rcar_thermal_update_temp(priv); + ret = rcar_thermal_update_temp(priv); + if (ret < 0) + goto error_unregister; priv->zone = thermal_zone_device_register("rcar_thermal", 1, 0, priv, From c4b6d4336746f28322cefc7e4fef0b7b54a18ac6 Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Thu, 10 May 2018 16:08:44 +0100 Subject: [PATCH 0348/1149] thermal: rcar: check irq possibility in rcar_thermal_irq_xxx() Current rcar thermal driver sometimes checks irq possibility when it calls rcar_thermal_irq_enable/disable(), but sometimes not. This patch checks it inside rcar_thermal_irq_enable/disable(). Signed-off-by: Kuninori Morimoto Signed-off-by: Eduardo Valentin (cherry picked from commit ffbcdf8a759c6dde71c6c4f646a552f7637bcca7) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/thermal/rcar_thermal.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/thermal/rcar_thermal.c b/drivers/thermal/rcar_thermal.c index b012d900c3f2..fb81fd7e6b81 100644 --- a/drivers/thermal/rcar_thermal.c +++ b/drivers/thermal/rcar_thermal.c @@ -290,6 +290,9 @@ static void _rcar_thermal_irq_ctrl(struct rcar_thermal_priv *priv, int enable) unsigned long flags; u32 mask = 0x3 << rcar_id_to_shift(priv); /* enable Rising/Falling */ + if (!rcar_has_irq_support(priv)) + return; + spin_lock_irqsave(&common->lock, flags); rcar_thermal_common_bset(common, INTMSK, mask, enable ? 0 : mask); @@ -374,8 +377,7 @@ static int rcar_thermal_remove(struct platform_device *pdev) struct rcar_thermal_priv *priv; rcar_thermal_for_each_priv(priv, common) { - if (rcar_has_irq_support(priv)) - rcar_thermal_irq_disable(priv); + rcar_thermal_irq_disable(priv); thermal_zone_device_unregister(priv->zone); } @@ -461,8 +463,7 @@ static int rcar_thermal_probe(struct platform_device *pdev) goto error_unregister; } - if (rcar_has_irq_support(priv)) - rcar_thermal_irq_enable(priv); + rcar_thermal_irq_enable(priv); list_move_tail(&priv->list, &common->head); From 3af95fdc21325c70ead4f0a203c4071eaaa0fa8c Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Thu, 10 May 2018 16:08:45 +0100 Subject: [PATCH 0349/1149] thermal: rcar: rcar_thermal_get_temp() return error if strange temp Signed-off-by: Kuninori Morimoto Signed-off-by: Eduardo Valentin (cherry picked from commit 5440c40b900fa561add48a7e70e9c892f0551387) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/thermal/rcar_thermal.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/thermal/rcar_thermal.c b/drivers/thermal/rcar_thermal.c index fb81fd7e6b81..44b9c485157d 100644 --- a/drivers/thermal/rcar_thermal.c +++ b/drivers/thermal/rcar_thermal.c @@ -203,6 +203,7 @@ static int rcar_thermal_update_temp(struct rcar_thermal_priv *priv) static int rcar_thermal_get_temp(struct thermal_zone_device *zone, int *temp) { struct rcar_thermal_priv *priv = rcar_zone_to_priv(zone); + int tmp; int ret; ret = rcar_thermal_update_temp(priv); @@ -210,9 +211,18 @@ static int rcar_thermal_get_temp(struct thermal_zone_device *zone, int *temp) return ret; mutex_lock(&priv->lock); - *temp = MCELSIUS((priv->ctemp * 5) - 65); + tmp = MCELSIUS((priv->ctemp * 5) - 65); mutex_unlock(&priv->lock); + if ((tmp < MCELSIUS(-45)) || (tmp > MCELSIUS(125))) { + struct device *dev = rcar_priv_to_dev(priv); + + dev_err(dev, "it couldn't measure temperature correctly\n"); + return -EIO; + } + + *temp = tmp; + return 0; } From 5890bf571fe6b52550583a9d5a421d7888a60fd4 Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Thu, 10 May 2018 16:08:46 +0100 Subject: [PATCH 0350/1149] thermal: rcar: enable to use thermal-zone on DT This patch enables to use thermal-zone on DT if it was calles as "renesas,rcar-thermal-gen2". Previous style (= non thermal-zone) is still supported by "renesas,rcar-thermal" to keep compatibility for "git bisect". Signed-off-by: Kuninori Morimoto Signed-off-by: Eduardo Valentin (cherry picked from commit 8b477ea56383dc8b838f1f8b506e4571c14ceb30) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- .../bindings/thermal/rcar-thermal.txt | 37 ++++++++++++++- drivers/thermal/rcar_thermal.c | 45 ++++++++++++++++--- 2 files changed, 75 insertions(+), 7 deletions(-) diff --git a/Documentation/devicetree/bindings/thermal/rcar-thermal.txt b/Documentation/devicetree/bindings/thermal/rcar-thermal.txt index 332e625f6ed0..e5ee3f159893 100644 --- a/Documentation/devicetree/bindings/thermal/rcar-thermal.txt +++ b/Documentation/devicetree/bindings/thermal/rcar-thermal.txt @@ -1,8 +1,9 @@ * Renesas R-Car Thermal Required properties: -- compatible : "renesas,thermal-", "renesas,rcar-thermal" - as fallback. +- compatible : "renesas,thermal-", + "renesas,rcar-gen2-thermal" (with thermal-zone) or + "renesas,rcar-thermal" (without thermal-zone) as fallback. Examples with soctypes are: - "renesas,thermal-r8a73a4" (R-Mobile APE6) - "renesas,thermal-r8a7779" (R-Car H1) @@ -36,3 +37,35 @@ thermal@e61f0000 { 0xe61f0300 0x38>; interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>; }; + +Example (with thermal-zone): + +thermal-zones { + cpu_thermal: cpu-thermal { + polling-delay-passive = <1000>; + polling-delay = <5000>; + + thermal-sensors = <&thermal>; + + trips { + cpu-crit { + temperature = <115000>; + hysteresis = <0>; + type = "critical"; + }; + }; + cooling-maps { + }; + }; +}; + +thermal: thermal@e61f0000 { + compatible = "renesas,thermal-r8a7790", + "renesas,rcar-gen2-thermal", + "renesas,rcar-thermal"; + reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>; + interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&mstp5_clks R8A7790_CLK_THERMAL>; + power-domains = <&cpg_clocks>; + #thermal-sensor-cells = <0>; +}; diff --git a/drivers/thermal/rcar_thermal.c b/drivers/thermal/rcar_thermal.c index 44b9c485157d..0e735acea33a 100644 --- a/drivers/thermal/rcar_thermal.c +++ b/drivers/thermal/rcar_thermal.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -75,8 +76,10 @@ struct rcar_thermal_priv { #define rcar_has_irq_support(priv) ((priv)->common->base) #define rcar_id_to_shift(priv) ((priv)->id * 8) +#define USE_OF_THERMAL 1 static const struct of_device_id rcar_thermal_dt_ids[] = { { .compatible = "renesas,rcar-thermal", }, + { .compatible = "renesas,rcar-gen2-thermal", .data = (void *)USE_OF_THERMAL }, {}, }; MODULE_DEVICE_TABLE(of, rcar_thermal_dt_ids); @@ -200,9 +203,9 @@ static int rcar_thermal_update_temp(struct rcar_thermal_priv *priv) return ret; } -static int rcar_thermal_get_temp(struct thermal_zone_device *zone, int *temp) +static int rcar_thermal_get_current_temp(struct rcar_thermal_priv *priv, + int *temp) { - struct rcar_thermal_priv *priv = rcar_zone_to_priv(zone); int tmp; int ret; @@ -226,6 +229,20 @@ static int rcar_thermal_get_temp(struct thermal_zone_device *zone, int *temp) return 0; } +static int rcar_thermal_of_get_temp(void *data, int *temp) +{ + struct rcar_thermal_priv *priv = data; + + return rcar_thermal_get_current_temp(priv, temp); +} + +static int rcar_thermal_get_temp(struct thermal_zone_device *zone, int *temp) +{ + struct rcar_thermal_priv *priv = rcar_zone_to_priv(zone); + + return rcar_thermal_get_current_temp(priv, temp); +} + static int rcar_thermal_get_trip_type(struct thermal_zone_device *zone, int trip, enum thermal_trip_type *type) { @@ -282,6 +299,10 @@ static int rcar_thermal_notify(struct thermal_zone_device *zone, return 0; } +static const struct thermal_zone_of_device_ops rcar_thermal_zone_of_ops = { + .get_temp = rcar_thermal_of_get_temp, +}; + static struct thermal_zone_device_ops rcar_thermal_zone_ops = { .get_temp = rcar_thermal_get_temp, .get_trip_type = rcar_thermal_get_trip_type, @@ -318,14 +339,20 @@ static void rcar_thermal_work(struct work_struct *work) priv = container_of(work, struct rcar_thermal_priv, work.work); - rcar_thermal_get_temp(priv->zone, &cctemp); + ret = rcar_thermal_get_current_temp(priv, &cctemp); + if (ret < 0) + return; + ret = rcar_thermal_update_temp(priv); if (ret < 0) return; rcar_thermal_irq_enable(priv); - rcar_thermal_get_temp(priv->zone, &nctemp); + ret = rcar_thermal_get_current_temp(priv, &nctemp); + if (ret < 0) + return; + if (nctemp != cctemp) thermal_zone_device_update(priv->zone); } @@ -403,6 +430,8 @@ static int rcar_thermal_probe(struct platform_device *pdev) struct rcar_thermal_priv *priv; struct device *dev = &pdev->dev; struct resource *res, *irq; + const struct of_device_id *of_id = of_match_device(rcar_thermal_dt_ids, dev); + unsigned long of_data = (unsigned long)of_id->data; int mres = 0; int i; int ret = -ENODEV; @@ -463,7 +492,13 @@ static int rcar_thermal_probe(struct platform_device *pdev) if (ret < 0) goto error_unregister; - priv->zone = thermal_zone_device_register("rcar_thermal", + if (of_data == USE_OF_THERMAL) + priv->zone = thermal_zone_of_sensor_register( + dev, i, priv, + &rcar_thermal_zone_of_ops); + else + priv->zone = thermal_zone_device_register( + "rcar_thermal", 1, 0, priv, &rcar_thermal_zone_ops, NULL, 0, idle); From 16da8c9798560daab5b98b3661cc96575ce0c61c Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 10 May 2018 16:08:47 +0100 Subject: [PATCH 0351/1149] thermal: rcar_thermal: don't open code of_device_get_match_data() This change will also make Coverity happy by avoiding a theoretical NULL pointer dereference; yet another reason is to use the above helper function to tighten the code and make it more readable. Acked-by: Geert Uytterhoeven Signed-off-by: Wolfram Sang Signed-off-by: Eduardo Valentin (cherry picked from commit 67bc3f4226c1d29ee820eff98fcaf8a9283938fe) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/thermal/rcar_thermal.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/thermal/rcar_thermal.c b/drivers/thermal/rcar_thermal.c index 0e735acea33a..82daba09e150 100644 --- a/drivers/thermal/rcar_thermal.c +++ b/drivers/thermal/rcar_thermal.c @@ -430,8 +430,7 @@ static int rcar_thermal_probe(struct platform_device *pdev) struct rcar_thermal_priv *priv; struct device *dev = &pdev->dev; struct resource *res, *irq; - const struct of_device_id *of_id = of_match_device(rcar_thermal_dt_ids, dev); - unsigned long of_data = (unsigned long)of_id->data; + unsigned long of_data = (unsigned long)of_device_get_match_data(dev); int mres = 0; int i; int ret = -ENODEV; From a9dd1d79f72db8d98cef68497e0a7a1ed5033b53 Mon Sep 17 00:00:00 2001 From: Laxman Dewangan Date: Wed, 30 May 2018 18:35:57 +0100 Subject: [PATCH 0352/1149] thermal: of-thermal: Add devm version of thermal_zone_of_sensor_register Add resource managed version of thermal_zone_of_sensor_register() and thermal_zone_of_sensor_unregister(). This helps in reducing the code size in error path, remove of driver remove callbacks and making proper sequence for deallocations. Signed-off-by: Laxman Dewangan Signed-off-by: Eduardo Valentin (cherry picked from commit e498b4984db82b4ba3ceea7dba813222a31e9c2e) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/thermal/of-thermal.c | 81 ++++++++++++++++++++++++++++++++++++ include/linux/thermal.h | 18 ++++++++ 2 files changed, 99 insertions(+) diff --git a/drivers/thermal/of-thermal.c b/drivers/thermal/of-thermal.c index be4eedcb839a..5a515f8677ec 100644 --- a/drivers/thermal/of-thermal.c +++ b/drivers/thermal/of-thermal.c @@ -559,6 +559,87 @@ void thermal_zone_of_sensor_unregister(struct device *dev, } EXPORT_SYMBOL_GPL(thermal_zone_of_sensor_unregister); +static void devm_thermal_zone_of_sensor_release(struct device *dev, void *res) +{ + thermal_zone_of_sensor_unregister(dev, + *(struct thermal_zone_device **)res); +} + +static int devm_thermal_zone_of_sensor_match(struct device *dev, void *res, + void *data) +{ + struct thermal_zone_device **r = res; + + if (WARN_ON(!r || !*r)) + return 0; + + return *r == data; +} + +/** + * devm_thermal_zone_of_sensor_register - Resource managed version of + * thermal_zone_of_sensor_register() + * @dev: a valid struct device pointer of a sensor device. Must contain + * a valid .of_node, for the sensor node. + * @sensor_id: a sensor identifier, in case the sensor IP has more + * than one sensors + * @data: a private pointer (owned by the caller) that will be passed + * back, when a temperature reading is needed. + * @ops: struct thermal_zone_of_device_ops *. Must contain at least .get_temp. + * + * Refer thermal_zone_of_sensor_register() for more details. + * + * Return: On success returns a valid struct thermal_zone_device, + * otherwise, it returns a corresponding ERR_PTR(). Caller must + * check the return value with help of IS_ERR() helper. + * Registered hermal_zone_device device will automatically be + * released when device is unbounded. + */ +struct thermal_zone_device *devm_thermal_zone_of_sensor_register( + struct device *dev, int sensor_id, + void *data, const struct thermal_zone_of_device_ops *ops) +{ + struct thermal_zone_device **ptr, *tzd; + + ptr = devres_alloc(devm_thermal_zone_of_sensor_release, sizeof(*ptr), + GFP_KERNEL); + if (!ptr) + return ERR_PTR(-ENOMEM); + + tzd = thermal_zone_of_sensor_register(dev, sensor_id, data, ops); + if (IS_ERR(tzd)) { + devres_free(ptr); + return tzd; + } + + *ptr = tzd; + devres_add(dev, ptr); + + return tzd; +} +EXPORT_SYMBOL_GPL(devm_thermal_zone_of_sensor_register); + +/** + * devm_thermal_zone_of_sensor_unregister - Resource managed version of + * thermal_zone_of_sensor_unregister(). + * @dev: Device for which which resource was allocated. + * @tzd: a pointer to struct thermal_zone_device where the sensor is registered. + * + * This function removes the sensor callbacks and private data from the + * thermal zone device registered with devm_thermal_zone_of_sensor_register() + * API. It will also silent the zone by remove the .get_temp() and .get_trend() + * thermal zone device callbacks. + * Normally this function will not need to be called and the resource + * management code will ensure that the resource is freed. + */ +void devm_thermal_zone_of_sensor_unregister(struct device *dev, + struct thermal_zone_device *tzd) +{ + WARN_ON(devres_release(dev, devm_thermal_zone_of_sensor_release, + devm_thermal_zone_of_sensor_match, tzd)); +} +EXPORT_SYMBOL_GPL(devm_thermal_zone_of_sensor_unregister); + /*** functions parsing device tree nodes ***/ /** diff --git a/include/linux/thermal.h b/include/linux/thermal.h index 4a849f19e6c9..a55d0523f75d 100644 --- a/include/linux/thermal.h +++ b/include/linux/thermal.h @@ -364,6 +364,11 @@ thermal_zone_of_sensor_register(struct device *dev, int id, void *data, const struct thermal_zone_of_device_ops *ops); void thermal_zone_of_sensor_unregister(struct device *dev, struct thermal_zone_device *tz); +struct thermal_zone_device *devm_thermal_zone_of_sensor_register( + struct device *dev, int id, void *data, + const struct thermal_zone_of_device_ops *ops); +void devm_thermal_zone_of_sensor_unregister(struct device *dev, + struct thermal_zone_device *tz); #else static inline struct thermal_zone_device * thermal_zone_of_sensor_register(struct device *dev, int id, void *data, @@ -378,6 +383,19 @@ void thermal_zone_of_sensor_unregister(struct device *dev, { } +static inline struct thermal_zone_device *devm_thermal_zone_of_sensor_register( + struct device *dev, int id, void *data, + const struct thermal_zone_of_device_ops *ops) +{ + return ERR_PTR(-ENODEV); +} + +static inline +void devm_thermal_zone_of_sensor_unregister(struct device *dev, + struct thermal_zone_device *tz) +{ +} + #endif #if IS_ENABLED(CONFIG_THERMAL) From f973264e8e595ded53765991da3901bd6c4a7b07 Mon Sep 17 00:00:00 2001 From: Eduardo Valentin Date: Wed, 30 May 2018 18:35:58 +0100 Subject: [PATCH 0353/1149] thermal: convert rcar_thermal to use devm_thermal_zone_of_sensor_register This changes the driver to use the devm_ version of thermal_zone_of_sensor_register and cleans up the local points and unregister calls. Cc: Zhang Rui Cc: linux-pm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Eduardo Valentin (cherry picked from commit 5e325868aa59d3c743aa1c9526f386f30c234cd7) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/thermal/rcar_thermal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/thermal/rcar_thermal.c b/drivers/thermal/rcar_thermal.c index 82daba09e150..71a339271fa5 100644 --- a/drivers/thermal/rcar_thermal.c +++ b/drivers/thermal/rcar_thermal.c @@ -492,7 +492,7 @@ static int rcar_thermal_probe(struct platform_device *pdev) goto error_unregister; if (of_data == USE_OF_THERMAL) - priv->zone = thermal_zone_of_sensor_register( + priv->zone = devm_thermal_zone_of_sensor_register( dev, i, priv, &rcar_thermal_zone_of_ops); else From 66ee41b6589261fe99ae7e4d70c99584e81b027d Mon Sep 17 00:00:00 2001 From: Dirk Behme Date: Wed, 30 May 2018 18:35:59 +0100 Subject: [PATCH 0354/1149] thermal: rcar_thermal: Fix priv->zone error handling In case thermal_zone_xxx_register() returns an error, priv->zone isn't NULL any more, but contains the error code. This is passed to thermal_zone_device_unregister(), then. This checks for priv->zone being NULL, but the error code is != NULL. So it works with the error code as a pointer. Crashing immediately. To fix this, reset priv->zone to NULL before entering rcar_gen3_thermal_remove(). Signed-off-by: Dirk Behme Reviewed-by: Geert Uytterhoeven Signed-off-by: Zhang Rui (cherry picked from commit 87260d3f7aecba9a5fadc6886c338b2a8fccfca9) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/thermal/rcar_thermal.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/thermal/rcar_thermal.c b/drivers/thermal/rcar_thermal.c index 71a339271fa5..5f817923f374 100644 --- a/drivers/thermal/rcar_thermal.c +++ b/drivers/thermal/rcar_thermal.c @@ -504,6 +504,7 @@ static int rcar_thermal_probe(struct platform_device *pdev) if (IS_ERR(priv->zone)) { dev_err(dev, "can't register thermal zone\n"); ret = PTR_ERR(priv->zone); + priv->zone = NULL; goto error_unregister; } From be9ff718fdec05a8ae4643b4a038afdb604ca28c Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Wed, 30 May 2018 18:36:00 +0100 Subject: [PATCH 0355/1149] thermal: rcar-thermal: enable hwmon when thermal_zone_of_sensor_register is used rcar-thermal is supporting both thermal_zone_of_sensor_register() and thermal_zone_device_register(). But thermal_zone_of_sensor_register() doesn't enable hwmon as default. This patch enables it to keep compatibility Signed-off-by: Kuninori Morimoto Signed-off-by: Zhang Rui (cherry picked from commit 64a411e8042ed00057658000126fd9f2b4105bdd) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/thermal/rcar_thermal.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/drivers/thermal/rcar_thermal.c b/drivers/thermal/rcar_thermal.c index 5f817923f374..4048003d540e 100644 --- a/drivers/thermal/rcar_thermal.c +++ b/drivers/thermal/rcar_thermal.c @@ -31,6 +31,8 @@ #include #include +#include "thermal_hwmon.h" + #define IDLE_INTERVAL 5000 #define COMMON_STR 0x00 @@ -75,6 +77,8 @@ struct rcar_thermal_priv { #define rcar_priv_to_dev(priv) ((priv)->common->dev) #define rcar_has_irq_support(priv) ((priv)->common->base) #define rcar_id_to_shift(priv) ((priv)->id * 8) +#define rcar_of_data(dev) ((unsigned long)of_device_get_match_data(dev)) +#define rcar_use_of_thermal(dev) (rcar_of_data(dev) == USE_OF_THERMAL) #define USE_OF_THERMAL 1 static const struct of_device_id rcar_thermal_dt_ids[] = { @@ -416,6 +420,8 @@ static int rcar_thermal_remove(struct platform_device *pdev) rcar_thermal_for_each_priv(priv, common) { rcar_thermal_irq_disable(priv); thermal_zone_device_unregister(priv->zone); + if (rcar_use_of_thermal(dev)) + thermal_remove_hwmon_sysfs(priv->zone); } pm_runtime_put(dev); @@ -430,7 +436,6 @@ static int rcar_thermal_probe(struct platform_device *pdev) struct rcar_thermal_priv *priv; struct device *dev = &pdev->dev; struct resource *res, *irq; - unsigned long of_data = (unsigned long)of_device_get_match_data(dev); int mres = 0; int i; int ret = -ENODEV; @@ -491,7 +496,7 @@ static int rcar_thermal_probe(struct platform_device *pdev) if (ret < 0) goto error_unregister; - if (of_data == USE_OF_THERMAL) + if (rcar_use_of_thermal(dev)) priv->zone = devm_thermal_zone_of_sensor_register( dev, i, priv, &rcar_thermal_zone_of_ops); @@ -508,6 +513,17 @@ static int rcar_thermal_probe(struct platform_device *pdev) goto error_unregister; } + if (rcar_use_of_thermal(dev)) { + /* + * thermal_zone doesn't enable hwmon as default, + * but, enable it here to keep compatible + */ + priv->zone->tzp->no_hwmon = false; + ret = thermal_add_hwmon_sysfs(priv->zone); + if (ret) + goto error_unregister; + } + rcar_thermal_irq_enable(priv); list_move_tail(&priv->list, &common->head); From eb03a6bc343454cbb35b26bab472f35ce24a456b Mon Sep 17 00:00:00 2001 From: Bui Duc Phuc Date: Wed, 30 May 2018 18:36:01 +0100 Subject: [PATCH 0356/1149] thermal: rcar_thermal: don't call thermal_zone_device_unregister when USE_OF_THERMAL devm_thermal_zone_of_sensor_register() case doesn't need to call thermal_zone_device_unregister(). Otherwise, rcar-thermal can't register thermal zone again after rebind. This patch fixes it. Signed-off-by: Bui Duc Phuc Signed-off-by: Kuninori Morimoto Signed-off-by: Zhang Rui (cherry picked from commit d4b23c5c434a7af053782cc0f9eebee51ec71bb2) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/thermal/rcar_thermal.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/thermal/rcar_thermal.c b/drivers/thermal/rcar_thermal.c index 4048003d540e..e89583059b5a 100644 --- a/drivers/thermal/rcar_thermal.c +++ b/drivers/thermal/rcar_thermal.c @@ -419,9 +419,10 @@ static int rcar_thermal_remove(struct platform_device *pdev) rcar_thermal_for_each_priv(priv, common) { rcar_thermal_irq_disable(priv); - thermal_zone_device_unregister(priv->zone); if (rcar_use_of_thermal(dev)) thermal_remove_hwmon_sysfs(priv->zone); + else + thermal_zone_device_unregister(priv->zone); } pm_runtime_put(dev); From 91816758f59a93dd41a16679f95fbe3801ccf0ee Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 30 May 2018 18:36:02 +0100 Subject: [PATCH 0357/1149] dt-bindings: thermal: rcar: Add device tree support for r8a7743 Add thermal sensor support for r8a7743 SoC. The Renesas RZ/G1M (r8a7743) thermal sensor module is identical to the R-Car Gen2 family. No driver change is needed due to the fallback compatible value "renesas,rcar-gen2-thermal". Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Reviewed-by: Rob Herring Reviewed-by: Simon Horman Signed-off-by: Eduardo Valentin (cherry picked from commit 2d14a0ee5e73d5224873777892fd86d3a283b059) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/thermal/rcar-thermal.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/thermal/rcar-thermal.txt b/Documentation/devicetree/bindings/thermal/rcar-thermal.txt index e5ee3f159893..689e7e840414 100644 --- a/Documentation/devicetree/bindings/thermal/rcar-thermal.txt +++ b/Documentation/devicetree/bindings/thermal/rcar-thermal.txt @@ -6,6 +6,7 @@ Required properties: "renesas,rcar-thermal" (without thermal-zone) as fallback. Examples with soctypes are: - "renesas,thermal-r8a73a4" (R-Mobile APE6) + - "renesas,thermal-r8a7743" (RZ/G1M) - "renesas,thermal-r8a7779" (R-Car H1) - "renesas,thermal-r8a7790" (R-Car H2) - "renesas,thermal-r8a7791" (R-Car M2-W) From 96d7d5d190750c00a9639f3fba268efd9bb4819a Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 30 May 2018 18:36:03 +0100 Subject: [PATCH 0358/1149] ARM: dts: r8a7743: Add thermal device to DT This patch instantiates the thermal sensor module with thermal-zone support. This patch is based on the commit cac68a56e34b ("ARM: dts: r8a7791: enable to use thermal-zone") by Kuninori Morimoto. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 6c76b4f7d89e89f0ae405dfc7a64c6d2b5d02813) (updated clocks and power-domains property.removed resets property) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 17be22c284b8..1d9adcc99305 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -237,6 +237,37 @@ power-domains = <&cpg_clocks>; }; + thermal: thermal@e61f0000 { + compatible = "renesas,thermal-r8a7743", + "renesas,rcar-gen2-thermal", + "renesas,rcar-thermal"; + reg = <0 0xe61f0000 0 0x10>, <0 0xe61f0100 0 0x38>; + interrupts = ; + clocks = <&mstp5_clks R8A7743_CLK_THERMAL>; + power-domains = <&cpg_clocks>; + #thermal-sensor-cells = <0>; + }; + + thermal-zones { + cpu_thermal: cpu-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + + thermal-sensors = <&thermal>; + + trips { + cpu-crit { + temperature = <95000>; + hysteresis = <0>; + type = "critical"; + }; + }; + + cooling-maps { + }; + }; + }; + timer { compatible = "arm,armv7-timer"; interrupts = Date: Wed, 30 May 2018 18:36:04 +0100 Subject: [PATCH 0359/1149] clocksource: sh_cmt: Compute rate before registration again With the upcoming NTP correction related rate adjustments to be implemented in the clockevents core, the latter needs to get informed about every rate change of a clockevent device made after its registration. Currently, sh_cmt violates this requirement in that it registers its clockevent device with a dummy rate and sets its final ->mult and ->shift values from its ->set_state_oneshot() and ->set_state_periodic() functions respectively. This patch moves the setting of the clockevent device's ->mult and ->shift values to before its registration. Note that there has been some back and forth regarding this question with respect to the clocksource also provided by this driver: commit f4d7c3565c16 ("clocksource: sh_cmt: compute mult and shift before registration") moves the rate determination from the clocksource's ->enable() function to before its registration. OTOH, the later commit 3593f5fe40a1 ("clocksource: sh_cmt: __clocksource_updatefreq_hz() update") basically reverts this, saying "Without this patch the old code uses clocksource_register() together with a hack that assumes a never changing clock rate." However, I checked all current sh_cmt users in arch/sh as well as in arch/arm/mach-shmobile carefully and right now, none of them changes any rate in any clock tree relevant to sh_cmt after their respective time_init(). Since all sh_cmt instances are created after time_init(), none of them should ever observe any clock rate changes. What's more, both, a clocksource as well as a clockevent device, can immediately get selected for use at their registration and thus, enabled at this point already. So it's probably safer to assume a "never changing clock rate" here. - Move the struct sh_cmt_channel's ->rate member to struct sh_cmt_device: it's a property of the underlying clock which is in turn specific to the sh_cmt_device. - Determine the ->rate value in sh_cmt_setup() at device probing rather than at first usage. - Set the clockevent device's ->mult and ->shift values right before its registration. - Although not strictly necessary for the upcoming clockevent core changes, set the clocksource's rate at its registration for consistency. Signed-off-by: Nicolai Stange Signed-off-by: John Stultz (cherry picked from commit 890f423b266623e1cfb3a97b864f3e5039bdfbb9) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/clocksource/sh_cmt.c | 45 ++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/drivers/clocksource/sh_cmt.c b/drivers/clocksource/sh_cmt.c index 103c49362c68..3038885d4180 100644 --- a/drivers/clocksource/sh_cmt.c +++ b/drivers/clocksource/sh_cmt.c @@ -103,7 +103,6 @@ struct sh_cmt_channel { unsigned long match_value; unsigned long next_match_value; unsigned long max_match_value; - unsigned long rate; raw_spinlock_t lock; struct clock_event_device ced; struct clocksource cs; @@ -118,6 +117,7 @@ struct sh_cmt_device { void __iomem *mapbase; struct clk *clk; + unsigned long rate; raw_spinlock_t lock; /* Protect the shared start/stop register */ @@ -320,7 +320,7 @@ static void sh_cmt_start_stop_ch(struct sh_cmt_channel *ch, int start) raw_spin_unlock_irqrestore(&ch->cmt->lock, flags); } -static int sh_cmt_enable(struct sh_cmt_channel *ch, unsigned long *rate) +static int sh_cmt_enable(struct sh_cmt_channel *ch) { int k, ret; @@ -340,11 +340,9 @@ static int sh_cmt_enable(struct sh_cmt_channel *ch, unsigned long *rate) /* configure channel, periodic mode and maximum timeout */ if (ch->cmt->info->width == 16) { - *rate = clk_get_rate(ch->cmt->clk) / 512; sh_cmt_write_cmcsr(ch, SH_CMT16_CMCSR_CMIE | SH_CMT16_CMCSR_CKS512); } else { - *rate = clk_get_rate(ch->cmt->clk) / 8; sh_cmt_write_cmcsr(ch, SH_CMT32_CMCSR_CMM | SH_CMT32_CMCSR_CMTOUT_IE | SH_CMT32_CMCSR_CMR_IRQ | @@ -572,7 +570,7 @@ static int sh_cmt_start(struct sh_cmt_channel *ch, unsigned long flag) raw_spin_lock_irqsave(&ch->lock, flags); if (!(ch->flags & (FLAG_CLOCKEVENT | FLAG_CLOCKSOURCE))) - ret = sh_cmt_enable(ch, &ch->rate); + ret = sh_cmt_enable(ch); if (ret) goto out; @@ -640,10 +638,9 @@ static int sh_cmt_clocksource_enable(struct clocksource *cs) ch->total_cycles = 0; ret = sh_cmt_start(ch, FLAG_CLOCKSOURCE); - if (!ret) { - __clocksource_update_freq_hz(cs, ch->rate); + if (!ret) ch->cs_enabled = true; - } + return ret; } @@ -697,8 +694,7 @@ static int sh_cmt_register_clocksource(struct sh_cmt_channel *ch, dev_info(&ch->cmt->pdev->dev, "ch%u: used as clock source\n", ch->index); - /* Register with dummy 1 Hz value, gets updated in ->enable() */ - clocksource_register_hz(cs, 1); + clocksource_register_hz(cs, ch->cmt->rate); return 0; } @@ -709,19 +705,10 @@ static struct sh_cmt_channel *ced_to_sh_cmt(struct clock_event_device *ced) static void sh_cmt_clock_event_start(struct sh_cmt_channel *ch, int periodic) { - struct clock_event_device *ced = &ch->ced; - sh_cmt_start(ch, FLAG_CLOCKEVENT); - /* TODO: calculate good shift from rate and counter bit width */ - - ced->shift = 32; - ced->mult = div_sc(ch->rate, NSEC_PER_SEC, ced->shift); - ced->max_delta_ns = clockevent_delta2ns(ch->max_match_value, ced); - ced->min_delta_ns = clockevent_delta2ns(0x1f, ced); - if (periodic) - sh_cmt_set_next(ch, ((ch->rate + HZ/2) / HZ) - 1); + sh_cmt_set_next(ch, ((ch->cmt->rate + HZ/2) / HZ) - 1); else sh_cmt_set_next(ch, ch->max_match_value); } @@ -824,6 +811,12 @@ static int sh_cmt_register_clockevent(struct sh_cmt_channel *ch, ced->suspend = sh_cmt_clock_event_suspend; ced->resume = sh_cmt_clock_event_resume; + /* TODO: calculate good shift from rate and counter bit width */ + ced->shift = 32; + ced->mult = div_sc(ch->cmt->rate, NSEC_PER_SEC, ced->shift); + ced->max_delta_ns = clockevent_delta2ns(ch->max_match_value, ced); + ced->min_delta_ns = clockevent_delta2ns(0x1f, ced); + dev_info(&ch->cmt->pdev->dev, "ch%u: used for clock events\n", ch->index); clockevents_register_device(ced); @@ -996,6 +989,18 @@ static int sh_cmt_setup(struct sh_cmt_device *cmt, struct platform_device *pdev) if (ret < 0) goto err_clk_put; + /* Determine clock rate. */ + ret = clk_enable(cmt->clk); + if (ret < 0) + goto err_clk_unprepare; + + if (cmt->info->width == 16) + cmt->rate = clk_get_rate(cmt->clk) / 512; + else + cmt->rate = clk_get_rate(cmt->clk) / 8; + + clk_disable(cmt->clk); + /* Map the memory resource(s). */ ret = sh_cmt_map_memory(cmt); if (ret < 0) From ef0cd1d7e427e594fcb4da0bf0e5b89e5a2f279d Mon Sep 17 00:00:00 2001 From: Nicolai Stange Date: Wed, 30 May 2018 18:36:05 +0100 Subject: [PATCH 0360/1149] clockevents/drivers/sh_cmt: Set ->min_delta_ticks and ->max_delta_ticks In preparation for making the clockevents core NTP correction aware, all clockevent device drivers must set ->min_delta_ticks and ->max_delta_ticks rather than ->min_delta_ns and ->max_delta_ns: a clockevent device's rate is going to change dynamically and thus, the ratio of ns to ticks ceases to stay invariant. Make the sh_cmt clockevent driver initialize these fields properly. This patch alone doesn't introduce any change in functionality as the clockevents core still looks exclusively at the (untouched) ->min_delta_ns and ->max_delta_ns. As soon as this has changed, a followup patch will purge the initialization of ->min_delta_ns and ->max_delta_ns from this driver. Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Daniel Lezcano Cc: Richard Cochran Cc: Prarit Bhargava Cc: Stephen Boyd Acked-by: Daniel Lezcano Signed-off-by: Nicolai Stange Signed-off-by: John Stultz (cherry picked from commit bb2e94ac0cf4628f5e5f778c8de4a376dac43558) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/clocksource/sh_cmt.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/clocksource/sh_cmt.c b/drivers/clocksource/sh_cmt.c index 3038885d4180..97ce6bf27f7c 100644 --- a/drivers/clocksource/sh_cmt.c +++ b/drivers/clocksource/sh_cmt.c @@ -815,7 +815,9 @@ static int sh_cmt_register_clockevent(struct sh_cmt_channel *ch, ced->shift = 32; ced->mult = div_sc(ch->cmt->rate, NSEC_PER_SEC, ced->shift); ced->max_delta_ns = clockevent_delta2ns(ch->max_match_value, ced); + ced->max_delta_ticks = ch->max_match_value; ced->min_delta_ns = clockevent_delta2ns(0x1f, ced); + ced->min_delta_ticks = 0x1f; dev_info(&ch->cmt->pdev->dev, "ch%u: used for clock events\n", ch->index); From 0e3c47d52cf5c8597fb4f82f21c60cc9350a4198 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Wed, 30 May 2018 18:36:06 +0100 Subject: [PATCH 0361/1149] ARM: dts: r8a7743: Add CMT SoC specific support Add CMT[01] support to SoC DT. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 3114c70c532ae2555948739f645ace268554228d) (updated clocks and power-domains property.removed resets property. Changed the compatible string due to the commit 8d50e9476bb4 ("clocksource/drivers/sh_cmt: Mark "renesas, cmt-48-gen2" deprecated"). Added renesas,channels-mask property which is removed based on the commit 4e18111ff38f0664 ("devicetree:bindings: Remove deprecated properties")) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 36 ++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 1d9adcc99305..72a23c96c1b6 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -1653,6 +1653,42 @@ status = "disabled"; }; + cmt0: timer@ffca0000 { + compatible = "renesas,cmt-48-r8a7743", + "renesas,cmt-48-gen2"; + reg = <0 0xffca0000 0 0x1004>; + interrupts = , + ; + clocks = <&mstp1_clks R8A7743_CLK_CMT0>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + + renesas,channels-mask = <0x60>; + + status = "disabled"; + }; + + cmt1: timer@e6130000 { + compatible = "renesas,cmt-48-r8a7743", + "renesas,cmt-48-gen2"; + reg = <0 0xe6130000 0 0x1004>; + interrupts = , + , + , + , + , + , + , + ; + clocks = <&mstp3_clks R8A7743_CLK_CMT1>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + + renesas,channels-mask = <0xff>; + + status = "disabled"; + }; + rcar_sound: sound@ec500000 { /* * #sound-dai-cells is required From dfa42f293f7bc7cb68347f6f00890474d8770911 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Wed, 30 May 2018 18:36:07 +0100 Subject: [PATCH 0362/1149] ARM: dts: iwg20m: Enable cmt0 This patch enables cmt0 support from within the iwg20m SoM dtsi. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit cbeb319b9f220982acc2f533ffee5042a6763c39) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743-iwg20m.dtsi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743-iwg20m.dtsi b/arch/arm/boot/dts/r8a7743-iwg20m.dtsi index 75a8ca571846..1d3e9503c5bd 100644 --- a/arch/arm/boot/dts/r8a7743-iwg20m.dtsi +++ b/arch/arm/boot/dts/r8a7743-iwg20m.dtsi @@ -34,6 +34,10 @@ }; }; +&cmt0 { + status = "okay"; +}; + &extal_clk { clock-frequency = <20000000>; }; From 45133bfcbb0c1cf87ce4097b64c100882bf19e85 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Tue, 19 Jun 2018 19:03:27 +0100 Subject: [PATCH 0363/1149] CIP: Bump version suffix to -cip24 after Renesas patches Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 1fef53f319cc..ddd0de2ae0e3 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip23 +-cip24 From 8446485ca20a5660bdfe6f8dbc1b6622dd108a55 Mon Sep 17 00:00:00 2001 From: Keith Busch Date: Thu, 14 Sep 2017 13:54:39 -0400 Subject: [PATCH 0364/1149] nvme-pci: initialize queue memory before interrupts commit 161b8be2bd6abad250d4b3f674bdd5480f15beeb upstream. A spurious interrupt before the nvme driver has initialized the completion queue may inadvertently cause the driver to believe it has a completion to process. This may result in a NULL dereference since the nvmeq's tags are not set at this point. The patch initializes the host's CQ memory so that a spurious interrupt isn't mistaken for a real completion. Signed-off-by: Keith Busch Reviewed-by: Johannes Thumshirn Signed-off-by: Christoph Hellwig [bwh: Backported to 4.4: adjust context] Signed-off-by: Jens Axboe --- drivers/nvme/host/pci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index e86fcc9e9852..01f47b68b6e7 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -1589,11 +1589,11 @@ static int nvme_create_queue(struct nvme_queue *nvmeq, int qid) if (result < 0) goto release_cq; + nvme_init_queue(nvmeq, qid); result = queue_request_irq(dev, nvmeq, nvmeq->irqname); if (result < 0) goto release_sq; - nvme_init_queue(nvmeq, qid); return result; release_sq: @@ -1797,6 +1797,7 @@ static int nvme_configure_admin_queue(struct nvme_dev *dev) goto free_nvmeq; nvmeq->cq_vector = 0; + nvme_init_queue(nvmeq, 0); result = queue_request_irq(dev, nvmeq, nvmeq->irqname); if (result) { nvmeq->cq_vector = -1; @@ -3165,7 +3166,6 @@ static void nvme_probe_work(struct work_struct *work) goto disable; } - nvme_init_queue(dev->queues[0], 0); result = nvme_alloc_admin_tags(dev); if (result) goto disable; From c570f1383c4ee4cc3bc93ea4de95bc55fd08138e Mon Sep 17 00:00:00 2001 From: Govindarajulu Varadarajan Date: Mon, 18 Jun 2018 10:01:05 -0700 Subject: [PATCH 0365/1149] enic: do not overwrite error code In failure path, we overwrite err to what vnic_rq_disable() returns. In case it returns 0, enic_open() returns success in case of error. Reported-by: Ben Hutchings Fixes: e8588e268509 ("enic: enable rq before updating rq descriptors") Signed-off-by: Govindarajulu Varadarajan Signed-off-by: Ben Hutchings --- drivers/net/ethernet/cisco/enic/enic_main.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/cisco/enic/enic_main.c b/drivers/net/ethernet/cisco/enic/enic_main.c index 029fa5bee520..26e49b06d71d 100644 --- a/drivers/net/ethernet/cisco/enic/enic_main.c +++ b/drivers/net/ethernet/cisco/enic/enic_main.c @@ -1708,7 +1708,7 @@ static int enic_open(struct net_device *netdev) { struct enic *enic = netdev_priv(netdev); unsigned int i; - int err; + int err, ret; err = enic_request_intr(enic); if (err) { @@ -1766,10 +1766,9 @@ static int enic_open(struct net_device *netdev) err_out_free_rq: for (i = 0; i < enic->rq_count; i++) { - err = vnic_rq_disable(&enic->rq[i]); - if (err) - return err; - vnic_rq_clean(&enic->rq[i], enic_free_rq_buf); + ret = vnic_rq_disable(&enic->rq[i]); + if (!ret) + vnic_rq_clean(&enic->rq[i], enic_free_rq_buf); } enic_dev_notify_unset(enic); err_out_free_intr: From a198fdce13dc469ac1dc291a85c8bc0b9518a4a5 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Tue, 19 Jun 2018 18:41:52 +0100 Subject: [PATCH 0366/1149] ipv4: Fix error return value in fib_convert_metrics() The validation code modified by commit 5b5e7a0de2bb ("net: metrics: add proper netlink validation") is organised differently in older kernel versions. The fib_convert_metrics() function that is modified in the backports to 4.4 and 4.9 needs to returns an error code, not a success flag. Signed-off-by: Ben Hutchings --- net/ipv4/fib_semantics.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c index 9d144cbd4e62..03ebff3950d8 100644 --- a/net/ipv4/fib_semantics.c +++ b/net/ipv4/fib_semantics.c @@ -980,7 +980,7 @@ fib_convert_metrics(struct fib_info *fi, const struct fib_config *cfg) return -EINVAL; } else { if (nla_len(nla) != sizeof(u32)) - return false; + return -EINVAL; val = nla_get_u32(nla); } if (type == RTAX_ADVMSS && val > 65535 - 40) From eeb24b40edf794bb4899ba45be687d55d17372e0 Mon Sep 17 00:00:00 2001 From: Dave Hansen Date: Tue, 22 Dec 2015 14:52:38 -0800 Subject: [PATCH 0367/1149] x86/boot: Fix early command-line parsing when matching at end commit 02afeaae9843733a39cd9b11053748b2d1dc5ae7 upstream. The x86 early command line parsing in cmdline_find_option_bool() is buggy. If it matches a specified 'option' all the way to the end of the command-line, it will consider it a match. For instance, cmdline = "foo"; cmdline_find_option_bool(cmdline, "fool"); will return 1. This is particularly annoying since we have actual FPU options like "noxsave" and "noxsaves" So, command-line "foo bar noxsave" will match *BOTH* a "noxsave" and "noxsaves". (This turns out not to be an actual problem because "noxsave" implies "noxsaves", but it's still confusing.) To fix this, we simplify the code and stop tracking 'len'. 'len' was trying to indicate either the NULL terminator *OR* the end of a non-NULL-terminated command line at 'COMMAND_LINE_SIZE'. But, each of the three states is *already* checking 'cmdline' for a NULL terminator. We _only_ need to check if we have overrun 'COMMAND_LINE_SIZE', and that we can do without keeping 'len' around. Also add some commends to clarify what is going on. Signed-off-by: Dave Hansen Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: fenghua.yu@intel.com Cc: yu-cheng.yu@intel.com Link: http://lkml.kernel.org/r/20151222225238.9AEB560C@viggo.jf.intel.com Signed-off-by: Ingo Molnar Signed-off-by: Ben Hutchings --- arch/x86/lib/cmdline.c | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/arch/x86/lib/cmdline.c b/arch/x86/lib/cmdline.c index a744506856b1..88ce150186c6 100644 --- a/arch/x86/lib/cmdline.c +++ b/arch/x86/lib/cmdline.c @@ -21,12 +21,14 @@ static inline int myisspace(u8 c) * @option: option string to look for * * Returns the position of that @option (starts counting with 1) - * or 0 on not found. + * or 0 on not found. @option will only be found if it is found + * as an entire word in @cmdline. For instance, if @option="car" + * then a cmdline which contains "cart" will not match. */ int cmdline_find_option_bool(const char *cmdline, const char *option) { char c; - int len, pos = 0, wstart = 0; + int pos = 0, wstart = 0; const char *opptr = NULL; enum { st_wordstart = 0, /* Start of word/after whitespace */ @@ -37,11 +39,14 @@ int cmdline_find_option_bool(const char *cmdline, const char *option) if (!cmdline) return -1; /* No command line */ - len = min_t(int, strlen(cmdline), COMMAND_LINE_SIZE); - if (!len) + if (!strlen(cmdline)) return 0; - while (len--) { + /* + * This 'pos' check ensures we do not overrun + * a non-NULL-terminated 'cmdline' + */ + while (pos < COMMAND_LINE_SIZE) { c = *(char *)cmdline++; pos++; @@ -58,17 +63,26 @@ int cmdline_find_option_bool(const char *cmdline, const char *option) /* fall through */ case st_wordcmp: - if (!*opptr) + if (!*opptr) { + /* + * We matched all the way to the end of the + * option we were looking for. If the + * command-line has a space _or_ ends, then + * we matched! + */ if (!c || myisspace(c)) return wstart; else state = st_wordskip; - else if (!c) + } else if (!c) { + /* + * Hit the NULL terminator on the end of + * cmdline. + */ return 0; - else if (c != *opptr++) + } else if (c != *opptr++) { state = st_wordskip; - else if (!len) /* last word and is matching */ - return wstart; + } break; case st_wordskip: From c7aab397fa6478d48de8e8b912bbadf04d8ce50f Mon Sep 17 00:00:00 2001 From: Martin Kelly Date: Mon, 26 Mar 2018 14:27:51 -0700 Subject: [PATCH 0368/1149] iio:buffer: make length types match kfifo types commit c043ec1ca5baae63726aae32abbe003192bc6eec upstream. Currently, we use int for buffer length and bytes_per_datum. However, kfifo uses unsigned int for length and size_t for element size. We need to make sure these matches or we will have bugs related to overflow (in the range between INT_MAX and UINT_MAX for length, for example). In addition, set_bytes_per_datum uses size_t while bytes_per_datum is an int, which would cause bugs for large values of bytes_per_datum. Change buffer length to use unsigned int and bytes_per_datum to use size_t. Signed-off-by: Martin Kelly Signed-off-by: Jonathan Cameron [bwh: Backported to 4.4: - Drop change to iio_dma_buffer_set_length() - Adjust filename, context] Signed-off-by: Ben Hutchings --- drivers/iio/buffer/kfifo_buf.c | 4 ++-- include/linux/iio/buffer.h | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/iio/buffer/kfifo_buf.c b/drivers/iio/buffer/kfifo_buf.c index 7ef9b13262a8..e44181f9eb36 100644 --- a/drivers/iio/buffer/kfifo_buf.c +++ b/drivers/iio/buffer/kfifo_buf.c @@ -19,7 +19,7 @@ struct iio_kfifo { #define iio_to_kfifo(r) container_of(r, struct iio_kfifo, buffer) static inline int __iio_allocate_kfifo(struct iio_kfifo *buf, - int bytes_per_datum, int length) + size_t bytes_per_datum, unsigned int length) { if ((length == 0) || (bytes_per_datum == 0)) return -EINVAL; @@ -71,7 +71,7 @@ static int iio_set_bytes_per_datum_kfifo(struct iio_buffer *r, size_t bpd) return 0; } -static int iio_set_length_kfifo(struct iio_buffer *r, int length) +static int iio_set_length_kfifo(struct iio_buffer *r, unsigned int length) { /* Avoid an invalid state */ if (length < 2) diff --git a/include/linux/iio/buffer.h b/include/linux/iio/buffer.h index 1600c55828e0..93a774ce4922 100644 --- a/include/linux/iio/buffer.h +++ b/include/linux/iio/buffer.h @@ -49,7 +49,7 @@ struct iio_buffer_access_funcs { int (*request_update)(struct iio_buffer *buffer); int (*set_bytes_per_datum)(struct iio_buffer *buffer, size_t bpd); - int (*set_length)(struct iio_buffer *buffer, int length); + int (*set_length)(struct iio_buffer *buffer, unsigned int length); void (*release)(struct iio_buffer *buffer); @@ -78,8 +78,8 @@ struct iio_buffer_access_funcs { * @watermark: [INTERN] number of datums to wait for poll/read. */ struct iio_buffer { - int length; - int bytes_per_datum; + unsigned int length; + size_t bytes_per_datum; struct attribute_group *scan_el_attrs; long *scan_mask; bool scan_timestamp; From 31e672f83ef8d2bd2e390a94a2b5904c17d053f6 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Tue, 19 Jun 2018 19:05:29 +0100 Subject: [PATCH 0369/1149] CIP: Bump version suffix to -cip25 after merge from stable ...plus some related bug fixes. Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index ddd0de2ae0e3..9e63432b2e14 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip24 +-cip25 From ee40cef4e580e0be0eb4245502adc68b70bfb27b Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 14:59:00 +0100 Subject: [PATCH 0370/1149] dt-bindings: timer: renesas, cmt: Document r8a774[35] CMT support Document SoC specific compatible strings for r8a7743 and r8a7745. No driver change is needed as the fallback strings will activate the right code. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Geert Uytterhoeven Reviewed-by: Rob Herring Acked-by: Daniel Lezcano Signed-off-by: Simon Horman (cherry picked from commit 24d79d738b6fed977f44cae2ca277a49a7aa5f70) ( Backported dt-bindings) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/timer/renesas,cmt.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/devicetree/bindings/timer/renesas,cmt.txt b/Documentation/devicetree/bindings/timer/renesas,cmt.txt index 1a05c1b243c1..ed3dbf69259b 100644 --- a/Documentation/devicetree/bindings/timer/renesas,cmt.txt +++ b/Documentation/devicetree/bindings/timer/renesas,cmt.txt @@ -44,6 +44,10 @@ Required Properties: - "renesas,cmt-48-r8a73a4" for the r8a73a4 48-bit CMT (CMT[01]) + - "renesas,cmt-48-r8a7743" for the r8a7743 48-bit CMT + (CMT[01]) + - "renesas,cmt-48-r8a7745" for the r8a7745 48-bit CMT + (CMT[01]) - "renesas,cmt-48-r8a7790" for the r8a7790 48-bit CMT (CMT[01]) - "renesas,cmt-48-r8a7791" for the r8a7791 48-bit CMT From 7d12b67e2f29828e1da0c2d96ce7914f3bef95bf Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 14:59:01 +0100 Subject: [PATCH 0371/1149] media: dt-bindings: media: rcar_vin: Reverse SoC part number list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change the sorting of the part numbers from descending to ascending to match with other documentation. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Simon Horman Acked-by: Rob Herring Reviewed-by: Geert Uytterhoeven Acked-by: Niklas Söderlund Reviewed-by: Laurent Pinchart Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab (cherry picked from commit aac7a6ccf2d44f8c19273dd5efd3c465a1ab5867) (removed r8a7792 and r8a7795 devices) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/media/rcar_vin.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Documentation/devicetree/bindings/media/rcar_vin.txt b/Documentation/devicetree/bindings/media/rcar_vin.txt index 1abe1ef89235..18287b06a1ef 100644 --- a/Documentation/devicetree/bindings/media/rcar_vin.txt +++ b/Documentation/devicetree/bindings/media/rcar_vin.txt @@ -6,12 +6,12 @@ family of devices. The current blocks are always slaves and suppot one input channel which can be either RGB, YUYV or BT656. - compatible: Must be one or more of the following - - "renesas,vin-r8a7794" for the R8A7794 device - - "renesas,vin-r8a7793" for the R8A7793 device - - "renesas,vin-r8a7791" for the R8A7791 device - - "renesas,vin-r8a7790" for the R8A7790 device - - "renesas,vin-r8a7779" for the R8A7779 device - "renesas,vin-r8a7778" for the R8A7778 device + - "renesas,vin-r8a7779" for the R8A7779 device + - "renesas,vin-r8a7790" for the R8A7790 device + - "renesas,vin-r8a7791" for the R8A7791 device + - "renesas,vin-r8a7793" for the R8A7793 device + - "renesas,vin-r8a7794" for the R8A7794 device - "renesas,rcar-gen2-vin" for a generic R-Car Gen2 compatible device. When compatible with the generic version nodes must list the From 7c730c94bec0935264f5a9bd82a165a5fbf0d394 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 14:59:02 +0100 Subject: [PATCH 0372/1149] media: dt-bindings: media: rcar_vin: add device tree support for r8a774[35] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add compatible strings for r8a7743 and r8a7745. No driver change is needed as "renesas,rcar-gen2-vin" will activate the right code. However, it is good practice to document compatible strings for the specific SoC as this allows SoC specific changes to the driver if needed, in addition to document SoC support and therefore allow checkpatch.pl to validate compatible string values. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Simon Horman Acked-by: Rob Herring Reviewed-by: Geert Uytterhoeven Acked-by: Niklas Söderlund Reviewed-by: Laurent Pinchart Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab (cherry picked from commit 1d14a5eaa156b0b3898c749fb3f9da1ebbc3f4aa) (removed "renesas,rcar-gen3-vin" fallback) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/media/rcar_vin.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/media/rcar_vin.txt b/Documentation/devicetree/bindings/media/rcar_vin.txt index 18287b06a1ef..08eca2ea13b5 100644 --- a/Documentation/devicetree/bindings/media/rcar_vin.txt +++ b/Documentation/devicetree/bindings/media/rcar_vin.txt @@ -6,6 +6,8 @@ family of devices. The current blocks are always slaves and suppot one input channel which can be either RGB, YUYV or BT656. - compatible: Must be one or more of the following + - "renesas,vin-r8a7743" for the R8A7743 device + - "renesas,vin-r8a7745" for the R8A7745 device - "renesas,vin-r8a7778" for the R8A7778 device - "renesas,vin-r8a7779" for the R8A7779 device - "renesas,vin-r8a7790" for the R8A7790 device From 6110140d833e2fcf7987c114879dc1b7e15781c9 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Fri, 29 Jun 2018 15:38:02 +0100 Subject: [PATCH 0373/1149] ARM: shmobile: rcar-gen2: Correct arch timer frequency on RZ/G1E According to the datasheet, the frequency of the ARM architecture timer on RZ/G1E depends on the frequency of the ZS clock, just like on R-Car E2 and V2H. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit cd66fa4e0203fed9d8af6e1596ff8a68ede7fb1d) (removed r8a7792 soc) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/mach-shmobile/setup-rcar-gen2.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-shmobile/setup-rcar-gen2.c b/arch/arm/mach-shmobile/setup-rcar-gen2.c index 3911716d215d..549a66f92e4f 100644 --- a/arch/arm/mach-shmobile/setup-rcar-gen2.c +++ b/arch/arm/mach-shmobile/setup-rcar-gen2.c @@ -58,7 +58,8 @@ void __init rcar_gen2_timer_init(void) int extal_mhz = 0; u32 freq; - if (of_machine_is_compatible("renesas,r8a7794")) { + if (of_machine_is_compatible("renesas,r8a7745") || + of_machine_is_compatible("renesas,r8a7794")) { freq = 260000000 / 8; /* ZS / 8 */ /* CNTVOFF has to be initialized either from non-secure * Hypervisor mode or secure Monitor mode with SCR.NS==1. From fd43ed6ffbdee951cdd6bbffaa028ed348a325e9 Mon Sep 17 00:00:00 2001 From: Benjamin Herrenschmidt Date: Fri, 29 Jun 2018 15:38:03 +0100 Subject: [PATCH 0374/1149] dt: Add of_device_compatible_match() This provides an equivalent of of_fdt_match() for non-flat trees. This is more practical than matching an array of of_device_id structs when converting a bunch of existing users of of_fdt_match(). Signed-off-by: Benjamin Herrenschmidt Acked-by: Rob Herring Signed-off-by: Michael Ellerman (cherry picked from commit b9c13fe32faaa71c4e4f8a426d79f8c93495e9f9) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/of/base.c | 22 ++++++++++++++++++++++ include/linux/of.h | 2 ++ 2 files changed, 24 insertions(+) diff --git a/drivers/of/base.c b/drivers/of/base.c index 31341290cd91..c8b01c9be550 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -498,6 +498,28 @@ int of_device_is_compatible(const struct device_node *device, } EXPORT_SYMBOL(of_device_is_compatible); +/** Checks if the device is compatible with any of the entries in + * a NULL terminated array of strings. Returns the best match + * score or 0. + */ +int of_device_compatible_match(struct device_node *device, + const char *const *compat) +{ + unsigned int tmp, score = 0; + + if (!compat) + return 0; + + while (*compat) { + tmp = of_device_is_compatible(device, *compat); + if (tmp > score) + score = tmp; + compat++; + } + + return score; +} + /** * of_machine_is_compatible - Test root of device tree for a given compatible value * @compat: compatible string to look for in root node's compatible property. diff --git a/include/linux/of.h b/include/linux/of.h index dd10626a615f..495428720ec8 100644 --- a/include/linux/of.h +++ b/include/linux/of.h @@ -307,6 +307,8 @@ extern int of_property_read_string_helper(struct device_node *np, const char **out_strs, size_t sz, int index); extern int of_device_is_compatible(const struct device_node *device, const char *); +extern int of_device_compatible_match(struct device_node *device, + const char *const *compat); extern bool of_device_is_available(const struct device_node *device); extern bool of_device_is_big_endian(const struct device_node *device); extern const void *of_get_property(const struct device_node *node, From 89579f19e7a3b79ad21b40d14b76c978dc48bf59 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Tue, 25 Apr 2017 19:38:48 +0200 Subject: [PATCH 0375/1149] of: Provide dummy of_device_compatible_match() for compile-testing commit 3bc1630774bc9f202308ae04608a32c366b41caf upstream. Most of_device_*() functions have dummy versions for CONFIG_OF=n, but of_device_compatible_match() hasn't. Fix that to improve the ability to do compile-testing. Fixes: b9c13fe32faaa71c ("dt: Add of_device_compatible_match()") Signed-off-by: Geert Uytterhoeven Signed-off-by: Rob Herring Signed-off-by: Ben Hutchings --- include/linux/of.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/include/linux/of.h b/include/linux/of.h index 495428720ec8..b0aacd555771 100644 --- a/include/linux/of.h +++ b/include/linux/of.h @@ -477,6 +477,12 @@ static inline int of_device_is_compatible(const struct device_node *device, return 0; } +static inline int of_device_compatible_match(struct device_node *device, + const char *const *compat) +{ + return 0; +} + static inline bool of_device_is_available(const struct device_node *device) { return false; From 44eacdf368776d632bc09900287ed145cfebaa4b Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Fri, 29 Jun 2018 15:38:04 +0100 Subject: [PATCH 0376/1149] clk: renesas: rcar-gen2: Fix PLL0 on R-Car V2H and E2 R-Car V2H and E2 do not have the PLL0CR register, but use a fixed multiplier (depending on mode pins) and divider. This corrects the clock rate of "pll0" (PLL0 VCO after post divider) on R-Car V2H and E2 from 1.5 GHz to 1 GHz. Inspired by Sergei Shtylyov's work for the common R-Car Gen2 and RZ/G Clock Pulse Generator support core. Fixes: 7c4163aae3d8e5b9 ("ARM: dts: r8a7792: initial SoC device tree") Fixes: 0dce5454d5c25858 ("ARM: shmobile: Initial r8a7794 SoC device tree") Signed-off-by: Geert Uytterhoeven (cherry picked from commit b7c563c489e94417efbad68d057ea5d2030ae44c) (modified file path) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/clk/shmobile/clk-rcar-gen2.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/drivers/clk/shmobile/clk-rcar-gen2.c b/drivers/clk/shmobile/clk-rcar-gen2.c index 745496f7ee9c..a874c66e4564 100644 --- a/drivers/clk/shmobile/clk-rcar-gen2.c +++ b/drivers/clk/shmobile/clk-rcar-gen2.c @@ -271,11 +271,14 @@ struct cpg_pll_config { unsigned int extal_div; unsigned int pll1_mult; unsigned int pll3_mult; + unsigned int pll0_mult; /* For R-Car V2H and E2 only */ }; static const struct cpg_pll_config cpg_pll_configs[8] __initconst = { - { 1, 208, 106 }, { 1, 208, 88 }, { 1, 156, 80 }, { 1, 156, 66 }, - { 2, 240, 122 }, { 2, 240, 102 }, { 2, 208, 106 }, { 2, 208, 88 }, + { 1, 208, 106, 200 }, { 1, 208, 88, 200 }, + { 1, 156, 80, 150 }, { 1, 156, 66, 150 }, + { 2, 240, 122, 230 }, { 2, 240, 102, 230 }, + { 2, 208, 106, 200 }, { 2, 208, 88, 200 }, }; /* SDHI divisors */ @@ -297,6 +300,12 @@ static const struct clk_div_table cpg_sd01_div_table[] = { static u32 cpg_mode __initdata; +static const char * const pll0_mult_match[] = { + "renesas,r8a7792-cpg-clocks", + "renesas,r8a7794-cpg-clocks", + NULL +}; + static struct clk * __init rcar_gen2_cpg_register_clock(struct device_node *np, struct rcar_gen2_cpg *cpg, const struct cpg_pll_config *config, @@ -317,9 +326,15 @@ rcar_gen2_cpg_register_clock(struct device_node *np, struct rcar_gen2_cpg *cpg, * clock implementation and we currently have no need to change * the multiplier value. */ - u32 value = clk_readl(cpg->reg + CPG_PLL0CR); + if (of_device_compatible_match(np, pll0_mult_match)) { + /* R-Car V2H and E2 do not have PLL0CR */ + mult = config->pll0_mult; + div = 3; + } else { + u32 value = clk_readl(cpg->reg + CPG_PLL0CR); + mult = ((value >> 24) & ((1 << 7) - 1)) + 1; + } parent_name = "main"; - mult = ((value >> 24) & ((1 << 7) - 1)) + 1; } else if (!strcmp(name, "pll1")) { parent_name = "main"; mult = config->pll1_mult / 2; From 0097d1fbc8c31de2ca06c13fe66063f439af0658 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Jun 2018 15:38:05 +0100 Subject: [PATCH 0377/1149] clk: shmobile: rcar-gen2: Add RZ/G1E to pll0_mult_match list RZ/G1E doesn't have the PLL0CR register, but uses a fixed multiplier (depending on mode pins) and divider similar to R-Car E2. Add RZ/G1E to pll0_mult_match list. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/clk/shmobile/clk-rcar-gen2.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/clk/shmobile/clk-rcar-gen2.c b/drivers/clk/shmobile/clk-rcar-gen2.c index a874c66e4564..636070ba5d33 100644 --- a/drivers/clk/shmobile/clk-rcar-gen2.c +++ b/drivers/clk/shmobile/clk-rcar-gen2.c @@ -301,6 +301,7 @@ static const struct clk_div_table cpg_sd01_div_table[] = { static u32 cpg_mode __initdata; static const char * const pll0_mult_match[] = { + "renesas,r8a7745-cpg-clocks", "renesas,r8a7792-cpg-clocks", "renesas,r8a7794-cpg-clocks", NULL From 832c431c89c1e4d1d36839008260bdbdc0384c98 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:38:06 +0100 Subject: [PATCH 0378/1149] ARM: shmobile: document iW-RainboW-G22M-SM SODIMM System on Module Document the iW-RainboW-G22M-SM SODIMM System on Module device tree bindings. It is just a placeholder for the time being, the actual implementation is not available yet. Signed-off-by: Fabrizio Castro Reviewed-by: Chris Paterson Reviewed-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 9933924781c2b27dfd8c43c1c12abb450b33094b) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/arm/shmobile.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt index 7ec024c41705..ed0fb820340a 100644 --- a/Documentation/devicetree/bindings/arm/shmobile.txt +++ b/Documentation/devicetree/bindings/arm/shmobile.txt @@ -49,6 +49,8 @@ Boards: compatible = "renesas,gose", "renesas,r8a7793" - Henninger compatible = "renesas,henninger", "renesas,r8a7791" + - iWave Systems RZ/G1E SODIMM System On Module (iW-RainboW-G22M-SM) + compatible = "iwave,g22m", "renesas,r8a7745" - iWave Systems RZ/G1M Qseven Development Platform (iW-RainboW-G20D-Qseven) compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7743" - iWave Systems RZ/G1M Qseven System On Module (iW-RainboW-G20M-Qseven) From 502c6b10343b8b36dca9ff9ffa8a5b1c2876b322 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:38:07 +0100 Subject: [PATCH 0379/1149] ARM: shmobile: document iW-RainboW-G22D SODIMM SOM Development Platform Document the iW-RainboW-G22D device tree bindings. It is just a placeholder for the time being, the actual implementation is not available yet. Signed-off-by: Fabrizio Castro Reviewed-by: Chris Paterson Reviewed-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 61c687e8223f842ed71267ad142f5a920b32213d) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/arm/shmobile.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt index ed0fb820340a..e27b38ed73b2 100644 --- a/Documentation/devicetree/bindings/arm/shmobile.txt +++ b/Documentation/devicetree/bindings/arm/shmobile.txt @@ -49,6 +49,8 @@ Boards: compatible = "renesas,gose", "renesas,r8a7793" - Henninger compatible = "renesas,henninger", "renesas,r8a7791" + - iWave Systems RZ/G1E SODIMM SOM Development Platform (iW-RainboW-G22D) + compatible = "iwave,g22d", "iwave,g22m", "renesas,r8a7745" - iWave Systems RZ/G1E SODIMM System On Module (iW-RainboW-G22M-SM) compatible = "iwave,g22m", "renesas,r8a7745" - iWave Systems RZ/G1M Qseven Development Platform (iW-RainboW-G20D-Qseven) From c10f7f381c8ff40456ccc9c0d156c86001a26d60 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Jun 2018 15:38:08 +0100 Subject: [PATCH 0380/1149] clk: shmobile: Document r8a7745 CPG clock support Document r8a7745 CPG clock support. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- .../devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt index 986b8a12c399..a75c26a59d56 100644 --- a/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt +++ b/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt @@ -9,6 +9,7 @@ Required Properties: - compatible: Must be one of - "renesas,r8a7743-cpg-clocks" for the r8a7743 CPG + - "renesas,r8a7745-cpg-clocks" for the r8a7745 CPG - "renesas,r8a7790-cpg-clocks" for the r8a7790 CPG - "renesas,r8a7791-cpg-clocks" for the r8a7791 CPG - "renesas,r8a7793-cpg-clocks" for the r8a7793 CPG From 00dfbe2e9a47719112bf0e36dcddd6ff1a4571d8 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Jun 2018 15:38:09 +0100 Subject: [PATCH 0381/1149] clk: shmobile: Document r8a7745 CPG DIV6 clock support Document r8a7745 CPG DIV6 clock support. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- .../devicetree/bindings/clock/renesas,cpg-div6-clocks.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt index 2990615d6a3e..feb9ab5e9a59 100644 --- a/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt +++ b/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt @@ -10,6 +10,7 @@ Required Properties: - "renesas,r8a73a4-div6-clock" for R8A73A4 (R-Mobile APE6) DIV6 clocks - "renesas,r8a7740-div6-clock" for R8A7740 (R-Mobile A1) DIV6 clocks - "renesas,r8a7743-div6-clock" for R8A7743 (RZ/G1M) DIV6 clocks + - "renesas,r8a7745-div6-clock" for R8A7745 (RZ/G1E) DIV6 clocks - "renesas,r8a7790-div6-clock" for R8A7790 (R-Car H2) DIV6 clocks - "renesas,r8a7791-div6-clock" for R8A7791 (R-Car M2-W) DIV6 clocks - "renesas,r8a7793-div6-clock" for R8A7793 (R-Car M2-N) DIV6 clocks From 790ae5a16c33ad3843fd9ecdc75c6f912dda32fd Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Jun 2018 15:38:10 +0100 Subject: [PATCH 0382/1149] clk: shmobile: Document r8a7745 MSTP clock support Document r8a7745 MSTP clock support. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- .../devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt index f444798ad7ce..6e2c6aef2fc4 100644 --- a/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt +++ b/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt @@ -14,6 +14,7 @@ Required Properties: - "renesas,r8a73a4-mstp-clocks" for R8A73A4 (R-Mobile APE6) MSTP gate clocks - "renesas,r8a7740-mstp-clocks" for R8A7740 (R-Mobile A1) MSTP gate clocks - "renesas,r8a7743-mstp-clocks" for R8A7743 (RZ/G1M) MSTP gate clocks + - "renesas,r8a7745-mstp-clocks" for R8A7745 (RZ/G1E) MSTP gate clocks - "renesas,r8a7778-mstp-clocks" for R8A7778 (R-Car M1) MSTP gate clocks - "renesas,r8a7779-mstp-clocks" for R8A7779 (R-Car H1) MSTP gate clocks - "renesas,r8a7790-mstp-clocks" for R8A7790 (R-Car H2) MSTP gate clocks From bdc09aa643368ebe1afd003dab8fe5a4f3645ee8 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 6 Jul 2018 19:10:58 +0100 Subject: [PATCH 0383/1149] ARM: shmobile: r8a7745: Add clock index macros for DT sources Add macros usable by device tree sources to reference r8a7745 clocks by index. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- include/dt-bindings/clock/r8a7745-clock.h | 147 ++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 include/dt-bindings/clock/r8a7745-clock.h diff --git a/include/dt-bindings/clock/r8a7745-clock.h b/include/dt-bindings/clock/r8a7745-clock.h new file mode 100644 index 000000000000..f1659d5bf2c4 --- /dev/null +++ b/include/dt-bindings/clock/r8a7745-clock.h @@ -0,0 +1,147 @@ +/* + * Copyright (C) 2018 Renesas Electronics Corporation + * + * 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. + */ + +#ifndef __DT_BINDINGS_CLOCK_R8A7745_H__ +#define __DT_BINDINGS_CLOCK_R8A7745_H__ + +/* CPG */ +#define R8A7745_CLK_MAIN 0 +#define R8A7745_CLK_PLL0 1 +#define R8A7745_CLK_PLL1 2 +#define R8A7745_CLK_PLL3 3 +#define R8A7745_CLK_LB 4 +#define R8A7745_CLK_QSPI 5 +#define R8A7745_CLK_SDH 6 +#define R8A7745_CLK_SD0 7 +#define R8A7745_CLK_RCAN 8 +#define R8A7745_CLK_Z2 9 + +/* MSTP0 */ +#define R8A7745_CLK_MSIOF0 0 + +/* MSTP1 */ +#define R8A7745_CLK_VCP0 1 +#define R8A7745_CLK_VPC0 3 +#define R8A7745_CLK_ADG 6 +#define R8A7745_CLK_TMU1 11 +#define R8A7745_CLK_3DG 12 +#define R8A7745_CLK_2DDMAC 15 +#define R8A7745_CLK_FDP1_0 19 +#define R8A7745_CLK_TMU3 21 +#define R8A7745_CLK_TMU2 22 +#define R8A7745_CLK_CMT0 24 +#define R8A7745_CLK_TMU0 25 +#define R8A7745_CLK_VSP1DU0 28 +#define R8A7745_CLK_VSP1_SY 31 + +/* MSTP2 */ +#define R8A7745_CLK_SCIFA2 2 +#define R8A7745_CLK_SCIFA1 3 +#define R8A7745_CLK_SCIFA0 4 +#define R8A7745_CLK_MSIOF2 5 +#define R8A7745_CLK_SCIFB0 6 +#define R8A7745_CLK_SCIFB1 7 +#define R8A7745_CLK_MSIOF1 8 +#define R8A7745_CLK_SCIFB2 16 +#define R8A7745_CLK_SYS_DMAC1 18 +#define R8A7745_CLK_SYS_DMAC0 19 + +/* MSTP3 */ +#define R8A7745_CLK_TPU0 4 +#define R8A7745_CLK_SDHI2 11 +#define R8A7745_CLK_SDHI1 12 +#define R8A7745_CLK_SDHI0 14 +#define R8A7745_CLK_MMCIF0 15 +#define R8A7745_CLK_IIC0 18 +#define R8A7745_CLK_IIC1 23 +#define R8A7745_CLK_CMT1 29 +#define R8A7745_CLK_USBHS_DMAC0 30 +#define R8A7745_CLK_USBHS_DMAC1 31 + +/* MSTP4 */ +#define R8A7745_CLK_RWDT 2 +#define R8A7745_CLK_USB_DDM 6 +#define R8A7745_CLK_IRQC 7 +#define R8A7745_CLK_INTC_SYS 8 + +/* MSTP5 */ +#define R8A7745_CLK_AUDIO_DMAC0 2 +#define R8A7745_CLK_PWM 23 + +/* MSTP7 */ +#define R8A7745_CLK_USB_EHCI 3 +#define R8A7745_CLK_USBHS 4 +#define R8A7745_CLK_HSCIF2 13 +#define R8A7745_CLK_SCIF5 14 +#define R8A7745_CLK_SCIF4 15 +#define R8A7745_CLK_HSCIF1 16 +#define R8A7745_CLK_HSCIF0 17 +#define R8A7745_CLK_SCIF3 18 +#define R8A7745_CLK_SCIF2 19 +#define R8A7745_CLK_SCIF1 20 +#define R8A7745_CLK_SCIF0 21 +#define R8A7745_CLK_DU1 23 +#define R8A7745_CLK_DU0 24 + +/* MSTP8 */ +#define R8A7745_CLK_IPMMU_SGX 0 +#define R8A7745_CLK_VIN1 10 +#define R8A7745_CLK_VIN0 11 +#define R8A7745_CLK_ETHERAVB 12 +#define R8A7745_CLK_ETHER 13 +#define R8A7745_CLK_DCU 30 + +/* MSTP9 */ +#define R8A7745_CLK_GPIO6 5 +#define R8A7745_CLK_GPIO5 7 +#define R8A7745_CLK_GPIO4 8 +#define R8A7745_CLK_GPIO3 9 +#define R8A7745_CLK_GPIO2 10 +#define R8A7745_CLK_GPIO1 11 +#define R8A7745_CLK_GPIO0 12 +#define R8A7745_CLK_RCAN1 15 +#define R8A7745_CLK_RCAN0 16 +#define R8A7745_CLK_QSPI_MOD 17 +#define R8A7745_CLK_I2C5 25 +#define R8A7745_CLK_I2C4 27 +#define R8A7745_CLK_I2C3 28 +#define R8A7745_CLK_I2C2 29 +#define R8A7745_CLK_I2C1 30 +#define R8A7745_CLK_I2C0 31 + +/* MSTP10 */ +#define R8A7745_CLK_SSI_ALL 5 +#define R8A7745_CLK_SSI9 6 +#define R8A7745_CLK_SSI8 7 +#define R8A7745_CLK_SSI7 8 +#define R8A7745_CLK_SSI6 9 +#define R8A7745_CLK_SSI5 10 +#define R8A7745_CLK_SSI4 11 +#define R8A7745_CLK_SSI3 12 +#define R8A7745_CLK_SSI2 13 +#define R8A7745_CLK_SSI1 14 +#define R8A7745_CLK_SSI0 15 +#define R8A7745_CLK_SCU_ALL 17 +#define R8A7745_CLK_SCU_DVC1 18 +#define R8A7745_CLK_SCU_DVC0 19 +#define R8A7745_CLK_SCU_CTU1_MIX1 20 +#define R8A7745_CLK_SCU_CTU0_MIX0 21 +#define R8A7745_CLK_SCU_SRC6 25 +#define R8A7745_CLK_SCU_SRC5 26 +#define R8A7745_CLK_SCU_SRC4 27 +#define R8A7745_CLK_SCU_SRC3 28 +#define R8A7745_CLK_SCU_SRC2 29 +#define R8A7745_CLK_SCU_SRC1 30 + +/* MSTP11 */ +#define R8A7745_CLK_SCIFA3 6 +#define R8A7745_CLK_SCIFA4 7 +#define R8A7745_CLK_SCIFA5 8 + +#endif /* __DT_BINDINGS_CLOCK_R8A7745_H__ */ From 72f365ca24bceca7144bfdf0775eaf7ddb42c02e Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Fri, 29 Jun 2018 15:38:12 +0100 Subject: [PATCH 0384/1149] ARM: dts: r8a7745: initial SoC device tree The initial R8A7745 SoC device tree including CPU0, GIC, timer, SYSC, RST, CPG, and the required clock descriptions. Based on the original (and large) patch by Dmitry Shifrin . Signed-off-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit c95360247bdd67d39b55f7e743153efa64e4efe3) (removed SYSC, RST and CPG nodes) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 95 ++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 arch/arm/boot/dts/r8a7745.dtsi diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi new file mode 100644 index 000000000000..281ab5972239 --- /dev/null +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -0,0 +1,95 @@ +/* + * Device Tree Source for the r8a7745 SoC + * + * Copyright (C) 2016 Cogent Embedded Inc. + * + * This file is licensed under the terms of the GNU General Public License + * version 2. This program is licensed "as is" without any warranty of any + * kind, whether express or implied. + */ + +#include +#include + +/ { + compatible = "renesas,r8a7745"; + #address-cells = <2>; + #size-cells = <2>; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu0: cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a7"; + reg = <0>; + clock-frequency = <1000000000>; + next-level-cache = <&L2_CA7>; + }; + + L2_CA7: cache-controller@0 { + compatible = "cache"; + reg = <0>; + cache-unified; + cache-level = <2>; + }; + }; + + soc { + compatible = "simple-bus"; + interrupt-parent = <&gic>; + + #address-cells = <2>; + #size-cells = <2>; + ranges; + + gic: interrupt-controller@f1001000 { + compatible = "arm,gic-400"; + #interrupt-cells = <3>; + #address-cells = <0>; + interrupt-controller; + reg = <0 0xf1001000 0 0x1000>, + <0 0xf1002000 0 0x1000>, + <0 0xf1004000 0 0x2000>, + <0 0xf1006000 0 0x2000>; + interrupts = ; + }; + + timer { + compatible = "arm,armv7-timer"; + interrupts = , + , + , + ; + }; + }; + + /* External root clock */ + extal_clk: extal { + compatible = "fixed-clock"; + #clock-cells = <0>; + /* This value must be overridden by the board. */ + clock-frequency = <0>; + }; + + /* External USB clock - can be overridden by the board */ + usb_extal_clk: usb_extal { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <48000000>; + }; + + /* External SCIF clock */ + scif_clk: scif { + compatible = "fixed-clock"; + #clock-cells = <0>; + /* This value must be overridden by the board. */ + clock-frequency = <0>; + }; +}; From 0aeeb1555cadf4758aca79bacf6a025242c1facc Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 6 Jul 2018 19:10:57 +0100 Subject: [PATCH 0385/1149] ARM: dts: r8a7745: Add clocks Declare all core clocks and DIV6 clocks, as well as all MSTP clocks. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 432 +++++++++++++++++++++++++++++++++ 1 file changed, 432 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 281ab5972239..d793a02fc37d 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -10,6 +10,7 @@ #include #include +#include / { compatible = "renesas,r8a7745"; @@ -25,6 +26,7 @@ compatible = "arm,cortex-a7"; reg = <0>; clock-frequency = <1000000000>; + clocks = <&z2_clk>; next-level-cache = <&L2_CA7>; }; @@ -68,6 +70,436 @@ ; }; + + clocks { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + /* Special CPG clocks */ + cpg_clocks: cpg_clocks@e6150000 { + compatible = "renesas,r8a7745-cpg-clocks", + "renesas,rcar-gen2-cpg-clocks"; + reg = <0 0xe6150000 0 0x1000>; + clocks = <&extal_clk &usb_extal_clk>; + #clock-cells = <1>; + clock-output-names = "main", "pll0", "pll1", + "pll3", "lb", "qspi", + "sdh", "sd0", "rcan"; + #power-domain-cells = <0>; + }; + + /* Variable factor clocks */ + sd2_clk: sd2_clk@e6150078 { + compatible = "renesas,r8a7745-div6-clock", + "renesas,cpg-div6-clock"; + reg = <0 0xe6150078 0 4>; + clocks = <&pll1_div2_clk>; + #clock-cells = <0>; + clock-output-names = "sd2"; + }; + sd3_clk: sd3_clk@e615026c { + compatible = "renesas,r8a7745-div6-clock", + "renesas,cpg-div6-clock"; + reg = <0 0xe615026c 0 4>; + clocks = <&pll1_div2_clk>; + #clock-cells = <0>; + clock-output-names = "sd3"; + }; + mmc0_clk: mmc0_clk@e6150240 { + compatible = "renesas,r8a7745-div6-clock", + "renesas,cpg-div6-clock"; + reg = <0 0xe6150240 0 4>; + clocks = <&pll1_div2_clk>; + #clock-cells = <0>; + clock-output-names = "mmc0"; + }; + + /* Fixed factor clocks */ + pll1_div2_clk: pll1_div2_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7745_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; + clock-output-names = "pll1_div2"; + }; + z2_clk: z2 { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7745_CLK_PLL0>; + #clock-cells = <0>; + clock-div = <1>; + clock-mult = <1>; + clock-output-names = "z2"; + }; + zg_clk: zg_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7745_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <6>; + clock-mult = <1>; + clock-output-names = "zg"; + }; + zx_clk: zx_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7745_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <3>; + clock-mult = <1>; + clock-output-names = "zx"; + }; + zs_clk: zs_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7745_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <6>; + clock-mult = <1>; + clock-output-names = "zs"; + }; + hp_clk: hp_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7745_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <12>; + clock-mult = <1>; + clock-output-names = "hp"; + }; + b_clk: b_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7745_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <12>; + clock-mult = <1>; + clock-output-names = "b"; + }; + p_clk: p_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7745_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <24>; + clock-mult = <1>; + clock-output-names = "p"; + }; + cl_clk: cl_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7745_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <48>; + clock-mult = <1>; + clock-output-names = "cl"; + }; + cp_clk: cp_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7745_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <48>; + clock-mult = <1>; + clock-output-names = "cp"; + }; + m2_clk: m2_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7745_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <8>; + clock-mult = <1>; + clock-output-names = "m2"; + }; + zb3_clk: zb3_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7745_CLK_PLL3>; + #clock-cells = <0>; + clock-div = <4>; + clock-mult = <1>; + clock-output-names = "zb3"; + }; + zb3d2_clk: zb3d2_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7745_CLK_PLL3>; + #clock-cells = <0>; + clock-div = <8>; + clock-mult = <1>; + clock-output-names = "zb3d2"; + }; + ddr_clk: ddr_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7745_CLK_PLL3>; + #clock-cells = <0>; + clock-div = <8>; + clock-mult = <1>; + clock-output-names = "ddr"; + }; + mp_clk: mp_clk { + compatible = "fixed-factor-clock"; + clocks = <&pll1_div2_clk>; + #clock-cells = <0>; + clock-div = <15>; + clock-mult = <1>; + clock-output-names = "mp"; + }; + cpex_clk: cpex_clk { + compatible = "fixed-factor-clock"; + clocks = <&extal_clk>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; + clock-output-names = "cpex"; + }; + rclk_clk: rclk_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7745_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <(48 * 1024)>; + clock-mult = <1>; + clock-output-names = "rclk"; + }; + oscclk_clk: oscclk_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7745_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <(12 * 1024)>; + clock-mult = <1>; + clock-output-names = "oscclk"; + }; + + /* Gate clocks */ + mstp0_clks: mstp0_clks@e6150130 { + compatible = "renesas,r8a7745-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150130 0 4>, <0 0xe6150030 0 4>; + clocks = <&mp_clk>; + #clock-cells = <1>; + clock-indices = ; + clock-output-names = "msiof0"; + }; + mstp1_clks: mstp1_clks@e6150134 { + compatible = "renesas,r8a7745-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>; + clocks = <&zs_clk>, <&zs_clk>, <&p_clk>, + <&zg_clk>, <&zs_clk>, <&zs_clk>, + <&p_clk>, <&p_clk>, <&rclk_clk>, + <&cp_clk>, <&zs_clk>, <&zs_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7745_CLK_VCP0 R8A7745_CLK_VPC0 + R8A7745_CLK_TMU1 R8A7745_CLK_3DG + R8A7745_CLK_2DDMAC R8A7745_CLK_FDP1_0 + R8A7745_CLK_TMU3 R8A7745_CLK_TMU2 + R8A7745_CLK_CMT0 R8A7745_CLK_TMU0 + R8A7745_CLK_VSP1DU0 R8A7745_CLK_VSP1_SY + >; + clock-output-names = + "vcp0", "vpc0", "tmu1", "3dg", + "2ddmac", "fdp1-0", "tmu3", + "tmu2", "cmt0", "tmu0", + "vsp1-du0", "vsp1-sy"; + }; + mstp2_clks: mstp2_clks@e6150138 { + compatible = "renesas,r8a7745-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>; + clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>, + <&mp_clk>, <&mp_clk>, <&mp_clk>, + <&mp_clk>, <&mp_clk>, <&zs_clk>, + <&zs_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7745_CLK_SCIFA2 R8A7745_CLK_SCIFA1 + R8A7745_CLK_SCIFA0 R8A7745_CLK_MSIOF2 + R8A7745_CLK_SCIFB0 R8A7745_CLK_SCIFB1 + R8A7745_CLK_MSIOF1 R8A7745_CLK_SCIFB2 + R8A7745_CLK_SYS_DMAC1 + R8A7745_CLK_SYS_DMAC0 + >; + clock-output-names = + "scifa2", "scifa1", "scifa0", "msiof2", + "scifb0", "scifb1", "msiof1", "scifb2", + "sys-dmac1", "sys-dmac0"; + }; + mstp3_clks: mstp3_clks@e615013c { + compatible = "renesas,r8a7745-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe615013c 0 4>, <0 0xe6150048 0 4>; + clocks = <&cp_clk>, <&sd3_clk>, <&sd2_clk>, + <&cpg_clocks R8A7745_CLK_SD0>, + <&mmc0_clk>, <&hp_clk>, <&hp_clk>, + <&rclk_clk>, <&hp_clk>, <&hp_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7745_CLK_TPU0 R8A7745_CLK_SDHI2 + R8A7745_CLK_SDHI1 R8A7745_CLK_SDHI0 + R8A7745_CLK_MMCIF0 R8A7745_CLK_IIC0 + R8A7745_CLK_IIC1 R8A7745_CLK_CMT1 + R8A7745_CLK_USBHS_DMAC0 + R8A7745_CLK_USBHS_DMAC1 + >; + clock-output-names = + "tpu0", "sdhi3", "sdhi2", "sdhi0", + "mmcif0", "i2c6", "i2c7", "cmt1", + "usbdmac0", "usbdmac1"; + }; + mstp4_clks: mstp4_clks@e6150140 { + compatible = "renesas,r8a7745-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>; + clocks = <&cp_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7745_CLK_IRQC + >; + clock-output-names = "irqc"; + }; + mstp5_clks: mstp5_clks@e6150144 { + compatible = "renesas,r8a7745-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150144 0 4>, <0 0xe615003c 0 4>; + clocks = <&hp_clk>, <&p_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7745_CLK_AUDIO_DMAC0 + R8A7745_CLK_PWM + >; + clock-output-names = "audmac0", "pwm"; + }; + mstp7_clks: mstp7_clks@e615014c { + compatible = "renesas,r8a7745-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>; + clocks = <&mp_clk>, <&hp_clk>, <&zs_clk>, + <&p_clk>, <&p_clk>, <&zs_clk>, + <&zs_clk>, <&p_clk>, <&p_clk>, + <&p_clk>, <&p_clk>, <&zx_clk>, + <&zx_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7745_CLK_USB_EHCI R8A7745_CLK_USBHS + R8A7745_CLK_HSCIF2 R8A7745_CLK_SCIF5 + R8A7745_CLK_SCIF4 R8A7745_CLK_HSCIF1 + R8A7745_CLK_HSCIF0 R8A7745_CLK_SCIF3 + R8A7745_CLK_SCIF2 R8A7745_CLK_SCIF1 + R8A7745_CLK_SCIF0 R8A7745_CLK_DU1 + R8A7745_CLK_DU0 + >; + clock-output-names = + "ehci", "hsusb", "hscif2", "scif5", + "scif4", "hscif1", "hscif0", "scif3", + "scif2", "scif1", "scif0", "du1", + "du0"; + }; + mstp8_clks: mstp8_clks@e6150990 { + compatible = "renesas,r8a7745-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>; + clocks = <&zx_clk>, <&zg_clk>, <&zg_clk>, + <&hp_clk>, <&p_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7745_CLK_IPMMU_SGX + R8A7745_CLK_VIN1 R8A7745_CLK_VIN0 + R8A7745_CLK_ETHERAVB R8A7745_CLK_ETHER + >; + clock-output-names = + "ipmmu_sgx", "vin1", "vin0", + "etheravb", "ether"; + }; + mstp9_clks: mstp9_clks@e6150994 { + compatible = "renesas,r8a7745-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150994 0 4>, <0 0xe61509a4 0 4>; + clocks = <&cp_clk>, <&cp_clk>, <&cp_clk>, + <&cp_clk>, <&cp_clk>, <&cp_clk>, + <&cp_clk>, <&p_clk>, <&p_clk>, + <&cpg_clocks R8A7745_CLK_QSPI>, + <&hp_clk>, <&hp_clk>, <&hp_clk>, + <&hp_clk>, <&hp_clk>, <&hp_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7745_CLK_GPIO6 R8A7745_CLK_GPIO5 + R8A7745_CLK_GPIO4 R8A7745_CLK_GPIO3 + R8A7745_CLK_GPIO2 R8A7745_CLK_GPIO1 + R8A7745_CLK_GPIO0 R8A7745_CLK_RCAN1 + R8A7745_CLK_RCAN0 R8A7745_CLK_QSPI_MOD + R8A7745_CLK_I2C5 R8A7745_CLK_I2C4 + R8A7745_CLK_I2C3 R8A7745_CLK_I2C2 + R8A7745_CLK_I2C1 R8A7745_CLK_I2C0 + >; + clock-output-names = + "gpio6", "gpio5", "gpio4", "gpio3", + "gpio2", "gpio1", "gpio0", "rcan1", + "rcan0", "qspi_mod", "i2c5", "i2c4", + "i2c3", "i2c2", "i2c1", "i2c0"; + }; + mstp10_clks: mstp10_clks@e6150998 { + compatible = "renesas,r8a7745-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150998 0 4>, <0 0xe61509a8 0 4>; + clocks = <&p_clk>, + <&mstp10_clks R8A7745_CLK_SSI_ALL>, + <&mstp10_clks R8A7745_CLK_SSI_ALL>, + <&mstp10_clks R8A7745_CLK_SSI_ALL>, + <&mstp10_clks R8A7745_CLK_SSI_ALL>, + <&mstp10_clks R8A7745_CLK_SSI_ALL>, + <&mstp10_clks R8A7745_CLK_SSI_ALL>, + <&mstp10_clks R8A7745_CLK_SSI_ALL>, + <&mstp10_clks R8A7745_CLK_SSI_ALL>, + <&mstp10_clks R8A7745_CLK_SSI_ALL>, + <&mstp10_clks R8A7745_CLK_SSI_ALL>, + <&p_clk>, + <&mstp10_clks R8A7745_CLK_SCU_ALL>, + <&mstp10_clks R8A7745_CLK_SCU_ALL>, + <&mstp10_clks R8A7745_CLK_SCU_ALL>, + <&mstp10_clks R8A7745_CLK_SCU_ALL>, + <&mstp10_clks R8A7745_CLK_SCU_ALL>, + <&mstp10_clks R8A7745_CLK_SCU_ALL>, + <&mstp10_clks R8A7745_CLK_SCU_ALL>, + <&mstp10_clks R8A7745_CLK_SCU_ALL>, + <&mstp10_clks R8A7745_CLK_SCU_ALL>, + <&mstp10_clks R8A7745_CLK_SCU_ALL>; + + #clock-cells = <1>; + clock-indices = < + R8A7745_CLK_SSI_ALL + R8A7745_CLK_SSI9 R8A7745_CLK_SSI8 + R8A7745_CLK_SSI7 R8A7745_CLK_SSI6 + R8A7745_CLK_SSI5 R8A7745_CLK_SSI4 + R8A7745_CLK_SSI3 R8A7745_CLK_SSI2 + R8A7745_CLK_SSI1 R8A7745_CLK_SSI0 + R8A7745_CLK_SCU_ALL + R8A7745_CLK_SCU_DVC1 + R8A7745_CLK_SCU_DVC0 + R8A7745_CLK_SCU_CTU1_MIX1 + R8A7745_CLK_SCU_CTU0_MIX0 + R8A7745_CLK_SCU_SRC6 + R8A7745_CLK_SCU_SRC5 + R8A7745_CLK_SCU_SRC4 + R8A7745_CLK_SCU_SRC3 + R8A7745_CLK_SCU_SRC2 + R8A7745_CLK_SCU_SRC1 + >; + clock-output-names = + "ssi-all", + "ssi9", "ssi8", "ssi7", "ssi6", "ssi5", + "ssi4", "ssi3", "ssi2", "ssi1", "ssi0", + "scu-all", + "scu-dvc1", "scu-dvc0", + "scu-ctu1-mix1", "scu-ctu0-mix0", + "scu-src6", "scu-src5", "scu-src4", + "scu-src3", "scu-src2", "scu-src1"; + }; + mstp11_clks: mstp11_clks@e615099c { + compatible = "renesas,r8a7745-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe615099c 0 4>, <0 0xe61509ac 0 4>; + clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7745_CLK_SCIFA3 R8A7745_CLK_SCIFA4 + R8A7745_CLK_SCIFA5 + >; + clock-output-names = "scifa3", "scifa4", + "scifa5"; + }; + }; }; /* External root clock */ From b3af6cad3a6cd8a16ffbc20199b1061238fc80ec Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Fri, 29 Jun 2018 15:38:14 +0100 Subject: [PATCH 0386/1149] ARM: dts: r8a7745: add SYS-DMAC support Describe SYS-DMAC0/1 in the R8A7745 device tree. Based on the original (and large) patch by Dmitry Shifrin . Signed-off-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 06a80bad04291b6e305ef521550581d62b4656a3) (updated clocks and power-domains property) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 64 ++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index d793a02fc37d..382c8af7db9c 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -71,6 +71,70 @@ IRQ_TYPE_LEVEL_LOW)>; }; + dmac0: dma-controller@e6700000 { + compatible = "renesas,dmac-r8a7745", + "renesas,rcar-dmac"; + reg = <0 0xe6700000 0 0x20000>; + interrupts = ; + interrupt-names = "error", + "ch0", "ch1", "ch2", "ch3", + "ch4", "ch5", "ch6", "ch7", + "ch8", "ch9", "ch10", "ch11", + "ch12", "ch13", "ch14"; + clocks = <&mstp2_clks R8A7745_CLK_SYS_DMAC0>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <15>; + }; + + dmac1: dma-controller@e6720000 { + compatible = "renesas,dmac-r8a7745", + "renesas,rcar-dmac"; + reg = <0 0xe6720000 0 0x20000>; + interrupts = ; + interrupt-names = "error", + "ch0", "ch1", "ch2", "ch3", + "ch4", "ch5", "ch6", "ch7", + "ch8", "ch9", "ch10", "ch11", + "ch12", "ch13", "ch14"; + clocks = <&mstp2_clks R8A7745_CLK_SYS_DMAC1>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <15>; + }; + clocks { #address-cells = <2>; #size-cells = <2>; From 8999166e8ace16d6874a3713ad3915f5788e83e9 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Jun 2018 15:38:15 +0100 Subject: [PATCH 0387/1149] ARM: dts: r8a7745: add [H]SCIF{|A|B} support Describe [H]SCIF{|A|B} ports in the R8A7745 device tree. Based on the original (and large) patch by Dmitry Shifrin . Signed-off-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven [simon: consistently use tabs for indentation] Signed-off-by: Simon Horman (cherry picked from commit e0d2da54c4d01ba27a4f50c9da94f7a011c6056b) (updated clocks, clock-names and power-domains properties) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 243 +++++++++++++++++++++++++++++++++ 1 file changed, 243 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 382c8af7db9c..4aa32bc5d425 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -135,6 +135,249 @@ dma-channels = <15>; }; + scifa0: serial@e6c40000 { + compatible = "renesas,scifa-r8a7745", "renesas,scifa"; + reg = <0 0xe6c40000 0 0x40>; + interrupts = ; + clocks = <&mstp2_clks R8A7745_CLK_SCIFA0>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x21>, <&dmac0 0x22>, + <&dmac1 0x21>, <&dmac1 0x22>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifa1: serial@e6c50000 { + compatible = "renesas,scifa-r8a7745", "renesas,scifa"; + reg = <0 0xe6c50000 0 0x40>; + interrupts = ; + clocks = <&mstp2_clks R8A7745_CLK_SCIFA1>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x25>, <&dmac0 0x26>, + <&dmac1 0x25>, <&dmac1 0x26>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifa2: serial@e6c60000 { + compatible = "renesas,scifa-r8a7745", "renesas,scifa"; + reg = <0 0xe6c60000 0 0x40>; + interrupts = ; + clocks = <&mstp2_clks R8A7745_CLK_SCIFA2>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x27>, <&dmac0 0x28>, + <&dmac1 0x27>, <&dmac1 0x28>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifa3: serial@e6c70000 { + compatible = "renesas,scifa-r8a7745", "renesas,scifa"; + reg = <0 0xe6c70000 0 0x40>; + interrupts = ; + clocks = <&mstp11_clks R8A7745_CLK_SCIFA3>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x1b>, <&dmac0 0x1c>, + <&dmac1 0x1b>, <&dmac1 0x1c>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifa4: serial@e6c78000 { + compatible = "renesas,scifa-r8a7745", "renesas,scifa"; + reg = <0 0xe6c78000 0 0x40>; + interrupts = ; + clocks = <&mstp11_clks R8A7745_CLK_SCIFA4>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x1f>, <&dmac0 0x20>, + <&dmac1 0x1f>, <&dmac1 0x20>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifa5: serial@e6c80000 { + compatible = "renesas,scifa-r8a7745", "renesas,scifa"; + reg = <0 0xe6c80000 0 0x40>; + interrupts = ; + clocks = <&mstp11_clks R8A7745_CLK_SCIFA5>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x23>, <&dmac0 0x24>, + <&dmac1 0x23>, <&dmac1 0x24>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifb0: serial@e6c20000 { + compatible = "renesas,scifb-r8a7745", "renesas,scifb"; + reg = <0 0xe6c20000 0 0x100>; + interrupts = ; + clocks = <&mstp2_clks R8A7745_CLK_SCIFB0>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x3d>, <&dmac0 0x3e>, + <&dmac1 0x3d>, <&dmac1 0x3e>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifb1: serial@e6c30000 { + compatible = "renesas,scifb-r8a7745", "renesas,scifb"; + reg = <0 0xe6c30000 0 0x100>; + interrupts = ; + clocks = <&mstp2_clks R8A7745_CLK_SCIFB1>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x19>, <&dmac0 0x1a>, + <&dmac1 0x19>, <&dmac1 0x1a>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifb2: serial@e6ce0000 { + compatible = "renesas,scifb-r8a7745", "renesas,scifb"; + reg = <0 0xe6ce0000 0 0x100>; + interrupts = ; + clocks = <&mstp2_clks R8A7745_CLK_SCIFB2>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x1d>, <&dmac0 0x1e>, + <&dmac1 0x1d>, <&dmac1 0x1e>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scif0: serial@e6e60000 { + compatible = "renesas,scif-r8a7745", "renesas,scif"; + reg = <0 0xe6e60000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A7745_CLK_SCIF0>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x29>, <&dmac0 0x2a>, + <&dmac1 0x29>, <&dmac1 0x2a>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scif1: serial@e6e68000 { + compatible = "renesas,scif-r8a7745", "renesas,scif"; + reg = <0 0xe6e68000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A7745_CLK_SCIF1>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x2d>, <&dmac0 0x2e>, + <&dmac1 0x2d>, <&dmac1 0x2e>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scif2: serial@e6e58000 { + compatible = "renesas,scif-r8a7745", "renesas,scif"; + reg = <0 0xe6e58000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A7745_CLK_SCIF2>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x2b>, <&dmac0 0x2c>, + <&dmac1 0x2b>, <&dmac1 0x2c>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scif3: serial@e6ea8000 { + compatible = "renesas,scif-r8a7745", "renesas,scif"; + reg = <0 0xe6ea8000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A7745_CLK_SCIF3>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x2f>, <&dmac0 0x30>, + <&dmac1 0x2f>, <&dmac1 0x30>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scif4: serial@e6ee0000 { + compatible = "renesas,scif-r8a7745", "renesas,scif"; + reg = <0 0xe6ee0000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A7745_CLK_SCIF4>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0xfb>, <&dmac0 0xfc>, + <&dmac1 0xfb>, <&dmac1 0xfc>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scif5: serial@e6ee8000 { + compatible = "renesas,scif-r8a7745", "renesas,scif"; + reg = <0 0xe6ee8000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A7745_CLK_SCIF5>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0xfd>, <&dmac0 0xfe>, + <&dmac1 0xfd>, <&dmac1 0xfe>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + hscif0: serial@e62c0000 { + compatible = "renesas,hscif-r8a7745", "renesas,hscif"; + reg = <0 0xe62c0000 0 0x60>; + interrupts = ; + clocks = <&mstp7_clks R8A7745_CLK_HSCIF0>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x39>, <&dmac0 0x3a>, + <&dmac1 0x39>, <&dmac1 0x3a>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + hscif1: serial@e62c8000 { + compatible = "renesas,hscif-r8a7745", "renesas,hscif"; + reg = <0 0xe62c8000 0 0x60>; + interrupts = ; + clocks = <&mstp7_clks R8A7745_CLK_HSCIF1>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x4d>, <&dmac0 0x4e>, + <&dmac1 0x4d>, <&dmac1 0x4e>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + hscif2: serial@e62d0000 { + compatible = "renesas,hscif-r8a7745", "renesas,hscif"; + reg = <0 0xe62d0000 0 0x60>; + interrupts = ; + clocks = <&mstp7_clks R8A7745_CLK_HSCIF2>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x3b>, <&dmac0 0x3c>, + <&dmac1 0x3b>, <&dmac1 0x3c>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + clocks { #address-cells = <2>; #size-cells = <2>; From 70949eb51b053945d6ecbbe10c416cf711075b0d Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Fri, 29 Jun 2018 15:38:16 +0100 Subject: [PATCH 0388/1149] ARM: dts: r8a7745: add Ether support Define the generic R8A7745 part of the Ether device node. Based on the original (and large) patch by Dmitry Shifrin . Signed-off-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit bed98a59b62d3e121da2d8372425fd4e424b0aa6) (updated clocks and power-domains properties) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 4aa32bc5d425..76f839651eca 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -378,6 +378,18 @@ status = "disabled"; }; + ether: ethernet@ee700000 { + compatible = "renesas,ether-r8a7745"; + reg = <0 0xee700000 0 0x400>; + interrupts = ; + clocks = <&mstp8_clks R8A7745_CLK_ETHER>; + power-domains = <&cpg_clocks>; + phy-mode = "rmii"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + clocks { #address-cells = <2>; #size-cells = <2>; From 2e04325ca19f1656a2585aebc228ef5d0ba02bae Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Fri, 29 Jun 2018 15:38:17 +0100 Subject: [PATCH 0389/1149] ARM: dts: r8a7745: add IRQC support Describe the IRQC interrupt controller in the R8A7745 device tree. Based on the original (and large) patch by Dmitry Shifrin . Signed-off-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 28c43fbb3ca0a9a8f547aece94dac8d791358444) (updated clocks and power-domains properties) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 76f839651eca..5dd04030115e 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -59,6 +59,25 @@ IRQ_TYPE_LEVEL_HIGH)>; }; + irqc: interrupt-controller@e61c0000 { + compatible = "renesas,irqc-r8a7745", "renesas,irqc"; + #interrupt-cells = <2>; + interrupt-controller; + reg = <0 0xe61c0000 0 0x200>; + interrupts = , + , + , + , + , + , + , + , + , + ; + clocks = <&mstp4_clks R8A7745_CLK_IRQC>; + power-domains = <&cpg_clocks>; + }; + timer { compatible = "arm,armv7-timer"; interrupts = Date: Fri, 29 Jun 2018 15:38:18 +0100 Subject: [PATCH 0390/1149] ARM: dts: r8a7745: Link ARM GIC to clock and clock domain Link the ARM GIC to the INTC-SYS module clock, and add it to the SYSC "always-on" PM Domain, so it can be power managed using that clock. Note that currently the GIC-400 driver doesn't support module clocks nor Runtime PM, so this must be handled as a critical clock. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit db017f399639f68827edc954205803272ef20b24) (updated clocks and power-domains properties) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 5dd04030115e..e6deeae9bd46 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -57,6 +57,9 @@ <0 0xf1006000 0 0x2000>; interrupts = ; + clocks = <&mstp4_clks R8A7745_CLK_INTC_SYS>; + clock-names = "clk"; + power-domains = <&cpg_clocks>; }; irqc: interrupt-controller@e61c0000 { From f8a87f793546919ae0a0dc2cb64e81b7559c8807 Mon Sep 17 00:00:00 2001 From: Marc Zyngier Date: Fri, 29 Jun 2018 15:38:19 +0100 Subject: [PATCH 0391/1149] ARM: DTS: Fix register map for virt-capable GIC Since everybody copied my own mistake from the DT binding example, let's address all the offenders in one swift go. Most of them got the CPU interface size wrong (4kB, while it should be 8kB), except for both keystone platforms which got the control interface wrong (4kB instead of 8kB). In a few cases where I knew for sure what implementation was used, I've added the "arm,gic-400" compatible string. I'm 99% sure that this is what everyone is using, but short of having the TRM for all the other SoCs, I've left them alone. Acked-by: Shawn Guo Acked-by: Tony Lindgren Acked-by: Santosh Shilimkar Acked-by: Krzysztof Kozlowski Acked-by: Maxime Ripard Acked-by: Antoine Tenart Acked-by: Arnd Bergmann Acked-by: Matthias Brugger Acked-by: Heiko Stuebner Reviewed-by: Javier Martinez Canillas Signed-off-by: Marc Zyngier Signed-off-by: Arnd Bergmann (cherry picked from commit 387720c93812f1e702c20c667cb003a356e24a6c) (Backported only for r8a7745) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index e6deeae9bd46..68d08f149920 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -52,7 +52,7 @@ #address-cells = <0>; interrupt-controller; reg = <0 0xf1001000 0 0x1000>, - <0 0xf1002000 0 0x1000>, + <0 0xf1002000 0 0x2000>, <0 0xf1004000 0 0x2000>, <0 0xf1006000 0 0x2000>; interrupts = Date: Fri, 29 Jun 2018 15:38:20 +0100 Subject: [PATCH 0392/1149] ARM: dts: r8a7745: Fix SCIFB0 dmas indentation Fixes: e0d2da54c4d01ba2 ("ARM: dts: r8a7745: add [H]SCIF{|A|B} support") Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit ad20bb6868f1d29f9c911f14087be4f93c098604) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 68d08f149920..90dc1e4352ef 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -242,7 +242,7 @@ clocks = <&mstp2_clks R8A7745_CLK_SCIFB0>; clock-names = "sci_ick"; dmas = <&dmac0 0x3d>, <&dmac0 0x3e>, - <&dmac1 0x3d>, <&dmac1 0x3e>; + <&dmac1 0x3d>, <&dmac1 0x3e>; dma-names = "tx", "rx", "tx", "rx"; power-domains = <&cpg_clocks>; status = "disabled"; From cf2ebac7da896c5f6a245905717e78b635d9aef4 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Fri, 29 Jun 2018 15:38:21 +0100 Subject: [PATCH 0393/1149] ARM: dts: r8a7745: Remove unit-address and reg from integrated cache The Cortex-A7 cache controller is an integrated controller, and thus the device node representing it should not have a unit-addresses or reg property. Fixes: c95360247bdd67d3 ("ARM: dts: r8a7745: initial SoC device tree") Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 51c00a9f730dd27da23e9dec593c22c0f9f5a1b1) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 90dc1e4352ef..0b3efb169148 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -30,9 +30,8 @@ next-level-cache = <&L2_CA7>; }; - L2_CA7: cache-controller@0 { + L2_CA7: cache-controller-0 { compatible = "cache"; - reg = <0>; cache-unified; cache-level = <2>; }; From 37def8b10611fb49bf84656566c9c92a8ad0deab Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Jun 2018 15:38:22 +0100 Subject: [PATCH 0394/1149] ARM: dts: iwg22m: Add iWave RZG1E SODIMM SOM Add support for iWave RZG1E SODIMM System On Module. http://www.iwavesystems.com/rz-g1e-sodimm-module.html Signed-off-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit c9a41f515d1e5955c44cb04926f5f5f4be4a0cd0) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745-iwg22m.dtsi | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 arch/arm/boot/dts/r8a7745-iwg22m.dtsi diff --git a/arch/arm/boot/dts/r8a7745-iwg22m.dtsi b/arch/arm/boot/dts/r8a7745-iwg22m.dtsi new file mode 100644 index 000000000000..9dbd854aacf8 --- /dev/null +++ b/arch/arm/boot/dts/r8a7745-iwg22m.dtsi @@ -0,0 +1,24 @@ +/* + * Device Tree Source for the iWave-RZG1E-G22M SODIMM SOM + * + * Copyright (C) 2017 Renesas Electronics Corp. + * + * This file is licensed under the terms of the GNU General Public License + * version 2. This program is licensed "as is" without any warranty of any + * kind, whether express or implied. + */ + +#include "r8a7745.dtsi" + +/ { + compatible = "iwave,g22m", "renesas,r8a7745"; + + memory@40000000 { + device_type = "memory"; + reg = <0 0x40000000 0 0x20000000>; + }; +}; + +&extal_clk { + clock-frequency = <20000000>; +}; From 40c9695fb7f0f021beb6c9353a4e2701db45db23 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Jun 2018 15:38:23 +0100 Subject: [PATCH 0395/1149] ARM: dts: iwg22d-sodimm: Add support for iWave G22D-SODIMM board Add support for iWave RainboW-G22D-SODIMM board based on RZ/G1E. Signed-off-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit a59eb272a4eae10eb4f7a3e7b15aa47d57b32699) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts | 29 +++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 22fc8abfeef7..20ca8fcec499 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -546,6 +546,7 @@ dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += \ r8a7740-armadillo800eva.dtb \ r8a7743-iwg20d-q7.dtb \ r8a7743-iwg20d-q7-dbcm-ca.dtb \ + r8a7745-iwg22d-sodimm.dtb \ r8a7778-bockw.dtb \ r8a7779-marzen.dtb \ r8a7790-lager.dtb \ diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts new file mode 100644 index 000000000000..cbc19feb1565 --- /dev/null +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts @@ -0,0 +1,29 @@ +/* + * Device Tree Source for the iWave-RZG1E SODIMM carrier board + * + * Copyright (C) 2017 Renesas Electronics Corp. + * + * This file is licensed under the terms of the GNU General Public License + * version 2. This program is licensed "as is" without any warranty of any + * kind, whether express or implied. + */ + +/dts-v1/; +#include "r8a7745-iwg22m.dtsi" + +/ { + model = "iWave Systems RainboW-G22D-SODIMM board based on RZ/G1E"; + compatible = "iwave,g22d", "iwave,g22m", "renesas,r8a7745"; + + aliases { + serial0 = &scif4; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; +}; + +&scif4 { + status = "okay"; +}; From 9bbc28a9afd02f7c446c7da46ec37315d99824b5 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Fri, 29 Jun 2018 15:38:24 +0100 Subject: [PATCH 0396/1149] pinctrl: sh-pfc: r8a7794: Use PINMUX_SINGLE() instead of raw PINMUX_DATA() Signed-off-by: Geert Uytterhoeven Acked-by: Kuninori Morimoto Acked-by: Laurent Pinchart (cherry picked from commit 61a483ff80e19846de5ab9c9ccadd11f3c11f982) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 44 ++++++++++++++-------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c index 086f6798b129..3324ee75e71c 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c @@ -618,28 +618,28 @@ enum { static const u16 pinmux_data[] = { PINMUX_DATA_GP_ALL(), /* PINMUX_DATA(GP_M_N_DATA, GP_M_N_FN...), */ - PINMUX_DATA(A2_MARK, FN_A2), - PINMUX_DATA(WE0_N_MARK, FN_WE0_N), - PINMUX_DATA(WE1_N_MARK, FN_WE1_N), - PINMUX_DATA(DACK0_MARK, FN_DACK0), - PINMUX_DATA(USB0_PWEN_MARK, FN_USB0_PWEN), - PINMUX_DATA(USB0_OVC_MARK, FN_USB0_OVC), - PINMUX_DATA(USB1_PWEN_MARK, FN_USB1_PWEN), - PINMUX_DATA(USB1_OVC_MARK, FN_USB1_OVC), - PINMUX_DATA(SD0_CLK_MARK, FN_SD0_CLK), - PINMUX_DATA(SD0_CMD_MARK, FN_SD0_CMD), - PINMUX_DATA(SD0_DATA0_MARK, FN_SD0_DATA0), - PINMUX_DATA(SD0_DATA1_MARK, FN_SD0_DATA1), - PINMUX_DATA(SD0_DATA2_MARK, FN_SD0_DATA2), - PINMUX_DATA(SD0_DATA3_MARK, FN_SD0_DATA3), - PINMUX_DATA(SD0_CD_MARK, FN_SD0_CD), - PINMUX_DATA(SD0_WP_MARK, FN_SD0_WP), - PINMUX_DATA(SD1_CLK_MARK, FN_SD1_CLK), - PINMUX_DATA(SD1_CMD_MARK, FN_SD1_CMD), - PINMUX_DATA(SD1_DATA0_MARK, FN_SD1_DATA0), - PINMUX_DATA(SD1_DATA1_MARK, FN_SD1_DATA1), - PINMUX_DATA(SD1_DATA2_MARK, FN_SD1_DATA2), - PINMUX_DATA(SD1_DATA3_MARK, FN_SD1_DATA3), + PINMUX_SINGLE(A2), + PINMUX_SINGLE(WE0_N), + PINMUX_SINGLE(WE1_N), + PINMUX_SINGLE(DACK0), + PINMUX_SINGLE(USB0_PWEN), + PINMUX_SINGLE(USB0_OVC), + PINMUX_SINGLE(USB1_PWEN), + PINMUX_SINGLE(USB1_OVC), + PINMUX_SINGLE(SD0_CLK), + PINMUX_SINGLE(SD0_CMD), + PINMUX_SINGLE(SD0_DATA0), + PINMUX_SINGLE(SD0_DATA1), + PINMUX_SINGLE(SD0_DATA2), + PINMUX_SINGLE(SD0_DATA3), + PINMUX_SINGLE(SD0_CD), + PINMUX_SINGLE(SD0_WP), + PINMUX_SINGLE(SD1_CLK), + PINMUX_SINGLE(SD1_CMD), + PINMUX_SINGLE(SD1_DATA0), + PINMUX_SINGLE(SD1_DATA1), + PINMUX_SINGLE(SD1_DATA2), + PINMUX_SINGLE(SD1_DATA3), /* IPSR0 */ PINMUX_IPSR_DATA(IP0_0, SD1_CD), From 9d1f35ac807b87bba28d252c716536bfdb11a311 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Fri, 29 Jun 2018 15:38:25 +0100 Subject: [PATCH 0397/1149] pinctrl: sh-pfc: r8a7794: Add SCIF_CLK support Add pins, groups, and a function for SCIF_CLK, which is the external clock source for the Baud Rate Generator for External Clock (BRG) on (H)SCIF. Signed-off-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Acked-by: Linus Walleij (cherry picked from commit ed66700c031917be7b5527a41ac572a1c714f0ed) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c index 3324ee75e71c..acd104bc3624 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c @@ -2644,6 +2644,21 @@ static const unsigned int scifb2_ctrl_pins[] = { static const unsigned int scifb2_ctrl_mux[] = { SCIFB2_RTS_N_MARK, SCIFB2_CTS_N_MARK, }; +/* - SCIF Clock ------------------------------------------------------------- */ +static const unsigned int scif_clk_pins[] = { + /* SCIF_CLK */ + RCAR_GP_PIN(1, 23), +}; +static const unsigned int scif_clk_mux[] = { + SCIF_CLK_MARK, +}; +static const unsigned int scif_clk_b_pins[] = { + /* SCIF_CLK */ + RCAR_GP_PIN(3, 29), +}; +static const unsigned int scif_clk_b_mux[] = { + SCIF_CLK_B_MARK, +}; /* - SDHI0 ------------------------------------------------------------------ */ static const unsigned int sdhi0_data1_pins[] = { /* D0 */ @@ -3071,6 +3086,8 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(scifb2_data), SH_PFC_PIN_GROUP(scifb2_clk), SH_PFC_PIN_GROUP(scifb2_ctrl), + SH_PFC_PIN_GROUP(scif_clk), + SH_PFC_PIN_GROUP(scif_clk_b), SH_PFC_PIN_GROUP(sdhi0_data1), SH_PFC_PIN_GROUP(sdhi0_data4), SH_PFC_PIN_GROUP(sdhi0_ctrl), @@ -3354,6 +3371,11 @@ static const char * const scifb2_groups[] = { "scifb2_ctrl", }; +static const char * const scif_clk_groups[] = { + "scif_clk", + "scif_clk_b", +}; + static const char * const sdhi0_groups[] = { "sdhi0_data1", "sdhi0_data4", @@ -3441,6 +3463,7 @@ static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(scifb0), SH_PFC_FUNCTION(scifb1), SH_PFC_FUNCTION(scifb2), + SH_PFC_FUNCTION(scif_clk), SH_PFC_FUNCTION(sdhi0), SH_PFC_FUNCTION(sdhi1), SH_PFC_FUNCTION(sdhi2), From bb305f28c5b0e37687ccc2e1d8db1745ad91cbd8 Mon Sep 17 00:00:00 2001 From: Ryo Kataoka Date: Fri, 29 Jun 2018 15:38:26 +0100 Subject: [PATCH 0398/1149] pinctrl: sh-pfc: r8a7794: Add SSI pin groups Add the SSI pin groups to the R8A7794 PFC driver. [Sergei: fixed inconsistent alternate pin group naming, split SSI5/6 pin groups into data/control ones, moved SSI7 data B group to its proper place, fixed pin names in the comments to *_pins[], extended Cogent Embedded's copyright, added the changelog, renamed the patch.] Signed-off-by: Ryo Kataoka Signed-off-by: Sergei Shtylyov Acked-by: Linus Walleij Signed-off-by: Geert Uytterhoeven (cherry picked from commit a79ef339ddc60515ba23b137ba4feed11454d2de) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 315 ++++++++++++++++++++++++++- 1 file changed, 313 insertions(+), 2 deletions(-) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c index acd104bc3624..cfc2e66bd5e7 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c @@ -1,9 +1,9 @@ /* * r8a7794 processor support - PFC hardware block. * - * Copyright (C) 2014 Renesas Electronics Corporation + * Copyright (C) 2014-2015 Renesas Electronics Corporation * Copyright (C) 2015 Renesas Solutions Corp. - * Copyright (C) 2015 Cogent Embedded, Inc., + * Copyright (C) 2015-2016 Cogent Embedded, Inc., * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 @@ -2770,6 +2770,245 @@ static const unsigned int sdhi2_wp_pins[] = { static const unsigned int sdhi2_wp_mux[] = { SD2_WP_MARK, }; +/* - SSI -------------------------------------------------------------------- */ +static const unsigned int ssi0_data_pins[] = { + /* SDATA0 */ + RCAR_GP_PIN(5, 3), +}; +static const unsigned int ssi0_data_mux[] = { + SSI_SDATA0_MARK, +}; +static const unsigned int ssi0129_ctrl_pins[] = { + /* SCK0129, WS0129 */ + RCAR_GP_PIN(5, 1), RCAR_GP_PIN(5, 2), +}; +static const unsigned int ssi0129_ctrl_mux[] = { + SSI_SCK0129_MARK, SSI_WS0129_MARK, +}; +static const unsigned int ssi1_data_pins[] = { + /* SDATA1 */ + RCAR_GP_PIN(5, 13), +}; +static const unsigned int ssi1_data_mux[] = { + SSI_SDATA1_MARK, +}; +static const unsigned int ssi1_ctrl_pins[] = { + /* SCK1, WS1 */ + RCAR_GP_PIN(5, 11), RCAR_GP_PIN(5, 12), +}; +static const unsigned int ssi1_ctrl_mux[] = { + SSI_SCK1_MARK, SSI_WS1_MARK, +}; +static const unsigned int ssi1_data_b_pins[] = { + /* SDATA1 */ + RCAR_GP_PIN(4, 13), +}; +static const unsigned int ssi1_data_b_mux[] = { + SSI_SDATA1_B_MARK, +}; +static const unsigned int ssi1_ctrl_b_pins[] = { + /* SCK1, WS1 */ + RCAR_GP_PIN(4, 11), RCAR_GP_PIN(4, 12), +}; +static const unsigned int ssi1_ctrl_b_mux[] = { + SSI_SCK1_B_MARK, SSI_WS1_B_MARK, +}; +static const unsigned int ssi2_data_pins[] = { + /* SDATA2 */ + RCAR_GP_PIN(5, 16), +}; +static const unsigned int ssi2_data_mux[] = { + SSI_SDATA2_MARK, +}; +static const unsigned int ssi2_ctrl_pins[] = { + /* SCK2, WS2 */ + RCAR_GP_PIN(5, 14), RCAR_GP_PIN(5, 15), +}; +static const unsigned int ssi2_ctrl_mux[] = { + SSI_SCK2_MARK, SSI_WS2_MARK, +}; +static const unsigned int ssi2_data_b_pins[] = { + /* SDATA2 */ + RCAR_GP_PIN(4, 16), +}; +static const unsigned int ssi2_data_b_mux[] = { + SSI_SDATA2_B_MARK, +}; +static const unsigned int ssi2_ctrl_b_pins[] = { + /* SCK2, WS2 */ + RCAR_GP_PIN(4, 14), RCAR_GP_PIN(4, 15), +}; +static const unsigned int ssi2_ctrl_b_mux[] = { + SSI_SCK2_B_MARK, SSI_WS2_B_MARK, +}; +static const unsigned int ssi3_data_pins[] = { + /* SDATA3 */ + RCAR_GP_PIN(5, 6), +}; +static const unsigned int ssi3_data_mux[] = { + SSI_SDATA3_MARK +}; +static const unsigned int ssi34_ctrl_pins[] = { + /* SCK34, WS34 */ + RCAR_GP_PIN(5, 4), RCAR_GP_PIN(5, 5), +}; +static const unsigned int ssi34_ctrl_mux[] = { + SSI_SCK34_MARK, SSI_WS34_MARK, +}; +static const unsigned int ssi4_data_pins[] = { + /* SDATA4 */ + RCAR_GP_PIN(5, 9), +}; +static const unsigned int ssi4_data_mux[] = { + SSI_SDATA4_MARK, +}; +static const unsigned int ssi4_ctrl_pins[] = { + /* SCK4, WS4 */ + RCAR_GP_PIN(5, 7), RCAR_GP_PIN(5, 8), +}; +static const unsigned int ssi4_ctrl_mux[] = { + SSI_SCK4_MARK, SSI_WS4_MARK, +}; +static const unsigned int ssi4_data_b_pins[] = { + /* SDATA4 */ + RCAR_GP_PIN(4, 22), +}; +static const unsigned int ssi4_data_b_mux[] = { + SSI_SDATA4_B_MARK, +}; +static const unsigned int ssi4_ctrl_b_pins[] = { + /* SCK4, WS4 */ + RCAR_GP_PIN(4, 20), RCAR_GP_PIN(4, 21), +}; +static const unsigned int ssi4_ctrl_b_mux[] = { + SSI_SCK4_B_MARK, SSI_WS4_B_MARK, +}; +static const unsigned int ssi5_data_pins[] = { + /* SDATA5 */ + RCAR_GP_PIN(4, 26), +}; +static const unsigned int ssi5_data_mux[] = { + SSI_SDATA5_MARK, +}; +static const unsigned int ssi5_ctrl_pins[] = { + /* SCK5, WS5 */ + RCAR_GP_PIN(4, 24), RCAR_GP_PIN(4, 25), +}; +static const unsigned int ssi5_ctrl_mux[] = { + SSI_SCK5_MARK, SSI_WS5_MARK, +}; +static const unsigned int ssi5_data_b_pins[] = { + /* SDATA5 */ + RCAR_GP_PIN(3, 21), +}; +static const unsigned int ssi5_data_b_mux[] = { + SSI_SDATA5_B_MARK, +}; +static const unsigned int ssi5_ctrl_b_pins[] = { + /* SCK5, WS5 */ + RCAR_GP_PIN(3, 19), RCAR_GP_PIN(3, 20), +}; +static const unsigned int ssi5_ctrl_b_mux[] = { + SSI_SCK5_B_MARK, SSI_WS5_B_MARK, +}; +static const unsigned int ssi6_data_pins[] = { + /* SDATA6 */ + RCAR_GP_PIN(4, 29), +}; +static const unsigned int ssi6_data_mux[] = { + SSI_SDATA6_MARK, +}; +static const unsigned int ssi6_ctrl_pins[] = { + /* SCK6, WS6 */ + RCAR_GP_PIN(4, 27), RCAR_GP_PIN(4, 28), +}; +static const unsigned int ssi6_ctrl_mux[] = { + SSI_SCK6_MARK, SSI_WS6_MARK, +}; +static const unsigned int ssi6_data_b_pins[] = { + /* SDATA6 */ + RCAR_GP_PIN(3, 24), +}; +static const unsigned int ssi6_data_b_mux[] = { + SSI_SDATA6_B_MARK, +}; +static const unsigned int ssi6_ctrl_b_pins[] = { + /* SCK6, WS6 */ + RCAR_GP_PIN(3, 22), RCAR_GP_PIN(3, 23), +}; +static const unsigned int ssi6_ctrl_b_mux[] = { + SSI_SCK6_B_MARK, SSI_WS6_B_MARK, +}; +static const unsigned int ssi7_data_pins[] = { + /* SDATA7 */ + RCAR_GP_PIN(5, 0), +}; +static const unsigned int ssi7_data_mux[] = { + SSI_SDATA7_MARK, +}; +static const unsigned int ssi78_ctrl_pins[] = { + /* SCK78, WS78 */ + RCAR_GP_PIN(4, 30), RCAR_GP_PIN(4, 31), +}; +static const unsigned int ssi78_ctrl_mux[] = { + SSI_SCK78_MARK, SSI_WS78_MARK, +}; +static const unsigned int ssi7_data_b_pins[] = { + /* SDATA7 */ + RCAR_GP_PIN(3, 27), +}; +static const unsigned int ssi7_data_b_mux[] = { + SSI_SDATA7_B_MARK, +}; +static const unsigned int ssi78_ctrl_b_pins[] = { + /* SCK78, WS78 */ + RCAR_GP_PIN(3, 25), RCAR_GP_PIN(3, 26), +}; +static const unsigned int ssi78_ctrl_b_mux[] = { + SSI_SCK78_B_MARK, SSI_WS78_B_MARK, +}; +static const unsigned int ssi8_data_pins[] = { + /* SDATA8 */ + RCAR_GP_PIN(5, 10), +}; +static const unsigned int ssi8_data_mux[] = { + SSI_SDATA8_MARK, +}; +static const unsigned int ssi8_data_b_pins[] = { + /* SDATA8 */ + RCAR_GP_PIN(3, 28), +}; +static const unsigned int ssi8_data_b_mux[] = { + SSI_SDATA8_B_MARK, +}; +static const unsigned int ssi9_data_pins[] = { + /* SDATA9 */ + RCAR_GP_PIN(5, 19), +}; +static const unsigned int ssi9_data_mux[] = { + SSI_SDATA9_MARK, +}; +static const unsigned int ssi9_ctrl_pins[] = { + /* SCK9, WS9 */ + RCAR_GP_PIN(5, 17), RCAR_GP_PIN(5, 18), +}; +static const unsigned int ssi9_ctrl_mux[] = { + SSI_SCK9_MARK, SSI_WS9_MARK, +}; +static const unsigned int ssi9_data_b_pins[] = { + /* SDATA9 */ + RCAR_GP_PIN(4, 19), +}; +static const unsigned int ssi9_data_b_mux[] = { + SSI_SDATA9_B_MARK, +}; +static const unsigned int ssi9_ctrl_b_pins[] = { + /* SCK9, WS9 */ + RCAR_GP_PIN(4, 17), RCAR_GP_PIN(4, 18), +}; +static const unsigned int ssi9_ctrl_b_mux[] = { + SSI_SCK9_B_MARK, SSI_WS9_B_MARK, +}; /* - USB0 ------------------------------------------------------------------- */ static const unsigned int usb0_pins[] = { RCAR_GP_PIN(5, 24), /* PWEN */ @@ -3103,6 +3342,40 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(sdhi2_ctrl), SH_PFC_PIN_GROUP(sdhi2_cd), SH_PFC_PIN_GROUP(sdhi2_wp), + SH_PFC_PIN_GROUP(ssi0_data), + SH_PFC_PIN_GROUP(ssi0129_ctrl), + SH_PFC_PIN_GROUP(ssi1_data), + SH_PFC_PIN_GROUP(ssi1_ctrl), + SH_PFC_PIN_GROUP(ssi1_data_b), + SH_PFC_PIN_GROUP(ssi1_ctrl_b), + SH_PFC_PIN_GROUP(ssi2_data), + SH_PFC_PIN_GROUP(ssi2_ctrl), + SH_PFC_PIN_GROUP(ssi2_data_b), + SH_PFC_PIN_GROUP(ssi2_ctrl_b), + SH_PFC_PIN_GROUP(ssi3_data), + SH_PFC_PIN_GROUP(ssi34_ctrl), + SH_PFC_PIN_GROUP(ssi4_data), + SH_PFC_PIN_GROUP(ssi4_ctrl), + SH_PFC_PIN_GROUP(ssi4_data_b), + SH_PFC_PIN_GROUP(ssi4_ctrl_b), + SH_PFC_PIN_GROUP(ssi5_data), + SH_PFC_PIN_GROUP(ssi5_ctrl), + SH_PFC_PIN_GROUP(ssi5_data_b), + SH_PFC_PIN_GROUP(ssi5_ctrl_b), + SH_PFC_PIN_GROUP(ssi6_data), + SH_PFC_PIN_GROUP(ssi6_ctrl), + SH_PFC_PIN_GROUP(ssi6_data_b), + SH_PFC_PIN_GROUP(ssi6_ctrl_b), + SH_PFC_PIN_GROUP(ssi7_data), + SH_PFC_PIN_GROUP(ssi78_ctrl), + SH_PFC_PIN_GROUP(ssi7_data_b), + SH_PFC_PIN_GROUP(ssi78_ctrl_b), + SH_PFC_PIN_GROUP(ssi8_data), + SH_PFC_PIN_GROUP(ssi8_data_b), + SH_PFC_PIN_GROUP(ssi9_data), + SH_PFC_PIN_GROUP(ssi9_ctrl), + SH_PFC_PIN_GROUP(ssi9_data_b), + SH_PFC_PIN_GROUP(ssi9_ctrl_b), SH_PFC_PIN_GROUP(usb0), SH_PFC_PIN_GROUP(usb1), VIN_DATA_PIN_GROUP(vin0_data, 24), @@ -3400,6 +3673,43 @@ static const char * const sdhi2_groups[] = { "sdhi2_wp", }; +static const char * const ssi_groups[] = { + "ssi0_data", + "ssi0129_ctrl", + "ssi1_data", + "ssi1_ctrl", + "ssi1_data_b", + "ssi1_ctrl_b", + "ssi2_data", + "ssi2_ctrl", + "ssi2_data_b", + "ssi2_ctrl_b", + "ssi3_data", + "ssi34_ctrl", + "ssi4_data", + "ssi4_ctrl", + "ssi4_data_b", + "ssi4_ctrl_b", + "ssi5_data", + "ssi5_ctrl", + "ssi5_data_b", + "ssi5_ctrl_b", + "ssi6_data", + "ssi6_ctrl", + "ssi6_data_b", + "ssi6_ctrl_b", + "ssi7_data", + "ssi78_ctrl", + "ssi7_data_b", + "ssi78_ctrl_b", + "ssi8_data", + "ssi8_data_b", + "ssi9_data", + "ssi9_ctrl", + "ssi9_data_b", + "ssi9_ctrl_b", +}; + static const char * const usb0_groups[] = { "usb0", }; @@ -3467,6 +3777,7 @@ static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(sdhi0), SH_PFC_FUNCTION(sdhi1), SH_PFC_FUNCTION(sdhi2), + SH_PFC_FUNCTION(ssi), SH_PFC_FUNCTION(usb0), SH_PFC_FUNCTION(usb1), SH_PFC_FUNCTION(vin0), From 4d32830e2789ec693457be0560a702b7c9408c3d Mon Sep 17 00:00:00 2001 From: Ryo Kataoka Date: Fri, 29 Jun 2018 15:38:27 +0100 Subject: [PATCH 0399/1149] pinctrl: sh-pfc: r8a7794: Add audio clock pin groups Add the audio clock pin groups to the R8A7794 PFC driver. [Sergei: fixed pin group names to reflect the reality, fixed pin names in the comments to *_pins[], lowercased the separator comment, resolved rejects, added the changelog, renamed the patch.] Signed-off-by: Ryo Kataoka Signed-off-by: Sergei Shtylyov Acked-by: Linus Walleij Signed-off-by: Geert Uytterhoeven (cherry picked from commit 73cfc55ae0680584f2d47aeaf65c5419ab129d8e) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 122 +++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c index cfc2e66bd5e7..4a3c7abcf6a6 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c @@ -1510,6 +1510,98 @@ static const struct sh_pfc_pin pinmux_pins[] = { PINMUX_GPIO_GP_ALL(), }; +/* - Audio Clock ------------------------------------------------------------ */ +static const unsigned int audio_clka_pins[] = { + /* CLKA */ + RCAR_GP_PIN(5, 20), +}; +static const unsigned int audio_clka_mux[] = { + AUDIO_CLKA_MARK, +}; +static const unsigned int audio_clka_b_pins[] = { + /* CLKA */ + RCAR_GP_PIN(3, 25), +}; +static const unsigned int audio_clka_b_mux[] = { + AUDIO_CLKA_B_MARK, +}; +static const unsigned int audio_clka_c_pins[] = { + /* CLKA */ + RCAR_GP_PIN(4, 20), +}; +static const unsigned int audio_clka_c_mux[] = { + AUDIO_CLKA_C_MARK, +}; +static const unsigned int audio_clka_d_pins[] = { + /* CLKA */ + RCAR_GP_PIN(5, 0), +}; +static const unsigned int audio_clka_d_mux[] = { + AUDIO_CLKA_D_MARK, +}; +static const unsigned int audio_clkb_pins[] = { + /* CLKB */ + RCAR_GP_PIN(5, 21), +}; +static const unsigned int audio_clkb_mux[] = { + AUDIO_CLKB_MARK, +}; +static const unsigned int audio_clkb_b_pins[] = { + /* CLKB */ + RCAR_GP_PIN(3, 26), +}; +static const unsigned int audio_clkb_b_mux[] = { + AUDIO_CLKB_B_MARK, +}; +static const unsigned int audio_clkb_c_pins[] = { + /* CLKB */ + RCAR_GP_PIN(4, 21), +}; +static const unsigned int audio_clkb_c_mux[] = { + AUDIO_CLKB_C_MARK, +}; +static const unsigned int audio_clkc_pins[] = { + /* CLKC */ + RCAR_GP_PIN(5, 22), +}; +static const unsigned int audio_clkc_mux[] = { + AUDIO_CLKC_MARK, +}; +static const unsigned int audio_clkc_b_pins[] = { + /* CLKC */ + RCAR_GP_PIN(3, 29), +}; +static const unsigned int audio_clkc_b_mux[] = { + AUDIO_CLKC_B_MARK, +}; +static const unsigned int audio_clkc_c_pins[] = { + /* CLKC */ + RCAR_GP_PIN(4, 22), +}; +static const unsigned int audio_clkc_c_mux[] = { + AUDIO_CLKC_C_MARK, +}; +static const unsigned int audio_clkout_pins[] = { + /* CLKOUT */ + RCAR_GP_PIN(5, 23), +}; +static const unsigned int audio_clkout_mux[] = { + AUDIO_CLKOUT_MARK, +}; +static const unsigned int audio_clkout_b_pins[] = { + /* CLKOUT */ + RCAR_GP_PIN(3, 12), +}; +static const unsigned int audio_clkout_b_mux[] = { + AUDIO_CLKOUT_B_MARK, +}; +static const unsigned int audio_clkout_c_pins[] = { + /* CLKOUT */ + RCAR_GP_PIN(4, 23), +}; +static const unsigned int audio_clkout_c_mux[] = { + AUDIO_CLKOUT_C_MARK, +}; /* - ETH -------------------------------------------------------------------- */ static const unsigned int eth_link_pins[] = { /* LINK */ @@ -3169,6 +3261,19 @@ static const unsigned int vin1_clk_mux[] = { }; static const struct sh_pfc_pin_group pinmux_groups[] = { + SH_PFC_PIN_GROUP(audio_clka), + SH_PFC_PIN_GROUP(audio_clka_b), + SH_PFC_PIN_GROUP(audio_clka_c), + SH_PFC_PIN_GROUP(audio_clka_d), + SH_PFC_PIN_GROUP(audio_clkb), + SH_PFC_PIN_GROUP(audio_clkb_b), + SH_PFC_PIN_GROUP(audio_clkb_c), + SH_PFC_PIN_GROUP(audio_clkc), + SH_PFC_PIN_GROUP(audio_clkc_b), + SH_PFC_PIN_GROUP(audio_clkc_c), + SH_PFC_PIN_GROUP(audio_clkout), + SH_PFC_PIN_GROUP(audio_clkout_b), + SH_PFC_PIN_GROUP(audio_clkout_c), SH_PFC_PIN_GROUP(eth_link), SH_PFC_PIN_GROUP(eth_magic), SH_PFC_PIN_GROUP(eth_mdio), @@ -3398,6 +3503,22 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(vin1_clk), }; +static const char * const audio_clk_groups[] = { + "audio_clka", + "audio_clka_b", + "audio_clka_c", + "audio_clka_d", + "audio_clkb", + "audio_clkb_b", + "audio_clkb_c", + "audio_clkc", + "audio_clkc_b", + "audio_clkc_c", + "audio_clkout", + "audio_clkout_b", + "audio_clkout_c", +}; + static const char * const eth_groups[] = { "eth_link", "eth_magic", @@ -3743,6 +3864,7 @@ static const char * const vin1_groups[] = { }; static const struct sh_pfc_function pinmux_functions[] = { + SH_PFC_FUNCTION(audio_clk), SH_PFC_FUNCTION(eth), SH_PFC_FUNCTION(hscif0), SH_PFC_FUNCTION(hscif1), From 146a9a676992e01978d880cb050c0edc161494f4 Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Fri, 29 Jun 2018 15:38:28 +0100 Subject: [PATCH 0400/1149] pinctrl: sh-pfc: r8a7794: Add EtherAVB pin groups Add the EtherAVB pin groups to the R8A7794 PFC driver. Based on the patches by Mitsuhiro Kimura . Signed-off-by: Sergei Shtylyov Signed-off-by: Geert Uytterhoeven (cherry picked from commit 4c96cb027be5ceb2c7c0d4dc086d35fd0cfaf14b) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 123 +++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c index 4a3c7abcf6a6..abcf735e6483 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c @@ -1602,6 +1602,105 @@ static const unsigned int audio_clkout_c_pins[] = { static const unsigned int audio_clkout_c_mux[] = { AUDIO_CLKOUT_C_MARK, }; +/* - AVB -------------------------------------------------------------------- */ +static const unsigned int avb_link_pins[] = { + RCAR_GP_PIN(3, 26), +}; +static const unsigned int avb_link_mux[] = { + AVB_LINK_MARK, +}; +static const unsigned int avb_magic_pins[] = { + RCAR_GP_PIN(3, 27), +}; +static const unsigned int avb_magic_mux[] = { + AVB_MAGIC_MARK, +}; +static const unsigned int avb_phy_int_pins[] = { + RCAR_GP_PIN(3, 28), +}; +static const unsigned int avb_phy_int_mux[] = { + AVB_PHY_INT_MARK, +}; +static const unsigned int avb_mdio_pins[] = { + RCAR_GP_PIN(3, 24), RCAR_GP_PIN(3, 25), +}; +static const unsigned int avb_mdio_mux[] = { + AVB_MDC_MARK, AVB_MDIO_MARK, +}; +static const unsigned int avb_mii_pins[] = { + RCAR_GP_PIN(3, 14), RCAR_GP_PIN(3, 15), RCAR_GP_PIN(3, 16), + RCAR_GP_PIN(3, 17), + + RCAR_GP_PIN(3, 2), RCAR_GP_PIN(3, 3), RCAR_GP_PIN(3, 4), + RCAR_GP_PIN(3, 5), + + RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 0), RCAR_GP_PIN(3, 1), + RCAR_GP_PIN(3, 29), RCAR_GP_PIN(3, 12), RCAR_GP_PIN(3, 22), + RCAR_GP_PIN(3, 13), RCAR_GP_PIN(3, 11), +}; +static const unsigned int avb_mii_mux[] = { + AVB_TXD0_MARK, AVB_TXD1_MARK, AVB_TXD2_MARK, + AVB_TXD3_MARK, + + AVB_RXD0_MARK, AVB_RXD1_MARK, AVB_RXD2_MARK, + AVB_RXD3_MARK, + + AVB_RX_ER_MARK, AVB_RX_CLK_MARK, AVB_RX_DV_MARK, + AVB_CRS_MARK, AVB_TX_EN_MARK, AVB_TX_ER_MARK, + AVB_TX_CLK_MARK, AVB_COL_MARK, +}; +static const unsigned int avb_gmii_pins[] = { + RCAR_GP_PIN(3, 14), RCAR_GP_PIN(3, 15), RCAR_GP_PIN(3, 16), + RCAR_GP_PIN(3, 17), RCAR_GP_PIN(3, 18), RCAR_GP_PIN(3, 19), + RCAR_GP_PIN(3, 20), RCAR_GP_PIN(3, 21), + + RCAR_GP_PIN(3, 2), RCAR_GP_PIN(3, 3), RCAR_GP_PIN(3, 4), + RCAR_GP_PIN(3, 5), RCAR_GP_PIN(3, 6), RCAR_GP_PIN(3, 7), + RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), + + RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 0), RCAR_GP_PIN(3, 1), + RCAR_GP_PIN(3, 29), RCAR_GP_PIN(3, 23), RCAR_GP_PIN(3, 30), + RCAR_GP_PIN(3, 12), RCAR_GP_PIN(3, 22), RCAR_GP_PIN(3, 13), + RCAR_GP_PIN(3, 11), +}; +static const unsigned int avb_gmii_mux[] = { + AVB_TXD0_MARK, AVB_TXD1_MARK, AVB_TXD2_MARK, + AVB_TXD3_MARK, AVB_TXD4_MARK, AVB_TXD5_MARK, + AVB_TXD6_MARK, AVB_TXD7_MARK, + + AVB_RXD0_MARK, AVB_RXD1_MARK, AVB_RXD2_MARK, + AVB_RXD3_MARK, AVB_RXD4_MARK, AVB_RXD5_MARK, + AVB_RXD6_MARK, AVB_RXD7_MARK, + + AVB_RX_ER_MARK, AVB_RX_CLK_MARK, AVB_RX_DV_MARK, + AVB_CRS_MARK, AVB_GTX_CLK_MARK, AVB_GTXREFCLK_MARK, + AVB_TX_EN_MARK, AVB_TX_ER_MARK, AVB_TX_CLK_MARK, + AVB_COL_MARK, +}; +static const unsigned int avb_avtp_capture_pins[] = { + RCAR_GP_PIN(5, 11), +}; +static const unsigned int avb_avtp_capture_mux[] = { + AVB_AVTP_CAPTURE_MARK, +}; +static const unsigned int avb_avtp_match_pins[] = { + RCAR_GP_PIN(5, 12), +}; +static const unsigned int avb_avtp_match_mux[] = { + AVB_AVTP_MATCH_MARK, +}; +static const unsigned int avb_avtp_capture_b_pins[] = { + RCAR_GP_PIN(1, 1), +}; +static const unsigned int avb_avtp_capture_b_mux[] = { + AVB_AVTP_CAPTURE_B_MARK, +}; +static const unsigned int avb_avtp_match_b_pins[] = { + RCAR_GP_PIN(1, 2), +}; +static const unsigned int avb_avtp_match_b_mux[] = { + AVB_AVTP_MATCH_B_MARK, +}; /* - ETH -------------------------------------------------------------------- */ static const unsigned int eth_link_pins[] = { /* LINK */ @@ -3274,6 +3373,16 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(audio_clkout), SH_PFC_PIN_GROUP(audio_clkout_b), SH_PFC_PIN_GROUP(audio_clkout_c), + SH_PFC_PIN_GROUP(avb_link), + SH_PFC_PIN_GROUP(avb_magic), + SH_PFC_PIN_GROUP(avb_phy_int), + SH_PFC_PIN_GROUP(avb_mdio), + SH_PFC_PIN_GROUP(avb_mii), + SH_PFC_PIN_GROUP(avb_gmii), + SH_PFC_PIN_GROUP(avb_avtp_capture), + SH_PFC_PIN_GROUP(avb_avtp_match), + SH_PFC_PIN_GROUP(avb_avtp_capture_b), + SH_PFC_PIN_GROUP(avb_avtp_match_b), SH_PFC_PIN_GROUP(eth_link), SH_PFC_PIN_GROUP(eth_magic), SH_PFC_PIN_GROUP(eth_mdio), @@ -3519,6 +3628,19 @@ static const char * const audio_clk_groups[] = { "audio_clkout_c", }; +static const char * const avb_groups[] = { + "avb_link", + "avb_magic", + "avb_phy_int", + "avb_mdio", + "avb_mii", + "avb_gmii", + "avb_avtp_capture", + "avb_avtp_match", + "avb_avtp_capture_b", + "avb_avtp_match_b", +}; + static const char * const eth_groups[] = { "eth_link", "eth_magic", @@ -3865,6 +3987,7 @@ static const char * const vin1_groups[] = { static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(audio_clk), + SH_PFC_FUNCTION(avb), SH_PFC_FUNCTION(eth), SH_PFC_FUNCTION(hscif0), SH_PFC_FUNCTION(hscif1), From 54fac2d93b1790d4e3edfe7a0477f4586dd71e80 Mon Sep 17 00:00:00 2001 From: Andrey Gusakov Date: Fri, 29 Jun 2018 15:38:29 +0100 Subject: [PATCH 0401/1149] pinctrl: sh-pfc: r8a7794: Fix GP2[29] muxing GP2[29] muxing is controlled by 2-bit IP6[3:2] field, yet only 3 values are listed instead of 4... [Sergei: fixed up the formatting, renamed, added the changelog.] Signed-off-by: Andrey Gusakov Signed-off-by: Sergei Shtylyov Signed-off-by: Geert Uytterhoeven (cherry picked from commit abf05e1900a355e5d5bf2ec35ede6261affb6328) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c index abcf735e6483..4524fb8b48f1 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c @@ -4549,6 +4549,7 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { FN_DU0_DISP, FN_QPOLA, FN_CC50_STATE30, 0, /* IP6_3_2 [2] */ FN_DU0_EXODDF_DU0_ODDF_DISP_CDE, FN_QCPV_QDE, FN_CC50_STATE29, + 0, /* IP6_1_0 [2] */ FN_DU0_EXVSYNC_DU0_VSYNC, FN_QSTB_QHE, FN_CC50_STATE28, 0, } }, From f8aa494428a4fdd12f261a1bd28bef403e86dfc0 Mon Sep 17 00:00:00 2001 From: Koji Matsuoka Date: Fri, 29 Jun 2018 15:38:30 +0100 Subject: [PATCH 0402/1149] pinctrl: sh-pfc: r8a7794: Add DU pin groups r8a7794 PFC DU support from the R-Car Gen2 v1.9.4 BSP [Magnus: added the description, added missing dot clock output signals, separated CDE and DISP signals, broke out the ODDF signal from the sync group.] [Sergei: resolved rejects, folded in Magnus' patches, killed empty lines, reordered pin/mux arrays and pin groups, fixed up some comments to the pin arrays, removed the "du" function splitting its groups between the "du0" and "du1" functions.] Signed-off-by: Koji Matsuoka Signed-off-by: Magnus Damm Signed-off-by: Sergei Shtylyov Signed-off-by: Geert Uytterhoeven (cherry picked from commit 56ed4bb984acbba9cfe080e45ac4b50ca63dd188) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 217 +++++++++++++++++++++++++++ 1 file changed, 217 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c index 4524fb8b48f1..a47843e011d3 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c @@ -1701,6 +1701,179 @@ static const unsigned int avb_avtp_match_b_pins[] = { static const unsigned int avb_avtp_match_b_mux[] = { AVB_AVTP_MATCH_B_MARK, }; +/* - DU --------------------------------------------------------------------- */ +static const unsigned int du0_rgb666_pins[] = { + /* R[7:2], G[7:2], B[7:2] */ + RCAR_GP_PIN(2, 7), RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 5), + RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 3), RCAR_GP_PIN(2, 2), + RCAR_GP_PIN(2, 15), RCAR_GP_PIN(2, 14), RCAR_GP_PIN(2, 13), + RCAR_GP_PIN(2, 12), RCAR_GP_PIN(2, 11), RCAR_GP_PIN(2, 10), + RCAR_GP_PIN(2, 23), RCAR_GP_PIN(2, 22), RCAR_GP_PIN(2, 21), + RCAR_GP_PIN(2, 20), RCAR_GP_PIN(2, 19), RCAR_GP_PIN(2, 18), +}; +static const unsigned int du0_rgb666_mux[] = { + DU0_DR7_MARK, DU0_DR6_MARK, DU0_DR5_MARK, DU0_DR4_MARK, + DU0_DR3_MARK, DU0_DR2_MARK, + DU0_DG7_MARK, DU0_DG6_MARK, DU0_DG5_MARK, DU0_DG4_MARK, + DU0_DG3_MARK, DU0_DG2_MARK, + DU0_DB7_MARK, DU0_DB6_MARK, DU0_DB5_MARK, DU0_DB4_MARK, + DU0_DB3_MARK, DU0_DB2_MARK, +}; +static const unsigned int du0_rgb888_pins[] = { + /* R[7:0], G[7:0], B[7:0] */ + RCAR_GP_PIN(2, 7), RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 5), + RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 3), RCAR_GP_PIN(2, 2), + RCAR_GP_PIN(2, 1), RCAR_GP_PIN(2, 0), + RCAR_GP_PIN(2, 15), RCAR_GP_PIN(2, 14), RCAR_GP_PIN(2, 13), + RCAR_GP_PIN(2, 12), RCAR_GP_PIN(2, 11), RCAR_GP_PIN(2, 10), + RCAR_GP_PIN(2, 9), RCAR_GP_PIN(2, 8), + RCAR_GP_PIN(2, 23), RCAR_GP_PIN(2, 22), RCAR_GP_PIN(2, 21), + RCAR_GP_PIN(2, 20), RCAR_GP_PIN(2, 19), RCAR_GP_PIN(2, 18), + RCAR_GP_PIN(2, 17), RCAR_GP_PIN(2, 16), +}; +static const unsigned int du0_rgb888_mux[] = { + DU0_DR7_MARK, DU0_DR6_MARK, DU0_DR5_MARK, DU0_DR4_MARK, + DU0_DR3_MARK, DU0_DR2_MARK, DU0_DR1_MARK, DU0_DR0_MARK, + DU0_DG7_MARK, DU0_DG6_MARK, DU0_DG5_MARK, DU0_DG4_MARK, + DU0_DG3_MARK, DU0_DG2_MARK, DU0_DG1_MARK, DU0_DG0_MARK, + DU0_DB7_MARK, DU0_DB6_MARK, DU0_DB5_MARK, DU0_DB4_MARK, + DU0_DB3_MARK, DU0_DB2_MARK, DU0_DB1_MARK, DU0_DB0_MARK, +}; +static const unsigned int du0_clk0_out_pins[] = { + /* DOTCLKOUT0 */ + RCAR_GP_PIN(2, 25), +}; +static const unsigned int du0_clk0_out_mux[] = { + DU0_DOTCLKOUT0_MARK +}; +static const unsigned int du0_clk1_out_pins[] = { + /* DOTCLKOUT1 */ + RCAR_GP_PIN(2, 26), +}; +static const unsigned int du0_clk1_out_mux[] = { + DU0_DOTCLKOUT1_MARK +}; +static const unsigned int du0_clk_in_pins[] = { + /* CLKIN */ + RCAR_GP_PIN(2, 24), +}; +static const unsigned int du0_clk_in_mux[] = { + DU0_DOTCLKIN_MARK +}; +static const unsigned int du0_sync_pins[] = { + /* EXVSYNC/VSYNC, EXHSYNC/HSYNC */ + RCAR_GP_PIN(2, 28), RCAR_GP_PIN(2, 27), +}; +static const unsigned int du0_sync_mux[] = { + DU0_EXVSYNC_DU0_VSYNC_MARK, DU0_EXHSYNC_DU0_HSYNC_MARK +}; +static const unsigned int du0_oddf_pins[] = { + /* EXODDF/ODDF/DISP/CDE */ + RCAR_GP_PIN(2, 29), +}; +static const unsigned int du0_oddf_mux[] = { + DU0_EXODDF_DU0_ODDF_DISP_CDE_MARK, +}; +static const unsigned int du0_cde_pins[] = { + /* CDE */ + RCAR_GP_PIN(2, 31), +}; +static const unsigned int du0_cde_mux[] = { + DU0_CDE_MARK, +}; +static const unsigned int du0_disp_pins[] = { + /* DISP */ + RCAR_GP_PIN(2, 30), +}; +static const unsigned int du0_disp_mux[] = { + DU0_DISP_MARK +}; +static const unsigned int du1_rgb666_pins[] = { + /* R[7:2], G[7:2], B[7:2] */ + RCAR_GP_PIN(4, 7), RCAR_GP_PIN(4, 6), RCAR_GP_PIN(4, 5), + RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 3), RCAR_GP_PIN(4, 2), + RCAR_GP_PIN(4, 15), RCAR_GP_PIN(4, 14), RCAR_GP_PIN(4, 13), + RCAR_GP_PIN(4, 12), RCAR_GP_PIN(4, 11), RCAR_GP_PIN(4, 10), + RCAR_GP_PIN(4, 23), RCAR_GP_PIN(4, 22), RCAR_GP_PIN(4, 21), + RCAR_GP_PIN(4, 20), RCAR_GP_PIN(4, 19), RCAR_GP_PIN(4, 18), +}; +static const unsigned int du1_rgb666_mux[] = { + DU1_DR7_MARK, DU1_DR6_MARK, DU1_DR5_MARK, DU1_DR4_MARK, + DU1_DR3_MARK, DU1_DR2_MARK, + DU1_DG7_MARK, DU1_DG6_MARK, DU1_DG5_MARK, DU1_DG4_MARK, + DU1_DG3_MARK, DU1_DG2_MARK, + DU1_DB7_MARK, DU1_DB6_MARK, DU1_DB5_MARK, DU1_DB4_MARK, + DU1_DB3_MARK, DU1_DB2_MARK, +}; +static const unsigned int du1_rgb888_pins[] = { + /* R[7:0], G[7:0], B[7:0] */ + RCAR_GP_PIN(4, 7), RCAR_GP_PIN(4, 6), RCAR_GP_PIN(4, 5), + RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 3), RCAR_GP_PIN(4, 2), + RCAR_GP_PIN(4, 1), RCAR_GP_PIN(4, 0), + RCAR_GP_PIN(4, 15), RCAR_GP_PIN(4, 14), RCAR_GP_PIN(4, 13), + RCAR_GP_PIN(4, 12), RCAR_GP_PIN(4, 11), RCAR_GP_PIN(4, 10), + RCAR_GP_PIN(4, 9), RCAR_GP_PIN(4, 8), + RCAR_GP_PIN(4, 23), RCAR_GP_PIN(4, 22), RCAR_GP_PIN(4, 21), + RCAR_GP_PIN(4, 20), RCAR_GP_PIN(4, 19), RCAR_GP_PIN(4, 18), + RCAR_GP_PIN(4, 17), RCAR_GP_PIN(4, 16), +}; +static const unsigned int du1_rgb888_mux[] = { + DU1_DR7_MARK, DU1_DR6_MARK, DU1_DR5_MARK, DU1_DR4_MARK, + DU1_DR3_MARK, DU1_DR2_MARK, DU1_DR1_MARK, DU1_DR0_MARK, + DU1_DG7_MARK, DU1_DG6_MARK, DU1_DG5_MARK, DU1_DG4_MARK, + DU1_DG3_MARK, DU1_DG2_MARK, DU1_DG1_MARK, DU1_DG0_MARK, + DU1_DB7_MARK, DU1_DB6_MARK, DU1_DB5_MARK, DU1_DB4_MARK, + DU1_DB3_MARK, DU1_DB2_MARK, DU1_DB1_MARK, DU1_DB0_MARK, +}; +static const unsigned int du1_clk0_out_pins[] = { + /* DOTCLKOUT0 */ + RCAR_GP_PIN(4, 25), +}; +static const unsigned int du1_clk0_out_mux[] = { + DU1_DOTCLKOUT0_MARK +}; +static const unsigned int du1_clk1_out_pins[] = { + /* DOTCLKOUT1 */ + RCAR_GP_PIN(4, 26), +}; +static const unsigned int du1_clk1_out_mux[] = { + DU1_DOTCLKOUT1_MARK +}; +static const unsigned int du1_clk_in_pins[] = { + /* DOTCLKIN */ + RCAR_GP_PIN(4, 24), +}; +static const unsigned int du1_clk_in_mux[] = { + DU1_DOTCLKIN_MARK +}; +static const unsigned int du1_sync_pins[] = { + /* EXVSYNC/VSYNC, EXHSYNC/HSYNC */ + RCAR_GP_PIN(4, 28), RCAR_GP_PIN(4, 27), +}; +static const unsigned int du1_sync_mux[] = { + DU1_EXVSYNC_DU1_VSYNC_MARK, DU1_EXHSYNC_DU1_HSYNC_MARK +}; +static const unsigned int du1_oddf_pins[] = { + /* EXODDF/ODDF/DISP/CDE */ + RCAR_GP_PIN(4, 29), +}; +static const unsigned int du1_oddf_mux[] = { + DU1_EXODDF_DU1_ODDF_DISP_CDE_MARK, +}; +static const unsigned int du1_cde_pins[] = { + /* CDE */ + RCAR_GP_PIN(4, 31), +}; +static const unsigned int du1_cde_mux[] = { + DU1_CDE_MARK +}; +static const unsigned int du1_disp_pins[] = { + /* DISP */ + RCAR_GP_PIN(4, 30), +}; +static const unsigned int du1_disp_mux[] = { + DU1_DISP_MARK +}; /* - ETH -------------------------------------------------------------------- */ static const unsigned int eth_link_pins[] = { /* LINK */ @@ -3383,6 +3556,24 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(avb_avtp_match), SH_PFC_PIN_GROUP(avb_avtp_capture_b), SH_PFC_PIN_GROUP(avb_avtp_match_b), + SH_PFC_PIN_GROUP(du0_rgb666), + SH_PFC_PIN_GROUP(du0_rgb888), + SH_PFC_PIN_GROUP(du0_clk0_out), + SH_PFC_PIN_GROUP(du0_clk1_out), + SH_PFC_PIN_GROUP(du0_clk_in), + SH_PFC_PIN_GROUP(du0_sync), + SH_PFC_PIN_GROUP(du0_oddf), + SH_PFC_PIN_GROUP(du0_cde), + SH_PFC_PIN_GROUP(du0_disp), + SH_PFC_PIN_GROUP(du1_rgb666), + SH_PFC_PIN_GROUP(du1_rgb888), + SH_PFC_PIN_GROUP(du1_clk0_out), + SH_PFC_PIN_GROUP(du1_clk1_out), + SH_PFC_PIN_GROUP(du1_clk_in), + SH_PFC_PIN_GROUP(du1_sync), + SH_PFC_PIN_GROUP(du1_oddf), + SH_PFC_PIN_GROUP(du1_cde), + SH_PFC_PIN_GROUP(du1_disp), SH_PFC_PIN_GROUP(eth_link), SH_PFC_PIN_GROUP(eth_magic), SH_PFC_PIN_GROUP(eth_mdio), @@ -3641,6 +3832,30 @@ static const char * const avb_groups[] = { "avb_avtp_match_b", }; +static const char * const du0_groups[] = { + "du0_rgb666", + "du0_rgb888", + "du0_clk0_out", + "du0_clk1_out", + "du0_clk_in", + "du0_sync", + "du0_oddf", + "du0_cde", + "du0_disp", +}; + +static const char * const du1_groups[] = { + "du1_rgb666", + "du1_rgb888", + "du1_clk0_out", + "du1_clk1_out", + "du1_clk_in", + "du1_sync", + "du1_oddf", + "du1_cde", + "du1_disp", +}; + static const char * const eth_groups[] = { "eth_link", "eth_magic", @@ -3988,6 +4203,8 @@ static const char * const vin1_groups[] = { static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(audio_clk), SH_PFC_FUNCTION(avb), + SH_PFC_FUNCTION(du0), + SH_PFC_FUNCTION(du1), SH_PFC_FUNCTION(eth), SH_PFC_FUNCTION(hscif0), SH_PFC_FUNCTION(hscif1), From f5ffef6f9d0f9e647ac3d37d3ea46230fee5950b Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Fri, 29 Jun 2018 15:38:31 +0100 Subject: [PATCH 0403/1149] pinctrl: sh-pfc: r8a7794: Swap ATA signals All R8A7794 manuals I have here (0.50 and 1.10) agree that the PFC driver has ATAG0# and ATAWR0# signals in IPSR12 swapped -- fix this. Fixes: 43c4436e2f18 ("pinctrl: sh-pfc: add R8A7794 PFC support") Signed-off-by: Sergei Shtylyov Signed-off-by: Geert Uytterhoeven (cherry picked from commit 5f4c8cafe1148f8a91287072815df8f0b66f0e5c) (replaced PINMUX_IPSR_GPSR with PINMUX_IPSR_DATA) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c index a47843e011d3..21d8b025c235 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c @@ -298,8 +298,8 @@ enum { FN_AVB_AVTP_CAPTURE, FN_ETH_CRS_DV_B, FN_SSI_WS1, FN_SCIF1_TXD_B, FN_IIC1_SDA_C, FN_VI1_DATA0, FN_CAN0_TX_D, FN_AVB_AVTP_MATCH, FN_ETH_RX_ER_B, FN_SSI_SDATA1, FN_HSCIF1_HRX_B, FN_SDATA, FN_VI1_DATA1, - FN_ATAG0_N, FN_ETH_RXD0_B, FN_SSI_SCK2, FN_HSCIF1_HTX_B, FN_VI1_DATA2, - FN_MDATA, FN_ATAWR0_N, FN_ETH_RXD1_B, + FN_ATAWR0_N, FN_ETH_RXD0_B, FN_SSI_SCK2, FN_HSCIF1_HTX_B, FN_VI1_DATA2, + FN_MDATA, FN_ATAG0_N, FN_ETH_RXD1_B, /* IPSR13 */ FN_SSI_WS2, FN_HSCIF1_HCTS_N_B, FN_SCIFA0_RXD_D, FN_VI1_DATA3, FN_SCKZ, @@ -592,8 +592,8 @@ enum { ETH_CRS_DV_B_MARK, SSI_WS1_MARK, SCIF1_TXD_B_MARK, IIC1_SDA_C_MARK, VI1_DATA0_MARK, CAN0_TX_D_MARK, AVB_AVTP_MATCH_MARK, ETH_RX_ER_B_MARK, SSI_SDATA1_MARK, HSCIF1_HRX_B_MARK, VI1_DATA1_MARK, SDATA_MARK, - ATAG0_N_MARK, ETH_RXD0_B_MARK, SSI_SCK2_MARK, HSCIF1_HTX_B_MARK, - VI1_DATA2_MARK, MDATA_MARK, ATAWR0_N_MARK, ETH_RXD1_B_MARK, + ATAWR0_N_MARK, ETH_RXD0_B_MARK, SSI_SCK2_MARK, HSCIF1_HTX_B_MARK, + VI1_DATA2_MARK, MDATA_MARK, ATAG0_N_MARK, ETH_RXD1_B_MARK, /* IPSR13 */ SSI_WS2_MARK, HSCIF1_HCTS_N_B_MARK, SCIFA0_RXD_D_MARK, VI1_DATA3_MARK, @@ -1430,13 +1430,13 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP12_26_24, HSCIF1_HRX_B, SEL_HSCIF1_1), PINMUX_IPSR_DATA(IP12_26_24, VI1_DATA1), PINMUX_IPSR_MSEL(IP12_26_24, SDATA, SEL_FSN_0), - PINMUX_IPSR_DATA(IP12_26_24, ATAG0_N), + PINMUX_IPSR_DATA(IP12_26_24, ATAWR0_N), PINMUX_IPSR_MSEL(IP12_26_24, ETH_RXD0_B, SEL_ETH_1), PINMUX_IPSR_MSEL(IP12_29_27, SSI_SCK2, SEL_SSI2_0), PINMUX_IPSR_MSEL(IP12_29_27, HSCIF1_HTX_B, SEL_HSCIF1_1), PINMUX_IPSR_DATA(IP12_29_27, VI1_DATA2), PINMUX_IPSR_MSEL(IP12_29_27, MDATA, SEL_FSN_0), - PINMUX_IPSR_DATA(IP12_29_27, ATAWR0_N), + PINMUX_IPSR_DATA(IP12_29_27, ATAG0_N), PINMUX_IPSR_MSEL(IP12_29_27, ETH_RXD1_B, SEL_ETH_1), /* IPSR13 */ @@ -4955,10 +4955,10 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { 0, 0, 0, 0, /* IP12_29_27 [3] */ FN_SSI_SCK2, FN_HSCIF1_HTX_B, FN_VI1_DATA2, FN_MDATA, - FN_ATAWR0_N, FN_ETH_RXD1_B, 0, 0, + FN_ATAG0_N, FN_ETH_RXD1_B, 0, 0, /* IP12_26_24 [3] */ FN_SSI_SDATA1, FN_HSCIF1_HRX_B, FN_VI1_DATA1, FN_SDATA, - FN_ATAG0_N, FN_ETH_RXD0_B, 0, 0, + FN_ATAWR0_N, FN_ETH_RXD0_B, 0, 0, /* IP12_23_21 [3] */ FN_SSI_WS1, FN_SCIF1_TXD_B, FN_IIC1_SDA_C, FN_VI1_DATA0, FN_CAN0_TX_D, FN_AVB_AVTP_MATCH, FN_ETH_RX_ER_B, 0, From d6c7b4dabedee98b9710b3e029b6a6a851c4bc43 Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Fri, 29 Jun 2018 15:38:32 +0100 Subject: [PATCH 0404/1149] pinctrl: sh-pfc: r8a7794: Rename some I2C signals The R8A7794 PFC driver was apparently based on the preliminary revisions of the user's manual which called I2C5 device IIC0 and IIC0 device IIC1. Luckily, these signals haven't been used for any functions/groups so far, so the renaming should be painless.. Signed-off-by: Sergei Shtylyov Signed-off-by: Geert Uytterhoeven (cherry picked from commit 5128238dd7ce76ca13e5621eab3060296796ce6b) (replaced PINMUX_IPSR_GPSR with PINMUX_IPSR_DATA) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 138 +++++++++++++-------------- 1 file changed, 69 insertions(+), 69 deletions(-) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c index 21d8b025c235..77f4908b1ef9 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c @@ -128,7 +128,7 @@ enum { FN_PWM5_C, FN_D11, FN_HSCIF2_HCTS_N, FN_SCIF1_RXD_C, FN_I2C1_SCL_D, FN_D12, FN_HSCIF2_HRTS_N, FN_SCIF1_TXD_C, FN_I2C1_SDA_D, FN_D13, FN_SCIFA1_SCK, FN_TANS1, FN_PWM2_C, FN_TCLK2_B, FN_D14, FN_SCIFA1_RXD, - FN_IIC0_SCL_B, FN_D15, FN_SCIFA1_TXD, FN_IIC0_SDA_B, FN_A0, + FN_I2C5_SCL_B, FN_D15, FN_SCIFA1_TXD, FN_I2C5_SDA_B, FN_A0, FN_SCIFB1_SCK, FN_PWM3_B, FN_A1, FN_SCIFB1_TXD, FN_A3, FN_SCIFB0_SCK, FN_A4, FN_SCIFB0_TXD, FN_A5, FN_SCIFB0_RXD, FN_PWM4_B, FN_TPUTO3_C, FN_A6, FN_SCIFB0_CTS_N, FN_SCIFA4_RXD_B, FN_TPUTO2_C, @@ -136,7 +136,7 @@ enum { /* IPSR2 */ FN_A7, FN_SCIFB0_RTS_N, FN_SCIFA4_TXD_B, FN_A8, FN_MSIOF1_RXD, FN_SCIFA0_RXD_B, FN_A9, FN_MSIOF1_TXD, FN_SCIFA0_TXD_B, FN_A10, - FN_MSIOF1_SCK, FN_IIC1_SCL_B, FN_A11, FN_MSIOF1_SYNC, FN_IIC1_SDA_B, + FN_MSIOF1_SCK, FN_IIC0_SCL_B, FN_A11, FN_MSIOF1_SYNC, FN_IIC0_SDA_B, FN_A12, FN_MSIOF1_SS1, FN_SCIFA5_RXD_B, FN_A13, FN_MSIOF1_SS2, FN_SCIFA5_TXD_B, FN_A14, FN_MSIOF2_RXD, FN_HSCIF0_HRX_B, FN_DREQ1_N, FN_A15, FN_MSIOF2_TXD, FN_HSCIF0_HTX_B, FN_DACK1, FN_A16, @@ -200,11 +200,11 @@ enum { FN_I2C3_SDA, FN_SCIFA5_TXD_C, FN_IECLK_C, FN_AVB_RX_ER, FN_VI0_HSYNC_N, FN_SCIF0_RXD_B, FN_I2C0_SCL_C, FN_IERX_C, FN_AVB_COL, FN_VI0_VSYNC_N, FN_SCIF0_TXD_B, FN_I2C0_SDA_C, FN_AUDIO_CLKOUT_B, FN_AVB_TX_EN, - FN_ETH_MDIO, FN_VI0_G0, FN_MSIOF2_RXD_B, FN_IIC0_SCL_D, FN_AVB_TX_CLK, + FN_ETH_MDIO, FN_VI0_G0, FN_MSIOF2_RXD_B, FN_I2C5_SCL_D, FN_AVB_TX_CLK, FN_ADIDATA, FN_AD_DI, /* IPSR7 */ - FN_ETH_CRS_DV, FN_VI0_G1, FN_MSIOF2_TXD_B, FN_IIC0_SDA_D, FN_AVB_TXD0, + FN_ETH_CRS_DV, FN_VI0_G1, FN_MSIOF2_TXD_B, FN_I2C5_SDA_D, FN_AVB_TXD0, FN_ADICS_SAMP, FN_AD_DO, FN_ETH_RX_ER, FN_VI0_G2, FN_MSIOF2_SCK_B, FN_CAN0_RX_B, FN_AVB_TXD1, FN_ADICLK, FN_AD_CLK, FN_ETH_RXD0, FN_VI0_G3, FN_MSIOF2_SYNC_B, FN_CAN0_TX_B, FN_AVB_TXD2, FN_ADICHS0, FN_AD_NCS_N, @@ -212,8 +212,8 @@ enum { FN_ADICHS1, FN_ETH_LINK, FN_VI0_G5, FN_MSIOF2_SS2_B, FN_SCIF4_TXD_D, FN_AVB_TXD4, FN_ADICHS2, FN_ETH_REFCLK, FN_VI0_G6, FN_SCIF2_SCK_C, FN_AVB_TXD5, FN_SSI_SCK5_B, FN_ETH_TXD1, FN_VI0_G7, FN_SCIF2_RXD_C, - FN_IIC1_SCL_D, FN_AVB_TXD6, FN_SSI_WS5_B, FN_ETH_TX_EN, FN_VI0_R0, - FN_SCIF2_TXD_C, FN_IIC1_SDA_D, FN_AVB_TXD7, FN_SSI_SDATA5_B, + FN_IIC0_SCL_D, FN_AVB_TXD6, FN_SSI_WS5_B, FN_ETH_TX_EN, FN_VI0_R0, + FN_SCIF2_TXD_C, FN_IIC0_SDA_D, FN_AVB_TXD7, FN_SSI_SDATA5_B, FN_ETH_MAGIC, FN_VI0_R1, FN_SCIF3_SCK_B, FN_AVB_TX_ER, FN_SSI_SCK6_B, FN_ETH_TXD0, FN_VI0_R2, FN_SCIF3_RXD_B, FN_I2C4_SCL_E, FN_AVB_GTX_CLK, FN_SSI_WS6_B, FN_DREQ0_N, FN_SCIFB1_RXD, @@ -252,11 +252,11 @@ enum { FN_DU1_DG5, FN_SSI_SDATA1_B, FN_CAN_TXCLK, FN_CC50_STATE34, /* IPSR10 */ - FN_SCIF1_RXD, FN_IIC0_SCL, FN_DU1_DG6, FN_SSI_SCK2_B, FN_CAN_DEBUGOUT0, - FN_CC50_STATE35, FN_SCIF1_TXD, FN_IIC0_SDA, FN_DU1_DG7, FN_SSI_WS2_B, - FN_CAN_DEBUGOUT1, FN_CC50_STATE36, FN_SCIF2_RXD, FN_IIC1_SCL, + FN_SCIF1_RXD, FN_I2C5_SCL, FN_DU1_DG6, FN_SSI_SCK2_B, FN_CAN_DEBUGOUT0, + FN_CC50_STATE35, FN_SCIF1_TXD, FN_I2C5_SDA, FN_DU1_DG7, FN_SSI_WS2_B, + FN_CAN_DEBUGOUT1, FN_CC50_STATE36, FN_SCIF2_RXD, FN_IIC0_SCL, FN_DU1_DB0, FN_SSI_SDATA2_B, FN_USB0_EXTLP, FN_CAN_DEBUGOUT2, - FN_CC50_STATE37, FN_SCIF2_TXD, FN_IIC1_SDA, FN_DU1_DB1, FN_SSI_SCK9_B, + FN_CC50_STATE37, FN_SCIF2_TXD, FN_IIC0_SDA, FN_DU1_DB1, FN_SSI_SCK9_B, FN_USB0_OVC1, FN_CAN_DEBUGOUT3, FN_CC50_STATE38, FN_SCIF2_SCK, FN_IRQ1, FN_DU1_DB2, FN_SSI_WS9_B, FN_USB0_IDIN, FN_CAN_DEBUGOUT4, FN_CC50_STATE39, FN_SCIF3_SCK, FN_IRQ2, FN_BPFCLK_D, FN_DU1_DB3, @@ -277,8 +277,8 @@ enum { FN_SCIFA1_RXD_B, FN_I2C4_SCL_C, FN_DU1_EXVSYNC_DU1_VSYNC, FN_CAN_DEBUGOUT14, FN_SSI_SDATA6, FN_SCIFA1_TXD_B, FN_I2C4_SDA_C, FN_DU1_EXODDF_DU1_ODDF_DISP_CDE, FN_CAN_DEBUGOUT15, FN_SSI_SCK78, - FN_SCIFA2_SCK_B, FN_IIC0_SDA_C, FN_DU1_DISP, FN_SSI_WS78, - FN_SCIFA2_RXD_B, FN_IIC0_SCL_C, FN_DU1_CDE, FN_SSI_SDATA7, + FN_SCIFA2_SCK_B, FN_I2C5_SDA_C, FN_DU1_DISP, FN_SSI_WS78, + FN_SCIFA2_RXD_B, FN_I2C5_SCL_C, FN_DU1_CDE, FN_SSI_SDATA7, FN_SCIFA2_TXD_B, FN_IRQ8, FN_AUDIO_CLKA_D, FN_CAN_CLK_D, FN_PCMOE_N, FN_SSI_SCK0129, FN_MSIOF1_RXD_B, FN_SCIF5_RXD_D, FN_ADIDATA_B, FN_AD_DI_B, FN_PCMWE_N, FN_SSI_WS0129, FN_MSIOF1_TXD_B, FN_SCIF5_TXD_D, @@ -294,9 +294,9 @@ enum { FN_MLB_SIG, FN_IECLK_B, FN_IRD_RX, FN_SSI_SDATA4, FN_MLB_DAT, FN_IERX_B, FN_IRD_SCK, FN_SSI_SDATA8, FN_SCIF1_SCK_B, FN_PWM1_B, FN_IRQ9, FN_REMOCON, FN_DACK2, FN_ETH_MDIO_B, FN_SSI_SCK1, - FN_SCIF1_RXD_B, FN_IIC1_SCL_C, FN_VI1_CLK, FN_CAN0_RX_D, + FN_SCIF1_RXD_B, FN_IIC0_SCL_C, FN_VI1_CLK, FN_CAN0_RX_D, FN_AVB_AVTP_CAPTURE, FN_ETH_CRS_DV_B, FN_SSI_WS1, FN_SCIF1_TXD_B, - FN_IIC1_SDA_C, FN_VI1_DATA0, FN_CAN0_TX_D, FN_AVB_AVTP_MATCH, + FN_IIC0_SDA_C, FN_VI1_DATA0, FN_CAN0_TX_D, FN_AVB_AVTP_MATCH, FN_ETH_RX_ER_B, FN_SSI_SDATA1, FN_HSCIF1_HRX_B, FN_SDATA, FN_VI1_DATA1, FN_ATAWR0_N, FN_ETH_RXD0_B, FN_SSI_SCK2, FN_HSCIF1_HTX_B, FN_VI1_DATA2, FN_MDATA, FN_ATAG0_N, FN_ETH_RXD1_B, @@ -331,12 +331,12 @@ enum { FN_SEL_I2C02_1, FN_SEL_I2C02_2, FN_SEL_I2C02_3, FN_SEL_I2C02_4, FN_SEL_I2C03_0, FN_SEL_I2C03_1, FN_SEL_I2C03_2, FN_SEL_I2C03_3, FN_SEL_I2C03_4, FN_SEL_I2C04_0, FN_SEL_I2C04_1, FN_SEL_I2C04_2, - FN_SEL_I2C04_3, FN_SEL_I2C04_4, FN_SEL_IIC00_0, FN_SEL_IIC00_1, - FN_SEL_IIC00_2, FN_SEL_IIC00_3, FN_SEL_AVB_0, FN_SEL_AVB_1, + FN_SEL_I2C04_3, FN_SEL_I2C04_4, FN_SEL_I2C05_0, FN_SEL_I2C05_1, + FN_SEL_I2C05_2, FN_SEL_I2C05_3, FN_SEL_AVB_0, FN_SEL_AVB_1, /* MOD_SEL2 */ - FN_SEL_IEB_0, FN_SEL_IEB_1, FN_SEL_IEB_2, FN_SEL_IIC01_0, - FN_SEL_IIC01_1, FN_SEL_IIC01_2, FN_SEL_IIC01_3, FN_SEL_LBS_0, + FN_SEL_IEB_0, FN_SEL_IEB_1, FN_SEL_IEB_2, FN_SEL_IIC0_0, + FN_SEL_IIC0_1, FN_SEL_IIC0_2, FN_SEL_IIC0_3, FN_SEL_LBS_0, FN_SEL_LBS_1, FN_SEL_MSI1_0, FN_SEL_MSI1_1, FN_SEL_MSI2_0, FN_SEL_MSI2_1, FN_SEL_RAD_0, FN_SEL_RAD_1, FN_SEL_RCN_0, FN_SEL_RCN_1, FN_SEL_RSP_0, FN_SEL_RSP_1, FN_SEL_SCIFA0_0, @@ -396,8 +396,8 @@ enum { D11_MARK, HSCIF2_HCTS_N_MARK, SCIF1_RXD_C_MARK, I2C1_SCL_D_MARK, D12_MARK, HSCIF2_HRTS_N_MARK, SCIF1_TXD_C_MARK, I2C1_SDA_D_MARK, D13_MARK, SCIFA1_SCK_MARK, TANS1_MARK, PWM2_C_MARK, TCLK2_B_MARK, - D14_MARK, SCIFA1_RXD_MARK, IIC0_SCL_B_MARK, D15_MARK, SCIFA1_TXD_MARK, - IIC0_SDA_B_MARK, A0_MARK, SCIFB1_SCK_MARK, PWM3_B_MARK, A1_MARK, + D14_MARK, SCIFA1_RXD_MARK, I2C5_SCL_B_MARK, D15_MARK, SCIFA1_TXD_MARK, + I2C5_SDA_B_MARK, A0_MARK, SCIFB1_SCK_MARK, PWM3_B_MARK, A1_MARK, SCIFB1_TXD_MARK, A3_MARK, SCIFB0_SCK_MARK, A4_MARK, SCIFB0_TXD_MARK, A5_MARK, SCIFB0_RXD_MARK, PWM4_B_MARK, TPUTO3_C_MARK, A6_MARK, SCIFB0_CTS_N_MARK, SCIFA4_RXD_B_MARK, TPUTO2_C_MARK, @@ -405,8 +405,8 @@ enum { /* IPSR2 */ A7_MARK, SCIFB0_RTS_N_MARK, SCIFA4_TXD_B_MARK, A8_MARK, MSIOF1_RXD_MARK, SCIFA0_RXD_B_MARK, A9_MARK, MSIOF1_TXD_MARK, SCIFA0_TXD_B_MARK, - A10_MARK, MSIOF1_SCK_MARK, IIC1_SCL_B_MARK, A11_MARK, MSIOF1_SYNC_MARK, - IIC1_SDA_B_MARK, A12_MARK, MSIOF1_SS1_MARK, SCIFA5_RXD_B_MARK, + A10_MARK, MSIOF1_SCK_MARK, IIC0_SCL_B_MARK, A11_MARK, MSIOF1_SYNC_MARK, + IIC0_SDA_B_MARK, A12_MARK, MSIOF1_SS1_MARK, SCIFA5_RXD_B_MARK, A13_MARK, MSIOF1_SS2_MARK, SCIFA5_TXD_B_MARK, A14_MARK, MSIOF2_RXD_MARK, HSCIF0_HRX_B_MARK, DREQ1_N_MARK, A15_MARK, MSIOF2_TXD_MARK, HSCIF0_HTX_B_MARK, DACK1_MARK, A16_MARK, MSIOF2_SCK_MARK, @@ -481,11 +481,11 @@ enum { AVB_RX_ER_MARK, VI0_HSYNC_N_MARK, SCIF0_RXD_B_MARK, I2C0_SCL_C_MARK, IERX_C_MARK, AVB_COL_MARK, VI0_VSYNC_N_MARK, SCIF0_TXD_B_MARK, I2C0_SDA_C_MARK, AUDIO_CLKOUT_B_MARK, AVB_TX_EN_MARK, ETH_MDIO_MARK, - VI0_G0_MARK, MSIOF2_RXD_B_MARK, IIC0_SCL_D_MARK, AVB_TX_CLK_MARK, + VI0_G0_MARK, MSIOF2_RXD_B_MARK, I2C5_SCL_D_MARK, AVB_TX_CLK_MARK, ADIDATA_MARK, AD_DI_MARK, /* IPSR7 */ - ETH_CRS_DV_MARK, VI0_G1_MARK, MSIOF2_TXD_B_MARK, IIC0_SDA_D_MARK, + ETH_CRS_DV_MARK, VI0_G1_MARK, MSIOF2_TXD_B_MARK, I2C5_SDA_D_MARK, AVB_TXD0_MARK, ADICS_SAMP_MARK, AD_DO_MARK, ETH_RX_ER_MARK, VI0_G2_MARK, MSIOF2_SCK_B_MARK, CAN0_RX_B_MARK, AVB_TXD1_MARK, ADICLK_MARK, AD_CLK_MARK, ETH_RXD0_MARK, VI0_G3_MARK, MSIOF2_SYNC_B_MARK, @@ -495,8 +495,8 @@ enum { MSIOF2_SS2_B_MARK, SCIF4_TXD_D_MARK, AVB_TXD4_MARK, ADICHS2_MARK, ETH_REFCLK_MARK, VI0_G6_MARK, SCIF2_SCK_C_MARK, AVB_TXD5_MARK, SSI_SCK5_B_MARK, ETH_TXD1_MARK, VI0_G7_MARK, SCIF2_RXD_C_MARK, - IIC1_SCL_D_MARK, AVB_TXD6_MARK, SSI_WS5_B_MARK, ETH_TX_EN_MARK, - VI0_R0_MARK, SCIF2_TXD_C_MARK, IIC1_SDA_D_MARK, AVB_TXD7_MARK, + IIC0_SCL_D_MARK, AVB_TXD6_MARK, SSI_WS5_B_MARK, ETH_TX_EN_MARK, + VI0_R0_MARK, SCIF2_TXD_C_MARK, IIC0_SDA_D_MARK, AVB_TXD7_MARK, SSI_SDATA5_B_MARK, ETH_MAGIC_MARK, VI0_R1_MARK, SCIF3_SCK_B_MARK, AVB_TX_ER_MARK, SSI_SCK6_B_MARK, ETH_TXD0_MARK, VI0_R2_MARK, SCIF3_RXD_B_MARK, I2C4_SCL_E_MARK, AVB_GTX_CLK_MARK, SSI_WS6_B_MARK, @@ -542,12 +542,12 @@ enum { CAN_TXCLK_MARK, CC50_STATE34_MARK, /* IPSR10 */ - SCIF1_RXD_MARK, IIC0_SCL_MARK, DU1_DG6_MARK, SSI_SCK2_B_MARK, - CAN_DEBUGOUT0_MARK, CC50_STATE35_MARK, SCIF1_TXD_MARK, IIC0_SDA_MARK, + SCIF1_RXD_MARK, I2C5_SCL_MARK, DU1_DG6_MARK, SSI_SCK2_B_MARK, + CAN_DEBUGOUT0_MARK, CC50_STATE35_MARK, SCIF1_TXD_MARK, I2C5_SDA_MARK, DU1_DG7_MARK, SSI_WS2_B_MARK, CAN_DEBUGOUT1_MARK, CC50_STATE36_MARK, - SCIF2_RXD_MARK, IIC1_SCL_MARK, DU1_DB0_MARK, SSI_SDATA2_B_MARK, + SCIF2_RXD_MARK, IIC0_SCL_MARK, DU1_DB0_MARK, SSI_SDATA2_B_MARK, USB0_EXTLP_MARK, CAN_DEBUGOUT2_MARK, CC50_STATE37_MARK, SCIF2_TXD_MARK, - IIC1_SDA_MARK, DU1_DB1_MARK, SSI_SCK9_B_MARK, USB0_OVC1_MARK, + IIC0_SDA_MARK, DU1_DB1_MARK, SSI_SCK9_B_MARK, USB0_OVC1_MARK, CAN_DEBUGOUT3_MARK, CC50_STATE38_MARK, SCIF2_SCK_MARK, IRQ1_MARK, DU1_DB2_MARK, SSI_WS9_B_MARK, USB0_IDIN_MARK, CAN_DEBUGOUT4_MARK, CC50_STATE39_MARK, SCIF3_SCK_MARK, IRQ2_MARK, BPFCLK_D_MARK, @@ -569,8 +569,8 @@ enum { SSI_WS6_MARK, SCIFA1_RXD_B_MARK, I2C4_SCL_C_MARK, DU1_EXVSYNC_DU1_VSYNC_MARK, CAN_DEBUGOUT14_MARK, SSI_SDATA6_MARK, SCIFA1_TXD_B_MARK, I2C4_SDA_C_MARK, DU1_EXODDF_DU1_ODDF_DISP_CDE_MARK, - CAN_DEBUGOUT15_MARK, SSI_SCK78_MARK, SCIFA2_SCK_B_MARK, IIC0_SDA_C_MARK, - DU1_DISP_MARK, SSI_WS78_MARK, SCIFA2_RXD_B_MARK, IIC0_SCL_C_MARK, + CAN_DEBUGOUT15_MARK, SSI_SCK78_MARK, SCIFA2_SCK_B_MARK, I2C5_SDA_C_MARK, + DU1_DISP_MARK, SSI_WS78_MARK, SCIFA2_RXD_B_MARK, I2C5_SCL_C_MARK, DU1_CDE_MARK, SSI_SDATA7_MARK, SCIFA2_TXD_B_MARK, IRQ8_MARK, AUDIO_CLKA_D_MARK, CAN_CLK_D_MARK, PCMOE_N_MARK, SSI_SCK0129_MARK, MSIOF1_RXD_B_MARK, SCIF5_RXD_D_MARK, ADIDATA_B_MARK, AD_DI_B_MARK, @@ -588,8 +588,8 @@ enum { SSI_SDATA4_MARK, MLB_DAT_MARK, IERX_B_MARK, IRD_SCK_MARK, SSI_SDATA8_MARK, SCIF1_SCK_B_MARK, PWM1_B_MARK, IRQ9_MARK, REMOCON_MARK, DACK2_MARK, ETH_MDIO_B_MARK, SSI_SCK1_MARK, SCIF1_RXD_B_MARK, - IIC1_SCL_C_MARK, VI1_CLK_MARK, CAN0_RX_D_MARK, AVB_AVTP_CAPTURE_MARK, - ETH_CRS_DV_B_MARK, SSI_WS1_MARK, SCIF1_TXD_B_MARK, IIC1_SDA_C_MARK, + IIC0_SCL_C_MARK, VI1_CLK_MARK, CAN0_RX_D_MARK, AVB_AVTP_CAPTURE_MARK, + ETH_CRS_DV_B_MARK, SSI_WS1_MARK, SCIF1_TXD_B_MARK, IIC0_SDA_C_MARK, VI1_DATA0_MARK, CAN0_TX_D_MARK, AVB_AVTP_MATCH_MARK, ETH_RX_ER_B_MARK, SSI_SDATA1_MARK, HSCIF1_HRX_B_MARK, VI1_DATA1_MARK, SDATA_MARK, ATAWR0_N_MARK, ETH_RXD0_B_MARK, SSI_SCK2_MARK, HSCIF1_HTX_B_MARK, @@ -722,10 +722,10 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP1_17_15, TCLK2_B, SEL_TMU_1), PINMUX_IPSR_DATA(IP1_19_18, D14), PINMUX_IPSR_MSEL(IP1_19_18, SCIFA1_RXD, SEL_SCIFA1_0), - PINMUX_IPSR_MSEL(IP1_19_18, IIC0_SCL_B, SEL_IIC00_1), + PINMUX_IPSR_MSEL(IP1_19_18, I2C5_SCL_B, SEL_I2C05_1), PINMUX_IPSR_DATA(IP1_21_20, D15), PINMUX_IPSR_MSEL(IP1_21_20, SCIFA1_TXD, SEL_SCIFA1_0), - PINMUX_IPSR_MSEL(IP1_21_20, IIC0_SDA_B, SEL_IIC00_1), + PINMUX_IPSR_MSEL(IP1_21_20, I2C5_SDA_B, SEL_I2C05_1), PINMUX_IPSR_DATA(IP1_23_22, A0), PINMUX_IPSR_DATA(IP1_23_22, SCIFB1_SCK), PINMUX_IPSR_DATA(IP1_23_22, PWM3_B), @@ -756,10 +756,10 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP2_5_4, SCIFA0_TXD_B, SEL_SCIFA0_1), PINMUX_IPSR_DATA(IP2_7_6, A10), PINMUX_IPSR_MSEL(IP2_7_6, MSIOF1_SCK, SEL_MSI1_0), - PINMUX_IPSR_MSEL(IP2_7_6, IIC1_SCL_B, SEL_IIC01_1), + PINMUX_IPSR_MSEL(IP2_7_6, IIC0_SCL_B, SEL_IIC0_1), PINMUX_IPSR_DATA(IP2_9_8, A11), PINMUX_IPSR_MSEL(IP2_9_8, MSIOF1_SYNC, SEL_MSI1_0), - PINMUX_IPSR_MSEL(IP2_9_8, IIC1_SDA_B, SEL_IIC01_1), + PINMUX_IPSR_MSEL(IP2_9_8, IIC0_SDA_B, SEL_IIC0_1), PINMUX_IPSR_DATA(IP2_11_10, A12), PINMUX_IPSR_MSEL(IP2_11_10, MSIOF1_SS1, SEL_MSI1_0), PINMUX_IPSR_MSEL(IP2_11_10, SCIFA5_RXD_B, SEL_SCIFA5_1), @@ -1031,7 +1031,7 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP6_31_29, ETH_MDIO, SEL_ETH_0), PINMUX_IPSR_DATA(IP6_31_29, VI0_G0), PINMUX_IPSR_MSEL(IP6_31_29, MSIOF2_RXD_B, SEL_MSI2_1), - PINMUX_IPSR_MSEL(IP6_31_29, IIC0_SCL_D, SEL_IIC00_3), + PINMUX_IPSR_MSEL(IP6_31_29, I2C5_SCL_D, SEL_I2C05_3), PINMUX_IPSR_DATA(IP6_31_29, AVB_TX_CLK), PINMUX_IPSR_MSEL(IP6_31_29, ADIDATA, SEL_RAD_0), PINMUX_IPSR_MSEL(IP6_31_29, AD_DI, SEL_ADI_0), @@ -1040,7 +1040,7 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP7_2_0, ETH_CRS_DV, SEL_ETH_0), PINMUX_IPSR_DATA(IP7_2_0, VI0_G1), PINMUX_IPSR_MSEL(IP7_2_0, MSIOF2_TXD_B, SEL_MSI2_1), - PINMUX_IPSR_MSEL(IP7_2_0, IIC0_SDA_D, SEL_IIC00_3), + PINMUX_IPSR_MSEL(IP7_2_0, I2C5_SDA_D, SEL_I2C05_3), PINMUX_IPSR_DATA(IP7_2_0, AVB_TXD0), PINMUX_IPSR_MSEL(IP7_2_0, ADICS_SAMP, SEL_RAD_0), PINMUX_IPSR_MSEL(IP7_2_0, AD_DO, SEL_ADI_0), @@ -1078,13 +1078,13 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP7_20_18, ETH_TXD1, SEL_ETH_0), PINMUX_IPSR_DATA(IP7_20_18, VI0_G7), PINMUX_IPSR_MSEL(IP7_20_18, SCIF2_RXD_C, SEL_SCIF2_2), - PINMUX_IPSR_MSEL(IP7_20_18, IIC1_SCL_D, SEL_IIC01_3), + PINMUX_IPSR_MSEL(IP7_20_18, IIC0_SCL_D, SEL_IIC0_3), PINMUX_IPSR_DATA(IP7_20_18, AVB_TXD6), PINMUX_IPSR_MSEL(IP7_20_18, SSI_WS5_B, SEL_SSI5_1), PINMUX_IPSR_MSEL(IP7_23_21, ETH_TX_EN, SEL_ETH_0), PINMUX_IPSR_DATA(IP7_23_21, VI0_R0), PINMUX_IPSR_MSEL(IP7_23_21, SCIF2_TXD_C, SEL_SCIF2_2), - PINMUX_IPSR_MSEL(IP7_23_21, IIC1_SDA_D, SEL_IIC01_3), + PINMUX_IPSR_MSEL(IP7_23_21, IIC0_SDA_D, SEL_IIC0_3), PINMUX_IPSR_DATA(IP7_23_21, AVB_TXD7), PINMUX_IPSR_MSEL(IP7_23_21, SSI_SDATA5_B, SEL_SSI5_1), PINMUX_IPSR_MSEL(IP7_26_24, ETH_MAGIC, SEL_ETH_0), @@ -1246,26 +1246,26 @@ static const u16 pinmux_data[] = { /* IPSR10 */ PINMUX_IPSR_MSEL(IP10_2_0, SCIF1_RXD, SEL_SCIF1_0), - PINMUX_IPSR_MSEL(IP10_2_0, IIC0_SCL, SEL_IIC00_0), + PINMUX_IPSR_MSEL(IP10_2_0, I2C5_SCL, SEL_I2C05_0), PINMUX_IPSR_DATA(IP10_2_0, DU1_DG6), PINMUX_IPSR_MSEL(IP10_2_0, SSI_SCK2_B, SEL_SSI2_1), PINMUX_IPSR_DATA(IP10_2_0, CAN_DEBUGOUT0), PINMUX_IPSR_DATA(IP10_2_0, CC50_STATE35), PINMUX_IPSR_MSEL(IP10_5_3, SCIF1_TXD, SEL_SCIF1_0), - PINMUX_IPSR_MSEL(IP10_5_3, IIC0_SDA, SEL_IIC00_0), + PINMUX_IPSR_MSEL(IP10_5_3, I2C5_SDA, SEL_I2C05_0), PINMUX_IPSR_DATA(IP10_5_3, DU1_DG7), PINMUX_IPSR_MSEL(IP10_5_3, SSI_WS2_B, SEL_SSI2_1), PINMUX_IPSR_DATA(IP10_5_3, CAN_DEBUGOUT1), PINMUX_IPSR_DATA(IP10_5_3, CC50_STATE36), PINMUX_IPSR_MSEL(IP10_8_6, SCIF2_RXD, SEL_SCIF2_0), - PINMUX_IPSR_MSEL(IP10_8_6, IIC1_SCL, SEL_IIC01_0), + PINMUX_IPSR_MSEL(IP10_8_6, IIC0_SCL, SEL_IIC0_0), PINMUX_IPSR_DATA(IP10_8_6, DU1_DB0), PINMUX_IPSR_MSEL(IP10_8_6, SSI_SDATA2_B, SEL_SSI2_1), PINMUX_IPSR_DATA(IP10_8_6, USB0_EXTLP), PINMUX_IPSR_DATA(IP10_8_6, CAN_DEBUGOUT2), PINMUX_IPSR_DATA(IP10_8_6, CC50_STATE37), PINMUX_IPSR_MSEL(IP10_11_9, SCIF2_TXD, SEL_SCIF2_0), - PINMUX_IPSR_MSEL(IP10_11_9, IIC1_SDA, SEL_IIC01_0), + PINMUX_IPSR_MSEL(IP10_11_9, IIC0_SDA, SEL_IIC0_0), PINMUX_IPSR_DATA(IP10_11_9, DU1_DB1), PINMUX_IPSR_MSEL(IP10_11_9, SSI_SCK9_B, SEL_SSI9_1), PINMUX_IPSR_DATA(IP10_11_9, USB0_OVC1), @@ -1345,11 +1345,11 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_DATA(IP11_13_11, CAN_DEBUGOUT15), PINMUX_IPSR_MSEL(IP11_15_14, SSI_SCK78, SEL_SSI7_0), PINMUX_IPSR_MSEL(IP11_15_14, SCIFA2_SCK_B, SEL_SCIFA2_1), - PINMUX_IPSR_MSEL(IP11_15_14, IIC0_SDA_C, SEL_IIC00_2), + PINMUX_IPSR_MSEL(IP11_15_14, I2C5_SDA_C, SEL_I2C05_2), PINMUX_IPSR_DATA(IP11_15_14, DU1_DISP), PINMUX_IPSR_MSEL(IP11_17_16, SSI_WS78, SEL_SSI7_0), PINMUX_IPSR_MSEL(IP11_17_16, SCIFA2_RXD_B, SEL_SCIFA2_1), - PINMUX_IPSR_MSEL(IP11_17_16, IIC0_SCL_C, SEL_IIC00_2), + PINMUX_IPSR_MSEL(IP11_17_16, I2C5_SCL_C, SEL_I2C05_2), PINMUX_IPSR_DATA(IP11_17_16, DU1_CDE), PINMUX_IPSR_MSEL(IP11_20_18, SSI_SDATA7, SEL_SSI7_0), PINMUX_IPSR_MSEL(IP11_20_18, SCIFA2_TXD_B, SEL_SCIFA2_1), @@ -1414,14 +1414,14 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP12_17_15, ETH_MDIO_B, SEL_ETH_1), PINMUX_IPSR_MSEL(IP12_20_18, SSI_SCK1, SEL_SSI1_0), PINMUX_IPSR_MSEL(IP12_20_18, SCIF1_RXD_B, SEL_SCIF1_1), - PINMUX_IPSR_MSEL(IP12_20_18, IIC1_SCL_C, SEL_IIC01_2), + PINMUX_IPSR_MSEL(IP12_20_18, IIC0_SCL_C, SEL_IIC0_2), PINMUX_IPSR_DATA(IP12_20_18, VI1_CLK), PINMUX_IPSR_MSEL(IP12_20_18, CAN0_RX_D, SEL_CAN0_3), PINMUX_IPSR_MSEL(IP12_20_18, AVB_AVTP_CAPTURE, SEL_AVB_0), PINMUX_IPSR_MSEL(IP12_20_18, ETH_CRS_DV_B, SEL_ETH_1), PINMUX_IPSR_MSEL(IP12_23_21, SSI_WS1, SEL_SSI1_0), PINMUX_IPSR_MSEL(IP12_23_21, SCIF1_TXD_B, SEL_SCIF1_1), - PINMUX_IPSR_MSEL(IP12_23_21, IIC1_SDA_C, SEL_IIC01_2), + PINMUX_IPSR_MSEL(IP12_23_21, IIC0_SDA_C, SEL_IIC0_2), PINMUX_IPSR_DATA(IP12_23_21, VI1_DATA0), PINMUX_IPSR_MSEL(IP12_23_21, CAN0_TX_D, SEL_CAN0_3), PINMUX_IPSR_MSEL(IP12_23_21, AVB_AVTP_MATCH, SEL_AVB_0), @@ -4557,9 +4557,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { /* IP1_23_22 [2] */ FN_A0, FN_SCIFB1_SCK, FN_PWM3_B, 0, /* IP1_21_20 [2] */ - FN_D15, FN_SCIFA1_TXD, FN_IIC0_SDA_B, 0, + FN_D15, FN_SCIFA1_TXD, FN_I2C5_SDA_B, 0, /* IP1_19_18 [2] */ - FN_D14, FN_SCIFA1_RXD, FN_IIC0_SCL_B, 0, + FN_D14, FN_SCIFA1_RXD, FN_I2C5_SCL_B, 0, /* IP1_17_15 [3] */ FN_D13, FN_SCIFA1_SCK, FN_TANS1, FN_PWM2_C, FN_TCLK2_B, 0, 0, 0, @@ -4604,9 +4604,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { /* IP2_11_10 [2] */ FN_A12, FN_MSIOF1_SS1, FN_SCIFA5_RXD_B, 0, /* IP2_9_8 [2] */ - FN_A11, FN_MSIOF1_SYNC, FN_IIC1_SDA_B, 0, + FN_A11, FN_MSIOF1_SYNC, FN_IIC0_SDA_B, 0, /* IP2_7_6 [2] */ - FN_A10, FN_MSIOF1_SCK, FN_IIC1_SCL_B, 0, + FN_A10, FN_MSIOF1_SCK, FN_IIC0_SCL_B, 0, /* IP2_5_4 [2] */ FN_A9, FN_MSIOF1_TXD, FN_SCIFA0_TXD_B, 0, /* IP2_3_2 [2] */ @@ -4728,7 +4728,7 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2) { /* IP6_31_29 [3] */ - FN_ETH_MDIO, FN_VI0_G0, FN_MSIOF2_RXD_B, FN_IIC0_SCL_D, + FN_ETH_MDIO, FN_VI0_G0, FN_MSIOF2_RXD_B, FN_I2C5_SCL_D, FN_AVB_TX_CLK, FN_ADIDATA, FN_AD_DI, 0, /* IP6_28_26 [3] */ FN_VI0_VSYNC_N, FN_SCIF0_TXD_B, FN_I2C0_SDA_C, @@ -4783,10 +4783,10 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { FN_ETH_MAGIC, FN_VI0_R1, FN_SCIF3_SCK_B, FN_AVB_TX_ER, FN_SSI_SCK6_B, 0, 0, 0, /* IP7_23_21 [3] */ - FN_ETH_TX_EN, FN_VI0_R0, FN_SCIF2_TXD_C, FN_IIC1_SDA_D, + FN_ETH_TX_EN, FN_VI0_R0, FN_SCIF2_TXD_C, FN_IIC0_SDA_D, FN_AVB_TXD7, FN_SSI_SDATA5_B, 0, 0, /* IP7_20_18 [3] */ - FN_ETH_TXD1, FN_VI0_G7, FN_SCIF2_RXD_C, FN_IIC1_SCL_D, + FN_ETH_TXD1, FN_VI0_G7, FN_SCIF2_RXD_C, FN_IIC0_SCL_D, FN_AVB_TXD6, FN_SSI_WS5_B, 0, 0, /* IP7_17_15 [3] */ FN_ETH_REFCLK, FN_VI0_G6, FN_SCIF2_SCK_C, FN_AVB_TXD5, @@ -4804,7 +4804,7 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { FN_ETH_RX_ER, FN_VI0_G2, FN_MSIOF2_SCK_B, FN_CAN0_RX_B, FN_AVB_TXD1, FN_ADICLK, FN_AD_CLK, 0, /* IP7_2_0 [3] */ - FN_ETH_CRS_DV, FN_VI0_G1, FN_MSIOF2_TXD_B, FN_IIC0_SDA_D, + FN_ETH_CRS_DV, FN_VI0_G1, FN_MSIOF2_TXD_B, FN_I2C5_SDA_D, FN_AVB_TXD0, FN_ADICS_SAMP, FN_AD_DO, 0, } }, { PINMUX_CFG_REG_VAR("IPSR8", 0xE6060040, 32, @@ -4901,16 +4901,16 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { FN_SCIF2_SCK, FN_IRQ1, FN_DU1_DB2, FN_SSI_WS9_B, FN_USB0_IDIN, FN_CAN_DEBUGOUT4, FN_CC50_STATE39, 0, /* IP10_11_9 [3] */ - FN_SCIF2_TXD, FN_IIC1_SDA, FN_DU1_DB1, FN_SSI_SCK9_B, + FN_SCIF2_TXD, FN_IIC0_SDA, FN_DU1_DB1, FN_SSI_SCK9_B, FN_USB0_OVC1, FN_CAN_DEBUGOUT3, FN_CC50_STATE38, 0, /* IP10_8_6 [3] */ - FN_SCIF2_RXD, FN_IIC1_SCL, FN_DU1_DB0, FN_SSI_SDATA2_B, + FN_SCIF2_RXD, FN_IIC0_SCL, FN_DU1_DB0, FN_SSI_SDATA2_B, FN_USB0_EXTLP, FN_CAN_DEBUGOUT2, FN_CC50_STATE37, 0, /* IP10_5_3 [3] */ - FN_SCIF1_TXD, FN_IIC0_SDA, FN_DU1_DG7, FN_SSI_WS2_B, + FN_SCIF1_TXD, FN_I2C5_SDA, FN_DU1_DG7, FN_SSI_WS2_B, FN_CAN_DEBUGOUT1, FN_CC50_STATE36, 0, 0, /* IP10_2_0 [3] */ - FN_SCIF1_RXD, FN_IIC0_SCL, FN_DU1_DG6, FN_SSI_SCK2_B, + FN_SCIF1_RXD, FN_I2C5_SCL, FN_DU1_DG6, FN_SSI_SCK2_B, FN_CAN_DEBUGOUT0, FN_CC50_STATE35, 0, 0, } }, { PINMUX_CFG_REG_VAR("IPSR11", 0xE606004C, 32, @@ -4930,9 +4930,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { FN_SSI_SDATA7, FN_SCIFA2_TXD_B, FN_IRQ8, FN_AUDIO_CLKA_D, FN_CAN_CLK_D, FN_PCMOE_N, 0, 0, /* IP11_17_16 [2] */ - FN_SSI_WS78, FN_SCIFA2_RXD_B, FN_IIC0_SCL_C, FN_DU1_CDE, + FN_SSI_WS78, FN_SCIFA2_RXD_B, FN_I2C5_SCL_C, FN_DU1_CDE, /* IP11_15_14 [2] */ - FN_SSI_SCK78, FN_SCIFA2_SCK_B, FN_IIC0_SDA_C, FN_DU1_DISP, + FN_SSI_SCK78, FN_SCIFA2_SCK_B, FN_I2C5_SDA_C, FN_DU1_DISP, /* IP11_13_11 [3] */ FN_SSI_SDATA6, FN_SCIFA1_TXD_B, FN_I2C4_SDA_C, FN_DU1_EXODDF_DU1_ODDF_DISP_CDE, FN_CAN_DEBUGOUT15, 0, 0, 0, @@ -4960,10 +4960,10 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { FN_SSI_SDATA1, FN_HSCIF1_HRX_B, FN_VI1_DATA1, FN_SDATA, FN_ATAWR0_N, FN_ETH_RXD0_B, 0, 0, /* IP12_23_21 [3] */ - FN_SSI_WS1, FN_SCIF1_TXD_B, FN_IIC1_SDA_C, FN_VI1_DATA0, + FN_SSI_WS1, FN_SCIF1_TXD_B, FN_IIC0_SDA_C, FN_VI1_DATA0, FN_CAN0_TX_D, FN_AVB_AVTP_MATCH, FN_ETH_RX_ER_B, 0, /* IP12_20_18 [3] */ - FN_SSI_SCK1, FN_SCIF1_RXD_B, FN_IIC1_SCL_C, FN_VI1_CLK, + FN_SSI_SCK1, FN_SCIF1_RXD_B, FN_IIC0_SCL_C, FN_VI1_CLK, FN_CAN0_RX_D, FN_AVB_AVTP_CAPTURE, FN_ETH_CRS_DV_B, 0, /* IP12_17_15 [3] */ FN_SSI_SDATA8, FN_SCIF1_SCK_B, FN_PWM1_B, FN_IRQ9, @@ -5063,8 +5063,8 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { /* SEL_I2C04 [3] */ FN_SEL_I2C04_0, FN_SEL_I2C04_1, FN_SEL_I2C04_2, FN_SEL_I2C04_3, FN_SEL_I2C04_4, 0, 0, 0, - /* SEL_IIC00 [2] */ - FN_SEL_IIC00_0, FN_SEL_IIC00_1, FN_SEL_IIC00_2, FN_SEL_IIC00_3, + /* SEL_I2C05 [2] */ + FN_SEL_I2C05_0, FN_SEL_I2C05_1, FN_SEL_I2C05_2, FN_SEL_I2C05_3, /* SEL_AVB [1] */ FN_SEL_AVB_0, FN_SEL_AVB_1, } }, @@ -5074,7 +5074,7 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { /* SEL_IEB [2] */ FN_SEL_IEB_0, FN_SEL_IEB_1, FN_SEL_IEB_2, 0, /* SEL_IIC0 [2] */ - FN_SEL_IIC01_0, FN_SEL_IIC01_1, FN_SEL_IIC01_2, FN_SEL_IIC01_3, + FN_SEL_IIC0_0, FN_SEL_IIC0_1, FN_SEL_IIC0_2, FN_SEL_IIC0_3, /* SEL_LBS [1] */ FN_SEL_LBS_0, FN_SEL_LBS_1, /* SEL_MSI1 [1] */ From 31a742b129fa023f7c8975cde21f120829e51d25 Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Fri, 29 Jun 2018 15:38:33 +0100 Subject: [PATCH 0405/1149] pinctrl: sh-pfc: r8a7794: Remove AVB_AVTP_* groups The ATA_AVTP_* signals are documented as reserved in the recent R-Car E2 user's manual (the only remaining mention is in the table 5.2 and I believe it's a simple overlook). Remove the AVB_AVTP_* pinmux groups -- we will remove the signals themselves in the next patch, along with the other now reserved bits... Signed-off-by: Sergei Shtylyov Signed-off-by: Geert Uytterhoeven (cherry picked from commit d24709f5d69a0a5e5caae16f53db84bf5211d75e) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 32 ---------------------------- 1 file changed, 32 deletions(-) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c index 77f4908b1ef9..f0c0db8bd315 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c @@ -1677,30 +1677,6 @@ static const unsigned int avb_gmii_mux[] = { AVB_TX_EN_MARK, AVB_TX_ER_MARK, AVB_TX_CLK_MARK, AVB_COL_MARK, }; -static const unsigned int avb_avtp_capture_pins[] = { - RCAR_GP_PIN(5, 11), -}; -static const unsigned int avb_avtp_capture_mux[] = { - AVB_AVTP_CAPTURE_MARK, -}; -static const unsigned int avb_avtp_match_pins[] = { - RCAR_GP_PIN(5, 12), -}; -static const unsigned int avb_avtp_match_mux[] = { - AVB_AVTP_MATCH_MARK, -}; -static const unsigned int avb_avtp_capture_b_pins[] = { - RCAR_GP_PIN(1, 1), -}; -static const unsigned int avb_avtp_capture_b_mux[] = { - AVB_AVTP_CAPTURE_B_MARK, -}; -static const unsigned int avb_avtp_match_b_pins[] = { - RCAR_GP_PIN(1, 2), -}; -static const unsigned int avb_avtp_match_b_mux[] = { - AVB_AVTP_MATCH_B_MARK, -}; /* - DU --------------------------------------------------------------------- */ static const unsigned int du0_rgb666_pins[] = { /* R[7:2], G[7:2], B[7:2] */ @@ -3552,10 +3528,6 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(avb_mdio), SH_PFC_PIN_GROUP(avb_mii), SH_PFC_PIN_GROUP(avb_gmii), - SH_PFC_PIN_GROUP(avb_avtp_capture), - SH_PFC_PIN_GROUP(avb_avtp_match), - SH_PFC_PIN_GROUP(avb_avtp_capture_b), - SH_PFC_PIN_GROUP(avb_avtp_match_b), SH_PFC_PIN_GROUP(du0_rgb666), SH_PFC_PIN_GROUP(du0_rgb888), SH_PFC_PIN_GROUP(du0_clk0_out), @@ -3826,10 +3798,6 @@ static const char * const avb_groups[] = { "avb_mdio", "avb_mii", "avb_gmii", - "avb_avtp_capture", - "avb_avtp_match", - "avb_avtp_capture_b", - "avb_avtp_match_b", }; static const char * const du0_groups[] = { From e8031617f5d062682917de7ee68797bc8c506741 Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Fri, 29 Jun 2018 15:38:34 +0100 Subject: [PATCH 0406/1149] pinctrl: sh-pfc: r8a7794: Remove reserved bits The R8A7794 PFC driver was apparently based on the preliminary revisions of the user's manual which had some signals and MOD_SEL register fields described which the recent manual changed to reserved. Of course, these signals haven't ever been really used, which makes removing them painless. While at it, make the large *enum* look better by starting a new line each time a new row in the IPSR and MOD_SEL register field tables is started. Signed-off-by: Sergei Shtylyov Signed-off-by: Geert Uytterhoeven (cherry picked from commit 13385db5479a79e306f75bf3b9ff63bbc6196034) (replaced PINMUX_IPSR_GPSR with PINMUX_IPSR_DATA) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 1117 ++++++++++++-------------- 1 file changed, 529 insertions(+), 588 deletions(-) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c index f0c0db8bd315..b2e6c4b59c3d 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c @@ -122,235 +122,279 @@ enum { FN_I2C3_SDA_B, FN_SCIF5_TXD_B, FN_D5, FN_SCIF4_RXD_B, FN_I2C0_SCL_D, /* IPSR1 */ - FN_D6, FN_SCIF4_TXD_B, FN_I2C0_SDA_D, FN_D7, FN_IRQ3, FN_TCLK1, - FN_PWM6_B, FN_D8, FN_HSCIF2_HRX, FN_I2C1_SCL_B, FN_D9, FN_HSCIF2_HTX, - FN_I2C1_SDA_B, FN_D10, FN_HSCIF2_HSCK, FN_SCIF1_SCK_C, FN_IRQ6, - FN_PWM5_C, FN_D11, FN_HSCIF2_HCTS_N, FN_SCIF1_RXD_C, FN_I2C1_SCL_D, - FN_D12, FN_HSCIF2_HRTS_N, FN_SCIF1_TXD_C, FN_I2C1_SDA_D, FN_D13, - FN_SCIFA1_SCK, FN_TANS1, FN_PWM2_C, FN_TCLK2_B, FN_D14, FN_SCIFA1_RXD, - FN_I2C5_SCL_B, FN_D15, FN_SCIFA1_TXD, FN_I2C5_SDA_B, FN_A0, - FN_SCIFB1_SCK, FN_PWM3_B, FN_A1, FN_SCIFB1_TXD, FN_A3, FN_SCIFB0_SCK, - FN_A4, FN_SCIFB0_TXD, FN_A5, FN_SCIFB0_RXD, FN_PWM4_B, FN_TPUTO3_C, + FN_D6, FN_SCIF4_TXD_B, FN_I2C0_SDA_D, + FN_D7, FN_IRQ3, FN_TCLK1, FN_PWM6_B, + FN_D8, FN_HSCIF2_HRX, FN_I2C1_SCL_B, + FN_D9, FN_HSCIF2_HTX, FN_I2C1_SDA_B, + FN_D10, FN_HSCIF2_HSCK, FN_SCIF1_SCK_C, FN_IRQ6, FN_PWM5_C, + FN_D11, FN_HSCIF2_HCTS_N, FN_SCIF1_RXD_C, FN_I2C1_SCL_D, + FN_D12, FN_HSCIF2_HRTS_N, FN_SCIF1_TXD_C, FN_I2C1_SDA_D, + FN_D13, FN_SCIFA1_SCK, FN_PWM2_C, FN_TCLK2_B, + FN_D14, FN_SCIFA1_RXD, FN_I2C5_SCL_B, + FN_D15, FN_SCIFA1_TXD, FN_I2C5_SDA_B, + FN_A0, FN_SCIFB1_SCK, FN_PWM3_B, + FN_A1, FN_SCIFB1_TXD, + FN_A3, FN_SCIFB0_SCK, + FN_A4, FN_SCIFB0_TXD, + FN_A5, FN_SCIFB0_RXD, FN_PWM4_B, FN_TPUTO3_C, FN_A6, FN_SCIFB0_CTS_N, FN_SCIFA4_RXD_B, FN_TPUTO2_C, /* IPSR2 */ - FN_A7, FN_SCIFB0_RTS_N, FN_SCIFA4_TXD_B, FN_A8, FN_MSIOF1_RXD, - FN_SCIFA0_RXD_B, FN_A9, FN_MSIOF1_TXD, FN_SCIFA0_TXD_B, FN_A10, - FN_MSIOF1_SCK, FN_IIC0_SCL_B, FN_A11, FN_MSIOF1_SYNC, FN_IIC0_SDA_B, - FN_A12, FN_MSIOF1_SS1, FN_SCIFA5_RXD_B, FN_A13, FN_MSIOF1_SS2, - FN_SCIFA5_TXD_B, FN_A14, FN_MSIOF2_RXD, FN_HSCIF0_HRX_B, FN_DREQ1_N, - FN_A15, FN_MSIOF2_TXD, FN_HSCIF0_HTX_B, FN_DACK1, FN_A16, - FN_MSIOF2_SCK, FN_HSCIF0_HSCK_B, FN_SPEEDIN, FN_VSP, FN_CAN_CLK_C, - FN_TPUTO2_B, FN_A17, FN_MSIOF2_SYNC, FN_SCIF4_RXD_E, FN_CAN1_RX_B, - FN_AVB_AVTP_CAPTURE_B, FN_A18, FN_MSIOF2_SS1, FN_SCIF4_TXD_E, - FN_CAN1_TX_B, FN_AVB_AVTP_MATCH_B, FN_A19, FN_MSIOF2_SS2, FN_PWM4, - FN_TPUTO2, FN_MOUT0, FN_A20, FN_SPCLK, FN_MOUT1, + FN_A7, FN_SCIFB0_RTS_N, FN_SCIFA4_TXD_B, + FN_A8, FN_MSIOF1_RXD, FN_SCIFA0_RXD_B, + FN_A9, FN_MSIOF1_TXD, FN_SCIFA0_TXD_B, + FN_A10, FN_MSIOF1_SCK, FN_IIC0_SCL_B, + FN_A11, FN_MSIOF1_SYNC, FN_IIC0_SDA_B, + FN_A12, FN_MSIOF1_SS1, FN_SCIFA5_RXD_B, + FN_A13, FN_MSIOF1_SS2, FN_SCIFA5_TXD_B, + FN_A14, FN_MSIOF2_RXD, FN_HSCIF0_HRX_B, FN_DREQ1_N, + FN_A15, FN_MSIOF2_TXD, FN_HSCIF0_HTX_B, FN_DACK1, + FN_A16, FN_MSIOF2_SCK, FN_HSCIF0_HSCK_B, FN_SPEEDIN, FN_CAN_CLK_C, + FN_TPUTO2_B, + FN_A17, FN_MSIOF2_SYNC, FN_SCIF4_RXD_E, FN_CAN1_RX_B, + FN_A18, FN_MSIOF2_SS1, FN_SCIF4_TXD_E, FN_CAN1_TX_B, + FN_A19, FN_MSIOF2_SS2, FN_PWM4, FN_TPUTO2, + FN_A20, FN_SPCLK, /* IPSR3 */ - FN_A21, FN_MOSI_IO0, FN_MOUT2, FN_A22, FN_MISO_IO1, FN_MOUT5, - FN_ATADIR1_N, FN_A23, FN_IO2, FN_MOUT6, FN_ATAWR1_N, FN_A24, FN_IO3, - FN_EX_WAIT2, FN_A25, FN_SSL, FN_ATARD1_N, FN_CS0_N, FN_VI1_DATA8, - FN_CS1_N_A26, FN_VI1_DATA9, FN_EX_CS0_N, FN_VI1_DATA10, FN_EX_CS1_N, - FN_TPUTO3_B, FN_SCIFB2_RXD, FN_VI1_DATA11, FN_EX_CS2_N, FN_PWM0, - FN_SCIF4_RXD_C, FN_TS_SDATA_B, FN_RIF0_SYNC, FN_TPUTO3, FN_SCIFB2_TXD, - FN_SDATA_B, FN_EX_CS3_N, FN_SCIFA2_SCK, FN_SCIF4_TXD_C, FN_TS_SCK_B, - FN_RIF0_CLK, FN_BPFCLK, FN_SCIFB2_SCK, FN_MDATA_B, FN_EX_CS4_N, - FN_SCIFA2_RXD, FN_I2C2_SCL_E, FN_TS_SDEN_B, FN_RIF0_D0, FN_FMCLK, - FN_SCIFB2_CTS_N, FN_SCKZ_B, FN_EX_CS5_N, FN_SCIFA2_TXD, FN_I2C2_SDA_E, - FN_TS_SPSYNC_B, FN_RIF0_D1, FN_FMIN, FN_SCIFB2_RTS_N, FN_STM_N_B, - FN_BS_N, FN_DRACK0, FN_PWM1_C, FN_TPUTO0_C, FN_ATACS01_N, FN_MTS_N_B, - FN_RD_N, FN_ATACS11_N, FN_RD_WR_N, FN_ATAG1_N, + FN_A21, FN_MOSI_IO0, + FN_A22, FN_MISO_IO1, FN_ATADIR1_N, + FN_A23, FN_IO2, FN_ATAWR1_N, + FN_A24, FN_IO3, FN_EX_WAIT2, + FN_A25, FN_SSL, FN_ATARD1_N, + FN_CS0_N, FN_VI1_DATA8, + FN_CS1_N_A26, FN_VI1_DATA9, + FN_EX_CS0_N, FN_VI1_DATA10, + FN_EX_CS1_N, FN_TPUTO3_B, FN_SCIFB2_RXD, FN_VI1_DATA11, + FN_EX_CS2_N, FN_PWM0, FN_SCIF4_RXD_C, FN_TS_SDATA_B, FN_TPUTO3, + FN_SCIFB2_TXD, + FN_EX_CS3_N, FN_SCIFA2_SCK, FN_SCIF4_TXD_C, FN_TS_SCK_B, FN_BPFCLK, + FN_SCIFB2_SCK, + FN_EX_CS4_N, FN_SCIFA2_RXD, FN_I2C2_SCL_E, FN_TS_SDEN_B, FN_FMCLK, + FN_SCIFB2_CTS_N, + FN_EX_CS5_N, FN_SCIFA2_TXD, FN_I2C2_SDA_E, FN_TS_SPSYNC_B, FN_FMIN, + FN_SCIFB2_RTS_N, + FN_BS_N, FN_DRACK0, FN_PWM1_C, FN_TPUTO0_C, FN_ATACS01_N, + FN_RD_N, FN_ATACS11_N, + FN_RD_WR_N, FN_ATAG1_N, /* IPSR4 */ - FN_EX_WAIT0, FN_CAN_CLK_B, FN_SCIF_CLK, FN_PWMFSW0, FN_DU0_DR0, - FN_LCDOUT16, FN_SCIF5_RXD_C, FN_I2C2_SCL_D, FN_CC50_STATE0, - FN_DU0_DR1, FN_LCDOUT17, FN_SCIF5_TXD_C, FN_I2C2_SDA_D, FN_CC50_STATE1, - FN_DU0_DR2, FN_LCDOUT18, FN_CC50_STATE2, FN_DU0_DR3, FN_LCDOUT19, - FN_CC50_STATE3, FN_DU0_DR4, FN_LCDOUT20, FN_CC50_STATE4, FN_DU0_DR5, - FN_LCDOUT21, FN_CC50_STATE5, FN_DU0_DR6, FN_LCDOUT22, FN_CC50_STATE6, - FN_DU0_DR7, FN_LCDOUT23, FN_CC50_STATE7, FN_DU0_DG0, FN_LCDOUT8, - FN_SCIFA0_RXD_C, FN_I2C3_SCL_D, FN_CC50_STATE8, FN_DU0_DG1, FN_LCDOUT9, - FN_SCIFA0_TXD_C, FN_I2C3_SDA_D, FN_CC50_STATE9, FN_DU0_DG2, FN_LCDOUT10, - FN_CC50_STATE10, FN_DU0_DG3, FN_LCDOUT11, FN_CC50_STATE11, FN_DU0_DG4, - FN_LCDOUT12, FN_CC50_STATE12, + FN_EX_WAIT0, FN_CAN_CLK_B, FN_SCIF_CLK, + FN_DU0_DR0, FN_LCDOUT16, FN_SCIF5_RXD_C, FN_I2C2_SCL_D, + FN_DU0_DR1, FN_LCDOUT17, FN_SCIF5_TXD_C, FN_I2C2_SDA_D, + FN_DU0_DR2, FN_LCDOUT18, + FN_DU0_DR3, FN_LCDOUT19, + FN_DU0_DR4, FN_LCDOUT20, + FN_DU0_DR5, FN_LCDOUT21, + FN_DU0_DR6, FN_LCDOUT22, + FN_DU0_DR7, FN_LCDOUT23, + FN_DU0_DG0, FN_LCDOUT8, FN_SCIFA0_RXD_C, FN_I2C3_SCL_D, + FN_DU0_DG1, FN_LCDOUT9, FN_SCIFA0_TXD_C, FN_I2C3_SDA_D, + FN_DU0_DG2, FN_LCDOUT10, + FN_DU0_DG3, FN_LCDOUT11, + FN_DU0_DG4, FN_LCDOUT12, /* IPSR5 */ - FN_DU0_DG5, FN_LCDOUT13, FN_CC50_STATE13, FN_DU0_DG6, FN_LCDOUT14, - FN_CC50_STATE14, FN_DU0_DG7, FN_LCDOUT15, FN_CC50_STATE15, FN_DU0_DB0, - FN_LCDOUT0, FN_SCIFA4_RXD_C, FN_I2C4_SCL_D, FN_CAN0_RX_C, - FN_CC50_STATE16, FN_DU0_DB1, FN_LCDOUT1, FN_SCIFA4_TXD_C, FN_I2C4_SDA_D, - FN_CAN0_TX_C, FN_CC50_STATE17, FN_DU0_DB2, FN_LCDOUT2, FN_CC50_STATE18, - FN_DU0_DB3, FN_LCDOUT3, FN_CC50_STATE19, FN_DU0_DB4, FN_LCDOUT4, - FN_CC50_STATE20, FN_DU0_DB5, FN_LCDOUT5, FN_CC50_STATE21, FN_DU0_DB6, - FN_LCDOUT6, FN_CC50_STATE22, FN_DU0_DB7, FN_LCDOUT7, FN_CC50_STATE23, - FN_DU0_DOTCLKIN, FN_QSTVA_QVS, FN_CC50_STATE24, FN_DU0_DOTCLKOUT0, - FN_QCLK, FN_CC50_STATE25, FN_DU0_DOTCLKOUT1, FN_QSTVB_QVE, - FN_CC50_STATE26, FN_DU0_EXHSYNC_DU0_HSYNC, FN_QSTH_QHS, FN_CC50_STATE27, + FN_DU0_DG5, FN_LCDOUT13, + FN_DU0_DG6, FN_LCDOUT14, + FN_DU0_DG7, FN_LCDOUT15, + FN_DU0_DB0, FN_LCDOUT0, FN_SCIFA4_RXD_C, FN_I2C4_SCL_D, FN_CAN0_RX_C, + FN_DU0_DB1, FN_LCDOUT1, FN_SCIFA4_TXD_C, FN_I2C4_SDA_D, FN_CAN0_TX_C, + FN_DU0_DB2, FN_LCDOUT2, + FN_DU0_DB3, FN_LCDOUT3, + FN_DU0_DB4, FN_LCDOUT4, + FN_DU0_DB5, FN_LCDOUT5, + FN_DU0_DB6, FN_LCDOUT6, + FN_DU0_DB7, FN_LCDOUT7, + FN_DU0_DOTCLKIN, FN_QSTVA_QVS, + FN_DU0_DOTCLKOUT0, FN_QCLK, + FN_DU0_DOTCLKOUT1, FN_QSTVB_QVE, + FN_DU0_EXHSYNC_DU0_HSYNC, FN_QSTH_QHS, /* IPSR6 */ - FN_DU0_EXVSYNC_DU0_VSYNC, FN_QSTB_QHE, FN_CC50_STATE28, - FN_DU0_EXODDF_DU0_ODDF_DISP_CDE, FN_QCPV_QDE, FN_CC50_STATE29, - FN_DU0_DISP, FN_QPOLA, FN_CC50_STATE30, FN_DU0_CDE, FN_QPOLB, - FN_CC50_STATE31, FN_VI0_CLK, FN_AVB_RX_CLK, FN_VI0_DATA0_VI0_B0, - FN_AVB_RX_DV, FN_VI0_DATA1_VI0_B1, FN_AVB_RXD0, FN_VI0_DATA2_VI0_B2, - FN_AVB_RXD1, FN_VI0_DATA3_VI0_B3, FN_AVB_RXD2, FN_VI0_DATA4_VI0_B4, - FN_AVB_RXD3, FN_VI0_DATA5_VI0_B5, FN_AVB_RXD4, FN_VI0_DATA6_VI0_B6, - FN_AVB_RXD5, FN_VI0_DATA7_VI0_B7, FN_AVB_RXD6, FN_VI0_CLKENB, - FN_I2C3_SCL, FN_SCIFA5_RXD_C, FN_IETX_C, FN_AVB_RXD7, FN_VI0_FIELD, - FN_I2C3_SDA, FN_SCIFA5_TXD_C, FN_IECLK_C, FN_AVB_RX_ER, FN_VI0_HSYNC_N, - FN_SCIF0_RXD_B, FN_I2C0_SCL_C, FN_IERX_C, FN_AVB_COL, FN_VI0_VSYNC_N, - FN_SCIF0_TXD_B, FN_I2C0_SDA_C, FN_AUDIO_CLKOUT_B, FN_AVB_TX_EN, + FN_DU0_EXVSYNC_DU0_VSYNC, FN_QSTB_QHE, + FN_DU0_EXODDF_DU0_ODDF_DISP_CDE, FN_QCPV_QDE, + FN_DU0_DISP, FN_QPOLA, + FN_DU0_CDE, FN_QPOLB, + FN_VI0_CLK, FN_AVB_RX_CLK, + FN_VI0_DATA0_VI0_B0, FN_AVB_RX_DV, + FN_VI0_DATA1_VI0_B1, FN_AVB_RXD0, + FN_VI0_DATA2_VI0_B2, FN_AVB_RXD1, + FN_VI0_DATA3_VI0_B3, FN_AVB_RXD2, + FN_VI0_DATA4_VI0_B4, FN_AVB_RXD3, + FN_VI0_DATA5_VI0_B5, FN_AVB_RXD4, + FN_VI0_DATA6_VI0_B6, FN_AVB_RXD5, + FN_VI0_DATA7_VI0_B7, FN_AVB_RXD6, + FN_VI0_CLKENB, FN_I2C3_SCL, FN_SCIFA5_RXD_C, FN_IETX_C, FN_AVB_RXD7, + FN_VI0_FIELD, FN_I2C3_SDA, FN_SCIFA5_TXD_C, FN_IECLK_C, FN_AVB_RX_ER, + FN_VI0_HSYNC_N, FN_SCIF0_RXD_B, FN_I2C0_SCL_C, FN_IERX_C, FN_AVB_COL, + FN_VI0_VSYNC_N, FN_SCIF0_TXD_B, FN_I2C0_SDA_C, FN_AUDIO_CLKOUT_B, + FN_AVB_TX_EN, FN_ETH_MDIO, FN_VI0_G0, FN_MSIOF2_RXD_B, FN_I2C5_SCL_D, FN_AVB_TX_CLK, - FN_ADIDATA, FN_AD_DI, + FN_ADIDATA, /* IPSR7 */ FN_ETH_CRS_DV, FN_VI0_G1, FN_MSIOF2_TXD_B, FN_I2C5_SDA_D, FN_AVB_TXD0, - FN_ADICS_SAMP, FN_AD_DO, FN_ETH_RX_ER, FN_VI0_G2, FN_MSIOF2_SCK_B, - FN_CAN0_RX_B, FN_AVB_TXD1, FN_ADICLK, FN_AD_CLK, FN_ETH_RXD0, FN_VI0_G3, - FN_MSIOF2_SYNC_B, FN_CAN0_TX_B, FN_AVB_TXD2, FN_ADICHS0, FN_AD_NCS_N, + FN_ADICS_SAMP, + FN_ETH_RX_ER, FN_VI0_G2, FN_MSIOF2_SCK_B, FN_CAN0_RX_B, FN_AVB_TXD1, + FN_ADICLK, + FN_ETH_RXD0, FN_VI0_G3, FN_MSIOF2_SYNC_B, FN_CAN0_TX_B, FN_AVB_TXD2, + FN_ADICHS0, FN_ETH_RXD1, FN_VI0_G4, FN_MSIOF2_SS1_B, FN_SCIF4_RXD_D, FN_AVB_TXD3, - FN_ADICHS1, FN_ETH_LINK, FN_VI0_G5, FN_MSIOF2_SS2_B, FN_SCIF4_TXD_D, - FN_AVB_TXD4, FN_ADICHS2, FN_ETH_REFCLK, FN_VI0_G6, FN_SCIF2_SCK_C, - FN_AVB_TXD5, FN_SSI_SCK5_B, FN_ETH_TXD1, FN_VI0_G7, FN_SCIF2_RXD_C, - FN_IIC0_SCL_D, FN_AVB_TXD6, FN_SSI_WS5_B, FN_ETH_TX_EN, FN_VI0_R0, - FN_SCIF2_TXD_C, FN_IIC0_SDA_D, FN_AVB_TXD7, FN_SSI_SDATA5_B, + FN_ADICHS1, + FN_ETH_LINK, FN_VI0_G5, FN_MSIOF2_SS2_B, FN_SCIF4_TXD_D, FN_AVB_TXD4, + FN_ADICHS2, + FN_ETH_REFCLK, FN_VI0_G6, FN_SCIF2_SCK_C, FN_AVB_TXD5, FN_SSI_SCK5_B, + FN_ETH_TXD1, FN_VI0_G7, FN_SCIF2_RXD_C, FN_IIC0_SCL_D, FN_AVB_TXD6, + FN_SSI_WS5_B, + FN_ETH_TX_EN, FN_VI0_R0, FN_SCIF2_TXD_C, FN_IIC0_SDA_D, FN_AVB_TXD7, + FN_SSI_SDATA5_B, FN_ETH_MAGIC, FN_VI0_R1, FN_SCIF3_SCK_B, FN_AVB_TX_ER, FN_SSI_SCK6_B, FN_ETH_TXD0, FN_VI0_R2, FN_SCIF3_RXD_B, FN_I2C4_SCL_E, FN_AVB_GTX_CLK, - FN_SSI_WS6_B, FN_DREQ0_N, FN_SCIFB1_RXD, + FN_SSI_WS6_B, + FN_DREQ0_N, FN_SCIFB1_RXD, /* IPSR8 */ FN_ETH_MDC, FN_VI0_R3, FN_SCIF3_TXD_B, FN_I2C4_SDA_E, FN_AVB_MDC, - FN_SSI_SDATA6_B, FN_HSCIF0_HRX, FN_VI0_R4, FN_I2C1_SCL_C, - FN_AUDIO_CLKA_B, FN_AVB_MDIO, FN_SSI_SCK78_B, FN_HSCIF0_HTX, - FN_VI0_R5, FN_I2C1_SDA_C, FN_AUDIO_CLKB_B, FN_AVB_LINK, FN_SSI_WS78_B, + FN_SSI_SDATA6_B, + FN_HSCIF0_HRX, FN_VI0_R4, FN_I2C1_SCL_C, FN_AUDIO_CLKA_B, FN_AVB_MDIO, + FN_SSI_SCK78_B, + FN_HSCIF0_HTX, FN_VI0_R5, FN_I2C1_SDA_C, FN_AUDIO_CLKB_B, FN_AVB_LINK, + FN_SSI_WS78_B, FN_HSCIF0_HCTS_N, FN_VI0_R6, FN_SCIF0_RXD_D, FN_I2C0_SCL_E, - FN_AVB_MAGIC, FN_SSI_SDATA7_B, FN_HSCIF0_HRTS_N, FN_VI0_R7, - FN_SCIF0_TXD_D, FN_I2C0_SDA_E, FN_AVB_PHY_INT, FN_SSI_SDATA8_B, + FN_AVB_MAGIC, FN_SSI_SDATA7_B, + FN_HSCIF0_HRTS_N, FN_VI0_R7, FN_SCIF0_TXD_D, FN_I2C0_SDA_E, + FN_AVB_PHY_INT, FN_SSI_SDATA8_B, FN_HSCIF0_HSCK, FN_SCIF_CLK_B, FN_AVB_CRS, FN_AUDIO_CLKC_B, FN_I2C0_SCL, FN_SCIF0_RXD_C, FN_PWM5, FN_TCLK1_B, FN_AVB_GTXREFCLK, - FN_CAN1_RX_D, FN_TPUTO0_B, FN_I2C0_SDA, FN_SCIF0_TXD_C, FN_TPUTO0, - FN_CAN_CLK, FN_DVC_MUTE, FN_CAN1_TX_D, FN_I2C1_SCL, FN_SCIF4_RXD, - FN_PWM5_B, FN_DU1_DR0, FN_RIF1_SYNC_B, FN_TS_SDATA_D, FN_TPUTO1_B, - FN_I2C1_SDA, FN_SCIF4_TXD, FN_IRQ5, FN_DU1_DR1, FN_RIF1_CLK_B, - FN_TS_SCK_D, FN_BPFCLK_C, FN_MSIOF0_RXD, FN_SCIF5_RXD, FN_I2C2_SCL_C, - FN_DU1_DR2, FN_RIF1_D0_B, FN_TS_SDEN_D, FN_FMCLK_C, FN_RDS_CLK, + FN_CAN1_RX_D, FN_TPUTO0_B, + FN_I2C0_SDA, FN_SCIF0_TXD_C, FN_TPUTO0, FN_CAN_CLK, FN_DVC_MUTE, + FN_CAN1_TX_D, + FN_I2C1_SCL, FN_SCIF4_RXD, FN_PWM5_B, FN_DU1_DR0, FN_TS_SDATA_D, + FN_TPUTO1_B, + FN_I2C1_SDA, FN_SCIF4_TXD, FN_IRQ5, FN_DU1_DR1, FN_TS_SCK_D, + FN_BPFCLK_C, + FN_MSIOF0_RXD, FN_SCIF5_RXD, FN_I2C2_SCL_C, FN_DU1_DR2, FN_TS_SDEN_D, + FN_FMCLK_C, /* IPSR9 */ - FN_MSIOF0_TXD, FN_SCIF5_TXD, FN_I2C2_SDA_C, FN_DU1_DR3, FN_RIF1_D1_B, - FN_TS_SPSYNC_D, FN_FMIN_C, FN_RDS_DATA, FN_MSIOF0_SCK, FN_IRQ0, - FN_TS_SDATA, FN_DU1_DR4, FN_RIF1_SYNC, FN_TPUTO1_C, FN_MSIOF0_SYNC, - FN_PWM1, FN_TS_SCK, FN_DU1_DR5, FN_RIF1_CLK, FN_BPFCLK_B, FN_MSIOF0_SS1, - FN_SCIFA0_RXD, FN_TS_SDEN, FN_DU1_DR6, FN_RIF1_D0, FN_FMCLK_B, - FN_RDS_CLK_B, FN_MSIOF0_SS2, FN_SCIFA0_TXD, FN_TS_SPSYNC, FN_DU1_DR7, - FN_RIF1_D1, FN_FMIN_B, FN_RDS_DATA_B, FN_HSCIF1_HRX, FN_I2C4_SCL, - FN_PWM6, FN_DU1_DG0, FN_HSCIF1_HTX, FN_I2C4_SDA, FN_TPUTO1, FN_DU1_DG1, + FN_MSIOF0_TXD, FN_SCIF5_TXD, FN_I2C2_SDA_C, FN_DU1_DR3, FN_TS_SPSYNC_D, + FN_FMIN_C, + FN_MSIOF0_SCK, FN_IRQ0, FN_TS_SDATA, FN_DU1_DR4, FN_TPUTO1_C, + FN_MSIOF0_SYNC, FN_PWM1, FN_TS_SCK, FN_DU1_DR5, FN_BPFCLK_B, + FN_MSIOF0_SS1, FN_SCIFA0_RXD, FN_TS_SDEN, FN_DU1_DR6, FN_FMCLK_B, + FN_MSIOF0_SS2, FN_SCIFA0_TXD, FN_TS_SPSYNC, FN_DU1_DR7, FN_FMIN_B, + FN_HSCIF1_HRX, FN_I2C4_SCL, FN_PWM6, FN_DU1_DG0, + FN_HSCIF1_HTX, FN_I2C4_SDA, FN_TPUTO1, FN_DU1_DG1, FN_HSCIF1_HSCK, FN_PWM2, FN_IETX, FN_DU1_DG2, FN_REMOCON_B, - FN_SPEEDIN_B, FN_VSP_B, FN_HSCIF1_HCTS_N, FN_SCIFA4_RXD, FN_IECLK, - FN_DU1_DG3, FN_SSI_SCK1_B, FN_CAN_DEBUG_HW_TRIGGER, FN_CC50_STATE32, + FN_SPEEDIN_B, + FN_HSCIF1_HCTS_N, FN_SCIFA4_RXD, FN_IECLK, FN_DU1_DG3, FN_SSI_SCK1_B, FN_HSCIF1_HRTS_N, FN_SCIFA4_TXD, FN_IERX, FN_DU1_DG4, FN_SSI_WS1_B, - FN_CAN_STEP0, FN_CC50_STATE33, FN_SCIF1_SCK, FN_PWM3, FN_TCLK2, - FN_DU1_DG5, FN_SSI_SDATA1_B, FN_CAN_TXCLK, FN_CC50_STATE34, + FN_SCIF1_SCK, FN_PWM3, FN_TCLK2, FN_DU1_DG5, FN_SSI_SDATA1_B, /* IPSR10 */ - FN_SCIF1_RXD, FN_I2C5_SCL, FN_DU1_DG6, FN_SSI_SCK2_B, FN_CAN_DEBUGOUT0, - FN_CC50_STATE35, FN_SCIF1_TXD, FN_I2C5_SDA, FN_DU1_DG7, FN_SSI_WS2_B, - FN_CAN_DEBUGOUT1, FN_CC50_STATE36, FN_SCIF2_RXD, FN_IIC0_SCL, - FN_DU1_DB0, FN_SSI_SDATA2_B, FN_USB0_EXTLP, FN_CAN_DEBUGOUT2, - FN_CC50_STATE37, FN_SCIF2_TXD, FN_IIC0_SDA, FN_DU1_DB1, FN_SSI_SCK9_B, - FN_USB0_OVC1, FN_CAN_DEBUGOUT3, FN_CC50_STATE38, FN_SCIF2_SCK, FN_IRQ1, - FN_DU1_DB2, FN_SSI_WS9_B, FN_USB0_IDIN, FN_CAN_DEBUGOUT4, - FN_CC50_STATE39, FN_SCIF3_SCK, FN_IRQ2, FN_BPFCLK_D, FN_DU1_DB3, - FN_SSI_SDATA9_B, FN_TANS2, FN_CAN_DEBUGOUT5, FN_CC50_OSCOUT, + FN_SCIF1_RXD, FN_I2C5_SCL, FN_DU1_DG6, FN_SSI_SCK2_B, + FN_SCIF1_TXD, FN_I2C5_SDA, FN_DU1_DG7, FN_SSI_WS2_B, + FN_SCIF2_RXD, FN_IIC0_SCL, FN_DU1_DB0, FN_SSI_SDATA2_B, + FN_SCIF2_TXD, FN_IIC0_SDA, FN_DU1_DB1, FN_SSI_SCK9_B, + FN_SCIF2_SCK, FN_IRQ1, FN_DU1_DB2, FN_SSI_WS9_B, + FN_SCIF3_SCK, FN_IRQ2, FN_BPFCLK_D, FN_DU1_DB3, FN_SSI_SDATA9_B, FN_SCIF3_RXD, FN_I2C1_SCL_E, FN_FMCLK_D, FN_DU1_DB4, FN_AUDIO_CLKA_C, - FN_SSI_SCK4_B, FN_CAN_DEBUGOUT6, FN_RDS_CLK_C, FN_SCIF3_TXD, - FN_I2C1_SDA_E, FN_FMIN_D, FN_DU1_DB5, FN_AUDIO_CLKB_C, FN_SSI_WS4_B, - FN_CAN_DEBUGOUT7, FN_RDS_DATA_C, FN_I2C2_SCL, FN_SCIFA5_RXD, FN_DU1_DB6, - FN_AUDIO_CLKC_C, FN_SSI_SDATA4_B, FN_CAN_DEBUGOUT8, FN_I2C2_SDA, - FN_SCIFA5_TXD, FN_DU1_DB7, FN_AUDIO_CLKOUT_C, FN_CAN_DEBUGOUT9, - FN_SSI_SCK5, FN_SCIFA3_SCK, FN_DU1_DOTCLKIN, FN_CAN_DEBUGOUT10, + FN_SSI_SCK4_B, + FN_SCIF3_TXD, FN_I2C1_SDA_E, FN_FMIN_D, FN_DU1_DB5, FN_AUDIO_CLKB_C, + FN_SSI_WS4_B, + FN_I2C2_SCL, FN_SCIFA5_RXD, FN_DU1_DB6, FN_AUDIO_CLKC_C, + FN_SSI_SDATA4_B, + FN_I2C2_SDA, FN_SCIFA5_TXD, FN_DU1_DB7, FN_AUDIO_CLKOUT_C, + FN_SSI_SCK5, FN_SCIFA3_SCK, FN_DU1_DOTCLKIN, /* IPSR11 */ FN_SSI_WS5, FN_SCIFA3_RXD, FN_I2C3_SCL_C, FN_DU1_DOTCLKOUT0, - FN_CAN_DEBUGOUT11, FN_SSI_SDATA5, FN_SCIFA3_TXD, FN_I2C3_SDA_C, - FN_DU1_DOTCLKOUT1, FN_CAN_DEBUGOUT12, FN_SSI_SCK6, FN_SCIFA1_SCK_B, - FN_DU1_EXHSYNC_DU1_HSYNC, FN_CAN_DEBUGOUT13, FN_SSI_WS6, - FN_SCIFA1_RXD_B, FN_I2C4_SCL_C, FN_DU1_EXVSYNC_DU1_VSYNC, - FN_CAN_DEBUGOUT14, FN_SSI_SDATA6, FN_SCIFA1_TXD_B, FN_I2C4_SDA_C, - FN_DU1_EXODDF_DU1_ODDF_DISP_CDE, FN_CAN_DEBUGOUT15, FN_SSI_SCK78, - FN_SCIFA2_SCK_B, FN_I2C5_SDA_C, FN_DU1_DISP, FN_SSI_WS78, - FN_SCIFA2_RXD_B, FN_I2C5_SCL_C, FN_DU1_CDE, FN_SSI_SDATA7, - FN_SCIFA2_TXD_B, FN_IRQ8, FN_AUDIO_CLKA_D, FN_CAN_CLK_D, FN_PCMOE_N, + FN_SSI_SDATA5, FN_SCIFA3_TXD, FN_I2C3_SDA_C, FN_DU1_DOTCLKOUT1, + FN_SSI_SCK6, FN_SCIFA1_SCK_B, FN_DU1_EXHSYNC_DU1_HSYNC, + FN_SSI_WS6, FN_SCIFA1_RXD_B, FN_I2C4_SCL_C, FN_DU1_EXVSYNC_DU1_VSYNC, + FN_SSI_SDATA6, FN_SCIFA1_TXD_B, FN_I2C4_SDA_C, + FN_DU1_EXODDF_DU1_ODDF_DISP_CDE, + FN_SSI_SCK78, FN_SCIFA2_SCK_B, FN_I2C5_SDA_C, FN_DU1_DISP, + FN_SSI_WS78, FN_SCIFA2_RXD_B, FN_I2C5_SCL_C, FN_DU1_CDE, + FN_SSI_SDATA7, FN_SCIFA2_TXD_B, FN_IRQ8, FN_AUDIO_CLKA_D, FN_CAN_CLK_D, FN_SSI_SCK0129, FN_MSIOF1_RXD_B, FN_SCIF5_RXD_D, FN_ADIDATA_B, - FN_AD_DI_B, FN_PCMWE_N, FN_SSI_WS0129, FN_MSIOF1_TXD_B, FN_SCIF5_TXD_D, - FN_ADICS_SAMP_B, FN_AD_DO_B, FN_SSI_SDATA0, FN_MSIOF1_SCK_B, FN_PWM0_B, - FN_ADICLK_B, FN_AD_CLK_B, + FN_SSI_WS0129, FN_MSIOF1_TXD_B, FN_SCIF5_TXD_D, FN_ADICS_SAMP_B, + FN_SSI_SDATA0, FN_MSIOF1_SCK_B, FN_PWM0_B, FN_ADICLK_B, /* IPSR12 */ FN_SSI_SCK34, FN_MSIOF1_SYNC_B, FN_SCIFA1_SCK_C, FN_ADICHS0_B, - FN_AD_NCS_N_B, FN_DREQ1_N_B, FN_SSI_WS34, FN_MSIOF1_SS1_B, - FN_SCIFA1_RXD_C, FN_ADICHS1_B, FN_CAN1_RX_C, FN_DACK1_B, FN_SSI_SDATA3, - FN_MSIOF1_SS2_B, FN_SCIFA1_TXD_C, FN_ADICHS2_B, FN_CAN1_TX_C, - FN_DREQ2_N, FN_SSI_SCK4, FN_MLB_CLK, FN_IETX_B, FN_IRD_TX, FN_SSI_WS4, - FN_MLB_SIG, FN_IECLK_B, FN_IRD_RX, FN_SSI_SDATA4, FN_MLB_DAT, - FN_IERX_B, FN_IRD_SCK, FN_SSI_SDATA8, FN_SCIF1_SCK_B, - FN_PWM1_B, FN_IRQ9, FN_REMOCON, FN_DACK2, FN_ETH_MDIO_B, FN_SSI_SCK1, - FN_SCIF1_RXD_B, FN_IIC0_SCL_C, FN_VI1_CLK, FN_CAN0_RX_D, - FN_AVB_AVTP_CAPTURE, FN_ETH_CRS_DV_B, FN_SSI_WS1, FN_SCIF1_TXD_B, - FN_IIC0_SDA_C, FN_VI1_DATA0, FN_CAN0_TX_D, FN_AVB_AVTP_MATCH, - FN_ETH_RX_ER_B, FN_SSI_SDATA1, FN_HSCIF1_HRX_B, FN_SDATA, FN_VI1_DATA1, - FN_ATAWR0_N, FN_ETH_RXD0_B, FN_SSI_SCK2, FN_HSCIF1_HTX_B, FN_VI1_DATA2, - FN_MDATA, FN_ATAG0_N, FN_ETH_RXD1_B, + FN_DREQ1_N_B, + FN_SSI_WS34, FN_MSIOF1_SS1_B, FN_SCIFA1_RXD_C, FN_ADICHS1_B, + FN_CAN1_RX_C, FN_DACK1_B, + FN_SSI_SDATA3, FN_MSIOF1_SS2_B, FN_SCIFA1_TXD_C, FN_ADICHS2_B, + FN_CAN1_TX_C, FN_DREQ2_N, + FN_SSI_SCK4, FN_MLB_CLK, FN_IETX_B, FN_SSI_WS4, FN_MLB_SIG, FN_IECLK_B, + FN_SSI_SDATA4, FN_MLB_DAT, FN_IERX_B, + FN_SSI_SDATA8, FN_SCIF1_SCK_B, FN_PWM1_B, FN_IRQ9, FN_REMOCON, + FN_DACK2, FN_ETH_MDIO_B, + FN_SSI_SCK1, FN_SCIF1_RXD_B, FN_IIC0_SCL_C, FN_VI1_CLK, FN_CAN0_RX_D, + FN_ETH_CRS_DV_B, + FN_SSI_WS1, FN_SCIF1_TXD_B, FN_IIC0_SDA_C, FN_VI1_DATA0, FN_CAN0_TX_D, + FN_ETH_RX_ER_B, + FN_SSI_SDATA1, FN_HSCIF1_HRX_B, FN_VI1_DATA1, FN_ATAWR0_N, + FN_ETH_RXD0_B, + FN_SSI_SCK2, FN_HSCIF1_HTX_B, FN_VI1_DATA2, FN_ATAG0_N, FN_ETH_RXD1_B, /* IPSR13 */ - FN_SSI_WS2, FN_HSCIF1_HCTS_N_B, FN_SCIFA0_RXD_D, FN_VI1_DATA3, FN_SCKZ, - FN_ATACS00_N, FN_ETH_LINK_B, FN_SSI_SDATA2, FN_HSCIF1_HRTS_N_B, - FN_SCIFA0_TXD_D, FN_VI1_DATA4, FN_STM_N, FN_ATACS10_N, FN_ETH_REFCLK_B, - FN_SSI_SCK9, FN_SCIF2_SCK_B, FN_PWM2_B, FN_VI1_DATA5, FN_MTS_N, - FN_EX_WAIT1, FN_ETH_TXD1_B, FN_SSI_WS9, FN_SCIF2_RXD_B, FN_I2C3_SCL_E, - FN_VI1_DATA6, FN_ATARD0_N, FN_ETH_TX_EN_B, FN_SSI_SDATA9, - FN_SCIF2_TXD_B, FN_I2C3_SDA_E, FN_VI1_DATA7, FN_ATADIR0_N, - FN_ETH_MAGIC_B, FN_AUDIO_CLKA, FN_I2C0_SCL_B, FN_SCIFA4_RXD_D, - FN_VI1_CLKENB, FN_TS_SDATA_C, FN_RIF0_SYNC_B, FN_ETH_TXD0_B, + FN_SSI_WS2, FN_HSCIF1_HCTS_N_B, FN_SCIFA0_RXD_D, FN_VI1_DATA3, + FN_ATACS00_N, FN_ETH_LINK_B, + FN_SSI_SDATA2, FN_HSCIF1_HRTS_N_B, FN_SCIFA0_TXD_D, FN_VI1_DATA4, + FN_ATACS10_N, FN_ETH_REFCLK_B, + FN_SSI_SCK9, FN_SCIF2_SCK_B, FN_PWM2_B, FN_VI1_DATA5, FN_EX_WAIT1, + FN_ETH_TXD1_B, + FN_SSI_WS9, FN_SCIF2_RXD_B, FN_I2C3_SCL_E, FN_VI1_DATA6, FN_ATARD0_N, + FN_ETH_TX_EN_B, + FN_SSI_SDATA9, FN_SCIF2_TXD_B, FN_I2C3_SDA_E, FN_VI1_DATA7, + FN_ATADIR0_N, FN_ETH_MAGIC_B, + FN_AUDIO_CLKA, FN_I2C0_SCL_B, FN_SCIFA4_RXD_D, FN_VI1_CLKENB, + FN_TS_SDATA_C, FN_ETH_TXD0_B, FN_AUDIO_CLKB, FN_I2C0_SDA_B, FN_SCIFA4_TXD_D, FN_VI1_FIELD, - FN_TS_SCK_C, FN_RIF0_CLK_B, FN_BPFCLK_E, FN_ETH_MDC_B, FN_AUDIO_CLKC, - FN_I2C4_SCL_B, FN_SCIFA5_RXD_D, FN_VI1_HSYNC_N, FN_TS_SDEN_C, - FN_RIF0_D0_B, FN_FMCLK_E, FN_RDS_CLK_D, FN_AUDIO_CLKOUT, FN_I2C4_SDA_B, - FN_SCIFA5_TXD_D, FN_VI1_VSYNC_N, FN_TS_SPSYNC_C, FN_RIF0_D1_B, - FN_FMIN_E, FN_RDS_DATA_D, + FN_TS_SCK_C, FN_BPFCLK_E, FN_ETH_MDC_B, + FN_AUDIO_CLKC, FN_I2C4_SCL_B, FN_SCIFA5_RXD_D, FN_VI1_HSYNC_N, + FN_TS_SDEN_C, FN_FMCLK_E, + FN_AUDIO_CLKOUT, FN_I2C4_SDA_B, FN_SCIFA5_TXD_D, FN_VI1_VSYNC_N, + FN_TS_SPSYNC_C, FN_FMIN_E, /* MOD_SEL */ FN_SEL_ADG_0, FN_SEL_ADG_1, FN_SEL_ADG_2, FN_SEL_ADG_3, - FN_SEL_ADI_0, FN_SEL_ADI_1, FN_SEL_CAN_0, FN_SEL_CAN_1, - FN_SEL_CAN_2, FN_SEL_CAN_3, FN_SEL_DARC_0, FN_SEL_DARC_1, - FN_SEL_DARC_2, FN_SEL_DARC_3, FN_SEL_DARC_4, FN_SEL_DR0_0, - FN_SEL_DR0_1, FN_SEL_DR1_0, FN_SEL_DR1_1, FN_SEL_DR2_0, FN_SEL_DR2_1, - FN_SEL_DR3_0, FN_SEL_DR3_1, FN_SEL_ETH_0, FN_SEL_ETH_1, FN_SEL_FSN_0, - FN_SEL_FSN_1, FN_SEL_I2C00_0, FN_SEL_I2C00_1, FN_SEL_I2C00_2, - FN_SEL_I2C00_3, FN_SEL_I2C00_4, FN_SEL_I2C01_0, FN_SEL_I2C01_1, - FN_SEL_I2C01_2, FN_SEL_I2C01_3, FN_SEL_I2C01_4, FN_SEL_I2C02_0, - FN_SEL_I2C02_1, FN_SEL_I2C02_2, FN_SEL_I2C02_3, FN_SEL_I2C02_4, + FN_SEL_CAN_0, FN_SEL_CAN_1, FN_SEL_CAN_2, FN_SEL_CAN_3, + FN_SEL_DARC_0, FN_SEL_DARC_1, FN_SEL_DARC_2, FN_SEL_DARC_3, + FN_SEL_DARC_4, + FN_SEL_ETH_0, FN_SEL_ETH_1, + FN_SEL_I2C00_0, FN_SEL_I2C00_1, FN_SEL_I2C00_2, FN_SEL_I2C00_3, + FN_SEL_I2C00_4, + FN_SEL_I2C01_0, FN_SEL_I2C01_1, FN_SEL_I2C01_2, FN_SEL_I2C01_3, + FN_SEL_I2C01_4, + FN_SEL_I2C02_0, FN_SEL_I2C02_1, FN_SEL_I2C02_2, FN_SEL_I2C02_3, + FN_SEL_I2C02_4, FN_SEL_I2C03_0, FN_SEL_I2C03_1, FN_SEL_I2C03_2, FN_SEL_I2C03_3, - FN_SEL_I2C03_4, FN_SEL_I2C04_0, FN_SEL_I2C04_1, FN_SEL_I2C04_2, - FN_SEL_I2C04_3, FN_SEL_I2C04_4, FN_SEL_I2C05_0, FN_SEL_I2C05_1, - FN_SEL_I2C05_2, FN_SEL_I2C05_3, FN_SEL_AVB_0, FN_SEL_AVB_1, + FN_SEL_I2C03_4, + FN_SEL_I2C04_0, FN_SEL_I2C04_1, FN_SEL_I2C04_2, FN_SEL_I2C04_3, + FN_SEL_I2C04_4, + FN_SEL_I2C05_0, FN_SEL_I2C05_1, FN_SEL_I2C05_2, FN_SEL_I2C05_3, /* MOD_SEL2 */ - FN_SEL_IEB_0, FN_SEL_IEB_1, FN_SEL_IEB_2, FN_SEL_IIC0_0, - FN_SEL_IIC0_1, FN_SEL_IIC0_2, FN_SEL_IIC0_3, FN_SEL_LBS_0, - FN_SEL_LBS_1, FN_SEL_MSI1_0, FN_SEL_MSI1_1, FN_SEL_MSI2_0, - FN_SEL_MSI2_1, FN_SEL_RAD_0, FN_SEL_RAD_1, FN_SEL_RCN_0, - FN_SEL_RCN_1, FN_SEL_RSP_0, FN_SEL_RSP_1, FN_SEL_SCIFA0_0, - FN_SEL_SCIFA0_1, FN_SEL_SCIFA0_2, FN_SEL_SCIFA0_3, FN_SEL_SCIFA1_0, - FN_SEL_SCIFA1_1, FN_SEL_SCIFA1_2, FN_SEL_SCIFA2_0, FN_SEL_SCIFA2_1, - FN_SEL_SCIFA3_0, FN_SEL_SCIFA3_1, FN_SEL_SCIFA4_0, FN_SEL_SCIFA4_1, - FN_SEL_SCIFA4_2, FN_SEL_SCIFA4_3, FN_SEL_SCIFA5_0, FN_SEL_SCIFA5_1, - FN_SEL_SCIFA5_2, FN_SEL_SCIFA5_3, FN_SEL_SPDM_0, FN_SEL_SPDM_1, - FN_SEL_TMU_0, FN_SEL_TMU_1, FN_SEL_TSIF0_0, FN_SEL_TSIF0_1, - FN_SEL_TSIF0_2, FN_SEL_TSIF0_3, FN_SEL_CAN0_0, FN_SEL_CAN0_1, - FN_SEL_CAN0_2, FN_SEL_CAN0_3, FN_SEL_CAN1_0, FN_SEL_CAN1_1, - FN_SEL_CAN1_2, FN_SEL_CAN1_3, FN_SEL_HSCIF0_0, FN_SEL_HSCIF0_1, - FN_SEL_HSCIF1_0, FN_SEL_HSCIF1_1, FN_SEL_RDS_0, FN_SEL_RDS_1, - FN_SEL_RDS_2, FN_SEL_RDS_3, + FN_SEL_IEB_0, FN_SEL_IEB_1, FN_SEL_IEB_2, + FN_SEL_IIC0_0, FN_SEL_IIC0_1, FN_SEL_IIC0_2, FN_SEL_IIC0_3, + FN_SEL_LBS_0, FN_SEL_LBS_1, FN_SEL_MSI1_0, FN_SEL_MSI1_1, + FN_SEL_MSI2_0, FN_SEL_MSI2_1, FN_SEL_RAD_0, FN_SEL_RAD_1, + FN_SEL_RCN_0, FN_SEL_RCN_1, FN_SEL_RSP_0, FN_SEL_RSP_1, + FN_SEL_SCIFA0_0, FN_SEL_SCIFA0_1, FN_SEL_SCIFA0_2, FN_SEL_SCIFA0_3, + FN_SEL_SCIFA1_0, FN_SEL_SCIFA1_1, FN_SEL_SCIFA1_2, + FN_SEL_SCIFA2_0, FN_SEL_SCIFA2_1, FN_SEL_SCIFA3_0, FN_SEL_SCIFA3_1, + FN_SEL_SCIFA4_0, FN_SEL_SCIFA4_1, FN_SEL_SCIFA4_2, FN_SEL_SCIFA4_3, + FN_SEL_SCIFA5_0, FN_SEL_SCIFA5_1, FN_SEL_SCIFA5_2, FN_SEL_SCIFA5_3, + FN_SEL_TMU_0, FN_SEL_TMU_1, + FN_SEL_TSIF0_0, FN_SEL_TSIF0_1, FN_SEL_TSIF0_2, FN_SEL_TSIF0_3, + FN_SEL_CAN0_0, FN_SEL_CAN0_1, FN_SEL_CAN0_2, FN_SEL_CAN0_3, + FN_SEL_CAN1_0, FN_SEL_CAN1_1, FN_SEL_CAN1_2, FN_SEL_CAN1_3, + FN_SEL_HSCIF0_0, FN_SEL_HSCIF0_1, FN_SEL_HSCIF1_0, FN_SEL_HSCIF1_1, /* MOD_SEL3 */ FN_SEL_SCIF0_0, FN_SEL_SCIF0_1, FN_SEL_SCIF0_2, FN_SEL_SCIF0_3, @@ -389,117 +433,141 @@ enum { SCIF4_RXD_B_MARK, I2C0_SCL_D_MARK, /* IPSR1 */ - D6_MARK, SCIF4_TXD_B_MARK, I2C0_SDA_D_MARK, D7_MARK, IRQ3_MARK, - TCLK1_MARK, PWM6_B_MARK, D8_MARK, HSCIF2_HRX_MARK, I2C1_SCL_B_MARK, - D9_MARK, HSCIF2_HTX_MARK, I2C1_SDA_B_MARK, D10_MARK, - HSCIF2_HSCK_MARK, SCIF1_SCK_C_MARK, IRQ6_MARK, PWM5_C_MARK, + D6_MARK, SCIF4_TXD_B_MARK, I2C0_SDA_D_MARK, + D7_MARK, IRQ3_MARK, TCLK1_MARK, PWM6_B_MARK, + D8_MARK, HSCIF2_HRX_MARK, I2C1_SCL_B_MARK, + D9_MARK, HSCIF2_HTX_MARK, I2C1_SDA_B_MARK, + D10_MARK, HSCIF2_HSCK_MARK, SCIF1_SCK_C_MARK, IRQ6_MARK, PWM5_C_MARK, D11_MARK, HSCIF2_HCTS_N_MARK, SCIF1_RXD_C_MARK, I2C1_SCL_D_MARK, D12_MARK, HSCIF2_HRTS_N_MARK, SCIF1_TXD_C_MARK, I2C1_SDA_D_MARK, - D13_MARK, SCIFA1_SCK_MARK, TANS1_MARK, PWM2_C_MARK, TCLK2_B_MARK, - D14_MARK, SCIFA1_RXD_MARK, I2C5_SCL_B_MARK, D15_MARK, SCIFA1_TXD_MARK, - I2C5_SDA_B_MARK, A0_MARK, SCIFB1_SCK_MARK, PWM3_B_MARK, A1_MARK, - SCIFB1_TXD_MARK, A3_MARK, SCIFB0_SCK_MARK, A4_MARK, SCIFB0_TXD_MARK, - A5_MARK, SCIFB0_RXD_MARK, PWM4_B_MARK, TPUTO3_C_MARK, A6_MARK, - SCIFB0_CTS_N_MARK, SCIFA4_RXD_B_MARK, TPUTO2_C_MARK, + D13_MARK, SCIFA1_SCK_MARK, PWM2_C_MARK, TCLK2_B_MARK, + D14_MARK, SCIFA1_RXD_MARK, I2C5_SCL_B_MARK, + D15_MARK, SCIFA1_TXD_MARK, I2C5_SDA_B_MARK, + A0_MARK, SCIFB1_SCK_MARK, PWM3_B_MARK, + A1_MARK, SCIFB1_TXD_MARK, + A3_MARK, SCIFB0_SCK_MARK, + A4_MARK, SCIFB0_TXD_MARK, + A5_MARK, SCIFB0_RXD_MARK, PWM4_B_MARK, TPUTO3_C_MARK, + A6_MARK, SCIFB0_CTS_N_MARK, SCIFA4_RXD_B_MARK, TPUTO2_C_MARK, /* IPSR2 */ - A7_MARK, SCIFB0_RTS_N_MARK, SCIFA4_TXD_B_MARK, A8_MARK, MSIOF1_RXD_MARK, - SCIFA0_RXD_B_MARK, A9_MARK, MSIOF1_TXD_MARK, SCIFA0_TXD_B_MARK, - A10_MARK, MSIOF1_SCK_MARK, IIC0_SCL_B_MARK, A11_MARK, MSIOF1_SYNC_MARK, - IIC0_SDA_B_MARK, A12_MARK, MSIOF1_SS1_MARK, SCIFA5_RXD_B_MARK, - A13_MARK, MSIOF1_SS2_MARK, SCIFA5_TXD_B_MARK, A14_MARK, MSIOF2_RXD_MARK, - HSCIF0_HRX_B_MARK, DREQ1_N_MARK, A15_MARK, MSIOF2_TXD_MARK, - HSCIF0_HTX_B_MARK, DACK1_MARK, A16_MARK, MSIOF2_SCK_MARK, - HSCIF0_HSCK_B_MARK, SPEEDIN_MARK, VSP_MARK, CAN_CLK_C_MARK, - TPUTO2_B_MARK, A17_MARK, MSIOF2_SYNC_MARK, SCIF4_RXD_E_MARK, - CAN1_RX_B_MARK, AVB_AVTP_CAPTURE_B_MARK, A18_MARK, MSIOF2_SS1_MARK, - SCIF4_TXD_E_MARK, CAN1_TX_B_MARK, AVB_AVTP_MATCH_B_MARK, A19_MARK, - MSIOF2_SS2_MARK, PWM4_MARK, TPUTO2_MARK, MOUT0_MARK, A20_MARK, - SPCLK_MARK, MOUT1_MARK, + A7_MARK, SCIFB0_RTS_N_MARK, SCIFA4_TXD_B_MARK, + A8_MARK, MSIOF1_RXD_MARK, SCIFA0_RXD_B_MARK, + A9_MARK, MSIOF1_TXD_MARK, SCIFA0_TXD_B_MARK, + A10_MARK, MSIOF1_SCK_MARK, IIC0_SCL_B_MARK, + A11_MARK, MSIOF1_SYNC_MARK, IIC0_SDA_B_MARK, + A12_MARK, MSIOF1_SS1_MARK, SCIFA5_RXD_B_MARK, + A13_MARK, MSIOF1_SS2_MARK, SCIFA5_TXD_B_MARK, + A14_MARK, MSIOF2_RXD_MARK, HSCIF0_HRX_B_MARK, DREQ1_N_MARK, + A15_MARK, MSIOF2_TXD_MARK, HSCIF0_HTX_B_MARK, DACK1_MARK, + A16_MARK, MSIOF2_SCK_MARK, HSCIF0_HSCK_B_MARK, SPEEDIN_MARK, + CAN_CLK_C_MARK, TPUTO2_B_MARK, + A17_MARK, MSIOF2_SYNC_MARK, SCIF4_RXD_E_MARK, CAN1_RX_B_MARK, + A18_MARK, MSIOF2_SS1_MARK, SCIF4_TXD_E_MARK, CAN1_TX_B_MARK, + A19_MARK, MSIOF2_SS2_MARK, PWM4_MARK, TPUTO2_MARK, + A20_MARK, SPCLK_MARK, /* IPSR3 */ - A21_MARK, MOSI_IO0_MARK, MOUT2_MARK, A22_MARK, MISO_IO1_MARK, - MOUT5_MARK, ATADIR1_N_MARK, A23_MARK, IO2_MARK, MOUT6_MARK, - ATAWR1_N_MARK, A24_MARK, IO3_MARK, EX_WAIT2_MARK, A25_MARK, SSL_MARK, - ATARD1_N_MARK, CS0_N_MARK, VI1_DATA8_MARK, CS1_N_A26_MARK, - VI1_DATA9_MARK, EX_CS0_N_MARK, VI1_DATA10_MARK, EX_CS1_N_MARK, - TPUTO3_B_MARK, SCIFB2_RXD_MARK, VI1_DATA11_MARK, EX_CS2_N_MARK, - PWM0_MARK, SCIF4_RXD_C_MARK, TS_SDATA_B_MARK, RIF0_SYNC_MARK, - TPUTO3_MARK, SCIFB2_TXD_MARK, SDATA_B_MARK, EX_CS3_N_MARK, - SCIFA2_SCK_MARK, SCIF4_TXD_C_MARK, TS_SCK_B_MARK, RIF0_CLK_MARK, - BPFCLK_MARK, SCIFB2_SCK_MARK, MDATA_B_MARK, EX_CS4_N_MARK, - SCIFA2_RXD_MARK, I2C2_SCL_E_MARK, TS_SDEN_B_MARK, RIF0_D0_MARK, - FMCLK_MARK, SCIFB2_CTS_N_MARK, SCKZ_B_MARK, EX_CS5_N_MARK, - SCIFA2_TXD_MARK, I2C2_SDA_E_MARK, TS_SPSYNC_B_MARK, RIF0_D1_MARK, - FMIN_MARK, SCIFB2_RTS_N_MARK, STM_N_B_MARK, BS_N_MARK, DRACK0_MARK, - PWM1_C_MARK, TPUTO0_C_MARK, ATACS01_N_MARK, MTS_N_B_MARK, RD_N_MARK, - ATACS11_N_MARK, RD_WR_N_MARK, ATAG1_N_MARK, + A21_MARK, MOSI_IO0_MARK, + A22_MARK, MISO_IO1_MARK, ATADIR1_N_MARK, + A23_MARK, IO2_MARK, ATAWR1_N_MARK, + A24_MARK, IO3_MARK, EX_WAIT2_MARK, + A25_MARK, SSL_MARK, ATARD1_N_MARK, + CS0_N_MARK, VI1_DATA8_MARK, + CS1_N_A26_MARK, VI1_DATA9_MARK, + EX_CS0_N_MARK, VI1_DATA10_MARK, + EX_CS1_N_MARK, TPUTO3_B_MARK, SCIFB2_RXD_MARK, VI1_DATA11_MARK, + EX_CS2_N_MARK, PWM0_MARK, SCIF4_RXD_C_MARK, TS_SDATA_B_MARK, + TPUTO3_MARK, SCIFB2_TXD_MARK, + EX_CS3_N_MARK, SCIFA2_SCK_MARK, SCIF4_TXD_C_MARK, TS_SCK_B_MARK, + BPFCLK_MARK, SCIFB2_SCK_MARK, + EX_CS4_N_MARK, SCIFA2_RXD_MARK, I2C2_SCL_E_MARK, TS_SDEN_B_MARK, + FMCLK_MARK, SCIFB2_CTS_N_MARK, + EX_CS5_N_MARK, SCIFA2_TXD_MARK, I2C2_SDA_E_MARK, TS_SPSYNC_B_MARK, + FMIN_MARK, SCIFB2_RTS_N_MARK, + BS_N_MARK, DRACK0_MARK, PWM1_C_MARK, TPUTO0_C_MARK, ATACS01_N_MARK, + RD_N_MARK, ATACS11_N_MARK, + RD_WR_N_MARK, ATAG1_N_MARK, /* IPSR4 */ - EX_WAIT0_MARK, CAN_CLK_B_MARK, SCIF_CLK_MARK, PWMFSW0_MARK, + EX_WAIT0_MARK, CAN_CLK_B_MARK, SCIF_CLK_MARK, DU0_DR0_MARK, LCDOUT16_MARK, SCIF5_RXD_C_MARK, I2C2_SCL_D_MARK, - CC50_STATE0_MARK, DU0_DR1_MARK, LCDOUT17_MARK, SCIF5_TXD_C_MARK, - I2C2_SDA_D_MARK, CC50_STATE1_MARK, DU0_DR2_MARK, LCDOUT18_MARK, - CC50_STATE2_MARK, DU0_DR3_MARK, LCDOUT19_MARK, CC50_STATE3_MARK, - DU0_DR4_MARK, LCDOUT20_MARK, CC50_STATE4_MARK, DU0_DR5_MARK, - LCDOUT21_MARK, CC50_STATE5_MARK, DU0_DR6_MARK, LCDOUT22_MARK, - CC50_STATE6_MARK, DU0_DR7_MARK, LCDOUT23_MARK, CC50_STATE7_MARK, + DU0_DR1_MARK, LCDOUT17_MARK, SCIF5_TXD_C_MARK, I2C2_SDA_D_MARK, + DU0_DR2_MARK, LCDOUT18_MARK, + DU0_DR3_MARK, LCDOUT19_MARK, + DU0_DR4_MARK, LCDOUT20_MARK, + DU0_DR5_MARK, LCDOUT21_MARK, + DU0_DR6_MARK, LCDOUT22_MARK, + DU0_DR7_MARK, LCDOUT23_MARK, DU0_DG0_MARK, LCDOUT8_MARK, SCIFA0_RXD_C_MARK, I2C3_SCL_D_MARK, - CC50_STATE8_MARK, DU0_DG1_MARK, LCDOUT9_MARK, SCIFA0_TXD_C_MARK, - I2C3_SDA_D_MARK, CC50_STATE9_MARK, DU0_DG2_MARK, LCDOUT10_MARK, - CC50_STATE10_MARK, DU0_DG3_MARK, LCDOUT11_MARK, CC50_STATE11_MARK, - DU0_DG4_MARK, LCDOUT12_MARK, CC50_STATE12_MARK, + DU0_DG1_MARK, LCDOUT9_MARK, SCIFA0_TXD_C_MARK, I2C3_SDA_D_MARK, + DU0_DG2_MARK, LCDOUT10_MARK, + DU0_DG3_MARK, LCDOUT11_MARK, + DU0_DG4_MARK, LCDOUT12_MARK, /* IPSR5 */ - DU0_DG5_MARK, LCDOUT13_MARK, CC50_STATE13_MARK, DU0_DG6_MARK, - LCDOUT14_MARK, CC50_STATE14_MARK, DU0_DG7_MARK, LCDOUT15_MARK, - CC50_STATE15_MARK, DU0_DB0_MARK, LCDOUT0_MARK, SCIFA4_RXD_C_MARK, - I2C4_SCL_D_MARK, CAN0_RX_C_MARK, CC50_STATE16_MARK, DU0_DB1_MARK, - LCDOUT1_MARK, SCIFA4_TXD_C_MARK, I2C4_SDA_D_MARK, CAN0_TX_C_MARK, - CC50_STATE17_MARK, DU0_DB2_MARK, LCDOUT2_MARK, CC50_STATE18_MARK, - DU0_DB3_MARK, LCDOUT3_MARK, CC50_STATE19_MARK, DU0_DB4_MARK, - LCDOUT4_MARK, CC50_STATE20_MARK, DU0_DB5_MARK, LCDOUT5_MARK, - CC50_STATE21_MARK, DU0_DB6_MARK, LCDOUT6_MARK, CC50_STATE22_MARK, - DU0_DB7_MARK, LCDOUT7_MARK, CC50_STATE23_MARK, DU0_DOTCLKIN_MARK, - QSTVA_QVS_MARK, CC50_STATE24_MARK, DU0_DOTCLKOUT0_MARK, - QCLK_MARK, CC50_STATE25_MARK, DU0_DOTCLKOUT1_MARK, QSTVB_QVE_MARK, - CC50_STATE26_MARK, DU0_EXHSYNC_DU0_HSYNC_MARK, QSTH_QHS_MARK, - CC50_STATE27_MARK, + DU0_DG5_MARK, LCDOUT13_MARK, + DU0_DG6_MARK, LCDOUT14_MARK, + DU0_DG7_MARK, LCDOUT15_MARK, + DU0_DB0_MARK, LCDOUT0_MARK, SCIFA4_RXD_C_MARK, I2C4_SCL_D_MARK, + CAN0_RX_C_MARK, + DU0_DB1_MARK, LCDOUT1_MARK, SCIFA4_TXD_C_MARK, I2C4_SDA_D_MARK, + CAN0_TX_C_MARK, + DU0_DB2_MARK, LCDOUT2_MARK, + DU0_DB3_MARK, LCDOUT3_MARK, + DU0_DB4_MARK, LCDOUT4_MARK, + DU0_DB5_MARK, LCDOUT5_MARK, + DU0_DB6_MARK, LCDOUT6_MARK, + DU0_DB7_MARK, LCDOUT7_MARK, + DU0_DOTCLKIN_MARK, QSTVA_QVS_MARK, + DU0_DOTCLKOUT0_MARK, QCLK_MARK, + DU0_DOTCLKOUT1_MARK, QSTVB_QVE_MARK, + DU0_EXHSYNC_DU0_HSYNC_MARK, QSTH_QHS_MARK, /* IPSR6 */ - DU0_EXVSYNC_DU0_VSYNC_MARK, QSTB_QHE_MARK, CC50_STATE28_MARK, - DU0_EXODDF_DU0_ODDF_DISP_CDE_MARK, QCPV_QDE_MARK, CC50_STATE29_MARK, - DU0_DISP_MARK, QPOLA_MARK, CC50_STATE30_MARK, DU0_CDE_MARK, QPOLB_MARK, - CC50_STATE31_MARK, VI0_CLK_MARK, AVB_RX_CLK_MARK, VI0_DATA0_VI0_B0_MARK, - AVB_RX_DV_MARK, VI0_DATA1_VI0_B1_MARK, AVB_RXD0_MARK, - VI0_DATA2_VI0_B2_MARK, AVB_RXD1_MARK, VI0_DATA3_VI0_B3_MARK, - AVB_RXD2_MARK, VI0_DATA4_VI0_B4_MARK, AVB_RXD3_MARK, - VI0_DATA5_VI0_B5_MARK, AVB_RXD4_MARK, VI0_DATA6_VI0_B6_MARK, - AVB_RXD5_MARK, VI0_DATA7_VI0_B7_MARK, AVB_RXD6_MARK, VI0_CLKENB_MARK, - I2C3_SCL_MARK, SCIFA5_RXD_C_MARK, IETX_C_MARK, AVB_RXD7_MARK, + DU0_EXVSYNC_DU0_VSYNC_MARK, QSTB_QHE_MARK, + DU0_EXODDF_DU0_ODDF_DISP_CDE_MARK, QCPV_QDE_MARK, + DU0_DISP_MARK, QPOLA_MARK, DU0_CDE_MARK, QPOLB_MARK, + VI0_CLK_MARK, AVB_RX_CLK_MARK, VI0_DATA0_VI0_B0_MARK, AVB_RX_DV_MARK, + VI0_DATA1_VI0_B1_MARK, AVB_RXD0_MARK, + VI0_DATA2_VI0_B2_MARK, AVB_RXD1_MARK, + VI0_DATA3_VI0_B3_MARK, AVB_RXD2_MARK, + VI0_DATA4_VI0_B4_MARK, AVB_RXD3_MARK, + VI0_DATA5_VI0_B5_MARK, AVB_RXD4_MARK, + VI0_DATA6_VI0_B6_MARK, AVB_RXD5_MARK, + VI0_DATA7_VI0_B7_MARK, AVB_RXD6_MARK, + VI0_CLKENB_MARK, I2C3_SCL_MARK, SCIFA5_RXD_C_MARK, IETX_C_MARK, + AVB_RXD7_MARK, VI0_FIELD_MARK, I2C3_SDA_MARK, SCIFA5_TXD_C_MARK, IECLK_C_MARK, - AVB_RX_ER_MARK, VI0_HSYNC_N_MARK, SCIF0_RXD_B_MARK, I2C0_SCL_C_MARK, - IERX_C_MARK, AVB_COL_MARK, VI0_VSYNC_N_MARK, SCIF0_TXD_B_MARK, - I2C0_SDA_C_MARK, AUDIO_CLKOUT_B_MARK, AVB_TX_EN_MARK, ETH_MDIO_MARK, - VI0_G0_MARK, MSIOF2_RXD_B_MARK, I2C5_SCL_D_MARK, AVB_TX_CLK_MARK, - ADIDATA_MARK, AD_DI_MARK, + AVB_RX_ER_MARK, + VI0_HSYNC_N_MARK, SCIF0_RXD_B_MARK, I2C0_SCL_C_MARK, IERX_C_MARK, + AVB_COL_MARK, + VI0_VSYNC_N_MARK, SCIF0_TXD_B_MARK, I2C0_SDA_C_MARK, + AUDIO_CLKOUT_B_MARK, AVB_TX_EN_MARK, + ETH_MDIO_MARK, VI0_G0_MARK, MSIOF2_RXD_B_MARK, I2C5_SCL_D_MARK, + AVB_TX_CLK_MARK, ADIDATA_MARK, /* IPSR7 */ ETH_CRS_DV_MARK, VI0_G1_MARK, MSIOF2_TXD_B_MARK, I2C5_SDA_D_MARK, - AVB_TXD0_MARK, ADICS_SAMP_MARK, AD_DO_MARK, ETH_RX_ER_MARK, VI0_G2_MARK, - MSIOF2_SCK_B_MARK, CAN0_RX_B_MARK, AVB_TXD1_MARK, ADICLK_MARK, - AD_CLK_MARK, ETH_RXD0_MARK, VI0_G3_MARK, MSIOF2_SYNC_B_MARK, - CAN0_TX_B_MARK, AVB_TXD2_MARK, ADICHS0_MARK, AD_NCS_N_MARK, + AVB_TXD0_MARK, ADICS_SAMP_MARK, + ETH_RX_ER_MARK, VI0_G2_MARK, MSIOF2_SCK_B_MARK, CAN0_RX_B_MARK, + AVB_TXD1_MARK, ADICLK_MARK, + ETH_RXD0_MARK, VI0_G3_MARK, MSIOF2_SYNC_B_MARK, CAN0_TX_B_MARK, + AVB_TXD2_MARK, ADICHS0_MARK, ETH_RXD1_MARK, VI0_G4_MARK, MSIOF2_SS1_B_MARK, SCIF4_RXD_D_MARK, - AVB_TXD3_MARK, ADICHS1_MARK, ETH_LINK_MARK, VI0_G5_MARK, - MSIOF2_SS2_B_MARK, SCIF4_TXD_D_MARK, AVB_TXD4_MARK, ADICHS2_MARK, + AVB_TXD3_MARK, ADICHS1_MARK, + ETH_LINK_MARK, VI0_G5_MARK, MSIOF2_SS2_B_MARK, SCIF4_TXD_D_MARK, + AVB_TXD4_MARK, ADICHS2_MARK, ETH_REFCLK_MARK, VI0_G6_MARK, SCIF2_SCK_C_MARK, AVB_TXD5_MARK, - SSI_SCK5_B_MARK, ETH_TXD1_MARK, VI0_G7_MARK, SCIF2_RXD_C_MARK, - IIC0_SCL_D_MARK, AVB_TXD6_MARK, SSI_WS5_B_MARK, ETH_TX_EN_MARK, - VI0_R0_MARK, SCIF2_TXD_C_MARK, IIC0_SDA_D_MARK, AVB_TXD7_MARK, - SSI_SDATA5_B_MARK, ETH_MAGIC_MARK, VI0_R1_MARK, SCIF3_SCK_B_MARK, - AVB_TX_ER_MARK, SSI_SCK6_B_MARK, ETH_TXD0_MARK, VI0_R2_MARK, - SCIF3_RXD_B_MARK, I2C4_SCL_E_MARK, AVB_GTX_CLK_MARK, SSI_WS6_B_MARK, + SSI_SCK5_B_MARK, + ETH_TXD1_MARK, VI0_G7_MARK, SCIF2_RXD_C_MARK, IIC0_SCL_D_MARK, + AVB_TXD6_MARK, SSI_WS5_B_MARK, + ETH_TX_EN_MARK, VI0_R0_MARK, SCIF2_TXD_C_MARK, IIC0_SDA_D_MARK, + AVB_TXD7_MARK, SSI_SDATA5_B_MARK, + ETH_MAGIC_MARK, VI0_R1_MARK, SCIF3_SCK_B_MARK, AVB_TX_ER_MARK, + SSI_SCK6_B_MARK, + ETH_TXD0_MARK, VI0_R2_MARK, SCIF3_RXD_B_MARK, I2C4_SCL_E_MARK, + AVB_GTX_CLK_MARK, SSI_WS6_B_MARK, DREQ0_N_MARK, SCIFB1_RXD_MARK, /* IPSR8 */ @@ -515,103 +583,107 @@ enum { I2C0_SCL_MARK, SCIF0_RXD_C_MARK, PWM5_MARK, TCLK1_B_MARK, AVB_GTXREFCLK_MARK, CAN1_RX_D_MARK, TPUTO0_B_MARK, I2C0_SDA_MARK, SCIF0_TXD_C_MARK, TPUTO0_MARK, CAN_CLK_MARK, DVC_MUTE_MARK, - CAN1_TX_D_MARK, I2C1_SCL_MARK, SCIF4_RXD_MARK, PWM5_B_MARK, - DU1_DR0_MARK, RIF1_SYNC_B_MARK, TS_SDATA_D_MARK, TPUTO1_B_MARK, - I2C1_SDA_MARK, SCIF4_TXD_MARK, IRQ5_MARK, DU1_DR1_MARK, RIF1_CLK_B_MARK, - TS_SCK_D_MARK, BPFCLK_C_MARK, MSIOF0_RXD_MARK, SCIF5_RXD_MARK, - I2C2_SCL_C_MARK, DU1_DR2_MARK, RIF1_D0_B_MARK, TS_SDEN_D_MARK, - FMCLK_C_MARK, RDS_CLK_MARK, + CAN1_TX_D_MARK, + I2C1_SCL_MARK, SCIF4_RXD_MARK, PWM5_B_MARK, DU1_DR0_MARK, + TS_SDATA_D_MARK, TPUTO1_B_MARK, + I2C1_SDA_MARK, SCIF4_TXD_MARK, IRQ5_MARK, DU1_DR1_MARK, TS_SCK_D_MARK, + BPFCLK_C_MARK, + MSIOF0_RXD_MARK, SCIF5_RXD_MARK, I2C2_SCL_C_MARK, DU1_DR2_MARK, + TS_SDEN_D_MARK, FMCLK_C_MARK, /* IPSR9 */ MSIOF0_TXD_MARK, SCIF5_TXD_MARK, I2C2_SDA_C_MARK, DU1_DR3_MARK, - RIF1_D1_B_MARK, TS_SPSYNC_D_MARK, FMIN_C_MARK, RDS_DATA_MARK, - MSIOF0_SCK_MARK, IRQ0_MARK, TS_SDATA_MARK, DU1_DR4_MARK, RIF1_SYNC_MARK, - TPUTO1_C_MARK, MSIOF0_SYNC_MARK, PWM1_MARK, TS_SCK_MARK, DU1_DR5_MARK, - RIF1_CLK_MARK, BPFCLK_B_MARK, MSIOF0_SS1_MARK, SCIFA0_RXD_MARK, - TS_SDEN_MARK, DU1_DR6_MARK, RIF1_D0_MARK, FMCLK_B_MARK, RDS_CLK_B_MARK, + TS_SPSYNC_D_MARK, FMIN_C_MARK, + MSIOF0_SCK_MARK, IRQ0_MARK, TS_SDATA_MARK, DU1_DR4_MARK, TPUTO1_C_MARK, + MSIOF0_SYNC_MARK, PWM1_MARK, TS_SCK_MARK, DU1_DR5_MARK, BPFCLK_B_MARK, + MSIOF0_SS1_MARK, SCIFA0_RXD_MARK, TS_SDEN_MARK, DU1_DR6_MARK, + FMCLK_B_MARK, MSIOF0_SS2_MARK, SCIFA0_TXD_MARK, TS_SPSYNC_MARK, DU1_DR7_MARK, - RIF1_D1_MARK, FMIN_B_MARK, RDS_DATA_B_MARK, HSCIF1_HRX_MARK, - I2C4_SCL_MARK, PWM6_MARK, DU1_DG0_MARK, HSCIF1_HTX_MARK, - I2C4_SDA_MARK, TPUTO1_MARK, DU1_DG1_MARK, HSCIF1_HSCK_MARK, - PWM2_MARK, IETX_MARK, DU1_DG2_MARK, REMOCON_B_MARK, SPEEDIN_B_MARK, - VSP_B_MARK, HSCIF1_HCTS_N_MARK, SCIFA4_RXD_MARK, IECLK_MARK, - DU1_DG3_MARK, SSI_SCK1_B_MARK, CAN_DEBUG_HW_TRIGGER_MARK, - CC50_STATE32_MARK, HSCIF1_HRTS_N_MARK, SCIFA4_TXD_MARK, IERX_MARK, - DU1_DG4_MARK, SSI_WS1_B_MARK, CAN_STEP0_MARK, CC50_STATE33_MARK, + FMIN_B_MARK, + HSCIF1_HRX_MARK, I2C4_SCL_MARK, PWM6_MARK, DU1_DG0_MARK, + HSCIF1_HTX_MARK, I2C4_SDA_MARK, TPUTO1_MARK, DU1_DG1_MARK, + HSCIF1_HSCK_MARK, PWM2_MARK, IETX_MARK, DU1_DG2_MARK, REMOCON_B_MARK, + SPEEDIN_B_MARK, + HSCIF1_HCTS_N_MARK, SCIFA4_RXD_MARK, IECLK_MARK, DU1_DG3_MARK, + SSI_SCK1_B_MARK, + HSCIF1_HRTS_N_MARK, SCIFA4_TXD_MARK, IERX_MARK, DU1_DG4_MARK, + SSI_WS1_B_MARK, SCIF1_SCK_MARK, PWM3_MARK, TCLK2_MARK, DU1_DG5_MARK, SSI_SDATA1_B_MARK, - CAN_TXCLK_MARK, CC50_STATE34_MARK, + CAN_TXCLK_MARK, /* IPSR10 */ SCIF1_RXD_MARK, I2C5_SCL_MARK, DU1_DG6_MARK, SSI_SCK2_B_MARK, - CAN_DEBUGOUT0_MARK, CC50_STATE35_MARK, SCIF1_TXD_MARK, I2C5_SDA_MARK, - DU1_DG7_MARK, SSI_WS2_B_MARK, CAN_DEBUGOUT1_MARK, CC50_STATE36_MARK, + SCIF1_TXD_MARK, I2C5_SDA_MARK, DU1_DG7_MARK, SSI_WS2_B_MARK, SCIF2_RXD_MARK, IIC0_SCL_MARK, DU1_DB0_MARK, SSI_SDATA2_B_MARK, - USB0_EXTLP_MARK, CAN_DEBUGOUT2_MARK, CC50_STATE37_MARK, SCIF2_TXD_MARK, - IIC0_SDA_MARK, DU1_DB1_MARK, SSI_SCK9_B_MARK, USB0_OVC1_MARK, - CAN_DEBUGOUT3_MARK, CC50_STATE38_MARK, SCIF2_SCK_MARK, IRQ1_MARK, - DU1_DB2_MARK, SSI_WS9_B_MARK, USB0_IDIN_MARK, CAN_DEBUGOUT4_MARK, - CC50_STATE39_MARK, SCIF3_SCK_MARK, IRQ2_MARK, BPFCLK_D_MARK, - DU1_DB3_MARK, SSI_SDATA9_B_MARK, TANS2_MARK, CAN_DEBUGOUT5_MARK, - CC50_OSCOUT_MARK, SCIF3_RXD_MARK, I2C1_SCL_E_MARK, FMCLK_D_MARK, - DU1_DB4_MARK, AUDIO_CLKA_C_MARK, SSI_SCK4_B_MARK, CAN_DEBUGOUT6_MARK, - RDS_CLK_C_MARK, SCIF3_TXD_MARK, I2C1_SDA_E_MARK, FMIN_D_MARK, - DU1_DB5_MARK, AUDIO_CLKB_C_MARK, SSI_WS4_B_MARK, CAN_DEBUGOUT7_MARK, - RDS_DATA_C_MARK, I2C2_SCL_MARK, SCIFA5_RXD_MARK, DU1_DB6_MARK, - AUDIO_CLKC_C_MARK, SSI_SDATA4_B_MARK, CAN_DEBUGOUT8_MARK, I2C2_SDA_MARK, - SCIFA5_TXD_MARK, DU1_DB7_MARK, AUDIO_CLKOUT_C_MARK, CAN_DEBUGOUT9_MARK, - SSI_SCK5_MARK, SCIFA3_SCK_MARK, DU1_DOTCLKIN_MARK, CAN_DEBUGOUT10_MARK, + SCIF2_TXD_MARK, IIC0_SDA_MARK, DU1_DB1_MARK, SSI_SCK9_B_MARK, + SCIF2_SCK_MARK, IRQ1_MARK, DU1_DB2_MARK, SSI_WS9_B_MARK, + SCIF3_SCK_MARK, IRQ2_MARK, BPFCLK_D_MARK, DU1_DB3_MARK, + SSI_SDATA9_B_MARK, + SCIF3_RXD_MARK, I2C1_SCL_E_MARK, FMCLK_D_MARK, DU1_DB4_MARK, + AUDIO_CLKA_C_MARK, SSI_SCK4_B_MARK, + SCIF3_TXD_MARK, I2C1_SDA_E_MARK, FMIN_D_MARK, DU1_DB5_MARK, + AUDIO_CLKB_C_MARK, SSI_WS4_B_MARK, + I2C2_SCL_MARK, SCIFA5_RXD_MARK, DU1_DB6_MARK, AUDIO_CLKC_C_MARK, + SSI_SDATA4_B_MARK, + I2C2_SDA_MARK, SCIFA5_TXD_MARK, DU1_DB7_MARK, AUDIO_CLKOUT_C_MARK, + SSI_SCK5_MARK, SCIFA3_SCK_MARK, DU1_DOTCLKIN_MARK, /* IPSR11 */ SSI_WS5_MARK, SCIFA3_RXD_MARK, I2C3_SCL_C_MARK, DU1_DOTCLKOUT0_MARK, - CAN_DEBUGOUT11_MARK, SSI_SDATA5_MARK, SCIFA3_TXD_MARK, I2C3_SDA_C_MARK, - DU1_DOTCLKOUT1_MARK, CAN_DEBUGOUT12_MARK, SSI_SCK6_MARK, - SCIFA1_SCK_B_MARK, DU1_EXHSYNC_DU1_HSYNC_MARK, CAN_DEBUGOUT13_MARK, + SSI_SDATA5_MARK, SCIFA3_TXD_MARK, I2C3_SDA_C_MARK, DU1_DOTCLKOUT1_MARK, + SSI_SCK6_MARK, SCIFA1_SCK_B_MARK, DU1_EXHSYNC_DU1_HSYNC_MARK, SSI_WS6_MARK, SCIFA1_RXD_B_MARK, I2C4_SCL_C_MARK, - DU1_EXVSYNC_DU1_VSYNC_MARK, CAN_DEBUGOUT14_MARK, SSI_SDATA6_MARK, - SCIFA1_TXD_B_MARK, I2C4_SDA_C_MARK, DU1_EXODDF_DU1_ODDF_DISP_CDE_MARK, - CAN_DEBUGOUT15_MARK, SSI_SCK78_MARK, SCIFA2_SCK_B_MARK, I2C5_SDA_C_MARK, - DU1_DISP_MARK, SSI_WS78_MARK, SCIFA2_RXD_B_MARK, I2C5_SCL_C_MARK, - DU1_CDE_MARK, SSI_SDATA7_MARK, SCIFA2_TXD_B_MARK, IRQ8_MARK, - AUDIO_CLKA_D_MARK, CAN_CLK_D_MARK, PCMOE_N_MARK, SSI_SCK0129_MARK, - MSIOF1_RXD_B_MARK, SCIF5_RXD_D_MARK, ADIDATA_B_MARK, AD_DI_B_MARK, - PCMWE_N_MARK, SSI_WS0129_MARK, MSIOF1_TXD_B_MARK, SCIF5_TXD_D_MARK, - ADICS_SAMP_B_MARK, AD_DO_B_MARK, SSI_SDATA0_MARK, MSIOF1_SCK_B_MARK, - PWM0_B_MARK, ADICLK_B_MARK, AD_CLK_B_MARK, + DU1_EXVSYNC_DU1_VSYNC_MARK, + SSI_SDATA6_MARK, SCIFA1_TXD_B_MARK, I2C4_SDA_C_MARK, + DU1_EXODDF_DU1_ODDF_DISP_CDE_MARK, + SSI_SCK78_MARK, SCIFA2_SCK_B_MARK, I2C5_SDA_C_MARK, DU1_DISP_MARK, + SSI_WS78_MARK, SCIFA2_RXD_B_MARK, I2C5_SCL_C_MARK, DU1_CDE_MARK, + SSI_SDATA7_MARK, SCIFA2_TXD_B_MARK, IRQ8_MARK, AUDIO_CLKA_D_MARK, + CAN_CLK_D_MARK, + SSI_SCK0129_MARK, MSIOF1_RXD_B_MARK, SCIF5_RXD_D_MARK, ADIDATA_B_MARK, + SSI_WS0129_MARK, MSIOF1_TXD_B_MARK, SCIF5_TXD_D_MARK, ADICS_SAMP_B_MARK, + SSI_SDATA0_MARK, MSIOF1_SCK_B_MARK, PWM0_B_MARK, ADICLK_B_MARK, /* IPSR12 */ SSI_SCK34_MARK, MSIOF1_SYNC_B_MARK, SCIFA1_SCK_C_MARK, ADICHS0_B_MARK, - AD_NCS_N_B_MARK, DREQ1_N_B_MARK, SSI_WS34_MARK, MSIOF1_SS1_B_MARK, - SCIFA1_RXD_C_MARK, ADICHS1_B_MARK, CAN1_RX_C_MARK, DACK1_B_MARK, + DREQ1_N_B_MARK, + SSI_WS34_MARK, MSIOF1_SS1_B_MARK, SCIFA1_RXD_C_MARK, ADICHS1_B_MARK, + CAN1_RX_C_MARK, DACK1_B_MARK, SSI_SDATA3_MARK, MSIOF1_SS2_B_MARK, SCIFA1_TXD_C_MARK, ADICHS2_B_MARK, - CAN1_TX_C_MARK, DREQ2_N_MARK, SSI_SCK4_MARK, MLB_CLK_MARK, IETX_B_MARK, - IRD_TX_MARK, SSI_WS4_MARK, MLB_SIG_MARK, IECLK_B_MARK, IRD_RX_MARK, - SSI_SDATA4_MARK, MLB_DAT_MARK, IERX_B_MARK, IRD_SCK_MARK, + CAN1_TX_C_MARK, DREQ2_N_MARK, + SSI_SCK4_MARK, MLB_CLK_MARK, IETX_B_MARK, + SSI_WS4_MARK, MLB_SIG_MARK, IECLK_B_MARK, + SSI_SDATA4_MARK, MLB_DAT_MARK, IERX_B_MARK, SSI_SDATA8_MARK, SCIF1_SCK_B_MARK, PWM1_B_MARK, IRQ9_MARK, REMOCON_MARK, - DACK2_MARK, ETH_MDIO_B_MARK, SSI_SCK1_MARK, SCIF1_RXD_B_MARK, - IIC0_SCL_C_MARK, VI1_CLK_MARK, CAN0_RX_D_MARK, AVB_AVTP_CAPTURE_MARK, - ETH_CRS_DV_B_MARK, SSI_WS1_MARK, SCIF1_TXD_B_MARK, IIC0_SDA_C_MARK, - VI1_DATA0_MARK, CAN0_TX_D_MARK, AVB_AVTP_MATCH_MARK, ETH_RX_ER_B_MARK, - SSI_SDATA1_MARK, HSCIF1_HRX_B_MARK, VI1_DATA1_MARK, SDATA_MARK, - ATAWR0_N_MARK, ETH_RXD0_B_MARK, SSI_SCK2_MARK, HSCIF1_HTX_B_MARK, - VI1_DATA2_MARK, MDATA_MARK, ATAG0_N_MARK, ETH_RXD1_B_MARK, + DACK2_MARK, ETH_MDIO_B_MARK, + SSI_SCK1_MARK, SCIF1_RXD_B_MARK, IIC0_SCL_C_MARK, VI1_CLK_MARK, + CAN0_RX_D_MARK, ETH_CRS_DV_B_MARK, + SSI_WS1_MARK, SCIF1_TXD_B_MARK, IIC0_SDA_C_MARK, VI1_DATA0_MARK, + CAN0_TX_D_MARK, ETH_RX_ER_B_MARK, + SSI_SDATA1_MARK, HSCIF1_HRX_B_MARK, VI1_DATA1_MARK, ATAWR0_N_MARK, + ETH_RXD0_B_MARK, + SSI_SCK2_MARK, HSCIF1_HTX_B_MARK, VI1_DATA2_MARK, ATAG0_N_MARK, + ETH_RXD1_B_MARK, /* IPSR13 */ SSI_WS2_MARK, HSCIF1_HCTS_N_B_MARK, SCIFA0_RXD_D_MARK, VI1_DATA3_MARK, - SCKZ_MARK, ATACS00_N_MARK, ETH_LINK_B_MARK, SSI_SDATA2_MARK, - HSCIF1_HRTS_N_B_MARK, SCIFA0_TXD_D_MARK, VI1_DATA4_MARK, STM_N_MARK, - ATACS10_N_MARK, ETH_REFCLK_B_MARK, SSI_SCK9_MARK, SCIF2_SCK_B_MARK, - PWM2_B_MARK, VI1_DATA5_MARK, MTS_N_MARK, EX_WAIT1_MARK, - ETH_TXD1_B_MARK, SSI_WS9_MARK, SCIF2_RXD_B_MARK, I2C3_SCL_E_MARK, - VI1_DATA6_MARK, ATARD0_N_MARK, ETH_TX_EN_B_MARK, SSI_SDATA9_MARK, - SCIF2_TXD_B_MARK, I2C3_SDA_E_MARK, VI1_DATA7_MARK, ATADIR0_N_MARK, - ETH_MAGIC_B_MARK, AUDIO_CLKA_MARK, I2C0_SCL_B_MARK, SCIFA4_RXD_D_MARK, - VI1_CLKENB_MARK, TS_SDATA_C_MARK, RIF0_SYNC_B_MARK, ETH_TXD0_B_MARK, + ATACS00_N_MARK, ETH_LINK_B_MARK, + SSI_SDATA2_MARK, HSCIF1_HRTS_N_B_MARK, SCIFA0_TXD_D_MARK, + VI1_DATA4_MARK, ATACS10_N_MARK, ETH_REFCLK_B_MARK, + SSI_SCK9_MARK, SCIF2_SCK_B_MARK, PWM2_B_MARK, VI1_DATA5_MARK, + EX_WAIT1_MARK, ETH_TXD1_B_MARK, + SSI_WS9_MARK, SCIF2_RXD_B_MARK, I2C3_SCL_E_MARK, VI1_DATA6_MARK, + ATARD0_N_MARK, ETH_TX_EN_B_MARK, + SSI_SDATA9_MARK, SCIF2_TXD_B_MARK, I2C3_SDA_E_MARK, VI1_DATA7_MARK, + ATADIR0_N_MARK, ETH_MAGIC_B_MARK, + AUDIO_CLKA_MARK, I2C0_SCL_B_MARK, SCIFA4_RXD_D_MARK, VI1_CLKENB_MARK, + TS_SDATA_C_MARK, ETH_TXD0_B_MARK, AUDIO_CLKB_MARK, I2C0_SDA_B_MARK, SCIFA4_TXD_D_MARK, VI1_FIELD_MARK, - TS_SCK_C_MARK, RIF0_CLK_B_MARK, BPFCLK_E_MARK, ETH_MDC_B_MARK, + TS_SCK_C_MARK, BPFCLK_E_MARK, ETH_MDC_B_MARK, AUDIO_CLKC_MARK, I2C4_SCL_B_MARK, SCIFA5_RXD_D_MARK, VI1_HSYNC_N_MARK, - TS_SDEN_C_MARK, RIF0_D0_B_MARK, FMCLK_E_MARK, RDS_CLK_D_MARK, + TS_SDEN_C_MARK, FMCLK_E_MARK, AUDIO_CLKOUT_MARK, I2C4_SDA_B_MARK, SCIFA5_TXD_D_MARK, VI1_VSYNC_N_MARK, - TS_SPSYNC_C_MARK, RIF0_D1_B_MARK, FMIN_E_MARK, RDS_DATA_D_MARK, + TS_SPSYNC_C_MARK, FMIN_E_MARK, PINMUX_MARK_END, }; @@ -717,7 +789,6 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP1_14_13, I2C1_SDA_D, SEL_I2C01_3), PINMUX_IPSR_DATA(IP1_17_15, D13), PINMUX_IPSR_MSEL(IP1_17_15, SCIFA1_SCK, SEL_SCIFA1_0), - PINMUX_IPSR_DATA(IP1_17_15, TANS1), PINMUX_IPSR_DATA(IP1_17_15, PWM2_C), PINMUX_IPSR_MSEL(IP1_17_15, TCLK2_B, SEL_TMU_1), PINMUX_IPSR_DATA(IP1_19_18, D14), @@ -778,39 +849,31 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP2_20_18, MSIOF2_SCK, SEL_MSI2_0), PINMUX_IPSR_MSEL(IP2_20_18, HSCIF0_HSCK_B, SEL_HSCIF0_1), PINMUX_IPSR_MSEL(IP2_20_18, SPEEDIN, SEL_RSP_0), - PINMUX_IPSR_MSEL(IP2_20_18, VSP, SEL_SPDM_0), PINMUX_IPSR_MSEL(IP2_20_18, CAN_CLK_C, SEL_CAN_2), PINMUX_IPSR_DATA(IP2_20_18, TPUTO2_B), PINMUX_IPSR_DATA(IP2_23_21, A17), PINMUX_IPSR_MSEL(IP2_23_21, MSIOF2_SYNC, SEL_MSI2_0), PINMUX_IPSR_MSEL(IP2_23_21, SCIF4_RXD_E, SEL_SCIF4_4), PINMUX_IPSR_MSEL(IP2_23_21, CAN1_RX_B, SEL_CAN1_1), - PINMUX_IPSR_MSEL(IP2_23_21, AVB_AVTP_CAPTURE_B, SEL_AVB_1), PINMUX_IPSR_DATA(IP2_26_24, A18), PINMUX_IPSR_MSEL(IP2_26_24, MSIOF2_SS1, SEL_MSI2_0), PINMUX_IPSR_MSEL(IP2_26_24, SCIF4_TXD_E, SEL_SCIF4_4), PINMUX_IPSR_MSEL(IP2_26_24, CAN1_TX_B, SEL_CAN1_1), - PINMUX_IPSR_MSEL(IP2_26_24, AVB_AVTP_MATCH_B, SEL_AVB_1), PINMUX_IPSR_DATA(IP2_29_27, A19), PINMUX_IPSR_MSEL(IP2_29_27, MSIOF2_SS2, SEL_MSI2_0), PINMUX_IPSR_DATA(IP2_29_27, PWM4), PINMUX_IPSR_DATA(IP2_29_27, TPUTO2), - PINMUX_IPSR_DATA(IP2_29_27, MOUT0), PINMUX_IPSR_DATA(IP2_31_30, A20), PINMUX_IPSR_DATA(IP2_31_30, SPCLK), - PINMUX_IPSR_DATA(IP2_29_27, MOUT1), /* IPSR3 */ PINMUX_IPSR_DATA(IP3_1_0, A21), PINMUX_IPSR_DATA(IP3_1_0, MOSI_IO0), - PINMUX_IPSR_DATA(IP3_1_0, MOUT2), PINMUX_IPSR_DATA(IP3_3_2, A22), PINMUX_IPSR_DATA(IP3_3_2, MISO_IO1), - PINMUX_IPSR_DATA(IP3_3_2, MOUT5), PINMUX_IPSR_DATA(IP3_3_2, ATADIR1_N), PINMUX_IPSR_DATA(IP3_5_4, A23), PINMUX_IPSR_DATA(IP3_5_4, IO2), - PINMUX_IPSR_DATA(IP3_5_4, MOUT6), PINMUX_IPSR_DATA(IP3_5_4, ATAWR1_N), PINMUX_IPSR_DATA(IP3_7_6, A24), PINMUX_IPSR_DATA(IP3_7_6, IO3), @@ -832,40 +895,31 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_DATA(IP3_17_15, PWM0), PINMUX_IPSR_MSEL(IP3_17_15, SCIF4_RXD_C, SEL_SCIF4_2), PINMUX_IPSR_MSEL(IP3_17_15, TS_SDATA_B, SEL_TSIF0_1), - PINMUX_IPSR_MSEL(IP3_17_15, RIF0_SYNC, SEL_DR0_0), PINMUX_IPSR_DATA(IP3_17_15, TPUTO3), PINMUX_IPSR_DATA(IP3_17_15, SCIFB2_TXD), - PINMUX_IPSR_MSEL(IP3_17_15, SDATA_B, SEL_FSN_1), PINMUX_IPSR_DATA(IP3_20_18, EX_CS3_N), PINMUX_IPSR_MSEL(IP3_20_18, SCIFA2_SCK, SEL_SCIFA2_0), PINMUX_IPSR_MSEL(IP3_20_18, SCIF4_TXD_C, SEL_SCIF4_2), PINMUX_IPSR_MSEL(IP3_20_18, TS_SCK_B, SEL_TSIF0_1), - PINMUX_IPSR_MSEL(IP3_20_18, RIF0_CLK, SEL_DR0_0), PINMUX_IPSR_MSEL(IP3_20_18, BPFCLK, SEL_DARC_0), PINMUX_IPSR_DATA(IP3_20_18, SCIFB2_SCK), - PINMUX_IPSR_MSEL(IP3_20_18, MDATA_B, SEL_FSN_1), PINMUX_IPSR_DATA(IP3_23_21, EX_CS4_N), PINMUX_IPSR_MSEL(IP3_23_21, SCIFA2_RXD, SEL_SCIFA2_0), PINMUX_IPSR_MSEL(IP3_23_21, I2C2_SCL_E, SEL_I2C02_4), PINMUX_IPSR_MSEL(IP3_23_21, TS_SDEN_B, SEL_TSIF0_1), - PINMUX_IPSR_MSEL(IP3_23_21, RIF0_D0, SEL_DR0_0), PINMUX_IPSR_MSEL(IP3_23_21, FMCLK, SEL_DARC_0), PINMUX_IPSR_DATA(IP3_23_21, SCIFB2_CTS_N), - PINMUX_IPSR_MSEL(IP3_23_21, SCKZ_B, SEL_FSN_1), PINMUX_IPSR_DATA(IP3_26_24, EX_CS5_N), PINMUX_IPSR_MSEL(IP3_26_24, SCIFA2_TXD, SEL_SCIFA2_0), PINMUX_IPSR_MSEL(IP3_26_24, I2C2_SDA_E, SEL_I2C02_4), PINMUX_IPSR_MSEL(IP3_26_24, TS_SPSYNC_B, SEL_TSIF0_1), - PINMUX_IPSR_MSEL(IP3_26_24, RIF0_D1, SEL_DR1_0), PINMUX_IPSR_MSEL(IP3_26_24, FMIN, SEL_DARC_0), PINMUX_IPSR_DATA(IP3_26_24, SCIFB2_RTS_N), - PINMUX_IPSR_MSEL(IP3_26_24, STM_N_B, SEL_FSN_1), PINMUX_IPSR_DATA(IP3_29_27, BS_N), PINMUX_IPSR_DATA(IP3_29_27, DRACK0), PINMUX_IPSR_DATA(IP3_29_27, PWM1_C), PINMUX_IPSR_DATA(IP3_29_27, TPUTO0_C), PINMUX_IPSR_DATA(IP3_29_27, ATACS01_N), - PINMUX_IPSR_MSEL(IP3_29_27, MTS_N_B, SEL_FSN_1), PINMUX_IPSR_DATA(IP3_30, RD_N), PINMUX_IPSR_DATA(IP3_30, ATACS11_N), PINMUX_IPSR_DATA(IP3_31, RD_WR_N), @@ -875,121 +929,88 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_DATA(IP4_1_0, EX_WAIT0), PINMUX_IPSR_MSEL(IP4_1_0, CAN_CLK_B, SEL_CAN_1), PINMUX_IPSR_MSEL(IP4_1_0, SCIF_CLK, SEL_SCIF0_0), - PINMUX_IPSR_DATA(IP4_1_0, PWMFSW0), PINMUX_IPSR_DATA(IP4_4_2, DU0_DR0), PINMUX_IPSR_DATA(IP4_4_2, LCDOUT16), PINMUX_IPSR_MSEL(IP4_4_2, SCIF5_RXD_C, SEL_SCIF5_2), PINMUX_IPSR_MSEL(IP4_4_2, I2C2_SCL_D, SEL_I2C02_3), - PINMUX_IPSR_DATA(IP4_4_2, CC50_STATE0), PINMUX_IPSR_DATA(IP4_7_5, DU0_DR1), PINMUX_IPSR_DATA(IP4_7_5, LCDOUT17), PINMUX_IPSR_MSEL(IP4_7_5, SCIF5_TXD_C, SEL_SCIF5_2), PINMUX_IPSR_MSEL(IP4_7_5, I2C2_SDA_D, SEL_I2C02_3), - PINMUX_IPSR_DATA(IP4_9_8, CC50_STATE1), PINMUX_IPSR_DATA(IP4_9_8, DU0_DR2), PINMUX_IPSR_DATA(IP4_9_8, LCDOUT18), - PINMUX_IPSR_DATA(IP4_9_8, CC50_STATE2), PINMUX_IPSR_DATA(IP4_11_10, DU0_DR3), PINMUX_IPSR_DATA(IP4_11_10, LCDOUT19), - PINMUX_IPSR_DATA(IP4_11_10, CC50_STATE3), PINMUX_IPSR_DATA(IP4_13_12, DU0_DR4), PINMUX_IPSR_DATA(IP4_13_12, LCDOUT20), - PINMUX_IPSR_DATA(IP4_13_12, CC50_STATE4), PINMUX_IPSR_DATA(IP4_15_14, DU0_DR5), PINMUX_IPSR_DATA(IP4_15_14, LCDOUT21), - PINMUX_IPSR_DATA(IP4_15_14, CC50_STATE5), PINMUX_IPSR_DATA(IP4_17_16, DU0_DR6), PINMUX_IPSR_DATA(IP4_17_16, LCDOUT22), - PINMUX_IPSR_DATA(IP4_17_16, CC50_STATE6), PINMUX_IPSR_DATA(IP4_19_18, DU0_DR7), PINMUX_IPSR_DATA(IP4_19_18, LCDOUT23), - PINMUX_IPSR_DATA(IP4_19_18, CC50_STATE7), PINMUX_IPSR_DATA(IP4_22_20, DU0_DG0), PINMUX_IPSR_DATA(IP4_22_20, LCDOUT8), PINMUX_IPSR_MSEL(IP4_22_20, SCIFA0_RXD_C, SEL_SCIFA0_2), PINMUX_IPSR_MSEL(IP4_22_20, I2C3_SCL_D, SEL_I2C03_3), - PINMUX_IPSR_DATA(IP4_22_20, CC50_STATE8), PINMUX_IPSR_DATA(IP4_25_23, DU0_DG1), PINMUX_IPSR_DATA(IP4_25_23, LCDOUT9), PINMUX_IPSR_MSEL(IP4_25_23, SCIFA0_TXD_C, SEL_SCIFA0_2), PINMUX_IPSR_MSEL(IP4_25_23, I2C3_SDA_D, SEL_I2C03_3), - PINMUX_IPSR_DATA(IP4_25_23, CC50_STATE9), PINMUX_IPSR_DATA(IP4_27_26, DU0_DG2), PINMUX_IPSR_DATA(IP4_27_26, LCDOUT10), - PINMUX_IPSR_DATA(IP4_27_26, CC50_STATE10), PINMUX_IPSR_DATA(IP4_29_28, DU0_DG3), PINMUX_IPSR_DATA(IP4_29_28, LCDOUT11), - PINMUX_IPSR_DATA(IP4_29_28, CC50_STATE11), PINMUX_IPSR_DATA(IP4_31_30, DU0_DG4), PINMUX_IPSR_DATA(IP4_31_30, LCDOUT12), - PINMUX_IPSR_DATA(IP4_31_30, CC50_STATE12), /* IPSR5 */ PINMUX_IPSR_DATA(IP5_1_0, DU0_DG5), PINMUX_IPSR_DATA(IP5_1_0, LCDOUT13), - PINMUX_IPSR_DATA(IP5_1_0, CC50_STATE13), PINMUX_IPSR_DATA(IP5_3_2, DU0_DG6), PINMUX_IPSR_DATA(IP5_3_2, LCDOUT14), - PINMUX_IPSR_DATA(IP5_3_2, CC50_STATE14), PINMUX_IPSR_DATA(IP5_5_4, DU0_DG7), PINMUX_IPSR_DATA(IP5_5_4, LCDOUT15), - PINMUX_IPSR_DATA(IP5_5_4, CC50_STATE15), PINMUX_IPSR_DATA(IP5_8_6, DU0_DB0), PINMUX_IPSR_DATA(IP5_8_6, LCDOUT0), PINMUX_IPSR_MSEL(IP5_8_6, SCIFA4_RXD_C, SEL_SCIFA4_2), PINMUX_IPSR_MSEL(IP5_8_6, I2C4_SCL_D, SEL_I2C04_3), PINMUX_IPSR_MSEL(IP7_8_6, CAN0_RX_C, SEL_CAN0_2), - PINMUX_IPSR_DATA(IP5_8_6, CC50_STATE16), PINMUX_IPSR_DATA(IP5_11_9, DU0_DB1), PINMUX_IPSR_DATA(IP5_11_9, LCDOUT1), PINMUX_IPSR_MSEL(IP5_11_9, SCIFA4_TXD_C, SEL_SCIFA4_2), PINMUX_IPSR_MSEL(IP5_11_9, I2C4_SDA_D, SEL_I2C04_3), PINMUX_IPSR_MSEL(IP5_11_9, CAN0_TX_C, SEL_CAN0_2), - PINMUX_IPSR_DATA(IP5_11_9, CC50_STATE17), PINMUX_IPSR_DATA(IP5_13_12, DU0_DB2), PINMUX_IPSR_DATA(IP5_13_12, LCDOUT2), - PINMUX_IPSR_DATA(IP5_13_12, CC50_STATE18), PINMUX_IPSR_DATA(IP5_15_14, DU0_DB3), PINMUX_IPSR_DATA(IP5_15_14, LCDOUT3), - PINMUX_IPSR_DATA(IP5_15_14, CC50_STATE19), PINMUX_IPSR_DATA(IP5_17_16, DU0_DB4), PINMUX_IPSR_DATA(IP5_17_16, LCDOUT4), - PINMUX_IPSR_DATA(IP5_17_16, CC50_STATE20), PINMUX_IPSR_DATA(IP5_19_18, DU0_DB5), PINMUX_IPSR_DATA(IP5_19_18, LCDOUT5), - PINMUX_IPSR_DATA(IP5_19_18, CC50_STATE21), PINMUX_IPSR_DATA(IP5_21_20, DU0_DB6), PINMUX_IPSR_DATA(IP5_21_20, LCDOUT6), - PINMUX_IPSR_DATA(IP5_21_20, CC50_STATE22), PINMUX_IPSR_DATA(IP5_23_22, DU0_DB7), PINMUX_IPSR_DATA(IP5_23_22, LCDOUT7), - PINMUX_IPSR_DATA(IP5_23_22, CC50_STATE23), PINMUX_IPSR_DATA(IP5_25_24, DU0_DOTCLKIN), PINMUX_IPSR_DATA(IP5_25_24, QSTVA_QVS), - PINMUX_IPSR_DATA(IP5_25_24, CC50_STATE24), PINMUX_IPSR_DATA(IP5_27_26, DU0_DOTCLKOUT0), PINMUX_IPSR_DATA(IP5_27_26, QCLK), - PINMUX_IPSR_DATA(IP5_27_26, CC50_STATE25), PINMUX_IPSR_DATA(IP5_29_28, DU0_DOTCLKOUT1), PINMUX_IPSR_DATA(IP5_29_28, QSTVB_QVE), - PINMUX_IPSR_DATA(IP5_29_28, CC50_STATE26), PINMUX_IPSR_DATA(IP5_31_30, DU0_EXHSYNC_DU0_HSYNC), PINMUX_IPSR_DATA(IP5_31_30, QSTH_QHS), - PINMUX_IPSR_DATA(IP5_31_30, CC50_STATE27), /* IPSR6 */ PINMUX_IPSR_DATA(IP6_1_0, DU0_EXVSYNC_DU0_VSYNC), PINMUX_IPSR_DATA(IP6_1_0, QSTB_QHE), - PINMUX_IPSR_DATA(IP6_1_0, CC50_STATE28), PINMUX_IPSR_DATA(IP6_3_2, DU0_EXODDF_DU0_ODDF_DISP_CDE), PINMUX_IPSR_DATA(IP6_3_2, QCPV_QDE), - PINMUX_IPSR_DATA(IP6_3_2, CC50_STATE29), PINMUX_IPSR_DATA(IP6_5_4, DU0_DISP), PINMUX_IPSR_DATA(IP6_5_4, QPOLA), - PINMUX_IPSR_DATA(IP6_5_4, CC50_STATE30), PINMUX_IPSR_DATA(IP6_7_6, DU0_CDE), PINMUX_IPSR_DATA(IP6_7_6, QPOLB), - PINMUX_IPSR_DATA(IP6_7_6, CC50_STATE31), PINMUX_IPSR_DATA(IP6_8, VI0_CLK), PINMUX_IPSR_DATA(IP6_8, AVB_RX_CLK), PINMUX_IPSR_DATA(IP6_9, VI0_DATA0_VI0_B0), @@ -1034,7 +1055,6 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP6_31_29, I2C5_SCL_D, SEL_I2C05_3), PINMUX_IPSR_DATA(IP6_31_29, AVB_TX_CLK), PINMUX_IPSR_MSEL(IP6_31_29, ADIDATA, SEL_RAD_0), - PINMUX_IPSR_MSEL(IP6_31_29, AD_DI, SEL_ADI_0), /* IPSR7 */ PINMUX_IPSR_MSEL(IP7_2_0, ETH_CRS_DV, SEL_ETH_0), @@ -1043,21 +1063,18 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP7_2_0, I2C5_SDA_D, SEL_I2C05_3), PINMUX_IPSR_DATA(IP7_2_0, AVB_TXD0), PINMUX_IPSR_MSEL(IP7_2_0, ADICS_SAMP, SEL_RAD_0), - PINMUX_IPSR_MSEL(IP7_2_0, AD_DO, SEL_ADI_0), PINMUX_IPSR_MSEL(IP7_5_3, ETH_RX_ER, SEL_ETH_0), PINMUX_IPSR_DATA(IP7_5_3, VI0_G2), PINMUX_IPSR_MSEL(IP7_5_3, MSIOF2_SCK_B, SEL_MSI2_1), PINMUX_IPSR_MSEL(IP7_5_3, CAN0_RX_B, SEL_CAN0_1), PINMUX_IPSR_DATA(IP7_5_3, AVB_TXD1), PINMUX_IPSR_MSEL(IP7_5_3, ADICLK, SEL_RAD_0), - PINMUX_IPSR_MSEL(IP7_5_3, AD_CLK, SEL_ADI_0), PINMUX_IPSR_MSEL(IP7_8_6, ETH_RXD0, SEL_ETH_0), PINMUX_IPSR_DATA(IP7_8_6, VI0_G3), PINMUX_IPSR_MSEL(IP7_8_6, MSIOF2_SYNC_B, SEL_MSI2_1), PINMUX_IPSR_MSEL(IP7_8_6, CAN0_TX_B, SEL_CAN0_1), PINMUX_IPSR_DATA(IP7_8_6, AVB_TXD2), PINMUX_IPSR_MSEL(IP7_8_6, ADICHS0, SEL_RAD_0), - PINMUX_IPSR_MSEL(IP7_8_6, AD_NCS_N, SEL_ADI_0), PINMUX_IPSR_MSEL(IP7_11_9, ETH_RXD1, SEL_ETH_0), PINMUX_IPSR_DATA(IP7_11_9, VI0_G4), PINMUX_IPSR_MSEL(IP7_11_9, MSIOF2_SS1_B, SEL_MSI2_1), @@ -1153,60 +1170,48 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP8_25_23, SCIF4_RXD, SEL_SCIF4_0), PINMUX_IPSR_DATA(IP8_25_23, PWM5_B), PINMUX_IPSR_DATA(IP8_25_23, DU1_DR0), - PINMUX_IPSR_MSEL(IP8_25_23, RIF1_SYNC_B, SEL_DR2_1), PINMUX_IPSR_MSEL(IP8_25_23, TS_SDATA_D, SEL_TSIF0_3), PINMUX_IPSR_DATA(IP8_25_23, TPUTO1_B), PINMUX_IPSR_MSEL(IP8_28_26, I2C1_SDA, SEL_I2C01_0), PINMUX_IPSR_MSEL(IP8_28_26, SCIF4_TXD, SEL_SCIF4_0), PINMUX_IPSR_DATA(IP8_28_26, IRQ5), PINMUX_IPSR_DATA(IP8_28_26, DU1_DR1), - PINMUX_IPSR_MSEL(IP8_28_26, RIF1_CLK_B, SEL_DR2_1), PINMUX_IPSR_MSEL(IP8_28_26, TS_SCK_D, SEL_TSIF0_3), PINMUX_IPSR_MSEL(IP8_28_26, BPFCLK_C, SEL_DARC_2), PINMUX_IPSR_DATA(IP8_31_29, MSIOF0_RXD), PINMUX_IPSR_MSEL(IP8_31_29, SCIF5_RXD, SEL_SCIF5_0), PINMUX_IPSR_MSEL(IP8_31_29, I2C2_SCL_C, SEL_I2C02_2), PINMUX_IPSR_DATA(IP8_31_29, DU1_DR2), - PINMUX_IPSR_MSEL(IP8_31_29, RIF1_D0_B, SEL_DR2_1), PINMUX_IPSR_MSEL(IP8_31_29, TS_SDEN_D, SEL_TSIF0_3), PINMUX_IPSR_MSEL(IP8_31_29, FMCLK_C, SEL_DARC_2), - PINMUX_IPSR_MSEL(IP8_31_29, RDS_CLK, SEL_RDS_0), /* IPSR9 */ PINMUX_IPSR_DATA(IP9_2_0, MSIOF0_TXD), PINMUX_IPSR_MSEL(IP9_2_0, SCIF5_TXD, SEL_SCIF5_0), PINMUX_IPSR_MSEL(IP9_2_0, I2C2_SDA_C, SEL_I2C02_2), PINMUX_IPSR_DATA(IP9_2_0, DU1_DR3), - PINMUX_IPSR_MSEL(IP9_2_0, RIF1_D1_B, SEL_DR3_1), PINMUX_IPSR_MSEL(IP9_2_0, TS_SPSYNC_D, SEL_TSIF0_3), PINMUX_IPSR_MSEL(IP9_2_0, FMIN_C, SEL_DARC_2), - PINMUX_IPSR_MSEL(IP9_2_0, RDS_DATA, SEL_RDS_0), PINMUX_IPSR_DATA(IP9_5_3, MSIOF0_SCK), PINMUX_IPSR_DATA(IP9_5_3, IRQ0), PINMUX_IPSR_MSEL(IP9_5_3, TS_SDATA, SEL_TSIF0_0), PINMUX_IPSR_DATA(IP9_5_3, DU1_DR4), - PINMUX_IPSR_MSEL(IP9_5_3, RIF1_SYNC, SEL_DR2_0), PINMUX_IPSR_DATA(IP9_5_3, TPUTO1_C), PINMUX_IPSR_DATA(IP9_8_6, MSIOF0_SYNC), PINMUX_IPSR_DATA(IP9_8_6, PWM1), PINMUX_IPSR_MSEL(IP9_8_6, TS_SCK, SEL_TSIF0_0), PINMUX_IPSR_DATA(IP9_8_6, DU1_DR5), - PINMUX_IPSR_MSEL(IP9_8_6, RIF1_CLK, SEL_DR2_0), PINMUX_IPSR_MSEL(IP9_8_6, BPFCLK_B, SEL_DARC_1), PINMUX_IPSR_DATA(IP9_11_9, MSIOF0_SS1), PINMUX_IPSR_MSEL(IP9_11_9, SCIFA0_RXD, SEL_SCIFA0_0), PINMUX_IPSR_MSEL(IP9_11_9, TS_SDEN, SEL_TSIF0_0), PINMUX_IPSR_DATA(IP9_11_9, DU1_DR6), - PINMUX_IPSR_MSEL(IP9_11_9, RIF1_D0, SEL_DR2_0), PINMUX_IPSR_MSEL(IP9_11_9, FMCLK_B, SEL_DARC_1), - PINMUX_IPSR_MSEL(IP9_11_9, RDS_CLK_B, SEL_RDS_1), PINMUX_IPSR_DATA(IP9_14_12, MSIOF0_SS2), PINMUX_IPSR_MSEL(IP9_14_12, SCIFA0_TXD, SEL_SCIFA0_0), PINMUX_IPSR_MSEL(IP9_14_12, TS_SPSYNC, SEL_TSIF0_0), PINMUX_IPSR_DATA(IP9_14_12, DU1_DR7), - PINMUX_IPSR_MSEL(IP9_14_12, RIF1_D1, SEL_DR3_0), PINMUX_IPSR_MSEL(IP9_14_12, FMIN_B, SEL_DARC_1), - PINMUX_IPSR_MSEL(IP9_14_12, RDS_DATA_B, SEL_RDS_1), PINMUX_IPSR_MSEL(IP9_16_15, HSCIF1_HRX, SEL_HSCIF1_0), PINMUX_IPSR_MSEL(IP9_16_15, I2C4_SCL, SEL_I2C04_0), PINMUX_IPSR_DATA(IP9_16_15, PWM6), @@ -1221,128 +1226,93 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_DATA(IP9_21_19, DU1_DG2), PINMUX_IPSR_MSEL(IP9_21_19, REMOCON_B, SEL_RCN_1), PINMUX_IPSR_MSEL(IP9_21_19, SPEEDIN_B, SEL_RSP_1), - PINMUX_IPSR_MSEL(IP9_21_19, VSP_B, SEL_SPDM_1), PINMUX_IPSR_MSEL(IP9_24_22, HSCIF1_HCTS_N, SEL_HSCIF1_0), PINMUX_IPSR_MSEL(IP9_24_22, SCIFA4_RXD, SEL_SCIFA4_0), PINMUX_IPSR_MSEL(IP9_24_22, IECLK, SEL_IEB_0), PINMUX_IPSR_DATA(IP9_24_22, DU1_DG3), PINMUX_IPSR_MSEL(IP9_24_22, SSI_SCK1_B, SEL_SSI1_1), - PINMUX_IPSR_DATA(IP9_24_22, CAN_DEBUG_HW_TRIGGER), - PINMUX_IPSR_DATA(IP9_24_22, CC50_STATE32), PINMUX_IPSR_MSEL(IP9_27_25, HSCIF1_HRTS_N, SEL_HSCIF1_0), PINMUX_IPSR_MSEL(IP9_27_25, SCIFA4_TXD, SEL_SCIFA4_0), PINMUX_IPSR_MSEL(IP9_27_25, IERX, SEL_IEB_0), PINMUX_IPSR_DATA(IP9_27_25, DU1_DG4), PINMUX_IPSR_MSEL(IP9_27_25, SSI_WS1_B, SEL_SSI1_1), - PINMUX_IPSR_DATA(IP9_27_25, CAN_STEP0), - PINMUX_IPSR_DATA(IP9_27_25, CC50_STATE33), PINMUX_IPSR_MSEL(IP9_30_28, SCIF1_SCK, SEL_SCIF1_0), PINMUX_IPSR_DATA(IP9_30_28, PWM3), PINMUX_IPSR_MSEL(IP9_30_28, TCLK2, SEL_TMU_0), PINMUX_IPSR_DATA(IP9_30_28, DU1_DG5), PINMUX_IPSR_MSEL(IP9_30_28, SSI_SDATA1_B, SEL_SSI1_1), - PINMUX_IPSR_DATA(IP9_30_28, CAN_TXCLK), - PINMUX_IPSR_DATA(IP9_30_28, CC50_STATE34), /* IPSR10 */ PINMUX_IPSR_MSEL(IP10_2_0, SCIF1_RXD, SEL_SCIF1_0), PINMUX_IPSR_MSEL(IP10_2_0, I2C5_SCL, SEL_I2C05_0), PINMUX_IPSR_DATA(IP10_2_0, DU1_DG6), PINMUX_IPSR_MSEL(IP10_2_0, SSI_SCK2_B, SEL_SSI2_1), - PINMUX_IPSR_DATA(IP10_2_0, CAN_DEBUGOUT0), - PINMUX_IPSR_DATA(IP10_2_0, CC50_STATE35), PINMUX_IPSR_MSEL(IP10_5_3, SCIF1_TXD, SEL_SCIF1_0), PINMUX_IPSR_MSEL(IP10_5_3, I2C5_SDA, SEL_I2C05_0), PINMUX_IPSR_DATA(IP10_5_3, DU1_DG7), PINMUX_IPSR_MSEL(IP10_5_3, SSI_WS2_B, SEL_SSI2_1), - PINMUX_IPSR_DATA(IP10_5_3, CAN_DEBUGOUT1), - PINMUX_IPSR_DATA(IP10_5_3, CC50_STATE36), PINMUX_IPSR_MSEL(IP10_8_6, SCIF2_RXD, SEL_SCIF2_0), PINMUX_IPSR_MSEL(IP10_8_6, IIC0_SCL, SEL_IIC0_0), PINMUX_IPSR_DATA(IP10_8_6, DU1_DB0), PINMUX_IPSR_MSEL(IP10_8_6, SSI_SDATA2_B, SEL_SSI2_1), - PINMUX_IPSR_DATA(IP10_8_6, USB0_EXTLP), - PINMUX_IPSR_DATA(IP10_8_6, CAN_DEBUGOUT2), - PINMUX_IPSR_DATA(IP10_8_6, CC50_STATE37), PINMUX_IPSR_MSEL(IP10_11_9, SCIF2_TXD, SEL_SCIF2_0), PINMUX_IPSR_MSEL(IP10_11_9, IIC0_SDA, SEL_IIC0_0), PINMUX_IPSR_DATA(IP10_11_9, DU1_DB1), PINMUX_IPSR_MSEL(IP10_11_9, SSI_SCK9_B, SEL_SSI9_1), - PINMUX_IPSR_DATA(IP10_11_9, USB0_OVC1), - PINMUX_IPSR_DATA(IP10_11_9, CAN_DEBUGOUT3), - PINMUX_IPSR_DATA(IP10_11_9, CC50_STATE38), PINMUX_IPSR_MSEL(IP10_14_12, SCIF2_SCK, SEL_SCIF2_0), PINMUX_IPSR_DATA(IP10_14_12, IRQ1), PINMUX_IPSR_DATA(IP10_14_12, DU1_DB2), PINMUX_IPSR_MSEL(IP10_14_12, SSI_WS9_B, SEL_SSI9_1), - PINMUX_IPSR_DATA(IP10_14_12, USB0_IDIN), - PINMUX_IPSR_DATA(IP10_14_12, CAN_DEBUGOUT4), - PINMUX_IPSR_DATA(IP10_14_12, CC50_STATE39), PINMUX_IPSR_MSEL(IP10_17_15, SCIF3_SCK, SEL_SCIF3_0), PINMUX_IPSR_DATA(IP10_17_15, IRQ2), PINMUX_IPSR_MSEL(IP10_17_15, BPFCLK_D, SEL_DARC_3), PINMUX_IPSR_DATA(IP10_17_15, DU1_DB3), PINMUX_IPSR_MSEL(IP10_17_15, SSI_SDATA9_B, SEL_SSI9_1), - PINMUX_IPSR_DATA(IP10_17_15, TANS2), - PINMUX_IPSR_DATA(IP10_17_15, CAN_DEBUGOUT5), - PINMUX_IPSR_DATA(IP10_17_15, CC50_OSCOUT), PINMUX_IPSR_MSEL(IP10_20_18, SCIF3_RXD, SEL_SCIF3_0), PINMUX_IPSR_MSEL(IP10_20_18, I2C1_SCL_E, SEL_I2C01_4), PINMUX_IPSR_MSEL(IP10_20_18, FMCLK_D, SEL_DARC_3), PINMUX_IPSR_DATA(IP10_20_18, DU1_DB4), PINMUX_IPSR_MSEL(IP10_20_18, AUDIO_CLKA_C, SEL_ADG_2), PINMUX_IPSR_MSEL(IP10_20_18, SSI_SCK4_B, SEL_SSI4_1), - PINMUX_IPSR_DATA(IP10_20_18, CAN_DEBUGOUT6), - PINMUX_IPSR_MSEL(IP10_20_18, RDS_CLK_C, SEL_RDS_2), PINMUX_IPSR_MSEL(IP10_23_21, SCIF3_TXD, SEL_SCIF3_0), PINMUX_IPSR_MSEL(IP10_23_21, I2C1_SDA_E, SEL_I2C01_4), PINMUX_IPSR_MSEL(IP10_23_21, FMIN_D, SEL_DARC_3), PINMUX_IPSR_DATA(IP10_23_21, DU1_DB5), PINMUX_IPSR_MSEL(IP10_23_21, AUDIO_CLKB_C, SEL_ADG_2), PINMUX_IPSR_MSEL(IP10_23_21, SSI_WS4_B, SEL_SSI4_1), - PINMUX_IPSR_DATA(IP10_23_21, CAN_DEBUGOUT7), - PINMUX_IPSR_MSEL(IP10_23_21, RDS_DATA_C, SEL_RDS_2), PINMUX_IPSR_MSEL(IP10_26_24, I2C2_SCL, SEL_I2C02_0), PINMUX_IPSR_MSEL(IP10_26_24, SCIFA5_RXD, SEL_SCIFA5_0), PINMUX_IPSR_DATA(IP10_26_24, DU1_DB6), PINMUX_IPSR_MSEL(IP10_26_24, AUDIO_CLKC_C, SEL_ADG_2), PINMUX_IPSR_MSEL(IP10_26_24, SSI_SDATA4_B, SEL_SSI4_1), - PINMUX_IPSR_DATA(IP10_26_24, CAN_DEBUGOUT8), PINMUX_IPSR_MSEL(IP10_29_27, I2C2_SDA, SEL_I2C02_0), PINMUX_IPSR_MSEL(IP10_29_27, SCIFA5_TXD, SEL_SCIFA5_0), PINMUX_IPSR_DATA(IP10_29_27, DU1_DB7), PINMUX_IPSR_MSEL(IP10_29_27, AUDIO_CLKOUT_C, SEL_ADG_2), - PINMUX_IPSR_DATA(IP10_29_27, CAN_DEBUGOUT9), PINMUX_IPSR_MSEL(IP10_31_30, SSI_SCK5, SEL_SSI5_0), PINMUX_IPSR_MSEL(IP10_31_30, SCIFA3_SCK, SEL_SCIFA3_0), PINMUX_IPSR_DATA(IP10_31_30, DU1_DOTCLKIN), - PINMUX_IPSR_DATA(IP10_31_30, CAN_DEBUGOUT10), /* IPSR11 */ PINMUX_IPSR_MSEL(IP11_2_0, SSI_WS5, SEL_SSI5_0), PINMUX_IPSR_MSEL(IP11_2_0, SCIFA3_RXD, SEL_SCIFA3_0), PINMUX_IPSR_MSEL(IP11_2_0, I2C3_SCL_C, SEL_I2C03_2), PINMUX_IPSR_DATA(IP11_2_0, DU1_DOTCLKOUT0), - PINMUX_IPSR_DATA(IP11_2_0, CAN_DEBUGOUT11), PINMUX_IPSR_MSEL(IP11_5_3, SSI_SDATA5, SEL_SSI5_0), PINMUX_IPSR_MSEL(IP11_5_3, SCIFA3_TXD, SEL_SCIFA3_0), PINMUX_IPSR_MSEL(IP11_5_3, I2C3_SDA_C, SEL_I2C03_2), PINMUX_IPSR_DATA(IP11_5_3, DU1_DOTCLKOUT1), - PINMUX_IPSR_DATA(IP11_5_3, CAN_DEBUGOUT12), PINMUX_IPSR_MSEL(IP11_7_6, SSI_SCK6, SEL_SSI6_0), PINMUX_IPSR_MSEL(IP11_7_6, SCIFA1_SCK_B, SEL_SCIFA1_1), PINMUX_IPSR_DATA(IP11_7_6, DU1_EXHSYNC_DU1_HSYNC), - PINMUX_IPSR_DATA(IP11_7_6, CAN_DEBUGOUT13), PINMUX_IPSR_MSEL(IP11_10_8, SSI_WS6, SEL_SSI6_0), PINMUX_IPSR_MSEL(IP11_10_8, SCIFA1_RXD_B, SEL_SCIFA1_1), PINMUX_IPSR_MSEL(IP11_10_8, I2C4_SCL_C, SEL_I2C04_2), PINMUX_IPSR_DATA(IP11_10_8, DU1_EXVSYNC_DU1_VSYNC), - PINMUX_IPSR_DATA(IP11_10_8, CAN_DEBUGOUT14), PINMUX_IPSR_MSEL(IP11_13_11, SSI_SDATA6, SEL_SSI6_0), PINMUX_IPSR_MSEL(IP11_13_11, SCIFA1_TXD_B, SEL_SCIFA1_1), PINMUX_IPSR_MSEL(IP11_13_11, I2C4_SDA_C, SEL_I2C04_2), PINMUX_IPSR_DATA(IP11_13_11, DU1_EXODDF_DU1_ODDF_DISP_CDE), - PINMUX_IPSR_DATA(IP11_13_11, CAN_DEBUGOUT15), PINMUX_IPSR_MSEL(IP11_15_14, SSI_SCK78, SEL_SSI7_0), PINMUX_IPSR_MSEL(IP11_15_14, SCIFA2_SCK_B, SEL_SCIFA2_1), PINMUX_IPSR_MSEL(IP11_15_14, I2C5_SDA_C, SEL_I2C05_2), @@ -1356,30 +1326,24 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_DATA(IP11_20_18, IRQ8), PINMUX_IPSR_MSEL(IP11_20_18, AUDIO_CLKA_D, SEL_ADG_3), PINMUX_IPSR_MSEL(IP11_20_18, CAN_CLK_D, SEL_CAN_3), - PINMUX_IPSR_DATA(IP11_20_18, PCMOE_N), PINMUX_IPSR_DATA(IP11_23_21, SSI_SCK0129), PINMUX_IPSR_MSEL(IP11_23_21, MSIOF1_RXD_B, SEL_MSI1_1), PINMUX_IPSR_MSEL(IP11_23_21, SCIF5_RXD_D, SEL_SCIF5_3), PINMUX_IPSR_MSEL(IP11_23_21, ADIDATA_B, SEL_RAD_1), - PINMUX_IPSR_MSEL(IP11_23_21, AD_DI_B, SEL_ADI_1), - PINMUX_IPSR_DATA(IP11_23_21, PCMWE_N), PINMUX_IPSR_DATA(IP11_26_24, SSI_WS0129), PINMUX_IPSR_MSEL(IP11_26_24, MSIOF1_TXD_B, SEL_MSI1_1), PINMUX_IPSR_MSEL(IP11_26_24, SCIF5_TXD_D, SEL_SCIF5_3), PINMUX_IPSR_MSEL(IP11_26_24, ADICS_SAMP_B, SEL_RAD_1), - PINMUX_IPSR_MSEL(IP11_26_24, AD_DO_B, SEL_ADI_1), PINMUX_IPSR_DATA(IP11_29_27, SSI_SDATA0), PINMUX_IPSR_MSEL(IP11_29_27, MSIOF1_SCK_B, SEL_MSI1_1), PINMUX_IPSR_DATA(IP11_29_27, PWM0_B), PINMUX_IPSR_MSEL(IP11_29_27, ADICLK_B, SEL_RAD_1), - PINMUX_IPSR_MSEL(IP11_29_27, AD_CLK_B, SEL_ADI_1), /* IPSR12 */ PINMUX_IPSR_DATA(IP12_2_0, SSI_SCK34), PINMUX_IPSR_MSEL(IP12_2_0, MSIOF1_SYNC_B, SEL_MSI1_1), PINMUX_IPSR_MSEL(IP12_2_0, SCIFA1_SCK_C, SEL_SCIFA1_2), PINMUX_IPSR_MSEL(IP12_2_0, ADICHS0_B, SEL_RAD_1), - PINMUX_IPSR_MSEL(IP12_2_0, AD_NCS_N_B, SEL_ADI_1), PINMUX_IPSR_MSEL(IP12_2_0, DREQ1_N_B, SEL_LBS_1), PINMUX_IPSR_DATA(IP12_5_3, SSI_WS34), PINMUX_IPSR_MSEL(IP12_5_3, MSIOF1_SS1_B, SEL_MSI1_1), @@ -1396,15 +1360,12 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP12_10_9, SSI_SCK4, SEL_SSI4_0), PINMUX_IPSR_DATA(IP12_10_9, MLB_CLK), PINMUX_IPSR_MSEL(IP12_10_9, IETX_B, SEL_IEB_1), - PINMUX_IPSR_DATA(IP12_10_9, IRD_TX), PINMUX_IPSR_MSEL(IP12_12_11, SSI_WS4, SEL_SSI4_0), PINMUX_IPSR_DATA(IP12_12_11, MLB_SIG), PINMUX_IPSR_MSEL(IP12_12_11, IECLK_B, SEL_IEB_1), - PINMUX_IPSR_DATA(IP12_12_11, IRD_RX), PINMUX_IPSR_MSEL(IP12_14_13, SSI_SDATA4, SEL_SSI4_0), PINMUX_IPSR_DATA(IP12_14_13, MLB_DAT), PINMUX_IPSR_MSEL(IP12_14_13, IERX_B, SEL_IEB_1), - PINMUX_IPSR_DATA(IP12_14_13, IRD_SCK), PINMUX_IPSR_MSEL(IP12_17_15, SSI_SDATA8, SEL_SSI8_0), PINMUX_IPSR_MSEL(IP12_17_15, SCIF1_SCK_B, SEL_SCIF1_1), PINMUX_IPSR_DATA(IP12_17_15, PWM1_B), @@ -1417,25 +1378,21 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP12_20_18, IIC0_SCL_C, SEL_IIC0_2), PINMUX_IPSR_DATA(IP12_20_18, VI1_CLK), PINMUX_IPSR_MSEL(IP12_20_18, CAN0_RX_D, SEL_CAN0_3), - PINMUX_IPSR_MSEL(IP12_20_18, AVB_AVTP_CAPTURE, SEL_AVB_0), PINMUX_IPSR_MSEL(IP12_20_18, ETH_CRS_DV_B, SEL_ETH_1), PINMUX_IPSR_MSEL(IP12_23_21, SSI_WS1, SEL_SSI1_0), PINMUX_IPSR_MSEL(IP12_23_21, SCIF1_TXD_B, SEL_SCIF1_1), PINMUX_IPSR_MSEL(IP12_23_21, IIC0_SDA_C, SEL_IIC0_2), PINMUX_IPSR_DATA(IP12_23_21, VI1_DATA0), PINMUX_IPSR_MSEL(IP12_23_21, CAN0_TX_D, SEL_CAN0_3), - PINMUX_IPSR_MSEL(IP12_23_21, AVB_AVTP_MATCH, SEL_AVB_0), PINMUX_IPSR_MSEL(IP12_23_21, ETH_RX_ER_B, SEL_ETH_1), PINMUX_IPSR_MSEL(IP12_26_24, SSI_SDATA1, SEL_SSI1_0), PINMUX_IPSR_MSEL(IP12_26_24, HSCIF1_HRX_B, SEL_HSCIF1_1), PINMUX_IPSR_DATA(IP12_26_24, VI1_DATA1), - PINMUX_IPSR_MSEL(IP12_26_24, SDATA, SEL_FSN_0), PINMUX_IPSR_DATA(IP12_26_24, ATAWR0_N), PINMUX_IPSR_MSEL(IP12_26_24, ETH_RXD0_B, SEL_ETH_1), PINMUX_IPSR_MSEL(IP12_29_27, SSI_SCK2, SEL_SSI2_0), PINMUX_IPSR_MSEL(IP12_29_27, HSCIF1_HTX_B, SEL_HSCIF1_1), PINMUX_IPSR_DATA(IP12_29_27, VI1_DATA2), - PINMUX_IPSR_MSEL(IP12_29_27, MDATA, SEL_FSN_0), PINMUX_IPSR_DATA(IP12_29_27, ATAG0_N), PINMUX_IPSR_MSEL(IP12_29_27, ETH_RXD1_B, SEL_ETH_1), @@ -1444,21 +1401,18 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP13_2_0, HSCIF1_HCTS_N_B, SEL_HSCIF1_1), PINMUX_IPSR_MSEL(IP13_2_0, SCIFA0_RXD_D, SEL_SCIFA0_3), PINMUX_IPSR_DATA(IP13_2_0, VI1_DATA3), - PINMUX_IPSR_MSEL(IP13_2_0, SCKZ, SEL_FSN_0), PINMUX_IPSR_DATA(IP13_2_0, ATACS00_N), PINMUX_IPSR_MSEL(IP13_2_0, ETH_LINK_B, SEL_ETH_1), PINMUX_IPSR_MSEL(IP13_5_3, SSI_SDATA2, SEL_SSI2_0), PINMUX_IPSR_MSEL(IP13_5_3, HSCIF1_HRTS_N_B, SEL_HSCIF1_1), PINMUX_IPSR_MSEL(IP13_5_3, SCIFA0_TXD_D, SEL_SCIFA0_3), PINMUX_IPSR_DATA(IP13_5_3, VI1_DATA4), - PINMUX_IPSR_MSEL(IP13_5_3, STM_N, SEL_FSN_0), PINMUX_IPSR_DATA(IP13_5_3, ATACS10_N), PINMUX_IPSR_MSEL(IP13_5_3, ETH_REFCLK_B, SEL_ETH_1), PINMUX_IPSR_MSEL(IP13_8_6, SSI_SCK9, SEL_SSI9_0), PINMUX_IPSR_MSEL(IP13_8_6, SCIF2_SCK_B, SEL_SCIF2_1), PINMUX_IPSR_DATA(IP13_8_6, PWM2_B), PINMUX_IPSR_DATA(IP13_8_6, VI1_DATA5), - PINMUX_IPSR_MSEL(IP13_8_6, MTS_N, SEL_FSN_0), PINMUX_IPSR_DATA(IP13_8_6, EX_WAIT1), PINMUX_IPSR_MSEL(IP13_8_6, ETH_TXD1_B, SEL_ETH_1), PINMUX_IPSR_MSEL(IP13_11_9, SSI_WS9, SEL_SSI9_0), @@ -1478,14 +1432,12 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP13_17_15, SCIFA4_RXD_D, SEL_SCIFA4_3), PINMUX_IPSR_DATA(IP13_17_15, VI1_CLKENB), PINMUX_IPSR_MSEL(IP13_17_15, TS_SDATA_C, SEL_TSIF0_2), - PINMUX_IPSR_MSEL(IP13_17_15, RIF0_SYNC_B, SEL_DR0_1), PINMUX_IPSR_MSEL(IP13_17_15, ETH_TXD0_B, SEL_ETH_1), PINMUX_IPSR_MSEL(IP13_20_18, AUDIO_CLKB, SEL_ADG_0), PINMUX_IPSR_MSEL(IP13_20_18, I2C0_SDA_B, SEL_I2C00_1), PINMUX_IPSR_MSEL(IP13_20_18, SCIFA4_TXD_D, SEL_SCIFA4_3), PINMUX_IPSR_DATA(IP13_20_18, VI1_FIELD), PINMUX_IPSR_MSEL(IP13_20_18, TS_SCK_C, SEL_TSIF0_2), - PINMUX_IPSR_MSEL(IP13_20_18, RIF0_CLK_B, SEL_DR0_1), PINMUX_IPSR_MSEL(IP13_20_18, BPFCLK_E, SEL_DARC_4), PINMUX_IPSR_MSEL(IP13_20_18, ETH_MDC_B, SEL_ETH_1), PINMUX_IPSR_MSEL(IP13_23_21, AUDIO_CLKC, SEL_ADG_0), @@ -1493,17 +1445,13 @@ static const u16 pinmux_data[] = { PINMUX_IPSR_MSEL(IP13_23_21, SCIFA5_RXD_D, SEL_SCIFA5_3), PINMUX_IPSR_DATA(IP13_23_21, VI1_HSYNC_N), PINMUX_IPSR_MSEL(IP13_23_21, TS_SDEN_C, SEL_TSIF0_2), - PINMUX_IPSR_MSEL(IP13_23_21, RIF0_D0_B, SEL_DR0_1), PINMUX_IPSR_MSEL(IP13_23_21, FMCLK_E, SEL_DARC_4), - PINMUX_IPSR_MSEL(IP13_23_21, RDS_CLK_D, SEL_RDS_3), PINMUX_IPSR_MSEL(IP13_26_24, AUDIO_CLKOUT, SEL_ADG_0), PINMUX_IPSR_MSEL(IP13_26_24, I2C4_SDA_B, SEL_I2C04_1), PINMUX_IPSR_MSEL(IP13_26_24, SCIFA5_TXD_D, SEL_SCIFA5_3), PINMUX_IPSR_DATA(IP13_26_24, VI1_VSYNC_N), PINMUX_IPSR_MSEL(IP13_26_24, TS_SPSYNC_C, SEL_TSIF0_2), - PINMUX_IPSR_MSEL(IP13_26_24, RIF0_D1_B, SEL_DR1_1), PINMUX_IPSR_MSEL(IP13_26_24, FMIN_E, SEL_DARC_4), - PINMUX_IPSR_MSEL(IP13_26_24, RDS_DATA_D, SEL_RDS_3), }; static const struct sh_pfc_pin pinmux_pins[] = { @@ -4529,7 +4477,7 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { /* IP1_19_18 [2] */ FN_D14, FN_SCIFA1_RXD, FN_I2C5_SCL_B, 0, /* IP1_17_15 [3] */ - FN_D13, FN_SCIFA1_SCK, FN_TANS1, FN_PWM2_C, FN_TCLK2_B, + FN_D13, FN_SCIFA1_SCK, 0, FN_PWM2_C, FN_TCLK2_B, 0, 0, 0, /* IP1_14_13 [2] */ FN_D12, FN_HSCIF2_HRTS_N, FN_SCIF1_TXD_C, FN_I2C1_SDA_D, @@ -4550,19 +4498,19 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { { PINMUX_CFG_REG_VAR("IPSR2", 0xE6060028, 32, 2, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2) { /* IP2_31_30 [2] */ - FN_A20, FN_SPCLK, FN_MOUT1, 0, + FN_A20, FN_SPCLK, 0, 0, /* IP2_29_27 [3] */ FN_A19, FN_MSIOF2_SS2, FN_PWM4, FN_TPUTO2, - FN_MOUT0, 0, 0, 0, + 0, 0, 0, 0, /* IP2_26_24 [3] */ FN_A18, FN_MSIOF2_SS1, FN_SCIF4_TXD_E, FN_CAN1_TX_B, - FN_AVB_AVTP_MATCH_B, 0, 0, 0, + 0, 0, 0, 0, /* IP2_23_21 [3] */ FN_A17, FN_MSIOF2_SYNC, FN_SCIF4_RXD_E, FN_CAN1_RX_B, - FN_AVB_AVTP_CAPTURE_B, 0, 0, 0, + 0, 0, 0, 0, /* IP2_20_18 [3] */ FN_A16, FN_MSIOF2_SCK, FN_HSCIF0_HSCK_B, FN_SPEEDIN, - FN_VSP, FN_CAN_CLK_C, FN_TPUTO2_B, 0, + 0, FN_CAN_CLK_C, FN_TPUTO2_B, 0, /* IP2_17_16 [2] */ FN_A15, FN_MSIOF2_TXD, FN_HSCIF0_HTX_B, FN_DACK1, /* IP2_15_14 [2] */ @@ -4590,19 +4538,19 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { FN_RD_N, FN_ATACS11_N, /* IP3_29_27 [3] */ FN_BS_N, FN_DRACK0, FN_PWM1_C, FN_TPUTO0_C, FN_ATACS01_N, - FN_MTS_N_B, 0, 0, + 0, 0, 0, /* IP3_26_24 [3] */ FN_EX_CS5_N, FN_SCIFA2_TXD, FN_I2C2_SDA_E, FN_TS_SPSYNC_B, - FN_RIF0_D1, FN_FMIN, FN_SCIFB2_RTS_N, FN_STM_N_B, + 0, FN_FMIN, FN_SCIFB2_RTS_N, 0, /* IP3_23_21 [3] */ FN_EX_CS4_N, FN_SCIFA2_RXD, FN_I2C2_SCL_E, FN_TS_SDEN_B, - FN_RIF0_D0, FN_FMCLK, FN_SCIFB2_CTS_N, FN_SCKZ_B, + 0, FN_FMCLK, FN_SCIFB2_CTS_N, 0, /* IP3_20_18 [3] */ FN_EX_CS3_N, FN_SCIFA2_SCK, FN_SCIF4_TXD_C, FN_TS_SCK_B, - FN_RIF0_CLK, FN_BPFCLK, FN_SCIFB2_SCK, FN_MDATA_B, + 0, FN_BPFCLK, FN_SCIFB2_SCK, 0, /* IP3_17_15 [3] */ FN_EX_CS2_N, FN_PWM0, FN_SCIF4_RXD_C, FN_TS_SDATA_B, - FN_RIF0_SYNC, FN_TPUTO3, FN_SCIFB2_TXD, FN_SDATA_B, + 0, FN_TPUTO3, FN_SCIFB2_TXD, 0, /* IP3_14_13 [2] */ FN_EX_CS1_N, FN_TPUTO3_B, FN_SCIFB2_RXD, FN_VI1_DATA11, /* IP3_12 [1] */ @@ -4616,88 +4564,88 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { /* IP3_7_6 [2] */ FN_A24, FN_IO3, FN_EX_WAIT2, 0, /* IP3_5_4 [2] */ - FN_A23, FN_IO2, FN_MOUT6, FN_ATAWR1_N, + FN_A23, FN_IO2, 0, FN_ATAWR1_N, /* IP3_3_2 [2] */ - FN_A22, FN_MISO_IO1, FN_MOUT5, FN_ATADIR1_N, + FN_A22, FN_MISO_IO1, 0, FN_ATADIR1_N, /* IP3_1_0 [2] */ - FN_A21, FN_MOSI_IO0, FN_MOUT2, 0, } + FN_A21, FN_MOSI_IO0, 0, 0, } }, { PINMUX_CFG_REG_VAR("IPSR4", 0xE6060030, 32, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 3, 3, 2) { /* IP4_31_30 [2] */ - FN_DU0_DG4, FN_LCDOUT12, FN_CC50_STATE12, 0, + FN_DU0_DG4, FN_LCDOUT12, 0, 0, /* IP4_29_28 [2] */ - FN_DU0_DG3, FN_LCDOUT11, FN_CC50_STATE11, 0, + FN_DU0_DG3, FN_LCDOUT11, 0, 0, /* IP4_27_26 [2] */ - FN_DU0_DG2, FN_LCDOUT10, FN_CC50_STATE10, 0, + FN_DU0_DG2, FN_LCDOUT10, 0, 0, /* IP4_25_23 [3] */ FN_DU0_DG1, FN_LCDOUT9, FN_SCIFA0_TXD_C, FN_I2C3_SDA_D, - FN_CC50_STATE9, 0, 0, 0, + 0, 0, 0, 0, /* IP4_22_20 [3] */ FN_DU0_DG0, FN_LCDOUT8, FN_SCIFA0_RXD_C, FN_I2C3_SCL_D, - FN_CC50_STATE8, 0, 0, 0, + 0, 0, 0, 0, /* IP4_19_18 [2] */ - FN_DU0_DR7, FN_LCDOUT23, FN_CC50_STATE7, 0, + FN_DU0_DR7, FN_LCDOUT23, 0, 0, /* IP4_17_16 [2] */ - FN_DU0_DR6, FN_LCDOUT22, FN_CC50_STATE6, 0, + FN_DU0_DR6, FN_LCDOUT22, 0, 0, /* IP4_15_14 [2] */ - FN_DU0_DR5, FN_LCDOUT21, FN_CC50_STATE5, 0, + FN_DU0_DR5, FN_LCDOUT21, 0, 0, /* IP4_13_12 [2] */ - FN_DU0_DR4, FN_LCDOUT20, FN_CC50_STATE4, 0, + FN_DU0_DR4, FN_LCDOUT20, 0, 0, /* IP4_11_10 [2] */ - FN_DU0_DR3, FN_LCDOUT19, FN_CC50_STATE3, 0, + FN_DU0_DR3, FN_LCDOUT19, 0, 0, /* IP4_9_8 [2] */ - FN_DU0_DR2, FN_LCDOUT18, FN_CC50_STATE2, 0, + FN_DU0_DR2, FN_LCDOUT18, 0, 0, /* IP4_7_5 [3] */ FN_DU0_DR1, FN_LCDOUT17, FN_SCIF5_TXD_C, FN_I2C2_SDA_D, - FN_CC50_STATE1, 0, 0, 0, + 0, 0, 0, 0, /* IP4_4_2 [3] */ FN_DU0_DR0, FN_LCDOUT16, FN_SCIF5_RXD_C, FN_I2C2_SCL_D, - FN_CC50_STATE0, 0, 0, 0, + 0, 0, 0, 0, /* IP4_1_0 [2] */ - FN_EX_WAIT0, FN_CAN_CLK_B, FN_SCIF_CLK, FN_PWMFSW0, } + FN_EX_WAIT0, FN_CAN_CLK_B, FN_SCIF_CLK, 0, } }, { PINMUX_CFG_REG_VAR("IPSR5", 0xE6060034, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2) { /* IP5_31_30 [2] */ - FN_DU0_EXHSYNC_DU0_HSYNC, FN_QSTH_QHS, FN_CC50_STATE27, 0, + FN_DU0_EXHSYNC_DU0_HSYNC, FN_QSTH_QHS, 0, 0, /* IP5_29_28 [2] */ - FN_DU0_DOTCLKOUT1, FN_QSTVB_QVE, FN_CC50_STATE26, 0, + FN_DU0_DOTCLKOUT1, FN_QSTVB_QVE, 0, 0, /* IP5_27_26 [2] */ - FN_DU0_DOTCLKOUT0, FN_QCLK, FN_CC50_STATE25, 0, + FN_DU0_DOTCLKOUT0, FN_QCLK, 0, 0, /* IP5_25_24 [2] */ - FN_DU0_DOTCLKIN, FN_QSTVA_QVS, FN_CC50_STATE24, 0, + FN_DU0_DOTCLKIN, FN_QSTVA_QVS, 0, 0, /* IP5_23_22 [2] */ - FN_DU0_DB7, FN_LCDOUT7, FN_CC50_STATE23, 0, + FN_DU0_DB7, FN_LCDOUT7, 0, 0, /* IP5_21_20 [2] */ - FN_DU0_DB6, FN_LCDOUT6, FN_CC50_STATE22, 0, + FN_DU0_DB6, FN_LCDOUT6, 0, 0, /* IP5_19_18 [2] */ - FN_DU0_DB5, FN_LCDOUT5, FN_CC50_STATE21, 0, + FN_DU0_DB5, FN_LCDOUT5, 0, 0, /* IP5_17_16 [2] */ - FN_DU0_DB4, FN_LCDOUT4, FN_CC50_STATE20, 0, + FN_DU0_DB4, FN_LCDOUT4, 0, 0, /* IP5_15_14 [2] */ - FN_DU0_DB3, FN_LCDOUT3, FN_CC50_STATE19, 0, + FN_DU0_DB3, FN_LCDOUT3, 0, 0, /* IP5_13_12 [2] */ - FN_DU0_DB2, FN_LCDOUT2, FN_CC50_STATE18, 0, + FN_DU0_DB2, FN_LCDOUT2, 0, 0, /* IP5_11_9 [3] */ FN_DU0_DB1, FN_LCDOUT1, FN_SCIFA4_TXD_C, FN_I2C4_SDA_D, - FN_CAN0_TX_C, FN_CC50_STATE17, 0, 0, + FN_CAN0_TX_C, 0, 0, 0, /* IP5_8_6 [3] */ FN_DU0_DB0, FN_LCDOUT0, FN_SCIFA4_RXD_C, FN_I2C4_SCL_D, - FN_CAN0_RX_C, FN_CC50_STATE16, 0, 0, + FN_CAN0_RX_C, 0, 0, 0, /* IP5_5_4 [2] */ - FN_DU0_DG7, FN_LCDOUT15, FN_CC50_STATE15, 0, + FN_DU0_DG7, FN_LCDOUT15, 0, 0, /* IP5_3_2 [2] */ - FN_DU0_DG6, FN_LCDOUT14, FN_CC50_STATE14, 0, + FN_DU0_DG6, FN_LCDOUT14, 0, 0, /* IP5_1_0 [2] */ - FN_DU0_DG5, FN_LCDOUT13, FN_CC50_STATE13, 0, } + FN_DU0_DG5, FN_LCDOUT13, 0, 0, } }, { PINMUX_CFG_REG_VAR("IPSR6", 0xE6060038, 32, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2) { /* IP6_31_29 [3] */ FN_ETH_MDIO, FN_VI0_G0, FN_MSIOF2_RXD_B, FN_I2C5_SCL_D, - FN_AVB_TX_CLK, FN_ADIDATA, FN_AD_DI, 0, + FN_AVB_TX_CLK, FN_ADIDATA, 0, 0, /* IP6_28_26 [3] */ FN_VI0_VSYNC_N, FN_SCIF0_TXD_B, FN_I2C0_SDA_C, FN_AUDIO_CLKOUT_B, FN_AVB_TX_EN, 0, 0, 0, @@ -4729,14 +4677,14 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { /* IP6_8 [1] */ FN_VI0_CLK, FN_AVB_RX_CLK, /* IP6_7_6 [2] */ - FN_DU0_CDE, FN_QPOLB, FN_CC50_STATE31, 0, + FN_DU0_CDE, FN_QPOLB, 0, 0, /* IP6_5_4 [2] */ - FN_DU0_DISP, FN_QPOLA, FN_CC50_STATE30, 0, + FN_DU0_DISP, FN_QPOLA, 0, 0, /* IP6_3_2 [2] */ - FN_DU0_EXODDF_DU0_ODDF_DISP_CDE, FN_QCPV_QDE, FN_CC50_STATE29, + FN_DU0_EXODDF_DU0_ODDF_DISP_CDE, FN_QCPV_QDE, 0, 0, /* IP6_1_0 [2] */ - FN_DU0_EXVSYNC_DU0_VSYNC, FN_QSTB_QHE, FN_CC50_STATE28, 0, } + FN_DU0_EXVSYNC_DU0_VSYNC, FN_QSTB_QHE, 0, 0, } }, { PINMUX_CFG_REG_VAR("IPSR7", 0xE606003C, 32, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3) { @@ -4767,25 +4715,25 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { FN_AVB_TXD3, FN_ADICHS1, 0, 0, /* IP7_8_6 [3] */ FN_ETH_RXD0, FN_VI0_G3, FN_MSIOF2_SYNC_B, FN_CAN0_TX_B, - FN_AVB_TXD2, FN_ADICHS0, FN_AD_NCS_N, 0, + FN_AVB_TXD2, FN_ADICHS0, 0, 0, /* IP7_5_3 [3] */ FN_ETH_RX_ER, FN_VI0_G2, FN_MSIOF2_SCK_B, FN_CAN0_RX_B, - FN_AVB_TXD1, FN_ADICLK, FN_AD_CLK, 0, + FN_AVB_TXD1, FN_ADICLK, 0, 0, /* IP7_2_0 [3] */ FN_ETH_CRS_DV, FN_VI0_G1, FN_MSIOF2_TXD_B, FN_I2C5_SDA_D, - FN_AVB_TXD0, FN_ADICS_SAMP, FN_AD_DO, 0, } + FN_AVB_TXD0, FN_ADICS_SAMP, 0, 0, } }, { PINMUX_CFG_REG_VAR("IPSR8", 0xE6060040, 32, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3) { /* IP8_31_29 [3] */ FN_MSIOF0_RXD, FN_SCIF5_RXD, FN_I2C2_SCL_C, FN_DU1_DR2, - FN_RIF1_D0_B, FN_TS_SDEN_D, FN_FMCLK_C, FN_RDS_CLK, + 0, FN_TS_SDEN_D, FN_FMCLK_C, 0, /* IP8_28_26 [3] */ FN_I2C1_SDA, FN_SCIF4_TXD, FN_IRQ5, FN_DU1_DR1, - FN_RIF1_CLK_B, FN_TS_SCK_D, FN_BPFCLK_C, 0, + 0, FN_TS_SCK_D, FN_BPFCLK_C, 0, /* IP8_25_23 [3] */ FN_I2C1_SCL, FN_SCIF4_RXD, FN_PWM5_B, FN_DU1_DR0, - FN_RIF1_SYNC_B, FN_TS_SDATA_D, FN_TPUTO1_B, 0, + 0, FN_TS_SDATA_D, FN_TPUTO1_B, 0, /* IP8_22_20 [3] */ FN_I2C0_SDA, FN_SCIF0_TXD_C, FN_TPUTO0, FN_CAN_CLK, FN_DVC_MUTE, FN_CAN1_TX_D, 0, 0, @@ -4816,70 +4764,70 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { 0, 0, /* IP9_30_28 [3] */ FN_SCIF1_SCK, FN_PWM3, FN_TCLK2, FN_DU1_DG5, - FN_SSI_SDATA1_B, FN_CAN_TXCLK, FN_CC50_STATE34, 0, + FN_SSI_SDATA1_B, 0, 0, 0, /* IP9_27_25 [3] */ FN_HSCIF1_HRTS_N, FN_SCIFA4_TXD, FN_IERX, FN_DU1_DG4, - FN_SSI_WS1_B, FN_CAN_STEP0, FN_CC50_STATE33, 0, + FN_SSI_WS1_B, 0, 0, 0, /* IP9_24_22 [3] */ FN_HSCIF1_HCTS_N, FN_SCIFA4_RXD, FN_IECLK, FN_DU1_DG3, - FN_SSI_SCK1_B, FN_CAN_DEBUG_HW_TRIGGER, FN_CC50_STATE32, 0, + FN_SSI_SCK1_B, 0, 0, 0, /* IP9_21_19 [3] */ FN_HSCIF1_HSCK, FN_PWM2, FN_IETX, FN_DU1_DG2, - FN_REMOCON_B, FN_SPEEDIN_B, FN_VSP_B, 0, + FN_REMOCON_B, FN_SPEEDIN_B, 0, 0, /* IP9_18_17 [2] */ FN_HSCIF1_HTX, FN_I2C4_SDA, FN_TPUTO1, FN_DU1_DG1, /* IP9_16_15 [2] */ FN_HSCIF1_HRX, FN_I2C4_SCL, FN_PWM6, FN_DU1_DG0, /* IP9_14_12 [3] */ FN_MSIOF0_SS2, FN_SCIFA0_TXD, FN_TS_SPSYNC, FN_DU1_DR7, - FN_RIF1_D1, FN_FMIN_B, FN_RDS_DATA_B, 0, + 0, FN_FMIN_B, 0, 0, /* IP9_11_9 [3] */ FN_MSIOF0_SS1, FN_SCIFA0_RXD, FN_TS_SDEN, FN_DU1_DR6, - FN_RIF1_D0, FN_FMCLK_B, FN_RDS_CLK_B, 0, + 0, FN_FMCLK_B, 0, 0, /* IP9_8_6 [3] */ FN_MSIOF0_SYNC, FN_PWM1, FN_TS_SCK, FN_DU1_DR5, - FN_RIF1_CLK, FN_BPFCLK_B, 0, 0, + 0, FN_BPFCLK_B, 0, 0, /* IP9_5_3 [3] */ FN_MSIOF0_SCK, FN_IRQ0, FN_TS_SDATA, FN_DU1_DR4, - FN_RIF1_SYNC, FN_TPUTO1_C, 0, 0, + 0, FN_TPUTO1_C, 0, 0, /* IP9_2_0 [3] */ FN_MSIOF0_TXD, FN_SCIF5_TXD, FN_I2C2_SDA_C, FN_DU1_DR3, - FN_RIF1_D1_B, FN_TS_SPSYNC_D, FN_FMIN_C, FN_RDS_DATA, } + 0, FN_TS_SPSYNC_D, FN_FMIN_C, 0, } }, { PINMUX_CFG_REG_VAR("IPSR10", 0xE6060048, 32, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3) { /* IP10_31_30 [2] */ - FN_SSI_SCK5, FN_SCIFA3_SCK, FN_DU1_DOTCLKIN, FN_CAN_DEBUGOUT10, + FN_SSI_SCK5, FN_SCIFA3_SCK, FN_DU1_DOTCLKIN, 0, /* IP10_29_27 [3] */ FN_I2C2_SDA, FN_SCIFA5_TXD, FN_DU1_DB7, FN_AUDIO_CLKOUT_C, - FN_CAN_DEBUGOUT9, 0, 0, 0, + 0, 0, 0, 0, /* IP10_26_24 [3] */ FN_I2C2_SCL, FN_SCIFA5_RXD, FN_DU1_DB6, FN_AUDIO_CLKC_C, - FN_SSI_SDATA4_B, FN_CAN_DEBUGOUT8, 0, 0, + FN_SSI_SDATA4_B, 0, 0, 0, /* IP10_23_21 [3] */ FN_SCIF3_TXD, FN_I2C1_SDA_E, FN_FMIN_D, FN_DU1_DB5, - FN_AUDIO_CLKB_C, FN_SSI_WS4_B, FN_CAN_DEBUGOUT7, FN_RDS_DATA_C, + FN_AUDIO_CLKB_C, FN_SSI_WS4_B, 0, 0, /* IP10_20_18 [3] */ FN_SCIF3_RXD, FN_I2C1_SCL_E, FN_FMCLK_D, FN_DU1_DB4, - FN_AUDIO_CLKA_C, FN_SSI_SCK4_B, FN_CAN_DEBUGOUT6, FN_RDS_CLK_C, + FN_AUDIO_CLKA_C, FN_SSI_SCK4_B, 0, 0, /* IP10_17_15 [3] */ FN_SCIF3_SCK, FN_IRQ2, FN_BPFCLK_D, FN_DU1_DB3, - FN_SSI_SDATA9_B, FN_TANS2, FN_CAN_DEBUGOUT5, FN_CC50_OSCOUT, + FN_SSI_SDATA9_B, 0, 0, 0, /* IP10_14_12 [3] */ FN_SCIF2_SCK, FN_IRQ1, FN_DU1_DB2, FN_SSI_WS9_B, - FN_USB0_IDIN, FN_CAN_DEBUGOUT4, FN_CC50_STATE39, 0, + 0, 0, 0, 0, /* IP10_11_9 [3] */ FN_SCIF2_TXD, FN_IIC0_SDA, FN_DU1_DB1, FN_SSI_SCK9_B, - FN_USB0_OVC1, FN_CAN_DEBUGOUT3, FN_CC50_STATE38, 0, + 0, 0, 0, 0, /* IP10_8_6 [3] */ FN_SCIF2_RXD, FN_IIC0_SCL, FN_DU1_DB0, FN_SSI_SDATA2_B, - FN_USB0_EXTLP, FN_CAN_DEBUGOUT2, FN_CC50_STATE37, 0, + 0, 0, 0, 0, /* IP10_5_3 [3] */ FN_SCIF1_TXD, FN_I2C5_SDA, FN_DU1_DG7, FN_SSI_WS2_B, - FN_CAN_DEBUGOUT1, FN_CC50_STATE36, 0, 0, + 0, 0, 0, 0, /* IP10_2_0 [3] */ FN_SCIF1_RXD, FN_I2C5_SCL, FN_DU1_DG6, FN_SSI_SCK2_B, - FN_CAN_DEBUGOUT0, FN_CC50_STATE35, 0, 0, } + 0, 0, 0, 0, } }, { PINMUX_CFG_REG_VAR("IPSR11", 0xE606004C, 32, 2, 3, 3, 3, 3, 2, 2, 3, 3, 2, 3, 3) { @@ -4887,61 +4835,60 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { 0, 0, 0, 0, /* IP11_29_27 [3] */ FN_SSI_SDATA0, FN_MSIOF1_SCK_B, FN_PWM0_B, FN_ADICLK_B, - FN_AD_CLK_B, 0, 0, 0, + 0, 0, 0, 0, /* IP11_26_24 [3] */ FN_SSI_WS0129, FN_MSIOF1_TXD_B, FN_SCIF5_TXD_D, FN_ADICS_SAMP_B, - FN_AD_DO_B, 0, 0, 0, + 0, 0, 0, 0, /* IP11_23_21 [3] */ FN_SSI_SCK0129, FN_MSIOF1_RXD_B, FN_SCIF5_RXD_D, FN_ADIDATA_B, - FN_AD_DI_B, FN_PCMWE_N, 0, 0, + 0, 0, 0, 0, /* IP11_20_18 [3] */ FN_SSI_SDATA7, FN_SCIFA2_TXD_B, FN_IRQ8, FN_AUDIO_CLKA_D, - FN_CAN_CLK_D, FN_PCMOE_N, 0, 0, + FN_CAN_CLK_D, 0, 0, 0, /* IP11_17_16 [2] */ FN_SSI_WS78, FN_SCIFA2_RXD_B, FN_I2C5_SCL_C, FN_DU1_CDE, /* IP11_15_14 [2] */ FN_SSI_SCK78, FN_SCIFA2_SCK_B, FN_I2C5_SDA_C, FN_DU1_DISP, /* IP11_13_11 [3] */ FN_SSI_SDATA6, FN_SCIFA1_TXD_B, FN_I2C4_SDA_C, - FN_DU1_EXODDF_DU1_ODDF_DISP_CDE, FN_CAN_DEBUGOUT15, 0, 0, 0, + FN_DU1_EXODDF_DU1_ODDF_DISP_CDE, 0, 0, 0, 0, /* IP11_10_8 [3] */ FN_SSI_WS6, FN_SCIFA1_RXD_B, FN_I2C4_SCL_C, - FN_DU1_EXVSYNC_DU1_VSYNC, FN_CAN_DEBUGOUT14, 0, 0, 0, + FN_DU1_EXVSYNC_DU1_VSYNC, 0, 0, 0, 0, /* IP11_7_6 [2] */ - FN_SSI_SCK6, FN_SCIFA1_SCK_B, FN_DU1_EXHSYNC_DU1_HSYNC, - FN_CAN_DEBUGOUT13, + FN_SSI_SCK6, FN_SCIFA1_SCK_B, FN_DU1_EXHSYNC_DU1_HSYNC, 0, /* IP11_5_3 [3] */ FN_SSI_SDATA5, FN_SCIFA3_TXD, FN_I2C3_SDA_C, FN_DU1_DOTCLKOUT1, - FN_CAN_DEBUGOUT12, 0, 0, 0, + 0, 0, 0, 0, /* IP11_2_0 [3] */ FN_SSI_WS5, FN_SCIFA3_RXD, FN_I2C3_SCL_C, FN_DU1_DOTCLKOUT0, - FN_CAN_DEBUGOUT11, 0, 0, 0, } + 0, 0, 0, 0, } }, { PINMUX_CFG_REG_VAR("IPSR12", 0xE6060050, 32, 2, 3, 3, 3, 3, 3, 2, 2, 2, 3, 3, 3) { /* IP12_31_30 [2] */ 0, 0, 0, 0, /* IP12_29_27 [3] */ - FN_SSI_SCK2, FN_HSCIF1_HTX_B, FN_VI1_DATA2, FN_MDATA, + FN_SSI_SCK2, FN_HSCIF1_HTX_B, FN_VI1_DATA2, 0, FN_ATAG0_N, FN_ETH_RXD1_B, 0, 0, /* IP12_26_24 [3] */ - FN_SSI_SDATA1, FN_HSCIF1_HRX_B, FN_VI1_DATA1, FN_SDATA, + FN_SSI_SDATA1, FN_HSCIF1_HRX_B, FN_VI1_DATA1, 0, FN_ATAWR0_N, FN_ETH_RXD0_B, 0, 0, /* IP12_23_21 [3] */ FN_SSI_WS1, FN_SCIF1_TXD_B, FN_IIC0_SDA_C, FN_VI1_DATA0, - FN_CAN0_TX_D, FN_AVB_AVTP_MATCH, FN_ETH_RX_ER_B, 0, + FN_CAN0_TX_D, 0, FN_ETH_RX_ER_B, 0, /* IP12_20_18 [3] */ FN_SSI_SCK1, FN_SCIF1_RXD_B, FN_IIC0_SCL_C, FN_VI1_CLK, - FN_CAN0_RX_D, FN_AVB_AVTP_CAPTURE, FN_ETH_CRS_DV_B, 0, + FN_CAN0_RX_D, 0, FN_ETH_CRS_DV_B, 0, /* IP12_17_15 [3] */ FN_SSI_SDATA8, FN_SCIF1_SCK_B, FN_PWM1_B, FN_IRQ9, FN_REMOCON, FN_DACK2, FN_ETH_MDIO_B, 0, /* IP12_14_13 [2] */ - FN_SSI_SDATA4, FN_MLB_DAT, FN_IERX_B, FN_IRD_SCK, + FN_SSI_SDATA4, FN_MLB_DAT, FN_IERX_B, 0, /* IP12_12_11 [2] */ - FN_SSI_WS4, FN_MLB_SIG, FN_IECLK_B, FN_IRD_RX, + FN_SSI_WS4, FN_MLB_SIG, FN_IECLK_B, 0, /* IP12_10_9 [2] */ - FN_SSI_SCK4, FN_MLB_CLK, FN_IETX_B, FN_IRD_TX, + FN_SSI_SCK4, FN_MLB_CLK, FN_IETX_B, 0, /* IP12_8_6 [3] */ FN_SSI_SDATA3, FN_MSIOF1_SS2_B, FN_SCIFA1_TXD_C, FN_ADICHS2_B, FN_CAN1_TX_C, FN_DREQ2_N, 0, 0, @@ -4950,7 +4897,7 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { FN_CAN1_RX_C, FN_DACK1_B, 0, 0, /* IP12_2_0 [3] */ FN_SSI_SCK34, FN_MSIOF1_SYNC_B, FN_SCIFA1_SCK_C, FN_ADICHS0_B, - FN_AD_NCS_N_B, FN_DREQ1_N_B, 0, 0, } + 0, FN_DREQ1_N_B, 0, 0, } }, { PINMUX_CFG_REG_VAR("IPSR13", 0xE6060054, 32, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3) { @@ -4966,16 +4913,16 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { 0, 0, /* IP13_26_24 [3] */ FN_AUDIO_CLKOUT, FN_I2C4_SDA_B, FN_SCIFA5_TXD_D, FN_VI1_VSYNC_N, - FN_TS_SPSYNC_C, FN_RIF0_D1_B, FN_FMIN_E, FN_RDS_DATA_D, + FN_TS_SPSYNC_C, 0, FN_FMIN_E, 0, /* IP13_23_21 [3] */ FN_AUDIO_CLKC, FN_I2C4_SCL_B, FN_SCIFA5_RXD_D, FN_VI1_HSYNC_N, - FN_TS_SDEN_C, FN_RIF0_D0_B, FN_FMCLK_E, FN_RDS_CLK_D, + FN_TS_SDEN_C, 0, FN_FMCLK_E, 0, /* IP13_20_18 [3] */ FN_AUDIO_CLKB, FN_I2C0_SDA_B, FN_SCIFA4_TXD_D, FN_VI1_FIELD, - FN_TS_SCK_C, FN_RIF0_CLK_B, FN_BPFCLK_E, FN_ETH_MDC_B, + FN_TS_SCK_C, 0, FN_BPFCLK_E, FN_ETH_MDC_B, /* IP13_17_15 [3] */ FN_AUDIO_CLKA, FN_I2C0_SCL_B, FN_SCIFA4_RXD_D, FN_VI1_CLKENB, - FN_TS_SDATA_C, FN_RIF0_SYNC_B, FN_ETH_TXD0_B, 0, + FN_TS_SDATA_C, 0, FN_ETH_TXD0_B, 0, /* IP13_14_12 [3] */ FN_SSI_SDATA9, FN_SCIF2_TXD_B, FN_I2C3_SDA_E, FN_VI1_DATA7, FN_ATADIR0_N, FN_ETH_MAGIC_B, 0, 0, @@ -4984,38 +4931,32 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { FN_ATARD0_N, FN_ETH_TX_EN_B, 0, 0, /* IP13_8_6 [3] */ FN_SSI_SCK9, FN_SCIF2_SCK_B, FN_PWM2_B, FN_VI1_DATA5, - FN_MTS_N, FN_EX_WAIT1, FN_ETH_TXD1_B, 0, + 0, FN_EX_WAIT1, FN_ETH_TXD1_B, 0, /* IP13_5_3 [2] */ FN_SSI_SDATA2, FN_HSCIF1_HRTS_N_B, FN_SCIFA0_TXD_D, - FN_VI1_DATA4, FN_STM_N, FN_ATACS10_N, FN_ETH_REFCLK_B, 0, + FN_VI1_DATA4, 0, FN_ATACS10_N, FN_ETH_REFCLK_B, 0, /* IP13_2_0 [3] */ FN_SSI_WS2, FN_HSCIF1_HCTS_N_B, FN_SCIFA0_RXD_D, FN_VI1_DATA3, - FN_SCKZ, FN_ATACS00_N, FN_ETH_LINK_B, 0, } + 0, FN_ATACS00_N, FN_ETH_LINK_B, 0, } }, { PINMUX_CFG_REG_VAR("MOD_SEL", 0xE6060090, 32, - 2, 1, 2, 3, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, + 2, 1, 2, 3, 4, 1, 1, 3, 3, 3, 3, 3, 2, 1) { /* SEL_ADG [2] */ FN_SEL_ADG_0, FN_SEL_ADG_1, FN_SEL_ADG_2, FN_SEL_ADG_3, - /* SEL_ADI [1] */ - FN_SEL_ADI_0, FN_SEL_ADI_1, + /* RESERVED [1] */ + 0, 0, /* SEL_CAN [2] */ FN_SEL_CAN_0, FN_SEL_CAN_1, FN_SEL_CAN_2, FN_SEL_CAN_3, /* SEL_DARC [3] */ FN_SEL_DARC_0, FN_SEL_DARC_1, FN_SEL_DARC_2, FN_SEL_DARC_3, FN_SEL_DARC_4, 0, 0, 0, - /* SEL_DR0 [1] */ - FN_SEL_DR0_0, FN_SEL_DR0_1, - /* SEL_DR1 [1] */ - FN_SEL_DR1_0, FN_SEL_DR1_1, - /* SEL_DR2 [1] */ - FN_SEL_DR2_0, FN_SEL_DR2_1, - /* SEL_DR3 [1] */ - FN_SEL_DR3_0, FN_SEL_DR3_1, + /* RESERVED [4] */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* SEL_ETH [1] */ FN_SEL_ETH_0, FN_SEL_ETH_1, - /* SLE_FSN [1] */ - FN_SEL_FSN_0, FN_SEL_FSN_1, + /* RESERVED [1] */ + 0, 0, /* SEL_IC200 [3] */ FN_SEL_I2C00_0, FN_SEL_I2C00_1, FN_SEL_I2C00_2, FN_SEL_I2C00_3, FN_SEL_I2C00_4, 0, 0, 0, @@ -5033,8 +4974,8 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { FN_SEL_I2C04_4, 0, 0, 0, /* SEL_I2C05 [2] */ FN_SEL_I2C05_0, FN_SEL_I2C05_1, FN_SEL_I2C05_2, FN_SEL_I2C05_3, - /* SEL_AVB [1] */ - FN_SEL_AVB_0, FN_SEL_AVB_1, } + /* RESERVED [1] */ + 0, 0, } }, { PINMUX_CFG_REG_VAR("MOD_SEL2", 0xE6060094, 32, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, @@ -5070,8 +5011,8 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { /* SEL_SCIFA5 [2] */ FN_SEL_SCIFA5_0, FN_SEL_SCIFA5_1, FN_SEL_SCIFA5_2, FN_SEL_SCIFA5_3, - /* SEL_SPDM [1] */ - FN_SEL_SPDM_0, FN_SEL_SPDM_1, + /* RESERVED [1] */ + 0, 0, /* SEL_TMU [1] */ FN_SEL_TMU_0, FN_SEL_TMU_1, /* SEL_TSIF0 [2] */ @@ -5084,8 +5025,8 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { FN_SEL_HSCIF0_0, FN_SEL_HSCIF0_1, /* SEL_HSCIF1 [1] */ FN_SEL_HSCIF1_0, FN_SEL_HSCIF1_1, - /* SEL_RDS [2] */ - FN_SEL_RDS_0, FN_SEL_RDS_1, FN_SEL_RDS_2, FN_SEL_RDS_3, } + /* RESERVED [2] */ + 0, 0, 0, 0, } }, { PINMUX_CFG_REG_VAR("MOD_SEL3", 0xE6060098, 32, 2, 2, 2, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, From ada66ec3bef3f4154f40677092c3fedad38e08b1 Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Fri, 29 Jun 2018 15:38:35 +0100 Subject: [PATCH 0407/1149] pinctrl: sh-pfc: r8a7794: Add R8A7745 support Renesas RZ/G1E (R8A7745) is pin compatible with R-Car E2 (R8A7794), however it doesn't have several automotive specific peripherals. Annotate all the items that only exist on the R-Car SoCs... Signed-off-by: Sergei Shtylyov Acked-by: Rob Herring [geert: Drop annotations, as they are implied by pin groups/functions] Signed-off-by: Geert Uytterhoeven (cherry picked from commit c8bac70f079bb3ecaf9a716f141f3d85cef27231) (purged any reference to r8a7794_pinmux_ops. moved extern declaration for r8a7745_pinmux_info to file drivers/pinctrl/sh-pfc/core.h) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- .../bindings/pinctrl/renesas,pfc-pinctrl.txt | 1 + drivers/pinctrl/sh-pfc/Kconfig | 5 ++++ drivers/pinctrl/sh-pfc/Makefile | 1 + drivers/pinctrl/sh-pfc/core.c | 6 +++++ drivers/pinctrl/sh-pfc/core.h | 1 + drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 27 +++++++++++++++++-- 6 files changed, 39 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt index 39897191ecf5..cf28bd419e9d 100644 --- a/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt @@ -14,6 +14,7 @@ Required Properties: - "renesas,pfc-r8a73a4": for R8A73A4 (R-Mobile APE6) compatible pin-controller. - "renesas,pfc-r8a7740": for R8A7740 (R-Mobile A1) compatible pin-controller. - "renesas,pfc-r8a7743": for R8A7743 (RZ/G1M) compatible pin-controller. + - "renesas,pfc-r8a7745": for R8A7745 (RZ/G1E) compatible pin-controller. - "renesas,pfc-r8a7778": for R8A7778 (R-Mobile M1) compatible pin-controller. - "renesas,pfc-r8a7779": for R8A7779 (R-Car H1) compatible pin-controller. - "renesas,pfc-r8a7790": for R8A7790 (R-Car H2) compatible pin-controller. diff --git a/drivers/pinctrl/sh-pfc/Kconfig b/drivers/pinctrl/sh-pfc/Kconfig index 10d5513f2c36..2ba6d551bffb 100644 --- a/drivers/pinctrl/sh-pfc/Kconfig +++ b/drivers/pinctrl/sh-pfc/Kconfig @@ -40,6 +40,11 @@ config PINCTRL_PFC_R8A7743 depends on ARCH_R8A7743 select PINCTRL_SH_PFC +config PINCTRL_PFC_R8A7745 + def_bool y + depends on ARCH_R8A7745 + select PINCTRL_SH_PFC + config PINCTRL_PFC_R8A7778 def_bool y depends on ARCH_R8A7778 diff --git a/drivers/pinctrl/sh-pfc/Makefile b/drivers/pinctrl/sh-pfc/Makefile index 93905003e5c0..7fd3bea769b5 100644 --- a/drivers/pinctrl/sh-pfc/Makefile +++ b/drivers/pinctrl/sh-pfc/Makefile @@ -7,6 +7,7 @@ obj-$(CONFIG_PINCTRL_PFC_EMEV2) += pfc-emev2.o obj-$(CONFIG_PINCTRL_PFC_R8A73A4) += pfc-r8a73a4.o obj-$(CONFIG_PINCTRL_PFC_R8A7740) += pfc-r8a7740.o obj-$(CONFIG_PINCTRL_PFC_R8A7743) += pfc-r8a7791.o +obj-$(CONFIG_PINCTRL_PFC_R8A7745) += pfc-r8a7794.o obj-$(CONFIG_PINCTRL_PFC_R8A7778) += pfc-r8a7778.o obj-$(CONFIG_PINCTRL_PFC_R8A7779) += pfc-r8a7779.o obj-$(CONFIG_PINCTRL_PFC_R8A7790) += pfc-r8a7790.o diff --git a/drivers/pinctrl/sh-pfc/core.c b/drivers/pinctrl/sh-pfc/core.c index c71572c8f863..0cd07dfbde52 100644 --- a/drivers/pinctrl/sh-pfc/core.c +++ b/drivers/pinctrl/sh-pfc/core.c @@ -459,6 +459,12 @@ static const struct of_device_id sh_pfc_of_table[] = { .data = &r8a7743_pinmux_info, }, #endif +#ifdef CONFIG_PINCTRL_PFC_R8A7745 + { + .compatible = "renesas,pfc-r8a7745", + .data = &r8a7745_pinmux_info, + }, +#endif #ifdef CONFIG_PINCTRL_PFC_R8A7778 { .compatible = "renesas,pfc-r8a7778", diff --git a/drivers/pinctrl/sh-pfc/core.h b/drivers/pinctrl/sh-pfc/core.h index d8d0edd471bf..0822d9fe00ed 100644 --- a/drivers/pinctrl/sh-pfc/core.h +++ b/drivers/pinctrl/sh-pfc/core.h @@ -70,6 +70,7 @@ extern const struct sh_pfc_soc_info emev2_pinmux_info; extern const struct sh_pfc_soc_info r8a73a4_pinmux_info; extern const struct sh_pfc_soc_info r8a7740_pinmux_info; extern const struct sh_pfc_soc_info r8a7743_pinmux_info; +extern const struct sh_pfc_soc_info r8a7745_pinmux_info; extern const struct sh_pfc_soc_info r8a7778_pinmux_info; extern const struct sh_pfc_soc_info r8a7779_pinmux_info; extern const struct sh_pfc_soc_info r8a7790_pinmux_info; diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c index b2e6c4b59c3d..2d0dffbe263b 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c @@ -1,9 +1,9 @@ /* - * r8a7794 processor support - PFC hardware block. + * r8a7794/r8a7745 processor support - PFC hardware block. * * Copyright (C) 2014-2015 Renesas Electronics Corporation * Copyright (C) 2015 Renesas Solutions Corp. - * Copyright (C) 2015-2016 Cogent Embedded, Inc., + * Copyright (C) 2015-2017 Cogent Embedded, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 @@ -5088,6 +5088,28 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { { }, }; +#ifdef CONFIG_PINCTRL_PFC_R8A7745 +const struct sh_pfc_soc_info r8a7745_pinmux_info = { + .name = "r8a77450_pfc", + .unlock_reg = 0xe6060000, /* PMMR */ + + .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, + + .pins = pinmux_pins, + .nr_pins = ARRAY_SIZE(pinmux_pins), + .groups = pinmux_groups, + .nr_groups = ARRAY_SIZE(pinmux_groups), + .functions = pinmux_functions, + .nr_functions = ARRAY_SIZE(pinmux_functions), + + .cfg_regs = pinmux_config_regs, + + .pinmux_data = pinmux_data, + .pinmux_data_size = ARRAY_SIZE(pinmux_data), +}; +#endif + +#ifdef CONFIG_PINCTRL_PFC_R8A7794 const struct sh_pfc_soc_info r8a7794_pinmux_info = { .name = "r8a77940_pfc", .unlock_reg = 0xe6060000, /* PMMR */ @@ -5106,3 +5128,4 @@ const struct sh_pfc_soc_info r8a7794_pinmux_info = { .pinmux_data = pinmux_data, .pinmux_data_size = ARRAY_SIZE(pinmux_data), }; +#endif From 58f66b88b51b16c427262ca5b2d1042692058499 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:38:36 +0100 Subject: [PATCH 0408/1149] pinctrl: sh-pfc: r8a7745: Add CAN[01] support This patch adds PFC CAN0 and CAN1 pin groups and functions, enabling CAN bus on the RZ/G1E. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Geert Uytterhoeven (cherry picked from commit 3f35221842305e82494e10fcfc1f5750c8bc682a) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 146 +++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c index 2d0dffbe263b..d4cee246e9a4 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c @@ -1625,6 +1625,116 @@ static const unsigned int avb_gmii_mux[] = { AVB_TX_EN_MARK, AVB_TX_ER_MARK, AVB_TX_CLK_MARK, AVB_COL_MARK, }; + +/* - CAN -------------------------------------------------------------------- */ +static const unsigned int can0_data_pins[] = { + /* TX, RX */ + RCAR_GP_PIN(6, 15), RCAR_GP_PIN(6, 14), +}; + +static const unsigned int can0_data_mux[] = { + CAN0_TX_MARK, CAN0_RX_MARK, +}; + +static const unsigned int can0_data_b_pins[] = { + /* TX, RX */ + RCAR_GP_PIN(3, 16), RCAR_GP_PIN(3, 15), +}; + +static const unsigned int can0_data_b_mux[] = { + CAN0_TX_B_MARK, CAN0_RX_B_MARK, +}; + +static const unsigned int can0_data_c_pins[] = { + /* TX, RX */ + RCAR_GP_PIN(2, 17), RCAR_GP_PIN(2, 16), +}; + +static const unsigned int can0_data_c_mux[] = { + CAN0_TX_C_MARK, CAN0_RX_C_MARK, +}; + +static const unsigned int can0_data_d_pins[] = { + /* TX, RX */ + RCAR_GP_PIN(5, 12), RCAR_GP_PIN(5, 11), +}; + +static const unsigned int can0_data_d_mux[] = { + CAN0_TX_D_MARK, CAN0_RX_D_MARK, +}; + +static const unsigned int can1_data_pins[] = { + /* TX, RX */ + RCAR_GP_PIN(6, 25), RCAR_GP_PIN(6, 24), +}; + +static const unsigned int can1_data_mux[] = { + CAN1_TX_MARK, CAN1_RX_MARK, +}; + +static const unsigned int can1_data_b_pins[] = { + /* TX, RX */ + RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 1), +}; + +static const unsigned int can1_data_b_mux[] = { + CAN1_TX_B_MARK, CAN1_RX_B_MARK, +}; + +static const unsigned int can1_data_c_pins[] = { + /* TX, RX */ + RCAR_GP_PIN(5, 6), RCAR_GP_PIN(5, 5), +}; + +static const unsigned int can1_data_c_mux[] = { + CAN1_TX_C_MARK, CAN1_RX_C_MARK, +}; + +static const unsigned int can1_data_d_pins[] = { + /* TX, RX */ + RCAR_GP_PIN(3, 31), RCAR_GP_PIN(3, 30), +}; + +static const unsigned int can1_data_d_mux[] = { + CAN1_TX_D_MARK, CAN1_RX_D_MARK, +}; + +static const unsigned int can_clk_pins[] = { + /* CLK */ + RCAR_GP_PIN(3, 31), +}; + +static const unsigned int can_clk_mux[] = { + CAN_CLK_MARK, +}; + +static const unsigned int can_clk_b_pins[] = { + /* CLK */ + RCAR_GP_PIN(1, 23), +}; + +static const unsigned int can_clk_b_mux[] = { + CAN_CLK_B_MARK, +}; + +static const unsigned int can_clk_c_pins[] = { + /* CLK */ + RCAR_GP_PIN(1, 0), +}; + +static const unsigned int can_clk_c_mux[] = { + CAN_CLK_C_MARK, +}; + +static const unsigned int can_clk_d_pins[] = { + /* CLK */ + RCAR_GP_PIN(5, 0), +}; + +static const unsigned int can_clk_d_mux[] = { + CAN_CLK_D_MARK, +}; + /* - DU --------------------------------------------------------------------- */ static const unsigned int du0_rgb666_pins[] = { /* R[7:2], G[7:2], B[7:2] */ @@ -3476,6 +3586,18 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(avb_mdio), SH_PFC_PIN_GROUP(avb_mii), SH_PFC_PIN_GROUP(avb_gmii), + SH_PFC_PIN_GROUP(can0_data), + SH_PFC_PIN_GROUP(can0_data_b), + SH_PFC_PIN_GROUP(can0_data_c), + SH_PFC_PIN_GROUP(can0_data_d), + SH_PFC_PIN_GROUP(can1_data), + SH_PFC_PIN_GROUP(can1_data_b), + SH_PFC_PIN_GROUP(can1_data_c), + SH_PFC_PIN_GROUP(can1_data_d), + SH_PFC_PIN_GROUP(can_clk), + SH_PFC_PIN_GROUP(can_clk_b), + SH_PFC_PIN_GROUP(can_clk_c), + SH_PFC_PIN_GROUP(can_clk_d), SH_PFC_PIN_GROUP(du0_rgb666), SH_PFC_PIN_GROUP(du0_rgb888), SH_PFC_PIN_GROUP(du0_clk0_out), @@ -3748,6 +3870,28 @@ static const char * const avb_groups[] = { "avb_gmii", }; +static const char * const can0_groups[] = { + "can0_data", + "can0_data_b", + "can0_data_c", + "can0_data_d", + "can_clk", + "can_clk_b", + "can_clk_c", + "can_clk_d", +}; + +static const char * const can1_groups[] = { + "can1_data", + "can1_data_b", + "can1_data_c", + "can1_data_d", + "can_clk", + "can_clk_b", + "can_clk_c", + "can_clk_d", +}; + static const char * const du0_groups[] = { "du0_rgb666", "du0_rgb888", @@ -4119,6 +4263,8 @@ static const char * const vin1_groups[] = { static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(audio_clk), SH_PFC_FUNCTION(avb), + SH_PFC_FUNCTION(can0), + SH_PFC_FUNCTION(can1), SH_PFC_FUNCTION(du0), SH_PFC_FUNCTION(du1), SH_PFC_FUNCTION(eth), From 7843b25e409232aed9e42235a8fbfd26accbe161 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:38:37 +0100 Subject: [PATCH 0409/1149] pinctrl: sh-pfc: r8a7794: Add can_clk function This patch adds can_clk function to r8a7745/r8a7794 which is cleaner, and allows for independent configuration. We keep the can_clk* pins definitions from within can0_groups and can1_groups for uniformity and backwards compatibility. Signed-off-by: Fabrizio Castro Reviewed-by: Ramesh Shanmugasundaram Signed-off-by: Geert Uytterhoeven (cherry picked from commit 7c4a3906475cba91c51e10a79e681b4f9ec6ec14) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c index d4cee246e9a4..23808241390e 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c @@ -3875,6 +3875,10 @@ static const char * const can0_groups[] = { "can0_data_b", "can0_data_c", "can0_data_d", + /* + * Retained for backwards compatibility, use can_clk_groups in new + * designs. + */ "can_clk", "can_clk_b", "can_clk_c", @@ -3886,6 +3890,21 @@ static const char * const can1_groups[] = { "can1_data_b", "can1_data_c", "can1_data_d", + /* + * Retained for backwards compatibility, use can_clk_groups in new + * designs. + */ + "can_clk", + "can_clk_b", + "can_clk_c", + "can_clk_d", +}; + +/* + * can_clk_groups allows for independent configuration, use can_clk function + * in new designs. + */ +static const char * const can_clk_groups[] = { "can_clk", "can_clk_b", "can_clk_c", @@ -4265,6 +4284,7 @@ static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(avb), SH_PFC_FUNCTION(can0), SH_PFC_FUNCTION(can1), + SH_PFC_FUNCTION(can_clk), SH_PFC_FUNCTION(du0), SH_PFC_FUNCTION(du1), SH_PFC_FUNCTION(eth), From bc1ff6a8bb9d5fb8b41be2a89ee3fe79659311de Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:38:38 +0100 Subject: [PATCH 0410/1149] pinctrl: sh-pfc: r8a7794: Add PWM[0123456] support This patch adds PFC PWM[0123456] pin groups and functions, enabling PWM on the r8a7794 and r8a7745. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Geert Uytterhoeven (cherry picked from commit 20796a2caf011b9a94763e26b89be7a13a2756f5) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 165 +++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c index 23808241390e..738f8bf37d02 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c @@ -2563,6 +2563,109 @@ static const unsigned int msiof2_tx_b_pins[] = { static const unsigned int msiof2_tx_b_mux[] = { MSIOF2_TXD_B_MARK, }; +/* - PWM -------------------------------------------------------------------- */ +static const unsigned int pwm0_pins[] = { + RCAR_GP_PIN(1, 14), +}; +static const unsigned int pwm0_mux[] = { + PWM0_MARK, +}; +static const unsigned int pwm0_b_pins[] = { + RCAR_GP_PIN(5, 3), +}; +static const unsigned int pwm0_b_mux[] = { + PWM0_B_MARK, +}; +static const unsigned int pwm1_pins[] = { + RCAR_GP_PIN(4, 5), +}; +static const unsigned int pwm1_mux[] = { + PWM1_MARK, +}; +static const unsigned int pwm1_b_pins[] = { + RCAR_GP_PIN(5, 10), +}; +static const unsigned int pwm1_b_mux[] = { + PWM1_B_MARK, +}; +static const unsigned int pwm1_c_pins[] = { + RCAR_GP_PIN(1, 18), +}; +static const unsigned int pwm1_c_mux[] = { + PWM1_C_MARK, +}; +static const unsigned int pwm2_pins[] = { + RCAR_GP_PIN(4, 10), +}; +static const unsigned int pwm2_mux[] = { + PWM2_MARK, +}; +static const unsigned int pwm2_b_pins[] = { + RCAR_GP_PIN(5, 17), +}; +static const unsigned int pwm2_b_mux[] = { + PWM2_B_MARK, +}; +static const unsigned int pwm2_c_pins[] = { + RCAR_GP_PIN(0, 13), +}; +static const unsigned int pwm2_c_mux[] = { + PWM2_C_MARK, +}; +static const unsigned int pwm3_pins[] = { + RCAR_GP_PIN(4, 13), +}; +static const unsigned int pwm3_mux[] = { + PWM3_MARK, +}; +static const unsigned int pwm3_b_pins[] = { + RCAR_GP_PIN(0, 16), +}; +static const unsigned int pwm3_b_mux[] = { + PWM3_B_MARK, +}; +static const unsigned int pwm4_pins[] = { + RCAR_GP_PIN(1, 3), +}; +static const unsigned int pwm4_mux[] = { + PWM4_MARK, +}; +static const unsigned int pwm4_b_pins[] = { + RCAR_GP_PIN(0, 21), +}; +static const unsigned int pwm4_b_mux[] = { + PWM4_B_MARK, +}; +static const unsigned int pwm5_pins[] = { + RCAR_GP_PIN(3, 30), +}; +static const unsigned int pwm5_mux[] = { + PWM5_MARK, +}; +static const unsigned int pwm5_b_pins[] = { + RCAR_GP_PIN(4, 0), +}; +static const unsigned int pwm5_b_mux[] = { + PWM5_B_MARK, +}; +static const unsigned int pwm5_c_pins[] = { + RCAR_GP_PIN(0, 10), +}; +static const unsigned int pwm5_c_mux[] = { + PWM5_C_MARK, +}; +static const unsigned int pwm6_pins[] = { + RCAR_GP_PIN(4, 8), +}; +static const unsigned int pwm6_mux[] = { + PWM6_MARK, +}; +static const unsigned int pwm6_b_pins[] = { + RCAR_GP_PIN(0, 7), +}; +static const unsigned int pwm6_b_mux[] = { + PWM6_B_MARK, +}; /* - QSPI ------------------------------------------------------------------- */ static const unsigned int qspi_ctrl_pins[] = { /* SPCLK, SSL */ @@ -3706,6 +3809,23 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(msiof2_ss2_b), SH_PFC_PIN_GROUP(msiof2_rx_b), SH_PFC_PIN_GROUP(msiof2_tx_b), + SH_PFC_PIN_GROUP(pwm0), + SH_PFC_PIN_GROUP(pwm0_b), + SH_PFC_PIN_GROUP(pwm1), + SH_PFC_PIN_GROUP(pwm1_b), + SH_PFC_PIN_GROUP(pwm1_c), + SH_PFC_PIN_GROUP(pwm2), + SH_PFC_PIN_GROUP(pwm2_b), + SH_PFC_PIN_GROUP(pwm2_c), + SH_PFC_PIN_GROUP(pwm3), + SH_PFC_PIN_GROUP(pwm3_b), + SH_PFC_PIN_GROUP(pwm4), + SH_PFC_PIN_GROUP(pwm4_b), + SH_PFC_PIN_GROUP(pwm5), + SH_PFC_PIN_GROUP(pwm5_b), + SH_PFC_PIN_GROUP(pwm5_c), + SH_PFC_PIN_GROUP(pwm6), + SH_PFC_PIN_GROUP(pwm6_b), SH_PFC_PIN_GROUP(qspi_ctrl), SH_PFC_PIN_GROUP(qspi_data2), SH_PFC_PIN_GROUP(qspi_data4), @@ -4067,6 +4187,44 @@ static const char * const msiof2_groups[] = { "msiof2_tx_b", }; +static const char * const pwm0_groups[] = { + "pwm0", + "pwm0_b", +}; + +static const char * const pwm1_groups[] = { + "pwm1", + "pwm1_b", + "pwm1_c", +}; + +static const char * const pwm2_groups[] = { + "pwm2", + "pwm2_b", + "pwm2_c", +}; + +static const char * const pwm3_groups[] = { + "pwm3", + "pwm3_b", +}; + +static const char * const pwm4_groups[] = { + "pwm4", + "pwm4_b", +}; + +static const char * const pwm5_groups[] = { + "pwm5", + "pwm5_b", + "pwm5_c", +}; + +static const char * const pwm6_groups[] = { + "pwm6", + "pwm6_b", +}; + static const char * const qspi_groups[] = { "qspi_ctrl", "qspi_data2", @@ -4301,6 +4459,13 @@ static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(msiof0), SH_PFC_FUNCTION(msiof1), SH_PFC_FUNCTION(msiof2), + SH_PFC_FUNCTION(pwm0), + SH_PFC_FUNCTION(pwm1), + SH_PFC_FUNCTION(pwm2), + SH_PFC_FUNCTION(pwm3), + SH_PFC_FUNCTION(pwm4), + SH_PFC_FUNCTION(pwm5), + SH_PFC_FUNCTION(pwm6), SH_PFC_FUNCTION(qspi), SH_PFC_FUNCTION(scif0), SH_PFC_FUNCTION(scif1), From 4dbd76237b187d3ccd63ab0627609d35369495ef Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:38:39 +0100 Subject: [PATCH 0411/1149] pinctrl: sh-pfc: r8a7794: Add tpu groups and function This patch adds tpu groups and function to r8a7745/r8a7794. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Geert Uytterhoeven (cherry picked from commit 64dbebc87d5f91435bf4fb8b04a688f570121b7f) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 101 +++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c index 738f8bf37d02..fb4ae850a9c5 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c @@ -3510,6 +3510,79 @@ static const unsigned int ssi9_ctrl_b_pins[] = { static const unsigned int ssi9_ctrl_b_mux[] = { SSI_SCK9_B_MARK, SSI_WS9_B_MARK, }; +/* - TPU -------------------------------------------------------------------- */ +static const unsigned int tpu_to0_pins[] = { + RCAR_GP_PIN(3, 31), +}; +static const unsigned int tpu_to0_mux[] = { + TPUTO0_MARK, +}; +static const unsigned int tpu_to0_b_pins[] = { + RCAR_GP_PIN(3, 30), +}; +static const unsigned int tpu_to0_b_mux[] = { + TPUTO0_B_MARK, +}; +static const unsigned int tpu_to0_c_pins[] = { + RCAR_GP_PIN(1, 18), +}; +static const unsigned int tpu_to0_c_mux[] = { + TPUTO0_C_MARK, +}; +static const unsigned int tpu_to1_pins[] = { + RCAR_GP_PIN(4, 9), +}; +static const unsigned int tpu_to1_mux[] = { + TPUTO1_MARK, +}; +static const unsigned int tpu_to1_b_pins[] = { + RCAR_GP_PIN(4, 0), +}; +static const unsigned int tpu_to1_b_mux[] = { + TPUTO1_B_MARK, +}; +static const unsigned int tpu_to1_c_pins[] = { + RCAR_GP_PIN(4, 4), +}; +static const unsigned int tpu_to1_c_mux[] = { + TPUTO1_C_MARK, +}; +static const unsigned int tpu_to2_pins[] = { + RCAR_GP_PIN(1, 3), +}; +static const unsigned int tpu_to2_mux[] = { + TPUTO2_MARK, +}; +static const unsigned int tpu_to2_b_pins[] = { + RCAR_GP_PIN(1, 0), +}; +static const unsigned int tpu_to2_b_mux[] = { + TPUTO2_B_MARK, +}; +static const unsigned int tpu_to2_c_pins[] = { + RCAR_GP_PIN(0, 22), +}; +static const unsigned int tpu_to2_c_mux[] = { + TPUTO2_C_MARK, +}; +static const unsigned int tpu_to3_pins[] = { + RCAR_GP_PIN(1, 14), +}; +static const unsigned int tpu_to3_mux[] = { + TPUTO3_MARK, +}; +static const unsigned int tpu_to3_b_pins[] = { + RCAR_GP_PIN(1, 13), +}; +static const unsigned int tpu_to3_b_mux[] = { + TPUTO3_B_MARK, +}; +static const unsigned int tpu_to3_c_pins[] = { + RCAR_GP_PIN(0, 21), +}; +static const unsigned int tpu_to3_c_mux[] = { + TPUTO3_C_MARK, +}; /* - USB0 ------------------------------------------------------------------- */ static const unsigned int usb0_pins[] = { RCAR_GP_PIN(5, 24), /* PWEN */ @@ -3943,6 +4016,18 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(ssi9_ctrl), SH_PFC_PIN_GROUP(ssi9_data_b), SH_PFC_PIN_GROUP(ssi9_ctrl_b), + SH_PFC_PIN_GROUP(tpu_to0), + SH_PFC_PIN_GROUP(tpu_to0_b), + SH_PFC_PIN_GROUP(tpu_to0_c), + SH_PFC_PIN_GROUP(tpu_to1), + SH_PFC_PIN_GROUP(tpu_to1_b), + SH_PFC_PIN_GROUP(tpu_to1_c), + SH_PFC_PIN_GROUP(tpu_to2), + SH_PFC_PIN_GROUP(tpu_to2_b), + SH_PFC_PIN_GROUP(tpu_to2_c), + SH_PFC_PIN_GROUP(tpu_to3), + SH_PFC_PIN_GROUP(tpu_to3_b), + SH_PFC_PIN_GROUP(tpu_to3_c), SH_PFC_PIN_GROUP(usb0), SH_PFC_PIN_GROUP(usb1), VIN_DATA_PIN_GROUP(vin0_data, 24), @@ -4405,6 +4490,21 @@ static const char * const ssi_groups[] = { "ssi9_ctrl_b", }; +static const char * const tpu_groups[] = { + "tpu_to0", + "tpu_to0_b", + "tpu_to0_c", + "tpu_to1", + "tpu_to1_b", + "tpu_to1_c", + "tpu_to2", + "tpu_to2_b", + "tpu_to2_c", + "tpu_to3", + "tpu_to3_b", + "tpu_to3_c", +}; + static const char * const usb0_groups[] = { "usb0", }; @@ -4487,6 +4587,7 @@ static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(sdhi1), SH_PFC_FUNCTION(sdhi2), SH_PFC_FUNCTION(ssi), + SH_PFC_FUNCTION(tpu), SH_PFC_FUNCTION(usb0), SH_PFC_FUNCTION(usb1), SH_PFC_FUNCTION(vin0), From bc07614ae537d7b7fd39ce30c40e6381dd1b42bd Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Jun 2018 15:38:40 +0100 Subject: [PATCH 0412/1149] pinctrl: sh-pfc: r8a7794: Add i2c5 pin groups and function Add i2c5 pin groups and function to r8a7745 PFC driver. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Geert Uytterhoeven (cherry picked from commit 0d68d46035a196c91ee70df2ba204ed708bba315) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 41 ++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c index fb4ae850a9c5..1b8cb3b70a3c 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c @@ -2245,6 +2245,35 @@ static const unsigned int i2c4_e_pins[] = { static const unsigned int i2c4_e_mux[] = { I2C4_SCL_E_MARK, I2C4_SDA_E_MARK, }; +/* - I2C5 ------------------------------------------------------------------- */ +static const unsigned int i2c5_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(4, 14), RCAR_GP_PIN(4, 15), +}; +static const unsigned int i2c5_mux[] = { + I2C5_SCL_MARK, I2C5_SDA_MARK, +}; +static const unsigned int i2c5_b_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(0, 14), RCAR_GP_PIN(0, 15), +}; +static const unsigned int i2c5_b_mux[] = { + I2C5_SCL_B_MARK, I2C5_SDA_B_MARK, +}; +static const unsigned int i2c5_c_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(4, 31), RCAR_GP_PIN(4, 30), +}; +static const unsigned int i2c5_c_mux[] = { + I2C5_SCL_C_MARK, I2C5_SDA_C_MARK, +}; +static const unsigned int i2c5_d_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(3, 13), RCAR_GP_PIN(3, 14), +}; +static const unsigned int i2c5_d_mux[] = { + I2C5_SCL_D_MARK, I2C5_SDA_D_MARK, +}; /* - INTC ------------------------------------------------------------------- */ static const unsigned int intc_irq0_pins[] = { /* IRQ0 */ @@ -3838,6 +3867,10 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(i2c4_c), SH_PFC_PIN_GROUP(i2c4_d), SH_PFC_PIN_GROUP(i2c4_e), + SH_PFC_PIN_GROUP(i2c5), + SH_PFC_PIN_GROUP(i2c5_b), + SH_PFC_PIN_GROUP(i2c5_c), + SH_PFC_PIN_GROUP(i2c5_d), SH_PFC_PIN_GROUP(intc_irq0), SH_PFC_PIN_GROUP(intc_irq1), SH_PFC_PIN_GROUP(intc_irq2), @@ -4213,6 +4246,13 @@ static const char * const i2c4_groups[] = { "i2c4_e", }; +static const char * const i2c5_groups[] = { + "i2c5", + "i2c5_b", + "i2c5_c", + "i2c5_d", +}; + static const char * const intc_groups[] = { "intc_irq0", "intc_irq1", @@ -4554,6 +4594,7 @@ static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(i2c2), SH_PFC_FUNCTION(i2c3), SH_PFC_FUNCTION(i2c4), + SH_PFC_FUNCTION(i2c5), SH_PFC_FUNCTION(intc), SH_PFC_FUNCTION(mmc), SH_PFC_FUNCTION(msiof0), From 4eca182c3350424fadb22a77440087f0a18f4932 Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Fri, 29 Jun 2018 15:38:41 +0100 Subject: [PATCH 0413/1149] ARM: dts: r8a7745: add PFC support Define the generic R8A7745 part of the PFC device node. Signed-off-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 95b94ed9abb58d2f5372a980a0af037e76c0beaf) (moved pfc node to improve DT nodes sorting) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 0b3efb169148..e2e83292229d 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -1,7 +1,7 @@ /* * Device Tree Source for the r8a7745 SoC * - * Copyright (C) 2016 Cogent Embedded Inc. + * Copyright (C) 2016-2017 Cogent Embedded Inc. * * This file is licensed under the terms of the GNU General Public License * version 2. This program is licensed "as is" without any warranty of any @@ -45,6 +45,11 @@ #size-cells = <2>; ranges; + pfc: pin-controller@e6060000 { + compatible = "renesas,pfc-r8a7745"; + reg = <0 0xe6060000 0 0x11c>; + }; + gic: interrupt-controller@f1001000 { compatible = "arm,gic-400"; #interrupt-cells = <3>; From cb447268f0d8dc41296adb5eed8b031d9071c1f6 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Jun 2018 15:38:42 +0100 Subject: [PATCH 0414/1149] ARM: dts: iwg22d-sodimm: Add pinctl support for scif4 Adding pinctrl support for scif4 interface. Signed-off-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 67dbb081815e013e1e7911305b43b44537a78ed2) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts index cbc19feb1565..442a5cbb0838 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts @@ -24,6 +24,16 @@ }; }; +&pfc { + scif4_pins: scif4 { + groups = "scif4_data_b"; + function = "scif4"; + }; +}; + &scif4 { + pinctrl-0 = <&scif4_pins>; + pinctrl-names = "default"; + status = "okay"; }; From 7bdda46bb65118f33b60c80061d0d13cd7a8a424 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Jun 2018 15:38:43 +0100 Subject: [PATCH 0415/1149] gpio: rcar: Add r8a7745 (RZ/G1E) support Renesas RZ/G1E (R8A7745) SoC GPIO blocks are identical to the R-Car Gen2 family. Add support for its GPIO controllers. Signed-off-by: Biju Das Acked-by: Simon Horman Reviewed-by: Geert Uytterhoeven Acked-by: Rob Herring Signed-off-by: Linus Walleij (cherry picked from commit 33f5dc84680878fb077bd4bcab587e4a5ce228f7) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt index 036fdb21dc70..046fef9d6d25 100644 --- a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt +++ b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt @@ -4,6 +4,7 @@ Required Properties: - compatible: should contain one of the following. - "renesas,gpio-r8a7743": for R8A7743 (RZ/G1M) compatible GPIO controller. + - "renesas,gpio-r8a7745": for R8A7745 (RZ/G1E) compatible GPIO controller. - "renesas,gpio-r8a7778": for R8A7778 (R-Mobile M1) compatible GPIO controller. - "renesas,gpio-r8a7779": for R8A7779 (R-Car H1) compatible GPIO controller. - "renesas,gpio-r8a7790": for R8A7790 (R-Car H2) compatible GPIO controller. From 13dc2cdb10b868f3da0947fdaea7cde067027dc7 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Fri, 29 Jun 2018 15:38:44 +0100 Subject: [PATCH 0416/1149] gpio: rcar: add gen[123] fallback compatibility strings Add fallback compatibility string for R-Car Gen 1, 2 and 3. In the case of Renesas R-Car hardware we know that there are generations of SoCs, f.e. Gen 1 and 2. But beyond that its not clear what the relationship between IP blocks might be. For example, I believe that r8a7790 is older than r8a7791 but that doesn't imply that the latter is a descendant of the former or vice versa. We can, however, by examining the documentation and behaviour of the hardware at run-time observe that the current driver implementation appears to be compatible with the IP blocks on SoCs within a given generation. For the above reasons and convenience when enabling new SoCs a per-generation fallback compatibility string scheme being adopted for drivers for Renesas SoCs. Also deprecate renesas,gpio-rcar as its name is more generic than its implementation. Signed-off-by: Simon Horman Reviewed-by: Geert Uytterhoeven Signed-off-by: Linus Walleij (cherry picked from commit dbd1dad2ab8ffca57e0aa386df0d7ec621c26ca8) (taken out R-Car Gen3 support) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- .../devicetree/bindings/gpio/renesas,gpio-rcar.txt | 14 ++++++++++---- drivers/gpio/gpio-rcar.c | 6 ++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt index 046fef9d6d25..68eb3a8a9561 100644 --- a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt +++ b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt @@ -2,7 +2,7 @@ Required Properties: - - compatible: should contain one of the following. + - compatible: should contain one or more of the following: - "renesas,gpio-r8a7743": for R8A7743 (RZ/G1M) compatible GPIO controller. - "renesas,gpio-r8a7745": for R8A7745 (RZ/G1E) compatible GPIO controller. - "renesas,gpio-r8a7778": for R8A7778 (R-Mobile M1) compatible GPIO controller. @@ -12,7 +12,13 @@ Required Properties: - "renesas,gpio-r8a7793": for R8A7793 (R-Car M2-N) compatible GPIO controller. - "renesas,gpio-r8a7794": for R8A7794 (R-Car E2) compatible GPIO controller. - "renesas,gpio-r8a7795": for R8A7795 (R-Car H3) compatible GPIO controller. - - "renesas,gpio-rcar": for generic R-Car GPIO controller. + - "renesas,rcar-gen1-gpio": for a generic R-Car Gen1 GPIO controller. + - "renesas,rcar-gen2-gpio": for a generic R-Car Gen2 or RZ/G1 GPIO controller. + - "renesas,gpio-rcar": deprecated. + + When compatible with the generic version nodes must list the + SoC-specific version corresponding to the platform first followed by + the generic version. - reg: Base address and length of each memory resource used by the GPIO controller hardware module. @@ -42,7 +48,7 @@ interrupt-controller/interrupts.txt. Example: R8A7779 (R-Car H1) GPIO controller nodes gpio0: gpio@ffc40000 { - compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; + compatible = "renesas,gpio-r8a7779", "renesas,rcar-gen1-gpio"; reg = <0xffc40000 0x2c>; interrupt-parent = <&gic>; interrupts = <0 141 0x4>; @@ -54,7 +60,7 @@ Example: R8A7779 (R-Car H1) GPIO controller nodes }; ... gpio6: gpio@ffc46000 { - compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; + compatible = "renesas,gpio-r8a7779", "renesas,rcar-gen1-gpio"; reg = <0xffc46000 0x2c>; interrupt-parent = <&gic>; interrupts = <0 147 0x4>; diff --git a/drivers/gpio/gpio-rcar.c b/drivers/gpio/gpio-rcar.c index 9555cd8713d5..c0fd5a594ada 100644 --- a/drivers/gpio/gpio-rcar.c +++ b/drivers/gpio/gpio-rcar.c @@ -391,6 +391,12 @@ static const struct of_device_id gpio_rcar_of_table[] = { .compatible = "renesas,gpio-r8a7795", /* Gen3 GPIO is identical to Gen2. */ .data = &gpio_rcar_info_gen2, + }, { + .compatible = "renesas,rcar-gen1-gpio", + .data = &gpio_rcar_info_gen1, + }, { + .compatible = "renesas,rcar-gen2-gpio", + .data = &gpio_rcar_info_gen2, }, { .compatible = "renesas,gpio-rcar", .data = &gpio_rcar_info_gen1, From 2eee357fbac45bd6a09654692f4a21a96f5f21a5 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Jun 2018 15:38:45 +0100 Subject: [PATCH 0417/1149] ARM: dts: r8a7745: Add GPIO support Describe GPIO blocks in the R8A7745 device tree. Signed-off-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 3163c03ec37aef502474122b857452fb948c7596) (moved DT nodes to the top of soc node. removed resets properties. modified power-domains and clocks properties) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 98 ++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index e2e83292229d..476b2beb93b3 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -45,6 +45,104 @@ #size-cells = <2>; ranges; + gpio0: gpio@e6050000 { + compatible = "renesas,gpio-r8a7745", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6050000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 0 32>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7745_CLK_GPIO0>; + power-domains = <&cpg_clocks>; + }; + + gpio1: gpio@e6051000 { + compatible = "renesas,gpio-r8a7745", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6051000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 32 26>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7745_CLK_GPIO1>; + power-domains = <&cpg_clocks>; + }; + + gpio2: gpio@e6052000 { + compatible = "renesas,gpio-r8a7745", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6052000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 64 32>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7745_CLK_GPIO2>; + power-domains = <&cpg_clocks>; + }; + + gpio3: gpio@e6053000 { + compatible = "renesas,gpio-r8a7745", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6053000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 96 32>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7745_CLK_GPIO3>; + power-domains = <&cpg_clocks>; + }; + + gpio4: gpio@e6054000 { + compatible = "renesas,gpio-r8a7745", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6054000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 128 32>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7745_CLK_GPIO4>; + power-domains = <&cpg_clocks>; + }; + + gpio5: gpio@e6055000 { + compatible = "renesas,gpio-r8a7745", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6055000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 160 28>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7745_CLK_GPIO5>; + power-domains = <&cpg_clocks>; + }; + + gpio6: gpio@e6055400 { + compatible = "renesas,gpio-r8a7745", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6055400 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 192 26>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7745_CLK_GPIO6>; + power-domains = <&cpg_clocks>; + }; + pfc: pin-controller@e6060000 { compatible = "renesas,pfc-r8a7745"; reg = <0 0xe6060000 0 0x11c>; From b56f2c2985c866db36f76cc6889ec0603f6ffe71 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Fri, 29 Jun 2018 15:38:46 +0100 Subject: [PATCH 0418/1149] ARM: dts: r8a7743: Use R-Car GPIO Gen2 fallback compat string Use newly added R-Car GPIO Gen2 fallback compat string in place of now deprecated non-generation specific R-Car GPIO fallback compat string in the DT of the r8a7743 SoC. This should have no run-time effect as the driver matches against the per-SoC compat string before considering the fallback compat string. Signed-off-by: Simon Horman Reviewed-by: Geert Uytterhoeven (cherry picked from commit 936e7d7472547294fa305f60546afad232896fdc) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 64d846238d3c..d94fbce4ae43 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -108,7 +108,7 @@ gpio0: gpio@e6050000 { compatible = "renesas,gpio-r8a7743", - "renesas,gpio-rcar"; + "renesas,rcar-gen2-gpio"; reg = <0 0xe6050000 0 0x50>; interrupts = ; #gpio-cells = <2>; @@ -122,7 +122,7 @@ gpio1: gpio@e6051000 { compatible = "renesas,gpio-r8a7743", - "renesas,gpio-rcar"; + "renesas,rcar-gen2-gpio"; reg = <0 0xe6051000 0 0x50>; interrupts = ; #gpio-cells = <2>; @@ -136,7 +136,7 @@ gpio2: gpio@e6052000 { compatible = "renesas,gpio-r8a7743", - "renesas,gpio-rcar"; + "renesas,rcar-gen2-gpio"; reg = <0 0xe6052000 0 0x50>; interrupts = ; #gpio-cells = <2>; @@ -150,7 +150,7 @@ gpio3: gpio@e6053000 { compatible = "renesas,gpio-r8a7743", - "renesas,gpio-rcar"; + "renesas,rcar-gen2-gpio"; reg = <0 0xe6053000 0 0x50>; interrupts = ; #gpio-cells = <2>; @@ -164,7 +164,7 @@ gpio4: gpio@e6054000 { compatible = "renesas,gpio-r8a7743", - "renesas,gpio-rcar"; + "renesas,rcar-gen2-gpio"; reg = <0 0xe6054000 0 0x50>; interrupts = ; #gpio-cells = <2>; @@ -178,7 +178,7 @@ gpio5: gpio@e6055000 { compatible = "renesas,gpio-r8a7743", - "renesas,gpio-rcar"; + "renesas,rcar-gen2-gpio"; reg = <0 0xe6055000 0 0x50>; interrupts = ; #gpio-cells = <2>; @@ -192,7 +192,7 @@ gpio6: gpio@e6055400 { compatible = "renesas,gpio-r8a7743", - "renesas,gpio-rcar"; + "renesas,rcar-gen2-gpio"; reg = <0 0xe6055400 0 0x50>; interrupts = ; #gpio-cells = <2>; @@ -206,7 +206,7 @@ gpio7: gpio@e6055800 { compatible = "renesas,gpio-r8a7743", - "renesas,gpio-rcar"; + "renesas,rcar-gen2-gpio"; reg = <0 0xe6055800 0 0x50>; interrupts = ; #gpio-cells = <2>; From 7c02e8865a52946734ef47a5eab0b446d3a7f864 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Jun 2018 15:38:47 +0100 Subject: [PATCH 0419/1149] dt-bindings: net: ravb : Add support for r8a7745 SoC Add a new compatible string for the RZ/G1E (R8A7745) SoC. Signed-off-by: Biju Das Acked-by: Sergei Shtylyov Signed-off-by: David S. Miller (cherry picked from commit 22cb7a3ac380ecaab6837670963813599b123a53) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/net/renesas,ravb.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/net/renesas,ravb.txt b/Documentation/devicetree/bindings/net/renesas,ravb.txt index 715b8ce5321e..9a22b1e472d4 100644 --- a/Documentation/devicetree/bindings/net/renesas,ravb.txt +++ b/Documentation/devicetree/bindings/net/renesas,ravb.txt @@ -6,6 +6,7 @@ interface contains. Required properties: - compatible: Must contain one or more of the following: - "renesas,etheravb-r8a7743" for the R8A7743 SoC. + - "renesas,etheravb-r8a7745" for the R8A7745 SoC. - "renesas,etheravb-r8a7790" for the R8A7790 SoC. - "renesas,etheravb-r8a7794" for the R8A7794 SoC. - "renesas,etheravb-rcar-gen2" as a fallback for the above From 4e70551a3230fab7046dcda6459b85ad832aac3c Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Jun 2018 15:38:48 +0100 Subject: [PATCH 0420/1149] ARM: dts: r8a7745: Add Ethernet AVB support Add Ethernet AVB support for r8a7745 SoC. Signed-off-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 372b01369fed699c417789ad94344847e09b7a43) (moved the node to a better location to allow for better sorting. removed resets property. modified clocks and power-domains properties.) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 476b2beb93b3..3d91758e5972 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -259,6 +259,18 @@ dma-channels = <15>; }; + avb: ethernet@e6800000 { + compatible = "renesas,etheravb-r8a7745", + "renesas,etheravb-rcar-gen2"; + reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>; + interrupts = ; + clocks = <&mstp8_clks R8A7745_CLK_ETHERAVB>; + power-domains = <&cpg_clocks>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + scifa0: serial@e6c40000 { compatible = "renesas,scifa-r8a7745", "renesas,scifa"; reg = <0 0xe6c40000 0 0x40>; From deeb8e52b5b9edcbc7ad6f97c3b3aed78c83912e Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Jun 2018 15:38:49 +0100 Subject: [PATCH 0421/1149] ARM: dts: iwg22d-sodimm: Add Ethernet AVB support Define the iWave RainboW-G22D board dependent part of the Ethernet AVB device node. On some older versions of the platform (before R4.0) the phy address may be 1 or 3. The address is fixed to 3 for R4.0 onwards (which will be the first mainstream release), hence using 3 in the dts. Signed-off-by: Biju Das Signed-off-by: Chris Paterson Signed-off-by: Simon Horman (cherry picked from commit d6ee805325b1d082fa33be3024163e5f7931ed54) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts | 26 +++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts index 442a5cbb0838..aac84c67a31d 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts @@ -17,9 +17,11 @@ aliases { serial0 = &scif4; + ethernet0 = &avb; }; chosen { + bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; stdout-path = "serial0:115200n8"; }; }; @@ -29,6 +31,11 @@ groups = "scif4_data_b"; function = "scif4"; }; + + avb_pins: avb { + groups = "avb_mdio", "avb_gmii"; + function = "avb"; + }; }; &scif4 { @@ -37,3 +44,22 @@ status = "okay"; }; + +&avb { + pinctrl-0 = <&avb_pins>; + pinctrl-names = "default"; + + phy-handle = <&phy3>; + phy-mode = "gmii"; + renesas,no-ether-link; + status = "okay"; + + phy3: ethernet-phy@3 { + /* + * On some older versions of the platform (before R4.0) the phy address + * may be 1 or 3. The address is fixed to 3 for R4.0 onwards. + */ + reg = <3>; + micrel,led-mode = <1>; + }; +}; From d9a67612c5bc5f7f76f30845d4fab7e4f471af86 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:38:50 +0100 Subject: [PATCH 0422/1149] ARM: dts: iwg22d: Use /dev/ttySC3 as debug console The BSP release from iWave uses /dev/ttySC3 as debug console, this patch renames the alias accordingly for compatibility. Signed-off-by: Fabrizio Castro Signed-off-by: Chris Paterson Signed-off-by: Simon Horman (cherry picked from commit 4c1d14ce4a03af24c2bac21c4a19f17d20b4a763) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts index aac84c67a31d..1f761a4468d4 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts @@ -16,13 +16,13 @@ compatible = "iwave,g22d", "iwave,g22m", "renesas,r8a7745"; aliases { - serial0 = &scif4; + serial3 = &scif4; ethernet0 = &avb; }; chosen { bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; - stdout-path = "serial0:115200n8"; + stdout-path = "serial3:115200n8"; }; }; From d7683a4fb3b7db8a5e8a8d6b923e38117a1755d9 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:38:51 +0100 Subject: [PATCH 0423/1149] dt-bindings: mmc: sh_mmcif: Document r8a7745 DT bindings Signed-off-by: Fabrizio Castro Reviewed-by: Chris Paterson Acked-by: Simon Horman Acked-by: Rob Herring Signed-off-by: Ulf Hansson (cherry picked from commit b773b3bf1916a368c29a19916abf0f5eca8b3c33) (dropped interrupt information) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/mmc/renesas,mmcif.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/mmc/renesas,mmcif.txt b/Documentation/devicetree/bindings/mmc/renesas,mmcif.txt index 0c9ac548ac56..aa336914c65b 100644 --- a/Documentation/devicetree/bindings/mmc/renesas,mmcif.txt +++ b/Documentation/devicetree/bindings/mmc/renesas,mmcif.txt @@ -10,6 +10,7 @@ Required properties: fallback. Examples with are: - "renesas,mmcif-r8a7740" for the MMCIF found in r8a7740 SoCs - "renesas,mmcif-r8a7743" for the MMCIF found in r8a7743 SoCs + - "renesas,mmcif-r8a7745" for the MMCIF found in r8a7745 SoCs - "renesas,mmcif-r8a7790" for the MMCIF found in r8a7790 SoCs - "renesas,mmcif-r8a7791" for the MMCIF found in r8a7791 SoCs - "renesas,mmcif-r8a7794" for the MMCIF found in r8a7794 SoCs From 1f192a7dfd4e97706f6fc80df48cf647924602b9 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:38:52 +0100 Subject: [PATCH 0424/1149] ARM: dts: r8a7745: Add MMC interface support Add MMC interface support for r8a7745 SoC. Signed-off-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit 933b16efb7be16e98a6bcd04ed59c5e91371afef) (moved DT node to different location to allow for better sorting. removed resets property. modified clocks and power-domains properties.) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 3d91758e5972..f2ef1058eeed 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -514,6 +514,21 @@ status = "disabled"; }; + mmcif0: mmc@ee200000 { + compatible = "renesas,mmcif-r8a7745", + "renesas,sh-mmcif"; + reg = <0 0xee200000 0 0x80>; + interrupts = ; + clocks = <&mstp3_clks R8A7745_CLK_MMCIF0>; + dmas = <&dmac0 0xd1>, <&dmac0 0xd2>, + <&dmac1 0xd1>, <&dmac1 0xd2>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + reg-io-width = <4>; + max-frequency = <97500000>; + status = "disabled"; + }; + ether: ethernet@ee700000 { compatible = "renesas,ether-r8a7745"; reg = <0 0xee700000 0 0x400>; From 0f3f7c7f0121f42f965109a920eae431ce3d57ec Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:38:53 +0100 Subject: [PATCH 0425/1149] ARM: dts: iwg22m: Add eMMC support Add eMMC support for iW-RainboW-G22M-SM. Signed-off-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit 3350ed907182049b806992f228021e7997183dda) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745-iwg22m.dtsi | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745-iwg22m.dtsi b/arch/arm/boot/dts/r8a7745-iwg22m.dtsi index 9dbd854aacf8..afb1148baa2f 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22m.dtsi +++ b/arch/arm/boot/dts/r8a7745-iwg22m.dtsi @@ -17,8 +17,34 @@ device_type = "memory"; reg = <0 0x40000000 0 0x20000000>; }; + + reg_3p3v: 3p3v { + compatible = "regulator-fixed"; + regulator-name = "3P3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-boot-on; + }; }; &extal_clk { clock-frequency = <20000000>; }; + +&pfc { + mmcif0_pins: mmc { + groups = "mmc_data8", "mmc_ctrl"; + function = "mmc"; + }; +}; + +&mmcif0 { + pinctrl-0 = <&mmcif0_pins>; + pinctrl-names = "default"; + + vmmc-supply = <®_3p3v>; + bus-width = <8>; + non-removable; + status = "okay"; +}; From 914d6c4c4b4921632c83d0a57c1945f5a42102a4 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:38:54 +0100 Subject: [PATCH 0426/1149] ARM: debug-ll: Add support for r8a7745 Enable low-level debugging support for RZ/G1E (r8a7745). RZ/G1E uses SCIF4 for the debug console. Signed-off-by: Fabrizio Castro Reviewed-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 8e5f2d651f5b8ebf4b462aac02f51fe6075f88c0) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/Kconfig.debug | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index 9b2b59c52948..c84f87bf68b2 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -831,6 +831,13 @@ choice Say Y here if you want kernel low-level debugging support via SCIF2 on Renesas R-Car E2 (R8A7794). + config DEBUG_RCAR_GEN2_SCIF4 + bool "Kernel low-level debugging messages via SCIF4 on R8A7745" + depends on ARCH_R8A7745 + help + Say Y here if you want kernel low-level debugging support + via SCIF4 on Renesas RZ/G1E (R8A7745). + config DEBUG_RMOBILE_SCIFA0 bool "Kernel low-level debugging messages via SCIFA0 on R8A73A4" depends on ARCH_R8A73A4 @@ -1334,6 +1341,7 @@ config DEBUG_LL_INCLUDE default "debug/renesas-scif.S" if DEBUG_RCAR_GEN1_SCIF2 default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF0 default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF2 + default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF4 default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA0 default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA1 default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA4 @@ -1434,6 +1442,7 @@ config DEBUG_UART_PHYS default 0xe6c80000 if DEBUG_RMOBILE_SCIFA4 default 0xe6e58000 if DEBUG_RCAR_GEN2_SCIF2 default 0xe6e60000 if DEBUG_RCAR_GEN2_SCIF0 + default 0xe6ee0000 if DEBUG_RCAR_GEN2_SCIF4 default 0xe8008000 if DEBUG_R7S72100_SCIF2 default 0xf0000be0 if ARCH_EBSA110 default 0xf040ab00 if DEBUG_BRCMSTB_UART @@ -1467,6 +1476,7 @@ config DEBUG_UART_PHYS DEBUG_QCOM_UARTDM || DEBUG_R7S72100_SCIF2 || \ DEBUG_RCAR_GEN1_SCIF0 || DEBUG_RCAR_GEN1_SCIF2 || \ DEBUG_RCAR_GEN2_SCIF0 || DEBUG_RCAR_GEN2_SCIF2 || \ + DEBUG_RCAR_GEN2_SCIF4 || \ DEBUG_RMOBILE_SCIFA0 || DEBUG_RMOBILE_SCIFA1 || \ DEBUG_RMOBILE_SCIFA4 || DEBUG_S3C24XX_UART || \ DEBUG_BCM63XX_UART || DEBUG_ASM9260_UART || \ From 3c566e086cfa6b55aad0ec60d22bce654926ed78 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Fri, 29 Jun 2018 15:38:55 +0100 Subject: [PATCH 0427/1149] ARM: Add definition for monitor mode provides *_MODE definitions for the various processor modes, but monitor mode was missing. Add MON_MODE to avoid code using the hardcoded value. Suggested-by: Marc Zyngier Signed-off-by: Geert Uytterhoeven Tested-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit c5d43be52e0c7380f985585ef72dac1a6a89b59d) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/include/uapi/asm/ptrace.h | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/include/uapi/asm/ptrace.h b/arch/arm/include/uapi/asm/ptrace.h index 5af0ed1b825a..70ff6bf489f3 100644 --- a/arch/arm/include/uapi/asm/ptrace.h +++ b/arch/arm/include/uapi/asm/ptrace.h @@ -53,6 +53,7 @@ #endif #define FIQ_MODE 0x00000011 #define IRQ_MODE 0x00000012 +#define MON_MODE 0x00000016 #define ABT_MODE 0x00000017 #define HYP_MODE 0x0000001a #define UND_MODE 0x0000001b From a5c050ed731da779342a814c2f273970789e09cf Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Fri, 29 Jun 2018 15:38:56 +0100 Subject: [PATCH 0428/1149] ARM: shmobile: rcar-gen2: Make sure CNTVOFF is initialized on CA7/15 On Cortex-A7, the arch timer CNTVOFF register is uninitialized. Ideally it should be initialized by the boot loader, but it isn't. For the boot CPU, CNTVOFF is initialized by Linux since commit 9ce3fa6816c2fb59 ("ARM: shmobile: rcar-gen2: Add CA7 arch_timer initialization for r8a7794"). For secondary CPU cores, no such initialization is done. Hence when enabling SMP on r8a7794, the kernel log is spammed with: WARNING: Underflow in clocksource 'arch_sys_counter' observed, time update ignored. Please report this, consider using a different clocksource, if possible. Your kernel is probably still fine. As Marc Zyngier pointed out that Cortex-A15 and Cortex-A7 are similar with respect to CNTVOFF, we have been very lucky this just worked on R-Car Gen2 SoCs with Cortex-A15 cores. To fix this: - Move the existing inline asm code to initialize CNTVOFF to an assembler source file (adding comments and replacing hardcoded constants by definitions in the process), so it can be reused, - Perform the initialization of CNTVOFF on the boot CPU (Cortex-A15 or Cortex-A7) on all R-Car Gen2 and RZ/G1 parts, - Wrap the standard secondary_startup() routine inside a routine which initializes CNTVOFF. Based on patches by Hisashi Nakamura in the BSP. Signed-off-by: Geert Uytterhoeven Tested-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit 3fd45a136ff61bb54deab70fb2d534a85e40481f) (move back to virt_to_phys to keep the code consistent) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/mach-shmobile/Makefile | 1 + arch/arm/mach-shmobile/common.h | 2 ++ arch/arm/mach-shmobile/headsmp-apmu.S | 37 ++++++++++++++++++++++++ arch/arm/mach-shmobile/platsmp-apmu.c | 2 +- arch/arm/mach-shmobile/setup-rcar-gen2.c | 20 ++----------- 5 files changed, 43 insertions(+), 19 deletions(-) create mode 100644 arch/arm/mach-shmobile/headsmp-apmu.S diff --git a/arch/arm/mach-shmobile/Makefile b/arch/arm/mach-shmobile/Makefile index 46202026382a..13a4b38165dc 100644 --- a/arch/arm/mach-shmobile/Makefile +++ b/arch/arm/mach-shmobile/Makefile @@ -22,6 +22,7 @@ cpu-y := platsmp.o headsmp.o # Shared SoC family objects obj-$(CONFIG_ARCH_RCAR_GEN2) += setup-rcar-gen2.o platsmp-apmu.o $(cpu-y) CFLAGS_setup-rcar-gen2.o += -march=armv7-a +obj-$(CONFIG_ARCH_RCAR_GEN2) += headsmp-apmu.o obj-$(CONFIG_ARCH_R8A7790) += regulator-quirk-rcar-gen2.o obj-$(CONFIG_ARCH_R8A7791) += regulator-quirk-rcar-gen2.o obj-$(CONFIG_ARCH_R8A7793) += regulator-quirk-rcar-gen2.o diff --git a/arch/arm/mach-shmobile/common.h b/arch/arm/mach-shmobile/common.h index 9cb11215ceba..7b20b1b25fb4 100644 --- a/arch/arm/mach-shmobile/common.h +++ b/arch/arm/mach-shmobile/common.h @@ -1,6 +1,7 @@ #ifndef __ARCH_MACH_COMMON_H #define __ARCH_MACH_COMMON_H +extern void shmobile_init_cntvoff(void); extern void shmobile_init_delay(void); extern void shmobile_boot_vector(void); extern unsigned long shmobile_boot_fn; @@ -11,6 +12,7 @@ extern void shmobile_smp_sleep(void); extern void shmobile_smp_hook(unsigned int cpu, unsigned long fn, unsigned long arg); extern bool shmobile_smp_cpu_can_disable(unsigned int cpu); +extern void shmobile_boot_apmu(void); extern void shmobile_boot_scu(void); extern void shmobile_smp_scu_prepare_cpus(unsigned int max_cpus); extern void shmobile_smp_scu_cpu_die(unsigned int cpu); diff --git a/arch/arm/mach-shmobile/headsmp-apmu.S b/arch/arm/mach-shmobile/headsmp-apmu.S new file mode 100644 index 000000000000..db4743d2bf91 --- /dev/null +++ b/arch/arm/mach-shmobile/headsmp-apmu.S @@ -0,0 +1,37 @@ +/* + * SMP support for APMU based systems with Cortex A7/A15 + * + * Copyright (C) 2014 Renesas Electronics Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include +#include + +ENTRY(shmobile_init_cntvoff) + /* + * CNTVOFF has to be initialized either from non-secure Hypervisor + * mode or secure Monitor mode with SCR.NS==1. If TrustZone is enabled + * then it should be handled by the secure code + */ + cps #MON_MODE + mrc p15, 0, r1, c1, c1, 0 /* Get Secure Config */ + orr r0, r1, #1 + mcr p15, 0, r0, c1, c1, 0 /* Set Non Secure bit */ + instr_sync + mov r0, #0 + mcrr p15, 4, r0, r0, c14 /* CNTVOFF = 0 */ + instr_sync + mcr p15, 0, r1, c1, c1, 0 /* Set Secure bit */ + instr_sync + cps #SVC_MODE + ret lr +ENDPROC(shmobile_init_cntvoff) + +ENTRY(shmobile_boot_apmu) + bl shmobile_init_cntvoff + b secondary_startup +ENDPROC(shmobile_boot_apmu) diff --git a/arch/arm/mach-shmobile/platsmp-apmu.c b/arch/arm/mach-shmobile/platsmp-apmu.c index 331409a5c721..ffae187594ed 100644 --- a/arch/arm/mach-shmobile/platsmp-apmu.c +++ b/arch/arm/mach-shmobile/platsmp-apmu.c @@ -204,7 +204,7 @@ void __init shmobile_smp_apmu_prepare_cpus(unsigned int max_cpus, int shmobile_smp_apmu_boot_secondary(unsigned int cpu, struct task_struct *idle) { /* For this particular CPU register boot vector */ - shmobile_smp_hook(cpu, virt_to_phys(secondary_startup), 0); + shmobile_smp_hook(cpu, virt_to_phys(shmobile_boot_apmu), 0); return apmu_wrap(cpu, apmu_power_on); } diff --git a/arch/arm/mach-shmobile/setup-rcar-gen2.c b/arch/arm/mach-shmobile/setup-rcar-gen2.c index 549a66f92e4f..828ce09cf5e9 100644 --- a/arch/arm/mach-shmobile/setup-rcar-gen2.c +++ b/arch/arm/mach-shmobile/setup-rcar-gen2.c @@ -58,27 +58,11 @@ void __init rcar_gen2_timer_init(void) int extal_mhz = 0; u32 freq; + shmobile_init_cntvoff(); + if (of_machine_is_compatible("renesas,r8a7745") || of_machine_is_compatible("renesas,r8a7794")) { freq = 260000000 / 8; /* ZS / 8 */ - /* CNTVOFF has to be initialized either from non-secure - * Hypervisor mode or secure Monitor mode with SCR.NS==1. - * If TrustZone is enabled then it should be handled by the - * secure code. - */ - asm volatile( - " cps 0x16\n" - " mrc p15, 0, r1, c1, c1, 0\n" - " orr r0, r1, #1\n" - " mcr p15, 0, r0, c1, c1, 0\n" - " isb\n" - " mov r0, #0\n" - " mcrr p15, 4, r0, r0, c14\n" - " isb\n" - " mcr p15, 0, r1, c1, c1, 0\n" - " isb\n" - " cps 0x13\n" - : : : "r0", "r1"); } else { /* At Linux boot time the r8a7790 arch timer comes up * with the counter disabled. Moreover, it may also report From 0552ecf286f48bff100c6ac2462cc792c51f9598 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Thu, 5 Oct 2017 14:09:04 +0200 Subject: [PATCH 0429/1149] ARM: shmobile: rcar-gen2: fix non-SMP build commit 703ef76b8fd5169d5cff30de5b958d6728b9a147 upstream. A bugfix for the SMP case broke the build for the UP case: arch/arm/mach-shmobile/headsmp-apmu.o: In function `shmobile_boot_apmu': (.text+0x34): undefined reference to `secondary_startup' The assembler file mixes code that is used for SMP with code that we also need on a single-CPU build, so I'm leaving it always enabled in the Makefile, but enclose the SMP code in an #ifdef. Fixes: fd45a136ff6 ("ARM: shmobile: rcar-gen2: Make sure CNTVOFF is initialized on CA7/15") Signed-off-by: Arnd Bergmann Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Ben Hutchings --- arch/arm/mach-shmobile/headsmp-apmu.S | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/mach-shmobile/headsmp-apmu.S b/arch/arm/mach-shmobile/headsmp-apmu.S index db4743d2bf91..5672b5849401 100644 --- a/arch/arm/mach-shmobile/headsmp-apmu.S +++ b/arch/arm/mach-shmobile/headsmp-apmu.S @@ -31,7 +31,9 @@ ENTRY(shmobile_init_cntvoff) ret lr ENDPROC(shmobile_init_cntvoff) +#ifdef CONFIG_SMP ENTRY(shmobile_boot_apmu) bl shmobile_init_cntvoff b secondary_startup ENDPROC(shmobile_boot_apmu) +#endif From 7f8809b84a916beea9de8ae96abdb205eab18b4e Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Fri, 29 Jun 2018 15:38:57 +0100 Subject: [PATCH 0430/1149] ARM: shmobile: rcar-gen2: Make rcar_gen2_dma_contiguous static make C=1: arch/arm/mach-shmobile/setup-rcar-gen2.c:186:12: warning: symbol 'rcar_gen2_dma_contiguous' was not declared. Should it be static? Make it static, and move it inside the function to avoid a "defined but not used" warning if CONFIG_DMA_CMA=n. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 0c1690705417ac1b33f01125552349e3cfc9766d) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/mach-shmobile/setup-rcar-gen2.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/arch/arm/mach-shmobile/setup-rcar-gen2.c b/arch/arm/mach-shmobile/setup-rcar-gen2.c index 828ce09cf5e9..50d7438aa66a 100644 --- a/arch/arm/mach-shmobile/setup-rcar-gen2.c +++ b/arch/arm/mach-shmobile/setup-rcar-gen2.c @@ -168,8 +168,6 @@ static int __init rcar_gen2_scan_mem(unsigned long node, const char *uname, return 0; } -struct cma *rcar_gen2_dma_contiguous; - void __init rcar_gen2_reserve(void) { struct memory_reserve_config mrc; @@ -180,9 +178,12 @@ void __init rcar_gen2_reserve(void) of_scan_flat_dt(rcar_gen2_scan_mem, &mrc); #ifdef CONFIG_DMA_CMA - if (mrc.size && memblock_is_region_memory(mrc.base, mrc.size)) + if (mrc.size && memblock_is_region_memory(mrc.base, mrc.size)) { + static struct cma *rcar_gen2_dma_contiguous; + dma_contiguous_reserve_area(mrc.size, mrc.base, 0, &rcar_gen2_dma_contiguous, true); + } #endif } From 703b8e338d6e27997e856ccee6fe6f0d1813d236 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Fri, 29 Jun 2018 15:38:58 +0100 Subject: [PATCH 0431/1149] ARM: shmobile: Move shmobile_smp_{mpidr, fn, arg}[] from .text to .bss If CONFIG_DEBUG_RODATA=y, the kernel crashes during system suspend: Freezing user space processes ... (elapsed 0.004 seconds) done. Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done. PM: suspend of devices complete after 111.948 msecs PM: late suspend of devices complete after 1.086 msecs PM: noirq suspend of devices complete after 11.576 msecs Disabling non-boot CPUs ... Kernel panic - not syncing: Attempted to kill the idle task! 1014ec ---[ end Kernel panic - not syncing: Attempted to kill the idle task! CPU0: stopping This happens because the .text section is marked read-only, while the arrays shmobile_smp_mpidr[], shmobile_smp_fn[], and shmobile_smp_arg[] are being written to. Fix this by moving these arrays from the .text to the .bss section. This requires accessing them through PC-relative offsets. Signed-off-by: Geert Uytterhoeven Reviewed-by: Kees Cook Reviewed-by: Nicolas Pitre Signed-off-by: Simon Horman (cherry picked from commit 4e960f52fce16a3bf3261fa92c34cf2306059ba2) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/mach-shmobile/headsmp.S | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/arch/arm/mach-shmobile/headsmp.S b/arch/arm/mach-shmobile/headsmp.S index 330c1fc63197..94d86ed16414 100644 --- a/arch/arm/mach-shmobile/headsmp.S +++ b/arch/arm/mach-shmobile/headsmp.S @@ -50,9 +50,11 @@ ENTRY(shmobile_smp_boot) mrc p15, 0, r1, c0, c0, 5 @ r1 = MPIDR and r0, r1, r0 @ r0 = cpu_logical_map() value mov r1, #0 @ r1 = CPU index - adr r5, 1f @ array of per-cpu mpidr values - adr r6, 2f @ array of per-cpu functions - adr r7, 3f @ array of per-cpu arguments + adr r2, 1f + ldmia r2, {r5, r6, r7} + add r5, r5, r2 @ array of per-cpu mpidr values + add r6, r6, r2 @ array of per-cpu functions + add r7, r7, r2 @ array of per-cpu arguments shmobile_smp_boot_find_mpidr: ldr r8, [r5, r1, lsl #2] @@ -80,12 +82,18 @@ ENTRY(shmobile_smp_sleep) b shmobile_smp_boot ENDPROC(shmobile_smp_sleep) + .align 2 +1: .long shmobile_smp_mpidr - . + .long shmobile_smp_fn - 1b + .long shmobile_smp_arg - 1b + + .bss .globl shmobile_smp_mpidr shmobile_smp_mpidr: -1: .space NR_CPUS * 4 + .space NR_CPUS * 4 .globl shmobile_smp_fn shmobile_smp_fn: -2: .space NR_CPUS * 4 + .space NR_CPUS * 4 .globl shmobile_smp_arg shmobile_smp_arg: -3: .space NR_CPUS * 4 + .space NR_CPUS * 4 From 75e7bb0e1a65d2a0dbcf4488fbb9e1e3d95d4582 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:38:59 +0100 Subject: [PATCH 0432/1149] ARM: shmobile: Add pm support for r8a7745 This patch adds pm support for r8a7745 SoC. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/mach-shmobile/pm-rcar-gen2.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm/mach-shmobile/pm-rcar-gen2.c b/arch/arm/mach-shmobile/pm-rcar-gen2.c index 94a275931dd9..f1bee679a581 100644 --- a/arch/arm/mach-shmobile/pm-rcar-gen2.c +++ b/arch/arm/mach-shmobile/pm-rcar-gen2.c @@ -85,6 +85,9 @@ void __init rcar_gen2_pm_init(void) } else if (of_machine_is_compatible("renesas,r8a7743")) { boot_vector_addr = RAM; syscier = 0x00101003; + } else if (of_machine_is_compatible("renesas,r8a7745")) { + boot_vector_addr = RAM; + syscier = 0x00300060; } /* RAM for jump stub, because BAR requires 256KB aligned address */ From c2627e21575512fcf7ecbfcc9392547bd2c9a4d8 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:39:00 +0100 Subject: [PATCH 0433/1149] dt-bindings: apmu: Document r8a7745 support Document APMU and SMP enable method for RZ/G1E (also known as r8a7745) SoC. Signed-off-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit 055fb568157c3a6754228138b3ca51247cb4f466) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/power/renesas,apmu.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/power/renesas,apmu.txt b/Documentation/devicetree/bindings/power/renesas,apmu.txt index e3a0e55fdd85..342aa85fcabf 100644 --- a/Documentation/devicetree/bindings/power/renesas,apmu.txt +++ b/Documentation/devicetree/bindings/power/renesas,apmu.txt @@ -8,6 +8,7 @@ Required properties: - compatible: Should be "renesas,-apmu", "renesas,apmu" as fallback. Examples with soctypes are: - "renesas,r8a7743-apmu" (RZ/G1M) + - "renesas,r8a7745-apmu" (RZ/G1E) - "renesas,r8a7790-apmu" (R-Car H2) - "renesas,r8a7791-apmu" (R-Car M2-W) From df1d98b8a5d8b2517ac0b85ccd13dba51d4fb00f Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:39:01 +0100 Subject: [PATCH 0434/1149] ARM: dts: r8a7745: Add APMU node and second CPU core Add DT node for the Advanced Power Management Unit (APMU), add the second CPU core, and use "renesas,apmu" as "enable-method". Signed-off-by: Fabrizio Castro Signed-off-by: Chris Paterson Reviewed-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit aaca1ff0dbfcb341c453abf160511d3419545431) (removed power-domains property) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index f2ef1058eeed..578566ed6ecc 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -20,6 +20,7 @@ cpus { #address-cells = <1>; #size-cells = <0>; + enable-method = "renesas,apmu"; cpu0: cpu@0 { device_type = "cpu"; @@ -30,6 +31,14 @@ next-level-cache = <&L2_CA7>; }; + cpu1: cpu@1 { + device_type = "cpu"; + compatible = "arm,cortex-a7"; + reg = <1>; + clock-frequency = <1000000000>; + next-level-cache = <&L2_CA7>; + }; + L2_CA7: cache-controller-0 { compatible = "cache"; cache-unified; @@ -164,6 +173,12 @@ power-domains = <&cpg_clocks>; }; + apmu@e6151000 { + compatible = "renesas,r8a7745-apmu", "renesas,apmu"; + reg = <0 0xe6151000 0 0x188>; + cpus = <&cpu0 &cpu1>; + }; + irqc: interrupt-controller@e61c0000 { compatible = "renesas,irqc-r8a7745", "renesas,irqc"; #interrupt-cells = <2>; From 738c43c053213768ebd75496359b9831532db284 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Jun 2018 15:39:02 +0100 Subject: [PATCH 0435/1149] ARM: dts: r8a7745: Add missing clock for secondary CA7 CPU core Add the missing clock to CA7 CPU1 node. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 5b062010675b3d74c9a6c6896e2becf932a4ca74) (modified clocks property) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 578566ed6ecc..416dd19cd1f0 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -36,6 +36,7 @@ compatible = "arm,cortex-a7"; reg = <1>; clock-frequency = <1000000000>; + clocks = <&z2_clk>; next-level-cache = <&L2_CA7>; }; From 8671020d5f341ba04addfea2a510e5fa54006abc Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:39:04 +0100 Subject: [PATCH 0436/1149] ARM: dts: r8a7745: Add I2C DT support Add I2C[0-5] devices to the r8a7745 device tree. Signed-off-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit 282fbf4066e58b4c60683ab5cba30c5c998c7250) (moved the node to a better location to allow for better sorting. removed resets and i2c-scl-internal-delay-ns properties. modified clocks and power-domains properties.) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 81 ++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 416dd19cd1f0..18646d193b99 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -17,6 +17,15 @@ #address-cells = <2>; #size-cells = <2>; + aliases { + i2c0 = &i2c0; + i2c1 = &i2c1; + i2c2 = &i2c2; + i2c3 = &i2c3; + i2c4 = &i2c4; + i2c5 = &i2c5; + }; + cpus { #address-cells = <1>; #size-cells = <0>; @@ -199,6 +208,78 @@ power-domains = <&cpg_clocks>; }; + i2c0: i2c@e6508000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a7745", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6508000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A7745_CLK_I2C0>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + i2c1: i2c@e6518000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a7745", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6518000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A7745_CLK_I2C1>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + i2c2: i2c@e6530000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a7745", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6530000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A7745_CLK_I2C2>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + i2c3: i2c@e6540000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a7745", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6540000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A7745_CLK_I2C3>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + i2c4: i2c@e6520000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a7745", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6520000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A7745_CLK_I2C4>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + i2c5: i2c@e6528000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a7745", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6528000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A7745_CLK_I2C5>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + timer { compatible = "arm,armv7-timer"; interrupts = Date: Fri, 29 Jun 2018 15:39:05 +0100 Subject: [PATCH 0437/1149] ARM: dts: r8a7745: Add IIC cores to dtsi Add iic0 and iic1 nodes to SoC dtsi. Also, define aliases i2c6 and i2c7. Board specific DT files will enable the interfaces if needed. Signed-off-by: Fabrizio Castro Reviewed-by: Chris Paterson Signed-off-by: Simon Horman (cherry picked from commit 0ee0aff583ddb6e92a5d05a1f2147a772413ab40) (moved the node to a better location to allow for better sorting. removed resets property. modified clocks and power-domains properties.) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 18646d193b99..33e80e105acd 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -24,6 +24,8 @@ i2c3 = &i2c3; i2c4 = &i2c4; i2c5 = &i2c5; + i2c6 = &iic0; + i2c7 = &iic1; }; cpus { @@ -280,6 +282,38 @@ status = "disabled"; }; + iic0: i2c@e6500000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,iic-r8a7745", + "renesas,rcar-gen2-iic", + "renesas,rmobile-iic"; + reg = <0 0xe6500000 0 0x425>; + interrupts = ; + clocks = <&mstp3_clks R8A7745_CLK_IIC0>; + dmas = <&dmac0 0x61>, <&dmac0 0x62>, + <&dmac1 0x61>, <&dmac1 0x62>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + iic1: i2c@e6510000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,iic-r8a7745", + "renesas,rcar-gen2-iic", + "renesas,rmobile-iic"; + reg = <0 0xe6510000 0 0x425>; + interrupts = ; + clocks = <&mstp3_clks R8A7745_CLK_IIC1>; + dmas = <&dmac0 0x65>, <&dmac0 0x66>, + <&dmac1 0x65>, <&dmac1 0x66>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + timer { compatible = "arm,armv7-timer"; interrupts = Date: Fri, 29 Jun 2018 15:39:06 +0100 Subject: [PATCH 0438/1149] ARM: dts: iwg22m: Add RTC support Add support for the bq32000 RTC to the iwg22m device tree. Signed-off-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit a7b8f48d2fa14330a1886f7fd640187c8b4470c5) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745-iwg22m.dtsi | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745-iwg22m.dtsi b/arch/arm/boot/dts/r8a7745-iwg22m.dtsi index afb1148baa2f..e306e7c5b644 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22m.dtsi +++ b/arch/arm/boot/dts/r8a7745-iwg22m.dtsi @@ -37,6 +37,11 @@ groups = "mmc_data8", "mmc_ctrl"; function = "mmc"; }; + + i2c3_pins: i2c3 { + groups = "i2c3_b"; + function = "i2c3"; + }; }; &mmcif0 { @@ -48,3 +53,16 @@ non-removable; status = "okay"; }; + +&i2c3 { + pinctrl-0 = <&i2c3_pins>; + pinctrl-names = "default"; + + status = "okay"; + clock-frequency = <400000>; + + rtc@68 { + compatible = "ti,bq32000"; + reg = <0x68>; + }; +}; From 2e02a704a0fd7b301361d2b2514051a333340fbe Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:39:07 +0100 Subject: [PATCH 0439/1149] ARM: dts: r8a7745: Add SDHI controllers Add the SDHI controllers to the r8a7745 device tree. Signed-off-by: Fabrizio Castro Signed-off-by: Chris Paterson Signed-off-by: Simon Horman (cherry picked from commit 7079131ef9b934df48602b22e30282d25a6a4827) (moved the node to a better location to allow for better sorting. removed resets property. modified clocks and power-domains properties.) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 39 ++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 33e80e105acd..cdce48b2bee8 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -645,6 +645,45 @@ status = "disabled"; }; + sdhi0: sd@ee100000 { + compatible = "renesas,sdhi-r8a7745"; + reg = <0 0xee100000 0 0x328>; + interrupts = ; + clocks = <&mstp3_clks R8A7745_CLK_SDHI0>; + dmas = <&dmac0 0xcd>, <&dmac0 0xce>, + <&dmac1 0xcd>, <&dmac1 0xce>; + dma-names = "tx", "rx", "tx", "rx"; + max-frequency = <195000000>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + sdhi1: sd@ee140000 { + compatible = "renesas,sdhi-r8a7745"; + reg = <0 0xee140000 0 0x100>; + interrupts = ; + clocks = <&mstp3_clks R8A7745_CLK_SDHI1>; + dmas = <&dmac0 0xc1>, <&dmac0 0xc2>, + <&dmac1 0xc1>, <&dmac1 0xc2>; + dma-names = "tx", "rx", "tx", "rx"; + max-frequency = <97500000>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + sdhi2: sd@ee160000 { + compatible = "renesas,sdhi-r8a7745"; + reg = <0 0xee160000 0 0x100>; + interrupts = ; + clocks = <&mstp3_clks R8A7745_CLK_SDHI2>; + dmas = <&dmac0 0xd3>, <&dmac0 0xd4>, + <&dmac1 0xd3>, <&dmac1 0xd4>; + dma-names = "tx", "rx", "tx", "rx"; + max-frequency = <97500000>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + mmcif0: mmc@ee200000 { compatible = "renesas,mmcif-r8a7745", "renesas,sh-mmcif"; From 60e6ed89290b18af0daa2b02a376c27b4dc1c905 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:39:08 +0100 Subject: [PATCH 0440/1149] ARM: dts: iwg22m: Enable SDHI1 controller Enable the SDHI1 controller on iWave RZ/G1E SoM. Signed-off-by: Fabrizio Castro Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 599114ee21057040c058043fdc1367878350d5e4) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745-iwg22m.dtsi | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745-iwg22m.dtsi b/arch/arm/boot/dts/r8a7745-iwg22m.dtsi index e306e7c5b644..f7f9ceff35a6 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22m.dtsi +++ b/arch/arm/boot/dts/r8a7745-iwg22m.dtsi @@ -9,6 +9,7 @@ */ #include "r8a7745.dtsi" +#include / { compatible = "iwave,g22m", "renesas,r8a7745"; @@ -38,6 +39,12 @@ function = "mmc"; }; + sdhi1_pins: sd1 { + groups = "sdhi1_data4", "sdhi1_ctrl"; + function = "sdhi1"; + power-source = <3300>; + }; + i2c3_pins: i2c3 { groups = "i2c3_b"; function = "i2c3"; @@ -54,6 +61,16 @@ status = "okay"; }; +&sdhi1 { + pinctrl-0 = <&sdhi1_pins>; + pinctrl-names = "default"; + + vmmc-supply = <®_3p3v>; + vqmmc-supply = <®_3p3v>; + cd-gpios = <&gpio3 31 GPIO_ACTIVE_LOW>; + status = "okay"; +}; + &i2c3 { pinctrl-0 = <&i2c3_pins>; pinctrl-names = "default"; From f46e26992a7bf2d8cd29cb33e9dea4bc1a0dadc3 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:39:09 +0100 Subject: [PATCH 0441/1149] ARM: dts: iwg22d: Enable SDHI0 controller Enable the SDHI0 controller on iWave RZ/G1E carrier board. Signed-off-by: Fabrizio Castro Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit ec301d261d5a5a71f2ba1baf7a852b220fe69f3c) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts | 29 +++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts index 1f761a4468d4..0d0bd18874d4 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts @@ -24,6 +24,19 @@ bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; stdout-path = "serial3:115200n8"; }; + + vccq_sdhi0: regulator-vccq-sdhi0 { + compatible = "regulator-gpio"; + + regulator-name = "SDHI0 VccQ"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + + gpios = <&gpio0 20 GPIO_ACTIVE_LOW>; + gpios-states = <1>; + states = <3300000 1 + 1800000 0>; + }; }; &pfc { @@ -36,6 +49,12 @@ groups = "avb_mdio", "avb_gmii"; function = "avb"; }; + + sdhi0_pins: sd0 { + groups = "sdhi0_data4", "sdhi0_ctrl"; + function = "sdhi0"; + power-source = <3300>; + }; }; &scif4 { @@ -63,3 +82,13 @@ micrel,led-mode = <1>; }; }; + +&sdhi0 { + pinctrl-0 = <&sdhi0_pins>; + pinctrl-names = "default"; + + vmmc-supply = <®_3p3v>; + vqmmc-supply = <&vccq_sdhi0>; + cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>; + status = "okay"; +}; From 67035b5a39c97bb83f498b7af1a17ef59c60156a Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:39:10 +0100 Subject: [PATCH 0442/1149] ARM: dts: iwg22d: Add /dev/ttySC5 support Add support for HSCIF1 as /dev/ttySC5, keeping the same naming scheme adopted by iWave in their BSP release. This interface uses RTS/CTS. Signed-off-by: Fabrizio Castro Signed-off-by: Chris Paterson Signed-off-by: Simon Horman (cherry picked from commit c7a5ddfbf171c222772087ba8697b163e8785caa) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts index 0d0bd18874d4..bebea474745c 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts @@ -17,6 +17,7 @@ aliases { serial3 = &scif4; + serial5 = &hscif1; ethernet0 = &avb; }; @@ -39,7 +40,20 @@ }; }; +&hscif1 { + pinctrl-0 = <&hscif1_pins>; + pinctrl-names = "default"; + + uart-has-rtscts; + status = "okay"; +}; + &pfc { + hscif1_pins: hscif1 { + groups = "hscif1_data", "hscif1_ctrl"; + function = "hscif1"; + }; + scif4_pins: scif4 { groups = "scif4_data_b"; function = "scif4"; From 281b83bae2efb71fcc9ca3bcb92a902c1af5c9fc Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:39:11 +0100 Subject: [PATCH 0443/1149] ARM: dts: iwg22d-sodimm-dbhd-ca: Add device tree for HDMI DB Add file r8a7745-iwg22d-sodimm-dbhd-ca.dts to provide support for iW-RainboW-G22D with HDMI daughter board plugged in. The interfaces defined in the new .dts file are: scif1, scif5, and hscif2. Signed-off-by: Fabrizio Castro Signed-off-by: Chris Paterson Signed-off-by: Simon Horman (cherry picked from commit ea03afbeb80edfb460570082855b4b1dd19fc7e7) (moved r8a7745-iwg22d-sodimm-dbhd-ca.dtb under CONFIG_ARCH_SHMOBILE_MULTI as CONFIG_ARCH_RENESAS doesn't exist) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/Makefile | 1 + .../dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts | 61 +++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 20ca8fcec499..e0a0deaacd48 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -547,6 +547,7 @@ dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += \ r8a7743-iwg20d-q7.dtb \ r8a7743-iwg20d-q7-dbcm-ca.dtb \ r8a7745-iwg22d-sodimm.dtb \ + r8a7745-iwg22d-sodimm-dbhd-ca.dtb \ r8a7778-bockw.dtb \ r8a7779-marzen.dtb \ r8a7790-lager.dtb \ diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts new file mode 100644 index 000000000000..f925388454da --- /dev/null +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts @@ -0,0 +1,61 @@ +/* + * Device Tree Source for the iWave-RZG1E SODIMM carrier board + HDMI daughter + * board + * + * Copyright (C) 2017 Renesas Electronics Corp. + * + * This file is licensed under the terms of the GNU General Public License + * version 2. This program is licensed "as is" without any warranty of any + * kind, whether express or implied. + */ + +#include "r8a7745-iwg22d-sodimm.dts" + +/ { + model = "iWave RainboW-G22D-SODIMM RZ/G1E based board with HDMI add-on"; + compatible = "iwave,g22d", "iwave,g22m", "renesas,r8a7745"; + + aliases { + serial0 = &scif1; + serial4 = &scif5; + serial6 = &hscif2; + }; +}; + +&hscif2 { + pinctrl-0 = <&hscif2_pins>; + pinctrl-names = "default"; + + status = "okay"; +}; + +&pfc { + hscif2_pins: hscif2 { + groups = "hscif2_data"; + function = "hscif2"; + }; + + scif1_pins: scif1 { + groups = "scif1_data"; + function = "scif1"; + }; + + scif5_pins: scif5 { + groups = "scif5_data_d"; + function = "scif5"; + }; +}; + +&scif1 { + pinctrl-0 = <&scif1_pins>; + pinctrl-names = "default"; + + status = "okay"; +}; + +&scif5 { + pinctrl-0 = <&scif5_pins>; + pinctrl-names = "default"; + + status = "okay"; +}; From 47b5e107978e4d7c14393b6dcd10dbbacbac6b26 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:39:12 +0100 Subject: [PATCH 0444/1149] ARM: dts: r8a7745: Add QSPI support Add the DT node for the QSPI interface to the SoC dtsi. Signed-off-by: Fabrizio Castro Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 2391d0269a85c3a7942cb7e2bbac5751a7191e10) (removed resets property. modified clocks and power-domains properties.) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index cdce48b2bee8..cfe5ff87c60a 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -26,6 +26,7 @@ i2c5 = &i2c5; i2c6 = &iic0; i2c7 = &iic1; + spi0 = &qspi; }; cpus { @@ -645,6 +646,21 @@ status = "disabled"; }; + qspi: spi@e6b10000 { + compatible = "renesas,qspi-r8a7745", "renesas,qspi"; + reg = <0 0xe6b10000 0 0x2c>; + interrupts = ; + clocks = <&mstp9_clks R8A7745_CLK_QSPI_MOD>; + dmas = <&dmac0 0x17>, <&dmac0 0x18>, + <&dmac1 0x17>, <&dmac1 0x18>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + num-cs = <1>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + sdhi0: sd@ee100000 { compatible = "renesas,sdhi-r8a7745"; reg = <0 0xee100000 0 0x328>; From b4d618c7975dd155431daa41ace32f2bf86bccbb Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:39:13 +0100 Subject: [PATCH 0445/1149] ARM: dts: iwg22m: Add SPI NOR support Add support for the SPI NOR device used to boot up the system to the System on Module DT. Signed-off-by: Fabrizio Castro Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit cf1cc6f1da41ceb60f6389b6b46f4f6dc06a2b63) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745-iwg22m.dtsi | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745-iwg22m.dtsi b/arch/arm/boot/dts/r8a7745-iwg22m.dtsi index f7f9ceff35a6..ed9a8cf3fe36 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22m.dtsi +++ b/arch/arm/boot/dts/r8a7745-iwg22m.dtsi @@ -39,6 +39,11 @@ function = "mmc"; }; + qspi_pins: qspi { + groups = "qspi_ctrl", "qspi_data2"; + function = "qspi"; + }; + sdhi1_pins: sd1 { groups = "sdhi1_data4", "sdhi1_ctrl"; function = "sdhi1"; @@ -61,6 +66,27 @@ status = "okay"; }; +&qspi { + pinctrl-0 = <&qspi_pins>; + pinctrl-names = "default"; + + status = "okay"; + + /* WARNING - This device contains the bootloader. Handle with care. */ + flash: flash@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "sst,sst25vf016b", "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <50000000>; + spi-tx-bus-width = <1>; + spi-rx-bus-width = <1>; + m25p,fast-read; + spi-cpol; + spi-cpha; + }; +}; + &sdhi1 { pinctrl-0 = <&sdhi1_pins>; pinctrl-names = "default"; From f6d81d92bdcd3d008527dd8370295982d2b92c44 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:39:14 +0100 Subject: [PATCH 0446/1149] of: add vendor prefix for Silicon Storage Technology Inc. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add Silicon Storage Technology Inc. to the list of devicetree vendor prefixes. Signed-off-by: Fabrizio Castro Reviewed-by: Andreas Färber Signed-off-by: Rob Herring (cherry picked from commit 0bf4b3fadb5663959605d584410412dce53406cc) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt index 0e72c2cfc761..12e4560d1c23 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt @@ -219,6 +219,7 @@ solomon Solomon Systech Limited sony Sony Corporation spansion Spansion Inc. sprd Spreadtrum Communications Inc. +sst Silicon Storage Technology, Inc. st STMicroelectronics ste ST-Ericsson stericsson ST-Ericsson From be6dab641c7f916bc7a3a1e4ed5cf23efc1c4ebf Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Jun 2018 15:39:15 +0100 Subject: [PATCH 0447/1149] ARM: dts: r8a7745: Add internal PCI bridge nodes Add device nodes for the r8a7745 internal PCI bridge devices. Signed-off-by: Biju Das Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit ab290a32925e6f7db9e71546098077b3e72cc617) (moved the node to a better location to allow for better sorting. removed resets property. modified clocks and power-domains properties.) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 44 ++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index cfe5ff87c60a..6e582b5e072b 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -661,6 +661,50 @@ status = "disabled"; }; + pci0: pci@ee090000 { + compatible = "renesas,pci-r8a7745", + "renesas,pci-rcar-gen2"; + device_type = "pci"; + reg = <0 0xee090000 0 0xc00>, + <0 0xee080000 0 0x1100>; + interrupts = ; + clocks = <&mstp7_clks R8A7745_CLK_USB_EHCI>; + power-domains = <&cpg_clocks>; + status = "disabled"; + + bus-range = <0 0>; + #address-cells = <3>; + #size-cells = <2>; + #interrupt-cells = <1>; + ranges = <0x02000000 0 0xee080000 0 0xee080000 0 0x00010000>; + interrupt-map-mask = <0xff00 0 0 0x7>; + interrupt-map = <0x0000 0 0 1 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH + 0x0800 0 0 1 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH + 0x1000 0 0 2 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; + }; + + pci1: pci@ee0d0000 { + compatible = "renesas,pci-r8a7745", + "renesas,pci-rcar-gen2"; + device_type = "pci"; + reg = <0 0xee0d0000 0 0xc00>, + <0 0xee0c0000 0 0x1100>; + interrupts = ; + clocks = <&mstp7_clks R8A7745_CLK_USB_EHCI>; + power-domains = <&cpg_clocks>; + status = "disabled"; + + bus-range = <1 1>; + #address-cells = <3>; + #size-cells = <2>; + #interrupt-cells = <1>; + ranges = <0x02000000 0 0xee0c0000 0 0xee0c0000 0 0x00010000>; + interrupt-map-mask = <0xff00 0 0 0x7>; + interrupt-map = <0x0000 0 0 1 &gic GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH + 0x0800 0 0 1 &gic GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH + 0x1000 0 0 2 &gic GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; + }; + sdhi0: sd@ee100000 { compatible = "renesas,sdhi-r8a7745"; reg = <0 0xee100000 0 0x328>; From 9d40c8978cdcc902001ebe7256cc960d2458d0dc Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Jun 2018 15:39:16 +0100 Subject: [PATCH 0448/1149] ARM: dts: r8a7745: Add USB PHY DT support Define the r8a7745 generic part of the USB PHY device node. Signed-off-by: Biju Das Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 237173a4bbf4c0710dbb7c35a4e2763671d293df) (moved the node to a better location to allow for better sorting. removed resets property. modified clocks and power-domains properties.) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 6e582b5e072b..b2bcc8cddd92 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -315,6 +315,27 @@ status = "disabled"; }; + usbphy: usb-phy@e6590100 { + compatible = "renesas,usb-phy-r8a7745", + "renesas,rcar-gen2-usb-phy"; + reg = <0 0xe6590100 0 0x100>; + #address-cells = <1>; + #size-cells = <0>; + clocks = <&mstp7_clks R8A7745_CLK_USBHS>; + clock-names = "usbhs"; + power-domains = <&cpg_clocks>; + status = "disabled"; + + usb0: usb-channel@0 { + reg = <0>; + #phy-cells = <1>; + }; + usb2: usb-channel@2 { + reg = <2>; + #phy-cells = <1>; + }; + }; + timer { compatible = "arm,armv7-timer"; interrupts = Date: Fri, 29 Jun 2018 15:39:17 +0100 Subject: [PATCH 0449/1149] ARM: dts: r8a7745: Link PCI USB devices to USB PHY Describe the PCI USB devices that are behind the PCI bridges, adding necessary links to the USB PHY device. Signed-off-by: Biju Das Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit c3e35873e37b77581be942b7284e705e997014fc) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index b2bcc8cddd92..6a10a009209d 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -702,6 +702,18 @@ interrupt-map = <0x0000 0 0 1 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0x0800 0 0 1 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0x1000 0 0 2 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; + + usb@1,0 { + reg = <0x800 0 0 0 0>; + phys = <&usb0 0>; + phy-names = "usb"; + }; + + usb@2,0 { + reg = <0x1000 0 0 0 0>; + phys = <&usb0 0>; + phy-names = "usb"; + }; }; pci1: pci@ee0d0000 { @@ -724,6 +736,18 @@ interrupt-map = <0x0000 0 0 1 &gic GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH 0x0800 0 0 1 &gic GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH 0x1000 0 0 2 &gic GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; + + usb@1,0 { + reg = <0x10800 0 0 0 0>; + phys = <&usb2 0>; + phy-names = "usb"; + }; + + usb@2,0 { + reg = <0x11000 0 0 0 0>; + phys = <&usb2 0>; + phy-names = "usb"; + }; }; sdhi0: sd@ee100000 { From a6284edcc592e89197d55146cfa6e9522399aea4 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Jun 2018 15:39:18 +0100 Subject: [PATCH 0450/1149] ARM: dts: iwg22d-sodimm: Enable internal PCI Enable internal AHB-PCI bridges for the USB EHCI/OHCI controllers attached to them. Signed-off-by: Biju Das Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit bc058f6f03e47610c994a97ecf3bf8a3ea44efee) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts index bebea474745c..ceca4ec9ecc4 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts @@ -69,6 +69,11 @@ function = "sdhi0"; power-source = <3300>; }; + + usb1_pins: usb1 { + groups = "usb1"; + function = "usb1"; + }; }; &scif4 { @@ -106,3 +111,9 @@ cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>; status = "okay"; }; + +&pci1 { + status = "okay"; + pinctrl-0 = <&usb1_pins>; + pinctrl-names = "default"; +}; From f83605e3ddc8d9615f9c6acd4de40f59a9bdbc92 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Jun 2018 15:39:19 +0100 Subject: [PATCH 0451/1149] ARM: dts: iwg22d-sodimm: Enable USB PHY Signed-off-by: Biju Das Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit aea3c9d9726148331d874c2b91aeb663430099d7) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts index ceca4ec9ecc4..82587d7b2056 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts @@ -117,3 +117,7 @@ pinctrl-0 = <&usb1_pins>; pinctrl-names = "default"; }; + +&usbphy { + status = "okay"; +}; From 67265bb7218504559882e2a602654b77f2e0df86 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Jun 2018 15:39:20 +0100 Subject: [PATCH 0452/1149] ARM: dts: r8a7745: Add HS-USB device node Define the R8A7745 generic part of the HS-USB device node. It is up to the board file to enable the device. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit c5a541b81bc02d0746bf78ca7bfa9080d91c3aff) (moved the node to a better location to allow for better sorting. removed resets property. modified clocks and power-domains properties.) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 6a10a009209d..24b9b743a351 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -315,6 +315,19 @@ status = "disabled"; }; + hsusb: usb@e6590000 { + compatible = "renesas,usbhs-r8a7745", + "renesas,rcar-gen2-usbhs"; + reg = <0 0xe6590000 0 0x100>; + interrupts = ; + clocks = <&mstp7_clks R8A7745_CLK_USBHS>; + power-domains = <&cpg_clocks>; + renesas,buswait = <4>; + phys = <&usb0 1>; + phy-names = "usb"; + status = "disabled"; + }; + usbphy: usb-phy@e6590100 { compatible = "renesas,usb-phy-r8a7745", "renesas,rcar-gen2-usb-phy"; From 6796d37d29ff63b5a2ab1123f12dd944d77c4812 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Jun 2018 15:39:21 +0100 Subject: [PATCH 0453/1149] ARM: dts: iwg22d-sodimm: Enable HS-USB Enable HS-USB on iWave RZ/G1E carrier board. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit b73ae2bdd83af78e5057d20ab2884cfd004c8543) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts index 82587d7b2056..bffe73570b19 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts @@ -70,6 +70,11 @@ power-source = <3300>; }; + usb0_pins: usb0 { + groups = "usb0"; + function = "usb0"; + }; + usb1_pins: usb1 { groups = "usb1"; function = "usb1"; @@ -112,6 +117,12 @@ status = "okay"; }; +&hsusb { + status = "okay"; + pinctrl-0 = <&usb0_pins>; + pinctrl-names = "default"; +}; + &pci1 { status = "okay"; pinctrl-0 = <&usb1_pins>; From 634356cf566a026236db3bd80789f0eec5e96902 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 29 Jun 2018 15:39:22 +0100 Subject: [PATCH 0454/1149] ARM: dts: r8a7745: Add USB-DMAC device nodes Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit fbdf17b307dae407b2e673806386f84660d01b63) (moved nodes to a better location to allow for better sorting. removed resets property. modified clocks and power-domains properties.) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 24b9b743a351..47b22d9bf6e4 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -349,6 +349,32 @@ }; }; + usb_dmac0: dma-controller@e65a0000 { + compatible = "renesas,r8a7745-usb-dmac", + "renesas,usb-dmac"; + reg = <0 0xe65a0000 0 0x100>; + interrupts = ; + interrupt-names = "ch0", "ch1"; + clocks = <&mstp3_clks R8A7745_CLK_USBHS_DMAC0>; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <2>; + }; + + usb_dmac1: dma-controller@e65b0000 { + compatible = "renesas,r8a7745-usb-dmac", + "renesas,usb-dmac"; + reg = <0 0xe65b0000 0 0x100>; + interrupts = ; + interrupt-names = "ch0", "ch1"; + clocks = <&mstp3_clks R8A7745_CLK_USBHS_DMAC1>; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <2>; + }; + timer { compatible = "arm,armv7-timer"; interrupts = Date: Fri, 29 Jun 2018 15:39:23 +0100 Subject: [PATCH 0455/1149] ARM: dts: r8a7745: Enable DMA for HSUSB This patch adds DMA properties to the HSUSB node. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit d4595f040881976d5a232922d8592a0d576ce3a5) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 47b22d9bf6e4..22a980ecd9b1 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -321,6 +321,9 @@ reg = <0 0xe6590000 0 0x100>; interrupts = ; clocks = <&mstp7_clks R8A7745_CLK_USBHS>; + dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, + <&usb_dmac1 0>, <&usb_dmac1 1>; + dma-names = "ch0", "ch1", "ch2", "ch3"; power-domains = <&cpg_clocks>; renesas,buswait = <4>; phys = <&usb0 1>; From 5184aa8da75f47374022394e16fe716c95a28437 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:39:24 +0100 Subject: [PATCH 0456/1149] ARM: dts: r8a7745: Add MSIOF[012] support Add the DT nodes needed by MSIOF[012] interfaces to the SoC dtsi. Also, define aliases for spi[123]. Signed-off-by: Fabrizio Castro Signed-off-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit e527649c320062f53d8437d1a49b3ed4fccf7750) (modified clocks and power-domains properties. removed resets property) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 48 ++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 22a980ecd9b1..cff8e5ec3fda 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -27,6 +27,9 @@ i2c6 = &iic0; i2c7 = &iic1; spi0 = &qspi; + spi1 = &msiof0; + spi2 = &msiof1; + spi3 = &msiof2; }; cpus { @@ -724,6 +727,51 @@ status = "disabled"; }; + msiof0: spi@e6e20000 { + compatible = "renesas,msiof-r8a7745", + "renesas,rcar-gen2-msiof"; + reg = <0 0xe6e20000 0 0x0064>; + interrupts = ; + clocks = <&mstp0_clks R8A7745_CLK_MSIOF0>; + dmas = <&dmac0 0x51>, <&dmac0 0x52>, + <&dmac1 0x51>, <&dmac1 0x52>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + msiof1: spi@e6e10000 { + compatible = "renesas,msiof-r8a7745", + "renesas,rcar-gen2-msiof"; + reg = <0 0xe6e10000 0 0x0064>; + interrupts = ; + clocks = <&mstp2_clks R8A7745_CLK_MSIOF1>; + dmas = <&dmac0 0x55>, <&dmac0 0x56>, + <&dmac1 0x55>, <&dmac1 0x56>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + msiof2: spi@e6e00000 { + compatible = "renesas,msiof-r8a7745", + "renesas,rcar-gen2-msiof"; + reg = <0 0xe6e00000 0 0x0064>; + interrupts = ; + clocks = <&mstp2_clks R8A7745_CLK_MSIOF2>; + dmas = <&dmac0 0x41>, <&dmac0 0x42>, + <&dmac1 0x41>, <&dmac1 0x42>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + pci0: pci@ee090000 { compatible = "renesas,pci-r8a7745", "renesas,pci-rcar-gen2"; From 2cd55e5f1a59bb9a9644bde2a5d5cd050da9fa21 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:39:25 +0100 Subject: [PATCH 0457/1149] drm: rcar-du: Add R8A7745 support Add support for the R8A7745 DU (which is very similar to the R8A7794 DU); it has 2 RGB outputs. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Laurent Pinchart (cherry picked from commit cdd90700157293dc7cb67d932b4f2fc44bd2a623) (removed .gen and added .encoder_type to rzg1_du_r8a7745_info.) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- drivers/gpu/drm/rcar-du/rcar_du_drv.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c index eee90f52a676..5187ed33d3de 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c @@ -57,6 +57,28 @@ static const struct rcar_du_device_info rzg1_du_r8a7743_info = { .num_lvds = 1, }; +static const struct rcar_du_device_info rzg1_du_r8a7745_info = { + .features = RCAR_DU_FEATURE_CRTC_IRQ_CLOCK + | RCAR_DU_FEATURE_EXT_CTRL_REGS, + .num_crtcs = 2, + .routes = { + /* + * R8A7745 has two RGB outputs + */ + [RCAR_DU_OUTPUT_DPAD0] = { + .possible_crtcs = BIT(0), + .encoder_type = DRM_MODE_ENCODER_NONE, + .port = 0, + }, + [RCAR_DU_OUTPUT_DPAD1] = { + .possible_crtcs = BIT(1), + .encoder_type = DRM_MODE_ENCODER_NONE, + .port = 1, + }, + }, + .num_lvds = 0, +}; + static const struct rcar_du_device_info rcar_du_r8a7779_info = { .features = 0, .num_crtcs = 2, @@ -153,6 +175,7 @@ static const struct rcar_du_device_info rcar_du_r8a7794_info = { static const struct of_device_id rcar_du_of_table[] = { { .compatible = "renesas,du-r8a7743", .data = &rzg1_du_r8a7743_info }, + { .compatible = "renesas,du-r8a7745", .data = &rzg1_du_r8a7745_info }, { .compatible = "renesas,du-r8a7779", .data = &rcar_du_r8a7779_info }, { .compatible = "renesas,du-r8a7790", .data = &rcar_du_r8a7790_info }, { .compatible = "renesas,du-r8a7791", .data = &rcar_du_r8a7791_info }, From 481003e45e9793d32430d92562e3e95d3304fcd9 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 29 Jun 2018 15:39:26 +0100 Subject: [PATCH 0458/1149] ARM: dts: r8a7745: Add DU support Add du node to r8a7745 SoC DT. Boards that want to enable the DU need to specify the output topology. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Laurent Pinchart Signed-off-by: Simon Horman (cherry picked from commit 5841b8b32b56f8c9a289032614936ce334227c67) (modified clocks property.) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index cff8e5ec3fda..68ef545e69df 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -906,6 +906,34 @@ status = "disabled"; }; + du: display@feb00000 { + compatible = "renesas,du-r8a7745"; + reg = <0 0xfeb00000 0 0x40000>; + reg-names = "du"; + interrupts = , + ; + clocks = <&mstp7_clks R8A7745_CLK_DU0>, + <&mstp7_clks R8A7745_CLK_DU1>; + clock-names = "du.0", "du.1"; + status = "disabled"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + du_out_rgb0: endpoint { + }; + }; + port@1 { + reg = <1>; + du_out_rgb1: endpoint { + }; + }; + }; + }; + clocks { #address-cells = <2>; #size-cells = <2>; From 957ea5349a6a62d87db6a14a4b71eac690f16f13 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 6 Jul 2018 19:10:56 +0100 Subject: [PATCH 0459/1149] ARM: dts: iwg22d-sodimm-dbhd-ca: Add HDMI video output This patch enables the HDMI interface found on the expansion board. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Acked-by: Laurent Pinchart Signed-off-by: Simon Horman (cherry picked from commit 97b94d256d432ba9e1b37f9b21c3b285caf11de6) (taken out interrupt support from hdmi@39 node) Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- .../dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts index f925388454da..fc0f559358c9 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts @@ -20,6 +20,38 @@ serial4 = &scif5; serial6 = &hscif2; }; + + cec_clock: cec-clock { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <12000000>; + }; + + hdmi-out { + compatible = "hdmi-connector"; + type = "a"; + + port { + hdmi_con: endpoint { + remote-endpoint = <&adv7511_out>; + }; + }; + }; +}; + +&du { + pinctrl-0 = <&du0_pins>; + pinctrl-names = "default"; + + status = "okay"; + + ports { + port@0 { + endpoint { + remote-endpoint = <&adv7511_in>; + }; + }; + }; }; &hscif2 { @@ -29,12 +61,63 @@ status = "okay"; }; +&i2c1 { + pinctrl-0 = <&i2c1_pins>; + pinctrl-names = "default"; + + status = "okay"; + clock-frequency = <400000>; + + hdmi@39 { + compatible = "adi,adv7511w"; + reg = <0x39>; + clocks = <&cec_clock>; + clock-names = "cec"; + pd-gpios = <&gpio2 24 GPIO_ACTIVE_HIGH>; + + adi,input-depth = <8>; + adi,input-colorspace = "rgb"; + adi,input-clock = "1x"; + adi,input-style = <1>; + adi,input-justification = "evenly"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + adv7511_in: endpoint { + remote-endpoint = <&du_out_rgb0>; + }; + }; + + port@1 { + reg = <1>; + adv7511_out: endpoint { + remote-endpoint = <&hdmi_con>; + }; + }; + }; + }; +}; + &pfc { + du0_pins: du0 { + groups = "du0_rgb888", "du0_sync", "du0_disp", "du0_clk0_out"; + function = "du0"; + }; + hscif2_pins: hscif2 { groups = "hscif2_data"; function = "hscif2"; }; + i2c1_pins: i2c1 { + groups = "i2c1_d"; + function = "i2c1"; + }; + scif1_pins: scif1 { groups = "scif1_data"; function = "scif1"; From 97ff576a555e771f604edd44351878858a0ce2d9 Mon Sep 17 00:00:00 2001 From: Viresh Kumar Date: Wed, 12 Jul 2017 09:21:49 +0530 Subject: [PATCH 0460/1149] PM / OPP: OF: Use pr_debug() instead of pr_err() while adding OPP table commit 5b60697cd89cf5a438b2984e11859228e5ec1c6b upstream. Some platforms add the OPPs dynamically from platform specific drivers instead of getting them statically from DT. The cpufreq-dt driver already ignores the return value of dev_pm_opp_of_cpumask_add_table() to not error out for such cases, but we still end up printing error message from that routine. That's not nice. Convert the print message to use pr_debug() instead. Reported-by: Mason Signed-off-by: Viresh Kumar Reviewed-by: Stephen Boyd Signed-off-by: Rafael J. Wysocki [bwh: Backported to 4.4: adjust filename] Signed-off-by: Ben Hutchings --- drivers/base/power/opp/cpu.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/base/power/opp/cpu.c b/drivers/base/power/opp/cpu.c index 7b445e88a0d5..1a2e8f260b06 100644 --- a/drivers/base/power/opp/cpu.c +++ b/drivers/base/power/opp/cpu.c @@ -198,8 +198,12 @@ int dev_pm_opp_of_cpumask_add_table(cpumask_var_t cpumask) ret = dev_pm_opp_of_add_table(cpu_dev); if (ret) { - pr_err("%s: couldn't find opp table for cpu:%d, %d\n", - __func__, cpu, ret); + /* + * OPP may get registered dynamically, don't print error + * message here. + */ + pr_debug("%s: couldn't find opp table for cpu:%d, %d\n", + __func__, cpu, ret); /* Free all other OPPs */ dev_pm_opp_of_cpumask_remove_table(cpumask); From dc15dfe5f4a528b8c3438bc9a5362f3b81511eef Mon Sep 17 00:00:00 2001 From: Yoshihiro Shimoda Date: Thu, 24 May 2018 17:05:04 +0100 Subject: [PATCH 0461/1149] usb: gadget: add a new quirk to avoid skb_reserve in u_ether.c Some platforms (e.g. USB-DMAC on R-Car SoCs) has memory alignment restriction. If memory alignment is not match, the usb peripheral driver decides not to use the DMA controller. Then, the performance is not good. In the case of u_ether.c, since it calls skb_reserve() in rx_submit(), it is possible to cause memory alignment mismatch. So, this patch adds a new quirk "quirk_avoids_skb_reserve" to avoid skb_reserve() calling in u_ether.c to improve performance. A peripheral driver will set this flag and network gadget drivers (e.g. f_ncm.c) will reference the flag via gadget_avoids_skb_reserve(). Signed-off-by: Yoshihiro Shimoda Signed-off-by: Felipe Balbi (cherry picked from commit 60e7396f820fa67a007f2a2eb5d97d3e77a74881) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- include/linux/usb/gadget.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h index 7e84aac39ade..cb757bdf1299 100644 --- a/include/linux/usb/gadget.h +++ b/include/linux/usb/gadget.h @@ -594,6 +594,8 @@ struct usb_gadget_ops { * enabled HNP support. * @quirk_ep_out_aligned_size: epout requires buffer size to be aligned to * MaxPacketSize. + * @quirk_avoids_skb_reserve: udc/platform wants to avoid skb_reserve() in + * u_ether.c to improve performance. * @is_selfpowered: if the gadget is self-powered. * @deactivated: True if gadget is deactivated - in deactivated state it cannot * be connected. @@ -643,6 +645,7 @@ struct usb_gadget { unsigned quirk_altset_not_supp:1; unsigned quirk_stall_not_supp:1; unsigned quirk_zlp_not_supp:1; + unsigned quirk_avoids_skb_reserve:1; unsigned is_selfpowered:1; unsigned deactivated:1; unsigned connected:1; @@ -718,6 +721,16 @@ static inline int gadget_is_zlp_supported(struct usb_gadget *g) return !g->quirk_zlp_not_supp; } +/** + * gadget_avoids_skb_reserve - return true iff the hardware would like to avoid + * skb_reserve to improve performance. + * @g: controller to check for quirk + */ +static inline int gadget_avoids_skb_reserve(struct usb_gadget *g) +{ + return g->quirk_avoids_skb_reserve; +} + /** * gadget_is_dualspeed - return true iff the hardware handles high speed * @g: controller that might support both high and full speeds From f69d34d00f2257086d0ab438175fb2d5122ffd52 Mon Sep 17 00:00:00 2001 From: Yoshihiro Shimoda Date: Thu, 24 May 2018 17:05:05 +0100 Subject: [PATCH 0462/1149] usb: gadget: u_ether: add a flag to avoid skb_reserve() calling This patch adds a flag "no_skb_reserve" in struct eth_dev. So, if a peripheral driver sets the quirk_avoids_skb_reserve flag, upper network gadget drivers (e.g. f_ncm.c) can avoid skb_reserve() calling using the flag as well. Signed-off-by: Yoshihiro Shimoda Signed-off-by: Felipe Balbi (cherry picked from commit 05f6b0ff68429bb7c6b84b35e71b522c3bae76ae) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/usb/gadget/function/u_ether.c | 5 ++++- drivers/usb/gadget/function/u_ether.h | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/usb/gadget/function/u_ether.c b/drivers/usb/gadget/function/u_ether.c index 7413f89660f7..96ec10d5b7a2 100644 --- a/drivers/usb/gadget/function/u_ether.c +++ b/drivers/usb/gadget/function/u_ether.c @@ -82,6 +82,7 @@ struct eth_dev { #define WORK_RX_MEMORY 0 bool zlp; + bool no_skb_reserve; u8 host_mac[ETH_ALEN]; u8 dev_mac[ETH_ALEN]; }; @@ -243,7 +244,8 @@ rx_submit(struct eth_dev *dev, struct usb_request *req, gfp_t gfp_flags) * but on at least one, checksumming fails otherwise. Note: * RNDIS headers involve variable numbers of LE32 values. */ - skb_reserve(skb, NET_IP_ALIGN); + if (likely(!dev->no_skb_reserve)) + skb_reserve(skb, NET_IP_ALIGN); req->buf = skb->data; req->length = size; @@ -1065,6 +1067,7 @@ struct net_device *gether_connect(struct gether *link) if (result == 0) { dev->zlp = link->is_zlp_ok; + dev->no_skb_reserve = link->no_skb_reserve; DBG(dev, "qlen %d\n", qlen(dev->gadget, dev->qmult)); dev->header_len = link->header_len; diff --git a/drivers/usb/gadget/function/u_ether.h b/drivers/usb/gadget/function/u_ether.h index c77145bd6b5b..81d94a7ae4b4 100644 --- a/drivers/usb/gadget/function/u_ether.h +++ b/drivers/usb/gadget/function/u_ether.h @@ -64,6 +64,7 @@ struct gether { struct usb_ep *out_ep; bool is_zlp_ok; + bool no_skb_reserve; u16 cdc_filter; From 3e042ae4e4b64cc5d1bcc2dd9df493d789f765d1 Mon Sep 17 00:00:00 2001 From: Yoshihiro Shimoda Date: Thu, 24 May 2018 17:05:06 +0100 Subject: [PATCH 0463/1149] usb: gadget: f_ncm: add support for no_skb_reserve This patch adds to support no_skb_reserve function to improve performance for some platforms. About the detail, please refer to the commit log of "quirk_avoids_skb_reserve" in include/linux/usb/gadget.h. Signed-off-by: Yoshihiro Shimoda Signed-off-by: Felipe Balbi (cherry picked from commit c4824f11fe07835c63209fb035f03f8f82e12827) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/usb/gadget/function/f_ncm.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/usb/gadget/function/f_ncm.c b/drivers/usb/gadget/function/f_ncm.c index 7ad798ace1e5..025047f80bab 100644 --- a/drivers/usb/gadget/function/f_ncm.c +++ b/drivers/usb/gadget/function/f_ncm.c @@ -852,6 +852,8 @@ static int ncm_set_alt(struct usb_function *f, unsigned intf, unsigned alt) */ ncm->port.is_zlp_ok = gadget_is_zlp_supported(cdev->gadget); + ncm->port.no_skb_reserve = + gadget_avoids_skb_reserve(cdev->gadget); ncm->port.cdc_filter = DEFAULT_FILTER; DBG(cdev, "activate ncm\n"); net = gether_connect(&ncm->port); From 5025fdced9bfca48b2e6e73f3b2659c38a89c405 Mon Sep 17 00:00:00 2001 From: Yoshihiro Shimoda Date: Thu, 24 May 2018 17:05:07 +0100 Subject: [PATCH 0464/1149] usb: renesas_usbhs: set quirk_avoids_skb_reserve if USB-DMAC is used This patch sets the quirk_avoids_skb_reserve flag to improve performance of a network gadget driver (e.g. f_ncm.c) if USB-DMAC is used. For example (on r8a7795 board + f_ncm.c + iperf udp mode / receiving): - without this patch: 90.3 Mbits/sec - with this patch: 273 Mbits/sec Signed-off-by: Yoshihiro Shimoda Signed-off-by: Felipe Balbi (cherry picked from commit ee5acabf5805612c72084276e0c215367a042d71) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/usb/renesas_usbhs/mod_gadget.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/usb/renesas_usbhs/mod_gadget.c b/drivers/usb/renesas_usbhs/mod_gadget.c index 8647d2c2a8c4..8cb381576a33 100644 --- a/drivers/usb/renesas_usbhs/mod_gadget.c +++ b/drivers/usb/renesas_usbhs/mod_gadget.c @@ -1122,6 +1122,8 @@ int usbhs_mod_gadget_probe(struct usbhs_priv *priv) gpriv->gadget.name = "renesas_usbhs_udc"; gpriv->gadget.ops = &usbhsg_gadget_ops; gpriv->gadget.max_speed = USB_SPEED_HIGH; + gpriv->gadget.quirk_avoids_skb_reserve = usbhs_get_dparam(priv, + has_usb_dmac); INIT_LIST_HEAD(&gpriv->gadget.ep_list); From 8522f5eba4ced68f89c78e145d71cbb307d16232 Mon Sep 17 00:00:00 2001 From: Dmitry Osipenko Date: Thu, 24 May 2018 17:05:08 +0100 Subject: [PATCH 0465/1149] usb: gadget: f_ncm/u_ether: Move 'SKB reserve' quirk setup to u_ether That quirk is required to make USB Ethernet gadget working on HW that can't cope with unaligned DMA. For some reason only f_ncm sets up that quirk, let's setup it directly in u_ether so other network models would have that quirk applied as well. All network models have been tested with ChipIdea UDC driver on NVIDIA Tegra20 SoC that require DMA to be aligned. Signed-off-by: Dmitry Osipenko Signed-off-by: Felipe Balbi (cherry picked from commit 0852659ef071ccd84e85e37195e7c2f3e7c64d1f) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/usb/gadget/function/f_ncm.c | 2 -- drivers/usb/gadget/function/u_ether.c | 2 +- drivers/usb/gadget/function/u_ether.h | 1 - 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/usb/gadget/function/f_ncm.c b/drivers/usb/gadget/function/f_ncm.c index 025047f80bab..7ad798ace1e5 100644 --- a/drivers/usb/gadget/function/f_ncm.c +++ b/drivers/usb/gadget/function/f_ncm.c @@ -852,8 +852,6 @@ static int ncm_set_alt(struct usb_function *f, unsigned intf, unsigned alt) */ ncm->port.is_zlp_ok = gadget_is_zlp_supported(cdev->gadget); - ncm->port.no_skb_reserve = - gadget_avoids_skb_reserve(cdev->gadget); ncm->port.cdc_filter = DEFAULT_FILTER; DBG(cdev, "activate ncm\n"); net = gether_connect(&ncm->port); diff --git a/drivers/usb/gadget/function/u_ether.c b/drivers/usb/gadget/function/u_ether.c index 96ec10d5b7a2..be41ae56dcc2 100644 --- a/drivers/usb/gadget/function/u_ether.c +++ b/drivers/usb/gadget/function/u_ether.c @@ -1067,7 +1067,7 @@ struct net_device *gether_connect(struct gether *link) if (result == 0) { dev->zlp = link->is_zlp_ok; - dev->no_skb_reserve = link->no_skb_reserve; + dev->no_skb_reserve = gadget_avoids_skb_reserve(dev->gadget); DBG(dev, "qlen %d\n", qlen(dev->gadget, dev->qmult)); dev->header_len = link->header_len; diff --git a/drivers/usb/gadget/function/u_ether.h b/drivers/usb/gadget/function/u_ether.h index 81d94a7ae4b4..c77145bd6b5b 100644 --- a/drivers/usb/gadget/function/u_ether.h +++ b/drivers/usb/gadget/function/u_ether.h @@ -64,7 +64,6 @@ struct gether { struct usb_ep *out_ep; bool is_zlp_ok; - bool no_skb_reserve; u16 cdc_filter; From 72d68437345e57233511ae33e90347d05b4159a6 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 24 May 2018 17:05:10 +0100 Subject: [PATCH 0466/1149] ARM: shmobile: defconfig: Enable missing support based on DTSes Enable all missing support, extracted from the various Renesas ARM DTSes using linux-config-from-dt. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 6161cc147277e7537d73a45d732a7112997c20f6) (enabled only USB-DMAC apart from previously enabled CAN and CAN_RCAR) Signed-off-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/configs/shmobile_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/shmobile_defconfig b/arch/arm/configs/shmobile_defconfig index ca040733f078..3282a4fd1dbe 100644 --- a/arch/arm/configs/shmobile_defconfig +++ b/arch/arm/configs/shmobile_defconfig @@ -192,6 +192,7 @@ CONFIG_RTC_DRV_RX8581=y CONFIG_DMADEVICES=y CONFIG_SH_DMAE=y CONFIG_RCAR_DMAC=y +CONFIG_RENESAS_USB_DMAC=y # CONFIG_IOMMU_SUPPORT is not set CONFIG_IIO=y CONFIG_AK8975=y From 4d769b2b8749e89dfc7ea179a44f652dcfbedb37 Mon Sep 17 00:00:00 2001 From: Fabio Estevam Date: Fri, 29 Sep 2017 14:39:49 -0300 Subject: [PATCH 0467/1149] PM / OPP: Move error message to debug level commit 035ed07208dc501d023873447113f3f178592156 upstream. On some i.MX6 platforms which do not have speed grading check, opp table will not be created in platform code, so cpufreq driver prints the following error message: cpu cpu0: dev_pm_opp_get_opp_count: OPP table not found (-19) However, this is not really an error in this case because the imx6q-cpufreq driver first calls dev_pm_opp_get_opp_count() and if it fails, it means that platform code does not provide OPP and then dev_pm_opp_of_add_table() will be called. In order to avoid such confusing error message, move it to debug level. It is up to the caller of dev_pm_opp_get_opp_count() to check its return value and decide if it will print an error or not. Signed-off-by: Fabio Estevam Signed-off-by: Rafael J. Wysocki [bwh: Backported to 4.4: adjust filename, context] Signed-off-by: Ben Hutchings --- drivers/base/power/opp/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/base/power/opp/core.c b/drivers/base/power/opp/core.c index db6e7e57081c..e822dc706d67 100644 --- a/drivers/base/power/opp/core.c +++ b/drivers/base/power/opp/core.c @@ -277,7 +277,7 @@ int dev_pm_opp_get_opp_count(struct device *dev) dev_opp = _find_device_opp(dev); if (IS_ERR(dev_opp)) { count = PTR_ERR(dev_opp); - dev_err(dev, "%s: device OPP not found (%d)\n", + dev_dbg(dev, "%s: device OPP not found (%d)\n", __func__, count); goto out_unlock; } From 27bcc133c09448eb11470c08ff0bba9d8276d726 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Tue, 24 Jul 2018 11:32:32 +0100 Subject: [PATCH 0468/1149] ARM: dts: r8a7745: Add PWM SoC support Add the definitions for pwm[0123456] to the SoC .dtsi. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 3711d0ede24d2e3c90ae10e1a79746ac87169609) (modified clocks and power-domains properties. removed resets property) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 63 ++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 68ef545e69df..4163ae459b97 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -772,6 +772,69 @@ status = "disabled"; }; + pwm0: pwm@e6e30000 { + compatible = "renesas,pwm-r8a7745", "renesas,pwm-rcar"; + reg = <0 0xe6e30000 0 0x8>; + clocks = <&mstp5_clks R8A7745_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm1: pwm@e6e31000 { + compatible = "renesas,pwm-r8a7745", "renesas,pwm-rcar"; + reg = <0 0xe6e31000 0 0x8>; + clocks = <&mstp5_clks R8A7745_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm2: pwm@e6e32000 { + compatible = "renesas,pwm-r8a7745", "renesas,pwm-rcar"; + reg = <0 0xe6e32000 0 0x8>; + clocks = <&mstp5_clks R8A7745_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm3: pwm@e6e33000 { + compatible = "renesas,pwm-r8a7745", "renesas,pwm-rcar"; + reg = <0 0xe6e33000 0 0x8>; + clocks = <&mstp5_clks R8A7745_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm4: pwm@e6e34000 { + compatible = "renesas,pwm-r8a7745", "renesas,pwm-rcar"; + reg = <0 0xe6e34000 0 0x8>; + clocks = <&mstp5_clks R8A7745_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm5: pwm@e6e35000 { + compatible = "renesas,pwm-r8a7745", "renesas,pwm-rcar"; + reg = <0 0xe6e35000 0 0x8>; + clocks = <&mstp5_clks R8A7745_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm6: pwm@e6e36000 { + compatible = "renesas,pwm-r8a7745", "renesas,pwm-rcar"; + reg = <0 0xe6e36000 0 0x8>; + clocks = <&mstp5_clks R8A7745_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + pci0: pci@ee090000 { compatible = "renesas,pci-r8a7745", "renesas,pci-rcar-gen2"; From 9e0437b068eb62676612da915416e3cb4c7509e2 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Tue, 24 Jul 2018 11:32:33 +0100 Subject: [PATCH 0469/1149] ARM: dts: r8a7745: Add TPU support Add TPU support to SoC DT. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit b9db514555274eb325c9b13a0b0587c0e600d75a) (moved node to a better location to allow for better sorting. modified clocks and power-domains properties. removed resets property) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 4163ae459b97..6fdd3c2c4902 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -173,6 +173,15 @@ reg = <0 0xe6060000 0 0x11c>; }; + tpu: pwm@e60f0000 { + compatible = "renesas,tpu-r8a7745", "renesas,tpu"; + reg = <0 0xe60f0000 0 0x148>; + clocks = <&mstp3_clks R8A7745_CLK_TPU0>; + power-domains = <&cpg_clocks>; + #pwm-cells = <3>; + status = "disabled"; + }; + gic: interrupt-controller@f1001000 { compatible = "arm,gic-400"; #interrupt-cells = <3>; From da7da368d2838c50894139749cb959129159b436 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Tue, 24 Jul 2018 12:03:51 +0100 Subject: [PATCH 0470/1149] ARM: dts: r8a7745: Add CAN[01] SoC support Add the definitions for can0 and can1 to the SoC .dtsi. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 85d3122659be310c632ef1908532157ce82900ee) (moved nodes to a better location to allow for better sorting. modified clocks and power-domains properties. removed resets properties) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 6fdd3c2c4902..c2e38ae254d6 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -32,6 +32,14 @@ spi3 = &msiof2; }; + /* External CAN clock */ + can_clk: can { + compatible = "fixed-clock"; + #clock-cells = <0>; + /* This value must be overridden by the board. */ + clock-frequency = <0>; + }; + cpus { #address-cells = <1>; #size-cells = <0>; @@ -844,6 +852,32 @@ status = "disabled"; }; + can0: can@e6e80000 { + compatible = "renesas,can-r8a7745", + "renesas,rcar-gen2-can"; + reg = <0 0xe6e80000 0 0x1000>; + interrupts = ; + clocks = <&mstp9_clks R8A7745_CLK_RCAN0>, + <&cpg_clocks R8A7745_CLK_RCAN>, + <&can_clk>; + clock-names = "clkp1", "clkp2", "can_clk"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + can1: can@e6e88000 { + compatible = "renesas,can-r8a7745", + "renesas,rcar-gen2-can"; + reg = <0 0xe6e88000 0 0x1000>; + interrupts = ; + clocks = <&mstp9_clks R8A7745_CLK_RCAN1>, + <&cpg_clocks R8A7745_CLK_RCAN>, + <&can_clk>; + clock-names = "clkp1", "clkp2", "can_clk"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + pci0: pci@ee090000 { compatible = "renesas,pci-r8a7745", "renesas,pci-rcar-gen2"; From debf9af7a402a65cbc05265d6a7f1f4f60e676f0 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Tue, 24 Jul 2018 12:03:52 +0100 Subject: [PATCH 0471/1149] ARM: dts: iwg22d-sodimm: Add can0 support to carrier board This patch enables CAN0 interface exposed through connector J15 on the carrier board. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 805a5263f4212e431a44c4a04738022a2498f652) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts index bffe73570b19..14865653a956 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts @@ -40,6 +40,13 @@ }; }; +&can0 { + pinctrl-0 = <&can0_pins>; + pinctrl-names = "default"; + + status = "okay"; +}; + &hscif1 { pinctrl-0 = <&hscif1_pins>; pinctrl-names = "default"; @@ -49,6 +56,11 @@ }; &pfc { + can0_pins: can0 { + groups = "can0_data"; + function = "can0"; + }; + hscif1_pins: hscif1 { groups = "hscif1_data", "hscif1_ctrl"; function = "hscif1"; From 83c9527368d95d8fe09a168fb59265b1554a9d44 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Tue, 24 Jul 2018 12:03:53 +0100 Subject: [PATCH 0472/1149] ARM: dts: iwg22d-sodimm-dbhd-ca: Add can1 support to HDMI DB CAN1 interface is exposed via connector J1 found on the HDMI daughter board. This patch enables can1 DT node from within the daughter board specific device tree. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit d6033e7c6589c74299635eb3d84c56ccac8db5e4) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts index fc0f559358c9..654d28b629e5 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts @@ -54,6 +54,13 @@ }; }; +&can1 { + pinctrl-0 = <&can1_pins>; + pinctrl-names = "default"; + + status = "okay"; +}; + &hscif2 { pinctrl-0 = <&hscif2_pins>; pinctrl-names = "default"; @@ -103,6 +110,11 @@ }; &pfc { + can1_pins: can1 { + groups = "can1_data_b"; + function = "can1"; + }; + du0_pins: du0 { groups = "du0_rgb888", "du0_sync", "du0_disp", "du0_clk0_out"; function = "du0"; From 6179c442f1d4e6cdc2b701f80ea2ac9bbd679a24 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Wed, 25 Jul 2018 14:06:33 +0100 Subject: [PATCH 0473/1149] ARM: dts: r8a7745: add VIN dt support Add VIN[01] support to SoC dt. Also, add aliases. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 1a20f21899e7ae886675874b5b5fb03eb43ea69b) (moved nodes to a better location to allow for better sorting. updated clocks and power-domains properties. removed resets property) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index c2e38ae254d6..0335e4574654 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -30,6 +30,8 @@ spi1 = &msiof0; spi2 = &msiof1; spi3 = &msiof2; + vin0 = &vin0; + vin1 = &vin1; }; /* External CAN clock */ @@ -878,6 +880,26 @@ status = "disabled"; }; + vin0: video@e6ef0000 { + compatible = "renesas,vin-r8a7745", + "renesas,rcar-gen2-vin"; + reg = <0 0xe6ef0000 0 0x1000>; + interrupts = ; + clocks = <&mstp8_clks R8A7745_CLK_VIN0>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + vin1: video@e6ef1000 { + compatible = "renesas,vin-r8a7745", + "renesas,rcar-gen2-vin"; + reg = <0 0xe6ef1000 0 0x1000>; + interrupts = ; + clocks = <&mstp8_clks R8A7745_CLK_VIN1>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + pci0: pci@ee090000 { compatible = "renesas,pci-r8a7745", "renesas,pci-rcar-gen2"; From a5c67506ac6274764f0f1b09914dbba1d2f93626 Mon Sep 17 00:00:00 2001 From: Benjamin Gaignard Date: Thu, 26 Jul 2018 15:28:05 +0100 Subject: [PATCH 0474/1149] selftests/timers: make loop consistent with array size clocksource_list array is defined as char [10][30] so to initialise it we only have to iterate 10 times. Signed-off-by: Benjamin Gaignard Signed-off-by: Shuah Khan (cherry picked from commit 8f14e26b63b1b6c7c681409e9db1bbf054e00b32) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- tools/testing/selftests/timers/clocksource-switch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/timers/clocksource-switch.c b/tools/testing/selftests/timers/clocksource-switch.c index 627ec7425f78..ad55426f4190 100644 --- a/tools/testing/selftests/timers/clocksource-switch.c +++ b/tools/testing/selftests/timers/clocksource-switch.c @@ -61,7 +61,7 @@ int get_clocksources(char list[][30]) close(fd); - for (i = 0; i < 30; i++) + for (i = 0; i < 10; i++) list[i][0] = '\0'; head = buf; From 3b5e9d5243f90d022ba9f5e6e9cf049dfe41d7f0 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 26 Jul 2018 15:28:06 +0100 Subject: [PATCH 0475/1149] ARM: dts: r8a7745: Add CMT SoC specific support Add CMT[01] support to SoC DT. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 9680c97b516cbb70efe73dde05d497b1203bde6d) (updated clocks and power-domains properties. removed resets property. added renesas,channels-mask property. updated compatible strings) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 0335e4574654..46fb0461339c 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -1062,6 +1062,38 @@ }; }; + cmt0: timer@ffca0000 { + compatible = "renesas,cmt-48-r8a7745", + "renesas,cmt-48-gen2"; + reg = <0 0xffca0000 0 0x1004>; + interrupts = , + ; + clocks = <&mstp1_clks R8A7745_CLK_CMT0>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + renesas,channels-mask = <0x60>; + status = "disabled"; + }; + + cmt1: timer@e6130000 { + compatible = "renesas,cmt-48-r8a7745", + "renesas,cmt-48-gen2"; + reg = <0 0xe6130000 0 0x1004>; + interrupts = , + , + , + , + , + , + , + ; + clocks = <&mstp3_clks R8A7745_CLK_CMT1>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + renesas,channels-mask = <0xff>; + status = "disabled"; + }; + clocks { #address-cells = <2>; #size-cells = <2>; From 4da7300c1b2d7e88e855a8bf37608d13f860e6f1 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 26 Jul 2018 15:28:07 +0100 Subject: [PATCH 0476/1149] ARM: dts: iwg22m: Enable cmt0 This patch enables cmt0 support from within the iwg22m SoM dtsi. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Simon Horman (cherry picked from commit 7d1671828696650db6123ab1d7a592a0bbf42ff2) Signed-off-by: Fabrizio Castro Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745-iwg22m.dtsi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745-iwg22m.dtsi b/arch/arm/boot/dts/r8a7745-iwg22m.dtsi index ed9a8cf3fe36..8d0a392b6811 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22m.dtsi +++ b/arch/arm/boot/dts/r8a7745-iwg22m.dtsi @@ -29,6 +29,10 @@ }; }; +&cmt0 { + status = "okay"; +}; + &extal_clk { clock-frequency = <20000000>; }; From 0676a152e3ea4cf017fb36bb7da02f716542affc Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 26 Jul 2018 18:42:19 +0100 Subject: [PATCH 0477/1149] ARM: shmobile: Remove shmobile_boot_arg CPU boot configuration writes to shmobile_boot_arg, which is located in the .text section, and thus should not be written to. As of commit 1d33a354bbb618ba ("ARM: shmobile: Per-CPU SMP boot / sleep code for SCU SoCs"), and ignoring accidental remainings, shmobile_boot_arg is always set to MPIDR_HWID_BITMASK by C code. Hence we can just hardcode this in the assembler code, and remove the variable, and thus also remove the need to write to this variable. Signed-off-by: Geert Uytterhoeven Acked-by: Nicolas Pitre Signed-off-by: Simon Horman (cherry picked from commit 901c5ffaaed117a38be9d0c29247c4888d6c8636) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/mach-shmobile/common.h | 1 - arch/arm/mach-shmobile/headsmp.S | 8 ++------ arch/arm/mach-shmobile/platsmp-apmu.c | 1 - arch/arm/mach-shmobile/platsmp-scu.c | 1 - 4 files changed, 2 insertions(+), 9 deletions(-) diff --git a/arch/arm/mach-shmobile/common.h b/arch/arm/mach-shmobile/common.h index 7b20b1b25fb4..f1ffff7e75ab 100644 --- a/arch/arm/mach-shmobile/common.h +++ b/arch/arm/mach-shmobile/common.h @@ -5,7 +5,6 @@ extern void shmobile_init_cntvoff(void); extern void shmobile_init_delay(void); extern void shmobile_boot_vector(void); extern unsigned long shmobile_boot_fn; -extern unsigned long shmobile_boot_arg; extern unsigned long shmobile_boot_size; extern void shmobile_smp_boot(void); extern void shmobile_smp_sleep(void); diff --git a/arch/arm/mach-shmobile/headsmp.S b/arch/arm/mach-shmobile/headsmp.S index 94d86ed16414..32e0bf6e3ccb 100644 --- a/arch/arm/mach-shmobile/headsmp.S +++ b/arch/arm/mach-shmobile/headsmp.S @@ -24,7 +24,6 @@ .arm .align 12 ENTRY(shmobile_boot_vector) - ldr r0, 2f ldr r1, 1f bx r1 @@ -34,9 +33,6 @@ ENDPROC(shmobile_boot_vector) .globl shmobile_boot_fn shmobile_boot_fn: 1: .space 4 - .globl shmobile_boot_arg -shmobile_boot_arg: -2: .space 4 .globl shmobile_boot_size shmobile_boot_size: .long . - shmobile_boot_vector @@ -46,9 +42,9 @@ shmobile_boot_size: */ ENTRY(shmobile_smp_boot) - @ r0 = MPIDR_HWID_BITMASK mrc p15, 0, r1, c0, c0, 5 @ r1 = MPIDR - and r0, r1, r0 @ r0 = cpu_logical_map() value + and r0, r1, #0xffffff @ MPIDR_HWID_BITMASK + @ r0 = cpu_logical_map() value mov r1, #0 @ r1 = CPU index adr r2, 1f ldmia r2, {r5, r6, r7} diff --git a/arch/arm/mach-shmobile/platsmp-apmu.c b/arch/arm/mach-shmobile/platsmp-apmu.c index ffae187594ed..067b25203564 100644 --- a/arch/arm/mach-shmobile/platsmp-apmu.c +++ b/arch/arm/mach-shmobile/platsmp-apmu.c @@ -195,7 +195,6 @@ void __init shmobile_smp_apmu_prepare_cpus(unsigned int max_cpus, { /* install boot code shared by all CPUs */ shmobile_smp_apmu_setup_boot(); - shmobile_boot_arg = MPIDR_HWID_BITMASK; /* perform per-cpu setup */ apmu_parse_cfg(apmu_init_cpu, apmu_config, num); diff --git a/arch/arm/mach-shmobile/platsmp-scu.c b/arch/arm/mach-shmobile/platsmp-scu.c index 64663110ab6c..1f2e2e847c90 100644 --- a/arch/arm/mach-shmobile/platsmp-scu.c +++ b/arch/arm/mach-shmobile/platsmp-scu.c @@ -41,7 +41,6 @@ void __init shmobile_smp_scu_prepare_cpus(unsigned int max_cpus) { /* install boot code shared by all CPUs */ shmobile_boot_fn = virt_to_phys(shmobile_smp_boot); - shmobile_boot_arg = MPIDR_HWID_BITMASK; /* enable SCU and cache coherency on booting CPU */ scu_enable(shmobile_scu_base); From 896b5c741923807446eaa1c1ff25a976ccf99856 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 26 Jul 2018 18:42:20 +0100 Subject: [PATCH 0478/1149] ARM: shmobile: Remove shmobile_boot_arg from shmobile_smp_apmu_setup_boot This commit removes shmobile_boot_arg from shmobile_smp_apmu_setup_boot as not used anymore. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/mach-shmobile/platsmp-apmu.c | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/arm/mach-shmobile/platsmp-apmu.c b/arch/arm/mach-shmobile/platsmp-apmu.c index 067b25203564..66fe008aa906 100644 --- a/arch/arm/mach-shmobile/platsmp-apmu.c +++ b/arch/arm/mach-shmobile/platsmp-apmu.c @@ -186,7 +186,6 @@ static void __init shmobile_smp_apmu_setup_boot(void) { /* install boot code shared by all CPUs */ shmobile_boot_fn = virt_to_phys(shmobile_smp_boot); - shmobile_boot_arg = MPIDR_HWID_BITMASK; } void __init shmobile_smp_apmu_prepare_cpus(unsigned int max_cpus, From c4af5480272fc19d27c7c8742ae05b5d9e808aa4 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 26 Jul 2018 18:42:21 +0100 Subject: [PATCH 0479/1149] ARM: shmobile: r8a7779: Remove remainings of removed SCU boot setup code Commit 0ca2894b5a900709 ("ARM: shmobile: Use shared SCU SMP boot code on r8a7779") obsoleted the r8a7779-specific SCU boot code, but forgot to remove the setup of shmobile_boot_fn and shmobile_boot_arg, which is overwritten by shmobile_smp_scu_prepare_cpus(). Note that shmobile_scu_base wasn't initialized at that point yet anyway. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit b1568d80123a7e7ab528f587ef6896b2d5413b61) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/mach-shmobile/smp-r8a7779.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/arch/arm/mach-shmobile/smp-r8a7779.c b/arch/arm/mach-shmobile/smp-r8a7779.c index 353562b8a5ee..5c2d80f83c6c 100644 --- a/arch/arm/mach-shmobile/smp-r8a7779.c +++ b/arch/arm/mach-shmobile/smp-r8a7779.c @@ -92,8 +92,6 @@ static void __init r8a7779_smp_prepare_cpus(unsigned int max_cpus) { /* Map the reset vector (in headsmp-scu.S, headsmp.S) */ __raw_writel(__pa(shmobile_boot_vector), AVECR); - shmobile_boot_fn = virt_to_phys(shmobile_boot_scu); - shmobile_boot_arg = (unsigned long)shmobile_scu_base; /* setup r8a7779 specific SCU bits */ shmobile_scu_base = IOMEM(R8A7779_SCU_BASE); From 711480b681681307bce33c8328c86623b22cc82b Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 26 Jul 2018 18:42:22 +0100 Subject: [PATCH 0480/1149] ARM: shmobile: Add watchdog support On R-Car Gen2 and RZ/G1 platforms, we use the SBAR registers to make non boot CPUs run a routine designed to bring up SMP and deal with hot plug. The value contained in the SBAR registers is not initialized by a WDT triggered reset, which means that after a WDT triggered reset we jump to the SMP bring up routine, preventing the system from executing the bootrom code. The purpose of this patch is to jump to the bootrom code in case of a WDT triggered reset, and keep the SMP functionality untouched. In order to tell if the code had been called due to the WDT overflowing we are testing WOVF from register RWTCSRA. The new function shmobile_boot_vector_gen2 isn't replacing shmobile_boot_vector for backward compatibility reasons. The kernel will install the best option (either shmobile_boot_vector or shmobile_boot_vector_gen2) to ICRAM1 after parsing the device tree, according to the amount of memory available. Since shmobile_boot_vector has become bigger, "reg" property of nodes compatible with "renesas,smp-sram" now need to be set to a value greater or equal to "<0 0x60>". Signed-off-by: Fabrizio Castro Signed-off-by: Ramesh Shanmugasundaram Reviewed-by: Geert Uytterhoeven [simon: dropped #ifdef from common.h] Signed-off-by: Simon Horman (cherry picked from commit 58adf1ba0d227754d9bc763c667f10efe0053ce5) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/mach-shmobile/common.h | 4 +++ arch/arm/mach-shmobile/headsmp.S | 55 ++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) diff --git a/arch/arm/mach-shmobile/common.h b/arch/arm/mach-shmobile/common.h index f1ffff7e75ab..5c7f24e953f9 100644 --- a/arch/arm/mach-shmobile/common.h +++ b/arch/arm/mach-shmobile/common.h @@ -6,6 +6,10 @@ extern void shmobile_init_delay(void); extern void shmobile_boot_vector(void); extern unsigned long shmobile_boot_fn; extern unsigned long shmobile_boot_size; +extern void shmobile_boot_vector_gen2(void); +extern unsigned long shmobile_boot_fn_gen2; +extern unsigned long shmobile_boot_cpu_gen2; +extern unsigned long shmobile_boot_size_gen2; extern void shmobile_smp_boot(void); extern void shmobile_smp_sleep(void); extern void shmobile_smp_hook(unsigned int cpu, unsigned long fn, diff --git a/arch/arm/mach-shmobile/headsmp.S b/arch/arm/mach-shmobile/headsmp.S index 32e0bf6e3ccb..cef8e8c555f8 100644 --- a/arch/arm/mach-shmobile/headsmp.S +++ b/arch/arm/mach-shmobile/headsmp.S @@ -16,6 +16,11 @@ #include #include +#define SCTLR_MMU 0x01 +#define BOOTROM_ADDRESS 0xE6340000 +#define RWTCSRA_ADDRESS 0xE6020004 +#define RWTCSRA_WOVF 0x10 + /* * Reset vector for secondary CPUs. * This will be mapped at address 0 by SBAR register. @@ -37,6 +42,56 @@ shmobile_boot_fn: shmobile_boot_size: .long . - shmobile_boot_vector +#ifdef CONFIG_ARCH_RCAR_GEN2 +/* + * Reset vector for R-Car Gen2 and RZ/G1 secondary CPUs. + * This will be mapped at address 0 by SBAR register. + */ +ENTRY(shmobile_boot_vector_gen2) + mrc p15, 0, r0, c0, c0, 5 @ r0 = MPIDR + ldr r1, shmobile_boot_cpu_gen2 + cmp r0, r1 + bne shmobile_smp_continue_gen2 + + mrc p15, 0, r1, c1, c0, 0 @ r1 = SCTLR + and r0, r1, #SCTLR_MMU + cmp r0, #SCTLR_MMU + beq shmobile_smp_continue_gen2 + + ldr r0, rwtcsra + mov r1, #0 + ldrb r1, [r0] + and r0, r1, #RWTCSRA_WOVF + cmp r0, #RWTCSRA_WOVF + bne shmobile_smp_continue_gen2 + + ldr r0, bootrom + bx r0 + +shmobile_smp_continue_gen2: + ldr r1, shmobile_boot_fn_gen2 + bx r1 + +ENDPROC(shmobile_boot_vector_gen2) + + .align 4 +rwtcsra: + .word RWTCSRA_ADDRESS +bootrom: + .word BOOTROM_ADDRESS + .globl shmobile_boot_cpu_gen2 +shmobile_boot_cpu_gen2: + .word 0x00000000 + + .align 2 + .globl shmobile_boot_fn_gen2 +shmobile_boot_fn_gen2: + .space 4 + .globl shmobile_boot_size_gen2 +shmobile_boot_size_gen2: + .long . - shmobile_boot_vector_gen2 +#endif /* CONFIG_ARCH_RCAR_GEN2 */ + /* * Per-CPU SMP boot function/argument selection code based on MPIDR */ From d385fab7c0612b60f7139bd5a45257edb8c45297 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Mon, 20 Aug 2018 15:42:07 +0100 Subject: [PATCH 0481/1149] soc: renesas: Add R-Car RST driver Add a driver for the Renesas R-Car Gen1 RESET/WDT and R-Car Gen2/Gen3 and RZ/G RST module. For now this driver just provides an API to obtain the state of the mode pins, as latched at reset time. As this is typically called from the probe function of a clock driver, which can run much earlier than any initcall, calling rcar_rst_read_mode_pins() just forces an early initialization of the driver. Despite the current simple and almost identical handling for all supported SoCs, the driver matches against SoC-specific compatible values, as the features provided by the hardware module differ a lot across the various SoC families and members. Signed-off-by: Geert Uytterhoeven Acked-by: Dirk Behme (cherry picked from commit 527c02f66d263d2eeff237a2326c3278cfc03d3b and squashed commit 69e0d1b8db8f8cc319f966ec3eb2fffce28c4f28 into it) (Added renesas directory to driver/soc/Makefile. Modified drivers/soc/renesas/Makefile to only compile rcar-rst.c for R-Car Gen2. Removed R-Car Gen3 and R-Car Gen1 from rcar_rst_matches and stripped read mode pins logic from the driver. Got rid of rcar_rst_read_mode_pins, advertising rcar_rst_init instead) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/soc/Makefile | 1 + drivers/soc/renesas/Makefile | 1 + drivers/soc/renesas/rcar-rst.c | 77 ++++++++++++++++++++++++++++ include/linux/soc/renesas/rcar-rst.h | 6 +++ 4 files changed, 85 insertions(+) create mode 100644 drivers/soc/renesas/Makefile create mode 100644 drivers/soc/renesas/rcar-rst.c create mode 100644 include/linux/soc/renesas/rcar-rst.h diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile index f2ba2e932ae1..c87aadab9fa6 100644 --- a/drivers/soc/Makefile +++ b/drivers/soc/Makefile @@ -6,6 +6,7 @@ obj-$(CONFIG_SOC_BRCMSTB) += brcmstb/ obj-$(CONFIG_MACH_DOVE) += dove/ obj-$(CONFIG_ARCH_MEDIATEK) += mediatek/ obj-$(CONFIG_ARCH_QCOM) += qcom/ +obj-$(CONFIG_ARCH_SHMOBILE_MULTI) += renesas/ obj-$(CONFIG_ARCH_ROCKCHIP) += rockchip/ obj-$(CONFIG_ARCH_SUNXI) += sunxi/ obj-$(CONFIG_ARCH_TEGRA) += tegra/ diff --git a/drivers/soc/renesas/Makefile b/drivers/soc/renesas/Makefile new file mode 100644 index 000000000000..87517569af13 --- /dev/null +++ b/drivers/soc/renesas/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_ARCH_RCAR_GEN2) += rcar-rst.o diff --git a/drivers/soc/renesas/rcar-rst.c b/drivers/soc/renesas/rcar-rst.c new file mode 100644 index 000000000000..06220063b83f --- /dev/null +++ b/drivers/soc/renesas/rcar-rst.c @@ -0,0 +1,77 @@ +/* + * R-Car Gen2 and RZ/G RST Driver + * + * Copyright (C) 2016 Glider bvba + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive + * for more details. + */ + +#include +#include +#include +#include + +#define WDTRSTCR_RESET 0xA55A0002 +#define WDTRSTCR 0x0054 + +static int rcar_rst_enable_wdt_reset(void __iomem *base) +{ + iowrite32(WDTRSTCR_RESET, base + WDTRSTCR); + return 0; +} + +struct rst_config { + int (*configure)(void *base); /* Platform specific configuration */ +}; + +static const struct rst_config rcar_rst_gen2 __initconst = { + .configure = rcar_rst_enable_wdt_reset, +}; + +static const struct of_device_id rcar_rst_matches[] __initconst = { + /* RZ/G is handled like R-Car Gen2 */ + { .compatible = "renesas,r8a7743-rst", .data = &rcar_rst_gen2 }, + { .compatible = "renesas,r8a7745-rst", .data = &rcar_rst_gen2 }, + /* R-Car Gen2 */ + { .compatible = "renesas,r8a7790-rst", .data = &rcar_rst_gen2 }, + { .compatible = "renesas,r8a7791-rst", .data = &rcar_rst_gen2 }, + { .compatible = "renesas,r8a7792-rst", .data = &rcar_rst_gen2 }, + { .compatible = "renesas,r8a7793-rst", .data = &rcar_rst_gen2 }, + { .compatible = "renesas,r8a7794-rst", .data = &rcar_rst_gen2 }, + { /* sentinel */ } +}; + +static void __iomem *rcar_rst_base __initdata; + +void __init rcar_rst_init(void) +{ + const struct of_device_id *match; + const struct rst_config *cfg; + struct device_node *np; + void __iomem *base; + + if (rcar_rst_base) + return; + + np = of_find_matching_node_and_match(NULL, rcar_rst_matches, &match); + if (!np) + return; + + base = of_iomap(np, 0); + if (!base) { + pr_warn("%s: Cannot map regs\n", np->full_name); + goto out_put; + } + + rcar_rst_base = base; + cfg = match->data; + if (cfg->configure) + if (cfg->configure(base)) + pr_warn("%pOF: Cannot run SoC specific configuration\n", + np); + +out_put: + of_node_put(np); +} diff --git a/include/linux/soc/renesas/rcar-rst.h b/include/linux/soc/renesas/rcar-rst.h new file mode 100644 index 000000000000..6b1f492f4910 --- /dev/null +++ b/include/linux/soc/renesas/rcar-rst.h @@ -0,0 +1,6 @@ +#ifndef __LINUX_SOC_RENESAS_RCAR_RST_H__ +#define __LINUX_SOC_RENESAS_RCAR_RST_H__ + +void rcar_rst_init(void); + +#endif /* __LINUX_SOC_RENESAS_RCAR_RST_H__ */ From 2b89f2e180e6834fc2b3de8c0f9171e54919b081 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 26 Jul 2018 18:42:24 +0100 Subject: [PATCH 0482/1149] reset: Add renesas,rst DT bindings Add DT bindings for the Renesas R-Car Reset Controller (R-Car Gen1 RESET/WDT and R-Car Gen2/Gen3 and RZ/G RST). As the features provided by the hardware module differ a lot across the various SoC families and members, only SoC-specific compatible values are defined. For now we use the RST only for providing access to the state of the mode pins, which is needed by the clock driver. Signed-off-by: Geert Uytterhoeven Acked-by: Magnus Damm Acked-by: Dirk Behme Acked-by: Laurent Pinchart Acked-by: Philipp Zabel Acked-by: Rob Herring (cherry picked from commit 362922a1a5345d17a9d4ad7e3f848aa4fdf79d75) (dropped R-Car Gen1 and Gen3 support, replaced R-Car3 example with RZ/G1M, dropped mode pins functionality description) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- .../devicetree/bindings/reset/renesas,rst.txt | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Documentation/devicetree/bindings/reset/renesas,rst.txt diff --git a/Documentation/devicetree/bindings/reset/renesas,rst.txt b/Documentation/devicetree/bindings/reset/renesas,rst.txt new file mode 100644 index 000000000000..fff2e8e41b57 --- /dev/null +++ b/Documentation/devicetree/bindings/reset/renesas,rst.txt @@ -0,0 +1,24 @@ +DT bindings for the Renesas R-Car and RZ/G Reset Controllers + +The R-Car and RZ/G Reset Controllers provide reset control. + +Required properties: + - compatible: Should be + - "renesas,-rst" for R-Car Gen2 and RZ/G + Examples with soctypes are: + - "renesas,r8a7743-rst" (RZ/G1M) + - "renesas,r8a7745-rst" (RZ/G1E) + - "renesas,r8a7790-rst" (R-Car H2) + - "renesas,r8a7791-rst" (R-Car M2-W) + - "renesas,r8a7792-rst" (R-Car V2H + - "renesas,r8a7793-rst" (R-Car M2-N) + - "renesas,r8a7794-rst" (R-Car E2) + - reg: Address start and address range for the device. + + +Example: + + rst: reset-controller@e6160000 { + compatible = "renesas,r8a7743-rst"; + reg = <0 0xe6160000 0 0x100>; + }; From 3aa1d6fc86d0a7ae35e586069499337f9f7e5237 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 26 Jul 2018 18:42:25 +0100 Subject: [PATCH 0483/1149] clk: shmobile: rcar-gen2: Init R-Car reset IP Initialize R-Car reset IP by calling rcar_rst_init. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/clk/shmobile/clk-rcar-gen2.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/clk/shmobile/clk-rcar-gen2.c b/drivers/clk/shmobile/clk-rcar-gen2.c index 636070ba5d33..6ab0199a4038 100644 --- a/drivers/clk/shmobile/clk-rcar-gen2.c +++ b/drivers/clk/shmobile/clk-rcar-gen2.c @@ -19,6 +19,7 @@ #include #include #include +#include struct rcar_gen2_cpg { struct clk_onecell_data data; @@ -442,4 +443,6 @@ void __init rcar_gen2_clocks_init(u32 mode) cpg_mode = mode; of_clk_init(NULL); + + rcar_rst_init(); } From 5f6dd552b5ea26642ebd553831d2cf50a39ebce2 Mon Sep 17 00:00:00 2001 From: Lee Jones Date: Thu, 26 Jul 2018 18:42:26 +0100 Subject: [PATCH 0484/1149] clk: Allow clocks to be marked as CRITICAL Critical clocks are those which must not be gated, else undefined or catastrophic failure would occur. Here we have chosen to ensure the prepare/enable counts are correctly incremented, so as not to confuse users with enabled clocks with no visible users. Signed-off-by: Lee Jones Signed-off-by: Michael Turquette Link: lkml.kernel.org/r/1455225554-13267-2-git-send-email-mturquette@baylibre.com (cherry picked from commit 32b9b10961860860268961d9aad0c56a73018c37) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/clk/clk.c | 5 +++++ include/linux/clk-provider.h | 1 + 2 files changed, 6 insertions(+) diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 53c068f90b37..c2718c816097 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -2469,6 +2469,11 @@ static int __clk_init(struct device *dev, struct clk *clk_user) if (core->ops->init) core->ops->init(core->hw); + if (core->flags & CLK_IS_CRITICAL) { + clk_core_prepare(core); + clk_core_enable(core); + } + kref_init(&core->ref); out: clk_prepare_unlock(); diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h index 7cd0171963ae..b79d854fe335 100644 --- a/include/linux/clk-provider.h +++ b/include/linux/clk-provider.h @@ -31,6 +31,7 @@ #define CLK_SET_RATE_NO_REPARENT BIT(7) /* don't re-parent on rate change */ #define CLK_GET_ACCURACY_NOCACHE BIT(8) /* do not use the cached clk accuracy */ #define CLK_RECALC_NEW_RATES BIT(9) /* recalc rates after notifications */ +#define CLK_IS_CRITICAL BIT(11) /* do not gate, ever */ struct clk; struct clk_hw; From 693d51a9692d95af59cd39f430d1776b2872a62b Mon Sep 17 00:00:00 2001 From: Lee Jones Date: Thu, 26 Jul 2018 18:42:27 +0100 Subject: [PATCH 0485/1149] clk: WARN_ON about to disable a critical clock Signed-off-by: Lee Jones Reviewed-by: Stephen Boyd Signed-off-by: Michael Turquette Link: lkml.kernel.org/r/1455225554-13267-3-git-send-email-mturquette@baylibre.com (cherry picked from commit 2e20fbf592621b2c2aeddd82e0fa3dad053cce03) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/clk/clk.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index c2718c816097..a5b6a200ffcb 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -575,6 +575,9 @@ static void clk_core_unprepare(struct clk_core *core) if (WARN_ON(core->prepare_count == 0)) return; + if (WARN_ON(core->prepare_count == 1 && core->flags & CLK_IS_CRITICAL)) + return; + if (--core->prepare_count > 0) return; @@ -680,6 +683,9 @@ static void clk_core_disable(struct clk_core *core) if (WARN_ON(core->enable_count == 0)) return; + if (WARN_ON(core->enable_count == 1 && core->flags & CLK_IS_CRITICAL)) + return; + if (--core->enable_count > 0) return; From 07d6f54f961838eefbfa0bca92b61f830d03b2cf Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 26 Jul 2018 18:42:28 +0100 Subject: [PATCH 0486/1149] clk: fix critical clock locking The critical clock handling in __clk_core_init isn't taking the enable lock before calling clk_core_enable, which in turns triggers the warning in the lockdep_assert_held call in that function when lockep is enabled. Add the calls to clk_enable_lock/unlock to make sure it doesn't happen. Fixes: 32b9b1096186 ("clk: Allow clocks to be marked as CRITICAL") Signed-off-by: Maxime Ripard Reviewed-by: Heiko Stuebner Tested-by: Heiko Stuebner Signed-off-by: Stephen Boyd (cherry picked from commit ef56b79b66faeeb0dc14213d3cc9e0534a960dee) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/clk/clk.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index a5b6a200ffcb..ef6b789161c8 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -2476,8 +2476,13 @@ static int __clk_init(struct device *dev, struct clk *clk_user) core->ops->init(core->hw); if (core->flags & CLK_IS_CRITICAL) { + unsigned long flags; + clk_core_prepare(core); + + flags = clk_enable_lock(); clk_core_enable(core); + clk_enable_unlock(flags); } kref_init(&core->ref); From b3e751b1227ee4f27d088b6c4bd8e953ebd41d9d Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 26 Jul 2018 18:42:29 +0100 Subject: [PATCH 0487/1149] clk: renesas: mstp: Make INTC-SYS a critical clock INTC-SYS is the module clock for the GIC. Accessing the GIC while it is disabled causes: Unhandled fault: asynchronous external abort (0x1211) at 0x00000000 Currently, the GIC-400 driver cannot enable its module clock for several reasons: - It does not use a platform device, so Runtime PM is not an option, - gic_of_init() runs before any clocks are registered, so it cannot enable the clock explicitly, - gic_of_init() cannot return -EPROBE_DEFER, as IRQCHIP_DECLARE() doesn't support deferred probing. Hence we have to keep on relying on the boot loader for enabling the module clock. To prevent the module clock from being disabled when the CCF core thinks it is unused, and thus causing a system lock-up, add a check to the MSTP clock driver and enable CLK_IS_CRITICAL. This will make sure the module clock is never disabled. This is a hard dependency for describing the INTC-SYS clock in DT on R-Mobile APE6 and R-Car Gen2. Signed-off-by: Geert Uytterhoeven Acked-by: Stephen Boyd (cherry picked from commit e34084fb9a023d1dd008c989523af5a037f1d692) (Added rwdt as critical clock) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/clk/shmobile/clk-mstp.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/clk/shmobile/clk-mstp.c b/drivers/clk/shmobile/clk-mstp.c index 3b09716ebda2..6c7c7ed148dd 100644 --- a/drivers/clk/shmobile/clk-mstp.c +++ b/drivers/clk/shmobile/clk-mstp.c @@ -144,6 +144,11 @@ cpg_mstp_clock_register(const char *name, const char *parent_name, init.name = name; init.ops = &cpg_mstp_clock_ops; init.flags = CLK_IS_BASIC | CLK_SET_RATE_PARENT; + /* INTC-SYS is the module clock of the GIC, and must not be disabled */ + if (!strcmp(name, "intc-sys") || !strcmp(name, "rwdt")) { + pr_debug("MSTP %s setting CLK_IS_CRITICAL\n", name); + init.flags |= CLK_IS_CRITICAL; + } init.parent_names = &parent_name; init.num_parents = 1; From aac0b0ebc936761248dd474e071bd148686f37c5 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 26 Jul 2018 18:42:30 +0100 Subject: [PATCH 0488/1149] ARM: dts: r8a7743: Register rwdt and intc-sys clocks This patch registers "rwdt" and "intc-sys" clocks by adding the necessary definitions to the mstp4_clks node. Please note that both "rwdt" and "intc-sys" are critical clocks. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index d94fbce4ae43..551ce1c15cf7 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -1289,10 +1289,13 @@ compatible = "renesas,r8a7743-mstp-clocks", "renesas,cpg-mstp-clocks"; reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>; - clocks = <&cp_clk>; + clocks = <&rclk_clk>, <&cp_clk>, <&zs_clk>; #clock-cells = <1>; - clock-indices = ; - clock-output-names = "irqc"; + clock-indices = < + R8A7743_CLK_RWDT R8A7743_CLK_IRQC + R8A7743_CLK_INTC_SYS + >; + clock-output-names = "rwdt", "irqc", "intc-sys"; }; mstp5_clks: mstp5_clks@e6150144 { compatible = "renesas,r8a7743-mstp-clocks", From aacfbd1c70734c36f74067b98fbaf59b41b4b609 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 26 Jul 2018 18:42:31 +0100 Subject: [PATCH 0489/1149] ARM: dts: r8a7745: Register rwdt and intc-sys clocks This patch registers "rwdt" and "intc-sys" clocks by adding the necessary definitions to the mstp4_clks node. Please note that both "rwdt" and "intc-sys" are critical clocks. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 46fb0461339c..33236c04fbee 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -1365,12 +1365,13 @@ compatible = "renesas,r8a7745-mstp-clocks", "renesas,cpg-mstp-clocks"; reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>; - clocks = <&cp_clk>; + clocks = <&rclk_clk>, <&cp_clk>, <&zs_clk>; #clock-cells = <1>; clock-indices = < - R8A7745_CLK_IRQC + R8A7745_CLK_RWDT R8A7745_CLK_IRQC + R8A7745_CLK_INTC_SYS >; - clock-output-names = "irqc"; + clock-output-names = "rwdt", "irqc", "intc-sys"; }; mstp5_clks: mstp5_clks@e6150144 { compatible = "renesas,r8a7745-mstp-clocks", From 0a96e1ecd17e0041aa573a2994d864dc75edccb4 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Mon, 20 Aug 2018 15:43:28 +0100 Subject: [PATCH 0490/1149] watchdog: renesas-wdt: add driver Add support for watchdogs (RWDT and SWDT) found on RCar Gen3 based SoCs from Renesas. Signed-off-by: Wolfram Sang Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck (cherry picked from commit bd99b68ed7f96c9c845aad2a25f84145213058f2 and squashed commit 3fe95e6c68e6258410e85488af9e1b1ff545b831 into it) (reworked dt-bindings to refer to R-Car Gen2 and RZ/G1 only. replaced ARCH_RENESAS with ARCH_SHMOBILE in Kconfig. changes to the driver: * removed "renesas,rcar-gen3-wdt" * removed blacklisting logic * implemented set_timeout (via rwdt_set_timeout) as required by the 4.4 kernel * modified rwdt_ping and rwdt_start to leverage rwdt_set_timeout) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- .../bindings/watchdog/renesas-wdt.txt | 33 +++ drivers/watchdog/Kconfig | 8 + drivers/watchdog/Makefile | 1 + drivers/watchdog/renesas_wdt.c | 215 ++++++++++++++++++ 4 files changed, 257 insertions(+) create mode 100644 Documentation/devicetree/bindings/watchdog/renesas-wdt.txt create mode 100644 drivers/watchdog/renesas_wdt.c diff --git a/Documentation/devicetree/bindings/watchdog/renesas-wdt.txt b/Documentation/devicetree/bindings/watchdog/renesas-wdt.txt new file mode 100644 index 000000000000..25b108e90998 --- /dev/null +++ b/Documentation/devicetree/bindings/watchdog/renesas-wdt.txt @@ -0,0 +1,33 @@ +Renesas Watchdog Timer (WDT) Controller + +Required properties: + - compatible : Must be "renesas,-wdt", followed by a generic + fallback compatible string when compatible with the generic + version. + Examples with soctypes are: + - "renesas,r8a7743-wdt" (RZ/G1M) + - "renesas,r8a7745-wdt" (RZ/G1E) + The generic compatible string must be: + - "renesas,rcar-gen2-wdt" for R-Car Gen2 and RZ/G + + When compatible with the generic version, nodes must list the SoC-specific + version corresponding to the platform first, followed by the generic + version. + +- reg : Should contain WDT registers location and length +- clocks : the clock feeding the watchdog timer. + +Optional properties: +- timeout-sec : Contains the watchdog timeout in seconds +- power-domains : the power domain the WDT belongs to + +Examples: + + rwdt: watchdog@e6020000 { + compatible = "renesas,r8a7743-wdt", + "renesas,rcar-gen2-wdt"; + reg = <0 0xe6020000 0 0x0c>; + clocks = <&mstp4_clks R8A7743_CLK_RWDT>; + power-domains = <&cpg_clocks>; + timeout-sec = <60>; + }; diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index 88743cd0a7e6..b44906527cb4 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -589,6 +589,14 @@ config LPC18XX_WATCHDOG To compile this driver as a module, choose M here: the module will be called lpc18xx_wdt. +config RENESAS_WDT + tristate "Renesas WDT Watchdog" + depends on ARCH_SHMOBILE || COMPILE_TEST + select WATCHDOG_CORE + help + This driver adds watchdog support for the integrated watchdogs in the + Renesas R-Car and other SH-Mobile SoCs (usually named RWDT or SWDT). + # AVR32 Architecture config AT32AP700X_WDT diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile index 53d4827ddfe1..e1c5d85792db 100644 --- a/drivers/watchdog/Makefile +++ b/drivers/watchdog/Makefile @@ -69,6 +69,7 @@ obj-$(CONFIG_MEDIATEK_WATCHDOG) += mtk_wdt.o obj-$(CONFIG_DIGICOLOR_WATCHDOG) += digicolor_wdt.o obj-$(CONFIG_LPC18XX_WATCHDOG) += lpc18xx_wdt.o obj-$(CONFIG_BCM7038_WDT) += bcm7038_wdt.o +obj-$(CONFIG_RENESAS_WDT) += renesas_wdt.o # AVR32 Architecture obj-$(CONFIG_AT32AP700X_WDT) += at32ap700x_wdt.o diff --git a/drivers/watchdog/renesas_wdt.c b/drivers/watchdog/renesas_wdt.c new file mode 100644 index 000000000000..ab3e9b03e1eb --- /dev/null +++ b/drivers/watchdog/renesas_wdt.c @@ -0,0 +1,215 @@ +/* + * Watchdog driver for Renesas WDT watchdog + * + * Copyright (C) 2015-16 Wolfram Sang, Sang Engineering + * Copyright (C) 2015-16 Renesas Electronics Corporation + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define RWTCNT 0 +#define RWTCSRA 4 +#define RWTCSRA_WOVF BIT(4) +#define RWTCSRA_WRFLG BIT(5) +#define RWTCSRA_TME BIT(7) + +#define RWDT_DEFAULT_TIMEOUT 60U + +static const unsigned int clk_divs[] = { 1, 4, 16, 32, 64, 128, 1024 }; + +static bool nowayout = WATCHDOG_NOWAYOUT; +module_param(nowayout, bool, 0); +MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default=" + __MODULE_STRING(WATCHDOG_NOWAYOUT) ")"); + +struct rwdt_priv { + void __iomem *base; + struct watchdog_device wdev; + struct clk *clk; + unsigned int clks_per_sec; + u8 cks; +}; + +static void rwdt_write(struct rwdt_priv *priv, u32 val, unsigned int reg) +{ + if (reg == RWTCNT) + val |= 0x5a5a0000; + else + val |= 0xa5a5a500; + + writel_relaxed(val, priv->base + reg); +} + +static int rwdt_set_timeout(struct watchdog_device *wdev, unsigned int seconds) +{ + struct rwdt_priv *priv = watchdog_get_drvdata(wdev); + + wdev->timeout = seconds; + rwdt_write(priv, 65536 - wdev->timeout * priv->clks_per_sec, RWTCNT); + + return 0; +} + +static int rwdt_ping(struct watchdog_device *wdev) +{ + return rwdt_set_timeout(wdev, wdev->timeout); +} + +static int rwdt_start(struct watchdog_device *wdev) +{ + struct rwdt_priv *priv = watchdog_get_drvdata(wdev); + + clk_prepare_enable(priv->clk); + + rwdt_write(priv, priv->cks, RWTCSRA); + rwdt_set_timeout(wdev, wdev->timeout); + + while (readb_relaxed(priv->base + RWTCSRA) & RWTCSRA_WRFLG) + cpu_relax(); + + rwdt_write(priv, priv->cks | RWTCSRA_TME, RWTCSRA); + + return 0; +} + +static int rwdt_stop(struct watchdog_device *wdev) +{ + struct rwdt_priv *priv = watchdog_get_drvdata(wdev); + + rwdt_write(priv, priv->cks, RWTCSRA); + clk_disable_unprepare(priv->clk); + + return 0; +} + +static unsigned int rwdt_get_timeleft(struct watchdog_device *wdev) +{ + struct rwdt_priv *priv = watchdog_get_drvdata(wdev); + u16 val = readw_relaxed(priv->base + RWTCNT); + + return DIV_ROUND_CLOSEST(65536 - val, priv->clks_per_sec); +} + +static const struct watchdog_info rwdt_ident = { + .options = WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT, + .identity = "Renesas WDT Watchdog", +}; + +static const struct watchdog_ops rwdt_ops = { + .owner = THIS_MODULE, + .start = rwdt_start, + .stop = rwdt_stop, + .ping = rwdt_ping, + .get_timeleft = rwdt_get_timeleft, + .set_timeout = rwdt_set_timeout, +}; + +static int rwdt_probe(struct platform_device *pdev) +{ + struct rwdt_priv *priv; + struct resource *res; + unsigned long rate; + unsigned int clks_per_sec; + int ret, i; + + priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); + if (!priv) + return -ENOMEM; + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + priv->base = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(priv->base)) + return PTR_ERR(priv->base); + + priv->clk = devm_clk_get(&pdev->dev, NULL); + if (IS_ERR(priv->clk)) + return PTR_ERR(priv->clk); + + rate = clk_get_rate(priv->clk); + if (!rate) + return -ENOENT; + + for (i = ARRAY_SIZE(clk_divs) - 1; i >= 0; i--) { + clks_per_sec = DIV_ROUND_UP(rate, clk_divs[i]); + if (clks_per_sec) { + priv->clks_per_sec = clks_per_sec; + priv->cks = i; + break; + } + } + + if (!clks_per_sec) { + dev_err(&pdev->dev, "Can't find suitable clock divider\n"); + return -ERANGE; + } + + pm_runtime_enable(&pdev->dev); + pm_runtime_get_sync(&pdev->dev); + + priv->wdev.info = &rwdt_ident, + priv->wdev.ops = &rwdt_ops, + priv->wdev.parent = &pdev->dev; + priv->wdev.min_timeout = 1; + priv->wdev.max_timeout = 65536 / clks_per_sec; + priv->wdev.timeout = min(priv->wdev.max_timeout, RWDT_DEFAULT_TIMEOUT); + + platform_set_drvdata(pdev, priv); + watchdog_set_drvdata(&priv->wdev, priv); + watchdog_set_nowayout(&priv->wdev, nowayout); + + /* This overrides the default timeout only if DT configuration was found */ + ret = watchdog_init_timeout(&priv->wdev, 0, &pdev->dev); + if (ret) + dev_warn(&pdev->dev, "Specified timeout value invalid, using default\n"); + + ret = watchdog_register_device(&priv->wdev); + if (ret < 0) { + pm_runtime_put(&pdev->dev); + pm_runtime_disable(&pdev->dev); + return ret; + } + + return 0; +} + +static int rwdt_remove(struct platform_device *pdev) +{ + struct rwdt_priv *priv = platform_get_drvdata(pdev); + + watchdog_unregister_device(&priv->wdev); + pm_runtime_put(&pdev->dev); + pm_runtime_disable(&pdev->dev); + + return 0; +} + +static const struct of_device_id rwdt_ids[] = { + { .compatible = "renesas,rcar-gen2-wdt", }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(of, rwdt_ids); + +static struct platform_driver rwdt_driver = { + .driver = { + .name = "renesas_wdt", + .of_match_table = rwdt_ids, + }, + .probe = rwdt_probe, + .remove = rwdt_remove, +}; +module_platform_driver(rwdt_driver); + +MODULE_DESCRIPTION("Renesas WDT Watchdog Driver"); +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Wolfram Sang "); From 06f78c1568a8e47c601cc12299819556580c96d8 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 26 Jul 2018 18:42:33 +0100 Subject: [PATCH 0491/1149] watchdog: renesas_wdt: avoid (theoretical) type overflow Because the smallest clock divider we can select is 1, 'clks_per_sec' must be the same type as 'rate'. Signed-off-by: Wolfram Sang Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck (cherry picked from commit f6159dd4b085ad839ab02c1ba230535c53ef60d4) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/watchdog/renesas_wdt.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/watchdog/renesas_wdt.c b/drivers/watchdog/renesas_wdt.c index ab3e9b03e1eb..27c090eb946a 100644 --- a/drivers/watchdog/renesas_wdt.c +++ b/drivers/watchdog/renesas_wdt.c @@ -37,7 +37,7 @@ struct rwdt_priv { void __iomem *base; struct watchdog_device wdev; struct clk *clk; - unsigned int clks_per_sec; + unsigned long clks_per_sec; u8 cks; }; @@ -119,8 +119,7 @@ static int rwdt_probe(struct platform_device *pdev) { struct rwdt_priv *priv; struct resource *res; - unsigned long rate; - unsigned int clks_per_sec; + unsigned long rate, clks_per_sec; int ret, i; priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); From 1e77a4982b6f9fbbbd7f9d99eaa694f4757ddff3 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 26 Jul 2018 18:42:34 +0100 Subject: [PATCH 0492/1149] watchdog: renesas_wdt: check rate also for upper limit When checking the clock rate, ensure also that counting all 16 bits takes at least one second to match the granularity of the framework. Signed-off-by: Wolfram Sang Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck (cherry picked from commit b51247c8029660a9c49ad48bf38f364479c96215) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/watchdog/renesas_wdt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/watchdog/renesas_wdt.c b/drivers/watchdog/renesas_wdt.c index 27c090eb946a..9d68eb0ab39b 100644 --- a/drivers/watchdog/renesas_wdt.c +++ b/drivers/watchdog/renesas_wdt.c @@ -141,14 +141,14 @@ static int rwdt_probe(struct platform_device *pdev) for (i = ARRAY_SIZE(clk_divs) - 1; i >= 0; i--) { clks_per_sec = DIV_ROUND_UP(rate, clk_divs[i]); - if (clks_per_sec) { + if (clks_per_sec && clks_per_sec < 65536) { priv->clks_per_sec = clks_per_sec; priv->cks = i; break; } } - if (!clks_per_sec) { + if (i < 0) { dev_err(&pdev->dev, "Can't find suitable clock divider\n"); return -ERANGE; } From 6d42b2a23f3b9ccde13e5cdb8c9e6db312efb7a9 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 26 Jul 2018 18:42:35 +0100 Subject: [PATCH 0493/1149] watchdog: renesas_wdt: don't round closest with get_timeleft We should never return more time left than there actually is. So, switch to a plain divider instead of DIV_ROUND_CLOSEST. Signed-off-by: Wolfram Sang Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck (cherry picked from commit 1c1b2434017206b612764fad1820b6dd48cb9e92) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/watchdog/renesas_wdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/watchdog/renesas_wdt.c b/drivers/watchdog/renesas_wdt.c index 9d68eb0ab39b..64f68d12cb8f 100644 --- a/drivers/watchdog/renesas_wdt.c +++ b/drivers/watchdog/renesas_wdt.c @@ -98,7 +98,7 @@ static unsigned int rwdt_get_timeleft(struct watchdog_device *wdev) struct rwdt_priv *priv = watchdog_get_drvdata(wdev); u16 val = readw_relaxed(priv->base + RWTCNT); - return DIV_ROUND_CLOSEST(65536 - val, priv->clks_per_sec); + return (65536 - val) / priv->clks_per_sec; } static const struct watchdog_info rwdt_ident = { From 8a57e546d0691125cb0f9228b458df2de43362e5 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 26 Jul 2018 18:42:36 +0100 Subject: [PATCH 0494/1149] watchdog: renesas_wdt: apply better precision The error margin of the clks_per_second variable was too large and caused offsets when used with clock frequencies which left a remainder after applying the dividers. Now we always calculate directly using the clock rate and the divider using some helper macros. That also means that DIV_ROUND_UP moves from probe to the multiplication macro. In probe, we don't need to ensure anymore that 'clks_per_sec' would go too fast but rather ensure that the lower limit is really at least 1 to certainly get a full cycle. Signed-off-by: Wolfram Sang Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck (cherry picked from commit 82f64cd20848511f516bd28147a6432497dfb080) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/watchdog/renesas_wdt.c | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/drivers/watchdog/renesas_wdt.c b/drivers/watchdog/renesas_wdt.c index 64f68d12cb8f..454a2fce7746 100644 --- a/drivers/watchdog/renesas_wdt.c +++ b/drivers/watchdog/renesas_wdt.c @@ -26,6 +26,17 @@ #define RWDT_DEFAULT_TIMEOUT 60U +/* + * In probe, clk_rate is checked to be not more than 16 bit * biggest clock + * divider (10 bits). d is only a factor to fully utilize the WDT counter and + * will not exceed its 16 bits. Thus, no overflow, we stay below 32 bits. + */ +#define MUL_BY_CLKS_PER_SEC(p, d) \ + DIV_ROUND_UP((d) * (p)->clk_rate, clk_divs[(p)->cks]) + +/* d is 16 bit, clk_divs 10 bit -> no 32 bit overflow */ +#define DIV_BY_CLKS_PER_SEC(p, d) ((d) * clk_divs[(p)->cks] / (p)->clk_rate) + static const unsigned int clk_divs[] = { 1, 4, 16, 32, 64, 128, 1024 }; static bool nowayout = WATCHDOG_NOWAYOUT; @@ -37,7 +48,7 @@ struct rwdt_priv { void __iomem *base; struct watchdog_device wdev; struct clk *clk; - unsigned long clks_per_sec; + unsigned long clk_rate; u8 cks; }; @@ -56,7 +67,7 @@ static int rwdt_set_timeout(struct watchdog_device *wdev, unsigned int seconds) struct rwdt_priv *priv = watchdog_get_drvdata(wdev); wdev->timeout = seconds; - rwdt_write(priv, 65536 - wdev->timeout * priv->clks_per_sec, RWTCNT); + rwdt_write(priv, 65536 - MUL_BY_CLKS_PER_SEC(priv, wdev->timeout), RWTCNT); return 0; } @@ -98,7 +109,7 @@ static unsigned int rwdt_get_timeleft(struct watchdog_device *wdev) struct rwdt_priv *priv = watchdog_get_drvdata(wdev); u16 val = readw_relaxed(priv->base + RWTCNT); - return (65536 - val) / priv->clks_per_sec; + return DIV_BY_CLKS_PER_SEC(priv, 65536 - val); } static const struct watchdog_info rwdt_ident = { @@ -119,7 +130,7 @@ static int rwdt_probe(struct platform_device *pdev) { struct rwdt_priv *priv; struct resource *res; - unsigned long rate, clks_per_sec; + unsigned long clks_per_sec; int ret, i; priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); @@ -135,14 +146,13 @@ static int rwdt_probe(struct platform_device *pdev) if (IS_ERR(priv->clk)) return PTR_ERR(priv->clk); - rate = clk_get_rate(priv->clk); - if (!rate) + priv->clk_rate = clk_get_rate(priv->clk); + if (!priv->clk_rate) return -ENOENT; for (i = ARRAY_SIZE(clk_divs) - 1; i >= 0; i--) { - clks_per_sec = DIV_ROUND_UP(rate, clk_divs[i]); + clks_per_sec = priv->clk_rate / clk_divs[i]; if (clks_per_sec && clks_per_sec < 65536) { - priv->clks_per_sec = clks_per_sec; priv->cks = i; break; } @@ -160,7 +170,7 @@ static int rwdt_probe(struct platform_device *pdev) priv->wdev.ops = &rwdt_ops, priv->wdev.parent = &pdev->dev; priv->wdev.min_timeout = 1; - priv->wdev.max_timeout = 65536 / clks_per_sec; + priv->wdev.max_timeout = DIV_BY_CLKS_PER_SEC(priv, 65536); priv->wdev.timeout = min(priv->wdev.max_timeout, RWDT_DEFAULT_TIMEOUT); platform_set_drvdata(pdev, priv); From 401784cfb630f123080a6cdad0548d46217c8f7f Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 26 Jul 2018 18:42:37 +0100 Subject: [PATCH 0495/1149] watchdog: renesas_wdt: add another divider option If we set RWTCSRB to 0, we can gain 4096 as another divider value. This is supported by all R-Car Gen2 and Gen3 devices which we aim to support. Signed-off-by: Wolfram Sang Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck (cherry picked from commit 03a196f25f5652a3deffc1b8eade8a3c1c39282c) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/watchdog/renesas_wdt.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/watchdog/renesas_wdt.c b/drivers/watchdog/renesas_wdt.c index 454a2fce7746..1891a0ea8444 100644 --- a/drivers/watchdog/renesas_wdt.c +++ b/drivers/watchdog/renesas_wdt.c @@ -23,21 +23,22 @@ #define RWTCSRA_WOVF BIT(4) #define RWTCSRA_WRFLG BIT(5) #define RWTCSRA_TME BIT(7) +#define RWTCSRB 8 #define RWDT_DEFAULT_TIMEOUT 60U /* * In probe, clk_rate is checked to be not more than 16 bit * biggest clock - * divider (10 bits). d is only a factor to fully utilize the WDT counter and + * divider (12 bits). d is only a factor to fully utilize the WDT counter and * will not exceed its 16 bits. Thus, no overflow, we stay below 32 bits. */ #define MUL_BY_CLKS_PER_SEC(p, d) \ DIV_ROUND_UP((d) * (p)->clk_rate, clk_divs[(p)->cks]) -/* d is 16 bit, clk_divs 10 bit -> no 32 bit overflow */ +/* d is 16 bit, clk_divs 12 bit -> no 32 bit overflow */ #define DIV_BY_CLKS_PER_SEC(p, d) ((d) * clk_divs[(p)->cks] / (p)->clk_rate) -static const unsigned int clk_divs[] = { 1, 4, 16, 32, 64, 128, 1024 }; +static const unsigned int clk_divs[] = { 1, 4, 16, 32, 64, 128, 1024, 4096 }; static bool nowayout = WATCHDOG_NOWAYOUT; module_param(nowayout, bool, 0); @@ -83,6 +84,7 @@ static int rwdt_start(struct watchdog_device *wdev) clk_prepare_enable(priv->clk); + rwdt_write(priv, 0, RWTCSRB); rwdt_write(priv, priv->cks, RWTCSRA); rwdt_set_timeout(wdev, wdev->timeout); From 508f7cc6ba17f34a95619e329eb26ab1bc7d61d8 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 26 Jul 2018 18:42:38 +0100 Subject: [PATCH 0496/1149] watchdog: renesas_wdt: consistently use RuntimePM for clock management On Renesas R-Car archs, RuntimePM does all the clock handling. So, use it consistently to enable/disable the clocks. Also make sure that clocks are really enabled around clk_get_rate(). clk_summary looks proper now: clock enable_cnt prepare_cnt rate ... Before this commit: At boot: rwdt 1 1 32768 0 0 WDT running: rwdt 2 2 32768 0 0 After this commit: At boot: rwdt 0 1 32768 0 0 WDT running rwdt 1 1 32768 0 0 Signed-off-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck (cherry picked from commit 3be42941dd9df9b7c5062fc98c416a15bf4bbc0f) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/watchdog/renesas_wdt.c | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/drivers/watchdog/renesas_wdt.c b/drivers/watchdog/renesas_wdt.c index 1891a0ea8444..834cff04e0ff 100644 --- a/drivers/watchdog/renesas_wdt.c +++ b/drivers/watchdog/renesas_wdt.c @@ -82,7 +82,7 @@ static int rwdt_start(struct watchdog_device *wdev) { struct rwdt_priv *priv = watchdog_get_drvdata(wdev); - clk_prepare_enable(priv->clk); + pm_runtime_get_sync(wdev->parent); rwdt_write(priv, 0, RWTCSRB); rwdt_write(priv, priv->cks, RWTCSRA); @@ -101,7 +101,7 @@ static int rwdt_stop(struct watchdog_device *wdev) struct rwdt_priv *priv = watchdog_get_drvdata(wdev); rwdt_write(priv, priv->cks, RWTCSRA); - clk_disable_unprepare(priv->clk); + pm_runtime_put(wdev->parent); return 0; } @@ -148,9 +148,16 @@ static int rwdt_probe(struct platform_device *pdev) if (IS_ERR(priv->clk)) return PTR_ERR(priv->clk); + pm_runtime_enable(&pdev->dev); + + pm_runtime_get_sync(&pdev->dev); priv->clk_rate = clk_get_rate(priv->clk); - if (!priv->clk_rate) - return -ENOENT; + pm_runtime_put(&pdev->dev); + + if (!priv->clk_rate) { + ret = -ENOENT; + goto out_pm_disable; + } for (i = ARRAY_SIZE(clk_divs) - 1; i >= 0; i--) { clks_per_sec = priv->clk_rate / clk_divs[i]; @@ -162,12 +169,10 @@ static int rwdt_probe(struct platform_device *pdev) if (i < 0) { dev_err(&pdev->dev, "Can't find suitable clock divider\n"); - return -ERANGE; + ret = -ERANGE; + goto out_pm_disable; } - pm_runtime_enable(&pdev->dev); - pm_runtime_get_sync(&pdev->dev); - priv->wdev.info = &rwdt_ident, priv->wdev.ops = &rwdt_ops, priv->wdev.parent = &pdev->dev; @@ -185,13 +190,14 @@ static int rwdt_probe(struct platform_device *pdev) dev_warn(&pdev->dev, "Specified timeout value invalid, using default\n"); ret = watchdog_register_device(&priv->wdev); - if (ret < 0) { - pm_runtime_put(&pdev->dev); - pm_runtime_disable(&pdev->dev); - return ret; - } + if (ret < 0) + goto out_pm_disable; return 0; + + out_pm_disable: + pm_runtime_disable(&pdev->dev); + return ret; } static int rwdt_remove(struct platform_device *pdev) @@ -199,7 +205,6 @@ static int rwdt_remove(struct platform_device *pdev) struct rwdt_priv *priv = platform_get_drvdata(pdev); watchdog_unregister_device(&priv->wdev); - pm_runtime_put(&pdev->dev); pm_runtime_disable(&pdev->dev); return 0; From 759b14cafb17968361ba5fee1628281fcfc1df05 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 26 Jul 2018 18:42:39 +0100 Subject: [PATCH 0497/1149] watchdog: renesas_wdt: make 'clk' a variable local to probe() It is not needed outside probe() anymore. Signed-off-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck (cherry picked from commit 9c22b6d33605d4b24e2491fdb743a285e8588738) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/watchdog/renesas_wdt.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/watchdog/renesas_wdt.c b/drivers/watchdog/renesas_wdt.c index 834cff04e0ff..0e4a82ea763b 100644 --- a/drivers/watchdog/renesas_wdt.c +++ b/drivers/watchdog/renesas_wdt.c @@ -48,7 +48,6 @@ MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default=" struct rwdt_priv { void __iomem *base; struct watchdog_device wdev; - struct clk *clk; unsigned long clk_rate; u8 cks; }; @@ -132,6 +131,7 @@ static int rwdt_probe(struct platform_device *pdev) { struct rwdt_priv *priv; struct resource *res; + struct clk *clk; unsigned long clks_per_sec; int ret, i; @@ -144,14 +144,14 @@ static int rwdt_probe(struct platform_device *pdev) if (IS_ERR(priv->base)) return PTR_ERR(priv->base); - priv->clk = devm_clk_get(&pdev->dev, NULL); - if (IS_ERR(priv->clk)) - return PTR_ERR(priv->clk); + clk = devm_clk_get(&pdev->dev, NULL); + if (IS_ERR(clk)) + return PTR_ERR(clk); pm_runtime_enable(&pdev->dev); pm_runtime_get_sync(&pdev->dev); - priv->clk_rate = clk_get_rate(priv->clk); + priv->clk_rate = clk_get_rate(clk); pm_runtime_put(&pdev->dev); if (!priv->clk_rate) { From c2bec2197b34d3c8800ec41c5c842f7d538b8f64 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 26 Jul 2018 18:42:40 +0100 Subject: [PATCH 0498/1149] watchdog: renesas_wdt: update copyright dates Signed-off-by: Wolfram Sang Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck (cherry picked from commit 1f185596e7981ea1e606ae8c47b141be729e95ae) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/watchdog/renesas_wdt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/watchdog/renesas_wdt.c b/drivers/watchdog/renesas_wdt.c index 0e4a82ea763b..be1e39b24f2a 100644 --- a/drivers/watchdog/renesas_wdt.c +++ b/drivers/watchdog/renesas_wdt.c @@ -1,8 +1,8 @@ /* * Watchdog driver for Renesas WDT watchdog * - * Copyright (C) 2015-16 Wolfram Sang, Sang Engineering - * Copyright (C) 2015-16 Renesas Electronics Corporation + * Copyright (C) 2015-17 Wolfram Sang, Sang Engineering + * Copyright (C) 2015-17 Renesas Electronics Corporation * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 as published by From b5eaded2fc039eda5d51b984e172137a4ec30bec Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 26 Jul 2018 18:42:41 +0100 Subject: [PATCH 0499/1149] watchdog: renesas_wdt: Add suspend/resume support On R-Car Gen2 and RZ/G1 the watchdog IP clock needs to be always ON, on R-Car Gen3 we power the IP down during suspend. This commit adds suspend/resume support, so that the watchdog counting "pauses" during suspend on all of the SoCs compatible with this driver and on those we are now adding support for (R-Car Gen2 and RZ/G1). Signed-off-by: Fabrizio Castro Signed-off-by: Ramesh Shanmugasundaram Reviewed-by: Wolfram Sang Reviewed-by: Guenter Roeck Reviewed-by: Geert Uytterhoeven Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck (cherry picked from commit 07278ca1ccc9a1241f14a8aaa4f2430b7b217c3f) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/watchdog/renesas_wdt.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/watchdog/renesas_wdt.c b/drivers/watchdog/renesas_wdt.c index be1e39b24f2a..87f3e57c9f62 100644 --- a/drivers/watchdog/renesas_wdt.c +++ b/drivers/watchdog/renesas_wdt.c @@ -49,6 +49,7 @@ struct rwdt_priv { void __iomem *base; struct watchdog_device wdev; unsigned long clk_rate; + u16 time_left; u8 cks; }; @@ -210,6 +211,30 @@ static int rwdt_remove(struct platform_device *pdev) return 0; } +static int __maybe_unused rwdt_suspend(struct device *dev) +{ + struct rwdt_priv *priv = dev_get_drvdata(dev); + + if (watchdog_active(&priv->wdev)) { + priv->time_left = readw(priv->base + RWTCNT); + rwdt_stop(&priv->wdev); + } + return 0; +} + +static int __maybe_unused rwdt_resume(struct device *dev) +{ + struct rwdt_priv *priv = dev_get_drvdata(dev); + + if (watchdog_active(&priv->wdev)) { + rwdt_start(&priv->wdev); + rwdt_write(priv, priv->time_left, RWTCNT); + } + return 0; +} + +static SIMPLE_DEV_PM_OPS(rwdt_pm_ops, rwdt_suspend, rwdt_resume); + static const struct of_device_id rwdt_ids[] = { { .compatible = "renesas,rcar-gen2-wdt", }, { /* sentinel */ } @@ -220,6 +245,7 @@ static struct platform_driver rwdt_driver = { .driver = { .name = "renesas_wdt", .of_match_table = rwdt_ids, + .pm = &rwdt_pm_ops, }, .probe = rwdt_probe, .remove = rwdt_remove, From 9ddc8b6eb47b66b8cf52d26e49c8a1b01040072d Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 26 Jul 2018 18:42:42 +0100 Subject: [PATCH 0500/1149] watchdog: renesas_wdt: Add restart handler On iWave's boards iwg20d and iwg22d the only way to reboot the system is by means of the watchdog. This patch adds a restart handler to rwdt_ops, and also makes sure we keep its priority to the lowest level, in order to not override other more effective handlers. Signed-off-by: Fabrizio Castro Signed-off-by: Ramesh Shanmugasundaram Reviewed-by: Guenter Roeck Reviewed-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck (cherry picked from commit 089bcaa87e772beb005068a5ef28c71bb895d01d) (changed restart handler implementation as .restart is not available from struct watchdog_ops) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das [bwh: Delete rogue semi-colon in rwdt_remove()] Signed-off-by: Ben Hutchings --- drivers/watchdog/renesas_wdt.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/watchdog/renesas_wdt.c b/drivers/watchdog/renesas_wdt.c index 87f3e57c9f62..22f068f04cde 100644 --- a/drivers/watchdog/renesas_wdt.c +++ b/drivers/watchdog/renesas_wdt.c @@ -17,6 +17,8 @@ #include #include #include +#include +#include #define RWTCNT 0 #define RWTCSRA 4 @@ -51,6 +53,7 @@ struct rwdt_priv { unsigned long clk_rate; u16 time_left; u8 cks; + struct notifier_block restart_handler; }; static void rwdt_write(struct rwdt_priv *priv, u32 val, unsigned int reg) @@ -114,6 +117,18 @@ static unsigned int rwdt_get_timeleft(struct watchdog_device *wdev) return DIV_BY_CLKS_PER_SEC(priv, 65536 - val); } +static int rwdt_restart(struct notifier_block *this, unsigned long mode, + void *cmd) +{ + struct rwdt_priv *priv = container_of(this, struct rwdt_priv, + restart_handler); + + rwdt_start(&priv->wdev); + rwdt_write(priv, 0xffff, RWTCNT); + + return NOTIFY_DONE; +} + static const struct watchdog_info rwdt_ident = { .options = WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT, .identity = "Renesas WDT Watchdog", @@ -194,6 +209,15 @@ static int rwdt_probe(struct platform_device *pdev) if (ret < 0) goto out_pm_disable; + priv->restart_handler.notifier_call = rwdt_restart; + priv->restart_handler.priority = 0; + ret = register_restart_handler(&priv->restart_handler); + if (ret) { + dev_err(&pdev->dev, "can't register restart handler (err=%d)\n", + ret); + priv->restart_handler.notifier_call = NULL; + } + return 0; out_pm_disable: @@ -205,6 +229,8 @@ static int rwdt_remove(struct platform_device *pdev) { struct rwdt_priv *priv = platform_get_drvdata(pdev); + if (priv->restart_handler.notifier_call) + unregister_restart_handler(&priv->restart_handler); watchdog_unregister_device(&priv->wdev); pm_runtime_disable(&pdev->dev); From 5c3339527678c7c4ea93040780194b47cd5908a1 Mon Sep 17 00:00:00 2001 From: Veeraiyan Chidambaram Date: Thu, 26 Jul 2018 18:42:43 +0100 Subject: [PATCH 0501/1149] watchdog: renesas-wdt: Add support for WDIOF_CARDRESET This patch adds the WDIOF_CARDRESET support for the Renesas platform watchdog, to know if the board reboot is due to a watchdog reset. This is done via the WOVF bit (bit 4) of the RWTCSRA register, which indicates if RWTCNT overflowed, triggering the reset in last boot. Signed-off-by: Veeraiyan Chidambaram [takeshi.kihara.df: changed to read the RWTCSRA register while clock is enabled] Signed-off-by: Takeshi Kihara Signed-off-by: Wolfram Sang Reviewed-by: Guenter Roeck Reviewed-by: Vladimir Zapolskiy Reviewed-by: Geert Uytterhoeven Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck (cherry picked from commit fdac6a90d2d151abdbb7e5ec14bb9ab64e2931ec) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/watchdog/renesas_wdt.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/watchdog/renesas_wdt.c b/drivers/watchdog/renesas_wdt.c index 22f068f04cde..f22e2b993ff4 100644 --- a/drivers/watchdog/renesas_wdt.c +++ b/drivers/watchdog/renesas_wdt.c @@ -130,7 +130,8 @@ static int rwdt_restart(struct notifier_block *this, unsigned long mode, } static const struct watchdog_info rwdt_ident = { - .options = WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT, + .options = WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT | + WDIOF_CARDRESET, .identity = "Renesas WDT Watchdog", }; @@ -165,9 +166,10 @@ static int rwdt_probe(struct platform_device *pdev) return PTR_ERR(clk); pm_runtime_enable(&pdev->dev); - pm_runtime_get_sync(&pdev->dev); priv->clk_rate = clk_get_rate(clk); + priv->wdev.bootstatus = (readb_relaxed(priv->base + RWTCSRA) & + RWTCSRA_WOVF) ? WDIOF_CARDRESET : 0; pm_runtime_put(&pdev->dev); if (!priv->clk_rate) { From 4f7e5d0f90a0ab243c63af7e47dceaf6ab32e27f Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 26 Jul 2018 18:42:44 +0100 Subject: [PATCH 0502/1149] ARM: shmobile: rcar-gen2: Add more register documentation Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit aa7f39d51e33555fc45645c08bc74a74e22b166f) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/mach-shmobile/pm-rcar-gen2.c | 40 +++++++++++++++++++-------- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/arch/arm/mach-shmobile/pm-rcar-gen2.c b/arch/arm/mach-shmobile/pm-rcar-gen2.c index f1bee679a581..cb7e7646ed32 100644 --- a/arch/arm/mach-shmobile/pm-rcar-gen2.c +++ b/arch/arm/mach-shmobile/pm-rcar-gen2.c @@ -20,15 +20,31 @@ /* RST */ #define RST 0xe6160000 -#define CA15BAR 0x0020 -#define CA7BAR 0x0030 -#define CA15RESCNT 0x0040 -#define CA7RESCNT 0x0044 + +#define CA15BAR 0x0020 /* CA15 Boot Address Register */ +#define CA7BAR 0x0030 /* CA7 Boot Address Register */ +#define CA15RESCNT 0x0040 /* CA15 Reset Control Register */ +#define CA7RESCNT 0x0044 /* CA7 Reset Control Register */ + +/* SYS Boot Address Register */ +#define SBAR_BAREN BIT(4) /* SBAR is valid */ + +/* Reset Control Registers */ +#define CA15RESCNT_CODE 0xa5a50000 +#define CA15RESCNT_CPUS 0xf /* CPU0-3 */ +#define CA7RESCNT_CODE 0x5a5a0000 +#define CA7RESCNT_CPUS 0xf /* CPU0-3 */ + /* On-chip RAM */ #define MERAM 0xe8080000 #define RAM 0xe6300000 +static inline u32 phys_to_sbar(phys_addr_t addr) +{ + return (addr >> 8) & 0xfffffc00; +} + /* SYSC */ #define SYSCIER 0x0c #define SYSCIMR 0x10 @@ -97,22 +113,24 @@ void __init rcar_gen2_pm_init(void) /* setup reset vectors */ p = ioremap_nocache(RST, 0x63); - bar = (boot_vector_addr >> 8) & 0xfffffc00; + bar = phys_to_sbar(boot_vector_addr); if (has_a15) { writel_relaxed(bar, p + CA15BAR); - writel_relaxed(bar | 0x10, p + CA15BAR); + writel_relaxed(bar | SBAR_BAREN, p + CA15BAR); /* de-assert reset for CA15 CPUs */ - writel_relaxed((readl_relaxed(p + CA15RESCNT) & ~0x0f) | - 0xa5a50000, p + CA15RESCNT); + writel_relaxed((readl_relaxed(p + CA15RESCNT) & + ~CA15RESCNT_CPUS) | CA15RESCNT_CODE, + p + CA15RESCNT); } if (has_a7) { writel_relaxed(bar, p + CA7BAR); - writel_relaxed(bar | 0x10, p + CA7BAR); + writel_relaxed(bar | SBAR_BAREN, p + CA7BAR); /* de-assert reset for CA7 CPUs */ - writel_relaxed((readl_relaxed(p + CA7RESCNT) & ~0x0f) | - 0x5a5a0000, p + CA7RESCNT); + writel_relaxed((readl_relaxed(p + CA7RESCNT) & + ~CA7RESCNT_CPUS) | CA7RESCNT_CODE, + p + CA7RESCNT); } iounmap(p); From d0352169e719047551ab402efec3a230605f9a55 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 26 Jul 2018 18:42:45 +0100 Subject: [PATCH 0503/1149] ARM: shmobile: rcar-gen2: Use ICRAM1 for jump stub on all SoCs Currently the different SoCs in the R-Car Gen2 family use different types of on-chip RAM for the jump stub: - R-Car H2 uses Media RAM, - R-Car M2-W uses another type of optional On-chip RAM, as it doesn't have Media RAM, - R-Car M2-N uses Inter Connect RAM in Magnus Damm's "ARM: shmobile: r8a7793 boot address update". As all R-Car Gen2 SoCs have 4 KiB of Inter Connect RAM, consolidate the code by always using that. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit c94bc815f3c757df402d6f6a3e8d855b9168e6af) (do not init boot_vector_addr for r8a7743 and r8a7745) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/mach-shmobile/pm-rcar-gen2.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/arch/arm/mach-shmobile/pm-rcar-gen2.c b/arch/arm/mach-shmobile/pm-rcar-gen2.c index cb7e7646ed32..6556134ca638 100644 --- a/arch/arm/mach-shmobile/pm-rcar-gen2.c +++ b/arch/arm/mach-shmobile/pm-rcar-gen2.c @@ -37,8 +37,7 @@ /* On-chip RAM */ -#define MERAM 0xe8080000 -#define RAM 0xe6300000 +#define ICRAM1 0xe63c0000 /* Inter Connect RAM1 (4 KiB) */ static inline u32 phys_to_sbar(phys_addr_t addr) { @@ -74,7 +73,7 @@ void __init rcar_gen2_pm_init(void) struct device_node *np, *cpus; bool has_a7 = false; bool has_a15 = false; - phys_addr_t boot_vector_addr = 0; + phys_addr_t boot_vector_addr = ICRAM1; u32 syscier = 0; if (once++) @@ -91,20 +90,14 @@ void __init rcar_gen2_pm_init(void) has_a7 = true; } - if (of_machine_is_compatible("renesas,r8a7790")) { - boot_vector_addr = MERAM; + if (of_machine_is_compatible("renesas,r8a7790")) syscier = 0x013111ef; - - } else if (of_machine_is_compatible("renesas,r8a7791")) { - boot_vector_addr = RAM; + else if (of_machine_is_compatible("renesas,r8a7791")) syscier = 0x00111003; - } else if (of_machine_is_compatible("renesas,r8a7743")) { - boot_vector_addr = RAM; + else if (of_machine_is_compatible("renesas,r8a7743")) syscier = 0x00101003; - } else if (of_machine_is_compatible("renesas,r8a7745")) { - boot_vector_addr = RAM; + else if (of_machine_is_compatible("renesas,r8a7745")) syscier = 0x00300060; - } /* RAM for jump stub, because BAR requires 256KB aligned address */ p = ioremap_nocache(boot_vector_addr, shmobile_boot_size); From 9b1ae093d8734b07a0a0ab878df12b2761426ec8 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 26 Jul 2018 18:42:46 +0100 Subject: [PATCH 0504/1149] ARM: shmobile: rcar-gen2: Obtain jump stub region from DT Add support for obtaining from DT the SRAM region to store the jump stub for CPU core bringup, according to the renesas,smp-sram DT bindings. If no region is specified in DT, the code falls back to hardcoded ICRAM1 as before, to maintain backwards compatibility. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 816756962b15f469d467b09beeb702af015c55cc) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/mach-shmobile/pm-rcar-gen2.c | 33 ++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/arch/arm/mach-shmobile/pm-rcar-gen2.c b/arch/arm/mach-shmobile/pm-rcar-gen2.c index 6556134ca638..7a34ec9b3490 100644 --- a/arch/arm/mach-shmobile/pm-rcar-gen2.c +++ b/arch/arm/mach-shmobile/pm-rcar-gen2.c @@ -11,7 +11,9 @@ */ #include +#include #include +#include #include #include #include "common.h" @@ -73,8 +75,9 @@ void __init rcar_gen2_pm_init(void) struct device_node *np, *cpus; bool has_a7 = false; bool has_a15 = false; - phys_addr_t boot_vector_addr = ICRAM1; + struct resource res; u32 syscier = 0; + int error; if (once++) return; @@ -99,14 +102,38 @@ void __init rcar_gen2_pm_init(void) else if (of_machine_is_compatible("renesas,r8a7745")) syscier = 0x00300060; + np = of_find_compatible_node(NULL, NULL, "renesas,smp-sram"); + if (!np) { + /* No smp-sram in DT, fall back to hardcoded address */ + res = (struct resource)DEFINE_RES_MEM(ICRAM1, + shmobile_boot_size); + goto map; + } + + error = of_address_to_resource(np, 0, &res); + if (error) { + pr_err("Failed to get smp-sram address: %d\n", error); + return; + } + +map: /* RAM for jump stub, because BAR requires 256KB aligned address */ - p = ioremap_nocache(boot_vector_addr, shmobile_boot_size); + if (res.start & (256 * 1024 - 1) || + resource_size(&res) < shmobile_boot_size) { + pr_err("Invalid smp-sram region\n"); + return; + } + + p = ioremap(res.start, resource_size(&res)); + if (!p) + return; + memcpy_toio(p, shmobile_boot_vector, shmobile_boot_size); iounmap(p); /* setup reset vectors */ p = ioremap_nocache(RST, 0x63); - bar = phys_to_sbar(boot_vector_addr); + bar = phys_to_sbar(res.start); if (has_a15) { writel_relaxed(bar, p + CA15BAR); writel_relaxed(bar | SBAR_BAREN, p + CA15BAR); From 7ca998978cb8aaf64b69dd0c8ca86867f4cfe1a3 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 26 Jul 2018 18:42:47 +0100 Subject: [PATCH 0505/1149] ARM: shmobile: rcar-gen2: Add watchdog support This patch adds watchdog support by installing shmobile_boot_vector_gen2 to ICRAM1 when enough memory is available, in which case we also keep a copy of MPIDR to complete the reset vector logic. Signed-off-by: Fabrizio Castro Signed-off-by: Ramesh Shanmugasundaram Signed-off-by: Simon Horman (cherry picked from commit 01d675f159e0f0792947fb823cf2425da4d747ad) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/mach-shmobile/platsmp-apmu.c | 1 + arch/arm/mach-shmobile/pm-rcar-gen2.c | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/arch/arm/mach-shmobile/platsmp-apmu.c b/arch/arm/mach-shmobile/platsmp-apmu.c index 66fe008aa906..4153d5a89ec8 100644 --- a/arch/arm/mach-shmobile/platsmp-apmu.c +++ b/arch/arm/mach-shmobile/platsmp-apmu.c @@ -186,6 +186,7 @@ static void __init shmobile_smp_apmu_setup_boot(void) { /* install boot code shared by all CPUs */ shmobile_boot_fn = virt_to_phys(shmobile_smp_boot); + shmobile_boot_fn_gen2 = shmobile_boot_fn; } void __init shmobile_smp_apmu_prepare_cpus(unsigned int max_cpus, diff --git a/arch/arm/mach-shmobile/pm-rcar-gen2.c b/arch/arm/mach-shmobile/pm-rcar-gen2.c index 7a34ec9b3490..0054561239a7 100644 --- a/arch/arm/mach-shmobile/pm-rcar-gen2.c +++ b/arch/arm/mach-shmobile/pm-rcar-gen2.c @@ -16,6 +16,7 @@ #include #include #include +#include #include "common.h" #include "pm-rcar.h" #include "rcar-gen2.h" @@ -37,7 +38,6 @@ #define CA7RESCNT_CODE 0x5a5a0000 #define CA7RESCNT_CPUS 0xf /* CPU0-3 */ - /* On-chip RAM */ #define ICRAM1 0xe63c0000 /* Inter Connect RAM1 (4 KiB) */ @@ -127,8 +127,17 @@ void __init rcar_gen2_pm_init(void) p = ioremap(res.start, resource_size(&res)); if (!p) return; - - memcpy_toio(p, shmobile_boot_vector, shmobile_boot_size); + /* + * install the reset vector, use the largest version if we have enough + * memory available + */ + if (resource_size(&res) >= shmobile_boot_size_gen2) { + shmobile_boot_cpu_gen2 = read_cpuid_mpidr(); + memcpy_toio(p, shmobile_boot_vector_gen2, + shmobile_boot_size_gen2); + } else { + memcpy_toio(p, shmobile_boot_vector, shmobile_boot_size); + } iounmap(p); /* setup reset vectors */ From 4917409d61a7351fb19c283cf30bcbde95ccfc76 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 26 Jul 2018 18:42:48 +0100 Subject: [PATCH 0506/1149] ARM: dts: r8a7743: Add Inter Connect RAM RZ/G1M has 3 regions of Inter Connect RAM (72 + 4 + 256 KiB). Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 06278baa1b08f2b2ae26d5b2394b779ed82f3dfa) (sorted icram nodes) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 551ce1c15cf7..c13802718a4a 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -268,6 +268,21 @@ }; }; + icram0: sram@e63a0000 { + compatible = "mmio-sram"; + reg = <0 0xe63a0000 0 0x12000>; + }; + + icram1: sram@e63c0000 { + compatible = "mmio-sram"; + reg = <0 0xe63c0000 0 0x1000>; + }; + + icram2: sram@e6300000 { + compatible = "mmio-sram"; + reg = <0 0xe6300000 0 0x40000>; + }; + timer { compatible = "arm,armv7-timer"; interrupts = Date: Thu, 26 Jul 2018 18:42:49 +0100 Subject: [PATCH 0507/1149] ARM: dts: r8a7743: Reserve SRAM for the SMP jump stub Reserve SRAM for the jump stub for CPU core bringup. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 857892bfc55e0a3fd0916bdac30fd7c0d81195bd) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index c13802718a4a..675c7b3630f0 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -276,6 +276,14 @@ icram1: sram@e63c0000 { compatible = "mmio-sram"; reg = <0 0xe63c0000 0 0x1000>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0xe63c0000 0x1000>; + + smp-sram@0 { + compatible = "renesas,smp-sram"; + reg = <0 0x10>; + }; }; icram2: sram@e6300000 { From e191ed4c7995e5864816a59bea255b1bd4e1289b Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 26 Jul 2018 18:42:50 +0100 Subject: [PATCH 0508/1149] ARM: dts: r8a7743: Adjust SMP routine size This patch adjusts the definition of the SMP routine size according to the latest changes made by commit: "ARM: shmobile: Add watchdog support" Signed-off-by: Fabrizio Castro Signed-off-by: Ramesh Shanmugasundaram Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 0b7d5ccacac9cd54785a2cf1695a0601907f3e78) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 675c7b3630f0..bd0c8b243a16 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -282,7 +282,7 @@ smp-sram@0 { compatible = "renesas,smp-sram"; - reg = <0 0x10>; + reg = <0 0x100>; }; }; From 15bee9b335366b40df4ecf72bcf27d5504a1738c Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 26 Jul 2018 18:42:51 +0100 Subject: [PATCH 0509/1149] ARM: dts: r8a7745: Add Inter Connect RAM RZ/G1E has 3 regions of Inter Connect RAM (72 + 4 + 256 KiB). Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 825216b8160b53b83f405a1e7b6c647e4e99e25a) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 33236c04fbee..0afd5f0b53b6 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -1022,6 +1022,21 @@ status = "disabled"; }; + icram2: sram@e6300000 { + compatible = "mmio-sram"; + reg = <0 0xe6300000 0 0x40000>; + }; + + icram0: sram@e63a0000 { + compatible = "mmio-sram"; + reg = <0 0xe63a0000 0 0x12000>; + }; + + icram1: sram@e63c0000 { + compatible = "mmio-sram"; + reg = <0 0xe63c0000 0 0x1000>; + }; + ether: ethernet@ee700000 { compatible = "renesas,ether-r8a7745"; reg = <0 0xee700000 0 0x400>; From d5b07b1121530d7eb2a52d529d94c1c002719020 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 26 Jul 2018 18:42:52 +0100 Subject: [PATCH 0510/1149] ARM: dts: r8a7745: Reserve SRAM for the SMP jump stub Reserve SRAM for the jump stub for CPU core bringup. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit d2791b1c8f6b3d308cd1bf529558d10c10a771a9) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 0afd5f0b53b6..25ce4cd5ded6 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -1035,6 +1035,14 @@ icram1: sram@e63c0000 { compatible = "mmio-sram"; reg = <0 0xe63c0000 0 0x1000>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0xe63c0000 0x1000>; + + smp-sram@0 { + compatible = "renesas,smp-sram"; + reg = <0 0x10>; + }; }; ether: ethernet@ee700000 { From a4cf7e44df164ce4110746d910bbb91269fa6667 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 26 Jul 2018 18:42:53 +0100 Subject: [PATCH 0511/1149] ARM: dts: r8a7745: Adjust SMP routine size This patch adjusts the definition of the SMP routine size according to the latest changes made by commit: "ARM: shmobile: Add watchdog support" Signed-off-by: Fabrizio Castro Signed-off-by: Ramesh Shanmugasundaram Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 7270dedc8438c7247474a33a8334f3920816e2c2) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 25ce4cd5ded6..2e79205bebef 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -1041,7 +1041,7 @@ smp-sram@0 { compatible = "renesas,smp-sram"; - reg = <0 0x10>; + reg = <0 0x100>; }; }; From 84e6938b46176a6754b93b36606b460fe01cd715 Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Thu, 26 Jul 2018 18:42:54 +0100 Subject: [PATCH 0512/1149] ARM: dts: r8a7743: initial SoC device tree The initial R8A7743 SoC device tree including CPU0, GIC, timer, SYSC, RST, CPG, and the required clock descriptions. Based on the original (and large) patch by Dmitry Shifrin . Signed-off-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 34e8d993a68ae459ad98c27afc07647e439deacc) (cherry-picked again only to get rst node) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index bd0c8b243a16..2931a026fa92 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -90,6 +90,11 @@ cpus = <&cpu0 &cpu1>; }; + rst: reset-controller@e6160000 { + compatible = "renesas,r8a7743-rst"; + reg = <0 0xe6160000 0 0x100>; + }; + gic: interrupt-controller@f1001000 { compatible = "arm,gic-400"; #interrupt-cells = <3>; From 9edffef988339e88198d9905d58698e230563122 Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Thu, 26 Jul 2018 18:42:55 +0100 Subject: [PATCH 0513/1149] ARM: dts: r8a7745: initial SoC device tree The initial R8A7745 SoC device tree including CPU0, GIC, timer, SYSC, RST, CPG, and the required clock descriptions. Based on the original (and large) patch by Dmitry Shifrin . Signed-off-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit c95360247bdd67d39b55f7e743153efa64e4efe3) (cherry picked again only to get rst node) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 2e79205bebef..f19aed2f12fb 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -214,6 +214,11 @@ cpus = <&cpu0 &cpu1>; }; + rst: reset-controller@e6160000 { + compatible = "renesas,r8a7745-rst"; + reg = <0 0xe6160000 0 0x100>; + }; + irqc: interrupt-controller@e61c0000 { compatible = "renesas,irqc-r8a7745", "renesas,irqc"; #interrupt-cells = <2>; From aa24a3187516358e743d1266de1f3fe63d920e35 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 26 Jul 2018 18:42:56 +0100 Subject: [PATCH 0514/1149] ARM: dts: r8a7743: Add watchdog support to SoC dtsi This patch adds watchdog support to the r8a7743 SoC dtsi. Signed-off-by: Fabrizio Castro Signed-off-by: Ramesh Shanmugasundaram Reviewed-by: Geert Uytterhoeven Acked-by: Wolfram Sang Signed-off-by: Simon Horman (cherry picked from commit b5beb5d4c81c358f50a8310108e7d8614eec8bfd) (move node to better location to allow for better sorting. modified clocks and power-domains properties. removed resets property) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 2931a026fa92..bb507a18afb9 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -95,6 +95,15 @@ reg = <0 0xe6160000 0 0x100>; }; + rwdt: watchdog@e6020000 { + compatible = "renesas,r8a7743-wdt", + "renesas,rcar-gen2-wdt"; + reg = <0 0xe6020000 0 0x0c>; + clocks = <&mstp4_clks R8A7743_CLK_RWDT>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + gic: interrupt-controller@f1001000 { compatible = "arm,gic-400"; #interrupt-cells = <3>; From cb07416c43bc4e139c46c2a9cd06dbdb530fdf9d Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 26 Jul 2018 18:42:57 +0100 Subject: [PATCH 0515/1149] ARM: dts: r8a7745: Add watchdog support to SoC dtsi This patch adds watchdog support to the r8a7745 SoC dtsi. Signed-off-by: Fabrizio Castro Signed-off-by: Ramesh Shanmugasundaram Reviewed-by: Geert Uytterhoeven Acked-by: Wolfram Sang Signed-off-by: Simon Horman (cherry picked from commit 5f39290ff3e5f56c78adf16a8c7a0a2938c733f5) (modified clocks and power-domains properties. removed resets property) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index f19aed2f12fb..5cafc30605b3 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -219,6 +219,15 @@ reg = <0 0xe6160000 0 0x100>; }; + rwdt: watchdog@e6020000 { + compatible = "renesas,r8a7745-wdt", + "renesas,rcar-gen2-wdt"; + reg = <0 0xe6020000 0 0x0c>; + clocks = <&mstp4_clks R8A7745_CLK_RWDT>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + irqc: interrupt-controller@e61c0000 { compatible = "renesas,irqc-r8a7745", "renesas,irqc"; #interrupt-cells = <2>; From bdbb29c047ca14b93860b40ef4da6b57b93f2c16 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 26 Jul 2018 18:42:58 +0100 Subject: [PATCH 0516/1149] ARM: dts: iwg20m: Add watchdog support to SoM dtsi This patch enables the watchdog from within the iwg20m SoM dtsi. Signed-off-by: Fabrizio Castro Signed-off-by: Ramesh Shanmugasundaram Reviewed-by: Geert Uytterhoeven Reviewed-by: Wolfram Sang Signed-off-by: Simon Horman (cherry picked from commit fc9d3be893f8f175879657f844040d0722eb17fe) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743-iwg20m.dtsi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743-iwg20m.dtsi b/arch/arm/boot/dts/r8a7743-iwg20m.dtsi index 1d3e9503c5bd..d364685d9184 100644 --- a/arch/arm/boot/dts/r8a7743-iwg20m.dtsi +++ b/arch/arm/boot/dts/r8a7743-iwg20m.dtsi @@ -91,6 +91,11 @@ }; }; +&rwdt { + timeout-sec = <60>; + status = "okay"; +}; + &sdhi0 { pinctrl-0 = <&sdhi0_pins>; pinctrl-names = "default"; From bf25a540534d74d9e52bc1aa9d7a88898239fb2e Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 26 Jul 2018 18:42:59 +0100 Subject: [PATCH 0517/1149] ARM: dts: iwg22m: Add watchdog support to SoM dtsi This patch enables the watchdog from within the iwg20m SoM dtsi. Signed-off-by: Fabrizio Castro Signed-off-by: Ramesh Shanmugasundaram Reviewed-by: Geert Uytterhoeven Reviewed-by: Wolfram Sang Signed-off-by: Simon Horman (cherry picked from commit a8e2c377fe2483f7fcd5746ab4e0c43c3262c1de) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745-iwg22m.dtsi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745-iwg22m.dtsi b/arch/arm/boot/dts/r8a7745-iwg22m.dtsi index 8d0a392b6811..29b6e10fdf96 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22m.dtsi +++ b/arch/arm/boot/dts/r8a7745-iwg22m.dtsi @@ -91,6 +91,11 @@ }; }; +&rwdt { + timeout-sec = <60>; + status = "okay"; +}; + &sdhi1 { pinctrl-0 = <&sdhi1_pins>; pinctrl-names = "default"; From 8614cbbe891d98aa56b8f6d23d28093257e5f039 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 26 Jul 2018 18:43:00 +0100 Subject: [PATCH 0518/1149] ARM: shmobile: defconfig: Enable RENESAS_WDT_GEN R-Car Gen2 and RZ/G1 platforms come with a watchdog IP, therefore enable its driver by default. Signed-off-by: Fabrizio Castro Signed-off-by: Ramesh Shanmugasundaram Reviewed-by: Wolfram Sang Signed-off-by: Simon Horman (cherry picked from commit 0743559383d4e5371b120b8d452262a85c5d3951) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/configs/shmobile_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/shmobile_defconfig b/arch/arm/configs/shmobile_defconfig index 3282a4fd1dbe..223fbc85b784 100644 --- a/arch/arm/configs/shmobile_defconfig +++ b/arch/arm/configs/shmobile_defconfig @@ -127,6 +127,7 @@ CONFIG_CPU_THERMAL=y CONFIG_RCAR_THERMAL=y CONFIG_WATCHDOG=y CONFIG_DA9063_WATCHDOG=y +CONFIG_RENESAS_WDT=y CONFIG_MFD_AS3711=y CONFIG_MFD_DA9063=y CONFIG_REGULATOR_FIXED_VOLTAGE=y From c70a983ef0bb0c936c71d4b5cc23dd173aadcef0 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 27 Jul 2018 17:27:14 +0100 Subject: [PATCH 0519/1149] ARM: dts: r8a7745: Add VSP support Add VSP support to SoC DT. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Simon Horman (cherry picked from commit 76a2577d97f0b221245e56a17a70bb10a3a97419) (dropped resets property. changed clocks and power-domains properties. added vsp device configuration) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 5cafc30605b3..023d69c2f869 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -1071,6 +1071,34 @@ status = "disabled"; }; + vsp@fe928000 { + compatible = "renesas,vsp1"; + reg = <0 0xfe928000 0 0x8000>; + interrupts = ; + clocks = <&mstp1_clks R8A7745_CLK_VSP1_SY>; + power-domains = <&cpg_clocks>; + + renesas,has-lut; + renesas,has-sru; + renesas,#rpf = <5>; + renesas,#uds = <1>; + renesas,#wpf = <4>; + }; + + vsp@fe930000 { + compatible = "renesas,vsp1"; + reg = <0 0xfe930000 0 0x8000>; + interrupts = ; + clocks = <&mstp1_clks R8A7745_CLK_VSP1DU0>; + power-domains = <&cpg_clocks>; + + renesas,has-lif; + renesas,has-lut; + renesas,#rpf = <4>; + renesas,#uds = <1>; + renesas,#wpf = <1>; + }; + du: display@feb00000 { compatible = "renesas,du-r8a7745"; reg = <0 0xfeb00000 0 0x40000>; From 616519a396da24e4b9b282b8463d9877e72a7a12 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 27 Jul 2018 17:27:15 +0100 Subject: [PATCH 0520/1149] ARM: dts: r8a7743: Fix vsp1 properties According to the RZ/G Series HW User's Manual (tables 28.1 and 28.3), VSP1S has 1 UDS and VSP1D has 1 WPF, therefore fix the DT properties accordingly and similarly to what done by commit 398e3d4f1e0baecb926315673a6740f2573b07ae ("[media] v4l: vsp1: Fix descriptions of Gen2 VSP instances") upstream. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7743.dtsi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index bb507a18afb9..c78de96bfc29 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -1632,7 +1632,7 @@ renesas,has-lut; renesas,has-sru; renesas,#rpf = <5>; - renesas,#uds = <3>; + renesas,#uds = <1>; renesas,#wpf = <4>; }; @@ -1647,7 +1647,7 @@ renesas,has-lut; renesas,#rpf = <4>; renesas,#uds = <1>; - renesas,#wpf = <4>; + renesas,#wpf = <1>; }; vsp@fe938000 { @@ -1661,7 +1661,7 @@ renesas,has-lut; renesas,#rpf = <4>; renesas,#uds = <1>; - renesas,#wpf = <4>; + renesas,#wpf = <1>; }; pci0: pci@ee090000 { From 34dfd46f3b84c6cf272cf222e7cb5b6f22ab03bc Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 27 Jul 2018 17:27:16 +0100 Subject: [PATCH 0521/1149] ARM: dts: r8a7791: Fix vsp1 properties According to the HW manual, VSP1S has 1 UDS and VSP1D has 1 WPF, therefore fix the DT properties accordingly and similarly to what done by commit 398e3d4f1e0baecb926315673a6740f2573b07ae ("[media] v4l: vsp1: Fix descriptions of Gen2 VSP instances") upstream. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7791.dtsi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi index d2585a4c6098..df9ab4d730cc 100644 --- a/arch/arm/boot/dts/r8a7791.dtsi +++ b/arch/arm/boot/dts/r8a7791.dtsi @@ -876,7 +876,7 @@ renesas,has-lut; renesas,has-sru; renesas,#rpf = <5>; - renesas,#uds = <3>; + renesas,#uds = <1>; renesas,#wpf = <4>; }; @@ -891,7 +891,7 @@ renesas,has-lut; renesas,#rpf = <4>; renesas,#uds = <1>; - renesas,#wpf = <4>; + renesas,#wpf = <1>; }; vsp1@fe938000 { @@ -905,7 +905,7 @@ renesas,has-lut; renesas,#rpf = <4>; renesas,#uds = <1>; - renesas,#wpf = <4>; + renesas,#wpf = <1>; }; du: display@feb00000 { From 0051fdb2b850c5f4baaa0260b07e30cb45349c14 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 10 Aug 2018 10:52:44 +0100 Subject: [PATCH 0522/1149] ASoC: rsnd: Refactor rsnd_src_probe() to allow backporting a fix This is a subset of the changes in commit adf6a6815952 "ASoC: rsnd: remove platform boot support from src.c" upstream. r8a7745 doesn't have clock "src.0" leaving a gap in the clock names. The fix for this was made upstream with commit de1965159a34 ("rcar: src: skip disabled-SRC nodes"). This patch prepares the context for the fix, however since it is applied to quite a different version of the file it has been reworked to support the replacing of for_each_rsnd_src with for_each_child_of_node loop. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das [bwh: Replace the upstream commit message with an explanation of what this subset of the changes does, mostly written by Fabrizio.] Signed-off-by: Ben Hutchings --- sound/soc/sh/rcar/src.c | 161 +++++++++++++--------------------------- 1 file changed, 52 insertions(+), 109 deletions(-) diff --git a/sound/soc/sh/rcar/src.c b/sound/soc/sh/rcar/src.c index 460d29cbaaa5..2fcd3d3be585 100644 --- a/sound/soc/sh/rcar/src.c +++ b/sound/soc/sh/rcar/src.c @@ -30,6 +30,7 @@ struct rsnd_src { #define RSND_SRC_NAME_SIZE 16 +#define rsnd_src_get(priv, id) ((struct rsnd_src *)(priv->src) + id) #define rsnd_src_nr(priv) ((priv)->src_nr) #define rsnd_enable_sync_convert(src) ((src)->sen.val) #define rsnd_src_of_node(priv) \ @@ -69,55 +70,6 @@ struct rsnd_src { * |-----------------| */ -/* - * How to use SRC bypass mode for debugging - * - * SRC has bypass mode, and it is useful for debugging. - * In Gen2 case, - * SRCm_MODE controls whether SRC is used or not - * SSI_MODE0 controls whether SSIU which receives SRC data - * is used or not. - * Both SRCm_MODE/SSI_MODE0 settings are needed if you use SRC, - * but SRC bypass mode needs SSI_MODE0 only. - * - * This driver request - * struct rsnd_src_platform_info { - * u32 convert_rate; - * int dma_id; - * } - * - * rsnd_src_convert_rate() indicates - * above convert_rate, and it controls - * whether SRC is used or not. - * - * ex) doesn't use SRC - * static struct rsnd_dai_platform_info rsnd_dai = { - * .playback = { .ssi = &rsnd_ssi[0], }, - * }; - * - * ex) uses SRC - * static struct rsnd_src_platform_info rsnd_src[] = { - * RSND_SCU(48000, 0), - * ... - * }; - * static struct rsnd_dai_platform_info rsnd_dai = { - * .playback = { .ssi = &rsnd_ssi[0], .src = &rsnd_src[0] }, - * }; - * - * ex) uses SRC bypass mode - * static struct rsnd_src_platform_info rsnd_src[] = { - * RSND_SCU(0, 0), - * ... - * }; - * static struct rsnd_dai_platform_info rsnd_dai = { - * .playback = { .ssi = &rsnd_ssi[0], .src = &rsnd_src[0] }, - * }; - * - */ - -/* - * Gen1/Gen2 common functions - */ static void rsnd_src_soft_reset(struct rsnd_mod *mod) { rsnd_mod_write(mod, SRC_SWRSR, 0); @@ -997,51 +949,7 @@ struct rsnd_mod *rsnd_src_mod_get(struct rsnd_priv *priv, int id) if (WARN_ON(id < 0 || id >= rsnd_src_nr(priv))) id = 0; - return rsnd_mod_get((struct rsnd_src *)(priv->src) + id); -} - -static void rsnd_of_parse_src(struct platform_device *pdev, - const struct rsnd_of_data *of_data, - struct rsnd_priv *priv) -{ - struct device_node *src_node; - struct device_node *np; - struct rcar_snd_info *info = rsnd_priv_to_info(priv); - struct rsnd_src_platform_info *src_info; - struct device *dev = &pdev->dev; - int nr, i; - - if (!of_data) - return; - - src_node = rsnd_src_of_node(priv); - if (!src_node) - return; - - nr = of_get_child_count(src_node); - if (!nr) - goto rsnd_of_parse_src_end; - - src_info = devm_kzalloc(dev, - sizeof(struct rsnd_src_platform_info) * nr, - GFP_KERNEL); - if (!src_info) { - dev_err(dev, "src info allocation error\n"); - goto rsnd_of_parse_src_end; - } - - info->src_info = src_info; - info->src_info_nr = nr; - - i = 0; - for_each_child_of_node(src_node, np) { - src_info[i].irq = irq_of_parse_and_map(np, 0); - - i++; - } - -rsnd_of_parse_src_end: - of_node_put(src_node); + return rsnd_mod_get(rsnd_src_get(priv, id)); } int rsnd_src_probe(struct platform_device *pdev, @@ -1049,6 +957,9 @@ int rsnd_src_probe(struct platform_device *pdev, struct rsnd_priv *priv) { struct rcar_snd_info *info = rsnd_priv_to_info(priv); + struct rsnd_src_platform_info *src_info; + struct device_node *node; + struct device_node *np; struct device *dev = rsnd_priv_to_dev(priv); struct rsnd_src *src; struct rsnd_mod_ops *ops; @@ -1068,38 +979,70 @@ int rsnd_src_probe(struct platform_device *pdev, return -EIO; } - rsnd_of_parse_src(pdev, of_data, priv); + node = rsnd_src_of_node(priv); + if (!node) + return 0; /* not used is not error */ - /* - * init SRC - */ - nr = info->src_info_nr; - if (!nr) - return 0; + nr = of_get_child_count(node); + if (!nr) { + ret = -EINVAL; + goto rsnd_src_probe_done; + } + + src_info = devm_kzalloc(dev, + sizeof(struct rsnd_src_platform_info) * nr, + GFP_KERNEL); + if (!src_info) { + ret = -ENOMEM; + goto rsnd_src_probe_done; + } + + info->src_info = src_info; + info->src_info_nr = nr; src = devm_kzalloc(dev, sizeof(*src) * nr, GFP_KERNEL); - if (!src) - return -ENOMEM; + if (!src) { + ret = -ENOMEM; + goto rsnd_src_probe_done; + } priv->src_nr = nr; priv->src = src; - for_each_rsnd_src(src, priv, i) { + i = 0; + for_each_child_of_node(node, np) { + src = rsnd_src_get(priv, i); + snprintf(name, RSND_SRC_NAME_SIZE, "%s.%d", SRC_NAME, i); + src_info[i].irq = irq_of_parse_and_map(np, 0); + if (!src_info[i].irq) { + ret = -EINVAL; + goto rsnd_src_probe_done; + } + clk = devm_clk_get(dev, name); - if (IS_ERR(clk)) - return PTR_ERR(clk); + if (IS_ERR(clk)) { + ret = PTR_ERR(clk); + goto rsnd_src_probe_done; + } - src->info = &info->src_info[i]; + src->info = &src_info[i]; ret = rsnd_mod_init(priv, rsnd_mod_get(src), ops, clk, RSND_MOD_SRC, i); if (ret) - return ret; + goto rsnd_src_probe_done; + + i++; } - return 0; + ret = 0; + +rsnd_src_probe_done: + of_node_put(node); + + return ret; } void rsnd_src_remove(struct platform_device *pdev, From 85144ca52aa57768e914bf5ba33c1fa8fa797c40 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Wed, 12 Sep 2018 19:24:54 +0100 Subject: [PATCH 0523/1149] CIP: Bump version suffix to -cip26 after Renesas patches Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 9e63432b2e14..027735f7691f 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip25 +-cip26 From f12e8145877dbcd337160fd7edac8023e7bfc54f Mon Sep 17 00:00:00 2001 From: Wei Yongjun Date: Thu, 18 Jan 2018 14:05:05 +0000 Subject: [PATCH 0524/1149] mtd: ubi: wl: Fix error return code in ubi_wl_init() commit 7233982ade15eeac05c6f351e8d347406e6bcd2f upstream. Fix to return error code -ENOMEM from the kmem_cache_alloc() error handling case instead of 0, as done elsewhere in this function. Fixes: f78e5623f45b ("ubi: fastmap: Erase outdated anchor PEBs during attach") Signed-off-by: Wei Yongjun Reviewed-by: Boris Brezillon Signed-off-by: Richard Weinberger Signed-off-by: Ben Hutchings --- drivers/mtd/ubi/wl.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/mtd/ubi/wl.c b/drivers/mtd/ubi/wl.c index b3c1b8106a68..f4b3ce2b2bc3 100644 --- a/drivers/mtd/ubi/wl.c +++ b/drivers/mtd/ubi/wl.c @@ -1597,8 +1597,10 @@ int ubi_wl_init(struct ubi_device *ubi, struct ubi_attach_info *ai) cond_resched(); e = kmem_cache_alloc(ubi_wl_entry_slab, GFP_KERNEL); - if (!e) + if (!e) { + err = -ENOMEM; goto out_free; + } e->pnum = aeb->pnum; e->ec = aeb->ec; @@ -1617,8 +1619,10 @@ int ubi_wl_init(struct ubi_device *ubi, struct ubi_attach_info *ai) cond_resched(); e = kmem_cache_alloc(ubi_wl_entry_slab, GFP_KERNEL); - if (!e) + if (!e) { + err = -ENOMEM; goto out_free; + } e->pnum = aeb->pnum; e->ec = aeb->ec; From d003d9bdb7cd1df74e9617af14e6f9d0ef8b25bd Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Fri, 7 Sep 2018 01:13:40 +0100 Subject: [PATCH 0525/1149] net: lan78xx: Fix misplaced tasklet_schedule() call Commit 136f55f66019 ("net: lan78xx: fix rx handling before first packet is send") was not correctly backported to 4.4. The call to tasklet_schedule() belongs in lan78xx_link_reset(). Fixes: d1fc12d8475c ("net: lan78xx: fix rx handling before first packet is send") Signed-off-by: Ben Hutchings Signed-off-by: Greg Kroah-Hartman --- drivers/net/usb/lan78xx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index acec4b565511..1aede726052c 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -902,6 +902,8 @@ static int lan78xx_link_reset(struct lan78xx_net *dev) ret = lan78xx_update_flowcontrol(dev, ecmd.duplex, ladv, radv); netif_carrier_on(dev->net); + + tasklet_schedule(&dev->bh); } return ret; @@ -1361,8 +1363,6 @@ static void lan78xx_init_mac_address(struct lan78xx_net *dev) netif_dbg(dev, ifup, dev->net, "MAC address set to random addr"); } - - tasklet_schedule(&dev->bh); } ret = lan78xx_write_reg(dev, MAF_LO(0), addr_lo); From 655878b8f90f671b5531bf6e0005b40c9b705869 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Mon, 24 Oct 2016 15:27:59 +1000 Subject: [PATCH 0526/1149] x86/io: add interface to reserve io memtype for a resource range. (v1.1) commit 8ef4227615e158faa4ee85a1d6466782f7e22f2f upstream. A recent change to the mm code in: 87744ab3832b mm: fix cache mode tracking in vm_insert_mixed() started enforcing checking the memory type against the registered list for amixed pfn insertion mappings. It happens that the drm drivers for a number of gpus relied on this being broken. Currently the driver only inserted VRAM mappings into the tracking table when they came from the kernel, and userspace mappings never landed in the table. This led to a regression where all the mapping end up as UC instead of WC now. I've considered a number of solutions but since this needs to be fixed in fixes and not next, and some of the solutions were going to introduce overhead that hadn't been there before I didn't consider them viable at this stage. These mainly concerned hooking into the TTM io reserve APIs, but these API have a bunch of fast paths I didn't want to unwind to add this to. The solution I've decided on is to add a new API like the arch_phys_wc APIs (these would have worked but wc_del didn't take a range), and use them from the drivers to add a WC compatible mapping to the table for all VRAM on those GPUs. This means we can then create userspace mapping that won't get degraded to UC. v1.1: use CONFIG_X86_PAT + add some comments in io.h Cc: Toshi Kani Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Andy Lutomirski Cc: Denys Vlasenko Cc: Brian Gerst Cc: x86@kernel.org Cc: mcgrof@suse.com Cc: Dan Williams Acked-by: Ingo Molnar Reviewed-by: Thomas Gleixner Signed-off-by: Dave Airlie Cc: Ben Hutchings Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- arch/x86/include/asm/io.h | 6 ++++++ arch/x86/mm/pat.c | 14 ++++++++++++++ include/linux/io.h | 22 ++++++++++++++++++++++ 3 files changed, 42 insertions(+) diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h index 9016b4b70375..6c5020163db0 100644 --- a/arch/x86/include/asm/io.h +++ b/arch/x86/include/asm/io.h @@ -351,4 +351,10 @@ extern void arch_phys_wc_del(int handle); #define arch_phys_wc_add arch_phys_wc_add #endif +#ifdef CONFIG_X86_PAT +extern int arch_io_reserve_memtype_wc(resource_size_t start, resource_size_t size); +extern void arch_io_free_memtype_wc(resource_size_t start, resource_size_t size); +#define arch_io_reserve_memtype_wc arch_io_reserve_memtype_wc +#endif + #endif /* _ASM_X86_IO_H */ diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c index 3146b1da6d72..5ff0cb74de55 100644 --- a/arch/x86/mm/pat.c +++ b/arch/x86/mm/pat.c @@ -726,6 +726,20 @@ void io_free_memtype(resource_size_t start, resource_size_t end) free_memtype(start, end); } +int arch_io_reserve_memtype_wc(resource_size_t start, resource_size_t size) +{ + enum page_cache_mode type = _PAGE_CACHE_MODE_WC; + + return io_reserve_memtype(start, start + size, &type); +} +EXPORT_SYMBOL(arch_io_reserve_memtype_wc); + +void arch_io_free_memtype_wc(resource_size_t start, resource_size_t size) +{ + io_free_memtype(start, start + size); +} +EXPORT_SYMBOL(arch_io_free_memtype_wc); + pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn, unsigned long size, pgprot_t vma_prot) { diff --git a/include/linux/io.h b/include/linux/io.h index de64c1e53612..8ab45611fc35 100644 --- a/include/linux/io.h +++ b/include/linux/io.h @@ -154,4 +154,26 @@ enum { void *memremap(resource_size_t offset, size_t size, unsigned long flags); void memunmap(void *addr); +/* + * On x86 PAT systems we have memory tracking that keeps track of + * the allowed mappings on memory ranges. This tracking works for + * all the in-kernel mapping APIs (ioremap*), but where the user + * wishes to map a range from a physical device into user memory + * the tracking won't be updated. This API is to be used by + * drivers which remap physical device pages into userspace, + * and wants to make sure they are mapped WC and not UC. + */ +#ifndef arch_io_reserve_memtype_wc +static inline int arch_io_reserve_memtype_wc(resource_size_t base, + resource_size_t size) +{ + return 0; +} + +static inline void arch_io_free_memtype_wc(resource_size_t base, + resource_size_t size) +{ +} +#endif + #endif /* _LINUX_IO_H */ From fa5e476d30baf4a232c657799d98c295187fbbc1 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Mon, 24 Oct 2016 15:37:48 +1000 Subject: [PATCH 0527/1149] drm/drivers: add support for using the arch wc mapping API. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit 7cf321d118a825c1541b43ca45294126fd474efa upstream. This fixes a regression in all these drivers since the cache mode tracking was fixed for mixed mappings. It uses the new arch API to add the VRAM range to the PAT mapping tracking tables. Fixes: 87744ab3832 (mm: fix cache mode tracking in vm_insert_mixed()) Reviewed-by: Christian König . Signed-off-by: Dave Airlie Cc: Ben Hutchings Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 5 +++++ drivers/gpu/drm/ast/ast_ttm.c | 6 ++++++ drivers/gpu/drm/cirrus/cirrus_ttm.c | 7 +++++++ drivers/gpu/drm/mgag200/mgag200_ttm.c | 7 +++++++ drivers/gpu/drm/nouveau/nouveau_ttm.c | 8 ++++++++ drivers/gpu/drm/radeon/radeon_object.c | 5 +++++ 6 files changed, 38 insertions(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index 73628c7599e7..3aca9a9011fb 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c @@ -492,6 +492,10 @@ void amdgpu_bo_force_delete(struct amdgpu_device *adev) int amdgpu_bo_init(struct amdgpu_device *adev) { + /* reserve PAT memory space to WC for VRAM */ + arch_io_reserve_memtype_wc(adev->mc.aper_base, + adev->mc.aper_size); + /* Add an MTRR for the VRAM */ adev->mc.vram_mtrr = arch_phys_wc_add(adev->mc.aper_base, adev->mc.aper_size); @@ -507,6 +511,7 @@ void amdgpu_bo_fini(struct amdgpu_device *adev) { amdgpu_ttm_fini(adev); arch_phys_wc_del(adev->mc.vram_mtrr); + arch_io_free_memtype_wc(adev->mc.aper_base, adev->mc.aper_size); } int amdgpu_bo_fbdev_mmap(struct amdgpu_bo *bo, diff --git a/drivers/gpu/drm/ast/ast_ttm.c b/drivers/gpu/drm/ast/ast_ttm.c index 08f82eae6939..ac12f74e6b32 100644 --- a/drivers/gpu/drm/ast/ast_ttm.c +++ b/drivers/gpu/drm/ast/ast_ttm.c @@ -275,6 +275,8 @@ int ast_mm_init(struct ast_private *ast) return ret; } + arch_io_reserve_memtype_wc(pci_resource_start(dev->pdev, 0), + pci_resource_len(dev->pdev, 0)); ast->fb_mtrr = arch_phys_wc_add(pci_resource_start(dev->pdev, 0), pci_resource_len(dev->pdev, 0)); @@ -283,11 +285,15 @@ int ast_mm_init(struct ast_private *ast) void ast_mm_fini(struct ast_private *ast) { + struct drm_device *dev = ast->dev; + ttm_bo_device_release(&ast->ttm.bdev); ast_ttm_global_release(ast); arch_phys_wc_del(ast->fb_mtrr); + arch_io_free_memtype_wc(pci_resource_start(dev->pdev, 0), + pci_resource_len(dev->pdev, 0)); } void ast_ttm_placement(struct ast_bo *bo, int domain) diff --git a/drivers/gpu/drm/cirrus/cirrus_ttm.c b/drivers/gpu/drm/cirrus/cirrus_ttm.c index dfffd528517a..393967025043 100644 --- a/drivers/gpu/drm/cirrus/cirrus_ttm.c +++ b/drivers/gpu/drm/cirrus/cirrus_ttm.c @@ -275,6 +275,9 @@ int cirrus_mm_init(struct cirrus_device *cirrus) return ret; } + arch_io_reserve_memtype_wc(pci_resource_start(dev->pdev, 0), + pci_resource_len(dev->pdev, 0)); + cirrus->fb_mtrr = arch_phys_wc_add(pci_resource_start(dev->pdev, 0), pci_resource_len(dev->pdev, 0)); @@ -284,6 +287,8 @@ int cirrus_mm_init(struct cirrus_device *cirrus) void cirrus_mm_fini(struct cirrus_device *cirrus) { + struct drm_device *dev = cirrus->dev; + if (!cirrus->mm_inited) return; @@ -293,6 +298,8 @@ void cirrus_mm_fini(struct cirrus_device *cirrus) arch_phys_wc_del(cirrus->fb_mtrr); cirrus->fb_mtrr = 0; + arch_io_free_memtype_wc(pci_resource_start(dev->pdev, 0), + pci_resource_len(dev->pdev, 0)); } void cirrus_ttm_placement(struct cirrus_bo *bo, int domain) diff --git a/drivers/gpu/drm/mgag200/mgag200_ttm.c b/drivers/gpu/drm/mgag200/mgag200_ttm.c index 05108b505fbf..d9df8d32fc35 100644 --- a/drivers/gpu/drm/mgag200/mgag200_ttm.c +++ b/drivers/gpu/drm/mgag200/mgag200_ttm.c @@ -274,6 +274,9 @@ int mgag200_mm_init(struct mga_device *mdev) return ret; } + arch_io_reserve_memtype_wc(pci_resource_start(dev->pdev, 0), + pci_resource_len(dev->pdev, 0)); + mdev->fb_mtrr = arch_phys_wc_add(pci_resource_start(dev->pdev, 0), pci_resource_len(dev->pdev, 0)); @@ -282,10 +285,14 @@ int mgag200_mm_init(struct mga_device *mdev) void mgag200_mm_fini(struct mga_device *mdev) { + struct drm_device *dev = mdev->dev; + ttm_bo_device_release(&mdev->ttm.bdev); mgag200_ttm_global_release(mdev); + arch_io_free_memtype_wc(pci_resource_start(dev->pdev, 0), + pci_resource_len(dev->pdev, 0)); arch_phys_wc_del(mdev->fb_mtrr); mdev->fb_mtrr = 0; } diff --git a/drivers/gpu/drm/nouveau/nouveau_ttm.c b/drivers/gpu/drm/nouveau/nouveau_ttm.c index d2e7d209f651..9835327a3214 100644 --- a/drivers/gpu/drm/nouveau/nouveau_ttm.c +++ b/drivers/gpu/drm/nouveau/nouveau_ttm.c @@ -397,6 +397,9 @@ nouveau_ttm_init(struct nouveau_drm *drm) /* VRAM init */ drm->gem.vram_available = drm->device.info.ram_user; + arch_io_reserve_memtype_wc(device->func->resource_addr(device, 1), + device->func->resource_size(device, 1)); + ret = ttm_bo_init_mm(&drm->ttm.bdev, TTM_PL_VRAM, drm->gem.vram_available >> PAGE_SHIFT); if (ret) { @@ -429,6 +432,8 @@ nouveau_ttm_init(struct nouveau_drm *drm) void nouveau_ttm_fini(struct nouveau_drm *drm) { + struct nvkm_device *device = nvxx_device(&drm->device); + ttm_bo_clean_mm(&drm->ttm.bdev, TTM_PL_VRAM); ttm_bo_clean_mm(&drm->ttm.bdev, TTM_PL_TT); @@ -438,4 +443,7 @@ nouveau_ttm_fini(struct nouveau_drm *drm) arch_phys_wc_del(drm->ttm.mtrr); drm->ttm.mtrr = 0; + arch_io_free_memtype_wc(device->func->resource_addr(device, 1), + device->func->resource_size(device, 1)); + } diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c index 83aee9e814ba..18ec38d0d3f5 100644 --- a/drivers/gpu/drm/radeon/radeon_object.c +++ b/drivers/gpu/drm/radeon/radeon_object.c @@ -447,6 +447,10 @@ void radeon_bo_force_delete(struct radeon_device *rdev) int radeon_bo_init(struct radeon_device *rdev) { + /* reserve PAT memory space to WC for VRAM */ + arch_io_reserve_memtype_wc(rdev->mc.aper_base, + rdev->mc.aper_size); + /* Add an MTRR for the VRAM */ if (!rdev->fastfb_working) { rdev->mc.vram_mtrr = arch_phys_wc_add(rdev->mc.aper_base, @@ -464,6 +468,7 @@ void radeon_bo_fini(struct radeon_device *rdev) { radeon_ttm_fini(rdev); arch_phys_wc_del(rdev->mc.vram_mtrr); + arch_io_free_memtype_wc(rdev->mc.aper_base, rdev->mc.aper_size); } /* Returns how many bytes TTM can move per IB. From 78ddb154ba4fd08dbf1ceeb94ffd00634171c9f1 Mon Sep 17 00:00:00 2001 From: Michal Hocko Date: Wed, 27 Jun 2018 17:46:50 +0200 Subject: [PATCH 0528/1149] x86/speculation/l1tf: Fix up pte->pfn conversion for PAE commit e14d7dfb41f5807a0c1c26a13f2b8ef16af24935 upstream. Jan has noticed that pte_pfn and co. resp. pfn_pte are incorrect for CONFIG_PAE because phys_addr_t is wider than unsigned long and so the pte_val reps. shift left would get truncated. Fix this up by using proper types. [Just one chunk, again, needed here. Thanks to Ben and Guenter for finding and fixing this. - gregkh] Fixes: 6b28baca9b1f ("x86/speculation/l1tf: Protect PROT_NONE PTEs against speculation") Reported-by: Jan Beulich Signed-off-by: Michal Hocko Signed-off-by: Thomas Gleixner Acked-by: Vlastimil Babka Cc: Guenter Roeck Cc: Ben Hutchings Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- arch/x86/include/asm/pgtable.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h index 68a55273ce0f..a67d7f210b7c 100644 --- a/arch/x86/include/asm/pgtable.h +++ b/arch/x86/include/asm/pgtable.h @@ -385,7 +385,7 @@ static inline pmd_t pfn_pmd(unsigned long page_nr, pgprot_t pgprot) static inline pud_t pfn_pud(unsigned long page_nr, pgprot_t pgprot) { - phys_addr_t pfn = page_nr << PAGE_SHIFT; + phys_addr_t pfn = (phys_addr_t)page_nr << PAGE_SHIFT; pfn ^= protnone_mask(pgprot_val(pgprot)); pfn &= PHYSICAL_PUD_PAGE_MASK; return __pud(pfn | massage_pgprot(pgprot)); From 066c9b0b93e2586f8bc30ea6005e475eede1c4be Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Wed, 12 Sep 2018 20:04:24 +0100 Subject: [PATCH 0529/1149] Revert "Smack: Mark inode instant in smack_task_to_inode" This reverts commit 091cb7dec89b1bbd4989a30f5ae9ab93248d2a93, which was commit 7b4e88434c4e7982fb053c49657e1c8bbb8692d9 upstream. The issue it is supposed to address was only introduced in Linux 4.18. Signed-off-by: Ben Hutchings --- security/smack/smack_lsm.c | 1 - 1 file changed, 1 deletion(-) diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c index c73361859d11..735a1a9386d6 100644 --- a/security/smack/smack_lsm.c +++ b/security/smack/smack_lsm.c @@ -2260,7 +2260,6 @@ static void smack_task_to_inode(struct task_struct *p, struct inode *inode) struct smack_known *skp = smk_of_task_struct(p); isp->smk_inode = skp; - isp->smk_flags |= SMK_INODE_INSTANT; } /* From 24fc584092a9ad8dab8a8a83d919aed8f1f29517 Mon Sep 17 00:00:00 2001 From: Alexey Kodanev Date: Thu, 23 Aug 2018 19:49:54 +0300 Subject: [PATCH 0530/1149] vti6: remove !skb->ignore_df check from vti6_xmit() commit 9f2895461439fda2801a7906fb4c5fb3dbb37a0a upstream. Before the commit d6990976af7c ("vti6: fix PMTU caching and reporting on xmit") '!skb->ignore_df' check was always true because the function skb_scrub_packet() was called before it, resetting ignore_df to zero. In the commit, skb_scrub_packet() was moved below, and now this check can be false for the packet, e.g. when sending it in the two fragments, this prevents successful PMTU updates in such case. The next attempts to send the packet lead to the same tx error. Moreover, vti6 initial MTU value relies on PMTU adjustments. This issue can be reproduced with the following LTP test script: udp_ipsec_vti.sh -6 -p ah -m tunnel -s 2000 Fixes: ccd740cbc6e0 ("vti6: Add pmtu handling to vti6_xmit.") Signed-off-by: Alexey Kodanev Acked-by: Steffen Klassert Signed-off-by: David S. Miller [bwh: Backported to 4.4: adjust context] Signed-off-by: Ben Hutchings --- net/ipv6/ip6_vti.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/ipv6/ip6_vti.c b/net/ipv6/ip6_vti.c index 6aca9a6b2303..60d4052d97a6 100644 --- a/net/ipv6/ip6_vti.c +++ b/net/ipv6/ip6_vti.c @@ -470,7 +470,7 @@ vti6_xmit(struct sk_buff *skb, struct net_device *dev, struct flowi *fl) } mtu = dst_mtu(dst); - if (!skb->ignore_df && skb->len > mtu) { + if (skb->len > mtu) { skb_dst(skb)->ops->update_pmtu(dst, NULL, skb, mtu); if (skb->protocol == htons(ETH_P_IPV6)) { From 98b5ccfcee60feb85f007c21619dd4fa1e235eef Mon Sep 17 00:00:00 2001 From: Govindarajulu Varadarajan Date: Mon, 30 Jul 2018 09:56:54 -0700 Subject: [PATCH 0531/1149] enic: do not call enic_change_mtu in enic_probe commit cb5c6568867325f9905e80c96531d963bec8e5ea upstream. In commit ab123fe071c9 ("enic: handle mtu change for vf properly") ASSERT_RTNL() is added to _enic_change_mtu() to prevent it from being called without rtnl held. enic_probe() calls enic_change_mtu() without rtnl held. At this point netdev is not registered yet. Remove call to enic_change_mtu and assign the mtu to netdev->mtu. Fixes: ab123fe071c9 ("enic: handle mtu change for vf properly") Signed-off-by: Govindarajulu Varadarajan Signed-off-by: David S. Miller [bwh: Backported to 4.4: adjust context] Signed-off-by: Ben Hutchings --- drivers/net/ethernet/cisco/enic/enic_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/cisco/enic/enic_main.c b/drivers/net/ethernet/cisco/enic/enic_main.c index 788a91482a90..3474d6497730 100644 --- a/drivers/net/ethernet/cisco/enic/enic_main.c +++ b/drivers/net/ethernet/cisco/enic/enic_main.c @@ -2682,7 +2682,6 @@ static int enic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) */ enic->port_mtu = enic->config.mtu; - (void)enic_change_mtu(netdev, enic->port_mtu); err = enic_set_mac_addr(netdev, enic->mac_addr); if (err) { @@ -2732,6 +2731,8 @@ static int enic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) netdev->priv_flags |= IFF_UNICAST_FLT; + netdev->mtu = enic->port_mtu; + err = register_netdev(netdev); if (err) { dev_err(dev, "Cannot register net device, aborting\n"); From b0786914501e7ada39731c4f698afc58ff287686 Mon Sep 17 00:00:00 2001 From: Jiri Slaby Date: Fri, 7 Sep 2018 11:13:07 +0200 Subject: [PATCH 0532/1149] x86/mm/pat: Fix L1TF stable backport for CPA, 2nd call Mostly recycling the commit log from adaba23ccd7d which fixed populate_pmd, but did not fix populate_pud. The same problem exists there. Stable trees reverted the following patch: Revert "x86/mm/pat: Ensure cpa->pfn only contains page frame numbers" This reverts commit 87e2bd898d3a79a8c609f183180adac47879a2a4 which is commit edc3b9129cecd0f0857112136f5b8b1bc1d45918 upstream. but the L1TF patch 02ff2769edbc backported here x86/mm/pat: Make set_memory_np() L1TF safe commit 958f79b9ee55dfaf00c8106ed1c22a2919e0028b upstream set_memory_np() is used to mark kernel mappings not present, but it has it's own open coded mechanism which does not have the L1TF protection of inverting the address bits. assumed that cpa->pfn contains a PFN. With the above patch reverted it does not, which causes the PUD to be set to an incorrect address shifted by 12 bits, which can cause various failures. Convert the address to a PFN before passing it to pud_pfn(). This is a 4.4 stable only patch to fix the L1TF patches backport there. Cc: stable@vger.kernel.org # 4.4-only Cc: Andi Kleen Signed-off-by: Jiri Slaby Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- arch/x86/mm/pageattr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c index 1007fa80f5a6..0e1dd7d47f05 100644 --- a/arch/x86/mm/pageattr.c +++ b/arch/x86/mm/pageattr.c @@ -1079,7 +1079,7 @@ static int populate_pud(struct cpa_data *cpa, unsigned long start, pgd_t *pgd, * Map everything starting from the Gb boundary, possibly with 1G pages */ while (end - start >= PUD_SIZE) { - set_pud(pud, pud_mkhuge(pfn_pud(cpa->pfn, + set_pud(pud, pud_mkhuge(pfn_pud(cpa->pfn >> PAGE_SHIFT, canon_pgprot(pud_pgprot)))); start += PUD_SIZE; From 19fe6caae1c7bcf125d8b775ca4cfe656806a23a Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Wed, 12 Sep 2018 20:58:17 +0100 Subject: [PATCH 0533/1149] CIP: Bump version suffix to -cip27 after merge from stable ...plus some related bug fixes. Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 027735f7691f..d5ae26e055e3 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip26 +-cip27 From 966601eb47bbab82cd5fd6c6f6d926c3cac1ab4b Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Fri, 10 Aug 2018 10:52:45 +0100 Subject: [PATCH 0534/1149] rcar: src: skip disabled-SRC nodes The current device tree representation of the R-Car Sample Rate Converters (SRC) assumes that they are numbered consecutively, starting from 0. Alas, this is not the case with the R8A7794 SoC where SRC0 isn't present. In order to keep the existing device trees working, I'm suggesting to use a disabled node for SRC0. Teach the SRC probe to just skip disabled nodes. Signed-off-by: Sergei Shtylyov Acked-by: Kuninori Morimoto Signed-off-by: Mark Brown (cherry picked from commit de1965159a34951a86267d13db4f2a67234139d3) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- sound/soc/sh/rcar/src.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sound/soc/sh/rcar/src.c b/sound/soc/sh/rcar/src.c index 2fcd3d3be585..68d46e1d95b8 100644 --- a/sound/soc/sh/rcar/src.c +++ b/sound/soc/sh/rcar/src.c @@ -1011,6 +1011,9 @@ int rsnd_src_probe(struct platform_device *pdev, i = 0; for_each_child_of_node(node, np) { + if (!of_device_is_available(np)) + goto skip; + src = rsnd_src_get(priv, i); snprintf(name, RSND_SRC_NAME_SIZE, "%s.%d", @@ -1034,6 +1037,7 @@ int rsnd_src_probe(struct platform_device *pdev, if (ret) goto rsnd_src_probe_done; +skip: i++; } From e6d6f4aadca3077bfa033d12a4bf105d9c3673c7 Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Fri, 10 Aug 2018 10:52:46 +0100 Subject: [PATCH 0535/1149] dmaengine: rcar-dmac: clear pertinence number of channels DMACHCLR clears each channels, but its channel number is based on its SoC or IP. Current driver is using fixed 0x7fff (= for 15ch), it is not good match for Gen3 or Gen2 Audio DMAC. This patch fixes it Signed-off-by: Kuninori Morimoto Acked-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Signed-off-by: Vinod Koul (cherry picked from commit 20c169aceb459575681c4f4578d0e312bd1436c1) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/dma/sh/rcar-dmac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c index 2b36d1c63aa5..115ddaa63188 100644 --- a/drivers/dma/sh/rcar-dmac.c +++ b/drivers/dma/sh/rcar-dmac.c @@ -413,7 +413,7 @@ static int rcar_dmac_init(struct rcar_dmac *dmac) u16 dmaor; /* Clear all channels and enable the DMAC globally. */ - rcar_dmac_write(dmac, RCAR_DMACHCLR, 0x7fff); + rcar_dmac_write(dmac, RCAR_DMACHCLR, GENMASK(dmac->n_channels - 1, 0)); rcar_dmac_write(dmac, RCAR_DMAOR, RCAR_DMAOR_PRI_FIXED | RCAR_DMAOR_DME); From 05736b5b1e0d1d8a1d96e5435e9f849f24cb80b6 Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Fri, 10 Aug 2018 10:52:47 +0100 Subject: [PATCH 0536/1149] dmaengine: rcar-dmac: use list_add() on rcar_dmac_desc_put() For each descriptor, in addition to the memory used by the descriptors structure itself, the driver allocates a list of chunks as well as a buffer for hardware descriptors. Descriptors themselves are preallocated, and allocation of the chunks and buffer is performed the first time the descriptor is used. The memory isn't freed when the transfer is completed, as the chunks and buffer will be needed again when the descriptor is reused internally, so the driver keeps the memory around. If only a few descriptors are used concurrently, the current list_add_tail() implementation will result in all preallocated descriptors being used before going back to the first one, and will thus allocate chunks and a buffer for all preallocated descriptors. Using list_add() will put the complete descriptor at the head of the list of available descriptors, so the next transfer will be more likely to reuse a descriptor that already has associated memory instead of one that has never been used before. Signed-off-by: Kuninori Morimoto Signed-off-by: Vinod Koul (cherry picked from commit 3565fe53334cd3f0d59ff5db0872de9370775a19) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/dma/sh/rcar-dmac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c index 115ddaa63188..a5f38fa3f2cd 100644 --- a/drivers/dma/sh/rcar-dmac.c +++ b/drivers/dma/sh/rcar-dmac.c @@ -510,7 +510,7 @@ static void rcar_dmac_desc_put(struct rcar_dmac_chan *chan, spin_lock_irqsave(&chan->lock, flags); list_splice_tail_init(&desc->chunks, &chan->desc.chunks_free); - list_add_tail(&desc->node, &chan->desc.free); + list_add(&desc->node, &chan->desc.free); spin_unlock_irqrestore(&chan->lock, flags); } From aeb308571793441f877006cab3e796266d50bf86 Mon Sep 17 00:00:00 2001 From: Muhammad Hamza Farooq Date: Fri, 10 Aug 2018 10:52:48 +0100 Subject: [PATCH 0537/1149] dmaengine: rcar-dmac: use result of updated get_residue in tx_status MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The hardware might have complete the transfer but the interrupt handler might not have had a chance to run. If rcar_dmac_chan_get_residue() which reads HW registers finds that there is no residue return DMA_COMPLETE. Signed-off-by: Muhammad Hamza Farooq Signed-off-by: Geert Uytterhoeven [Niklas: add explanation in commit message] Signed-off-by: Niklas Söderlund Acked-by: Laurent Pinchart Signed-off-by: Vinod Koul (cherry picked from commit 3544d2878817bd139dda238cdd86a15e1c03d037) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/dma/sh/rcar-dmac.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c index a5f38fa3f2cd..e465aaf620af 100644 --- a/drivers/dma/sh/rcar-dmac.c +++ b/drivers/dma/sh/rcar-dmac.c @@ -1202,6 +1202,10 @@ static enum dma_status rcar_dmac_tx_status(struct dma_chan *chan, residue = rcar_dmac_chan_get_residue(rchan, cookie); spin_unlock_irqrestore(&rchan->lock, flags); + /* if there's no residue, the cookie is complete */ + if (!residue) + return DMA_COMPLETE; + dma_set_residue(txstate, residue); return status; From 367b5bf277f64cd719c0432800517f190b11ef8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Date: Fri, 10 Aug 2018 10:52:49 +0100 Subject: [PATCH 0538/1149] dmaengine: rcar-dmac: warn if transfer cannot start as TE = 1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The documentation states one should make sure both DE and TE are cleared before starting a transaction. This patch extends the current warning to look at both DE and TE. Based on previous work from Muhammad Hamza Farooq. Suggested-by: Muhammad Hamza Farooq Signed-off-by: Niklas Söderlund Acked-by: Laurent Pinchart Signed-off-by: Vinod Koul (cherry picked from commit 0f78e3b58f5f99c991613db4477f893b53da5520) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/dma/sh/rcar-dmac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c index e465aaf620af..89592625033f 100644 --- a/drivers/dma/sh/rcar-dmac.c +++ b/drivers/dma/sh/rcar-dmac.c @@ -311,7 +311,7 @@ static bool rcar_dmac_chan_is_busy(struct rcar_dmac_chan *chan) { u32 chcr = rcar_dmac_chan_read(chan, RCAR_DMACHCR); - return (chcr & (RCAR_DMACHCR_DE | RCAR_DMACHCR_TE)) == RCAR_DMACHCR_DE; + return !!(chcr & (RCAR_DMACHCR_DE | RCAR_DMACHCR_TE)); } static void rcar_dmac_chan_start_xfer(struct rcar_dmac_chan *chan) From 7bf4f23a95eb194aecd1e6d3ed18cb163b877afc Mon Sep 17 00:00:00 2001 From: Muhammad Hamza Farooq Date: Fri, 10 Aug 2018 10:52:50 +0100 Subject: [PATCH 0539/1149] dmaengine: rcar-dmac: Fixed active descriptor initializing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Running descriptor pointer is set to NULL upon freeing resources. Other- wise, rcar_dmac_issue_pending might not start new transfers Signed-off-by: Muhammad Hamza Farooq Signed-off-by: Geert Uytterhoeven Signed-off-by: Niklas Söderlund Acked-by: Laurent Pinchart Signed-off-by: Vinod Koul (cherry picked from commit 48c73659abae103a2f8531f825ce7a3f8dedbb39) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/dma/sh/rcar-dmac.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c index 89592625033f..0ba6b8c02a28 100644 --- a/drivers/dma/sh/rcar-dmac.c +++ b/drivers/dma/sh/rcar-dmac.c @@ -990,6 +990,8 @@ static void rcar_dmac_free_chan_resources(struct dma_chan *chan) list_splice_init(&rchan->desc.done, &list); list_splice_init(&rchan->desc.wait, &list); + rchan->desc.running = NULL; + list_for_each_entry(desc, &list, node) rcar_dmac_realloc_hwdesc(rchan, desc, 0); From ec234aafd9580b9803c14e95b406a95ca164874e Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Fri, 10 Aug 2018 10:52:51 +0100 Subject: [PATCH 0540/1149] dmaengine: rcar-dmac: Fix residue reporting for pending descriptors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cookies corresponding to pending transfers have a residue value equal to the full size of the corresponding descriptor. The driver miscomputes that and uses the size of the active descriptor instead. Fix it. Reported-by: Geert Uytterhoeven Signed-off-by: Laurent Pinchart [geert: Also check desc.active list] Signed-off-by: Geert Uytterhoeven Signed-off-by: Niklas Söderlund Signed-off-by: Vinod Koul (cherry picked from commit 55bd582b4d8c2266bc43cbae2ddfce31b489618f) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/dma/sh/rcar-dmac.c | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c index 0ba6b8c02a28..7ad7b2fd6434 100644 --- a/drivers/dma/sh/rcar-dmac.c +++ b/drivers/dma/sh/rcar-dmac.c @@ -1145,19 +1145,46 @@ static unsigned int rcar_dmac_chan_get_residue(struct rcar_dmac_chan *chan, struct rcar_dmac_desc *desc = chan->desc.running; struct rcar_dmac_xfer_chunk *running = NULL; struct rcar_dmac_xfer_chunk *chunk; + enum dma_status status; unsigned int residue = 0; unsigned int dptr = 0; if (!desc) return 0; + /* + * If the cookie corresponds to a descriptor that has been completed + * there is no residue. The same check has already been performed by the + * caller but without holding the channel lock, so the descriptor could + * now be complete. + */ + status = dma_cookie_status(&chan->chan, cookie, NULL); + if (status == DMA_COMPLETE) + return 0; + /* * If the cookie doesn't correspond to the currently running transfer * then the descriptor hasn't been processed yet, and the residue is * equal to the full descriptor size. */ - if (cookie != desc->async_tx.cookie) - return desc->size; + if (cookie != desc->async_tx.cookie) { + list_for_each_entry(desc, &chan->desc.pending, node) { + if (cookie == desc->async_tx.cookie) + return desc->size; + } + list_for_each_entry(desc, &chan->desc.active, node) { + if (cookie == desc->async_tx.cookie) + return desc->size; + } + + /* + * No descriptor found for the cookie, there's thus no residue. + * This shouldn't happen if the calling driver passes a correct + * cookie value. + */ + WARN(1, "No descriptor for cookie!"); + return 0; + } /* * In descriptor mode the descriptor running pointer is not maintained From c963a27ed6bcfadef893a9ca01094a538be65ce0 Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Fri, 10 Aug 2018 10:52:52 +0100 Subject: [PATCH 0541/1149] dmaengine: rcar-dmac: ensure CHCR DE bit is actually 0 after clearing DMAC reads data from source device, and buffered it until transferable size for sink device. Because of this behavior, DMAC is including buffered data . Now, CHCR DE bit is controlling DMA transfer enable/disable. If DE bit was cleared during data transferring, or during buffering, it will flush buffered data if source device was peripheral device (The buffered data will be removed if source device was memory). Because of this behavior, driver should ensure that DE bit is actually 0 after clearing. This patch adds new rcar_dmac_chcr_de_barrier() and call it after CHCR register access. Signed-off-by: Kuninori Morimoto Tested-by: Hiroyuki Yokoyama Tested-by: Ryo Kodama Tested-by: Geert Uytterhoeven Signed-off-by: Vinod Koul (cherry picked from commit a8d46a7f5d17ca9cbe9e9c7d1d23dc6ea437e141) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/dma/sh/rcar-dmac.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c index 7ad7b2fd6434..15b9751dc30e 100644 --- a/drivers/dma/sh/rcar-dmac.c +++ b/drivers/dma/sh/rcar-dmac.c @@ -10,6 +10,7 @@ * published by the Free Software Foundation. */ +#include #include #include #include @@ -716,6 +717,24 @@ static int rcar_dmac_fill_hwdesc(struct rcar_dmac_chan *chan, /* ----------------------------------------------------------------------------- * Stop and reset */ +static void rcar_dmac_chcr_de_barrier(struct rcar_dmac_chan *chan) +{ + u32 chcr; + unsigned int i; + + /* + * Ensure that the setting of the DE bit is actually 0 after + * clearing it. + */ + for (i = 0; i < 1024; i++) { + chcr = rcar_dmac_chan_read(chan, RCAR_DMACHCR); + if (!(chcr & RCAR_DMACHCR_DE)) + return; + udelay(1); + } + + dev_err(chan->chan.device->dev, "CHCR DE check error\n"); +} static void rcar_dmac_chan_halt(struct rcar_dmac_chan *chan) { @@ -724,6 +743,7 @@ static void rcar_dmac_chan_halt(struct rcar_dmac_chan *chan) chcr &= ~(RCAR_DMACHCR_DSE | RCAR_DMACHCR_DSIE | RCAR_DMACHCR_IE | RCAR_DMACHCR_TE | RCAR_DMACHCR_DE); rcar_dmac_chan_write(chan, RCAR_DMACHCR, chcr); + rcar_dmac_chcr_de_barrier(chan); } static void rcar_dmac_chan_reinit(struct rcar_dmac_chan *chan) @@ -1373,6 +1393,8 @@ static irqreturn_t rcar_dmac_isr_channel(int irq, void *dev) if (chcr & RCAR_DMACHCR_TE) mask |= RCAR_DMACHCR_DE; rcar_dmac_chan_write(chan, RCAR_DMACHCR, chcr & ~mask); + if (mask & RCAR_DMACHCR_DE) + rcar_dmac_chcr_de_barrier(chan); if (chcr & RCAR_DMACHCR_DSE) ret |= rcar_dmac_isr_desc_stage_end(chan); From 485339ca55717d6766c590a9f3f3102db12f2d05 Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Fri, 10 Aug 2018 10:52:53 +0100 Subject: [PATCH 0542/1149] dmaengine: rcar-dmac: use TCRB instead of TCR for residue SYS/RT/Audio DMAC includes independent data buffers for reading and writing. Therefore, the read transfer counter and write transfer counter have different values. TCR indicates read counter, and TCRB indicates write counter. The relationship is like below. TCR TCRB [SOURCE] -> [DMAC] -> [SINK] In the MEM_TO_DEV direction, what really matters is how much data has been written to the device. If the DMA is interrupted between read and write, then, the data doesn't end up in the destination, so shouldn't be counted. TCRB is thus the register we should use in this cases. In the DEV_TO_MEM direction, the situation is more complex. Both the read and write side are important. What matters from a data consumer point of view is how much data has been written to memory. On the other hand, if the transfer is interrupted between read and write, we'll end up losing data. It can also be important to report. In the MEM_TO_MEM direction, what matters is of course how much data has been written to memory from data consumer point of view. Here, because read and write have independent data buffers, it will take a while for TCR and TCRB to become equal. Thus we should check TCRB in this case, too. Thus, all cases we should check TCRB instead of TCR. Without this patch, Sound Capture has noise after PulseAudio support (= 07b7acb51d2 ("ASoC: rsnd: update pointer more accurate")), because the recorder will use wrong residue counter which indicates transferred from sound device, but in reality the data was not yet put to memory and recorder will record it. However, because DMAC is buffering data until it can be transferable size, TCRB might not be updated. For example, if consumer doesn't know how much data can be received, it requests enough size to DMAC. But in reality, it might receive very few data. In such case, DMAC just buffered it until transferable size, and no TCRB updated. In such case, this buffered data will be transferred if CHCR::DE bit was cleared, and this is happen if rcar_dmac_chan_halt(). In other word, it happen when consumer called dmaengine_terminate_all(). Because of this behavior, it need to flush buffered data when it returns "residue" (= dmaengine_tx_status()). Otherwise, consumer might calculate wrong things if it called dmaengine_tx_status() and dmaengine_terminate_all() consecutively. Signed-off-by: Kuninori Morimoto Tested-by: Hiroyuki Yokoyama Tested-by: Ryo Kodama Tested-by: Geert Uytterhoeven Signed-off-by: Vinod Koul (cherry picked from commit 73a47bd0da668c99f04e9076f2b02101a5b2749b) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- drivers/dma/sh/rcar-dmac.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c index 15b9751dc30e..da0b9f786a58 100644 --- a/drivers/dma/sh/rcar-dmac.c +++ b/drivers/dma/sh/rcar-dmac.c @@ -736,6 +736,23 @@ static void rcar_dmac_chcr_de_barrier(struct rcar_dmac_chan *chan) dev_err(chan->chan.device->dev, "CHCR DE check error\n"); } +static void rcar_dmac_sync_tcr(struct rcar_dmac_chan *chan) +{ + u32 chcr = rcar_dmac_chan_read(chan, RCAR_DMACHCR); + + if (!(chcr & RCAR_DMACHCR_DE)) + return; + + /* set DE=0 and flush remaining data */ + rcar_dmac_chan_write(chan, RCAR_DMACHCR, (chcr & ~RCAR_DMACHCR_DE)); + + /* make sure all remaining data was flushed */ + rcar_dmac_chcr_de_barrier(chan); + + /* back DE */ + rcar_dmac_chan_write(chan, RCAR_DMACHCR, chcr); +} + static void rcar_dmac_chan_halt(struct rcar_dmac_chan *chan) { u32 chcr = rcar_dmac_chan_read(chan, RCAR_DMACHCR); @@ -1228,8 +1245,11 @@ static unsigned int rcar_dmac_chan_get_residue(struct rcar_dmac_chan *chan, residue += chunk->size; } + if (desc->direction == DMA_DEV_TO_MEM) + rcar_dmac_sync_tcr(chan); + /* Add the residue for the current chunk. */ - residue += rcar_dmac_chan_read(chan, RCAR_DMATCR) << desc->xfer_shift; + residue += rcar_dmac_chan_read(chan, RCAR_DMATCRB) << desc->xfer_shift; return residue; } From 0734263bf083cef68eed978e7ae894c10c676c0a Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 10 Aug 2018 10:52:54 +0100 Subject: [PATCH 0543/1149] ARM: dts: r8a7745: Add audio clocks Describe the external audio clocks required by the sound driver. Boards that provide audio clocks need to override the clock frequencies. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 44da63157d86b5ca5c4dec2b160bdeb71c6bd48e) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 023d69c2f869..92ef368f3ced 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -34,6 +34,27 @@ vin1 = &vin1; }; + /* + * The external audio clocks are configured as 0 Hz fixed + * frequency clocks by default. Boards that provide audio + * clocks should override them. + */ + audio_clka: audio_clka { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <0>; + }; + audio_clkb: audio_clkb { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <0>; + }; + audio_clkc: audio_clkc { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <0>; + }; + /* External CAN clock */ can_clk: can { compatible = "fixed-clock"; From b35db483469e6b1630f4928ccdca62ae7a369318 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 10 Aug 2018 10:52:55 +0100 Subject: [PATCH 0544/1149] ARM: dts: r8a7745: Add audio DMAC support Instantiate the audio DMA controller on the r8a7745 device tree. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit a14a05c2f32143431615116f94cf455727cce235) (modified clocks and power-domains properties. removed resets property) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 92ef368f3ced..6c02b62423a5 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -935,6 +935,36 @@ status = "disabled"; }; + audma0: dma-controller@ec700000 { + compatible = "renesas,dmac-r8a7745", + "renesas,rcar-dmac"; + reg = <0 0xec700000 0 0x10000>; + interrupts = ; + interrupt-names = "error", + "ch0", "ch1", "ch2", "ch3", + "ch4", "ch5", "ch6", "ch7", + "ch8", "ch9", "ch10", "ch11", + "ch12"; + clocks = <&mstp5_clks R8A7745_CLK_AUDIO_DMAC0>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <13>; + }; + pci0: pci@ee090000 { compatible = "renesas,pci-r8a7745", "renesas,pci-rcar-gen2"; From a8bbfaa4c0c00ac2557b53b350f8abe772b659b5 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 10 Aug 2018 10:52:56 +0100 Subject: [PATCH 0545/1149] ARM: dts: r8a7745: Add sound support Define the generic r8a7745(RZ/G1E) part of the sound device node. This patch is based on the r8a7794 sound work by Sergei Shtylyov. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 17d2e479d09e597c9915f0ab853edfa8f5010476) (modified clocks and power-domains properties. Removed resets and reset-names properties. Also changed rcar_sound,module children names (e.g. from ssi-0 to ssi@0) to make them similar to other R-Car Gen2 devices in 4.4) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745.dtsi | 171 +++++++++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 6c02b62423a5..69b383c22776 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -935,6 +935,177 @@ status = "disabled"; }; + rcar_sound: sound@ec500000 { + /* + * #sound-dai-cells is required + * + * Single DAI : #sound-dai-cells = <0>; <&rcar_sound>; + * Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>; + */ + compatible = "renesas,rcar_sound-r8a7745", + "renesas,rcar_sound-gen2"; + reg = <0 0xec500000 0 0x1000>, /* SCU */ + <0 0xec5a0000 0 0x100>, /* ADG */ + <0 0xec540000 0 0x1000>, /* SSIU */ + <0 0xec541000 0 0x280>, /* SSI */ + <0 0xec740000 0 0x200>; /* Audio DMAC peri peri */ + reg-names = "scu", "adg", "ssiu", "ssi", "audmapp"; + + clocks = <&mstp10_clks R8A7745_CLK_SSI_ALL>, + <&mstp10_clks R8A7745_CLK_SSI9>, <&mstp10_clks R8A7745_CLK_SSI8>, + <&mstp10_clks R8A7745_CLK_SSI7>, <&mstp10_clks R8A7745_CLK_SSI6>, + <&mstp10_clks R8A7745_CLK_SSI5>, <&mstp10_clks R8A7745_CLK_SSI4>, + <&mstp10_clks R8A7745_CLK_SSI3>, <&mstp10_clks R8A7745_CLK_SSI2>, + <&mstp10_clks R8A7745_CLK_SSI1>, <&mstp10_clks R8A7745_CLK_SSI0>, + <&mstp10_clks R8A7745_CLK_SCU_SRC6>, <&mstp10_clks R8A7745_CLK_SCU_SRC5>, + <&mstp10_clks R8A7745_CLK_SCU_SRC4>, <&mstp10_clks R8A7745_CLK_SCU_SRC3>, + <&mstp10_clks R8A7745_CLK_SCU_SRC2>, <&mstp10_clks R8A7745_CLK_SCU_SRC1>, + <&mstp10_clks R8A7745_CLK_SCU_CTU0_MIX0>, <&mstp10_clks R8A7745_CLK_SCU_CTU1_MIX1>, + <&mstp10_clks R8A7745_CLK_SCU_CTU0_MIX0>, <&mstp10_clks R8A7745_CLK_SCU_CTU1_MIX1>, + <&mstp10_clks R8A7745_CLK_SCU_DVC0>, <&mstp10_clks R8A7745_CLK_SCU_DVC1>, + <&audio_clka>, <&audio_clkb>, <&audio_clkc>, + <&m2_clk>; + clock-names = "ssi-all", + "ssi.9", "ssi.8", "ssi.7", "ssi.6", + "ssi.5", "ssi.4", "ssi.3", "ssi.2", + "ssi.1", "ssi.0", + "src.6", "src.5", "src.4", "src.3", + "src.2", "src.1", + "ctu.0", "ctu.1", + "mix.0", "mix.1", + "dvc.0", "dvc.1", + "clk_a", "clk_b", "clk_c", "clk_i"; + power-domains = <&cpg_clocks>; + + status = "disabled"; + + rcar_sound,dvc { + dvc0: dvc@0 { + dmas = <&audma0 0xbc>; + dma-names = "tx"; + }; + dvc1: dvc@1 { + dmas = <&audma0 0xbe>; + dma-names = "tx"; + }; + }; + + rcar_sound,mix { + mix0: mix@0 { }; + mix1: mix@1 { }; + }; + + rcar_sound,ctu { + ctu00: ctu@0 { }; + ctu01: ctu@1 { }; + ctu02: ctu@2 { }; + ctu03: ctu@3 { }; + ctu10: ctu@4 { }; + ctu11: ctu@5 { }; + ctu12: ctu@6 { }; + ctu13: ctu@7 { }; + }; + + rcar_sound,src { + src@0 { + status = "disabled"; + }; + src1: src@1 { + interrupts = ; + dmas = <&audma0 0x87>, <&audma0 0x9c>; + dma-names = "rx", "tx"; + }; + src2: src@2 { + interrupts = ; + dmas = <&audma0 0x89>, <&audma0 0x9e>; + dma-names = "rx", "tx"; + }; + src3: src@3 { + interrupts = ; + dmas = <&audma0 0x8b>, <&audma0 0xa0>; + dma-names = "rx", "tx"; + }; + src4: src@4 { + interrupts = ; + dmas = <&audma0 0x8d>, <&audma0 0xb0>; + dma-names = "rx", "tx"; + }; + src5: src@5 { + interrupts = ; + dmas = <&audma0 0x8f>, <&audma0 0xb2>; + dma-names = "rx", "tx"; + }; + src6: src@6 { + interrupts = ; + dmas = <&audma0 0x91>, <&audma0 0xb4>; + dma-names = "rx", "tx"; + }; + }; + + rcar_sound,ssi { + ssi0: ssi@0 { + interrupts = ; + dmas = <&audma0 0x01>, <&audma0 0x02>, + <&audma0 0x15>, <&audma0 0x16>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi1: ssi@1 { + interrupts = ; + dmas = <&audma0 0x03>, <&audma0 0x04>, + <&audma0 0x49>, <&audma0 0x4a>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi2: ssi@2 { + interrupts = ; + dmas = <&audma0 0x05>, <&audma0 0x06>, + <&audma0 0x63>, <&audma0 0x64>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi3: ssi@3 { + interrupts = ; + dmas = <&audma0 0x07>, <&audma0 0x08>, + <&audma0 0x6f>, <&audma0 0x70>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi4: ssi@4 { + interrupts = ; + dmas = <&audma0 0x09>, <&audma0 0x0a>, + <&audma0 0x71>, <&audma0 0x72>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi5: ssi@5 { + interrupts = ; + dmas = <&audma0 0x0b>, <&audma0 0x0c>, + <&audma0 0x73>, <&audma0 0x74>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi6: ssi@6 { + interrupts = ; + dmas = <&audma0 0x0d>, <&audma0 0x0e>, + <&audma0 0x75>, <&audma0 0x76>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi7: ssi@7 { + interrupts = ; + dmas = <&audma0 0x0f>, <&audma0 0x10>, + <&audma0 0x79>, <&audma0 0x7a>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi8: ssi@8 { + interrupts = ; + dmas = <&audma0 0x11>, <&audma0 0x12>, + <&audma0 0x7b>, <&audma0 0x7c>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi9: ssi@9 { + interrupts = ; + dmas = <&audma0 0x13>, <&audma0 0x14>, + <&audma0 0x7d>, <&audma0 0x7e>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + }; + }; + audma0: dma-controller@ec700000 { compatible = "renesas,dmac-r8a7745", "renesas,rcar-dmac"; From f5a2384a275d3a41c11b00d99f1b2e90ab76be06 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 10 Aug 2018 10:52:57 +0100 Subject: [PATCH 0546/1149] ARM: dts: iwg22d-sodimm: Enable SGTL5000 audio codec This patch enables SGTL5000 audio codec on the carrier board. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (cherry picked from commit 55e37da0309a2237cc8f14a43ba04b2fd2083c1c) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts | 28 +++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts index 14865653a956..21e484fde88d 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts @@ -26,6 +26,12 @@ stdout-path = "serial3:115200n8"; }; + audio_clock: audio_clock { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <26000000>; + }; + vccq_sdhi0: regulator-vccq-sdhi0 { compatible = "regulator-gpio"; @@ -55,6 +61,23 @@ status = "okay"; }; +&i2c5 { + pinctrl-0 = <&i2c5_pins>; + pinctrl-names = "default"; + + status = "okay"; + clock-frequency = <400000>; + + sgtl5000: codec@a { + compatible = "fsl,sgtl5000"; + #sound-dai-cells = <0>; + reg = <0x0a>; + clocks = <&audio_clock>; + VDDA-supply = <®_3p3v>; + VDDIO-supply = <®_3p3v>; + }; +}; + &pfc { can0_pins: can0 { groups = "can0_data"; @@ -66,6 +89,11 @@ function = "hscif1"; }; + i2c5_pins: i2c5 { + groups = "i2c5_b"; + function = "i2c5"; + }; + scif4_pins: scif4 { groups = "scif4_data_b"; function = "scif4"; From fd96dc9dc04a45b5574aa86fc00e132bb5f79e61 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 10 Aug 2018 10:52:58 +0100 Subject: [PATCH 0547/1149] ARM: dts: iwg22d-sodimm: Sound PIO support Enable sound PIO support on carrier board. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit 3838ef590119420031ad2a51ea19a9be2ea9acef) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts | 46 +++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts index 21e484fde88d..8ec45a3ef947 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts @@ -32,6 +32,21 @@ clock-frequency = <26000000>; }; + rsnd_sgtl5000: sound { + compatible = "simple-audio-card"; + simple-audio-card,format = "i2s"; + simple-audio-card,bitclock-master = <&sndcodec>; + simple-audio-card,frame-master = <&sndcodec>; + + sndcpu: simple-audio-card,cpu { + sound-dai = <&rcar_sound>; + }; + + sndcodec: simple-audio-card,codec { + sound-dai = <&sgtl5000>; + }; + }; + vccq_sdhi0: regulator-vccq-sdhi0 { compatible = "regulator-gpio"; @@ -110,6 +125,11 @@ power-source = <3300>; }; + sound_pins: sound { + groups = "ssi34_ctrl", "ssi3_data", "ssi4_data"; + function = "ssi"; + }; + usb0_pins: usb0 { groups = "usb0"; function = "usb0"; @@ -121,6 +141,23 @@ }; }; +&rcar_sound { + pinctrl-0 = <&sound_pins>; + pinctrl-names = "default"; + status = "okay"; + + /* Single DAI */ + + #sound-dai-cells = <0>; + + rcar_sound,dai { + dai0 { + playback = <&ssi3>; + capture = <&ssi4>; + }; + }; +}; + &scif4 { pinctrl-0 = <&scif4_pins>; pinctrl-names = "default"; @@ -169,6 +206,15 @@ pinctrl-names = "default"; }; +&ssi3 { + pio-transfer; +}; + +&ssi4 { + pio-transfer; + shared-pin; +}; + &usbphy { status = "okay"; }; From 3f2f87db81f7dabb8067f487ed711ff5fb9614a4 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 10 Aug 2018 10:52:59 +0100 Subject: [PATCH 0548/1149] ARM: dts: iwg22d-sodimm: Sound DMA support on DTS DMA transfer to/from SSI DMA [MEM] -> [SSI] DMA [MEM] <- [SSI] Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit b3f36c455ccce0acd33b6d055dead4396a1b1b43) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts index 8ec45a3ef947..665fb8f77b9a 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts @@ -207,11 +207,11 @@ }; &ssi3 { - pio-transfer; + no-busif; }; &ssi4 { - pio-transfer; + no-busif; shared-pin; }; From e7b41ab8b71f46d1bf2646e730844ab63c2aadb5 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 10 Aug 2018 10:53:00 +0100 Subject: [PATCH 0549/1149] ARM: dts: iwg22d-sodimm: Sound DMA support via BUSIF on DTS DMA transfer to/from SSIU DMA [MEM] -> [SSIU] -> [SSI] DMA [MEM] <- [SSIU] <- [SSI] Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit 996d68a1f4fd6f95ab340d84871cbdcb34bc74f4) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts index 665fb8f77b9a..0923d79f0f0e 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts @@ -206,12 +206,7 @@ pinctrl-names = "default"; }; -&ssi3 { - no-busif; -}; - &ssi4 { - no-busif; shared-pin; }; From f430525031432193b600965d0405f766c73523e5 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 10 Aug 2018 10:53:01 +0100 Subject: [PATCH 0550/1149] ARM: dts: iwg22d-sodimm: Sound DMA support via SRC on DTS DMA transfer to/from SRC DMA DMApp [MEM] -> [SRC] -> [SSIU] -> [SSI] DMA DMApp [MEM] <- [SRC] <- [SSIU] <- [SSI] Current sound driver is supporting SSI/SRC random connection. So, this patch is trying SSI3 -> SRC3 SSI4 <- SRC4 Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit 5ce5faa6fcf8b643ab91f48b972fd850f33d8f57) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts index 0923d79f0f0e..22cacb194bf6 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts @@ -152,8 +152,8 @@ rcar_sound,dai { dai0 { - playback = <&ssi3>; - capture = <&ssi4>; + playback = <&ssi3 &src3>; + capture = <&ssi4 &src4>; }; }; }; From 5745eda031829fa3917adccb4d4be537de8c056f Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 10 Aug 2018 10:53:02 +0100 Subject: [PATCH 0551/1149] ARM: dts: iwg22d-sodimm: Sound DMA support via DVC on DTS DMA transfer uses DVC DMA DMApp [MEM] -> [SRC] -> [DVC] -> [SSIU] -> [SSI] DMA DMApp [MEM] <- [DVC] <- [SRC] <- [SSIU] <- [SSI] Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman (cherry picked from commit 6f41d5e0872e4b55a5352ff79ab2452bff306753) Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ben Hutchings --- arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts | 27 +++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts index 22cacb194bf6..94e9088f6b40 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts @@ -8,6 +8,29 @@ * kind, whether express or implied. */ +/* + * SSI-SGTL5000 + * + * This command is required when Playback/Capture + * + * amixer set "DVC Out" 100% + * amixer set "DVC In" 100% + * + * You can use Mute + * + * amixer set "DVC Out Mute" on + * amixer set "DVC In Mute" on + * + * You can use Volume Ramp + * + * amixer set "DVC Out Ramp Up Rate" "0.125 dB/64 steps" + * amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps" + * amixer set "DVC Out Ramp" on + * aplay xxx.wav & + * amixer set "DVC Out" 80% // Volume Down + * amixer set "DVC Out" 100% // Volume Up + */ + /dts-v1/; #include "r8a7745-iwg22m.dtsi" @@ -152,8 +175,8 @@ rcar_sound,dai { dai0 { - playback = <&ssi3 &src3>; - capture = <&ssi4 &src4>; + playback = <&ssi3 &src3 &dvc0>; + capture = <&ssi4 &src4 &dvc1>; }; }; }; From 5dcb70a7e56e2c00e1c8ca593c61e378cef22f51 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Wed, 12 Sep 2018 21:18:24 +0100 Subject: [PATCH 0552/1149] CIP: Bump version suffix to -cip28 after Renesas patches Signed-off-by: Ben Hutchings --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index d5ae26e055e3..72a88e3f804e 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip27 +-cip28 From d9b2d1b455c0a84484a680df0d3c6211d2907587 Mon Sep 17 00:00:00 2001 From: Viresh Kumar Date: Thu, 11 Oct 2018 21:40:03 +0100 Subject: [PATCH 0553/1149] ARM: dts: r8a77(43|9[013]): Add missing OPP properties for CPUs commit 8199e49ff1f654bbe8bed90fd6710bc097a89d02 upstream. The OPP properties, like "operating-points", should either be present for all the CPUs of a cluster or none. If these are present only for a subset of CPUs of a cluster then things will start falling apart as soon as the CPUs are brought online in a different order. For example, this will happen because the operating system looks for such properties in the CPU node it is trying to bring up, so that it can create an OPP table. Add such missing properties. Fix other missing properties (like, clock latency, voltage tolerance, etc) as well to make it all work. Signed-off-by: Viresh Kumar Reviewed-by: Simon Horman Signed-off-by: Simon Horman [Backport to CIP: dropped changes to r8a779[013] SoCs dtsi] Signed-off-by: Patryk Mungai Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7743.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index c78de96bfc29..f41e3a5cdf9c 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -66,7 +66,16 @@ reg = <1>; clock-frequency = <1500000000>; clocks = <&cpg_clocks R8A7743_CLK_Z>; + clock-latency = <300000>; /* 300 us */ next-level-cache = <&L2_CA15>; + + /* kHz - uV - OPPs unknown yet */ + operating-points = <1500000 1000000>, + <1312500 1000000>, + <1125000 1000000>, + < 937500 1000000>, + < 750000 1000000>, + < 375000 1000000>; }; L2_CA15: cache-controller-0 { From 637d850f34aec96aff06094fd55ebdf62ac7dbe5 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Tue, 23 Oct 2018 15:30:34 +0100 Subject: [PATCH 0554/1149] ARM: dts: r8a7745: Add PMU device node Commit 9562a6b1d0f6a287f5dda16a4538526c59408927 upstream. Enable support for the ARM Performance Monitor Units in the Cortex-A7 CPU cores on RZ/G1E by adding a device node for the PMU. New Linux output: hw perfevents: enabled with armv7_cortex_a7 PMU driver, 5 counters available Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Patryk Mungai Reviewed-by: Chris Paterson Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7745.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 69b383c22776..54b556b34663 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -93,6 +93,13 @@ }; }; + pmu { + compatible = "arm,cortex-a7-pmu"; + interrupts-extended = <&gic GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>, + <&gic GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; + interrupt-affinity = <&cpu0>, <&cpu1>; + }; + soc { compatible = "simple-bus"; interrupt-parent = <&gic>; From 39e56df43d86c4ec9ac9e24c68a6a5fce1567b0e Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Tue, 23 Oct 2018 15:30:35 +0100 Subject: [PATCH 0555/1149] ARM: dts: r8a7743: Add PMU device node Commit fe60e933b053f00e53cd01fe323f25ebe8fecd52 upstream. Enable support for the ARM Performance Monitor Units in the Cortex-A15 CPU cores on RZ/G1M by adding a device node for the PMU. New Linux output: hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counters available Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Patryk Mungai Reviewed-by: Chris Paterson Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7743.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index f41e3a5cdf9c..9ea92a367e86 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -85,6 +85,13 @@ }; }; + pmu { + compatible = "arm,cortex-a15-pmu"; + interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, + <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; + interrupt-affinity = <&cpu0>, <&cpu1>; + }; + soc { compatible = "simple-bus"; interrupt-parent = <&gic>; From 61da56556468a309e03e244c24ee3007fa74c13c Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Mon, 10 Dec 2018 11:25:06 +0100 Subject: [PATCH 0556/1149] ARM: dts: socfpga: Rename socfpga_cyclone5_de0_{sockit, nano_soc} Rename DT source for DE0 Nano SoC . The board name is really DE0-Nano-SoC or Atlas SoC, and it is not to be confused with SoCkit board, which is a different one. Rename the DT source file to match the board name and to avoid this possible mixup with another different board. Upstream commit 202eb5481421040e115526b75317b5ca72584806 This commit is needed because it aligns the device tree name of U-Boot and kernel which helps distro boot procedures (fdtfile as set by U-Boot will match the kernel-provided dtb). Signed-off-by: Marek Vasut Cc: Dinh Nguyen Cc: Jan Kiszka Signed-off-by: Jan Kiszka Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/Makefile | 2 +- ...yclone5_de0_sockit.dts => socfpga_cyclone5_de0_nano_soc.dts} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename arch/arm/boot/dts/{socfpga_cyclone5_de0_sockit.dts => socfpga_cyclone5_de0_nano_soc.dts} (100%) diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index e0a0deaacd48..9871a7f0f92a 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -562,7 +562,7 @@ dtb-$(CONFIG_ARCH_SOCFPGA) += \ socfpga_arria5_socdk.dtb \ socfpga_arria10_socdk_sdmmc.dtb \ socfpga_cyclone5_socdk.dtb \ - socfpga_cyclone5_de0_sockit.dtb \ + socfpga_cyclone5_de0_nano_soc.dtb \ socfpga_cyclone5_sockit.dtb \ socfpga_cyclone5_socrates.dtb \ socfpga_vt.dtb diff --git a/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts b/arch/arm/boot/dts/socfpga_cyclone5_de0_nano_soc.dts similarity index 100% rename from arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts rename to arch/arm/boot/dts/socfpga_cyclone5_de0_nano_soc.dts From af3adf9f9c633ac0e1d68487d7fad22285dda8a3 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Fri, 14 Dec 2018 19:10:29 +0900 Subject: [PATCH 0557/1149] CIP: Bump version suffix to -cip29 after after Renesas patches and socfpga patch Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 72a88e3f804e..b490dc193d55 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip28 +-cip29 From 1facd44c9fea0c4672e34e71aec2bc3da21156ba Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Thu, 31 Jan 2019 20:16:47 +0900 Subject: [PATCH 0558/1149] CIP: Bump version suffix to -cip30 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index b490dc193d55..12b299ced156 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip29 +-cip30 From 5cbc4325387063f3b0baa6a14689554cb2dc8705 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Thu, 28 Mar 2019 18:27:45 +0900 Subject: [PATCH 0559/1149] CIP: Bump version suffix to -cip31 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 12b299ced156..084dccfb1c64 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip30 +-cip31 From b33bd2218199383a45bbbc285cf944f03d981dea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= Date: Thu, 25 Apr 2019 14:28:17 +0100 Subject: [PATCH 0560/1149] net: ipconfig: Support using "delayed" DHCP replies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit 2647cffb2bc6fbed163d377390eb7ca552c7c1cb upstream. The dhcp code only waits 1s between sending DHCP requests on different devices and only accepts an answer for the device that sent out the last request. Only the timeout at the end of a loop is increased iteratively which favours only the last device. This makes it impossible to work with a dhcp server that takes little more than 1s connected to a device that is not the last one. Instead of also increasing the inter-device timeout, teach the code to handle delayed replies. To accomplish that, make *ic_dev track the current ic_device instead of the current net_device and adapt all users accordingly. The relevant change then is to reset d to ic_dev on a reply to assert that the followup request goes through the right device. Signed-off-by: Uwe Kleine-König Signed-off-by: David S. Miller [Patryk: Backported to 4.4: replaced DBG function with pr_debug squashed upstream commits: e068853409aa17208e94f4ca628005cc6f51e043 9c706a49d660653625d206f6972541c1f60ea2b0 d2d371ae5dd6af9a6a3d7f50b753627c42868409 1ae292a2457cd692828da2be87cb967260993ad0] Signed-off-by: Patryk Mungai Signed-off-by: Pavel Machek --- net/ipv4/ipconfig.c | 61 +++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 33 deletions(-) diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c index 60f564db25a3..ca658af61efe 100644 --- a/net/ipv4/ipconfig.c +++ b/net/ipv4/ipconfig.c @@ -94,7 +94,6 @@ /* Define the timeout for waiting for a DHCP/BOOTP/RARP reply */ #define CONF_OPEN_RETRIES 2 /* (Re)open devices twice */ #define CONF_SEND_RETRIES 6 /* Send six requests per open */ -#define CONF_INTER_TIMEOUT (HZ) /* Inter-device timeout: 1 second */ #define CONF_BASE_TIMEOUT (HZ*2) /* Initial timeout: 2 seconds */ #define CONF_TIMEOUT_RANDOM (HZ) /* Maximum amount of randomization */ #define CONF_TIMEOUT_MULT *7/4 /* Rate of timeout growth */ @@ -195,7 +194,7 @@ struct ic_device { }; static struct ic_device *ic_first_dev __initdata; /* List of open device */ -static struct net_device *ic_dev __initdata; /* Selected device */ +static struct ic_device *ic_dev __initdata; /* Selected device */ static bool __init ic_is_init_dev(struct net_device *dev) { @@ -314,8 +313,8 @@ static void __init ic_close_devs(void) while ((d = next)) { next = d->next; dev = d->dev; - if (dev != ic_dev && !netdev_uses_dsa(dev)) { - DBG(("IP-Config: Downing %s\n", dev->name)); + if ((!ic_dev || dev != ic_dev->dev) && !netdev_uses_dsa(dev)) { + pr_debug("IP-Config: Downing %s\n", dev->name); dev_change_flags(dev, d->flags); } kfree(d); @@ -379,7 +378,7 @@ static int __init ic_setup_if(void) int err; memset(&ir, 0, sizeof(ir)); - strcpy(ir.ifr_ifrn.ifrn_name, ic_dev->name); + strcpy(ir.ifr_ifrn.ifrn_name, ic_dev->dev->name); set_sockaddr(sin, ic_myaddr, 0); if ((err = ic_devinet_ioctl(SIOCSIFADDR, &ir)) < 0) { pr_err("IP-Config: Unable to set interface address (%d)\n", @@ -403,7 +402,7 @@ static int __init ic_setup_if(void) * out, we'll try to muddle along. */ if (ic_dev_mtu != 0) { - strcpy(ir.ifr_name, ic_dev->name); + strcpy(ir.ifr_name, ic_dev->dev->name); ir.ifr_mtu = ic_dev_mtu; if ((err = ic_dev_ioctl(SIOCSIFMTU, &ir)) < 0) pr_err("IP-Config: Unable to set interface mtu to %d (%d)\n", @@ -574,7 +573,7 @@ ic_rarp_recv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt goto drop_unlock; /* We have a winner! */ - ic_dev = dev; + ic_dev = d; if (ic_myaddr == NONE) ic_myaddr = tip; ic_servaddr = sip; @@ -661,8 +660,6 @@ static struct packet_type bootp_packet_type __initdata = { .func = ic_bootp_recv, }; -static __be32 ic_dev_xid; /* Device under configuration */ - /* * Initialize DHCP/BOOTP extension fields in the request. */ @@ -1052,12 +1049,6 @@ static int __init ic_bootp_recv(struct sk_buff *skb, struct net_device *dev, str goto drop_unlock; } - /* Is it a reply for the device we are configuring? */ - if (b->xid != ic_dev_xid) { - net_err_ratelimited("DHCP/BOOTP: Ignoring delayed packet\n"); - goto drop_unlock; - } - /* Parse extensions */ if (ext_len >= 4 && !memcmp(b->exten, ic_bootp_cookie, 4)) { /* Check magic cookie */ @@ -1148,7 +1139,7 @@ static int __init ic_bootp_recv(struct sk_buff *skb, struct net_device *dev, str } /* We have a winner! */ - ic_dev = dev; + ic_dev = d; ic_myaddr = b->your_ip; ic_servaddr = b->server_ip; ic_addrservaddr = b->iph.saddr; @@ -1243,9 +1234,6 @@ static int __init ic_dynamic(void) timeout = CONF_BASE_TIMEOUT + (timeout % (unsigned int) CONF_TIMEOUT_RANDOM); for (;;) { #ifdef IPCONFIG_BOOTP - /* Track the device we are configuring */ - ic_dev_xid = d->xid; - if (do_bootp && (d->able & IC_BOOTP)) ic_bootp_send_if(d, jiffies - start_jiffies); #endif @@ -1254,15 +1242,19 @@ static int __init ic_dynamic(void) ic_rarp_send_if(d); #endif - jiff = jiffies + (d->next ? CONF_INTER_TIMEOUT : timeout); - while (time_before(jiffies, jiff) && !ic_got_reply) - schedule_timeout_uninterruptible(1); + if (!d->next) { + jiff = jiffies + timeout; + while (time_before(jiffies, jiff) && !ic_got_reply) + schedule_timeout_uninterruptible(1); + } #ifdef IPCONFIG_DHCP /* DHCP isn't done until we get a DHCPACK. */ if ((ic_got_reply & IC_BOOTP) && (ic_proto_enabled & IC_USE_DHCP) && ic_dhcp_msgtype != DHCPACK) { ic_got_reply = 0; + /* continue on device that got the reply */ + d = ic_dev; pr_cont(","); continue; } @@ -1513,7 +1505,7 @@ static int __init ip_auto_config(void) #endif /* IPCONFIG_DYNAMIC */ } else { /* Device selected manually or only one device -> use it */ - ic_dev = ic_first_dev->dev; + ic_dev = ic_first_dev; } addr = root_nfs_parse_addr(root_server_path); @@ -1526,14 +1518,6 @@ static int __init ip_auto_config(void) if (ic_defaults() < 0) return -1; - /* - * Close all network devices except the device we've - * autoconfigured and set up routes. - */ - ic_close_devs(); - if (ic_setup_if() < 0 || ic_setup_routes() < 0) - return -1; - /* * Record which protocol was actually used. */ @@ -1548,7 +1532,7 @@ static int __init ip_auto_config(void) pr_info("IP-Config: Complete:\n"); pr_info(" device=%s, hwaddr=%*phC, ipaddr=%pI4, mask=%pI4, gw=%pI4\n", - ic_dev->name, ic_dev->addr_len, ic_dev->dev_addr, + ic_dev->dev->name, ic_dev->dev->addr_len, ic_dev->dev->dev_addr, &ic_myaddr, &ic_netmask, &ic_gateway); pr_info(" host=%s, domain=%s, nis-domain=%s\n", utsname()->nodename, ic_domain, utsname()->domainname); @@ -1568,7 +1552,18 @@ static int __init ip_auto_config(void) pr_cont("\n"); #endif /* !SILENT */ - return 0; + /* + * Close all network devices except the device we've + * autoconfigured and set up routes. + */ + if (ic_setup_if() < 0 || ic_setup_routes() < 0) + err = -1; + else + err = 0; + + ic_close_devs(); + + return err; } late_initcall(ip_auto_config); From 9d7f9b4596ada401c33269ffc6f3b231d7c0286a Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:13 +0100 Subject: [PATCH 0561/1149] ARM: shmobile: r8a77470: basic SoC support commit 0c1d543b75f242f08b08e7fb63a1df2ada025903 upstream. Add minimal support for the RZ/G1C (R8A77470) SoC. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/arm/shmobile.txt | 2 ++ arch/arm/mach-shmobile/Kconfig | 4 ++++ arch/arm/mach-shmobile/pm-rcar-gen2.c | 2 ++ arch/arm/mach-shmobile/setup-rcar-gen2.c | 2 ++ 4 files changed, 10 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt index e27b38ed73b2..3b51d7e625c0 100644 --- a/Documentation/devicetree/bindings/arm/shmobile.txt +++ b/Documentation/devicetree/bindings/arm/shmobile.txt @@ -17,6 +17,8 @@ SoCs: compatible = "renesas,r8a7743" - RZ/G1E (R8A77450) compatible = "renesas,r8a7745" + - RZ/G1C (R8A77470) + compatible = "renesas,r8a77470" - R-Car M1A (R8A77781) compatible = "renesas,r8a7778" - R-Car H1 (R8A77790) diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index 602fc2d6d3a5..31549b7c7b24 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig @@ -72,6 +72,10 @@ config ARCH_R8A7745 bool "RZ/G1E (R8A77450)" select ARCH_RCAR_GEN2 +config ARCH_R8A77470 + bool "RZ/G1C (R8A77470)" + select ARCH_RCAR_GEN2 + config ARCH_R8A7778 bool "R-Car M1A (R8A77781)" select ARCH_RCAR_GEN1 diff --git a/arch/arm/mach-shmobile/pm-rcar-gen2.c b/arch/arm/mach-shmobile/pm-rcar-gen2.c index 0054561239a7..419575e83205 100644 --- a/arch/arm/mach-shmobile/pm-rcar-gen2.c +++ b/arch/arm/mach-shmobile/pm-rcar-gen2.c @@ -101,6 +101,8 @@ void __init rcar_gen2_pm_init(void) syscier = 0x00101003; else if (of_machine_is_compatible("renesas,r8a7745")) syscier = 0x00300060; + else if (of_machine_is_compatible("renesas,r8a77470")) + syscier = 0x00300060; np = of_find_compatible_node(NULL, NULL, "renesas,smp-sram"); if (!np) { diff --git a/arch/arm/mach-shmobile/setup-rcar-gen2.c b/arch/arm/mach-shmobile/setup-rcar-gen2.c index 50d7438aa66a..6e0c0ce1c8a6 100644 --- a/arch/arm/mach-shmobile/setup-rcar-gen2.c +++ b/arch/arm/mach-shmobile/setup-rcar-gen2.c @@ -61,6 +61,7 @@ void __init rcar_gen2_timer_init(void) shmobile_init_cntvoff(); if (of_machine_is_compatible("renesas,r8a7745") || + of_machine_is_compatible("renesas,r8a77470") || of_machine_is_compatible("renesas,r8a7794")) { freq = 260000000 / 8; /* ZS / 8 */ } else { @@ -208,6 +209,7 @@ MACHINE_END static const char * const rz_g1_boards_compat_dt[] __initconst = { "renesas,r8a7743", "renesas,r8a7745", + "renesas,r8a77470", NULL, }; From a80e3e37e4d7701f199edd892125990b4fca9108 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 16 May 2019 10:39:14 +0100 Subject: [PATCH 0562/1149] clk: shmobile: rcar-gen2: Add quirks for the RZ/G1C This patch adds a quirk for clocks "sd0" and "sd1" for the RZ/G1C (a.k.a. r8a77470) SoC, similarly to what has been done upstream with commit: 5bf2fbbef50c ("clk: renesas: cpg-mssr: Add r8a77470 support") and also customizes the settings for the PLLs. Unfortunately backporting the aforementioned commit is not possible, as the clock driver has changed quite dramatically over time, hence the new patch. Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/clk/shmobile/clk-rcar-gen2.c | 39 +++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/drivers/clk/shmobile/clk-rcar-gen2.c b/drivers/clk/shmobile/clk-rcar-gen2.c index 6ab0199a4038..3f7d331c0434 100644 --- a/drivers/clk/shmobile/clk-rcar-gen2.c +++ b/drivers/clk/shmobile/clk-rcar-gen2.c @@ -268,6 +268,24 @@ static struct clk * __init cpg_adsp_clk_register(struct rcar_gen2_cpg *cpg) #define CPG_PLL_CONFIG_INDEX(md) ((((md) & BIT(14)) >> 12) | \ (((md) & BIT(13)) >> 12) | \ (((md) & BIT(19)) >> 19)) + +/* + * This table is only valid for the RZ/G1C + * + * MD EXTAL PLL0 PLL1 PLL3 + * 14 13 (MHz) *1 *2 + *--------------------------------------------------- + * 0 0 20 / 1 x80 x78 x50 + * 0 1 26 / 1 x60 x60 x56 + * 1 0 Prohibited setting + * 1 1 30 / 1 x52 x52 x50 + * + * *1 : Table 7.4 indicates VCO output (PLL0 = VCO) + * *2 : Table 7.4 indicates VCO output (PLL1 = VCO) + */ +#define CPG_PLL_CONFIG_INDEX_RZG1C(md) ((((md) & BIT(14)) >> 13) | \ + (((md) & BIT(13)) >> 13)) + struct cpg_pll_config { unsigned int extal_div; unsigned int pll1_mult; @@ -282,6 +300,14 @@ static const struct cpg_pll_config cpg_pll_configs[8] __initconst = { { 2, 208, 106, 200 }, { 2, 208, 88, 200 }, }; +static const struct cpg_pll_config cpg_pll_configs_rzg1c[4] __initconst = { + /* EXTAL div PLL1 mult x2 PLL3 mult */ + { 1, 156, 50, }, + { 1, 120, 56, }, + { /* Invalid*/ }, + { 1, 104, 50, }, +}; + /* SDHI divisors */ static const struct clk_div_table cpg_sdh_div_table[] = { { 0, 2 }, { 1, 3 }, { 2, 4 }, { 3, 6 }, @@ -308,6 +334,8 @@ static const char * const pll0_mult_match[] = { NULL }; +static const char *r8a77470_compat = "renesas,r8a77470-cpg-clocks"; + static struct clk * __init rcar_gen2_cpg_register_clock(struct device_node *np, struct rcar_gen2_cpg *cpg, const struct cpg_pll_config *config, @@ -357,10 +385,16 @@ rcar_gen2_cpg_register_clock(struct device_node *np, struct rcar_gen2_cpg *cpg, } else if (!strcmp(name, "sd0")) { parent_name = "pll1"; table = cpg_sd01_div_table; + if (of_device_is_compatible(np, r8a77470_compat)) + table++; + shift = 4; } else if (!strcmp(name, "sd1")) { parent_name = "pll1"; table = cpg_sd01_div_table; + if (of_device_is_compatible(np, r8a77470_compat)) + table++; + shift = 0; } else if (!strcmp(name, "z")) { return cpg_z_clk_register(cpg); @@ -414,7 +448,10 @@ static void __init rcar_gen2_cpg_clocks_init(struct device_node *np) if (WARN_ON(cpg->reg == NULL)) return; - config = &cpg_pll_configs[CPG_PLL_CONFIG_INDEX(cpg_mode)]; + if (of_device_is_compatible(np, r8a77470_compat)) + config = &cpg_pll_configs_rzg1c[CPG_PLL_CONFIG_INDEX_RZG1C(cpg_mode)]; + else + config = &cpg_pll_configs[CPG_PLL_CONFIG_INDEX(cpg_mode)]; for (i = 0; i < num_clks; ++i) { const char *name; From 2233e1e50450fb74e1a7914d50d604dd09ec071a Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 16 May 2019 10:39:15 +0100 Subject: [PATCH 0563/1149] clk: shmobile: Compile clk-rcar-gen2.c when using the r8a77470 This patch makes sure clk-rcar-gen2,c gets compiled when CONFIG_ARCH_R8A77470 is selected, similarly to what done by commit: 7bac4ad3e40f ("CIP: Build essential clock driver for Renesas RZ/G1 platforms") Unfortunately there is no commit upstream that we can backport to achieve this as the architecture of the clock driver has changed quite dramatically over time, and as such we need this new patch. Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/clk/shmobile/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/clk/shmobile/Makefile b/drivers/clk/shmobile/Makefile index b339c0b6bb2f..2412eb9d7190 100644 --- a/drivers/clk/shmobile/Makefile +++ b/drivers/clk/shmobile/Makefile @@ -4,6 +4,7 @@ obj-$(CONFIG_ARCH_R8A73A4) += clk-r8a73a4.o obj-$(CONFIG_ARCH_R8A7740) += clk-r8a7740.o obj-$(CONFIG_ARCH_R8A7743) += clk-rcar-gen2.o obj-$(CONFIG_ARCH_R8A7745) += clk-rcar-gen2.o +obj-$(CONFIG_ARCH_R8A77470) += clk-rcar-gen2.o obj-$(CONFIG_ARCH_R8A7778) += clk-r8a7778.o obj-$(CONFIG_ARCH_R8A7779) += clk-r8a7779.o obj-$(CONFIG_ARCH_R8A7790) += clk-rcar-gen2.o From a68b0ee5f214b004fb66d2656208793223ad0082 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 16 May 2019 10:39:16 +0100 Subject: [PATCH 0564/1149] ARM: shmobile: r8a77470: Add clock index macros for DT sources Add macros usable by device tree sources to reference the r8a77470 clocks by index. Unfortunately there is nothing that we can backport from mainline for this, as the architecture of the clock driver has changed quite dramatically over time. Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- include/dt-bindings/clock/r8a77470-clock.h | 139 +++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 include/dt-bindings/clock/r8a77470-clock.h diff --git a/include/dt-bindings/clock/r8a77470-clock.h b/include/dt-bindings/clock/r8a77470-clock.h new file mode 100644 index 000000000000..a22af155b11f --- /dev/null +++ b/include/dt-bindings/clock/r8a77470-clock.h @@ -0,0 +1,139 @@ +/* + * Copyright (C) 2019 Renesas Electronics Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation. + */ + +#ifndef __DT_BINDINGS_CLOCK_R8A77470_H__ +#define __DT_BINDINGS_CLOCK_R8A77470_H__ + +/* CPG */ +#define R8A77470_CLK_MAIN 0 +#define R8A77470_CLK_PLL0 1 +#define R8A77470_CLK_PLL1 2 +#define R8A77470_CLK_PLL3 3 +#define R8A77470_CLK_LB 4 +#define R8A77470_CLK_QSPI 5 +#define R8A77470_CLK_SDH 6 +#define R8A77470_CLK_SD0 7 +#define R8A77470_CLK_SD1 8 +#define R8A77470_CLK_RCAN 9 + +/* MSTP0 */ +#define R8A77470_CLK_MSIOF0 0 + +/* MSTP1 */ +#define R8A77470_CLK_VCP0 1 +#define R8A77470_CLK_VPC0 3 +#define R8A77470_CLK_STB 4 +#define R8A77470_CLK_TMU1 11 +#define R8A77470_CLK_3DG 12 +#define R8A77470_CLK_2DDMAC 15 +#define R8A77470_CLK_FDP1_0 19 +#define R8A77470_CLK_TMU3 21 +#define R8A77470_CLK_TMU2 22 +#define R8A77470_CLK_CMT0 24 +#define R8A77470_CLK_VSP1DU0 28 +#define R8A77470_CLK_VSP1_SY 31 + +/* MSTP2 */ +#define R8A77470_CLK_MSIOF2 5 +#define R8A77470_CLK_MSIOF1 8 +#define R8A77470_CLK_SYS_DMAC1 18 +#define R8A77470_CLK_SYS_DMAC0 19 + +/* MSTP3 */ +#define R8A77470_CLK_SDHI2 12 +#define R8A77470_CLK_SDHI1 13 +#define R8A77470_CLK_SDHI0 14 +#define R8A77470_CLK_USBHS_DMAC0_CH1 26 +#define R8A77470_CLK_USBHS_DMAC1_CH1 27 +#define R8A77470_CLK_CMT1 29 +#define R8A77470_CLK_USBHS_DMAC0_CH0 30 +#define R8A77470_CLK_USBHS_DMAC1_CH0 31 + +/* MSTP4 */ +#define R8A77470_CLK_RWDT 2 +#define R8A77470_CLK_USB_DDM0 6 +#define R8A77470_CLK_IRQC 7 +#define R8A77470_CLK_INTC_SYS 8 +#define R8A77470_CLK_USB_DDM1 9 + +/* MSTP5 */ +#define R8A77470_CLK_AUDIO_DMAC0 2 +#define R8A77470_CLK_PWM 23 +#define R8A77470_CLK_BOOT_ROM 30 + +/* MSTP7 */ +#define R8A77470_CLK_USB_EHCI_0 3 +#define R8A77470_CLK_USBHS0 4 +#define R8A77470_CLK_USB_EHCI_1 5 +#define R8A77470_CLK_USBHS1 6 +#define R8A77470_CLK_HSCIF2 13 +#define R8A77470_CLK_SCIF5 14 +#define R8A77470_CLK_SCIF4 15 +#define R8A77470_CLK_HSCIF1 16 +#define R8A77470_CLK_HSCIF0 17 +#define R8A77470_CLK_SCIF3 18 +#define R8A77470_CLK_SCIF2 19 +#define R8A77470_CLK_SCIF1 20 +#define R8A77470_CLK_SCIF0 21 +#define R8A77470_CLK_DU1 23 +#define R8A77470_CLK_DU0 24 +#define R8A77470_CLK_LVDS 26 +#define R8A77470_CLK_DVE 27 + +/* MSTP8 */ +#define R8A77470_CLK_IPMMU_SGX 0 +#define R8A77470_CLK_DVD 1 +#define R8A77470_CLK_VIN1 10 +#define R8A77470_CLK_VIN0 11 +#define R8A77470_CLK_ETHERAVB 12 +#define R8A77470_CLK_ETHER 13 + +/* MSTP9 */ +#define R8A77470_CLK_IR_RECEIVER 3 +#define R8A77470_CLK_GPIO5 7 +#define R8A77470_CLK_GPIO4 8 +#define R8A77470_CLK_GPIO3 9 +#define R8A77470_CLK_GPIO2 10 +#define R8A77470_CLK_GPIO1 11 +#define R8A77470_CLK_GPIO0 12 +#define R8A77470_CLK_CAN1 15 +#define R8A77470_CLK_CAN0 16 +#define R8A77470_CLK_QUAD_SPI1 17 +#define R8A77470_CLK_QUAD_SPI0 18 +#define R8A77470_CLK_ADG 22 +#define R8A77470_CLK_I2C4 27 +#define R8A77470_CLK_I2C3 28 +#define R8A77470_CLK_I2C2 29 +#define R8A77470_CLK_I2C1 30 +#define R8A77470_CLK_I2C0 31 + +/* MSTP10 */ +#define R8A77470_CLK_SSI_ALL 5 +#define R8A77470_CLK_SSI9 6 +#define R8A77470_CLK_SSI8 7 +#define R8A77470_CLK_SSI7 8 +#define R8A77470_CLK_SSI6 9 +#define R8A77470_CLK_SSI5 10 +#define R8A77470_CLK_SSI4 11 +#define R8A77470_CLK_SSI3 12 +#define R8A77470_CLK_SSI2 13 +#define R8A77470_CLK_SSI1 14 +#define R8A77470_CLK_SSI0 15 +#define R8A77470_CLK_SCU_ALL 17 +#define R8A77470_CLK_SCU_DVC1 18 +#define R8A77470_CLK_SCU_DVC0 19 +#define R8A77470_CLK_SCU_CTU1_MIX1 20 +#define R8A77470_CLK_SCU_CTU0_MIX0 21 +#define R8A77470_CLK_SCU_SRC6 25 +#define R8A77470_CLK_SCU_SRC5 26 +#define R8A77470_CLK_SCU_SRC4 27 +#define R8A77470_CLK_SCU_SRC3 28 +#define R8A77470_CLK_SCU_SRC2 29 +#define R8A77470_CLK_SCU_SRC1 30 + +#endif /* __DT_BINDINGS_CLOCK_R8A77470_H__ */ From c9479d7b234ca891abdf1a43190765f95e9c0a25 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:17 +0100 Subject: [PATCH 0565/1149] pinctrl: sh-pfc: Add r8a77470 PFC support commit 73dacc3403436fc246258c0933e35b6e809640ac upstream. Add PFC support for the R8A77470 SoC including pin groups for some on-chip devices such as SCIF and MMC. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Walleij (fab: moved r8a77470_pinmux_info declaration from sh_pfc.h to core.h, in pfc-r8a77470.c: added #include "core.h", removed #include "sh_pfc.h", and added a few missing macro definitions) Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/pinctrl/sh-pfc/Kconfig | 5 + drivers/pinctrl/sh-pfc/Makefile | 1 + drivers/pinctrl/sh-pfc/core.c | 6 + drivers/pinctrl/sh-pfc/core.h | 1 + drivers/pinctrl/sh-pfc/pfc-r8a77470.c | 2368 +++++++++++++++++++++++++ 5 files changed, 2381 insertions(+) create mode 100644 drivers/pinctrl/sh-pfc/pfc-r8a77470.c diff --git a/drivers/pinctrl/sh-pfc/Kconfig b/drivers/pinctrl/sh-pfc/Kconfig index 2ba6d551bffb..ab15d19dbff4 100644 --- a/drivers/pinctrl/sh-pfc/Kconfig +++ b/drivers/pinctrl/sh-pfc/Kconfig @@ -45,6 +45,11 @@ config PINCTRL_PFC_R8A7745 depends on ARCH_R8A7745 select PINCTRL_SH_PFC +config PINCTRL_PFC_R8A77470 + def_bool y + depends on ARCH_R8A77470 + select PINCTRL_SH_PFC + config PINCTRL_PFC_R8A7778 def_bool y depends on ARCH_R8A7778 diff --git a/drivers/pinctrl/sh-pfc/Makefile b/drivers/pinctrl/sh-pfc/Makefile index 7fd3bea769b5..e9ef2cc517eb 100644 --- a/drivers/pinctrl/sh-pfc/Makefile +++ b/drivers/pinctrl/sh-pfc/Makefile @@ -8,6 +8,7 @@ obj-$(CONFIG_PINCTRL_PFC_R8A73A4) += pfc-r8a73a4.o obj-$(CONFIG_PINCTRL_PFC_R8A7740) += pfc-r8a7740.o obj-$(CONFIG_PINCTRL_PFC_R8A7743) += pfc-r8a7791.o obj-$(CONFIG_PINCTRL_PFC_R8A7745) += pfc-r8a7794.o +obj-$(CONFIG_PINCTRL_PFC_R8A77470) += pfc-r8a77470.o obj-$(CONFIG_PINCTRL_PFC_R8A7778) += pfc-r8a7778.o obj-$(CONFIG_PINCTRL_PFC_R8A7779) += pfc-r8a7779.o obj-$(CONFIG_PINCTRL_PFC_R8A7790) += pfc-r8a7790.o diff --git a/drivers/pinctrl/sh-pfc/core.c b/drivers/pinctrl/sh-pfc/core.c index 0cd07dfbde52..c3a3283a3f30 100644 --- a/drivers/pinctrl/sh-pfc/core.c +++ b/drivers/pinctrl/sh-pfc/core.c @@ -465,6 +465,12 @@ static const struct of_device_id sh_pfc_of_table[] = { .data = &r8a7745_pinmux_info, }, #endif +#ifdef CONFIG_PINCTRL_PFC_R8A77470 + { + .compatible = "renesas,pfc-r8a77470", + .data = &r8a77470_pinmux_info, + }, +#endif #ifdef CONFIG_PINCTRL_PFC_R8A7778 { .compatible = "renesas,pfc-r8a7778", diff --git a/drivers/pinctrl/sh-pfc/core.h b/drivers/pinctrl/sh-pfc/core.h index 0822d9fe00ed..37acc883c9bc 100644 --- a/drivers/pinctrl/sh-pfc/core.h +++ b/drivers/pinctrl/sh-pfc/core.h @@ -71,6 +71,7 @@ extern const struct sh_pfc_soc_info r8a73a4_pinmux_info; extern const struct sh_pfc_soc_info r8a7740_pinmux_info; extern const struct sh_pfc_soc_info r8a7743_pinmux_info; extern const struct sh_pfc_soc_info r8a7745_pinmux_info; +extern const struct sh_pfc_soc_info r8a77470_pinmux_info; extern const struct sh_pfc_soc_info r8a7778_pinmux_info; extern const struct sh_pfc_soc_info r8a7779_pinmux_info; extern const struct sh_pfc_soc_info r8a7790_pinmux_info; diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a77470.c b/drivers/pinctrl/sh-pfc/pfc-r8a77470.c new file mode 100644 index 000000000000..8973f611493b --- /dev/null +++ b/drivers/pinctrl/sh-pfc/pfc-r8a77470.c @@ -0,0 +1,2368 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * R8A77470 processor support - PFC hardware block. + * + * Copyright (C) 2018 Renesas Electronics Corp. + */ + +#include + +#include "core.h" + +#define PINMUX_IPSR_GPSR(ipsr, fn) \ + PINMUX_DATA(fn##_MARK, FN_##fn, FN_##ipsr) + +#define PORT_GP_17(bank, fn, sfx) \ + PORT_GP_1(bank, 0, fn, sfx), PORT_GP_1(bank, 1, fn, sfx), \ + PORT_GP_1(bank, 2, fn, sfx), PORT_GP_1(bank, 3, fn, sfx), \ + PORT_GP_1(bank, 4, fn, sfx), PORT_GP_1(bank, 5, fn, sfx), \ + PORT_GP_1(bank, 6, fn, sfx), PORT_GP_1(bank, 7, fn, sfx), \ + PORT_GP_1(bank, 8, fn, sfx), PORT_GP_1(bank, 9, fn, sfx), \ + PORT_GP_1(bank, 10, fn, sfx), PORT_GP_1(bank, 11, fn, sfx), \ + PORT_GP_1(bank, 12, fn, sfx), PORT_GP_1(bank, 13, fn, sfx), \ + PORT_GP_1(bank, 14, fn, sfx), PORT_GP_1(bank, 15, fn, sfx), \ + PORT_GP_1(bank, 16, fn, sfx) + +#define PORT_GP_23(bank, fn, sfx) \ + PORT_GP_17(bank, fn, sfx), \ + PORT_GP_1(bank, 17, fn, sfx), PORT_GP_1(bank, 18, fn, sfx), \ + PORT_GP_1(bank, 19, fn, sfx), PORT_GP_1(bank, 20, fn, sfx), \ + PORT_GP_1(bank, 21, fn, sfx), PORT_GP_1(bank, 22, fn, sfx) + +#define PORT_GP_26(bank, fn, sfx) \ + PORT_GP_23(bank, fn, sfx), \ + PORT_GP_1(bank, 23, fn, sfx), PORT_GP_1(bank, 24, fn, sfx), \ + PORT_GP_1(bank, 25, fn, sfx) + +#define CPU_ALL_PORT(fn, sfx) \ + PORT_GP_23(0, fn, sfx), \ + PORT_GP_23(1, fn, sfx), \ + PORT_GP_32(2, fn, sfx), \ + PORT_GP_17(3, fn, sfx), \ + PORT_GP_1(3, 27, fn, sfx), \ + PORT_GP_1(3, 28, fn, sfx), \ + PORT_GP_1(3, 29, fn, sfx), \ + PORT_GP_26(4, fn, sfx), \ + PORT_GP_32(5, fn, sfx) + +enum { + PINMUX_RESERVED = 0, + + PINMUX_DATA_BEGIN, + GP_ALL(DATA), + PINMUX_DATA_END, + + PINMUX_FUNCTION_BEGIN, + GP_ALL(FN), + + /* GPSR0 */ + FN_USB0_PWEN, FN_USB0_OVC, FN_USB1_PWEN, FN_USB1_OVC, FN_CLKOUT, + FN_IP0_3_0, FN_IP0_7_4, FN_IP0_11_8, FN_IP0_15_12, FN_IP0_19_16, + FN_IP0_23_20, FN_IP0_27_24, FN_IP0_31_28, FN_MMC0_CLK_SDHI1_CLK, + FN_MMC0_CMD_SDHI1_CMD, FN_MMC0_D0_SDHI1_D0, FN_MMC0_D1_SDHI1_D1, + FN_MMC0_D2_SDHI1_D2, FN_MMC0_D3_SDHI1_D3, FN_IP1_3_0, + FN_IP1_7_4, FN_MMC0_D6, FN_MMC0_D7, + + /* GPSR1 */ + FN_IP1_11_8, FN_IP1_15_12, FN_IP1_19_16, FN_IP1_23_20, FN_IP1_27_24, + FN_IP1_31_28, FN_IP2_3_0, FN_IP2_7_4, FN_IP2_11_8, FN_IP2_15_12, + FN_IP2_19_16, FN_IP2_23_20, FN_IP2_27_24, FN_IP2_31_28, FN_IP3_3_0, + FN_IP3_7_4, FN_IP3_11_8, FN_IP3_15_12, FN_IP3_19_16, FN_IP3_23_20, + FN_IP3_27_24, FN_IP3_31_28, FN_IP4_3_0, + + /* GPSR2 */ + FN_IP4_7_4, FN_IP4_11_8, FN_IP4_15_12, FN_IP4_19_16, FN_IP4_23_20, + FN_IP4_27_24, FN_IP4_31_28, FN_IP5_3_0, FN_IP5_7_4, FN_IP5_11_8, + FN_IP5_15_12, FN_IP5_19_16, FN_IP5_23_20, FN_IP5_27_24, FN_IP5_31_28, + FN_IP6_3_0, FN_IP6_7_4, FN_IP6_11_8, FN_IP6_15_12, FN_IP6_19_16, + FN_IP6_23_20, FN_IP6_27_24, FN_IP6_31_28, FN_IP7_3_0, FN_IP7_7_4, + FN_IP7_11_8, FN_IP7_15_12, FN_IP7_19_16, FN_IP7_23_20, FN_IP7_27_24, + FN_IP7_31_28, FN_IP8_3_0, + + /* GPSR3 */ + FN_IP8_7_4, FN_IP8_11_8, FN_IP8_15_12, FN_IP8_19_16, FN_IP8_23_20, + FN_IP8_27_24, FN_IP8_31_28, FN_IP9_3_0, FN_IP9_7_4, FN_IP9_11_8, + FN_IP9_15_12, FN_IP9_19_16, FN_IP9_23_20, FN_IP9_27_24, FN_IP9_31_28, + FN_IP10_3_0, FN_IP10_7_4, FN_IP10_11_8, FN_IP10_15_12, FN_IP10_19_16, + + /* GPSR4 */ + FN_IP10_23_20, FN_IP10_27_24, FN_IP10_31_28, FN_IP11_3_0, FN_IP11_7_4, + FN_IP11_11_8, FN_IP11_15_12, FN_IP11_19_16, FN_IP11_23_20, + FN_IP11_27_24, FN_IP11_31_28, FN_IP12_3_0, FN_IP12_7_4, FN_IP12_11_8, + FN_IP12_15_12, FN_IP12_19_16, FN_IP12_23_20, FN_IP12_27_24, + FN_IP12_31_28, FN_IP13_3_0, FN_IP13_7_4, FN_IP13_11_8, FN_IP13_15_12, + FN_IP13_19_16, FN_IP13_23_20, FN_IP13_27_24, + + /* GPSR5 */ + FN_IP13_31_28, FN_IP14_3_0, FN_IP14_7_4, FN_IP14_11_8, FN_IP14_15_12, + FN_IP14_19_16, FN_IP14_23_20, FN_IP14_27_24, FN_IP14_31_28, + FN_IP15_3_0, FN_IP15_7_4, FN_IP15_11_8, FN_IP15_15_12, FN_IP15_19_16, + FN_IP15_23_20, FN_IP15_27_24, FN_IP15_31_28, FN_IP16_3_0, FN_IP16_7_4, + FN_IP16_11_8, FN_IP16_15_12, FN_IP16_19_16, FN_IP16_23_20, + FN_IP16_27_24, FN_IP16_31_28, FN_IP17_3_0, FN_IP17_7_4, FN_IP17_11_8, + FN_IP17_15_12, FN_IP17_19_16, FN_IP17_23_20, FN_IP17_27_24, + + /* IPSR0 */ + FN_SD0_CLK, FN_SSI_SCK1_C, FN_RX3_C, + FN_SD0_CMD, FN_SSI_WS1_C, FN_TX3_C, + FN_SD0_DAT0, FN_SSI_SDATA1_C, FN_RX4_E, + FN_SD0_DAT1, FN_SSI_SCK0129_B, FN_TX4_E, + FN_SD0_DAT2, FN_SSI_WS0129_B, FN_RX5_E, + FN_SD0_DAT3, FN_SSI_SDATA0_B, FN_TX5_E, + FN_SD0_CD, FN_CAN0_RX_A, + FN_SD0_WP, FN_IRQ7, FN_CAN0_TX_A, + + /* IPSR1 */ + FN_MMC0_D4, FN_SD1_CD, + FN_MMC0_D5, FN_SD1_WP, + FN_D0, FN_SCL3_B, FN_RX5_B, FN_IRQ4, FN_MSIOF2_RXD_C, FN_SSI_SDATA5_B, + FN_D1, FN_SDA3_B, FN_TX5_B, FN_MSIOF2_TXD_C, FN_SSI_WS5_B, + FN_D2, FN_RX4_B, FN_SCL0_D, FN_PWM1_C, FN_MSIOF2_SCK_C, FN_SSI_SCK5_B, + FN_D3, FN_TX4_B, FN_SDA0_D, FN_PWM0_A, FN_MSIOF2_SYNC_C, + FN_D4, FN_IRQ3, FN_TCLK1_A, FN_PWM6_C, + FN_D5, FN_HRX2, FN_SCL1_B, FN_PWM2_C, FN_TCLK2_B, + + /* IPSR2 */ + FN_D6, FN_HTX2, FN_SDA1_B, FN_PWM4_C, + FN_D7, FN_HSCK2, FN_SCIF1_SCK_C, FN_IRQ6, FN_PWM5_C, + FN_D8, FN_HCTS2_N, FN_RX1_C, FN_SCL1_D, FN_PWM3_C, + FN_D9, FN_HRTS2_N, FN_TX1_C, FN_SDA1_D, + FN_D10, FN_MSIOF2_RXD_A, FN_HRX0_B, + FN_D11, FN_MSIOF2_TXD_A, FN_HTX0_B, + FN_D12, FN_MSIOF2_SCK_A, FN_HSCK0, FN_CAN_CLK_C, + FN_D13, FN_MSIOF2_SYNC_A, FN_RX4_C, + + /* IPSR3 */ + FN_D14, FN_MSIOF2_SS1, FN_TX4_C, FN_CAN1_RX_B, FN_AVB_AVTP_CAPTURE_A, + FN_D15, FN_MSIOF2_SS2, FN_PWM4_A, FN_CAN1_TX_B, FN_IRQ2, FN_AVB_AVTP_MATCH_A, + FN_QSPI0_SPCLK, FN_WE0_N, + FN_QSPI0_MOSI_QSPI0_IO0, FN_BS_N, + FN_QSPI0_MISO_QSPI0_IO1, FN_RD_WR_N, + FN_QSPI0_IO2, FN_CS0_N, + FN_QSPI0_IO3, FN_RD_N, + FN_QSPI0_SSL, FN_WE1_N, + + /* IPSR4 */ + FN_EX_WAIT0, FN_CAN_CLK_B, FN_SCIF_CLK_A, + FN_DU0_DR0, FN_RX5_C, FN_SCL2_D, FN_A0, + FN_DU0_DR1, FN_TX5_C, FN_SDA2_D, FN_A1, + FN_DU0_DR2, FN_RX0_D, FN_SCL0_E, FN_A2, + FN_DU0_DR3, FN_TX0_D, FN_SDA0_E, FN_PWM0_B, FN_A3, + FN_DU0_DR4, FN_RX1_D, FN_A4, + FN_DU0_DR5, FN_TX1_D, FN_PWM1_B, FN_A5, + FN_DU0_DR6, FN_RX2_C, FN_A6, + + /* IPSR5 */ + FN_DU0_DR7, FN_TX2_C, FN_PWM2_B, FN_A7, + FN_DU0_DG0, FN_RX3_B, FN_SCL3_D, FN_A8, + FN_DU0_DG1, FN_TX3_B, FN_SDA3_D, FN_PWM3_B, FN_A9, + FN_DU0_DG2, FN_RX4_D, FN_A10, + FN_DU0_DG3, FN_TX4_D, FN_PWM4_B, FN_A11, + FN_DU0_DG4, FN_HRX0_A, FN_A12, + FN_DU0_DG5, FN_HTX0_A, FN_PWM5_B, FN_A13, + FN_DU0_DG6, FN_HRX1_C, FN_A14, + + /* IPSR6 */ + FN_DU0_DG7, FN_HTX1_C, FN_PWM6_B, FN_A15, + FN_DU0_DB0, FN_SCL4_D, FN_CAN0_RX_C, FN_A16, + FN_DU0_DB1, FN_SDA4_D, FN_CAN0_TX_C, FN_A17, + FN_DU0_DB2, FN_HCTS0_N, FN_A18, + FN_DU0_DB3, FN_HRTS0_N, FN_A19, + FN_DU0_DB4, FN_HCTS1_N_C, FN_A20, + FN_DU0_DB5, FN_HRTS1_N_C, FN_A21, + FN_DU0_DB6, FN_A22, + + /* IPSR7 */ + FN_DU0_DB7, FN_A23, + FN_DU0_DOTCLKIN, FN_A24, + FN_DU0_DOTCLKOUT0, FN_A25, + FN_DU0_DOTCLKOUT1, FN_MSIOF2_RXD_B, FN_CS1_N_A26, + FN_DU0_EXHSYNC_DU0_HSYNC, FN_MSIOF2_TXD_B, FN_DREQ0_N, + FN_DU0_EXVSYNC_DU0_VSYNC, FN_MSIOF2_SYNC_B, FN_DACK0, + FN_DU0_EXODDF_DU0_ODDF_DISP_CDE, FN_MSIOF2_SCK_B, FN_DRACK0, + FN_DU0_DISP, FN_CAN1_RX_C, + + /* IPSR8 */ + FN_DU0_CDE, FN_CAN1_TX_C, + FN_VI1_CLK, FN_AVB_RX_CLK, FN_ETH_REF_CLK, + FN_VI1_DATA0, FN_AVB_RX_DV, FN_ETH_CRS_DV, + FN_VI1_DATA1, FN_AVB_RXD0, FN_ETH_RXD0, + FN_VI1_DATA2, FN_AVB_RXD1, FN_ETH_RXD1, + FN_VI1_DATA3, FN_AVB_RXD2, FN_ETH_MDIO, + FN_VI1_DATA4, FN_AVB_RXD3, FN_ETH_RX_ER, + FN_VI1_DATA5, FN_AVB_RXD4, FN_ETH_LINK, + + /* IPSR9 */ + FN_VI1_DATA6, FN_AVB_RXD5, FN_ETH_TXD1, + FN_VI1_DATA7, FN_AVB_RXD6, FN_ETH_TX_EN, + FN_VI1_CLKENB, FN_SCL3_A, FN_AVB_RXD7, FN_ETH_MAGIC, + FN_VI1_FIELD, FN_SDA3_A, FN_AVB_RX_ER, FN_ETH_TXD0, + FN_VI1_HSYNC_N, FN_RX0_B, FN_SCL0_C, FN_AVB_GTXREFCLK, FN_ETH_MDC, + FN_VI1_VSYNC_N, FN_TX0_B, FN_SDA0_C, FN_AUDIO_CLKOUT_B, FN_AVB_TX_CLK, + FN_VI1_DATA8, FN_SCL2_B, FN_AVB_TX_EN, + FN_VI1_DATA9, FN_SDA2_B, FN_AVB_TXD0, + + /* IPSR10 */ + FN_VI1_DATA10, FN_CAN0_RX_B, FN_AVB_TXD1, + FN_VI1_DATA11, FN_CAN0_TX_B, FN_AVB_TXD2, + FN_AVB_TXD3, FN_AUDIO_CLKA_B, FN_SSI_SCK1_D, FN_RX5_F, FN_MSIOF0_RXD_B, + FN_AVB_TXD4, FN_AUDIO_CLKB_B, FN_SSI_WS1_D, FN_TX5_F, FN_MSIOF0_TXD_B, + FN_AVB_TXD5, FN_SCIF_CLK_B, FN_AUDIO_CLKC_B, FN_SSI_SDATA1_D, FN_MSIOF0_SCK_B, + FN_SCL0_A, FN_RX0_C, FN_PWM5_A, FN_TCLK1_B, FN_AVB_TXD6, FN_CAN1_RX_D, FN_MSIOF0_SYNC_B, + FN_SDA0_A, FN_TX0_C, FN_IRQ5, FN_CAN_CLK_A, FN_AVB_GTX_CLK, FN_CAN1_TX_D, FN_DVC_MUTE, + FN_SCL1_A, FN_RX4_A, FN_PWM5_D, FN_DU1_DR0, FN_SSI_SCK6_B, FN_VI0_G0, + + /* IPSR11 */ + FN_SDA1_A, FN_TX4_A, FN_DU1_DR1, FN_SSI_WS6_B, FN_VI0_G1, + FN_MSIOF0_RXD_A, FN_RX5_A, FN_SCL2_C, FN_DU1_DR2, FN_QSPI1_MOSI_QSPI1_IO0, FN_SSI_SDATA6_B, FN_VI0_G2, + FN_MSIOF0_TXD_A, FN_TX5_A, FN_SDA2_C, FN_DU1_DR3, FN_QSPI1_MISO_QSPI1_IO1, FN_SSI_WS78_B, FN_VI0_G3, + FN_MSIOF0_SCK_A, FN_IRQ0, FN_DU1_DR4, FN_QSPI1_SPCLK, FN_SSI_SCK78_B, FN_VI0_G4, + FN_MSIOF0_SYNC_A, FN_PWM1_A, FN_DU1_DR5, FN_QSPI1_IO2, FN_SSI_SDATA7_B, + FN_MSIOF0_SS1_A, FN_DU1_DR6, FN_QSPI1_IO3, FN_SSI_SDATA8_B, + FN_MSIOF0_SS2_A, FN_DU1_DR7, FN_QSPI1_SSL, + FN_HRX1_A, FN_SCL4_A, FN_PWM6_A, FN_DU1_DG0, FN_RX0_A, + + /* IPSR12 */ + FN_HTX1_A, FN_SDA4_A, FN_DU1_DG1, FN_TX0_A, + FN_HCTS1_N_A, FN_PWM2_A, FN_DU1_DG2, FN_REMOCON_B, + FN_HRTS1_N_A, FN_DU1_DG3, FN_SSI_WS1_B, FN_IRQ1, + FN_SD2_CLK, FN_HSCK1, FN_DU1_DG4, FN_SSI_SCK1_B, + FN_SD2_CMD, FN_SCIF1_SCK_A, FN_TCLK2_A, FN_DU1_DG5, FN_SSI_SCK2_B, FN_PWM3_A, + FN_SD2_DAT0, FN_RX1_A, FN_SCL1_E, FN_DU1_DG6, FN_SSI_SDATA1_B, + FN_SD2_DAT1, FN_TX1_A, FN_SDA1_E, FN_DU1_DG7, FN_SSI_WS2_B, + FN_SD2_DAT2, FN_RX2_A, FN_DU1_DB0, FN_SSI_SDATA2_B, + + /* IPSR13 */ + FN_SD2_DAT3, FN_TX2_A, FN_DU1_DB1, FN_SSI_WS9_B, + FN_SD2_CD, FN_SCIF2_SCK_A, FN_DU1_DB2, FN_SSI_SCK9_B, + FN_SD2_WP, FN_SCIF3_SCK, FN_DU1_DB3, FN_SSI_SDATA9_B, + FN_RX3_A, FN_SCL1_C, FN_MSIOF1_RXD_B, FN_DU1_DB4, FN_AUDIO_CLKA_C, FN_SSI_SDATA4_B, + FN_TX3_A, FN_SDA1_C, FN_MSIOF1_TXD_B, FN_DU1_DB5, FN_AUDIO_CLKB_C, FN_SSI_WS4_B, + FN_SCL2_A, FN_MSIOF1_SCK_B, FN_DU1_DB6, FN_AUDIO_CLKC_C, FN_SSI_SCK4_B, + FN_SDA2_A, FN_MSIOF1_SYNC_B, FN_DU1_DB7, FN_AUDIO_CLKOUT_C, + FN_SSI_SCK5_A, FN_DU1_DOTCLKOUT1, + + /* IPSR14 */ + FN_SSI_WS5_A, FN_SCL3_C, FN_DU1_DOTCLKIN, + FN_SSI_SDATA5_A, FN_SDA3_C, FN_DU1_DOTCLKOUT0, + FN_SSI_SCK6_A, FN_DU1_EXODDF_DU1_ODDF_DISP_CDE, + FN_SSI_WS6_A, FN_SCL4_C, FN_DU1_EXHSYNC_DU1_HSYNC, + FN_SSI_SDATA6_A, FN_SDA4_C, FN_DU1_EXVSYNC_DU1_VSYNC, + FN_SSI_SCK78_A, FN_SDA4_E, FN_DU1_DISP, + FN_SSI_WS78_A, FN_SCL4_E, FN_DU1_CDE, + FN_SSI_SDATA7_A, FN_IRQ8, FN_AUDIO_CLKA_D, FN_CAN_CLK_D, FN_VI0_G5, + + /* IPSR15 */ + FN_SSI_SCK0129_A, FN_MSIOF1_RXD_A, FN_RX5_D, FN_VI0_G6, + FN_SSI_WS0129_A, FN_MSIOF1_TXD_A, FN_TX5_D, FN_VI0_G7, + FN_SSI_SDATA0_A, FN_MSIOF1_SYNC_A, FN_PWM0_C, FN_VI0_R0, + FN_SSI_SCK34, FN_MSIOF1_SCK_A, FN_AVB_MDC, FN_DACK1, FN_VI0_R1, + FN_SSI_WS34, FN_MSIOF1_SS1_A, FN_AVB_MDIO, FN_CAN1_RX_A, FN_DREQ1_N, FN_VI0_R2, + FN_SSI_SDATA3, FN_MSIOF1_SS2_A, FN_AVB_LINK, FN_CAN1_TX_A, FN_DREQ2_N, FN_VI0_R3, + FN_SSI_SCK4_A, FN_AVB_MAGIC, FN_VI0_R4, + FN_SSI_WS4_A, FN_AVB_PHY_INT, FN_VI0_R5, + + /* IPSR16 */ + FN_SSI_SDATA4_A, FN_AVB_CRS, FN_VI0_R6, + FN_SSI_SCK1_A, FN_SCIF1_SCK_B, FN_PWM1_D, FN_IRQ9, FN_REMOCON_A, FN_DACK2, FN_VI0_CLK, FN_AVB_COL, + FN_SSI_SDATA8_A, FN_RX1_B, FN_CAN0_RX_D, FN_AVB_AVTP_CAPTURE_B, FN_VI0_R7, + FN_SSI_WS1_A, FN_TX1_B, FN_CAN0_TX_D, FN_AVB_AVTP_MATCH_B, FN_VI0_DATA0_VI0_B0, + FN_SSI_SDATA1_A, FN_HRX1_B, FN_VI0_DATA1_VI0_B1, + FN_SSI_SCK2_A, FN_HTX1_B, FN_AVB_TXD7, FN_VI0_DATA2_VI0_B2, + FN_SSI_WS2_A, FN_HCTS1_N_B, FN_AVB_TX_ER, FN_VI0_DATA3_VI0_B3, + FN_SSI_SDATA2_A, FN_HRTS1_N_B, FN_VI0_DATA4_VI0_B4, + + /* IPSR17 */ + FN_SSI_SCK9_A, FN_RX2_B, FN_SCL3_E, FN_EX_WAIT1, FN_VI0_DATA5_VI0_B5, + FN_SSI_WS9_A, FN_TX2_B, FN_SDA3_E, FN_VI0_DATA6_VI0_B6, + FN_SSI_SDATA9_A, FN_SCIF2_SCK_B, FN_PWM2_D, FN_VI0_DATA7_VI0_B7, + FN_AUDIO_CLKA_A, FN_SCL0_B, FN_VI0_CLKENB, + FN_AUDIO_CLKB_A, FN_SDA0_B, FN_VI0_FIELD, + FN_AUDIO_CLKC_A, FN_SCL4_B, FN_VI0_HSYNC_N, + FN_AUDIO_CLKOUT_A, FN_SDA4_B, FN_VI0_VSYNC_N, + + /* MOD_SEL0 */ + FN_SEL_ADGA_0, FN_SEL_ADGA_1, FN_SEL_ADGA_2, FN_SEL_ADGA_3, + FN_SEL_CANCLK_0, FN_SEL_CANCLK_1, FN_SEL_CANCLK_2, FN_SEL_CANCLK_3, + FN_SEL_CAN1_0, FN_SEL_CAN1_1, FN_SEL_CAN1_2, FN_SEL_CAN1_3, + FN_SEL_CAN0_0, FN_SEL_CAN0_1, FN_SEL_CAN0_2, FN_SEL_CAN0_3, + FN_SEL_I2C04_0, FN_SEL_I2C04_1, FN_SEL_I2C04_2, FN_SEL_I2C04_3, FN_SEL_I2C04_4, + FN_SEL_I2C03_0, FN_SEL_I2C03_1, FN_SEL_I2C03_2, FN_SEL_I2C03_3, FN_SEL_I2C03_4, + FN_SEL_I2C02_0, FN_SEL_I2C02_1, FN_SEL_I2C02_2, FN_SEL_I2C02_3, + FN_SEL_I2C01_0, FN_SEL_I2C01_1, FN_SEL_I2C01_2, FN_SEL_I2C01_3, FN_SEL_I2C01_4, + FN_SEL_I2C00_0, FN_SEL_I2C00_1, FN_SEL_I2C00_2, FN_SEL_I2C00_3, FN_SEL_I2C00_4, + FN_SEL_AVB_0, FN_SEL_AVB_1, + + /* MOD_SEL1 */ + FN_SEL_SCIFCLK_0, FN_SEL_SCIFCLK_1, + FN_SEL_SCIF5_0, FN_SEL_SCIF5_1, FN_SEL_SCIF5_2, FN_SEL_SCIF5_3, FN_SEL_SCIF5_4, FN_SEL_SCIF5_5, + FN_SEL_SCIF4_0, FN_SEL_SCIF4_1, FN_SEL_SCIF4_2, FN_SEL_SCIF4_3, FN_SEL_SCIF4_4, + FN_SEL_SCIF3_0, FN_SEL_SCIF3_1, FN_SEL_SCIF3_2, + FN_SEL_SCIF2_0, FN_SEL_SCIF2_1, FN_SEL_SCIF2_2, + FN_SEL_SCIF2_CLK_0, FN_SEL_SCIF2_CLK_1, + FN_SEL_SCIF1_0, FN_SEL_SCIF1_1, FN_SEL_SCIF1_2, FN_SEL_SCIF1_3, + FN_SEL_SCIF0_0, FN_SEL_SCIF0_1, FN_SEL_SCIF0_2, FN_SEL_SCIF0_3, + FN_SEL_MSIOF2_0, FN_SEL_MSIOF2_1, FN_SEL_MSIOF2_2, + FN_SEL_MSIOF1_0, FN_SEL_MSIOF1_1, + FN_SEL_MSIOF0_0, FN_SEL_MSIOF0_1, + FN_SEL_RCN_0, FN_SEL_RCN_1, + FN_SEL_TMU2_0, FN_SEL_TMU2_1, + FN_SEL_TMU1_0, FN_SEL_TMU1_1, + FN_SEL_HSCIF1_0, FN_SEL_HSCIF1_1, FN_SEL_HSCIF1_2, + FN_SEL_HSCIF0_0, FN_SEL_HSCIF0_1, + + /* MOD_SEL2 */ + FN_SEL_ADGB_0, FN_SEL_ADGB_1, FN_SEL_ADGB_2, + FN_SEL_ADGC_0, FN_SEL_ADGC_1, FN_SEL_ADGC_2, + FN_SEL_SSI9_0, FN_SEL_SSI9_1, + FN_SEL_SSI8_0, FN_SEL_SSI8_1, + FN_SEL_SSI7_0, FN_SEL_SSI7_1, + FN_SEL_SSI6_0, FN_SEL_SSI6_1, + FN_SEL_SSI5_0, FN_SEL_SSI5_1, + FN_SEL_SSI4_0, FN_SEL_SSI4_1, + FN_SEL_SSI2_0, FN_SEL_SSI2_1, + FN_SEL_SSI1_0, FN_SEL_SSI1_1, FN_SEL_SSI1_2, FN_SEL_SSI1_3, + FN_SEL_SSI0_0, FN_SEL_SSI0_1, + PINMUX_FUNCTION_END, + + PINMUX_MARK_BEGIN, + + USB0_PWEN_MARK, USB0_OVC_MARK, USB1_PWEN_MARK, USB1_OVC_MARK, + CLKOUT_MARK, MMC0_CLK_SDHI1_CLK_MARK, MMC0_CMD_SDHI1_CMD_MARK, + MMC0_D0_SDHI1_D0_MARK, MMC0_D1_SDHI1_D1_MARK, + MMC0_D2_SDHI1_D2_MARK, MMC0_D3_SDHI1_D3_MARK, MMC0_D6_MARK, + MMC0_D7_MARK, + + /* IPSR0 */ + SD0_CLK_MARK, SSI_SCK1_C_MARK, RX3_C_MARK, + SD0_CMD_MARK, SSI_WS1_C_MARK, TX3_C_MARK, + SD0_DAT0_MARK, SSI_SDATA1_C_MARK, RX4_E_MARK, + SD0_DAT1_MARK, SSI_SCK0129_B_MARK, TX4_E_MARK, + SD0_DAT2_MARK, SSI_WS0129_B_MARK, RX5_E_MARK, + SD0_DAT3_MARK, SSI_SDATA0_B_MARK, TX5_E_MARK, + SD0_CD_MARK, CAN0_RX_A_MARK, + SD0_WP_MARK, IRQ7_MARK, CAN0_TX_A_MARK, + + /* IPSR1 */ + MMC0_D4_MARK, SD1_CD_MARK, + MMC0_D5_MARK, SD1_WP_MARK, + D0_MARK, SCL3_B_MARK, RX5_B_MARK, IRQ4_MARK, MSIOF2_RXD_C_MARK, SSI_SDATA5_B_MARK, + D1_MARK, SDA3_B_MARK, TX5_B_MARK, MSIOF2_TXD_C_MARK, SSI_WS5_B_MARK, + D2_MARK, RX4_B_MARK, SCL0_D_MARK, PWM1_C_MARK, MSIOF2_SCK_C_MARK, SSI_SCK5_B_MARK, + D3_MARK, TX4_B_MARK, SDA0_D_MARK, PWM0_A_MARK, MSIOF2_SYNC_C_MARK, + D4_MARK, IRQ3_MARK, TCLK1_A_MARK, PWM6_C_MARK, + D5_MARK, HRX2_MARK, SCL1_B_MARK, PWM2_C_MARK, TCLK2_B_MARK, + + /* IPSR2 */ + D6_MARK, HTX2_MARK, SDA1_B_MARK, PWM4_C_MARK, + D7_MARK, HSCK2_MARK, SCIF1_SCK_C_MARK, IRQ6_MARK, PWM5_C_MARK, + D8_MARK, HCTS2_N_MARK, RX1_C_MARK, SCL1_D_MARK, PWM3_C_MARK, + D9_MARK, HRTS2_N_MARK, TX1_C_MARK, SDA1_D_MARK, + D10_MARK, MSIOF2_RXD_A_MARK, HRX0_B_MARK, + D11_MARK, MSIOF2_TXD_A_MARK, HTX0_B_MARK, + D12_MARK, MSIOF2_SCK_A_MARK, HSCK0_MARK, CAN_CLK_C_MARK, + D13_MARK, MSIOF2_SYNC_A_MARK, RX4_C_MARK, + + /* IPSR3 */ + D14_MARK, MSIOF2_SS1_MARK, TX4_C_MARK, CAN1_RX_B_MARK, AVB_AVTP_CAPTURE_A_MARK, + D15_MARK, MSIOF2_SS2_MARK, PWM4_A_MARK, CAN1_TX_B_MARK, IRQ2_MARK, AVB_AVTP_MATCH_A_MARK, + QSPI0_SPCLK_MARK, WE0_N_MARK, + QSPI0_MOSI_QSPI0_IO0_MARK, BS_N_MARK, + QSPI0_MISO_QSPI0_IO1_MARK, RD_WR_N_MARK, + QSPI0_IO2_MARK, CS0_N_MARK, + QSPI0_IO3_MARK, RD_N_MARK, + QSPI0_SSL_MARK, WE1_N_MARK, + + /* IPSR4 */ + EX_WAIT0_MARK, CAN_CLK_B_MARK, SCIF_CLK_A_MARK, + DU0_DR0_MARK, RX5_C_MARK, SCL2_D_MARK, A0_MARK, + DU0_DR1_MARK, TX5_C_MARK, SDA2_D_MARK, A1_MARK, + DU0_DR2_MARK, RX0_D_MARK, SCL0_E_MARK, A2_MARK, + DU0_DR3_MARK, TX0_D_MARK, SDA0_E_MARK, PWM0_B_MARK, A3_MARK, + DU0_DR4_MARK, RX1_D_MARK, A4_MARK, + DU0_DR5_MARK, TX1_D_MARK, PWM1_B_MARK, A5_MARK, + DU0_DR6_MARK, RX2_C_MARK, A6_MARK, + + /* IPSR5 */ + DU0_DR7_MARK, TX2_C_MARK, PWM2_B_MARK, A7_MARK, + DU0_DG0_MARK, RX3_B_MARK, SCL3_D_MARK, A8_MARK, + DU0_DG1_MARK, TX3_B_MARK, SDA3_D_MARK, PWM3_B_MARK, A9_MARK, + DU0_DG2_MARK, RX4_D_MARK, A10_MARK, + DU0_DG3_MARK, TX4_D_MARK, PWM4_B_MARK, A11_MARK, + DU0_DG4_MARK, HRX0_A_MARK, A12_MARK, + DU0_DG5_MARK, HTX0_A_MARK, PWM5_B_MARK, A13_MARK, + DU0_DG6_MARK, HRX1_C_MARK, A14_MARK, + + /* IPSR6 */ + DU0_DG7_MARK, HTX1_C_MARK, PWM6_B_MARK, A15_MARK, + DU0_DB0_MARK, SCL4_D_MARK, CAN0_RX_C_MARK, A16_MARK, + DU0_DB1_MARK, SDA4_D_MARK, CAN0_TX_C_MARK, A17_MARK, + DU0_DB2_MARK, HCTS0_N_MARK, A18_MARK, + DU0_DB3_MARK, HRTS0_N_MARK, A19_MARK, + DU0_DB4_MARK, HCTS1_N_C_MARK, A20_MARK, + DU0_DB5_MARK, HRTS1_N_C_MARK, A21_MARK, + DU0_DB6_MARK, A22_MARK, + + /* IPSR7 */ + DU0_DB7_MARK, A23_MARK, + DU0_DOTCLKIN_MARK, A24_MARK, + DU0_DOTCLKOUT0_MARK, A25_MARK, + DU0_DOTCLKOUT1_MARK, MSIOF2_RXD_B_MARK, CS1_N_A26_MARK, + DU0_EXHSYNC_DU0_HSYNC_MARK, MSIOF2_TXD_B_MARK, DREQ0_N_MARK, + DU0_EXVSYNC_DU0_VSYNC_MARK, MSIOF2_SYNC_B_MARK, DACK0_MARK, + DU0_EXODDF_DU0_ODDF_DISP_CDE_MARK, MSIOF2_SCK_B_MARK, DRACK0_MARK, + DU0_DISP_MARK, CAN1_RX_C_MARK, + + /* IPSR8 */ + DU0_CDE_MARK, CAN1_TX_C_MARK, + VI1_CLK_MARK, AVB_RX_CLK_MARK, ETH_REF_CLK_MARK, + VI1_DATA0_MARK, AVB_RX_DV_MARK, ETH_CRS_DV_MARK, + VI1_DATA1_MARK, AVB_RXD0_MARK, ETH_RXD0_MARK, + VI1_DATA2_MARK, AVB_RXD1_MARK, ETH_RXD1_MARK, + VI1_DATA3_MARK, AVB_RXD2_MARK, ETH_MDIO_MARK, + VI1_DATA4_MARK, AVB_RXD3_MARK, ETH_RX_ER_MARK, + VI1_DATA5_MARK, AVB_RXD4_MARK, ETH_LINK_MARK, + + /* IPSR9 */ + VI1_DATA6_MARK, AVB_RXD5_MARK, ETH_TXD1_MARK, + VI1_DATA7_MARK, AVB_RXD6_MARK, ETH_TX_EN_MARK, + VI1_CLKENB_MARK, SCL3_A_MARK, AVB_RXD7_MARK, ETH_MAGIC_MARK, + VI1_FIELD_MARK, SDA3_A_MARK, AVB_RX_ER_MARK, ETH_TXD0_MARK, + VI1_HSYNC_N_MARK, RX0_B_MARK, SCL0_C_MARK, AVB_GTXREFCLK_MARK, ETH_MDC_MARK, + VI1_VSYNC_N_MARK, TX0_B_MARK, SDA0_C_MARK, AUDIO_CLKOUT_B_MARK, AVB_TX_CLK_MARK, + VI1_DATA8_MARK, SCL2_B_MARK, AVB_TX_EN_MARK, + VI1_DATA9_MARK, SDA2_B_MARK, AVB_TXD0_MARK, + + /* IPSR10 */ + VI1_DATA10_MARK, CAN0_RX_B_MARK, AVB_TXD1_MARK, + VI1_DATA11_MARK, CAN0_TX_B_MARK, AVB_TXD2_MARK, + AVB_TXD3_MARK, AUDIO_CLKA_B_MARK, SSI_SCK1_D_MARK, RX5_F_MARK, MSIOF0_RXD_B_MARK, + AVB_TXD4_MARK, AUDIO_CLKB_B_MARK, SSI_WS1_D_MARK, TX5_F_MARK, MSIOF0_TXD_B_MARK, + AVB_TXD5_MARK, SCIF_CLK_B_MARK, AUDIO_CLKC_B_MARK, SSI_SDATA1_D_MARK, MSIOF0_SCK_B_MARK, + SCL0_A_MARK, RX0_C_MARK, PWM5_A_MARK, TCLK1_B_MARK, AVB_TXD6_MARK, CAN1_RX_D_MARK, MSIOF0_SYNC_B_MARK, + SDA0_A_MARK, TX0_C_MARK, IRQ5_MARK, CAN_CLK_A_MARK, AVB_GTX_CLK_MARK, CAN1_TX_D_MARK, DVC_MUTE_MARK, + SCL1_A_MARK, RX4_A_MARK, PWM5_D_MARK, DU1_DR0_MARK, SSI_SCK6_B_MARK, VI0_G0_MARK, + + /* IPSR11 */ + SDA1_A_MARK, TX4_A_MARK, DU1_DR1_MARK, SSI_WS6_B_MARK, VI0_G1_MARK, + MSIOF0_RXD_A_MARK, RX5_A_MARK, SCL2_C_MARK, DU1_DR2_MARK, QSPI1_MOSI_QSPI1_IO0_MARK, SSI_SDATA6_B_MARK, VI0_G2_MARK, + MSIOF0_TXD_A_MARK, TX5_A_MARK, SDA2_C_MARK, DU1_DR3_MARK, QSPI1_MISO_QSPI1_IO1_MARK, SSI_WS78_B_MARK, VI0_G3_MARK, + MSIOF0_SCK_A_MARK, IRQ0_MARK, DU1_DR4_MARK, QSPI1_SPCLK_MARK, SSI_SCK78_B_MARK, VI0_G4_MARK, + MSIOF0_SYNC_A_MARK, PWM1_A_MARK, DU1_DR5_MARK, QSPI1_IO2_MARK, SSI_SDATA7_B_MARK, + MSIOF0_SS1_A_MARK, DU1_DR6_MARK, QSPI1_IO3_MARK, SSI_SDATA8_B_MARK, + MSIOF0_SS2_A_MARK, DU1_DR7_MARK, QSPI1_SSL_MARK, + HRX1_A_MARK, SCL4_A_MARK, PWM6_A_MARK, DU1_DG0_MARK, RX0_A_MARK, + + /* IPSR12 */ + HTX1_A_MARK, SDA4_A_MARK, DU1_DG1_MARK, TX0_A_MARK, + HCTS1_N_A_MARK, PWM2_A_MARK, DU1_DG2_MARK, REMOCON_B_MARK, + HRTS1_N_A_MARK, DU1_DG3_MARK, SSI_WS1_B_MARK, IRQ1_MARK, + SD2_CLK_MARK, HSCK1_MARK, DU1_DG4_MARK, SSI_SCK1_B_MARK, + SD2_CMD_MARK, SCIF1_SCK_A_MARK, TCLK2_A_MARK, DU1_DG5_MARK, SSI_SCK2_B_MARK, PWM3_A_MARK, + SD2_DAT0_MARK, RX1_A_MARK, SCL1_E_MARK, DU1_DG6_MARK, SSI_SDATA1_B_MARK, + SD2_DAT1_MARK, TX1_A_MARK, SDA1_E_MARK, DU1_DG7_MARK, SSI_WS2_B_MARK, + SD2_DAT2_MARK, RX2_A_MARK, DU1_DB0_MARK, SSI_SDATA2_B_MARK, + + /* IPSR13 */ + SD2_DAT3_MARK, TX2_A_MARK, DU1_DB1_MARK, SSI_WS9_B_MARK, + SD2_CD_MARK, SCIF2_SCK_A_MARK, DU1_DB2_MARK, SSI_SCK9_B_MARK, + SD2_WP_MARK, SCIF3_SCK_MARK, DU1_DB3_MARK, SSI_SDATA9_B_MARK, + RX3_A_MARK, SCL1_C_MARK, MSIOF1_RXD_B_MARK, DU1_DB4_MARK, AUDIO_CLKA_C_MARK, SSI_SDATA4_B_MARK, + TX3_A_MARK, SDA1_C_MARK, MSIOF1_TXD_B_MARK, DU1_DB5_MARK, AUDIO_CLKB_C_MARK, SSI_WS4_B_MARK, + SCL2_A_MARK, MSIOF1_SCK_B_MARK, DU1_DB6_MARK, AUDIO_CLKC_C_MARK, SSI_SCK4_B_MARK, + SDA2_A_MARK, MSIOF1_SYNC_B_MARK, DU1_DB7_MARK, AUDIO_CLKOUT_C_MARK, + SSI_SCK5_A_MARK, DU1_DOTCLKOUT1_MARK, + + /* IPSR14 */ + SSI_WS5_A_MARK, SCL3_C_MARK, DU1_DOTCLKIN_MARK, + SSI_SDATA5_A_MARK, SDA3_C_MARK, DU1_DOTCLKOUT0_MARK, + SSI_SCK6_A_MARK, DU1_EXODDF_DU1_ODDF_DISP_CDE_MARK, + SSI_WS6_A_MARK, SCL4_C_MARK, DU1_EXHSYNC_DU1_HSYNC_MARK, + SSI_SDATA6_A_MARK, SDA4_C_MARK, DU1_EXVSYNC_DU1_VSYNC_MARK, + SSI_SCK78_A_MARK, SDA4_E_MARK, DU1_DISP_MARK, + SSI_WS78_A_MARK, SCL4_E_MARK, DU1_CDE_MARK, + SSI_SDATA7_A_MARK, IRQ8_MARK, AUDIO_CLKA_D_MARK, CAN_CLK_D_MARK, VI0_G5_MARK, + + /* IPSR15 */ + SSI_SCK0129_A_MARK, MSIOF1_RXD_A_MARK, RX5_D_MARK, VI0_G6_MARK, + SSI_WS0129_A_MARK, MSIOF1_TXD_A_MARK, TX5_D_MARK, VI0_G7_MARK, + SSI_SDATA0_A_MARK, MSIOF1_SYNC_A_MARK, PWM0_C_MARK, VI0_R0_MARK, + SSI_SCK34_MARK, MSIOF1_SCK_A_MARK, AVB_MDC_MARK, DACK1_MARK, VI0_R1_MARK, + SSI_WS34_MARK, MSIOF1_SS1_A_MARK, AVB_MDIO_MARK, CAN1_RX_A_MARK, DREQ1_N_MARK, VI0_R2_MARK, + SSI_SDATA3_MARK, MSIOF1_SS2_A_MARK, AVB_LINK_MARK, CAN1_TX_A_MARK, DREQ2_N_MARK, VI0_R3_MARK, + SSI_SCK4_A_MARK, AVB_MAGIC_MARK, VI0_R4_MARK, + SSI_WS4_A_MARK, AVB_PHY_INT_MARK, VI0_R5_MARK, + + /* IPSR16 */ + SSI_SDATA4_A_MARK, AVB_CRS_MARK, VI0_R6_MARK, + SSI_SCK1_A_MARK, SCIF1_SCK_B_MARK, PWM1_D_MARK, IRQ9_MARK, REMOCON_A_MARK, DACK2_MARK, VI0_CLK_MARK, AVB_COL_MARK, + SSI_SDATA8_A_MARK, RX1_B_MARK, CAN0_RX_D_MARK, AVB_AVTP_CAPTURE_B_MARK, VI0_R7_MARK, + SSI_WS1_A_MARK, TX1_B_MARK, CAN0_TX_D_MARK, AVB_AVTP_MATCH_B_MARK, VI0_DATA0_VI0_B0_MARK, + SSI_SDATA1_A_MARK, HRX1_B_MARK, VI0_DATA1_VI0_B1_MARK, + SSI_SCK2_A_MARK, HTX1_B_MARK, AVB_TXD7_MARK, VI0_DATA2_VI0_B2_MARK, + SSI_WS2_A_MARK, HCTS1_N_B_MARK, AVB_TX_ER_MARK, VI0_DATA3_VI0_B3_MARK, + SSI_SDATA2_A_MARK, HRTS1_N_B_MARK, VI0_DATA4_VI0_B4_MARK, + + /* IPSR17 */ + SSI_SCK9_A_MARK, RX2_B_MARK, SCL3_E_MARK, EX_WAIT1_MARK, VI0_DATA5_VI0_B5_MARK, + SSI_WS9_A_MARK, TX2_B_MARK, SDA3_E_MARK, VI0_DATA6_VI0_B6_MARK, + SSI_SDATA9_A_MARK, SCIF2_SCK_B_MARK, PWM2_D_MARK, VI0_DATA7_VI0_B7_MARK, + AUDIO_CLKA_A_MARK, SCL0_B_MARK, VI0_CLKENB_MARK, + AUDIO_CLKB_A_MARK, SDA0_B_MARK, VI0_FIELD_MARK, + AUDIO_CLKC_A_MARK, SCL4_B_MARK, VI0_HSYNC_N_MARK, + AUDIO_CLKOUT_A_MARK, SDA4_B_MARK, VI0_VSYNC_N_MARK, + + PINMUX_MARK_END, +}; + +static const u16 pinmux_data[] = { + PINMUX_DATA_GP_ALL(), /* PINMUX_DATA(GP_M_N_DATA, GP_M_N_FN...), */ + + PINMUX_SINGLE(USB0_PWEN), + PINMUX_SINGLE(USB0_OVC), + PINMUX_SINGLE(USB1_PWEN), + PINMUX_SINGLE(USB1_OVC), + PINMUX_SINGLE(CLKOUT), + PINMUX_SINGLE(MMC0_CLK_SDHI1_CLK), + PINMUX_SINGLE(MMC0_CMD_SDHI1_CMD), + PINMUX_SINGLE(MMC0_D0_SDHI1_D0), + PINMUX_SINGLE(MMC0_D1_SDHI1_D1), + PINMUX_SINGLE(MMC0_D2_SDHI1_D2), + PINMUX_SINGLE(MMC0_D3_SDHI1_D3), + PINMUX_SINGLE(MMC0_D6), + PINMUX_SINGLE(MMC0_D7), + + /* IPSR0 */ + PINMUX_IPSR_GPSR(IP0_3_0, SD0_CLK), + PINMUX_IPSR_MSEL(IP0_3_0, SSI_SCK1_C, SEL_SSI1_2), + PINMUX_IPSR_MSEL(IP0_3_0, RX3_C, SEL_SCIF3_2), + PINMUX_IPSR_GPSR(IP0_7_4, SD0_CMD), + PINMUX_IPSR_MSEL(IP0_7_4, SSI_WS1_C, SEL_SSI1_2), + PINMUX_IPSR_MSEL(IP0_7_4, TX3_C, SEL_SCIF3_2), + PINMUX_IPSR_GPSR(IP0_11_8, SD0_DAT0), + PINMUX_IPSR_MSEL(IP0_11_8, SSI_SDATA1_C, SEL_SSI1_2), + PINMUX_IPSR_MSEL(IP0_11_8, RX4_E, SEL_SCIF4_4), + PINMUX_IPSR_GPSR(IP0_15_12, SD0_DAT1), + PINMUX_IPSR_MSEL(IP0_15_12, SSI_SCK0129_B, SEL_SSI0_1), + PINMUX_IPSR_MSEL(IP0_15_12, TX4_E, SEL_SCIF4_4), + PINMUX_IPSR_GPSR(IP0_19_16, SD0_DAT2), + PINMUX_IPSR_MSEL(IP0_19_16, SSI_WS0129_B, SEL_SSI0_1), + PINMUX_IPSR_MSEL(IP0_19_16, RX5_E, SEL_SCIF5_4), + PINMUX_IPSR_GPSR(IP0_23_20, SD0_DAT3), + PINMUX_IPSR_MSEL(IP0_23_20, SSI_SDATA0_B, SEL_SSI0_1), + PINMUX_IPSR_MSEL(IP0_23_20, TX5_E, SEL_SCIF5_4), + PINMUX_IPSR_GPSR(IP0_27_24, SD0_CD), + PINMUX_IPSR_MSEL(IP0_27_24, CAN0_RX_A, SEL_CAN0_0), + PINMUX_IPSR_GPSR(IP0_31_28, SD0_WP), + PINMUX_IPSR_GPSR(IP0_31_28, IRQ7), + PINMUX_IPSR_MSEL(IP0_31_28, CAN0_TX_A, SEL_CAN0_0), + + /* IPSR1 */ + PINMUX_IPSR_GPSR(IP1_3_0, MMC0_D4), + PINMUX_IPSR_GPSR(IP1_3_0, SD1_CD), + PINMUX_IPSR_GPSR(IP1_7_4, MMC0_D5), + PINMUX_IPSR_GPSR(IP1_7_4, SD1_WP), + PINMUX_IPSR_GPSR(IP1_11_8, D0), + PINMUX_IPSR_MSEL(IP1_11_8, SCL3_B, SEL_I2C03_1), + PINMUX_IPSR_MSEL(IP1_11_8, RX5_B, SEL_SCIF5_1), + PINMUX_IPSR_GPSR(IP1_11_8, IRQ4), + PINMUX_IPSR_MSEL(IP1_11_8, MSIOF2_RXD_C, SEL_MSIOF2_2), + PINMUX_IPSR_MSEL(IP1_11_8, SSI_SDATA5_B, SEL_SSI5_1), + PINMUX_IPSR_GPSR(IP1_15_12, D1), + PINMUX_IPSR_MSEL(IP1_15_12, SDA3_B, SEL_I2C03_1), + PINMUX_IPSR_MSEL(IP1_15_12, TX5_B, SEL_SCIF5_1), + PINMUX_IPSR_MSEL(IP1_15_12, MSIOF2_TXD_C, SEL_MSIOF2_2), + PINMUX_IPSR_MSEL(IP1_15_12, SSI_WS5_B, SEL_SSI5_1), + PINMUX_IPSR_GPSR(IP1_19_16, D2), + PINMUX_IPSR_MSEL(IP1_19_16, RX4_B, SEL_SCIF4_1), + PINMUX_IPSR_MSEL(IP1_19_16, SCL0_D, SEL_I2C00_3), + PINMUX_IPSR_GPSR(IP1_19_16, PWM1_C), + PINMUX_IPSR_MSEL(IP1_19_16, MSIOF2_SCK_C, SEL_MSIOF2_2), + PINMUX_IPSR_MSEL(IP1_19_16, SSI_SCK5_B, SEL_SSI5_1), + PINMUX_IPSR_GPSR(IP1_23_20, D3), + PINMUX_IPSR_MSEL(IP1_23_20, TX4_B, SEL_SCIF4_1), + PINMUX_IPSR_MSEL(IP1_23_20, SDA0_D, SEL_I2C00_3), + PINMUX_IPSR_GPSR(IP1_23_20, PWM0_A), + PINMUX_IPSR_MSEL(IP1_23_20, MSIOF2_SYNC_C, SEL_MSIOF2_2), + PINMUX_IPSR_GPSR(IP1_27_24, D4), + PINMUX_IPSR_GPSR(IP1_27_24, IRQ3), + PINMUX_IPSR_MSEL(IP1_27_24, TCLK1_A, SEL_TMU1_0), + PINMUX_IPSR_GPSR(IP1_27_24, PWM6_C), + PINMUX_IPSR_GPSR(IP1_31_28, D5), + PINMUX_IPSR_GPSR(IP1_31_28, HRX2), + PINMUX_IPSR_MSEL(IP1_31_28, SCL1_B, SEL_I2C01_1), + PINMUX_IPSR_GPSR(IP1_31_28, PWM2_C), + PINMUX_IPSR_MSEL(IP1_31_28, TCLK2_B, SEL_TMU2_1), + + /* IPSR2 */ + PINMUX_IPSR_GPSR(IP2_3_0, D6), + PINMUX_IPSR_GPSR(IP2_3_0, HTX2), + PINMUX_IPSR_MSEL(IP2_3_0, SDA1_B, SEL_I2C01_1), + PINMUX_IPSR_GPSR(IP2_3_0, PWM4_C), + PINMUX_IPSR_GPSR(IP2_7_4, D7), + PINMUX_IPSR_GPSR(IP2_7_4, HSCK2), + PINMUX_IPSR_MSEL(IP2_7_4, SCIF1_SCK_C, SEL_SCIF1_2), + PINMUX_IPSR_GPSR(IP2_7_4, IRQ6), + PINMUX_IPSR_GPSR(IP2_7_4, PWM5_C), + PINMUX_IPSR_GPSR(IP2_11_8, D8), + PINMUX_IPSR_GPSR(IP2_11_8, HCTS2_N), + PINMUX_IPSR_MSEL(IP2_11_8, RX1_C, SEL_SCIF1_2), + PINMUX_IPSR_MSEL(IP2_11_8, SCL1_D, SEL_I2C01_3), + PINMUX_IPSR_GPSR(IP2_11_8, PWM3_C), + PINMUX_IPSR_GPSR(IP2_15_12, D9), + PINMUX_IPSR_GPSR(IP2_15_12, HRTS2_N), + PINMUX_IPSR_MSEL(IP2_15_12, TX1_C, SEL_SCIF1_2), + PINMUX_IPSR_MSEL(IP2_15_12, SDA1_D, SEL_I2C01_3), + PINMUX_IPSR_GPSR(IP2_19_16, D10), + PINMUX_IPSR_MSEL(IP2_19_16, MSIOF2_RXD_A, SEL_MSIOF2_0), + PINMUX_IPSR_MSEL(IP2_19_16, HRX0_B, SEL_HSCIF0_1), + PINMUX_IPSR_GPSR(IP2_23_20, D11), + PINMUX_IPSR_MSEL(IP2_23_20, MSIOF2_TXD_A, SEL_MSIOF2_0), + PINMUX_IPSR_MSEL(IP2_23_20, HTX0_B, SEL_HSCIF0_1), + PINMUX_IPSR_GPSR(IP2_27_24, D12), + PINMUX_IPSR_MSEL(IP2_27_24, MSIOF2_SCK_A, SEL_MSIOF2_0), + PINMUX_IPSR_GPSR(IP2_27_24, HSCK0), + PINMUX_IPSR_MSEL(IP2_27_24, CAN_CLK_C, SEL_CANCLK_2), + PINMUX_IPSR_GPSR(IP2_31_28, D13), + PINMUX_IPSR_MSEL(IP2_31_28, MSIOF2_SYNC_A, SEL_MSIOF2_0), + PINMUX_IPSR_MSEL(IP2_31_28, RX4_C, SEL_SCIF4_2), + + /* IPSR3 */ + PINMUX_IPSR_GPSR(IP3_3_0, D14), + PINMUX_IPSR_GPSR(IP3_3_0, MSIOF2_SS1), + PINMUX_IPSR_MSEL(IP3_3_0, TX4_C, SEL_SCIF4_2), + PINMUX_IPSR_MSEL(IP3_3_0, CAN1_RX_B, SEL_CAN1_1), + PINMUX_IPSR_MSEL(IP3_3_0, AVB_AVTP_CAPTURE_A, SEL_AVB_0), + PINMUX_IPSR_GPSR(IP3_7_4, D15), + PINMUX_IPSR_GPSR(IP3_7_4, MSIOF2_SS2), + PINMUX_IPSR_GPSR(IP3_7_4, PWM4_A), + PINMUX_IPSR_MSEL(IP3_7_4, CAN1_TX_B, SEL_CAN1_1), + PINMUX_IPSR_GPSR(IP3_7_4, IRQ2), + PINMUX_IPSR_MSEL(IP3_7_4, AVB_AVTP_MATCH_A, SEL_AVB_0), + PINMUX_IPSR_GPSR(IP3_11_8, QSPI0_SPCLK), + PINMUX_IPSR_GPSR(IP3_11_8, WE0_N), + PINMUX_IPSR_GPSR(IP3_15_12, QSPI0_MOSI_QSPI0_IO0), + PINMUX_IPSR_GPSR(IP3_15_12, BS_N), + PINMUX_IPSR_GPSR(IP3_19_16, QSPI0_MISO_QSPI0_IO1), + PINMUX_IPSR_GPSR(IP3_19_16, RD_WR_N), + PINMUX_IPSR_GPSR(IP3_23_20, QSPI0_IO2), + PINMUX_IPSR_GPSR(IP3_23_20, CS0_N), + PINMUX_IPSR_GPSR(IP3_27_24, QSPI0_IO3), + PINMUX_IPSR_GPSR(IP3_27_24, RD_N), + PINMUX_IPSR_GPSR(IP3_31_28, QSPI0_SSL), + PINMUX_IPSR_GPSR(IP3_31_28, WE1_N), + + /* IPSR4 */ + PINMUX_IPSR_GPSR(IP4_3_0, EX_WAIT0), + PINMUX_IPSR_MSEL(IP4_3_0, CAN_CLK_B, SEL_CANCLK_1), + PINMUX_IPSR_MSEL(IP4_3_0, SCIF_CLK_A, SEL_SCIFCLK_0), + PINMUX_IPSR_GPSR(IP4_7_4, DU0_DR0), + PINMUX_IPSR_MSEL(IP4_7_4, RX5_C, SEL_SCIF5_2), + PINMUX_IPSR_MSEL(IP4_7_4, SCL2_D, SEL_I2C02_3), + PINMUX_IPSR_GPSR(IP4_7_4, A0), + PINMUX_IPSR_GPSR(IP4_11_8, DU0_DR1), + PINMUX_IPSR_MSEL(IP4_11_8, TX5_C, SEL_SCIF5_2), + PINMUX_IPSR_MSEL(IP4_11_8, SDA2_D, SEL_I2C02_3), + PINMUX_IPSR_GPSR(IP4_11_8, A1), + PINMUX_IPSR_GPSR(IP4_15_12, DU0_DR2), + PINMUX_IPSR_MSEL(IP4_15_12, RX0_D, SEL_SCIF0_3), + PINMUX_IPSR_MSEL(IP4_15_12, SCL0_E, SEL_I2C00_4), + PINMUX_IPSR_GPSR(IP4_15_12, A2), + PINMUX_IPSR_GPSR(IP4_19_16, DU0_DR3), + PINMUX_IPSR_MSEL(IP4_19_16, TX0_D, SEL_SCIF0_3), + PINMUX_IPSR_MSEL(IP4_19_16, SDA0_E, SEL_I2C00_4), + PINMUX_IPSR_GPSR(IP4_19_16, PWM0_B), + PINMUX_IPSR_GPSR(IP4_19_16, A3), + PINMUX_IPSR_GPSR(IP4_23_20, DU0_DR4), + PINMUX_IPSR_MSEL(IP4_23_20, RX1_D, SEL_SCIF1_3), + PINMUX_IPSR_GPSR(IP4_23_20, A4), + PINMUX_IPSR_GPSR(IP4_27_24, DU0_DR5), + PINMUX_IPSR_MSEL(IP4_27_24, TX1_D, SEL_SCIF1_3), + PINMUX_IPSR_GPSR(IP4_27_24, PWM1_B), + PINMUX_IPSR_GPSR(IP4_27_24, A5), + PINMUX_IPSR_GPSR(IP4_31_28, DU0_DR6), + PINMUX_IPSR_MSEL(IP4_31_28, RX2_C, SEL_SCIF2_2), + PINMUX_IPSR_GPSR(IP4_31_28, A6), + + /* IPSR5 */ + PINMUX_IPSR_GPSR(IP5_3_0, DU0_DR7), + PINMUX_IPSR_MSEL(IP5_3_0, TX2_C, SEL_SCIF2_2), + PINMUX_IPSR_GPSR(IP5_3_0, PWM2_B), + PINMUX_IPSR_GPSR(IP5_3_0, A7), + PINMUX_IPSR_GPSR(IP5_7_4, DU0_DG0), + PINMUX_IPSR_MSEL(IP5_7_4, RX3_B, SEL_SCIF3_1), + PINMUX_IPSR_MSEL(IP5_7_4, SCL3_D, SEL_I2C03_3), + PINMUX_IPSR_GPSR(IP5_7_4, A8), + PINMUX_IPSR_GPSR(IP5_11_8, DU0_DG1), + PINMUX_IPSR_MSEL(IP5_11_8, TX3_B, SEL_SCIF3_1), + PINMUX_IPSR_MSEL(IP5_11_8, SDA3_D, SEL_I2C03_3), + PINMUX_IPSR_GPSR(IP5_11_8, PWM3_B), + PINMUX_IPSR_GPSR(IP5_11_8, A9), + PINMUX_IPSR_GPSR(IP5_15_12, DU0_DG2), + PINMUX_IPSR_MSEL(IP5_15_12, RX4_D, SEL_SCIF4_3), + PINMUX_IPSR_GPSR(IP5_15_12, A10), + PINMUX_IPSR_GPSR(IP5_19_16, DU0_DG3), + PINMUX_IPSR_MSEL(IP5_19_16, TX4_D, SEL_SCIF4_3), + PINMUX_IPSR_GPSR(IP5_19_16, PWM4_B), + PINMUX_IPSR_GPSR(IP5_19_16, A11), + PINMUX_IPSR_GPSR(IP5_23_20, DU0_DG4), + PINMUX_IPSR_MSEL(IP5_23_20, HRX0_A, SEL_HSCIF0_0), + PINMUX_IPSR_GPSR(IP5_23_20, A12), + PINMUX_IPSR_GPSR(IP5_27_24, DU0_DG5), + PINMUX_IPSR_MSEL(IP5_27_24, HTX0_A, SEL_HSCIF0_0), + PINMUX_IPSR_GPSR(IP5_27_24, PWM5_B), + PINMUX_IPSR_GPSR(IP5_27_24, A13), + PINMUX_IPSR_GPSR(IP5_31_28, DU0_DG6), + PINMUX_IPSR_MSEL(IP5_31_28, HRX1_C, SEL_HSCIF1_2), + PINMUX_IPSR_GPSR(IP5_31_28, A14), + + /* IPSR6 */ + PINMUX_IPSR_GPSR(IP6_3_0, DU0_DG7), + PINMUX_IPSR_MSEL(IP6_3_0, HTX1_C, SEL_HSCIF1_2), + PINMUX_IPSR_GPSR(IP6_3_0, PWM6_B), + PINMUX_IPSR_GPSR(IP6_3_0, A15), + PINMUX_IPSR_GPSR(IP6_7_4, DU0_DB0), + PINMUX_IPSR_MSEL(IP6_7_4, SCL4_D, SEL_I2C04_3), + PINMUX_IPSR_MSEL(IP6_7_4, CAN0_RX_C, SEL_CAN0_2), + PINMUX_IPSR_GPSR(IP6_7_4, A16), + PINMUX_IPSR_GPSR(IP6_11_8, DU0_DB1), + PINMUX_IPSR_MSEL(IP6_11_8, SDA4_D, SEL_I2C04_3), + PINMUX_IPSR_MSEL(IP6_11_8, CAN0_TX_C, SEL_CAN0_2), + PINMUX_IPSR_GPSR(IP6_11_8, A17), + PINMUX_IPSR_GPSR(IP6_15_12, DU0_DB2), + PINMUX_IPSR_GPSR(IP6_15_12, HCTS0_N), + PINMUX_IPSR_GPSR(IP6_15_12, A18), + PINMUX_IPSR_GPSR(IP6_19_16, DU0_DB3), + PINMUX_IPSR_GPSR(IP6_19_16, HRTS0_N), + PINMUX_IPSR_GPSR(IP6_19_16, A19), + PINMUX_IPSR_GPSR(IP6_23_20, DU0_DB4), + PINMUX_IPSR_MSEL(IP6_23_20, HCTS1_N_C, SEL_HSCIF1_2), + PINMUX_IPSR_GPSR(IP6_23_20, A20), + PINMUX_IPSR_GPSR(IP6_27_24, DU0_DB5), + PINMUX_IPSR_MSEL(IP6_27_24, HRTS1_N_C, SEL_HSCIF1_2), + PINMUX_IPSR_GPSR(IP6_27_24, A21), + PINMUX_IPSR_GPSR(IP6_31_28, DU0_DB6), + PINMUX_IPSR_GPSR(IP6_31_28, A22), + + /* IPSR7 */ + PINMUX_IPSR_GPSR(IP7_3_0, DU0_DB7), + PINMUX_IPSR_GPSR(IP7_3_0, A23), + PINMUX_IPSR_GPSR(IP7_7_4, DU0_DOTCLKIN), + PINMUX_IPSR_GPSR(IP7_7_4, A24), + PINMUX_IPSR_GPSR(IP7_11_8, DU0_DOTCLKOUT0), + PINMUX_IPSR_GPSR(IP7_11_8, A25), + PINMUX_IPSR_GPSR(IP7_15_12, DU0_DOTCLKOUT1), + PINMUX_IPSR_MSEL(IP7_15_12, MSIOF2_RXD_B, SEL_MSIOF2_1), + PINMUX_IPSR_GPSR(IP7_15_12, CS1_N_A26), + PINMUX_IPSR_GPSR(IP7_19_16, DU0_EXHSYNC_DU0_HSYNC), + PINMUX_IPSR_MSEL(IP7_19_16, MSIOF2_TXD_B, SEL_MSIOF2_1), + PINMUX_IPSR_GPSR(IP7_19_16, DREQ0_N), + PINMUX_IPSR_GPSR(IP7_23_20, DU0_EXVSYNC_DU0_VSYNC), + PINMUX_IPSR_MSEL(IP7_23_20, MSIOF2_SYNC_B, SEL_MSIOF2_1), + PINMUX_IPSR_GPSR(IP7_23_20, DACK0), + PINMUX_IPSR_GPSR(IP7_27_24, DU0_EXODDF_DU0_ODDF_DISP_CDE), + PINMUX_IPSR_MSEL(IP7_27_24, MSIOF2_SCK_B, SEL_MSIOF2_1), + PINMUX_IPSR_GPSR(IP7_27_24, DRACK0), + PINMUX_IPSR_GPSR(IP7_31_28, DU0_DISP), + PINMUX_IPSR_MSEL(IP7_31_28, CAN1_RX_C, SEL_CAN1_2), + + /* IPSR8 */ + PINMUX_IPSR_GPSR(IP8_3_0, DU0_CDE), + PINMUX_IPSR_MSEL(IP8_3_0, CAN1_TX_C, SEL_CAN1_2), + PINMUX_IPSR_GPSR(IP8_7_4, VI1_CLK), + PINMUX_IPSR_GPSR(IP8_7_4, AVB_RX_CLK), + PINMUX_IPSR_GPSR(IP8_7_4, ETH_REF_CLK), + PINMUX_IPSR_GPSR(IP8_11_8, VI1_DATA0), + PINMUX_IPSR_GPSR(IP8_11_8, AVB_RX_DV), + PINMUX_IPSR_GPSR(IP8_11_8, ETH_CRS_DV), + PINMUX_IPSR_GPSR(IP8_15_12, VI1_DATA1), + PINMUX_IPSR_GPSR(IP8_15_12, AVB_RXD0), + PINMUX_IPSR_GPSR(IP8_15_12, ETH_RXD0), + PINMUX_IPSR_GPSR(IP8_19_16, VI1_DATA2), + PINMUX_IPSR_GPSR(IP8_19_16, AVB_RXD1), + PINMUX_IPSR_GPSR(IP8_19_16, ETH_RXD1), + PINMUX_IPSR_GPSR(IP8_23_20, VI1_DATA3), + PINMUX_IPSR_GPSR(IP8_23_20, AVB_RXD2), + PINMUX_IPSR_GPSR(IP8_23_20, ETH_MDIO), + PINMUX_IPSR_GPSR(IP8_27_24, VI1_DATA4), + PINMUX_IPSR_GPSR(IP8_27_24, AVB_RXD3), + PINMUX_IPSR_GPSR(IP8_27_24, ETH_RX_ER), + PINMUX_IPSR_GPSR(IP8_31_28, VI1_DATA5), + PINMUX_IPSR_GPSR(IP8_31_28, AVB_RXD4), + PINMUX_IPSR_GPSR(IP8_31_28, ETH_LINK), + + /* IPSR9 */ + PINMUX_IPSR_GPSR(IP9_3_0, VI1_DATA6), + PINMUX_IPSR_GPSR(IP9_3_0, AVB_RXD5), + PINMUX_IPSR_GPSR(IP9_3_0, ETH_TXD1), + PINMUX_IPSR_GPSR(IP9_7_4, VI1_DATA7), + PINMUX_IPSR_GPSR(IP9_7_4, AVB_RXD6), + PINMUX_IPSR_GPSR(IP9_7_4, ETH_TX_EN), + PINMUX_IPSR_GPSR(IP9_11_8, VI1_CLKENB), + PINMUX_IPSR_MSEL(IP9_11_8, SCL3_A, SEL_I2C03_0), + PINMUX_IPSR_GPSR(IP9_11_8, AVB_RXD7), + PINMUX_IPSR_GPSR(IP9_11_8, ETH_MAGIC), + PINMUX_IPSR_GPSR(IP9_15_12, VI1_FIELD), + PINMUX_IPSR_MSEL(IP9_15_12, SDA3_A, SEL_I2C03_0), + PINMUX_IPSR_GPSR(IP9_15_12, AVB_RX_ER), + PINMUX_IPSR_GPSR(IP9_15_12, ETH_TXD0), + PINMUX_IPSR_GPSR(IP9_19_16, VI1_HSYNC_N), + PINMUX_IPSR_MSEL(IP9_19_16, RX0_B, SEL_SCIF0_1), + PINMUX_IPSR_MSEL(IP9_19_16, SCL0_C, SEL_I2C00_2), + PINMUX_IPSR_GPSR(IP9_19_16, AVB_GTXREFCLK), + PINMUX_IPSR_GPSR(IP9_19_16, ETH_MDC), + PINMUX_IPSR_GPSR(IP9_23_20, VI1_VSYNC_N), + PINMUX_IPSR_MSEL(IP9_23_20, TX0_B, SEL_SCIF0_1), + PINMUX_IPSR_MSEL(IP9_23_20, SDA0_C, SEL_I2C00_2), + PINMUX_IPSR_GPSR(IP9_23_20, AUDIO_CLKOUT_B), + PINMUX_IPSR_GPSR(IP9_23_20, AVB_TX_CLK), + PINMUX_IPSR_GPSR(IP9_27_24, VI1_DATA8), + PINMUX_IPSR_MSEL(IP9_27_24, SCL2_B, SEL_I2C02_1), + PINMUX_IPSR_GPSR(IP9_27_24, AVB_TX_EN), + PINMUX_IPSR_GPSR(IP9_31_28, VI1_DATA9), + PINMUX_IPSR_MSEL(IP9_31_28, SDA2_B, SEL_I2C02_1), + PINMUX_IPSR_GPSR(IP9_31_28, AVB_TXD0), + + /* IPSR10 */ + PINMUX_IPSR_GPSR(IP10_3_0, VI1_DATA10), + PINMUX_IPSR_MSEL(IP10_3_0, CAN0_RX_B, SEL_CAN0_1), + PINMUX_IPSR_GPSR(IP10_3_0, AVB_TXD1), + PINMUX_IPSR_GPSR(IP10_7_4, VI1_DATA11), + PINMUX_IPSR_MSEL(IP10_7_4, CAN0_TX_B, SEL_CAN0_1), + PINMUX_IPSR_GPSR(IP10_7_4, AVB_TXD2), + PINMUX_IPSR_GPSR(IP10_11_8, AVB_TXD3), + PINMUX_IPSR_MSEL(IP10_11_8, AUDIO_CLKA_B, SEL_ADGA_1), + PINMUX_IPSR_MSEL(IP10_11_8, SSI_SCK1_D, SEL_SSI1_3), + PINMUX_IPSR_MSEL(IP10_11_8, RX5_F, SEL_SCIF5_5), + PINMUX_IPSR_MSEL(IP10_11_8, MSIOF0_RXD_B, SEL_MSIOF0_1), + PINMUX_IPSR_GPSR(IP10_15_12, AVB_TXD4), + PINMUX_IPSR_MSEL(IP10_15_12, AUDIO_CLKB_B, SEL_ADGB_1), + PINMUX_IPSR_MSEL(IP10_15_12, SSI_WS1_D, SEL_SSI1_3), + PINMUX_IPSR_MSEL(IP10_15_12, TX5_F, SEL_SCIF5_5), + PINMUX_IPSR_MSEL(IP10_15_12, MSIOF0_TXD_B, SEL_MSIOF0_1), + PINMUX_IPSR_GPSR(IP10_19_16, AVB_TXD5), + PINMUX_IPSR_MSEL(IP10_19_16, SCIF_CLK_B, SEL_SCIFCLK_1), + PINMUX_IPSR_MSEL(IP10_19_16, AUDIO_CLKC_B, SEL_ADGC_1), + PINMUX_IPSR_MSEL(IP10_19_16, SSI_SDATA1_D, SEL_SSI1_3), + PINMUX_IPSR_MSEL(IP10_19_16, MSIOF0_SCK_B, SEL_MSIOF0_1), + PINMUX_IPSR_MSEL(IP10_23_20, SCL0_A, SEL_I2C00_0), + PINMUX_IPSR_MSEL(IP10_23_20, RX0_C, SEL_SCIF0_2), + PINMUX_IPSR_GPSR(IP10_23_20, PWM5_A), + PINMUX_IPSR_MSEL(IP10_23_20, TCLK1_B, SEL_TMU1_1), + PINMUX_IPSR_GPSR(IP10_23_20, AVB_TXD6), + PINMUX_IPSR_MSEL(IP10_23_20, CAN1_RX_D, SEL_CAN1_3), + PINMUX_IPSR_MSEL(IP10_23_20, MSIOF0_SYNC_B, SEL_MSIOF0_1), + PINMUX_IPSR_MSEL(IP10_27_24, SDA0_A, SEL_I2C00_0), + PINMUX_IPSR_MSEL(IP10_27_24, TX0_C, SEL_SCIF0_2), + PINMUX_IPSR_GPSR(IP10_27_24, IRQ5), + PINMUX_IPSR_MSEL(IP10_27_24, CAN_CLK_A, SEL_CANCLK_0), + PINMUX_IPSR_GPSR(IP10_27_24, AVB_GTX_CLK), + PINMUX_IPSR_MSEL(IP10_27_24, CAN1_TX_D, SEL_CAN1_3), + PINMUX_IPSR_GPSR(IP10_27_24, DVC_MUTE), + PINMUX_IPSR_MSEL(IP10_31_28, SCL1_A, SEL_I2C01_0), + PINMUX_IPSR_MSEL(IP10_31_28, RX4_A, SEL_SCIF4_0), + PINMUX_IPSR_GPSR(IP10_31_28, PWM5_D), + PINMUX_IPSR_GPSR(IP10_31_28, DU1_DR0), + PINMUX_IPSR_MSEL(IP10_31_28, SSI_SCK6_B, SEL_SSI6_1), + PINMUX_IPSR_GPSR(IP10_31_28, VI0_G0), + + /* IPSR11 */ + PINMUX_IPSR_MSEL(IP11_3_0, SDA1_A, SEL_I2C01_0), + PINMUX_IPSR_MSEL(IP11_3_0, TX4_A, SEL_SCIF4_0), + PINMUX_IPSR_GPSR(IP11_3_0, DU1_DR1), + PINMUX_IPSR_MSEL(IP11_3_0, SSI_WS6_B, SEL_SSI6_1), + PINMUX_IPSR_GPSR(IP11_3_0, VI0_G1), + PINMUX_IPSR_MSEL(IP11_7_4, MSIOF0_RXD_A, SEL_MSIOF0_0), + PINMUX_IPSR_MSEL(IP11_7_4, RX5_A, SEL_SCIF5_0), + PINMUX_IPSR_MSEL(IP11_7_4, SCL2_C, SEL_I2C02_2), + PINMUX_IPSR_GPSR(IP11_7_4, DU1_DR2), + PINMUX_IPSR_GPSR(IP11_7_4, QSPI1_MOSI_QSPI1_IO0), + PINMUX_IPSR_MSEL(IP11_7_4, SSI_SDATA6_B, SEL_SSI6_1), + PINMUX_IPSR_GPSR(IP11_7_4, VI0_G2), + PINMUX_IPSR_MSEL(IP11_11_8, MSIOF0_TXD_A, SEL_MSIOF0_0), + PINMUX_IPSR_MSEL(IP11_11_8, TX5_A, SEL_SCIF5_0), + PINMUX_IPSR_MSEL(IP11_11_8, SDA2_C, SEL_I2C02_2), + PINMUX_IPSR_GPSR(IP11_11_8, DU1_DR3), + PINMUX_IPSR_GPSR(IP11_11_8, QSPI1_MISO_QSPI1_IO1), + PINMUX_IPSR_MSEL(IP11_11_8, SSI_WS78_B, SEL_SSI7_1), + PINMUX_IPSR_GPSR(IP11_11_8, VI0_G3), + PINMUX_IPSR_MSEL(IP11_15_12, MSIOF0_SCK_A, SEL_MSIOF0_0), + PINMUX_IPSR_GPSR(IP11_15_12, IRQ0), + PINMUX_IPSR_GPSR(IP11_15_12, DU1_DR4), + PINMUX_IPSR_GPSR(IP11_15_12, QSPI1_SPCLK), + PINMUX_IPSR_MSEL(IP11_15_12, SSI_SCK78_B, SEL_SSI7_1), + PINMUX_IPSR_GPSR(IP11_15_12, VI0_G4), + PINMUX_IPSR_MSEL(IP11_19_16, MSIOF0_SYNC_A, SEL_MSIOF0_0), + PINMUX_IPSR_GPSR(IP11_19_16, PWM1_A), + PINMUX_IPSR_GPSR(IP11_19_16, DU1_DR5), + PINMUX_IPSR_GPSR(IP11_19_16, QSPI1_IO2), + PINMUX_IPSR_MSEL(IP11_19_16, SSI_SDATA7_B, SEL_SSI7_1), + PINMUX_IPSR_MSEL(IP11_23_20, MSIOF0_SS1_A, SEL_MSIOF0_0), + PINMUX_IPSR_GPSR(IP11_23_20, DU1_DR6), + PINMUX_IPSR_GPSR(IP11_23_20, QSPI1_IO3), + PINMUX_IPSR_MSEL(IP11_23_20, SSI_SDATA8_B, SEL_SSI8_1), + PINMUX_IPSR_MSEL(IP11_27_24, MSIOF0_SS2_A, SEL_MSIOF0_0), + PINMUX_IPSR_GPSR(IP11_27_24, DU1_DR7), + PINMUX_IPSR_GPSR(IP11_27_24, QSPI1_SSL), + PINMUX_IPSR_MSEL(IP11_31_28, HRX1_A, SEL_HSCIF1_0), + PINMUX_IPSR_MSEL(IP11_31_28, SCL4_A, SEL_I2C04_0), + PINMUX_IPSR_GPSR(IP11_31_28, PWM6_A), + PINMUX_IPSR_GPSR(IP11_31_28, DU1_DG0), + PINMUX_IPSR_MSEL(IP11_31_28, RX0_A, SEL_SCIF0_0), + + /* IPSR12 */ + PINMUX_IPSR_MSEL(IP12_3_0, HTX1_A, SEL_HSCIF1_0), + PINMUX_IPSR_MSEL(IP12_3_0, SDA4_A, SEL_I2C04_0), + PINMUX_IPSR_GPSR(IP12_3_0, DU1_DG1), + PINMUX_IPSR_MSEL(IP12_3_0, TX0_A, SEL_SCIF0_0), + PINMUX_IPSR_MSEL(IP12_7_4, HCTS1_N_A, SEL_HSCIF1_0), + PINMUX_IPSR_GPSR(IP12_7_4, PWM2_A), + PINMUX_IPSR_GPSR(IP12_7_4, DU1_DG2), + PINMUX_IPSR_MSEL(IP12_7_4, REMOCON_B, SEL_RCN_1), + PINMUX_IPSR_MSEL(IP12_11_8, HRTS1_N_A, SEL_HSCIF1_0), + PINMUX_IPSR_GPSR(IP12_11_8, DU1_DG3), + PINMUX_IPSR_MSEL(IP12_11_8, SSI_WS1_B, SEL_SSI1_1), + PINMUX_IPSR_GPSR(IP12_11_8, IRQ1), + PINMUX_IPSR_GPSR(IP12_15_12, SD2_CLK), + PINMUX_IPSR_GPSR(IP12_15_12, HSCK1), + PINMUX_IPSR_GPSR(IP12_15_12, DU1_DG4), + PINMUX_IPSR_MSEL(IP12_15_12, SSI_SCK1_B, SEL_SSI1_1), + PINMUX_IPSR_GPSR(IP12_19_16, SD2_CMD), + PINMUX_IPSR_MSEL(IP12_19_16, SCIF1_SCK_A, SEL_SCIF1_0), + PINMUX_IPSR_MSEL(IP12_19_16, TCLK2_A, SEL_TMU2_0), + PINMUX_IPSR_GPSR(IP12_19_16, DU1_DG5), + PINMUX_IPSR_MSEL(IP12_19_16, SSI_SCK2_B, SEL_SSI2_1), + PINMUX_IPSR_GPSR(IP12_19_16, PWM3_A), + PINMUX_IPSR_GPSR(IP12_23_20, SD2_DAT0), + PINMUX_IPSR_MSEL(IP12_23_20, RX1_A, SEL_SCIF1_0), + PINMUX_IPSR_MSEL(IP12_23_20, SCL1_E, SEL_I2C01_4), + PINMUX_IPSR_GPSR(IP12_23_20, DU1_DG6), + PINMUX_IPSR_MSEL(IP12_23_20, SSI_SDATA1_B, SEL_SSI1_1), + PINMUX_IPSR_GPSR(IP12_27_24, SD2_DAT1), + PINMUX_IPSR_MSEL(IP12_27_24, TX1_A, SEL_SCIF1_0), + PINMUX_IPSR_MSEL(IP12_27_24, SDA1_E, SEL_I2C01_4), + PINMUX_IPSR_GPSR(IP12_27_24, DU1_DG7), + PINMUX_IPSR_MSEL(IP12_27_24, SSI_WS2_B, SEL_SSI2_1), + PINMUX_IPSR_GPSR(IP12_31_28, SD2_DAT2), + PINMUX_IPSR_MSEL(IP12_31_28, RX2_A, SEL_SCIF2_0), + PINMUX_IPSR_GPSR(IP12_31_28, DU1_DB0), + PINMUX_IPSR_MSEL(IP12_31_28, SSI_SDATA2_B, SEL_SSI2_1), + + /* IPSR13 */ + PINMUX_IPSR_GPSR(IP13_3_0, SD2_DAT3), + PINMUX_IPSR_MSEL(IP13_3_0, TX2_A, SEL_SCIF2_0), + PINMUX_IPSR_GPSR(IP13_3_0, DU1_DB1), + PINMUX_IPSR_MSEL(IP13_3_0, SSI_WS9_B, SEL_SSI9_1), + PINMUX_IPSR_GPSR(IP13_7_4, SD2_CD), + PINMUX_IPSR_MSEL(IP13_7_4, SCIF2_SCK_A, SEL_SCIF2_CLK_0), + PINMUX_IPSR_GPSR(IP13_7_4, DU1_DB2), + PINMUX_IPSR_MSEL(IP13_7_4, SSI_SCK9_B, SEL_SSI9_1), + PINMUX_IPSR_GPSR(IP13_11_8, SD2_WP), + PINMUX_IPSR_GPSR(IP13_11_8, SCIF3_SCK), + PINMUX_IPSR_GPSR(IP13_11_8, DU1_DB3), + PINMUX_IPSR_MSEL(IP13_11_8, SSI_SDATA9_B, SEL_SSI9_1), + PINMUX_IPSR_MSEL(IP13_15_12, RX3_A, SEL_SCIF3_0), + PINMUX_IPSR_MSEL(IP13_15_12, SCL1_C, SEL_I2C01_2), + PINMUX_IPSR_MSEL(IP13_15_12, MSIOF1_RXD_B, SEL_MSIOF1_1), + PINMUX_IPSR_GPSR(IP13_15_12, DU1_DB4), + PINMUX_IPSR_MSEL(IP13_15_12, AUDIO_CLKA_C, SEL_ADGA_2), + PINMUX_IPSR_MSEL(IP13_15_12, SSI_SDATA4_B, SEL_SSI4_1), + PINMUX_IPSR_MSEL(IP13_19_16, TX3_A, SEL_SCIF3_0), + PINMUX_IPSR_MSEL(IP13_19_16, SDA1_C, SEL_I2C01_2), + PINMUX_IPSR_MSEL(IP13_19_16, MSIOF1_TXD_B, SEL_MSIOF1_1), + PINMUX_IPSR_GPSR(IP13_19_16, DU1_DB5), + PINMUX_IPSR_MSEL(IP13_19_16, AUDIO_CLKB_C, SEL_ADGB_2), + PINMUX_IPSR_MSEL(IP13_19_16, SSI_WS4_B, SEL_SSI4_1), + PINMUX_IPSR_MSEL(IP13_23_20, SCL2_A, SEL_I2C02_0), + PINMUX_IPSR_MSEL(IP13_23_20, MSIOF1_SCK_B, SEL_MSIOF1_1), + PINMUX_IPSR_GPSR(IP13_23_20, DU1_DB6), + PINMUX_IPSR_MSEL(IP13_23_20, AUDIO_CLKC_C, SEL_ADGC_2), + PINMUX_IPSR_MSEL(IP13_23_20, SSI_SCK4_B, SEL_SSI4_1), + PINMUX_IPSR_MSEL(IP13_27_24, SDA2_A, SEL_I2C02_0), + PINMUX_IPSR_MSEL(IP13_27_24, MSIOF1_SYNC_B, SEL_MSIOF1_1), + PINMUX_IPSR_GPSR(IP13_27_24, DU1_DB7), + PINMUX_IPSR_GPSR(IP13_27_24, AUDIO_CLKOUT_C), + PINMUX_IPSR_MSEL(IP13_31_28, SSI_SCK5_A, SEL_SSI5_0), + PINMUX_IPSR_GPSR(IP13_31_28, DU1_DOTCLKOUT1), + + /* IPSR14 */ + PINMUX_IPSR_MSEL(IP14_3_0, SSI_WS5_A, SEL_SSI5_0), + PINMUX_IPSR_MSEL(IP14_3_0, SCL3_C, SEL_I2C03_2), + PINMUX_IPSR_GPSR(IP14_3_0, DU1_DOTCLKIN), + PINMUX_IPSR_MSEL(IP14_7_4, SSI_SDATA5_A, SEL_SSI5_0), + PINMUX_IPSR_MSEL(IP14_7_4, SDA3_C, SEL_I2C03_2), + PINMUX_IPSR_GPSR(IP14_7_4, DU1_DOTCLKOUT0), + PINMUX_IPSR_MSEL(IP14_11_8, SSI_SCK6_A, SEL_SSI6_0), + PINMUX_IPSR_GPSR(IP14_11_8, DU1_EXODDF_DU1_ODDF_DISP_CDE), + PINMUX_IPSR_MSEL(IP14_15_12, SSI_WS6_A, SEL_SSI6_0), + PINMUX_IPSR_MSEL(IP14_15_12, SCL4_C, SEL_I2C04_2), + PINMUX_IPSR_GPSR(IP14_15_12, DU1_EXHSYNC_DU1_HSYNC), + PINMUX_IPSR_MSEL(IP14_19_16, SSI_SDATA6_A, SEL_SSI6_0), + PINMUX_IPSR_MSEL(IP14_19_16, SDA4_C, SEL_I2C04_2), + PINMUX_IPSR_GPSR(IP14_19_16, DU1_EXVSYNC_DU1_VSYNC), + PINMUX_IPSR_MSEL(IP14_23_20, SSI_SCK78_A, SEL_SSI7_0), + PINMUX_IPSR_MSEL(IP14_23_20, SDA4_E, SEL_I2C04_4), + PINMUX_IPSR_GPSR(IP14_23_20, DU1_DISP), + PINMUX_IPSR_MSEL(IP14_27_24, SSI_WS78_A, SEL_SSI7_0), + PINMUX_IPSR_MSEL(IP14_27_24, SCL4_E, SEL_I2C04_4), + PINMUX_IPSR_GPSR(IP14_27_24, DU1_CDE), + PINMUX_IPSR_MSEL(IP14_31_28, SSI_SDATA7_A, SEL_SSI7_0), + PINMUX_IPSR_GPSR(IP14_31_28, IRQ8), + PINMUX_IPSR_MSEL(IP14_31_28, AUDIO_CLKA_D, SEL_ADGA_3), + PINMUX_IPSR_MSEL(IP14_31_28, CAN_CLK_D, SEL_CANCLK_3), + PINMUX_IPSR_GPSR(IP14_31_28, VI0_G5), + + /* IPSR15 */ + PINMUX_IPSR_MSEL(IP15_3_0, SSI_SCK0129_A, SEL_SSI0_0), + PINMUX_IPSR_MSEL(IP15_3_0, MSIOF1_RXD_A, SEL_MSIOF1_0), + PINMUX_IPSR_MSEL(IP15_3_0, RX5_D, SEL_SCIF5_3), + PINMUX_IPSR_GPSR(IP15_3_0, VI0_G6), + PINMUX_IPSR_MSEL(IP15_7_4, SSI_WS0129_A, SEL_SSI0_0), + PINMUX_IPSR_MSEL(IP15_7_4, MSIOF1_TXD_A, SEL_MSIOF1_0), + PINMUX_IPSR_MSEL(IP15_7_4, TX5_D, SEL_SCIF5_3), + PINMUX_IPSR_GPSR(IP15_7_4, VI0_G7), + PINMUX_IPSR_MSEL(IP15_11_8, SSI_SDATA0_A, SEL_SSI0_0), + PINMUX_IPSR_MSEL(IP15_11_8, MSIOF1_SYNC_A, SEL_MSIOF1_0), + PINMUX_IPSR_GPSR(IP15_11_8, PWM0_C), + PINMUX_IPSR_GPSR(IP15_11_8, VI0_R0), + PINMUX_IPSR_GPSR(IP15_15_12, SSI_SCK34), + PINMUX_IPSR_MSEL(IP15_15_12, MSIOF1_SCK_A, SEL_MSIOF1_0), + PINMUX_IPSR_GPSR(IP15_15_12, AVB_MDC), + PINMUX_IPSR_GPSR(IP15_15_12, DACK1), + PINMUX_IPSR_GPSR(IP15_15_12, VI0_R1), + PINMUX_IPSR_GPSR(IP15_19_16, SSI_WS34), + PINMUX_IPSR_MSEL(IP15_19_16, MSIOF1_SS1_A, SEL_MSIOF1_0), + PINMUX_IPSR_GPSR(IP15_19_16, AVB_MDIO), + PINMUX_IPSR_MSEL(IP15_19_16, CAN1_RX_A, SEL_CAN1_0), + PINMUX_IPSR_GPSR(IP15_19_16, DREQ1_N), + PINMUX_IPSR_GPSR(IP15_19_16, VI0_R2), + PINMUX_IPSR_GPSR(IP15_23_20, SSI_SDATA3), + PINMUX_IPSR_MSEL(IP15_23_20, MSIOF1_SS2_A, SEL_MSIOF1_0), + PINMUX_IPSR_GPSR(IP15_23_20, AVB_LINK), + PINMUX_IPSR_MSEL(IP15_23_20, CAN1_TX_A, SEL_CAN1_0), + PINMUX_IPSR_GPSR(IP15_23_20, DREQ2_N), + PINMUX_IPSR_GPSR(IP15_23_20, VI0_R3), + PINMUX_IPSR_MSEL(IP15_27_24, SSI_SCK4_A, SEL_SSI4_0), + PINMUX_IPSR_GPSR(IP15_27_24, AVB_MAGIC), + PINMUX_IPSR_GPSR(IP15_27_24, VI0_R4), + PINMUX_IPSR_MSEL(IP15_31_28, SSI_WS4_A, SEL_SSI4_0), + PINMUX_IPSR_GPSR(IP15_31_28, AVB_PHY_INT), + PINMUX_IPSR_GPSR(IP15_31_28, VI0_R5), + + /* IPSR16 */ + PINMUX_IPSR_MSEL(IP16_3_0, SSI_SDATA4_A, SEL_SSI4_0), + PINMUX_IPSR_GPSR(IP16_3_0, AVB_CRS), + PINMUX_IPSR_GPSR(IP16_3_0, VI0_R6), + PINMUX_IPSR_MSEL(IP16_7_4, SSI_SCK1_A, SEL_SSI1_0), + PINMUX_IPSR_MSEL(IP16_7_4, SCIF1_SCK_B, SEL_SCIF1_1), + PINMUX_IPSR_GPSR(IP16_7_4, PWM1_D), + PINMUX_IPSR_GPSR(IP16_7_4, IRQ9), + PINMUX_IPSR_MSEL(IP16_7_4, REMOCON_A, SEL_RCN_0), + PINMUX_IPSR_GPSR(IP16_7_4, DACK2), + PINMUX_IPSR_GPSR(IP16_7_4, VI0_CLK), + PINMUX_IPSR_GPSR(IP16_7_4, AVB_COL), + PINMUX_IPSR_MSEL(IP16_11_8, SSI_SDATA8_A, SEL_SSI8_0), + PINMUX_IPSR_MSEL(IP16_11_8, RX1_B, SEL_SCIF1_1), + PINMUX_IPSR_MSEL(IP16_11_8, CAN0_RX_D, SEL_CAN0_3), + PINMUX_IPSR_MSEL(IP16_11_8, AVB_AVTP_CAPTURE_B, SEL_AVB_1), + PINMUX_IPSR_GPSR(IP16_11_8, VI0_R7), + PINMUX_IPSR_MSEL(IP16_15_12, SSI_WS1_A, SEL_SSI1_0), + PINMUX_IPSR_MSEL(IP16_15_12, TX1_B, SEL_SCIF1_1), + PINMUX_IPSR_MSEL(IP16_15_12, CAN0_TX_D, SEL_CAN0_3), + PINMUX_IPSR_MSEL(IP16_15_12, AVB_AVTP_MATCH_B, SEL_AVB_1), + PINMUX_IPSR_GPSR(IP16_15_12, VI0_DATA0_VI0_B0), + PINMUX_IPSR_MSEL(IP16_19_16, SSI_SDATA1_A, SEL_SSI1_0), + PINMUX_IPSR_MSEL(IP16_19_16, HRX1_B, SEL_HSCIF1_1), + PINMUX_IPSR_GPSR(IP16_19_16, VI0_DATA1_VI0_B1), + PINMUX_IPSR_MSEL(IP16_23_20, SSI_SCK2_A, SEL_SSI2_0), + PINMUX_IPSR_MSEL(IP16_23_20, HTX1_B, SEL_HSCIF1_1), + PINMUX_IPSR_GPSR(IP16_23_20, AVB_TXD7), + PINMUX_IPSR_GPSR(IP16_23_20, VI0_DATA2_VI0_B2), + PINMUX_IPSR_MSEL(IP16_27_24, SSI_WS2_A, SEL_SSI2_0), + PINMUX_IPSR_MSEL(IP16_27_24, HCTS1_N_B, SEL_HSCIF1_1), + PINMUX_IPSR_GPSR(IP16_27_24, AVB_TX_ER), + PINMUX_IPSR_GPSR(IP16_27_24, VI0_DATA3_VI0_B3), + PINMUX_IPSR_MSEL(IP16_31_28, SSI_SDATA2_A, SEL_SSI2_0), + PINMUX_IPSR_MSEL(IP16_31_28, HRTS1_N_B, SEL_HSCIF1_1), + PINMUX_IPSR_GPSR(IP16_31_28, VI0_DATA4_VI0_B4), + + /* IPSR17 */ + PINMUX_IPSR_MSEL(IP17_3_0, SSI_SCK9_A, SEL_SSI9_0), + PINMUX_IPSR_MSEL(IP17_3_0, RX2_B, SEL_SCIF2_1), + PINMUX_IPSR_MSEL(IP17_3_0, SCL3_E, SEL_I2C03_4), + PINMUX_IPSR_GPSR(IP17_3_0, EX_WAIT1), + PINMUX_IPSR_GPSR(IP17_3_0, VI0_DATA5_VI0_B5), + PINMUX_IPSR_MSEL(IP17_7_4, SSI_WS9_A, SEL_SSI9_0), + PINMUX_IPSR_MSEL(IP17_7_4, TX2_B, SEL_SCIF2_1), + PINMUX_IPSR_MSEL(IP17_7_4, SDA3_E, SEL_I2C03_4), + PINMUX_IPSR_GPSR(IP17_7_4, VI0_DATA6_VI0_B6), + PINMUX_IPSR_MSEL(IP17_11_8, SSI_SDATA9_A, SEL_SSI9_0), + PINMUX_IPSR_GPSR(IP17_11_8, SCIF2_SCK_B), + PINMUX_IPSR_GPSR(IP17_11_8, PWM2_D), + PINMUX_IPSR_GPSR(IP17_11_8, VI0_DATA7_VI0_B7), + PINMUX_IPSR_MSEL(IP17_15_12, AUDIO_CLKA_A, SEL_ADGA_0), + PINMUX_IPSR_MSEL(IP17_15_12, SCL0_B, SEL_I2C00_1), + PINMUX_IPSR_GPSR(IP17_15_12, VI0_CLKENB), + PINMUX_IPSR_MSEL(IP17_19_16, AUDIO_CLKB_A, SEL_ADGB_0), + PINMUX_IPSR_MSEL(IP17_19_16, SDA0_B, SEL_I2C00_1), + PINMUX_IPSR_GPSR(IP17_19_16, VI0_FIELD), + PINMUX_IPSR_MSEL(IP17_23_20, AUDIO_CLKC_A, SEL_ADGC_0), + PINMUX_IPSR_MSEL(IP17_23_20, SCL4_B, SEL_I2C04_1), + PINMUX_IPSR_GPSR(IP17_23_20, VI0_HSYNC_N), + PINMUX_IPSR_GPSR(IP17_27_24, AUDIO_CLKOUT_A), + PINMUX_IPSR_MSEL(IP17_27_24, SDA4_B, SEL_I2C04_1), + PINMUX_IPSR_GPSR(IP17_27_24, VI0_VSYNC_N), +}; + +static const struct sh_pfc_pin pinmux_pins[] = { + PINMUX_GPIO_GP_ALL(), +}; + +/* - MMC -------------------------------------------------------------------- */ +static const unsigned int mmc_data1_pins[] = { + /* D0 */ + RCAR_GP_PIN(0, 15), +}; +static const unsigned int mmc_data1_mux[] = { + MMC0_D0_SDHI1_D0_MARK, +}; +static const unsigned int mmc_data4_pins[] = { + /* D[0:3] */ + RCAR_GP_PIN(0, 15), RCAR_GP_PIN(0, 16), + RCAR_GP_PIN(0, 17), RCAR_GP_PIN(0, 18), +}; +static const unsigned int mmc_data4_mux[] = { + MMC0_D0_SDHI1_D0_MARK, MMC0_D1_SDHI1_D1_MARK, + MMC0_D2_SDHI1_D2_MARK, MMC0_D3_SDHI1_D3_MARK, +}; +static const unsigned int mmc_data8_pins[] = { + /* D[0:3] */ + RCAR_GP_PIN(0, 15), RCAR_GP_PIN(0, 16), + RCAR_GP_PIN(0, 17), RCAR_GP_PIN(0, 18), + RCAR_GP_PIN(0, 19), RCAR_GP_PIN(0, 20), + RCAR_GP_PIN(0, 21), RCAR_GP_PIN(0, 22), +}; +static const unsigned int mmc_data8_mux[] = { + MMC0_D0_SDHI1_D0_MARK, MMC0_D1_SDHI1_D1_MARK, + MMC0_D2_SDHI1_D2_MARK, MMC0_D3_SDHI1_D3_MARK, + MMC0_D4_MARK, MMC0_D5_MARK, + MMC0_D6_MARK, MMC0_D7_MARK, +}; +static const unsigned int mmc_ctrl_pins[] = { + /* CLK, CMD */ + RCAR_GP_PIN(0, 13), RCAR_GP_PIN(0, 14), +}; +static const unsigned int mmc_ctrl_mux[] = { + MMC0_CLK_SDHI1_CLK_MARK, MMC0_CMD_SDHI1_CMD_MARK, +}; +/* - SCIF0 ------------------------------------------------------------------ */ +static const unsigned int scif0_data_a_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(4, 10), RCAR_GP_PIN(4, 11), +}; +static const unsigned int scif0_data_a_mux[] = { + RX0_A_MARK, TX0_A_MARK, +}; +static const unsigned int scif0_data_b_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(3, 11), RCAR_GP_PIN(3, 12), +}; +static const unsigned int scif0_data_b_mux[] = { + RX0_B_MARK, TX0_B_MARK, +}; +static const unsigned int scif0_data_c_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(4, 0), RCAR_GP_PIN(4, 1), +}; +static const unsigned int scif0_data_c_mux[] = { + RX0_C_MARK, TX0_C_MARK, +}; +static const unsigned int scif0_data_d_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(2, 2), RCAR_GP_PIN(2, 3), +}; +static const unsigned int scif0_data_d_mux[] = { + RX0_D_MARK, TX0_D_MARK, +}; +/* - SCIF1 ------------------------------------------------------------------ */ +static const unsigned int scif1_data_a_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(4, 16), RCAR_GP_PIN(4, 17), +}; +static const unsigned int scif1_data_a_mux[] = { + RX1_A_MARK, TX1_A_MARK, +}; +static const unsigned int scif1_clk_a_pins[] = { + /* SCK */ + RCAR_GP_PIN(4, 15), +}; +static const unsigned int scif1_clk_a_mux[] = { + SCIF1_SCK_A_MARK, +}; +static const unsigned int scif1_data_b_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(5, 19), RCAR_GP_PIN(5, 20), +}; +static const unsigned int scif1_data_b_mux[] = { + RX1_B_MARK, TX1_B_MARK, +}; +static const unsigned int scif1_clk_b_pins[] = { + /* SCK */ + RCAR_GP_PIN(5, 18), +}; +static const unsigned int scif1_clk_b_mux[] = { + SCIF1_SCK_B_MARK, +}; +static const unsigned int scif1_data_c_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(1, 8), RCAR_GP_PIN(1, 9), +}; +static const unsigned int scif1_data_c_mux[] = { + RX1_C_MARK, TX1_C_MARK, +}; +static const unsigned int scif1_clk_c_pins[] = { + /* SCK */ + RCAR_GP_PIN(1, 7), +}; +static const unsigned int scif1_clk_c_mux[] = { + SCIF1_SCK_C_MARK, +}; +static const unsigned int scif1_data_d_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 5), +}; +static const unsigned int scif1_data_d_mux[] = { + RX1_D_MARK, TX1_D_MARK, +}; +/* - SCIF2 ------------------------------------------------------------------ */ +static const unsigned int scif2_data_a_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(4, 18), RCAR_GP_PIN(4, 19), +}; +static const unsigned int scif2_data_a_mux[] = { + RX2_A_MARK, TX2_A_MARK, +}; +static const unsigned int scif2_clk_a_pins[] = { + /* SCK */ + RCAR_GP_PIN(4, 20), +}; +static const unsigned int scif2_clk_a_mux[] = { + SCIF2_SCK_A_MARK, +}; +static const unsigned int scif2_data_b_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(5, 25), RCAR_GP_PIN(5, 26), +}; +static const unsigned int scif2_data_b_mux[] = { + RX2_B_MARK, TX2_B_MARK, +}; +static const unsigned int scif2_clk_b_pins[] = { + /* SCK */ + RCAR_GP_PIN(5, 27), +}; +static const unsigned int scif2_clk_b_mux[] = { + SCIF2_SCK_B_MARK, +}; +static const unsigned int scif2_data_c_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 7), +}; +static const unsigned int scif2_data_c_mux[] = { + RX2_C_MARK, TX2_C_MARK, +}; +/* - SCIF3 ------------------------------------------------------------------ */ +static const unsigned int scif3_data_a_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(4, 22), RCAR_GP_PIN(4, 23), +}; +static const unsigned int scif3_data_a_mux[] = { + RX3_A_MARK, TX3_A_MARK, +}; +static const unsigned int scif3_clk_pins[] = { + /* SCK */ + RCAR_GP_PIN(4, 21), +}; +static const unsigned int scif3_clk_mux[] = { + SCIF3_SCK_MARK, +}; +static const unsigned int scif3_data_b_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(2, 8), RCAR_GP_PIN(2, 9), +}; +static const unsigned int scif3_data_b_mux[] = { + RX3_B_MARK, TX3_B_MARK, +}; +static const unsigned int scif3_data_c_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(0, 5), RCAR_GP_PIN(0, 6), +}; +static const unsigned int scif3_data_c_mux[] = { + RX3_C_MARK, TX3_C_MARK, +}; +/* - SCIF4 ------------------------------------------------------------------ */ +static const unsigned int scif4_data_a_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(4, 2), RCAR_GP_PIN(4, 3), +}; +static const unsigned int scif4_data_a_mux[] = { + RX4_A_MARK, TX4_A_MARK, +}; +static const unsigned int scif4_data_b_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3), +}; +static const unsigned int scif4_data_b_mux[] = { + RX4_B_MARK, TX4_B_MARK, +}; +static const unsigned int scif4_data_c_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(1, 13), RCAR_GP_PIN(1, 14), +}; +static const unsigned int scif4_data_c_mux[] = { + RX4_C_MARK, TX4_C_MARK, +}; +static const unsigned int scif4_data_d_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(2, 10), RCAR_GP_PIN(2, 11), +}; +static const unsigned int scif4_data_d_mux[] = { + RX4_D_MARK, TX4_D_MARK, +}; +static const unsigned int scif4_data_e_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(0, 7), RCAR_GP_PIN(0, 8), +}; +static const unsigned int scif4_data_e_mux[] = { + RX4_E_MARK, TX4_E_MARK, +}; +/* - SCIF5 ------------------------------------------------------------------ */ +static const unsigned int scif5_data_a_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5), +}; +static const unsigned int scif5_data_a_mux[] = { + RX5_A_MARK, TX5_A_MARK, +}; +static const unsigned int scif5_data_b_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(1, 0), RCAR_GP_PIN(1, 1), +}; +static const unsigned int scif5_data_b_mux[] = { + RX5_B_MARK, TX5_B_MARK, +}; +static const unsigned int scif5_data_c_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(2, 0), RCAR_GP_PIN(2, 1), +}; +static const unsigned int scif5_data_c_mux[] = { + RX5_C_MARK, TX5_C_MARK, +}; +static const unsigned int scif5_data_d_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(5, 9), RCAR_GP_PIN(5, 10), +}; +static const unsigned int scif5_data_d_mux[] = { + RX5_D_MARK, TX5_D_MARK, +}; +static const unsigned int scif5_data_e_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(0, 9), RCAR_GP_PIN(0, 10), +}; +static const unsigned int scif5_data_e_mux[] = { + RX5_E_MARK, TX5_E_MARK, +}; +static const unsigned int scif5_data_f_pins[] = { + /* RX, TX */ + RCAR_GP_PIN(3, 27), RCAR_GP_PIN(3, 28), +}; +static const unsigned int scif5_data_f_mux[] = { + RX5_F_MARK, TX5_F_MARK, +}; +/* - SCIF Clock ------------------------------------------------------------- */ +static const unsigned int scif_clk_a_pins[] = { + /* SCIF_CLK */ + RCAR_GP_PIN(1, 22), +}; +static const unsigned int scif_clk_a_mux[] = { + SCIF_CLK_A_MARK, +}; +static const unsigned int scif_clk_b_pins[] = { + /* SCIF_CLK */ + RCAR_GP_PIN(3, 29), +}; +static const unsigned int scif_clk_b_mux[] = { + SCIF_CLK_B_MARK, +}; + +static const struct sh_pfc_pin_group pinmux_groups[] = { + SH_PFC_PIN_GROUP(mmc_data1), + SH_PFC_PIN_GROUP(mmc_data4), + SH_PFC_PIN_GROUP(mmc_data8), + SH_PFC_PIN_GROUP(mmc_ctrl), + SH_PFC_PIN_GROUP(scif0_data_a), + SH_PFC_PIN_GROUP(scif0_data_b), + SH_PFC_PIN_GROUP(scif0_data_c), + SH_PFC_PIN_GROUP(scif0_data_d), + SH_PFC_PIN_GROUP(scif1_data_a), + SH_PFC_PIN_GROUP(scif1_clk_a), + SH_PFC_PIN_GROUP(scif1_data_b), + SH_PFC_PIN_GROUP(scif1_clk_b), + SH_PFC_PIN_GROUP(scif1_data_c), + SH_PFC_PIN_GROUP(scif1_clk_c), + SH_PFC_PIN_GROUP(scif1_data_d), + SH_PFC_PIN_GROUP(scif2_data_a), + SH_PFC_PIN_GROUP(scif2_clk_a), + SH_PFC_PIN_GROUP(scif2_data_b), + SH_PFC_PIN_GROUP(scif2_clk_b), + SH_PFC_PIN_GROUP(scif2_data_c), + SH_PFC_PIN_GROUP(scif3_data_a), + SH_PFC_PIN_GROUP(scif3_clk), + SH_PFC_PIN_GROUP(scif3_data_b), + SH_PFC_PIN_GROUP(scif3_data_c), + SH_PFC_PIN_GROUP(scif4_data_a), + SH_PFC_PIN_GROUP(scif4_data_b), + SH_PFC_PIN_GROUP(scif4_data_c), + SH_PFC_PIN_GROUP(scif4_data_d), + SH_PFC_PIN_GROUP(scif4_data_e), + SH_PFC_PIN_GROUP(scif5_data_a), + SH_PFC_PIN_GROUP(scif5_data_b), + SH_PFC_PIN_GROUP(scif5_data_c), + SH_PFC_PIN_GROUP(scif5_data_d), + SH_PFC_PIN_GROUP(scif5_data_e), + SH_PFC_PIN_GROUP(scif5_data_f), + SH_PFC_PIN_GROUP(scif_clk_a), + SH_PFC_PIN_GROUP(scif_clk_b), +}; + +static const char * const mmc_groups[] = { + "mmc_data1", + "mmc_data4", + "mmc_data8", + "mmc_ctrl", +}; + +static const char * const scif0_groups[] = { + "scif0_data_a", + "scif0_data_b", + "scif0_data_c", + "scif0_data_d", +}; + +static const char * const scif1_groups[] = { + "scif1_data_a", + "scif1_clk_a", + "scif1_data_b", + "scif1_clk_b", + "scif1_data_c", + "scif1_clk_c", + "scif1_data_d", +}; + +static const char * const scif2_groups[] = { + "scif2_data_a", + "scif2_clk_a", + "scif2_data_b", + "scif2_clk_b", + "scif2_data_c", +}; + +static const char * const scif3_groups[] = { + "scif3_data_a", + "scif3_clk", + "scif3_data_b", + "scif3_data_c", +}; + +static const char * const scif4_groups[] = { + "scif4_data_a", + "scif4_data_b", + "scif4_data_c", + "scif4_data_d", + "scif4_data_e", +}; + +static const char * const scif5_groups[] = { + "scif5_data_a", + "scif5_data_b", + "scif5_data_c", + "scif5_data_d", + "scif5_data_e", + "scif5_data_f", +}; + +static const char * const scif_clk_groups[] = { + "scif_clk_a", + "scif_clk_b", +}; + +static const struct sh_pfc_function pinmux_functions[] = { + SH_PFC_FUNCTION(mmc), + SH_PFC_FUNCTION(scif0), + SH_PFC_FUNCTION(scif1), + SH_PFC_FUNCTION(scif2), + SH_PFC_FUNCTION(scif3), + SH_PFC_FUNCTION(scif4), + SH_PFC_FUNCTION(scif5), + SH_PFC_FUNCTION(scif_clk), +}; + +static const struct pinmux_cfg_reg pinmux_config_regs[] = { + { PINMUX_CFG_REG("GPSR0", 0xE6060004, 32, 1) { + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + GP_0_22_FN, FN_MMC0_D7, + GP_0_21_FN, FN_MMC0_D6, + GP_0_20_FN, FN_IP1_7_4, + GP_0_19_FN, FN_IP1_3_0, + GP_0_18_FN, FN_MMC0_D3_SDHI1_D3, + GP_0_17_FN, FN_MMC0_D2_SDHI1_D2, + GP_0_16_FN, FN_MMC0_D1_SDHI1_D1, + GP_0_15_FN, FN_MMC0_D0_SDHI1_D0, + GP_0_14_FN, FN_MMC0_CMD_SDHI1_CMD, + GP_0_13_FN, FN_MMC0_CLK_SDHI1_CLK, + GP_0_12_FN, FN_IP0_31_28, + GP_0_11_FN, FN_IP0_27_24, + GP_0_10_FN, FN_IP0_23_20, + GP_0_9_FN, FN_IP0_19_16, + GP_0_8_FN, FN_IP0_15_12, + GP_0_7_FN, FN_IP0_11_8, + GP_0_6_FN, FN_IP0_7_4, + GP_0_5_FN, FN_IP0_3_0, + GP_0_4_FN, FN_CLKOUT, + GP_0_3_FN, FN_USB1_OVC, + GP_0_2_FN, FN_USB1_PWEN, + GP_0_1_FN, FN_USB0_OVC, + GP_0_0_FN, FN_USB0_PWEN, } + }, + { PINMUX_CFG_REG("GPSR1", 0xE6060008, 32, 1) { + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + GP_1_22_FN, FN_IP4_3_0, + GP_1_21_FN, FN_IP3_31_28, + GP_1_20_FN, FN_IP3_27_24, + GP_1_19_FN, FN_IP3_23_20, + GP_1_18_FN, FN_IP3_19_16, + GP_1_17_FN, FN_IP3_15_12, + GP_1_16_FN, FN_IP3_11_8, + GP_1_15_FN, FN_IP3_7_4, + GP_1_14_FN, FN_IP3_3_0, + GP_1_13_FN, FN_IP2_31_28, + GP_1_12_FN, FN_IP2_27_24, + GP_1_11_FN, FN_IP2_23_20, + GP_1_10_FN, FN_IP2_19_16, + GP_1_9_FN, FN_IP2_15_12, + GP_1_8_FN, FN_IP2_11_8, + GP_1_7_FN, FN_IP2_7_4, + GP_1_6_FN, FN_IP2_3_0, + GP_1_5_FN, FN_IP1_31_28, + GP_1_4_FN, FN_IP1_27_24, + GP_1_3_FN, FN_IP1_23_20, + GP_1_2_FN, FN_IP1_19_16, + GP_1_1_FN, FN_IP1_15_12, + GP_1_0_FN, FN_IP1_11_8, } + }, + { PINMUX_CFG_REG("GPSR2", 0xE606000C, 32, 1) { + GP_2_31_FN, FN_IP8_3_0, + GP_2_30_FN, FN_IP7_31_28, + GP_2_29_FN, FN_IP7_27_24, + GP_2_28_FN, FN_IP7_23_20, + GP_2_27_FN, FN_IP7_19_16, + GP_2_26_FN, FN_IP7_15_12, + GP_2_25_FN, FN_IP7_11_8, + GP_2_24_FN, FN_IP7_7_4, + GP_2_23_FN, FN_IP7_3_0, + GP_2_22_FN, FN_IP6_31_28, + GP_2_21_FN, FN_IP6_27_24, + GP_2_20_FN, FN_IP6_23_20, + GP_2_19_FN, FN_IP6_19_16, + GP_2_18_FN, FN_IP6_15_12, + GP_2_17_FN, FN_IP6_11_8, + GP_2_16_FN, FN_IP6_7_4, + GP_2_15_FN, FN_IP6_3_0, + GP_2_14_FN, FN_IP5_31_28, + GP_2_13_FN, FN_IP5_27_24, + GP_2_12_FN, FN_IP5_23_20, + GP_2_11_FN, FN_IP5_19_16, + GP_2_10_FN, FN_IP5_15_12, + GP_2_9_FN, FN_IP5_11_8, + GP_2_8_FN, FN_IP5_7_4, + GP_2_7_FN, FN_IP5_3_0, + GP_2_6_FN, FN_IP4_31_28, + GP_2_5_FN, FN_IP4_27_24, + GP_2_4_FN, FN_IP4_23_20, + GP_2_3_FN, FN_IP4_19_16, + GP_2_2_FN, FN_IP4_15_12, + GP_2_1_FN, FN_IP4_11_8, + GP_2_0_FN, FN_IP4_7_4, } + }, + { PINMUX_CFG_REG("GPSR3", 0xE6060010, 32, 1) { + 0, 0, + 0, 0, + GP_3_29_FN, FN_IP10_19_16, + GP_3_28_FN, FN_IP10_15_12, + GP_3_27_FN, FN_IP10_11_8, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + GP_3_16_FN, FN_IP10_7_4, + GP_3_15_FN, FN_IP10_3_0, + GP_3_14_FN, FN_IP9_31_28, + GP_3_13_FN, FN_IP9_27_24, + GP_3_12_FN, FN_IP9_23_20, + GP_3_11_FN, FN_IP9_19_16, + GP_3_10_FN, FN_IP9_15_12, + GP_3_9_FN, FN_IP9_11_8, + GP_3_8_FN, FN_IP9_7_4, + GP_3_7_FN, FN_IP9_3_0, + GP_3_6_FN, FN_IP8_31_28, + GP_3_5_FN, FN_IP8_27_24, + GP_3_4_FN, FN_IP8_23_20, + GP_3_3_FN, FN_IP8_19_16, + GP_3_2_FN, FN_IP8_15_12, + GP_3_1_FN, FN_IP8_11_8, + GP_3_0_FN, FN_IP8_7_4, } + }, + { PINMUX_CFG_REG("GPSR4", 0xE6060014, 32, 1) { + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + 0, 0, + GP_4_25_FN, FN_IP13_27_24, + GP_4_24_FN, FN_IP13_23_20, + GP_4_23_FN, FN_IP13_19_16, + GP_4_22_FN, FN_IP13_15_12, + GP_4_21_FN, FN_IP13_11_8, + GP_4_20_FN, FN_IP13_7_4, + GP_4_19_FN, FN_IP13_3_0, + GP_4_18_FN, FN_IP12_31_28, + GP_4_17_FN, FN_IP12_27_24, + GP_4_16_FN, FN_IP12_23_20, + GP_4_15_FN, FN_IP12_19_16, + GP_4_14_FN, FN_IP12_15_12, + GP_4_13_FN, FN_IP12_11_8, + GP_4_12_FN, FN_IP12_7_4, + GP_4_11_FN, FN_IP12_3_0, + GP_4_10_FN, FN_IP11_31_28, + GP_4_9_FN, FN_IP11_27_24, + GP_4_8_FN, FN_IP11_23_20, + GP_4_7_FN, FN_IP11_19_16, + GP_4_6_FN, FN_IP11_15_12, + GP_4_5_FN, FN_IP11_11_8, + GP_4_4_FN, FN_IP11_7_4, + GP_4_3_FN, FN_IP11_3_0, + GP_4_2_FN, FN_IP10_31_28, + GP_4_1_FN, FN_IP10_27_24, + GP_4_0_FN, FN_IP10_23_20, } + }, + { PINMUX_CFG_REG("GPSR5", 0xE6060018, 32, 1) { + GP_5_31_FN, FN_IP17_27_24, + GP_5_30_FN, FN_IP17_23_20, + GP_5_29_FN, FN_IP17_19_16, + GP_5_28_FN, FN_IP17_15_12, + GP_5_27_FN, FN_IP17_11_8, + GP_5_26_FN, FN_IP17_7_4, + GP_5_25_FN, FN_IP17_3_0, + GP_5_24_FN, FN_IP16_31_28, + GP_5_23_FN, FN_IP16_27_24, + GP_5_22_FN, FN_IP16_23_20, + GP_5_21_FN, FN_IP16_19_16, + GP_5_20_FN, FN_IP16_15_12, + GP_5_19_FN, FN_IP16_11_8, + GP_5_18_FN, FN_IP16_7_4, + GP_5_17_FN, FN_IP16_3_0, + GP_5_16_FN, FN_IP15_31_28, + GP_5_15_FN, FN_IP15_27_24, + GP_5_14_FN, FN_IP15_23_20, + GP_5_13_FN, FN_IP15_19_16, + GP_5_12_FN, FN_IP15_15_12, + GP_5_11_FN, FN_IP15_11_8, + GP_5_10_FN, FN_IP15_7_4, + GP_5_9_FN, FN_IP15_3_0, + GP_5_8_FN, FN_IP14_31_28, + GP_5_7_FN, FN_IP14_27_24, + GP_5_6_FN, FN_IP14_23_20, + GP_5_5_FN, FN_IP14_19_16, + GP_5_4_FN, FN_IP14_15_12, + GP_5_3_FN, FN_IP14_11_8, + GP_5_2_FN, FN_IP14_7_4, + GP_5_1_FN, FN_IP14_3_0, + GP_5_0_FN, FN_IP13_31_28, } + }, + { PINMUX_CFG_REG_VAR("IPSR0", 0xE6060040, 32, + 4, 4, 4, 4, 4, 4, 4, 4) { + /* IP0_31_28 [4] */ + FN_SD0_WP, FN_IRQ7, FN_CAN0_TX_A, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + /* IP0_27_24 [4] */ + FN_SD0_CD, 0, FN_CAN0_RX_A, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + /* IP0_23_20 [4] */ + FN_SD0_DAT3, 0, 0, FN_SSI_SDATA0_B, FN_TX5_E, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + /* IP0_19_16 [4] */ + FN_SD0_DAT2, 0, 0, FN_SSI_WS0129_B, FN_RX5_E, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + /* IP0_15_12 [4] */ + FN_SD0_DAT1, 0, 0, FN_SSI_SCK0129_B, FN_TX4_E, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + /* IP0_11_8 [4] */ + FN_SD0_DAT0, 0, 0, FN_SSI_SDATA1_C, FN_RX4_E, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + /* IP0_7_4 [4] */ + FN_SD0_CMD, 0, 0, FN_SSI_WS1_C, FN_TX3_C, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + /* IP0_3_0 [4] */ + FN_SD0_CLK, 0, 0, FN_SSI_SCK1_C, FN_RX3_C, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG_VAR("IPSR1", 0xE6060044, 32, + 4, 4, 4, 4, 4, 4, 4, 4) { + /* IP1_31_28 [4] */ + FN_D5, FN_HRX2, FN_SCL1_B, FN_PWM2_C, FN_TCLK2_B, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + /* IP1_27_24 [4] */ + FN_D4, 0, FN_IRQ3, FN_TCLK1_A, FN_PWM6_C, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + /* IP1_23_20 [4] */ + FN_D3, 0, FN_TX4_B, FN_SDA0_D, FN_PWM0_A, + FN_MSIOF2_SYNC_C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP1_19_16 [4] */ + FN_D2, 0, FN_RX4_B, FN_SCL0_D, FN_PWM1_C, + FN_MSIOF2_SCK_C, FN_SSI_SCK5_B, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP1_15_12 [4] */ + FN_D1, 0, FN_SDA3_B, FN_TX5_B, 0, FN_MSIOF2_TXD_C, + FN_SSI_WS5_B, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP1_11_8 [4] */ + FN_D0, 0, FN_SCL3_B, FN_RX5_B, FN_IRQ4, + FN_MSIOF2_RXD_C, FN_SSI_SDATA5_B, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP1_7_4 [4] */ + FN_MMC0_D5, FN_SD1_WP, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + /* IP1_3_0 [4] */ + FN_MMC0_D4, FN_SD1_CD, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG_VAR("IPSR2", 0xE6060048, 32, + 4, 4, 4, 4, 4, 4, 4, 4) { + /* IP2_31_28 [4] */ + FN_D13, FN_MSIOF2_SYNC_A, 0, FN_RX4_C, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + /* IP2_27_24 [4] */ + FN_D12, FN_MSIOF2_SCK_A, FN_HSCK0, 0, FN_CAN_CLK_C, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP2_23_20 [4] */ + FN_D11, FN_MSIOF2_TXD_A, FN_HTX0_B, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + /* IP2_19_16 [4] */ + FN_D10, FN_MSIOF2_RXD_A, FN_HRX0_B, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + /* IP2_15_12 [4] */ + FN_D9, FN_HRTS2_N, FN_TX1_C, FN_SDA1_D, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP2_11_8 [4] */ + FN_D8, FN_HCTS2_N, FN_RX1_C, FN_SCL1_D, FN_PWM3_C, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP2_7_4 [4] */ + FN_D7, FN_HSCK2, FN_SCIF1_SCK_C, FN_IRQ6, FN_PWM5_C, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP2_3_0 [4] */ + FN_D6, FN_HTX2, FN_SDA1_B, FN_PWM4_C, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG_VAR("IPSR3", 0xE606004C, 32, + 4, 4, 4, 4, 4, 4, 4, 4) { + /* IP3_31_28 [4] */ + FN_QSPI0_SSL, FN_WE1_N, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, + /* IP3_27_24 [4] */ + FN_QSPI0_IO3, FN_RD_N, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, + /* IP3_23_20 [4] */ + FN_QSPI0_IO2, FN_CS0_N, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, + /* IP3_19_16 [4] */ + FN_QSPI0_MISO_QSPI0_IO1, FN_RD_WR_N, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP3_15_12 [4] */ + FN_QSPI0_MOSI_QSPI0_IO0, FN_BS_N, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, + /* IP3_11_8 [4] */ + FN_QSPI0_SPCLK, FN_WE0_N, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, + /* IP3_7_4 [4] */ + FN_D15, FN_MSIOF2_SS2, FN_PWM4_A, 0, FN_CAN1_TX_B, FN_IRQ2, + FN_AVB_AVTP_MATCH_A, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP3_3_0 [4] */ + FN_D14, FN_MSIOF2_SS1, 0, FN_TX4_C, FN_CAN1_RX_B, + 0, FN_AVB_AVTP_CAPTURE_A, + 0, 0, 0, 0, 0, 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG_VAR("IPSR4", 0xE6060050, 32, + 4, 4, 4, 4, 4, 4, 4, 4) { + /* IP4_31_28 [4] */ + FN_DU0_DR6, 0, FN_RX2_C, 0, 0, 0, FN_A6, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + /* IP4_27_24 [4] */ + FN_DU0_DR5, 0, FN_TX1_D, 0, FN_PWM1_B, 0, FN_A5, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + /* IP4_23_20 [4] */ + FN_DU0_DR4, 0, FN_RX1_D, 0, 0, 0, FN_A4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + /* IP4_19_16 [4] */ + FN_DU0_DR3, 0, FN_TX0_D, FN_SDA0_E, FN_PWM0_B, 0, + FN_A3, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP4_15_12 [4] */ + FN_DU0_DR2, 0, FN_RX0_D, FN_SCL0_E, 0, 0, FN_A2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + /* IP4_11_8 [4] */ + FN_DU0_DR1, 0, FN_TX5_C, FN_SDA2_D, 0, 0, FN_A1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + /* IP4_7_4 [4] */ + FN_DU0_DR0, 0, FN_RX5_C, FN_SCL2_D, 0, 0, FN_A0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + /* IP4_3_0 [4] */ + FN_EX_WAIT0, FN_CAN_CLK_B, FN_SCIF_CLK_A, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG_VAR("IPSR5", 0xE6060054, 32, + 4, 4, 4, 4, 4, 4, 4, 4) { + /* IP5_31_28 [4] */ + FN_DU0_DG6, 0, FN_HRX1_C, 0, 0, 0, FN_A14, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + /* IP5_27_24 [4] */ + FN_DU0_DG5, 0, FN_HTX0_A, 0, FN_PWM5_B, 0, FN_A13, + 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP5_23_20 [4] */ + FN_DU0_DG4, 0, FN_HRX0_A, 0, 0, 0, FN_A12, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + /* IP5_19_16 [4] */ + FN_DU0_DG3, 0, FN_TX4_D, 0, FN_PWM4_B, 0, FN_A11, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + /* IP5_15_12 [4] */ + FN_DU0_DG2, 0, FN_RX4_D, 0, 0, 0, FN_A10, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + /* IP5_11_8 [4] */ + FN_DU0_DG1, 0, FN_TX3_B, FN_SDA3_D, FN_PWM3_B, 0, + FN_A9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP5_7_4 [4] */ + FN_DU0_DG0, 0, FN_RX3_B, FN_SCL3_D, 0, 0, FN_A8, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + /* IP5_3_0 [4] */ + FN_DU0_DR7, 0, FN_TX2_C, 0, FN_PWM2_B, 0, FN_A7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG_VAR("IPSR6", 0xE6060058, 32, + 4, 4, 4, 4, 4, 4, 4, 4) { + /* IP6_31_28 [4] */ + FN_DU0_DB6, 0, 0, 0, 0, 0, FN_A22, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + /* IP6_27_24 [4] */ + FN_DU0_DB5, 0, FN_HRTS1_N_C, 0, 0, 0, + FN_A21, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP6_23_20 [4] */ + FN_DU0_DB4, 0, FN_HCTS1_N_C, 0, 0, 0, + FN_A20, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP6_19_16 [4] */ + FN_DU0_DB3, 0, FN_HRTS0_N, 0, 0, 0, FN_A19, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + /* IP6_15_12 [4] */ + FN_DU0_DB2, 0, FN_HCTS0_N, 0, 0, 0, FN_A18, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + /* IP6_11_8 [4] */ + FN_DU0_DB1, 0, 0, FN_SDA4_D, FN_CAN0_TX_C, 0, FN_A17, + 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP6_7_4 [4] */ + FN_DU0_DB0, 0, 0, FN_SCL4_D, FN_CAN0_RX_C, 0, FN_A16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP6_3_0 [4] */ + FN_DU0_DG7, 0, FN_HTX1_C, 0, FN_PWM6_B, 0, FN_A15, + 0, 0, 0, 0, 0, 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG_VAR("IPSR7", 0xE606005C, 32, + 4, 4, 4, 4, 4, 4, 4, 4) { + /* IP7_31_28 [4] */ + FN_DU0_DISP, 0, 0, 0, FN_CAN1_RX_C, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + /* IP7_27_24 [4] */ + FN_DU0_EXODDF_DU0_ODDF_DISP_CDE, 0, FN_MSIOF2_SCK_B, + 0, 0, 0, FN_DRACK0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP7_23_20 [4] */ + FN_DU0_EXVSYNC_DU0_VSYNC, 0, FN_MSIOF2_SYNC_B, 0, + 0, 0, FN_DACK0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP7_19_16 [4] */ + FN_DU0_EXHSYNC_DU0_HSYNC, 0, FN_MSIOF2_TXD_B, 0, + 0, 0, FN_DREQ0_N, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP7_15_12 [4] */ + FN_DU0_DOTCLKOUT1, 0, FN_MSIOF2_RXD_B, 0, 0, 0, + FN_CS1_N_A26, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP7_11_8 [4] */ + FN_DU0_DOTCLKOUT0, 0, 0, 0, 0, 0, FN_A25, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + /* IP7_7_4 [4] */ + FN_DU0_DOTCLKIN, 0, 0, 0, 0, 0, FN_A24, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + /* IP7_3_0 [4] */ + FN_DU0_DB7, 0, 0, 0, 0, 0, FN_A23, 0, 0, + 0, 0, 0, 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG_VAR("IPSR8", 0xE6060060, 32, + 4, 4, 4, 4, 4, 4, 4, 4) { + /* IP8_31_28 [4] */ + FN_VI1_DATA5, 0, 0, 0, FN_AVB_RXD4, FN_ETH_LINK, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + /* IP8_27_24 [4] */ + FN_VI1_DATA4, 0, 0, 0, FN_AVB_RXD3, FN_ETH_RX_ER, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + /* IP8_23_20 [4] */ + FN_VI1_DATA3, 0, 0, 0, FN_AVB_RXD2, FN_ETH_MDIO, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + /* IP8_19_16 [4] */ + FN_VI1_DATA2, 0, 0, 0, FN_AVB_RXD1, FN_ETH_RXD1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + /* IP8_15_12 [4] */ + FN_VI1_DATA1, 0, 0, 0, FN_AVB_RXD0, FN_ETH_RXD0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + /* IP8_11_8 [4] */ + FN_VI1_DATA0, 0, 0, 0, FN_AVB_RX_DV, FN_ETH_CRS_DV, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + /* IP8_7_4 [4] */ + FN_VI1_CLK, 0, 0, 0, FN_AVB_RX_CLK, FN_ETH_REF_CLK, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + /* IP8_3_0 [4] */ + FN_DU0_CDE, 0, 0, 0, FN_CAN1_TX_C, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG_VAR("IPSR9", 0xE6060064, 32, + 4, 4, 4, 4, 4, 4, 4, 4) { + /* IP9_31_28 [4] */ + FN_VI1_DATA9, 0, 0, FN_SDA2_B, FN_AVB_TXD0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + /* IP9_27_24 [4] */ + FN_VI1_DATA8, 0, 0, FN_SCL2_B, FN_AVB_TX_EN, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + /* IP9_23_20 [4] */ + FN_VI1_VSYNC_N, FN_TX0_B, FN_SDA0_C, FN_AUDIO_CLKOUT_B, + FN_AVB_TX_CLK, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP9_19_16 [4] */ + FN_VI1_HSYNC_N, FN_RX0_B, FN_SCL0_C, 0, FN_AVB_GTXREFCLK, + FN_ETH_MDC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP9_15_12 [4] */ + FN_VI1_FIELD, FN_SDA3_A, 0, 0, FN_AVB_RX_ER, FN_ETH_TXD0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP9_11_8 [4] */ + FN_VI1_CLKENB, FN_SCL3_A, 0, 0, FN_AVB_RXD7, FN_ETH_MAGIC, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP9_7_4 [4] */ + FN_VI1_DATA7, 0, 0, 0, FN_AVB_RXD6, FN_ETH_TX_EN, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + /* IP9_3_0 [4] */ + FN_VI1_DATA6, 0, 0, 0, FN_AVB_RXD5, FN_ETH_TXD1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG_VAR("IPSR10", 0xE6060068, 32, + 4, 4, 4, 4, 4, 4, 4, 4) { + /* IP10_31_28 [4] */ + FN_SCL1_A, FN_RX4_A, FN_PWM5_D, FN_DU1_DR0, 0, 0, + FN_SSI_SCK6_B, FN_VI0_G0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP10_27_24 [4] */ + FN_SDA0_A, FN_TX0_C, FN_IRQ5, FN_CAN_CLK_A, FN_AVB_GTX_CLK, + FN_CAN1_TX_D, FN_DVC_MUTE, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP10_23_20 [4] */ + FN_SCL0_A, FN_RX0_C, FN_PWM5_A, FN_TCLK1_B, FN_AVB_TXD6, + FN_CAN1_RX_D, FN_MSIOF0_SYNC_B, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP10_19_16 [4] */ + FN_AVB_TXD5, FN_SCIF_CLK_B, FN_AUDIO_CLKC_B, 0, + FN_SSI_SDATA1_D, 0, FN_MSIOF0_SCK_B, 0, 0, 0, 0, 0, 0, 0, + 0, 0, + /* IP10_15_12 [4] */ + FN_AVB_TXD4, 0, FN_AUDIO_CLKB_B, 0, FN_SSI_WS1_D, FN_TX5_F, + FN_MSIOF0_TXD_B, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP10_11_8 [4] */ + FN_AVB_TXD3, 0, FN_AUDIO_CLKA_B, 0, FN_SSI_SCK1_D, FN_RX5_F, + FN_MSIOF0_RXD_B, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP10_7_4 [4] */ + FN_VI1_DATA11, 0, 0, FN_CAN0_TX_B, FN_AVB_TXD2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + /* IP10_3_0 [4] */ + FN_VI1_DATA10, 0, 0, FN_CAN0_RX_B, FN_AVB_TXD1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG_VAR("IPSR11", 0xE606006C, 32, + 4, 4, 4, 4, 4, 4, 4, 4) { + /* IP11_31_28 [4] */ + FN_HRX1_A, FN_SCL4_A, FN_PWM6_A, FN_DU1_DG0, FN_RX0_A, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP11_27_24 [4] */ + FN_MSIOF0_SS2_A, 0, 0, FN_DU1_DR7, 0, + FN_QSPI1_SSL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP11_23_20 [4] */ + FN_MSIOF0_SS1_A, 0, 0, FN_DU1_DR6, 0, + FN_QSPI1_IO3, FN_SSI_SDATA8_B, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP11_19_16 [4] */ + FN_MSIOF0_SYNC_A, FN_PWM1_A, 0, FN_DU1_DR5, + 0, FN_QSPI1_IO2, FN_SSI_SDATA7_B, 0, 0, 0, 0, 0, + 0, 0, 0, 0, + /* IP11_15_12 [4] */ + FN_MSIOF0_SCK_A, FN_IRQ0, 0, FN_DU1_DR4, + 0, FN_QSPI1_SPCLK, FN_SSI_SCK78_B, FN_VI0_G4, + 0, 0, 0, 0, 0, 0, 0, 0, + /* IP11_11_8 [4] */ + FN_MSIOF0_TXD_A, FN_TX5_A, FN_SDA2_C, FN_DU1_DR3, 0, + FN_QSPI1_MISO_QSPI1_IO1, FN_SSI_WS78_B, FN_VI0_G3, + 0, 0, 0, 0, 0, 0, 0, 0, + /* IP11_7_4 [4] */ + FN_MSIOF0_RXD_A, FN_RX5_A, FN_SCL2_C, FN_DU1_DR2, 0, + FN_QSPI1_MOSI_QSPI1_IO0, FN_SSI_SDATA6_B, FN_VI0_G2, + 0, 0, 0, 0, 0, 0, 0, 0, + /* IP11_3_0 [4] */ + FN_SDA1_A, FN_TX4_A, 0, FN_DU1_DR1, 0, 0, FN_SSI_WS6_B, + FN_VI0_G1, 0, 0, 0, 0, 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG_VAR("IPSR12", 0xE6060070, 32, + 4, 4, 4, 4, 4, 4, 4, 4) { + /* IP12_31_28 [4] */ + FN_SD2_DAT2, FN_RX2_A, 0, FN_DU1_DB0, FN_SSI_SDATA2_B, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP12_27_24 [4] */ + FN_SD2_DAT1, FN_TX1_A, FN_SDA1_E, FN_DU1_DG7, FN_SSI_WS2_B, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP12_23_20 [4] */ + FN_SD2_DAT0, FN_RX1_A, FN_SCL1_E, FN_DU1_DG6, + FN_SSI_SDATA1_B, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP12_19_16 [4] */ + FN_SD2_CMD, FN_SCIF1_SCK_A, FN_TCLK2_A, FN_DU1_DG5, + FN_SSI_SCK2_B, FN_PWM3_A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP12_15_12 [4] */ + FN_SD2_CLK, FN_HSCK1, 0, FN_DU1_DG4, FN_SSI_SCK1_B, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + /* IP12_11_8 [4] */ + FN_HRTS1_N_A, 0, 0, FN_DU1_DG3, FN_SSI_WS1_B, FN_IRQ1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + /* IP12_7_4 [4] */ + FN_HCTS1_N_A, FN_PWM2_A, 0, FN_DU1_DG2, FN_REMOCON_B, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP12_3_0 [4] */ + FN_HTX1_A, FN_SDA4_A, 0, FN_DU1_DG1, FN_TX0_A, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG_VAR("IPSR13", 0xE6060074, 32, + 4, 4, 4, 4, 4, 4, 4, 4) { + /* IP13_31_28 [4] */ + FN_SSI_SCK5_A, 0, 0, FN_DU1_DOTCLKOUT1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + /* IP13_27_24 [4] */ + FN_SDA2_A, 0, FN_MSIOF1_SYNC_B, FN_DU1_DB7, FN_AUDIO_CLKOUT_C, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP13_23_20 [4] */ + FN_SCL2_A, 0, FN_MSIOF1_SCK_B, FN_DU1_DB6, FN_AUDIO_CLKC_C, + FN_SSI_SCK4_B, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP13_19_16 [4] */ + FN_TX3_A, FN_SDA1_C, FN_MSIOF1_TXD_B, FN_DU1_DB5, + FN_AUDIO_CLKB_C, FN_SSI_WS4_B, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP13_15_12 [4] */ + FN_RX3_A, FN_SCL1_C, FN_MSIOF1_RXD_B, FN_DU1_DB4, + FN_AUDIO_CLKA_C, FN_SSI_SDATA4_B, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, + /* IP13_11_8 [4] */ + FN_SD2_WP, FN_SCIF3_SCK, 0, FN_DU1_DB3, FN_SSI_SDATA9_B, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP13_7_4 [4] */ + FN_SD2_CD, FN_SCIF2_SCK_A, 0, FN_DU1_DB2, FN_SSI_SCK9_B, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP13_3_0 [4] */ + FN_SD2_DAT3, FN_TX2_A, 0, FN_DU1_DB1, FN_SSI_WS9_B, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG_VAR("IPSR14", 0xE6060078, 32, + 4, 4, 4, 4, 4, 4, 4, 4) { + /* IP14_31_28 [4] */ + FN_SSI_SDATA7_A, 0, 0, FN_IRQ8, FN_AUDIO_CLKA_D, FN_CAN_CLK_D, + FN_VI0_G5, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP14_27_24 [4] */ + FN_SSI_WS78_A, 0, FN_SCL4_E, FN_DU1_CDE, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + /* IP14_23_20 [4] */ + FN_SSI_SCK78_A, 0, FN_SDA4_E, FN_DU1_DISP, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + /* IP14_19_16 [4] */ + FN_SSI_SDATA6_A, 0, FN_SDA4_C, FN_DU1_EXVSYNC_DU1_VSYNC, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP14_15_12 [4] */ + FN_SSI_WS6_A, 0, FN_SCL4_C, FN_DU1_EXHSYNC_DU1_HSYNC, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP14_11_8 [4] */ + FN_SSI_SCK6_A, 0, 0, FN_DU1_EXODDF_DU1_ODDF_DISP_CDE, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP14_7_4 [4] */ + FN_SSI_SDATA5_A, 0, FN_SDA3_C, FN_DU1_DOTCLKOUT0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP14_3_0 [4] */ + FN_SSI_WS5_A, 0, FN_SCL3_C, FN_DU1_DOTCLKIN, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG_VAR("IPSR15", 0xE606007C, 32, + 4, 4, 4, 4, 4, 4, 4, 4) { + /* IP15_31_28 [4] */ + FN_SSI_WS4_A, 0, FN_AVB_PHY_INT, 0, 0, 0, FN_VI0_R5, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + /* IP15_27_24 [4] */ + FN_SSI_SCK4_A, 0, FN_AVB_MAGIC, 0, 0, 0, FN_VI0_R4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + /* IP15_23_20 [4] */ + FN_SSI_SDATA3, FN_MSIOF1_SS2_A, FN_AVB_LINK, 0, FN_CAN1_TX_A, + FN_DREQ2_N, FN_VI0_R3, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP15_19_16 [4] */ + FN_SSI_WS34, FN_MSIOF1_SS1_A, FN_AVB_MDIO, 0, FN_CAN1_RX_A, + FN_DREQ1_N, FN_VI0_R2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP15_15_12 [4] */ + FN_SSI_SCK34, FN_MSIOF1_SCK_A, FN_AVB_MDC, 0, 0, FN_DACK1, + FN_VI0_R1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP15_11_8 [4] */ + FN_SSI_SDATA0_A, FN_MSIOF1_SYNC_A, FN_PWM0_C, 0, 0, 0, + FN_VI0_R0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP15_7_4 [4] */ + FN_SSI_WS0129_A, FN_MSIOF1_TXD_A, FN_TX5_D, 0, 0, 0, + FN_VI0_G7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP15_3_0 [4] */ + FN_SSI_SCK0129_A, FN_MSIOF1_RXD_A, FN_RX5_D, 0, 0, 0, + FN_VI0_G6, 0, 0, 0, 0, 0, 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG_VAR("IPSR16", 0xE6060080, 32, + 4, 4, 4, 4, 4, 4, 4, 4) { + /* IP16_31_28 [4] */ + FN_SSI_SDATA2_A, FN_HRTS1_N_B, 0, 0, 0, 0, + FN_VI0_DATA4_VI0_B4, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP16_27_24 [4] */ + FN_SSI_WS2_A, FN_HCTS1_N_B, 0, 0, 0, FN_AVB_TX_ER, + FN_VI0_DATA3_VI0_B3, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP16_23_20 [4] */ + FN_SSI_SCK2_A, FN_HTX1_B, 0, 0, 0, FN_AVB_TXD7, + FN_VI0_DATA2_VI0_B2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP16_19_16 [4] */ + FN_SSI_SDATA1_A, FN_HRX1_B, 0, 0, 0, 0, FN_VI0_DATA1_VI0_B1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP16_15_12 [4] */ + FN_SSI_WS1_A, FN_TX1_B, 0, 0, FN_CAN0_TX_D, + FN_AVB_AVTP_MATCH_B, FN_VI0_DATA0_VI0_B0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, + /* IP16_11_8 [4] */ + FN_SSI_SDATA8_A, FN_RX1_B, 0, 0, FN_CAN0_RX_D, + FN_AVB_AVTP_CAPTURE_B, FN_VI0_R7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP16_7_4 [4] */ + FN_SSI_SCK1_A, FN_SCIF1_SCK_B, FN_PWM1_D, FN_IRQ9, FN_REMOCON_A, + FN_DACK2, FN_VI0_CLK, FN_AVB_COL, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP16_3_0 [4] */ + FN_SSI_SDATA4_A, 0, FN_AVB_CRS, 0, 0, 0, FN_VI0_R6, 0, 0, 0, + 0, 0, 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG_VAR("IPSR17", 0xE6060084, 32, + 4, 4, 4, 4, 4, 4, 4, 4) { + /* IP17_31_28 [4] */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP17_27_24 [4] */ + FN_AUDIO_CLKOUT_A, FN_SDA4_B, 0, 0, 0, 0, + FN_VI0_VSYNC_N, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP17_23_20 [4] */ + FN_AUDIO_CLKC_A, FN_SCL4_B, 0, 0, 0, 0, + FN_VI0_HSYNC_N, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP17_19_16 [4] */ + FN_AUDIO_CLKB_A, FN_SDA0_B, 0, 0, 0, 0, + FN_VI0_FIELD, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP17_15_12 [4] */ + FN_AUDIO_CLKA_A, FN_SCL0_B, 0, 0, 0, 0, + FN_VI0_CLKENB, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP17_11_8 [4] */ + FN_SSI_SDATA9_A, FN_SCIF2_SCK_B, FN_PWM2_D, 0, 0, 0, + FN_VI0_DATA7_VI0_B7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP17_7_4 [4] */ + FN_SSI_WS9_A, FN_TX2_B, FN_SDA3_E, 0, 0, 0, + FN_VI0_DATA6_VI0_B6, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* IP17_3_0 [4] */ + FN_SSI_SCK9_A, FN_RX2_B, FN_SCL3_E, 0, 0, FN_EX_WAIT1, + FN_VI0_DATA5_VI0_B5, 0, 0, 0, 0, 0, 0, 0, 0, 0, } + }, + { PINMUX_CFG_REG_VAR("MOD_SEL0", 0xE60600C0, 32, + 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 3, 3, + 1, 2, 3, 3, 1) { + /* RESERVED [1] */ + 0, 0, + /* RESERVED [1] */ + 0, 0, + /* RESERVED [1] */ + 0, 0, + /* RESERVED [1] */ + 0, 0, + /* RESERVED [1] */ + 0, 0, + /* SEL_ADGA [2] */ + FN_SEL_ADGA_0, FN_SEL_ADGA_1, FN_SEL_ADGA_2, FN_SEL_ADGA_3, + /* RESERVED [1] */ + 0, 0, + /* RESERVED [1] */ + 0, 0, + /* SEL_CANCLK [2] */ + FN_SEL_CANCLK_0, FN_SEL_CANCLK_1, FN_SEL_CANCLK_2, + FN_SEL_CANCLK_3, + /* SEL_CAN1 [2] */ + FN_SEL_CAN1_0, FN_SEL_CAN1_1, FN_SEL_CAN1_2, FN_SEL_CAN1_3, + /* SEL_CAN0 [2] */ + FN_SEL_CAN0_0, FN_SEL_CAN0_1, FN_SEL_CAN0_2, FN_SEL_CAN0_3, + /* RESERVED [1] */ + 0, 0, + /* SEL_I2C04 [3] */ + FN_SEL_I2C04_0, FN_SEL_I2C04_1, FN_SEL_I2C04_2, FN_SEL_I2C04_3, + FN_SEL_I2C04_4, 0, 0, 0, + /* SEL_I2C03 [3] */ + FN_SEL_I2C03_0, FN_SEL_I2C03_1, FN_SEL_I2C03_2, FN_SEL_I2C03_3, + FN_SEL_I2C03_4, 0, 0, 0, + /* RESERVED [1] */ + 0, 0, + /* SEL_I2C02 [2] */ + FN_SEL_I2C02_0, FN_SEL_I2C02_1, FN_SEL_I2C02_2, FN_SEL_I2C02_3, + /* SEL_I2C01 [3] */ + FN_SEL_I2C01_0, FN_SEL_I2C01_1, FN_SEL_I2C01_2, FN_SEL_I2C01_3, + FN_SEL_I2C01_4, 0, 0, 0, + /* SEL_I2C00 [3] */ + FN_SEL_I2C00_0, FN_SEL_I2C00_1, FN_SEL_I2C00_2, FN_SEL_I2C00_3, + FN_SEL_I2C00_4, 0, 0, 0, + /* SEL_AVB [1] */ + FN_SEL_AVB_0, FN_SEL_AVB_1, } + }, + { PINMUX_CFG_REG_VAR("MOD_SEL1", 0xE60600C4, 32, + 1, 3, 3, 2, 2, 1, 2, 2, + 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1) { + /* SEL_SCIFCLK [1] */ + FN_SEL_SCIFCLK_0, FN_SEL_SCIFCLK_1, + /* SEL_SCIF5 [3] */ + FN_SEL_SCIF5_0, FN_SEL_SCIF5_1, FN_SEL_SCIF5_2, FN_SEL_SCIF5_3, + FN_SEL_SCIF5_4, FN_SEL_SCIF5_5, 0, 0, + /* SEL_SCIF4 [3] */ + FN_SEL_SCIF4_0, FN_SEL_SCIF4_1, FN_SEL_SCIF4_2, FN_SEL_SCIF4_3, + FN_SEL_SCIF4_4, 0, 0, 0, + /* SEL_SCIF3 [2] */ + FN_SEL_SCIF3_0, FN_SEL_SCIF3_1, FN_SEL_SCIF3_2, 0, + /* SEL_SCIF2 [2] */ + FN_SEL_SCIF2_0, FN_SEL_SCIF2_1, FN_SEL_SCIF2_2, 0, + /* SEL_SCIF2_CLK [1] */ + FN_SEL_SCIF2_CLK_0, FN_SEL_SCIF2_CLK_1, + /* SEL_SCIF1 [2] */ + FN_SEL_SCIF1_0, FN_SEL_SCIF1_1, FN_SEL_SCIF1_2, FN_SEL_SCIF1_3, + /* SEL_SCIF0 [2] */ + FN_SEL_SCIF0_0, FN_SEL_SCIF0_1, FN_SEL_SCIF0_2, FN_SEL_SCIF0_3, + /* SEL_MSIOF2 [2] */ + FN_SEL_MSIOF2_0, FN_SEL_MSIOF2_1, FN_SEL_MSIOF2_2, 0, + /* RESERVED [1] */ + 0, 0, + /* SEL_MSIOF1 [1] */ + FN_SEL_MSIOF1_0, FN_SEL_MSIOF1_1, + /* RESERVED [1] */ + 0, 0, + /* SEL_MSIOF0 [1] */ + FN_SEL_MSIOF0_0, FN_SEL_MSIOF0_1, + /* SEL_RCN [1] */ + FN_SEL_RCN_0, FN_SEL_RCN_1, + /* RESERVED [2] */ + 0, 0, 0, 0, + /* SEL_TMU2 [1] */ + FN_SEL_TMU2_0, FN_SEL_TMU2_1, + /* SEL_TMU1 [1] */ + FN_SEL_TMU1_0, FN_SEL_TMU1_1, + /* RESERVED [2] */ + 0, 0, 0, 0, + /* SEL_HSCIF1 [2] */ + FN_SEL_HSCIF1_0, FN_SEL_HSCIF1_1, FN_SEL_HSCIF1_2, 0, + /* SEL_HSCIF0 [1] */ + FN_SEL_HSCIF0_0, FN_SEL_HSCIF0_1,} + }, + { PINMUX_CFG_REG_VAR("MOD_SEL2", 0xE60600C8, 32, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2) { + /* RESERVED [1] */ + 0, 0, + /* RESERVED [1] */ + 0, 0, + /* RESERVED [1] */ + 0, 0, + /* RESERVED [1] */ + 0, 0, + /* RESERVED [1] */ + 0, 0, + /* RESERVED [1] */ + 0, 0, + /* RESERVED [1] */ + 0, 0, + /* RESERVED [1] */ + 0, 0, + /* RESERVED [1] */ + 0, 0, + /* RESERVED [1] */ + 0, 0, + /* SEL_ADGB [2] */ + FN_SEL_ADGB_0, FN_SEL_ADGB_1, FN_SEL_ADGB_2, 0, + /* SEL_ADGC [2] */ + FN_SEL_ADGC_0, FN_SEL_ADGC_1, FN_SEL_ADGC_2, 0, + /* SEL_SSI9 [2] */ + FN_SEL_SSI9_0, FN_SEL_SSI9_1, 0, 0, + /* SEL_SSI8 [2] */ + FN_SEL_SSI8_0, FN_SEL_SSI8_1, 0, 0, + /* SEL_SSI7 [2] */ + FN_SEL_SSI7_0, FN_SEL_SSI7_1, 0, 0, + /* SEL_SSI6 [2] */ + FN_SEL_SSI6_0, FN_SEL_SSI6_1, 0, 0, + /* SEL_SSI5 [2] */ + FN_SEL_SSI5_0, FN_SEL_SSI5_1, 0, 0, + /* SEL_SSI4 [2] */ + FN_SEL_SSI4_0, FN_SEL_SSI4_1, 0, 0, + /* SEL_SSI2 [2] */ + FN_SEL_SSI2_0, FN_SEL_SSI2_1, 0, 0, + /* SEL_SSI1 [2] */ + FN_SEL_SSI1_0, FN_SEL_SSI1_1, FN_SEL_SSI1_2, FN_SEL_SSI1_3, + /* SEL_SSI0 [2] */ + FN_SEL_SSI0_0, FN_SEL_SSI0_1, 0, 0, } + }, + { }, +}; + +#ifdef CONFIG_PINCTRL_PFC_R8A77470 +const struct sh_pfc_soc_info r8a77470_pinmux_info = { + .name = "r8a77470_pfc", + .unlock_reg = 0xe6060000, /* PMMR */ + + .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, + + .pins = pinmux_pins, + .nr_pins = ARRAY_SIZE(pinmux_pins), + .groups = pinmux_groups, + .nr_groups = ARRAY_SIZE(pinmux_groups), + .functions = pinmux_functions, + .nr_functions = ARRAY_SIZE(pinmux_functions), + + .cfg_regs = pinmux_config_regs, + + .pinmux_data = pinmux_data, + .pinmux_data_size = ARRAY_SIZE(pinmux_data), +}; +#endif From 2ed36a1b352d6d3aaf91ca2a65039d710e16a894 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:18 +0100 Subject: [PATCH 0566/1149] pinctrl: sh-pfc: r8a77470: Add EtherAVB pin groups commit 491e9f585c97c857c52669244c2263cdc5e3e645 upstream. Add EtherAVB groups and functions definitions for R8A77470 SoC. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Simon Horman Signed-off-by: Geert Uytterhoeven Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/pinctrl/sh-pfc/pfc-r8a77470.c | 133 ++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a77470.c b/drivers/pinctrl/sh-pfc/pfc-r8a77470.c index 8973f611493b..4526b0f991d0 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a77470.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a77470.c @@ -1118,6 +1118,110 @@ static const struct sh_pfc_pin pinmux_pins[] = { PINMUX_GPIO_GP_ALL(), }; +/* - AVB -------------------------------------------------------------------- */ +static const unsigned int avb_col_pins[] = { + RCAR_GP_PIN(5, 18), +}; +static const unsigned int avb_col_mux[] = { + AVB_COL_MARK, +}; +static const unsigned int avb_crs_pins[] = { + RCAR_GP_PIN(5, 17), +}; +static const unsigned int avb_crs_mux[] = { + AVB_CRS_MARK, +}; +static const unsigned int avb_link_pins[] = { + RCAR_GP_PIN(5, 14), +}; +static const unsigned int avb_link_mux[] = { + AVB_LINK_MARK, +}; +static const unsigned int avb_magic_pins[] = { + RCAR_GP_PIN(5, 15), +}; +static const unsigned int avb_magic_mux[] = { + AVB_MAGIC_MARK, +}; +static const unsigned int avb_phy_int_pins[] = { + RCAR_GP_PIN(5, 16), +}; +static const unsigned int avb_phy_int_mux[] = { + AVB_PHY_INT_MARK, +}; +static const unsigned int avb_mdio_pins[] = { + RCAR_GP_PIN(5, 12), RCAR_GP_PIN(5, 13), +}; +static const unsigned int avb_mdio_mux[] = { + AVB_MDC_MARK, AVB_MDIO_MARK, +}; +static const unsigned int avb_mii_tx_rx_pins[] = { + RCAR_GP_PIN(3, 12), RCAR_GP_PIN(3, 14), RCAR_GP_PIN(3, 15), + RCAR_GP_PIN(3, 16), RCAR_GP_PIN(3, 27), RCAR_GP_PIN(3, 13), + + RCAR_GP_PIN(3, 0), RCAR_GP_PIN(3, 2), RCAR_GP_PIN(3, 3), + RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), RCAR_GP_PIN(3, 1), + RCAR_GP_PIN(3, 10), +}; +static const unsigned int avb_mii_tx_rx_mux[] = { + AVB_TX_CLK_MARK, AVB_TXD0_MARK, AVB_TXD1_MARK, AVB_TXD2_MARK, + AVB_TXD3_MARK, AVB_TX_EN_MARK, + + AVB_RX_CLK_MARK, AVB_RXD0_MARK, AVB_RXD1_MARK, AVB_RXD2_MARK, + AVB_RXD3_MARK, AVB_RX_DV_MARK, AVB_RX_ER_MARK, +}; +static const unsigned int avb_mii_tx_er_pins[] = { + RCAR_GP_PIN(5, 23), +}; +static const unsigned int avb_mii_tx_er_mux[] = { + AVB_TX_ER_MARK, +}; +static const unsigned int avb_gmii_tx_rx_pins[] = { + RCAR_GP_PIN(4, 1), RCAR_GP_PIN(3, 11), RCAR_GP_PIN(3, 12), + RCAR_GP_PIN(3, 14), RCAR_GP_PIN(3, 15), RCAR_GP_PIN(3, 16), + RCAR_GP_PIN(3, 27), RCAR_GP_PIN(3, 28), RCAR_GP_PIN(3, 29), + RCAR_GP_PIN(4, 0), RCAR_GP_PIN(5, 22), RCAR_GP_PIN(3, 13), + RCAR_GP_PIN(5, 23), + + RCAR_GP_PIN(3, 0), RCAR_GP_PIN(3, 2), RCAR_GP_PIN(3, 3), + RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), RCAR_GP_PIN(3, 6), + RCAR_GP_PIN(3, 7), RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), + RCAR_GP_PIN(3, 1), RCAR_GP_PIN(3, 10), +}; +static const unsigned int avb_gmii_tx_rx_mux[] = { + AVB_GTX_CLK_MARK, AVB_GTXREFCLK_MARK, AVB_TX_CLK_MARK, AVB_TXD0_MARK, + AVB_TXD1_MARK, AVB_TXD2_MARK, AVB_TXD3_MARK, AVB_TXD4_MARK, + AVB_TXD5_MARK, AVB_TXD6_MARK, AVB_TXD7_MARK, AVB_TX_EN_MARK, + AVB_TX_ER_MARK, + + AVB_RX_CLK_MARK, AVB_RXD0_MARK, AVB_RXD1_MARK, AVB_RXD2_MARK, + AVB_RXD3_MARK, AVB_RXD4_MARK, AVB_RXD5_MARK, AVB_RXD6_MARK, + AVB_RXD7_MARK, AVB_RX_DV_MARK, AVB_RX_ER_MARK, +}; +static const unsigned int avb_avtp_match_a_pins[] = { + RCAR_GP_PIN(1, 15), +}; +static const unsigned int avb_avtp_match_a_mux[] = { + AVB_AVTP_MATCH_A_MARK, +}; +static const unsigned int avb_avtp_capture_a_pins[] = { + RCAR_GP_PIN(1, 14), +}; +static const unsigned int avb_avtp_capture_a_mux[] = { + AVB_AVTP_CAPTURE_A_MARK, +}; +static const unsigned int avb_avtp_match_b_pins[] = { + RCAR_GP_PIN(5, 20), +}; +static const unsigned int avb_avtp_match_b_mux[] = { + AVB_AVTP_MATCH_B_MARK, +}; +static const unsigned int avb_avtp_capture_b_pins[] = { + RCAR_GP_PIN(5, 19), +}; +static const unsigned int avb_avtp_capture_b_mux[] = { + AVB_AVTP_CAPTURE_B_MARK, +}; /* - MMC -------------------------------------------------------------------- */ static const unsigned int mmc_data1_pins[] = { /* D0 */ @@ -1395,6 +1499,19 @@ static const unsigned int scif_clk_b_mux[] = { }; static const struct sh_pfc_pin_group pinmux_groups[] = { + SH_PFC_PIN_GROUP(avb_col), + SH_PFC_PIN_GROUP(avb_crs), + SH_PFC_PIN_GROUP(avb_link), + SH_PFC_PIN_GROUP(avb_magic), + SH_PFC_PIN_GROUP(avb_phy_int), + SH_PFC_PIN_GROUP(avb_mdio), + SH_PFC_PIN_GROUP(avb_mii_tx_rx), + SH_PFC_PIN_GROUP(avb_mii_tx_er), + SH_PFC_PIN_GROUP(avb_gmii_tx_rx), + SH_PFC_PIN_GROUP(avb_avtp_match_a), + SH_PFC_PIN_GROUP(avb_avtp_capture_a), + SH_PFC_PIN_GROUP(avb_avtp_match_b), + SH_PFC_PIN_GROUP(avb_avtp_capture_b), SH_PFC_PIN_GROUP(mmc_data1), SH_PFC_PIN_GROUP(mmc_data4), SH_PFC_PIN_GROUP(mmc_data8), @@ -1434,6 +1551,21 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(scif_clk_b), }; +static const char * const avb_groups[] = { + "avb_col", + "avb_crs", + "avb_link", + "avb_magic", + "avb_phy_int", + "avb_mdio", + "avb_mii_tx_rx", + "avb_mii_tx_er", + "avb_gmii_tx_rx", + "avb_avtp_match_a", + "avb_avtp_capture_a", + "avb_avtp_match_b", + "avb_avtp_capture_b", +}; static const char * const mmc_groups[] = { "mmc_data1", "mmc_data4", @@ -1496,6 +1628,7 @@ static const char * const scif_clk_groups[] = { }; static const struct sh_pfc_function pinmux_functions[] = { + SH_PFC_FUNCTION(avb), SH_PFC_FUNCTION(mmc), SH_PFC_FUNCTION(scif0), SH_PFC_FUNCTION(scif1), From 9b15fd793a67a415ee32777e89df34f57e4c4963 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 16 May 2019 10:39:19 +0100 Subject: [PATCH 0567/1149] pinctrl: sh-pfc: r8a77470: Add I2C4 pin groups commit e34ebe5a6b8318eb6d99d5476072e4eddf5c46f2 upstream. Add I2C4 pin groups and function to the R8A77470 SoC. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Geert Uytterhoeven Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/pinctrl/sh-pfc/pfc-r8a77470.c | 51 +++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a77470.c b/drivers/pinctrl/sh-pfc/pfc-r8a77470.c index 4526b0f991d0..dd54e9941a82 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a77470.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a77470.c @@ -1222,6 +1222,42 @@ static const unsigned int avb_avtp_capture_b_pins[] = { static const unsigned int avb_avtp_capture_b_mux[] = { AVB_AVTP_CAPTURE_B_MARK, }; +/* - I2C4 ------------------------------------------------------------------- */ +static const unsigned int i2c4_a_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(4, 10), RCAR_GP_PIN(4, 11), +}; +static const unsigned int i2c4_a_mux[] = { + SCL4_A_MARK, SDA4_A_MARK, +}; +static const unsigned int i2c4_b_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(5, 30), RCAR_GP_PIN(5, 31), +}; +static const unsigned int i2c4_b_mux[] = { + SCL4_B_MARK, SDA4_B_MARK, +}; +static const unsigned int i2c4_c_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(5, 4), RCAR_GP_PIN(5, 5), +}; +static const unsigned int i2c4_c_mux[] = { + SCL4_C_MARK, SDA4_C_MARK, +}; +static const unsigned int i2c4_d_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(2, 16), RCAR_GP_PIN(2, 17), +}; +static const unsigned int i2c4_d_mux[] = { + SCL4_D_MARK, SDA4_D_MARK, +}; +static const unsigned int i2c4_e_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(5, 7), RCAR_GP_PIN(5, 6), +}; +static const unsigned int i2c4_e_mux[] = { + SCL4_E_MARK, SDA4_E_MARK, +}; /* - MMC -------------------------------------------------------------------- */ static const unsigned int mmc_data1_pins[] = { /* D0 */ @@ -1512,6 +1548,11 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(avb_avtp_capture_a), SH_PFC_PIN_GROUP(avb_avtp_match_b), SH_PFC_PIN_GROUP(avb_avtp_capture_b), + SH_PFC_PIN_GROUP(i2c4_a), + SH_PFC_PIN_GROUP(i2c4_b), + SH_PFC_PIN_GROUP(i2c4_c), + SH_PFC_PIN_GROUP(i2c4_d), + SH_PFC_PIN_GROUP(i2c4_e), SH_PFC_PIN_GROUP(mmc_data1), SH_PFC_PIN_GROUP(mmc_data4), SH_PFC_PIN_GROUP(mmc_data8), @@ -1566,6 +1607,15 @@ static const char * const avb_groups[] = { "avb_avtp_match_b", "avb_avtp_capture_b", }; + +static const char * const i2c4_groups[] = { + "i2c4_a", + "i2c4_b", + "i2c4_c", + "i2c4_d", + "i2c4_e", +}; + static const char * const mmc_groups[] = { "mmc_data1", "mmc_data4", @@ -1629,6 +1679,7 @@ static const char * const scif_clk_groups[] = { static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(avb), + SH_PFC_FUNCTION(i2c4), SH_PFC_FUNCTION(mmc), SH_PFC_FUNCTION(scif0), SH_PFC_FUNCTION(scif1), From da46dc06ac1ac052355d5275d9715a19c16b6f59 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 16 May 2019 10:39:20 +0100 Subject: [PATCH 0568/1149] pinctrl: sh-pfc: r8a77470: Add DU0 pin groups commit 469c1e97dcce926f4c41e438c75ac064a7cbf042 upstream. Add DU0 pin groups and function to the R8A77470 SoC. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Geert Uytterhoeven Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/pinctrl/sh-pfc/pfc-r8a77470.c | 109 ++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a77470.c b/drivers/pinctrl/sh-pfc/pfc-r8a77470.c index dd54e9941a82..a1eb68b9bb32 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a77470.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a77470.c @@ -1222,6 +1222,93 @@ static const unsigned int avb_avtp_capture_b_pins[] = { static const unsigned int avb_avtp_capture_b_mux[] = { AVB_AVTP_CAPTURE_B_MARK, }; +/* - DU --------------------------------------------------------------------- */ +static const unsigned int du0_rgb666_pins[] = { + /* R[7:2], G[7:2], B[7:2] */ + RCAR_GP_PIN(2, 7), RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 5), + RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 3), RCAR_GP_PIN(2, 2), + RCAR_GP_PIN(2, 15), RCAR_GP_PIN(2, 14), RCAR_GP_PIN(2, 13), + RCAR_GP_PIN(2, 12), RCAR_GP_PIN(2, 11), RCAR_GP_PIN(2, 10), + RCAR_GP_PIN(2, 23), RCAR_GP_PIN(2, 22), RCAR_GP_PIN(2, 21), + RCAR_GP_PIN(2, 20), RCAR_GP_PIN(2, 19), RCAR_GP_PIN(2, 18), +}; +static const unsigned int du0_rgb666_mux[] = { + DU0_DR7_MARK, DU0_DR6_MARK, DU0_DR5_MARK, DU0_DR4_MARK, + DU0_DR3_MARK, DU0_DR2_MARK, + DU0_DG7_MARK, DU0_DG6_MARK, DU0_DG5_MARK, DU0_DG4_MARK, + DU0_DG3_MARK, DU0_DG2_MARK, + DU0_DB7_MARK, DU0_DB6_MARK, DU0_DB5_MARK, DU0_DB4_MARK, + DU0_DB3_MARK, DU0_DB2_MARK, +}; +static const unsigned int du0_rgb888_pins[] = { + /* R[7:0], G[7:0], B[7:0] */ + RCAR_GP_PIN(2, 7), RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 5), + RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 3), RCAR_GP_PIN(2, 2), + RCAR_GP_PIN(2, 1), RCAR_GP_PIN(2, 0), + RCAR_GP_PIN(2, 15), RCAR_GP_PIN(2, 14), RCAR_GP_PIN(2, 13), + RCAR_GP_PIN(2, 12), RCAR_GP_PIN(2, 11), RCAR_GP_PIN(2, 10), + RCAR_GP_PIN(2, 9), RCAR_GP_PIN(2, 8), + RCAR_GP_PIN(2, 23), RCAR_GP_PIN(2, 22), RCAR_GP_PIN(2, 21), + RCAR_GP_PIN(2, 20), RCAR_GP_PIN(2, 19), RCAR_GP_PIN(2, 18), + RCAR_GP_PIN(2, 17), RCAR_GP_PIN(2, 16), +}; +static const unsigned int du0_rgb888_mux[] = { + DU0_DR7_MARK, DU0_DR6_MARK, DU0_DR5_MARK, DU0_DR4_MARK, + DU0_DR3_MARK, DU0_DR2_MARK, DU0_DR1_MARK, DU0_DR0_MARK, + DU0_DG7_MARK, DU0_DG6_MARK, DU0_DG5_MARK, DU0_DG4_MARK, + DU0_DG3_MARK, DU0_DG2_MARK, DU0_DG1_MARK, DU0_DG0_MARK, + DU0_DB7_MARK, DU0_DB6_MARK, DU0_DB5_MARK, DU0_DB4_MARK, + DU0_DB3_MARK, DU0_DB2_MARK, DU0_DB1_MARK, DU0_DB0_MARK, +}; +static const unsigned int du0_clk0_out_pins[] = { + /* DOTCLKOUT0 */ + RCAR_GP_PIN(2, 25), +}; +static const unsigned int du0_clk0_out_mux[] = { + DU0_DOTCLKOUT0_MARK +}; +static const unsigned int du0_clk1_out_pins[] = { + /* DOTCLKOUT1 */ + RCAR_GP_PIN(2, 26), +}; +static const unsigned int du0_clk1_out_mux[] = { + DU0_DOTCLKOUT1_MARK +}; +static const unsigned int du0_clk_in_pins[] = { + /* CLKIN */ + RCAR_GP_PIN(2, 24), +}; +static const unsigned int du0_clk_in_mux[] = { + DU0_DOTCLKIN_MARK +}; +static const unsigned int du0_sync_pins[] = { + /* EXVSYNC/VSYNC, EXHSYNC/HSYNC */ + RCAR_GP_PIN(2, 28), RCAR_GP_PIN(2, 27), +}; +static const unsigned int du0_sync_mux[] = { + DU0_EXVSYNC_DU0_VSYNC_MARK, DU0_EXHSYNC_DU0_HSYNC_MARK +}; +static const unsigned int du0_oddf_pins[] = { + /* EXODDF/ODDF/DISP/CDE */ + RCAR_GP_PIN(2, 29), +}; +static const unsigned int du0_oddf_mux[] = { + DU0_EXODDF_DU0_ODDF_DISP_CDE_MARK, +}; +static const unsigned int du0_cde_pins[] = { + /* CDE */ + RCAR_GP_PIN(2, 31), +}; +static const unsigned int du0_cde_mux[] = { + DU0_CDE_MARK, +}; +static const unsigned int du0_disp_pins[] = { + /* DISP */ + RCAR_GP_PIN(2, 30), +}; +static const unsigned int du0_disp_mux[] = { + DU0_DISP_MARK +}; /* - I2C4 ------------------------------------------------------------------- */ static const unsigned int i2c4_a_pins[] = { /* SCL, SDA */ @@ -1548,6 +1635,15 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(avb_avtp_capture_a), SH_PFC_PIN_GROUP(avb_avtp_match_b), SH_PFC_PIN_GROUP(avb_avtp_capture_b), + SH_PFC_PIN_GROUP(du0_rgb666), + SH_PFC_PIN_GROUP(du0_rgb888), + SH_PFC_PIN_GROUP(du0_clk0_out), + SH_PFC_PIN_GROUP(du0_clk1_out), + SH_PFC_PIN_GROUP(du0_clk_in), + SH_PFC_PIN_GROUP(du0_sync), + SH_PFC_PIN_GROUP(du0_oddf), + SH_PFC_PIN_GROUP(du0_cde), + SH_PFC_PIN_GROUP(du0_disp), SH_PFC_PIN_GROUP(i2c4_a), SH_PFC_PIN_GROUP(i2c4_b), SH_PFC_PIN_GROUP(i2c4_c), @@ -1608,6 +1704,18 @@ static const char * const avb_groups[] = { "avb_avtp_capture_b", }; +static const char * const du0_groups[] = { + "du0_rgb666", + "du0_rgb888", + "du0_clk0_out", + "du0_clk1_out", + "du0_clk_in", + "du0_sync", + "du0_oddf", + "du0_cde", + "du0_disp", +}; + static const char * const i2c4_groups[] = { "i2c4_a", "i2c4_b", @@ -1679,6 +1787,7 @@ static const char * const scif_clk_groups[] = { static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(avb), + SH_PFC_FUNCTION(du0), SH_PFC_FUNCTION(i2c4), SH_PFC_FUNCTION(mmc), SH_PFC_FUNCTION(scif0), From deeacb83e2a2edc7d7c4cfc24f1af64f2749efdc Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 16 May 2019 10:39:21 +0100 Subject: [PATCH 0569/1149] pinctrl: sh-pfc: r8a77470: Add QSPI0 pin groups commit e5984d0576fbcd756a3c03f1d3136fdc46b30c74 upstream. Add QSPI0 pin groups and function to the R8A77470 SoC. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Geert Uytterhoeven Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/pinctrl/sh-pfc/pfc-r8a77470.c | 34 +++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a77470.c b/drivers/pinctrl/sh-pfc/pfc-r8a77470.c index a1eb68b9bb32..77e8b59347dd 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a77470.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a77470.c @@ -1382,6 +1382,30 @@ static const unsigned int mmc_ctrl_pins[] = { static const unsigned int mmc_ctrl_mux[] = { MMC0_CLK_SDHI1_CLK_MARK, MMC0_CMD_SDHI1_CMD_MARK, }; +/* - QSPI ------------------------------------------------------------------- */ +static const unsigned int qspi0_ctrl_pins[] = { + /* SPCLK, SSL */ + RCAR_GP_PIN(1, 16), RCAR_GP_PIN(1, 21), +}; +static const unsigned int qspi0_ctrl_mux[] = { + QSPI0_SPCLK_MARK, QSPI0_SSL_MARK, +}; +static const unsigned int qspi0_data2_pins[] = { + /* MOSI_IO0, MISO_IO1 */ + RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 18), +}; +static const unsigned int qspi0_data2_mux[] = { + QSPI0_MOSI_QSPI0_IO0_MARK, QSPI0_MISO_QSPI0_IO1_MARK, +}; +static const unsigned int qspi0_data4_pins[] = { + /* MOSI_IO0, MISO_IO1, IO2, IO3 */ + RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 18), RCAR_GP_PIN(1, 19), + RCAR_GP_PIN(1, 20), +}; +static const unsigned int qspi0_data4_mux[] = { + QSPI0_MOSI_QSPI0_IO0_MARK, QSPI0_MISO_QSPI0_IO1_MARK, + QSPI0_IO2_MARK, QSPI0_IO3_MARK, +}; /* - SCIF0 ------------------------------------------------------------------ */ static const unsigned int scif0_data_a_pins[] = { /* RX, TX */ @@ -1653,6 +1677,9 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(mmc_data4), SH_PFC_PIN_GROUP(mmc_data8), SH_PFC_PIN_GROUP(mmc_ctrl), + SH_PFC_PIN_GROUP(qspi0_ctrl), + SH_PFC_PIN_GROUP(qspi0_data2), + SH_PFC_PIN_GROUP(qspi0_data4), SH_PFC_PIN_GROUP(scif0_data_a), SH_PFC_PIN_GROUP(scif0_data_b), SH_PFC_PIN_GROUP(scif0_data_c), @@ -1731,6 +1758,12 @@ static const char * const mmc_groups[] = { "mmc_ctrl", }; +static const char * const qspi0_groups[] = { + "qspi0_ctrl", + "qspi0_data2", + "qspi0_data4", +}; + static const char * const scif0_groups[] = { "scif0_data_a", "scif0_data_b", @@ -1790,6 +1823,7 @@ static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(du0), SH_PFC_FUNCTION(i2c4), SH_PFC_FUNCTION(mmc), + SH_PFC_FUNCTION(qspi0), SH_PFC_FUNCTION(scif0), SH_PFC_FUNCTION(scif1), SH_PFC_FUNCTION(scif2), From 62f7889a166639536268afb289c26d174f4dd1cf Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 16 May 2019 10:39:22 +0100 Subject: [PATCH 0570/1149] pinctrl: sh-pfc: r8a77470: Add SDHI2 pin groups commit df9c71694fcf84f4956b07750afa8608cc0a84ad upstream. Add SDHI2 pin groups and functions to the R8A77470 SoC. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Geert Uytterhoeven Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/pinctrl/sh-pfc/pfc-r8a77470.c | 51 +++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a77470.c b/drivers/pinctrl/sh-pfc/pfc-r8a77470.c index 77e8b59347dd..a103740ed7f9 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a77470.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a77470.c @@ -1644,6 +1644,43 @@ static const unsigned int scif_clk_b_pins[] = { static const unsigned int scif_clk_b_mux[] = { SCIF_CLK_B_MARK, }; +/* - SDHI2 ------------------------------------------------------------------ */ +static const unsigned int sdhi2_data1_pins[] = { + /* D0 */ + RCAR_GP_PIN(4, 16), +}; +static const unsigned int sdhi2_data1_mux[] = { + SD2_DAT0_MARK, +}; +static const unsigned int sdhi2_data4_pins[] = { + /* D[0:3] */ + RCAR_GP_PIN(4, 16), RCAR_GP_PIN(4, 17), + RCAR_GP_PIN(4, 18), RCAR_GP_PIN(4, 19), +}; +static const unsigned int sdhi2_data4_mux[] = { + SD2_DAT0_MARK, SD2_DAT1_MARK, SD2_DAT2_MARK, SD2_DAT3_MARK, +}; +static const unsigned int sdhi2_ctrl_pins[] = { + /* CLK, CMD */ + RCAR_GP_PIN(4, 14), RCAR_GP_PIN(4, 15), +}; +static const unsigned int sdhi2_ctrl_mux[] = { + SD2_CLK_MARK, SD2_CMD_MARK, +}; +static const unsigned int sdhi2_cd_pins[] = { + /* CD */ + RCAR_GP_PIN(4, 20), +}; +static const unsigned int sdhi2_cd_mux[] = { + SD2_CD_MARK, +}; +static const unsigned int sdhi2_wp_pins[] = { + /* WP */ + RCAR_GP_PIN(4, 21), +}; +static const unsigned int sdhi2_wp_mux[] = { + SD2_WP_MARK, +}; static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(avb_col), @@ -1713,6 +1750,11 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(scif5_data_f), SH_PFC_PIN_GROUP(scif_clk_a), SH_PFC_PIN_GROUP(scif_clk_b), + SH_PFC_PIN_GROUP(sdhi2_data1), + SH_PFC_PIN_GROUP(sdhi2_data4), + SH_PFC_PIN_GROUP(sdhi2_ctrl), + SH_PFC_PIN_GROUP(sdhi2_cd), + SH_PFC_PIN_GROUP(sdhi2_wp), }; static const char * const avb_groups[] = { @@ -1818,6 +1860,14 @@ static const char * const scif_clk_groups[] = { "scif_clk_b", }; +static const char * const sdhi2_groups[] = { + "sdhi2_data1", + "sdhi2_data4", + "sdhi2_ctrl", + "sdhi2_cd", + "sdhi2_wp", +}; + static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(avb), SH_PFC_FUNCTION(du0), @@ -1831,6 +1881,7 @@ static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(scif4), SH_PFC_FUNCTION(scif5), SH_PFC_FUNCTION(scif_clk), + SH_PFC_FUNCTION(sdhi2), }; static const struct pinmux_cfg_reg pinmux_config_regs[] = { From 3cd4d3fabd37ad751e1fcbd0d21686447ccf456b Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 16 May 2019 10:39:23 +0100 Subject: [PATCH 0571/1149] pinctrl: sh-pfc: r8a77470: Add USB pin groups commit 8faa0754ec246bb40034c6d8afca72afef54bd10 upstream. Add USB[01] pin groups and functions to the R8A77470 SoC. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Geert Uytterhoeven Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/pinctrl/sh-pfc/pfc-r8a77470.c | 30 +++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a77470.c b/drivers/pinctrl/sh-pfc/pfc-r8a77470.c index a103740ed7f9..283217f3c68c 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a77470.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a77470.c @@ -1681,6 +1681,24 @@ static const unsigned int sdhi2_wp_pins[] = { static const unsigned int sdhi2_wp_mux[] = { SD2_WP_MARK, }; +/* - USB0 ------------------------------------------------------------------- */ +static const unsigned int usb0_pins[] = { + RCAR_GP_PIN(0, 0), /* PWEN */ + RCAR_GP_PIN(0, 1), /* OVC */ +}; +static const unsigned int usb0_mux[] = { + USB0_PWEN_MARK, + USB0_OVC_MARK, +}; +/* - USB1 ------------------------------------------------------------------- */ +static const unsigned int usb1_pins[] = { + RCAR_GP_PIN(0, 2), /* PWEN */ + RCAR_GP_PIN(0, 3), /* OVC */ +}; +static const unsigned int usb1_mux[] = { + USB1_PWEN_MARK, + USB1_OVC_MARK, +}; static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(avb_col), @@ -1755,6 +1773,8 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(sdhi2_ctrl), SH_PFC_PIN_GROUP(sdhi2_cd), SH_PFC_PIN_GROUP(sdhi2_wp), + SH_PFC_PIN_GROUP(usb0), + SH_PFC_PIN_GROUP(usb1), }; static const char * const avb_groups[] = { @@ -1868,6 +1888,14 @@ static const char * const sdhi2_groups[] = { "sdhi2_wp", }; +static const char * const usb0_groups[] = { + "usb0", +}; + +static const char * const usb1_groups[] = { + "usb1", +}; + static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(avb), SH_PFC_FUNCTION(du0), @@ -1882,6 +1910,8 @@ static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(scif5), SH_PFC_FUNCTION(scif_clk), SH_PFC_FUNCTION(sdhi2), + SH_PFC_FUNCTION(usb0), + SH_PFC_FUNCTION(usb1), }; static const struct pinmux_cfg_reg pinmux_config_regs[] = { From 0035bacb438222366c1043560fd84f58e6ccf49f Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 16 May 2019 10:39:24 +0100 Subject: [PATCH 0572/1149] pinctrl: sh-pfc: r8a77470: Add remaining I2C pin groups commit 80ef7d09104424120c5a9e531f6c41ecb14b023c upstream. This patch adds I2C[0123] groups and functions to the RZ/G1C (a.k.a. R8A77470) pinctrl driver. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Simon Horman Signed-off-by: Geert Uytterhoeven Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/pinctrl/sh-pfc/pfc-r8a77470.c | 191 ++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a77470.c b/drivers/pinctrl/sh-pfc/pfc-r8a77470.c index 283217f3c68c..3ca236a99346 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a77470.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a77470.c @@ -1309,6 +1309,143 @@ static const unsigned int du0_disp_pins[] = { static const unsigned int du0_disp_mux[] = { DU0_DISP_MARK }; +/* - I2C0 ------------------------------------------------------------------- */ +static const unsigned int i2c0_a_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(4, 0), RCAR_GP_PIN(4, 1), +}; +static const unsigned int i2c0_a_mux[] = { + SCL0_A_MARK, SDA0_A_MARK, +}; +static const unsigned int i2c0_b_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(5, 28), RCAR_GP_PIN(5, 29), +}; +static const unsigned int i2c0_b_mux[] = { + SCL0_B_MARK, SDA0_B_MARK, +}; +static const unsigned int i2c0_c_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(3, 11), RCAR_GP_PIN(3, 12), +}; +static const unsigned int i2c0_c_mux[] = { + SCL0_C_MARK, SDA0_C_MARK, +}; +static const unsigned int i2c0_d_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3), +}; +static const unsigned int i2c0_d_mux[] = { + SCL0_D_MARK, SDA0_D_MARK, +}; +static const unsigned int i2c0_e_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(2, 2), RCAR_GP_PIN(2, 3), +}; +static const unsigned int i2c0_e_mux[] = { + SCL0_E_MARK, SDA0_E_MARK, +}; +/* - I2C1 ------------------------------------------------------------------- */ +static const unsigned int i2c1_a_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(4, 2), RCAR_GP_PIN(4, 3), +}; +static const unsigned int i2c1_a_mux[] = { + SCL1_A_MARK, SDA1_A_MARK, +}; +static const unsigned int i2c1_b_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(1, 5), RCAR_GP_PIN(1, 6), +}; +static const unsigned int i2c1_b_mux[] = { + SCL1_B_MARK, SDA1_B_MARK, +}; +static const unsigned int i2c1_c_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(4, 22), RCAR_GP_PIN(4, 23), +}; +static const unsigned int i2c1_c_mux[] = { + SCL1_C_MARK, SDA1_C_MARK, +}; +static const unsigned int i2c1_d_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(1, 8), RCAR_GP_PIN(1, 9), +}; +static const unsigned int i2c1_d_mux[] = { + SCL1_D_MARK, SDA1_D_MARK, +}; +static const unsigned int i2c1_e_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(4, 16), RCAR_GP_PIN(4, 17), +}; +static const unsigned int i2c1_e_mux[] = { + SCL1_E_MARK, SDA1_E_MARK, +}; +/* - I2C2 ------------------------------------------------------------------- */ +static const unsigned int i2c2_a_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(4, 24), RCAR_GP_PIN(4, 25), +}; +static const unsigned int i2c2_a_mux[] = { + SCL2_A_MARK, SDA2_A_MARK, +}; +static const unsigned int i2c2_b_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(3, 13), RCAR_GP_PIN(3, 14), +}; +static const unsigned int i2c2_b_mux[] = { + SCL2_B_MARK, SDA2_B_MARK, +}; +static const unsigned int i2c2_c_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5), +}; +static const unsigned int i2c2_c_mux[] = { + SCL2_C_MARK, SDA2_C_MARK, +}; +static const unsigned int i2c2_d_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(2, 0), RCAR_GP_PIN(2, 1), +}; +static const unsigned int i2c2_d_mux[] = { + SCL2_D_MARK, SDA2_D_MARK, +}; +/* - I2C3 ------------------------------------------------------------------- */ +static const unsigned int i2c3_a_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(3, 9), RCAR_GP_PIN(3, 10), +}; +static const unsigned int i2c3_a_mux[] = { + SCL3_A_MARK, SDA3_A_MARK, +}; +static const unsigned int i2c3_b_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(1, 0), RCAR_GP_PIN(1, 1), +}; +static const unsigned int i2c3_b_mux[] = { + SCL3_B_MARK, SDA3_B_MARK, +}; +static const unsigned int i2c3_c_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(5, 1), RCAR_GP_PIN(5, 2), +}; +static const unsigned int i2c3_c_mux[] = { + SCL3_C_MARK, SDA3_C_MARK, +}; +static const unsigned int i2c3_d_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(2, 8), RCAR_GP_PIN(2, 9), +}; +static const unsigned int i2c3_d_mux[] = { + SCL3_D_MARK, SDA3_D_MARK, +}; +static const unsigned int i2c3_e_pins[] = { + /* SCL, SDA */ + RCAR_GP_PIN(5, 25), RCAR_GP_PIN(5, 26), +}; +static const unsigned int i2c3_e_mux[] = { + SCL3_E_MARK, SDA3_E_MARK, +}; /* - I2C4 ------------------------------------------------------------------- */ static const unsigned int i2c4_a_pins[] = { /* SCL, SDA */ @@ -1723,6 +1860,25 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(du0_oddf), SH_PFC_PIN_GROUP(du0_cde), SH_PFC_PIN_GROUP(du0_disp), + SH_PFC_PIN_GROUP(i2c0_a), + SH_PFC_PIN_GROUP(i2c0_b), + SH_PFC_PIN_GROUP(i2c0_c), + SH_PFC_PIN_GROUP(i2c0_d), + SH_PFC_PIN_GROUP(i2c0_e), + SH_PFC_PIN_GROUP(i2c1_a), + SH_PFC_PIN_GROUP(i2c1_b), + SH_PFC_PIN_GROUP(i2c1_c), + SH_PFC_PIN_GROUP(i2c1_d), + SH_PFC_PIN_GROUP(i2c1_e), + SH_PFC_PIN_GROUP(i2c2_a), + SH_PFC_PIN_GROUP(i2c2_b), + SH_PFC_PIN_GROUP(i2c2_c), + SH_PFC_PIN_GROUP(i2c2_d), + SH_PFC_PIN_GROUP(i2c3_a), + SH_PFC_PIN_GROUP(i2c3_b), + SH_PFC_PIN_GROUP(i2c3_c), + SH_PFC_PIN_GROUP(i2c3_d), + SH_PFC_PIN_GROUP(i2c3_e), SH_PFC_PIN_GROUP(i2c4_a), SH_PFC_PIN_GROUP(i2c4_b), SH_PFC_PIN_GROUP(i2c4_c), @@ -1805,6 +1961,37 @@ static const char * const du0_groups[] = { "du0_disp", }; +static const char * const i2c0_groups[] = { + "i2c0_a", + "i2c0_b", + "i2c0_c", + "i2c0_d", + "i2c0_e", +}; + +static const char * const i2c1_groups[] = { + "i2c1_a", + "i2c1_b", + "i2c1_c", + "i2c1_d", + "i2c1_e", +}; + +static const char * const i2c2_groups[] = { + "i2c2_a", + "i2c2_b", + "i2c2_c", + "i2c2_d", +}; + +static const char * const i2c3_groups[] = { + "i2c3_a", + "i2c3_b", + "i2c3_c", + "i2c3_d", + "i2c3_e", +}; + static const char * const i2c4_groups[] = { "i2c4_a", "i2c4_b", @@ -1899,6 +2086,10 @@ static const char * const usb1_groups[] = { static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(avb), SH_PFC_FUNCTION(du0), + SH_PFC_FUNCTION(i2c0), + SH_PFC_FUNCTION(i2c1), + SH_PFC_FUNCTION(i2c2), + SH_PFC_FUNCTION(i2c3), SH_PFC_FUNCTION(i2c4), SH_PFC_FUNCTION(mmc), SH_PFC_FUNCTION(qspi0), From 4aa6605d10068f26209cbfd4ecd1f0261e5c95ab Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 16 May 2019 10:39:25 +0100 Subject: [PATCH 0573/1149] pinctrl: sh-pfc: r8a77470: Add DU1 pin groups commit 5c9258bca9ace0a25614b635fc1c2836ee4d8c96 upstream. Add DU1 pin groups and function to the RZ/G1C (a.k.a. R8A77470) pinctrl driver. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Simon Horman Signed-off-by: Geert Uytterhoeven Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/pinctrl/sh-pfc/pfc-r8a77470.c | 108 ++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a77470.c b/drivers/pinctrl/sh-pfc/pfc-r8a77470.c index 3ca236a99346..81ef3af1e18c 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a77470.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a77470.c @@ -1309,6 +1309,92 @@ static const unsigned int du0_disp_pins[] = { static const unsigned int du0_disp_mux[] = { DU0_DISP_MARK }; +static const unsigned int du1_rgb666_pins[] = { + /* R[7:2], G[7:2], B[7:2] */ + RCAR_GP_PIN(4, 9), RCAR_GP_PIN(4, 8), RCAR_GP_PIN(4, 7), + RCAR_GP_PIN(4, 6), RCAR_GP_PIN(4, 5), RCAR_GP_PIN(4, 4), + RCAR_GP_PIN(4, 17), RCAR_GP_PIN(4, 16), RCAR_GP_PIN(4, 15), + RCAR_GP_PIN(4, 14), RCAR_GP_PIN(4, 13), RCAR_GP_PIN(4, 12), + RCAR_GP_PIN(4, 25), RCAR_GP_PIN(4, 24), RCAR_GP_PIN(4, 23), + RCAR_GP_PIN(4, 22), RCAR_GP_PIN(4, 21), RCAR_GP_PIN(4, 20), +}; +static const unsigned int du1_rgb666_mux[] = { + DU1_DR7_MARK, DU1_DR6_MARK, DU1_DR5_MARK, DU1_DR4_MARK, + DU1_DR3_MARK, DU1_DR2_MARK, + DU1_DG7_MARK, DU1_DG6_MARK, DU1_DG5_MARK, DU1_DG4_MARK, + DU1_DG3_MARK, DU1_DG2_MARK, + DU1_DB7_MARK, DU1_DB6_MARK, DU1_DB5_MARK, DU1_DB4_MARK, + DU1_DB3_MARK, DU1_DB2_MARK, +}; +static const unsigned int du1_rgb888_pins[] = { + /* R[7:0], G[7:0], B[7:0] */ + RCAR_GP_PIN(4, 9), RCAR_GP_PIN(4, 8), RCAR_GP_PIN(4, 7), + RCAR_GP_PIN(4, 6), RCAR_GP_PIN(4, 5), RCAR_GP_PIN(4, 4), + RCAR_GP_PIN(4, 3), RCAR_GP_PIN(4, 2), + RCAR_GP_PIN(4, 17), RCAR_GP_PIN(4, 16), RCAR_GP_PIN(4, 15), + RCAR_GP_PIN(4, 14), RCAR_GP_PIN(4, 13), RCAR_GP_PIN(4, 12), + RCAR_GP_PIN(4, 11), RCAR_GP_PIN(4, 10), + RCAR_GP_PIN(4, 25), RCAR_GP_PIN(4, 24), RCAR_GP_PIN(4, 23), + RCAR_GP_PIN(4, 22), RCAR_GP_PIN(4, 21), RCAR_GP_PIN(4, 20), + RCAR_GP_PIN(4, 19), RCAR_GP_PIN(4, 18), +}; +static const unsigned int du1_rgb888_mux[] = { + DU1_DR7_MARK, DU1_DR6_MARK, DU1_DR5_MARK, DU1_DR4_MARK, + DU1_DR3_MARK, DU1_DR2_MARK, DU1_DR1_MARK, DU1_DR0_MARK, + DU1_DG7_MARK, DU1_DG6_MARK, DU1_DG5_MARK, DU1_DG4_MARK, + DU1_DG3_MARK, DU1_DG2_MARK, DU1_DG1_MARK, DU1_DG0_MARK, + DU1_DB7_MARK, DU1_DB6_MARK, DU1_DB5_MARK, DU1_DB4_MARK, + DU1_DB3_MARK, DU1_DB2_MARK, DU1_DB1_MARK, DU1_DB0_MARK, +}; +static const unsigned int du1_clk0_out_pins[] = { + /* DOTCLKOUT0 */ + RCAR_GP_PIN(5, 2), +}; +static const unsigned int du1_clk0_out_mux[] = { + DU1_DOTCLKOUT0_MARK +}; +static const unsigned int du1_clk1_out_pins[] = { + /* DOTCLKOUT1 */ + RCAR_GP_PIN(5, 0), +}; +static const unsigned int du1_clk1_out_mux[] = { + DU1_DOTCLKOUT1_MARK +}; +static const unsigned int du1_clk_in_pins[] = { + /* DOTCLKIN */ + RCAR_GP_PIN(5, 1), +}; +static const unsigned int du1_clk_in_mux[] = { + DU1_DOTCLKIN_MARK +}; +static const unsigned int du1_sync_pins[] = { + /* EXVSYNC/VSYNC, EXHSYNC/HSYNC */ + RCAR_GP_PIN(5, 5), RCAR_GP_PIN(5, 4), +}; +static const unsigned int du1_sync_mux[] = { + DU1_EXVSYNC_DU1_VSYNC_MARK, DU1_EXHSYNC_DU1_HSYNC_MARK +}; +static const unsigned int du1_oddf_pins[] = { + /* EXODDF/ODDF/DISP/CDE */ + RCAR_GP_PIN(5, 3), +}; +static const unsigned int du1_oddf_mux[] = { + DU1_EXODDF_DU1_ODDF_DISP_CDE_MARK, +}; +static const unsigned int du1_cde_pins[] = { + /* CDE */ + RCAR_GP_PIN(5, 7), +}; +static const unsigned int du1_cde_mux[] = { + DU1_CDE_MARK +}; +static const unsigned int du1_disp_pins[] = { + /* DISP */ + RCAR_GP_PIN(5, 6), +}; +static const unsigned int du1_disp_mux[] = { + DU1_DISP_MARK +}; /* - I2C0 ------------------------------------------------------------------- */ static const unsigned int i2c0_a_pins[] = { /* SCL, SDA */ @@ -1860,6 +1946,15 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(du0_oddf), SH_PFC_PIN_GROUP(du0_cde), SH_PFC_PIN_GROUP(du0_disp), + SH_PFC_PIN_GROUP(du1_rgb666), + SH_PFC_PIN_GROUP(du1_rgb888), + SH_PFC_PIN_GROUP(du1_clk0_out), + SH_PFC_PIN_GROUP(du1_clk1_out), + SH_PFC_PIN_GROUP(du1_clk_in), + SH_PFC_PIN_GROUP(du1_sync), + SH_PFC_PIN_GROUP(du1_oddf), + SH_PFC_PIN_GROUP(du1_cde), + SH_PFC_PIN_GROUP(du1_disp), SH_PFC_PIN_GROUP(i2c0_a), SH_PFC_PIN_GROUP(i2c0_b), SH_PFC_PIN_GROUP(i2c0_c), @@ -1961,6 +2056,18 @@ static const char * const du0_groups[] = { "du0_disp", }; +static const char * const du1_groups[] = { + "du1_rgb666", + "du1_rgb888", + "du1_clk0_out", + "du1_clk1_out", + "du1_clk_in", + "du1_sync", + "du1_oddf", + "du1_cde", + "du1_disp", +}; + static const char * const i2c0_groups[] = { "i2c0_a", "i2c0_b", @@ -2086,6 +2193,7 @@ static const char * const usb1_groups[] = { static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(avb), SH_PFC_FUNCTION(du0), + SH_PFC_FUNCTION(du1), SH_PFC_FUNCTION(i2c0), SH_PFC_FUNCTION(i2c1), SH_PFC_FUNCTION(i2c2), From 202aa58955b214fb8c88aa2000a700c85161637c Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 16 May 2019 10:39:26 +0100 Subject: [PATCH 0574/1149] pinctrl: sh-pfc: r8a77470: Add VIN pin groups commit 610d662ac3d38ef0acad2c1128e6a9a547fd8c0f upstream. Add VIN[01] pin groups and functions to the RZ/G1C (a.k.a. R8A77470) pinctrl driver. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Simon Horman Signed-off-by: Geert Uytterhoeven Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/pinctrl/sh-pfc/pfc-r8a77470.c | 184 ++++++++++++++++++++++++++ 1 file changed, 184 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a77470.c b/drivers/pinctrl/sh-pfc/pfc-r8a77470.c index 81ef3af1e18c..f23042e854d4 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a77470.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a77470.c @@ -1922,6 +1922,146 @@ static const unsigned int usb1_mux[] = { USB1_PWEN_MARK, USB1_OVC_MARK, }; +/* - VIN0 ------------------------------------------------------------------- */ +static const union vin_data vin0_data_pins = { + .data24 = { + /* B */ + RCAR_GP_PIN(5, 20), RCAR_GP_PIN(5, 21), + RCAR_GP_PIN(5, 22), RCAR_GP_PIN(5, 23), + RCAR_GP_PIN(5, 24), RCAR_GP_PIN(5, 25), + RCAR_GP_PIN(5, 26), RCAR_GP_PIN(5, 27), + /* G */ + RCAR_GP_PIN(4, 2), RCAR_GP_PIN(4, 3), + RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5), + RCAR_GP_PIN(4, 6), RCAR_GP_PIN(5, 8), + RCAR_GP_PIN(5, 9), RCAR_GP_PIN(5, 10), + /* R */ + RCAR_GP_PIN(5, 11), RCAR_GP_PIN(5, 12), + RCAR_GP_PIN(5, 13), RCAR_GP_PIN(5, 14), + RCAR_GP_PIN(5, 15), RCAR_GP_PIN(5, 16), + RCAR_GP_PIN(5, 17), RCAR_GP_PIN(5, 19), + }, +}; +static const union vin_data vin0_data_mux = { + .data24 = { + /* B */ + VI0_DATA0_VI0_B0_MARK, VI0_DATA1_VI0_B1_MARK, + VI0_DATA2_VI0_B2_MARK, VI0_DATA3_VI0_B3_MARK, + VI0_DATA4_VI0_B4_MARK, VI0_DATA5_VI0_B5_MARK, + VI0_DATA6_VI0_B6_MARK, VI0_DATA7_VI0_B7_MARK, + /* G */ + VI0_G0_MARK, VI0_G1_MARK, + VI0_G2_MARK, VI0_G3_MARK, + VI0_G4_MARK, VI0_G5_MARK, + VI0_G6_MARK, VI0_G7_MARK, + /* R */ + VI0_R0_MARK, VI0_R1_MARK, + VI0_R2_MARK, VI0_R3_MARK, + VI0_R4_MARK, VI0_R5_MARK, + VI0_R6_MARK, VI0_R7_MARK, + }, +}; +static const unsigned int vin0_data18_pins[] = { + /* B */ + RCAR_GP_PIN(5, 22), RCAR_GP_PIN(5, 23), + RCAR_GP_PIN(5, 24), RCAR_GP_PIN(5, 25), + RCAR_GP_PIN(5, 26), RCAR_GP_PIN(5, 27), + /* G */ + RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5), + RCAR_GP_PIN(4, 6), RCAR_GP_PIN(5, 8), + RCAR_GP_PIN(5, 9), RCAR_GP_PIN(5, 10), + /* R */ + RCAR_GP_PIN(5, 13), RCAR_GP_PIN(5, 14), + RCAR_GP_PIN(5, 15), RCAR_GP_PIN(5, 16), + RCAR_GP_PIN(5, 17), RCAR_GP_PIN(5, 19), +}; +static const unsigned int vin0_data18_mux[] = { + /* B */ + VI0_DATA2_VI0_B2_MARK, VI0_DATA3_VI0_B3_MARK, + VI0_DATA4_VI0_B4_MARK, VI0_DATA5_VI0_B5_MARK, + VI0_DATA6_VI0_B6_MARK, VI0_DATA7_VI0_B7_MARK, + /* G */ + VI0_G2_MARK, VI0_G3_MARK, + VI0_G4_MARK, VI0_G5_MARK, + VI0_G6_MARK, VI0_G7_MARK, + /* R */ + VI0_R2_MARK, VI0_R3_MARK, + VI0_R4_MARK, VI0_R5_MARK, + VI0_R6_MARK, VI0_R7_MARK, +}; +static const unsigned int vin0_sync_pins[] = { + RCAR_GP_PIN(5, 30), /* HSYNC */ + RCAR_GP_PIN(5, 31), /* VSYNC */ +}; +static const unsigned int vin0_sync_mux[] = { + VI0_HSYNC_N_MARK, + VI0_VSYNC_N_MARK, +}; +static const unsigned int vin0_field_pins[] = { + RCAR_GP_PIN(5, 29), +}; +static const unsigned int vin0_field_mux[] = { + VI0_FIELD_MARK, +}; +static const unsigned int vin0_clkenb_pins[] = { + RCAR_GP_PIN(5, 28), +}; +static const unsigned int vin0_clkenb_mux[] = { + VI0_CLKENB_MARK, +}; +static const unsigned int vin0_clk_pins[] = { + RCAR_GP_PIN(5, 18), +}; +static const unsigned int vin0_clk_mux[] = { + VI0_CLK_MARK, +}; +/* - VIN1 ------------------------------------------------------------------- */ +static const union vin_data vin1_data_pins = { + .data12 = { + RCAR_GP_PIN(3, 1), RCAR_GP_PIN(3, 2), + RCAR_GP_PIN(3, 3), RCAR_GP_PIN(3, 4), + RCAR_GP_PIN(3, 5), RCAR_GP_PIN(3, 6), + RCAR_GP_PIN(3, 7), RCAR_GP_PIN(3, 8), + RCAR_GP_PIN(3, 13), RCAR_GP_PIN(3, 14), + RCAR_GP_PIN(3, 15), RCAR_GP_PIN(3, 16), + }, +}; +static const union vin_data vin1_data_mux = { + .data12 = { + VI1_DATA0_MARK, VI1_DATA1_MARK, + VI1_DATA2_MARK, VI1_DATA3_MARK, + VI1_DATA4_MARK, VI1_DATA5_MARK, + VI1_DATA6_MARK, VI1_DATA7_MARK, + VI1_DATA8_MARK, VI1_DATA9_MARK, + VI1_DATA10_MARK, VI1_DATA11_MARK, + }, +}; +static const unsigned int vin1_sync_pins[] = { + RCAR_GP_PIN(3, 11), /* HSYNC */ + RCAR_GP_PIN(3, 12), /* VSYNC */ +}; +static const unsigned int vin1_sync_mux[] = { + VI1_HSYNC_N_MARK, + VI1_VSYNC_N_MARK, +}; +static const unsigned int vin1_field_pins[] = { + RCAR_GP_PIN(3, 10), +}; +static const unsigned int vin1_field_mux[] = { + VI1_FIELD_MARK, +}; +static const unsigned int vin1_clkenb_pins[] = { + RCAR_GP_PIN(3, 9), +}; +static const unsigned int vin1_clkenb_mux[] = { + VI1_CLKENB_MARK, +}; +static const unsigned int vin1_clk_pins[] = { + RCAR_GP_PIN(3, 0), +}; +static const unsigned int vin1_clk_mux[] = { + VI1_CLK_MARK, +}; static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(avb_col), @@ -2026,6 +2166,24 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(sdhi2_wp), SH_PFC_PIN_GROUP(usb0), SH_PFC_PIN_GROUP(usb1), + VIN_DATA_PIN_GROUP(vin0_data, 24), + VIN_DATA_PIN_GROUP(vin0_data, 20), + SH_PFC_PIN_GROUP(vin0_data18), + VIN_DATA_PIN_GROUP(vin0_data, 16), + VIN_DATA_PIN_GROUP(vin0_data, 12), + VIN_DATA_PIN_GROUP(vin0_data, 10), + VIN_DATA_PIN_GROUP(vin0_data, 8), + SH_PFC_PIN_GROUP(vin0_sync), + SH_PFC_PIN_GROUP(vin0_field), + SH_PFC_PIN_GROUP(vin0_clkenb), + SH_PFC_PIN_GROUP(vin0_clk), + VIN_DATA_PIN_GROUP(vin1_data, 12), + VIN_DATA_PIN_GROUP(vin1_data, 10), + VIN_DATA_PIN_GROUP(vin1_data, 8), + SH_PFC_PIN_GROUP(vin1_sync), + SH_PFC_PIN_GROUP(vin1_field), + SH_PFC_PIN_GROUP(vin1_clkenb), + SH_PFC_PIN_GROUP(vin1_clk), }; static const char * const avb_groups[] = { @@ -2190,6 +2348,30 @@ static const char * const usb1_groups[] = { "usb1", }; +static const char * const vin0_groups[] = { + "vin0_data24", + "vin0_data20", + "vin0_data18", + "vin0_data16", + "vin0_data12", + "vin0_data10", + "vin0_data8", + "vin0_sync", + "vin0_field", + "vin0_clkenb", + "vin0_clk", +}; + +static const char * const vin1_groups[] = { + "vin1_data12", + "vin1_data10", + "vin1_data8", + "vin1_sync", + "vin1_field", + "vin1_clkenb", + "vin1_clk", +}; + static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(avb), SH_PFC_FUNCTION(du0), @@ -2211,6 +2393,8 @@ static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(sdhi2), SH_PFC_FUNCTION(usb0), SH_PFC_FUNCTION(usb1), + SH_PFC_FUNCTION(vin0), + SH_PFC_FUNCTION(vin1), }; static const struct pinmux_cfg_reg pinmux_config_regs[] = { From d09976349b3f73d349b1f9af3d689b7c47025052 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 16 May 2019 10:39:27 +0100 Subject: [PATCH 0575/1149] pinctrl: sh-pfc: r8a77470: Add QSPI1 pin groups commit f743f017b739e27601fec7d3eab29840c5e95b37 upstream. Add QSPI1 pin groups and function to the RZ/G1C (a.k.a. R8A77470) pinctrl driver. Signed-off-by: Fabrizio Castro Reviewed-by: Fabrizio Castro Reviewed-by: Simon Horman Signed-off-by: Geert Uytterhoeven Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/pinctrl/sh-pfc/pfc-r8a77470.c | 33 +++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a77470.c b/drivers/pinctrl/sh-pfc/pfc-r8a77470.c index f23042e854d4..395d1fd0e568 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a77470.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a77470.c @@ -1629,6 +1629,29 @@ static const unsigned int qspi0_data4_mux[] = { QSPI0_MOSI_QSPI0_IO0_MARK, QSPI0_MISO_QSPI0_IO1_MARK, QSPI0_IO2_MARK, QSPI0_IO3_MARK, }; +static const unsigned int qspi1_ctrl_pins[] = { + /* SPCLK, SSL */ + RCAR_GP_PIN(4, 6), RCAR_GP_PIN(4, 9), +}; +static const unsigned int qspi1_ctrl_mux[] = { + QSPI1_SPCLK_MARK, QSPI1_SSL_MARK, +}; +static const unsigned int qspi1_data2_pins[] = { + /* MOSI_IO0, MISO_IO1 */ + RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5), +}; +static const unsigned int qspi1_data2_mux[] = { + QSPI1_MOSI_QSPI1_IO0_MARK, QSPI1_MISO_QSPI1_IO1_MARK, +}; +static const unsigned int qspi1_data4_pins[] = { + /* MOSI_IO0, MISO_IO1, IO2, IO3 */ + RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5), RCAR_GP_PIN(4, 7), + RCAR_GP_PIN(4, 8), +}; +static const unsigned int qspi1_data4_mux[] = { + QSPI1_MOSI_QSPI1_IO0_MARK, QSPI1_MISO_QSPI1_IO1_MARK, + QSPI1_IO2_MARK, QSPI1_IO3_MARK, +}; /* - SCIF0 ------------------------------------------------------------------ */ static const unsigned int scif0_data_a_pins[] = { /* RX, TX */ @@ -2126,6 +2149,9 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(qspi0_ctrl), SH_PFC_PIN_GROUP(qspi0_data2), SH_PFC_PIN_GROUP(qspi0_data4), + SH_PFC_PIN_GROUP(qspi1_ctrl), + SH_PFC_PIN_GROUP(qspi1_data2), + SH_PFC_PIN_GROUP(qspi1_data4), SH_PFC_PIN_GROUP(scif0_data_a), SH_PFC_PIN_GROUP(scif0_data_b), SH_PFC_PIN_GROUP(scif0_data_c), @@ -2278,6 +2304,12 @@ static const char * const qspi0_groups[] = { "qspi0_data4", }; +static const char * const qspi1_groups[] = { + "qspi1_ctrl", + "qspi1_data2", + "qspi1_data4", +}; + static const char * const scif0_groups[] = { "scif0_data_a", "scif0_data_b", @@ -2383,6 +2415,7 @@ static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(i2c4), SH_PFC_FUNCTION(mmc), SH_PFC_FUNCTION(qspi0), + SH_PFC_FUNCTION(qspi1), SH_PFC_FUNCTION(scif0), SH_PFC_FUNCTION(scif1), SH_PFC_FUNCTION(scif2), From b163bd4c3a7b369976aa9cbc8f46c9834b79cf20 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:28 +0100 Subject: [PATCH 0576/1149] soc: renesas: rcar-rst: Add support for RZ/G1C commit a3a9033f1193842c6e0b518db196ade0f882cf78 upstream. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/reset/renesas,rst.txt | 1 + drivers/soc/renesas/rcar-rst.c | 1 + 2 files changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/reset/renesas,rst.txt b/Documentation/devicetree/bindings/reset/renesas,rst.txt index fff2e8e41b57..fb5f68e1d99c 100644 --- a/Documentation/devicetree/bindings/reset/renesas,rst.txt +++ b/Documentation/devicetree/bindings/reset/renesas,rst.txt @@ -8,6 +8,7 @@ Required properties: Examples with soctypes are: - "renesas,r8a7743-rst" (RZ/G1M) - "renesas,r8a7745-rst" (RZ/G1E) + - "renesas,r8a77470-rst" (RZ/G1C) - "renesas,r8a7790-rst" (R-Car H2) - "renesas,r8a7791-rst" (R-Car M2-W) - "renesas,r8a7792-rst" (R-Car V2H diff --git a/drivers/soc/renesas/rcar-rst.c b/drivers/soc/renesas/rcar-rst.c index 06220063b83f..caaa0299fc79 100644 --- a/drivers/soc/renesas/rcar-rst.c +++ b/drivers/soc/renesas/rcar-rst.c @@ -34,6 +34,7 @@ static const struct of_device_id rcar_rst_matches[] __initconst = { /* RZ/G is handled like R-Car Gen2 */ { .compatible = "renesas,r8a7743-rst", .data = &rcar_rst_gen2 }, { .compatible = "renesas,r8a7745-rst", .data = &rcar_rst_gen2 }, + { .compatible = "renesas,r8a77470-rst", .data = &rcar_rst_gen2 }, /* R-Car Gen2 */ { .compatible = "renesas,r8a7790-rst", .data = &rcar_rst_gen2 }, { .compatible = "renesas,r8a7791-rst", .data = &rcar_rst_gen2 }, From b38bb2ef7707f2bdf9454b39d3e5af8dad967bcf Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:29 +0100 Subject: [PATCH 0577/1149] ARM: debug-ll: Add support for r8a77470 commit 2f095c261a0fe15aacf1c3b2958b4d23a4735b4e upstream. Enable low-level debugging support for RZ/G1C (r8a77470). RZ/G1C uses SCIF1 for the debug console. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/Kconfig.debug | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index c84f87bf68b2..e5c9e9357821 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -824,6 +824,13 @@ choice via SCIF0 on Renesas RZ/G1M (R8A7743), R-Car H2 (R8A7790), M2-W (R8A7791), or M2-N (R8A7793). + config DEBUG_RCAR_GEN2_SCIF1 + bool "Kernel low-level debugging messages via SCIF1 on R8A77470" + depends on ARCH_R8A77470 + help + Say Y here if you want kernel low-level debugging support + via SCIF1 on Renesas RZ/G1C (R8A77470). + config DEBUG_RCAR_GEN2_SCIF2 bool "Kernel low-level debugging messages via SCIF2 on R8A7794" depends on ARCH_R8A7794 @@ -1340,6 +1347,7 @@ config DEBUG_LL_INCLUDE default "debug/renesas-scif.S" if DEBUG_RCAR_GEN1_SCIF0 default "debug/renesas-scif.S" if DEBUG_RCAR_GEN1_SCIF2 default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF0 + default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF1 default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF2 default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF4 default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA0 @@ -1442,6 +1450,7 @@ config DEBUG_UART_PHYS default 0xe6c80000 if DEBUG_RMOBILE_SCIFA4 default 0xe6e58000 if DEBUG_RCAR_GEN2_SCIF2 default 0xe6e60000 if DEBUG_RCAR_GEN2_SCIF0 + default 0xe6e68000 if DEBUG_RCAR_GEN2_SCIF1 default 0xe6ee0000 if DEBUG_RCAR_GEN2_SCIF4 default 0xe8008000 if DEBUG_R7S72100_SCIF2 default 0xf0000be0 if ARCH_EBSA110 @@ -1475,8 +1484,8 @@ config DEBUG_UART_PHYS DEBUG_NETX_UART || \ DEBUG_QCOM_UARTDM || DEBUG_R7S72100_SCIF2 || \ DEBUG_RCAR_GEN1_SCIF0 || DEBUG_RCAR_GEN1_SCIF2 || \ - DEBUG_RCAR_GEN2_SCIF0 || DEBUG_RCAR_GEN2_SCIF2 || \ - DEBUG_RCAR_GEN2_SCIF4 || \ + DEBUG_RCAR_GEN2_SCIF0 || DEBUG_RCAR_GEN2_SCIF1 || \ + DEBUG_RCAR_GEN2_SCIF2 || DEBUG_RCAR_GEN2_SCIF4 || \ DEBUG_RMOBILE_SCIFA0 || DEBUG_RMOBILE_SCIFA1 || \ DEBUG_RMOBILE_SCIFA4 || DEBUG_S3C24XX_UART || \ DEBUG_BCM63XX_UART || DEBUG_ASM9260_UART || \ From 171aad2d8519db9940d84e337da96aac8b1eb36c Mon Sep 17 00:00:00 2001 From: Stephen Boyd Date: Thu, 16 May 2019 10:39:30 +0100 Subject: [PATCH 0578/1149] gpiolib: Extract mask allocation into subroutine commit e4371f6e079294369ecb4cfa03aaeb60831e8b91 upstream. We're going to use similar code to allocate and set all the bits in a mask for valid gpios to use. Extract the code from the irqchip version so it can be reused. Signed-off-by: Stephen Boyd Tested-by: Timur Tabi Reviewed-by: Andy Shevchenko Signed-off-by: Linus Walleij [fab: removed change from function gpiochip_irqchip_init_valid_mask, reworked return from gpiochip_allocate_mask] Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/gpio/gpiolib.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 827510dbba30..adb474089733 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -279,6 +279,19 @@ static int gpiochip_set_desc_names(struct gpio_chip *gc) return 0; } +static unsigned long *gpiochip_allocate_mask(struct gpio_chip *chip) +{ + unsigned long *p; + + p = kcalloc(BITS_TO_LONGS(chip->ngpio), sizeof(long), GFP_KERNEL); + + if (p) + /* Assume by default all GPIOs are valid */ + bitmap_fill(p, chip->ngpio); + + return p; +} + /** * gpiochip_add_data() - register a gpio_chip * @chip: the chip to register, with chip->base initialized From baff4777cdb80256cd24dede2a3d0af761356307 Mon Sep 17 00:00:00 2001 From: Stephen Boyd Date: Thu, 16 May 2019 10:39:31 +0100 Subject: [PATCH 0579/1149] gpiolib: Support 'gpio-reserved-ranges' property commit 726cb3ba49692bdae6caff457755e7cdb432efa4 upstream. Some qcom platforms make some GPIOs or pins unavailable for use by non-secure operating systems, and thus reading or writing the registers for those pins will cause access control issues. Add support for a DT property to describe the set of GPIOs that are available for use so that higher level OSes are able to know what pins to avoid reading/writing. Non-DT platforms can add support by directly updating the chip->valid_mask. Signed-off-by: Stephen Boyd Signed-off-by: Stephen Boyd Tested-by: Timur Tabi Reviewed-by: Andy Shevchenko Signed-off-by: Linus Walleij [fab: replaced chip->of_node with chip->dev->of_node, and removed err_remove_irqchip_mask] Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/gpio/gpiolib-of.c | 24 +++++++++++++++++++++ drivers/gpio/gpiolib.c | 43 +++++++++++++++++++++++++++++++++++++ include/linux/gpio/driver.h | 18 ++++++++++++++++ 3 files changed, 85 insertions(+) diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c index 5fe34a9df3e6..ec642bf1d976 100644 --- a/drivers/gpio/gpiolib-of.c +++ b/drivers/gpio/gpiolib-of.c @@ -334,6 +334,28 @@ void of_mm_gpiochip_remove(struct of_mm_gpio_chip *mm_gc) } EXPORT_SYMBOL(of_mm_gpiochip_remove); +static void of_gpiochip_init_valid_mask(struct gpio_chip *chip) +{ + int len, i; + u32 start, count; + struct device_node *np = chip->dev->of_node; + + len = of_property_count_u32_elems(np, "gpio-reserved-ranges"); + if (len < 0 || len % 2 != 0) + return; + + for (i = 0; i < len; i += 2) { + of_property_read_u32_index(np, "gpio-reserved-ranges", + i, &start); + of_property_read_u32_index(np, "gpio-reserved-ranges", + i + 1, &count); + if (start >= chip->ngpio || start + count >= chip->ngpio) + continue; + + bitmap_clear(chip->valid_mask, start, count); + } +}; + #ifdef CONFIG_PINCTRL static int of_gpiochip_add_pin_range(struct gpio_chip *chip) { @@ -434,6 +456,8 @@ int of_gpiochip_add(struct gpio_chip *chip) chip->of_xlate = of_gpio_simple_xlate; } + of_gpiochip_init_valid_mask(chip); + status = of_gpiochip_add_pin_range(chip); if (status) return status; diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index adb474089733..487a86495163 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -292,6 +292,43 @@ static unsigned long *gpiochip_allocate_mask(struct gpio_chip *chip) return p; } +static int gpiochip_init_valid_mask(struct gpio_chip *gpiochip) +{ +#ifdef CONFIG_OF_GPIO + int size; + struct device_node *np = gpiochip->dev->of_node; + + size = of_property_count_u32_elems(np, "gpio-reserved-ranges"); + if (size > 0 && size % 2 == 0) + gpiochip->need_valid_mask = true; +#endif + + if (!gpiochip->need_valid_mask) + return 0; + + gpiochip->valid_mask = gpiochip_allocate_mask(gpiochip); + if (!gpiochip->valid_mask) + return -ENOMEM; + + return 0; +} + +static void gpiochip_free_valid_mask(struct gpio_chip *gpiochip) +{ + kfree(gpiochip->valid_mask); + gpiochip->valid_mask = NULL; +} + +bool gpiochip_line_is_valid(const struct gpio_chip *gpiochip, + unsigned int offset) +{ + /* No mask means all valid */ + if (likely(!gpiochip->valid_mask)) + return true; + return test_bit(offset, gpiochip->valid_mask); +} +EXPORT_SYMBOL_GPL(gpiochip_line_is_valid); + /** * gpiochip_add_data() - register a gpio_chip * @chip: the chip to register, with chip->base initialized @@ -370,6 +407,10 @@ int gpiochip_add_data(struct gpio_chip *chip, void *data) if (status) goto err_remove_from_list; + status = gpiochip_init_valid_mask(chip); + if (status) + goto err_remove_from_list; + status = of_gpiochip_add(chip); if (status) goto err_remove_chip; @@ -390,6 +431,7 @@ int gpiochip_add_data(struct gpio_chip *chip, void *data) acpi_gpiochip_remove(chip); gpiochip_free_hogs(chip); of_gpiochip_remove(chip); + gpiochip_free_valid_mask(chip); err_remove_from_list: spin_lock_irqsave(&gpio_lock, flags); list_del(&chip->list); @@ -427,6 +469,7 @@ void gpiochip_remove(struct gpio_chip *chip) gpiochip_remove_pin_ranges(chip); gpiochip_free_hogs(chip); of_gpiochip_remove(chip); + gpiochip_free_valid_mask(chip); spin_lock_irqsave(&gpio_lock, flags); for (id = 0; id < chip->ngpio; id++) { diff --git a/include/linux/gpio/driver.h b/include/linux/gpio/driver.h index de502c7e4171..c0fc8effdba9 100644 --- a/include/linux/gpio/driver.h +++ b/include/linux/gpio/driver.h @@ -143,6 +143,21 @@ struct gpio_chip { struct lock_class_key *lock_key; #endif + /** + * @need_valid_mask: + * + * If set core allocates @valid_mask with all bits set to one. + */ + bool need_valid_mask; + + /** + * @valid_mask: + * + * If not %NULL holds bitmask of GPIOs which are valid to be used + * from the chip. + */ + unsigned long *valid_mask; + #if defined(CONFIG_OF_GPIO) /* * If CONFIG_OF is enabled, then all GPIO controllers described in the @@ -185,6 +200,9 @@ extern struct gpio_chip *gpiochip_find(void *data, int gpiochip_lock_as_irq(struct gpio_chip *chip, unsigned int offset); void gpiochip_unlock_as_irq(struct gpio_chip *chip, unsigned int offset); +/* */ +bool gpiochip_line_is_valid(const struct gpio_chip *chip, unsigned int offset); + /* get driver data */ static inline void *gpiochip_get_data(struct gpio_chip *chip) { From ed4f40244354af7b19b3bae5c56cce2620877b7c Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:32 +0100 Subject: [PATCH 0580/1149] gpiolib: Avoid calling chip->request() for unused gpios commit 3789f5acb9bbe088f70779002f32e7c6a64000bc upstream. Add a check for unused gpios to avoid chip->request() call to client driver for unused gpios. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Linus Walleij [fab: moved changes from gpiod_request_commit to __gpiod_request] Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/gpio/gpiolib.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 487a86495163..d72218fcaeeb 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -1024,6 +1024,7 @@ static int __gpiod_request(struct gpio_desc *desc, const char *label) struct gpio_chip *chip = desc->chip; int status; unsigned long flags; + unsigned offset; spin_lock_irqsave(&gpio_lock, flags); @@ -1042,7 +1043,11 @@ static int __gpiod_request(struct gpio_desc *desc, const char *label) if (chip->request) { /* chip->request may sleep */ spin_unlock_irqrestore(&gpio_lock, flags); - status = chip->request(chip, gpio_chip_hwgpio(desc)); + offset = gpio_chip_hwgpio(desc); + if (gpiochip_line_is_valid(chip, offset)) + status = chip->request(chip, offset); + else + status = -EINVAL; spin_lock_irqsave(&gpio_lock, flags); if (status < 0) { From 6e52cced1aa58ef22d6fb9d9b4cbd166eccc9622 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 16 May 2019 10:39:33 +0100 Subject: [PATCH 0581/1149] gpio: rcar: Implement gpiochip.set_multiple() commit dbb763b8ea5d8eb0ce3e45e289969f6f1f418921 upstream. This allows to set multiple outputs using a single register write. Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Walleij Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/gpio/gpio-rcar.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/gpio/gpio-rcar.c b/drivers/gpio/gpio-rcar.c index c0fd5a594ada..411e93b38b0e 100644 --- a/drivers/gpio/gpio-rcar.c +++ b/drivers/gpio/gpio-rcar.c @@ -349,6 +349,25 @@ static void gpio_rcar_set(struct gpio_chip *chip, unsigned offset, int value) spin_unlock_irqrestore(&p->lock, flags); } +static void gpio_rcar_set_multiple(struct gpio_chip *chip, unsigned long *mask, + unsigned long *bits) +{ + struct gpio_rcar_priv *p = gpiochip_get_data(chip); + unsigned long flags; + u32 val, bankmask; + + bankmask = mask[0] & GENMASK(chip->ngpio - 1, 0); + if (!bankmask) + return; + + spin_lock_irqsave(&p->lock, flags); + val = gpio_rcar_read(p, OUTDT); + val &= ~bankmask; + val |= (bankmask & bits[0]); + gpio_rcar_write(p, OUTDT, val); + spin_unlock_irqrestore(&p->lock, flags); +} + static int gpio_rcar_direction_output(struct gpio_chip *chip, unsigned offset, int value) { @@ -500,6 +519,7 @@ static int gpio_rcar_probe(struct platform_device *pdev) gpio_chip->get = gpio_rcar_get; gpio_chip->direction_output = gpio_rcar_direction_output; gpio_chip->set = gpio_rcar_set; + gpio_chip->set_multiple = gpio_rcar_set_multiple; gpio_chip->label = name; gpio_chip->dev = dev; gpio_chip->owner = THIS_MODULE; From c3238d95d086cdf20270f45e178827b8a75997af Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:34 +0100 Subject: [PATCH 0582/1149] gpio: rcar: Add GPIO hole support commit 496069b87eea631274c2c35fb6f8c45ad838436b upstream. GPIO hole is present in RZ/G1C SoC. Valid GPIO pins on bank3 are in the range GP3_0 to GP3_16 and GP3_27 to GP3_29. The GPIO pins between GP3_17 to GP3_26 are unused. Add support for handling unused GPIO's. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Linus Walleij [fab: removed change from gpio_rcar_resume] Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/gpio/gpio-rcar.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/gpio/gpio-rcar.c b/drivers/gpio/gpio-rcar.c index 411e93b38b0e..e829f11aca8f 100644 --- a/drivers/gpio/gpio-rcar.c +++ b/drivers/gpio/gpio-rcar.c @@ -357,6 +357,9 @@ static void gpio_rcar_set_multiple(struct gpio_chip *chip, unsigned long *mask, u32 val, bankmask; bankmask = mask[0] & GENMASK(chip->ngpio - 1, 0); + if (chip->valid_mask) + bankmask &= chip->valid_mask[0]; + if (!bankmask) return; From 84f5ea686de44ce76b0f4a906a491f5d42cf46f6 Mon Sep 17 00:00:00 2001 From: Stephen Boyd Date: Thu, 16 May 2019 10:39:35 +0100 Subject: [PATCH 0583/1149] dt-bindings: gpio: Add a gpio-reserved-ranges property commit b9c725ed73b7cecc7c9bc4b752ab3eb975ef9330 upstream. Some qcom platforms make some GPIOs or pins unavailable for use by non-secure operating systems, and thus reading or writing the registers for those pins will cause access control issues. Introduce a DT property to describe the set of GPIOs that are available for use so that higher level OSes are able to know what pins to avoid reading/writing. Cc: Grant Likely Cc: Signed-off-by: Stephen Boyd Signed-off-by: Stephen Boyd Reviewed-by: Rob Herring Tested-by: Timur Tabi Reviewed-by: Andy Shevchenko Signed-off-by: Linus Walleij Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/gpio/gpio.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/gpio/gpio.txt b/Documentation/devicetree/bindings/gpio/gpio.txt index 069cdf6f9dac..6550775f5daf 100644 --- a/Documentation/devicetree/bindings/gpio/gpio.txt +++ b/Documentation/devicetree/bindings/gpio/gpio.txt @@ -141,9 +141,9 @@ in a lot of designs, some using all 32 bits, some using 18 and some using first 18 GPIOs, at local offset 0 .. 17, are in use. If these GPIOs do not happen to be the first N GPIOs at offset 0...N-1, an -additional bitmask is needed to specify which GPIOs are actually in use, -and which are dummies. The bindings for this case has not yet been -specified, but should be specified if/when such hardware appears. +additional set of tuples is needed to specify which GPIOs are unusable, with +the gpio-reserved-ranges binding. This property indicates the start and size +of the GPIOs that can't be used. Example: @@ -153,6 +153,7 @@ gpio-controller@00000000 { gpio-controller; #gpio-cells = <2>; ngpios = <18>; + gpio-reserved-ranges = <0 4>, <12 2>; } The GPIO chip may contain GPIO hog definitions. GPIO hogging is a mechanism From 11059a4eba1dc42c89a08765322033d39cddc716 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:36 +0100 Subject: [PATCH 0584/1149] dt-bindings: gpio: rcar: Add gpio-reserved-ranges support commit c0f6afad46a8ed2c0a2053ec720b1e6da80cf69a upstream. Update the DT bindings documentation with the optional gpio-reserved-ranges properties. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Reviewed-by: Rob Herring Signed-off-by: Linus Walleij [fab: reworked example to make it fit v4.4 implementation] Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- .../bindings/gpio/renesas,gpio-rcar.txt | 43 +++++++++++-------- 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt index 68eb3a8a9561..7163b19e4de3 100644 --- a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt +++ b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt @@ -30,7 +30,7 @@ Required Properties: - #gpio-cells: Should be 2. The first cell is the GPIO number and the second cell specifies GPIO flags, as defined in . Only the GPIO_ACTIVE_HIGH and GPIO_ACTIVE_LOW flags are supported. - - gpio-ranges: Range of pins managed by the GPIO controller. + - gpio-ranges: See gpio.txt. Optional properties: @@ -38,35 +38,42 @@ Optional properties: mandatory if the hardware implements a controllable functional clock for the GPIO instance. -Please refer to gpio.txt in this directory for details of gpio-ranges property -and the common GPIO bindings used by client devices. + - gpio-reserved-ranges: See gpio.txt. + +Please refer to gpio.txt in this directory for the common GPIO bindings used by +client devices. The GPIO controller also acts as an interrupt controller. It uses the default two cells specifier as described in Documentation/devicetree/bindings/ interrupt-controller/interrupts.txt. -Example: R8A7779 (R-Car H1) GPIO controller nodes +Example: R8A77470 (RZ/G1C) GPIO controller nodes - gpio0: gpio@ffc40000 { - compatible = "renesas,gpio-r8a7779", "renesas,rcar-gen1-gpio"; - reg = <0xffc40000 0x2c>; - interrupt-parent = <&gic>; - interrupts = <0 141 0x4>; + gpio0: gpio@e6050000 { + compatible = "renesas,gpio-r8a77470", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6050000 0 0x50>; + interrupts = ; #gpio-cells = <2>; gpio-controller; - gpio-ranges = <&pfc 0 0 32>; - interrupt-controller; + gpio-ranges = <&pfc 0 0 23>; #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A77470_CLK_GPIO0>; + power-domains = <&cpg_clocks>; }; ... - gpio6: gpio@ffc46000 { - compatible = "renesas,gpio-r8a7779", "renesas,rcar-gen1-gpio"; - reg = <0xffc46000 0x2c>; - interrupt-parent = <&gic>; - interrupts = <0 147 0x4>; + gpio3: gpio@e6053000 { + compatible = "renesas,gpio-r8a77470", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6053000 0 0x50>; + interrupts = ; #gpio-cells = <2>; gpio-controller; - gpio-ranges = <&pfc 0 192 9>; - interrupt-controller; + gpio-ranges = <&pfc 0 96 30>; + gpio-reserved-ranges = <17 10>; #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A77470_CLK_GPIO3>; + power-domains = <&cpg_clocks>; }; From ba74930e2cd11e8eddb31a05e7f3eedc4324fa40 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:37 +0100 Subject: [PATCH 0585/1149] ARM: shmobile: defconfig: Enable r8a77470 SoC commit f794fa1e8f0f7e308edae8eaef2f9cd59aa62bc6 upstream. Enable recently added r8a77470 (RZ/G1C) SoC. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/configs/shmobile_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/shmobile_defconfig b/arch/arm/configs/shmobile_defconfig index 223fbc85b784..4770cd8b4e57 100644 --- a/arch/arm/configs/shmobile_defconfig +++ b/arch/arm/configs/shmobile_defconfig @@ -16,6 +16,7 @@ CONFIG_ARCH_R8A73A4=y CONFIG_ARCH_R8A7740=y CONFIG_ARCH_R8A7743=y CONFIG_ARCH_R8A7745=y +CONFIG_ARCH_R8A77470=y CONFIG_ARCH_R8A7778=y CONFIG_ARCH_R8A7779=y CONFIG_ARCH_R8A7790=y From e039e1e3e78141af5ef5ae245b632b576d6593d9 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:38 +0100 Subject: [PATCH 0586/1149] ARM: multi_v7_defconfig: Enable r8a77470 SoC commit d588298a309050ef0f2bd52ff86f2f39dd39ff4d upstream. Enable recently added r8a77470 (RZ/G1C) SoC. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig index 47f98ebb6f6e..cfaf5649339d 100644 --- a/arch/arm/configs/multi_v7_defconfig +++ b/arch/arm/configs/multi_v7_defconfig @@ -82,6 +82,7 @@ CONFIG_ARCH_R8A73A4=y CONFIG_ARCH_R8A7740=y CONFIG_ARCH_R8A7743=y CONFIG_ARCH_R8A7745=y +CONFIG_ARCH_R8A77470=y CONFIG_ARCH_R8A7778=y CONFIG_ARCH_R8A7779=y CONFIG_ARCH_R8A7790=y From 563230bbab2cbd0c6e33633b8ace6c78630b96cc Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:39 +0100 Subject: [PATCH 0587/1149] serial: sh-sci: Document r8a77470 bindings commit ef9604b622ce3b77e0ec6b566a016ddd64c5deb0 upstream. RZ/G1C (R8A77470) SoC also has the R-Car gen2 compatible SCIF and HSCIF ports, so document the SoC specific bindings. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Reviewed-by: Simon Horman Reviewed-by: Rob Herring Signed-off-by: Greg Kroah-Hartman Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/serial/renesas,sci-serial.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt index 211f193fff2b..3772d4c34476 100644 --- a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt +++ b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt @@ -17,6 +17,8 @@ Required properties: - "renesas,scifa-r8a7745" for R8A7745 (RZ/G1E) SCIFA compatible UART. - "renesas,scifb-r8a7745" for R8A7745 (RZ/G1E) SCIFB compatible UART. - "renesas,hscif-r8a7745" for R8A7745 (RZ/G1E) HSCIF compatible UART. + - "renesas,scif-r8a77470" for R8A77470 (RZ/G1C) SCIF compatible UART. + - "renesas,hscif-r8a77470" for R8A77470 (RZ/G1C) HSCIF compatible UART. - "renesas,scif-r8a7778" for R8A7778 (R-Car M1) SCIF compatible UART. - "renesas,scif-r8a7779" for R8A7779 (R-Car H1) SCIF compatible UART. - "renesas,scif-r8a7790" for R8A7790 (R-Car H2) SCIF compatible UART. From 9eb5040d8b0237ac483e758786177084c0d619c1 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 16 May 2019 10:39:40 +0100 Subject: [PATCH 0588/1149] dt-bindings: sram: Document renesas, smp-sram commit d5f2ac6ae9931227d8ccd71c12182e547ec28c21 upstream. Document reserved SRAM for the SMP jump stub on Renesas R-Car Gen2 and RZ/G1 SoCs. Signed-off-by: Geert Uytterhoeven Acked-by: Rob Herring Signed-off-by: Simon Horman Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- .../bindings/sram/renesas,smp-sram.txt | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Documentation/devicetree/bindings/sram/renesas,smp-sram.txt diff --git a/Documentation/devicetree/bindings/sram/renesas,smp-sram.txt b/Documentation/devicetree/bindings/sram/renesas,smp-sram.txt new file mode 100644 index 000000000000..712d05e3e15e --- /dev/null +++ b/Documentation/devicetree/bindings/sram/renesas,smp-sram.txt @@ -0,0 +1,27 @@ +* Renesas SMP SRAM + +Renesas R-Car Gen2 and RZ/G1 SoCs need a small piece of SRAM for the jump stub +for secondary CPU bringup and CPU hotplug. +This memory is reserved by adding a child node to a "mmio-sram" node, cfr. +Documentation/devicetree/bindings/sram/sram.txt. + +Required child node properties: + - compatible: Must be "renesas,smp-sram", + - reg: Address and length of the reserved SRAM. + The full physical (bus) address must be aligned to a 256 KiB boundary. + + +Example: + + icram1: sram@e63c0000 { + compatible = "mmio-sram"; + reg = <0 0xe63c0000 0 0x1000>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0xe63c0000 0x1000>; + + smp-sram@0 { + compatible = "renesas,smp-sram"; + reg = <0 0x10>; + }; + }; From 605e89568fafe57c1791219b411ab0771981beea Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:41 +0100 Subject: [PATCH 0589/1149] ARM: dts: r8a77470: Initial SoC device tree commit 6929dfc5918049272e07653b1760b0b305f098e6 upstream. The initial R8A77470 SoC device tree including CPU0, GIC, timer, SYSC, RST, CPG, and the required clock descriptions. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman [fab: replaced renesas-cpg-mssr.h with r8a77470-clock.h, taken out clocks, clock-names, power-domains, and resets properties, and also taken out cpg, prr, and sysc nodes] Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a77470.dtsi | 121 ++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 arch/arm/boot/dts/r8a77470.dtsi diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi new file mode 100644 index 000000000000..a126bf55aede --- /dev/null +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -0,0 +1,121 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Device Tree Source for the r8a77470 SoC + * + * Copyright (C) 2018 Renesas Electronics Corp. + */ + +#include +#include +#include + +/ { + compatible = "renesas,r8a77470"; + #address-cells = <2>; + #size-cells = <2>; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu0: cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a7"; + reg = <0>; + clock-frequency = <1000000000>; + next-level-cache = <&L2_CA7>; + }; + + + L2_CA7: cache-controller-0 { + compatible = "cache"; + cache-unified; + cache-level = <2>; + }; + }; + + /* External root clock */ + extal_clk: extal { + compatible = "fixed-clock"; + #clock-cells = <0>; + /* This value must be overridden by the board. */ + clock-frequency = <0>; + }; + + /* External SCIF clock */ + scif_clk: scif { + compatible = "fixed-clock"; + #clock-cells = <0>; + /* This value must be overridden by the board. */ + clock-frequency = <0>; + }; + + soc { + compatible = "simple-bus"; + interrupt-parent = <&gic>; + + #address-cells = <2>; + #size-cells = <2>; + ranges; + + rst: reset-controller@e6160000 { + compatible = "renesas,r8a77470-rst"; + reg = <0 0xe6160000 0 0x100>; + }; + + icram0: sram@e63a0000 { + compatible = "mmio-sram"; + reg = <0 0xe63a0000 0 0x12000>; + }; + + icram1: sram@e63c0000 { + compatible = "mmio-sram"; + reg = <0 0xe63c0000 0 0x1000>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0xe63c0000 0x1000>; + + smp-sram@0 { + compatible = "renesas,smp-sram"; + reg = <0 0x100>; + }; + }; + + icram2: sram@e6300000 { + compatible = "mmio-sram"; + reg = <0 0xe6300000 0 0x20000>; + }; + + scif1: serial@e6e68000 { + compatible = "renesas,scif-r8a77470", "renesas,scif"; + reg = <0 0xe6e68000 0 0x40>; + interrupts = ; + status = "disabled"; + }; + + gic: interrupt-controller@f1001000 { + compatible = "arm,gic-400"; + #interrupt-cells = <3>; + #address-cells = <0>; + interrupt-controller; + reg = <0 0xf1001000 0 0x1000>, <0 0xf1002000 0 0x2000>, + <0 0xf1004000 0 0x2000>, <0 0xf1006000 0 0x2000>; + interrupts = ; + }; + }; + + timer { + compatible = "arm,armv7-timer"; + interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, + <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, + <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, + <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>; + }; + + /* External USB clock - can be overridden by the board */ + usb_extal_clk: usb_extal { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <48000000>; + }; +}; From 0da1b8d6772038b383923ed6883c6240f6a40578 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 16 May 2019 10:39:42 +0100 Subject: [PATCH 0590/1149] clk: shmobile: Document r8a77470 CPG clock support Document r8a77470 CPG clock support. The clock driver architecture has changed quite dramatically over time, there is nothing we can backport from mainline for this, hence the new patch. Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- .../devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt index a75c26a59d56..ba321bc8e559 100644 --- a/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt +++ b/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt @@ -10,6 +10,7 @@ Required Properties: - compatible: Must be one of - "renesas,r8a7743-cpg-clocks" for the r8a7743 CPG - "renesas,r8a7745-cpg-clocks" for the r8a7745 CPG + - "renesas,r8a77470-cpg-clocks" for the r8a77470 CPG - "renesas,r8a7790-cpg-clocks" for the r8a7790 CPG - "renesas,r8a7791-cpg-clocks" for the r8a7791 CPG - "renesas,r8a7793-cpg-clocks" for the r8a7793 CPG From 6093a74afa8920acad6721a0582c83f96bc5a212 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 16 May 2019 10:39:43 +0100 Subject: [PATCH 0591/1149] clk: shmobile: Document r8a77470 CPG DIV6 clock support Document r8a77470 CPG DIV6 clock support. The clock driver architecture has changed quite dramatically over time, there is nothing we can backport from mainline for this, hence the new patch. Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- .../devicetree/bindings/clock/renesas,cpg-div6-clocks.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt index feb9ab5e9a59..3a0584381faa 100644 --- a/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt +++ b/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt @@ -11,6 +11,7 @@ Required Properties: - "renesas,r8a7740-div6-clock" for R8A7740 (R-Mobile A1) DIV6 clocks - "renesas,r8a7743-div6-clock" for R8A7743 (RZ/G1M) DIV6 clocks - "renesas,r8a7745-div6-clock" for R8A7745 (RZ/G1E) DIV6 clocks + - "renesas,r8a77470-div6-clock" for R8A77470 (RZ/G1C) DIV6 clocks - "renesas,r8a7790-div6-clock" for R8A7790 (R-Car H2) DIV6 clocks - "renesas,r8a7791-div6-clock" for R8A7791 (R-Car M2-W) DIV6 clocks - "renesas,r8a7793-div6-clock" for R8A7793 (R-Car M2-N) DIV6 clocks From 0ff32fbcdd0fdf43b22bb7e6f3b17f74d5b662c6 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 16 May 2019 10:39:44 +0100 Subject: [PATCH 0592/1149] clk: shmobile: Document r8a77470 MSTP clock support Document r8a77470 MSTP clock support. The clock driver architecture has changed quite dramatically over time, there is nothing we can backport from mainline for this, hence the new patch. Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- .../devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt index 6e2c6aef2fc4..a9d2e65659bd 100644 --- a/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt +++ b/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt @@ -15,6 +15,7 @@ Required Properties: - "renesas,r8a7740-mstp-clocks" for R8A7740 (R-Mobile A1) MSTP gate clocks - "renesas,r8a7743-mstp-clocks" for R8A7743 (RZ/G1M) MSTP gate clocks - "renesas,r8a7745-mstp-clocks" for R8A7745 (RZ/G1E) MSTP gate clocks + - "renesas,r8a77470-mstp-clocks" for R8A77470 (RZ/G1C) MSTP gate clocks - "renesas,r8a7778-mstp-clocks" for R8A7778 (R-Car M1) MSTP gate clocks - "renesas,r8a7779-mstp-clocks" for R8A7779 (R-Car H1) MSTP gate clocks - "renesas,r8a7790-mstp-clocks" for R8A7790 (R-Car H2) MSTP gate clocks From b58c7be7786bb15daf206349ae2764a6b420df75 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 16 May 2019 10:39:45 +0100 Subject: [PATCH 0593/1149] ARM: dts: r8a77470: Add clocks Declare all core clocks, DIV6 clocks, and MSTP clocks. Also, hook up clocks within cpu0, scif1, and gic nodes. The clock driver architecture has changed quite dramatically over time, there is nothing we can backport from mainline for this, hence the new patch. Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a77470.dtsi | 384 ++++++++++++++++++++++++++++++++ 1 file changed, 384 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi index a126bf55aede..09c4d666bc57 100644 --- a/arch/arm/boot/dts/r8a77470.dtsi +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -23,6 +23,7 @@ compatible = "arm,cortex-a7"; reg = <0>; clock-frequency = <1000000000>; + clocks = <&z2_clk>; next-level-cache = <&L2_CA7>; }; @@ -90,6 +91,10 @@ compatible = "renesas,scif-r8a77470", "renesas,scif"; reg = <0 0xe6e68000 0 0x40>; interrupts = ; + clocks = <&mstp7_clks R8A77470_CLK_SCIF1>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + power-domains = <&cpg_clocks>; status = "disabled"; }; @@ -101,6 +106,385 @@ reg = <0 0xf1001000 0 0x1000>, <0 0xf1002000 0 0x2000>, <0 0xf1004000 0 0x2000>, <0 0xf1006000 0 0x2000>; interrupts = ; + clocks = <&mstp4_clks R8A77470_CLK_INTC_SYS>; + clock-names = "clk"; + power-domains = <&cpg_clocks>; + }; + + clocks { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + /* Special CPG clocks */ + cpg_clocks: cpg_clocks@e6150000 { + compatible = "renesas,r8a77470-cpg-clocks", + "renesas,rcar-gen2-cpg-clocks"; + reg = <0 0xe6150000 0 0x1000>; + clocks = <&extal_clk &usb_extal_clk>; + #clock-cells = <1>; + clock-output-names = "main", "pll0", "pll1", + "pll3", "lb", "qspi", + "sdh", "sd0", "sd1", + "rcan"; + #power-domain-cells = <0>; + }; + + /* Variable factor clocks */ + sd2_clk: sd2_clk@e6150078 { + compatible = "renesas,r8a77470-div6-clock", + "renesas,cpg-div6-clock"; + reg = <0 0xe6150078 0 4>; + clocks = <&pll1_div2_clk>; + #clock-cells = <0>; + clock-output-names = "sd2"; + }; + + /* Fixed factor clocks */ + pll1_div2_clk: pll1_div2_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A77470_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; + clock-output-names = "pll1_div2"; + }; + z2_clk: z2 { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A77470_CLK_PLL0>; + #clock-cells = <0>; + clock-div = <1>; + clock-mult = <1>; + clock-output-names = "z2"; + }; + zx_clk: zx_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A77470_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <3>; + clock-mult = <1>; + clock-output-names = "zx"; + }; + zs_clk: zs_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A77470_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <6>; + clock-mult = <1>; + clock-output-names = "zs"; + }; + hp_clk: hp_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A77470_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <12>; + clock-mult = <1>; + clock-output-names = "hp"; + }; + b_clk: b_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A77470_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <12>; + clock-mult = <1>; + clock-output-names = "b"; + }; + p_clk: p_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A77470_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <24>; + clock-mult = <1>; + clock-output-names = "p"; + }; + cl_clk: cl_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A77470_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <48>; + clock-mult = <1>; + clock-output-names = "cl"; + }; + cp_clk: cp_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A77470_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <48>; + clock-mult = <1>; + clock-output-names = "cp"; + }; + m2_clk: m2_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A77470_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <8>; + clock-mult = <1>; + clock-output-names = "m2"; + }; + zb3_clk: zb3_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A77470_CLK_PLL3>; + #clock-cells = <0>; + clock-div = <4>; + clock-mult = <1>; + clock-output-names = "zb3"; + }; + mp_clk: mp_clk { + compatible = "fixed-factor-clock"; + clocks = <&pll1_div2_clk>; + #clock-cells = <0>; + clock-div = <15>; + clock-mult = <1>; + clock-output-names = "mp"; + }; + cpex_clk: cpex_clk { + compatible = "fixed-factor-clock"; + clocks = <&extal_clk>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; + clock-output-names = "cpex"; + }; + rclk_clk: rclk_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A77470_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <(48 * 1024)>; + clock-mult = <1>; + clock-output-names = "rclk"; + }; + oscclk_clk: oscclk_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A77470_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <(12 * 1024)>; + clock-mult = <1>; + clock-output-names = "oscclk"; + }; + + /* Gate clocks */ + mstp0_clks: mstp0_clks@e6150130 { + compatible = "renesas,r8a77470-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150130 0 4>, <0 0xe6150030 0 4>; + clocks = <&mp_clk>; + #clock-cells = <1>; + clock-indices = ; + clock-output-names = "msiof0"; + }; + mstp1_clks: mstp1_clks@e6150134 { + compatible = "renesas,r8a77470-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>; + clocks = <&zs_clk>, <&zs_clk>, <&p_clk>, + <&zs_clk>, <&zs_clk>, <&zs_clk>, + <&p_clk>, <&p_clk>, <&rclk_clk>, + <&zs_clk>, <&zs_clk>; + #clock-cells = <1>; + clock-indices = < + R8A77470_CLK_VCP0 R8A77470_CLK_VPC0 + R8A77470_CLK_TMU1 R8A77470_CLK_3DG + R8A77470_CLK_2DDMAC R8A77470_CLK_FDP1_0 + R8A77470_CLK_TMU3 R8A77470_CLK_TMU2 + R8A77470_CLK_CMT0 R8A77470_CLK_VSP1DU0 + R8A77470_CLK_VSP1_SY + >; + clock-output-names = + "vcp0", "vpc0", "tmu1", + "3dg", "2d-dmac", "fdp1-0", + "tmu3", "tmu2", "cmt0", + "vsp1du0", "vsp1-sy"; + }; + mstp2_clks: mstp2_clks@e6150138 { + compatible = "renesas,r8a77470-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>; + clocks = <&mp_clk>, <&mp_clk>, <&zs_clk>, + <&zs_clk>; + #clock-cells = <1>; + clock-indices = < + R8A77470_CLK_MSIOF2 + R8A77470_CLK_MSIOF1 + R8A77470_CLK_SYS_DMAC1 + R8A77470_CLK_SYS_DMAC0 + >; + clock-output-names = + "msiof2", "msiof1", "sys-dmac1", + "sys-dmac0"; + }; + mstp3_clks: mstp3_clks@e615013c { + compatible = "renesas,r8a77470-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe615013c 0 4>, <0 0xe6150048 0 4>; + clocks = <&sd2_clk>, + <&cpg_clocks R8A77470_CLK_SD1>, + <&cpg_clocks R8A77470_CLK_SD0>, + <&hp_clk>, <&hp_clk>, <&rclk_clk>, + <&hp_clk>, <&hp_clk>; + #clock-cells = <1>; + clock-indices = < + R8A77470_CLK_SDHI2 + R8A77470_CLK_SDHI1 + R8A77470_CLK_SDHI0 + R8A77470_CLK_USBHS_DMAC0_CH1 + R8A77470_CLK_USBHS_DMAC1_CH1 + R8A77470_CLK_CMT1 + R8A77470_CLK_USBHS_DMAC0_CH0 + R8A77470_CLK_USBHS_DMAC1_CH0 + >; + clock-output-names = + "sdhi2", "sdhi1", "sdhi0", + "usbhs-dmac0-ch1", "usbhs-dmac1-ch1", + "cmt1", "usbhs-dmac0-ch0", + "usbhs-dmac1-ch0"; + }; + mstp4_clks: mstp4_clks@e6150140 { + compatible = "renesas,r8a77470-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>; + clocks = <&rclk_clk>, <&cp_clk>, <&zs_clk>; + #clock-cells = <1>; + clock-indices = < + R8A77470_CLK_RWDT R8A77470_CLK_IRQC + R8A77470_CLK_INTC_SYS + >; + clock-output-names = "rwdt", "irqc", "intc-sys"; + }; + mstp5_clks: mstp5_clks@e6150144 { + compatible = "renesas,r8a77470-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150144 0 4>, <0 0xe615003c 0 4>; + clocks = <&hp_clk>, <&p_clk>; + #clock-cells = <1>; + clock-indices = < + R8A77470_CLK_AUDIO_DMAC0 + R8A77470_CLK_PWM + >; + clock-output-names = "audio-dmac0", "pwm"; + }; + mstp7_clks: mstp7_clks@e615014c { + compatible = "renesas,r8a77470-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>; + clocks = <&mp_clk>, <&hp_clk>, <&mp_clk>, + <&hp_clk>, <&zs_clk>, <&p_clk>, + <&p_clk>, <&zs_clk>, <&zs_clk>, + <&p_clk>, <&p_clk>, <&p_clk>, + <&p_clk>, <&zx_clk>, <&zx_clk>; + #clock-cells = <1>; + clock-indices = < + R8A77470_CLK_USB_EHCI_0 + R8A77470_CLK_USBHS0 + R8A77470_CLK_USB_EHCI_1 + R8A77470_CLK_USBHS1 R8A77470_CLK_HSCIF2 + R8A77470_CLK_SCIF5 R8A77470_CLK_SCIF4 + R8A77470_CLK_HSCIF1 R8A77470_CLK_HSCIF0 + R8A77470_CLK_SCIF3 R8A77470_CLK_SCIF2 + R8A77470_CLK_SCIF1 R8A77470_CLK_SCIF0 + R8A77470_CLK_DU1 R8A77470_CLK_DU0 + >; + clock-output-names = + "usb-ehci-0", "usbhs-0", "usb-ehci-1", + "usbhs-1", "hscif2", "scif5", "scif4", + "hscif1", "hscif0", "scif3", "scif2", + "scif1", "scif0", "du1", "du0"; + }; + mstp8_clks: mstp8_clks@e6150990 { + compatible = "renesas,r8a77470-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>; + clocks = <&zx_clk>, <&hp_clk>, <&p_clk>; + #clock-cells = <1>; + clock-indices = < + R8A77470_CLK_IPMMU_SGX + R8A77470_CLK_ETHERAVB R8A77470_CLK_ETHER + >; + clock-output-names = + "ipmmu-sgx", "etheravb", "ether"; + }; + mstp9_clks: mstp9_clks@e6150994 { + compatible = "renesas,r8a77470-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150994 0 4>, <0 0xe61509a4 0 4>; + clocks = <&cp_clk>, <&cp_clk>, <&cp_clk>, + <&cp_clk>, <&cp_clk>, <&cp_clk>, + <&p_clk>, <&p_clk>, + <&cpg_clocks R8A77470_CLK_QSPI>, + <&cpg_clocks R8A77470_CLK_QSPI>, + <&hp_clk>, <&hp_clk>, <&hp_clk>, + <&hp_clk>, <&hp_clk>; + #clock-cells = <1>; + clock-indices = < + R8A77470_CLK_GPIO5 R8A77470_CLK_GPIO4 + R8A77470_CLK_GPIO3 R8A77470_CLK_GPIO2 + R8A77470_CLK_GPIO1 R8A77470_CLK_GPIO0 + R8A77470_CLK_CAN1 R8A77470_CLK_CAN0 + R8A77470_CLK_QUAD_SPI1 + R8A77470_CLK_QUAD_SPI0 + R8A77470_CLK_I2C4 R8A77470_CLK_I2C3 + R8A77470_CLK_I2C2 R8A77470_CLK_I2C1 + R8A77470_CLK_I2C0 + >; + clock-output-names = + "gpio5", "gpio4", "gpio3", "gpio2", + "gpio1", "gpio0", "can1", "can0", + "qspi_mod-1", "qspi_mod-0", "i2c4", + "i2c3", "i2c2", "i2c1", "i2c0"; + }; + mstp10_clks: mstp10_clks@e6150998 { + compatible = "renesas,r8a77470-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150998 0 4>, <0 0xe61509a8 0 4>; + clocks = <&p_clk>, + <&mstp10_clks R8A77470_CLK_SSI_ALL>, + <&mstp10_clks R8A77470_CLK_SSI_ALL>, + <&mstp10_clks R8A77470_CLK_SSI_ALL>, + <&mstp10_clks R8A77470_CLK_SSI_ALL>, + <&mstp10_clks R8A77470_CLK_SSI_ALL>, + <&mstp10_clks R8A77470_CLK_SSI_ALL>, + <&mstp10_clks R8A77470_CLK_SSI_ALL>, + <&mstp10_clks R8A77470_CLK_SSI_ALL>, + <&mstp10_clks R8A77470_CLK_SSI_ALL>, + <&mstp10_clks R8A77470_CLK_SSI_ALL>, + <&p_clk>, + <&mstp10_clks R8A77470_CLK_SCU_ALL>, + <&mstp10_clks R8A77470_CLK_SCU_ALL>, + <&mstp10_clks R8A77470_CLK_SCU_ALL>, + <&mstp10_clks R8A77470_CLK_SCU_ALL>, + <&mstp10_clks R8A77470_CLK_SCU_ALL>, + <&mstp10_clks R8A77470_CLK_SCU_ALL>, + <&mstp10_clks R8A77470_CLK_SCU_ALL>, + <&mstp10_clks R8A77470_CLK_SCU_ALL>, + <&mstp10_clks R8A77470_CLK_SCU_ALL>, + <&mstp10_clks R8A77470_CLK_SCU_ALL>; + #clock-cells = <1>; + clock-indices = < + R8A77470_CLK_SSI_ALL R8A77470_CLK_SSI9 + R8A77470_CLK_SSI8 R8A77470_CLK_SSI7 + R8A77470_CLK_SSI6 R8A77470_CLK_SSI5 + R8A77470_CLK_SSI4 R8A77470_CLK_SSI3 + R8A77470_CLK_SSI2 R8A77470_CLK_SSI1 + R8A77470_CLK_SSI0 R8A77470_CLK_SCU_ALL + R8A77470_CLK_SCU_DVC1 + R8A77470_CLK_SCU_DVC0 + R8A77470_CLK_SCU_CTU1_MIX1 + R8A77470_CLK_SCU_CTU0_MIX0 + R8A77470_CLK_SCU_SRC6 + R8A77470_CLK_SCU_SRC5 + R8A77470_CLK_SCU_SRC4 + R8A77470_CLK_SCU_SRC3 + R8A77470_CLK_SCU_SRC2 + R8A77470_CLK_SCU_SRC1 + >; + clock-output-names = + "ssi-all", "ssi9", "ssi8", "ssi7", + "ssi6", "ssi5", "ssi4", "ssi3", "ssi2", + "ssi1", "ssi0", "scu-all", "scu-dvc1", + "scu-dvc0", "scu-ctu1-mix1", + "scu-ctu0-mix0", "scu-src6", "scu-src5", + "scu-src4", "scu-src3", "scu-src2", + "scu-src1"; + }; }; }; From 94268c3bf21af87db9e5f942bebef4b22f072b10 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:46 +0100 Subject: [PATCH 0594/1149] dt-bindings: arm: Document iW-RainboW-G23S single board computer commit 7625f03be3177d63cc6e5763b0c2dfecc371ca95 upstream. Document the iW-RainboW-G23S single board computer device tree bindings, listing it as a supported board. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/arm/shmobile.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt index 3b51d7e625c0..423575a06fed 100644 --- a/Documentation/devicetree/bindings/arm/shmobile.txt +++ b/Documentation/devicetree/bindings/arm/shmobile.txt @@ -51,6 +51,8 @@ Boards: compatible = "renesas,gose", "renesas,r8a7793" - Henninger compatible = "renesas,henninger", "renesas,r8a7791" + - iWave Systems RZ/G1C Single Board Computer (iW-RainboW-G23S) + compatible = "iwave,g23s", "renesas,r8a77470" - iWave Systems RZ/G1E SODIMM SOM Development Platform (iW-RainboW-G22D) compatible = "iwave,g22d", "iwave,g22m", "renesas,r8a7745" - iWave Systems RZ/G1E SODIMM System On Module (iW-RainboW-G22M-SM) From 5eebfc683e794eeb8cff65c73d14e05cfe70161b Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:47 +0100 Subject: [PATCH 0595/1149] ARM: dts: iwg23s-sbc: Add support for iWave G23S-SBC based on RZ/G1C commit f922fb5af1584c35bcd8bf661738b16dd4f65441 upstream. Add support for iWave iW-RainboW-G23S single board computer based on RZ/G1C. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts | 35 +++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 9871a7f0f92a..28fbcdbc9581 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -548,6 +548,7 @@ dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += \ r8a7743-iwg20d-q7-dbcm-ca.dtb \ r8a7745-iwg22d-sodimm.dtb \ r8a7745-iwg22d-sodimm-dbhd-ca.dtb \ + r8a77470-iwg23s-sbc.dtb \ r8a7778-bockw.dtb \ r8a7779-marzen.dtb \ r8a7790-lager.dtb \ diff --git a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts new file mode 100644 index 000000000000..d21baad9f0ad --- /dev/null +++ b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Device Tree Source for the iWave-RZ/G1C single board computer + * + * Copyright (C) 2018 Renesas Electronics Corp. + */ + +/dts-v1/; +#include "r8a77470.dtsi" +/ { + model = "iWave iW-RainboW-G23S single board computer based on RZ/G1C"; + compatible = "iwave,g23s", "renesas,r8a77470"; + + aliases { + serial1 = &scif1; + }; + + chosen { + bootargs = "ignore_loglevel"; + stdout-path = "serial1:115200n8"; + }; + + memory@40000000 { + device_type = "memory"; + reg = <0 0x40000000 0 0x20000000>; + }; +}; + +&extal_clk { + clock-frequency = <20000000>; +}; + +&scif1 { + status = "okay"; +}; From aa430f1429f937e9324f2ff11937a4d04d7f62ae Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:48 +0100 Subject: [PATCH 0596/1149] dt-bindings: pinctrl: sh-pfc: Document r8a77470 PFC support commit 98c1c1f08adfda0d24f3bef9614a7117ef0c5495 upstream. Document PFC support for the R8A77470 SoC. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Rob Herring Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Walleij Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- .../devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt index cf28bd419e9d..b2264d9b34c0 100644 --- a/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt @@ -15,6 +15,7 @@ Required Properties: - "renesas,pfc-r8a7740": for R8A7740 (R-Mobile A1) compatible pin-controller. - "renesas,pfc-r8a7743": for R8A7743 (RZ/G1M) compatible pin-controller. - "renesas,pfc-r8a7745": for R8A7745 (RZ/G1E) compatible pin-controller. + - "renesas,pfc-r8a77470": for R8A77470 (RZ/G1C) compatible pin-controller. - "renesas,pfc-r8a7778": for R8A7778 (R-Mobile M1) compatible pin-controller. - "renesas,pfc-r8a7779": for R8A7779 (R-Car H1) compatible pin-controller. - "renesas,pfc-r8a7790": for R8A7790 (R-Car H2) compatible pin-controller. From 3e907c4b2a200e0dc24eeb1813ecd8645b1200b4 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:49 +0100 Subject: [PATCH 0597/1149] ARM: dts: r8a77470: Add PFC support commit 0ea1a4d2c92a65aea6acc2397938cd01b053bc38 upstream. Define the generic R8A77470 part of the PFC device node. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a77470.dtsi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi index 09c4d666bc57..e971b5e83855 100644 --- a/arch/arm/boot/dts/r8a77470.dtsi +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -59,6 +59,11 @@ #size-cells = <2>; ranges; + pfc: pin-controller@e6060000 { + compatible = "renesas,pfc-r8a77470"; + reg = <0 0xe6060000 0 0x118>; + }; + rst: reset-controller@e6160000 { compatible = "renesas,r8a77470-rst"; reg = <0 0xe6160000 0 0x100>; From 5d774418ea412d66b168f812e87f02c7339aa401 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:50 +0100 Subject: [PATCH 0598/1149] dt-bindings: gpio: rcar: Add r8a77470 (RZ/G1C) support commit 856ac1d26b5d64fcf3b9d6d889ec1a61fd745a8e upstream. Renesas RZ/G1C (R8A77470) SoC GPIO blocks are identical to the R-Car Gen2 family. Add support for its GPIO controllers. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Reviewed-by: Simon Horman Reviewed-by: Geert Uytterhoeven Signed-off-by: Linus Walleij Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt index 7163b19e4de3..8addadf783c4 100644 --- a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt +++ b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt @@ -5,6 +5,7 @@ Required Properties: - compatible: should contain one or more of the following: - "renesas,gpio-r8a7743": for R8A7743 (RZ/G1M) compatible GPIO controller. - "renesas,gpio-r8a7745": for R8A7745 (RZ/G1E) compatible GPIO controller. + - "renesas,gpio-r8a77470": for R8A77470 (RZ/G1C) compatible GPIO controller. - "renesas,gpio-r8a7778": for R8A7778 (R-Mobile M1) compatible GPIO controller. - "renesas,gpio-r8a7779": for R8A7779 (R-Car H1) compatible GPIO controller. - "renesas,gpio-r8a7790": for R8A7790 (R-Car H2) compatible GPIO controller. From 7ae9aacd8d238ce5d8e9b9b42ae7bc71250e5d3f Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:51 +0100 Subject: [PATCH 0599/1149] ARM: dts: r8a77470: Add GPIO support commit 5fcd4bfe03913301bab34e2934c838eb4173a475 upstream. Describe GPIO blocks in the R8A77470 device tree. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman [fab: reworked clocks and power-domains properties, removed resets proporties] Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a77470.dtsi | 85 +++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi index e971b5e83855..d9a89fa93ee1 100644 --- a/arch/arm/boot/dts/r8a77470.dtsi +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -59,6 +59,91 @@ #size-cells = <2>; ranges; + gpio0: gpio@e6050000 { + compatible = "renesas,gpio-r8a77470", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6050000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 0 23>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A77470_CLK_GPIO0>; + power-domains = <&cpg_clocks>; + }; + + gpio1: gpio@e6051000 { + compatible = "renesas,gpio-r8a77470", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6051000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 32 23>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A77470_CLK_GPIO1>; + power-domains = <&cpg_clocks>; + }; + + gpio2: gpio@e6052000 { + compatible = "renesas,gpio-r8a77470", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6052000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 64 32>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A77470_CLK_GPIO2>; + power-domains = <&cpg_clocks>; + }; + + gpio3: gpio@e6053000 { + compatible = "renesas,gpio-r8a77470", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6053000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 96 30>; + gpio-reserved-ranges = <17 10>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A77470_CLK_GPIO3>; + power-domains = <&cpg_clocks>; + }; + + gpio4: gpio@e6054000 { + compatible = "renesas,gpio-r8a77470", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6054000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 128 26>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A77470_CLK_GPIO4>; + power-domains = <&cpg_clocks>; + }; + + gpio5: gpio@e6055000 { + compatible = "renesas,gpio-r8a77470", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6055000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 160 32>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A77470_CLK_GPIO5>; + power-domains = <&cpg_clocks>; + }; + pfc: pin-controller@e6060000 { compatible = "renesas,pfc-r8a77470"; reg = <0 0xe6060000 0 0x118>; From 3cf43cc1c01b632e2020e5c39bb252c4191484f8 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:52 +0100 Subject: [PATCH 0600/1149] ARM: dts: r8a77470: Add SCIF support commit 8cdb8f1ab7efbd88868d3067ec1f211ff289bc01 upstream. Describe SCIF ports in the R8A77470 device tree. Also it fixes the CPG clock index ZS from 6 to 5. Fixes: 6929dfc5918049 ("ARM: dts: r8a77470: Initial SoC device tree") Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman [fab: reworked to make it fit 4.4.y-cip definitions, like include files, and properties like clocks, clock-names, and power-domains. Also, removed resets properties as not applicable here. Finally, the fix for the ZS clock index is not applicable to this version] Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a77470.dtsi | 56 +++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi index d9a89fa93ee1..2d542b3449fe 100644 --- a/arch/arm/boot/dts/r8a77470.dtsi +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -177,6 +177,17 @@ reg = <0 0xe6300000 0 0x20000>; }; + scif0: serial@e6e60000 { + compatible = "renesas,scif-r8a77470", "renesas,scif"; + reg = <0 0xe6e60000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A77470_CLK_SCIF0>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + scif1: serial@e6e68000 { compatible = "renesas,scif-r8a77470", "renesas,scif"; reg = <0 0xe6e68000 0 0x40>; @@ -188,6 +199,51 @@ status = "disabled"; }; + scif2: serial@e6e58000 { + compatible = "renesas,scif-r8a77470", "renesas,scif"; + reg = <0 0xe6e58000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A77470_CLK_SCIF2>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scif3: serial@e6ea8000 { + compatible = "renesas,scif-r8a77470", "renesas,scif"; + reg = <0 0xe6ea8000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A77470_CLK_SCIF3>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scif4: serial@e6ee0000 { + compatible = "renesas,scif-r8a77470", "renesas,scif"; + reg = <0 0xe6ee0000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A77470_CLK_SCIF4>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scif5: serial@e6ee8000 { + compatible = "renesas,scif-r8a77470", + "renesas,rcar-gen2-scif", "renesas,scif"; + reg = <0 0xe6ee8000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A77470_CLK_SCIF5>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + gic: interrupt-controller@f1001000 { compatible = "arm,gic-400"; #interrupt-cells = <3>; From c6d8079599514cd77fe7c6fdb457fbc11ba3fa46 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:53 +0100 Subject: [PATCH 0601/1149] dt-bindings: irqchip: renesas-irqc: Document r8a77470 support commit dcbabbbd2618991d349b3b4f75e6b2eb4fad37df upstream. Renesas RZ/G SoC have the R-Car gen2 compatible IRQC interrupt controllers. Document RZ/G1C (also known as R8A77470) SoC bindings. Reviewed-by: Fabrizio Castro Reviewed-by: Simon Horman Reviewed-by: Geert Uytterhoeven Signed-off-by: Biju Das Signed-off-by: Marc Zyngier Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- .../devicetree/bindings/interrupt-controller/renesas,irqc.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt b/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt index e3f052d8c11a..1ed382e638f8 100644 --- a/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt +++ b/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt @@ -7,6 +7,7 @@ Required properties: - "renesas,irqc-r8a73a4" (R-Mobile APE6) - "renesas,irqc-r8a7743" (RZ/G1M) - "renesas,irqc-r8a7745" (RZ/G1E) + - "renesas,irqc-r8a77470" (RZ/G1C) - "renesas,irqc-r8a7790" (R-Car H2) - "renesas,irqc-r8a7791" (R-Car M2-W) - "renesas,irqc-r8a7792" (R-Car V2H) From b8716204583c9c5df51e4b5ff7350676611b4af8 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:54 +0100 Subject: [PATCH 0602/1149] ARM: dts: r8a77470: Add IRQC support commit 141fb10294e3ba5ee2d34d464ddc8a9952bd3372 upstream. Describe the IRQC interrupt controller in the R8A77470 device tree. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman [fab: reworked clocks and power-domains properties. Removed resets property] Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a77470.dtsi | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi index 2d542b3449fe..1325daeb3dea 100644 --- a/arch/arm/boot/dts/r8a77470.dtsi +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -154,6 +154,25 @@ reg = <0 0xe6160000 0 0x100>; }; + irqc: interrupt-controller@e61c0000 { + compatible = "renesas,irqc-r8a77470", "renesas,irqc"; + #interrupt-cells = <2>; + interrupt-controller; + reg = <0 0xe61c0000 0 0x200>; + interrupts = , + , + , + , + , + , + , + , + , + ; + clocks = <&mstp4_clks R8A77470_CLK_IRQC>; + power-domains = <&cpg_clocks>; + }; + icram0: sram@e63a0000 { compatible = "mmio-sram"; reg = <0 0xe63a0000 0 0x12000>; From 0b4fafef83a4bea32c5c85b77c01df6daf63f390 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:55 +0100 Subject: [PATCH 0603/1149] ARM: dts: iwg23s-sbc: Add pinctl support for scif1 commit 01a12d4975fb09c10f64cb551d4903dacd032b79 upstream. Adding pinctrl support for scif1 interface. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts index d21baad9f0ad..48821dd463a0 100644 --- a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts +++ b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts @@ -30,6 +30,16 @@ clock-frequency = <20000000>; }; +&pfc { + scif1_pins: scif1 { + groups = "scif1_data_b"; + function = "scif1"; + }; +}; + &scif1 { + pinctrl-0 = <&scif1_pins>; + pinctrl-names = "default"; + status = "okay"; }; From 2cf8f07f024ccb471b938c5fe194b24aa38717dd Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 16 May 2019 10:39:56 +0100 Subject: [PATCH 0604/1149] dt-bindings: rcar-dmac: Document missing error interrupt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit 5466c34f8425ccd24124ebdae6e3b6552195956d upstream. The documentation for the "interrupt-names" property only mentions the per-channel interrupts, while the error interrupt has always been mandatory, too. Fixes: 10f5c8438475909a ("dmaengine: rcar-dmac: Add device tree bindings documentation") Signed-off-by: Geert Uytterhoeven Reviewed-by: Niklas Söderlund Signed-off-by: Vinod Koul Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt b/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt index 5f2ce669789a..471fcc2df88e 100644 --- a/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt +++ b/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt @@ -29,8 +29,9 @@ Required Properties: - interrupts: interrupt specifiers for the DMAC, one for each entry in interrupt-names. -- interrupt-names: one entry per channel, named "ch%u", where %u is the - channel number ranging from zero to the number of channels minus one. +- interrupt-names: one entry for the error interrupt, named "error", plus one + entry per channel, named "ch%u", where %u is the channel number ranging from + zero to the number of channels minus one. - clock-names: "fck" for the functional clock - clocks: a list of phandle + clock-specifier pairs, one for each entry From 09f46f0f39a77fdd0ac25e8486d68f5a703e8cb3 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:57 +0100 Subject: [PATCH 0605/1149] dt-bindings: rcar-dmac: Document r8a77470 support commit a0b007e1ef1cb5b7f8d4be296beeb0a097af57ac upstream. Renesas RZ/G SoC also have the R-Car gen2/3 compatible DMA controllers. Document RZ/G1C (also known as R8A77470) SoC bindings. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Simon Horman Reviewed-by: Geert Uytterhoeven Signed-off-by: Vinod Koul Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt b/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt index 471fcc2df88e..5954b05662a2 100644 --- a/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt +++ b/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt @@ -18,6 +18,7 @@ Required Properties: Examples with soctypes are: - "renesas,dmac-r8a7743" (RZ/G1M) - "renesas,dmac-r8a7745" (RZ/G1E) + - "renesas,dmac-r8a77470" (RZ/G1C) - "renesas,dmac-r8a7790" (R-Car H2) - "renesas,dmac-r8a7791" (R-Car M2-W) - "renesas,dmac-r8a7792" (R-Car V2H) From c6db9120c36f61ba0cdc6740f488597b8420b827 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:58 +0100 Subject: [PATCH 0606/1149] ARM: dts: r8a77470: Add SYS-DMAC support commit 2e5775e3fd0667f7140a00748465af1c3d0aa5bb upstream. Describe SYS-DMAC0/1 in the R8A77470 device tree. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman [fab: reworked clocks and power-domains properties. Removed resets properties] Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a77470.dtsi | 64 +++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi index 1325daeb3dea..0daa451087f2 100644 --- a/arch/arm/boot/dts/r8a77470.dtsi +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -196,6 +196,70 @@ reg = <0 0xe6300000 0 0x20000>; }; + dmac0: dma-controller@e6700000 { + compatible = "renesas,dmac-r8a77470", + "renesas,rcar-dmac"; + reg = <0 0xe6700000 0 0x20000>; + interrupts = ; + interrupt-names = "error", + "ch0", "ch1", "ch2", "ch3", + "ch4", "ch5", "ch6", "ch7", + "ch8", "ch9", "ch10", "ch11", + "ch12", "ch13", "ch14"; + clocks = <&mstp2_clks R8A77470_CLK_SYS_DMAC0>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <15>; + }; + + dmac1: dma-controller@e6720000 { + compatible = "renesas,dmac-r8a77470", + "renesas,rcar-dmac"; + reg = <0 0xe6720000 0 0x20000>; + interrupts = ; + interrupt-names = "error", + "ch0", "ch1", "ch2", "ch3", + "ch4", "ch5", "ch6", "ch7", + "ch8", "ch9", "ch10", "ch11", + "ch12", "ch13", "ch14"; + clocks = <&mstp2_clks R8A77470_CLK_SYS_DMAC1>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <15>; + }; + scif0: serial@e6e60000 { compatible = "renesas,scif-r8a77470", "renesas,scif"; reg = <0 0xe6e60000 0 0x40>; From 15cbf4b2ea561f5991787dd560f6920c14e6597d Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:39:59 +0100 Subject: [PATCH 0607/1149] ARM: dts: r8a77470: Add SCIF DMA support commit e4696122205634f40e26f9c33359a71823d1e68c upstream. Add SCIF DMA support for R8A77470 SoC. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a77470.dtsi | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi index 0daa451087f2..6f5fd9196413 100644 --- a/arch/arm/boot/dts/r8a77470.dtsi +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -267,6 +267,9 @@ clocks = <&mstp7_clks R8A77470_CLK_SCIF0>, <&zs_clk>, <&scif_clk>; clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x29>, <&dmac0 0x2a>, + <&dmac1 0x29>, <&dmac1 0x2a>; + dma-names = "tx", "rx", "tx", "rx"; power-domains = <&cpg_clocks>; status = "disabled"; }; @@ -278,6 +281,9 @@ clocks = <&mstp7_clks R8A77470_CLK_SCIF1>, <&zs_clk>, <&scif_clk>; clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x2d>, <&dmac0 0x2e>, + <&dmac1 0x2d>, <&dmac1 0x2e>; + dma-names = "tx", "rx", "tx", "rx"; power-domains = <&cpg_clocks>; status = "disabled"; }; @@ -289,6 +295,9 @@ clocks = <&mstp7_clks R8A77470_CLK_SCIF2>, <&zs_clk>, <&scif_clk>; clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x2b>, <&dmac0 0x2c>, + <&dmac1 0x2b>, <&dmac1 0x2c>; + dma-names = "tx", "rx", "tx", "rx"; power-domains = <&cpg_clocks>; status = "disabled"; }; @@ -300,6 +309,9 @@ clocks = <&mstp7_clks R8A77470_CLK_SCIF3>, <&zs_clk>, <&scif_clk>; clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x2f>, <&dmac0 0x30>, + <&dmac1 0x2f>, <&dmac1 0x30>; + dma-names = "tx", "rx", "tx", "rx"; power-domains = <&cpg_clocks>; status = "disabled"; }; @@ -311,6 +323,9 @@ clocks = <&mstp7_clks R8A77470_CLK_SCIF4>, <&zs_clk>, <&scif_clk>; clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0xfb>, <&dmac0 0xfc>, + <&dmac1 0xfb>, <&dmac1 0xfc>; + dma-names = "tx", "rx", "tx", "rx"; power-domains = <&cpg_clocks>; status = "disabled"; }; @@ -323,6 +338,9 @@ clocks = <&mstp7_clks R8A77470_CLK_SCIF5>, <&zs_clk>, <&scif_clk>; clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0xfd>, <&dmac0 0xfe>, + <&dmac1 0xfd>, <&dmac1 0xfe>; + dma-names = "tx", "rx", "tx", "rx"; power-domains = <&cpg_clocks>; status = "disabled"; }; From c848c1ee6da8a42a9d330dbcba14879a8e9fc78c Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:40:00 +0100 Subject: [PATCH 0608/1149] dt-bindings: net: renesas-ravb: Add support for r8a77470 SoC commit 9b85756341c53fd13b4b5e25104c22849274cd0d upstream. Add a new compatible string for the RZ/G1C (R8A77470) SoC. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Acked-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven Signed-off-by: David S. Miller Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/net/renesas,ravb.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/net/renesas,ravb.txt b/Documentation/devicetree/bindings/net/renesas,ravb.txt index 9a22b1e472d4..b289f613b434 100644 --- a/Documentation/devicetree/bindings/net/renesas,ravb.txt +++ b/Documentation/devicetree/bindings/net/renesas,ravb.txt @@ -7,6 +7,7 @@ Required properties: - compatible: Must contain one or more of the following: - "renesas,etheravb-r8a7743" for the R8A7743 SoC. - "renesas,etheravb-r8a7745" for the R8A7745 SoC. + - "renesas,etheravb-r8a77470" for the R8A77470 SoC. - "renesas,etheravb-r8a7790" for the R8A7790 SoC. - "renesas,etheravb-r8a7794" for the R8A7794 SoC. - "renesas,etheravb-rcar-gen2" as a fallback for the above From 5ef80c172d481c8ffb70bf00a816046cbe1eb7bc Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:40:01 +0100 Subject: [PATCH 0609/1149] ARM: dts: r8a77470: Add EtherAVB support commit f70b0958c044a73188056a231d40a8af55c04dd2 upstream. Define the generic R8A77470 part of the EtherAVB device node. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Simon Horman [fab: reworked clocks and power-domains properties, removed resets property] Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a77470.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi index 6f5fd9196413..354267871c7b 100644 --- a/arch/arm/boot/dts/r8a77470.dtsi +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -260,6 +260,18 @@ dma-channels = <15>; }; + avb: ethernet@e6800000 { + compatible = "renesas,etheravb-r8a77470", + "renesas,etheravb-rcar-gen2"; + reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>; + interrupts = ; + clocks = <&mstp8_clks R8A77470_CLK_ETHERAVB>; + power-domains = <&cpg_clocks>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + scif0: serial@e6e60000 { compatible = "renesas,scif-r8a77470", "renesas,scif"; reg = <0 0xe6e60000 0 0x40>; From b8e42cbb219ef5d87272c44a86777dfc53c8736a Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:40:02 +0100 Subject: [PATCH 0610/1149] ARM: dts: iwg23s-sbc: Add EtherAVB support commit b6ef074bcadf9f89295bc7ee19424714b6ffc4c8 upstream. Define the iW-RainboW-G23S board dependent part of the EtherAVB device node. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Simon Horman Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts index 48821dd463a0..56182eec81fb 100644 --- a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts +++ b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts @@ -12,11 +12,12 @@ compatible = "iwave,g23s", "renesas,r8a77470"; aliases { + ethernet0 = &avb; serial1 = &scif1; }; chosen { - bootargs = "ignore_loglevel"; + bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; stdout-path = "serial1:115200n8"; }; @@ -26,6 +27,18 @@ }; }; +&avb { + phy-handle = <&phy3>; + phy-mode = "gmii"; + renesas,no-ether-link; + status = "okay"; + + phy3: ethernet-phy@3 { + reg = <3>; + micrel,led-mode = <1>; + }; +}; + &extal_clk { clock-frequency = <20000000>; }; From 579ecb5bb7bb4f9907238c79ae2fdcc283d98f6e Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:40:03 +0100 Subject: [PATCH 0611/1149] ARM: dts: iwg23s-sbc: specify EtherAVB PHY IRQ commit 938fbd1ae2aca6e0547411687f0cc32d18427eae upstream. Specify EtherAVB PHY IRQ in the board specific device tree, now that we have GPIO support. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts index 56182eec81fb..22da819f186b 100644 --- a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts +++ b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts @@ -35,6 +35,8 @@ phy3: ethernet-phy@3 { reg = <3>; + interrupt-parent = <&gpio5>; + interrupts = <16 IRQ_TYPE_LEVEL_LOW>; micrel,led-mode = <1>; }; }; From a87e60cb7ed490a731becc361d85b36aa6a29e9b Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 16 May 2019 10:40:04 +0100 Subject: [PATCH 0612/1149] ARM: dts: iwg23s-sbc: Add pinctl support for EtherAVB commit 976a5ccb808da21f77a3bb1123a9e5df6f2d9564 upstream. Adding pinctrl support for EtherAVB interface. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Fabrizio Castro Signed-off-by: Simon Horman Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts index 22da819f186b..4ceff9c641e3 100644 --- a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts +++ b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts @@ -28,6 +28,9 @@ }; &avb { + pinctrl-0 = <&avb_pins>; + pinctrl-names = "default"; + phy-handle = <&phy3>; phy-mode = "gmii"; renesas,no-ether-link; @@ -46,6 +49,11 @@ }; &pfc { + avb_pins: avb { + groups = "avb_mdio", "avb_gmii_tx_rx"; + function = "avb"; + }; + scif1_pins: scif1 { groups = "scif1_data_b"; function = "scif1"; From 02f6d022abba82455831e6463c12e38f47df8d61 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Fri, 17 May 2019 11:30:13 +0900 Subject: [PATCH 0613/1149] CIP: Bump version suffix to -cip32 after DHCP and Renesas patches Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 084dccfb1c64..5804e7f4d4ba 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip31 +-cip32 From f77fb3f31bb77945649ee3e1a76b853b79701b6e Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 24 May 2019 11:43:33 +0100 Subject: [PATCH 0614/1149] dt-bindings: apmu: Document r8a77470 support commit 4619ef4747c23818063c4e8480d63966a40297c6 upstream. Document APMU and SMP enable method for RZ/G1C (also known as r8a77470) SoC. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Pavel Machek Reviewed-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/power/renesas,apmu.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/power/renesas,apmu.txt b/Documentation/devicetree/bindings/power/renesas,apmu.txt index 342aa85fcabf..e80f5f6f8e32 100644 --- a/Documentation/devicetree/bindings/power/renesas,apmu.txt +++ b/Documentation/devicetree/bindings/power/renesas,apmu.txt @@ -9,6 +9,7 @@ Required properties: Examples with soctypes are: - "renesas,r8a7743-apmu" (RZ/G1M) - "renesas,r8a7745-apmu" (RZ/G1E) + - "renesas,r8a77470-apmu" (RZ/G1C) - "renesas,r8a7790-apmu" (R-Car H2) - "renesas,r8a7791-apmu" (R-Car M2-W) From d9114490b07717569277ebc587f00dd64986476d Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Fri, 24 May 2019 11:43:34 +0100 Subject: [PATCH 0615/1149] ARM: dts: r8a77470: Add SMP support commit a21efdbc744c999d79ba86629a5ae35e2cba1e13 upstream. Add DT node for the Advanced Power Management Unit (APMU), add the second CPU core, and use "renesas,apmu" as "enable-method". Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman [fab: reworked clocks property, removed power-domains property] Signed-off-by: Fabrizio Castro Signed-off-by: Pavel Machek Reviewed-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a77470.dtsi | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi index 354267871c7b..8cc15e6550f5 100644 --- a/arch/arm/boot/dts/r8a77470.dtsi +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -17,6 +17,7 @@ cpus { #address-cells = <1>; #size-cells = <0>; + enable-method = "renesas,apmu"; cpu0: cpu@0 { device_type = "cpu"; @@ -27,6 +28,14 @@ next-level-cache = <&L2_CA7>; }; + cpu1: cpu@1 { + device_type = "cpu"; + compatible = "arm,cortex-a7"; + reg = <1>; + clock-frequency = <1000000000>; + clocks = <&z2_clk>; + next-level-cache = <&L2_CA7>; + }; L2_CA7: cache-controller-0 { compatible = "cache"; @@ -149,6 +158,12 @@ reg = <0 0xe6060000 0 0x118>; }; + apmu@e6151000 { + compatible = "renesas,r8a77470-apmu", "renesas,apmu"; + reg = <0 0xe6151000 0 0x188>; + cpus = <&cpu0 &cpu1>; + }; + rst: reset-controller@e6160000 { compatible = "renesas,r8a77470-rst"; reg = <0 0xe6160000 0 0x100>; From b791a4823f245e7871dbdd05d8f13bcc5dc377c9 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Fri, 14 Jun 2019 17:06:35 +0900 Subject: [PATCH 0616/1149] CIP: Bump version suffix to -cip33 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 5804e7f4d4ba..47b0d4ea3183 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip32 +-cip33 From f70ae212791f2a559cc32ea0fc6f92f60b1c8fbb Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Thu, 20 Jun 2019 11:59:18 +0900 Subject: [PATCH 0617/1149] CIP: Bump version suffix to -cip34 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 47b0d4ea3183..05d82df78e37 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip33 +-cip34 From 54a43ed2ddd9e6c7cd11b5d0304007abd5e9627b Mon Sep 17 00:00:00 2001 From: Mika Westerberg Date: Thu, 20 Jun 2019 13:37:46 +0100 Subject: [PATCH 0618/1149] spi: pxa2xx: Fix build error because of missing header MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit 089bd46d8bc1fe5a28351e82e4adcaa5a40121b5 upstream. Kbuild test robot reports: drivers/spi/spi-pxa2xx.c: In function ‘setup_cs’: drivers/spi/spi-pxa2xx.c:1190:20: error: implicit declaration of function ‘desc_to_gpio’ ... Reason for this is the fact that those functions are declared in linux/gpio/consumer.h which is not included in the driver. Fix this by including it. Reported-by: kbuild test robot Signed-off-by: Mika Westerberg Signed-off-by: Mark Brown Signed-off-by: Ben Hutchings Signed-off-by: Pavel Machek --- drivers/spi/spi-pxa2xx.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/spi/spi-pxa2xx.c b/drivers/spi/spi-pxa2xx.c index 9233a1cb4dee..02685ccaa97b 100644 --- a/drivers/spi/spi-pxa2xx.c +++ b/drivers/spi/spi-pxa2xx.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include From 69d7bc3a0ae06d7acac2338200fe7d3dd985e094 Mon Sep 17 00:00:00 2001 From: Chris Paterson Date: Mon, 8 Jul 2019 14:16:03 +0100 Subject: [PATCH 0619/1149] Add gitlab-ci.yaml This is configured to build and test the following configurations: * BUILD_ARCH: arm * CONFIG: renesas_shmobile_defconfig * CONFIG_LOC: cip-kernel-config * DEVICES: r8a7743-iwg20d-q7 r8a7745-iwg22d-sodimm * DTBS: r8a7743-iwg20d-q7-dbcm-ca.dtb r8a7745-iwg22d-sodimm-dbhd-ca.dtb * BUILD_ARCH: arm * CONFIG: shmobile_defconfig * CONFIG_LOC: intree * DEVICES: r8a7743-iwg20d-q7 r8a7745-iwg22d-sodimm * DTBS: r8a7743-iwg20d-q7-dbcm-ca.dtb r8a7745-iwg22d-sodimm-dbhd-ca.dtb Over time support will be added for all CIP supported architectures and configurations. At the moment only simple boot tests are run. Real tests will be added in the future Signed-off-by: Chris Paterson Signed-off-by: Pavel Machek --- .gitlab-ci.yml | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000000..421d971908a6 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,51 @@ +variables: + GIT_STRATEGY: clone + GIT_DEPTH: 10 + DOCKER_DRIVER: overlay2 + +build_arm_renesas_shmobile_defconfig: + stage: build + image: registry.gitlab.com/cip-playground/linux-cip-ci:build-v1 + variables: + BUILD_ARCH: arm + CONFIG: renesas_shmobile_defconfig + CONFIG_LOC: cip-kernel-config + DEVICES: r8a7743-iwg20d-q7 r8a7745-iwg22d-sodimm + DTBS: arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dtb arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dtb + script: + - /opt/build_kernel.sh + artifacts: + name: "$CI_JOB_NAME" + when: on_success + paths: + - output + +build_arm_shmobile_defconfig: + stage: build + image: registry.gitlab.com/cip-playground/linux-cip-ci:build-v1 + variables: + BUILD_ARCH: arm + CONFIG: shmobile_defconfig + CONFIG_LOC: intree + DEVICES: r8a7743-iwg20d-q7 r8a7745-iwg22d-sodimm + DTBS: arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dtb arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dtb + script: + - /opt/build_kernel.sh + artifacts: + name: "$CI_JOB_NAME" + when: on_success + paths: + - output + +run_tests: + stage: test + image: registry.gitlab.com/cip-playground/linux-cip-ci:test-v1 + when: always + variables: + GIT_STRATEGY: none + script: + - /opt/submit_tests.sh + artifacts: + name: "$CI_JOB_NAME" + paths: + - output From 7b3d18ad0155a525f36903fc950dd27fe7ef1443 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Fri, 12 Jul 2019 23:36:50 +0900 Subject: [PATCH 0620/1149] CIP: Bump version suffix to -cip35 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 05d82df78e37..33b82ff726e7 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip34 +-cip35 From b3b11d7120cf103b77c20a75d37323ae78d34796 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 16 Jul 2019 07:42:17 +0100 Subject: [PATCH 0621/1149] dt-bindings: spi: rspi: Add r8a7744 to the compatible list commit 6cee4afdec51b04b56e0942fd008006bf1b17497 upstream. Document RZ/G1N (r8a7744) SoC specific bindings. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Reviewed-by: Simon Horman Signed-off-by: Mark Brown Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/spi/spi-rspi.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/spi/spi-rspi.txt b/Documentation/devicetree/bindings/spi/spi-rspi.txt index 3b02b3a7cfb2..a7cb47ea2f2a 100644 --- a/Documentation/devicetree/bindings/spi/spi-rspi.txt +++ b/Documentation/devicetree/bindings/spi/spi-rspi.txt @@ -12,6 +12,7 @@ Required properties: - "renesas,rspi-sh7757" (SH) - "renesas,rspi-r7s72100" (RZ/A1H) - "renesas,qspi-r8a7743" (RZ/G1M) + - "renesas,qspi-r8a7744" (RZ/G1N) - "renesas,qspi-r8a7745" (RZ/G1E) - "renesas,qspi-r8a7790" (R-Car H2) - "renesas,qspi-r8a7791" (R-Car M2-W) From cc1a8e1dd764da3b067173be0e0ea9e068699ba1 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Tue, 16 Jul 2019 07:42:18 +0100 Subject: [PATCH 0622/1149] spi: rspi: Add r8a77470 to the compatible list commit df80e0478972260bf285c5ed33f99b2424fba2af upstream. Add r8a77470 to the list of examples with soctypes. No driver change is needed as "renesas,qspi" will activate the right code within the corresponding driver. Signed-off-by: Fabrizio Castro Signed-off-by: Mark Brown Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/spi/spi-rspi.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/spi/spi-rspi.txt b/Documentation/devicetree/bindings/spi/spi-rspi.txt index a7cb47ea2f2a..2f1a3dc069e7 100644 --- a/Documentation/devicetree/bindings/spi/spi-rspi.txt +++ b/Documentation/devicetree/bindings/spi/spi-rspi.txt @@ -14,6 +14,7 @@ Required properties: - "renesas,qspi-r8a7743" (RZ/G1M) - "renesas,qspi-r8a7744" (RZ/G1N) - "renesas,qspi-r8a7745" (RZ/G1E) + - "renesas,qspi-r8a77470" (RZ/G1C) - "renesas,qspi-r8a7790" (R-Car H2) - "renesas,qspi-r8a7791" (R-Car M2-W) - "renesas,qspi-r8a7792" (R-Car V2H) From aafea8e04b9dab23f020e04bef9ee7967ccce696 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 16 Jul 2019 07:42:19 +0100 Subject: [PATCH 0623/1149] mtd: spi-nor: Add support for is25lp016d commit b422847877e35d6818f65cb359a60f529fe22c4b upstream. The is25lp016d is found on the iwg23s from iWave, therefore add driver support for it so that we can upstream board support. Signed-off-by: Fabrizio Castro Reviewed-by: Tudor Ambarus Signed-off-by: Boris Brezillon Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mtd/spi-nor/spi-nor.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c index 276998ea0267..f26e735d74bd 100644 --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c @@ -708,6 +708,8 @@ static const struct flash_info spi_nor_ids[] = { /* ISSI */ { "is25cd512", INFO(0x7f9d20, 0, 32 * 1024, 2, SECT_4K) }, + { "is25lp016d", INFO(0x9d6015, 0, 64 * 1024, 32, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, { "is25wp032", INFO(0x9d7016, 0, 64 * 1024, 64, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, { "is25wp064", INFO(0x9d7017, 0, 64 * 1024, 128, From d9f08088f086d508a995056dbbe47020daadf764 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 16 Jul 2019 07:42:20 +0100 Subject: [PATCH 0624/1149] ARM: dts: r8a77470: Add QSPI support commit b6239d4219643bd1ac1d0b5a0faedf69cd2a2bfa upstream. Add QSPI[01] support to the RZ/G1C SoC specific device tree. Signed-off-by: Fabrizio Castro Signed-off-by: Simon Horman Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a77470.dtsi | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi index 8cc15e6550f5..a10afa2b6a43 100644 --- a/arch/arm/boot/dts/r8a77470.dtsi +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -287,6 +287,36 @@ status = "disabled"; }; + qspi0: spi@e6b10000 { + compatible = "renesas,qspi-r8a77470", "renesas,qspi"; + reg = <0 0xe6b10000 0 0x2c>; + interrupts = ; + clocks = <&mstp9_clks R8A77470_CLK_QUAD_SPI0>; + dmas = <&dmac0 0x17>, <&dmac0 0x18>, + <&dmac1 0x17>, <&dmac1 0x18>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + num-cs = <1>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + qspi1: spi@ee200000 { + compatible = "renesas,qspi-r8a77470", "renesas,qspi"; + reg = <0 0xee200000 0 0x2c>; + interrupts = ; + clocks = <&mstp9_clks R8A77470_CLK_QUAD_SPI1>; + dmas = <&dmac0 0xd1>, <&dmac0 0xd2>, + <&dmac1 0xd1>, <&dmac1 0xd2>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + num-cs = <1>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + scif0: serial@e6e60000 { compatible = "renesas,scif-r8a77470", "renesas,scif"; reg = <0 0xe6e60000 0 0x40>; From 5c1b88d15d85e34d9c50f30d211af43bdcb06f29 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 16 Jul 2019 07:42:21 +0100 Subject: [PATCH 0625/1149] ARM: dts: iwg23s-sbc: Add QSPI flash support commit 91f5c32dd0c8fc662694de4d8c5eeb61e4b4210b upstream. This commit adds QSPI flash support to the iwg23s board specific device tree. Signed-off-by: Fabrizio Castro Signed-off-by: Simon Horman Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts | 26 +++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts index 4ceff9c641e3..48b168d6f3b1 100644 --- a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts +++ b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts @@ -54,12 +54,38 @@ function = "avb"; }; + qspi0_pins: qspi0 { + groups = "qspi0_ctrl", "qspi0_data2"; + function = "qspi0"; + }; + scif1_pins: scif1 { groups = "scif1_data_b"; function = "scif1"; }; }; +&qspi0 { + pinctrl-0 = <&qspi0_pins>; + pinctrl-names = "default"; + + status = "okay"; + + /* WARNING - This device contains the bootloader. Handle with care. */ + flash: flash@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "issi,is25lp016d", "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <133000000>; + spi-tx-bus-width = <1>; + spi-rx-bus-width = <1>; + m25p,fast-read; + spi-cpol; + spi-cpha; + }; +}; + &scif1 { pinctrl-0 = <&scif1_pins>; pinctrl-names = "default"; From 91f5e24c3f5241459de6b58d84bf083b682b0cd5 Mon Sep 17 00:00:00 2001 From: Eric Nelson Date: Tue, 16 Jul 2019 09:15:12 +0100 Subject: [PATCH 0626/1149] rtc: add support for NXP PCF85363 real-time clock commit a9687aa2764dd2669602bd19dc636cbeef5293d5 upstream. Note that alarms are not currently implemented. 64 bytes of nvmem is supported and exposed in sysfs (# is the instance number, starting with 0): /sys/bus/nvmem/devices/pcf85363-#/nvmem Signed-off-by: Eric Nelson Reviewed-by: Fabio Estevam Tested-by: Alexandre Belloni Acked-by: Rob Herring Signed-off-by: Alexandre Belloni Signed-off-by: Biju Das [Removed rtc nvmem support. Added I2C ID table to rtc-pcf85363.c Updated Kconfig description for rtc-pcf85363] Signed-off-by: Pavel Machek --- .../devicetree/bindings/rtc/pcf85363.txt | 17 ++ drivers/rtc/Kconfig | 9 + drivers/rtc/Makefile | 1 + drivers/rtc/rtc-pcf85363.c | 197 ++++++++++++++++++ 4 files changed, 224 insertions(+) create mode 100644 Documentation/devicetree/bindings/rtc/pcf85363.txt create mode 100644 drivers/rtc/rtc-pcf85363.c diff --git a/Documentation/devicetree/bindings/rtc/pcf85363.txt b/Documentation/devicetree/bindings/rtc/pcf85363.txt new file mode 100644 index 000000000000..76fdabc59742 --- /dev/null +++ b/Documentation/devicetree/bindings/rtc/pcf85363.txt @@ -0,0 +1,17 @@ +NXP PCF85363 Real Time Clock +============================ + +Required properties: +- compatible: Should contain "nxp,pcf85363". +- reg: I2C address for chip. + +Optional properties: +- interrupts: IRQ line for the RTC (not implemented). + +Example: + +pcf85363: pcf85363@51 { + compatible = "nxp,pcf85363"; + reg = <0x51>; +}; + diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig index 2a524244afec..8f2fed57d4be 100644 --- a/drivers/rtc/Kconfig +++ b/drivers/rtc/Kconfig @@ -419,6 +419,15 @@ config RTC_DRV_PCF8523 This driver can also be built as a module. If so, the module will be called rtc-pcf8523. +config RTC_DRV_PCF85363 + tristate "NXP PCF85363" + select REGMAP_I2C + help + If you say yes here you get support for the PCF85363 RTC chip. + + This driver can also be built as a module. If so, the module + will be called rtc-pcf85363. + config RTC_DRV_PCF8563 tristate "Philips PCF8563/Epson RTC8564" help diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile index 231f76451615..8419d5b6c8e2 100644 --- a/drivers/rtc/Makefile +++ b/drivers/rtc/Makefile @@ -109,6 +109,7 @@ obj-$(CONFIG_RTC_DRV_PCF2123) += rtc-pcf2123.o obj-$(CONFIG_RTC_DRV_PCF2127) += rtc-pcf2127.o obj-$(CONFIG_RTC_DRV_PCF50633) += rtc-pcf50633.o obj-$(CONFIG_RTC_DRV_PCF85063) += rtc-pcf85063.o +obj-$(CONFIG_RTC_DRV_PCF85363) += rtc-pcf85363.o obj-$(CONFIG_RTC_DRV_PCF8523) += rtc-pcf8523.o obj-$(CONFIG_RTC_DRV_PCF8563) += rtc-pcf8563.o obj-$(CONFIG_RTC_DRV_PCF8583) += rtc-pcf8583.o diff --git a/drivers/rtc/rtc-pcf85363.c b/drivers/rtc/rtc-pcf85363.c new file mode 100644 index 000000000000..54fc1a7139fd --- /dev/null +++ b/drivers/rtc/rtc-pcf85363.c @@ -0,0 +1,197 @@ +/* + * drivers/rtc/rtc-pcf85363.c + * + * Driver for NXP PCF85363 real-time clock. + * + * Copyright (C) 2017 Eric Nelson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * Based loosely on rtc-8583 by Russell King, Wolfram Sang and Juergen Beisert + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * Date/Time registers + */ +#define DT_100THS 0x00 +#define DT_SECS 0x01 +#define DT_MINUTES 0x02 +#define DT_HOURS 0x03 +#define DT_DAYS 0x04 +#define DT_WEEKDAYS 0x05 +#define DT_MONTHS 0x06 +#define DT_YEARS 0x07 + +/* + * Alarm registers + */ +#define DT_SECOND_ALM1 0x08 +#define DT_MINUTE_ALM1 0x09 +#define DT_HOUR_ALM1 0x0a +#define DT_DAY_ALM1 0x0b +#define DT_MONTH_ALM1 0x0c +#define DT_MINUTE_ALM2 0x0d +#define DT_HOUR_ALM2 0x0e +#define DT_WEEKDAY_ALM2 0x0f +#define DT_ALARM_EN 0x10 + +/* + * Time stamp registers + */ +#define DT_TIMESTAMP1 0x11 +#define DT_TIMESTAMP2 0x17 +#define DT_TIMESTAMP3 0x1d +#define DT_TS_MODE 0x23 + +/* + * control registers + */ +#define CTRL_OFFSET 0x24 +#define CTRL_OSCILLATOR 0x25 +#define CTRL_BATTERY 0x26 +#define CTRL_PIN_IO 0x27 +#define CTRL_FUNCTION 0x28 +#define CTRL_INTA_EN 0x29 +#define CTRL_INTB_EN 0x2a +#define CTRL_FLAGS 0x2b +#define CTRL_RAMBYTE 0x2c +#define CTRL_WDOG 0x2d +#define CTRL_STOP_EN 0x2e +#define CTRL_RESETS 0x2f +#define CTRL_RAM 0x40 + +#define NVRAM_SIZE 0x40 + +static struct i2c_driver pcf85363_driver; + +struct pcf85363 { + struct device *dev; + struct rtc_device *rtc; + struct regmap *regmap; +}; + +static int pcf85363_rtc_read_time(struct device *dev, struct rtc_time *tm) +{ + struct pcf85363 *pcf85363 = dev_get_drvdata(dev); + unsigned char buf[DT_YEARS + 1]; + int ret, len = sizeof(buf); + + /* read the RTC date and time registers all at once */ + ret = regmap_bulk_read(pcf85363->regmap, DT_100THS, buf, len); + if (ret) { + dev_err(dev, "%s: error %d\n", __func__, ret); + return ret; + } + + tm->tm_year = bcd2bin(buf[DT_YEARS]); + /* adjust for 1900 base of rtc_time */ + tm->tm_year += 100; + + tm->tm_wday = buf[DT_WEEKDAYS] & 7; + buf[DT_SECS] &= 0x7F; + tm->tm_sec = bcd2bin(buf[DT_SECS]); + buf[DT_MINUTES] &= 0x7F; + tm->tm_min = bcd2bin(buf[DT_MINUTES]); + tm->tm_hour = bcd2bin(buf[DT_HOURS]); + tm->tm_mday = bcd2bin(buf[DT_DAYS]); + tm->tm_mon = bcd2bin(buf[DT_MONTHS]) - 1; + + return 0; +} + +static int pcf85363_rtc_set_time(struct device *dev, struct rtc_time *tm) +{ + struct pcf85363 *pcf85363 = dev_get_drvdata(dev); + unsigned char buf[DT_YEARS + 1]; + int len = sizeof(buf); + + buf[DT_100THS] = 0; + buf[DT_SECS] = bin2bcd(tm->tm_sec); + buf[DT_MINUTES] = bin2bcd(tm->tm_min); + buf[DT_HOURS] = bin2bcd(tm->tm_hour); + buf[DT_DAYS] = bin2bcd(tm->tm_mday); + buf[DT_WEEKDAYS] = tm->tm_wday; + buf[DT_MONTHS] = bin2bcd(tm->tm_mon + 1); + buf[DT_YEARS] = bin2bcd(tm->tm_year % 100); + + return regmap_bulk_write(pcf85363->regmap, DT_100THS, + buf, len); +} + +static const struct rtc_class_ops rtc_ops = { + .read_time = pcf85363_rtc_read_time, + .set_time = pcf85363_rtc_set_time, +}; + +static const struct regmap_config regmap_config = { + .reg_bits = 8, + .val_bits = 8, +}; + +static int pcf85363_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct pcf85363 *pcf85363; + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) + return -ENODEV; + + pcf85363 = devm_kzalloc(&client->dev, sizeof(struct pcf85363), + GFP_KERNEL); + if (!pcf85363) + return -ENOMEM; + + pcf85363->regmap = devm_regmap_init_i2c(client, ®map_config); + if (IS_ERR(pcf85363->regmap)) { + dev_err(&client->dev, "regmap allocation failed\n"); + return PTR_ERR(pcf85363->regmap); + } + + pcf85363->dev = &client->dev; + i2c_set_clientdata(client, pcf85363); + + pcf85363->rtc = devm_rtc_device_register(pcf85363->dev, + pcf85363_driver.driver.name, + &rtc_ops, THIS_MODULE); + + return PTR_ERR_OR_ZERO(pcf85363->rtc); +} + +static const struct i2c_device_id pcf85363_id[] = { + { "pcf85363", 0 }, + { } +}; + +static const struct of_device_id dev_ids[] = { + { .compatible = "nxp,pcf85363" }, + {} +}; +MODULE_DEVICE_TABLE(of, dev_ids); + +static struct i2c_driver pcf85363_driver = { + .driver = { + .name = "pcf85363", + .of_match_table = of_match_ptr(dev_ids), + }, + .probe = pcf85363_probe, + .id_table = pcf85363_id, +}; + +module_i2c_driver(pcf85363_driver); + +MODULE_AUTHOR("Eric Nelson"); +MODULE_DESCRIPTION("pcf85363 I2C RTC driver"); +MODULE_LICENSE("GPL"); From 629992f54601d1027b7f6a5af0c87e360e095544 Mon Sep 17 00:00:00 2001 From: Alexandre Belloni Date: Tue, 16 Jul 2019 09:15:13 +0100 Subject: [PATCH 0627/1149] rtc: pcf85363: add .max_register in regmap_config commit c57849dde003db3e21d33eab906dba2202f9294e upstream. This helps debugging as it allows reading registers from debugfs. Signed-off-by: Alexandre Belloni Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/rtc/rtc-pcf85363.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/rtc/rtc-pcf85363.c b/drivers/rtc/rtc-pcf85363.c index 54fc1a7139fd..5fbc6df88abf 100644 --- a/drivers/rtc/rtc-pcf85363.c +++ b/drivers/rtc/rtc-pcf85363.c @@ -139,6 +139,7 @@ static const struct rtc_class_ops rtc_ops = { static const struct regmap_config regmap_config = { .reg_bits = 8, .val_bits = 8, + .max_register = 0x7f, }; static int pcf85363_probe(struct i2c_client *client, From a90afbd275bc04287173a5f4e3925b1c4d6974ba Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 16 Jul 2019 09:15:14 +0100 Subject: [PATCH 0628/1149] rtc: pcf85363: set time accurately commit 188306ac9536ec47674ffa9dd330f69927679aeb upstream. As per 8.2.6 Setting and reading the time in RTC mode, first stop the clok, then reset it before setting the date and time registers. Finally, start the clock. This uses register address wrap around from 0x2f to 0x00 for efficiency. This allows to set the clock with a millisecond accuracy (drift is not corrected in this example): RTC System 1325388767 1325388767.000029180 1325388768 1325388768.000018362 1325388769 1325388769.000006544 1325388770 1325388769.999992725 1325388771 1325388770.999974544 Signed-off-by: Alexandre Belloni Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/rtc/rtc-pcf85363.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/drivers/rtc/rtc-pcf85363.c b/drivers/rtc/rtc-pcf85363.c index 5fbc6df88abf..dc57a6f09481 100644 --- a/drivers/rtc/rtc-pcf85363.c +++ b/drivers/rtc/rtc-pcf85363.c @@ -73,6 +73,10 @@ #define CTRL_RESETS 0x2f #define CTRL_RAM 0x40 +#define STOP_EN_STOP BIT(0) + +#define RESET_CPR 0xa4 + #define NVRAM_SIZE 0x40 static struct i2c_driver pcf85363_driver; @@ -115,8 +119,12 @@ static int pcf85363_rtc_read_time(struct device *dev, struct rtc_time *tm) static int pcf85363_rtc_set_time(struct device *dev, struct rtc_time *tm) { struct pcf85363 *pcf85363 = dev_get_drvdata(dev); - unsigned char buf[DT_YEARS + 1]; - int len = sizeof(buf); + unsigned char tmp[11]; + unsigned char *buf = &tmp[2]; + int ret; + + tmp[0] = STOP_EN_STOP; + tmp[1] = RESET_CPR; buf[DT_100THS] = 0; buf[DT_SECS] = bin2bcd(tm->tm_sec); @@ -127,8 +135,12 @@ static int pcf85363_rtc_set_time(struct device *dev, struct rtc_time *tm) buf[DT_MONTHS] = bin2bcd(tm->tm_mon + 1); buf[DT_YEARS] = bin2bcd(tm->tm_year % 100); - return regmap_bulk_write(pcf85363->regmap, DT_100THS, - buf, len); + ret = regmap_bulk_write(pcf85363->regmap, CTRL_STOP_EN, + tmp, sizeof(tmp)); + if (ret) + return ret; + + return regmap_write(pcf85363->regmap, CTRL_STOP_EN, 0); } static const struct rtc_class_ops rtc_ops = { From 998f5e8e736d9b94252a9c351c2c67ed43ba6f51 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 16 Jul 2019 09:15:15 +0100 Subject: [PATCH 0629/1149] dt-bindings: rtc: pcf85363: Document pcf85263 real-time clock commit bae5e94bea188e652d798eeb4b92b88a355591f6 upstream. The pcf85263 RTC is compatible with the pcf85363 RTC. The difference between the pcf85263 and pcf85363 RTC is that the latter has 64 bytes more RAM. This renders them incompatible from a DT point of view. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Reviewed-by: Rob Herring Reviewed-by: Simon Horman Signed-off-by: Alexandre Belloni Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/rtc/pcf85363.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/rtc/pcf85363.txt b/Documentation/devicetree/bindings/rtc/pcf85363.txt index 76fdabc59742..94adc1cf93d9 100644 --- a/Documentation/devicetree/bindings/rtc/pcf85363.txt +++ b/Documentation/devicetree/bindings/rtc/pcf85363.txt @@ -1,8 +1,8 @@ -NXP PCF85363 Real Time Clock +NXP PCF85263/PCF85363 Real Time Clock ============================ Required properties: -- compatible: Should contain "nxp,pcf85363". +- compatible: Should contain "nxp,pcf85263" or "nxp,pcf85363". - reg: I2C address for chip. Optional properties: From c7c7c1fb1a47780310516cd0489b73105605d750 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 16 Jul 2019 09:15:16 +0100 Subject: [PATCH 0630/1149] rtc: pcf85363: Add support for NXP pcf85263 rtc commit fc979933bcf162595b6004d0de4effb64c323152 upstream. Add support for NXP pcf85263 real-time clock. pcf85263 rtc is compatible with pcf85363,except that pcf85363 has additional 64 bytes of RAM. 1 byte of nvmem is supported and exposed in sysfs (# is the instance number,starting with 0): /sys/bus/nvmem/devices/pcf85x63-#/nvmem Signed-off-by: Biju Das [ Removed rtc nvmem support. Added I2C ID table for rtc-pcf85263 ] Signed-off-by: Alexandre Belloni Signed-off-by: Pavel Machek --- drivers/rtc/rtc-pcf85363.c | 40 ++++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/drivers/rtc/rtc-pcf85363.c b/drivers/rtc/rtc-pcf85363.c index dc57a6f09481..64217f16442f 100644 --- a/drivers/rtc/rtc-pcf85363.c +++ b/drivers/rtc/rtc-pcf85363.c @@ -87,6 +87,11 @@ struct pcf85363 { struct regmap *regmap; }; +struct pcf85x63_config { + struct regmap_config regmap; + unsigned int num_nvram; +}; + static int pcf85363_rtc_read_time(struct device *dev, struct rtc_time *tm) { struct pcf85363 *pcf85363 = dev_get_drvdata(dev); @@ -148,16 +153,33 @@ static const struct rtc_class_ops rtc_ops = { .set_time = pcf85363_rtc_set_time, }; -static const struct regmap_config regmap_config = { - .reg_bits = 8, - .val_bits = 8, - .max_register = 0x7f, +static const struct pcf85x63_config pcf_85263_config = { + .regmap = { + .reg_bits = 8, + .val_bits = 8, + .max_register = 0x2f, + }, + .num_nvram = 1 +}; + +static const struct pcf85x63_config pcf_85363_config = { + .regmap = { + .reg_bits = 8, + .val_bits = 8, + .max_register = 0x7f, + }, + .num_nvram = 2 }; static int pcf85363_probe(struct i2c_client *client, const struct i2c_device_id *id) { struct pcf85363 *pcf85363; + const struct pcf85x63_config *config = &pcf_85363_config; + const void *data = of_device_get_match_data(&client->dev); + + if (data) + config = data; if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) return -ENODEV; @@ -167,7 +189,7 @@ static int pcf85363_probe(struct i2c_client *client, if (!pcf85363) return -ENOMEM; - pcf85363->regmap = devm_regmap_init_i2c(client, ®map_config); + pcf85363->regmap = devm_regmap_init_i2c(client, &config->regmap); if (IS_ERR(pcf85363->regmap)) { dev_err(&client->dev, "regmap allocation failed\n"); return PTR_ERR(pcf85363->regmap); @@ -185,12 +207,14 @@ static int pcf85363_probe(struct i2c_client *client, static const struct i2c_device_id pcf85363_id[] = { { "pcf85363", 0 }, + { "pcf85263", 0 }, { } }; static const struct of_device_id dev_ids[] = { - { .compatible = "nxp,pcf85363" }, - {} + { .compatible = "nxp,pcf85263", .data = &pcf_85263_config }, + { .compatible = "nxp,pcf85363", .data = &pcf_85363_config }, + { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, dev_ids); @@ -206,5 +230,5 @@ static struct i2c_driver pcf85363_driver = { module_i2c_driver(pcf85363_driver); MODULE_AUTHOR("Eric Nelson"); -MODULE_DESCRIPTION("pcf85363 I2C RTC driver"); +MODULE_DESCRIPTION("pcf85263/pcf85363 I2C RTC driver"); MODULE_LICENSE("GPL"); From 3a4c2c1fb064ac350eb667df5483e2219a2ad3b7 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Tue, 16 Jul 2019 09:15:17 +0100 Subject: [PATCH 0631/1149] ARM: dts: r8a77470: Add I2C4 support commit 3578859661975f8ccb9d8d49c97784d5ff5467df upstream. Add I2C4 support to RZ/G1C (a.k.a. r8a77470) SoC specific device tree. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Acked-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Biju Das [Reworked clocks and power-domains properties. Removed resets properties] Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a77470.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi index a10afa2b6a43..7b3c4a26b9de 100644 --- a/arch/arm/boot/dts/r8a77470.dtsi +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -211,6 +211,18 @@ reg = <0 0xe6300000 0 0x20000>; }; + i2c4: i2c@e6520000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a77470", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6520000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A77470_CLK_I2C4>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + dmac0: dma-controller@e6700000 { compatible = "renesas,dmac-r8a77470", "renesas,rcar-dmac"; From 1aaf5c1a1994606c2f9f28842d07358a9daf9078 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Tue, 16 Jul 2019 09:15:18 +0100 Subject: [PATCH 0632/1149] ARM: dts: r8a77470: Add I2C[0123] support commit 4f94af57237ad1c9c6328b468fd8fbbd19c2fb78 upstream. Add device tree nodes for the I2C[0123] controllers. Also, add the aliases node. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Biju Das [Reworked clocks and power-domains properties. Removed resets properties] Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a77470.dtsi | 56 +++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi index 7b3c4a26b9de..524bba6344f1 100644 --- a/arch/arm/boot/dts/r8a77470.dtsi +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -14,6 +14,14 @@ #address-cells = <2>; #size-cells = <2>; + aliases { + i2c0 = &i2c0; + i2c1 = &i2c1; + i2c2 = &i2c2; + i2c3 = &i2c3; + i2c4 = &i2c4; + }; + cpus { #address-cells = <1>; #size-cells = <0>; @@ -211,6 +219,54 @@ reg = <0 0xe6300000 0 0x20000>; }; + i2c0: i2c@e6508000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a77470", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6508000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A77470_CLK_I2C0>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + i2c1: i2c@e6518000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a77470", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6518000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A77470_CLK_I2C1>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + i2c2: i2c@e6530000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a77470", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6530000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A77470_CLK_I2C2>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + i2c3: i2c@e6540000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a77470", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6540000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A77470_CLK_I2C3>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + i2c4: i2c@e6520000 { #address-cells = <1>; #size-cells = <0>; From 1da7e1457ac3ba30469d7e15765da0ede22566c0 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 16 Jul 2019 09:15:19 +0100 Subject: [PATCH 0633/1149] ARM: shmobile: Enable NXP pcf85363 rtc in shmobile_defconfig commit 71e3039dd7c377118608321d6c1f2ecb35da4c17 upstream. The iWave RZ/G1C SBC supports RTC (NXP pcf85263). To increase hardware support enable the driver in the shmobile_defconfig multiplatform configuration. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Pavel Machek --- arch/arm/configs/shmobile_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/shmobile_defconfig b/arch/arm/configs/shmobile_defconfig index 4770cd8b4e57..4074631be927 100644 --- a/arch/arm/configs/shmobile_defconfig +++ b/arch/arm/configs/shmobile_defconfig @@ -188,6 +188,7 @@ CONFIG_LEDS_CLASS=y CONFIG_LEDS_GPIO=y CONFIG_RTC_CLASS=y CONFIG_RTC_DRV_RS5C372=y +CONFIG_RTC_DRV_PCF85363=y CONFIG_RTC_DRV_BQ32K=y CONFIG_RTC_DRV_S35390A=y CONFIG_RTC_DRV_RX8581=y From 5b277fc6dd2c2195bf98f92daaa2d92c35459734 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 16 Jul 2019 09:15:20 +0100 Subject: [PATCH 0634/1149] ARM: multi_v7_defconfig: Enable NXP pcf85363 rtc commit e5168ec09d993d2b64cd9ee8d4cff269e53538be upstream. The iWave RZ/G1C SBC supports RTC (NXP pcf85263). To increase hardware support enable the driver in the multi_v7_defconfig multiplatform configuration. Signed-off-by: Biju Das Signed-off-by: Simon Horman Signed-off-by: Pavel Machek --- arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig index cfaf5649339d..a3ba031eaa97 100644 --- a/arch/arm/configs/multi_v7_defconfig +++ b/arch/arm/configs/multi_v7_defconfig @@ -608,6 +608,7 @@ CONFIG_RTC_DRV_MAX77686=y CONFIG_RTC_DRV_RK808=m CONFIG_RTC_DRV_MAX77802=m CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_PCF85363=m CONFIG_RTC_DRV_BQ32K=m CONFIG_RTC_DRV_PALMAS=y CONFIG_RTC_DRV_ST_LPC=y From e121bff6160788e00cd0d6e279dcb8e41922a06e Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 16 Jul 2019 09:15:21 +0100 Subject: [PATCH 0635/1149] ARM: dts: iwg23s-sbc: Enable RTC commit 55327bff832c9903a9133cdad56783b54bd8596a upstream. Enable NXP pcf85263 real time clock for the iWave SBC based on RZ/G1C. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts index 48b168d6f3b1..fea316d039e2 100644 --- a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts +++ b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts @@ -48,12 +48,30 @@ clock-frequency = <20000000>; }; +&i2c3 { + pinctrl-0 = <&i2c3_pins>; + pinctrl-names = "default"; + + status = "okay"; + clock-frequency = <400000>; + + rtc@51 { + compatible = "nxp,pcf85263"; + reg = <0x51>; + }; +}; + &pfc { avb_pins: avb { groups = "avb_mdio", "avb_gmii_tx_rx"; function = "avb"; }; + i2c3_pins: i2c3 { + groups = "i2c3_c"; + function = "i2c3"; + }; + qspi0_pins: qspi0 { groups = "qspi0_ctrl", "qspi0_data2"; function = "qspi0"; From 0dfd06be026a167939cea7a208568c8785af8d34 Mon Sep 17 00:00:00 2001 From: Chris Paterson Date: Wed, 31 Jul 2019 23:02:44 +0100 Subject: [PATCH 0636/1149] Update CI to use the latest linux-cip-ci containers The main aim of this update is to add support for more build architectures. In addition, we need to include a fix so that builds using Kernel configs from cip-kernel-config will work again, after changes to the directory structure caused us problems. Signed-off-by: Chris Paterson Signed-off-by: Nobuhiro Iwamatsu --- .gitlab-ci.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 421d971908a6..874601a94983 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,16 +2,17 @@ variables: GIT_STRATEGY: clone GIT_DEPTH: 10 DOCKER_DRIVER: overlay2 + DOCKER_IMAGE_TAG: v2 -build_arm_renesas_shmobile_defconfig: +arm_renesas_shmobile_defconfig: stage: build - image: registry.gitlab.com/cip-playground/linux-cip-ci:build-v1 + image: registry.gitlab.com/cip-playground/linux-cip-ci:build-$DOCKER_IMAGE_TAG variables: BUILD_ARCH: arm CONFIG: renesas_shmobile_defconfig CONFIG_LOC: cip-kernel-config DEVICES: r8a7743-iwg20d-q7 r8a7745-iwg22d-sodimm - DTBS: arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dtb arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dtb + DTBS: r8a7743-iwg20d-q7-dbcm-ca.dtb r8a7745-iwg22d-sodimm-dbhd-ca.dtb script: - /opt/build_kernel.sh artifacts: @@ -20,15 +21,15 @@ build_arm_renesas_shmobile_defconfig: paths: - output -build_arm_shmobile_defconfig: +arm_shmobile_defconfig: stage: build - image: registry.gitlab.com/cip-playground/linux-cip-ci:build-v1 + image: registry.gitlab.com/cip-playground/linux-cip-ci:build-$DOCKER_IMAGE_TAG variables: BUILD_ARCH: arm CONFIG: shmobile_defconfig CONFIG_LOC: intree DEVICES: r8a7743-iwg20d-q7 r8a7745-iwg22d-sodimm - DTBS: arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dtb arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dtb + DTBS: r8a7743-iwg20d-q7-dbcm-ca.dtb r8a7745-iwg22d-sodimm-dbhd-ca.dtb script: - /opt/build_kernel.sh artifacts: @@ -39,10 +40,11 @@ build_arm_shmobile_defconfig: run_tests: stage: test - image: registry.gitlab.com/cip-playground/linux-cip-ci:test-v1 + image: registry.gitlab.com/cip-playground/linux-cip-ci:test-$DOCKER_IMAGE_TAG when: always variables: GIT_STRATEGY: none + TEST_TIMEOUT: 30 script: - /opt/submit_tests.sh artifacts: From 21bebe81572ce98b8151b31cf27da32572166fe5 Mon Sep 17 00:00:00 2001 From: Chris Paterson Date: Mon, 5 Aug 2019 16:34:52 +0100 Subject: [PATCH 0637/1149] Update to run all CIP arm and x86 configs Also update to use new linux-cip-ci repository location. Support for powerpc and real-time will be added later. Signed-off-by: Chris Paterson Signed-off-by: Pavel Machek --- .gitlab-ci.yml | 249 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 246 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 874601a94983..6348d1c47f6e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,9 +4,42 @@ variables: DOCKER_DRIVER: overlay2 DOCKER_IMAGE_TAG: v2 +# Building +arm_hitachi_omap_defconfig: + stage: build + image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG + variables: + BUILD_ARCH: arm + CONFIG: hitachi_omap_defconfig + CONFIG_LOC: cip-kernel-config + BUILD_ONLY: "true" + script: + - /opt/build_kernel.sh + artifacts: + name: "$CI_JOB_NAME" + when: on_success + paths: + - output + +arm_moxa_mxc_defconfig: + stage: build + image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG + variables: + BUILD_ARCH: arm + CONFIG: moxa_mxc_defconfig + CONFIG_LOC: cip-kernel-config + BUILD_ONLY: "true" + script: + - /opt/build_kernel.sh + artifacts: + name: "$CI_JOB_NAME" + when: on_success + paths: + - output + arm_renesas_shmobile_defconfig: stage: build - image: registry.gitlab.com/cip-playground/linux-cip-ci:build-$DOCKER_IMAGE_TAG + image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG variables: BUILD_ARCH: arm CONFIG: renesas_shmobile_defconfig @@ -21,9 +54,218 @@ arm_renesas_shmobile_defconfig: paths: - output +arm_siemens_am335x-axm2_defconfig: + stage: build + image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG + variables: + BUILD_ARCH: arm + CONFIG: siemens_am335x-axm2_defconfig + CONFIG_LOC: cip-kernel-config + BUILD_ONLY: "true" + script: + - /opt/build_kernel.sh + artifacts: + name: "$CI_JOB_NAME" + when: on_success + paths: + - output + +arm_siemens_am335x-draco_defconfig: + stage: build + image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG + variables: + BUILD_ARCH: arm + CONFIG: siemens_am335x-draco_defconfig + CONFIG_LOC: cip-kernel-config + BUILD_ONLY: "true" + script: + - /opt/build_kernel.sh + artifacts: + name: "$CI_JOB_NAME" + when: on_success + paths: + - output + +arm_siemens_am335x-dxr2_defconfig: + stage: build + image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG + variables: + BUILD_ARCH: arm + CONFIG: siemens_am335x-dxr2_defconfig + CONFIG_LOC: cip-kernel-config + BUILD_ONLY: "true" + script: + - /opt/build_kernel.sh + artifacts: + name: "$CI_JOB_NAME" + when: on_success + paths: + - output + +arm_siemens_am335x-etamin_defconfig: + stage: build + image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG + variables: + BUILD_ARCH: arm + CONFIG: siemens_am335x-etamin_defconfig + CONFIG_LOC: cip-kernel-config + BUILD_ONLY: "true" + script: + - /opt/build_kernel.sh + artifacts: + name: "$CI_JOB_NAME" + when: on_success + paths: + - output + +arm_siemens_am57xx-pxm3.config: + stage: build + image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG + variables: + BUILD_ARCH: arm + CONFIG: siemens_am57xx-pxm3.config + CONFIG_LOC: cip-kernel-config + BUILD_ONLY: "true" + script: + - /opt/build_kernel.sh + artifacts: + name: "$CI_JOB_NAME" + when: on_success + paths: + - output + +arm_siemens_dcu2.config: + stage: build + image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG + variables: + BUILD_ARCH: arm + CONFIG: siemens_dcu2.config + CONFIG_LOC: cip-kernel-config + BUILD_ONLY: "true" + script: + - /opt/build_kernel.sh + artifacts: + name: "$CI_JOB_NAME" + when: on_success + paths: + - output + +arm_siemens_imx6_defconfig: + stage: build + image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG + variables: + BUILD_ARCH: arm + CONFIG: siemens_imx6_defconfig + CONFIG_LOC: cip-kernel-config + BUILD_ONLY: "true" + script: + - /opt/build_kernel.sh + artifacts: + name: "$CI_JOB_NAME" + when: on_success + paths: + - output + +arm_toshiba_tegra_defconfig: + stage: build + image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG + variables: + BUILD_ARCH: arm + CONFIG: toshiba_tegra_defconfig + CONFIG_LOC: cip-kernel-config + BUILD_ONLY: "true" + script: + - /opt/build_kernel.sh + artifacts: + name: "$CI_JOB_NAME" + when: on_success + paths: + - output + +arm_toshiba_zynq_defconfig: + stage: build + image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG + variables: + BUILD_ARCH: arm + CONFIG: toshiba_zynq_defconfig + CONFIG_LOC: cip-kernel-config + BUILD_ONLY: "true" + script: + - /opt/build_kernel.sh + artifacts: + name: "$CI_JOB_NAME" + when: on_success + paths: + - output + +x86_plathome_obsvx1.config: + stage: build + image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG + variables: + BUILD_ARCH: x86 + CONFIG: plathome_obsvx1.config + CONFIG_LOC: cip-kernel-config + BUILD_ONLY: "true" + script: + - /opt/build_kernel.sh + artifacts: + name: "$CI_JOB_NAME" + when: on_success + paths: + - output + +x86_siemens_iot2000.config: + stage: build + image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG + variables: + BUILD_ARCH: x86 + CONFIG: siemens_iot2000.config + CONFIG_LOC: cip-kernel-config + BUILD_ONLY: "true" + script: + - /opt/build_kernel.sh + artifacts: + name: "$CI_JOB_NAME" + when: on_success + paths: + - output + +x86_siemens_server_defconfig: + stage: build + image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG + variables: + BUILD_ARCH: x86 + CONFIG: siemens_server_defconfig + CONFIG_LOC: cip-kernel-config + BUILD_ONLY: "true" + script: + - /opt/build_kernel.sh + artifacts: + name: "$CI_JOB_NAME" + when: on_success + paths: + - output + +x86_toshiba_defconfig: + stage: build + image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG + variables: + BUILD_ARCH: x86 + CONFIG: toshiba_defconfig + CONFIG_LOC: cip-kernel-config + BUILD_ONLY: "true" + script: + - /opt/build_kernel.sh + artifacts: + name: "$CI_JOB_NAME" + when: on_success + paths: + - output + +# Extra build configurations arm_shmobile_defconfig: stage: build - image: registry.gitlab.com/cip-playground/linux-cip-ci:build-$DOCKER_IMAGE_TAG + image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG variables: BUILD_ARCH: arm CONFIG: shmobile_defconfig @@ -38,9 +280,10 @@ arm_shmobile_defconfig: paths: - output +# Testing run_tests: stage: test - image: registry.gitlab.com/cip-playground/linux-cip-ci:test-$DOCKER_IMAGE_TAG + image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:test-$DOCKER_IMAGE_TAG when: always variables: GIT_STRATEGY: none From 1425fbca32aa82d4a81303cd7c8e0f1aac0ed746 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Thu, 8 Aug 2019 09:06:15 +0900 Subject: [PATCH 0638/1149] CIP: Bump version suffix to -cip36 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 33b82ff726e7..c09d11563095 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip35 +-cip36 From 8722d99a62136860b7ca3beb866b2d0e771116aa Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 28 Aug 2019 09:48:19 +0100 Subject: [PATCH 0639/1149] dt-bindings: phy: rcar-gen2: Add r8a7744 support commit b3da72593e14511967a5f96f5e329b022239a90e upstream. Add USB PHY support for r8a7744 SoC. Renesas RZ/G1N (R8A7744) USB PHY is identical to the R-Car Gen2 family. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Reviewed-by: Simon Horman Signed-off-by: Rob Herring Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt b/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt index 75abc6d90616..f38f42b4ea17 100644 --- a/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt +++ b/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt @@ -5,6 +5,7 @@ This file provides information on what the device node for the R-Car generation Required properties: - compatible: "renesas,usb-phy-r8a7743" if the device is a part of R8A7743 SoC. + "renesas,usb-phy-r8a7744" if the device is a part of R8A7744 SoC. "renesas,usb-phy-r8a7745" if the device is a part of R8A7745 SoC. "renesas,usb-phy-r8a7790" if the device is a part of R8A7790 SoC. "renesas,usb-phy-r8a7791" if the device is a part of R8A7791 SoC. From 0078878028e606b9b3201a5a1d0916bac36b0c11 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 28 Aug 2019 09:48:20 +0100 Subject: [PATCH 0640/1149] dt-bindings: phy: rcar-gen2: Add r8a77470 support commit f56511d0080ce33a17f7192a3f43d65e614da5cf upstream. Add USB PHY support for r8a77470 SoC. Renesas RZ/G1C (R8A77470) USB PHY is similar to the R-Car Gen2 family, but has the below feature compared to other RZ/G1 and R-Car Gen2/3 SoCs It has a shared pll reset for usbphy0/usbphy1 and this register reside in usbphy0 block. Signed-off-by: Biju Das Reviewed-by: Rob Herring Reviewed-by: Yoshihiro Shimoda Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Biju Das [Reworked clocks and power-domains properties] Signed-off-by: Pavel Machek --- .../devicetree/bindings/phy/rcar-gen2-phy.txt | 47 ++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt b/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt index f38f42b4ea17..35c51d8bcd56 100644 --- a/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt +++ b/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt @@ -7,6 +7,7 @@ Required properties: - compatible: "renesas,usb-phy-r8a7743" if the device is a part of R8A7743 SoC. "renesas,usb-phy-r8a7744" if the device is a part of R8A7744 SoC. "renesas,usb-phy-r8a7745" if the device is a part of R8A7745 SoC. + "renesas,usb-phy-r8a77470" if the device is a part of R8A77470 SoC. "renesas,usb-phy-r8a7790" if the device is a part of R8A7790 SoC. "renesas,usb-phy-r8a7791" if the device is a part of R8A7791 SoC. "renesas,usb-phy-r8a7794" if the device is a part of R8A7794 SoC. @@ -29,7 +30,7 @@ channels. These subnodes must contain the following properties: - #phy-cells: see phy-bindings.txt in the same directory, must be <1>. The phandle's argument in the PHY specifier is the USB controller selector for -the USB channel; see the selector meanings below: +the USB channel other than r8a77470 SoC; see the selector meanings below: +-----------+---------------+---------------+ |\ Selector | | | @@ -40,6 +41,16 @@ the USB channel; see the selector meanings below: | 2 | PCI EHCI/OHCI | xHCI | +-----------+---------------+---------------+ +For r8a77470 SoC;see the selector meaning below: + ++-----------+---------------+---------------+ +|\ Selector | | | ++ --------- + 0 | 1 | +| Channel \| | | ++-----------+---------------+---------------+ +| 0 | EHCI/OHCI | HS-USB | ++-----------+---------------+---------------+ + Example (Lager board): usb-phy@e6590100 { @@ -59,3 +70,37 @@ Example (Lager board): #phy-cells = <1>; }; }; + +Example (iWave RZ/G1C sbc): + + usbphy0: usb-phy0@e6590100 { + compatible = "renesas,usb-phy-r8a77470", + "renesas,rcar-gen2-usb-phy"; + reg = <0 0xe6590100 0 0x100>; + #address-cells = <1>; + #size-cells = <0>; + clocks = <&mstp7_clks R8A77470_CLK_USBHS0>; + clock-names = "usbhs"; + power-domains = <&cpg_clocks>; + + usb0: usb-channel@0 { + reg = <0>; + #phy-cells = <1>; + }; + }; + + usbphy1: usb-phy@e6598100 { + compatible = "renesas,usb-phy-r8a77470", + "renesas,rcar-gen2-usb-phy"; + reg = <0 0xe6598100 0 0x100>; + #address-cells = <1>; + #size-cells = <0>; + clocks = <&mstp7_clks R8A77470_CLK_USBHS1>; + clock-names = "usbhs"; + power-domains = <&cpg_clocks>; + + usb1: usb-channel@0 { + reg = <0>; + #phy-cells = <1>; + }; + }; From a2a61efa2015ca682821a40c8f5cebbc0ce67566 Mon Sep 17 00:00:00 2001 From: Yoshihiro Shimoda Date: Wed, 28 Aug 2019 09:48:21 +0100 Subject: [PATCH 0641/1149] phy: rcar-gen3-usb2: Add R-Car Gen3 USB2 PHY driver commit f3b5a8d9b50d71b8c9fb72aa9c8ea948ad1a4ef9 upstream. This patch adds support for R-Car generation 3 USB2 PHY driver. This SoC has 3 EHCI/OHCI channels, and the channel 0 is shared with the HSUSB (USB2.0 peripheral) device. And each channel has independent registers about the PHYs. So, the purpose of this driver is: 1) initializes some registers of SoC specific to use the {ehci,ohci}-platform driver. 2) detects id pin to select host or peripheral on the channel 0. For now, this driver only supports 1) above. Signed-off-by: Yoshihiro Shimoda Acked-by: Rob Herring Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- .../bindings/phy/rcar-gen3-phy-usb2.txt | 37 +++ drivers/phy/Kconfig | 7 + drivers/phy/Makefile | 1 + drivers/phy/phy-rcar-gen3-usb2.c | 217 ++++++++++++++++++ 4 files changed, 262 insertions(+) create mode 100644 Documentation/devicetree/bindings/phy/rcar-gen3-phy-usb2.txt create mode 100644 drivers/phy/phy-rcar-gen3-usb2.c diff --git a/Documentation/devicetree/bindings/phy/rcar-gen3-phy-usb2.txt b/Documentation/devicetree/bindings/phy/rcar-gen3-phy-usb2.txt new file mode 100644 index 000000000000..affa0f72658b --- /dev/null +++ b/Documentation/devicetree/bindings/phy/rcar-gen3-phy-usb2.txt @@ -0,0 +1,37 @@ +* Renesas R-Car generation 3 USB 2.0 PHY + +This file provides information on what the device node for the R-Car generation +3 USB 2.0 PHY contains. + +Required properties: +- compatible: "renesas,usb2-phy-r8a7795" if the device is a part of an R8A7795 + SoC. +- reg: offset and length of the partial USB 2.0 Host register block. +- reg-names: must be "usb2_host". +- clocks: clock phandle and specifier pair(s). +- #phy-cells: see phy-bindings.txt in the same directory, must be <0>. + +Optional properties: +To use a USB channel where USB 2.0 Host and HSUSB (USB 2.0 Peripheral) are +combined, the device tree node should set HSUSB properties to reg and reg-names +properties. This is because HSUSB has registers to select USB 2.0 host or +peripheral at that channel: +- reg: offset and length of the partial HSUSB register block. +- reg-names: must be "hsusb". + +Example (R-Car H3): + + usb-phy@ee080200 { + compatible = "renesas,usb2-phy-r8a7795"; + reg = <0 0xee080200 0 0x700>, <0 0xe6590100 0 0x100>; + reg-names = "usb2_host", "hsusb"; + clocks = <&mstp7_clks R8A7795_CLK_EHCI0>, + <&mstp7_clks R8A7795_CLK_HSUSB>; + }; + + usb-phy@ee0a0200 { + compatible = "renesas,usb2-phy-r8a7795"; + reg = <0 0xee0a0200 0 0x700>; + reg-names = "usb2_host"; + clocks = <&mstp7_clks R8A7795_CLK_EHCI0>; + }; diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig index b5679fb67591..014a4202b54d 100644 --- a/drivers/phy/Kconfig +++ b/drivers/phy/Kconfig @@ -118,6 +118,13 @@ config PHY_RCAR_GEN2 help Support for USB PHY found on Renesas R-Car generation 2 SoCs. +config PHY_RCAR_GEN3_USB2 + tristate "Renesas R-Car generation 3 USB 2.0 PHY driver" + depends on OF && ARCH_SHMOBILE + select GENERIC_PHY + help + Support for USB 2.0 PHY found on Renesas R-Car generation 3 SoCs. + config OMAP_CONTROL_PHY tristate "OMAP CONTROL PHY Driver" depends on ARCH_OMAP2PLUS || COMPILE_TEST diff --git a/drivers/phy/Makefile b/drivers/phy/Makefile index 075db1a81aa5..91d7a62c6794 100644 --- a/drivers/phy/Makefile +++ b/drivers/phy/Makefile @@ -17,6 +17,7 @@ obj-$(CONFIG_PHY_MVEBU_SATA) += phy-mvebu-sata.o obj-$(CONFIG_PHY_MIPHY28LP) += phy-miphy28lp.o obj-$(CONFIG_PHY_MIPHY365X) += phy-miphy365x.o obj-$(CONFIG_PHY_RCAR_GEN2) += phy-rcar-gen2.o +obj-$(CONFIG_PHY_RCAR_GEN3_USB2) += phy-rcar-gen3-usb2.o obj-$(CONFIG_OMAP_CONTROL_PHY) += phy-omap-control.o obj-$(CONFIG_OMAP_USB2) += phy-omap-usb2.o obj-$(CONFIG_TI_PIPE3) += phy-ti-pipe3.o diff --git a/drivers/phy/phy-rcar-gen3-usb2.c b/drivers/phy/phy-rcar-gen3-usb2.c new file mode 100644 index 000000000000..269615228b1b --- /dev/null +++ b/drivers/phy/phy-rcar-gen3-usb2.c @@ -0,0 +1,217 @@ +/* + * Renesas R-Car Gen3 for USB2.0 PHY driver + * + * Copyright (C) 2015 Renesas Electronics Corporation + * + * This is based on the phy-rcar-gen2 driver: + * Copyright (C) 2014 Renesas Solutions Corp. + * Copyright (C) 2014 Cogent Embedded, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include +#include +#include +#include +#include +#include + +/******* USB2.0 Host registers (original offset is +0x200) *******/ +#define USB2_INT_ENABLE 0x000 +#define USB2_USBCTR 0x00c +#define USB2_SPD_RSM_TIMSET 0x10c +#define USB2_OC_TIMSET 0x110 + +/* INT_ENABLE */ +#define USB2_INT_ENABLE_USBH_INTB_EN BIT(2) +#define USB2_INT_ENABLE_USBH_INTA_EN BIT(1) +#define USB2_INT_ENABLE_INIT (USB2_INT_ENABLE_USBH_INTB_EN | \ + USB2_INT_ENABLE_USBH_INTA_EN) + +/* USBCTR */ +#define USB2_USBCTR_DIRPD BIT(2) +#define USB2_USBCTR_PLL_RST BIT(1) + +/* SPD_RSM_TIMSET */ +#define USB2_SPD_RSM_TIMSET_INIT 0x014e029b + +/* OC_TIMSET */ +#define USB2_OC_TIMSET_INIT 0x000209ab + +/******* HSUSB registers (original offset is +0x100) *******/ +#define HSUSB_LPSTS 0x02 +#define HSUSB_UGCTRL2 0x84 + +/* Low Power Status register (LPSTS) */ +#define HSUSB_LPSTS_SUSPM 0x4000 + +/* USB General control register 2 (UGCTRL2) */ +#define HSUSB_UGCTRL2_MASK 0x00000031 /* bit[31:6] should be 0 */ +#define HSUSB_UGCTRL2_USB0SEL 0x00000030 +#define HSUSB_UGCTRL2_USB0SEL_HOST 0x00000010 +#define HSUSB_UGCTRL2_USB0SEL_HS_USB 0x00000020 +#define HSUSB_UGCTRL2_USB0SEL_OTG 0x00000030 + +struct rcar_gen3_data { + void __iomem *base; + struct clk *clk; +}; + +struct rcar_gen3_chan { + struct rcar_gen3_data usb2; + struct rcar_gen3_data hsusb; + struct phy *phy; +}; + +static int rcar_gen3_phy_usb2_init(struct phy *p) +{ + struct rcar_gen3_chan *channel = phy_get_drvdata(p); + void __iomem *usb2_base = channel->usb2.base; + void __iomem *hsusb_base = channel->hsusb.base; + u32 val; + + /* Initialize USB2 part */ + writel(USB2_INT_ENABLE_INIT, usb2_base + USB2_INT_ENABLE); + writel(USB2_SPD_RSM_TIMSET_INIT, usb2_base + USB2_SPD_RSM_TIMSET); + writel(USB2_OC_TIMSET_INIT, usb2_base + USB2_OC_TIMSET); + + /* Initialize HSUSB part */ + if (hsusb_base) { + /* TODO: support "OTG" mode */ + val = readl(hsusb_base + HSUSB_UGCTRL2); + val = (val & ~HSUSB_UGCTRL2_USB0SEL) | + HSUSB_UGCTRL2_USB0SEL_HOST; + writel(val & HSUSB_UGCTRL2_MASK, hsusb_base + HSUSB_UGCTRL2); + } + + return 0; +} + +static int rcar_gen3_phy_usb2_exit(struct phy *p) +{ + struct rcar_gen3_chan *channel = phy_get_drvdata(p); + + writel(0, channel->usb2.base + USB2_INT_ENABLE); + + return 0; +} + +static int rcar_gen3_phy_usb2_power_on(struct phy *p) +{ + struct rcar_gen3_chan *channel = phy_get_drvdata(p); + void __iomem *usb2_base = channel->usb2.base; + void __iomem *hsusb_base = channel->hsusb.base; + u32 val; + + val = readl(usb2_base + USB2_USBCTR); + val |= USB2_USBCTR_PLL_RST; + writel(val, usb2_base + USB2_USBCTR); + val &= ~USB2_USBCTR_PLL_RST; + writel(val, usb2_base + USB2_USBCTR); + + /* + * TODO: To reduce power consuming, this driver should set the SUSPM + * after the PHY detects ID pin as peripheral. + */ + if (hsusb_base) { + /* Power on HSUSB PHY */ + val = readw(hsusb_base + HSUSB_LPSTS); + val |= HSUSB_LPSTS_SUSPM; + writew(val, hsusb_base + HSUSB_LPSTS); + } + + return 0; +} + +static int rcar_gen3_phy_usb2_power_off(struct phy *p) +{ + struct rcar_gen3_chan *channel = phy_get_drvdata(p); + void __iomem *hsusb_base = channel->hsusb.base; + u32 val; + + if (hsusb_base) { + /* Power off HSUSB PHY */ + val = readw(hsusb_base + HSUSB_LPSTS); + val &= ~HSUSB_LPSTS_SUSPM; + writew(val, hsusb_base + HSUSB_LPSTS); + } + + return 0; +} + +static struct phy_ops rcar_gen3_phy_usb2_ops = { + .init = rcar_gen3_phy_usb2_init, + .exit = rcar_gen3_phy_usb2_exit, + .power_on = rcar_gen3_phy_usb2_power_on, + .power_off = rcar_gen3_phy_usb2_power_off, + .owner = THIS_MODULE, +}; + +static const struct of_device_id rcar_gen3_phy_usb2_match_table[] = { + { .compatible = "renesas,usb2-phy-r8a7795" }, + { } +}; +MODULE_DEVICE_TABLE(of, rcar_gen3_phy_usb2_match_table); + +static int rcar_gen3_phy_usb2_probe(struct platform_device *pdev) +{ + struct device *dev = &pdev->dev; + struct rcar_gen3_chan *channel; + struct phy_provider *provider; + struct resource *res; + + if (!dev->of_node) { + dev_err(dev, "This driver needs device tree\n"); + return -EINVAL; + } + + channel = devm_kzalloc(dev, sizeof(*channel), GFP_KERNEL); + if (!channel) + return -ENOMEM; + + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "usb2_host"); + channel->usb2.base = devm_ioremap_resource(dev, res); + if (IS_ERR(channel->usb2.base)) + return PTR_ERR(channel->usb2.base); + + /* "hsusb" memory resource is optional */ + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "hsusb"); + + /* To avoid error message by devm_ioremap_resource() */ + if (res) { + channel->hsusb.base = devm_ioremap_resource(dev, res); + if (IS_ERR(channel->hsusb.base)) + channel->hsusb.base = NULL; + } + + /* devm_phy_create() will call pm_runtime_enable(dev); */ + channel->phy = devm_phy_create(dev, NULL, &rcar_gen3_phy_usb2_ops); + if (IS_ERR(channel->phy)) { + dev_err(dev, "Failed to create USB2 PHY\n"); + return PTR_ERR(channel->phy); + } + + phy_set_drvdata(channel->phy, channel); + + provider = devm_of_phy_provider_register(dev, of_phy_simple_xlate); + if (IS_ERR(provider)) + dev_err(dev, "Failed to register PHY provider\n"); + + return PTR_ERR_OR_ZERO(provider); +} + +static struct platform_driver rcar_gen3_phy_usb2_driver = { + .driver = { + .name = "phy_rcar_gen3_usb2", + .of_match_table = rcar_gen3_phy_usb2_match_table, + }, + .probe = rcar_gen3_phy_usb2_probe, +}; +module_platform_driver(rcar_gen3_phy_usb2_driver); + +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("Renesas R-Car Gen3 USB 2.0 PHY"); +MODULE_AUTHOR("Yoshihiro Shimoda "); From caa8ad1c421ebb4b15cd8f835bb50af2ae83c5b4 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 28 Aug 2019 09:48:22 +0100 Subject: [PATCH 0642/1149] dt-bindings: rcar-gen3-phy-usb2: Add r8a77470 support commit d6c4aee8d1218d5cd73ce5e6f27ac68ad8b9430b upstream. Document RZ/G1C (R8A77470) SoC bindings. For RZ/G1C, this driver is used to enable interrupt generation and initializing timing registers which is part of phy_init code. Signed-off-by: Biju Das Reviewed-by: Rob Herring Reviewed-by: Yoshihiro Shimoda Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Biju Das [Dropped non r8a77470 related changes] Signed-off-by: Pavel Machek --- .../devicetree/bindings/phy/rcar-gen3-phy-usb2.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/phy/rcar-gen3-phy-usb2.txt b/Documentation/devicetree/bindings/phy/rcar-gen3-phy-usb2.txt index affa0f72658b..c0cf9f4c675b 100644 --- a/Documentation/devicetree/bindings/phy/rcar-gen3-phy-usb2.txt +++ b/Documentation/devicetree/bindings/phy/rcar-gen3-phy-usb2.txt @@ -1,10 +1,12 @@ * Renesas R-Car generation 3 USB 2.0 PHY This file provides information on what the device node for the R-Car generation -3 USB 2.0 PHY contains. +3 and RZ/G1C USB 2.0 PHY contains. Required properties: -- compatible: "renesas,usb2-phy-r8a7795" if the device is a part of an R8A7795 +- compatible: "renesas,usb2-phy-r8a77470" if the device is a part of an R8A77470 + SoC. + "renesas,usb2-phy-r8a7795" if the device is a part of an R8A7795 SoC. - reg: offset and length of the partial USB 2.0 Host register block. - reg-names: must be "usb2_host". From 143457936a33f0eb388dd09beb66d27d51fc0f43 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 28 Aug 2019 09:48:23 +0100 Subject: [PATCH 0643/1149] phy: phy-rcar-gen2: Add support for r8a77470 commit b7187e001a103f49ccb118bb2fb62ad31961b666 upstream. This patch adds support for RZ/G1C (r8a77470) SoC. RZ/G1C SoC has a PLL register shared between hsusb0 and hsusb1. Compared to other RZ/G1 and R-Car Gen2/3, USB Host needs to deassert the pll reset. Signed-off-by: Biju Das Reviewed-and-Tested-by: Yoshihiro Shimoda Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Biju Das [Backported to 4.4 cip kernel] Signed-off-by: Pavel Machek --- drivers/phy/phy-rcar-gen2.c | 130 ++++++++++++++++++++++++++++++++---- 1 file changed, 118 insertions(+), 12 deletions(-) diff --git a/drivers/phy/phy-rcar-gen2.c b/drivers/phy/phy-rcar-gen2.c index aa02b19b7e0e..0817356e2966 100644 --- a/drivers/phy/phy-rcar-gen2.c +++ b/drivers/phy/phy-rcar-gen2.c @@ -3,6 +3,7 @@ * * Copyright (C) 2014 Renesas Solutions Corp. * Copyright (C) 2014 Cogent Embedded, Inc. + * Copyright (C) 2019 Renesas Electronics Corp. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -18,6 +19,7 @@ #include #include #include +#include #define USBHS_LPSTS 0x02 #define USBHS_UGCTRL 0x80 @@ -38,6 +40,8 @@ #define USBHS_UGCTRL2_USB0SEL 0x00000030 #define USBHS_UGCTRL2_USB0SEL_PCI 0x00000010 #define USBHS_UGCTRL2_USB0SEL_HS_USB 0x00000030 +#define USBHS_UGCTRL2_USB0SEL_USB20 0x00000010 +#define USBHS_UGCTRL2_USB0SEL_HS_USB20 0x00000020 /* USB General status register (UGSTS) */ #define USBHS_UGSTS_LOCK 0x00000100 /* From technical update */ @@ -67,6 +71,11 @@ struct rcar_gen2_phy_driver { struct rcar_gen2_channel *channels; }; +struct rcar_gen2_phy_data { + const struct phy_ops *gen2_phy_ops; + const u32 (*select_value)[PHYS_PER_CHANNEL]; +}; + static int rcar_gen2_phy_init(struct phy *p) { struct rcar_gen2_phy *phy = phy_get_drvdata(p); @@ -183,6 +192,60 @@ static int rcar_gen2_phy_power_off(struct phy *p) return 0; } +static int rz_g1c_phy_power_on(struct phy *p) +{ + struct rcar_gen2_phy *phy = phy_get_drvdata(p); + struct rcar_gen2_phy_driver *drv = phy->channel->drv; + void __iomem *base = drv->base; + unsigned long flags; + u32 value; + + spin_lock_irqsave(&drv->lock, flags); + + /* Power on USBHS PHY */ + value = readl(base + USBHS_UGCTRL); + value &= ~USBHS_UGCTRL_PLLRESET; + writel(value, base + USBHS_UGCTRL); + + /* As per the data sheet wait 340 micro sec for power stable */ + udelay(340); + + if (phy->select_value == USBHS_UGCTRL2_USB0SEL_HS_USB20) { + value = readw(base + USBHS_LPSTS); + value |= USBHS_LPSTS_SUSPM; + writew(value, base + USBHS_LPSTS); + } + + spin_unlock_irqrestore(&drv->lock, flags); + + return 0; +} + +static int rz_g1c_phy_power_off(struct phy *p) +{ + struct rcar_gen2_phy *phy = phy_get_drvdata(p); + struct rcar_gen2_phy_driver *drv = phy->channel->drv; + void __iomem *base = drv->base; + unsigned long flags; + u32 value; + + spin_lock_irqsave(&drv->lock, flags); + /* Power off USBHS PHY */ + if (phy->select_value == USBHS_UGCTRL2_USB0SEL_HS_USB20) { + value = readw(base + USBHS_LPSTS); + value &= ~USBHS_LPSTS_SUSPM; + writew(value, base + USBHS_LPSTS); + } + + value = readl(base + USBHS_UGCTRL); + value |= USBHS_UGCTRL_PLLRESET; + writel(value, base + USBHS_UGCTRL); + + spin_unlock_irqrestore(&drv->lock, flags); + + return 0; +} + static const struct phy_ops rcar_gen2_phy_ops = { .init = rcar_gen2_phy_init, .exit = rcar_gen2_phy_exit, @@ -191,12 +254,55 @@ static const struct phy_ops rcar_gen2_phy_ops = { .owner = THIS_MODULE, }; +static const struct phy_ops rz_g1c_phy_ops = { + .init = rcar_gen2_phy_init, + .exit = rcar_gen2_phy_exit, + .power_on = rz_g1c_phy_power_on, + .power_off = rz_g1c_phy_power_off, + .owner = THIS_MODULE, +}; + +static const u32 pci_select_value[][PHYS_PER_CHANNEL] = { + [0] = { USBHS_UGCTRL2_USB0SEL_PCI, USBHS_UGCTRL2_USB0SEL_HS_USB }, + [2] = { USBHS_UGCTRL2_USB2SEL_PCI, USBHS_UGCTRL2_USB2SEL_USB30 }, +}; + +static const u32 usb20_select_value[][PHYS_PER_CHANNEL] = { + { USBHS_UGCTRL2_USB0SEL_USB20, USBHS_UGCTRL2_USB0SEL_HS_USB20 }, +}; + +static const struct rcar_gen2_phy_data rcar_gen2_usb_phy_data = { + .gen2_phy_ops = &rcar_gen2_phy_ops, + .select_value = pci_select_value, +}; + +static const struct rcar_gen2_phy_data rz_g1c_usb_phy_data = { + .gen2_phy_ops = &rz_g1c_phy_ops, + .select_value = usb20_select_value, +}; + static const struct of_device_id rcar_gen2_phy_match_table[] = { - { .compatible = "renesas,usb-phy-r8a7790" }, - { .compatible = "renesas,usb-phy-r8a7791" }, - { .compatible = "renesas,usb-phy-r8a7794" }, - { .compatible = "renesas,rcar-gen2-usb-phy" }, - { } + { + .compatible = "renesas,usb-phy-r8a77470", + .data = &rz_g1c_usb_phy_data, + }, + { + .compatible = "renesas,usb-phy-r8a7790", + .data = &rcar_gen2_usb_phy_data, + }, + { + .compatible = "renesas,usb-phy-r8a7791", + .data = &rcar_gen2_usb_phy_data, + }, + { + .compatible = "renesas,usb-phy-r8a7794", + .data = &rcar_gen2_usb_phy_data, + }, + { + .compatible = "renesas,rcar-gen2-usb-phy", + .data = &rcar_gen2_usb_phy_data, + }, + { /* sentinel */ }, }; MODULE_DEVICE_TABLE(of, rcar_gen2_phy_match_table); @@ -227,11 +333,6 @@ static const u32 select_mask[] = { [2] = USBHS_UGCTRL2_USB2SEL, }; -static const u32 select_value[][PHYS_PER_CHANNEL] = { - [0] = { USBHS_UGCTRL2_USB0SEL_PCI, USBHS_UGCTRL2_USB0SEL_HS_USB }, - [2] = { USBHS_UGCTRL2_USB2SEL_PCI, USBHS_UGCTRL2_USB2SEL_USB30 }, -}; - static int rcar_gen2_phy_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; @@ -241,6 +342,7 @@ static int rcar_gen2_phy_probe(struct platform_device *pdev) struct resource *res; void __iomem *base; struct clk *clk; + const struct rcar_gen2_phy_data *data; int i = 0; if (!dev->of_node) { @@ -269,6 +371,10 @@ static int rcar_gen2_phy_probe(struct platform_device *pdev) drv->clk = clk; drv->base = base; + data = of_device_get_match_data(dev); + if (!data) + return -EINVAL; + drv->num_channels = of_get_child_count(dev->of_node); drv->channels = devm_kcalloc(dev, drv->num_channels, sizeof(struct rcar_gen2_channel), @@ -298,10 +404,10 @@ static int rcar_gen2_phy_probe(struct platform_device *pdev) phy->channel = channel; phy->number = n; - phy->select_value = select_value[channel_num][n]; + phy->select_value = data->select_value[channel_num][n]; phy->phy = devm_phy_create(dev, NULL, - &rcar_gen2_phy_ops); + data->gen2_phy_ops); if (IS_ERR(phy->phy)) { dev_err(dev, "Failed to create PHY\n"); of_node_put(np); From a49f0082cc8510fac637b8a007526246653b154f Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 28 Aug 2019 09:48:24 +0100 Subject: [PATCH 0644/1149] phy: rcar-gen3-usb2: Add support for r8a77470 commit 5d8042e95fd471d0e342cf14f127194f1a867a01 upstream. This patch adds support for r8a77470 (RZ/G1C). We can reuse this driver for initializing timing/interrupt generation registers. Signed-off-by: Biju Das Reviewed-by: Yoshihiro Shimoda Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Biju Das [Backported to 4.4-cip kernel] Signed-off-by: Pavel Machek --- drivers/phy/phy-rcar-gen3-usb2.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/drivers/phy/phy-rcar-gen3-usb2.c b/drivers/phy/phy-rcar-gen3-usb2.c index 269615228b1b..355a6715d172 100644 --- a/drivers/phy/phy-rcar-gen3-usb2.c +++ b/drivers/phy/phy-rcar-gen3-usb2.c @@ -18,6 +18,7 @@ #include #include #include +#include /******* USB2.0 Host registers (original offset is +0x200) *******/ #define USB2_INT_ENABLE 0x000 @@ -150,9 +151,22 @@ static struct phy_ops rcar_gen3_phy_usb2_ops = { .owner = THIS_MODULE, }; +static const struct phy_ops rz_g1c_phy_usb2_ops = { + .init = rcar_gen3_phy_usb2_init, + .exit = rcar_gen3_phy_usb2_exit, + .owner = THIS_MODULE, +}; + static const struct of_device_id rcar_gen3_phy_usb2_match_table[] = { - { .compatible = "renesas,usb2-phy-r8a7795" }, - { } + { + .compatible = "renesas,usb2-phy-r8a77470", + .data = &rz_g1c_phy_usb2_ops, + }, + { + .compatible = "renesas,usb2-phy-r8a7795", + .data = &rcar_gen3_phy_usb2_ops, + }, + { /* sentinel */ }, }; MODULE_DEVICE_TABLE(of, rcar_gen3_phy_usb2_match_table); @@ -162,6 +176,7 @@ static int rcar_gen3_phy_usb2_probe(struct platform_device *pdev) struct rcar_gen3_chan *channel; struct phy_provider *provider; struct resource *res; + const struct phy_ops *phy_usb2_ops; if (!dev->of_node) { dev_err(dev, "This driver needs device tree\n"); @@ -188,7 +203,11 @@ static int rcar_gen3_phy_usb2_probe(struct platform_device *pdev) } /* devm_phy_create() will call pm_runtime_enable(dev); */ - channel->phy = devm_phy_create(dev, NULL, &rcar_gen3_phy_usb2_ops); + phy_usb2_ops = of_device_get_match_data(dev); + if (!phy_usb2_ops) + return -EINVAL; + + channel->phy = devm_phy_create(dev, NULL, phy_usb2_ops); if (IS_ERR(channel->phy)) { dev_err(dev, "Failed to create USB2 PHY\n"); return PTR_ERR(channel->phy); From 119d11c818662776530d491087736e824cfaae6b Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 28 Aug 2019 09:48:25 +0100 Subject: [PATCH 0645/1149] ARM: dts: r8a77470: Add USB-DMAC device nodes commit 92c3ccd9b847a6cf130e10aa305e9e349626e4f0 upstream. This patch adds USB DMAC nodes. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman Signed-off-by: Biju Das [Reworked clocks and power-domains properties. Removed resets properties] Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a77470.dtsi | 52 +++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi index 524bba6344f1..2c9cd0beab2d 100644 --- a/arch/arm/boot/dts/r8a77470.dtsi +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -279,6 +279,58 @@ status = "disabled"; }; + usb_dmac00: dma-controller@e65a0000 { + compatible = "renesas,r8a77470-usb-dmac", + "renesas,usb-dmac"; + reg = <0 0xe65a0000 0 0x100>; + interrupts = ; + interrupt-names = "ch0", "ch1"; + clocks = <&mstp3_clks R8A77470_CLK_USBHS_DMAC0_CH0>; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <2>; + }; + + usb_dmac10: dma-controller@e65b0000 { + compatible = "renesas,r8a77470-usb-dmac", + "renesas,usb-dmac"; + reg = <0 0xe65b0000 0 0x100>; + interrupts = ; + interrupt-names = "ch0", "ch1"; + clocks = <&mstp3_clks R8A77470_CLK_USBHS_DMAC1_CH0>; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <2>; + }; + + usb_dmac01: dma-controller@e65a8000 { + compatible = "renesas,r8a77470-usb-dmac", + "renesas,usb-dmac"; + reg = <0 0xe65a8000 0 0x100>; + interrupts = ; + interrupt-names = "ch0", "ch1"; + clocks = <&mstp3_clks R8A77470_CLK_USBHS_DMAC0_CH1>; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <2>; + }; + + usb_dmac11: dma-controller@e65b8000 { + compatible = "renesas,r8a77470-usb-dmac", + "renesas,usb-dmac"; + reg = <0 0xe65b8000 0 0x100>; + interrupts = ; + interrupt-names = "ch0", "ch1"; + clocks = <&mstp3_clks R8A77470_CLK_USBHS_DMAC1_CH1>; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <2>; + }; + dmac0: dma-controller@e6700000 { compatible = "renesas,dmac-r8a77470", "renesas,rcar-dmac"; From d6569640a58edaf08da92f71f02332cabc23f4e2 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 28 Aug 2019 09:48:26 +0100 Subject: [PATCH 0646/1149] ARM: dts: r8a77470: Add USB PHY DT support commit 1a675db44002ed9674d6e534b1400a9d756ef34b upstream. Define the r8a77470 generic part of the USB PHY device node. Signed-off-by: Biju Das Signed-off-by: Simon Horman Signed-off-by: Biju Das [Reworked clocks and power-domains properties. Removed resets properties Added usb2_host regname] Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a77470.dtsi | 54 +++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi index 2c9cd0beab2d..e407954de9eb 100644 --- a/arch/arm/boot/dts/r8a77470.dtsi +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -279,6 +279,40 @@ status = "disabled"; }; + usbphy0: usb-phy@e6590100 { + compatible = "renesas,usb-phy-r8a77470", + "renesas,rcar-gen2-usb-phy"; + reg = <0 0xe6590100 0 0x100>; + #address-cells = <1>; + #size-cells = <0>; + clocks = <&mstp7_clks R8A77470_CLK_USBHS0>; + clock-names = "usbhs"; + power-domains = <&cpg_clocks>; + status = "disabled"; + + usb0: usb-channel@0 { + reg = <0>; + #phy-cells = <1>; + }; + }; + + usbphy1: usb-phy@e6598100 { + compatible = "renesas,usb-phy-r8a77470", + "renesas,rcar-gen2-usb-phy"; + reg = <0 0xe6598100 0 0x100>; + #address-cells = <1>; + #size-cells = <0>; + clocks = <&mstp7_clks R8A77470_CLK_USBHS1>; + clock-names = "usbhs"; + power-domains = <&cpg_clocks>; + status = "disabled"; + + usb1: usb-channel@0 { + reg = <0>; + #phy-cells = <1>; + }; + }; + usb_dmac00: dma-controller@e65a0000 { compatible = "renesas,r8a77470-usb-dmac", "renesas,usb-dmac"; @@ -522,6 +556,26 @@ status = "disabled"; }; + usb2_phy0: usb-phy@ee080200 { + compatible = "renesas,usb2-phy-r8a77470"; + reg = <0 0xee080200 0 0x700>; + reg-names = "usb2_host"; + clocks = <&mstp7_clks R8A77470_CLK_USB_EHCI_0>; + power-domains = <&cpg_clocks>; + #phy-cells = <0>; + status = "disabled"; + }; + + usb2_phy1: usb-phy@ee0c0200 { + compatible = "renesas,usb2-phy-r8a77470"; + reg = <0 0xee0c0200 0 0x700>; + reg-names = "usb2_host"; + clocks = <&mstp7_clks R8A77470_CLK_USB_EHCI_1>; + power-domains = <&cpg_clocks>; + #phy-cells = <0>; + status = "disabled"; + }; + gic: interrupt-controller@f1001000 { compatible = "arm,gic-400"; #interrupt-cells = <3>; From f2b01e6066ed17e4d068b8b1ecaf10be811973df Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 28 Aug 2019 09:48:27 +0100 Subject: [PATCH 0647/1149] ARM: dts: r8a77470: Add USB2.0 Host (EHCI/OHCI) device commit ce5940798cf1eb1ba70e94702cbb334ca370f96b upstream. Define the r8a77470 generic part of the USB2.0 Host Controller device nodes (ehci[01]/ohci[01]). Signed-off-by: Biju Das Signed-off-by: Simon Horman Signed-off-by: Biju Das [Reworked clocks and power-domains properties. Removed resets properties] Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a77470.dtsi | 46 +++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi index e407954de9eb..36538c8bffd5 100644 --- a/arch/arm/boot/dts/r8a77470.dtsi +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -556,6 +556,29 @@ status = "disabled"; }; + ohci0: usb@ee080000 { + compatible = "generic-ohci"; + reg = <0 0xee080000 0 0x100>; + interrupts = ; + clocks = <&mstp7_clks R8A77470_CLK_USB_EHCI_0>; + phys = <&usb0 0>, <&usb2_phy0>; + phy-names = "usb"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + ehci0: usb@ee080100 { + compatible = "generic-ehci"; + reg = <0 0xee080100 0 0x100>; + interrupts = ; + clocks = <&mstp7_clks R8A77470_CLK_USB_EHCI_0>; + phys = <&usb0 0>, <&usb2_phy0>; + phy-names = "usb"; + companion = <&ohci0>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + usb2_phy0: usb-phy@ee080200 { compatible = "renesas,usb2-phy-r8a77470"; reg = <0 0xee080200 0 0x700>; @@ -566,6 +589,29 @@ status = "disabled"; }; + ohci1: usb@ee0c0000 { + compatible = "generic-ohci"; + reg = <0 0xee0c0000 0 0x100>; + interrupts = ; + clocks = <&mstp7_clks R8A77470_CLK_USB_EHCI_1>; + phys = <&usb0 1>, <&usb2_phy1>, <&usb1 0>; + phy-names = "usb"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + ehci1: usb@ee0c0100 { + compatible = "generic-ehci"; + reg = <0 0xee0c0100 0 0x100>; + interrupts = ; + clocks = <&mstp7_clks R8A77470_CLK_USB_EHCI_1>; + phys = <&usb0 1>, <&usb2_phy1>, <&usb1 0>; + phy-names = "usb"; + companion = <&ohci1>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + usb2_phy1: usb-phy@ee0c0200 { compatible = "renesas,usb2-phy-r8a77470"; reg = <0 0xee0c0200 0 0x700>; From 41582a67d62b0427b15a974f461cbe7ad39d13f6 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 28 Aug 2019 09:48:28 +0100 Subject: [PATCH 0648/1149] ARM: shmobile: Enable PHY_RCAR_GEN3_USB2 in shmobile_defconfig commit 0cd4f4f10245d1d9616e00245093f46acd198141 upstream. Enable PHY_RCAR_GEN3_USB2 in shmobile_defconfig so that boards based on RZ/G1C SoC design can use the corresponding driver. Signed-off-by: Biju Das Signed-off-by: Simon Horman Signed-off-by: Pavel Machek --- arch/arm/configs/shmobile_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/shmobile_defconfig b/arch/arm/configs/shmobile_defconfig index 4074631be927..b1dd30376621 100644 --- a/arch/arm/configs/shmobile_defconfig +++ b/arch/arm/configs/shmobile_defconfig @@ -204,6 +204,7 @@ CONFIG_PWM_RCAR=y CONFIG_PWM_RENESAS_TPU=y CONFIG_GENERIC_PHY=y CONFIG_PHY_RCAR_GEN2=y +CONFIG_PHY_RCAR_GEN3_USB2=y # CONFIG_DNOTIFY is not set CONFIG_MSDOS_FS=y CONFIG_VFAT_FS=y From 892137b203e06a7e5a68d24d33415f6b812e6a18 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 28 Aug 2019 09:48:29 +0100 Subject: [PATCH 0649/1149] ARM: shmobile: Enable USB [EO]HCI HCD PLATFORM support in shmobile_defconfig commit b266731b76d5c33c0f6d781c449e43ad9991fb70 upstream. The USB [EO]HCI controller on RZ/G1C SoC doesn't have PCI bridge like other R-Car Gen2 devices. So enable generic USB [EO]HCI HCD PLATFORM support in shmobile_defconfig. Signed-off-by: Biju Das Signed-off-by: Simon Horman Signed-off-by: Pavel Machek --- arch/arm/configs/shmobile_defconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/configs/shmobile_defconfig b/arch/arm/configs/shmobile_defconfig index b1dd30376621..6f5522fd961e 100644 --- a/arch/arm/configs/shmobile_defconfig +++ b/arch/arm/configs/shmobile_defconfig @@ -173,7 +173,9 @@ CONFIG_USB=y CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_RCAR=y CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_HCD_PLATFORM=y CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PLATFORM=y CONFIG_USB_R8A66597_HCD=y CONFIG_USB_RENESAS_USBHS=y CONFIG_USB_RCAR_PHY=y From 73ba05bde4820d79e9881157a788cf619af54b51 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 28 Aug 2019 09:48:30 +0100 Subject: [PATCH 0650/1149] ARM: dts: iwg23s-sbc: Enable USB Phy[01] commit e18cfb6e0418e099e42c9fb697dfba24096c90ca upstream. Enable USB phy[01] on iWave iwg23s sbc based on RZ/G1C SoC. Signed-off-by: Biju Das Signed-off-by: Simon Horman Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts | 32 +++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts index fea316d039e2..c164f26afe5d 100644 --- a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts +++ b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts @@ -81,6 +81,16 @@ groups = "scif1_data_b"; function = "scif1"; }; + + usb0_pins: usb0 { + groups = "usb0"; + function = "usb0"; + }; + + usb1_pins: usb1 { + groups = "usb1"; + function = "usb1"; + }; }; &qspi0 { @@ -110,3 +120,25 @@ status = "okay"; }; + +&usb2_phy0 { + status = "okay"; +}; + +&usb2_phy1 { + status = "okay"; +}; + +&usbphy0 { + pinctrl-0 = <&usb0_pins>; + pinctrl-names = "default"; + + status = "okay"; +}; + +&usbphy1 { + pinctrl-0 = <&usb1_pins>; + pinctrl-names = "default"; + + status = "okay"; +}; From 3c8f8adb23c16ecacaf327d2c8bf0567d23c23eb Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 28 Aug 2019 09:48:31 +0100 Subject: [PATCH 0651/1149] ARM: dts: iwg23s-sbc: Enable USB USB2.0 Host commit 034484c4a3c77113304c8b5e1b35a9fad048274e upstream. Enable USB2.0 host on the iwg23s sbc. Signed-off-by: Biju Das Signed-off-by: Simon Horman Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts index c164f26afe5d..5c20c4c108a6 100644 --- a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts +++ b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts @@ -44,6 +44,10 @@ }; }; +&ehci1 { + status = "okay"; +}; + &extal_clk { clock-frequency = <20000000>; }; @@ -61,6 +65,10 @@ }; }; +&ohci1 { + status = "okay"; +}; + &pfc { avb_pins: avb { groups = "avb_mdio", "avb_gmii_tx_rx"; From f5c38a5e3497395c241eca0ced83589468350df8 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 28 Aug 2019 09:48:32 +0100 Subject: [PATCH 0652/1149] dt-bindings: usb: renesas_usbhs: Add support for r8a7744 commit 77d3bf9391d40234cc764316e1d18aab6ad788d9 upstream. Document support for RZ/G1N (R8A7744) SoC. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Reviewed-by: Simon Horman Signed-off-by: Greg Kroah-Hartman Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/usb/renesas_usbhs.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/usb/renesas_usbhs.txt b/Documentation/devicetree/bindings/usb/renesas_usbhs.txt index 65af38c938f1..9fdfc0157923 100644 --- a/Documentation/devicetree/bindings/usb/renesas_usbhs.txt +++ b/Documentation/devicetree/bindings/usb/renesas_usbhs.txt @@ -4,6 +4,7 @@ Required properties: - compatible: Must contain one or more of the following: - "renesas,usbhs-r8a7743" for r8a7743 (RZ/G1M) compatible device + - "renesas,usbhs-r8a7744" for r8a7744 (RZ/G1N) compatible device - "renesas,usbhs-r8a7745" for r8a7745 (RZ/G1E) compatible device - "renesas,usbhs-r8a7790" for r8a7790 (R-Car H2) compatible device - "renesas,usbhs-r8a7791" for r8a7791 (R-Car M2-W) compatible device From 55fc6b5e9253899f395925023a2e55d2f95be3cc Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 28 Aug 2019 09:48:33 +0100 Subject: [PATCH 0653/1149] dt-bindings: usb: renesas_usbhs: Add support for r8a77470 commit 5f2c54e7153f2b30b7ee5c65ec5eb2b38a7b962d upstream. Document support for RZ/G1C (R8A77470) SoC. Signed-off-by: Biju Das Reviewed-by: Rob Herring Reviewed-by: Simon Horman Reviewed-by: Yoshihiro Shimoda Signed-off-by: Greg Kroah-Hartman Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/usb/renesas_usbhs.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/usb/renesas_usbhs.txt b/Documentation/devicetree/bindings/usb/renesas_usbhs.txt index 9fdfc0157923..5a26deea5b97 100644 --- a/Documentation/devicetree/bindings/usb/renesas_usbhs.txt +++ b/Documentation/devicetree/bindings/usb/renesas_usbhs.txt @@ -6,6 +6,7 @@ Required properties: - "renesas,usbhs-r8a7743" for r8a7743 (RZ/G1M) compatible device - "renesas,usbhs-r8a7744" for r8a7744 (RZ/G1N) compatible device - "renesas,usbhs-r8a7745" for r8a7745 (RZ/G1E) compatible device + - "renesas,usbhs-r8a77470" for r8a77470 (RZ/G1C) compatible device - "renesas,usbhs-r8a7790" for r8a7790 (R-Car H2) compatible device - "renesas,usbhs-r8a7791" for r8a7791 (R-Car M2-W) compatible device - "renesas,usbhs-r8a7794" for r8a7794 (R-Car E2) compatible device From 5eb24c147e58d4b32bf805e61aba010fb8949a99 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 28 Aug 2019 09:48:34 +0100 Subject: [PATCH 0654/1149] ARM: dts: r8a77470: Add HSUSB device nodes commit 307ca5cf4778b6bf0d2a025b0e4f653742214de8 upstream. Define the r8a77470 generic part of the HSUSB0/1 device nodes. Currently the renesas_usbhs driver doesn't handle multiple phys and we don't have a proper hardware to validate such driver changes. So for hsusb1 it is assumed that usbphy0 will be enabled by either channel0 host or device. In future, if any boards support hsusb1, we will need to add multiple phy support in the renesas_usbhs driver and override the board dts to enable the same. Signed-off-by: Biju Das Signed-off-by: Simon Horman Signed-off-by: Biju Das [Reworked clocks and power-domains properties. Removed resets properties] Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a77470.dtsi | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi index 36538c8bffd5..568f65072207 100644 --- a/arch/arm/boot/dts/r8a77470.dtsi +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -279,6 +279,22 @@ status = "disabled"; }; + hsusb0: hsusb@e6590000 { + compatible = "renesas,usbhs-r8a77470", + "renesas,rcar-gen2-usbhs"; + reg = <0 0xe6590000 0 0x100>; + interrupts = ; + clocks = <&mstp7_clks R8A77470_CLK_USBHS0>; + dmas = <&usb_dmac00 0>, <&usb_dmac00 1>, + <&usb_dmac10 0>, <&usb_dmac10 1>; + dma-names = "ch0", "ch1", "ch2", "ch3"; + renesas,buswait = <4>; + phys = <&usb0 1>; + phy-names = "usb"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + usbphy0: usb-phy@e6590100 { compatible = "renesas,usb-phy-r8a77470", "renesas,rcar-gen2-usb-phy"; @@ -296,6 +312,23 @@ }; }; + hsusb1: hsusb@e6598000 { + compatible = "renesas,usbhs-r8a77470", + "renesas,rcar-gen2-usbhs"; + reg = <0 0xe6598000 0 0x100>; + interrupts = ; + clocks = <&mstp7_clks R8A77470_CLK_USBHS1>; + dmas = <&usb_dmac01 0>, <&usb_dmac01 1>, + <&usb_dmac11 0>, <&usb_dmac11 1>; + dma-names = "ch0", "ch1", "ch2", "ch3"; + renesas,buswait = <4>; + /* We need to turn on usbphy0 to make usbphy1 to work */ + phys = <&usb1 1>; + phy-names = "usb"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + usbphy1: usb-phy@e6598100 { compatible = "renesas,usb-phy-r8a77470", "renesas,rcar-gen2-usb-phy"; From 7b0f2e14121f74f2bcc52fd7b6220c09e4bf87da Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 28 Aug 2019 09:48:35 +0100 Subject: [PATCH 0655/1149] ARM: dts: iwg23s-sbc: Enable HS-USB commit 0725a5478e3b7080666512e6889c94bc361e7b88 upstream. Enable HS-USB device for the iWave SBC based on RZ/G1C. Signed-off-by: Biju Das Signed-off-by: Simon Horman Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts index 5c20c4c108a6..273acc89e467 100644 --- a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts +++ b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts @@ -52,6 +52,10 @@ clock-frequency = <20000000>; }; +&hsusb0 { + status = "okay"; +}; + &i2c3 { pinctrl-0 = <&i2c3_pins>; pinctrl-names = "default"; From 2d85c707002916257a0c113698e72057f2f751c9 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Tue, 17 Sep 2019 22:19:24 +0900 Subject: [PATCH 0656/1149] CIP: Bump version suffix to -cip37 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index c09d11563095..cef31af38711 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip36 +-cip37 From 5253596c2e9bd0cd848c17cf246c4fa4dd465730 Mon Sep 17 00:00:00 2001 From: Chris Paterson Date: Tue, 17 Sep 2019 15:02:10 +0100 Subject: [PATCH 0657/1149] gitlab-ci: Increase test timeout to 60 minutes Due to the number of jobs we're running we're beginning to see a backlog of tests in the LAVA lab. Increasing the timeout to handle this delay. Signed-off-by: Chris Paterson Signed-off-by: Nobuhiro Iwamatsu --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6348d1c47f6e..55202f5e2ced 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -287,7 +287,7 @@ run_tests: when: always variables: GIT_STRATEGY: none - TEST_TIMEOUT: 30 + TEST_TIMEOUT: 60 script: - /opt/submit_tests.sh artifacts: From a5f1c421464f28d20677f92e5c810a533a538119 Mon Sep 17 00:00:00 2001 From: Chris Paterson Date: Wed, 18 Sep 2019 16:43:36 +0100 Subject: [PATCH 0658/1149] gitlab-ci: Always store job artifacts This means that we'll retain the Kernel configuration even if the build fails. Useful for debugging. Signed-off-by: Chris Paterson Signed-off-by: Nobuhiro Iwamatsu --- .gitlab-ci.yml | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 55202f5e2ced..3a927f07cb3f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -17,7 +17,7 @@ arm_hitachi_omap_defconfig: - /opt/build_kernel.sh artifacts: name: "$CI_JOB_NAME" - when: on_success + when: always paths: - output @@ -33,7 +33,7 @@ arm_moxa_mxc_defconfig: - /opt/build_kernel.sh artifacts: name: "$CI_JOB_NAME" - when: on_success + when: always paths: - output @@ -50,7 +50,7 @@ arm_renesas_shmobile_defconfig: - /opt/build_kernel.sh artifacts: name: "$CI_JOB_NAME" - when: on_success + when: always paths: - output @@ -66,7 +66,7 @@ arm_siemens_am335x-axm2_defconfig: - /opt/build_kernel.sh artifacts: name: "$CI_JOB_NAME" - when: on_success + when: always paths: - output @@ -82,7 +82,7 @@ arm_siemens_am335x-draco_defconfig: - /opt/build_kernel.sh artifacts: name: "$CI_JOB_NAME" - when: on_success + when: always paths: - output @@ -98,7 +98,7 @@ arm_siemens_am335x-dxr2_defconfig: - /opt/build_kernel.sh artifacts: name: "$CI_JOB_NAME" - when: on_success + when: always paths: - output @@ -114,7 +114,7 @@ arm_siemens_am335x-etamin_defconfig: - /opt/build_kernel.sh artifacts: name: "$CI_JOB_NAME" - when: on_success + when: always paths: - output @@ -130,7 +130,7 @@ arm_siemens_am57xx-pxm3.config: - /opt/build_kernel.sh artifacts: name: "$CI_JOB_NAME" - when: on_success + when: always paths: - output @@ -146,7 +146,7 @@ arm_siemens_dcu2.config: - /opt/build_kernel.sh artifacts: name: "$CI_JOB_NAME" - when: on_success + when: always paths: - output @@ -162,7 +162,7 @@ arm_siemens_imx6_defconfig: - /opt/build_kernel.sh artifacts: name: "$CI_JOB_NAME" - when: on_success + when: always paths: - output @@ -178,7 +178,7 @@ arm_toshiba_tegra_defconfig: - /opt/build_kernel.sh artifacts: name: "$CI_JOB_NAME" - when: on_success + when: always paths: - output @@ -194,7 +194,7 @@ arm_toshiba_zynq_defconfig: - /opt/build_kernel.sh artifacts: name: "$CI_JOB_NAME" - when: on_success + when: always paths: - output @@ -210,7 +210,7 @@ x86_plathome_obsvx1.config: - /opt/build_kernel.sh artifacts: name: "$CI_JOB_NAME" - when: on_success + when: always paths: - output @@ -226,7 +226,7 @@ x86_siemens_iot2000.config: - /opt/build_kernel.sh artifacts: name: "$CI_JOB_NAME" - when: on_success + when: always paths: - output @@ -242,7 +242,7 @@ x86_siemens_server_defconfig: - /opt/build_kernel.sh artifacts: name: "$CI_JOB_NAME" - when: on_success + when: always paths: - output @@ -258,7 +258,7 @@ x86_toshiba_defconfig: - /opt/build_kernel.sh artifacts: name: "$CI_JOB_NAME" - when: on_success + when: always paths: - output @@ -276,7 +276,7 @@ arm_shmobile_defconfig: - /opt/build_kernel.sh artifacts: name: "$CI_JOB_NAME" - when: on_success + when: always paths: - output @@ -292,5 +292,6 @@ run_tests: - /opt/submit_tests.sh artifacts: name: "$CI_JOB_NAME" + when: always paths: - output From acb88309d814515a289b08f2f1b9e5c10922df32 Mon Sep 17 00:00:00 2001 From: Chris Paterson Date: Wed, 18 Sep 2019 16:43:37 +0100 Subject: [PATCH 0659/1149] gitlab-ci: Run tests on RZ/G1C iwg23s platform LAVA device-type r8a77470-iwg23s-sbc. Signed-off-by: Chris Paterson Signed-off-by: Nobuhiro Iwamatsu --- .gitlab-ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3a927f07cb3f..e33099ea6594 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -44,8 +44,8 @@ arm_renesas_shmobile_defconfig: BUILD_ARCH: arm CONFIG: renesas_shmobile_defconfig CONFIG_LOC: cip-kernel-config - DEVICES: r8a7743-iwg20d-q7 r8a7745-iwg22d-sodimm - DTBS: r8a7743-iwg20d-q7-dbcm-ca.dtb r8a7745-iwg22d-sodimm-dbhd-ca.dtb + DEVICES: r8a7743-iwg20d-q7 r8a7745-iwg22d-sodimm r8a77470-iwg23s-sbc + DTBS: r8a7743-iwg20d-q7-dbcm-ca.dtb r8a7745-iwg22d-sodimm-dbhd-ca.dtb r8a77470-iwg23s-sbc.dtb script: - /opt/build_kernel.sh artifacts: @@ -270,8 +270,8 @@ arm_shmobile_defconfig: BUILD_ARCH: arm CONFIG: shmobile_defconfig CONFIG_LOC: intree - DEVICES: r8a7743-iwg20d-q7 r8a7745-iwg22d-sodimm - DTBS: r8a7743-iwg20d-q7-dbcm-ca.dtb r8a7745-iwg22d-sodimm-dbhd-ca.dtb + DEVICES: r8a7743-iwg20d-q7 r8a7745-iwg22d-sodimm r8a77470-iwg23s-sbc + DTBS: r8a7743-iwg20d-q7-dbcm-ca.dtb r8a7745-iwg22d-sodimm-dbhd-ca.dtb r8a77470-iwg23s-sbc.dtb script: - /opt/build_kernel.sh artifacts: From 83bce8ee46df26e7ad3129f6b824d47d9640a510 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Sat, 12 Oct 2019 05:32:59 +0900 Subject: [PATCH 0660/1149] CIP: Bump version suffix to -cip38 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index cef31af38711..a096d473b8fb 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip37 +-cip38 From 353d3971f04614b6c1a54b9d5ae1bb0d2b5b18ea Mon Sep 17 00:00:00 2001 From: Chris Paterson Date: Mon, 14 Oct 2019 08:49:06 +0100 Subject: [PATCH 0661/1149] gitlab-ci: Split tests into separate jobs This will allow tests to run as soon as the corresponding build job is complete. This will help spread the load on the test infrastructure and save time. Signed-off-by: Chris Paterson Signed-off-by: Nobuhiro Iwamatsu --- .gitlab-ci.yml | 62 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 41 insertions(+), 21 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e33099ea6594..ad8ec722b717 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,8 +4,10 @@ variables: DOCKER_DRIVER: overlay2 DOCKER_IMAGE_TAG: v2 -# Building -arm_hitachi_omap_defconfig: +############################### +# Standard CIP configurations # +############################### +build:arm_hitachi_omap_defconfig: stage: build image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG variables: @@ -21,7 +23,7 @@ arm_hitachi_omap_defconfig: paths: - output -arm_moxa_mxc_defconfig: +build:arm_moxa_mxc_defconfig: stage: build image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG variables: @@ -37,7 +39,7 @@ arm_moxa_mxc_defconfig: paths: - output -arm_renesas_shmobile_defconfig: +build:arm_renesas_shmobile_defconfig: stage: build image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG variables: @@ -54,7 +56,23 @@ arm_renesas_shmobile_defconfig: paths: - output -arm_siemens_am335x-axm2_defconfig: +test:arm_renesas_shmobile_defconfig: + stage: test + needs: ["build:arm_renesas_shmobile_defconfig"] + image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:test-$DOCKER_IMAGE_TAG + when: always + variables: + GIT_STRATEGY: none + TEST_TIMEOUT: 60 + script: + - /opt/submit_tests.sh + artifacts: + name: "$CI_JOB_NAME" + when: always + paths: + - output + +build:arm_siemens_am335x-axm2_defconfig: stage: build image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG variables: @@ -70,7 +88,7 @@ arm_siemens_am335x-axm2_defconfig: paths: - output -arm_siemens_am335x-draco_defconfig: +build:arm_siemens_am335x-draco_defconfig: stage: build image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG variables: @@ -86,7 +104,7 @@ arm_siemens_am335x-draco_defconfig: paths: - output -arm_siemens_am335x-dxr2_defconfig: +build:arm_siemens_am335x-dxr2_defconfig: stage: build image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG variables: @@ -102,7 +120,7 @@ arm_siemens_am335x-dxr2_defconfig: paths: - output -arm_siemens_am335x-etamin_defconfig: +build:arm_siemens_am335x-etamin_defconfig: stage: build image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG variables: @@ -118,7 +136,7 @@ arm_siemens_am335x-etamin_defconfig: paths: - output -arm_siemens_am57xx-pxm3.config: +build:arm_siemens_am57xx-pxm3.config: stage: build image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG variables: @@ -134,7 +152,7 @@ arm_siemens_am57xx-pxm3.config: paths: - output -arm_siemens_dcu2.config: +build:arm_siemens_dcu2.config: stage: build image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG variables: @@ -150,7 +168,7 @@ arm_siemens_dcu2.config: paths: - output -arm_siemens_imx6_defconfig: +build:arm_siemens_imx6_defconfig: stage: build image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG variables: @@ -166,7 +184,7 @@ arm_siemens_imx6_defconfig: paths: - output -arm_toshiba_tegra_defconfig: +build:arm_toshiba_tegra_defconfig: stage: build image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG variables: @@ -182,7 +200,7 @@ arm_toshiba_tegra_defconfig: paths: - output -arm_toshiba_zynq_defconfig: +build:arm_toshiba_zynq_defconfig: stage: build image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG variables: @@ -198,7 +216,7 @@ arm_toshiba_zynq_defconfig: paths: - output -x86_plathome_obsvx1.config: +build:x86_plathome_obsvx1.config: stage: build image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG variables: @@ -214,7 +232,7 @@ x86_plathome_obsvx1.config: paths: - output -x86_siemens_iot2000.config: +build:x86_siemens_iot2000.config: stage: build image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG variables: @@ -230,7 +248,7 @@ x86_siemens_iot2000.config: paths: - output -x86_siemens_server_defconfig: +build:x86_siemens_server_defconfig: stage: build image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG variables: @@ -246,7 +264,7 @@ x86_siemens_server_defconfig: paths: - output -x86_toshiba_defconfig: +build:x86_toshiba_defconfig: stage: build image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG variables: @@ -262,8 +280,10 @@ x86_toshiba_defconfig: paths: - output -# Extra build configurations -arm_shmobile_defconfig: +######################## +# Extra configurations # +######################## +build:arm_shmobile_defconfig: stage: build image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG variables: @@ -280,9 +300,9 @@ arm_shmobile_defconfig: paths: - output -# Testing -run_tests: +test:arm_shmobile_defconfig: stage: test + needs: ["build:arm_shmobile_defconfig"] image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:test-$DOCKER_IMAGE_TAG when: always variables: From 379389a6af6f41dc991ccb499eee569c2b178150 Mon Sep 17 00:00:00 2001 From: Chris Paterson Date: Mon, 14 Oct 2019 08:49:10 +0100 Subject: [PATCH 0662/1149] gitlab-ci: Remove unofficial build configurations We should concentrate our testing on the offical configurations. We're essentially testing shmobile_defconfig anyway. Signed-off-by: Chris Paterson Signed-off-by: Nobuhiro Iwamatsu --- .gitlab-ci.yml | 36 ------------------------------------ 1 file changed, 36 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ad8ec722b717..86ba8f31aafb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -279,39 +279,3 @@ build:x86_toshiba_defconfig: when: always paths: - output - -######################## -# Extra configurations # -######################## -build:arm_shmobile_defconfig: - stage: build - image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG - variables: - BUILD_ARCH: arm - CONFIG: shmobile_defconfig - CONFIG_LOC: intree - DEVICES: r8a7743-iwg20d-q7 r8a7745-iwg22d-sodimm r8a77470-iwg23s-sbc - DTBS: r8a7743-iwg20d-q7-dbcm-ca.dtb r8a7745-iwg22d-sodimm-dbhd-ca.dtb r8a77470-iwg23s-sbc.dtb - script: - - /opt/build_kernel.sh - artifacts: - name: "$CI_JOB_NAME" - when: always - paths: - - output - -test:arm_shmobile_defconfig: - stage: test - needs: ["build:arm_shmobile_defconfig"] - image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:test-$DOCKER_IMAGE_TAG - when: always - variables: - GIT_STRATEGY: none - TEST_TIMEOUT: 60 - script: - - /opt/submit_tests.sh - artifacts: - name: "$CI_JOB_NAME" - when: always - paths: - - output From 0ccf8b03656e4dd976a53e49a85c2060fc5bbdf0 Mon Sep 17 00:00:00 2001 From: Chris Paterson Date: Mon, 14 Oct 2019 08:49:11 +0100 Subject: [PATCH 0663/1149] gitlab-ci: Remove test timeout Setting a relevant test timeout is hard as we've no idea how many other test jobs are running. We have another two timeouts already: 1) The CI job timeut setting in the GitLab runner 2) The LAVA test job timeout Signed-off-by: Chris Paterson Signed-off-by: Nobuhiro Iwamatsu --- .gitlab-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 86ba8f31aafb..bbcb22168e7a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -63,7 +63,6 @@ test:arm_renesas_shmobile_defconfig: when: always variables: GIT_STRATEGY: none - TEST_TIMEOUT: 60 script: - /opt/submit_tests.sh artifacts: From 40f8b87413b972f4939beb9387e7f7883cff8f39 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Sat, 9 Nov 2019 06:42:52 +0900 Subject: [PATCH 0664/1149] CIP: Bump version suffix to -cip39 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index a096d473b8fb..e52c61d2f28b 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip38 +-cip39 From 3e99f0ef379a007cefd73a36ff30aad579f01f01 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 14 Nov 2019 13:24:17 +0000 Subject: [PATCH 0665/1149] ARM: shmobile: Document RZ/G1N SoC DT binding commit cfb9f93437eb6663ca99e85c47bb3656ccfe59c5 upstream. Document the RZ/G1N (r8a7744) SoC. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/arm/shmobile.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt index 423575a06fed..52ee47b28046 100644 --- a/Documentation/devicetree/bindings/arm/shmobile.txt +++ b/Documentation/devicetree/bindings/arm/shmobile.txt @@ -15,6 +15,8 @@ SoCs: compatible = "renesas,r8a7740" - RZ/G1M (R8A77430) compatible = "renesas,r8a7743" + - RZ/G1N (R8A77440) + compatible = "renesas,r8a7744" - RZ/G1E (R8A77450) compatible = "renesas,r8a7745" - RZ/G1C (R8A77470) From c91bcbe609254c34d4a10ce3977692469da9c7ba Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 14 Nov 2019 13:24:18 +0000 Subject: [PATCH 0666/1149] dt-bindings: reset: rcar-rst: Document r8a7744 reset module commit f1ae799039bfd3fcc046041714eb0ac227505d0f upstream. Document bindings for the RZ/G1N (R8A7744) reset module. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Reviewed-by: Rob Herring Signed-off-by: Simon Horman Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/reset/renesas,rst.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/reset/renesas,rst.txt b/Documentation/devicetree/bindings/reset/renesas,rst.txt index fb5f68e1d99c..270f54b5c6cd 100644 --- a/Documentation/devicetree/bindings/reset/renesas,rst.txt +++ b/Documentation/devicetree/bindings/reset/renesas,rst.txt @@ -7,6 +7,7 @@ Required properties: - "renesas,-rst" for R-Car Gen2 and RZ/G Examples with soctypes are: - "renesas,r8a7743-rst" (RZ/G1M) + - "renesas,r8a7744-rst" (RZ/G1N) - "renesas,r8a7745-rst" (RZ/G1E) - "renesas,r8a77470-rst" (RZ/G1C) - "renesas,r8a7790-rst" (R-Car H2) From 6df08e40855e8233e8a7dd3302496fb430662b0b Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 14 Nov 2019 13:24:19 +0000 Subject: [PATCH 0667/1149] soc: renesas: rcar-rst: Add support for RZ/G1N commit 547276c6799913898550a9c4806310d590a3cb9e upstream. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Pavel Machek --- drivers/soc/renesas/rcar-rst.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/soc/renesas/rcar-rst.c b/drivers/soc/renesas/rcar-rst.c index caaa0299fc79..8eaf736b2b86 100644 --- a/drivers/soc/renesas/rcar-rst.c +++ b/drivers/soc/renesas/rcar-rst.c @@ -33,6 +33,7 @@ static const struct rst_config rcar_rst_gen2 __initconst = { static const struct of_device_id rcar_rst_matches[] __initconst = { /* RZ/G is handled like R-Car Gen2 */ { .compatible = "renesas,r8a7743-rst", .data = &rcar_rst_gen2 }, + { .compatible = "renesas,r8a7744-rst", .data = &rcar_rst_gen2 }, { .compatible = "renesas,r8a7745-rst", .data = &rcar_rst_gen2 }, { .compatible = "renesas,r8a77470-rst", .data = &rcar_rst_gen2 }, /* R-Car Gen2 */ From 45a3befa6b668914046546de85fae1531ad700fb Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 14 Nov 2019 13:24:20 +0000 Subject: [PATCH 0668/1149] ARM: shmobile: r8a7744: Add clock index macros for DT sources Add macros usable by device tree sources to reference r8a7744 clocks by index. Unfortunately there is nothing that we can backport from mainline for this, as the architecture of the clock driver has changed quite dramatically over time. Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- include/dt-bindings/clock/r8a7744-clock.h | 166 ++++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 include/dt-bindings/clock/r8a7744-clock.h diff --git a/include/dt-bindings/clock/r8a7744-clock.h b/include/dt-bindings/clock/r8a7744-clock.h new file mode 100644 index 000000000000..c83499ce3d12 --- /dev/null +++ b/include/dt-bindings/clock/r8a7744-clock.h @@ -0,0 +1,166 @@ +/* + * Copyright (C) 2019 Renesas Electronics Corp. + * Copyright 2013 Ideas On Board SPRL + * + * 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. + */ + +#ifndef __DT_BINDINGS_CLOCK_R8A7744_H__ +#define __DT_BINDINGS_CLOCK_R8A7744_H__ + +/* CPG */ +#define R8A7744_CLK_MAIN 0 +#define R8A7744_CLK_PLL0 1 +#define R8A7744_CLK_PLL1 2 +#define R8A7744_CLK_PLL3 3 +#define R8A7744_CLK_LB 4 +#define R8A7744_CLK_QSPI 5 +#define R8A7744_CLK_SDH 6 +#define R8A7744_CLK_SD0 7 +#define R8A7744_CLK_Z 8 +#define R8A7744_CLK_RCAN 9 + +/* MSTP0 */ +#define R8A7744_CLK_MSIOF0 0 + +/* MSTP1 */ +#define R8A7744_CLK_VCP0 1 +#define R8A7744_CLK_VPC0 3 +#define R8A7744_CLK_ADG 6 +#define R8A7744_CLK_TSIF0 8 +#define R8A7744_CLK_TMU1 11 +#define R8A7744_CLK_3DG 12 +#define R8A7744_CLK_2DDMAC 15 +#define R8A7744_CLK_FDP1_1 18 +#define R8A7744_CLK_FDP1_0 19 +#define R8A7744_CLK_TMU3 21 +#define R8A7744_CLK_TMU2 22 +#define R8A7744_CLK_CMT0 24 +#define R8A7744_CLK_TMU0 25 +#define R8A7744_CLK_VSP1_DU1 27 +#define R8A7744_CLK_VSP1_DU0 28 +#define R8A7744_CLK_VSP1_S 31 + +/* MSTP2 */ +#define R8A7744_CLK_SCIFA2 2 +#define R8A7744_CLK_SCIFA1 3 +#define R8A7744_CLK_SCIFA0 4 +#define R8A7744_CLK_MSIOF2 5 +#define R8A7744_CLK_SCIFB0 6 +#define R8A7744_CLK_SCIFB1 7 +#define R8A7744_CLK_MSIOF1 8 +#define R8A7744_CLK_SCIFB2 16 +#define R8A7744_CLK_SYS_DMAC1 18 +#define R8A7744_CLK_SYS_DMAC0 19 + +/* MSTP3 */ +#define R8A7744_CLK_TPU0 4 +#define R8A7744_CLK_SDHI2 11 +#define R8A7744_CLK_SDHI1 12 +#define R8A7744_CLK_SDHI0 14 +#define R8A7744_CLK_MMCIF0 15 +#define R8A7744_CLK_IIC0 18 +#define R8A7744_CLK_PCIEC 19 +#define R8A7744_CLK_IIC1 23 +#define R8A7744_CLK_SSUSB 28 +#define R8A7744_CLK_CMT1 29 +#define R8A7744_CLK_USBDMAC0 30 +#define R8A7744_CLK_USBDMAC1 31 + +/* MSTP4 */ +#define R8A7744_CLK_RWDT 2 +#define R8A7744_CLK_USB_DDM 6 +#define R8A7744_CLK_IRQC 7 +#define R8A7744_CLK_INTC_SYS 8 + +/* MSTP5 */ +#define R8A7744_CLK_AUDIO_DMAC1 1 +#define R8A7744_CLK_AUDIO_DMAC0 2 +#define R8A7744_CLK_THERMAL 22 +#define R8A7744_CLK_PWM 23 +#define R8A7744_CLK_BOOT_ROM 26 + +/* MSTP7 */ +#define R8A7744_CLK_USB_EHCI 3 +#define R8A7744_CLK_HSUSB 4 +#define R8A7744_CLK_HSCIF2 13 +#define R8A7744_CLK_SCIF5 14 +#define R8A7744_CLK_SCIF4 15 +#define R8A7744_CLK_HSCIF1 16 +#define R8A7744_CLK_HSCIF0 17 +#define R8A7744_CLK_SCIF3 18 +#define R8A7744_CLK_SCIF2 19 +#define R8A7744_CLK_SCIF1 20 +#define R8A7744_CLK_SCIF0 21 +#define R8A7744_CLK_DU1 23 +#define R8A7744_CLK_DU0 24 +#define R8A7744_CLK_LVDS0 26 + +/* MSTP8 */ +#define R8A7744_CLK_IPMMU_SGX 0 +#define R8A7744_CLK_VIN2 9 +#define R8A7744_CLK_VIN1 10 +#define R8A7744_CLK_VIN0 11 +#define R8A7744_CLK_ETHERAVB 12 +#define R8A7744_CLK_ETHER 13 +#define R8A7744_CLK_SATA1 14 +#define R8A7744_CLK_SATA0 15 +#define R8A7744_CLK_DCU 30 + +/* MSTP9 */ +#define R8A7744_CLK_GPIO7 4 +#define R8A7744_CLK_GPIO6 5 +#define R8A7744_CLK_GPIO5 7 +#define R8A7744_CLK_GPIO4 8 +#define R8A7744_CLK_GPIO3 9 +#define R8A7744_CLK_GPIO2 10 +#define R8A7744_CLK_GPIO1 11 +#define R8A7744_CLK_GPIO0 12 +#define R8A7744_CLK_RCAN1 15 +#define R8A7744_CLK_RCAN0 16 +#define R8A7744_CLK_QSPI_MOD 17 +#define R8A7744_CLK_I2C5 25 +#define R8A7744_CLK_IICDVFS 26 +#define R8A7744_CLK_I2C4 27 +#define R8A7744_CLK_I2C3 28 +#define R8A7744_CLK_I2C2 29 +#define R8A7744_CLK_I2C1 30 +#define R8A7744_CLK_I2C0 31 + +/* MSTP10 */ +#define R8A7744_CLK_SSI_ALL 5 +#define R8A7744_CLK_SSI9 6 +#define R8A7744_CLK_SSI8 7 +#define R8A7744_CLK_SSI7 8 +#define R8A7744_CLK_SSI6 9 +#define R8A7744_CLK_SSI5 10 +#define R8A7744_CLK_SSI4 11 +#define R8A7744_CLK_SSI3 12 +#define R8A7744_CLK_SSI2 13 +#define R8A7744_CLK_SSI1 14 +#define R8A7744_CLK_SSI0 15 +#define R8A7744_CLK_SCU_ALL 17 +#define R8A7744_CLK_SCU_DVC1 18 +#define R8A7744_CLK_SCU_DVC0 19 +#define R8A7744_CLK_SCU_CTU1_MIX1 20 +#define R8A7744_CLK_SCU_CTU0_MIX0 21 +#define R8A7744_CLK_SCU_SRC9 22 +#define R8A7744_CLK_SCU_SRC8 23 +#define R8A7744_CLK_SCU_SRC7 24 +#define R8A7744_CLK_SCU_SRC6 25 +#define R8A7744_CLK_SCU_SRC5 26 +#define R8A7744_CLK_SCU_SRC4 27 +#define R8A7744_CLK_SCU_SRC3 28 +#define R8A7744_CLK_SCU_SRC2 29 +#define R8A7744_CLK_SCU_SRC1 30 +#define R8A7744_CLK_SCU_SRC0 31 + +/* MSTP11 */ +#define R8A7744_CLK_SCIFA3 6 +#define R8A7744_CLK_SCIFA4 7 +#define R8A7744_CLK_SCIFA5 8 + +#endif /* __DT_BINDINGS_CLOCK_R8A7744_H__ */ From 1dd88c6d82f5727e72670043239a9a8a84deebc1 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 14 Nov 2019 13:24:21 +0000 Subject: [PATCH 0669/1149] clk: shmobile: Compile clk-rcar-gen2.c when using the r8a7744 This patch makes sure clk-rcar-gen2,c gets compiled when CONFIG_ARCH_R8A7744 is selected, similarly to what done by commit: 7bac4ad3e40f ("CIP: Build essential clock driver for Renesas RZ/G1 platforms") Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/clk/shmobile/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/clk/shmobile/Makefile b/drivers/clk/shmobile/Makefile index 2412eb9d7190..6badac598707 100644 --- a/drivers/clk/shmobile/Makefile +++ b/drivers/clk/shmobile/Makefile @@ -3,6 +3,7 @@ obj-$(CONFIG_ARCH_R7S72100) += clk-rz.o obj-$(CONFIG_ARCH_R8A73A4) += clk-r8a73a4.o obj-$(CONFIG_ARCH_R8A7740) += clk-r8a7740.o obj-$(CONFIG_ARCH_R8A7743) += clk-rcar-gen2.o +obj-$(CONFIG_ARCH_R8A7744) += clk-rcar-gen2.o obj-$(CONFIG_ARCH_R8A7745) += clk-rcar-gen2.o obj-$(CONFIG_ARCH_R8A77470) += clk-rcar-gen2.o obj-$(CONFIG_ARCH_R8A7778) += clk-r8a7778.o From 917218d377bc4bedffa561c3242665936ffde3e0 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 14 Nov 2019 13:24:22 +0000 Subject: [PATCH 0670/1149] ARM: shmobile: r8a7744: Basic SoC support commit bc8871536246e489407a7114a597c0a2a72de895 upstream. Add minimal support for the RZ/G1N (R8A7744) SoC. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Biju Das [ removed compatible string renesas,r8a7744-cpg-mssr ] Signed-off-by: Pavel Machek --- arch/arm/mach-shmobile/Kconfig | 5 +++++ arch/arm/mach-shmobile/pm-rcar-gen2.c | 2 ++ arch/arm/mach-shmobile/setup-rcar-gen2.c | 1 + 3 files changed, 8 insertions(+) diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index 31549b7c7b24..79b66a1ce96b 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig @@ -68,6 +68,11 @@ config ARCH_R8A7743 bool "RZ/G1M (R8A77430)" select ARCH_RCAR_GEN2 +config ARCH_R8A7744 + bool "RZ/G1N (R8A77440)" + select ARCH_RCAR_GEN2 + select ARM_ERRATA_798181 if SMP + config ARCH_R8A7745 bool "RZ/G1E (R8A77450)" select ARCH_RCAR_GEN2 diff --git a/arch/arm/mach-shmobile/pm-rcar-gen2.c b/arch/arm/mach-shmobile/pm-rcar-gen2.c index 419575e83205..dd1c9e08f3ea 100644 --- a/arch/arm/mach-shmobile/pm-rcar-gen2.c +++ b/arch/arm/mach-shmobile/pm-rcar-gen2.c @@ -99,6 +99,8 @@ void __init rcar_gen2_pm_init(void) syscier = 0x00111003; else if (of_machine_is_compatible("renesas,r8a7743")) syscier = 0x00101003; + else if (of_machine_is_compatible("renesas,r8a7744")) + syscier = 0x00101003; else if (of_machine_is_compatible("renesas,r8a7745")) syscier = 0x00300060; else if (of_machine_is_compatible("renesas,r8a77470")) diff --git a/arch/arm/mach-shmobile/setup-rcar-gen2.c b/arch/arm/mach-shmobile/setup-rcar-gen2.c index 6e0c0ce1c8a6..50c57c8c4f40 100644 --- a/arch/arm/mach-shmobile/setup-rcar-gen2.c +++ b/arch/arm/mach-shmobile/setup-rcar-gen2.c @@ -208,6 +208,7 @@ MACHINE_END static const char * const rz_g1_boards_compat_dt[] __initconst = { "renesas,r8a7743", + "renesas,r8a7744", "renesas,r8a7745", "renesas,r8a77470", NULL, From 2578f8bfc7c783be28fd5f06fc1addc3d6e3a33c Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 14 Nov 2019 13:24:23 +0000 Subject: [PATCH 0671/1149] clk: shmobile: Document r8a7744 CPG clock support Document r8a7744 CPG clock support. The clock driver architecture has changed quite dramatically over time, there is nothing we can backport from mainline for this, hence the new patch. Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- .../devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt index ba321bc8e559..631cd38792af 100644 --- a/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt +++ b/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt @@ -9,6 +9,7 @@ Required Properties: - compatible: Must be one of - "renesas,r8a7743-cpg-clocks" for the r8a7743 CPG + - "renesas,r8a7744-cpg-clocks" for the r8a7744 CPG - "renesas,r8a7745-cpg-clocks" for the r8a7745 CPG - "renesas,r8a77470-cpg-clocks" for the r8a77470 CPG - "renesas,r8a7790-cpg-clocks" for the r8a7790 CPG From f8f05f8d8d8c5454e4a9c7711bbf69397a97d720 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 14 Nov 2019 13:24:24 +0000 Subject: [PATCH 0672/1149] clk: shmobile: Document r8a7744 MSTP clock support Document r8a7744 MSTP clock support. The clock driver architecture has changed quite dramatically over time, there is nothing we can backport from mainline for this, hence the new patch. Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- .../devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt index a9d2e65659bd..1f64680fb108 100644 --- a/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt +++ b/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt @@ -14,6 +14,7 @@ Required Properties: - "renesas,r8a73a4-mstp-clocks" for R8A73A4 (R-Mobile APE6) MSTP gate clocks - "renesas,r8a7740-mstp-clocks" for R8A7740 (R-Mobile A1) MSTP gate clocks - "renesas,r8a7743-mstp-clocks" for R8A7743 (RZ/G1M) MSTP gate clocks + - "renesas,r8a7744-mstp-clocks" for R8A7744 (RZ/G1N) MSTP gate clocks - "renesas,r8a7745-mstp-clocks" for R8A7745 (RZ/G1E) MSTP gate clocks - "renesas,r8a77470-mstp-clocks" for R8A77470 (RZ/G1C) MSTP gate clocks - "renesas,r8a7778-mstp-clocks" for R8A7778 (R-Car M1) MSTP gate clocks From 2d559c30d12e2956331b9adcdb005938124f8fc2 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 14 Nov 2019 13:24:25 +0000 Subject: [PATCH 0673/1149] clk: shmobile: Document r8a7744 CPG DIV6 clock support Document r8a7744 CPG DIV6 clock support. The clock driver architecture has changed quite dramatically over time, there is nothing we can backport from mainline for this, hence the new patch. Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- .../devicetree/bindings/clock/renesas,cpg-div6-clocks.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt index 3a0584381faa..7b05affc93f1 100644 --- a/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt +++ b/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt @@ -10,6 +10,7 @@ Required Properties: - "renesas,r8a73a4-div6-clock" for R8A73A4 (R-Mobile APE6) DIV6 clocks - "renesas,r8a7740-div6-clock" for R8A7740 (R-Mobile A1) DIV6 clocks - "renesas,r8a7743-div6-clock" for R8A7743 (RZ/G1M) DIV6 clocks + - "renesas,r8a7744-div6-clock" for R8A7744 (RZ/G1N) DIV6 clocks - "renesas,r8a7745-div6-clock" for R8A7745 (RZ/G1E) DIV6 clocks - "renesas,r8a77470-div6-clock" for R8A77470 (RZ/G1C) DIV6 clocks - "renesas,r8a7790-div6-clock" for R8A7790 (R-Car H2) DIV6 clocks From 9b348842ae80f58fece7189b9109370e93ff8ba7 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 14 Nov 2019 13:24:26 +0000 Subject: [PATCH 0674/1149] ARM: multi_v7_defconfig: Enable r8a7744 SoC commit 4f743344ddedca8edb440b3fb8e67ba6e292b4f6 upstream. Enable recently added r8a7744 (RZ/G1N) SoC. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman Signed-off-by: Pavel Machek --- arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig index a3ba031eaa97..f969bb231cf6 100644 --- a/arch/arm/configs/multi_v7_defconfig +++ b/arch/arm/configs/multi_v7_defconfig @@ -81,6 +81,7 @@ CONFIG_ARCH_R7S72100=y CONFIG_ARCH_R8A73A4=y CONFIG_ARCH_R8A7740=y CONFIG_ARCH_R8A7743=y +CONFIG_ARCH_R8A7744=y CONFIG_ARCH_R8A7745=y CONFIG_ARCH_R8A77470=y CONFIG_ARCH_R8A7778=y From bbdba5049ca423acf24f188e9fe231beca114f24 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 14 Nov 2019 13:24:27 +0000 Subject: [PATCH 0675/1149] ARM: shmobile: defconfig: Enable r8a7744 SoC commit c26eb6f34c9ea56ed795785ecb7938f008dfed1e upstream. Enable recently added r8a7744 (RZ/G1N) SoC. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman Signed-off-by: Pavel Machek --- arch/arm/configs/shmobile_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/shmobile_defconfig b/arch/arm/configs/shmobile_defconfig index 6f5522fd961e..9e48febd5956 100644 --- a/arch/arm/configs/shmobile_defconfig +++ b/arch/arm/configs/shmobile_defconfig @@ -15,6 +15,7 @@ CONFIG_ARCH_R7S72100=y CONFIG_ARCH_R8A73A4=y CONFIG_ARCH_R8A7740=y CONFIG_ARCH_R8A7743=y +CONFIG_ARCH_R8A7744=y CONFIG_ARCH_R8A7745=y CONFIG_ARCH_R8A77470=y CONFIG_ARCH_R8A7778=y From 2049fc70f231f1ea1d60f7fb46ee1cb0d992e673 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 14 Nov 2019 13:24:28 +0000 Subject: [PATCH 0676/1149] ARM: debug-ll: Add support for r8a7744 commit abf3bf537d298db18ad929ceb71c0353d6794f42 upstream. Enable low-level debugging support for RZ/G1N (R8A7744). RZ/G1N uses SCIF0 for the debug console. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman Signed-off-by: Biju Das [biju: Removed ARCH_R8A7792] Signed-off-by: Pavel Machek --- arch/arm/Kconfig.debug | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index e5c9e9357821..c4ac14985d9a 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -818,11 +818,12 @@ choice config DEBUG_RCAR_GEN2_SCIF0 bool "Kernel low-level debugging messages via SCIF0 on R-Car Gen2 and RZ/G1" - depends on ARCH_R8A7743 || ARCH_R8A7790 || ARCH_R8A7791 || ARCH_R8A7793 + depends on ARCH_R8A7743 || ARCH_R8A7744 || ARCH_R8A7790 || \ + ARCH_R8A7791 || ARCH_R8A7793 help Say Y here if you want kernel low-level debugging support - via SCIF0 on Renesas RZ/G1M (R8A7743), R-Car H2 (R8A7790), - M2-W (R8A7791), or M2-N (R8A7793). + via SCIF0 on Renesas RZ/G1M (R8A7743), RZ/G1N (R8A7744), + R-Car H2 (R8A7790), M2-W (R8A7791), or M2-N (R8A7793). config DEBUG_RCAR_GEN2_SCIF1 bool "Kernel low-level debugging messages via SCIF1 on R8A77470" From 9e83f95150e30004389a981c0e77878f5e20c0b9 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 14 Nov 2019 13:24:29 +0000 Subject: [PATCH 0677/1149] dt-bindings: pinctrl: sh-pfc: Document r8a7744 PFC support commit a6a7d2c2dc668fb19bc16b4cda397cb1831df54d upstream. Document PFC support for the RZ/G1N (R8A7744) SoC. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Simon Horman Signed-off-by: Geert Uytterhoeven Signed-off-by: Pavel Machek --- .../devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt index b2264d9b34c0..f2008d0e5fd2 100644 --- a/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt @@ -14,6 +14,7 @@ Required Properties: - "renesas,pfc-r8a73a4": for R8A73A4 (R-Mobile APE6) compatible pin-controller. - "renesas,pfc-r8a7740": for R8A7740 (R-Mobile A1) compatible pin-controller. - "renesas,pfc-r8a7743": for R8A7743 (RZ/G1M) compatible pin-controller. + - "renesas,pfc-r8a7744": for R8A7744 (RZ/G1N) compatible pin-controller. - "renesas,pfc-r8a7745": for R8A7745 (RZ/G1E) compatible pin-controller. - "renesas,pfc-r8a77470": for R8A77470 (RZ/G1C) compatible pin-controller. - "renesas,pfc-r8a7778": for R8A7778 (R-Mobile M1) compatible pin-controller. From 946b09248eaebb04e2245ccbd273b841d9a9937d Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 14 Nov 2019 13:24:30 +0000 Subject: [PATCH 0678/1149] pinctrl: sh-pfc: r8a7791: Add r8a7744 support commit d7097b97e91362ded242e5516f8d97b985f60941 upstream. Renesas RZ/G1N (R8A7744) is pin compatible with R-Car M2-W/N (R8A7791/3) and RZ/G1M. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Simon Horman Signed-off-by: Geert Uytterhoeven Signed-off-by: Pavel Machek --- drivers/pinctrl/sh-pfc/Kconfig | 5 +++++ drivers/pinctrl/sh-pfc/Makefile | 1 + drivers/pinctrl/sh-pfc/core.c | 6 ++++++ drivers/pinctrl/sh-pfc/core.h | 1 + drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 21 +++++++++++++++++++++ 5 files changed, 34 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/Kconfig b/drivers/pinctrl/sh-pfc/Kconfig index ab15d19dbff4..eef770b6acc6 100644 --- a/drivers/pinctrl/sh-pfc/Kconfig +++ b/drivers/pinctrl/sh-pfc/Kconfig @@ -40,6 +40,11 @@ config PINCTRL_PFC_R8A7743 depends on ARCH_R8A7743 select PINCTRL_SH_PFC +config PINCTRL_PFC_R8A7744 + def_bool y + depends on ARCH_R8A7744 + select PINCTRL_SH_PFC + config PINCTRL_PFC_R8A7745 def_bool y depends on ARCH_R8A7745 diff --git a/drivers/pinctrl/sh-pfc/Makefile b/drivers/pinctrl/sh-pfc/Makefile index e9ef2cc517eb..5310c07daaa2 100644 --- a/drivers/pinctrl/sh-pfc/Makefile +++ b/drivers/pinctrl/sh-pfc/Makefile @@ -7,6 +7,7 @@ obj-$(CONFIG_PINCTRL_PFC_EMEV2) += pfc-emev2.o obj-$(CONFIG_PINCTRL_PFC_R8A73A4) += pfc-r8a73a4.o obj-$(CONFIG_PINCTRL_PFC_R8A7740) += pfc-r8a7740.o obj-$(CONFIG_PINCTRL_PFC_R8A7743) += pfc-r8a7791.o +obj-$(CONFIG_PINCTRL_PFC_R8A7744) += pfc-r8a7791.o obj-$(CONFIG_PINCTRL_PFC_R8A7745) += pfc-r8a7794.o obj-$(CONFIG_PINCTRL_PFC_R8A77470) += pfc-r8a77470.o obj-$(CONFIG_PINCTRL_PFC_R8A7778) += pfc-r8a7778.o diff --git a/drivers/pinctrl/sh-pfc/core.c b/drivers/pinctrl/sh-pfc/core.c index c3a3283a3f30..6827a398ed0f 100644 --- a/drivers/pinctrl/sh-pfc/core.c +++ b/drivers/pinctrl/sh-pfc/core.c @@ -459,6 +459,12 @@ static const struct of_device_id sh_pfc_of_table[] = { .data = &r8a7743_pinmux_info, }, #endif +#ifdef CONFIG_PINCTRL_PFC_R8A7744 + { + .compatible = "renesas,pfc-r8a7744", + .data = &r8a7744_pinmux_info, + }, +#endif #ifdef CONFIG_PINCTRL_PFC_R8A7745 { .compatible = "renesas,pfc-r8a7745", diff --git a/drivers/pinctrl/sh-pfc/core.h b/drivers/pinctrl/sh-pfc/core.h index 37acc883c9bc..5675ecf3bc94 100644 --- a/drivers/pinctrl/sh-pfc/core.h +++ b/drivers/pinctrl/sh-pfc/core.h @@ -70,6 +70,7 @@ extern const struct sh_pfc_soc_info emev2_pinmux_info; extern const struct sh_pfc_soc_info r8a73a4_pinmux_info; extern const struct sh_pfc_soc_info r8a7740_pinmux_info; extern const struct sh_pfc_soc_info r8a7743_pinmux_info; +extern const struct sh_pfc_soc_info r8a7744_pinmux_info; extern const struct sh_pfc_soc_info r8a7745_pinmux_info; extern const struct sh_pfc_soc_info r8a77470_pinmux_info; extern const struct sh_pfc_soc_info r8a7778_pinmux_info; diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c index 4f971a9c762b..f8bbc70d3171 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c @@ -6623,6 +6623,27 @@ const struct sh_pfc_soc_info r8a7743_pinmux_info = { }; #endif +#ifdef CONFIG_PINCTRL_PFC_R8A7744 +const struct sh_pfc_soc_info r8a7744_pinmux_info = { + .name = "r8a77440_pfc", + .unlock_reg = 0xe6060000, /* PMMR */ + + .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, + + .pins = pinmux_pins, + .nr_pins = ARRAY_SIZE(pinmux_pins), + .groups = pinmux_groups.common, + .nr_groups = ARRAY_SIZE(pinmux_groups.common), + .functions = pinmux_functions.common, + .nr_functions = ARRAY_SIZE(pinmux_functions.common), + + .cfg_regs = pinmux_config_regs, + + .pinmux_data = pinmux_data, + .pinmux_data_size = ARRAY_SIZE(pinmux_data), +}; +#endif + #ifdef CONFIG_PINCTRL_PFC_R8A7791 const struct sh_pfc_soc_info r8a7791_pinmux_info = { .name = "r8a77910_pfc", From 037e54c62d732cc6a7816a382fe8dc5675e24ee5 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 14 Nov 2019 13:24:31 +0000 Subject: [PATCH 0679/1149] ARM: dts: iwg20d-q7-common: Move pciec node out of common dtsi commit e0a39511dafd7e302a974f5cbdfc9c8afffa98d8 upstream. PCIe is not populated by default on iWave RZ/G1N board. RZ/G1N board is almost identical to RZ/G1M. In order to reuse the common dtsi for both the boards, it is required to move pcie node from common dtsi to board specific dts. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman Signed-off-by: Pavel Machek --- arch/arm/boot/dts/iwg20d-q7-common.dtsi | 4 ---- arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dts | 4 ++++ arch/arm/boot/dts/r8a7743-iwg20d-q7.dts | 4 ++++ 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/arch/arm/boot/dts/iwg20d-q7-common.dtsi b/arch/arm/boot/dts/iwg20d-q7-common.dtsi index 6920e3f2d2bd..9abc25f5381c 100644 --- a/arch/arm/boot/dts/iwg20d-q7-common.dtsi +++ b/arch/arm/boot/dts/iwg20d-q7-common.dtsi @@ -163,10 +163,6 @@ clock-frequency = <100000000>; }; -&pciec { - status = "okay"; -}; - &pfc { can0_pins: can0 { groups = "can0_data_d"; diff --git a/arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dts b/arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dts index d90eb8464222..b912909f9148 100644 --- a/arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dts +++ b/arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dts @@ -17,3 +17,7 @@ model = "iW-RainboW-G20D-Q7 RZ/G1M based plus camera daughter board"; compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7743"; }; + +&pciec { + status = "okay"; +}; diff --git a/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts b/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts index 6aa6b7467704..bf9ed989c811 100644 --- a/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts +++ b/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts @@ -16,3 +16,7 @@ model = "iWave Systems RainboW-G20D-Qseven board based on RZ/G1M"; compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7743"; }; + +&pciec { + status = "okay"; +}; From 2c6c29b887d170c30f1379f2843cf6a05e96e6f9 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 14 Nov 2019 13:24:32 +0000 Subject: [PATCH 0680/1149] dt-bindings: serial: sh-sci: Document r8a7744 bindings commit 9e3eb4eabdb6f652ca8a99f58f3eccf29610839d upstream. RZ/G1N (R8A7744) SoC also has the R-Car gen2 compatible SCIF, SCIFA, SCIFB, and HSCIF ports, so document the SoC specific bindings. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Simon Horman Reviewed-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman Signed-off-by: Pavel Machek --- .../devicetree/bindings/serial/renesas,sci-serial.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt index 3772d4c34476..d2db8565d413 100644 --- a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt +++ b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt @@ -13,6 +13,10 @@ Required properties: - "renesas,scifa-r8a7743" for R8A7743 (RZ/G1M) SCIFA compatible UART. - "renesas,scifb-r8a7743" for R8A7743 (RZ/G1M) SCIFB compatible UART. - "renesas,hscif-r8a7743" for R8A7743 (RZ/G1M) HSCIF compatible UART. + - "renesas,scif-r8a7744" for R8A7744 (RZ/G1N) SCIF compatible UART. + - "renesas,scifa-r8a7744" for R8A7744 (RZ/G1N) SCIFA compatible UART. + - "renesas,scifb-r8a7744" for R8A7744 (RZ/G1N) SCIFB compatible UART. + - "renesas,hscif-r8a7744" for R8A7744 (RZ/G1N) HSCIF compatible UART. - "renesas,scif-r8a7745" for R8A7745 (RZ/G1E) SCIF compatible UART. - "renesas,scifa-r8a7745" for R8A7745 (RZ/G1E) SCIFA compatible UART. - "renesas,scifb-r8a7745" for R8A7745 (RZ/G1E) SCIFB compatible UART. From 8261fa6b643cc5bf67178d4512b3f1df1604709b Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 14 Nov 2019 13:24:33 +0000 Subject: [PATCH 0681/1149] ARM: dts: r8a7744: Initial SoC device tree commit d83010f87ab31861eacac1ffe1278f655a376268 upstream. Basic support for the RZ/G1N (R8A7744) SoC. Added placeholders to avoid compilation error with the common platform code. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Biju Das [ Reworked on clock, reset and power-domains property ] Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a7744.dtsi | 778 +++++++++++++++++++++++++++++++++ 1 file changed, 778 insertions(+) create mode 100644 arch/arm/boot/dts/r8a7744.dtsi diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi new file mode 100644 index 000000000000..23afef35d2be --- /dev/null +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -0,0 +1,778 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Device Tree Source for the r8a7744 SoC + * + * Copyright (C) 2018 Renesas Electronics Corp. + */ + +#include +#include +#include + +/ { + compatible = "renesas,r8a7744"; + #address-cells = <2>; + #size-cells = <2>; + + /* + * The external audio clocks are configured as 0 Hz fixed frequency + * clocks by default. + * Boards that provide audio clocks should override them. + */ + audio_clk_a: audio_clk_a { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <0>; + }; + + audio_clk_b: audio_clk_b { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <0>; + }; + + audio_clk_c: audio_clk_c { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <0>; + }; + + /* External CAN clock */ + can_clk: can { + compatible = "fixed-clock"; + #clock-cells = <0>; + /* This value must be overridden by the board. */ + clock-frequency = <0>; + }; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu0: cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a15"; + reg = <0>; + clock-frequency = <1500000000>; + clocks = <&cpg_clocks R8A7744_CLK_Z>; + clock-latency = <300000>; /* 300 us */ + power-domains = <&cpg_clocks>; + next-level-cache = <&L2_CA15>; + + /* kHz - uV - OPPs unknown yet */ + operating-points = <1500000 1000000>, + <1312500 1000000>, + <1125000 1000000>, + < 937500 1000000>, + < 750000 1000000>, + < 375000 1000000>; + }; + + L2_CA15: cache-controller-0 { + compatible = "cache"; + cache-unified; + cache-level = <2>; + power-domains = <&cpg_clocks>; + }; + }; + + /* External root clock */ + extal_clk: extal { + compatible = "fixed-clock"; + #clock-cells = <0>; + /* This value must be overridden by the board. */ + clock-frequency = <0>; + }; + + /* External PCIe clock - can be overridden by the board */ + pcie_bus_clk: pcie_bus { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <0>; + }; + + pmu { + compatible = "arm,cortex-a15-pmu"; + interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, + <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; + interrupt-affinity = <&cpu0>; + }; + + /* External SCIF clock */ + scif_clk: scif { + compatible = "fixed-clock"; + #clock-cells = <0>; + /* This value must be overridden by the board. */ + clock-frequency = <0>; + }; + + soc { + compatible = "simple-bus"; + interrupt-parent = <&gic>; + + #address-cells = <2>; + #size-cells = <2>; + ranges; + + gpio0: gpio@e6050000 { + reg = <0 0xe6050000 0 0x50>; + #gpio-cells = <2>; + #interrupt-cells = <2>; + interrupt-controller; + /* placeholder */ + }; + + gpio1: gpio@e6051000 { + reg = <0 0xe6051000 0 0x50>; + #gpio-cells = <2>; + /* placeholder */ + }; + + gpio2: gpio@e6052000 { + reg = <0 0xe6052000 0 0x50>; + #gpio-cells = <2>; + /* placeholder */ + }; + + gpio6: gpio@e6055400 { + reg = <0 0xe6055400 0 0x50>; + #gpio-cells = <2>; + /* placeholder */ + }; + + pfc: pin-controller@e6060000 { + compatible = "renesas,pfc-r8a7744"; + reg = <0 0xe6060000 0 0x250>; + }; + + rst: reset-controller@e6160000 { + compatible = "renesas,r8a7744-rst"; + reg = <0 0xe6160000 0 0x100>; + }; + + icram0: sram@e63a0000 { + compatible = "mmio-sram"; + reg = <0 0xe63a0000 0 0x12000>; + }; + + icram1: sram@e63c0000 { + compatible = "mmio-sram"; + reg = <0 0xe63c0000 0 0x1000>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0xe63c0000 0x1000>; + + smp-sram@0 { + compatible = "renesas,smp-sram"; + reg = <0 0x100>; + }; + }; + + icram2: sram@e6300000 { + compatible = "mmio-sram"; + reg = <0 0xe6300000 0 0x40000>; + }; + + i2c2: i2c@e6530000 { + #address-cells = <1>; + #size-cells = <0>; + reg = <0 0xe6530000 0 0x40>; + /* placeholder */ + }; + + i2c5: i2c@e6528000 { + /* doesn't need pinmux */ + #address-cells = <1>; + #size-cells = <0>; + reg = <0 0xe6528000 0 0x40>; + /* placeholder */ + }; + + hsusb: usb@e6590000 { + reg = <0 0xe6590000 0 0x100>; + /* placeholder */ + }; + + usbphy: usb-phy@e6590100 { + reg = <0 0xe6590100 0 0x100>; + /* placeholder */ + }; + + avb: ethernet@e6800000 { + reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>; + #address-cells = <1>; + #size-cells = <0>; + /* placeholder */ + }; + + scifb1: serial@e6c30000 { + reg = <0 0xe6c30000 0 0x100>; + /* placeholder */ + }; + + scif0: serial@e6e60000 { + compatible = "renesas,scif-r8a7744", + "renesas,rcar-gen2-scif", "renesas,scif"; + reg = <0 0xe6e60000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A7744_CLK_SCIF0>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scif1: serial@e6e68000 { + reg = <0 0xe6e68000 0 0x40>; + /* placeholder */ + }; + + hscif1: serial@e62c8000 { + reg = <0 0xe62c8000 0 0x60>; + /* placeholder */ + }; + + can0: can@e6e80000 { + reg = <0 0xe6e80000 0 0x1000>; + /* placeholder */ + }; + + can1: can@e6e88000 { + reg = <0 0xe6e88000 0 0x1000>; + /* placeholder */ + }; + + rcar_sound: sound@ec500000 { + reg = <0 0xec500000 0 0x1000>; + + rcar_sound,dvc { + dvc0: dvc-0 {}; + dvc1: dvc-1 {}; + }; + + rcar_sound,src { + src2: src-2 {}; + src3: src-3 {}; + }; + + rcar_sound,ssi { + ssi0: ssi-0 {}; + ssi1: ssi-1 {}; + }; + /* placeholder */ + }; + + pci0: pci@ee090000 { + reg = <0 0xee090000 0 0xc00>; + + bus-range = <0 0>; + #address-cells = <3>; + #size-cells = <2>; + #interrupt-cells = <1>; + /* placeholder */ + }; + + pci1: pci@ee0d0000 { + reg = <0 0xee0d0000 0 0xc00>; + + bus-range = <1 1>; + #address-cells = <3>; + #size-cells = <2>; + #interrupt-cells = <1>; + /* placeholder */ + }; + + sdhi1: sd@ee140000 { + reg = <0 0xee140000 0 0x100>; + /* placeholder */ + }; + + sdhi2: sd@ee160000 { + reg = <0 0xee160000 0 0x100>; + /* placeholder */ + }; + + gic: interrupt-controller@f1001000 { + compatible = "arm,gic-400"; + #interrupt-cells = <3>; + #address-cells = <0>; + interrupt-controller; + reg = <0 0xf1001000 0 0x1000>, <0 0xf1002000 0 0x2000>, + <0 0xf1004000 0 0x2000>, <0 0xf1006000 0 0x2000>; + interrupts = ; + clocks = <&mstp4_clks R8A7744_CLK_INTC_SYS>; + clock-names = "clk"; + power-domains = <&cpg_clocks>; + }; + + du: display@feb00000 { + reg = <0 0xfeb00000 0 0x40000>, + <0 0xfeb90000 0 0x1c>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + du_out_rgb: endpoint { + }; + }; + port@1 { + reg = <1>; + du_out_lvds0: endpoint { + }; + }; + }; + /* placeholder */ + }; + + clocks { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + /* Special CPG clocks */ + cpg_clocks: cpg_clocks@e6150000 { + compatible = "renesas,r8a7744-cpg-clocks", + "renesas,rcar-gen2-cpg-clocks"; + reg = <0 0xe6150000 0 0x1000>; + clocks = <&extal_clk &usb_extal_clk>; + #clock-cells = <1>; + clock-output-names = "main", "pll0", "pll1", + "pll3", "lb", "qspi", + "sdh", "sd0", "z", "rcan"; + #power-domain-cells = <0>; + }; + + /* Variable factor clocks */ + sd2_clk: sd2_clk@e6150078 { + compatible = "renesas,r8a7744-div6-clock", + "renesas,cpg-div6-clock"; + reg = <0 0xe6150078 0 4>; + clocks = <&pll1_div2_clk>; + #clock-cells = <0>; + clock-output-names = "sd2"; + }; + sd3_clk: sd3_clk@e615026c { + compatible = "renesas,r8a7744-div6-clock", + "renesas,cpg-div6-clock"; + reg = <0 0xe615026c 0 4>; + clocks = <&pll1_div2_clk>; + #clock-cells = <0>; + clock-output-names = "sd3"; + }; + mmc0_clk: mmc0_clk@e6150240 { + compatible = "renesas,r8a7744-div6-clock", + "renesas,cpg-div6-clock"; + reg = <0 0xe6150240 0 4>; + clocks = <&pll1_div2_clk>; + #clock-cells = <0>; + clock-output-names = "mmc0"; + }; + + /* Fixed factor clocks */ + pll1_div2_clk: pll1_div2_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7744_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; + clock-output-names = "pll1_div2"; + }; + zg_clk: zg_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7744_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <5>; + clock-mult = <1>; + clock-output-names = "zg"; + }; + zx_clk: zx_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7744_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <3>; + clock-mult = <1>; + clock-output-names = "zx"; + }; + zs_clk: zs_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7744_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <6>; + clock-mult = <1>; + clock-output-names = "zs"; + }; + hp_clk: hp_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7744_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <12>; + clock-mult = <1>; + clock-output-names = "hp"; + }; + b_clk: b_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7744_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <12>; + clock-mult = <1>; + clock-output-names = "b"; + }; + p_clk: p_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7744_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <24>; + clock-mult = <1>; + clock-output-names = "p"; + }; + cl_clk: cl_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7744_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <48>; + clock-mult = <1>; + clock-output-names = "cl"; + }; + m2_clk: m2_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7744_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <8>; + clock-mult = <1>; + clock-output-names = "m2"; + }; + rclk_clk: rclk_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7744_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <(48 * 1024)>; + clock-mult = <1>; + clock-output-names = "rclk"; + }; + oscclk_clk: oscclk_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7744_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <(12 * 1024)>; + clock-mult = <1>; + clock-output-names = "oscclk"; + }; + zb3_clk: zb3_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7744_CLK_PLL3>; + #clock-cells = <0>; + clock-div = <4>; + clock-mult = <1>; + clock-output-names = "zb3"; + }; + zb3d2_clk: zb3d2_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7744_CLK_PLL3>; + #clock-cells = <0>; + clock-div = <8>; + clock-mult = <1>; + clock-output-names = "zb3d2"; + }; + ddr_clk: ddr_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7744_CLK_PLL3>; + #clock-cells = <0>; + clock-div = <8>; + clock-mult = <1>; + clock-output-names = "ddr"; + }; + mp_clk: mp_clk { + compatible = "fixed-factor-clock"; + clocks = <&pll1_div2_clk>; + #clock-cells = <0>; + clock-div = <15>; + clock-mult = <1>; + clock-output-names = "mp"; + }; + cp_clk: cp_clk { + compatible = "fixed-factor-clock"; + clocks = <&extal_clk>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; + clock-output-names = "cp"; + }; + + /* Gate clocks */ + mstp0_clks: mstp0_clks@e6150130 { + compatible = "renesas,r8a7744-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150130 0 4>, <0 0xe6150030 0 4>; + clocks = <&mp_clk>; + #clock-cells = <1>; + clock-indices = ; + clock-output-names = "msiof0"; + }; + mstp1_clks: mstp1_clks@e6150134 { + compatible = "renesas,r8a7744-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>; + clocks = <&zs_clk>, <&zs_clk>, <&p_clk>, + <&zg_clk>, <&zs_clk>, <&zs_clk>, + <&zs_clk>, <&p_clk>, <&p_clk>, + <&rclk_clk>, <&cp_clk>, <&zs_clk>, + <&zs_clk>, <&zs_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7744_CLK_VCP0 R8A7744_CLK_VPC0 + R8A7744_CLK_TMU1 R8A7744_CLK_3DG + R8A7744_CLK_2DDMAC R8A7744_CLK_FDP1_1 + R8A7744_CLK_FDP1_0 R8A7744_CLK_TMU3 + R8A7744_CLK_TMU2 R8A7744_CLK_CMT0 + R8A7744_CLK_TMU0 R8A7744_CLK_VSP1_DU1 + R8A7744_CLK_VSP1_DU0 R8A7744_CLK_VSP1_S + >; + clock-output-names = + "vcp0", "vpc0", "tmu1", "3dg", + "2ddmac", "fdp1-1", "fdp1-0", "tmu3", + "tmu2", "cmt0", "tmu0", "vsp1-du1", + "vsp1-du0", "vsp1-sy"; + }; + mstp2_clks: mstp2_clks@e6150138 { + compatible = "renesas,r8a7744-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>; + clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>, + <&mp_clk>, <&mp_clk>, <&mp_clk>, + <&mp_clk>, <&mp_clk>, <&zs_clk>, + <&zs_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7744_CLK_SCIFA2 R8A7744_CLK_SCIFA1 + R8A7744_CLK_SCIFA0 R8A7744_CLK_MSIOF2 + R8A7744_CLK_SCIFB0 R8A7744_CLK_SCIFB1 + R8A7744_CLK_MSIOF1 R8A7744_CLK_SCIFB2 + R8A7744_CLK_SYS_DMAC1 + R8A7744_CLK_SYS_DMAC0 + >; + clock-output-names = + "scifa2", "scifa1", "scifa0", "msiof2", + "scifb0", "scifb1", "msiof1", "scifb2", + "sys-dmac1", "sys-dmac0"; + }; + mstp3_clks: mstp3_clks@e615013c { + compatible = "renesas,r8a7744-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe615013c 0 4>, <0 0xe6150048 0 4>; + clocks = <&cp_clk>, <&sd3_clk>, <&sd2_clk>, + <&cpg_clocks R8A7744_CLK_SD0>, + <&mmc0_clk>, <&hp_clk>, <&mp_clk>, + <&hp_clk>, <&mp_clk>, <&rclk_clk>, + <&hp_clk>, <&hp_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7744_CLK_TPU0 R8A7744_CLK_SDHI2 + R8A7744_CLK_SDHI1 R8A7744_CLK_SDHI0 + R8A7744_CLK_MMCIF0 R8A7744_CLK_IIC0 + R8A7744_CLK_PCIEC R8A7744_CLK_IIC1 + R8A7744_CLK_SSUSB R8A7744_CLK_CMT1 + R8A7744_CLK_USBDMAC0 + R8A7744_CLK_USBDMAC1 + >; + clock-output-names = + "tpu0", "sdhi3", "sdhi2", "sdhi0", + "mmcif0", "i2c7", "pciec", "i2c8", + "ssusb", "cmt1", "usbdmac0", + "usbdmac1"; + }; + mstp4_clks: mstp4_clks@e6150140 { + compatible = "renesas,r8a7744-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>; + clocks = <&rclk_clk>, <&cp_clk>, <&zs_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7744_CLK_RWDT R8A7744_CLK_IRQC + R8A7744_CLK_INTC_SYS + >; + clock-output-names = "rwdt", "irqc", "intc-sys"; + }; + mstp5_clks: mstp5_clks@e6150144 { + compatible = "renesas,r8a7744-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150144 0 4>, <0 0xe615003c 0 4>; + clocks = <&hp_clk>, <&hp_clk>, + <&extal_clk>, <&p_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7744_CLK_AUDIO_DMAC0 + R8A7744_CLK_AUDIO_DMAC1 + R8A7744_CLK_THERMAL R8A7744_CLK_PWM + >; + clock-output-names = "audmac0", "audmac1", + "thermal", "pwm"; + }; + mstp7_clks: mstp7_clks@e615014c { + compatible = "renesas,r8a7744-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>; + clocks = <&mp_clk>, <&hp_clk>, <&zs_clk>, + <&p_clk>, <&p_clk>, <&zs_clk>, + <&zs_clk>, <&p_clk>, <&p_clk>, + <&p_clk>, <&p_clk>, <&zx_clk>, + <&zx_clk>, <&zx_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7744_CLK_USB_EHCI R8A7744_CLK_HSUSB + R8A7744_CLK_HSCIF2 R8A7744_CLK_SCIF5 + R8A7744_CLK_SCIF4 R8A7744_CLK_HSCIF1 + R8A7744_CLK_HSCIF0 R8A7744_CLK_SCIF3 + R8A7744_CLK_SCIF2 R8A7744_CLK_SCIF1 + R8A7744_CLK_SCIF0 R8A7744_CLK_DU1 + R8A7744_CLK_DU0 R8A7744_CLK_LVDS0 + >; + clock-output-names = + "ehci", "hsusb", "hscif2", "scif5", + "scif4", "hscif1", "hscif0", "scif3", + "scif2", "scif1", "scif0", "du1", + "du0", "lvds0"; + }; + mstp8_clks: mstp8_clks@e6150990 { + compatible = "renesas,r8a7744-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>; + clocks = <&zx_clk>, <&zg_clk>, <&zg_clk>, + <&zg_clk>, <&hp_clk>, <&p_clk>, + <&zs_clk>, <&zs_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7744_CLK_IPMMU_SGX + R8A7744_CLK_VIN2 R8A7744_CLK_VIN1 + R8A7744_CLK_VIN0 R8A7744_CLK_ETHERAVB + R8A7744_CLK_ETHER R8A7744_CLK_SATA1 + R8A7744_CLK_SATA0 + >; + clock-output-names = + "ipmmu_sgx", "vin2", "vin1", "vin0", + "etheravb", "ether", "sata1", "sata0"; + }; + mstp9_clks: mstp9_clks@e6150994 { + compatible = "renesas,r8a7744-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150994 0 4>, <0 0xe61509a4 0 4>; + clocks = <&cp_clk>, <&cp_clk>, <&cp_clk>, + <&cp_clk>, <&cp_clk>, <&cp_clk>, + <&cp_clk>, <&cp_clk>, <&p_clk>, + <&p_clk>, + <&cpg_clocks R8A7744_CLK_QSPI>, + <&hp_clk>, <&cp_clk>, <&hp_clk>, + <&hp_clk>, <&hp_clk>, <&hp_clk>, + <&hp_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7744_CLK_GPIO7 R8A7744_CLK_GPIO6 + R8A7744_CLK_GPIO5 R8A7744_CLK_GPIO4 + R8A7744_CLK_GPIO3 R8A7744_CLK_GPIO2 + R8A7744_CLK_GPIO1 R8A7744_CLK_GPIO0 + R8A7744_CLK_RCAN1 R8A7744_CLK_RCAN0 + R8A7744_CLK_QSPI_MOD R8A7744_CLK_I2C5 + R8A7744_CLK_IICDVFS R8A7744_CLK_I2C4 + R8A7744_CLK_I2C3 R8A7744_CLK_I2C2 + R8A7744_CLK_I2C1 R8A7744_CLK_I2C0 + >; + clock-output-names = + "gpio7", "gpio6", "gpio5", "gpio4", + "gpio3", "gpio2", "gpio1", "gpio0", + "rcan1", "rcan0", "qspi_mod", "i2c5", + "i2c6", "i2c4", "i2c3", "i2c2", "i2c1", + "i2c0"; + }; + mstp10_clks: mstp10_clks@e6150998 { + compatible = "renesas,r8a7744-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150998 0 4>, <0 0xe61509a8 0 4>; + clocks = <&p_clk>, + <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, + <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, + <&p_clk>, <&p_clk>, + <&p_clk>, + <&mstp10_clks R8A7744_CLK_SCU_ALL>, + <&mstp10_clks R8A7744_CLK_SCU_ALL>, + <&mstp10_clks R8A7744_CLK_SCU_ALL>, + <&mstp10_clks R8A7744_CLK_SCU_ALL>, + <&mstp10_clks R8A7744_CLK_SCU_ALL>, + <&mstp10_clks R8A7744_CLK_SCU_ALL>, + <&mstp10_clks R8A7744_CLK_SCU_ALL>, + <&mstp10_clks R8A7744_CLK_SCU_ALL>, + <&mstp10_clks R8A7744_CLK_SCU_ALL>, + <&mstp10_clks R8A7744_CLK_SCU_ALL>, + <&mstp10_clks R8A7744_CLK_SCU_ALL>, + <&mstp10_clks R8A7744_CLK_SCU_ALL>, + <&mstp10_clks R8A7744_CLK_SCU_ALL>, + <&mstp10_clks R8A7744_CLK_SCU_ALL>; + + #clock-cells = <1>; + clock-indices = < + R8A7744_CLK_SSI_ALL + R8A7744_CLK_SSI9 R8A7744_CLK_SSI8 + R8A7744_CLK_SSI7 R8A7744_CLK_SSI6 + R8A7744_CLK_SSI5 R8A7744_CLK_SSI4 + R8A7744_CLK_SSI3 R8A7744_CLK_SSI2 + R8A7744_CLK_SSI1 R8A7744_CLK_SSI0 + R8A7744_CLK_SCU_ALL + R8A7744_CLK_SCU_DVC1 + R8A7744_CLK_SCU_DVC0 + R8A7744_CLK_SCU_CTU1_MIX1 + R8A7744_CLK_SCU_CTU0_MIX0 + R8A7744_CLK_SCU_SRC9 + R8A7744_CLK_SCU_SRC8 + R8A7744_CLK_SCU_SRC7 + R8A7744_CLK_SCU_SRC6 + R8A7744_CLK_SCU_SRC5 + R8A7744_CLK_SCU_SRC4 + R8A7744_CLK_SCU_SRC3 + R8A7744_CLK_SCU_SRC2 + R8A7744_CLK_SCU_SRC1 + R8A7744_CLK_SCU_SRC0 + >; + clock-output-names = + "ssi-all", + "ssi9", "ssi8", "ssi7", "ssi6", "ssi5", + "ssi4", "ssi3", "ssi2", "ssi1", "ssi0", + "scu-all", + "scu-dvc1", "scu-dvc0", + "scu-ctu1-mix1", "scu-ctu0-mix0", + "scu-src9", "scu-src8", "scu-src7", + "scu-src6", "scu-src5", "scu-src4", + "scu-src3", "scu-src2", "scu-src1", + "scu-src0"; + }; + mstp11_clks: mstp11_clks@e615099c { + compatible = "renesas,r8a7744-mstp-clocks", + "renesas,cpg-mstp-clocks"; + reg = <0 0xe615099c 0 4>, <0 0xe61509ac 0 4>; + clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7744_CLK_SCIFA3 R8A7744_CLK_SCIFA4 + R8A7744_CLK_SCIFA5 + >; + clock-output-names = "scifa3", "scifa4", + "scifa5"; + }; + }; + }; + + timer { + compatible = "arm,armv7-timer"; + interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, + <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, + <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, + <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>; + }; + + /* External USB clock - can be overridden by the board */ + usb_extal_clk: usb_extal { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <48000000>; + }; +}; From 757a0783db7213be7d69ec0afb01a5d6ad7b6602 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 14 Nov 2019 13:24:34 +0000 Subject: [PATCH 0682/1149] dt-bindings: arm: renesas: Document iWave RZ/G1N SOM commit 1deb430d291270f9d0067061a5dc7409819dfcfb upstream. Document the iW-RainboW-G20M-RZ/G1N Qseven device tree bindings, listing it as a supported system on module. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/arm/shmobile.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt index 52ee47b28046..5e22f4192b42 100644 --- a/Documentation/devicetree/bindings/arm/shmobile.txt +++ b/Documentation/devicetree/bindings/arm/shmobile.txt @@ -63,6 +63,8 @@ Boards: compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7743" - iWave Systems RZ/G1M Qseven System On Module (iW-RainboW-G20M-Qseven) compatible = "iwave,g20m", "renesas,r8a7743" + - iWave Systems RZ/G1N Qseven System On Module (iW-RainboW-G20M-Qseven) + compatible = "iwave,g20m", "renesas,r8a7744" - Koelsch (RTP0RC7791SEB00010S) compatible = "renesas,koelsch", "renesas,r8a7791" - Kyoto Microcomputer Co. KZM-A9-Dual From fb6dc8e2e0977157bea34f220e618f1238496630 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 14 Nov 2019 13:24:35 +0000 Subject: [PATCH 0683/1149] dt-bindings: arm: renesas: Document iW-RainboW-G20D-Qseven-RZG1N board commit ea456bf918e31a0f755c5c02963b4e10513fa82c upstream. Document the iW-RainboW-G20D-Qseven-RZG1N device tree bindings, listing it as a supported board. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Simon Horman Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/arm/shmobile.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt index 5e22f4192b42..26425a1e3bea 100644 --- a/Documentation/devicetree/bindings/arm/shmobile.txt +++ b/Documentation/devicetree/bindings/arm/shmobile.txt @@ -63,6 +63,8 @@ Boards: compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7743" - iWave Systems RZ/G1M Qseven System On Module (iW-RainboW-G20M-Qseven) compatible = "iwave,g20m", "renesas,r8a7743" + - iWave Systems RZ/G1N Qseven Development Platform (iW-RainboW-G20D-Qseven) + compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7744" - iWave Systems RZ/G1N Qseven System On Module (iW-RainboW-G20M-Qseven) compatible = "iwave,g20m", "renesas,r8a7744" - Koelsch (RTP0RC7791SEB00010S) From 4dffb1c1e79d2eb22860d1fad8f195d87b58091d Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 14 Nov 2019 13:24:36 +0000 Subject: [PATCH 0684/1149] ARM: dts: r8a7744-iwg20m: Add iWave RZ/G1N Qseven SOM commit 3c248aefe73b5586347dae74b0a8d40aea1018b3 upstream. Add support for iWave RZ/G1N Qseven System On Module. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a7744-iwg20m.dtsi | 31 +++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 arch/arm/boot/dts/r8a7744-iwg20m.dtsi diff --git a/arch/arm/boot/dts/r8a7744-iwg20m.dtsi b/arch/arm/boot/dts/r8a7744-iwg20m.dtsi new file mode 100644 index 000000000000..6166ae053060 --- /dev/null +++ b/arch/arm/boot/dts/r8a7744-iwg20m.dtsi @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Device Tree Source for the iWave RZ/G1N Qseven SOM + * + * Copyright (C) 2018 Renesas Electronics Corp. + */ + +#include "r8a7744.dtsi" +#include + +/ { + compatible = "iwave,g20m", "renesas,r8a7744"; + + memory@40000000 { + device_type = "memory"; + reg = <0 0x40000000 0 0x40000000>; + }; + + reg_3p3v: 3p3v { + compatible = "regulator-fixed"; + regulator-name = "3P3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-boot-on; + }; +}; + +&extal_clk { + clock-frequency = <20000000>; +}; From 20339ed2dbc24ec7fe3fbdfa1cca9efa5c23a335 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 14 Nov 2019 13:24:37 +0000 Subject: [PATCH 0685/1149] ARM: dts: r8a7744-iwg20d-q7: Add support for iWave G20D-Q7 board based on RZ/G1N commit 45c660ecdfd598eb93c46f5a95da6eb75008abb9 upstream. Add support for iWave RainboW-G20D-Qseven board based on RZ/G1N. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/r8a7744-iwg20d-q7.dts | 15 +++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 arch/arm/boot/dts/r8a7744-iwg20d-q7.dts diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 28fbcdbc9581..88c3f1273a7b 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -546,6 +546,7 @@ dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += \ r8a7740-armadillo800eva.dtb \ r8a7743-iwg20d-q7.dtb \ r8a7743-iwg20d-q7-dbcm-ca.dtb \ + r8a7744-iwg20d-q7.dtb \ r8a7745-iwg22d-sodimm.dtb \ r8a7745-iwg22d-sodimm-dbhd-ca.dtb \ r8a77470-iwg23s-sbc.dtb \ diff --git a/arch/arm/boot/dts/r8a7744-iwg20d-q7.dts b/arch/arm/boot/dts/r8a7744-iwg20d-q7.dts new file mode 100644 index 000000000000..1fdac528f274 --- /dev/null +++ b/arch/arm/boot/dts/r8a7744-iwg20d-q7.dts @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Device Tree Source for the iWave-RZ/G1N Qseven board + * + * Copyright (C) 2018 Renesas Electronics Corp. + */ + +/dts-v1/; +#include "r8a7744-iwg20m.dtsi" +#include "iwg20d-q7-common.dtsi" + +/ { + model = "iWave Systems RainboW-G20D-Qseven board based on RZ/G1N"; + compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7744"; +}; From 3465d2d3b77337c5082c4725d81f33e409248ff3 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Thu, 7 Nov 2019 08:31:30 +0000 Subject: [PATCH 0686/1149] mmc: tmio_mmc_dma: don't print invalid DMA cookie commit d50f42384dbfcf5143de614710e132dc06cd2439 upstream. The tmio_mmc_start_dma_{rx,tx} function functions contain debug code that prints the dma cookie among other things. However, in case we fall back to PIO mode for some reason, the cookie variable is never initialized, and gcc warns about this: In file included from ../include/linux/printk.h:277:0, from ../include/linux/kernel.h:13, from ../include/linux/list.h:8, from ../include/linux/kobject.h:20, from ../include/linux/device.h:17, from ../drivers/mmc/host/tmio_mmc_dma.c:13: ../drivers/mmc/host/tmio_mmc_dma.c: In function 'tmio_mmc_start_dma': ../include/linux/dynamic_debug.h:86:3: warning: 'cookie' may be used uninitialized in this function [-Wmaybe-uninitialized] __dynamic_dev_dbg(&descriptor, dev, fmt, \ ^ ../drivers/mmc/host/tmio_mmc_dma.c:128:15: note: 'cookie' was declared here dma_cookie_t cookie; This modifies the dev_dbg() statements so we only print the cookie when we are already in the DMA path. Signed-off-by: Arnd Bergmann Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc_dma.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc_dma.c b/drivers/mmc/host/tmio_mmc_dma.c index e4b05dbb9ca8..4a0d6b80eaa3 100644 --- a/drivers/mmc/host/tmio_mmc_dma.c +++ b/drivers/mmc/host/tmio_mmc_dma.c @@ -94,9 +94,9 @@ static void tmio_mmc_start_dma_rx(struct tmio_mmc_host *host) desc = NULL; ret = cookie; } + dev_dbg(&host->pdev->dev, "%s(): mapped %d -> %d, cookie %d, rq %p\n", + __func__, host->sg_len, ret, cookie, host->mrq); } - dev_dbg(&host->pdev->dev, "%s(): mapped %d -> %d, cookie %d, rq %p\n", - __func__, host->sg_len, ret, cookie, host->mrq); pio: if (!desc) { @@ -116,8 +116,8 @@ static void tmio_mmc_start_dma_rx(struct tmio_mmc_host *host) "DMA failed: %d, falling back to PIO\n", ret); } - dev_dbg(&host->pdev->dev, "%s(): desc %p, cookie %d, sg[%d]\n", __func__, - desc, cookie, host->sg_len); + dev_dbg(&host->pdev->dev, "%s(): desc %p, sg[%d]\n", __func__, + desc, host->sg_len); } static void tmio_mmc_start_dma_tx(struct tmio_mmc_host *host) @@ -174,9 +174,9 @@ static void tmio_mmc_start_dma_tx(struct tmio_mmc_host *host) desc = NULL; ret = cookie; } + dev_dbg(&host->pdev->dev, "%s(): mapped %d -> %d, cookie %d, rq %p\n", + __func__, host->sg_len, ret, cookie, host->mrq); } - dev_dbg(&host->pdev->dev, "%s(): mapped %d -> %d, cookie %d, rq %p\n", - __func__, host->sg_len, ret, cookie, host->mrq); pio: if (!desc) { @@ -196,8 +196,7 @@ static void tmio_mmc_start_dma_tx(struct tmio_mmc_host *host) "DMA failed: %d, falling back to PIO\n", ret); } - dev_dbg(&host->pdev->dev, "%s(): desc %p, cookie %d\n", __func__, - desc, cookie); + dev_dbg(&host->pdev->dev, "%s(): desc %p\n", __func__, desc); } void tmio_mmc_start_dma(struct tmio_mmc_host *host, From e3c3a124f40e5dee1bafc4bc4032aa5af15e0464 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:31 +0000 Subject: [PATCH 0687/1149] mmc: tmio_dma: remove debug messages with little information commit 254d1456560fa42d4ca901c9b9308e87c951fee1 upstream. When compiling the driver with CONFIG_MMC_DEBUG set, I got build warnings. They have been 'fixed' meanwhile. However, because these debug messages look random anyhow (some duplicate information printed etc), let's just drop them and rather re-add something consistent if that should ever be needed. Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc_dma.c | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc_dma.c b/drivers/mmc/host/tmio_mmc_dma.c index 4a0d6b80eaa3..675435873823 100644 --- a/drivers/mmc/host/tmio_mmc_dma.c +++ b/drivers/mmc/host/tmio_mmc_dma.c @@ -94,10 +94,7 @@ static void tmio_mmc_start_dma_rx(struct tmio_mmc_host *host) desc = NULL; ret = cookie; } - dev_dbg(&host->pdev->dev, "%s(): mapped %d -> %d, cookie %d, rq %p\n", - __func__, host->sg_len, ret, cookie, host->mrq); } - pio: if (!desc) { /* DMA failed, fall back to PIO */ @@ -115,9 +112,6 @@ static void tmio_mmc_start_dma_rx(struct tmio_mmc_host *host) dev_warn(&host->pdev->dev, "DMA failed: %d, falling back to PIO\n", ret); } - - dev_dbg(&host->pdev->dev, "%s(): desc %p, sg[%d]\n", __func__, - desc, host->sg_len); } static void tmio_mmc_start_dma_tx(struct tmio_mmc_host *host) @@ -174,10 +168,7 @@ static void tmio_mmc_start_dma_tx(struct tmio_mmc_host *host) desc = NULL; ret = cookie; } - dev_dbg(&host->pdev->dev, "%s(): mapped %d -> %d, cookie %d, rq %p\n", - __func__, host->sg_len, ret, cookie, host->mrq); } - pio: if (!desc) { /* DMA failed, fall back to PIO */ @@ -195,8 +186,6 @@ static void tmio_mmc_start_dma_tx(struct tmio_mmc_host *host) dev_warn(&host->pdev->dev, "DMA failed: %d, falling back to PIO\n", ret); } - - dev_dbg(&host->pdev->dev, "%s(): desc %p\n", __func__, desc); } void tmio_mmc_start_dma(struct tmio_mmc_host *host, From ec09b3037b22700ea72fda7beaacf9c2745acff6 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:32 +0000 Subject: [PATCH 0688/1149] mmc: tmio: add flag to reduce delay after changing clock status commit 04e24b80a3ddf4cdf85e49a99d33aec27c9432ad upstream. The docs for RCar Gen2 & 3 I have access to, mention delays of 5ms after stop and 1ms after start. Make it possible to apply these values. Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc_pio.c | 7 ++++--- include/linux/mfd/tmio.h | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 3c7c3a1c8f4f..66c65fe489eb 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -172,7 +172,8 @@ static void tmio_mmc_set_clock(struct tmio_mmc_host *host, host->set_clk_div(host->pdev, (clk>>22) & 1); sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, clk & 0x1ff); - msleep(10); + if (!(host->pdata->flags & TMIO_MMC_FAST_CLK_CHG)) + msleep(10); } static void tmio_mmc_clk_stop(struct tmio_mmc_host *host) @@ -185,14 +186,14 @@ static void tmio_mmc_clk_stop(struct tmio_mmc_host *host) sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, ~0x0100 & sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); - msleep(10); + msleep(host->pdata->flags & TMIO_MMC_FAST_CLK_CHG ? 5 : 10); } static void tmio_mmc_clk_start(struct tmio_mmc_host *host) { sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, 0x0100 | sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); - msleep(10); + msleep(host->pdata->flags & TMIO_MMC_FAST_CLK_CHG ? 1 : 10); /* implicit BUG_ON(!res) */ if (host->pdata->flags & TMIO_MMC_HAVE_HIGH_REG) { diff --git a/include/linux/mfd/tmio.h b/include/linux/mfd/tmio.h index 24b86d538e88..05d58ee5e6a7 100644 --- a/include/linux/mfd/tmio.h +++ b/include/linux/mfd/tmio.h @@ -65,6 +65,10 @@ * Some controllers can support SDIO IRQ signalling. */ #define TMIO_MMC_SDIO_IRQ (1 << 2) + +/* Some controllers don't need to wait 10ms for clock changes */ +#define TMIO_MMC_FAST_CLK_CHG (1 << 3) + /* * Some controllers require waiting for the SD bus to become * idle before writing to some registers. From b3a8bceabbfaea73a87118ef685408c6777d74d6 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:33 +0000 Subject: [PATCH 0689/1149] mmc: tmio: remove stale comments commit 6d2bcbe5d1ee44271b30d445b55c49219b33fc6e upstream. These don't make sense anymore. Since commit 5d60e500541ed1 ("mmc: tmio: add new TMIO_MMC_HAVE_HIGH_REG flags"), we don't deal with a resource here. Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc_pio.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 66c65fe489eb..99df39a52d30 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -178,7 +178,6 @@ static void tmio_mmc_set_clock(struct tmio_mmc_host *host, static void tmio_mmc_clk_stop(struct tmio_mmc_host *host) { - /* implicit BUG_ON(!res) */ if (host->pdata->flags & TMIO_MMC_HAVE_HIGH_REG) { sd_ctrl_write16(host, CTL_CLK_AND_WAIT_CTL, 0x0000); msleep(10); @@ -195,7 +194,6 @@ static void tmio_mmc_clk_start(struct tmio_mmc_host *host) sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); msleep(host->pdata->flags & TMIO_MMC_FAST_CLK_CHG ? 1 : 10); - /* implicit BUG_ON(!res) */ if (host->pdata->flags & TMIO_MMC_HAVE_HIGH_REG) { sd_ctrl_write16(host, CTL_CLK_AND_WAIT_CTL, 0x0100); msleep(10); @@ -206,7 +204,6 @@ static void tmio_mmc_reset(struct tmio_mmc_host *host) { /* FIXME - should we set stop clock reg here */ sd_ctrl_write16(host, CTL_RESET_SD, 0x0000); - /* implicit BUG_ON(!res) */ if (host->pdata->flags & TMIO_MMC_HAVE_HIGH_REG) sd_ctrl_write16(host, CTL_RESET_SDIO, 0x0000); msleep(10); From f8db3e08cc6810bc3913c4686daf89eb99be6f9f Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:34 +0000 Subject: [PATCH 0690/1149] mmc: tmio: refactor set_clock a little commit bf96208f0539d2009ca0b031da2ed7c430edc3a2 upstream. Some of the indentation made the code awful to read. Fix that. Also, introduce defines instead of magic hex values. Note that this includes one change: We mask out know 0xff instead of 0x1ff. But 0x100 has always been the clock enable bit. It doesn't make any sense to set it depending on the clock calculation. Update copyright notices, too. I'll be working on those files some more in the future. Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc_pio.c | 15 +++++++++------ include/linux/mmc/tmio.h | 5 +++++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 99df39a52d30..bb09b5146ff8 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -1,6 +1,8 @@ /* * linux/drivers/mmc/host/tmio_mmc_pio.c * + * Copyright (C) 2016 Sang Engineering, Wolfram Sang + * Copyright (C) 2015-16 Renesas Electronics Corporation * Copyright (C) 2011 Guennadi Liakhovetski * Copyright (C) 2007 Ian Molton * Copyright (C) 2004 Ian Molton @@ -159,19 +161,20 @@ static void tmio_mmc_set_clock(struct tmio_mmc_host *host, if (new_clock) { for (clock = host->mmc->f_min, clk = 0x80000080; - new_clock >= (clock<<1); clk >>= 1) + new_clock >= (clock << 1); + clk >>= 1) clock <<= 1; /* 1/1 clock is option */ if ((host->pdata->flags & TMIO_MMC_CLK_ACTUAL) && - ((clk >> 22) & 0x1)) + ((clk >> 22) & 0x1)) clk |= 0xff; } if (host->set_clk_div) - host->set_clk_div(host->pdev, (clk>>22) & 1); + host->set_clk_div(host->pdev, (clk >> 22) & 1); - sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, clk & 0x1ff); + sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, clk & CLK_CTL_DIV_MASK); if (!(host->pdata->flags & TMIO_MMC_FAST_CLK_CHG)) msleep(10); } @@ -183,14 +186,14 @@ static void tmio_mmc_clk_stop(struct tmio_mmc_host *host) msleep(10); } - sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, ~0x0100 & + sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, ~CLK_CTL_SCLKEN & sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); msleep(host->pdata->flags & TMIO_MMC_FAST_CLK_CHG ? 5 : 10); } static void tmio_mmc_clk_start(struct tmio_mmc_host *host) { - sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, 0x0100 | + sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, CLK_CTL_SCLKEN | sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); msleep(host->pdata->flags & TMIO_MMC_FAST_CLK_CHG ? 1 : 10); diff --git a/include/linux/mmc/tmio.h b/include/linux/mmc/tmio.h index 84d9053b5dca..5f5cd80e9765 100644 --- a/include/linux/mmc/tmio.h +++ b/include/linux/mmc/tmio.h @@ -1,6 +1,8 @@ /* * include/linux/mmc/tmio.h * + * Copyright (C) 2016 Sang Engineering, Wolfram Sang + * Copyright (C) 2015-16 Renesas Electronics Corporation * Copyright (C) 2007 Ian Molton * Copyright (C) 2004 Ian Molton * @@ -61,6 +63,9 @@ #define TMIO_STAT_CMD_BUSY 0x40000000 #define TMIO_STAT_ILL_ACCESS 0x80000000 +#define CLK_CTL_DIV_MASK 0xff +#define CLK_CTL_SCLKEN BIT(8) + #define TMIO_BBS 512 /* Boot block size */ #endif /* LINUX_MMC_TMIO_H */ From 85105262340d75c3e56e417b8674eadabf758160 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:35 +0000 Subject: [PATCH 0691/1149] mmc: tmio: disable clock before changing it commit 14d5828f4ebbfbe8e07d4d01eb85a684a9290243 upstream. Rcar2 & 3 docs state that for going to and coming from the 0xff setting, the clock must first be disabled before the DIV bits are changed. Instead of tracking this, let's just do this unconditionally. Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc_pio.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index bb09b5146ff8..2a3bbfd86c8c 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -174,6 +174,8 @@ static void tmio_mmc_set_clock(struct tmio_mmc_host *host, if (host->set_clk_div) host->set_clk_div(host->pdev, (clk >> 22) & 1); + sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, ~CLK_CTL_SCLKEN & + sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, clk & CLK_CTL_DIV_MASK); if (!(host->pdata->flags & TMIO_MMC_FAST_CLK_CHG)) msleep(10); From 8c49776b799fe7b13abf55e154313e97e9619bed Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:36 +0000 Subject: [PATCH 0692/1149] mmc: sdhi: use faster clock handling on RCar Gen2 commit 16a655248965cd04db3e6616a47231fecbf87839 upstream. Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index e43aff4a4bd6..fd6a0e2c49ee 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -59,7 +59,7 @@ static const struct sh_mobile_sdhi_of_data of_rcar_gen1_compatible = { static const struct sh_mobile_sdhi_of_data of_rcar_gen2_compatible = { .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_WRPROTECT_DISABLE | - TMIO_MMC_CLK_ACTUAL, + TMIO_MMC_CLK_ACTUAL | TMIO_MMC_FAST_CLK_CHG, .capabilities = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ, .dma_buswidth = DMA_SLAVE_BUSWIDTH_4_BYTES, .dma_rx_offset = 0x2000, From 2dbca86bd96bf63df6c45d8af1e43df3efeb0ce5 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:37 +0000 Subject: [PATCH 0693/1149] mmc: sdhi: error message on ENOMEM is superfluous commit 2bf8ab6ba23483a49d29a726d047f3be81ccc952 upstream. We will get a full dump anyhow. Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index fd6a0e2c49ee..bf6c3ac7a4a8 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -215,10 +215,8 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) return -EINVAL; priv = devm_kzalloc(&pdev->dev, sizeof(struct sh_mobile_sdhi), GFP_KERNEL); - if (priv == NULL) { - dev_err(&pdev->dev, "kzalloc failed\n"); + if (!priv) return -ENOMEM; - } mmc_data = &priv->mmc_data; dma_priv = &priv->dma_priv; From 2485752b1ff79b9f9cb30520cb5d8dee58e7cd56 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:38 +0000 Subject: [PATCH 0694/1149] mmc: sdhi: Add r8a7795 support commit a72e8b170069e98e1f5ca2a2855ee399148a9152 upstream. Registers are 64bit apart, so we refactor bus_shift handling a little and set it based on the DT compatible. Also, EXT_ACC is different. It has been tested on a Salvator-X (Gen3) and, to check for regressions, on a Lager (Gen2). Signed-off-by: Ai Kyuse Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das [ Removed Kconfig changes, binding and compatible option ] Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 46 ++++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 13 deletions(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index bf6c3ac7a4a8..90d042da1f04 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -1,6 +1,8 @@ /* * SuperH Mobile SDHI * + * Copyright (C) 2016 Sang Engineering, Wolfram Sang + * Copyright (C) 2015-16 Renesas Electronics Corporation * Copyright (C) 2009 Magnus Damm * * This program is free software; you can redistribute it and/or modify @@ -43,6 +45,7 @@ struct sh_mobile_sdhi_of_data { unsigned long capabilities2; enum dma_slave_buswidth dma_buswidth; dma_addr_t dma_rx_offset; + unsigned bus_shift; }; static const struct sh_mobile_sdhi_of_data sh_mobile_sdhi_of_cfg[] = { @@ -65,6 +68,13 @@ static const struct sh_mobile_sdhi_of_data of_rcar_gen2_compatible = { .dma_rx_offset = 0x2000, }; +static const struct sh_mobile_sdhi_of_data of_rcar_gen3_compatible = { + .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_WRPROTECT_DISABLE | + TMIO_MMC_CLK_ACTUAL | TMIO_MMC_FAST_CLK_CHG, + .capabilities = MMC_CAP_SD_HIGHSPEED, + .bus_shift = 2, +}; + static const struct of_device_id sh_mobile_sdhi_of_match[] = { { .compatible = "renesas,sdhi-shmobile" }, { .compatible = "renesas,sdhi-sh7372" }, @@ -105,6 +115,15 @@ static void sh_mobile_sdhi_sdbuf_width(struct tmio_mmc_host *host, int width) case 0xCB0D: val = (width == 32) ? 0x0000 : 0x0001; break; + case 0xCC10: /* Gen3, SD only */ + case 0xCD10: /* Gen3, SD + MMC */ + if (width == 64) + val = 0x0000; + else if (width == 32) + val = 0x0101; + else + val = 0x0001; + break; default: /* nothing to do */ return; @@ -234,16 +253,26 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) goto eprobe; } + if (of_id && of_id->data) { + const struct sh_mobile_sdhi_of_data *of_data = of_id->data; + + mmc_data->flags |= of_data->tmio_flags; + mmc_data->capabilities |= of_data->capabilities; + mmc_data->capabilities2 |= of_data->capabilities2; + mmc_data->dma_rx_offset = of_data->dma_rx_offset; + dma_priv->dma_buswidth = of_data->dma_buswidth; + host->bus_shift = of_data->bus_shift; + } + host->dma = dma_priv; host->write16_hook = sh_mobile_sdhi_write16_hook; host->clk_enable = sh_mobile_sdhi_clk_enable; host->clk_disable = sh_mobile_sdhi_clk_disable; host->multi_io_quirk = sh_mobile_sdhi_multi_io_quirk; - /* SD control register space size is 0x100, 0x200 for bus_shift=1 */ - if (resource_size(res) > 0x100) + + /* Orginally registers were 16 bit apart, could be 32 or 64 nowadays */ + if (!host->bus_shift && resource_size(res) > 0x100) /* old way to determine the shift */ host->bus_shift = 1; - else - host->bus_shift = 0; if (mmd) *mmc_data = *mmd; @@ -275,15 +304,6 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) */ mmc_data->flags |= TMIO_MMC_SDIO_STATUS_QUIRK; - if (of_id && of_id->data) { - const struct sh_mobile_sdhi_of_data *of_data = of_id->data; - mmc_data->flags |= of_data->tmio_flags; - mmc_data->capabilities |= of_data->capabilities; - mmc_data->capabilities2 |= of_data->capabilities2; - mmc_data->dma_rx_offset = of_data->dma_rx_offset; - dma_priv->dma_buswidth = of_data->dma_buswidth; - } - ret = tmio_mmc_host_probe(host, mmc_data); if (ret < 0) goto efree; From a3de7b949006807aff41ac0e471dff8f689bf299 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 7 Nov 2019 08:31:39 +0000 Subject: [PATCH 0695/1149] mmc: tmio, sh_mobile_sdhi: Pass tmio_mmc_host ptr to clk_{enable, disable} ops commit 0ea28210c15680bbabc3d6079f771f1a1e69509a upstream. Change the clk_enable operation to take a pointer to the struct tmio_mmc_host and have it set f_max. For consistency, also change the clk_disable operation to take a pointer to struct tmio_mmc_host. Signed-off-by: Ben Hutchings Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 12 +++++------- drivers/mmc/host/tmio_mmc.h | 4 ++-- drivers/mmc/host/tmio_mmc_pio.c | 4 ++-- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index 90d042da1f04..3b9cd2bfde79 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -132,16 +132,15 @@ static void sh_mobile_sdhi_sdbuf_width(struct tmio_mmc_host *host, int width) sd_ctrl_write16(host, EXT_ACC, val); } -static int sh_mobile_sdhi_clk_enable(struct platform_device *pdev, unsigned int *f) +static int sh_mobile_sdhi_clk_enable(struct tmio_mmc_host *host) { - struct mmc_host *mmc = platform_get_drvdata(pdev); - struct tmio_mmc_host *host = mmc_priv(mmc); + struct mmc_host *mmc = host->mmc; struct sh_mobile_sdhi *priv = host_to_priv(host); int ret = clk_prepare_enable(priv->clk); if (ret < 0) return ret; - *f = clk_get_rate(priv->clk); + mmc->f_max = clk_get_rate(priv->clk); /* enable 16bit data access on SDBUF as default */ sh_mobile_sdhi_sdbuf_width(host, 16); @@ -149,11 +148,10 @@ static int sh_mobile_sdhi_clk_enable(struct platform_device *pdev, unsigned int return 0; } -static void sh_mobile_sdhi_clk_disable(struct platform_device *pdev) +static void sh_mobile_sdhi_clk_disable(struct tmio_mmc_host *host) { - struct mmc_host *mmc = platform_get_drvdata(pdev); - struct tmio_mmc_host *host = mmc_priv(mmc); struct sh_mobile_sdhi *priv = host_to_priv(host); + clk_disable_unprepare(priv->clk); } diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index 4a597f5a53e2..68fd8d791358 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -95,8 +95,8 @@ struct tmio_mmc_host { bool sdio_irq_enabled; int (*write16_hook)(struct tmio_mmc_host *host, int addr); - int (*clk_enable)(struct platform_device *pdev, unsigned int *f); - void (*clk_disable)(struct platform_device *pdev); + int (*clk_enable)(struct tmio_mmc_host *host); + void (*clk_disable)(struct tmio_mmc_host *host); int (*multi_io_quirk)(struct mmc_card *card, unsigned int direction, int blk_size); }; diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 2a3bbfd86c8c..f7a9fa624fed 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -843,7 +843,7 @@ static int tmio_mmc_clk_update(struct tmio_mmc_host *host) if (!host->clk_enable) return -ENOTSUPP; - ret = host->clk_enable(host->pdev, &mmc->f_max); + ret = host->clk_enable(host); if (!ret) mmc->f_min = mmc->f_max / 512; @@ -1249,7 +1249,7 @@ int tmio_mmc_host_runtime_suspend(struct device *dev) tmio_mmc_clk_stop(host); if (host->clk_disable) - host->clk_disable(host->pdev); + host->clk_disable(host); return 0; } From 53f8b754e4ee857b159364d5369c3a1cb7330cb8 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 7 Nov 2019 08:31:40 +0000 Subject: [PATCH 0696/1149] mmc: tmio, sh_mobile_sdhi: Add support for variable input clock frequency commit 2fb55956ce4db259a5d6ce41cc32368b5055575e upstream. Currently tmio_mmc assumes that the input clock frequency is fixed and only its own clock divider can be changed. This is not true in the case of sh_mobile_sdhi; we can use the clock API to change it. In tmio_mmc: - Delegate setting of f_min from tmio to the clk_enable operation (if implemented), as it can be smaller than f_max / 512 - Add an optional clk_update operation called from tmio_mmc_set_clock() that updates the input clock frequency - Rename tmio_mmc_clk_update() to tmio_mmc_clk_enable(), to avoid confusion with the clk_update operation In sh_mobile_sdhi: - Make the setting of f_max conditional; it should be set through the max-frequency property in the device tree in future - Set f_min based on the input clock's minimum frequency - Implement the clk_update operation, selecting the best input clock frequency for the bus frequency that's wanted sh_mobile_sdhi_clk_update() is loosely based on Kuninori Morimoto's work in sh_mmcif. Signed-off-by: Ben Hutchings Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 56 +++++++++++++++++++++++++++++-- drivers/mmc/host/tmio_mmc.h | 2 ++ drivers/mmc/host/tmio_mmc_pio.c | 24 ++++++------- 3 files changed, 66 insertions(+), 16 deletions(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index 3b9cd2bfde79..51e49eb02f29 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -140,7 +140,20 @@ static int sh_mobile_sdhi_clk_enable(struct tmio_mmc_host *host) if (ret < 0) return ret; - mmc->f_max = clk_get_rate(priv->clk); + /* + * The clock driver may not know what maximum frequency + * actually works, so it should be set with the max-frequency + * property which will already have been read to f_max. If it + * was missing, assume the current frequency is the maximum. + */ + if (!mmc->f_max) + mmc->f_max = clk_get_rate(priv->clk); + + /* + * Minimum frequency is the minimum input clock frequency + * divided by our maximum divider. + */ + mmc->f_min = max(clk_round_rate(priv->clk, 1) / 512, 1L); /* enable 16bit data access on SDBUF as default */ sh_mobile_sdhi_sdbuf_width(host, 16); @@ -148,6 +161,44 @@ static int sh_mobile_sdhi_clk_enable(struct tmio_mmc_host *host) return 0; } +static unsigned int sh_mobile_sdhi_clk_update(struct tmio_mmc_host *host, + unsigned int new_clock) +{ + struct sh_mobile_sdhi *priv = host_to_priv(host); + unsigned int freq, best_freq, diff_min, diff; + int i; + + diff_min = ~0; + best_freq = 0; + + /* + * We want the bus clock to be as close as possible to, but no + * greater than, new_clock. As we can divide by 1 << i for + * any i in [0, 9] we want the input clock to be as close as + * possible, but no greater than, new_clock << i. + */ + for (i = min(9, ilog2(UINT_MAX / new_clock)); i >= 0; i--) { + freq = clk_round_rate(priv->clk, new_clock << i); + if (freq > (new_clock << i)) { + /* Too fast; look for a slightly slower option */ + freq = clk_round_rate(priv->clk, + (new_clock << i) / 4 * 3); + if (freq > (new_clock << i)) + continue; + } + + diff = new_clock - (freq >> i); + if (diff <= diff_min) { + best_freq = freq; + diff_min = diff; + } + } + + clk_set_rate(priv->clk, best_freq); + + return best_freq; +} + static void sh_mobile_sdhi_clk_disable(struct tmio_mmc_host *host) { struct sh_mobile_sdhi *priv = host_to_priv(host); @@ -265,6 +316,7 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) host->dma = dma_priv; host->write16_hook = sh_mobile_sdhi_write16_hook; host->clk_enable = sh_mobile_sdhi_clk_enable; + host->clk_update = sh_mobile_sdhi_clk_update; host->clk_disable = sh_mobile_sdhi_clk_disable; host->multi_io_quirk = sh_mobile_sdhi_multi_io_quirk; @@ -362,7 +414,7 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) } } - dev_info(&pdev->dev, "%s base at 0x%08lx clock rate %u MHz\n", + dev_info(&pdev->dev, "%s base at 0x%08lx max clock rate %u MHz\n", mmc_hostname(host->mmc), (unsigned long) (platform_get_resource(pdev, IORESOURCE_MEM, 0)->start), host->mmc->f_max / 1000000); diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index 68fd8d791358..b44b58902906 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -96,6 +96,8 @@ struct tmio_mmc_host { int (*write16_hook)(struct tmio_mmc_host *host, int addr); int (*clk_enable)(struct tmio_mmc_host *host); + unsigned int (*clk_update)(struct tmio_mmc_host *host, + unsigned int new_clock); void (*clk_disable)(struct tmio_mmc_host *host); int (*multi_io_quirk)(struct mmc_card *card, unsigned int direction, int blk_size); diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index f7a9fa624fed..d34de5795837 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -160,9 +160,12 @@ static void tmio_mmc_set_clock(struct tmio_mmc_host *host, u32 clk = 0, clock; if (new_clock) { - for (clock = host->mmc->f_min, clk = 0x80000080; - new_clock >= (clock << 1); - clk >>= 1) + if (host->clk_update) + clock = host->clk_update(host, new_clock) / 512; + else + clock = host->mmc->f_min; + + for (clk = 0x80000080; new_clock >= (clock << 1); clk >>= 1) clock <<= 1; /* 1/1 clock is option */ @@ -835,19 +838,12 @@ static void tmio_mmc_request(struct mmc_host *mmc, struct mmc_request *mrq) pm_runtime_put_autosuspend(mmc_dev(mmc)); } -static int tmio_mmc_clk_update(struct tmio_mmc_host *host) +static int tmio_mmc_clk_enable(struct tmio_mmc_host *host) { - struct mmc_host *mmc = host->mmc; - int ret; - if (!host->clk_enable) return -ENOTSUPP; - ret = host->clk_enable(host); - if (!ret) - mmc->f_min = mmc->f_max / 512; - - return ret; + return host->clk_enable(host); } static void tmio_mmc_power_on(struct tmio_mmc_host *host, unsigned short vdd) @@ -1133,7 +1129,7 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host, mmc->caps & MMC_CAP_NONREMOVABLE || mmc->slot.cd_irq >= 0); - if (tmio_mmc_clk_update(_host) < 0) { + if (tmio_mmc_clk_enable(_host) < 0) { mmc->f_max = pdata->hclk; mmc->f_min = mmc->f_max / 512; } @@ -1261,7 +1257,7 @@ int tmio_mmc_host_runtime_resume(struct device *dev) struct tmio_mmc_host *host = mmc_priv(mmc); tmio_mmc_reset(host); - tmio_mmc_clk_update(host); + tmio_mmc_clk_enable(host); if (host->clk_cache) { tmio_mmc_set_clock(host, host->clk_cache); From ce623d85ce62e5a14965c5fc46b614381e7259fe Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:41 +0000 Subject: [PATCH 0697/1149] mmc: tmio: Add UHS-I mode support commit 452e5eef6d311e52f657b34d999758107ec3dd4a upstream. Based on work by Shinobu Uehara and Ben Dooks. This adds the voltage switch operation needed for all UHS-I modes, but not the tuning needed for SDR-104 which will come later. Signed-off-by: Ben Hutchings Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc.h | 2 ++ drivers/mmc/host/tmio_mmc_pio.c | 12 +++++++++++- include/linux/mmc/tmio.h | 2 ++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index b44b58902906..b1819c74965b 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -101,6 +101,8 @@ struct tmio_mmc_host { void (*clk_disable)(struct tmio_mmc_host *host); int (*multi_io_quirk)(struct mmc_card *card, unsigned int direction, int blk_size); + int (*start_signal_voltage_switch)(struct mmc_host *mmc, + struct mmc_ios *ios); }; struct tmio_mmc_host *tmio_mmc_host_alloc(struct platform_device *pdev); diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index d34de5795837..19357067c6cf 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -1010,12 +1010,20 @@ static int tmio_multi_io_quirk(struct mmc_card *card, return blk_size; } -static const struct mmc_host_ops tmio_mmc_ops = { +static int tmio_mmc_card_busy(struct mmc_host *mmc) +{ + struct tmio_mmc_host *host = mmc_priv(mmc); + + return !(sd_ctrl_read32(host, CTL_STATUS2) & TMIO_STATUS2_DAT0); +} + +static struct mmc_host_ops tmio_mmc_ops = { .request = tmio_mmc_request, .set_ios = tmio_mmc_set_ios, .get_ro = tmio_mmc_get_ro, .get_cd = mmc_gpio_get_cd, .enable_sdio_irq = tmio_mmc_enable_sdio_irq, + .card_busy = tmio_mmc_card_busy, .multi_io_quirk = tmio_multi_io_quirk, }; @@ -1114,7 +1122,9 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host, goto host_free; } + tmio_mmc_ops.start_signal_voltage_switch = _host->start_signal_voltage_switch; mmc->ops = &tmio_mmc_ops; + mmc->caps |= MMC_CAP_4_BIT_DATA | pdata->capabilities; mmc->caps2 |= pdata->capabilities2; mmc->max_segs = 32; diff --git a/include/linux/mmc/tmio.h b/include/linux/mmc/tmio.h index 5f5cd80e9765..b2f28e995033 100644 --- a/include/linux/mmc/tmio.h +++ b/include/linux/mmc/tmio.h @@ -63,6 +63,8 @@ #define TMIO_STAT_CMD_BUSY 0x40000000 #define TMIO_STAT_ILL_ACCESS 0x80000000 +#define TMIO_STATUS2_DAT0 BIT(7) + #define CLK_CTL_DIV_MASK 0xff #define CLK_CTL_SCLKEN BIT(8) From 1a5215bd2bebf0abf5dcf2076f089a537737c42f Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:42 +0000 Subject: [PATCH 0698/1149] mmc: sh_mobile_sdhi: Add UHS-I mode support commit 057a4592e6dbad0e571628968f3e20a3706e4701 upstream. Implement voltage switch, supporting modes up to SDR-50. Based on work by Shinobu Uehara, Rob Taylor, William Towle and Ian Molton. Signed-off-by: Ben Hutchings Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- .../devicetree/bindings/mmc/tmio_mmc.txt | 3 ++ drivers/mmc/host/sh_mobile_sdhi.c | 52 +++++++++++++++++++ 2 files changed, 55 insertions(+) diff --git a/Documentation/devicetree/bindings/mmc/tmio_mmc.txt b/Documentation/devicetree/bindings/mmc/tmio_mmc.txt index cbf91352b5b0..1d23a439a63f 100644 --- a/Documentation/devicetree/bindings/mmc/tmio_mmc.txt +++ b/Documentation/devicetree/bindings/mmc/tmio_mmc.txt @@ -27,3 +27,6 @@ Required properties: Optional properties: - toshiba,mmc-wrprotect-disable: write-protect detection is unavailable +- pinctrl-names: should be "default", "state_uhs" +- pinctrl-0: should contain default/high speed pin ctrl +- pinctrl-1: should contain uhs mode pin ctrl diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index 51e49eb02f29..d6035b49d103 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -32,6 +32,9 @@ #include #include #include +#include +#include +#include #include "tmio_mmc.h" @@ -98,6 +101,8 @@ struct sh_mobile_sdhi { struct clk *clk; struct tmio_mmc_data mmc_data; struct tmio_mmc_dma dma_priv; + struct pinctrl *pinctrl; + struct pinctrl_state *pins_default, *pins_uhs; }; static void sh_mobile_sdhi_sdbuf_width(struct tmio_mmc_host *host, int width) @@ -206,6 +211,44 @@ static void sh_mobile_sdhi_clk_disable(struct tmio_mmc_host *host) clk_disable_unprepare(priv->clk); } +static int sh_mobile_sdhi_start_signal_voltage_switch(struct mmc_host *mmc, + struct mmc_ios *ios) +{ + struct tmio_mmc_host *host = mmc_priv(mmc); + struct sh_mobile_sdhi *priv = host_to_priv(host); + struct pinctrl_state *pin_state; + int ret; + + switch (ios->signal_voltage) { + case MMC_SIGNAL_VOLTAGE_330: + pin_state = priv->pins_default; + break; + case MMC_SIGNAL_VOLTAGE_180: + pin_state = priv->pins_uhs; + break; + default: + return -EINVAL; + } + + /* + * If anything is missing, assume signal voltage is fixed at + * 3.3V and succeed/fail accordingly. + */ + if (IS_ERR(priv->pinctrl) || IS_ERR(pin_state)) + return ios->signal_voltage == + MMC_SIGNAL_VOLTAGE_330 ? 0 : -EINVAL; + + ret = mmc_regulator_set_vqmmc(host->mmc, ios); + if (ret) + return ret; + + ret = pinctrl_select_state(priv->pinctrl, pin_state); + if (ret) + return ret; + + return 0; +} + static int sh_mobile_sdhi_wait_idle(struct tmio_mmc_host *host) { int timeout = 1000; @@ -296,6 +339,14 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) goto eprobe; } + priv->pinctrl = devm_pinctrl_get(&pdev->dev); + if (!IS_ERR(priv->pinctrl)) { + priv->pins_default = pinctrl_lookup_state(priv->pinctrl, + PINCTRL_STATE_DEFAULT); + priv->pins_uhs = pinctrl_lookup_state(priv->pinctrl, + "state_uhs"); + } + host = tmio_mmc_host_alloc(pdev); if (!host) { ret = -ENOMEM; @@ -319,6 +370,7 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) host->clk_update = sh_mobile_sdhi_clk_update; host->clk_disable = sh_mobile_sdhi_clk_disable; host->multi_io_quirk = sh_mobile_sdhi_multi_io_quirk; + host->start_signal_voltage_switch = sh_mobile_sdhi_start_signal_voltage_switch; /* Orginally registers were 16 bit apart, could be 32 or 64 nowadays */ if (!host->bus_shift && resource_size(res) > 0x100) /* old way to determine the shift */ From 0b4f67ec919e6fe0671511a2407714ed5544d0e5 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:43 +0000 Subject: [PATCH 0699/1149] mmc: tmio: always start clock after frequency calculation commit 7fbc030da800d07193da4a4355ca2e197cf00cfb upstream. Starting the clock is always done after frequency change anyhow, so we can do it directly after the clock calculation and remove the specific calls. This is the first part of doing proper clock de-/activation at calculation time. Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc_pio.c | 34 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 19357067c6cf..99139b876ce0 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -154,6 +154,18 @@ static void tmio_mmc_enable_sdio_irq(struct mmc_host *mmc, int enable) } } +static void tmio_mmc_clk_start(struct tmio_mmc_host *host) +{ + sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, CLK_CTL_SCLKEN | + sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); + msleep(host->pdata->flags & TMIO_MMC_FAST_CLK_CHG ? 1 : 10); + + if (host->pdata->flags & TMIO_MMC_HAVE_HIGH_REG) { + sd_ctrl_write16(host, CTL_CLK_AND_WAIT_CTL, 0x0100); + msleep(10); + } +} + static void tmio_mmc_set_clock(struct tmio_mmc_host *host, unsigned int new_clock) { @@ -182,6 +194,8 @@ static void tmio_mmc_set_clock(struct tmio_mmc_host *host, sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, clk & CLK_CTL_DIV_MASK); if (!(host->pdata->flags & TMIO_MMC_FAST_CLK_CHG)) msleep(10); + + tmio_mmc_clk_start(host); } static void tmio_mmc_clk_stop(struct tmio_mmc_host *host) @@ -196,18 +210,6 @@ static void tmio_mmc_clk_stop(struct tmio_mmc_host *host) msleep(host->pdata->flags & TMIO_MMC_FAST_CLK_CHG ? 5 : 10); } -static void tmio_mmc_clk_start(struct tmio_mmc_host *host) -{ - sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, CLK_CTL_SCLKEN | - sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); - msleep(host->pdata->flags & TMIO_MMC_FAST_CLK_CHG ? 1 : 10); - - if (host->pdata->flags & TMIO_MMC_HAVE_HIGH_REG) { - sd_ctrl_write16(host, CTL_CLK_AND_WAIT_CTL, 0x0100); - msleep(10); - } -} - static void tmio_mmc_reset(struct tmio_mmc_host *host) { /* FIXME - should we set stop clock reg here */ @@ -953,14 +955,12 @@ static void tmio_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) tmio_mmc_clk_stop(host); break; case MMC_POWER_UP: - tmio_mmc_set_clock(host, ios->clock); tmio_mmc_power_on(host, ios->vdd); - tmio_mmc_clk_start(host); + tmio_mmc_set_clock(host, ios->clock); tmio_mmc_set_bus_width(host, ios->bus_width); break; case MMC_POWER_ON: tmio_mmc_set_clock(host, ios->clock); - tmio_mmc_clk_start(host); tmio_mmc_set_bus_width(host, ios->bus_width); break; } @@ -1269,10 +1269,8 @@ int tmio_mmc_host_runtime_resume(struct device *dev) tmio_mmc_reset(host); tmio_mmc_clk_enable(host); - if (host->clk_cache) { + if (host->clk_cache) tmio_mmc_set_clock(host, host->clk_cache); - tmio_mmc_clk_start(host); - } tmio_mmc_enable_dma(host, true); From b4a90f49fd62c48e67ec90b33da14183a2e190f4 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:44 +0000 Subject: [PATCH 0700/1149] mmc: tmio: stop clock when 0Hz is requested commit 148634d24d4a7dc82a49efcf1a215e1d0695f62c upstream. Setting frequency to 0 is not enough, the clock explicitly has to be disabled. Otherwise voltage switching (which needs SDCLK to be quiet) fails for various cards. Because we now do the 'new_clock == 0' check right at the beginning, the indentation level of the rest of the code can be decreased a little. Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc_pio.c | 50 +++++++++++++++++---------------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 99139b876ce0..6c09b1d7f644 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -166,25 +166,39 @@ static void tmio_mmc_clk_start(struct tmio_mmc_host *host) } } +static void tmio_mmc_clk_stop(struct tmio_mmc_host *host) +{ + if (host->pdata->flags & TMIO_MMC_HAVE_HIGH_REG) { + sd_ctrl_write16(host, CTL_CLK_AND_WAIT_CTL, 0x0000); + msleep(10); + } + + sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, ~CLK_CTL_SCLKEN & + sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); + msleep(host->pdata->flags & TMIO_MMC_FAST_CLK_CHG ? 5 : 10); +} + static void tmio_mmc_set_clock(struct tmio_mmc_host *host, unsigned int new_clock) { u32 clk = 0, clock; - if (new_clock) { - if (host->clk_update) - clock = host->clk_update(host, new_clock) / 512; - else - clock = host->mmc->f_min; + if (new_clock == 0) { + tmio_mmc_clk_stop(host); + return; + } - for (clk = 0x80000080; new_clock >= (clock << 1); clk >>= 1) - clock <<= 1; + if (host->clk_update) + clock = host->clk_update(host, new_clock) / 512; + else + clock = host->mmc->f_min; - /* 1/1 clock is option */ - if ((host->pdata->flags & TMIO_MMC_CLK_ACTUAL) && - ((clk >> 22) & 0x1)) - clk |= 0xff; - } + for (clk = 0x80000080; new_clock >= (clock << 1); clk >>= 1) + clock <<= 1; + + /* 1/1 clock is option */ + if ((host->pdata->flags & TMIO_MMC_CLK_ACTUAL) && ((clk >> 22) & 0x1)) + clk |= 0xff; if (host->set_clk_div) host->set_clk_div(host->pdev, (clk >> 22) & 1); @@ -198,18 +212,6 @@ static void tmio_mmc_set_clock(struct tmio_mmc_host *host, tmio_mmc_clk_start(host); } -static void tmio_mmc_clk_stop(struct tmio_mmc_host *host) -{ - if (host->pdata->flags & TMIO_MMC_HAVE_HIGH_REG) { - sd_ctrl_write16(host, CTL_CLK_AND_WAIT_CTL, 0x0000); - msleep(10); - } - - sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, ~CLK_CTL_SCLKEN & - sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); - msleep(host->pdata->flags & TMIO_MMC_FAST_CLK_CHG ? 5 : 10); -} - static void tmio_mmc_reset(struct tmio_mmc_host *host) { /* FIXME - should we set stop clock reg here */ From 87270a26c2f0120b733fbec073b26824e34b3b29 Mon Sep 17 00:00:00 2001 From: Ulf Hansson Date: Thu, 7 Nov 2019 08:31:45 +0000 Subject: [PATCH 0701/1149] mmc: tmio: Remove redundant runtime PM calls commit 6aef2eecc4d4c9edb8c8d3e3a7f6af3cee42b2ec upstream. Commit 9250aea76bfc ("mmc: core: Enable runtime PM management of host devices"), made some calls to the runtime PM API from the driver redundant. Especially those which deals with runtime PM reference counting, so let's remove them. Cc: Ian Molton Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc_pio.c | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 6c09b1d7f644..ff861f6c1f12 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -271,9 +271,6 @@ static void tmio_mmc_reset_work(struct work_struct *work) tmio_mmc_abort_dma(host); mmc_request_done(host->mmc, mrq); - - pm_runtime_mark_last_busy(mmc_dev(host->mmc)); - pm_runtime_put_autosuspend(mmc_dev(host->mmc)); } /* called with host->lock held, interrupts disabled */ @@ -303,9 +300,6 @@ static void tmio_mmc_finish_request(struct tmio_mmc_host *host) tmio_mmc_abort_dma(host); mmc_request_done(host->mmc, mrq); - - pm_runtime_mark_last_busy(mmc_dev(host->mmc)); - pm_runtime_put_autosuspend(mmc_dev(host->mmc)); } static void tmio_mmc_done_work(struct work_struct *work) @@ -817,8 +811,6 @@ static void tmio_mmc_request(struct mmc_host *mmc, struct mmc_request *mrq) spin_unlock_irqrestore(&host->lock, flags); - pm_runtime_get_sync(mmc_dev(mmc)); - if (mrq->data) { ret = tmio_mmc_start_data(host, mrq->data); if (ret) @@ -837,9 +829,6 @@ static void tmio_mmc_request(struct mmc_host *mmc, struct mmc_request *mrq) host->mrq = NULL; mrq->cmd->error = ret; mmc_request_done(mmc, mrq); - - pm_runtime_mark_last_busy(mmc_dev(mmc)); - pm_runtime_put_autosuspend(mmc_dev(mmc)); } static int tmio_mmc_clk_enable(struct tmio_mmc_host *host) @@ -923,8 +912,6 @@ static void tmio_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) struct device *dev = &host->pdev->dev; unsigned long flags; - pm_runtime_get_sync(mmc_dev(mmc)); - mutex_lock(&host->ios_lock); spin_lock_irqsave(&host->lock, flags); @@ -979,9 +966,6 @@ static void tmio_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) host->clk_cache = ios->clock; mutex_unlock(&host->ios_lock); - - pm_runtime_mark_last_busy(mmc_dev(mmc)); - pm_runtime_put_autosuspend(mmc_dev(mmc)); } static int tmio_mmc_get_ro(struct mmc_host *mmc) @@ -992,11 +976,8 @@ static int tmio_mmc_get_ro(struct mmc_host *mmc) if (ret >= 0) return ret; - pm_runtime_get_sync(mmc_dev(mmc)); ret = !((pdata->flags & TMIO_MMC_WRPROTECT_DISABLE) || (sd_ctrl_read32(host, CTL_STATUS) & TMIO_STAT_WRPROTECT)); - pm_runtime_mark_last_busy(mmc_dev(mmc)); - pm_runtime_put_autosuspend(mmc_dev(mmc)); return ret; } From 212dff2203a76467a9ac5245f33e6e55d1f2f124 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:46 +0000 Subject: [PATCH 0702/1149] mmc: sh_mobile_sdhi: remove obsolete irq_by_name registration commit adcbc949046366edb46e44f72ac9197c32675cfd upstream. There is no user left in the kernel, so this code can be removed. (Legacy, non-DT sh_mobile boards have been removed a while ago.) The diff looks more complicated than it is: The if-block for multiplexed isr is now the main code path, the rest is removed. Signed-off-by: Wolfram Sang Acked-by: Arnd Bergmann Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 57 +++++-------------------------- 1 file changed, 8 insertions(+), 49 deletions(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index d6035b49d103..ea78c770d64f 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -28,7 +28,6 @@ #include #include #include -#include #include #include #include @@ -318,7 +317,6 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) struct tmio_mmc_host *host; struct resource *res; int irq, ret, i = 0; - bool multiplexed_isr = true; struct tmio_mmc_dma *dma_priv; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); @@ -410,62 +408,23 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) if (ret < 0) goto efree; - /* - * Allow one or more specific (named) ISRs or - * one or more multiplexed (un-named) ISRs. - */ - - irq = platform_get_irq_byname(pdev, SH_MOBILE_SDHI_IRQ_CARD_DETECT); - if (irq >= 0) { - multiplexed_isr = false; - ret = devm_request_irq(&pdev->dev, irq, tmio_mmc_card_detect_irq, 0, + while (1) { + irq = platform_get_irq(pdev, i); + if (irq < 0) + break; + i++; + ret = devm_request_irq(&pdev->dev, irq, tmio_mmc_irq, 0, dev_name(&pdev->dev), host); if (ret) goto eirq; } - irq = platform_get_irq_byname(pdev, SH_MOBILE_SDHI_IRQ_SDIO); - if (irq >= 0) { - multiplexed_isr = false; - ret = devm_request_irq(&pdev->dev, irq, tmio_mmc_sdio_irq, 0, - dev_name(&pdev->dev), host); - if (ret) - goto eirq; - } - - irq = platform_get_irq_byname(pdev, SH_MOBILE_SDHI_IRQ_SDCARD); - if (irq >= 0) { - multiplexed_isr = false; - ret = devm_request_irq(&pdev->dev, irq, tmio_mmc_sdcard_irq, 0, - dev_name(&pdev->dev), host); - if (ret) - goto eirq; - } else if (!multiplexed_isr) { - dev_err(&pdev->dev, - "Principal SD-card IRQ is missing among named interrupts\n"); + /* There must be at least one IRQ source */ + if (!i) { ret = irq; goto eirq; } - if (multiplexed_isr) { - while (1) { - irq = platform_get_irq(pdev, i); - if (irq < 0) - break; - i++; - ret = devm_request_irq(&pdev->dev, irq, tmio_mmc_irq, 0, - dev_name(&pdev->dev), host); - if (ret) - goto eirq; - } - - /* There must be at least one IRQ source */ - if (!i) { - ret = irq; - goto eirq; - } - } - dev_info(&pdev->dev, "%s base at 0x%08lx max clock rate %u MHz\n", mmc_hostname(host->mmc), (unsigned long) (platform_get_resource(pdev, IORESOURCE_MEM, 0)->start), From 8ce4929dec3fd63c108dd3ea00ac9b6ad8fc1a3c Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:47 +0000 Subject: [PATCH 0703/1149] mmc: tmio: remove now unneeded seperate irq handlers commit 4da986703882b2987b5731e8b31b88eece8c2fbb upstream. We removed installation of separate handlers previously, so we can also remove the separate handlers. Signed-off-by: Wolfram Sang Acked-by: Arnd Bergmann Signed-off-by: Ulf Hansson Signed-off-by: Biju Das [ Backported to 4.4 kernel ] Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc.h | 3 --- drivers/mmc/host/tmio_mmc_pio.c | 36 +++++++-------------------------- 2 files changed, 7 insertions(+), 32 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index b1819c74965b..032188b766de 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -115,9 +115,6 @@ void tmio_mmc_do_data_irq(struct tmio_mmc_host *host); void tmio_mmc_enable_mmc_irqs(struct tmio_mmc_host *host, u32 i); void tmio_mmc_disable_mmc_irqs(struct tmio_mmc_host *host, u32 i); irqreturn_t tmio_mmc_irq(int irq, void *devid); -irqreturn_t tmio_mmc_sdcard_irq(int irq, void *devid); -irqreturn_t tmio_mmc_card_detect_irq(int irq, void *devid); -irqreturn_t tmio_mmc_sdio_irq(int irq, void *devid); static inline char *tmio_mmc_kmap_atomic(struct scatterlist *sg, unsigned long *flags) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index ff861f6c1f12..1e050a43ed32 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -658,18 +658,6 @@ static bool __tmio_mmc_card_detect_irq(struct tmio_mmc_host *host, return false; } -irqreturn_t tmio_mmc_card_detect_irq(int irq, void *devid) -{ - unsigned int ireg, status; - struct tmio_mmc_host *host = devid; - - tmio_mmc_card_irq_status(host, &ireg, &status); - __tmio_mmc_card_detect_irq(host, ireg, status); - - return IRQ_HANDLED; -} -EXPORT_SYMBOL(tmio_mmc_card_detect_irq); - static bool __tmio_mmc_sdcard_irq(struct tmio_mmc_host *host, int ireg, int status) { @@ -699,19 +687,7 @@ static bool __tmio_mmc_sdcard_irq(struct tmio_mmc_host *host, return false; } -irqreturn_t tmio_mmc_sdcard_irq(int irq, void *devid) -{ - unsigned int ireg, status; - struct tmio_mmc_host *host = devid; - - tmio_mmc_card_irq_status(host, &ireg, &status); - __tmio_mmc_sdcard_irq(host, ireg, status); - - return IRQ_HANDLED; -} -EXPORT_SYMBOL(tmio_mmc_sdcard_irq); - -irqreturn_t tmio_mmc_sdio_irq(int irq, void *devid) +static bool tmio_mmc_sdio_irq(int irq, void *devid) { struct tmio_mmc_host *host = devid; struct mmc_host *mmc = host->mmc; @@ -720,7 +696,7 @@ irqreturn_t tmio_mmc_sdio_irq(int irq, void *devid) unsigned int sdio_status; if (!(pdata->flags & TMIO_MMC_SDIO_IRQ)) - return IRQ_NONE; + return false; status = sd_ctrl_read16(host, CTL_SDIO_STATUS); ireg = status & TMIO_SDIO_MASK_ALL & ~host->sdcard_irq_mask; @@ -734,9 +710,8 @@ irqreturn_t tmio_mmc_sdio_irq(int irq, void *devid) if (mmc->caps & MMC_CAP_SDIO_IRQ && ireg & TMIO_SDIO_STAT_IOIRQ) mmc_signal_sdio_irq(mmc); - return IRQ_RETVAL(ireg); + return ireg; } -EXPORT_SYMBOL(tmio_mmc_sdio_irq); irqreturn_t tmio_mmc_irq(int irq, void *devid) { @@ -751,7 +726,10 @@ irqreturn_t tmio_mmc_irq(int irq, void *devid) if (__tmio_mmc_sdcard_irq(host, ireg, status)) return IRQ_HANDLED; - return tmio_mmc_sdio_irq(irq, devid); + if (tmio_mmc_sdio_irq(irq, devid)) + return IRQ_HANDLED; + + return IRQ_NONE; } EXPORT_SYMBOL(tmio_mmc_irq); From 050c39b0d9487340f504d41a9fa2f0243c8ff331 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:48 +0000 Subject: [PATCH 0704/1149] mmc: tmio: simplify irq handler commit 958401266e5812619b04765bef23712a72badd55 upstream. Having just one irq handler again, let's include the 'card_status' function in the main handler which is way more readable. Drop a useless debug output while here. It should be a dev_dbg in case we ever need it again. Signed-off-by: Wolfram Sang Acked-by: Arnd Bergmann Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc_pio.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 1e050a43ed32..f4f509c7d646 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -626,19 +626,6 @@ static void tmio_mmc_cmd_irq(struct tmio_mmc_host *host, spin_unlock(&host->lock); } -static void tmio_mmc_card_irq_status(struct tmio_mmc_host *host, - int *ireg, int *status) -{ - *status = sd_ctrl_read32(host, CTL_STATUS); - *ireg = *status & TMIO_MASK_IRQ & ~host->sdcard_irq_mask; - - pr_debug_status(*status); - pr_debug_status(*ireg); - - /* Clear the status except the interrupt status */ - sd_ctrl_write32(host, CTL_STATUS, TMIO_MASK_IRQ); -} - static bool __tmio_mmc_card_detect_irq(struct tmio_mmc_host *host, int ireg, int status) { @@ -718,9 +705,15 @@ irqreturn_t tmio_mmc_irq(int irq, void *devid) struct tmio_mmc_host *host = devid; unsigned int ireg, status; - pr_debug("MMC IRQ begin\n"); + status = sd_ctrl_read32(host, CTL_STATUS); + ireg = status & TMIO_MASK_IRQ & ~host->sdcard_irq_mask; + + pr_debug_status(status); + pr_debug_status(ireg); + + /* Clear the status except the interrupt status */ + sd_ctrl_write32(host, CTL_STATUS, TMIO_MASK_IRQ); - tmio_mmc_card_irq_status(host, &ireg, &status); if (__tmio_mmc_card_detect_irq(host, ireg, status)) return IRQ_HANDLED; if (__tmio_mmc_sdcard_irq(host, ireg, status)) From 99b414be8939e4b602e104cc4df897419aa2bdce Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:49 +0000 Subject: [PATCH 0705/1149] mmc: tmio: merge distributed include files commit ac86045ee9cd89774030ff1c21c7ff35f1c1eeaa upstream. There is no reason to have a public and private header file. Merge them into a private one, so looking up symbols is less confusing. Signed-off-by: Wolfram Sang Acked-by: Arnd Bergmann Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc.h | 56 ++++++++++++++++++++++++- drivers/mmc/host/tmio_mmc_dma.c | 1 - drivers/mmc/host/tmio_mmc_pio.c | 1 - include/linux/mmc/tmio.h | 73 --------------------------------- 4 files changed, 55 insertions(+), 76 deletions(-) delete mode 100644 include/linux/mmc/tmio.h diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index 032188b766de..439fdad2bad9 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -1,6 +1,8 @@ /* * linux/drivers/mmc/host/tmio_mmc.h * + * Copyright (C) 2016 Sang Engineering, Wolfram Sang + * Copyright (C) 2015-16 Renesas Electronics Corporation * Copyright (C) 2007 Ian Molton * Copyright (C) 2004 Ian Molton * @@ -18,12 +20,64 @@ #include #include -#include #include #include #include #include +#define CTL_SD_CMD 0x00 +#define CTL_ARG_REG 0x04 +#define CTL_STOP_INTERNAL_ACTION 0x08 +#define CTL_XFER_BLK_COUNT 0xa +#define CTL_RESPONSE 0x0c +#define CTL_STATUS 0x1c +#define CTL_STATUS2 0x1e +#define CTL_IRQ_MASK 0x20 +#define CTL_SD_CARD_CLK_CTL 0x24 +#define CTL_SD_XFER_LEN 0x26 +#define CTL_SD_MEM_CARD_OPT 0x28 +#define CTL_SD_ERROR_DETAIL_STATUS 0x2c +#define CTL_SD_DATA_PORT 0x30 +#define CTL_TRANSACTION_CTL 0x34 +#define CTL_SDIO_STATUS 0x36 +#define CTL_SDIO_IRQ_MASK 0x38 +#define CTL_DMA_ENABLE 0xd8 +#define CTL_RESET_SD 0xe0 +#define CTL_VERSION 0xe2 +#define CTL_SDIO_REGS 0x100 +#define CTL_CLK_AND_WAIT_CTL 0x138 +#define CTL_RESET_SDIO 0x1e0 + +/* Definitions for values the CTRL_STATUS register can take. */ +#define TMIO_STAT_CMDRESPEND 0x00000001 +#define TMIO_STAT_DATAEND 0x00000004 +#define TMIO_STAT_CARD_REMOVE 0x00000008 +#define TMIO_STAT_CARD_INSERT 0x00000010 +#define TMIO_STAT_SIGSTATE 0x00000020 +#define TMIO_STAT_WRPROTECT 0x00000080 +#define TMIO_STAT_CARD_REMOVE_A 0x00000100 +#define TMIO_STAT_CARD_INSERT_A 0x00000200 +#define TMIO_STAT_SIGSTATE_A 0x00000400 +#define TMIO_STAT_CMD_IDX_ERR 0x00010000 +#define TMIO_STAT_CRCFAIL 0x00020000 +#define TMIO_STAT_STOPBIT_ERR 0x00040000 +#define TMIO_STAT_DATATIMEOUT 0x00080000 +#define TMIO_STAT_RXOVERFLOW 0x00100000 +#define TMIO_STAT_TXUNDERRUN 0x00200000 +#define TMIO_STAT_CMDTIMEOUT 0x00400000 +#define TMIO_STAT_RXRDY 0x01000000 +#define TMIO_STAT_TXRQ 0x02000000 +#define TMIO_STAT_ILL_FUNC 0x20000000 +#define TMIO_STAT_CMD_BUSY 0x40000000 +#define TMIO_STAT_ILL_ACCESS 0x80000000 + +#define TMIO_STATUS2_DAT0 BIT(7) + +#define CLK_CTL_DIV_MASK 0xff +#define CLK_CTL_SCLKEN BIT(8) + +#define TMIO_BBS 512 /* Boot block size */ + /* Definitions for values the CTRL_SDIO_STATUS register can take. */ #define TMIO_SDIO_STAT_IOIRQ 0x0001 #define TMIO_SDIO_STAT_EXPUB52 0x4000 diff --git a/drivers/mmc/host/tmio_mmc_dma.c b/drivers/mmc/host/tmio_mmc_dma.c index 675435873823..d1573687515d 100644 --- a/drivers/mmc/host/tmio_mmc_dma.c +++ b/drivers/mmc/host/tmio_mmc_dma.c @@ -15,7 +15,6 @@ #include #include #include -#include #include #include diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index f4f509c7d646..78fd34353b56 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -39,7 +39,6 @@ #include #include #include -#include #include #include #include diff --git a/include/linux/mmc/tmio.h b/include/linux/mmc/tmio.h deleted file mode 100644 index b2f28e995033..000000000000 --- a/include/linux/mmc/tmio.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * include/linux/mmc/tmio.h - * - * Copyright (C) 2016 Sang Engineering, Wolfram Sang - * Copyright (C) 2015-16 Renesas Electronics Corporation - * Copyright (C) 2007 Ian Molton - * Copyright (C) 2004 Ian Molton - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * Driver for the MMC / SD / SDIO cell found in: - * - * TC6393XB TC6391XB TC6387XB T7L66XB ASIC3 - */ -#ifndef LINUX_MMC_TMIO_H -#define LINUX_MMC_TMIO_H - -#define CTL_SD_CMD 0x00 -#define CTL_ARG_REG 0x04 -#define CTL_STOP_INTERNAL_ACTION 0x08 -#define CTL_XFER_BLK_COUNT 0xa -#define CTL_RESPONSE 0x0c -#define CTL_STATUS 0x1c -#define CTL_STATUS2 0x1e -#define CTL_IRQ_MASK 0x20 -#define CTL_SD_CARD_CLK_CTL 0x24 -#define CTL_SD_XFER_LEN 0x26 -#define CTL_SD_MEM_CARD_OPT 0x28 -#define CTL_SD_ERROR_DETAIL_STATUS 0x2c -#define CTL_SD_DATA_PORT 0x30 -#define CTL_TRANSACTION_CTL 0x34 -#define CTL_SDIO_STATUS 0x36 -#define CTL_SDIO_IRQ_MASK 0x38 -#define CTL_DMA_ENABLE 0xd8 -#define CTL_RESET_SD 0xe0 -#define CTL_VERSION 0xe2 -#define CTL_SDIO_REGS 0x100 -#define CTL_CLK_AND_WAIT_CTL 0x138 -#define CTL_RESET_SDIO 0x1e0 - -/* Definitions for values the CTRL_STATUS register can take. */ -#define TMIO_STAT_CMDRESPEND 0x00000001 -#define TMIO_STAT_DATAEND 0x00000004 -#define TMIO_STAT_CARD_REMOVE 0x00000008 -#define TMIO_STAT_CARD_INSERT 0x00000010 -#define TMIO_STAT_SIGSTATE 0x00000020 -#define TMIO_STAT_WRPROTECT 0x00000080 -#define TMIO_STAT_CARD_REMOVE_A 0x00000100 -#define TMIO_STAT_CARD_INSERT_A 0x00000200 -#define TMIO_STAT_SIGSTATE_A 0x00000400 -#define TMIO_STAT_CMD_IDX_ERR 0x00010000 -#define TMIO_STAT_CRCFAIL 0x00020000 -#define TMIO_STAT_STOPBIT_ERR 0x00040000 -#define TMIO_STAT_DATATIMEOUT 0x00080000 -#define TMIO_STAT_RXOVERFLOW 0x00100000 -#define TMIO_STAT_TXUNDERRUN 0x00200000 -#define TMIO_STAT_CMDTIMEOUT 0x00400000 -#define TMIO_STAT_RXRDY 0x01000000 -#define TMIO_STAT_TXRQ 0x02000000 -#define TMIO_STAT_ILL_FUNC 0x20000000 -#define TMIO_STAT_CMD_BUSY 0x40000000 -#define TMIO_STAT_ILL_ACCESS 0x80000000 - -#define TMIO_STATUS2_DAT0 BIT(7) - -#define CLK_CTL_DIV_MASK 0xff -#define CLK_CTL_SCLKEN BIT(8) - -#define TMIO_BBS 512 /* Boot block size */ - -#endif /* LINUX_MMC_TMIO_H */ From 7fdfb0ac1b0e2246c56b754d0cb45c60bf4633fd Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:50 +0000 Subject: [PATCH 0706/1149] mmc: tmio: give read32/write32 functions more descriptive names commit 2c54506b769d0633aac8f0511ef23f76bedeec9e upstream. Looking at the backlogs, I am not the only one who missed that the above functions do not read u32 from one register, but create a virtual u32 from reading to adjacent u16 registers (which depending on 'bus_shift' can be up to 8 byte apart). Because this driver supports old hardware for which we don't have documentation, I first wrongly assumed there was a variant which had a few u32 registers. Let's give the functions more descriptive names to make it more obvious what is happening. Reviewed-by: Simon Horman Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc.h | 5 ++--- drivers/mmc/host/tmio_mmc_pio.c | 22 +++++++++++----------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index 439fdad2bad9..e75e5ca220bc 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -232,7 +232,7 @@ static inline void sd_ctrl_read16_rep(struct tmio_mmc_host *host, int addr, readsw(host->ctl + (addr << host->bus_shift), buf, count); } -static inline u32 sd_ctrl_read32(struct tmio_mmc_host *host, int addr) +static inline u32 sd_ctrl_read16_and_16_as_32(struct tmio_mmc_host *host, int addr) { return readw(host->ctl + (addr << host->bus_shift)) | readw(host->ctl + ((addr + 2) << host->bus_shift)) << 16; @@ -254,11 +254,10 @@ static inline void sd_ctrl_write16_rep(struct tmio_mmc_host *host, int addr, writesw(host->ctl + (addr << host->bus_shift), buf, count); } -static inline void sd_ctrl_write32(struct tmio_mmc_host *host, int addr, u32 val) +static inline void sd_ctrl_write32_as_16_and_16(struct tmio_mmc_host *host, int addr, u32 val) { writew(val, host->ctl + (addr << host->bus_shift)); writew(val >> 16, host->ctl + ((addr + 2) << host->bus_shift)); } - #endif diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 78fd34353b56..fcc6879e6495 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -55,18 +55,18 @@ void tmio_mmc_enable_mmc_irqs(struct tmio_mmc_host *host, u32 i) { host->sdcard_irq_mask &= ~(i & TMIO_MASK_IRQ); - sd_ctrl_write32(host, CTL_IRQ_MASK, host->sdcard_irq_mask); + sd_ctrl_write32_as_16_and_16(host, CTL_IRQ_MASK, host->sdcard_irq_mask); } void tmio_mmc_disable_mmc_irqs(struct tmio_mmc_host *host, u32 i) { host->sdcard_irq_mask |= (i & TMIO_MASK_IRQ); - sd_ctrl_write32(host, CTL_IRQ_MASK, host->sdcard_irq_mask); + sd_ctrl_write32_as_16_and_16(host, CTL_IRQ_MASK, host->sdcard_irq_mask); } static void tmio_mmc_ack_mmc_irqs(struct tmio_mmc_host *host, u32 i) { - sd_ctrl_write32(host, CTL_STATUS, ~i); + sd_ctrl_write32_as_16_and_16(host, CTL_STATUS, ~i); } static void tmio_mmc_init_sg(struct tmio_mmc_host *host, struct mmc_data *data) @@ -375,7 +375,7 @@ static int tmio_mmc_start_command(struct tmio_mmc_host *host, struct mmc_command tmio_mmc_enable_mmc_irqs(host, irq_mask); /* Fire off the command */ - sd_ctrl_write32(host, CTL_ARG_REG, cmd->arg); + sd_ctrl_write32_as_16_and_16(host, CTL_ARG_REG, cmd->arg); sd_ctrl_write16(host, CTL_SD_CMD, c); return 0; @@ -530,7 +530,7 @@ static void tmio_mmc_data_irq(struct tmio_mmc_host *host) goto out; if (host->chan_tx && (data->flags & MMC_DATA_WRITE) && !host->force_pio) { - u32 status = sd_ctrl_read32(host, CTL_STATUS); + u32 status = sd_ctrl_read16_and_16_as_32(host, CTL_STATUS); bool done = false; /* @@ -585,7 +585,7 @@ static void tmio_mmc_cmd_irq(struct tmio_mmc_host *host, */ for (i = 3, addr = CTL_RESPONSE ; i >= 0 ; i--, addr += 4) - cmd->resp[i] = sd_ctrl_read32(host, addr); + cmd->resp[i] = sd_ctrl_read16_and_16_as_32(host, addr); if (cmd->flags & MMC_RSP_136) { cmd->resp[0] = (cmd->resp[0] << 8) | (cmd->resp[1] >> 24); @@ -704,14 +704,14 @@ irqreturn_t tmio_mmc_irq(int irq, void *devid) struct tmio_mmc_host *host = devid; unsigned int ireg, status; - status = sd_ctrl_read32(host, CTL_STATUS); + status = sd_ctrl_read16_and_16_as_32(host, CTL_STATUS); ireg = status & TMIO_MASK_IRQ & ~host->sdcard_irq_mask; pr_debug_status(status); pr_debug_status(ireg); /* Clear the status except the interrupt status */ - sd_ctrl_write32(host, CTL_STATUS, TMIO_MASK_IRQ); + sd_ctrl_write32_as_16_and_16(host, CTL_STATUS, TMIO_MASK_IRQ); if (__tmio_mmc_card_detect_irq(host, ireg, status)) return IRQ_HANDLED; @@ -947,7 +947,7 @@ static int tmio_mmc_get_ro(struct mmc_host *mmc) return ret; ret = !((pdata->flags & TMIO_MMC_WRPROTECT_DISABLE) || - (sd_ctrl_read32(host, CTL_STATUS) & TMIO_STAT_WRPROTECT)); + (sd_ctrl_read16_and_16_as_32(host, CTL_STATUS) & TMIO_STAT_WRPROTECT)); return ret; } @@ -967,7 +967,7 @@ static int tmio_mmc_card_busy(struct mmc_host *mmc) { struct tmio_mmc_host *host = mmc_priv(mmc); - return !(sd_ctrl_read32(host, CTL_STATUS2) & TMIO_STATUS2_DAT0); + return !(sd_ctrl_read16_and_16_as_32(host, CTL_STATUS2) & TMIO_STATUS2_DAT0); } static struct mmc_host_ops tmio_mmc_ops = { @@ -1116,7 +1116,7 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host, tmio_mmc_clk_stop(_host); tmio_mmc_reset(_host); - _host->sdcard_irq_mask = sd_ctrl_read32(_host, CTL_IRQ_MASK); + _host->sdcard_irq_mask = sd_ctrl_read16_and_16_as_32(_host, CTL_IRQ_MASK); tmio_mmc_disable_mmc_irqs(_host, TMIO_MASK_ALL); /* Unmask the IRQs we want to know about */ From b2f7e9cf94a87c0bef5de00cb604f421069a032e Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:51 +0000 Subject: [PATCH 0707/1149] mmc: tmio: use BIT() within defines commit 2cafc5cb4fcbe648d0d16ec5039ee292d85d7bfa upstream. BIT() makes it easier to match the bits to the datasheet. This is especially important here, since some variants have different names in their datasheets (like with Renesas R-Car). Reviewed-by: Simon Horman Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc.h | 44 +++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index e75e5ca220bc..74945c1a66ce 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -49,27 +49,29 @@ #define CTL_RESET_SDIO 0x1e0 /* Definitions for values the CTRL_STATUS register can take. */ -#define TMIO_STAT_CMDRESPEND 0x00000001 -#define TMIO_STAT_DATAEND 0x00000004 -#define TMIO_STAT_CARD_REMOVE 0x00000008 -#define TMIO_STAT_CARD_INSERT 0x00000010 -#define TMIO_STAT_SIGSTATE 0x00000020 -#define TMIO_STAT_WRPROTECT 0x00000080 -#define TMIO_STAT_CARD_REMOVE_A 0x00000100 -#define TMIO_STAT_CARD_INSERT_A 0x00000200 -#define TMIO_STAT_SIGSTATE_A 0x00000400 -#define TMIO_STAT_CMD_IDX_ERR 0x00010000 -#define TMIO_STAT_CRCFAIL 0x00020000 -#define TMIO_STAT_STOPBIT_ERR 0x00040000 -#define TMIO_STAT_DATATIMEOUT 0x00080000 -#define TMIO_STAT_RXOVERFLOW 0x00100000 -#define TMIO_STAT_TXUNDERRUN 0x00200000 -#define TMIO_STAT_CMDTIMEOUT 0x00400000 -#define TMIO_STAT_RXRDY 0x01000000 -#define TMIO_STAT_TXRQ 0x02000000 -#define TMIO_STAT_ILL_FUNC 0x20000000 -#define TMIO_STAT_CMD_BUSY 0x40000000 -#define TMIO_STAT_ILL_ACCESS 0x80000000 +#define TMIO_STAT_CMDRESPEND BIT(0) +#define TMIO_STAT_DATAEND BIT(2) +#define TMIO_STAT_CARD_REMOVE BIT(3) +#define TMIO_STAT_CARD_INSERT BIT(4) +#define TMIO_STAT_SIGSTATE BIT(5) +#define TMIO_STAT_WRPROTECT BIT(7) +#define TMIO_STAT_CARD_REMOVE_A BIT(8) +#define TMIO_STAT_CARD_INSERT_A BIT(9) +#define TMIO_STAT_SIGSTATE_A BIT(10) + +/* These belong technically to CTRL_STATUS2, but the driver merges them */ +#define TMIO_STAT_CMD_IDX_ERR BIT(16) +#define TMIO_STAT_CRCFAIL BIT(17) +#define TMIO_STAT_STOPBIT_ERR BIT(18) +#define TMIO_STAT_DATATIMEOUT BIT(19) +#define TMIO_STAT_RXOVERFLOW BIT(20) +#define TMIO_STAT_TXUNDERRUN BIT(21) +#define TMIO_STAT_CMDTIMEOUT BIT(22) +#define TMIO_STAT_RXRDY BIT(24) +#define TMIO_STAT_TXRQ BIT(25) +#define TMIO_STAT_ILL_FUNC BIT(29) +#define TMIO_STAT_CMD_BUSY BIT(30) +#define TMIO_STAT_ILL_ACCESS BIT(31) #define TMIO_STATUS2_DAT0 BIT(7) From 533a8c15b9a3930af4e55c7067f700fe04675e42 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:52 +0000 Subject: [PATCH 0708/1149] mmc: tmio: use CTL_STATUS consistently commit 83e95351d49f60d6cf37706bf94529116d03e648 upstream. To prevent confusion, use the virtual u32 CTL_STATUS in card_busy() the same way as in other parts of this driver. Reviewed-by: Simon Horman Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc.h | 3 +-- drivers/mmc/host/tmio_mmc_pio.c | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index 74945c1a66ce..55f251fdb786 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -67,14 +67,13 @@ #define TMIO_STAT_RXOVERFLOW BIT(20) #define TMIO_STAT_TXUNDERRUN BIT(21) #define TMIO_STAT_CMDTIMEOUT BIT(22) +#define TMIO_STAT_DAT0 BIT(23) /* only known on R-Car so far */ #define TMIO_STAT_RXRDY BIT(24) #define TMIO_STAT_TXRQ BIT(25) #define TMIO_STAT_ILL_FUNC BIT(29) #define TMIO_STAT_CMD_BUSY BIT(30) #define TMIO_STAT_ILL_ACCESS BIT(31) -#define TMIO_STATUS2_DAT0 BIT(7) - #define CLK_CTL_DIV_MASK 0xff #define CLK_CTL_SCLKEN BIT(8) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index fcc6879e6495..3a9620fb5f94 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -967,7 +967,7 @@ static int tmio_mmc_card_busy(struct mmc_host *mmc) { struct tmio_mmc_host *host = mmc_priv(mmc); - return !(sd_ctrl_read16_and_16_as_32(host, CTL_STATUS2) & TMIO_STATUS2_DAT0); + return !(sd_ctrl_read16_and_16_as_32(host, CTL_STATUS) & TMIO_STAT_DAT0); } static struct mmc_host_ops tmio_mmc_ops = { From 7c5e97d420c23f1a15d0d7a77d7f1b942c45ca68 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:53 +0000 Subject: [PATCH 0709/1149] mmc: tmio/sdhi: distinguish between SCLKDIVEN and ILL_FUNC commit a21553c9e0c236ae241d9f4333aafae24ae19dfc upstream. This bit has a different meaning in SDHI and original TMIO. Document that and use the proper naming. Reviewed-by: Simon Horman Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 3 ++- drivers/mmc/host/tmio_mmc.h | 3 ++- drivers/mmc/host/tmio_mmc_pio.c | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index ea78c770d64f..7bb29008f6be 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -252,7 +252,8 @@ static int sh_mobile_sdhi_wait_idle(struct tmio_mmc_host *host) { int timeout = 1000; - while (--timeout && !(sd_ctrl_read16(host, CTL_STATUS2) & (1 << 13))) + while (--timeout && !(sd_ctrl_read16_and_16_as_32(host, CTL_STATUS) + & TMIO_STAT_SCLKDIVEN)) udelay(1); if (!timeout) { diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index 55f251fdb786..8dd5ea4be0a3 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -70,7 +70,8 @@ #define TMIO_STAT_DAT0 BIT(23) /* only known on R-Car so far */ #define TMIO_STAT_RXRDY BIT(24) #define TMIO_STAT_TXRQ BIT(25) -#define TMIO_STAT_ILL_FUNC BIT(29) +#define TMIO_STAT_ILL_FUNC BIT(29) /* only when !TMIO_MMC_HAS_IDLE_WAIT */ +#define TMIO_STAT_SCLKDIVEN BIT(29) /* only when TMIO_MMC_HAS_IDLE_WAIT */ #define TMIO_STAT_CMD_BUSY BIT(30) #define TMIO_STAT_ILL_ACCESS BIT(31) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 3a9620fb5f94..dbad002dbd22 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -542,7 +542,7 @@ static void tmio_mmc_data_irq(struct tmio_mmc_host *host) * waiting for one more interrupt fixes the problem. */ if (host->pdata->flags & TMIO_MMC_HAS_IDLE_WAIT) { - if (status & TMIO_STAT_ILL_FUNC) + if (status & TMIO_STAT_SCLKDIVEN) done = true; } else { if (!(status & TMIO_STAT_CMD_BUSY)) From 0ef4aa0e2abf93f1ca4ba3a890ee04099135ad71 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:54 +0000 Subject: [PATCH 0710/1149] mmc: tmio: document CTL_STATUS handling commit 184adf202bca05ca34380cb53b349307aede7ef3 upstream. Now that reading CTL_STATUS is consistent, we can remove CTL_STATUS2 and document how this is handled internally. Reviewed-by: Simon Horman Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index 8dd5ea4be0a3..1aac2ad8edf2 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -30,8 +30,9 @@ #define CTL_STOP_INTERNAL_ACTION 0x08 #define CTL_XFER_BLK_COUNT 0xa #define CTL_RESPONSE 0x0c +/* driver merges STATUS and following STATUS2 */ #define CTL_STATUS 0x1c -#define CTL_STATUS2 0x1e +/* driver merges IRQ_MASK and following IRQ_MASK2 */ #define CTL_IRQ_MASK 0x20 #define CTL_SD_CARD_CLK_CTL 0x24 #define CTL_SD_XFER_LEN 0x26 From 3f0f5be828dbdd7d69da503e9df14cd4ed2b48d9 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:55 +0000 Subject: [PATCH 0711/1149] mmc: tmio/sdhi: introduce flag for RCar 2+ specific features commit 3d376fb2ea907f0c1bbccf87125456439feb4ed4 upstream. RCar Gen2 and later implementations of TMIO/SDHI have their own set of features and additions. FAST_CLK_CHG is just one of them and I see a few others being added soon. Some may work on older chipsets but this needs to be tested case by case. Instead of adding a bunch of flags for each feature, add a global RCar2+ one for now. We can still break out features if the need arises. Signed-off-by: Wolfram Sang Tested-by: Geert Uytterhoeven Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 4 ++-- drivers/mmc/host/tmio_mmc_pio.c | 6 +++--- include/linux/mfd/tmio.h | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index 7bb29008f6be..f7317cff3a4a 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -64,7 +64,7 @@ static const struct sh_mobile_sdhi_of_data of_rcar_gen1_compatible = { static const struct sh_mobile_sdhi_of_data of_rcar_gen2_compatible = { .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_WRPROTECT_DISABLE | - TMIO_MMC_CLK_ACTUAL | TMIO_MMC_FAST_CLK_CHG, + TMIO_MMC_CLK_ACTUAL | TMIO_MMC_MIN_RCAR2, .capabilities = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ, .dma_buswidth = DMA_SLAVE_BUSWIDTH_4_BYTES, .dma_rx_offset = 0x2000, @@ -72,7 +72,7 @@ static const struct sh_mobile_sdhi_of_data of_rcar_gen2_compatible = { static const struct sh_mobile_sdhi_of_data of_rcar_gen3_compatible = { .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_WRPROTECT_DISABLE | - TMIO_MMC_CLK_ACTUAL | TMIO_MMC_FAST_CLK_CHG, + TMIO_MMC_CLK_ACTUAL | TMIO_MMC_MIN_RCAR2, .capabilities = MMC_CAP_SD_HIGHSPEED, .bus_shift = 2, }; diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index dbad002dbd22..b14672d73974 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -157,7 +157,7 @@ static void tmio_mmc_clk_start(struct tmio_mmc_host *host) { sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, CLK_CTL_SCLKEN | sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); - msleep(host->pdata->flags & TMIO_MMC_FAST_CLK_CHG ? 1 : 10); + msleep(host->pdata->flags & TMIO_MMC_MIN_RCAR2 ? 1 : 10); if (host->pdata->flags & TMIO_MMC_HAVE_HIGH_REG) { sd_ctrl_write16(host, CTL_CLK_AND_WAIT_CTL, 0x0100); @@ -174,7 +174,7 @@ static void tmio_mmc_clk_stop(struct tmio_mmc_host *host) sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, ~CLK_CTL_SCLKEN & sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); - msleep(host->pdata->flags & TMIO_MMC_FAST_CLK_CHG ? 5 : 10); + msleep(host->pdata->flags & TMIO_MMC_MIN_RCAR2 ? 5 : 10); } static void tmio_mmc_set_clock(struct tmio_mmc_host *host, @@ -205,7 +205,7 @@ static void tmio_mmc_set_clock(struct tmio_mmc_host *host, sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, ~CLK_CTL_SCLKEN & sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, clk & CLK_CTL_DIV_MASK); - if (!(host->pdata->flags & TMIO_MMC_FAST_CLK_CHG)) + if (!(host->pdata->flags & TMIO_MMC_MIN_RCAR2)) msleep(10); tmio_mmc_clk_start(host); diff --git a/include/linux/mfd/tmio.h b/include/linux/mfd/tmio.h index 05d58ee5e6a7..7a26286db895 100644 --- a/include/linux/mfd/tmio.h +++ b/include/linux/mfd/tmio.h @@ -66,8 +66,8 @@ */ #define TMIO_MMC_SDIO_IRQ (1 << 2) -/* Some controllers don't need to wait 10ms for clock changes */ -#define TMIO_MMC_FAST_CLK_CHG (1 << 3) +/* Some features are only available or tested on RCar Gen2 or later */ +#define TMIO_MMC_MIN_RCAR2 (1 << 3) /* * Some controllers require waiting for the SD bus to become From 51eea341e2178ddc428a983f96f1a4ac1a6c9d70 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:56 +0000 Subject: [PATCH 0712/1149] mmc: sh_mobile_sdhi: make clk_update function more compact commit 3072ba8cd95bd0e7fbe9a3a1c9b61fb190257855 upstream. Save a few lines, the codebase is large enough. Signed-off-by: Wolfram Sang Tested-by: Geert Uytterhoeven Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index f7317cff3a4a..efa4fca2f5d5 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -169,12 +169,9 @@ static unsigned int sh_mobile_sdhi_clk_update(struct tmio_mmc_host *host, unsigned int new_clock) { struct sh_mobile_sdhi *priv = host_to_priv(host); - unsigned int freq, best_freq, diff_min, diff; + unsigned int freq, diff, best_freq = 0, diff_min = ~0; int i; - diff_min = ~0; - best_freq = 0; - /* * We want the bus clock to be as close as possible to, but no * greater than, new_clock. As we can divide by 1 << i for From d729028ea3d608844c4e73a36adf52d6b02ccab2 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:57 +0000 Subject: [PATCH 0713/1149] mmc: sh_mobile_sdhi: only change the clock on RCar Gen2+ commit 8fc009986471729533fb1246c7ea9395635dac26 upstream. We had a regression on r8a7740 where the SDHI clock was a generic peripheral clock, so changing its rate was not desired. This should be fixed in the clock driver. However, it also shows that the new clock calculation should only be used on tested systems. Add a check for that. Signed-off-by: Wolfram Sang Tested-by: Geert Uytterhoeven Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index efa4fca2f5d5..d5e4000ea0c2 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -172,6 +172,10 @@ static unsigned int sh_mobile_sdhi_clk_update(struct tmio_mmc_host *host, unsigned int freq, diff, best_freq = 0, diff_min = ~0; int i; + /* tested only on RCar Gen2+ currently; may work for others */ + if (!(host->pdata->flags & TMIO_MMC_MIN_RCAR2)) + return clk_get_rate(priv->clk); + /* * We want the bus clock to be as close as possible to, but no * greater than, new_clock. As we can divide by 1 << i for From 7da501e4a00b5299fa3fabf740e0833e9ce10324 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:58 +0000 Subject: [PATCH 0714/1149] mmc: sh_mobile_sdhi: check return value when changing clk commit f3f44d512cafef7e3d2cb140f642786dd6ec8818 upstream. And return the old clock rate if something went wrong. Signed-off-by: Wolfram Sang Tested-by: Geert Uytterhoeven Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index d5e4000ea0c2..814391b451a2 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -170,7 +170,7 @@ static unsigned int sh_mobile_sdhi_clk_update(struct tmio_mmc_host *host, { struct sh_mobile_sdhi *priv = host_to_priv(host); unsigned int freq, diff, best_freq = 0, diff_min = ~0; - int i; + int i, ret; /* tested only on RCar Gen2+ currently; may work for others */ if (!(host->pdata->flags & TMIO_MMC_MIN_RCAR2)) @@ -199,9 +199,9 @@ static unsigned int sh_mobile_sdhi_clk_update(struct tmio_mmc_host *host, } } - clk_set_rate(priv->clk, best_freq); + ret = clk_set_rate(priv->clk, best_freq); - return best_freq; + return ret == 0 ? best_freq : clk_get_rate(priv->clk); } static void sh_mobile_sdhi_clk_disable(struct tmio_mmc_host *host) From ec79aa19fa3c79e21059d12b6ba896523f18f892 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:31:59 +0000 Subject: [PATCH 0715/1149] mmc: sh_mobile_sdhi: properly document R-Car versions commit a2a16c77a1a2c951b5930c3182e2737cb13e1a53 upstream. Replace hardcoded values with meaningful names and document what we know. Signed-off-by: Wolfram Sang Reviewed-by: Simon Horman Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index 814391b451a2..62b6605ce305 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -39,6 +39,12 @@ #define EXT_ACC 0xe4 +#define SDHI_VER_GEN2_SDR50 0x490c +/* very old datasheets said 0x490c for SDR104, too. They are wrong! */ +#define SDHI_VER_GEN2_SDR104 0xcb0d +#define SDHI_VER_GEN3_SD 0xcc10 +#define SDHI_VER_GEN3_SDMMC 0xcd10 + #define host_to_priv(host) container_of((host)->pdata, struct sh_mobile_sdhi, mmc_data) struct sh_mobile_sdhi_of_data { @@ -113,14 +119,14 @@ static void sh_mobile_sdhi_sdbuf_width(struct tmio_mmc_host *host, int width) * sh_mobile_sdhi_of_data :: dma_buswidth */ switch (sd_ctrl_read16(host, CTL_VERSION)) { - case 0x490C: + case SDHI_VER_GEN2_SDR50: val = (width == 32) ? 0x0001 : 0x0000; break; - case 0xCB0D: + case SDHI_VER_GEN2_SDR104: val = (width == 32) ? 0x0000 : 0x0001; break; - case 0xCC10: /* Gen3, SD only */ - case 0xCD10: /* Gen3, SD + MMC */ + case SDHI_VER_GEN3_SD: + case SDHI_VER_GEN3_SDMMC: if (width == 64) val = 0x0000; else if (width == 32) From b826c1667c2f127529c6316bce71e47fe56df393 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:32:00 +0000 Subject: [PATCH 0716/1149] mmc: host: sh_mobile_sdhi: move card_busy from tmio to sdhi commit 6a4679f312357ac7c74c0e1b996efdd1d0a612fa upstream. card_busy is only used/tested on SDHI for R-Car Gen2 and later. Move it to the SDHI driver, so we can then activate it conditionally depending on the SDHI type. Signed-off-by: Wolfram Sang Tested-by: Geert Uytterhoeven Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 8 ++++++++ drivers/mmc/host/tmio_mmc.h | 1 + drivers/mmc/host/tmio_mmc_pio.c | 9 +-------- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index 62b6605ce305..343aa1abfbc9 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -217,6 +217,13 @@ static void sh_mobile_sdhi_clk_disable(struct tmio_mmc_host *host) clk_disable_unprepare(priv->clk); } +static int sh_mobile_sdhi_card_busy(struct mmc_host *mmc) +{ + struct tmio_mmc_host *host = mmc_priv(mmc); + + return !(sd_ctrl_read16_and_16_as_32(host, CTL_STATUS) & TMIO_STAT_DAT0); +} + static int sh_mobile_sdhi_start_signal_voltage_switch(struct mmc_host *mmc, struct mmc_ios *ios) { @@ -376,6 +383,7 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) host->clk_update = sh_mobile_sdhi_clk_update; host->clk_disable = sh_mobile_sdhi_clk_disable; host->multi_io_quirk = sh_mobile_sdhi_multi_io_quirk; + host->card_busy = sh_mobile_sdhi_card_busy; host->start_signal_voltage_switch = sh_mobile_sdhi_start_signal_voltage_switch; /* Orginally registers were 16 bit apart, could be 32 or 64 nowadays */ diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index 1aac2ad8edf2..addbc715bbd4 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -158,6 +158,7 @@ struct tmio_mmc_host { void (*clk_disable)(struct tmio_mmc_host *host); int (*multi_io_quirk)(struct mmc_card *card, unsigned int direction, int blk_size); + int (*card_busy)(struct mmc_host *mmc); int (*start_signal_voltage_switch)(struct mmc_host *mmc, struct mmc_ios *ios); }; diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index b14672d73974..d499ed2557a8 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -963,20 +963,12 @@ static int tmio_multi_io_quirk(struct mmc_card *card, return blk_size; } -static int tmio_mmc_card_busy(struct mmc_host *mmc) -{ - struct tmio_mmc_host *host = mmc_priv(mmc); - - return !(sd_ctrl_read16_and_16_as_32(host, CTL_STATUS) & TMIO_STAT_DAT0); -} - static struct mmc_host_ops tmio_mmc_ops = { .request = tmio_mmc_request, .set_ios = tmio_mmc_set_ios, .get_ro = tmio_mmc_get_ro, .get_cd = mmc_gpio_get_cd, .enable_sdio_irq = tmio_mmc_enable_sdio_irq, - .card_busy = tmio_mmc_card_busy, .multi_io_quirk = tmio_multi_io_quirk, }; @@ -1075,6 +1067,7 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host, goto host_free; } + tmio_mmc_ops.card_busy = _host->card_busy; tmio_mmc_ops.start_signal_voltage_switch = _host->start_signal_voltage_switch; mmc->ops = &tmio_mmc_ops; From 34fdea005e5c818d46178b814688cfd13c1a5940 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:32:01 +0000 Subject: [PATCH 0717/1149] mmc: host: sh_mobile_sdhi: don't populate unneeded functions commit ff026099d775c74548839f1d627eb0b2bec0b857 upstream. Populating card_busy caused a side-effect on a chip variant we don't have documentation for (r8a73a4). So, enable it and voltage switching only on devices known to support those features. Signed-off-by: Wolfram Sang Tested-by: Geert Uytterhoeven Signed-off-by: Ulf Hansson Fixes: 452e5eef6d31 ("mmc: tmio: Add UHS-I mode support") Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index 343aa1abfbc9..3d186ccaca0c 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -383,8 +383,14 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) host->clk_update = sh_mobile_sdhi_clk_update; host->clk_disable = sh_mobile_sdhi_clk_disable; host->multi_io_quirk = sh_mobile_sdhi_multi_io_quirk; - host->card_busy = sh_mobile_sdhi_card_busy; - host->start_signal_voltage_switch = sh_mobile_sdhi_start_signal_voltage_switch; + + /* SDR speeds are only available on Gen2+ */ + if (mmc_data->flags & TMIO_MMC_MIN_RCAR2) { + /* card_busy caused issues on r8a73a4 (pre-Gen2) CD-less SDHI */ + host->card_busy = sh_mobile_sdhi_card_busy; + host->start_signal_voltage_switch = + sh_mobile_sdhi_start_signal_voltage_switch; + } /* Orginally registers were 16 bit apart, could be 32 or 64 nowadays */ if (!host->bus_shift && resource_size(res) > 0x100) /* old way to determine the shift */ From 9e822d63560a795f41fbbae81d69aa9ca272796d Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:32:02 +0000 Subject: [PATCH 0718/1149] mmc: tmio: add eMMC support commit 0bc0b6e86524526c92a9409faea79d53db8e7e6e upstream. We need to add R1 without CRC support, refactor the bus width routine a little and extend a quirk check. To support "non-removable;" we need a workaround which will be hopefully removed when reworking PM soon. Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc.h | 3 +++ drivers/mmc/host/tmio_mmc_pio.c | 38 ++++++++++++++++++++++----------- 2 files changed, 29 insertions(+), 12 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index addbc715bbd4..eafd92dc239b 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -79,6 +79,9 @@ #define CLK_CTL_DIV_MASK 0xff #define CLK_CTL_SCLKEN BIT(8) +#define CARD_OPT_WIDTH8 BIT(13) +#define CARD_OPT_WIDTH BIT(15) + #define TMIO_BBS 512 /* Boot block size */ /* Definitions for values the CTRL_SDIO_STATUS register can take. */ diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index d499ed2557a8..c9279168bab9 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -336,7 +336,9 @@ static int tmio_mmc_start_command(struct tmio_mmc_host *host, struct mmc_command switch (mmc_resp_type(cmd)) { case MMC_RSP_NONE: c |= RESP_NONE; break; - case MMC_RSP_R1: c |= RESP_R1; break; + case MMC_RSP_R1: + case MMC_RSP_R1_NO_CRC: + c |= RESP_R1; break; case MMC_RSP_R1B: c |= RESP_R1B; break; case MMC_RSP_R2: c |= RESP_R2; break; case MMC_RSP_R3: c |= RESP_R3; break; @@ -733,12 +735,13 @@ static int tmio_mmc_start_data(struct tmio_mmc_host *host, pr_debug("setup data transfer: blocksize %08x nr_blocks %d\n", data->blksz, data->blocks); - /* Some hardware cannot perform 2 byte requests in 4 bit mode */ - if (host->mmc->ios.bus_width == MMC_BUS_WIDTH_4) { + /* Some hardware cannot perform 2 byte requests in 4/8 bit mode */ + if (host->mmc->ios.bus_width == MMC_BUS_WIDTH_4 || + host->mmc->ios.bus_width == MMC_BUS_WIDTH_8) { int blksz_2bytes = pdata->flags & TMIO_MMC_BLKSZ_2BYTES; if (data->blksz < 2 || (data->blksz < 4 && !blksz_2bytes)) { - pr_err("%s: %d byte block unsupported in 4 bit mode\n", + pr_err("%s: %d byte block unsupported in 4/8 bit mode\n", mmc_hostname(host->mmc), data->blksz); return -EINVAL; } @@ -860,14 +863,16 @@ static void tmio_mmc_power_off(struct tmio_mmc_host *host) static void tmio_mmc_set_bus_width(struct tmio_mmc_host *host, unsigned char bus_width) { - switch (bus_width) { - case MMC_BUS_WIDTH_1: - sd_ctrl_write16(host, CTL_SD_MEM_CARD_OPT, 0x80e0); - break; - case MMC_BUS_WIDTH_4: - sd_ctrl_write16(host, CTL_SD_MEM_CARD_OPT, 0x00e0); - break; - } + u16 reg = sd_ctrl_read16(host, CTL_SD_MEM_CARD_OPT) + & ~(CARD_OPT_WIDTH | CARD_OPT_WIDTH8); + + /* reg now applies to MMC_BUS_WIDTH_4 */ + if (bus_width == MMC_BUS_WIDTH_1) + reg |= CARD_OPT_WIDTH; + else if (bus_width == MMC_BUS_WIDTH_8) + reg |= CARD_OPT_WIDTH8; + + sd_ctrl_write16(host, CTL_SD_MEM_CARD_OPT, reg); } /* Set MMC clock / power. @@ -1085,6 +1090,15 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host, mmc->caps & MMC_CAP_NONREMOVABLE || mmc->slot.cd_irq >= 0); + /* + * On Gen2+, eMMC with NONREMOVABLE currently fails because native + * hotplug gets disabled. It seems RuntimePM related yet we need further + * research. Since we are planning a PM overhaul anyway, let's enforce + * for now the device being active by enabling native hotplug always. + */ + if (pdata->flags & TMIO_MMC_MIN_RCAR2) + _host->native_hotplug = true; + if (tmio_mmc_clk_enable(_host) < 0) { mmc->f_max = pdata->hclk; mmc->f_min = mmc->f_max / 512; From a49a20f71ea3b25e6c8233a278a9f8949930946f Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Thu, 7 Nov 2019 08:32:04 +0000 Subject: [PATCH 0719/1149] mmc: add define for R1 response without CRC commit 51b50c961676428cd356d6fa494a2e9f53dc77bf upstream. The core uses it for polling. Give drivers a proper define handle this case like for other response types. Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- include/linux/mmc/core.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/linux/mmc/core.h b/include/linux/mmc/core.h index 37967b6da03c..6c2e28550802 100644 --- a/include/linux/mmc/core.h +++ b/include/linux/mmc/core.h @@ -55,6 +55,9 @@ struct mmc_command { #define MMC_RSP_R6 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE) #define MMC_RSP_R7 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE) +/* Can be used by core to poll after switch to MMC HS mode */ +#define MMC_RSP_R1_NO_CRC (MMC_RSP_PRESENT|MMC_RSP_OPCODE) + #define mmc_resp_type(cmd) ((cmd)->flags & (MMC_RSP_PRESENT|MMC_RSP_136|MMC_RSP_CRC|MMC_RSP_BUSY|MMC_RSP_OPCODE)) /* From 381f78ff50a963d67326e842136b5f41f41b74fd Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 19 Nov 2019 14:53:26 +0000 Subject: [PATCH 0720/1149] dt-bindings: rcar-dmac: Document r8a7744 support commit 6b1e23c93cba2d056a94d9837a17d420dae1f510 upstream. Renesas RZ/G SoC also have the R-Car gen2/3 compatible DMA controllers. Document RZ/G1N (also known as R8A7744) SoC bindings. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Simon Horman Reviewed-by: Geert Uytterhoeven Reviewed-by: Rob Herring Signed-off-by: Vinod Koul Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt b/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt index 5954b05662a2..21fb14c4abf9 100644 --- a/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt +++ b/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt @@ -17,6 +17,7 @@ Required Properties: - compatible: "renesas,dmac-", "renesas,rcar-dmac" as fallback. Examples with soctypes are: - "renesas,dmac-r8a7743" (RZ/G1M) + - "renesas,dmac-r8a7744" (RZ/G1N) - "renesas,dmac-r8a7745" (RZ/G1E) - "renesas,dmac-r8a77470" (RZ/G1C) - "renesas,dmac-r8a7790" (R-Car H2) From ddad7b9692f3e3724832182f02f2488dbdd6c4a4 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 19 Nov 2019 14:53:27 +0000 Subject: [PATCH 0721/1149] ARM: dts: r8a7744: Add SYS-DMAC support commit 484775a5a9d9875ee3b3dde22b913286d91a0c44 upstream. Describe SYS-DMAC0/1 in the R8A7744 device tree. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman [biju: removed resets property. Updated power-domains and clocks properties] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7744.dtsi | 64 ++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index 23afef35d2be..18aedf30d94f 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -198,6 +198,70 @@ /* placeholder */ }; + dmac0: dma-controller@e6700000 { + compatible = "renesas,dmac-r8a7744", + "renesas,rcar-dmac"; + reg = <0 0xe6700000 0 0x20000>; + interrupts = ; + interrupt-names = "error", + "ch0", "ch1", "ch2", "ch3", + "ch4", "ch5", "ch6", "ch7", + "ch8", "ch9", "ch10", "ch11", + "ch12", "ch13", "ch14"; + clocks = <&mstp2_clks R8A7744_CLK_SYS_DMAC0>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <15>; + }; + + dmac1: dma-controller@e6720000 { + compatible = "renesas,dmac-r8a7744", + "renesas,rcar-dmac"; + reg = <0 0xe6720000 0 0x20000>; + interrupts = ; + interrupt-names = "error", + "ch0", "ch1", "ch2", "ch3", + "ch4", "ch5", "ch6", "ch7", + "ch8", "ch9", "ch10", "ch11", + "ch12", "ch13", "ch14"; + clocks = <&mstp2_clks R8A7744_CLK_SYS_DMAC1>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <15>; + }; + avb: ethernet@e6800000 { reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>; #address-cells = <1>; From 30eea07d38c96e80781dce47be4dbba0e61eba21 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 19 Nov 2019 14:53:28 +0000 Subject: [PATCH 0722/1149] dt-bindings: gpio: rcar: Add r8a7744 (RZ/G1N) support commit 9aa64f0be3c8681c66f4a9e3b6ab0c79a5e8f3ac upstream. Renesas RZ/G1N (R8A7744) SoC GPIO blocks are identical to the R-Car Gen2 family. Add support for its GPIO controllers. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Simon Horman Reviewed-by: Geert Uytterhoeven Signed-off-by: Linus Walleij Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt index 8addadf783c4..52fa8e4d8353 100644 --- a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt +++ b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt @@ -4,6 +4,7 @@ Required Properties: - compatible: should contain one or more of the following: - "renesas,gpio-r8a7743": for R8A7743 (RZ/G1M) compatible GPIO controller. + - "renesas,gpio-r8a7744": for R8A7744 (RZ/G1N) compatible GPIO controller. - "renesas,gpio-r8a7745": for R8A7745 (RZ/G1E) compatible GPIO controller. - "renesas,gpio-r8a77470": for R8A77470 (RZ/G1C) compatible GPIO controller. - "renesas,gpio-r8a7778": for R8A7778 (R-Mobile M1) compatible GPIO controller. From a3ec1b185259ccf6596d781ca289bdd27b289f0a Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 19 Nov 2019 14:53:29 +0000 Subject: [PATCH 0723/1149] ARM: dts: r8a7744: Add GPIO support commit 78ce1559b2f1c741ceda6f511c80beee57b1b71e upstream. Describe GPIO blocks in the R8A7744 device tree. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman [biju: removed resets property. Updated power-domains and clocks properties] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7744.dtsi | 94 ++++++++++++++++++++++++++++++++-- 1 file changed, 90 insertions(+), 4 deletions(-) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index 18aedf30d94f..3e125f6f794e 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -115,29 +115,115 @@ ranges; gpio0: gpio@e6050000 { + compatible = "renesas,gpio-r8a7744", + "renesas,rcar-gen2-gpio"; reg = <0 0xe6050000 0 0x50>; + interrupts = ; #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 0 32>; #interrupt-cells = <2>; interrupt-controller; - /* placeholder */ + clocks = <&mstp9_clks R8A7744_CLK_GPIO0>; + power-domains = <&cpg_clocks>; }; gpio1: gpio@e6051000 { + compatible = "renesas,gpio-r8a7744", + "renesas,rcar-gen2-gpio"; reg = <0 0xe6051000 0 0x50>; + interrupts = ; #gpio-cells = <2>; - /* placeholder */ + gpio-controller; + gpio-ranges = <&pfc 0 32 26>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7744_CLK_GPIO1>; + power-domains = <&cpg_clocks>; }; gpio2: gpio@e6052000 { + compatible = "renesas,gpio-r8a7744", + "renesas,rcar-gen2-gpio"; reg = <0 0xe6052000 0 0x50>; + interrupts = ; #gpio-cells = <2>; - /* placeholder */ + gpio-controller; + gpio-ranges = <&pfc 0 64 32>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7744_CLK_GPIO2>; + power-domains = <&cpg_clocks>; + }; + + gpio3: gpio@e6053000 { + compatible = "renesas,gpio-r8a7744", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6053000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 96 32>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7744_CLK_GPIO3>; + power-domains = <&cpg_clocks>; + }; + + gpio4: gpio@e6054000 { + compatible = "renesas,gpio-r8a7744", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6054000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 128 32>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7744_CLK_GPIO4>; + power-domains = <&cpg_clocks>; + }; + + gpio5: gpio@e6055000 { + compatible = "renesas,gpio-r8a7744", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6055000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 160 32>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7744_CLK_GPIO5>; + power-domains = <&cpg_clocks>; }; gpio6: gpio@e6055400 { + compatible = "renesas,gpio-r8a7744", + "renesas,rcar-gen2-gpio"; reg = <0 0xe6055400 0 0x50>; + interrupts = ; #gpio-cells = <2>; - /* placeholder */ + gpio-controller; + gpio-ranges = <&pfc 0 192 32>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7744_CLK_GPIO6>; + power-domains = <&cpg_clocks>; + }; + + gpio7: gpio@e6055800 { + compatible = "renesas,gpio-r8a7744", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6055800 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 224 26>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7744_CLK_GPIO7>; + power-domains = <&cpg_clocks>; }; pfc: pin-controller@e6060000 { From 53c0b6cf6a669c1287dbbe268c8f846d36717c8f Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 19 Nov 2019 14:53:30 +0000 Subject: [PATCH 0724/1149] dt-bindings: net: ravb: Add support for r8a7744 SoC commit b1589924c046a5e774c6c74b195213555617bb78 upstream. Document RZ/G1N (R8A7744) SoC bindings. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Sergei Shtylyov Signed-off-by: David S. Miller Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/net/renesas,ravb.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/net/renesas,ravb.txt b/Documentation/devicetree/bindings/net/renesas,ravb.txt index b289f613b434..0a8e8df01f4b 100644 --- a/Documentation/devicetree/bindings/net/renesas,ravb.txt +++ b/Documentation/devicetree/bindings/net/renesas,ravb.txt @@ -6,6 +6,7 @@ interface contains. Required properties: - compatible: Must contain one or more of the following: - "renesas,etheravb-r8a7743" for the R8A7743 SoC. + - "renesas,etheravb-r8a7744" for the R8A7744 SoC. - "renesas,etheravb-r8a7745" for the R8A7745 SoC. - "renesas,etheravb-r8a77470" for the R8A77470 SoC. - "renesas,etheravb-r8a7790" for the R8A7790 SoC. From f7b00af509ec11b775f1c26c5de0cf858fdc211e Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 19 Nov 2019 14:53:31 +0000 Subject: [PATCH 0725/1149] ARM: dts: r8a7744: Add Ethernet AVB support commit d94369fe69fd235e2109331c41f28dcfcfac28eb upstream. Add Ethernet AVB support for R8A7744 SoC. Signed-off-by: Biju Das Reviewed-by: Simon Horman Signed-off-by: Simon Horman [biju: removed resets property. Updated power-domains and clocks properties] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7744.dtsi | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index 3e125f6f794e..b0c4be2941ae 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -349,10 +349,15 @@ }; avb: ethernet@e6800000 { + compatible = "renesas,etheravb-r8a7744", + "renesas,etheravb-rcar-gen2"; reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>; + interrupts = ; + clocks = <&mstp8_clks R8A7744_CLK_ETHERAVB>; + power-domains = <&cpg_clocks>; #address-cells = <1>; #size-cells = <0>; - /* placeholder */ + status = "disabled"; }; scifb1: serial@e6c30000 { From 1dd000b2840555cd7e989b4377b7b34fbe30a323 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 19 Nov 2019 14:53:32 +0000 Subject: [PATCH 0726/1149] dt-bindings: apmu: Document r8a7744 support commit fae210bb5bfbd29118e18881f7108c6bd59293b9 upstream. Document APMU and SMP enable method for RZ/G1N (R8A7744) SoC. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/power/renesas,apmu.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/power/renesas,apmu.txt b/Documentation/devicetree/bindings/power/renesas,apmu.txt index e80f5f6f8e32..21157fb60f36 100644 --- a/Documentation/devicetree/bindings/power/renesas,apmu.txt +++ b/Documentation/devicetree/bindings/power/renesas,apmu.txt @@ -8,6 +8,7 @@ Required properties: - compatible: Should be "renesas,-apmu", "renesas,apmu" as fallback. Examples with soctypes are: - "renesas,r8a7743-apmu" (RZ/G1M) + - "renesas,r8a7744-apmu" (RZ/G1N) - "renesas,r8a7745-apmu" (RZ/G1E) - "renesas,r8a77470-apmu" (RZ/G1C) - "renesas,r8a7790-apmu" (R-Car H2) From d41a523af50db34a4de247cf43d05b12ea9a248d Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 19 Nov 2019 14:53:33 +0000 Subject: [PATCH 0727/1149] ARM: dts: r8a7744: Add SMP support commit f1546da8a5c8862d1e66835affcfaf9a0c123abc upstream. Add DT node for the Advanced Power Management Unit (APMU), add the second CPU core, and use "renesas,apmu" as "enable-method". Also add cpu1 phandle node to the PMU interrupt-affinity property. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman [biju: removed resets property. Updated power-domains and clocks properties] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7744.dtsi | 38 ++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index b0c4be2941ae..e712b1389c17 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -48,6 +48,7 @@ cpus { #address-cells = <1>; #size-cells = <0>; + enable-method = "renesas,apmu"; cpu0: cpu@0 { device_type = "cpu"; @@ -68,6 +69,25 @@ < 375000 1000000>; }; + cpu1: cpu@1 { + device_type = "cpu"; + compatible = "arm,cortex-a15"; + reg = <1>; + clock-frequency = <1500000000>; + clocks = <&cpg_clocks R8A7744_CLK_Z>; + clock-latency = <300000>; /* 300 us */ + power-domains = <&cpg_clocks>; + next-level-cache = <&L2_CA15>; + + /* kHz - uV - OPPs unknown yet */ + operating-points = <1500000 1000000>, + <1312500 1000000>, + <1125000 1000000>, + < 937500 1000000>, + < 750000 1000000>, + < 375000 1000000>; + }; + L2_CA15: cache-controller-0 { compatible = "cache"; cache-unified; @@ -95,7 +115,7 @@ compatible = "arm,cortex-a15-pmu"; interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; - interrupt-affinity = <&cpu0>; + interrupt-affinity = <&cpu0>, <&cpu1>; }; /* External SCIF clock */ @@ -231,6 +251,12 @@ reg = <0 0xe6060000 0 0x250>; }; + apmu@e6152000 { + compatible = "renesas,r8a7744-apmu", "renesas,apmu"; + reg = <0 0xe6152000 0 0x188>; + cpus = <&cpu0 &cpu1>; + }; + rst: reset-controller@e6160000 { compatible = "renesas,r8a7744-rst"; reg = <0 0xe6160000 0 0x100>; @@ -454,7 +480,7 @@ interrupt-controller; reg = <0 0xf1001000 0 0x1000>, <0 0xf1002000 0 0x2000>, <0 0xf1004000 0 0x2000>, <0 0xf1006000 0 0x2000>; - interrupts = ; + interrupts = ; clocks = <&mstp4_clks R8A7744_CLK_INTC_SYS>; clock-names = "clk"; power-domains = <&cpg_clocks>; @@ -918,10 +944,10 @@ timer { compatible = "arm,armv7-timer"; - interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, - <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, - <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, - <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>; + interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, + <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, + <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, + <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>; }; /* External USB clock - can be overridden by the board */ From a5148603e5af36e7848297475240fed4f201cedb Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 19 Nov 2019 14:53:34 +0000 Subject: [PATCH 0728/1149] ARM: dts: r8a7744: Add [H]SCIF{A|B} support commit 28c0cf739819124573cb24d3ab23b213f3b0d011 upstream. Describe [H]SCIF{|A|B} ports in the R8A7744 device tree. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman [biju: removed resets property. Updated power-domains and clocks properties] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7744.dtsi | 240 ++++++++++++++++++++++++++++++++- 1 file changed, 237 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index e712b1389c17..fdfd0991d200 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -386,9 +386,130 @@ status = "disabled"; }; + scifa0: serial@e6c40000 { + compatible = "renesas,scifa-r8a7744", + "renesas,rcar-gen2-scifa", "renesas,scifa"; + reg = <0 0xe6c40000 0 0x40>; + interrupts = ; + clocks = <&mstp2_clks R8A7744_CLK_SCIFA0>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x21>, <&dmac0 0x22>, + <&dmac1 0x21>, <&dmac1 0x22>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifa1: serial@e6c50000 { + compatible = "renesas,scifa-r8a7744", + "renesas,rcar-gen2-scifa", "renesas,scifa"; + reg = <0 0xe6c50000 0 0x40>; + interrupts = ; + clocks = <&mstp2_clks R8A7744_CLK_SCIFA1>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x25>, <&dmac0 0x26>, + <&dmac1 0x25>, <&dmac1 0x26>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifa2: serial@e6c60000 { + compatible = "renesas,scifa-r8a7744", + "renesas,rcar-gen2-scifa", "renesas,scifa"; + reg = <0 0xe6c60000 0 0x40>; + interrupts = ; + clocks = <&mstp2_clks R8A7744_CLK_SCIFA2>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x27>, <&dmac0 0x28>, + <&dmac1 0x27>, <&dmac1 0x28>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifa3: serial@e6c70000 { + compatible = "renesas,scifa-r8a7744", + "renesas,rcar-gen2-scifa", "renesas,scifa"; + reg = <0 0xe6c70000 0 0x40>; + interrupts = ; + clocks = <&mstp11_clks R8A7744_CLK_SCIFA3>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x1b>, <&dmac0 0x1c>, + <&dmac1 0x1b>, <&dmac1 0x1c>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifa4: serial@e6c78000 { + compatible = "renesas,scifa-r8a7744", + "renesas,rcar-gen2-scifa", "renesas,scifa"; + reg = <0 0xe6c78000 0 0x40>; + interrupts = ; + clocks = <&mstp11_clks R8A7744_CLK_SCIFA4>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x1f>, <&dmac0 0x20>, + <&dmac1 0x1f>, <&dmac1 0x20>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifa5: serial@e6c80000 { + compatible = "renesas,scifa-r8a7744", + "renesas,rcar-gen2-scifa", "renesas,scifa"; + reg = <0 0xe6c80000 0 0x40>; + interrupts = ; + clocks = <&mstp11_clks R8A7744_CLK_SCIFA5>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x23>, <&dmac0 0x24>, + <&dmac1 0x23>, <&dmac1 0x24>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifb0: serial@e6c20000 { + compatible = "renesas,scifb-r8a7744", + "renesas,rcar-gen2-scifb", "renesas,scifb"; + reg = <0 0xe6c20000 0 0x100>; + interrupts = ; + clocks = <&mstp2_clks R8A7744_CLK_SCIFB0>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x3d>, <&dmac0 0x3e>, + <&dmac1 0x3d>, <&dmac1 0x3e>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + scifb1: serial@e6c30000 { + compatible = "renesas,scifb-r8a7744", + "renesas,rcar-gen2-scifb", "renesas,scifb"; reg = <0 0xe6c30000 0 0x100>; - /* placeholder */ + interrupts = ; + clocks = <&mstp2_clks R8A7744_CLK_SCIFB1>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x19>, <&dmac0 0x1a>, + <&dmac1 0x19>, <&dmac1 0x1a>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifb2: serial@e6ce0000 { + compatible = "renesas,scifb-r8a7744", + "renesas,rcar-gen2-scifb", "renesas,scifb"; + reg = <0 0xe6ce0000 0 0x100>; + interrupts = ; + clocks = <&mstp2_clks R8A7744_CLK_SCIFB2>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x1d>, <&dmac0 0x1e>, + <&dmac1 0x1d>, <&dmac1 0x1e>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; }; scif0: serial@e6e60000 { @@ -399,18 +520,131 @@ clocks = <&mstp7_clks R8A7744_CLK_SCIF0>, <&zs_clk>, <&scif_clk>; clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x29>, <&dmac0 0x2a>, + <&dmac1 0x29>, <&dmac1 0x2a>; + dma-names = "tx", "rx", "tx", "rx"; power-domains = <&cpg_clocks>; status = "disabled"; }; scif1: serial@e6e68000 { + compatible = "renesas,scif-r8a7744", + "renesas,rcar-gen2-scif", "renesas,scif"; reg = <0 0xe6e68000 0 0x40>; - /* placeholder */ + interrupts = ; + clocks = <&mstp7_clks R8A7744_CLK_SCIF1>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x2d>, <&dmac0 0x2e>, + <&dmac1 0x2d>, <&dmac1 0x2e>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scif2: serial@e6e58000 { + compatible = "renesas,scif-r8a7744", + "renesas,rcar-gen2-scif", "renesas,scif"; + reg = <0 0xe6e58000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A7744_CLK_SCIF2>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x2b>, <&dmac0 0x2c>, + <&dmac1 0x2b>, <&dmac1 0x2c>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scif3: serial@e6ea8000 { + compatible = "renesas,scif-r8a7744", + "renesas,rcar-gen2-scif", "renesas,scif"; + reg = <0 0xe6ea8000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A7744_CLK_SCIF3>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x2f>, <&dmac0 0x30>, + <&dmac1 0x2f>, <&dmac1 0x30>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scif4: serial@e6ee0000 { + compatible = "renesas,scif-r8a7744", + "renesas,rcar-gen2-scif", "renesas,scif"; + reg = <0 0xe6ee0000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A7744_CLK_SCIF4>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0xfb>, <&dmac0 0xfc>, + <&dmac1 0xfb>, <&dmac1 0xfc>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scif5: serial@e6ee8000 { + compatible = "renesas,scif-r8a7744", + "renesas,rcar-gen2-scif", "renesas,scif"; + reg = <0 0xe6ee8000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A7744_CLK_SCIF5>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0xfd>, <&dmac0 0xfe>, + <&dmac1 0xfd>, <&dmac1 0xfe>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + hscif0: serial@e62c0000 { + compatible = "renesas,hscif-r8a7744", + "renesas,rcar-gen2-hscif", "renesas,hscif"; + reg = <0 0xe62c0000 0 0x60>; + interrupts = ; + clocks = <&mstp7_clks R8A7744_CLK_HSCIF0>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x39>, <&dmac0 0x3a>, + <&dmac1 0x39>, <&dmac1 0x3a>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; }; hscif1: serial@e62c8000 { + compatible = "renesas,hscif-r8a7744", + "renesas,rcar-gen2-hscif", "renesas,hscif"; reg = <0 0xe62c8000 0 0x60>; - /* placeholder */ + interrupts = ; + clocks = <&mstp7_clks R8A7744_CLK_HSCIF1>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x4d>, <&dmac0 0x4e>, + <&dmac1 0x4d>, <&dmac1 0x4e>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + hscif2: serial@e62d0000 { + compatible = "renesas,hscif-r8a7744", + "renesas,rcar-gen2-hscif", "renesas,hscif"; + reg = <0 0xe62d0000 0 0x60>; + interrupts = ; + clocks = <&mstp7_clks R8A7744_CLK_HSCIF2>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x3b>, <&dmac0 0x3c>, + <&dmac1 0x3b>, <&dmac1 0x3c>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; }; can0: can@e6e80000 { From ed6c77b05ee4da17886478ac050ad1e01aabf4fd Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 19 Nov 2019 14:53:35 +0000 Subject: [PATCH 0729/1149] dt-bindings: i2c: rcar: Document r8a7744 support commit 8bca7089af56be53ecd87091b1f5bf81030e571b upstream. Document i2c Device Tree support for RZ/G1N (R8A7744) SoC, which is compatible with R-Car Gen2 SoC family. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Simon Horman Reviewed-by: Geert Uytterhoeven Signed-off-by: Wolfram Sang Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/i2c/i2c-rcar.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/i2c/i2c-rcar.txt b/Documentation/devicetree/bindings/i2c/i2c-rcar.txt index f6cb9e51ae2f..0d1aa9e4c292 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-rcar.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-rcar.txt @@ -3,6 +3,7 @@ I2C for R-Car platforms Required properties: - compatible: "renesas,i2c-r8a7743" if the device is a part of a R8A7743 SoC. + "renesas,i2c-r8a7744" if the device is a part of a R8A7744 SoC. "renesas,i2c-r8a7745" if the device is a part of a R8A7745 SoC. "renesas,i2c-r8a7778" if the device is a part of a R8A7778 SoC. "renesas,i2c-r8a7779" if the device is a part of a R8A7779 SoC. From 2c7d2a34b76997308defc72789b327096fd0b629 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 19 Nov 2019 14:53:36 +0000 Subject: [PATCH 0730/1149] dt-bindings: i2c: sh_mobile: Document r8a7744 support commit f88c18ddb0903c49a6b999cd7fe05f06246d4a62 upstream. Document i2c Device Tree support for RZ/G1N (R8A7744) SoC, which is compatible with R-Car Gen2 SoC family. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Simon Horman Reviewed-by: Geert Uytterhoeven Signed-off-by: Wolfram Sang Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt b/Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt index 4bfb89ea11c2..f4727c6ea01e 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt @@ -5,6 +5,7 @@ Required properties: - "renesas,iic-r8a73a4" (R-Mobile APE6) - "renesas,iic-r8a7740" (R-Mobile A1) - "renesas,iic-r8a7743" (RZ/G1M) + - "renesas,iic-r8a7744" (RZ/G1N) - "renesas,iic-r8a7745" (RZ/G1E) - "renesas,iic-r8a7790" (R-Car H2) - "renesas,iic-r8a7791" (R-Car M2-W) From e08afe2d7ee1c1c298b00a8467588bbb90a31aae Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 19 Nov 2019 14:53:37 +0000 Subject: [PATCH 0731/1149] ARM: dts: r8a7744: Add I2C and IIC support commit fb64de56dfd9e8efe05d12adca7e2885ce1b9e17 upstream. Add the I2C[0-5] and IIC[0,1,3] devices nodes to the R8A7744 device tree. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman [biju: removed resets property. Updated power-domains and clocks properties] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7744.dtsi | 112 ++++++++++++++++++++++++++++++++- 1 file changed, 110 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index fdfd0991d200..3f737847ad9b 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -285,19 +285,127 @@ reg = <0 0xe6300000 0 0x40000>; }; + /* The memory map in the User's Manual maps the cores to + * bus numbers + */ + i2c0: i2c@e6508000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a7744", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6508000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A7744_CLK_I2C0>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + i2c1: i2c@e6518000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a7744", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6518000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A7744_CLK_I2C1>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + i2c2: i2c@e6530000 { #address-cells = <1>; #size-cells = <0>; + compatible = "renesas,i2c-r8a7744", + "renesas,rcar-gen2-i2c"; reg = <0 0xe6530000 0 0x40>; - /* placeholder */ + interrupts = ; + clocks = <&mstp9_clks R8A7744_CLK_I2C2>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + i2c3: i2c@e6540000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a7744", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6540000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A7744_CLK_I2C3>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + i2c4: i2c@e6520000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a7744", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6520000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A7744_CLK_I2C4>; + power-domains = <&cpg_clocks>; + status = "disabled"; }; i2c5: i2c@e6528000 { /* doesn't need pinmux */ #address-cells = <1>; #size-cells = <0>; + compatible = "renesas,i2c-r8a7744", + "renesas,rcar-gen2-i2c"; reg = <0 0xe6528000 0 0x40>; - /* placeholder */ + interrupts = ; + clocks = <&mstp9_clks R8A7744_CLK_I2C5>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + iic0: i2c@e6500000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,iic-r8a7744", + "renesas,rcar-gen2-iic", + "renesas,rmobile-iic"; + reg = <0 0xe6500000 0 0x425>; + interrupts = ; + clocks = <&mstp3_clks R8A7744_CLK_IIC0>; + dmas = <&dmac0 0x61>, <&dmac0 0x62>, + <&dmac1 0x61>, <&dmac1 0x62>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + iic1: i2c@e6510000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,iic-r8a7744", + "renesas,rcar-gen2-iic", + "renesas,rmobile-iic"; + reg = <0 0xe6510000 0 0x425>; + interrupts = ; + clocks = <&mstp3_clks R8A7744_CLK_IIC1>; + dmas = <&dmac0 0x65>, <&dmac0 0x66>, + <&dmac1 0x65>, <&dmac1 0x66>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + iic3: i2c@e60b0000 { + /* doesn't need pinmux */ + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,iic-r8a7744"; + reg = <0 0xe60b0000 0 0x425>; + interrupts = ; + clocks = <&mstp9_clks R8A7744_CLK_IICDVFS>; + dmas = <&dmac0 0x77>, <&dmac0 0x78>, + <&dmac1 0x77>, <&dmac1 0x78>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; }; hsusb: usb@e6590000 { From 08768f9b648ef0e341659a72c3c3a5e1602646c0 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 19 Nov 2019 14:53:38 +0000 Subject: [PATCH 0732/1149] dt-bindings: timer: renesas, cmt: Document r8a7744 CMT commit 7c4189c75b0b40bfe559b185e30847398e9ac206 upstream. Document SoC specific compatible strings for r8a7744. No driver change is needed as the fallback strings will activate the right code. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Reviewed-by: Simon Horman Reviewed-by: Geert Uytterhoeven Signed-off-by: Rob Herring [biju: backported to 4.4 kernel] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/timer/renesas,cmt.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/timer/renesas,cmt.txt b/Documentation/devicetree/bindings/timer/renesas,cmt.txt index ed3dbf69259b..1821efd3e28d 100644 --- a/Documentation/devicetree/bindings/timer/renesas,cmt.txt +++ b/Documentation/devicetree/bindings/timer/renesas,cmt.txt @@ -46,6 +46,8 @@ Required Properties: (CMT[01]) - "renesas,cmt-48-r8a7743" for the r8a7743 48-bit CMT (CMT[01]) + - "renesas,cmt-48-r8a7744" for the r8a7744 48-bit CMT + (CMT[01]) - "renesas,cmt-48-r8a7745" for the r8a7745 48-bit CMT (CMT[01]) - "renesas,cmt-48-r8a7790" for the r8a7790 48-bit CMT From b04aacdf424b841df44cfec91822373b0845c257 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 19 Nov 2019 14:53:39 +0000 Subject: [PATCH 0733/1149] ARM: dts: r8a7744: Add CMT SoC specific support commit 90bcf80c37df5d76d953673717cdd5082776d98e upstream. Add CMT[01] support to SoC DT. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman [biju: removed resets property. Updated power-domains and clocks properties] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7744.dtsi | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index 3f737847ad9b..1a4854a8d8e0 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -850,6 +850,38 @@ /* placeholder */ }; + cmt0: timer@ffca0000 { + compatible = "renesas,cmt-48-r8a7744", + "renesas,cmt-48-gen2"; + reg = <0 0xffca0000 0 0x1004>; + interrupts = , + ; + clocks = <&mstp1_clks R8A7744_CLK_CMT0>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + renesas,channels-mask = <0x60>; + status = "disabled"; + }; + + cmt1: timer@e6130000 { + compatible = "renesas,cmt-48-r8a7744", + "renesas,cmt-48-gen2"; + reg = <0 0xe6130000 0 0x1004>; + interrupts = , + , + , + , + , + , + , + ; + clocks = <&mstp3_clks R8A7744_CLK_CMT1>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + renesas,channels-mask = <0xff>; + status = "disabled"; + }; + clocks { #address-cells = <2>; #size-cells = <2>; From 80e9da38a151a00a8d417d4ffcb82b87cdb9a464 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 19 Nov 2019 14:53:40 +0000 Subject: [PATCH 0734/1149] dt-bindings: watchdog: renesas-wdt: Document r8a7744 support commit c54ed7c02bd79abe7a62943d308ecb51cf1d4ffe upstream. RZ/G1N (R8A7744) watchdog implementation is compatible with R-Car Gen2, therefore add relevant documentation. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Reviewed-by: Simon Horman Reviewed-by: Geert Uytterhoeven Reviewed-by: Guenter Roeck Signed-off-by: Rob Herring [biju: backported to the 4.4.y-cip] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/watchdog/renesas-wdt.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/watchdog/renesas-wdt.txt b/Documentation/devicetree/bindings/watchdog/renesas-wdt.txt index 25b108e90998..a985fd51fdcc 100644 --- a/Documentation/devicetree/bindings/watchdog/renesas-wdt.txt +++ b/Documentation/devicetree/bindings/watchdog/renesas-wdt.txt @@ -6,6 +6,7 @@ Required properties: version. Examples with soctypes are: - "renesas,r8a7743-wdt" (RZ/G1M) + - "renesas,r8a7744-wdt" (RZ/G1N) - "renesas,r8a7745-wdt" (RZ/G1E) The generic compatible string must be: - "renesas,rcar-gen2-wdt" for R-Car Gen2 and RZ/G From 8735e9f341176067437841fef6e6afe3b3614682 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 19 Nov 2019 14:53:41 +0000 Subject: [PATCH 0735/1149] ARM: dts: r8a7744: Add RWDT node commit 336a425ce67d151fe1e275389aeccd08d66d9833 upstream. Add a device node for the Watchdog Timer (RWDT) controller on the Renesas RZ/G1N (r8a7744) SoC. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman [biju: removed resets property. Updated power-domains and clocks properties] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7744.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index 1a4854a8d8e0..a1952eac900b 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -134,6 +134,15 @@ #size-cells = <2>; ranges; + rwdt: watchdog@e6020000 { + compatible = "renesas,r8a7744-wdt", + "renesas,rcar-gen2-wdt"; + reg = <0 0xe6020000 0 0x0c>; + clocks = <&mstp4_clks R8A7744_CLK_RWDT>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + gpio0: gpio@e6050000 { compatible = "renesas,gpio-r8a7744", "renesas,rcar-gen2-gpio"; From 91f9a398daa5f70d38d5275227df0411922c9889 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 19 Nov 2019 14:53:42 +0000 Subject: [PATCH 0736/1149] ARM: dts: iwg20d-q7-common: Move cmt/rwdt node out of RZ/G1M SOM commit b72ce26cb73afd042d65f737971f560a491e1275 upstream. The iWave RZ/G1N board is almost identical to RZ/G1M. cmt and rwdt modules are SoC specific and should be part of board dts rather than SoM dtsi. By moving these nodes to the common dtsi it allows cmt and rwdt to be enabled on both of these boards with less lines of code. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/iwg20d-q7-common.dtsi | 9 +++++++++ arch/arm/boot/dts/r8a7743-iwg20m.dtsi | 9 --------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/arch/arm/boot/dts/iwg20d-q7-common.dtsi b/arch/arm/boot/dts/iwg20d-q7-common.dtsi index 9abc25f5381c..011dbaba4f38 100644 --- a/arch/arm/boot/dts/iwg20d-q7-common.dtsi +++ b/arch/arm/boot/dts/iwg20d-q7-common.dtsi @@ -119,6 +119,10 @@ status = "okay"; }; +&cmt0 { + status = "okay"; +}; + &hsusb { status = "okay"; pinctrl-0 = <&usb0_pins>; @@ -227,6 +231,11 @@ }; }; +&rwdt { + timeout-sec = <60>; + status = "okay"; +}; + &scif0 { pinctrl-0 = <&scif0_pins>; pinctrl-names = "default"; diff --git a/arch/arm/boot/dts/r8a7743-iwg20m.dtsi b/arch/arm/boot/dts/r8a7743-iwg20m.dtsi index d364685d9184..75a8ca571846 100644 --- a/arch/arm/boot/dts/r8a7743-iwg20m.dtsi +++ b/arch/arm/boot/dts/r8a7743-iwg20m.dtsi @@ -34,10 +34,6 @@ }; }; -&cmt0 { - status = "okay"; -}; - &extal_clk { clock-frequency = <20000000>; }; @@ -91,11 +87,6 @@ }; }; -&rwdt { - timeout-sec = <60>; - status = "okay"; -}; - &sdhi0 { pinctrl-0 = <&sdhi0_pins>; pinctrl-names = "default"; From c4ac22343fae122e63e679396b6d97d77da1ad56 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 21 Nov 2019 07:49:35 +0000 Subject: [PATCH 0737/1149] dt-bindings: watchdog: renesas-wdt: Document r8a77470 support commit 59600d045ff411da193a8b5a2999681801ecd430 upstream. RZ/G1C (R8A77470) watchdog implementation is compatible with R-Car Gen2, therefore add relevant documentation. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Simon Horman Reviewed-by: Rob Herring Reviewed-by: Geert Uytterhoeven Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/watchdog/renesas-wdt.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/watchdog/renesas-wdt.txt b/Documentation/devicetree/bindings/watchdog/renesas-wdt.txt index a985fd51fdcc..050bcf0e3e00 100644 --- a/Documentation/devicetree/bindings/watchdog/renesas-wdt.txt +++ b/Documentation/devicetree/bindings/watchdog/renesas-wdt.txt @@ -8,6 +8,7 @@ Required properties: - "renesas,r8a7743-wdt" (RZ/G1M) - "renesas,r8a7744-wdt" (RZ/G1N) - "renesas,r8a7745-wdt" (RZ/G1E) + - "renesas,r8a77470-wdt" (RZ/G1C) The generic compatible string must be: - "renesas,rcar-gen2-wdt" for R-Car Gen2 and RZ/G From 7fd50ec0c802d5956eebe2ea4d2b020cac1e9c4a Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 20 Nov 2019 16:47:16 +0000 Subject: [PATCH 0738/1149] ARM: dts: r8a77470: Add watchdog support to SoC dtsi commit dc7bf8795d848890641387d98c5e1324d397e9c8 upstream. This patch adds watchdog support to the r8a77470 SoC dtsi. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro [simon: moved node to preserve sort order] Signed-off-by: Simon Horman [biju: updated power-domains and clocks property. removed resets property] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a77470.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi index 568f65072207..fc1333e76c43 100644 --- a/arch/arm/boot/dts/r8a77470.dtsi +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -76,6 +76,15 @@ #size-cells = <2>; ranges; + rwdt: watchdog@e6020000 { + compatible = "renesas,r8a77470-wdt", + "renesas,rcar-gen2-wdt"; + reg = <0 0xe6020000 0 0x0c>; + clocks = <&mstp4_clks R8A77470_CLK_RWDT>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + gpio0: gpio@e6050000 { compatible = "renesas,gpio-r8a77470", "renesas,rcar-gen2-gpio"; From 6b7ac322115025fa2f4a9d4b7ee13a3ce61189df Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 20 Nov 2019 16:47:17 +0000 Subject: [PATCH 0739/1149] ARM: dts: iwg23s-sbc: Enable watchdog support commit e1d31e7ebaa4087ecc7a5e16197f7fa6857aaa75 upstream. This patch enables watchdog support on the iWave iwg23s sbc. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts index 273acc89e467..6cae910444ad 100644 --- a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts +++ b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts @@ -126,6 +126,11 @@ }; }; +&rwdt { + timeout-sec = <60>; + status = "okay"; +}; + &scif1 { pinctrl-0 = <&scif1_pins>; pinctrl-names = "default"; From ae94d562327071961519d49091cfe535e7c0ea88 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 20 Nov 2019 16:47:18 +0000 Subject: [PATCH 0740/1149] dt-bindings: timer: renesas, cmt: Document r8a77470 CMT support commit 2bbaf54216448486def1153486778a975a73041d upstream. Document SoC specific compatible strings for r8a77470. No driver change is needed as the fallback strings will activate the right code. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Simon Horman Reviewed-by: Rob Herring Signed-off-by: Daniel Lezcano [biju: backported to 4.4-cip kernel] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/timer/renesas,cmt.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/timer/renesas,cmt.txt b/Documentation/devicetree/bindings/timer/renesas,cmt.txt index 1821efd3e28d..51e3606aeb10 100644 --- a/Documentation/devicetree/bindings/timer/renesas,cmt.txt +++ b/Documentation/devicetree/bindings/timer/renesas,cmt.txt @@ -50,6 +50,8 @@ Required Properties: (CMT[01]) - "renesas,cmt-48-r8a7745" for the r8a7745 48-bit CMT (CMT[01]) + - "renesas,cmt-48-r8a77470" for the r8a77470 48-bit CMT + (CMT[01]) - "renesas,cmt-48-r8a7790" for the r8a7790 48-bit CMT (CMT[01]) - "renesas,cmt-48-r8a7791" for the r8a7791 48-bit CMT From 16c40b78e10a7857bbed5745f4b035ae227d205b Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 20 Nov 2019 16:47:19 +0000 Subject: [PATCH 0741/1149] ARM: dts: r8a77470: Add CMT SoC specific support commit 8129890823855fedab15bc0df1f89beaac5653db upstream. Add CMT[01] support to r8a77470 SoC DT. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman [biju: removed reset property. updated compatible, power-domains and clocks properties] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a77470.dtsi | 36 +++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi index fc1333e76c43..9774ab03f52f 100644 --- a/arch/arm/boot/dts/r8a77470.dtsi +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -677,6 +677,42 @@ power-domains = <&cpg_clocks>; }; + cmt0: timer@ffca0000 { + compatible = "renesas,cmt-48-r8a77470", + "renesas,cmt-48-gen2"; + reg = <0 0xffca0000 0 0x1004>; + interrupts = , + ; + clocks = <&mstp1_clks R8A77470_CLK_CMT0>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + + renesas,channels-mask = <0x60>; + + status = "disabled"; + }; + + cmt1: timer@e6130000 { + compatible = "renesas,cmt-48-r8a77470", + "renesas,cmt-48-gen2"; + reg = <0 0xe6130000 0 0x1004>; + interrupts = , + , + , + , + , + , + , + ; + clocks = <&mstp3_clks R8A77470_CLK_CMT1>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + + renesas,channels-mask = <0xff>; + + status = "disabled"; + }; + clocks { #address-cells = <2>; #size-cells = <2>; From a40e2b75ad3ba97e65c664f9bad03719ed6a1430 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 20 Nov 2019 16:47:20 +0000 Subject: [PATCH 0742/1149] ARM: dts: iwg23s-sbc: Enable cmt0 commit b5079d767b881b0f516df6627e0c4297137fa5d0 upstream. This patch enables cmt0 support on the iWave iwg23s sbc. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts index 6cae910444ad..8c9c312d71fe 100644 --- a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts +++ b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts @@ -44,6 +44,10 @@ }; }; +&cmt0 { + status = "okay"; +}; + &ehci1 { status = "okay"; }; From cb692b7cb5615199b15df0fe6cb78f7a442a5829 Mon Sep 17 00:00:00 2001 From: Chris Brandt Date: Tue, 19 Nov 2019 13:35:40 +0000 Subject: [PATCH 0743/1149] mmc: tmio-mmc: add support for 32bit data port commit 8185e51f358a8dd4801b67e8c66f03eb9eeaba75 upstream. For the r7s72100 SOC, the DATA_PORT register was changed to 32-bits wide. Therefore a new flag has been created that will allow 32-bit reads/writes to the DATA_PORT register instead of 16-bit (because 16-bits accesses are not supported). Signed-off-by: Chris Brandt Reviewed-by: Wolfram Sang Signed-off-by: Ulf Hansson [biju: backported the upstream commit 9c284c41c0886f09e75c323a16278b6d353b0b4a] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc.h | 12 ++++++++++++ drivers/mmc/host/tmio_mmc_pio.c | 29 +++++++++++++++++++++++++++++ include/linux/mfd/tmio.h | 5 +++++ 3 files changed, 46 insertions(+) diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index eafd92dc239b..c4131d95ebd5 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -245,6 +245,12 @@ static inline u32 sd_ctrl_read16_and_16_as_32(struct tmio_mmc_host *host, int ad readw(host->ctl + ((addr + 2) << host->bus_shift)) << 16; } +static inline void sd_ctrl_read32_rep(struct tmio_mmc_host *host, int addr, + u32 *buf, int count) +{ + readsl(host->ctl + (addr << host->bus_shift), buf, count); +} + static inline void sd_ctrl_write16(struct tmio_mmc_host *host, int addr, u16 val) { /* If there is a hook and it returns non-zero then there @@ -267,4 +273,10 @@ static inline void sd_ctrl_write32_as_16_and_16(struct tmio_mmc_host *host, int writew(val >> 16, host->ctl + ((addr + 2) << host->bus_shift)); } +static inline void sd_ctrl_write32_rep(struct tmio_mmc_host *host, int addr, + const u32 *buf, int count) +{ + writesl(host->ctl + (addr << host->bus_shift), buf, count); +} + #endif diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index c9279168bab9..2010372da312 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -393,6 +393,35 @@ static void tmio_mmc_transfer_data(struct tmio_mmc_host *host, /* * Transfer the data */ + if (host->pdata->flags & TMIO_MMC_32BIT_DATA_PORT) { + u32 data = 0; + u32 *buf32 = (u32 *)buf; + + if (is_read) + sd_ctrl_read32_rep(host, CTL_SD_DATA_PORT, buf32, + count >> 2); + else + sd_ctrl_write32_rep(host, CTL_SD_DATA_PORT, buf32, + count >> 2); + + /* if count was multiple of 4 */ + if (!(count & 0x3)) + return; + + buf32 += count >> 2; + count %= 4; + + if (is_read) { + sd_ctrl_read32_rep(host, CTL_SD_DATA_PORT, &data, 1); + memcpy(buf32, &data, count); + } else { + memcpy(&data, buf32, count); + sd_ctrl_write32_rep(host, CTL_SD_DATA_PORT, &data, 1); + } + + return; + } + if (is_read) sd_ctrl_read16_rep(host, CTL_SD_DATA_PORT, buf, count >> 1); else diff --git a/include/linux/mfd/tmio.h b/include/linux/mfd/tmio.h index 7a26286db895..fba44abd05ba 100644 --- a/include/linux/mfd/tmio.h +++ b/include/linux/mfd/tmio.h @@ -99,6 +99,11 @@ */ #define TMIO_MMC_SDIO_STATUS_QUIRK (1 << 8) +/* + * Some controllers have a 32-bit wide data port register + */ +#define TMIO_MMC_32BIT_DATA_PORT (1 << 9) + /* * Some controllers allows to set SDx actual clock */ From a3d85e7b6ecfc5fd68b058285eb3eb405f560c90 Mon Sep 17 00:00:00 2001 From: Chris Brandt Date: Tue, 19 Nov 2019 13:35:41 +0000 Subject: [PATCH 0744/1149] mmc: sh_mobile_sdhi: add ocr_mask option commit f19417f38264f9a2f7b4627aa4060133c237b211 upstream. In moving platforms from board files to DT, there still needs to be a way to set the ocr_mask setting for the tmio driver during probe. Without this setting, the probe will fail because the supported voltages are not known. This patch will also traditional platform registration platforms to migrate to DT. Signed-off-by: Chris Brandt Reviewed-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index 3d186ccaca0c..9124246f5e05 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -49,6 +49,7 @@ struct sh_mobile_sdhi_of_data { unsigned long tmio_flags; + u32 tmio_ocr_mask; unsigned long capabilities; unsigned long capabilities2; enum dma_slave_buswidth dma_buswidth; @@ -370,6 +371,7 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) const struct sh_mobile_sdhi_of_data *of_data = of_id->data; mmc_data->flags |= of_data->tmio_flags; + mmc_data->ocr_mask = of_data->tmio_ocr_mask; mmc_data->capabilities |= of_data->capabilities; mmc_data->capabilities2 |= of_data->capabilities2; mmc_data->dma_rx_offset = of_data->dma_rx_offset; From 31a317abd28d81e6b985422f471651703098a926 Mon Sep 17 00:00:00 2001 From: Ai Kyuse Date: Tue, 19 Nov 2019 13:35:42 +0000 Subject: [PATCH 0745/1149] mmc: tmio: enhance illegal sequence handling commit 96e0b2ba00ee5dacb12bed6585145ce784ec9153 upstream. An illegal sequence command error may occur if there is a stopbit or cmd_index error as well as a CRC error. The correct course of action is to re-enable IRQs An illegal sequence data error may occur if there is a CRC or stopbit error, or underrun. In this case set data->error correctly. This is in preparation for enabling tuning support which relies on differentiating between illegal sequence and other errors. Signed-off-by: Ai Kyuse [simon: broken out of a larger patch] Signed-off-by: Simon Horman Acked-by: Wolfram Sang Tested-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc_pio.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 2010372da312..0775a1972628 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -551,7 +551,7 @@ void tmio_mmc_do_data_irq(struct tmio_mmc_host *host) schedule_work(&host->done); } -static void tmio_mmc_data_irq(struct tmio_mmc_host *host) +static void tmio_mmc_data_irq(struct tmio_mmc_host *host, unsigned int stat) { struct mmc_data *data; spin_lock(&host->lock); @@ -560,6 +560,9 @@ static void tmio_mmc_data_irq(struct tmio_mmc_host *host) if (!data) goto out; + if (stat & TMIO_STAT_CRCFAIL || stat & TMIO_STAT_STOPBIT_ERR || + stat & TMIO_STAT_TXUNDERRUN) + data->error = -EILSEQ; if (host->chan_tx && (data->flags & MMC_DATA_WRITE) && !host->force_pio) { u32 status = sd_ctrl_read16_and_16_as_32(host, CTL_STATUS); bool done = false; @@ -608,8 +611,6 @@ static void tmio_mmc_cmd_irq(struct tmio_mmc_host *host, goto out; } - host->cmd = NULL; - /* This controller is sicker than the PXA one. Not only do we need to * drop the top 8 bits of the first response word, we also need to * modify the order of the response for short response command types. @@ -629,14 +630,16 @@ static void tmio_mmc_cmd_irq(struct tmio_mmc_host *host, if (stat & TMIO_STAT_CMDTIMEOUT) cmd->error = -ETIMEDOUT; - else if (stat & TMIO_STAT_CRCFAIL && cmd->flags & MMC_RSP_CRC) + else if ((stat & TMIO_STAT_CRCFAIL && cmd->flags & MMC_RSP_CRC) || + stat & TMIO_STAT_STOPBIT_ERR || + stat & TMIO_STAT_CMD_IDX_ERR) cmd->error = -EILSEQ; /* If there is data to handle we enable data IRQs here, and * we will ultimatley finish the request in the data_end handler. * If theres no data or we encountered an error, finish now. */ - if (host->data && !cmd->error) { + if (host->data && (!cmd->error || cmd->error == -EILSEQ)) { if (host->data->flags & MMC_DATA_READ) { if (host->force_pio || !host->chan_rx) tmio_mmc_enable_mmc_irqs(host, TMIO_MASK_READOP); @@ -697,7 +700,7 @@ static bool __tmio_mmc_sdcard_irq(struct tmio_mmc_host *host, /* Data transfer completion */ if (ireg & TMIO_STAT_DATAEND) { tmio_mmc_ack_mmc_irqs(host, TMIO_STAT_DATAEND); - tmio_mmc_data_irq(host); + tmio_mmc_data_irq(host, status); return true; } From c0a0c451014e76808d2f2bccc10bcf6a529c5da4 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Tue, 19 Nov 2019 13:35:43 +0000 Subject: [PATCH 0746/1149] mmc: tmio: document mandatory and optional callbacks commit 2f87365f832bbc26e32f23588aaeb40abe15ff0d upstream. Signed-off-by: Simon Horman Acked-by: Wolfram Sang Tested-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index c4131d95ebd5..d3d24e1b1f46 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -154,8 +154,10 @@ struct tmio_mmc_host { bool native_hotplug; bool sdio_irq_enabled; - int (*write16_hook)(struct tmio_mmc_host *host, int addr); + /* Mandatory callback */ int (*clk_enable)(struct tmio_mmc_host *host); + + /* Optional callbacks */ unsigned int (*clk_update)(struct tmio_mmc_host *host, unsigned int new_clock); void (*clk_disable)(struct tmio_mmc_host *host); @@ -164,6 +166,7 @@ struct tmio_mmc_host { int (*card_busy)(struct mmc_host *mmc); int (*start_signal_voltage_switch)(struct mmc_host *mmc, struct mmc_ios *ios); + int (*write16_hook)(struct tmio_mmc_host *host, int addr); }; struct tmio_mmc_host *tmio_mmc_host_alloc(struct platform_device *pdev); From b70fe8067bd9eff2993f36336ac0ad69a4072b90 Mon Sep 17 00:00:00 2001 From: Ai Kyuse Date: Tue, 19 Nov 2019 13:35:44 +0000 Subject: [PATCH 0747/1149] mmc: tmio: Add hw reset support commit e8f36b5d3b54a49df02c950050659a5082e2c880 upstream. Add hw reset support. Signed-off-by: Ai Kyuse Signed-off-by: Simon Horman Acked-by: Wolfram Sang Tested-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc.h | 1 + drivers/mmc/host/tmio_mmc_pio.c | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index d3d24e1b1f46..8b4869ed848a 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -167,6 +167,7 @@ struct tmio_mmc_host { int (*start_signal_voltage_switch)(struct mmc_host *mmc, struct mmc_ios *ios); int (*write16_hook)(struct tmio_mmc_host *host, int addr); + void (*hw_reset)(struct tmio_mmc_host *host); }; struct tmio_mmc_host *tmio_mmc_host_alloc(struct platform_device *pdev); diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 0775a1972628..8bc2ab6d300e 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -791,6 +791,14 @@ static int tmio_mmc_start_data(struct tmio_mmc_host *host, return 0; } +static void tmio_mmc_hw_reset(struct mmc_host *mmc) +{ + struct tmio_mmc_host *host = mmc_priv(mmc); + + if (host->hw_reset) + host->hw_reset(host); +} + /* Process requests from the MMC layer */ static void tmio_mmc_request(struct mmc_host *mmc, struct mmc_request *mrq) { @@ -1007,6 +1015,7 @@ static struct mmc_host_ops tmio_mmc_ops = { .get_cd = mmc_gpio_get_cd, .enable_sdio_irq = tmio_mmc_enable_sdio_irq, .multi_io_quirk = tmio_multi_io_quirk, + .hw_reset = tmio_mmc_hw_reset, }; static int tmio_mmc_init_ocr(struct tmio_mmc_host *host) From bec3cc1642c79256e66599cdca3d790858311db1 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Tue, 19 Nov 2019 13:35:45 +0000 Subject: [PATCH 0748/1149] mmc: core: Add helper to see if a host can be retuned commit c820af5f18ec248b3cb61a9a9ce47ef0f2e9ec63 upstream. This is in preparation for restoring saved tuning parameters when resuming the TMIO driver. Signed-off-by: Simon Horman Acked-by: Wolfram Sang Tested-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- include/linux/mmc/host.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index 8673ffe3d86e..1c483d95ccd6 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h @@ -515,4 +515,9 @@ static inline void mmc_retune_recheck(struct mmc_host *host) host->retune_now = 1; } +static inline bool mmc_can_retune(struct mmc_host *host) +{ + return host->can_retune == 1; +} + #endif /* LINUX_MMC_HOST_H */ From 165e015cca2d01e9f8d09ae024dc80d27daaa66d Mon Sep 17 00:00:00 2001 From: Ai Kyuse Date: Tue, 19 Nov 2019 13:35:46 +0000 Subject: [PATCH 0749/1149] mmc: tmio: Add tuning support commit 4f11997773b6b452b5a0d620c5ac5050e75c227e upstream. Add tuning support for use with SDR104 mode Signed-off-by: Ai Kyuse Signed-off-by: Simon Horman Acked-by: Wolfram Sang Tested-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc.h | 14 ++++++++ drivers/mmc/host/tmio_mmc_pio.c | 62 +++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index 8b4869ed848a..ba2838c6e2df 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -153,6 +153,7 @@ struct tmio_mmc_host { struct mutex ios_lock; /* protect set_ios() context */ bool native_hotplug; bool sdio_irq_enabled; + u32 scc_tappos; /* Mandatory callback */ int (*clk_enable)(struct tmio_mmc_host *host); @@ -168,6 +169,19 @@ struct tmio_mmc_host { struct mmc_ios *ios); int (*write16_hook)(struct tmio_mmc_host *host, int addr); void (*hw_reset)(struct tmio_mmc_host *host); + void (*prepare_tuning)(struct tmio_mmc_host *host, unsigned long tap); + bool (*check_scc_error)(struct tmio_mmc_host *host); + + /* + * Mandatory callback for tuning to occur which is optional for SDR50 + * and mandatory for SDR104. + */ + unsigned int (*init_tuning)(struct tmio_mmc_host *host); + int (*select_tuning)(struct tmio_mmc_host *host); + + /* Tuning values: 1 for success, 0 for failure */ + DECLARE_BITMAP(taps, BITS_PER_BYTE * sizeof(long)); + unsigned int tap_num; }; struct tmio_mmc_host *tmio_mmc_host_alloc(struct platform_device *pdev); diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 8bc2ab6d300e..b569ef3c1ae8 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include @@ -298,6 +299,9 @@ static void tmio_mmc_finish_request(struct tmio_mmc_host *host) if (mrq->cmd->error || (mrq->data && mrq->data->error)) tmio_mmc_abort_dma(host); + if (host->check_scc_error) + host->check_scc_error(host); + mmc_request_done(host->mmc, mrq); } @@ -799,6 +803,55 @@ static void tmio_mmc_hw_reset(struct mmc_host *mmc) host->hw_reset(host); } +static int tmio_mmc_execute_tuning(struct mmc_host *mmc, u32 opcode) +{ + struct tmio_mmc_host *host = mmc_priv(mmc); + int i, ret = 0; + + if (!host->tap_num) { + if (!host->init_tuning || !host->select_tuning) + /* Tuning is not supported */ + goto out; + + host->tap_num = host->init_tuning(host); + if (!host->tap_num) + /* Tuning is not supported */ + goto out; + } + + if (host->tap_num * 2 >= sizeof(host->taps) * BITS_PER_BYTE) { + dev_warn_once(&host->pdev->dev, + "Too many taps, skipping tuning. Please consider updating size of taps field of tmio_mmc_host\n"); + goto out; + } + + bitmap_zero(host->taps, host->tap_num * 2); + + /* Issue CMD19 twice for each tap */ + for (i = 0; i < 2 * host->tap_num; i++) { + if (host->prepare_tuning) + host->prepare_tuning(host, i % host->tap_num); + + ret = mmc_send_tuning(mmc, opcode, NULL); + if (ret && ret != -EILSEQ) + goto out; + if (ret == 0) + set_bit(i, host->taps); + + mdelay(1); + } + + ret = host->select_tuning(host); + +out: + if (ret < 0) { + dev_warn(&host->pdev->dev, "Tuning procedure failed\n"); + tmio_mmc_hw_reset(mmc); + } + + return ret; +} + /* Process requests from the MMC layer */ static void tmio_mmc_request(struct mmc_host *mmc, struct mmc_request *mrq) { @@ -1016,6 +1069,7 @@ static struct mmc_host_ops tmio_mmc_ops = { .enable_sdio_irq = tmio_mmc_enable_sdio_irq, .multi_io_quirk = tmio_multi_io_quirk, .hw_reset = tmio_mmc_hw_reset, + .execute_tuning = tmio_mmc_execute_tuning, }; static int tmio_mmc_init_ocr(struct tmio_mmc_host *host) @@ -1262,6 +1316,11 @@ int tmio_mmc_host_runtime_suspend(struct device *dev) } EXPORT_SYMBOL(tmio_mmc_host_runtime_suspend); +static bool tmio_mmc_can_retune(struct tmio_mmc_host *host) +{ + return host->tap_num && mmc_can_retune(host->mmc); +} + int tmio_mmc_host_runtime_resume(struct device *dev) { struct mmc_host *mmc = dev_get_drvdata(dev); @@ -1275,6 +1334,9 @@ int tmio_mmc_host_runtime_resume(struct device *dev) tmio_mmc_enable_dma(host, true); + if (tmio_mmc_can_retune(host) && host->select_tuning(host)) + dev_warn(&host->pdev->dev, "Tuning selection failed\n"); + return 0; } EXPORT_SYMBOL(tmio_mmc_host_runtime_resume); From d058baa20fc83da4374e4e5ea79e7aa97afbec3f Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Tue, 19 Nov 2019 13:35:47 +0000 Subject: [PATCH 0750/1149] mmc: sh_mobile_sdhi: Add tuning support commit 06f438dd389a699d27585f2a4d3685fd1ce05a75 upstream. Add tuning support for use with SDR104 mode This includes adding support for the sampling clock controller (SCC). Based on work by Ai Kyuse. Cc: Ai Kyuse Signed-off-by: Simon Horman Acked-by: Wolfram Sang Tested-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 265 +++++++++++++++++++++++++++++- 1 file changed, 264 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index 9124246f5e05..d1ec75c24434 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -47,6 +47,11 @@ #define host_to_priv(host) container_of((host)->pdata, struct sh_mobile_sdhi, mmc_data) +struct sh_mobile_sdhi_scc { + unsigned long clk_rate; /* clock rate for SDR104 */ + u32 tap; /* sampling clock position for SDR104 */ +}; + struct sh_mobile_sdhi_of_data { unsigned long tmio_flags; u32 tmio_ocr_mask; @@ -55,6 +60,9 @@ struct sh_mobile_sdhi_of_data { enum dma_slave_buswidth dma_buswidth; dma_addr_t dma_rx_offset; unsigned bus_shift; + int scc_offset; + struct sh_mobile_sdhi_scc *taps; + int taps_num; }; static const struct sh_mobile_sdhi_of_data sh_mobile_sdhi_of_cfg[] = { @@ -69,12 +77,35 @@ static const struct sh_mobile_sdhi_of_data of_rcar_gen1_compatible = { .capabilities = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ, }; +/* Definitions for sampling clocks */ +static struct sh_mobile_sdhi_scc rcar_gen2_scc_taps[] = { + { + .clk_rate = 156000000, + .tap = 0x00000703, + }, + { + .clk_rate = 0, + .tap = 0x00000300, + }, +}; + static const struct sh_mobile_sdhi_of_data of_rcar_gen2_compatible = { .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_WRPROTECT_DISABLE | TMIO_MMC_CLK_ACTUAL | TMIO_MMC_MIN_RCAR2, .capabilities = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ, .dma_buswidth = DMA_SLAVE_BUSWIDTH_4_BYTES, .dma_rx_offset = 0x2000, + .scc_offset = 0x0300, + .taps = rcar_gen2_scc_taps, + .taps_num = ARRAY_SIZE(rcar_gen2_scc_taps), +}; + +/* Definitions for sampling clocks */ +static struct sh_mobile_sdhi_scc rcar_gen3_scc_taps[] = { + { + .clk_rate = 0, + .tap = 0x00000300, + }, }; static const struct sh_mobile_sdhi_of_data of_rcar_gen3_compatible = { @@ -82,6 +113,9 @@ static const struct sh_mobile_sdhi_of_data of_rcar_gen3_compatible = { TMIO_MMC_CLK_ACTUAL | TMIO_MMC_MIN_RCAR2, .capabilities = MMC_CAP_SD_HIGHSPEED, .bus_shift = 2, + .scc_offset = 0x1000, + .taps = rcar_gen3_scc_taps, + .taps_num = ARRAY_SIZE(rcar_gen3_scc_taps), }; static const struct of_device_id sh_mobile_sdhi_of_match[] = { @@ -109,6 +143,7 @@ struct sh_mobile_sdhi { struct tmio_mmc_dma dma_priv; struct pinctrl *pinctrl; struct pinctrl_state *pins_default, *pins_uhs; + void __iomem *scc_ctl; }; static void sh_mobile_sdhi_sdbuf_width(struct tmio_mmc_host *host, int width) @@ -263,6 +298,201 @@ static int sh_mobile_sdhi_start_signal_voltage_switch(struct mmc_host *mmc, return 0; } +/* SCC registers */ +#define SH_MOBILE_SDHI_SCC_DTCNTL 0x000 +#define SH_MOBILE_SDHI_SCC_TAPSET 0x002 +#define SH_MOBILE_SDHI_SCC_DT2FF 0x004 +#define SH_MOBILE_SDHI_SCC_CKSEL 0x006 +#define SH_MOBILE_SDHI_SCC_RVSCNTL 0x008 +#define SH_MOBILE_SDHI_SCC_RVSREQ 0x00A + +/* Definitions for values the SH_MOBILE_SDHI_SCC_DTCNTL register */ +#define SH_MOBILE_SDHI_SCC_DTCNTL_TAPEN BIT(0) +#define SH_MOBILE_SDHI_SCC_DTCNTL_TAPNUM_SHIFT 16 +#define SH_MOBILE_SDHI_SCC_DTCNTL_TAPNUM_MASK 0xff + +/* Definitions for values the SH_MOBILE_SDHI_SCC_CKSEL register */ +#define SH_MOBILE_SDHI_SCC_CKSEL_DTSEL BIT(0) +/* Definitions for values the SH_MOBILE_SDHI_SCC_RVSCNTL register */ +#define SH_MOBILE_SDHI_SCC_RVSCNTL_RVSEN BIT(0) +/* Definitions for values the SH_MOBILE_SDHI_SCC_RVSREQ register */ +#define SH_MOBILE_SDHI_SCC_RVSREQ_RVSERR BIT(2) + +static inline u32 sd_scc_read32(struct tmio_mmc_host *host, + struct sh_mobile_sdhi *priv, int addr) +{ + return readl(priv->scc_ctl + (addr << host->bus_shift)); +} + +static inline void sd_scc_write32(struct tmio_mmc_host *host, + struct sh_mobile_sdhi *priv, + int addr, u32 val) +{ + writel(val, priv->scc_ctl + (addr << host->bus_shift)); +} + +static unsigned int sh_mobile_sdhi_init_tuning(struct tmio_mmc_host *host) +{ + struct sh_mobile_sdhi *priv; + + if (!(host->mmc->caps & MMC_CAP_UHS_SDR104)) + return 0; + + priv = host_to_priv(host); + + /* set sampling clock selection range */ + sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_DTCNTL, + 0x8 << SH_MOBILE_SDHI_SCC_DTCNTL_TAPNUM_SHIFT); + + /* Initialize SCC */ + sd_ctrl_write32_as_16_and_16(host, CTL_STATUS, 0x0); + + sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_DTCNTL, + SH_MOBILE_SDHI_SCC_DTCNTL_TAPEN | + sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_DTCNTL)); + + sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, ~CLK_CTL_SCLKEN & + sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); + + sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_CKSEL, + SH_MOBILE_SDHI_SCC_CKSEL_DTSEL | + sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_CKSEL)); + + sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, CLK_CTL_SCLKEN | + sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); + + sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL, + ~SH_MOBILE_SDHI_SCC_RVSCNTL_RVSEN & + sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL)); + + sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_DT2FF, host->scc_tappos); + + /* Read TAPNUM */ + return (sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_DTCNTL) >> + SH_MOBILE_SDHI_SCC_DTCNTL_TAPNUM_SHIFT) & + SH_MOBILE_SDHI_SCC_DTCNTL_TAPNUM_MASK; +} + +static void sh_mobile_sdhi_prepare_tuning(struct tmio_mmc_host *host, + unsigned long tap) +{ + struct sh_mobile_sdhi *priv = host_to_priv(host); + + /* Set sampling clock position */ + sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_TAPSET, tap); +} + +#define SH_MOBILE_SDHI_MAX_TAP 3 + +static int sh_mobile_sdhi_select_tuning(struct tmio_mmc_host *host) +{ + struct sh_mobile_sdhi *priv = host_to_priv(host); + unsigned long tap_cnt; /* counter of tuning success */ + unsigned long tap_set; /* tap position */ + unsigned long tap_start;/* start position of tuning success */ + unsigned long tap_end; /* end position of tuning success */ + unsigned long ntap; /* temporary counter of tuning success */ + unsigned long i; + + /* Clear SCC_RVSREQ */ + sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_RVSREQ, 0); + + /* + * Find the longest consecutive run of successful probes. If that + * is more than SH_MOBILE_SDHI_MAX_TAP probes long then use the + * center index as the tap. + */ + tap_cnt = 0; + ntap = 0; + tap_start = 0; + tap_end = 0; + for (i = 0; i < host->tap_num * 2; i++) { + if (test_bit(i, host->taps)) + ntap++; + else { + if (ntap > tap_cnt) { + tap_start = i - ntap; + tap_end = i - 1; + tap_cnt = ntap; + } + ntap = 0; + } + } + + if (ntap > tap_cnt) { + tap_start = i - ntap; + tap_end = i - 1; + tap_cnt = ntap; + } + + if (tap_cnt >= SH_MOBILE_SDHI_MAX_TAP) + tap_set = (tap_start + tap_end) / 2 % host->tap_num; + else + return -EIO; + + /* Set SCC */ + sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_TAPSET, tap_set); + + /* Enable auto re-tuning */ + sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL, + SH_MOBILE_SDHI_SCC_RVSCNTL_RVSEN | + sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL)); + + return 0; +} + + +static bool sh_mobile_sdhi_check_scc_error(struct tmio_mmc_host *host) +{ + struct sh_mobile_sdhi *priv; + + if (!(host->mmc->caps & MMC_CAP_UHS_SDR104)) + return 0; + + priv = host_to_priv(host); + + /* Check SCC error */ + if (sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL) & + SH_MOBILE_SDHI_SCC_RVSCNTL_RVSEN && + sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_RVSREQ) & + SH_MOBILE_SDHI_SCC_RVSREQ_RVSERR) { + /* Clear SCC error */ + sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_RVSREQ, 0); + return true; + } + + return false; +} + +static void sh_mobile_sdhi_hw_reset(struct tmio_mmc_host *host) +{ + struct sh_mobile_sdhi *priv; + + if (!(host->mmc->caps & MMC_CAP_UHS_SDR104)) + return; + + priv = host_to_priv(host); + + /* Reset SCC */ + sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, ~CLK_CTL_SCLKEN & + sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); + + sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_CKSEL, + ~SH_MOBILE_SDHI_SCC_CKSEL_DTSEL & + sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_CKSEL)); + + sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, CLK_CTL_SCLKEN | + sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); + + sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL, + ~SH_MOBILE_SDHI_SCC_RVSCNTL_RVSEN & + sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL)); + + sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL, + ~SH_MOBILE_SDHI_SCC_RVSCNTL_RVSEN & + sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL)); +} + static int sh_mobile_sdhi_wait_idle(struct tmio_mmc_host *host) { int timeout = 1000; @@ -332,7 +562,7 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) struct tmio_mmc_data *mmd = pdev->dev.platform_data; struct tmio_mmc_host *host; struct resource *res; - int irq, ret, i = 0; + int irq, ret, i; struct tmio_mmc_dma *dma_priv; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); @@ -392,6 +622,11 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) host->card_busy = sh_mobile_sdhi_card_busy; host->start_signal_voltage_switch = sh_mobile_sdhi_start_signal_voltage_switch; + host->init_tuning = sh_mobile_sdhi_init_tuning; + host->prepare_tuning = sh_mobile_sdhi_prepare_tuning; + host->select_tuning = sh_mobile_sdhi_select_tuning; + host->check_scc_error = sh_mobile_sdhi_check_scc_error; + host->hw_reset = sh_mobile_sdhi_hw_reset; } /* Orginally registers were 16 bit apart, could be 32 or 64 nowadays */ @@ -432,6 +667,34 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) if (ret < 0) goto efree; + if (host->mmc->caps & MMC_CAP_UHS_SDR104) { + host->mmc->caps |= MMC_CAP_HW_RESET; + + if (of_id && of_id->data) { + const struct sh_mobile_sdhi_of_data *of_data; + const struct sh_mobile_sdhi_scc *taps; + bool hit = false; + + of_data = of_id->data; + taps = of_data->taps; + + for (i = 0; i < of_data->taps_num; i++) { + if (taps[i].clk_rate == 0 || + taps[i].clk_rate == host->mmc->f_max) { + host->scc_tappos = taps->tap; + hit = true; + break; + } + } + + if (!hit) + dev_warn(&host->pdev->dev, "Unknown clock rate for SDR104\n"); + + priv->scc_ctl = host->ctl + of_data->scc_offset; + } + } + + i = 0; while (1) { irq = platform_get_irq(pdev, i); if (irq < 0) From 9263583e9582d9893a8f3706c0f14d68f88486da Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Tue, 19 Nov 2019 13:35:48 +0000 Subject: [PATCH 0751/1149] mmc: tmio: fix wrong bitmask for SDIO irqs commit 0c4bf5beff79fd32c5a3b2b511ed6527861ada18 upstream. Commit 7729c7a232a953 ("mmc: tmio: Provide separate interrupt handlers") refactored the sdio irq handler and wrongly used the mask for SD irqs, not for SDIO irqs. This doesn't really matter in practice because both values keep the only interrupt we are interested in. But still, this is wrong and wants to be fixed. Signed-off-by: Wolfram Sang Reviewed-by: Simon Horman Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc_pio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index b569ef3c1ae8..5460fda668d9 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -723,7 +723,7 @@ static bool tmio_mmc_sdio_irq(int irq, void *devid) return false; status = sd_ctrl_read16(host, CTL_SDIO_STATUS); - ireg = status & TMIO_SDIO_MASK_ALL & ~host->sdcard_irq_mask; + ireg = status & TMIO_SDIO_MASK_ALL & ~host->sdio_irq_mask; sdio_status = status & ~TMIO_SDIO_MASK_ALL; if (pdata->flags & TMIO_MMC_SDIO_STATUS_QUIRK) From e4914acf47a2320204a7532539281c7003d09dd4 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Tue, 19 Nov 2019 13:35:49 +0000 Subject: [PATCH 0752/1149] mmc: tmio: remove SDIO from TODO list commit e726e8c959fc735473f248e142de4d4f77ed342b upstream. We surely have SDIO support by now :) Signed-off-by: Wolfram Sang Reviewed-by: Simon Horman Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc_pio.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 5460fda668d9..13afe1f9d85d 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -22,7 +22,6 @@ * TODO: * Investigate using a workqueue for PIO transfers * Eliminate FIXMEs - * SDIO support * Better Power management * Handle MMC errors better * double buffer support From f764e6262016cdda89848a7d58e1558ac62a3d8a Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Tue, 19 Nov 2019 13:35:50 +0000 Subject: [PATCH 0753/1149] mmc: tmio: use SDIO master interrupt bit only when allowed commit c51ff6c6180e76a1ba96aef799a9c41aa80fcc95 upstream. The master bit to enable SDIO interrupts can only be accessed if SCLKDIVEN bit allows that. However, the core uses the SDIO enable callback at times when SCLKDIVEN forbids the change. This leads to "timeout waiting for SD bus idle" messages. We now activate the master bit in probe once if SDIO is supported. IRQ en-/disabling will be done now by the individual IRQ enablement bits only. Signed-off-by: Wolfram Sang Reviewed-by: Yasushi SHOJI Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc_pio.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 13afe1f9d85d..9854d0f53df5 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -140,12 +140,10 @@ static void tmio_mmc_enable_sdio_irq(struct mmc_host *mmc, int enable) host->sdio_irq_mask = TMIO_SDIO_MASK_ALL & ~TMIO_SDIO_STAT_IOIRQ; - sd_ctrl_write16(host, CTL_TRANSACTION_CTL, 0x0001); sd_ctrl_write16(host, CTL_SDIO_IRQ_MASK, host->sdio_irq_mask); } else if (!enable && host->sdio_irq_enabled) { host->sdio_irq_mask = TMIO_SDIO_MASK_ALL; sd_ctrl_write16(host, CTL_SDIO_IRQ_MASK, host->sdio_irq_mask); - sd_ctrl_write16(host, CTL_TRANSACTION_CTL, 0x0000); host->sdio_irq_enabled = false; pm_runtime_mark_last_busy(mmc_dev(mmc)); @@ -1234,7 +1232,7 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host, if (pdata->flags & TMIO_MMC_SDIO_IRQ) { _host->sdio_irq_mask = TMIO_SDIO_MASK_ALL; sd_ctrl_write16(_host, CTL_SDIO_IRQ_MASK, _host->sdio_irq_mask); - sd_ctrl_write16(_host, CTL_TRANSACTION_CTL, 0x0000); + sd_ctrl_write16(_host, CTL_TRANSACTION_CTL, 0x0001); } spin_lock_init(&_host->lock); @@ -1282,6 +1280,9 @@ void tmio_mmc_host_remove(struct tmio_mmc_host *host) struct platform_device *pdev = host->pdev; struct mmc_host *mmc = host->mmc; + if (host->pdata->flags & TMIO_MMC_SDIO_IRQ) + sd_ctrl_write16(host, CTL_TRANSACTION_CTL, 0x0000); + if (!host->native_hotplug) pm_runtime_get_sync(&pdev->dev); From 241ac72ef7dc08d48b496db32a9e355fe7a2857e Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Tue, 19 Nov 2019 13:35:51 +0000 Subject: [PATCH 0754/1149] mmc: sh_mobile_sdhi: simplify accessing DT data commit dc9f1a8d790ee766c47eca163261225680691e64 upstream. By using the helper of_device_get_match_data(), we can skip some checking and make the code simpler. Signed-off-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index d1ec75c24434..9af62ddc998e 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -555,8 +555,7 @@ static void sh_mobile_sdhi_enable_dma(struct tmio_mmc_host *host, bool enable) static int sh_mobile_sdhi_probe(struct platform_device *pdev) { - const struct of_device_id *of_id = - of_match_device(sh_mobile_sdhi_of_match, &pdev->dev); + const struct sh_mobile_sdhi_of_data *of_data = of_device_get_match_data(&pdev->dev); struct sh_mobile_sdhi *priv; struct tmio_mmc_data *mmc_data; struct tmio_mmc_data *mmd = pdev->dev.platform_data; @@ -597,9 +596,8 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) goto eprobe; } - if (of_id && of_id->data) { - const struct sh_mobile_sdhi_of_data *of_data = of_id->data; + if (of_data) { mmc_data->flags |= of_data->tmio_flags; mmc_data->ocr_mask = of_data->tmio_ocr_mask; mmc_data->capabilities |= of_data->capabilities; @@ -670,14 +668,10 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) if (host->mmc->caps & MMC_CAP_UHS_SDR104) { host->mmc->caps |= MMC_CAP_HW_RESET; - if (of_id && of_id->data) { - const struct sh_mobile_sdhi_of_data *of_data; - const struct sh_mobile_sdhi_scc *taps; + if (of_data) { + const struct sh_mobile_sdhi_scc *taps = of_data->taps; bool hit = false; - of_data = of_id->data; - taps = of_data->taps; - for (i = 0; i < of_data->taps_num; i++) { if (taps[i].clk_rate == 0 || taps[i].clk_rate == host->mmc->f_max) { From bf4e1697029ae06a44722cd18c533f186a018e53 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Tue, 19 Nov 2019 13:35:52 +0000 Subject: [PATCH 0755/1149] mmc: sh_mobile_sdhi: improve prerequisite for hw_reset commit 6ade9a2c2da855ff38e74c4298976400feca968e upstream. We need a SCC unit for hw_reset. Those units can only be described in of_data. So, of_data and a valid SCC offset are prerequisites for enabling the hw_reset capability. Merge the two 'if' conditions into one and add a check for an scc offset. Signed-off-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index 9af62ddc998e..9bf1f5e11359 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -665,27 +665,25 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) if (ret < 0) goto efree; - if (host->mmc->caps & MMC_CAP_UHS_SDR104) { + if (of_data && of_data->scc_offset && host->mmc->caps & MMC_CAP_UHS_SDR104) { + const struct sh_mobile_sdhi_scc *taps = of_data->taps; + bool hit = false; + host->mmc->caps |= MMC_CAP_HW_RESET; - if (of_data) { - const struct sh_mobile_sdhi_scc *taps = of_data->taps; - bool hit = false; - - for (i = 0; i < of_data->taps_num; i++) { - if (taps[i].clk_rate == 0 || - taps[i].clk_rate == host->mmc->f_max) { - host->scc_tappos = taps->tap; - hit = true; - break; - } + for (i = 0; i < of_data->taps_num; i++) { + if (taps[i].clk_rate == 0 || + taps[i].clk_rate == host->mmc->f_max) { + host->scc_tappos = taps->tap; + hit = true; + break; } + } - if (!hit) - dev_warn(&host->pdev->dev, "Unknown clock rate for SDR104\n"); + if (!hit) + dev_warn(&host->pdev->dev, "Unknown clock rate for SDR104\n"); - priv->scc_ctl = host->ctl + of_data->scc_offset; - } + priv->scc_ctl = host->ctl + of_data->scc_offset; } i = 0; From b18b8369d93dc96004151ba9dd7459f67b079235 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Tue, 19 Nov 2019 13:35:53 +0000 Subject: [PATCH 0756/1149] mmc: sh_mobile_sdhi: remove superfluous check in hw_reset commit 97c64b2cd57608f7064810780056d17944f49128 upstream. The capability for HW_RESET is only activated if SDR104 is present, so no need to check for SDR104 in the function itself again. Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index 9bf1f5e11359..d3d1db062436 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -468,9 +468,6 @@ static void sh_mobile_sdhi_hw_reset(struct tmio_mmc_host *host) { struct sh_mobile_sdhi *priv; - if (!(host->mmc->caps & MMC_CAP_UHS_SDR104)) - return; - priv = host_to_priv(host); /* Reset SCC */ From 8e4c74bb113cd70b50b0c0841842f1093f47b18d Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Tue, 19 Nov 2019 13:35:54 +0000 Subject: [PATCH 0757/1149] mmc: sh_mobile_sdhi: improve prerequisites for tuning commit e831ead3b3ddc4227cef10dc63d919fd7242d7b8 upstream. Prerequisites for tuning are the same as for hw_reset. We need an SCC and a supported mode. Populate the tuning related functions only when those conditions are met. This also removes a tiny race window. Previously, the functions were populated when the SCC offset was not initialized which could have led to an OOPS. Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index d3d1db062436..30956c74eb69 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -617,11 +617,6 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) host->card_busy = sh_mobile_sdhi_card_busy; host->start_signal_voltage_switch = sh_mobile_sdhi_start_signal_voltage_switch; - host->init_tuning = sh_mobile_sdhi_init_tuning; - host->prepare_tuning = sh_mobile_sdhi_prepare_tuning; - host->select_tuning = sh_mobile_sdhi_select_tuning; - host->check_scc_error = sh_mobile_sdhi_check_scc_error; - host->hw_reset = sh_mobile_sdhi_hw_reset; } /* Orginally registers were 16 bit apart, could be 32 or 64 nowadays */ @@ -662,6 +657,7 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) if (ret < 0) goto efree; + /* Enable tuning iff we have an SCC and a supported mode */ if (of_data && of_data->scc_offset && host->mmc->caps & MMC_CAP_UHS_SDR104) { const struct sh_mobile_sdhi_scc *taps = of_data->taps; bool hit = false; @@ -681,6 +677,11 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) dev_warn(&host->pdev->dev, "Unknown clock rate for SDR104\n"); priv->scc_ctl = host->ctl + of_data->scc_offset; + host->init_tuning = sh_mobile_sdhi_init_tuning; + host->prepare_tuning = sh_mobile_sdhi_prepare_tuning; + host->select_tuning = sh_mobile_sdhi_select_tuning; + host->check_scc_error = sh_mobile_sdhi_check_scc_error; + host->hw_reset = sh_mobile_sdhi_hw_reset; } i = 0; From 158a74f84fdc185d3ea7f9e3efc0f9256ce6916d Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Tue, 19 Nov 2019 13:35:55 +0000 Subject: [PATCH 0758/1149] mmc: sh_mobile_sdhi: remove superfluous check in SCC error check commit 03c5b0d90300fc725fc1fb644872b522483a2d7e upstream. The function will only be available if SDR104 was detected in probe, so no need to check in the function itself again. Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index 30956c74eb69..59cc5139da49 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -444,12 +444,7 @@ static int sh_mobile_sdhi_select_tuning(struct tmio_mmc_host *host) static bool sh_mobile_sdhi_check_scc_error(struct tmio_mmc_host *host) { - struct sh_mobile_sdhi *priv; - - if (!(host->mmc->caps & MMC_CAP_UHS_SDR104)) - return 0; - - priv = host_to_priv(host); + struct sh_mobile_sdhi *priv = host_to_priv(host); /* Check SCC error */ if (sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL) & From 5fc54f9356dc1fbe5fe6a46f00a2d9e45f247a2a Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Tue, 19 Nov 2019 13:35:56 +0000 Subject: [PATCH 0759/1149] mmc: sh_mobile_sdhi: remove superfluous check in init_tuning commit 7f9096f1c89ea698c22fde91285de2ef3eabd614 upstream. The function will only be available if SDR104 was detected in probe, so no need to check in the function itself again. Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index 59cc5139da49..d8515352e303 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -335,9 +335,6 @@ static unsigned int sh_mobile_sdhi_init_tuning(struct tmio_mmc_host *host) { struct sh_mobile_sdhi *priv; - if (!(host->mmc->caps & MMC_CAP_UHS_SDR104)) - return 0; - priv = host_to_priv(host); /* set sampling clock selection range */ From 20cd74d00d332590cfed0d4fcbe05baae38e3da1 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Tue, 19 Nov 2019 13:35:57 +0000 Subject: [PATCH 0760/1149] mmc: sh_mobile_sdhi: enable HS200 commit b1c95170f97ef19ff63a6da1eb2c70899186aecc upstream. Setup tuning when the board is HS200 enabled. Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index d8515352e303..8e9067032a0e 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -650,7 +650,9 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) goto efree; /* Enable tuning iff we have an SCC and a supported mode */ - if (of_data && of_data->scc_offset && host->mmc->caps & MMC_CAP_UHS_SDR104) { + if (of_data && of_data->scc_offset && + (host->mmc->caps & MMC_CAP_UHS_SDR104 || + host->mmc->caps2 & MMC_CAP2_HS200_1_8V_SDR)) { const struct sh_mobile_sdhi_scc *taps = of_data->taps; bool hit = false; From a84de9ebebf70cb9d43dc876b11ee8c6f9e8484c Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Tue, 19 Nov 2019 13:35:58 +0000 Subject: [PATCH 0761/1149] mmc: host: tmio: drop superfluous exit path commit ad7014b3949b6c2b6ce46a546d6d204b5643e621 upstream. The probe exit path on error does nothing since commit 94b110aff8679b ("mmc: tmio: add tmio_mmc_host_alloc/free()"), so we can bail out immediately. Signed-off-by: Wolfram Sang Reviewed-by: Simon Horman Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc_pio.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 9854d0f53df5..2736edf7e0d3 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -1145,7 +1145,7 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host, ret = mmc_of_parse(mmc); if (ret < 0) - goto host_free; + return ret; _host->pdata = pdata; platform_set_drvdata(pdev, mmc); @@ -1155,14 +1155,12 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host, ret = tmio_mmc_init_ocr(_host); if (ret < 0) - goto host_free; + return ret; _host->ctl = devm_ioremap(&pdev->dev, res_ctl->start, resource_size(res_ctl)); - if (!_host->ctl) { - ret = -ENOMEM; - goto host_free; - } + if (!_host->ctl) + return -ENOMEM; tmio_mmc_ops.card_busy = _host->card_busy; tmio_mmc_ops.start_signal_voltage_switch = _host->start_signal_voltage_switch; @@ -1200,10 +1198,8 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host, * Check the sanity of mmc->f_min to prevent tmio_mmc_set_clock() from * looping forever... */ - if (mmc->f_min == 0) { - ret = -EINVAL; - goto host_free; - } + if (mmc->f_min == 0) + return -EINVAL; /* * While using internal tmio hardware logic for card detection, we need @@ -1268,10 +1264,6 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host, } return 0; - -host_free: - - return ret; } EXPORT_SYMBOL(tmio_mmc_host_probe); From ba9f2d1cf71b025ca9b6e911f3c81de6f9d6e440 Mon Sep 17 00:00:00 2001 From: Ulf Hansson Date: Tue, 19 Nov 2019 13:35:59 +0000 Subject: [PATCH 0762/1149] mmc: tmio: Remove redundant check of mmc->slot.cd_irq commit efd7be7bfc8eb8942ba3dc319f323cfd0eda99e2 upstream. To validate whether native hotplug needs to be used, the tmio driver checks whether the mmc->slot.cd_irq has been successfully assigned. This check is redundant at its current place in tmio_mmc_host_probe(), as the mmc core assigns mmc->slot.cd_irq a valid value first when mmc_gpiod_request_cd_irq() is called. Therefore, let's just remove the check for now, as that also removes a layering violation of the tmio driver accessing core specific data via ->slot.cd_irq. Signed-off-by: Ulf Hansson Reviewed-by: Wolfram Sang Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc_pio.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 2736edf7e0d3..14a094c69aad 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -1177,8 +1177,7 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host, _host->native_hotplug = !(pdata->flags & TMIO_MMC_USE_GPIO_CD || mmc->caps & MMC_CAP_NEEDS_POLL || - mmc->caps & MMC_CAP_NONREMOVABLE || - mmc->slot.cd_irq >= 0); + !mmc_card_is_removable(mmc)); /* * On Gen2+, eMMC with NONREMOVABLE currently fails because native From ded9fdcda5bda2e1e59c5061404f038401917853 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Tue, 19 Nov 2019 13:36:00 +0000 Subject: [PATCH 0763/1149] mmc: host: tmio: disable clocks when unbinding commit dfcba5ffca989749d1fc49d5b82a2d007b1295b7 upstream. Create a helper function to disable clocks and use it in remove(), too. Now, clk_summary in debugfs reports the clocks as disabled and unprepared after unbinding. Signed-off-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc_pio.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 14a094c69aad..eaed795357b4 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -902,6 +902,12 @@ static int tmio_mmc_clk_enable(struct tmio_mmc_host *host) return host->clk_enable(host); } +static void tmio_mmc_clk_disable(struct tmio_mmc_host *host) +{ + if (host->clk_disable) + host->clk_disable(host); +} + static void tmio_mmc_power_on(struct tmio_mmc_host *host, unsigned short vdd) { struct mmc_host *mmc = host->mmc; @@ -1286,6 +1292,8 @@ void tmio_mmc_host_remove(struct tmio_mmc_host *host) pm_runtime_put_sync(&pdev->dev); pm_runtime_disable(&pdev->dev); + + tmio_mmc_clk_disable(host); } EXPORT_SYMBOL(tmio_mmc_host_remove); @@ -1300,8 +1308,7 @@ int tmio_mmc_host_runtime_suspend(struct device *dev) if (host->clk_cache) tmio_mmc_clk_stop(host); - if (host->clk_disable) - host->clk_disable(host); + tmio_mmc_clk_disable(host); return 0; } From b375df96b9a115c723c72341c22e0c190e86aad0 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Tue, 19 Nov 2019 13:36:01 +0000 Subject: [PATCH 0764/1149] mmc: host: tmio: refactor calls to sdio irq commit e4f38eb18aedd098b3019e82df07f583a5cbcc58 upstream. tmio_mmc_sdio_irq() is not used as a seperate irq handler anymore, so we can make it similar to the other irq helper functions, namely: * only give the host as argument function which is what it really needs * prefix function name with __ Signed-off-by: Wolfram Sang Acked-by: Simon Horman Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc_pio.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index eaed795357b4..09574e597792 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -708,9 +708,8 @@ static bool __tmio_mmc_sdcard_irq(struct tmio_mmc_host *host, return false; } -static bool tmio_mmc_sdio_irq(int irq, void *devid) +static bool __tmio_mmc_sdio_irq(struct tmio_mmc_host *host) { - struct tmio_mmc_host *host = devid; struct mmc_host *mmc = host->mmc; struct tmio_mmc_data *pdata = host->pdata; unsigned int ireg, status; @@ -753,7 +752,7 @@ irqreturn_t tmio_mmc_irq(int irq, void *devid) if (__tmio_mmc_sdcard_irq(host, ireg, status)) return IRQ_HANDLED; - if (tmio_mmc_sdio_irq(irq, devid)) + if (__tmio_mmc_sdio_irq(host)) return IRQ_HANDLED; return IRQ_NONE; From 6a5f72d982509fcb251838dcea0fdf5b143d250c Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Tue, 19 Nov 2019 13:36:02 +0000 Subject: [PATCH 0765/1149] mmc: host: tmio: SDIO_STATUS_QUIRK is rather SDIO_STATUS_SETBITS commit 20dd03734cac41a0545dd24f5e81d8ff0c80874b upstream. QUIRK sounds like there is something wrong, but actually there are just some bits which need to be 1. Rename it to be more clear. Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 6 ++---- drivers/mmc/host/tmio_mmc_pio.c | 2 +- include/linux/mfd/tmio.h | 6 ++---- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index 8e9067032a0e..a723550122ec 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -640,10 +640,8 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) */ mmc_data->flags |= TMIO_MMC_HAVE_CMD12_CTRL; - /* - * All SDHI need SDIO_INFO1 reserved bit - */ - mmc_data->flags |= TMIO_MMC_SDIO_STATUS_QUIRK; + /* All SDHI have SDIO status bits which must be 1 */ + mmc_data->flags |= TMIO_MMC_SDIO_STATUS_SETBITS; ret = tmio_mmc_host_probe(host, mmc_data); if (ret < 0) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 09574e597792..32f6cb81c206 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -722,7 +722,7 @@ static bool __tmio_mmc_sdio_irq(struct tmio_mmc_host *host) ireg = status & TMIO_SDIO_MASK_ALL & ~host->sdio_irq_mask; sdio_status = status & ~TMIO_SDIO_MASK_ALL; - if (pdata->flags & TMIO_MMC_SDIO_STATUS_QUIRK) + if (pdata->flags & TMIO_MMC_SDIO_STATUS_SETBITS) sdio_status |= 6; sd_ctrl_write16(host, CTL_SDIO_STATUS, sdio_status); diff --git a/include/linux/mfd/tmio.h b/include/linux/mfd/tmio.h index fba44abd05ba..a1520d88ebf3 100644 --- a/include/linux/mfd/tmio.h +++ b/include/linux/mfd/tmio.h @@ -94,10 +94,8 @@ */ #define TMIO_MMC_HAVE_CMD12_CTRL (1 << 7) -/* - * Some controllers needs to set 1 on SDIO status reserved bits - */ -#define TMIO_MMC_SDIO_STATUS_QUIRK (1 << 8) +/* Controller has some SDIO status bits which must be 1 */ +#define TMIO_MMC_SDIO_STATUS_SETBITS (1 << 8) /* * Some controllers have a 32-bit wide data port register From b85a9b3671db497e7a8888483ddbe0ba5df04834 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Tue, 19 Nov 2019 13:36:03 +0000 Subject: [PATCH 0766/1149] mmc: tmio: discard obsolete SDIO irqs before enabling irqs commit ee28981535f4261ed5d127ddf4d1a3f8778f520d upstream. Before enabling SDIO irqs, clear the status bit, so we discard old and stale interrupts. Needed to get two wireless cards working. Use the newly introduced macro in all places. Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc.h | 2 ++ drivers/mmc/host/tmio_mmc_pio.c | 13 +++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index ba2838c6e2df..e41467040e3e 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -90,6 +90,8 @@ #define TMIO_SDIO_STAT_EXWT 0x8000 #define TMIO_SDIO_MASK_ALL 0xc007 +#define TMIO_SDIO_SETBITS_MASK 0x0006 + /* Define some IRQ masks */ /* This is the mask used at reset by the chip */ #define TMIO_MASK_ALL 0x837f031d diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 32f6cb81c206..3ec58b447311 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -134,12 +134,21 @@ static void tmio_mmc_enable_sdio_irq(struct mmc_host *mmc, int enable) struct tmio_mmc_host *host = mmc_priv(mmc); if (enable && !host->sdio_irq_enabled) { + u16 sdio_status; + /* Keep device active while SDIO irq is enabled */ pm_runtime_get_sync(mmc_dev(mmc)); - host->sdio_irq_enabled = true; + host->sdio_irq_enabled = true; host->sdio_irq_mask = TMIO_SDIO_MASK_ALL & ~TMIO_SDIO_STAT_IOIRQ; + + /* Clear obsolete interrupts before enabling */ + sdio_status = sd_ctrl_read16(host, CTL_SDIO_STATUS) & ~TMIO_SDIO_MASK_ALL; + if (host->pdata->flags & TMIO_MMC_SDIO_STATUS_SETBITS) + sdio_status |= TMIO_SDIO_SETBITS_MASK; + sd_ctrl_write16(host, CTL_SDIO_STATUS, sdio_status); + sd_ctrl_write16(host, CTL_SDIO_IRQ_MASK, host->sdio_irq_mask); } else if (!enable && host->sdio_irq_enabled) { host->sdio_irq_mask = TMIO_SDIO_MASK_ALL; @@ -723,7 +732,7 @@ static bool __tmio_mmc_sdio_irq(struct tmio_mmc_host *host) sdio_status = status & ~TMIO_SDIO_MASK_ALL; if (pdata->flags & TMIO_MMC_SDIO_STATUS_SETBITS) - sdio_status |= 6; + sdio_status |= TMIO_SDIO_SETBITS_MASK; sd_ctrl_write16(host, CTL_SDIO_STATUS, sdio_status); From 29cbf4540c6f073039cd7f36e4ec78b3065689dc Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Tue, 19 Nov 2019 13:36:04 +0000 Subject: [PATCH 0767/1149] mmc: tmio: ensure end of DMA and SD access are in sync commit 52ad9a8e854ca13151f4af8140297f73d49e318a upstream. The current code assumes that DMA is finished before SD access end is flagged. Thus, it schedules the 'dma_complete' tasklet in the SD card interrupt routine when DATAEND is set. The assumption is not safe, though. Even by mounting an SD card, it can be seen that sometimes DMA complete is first, sometimes DATAEND. It seems they are usually close enough timewise to not cause problems. However, a customer reported that with CMD53 sometimes things really break apart. As a result, the BSP has a patch which introduces flags for both events and makes sure both flags are set before scheduling the tasklet. The customer accepted the patch, yet it doesn't seem a proper upstream solution to me. This patch refactors the code to replace the tasklet with already existing and more lightweight mechanisms. First of all, we set the callback in a DMA descriptor to automatically get notified when DMA is done. In the callback, we then use a completion to make sure the SD access has already ended. Then, we proceed as before. Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc.h | 2 +- drivers/mmc/host/tmio_mmc_dma.c | 58 +++++++++++++++++++-------------- drivers/mmc/host/tmio_mmc_pio.c | 4 +-- 3 files changed, 37 insertions(+), 27 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index e41467040e3e..f864be46b817 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -136,7 +136,7 @@ struct tmio_mmc_host { bool force_pio; struct dma_chan *chan_rx; struct dma_chan *chan_tx; - struct tasklet_struct dma_complete; + struct completion dma_dataend; struct tasklet_struct dma_issue; struct scatterlist bounce_sg; u8 *bounce_buf; diff --git a/drivers/mmc/host/tmio_mmc_dma.c b/drivers/mmc/host/tmio_mmc_dma.c index d1573687515d..cef1eb449297 100644 --- a/drivers/mmc/host/tmio_mmc_dma.c +++ b/drivers/mmc/host/tmio_mmc_dma.c @@ -43,6 +43,31 @@ void tmio_mmc_abort_dma(struct tmio_mmc_host *host) tmio_mmc_enable_dma(host, true); } +static void tmio_mmc_dma_callback(void *arg) +{ + struct tmio_mmc_host *host = arg; + + wait_for_completion(&host->dma_dataend); + + spin_lock_irq(&host->lock); + + if (!host->data) + goto out; + + if (host->data->flags & MMC_DATA_READ) + dma_unmap_sg(host->chan_rx->device->dev, + host->sg_ptr, host->sg_len, + DMA_FROM_DEVICE); + else + dma_unmap_sg(host->chan_tx->device->dev, + host->sg_ptr, host->sg_len, + DMA_TO_DEVICE); + + tmio_mmc_do_data_irq(host); +out: + spin_unlock_irq(&host->lock); +} + static void tmio_mmc_start_dma_rx(struct tmio_mmc_host *host) { struct scatterlist *sg = host->sg_ptr, *sg_tmp; @@ -88,6 +113,10 @@ static void tmio_mmc_start_dma_rx(struct tmio_mmc_host *host) DMA_DEV_TO_MEM, DMA_CTRL_ACK); if (desc) { + reinit_completion(&host->dma_dataend); + desc->callback = tmio_mmc_dma_callback; + desc->callback_param = host; + cookie = dmaengine_submit(desc); if (cookie < 0) { desc = NULL; @@ -162,6 +191,10 @@ static void tmio_mmc_start_dma_tx(struct tmio_mmc_host *host) DMA_MEM_TO_DEV, DMA_CTRL_ACK); if (desc) { + reinit_completion(&host->dma_dataend); + desc->callback = tmio_mmc_dma_callback; + desc->callback_param = host; + cookie = dmaengine_submit(desc); if (cookie < 0) { desc = NULL; @@ -221,29 +254,6 @@ static void tmio_mmc_issue_tasklet_fn(unsigned long priv) dma_async_issue_pending(chan); } -static void tmio_mmc_tasklet_fn(unsigned long arg) -{ - struct tmio_mmc_host *host = (struct tmio_mmc_host *)arg; - - spin_lock_irq(&host->lock); - - if (!host->data) - goto out; - - if (host->data->flags & MMC_DATA_READ) - dma_unmap_sg(host->chan_rx->device->dev, - host->sg_ptr, host->sg_len, - DMA_FROM_DEVICE); - else - dma_unmap_sg(host->chan_tx->device->dev, - host->sg_ptr, host->sg_len, - DMA_TO_DEVICE); - - tmio_mmc_do_data_irq(host); -out: - spin_unlock_irq(&host->lock); -} - void tmio_mmc_request_dma(struct tmio_mmc_host *host, struct tmio_mmc_data *pdata) { /* We can only either use DMA for both Tx and Rx or not use it at all */ @@ -306,7 +316,7 @@ void tmio_mmc_request_dma(struct tmio_mmc_host *host, struct tmio_mmc_data *pdat if (!host->bounce_buf) goto ebouncebuf; - tasklet_init(&host->dma_complete, tmio_mmc_tasklet_fn, (unsigned long)host); + init_completion(&host->dma_dataend); tasklet_init(&host->dma_issue, tmio_mmc_issue_tasklet_fn, (unsigned long)host); } diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 3ec58b447311..7cb30d3c520e 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -595,11 +595,11 @@ static void tmio_mmc_data_irq(struct tmio_mmc_host *host, unsigned int stat) if (done) { tmio_mmc_disable_mmc_irqs(host, TMIO_STAT_DATAEND); - tasklet_schedule(&host->dma_complete); + complete(&host->dma_dataend); } } else if (host->chan_rx && (data->flags & MMC_DATA_READ) && !host->force_pio) { tmio_mmc_disable_mmc_irqs(host, TMIO_STAT_DATAEND); - tasklet_schedule(&host->dma_complete); + complete(&host->dma_dataend); } else { tmio_mmc_do_data_irq(host); tmio_mmc_disable_mmc_irqs(host, TMIO_MASK_READOP | TMIO_MASK_WRITEOP); From 5a704a234317a465432a9541229954c2a5ae373f Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Tue, 19 Nov 2019 13:36:05 +0000 Subject: [PATCH 0768/1149] mmc: host: tmio: use defines for CTL_STOP_INTERNAL_ACTION values commit 9afcbf4a6f1995f3b47088764eaef7b56154beb9 upstream. Reviewed-by: Simon Horman Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc.h | 4 ++++ drivers/mmc/host/tmio_mmc_pio.c | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index f864be46b817..3164e7c84f07 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -49,6 +49,10 @@ #define CTL_CLK_AND_WAIT_CTL 0x138 #define CTL_RESET_SDIO 0x1e0 +/* Definitions for values the CTL_STOP_INTERNAL_ACTION register can take */ +#define TMIO_STOP_STP BIT(0) +#define TMIO_STOP_SEC BIT(8) + /* Definitions for values the CTRL_STATUS register can take. */ #define TMIO_STAT_CMDRESPEND BIT(0) #define TMIO_STAT_DATAEND BIT(2) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 7cb30d3c520e..3004d904b0f1 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -340,7 +340,7 @@ static int tmio_mmc_start_command(struct tmio_mmc_host *host, struct mmc_command /* CMD12 is handled by hardware */ if (cmd->opcode == MMC_STOP_TRANSMISSION && !cmd->arg) { - sd_ctrl_write16(host, CTL_STOP_INTERNAL_ACTION, 0x001); + sd_ctrl_write16(host, CTL_STOP_INTERNAL_ACTION, TMIO_STOP_STP); return 0; } @@ -367,7 +367,7 @@ static int tmio_mmc_start_command(struct tmio_mmc_host *host, struct mmc_command if (data) { c |= DATA_PRESENT; if (data->blocks > 1) { - sd_ctrl_write16(host, CTL_STOP_INTERNAL_ACTION, 0x100); + sd_ctrl_write16(host, CTL_STOP_INTERNAL_ACTION, TMIO_STOP_SEC); c |= TRANSFER_MULTI; /* @@ -553,7 +553,7 @@ void tmio_mmc_do_data_irq(struct tmio_mmc_host *host) if (stop) { if (stop->opcode == MMC_STOP_TRANSMISSION && !stop->arg) - sd_ctrl_write16(host, CTL_STOP_INTERNAL_ACTION, 0x000); + sd_ctrl_write16(host, CTL_STOP_INTERNAL_ACTION, 0); else BUG(); } From d8f76972aa6ef62210a169b1c75cdac7d86beeb9 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Tue, 19 Nov 2019 13:36:06 +0000 Subject: [PATCH 0769/1149] mmc: host: tmio: don't BUG on unsupported stop commands commit 022f731e03d190d0e4f52f2b1bd90fae0eadd56d upstream. Halting the kernel on an unsupported stop command seems overkill, report the error and say what we already did (due to autocmd12) instead. Reviewed-by: Simon Horman Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc_pio.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 3004d904b0f1..4faacd530cf6 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -552,10 +552,11 @@ void tmio_mmc_do_data_irq(struct tmio_mmc_host *host) } if (stop) { - if (stop->opcode == MMC_STOP_TRANSMISSION && !stop->arg) - sd_ctrl_write16(host, CTL_STOP_INTERNAL_ACTION, 0); - else - BUG(); + if (stop->opcode != MMC_STOP_TRANSMISSION || stop->arg) + dev_err(&host->pdev->dev, "unsupported stop: CMD%u,0x%x. We did CMD12,0\n", + stop->opcode, stop->arg); + + sd_ctrl_write16(host, CTL_STOP_INTERNAL_ACTION, 0); } schedule_work(&host->done); From 722995b7b13852f4252121ea9ce4c061692bb1fd Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Tue, 19 Nov 2019 13:36:07 +0000 Subject: [PATCH 0770/1149] mmc: host: tmio: fill in response from auto cmd12 commit eb7c00e1461124ad0e85f1a9a3954d7164809c13 upstream. After we received the dataend interrupt, R1 response register carries the value from the automatically generated stop command. Report that info back to the MMC block layer, so we will be notified in case of e.g. ECC errors which happened during the last transfer. Reviewed-by: Simon Horman Tested-by: Yoshihiro Shimoda Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc_pio.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 4faacd530cf6..163646f9264a 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -556,6 +556,9 @@ void tmio_mmc_do_data_irq(struct tmio_mmc_host *host) dev_err(&host->pdev->dev, "unsupported stop: CMD%u,0x%x. We did CMD12,0\n", stop->opcode, stop->arg); + /* fill in response from auto CMD12 */ + stop->resp[0] = sd_ctrl_read16_and_16_as_32(host, CTL_RESPONSE); + sd_ctrl_write16(host, CTL_STOP_INTERNAL_ACTION, 0); } From 3467edbb6618693f6dd11edcb94638feeefb463a Mon Sep 17 00:00:00 2001 From: Masaharu Hayakawa Date: Tue, 19 Nov 2019 13:36:08 +0000 Subject: [PATCH 0771/1149] mmc: tmio: always get number of taps commit 43b0b361b0170030603cf76f70b099f3323edcf3 upstream. Current code gets number of taps only once and keeps the value. This is not correct, we need to obtain it every time before executing tuning, so remove the outer if-block. Signed-off-by: Masaharu Hayakawa [wsa: extracted from a larger patch and reworded commit message] Signed-off-by: Wolfram Sang Reviewed-by: Simon Horman Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc_pio.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 163646f9264a..bcca0e253051 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -817,16 +817,14 @@ static int tmio_mmc_execute_tuning(struct mmc_host *mmc, u32 opcode) struct tmio_mmc_host *host = mmc_priv(mmc); int i, ret = 0; - if (!host->tap_num) { - if (!host->init_tuning || !host->select_tuning) - /* Tuning is not supported */ - goto out; + if (!host->init_tuning || !host->select_tuning) + /* Tuning is not supported */ + goto out; - host->tap_num = host->init_tuning(host); - if (!host->tap_num) - /* Tuning is not supported */ - goto out; - } + host->tap_num = host->init_tuning(host); + if (!host->tap_num) + /* Tuning is not supported */ + goto out; if (host->tap_num * 2 >= sizeof(host->taps) * BITS_PER_BYTE) { dev_warn_once(&host->pdev->dev, From 4069ebc198c8bb00eecf04f8528f663bba37c94d Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Tue, 19 Nov 2019 13:36:09 +0000 Subject: [PATCH 0772/1149] mmc: tmio: drop filenames from comment at top of source commit b21f13d8f7bf1b65b2e5396fbd8bfb857627b666 upstream. Reshuffle the comment at the top of the source dropping filenames and moving up human readable strings. This seems to be somewhat more useful information to start the source file with. It is also less fragile, f.e. to file renames. Signed-off-by: Simon Horman Acked-by: Arnd Bergmann Reviewed-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc.c | 8 +++----- drivers/mmc/host/tmio_mmc.h | 7 +++---- drivers/mmc/host/tmio_mmc_dma.c | 4 +--- drivers/mmc/host/tmio_mmc_pio.c | 8 +++----- 4 files changed, 10 insertions(+), 17 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc.c b/drivers/mmc/host/tmio_mmc.c index e897e7fc3b14..ff14311bddbe 100644 --- a/drivers/mmc/host/tmio_mmc.c +++ b/drivers/mmc/host/tmio_mmc.c @@ -1,5 +1,7 @@ /* - * linux/drivers/mmc/host/tmio_mmc.c + * Driver for the MMC / SD / SDIO cell found in: + * + * TC6393XB TC6391XB TC6387XB T7L66XB ASIC3 * * Copyright (C) 2007 Ian Molton * Copyright (C) 2004 Ian Molton @@ -7,10 +9,6 @@ * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. - * - * Driver for the MMC / SD / SDIO cell found in: - * - * TC6393XB TC6391XB TC6387XB T7L66XB ASIC3 */ #include diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index 3164e7c84f07..d01776ecc9e4 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -1,5 +1,7 @@ /* - * linux/drivers/mmc/host/tmio_mmc.h + * Driver for the MMC / SD / SDIO cell found in: + * + * TC6393XB TC6391XB TC6387XB T7L66XB ASIC3 * * Copyright (C) 2016 Sang Engineering, Wolfram Sang * Copyright (C) 2015-16 Renesas Electronics Corporation @@ -10,9 +12,6 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * - * Driver for the MMC / SD / SDIO cell found in: - * - * TC6393XB TC6391XB TC6387XB T7L66XB ASIC3 */ #ifndef TMIO_MMC_H diff --git a/drivers/mmc/host/tmio_mmc_dma.c b/drivers/mmc/host/tmio_mmc_dma.c index cef1eb449297..f6684415a0b2 100644 --- a/drivers/mmc/host/tmio_mmc_dma.c +++ b/drivers/mmc/host/tmio_mmc_dma.c @@ -1,13 +1,11 @@ /* - * linux/drivers/mmc/tmio_mmc_dma.c + * DMA function for TMIO MMC implementations * * Copyright (C) 2010-2011 Guennadi Liakhovetski * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. - * - * DMA function for TMIO MMC implementations */ #include diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index bcca0e253051..f512be4bc9d2 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -1,5 +1,7 @@ /* - * linux/drivers/mmc/host/tmio_mmc_pio.c + * Driver for the MMC / SD / SDIO IP found in: + * + * TC6393XB, TC6391XB, TC6387XB, T7L66XB, ASIC3, SH-Mobile SoCs * * Copyright (C) 2016 Sang Engineering, Wolfram Sang * Copyright (C) 2015-16 Renesas Electronics Corporation @@ -11,10 +13,6 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * - * Driver for the MMC / SD / SDIO IP found in: - * - * TC6393XB, TC6391XB, TC6387XB, T7L66XB, ASIC3, SH-Mobile SoCs - * * This driver draws mainly on scattered spec sheets, Reverse engineering * of the toshiba e800 SD driver and some parts of the 2.4 ASIC3 driver (4 bit * support). (Further 4 bit support from a later datasheet). From 9d5d291a5fc17d9b3fa13a7a7d59630d7da7b6d0 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Tue, 19 Nov 2019 13:36:10 +0000 Subject: [PATCH 0773/1149] mmc: renesas-sdhi, tmio: make dma more modular commit 631fa73cfba8dcfd0d1db8eb608527183ed95648 upstream. Refactor DMA support to allow it to be provided by a set of call-backs that are provided by a host driver. The motivation is to allow multiple DMA implementations to be provided and instantiated at run-time. Instantiate the existing DMA implementation from the sh_mobile_sdhi driver which appears to match the current use-case. This has the side effect of moving the DMA code from the tmio_core to the sh_mobile_sdhi driver. A follow-up patch will change the source file for the SDHI DMA implementation accordingly. Another follow-up patch will re-organise the SDHI driver removing the need for tmio_mmc_get_dma_ops(). Signed-off-by: Simon Horman Acked-by: Arnd Bergmann Reviewed-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/Makefile | 3 +- drivers/mmc/host/sh_mobile_sdhi.c | 2 +- drivers/mmc/host/tmio_mmc.c | 2 +- drivers/mmc/host/tmio_mmc.h | 55 +++++++++++++------------------ drivers/mmc/host/tmio_mmc_dma.c | 24 +++++++++++--- drivers/mmc/host/tmio_mmc_pio.c | 43 +++++++++++++++++++++++- 6 files changed, 86 insertions(+), 43 deletions(-) diff --git a/drivers/mmc/host/Makefile b/drivers/mmc/host/Makefile index 3595f83e89dd..bf399b818050 100644 --- a/drivers/mmc/host/Makefile +++ b/drivers/mmc/host/Makefile @@ -37,8 +37,7 @@ obj-$(CONFIG_MMC_SDRICOH_CS) += sdricoh_cs.o obj-$(CONFIG_MMC_TMIO) += tmio_mmc.o obj-$(CONFIG_MMC_TMIO_CORE) += tmio_mmc_core.o tmio_mmc_core-y := tmio_mmc_pio.o -tmio_mmc_core-$(subst m,y,$(CONFIG_MMC_SDHI)) += tmio_mmc_dma.o -obj-$(CONFIG_MMC_SDHI) += sh_mobile_sdhi.o +obj-$(CONFIG_MMC_SDHI) += sh_mobile_sdhi.o tmio_mmc_dma.o obj-$(CONFIG_MMC_CB710) += cb710-mmc.o obj-$(CONFIG_MMC_VIA_SDMMC) += via-sdmmc.o obj-$(CONFIG_SDH_BFIN) += bfin_sdh.o diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index a723550122ec..05edac354085 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -643,7 +643,7 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) /* All SDHI have SDIO status bits which must be 1 */ mmc_data->flags |= TMIO_MMC_SDIO_STATUS_SETBITS; - ret = tmio_mmc_host_probe(host, mmc_data); + ret = tmio_mmc_host_probe(host, mmc_data, tmio_mmc_get_dma_ops()); if (ret < 0) goto efree; diff --git a/drivers/mmc/host/tmio_mmc.c b/drivers/mmc/host/tmio_mmc.c index ff14311bddbe..59880146e7f9 100644 --- a/drivers/mmc/host/tmio_mmc.c +++ b/drivers/mmc/host/tmio_mmc.c @@ -97,7 +97,7 @@ static int tmio_mmc_probe(struct platform_device *pdev) /* SD control register space size is 0x200, 0x400 for bus_shift=1 */ host->bus_shift = resource_size(res) >> 10; - ret = tmio_mmc_host_probe(host, pdata); + ret = tmio_mmc_host_probe(host, pdata, NULL); if (ret) goto host_free; diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index d01776ecc9e4..86aa49f32048 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -113,6 +113,15 @@ struct tmio_mmc_dma { void (*enable)(struct tmio_mmc_host *host, bool enable); }; +struct tmio_mmc_dma_ops { + void (*start)(struct tmio_mmc_host *host, struct mmc_data *data); + void (*enable)(struct tmio_mmc_host *host, bool enable); + void (*request)(struct tmio_mmc_host *host, + struct tmio_mmc_data *pdata); + void (*release)(struct tmio_mmc_host *host); + void (*abort)(struct tmio_mmc_host *host); +}; + struct tmio_mmc_host { void __iomem *ctl; struct mmc_command *cmd; @@ -187,12 +196,15 @@ struct tmio_mmc_host { /* Tuning values: 1 for success, 0 for failure */ DECLARE_BITMAP(taps, BITS_PER_BYTE * sizeof(long)); unsigned int tap_num; + + const struct tmio_mmc_dma_ops *dma_ops; }; struct tmio_mmc_host *tmio_mmc_host_alloc(struct platform_device *pdev); void tmio_mmc_host_free(struct tmio_mmc_host *host); int tmio_mmc_host_probe(struct tmio_mmc_host *host, - struct tmio_mmc_data *pdata); + struct tmio_mmc_data *pdata, + const struct tmio_mmc_dma_ops *dma_ops); void tmio_mmc_host_remove(struct tmio_mmc_host *host); void tmio_mmc_do_data_irq(struct tmio_mmc_host *host); @@ -200,6 +212,15 @@ void tmio_mmc_enable_mmc_irqs(struct tmio_mmc_host *host, u32 i); void tmio_mmc_disable_mmc_irqs(struct tmio_mmc_host *host, u32 i); irqreturn_t tmio_mmc_irq(int irq, void *devid); +#if IS_ENABLED(CONFIG_MMC_SDHI) +const struct tmio_mmc_dma_ops *tmio_mmc_get_dma_ops(void); +#else +static inline const struct tmio_mmc_dma_ops *tmio_mmc_get_dma_ops(void) +{ + return NULL; +} +#endif + static inline char *tmio_mmc_kmap_atomic(struct scatterlist *sg, unsigned long *flags) { @@ -214,38 +235,6 @@ static inline void tmio_mmc_kunmap_atomic(struct scatterlist *sg, local_irq_restore(*flags); } -#if defined(CONFIG_MMC_SDHI) || defined(CONFIG_MMC_SDHI_MODULE) -void tmio_mmc_start_dma(struct tmio_mmc_host *host, struct mmc_data *data); -void tmio_mmc_enable_dma(struct tmio_mmc_host *host, bool enable); -void tmio_mmc_request_dma(struct tmio_mmc_host *host, struct tmio_mmc_data *pdata); -void tmio_mmc_release_dma(struct tmio_mmc_host *host); -void tmio_mmc_abort_dma(struct tmio_mmc_host *host); -#else -static inline void tmio_mmc_start_dma(struct tmio_mmc_host *host, - struct mmc_data *data) -{ -} - -static inline void tmio_mmc_enable_dma(struct tmio_mmc_host *host, bool enable) -{ -} - -static inline void tmio_mmc_request_dma(struct tmio_mmc_host *host, - struct tmio_mmc_data *pdata) -{ - host->chan_tx = NULL; - host->chan_rx = NULL; -} - -static inline void tmio_mmc_release_dma(struct tmio_mmc_host *host) -{ -} - -static inline void tmio_mmc_abort_dma(struct tmio_mmc_host *host) -{ -} -#endif - #ifdef CONFIG_PM int tmio_mmc_host_runtime_suspend(struct device *dev); int tmio_mmc_host_runtime_resume(struct device *dev); diff --git a/drivers/mmc/host/tmio_mmc_dma.c b/drivers/mmc/host/tmio_mmc_dma.c index f6684415a0b2..e743684ca9d3 100644 --- a/drivers/mmc/host/tmio_mmc_dma.c +++ b/drivers/mmc/host/tmio_mmc_dma.c @@ -20,7 +20,7 @@ #define TMIO_MMC_MIN_DMA_LEN 8 -void tmio_mmc_enable_dma(struct tmio_mmc_host *host, bool enable) +static void tmio_mmc_enable_dma(struct tmio_mmc_host *host, bool enable) { if (!host->chan_tx || !host->chan_rx) return; @@ -29,7 +29,7 @@ void tmio_mmc_enable_dma(struct tmio_mmc_host *host, bool enable) host->dma->enable(host, enable); } -void tmio_mmc_abort_dma(struct tmio_mmc_host *host) +static void tmio_mmc_abort_dma(struct tmio_mmc_host *host) { tmio_mmc_enable_dma(host, false); @@ -218,7 +218,7 @@ static void tmio_mmc_start_dma_tx(struct tmio_mmc_host *host) } } -void tmio_mmc_start_dma(struct tmio_mmc_host *host, +static void tmio_mmc_start_dma(struct tmio_mmc_host *host, struct mmc_data *data) { if (data->flags & MMC_DATA_READ) { @@ -252,7 +252,8 @@ static void tmio_mmc_issue_tasklet_fn(unsigned long priv) dma_async_issue_pending(chan); } -void tmio_mmc_request_dma(struct tmio_mmc_host *host, struct tmio_mmc_data *pdata) +static void tmio_mmc_request_dma(struct tmio_mmc_host *host, + struct tmio_mmc_data *pdata) { /* We can only either use DMA for both Tx and Rx or not use it at all */ if (!host->dma || (!host->pdev->dev.of_node && @@ -332,7 +333,7 @@ void tmio_mmc_request_dma(struct tmio_mmc_host *host, struct tmio_mmc_data *pdat host->chan_tx = NULL; } -void tmio_mmc_release_dma(struct tmio_mmc_host *host) +static void tmio_mmc_release_dma(struct tmio_mmc_host *host) { if (host->chan_tx) { struct dma_chan *chan = host->chan_tx; @@ -349,3 +350,16 @@ void tmio_mmc_release_dma(struct tmio_mmc_host *host) host->bounce_buf = NULL; } } + +static const struct tmio_mmc_dma_ops tmio_mmc_dma_ops = { + .start = tmio_mmc_start_dma, + .enable = tmio_mmc_enable_dma, + .request = tmio_mmc_request_dma, + .release = tmio_mmc_release_dma, + .abort = tmio_mmc_abort_dma, +}; + +const struct tmio_mmc_dma_ops *tmio_mmc_get_dma_ops(void) +{ + return &tmio_mmc_dma_ops; +} diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index f512be4bc9d2..0132a5262656 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -50,17 +50,55 @@ #include "tmio_mmc.h" +static inline void tmio_mmc_start_dma(struct tmio_mmc_host *host, + struct mmc_data *data) +{ + if (host->dma_ops) + host->dma_ops->start(host, data); +} + +static inline void tmio_mmc_enable_dma(struct tmio_mmc_host *host, bool enable) +{ + if (host->dma_ops) + host->dma_ops->enable(host, enable); +} + +static inline void tmio_mmc_request_dma(struct tmio_mmc_host *host, + struct tmio_mmc_data *pdata) +{ + if (host->dma_ops) { + host->dma_ops->request(host, pdata); + } else { + host->chan_tx = NULL; + host->chan_rx = NULL; + } +} + +static inline void tmio_mmc_release_dma(struct tmio_mmc_host *host) +{ + if (host->dma_ops) + host->dma_ops->release(host); +} + +static inline void tmio_mmc_abort_dma(struct tmio_mmc_host *host) +{ + if (host->dma_ops) + host->dma_ops->abort(host); +} + void tmio_mmc_enable_mmc_irqs(struct tmio_mmc_host *host, u32 i) { host->sdcard_irq_mask &= ~(i & TMIO_MASK_IRQ); sd_ctrl_write32_as_16_and_16(host, CTL_IRQ_MASK, host->sdcard_irq_mask); } +EXPORT_SYMBOL(tmio_mmc_enable_mmc_irqs); void tmio_mmc_disable_mmc_irqs(struct tmio_mmc_host *host, u32 i) { host->sdcard_irq_mask |= (i & TMIO_MASK_IRQ); sd_ctrl_write32_as_16_and_16(host, CTL_IRQ_MASK, host->sdcard_irq_mask); } +EXPORT_SYMBOL(tmio_mmc_disable_mmc_irqs); static void tmio_mmc_ack_mmc_irqs(struct tmio_mmc_host *host, u32 i) { @@ -562,6 +600,7 @@ void tmio_mmc_do_data_irq(struct tmio_mmc_host *host) schedule_work(&host->done); } +EXPORT_SYMBOL(tmio_mmc_do_data_irq); static void tmio_mmc_data_irq(struct tmio_mmc_host *host, unsigned int stat) { @@ -1140,7 +1179,8 @@ void tmio_mmc_host_free(struct tmio_mmc_host *host) EXPORT_SYMBOL(tmio_mmc_host_free); int tmio_mmc_host_probe(struct tmio_mmc_host *_host, - struct tmio_mmc_data *pdata) + struct tmio_mmc_data *pdata, + const struct tmio_mmc_dma_ops *dma_ops) { struct platform_device *pdev = _host->pdev; struct mmc_host *mmc = _host->mmc; @@ -1252,6 +1292,7 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host, INIT_WORK(&_host->done, tmio_mmc_done_work); /* See if we also get DMA */ + _host->dma_ops = dma_ops; tmio_mmc_request_dma(_host, pdata); pm_runtime_set_active(&pdev->dev); From b813eb8529dddc55975ead94c2309af3a46cf7ec Mon Sep 17 00:00:00 2001 From: Chris Paterson Date: Thu, 21 Nov 2019 16:00:07 +0000 Subject: [PATCH 0774/1149] gitlab-ci: Use external linux-cip-pipelines repository to define CI Signed-off-by: Chris Paterson Signed-off-by: Pavel Machek --- .gitlab-ci.yml | 283 +------------------------------------------------ 1 file changed, 3 insertions(+), 280 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bbcb22168e7a..6f8a0028d2a3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,280 +1,3 @@ -variables: - GIT_STRATEGY: clone - GIT_DEPTH: 10 - DOCKER_DRIVER: overlay2 - DOCKER_IMAGE_TAG: v2 - -############################### -# Standard CIP configurations # -############################### -build:arm_hitachi_omap_defconfig: - stage: build - image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG - variables: - BUILD_ARCH: arm - CONFIG: hitachi_omap_defconfig - CONFIG_LOC: cip-kernel-config - BUILD_ONLY: "true" - script: - - /opt/build_kernel.sh - artifacts: - name: "$CI_JOB_NAME" - when: always - paths: - - output - -build:arm_moxa_mxc_defconfig: - stage: build - image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG - variables: - BUILD_ARCH: arm - CONFIG: moxa_mxc_defconfig - CONFIG_LOC: cip-kernel-config - BUILD_ONLY: "true" - script: - - /opt/build_kernel.sh - artifacts: - name: "$CI_JOB_NAME" - when: always - paths: - - output - -build:arm_renesas_shmobile_defconfig: - stage: build - image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG - variables: - BUILD_ARCH: arm - CONFIG: renesas_shmobile_defconfig - CONFIG_LOC: cip-kernel-config - DEVICES: r8a7743-iwg20d-q7 r8a7745-iwg22d-sodimm r8a77470-iwg23s-sbc - DTBS: r8a7743-iwg20d-q7-dbcm-ca.dtb r8a7745-iwg22d-sodimm-dbhd-ca.dtb r8a77470-iwg23s-sbc.dtb - script: - - /opt/build_kernel.sh - artifacts: - name: "$CI_JOB_NAME" - when: always - paths: - - output - -test:arm_renesas_shmobile_defconfig: - stage: test - needs: ["build:arm_renesas_shmobile_defconfig"] - image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:test-$DOCKER_IMAGE_TAG - when: always - variables: - GIT_STRATEGY: none - script: - - /opt/submit_tests.sh - artifacts: - name: "$CI_JOB_NAME" - when: always - paths: - - output - -build:arm_siemens_am335x-axm2_defconfig: - stage: build - image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG - variables: - BUILD_ARCH: arm - CONFIG: siemens_am335x-axm2_defconfig - CONFIG_LOC: cip-kernel-config - BUILD_ONLY: "true" - script: - - /opt/build_kernel.sh - artifacts: - name: "$CI_JOB_NAME" - when: always - paths: - - output - -build:arm_siemens_am335x-draco_defconfig: - stage: build - image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG - variables: - BUILD_ARCH: arm - CONFIG: siemens_am335x-draco_defconfig - CONFIG_LOC: cip-kernel-config - BUILD_ONLY: "true" - script: - - /opt/build_kernel.sh - artifacts: - name: "$CI_JOB_NAME" - when: always - paths: - - output - -build:arm_siemens_am335x-dxr2_defconfig: - stage: build - image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG - variables: - BUILD_ARCH: arm - CONFIG: siemens_am335x-dxr2_defconfig - CONFIG_LOC: cip-kernel-config - BUILD_ONLY: "true" - script: - - /opt/build_kernel.sh - artifacts: - name: "$CI_JOB_NAME" - when: always - paths: - - output - -build:arm_siemens_am335x-etamin_defconfig: - stage: build - image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG - variables: - BUILD_ARCH: arm - CONFIG: siemens_am335x-etamin_defconfig - CONFIG_LOC: cip-kernel-config - BUILD_ONLY: "true" - script: - - /opt/build_kernel.sh - artifacts: - name: "$CI_JOB_NAME" - when: always - paths: - - output - -build:arm_siemens_am57xx-pxm3.config: - stage: build - image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG - variables: - BUILD_ARCH: arm - CONFIG: siemens_am57xx-pxm3.config - CONFIG_LOC: cip-kernel-config - BUILD_ONLY: "true" - script: - - /opt/build_kernel.sh - artifacts: - name: "$CI_JOB_NAME" - when: always - paths: - - output - -build:arm_siemens_dcu2.config: - stage: build - image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG - variables: - BUILD_ARCH: arm - CONFIG: siemens_dcu2.config - CONFIG_LOC: cip-kernel-config - BUILD_ONLY: "true" - script: - - /opt/build_kernel.sh - artifacts: - name: "$CI_JOB_NAME" - when: always - paths: - - output - -build:arm_siemens_imx6_defconfig: - stage: build - image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG - variables: - BUILD_ARCH: arm - CONFIG: siemens_imx6_defconfig - CONFIG_LOC: cip-kernel-config - BUILD_ONLY: "true" - script: - - /opt/build_kernel.sh - artifacts: - name: "$CI_JOB_NAME" - when: always - paths: - - output - -build:arm_toshiba_tegra_defconfig: - stage: build - image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG - variables: - BUILD_ARCH: arm - CONFIG: toshiba_tegra_defconfig - CONFIG_LOC: cip-kernel-config - BUILD_ONLY: "true" - script: - - /opt/build_kernel.sh - artifacts: - name: "$CI_JOB_NAME" - when: always - paths: - - output - -build:arm_toshiba_zynq_defconfig: - stage: build - image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG - variables: - BUILD_ARCH: arm - CONFIG: toshiba_zynq_defconfig - CONFIG_LOC: cip-kernel-config - BUILD_ONLY: "true" - script: - - /opt/build_kernel.sh - artifacts: - name: "$CI_JOB_NAME" - when: always - paths: - - output - -build:x86_plathome_obsvx1.config: - stage: build - image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG - variables: - BUILD_ARCH: x86 - CONFIG: plathome_obsvx1.config - CONFIG_LOC: cip-kernel-config - BUILD_ONLY: "true" - script: - - /opt/build_kernel.sh - artifacts: - name: "$CI_JOB_NAME" - when: always - paths: - - output - -build:x86_siemens_iot2000.config: - stage: build - image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG - variables: - BUILD_ARCH: x86 - CONFIG: siemens_iot2000.config - CONFIG_LOC: cip-kernel-config - BUILD_ONLY: "true" - script: - - /opt/build_kernel.sh - artifacts: - name: "$CI_JOB_NAME" - when: always - paths: - - output - -build:x86_siemens_server_defconfig: - stage: build - image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG - variables: - BUILD_ARCH: x86 - CONFIG: siemens_server_defconfig - CONFIG_LOC: cip-kernel-config - BUILD_ONLY: "true" - script: - - /opt/build_kernel.sh - artifacts: - name: "$CI_JOB_NAME" - when: always - paths: - - output - -build:x86_toshiba_defconfig: - stage: build - image: registry.gitlab.com/cip-project/cip-testing/linux-cip-ci:build-$DOCKER_IMAGE_TAG - variables: - BUILD_ARCH: x86 - CONFIG: toshiba_defconfig - CONFIG_LOC: cip-kernel-config - BUILD_ONLY: "true" - script: - - /opt/build_kernel.sh - artifacts: - name: "$CI_JOB_NAME" - when: always - paths: - - output +include: + - https://gitlab.com/cip-project/cip-testing/linux-cip-pipelines/raw/master/linux-cip-pipeline.yml + - https://gitlab.com/cip-project/cip-testing/linux-cip-pipelines/raw/master/trees/linux-4.4.y-cip.yml From 510064e66688ac0f151aebef42e251cd69d07563 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 26 Nov 2019 16:20:22 +0000 Subject: [PATCH 0775/1149] dt-bindings: mmc: renesas_sdhi: Add r8a7744 support commit bd451c2df99bb5b7cd2b51fe05f7bb15ddf92791 upstream. Add support for r8a7744 SoC. Renesas RZ/G1N (R8A7744) SDHI is identical to the R-Car Gen2 family. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Reviewed-by: Simon Horman Reviewed-by: Geert Uytterhoeven Signed-off-by: Ulf Hansson Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/mmc/tmio_mmc.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/mmc/tmio_mmc.txt b/Documentation/devicetree/bindings/mmc/tmio_mmc.txt index 1d23a439a63f..498b7440a8a2 100644 --- a/Documentation/devicetree/bindings/mmc/tmio_mmc.txt +++ b/Documentation/devicetree/bindings/mmc/tmio_mmc.txt @@ -16,6 +16,7 @@ Required properties: "renesas,sdhi-r8a73a4" - SDHI IP on R8A73A4 SoC "renesas,sdhi-r8a7740" - SDHI IP on R8A7740 SoC "renesas,sdhi-r8a7743" - SDHI IP on R8A7743 SoC + "renesas,sdhi-r8a7744" - SDHI IP on R8A7744 SoC "renesas,sdhi-r8a7745" - SDHI IP on R8A7745 SoC "renesas,sdhi-r8a7778" - SDHI IP on R8A7778 SoC "renesas,sdhi-r8a7779" - SDHI IP on R8A7779 SoC From 86b98d529449adf1be0583a946054cb27c3a226b Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 26 Nov 2019 16:20:23 +0000 Subject: [PATCH 0776/1149] mmc: renesas_sdhi: Add r8a7744 support Upstream commit uses generic compatible which is not present in 4.4-cip kernel. Add support for r8a7744 SoC.Renesas RZ/G1N (R8A7744) SDHI is identical to the R-Car Gen2 family. Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index 05edac354085..9f667bb838fd 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -127,6 +127,7 @@ static const struct of_device_id sh_mobile_sdhi_of_match[] = { { .compatible = "renesas,sdhi-r8a7778", .data = &of_rcar_gen1_compatible, }, { .compatible = "renesas,sdhi-r8a7779", .data = &of_rcar_gen1_compatible, }, { .compatible = "renesas,sdhi-r8a7743", .data = &of_rcar_gen2_compatible, }, + { .compatible = "renesas,sdhi-r8a7744", .data = &of_rcar_gen2_compatible, }, { .compatible = "renesas,sdhi-r8a7745", .data = &of_rcar_gen2_compatible, }, { .compatible = "renesas,sdhi-r8a7790", .data = &of_rcar_gen2_compatible, }, { .compatible = "renesas,sdhi-r8a7791", .data = &of_rcar_gen2_compatible, }, From 4d2f6aa0eaf6ac75ecd6e60e1442beb91fda312c Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 26 Nov 2019 16:20:24 +0000 Subject: [PATCH 0777/1149] ARM: dts: r8a7744: Add SDHI nodes commit b591e323b271fdc2ffdc40eaf06e926a1e272994 upstream. Add SDHI nodes to the DT of the r8a7744 SoC. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman [biju: removed resets property. Updated power-domains and clocks properties] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a7744.dtsi | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index a1952eac900b..574bdf7848a5 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -814,14 +814,43 @@ /* placeholder */ }; + sdhi0: sd@ee100000 { + compatible = "renesas,sdhi-r8a7744"; + reg = <0 0xee100000 0 0x328>; + interrupts = ; + clocks = <&mstp3_clks R8A7744_CLK_SDHI0>; + dmas = <&dmac0 0xcd>, <&dmac0 0xce>, + <&dmac1 0xcd>, <&dmac1 0xce>; + dma-names = "tx", "rx", "tx", "rx"; + max-frequency = <195000000>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + sdhi1: sd@ee140000 { + compatible = "renesas,sdhi-r8a7744"; reg = <0 0xee140000 0 0x100>; - /* placeholder */ + interrupts = ; + clocks = <&mstp3_clks R8A7744_CLK_SDHI1>; + dmas = <&dmac0 0xc1>, <&dmac0 0xc2>, + <&dmac1 0xc1>, <&dmac1 0xc2>; + dma-names = "tx", "rx", "tx", "rx"; + max-frequency = <97500000>; + power-domains = <&cpg_clocks>; + status = "disabled"; }; sdhi2: sd@ee160000 { + compatible = "renesas,sdhi-r8a7744"; reg = <0 0xee160000 0 0x100>; - /* placeholder */ + interrupts = ; + clocks = <&mstp3_clks R8A7744_CLK_SDHI2>; + dmas = <&dmac0 0xd3>, <&dmac0 0xd4>, + <&dmac1 0xd3>, <&dmac1 0xd4>; + dma-names = "tx", "rx", "tx", "rx"; + max-frequency = <97500000>; + power-domains = <&cpg_clocks>; + status = "disabled"; }; gic: interrupt-controller@f1001000 { From 94b3bb5e27dcf5c3ef7c821112b8333bfc2e69ba Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 26 Nov 2019 16:20:25 +0000 Subject: [PATCH 0778/1149] dt-bindings: mmc: sh_mmcif: Document r8a7744 DT bindings commit 2ffca7a34df5ce95efff4a481cd79ec47abf3d6d upstream. Add support for r8a7744 SoC. Renesas RZ/G1N (R8A7744) MMCIF is identical to the R-Car Gen2 family. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Reviewed-by: Simon Horman Reviewed-by: Geert Uytterhoeven Signed-off-by: Ulf Hansson [biju: backported to 4.4 kernel] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/mmc/renesas,mmcif.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/mmc/renesas,mmcif.txt b/Documentation/devicetree/bindings/mmc/renesas,mmcif.txt index aa336914c65b..ccbcd765a6ec 100644 --- a/Documentation/devicetree/bindings/mmc/renesas,mmcif.txt +++ b/Documentation/devicetree/bindings/mmc/renesas,mmcif.txt @@ -10,6 +10,7 @@ Required properties: fallback. Examples with are: - "renesas,mmcif-r8a7740" for the MMCIF found in r8a7740 SoCs - "renesas,mmcif-r8a7743" for the MMCIF found in r8a7743 SoCs + - "renesas,mmcif-r8a7744" for the MMCIF found in r8a7744 SoCs - "renesas,mmcif-r8a7745" for the MMCIF found in r8a7745 SoCs - "renesas,mmcif-r8a7790" for the MMCIF found in r8a7790 SoCs - "renesas,mmcif-r8a7791" for the MMCIF found in r8a7791 SoCs From e333b8280f473dad27ab53e46d460f2aa8af79de Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 26 Nov 2019 16:20:26 +0000 Subject: [PATCH 0779/1149] ARM: dts: r8a7744: Add MMC node commit d9e792206d2101de871ea99220b59fe2930ebbcc upstream. Add MMC node to the DT of the r8a7744 SoC. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman [biju: removed resets property. Updated power-domains and clocks properties] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a7744.dtsi | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index 574bdf7848a5..e020be83c768 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -853,6 +853,21 @@ status = "disabled"; }; + mmcif0: mmc@ee200000 { + compatible = "renesas,mmcif-r8a7744", + "renesas,sh-mmcif"; + reg = <0 0xee200000 0 0x80>; + interrupts = ; + clocks = <&mstp3_clks R8A7744_CLK_MMCIF0>; + dmas = <&dmac0 0xd1>, <&dmac0 0xd2>, + <&dmac1 0xd1>, <&dmac1 0xd2>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + reg-io-width = <4>; + max-frequency = <97500000>; + status = "disabled"; + }; + gic: interrupt-controller@f1001000 { compatible = "arm,gic-400"; #interrupt-cells = <3>; From 85dae2a82f9e6974c94e6b1f4f2265a23b3c058c Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 26 Nov 2019 16:20:27 +0000 Subject: [PATCH 0780/1149] ARM: dts: r8a7744-iwg20m: Add eMMC support commit 266d863eece3f0b1e333203f9efe8fa89e042b3b upstream. Add eMMC support for iWave RZ/G1N Qseven System On Module. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a7744-iwg20m.dtsi | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/arch/arm/boot/dts/r8a7744-iwg20m.dtsi b/arch/arm/boot/dts/r8a7744-iwg20m.dtsi index 6166ae053060..1e57b1f9baed 100644 --- a/arch/arm/boot/dts/r8a7744-iwg20m.dtsi +++ b/arch/arm/boot/dts/r8a7744-iwg20m.dtsi @@ -29,3 +29,20 @@ &extal_clk { clock-frequency = <20000000>; }; + +&pfc { + mmcif0_pins: mmc { + groups = "mmc_data8_b", "mmc_ctrl"; + function = "mmc"; + }; +}; + +&mmcif0 { + pinctrl-0 = <&mmcif0_pins>; + pinctrl-names = "default"; + + vmmc-supply = <®_3p3v>; + bus-width = <8>; + non-removable; + status = "okay"; +}; From 273ea5e45753a7e324560d6bdd7576d58572217f Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 26 Nov 2019 16:20:28 +0000 Subject: [PATCH 0781/1149] ARM: dts: r8a7744-iwg20m: Enable SDHI0 controller commit f9a3d5f23b6c8e4029a3474945971477d1f9365a upstream. Enable the SDHI0 controller on iWave RZ/G1N Qseven System On Module. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a7744-iwg20m.dtsi | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/arch/arm/boot/dts/r8a7744-iwg20m.dtsi b/arch/arm/boot/dts/r8a7744-iwg20m.dtsi index 1e57b1f9baed..503583e2c852 100644 --- a/arch/arm/boot/dts/r8a7744-iwg20m.dtsi +++ b/arch/arm/boot/dts/r8a7744-iwg20m.dtsi @@ -35,6 +35,12 @@ groups = "mmc_data8_b", "mmc_ctrl"; function = "mmc"; }; + + sdhi0_pins: sd0 { + groups = "sdhi0_data4", "sdhi0_ctrl"; + function = "sdhi0"; + power-source = <3300>; + }; }; &mmcif0 { @@ -46,3 +52,13 @@ non-removable; status = "okay"; }; + +&sdhi0 { + pinctrl-0 = <&sdhi0_pins>; + pinctrl-names = "default"; + + vmmc-supply = <®_3p3v>; + vqmmc-supply = <®_3p3v>; + cd-gpios = <&gpio7 11 GPIO_ACTIVE_LOW>; + status = "okay"; +}; From 409b9d8d358343d79fbd303bcea86786928d949b Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 26 Nov 2019 16:20:29 +0000 Subject: [PATCH 0782/1149] dt-bindings: PCI: rcar: Add device tree support for r8a7744 commit 6adb734bb9c72c0fdcb1868edcc5fde3b6333d11 upstream. Add internal PCI bridge support for r8a7744 SoC. The Renesas RZ/G1N (R8A7744) internal PCI bridge is identical to the R-Car Gen2 family. This doesn't change the driver, so it does nothing by itself. But it does mean that checkpatch won't complain about a future patch that adds "renesas,pci-r8a7744" to a DT, which helps ensure that shipped DTs use documented compatibility strings. Signed-off-by: Biju Das Signed-off-by: Lorenzo Pieralisi Reviewed-by: Chris Paterson Reviewed-by: Simon Horman Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt b/Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt index 421ab0a14ccd..8ea3ec0c535a 100644 --- a/Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt +++ b/Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt @@ -7,6 +7,7 @@ OHCI and EHCI controllers. Required properties: - compatible: "renesas,pci-r8a7743" for the R8A7743 SoC; + "renesas,pci-r8a7744" for the R8A7744 SoC; "renesas,pci-r8a7745" for the R8A7745 SoC; "renesas,pci-r8a7790" for the R8A7790 SoC; "renesas,pci-r8a7791" for the R8A7791 SoC; From a2e8c31c06063e130e654f120f3d2b80aea08aad Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 26 Nov 2019 16:20:30 +0000 Subject: [PATCH 0783/1149] ARM: dts: r8a7744: USB 2.0 host support commit ce28396b7a8621e048cfb8d002bc869b428a905e upstream. Describe internal PCI bridge devices, USB phy device and link PCI USB devices to USB phy. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman [biju: removed resets property. Updated power-domains and clocks properties] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a7744.dtsi | 75 +++++++++++++++++++++++++++++++--- 1 file changed, 70 insertions(+), 5 deletions(-) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index e020be83c768..34302d8224e9 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -423,8 +423,25 @@ }; usbphy: usb-phy@e6590100 { + compatible = "renesas,usb-phy-r8a7744", + "renesas,rcar-gen2-usb-phy"; reg = <0 0xe6590100 0 0x100>; - /* placeholder */ + #address-cells = <1>; + #size-cells = <0>; + clocks = <&mstp7_clks R8A7744_CLK_HSUSB>; + clock-names = "usbhs"; + power-domains = <&cpg_clocks>; + + status = "disabled"; + + usb0: usb-channel@0 { + reg = <0>; + #phy-cells = <1>; + }; + usb2: usb-channel@2 { + reg = <2>; + #phy-cells = <1>; + }; }; dmac0: dma-controller@e6700000 { @@ -795,23 +812,71 @@ }; pci0: pci@ee090000 { - reg = <0 0xee090000 0 0xc00>; + compatible = "renesas,pci-r8a7744", + "renesas,pci-rcar-gen2"; + device_type = "pci"; + reg = <0 0xee090000 0 0xc00>, + <0 0xee080000 0 0x1100>; + interrupts = ; + clocks = <&mstp7_clks R8A7744_CLK_USB_EHCI>; + power-domains = <&cpg_clocks>; + status = "disabled"; bus-range = <0 0>; #address-cells = <3>; #size-cells = <2>; #interrupt-cells = <1>; - /* placeholder */ + ranges = <0x02000000 0 0xee080000 0 0xee080000 0 0x00010000>; + interrupt-map-mask = <0xff00 0 0 0x7>; + interrupt-map = <0x0000 0 0 1 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH + 0x0800 0 0 1 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH + 0x1000 0 0 2 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; + + usb@1,0 { + reg = <0x800 0 0 0 0>; + phys = <&usb0 0>; + phy-names = "usb"; + }; + + usb@2,0 { + reg = <0x1000 0 0 0 0>; + phys = <&usb0 0>; + phy-names = "usb"; + }; }; pci1: pci@ee0d0000 { - reg = <0 0xee0d0000 0 0xc00>; + compatible = "renesas,pci-r8a7744", + "renesas,pci-rcar-gen2"; + device_type = "pci"; + reg = <0 0xee0d0000 0 0xc00>, + <0 0xee0c0000 0 0x1100>; + interrupts = ; + clocks = <&mstp7_clks R8A7744_CLK_USB_EHCI>; + power-domains = <&cpg_clocks>; + status = "disabled"; bus-range = <1 1>; #address-cells = <3>; #size-cells = <2>; #interrupt-cells = <1>; - /* placeholder */ + ranges = <0x02000000 0 0xee0c0000 0 0xee0c0000 0 0x00010000>; + interrupt-map-mask = <0xff00 0 0 0x7>; + interrupt-map = <0x0000 0 0 1 &gic GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH + 0x0800 0 0 1 &gic GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH + 0x1000 0 0 2 &gic GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; + + usb@1,0 { + reg = <0x10800 0 0 0 0>; + phys = <&usb2 0>; + phy-names = "usb"; + }; + + usb@2,0 { + reg = <0x11000 0 0 0 0>; + phys = <&usb2 0>; + phy-names = "usb"; + }; }; sdhi0: sd@ee100000 { From 663c01ba0c42590552605c225ba8cc248447d54e Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 26 Nov 2019 16:20:31 +0000 Subject: [PATCH 0784/1149] ARM: dts: r8a7744: Add USB-DMAC and HSUSB device nodes commit a5d56930c703ddbdd8712553247c38ec6f406b74 upstream. Add usb dmac and hsusb device nodes on RZ/G1N SoC dtsi. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman [biju: removed resets property. Updated power-domains and clocks properties] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a7744.dtsi | 39 +++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index 34302d8224e9..c73269cc8cf7 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -418,8 +418,19 @@ }; hsusb: usb@e6590000 { + compatible = "renesas,usbhs-r8a7744", + "renesas,rcar-gen2-usbhs"; reg = <0 0xe6590000 0 0x100>; - /* placeholder */ + interrupts = ; + clocks = <&mstp7_clks R8A7744_CLK_HSUSB>; + dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, + <&usb_dmac1 0>, <&usb_dmac1 1>; + dma-names = "ch0", "ch1", "ch2", "ch3"; + power-domains = <&cpg_clocks>; + renesas,buswait = <4>; + phys = <&usb0 1>; + phy-names = "usb"; + status = "disabled"; }; usbphy: usb-phy@e6590100 { @@ -444,6 +455,32 @@ }; }; + usb_dmac0: dma-controller@e65a0000 { + compatible = "renesas,r8a7744-usb-dmac", + "renesas,usb-dmac"; + reg = <0 0xe65a0000 0 0x100>; + interrupts = ; + interrupt-names = "ch0", "ch1"; + clocks = <&mstp3_clks R8A7744_CLK_USBDMAC0>; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <2>; + }; + + usb_dmac1: dma-controller@e65b0000 { + compatible = "renesas,r8a7744-usb-dmac", + "renesas,usb-dmac"; + reg = <0 0xe65b0000 0 0x100>; + interrupts = ; + interrupt-names = "ch0", "ch1"; + clocks = <&mstp3_clks R8A7744_CLK_USBDMAC1>; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <2>; + }; + dmac0: dma-controller@e6700000 { compatible = "renesas,dmac-r8a7744", "renesas,rcar-dmac"; From e4cdb846da5b88eabdb8edbdd2ffddcf8c9fe893 Mon Sep 17 00:00:00 2001 From: Shinobu Uehara Date: Wed, 27 Nov 2019 13:46:39 +0000 Subject: [PATCH 0785/1149] mmc: sdhi: Add EXT_ACC register busy check commit ff741cfde98bd867eb4c9477bc9ba0df3507eed8 upstream. All the docs I have access to say that this register needs the bus busy check. Signed-off-by: Shinobu Uehara Signed-off-by: Ai Kyuse Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index 9f667bb838fd..48db922a7495 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -511,6 +511,7 @@ static int sh_mobile_sdhi_write16_hook(struct tmio_mmc_host *host, int addr) case CTL_SD_MEM_CARD_OPT: case CTL_TRANSACTION_CTL: case CTL_DMA_ENABLE: + case EXT_ACC: return sh_mobile_sdhi_wait_idle(host); } From ffee33b5399bfbba193d069f1e6efe4912a9a9c1 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Wed, 27 Nov 2019 13:46:40 +0000 Subject: [PATCH 0786/1149] mmc: sh_mobile_sdhi: don't use array for DT configs commit 13bbd8af65895c524c27850495fadf23449f9f3d upstream. We won't access an index based array to get our DT config, but create separate structs instead. So, remove the array which only wastes memory. Signed-off-by: Wolfram Sang Acked-by: Arnd Bergmann Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index 48db922a7495..3d74d44a0e48 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -65,10 +65,8 @@ struct sh_mobile_sdhi_of_data { int taps_num; }; -static const struct sh_mobile_sdhi_of_data sh_mobile_sdhi_of_cfg[] = { - { - .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT, - }, +static const struct sh_mobile_sdhi_of_data of_default_cfg = { + .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT, }; static const struct sh_mobile_sdhi_of_data of_rcar_gen1_compatible = { @@ -121,9 +119,9 @@ static const struct sh_mobile_sdhi_of_data of_rcar_gen3_compatible = { static const struct of_device_id sh_mobile_sdhi_of_match[] = { { .compatible = "renesas,sdhi-shmobile" }, { .compatible = "renesas,sdhi-sh7372" }, - { .compatible = "renesas,sdhi-sh73a0", .data = &sh_mobile_sdhi_of_cfg[0], }, - { .compatible = "renesas,sdhi-r8a73a4", .data = &sh_mobile_sdhi_of_cfg[0], }, - { .compatible = "renesas,sdhi-r8a7740", .data = &sh_mobile_sdhi_of_cfg[0], }, + { .compatible = "renesas,sdhi-sh73a0", .data = &of_default_cfg, }, + { .compatible = "renesas,sdhi-r8a73a4", .data = &of_default_cfg, }, + { .compatible = "renesas,sdhi-r8a7740", .data = &of_default_cfg, }, { .compatible = "renesas,sdhi-r8a7778", .data = &of_rcar_gen1_compatible, }, { .compatible = "renesas,sdhi-r8a7779", .data = &of_rcar_gen1_compatible, }, { .compatible = "renesas,sdhi-r8a7743", .data = &of_rcar_gen2_compatible, }, From 8b457d23c30929a483218bae5bb2bb8feb24eda9 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Wed, 27 Nov 2019 13:46:41 +0000 Subject: [PATCH 0787/1149] mmc: sh_mobile_sdhi: simplify code for voltage switching commit 2272c841ee301402ea7a01fc727619af1f97f0cc upstream. A last minute fix applied by Ulf made room for some simplification. Signed-off-by: Wolfram Sang Acked-by: Arnd Bergmann Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index 3d74d44a0e48..ed9f6557e421 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -290,11 +290,7 @@ static int sh_mobile_sdhi_start_signal_voltage_switch(struct mmc_host *mmc, if (ret) return ret; - ret = pinctrl_select_state(priv->pinctrl, pin_state); - if (ret) - return ret; - - return 0; + return pinctrl_select_state(priv->pinctrl, pin_state); } /* SCC registers */ From ca2805d6de165c00b63720d1acca0f1e2ae8576f Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Wed, 27 Nov 2019 13:46:42 +0000 Subject: [PATCH 0788/1149] mmc: sh_mobile_sdhi: enable SDIO IRQs for RCar Gen3 commit 685d29ef1783af0049c4aeeec43722e410d5845d upstream. Tested on a Salvator-X board with a Spectec SDW-823 WLAN card. Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/sh_mobile_sdhi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index ed9f6557e421..6570d11be308 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -109,7 +109,7 @@ static struct sh_mobile_sdhi_scc rcar_gen3_scc_taps[] = { static const struct sh_mobile_sdhi_of_data of_rcar_gen3_compatible = { .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_WRPROTECT_DISABLE | TMIO_MMC_CLK_ACTUAL | TMIO_MMC_MIN_RCAR2, - .capabilities = MMC_CAP_SD_HIGHSPEED, + .capabilities = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ, .bus_shift = 2, .scc_offset = 0x1000, .taps = rcar_gen3_scc_taps, From b9355716fd7c59613d0e05034def6607d8f78e5e Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Wed, 27 Nov 2019 13:46:43 +0000 Subject: [PATCH 0789/1149] mmc: tmio: always unmap DMA before waiting for interrupt commit 5f07ef8f603ace496ca8c20eef446c5ae7a10474 upstream. In the (maybe academical) case, we don't get a DATAEND interrupt after DMA completed, we will wait endlessly for the completion to complete. This is not bad per se, since we have a more generic completion tracking a timeout. In that rare case, however, the DMA buffer will not get unmapped and we have a leak. Reorder the code, so unmapping will always take place. Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/tmio_mmc_dma.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/host/tmio_mmc_dma.c b/drivers/mmc/host/tmio_mmc_dma.c index e743684ca9d3..72596bf003a5 100644 --- a/drivers/mmc/host/tmio_mmc_dma.c +++ b/drivers/mmc/host/tmio_mmc_dma.c @@ -45,8 +45,6 @@ static void tmio_mmc_dma_callback(void *arg) { struct tmio_mmc_host *host = arg; - wait_for_completion(&host->dma_dataend); - spin_lock_irq(&host->lock); if (!host->data) @@ -61,6 +59,11 @@ static void tmio_mmc_dma_callback(void *arg) host->sg_ptr, host->sg_len, DMA_TO_DEVICE); + spin_unlock_irq(&host->lock); + + wait_for_completion(&host->dma_dataend); + + spin_lock_irq(&host->lock); tmio_mmc_do_data_irq(host); out: spin_unlock_irq(&host->lock); From 7da29b1946bf5f5fb51d98f582e63292590faa1a Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Wed, 27 Nov 2019 13:46:44 +0000 Subject: [PATCH 0790/1149] mmc: tmio: rename tmio_mmc_{pio => core}.c commit 426e95d1766bad20e59f219af64fdd50c39bcfee upstream. Rename tmio_mmc_pio.c to tmio_mmc_core.c to more accurately reflect its function: to provide core code for the tmio-mmc and sh-mobole-sdhi drivers. Signed-off-by: Simon Horman Acked-by: Arnd Bergmann Reviewed-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/Makefile | 1 - drivers/mmc/host/{tmio_mmc_pio.c => tmio_mmc_core.c} | 0 2 files changed, 1 deletion(-) rename drivers/mmc/host/{tmio_mmc_pio.c => tmio_mmc_core.c} (100%) diff --git a/drivers/mmc/host/Makefile b/drivers/mmc/host/Makefile index bf399b818050..2b75a436ae7f 100644 --- a/drivers/mmc/host/Makefile +++ b/drivers/mmc/host/Makefile @@ -36,7 +36,6 @@ obj-$(CONFIG_MMC_S3C) += s3cmci.o obj-$(CONFIG_MMC_SDRICOH_CS) += sdricoh_cs.o obj-$(CONFIG_MMC_TMIO) += tmio_mmc.o obj-$(CONFIG_MMC_TMIO_CORE) += tmio_mmc_core.o -tmio_mmc_core-y := tmio_mmc_pio.o obj-$(CONFIG_MMC_SDHI) += sh_mobile_sdhi.o tmio_mmc_dma.o obj-$(CONFIG_MMC_CB710) += cb710-mmc.o obj-$(CONFIG_MMC_VIA_SDMMC) += via-sdmmc.o diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_core.c similarity index 100% rename from drivers/mmc/host/tmio_mmc_pio.c rename to drivers/mmc/host/tmio_mmc_core.c From 45e960e93da3788342f2ef560eb305e2c28f8633 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Wed, 27 Nov 2019 13:46:45 +0000 Subject: [PATCH 0791/1149] mmc: renesas-sdhi: rename tmio_mmc_dma.c => renesas_sdhi_sys_dmac.c commit c2a96987c76f093be50550130f5629723b091176 upstream. Rename the source file for DMA for SDHI as a follow-up to attaching DMA code to the SDHI driver rather than the tmio_core driver. The name "renesas" is chosen as the SDHI driver is applicable to a wider range of SoCs than SH-Mobile it seems to be a more appropriate name. However, the SDHI driver source itself, is left as sh_mobile_sdhi to avoid unnecessary churn. The name sys_dmac was chosen to reflect the type of DMA used. Internal symbols have also been renamed to reflect the filename change. A follow-up patch will re-organise the SDHI driver removing the need for renesas_sdhi_get_dma_ops(). Signed-off-by: Simon Horman Acked-by: Arnd Bergmann Reviewed-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/Makefile | 2 +- drivers/mmc/host/renesas_sdhi.h | 18 ++++++ ...tmio_mmc_dma.c => renesas_sdhi_sys_dmac.c} | 59 ++++++++++--------- drivers/mmc/host/sh_mobile_sdhi.c | 3 +- drivers/mmc/host/tmio_mmc.h | 9 --- 5 files changed, 52 insertions(+), 39 deletions(-) create mode 100644 drivers/mmc/host/renesas_sdhi.h rename drivers/mmc/host/{tmio_mmc_dma.c => renesas_sdhi_sys_dmac.c} (82%) diff --git a/drivers/mmc/host/Makefile b/drivers/mmc/host/Makefile index 2b75a436ae7f..7ab00194a7c5 100644 --- a/drivers/mmc/host/Makefile +++ b/drivers/mmc/host/Makefile @@ -36,7 +36,7 @@ obj-$(CONFIG_MMC_S3C) += s3cmci.o obj-$(CONFIG_MMC_SDRICOH_CS) += sdricoh_cs.o obj-$(CONFIG_MMC_TMIO) += tmio_mmc.o obj-$(CONFIG_MMC_TMIO_CORE) += tmio_mmc_core.o -obj-$(CONFIG_MMC_SDHI) += sh_mobile_sdhi.o tmio_mmc_dma.o +obj-$(CONFIG_MMC_SDHI) += sh_mobile_sdhi.o renesas_sdhi_sys_dmac.o obj-$(CONFIG_MMC_CB710) += cb710-mmc.o obj-$(CONFIG_MMC_VIA_SDMMC) += via-sdmmc.o obj-$(CONFIG_SDH_BFIN) += bfin_sdh.o diff --git a/drivers/mmc/host/renesas_sdhi.h b/drivers/mmc/host/renesas_sdhi.h new file mode 100644 index 000000000000..f65d936cd680 --- /dev/null +++ b/drivers/mmc/host/renesas_sdhi.h @@ -0,0 +1,18 @@ +/* + * Renesas Mobile SDHI + * + * Copyright (C) 2017 Horms Solutions Ltd., Simon Horman + * Copyright (C) 2017 Renesas Electronics Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#ifndef RENESAS_SDHI_H +#define RENESAS_SDHI_H + +#include "tmio_mmc.h" + +const struct tmio_mmc_dma_ops *renesas_sdhi_get_dma_ops(void); +#endif diff --git a/drivers/mmc/host/tmio_mmc_dma.c b/drivers/mmc/host/renesas_sdhi_sys_dmac.c similarity index 82% rename from drivers/mmc/host/tmio_mmc_dma.c rename to drivers/mmc/host/renesas_sdhi_sys_dmac.c index 72596bf003a5..60ce4283da5a 100644 --- a/drivers/mmc/host/tmio_mmc_dma.c +++ b/drivers/mmc/host/renesas_sdhi_sys_dmac.c @@ -20,7 +20,8 @@ #define TMIO_MMC_MIN_DMA_LEN 8 -static void tmio_mmc_enable_dma(struct tmio_mmc_host *host, bool enable) +static void renesas_sdhi_sys_dmac_enable_dma(struct tmio_mmc_host *host, + bool enable) { if (!host->chan_tx || !host->chan_rx) return; @@ -29,19 +30,19 @@ static void tmio_mmc_enable_dma(struct tmio_mmc_host *host, bool enable) host->dma->enable(host, enable); } -static void tmio_mmc_abort_dma(struct tmio_mmc_host *host) +static void renesas_sdhi_sys_dmac_abort_dma(struct tmio_mmc_host *host) { - tmio_mmc_enable_dma(host, false); + renesas_sdhi_sys_dmac_enable_dma(host, false); if (host->chan_rx) dmaengine_terminate_all(host->chan_rx); if (host->chan_tx) dmaengine_terminate_all(host->chan_tx); - tmio_mmc_enable_dma(host, true); + renesas_sdhi_sys_dmac_enable_dma(host, true); } -static void tmio_mmc_dma_callback(void *arg) +static void renesas_sdhi_sys_dmac_dma_callback(void *arg) { struct tmio_mmc_host *host = arg; @@ -69,7 +70,7 @@ static void tmio_mmc_dma_callback(void *arg) spin_unlock_irq(&host->lock); } -static void tmio_mmc_start_dma_rx(struct tmio_mmc_host *host) +static void renesas_sdhi_sys_dmac_start_dma_rx(struct tmio_mmc_host *host) { struct scatterlist *sg = host->sg_ptr, *sg_tmp; struct dma_async_tx_descriptor *desc = NULL; @@ -115,7 +116,7 @@ static void tmio_mmc_start_dma_rx(struct tmio_mmc_host *host) if (desc) { reinit_completion(&host->dma_dataend); - desc->callback = tmio_mmc_dma_callback; + desc->callback = renesas_sdhi_sys_dmac_dma_callback; desc->callback_param = host; cookie = dmaengine_submit(desc); @@ -127,7 +128,7 @@ static void tmio_mmc_start_dma_rx(struct tmio_mmc_host *host) pio: if (!desc) { /* DMA failed, fall back to PIO */ - tmio_mmc_enable_dma(host, false); + renesas_sdhi_sys_dmac_enable_dma(host, false); if (ret >= 0) ret = -EIO; host->chan_rx = NULL; @@ -143,7 +144,7 @@ static void tmio_mmc_start_dma_rx(struct tmio_mmc_host *host) } } -static void tmio_mmc_start_dma_tx(struct tmio_mmc_host *host) +static void renesas_sdhi_sys_dmac_start_dma_tx(struct tmio_mmc_host *host) { struct scatterlist *sg = host->sg_ptr, *sg_tmp; struct dma_async_tx_descriptor *desc = NULL; @@ -193,7 +194,7 @@ static void tmio_mmc_start_dma_tx(struct tmio_mmc_host *host) if (desc) { reinit_completion(&host->dma_dataend); - desc->callback = tmio_mmc_dma_callback; + desc->callback = renesas_sdhi_sys_dmac_dma_callback; desc->callback_param = host; cookie = dmaengine_submit(desc); @@ -205,7 +206,7 @@ static void tmio_mmc_start_dma_tx(struct tmio_mmc_host *host) pio: if (!desc) { /* DMA failed, fall back to PIO */ - tmio_mmc_enable_dma(host, false); + renesas_sdhi_sys_dmac_enable_dma(host, false); if (ret >= 0) ret = -EIO; host->chan_tx = NULL; @@ -221,19 +222,19 @@ static void tmio_mmc_start_dma_tx(struct tmio_mmc_host *host) } } -static void tmio_mmc_start_dma(struct tmio_mmc_host *host, +static void renesas_sdhi_sys_dmac_start_dma(struct tmio_mmc_host *host, struct mmc_data *data) { if (data->flags & MMC_DATA_READ) { if (host->chan_rx) - tmio_mmc_start_dma_rx(host); + renesas_sdhi_sys_dmac_start_dma_rx(host); } else { if (host->chan_tx) - tmio_mmc_start_dma_tx(host); + renesas_sdhi_sys_dmac_start_dma_tx(host); } } -static void tmio_mmc_issue_tasklet_fn(unsigned long priv) +static void renesas_sdhi_sys_dmac_issue_tasklet_fn(unsigned long priv) { struct tmio_mmc_host *host = (struct tmio_mmc_host *)priv; struct dma_chan *chan = NULL; @@ -255,8 +256,8 @@ static void tmio_mmc_issue_tasklet_fn(unsigned long priv) dma_async_issue_pending(chan); } -static void tmio_mmc_request_dma(struct tmio_mmc_host *host, - struct tmio_mmc_data *pdata) +static void renesas_sdhi_sys_dmac_request_dma(struct tmio_mmc_host *host, + struct tmio_mmc_data *pdata) { /* We can only either use DMA for both Tx and Rx or not use it at all */ if (!host->dma || (!host->pdev->dev.of_node && @@ -319,10 +320,12 @@ static void tmio_mmc_request_dma(struct tmio_mmc_host *host, goto ebouncebuf; init_completion(&host->dma_dataend); - tasklet_init(&host->dma_issue, tmio_mmc_issue_tasklet_fn, (unsigned long)host); + tasklet_init(&host->dma_issue, + renesas_sdhi_sys_dmac_issue_tasklet_fn, + (unsigned long)host); } - tmio_mmc_enable_dma(host, true); + renesas_sdhi_sys_dmac_enable_dma(host, true); return; @@ -336,7 +339,7 @@ static void tmio_mmc_request_dma(struct tmio_mmc_host *host, host->chan_tx = NULL; } -static void tmio_mmc_release_dma(struct tmio_mmc_host *host) +static void renesas_sdhi_sys_dmac_release_dma(struct tmio_mmc_host *host) { if (host->chan_tx) { struct dma_chan *chan = host->chan_tx; @@ -354,15 +357,15 @@ static void tmio_mmc_release_dma(struct tmio_mmc_host *host) } } -static const struct tmio_mmc_dma_ops tmio_mmc_dma_ops = { - .start = tmio_mmc_start_dma, - .enable = tmio_mmc_enable_dma, - .request = tmio_mmc_request_dma, - .release = tmio_mmc_release_dma, - .abort = tmio_mmc_abort_dma, +static const struct tmio_mmc_dma_ops renesas_sdhi_sys_dmac_dma_ops = { + .start = renesas_sdhi_sys_dmac_start_dma, + .enable = renesas_sdhi_sys_dmac_enable_dma, + .request = renesas_sdhi_sys_dmac_request_dma, + .release = renesas_sdhi_sys_dmac_release_dma, + .abort = renesas_sdhi_sys_dmac_abort_dma, }; -const struct tmio_mmc_dma_ops *tmio_mmc_get_dma_ops(void) +const struct tmio_mmc_dma_ops *renesas_sdhi_get_dma_ops(void) { - return &tmio_mmc_dma_ops; + return &renesas_sdhi_sys_dmac_dma_ops; } diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index 6570d11be308..70000a8f8161 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -35,6 +35,7 @@ #include #include +#include "renesas_sdhi.h" #include "tmio_mmc.h" #define EXT_ACC 0xe4 @@ -639,7 +640,7 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) /* All SDHI have SDIO status bits which must be 1 */ mmc_data->flags |= TMIO_MMC_SDIO_STATUS_SETBITS; - ret = tmio_mmc_host_probe(host, mmc_data, tmio_mmc_get_dma_ops()); + ret = tmio_mmc_host_probe(host, mmc_data, renesas_sdhi_get_dma_ops()); if (ret < 0) goto efree; diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index 86aa49f32048..cd5b4f37de20 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -212,15 +212,6 @@ void tmio_mmc_enable_mmc_irqs(struct tmio_mmc_host *host, u32 i); void tmio_mmc_disable_mmc_irqs(struct tmio_mmc_host *host, u32 i); irqreturn_t tmio_mmc_irq(int irq, void *devid); -#if IS_ENABLED(CONFIG_MMC_SDHI) -const struct tmio_mmc_dma_ops *tmio_mmc_get_dma_ops(void); -#else -static inline const struct tmio_mmc_dma_ops *tmio_mmc_get_dma_ops(void) -{ - return NULL; -} -#endif - static inline char *tmio_mmc_kmap_atomic(struct scatterlist *sg, unsigned long *flags) { From 190d461fb7384a3fae6105c46bca64687d77e2fc Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Wed, 27 Nov 2019 13:46:46 +0000 Subject: [PATCH 0792/1149] mmc: renesas-sdhi: rename sh_mobile_sdhi.c => renesas_sdhi_core.c commit b5b6a5f4f06c0624886b2166e2e8580327f0b943 upstream. Rename the source file SDHI. A follow-up patch will make it a library file used by a different top-level module file. The name "renesas" is chosen as the SDHI driver is applicable to a wider range of SoCs than SH-Mobile it seems to be a more appropriate name. However, the SDHI driver source itself, is left as sh_mobile_sdhi to avoid unnecessary churn. the name "core" was chosen to reflect the desired role of this file, to provide core functionality to the sdhi driver. A follow-up patch will move the file into that role. Internal symbols have also been renamed to reflect the filename change. The .name member of struct platform_driver and parameter to MODULE_ALIAS() have not been changed in order to avoid the complication of potentially breaking SH SoCs which still use platform drivers. Signed-off-by: Simon Horman Acked-by: Arnd Bergmann Reviewed-by: Wolfram Sang Signed-off-by: Ulf Hansson [biju: Backported to 4.4 kernel] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/Kconfig | 2 +- drivers/mmc/host/Makefile | 2 +- .../{sh_mobile_sdhi.c => renesas_sdhi_core.c} | 136 +++++++++--------- 3 files changed, 70 insertions(+), 70 deletions(-) rename drivers/mmc/host/{sh_mobile_sdhi.c => renesas_sdhi_core.c} (82%) diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig index 2e6d2fff1096..eaf40ec2d462 100644 --- a/drivers/mmc/host/Kconfig +++ b/drivers/mmc/host/Kconfig @@ -565,7 +565,7 @@ config MMC_SDHI select MMC_TMIO_CORE help This provides support for the SDHI SD/SDIO controller found in - SuperH and ARM SH-Mobile SoCs + Renesas SuperH, ARM and ARM64 based SoCs config MMC_CB710 tristate "ENE CB710 MMC/SD Interface support" diff --git a/drivers/mmc/host/Makefile b/drivers/mmc/host/Makefile index 7ab00194a7c5..c3c85c95944b 100644 --- a/drivers/mmc/host/Makefile +++ b/drivers/mmc/host/Makefile @@ -36,7 +36,7 @@ obj-$(CONFIG_MMC_S3C) += s3cmci.o obj-$(CONFIG_MMC_SDRICOH_CS) += sdricoh_cs.o obj-$(CONFIG_MMC_TMIO) += tmio_mmc.o obj-$(CONFIG_MMC_TMIO_CORE) += tmio_mmc_core.o -obj-$(CONFIG_MMC_SDHI) += sh_mobile_sdhi.o renesas_sdhi_sys_dmac.o +obj-$(CONFIG_MMC_SDHI) += renesas_sdhi_core.o renesas_sdhi_sys_dmac.o obj-$(CONFIG_MMC_CB710) += cb710-mmc.o obj-$(CONFIG_MMC_VIA_SDMMC) += via-sdmmc.o obj-$(CONFIG_SDH_BFIN) += bfin_sdh.o diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/renesas_sdhi_core.c similarity index 82% rename from drivers/mmc/host/sh_mobile_sdhi.c rename to drivers/mmc/host/renesas_sdhi_core.c index 70000a8f8161..dc251cabffc8 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/renesas_sdhi_core.c @@ -46,14 +46,14 @@ #define SDHI_VER_GEN3_SD 0xcc10 #define SDHI_VER_GEN3_SDMMC 0xcd10 -#define host_to_priv(host) container_of((host)->pdata, struct sh_mobile_sdhi, mmc_data) +#define host_to_priv(host) container_of((host)->pdata, struct renesas_sdhi, mmc_data) -struct sh_mobile_sdhi_scc { +struct renesas_sdhi_scc { unsigned long clk_rate; /* clock rate for SDR104 */ u32 tap; /* sampling clock position for SDR104 */ }; -struct sh_mobile_sdhi_of_data { +struct renesas_sdhi_of_data { unsigned long tmio_flags; u32 tmio_ocr_mask; unsigned long capabilities; @@ -62,22 +62,22 @@ struct sh_mobile_sdhi_of_data { dma_addr_t dma_rx_offset; unsigned bus_shift; int scc_offset; - struct sh_mobile_sdhi_scc *taps; + struct renesas_sdhi_scc *taps; int taps_num; }; -static const struct sh_mobile_sdhi_of_data of_default_cfg = { +static const struct renesas_sdhi_of_data of_default_cfg = { .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT, }; -static const struct sh_mobile_sdhi_of_data of_rcar_gen1_compatible = { +static const struct renesas_sdhi_of_data of_rcar_gen1_compatible = { .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_WRPROTECT_DISABLE | TMIO_MMC_CLK_ACTUAL, .capabilities = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ, }; /* Definitions for sampling clocks */ -static struct sh_mobile_sdhi_scc rcar_gen2_scc_taps[] = { +static struct renesas_sdhi_scc rcar_gen2_scc_taps[] = { { .clk_rate = 156000000, .tap = 0x00000703, @@ -88,7 +88,7 @@ static struct sh_mobile_sdhi_scc rcar_gen2_scc_taps[] = { }, }; -static const struct sh_mobile_sdhi_of_data of_rcar_gen2_compatible = { +static const struct renesas_sdhi_of_data of_rcar_gen2_compatible = { .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_WRPROTECT_DISABLE | TMIO_MMC_CLK_ACTUAL | TMIO_MMC_MIN_RCAR2, .capabilities = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ, @@ -100,14 +100,14 @@ static const struct sh_mobile_sdhi_of_data of_rcar_gen2_compatible = { }; /* Definitions for sampling clocks */ -static struct sh_mobile_sdhi_scc rcar_gen3_scc_taps[] = { +static struct renesas_sdhi_scc rcar_gen3_scc_taps[] = { { .clk_rate = 0, .tap = 0x00000300, }, }; -static const struct sh_mobile_sdhi_of_data of_rcar_gen3_compatible = { +static const struct renesas_sdhi_of_data of_rcar_gen3_compatible = { .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_WRPROTECT_DISABLE | TMIO_MMC_CLK_ACTUAL | TMIO_MMC_MIN_RCAR2, .capabilities = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ, @@ -117,7 +117,7 @@ static const struct sh_mobile_sdhi_of_data of_rcar_gen3_compatible = { .taps_num = ARRAY_SIZE(rcar_gen3_scc_taps), }; -static const struct of_device_id sh_mobile_sdhi_of_match[] = { +static const struct of_device_id renesas_sdhi_of_match[] = { { .compatible = "renesas,sdhi-shmobile" }, { .compatible = "renesas,sdhi-sh7372" }, { .compatible = "renesas,sdhi-sh73a0", .data = &of_default_cfg, }, @@ -135,9 +135,9 @@ static const struct of_device_id sh_mobile_sdhi_of_match[] = { { .compatible = "renesas,sdhi-r8a7794", .data = &of_rcar_gen2_compatible, }, {}, }; -MODULE_DEVICE_TABLE(of, sh_mobile_sdhi_of_match); +MODULE_DEVICE_TABLE(of, renesas_sdhi_of_match); -struct sh_mobile_sdhi { +struct renesas_sdhi { struct clk *clk; struct tmio_mmc_data mmc_data; struct tmio_mmc_dma dma_priv; @@ -146,13 +146,13 @@ struct sh_mobile_sdhi { void __iomem *scc_ctl; }; -static void sh_mobile_sdhi_sdbuf_width(struct tmio_mmc_host *host, int width) +static void renesas_sdhi_sdbuf_width(struct tmio_mmc_host *host, int width) { u32 val; /* * see also - * sh_mobile_sdhi_of_data :: dma_buswidth + * renesas_sdhi_of_data :: dma_buswidth */ switch (sd_ctrl_read16(host, CTL_VERSION)) { case SDHI_VER_GEN2_SDR50: @@ -178,10 +178,10 @@ static void sh_mobile_sdhi_sdbuf_width(struct tmio_mmc_host *host, int width) sd_ctrl_write16(host, EXT_ACC, val); } -static int sh_mobile_sdhi_clk_enable(struct tmio_mmc_host *host) +static int renesas_sdhi_clk_enable(struct tmio_mmc_host *host) { struct mmc_host *mmc = host->mmc; - struct sh_mobile_sdhi *priv = host_to_priv(host); + struct renesas_sdhi *priv = host_to_priv(host); int ret = clk_prepare_enable(priv->clk); if (ret < 0) return ret; @@ -202,15 +202,15 @@ static int sh_mobile_sdhi_clk_enable(struct tmio_mmc_host *host) mmc->f_min = max(clk_round_rate(priv->clk, 1) / 512, 1L); /* enable 16bit data access on SDBUF as default */ - sh_mobile_sdhi_sdbuf_width(host, 16); + renesas_sdhi_sdbuf_width(host, 16); return 0; } -static unsigned int sh_mobile_sdhi_clk_update(struct tmio_mmc_host *host, +static unsigned int renesas_sdhi_clk_update(struct tmio_mmc_host *host, unsigned int new_clock) { - struct sh_mobile_sdhi *priv = host_to_priv(host); + struct renesas_sdhi *priv = host_to_priv(host); unsigned int freq, diff, best_freq = 0, diff_min = ~0; int i, ret; @@ -246,25 +246,25 @@ static unsigned int sh_mobile_sdhi_clk_update(struct tmio_mmc_host *host, return ret == 0 ? best_freq : clk_get_rate(priv->clk); } -static void sh_mobile_sdhi_clk_disable(struct tmio_mmc_host *host) +static void renesas_sdhi_clk_disable(struct tmio_mmc_host *host) { - struct sh_mobile_sdhi *priv = host_to_priv(host); + struct renesas_sdhi *priv = host_to_priv(host); clk_disable_unprepare(priv->clk); } -static int sh_mobile_sdhi_card_busy(struct mmc_host *mmc) +static int renesas_sdhi_card_busy(struct mmc_host *mmc) { struct tmio_mmc_host *host = mmc_priv(mmc); return !(sd_ctrl_read16_and_16_as_32(host, CTL_STATUS) & TMIO_STAT_DAT0); } -static int sh_mobile_sdhi_start_signal_voltage_switch(struct mmc_host *mmc, +static int renesas_sdhi_start_signal_voltage_switch(struct mmc_host *mmc, struct mmc_ios *ios) { struct tmio_mmc_host *host = mmc_priv(mmc); - struct sh_mobile_sdhi *priv = host_to_priv(host); + struct renesas_sdhi *priv = host_to_priv(host); struct pinctrl_state *pin_state; int ret; @@ -315,21 +315,21 @@ static int sh_mobile_sdhi_start_signal_voltage_switch(struct mmc_host *mmc, #define SH_MOBILE_SDHI_SCC_RVSREQ_RVSERR BIT(2) static inline u32 sd_scc_read32(struct tmio_mmc_host *host, - struct sh_mobile_sdhi *priv, int addr) + struct renesas_sdhi *priv, int addr) { return readl(priv->scc_ctl + (addr << host->bus_shift)); } static inline void sd_scc_write32(struct tmio_mmc_host *host, - struct sh_mobile_sdhi *priv, + struct renesas_sdhi *priv, int addr, u32 val) { writel(val, priv->scc_ctl + (addr << host->bus_shift)); } -static unsigned int sh_mobile_sdhi_init_tuning(struct tmio_mmc_host *host) +static unsigned int renesas_sdhi_init_tuning(struct tmio_mmc_host *host) { - struct sh_mobile_sdhi *priv; + struct renesas_sdhi *priv; priv = host_to_priv(host); @@ -366,10 +366,10 @@ static unsigned int sh_mobile_sdhi_init_tuning(struct tmio_mmc_host *host) SH_MOBILE_SDHI_SCC_DTCNTL_TAPNUM_MASK; } -static void sh_mobile_sdhi_prepare_tuning(struct tmio_mmc_host *host, +static void renesas_sdhi_prepare_tuning(struct tmio_mmc_host *host, unsigned long tap) { - struct sh_mobile_sdhi *priv = host_to_priv(host); + struct renesas_sdhi *priv = host_to_priv(host); /* Set sampling clock position */ sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_TAPSET, tap); @@ -377,9 +377,9 @@ static void sh_mobile_sdhi_prepare_tuning(struct tmio_mmc_host *host, #define SH_MOBILE_SDHI_MAX_TAP 3 -static int sh_mobile_sdhi_select_tuning(struct tmio_mmc_host *host) +static int renesas_sdhi_select_tuning(struct tmio_mmc_host *host) { - struct sh_mobile_sdhi *priv = host_to_priv(host); + struct renesas_sdhi *priv = host_to_priv(host); unsigned long tap_cnt; /* counter of tuning success */ unsigned long tap_set; /* tap position */ unsigned long tap_start;/* start position of tuning success */ @@ -435,9 +435,9 @@ static int sh_mobile_sdhi_select_tuning(struct tmio_mmc_host *host) } -static bool sh_mobile_sdhi_check_scc_error(struct tmio_mmc_host *host) +static bool renesas_sdhi_check_scc_error(struct tmio_mmc_host *host) { - struct sh_mobile_sdhi *priv = host_to_priv(host); + struct renesas_sdhi *priv = host_to_priv(host); /* Check SCC error */ if (sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL) & @@ -452,9 +452,9 @@ static bool sh_mobile_sdhi_check_scc_error(struct tmio_mmc_host *host) return false; } -static void sh_mobile_sdhi_hw_reset(struct tmio_mmc_host *host) +static void renesas_sdhi_hw_reset(struct tmio_mmc_host *host) { - struct sh_mobile_sdhi *priv; + struct renesas_sdhi *priv; priv = host_to_priv(host); @@ -478,7 +478,7 @@ static void sh_mobile_sdhi_hw_reset(struct tmio_mmc_host *host) sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL)); } -static int sh_mobile_sdhi_wait_idle(struct tmio_mmc_host *host) +static int renesas_sdhi_wait_idle(struct tmio_mmc_host *host) { int timeout = 1000; @@ -494,7 +494,7 @@ static int sh_mobile_sdhi_wait_idle(struct tmio_mmc_host *host) return 0; } -static int sh_mobile_sdhi_write16_hook(struct tmio_mmc_host *host, int addr) +static int renesas_sdhi_write16_hook(struct tmio_mmc_host *host, int addr) { switch (addr) { @@ -507,13 +507,13 @@ static int sh_mobile_sdhi_write16_hook(struct tmio_mmc_host *host, int addr) case CTL_TRANSACTION_CTL: case CTL_DMA_ENABLE: case EXT_ACC: - return sh_mobile_sdhi_wait_idle(host); + return renesas_sdhi_wait_idle(host); } return 0; } -static int sh_mobile_sdhi_multi_io_quirk(struct mmc_card *card, +static int renesas_sdhi_multi_io_quirk(struct mmc_card *card, unsigned int direction, int blk_size) { /* @@ -531,18 +531,18 @@ static int sh_mobile_sdhi_multi_io_quirk(struct mmc_card *card, return blk_size; } -static void sh_mobile_sdhi_enable_dma(struct tmio_mmc_host *host, bool enable) +static void renesas_sdhi_enable_dma(struct tmio_mmc_host *host, bool enable) { sd_ctrl_write16(host, CTL_DMA_ENABLE, enable ? 2 : 0); /* enable 32bit access if DMA mode if possibile */ - sh_mobile_sdhi_sdbuf_width(host, enable ? 32 : 16); + renesas_sdhi_sdbuf_width(host, enable ? 32 : 16); } -static int sh_mobile_sdhi_probe(struct platform_device *pdev) +static int renesas_sdhi_probe(struct platform_device *pdev) { - const struct sh_mobile_sdhi_of_data *of_data = of_device_get_match_data(&pdev->dev); - struct sh_mobile_sdhi *priv; + const struct renesas_sdhi_of_data *of_data = of_device_get_match_data(&pdev->dev); + struct renesas_sdhi *priv; struct tmio_mmc_data *mmc_data; struct tmio_mmc_data *mmd = pdev->dev.platform_data; struct tmio_mmc_host *host; @@ -554,7 +554,7 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) if (!res) return -EINVAL; - priv = devm_kzalloc(&pdev->dev, sizeof(struct sh_mobile_sdhi), GFP_KERNEL); + priv = devm_kzalloc(&pdev->dev, sizeof(struct renesas_sdhi), GFP_KERNEL); if (!priv) return -ENOMEM; @@ -594,18 +594,18 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) } host->dma = dma_priv; - host->write16_hook = sh_mobile_sdhi_write16_hook; - host->clk_enable = sh_mobile_sdhi_clk_enable; - host->clk_update = sh_mobile_sdhi_clk_update; - host->clk_disable = sh_mobile_sdhi_clk_disable; - host->multi_io_quirk = sh_mobile_sdhi_multi_io_quirk; + host->write16_hook = renesas_sdhi_write16_hook; + host->clk_enable = renesas_sdhi_clk_enable; + host->clk_update = renesas_sdhi_clk_update; + host->clk_disable = renesas_sdhi_clk_disable; + host->multi_io_quirk = renesas_sdhi_multi_io_quirk; /* SDR speeds are only available on Gen2+ */ if (mmc_data->flags & TMIO_MMC_MIN_RCAR2) { /* card_busy caused issues on r8a73a4 (pre-Gen2) CD-less SDHI */ - host->card_busy = sh_mobile_sdhi_card_busy; + host->card_busy = renesas_sdhi_card_busy; host->start_signal_voltage_switch = - sh_mobile_sdhi_start_signal_voltage_switch; + renesas_sdhi_start_signal_voltage_switch; } /* Orginally registers were 16 bit apart, could be 32 or 64 nowadays */ @@ -616,7 +616,7 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) *mmc_data = *mmd; dma_priv->filter = shdma_chan_filter; - dma_priv->enable = sh_mobile_sdhi_enable_dma; + dma_priv->enable = renesas_sdhi_enable_dma; mmc_data->alignment_shift = 1; /* 2-byte alignment */ mmc_data->capabilities |= MMC_CAP_MMC_HIGHSPEED; @@ -648,7 +648,7 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) if (of_data && of_data->scc_offset && (host->mmc->caps & MMC_CAP_UHS_SDR104 || host->mmc->caps2 & MMC_CAP2_HS200_1_8V_SDR)) { - const struct sh_mobile_sdhi_scc *taps = of_data->taps; + const struct renesas_sdhi_scc *taps = of_data->taps; bool hit = false; host->mmc->caps |= MMC_CAP_HW_RESET; @@ -666,11 +666,11 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) dev_warn(&host->pdev->dev, "Unknown clock rate for SDR104\n"); priv->scc_ctl = host->ctl + of_data->scc_offset; - host->init_tuning = sh_mobile_sdhi_init_tuning; - host->prepare_tuning = sh_mobile_sdhi_prepare_tuning; - host->select_tuning = sh_mobile_sdhi_select_tuning; - host->check_scc_error = sh_mobile_sdhi_check_scc_error; - host->hw_reset = sh_mobile_sdhi_hw_reset; + host->init_tuning = renesas_sdhi_init_tuning; + host->prepare_tuning = renesas_sdhi_prepare_tuning; + host->select_tuning = renesas_sdhi_select_tuning; + host->check_scc_error = renesas_sdhi_check_scc_error; + host->hw_reset = renesas_sdhi_hw_reset; } i = 0; @@ -706,7 +706,7 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) return ret; } -static int sh_mobile_sdhi_remove(struct platform_device *pdev) +static int renesas_sdhi_remove(struct platform_device *pdev) { struct mmc_host *mmc = platform_get_drvdata(pdev); struct tmio_mmc_host *host = mmc_priv(mmc); @@ -724,19 +724,19 @@ static const struct dev_pm_ops tmio_mmc_dev_pm_ops = { NULL) }; -static struct platform_driver sh_mobile_sdhi_driver = { +static struct platform_driver renesas_sdhi_driver = { .driver = { .name = "sh_mobile_sdhi", .pm = &tmio_mmc_dev_pm_ops, - .of_match_table = sh_mobile_sdhi_of_match, + .of_match_table = renesas_sdhi_of_match, }, - .probe = sh_mobile_sdhi_probe, - .remove = sh_mobile_sdhi_remove, + .probe = renesas_sdhi_probe, + .remove = renesas_sdhi_remove, }; -module_platform_driver(sh_mobile_sdhi_driver); +module_platform_driver(renesas_sdhi_driver); -MODULE_DESCRIPTION("SuperH Mobile SDHI driver"); +MODULE_DESCRIPTION("Renesas SDHI driver"); MODULE_AUTHOR("Magnus Damm"); MODULE_LICENSE("GPL v2"); MODULE_ALIAS("platform:sh_mobile_sdhi"); From 9bf7be5474bacad29d073dd6d00524b5f15d3e97 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Wed, 27 Nov 2019 19:39:54 +0100 Subject: [PATCH 0793/1149] mmc: renesas-sdhi: make renesas_sdhi_sys_dmac main module file commit 9d08428afb722fedaea699a32aaf603a8f1ebd5a upstream. Make renesas_sdhi_sys_dmac.c a top-level module file that makes use of library code supplied by renesas_sdhi_core.c This is in order to facilitate adding other variants of SDHI; in particular SDHI using different DMA controllers. Signed-off-by: Simon Horman Acked-by: Arnd Bergmann Reviewed-by: Wolfram Sang Signed-off-by: Ulf Hansson [Arnd: Fixed module build error] Signed-off-by: Arnd Bergmann [Biju: Backported to 4.4 Kernel] Signed-off-by: Biju Das [Pavel: keep support for renesas,sdhi-r8a7744] Signed-off-by: Pavel Machek --- drivers/mmc/host/renesas_sdhi.h | 23 +++- drivers/mmc/host/renesas_sdhi_core.c | 129 ++--------------------- drivers/mmc/host/renesas_sdhi_sys_dmac.c | 103 +++++++++++++++++- 3 files changed, 131 insertions(+), 124 deletions(-) diff --git a/drivers/mmc/host/renesas_sdhi.h b/drivers/mmc/host/renesas_sdhi.h index f65d936cd680..eb3ea15ff92d 100644 --- a/drivers/mmc/host/renesas_sdhi.h +++ b/drivers/mmc/host/renesas_sdhi.h @@ -12,7 +12,28 @@ #ifndef RENESAS_SDHI_H #define RENESAS_SDHI_H +#include #include "tmio_mmc.h" -const struct tmio_mmc_dma_ops *renesas_sdhi_get_dma_ops(void); +struct renesas_sdhi_scc { + unsigned long clk_rate; /* clock rate for SDR104 */ + u32 tap; /* sampling clock position for SDR104 */ +}; + +struct renesas_sdhi_of_data { + unsigned long tmio_flags; + u32 tmio_ocr_mask; + unsigned long capabilities; + unsigned long capabilities2; + enum dma_slave_buswidth dma_buswidth; + dma_addr_t dma_rx_offset; + unsigned bus_shift; + int scc_offset; + struct renesas_sdhi_scc *taps; + int taps_num; +}; + +int renesas_sdhi_probe(struct platform_device *pdev, + const struct tmio_mmc_dma_ops *dma_ops); +int renesas_sdhi_remove(struct platform_device *pdev); #endif diff --git a/drivers/mmc/host/renesas_sdhi_core.c b/drivers/mmc/host/renesas_sdhi_core.c index dc251cabffc8..36e2f617e824 100644 --- a/drivers/mmc/host/renesas_sdhi_core.c +++ b/drivers/mmc/host/renesas_sdhi_core.c @@ -1,5 +1,5 @@ /* - * SuperH Mobile SDHI + * Renesas SDHI * * Copyright (C) 2016 Sang Engineering, Wolfram Sang * Copyright (C) 2015-16 Renesas Electronics Corporation @@ -23,8 +23,6 @@ #include #include #include -#include -#include #include #include #include @@ -48,95 +46,6 @@ #define host_to_priv(host) container_of((host)->pdata, struct renesas_sdhi, mmc_data) -struct renesas_sdhi_scc { - unsigned long clk_rate; /* clock rate for SDR104 */ - u32 tap; /* sampling clock position for SDR104 */ -}; - -struct renesas_sdhi_of_data { - unsigned long tmio_flags; - u32 tmio_ocr_mask; - unsigned long capabilities; - unsigned long capabilities2; - enum dma_slave_buswidth dma_buswidth; - dma_addr_t dma_rx_offset; - unsigned bus_shift; - int scc_offset; - struct renesas_sdhi_scc *taps; - int taps_num; -}; - -static const struct renesas_sdhi_of_data of_default_cfg = { - .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT, -}; - -static const struct renesas_sdhi_of_data of_rcar_gen1_compatible = { - .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_WRPROTECT_DISABLE | - TMIO_MMC_CLK_ACTUAL, - .capabilities = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ, -}; - -/* Definitions for sampling clocks */ -static struct renesas_sdhi_scc rcar_gen2_scc_taps[] = { - { - .clk_rate = 156000000, - .tap = 0x00000703, - }, - { - .clk_rate = 0, - .tap = 0x00000300, - }, -}; - -static const struct renesas_sdhi_of_data of_rcar_gen2_compatible = { - .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_WRPROTECT_DISABLE | - TMIO_MMC_CLK_ACTUAL | TMIO_MMC_MIN_RCAR2, - .capabilities = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ, - .dma_buswidth = DMA_SLAVE_BUSWIDTH_4_BYTES, - .dma_rx_offset = 0x2000, - .scc_offset = 0x0300, - .taps = rcar_gen2_scc_taps, - .taps_num = ARRAY_SIZE(rcar_gen2_scc_taps), -}; - -/* Definitions for sampling clocks */ -static struct renesas_sdhi_scc rcar_gen3_scc_taps[] = { - { - .clk_rate = 0, - .tap = 0x00000300, - }, -}; - -static const struct renesas_sdhi_of_data of_rcar_gen3_compatible = { - .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_WRPROTECT_DISABLE | - TMIO_MMC_CLK_ACTUAL | TMIO_MMC_MIN_RCAR2, - .capabilities = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ, - .bus_shift = 2, - .scc_offset = 0x1000, - .taps = rcar_gen3_scc_taps, - .taps_num = ARRAY_SIZE(rcar_gen3_scc_taps), -}; - -static const struct of_device_id renesas_sdhi_of_match[] = { - { .compatible = "renesas,sdhi-shmobile" }, - { .compatible = "renesas,sdhi-sh7372" }, - { .compatible = "renesas,sdhi-sh73a0", .data = &of_default_cfg, }, - { .compatible = "renesas,sdhi-r8a73a4", .data = &of_default_cfg, }, - { .compatible = "renesas,sdhi-r8a7740", .data = &of_default_cfg, }, - { .compatible = "renesas,sdhi-r8a7778", .data = &of_rcar_gen1_compatible, }, - { .compatible = "renesas,sdhi-r8a7779", .data = &of_rcar_gen1_compatible, }, - { .compatible = "renesas,sdhi-r8a7743", .data = &of_rcar_gen2_compatible, }, - { .compatible = "renesas,sdhi-r8a7744", .data = &of_rcar_gen2_compatible, }, - { .compatible = "renesas,sdhi-r8a7745", .data = &of_rcar_gen2_compatible, }, - { .compatible = "renesas,sdhi-r8a7790", .data = &of_rcar_gen2_compatible, }, - { .compatible = "renesas,sdhi-r8a7791", .data = &of_rcar_gen2_compatible, }, - { .compatible = "renesas,sdhi-r8a7792", .data = &of_rcar_gen2_compatible, }, - { .compatible = "renesas,sdhi-r8a7793", .data = &of_rcar_gen2_compatible, }, - { .compatible = "renesas,sdhi-r8a7794", .data = &of_rcar_gen2_compatible, }, - {}, -}; -MODULE_DEVICE_TABLE(of, renesas_sdhi_of_match); - struct renesas_sdhi { struct clk *clk; struct tmio_mmc_data mmc_data; @@ -539,9 +448,10 @@ static void renesas_sdhi_enable_dma(struct tmio_mmc_host *host, bool enable) renesas_sdhi_sdbuf_width(host, enable ? 32 : 16); } -static int renesas_sdhi_probe(struct platform_device *pdev) +int renesas_sdhi_probe(struct platform_device *pdev, + const struct tmio_mmc_dma_ops *dma_ops) { - const struct renesas_sdhi_of_data *of_data = of_device_get_match_data(&pdev->dev); + const struct renesas_sdhi_of_data *of_data = of_device_get_match_data( &pdev->dev); struct renesas_sdhi *priv; struct tmio_mmc_data *mmc_data; struct tmio_mmc_data *mmd = pdev->dev.platform_data; @@ -640,7 +550,7 @@ static int renesas_sdhi_probe(struct platform_device *pdev) /* All SDHI have SDIO status bits which must be 1 */ mmc_data->flags |= TMIO_MMC_SDIO_STATUS_SETBITS; - ret = tmio_mmc_host_probe(host, mmc_data, renesas_sdhi_get_dma_ops()); + ret = tmio_mmc_host_probe(host, mmc_data, dma_ops); if (ret < 0) goto efree; @@ -705,8 +615,9 @@ static int renesas_sdhi_probe(struct platform_device *pdev) eprobe: return ret; } +EXPORT_SYMBOL_GPL(renesas_sdhi_probe); -static int renesas_sdhi_remove(struct platform_device *pdev) +int renesas_sdhi_remove(struct platform_device *pdev) { struct mmc_host *mmc = platform_get_drvdata(pdev); struct tmio_mmc_host *host = mmc_priv(mmc); @@ -715,28 +626,4 @@ static int renesas_sdhi_remove(struct platform_device *pdev) return 0; } - -static const struct dev_pm_ops tmio_mmc_dev_pm_ops = { - SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, - pm_runtime_force_resume) - SET_RUNTIME_PM_OPS(tmio_mmc_host_runtime_suspend, - tmio_mmc_host_runtime_resume, - NULL) -}; - -static struct platform_driver renesas_sdhi_driver = { - .driver = { - .name = "sh_mobile_sdhi", - .pm = &tmio_mmc_dev_pm_ops, - .of_match_table = renesas_sdhi_of_match, - }, - .probe = renesas_sdhi_probe, - .remove = renesas_sdhi_remove, -}; - -module_platform_driver(renesas_sdhi_driver); - -MODULE_DESCRIPTION("Renesas SDHI driver"); -MODULE_AUTHOR("Magnus Damm"); -MODULE_LICENSE("GPL v2"); -MODULE_ALIAS("platform:sh_mobile_sdhi"); +EXPORT_SYMBOL_GPL(renesas_sdhi_remove); diff --git a/drivers/mmc/host/renesas_sdhi_sys_dmac.c b/drivers/mmc/host/renesas_sdhi_sys_dmac.c index 60ce4283da5a..126f82fcc7ff 100644 --- a/drivers/mmc/host/renesas_sdhi_sys_dmac.c +++ b/drivers/mmc/host/renesas_sdhi_sys_dmac.c @@ -13,13 +13,87 @@ #include #include #include +#include +#include #include #include +#include "renesas_sdhi.h" #include "tmio_mmc.h" #define TMIO_MMC_MIN_DMA_LEN 8 +static const struct renesas_sdhi_of_data of_default_cfg = { + .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT, +}; + +static const struct renesas_sdhi_of_data of_rcar_gen1_compatible = { + .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_WRPROTECT_DISABLE | + TMIO_MMC_CLK_ACTUAL, + .capabilities = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ, +}; + +/* Definitions for sampling clocks */ +static struct renesas_sdhi_scc rcar_gen2_scc_taps[] = { + { + .clk_rate = 156000000, + .tap = 0x00000703, + }, + { + .clk_rate = 0, + .tap = 0x00000300, + }, +}; + +static const struct renesas_sdhi_of_data of_rcar_gen2_compatible = { + .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_WRPROTECT_DISABLE | + TMIO_MMC_CLK_ACTUAL | TMIO_MMC_MIN_RCAR2, + .capabilities = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ, + .dma_buswidth = DMA_SLAVE_BUSWIDTH_4_BYTES, + .dma_rx_offset = 0x2000, + .scc_offset = 0x0300, + .taps = rcar_gen2_scc_taps, + .taps_num = ARRAY_SIZE(rcar_gen2_scc_taps), +}; + +/* Definitions for sampling clocks */ +static struct renesas_sdhi_scc rcar_gen3_scc_taps[] = { + { + .clk_rate = 0, + .tap = 0x00000300, + }, +}; + +static const struct renesas_sdhi_of_data of_rcar_gen3_compatible = { + .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_WRPROTECT_DISABLE | + TMIO_MMC_CLK_ACTUAL | TMIO_MMC_MIN_RCAR2, + .capabilities = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ, + .bus_shift = 2, + .scc_offset = 0x1000, + .taps = rcar_gen3_scc_taps, + .taps_num = ARRAY_SIZE(rcar_gen3_scc_taps), +}; + +static const struct of_device_id renesas_sdhi_sys_dmac_of_match[] = { + { .compatible = "renesas,sdhi-shmobile" }, + { .compatible = "renesas,sdhi-sh73a0", .data = &of_default_cfg, }, + { .compatible = "renesas,sdhi-r8a73a4", .data = &of_default_cfg, }, + { .compatible = "renesas,sdhi-r8a7740", .data = &of_default_cfg, }, + { .compatible = "renesas,sdhi-r8a7778", .data = &of_rcar_gen1_compatible, }, + { .compatible = "renesas,sdhi-r8a7779", .data = &of_rcar_gen1_compatible, }, + { .compatible = "renesas,sdhi-r8a7743", .data = &of_rcar_gen2_compatible, }, + { .compatible = "renesas,sdhi-r8a7744", .data = &of_rcar_gen2_compatible, }, + { .compatible = "renesas,sdhi-r8a7745", .data = &of_rcar_gen2_compatible, }, + { .compatible = "renesas,sdhi-r8a7790", .data = &of_rcar_gen2_compatible, }, + { .compatible = "renesas,sdhi-r8a7791", .data = &of_rcar_gen2_compatible, }, + { .compatible = "renesas,sdhi-r8a7792", .data = &of_rcar_gen2_compatible, }, + { .compatible = "renesas,sdhi-r8a7793", .data = &of_rcar_gen2_compatible, }, + { .compatible = "renesas,sdhi-r8a7794", .data = &of_rcar_gen2_compatible, }, + {}, +}; +MODULE_DEVICE_TABLE(of, renesas_sdhi_sys_dmac_of_match); + + static void renesas_sdhi_sys_dmac_enable_dma(struct tmio_mmc_host *host, bool enable) { @@ -365,7 +439,32 @@ static const struct tmio_mmc_dma_ops renesas_sdhi_sys_dmac_dma_ops = { .abort = renesas_sdhi_sys_dmac_abort_dma, }; -const struct tmio_mmc_dma_ops *renesas_sdhi_get_dma_ops(void) +static int renesas_sdhi_sys_dmac_probe(struct platform_device *pdev) { - return &renesas_sdhi_sys_dmac_dma_ops; + return renesas_sdhi_probe(pdev, &renesas_sdhi_sys_dmac_dma_ops); } + +static const struct dev_pm_ops renesas_sdhi_sys_dmac_dev_pm_ops = { + SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, + pm_runtime_force_resume) + SET_RUNTIME_PM_OPS(tmio_mmc_host_runtime_suspend, + tmio_mmc_host_runtime_resume, + NULL) +}; + +static struct platform_driver renesas_sys_dmac_sdhi_driver = { + .driver = { + .name = "sh_mobile_sdhi", + .pm = &renesas_sdhi_sys_dmac_dev_pm_ops, + .of_match_table = renesas_sdhi_sys_dmac_of_match, + }, + .probe = renesas_sdhi_sys_dmac_probe, + .remove = renesas_sdhi_remove, +}; + +module_platform_driver(renesas_sys_dmac_sdhi_driver); + +MODULE_DESCRIPTION("Renesas SDHI driver"); +MODULE_AUTHOR("Magnus Damm"); +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:sh_mobile_sdhi"); From 97556c39f683c62c0e4270fa2e49024f7bd2e1af Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Wed, 27 Nov 2019 13:46:48 +0000 Subject: [PATCH 0794/1149] mmc: renesas-sdhi: improve checkpatch cleanness commit 2fe35968feccaee61413edbe54bec66bc80a67a7 upstream. Trivial updates to improve checkpatch cleanness. Signed-off-by: Simon Horman Reviewed-by: Wolfram Sang Tested-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/renesas_sdhi.h | 2 +- drivers/mmc/host/renesas_sdhi_core.c | 43 ++++++++++++------------ drivers/mmc/host/renesas_sdhi_sys_dmac.c | 25 ++++++++------ 3 files changed, 37 insertions(+), 33 deletions(-) diff --git a/drivers/mmc/host/renesas_sdhi.h b/drivers/mmc/host/renesas_sdhi.h index eb3ea15ff92d..781fe4cf659e 100644 --- a/drivers/mmc/host/renesas_sdhi.h +++ b/drivers/mmc/host/renesas_sdhi.h @@ -34,6 +34,6 @@ struct renesas_sdhi_of_data { }; int renesas_sdhi_probe(struct platform_device *pdev, - const struct tmio_mmc_dma_ops *dma_ops); + const struct tmio_mmc_dma_ops *dma_ops); int renesas_sdhi_remove(struct platform_device *pdev); #endif diff --git a/drivers/mmc/host/renesas_sdhi_core.c b/drivers/mmc/host/renesas_sdhi_core.c index 36e2f617e824..a64a3ba6a0ab 100644 --- a/drivers/mmc/host/renesas_sdhi_core.c +++ b/drivers/mmc/host/renesas_sdhi_core.c @@ -44,7 +44,8 @@ #define SDHI_VER_GEN3_SD 0xcc10 #define SDHI_VER_GEN3_SDMMC 0xcd10 -#define host_to_priv(host) container_of((host)->pdata, struct renesas_sdhi, mmc_data) +#define host_to_priv(host) \ + container_of((host)->pdata, struct renesas_sdhi, mmc_data) struct renesas_sdhi { struct clk *clk; @@ -92,6 +93,7 @@ static int renesas_sdhi_clk_enable(struct tmio_mmc_host *host) struct mmc_host *mmc = host->mmc; struct renesas_sdhi *priv = host_to_priv(host); int ret = clk_prepare_enable(priv->clk); + if (ret < 0) return ret; @@ -117,7 +119,7 @@ static int renesas_sdhi_clk_enable(struct tmio_mmc_host *host) } static unsigned int renesas_sdhi_clk_update(struct tmio_mmc_host *host, - unsigned int new_clock) + unsigned int new_clock) { struct renesas_sdhi *priv = host_to_priv(host); unsigned int freq, diff, best_freq = 0, diff_min = ~0; @@ -166,11 +168,12 @@ static int renesas_sdhi_card_busy(struct mmc_host *mmc) { struct tmio_mmc_host *host = mmc_priv(mmc); - return !(sd_ctrl_read16_and_16_as_32(host, CTL_STATUS) & TMIO_STAT_DAT0); + return !(sd_ctrl_read16_and_16_as_32(host, CTL_STATUS) & + TMIO_STAT_DAT0); } static int renesas_sdhi_start_signal_voltage_switch(struct mmc_host *mmc, - struct mmc_ios *ios) + struct mmc_ios *ios) { struct tmio_mmc_host *host = mmc_priv(mmc); struct renesas_sdhi *priv = host_to_priv(host); @@ -276,7 +279,7 @@ static unsigned int renesas_sdhi_init_tuning(struct tmio_mmc_host *host) } static void renesas_sdhi_prepare_tuning(struct tmio_mmc_host *host, - unsigned long tap) + unsigned long tap) { struct renesas_sdhi *priv = host_to_priv(host); @@ -309,9 +312,9 @@ static int renesas_sdhi_select_tuning(struct tmio_mmc_host *host) tap_start = 0; tap_end = 0; for (i = 0; i < host->tap_num * 2; i++) { - if (test_bit(i, host->taps)) + if (test_bit(i, host->taps)) { ntap++; - else { + } else { if (ntap > tap_cnt) { tap_start = i - ntap; tap_end = i - 1; @@ -343,7 +346,6 @@ static int renesas_sdhi_select_tuning(struct tmio_mmc_host *host) return 0; } - static bool renesas_sdhi_check_scc_error(struct tmio_mmc_host *host) { struct renesas_sdhi *priv = host_to_priv(host); @@ -405,8 +407,7 @@ static int renesas_sdhi_wait_idle(struct tmio_mmc_host *host) static int renesas_sdhi_write16_hook(struct tmio_mmc_host *host, int addr) { - switch (addr) - { + switch (addr) { case CTL_SD_CMD: case CTL_STOP_INTERNAL_ACTION: case CTL_XFER_BLK_COUNT: @@ -423,7 +424,7 @@ static int renesas_sdhi_write16_hook(struct tmio_mmc_host *host, int addr) } static int renesas_sdhi_multi_io_quirk(struct mmc_card *card, - unsigned int direction, int blk_size) + unsigned int direction, int blk_size) { /* * In Renesas controllers, when performing a @@ -451,20 +452,23 @@ static void renesas_sdhi_enable_dma(struct tmio_mmc_host *host, bool enable) int renesas_sdhi_probe(struct platform_device *pdev, const struct tmio_mmc_dma_ops *dma_ops) { - const struct renesas_sdhi_of_data *of_data = of_device_get_match_data( &pdev->dev); - struct renesas_sdhi *priv; - struct tmio_mmc_data *mmc_data; struct tmio_mmc_data *mmd = pdev->dev.platform_data; + const struct renesas_sdhi_of_data *of_data; + struct tmio_mmc_data *mmc_data; + struct tmio_mmc_dma *dma_priv; struct tmio_mmc_host *host; + struct renesas_sdhi *priv; struct resource *res; int irq, ret, i; - struct tmio_mmc_dma *dma_priv; + + of_data = of_device_get_match_data(&pdev->dev); res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) return -EINVAL; - priv = devm_kzalloc(&pdev->dev, sizeof(struct renesas_sdhi), GFP_KERNEL); + priv = devm_kzalloc(&pdev->dev, sizeof(struct renesas_sdhi), + GFP_KERNEL); if (!priv) return -ENOMEM; @@ -492,7 +496,6 @@ int renesas_sdhi_probe(struct platform_device *pdev, goto eprobe; } - if (of_data) { mmc_data->flags |= of_data->tmio_flags; mmc_data->ocr_mask = of_data->tmio_ocr_mask; @@ -542,9 +545,7 @@ int renesas_sdhi_probe(struct platform_device *pdev, */ mmc_data->flags |= TMIO_MMC_SDIO_IRQ; - /* - * All SDHI have CMD12 controll bit - */ + /* All SDHI have CMD12 control bit */ mmc_data->flags |= TMIO_MMC_HAVE_CMD12_CTRL; /* All SDHI have SDIO status bits which must be 1 */ @@ -590,7 +591,7 @@ int renesas_sdhi_probe(struct platform_device *pdev, break; i++; ret = devm_request_irq(&pdev->dev, irq, tmio_mmc_irq, 0, - dev_name(&pdev->dev), host); + dev_name(&pdev->dev), host); if (ret) goto eirq; } diff --git a/drivers/mmc/host/renesas_sdhi_sys_dmac.c b/drivers/mmc/host/renesas_sdhi_sys_dmac.c index 126f82fcc7ff..08dfed347e85 100644 --- a/drivers/mmc/host/renesas_sdhi_sys_dmac.c +++ b/drivers/mmc/host/renesas_sdhi_sys_dmac.c @@ -93,7 +93,6 @@ static const struct of_device_id renesas_sdhi_sys_dmac_of_match[] = { }; MODULE_DEVICE_TABLE(of, renesas_sdhi_sys_dmac_of_match); - static void renesas_sdhi_sys_dmac_enable_dma(struct tmio_mmc_host *host, bool enable) { @@ -185,8 +184,8 @@ static void renesas_sdhi_sys_dmac_start_dma_rx(struct tmio_mmc_host *host) ret = dma_map_sg(chan->device->dev, sg, host->sg_len, DMA_FROM_DEVICE); if (ret > 0) - desc = dmaengine_prep_slave_sg(chan, sg, ret, - DMA_DEV_TO_MEM, DMA_CTRL_ACK); + desc = dmaengine_prep_slave_sg(chan, sg, ret, DMA_DEV_TO_MEM, + DMA_CTRL_ACK); if (desc) { reinit_completion(&host->dma_dataend); @@ -254,6 +253,7 @@ static void renesas_sdhi_sys_dmac_start_dma_tx(struct tmio_mmc_host *host) if (!aligned) { unsigned long flags; void *sg_vaddr = tmio_mmc_kmap_atomic(sg, &flags); + sg_init_one(&host->bounce_sg, host->bounce_buf, sg->length); memcpy(host->bounce_buf, sg_vaddr, host->bounce_sg.length); tmio_mmc_kunmap_atomic(sg, &flags, sg_vaddr); @@ -263,8 +263,8 @@ static void renesas_sdhi_sys_dmac_start_dma_tx(struct tmio_mmc_host *host) ret = dma_map_sg(chan->device->dev, sg, host->sg_len, DMA_TO_DEVICE); if (ret > 0) - desc = dmaengine_prep_slave_sg(chan, sg, ret, - DMA_MEM_TO_DEV, DMA_CTRL_ACK); + desc = dmaengine_prep_slave_sg(chan, sg, ret, DMA_MEM_TO_DEV, + DMA_CTRL_ACK); if (desc) { reinit_completion(&host->dma_dataend); @@ -297,7 +297,7 @@ static void renesas_sdhi_sys_dmac_start_dma_tx(struct tmio_mmc_host *host) } static void renesas_sdhi_sys_dmac_start_dma(struct tmio_mmc_host *host, - struct mmc_data *data) + struct mmc_data *data) { if (data->flags & MMC_DATA_READ) { if (host->chan_rx) @@ -335,7 +335,7 @@ static void renesas_sdhi_sys_dmac_request_dma(struct tmio_mmc_host *host, { /* We can only either use DMA for both Tx and Rx or not use it at all */ if (!host->dma || (!host->pdev->dev.of_node && - (!pdata->chan_priv_tx || !pdata->chan_priv_rx))) + (!pdata->chan_priv_tx || !pdata->chan_priv_rx))) return; if (!host->chan_tx && !host->chan_rx) { @@ -361,7 +361,8 @@ static void renesas_sdhi_sys_dmac_request_dma(struct tmio_mmc_host *host, return; cfg.direction = DMA_MEM_TO_DEV; - cfg.dst_addr = res->start + (CTL_SD_DATA_PORT << host->bus_shift); + cfg.dst_addr = res->start + + (CTL_SD_DATA_PORT << host->bus_shift); cfg.dst_addr_width = host->dma->dma_buswidth; if (!cfg.dst_addr_width) cfg.dst_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES; @@ -417,11 +418,13 @@ static void renesas_sdhi_sys_dmac_release_dma(struct tmio_mmc_host *host) { if (host->chan_tx) { struct dma_chan *chan = host->chan_tx; + host->chan_tx = NULL; dma_release_channel(chan); } if (host->chan_rx) { struct dma_chan *chan = host->chan_rx; + host->chan_rx = NULL; dma_release_channel(chan); } @@ -446,10 +449,10 @@ static int renesas_sdhi_sys_dmac_probe(struct platform_device *pdev) static const struct dev_pm_ops renesas_sdhi_sys_dmac_dev_pm_ops = { SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, - pm_runtime_force_resume) + pm_runtime_force_resume) SET_RUNTIME_PM_OPS(tmio_mmc_host_runtime_suspend, - tmio_mmc_host_runtime_resume, - NULL) + tmio_mmc_host_runtime_resume, + NULL) }; static struct platform_driver renesas_sys_dmac_sdhi_driver = { From 08d25b91c65f0bea524e24d1752455f0b55d2547 Mon Sep 17 00:00:00 2001 From: Yoshihiro Shimoda Date: Wed, 27 Nov 2019 13:46:49 +0000 Subject: [PATCH 0795/1149] mmc: tmio, renesas-sdhi: add max_{segs, blk_count} to tmio_mmc_data commit 603aa14d3daaa7073bab4c472025c4963030e0cc upstream. Allow TMIO and SDHI driver implementations to provide values for max_segs and max_blk_count. A follow-up patch will set these values for Renesas Gen3 SoCs the using an SDHI driver. Signed-off-by: Yoshihiro Shimoda Signed-off-by: Ai Kyuse Signed-off-by: Simon Horman Reviewed-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/renesas_sdhi.h | 2 ++ drivers/mmc/host/renesas_sdhi_core.c | 2 ++ drivers/mmc/host/tmio_mmc_core.c | 6 +++--- include/linux/mfd/tmio.h | 2 ++ 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/host/renesas_sdhi.h b/drivers/mmc/host/renesas_sdhi.h index 781fe4cf659e..6e33266f8f66 100644 --- a/drivers/mmc/host/renesas_sdhi.h +++ b/drivers/mmc/host/renesas_sdhi.h @@ -31,6 +31,8 @@ struct renesas_sdhi_of_data { int scc_offset; struct renesas_sdhi_scc *taps; int taps_num; + unsigned int max_blk_count; + unsigned short max_segs; }; int renesas_sdhi_probe(struct platform_device *pdev, diff --git a/drivers/mmc/host/renesas_sdhi_core.c b/drivers/mmc/host/renesas_sdhi_core.c index a64a3ba6a0ab..2f8c7b895de7 100644 --- a/drivers/mmc/host/renesas_sdhi_core.c +++ b/drivers/mmc/host/renesas_sdhi_core.c @@ -502,6 +502,8 @@ int renesas_sdhi_probe(struct platform_device *pdev, mmc_data->capabilities |= of_data->capabilities; mmc_data->capabilities2 |= of_data->capabilities2; mmc_data->dma_rx_offset = of_data->dma_rx_offset; + mmc_data->max_blk_count = of_data->max_blk_count; + mmc_data->max_segs = of_data->max_segs; dma_priv->dma_buswidth = of_data->dma_buswidth; host->bus_shift = of_data->bus_shift; } diff --git a/drivers/mmc/host/tmio_mmc_core.c b/drivers/mmc/host/tmio_mmc_core.c index 0132a5262656..f93a77367934 100644 --- a/drivers/mmc/host/tmio_mmc_core.c +++ b/drivers/mmc/host/tmio_mmc_core.c @@ -1222,10 +1222,10 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host, mmc->caps |= MMC_CAP_4_BIT_DATA | pdata->capabilities; mmc->caps2 |= pdata->capabilities2; - mmc->max_segs = 32; + mmc->max_segs = pdata->max_segs ? : 32; mmc->max_blk_size = 512; - mmc->max_blk_count = (PAGE_CACHE_SIZE / mmc->max_blk_size) * - mmc->max_segs; + mmc->max_blk_count = pdata->max_blk_count ? : + (PAGE_SIZE / mmc->max_blk_size) * mmc->max_segs; mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count; mmc->max_seg_size = mmc->max_req_size; diff --git a/include/linux/mfd/tmio.h b/include/linux/mfd/tmio.h index a1520d88ebf3..662fedc87a31 100644 --- a/include/linux/mfd/tmio.h +++ b/include/linux/mfd/tmio.h @@ -128,6 +128,8 @@ struct tmio_mmc_data { unsigned int cd_gpio; int alignment_shift; dma_addr_t dma_rx_offset; + unsigned int max_blk_count; + unsigned short max_segs; void (*set_pwr)(struct platform_device *host, int state); void (*set_clk_div)(struct platform_device *host, int state); }; From a1ed4996e7500e07e670733ef8cf27e388cf2110 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Wed, 27 Nov 2019 13:46:50 +0000 Subject: [PATCH 0796/1149] mmc: tmio, renesas-sdhi: add dataend to DMA ops commit 92d0f925e6344a24b12a6eeb4f1030ec0e70e8d1 upstream. Add dataend to DMA ops to allow DMAC implementation dependent handling of DMA data end. Also implement the operation for SDHI. Signed-off-by: Simon Horman Reviewed-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/renesas_sdhi_sys_dmac.c | 6 ++++++ drivers/mmc/host/tmio_mmc.h | 1 + drivers/mmc/host/tmio_mmc_core.c | 10 ++++++++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/host/renesas_sdhi_sys_dmac.c b/drivers/mmc/host/renesas_sdhi_sys_dmac.c index 08dfed347e85..ab730d514568 100644 --- a/drivers/mmc/host/renesas_sdhi_sys_dmac.c +++ b/drivers/mmc/host/renesas_sdhi_sys_dmac.c @@ -115,6 +115,11 @@ static void renesas_sdhi_sys_dmac_abort_dma(struct tmio_mmc_host *host) renesas_sdhi_sys_dmac_enable_dma(host, true); } +static void renesas_sdhi_sys_dmac_dataend_dma(struct tmio_mmc_host *host) +{ + complete(&host->dma_dataend); +} + static void renesas_sdhi_sys_dmac_dma_callback(void *arg) { struct tmio_mmc_host *host = arg; @@ -440,6 +445,7 @@ static const struct tmio_mmc_dma_ops renesas_sdhi_sys_dmac_dma_ops = { .request = renesas_sdhi_sys_dmac_request_dma, .release = renesas_sdhi_sys_dmac_release_dma, .abort = renesas_sdhi_sys_dmac_abort_dma, + .dataend = renesas_sdhi_sys_dmac_dataend_dma, }; static int renesas_sdhi_sys_dmac_probe(struct platform_device *pdev) diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index cd5b4f37de20..17ea4b6e6489 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -120,6 +120,7 @@ struct tmio_mmc_dma_ops { struct tmio_mmc_data *pdata); void (*release)(struct tmio_mmc_host *host); void (*abort)(struct tmio_mmc_host *host); + void (*dataend)(struct tmio_mmc_host *host); }; struct tmio_mmc_host { diff --git a/drivers/mmc/host/tmio_mmc_core.c b/drivers/mmc/host/tmio_mmc_core.c index f93a77367934..ed49a764b11c 100644 --- a/drivers/mmc/host/tmio_mmc_core.c +++ b/drivers/mmc/host/tmio_mmc_core.c @@ -86,6 +86,12 @@ static inline void tmio_mmc_abort_dma(struct tmio_mmc_host *host) host->dma_ops->abort(host); } +static inline void tmio_mmc_dataend_dma(struct tmio_mmc_host *host) +{ + if (host->dma_ops) + host->dma_ops->dataend(host); +} + void tmio_mmc_enable_mmc_irqs(struct tmio_mmc_host *host, u32 i) { host->sdcard_irq_mask &= ~(i & TMIO_MASK_IRQ); @@ -636,11 +642,11 @@ static void tmio_mmc_data_irq(struct tmio_mmc_host *host, unsigned int stat) if (done) { tmio_mmc_disable_mmc_irqs(host, TMIO_STAT_DATAEND); - complete(&host->dma_dataend); + tmio_mmc_dataend_dma(host); } } else if (host->chan_rx && (data->flags & MMC_DATA_READ) && !host->force_pio) { tmio_mmc_disable_mmc_irqs(host, TMIO_STAT_DATAEND); - complete(&host->dma_dataend); + tmio_mmc_dataend_dma(host); } else { tmio_mmc_do_data_irq(host); tmio_mmc_disable_mmc_irqs(host, TMIO_MASK_READOP | TMIO_MASK_WRITEOP); From 455e746f0d0b53002a2bfda0498274c680843f4c Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Wed, 27 Nov 2019 13:46:51 +0000 Subject: [PATCH 0797/1149] mmc: renesas-sdhi: add support for R-Car Gen3 SDHI DMAC commit 2a68ea7896e3277d875c5d5e7f34cf2937cb55c3 upstream. Add a new variant of the SDHI driver to support R-Car Gen3 with DMA via on-chip bus mastering. Since the DMAC is in a part of the SDHI module it is not suitable to be used via DMA Engine. Clearing of DM_CM_INFO1 after DMA thanks to Dirk Behme Cc: Dirk Behme Signed-off-by: Yoshihiro Shimoda Signed-off-by: Ai Kyuse Signed-off-by: Simon Horman Reviewed-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/Kconfig | 19 ++ drivers/mmc/host/Makefile | 8 +- drivers/mmc/host/renesas_sdhi_internal_dmac.c | 272 ++++++++++++++++++ drivers/mmc/host/renesas_sdhi_sys_dmac.c | 2 +- drivers/mmc/host/tmio_mmc.h | 1 + 5 files changed, 300 insertions(+), 2 deletions(-) create mode 100644 drivers/mmc/host/renesas_sdhi_internal_dmac.c diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig index eaf40ec2d462..54d98ee8bf54 100644 --- a/drivers/mmc/host/Kconfig +++ b/drivers/mmc/host/Kconfig @@ -563,10 +563,29 @@ config MMC_SDHI depends on SUPERH || ARM depends on SUPERH || ARCH_SHMOBILE || COMPILE_TEST select MMC_TMIO_CORE + select MMC_SDHI_SYS_DMAC if (SUPERH || ARM) + select MMC_SDHI_INTERNAL_DMAC if ARM64 help This provides support for the SDHI SD/SDIO controller found in Renesas SuperH, ARM and ARM64 based SoCs +config MMC_SDHI_SYS_DMAC + tristate "DMA for SDHI SD/SDIO controllers using SYS-DMAC" + depends on MMC_SDHI + help + This provides DMA support for SDHI SD/SDIO controllers + using SYS-DMAC via DMA Engine. This supports the controllers + found in SuperH and Renesas ARM based SoCs. + +config MMC_SDHI_INTERNAL_DMAC + tristate "DMA for SDHI SD/SDIO controllers using on-chip bus mastering" + depends on ARM64 || COMPILE_TEST + depends on MMC_SDHI + help + This provides DMA support for SDHI SD/SDIO controllers + using on-chip bus mastering. This supports the controllers + found in arm64 based SoCs. + config MMC_CB710 tristate "ENE CB710 MMC/SD Interface support" depends on PCI diff --git a/drivers/mmc/host/Makefile b/drivers/mmc/host/Makefile index c3c85c95944b..f10bb0cc5b67 100644 --- a/drivers/mmc/host/Makefile +++ b/drivers/mmc/host/Makefile @@ -36,7 +36,13 @@ obj-$(CONFIG_MMC_S3C) += s3cmci.o obj-$(CONFIG_MMC_SDRICOH_CS) += sdricoh_cs.o obj-$(CONFIG_MMC_TMIO) += tmio_mmc.o obj-$(CONFIG_MMC_TMIO_CORE) += tmio_mmc_core.o -obj-$(CONFIG_MMC_SDHI) += renesas_sdhi_core.o renesas_sdhi_sys_dmac.o +obj-$(CONFIG_MMC_SDHI) += renesas_sdhi_core.o +ifeq ($(subst m,y,$(CONFIG_MMC_SDHI_SYS_DMAC)),y) +obj-$(CONFIG_MMC_SDHI) += renesas_sdhi_sys_dmac.o +endif +ifeq ($(subst m,y,$(CONFIG_MMC_SDHI_INTERNAL_DMAC)),y) +obj-$(CONFIG_MMC_SDHI) += renesas_sdhi_internal_dmac.o +endif obj-$(CONFIG_MMC_CB710) += cb710-mmc.o obj-$(CONFIG_MMC_VIA_SDMMC) += via-sdmmc.o obj-$(CONFIG_SDH_BFIN) += bfin_sdh.o diff --git a/drivers/mmc/host/renesas_sdhi_internal_dmac.c b/drivers/mmc/host/renesas_sdhi_internal_dmac.c new file mode 100644 index 000000000000..d41ff352b735 --- /dev/null +++ b/drivers/mmc/host/renesas_sdhi_internal_dmac.c @@ -0,0 +1,272 @@ +/* + * DMA support for Internal DMAC with SDHI SD/SDIO controller + * + * Copyright (C) 2016-17 Renesas Electronics Corporation + * Copyright (C) 2016-17 Horms Solutions, Simon Horman + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "renesas_sdhi.h" +#include "tmio_mmc.h" + +#define DM_CM_DTRAN_MODE 0x820 +#define DM_CM_DTRAN_CTRL 0x828 +#define DM_CM_RST 0x830 +#define DM_CM_INFO1 0x840 +#define DM_CM_INFO1_MASK 0x848 +#define DM_CM_INFO2 0x850 +#define DM_CM_INFO2_MASK 0x858 +#define DM_DTRAN_ADDR 0x880 + +/* DM_CM_DTRAN_MODE */ +#define DTRAN_MODE_CH_NUM_CH0 0 /* "downstream" = for write commands */ +#define DTRAN_MODE_CH_NUM_CH1 BIT(16) /* "uptream" = for read commands */ +#define DTRAN_MODE_BUS_WID_TH (BIT(5) | BIT(4)) +#define DTRAN_MODE_ADDR_MODE BIT(0) /* 1 = Increment address */ + +/* DM_CM_DTRAN_CTRL */ +#define DTRAN_CTRL_DM_START BIT(0) + +/* DM_CM_RST */ +#define RST_DTRANRST1 BIT(9) +#define RST_DTRANRST0 BIT(8) +#define RST_RESERVED_BITS GENMASK_ULL(32, 0) + +/* DM_CM_INFO1 and DM_CM_INFO1_MASK */ +#define INFO1_CLEAR 0 +#define INFO1_DTRANEND1 BIT(17) +#define INFO1_DTRANEND0 BIT(16) + +/* DM_CM_INFO2 and DM_CM_INFO2_MASK */ +#define INFO2_DTRANERR1 BIT(17) +#define INFO2_DTRANERR0 BIT(16) + +/* + * Specification of this driver: + * - host->chan_{rx,tx} will be used as a flag of enabling/disabling the dma + * - Since this SDHI DMAC register set has 16 but 32-bit width, we + * need a custom accessor. + */ + +/* Definitions for sampling clocks */ +static struct renesas_sdhi_scc rcar_gen3_scc_taps[] = { + { + .clk_rate = 0, + .tap = 0x00000300, + }, +}; + +static const struct renesas_sdhi_of_data of_rcar_gen3_compatible = { + .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_WRPROTECT_DISABLE | + TMIO_MMC_CLK_ACTUAL | TMIO_MMC_MIN_RCAR2, + .capabilities = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ | + MMC_CAP_CMD23, + .bus_shift = 2, + .scc_offset = 0x1000, + .taps = rcar_gen3_scc_taps, + .taps_num = ARRAY_SIZE(rcar_gen3_scc_taps), + /* Gen3 SDHI DMAC can handle 0xffffffff blk count, but seg = 1 */ + .max_blk_count = 0xffffffff, + .max_segs = 1, +}; + +static const struct of_device_id renesas_sdhi_internal_dmac_of_match[] = { + {}, +}; +MODULE_DEVICE_TABLE(of, renesas_sdhi_internal_dmac_of_match); + +static void +renesas_sdhi_internal_dmac_dm_write(struct tmio_mmc_host *host, + int addr, u64 val) +{ + writeq(val, host->ctl + addr); +} + +static void +renesas_sdhi_internal_dmac_enable_dma(struct tmio_mmc_host *host, bool enable) +{ + if (!host->chan_tx || !host->chan_rx) + return; + + if (!enable) + renesas_sdhi_internal_dmac_dm_write(host, DM_CM_INFO1, + INFO1_CLEAR); + + if (host->dma->enable) + host->dma->enable(host, enable); +} + +static void +renesas_sdhi_internal_dmac_abort_dma(struct tmio_mmc_host *host) { + u64 val = RST_DTRANRST1 | RST_DTRANRST0; + + renesas_sdhi_internal_dmac_enable_dma(host, false); + + renesas_sdhi_internal_dmac_dm_write(host, DM_CM_RST, + RST_RESERVED_BITS & ~val); + renesas_sdhi_internal_dmac_dm_write(host, DM_CM_RST, + RST_RESERVED_BITS | val); + + renesas_sdhi_internal_dmac_enable_dma(host, true); +} + +static void +renesas_sdhi_internal_dmac_dataend_dma(struct tmio_mmc_host *host) { + tasklet_schedule(&host->dma_complete); +} + +static void +renesas_sdhi_internal_dmac_start_dma(struct tmio_mmc_host *host, + struct mmc_data *data) +{ + struct scatterlist *sg = host->sg_ptr; + u32 dtran_mode = DTRAN_MODE_BUS_WID_TH | DTRAN_MODE_ADDR_MODE; + enum dma_data_direction dir; + int ret; + u32 irq_mask; + + /* This DMAC cannot handle if sg_len is not 1 */ + WARN_ON(host->sg_len > 1); + + /* This DMAC cannot handle if buffer is not 8-bytes alignment */ + if (!IS_ALIGNED(sg->offset, 8)) + goto force_pio; + + if (data->flags & MMC_DATA_READ) { + dtran_mode |= DTRAN_MODE_CH_NUM_CH1; + dir = DMA_FROM_DEVICE; + irq_mask = TMIO_STAT_RXRDY; + } else { + dtran_mode |= DTRAN_MODE_CH_NUM_CH0; + dir = DMA_TO_DEVICE; + irq_mask = TMIO_STAT_TXRQ; + } + + ret = dma_map_sg(&host->pdev->dev, sg, host->sg_len, dir); + if (ret == 0) + goto force_pio; + + renesas_sdhi_internal_dmac_enable_dma(host, true); + + /* disable PIO irqs to avoid "PIO IRQ in DMA mode!" */ + tmio_mmc_disable_mmc_irqs(host, irq_mask); + + /* set dma parameters */ + renesas_sdhi_internal_dmac_dm_write(host, DM_CM_DTRAN_MODE, + dtran_mode); + renesas_sdhi_internal_dmac_dm_write(host, DM_DTRAN_ADDR, + sg->dma_address); + + return; + +force_pio: + host->force_pio = true; + renesas_sdhi_internal_dmac_enable_dma(host, false); +} + +static void renesas_sdhi_internal_dmac_issue_tasklet_fn(unsigned long arg) +{ + struct tmio_mmc_host *host = (struct tmio_mmc_host *)arg; + + tmio_mmc_enable_mmc_irqs(host, TMIO_STAT_DATAEND); + + /* start the DMAC */ + renesas_sdhi_internal_dmac_dm_write(host, DM_CM_DTRAN_CTRL, + DTRAN_CTRL_DM_START); +} + +static void renesas_sdhi_internal_dmac_complete_tasklet_fn(unsigned long arg) +{ + struct tmio_mmc_host *host = (struct tmio_mmc_host *)arg; + enum dma_data_direction dir; + + spin_lock_irq(&host->lock); + + if (!host->data) + goto out; + + if (host->data->flags & MMC_DATA_READ) + dir = DMA_FROM_DEVICE; + else + dir = DMA_TO_DEVICE; + + renesas_sdhi_internal_dmac_enable_dma(host, false); + dma_unmap_sg(&host->pdev->dev, host->sg_ptr, host->sg_len, dir); + + tmio_mmc_do_data_irq(host); +out: + spin_unlock_irq(&host->lock); +} + +static void +renesas_sdhi_internal_dmac_request_dma(struct tmio_mmc_host *host, + struct tmio_mmc_data *pdata) +{ + /* Each value is set to non-zero to assume "enabling" each DMA */ + host->chan_rx = host->chan_tx = (void *)0xdeadbeaf; + + tasklet_init(&host->dma_complete, + renesas_sdhi_internal_dmac_complete_tasklet_fn, + (unsigned long)host); + tasklet_init(&host->dma_issue, + renesas_sdhi_internal_dmac_issue_tasklet_fn, + (unsigned long)host); +} + +static void +renesas_sdhi_internal_dmac_release_dma(struct tmio_mmc_host *host) +{ + /* Each value is set to zero to assume "disabling" each DMA */ + host->chan_rx = host->chan_tx = NULL; +} + +static const struct tmio_mmc_dma_ops renesas_sdhi_internal_dmac_dma_ops = { + .start = renesas_sdhi_internal_dmac_start_dma, + .enable = renesas_sdhi_internal_dmac_enable_dma, + .request = renesas_sdhi_internal_dmac_request_dma, + .release = renesas_sdhi_internal_dmac_release_dma, + .abort = renesas_sdhi_internal_dmac_abort_dma, + .dataend = renesas_sdhi_internal_dmac_dataend_dma, +}; + +static int renesas_sdhi_internal_dmac_probe(struct platform_device *pdev) +{ + return renesas_sdhi_probe(pdev, &renesas_sdhi_internal_dmac_dma_ops); +} + +static const struct dev_pm_ops renesas_sdhi_internal_dmac_dev_pm_ops = { + SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, + pm_runtime_force_resume) + SET_RUNTIME_PM_OPS(tmio_mmc_host_runtime_suspend, + tmio_mmc_host_runtime_resume, + NULL) +}; + +static struct platform_driver renesas_internal_dmac_sdhi_driver = { + .driver = { + .name = "renesas_sdhi_internal_dmac", + .pm = &renesas_sdhi_internal_dmac_dev_pm_ops, + .of_match_table = renesas_sdhi_internal_dmac_of_match, + }, + .probe = renesas_sdhi_internal_dmac_probe, + .remove = renesas_sdhi_remove, +}; + +module_platform_driver(renesas_internal_dmac_sdhi_driver); + +MODULE_DESCRIPTION("Renesas SDHI driver for internal DMAC"); +MODULE_AUTHOR("Yoshihiro Shimoda"); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/mmc/host/renesas_sdhi_sys_dmac.c b/drivers/mmc/host/renesas_sdhi_sys_dmac.c index ab730d514568..8da1bc828e1a 100644 --- a/drivers/mmc/host/renesas_sdhi_sys_dmac.c +++ b/drivers/mmc/host/renesas_sdhi_sys_dmac.c @@ -1,5 +1,5 @@ /* - * DMA function for TMIO MMC implementations + * DMA support use of SYS DMAC with SDHI SD/SDIO controller * * Copyright (C) 2010-2011 Guennadi Liakhovetski * diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index 17ea4b6e6489..16a306436191 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -150,6 +150,7 @@ struct tmio_mmc_host { struct dma_chan *chan_rx; struct dma_chan *chan_tx; struct completion dma_dataend; + struct tasklet_struct dma_complete; struct tasklet_struct dma_issue; struct scatterlist bounce_sg; u8 *bounce_buf; From d896960159bf43d13d2cad35dec14359015a638b Mon Sep 17 00:00:00 2001 From: Masahiro Yamada Date: Wed, 27 Nov 2019 13:46:52 +0000 Subject: [PATCH 0798/1149] mmc: renesas_sdhi: consolidate DMAC CONFIG options commit c813e10a6bbad9ef56bc115c64d48c5a7d0a7dd5 upstream. The description in the Makefile is odd. Fix the CONFIG selection in a cleaner way. Signed-off-by: Masahiro Yamada Acked-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/Kconfig | 4 ++-- drivers/mmc/host/Makefile | 8 ++------ 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig index 54d98ee8bf54..7b947cec889f 100644 --- a/drivers/mmc/host/Kconfig +++ b/drivers/mmc/host/Kconfig @@ -563,8 +563,6 @@ config MMC_SDHI depends on SUPERH || ARM depends on SUPERH || ARCH_SHMOBILE || COMPILE_TEST select MMC_TMIO_CORE - select MMC_SDHI_SYS_DMAC if (SUPERH || ARM) - select MMC_SDHI_INTERNAL_DMAC if ARM64 help This provides support for the SDHI SD/SDIO controller found in Renesas SuperH, ARM and ARM64 based SoCs @@ -572,6 +570,7 @@ config MMC_SDHI config MMC_SDHI_SYS_DMAC tristate "DMA for SDHI SD/SDIO controllers using SYS-DMAC" depends on MMC_SDHI + default MMC_SDHI if (SUPERH || ARM) help This provides DMA support for SDHI SD/SDIO controllers using SYS-DMAC via DMA Engine. This supports the controllers @@ -581,6 +580,7 @@ config MMC_SDHI_INTERNAL_DMAC tristate "DMA for SDHI SD/SDIO controllers using on-chip bus mastering" depends on ARM64 || COMPILE_TEST depends on MMC_SDHI + default MMC_SDHI if ARM64 help This provides DMA support for SDHI SD/SDIO controllers using on-chip bus mastering. This supports the controllers diff --git a/drivers/mmc/host/Makefile b/drivers/mmc/host/Makefile index f10bb0cc5b67..5de0c726be06 100644 --- a/drivers/mmc/host/Makefile +++ b/drivers/mmc/host/Makefile @@ -37,12 +37,8 @@ obj-$(CONFIG_MMC_SDRICOH_CS) += sdricoh_cs.o obj-$(CONFIG_MMC_TMIO) += tmio_mmc.o obj-$(CONFIG_MMC_TMIO_CORE) += tmio_mmc_core.o obj-$(CONFIG_MMC_SDHI) += renesas_sdhi_core.o -ifeq ($(subst m,y,$(CONFIG_MMC_SDHI_SYS_DMAC)),y) -obj-$(CONFIG_MMC_SDHI) += renesas_sdhi_sys_dmac.o -endif -ifeq ($(subst m,y,$(CONFIG_MMC_SDHI_INTERNAL_DMAC)),y) -obj-$(CONFIG_MMC_SDHI) += renesas_sdhi_internal_dmac.o -endif +obj-$(CONFIG_MMC_SDHI_SYS_DMAC) += renesas_sdhi_sys_dmac.o +obj-$(CONFIG_MMC_SDHI_INTERNAL_DMAC) += renesas_sdhi_internal_dmac.o obj-$(CONFIG_MMC_CB710) += cb710-mmc.o obj-$(CONFIG_MMC_VIA_SDMMC) += via-sdmmc.o obj-$(CONFIG_SDH_BFIN) += bfin_sdh.o From a88fab8d15222793711eb3b8ab9dff58f91979d3 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Wed, 27 Nov 2019 13:46:53 +0000 Subject: [PATCH 0799/1149] dt-bindings: mmc: renesas_sdhi: add R-Car Gen[123] fallback compatibility strings commit 54839d012d5f98cde2fa102fdcd22e1da661d138 upstream. Add fallback compatibility strings for R-Car Gen 1, 2 and 3. In the case of Renesas R-Car hardware we know that there are generations of SoCs, f.e. Gen 1 and 2. But beyond that its not clear what the relationship between IP blocks might be. For example, I believe that r8a7790 is older than r8a7791 but that doesn't imply that the latter is a descendant of the former or vice versa. We can, however, by examining the documentation and behaviour of the hardware at run-time observe that the current driver implementation appears to be compatible with the IP blocks on SoCs within a given generation. For the above reasons and convenience when enabling new SoCs a per-generation fallback compatibility string scheme is being adopted for drivers for Renesas SoCs. Signed-off-by: Simon Horman Reviewed-by: Geert Uytterhoeven Acked-by: Wolfram Sang Signed-off-by: Ulf Hansson Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/mmc/tmio_mmc.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Documentation/devicetree/bindings/mmc/tmio_mmc.txt b/Documentation/devicetree/bindings/mmc/tmio_mmc.txt index 498b7440a8a2..72e8185f8c90 100644 --- a/Documentation/devicetree/bindings/mmc/tmio_mmc.txt +++ b/Documentation/devicetree/bindings/mmc/tmio_mmc.txt @@ -25,6 +25,13 @@ Required properties: "renesas,sdhi-r8a7792" - SDHI IP on R8A7792 SoC "renesas,sdhi-r8a7793" - SDHI IP on R8A7793 SoC "renesas,sdhi-r8a7794" - SDHI IP on R8A7794 SoC + "renesas,rcar-gen1-sdhi" - a generic R-Car Gen1 SDHI controller + "renesas,rcar-gen2-sdhi" - a generic R-Car Gen2 or RZ/G1 + SDHI controller + + When compatible with the generic version, nodes must list + the SoC-specific version corresponding to the platform + first followed by the generic version. Optional properties: - toshiba,mmc-wrprotect-disable: write-protect detection is unavailable From 8dfaad57d65b4b72203e32d9320053749f6a8685 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Wed, 27 Nov 2019 13:46:54 +0000 Subject: [PATCH 0800/1149] mmc: renesas_sdhi: implement R-Car Gen[123] fallback compatibility strings commit d6dc425ae595e14026beac3720e43edd70215dc8 upstream. Implement fallback compatibility strings for R-Car Gen 1, 2 and 3. In the case of Renesas R-Car hardware we know that there are generations of SoCs, f.e. Gen 1 and 2. But beyond that its not clear what the relationship between IP blocks might be. For example, I believe that r8a7790 is older than r8a7791 but that doesn't imply that the latter is a descendant of the former or vice versa. We can, however, by examining the documentation and behaviour of the hardware at run-time observe that the current driver implementation appears to be compatible with the IP blocks on SoCs within a given generation. For the above reasons and convenience when enabling new SoCs a per-generation fallback compatibility string scheme is being adopted for drivers for Renesas SoCs. Also, improve readability by listing the shmobile fallback compatibility string after the more-specific compatibility strings they provide a fallback for. Signed-off-by: Simon Horman Reviewed-by: Geert Uytterhoeven Acked-by: Wolfram Sang Signed-off-by: Ulf Hansson [biju: Removed R-Car Gen3 devices] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/renesas_sdhi_sys_dmac.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/host/renesas_sdhi_sys_dmac.c b/drivers/mmc/host/renesas_sdhi_sys_dmac.c index 8da1bc828e1a..45d942937d2e 100644 --- a/drivers/mmc/host/renesas_sdhi_sys_dmac.c +++ b/drivers/mmc/host/renesas_sdhi_sys_dmac.c @@ -75,7 +75,6 @@ static const struct renesas_sdhi_of_data of_rcar_gen3_compatible = { }; static const struct of_device_id renesas_sdhi_sys_dmac_of_match[] = { - { .compatible = "renesas,sdhi-shmobile" }, { .compatible = "renesas,sdhi-sh73a0", .data = &of_default_cfg, }, { .compatible = "renesas,sdhi-r8a73a4", .data = &of_default_cfg, }, { .compatible = "renesas,sdhi-r8a7740", .data = &of_default_cfg, }, @@ -89,6 +88,9 @@ static const struct of_device_id renesas_sdhi_sys_dmac_of_match[] = { { .compatible = "renesas,sdhi-r8a7792", .data = &of_rcar_gen2_compatible, }, { .compatible = "renesas,sdhi-r8a7793", .data = &of_rcar_gen2_compatible, }, { .compatible = "renesas,sdhi-r8a7794", .data = &of_rcar_gen2_compatible, }, + { .compatible = "renesas,rcar-gen1-sdhi", .data = &of_rcar_gen1_compatible, }, + { .compatible = "renesas,rcar-gen2-sdhi", .data = &of_rcar_gen2_compatible, }, + { .compatible = "renesas,sdhi-shmobile" }, {}, }; MODULE_DEVICE_TABLE(of, renesas_sdhi_sys_dmac_of_match); From e2867c25c96ec16239518ce8f6e8d7b46c2b0d02 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Wed, 27 Nov 2019 13:46:56 +0000 Subject: [PATCH 0801/1149] mmc: renesas_sdhi: Add r8a77470 SDHI1 support commit 60ab43ba6b6e0f888aab3ce0f84a8aaf15d15079 upstream. The RZ/G1C (a.k.a. R8A77470) comes with three SDHI interfaces, SDHI0 and SDHI2 are compatible with the R-Car Gen2 SDHIs, SDHI1 is compatible with R-Car Gen3 SDHIs and it can be used as eMMC as well. This patch adds driver compatibility, and makes sure both drivers get compiled for the R8A77470. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Ulf Hansson [biju: Removed reset and updated clk and power domain properties] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/mmc/host/Kconfig | 4 ++-- drivers/mmc/host/renesas_sdhi_internal_dmac.c | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig index 7b947cec889f..359ec493db55 100644 --- a/drivers/mmc/host/Kconfig +++ b/drivers/mmc/host/Kconfig @@ -578,9 +578,9 @@ config MMC_SDHI_SYS_DMAC config MMC_SDHI_INTERNAL_DMAC tristate "DMA for SDHI SD/SDIO controllers using on-chip bus mastering" - depends on ARM64 || COMPILE_TEST + depends on ARM64 || ARCH_R8A77470 || COMPILE_TEST depends on MMC_SDHI - default MMC_SDHI if ARM64 + default MMC_SDHI if (ARM64 || ARCH_R8A77470) help This provides DMA support for SDHI SD/SDIO controllers using on-chip bus mastering. This supports the controllers diff --git a/drivers/mmc/host/renesas_sdhi_internal_dmac.c b/drivers/mmc/host/renesas_sdhi_internal_dmac.c index d41ff352b735..8056325ef6b5 100644 --- a/drivers/mmc/host/renesas_sdhi_internal_dmac.c +++ b/drivers/mmc/host/renesas_sdhi_internal_dmac.c @@ -84,6 +84,7 @@ static const struct renesas_sdhi_of_data of_rcar_gen3_compatible = { }; static const struct of_device_id renesas_sdhi_internal_dmac_of_match[] = { + { .compatible = "renesas,sdhi-mmc-r8a77470", .data = &of_rcar_gen3_compatible, }, {}, }; MODULE_DEVICE_TABLE(of, renesas_sdhi_internal_dmac_of_match); From 16fc034ec6228ac32f0db5d2ccd366fc3bcbeab4 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Wed, 27 Nov 2019 13:46:57 +0000 Subject: [PATCH 0802/1149] ARM: dts: r8a77470: Add SDHI2 support commit f068cc816015f8a6af494b584978aa7df96d80fe upstream. Add SoC specific device tree definitions for the SDHI2 interface. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Acked-by: Wolfram Sang Signed-off-by: Simon Horman [biju: Removed reset and updated clk and power domain properties] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a77470.dtsi | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi index 9774ab03f52f..603a57c10764 100644 --- a/arch/arm/boot/dts/r8a77470.dtsi +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -664,6 +664,20 @@ status = "disabled"; }; + sdhi2: sd@ee160000 { + compatible = "renesas,sdhi-r8a77470", + "renesas,rcar-gen2-sdhi"; + reg = <0 0xee160000 0 0x328>; + interrupts = ; + clocks = <&mstp3_clks R8A77470_CLK_SDHI2>; + dmas = <&dmac0 0xd3>, <&dmac0 0xd4>, + <&dmac1 0xd3>, <&dmac1 0xd4>; + dma-names = "tx", "rx", "tx", "rx"; + max-frequency = <97500000>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + gic: interrupt-controller@f1001000 { compatible = "arm,gic-400"; #interrupt-cells = <3>; From dde56f3a368c3e360d46bc65b8c285152499a82c Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Wed, 27 Nov 2019 13:46:58 +0000 Subject: [PATCH 0803/1149] ARM: dts: r8a77470: Add SDHI0 support commit 15aa5a95e820e8183aa34535131e7c97789b8504 upstream. RZ/G1C comes with two different types of IP for the SDHI interfaces, SDHI0 and SDHI2 share the same IP type, and such an IP is also compatible with the one found in R-Car Gen2. SDHI1 IP on the other hand is compatible with R-Car Gen3 with internal DMA. This patch completes the SDHI support of the R-Car Gen2 compatible IPs, including fixing the max-frequency definition of SDHI2, as it turns out there is a bug in Section 1.3.9 of the RZ/G1C Hardware User's Manual (Rev. 1.00 Oct. 2017). Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Simon Horman [biju: Removed reset and updated clk and power domain properties] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a77470.dtsi | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi index 603a57c10764..ca184f48887d 100644 --- a/arch/arm/boot/dts/r8a77470.dtsi +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -664,6 +664,20 @@ status = "disabled"; }; + sdhi0: sd@ee100000 { + compatible = "renesas,sdhi-r8a77470", + "renesas,rcar-gen2-sdhi"; + reg = <0 0xee100000 0 0x328>; + interrupts = ; + clocks = <&mstp3_clks R8A77470_CLK_SDHI0>; + dmas = <&dmac0 0xcd>, <&dmac0 0xce>, + <&dmac1 0xcd>, <&dmac1 0xce>; + dma-names = "tx", "rx", "tx", "rx"; + max-frequency = <156000000>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + sdhi2: sd@ee160000 { compatible = "renesas,sdhi-r8a77470", "renesas,rcar-gen2-sdhi"; @@ -673,7 +687,7 @@ dmas = <&dmac0 0xd3>, <&dmac0 0xd4>, <&dmac1 0xd3>, <&dmac1 0xd4>; dma-names = "tx", "rx", "tx", "rx"; - max-frequency = <97500000>; + max-frequency = <78000000>; power-domains = <&cpg_clocks>; status = "disabled"; }; From b4649e381cea46bb4a08546c466881078d54050f Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Wed, 27 Nov 2019 13:46:59 +0000 Subject: [PATCH 0804/1149] ARM: dts: r8a77470: Add SDHI1 support commit 0485da788028ecd525291974c8efe2d072607476 upstream. Althought interface SDHI1 found on the RZ/G1C SoC (a.k.a. r8a77470) is compatible with the R-Car Gen3 ones, its OF compatibility is restricted to the SoC specific compatible string to avoid confusion, as from a more generic perspective the RZ/G1C is sharing the most similarities with the R-Car Gen2 family of SoCs, and there is a combination of R-Car Gen2 compatible SDHI IPs and R-Car Gen3 compatible SDHI IP on this specific chip. This patch adds the SoC specific part of SDHI1 support, and since SDHI1 comes with internal DMA, its DT node looks fairly different from SDHI0 and SDHI2. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Simon Horman [biju: Removed reset and updated clk and power domain properties] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a77470.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi index ca184f48887d..dc345754ce61 100644 --- a/arch/arm/boot/dts/r8a77470.dtsi +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -678,6 +678,16 @@ status = "disabled"; }; + sdhi1: sd@ee300000 { + compatible = "renesas,sdhi-mmc-r8a77470"; + reg = <0 0xee300000 0 0x2000>; + interrupts = ; + clocks = <&mstp3_clks R8A77470_CLK_SDHI1>; + max-frequency = <156000000>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + sdhi2: sd@ee160000 { compatible = "renesas,sdhi-r8a77470", "renesas,rcar-gen2-sdhi"; From dd2f947835540223b221338a93542e733d9fdaad Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Wed, 27 Nov 2019 13:47:00 +0000 Subject: [PATCH 0805/1149] ARM: dts: iwg23s-sbc: Add uSD and eMMC support commit 9eb36b945b5c21d57c02a26cc629dd9484ced9aa upstream. Add uSD card and eMMC support to the iwg23s single board computer powered by the RZ/G1C SoC (a.k.a. r8a77470). Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Signed-off-by: Simon Horman Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts | 75 +++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts index 8c9c312d71fe..3490f6f7160a 100644 --- a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts +++ b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts @@ -6,6 +6,7 @@ */ /dts-v1/; +#include #include "r8a77470.dtsi" / { model = "iWave iW-RainboW-G23S single board computer based on RZ/G1C"; @@ -25,6 +26,37 @@ device_type = "memory"; reg = <0 0x40000000 0 0x20000000>; }; + + reg_1p8v: reg-1p8v { + compatible = "regulator-fixed"; + regulator-name = "fixed-1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-boot-on; + regulator-always-on; + }; + + reg_3p3v: reg-3p3v { + compatible = "regulator-fixed"; + regulator-name = "fixed-3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + + vccq_sdhi2: regulator-vccq-sdhi2 { + compatible = "regulator-gpio"; + + regulator-name = "SDHI2 VccQ"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + + gpios = <&gpio2 24 GPIO_ACTIVE_HIGH>; + gpios-states = <1>; + states = <3300000 1 + 1800000 0>; + }; }; &avb { @@ -88,6 +120,12 @@ function = "i2c3"; }; + mmc_pins_uhs: mmc_uhs { + groups = "mmc_data8", "mmc_ctrl"; + function = "mmc"; + power-source = <1800>; + }; + qspi0_pins: qspi0 { groups = "qspi0_ctrl", "qspi0_data2"; function = "qspi0"; @@ -98,6 +136,18 @@ function = "scif1"; }; + sdhi2_pins: sd2 { + groups = "sdhi2_data4", "sdhi2_ctrl"; + function = "sdhi2"; + power-source = <3300>; + }; + + sdhi2_pins_uhs: sd2_uhs { + groups = "sdhi2_data4", "sdhi2_ctrl"; + function = "sdhi2"; + power-source = <1800>; + }; + usb0_pins: usb0 { groups = "usb0"; function = "usb0"; @@ -142,6 +192,31 @@ status = "okay"; }; +&sdhi1 { + pinctrl-0 = <&mmc_pins_uhs>; + pinctrl-names = "state_uhs"; + + vmmc-supply = <®_3p3v>; + vqmmc-supply = <®_1p8v>; + bus-width = <8>; + mmc-hs200-1_8v; + non-removable; + fixed-emmc-driver-type = <1>; + status = "okay"; +}; + +&sdhi2 { + pinctrl-0 = <&sdhi2_pins>; + pinctrl-1 = <&sdhi2_pins_uhs>; + pinctrl-names = "default", "state_uhs"; + + vmmc-supply = <®_3p3v>; + vqmmc-supply = <&vccq_sdhi2>; + bus-width = <4>; + cd-gpios = <&gpio4 20 GPIO_ACTIVE_LOW>; + status = "okay"; +}; + &usb2_phy0 { status = "okay"; }; From 9ea0fbe980922ab03294273517139f2acc743a78 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 28 Nov 2019 08:15:34 +0000 Subject: [PATCH 0806/1149] dt-bindings: mmc: renesas_sdhi: Add r8a77470 support commit be6f8db406a49511a8d213f9443ae79fe5b086c3 upstream. The RZ/G1C (a.k.a. R8A77470) comes with three SDHI interfaces, SDHI0 and SDHI2 are compatible with R-Car Gen2 SDHIs, and SDHI1 is compatible with R-Car Gen3 SDHIs, as it comes with an internal DMAC, therefore SDHI1 is fully compatible with driver renesas_sdhi_internal_dmac driver. As a result, the compatible strings for the R8A77470 SDHI interfaces are a little bit special. Document SDHI support for the RZ/G1C SoC. Signed-off-by: Fabrizio Castro Reviewed-by: Biju Das Reviewed-by: Geert Uytterhoeven Reviewed-by: Simon Horman Reviewed-by: Rob Herring Signed-off-by: Ulf Hansson [biju: Removed R-Car Gen3 devices] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/mmc/tmio_mmc.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/mmc/tmio_mmc.txt b/Documentation/devicetree/bindings/mmc/tmio_mmc.txt index 72e8185f8c90..94bb00b0f4ef 100644 --- a/Documentation/devicetree/bindings/mmc/tmio_mmc.txt +++ b/Documentation/devicetree/bindings/mmc/tmio_mmc.txt @@ -18,6 +18,8 @@ Required properties: "renesas,sdhi-r8a7743" - SDHI IP on R8A7743 SoC "renesas,sdhi-r8a7744" - SDHI IP on R8A7744 SoC "renesas,sdhi-r8a7745" - SDHI IP on R8A7745 SoC + "renesas,sdhi-r8a77470" - SDHI IP on R8A77470 SoC + "renesas,sdhi-mmc-r8a77470" - SDHI/MMC IP on R8A77470 SoC "renesas,sdhi-r8a7778" - SDHI IP on R8A7778 SoC "renesas,sdhi-r8a7779" - SDHI IP on R8A7779 SoC "renesas,sdhi-r8a7790" - SDHI IP on R8A7790 SoC @@ -26,8 +28,8 @@ Required properties: "renesas,sdhi-r8a7793" - SDHI IP on R8A7793 SoC "renesas,sdhi-r8a7794" - SDHI IP on R8A7794 SoC "renesas,rcar-gen1-sdhi" - a generic R-Car Gen1 SDHI controller - "renesas,rcar-gen2-sdhi" - a generic R-Car Gen2 or RZ/G1 - SDHI controller + "renesas,rcar-gen2-sdhi" - a generic R-Car Gen2 and RZ/G1 SDHI + (not SDHI/MMC) controller When compatible with the generic version, nodes must list the SoC-specific version corresponding to the platform From 9ed37128e6ebbbe426f50e35b25fb98fad90aaf8 Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Thu, 5 Dec 2019 13:39:37 +0000 Subject: [PATCH 0807/1149] gpiolib: Fix bad of_node pointer Not every driver initialises of_node from struct gpio_chip, therefore the replacement of of_node from struct gpio_chip with dev->of_node in the below commit won't work on every platform: baff4777cdb8 ("gpiolib: Support 'gpio-reserved-ranges' property") The final result is that on some platforms the kernel will try to dereference a NULL pointer, with obvious consequences. This patch makes sure the pointer gets initialised before its first usage. NOTE: gpiochip_add_data()'s fixes is based on 6ff0497402ef ("gpiolib: Fix of_node inconsistency"). Fixes: baff4777cdb8 ("gpiolib: Support 'gpio-reserved-ranges' property") Reported-by: Johnson CH Chen Signed-off-by: Fabrizio Castro Signed-off-by: Nobuhiro Iwamatsu --- drivers/gpio/gpiolib-of.c | 2 +- drivers/gpio/gpiolib.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c index ec642bf1d976..6fa181842651 100644 --- a/drivers/gpio/gpiolib-of.c +++ b/drivers/gpio/gpiolib-of.c @@ -338,7 +338,7 @@ static void of_gpiochip_init_valid_mask(struct gpio_chip *chip) { int len, i; u32 start, count; - struct device_node *np = chip->dev->of_node; + struct device_node *np = chip->of_node; len = of_property_count_u32_elems(np, "gpio-reserved-ranges"); if (len < 0 || len % 2 != 0) diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index d72218fcaeeb..516498e2e89e 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -296,7 +296,7 @@ static int gpiochip_init_valid_mask(struct gpio_chip *gpiochip) { #ifdef CONFIG_OF_GPIO int size; - struct device_node *np = gpiochip->dev->of_node; + struct device_node *np = gpiochip->of_node; size = of_property_count_u32_elems(np, "gpio-reserved-ranges"); if (size > 0 && size % 2 == 0) @@ -360,6 +360,11 @@ int gpiochip_add_data(struct gpio_chip *chip, void *data) chip->data = data; +#ifdef CONFIG_OF_GPIO + if ((!chip->of_node) && (chip->dev)) + chip->of_node = chip->dev->of_node; +#endif + spin_lock_irqsave(&gpio_lock, flags); if (base < 0) { From ab6649b47c037fa60d363352949b54be5aba7403 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 6 Dec 2019 12:12:17 +0000 Subject: [PATCH 0808/1149] dt-bindings: can: rcar_can: Add r8a7744 support commit 700992d361c7912923d1e570681eed65b54a6d9b upstream. Document RZ/G1N (r8a7744) SoC specific bindings. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Reviewed-by: Simon Horman Signed-off-by: Rob Herring Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/net/can/rcar_can.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/net/can/rcar_can.txt b/Documentation/devicetree/bindings/net/can/rcar_can.txt index 6f81b1fed909..fbad4d514a41 100644 --- a/Documentation/devicetree/bindings/net/can/rcar_can.txt +++ b/Documentation/devicetree/bindings/net/can/rcar_can.txt @@ -3,6 +3,7 @@ Renesas R-Car CAN controller Device Tree Bindings Required properties: - compatible: "renesas,can-r8a7743" if CAN controller is a part of R8A7743 SoC. + "renesas,can-r8a7744" if CAN controller is a part of R8A7744 SoC. "renesas,can-r8a7745" if CAN controller is a part of R8A7745 SoC. "renesas,can-r8a7778" if CAN controller is a part of R8A7778 SoC. "renesas,can-r8a7779" if CAN controller is a part of R8A7779 SoC. From ccad5ddf8d85107b4f9211c4462f490228f3a416 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 6 Dec 2019 12:12:18 +0000 Subject: [PATCH 0809/1149] ARM: dts: r8a7744: Add CAN support commit 56f1896093043c63c6ecd8a53080aa89d6b41070 upstream. Add the definitions for can0 and can1 to the r8a7744 SoC dtsi. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman [biju: Removed reset and updated clk and power domain properties] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7744.dtsi | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index c73269cc8cf7..4538689d1f95 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -819,13 +819,29 @@ }; can0: can@e6e80000 { + compatible = "renesas,can-r8a7744", + "renesas,rcar-gen2-can"; reg = <0 0xe6e80000 0 0x1000>; - /* placeholder */ + interrupts = ; + clocks = <&mstp9_clks R8A7744_CLK_RCAN0>, + <&cpg_clocks R8A7744_CLK_RCAN>, + <&can_clk>; + clock-names = "clkp1", "clkp2", "can_clk"; + power-domains = <&cpg_clocks>; + status = "disabled"; }; can1: can@e6e88000 { + compatible = "renesas,can-r8a7744", + "renesas,rcar-gen2-can"; reg = <0 0xe6e88000 0 0x1000>; - /* placeholder */ + interrupts = ; + clocks = <&mstp9_clks R8A7744_CLK_RCAN1>, + <&cpg_clocks R8A7744_CLK_RCAN>, + <&can_clk>; + clock-names = "clkp1", "clkp2", "can_clk"; + power-domains = <&cpg_clocks>; + status = "disabled"; }; rcar_sound: sound@ec500000 { From c77e73fb9fb82d80a42210c33e2be302a0f8b77b Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 6 Dec 2019 12:12:19 +0000 Subject: [PATCH 0810/1149] dt-bindings: irqchip: renesas-irqc: Document r8a7744 support commit 0c4cb97d4ec9d98fc5e30317326f28ed206f3ac6 upstream. Document RZ/G1N (R8A7744) SoC bindings. Reviewed-by: Chris Paterson Reviewed-by: Simon Horman Reviewed-by: Geert Uytterhoeven Signed-off-by: Biju Das Signed-off-by: Marc Zyngier Signed-off-by: Nobuhiro Iwamatsu --- .../devicetree/bindings/interrupt-controller/renesas,irqc.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt b/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt index 1ed382e638f8..eea4c7b6a09e 100644 --- a/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt +++ b/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt @@ -6,6 +6,7 @@ Required properties: Examples with soctypes are: - "renesas,irqc-r8a73a4" (R-Mobile APE6) - "renesas,irqc-r8a7743" (RZ/G1M) + - "renesas,irqc-r8a7744" (RZ/G1N) - "renesas,irqc-r8a7745" (RZ/G1E) - "renesas,irqc-r8a77470" (RZ/G1C) - "renesas,irqc-r8a7790" (R-Car H2) From 6ce9034995e921a0d359e9bd81137877efc5440e Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 6 Dec 2019 12:12:20 +0000 Subject: [PATCH 0811/1149] ARM: dts: r8a7744: Add IRQC support commit 154a05f0c870e6c49753cda689d2209c0915996e upstream. Describe the IRQC interrupt controller in the r8a7744 device tree. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman [biju: Removed reset and updated clk and power domain properties] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7744.dtsi | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index 4538689d1f95..1e7e4102ba88 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -271,6 +271,25 @@ reg = <0 0xe6160000 0 0x100>; }; + irqc: interrupt-controller@e61c0000 { + compatible = "renesas,irqc-r8a7744", "renesas,irqc"; + #interrupt-cells = <2>; + interrupt-controller; + reg = <0 0xe61c0000 0 0x200>; + interrupts = , + , + , + , + , + , + , + , + , + ; + clocks = <&mstp4_clks R8A7744_CLK_IRQC>; + power-domains = <&cpg_clocks>; + }; + icram0: sram@e63a0000 { compatible = "mmio-sram"; reg = <0 0xe63a0000 0 0x12000>; From 4bf2a42d5f9f817a35b6f3a7153c1ff3edf9478f Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Fri, 6 Dec 2019 12:12:21 +0000 Subject: [PATCH 0812/1149] thermal: trip_point_temp_store() calls thermal_zone_device_update() commit ad74e46cb3ba9e706f91f3f71baf816d2d8e45db upstream. trip_point_temp_store() updates trip temperature. It should call thermal_zone_device_update() immediately. Signed-off-by: Kuninori Morimoto Signed-off-by: Eduardo Valentin Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- drivers/thermal/thermal_core.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c index 929092fc25ef..0e919c3e113d 100644 --- a/drivers/thermal/thermal_core.c +++ b/drivers/thermal/thermal_core.c @@ -700,8 +700,12 @@ trip_point_temp_store(struct device *dev, struct device_attribute *attr, return -EINVAL; ret = tz->ops->set_trip_temp(tz, trip, temperature); + if (ret) + return ret; - return ret ? ret : count; + thermal_zone_device_update(tz); + + return count; } static ssize_t From 30a0f9472e6fa93811af9e66cd4da84e17f9ffd5 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 6 Dec 2019 12:12:22 +0000 Subject: [PATCH 0813/1149] dt-bindings: thermal: rcar: Add device tree support for r8a7744 commit 304d9b486b3c6994c193b6693c601b463987e6ac upstream. Add thermal sensor support for r8a7744 SoC. The Renesas RZ/G1N (r8a7744) thermal sensor module is identical to the R-Car Gen2 family. No driver change is needed due to the fallback compatible value "renesas,rcar-gen2-thermal". Signed-off-by: Biju Das Reviewed-by: Chris Paterson Reviewed-by: Daniel Lezcano Reviewed-by: Simon Horman Reviewed-by: Geert Uytterhoeven Signed-off-by: Eduardo Valentin Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/thermal/rcar-thermal.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/thermal/rcar-thermal.txt b/Documentation/devicetree/bindings/thermal/rcar-thermal.txt index 689e7e840414..1e0f8377a949 100644 --- a/Documentation/devicetree/bindings/thermal/rcar-thermal.txt +++ b/Documentation/devicetree/bindings/thermal/rcar-thermal.txt @@ -7,6 +7,7 @@ Required properties: Examples with soctypes are: - "renesas,thermal-r8a73a4" (R-Mobile APE6) - "renesas,thermal-r8a7743" (RZ/G1M) + - "renesas,thermal-r8a7744" (RZ/G1N) - "renesas,thermal-r8a7779" (R-Car H1) - "renesas,thermal-r8a7790" (R-Car H2) - "renesas,thermal-r8a7791" (R-Car M2-W) From e42a7d9d38b73c539d63ce1aad4273a93acee1ea Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 6 Dec 2019 12:12:23 +0000 Subject: [PATCH 0814/1149] ARM: dts: r8a7744: Add thermal device to DT commit ef9d757c06e9b0258b10fcb19c3be2d8cbbc0a30 upstream. This patch instantiates the thermal sensor module with thermal-zone support. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman [biju: Removed reset and updated clk and power domain properties] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7744.dtsi | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index 1e7e4102ba88..5fab84f1944d 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -290,6 +290,16 @@ power-domains = <&cpg_clocks>; }; + thermal: thermal@e61f0000 { + compatible = "renesas,thermal-r8a7744", + "renesas,rcar-gen2-thermal"; + reg = <0 0xe61f0000 0 0x10>, <0 0xe61f0100 0 0x38>; + interrupts = ; + clocks = <&mstp5_clks R8A7744_CLK_THERMAL>; + power-domains = <&cpg_clocks>; + #thermal-sensor-cells = <0>; + }; + icram0: sram@e63a0000 { compatible = "mmio-sram"; reg = <0 0xe63a0000 0 0x12000>; @@ -1506,6 +1516,26 @@ }; }; + thermal-zones { + cpu_thermal: cpu-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + + thermal-sensors = <&thermal>; + + trips { + cpu-crit { + temperature = <95000>; + hysteresis = <0>; + type = "critical"; + }; + }; + + cooling-maps { + }; + }; + }; + timer { compatible = "arm,armv7-timer"; interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, From 47180a023ebe6b19a7727c66c69698ab8d1fddc3 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 6 Dec 2019 12:12:24 +0000 Subject: [PATCH 0815/1149] media: dt-bindings: media: rcar_vin: add device tree support for r8a7744 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit d07d9195c950d1cd16ec32a0819b2b98084c0753 upstream. Add compatible strings for r8a7744. No driver change is needed as "renesas,rcar-gen2-vin" will activate the right code.However, it is good practice to document compatible strings for the specific SoC as this allows SoC specific changes to the driver if needed, in addition to document SoC support and therefore allow checkpatch.pl to validate compatible string values. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Acked-by: Niklas Söderlund Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/media/rcar_vin.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/media/rcar_vin.txt b/Documentation/devicetree/bindings/media/rcar_vin.txt index 08eca2ea13b5..6c7ba02895a4 100644 --- a/Documentation/devicetree/bindings/media/rcar_vin.txt +++ b/Documentation/devicetree/bindings/media/rcar_vin.txt @@ -7,6 +7,7 @@ channel which can be either RGB, YUYV or BT656. - compatible: Must be one or more of the following - "renesas,vin-r8a7743" for the R8A7743 device + - "renesas,vin-r8a7744" for the R8A7744 device - "renesas,vin-r8a7745" for the R8A7745 device - "renesas,vin-r8a7778" for the R8A7778 device - "renesas,vin-r8a7779" for the R8A7779 device From ad8e1795c3d7d9aeab378cb30344c609aa6192d3 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 6 Dec 2019 12:12:25 +0000 Subject: [PATCH 0816/1149] ARM: dts: r8a7744: add VIN dt support commit 10fabcb817c5e37aeb8a1b79a95468c8df45898c upstream. Add VIN[012] support to SoC dt. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman [biju: Removed reset and updated clk and power domain properties] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7744.dtsi | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index 5fab84f1944d..10cf55ea4dde 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -873,6 +873,36 @@ status = "disabled"; }; + vin0: video@e6ef0000 { + compatible = "renesas,vin-r8a7744", + "renesas,rcar-gen2-vin"; + reg = <0 0xe6ef0000 0 0x1000>; + interrupts = ; + clocks = <&mstp8_clks R8A7744_CLK_VIN0>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + vin1: video@e6ef1000 { + compatible = "renesas,vin-r8a7744", + "renesas,rcar-gen2-vin"; + reg = <0 0xe6ef1000 0 0x1000>; + interrupts = ; + clocks = <&mstp8_clks R8A7744_CLK_VIN1>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + vin2: video@e6ef2000 { + compatible = "renesas,vin-r8a7744", + "renesas,rcar-gen2-vin"; + reg = <0 0xe6ef2000 0 0x1000>; + interrupts = ; + clocks = <&mstp8_clks R8A7744_CLK_VIN2>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + rcar_sound: sound@ec500000 { reg = <0 0xec500000 0 0x1000>; From 0db5feebab2c396b103d183539264c6e6c466787 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 6 Dec 2019 12:12:26 +0000 Subject: [PATCH 0817/1149] ASoC: rsnd: Add r8a7744 support commit 765f50d464457c6a397506b3f3dc58dacc227c6d upstream. Document RZ/G1N (R8A7744) SoC bindings. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Signed-off-by: Mark Brown Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/sound/renesas,rsnd.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/sound/renesas,rsnd.txt b/Documentation/devicetree/bindings/sound/renesas,rsnd.txt index 649cd3a54e21..23656d187f3a 100644 --- a/Documentation/devicetree/bindings/sound/renesas,rsnd.txt +++ b/Documentation/devicetree/bindings/sound/renesas,rsnd.txt @@ -7,6 +7,7 @@ Required properties: "renesas,rcar_sound-gen3" if generation3 Examples with soctypes are: - "renesas,rcar_sound-r8a7743" (RZ/G1M) + - "renesas,rcar_sound-r8a7744" (RZ/G1N) - "renesas,rcar_sound-r8a7745" (RZ/G1E) - "renesas,rcar_sound-r8a7778" (R-Car M1A) - "renesas,rcar_sound-r8a7790" (R-Car H2) From 76c6e6fea969268672df266f7f5c166c46b042ff Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 6 Dec 2019 12:12:27 +0000 Subject: [PATCH 0818/1149] ARM: dts: r8a7744: Add audio support commit 5133bfed5e585cec75550cdc795d848fe70097a9 upstream. Add sound support for the RZ/G1N SoC (a.k.a. R8A7744). This work is based on similar work done on the R8A7743 SoC. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman [biju: Removed reset and updated clk and power domain properties] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7744.dtsi | 235 +++++++++++++++++++++++++++++++-- 1 file changed, 227 insertions(+), 8 deletions(-) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index 10cf55ea4dde..7902f7ed8ab0 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -904,23 +904,242 @@ }; rcar_sound: sound@ec500000 { - reg = <0 0xec500000 0 0x1000>; + /* + * #sound-dai-cells is required + * + * Single DAI : #sound-dai-cells = <0>; <&rcar_sound>; + * Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>; + */ + compatible = "renesas,rcar_sound-r8a7744", + "renesas,rcar_sound-gen2"; + reg = <0 0xec500000 0 0x1000>, /* SCU */ + <0 0xec5a0000 0 0x100>, /* ADG */ + <0 0xec540000 0 0x1000>, /* SSIU */ + <0 0xec541000 0 0x280>, /* SSI */ + <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/ + reg-names = "scu", "adg", "ssiu", "ssi", "audmapp"; + + clocks = <&mstp10_clks R8A7744_CLK_SSI_ALL>, + <&mstp10_clks R8A7744_CLK_SSI9>, <&mstp10_clks R8A7744_CLK_SSI8>, + <&mstp10_clks R8A7744_CLK_SSI7>, <&mstp10_clks R8A7744_CLK_SSI6>, + <&mstp10_clks R8A7744_CLK_SSI5>, <&mstp10_clks R8A7744_CLK_SSI4>, + <&mstp10_clks R8A7744_CLK_SSI3>, <&mstp10_clks R8A7744_CLK_SSI2>, + <&mstp10_clks R8A7744_CLK_SSI1>, <&mstp10_clks R8A7744_CLK_SSI0>, + <&mstp10_clks R8A7744_CLK_SCU_SRC9>, <&mstp10_clks R8A7744_CLK_SCU_SRC8>, + <&mstp10_clks R8A7744_CLK_SCU_SRC7>, <&mstp10_clks R8A7744_CLK_SCU_SRC6>, + <&mstp10_clks R8A7744_CLK_SCU_SRC5>, <&mstp10_clks R8A7744_CLK_SCU_SRC4>, + <&mstp10_clks R8A7744_CLK_SCU_SRC3>, <&mstp10_clks R8A7744_CLK_SCU_SRC2>, + <&mstp10_clks R8A7744_CLK_SCU_SRC1>, <&mstp10_clks R8A7744_CLK_SCU_SRC0>, + <&mstp10_clks R8A7744_CLK_SCU_CTU0_MIX0>, <&mstp10_clks R8A7744_CLK_SCU_CTU1_MIX1>, + <&mstp10_clks R8A7744_CLK_SCU_CTU0_MIX0>, <&mstp10_clks R8A7744_CLK_SCU_CTU1_MIX1>, + <&mstp10_clks R8A7744_CLK_SCU_DVC0>, <&mstp10_clks R8A7744_CLK_SCU_DVC1>, + <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, + <&m2_clk>; + clock-names = "ssi-all", + "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5", + "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0", + "src.9", "src.8", "src.7", "src.6", "src.5", + "src.4", "src.3", "src.2", "src.1", "src.0", + "ctu.0", "ctu.1", + "mix.0", "mix.1", + "dvc.0", "dvc.1", + "clk_a", "clk_b", "clk_c", "clk_i"; + power-domains = <&cpg_clocks>; + + status = "disabled"; rcar_sound,dvc { - dvc0: dvc-0 {}; - dvc1: dvc-1 {}; + dvc0: dvc-0 { + dmas = <&audma1 0xbc>; + dma-names = "tx"; + }; + dvc1: dvc-1 { + dmas = <&audma1 0xbe>; + dma-names = "tx"; + }; + }; + + rcar_sound,mix { + mix0: mix-0 { }; + mix1: mix-1 { }; + }; + + rcar_sound,ctu { + ctu00: ctu-0 { }; + ctu01: ctu-1 { }; + ctu02: ctu-2 { }; + ctu03: ctu-3 { }; + ctu10: ctu-4 { }; + ctu11: ctu-5 { }; + ctu12: ctu-6 { }; + ctu13: ctu-7 { }; }; rcar_sound,src { - src2: src-2 {}; - src3: src-3 {}; + src0: src-0 { + interrupts = ; + dmas = <&audma0 0x85>, <&audma1 0x9a>; + dma-names = "rx", "tx"; + }; + src1: src-1 { + interrupts = ; + dmas = <&audma0 0x87>, <&audma1 0x9c>; + dma-names = "rx", "tx"; + }; + src2: src-2 { + interrupts = ; + dmas = <&audma0 0x89>, <&audma1 0x9e>; + dma-names = "rx", "tx"; + }; + src3: src-3 { + interrupts = ; + dmas = <&audma0 0x8b>, <&audma1 0xa0>; + dma-names = "rx", "tx"; + }; + src4: src-4 { + interrupts = ; + dmas = <&audma0 0x8d>, <&audma1 0xb0>; + dma-names = "rx", "tx"; + }; + src5: src-5 { + interrupts = ; + dmas = <&audma0 0x8f>, <&audma1 0xb2>; + dma-names = "rx", "tx"; + }; + src6: src-6 { + interrupts = ; + dmas = <&audma0 0x91>, <&audma1 0xb4>; + dma-names = "rx", "tx"; + }; + src7: src-7 { + interrupts = ; + dmas = <&audma0 0x93>, <&audma1 0xb6>; + dma-names = "rx", "tx"; + }; + src8: src-8 { + interrupts = ; + dmas = <&audma0 0x95>, <&audma1 0xb8>; + dma-names = "rx", "tx"; + }; + src9: src-9 { + interrupts = ; + dmas = <&audma0 0x97>, <&audma1 0xba>; + dma-names = "rx", "tx"; + }; }; rcar_sound,ssi { - ssi0: ssi-0 {}; - ssi1: ssi-1 {}; + ssi0: ssi-0 { + interrupts = ; + dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi1: ssi-1 { + interrupts = ; + dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi2: ssi-2 { + interrupts = ; + dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi3: ssi-3 { + interrupts = ; + dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi4: ssi-4 { + interrupts = ; + dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi5: ssi-5 { + interrupts = ; + dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi6: ssi-6 { + interrupts = ; + dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi7: ssi-7 { + interrupts = ; + dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi8: ssi-8 { + interrupts = ; + dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi9: ssi-9 { + interrupts = ; + dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>; + dma-names = "rx", "tx", "rxu", "txu"; + }; }; - /* placeholder */ + }; + + audma0: dma-controller@ec700000 { + compatible = "renesas,dmac-r8a7744", + "renesas,rcar-dmac"; + reg = <0 0xec700000 0 0x10000>; + interrupts = ; + interrupt-names = "error", + "ch0", "ch1", "ch2", "ch3", + "ch4", "ch5", "ch6", "ch7", + "ch8", "ch9", "ch10", "ch11", + "ch12"; + clocks = <&mstp5_clks R8A7744_CLK_AUDIO_DMAC0>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <13>; + }; + + audma1: dma-controller@ec720000 { + compatible = "renesas,dmac-r8a7744", + "renesas,rcar-dmac"; + reg = <0 0xec720000 0 0x10000>; + interrupts = ; + interrupt-names = "error", + "ch0", "ch1", "ch2", "ch3", + "ch4", "ch5", "ch6", "ch7", + "ch8", "ch9", "ch10", "ch11", + "ch12"; + clocks = <&mstp5_clks R8A7744_CLK_AUDIO_DMAC1>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <13>; }; pci0: pci@ee090000 { From 7dab10ab3edd937e3ced7505f3bc33274840d2da Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 6 Dec 2019 12:12:28 +0000 Subject: [PATCH 0819/1149] ARM: dts: r8a7744-iwg20d-q7-dbcm-ca: Add device tree for camera DB commit 7fbbfe07b588cd81c1046a1846345a5cf614589a upstream. This patch adds support for the camera daughter board which is connected to iWave's RZ/G1N Qseven carrier board. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/r8a7744-iwg20d-q7-dbcm-ca.dts | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 arch/arm/boot/dts/r8a7744-iwg20d-q7-dbcm-ca.dts diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 88c3f1273a7b..147c66b6c213 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -547,6 +547,7 @@ dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += \ r8a7743-iwg20d-q7.dtb \ r8a7743-iwg20d-q7-dbcm-ca.dtb \ r8a7744-iwg20d-q7.dtb \ + r8a7744-iwg20d-q7-dbcm-ca.dtb \ r8a7745-iwg22d-sodimm.dtb \ r8a7745-iwg22d-sodimm-dbhd-ca.dtb \ r8a77470-iwg23s-sbc.dtb \ diff --git a/arch/arm/boot/dts/r8a7744-iwg20d-q7-dbcm-ca.dts b/arch/arm/boot/dts/r8a7744-iwg20d-q7-dbcm-ca.dts new file mode 100644 index 000000000000..3e58c2e92e03 --- /dev/null +++ b/arch/arm/boot/dts/r8a7744-iwg20d-q7-dbcm-ca.dts @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Device Tree Source for the iWave Systems RZ/G1N Qseven board development + * platform with camera daughter board + * + * Copyright (C) 2018 Renesas Electronics Corp. + */ + +/dts-v1/; +#include "r8a7744-iwg20m.dtsi" +#include "iwg20d-q7-common.dtsi" +#include "iwg20d-q7-dbcm-ca.dtsi" + +/ { + model = "iWave Systems RZ/G1N Qseven development platform with camera add-on"; + compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7744"; +}; From 0cddb349320426954582511b95e7d31873941aad Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Sat, 14 Dec 2019 06:28:51 +0900 Subject: [PATCH 0820/1149] CIP: Bump version suffix to -cip40 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index e52c61d2f28b..8c136b480e84 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip39 +-cip40 From cc654aea0a4c15ee0a2f925b44b56fe8bd3d0698 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Wed, 18 Sep 2019 17:00:45 +0900 Subject: [PATCH 0821/1149] net: davinci_cpdma: use dma_addr_t for DMA address commit 84092996673211f16ef3b942a191d7952e9dfea9 upstream. The davinci_cpdma mixes up physical addresses as seen from the CPU and DMA addresses as seen from a DMA master, since it can operate on both normal memory or an on-chip buffer. If dma_addr_t is different from phys_addr_t, this means we get a compile-time warning about the type mismatch: ethernet/ti/davinci_cpdma.c: In function 'cpdma_desc_pool_create': ethernet/ti/davinci_cpdma.c:182:48: error: passing argument 3 of 'dma_alloc_coherent' from incompatible pointer type [-Werror=incompatible-pointer-types] pool->cpumap = dma_alloc_coherent(dev, size, &pool->phys, In file included from ethernet/ti/davinci_cpdma.c:21:0: dma-mapping.h:398:21: note: expected 'dma_addr_t * {aka long long unsigned int *}' but argument is of type 'phys_addr_t * {aka unsigned int *}' static inline void *dma_alloc_coherent(struct device *dev, size_t size, This slightly restructures the code so the address we use for mapping RAM into a DMA address is always a dma_addr_t, avoiding the warning. The code is correct even if both types are 32-bit because the DMA master in this device only supports 32-bit addressing anyway, independent of the types that are used. We still assign this value to pool->phys, and that is wrong if the driver is ever used with an IOMMU, but that value appears to be never used, so there is no problem really. I've added a couple of comments about where we do things that are slightly violating the API. Signed-off-by: Arnd Bergmann Signed-off-by: David S. Miller Signed-off-by: Nobuhiro Iwamatsu Signed-off-by: Pavel Machek --- drivers/net/ethernet/ti/davinci_cpdma.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/ti/davinci_cpdma.c b/drivers/net/ethernet/ti/davinci_cpdma.c index 657b65bf5cac..18bf3a8fdc50 100644 --- a/drivers/net/ethernet/ti/davinci_cpdma.c +++ b/drivers/net/ethernet/ti/davinci_cpdma.c @@ -82,7 +82,7 @@ struct cpdma_desc { struct cpdma_desc_pool { phys_addr_t phys; - u32 hw_addr; + dma_addr_t hw_addr; void __iomem *iomap; /* ioremap map */ void *cpumap; /* dma_alloc map */ int desc_size, mem_size; @@ -152,7 +152,7 @@ struct cpdma_chan { * abstract out these details */ static struct cpdma_desc_pool * -cpdma_desc_pool_create(struct device *dev, u32 phys, u32 hw_addr, +cpdma_desc_pool_create(struct device *dev, u32 phys, dma_addr_t hw_addr, int size, int align) { int bitmap_size; @@ -176,13 +176,13 @@ cpdma_desc_pool_create(struct device *dev, u32 phys, u32 hw_addr, if (phys) { pool->phys = phys; - pool->iomap = ioremap(phys, size); + pool->iomap = ioremap(phys, size); /* should be memremap? */ pool->hw_addr = hw_addr; } else { - pool->cpumap = dma_alloc_coherent(dev, size, &pool->phys, + pool->cpumap = dma_alloc_coherent(dev, size, &pool->hw_addr, GFP_KERNEL); - pool->iomap = pool->cpumap; - pool->hw_addr = pool->phys; + pool->iomap = (void __iomem __force *)pool->cpumap; + pool->phys = pool->hw_addr; /* assumes no IOMMU, don't use this value */ } if (pool->iomap) From dcea4fe3496b055c10bdbc9ee67b51741ad1c5ce Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 19 Dec 2019 15:05:50 +0000 Subject: [PATCH 0822/1149] dt-bindings: display: renesas: du: Document the r8a7744 bindings commit 5eb08d995564c9f9d4818a84050f7716b73c86cc upstream. Document the RZ/G1N (R8A7744) SoC in the R-Car DU bindings. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Rob Herring Reviewed-by: Laurent Pinchart Signed-off-by: Laurent Pinchart Signed-off-by: Marian-Cristian Rotariu Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/display/renesas,du.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/display/renesas,du.txt b/Documentation/devicetree/bindings/display/renesas,du.txt index 2cc5fdde69d1..96cc0805da56 100644 --- a/Documentation/devicetree/bindings/display/renesas,du.txt +++ b/Documentation/devicetree/bindings/display/renesas,du.txt @@ -4,6 +4,7 @@ Required Properties: - compatible: must be one of the following. - "renesas,du-r8a7743" for R8A7743 (RZ/G1M) compatible DU + - "renesas,du-r8a7744" for R8A7744 (RZ/G1N) compatible DU - "renesas,du-r8a7745" for R8A7745 (RZ/G1E) compatible DU - "renesas,du-r8a7779" for R8A7779 (R-Car H1) compatible DU - "renesas,du-r8a7790" for R8A7790 (R-Car H2) compatible DU @@ -46,6 +47,7 @@ corresponding to each DU output. Port 0 Port1 Port2 ----------------------------------------------------------------------------- R8A7743 (RZ/G1M) DPAD 0 LVDS 0 - + R8A7744 (RZ/G1N) DPAD 0 LVDS 0 - R8A7745 (RZ/G1E) DPAD 0 DPAD 1 - R8A7779 (R-Car H1) DPAD 0 DPAD 1 - R8A7790 (R-Car H2) DPAD 0 LVDS 0 LVDS 1 From 0c31b2a92429bb4d870eda60191bbccd69830dcc Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 19 Dec 2019 15:05:51 +0000 Subject: [PATCH 0823/1149] drm: rcar-du: Add R8A7744 support commit 5dc34af19c98171174f563a4b9f79a902bf665b4 upstream. Add support for the R8A7744 DU (which is very similar to the R8A7743 DU); it has 1 DPAD (RGB) output and 1 LVDS output. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Laurent Pinchart Signed-off-by: Laurent Pinchart Signed-off-by: Marian-Cristian Rotariu Signed-off-by: Nobuhiro Iwamatsu --- drivers/gpu/drm/rcar-du/rcar_du_drv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c index 5187ed33d3de..edb9c3f0b862 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c @@ -41,7 +41,7 @@ static const struct rcar_du_device_info rzg1_du_r8a7743_info = { .num_crtcs = 2, .routes = { /* - * R8A7743 has one RGB output and one LVDS output + * R8A774[34] has one RGB output and one LVDS output */ [RCAR_DU_OUTPUT_DPAD0] = { .possible_crtcs = BIT(1) | BIT(0), @@ -175,6 +175,7 @@ static const struct rcar_du_device_info rcar_du_r8a7794_info = { static const struct of_device_id rcar_du_of_table[] = { { .compatible = "renesas,du-r8a7743", .data = &rzg1_du_r8a7743_info }, + { .compatible = "renesas,du-r8a7744", .data = &rzg1_du_r8a7743_info }, { .compatible = "renesas,du-r8a7745", .data = &rzg1_du_r8a7745_info }, { .compatible = "renesas,du-r8a7779", .data = &rcar_du_r8a7779_info }, { .compatible = "renesas,du-r8a7790", .data = &rcar_du_r8a7790_info }, From cd36bd39f4f9642fbe7f85f29e7211ddc13d6a59 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Thu, 19 Dec 2019 15:05:52 +0000 Subject: [PATCH 0824/1149] ARM: dts: r8a7744: Add DU support commit 5f152018d340d90c185ced8ef6230b7044ea5540 upstream. Add du node to r8a7744 SoC DT. Boards that want to enable the DU need to specify the output topology. Signed-off-by: Biju Das Reviewed-by: Laurent Pinchart Signed-off-by: Simon Horman [marian: Removed reset and updated clk and power domain properties] Signed-off-by: Marian-Cristian Rotariu Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7744.dtsi | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index 7902f7ed8ab0..91e032aedbc6 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -1278,8 +1278,17 @@ }; du: display@feb00000 { + compatible = "renesas,du-r8a7744"; reg = <0 0xfeb00000 0 0x40000>, <0 0xfeb90000 0 0x1c>; + reg-names = "du", "lvds.0"; + interrupts = , + ; + clocks = <&mstp7_clks R8A7744_CLK_DU0>, + <&mstp7_clks R8A7744_CLK_DU1>, + <&mstp7_clks R8A7744_CLK_LVDS0>; + clock-names = "du.0", "du.1", "lvds.0"; + status = "disabled"; ports { #address-cells = <1>; @@ -1296,7 +1305,6 @@ }; }; }; - /* placeholder */ }; cmt0: timer@ffca0000 { From ba8dc2a25994d1d17872b641d4e6ff50ea9d9217 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Fri, 10 Jan 2020 17:16:30 +0900 Subject: [PATCH 0825/1149] CIP: Bump version suffix to -cip41 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 8c136b480e84..ce3e8bc35270 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip40 +-cip41 From 410a2929c3f5ca416e08f5be50c11964c4a5dba5 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 24 Jan 2020 09:08:11 +0000 Subject: [PATCH 0826/1149] ARM: dts: r8a7744: Add VSP support commit eddcbe813dd3c8247840859bf4d04b3423d35f8f upstream. Add VSP support to SoC DT. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (dropped resets property. changed clocks and power-domains properties. added vsp device configuration) Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7744.dtsi | 42 ++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index 91e032aedbc6..cf7d8fe269bc 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -1277,6 +1277,48 @@ power-domains = <&cpg_clocks>; }; + vsp@fe928000 { + compatible = "renesas,vsp1"; + reg = <0 0xfe928000 0 0x8000>; + interrupts = ; + clocks = <&mstp1_clks R8A7744_CLK_VSP1_S>; + power-domains = <&cpg_clocks>; + + renesas,has-lut; + renesas,has-sru; + renesas,#rpf = <5>; + renesas,#uds = <1>; + renesas,#wpf = <4>; + }; + + vsp@fe930000 { + compatible = "renesas,vsp1"; + reg = <0 0xfe930000 0 0x8000>; + interrupts = ; + clocks = <&mstp1_clks R8A7744_CLK_VSP1_DU0>; + power-domains = <&cpg_clocks>; + + renesas,has-lif; + renesas,has-lut; + renesas,#rpf = <4>; + renesas,#uds = <1>; + renesas,#wpf = <1>; + }; + + vsp@fe938000 { + compatible = "renesas,vsp1"; + reg = <0 0xfe938000 0 0x8000>; + interrupts = ; + clocks = <&mstp1_clks R8A7744_CLK_VSP1_DU1>; + power-domains = <&cpg_clocks>; + + renesas,has-lif; + renesas,has-lut; + renesas,#rpf = <4>; + renesas,#uds = <1>; + renesas,#wpf = <1>; + }; + du: display@feb00000 { compatible = "renesas,du-r8a7744"; reg = <0 0xfeb00000 0 0x40000>, From 5396a5d862e98e36da24acc0538e017b89e7c50e Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 24 Jan 2020 09:08:12 +0000 Subject: [PATCH 0827/1149] ARM: dts: r8a7744: Add PWM SoC support commit cebc31e8b59445aaf84b8810ff76b2fcc246fea2 upstream. Add the definitions for pwm[0123456] to the SoC dtsi. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (updated clocks and power-domains property.removed resets property) Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7744.dtsi | 63 ++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index cf7d8fe269bc..79c71ef5babd 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -847,6 +847,69 @@ status = "disabled"; }; + pwm0: pwm@e6e30000 { + compatible = "renesas,pwm-r8a7744", "renesas,pwm-rcar"; + reg = <0 0xe6e30000 0 0x8>; + clocks = <&mstp5_clks R8A7744_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm1: pwm@e6e31000 { + compatible = "renesas,pwm-r8a7744", "renesas,pwm-rcar"; + reg = <0 0xe6e31000 0 0x8>; + clocks = <&mstp5_clks R8A7744_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm2: pwm@e6e32000 { + compatible = "renesas,pwm-r8a7744", "renesas,pwm-rcar"; + reg = <0 0xe6e32000 0 0x8>; + clocks = <&mstp5_clks R8A7744_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm3: pwm@e6e33000 { + compatible = "renesas,pwm-r8a7744", "renesas,pwm-rcar"; + reg = <0 0xe6e33000 0 0x8>; + clocks = <&mstp5_clks R8A7744_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm4: pwm@e6e34000 { + compatible = "renesas,pwm-r8a7744", "renesas,pwm-rcar"; + reg = <0 0xe6e34000 0 0x8>; + clocks = <&mstp5_clks R8A7744_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm5: pwm@e6e35000 { + compatible = "renesas,pwm-r8a7744", "renesas,pwm-rcar"; + reg = <0 0xe6e35000 0 0x8>; + clocks = <&mstp5_clks R8A7744_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm6: pwm@e6e36000 { + compatible = "renesas,pwm-r8a7744", "renesas,pwm-rcar"; + reg = <0 0xe6e36000 0 0x8>; + clocks = <&mstp5_clks R8A7744_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + can0: can@e6e80000 { compatible = "renesas,can-r8a7744", "renesas,rcar-gen2-can"; From eace09a0973dab0891e91c05a7843929bb6e7a53 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 24 Jan 2020 09:08:13 +0000 Subject: [PATCH 0828/1149] ARM: dts: r8a7744: Add TPU support commit eb83d144978e9f21aaa1372d75b50f3eec22ed48 upstream. Add TPU support to SoC DT. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (updated clock and power-domains property. removed resets property) Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7744.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index 79c71ef5babd..425915a437d3 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -260,6 +260,15 @@ reg = <0 0xe6060000 0 0x250>; }; + tpu: pwm@e60f0000 { + compatible = "renesas,tpu-r8a7744", "renesas,tpu"; + reg = <0 0xe60f0000 0 0x148>; + clocks = <&mstp3_clks R8A7744_CLK_TPU0>; + power-domains = <&cpg_clocks>; + #pwm-cells = <3>; + status = "disabled"; + }; + apmu@e6152000 { compatible = "renesas,r8a7744-apmu", "renesas,apmu"; reg = <0 0xe6152000 0 0x188>; From a9a77e6487aca45c5b94fedbbb4abb76b44252f5 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 24 Jan 2020 09:08:14 +0000 Subject: [PATCH 0829/1149] ARM: dts: r8a7744: Add QSPI support commit 0faadd5a410533d3a75601b607ee5a4110b754f4 upstream. Add the DT node for the QSPI interface to the SoC dtsi. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (changed clocks and power-domains property, removed resets property) Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7744.dtsi | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index 425915a437d3..b6517c315169 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -595,6 +595,21 @@ status = "disabled"; }; + qspi: spi@e6b10000 { + compatible = "renesas,qspi-r8a7744", "renesas,qspi"; + reg = <0 0xe6b10000 0 0x2c>; + interrupts = ; + clocks = <&mstp9_clks R8A7744_CLK_QSPI_MOD>; + dmas = <&dmac0 0x17>, <&dmac0 0x18>, + <&dmac1 0x17>, <&dmac1 0x18>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + num-cs = <1>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + scifa0: serial@e6c40000 { compatible = "renesas,scifa-r8a7744", "renesas,rcar-gen2-scifa", "renesas,scifa"; From 21ee3925f4f2a285c9767da3e3b2749dcb0b0a16 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 24 Jan 2020 09:08:15 +0000 Subject: [PATCH 0830/1149] ARM: dts: r8a7744: Add MSIOF[012] support commit 491e70588805a8895bff6ac5a626c8bb481fea1c upstream. Add the DT nodes needed by MSIOF[012] interfaces to the SoC dtsi. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (changed clocks and power-domains properties, removed resets property) Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7744.dtsi | 45 ++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index b6517c315169..12d698cb984d 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -934,6 +934,51 @@ status = "disabled"; }; + msiof0: spi@e6e20000 { + compatible = "renesas,msiof-r8a7744", + "renesas,rcar-gen2-msiof"; + reg = <0 0xe6e20000 0 0x0064>; + interrupts = ; + clocks = <&mstp0_clks R8A7744_CLK_MSIOF0>; + dmas = <&dmac0 0x51>, <&dmac0 0x52>, + <&dmac1 0x51>, <&dmac1 0x52>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + msiof1: spi@e6e10000 { + compatible = "renesas,msiof-r8a7744", + "renesas,rcar-gen2-msiof"; + reg = <0 0xe6e10000 0 0x0064>; + interrupts = ; + clocks = <&mstp2_clks R8A7744_CLK_MSIOF1>; + dmas = <&dmac0 0x55>, <&dmac0 0x56>, + <&dmac1 0x55>, <&dmac1 0x56>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + msiof2: spi@e6e00000 { + compatible = "renesas,msiof-r8a7744", + "renesas,rcar-gen2-msiof"; + reg = <0 0xe6e00000 0 0x0064>; + interrupts = ; + clocks = <&mstp2_clks R8A7744_CLK_MSIOF2>; + dmas = <&dmac0 0x41>, <&dmac0 0x42>, + <&dmac1 0x41>, <&dmac1 0x42>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + can0: can@e6e80000 { compatible = "renesas,can-r8a7744", "renesas,rcar-gen2-can"; From 3e5933692aee6dbaf3a69e6cd64cdf4f11985dab Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 24 Jan 2020 09:08:16 +0000 Subject: [PATCH 0831/1149] ARM: dts: r8a7744-iwg20m: Add SPI NOR support commit e259e04748e2798a747d9c363ded50514b15a7b9 upstream. Add support for the SPI NOR device used to boot up the system to the iWave RZ/G1N Qseven System On Module DT. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7744-iwg20m.dtsi | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/arch/arm/boot/dts/r8a7744-iwg20m.dtsi b/arch/arm/boot/dts/r8a7744-iwg20m.dtsi index 503583e2c852..82ee3c1140ef 100644 --- a/arch/arm/boot/dts/r8a7744-iwg20m.dtsi +++ b/arch/arm/boot/dts/r8a7744-iwg20m.dtsi @@ -36,6 +36,11 @@ function = "mmc"; }; + qspi_pins: qspi { + groups = "qspi_ctrl", "qspi_data2"; + function = "qspi"; + }; + sdhi0_pins: sd0 { groups = "sdhi0_data4", "sdhi0_ctrl"; function = "sdhi0"; @@ -53,6 +58,27 @@ status = "okay"; }; +&qspi { + pinctrl-0 = <&qspi_pins>; + pinctrl-names = "default"; + + status = "okay"; + + /* WARNING - This device contains the bootloader. Handle with care. */ + flash: flash@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <50000000>; + spi-tx-bus-width = <2>; + spi-rx-bus-width = <2>; + m25p,fast-read; + spi-cpol; + spi-cpha; + }; +}; + &sdhi0 { pinctrl-0 = <&sdhi0_pins>; pinctrl-names = "default"; From 624229b47de620cd1457c464d3fe3dafb59c08e3 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 24 Jan 2020 09:08:17 +0000 Subject: [PATCH 0832/1149] usb: host: xhci-plat: Add r8a7744 support This patch adds xhci r8a7744 driver support. NOTE: Just a background wrt this patch as this isn't a backport from mainline kernel, in mainline kernel for RZ/G1 the compatible string defaults to "renesas,rcar-gen2-xhci" which isn't present in CIP, and the way xhci-plat.c in cip handles compatibility is different compared to mainline as a result this patch is added. This is patch is similar to "usb: host: xhci-plat: Add r8a7743 support" (d09ccbb733864223402b541bdb9897cfe811881c) present in cip kernel. Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- drivers/usb/host/xhci-plat.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c index 8f80da4777e9..e7f00da3389a 100644 --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c @@ -54,7 +54,8 @@ static int xhci_plat_setup(struct usb_hcd *hcd) if (of_device_is_compatible(of_node, "renesas,xhci-r8a7790") || of_device_is_compatible(of_node, "renesas,xhci-r8a7791") || - of_device_is_compatible(of_node, "renesas,xhci-r8a7743")) { + of_device_is_compatible(of_node, "renesas,xhci-r8a7743") || + of_device_is_compatible(of_node, "renesas,xhci-r8a7744")) { ret = xhci_rcar_init_quirk(hcd); if (ret) return ret; @@ -69,7 +70,8 @@ static int xhci_plat_start(struct usb_hcd *hcd) if (of_device_is_compatible(of_node, "renesas,xhci-r8a7790") || of_device_is_compatible(of_node, "renesas,xhci-r8a7791") || - of_device_is_compatible(of_node, "renesas,xhci-r8a7743")) + of_device_is_compatible(of_node, "renesas,xhci-r8a7743") || + of_device_is_compatible(of_node, "renesas,xhci-r8a7744")) xhci_rcar_start(hcd); return xhci_run(hcd); @@ -270,6 +272,7 @@ static const struct of_device_id usb_xhci_of_match[] = { { .compatible = "marvell,armada-375-xhci"}, { .compatible = "marvell,armada-380-xhci"}, { .compatible = "renesas,xhci-r8a7743"}, + { .compatible = "renesas,xhci-r8a7744"}, { .compatible = "renesas,xhci-r8a7790"}, { .compatible = "renesas,xhci-r8a7791"}, { }, From 78f08beffbc8a0a617f0b2810013cdccfb5241bf Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 24 Jan 2020 09:08:18 +0000 Subject: [PATCH 0833/1149] dt-bindings: usb-xhci: Document r8a7744 support commit 2cfe8f864d0e2504dc2f68f0b04668d877f7c7b4 upstream. Document r8a7744 xhci support. The driver will use the fallback compatible string "renesas,rcar-gen2-xhci", therefore no driver change is needed. Signed-off-by: Biju Das Reviewed-by: Chris Paterson Reviewed-by: Simon Horman Signed-off-by: Greg Kroah-Hartman Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/usb/usb-xhci.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/usb/usb-xhci.txt b/Documentation/devicetree/bindings/usb/usb-xhci.txt index fce0320dd574..bf5192b7348e 100644 --- a/Documentation/devicetree/bindings/usb/usb-xhci.txt +++ b/Documentation/devicetree/bindings/usb/usb-xhci.txt @@ -3,7 +3,8 @@ USB xHCI controllers Required properties: - compatible: should be one of "generic-xhci", "marvell,armada-375-xhci", "marvell,armada-380-xhci", - "renesas,xhci-r8a7790", "renesas,xhci-r8a7791", "renesas,xhci-r8a7743" + "renesas,xhci-r8a7790", "renesas,xhci-r8a7791", "renesas,xhci-r8a7743", + "renesas,xhci-r8a7744" (deprecated: "xhci-platform"). - reg: should contain address and length of the standard XHCI register set for the device. From e62ed0bcff875b93de338a30c39f685d4ab349ae Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 24 Jan 2020 09:08:19 +0000 Subject: [PATCH 0834/1149] ARM: dts: r8a7744: Add xhci support commit 54234e80858cf3730917d71af80a13ac4b8f26dc upstream. Add a device node for the xhci controller on the Renesas RZ/G1N (r8a7744) SoC. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (dropped resets property. changed clocks and power-domains properties. dropped "renesas,rcar-gen2-xhci" compatible string) Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7744.dtsi | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index 12d698cb984d..195d1d784f5a 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -1274,6 +1274,24 @@ dma-channels = <13>; }; + /* + * pci1 and xhci share the same phy, therefore only one of them + * can be active at any one time. If both of them are enabled, + * a race condition will determine who'll control the phy. + * A firmware file is needed by the xhci driver in order for + * USB 3.0 to work properly. + */ + xhci: usb@ee000000 { + compatible = "renesas,xhci-r8a7744"; + reg = <0 0xee000000 0 0xc00>; + interrupts = ; + clocks = <&mstp3_clks R8A7744_CLK_SSUSB>; + power-domains = <&cpg_clocks>; + phys = <&usb2 1>; + phy-names = "usb"; + status = "disabled"; + }; + pci0: pci@ee090000 { compatible = "renesas,pci-r8a7744", "renesas,pci-rcar-gen2"; From 17b93326fe435a77ab602032c8d5f500d6a7b7ab Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 24 Jan 2020 09:08:20 +0000 Subject: [PATCH 0835/1149] ARM: dts: r8a7744: Add PCIe Controller device node commit 24035072999c5c175ac03ed2db2ef98cb339b319 upstream. Add a device node for the PCIe controller on the Renesas RZ/G1N (r8a7744) SoC. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman (dropped resets property. changed clocks and power-domains properties.) Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7744.dtsi | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index 195d1d784f5a..9e1885ce4948 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -1469,6 +1469,33 @@ renesas,#wpf = <1>; }; + pciec: pcie@fe000000 { + compatible = "renesas,pcie-r8a7744", + "renesas,pcie-rcar-gen2"; + reg = <0 0xfe000000 0 0x80000>; + #address-cells = <3>; + #size-cells = <2>; + bus-range = <0x00 0xff>; + device_type = "pci"; + ranges = <0x01000000 0 0x00000000 0 0xfe100000 0 0x00100000 + 0x02000000 0 0xfe200000 0 0xfe200000 0 0x00200000 + 0x02000000 0 0x30000000 0 0x30000000 0 0x08000000 + 0x42000000 0 0x38000000 0 0x38000000 0 0x08000000>; + /* Map all possible DDR as inbound ranges */ + dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 0 0x80000000 + 0x43000000 2 0x00000000 2 0x00000000 1 0x00000000>; + interrupts = , + , + ; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 0>; + interrupt-map = <0 0 0 0 &gic GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&mstp3_clks R8A7744_CLK_PCIEC>, <&pcie_bus_clk>; + clock-names = "pcie", "pcie_bus"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + du: display@feb00000 { compatible = "renesas,du-r8a7744"; reg = <0 0xfeb00000 0 0x40000>, From 2507dd95fec1b330c3c62881e43d3d10d44a1a04 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Sat, 15 Feb 2020 04:55:40 +0900 Subject: [PATCH 0836/1149] CIP: Bump version suffix to -cip42 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index ce3e8bc35270..0aa910214785 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip41 +-cip42 From 0e44e8ae8f3be94257c32a69400a69eea9ff5cb1 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Sat, 14 Mar 2020 07:29:37 +0900 Subject: [PATCH 0837/1149] CIP: Bump version suffix to -cip43 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 0aa910214785..cbfabcff7eb7 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip42 +-cip43 From e219b8481eddce3f76bc1efc70d560434d235efd Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Sat, 11 Apr 2020 06:32:39 +0900 Subject: [PATCH 0838/1149] CIP: Bump version suffix to -cip44 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index cbfabcff7eb7..0dc72fcf328f 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip43 +-cip44 From f77b9619332744040a0320ddd3f5e507d6f4cb53 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Mon, 11 May 2020 11:11:54 +0900 Subject: [PATCH 0839/1149] CIP: Bump version suffix to -cip45 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 0dc72fcf328f..cd3c9f83f090 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip44 +-cip45 From 443aee0852745c259dc77c8ffcb926224a72e46a Mon Sep 17 00:00:00 2001 From: Marian-Cristian Rotariu Date: Tue, 2 Jun 2020 09:43:24 +0100 Subject: [PATCH 0840/1149] ARM: dts: iwg20d-q7-common: Add LCD support commit 6f89dd9e9325d05b1f54d860dbbc84b42aa40759 upstream. The iwg20d comes with a 7" capacitive touch screen, therefore add support for it. Signed-off-by: Fabrizio Castro Acked-by: Laurent Pinchart Link: https://lore.kernel.org/r/1573660292-10629-11-git-send-email-fabrizio.castro@bp.renesas.com Signed-off-by: Geert Uytterhoeven (remove the LVDS decoder as there is no driver for it; add panel timings to panel node since the LVDS driver reads them off the panel DT node) Signed-off-by: Marian-Cristian Rotariu Signed-off-by: Pavel Machek --- arch/arm/boot/dts/iwg20d-q7-common.dtsi | 81 ++++++++++++++++++++++++ arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi | 1 - 2 files changed, 81 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/iwg20d-q7-common.dtsi b/arch/arm/boot/dts/iwg20d-q7-common.dtsi index 011dbaba4f38..52c1787537b3 100644 --- a/arch/arm/boot/dts/iwg20d-q7-common.dtsi +++ b/arch/arm/boot/dts/iwg20d-q7-common.dtsi @@ -49,6 +49,40 @@ clock-frequency = <26000000>; }; + lcd_backlight: backlight { + compatible = "pwm-backlight"; + + pwms = <&pwm3 0 5000000 0>; + brightness-levels = <0 4 8 16 32 64 128 255>; + default-brightness-level = <7>; + enable-gpios = <&gpio5 14 GPIO_ACTIVE_HIGH>; + }; + + panel { + compatible = "edt,etm0700g0dh6", "simple-panel"; + backlight = <&lcd_backlight>; + + port { + panel_in: endpoint { + remote-endpoint = <&du_out_lvds0>; + }; + }; + + panel-timing { + clock-frequency = <33260>; + hactive = <800>; + vactive = <480>; + + hfront-porch = <40>; + hback-porch = <88>; + hsync-len = <128>; + + vback-porch = <33>; + vfront-porch = <10>; + vsync-len = <2>; + }; + }; + reg_1p5v: 1p5v { compatible = "regulator-fixed"; regulator-name = "1P5V"; @@ -123,6 +157,35 @@ status = "okay"; }; +&du { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + du_out_rgb: endpoint { + }; + }; + port@1 { + reg = <1>; + du_out_lvds0: endpoint { + remote-endpoint = <&panel_in>; + }; + }; + }; +}; + +&gpio2 { + touch-interrupt { + gpio-hog; + gpios = <12 GPIO_ACTIVE_LOW>; + input; + }; +}; + &hsusb { status = "okay"; pinctrl-0 = <&usb0_pins>; @@ -150,6 +213,13 @@ VDDIO-supply = <®_3p3v>; VDDD-supply = <®_1p5v>; }; + + touch: touchpanel@38 { + compatible = "edt,edt-ft5406"; + reg = <0x38>; + interrupt-parent = <&gpio2>; + interrupts = <12 IRQ_TYPE_EDGE_FALLING>; + }; }; &pci0 { @@ -183,6 +253,11 @@ function = "i2c2"; }; + pwm3_pins: pwm3 { + groups = "pwm3"; + function = "pwm3"; + }; + scif0_pins: scif0 { groups = "scif0_data_d"; function = "scif0"; @@ -215,6 +290,12 @@ }; }; +&pwm3 { + pinctrl-0 = <&pwm3_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + &rcar_sound { pinctrl-0 = <&sound_pins>; pinctrl-names = "default"; diff --git a/arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi b/arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi index e64306461822..ec4c29a5f3be 100644 --- a/arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi +++ b/arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi @@ -42,7 +42,6 @@ &du { pinctrl-0 = <&du_pins>; pinctrl-names = "default"; - status = "okay"; ports { port@0 { From a949e175ffb414319680ed2cfb33ae6beb0022ed Mon Sep 17 00:00:00 2001 From: Peter Ujfalusi Date: Fri, 5 Jun 2020 09:35:41 +0000 Subject: [PATCH 0841/1149] ARM: DTS: am33xx: Use the new DT bindings for the eDMA3 commit b5e5090660742c838ddc0b5d1a001e6fe3d5bfd5 upstream. Switch to use the ti,edma3-tpcc and ti,edma3-tptc binding for the eDMA3 and enable the DMA even crossbar with ti,am335x-edma-crossbar. With the new bindings boards can customize and tweak the DMA channel priority to match their needs. With the new binding the memcpy is safe to be used since with the old binding it was not possible for a driver to know which channel is allowed to be used as non HW triggered channel. Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren Signed-off-by: Johnson Chen Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/am335x-evm.dts | 9 +-- arch/arm/boot/dts/am335x-pepper.dts | 11 +--- arch/arm/boot/dts/am33xx.dtsi | 94 ++++++++++++++++++++--------- 3 files changed, 71 insertions(+), 43 deletions(-) diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts index 2b8614e406f0..656d4304ab6b 100644 --- a/arch/arm/boot/dts/am335x-evm.dts +++ b/arch/arm/boot/dts/am335x-evm.dts @@ -743,8 +743,8 @@ &mmc3 { /* these are on the crossbar and are outlined in the xbar-event-map element */ - dmas = <&edma 12 - &edma 13>; + dmas = <&edma_xbar 12 0 1 + &edma_xbar 13 0 2>; dma-names = "tx", "rx"; status = "okay"; vmmc-supply = <&wlan_en_reg>; @@ -766,11 +766,6 @@ }; }; -&edma { - ti,edma-xbar-event-map = /bits/ 16 <1 12 - 2 13>; -}; - &sham { status = "okay"; }; diff --git a/arch/arm/boot/dts/am335x-pepper.dts b/arch/arm/boot/dts/am335x-pepper.dts index 7106114c7464..39073b921664 100644 --- a/arch/arm/boot/dts/am335x-pepper.dts +++ b/arch/arm/boot/dts/am335x-pepper.dts @@ -339,13 +339,6 @@ ti,non-removable; }; -&edma { - /* Map eDMA MMC2 Events from Crossbar */ - ti,edma-xbar-event-map = /bits/ 16 <1 12 - 2 13>; -}; - - &mmc3 { /* Wifi & Bluetooth on MMC #3 */ status = "okay"; @@ -354,8 +347,8 @@ vmmmc-supply = <&v3v3c_reg>; bus-width = <4>; ti,non-removable; - dmas = <&edma 12 - &edma 13>; + dmas = <&edma_xbar 12 0 1 + &edma_xbar 13 0 2>; dma-names = "tx", "rx"; }; diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi index be9c37e89be1..4b40e6d401a0 100644 --- a/arch/arm/boot/dts/am33xx.dtsi +++ b/arch/arm/boot/dts/am33xx.dtsi @@ -162,6 +162,14 @@ mboxes = <&mailbox &mbox_wkupm3>; }; + edma_xbar: dma-router@f90 { + compatible = "ti,am335x-edma-crossbar"; + reg = <0xf90 0x40>; + #dma-cells = <3>; + dma-requests = <32>; + dma-masters = <&edma>; + }; + scm_clockdomains: clockdomains { }; }; @@ -175,12 +183,44 @@ }; edma: edma@49000000 { - compatible = "ti,edma3"; - ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2"; - reg = <0x49000000 0x10000>, - <0x44e10f90 0x40>; + compatible = "ti,edma3-tpcc"; + ti,hwmods = "tpcc"; + reg = <0x49000000 0x10000>; + reg-names = "edma3_cc"; interrupts = <12 13 14>; - #dma-cells = <1>; + interrupt-names = "edma3_ccint", "emda3_mperr", + "edma3_ccerrint"; + dma-requests = <64>; + #dma-cells = <2>; + + ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>, + <&edma_tptc2 0>; + + ti,edma-memcpy-channels = <20 21>; + }; + + edma_tptc0: tptc@49800000 { + compatible = "ti,edma3-tptc"; + ti,hwmods = "tptc0"; + reg = <0x49800000 0x100000>; + interrupts = <112>; + interrupt-names = "edma3_tcerrint"; + }; + + edma_tptc1: tptc@49900000 { + compatible = "ti,edma3-tptc"; + ti,hwmods = "tptc1"; + reg = <0x49900000 0x100000>; + interrupts = <113>; + interrupt-names = "edma3_tcerrint"; + }; + + edma_tptc2: tptc@49a00000 { + compatible = "ti,edma3-tptc"; + ti,hwmods = "tptc2"; + reg = <0x49a00000 0x100000>; + interrupts = <114>; + interrupt-names = "edma3_tcerrint"; }; gpio0: gpio@44e07000 { @@ -234,7 +274,7 @@ reg = <0x44e09000 0x2000>; interrupts = <72>; status = "disabled"; - dmas = <&edma 26>, <&edma 27>; + dmas = <&edma 26 0>, <&edma 27 0>; dma-names = "tx", "rx"; }; @@ -245,7 +285,7 @@ reg = <0x48022000 0x2000>; interrupts = <73>; status = "disabled"; - dmas = <&edma 28>, <&edma 29>; + dmas = <&edma 28 0>, <&edma 29 0>; dma-names = "tx", "rx"; }; @@ -256,7 +296,7 @@ reg = <0x48024000 0x2000>; interrupts = <74>; status = "disabled"; - dmas = <&edma 30>, <&edma 31>; + dmas = <&edma 30 0>, <&edma 31 0>; dma-names = "tx", "rx"; }; @@ -323,8 +363,8 @@ ti,dual-volt; ti,needs-special-reset; ti,needs-special-hs-handling; - dmas = <&edma 24 - &edma 25>; + dmas = <&edma_xbar 24 0 0 + &edma_xbar 25 0 0>; dma-names = "tx", "rx"; interrupts = <64>; interrupt-parent = <&intc>; @@ -336,8 +376,8 @@ compatible = "ti,omap4-hsmmc"; ti,hwmods = "mmc2"; ti,needs-special-reset; - dmas = <&edma 2 - &edma 3>; + dmas = <&edma 2 0 + &edma 3 0>; dma-names = "tx", "rx"; interrupts = <28>; interrupt-parent = <&intc>; @@ -475,10 +515,10 @@ interrupts = <65>; ti,spi-num-cs = <2>; ti,hwmods = "spi0"; - dmas = <&edma 16 - &edma 17 - &edma 18 - &edma 19>; + dmas = <&edma 16 0 + &edma 17 0 + &edma 18 0 + &edma 19 0>; dma-names = "tx0", "rx0", "tx1", "rx1"; status = "disabled"; }; @@ -491,10 +531,10 @@ interrupts = <125>; ti,spi-num-cs = <2>; ti,hwmods = "spi1"; - dmas = <&edma 42 - &edma 43 - &edma 44 - &edma 45>; + dmas = <&edma 42 0 + &edma 43 0 + &edma 44 0 + &edma 45 0>; dma-names = "tx0", "rx0", "tx1", "rx1"; status = "disabled"; }; @@ -832,7 +872,7 @@ ti,hwmods = "sham"; reg = <0x53100000 0x200>; interrupts = <109>; - dmas = <&edma 36>; + dmas = <&edma 36 0>; dma-names = "rx"; }; @@ -841,8 +881,8 @@ ti,hwmods = "aes"; reg = <0x53500000 0xa0>; interrupts = <103>; - dmas = <&edma 6>, - <&edma 5>; + dmas = <&edma 6 0>, + <&edma 5 0>; dma-names = "tx", "rx"; }; @@ -855,8 +895,8 @@ interrupts = <80>, <81>; interrupt-names = "tx", "rx"; status = "disabled"; - dmas = <&edma 8>, - <&edma 9>; + dmas = <&edma 8 2>, + <&edma 9 2>; dma-names = "tx", "rx"; }; @@ -869,8 +909,8 @@ interrupts = <82>, <83>; interrupt-names = "tx", "rx"; status = "disabled"; - dmas = <&edma 10>, - <&edma 11>; + dmas = <&edma 10 2>, + <&edma 11 2>; dma-names = "tx", "rx"; }; From a5f3949c3e546cd1bcc287595fda62b5647278a2 Mon Sep 17 00:00:00 2001 From: SZ Lin Date: Fri, 5 Jun 2020 09:35:44 +0000 Subject: [PATCH 0842/1149] ARM: dts: am335x: add support for Moxa UC-8100-ME-T open platform commit 5e452865954fe3f18a89cb7bce8c3216636b311d upstream. Add support for Moxa UC-8100-ME-T open platform The UC-8100-ME-T computing platform is designed for embedded data acquisition industrial applications The features of UC-8100-ME-T series are: * eMMC * SPI flash * SD slot * 2x LAN * 2 RS-232/422/485 ports, software-selectable * Mini PCIe form factor with USB signal * USB host * EEPROM * TPM * Watchdog * RTC * User gpio-keys * User LEDs * User button Signed-off-by: SZ Lin Acked-by: Rob Herring [tony@atomide.com: fix unit adress as suggested by Rob] Signed-off-by: Tony Lindgren [Johnson: add string vendor "infineon"] Signed-off-by: Johnson Chen Signed-off-by: Nobuhiro Iwamatsu --- .../devicetree/bindings/arm/omap/omap.txt | 3 + .../devicetree/bindings/vendor-prefixes.txt | 1 + arch/arm/boot/dts/Makefile | 1 + .../arm/boot/dts/am335x-moxa-uc-8100-me-t.dts | 525 ++++++++++++++++++ 4 files changed, 530 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt index 12af302bca6a..a19b92f4dab0 100644 --- a/Documentation/devicetree/bindings/arm/omap/omap.txt +++ b/Documentation/devicetree/bindings/arm/omap/omap.txt @@ -139,6 +139,9 @@ Boards: - AM335X phyBOARD-WEGA: Single Board Computer dev kit compatible = "phytec,am335x-wega", "phytec,am335x-phycore-som", "ti,am33xx" +- AM335X UC-8100-ME-T: Communication-centric industrial computing platform + compatible = "moxa,uc-8100-me-t", "ti,am33xx"; + - OMAP5 EVM : Evaluation Module compatible = "ti,omap5-evm", "ti,omap5" diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt index 12e4560d1c23..7c1ffa49d804 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt @@ -113,6 +113,7 @@ ibm International Business Machines (IBM) idt Integrated Device Technologies, Inc. iom Iomega Corporation img Imagination Technologies Ltd. +infineon Infineon Technologies ingenic Ingenic Semiconductor innolux Innolux Corporation intel Intel Corporation diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 147c66b6c213..84f8bd09d2ce 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -462,6 +462,7 @@ dtb-$(CONFIG_SOC_AM33XX) += \ am335x-sl50.dtb \ am335x-evm.dtb \ am335x-evmsk.dtb \ + am335x-moxa-uc-8100-me-t.dtb \ am335x-nano.dtb \ am335x-pepper.dtb \ am335x-lxm.dtb \ diff --git a/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts b/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts new file mode 100644 index 000000000000..f82233cd18e0 --- /dev/null +++ b/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts @@ -0,0 +1,525 @@ +/* + * Copyright (C) 2017 MOXA Inc. - https://www.moxa.com/ + * + * Author: SZ Lin (林上智) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +/dts-v1/; + +#include "am33xx.dtsi" + +/ { + model = "Moxa UC-8100-ME-T"; + compatible = "moxa,uc-8100-me-t", "ti,am33xx"; + + cpus { + cpu@0 { + cpu0-supply = <&vdd1_reg>; + }; + }; + + memory { + device_type = "memory"; + reg = <0x80000000 0x20000000>; /* 512 MB */ + }; + + vbat: vbat-regulator { + compatible = "regulator-fixed"; + }; + + /* Power supply provides a fixed 3.3V @3A */ + vmmcsd_fixed: vmmcsd-regulator { + compatible = "regulator-fixed"; + regulator-name = "vmmcsd_fixed"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + leds { + compatible = "gpio-leds"; + led1 { + label = "uc8100me:CEL1"; + gpios = <&gpio_xten 8 0>; + default-state = "off"; + }; + + led2 { + label = "uc8100me:CEL2"; + gpios = <&gpio_xten 9 0>; + default-state = "off"; + }; + + led3 { + label = "uc8100me:CEL3"; + gpios = <&gpio_xten 10 0>; + default-state = "off"; + }; + + led4 { + label = "uc8100me:DIA1"; + gpios = <&gpio_xten 11 0>; + default-state = "off"; + }; + led5 { + label = "uc8100me:DIA2"; + gpios = <&gpio_xten 12 0>; + default-state = "off"; + }; + led6 { + label = "uc8100me:DIA3"; + gpios = <&gpio_xten 13 0>; + default-state = "off"; + }; + led7 { + label = "uc8100me:SD"; + gpios = <&gpio_xten 14 0>; + default-state = "off"; + }; + led8 { + label = "uc8100me:USB"; + gpios = <&gpio_xten 15 0>; + default-state = "off"; + }; + led9 { + label = "uc8100me:USER"; + gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>; + default-state = "off"; + }; + }; + + buttons: push_button { + compatible = "gpio-keys"; + }; + +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&minipcie_pins>; + + minipcie_pins: pinmux_minipcie { + pinctrl-single,pins = < + AM33XX_IOPAD(0x8e8, PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_pclk.gpio2_24 */ + AM33XX_IOPAD(0x8ec, PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_ac_bias_en.gpio2_25 */ + AM33XX_IOPAD(0x8e0, PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_vsync.gpio2_22 Power off PIN*/ + >; + }; + + push_button_pins: pinmux_push_button { + pinctrl-single,pins = < + AM33XX_IOPAD(0x9ac, PIN_INPUT_PULLDOWN | MUX_MODE7) /* mcasp0_ahcklx.gpio3_21 */ + >; + }; + + i2c0_pins: pinmux_i2c0_pins { + pinctrl-single,pins = < + AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */ + AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */ + >; + }; + + + i2c1_pins: pinmux_i2c1_pins { + pinctrl-single,pins = < + AM33XX_IOPAD(0x968, PIN_INPUT_PULLUP | MUX_MODE3) /* uart0_ctsn.i2c1_sda */ + AM33XX_IOPAD(0x96c, PIN_INPUT_PULLUP | MUX_MODE3) /* uart0_rtsn.i2c1_scl */ + >; + }; + + uart0_pins: pinmux_uart0_pins { + pinctrl-single,pins = < + AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ + AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */ + >; + }; + + uart1_pins: pinmux_uart1_pins { + pinctrl-single,pins = < + AM33XX_IOPAD(0x978, PIN_INPUT | MUX_MODE0) /* uart1_ctsn.uart1_ctsn */ + AM33XX_IOPAD(0x97C, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_rtsn.uart1_rtsn */ + AM33XX_IOPAD(0x980, PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd */ + AM33XX_IOPAD(0x984, PIN_OUTPUT | MUX_MODE0) /* uart1_txd.uart1_txd */ + >; + }; + + uart2_pins: pinmux_uart2_pins { + pinctrl-single,pins = < + AM33XX_IOPAD(0x8d8, PIN_INPUT | MUX_MODE6) /* lcd_data14.uart5_ctsn */ + AM33XX_IOPAD(0x8dc, PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* lcd_data15.uart5_rtsn */ + AM33XX_IOPAD(0x8c4, PIN_INPUT_PULLUP | MUX_MODE4) /* lcd_data9.uart5_rxd */ + AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE4) /* lcd_data8.uart5_txd */ + >; + }; + + cpsw_default: cpsw_default { + pinctrl-single,pins = < + /* Slave 1 */ + AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_crs.rmii1_crs_dv */ + AM33XX_IOPAD(0x910, PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_rxerr.rmii1_rxerr */ + AM33XX_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txen.rmii1_txen */ + AM33XX_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd1.rmii1_txd1 */ + AM33XX_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd0.rmii1_txd0 */ + AM33XX_IOPAD(0x93c, PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_rxd1.rmii1_rxd1 */ + AM33XX_IOPAD(0x940, PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_rxd0.rmii1_rxd0 */ + AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mii1_refclk.rmii1_refclk */ + + /* Slave 2 */ + AM33XX_IOPAD(0x870, PIN_INPUT_PULLDOWN | MUX_MODE3) /* rmii2_crs_dv */ + AM33XX_IOPAD(0x874, PIN_INPUT_PULLDOWN | MUX_MODE3) /* rmii2_rxer */ + AM33XX_IOPAD(0x840, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* rmii2_txen */ + AM33XX_IOPAD(0x850, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* rmii2_td1 */ + AM33XX_IOPAD(0x854, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* rmii2_td0 */ + AM33XX_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE3) /* rmii2_rd1 */ + AM33XX_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE3) /* rmii2_rd0 */ + AM33XX_IOPAD(0x908, PIN_INPUT_PULLDOWN | MUX_MODE1) /* rmii2_refclk */ + + >; + }; + + davinci_mdio_default: davinci_mdio_default { + pinctrl-single,pins = < + /* MDIO */ + AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ + AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ + >; + }; + + mmc0_pins_default: pinmux_mmc0_pins { + pinctrl-single,pins = < + AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3 */ + AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat2 */ + AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat1 */ + AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat0 */ + AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk */ + AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd */ + AM33XX_IOPAD(0x990, PIN_INPUT_PULLUP | MUX_MODE7) /* mcasp0_aclkx.gpio3_14 */ + AM33XX_IOPAD(0x9a0, PIN_INPUT_PULLUP | MUX_MODE7) /* mcasp0_aclkx.gpio3_18 */ + >; + }; + + mmc2_pins_default: pinmux_mmc2_pins { + pinctrl-single,pins = < + /* eMMC */ + AM33XX_IOPAD(0x830, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad12.mmc2_dat0 */ + AM33XX_IOPAD(0x834, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad13.mmc2_dat1 */ + AM33XX_IOPAD(0x838, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad14.mmc2_dat2 */ + AM33XX_IOPAD(0x83c, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad15.mmc2_dat3 */ + AM33XX_IOPAD(0x820, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad8.mmc2_dat4 */ + AM33XX_IOPAD(0x824, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad9.mmc2_dat5 */ + AM33XX_IOPAD(0x828, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad10.mmc2_dat6 */ + AM33XX_IOPAD(0x82c, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad11.mmc2_dat7 */ + AM33XX_IOPAD(0x888, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_csn3.mmc2_cmd */ + AM33XX_IOPAD(0x88c, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_clk.mmc2_clk */ + >; + }; + + spi0_pins: pinmux_spi0 { + pinctrl-single,pins = < + AM33XX_IOPAD(0x950, PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_sclk.spi0_sclk */ + AM33XX_IOPAD(0x95C, PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_cs0.spi0_cs0 */ + AM33XX_IOPAD(0x954, PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_d0.spi0_d0 */ + AM33XX_IOPAD(0x958, PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_d1.spi0_d1 */ + >; + }; + +}; + +&uart0 { + /* Console */ + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&uart0_pins>; +}; + +&uart1 { + /* UART 1 setting */ + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&uart1_pins>; +}; + +&uart5 { + /* UART 2 setting */ + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&uart2_pins>; +}; + +&i2c0 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c0_pins>; + + status = "okay"; + clock-frequency = <400000>; + + tpm: tpm@20 { + compatible = "infineon,slb9645tt"; + reg = <0x20>; + }; + + tps: tps@2d { + compatible = "ti,tps65910"; + reg = <0x2d>; + }; + + eeprom: eeprom@50 { + compatible = "atmel,24c16"; + pagesize = <16>; + reg = <0x50>; + }; + + rtc_wdt: rtc_wdt@68 { + compatible = "dallas,ds1374"; + reg = <0x68>; + }; +}; + +&i2c1 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c1_pins>; + + status = "okay"; + clock-frequency = <400000>; + gpio_xten: gpio_xten@27 { + compatible = "nxp,pca9535"; + gpio-controller; + #gpio-cells = <2>; + reg = <0x27>; + }; +}; + +&usb { + status = "okay"; +}; + +&usb_ctrl_mod { + status = "okay"; +}; + +&usb0_phy { + status = "okay"; +}; + +&usb1_phy { + status = "okay"; +}; + +&usb0 { + status = "okay"; + dr_mode = "host"; +}; + +&usb1 { + status = "okay"; + dr_mode = "host"; +}; + +&cppi41dma { + status = "okay"; +}; + +#include "tps65910.dtsi" + +&tps { + vcc1-supply = <&vbat>; + vcc2-supply = <&vbat>; + vcc3-supply = <&vbat>; + vcc4-supply = <&vbat>; + vcc5-supply = <&vbat>; + vcc6-supply = <&vbat>; + vcc7-supply = <&vbat>; + vccio-supply = <&vbat>; + + regulators { + vrtc_reg: regulator@0 { + regulator-always-on; + }; + + vio_reg: regulator@1 { + regulator-always-on; + }; + + vdd1_reg: regulator@2 { + /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */ + regulator-name = "vdd_mpu"; + regulator-min-microvolt = <912500>; + regulator-max-microvolt = <1378000>; + regulator-boot-on; + regulator-always-on; + }; + + vdd2_reg: regulator@3 { + /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */ + regulator-name = "vdd_core"; + regulator-min-microvolt = <912500>; + regulator-max-microvolt = <1150000>; + regulator-boot-on; + regulator-always-on; + }; + + vdd3_reg: regulator@4 { + regulator-always-on; + }; + + vdig1_reg: regulator@5 { + regulator-always-on; + }; + + vdig2_reg: regulator@6 { + regulator-always-on; + }; + + vpll_reg: regulator@7 { + regulator-always-on; + }; + + vdac_reg: regulator@8 { + regulator-always-on; + }; + + vaux1_reg: regulator@9 { + regulator-always-on; + }; + + vaux2_reg: regulator@10 { + regulator-always-on; + }; + + vaux33_reg: regulator@11 { + regulator-always-on; + }; + + vmmc_reg: regulator@12 { + compatible = "regulator-fixed"; + regulator-name = "vmmc_reg"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + }; + }; +}; + +/* Power */ +&vbat { + regulator-name = "vbat"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; +}; + +&mac { + pinctrl-names = "default"; + pinctrl-0 = <&cpsw_default>; + dual_emac = <1>; + status = "okay"; +}; + +&davinci_mdio { + pinctrl-names = "default"; + pinctrl-0 = <&davinci_mdio_default>; + status = "okay"; +}; + +&cpsw_emac0 { + status = "okay"; + phy_id = <&davinci_mdio>, <4>; + phy-mode = "rmii"; + dual_emac_res_vlan = <1>; +}; + +&cpsw_emac1 { + status = "okay"; + phy_id = <&davinci_mdio>, <5>; + phy-mode = "rmii"; + dual_emac_res_vlan = <2>; +}; + +&phy_sel { + reg= <0x44e10650 0xf5>; + rmii-clock-ext; +}; + +&sham { + status = "okay"; +}; + +&aes { + status = "okay"; +}; + +&gpio0 { + ti,no-reset-on-init; +}; + +&mmc1 { + pinctrl-names = "default"; + vmmc-supply = <&vmmcsd_fixed>; + bus-width = <4>; + pinctrl-0 = <&mmc0_pins_default>; + cd-gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>; + wp-gpios = <&gpio3 18 GPIO_ACTIVE_HIGH>; + status = "okay"; +}; + +&mmc3 { + dmas = <&edma_xbar 12 0 1 + &edma_xbar 13 0 2>; + dma-names = "tx", "rx"; + pinctrl-names = "default"; + vmmc-supply = <&vmmcsd_fixed>; + bus-width = <8>; + pinctrl-0 = <&mmc2_pins_default>; + ti,non-removable; + status = "okay"; +}; + +&buttons { + pinctrl-names = "default"; + pinctrl-0 = <&push_button_pins>; + #address-cells = <1>; + #size-cells = <0>; + + button@0 { + label = "push_button"; + linux,code = <0x100>; + gpios = <&gpio3 21 GPIO_ACTIVE_LOW>; + }; +}; + +/* SPI Busses */ +&spi0 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&spi0_pins>; + + m25p80@0 { + compatible = "mx25l6405d"; + spi-max-frequency = <40000000>; + + reg = <0>; + spi-cpol; + spi-cpha; + #address-cells = <1>; + #size-cells = <1>; + + /* reg : The partition's offset and size within the mtd bank. */ + partitions@0 { + label = "MLO"; + reg = <0x0 0x80000>; + }; + + partitions@1 { + label = "U-Boot"; + reg = <0x80000 0x100000>; + }; + + partitions@2 { + label = "U-Boot Env"; + reg = <0x180000 0x20000>; + }; + }; +}; From a0554ef5b17edaa798b78073f87e281025413529 Mon Sep 17 00:00:00 2001 From: Christina Quast Date: Mon, 8 Jun 2020 10:33:37 +0000 Subject: [PATCH 0843/1149] ARM: dts: am33xx: Added macros for numeric pinmux addresses commit 7ebd1ea798a4932231b18499df136fb552f6f648 upstream. The values are extraced from the "AM335x SitaraTM Processors Technical Reference Manual", Section 9.3.1 CONTROL_MODULE Registers, based on the file autogenerated by TI PinMux. Signed-off-by: Christina Quast Reviewed-by: Rob Herring Signed-off-by: Tony Lindgren [Johnson: Add SPDX License] Signed-off-by: Johnson Chen Signed-off-by: Pavel Machek --- include/dt-bindings/pinctrl/am33xx.h | 131 ++++++++++++++++++++++++++- 1 file changed, 130 insertions(+), 1 deletion(-) diff --git a/include/dt-bindings/pinctrl/am33xx.h b/include/dt-bindings/pinctrl/am33xx.h index 226f77246a70..17877e85980b 100644 --- a/include/dt-bindings/pinctrl/am33xx.h +++ b/include/dt-bindings/pinctrl/am33xx.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */ /* * This header provides constants specific to AM33XX pinctrl bindings. */ @@ -39,5 +40,133 @@ #undef PIN_OFF_INPUT_PULLDOWN #undef PIN_OFF_WAKEUPENABLE -#endif +#define AM335X_PIN_OFFSET_MIN 0x0800U + +#define AM335X_PIN_GPMC_AD0 0x800 +#define AM335X_PIN_GPMC_AD1 0x804 +#define AM335X_PIN_GPMC_AD2 0x808 +#define AM335X_PIN_GPMC_AD3 0x80c +#define AM335X_PIN_GPMC_AD4 0x810 +#define AM335X_PIN_GPMC_AD5 0x814 +#define AM335X_PIN_GPMC_AD6 0x818 +#define AM335X_PIN_GPMC_AD7 0x81c +#define AM335X_PIN_GPMC_AD8 0x820 +#define AM335X_PIN_GPMC_AD9 0x824 +#define AM335X_PIN_GPMC_AD10 0x828 +#define AM335X_PIN_GPMC_AD11 0x82c +#define AM335X_PIN_GPMC_AD12 0x830 +#define AM335X_PIN_GPMC_AD13 0x834 +#define AM335X_PIN_GPMC_AD14 0x838 +#define AM335X_PIN_GPMC_AD15 0x83c +#define AM335X_PIN_GPMC_A0 0x840 +#define AM335X_PIN_GPMC_A1 0x844 +#define AM335X_PIN_GPMC_A2 0x848 +#define AM335X_PIN_GPMC_A3 0x84c +#define AM335X_PIN_GPMC_A4 0x850 +#define AM335X_PIN_GPMC_A5 0x854 +#define AM335X_PIN_GPMC_A6 0x858 +#define AM335X_PIN_GPMC_A7 0x85c +#define AM335X_PIN_GPMC_A8 0x860 +#define AM335X_PIN_GPMC_A9 0x864 +#define AM335X_PIN_GPMC_A10 0x868 +#define AM335X_PIN_GPMC_A11 0x86c +#define AM335X_PIN_GPMC_WAIT0 0x870 +#define AM335X_PIN_GPMC_WPN 0x874 +#define AM335X_PIN_GPMC_BEN1 0x878 +#define AM335X_PIN_GPMC_CSN0 0x87c +#define AM335X_PIN_GPMC_CSN1 0x880 +#define AM335X_PIN_GPMC_CSN2 0x884 +#define AM335X_PIN_GPMC_CSN3 0x888 +#define AM335X_PIN_GPMC_CLK 0x88c +#define AM335X_PIN_GPMC_ADVN_ALE 0x890 +#define AM335X_PIN_GPMC_OEN_REN 0x894 +#define AM335X_PIN_GPMC_WEN 0x898 +#define AM335X_PIN_GPMC_BEN0_CLE 0x89c +#define AM335X_PIN_LCD_DATA0 0x8a0 +#define AM335X_PIN_LCD_DATA1 0x8a4 +#define AM335X_PIN_LCD_DATA2 0x8a8 +#define AM335X_PIN_LCD_DATA3 0x8ac +#define AM335X_PIN_LCD_DATA4 0x8b0 +#define AM335X_PIN_LCD_DATA5 0x8b4 +#define AM335X_PIN_LCD_DATA6 0x8b8 +#define AM335X_PIN_LCD_DATA7 0x8bc +#define AM335X_PIN_LCD_DATA8 0x8c0 +#define AM335X_PIN_LCD_DATA9 0x8c4 +#define AM335X_PIN_LCD_DATA10 0x8c8 +#define AM335X_PIN_LCD_DATA11 0x8cc +#define AM335X_PIN_LCD_DATA12 0x8d0 +#define AM335X_PIN_LCD_DATA13 0x8d4 +#define AM335X_PIN_LCD_DATA14 0x8d8 +#define AM335X_PIN_LCD_DATA15 0x8dc +#define AM335X_PIN_LCD_VSYNC 0x8e0 +#define AM335X_PIN_LCD_HSYNC 0x8e4 +#define AM335X_PIN_LCD_PCLK 0x8e8 +#define AM335X_PIN_LCD_AC_BIAS_EN 0x8ec +#define AM335X_PIN_MMC0_DAT3 0x8f0 +#define AM335X_PIN_MMC0_DAT2 0x8f4 +#define AM335X_PIN_MMC0_DAT1 0x8f8 +#define AM335X_PIN_MMC0_DAT0 0x8fc +#define AM335X_PIN_MMC0_CLK 0x900 +#define AM335X_PIN_MMC0_CMD 0x904 +#define AM335X_PIN_MII1_COL 0x908 +#define AM335X_PIN_MII1_CRS 0x90c +#define AM335X_PIN_MII1_RX_ER 0x910 +#define AM335X_PIN_MII1_TX_EN 0x914 +#define AM335X_PIN_MII1_RX_DV 0x918 +#define AM335X_PIN_MII1_TXD3 0x91c +#define AM335X_PIN_MII1_TXD2 0x920 +#define AM335X_PIN_MII1_TXD1 0x924 +#define AM335X_PIN_MII1_TXD0 0x928 +#define AM335X_PIN_MII1_TX_CLK 0x92c +#define AM335X_PIN_MII1_RX_CLK 0x930 +#define AM335X_PIN_MII1_RXD3 0x934 +#define AM335X_PIN_MII1_RXD2 0x938 +#define AM335X_PIN_MII1_RXD1 0x93c +#define AM335X_PIN_MII1_RXD0 0x940 +#define AM335X_PIN_RMII1_REF_CLK 0x944 +#define AM335X_PIN_MDIO 0x948 +#define AM335X_PIN_MDC 0x94c +#define AM335X_PIN_SPI0_SCLK 0x950 +#define AM335X_PIN_SPI0_D0 0x954 +#define AM335X_PIN_SPI0_D1 0x958 +#define AM335X_PIN_SPI0_CS0 0x95c +#define AM335X_PIN_SPI0_CS1 0x960 +#define AM335X_PIN_ECAP0_IN_PWM0_OUT 0x964 +#define AM335X_PIN_UART0_CTSN 0x968 +#define AM335X_PIN_UART0_RTSN 0x96c +#define AM335X_PIN_UART0_RXD 0x970 +#define AM335X_PIN_UART0_TXD 0x974 +#define AM335X_PIN_UART1_CTSN 0x978 +#define AM335X_PIN_UART1_RTSN 0x97c +#define AM335X_PIN_UART1_RXD 0x980 +#define AM335X_PIN_UART1_TXD 0x984 +#define AM335X_PIN_I2C0_SDA 0x988 +#define AM335X_PIN_I2C0_SCL 0x98c +#define AM335X_PIN_MCASP0_ACLKX 0x990 +#define AM335X_PIN_MCASP0_FSX 0x994 +#define AM335X_PIN_MCASP0_AXR0 0x998 +#define AM335X_PIN_MCASP0_AHCLKR 0x99c +#define AM335X_PIN_MCASP0_ACLKR 0x9a0 +#define AM335X_PIN_MCASP0_FSR 0x9a4 +#define AM335X_PIN_MCASP0_AXR1 0x9a8 +#define AM335X_PIN_MCASP0_AHCLKX 0x9ac +#define AM335X_PIN_XDMA_EVENT_INTR0 0x9b0 +#define AM335X_PIN_XDMA_EVENT_INTR1 0x9b4 +#define AM335X_PIN_WARMRSTN 0x9b8 +#define AM335X_PIN_NNMI 0x9c0 +#define AM335X_PIN_TMS 0x9d0 +#define AM335X_PIN_TDI 0x9d4 +#define AM335X_PIN_TDO 0x9d8 +#define AM335X_PIN_TCK 0x9dc +#define AM335X_PIN_TRSTN 0x9e0 +#define AM335X_PIN_EMU0 0x9e4 +#define AM335X_PIN_EMU1 0x9e8 +#define AM335X_PIN_RTC_PWRONRSTN 0x9f8 +#define AM335X_PIN_PMIC_POWER_EN 0x9fc +#define AM335X_PIN_EXT_WAKEUP 0xa00 +#define AM335X_PIN_USB0_DRVVBUS 0xa1c +#define AM335X_PIN_USB1_DRVVBUS 0xa34 +#define AM335X_PIN_OFFSET_MAX 0x0a34U + +#endif From ca1f4b3a843d3a619c3a969789df7170f380276a Mon Sep 17 00:00:00 2001 From: Christina Quast Date: Mon, 8 Jun 2020 10:33:39 +0000 Subject: [PATCH 0844/1149] ARM: dts: am33xx: Added AM33XX_PADCONF macro commit f1ff9be7652b716c7eea67c9ca795027d911f148 upstream. AM33XX_PADCONF takes three instead of two parameters, to make future changes to #pinctrl-cells easier. For old boards which are not mainlined, we left the AM33XX_IOPAD macro. Signed-off-by: Christina Quast Reviewed-by: Rob Herring Signed-off-by: Tony Lindgren [Johnson: Add SPDX License] Signed-off-by: Johnson Chen Signed-off-by: Pavel Machek --- include/dt-bindings/pinctrl/omap.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/dt-bindings/pinctrl/omap.h b/include/dt-bindings/pinctrl/omap.h index 0d4fe32b3ae2..f0d0e757fd9c 100644 --- a/include/dt-bindings/pinctrl/omap.h +++ b/include/dt-bindings/pinctrl/omap.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */ /* * This header provides constants for OMAP pinctrl bindings. * @@ -63,6 +64,7 @@ #define OMAP3_WKUP_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x2a00) (val) #define DM816X_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x0800) (val) #define AM33XX_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x0800) (val) +#define AM33XX_PADCONF(pa, dir, mux) OMAP_IOPAD_OFFSET((pa), 0x0800) ((dir) | (mux)) #define AM4372_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x0800) (val) #define DRA7XX_CORE_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x3400) (val) From 39c13ff28fe3b884be239c6481e2d11c04577ae6 Mon Sep 17 00:00:00 2001 From: Christina Quast Date: Mon, 8 Jun 2020 10:33:40 +0000 Subject: [PATCH 0845/1149] ARM: dts: am335x: moxa-uc-8100-me-t: Replaced register offsets with defines commit c68a4ffd3d75d5e54e8b355218d622d0f4d70f9d upstream. The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren Signed-off-by: Johnson Chen Signed-off-by: Pavel Machek --- .../arm/boot/dts/am335x-moxa-uc-8100-me-t.dts | 116 +++++++++--------- 1 file changed, 58 insertions(+), 58 deletions(-) diff --git a/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts b/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts index f82233cd18e0..ef50363b1652 100644 --- a/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts +++ b/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts @@ -104,79 +104,79 @@ minipcie_pins: pinmux_minipcie { pinctrl-single,pins = < - AM33XX_IOPAD(0x8e8, PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_pclk.gpio2_24 */ - AM33XX_IOPAD(0x8ec, PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_ac_bias_en.gpio2_25 */ - AM33XX_IOPAD(0x8e0, PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_vsync.gpio2_22 Power off PIN*/ + AM33XX_PADCONF(AM335X_PIN_LCD_PCLK, PIN_INPUT_PULLDOWN, MUX_MODE7) /* lcd_pclk.gpio2_24 */ + AM33XX_PADCONF(AM335X_PIN_LCD_AC_BIAS_EN, PIN_INPUT_PULLDOWN, MUX_MODE7) /* lcd_ac_bias_en.gpio2_25 */ + AM33XX_PADCONF(AM335X_PIN_LCD_VSYNC, PIN_INPUT_PULLDOWN, MUX_MODE7) /* lcd_vsync.gpio2_22 Power off PIN*/ >; }; push_button_pins: pinmux_push_button { pinctrl-single,pins = < - AM33XX_IOPAD(0x9ac, PIN_INPUT_PULLDOWN | MUX_MODE7) /* mcasp0_ahcklx.gpio3_21 */ + AM33XX_PADCONF(AM335X_PIN_MCASP0_AHCLKX, PIN_INPUT_PULLDOWN, MUX_MODE7) /* mcasp0_ahcklx.gpio3_21 */ >; }; i2c0_pins: pinmux_i2c0_pins { pinctrl-single,pins = < - AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */ - AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */ + AM33XX_PADCONF(AM335X_PIN_I2C0_SDA, PIN_INPUT_PULLUP, MUX_MODE0) + AM33XX_PADCONF(AM335X_PIN_I2C0_SCL, PIN_INPUT_PULLUP, MUX_MODE0) >; }; i2c1_pins: pinmux_i2c1_pins { pinctrl-single,pins = < - AM33XX_IOPAD(0x968, PIN_INPUT_PULLUP | MUX_MODE3) /* uart0_ctsn.i2c1_sda */ - AM33XX_IOPAD(0x96c, PIN_INPUT_PULLUP | MUX_MODE3) /* uart0_rtsn.i2c1_scl */ + AM33XX_PADCONF(AM335X_PIN_UART0_CTSN, PIN_INPUT_PULLUP, MUX_MODE3) /* uart0_ctsn.i2c1_sda */ + AM33XX_PADCONF(AM335X_PIN_UART0_RTSN, PIN_INPUT_PULLUP, MUX_MODE3) /* uart0_rtsn.i2c1_scl */ >; }; uart0_pins: pinmux_uart0_pins { pinctrl-single,pins = < - AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ - AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */ + AM33XX_PADCONF(AM335X_PIN_UART0_RXD, PIN_INPUT_PULLUP, MUX_MODE0) + AM33XX_PADCONF(AM335X_PIN_UART0_TXD, PIN_OUTPUT_PULLDOWN, MUX_MODE0) >; }; uart1_pins: pinmux_uart1_pins { pinctrl-single,pins = < - AM33XX_IOPAD(0x978, PIN_INPUT | MUX_MODE0) /* uart1_ctsn.uart1_ctsn */ - AM33XX_IOPAD(0x97C, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_rtsn.uart1_rtsn */ - AM33XX_IOPAD(0x980, PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd */ - AM33XX_IOPAD(0x984, PIN_OUTPUT | MUX_MODE0) /* uart1_txd.uart1_txd */ + AM33XX_PADCONF(AM335X_PIN_UART1_CTSN, PIN_INPUT, MUX_MODE0) + AM33XX_PADCONF(AM335X_PIN_UART1_RTSN, PIN_OUTPUT_PULLDOWN, MUX_MODE0) + AM33XX_PADCONF(AM335X_PIN_UART1_RXD, PIN_INPUT_PULLUP, MUX_MODE0) + AM33XX_PADCONF(AM335X_PIN_UART1_TXD, PIN_OUTPUT, MUX_MODE0) >; }; uart2_pins: pinmux_uart2_pins { pinctrl-single,pins = < - AM33XX_IOPAD(0x8d8, PIN_INPUT | MUX_MODE6) /* lcd_data14.uart5_ctsn */ - AM33XX_IOPAD(0x8dc, PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* lcd_data15.uart5_rtsn */ - AM33XX_IOPAD(0x8c4, PIN_INPUT_PULLUP | MUX_MODE4) /* lcd_data9.uart5_rxd */ - AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE4) /* lcd_data8.uart5_txd */ + AM33XX_PADCONF(AM335X_PIN_LCD_DATA14, PIN_INPUT, MUX_MODE6) /* lcd_data14.uart5_ctsn */ + AM33XX_PADCONF(AM335X_PIN_LCD_DATA15, PIN_OUTPUT_PULLDOWN, MUX_MODE6) /* lcd_data15.uart5_rtsn */ + AM33XX_PADCONF(AM335X_PIN_LCD_DATA9, PIN_INPUT_PULLUP, MUX_MODE4) /* lcd_data9.uart5_rxd */ + AM33XX_PADCONF(AM335X_PIN_LCD_DATA8, PIN_OUTPUT, MUX_MODE4) /* lcd_data8.uart5_txd */ >; }; cpsw_default: cpsw_default { pinctrl-single,pins = < /* Slave 1 */ - AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_crs.rmii1_crs_dv */ - AM33XX_IOPAD(0x910, PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_rxerr.rmii1_rxerr */ - AM33XX_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txen.rmii1_txen */ - AM33XX_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd1.rmii1_txd1 */ - AM33XX_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd0.rmii1_txd0 */ - AM33XX_IOPAD(0x93c, PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_rxd1.rmii1_rxd1 */ - AM33XX_IOPAD(0x940, PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_rxd0.rmii1_rxd0 */ - AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mii1_refclk.rmii1_refclk */ + AM33XX_PADCONF(AM335X_PIN_MII1_CRS, PIN_INPUT_PULLDOWN, MUX_MODE1) + AM33XX_PADCONF(AM335X_PIN_MII1_RX_ER, PIN_INPUT_PULLUP, MUX_MODE1) + AM33XX_PADCONF(AM335X_PIN_MII1_TX_EN, PIN_OUTPUT_PULLDOWN, MUX_MODE1) + AM33XX_PADCONF(AM335X_PIN_MII1_TXD1, PIN_OUTPUT_PULLDOWN, MUX_MODE1) + AM33XX_PADCONF(AM335X_PIN_MII1_TXD0, PIN_OUTPUT_PULLDOWN, MUX_MODE1) + AM33XX_PADCONF(AM335X_PIN_MII1_RXD1, PIN_INPUT_PULLUP, MUX_MODE1) + AM33XX_PADCONF(AM335X_PIN_MII1_RXD0, PIN_INPUT_PULLUP, MUX_MODE1) + AM33XX_PADCONF(AM335X_PIN_RMII1_REF_CLK, PIN_INPUT_PULLDOWN, MUX_MODE0) /* Slave 2 */ - AM33XX_IOPAD(0x870, PIN_INPUT_PULLDOWN | MUX_MODE3) /* rmii2_crs_dv */ - AM33XX_IOPAD(0x874, PIN_INPUT_PULLDOWN | MUX_MODE3) /* rmii2_rxer */ - AM33XX_IOPAD(0x840, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* rmii2_txen */ - AM33XX_IOPAD(0x850, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* rmii2_td1 */ - AM33XX_IOPAD(0x854, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* rmii2_td0 */ - AM33XX_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE3) /* rmii2_rd1 */ - AM33XX_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE3) /* rmii2_rd0 */ - AM33XX_IOPAD(0x908, PIN_INPUT_PULLDOWN | MUX_MODE1) /* rmii2_refclk */ + AM33XX_PADCONF(AM335X_PIN_GPMC_WAIT0, PIN_INPUT_PULLDOWN, MUX_MODE3) /* rmii2_crs_dv */ + AM33XX_PADCONF(AM335X_PIN_GPMC_WPN, PIN_INPUT_PULLDOWN, MUX_MODE3) /* rmii2_rxer */ + AM33XX_PADCONF(AM335X_PIN_GPMC_A0, PIN_OUTPUT_PULLDOWN, MUX_MODE3) /* rmii2_txen */ + AM33XX_PADCONF(AM335X_PIN_GPMC_A4, PIN_OUTPUT_PULLDOWN, MUX_MODE3) /* rmii2_td1 */ + AM33XX_PADCONF(AM335X_PIN_GPMC_A5, PIN_OUTPUT_PULLDOWN, MUX_MODE3) /* rmii2_td0 */ + AM33XX_PADCONF(AM335X_PIN_GPMC_A10, PIN_INPUT_PULLDOWN, MUX_MODE3) /* rmii2_rd1 */ + AM33XX_PADCONF(AM335X_PIN_GPMC_A11, PIN_INPUT_PULLDOWN, MUX_MODE3) /* rmii2_rd0 */ + AM33XX_PADCONF(AM335X_PIN_MII1_COL, PIN_INPUT_PULLDOWN, MUX_MODE1) /* rmii2_refclk */ >; }; @@ -184,46 +184,46 @@ davinci_mdio_default: davinci_mdio_default { pinctrl-single,pins = < /* MDIO */ - AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ - AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ + AM33XX_PADCONF(AM335X_PIN_MDIO, PIN_INPUT_PULLUP | SLEWCTRL_FAST, MUX_MODE0) + AM33XX_PADCONF(AM335X_PIN_MDC, PIN_OUTPUT_PULLUP, MUX_MODE0) >; }; mmc0_pins_default: pinmux_mmc0_pins { pinctrl-single,pins = < - AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3 */ - AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat2 */ - AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat1 */ - AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat0 */ - AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk */ - AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd */ - AM33XX_IOPAD(0x990, PIN_INPUT_PULLUP | MUX_MODE7) /* mcasp0_aclkx.gpio3_14 */ - AM33XX_IOPAD(0x9a0, PIN_INPUT_PULLUP | MUX_MODE7) /* mcasp0_aclkx.gpio3_18 */ + AM33XX_PADCONF(AM335X_PIN_MMC0_DAT3, PIN_INPUT_PULLUP, MUX_MODE0) + AM33XX_PADCONF(AM335X_PIN_MMC0_DAT2, PIN_INPUT_PULLUP, MUX_MODE0) + AM33XX_PADCONF(AM335X_PIN_MMC0_DAT1, PIN_INPUT_PULLUP, MUX_MODE0) + AM33XX_PADCONF(AM335X_PIN_MMC0_DAT0, PIN_INPUT_PULLUP, MUX_MODE0) + AM33XX_PADCONF(AM335X_PIN_MMC0_CLK, PIN_INPUT_PULLUP, MUX_MODE0) + AM33XX_PADCONF(AM335X_PIN_MMC0_CMD, PIN_INPUT_PULLUP, MUX_MODE0) + AM33XX_PADCONF(AM335X_PIN_MCASP0_ACLKX, PIN_INPUT_PULLUP, MUX_MODE7) /* mcasp0_aclkx.gpio3_14 */ + AM33XX_PADCONF(AM335X_PIN_MCASP0_ACLKR, PIN_INPUT_PULLUP, MUX_MODE7) /* mcasp0_aclkx.gpio3_18 */ >; }; mmc2_pins_default: pinmux_mmc2_pins { pinctrl-single,pins = < /* eMMC */ - AM33XX_IOPAD(0x830, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad12.mmc2_dat0 */ - AM33XX_IOPAD(0x834, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad13.mmc2_dat1 */ - AM33XX_IOPAD(0x838, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad14.mmc2_dat2 */ - AM33XX_IOPAD(0x83c, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad15.mmc2_dat3 */ - AM33XX_IOPAD(0x820, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad8.mmc2_dat4 */ - AM33XX_IOPAD(0x824, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad9.mmc2_dat5 */ - AM33XX_IOPAD(0x828, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad10.mmc2_dat6 */ - AM33XX_IOPAD(0x82c, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad11.mmc2_dat7 */ - AM33XX_IOPAD(0x888, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_csn3.mmc2_cmd */ - AM33XX_IOPAD(0x88c, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_clk.mmc2_clk */ + AM33XX_PADCONF(AM335X_PIN_GPMC_AD12, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_ad12.mmc2_dat0 */ + AM33XX_PADCONF(AM335X_PIN_GPMC_AD13, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_ad13.mmc2_dat1 */ + AM33XX_PADCONF(AM335X_PIN_GPMC_AD14, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_ad14.mmc2_dat2 */ + AM33XX_PADCONF(AM335X_PIN_GPMC_AD15, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_ad15.mmc2_dat3 */ + AM33XX_PADCONF(AM335X_PIN_GPMC_AD8, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_ad8.mmc2_dat4 */ + AM33XX_PADCONF(AM335X_PIN_GPMC_AD9, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_ad9.mmc2_dat5 */ + AM33XX_PADCONF(AM335X_PIN_GPMC_AD10, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_ad10.mmc2_dat6 */ + AM33XX_PADCONF(AM335X_PIN_GPMC_AD11, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_ad11.mmc2_dat7 */ + AM33XX_PADCONF(AM335X_PIN_GPMC_CSN3, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_csn3.mmc2_cmd */ + AM33XX_PADCONF(AM335X_PIN_GPMC_CLK, PIN_INPUT_PULLUP, MUX_MODE3) /* gpmc_clk.mmc2_clk */ >; }; spi0_pins: pinmux_spi0 { pinctrl-single,pins = < - AM33XX_IOPAD(0x950, PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_sclk.spi0_sclk */ - AM33XX_IOPAD(0x95C, PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_cs0.spi0_cs0 */ - AM33XX_IOPAD(0x954, PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_d0.spi0_d0 */ - AM33XX_IOPAD(0x958, PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_d1.spi0_d1 */ + AM33XX_PADCONF(AM335X_PIN_SPI0_SCLK, PIN_INPUT_PULLUP, MUX_MODE0) + AM33XX_PADCONF(AM335X_PIN_SPI0_CS0, PIN_INPUT_PULLUP, MUX_MODE0) + AM33XX_PADCONF(AM335X_PIN_SPI0_D0, PIN_INPUT_PULLUP, MUX_MODE0) + AM33XX_PADCONF(AM335X_PIN_SPI0_D1, PIN_INPUT_PULLUP, MUX_MODE0) >; }; From 71a6dee18e9b677772dcd33c7180c5cdb71b1f25 Mon Sep 17 00:00:00 2001 From: Viresh Kumar Date: Tue, 9 Jun 2020 12:09:13 +0800 Subject: [PATCH 0846/1149] PM / OPP: Add debugfs support commit deaa51465105a7eda19a627b10372f4f7c51a4df upstream. This patch adds debugfs support to OPP layer to export OPPs and their properties for all the devices. This creates a top level directory: /sys/kernel/debug/opp and then device specific directories (based on device names) inside it. For example: 'cpu0', 'cpu1', etc.. If multiple devices share the OPP table, then the real directory is created only for the first device. For all others, links are created to the real directory. Inside the device specific directory, a separate directory is created for each OPP. And within that files per opp property. Signed-off-by: Viresh Kumar Reviewed-by: Stephen Boyd Signed-off-by: Rafael J. Wysocki Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek --- drivers/base/power/opp/Makefile | 1 + drivers/base/power/opp/core.c | 21 ++- drivers/base/power/opp/debugfs.c | 219 +++++++++++++++++++++++++++++++ drivers/base/power/opp/opp.h | 42 ++++++ 4 files changed, 281 insertions(+), 2 deletions(-) create mode 100644 drivers/base/power/opp/debugfs.c diff --git a/drivers/base/power/opp/Makefile b/drivers/base/power/opp/Makefile index 33c1e18c41a4..19837ef04d8e 100644 --- a/drivers/base/power/opp/Makefile +++ b/drivers/base/power/opp/Makefile @@ -1,2 +1,3 @@ ccflags-$(CONFIG_DEBUG_DRIVER) := -DDEBUG obj-y += core.o cpu.o +obj-$(CONFIG_DEBUG_FS) += debugfs.o diff --git a/drivers/base/power/opp/core.c b/drivers/base/power/opp/core.c index e822dc706d67..22d91d9b1b03 100644 --- a/drivers/base/power/opp/core.c +++ b/drivers/base/power/opp/core.c @@ -463,6 +463,7 @@ static void _kfree_list_dev_rcu(struct rcu_head *head) static void _remove_list_dev(struct device_list_opp *list_dev, struct device_opp *dev_opp) { + opp_debug_unregister(list_dev, dev_opp); list_del(&list_dev->node); call_srcu(&dev_opp->srcu_head.srcu, &list_dev->rcu_head, _kfree_list_dev_rcu); @@ -472,6 +473,7 @@ struct device_list_opp *_add_list_dev(const struct device *dev, struct device_opp *dev_opp) { struct device_list_opp *list_dev; + int ret; list_dev = kzalloc(sizeof(*list_dev), GFP_KERNEL); if (!list_dev) @@ -481,6 +483,12 @@ struct device_list_opp *_add_list_dev(const struct device *dev, list_dev->dev = dev; list_add_rcu(&list_dev->node, &dev_opp->dev_list); + /* Create debugfs entries for the dev_opp */ + ret = opp_debug_register(list_dev, dev_opp); + if (ret) + dev_err(dev, "%s: Failed to register opp debugfs (%d)\n", + __func__, ret); + return list_dev; } @@ -596,6 +604,7 @@ static void _opp_remove(struct device_opp *dev_opp, */ if (notify) srcu_notifier_call_chain(&dev_opp->srcu_head, OPP_EVENT_REMOVE, opp); + opp_debug_remove_one(opp); list_del_rcu(&opp->node); call_srcu(&dev_opp->srcu_head.srcu, &opp->rcu_head, _kfree_opp_rcu); @@ -673,6 +682,7 @@ static int _opp_add(struct device *dev, struct dev_pm_opp *new_opp, { struct dev_pm_opp *opp; struct list_head *head = &dev_opp->opp_list; + int ret; /* * Insert new OPP in order of increasing frequency and discard if @@ -703,6 +713,11 @@ static int _opp_add(struct device *dev, struct dev_pm_opp *new_opp, new_opp->dev_opp = dev_opp; list_add_rcu(&new_opp->node, head); + ret = opp_debug_create_one(new_opp, dev_opp); + if (ret) + dev_err(dev, "%s: Failed to register opp to debugfs (%d)\n", + __func__, ret); + return 0; } @@ -895,12 +910,14 @@ static int _opp_add_static_v2(struct device *dev, struct device_node *np) /* OPP to select on device suspend */ if (of_property_read_bool(np, "opp-suspend")) { - if (dev_opp->suspend_opp) + if (dev_opp->suspend_opp) { dev_warn(dev, "%s: Multiple suspend OPPs found (%lu %lu)\n", __func__, dev_opp->suspend_opp->rate, new_opp->rate); - else + } else { + new_opp->suspend = true; dev_opp->suspend_opp = new_opp; + } } if (new_opp->clock_latency_ns > dev_opp->clock_latency_ns_max) diff --git a/drivers/base/power/opp/debugfs.c b/drivers/base/power/opp/debugfs.c new file mode 100644 index 000000000000..ddfe4773e922 --- /dev/null +++ b/drivers/base/power/opp/debugfs.c @@ -0,0 +1,219 @@ +/* + * Generic OPP debugfs interface + * + * Copyright (C) 2015-2016 Viresh Kumar + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +#include +#include +#include +#include +#include + +#include "opp.h" + +static struct dentry *rootdir; + +static void opp_set_dev_name(const struct device *dev, char *name) +{ + if (dev->parent) + snprintf(name, NAME_MAX, "%s-%s", dev_name(dev->parent), + dev_name(dev)); + else + snprintf(name, NAME_MAX, "%s", dev_name(dev)); +} + +void opp_debug_remove_one(struct dev_pm_opp *opp) +{ + debugfs_remove_recursive(opp->dentry); +} + +int opp_debug_create_one(struct dev_pm_opp *opp, struct device_opp *dev_opp) +{ + struct dentry *pdentry = dev_opp->dentry; + struct dentry *d; + char name[25]; /* 20 chars for 64 bit value + 5 (opp:\0) */ + + /* Rate is unique to each OPP, use it to give opp-name */ + snprintf(name, sizeof(name), "opp:%lu", opp->rate); + + /* Create per-opp directory */ + d = debugfs_create_dir(name, pdentry); + if (!d) + return -ENOMEM; + + if (!debugfs_create_bool("available", S_IRUGO, d, &opp->available)) + return -ENOMEM; + + if (!debugfs_create_bool("dynamic", S_IRUGO, d, &opp->dynamic)) + return -ENOMEM; + + if (!debugfs_create_bool("turbo", S_IRUGO, d, &opp->turbo)) + return -ENOMEM; + + if (!debugfs_create_bool("suspend", S_IRUGO, d, &opp->suspend)) + return -ENOMEM; + + if (!debugfs_create_ulong("rate_hz", S_IRUGO, d, &opp->rate)) + return -ENOMEM; + + if (!debugfs_create_ulong("u_volt_target", S_IRUGO, d, &opp->u_volt)) + return -ENOMEM; + + if (!debugfs_create_ulong("u_volt_min", S_IRUGO, d, &opp->u_volt_min)) + return -ENOMEM; + + if (!debugfs_create_ulong("u_volt_max", S_IRUGO, d, &opp->u_volt_max)) + return -ENOMEM; + + if (!debugfs_create_ulong("u_amp", S_IRUGO, d, &opp->u_amp)) + return -ENOMEM; + + if (!debugfs_create_ulong("clock_latency_ns", S_IRUGO, d, + &opp->clock_latency_ns)) + return -ENOMEM; + + opp->dentry = d; + return 0; +} + +static int device_opp_debug_create_dir(struct device_list_opp *list_dev, + struct device_opp *dev_opp) +{ + const struct device *dev = list_dev->dev; + struct dentry *d; + + opp_set_dev_name(dev, dev_opp->dentry_name); + + /* Create device specific directory */ + d = debugfs_create_dir(dev_opp->dentry_name, rootdir); + if (!d) { + dev_err(dev, "%s: Failed to create debugfs dir\n", __func__); + return -ENOMEM; + } + + list_dev->dentry = d; + dev_opp->dentry = d; + + return 0; +} + +static int device_opp_debug_create_link(struct device_list_opp *list_dev, + struct device_opp *dev_opp) +{ + const struct device *dev = list_dev->dev; + char name[NAME_MAX]; + struct dentry *d; + + opp_set_dev_name(list_dev->dev, name); + + /* Create device specific directory link */ + d = debugfs_create_symlink(name, rootdir, dev_opp->dentry_name); + if (!d) { + dev_err(dev, "%s: Failed to create link\n", __func__); + return -ENOMEM; + } + + list_dev->dentry = d; + + return 0; +} + +/** + * opp_debug_register - add a device opp node to the debugfs 'opp' directory + * @list_dev: list-dev pointer for device + * @dev_opp: the device-opp being added + * + * Dynamically adds device specific directory in debugfs 'opp' directory. If the + * device-opp is shared with other devices, then links will be created for all + * devices except the first. + * + * Return: 0 on success, otherwise negative error. + */ +int opp_debug_register(struct device_list_opp *list_dev, + struct device_opp *dev_opp) +{ + if (!rootdir) { + pr_debug("%s: Uninitialized rootdir\n", __func__); + return -EINVAL; + } + + if (dev_opp->dentry) + return device_opp_debug_create_link(list_dev, dev_opp); + + return device_opp_debug_create_dir(list_dev, dev_opp); +} + +static void opp_migrate_dentry(struct device_list_opp *list_dev, + struct device_opp *dev_opp) +{ + struct device_list_opp *new_dev; + const struct device *dev; + struct dentry *dentry; + + /* Look for next list-dev */ + list_for_each_entry(new_dev, &dev_opp->dev_list, node) + if (new_dev != list_dev) + break; + + /* new_dev is guaranteed to be valid here */ + dev = new_dev->dev; + debugfs_remove_recursive(new_dev->dentry); + + opp_set_dev_name(dev, dev_opp->dentry_name); + + dentry = debugfs_rename(rootdir, list_dev->dentry, rootdir, + dev_opp->dentry_name); + if (!dentry) { + dev_err(dev, "%s: Failed to rename link from: %s to %s\n", + __func__, dev_name(list_dev->dev), dev_name(dev)); + return; + } + + new_dev->dentry = dentry; + dev_opp->dentry = dentry; +} + +/** + * opp_debug_unregister - remove a device opp node from debugfs opp directory + * @list_dev: list-dev pointer for device + * @dev_opp: the device-opp being removed + * + * Dynamically removes device specific directory from debugfs 'opp' directory. + */ +void opp_debug_unregister(struct device_list_opp *list_dev, + struct device_opp *dev_opp) +{ + if (list_dev->dentry == dev_opp->dentry) { + /* Move the real dentry object under another device */ + if (!list_is_singular(&dev_opp->dev_list)) { + opp_migrate_dentry(list_dev, dev_opp); + goto out; + } + dev_opp->dentry = NULL; + } + + debugfs_remove_recursive(list_dev->dentry); + +out: + list_dev->dentry = NULL; +} + +static int __init opp_debug_init(void) +{ + /* Create /sys/kernel/debug/opp directory */ + rootdir = debugfs_create_dir("opp", NULL); + if (!rootdir) { + pr_err("%s: Failed to create root directory\n", __func__); + return -ENOMEM; + } + + return 0; +} +core_initcall(opp_debug_init); diff --git a/drivers/base/power/opp/opp.h b/drivers/base/power/opp/opp.h index 7366b2aa8997..a6bd8d2c2b47 100644 --- a/drivers/base/power/opp/opp.h +++ b/drivers/base/power/opp/opp.h @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -53,6 +54,7 @@ extern struct mutex dev_opp_list_lock; * @dynamic: not-created from static DT entries. * @available: true/false - marks if this OPP as available or not * @turbo: true if turbo (boost) OPP + * @suspend: true if suspend OPP * @rate: Frequency in hertz * @u_volt: Target voltage in microvolts corresponding to this OPP * @u_volt_min: Minimum voltage in microvolts corresponding to this OPP @@ -63,6 +65,7 @@ extern struct mutex dev_opp_list_lock; * @dev_opp: points back to the device_opp struct this opp belongs to * @rcu_head: RCU callback head used for deferred freeing * @np: OPP's device node. + * @dentry: debugfs dentry pointer (per opp) * * This structure stores the OPP information for a given device. */ @@ -72,6 +75,7 @@ struct dev_pm_opp { bool available; bool dynamic; bool turbo; + bool suspend; unsigned long rate; unsigned long u_volt; @@ -84,6 +88,10 @@ struct dev_pm_opp { struct rcu_head rcu_head; struct device_node *np; + +#ifdef CONFIG_DEBUG_FS + struct dentry *dentry; +#endif }; /** @@ -91,6 +99,7 @@ struct dev_pm_opp { * @node: list node * @dev: device to which the struct object belongs * @rcu_head: RCU callback head used for deferred freeing + * @dentry: debugfs dentry pointer (per device) * * This is an internal data structure maintaining the list of devices that are * managed by 'struct device_opp'. @@ -99,6 +108,10 @@ struct device_list_opp { struct list_head node; const struct device *dev; struct rcu_head rcu_head; + +#ifdef CONFIG_DEBUG_FS + struct dentry *dentry; +#endif }; /** @@ -114,6 +127,8 @@ struct device_list_opp { * @opp_list: list of opps * @np: struct device_node pointer for opp's DT node. * @shared_opp: OPP is shared between multiple devices. + * @dentry: debugfs dentry pointer of the real device directory (not links). + * @dentry_name: Name of the real dentry. * * This is an internal data structure maintaining the link to opps attached to * a device. This structure is not meant to be shared to users as it is @@ -135,6 +150,11 @@ struct device_opp { unsigned long clock_latency_ns_max; bool shared_opp; struct dev_pm_opp *suspend_opp; + +#ifdef CONFIG_DEBUG_FS + struct dentry *dentry; + char dentry_name[NAME_MAX]; +#endif }; /* Routines internal to opp core */ @@ -143,4 +163,26 @@ struct device_list_opp *_add_list_dev(const struct device *dev, struct device_opp *dev_opp); struct device_node *_of_get_opp_desc_node(struct device *dev); +#ifdef CONFIG_DEBUG_FS +void opp_debug_remove_one(struct dev_pm_opp *opp); +int opp_debug_create_one(struct dev_pm_opp *opp, struct device_opp *dev_opp); +int opp_debug_register(struct device_list_opp *list_dev, + struct device_opp *dev_opp); +void opp_debug_unregister(struct device_list_opp *list_dev, + struct device_opp *dev_opp); +#else +static inline void opp_debug_remove_one(struct dev_pm_opp *opp) {} + +static inline int opp_debug_create_one(struct dev_pm_opp *opp, + struct device_opp *dev_opp) +{ return 0; } +static inline int opp_debug_register(struct device_list_opp *list_dev, + struct device_opp *dev_opp) +{ return 0; } + +static inline void opp_debug_unregister(struct device_list_opp *list_dev, + struct device_opp *dev_opp) +{ } +#endif /* DEBUG_FS */ + #endif /* __DRIVER_OPP_H__ */ From 62d4f874b71c9ffbd9510739e5770d101b99d40d Mon Sep 17 00:00:00 2001 From: Viresh Kumar Date: Tue, 9 Jun 2020 12:09:14 +0800 Subject: [PATCH 0847/1149] PM / OPP: Add "opp-supported-hw" binding commit 1c4d12de2719dfdf27c6dab31e7a5641ee293c94 upstream. We may want to enable only a subset of OPPs, from the bigger list of OPPs, based on what version of the hardware we are running on. This would enable us to not duplicate OPP tables for every version of the hardware we support. To enable that, this patch defines a new property 'opp-supported-hw'. It can support any number of hierarchy levels of the versions the hardware follows. And based on the selected hardware versions, we can pick only the relevant OPPs at runtime. Reviewed-by: Stephen Boyd Acked-by: Rob Herring Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/opp/opp.txt | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/Documentation/devicetree/bindings/opp/opp.txt b/Documentation/devicetree/bindings/opp/opp.txt index 0cb44dc21f97..d072fa0ffbd4 100644 --- a/Documentation/devicetree/bindings/opp/opp.txt +++ b/Documentation/devicetree/bindings/opp/opp.txt @@ -123,6 +123,26 @@ Optional properties: - opp-suspend: Marks the OPP to be used during device suspend. Only one OPP in the table should have this. +- opp-supported-hw: This enables us to select only a subset of OPPs from the + larger OPP table, based on what version of the hardware we are running on. We + still can't have multiple nodes with the same opp-hz value in OPP table. + + It's an user defined array containing a hierarchy of hardware version numbers, + supported by the OPP. For example: a platform with hierarchy of three levels + of versions (A, B and C), this field should be like , where X + corresponds to Version hierarchy A, Y corresponds to version hierarchy B and Z + corresponds to version hierarchy C. + + Each level of hierarchy is represented by a 32 bit value, and so there can be + only 32 different supported version per hierarchy. i.e. 1 bit per version. A + value of 0xFFFFFFFF will enable the OPP for all versions for that hierarchy + level. And a value of 0x00000000 will disable the OPP completely, and so we + never want that to happen. + + If 32 values aren't sufficient for a version hierarchy, than that version + hierarchy can be contained in multiple 32 bit values. i.e. in the + above example, Z1 & Z2 refer to the version hierarchy Z. + - status: Marks the node enabled/disabled. Example 1: Single cluster Dual-core ARM cortex A9, switch DVFS states together. @@ -463,3 +483,48 @@ Example 5: Multiple OPP tables }; }; }; + +Example 6: opp-supported-hw +(example: three level hierarchy of versions: cuts, substrate and process) + +/ { + cpus { + cpu@0 { + compatible = "arm,cortex-a7"; + ... + + cpu-supply = <&cpu_supply> + operating-points-v2 = <&cpu0_opp_table_slow>; + }; + }; + + opp_table { + compatible = "operating-points-v2"; + status = "okay"; + opp-shared; + + opp00 { + /* + * Supports all substrate and process versions for 0xF + * cuts, i.e. only first four cuts. + */ + opp-supported-hw = <0xF 0xFFFFFFFF 0xFFFFFFFF> + opp-hz = /bits/ 64 <600000000>; + opp-microvolt = <900000 915000 925000>; + ... + }; + + opp01 { + /* + * Supports: + * - cuts: only one, 6th cut (represented by 6th bit). + * - substrate: supports 16 different substrate versions + * - process: supports 9 different process versions + */ + opp-supported-hw = <0x20 0xff0000ff 0x0000f4f0> + opp-hz = /bits/ 64 <800000000>; + opp-microvolt = <900000 915000 925000>; + ... + }; + }; +}; From dcf832f19fb71cfcf199dc42cc6455b418ecc2b1 Mon Sep 17 00:00:00 2001 From: Viresh Kumar Date: Tue, 9 Jun 2020 12:09:15 +0800 Subject: [PATCH 0848/1149] PM / OPP: Add {opp-microvolt|opp-microamp}- binding commit ffdb8cc7a27c89175e541e68e2a73f1f63ab8c6b upstream. Depending on the version of hardware or its properties, which are only known at runtime, various properties of the OPP can change. For example, an OPP with frequency 1.2 GHz, may have different voltage/current requirements based on the version of the hardware it is running on. In order to not replicate the same OPP tables for varying values of all such fields, this commit introduces the concept of opp-property-. The can be chosen by the platform at runtime, and OPPs will be initialized depending on that name string. Currently support is extended for the following properties: - opp-microvolt- - opp-microamp- If the name string isn't provided by the platform, or if it is provided but doesn't match the properties present in the OPP node, we will fall back to the original properties without the - string, if they are available. Reviewed-by: Stephen Boyd Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/opp/opp.txt | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/Documentation/devicetree/bindings/opp/opp.txt b/Documentation/devicetree/bindings/opp/opp.txt index d072fa0ffbd4..a3e7f0d5e1fb 100644 --- a/Documentation/devicetree/bindings/opp/opp.txt +++ b/Documentation/devicetree/bindings/opp/opp.txt @@ -100,6 +100,14 @@ Optional properties: Entries for multiple regulators must be present in the same order as regulators are specified in device's DT node. +- opp-microvolt-: Named opp-microvolt property. This is exactly similar to + the above opp-microvolt property, but allows multiple voltage ranges to be + provided for the same OPP. At runtime, the platform can pick a and + matching opp-microvolt- property will be enabled for all OPPs. If the + platform doesn't pick a specific or the doesn't match with any + opp-microvolt- properties, then opp-microvolt property shall be used, if + present. + - opp-microamp: The maximum current drawn by the device in microamperes considering system specific parameters (such as transients, process, aging, maximum operating temperature range etc.) as necessary. This may be used to @@ -112,6 +120,9 @@ Optional properties: for few regulators, then this should be marked as zero for them. If it isn't required for any regulator, then this property need not be present. +- opp-microamp-: Named opp-microamp property. Similar to + opp-microvolt- property, but for microamp instead. + - clock-latency-ns: Specifies the maximum possible transition latency (in nanoseconds) for switching to this OPP from any other OPP. @@ -528,3 +539,39 @@ Example 6: opp-supported-hw }; }; }; + +Example 7: opp-microvolt-, opp-microamp-: +(example: device with two possible microvolt ranges: slow and fast) + +/ { + cpus { + cpu@0 { + compatible = "arm,cortex-a7"; + ... + + operating-points-v2 = <&cpu0_opp_table>; + }; + }; + + cpu0_opp_table: opp_table0 { + compatible = "operating-points-v2"; + opp-shared; + + opp00 { + opp-hz = /bits/ 64 <1000000000>; + opp-microvolt-slow = <900000 915000 925000>; + opp-microvolt-fast = <970000 975000 985000>; + opp-microamp-slow = <70000>; + opp-microamp-fast = <71000>; + }; + + opp01 { + opp-hz = /bits/ 64 <1200000000>; + opp-microvolt-slow = <900000 915000 925000>, /* Supply vcc0 */ + <910000 925000 935000>; /* Supply vcc1 */ + opp-microvolt-fast = <970000 975000 985000>, /* Supply vcc0 */ + <960000 965000 975000>; /* Supply vcc1 */ + opp-microamp = <70000>; /* Will be used for both slow/fast */ + }; + }; +}; From b070a6f27c982f46713a3bb4d3c67ce3d641b800 Mon Sep 17 00:00:00 2001 From: Viresh Kumar Date: Tue, 9 Jun 2020 12:09:16 +0800 Subject: [PATCH 0849/1149] PM / OPP: Remove 'operating-points-names' binding commit af87a39a5f7cf6ef252b1aec3e2e6508a40e51f1 upstream. These aren't used until now by any DT files and wouldn't be used now as we have a better scheme in place now, i.e. opp-property- properties. Remove the (useless) binding without breaking ABI. Reviewed-by: Stephen Boyd Acked-by: Rob Herring Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/opp/opp.txt | 62 +------------------ 1 file changed, 2 insertions(+), 60 deletions(-) diff --git a/Documentation/devicetree/bindings/opp/opp.txt b/Documentation/devicetree/bindings/opp/opp.txt index a3e7f0d5e1fb..24eac9a97749 100644 --- a/Documentation/devicetree/bindings/opp/opp.txt +++ b/Documentation/devicetree/bindings/opp/opp.txt @@ -45,21 +45,10 @@ Devices supporting OPPs must set their "operating-points-v2" property with phandle to a OPP table in their DT node. The OPP core will use this phandle to find the operating points for the device. -Devices may want to choose OPP tables at runtime and so can provide a list of -phandles here. But only *one* of them should be chosen at runtime. This must be -accompanied by a corresponding "operating-points-names" property, to uniquely -identify the OPP tables. - If required, this can be extended for SoC vendor specfic bindings. Such bindings should be documented as Documentation/devicetree/bindings/power/-opp.txt and should have a compatible description like: "operating-points-v2-". -Optional properties: -- operating-points-names: Names of OPP tables (required if multiple OPP - tables are present), to uniquely identify them. The same list must be present - for all the CPUs which are sharing clock/voltage rails and hence the OPP - tables. - * OPP Table Node This describes the OPPs belonging to a device. This node can have following @@ -448,54 +437,7 @@ Example 4: Handling multiple regulators }; }; -Example 5: Multiple OPP tables - -/ { - cpus { - cpu@0 { - compatible = "arm,cortex-a7"; - ... - - cpu-supply = <&cpu_supply> - operating-points-v2 = <&cpu0_opp_table_slow>, <&cpu0_opp_table_fast>; - operating-points-names = "slow", "fast"; - }; - }; - - cpu0_opp_table_slow: opp_table_slow { - compatible = "operating-points-v2"; - status = "okay"; - opp-shared; - - opp00 { - opp-hz = /bits/ 64 <600000000>; - ... - }; - - opp01 { - opp-hz = /bits/ 64 <800000000>; - ... - }; - }; - - cpu0_opp_table_fast: opp_table_fast { - compatible = "operating-points-v2"; - status = "okay"; - opp-shared; - - opp10 { - opp-hz = /bits/ 64 <1000000000>; - ... - }; - - opp11 { - opp-hz = /bits/ 64 <1100000000>; - ... - }; - }; -}; - -Example 6: opp-supported-hw +Example 5: opp-supported-hw (example: three level hierarchy of versions: cuts, substrate and process) / { @@ -540,7 +482,7 @@ Example 6: opp-supported-hw }; }; -Example 7: opp-microvolt-, opp-microamp-: +Example 6: opp-microvolt-, opp-microamp-: (example: device with two possible microvolt ranges: slow and fast) / { From 637e6e49474c9a2160178b60d347345e52166f76 Mon Sep 17 00:00:00 2001 From: Viresh Kumar Date: Tue, 9 Jun 2020 12:09:17 +0800 Subject: [PATCH 0850/1149] PM / OPP: Rename OPP nodes as opp@ commit 754dcf35f34698661801ae1d391efa02affe83a7 upstream. It would be better to name OPP nodes as opp@ as that will ensure that multiple DT nodes don't contain the same frequency. Of course we expect the writer to name the node with its opp-hz frequency and not any other frequency. And that will let the compile error out if multiple nodes are using the same opp-hz frequency. Suggested-by: Stephen Boyd Reviewed-by: Stephen Boyd Acked-by: Rob Herring Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/opp/opp.txt | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/Documentation/devicetree/bindings/opp/opp.txt b/Documentation/devicetree/bindings/opp/opp.txt index 24eac9a97749..601256fe8c0d 100644 --- a/Documentation/devicetree/bindings/opp/opp.txt +++ b/Documentation/devicetree/bindings/opp/opp.txt @@ -177,20 +177,20 @@ Example 1: Single cluster Dual-core ARM cortex A9, switch DVFS states together. compatible = "operating-points-v2"; opp-shared; - opp00 { + opp@1000000000 { opp-hz = /bits/ 64 <1000000000>; opp-microvolt = <970000 975000 985000>; opp-microamp = <70000>; clock-latency-ns = <300000>; opp-suspend; }; - opp01 { + opp@1100000000 { opp-hz = /bits/ 64 <1100000000>; opp-microvolt = <980000 1000000 1010000>; opp-microamp = <80000>; clock-latency-ns = <310000>; }; - opp02 { + opp@1200000000 { opp-hz = /bits/ 64 <1200000000>; opp-microvolt = <1025000>; clock-latency-ns = <290000>; @@ -256,20 +256,20 @@ independently. * independently. */ - opp00 { + opp@1000000000 { opp-hz = /bits/ 64 <1000000000>; opp-microvolt = <970000 975000 985000>; opp-microamp = <70000>; clock-latency-ns = <300000>; opp-suspend; }; - opp01 { + opp@1100000000 { opp-hz = /bits/ 64 <1100000000>; opp-microvolt = <980000 1000000 1010000>; opp-microamp = <80000>; clock-latency-ns = <310000>; }; - opp02 { + opp@1200000000 { opp-hz = /bits/ 64 <1200000000>; opp-microvolt = <1025000>; opp-microamp = <90000; @@ -332,20 +332,20 @@ DVFS state together. compatible = "operating-points-v2"; opp-shared; - opp00 { + opp@1000000000 { opp-hz = /bits/ 64 <1000000000>; opp-microvolt = <970000 975000 985000>; opp-microamp = <70000>; clock-latency-ns = <300000>; opp-suspend; }; - opp01 { + opp@1100000000 { opp-hz = /bits/ 64 <1100000000>; opp-microvolt = <980000 1000000 1010000>; opp-microamp = <80000>; clock-latency-ns = <310000>; }; - opp02 { + opp@1200000000 { opp-hz = /bits/ 64 <1200000000>; opp-microvolt = <1025000>; opp-microamp = <90000>; @@ -358,20 +358,20 @@ DVFS state together. compatible = "operating-points-v2"; opp-shared; - opp10 { + opp@1300000000 { opp-hz = /bits/ 64 <1300000000>; opp-microvolt = <1045000 1050000 1055000>; opp-microamp = <95000>; clock-latency-ns = <400000>; opp-suspend; }; - opp11 { + opp@1400000000 { opp-hz = /bits/ 64 <1400000000>; opp-microvolt = <1075000>; opp-microamp = <100000>; clock-latency-ns = <400000>; }; - opp12 { + opp@1500000000 { opp-hz = /bits/ 64 <1500000000>; opp-microvolt = <1010000 1100000 1110000>; opp-microamp = <95000>; @@ -398,7 +398,7 @@ Example 4: Handling multiple regulators compatible = "operating-points-v2"; opp-shared; - opp00 { + opp@1000000000 { opp-hz = /bits/ 64 <1000000000>; opp-microvolt = <970000>, /* Supply 0 */ <960000>, /* Supply 1 */ @@ -411,7 +411,7 @@ Example 4: Handling multiple regulators /* OR */ - opp00 { + opp@1000000000 { opp-hz = /bits/ 64 <1000000000>; opp-microvolt = <970000 975000 985000>, /* Supply 0 */ <960000 965000 975000>, /* Supply 1 */ @@ -424,7 +424,7 @@ Example 4: Handling multiple regulators /* OR */ - opp00 { + opp@1000000000 { opp-hz = /bits/ 64 <1000000000>; opp-microvolt = <970000 975000 985000>, /* Supply 0 */ <960000 965000 975000>, /* Supply 1 */ @@ -456,7 +456,7 @@ Example 5: opp-supported-hw status = "okay"; opp-shared; - opp00 { + opp@600000000 { /* * Supports all substrate and process versions for 0xF * cuts, i.e. only first four cuts. @@ -467,7 +467,7 @@ Example 5: opp-supported-hw ... }; - opp01 { + opp@800000000 { /* * Supports: * - cuts: only one, 6th cut (represented by 6th bit). @@ -499,7 +499,7 @@ Example 6: opp-microvolt-, opp-microamp-: compatible = "operating-points-v2"; opp-shared; - opp00 { + opp@1000000000 { opp-hz = /bits/ 64 <1000000000>; opp-microvolt-slow = <900000 915000 925000>; opp-microvolt-fast = <970000 975000 985000>; @@ -507,7 +507,7 @@ Example 6: opp-microvolt-, opp-microamp-: opp-microamp-fast = <71000>; }; - opp01 { + opp@1200000000 { opp-hz = /bits/ 64 <1200000000>; opp-microvolt-slow = <900000 915000 925000>, /* Supply vcc0 */ <910000 925000 935000>; /* Supply vcc1 */ From 62a5979611fbadc4bc5f25b8fa27442a21f8059b Mon Sep 17 00:00:00 2001 From: Viresh Kumar Date: Tue, 9 Jun 2020 12:09:18 +0800 Subject: [PATCH 0851/1149] PM / OPP: Add missing doc comments commit dc4e7b1fa20a840d2317fcfdaa1064fc09d2afcb upstream. Few doc-style comments were missing, add them. Rearrange another one to match the sequence within the structure. Signed-off-by: Viresh Kumar Acked-by: Pavel Machek Reviewed-by: Stephen Boyd Signed-off-by: Rafael J. Wysocki Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek --- drivers/base/power/opp/opp.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/base/power/opp/opp.h b/drivers/base/power/opp/opp.h index a6bd8d2c2b47..b8880c7f8be1 100644 --- a/drivers/base/power/opp/opp.h +++ b/drivers/base/power/opp/opp.h @@ -51,8 +51,8 @@ extern struct mutex dev_opp_list_lock; * are protected by the dev_opp_list_lock for integrity. * IMPORTANT: the opp nodes should be maintained in increasing * order. - * @dynamic: not-created from static DT entries. * @available: true/false - marks if this OPP as available or not + * @dynamic: not-created from static DT entries. * @turbo: true if turbo (boost) OPP * @suspend: true if suspend OPP * @rate: Frequency in hertz @@ -126,7 +126,9 @@ struct device_list_opp { * @dev_list: list of devices that share these OPPs * @opp_list: list of opps * @np: struct device_node pointer for opp's DT node. + * @clock_latency_ns_max: Max clock latency in nanoseconds. * @shared_opp: OPP is shared between multiple devices. + * @suspend_opp: Pointer to OPP to be used during device suspend. * @dentry: debugfs dentry pointer of the real device directory (not links). * @dentry_name: Name of the real dentry. * From 27102a55f2feb9bba63459cc2baa66b8b3bf23b0 Mon Sep 17 00:00:00 2001 From: Viresh Kumar Date: Tue, 9 Jun 2020 12:09:19 +0800 Subject: [PATCH 0852/1149] PM / OPP: Parse 'opp-supported-hw' binding commit 7de36b0aa51a5a59e28fb2da768fa3ab07de0674 upstream. OPP bindings allow a platform to enable OPPs based on the version of the hardware they are used for. Add support to the OPP-core to parse these bindings, by introducing dev_pm_opp_{set|put}_supported_hw() APIs. Signed-off-by: Viresh Kumar Tested-by: Lee Jones Signed-off-by: Rafael J. Wysocki Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek --- drivers/base/power/opp/core.c | 148 ++++++++++++++++++++++++++++++++++ drivers/base/power/opp/opp.h | 5 ++ include/linux/pm_opp.h | 13 +++ 3 files changed, 166 insertions(+) diff --git a/drivers/base/power/opp/core.c b/drivers/base/power/opp/core.c index 22d91d9b1b03..a73433c3cbe4 100644 --- a/drivers/base/power/opp/core.c +++ b/drivers/base/power/opp/core.c @@ -559,6 +559,9 @@ static void _remove_device_opp(struct device_opp *dev_opp) if (!list_empty(&dev_opp->opp_list)) return; + if (dev_opp->supported_hw) + return; + list_dev = list_first_entry(&dev_opp->dev_list, struct device_list_opp, node); @@ -839,6 +842,145 @@ static int opp_parse_supplies(struct dev_pm_opp *opp, struct device *dev) return 0; } +/** + * dev_pm_opp_set_supported_hw() - Set supported platforms + * @dev: Device for which supported-hw has to be set. + * @versions: Array of hierarchy of versions to match. + * @count: Number of elements in the array. + * + * This is required only for the V2 bindings, and it enables a platform to + * specify the hierarchy of versions it supports. OPP layer will then enable + * OPPs, which are available for those versions, based on its 'opp-supported-hw' + * property. + * + * Locking: The internal device_opp and opp structures are RCU protected. + * Hence this function internally uses RCU updater strategy with mutex locks + * to keep the integrity of the internal data structures. Callers should ensure + * that this function is *NOT* called under RCU protection or in contexts where + * mutex cannot be locked. + */ +int dev_pm_opp_set_supported_hw(struct device *dev, const u32 *versions, + unsigned int count) +{ + struct device_opp *dev_opp; + int ret = 0; + + /* Hold our list modification lock here */ + mutex_lock(&dev_opp_list_lock); + + dev_opp = _add_device_opp(dev); + if (!dev_opp) { + ret = -ENOMEM; + goto unlock; + } + + /* Make sure there are no concurrent readers while updating dev_opp */ + WARN_ON(!list_empty(&dev_opp->opp_list)); + + /* Do we already have a version hierarchy associated with dev_opp? */ + if (dev_opp->supported_hw) { + dev_err(dev, "%s: Already have supported hardware list\n", + __func__); + ret = -EBUSY; + goto err; + } + + dev_opp->supported_hw = kmemdup(versions, count * sizeof(*versions), + GFP_KERNEL); + if (!dev_opp->supported_hw) { + ret = -ENOMEM; + goto err; + } + + dev_opp->supported_hw_count = count; + mutex_unlock(&dev_opp_list_lock); + return 0; + +err: + _remove_device_opp(dev_opp); +unlock: + mutex_unlock(&dev_opp_list_lock); + + return ret; +} +EXPORT_SYMBOL_GPL(dev_pm_opp_set_supported_hw); + +/** + * dev_pm_opp_put_supported_hw() - Releases resources blocked for supported hw + * @dev: Device for which supported-hw has to be set. + * + * This is required only for the V2 bindings, and is called for a matching + * dev_pm_opp_set_supported_hw(). Until this is called, the device_opp structure + * will not be freed. + * + * Locking: The internal device_opp and opp structures are RCU protected. + * Hence this function internally uses RCU updater strategy with mutex locks + * to keep the integrity of the internal data structures. Callers should ensure + * that this function is *NOT* called under RCU protection or in contexts where + * mutex cannot be locked. + */ +void dev_pm_opp_put_supported_hw(struct device *dev) +{ + struct device_opp *dev_opp; + + /* Hold our list modification lock here */ + mutex_lock(&dev_opp_list_lock); + + /* Check for existing list for 'dev' first */ + dev_opp = _find_device_opp(dev); + if (IS_ERR(dev_opp)) { + dev_err(dev, "Failed to find dev_opp: %ld\n", PTR_ERR(dev_opp)); + goto unlock; + } + + /* Make sure there are no concurrent readers while updating dev_opp */ + WARN_ON(!list_empty(&dev_opp->opp_list)); + + if (!dev_opp->supported_hw) { + dev_err(dev, "%s: Doesn't have supported hardware list\n", + __func__); + goto unlock; + } + + kfree(dev_opp->supported_hw); + dev_opp->supported_hw = NULL; + dev_opp->supported_hw_count = 0; + + /* Try freeing device_opp if this was the last blocking resource */ + _remove_device_opp(dev_opp); + +unlock: + mutex_unlock(&dev_opp_list_lock); +} +EXPORT_SYMBOL_GPL(dev_pm_opp_put_supported_hw); + +static bool _opp_is_supported(struct device *dev, struct device_opp *dev_opp, + struct device_node *np) +{ + unsigned int count = dev_opp->supported_hw_count; + u32 version; + int ret; + + if (!dev_opp->supported_hw) + return true; + + while (count--) { + ret = of_property_read_u32_index(np, "opp-supported-hw", count, + &version); + if (ret) { + dev_warn(dev, "%s: failed to read opp-supported-hw property at index %d: %d\n", + __func__, count, ret); + return false; + } + + /* Both of these are bitwise masks of the versions */ + if (!(version & dev_opp->supported_hw[count])) + return false; + } + + return true; +} + /** * _opp_add_static_v2() - Allocate static OPPs (As per 'v2' DT bindings) * @dev: device for which we do this operation @@ -885,6 +1027,12 @@ static int _opp_add_static_v2(struct device *dev, struct device_node *np) goto free_opp; } + /* Check if the OPP supports hardware's hierarchy of versions or not */ + if (!_opp_is_supported(dev, dev_opp, np)) { + dev_dbg(dev, "OPP not supported by hardware: %llu\n", rate); + goto free_opp; + } + /* * Rate is defined as an unsigned long in clk API, and so casting * explicitly to its type. Must be fixed once rate is 64 bit diff --git a/drivers/base/power/opp/opp.h b/drivers/base/power/opp/opp.h index b8880c7f8be1..70f4564a6ab9 100644 --- a/drivers/base/power/opp/opp.h +++ b/drivers/base/power/opp/opp.h @@ -129,6 +129,8 @@ struct device_list_opp { * @clock_latency_ns_max: Max clock latency in nanoseconds. * @shared_opp: OPP is shared between multiple devices. * @suspend_opp: Pointer to OPP to be used during device suspend. + * @supported_hw: Array of version number to support. + * @supported_hw_count: Number of elements in supported_hw array. * @dentry: debugfs dentry pointer of the real device directory (not links). * @dentry_name: Name of the real dentry. * @@ -153,6 +155,9 @@ struct device_opp { bool shared_opp; struct dev_pm_opp *suspend_opp; + unsigned int *supported_hw; + unsigned int supported_hw_count; + #ifdef CONFIG_DEBUG_FS struct dentry *dentry; char dentry_name[NAME_MAX]; diff --git a/include/linux/pm_opp.h b/include/linux/pm_opp.h index 9a2e50337af9..3a85110242f0 100644 --- a/include/linux/pm_opp.h +++ b/include/linux/pm_opp.h @@ -55,6 +55,9 @@ int dev_pm_opp_enable(struct device *dev, unsigned long freq); int dev_pm_opp_disable(struct device *dev, unsigned long freq); struct srcu_notifier_head *dev_pm_opp_get_notifier(struct device *dev); +int dev_pm_opp_set_supported_hw(struct device *dev, const u32 *versions, + unsigned int count); +void dev_pm_opp_put_supported_hw(struct device *dev); #else static inline unsigned long dev_pm_opp_get_voltage(struct dev_pm_opp *opp) { @@ -129,6 +132,16 @@ static inline struct srcu_notifier_head *dev_pm_opp_get_notifier( { return ERR_PTR(-EINVAL); } + +static inline int dev_pm_opp_set_supported_hw(struct device *dev, + const u32 *versions, + unsigned int count) +{ + return -EINVAL; +} + +static inline void dev_pm_opp_put_supported_hw(struct device *dev) {} + #endif /* CONFIG_PM_OPP */ #if defined(CONFIG_PM_OPP) && defined(CONFIG_OF) From 2d51057f25ac2001ae39261e2167a80e777d2c41 Mon Sep 17 00:00:00 2001 From: Viresh Kumar Date: Tue, 9 Jun 2020 12:09:20 +0800 Subject: [PATCH 0853/1149] PM / OPP: Parse 'opp--' bindings commit 01fb4d3c39d35b725441e8a9a26b3f3ad67793ed upstream. commit fd8d8e63467c922be9ae4452cca2980d473477d9 upstream squashed in. OPP bindings (for few properties) allow a platform to choose a value/range among a set of available options. The options are present as opp--, where the platform needs to supply the string. The OPP properties which allow such an option are: opp-microvolt and opp-microamp. Add support to the OPP-core to parse these bindings, by introducing dev_pm_opp_{set|put}_prop_name() APIs. Signed-off-by: Viresh Kumar Tested-by: Lee Jones Signed-off-by: Rafael J. Wysocki [wens: Squashed in Bartlomiej Zolnierkiewicz's upstream commit fd8d8e63467c922be9ae4452cca2980d473477d9 to fix a bug] Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek --- drivers/base/power/opp/core.c | 165 ++++++++++++++++++++++++++++++---- drivers/base/power/opp/opp.h | 2 + include/linux/pm_opp.h | 9 ++ 3 files changed, 161 insertions(+), 15 deletions(-) diff --git a/drivers/base/power/opp/core.c b/drivers/base/power/opp/core.c index a73433c3cbe4..504a6d4e4672 100644 --- a/drivers/base/power/opp/core.c +++ b/drivers/base/power/opp/core.c @@ -562,6 +562,9 @@ static void _remove_device_opp(struct device_opp *dev_opp) if (dev_opp->supported_hw) return; + if (dev_opp->prop_name) + return; + list_dev = list_first_entry(&dev_opp->dev_list, struct device_list_opp, node); @@ -794,35 +797,48 @@ static int _opp_add_v1(struct device *dev, unsigned long freq, long u_volt, } /* TODO: Support multiple regulators */ -static int opp_parse_supplies(struct dev_pm_opp *opp, struct device *dev) +static int opp_parse_supplies(struct dev_pm_opp *opp, struct device *dev, + struct device_opp *dev_opp) { u32 microvolt[3] = {0}; u32 val; int count, ret; + struct property *prop = NULL; + char name[NAME_MAX]; + + /* Search for "opp-microvolt-" */ + if (dev_opp->prop_name) { + sprintf(name, "opp-microvolt-%s", dev_opp->prop_name); + prop = of_find_property(opp->np, name, NULL); + } + + if (!prop) { + /* Search for "opp-microvolt" */ + sprintf(name, "opp-microvolt"); + prop = of_find_property(opp->np, name, NULL); - /* Missing property isn't a problem, but an invalid entry is */ - if (!of_find_property(opp->np, "opp-microvolt", NULL)) - return 0; + /* Missing property isn't a problem, but an invalid entry is */ + if (!prop) + return 0; + } - count = of_property_count_u32_elems(opp->np, "opp-microvolt"); + count = of_property_count_u32_elems(opp->np, name); if (count < 0) { - dev_err(dev, "%s: Invalid opp-microvolt property (%d)\n", - __func__, count); + dev_err(dev, "%s: Invalid %s property (%d)\n", + __func__, name, count); return count; } /* There can be one or three elements here */ if (count != 1 && count != 3) { - dev_err(dev, "%s: Invalid number of elements in opp-microvolt property (%d)\n", - __func__, count); + dev_err(dev, "%s: Invalid number of elements in %s property (%d)\n", + __func__, name, count); return -EINVAL; } - ret = of_property_read_u32_array(opp->np, "opp-microvolt", microvolt, - count); + ret = of_property_read_u32_array(opp->np, name, microvolt, count); if (ret) { - dev_err(dev, "%s: error parsing opp-microvolt: %d\n", __func__, - ret); + dev_err(dev, "%s: error parsing %s: %d\n", __func__, name, ret); return -EINVAL; } @@ -836,7 +852,20 @@ static int opp_parse_supplies(struct dev_pm_opp *opp, struct device *dev) opp->u_volt_max = microvolt[2]; } - if (!of_property_read_u32(opp->np, "opp-microamp", &val)) + /* Search for "opp-microamp-" */ + prop = NULL; + if (dev_opp->prop_name) { + sprintf(name, "opp-microamp-%s", dev_opp->prop_name); + prop = of_find_property(opp->np, name, NULL); + } + + if (!prop) { + /* Search for "opp-microamp" */ + sprintf(name, "opp-microamp"); + prop = of_find_property(opp->np, name, NULL); + } + + if (prop && !of_property_read_u32(opp->np, name, &val)) opp->u_amp = val; return 0; @@ -954,6 +983,112 @@ void dev_pm_opp_put_supported_hw(struct device *dev) } EXPORT_SYMBOL_GPL(dev_pm_opp_put_supported_hw); +/** + * dev_pm_opp_set_prop_name() - Set prop-extn name + * @dev: Device for which the regulator has to be set. + * @name: name to postfix to properties. + * + * This is required only for the V2 bindings, and it enables a platform to + * specify the extn to be used for certain property names. The properties to + * which the extension will apply are opp-microvolt and opp-microamp. OPP core + * should postfix the property name with - while looking for them. + * + * Locking: The internal device_opp and opp structures are RCU protected. + * Hence this function internally uses RCU updater strategy with mutex locks + * to keep the integrity of the internal data structures. Callers should ensure + * that this function is *NOT* called under RCU protection or in contexts where + * mutex cannot be locked. + */ +int dev_pm_opp_set_prop_name(struct device *dev, const char *name) +{ + struct device_opp *dev_opp; + int ret = 0; + + /* Hold our list modification lock here */ + mutex_lock(&dev_opp_list_lock); + + dev_opp = _add_device_opp(dev); + if (!dev_opp) { + ret = -ENOMEM; + goto unlock; + } + + /* Make sure there are no concurrent readers while updating dev_opp */ + WARN_ON(!list_empty(&dev_opp->opp_list)); + + /* Do we already have a prop-name associated with dev_opp? */ + if (dev_opp->prop_name) { + dev_err(dev, "%s: Already have prop-name %s\n", __func__, + dev_opp->prop_name); + ret = -EBUSY; + goto err; + } + + dev_opp->prop_name = kstrdup(name, GFP_KERNEL); + if (!dev_opp->prop_name) { + ret = -ENOMEM; + goto err; + } + + mutex_unlock(&dev_opp_list_lock); + return 0; + +err: + _remove_device_opp(dev_opp); +unlock: + mutex_unlock(&dev_opp_list_lock); + + return ret; +} +EXPORT_SYMBOL_GPL(dev_pm_opp_set_prop_name); + +/** + * dev_pm_opp_put_prop_name() - Releases resources blocked for prop-name + * @dev: Device for which the regulator has to be set. + * + * This is required only for the V2 bindings, and is called for a matching + * dev_pm_opp_set_prop_name(). Until this is called, the device_opp structure + * will not be freed. + * + * Locking: The internal device_opp and opp structures are RCU protected. + * Hence this function internally uses RCU updater strategy with mutex locks + * to keep the integrity of the internal data structures. Callers should ensure + * that this function is *NOT* called under RCU protection or in contexts where + * mutex cannot be locked. + */ +void dev_pm_opp_put_prop_name(struct device *dev) +{ + struct device_opp *dev_opp; + + /* Hold our list modification lock here */ + mutex_lock(&dev_opp_list_lock); + + /* Check for existing list for 'dev' first */ + dev_opp = _find_device_opp(dev); + if (IS_ERR(dev_opp)) { + dev_err(dev, "Failed to find dev_opp: %ld\n", PTR_ERR(dev_opp)); + goto unlock; + } + + /* Make sure there are no concurrent readers while updating dev_opp */ + WARN_ON(!list_empty(&dev_opp->opp_list)); + + if (!dev_opp->prop_name) { + dev_err(dev, "%s: Doesn't have a prop-name\n", __func__); + goto unlock; + } + + kfree(dev_opp->prop_name); + dev_opp->prop_name = NULL; + + /* Try freeing device_opp if this was the last blocking resource */ + _remove_device_opp(dev_opp); + +unlock: + mutex_unlock(&dev_opp_list_lock); +} +EXPORT_SYMBOL_GPL(dev_pm_opp_put_prop_name); + static bool _opp_is_supported(struct device *dev, struct device_opp *dev_opp, struct device_node *np) { @@ -1048,7 +1183,7 @@ static int _opp_add_static_v2(struct device *dev, struct device_node *np) if (!of_property_read_u32(np, "clock-latency-ns", &val)) new_opp->clock_latency_ns = val; - ret = opp_parse_supplies(new_opp, dev); + ret = opp_parse_supplies(new_opp, dev, dev_opp); if (ret) goto free_opp; diff --git a/drivers/base/power/opp/opp.h b/drivers/base/power/opp/opp.h index 70f4564a6ab9..690638ef36ee 100644 --- a/drivers/base/power/opp/opp.h +++ b/drivers/base/power/opp/opp.h @@ -131,6 +131,7 @@ struct device_list_opp { * @suspend_opp: Pointer to OPP to be used during device suspend. * @supported_hw: Array of version number to support. * @supported_hw_count: Number of elements in supported_hw array. + * @prop_name: A name to postfix to many DT properties, while parsing them. * @dentry: debugfs dentry pointer of the real device directory (not links). * @dentry_name: Name of the real dentry. * @@ -157,6 +158,7 @@ struct device_opp { unsigned int *supported_hw; unsigned int supported_hw_count; + const char *prop_name; #ifdef CONFIG_DEBUG_FS struct dentry *dentry; diff --git a/include/linux/pm_opp.h b/include/linux/pm_opp.h index 3a85110242f0..95403d2ccaf5 100644 --- a/include/linux/pm_opp.h +++ b/include/linux/pm_opp.h @@ -58,6 +58,8 @@ struct srcu_notifier_head *dev_pm_opp_get_notifier(struct device *dev); int dev_pm_opp_set_supported_hw(struct device *dev, const u32 *versions, unsigned int count); void dev_pm_opp_put_supported_hw(struct device *dev); +int dev_pm_opp_set_prop_name(struct device *dev, const char *name); +void dev_pm_opp_put_prop_name(struct device *dev); #else static inline unsigned long dev_pm_opp_get_voltage(struct dev_pm_opp *opp) { @@ -142,6 +144,13 @@ static inline int dev_pm_opp_set_supported_hw(struct device *dev, static inline void dev_pm_opp_put_supported_hw(struct device *dev) {} +static inline int dev_pm_opp_set_prop_name(struct device *dev, const char *name) +{ + return -EINVAL; +} + +static inline void dev_pm_opp_put_prop_name(struct device *dev) {} + #endif /* CONFIG_PM_OPP */ #if defined(CONFIG_PM_OPP) && defined(CONFIG_OF) From e1bd1aa6c72a0dbc01827323fbea31568af4d9bf Mon Sep 17 00:00:00 2001 From: Pi-Cheng Chen Date: Tue, 9 Jun 2020 12:09:21 +0800 Subject: [PATCH 0854/1149] PM / OPP: Set cpu_dev->id in cpumask first commit d9de19b1cc013433ad293365b5b3902ec73dfd60 upstream. Set cpu_dev->id in cpumask first when setting up cpumask for CPUs that share the same OPP table. This might be helpful when handling cpumask without the original CPU bitfield set. Signed-off-by: Pi-Cheng Chen Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek --- drivers/base/power/opp/cpu.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/base/power/opp/cpu.c b/drivers/base/power/opp/cpu.c index 1a2e8f260b06..a0db8b3575f3 100644 --- a/drivers/base/power/opp/cpu.c +++ b/drivers/base/power/opp/cpu.c @@ -218,7 +218,6 @@ EXPORT_SYMBOL_GPL(dev_pm_opp_of_cpumask_add_table); /* * Works only for OPP v2 bindings. * - * cpumask should be already set to mask of cpu_dev->id. * Returns -ENOENT if operating-points-v2 bindings aren't supported. */ int dev_pm_opp_of_get_sharing_cpus(struct device *cpu_dev, cpumask_var_t cpumask) @@ -234,6 +233,8 @@ int dev_pm_opp_of_get_sharing_cpus(struct device *cpu_dev, cpumask_var_t cpumask return -ENOENT; } + cpumask_set_cpu(cpu_dev->id, cpumask); + /* OPPs are shared ? */ if (!of_property_read_bool(np, "opp-shared")) goto put_cpu_node; From e733f899b6fb363f21971d1bef5c24b1760d0f97 Mon Sep 17 00:00:00 2001 From: Viresh Kumar Date: Tue, 9 Jun 2020 12:09:22 +0800 Subject: [PATCH 0855/1149] PM / OPP: Use snprintf() instead of sprintf() commit 5ff24d601092b222340b28466e263b1c4559407e upstream. sprintf() can access memory outside of the range of the character array, and is risky in some situations. The driver specified prop_name string can be longer than NAME_MAX here (only an attacker will do that though) and so blindly copying it into the character array of size NAME_MAX isn't safe. Instead we must use snprintf() here. Reported-by: Geert Uytterhoeven Signed-off-by: Viresh Kumar Acked-by: Geert Uytterhoeven Acked-by: Stephen Boyd Signed-off-by: Rafael J. Wysocki Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek --- drivers/base/power/opp/core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/base/power/opp/core.c b/drivers/base/power/opp/core.c index 504a6d4e4672..1e0a2ddf7332 100644 --- a/drivers/base/power/opp/core.c +++ b/drivers/base/power/opp/core.c @@ -808,7 +808,8 @@ static int opp_parse_supplies(struct dev_pm_opp *opp, struct device *dev, /* Search for "opp-microvolt-" */ if (dev_opp->prop_name) { - sprintf(name, "opp-microvolt-%s", dev_opp->prop_name); + snprintf(name, sizeof(name), "opp-microvolt-%s", + dev_opp->prop_name); prop = of_find_property(opp->np, name, NULL); } @@ -855,7 +856,8 @@ static int opp_parse_supplies(struct dev_pm_opp *opp, struct device *dev, /* Search for "opp-microamp-" */ prop = NULL; if (dev_opp->prop_name) { - sprintf(name, "opp-microamp-%s", dev_opp->prop_name); + snprintf(name, sizeof(name), "opp-microamp-%s", + dev_opp->prop_name); prop = of_find_property(opp->np, name, NULL); } From 4a3a518956c0052dcb04d31872193a5a43f2f37d Mon Sep 17 00:00:00 2001 From: Punit Agrawal Date: Tue, 9 Jun 2020 12:09:23 +0800 Subject: [PATCH 0856/1149] devicetree: bindings: Add optional dynamic-power-coefficient property commit 3be3f8f36e7349006f19c8c8f0d686e98462a993 upstream. The dynamic power consumption of a device is proportional to the square of voltage (V) and the clock frequency (f). It can be expressed as Pdyn = dynamic-power-coefficient * V^2 * f. The coefficient represents the running time dynamic power consumption in units of mw/MHz/uVolt^2 and can be used in the above formula to calculate the dynamic power in mW. Signed-off-by: Punit Agrawal Acked-by: Rob Herring Reviewed-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/arm/cpus.txt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/cpus.txt b/Documentation/devicetree/bindings/arm/cpus.txt index 9ef9a2089a5e..6b1d8ebb94b7 100644 --- a/Documentation/devicetree/bindings/arm/cpus.txt +++ b/Documentation/devicetree/bindings/arm/cpus.txt @@ -243,6 +243,23 @@ nodes to be present and contain the properties described below. Definition: Specifies the syscon node controlling the cpu core power domains. + - dynamic-power-coefficient + Usage: optional + Value type: + Definition: A u32 value that represents the running time dynamic + power coefficient in units of mW/MHz/uVolt^2. The + coefficient can either be calculated from power + measurements or derived by analysis. + + The dynamic power consumption of the CPU is + proportional to the square of the Voltage (V) and + the clock frequency (f). The coefficient is used to + calculate the dynamic power as below - + + Pdyn = dynamic-power-coefficient * V^2 * f + + where voltage is in uV, frequency is in MHz. + Example 1 (dual-cluster big.LITTLE system 32-bit): cpus { From 60e78c572f7afa79e8d42bec34a82dd157d1ba0b Mon Sep 17 00:00:00 2001 From: Punit Agrawal Date: Tue, 9 Jun 2020 12:09:24 +0800 Subject: [PATCH 0857/1149] cpufreq-dt: Supply power coefficient when registering cooling devices commit f8fa8ae06b8c2c25d81c99766f9226adc5c3e073 upstream. Support registering cooling devices with dynamic power coefficient where provided by the device tree. This allows OF registered cooling devices driver to be used with the power_allocator thermal governor. Signed-off-by: Punit Agrawal Acked-by: Viresh Kumar Reviewed-by: Javi Merino Signed-off-by: Rafael J. Wysocki Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek --- drivers/cpufreq/cpufreq-dt.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/cpufreq/cpufreq-dt.c b/drivers/cpufreq/cpufreq-dt.c index 90d64081ddb3..1ceece9d6711 100644 --- a/drivers/cpufreq/cpufreq-dt.c +++ b/drivers/cpufreq/cpufreq-dt.c @@ -407,8 +407,13 @@ static void cpufreq_ready(struct cpufreq_policy *policy) * thermal DT code takes care of matching them. */ if (of_find_property(np, "#cooling-cells", NULL)) { - priv->cdev = of_cpufreq_cooling_register(np, - policy->related_cpus); + u32 power_coefficient = 0; + + of_property_read_u32(np, "dynamic-power-coefficient", + &power_coefficient); + + priv->cdev = of_cpufreq_power_cooling_register(np, + policy->related_cpus, power_coefficient, NULL); if (IS_ERR(priv->cdev)) { dev_err(priv->cpu_dev, "running cpufreq without cooling device: %ld\n", From 4ddf4c8bd6e8c3e213f455dd828bfecc5cd1c75a Mon Sep 17 00:00:00 2001 From: Andrzej Hajda Date: Tue, 9 Jun 2020 12:09:25 +0800 Subject: [PATCH 0858/1149] cpufreq-dt: fix handling regulator_get_voltage() result commit 929ca89c305a6ed7a4149115be99af6d73c36918 upstream. The function can return negative values so it should be assigned to signed type. The problem has been detected using proposed semantic patch scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci. Link: http://permalink.gmane.org/gmane.linux.kernel/2038576 Signed-off-by: Andrzej Hajda Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek --- drivers/cpufreq/cpufreq-dt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/cpufreq/cpufreq-dt.c b/drivers/cpufreq/cpufreq-dt.c index 1ceece9d6711..9bc37c437874 100644 --- a/drivers/cpufreq/cpufreq-dt.c +++ b/drivers/cpufreq/cpufreq-dt.c @@ -50,7 +50,8 @@ static int set_target(struct cpufreq_policy *policy, unsigned int index) struct private_data *priv = policy->driver_data; struct device *cpu_dev = priv->cpu_dev; struct regulator *cpu_reg = priv->cpu_reg; - unsigned long volt = 0, volt_old = 0, tol = 0; + unsigned long volt = 0, tol = 0; + int volt_old = 0; unsigned int old_freq, new_freq; long freq_Hz, freq_exact; int ret; @@ -83,7 +84,7 @@ static int set_target(struct cpufreq_policy *policy, unsigned int index) opp_freq / 1000, volt); } - dev_dbg(cpu_dev, "%u MHz, %ld mV --> %u MHz, %ld mV\n", + dev_dbg(cpu_dev, "%u MHz, %d mV --> %u MHz, %ld mV\n", old_freq / 1000, (volt_old > 0) ? volt_old / 1000 : -1, new_freq / 1000, volt ? volt / 1000 : -1); From 0a074f2409f7c819db7442975b89e0e3eab23f5f Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Tue, 9 Jun 2020 12:09:26 +0800 Subject: [PATCH 0859/1149] cpufreq: cpufreq-dt: avoid uninitialized variable warnings: commit b331bc20d9281213f7fb67912638e0fb5baeb324 upstream. gcc warns quite a bit about values returned from allocate_resources() in cpufreq-dt.c: cpufreq-dt.c: In function 'cpufreq_init': cpufreq-dt.c:327:6: error: 'cpu_dev' may be used uninitialized in this function [-Werror=maybe-uninitialized] cpufreq-dt.c:197:17: note: 'cpu_dev' was declared here cpufreq-dt.c:376:2: error: 'cpu_clk' may be used uninitialized in this function [-Werror=maybe-uninitialized] cpufreq-dt.c:199:14: note: 'cpu_clk' was declared here cpufreq-dt.c: In function 'dt_cpufreq_probe': cpufreq-dt.c:461:2: error: 'cpu_clk' may be used uninitialized in this function [-Werror=maybe-uninitialized] cpufreq-dt.c:447:14: note: 'cpu_clk' was declared here The problem is that it's slightly hard for gcc to follow return codes across PTR_ERR() calls. This patch uses explicit assignments to the "ret" variable to make it easier for gcc to verify that the code is actually correct, without the need to add a bogus initialization. Signed-off-by: Arnd Bergmann Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek --- drivers/cpufreq/cpufreq-dt.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/cpufreq/cpufreq-dt.c b/drivers/cpufreq/cpufreq-dt.c index 9bc37c437874..0ca74d070058 100644 --- a/drivers/cpufreq/cpufreq-dt.c +++ b/drivers/cpufreq/cpufreq-dt.c @@ -142,15 +142,16 @@ static int allocate_resources(int cpu, struct device **cdev, try_again: cpu_reg = regulator_get_optional(cpu_dev, reg); - if (IS_ERR(cpu_reg)) { + ret = PTR_ERR_OR_ZERO(cpu_reg); + if (ret) { /* * If cpu's regulator supply node is present, but regulator is * not yet registered, we should try defering probe. */ - if (PTR_ERR(cpu_reg) == -EPROBE_DEFER) { + if (ret == -EPROBE_DEFER) { dev_dbg(cpu_dev, "cpu%d regulator not ready, retry\n", cpu); - return -EPROBE_DEFER; + return ret; } /* Try with "cpu-supply" */ @@ -159,18 +160,16 @@ static int allocate_resources(int cpu, struct device **cdev, goto try_again; } - dev_dbg(cpu_dev, "no regulator for cpu%d: %ld\n", - cpu, PTR_ERR(cpu_reg)); + dev_dbg(cpu_dev, "no regulator for cpu%d: %d\n", cpu, ret); } cpu_clk = clk_get(cpu_dev, NULL); - if (IS_ERR(cpu_clk)) { + ret = PTR_ERR_OR_ZERO(cpu_clk); + if (ret) { /* put regulator */ if (!IS_ERR(cpu_reg)) regulator_put(cpu_reg); - ret = PTR_ERR(cpu_clk); - /* * If cpu's clk node is present, but clock is not yet * registered, we should try defering probe. From e65152cafde5d1f6db9b8e6e8a65fed2b19ea91d Mon Sep 17 00:00:00 2001 From: "Nobuhiro Iwamatsu (CIP)" Date: Thu, 11 Jun 2020 18:14:00 +0900 Subject: [PATCH 0860/1149] CIP: Bump version suffix to -cip46 after merge from stable Signed-off-by: Nobuhiro Iwamatsu (CIP) --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index cd3c9f83f090..8c5681ae82c8 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip45 +-cip46 From fec45d1a4e38bbe5cc9248c9400748c857052bb6 Mon Sep 17 00:00:00 2001 From: "Nobuhiro Iwamatsu (CIP)" Date: Mon, 13 Jul 2020 08:25:30 +0900 Subject: [PATCH 0861/1149] CIP: Bump version suffix to -cip47 after merge from stable Signed-off-by: Nobuhiro Iwamatsu (CIP) --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 8c5681ae82c8..09cb53026b62 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip46 +-cip47 From f0e582bd5a0891c339390c8eb31c4221547565e3 Mon Sep 17 00:00:00 2001 From: Kazuhiro Fujita Date: Thu, 16 Jul 2020 14:24:07 +0100 Subject: [PATCH 0862/1149] serial: sh-sci: Make sure status register SCxSR is read in correct sequence commit 3dc4db3662366306e54ddcbda4804acb1258e4ba upstream. For SCIF and HSCIF interfaces the SCxSR register holds the status of data that is to be read next from SCxRDR register, But where as for SCIFA and SCIFB interfaces SCxSR register holds status of data that is previously read from SCxRDR register. This patch makes sure the status register is read depending on the port types so that errors are caught accordingly. Cc: Signed-off-by: Kazuhiro Fujita Signed-off-by: Hao Bui Signed-off-by: KAZUMI HARADA Signed-off-by: Lad Prabhakar Tested-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/1585333048-31828-1-git-send-email-kazuhiro.fujita.jg@renesas.com Signed-off-by: Greg Kroah-Hartman Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/tty/serial/sh-sci.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c index 22f72015f85a..2b5b342b7462 100644 --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c @@ -793,9 +793,16 @@ static void sci_receive_chars(struct uart_port *port) tty_insert_flip_char(tport, c, TTY_NORMAL); } else { for (i = 0; i < count; i++) { - char c = serial_port_in(port, SCxRDR); - - status = serial_port_in(port, SCxSR); + char c; + + if (port->type == PORT_SCIF || + port->type == PORT_HSCIF) { + status = serial_port_in(port, SCxSR); + c = serial_port_in(port, SCxRDR); + } else { + c = serial_port_in(port, SCxRDR); + status = serial_port_in(port, SCxSR); + } #if defined(CONFIG_CPU_SH3) /* Skip "chars" during break */ if (sci_port->break_flag) { From 2c3c0058e6ad663380d199a484b2a2a7885593da Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 28 Jul 2020 11:43:22 +0100 Subject: [PATCH 0863/1149] drm: Add an encoder and connector type enum for DPI. commit 0b27c02a7f1c697694f2ad6d6517e7dbf9ecfa39 upstream. Right now exynos is exposing DPI as a TMDS encoder and VGA connector, which seems rather misleading. This isn't just an internal detail, since xrandr actually exposes "VGA" as the output name. Define some new enums so that vc4's DPI can have a more informative name. I considered other names for the connector as well. For VC4, the Adafruit DPI kippah takes the 28 GPIO pins and routes them to a standard-ish 40-pin FPC connector, but "40-pin FPC" doesn't uniquely identify an ordering of pins (apparently some other orderings exist), doesn't explain things as well for the user (who, if anything, knows their product is a DPI kippah/panel combo), and actually doesn't have to exist (one could connect the 28 GPIOs directly to something else). Simply "DPI" seems like a good compromise name to distinguish from the HDMI, DSI, and TV connectors . Signed-off-by: Eric Anholt Reviewed-by: Daniel Vetter Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- drivers/gpu/drm/drm_crtc.c | 2 ++ include/uapi/drm/drm_mode.h | 2 ++ 2 files changed, 4 insertions(+) diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index 5e4bb4837bae..34538444fd19 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c @@ -168,6 +168,7 @@ static struct drm_conn_prop_enum_list drm_connector_enum_list[] = { { DRM_MODE_CONNECTOR_eDP, "eDP" }, { DRM_MODE_CONNECTOR_VIRTUAL, "Virtual" }, { DRM_MODE_CONNECTOR_DSI, "DSI" }, + { DRM_MODE_CONNECTOR_DPI, "DPI" }, }; static const struct drm_prop_enum_list drm_encoder_enum_list[] = { @@ -179,6 +180,7 @@ static const struct drm_prop_enum_list drm_encoder_enum_list[] = { { DRM_MODE_ENCODER_VIRTUAL, "Virtual" }, { DRM_MODE_ENCODER_DSI, "DSI" }, { DRM_MODE_ENCODER_DPMST, "DP MST" }, + { DRM_MODE_ENCODER_DPI, "DPI" }, }; static const struct drm_prop_enum_list drm_subpixel_enum_list[] = { diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h index 6c11ca401de8..325e9eb3d812 100644 --- a/include/uapi/drm/drm_mode.h +++ b/include/uapi/drm/drm_mode.h @@ -202,6 +202,7 @@ struct drm_mode_get_plane_res { #define DRM_MODE_ENCODER_VIRTUAL 5 #define DRM_MODE_ENCODER_DSI 6 #define DRM_MODE_ENCODER_DPMST 7 +#define DRM_MODE_ENCODER_DPI 8 struct drm_mode_get_encoder { __u32 encoder_id; @@ -241,6 +242,7 @@ struct drm_mode_get_encoder { #define DRM_MODE_CONNECTOR_eDP 14 #define DRM_MODE_CONNECTOR_VIRTUAL 15 #define DRM_MODE_CONNECTOR_DSI 16 +#define DRM_MODE_CONNECTOR_DPI 17 struct drm_mode_get_connector { From 5aa514f7cd0d4aefed98d997b15f5aecbb03665f Mon Sep 17 00:00:00 2001 From: Rob Herring Date: Tue, 28 Jul 2020 11:43:23 +0100 Subject: [PATCH 0864/1149] of: add node name compare helper functions commit f42b0e18f2e5cf34f73ef1b6327b49040b307a33 upstream. In preparation to remove device_node.name pointer, add helper functions for node name comparisons which are a common pattern throughout the kernel. Cc: Frank Rowand Signed-off-by: Rob Herring Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- drivers/of/base.c | 22 ++++++++++++++++++++++ include/linux/of.h | 13 +++++++++++++ 2 files changed, 35 insertions(+) diff --git a/drivers/of/base.c b/drivers/of/base.c index 164eb1306661..b02f4b272e5b 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -54,6 +54,28 @@ DEFINE_MUTEX(of_mutex); */ DEFINE_RAW_SPINLOCK(devtree_lock); +bool of_node_name_eq(const struct device_node *np, const char *name) +{ + const char *node_name; + size_t len; + + if (!np) + return false; + + node_name = kbasename(np->full_name); + len = strchrnul(node_name, '@') - node_name; + + return (strlen(name) == len) && (strncmp(node_name, name, len) == 0); +} + +bool of_node_name_prefix(const struct device_node *np, const char *prefix) +{ + if (!np) + return false; + + return strncmp(kbasename(np->full_name), prefix, strlen(prefix)) == 0; +} + int of_n_addr_cells(struct device_node *np) { const __be32 *ip; diff --git a/include/linux/of.h b/include/linux/of.h index a09b9fb8e67d..1bef273a1909 100644 --- a/include/linux/of.h +++ b/include/linux/of.h @@ -231,6 +231,9 @@ static inline unsigned long of_read_ulong(const __be32 *cell, int size) #define OF_IS_DYNAMIC(x) test_bit(OF_DYNAMIC, &x->_flags) #define OF_MARK_DYNAMIC(x) set_bit(OF_DYNAMIC, &x->_flags) +extern bool of_node_name_eq(const struct device_node *np, const char *name); +extern bool of_node_name_prefix(const struct device_node *np, const char *prefix); + static inline const char *of_node_full_name(const struct device_node *np) { return np ? np->full_name : ""; @@ -397,6 +400,16 @@ static inline struct device_node *to_of_node(struct fwnode_handle *fwnode) return NULL; } +static inline bool of_node_name_eq(const struct device_node *np, const char *name) +{ + return false; +} + +static inline bool of_node_name_prefix(const struct device_node *np, const char *prefix) +{ + return false; +} + static inline const char* of_node_full_name(const struct device_node *np) { return ""; From d27f64fc2ff4a2504291789ce27833c47a8759f1 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 28 Jul 2020 11:43:24 +0100 Subject: [PATCH 0865/1149] dt-bindings: display: Add bindings for EDT panel Document the Emerging Display Technology Corp. (EDT) ETM043080DH6-GP display, which is a 480x272 4.3" TFT display with capacitive touchscreen. This patch is based on the upstream commit c752affbadb05b619 ("dt-bindings: display: Add bindings for EDT panel"). Signed-off-by: Biju Das Reviewed-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- .../bindings/display/panel/edt,etm043080dh6gp.txt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/panel/edt,etm043080dh6gp.txt diff --git a/Documentation/devicetree/bindings/display/panel/edt,etm043080dh6gp.txt b/Documentation/devicetree/bindings/display/panel/edt,etm043080dh6gp.txt new file mode 100644 index 000000000000..c837e0bfb1a9 --- /dev/null +++ b/Documentation/devicetree/bindings/display/panel/edt,etm043080dh6gp.txt @@ -0,0 +1,9 @@ +Emerging Display Technology Corp. ETM043080DH6-GP 4.3" WQVGA TFT LCD panel + +Required properties: +- compatible: should be "edt,etm043080dh6gp" + +ETM043080DH6-GP is 480x272 TFT Display with capacitive touchscreen. + +This binding is compatible with the simple-panel binding, which is specified +in simple-panel.txt in this directory. From 9aca7f46327dc783240e6d79f3837cd140f36fa3 Mon Sep 17 00:00:00 2001 From: Marian-Cristian Rotariu Date: Tue, 28 Jul 2020 11:43:25 +0100 Subject: [PATCH 0866/1149] drm/panel: simple: Add EDT panel support commit 82d57a590f51eb86e1ad0f24db257739ce0bfd74 upstream. EDT ET043080DH6-GP is a 4.3" WQVGA 480x272 RGB LCD panel used on the iWave Generic SODIMM Development Platform. Changes in v2: -added mandatory .connector_type field -changed the .bus_format MEDIA_BUS_FMT_RGB666_1X18 Signed-off-by: Marian-Cristian Rotariu Reviewed-by: Lad Prabhakar Signed-off-by: Sam Ravnborg Link: https://patchwork.freedesktop.org/patch/msgid/1580386118-22895-3-git-send-email-marian-cristian.rotariu.rb@bp.renesas.com Signed-off-by: Biju Das [Removed connector type. Supporting the same requires framework changes] Signed-off-by: Nobuhiro Iwamatsu --- drivers/gpu/drm/panel/panel-simple.c | 33 ++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index ecad4d7c6cd1..2b2a2f3da9a4 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -614,6 +614,36 @@ static const struct panel_desc chunghwa_claa101wb01 = { }, }; +static const struct drm_display_mode edt_etm043080dh6gp_mode = { + .clock = 10870, + .hdisplay = 480, + .hsync_start = 480 + 8, + .hsync_end = 480 + 8 + 4, + .htotal = 480 + 8 + 4 + 41, + + /* + * IWG22M: Y resolution changed for "dc_linuxfb" module crashing while + * fb_align + */ + + .vdisplay = 288, + .vsync_start = 288 + 2, + .vsync_end = 288 + 2 + 4, + .vtotal = 288 + 2 + 4 + 10, + .vrefresh = 60, +}; + +static const struct panel_desc edt_etm043080dh6gp = { + .modes = &edt_etm043080dh6gp_mode, + .num_modes = 1, + .bpc = 8, + .size = { + .width = 100, + .height = 65, + }, + .bus_format = MEDIA_BUS_FMT_RGB666_1X18, +}; + static const struct drm_display_mode edt_et057090dhu_mode = { .clock = 25175, .hdisplay = 640, @@ -1129,6 +1159,9 @@ static const struct of_device_id platform_of_match[] = { }, { .compatible = "chunghwa,claa101wb01", .data = &chunghwa_claa101wb01 + }, { + .compatible = "edt,etm043080dh6gp", + .data = &edt_etm043080dh6gp, }, { .compatible = "edt,et057090dhu", .data = &edt_et057090dhu, From eeaa48eee492d37ec87a8b8c8de7aa66950818ad Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 28 Jul 2020 11:43:26 +0100 Subject: [PATCH 0867/1149] drm: rcar-du: Support panels connected directly to the DPAD outputs The DPAD outputs can be connected directly to a panel. To support this use case, detect whether the entities connected to the DU DPAD outputs are panels based on the number of ports of their DT node, and retrieve the corresponding type of DRM objects. This patch is based on the commit 73eb5476df72 ("Support panels connected directly to the DPAD outputs") and commit 56c5dd00f8db ("drm/rcar-du: Split LVDS encoder and connector") Signed-off-by: Biju Das Reviewed-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- drivers/gpu/drm/rcar-du/Makefile | 1 + drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 36 ++++++++ drivers/gpu/drm/rcar-du/rcar_du_rgbcon.c | 105 ++++++++++++++++++++++ drivers/gpu/drm/rcar-du/rcar_du_rgbcon.h | 22 +++++ 4 files changed, 164 insertions(+) create mode 100644 drivers/gpu/drm/rcar-du/rcar_du_rgbcon.c create mode 100644 drivers/gpu/drm/rcar-du/rcar_du_rgbcon.h diff --git a/drivers/gpu/drm/rcar-du/Makefile b/drivers/gpu/drm/rcar-du/Makefile index 05de1c4097af..51b7ccc66cb7 100644 --- a/drivers/gpu/drm/rcar-du/Makefile +++ b/drivers/gpu/drm/rcar-du/Makefile @@ -4,6 +4,7 @@ rcar-du-drm-y := rcar_du_crtc.o \ rcar_du_group.o \ rcar_du_kms.o \ rcar_du_lvdscon.o \ + rcar_du_rgbcon.o \ rcar_du_plane.o \ rcar_du_vgacon.o diff --git a/drivers/gpu/drm/rcar-du/rcar_du_encoder.c b/drivers/gpu/drm/rcar-du/rcar_du_encoder.c index d0ae1e8009c6..c407fd4c98ce 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_encoder.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_encoder.c @@ -16,6 +16,7 @@ #include #include #include +#include #include "rcar_du_drv.h" #include "rcar_du_encoder.h" @@ -23,6 +24,7 @@ #include "rcar_du_hdmienc.h" #include "rcar_du_kms.h" #include "rcar_du_lvdscon.h" +#include "rcar_du_rgbcon.h" #include "rcar_du_lvdsenc.h" #include "rcar_du_vgacon.h" @@ -42,6 +44,26 @@ rcar_du_connector_best_encoder(struct drm_connector *connector) * Encoder */ +static unsigned int rcar_du_encoder_count_ports(struct device_node *node) +{ + struct device_node *ports; + struct device_node *port; + unsigned int num_ports = 0; + + ports = of_get_child_by_name(node, "ports"); + if (!ports) + ports = of_node_get(node); + + for_each_child_of_node(ports, port) { + if (of_node_name_eq(port, "port")) + num_ports++; + } + + of_node_put(ports); + + return num_ports; +} + static void rcar_du_encoder_disable(struct drm_encoder *encoder) { struct rcar_du_encoder *renc = to_rcar_encoder(encoder); @@ -127,6 +149,7 @@ int rcar_du_encoder_init(struct rcar_du_device *rcdu, { struct rcar_du_encoder *renc; struct drm_encoder *encoder; + struct drm_panel *panel; unsigned int encoder_type; int ret; @@ -193,6 +216,19 @@ int rcar_du_encoder_init(struct rcar_du_device *rcdu, ret = rcar_du_hdmi_connector_init(rcdu, renc); break; + case DRM_MODE_ENCODER_NONE: + if ((output == RCAR_DU_OUTPUT_DPAD0 || + output == RCAR_DU_OUTPUT_DPAD1) && + rcar_du_encoder_count_ports(con_node) == 1) { + panel = of_drm_find_panel(con_node); + if (!panel) + ret = -EPROBE_DEFER; + else + ret = rcar_du_rgb_connector_init(rcdu, renc, + panel); + } + break; + default: ret = -EINVAL; break; diff --git a/drivers/gpu/drm/rcar-du/rcar_du_rgbcon.c b/drivers/gpu/drm/rcar-du/rcar_du_rgbcon.c new file mode 100644 index 000000000000..f62073e65f03 --- /dev/null +++ b/drivers/gpu/drm/rcar-du/rcar_du_rgbcon.c @@ -0,0 +1,105 @@ +/* + * rcar_du_rgbcon.c -- R-Car Display Unit RGB Connector + * + * Copyright (C) 2013-2020 Renesas Electronics Corporation + * + * + * 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. + */ + +#include +#include +#include +#include +#include + +#include "rcar_du_drv.h" +#include "rcar_du_encoder.h" +#include "rcar_du_kms.h" +#include "rcar_du_rgbcon.h" + +struct rcar_du_rgb_connector { + struct rcar_du_connector connector; + struct drm_panel *drmpanel; +}; + +#define to_rcar_rgb_connector(c) \ + container_of(c, struct rcar_du_rgb_connector, connector.connector) + +static int rcar_du_rgb_connector_get_modes(struct drm_connector *connector) +{ + struct rcar_du_rgb_connector *rgbcon = + to_rcar_rgb_connector(connector); + + return drm_panel_get_modes(rgbcon->drmpanel); +} + +static const struct drm_connector_helper_funcs connector_helper_funcs = { + .get_modes = rcar_du_rgb_connector_get_modes, + .best_encoder = rcar_du_connector_best_encoder, +}; + +static enum drm_connector_status +rcar_du_rgb_connector_detect(struct drm_connector *connector, bool force) +{ + return connector_status_connected; +} + +static void rcar_du_rgb_connector_destroy(struct drm_connector *connector) +{ + struct rcar_du_rgb_connector *rgbcon = + to_rcar_rgb_connector(connector); + + drm_panel_detach(rgbcon->drmpanel); + drm_connector_cleanup(connector); +} + +static const struct drm_connector_funcs connector_funcs = { + .dpms = drm_atomic_helper_connector_dpms, + .reset = drm_atomic_helper_connector_reset, + .detect = rcar_du_rgb_connector_detect, + .fill_modes = drm_helper_probe_single_connector_modes, + .destroy = rcar_du_rgb_connector_destroy, + .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, + .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, +}; + +int rcar_du_rgb_connector_init(struct rcar_du_device *rcdu, + struct rcar_du_encoder *renc, + struct drm_panel *drmpanel) +{ + struct drm_encoder *encoder = rcar_encoder_to_drm_encoder(renc); + struct rcar_du_rgb_connector *rgbcon; + struct drm_connector *connector; + int ret; + + rgbcon = devm_kzalloc(rcdu->dev, sizeof(*rgbcon), GFP_KERNEL); + if (!rgbcon) + return -ENOMEM; + + rgbcon->drmpanel = drmpanel; + connector = &rgbcon->connector.connector; + ret = drm_connector_init(rcdu->ddev, connector, &connector_funcs, + DRM_MODE_CONNECTOR_DPI); + if (ret < 0) + return ret; + + drm_connector_helper_add(connector, &connector_helper_funcs); + + connector->dpms = DRM_MODE_DPMS_OFF; + drm_object_property_set_value(&connector->base, + rcdu->ddev->mode_config.dpms_property, + DRM_MODE_DPMS_OFF); + + ret = drm_mode_connector_attach_encoder(connector, encoder); + if (ret < 0) + return ret; + + drm_panel_attach(rgbcon->drmpanel, connector); + rgbcon->connector.encoder = renc; + + return 0; +} diff --git a/drivers/gpu/drm/rcar-du/rcar_du_rgbcon.h b/drivers/gpu/drm/rcar-du/rcar_du_rgbcon.h new file mode 100644 index 000000000000..b3bfad52f589 --- /dev/null +++ b/drivers/gpu/drm/rcar-du/rcar_du_rgbcon.h @@ -0,0 +1,22 @@ +/* + * rcar_du_rgbcon.h -- R-Car Display Unit RGB Connector + * + * Copyright (C) 2013-2020 Renesas Electronics Corporation + * + * 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. + */ + +#ifndef __RCAR_DU_RGBCON_H__ +#define __RCAR_DU_RGBCON_H__ + +struct rcar_du_device; +struct rcar_du_encoder; + +int rcar_du_rgb_connector_init(struct rcar_du_device *rcdu, + struct rcar_du_encoder *renc, + struct drm_panel *drmpanel); + +#endif /* __RCAR_DU_RGBCON_H__ */ From 95e32d0a44aedeb230eb25d5f4b280ac378603b5 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Tue, 28 Jul 2020 11:43:27 +0100 Subject: [PATCH 0868/1149] drm: rcar-du: Use the DRM panel API commit bf7149f34241dcd6c95ea76b2b5ab4ff33f1c9b9 upstream. Instead of parsing the panel device tree node manually, use the panel API to delegate panel handling to a panel driver. Signed-off-by: Laurent Pinchart Signed-off-by: Biju Das [Removed all other changes except Kconfig. This config is required for building simple panel driver] Signed-off-by: Nobuhiro Iwamatsu --- drivers/gpu/drm/rcar-du/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/rcar-du/Kconfig b/drivers/gpu/drm/rcar-du/Kconfig index d4e0a39568f6..4261a302e051 100644 --- a/drivers/gpu/drm/rcar-du/Kconfig +++ b/drivers/gpu/drm/rcar-du/Kconfig @@ -21,6 +21,7 @@ config DRM_RCAR_HDMI config DRM_RCAR_LVDS bool "R-Car DU LVDS Encoder Support" depends on DRM_RCAR_DU + select DRM_PANEL depends on ARCH_R8A7790 || ARCH_R8A7791 || COMPILE_TEST help Enable support for the R-Car Display Unit embedded LVDS encoders From d6e1e6c9d747a8fbf875571af35e5ea7f2457f9b Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Tue, 28 Jul 2020 11:43:28 +0100 Subject: [PATCH 0869/1149] ARM: shmobile: defconfig: Enable frame buffer console for armadillo800eva commit af48156ff3a1762989627fba7c56e77743fc0fdc upstream. Enabling the frame buffer device on armadillo800eva requires the board staging code. Also enable the frame buffer, so you will actually see output during boot. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Biju Das [Removed staging related configs] Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/configs/shmobile_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/shmobile_defconfig b/arch/arm/configs/shmobile_defconfig index 9e48febd5956..f21de1bec37c 100644 --- a/arch/arm/configs/shmobile_defconfig +++ b/arch/arm/configs/shmobile_defconfig @@ -161,6 +161,7 @@ CONFIG_FB_SH_MOBILE_MERAM=y # CONFIG_BACKLIGHT_GENERIC is not set CONFIG_BACKLIGHT_PWM=y CONFIG_BACKLIGHT_AS3711=y +CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_SOUND=y CONFIG_SND=y CONFIG_SND_SOC=y From 00817fc50f53f94cf8595b80389df0583d159c2d Mon Sep 17 00:00:00 2001 From: Fabrizio Castro Date: Tue, 28 Jul 2020 11:43:29 +0100 Subject: [PATCH 0870/1149] ARM: shmobile: defconfig: Enable support for panels from EDT commit a630a6121bef3e9598482a49eda6b1fa715385d6 upstream. The iwg20d comes with an LCD panel from Emerging Display Technologies Corporation (EDT), therefore enable what's required to support it. Signed-off-by: Fabrizio Castro Acked-by: Laurent Pinchart Link: https://lore.kernel.org/r/1573660292-10629-12-git-send-email-fabrizio.castro@bp.renesas.com Signed-off-by: Geert Uytterhoeven Signed-off-by: Biju Das [Removed DRM_LVDS_CODEC configuration] Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/configs/shmobile_defconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/configs/shmobile_defconfig b/arch/arm/configs/shmobile_defconfig index f21de1bec37c..151fad5c0b8d 100644 --- a/arch/arm/configs/shmobile_defconfig +++ b/arch/arm/configs/shmobile_defconfig @@ -98,6 +98,7 @@ CONFIG_INPUT_EVDEV=y CONFIG_KEYBOARD_GPIO=y # CONFIG_INPUT_MOUSE is not set CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_EDT_FT5X06=y CONFIG_TOUCHSCREEN_ST1232=y CONFIG_INPUT_MISC=y CONFIG_INPUT_ADXL34X=y @@ -155,6 +156,7 @@ CONFIG_DRM_I2C_ADV7511=y CONFIG_DRM_RCAR_DU=y CONFIG_DRM_RCAR_HDMI=y CONFIG_DRM_RCAR_LVDS=y +CONFIG_DRM_PANEL_SIMPLE=y CONFIG_FB_SH_MOBILE_LCDC=y CONFIG_FB_SH_MOBILE_MERAM=y # CONFIG_LCD_CLASS_DEVICE is not set From e3356f8241e045d9e9e07d85d93f92d53ba742b9 Mon Sep 17 00:00:00 2001 From: Marian-Cristian Rotariu Date: Tue, 28 Jul 2020 11:43:30 +0100 Subject: [PATCH 0871/1149] ARM: dts: iwg22d-sodimm: Enable LCD panel commit 7f61dff1ed915c44845d6865d295853b1c39b6d7 upstream. On the Generic SODIMM Development Platform there is an RGB LCD panel directly connected to the DU output. It uses the TPU0 as backlight, one GPIO pull-up configuration for power enable, R[2:7], G[2:7], B[2:7], VSYNC, HSYNC, DU0_DISP and, DU0_CLK as inputs. There is no encoder between the DU and the panel, therefore the default connector driver is used. The two variants of the iW-G22D should be mutually exclusive, therefore this patch also disables the RGB LCD display when the HDMI extension board is used. Signed-off-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1583239490-8837-1-git-send-email-marian-cristian.rotariu.rb@bp.renesas.com Signed-off-by: Geert Uytterhoeven Signed-off-by: Biju Das [Removed enable-active-high property to make backlight to work on 4.4.] Signed-off-by: Nobuhiro Iwamatsu --- .../dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts | 6 ++ arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts | 59 +++++++++++++++++++ 2 files changed, 65 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts index 654d28b629e5..b01405fc1b49 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm-dbhd-ca.dts @@ -109,6 +109,12 @@ }; }; +&lcd_panel { + status = "disabled"; + + /delete-node/ port; +}; + &pfc { can1_pins: can1 { groups = "can1_data_b"; diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts index 94e9088f6b40..1e331d1e414b 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts @@ -33,6 +33,7 @@ /dts-v1/; #include "r8a7745-iwg22m.dtsi" +#include / { model = "iWave Systems RainboW-G22D-SODIMM board based on RZ/G1E"; @@ -82,6 +83,48 @@ states = <3300000 1 1800000 0>; }; + + vccq_panel: regulator-vccq-panel { + compatible = "regulator-fixed"; + regulator-name = "Panel VccQ"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + gpio = <&gpio1 13 GPIO_ACTIVE_LOW>; + }; + + backlight_lcd: backlight { + compatible = "pwm-backlight"; + pwms = <&tpu 3 5000000 PWM_POLARITY_INVERTED>; + brightness-levels = <0 4 8 16 32 64 128 255>; + default-brightness-level = <7>; + }; + + lcd_panel: lcd { + compatible = "edt,etm043080dh6gp"; + power-supply = <&vccq_panel>; + backlight = <&backlight_lcd>; + + port { + lcd_in: endpoint { + remote-endpoint = <&du_out_rgb0>; + }; + }; + }; +}; + +&du { + pinctrl-0 = <&du0_pins>; + pinctrl-names = "default"; + + status = "okay"; + + ports { + port@0 { + endpoint { + remote-endpoint = <&lcd_in>; + }; + }; + }; }; &can0 { @@ -117,11 +160,21 @@ }; &pfc { + backlight_pins: backlight { + groups = "tpu_to3_c"; + function = "tpu"; + }; + can0_pins: can0 { groups = "can0_data"; function = "can0"; }; + du0_pins: du0 { + groups = "du0_rgb666", "du0_sync", "du0_disp", "du0_clk0_out"; + function = "du0"; + }; + hscif1_pins: hscif1 { groups = "hscif1_data", "hscif1_ctrl"; function = "hscif1"; @@ -233,6 +286,12 @@ shared-pin; }; +&tpu { + pinctrl-0 = <&backlight_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + &usbphy { status = "okay"; }; From f8178389efb8721635c241cb0651c30b528819d1 Mon Sep 17 00:00:00 2001 From: Marian-Cristian Rotariu Date: Wed, 29 Jul 2020 11:56:21 +0100 Subject: [PATCH 0872/1149] ARM: dts: iwg22d-sodimm: Enable touchscreen commit 99ae78f1fc3a73c88fe726c676ae963ce722bf20 upstream. In one of the iWave-G22D development board variants, called Generic SODIMM Development Platform, we have an LCD with touchscreen. The resistive touch controller, STMPE811 is on the development board and is connected through the i2c5 of the RZ-G1E. Additionally, this controller should generate an interrupt to the CPU and it is connected through GPIO4,4 to the GIC. Touch was tested with one of our iW-RainboW-G22D-SODIMM RZ/G1E development platforms. More details on the iWave website: https://www.iwavesystems.com/rz-g1e-sodimm-development-kit.html Signed-off-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1583336650-25848-1-git-send-email-marian-cristian.rotariu.rb@bp.renesas.com Signed-off-by: Geert Uytterhoeven Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts | 33 +++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts index 1e331d1e414b..5cd989556b60 100644 --- a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts +++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts @@ -149,6 +149,39 @@ status = "okay"; clock-frequency = <400000>; + stmpe811@44 { + compatible = "st,stmpe811"; + reg = <0x44>; + interrupt-parent = <&gpio4>; + interrupts = <4 IRQ_TYPE_LEVEL_LOW>; + + /* 3.25 MHz ADC clock speed */ + st,adc-freq = <1>; + /* ADC converstion time: 80 clocks */ + st,sample-time = <4>; + /* 12-bit ADC */ + st,mod-12b = <1>; + /* internal ADC reference */ + st,ref-sel = <0>; + + stmpe_touchscreen { + compatible = "st,stmpe-ts"; + /* 8 sample average control */ + st,ave-ctrl = <3>; + /* 7 length fractional part in z */ + st,fraction-z = <7>; + /* + * 50 mA typical 80 mA max touchscreen drivers + * current limit value + */ + st,i-drive = <1>; + /* 1 ms panel driver settling time */ + st,settling = <3>; + /* 5 ms touch detect interrupt delay */ + st,touch-det-delay = <5>; + }; + }; + sgtl5000: codec@a { compatible = "fsl,sgtl5000"; #sound-dai-cells = <0>; From 17f22cd5bf48f872a44231661bd16bbf3fd6754c Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Sun, 9 Aug 2020 06:10:48 +0900 Subject: [PATCH 0873/1149] CIP: Bump version suffix to -cip48 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 09cb53026b62..1aade6e57a04 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip47 +-cip48 From c0ea8487de4dc2d4d89c6bc48a98e14d9eb2a577 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Fri, 28 Aug 2020 16:41:26 +0100 Subject: [PATCH 0874/1149] ARM: shmobile: Document RZ/G1H SoC DT binding commit 368d03531f39ffaa793a98b9a17c79d660b1cd1a upstream. Document the RZ/G1H (r8a7742) SoC. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/arm/shmobile.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt index 26425a1e3bea..1f894d9a2d0f 100644 --- a/Documentation/devicetree/bindings/arm/shmobile.txt +++ b/Documentation/devicetree/bindings/arm/shmobile.txt @@ -13,6 +13,8 @@ SoCs: compatible = "renesas,r8a73a4" - R-Mobile A1 (R8A77400) compatible = "renesas,r8a7740" + - RZ/G1H (R8A77420) + compatible = "renesas,r8a7742" - RZ/G1M (R8A77430) compatible = "renesas,r8a7743" - RZ/G1N (R8A77440) From aa094b10b134cfde6d5db3e7624a2a93ce3da19d Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 28 Aug 2020 16:41:27 +0100 Subject: [PATCH 0875/1149] dt-bindings: reset: rcar-rst: Document r8a7742 reset module commit 9e01d74ce0a154411c8991d6e34f4c470958eac3 upstream. Document bindings for the RZ/G1H (R8A7742) reset module. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1587678050-23468-5-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: Patched text version of bindings file] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/reset/renesas,rst.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/reset/renesas,rst.txt b/Documentation/devicetree/bindings/reset/renesas,rst.txt index 270f54b5c6cd..e3ea9be09968 100644 --- a/Documentation/devicetree/bindings/reset/renesas,rst.txt +++ b/Documentation/devicetree/bindings/reset/renesas,rst.txt @@ -6,6 +6,7 @@ Required properties: - compatible: Should be - "renesas,-rst" for R-Car Gen2 and RZ/G Examples with soctypes are: + - "renesas,r8a7742-rst" (RZ/G1H) - "renesas,r8a7743-rst" (RZ/G1M) - "renesas,r8a7744-rst" (RZ/G1N) - "renesas,r8a7745-rst" (RZ/G1E) From f7fd322969638e0fcf7cff123920807752c6eb7d Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 28 Aug 2020 16:41:28 +0100 Subject: [PATCH 0876/1149] soc: renesas: rcar-rst: Add support for RZ/G1H commit 2f71832755a9422f5a62a13ea3e805df7b173837 upstream. Add support for RZ/G1H (R8A7742) to the R-Car RST driver. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1587678050-23468-6-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: Changed the text RZ/G to RZ/G1 ] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/soc/renesas/rcar-rst.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/soc/renesas/rcar-rst.c b/drivers/soc/renesas/rcar-rst.c index 8eaf736b2b86..869fb10d6de5 100644 --- a/drivers/soc/renesas/rcar-rst.c +++ b/drivers/soc/renesas/rcar-rst.c @@ -31,7 +31,8 @@ static const struct rst_config rcar_rst_gen2 __initconst = { }; static const struct of_device_id rcar_rst_matches[] __initconst = { - /* RZ/G is handled like R-Car Gen2 */ + /* RZ/G1 is handled like R-Car Gen2 */ + { .compatible = "renesas,r8a7742-rst", .data = &rcar_rst_gen2 }, { .compatible = "renesas,r8a7743-rst", .data = &rcar_rst_gen2 }, { .compatible = "renesas,r8a7744-rst", .data = &rcar_rst_gen2 }, { .compatible = "renesas,r8a7745-rst", .data = &rcar_rst_gen2 }, From f80610302f5bd9aca92d901a6fe26e586efe4342 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 28 Aug 2020 16:41:29 +0100 Subject: [PATCH 0877/1149] ARM: shmobile: r8a7742: Add clock index macros for DT sources Add macros usable by device tree sources to reference r8a7742 clocks by index. Unfortunately there is nothing that we can backport from mainline for this, as the architecture of the clock driver has changed quite dramatically over time. Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- include/dt-bindings/clock/r8a7742-clock.h | 165 ++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 include/dt-bindings/clock/r8a7742-clock.h diff --git a/include/dt-bindings/clock/r8a7742-clock.h b/include/dt-bindings/clock/r8a7742-clock.h new file mode 100644 index 000000000000..52a6d6bc4f2a --- /dev/null +++ b/include/dt-bindings/clock/r8a7742-clock.h @@ -0,0 +1,165 @@ +/* + * Copyright (C) 2020 Renesas Electronics Corp. + * Copyright 2013 Ideas On Board SPRL + * + * 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. + */ + +#ifndef __DT_BINDINGS_CLOCK_R8A7742_H__ +#define __DT_BINDINGS_CLOCK_R8A7742_H__ + +/* CPG */ +#define R8A7742_CLK_MAIN 0 +#define R8A7742_CLK_PLL0 1 +#define R8A7742_CLK_PLL1 2 +#define R8A7742_CLK_PLL3 3 +#define R8A7742_CLK_LB 4 +#define R8A7742_CLK_QSPI 5 +#define R8A7742_CLK_SDH 6 +#define R8A7742_CLK_SD0 7 +#define R8A7742_CLK_SD1 8 +#define R8A7742_CLK_Z 9 +#define R8A7742_CLK_Z2 10 +#define R8A7742_CLK_RCAN 11 + +/* MSTP0 */ +#define R8A7742_CLK_MSIOF0 0 + +/* MSTP1 */ +#define R8A7742_CLK_VCP1 0 +#define R8A7742_CLK_VCP0 1 +#define R8A7742_CLK_VPC1 2 +#define R8A7742_CLK_VPC0 3 +#define R8A7742_CLK_TMU1 11 +#define R8A7742_CLK_3DG 12 +#define R8A7742_CLK_2DDMAC 15 +#define R8A7742_CLK_FDP1_2 17 +#define R8A7742_CLK_FDP1_1 18 +#define R8A7742_CLK_FDP1_0 19 +#define R8A7742_CLK_TMU3 21 +#define R8A7742_CLK_TMU2 22 +#define R8A7742_CLK_CMT0 24 +#define R8A7742_CLK_TMU0 25 +#define R8A7742_CLK_VSP1_DU1 27 +#define R8A7742_CLK_VSP1_DU0 28 +#define R8A7742_CLK_VSP1_R 30 +#define R8A7742_CLK_VSP1_S 31 + +/* MSTP2 */ +#define R8A7742_CLK_SCIFA2 2 +#define R8A7742_CLK_SCIFA1 3 +#define R8A7742_CLK_SCIFA0 4 +#define R8A7742_CLK_MSIOF2 5 +#define R8A7742_CLK_SCIFB0 6 +#define R8A7742_CLK_SCIFB1 7 +#define R8A7742_CLK_MSIOF1 8 +#define R8A7742_CLK_MSIOF3 15 +#define R8A7742_CLK_SCIFB2 16 +#define R8A7742_CLK_SYS_DMAC1 18 +#define R8A7742_CLK_SYS_DMAC0 19 + +/* MSTP3 */ +#define R8A7742_CLK_IIC2 0 +#define R8A7742_CLK_TPU0 4 +#define R8A7742_CLK_MMCIF1 5 +#define R8A7742_CLK_SCIF2 10 +#define R8A7742_CLK_SDHI3 11 +#define R8A7742_CLK_SDHI2 12 +#define R8A7742_CLK_SDHI1 13 +#define R8A7742_CLK_SDHI0 14 +#define R8A7742_CLK_MMCIF0 15 +#define R8A7742_CLK_IIC0 18 +#define R8A7742_CLK_PCIEC 19 +#define R8A7742_CLK_IIC1 23 +#define R8A7742_CLK_SSUSB 28 +#define R8A7742_CLK_CMT1 29 +#define R8A7742_CLK_USBDMAC0 30 +#define R8A7742_CLK_USBDMAC1 31 + +/* MSTP4 */ +#define R8A7742_CLK_RWDT 2 +#define R8A7742_CLK_IRQC 7 +#define R8A7742_CLK_INTC_SYS 8 + +/* MSTP5 */ +#define R8A7742_CLK_AUDIO_DMAC1 1 +#define R8A7742_CLK_AUDIO_DMAC0 2 +#define R8A7742_CLK_THERMAL 22 +#define R8A7742_CLK_PWM 23 + +/* MSTP7 */ +#define R8A7742_CLK_EHCI 3 +#define R8A7742_CLK_HSUSB 4 +#define R8A7742_CLK_HSCIF1 16 +#define R8A7742_CLK_HSCIF0 17 +#define R8A7742_CLK_SCIF1 20 +#define R8A7742_CLK_SCIF0 21 +#define R8A7742_CLK_DU2 22 +#define R8A7742_CLK_DU1 23 +#define R8A7742_CLK_DU0 24 +#define R8A7742_CLK_LVDS1 25 +#define R8A7742_CLK_LVDS0 26 + +/* MSTP8 */ +#define R8A7742_CLK_R_GP2D 7 +#define R8A7742_CLK_VIN3 8 +#define R8A7742_CLK_VIN2 9 +#define R8A7742_CLK_VIN1 10 +#define R8A7742_CLK_VIN0 11 +#define R8A7742_CLK_ETHERAVB 12 +#define R8A7742_CLK_ETHER 13 +#define R8A7742_CLK_SATA1 14 +#define R8A7742_CLK_SATA0 15 +#define R8A7742_CLK_IMR_X2_1 20 +#define R8A7742_CLK_IMR_X2_0 21 +#define R8A7742_CLK_IMR_LSX2_1 22 +#define R8A7742_CLK_IMR_LSX2_0 23 + +/* MSTP9 */ +#define R8A7742_CLK_GPIO5 7 +#define R8A7742_CLK_GPIO4 8 +#define R8A7742_CLK_GPIO3 9 +#define R8A7742_CLK_GPIO2 10 +#define R8A7742_CLK_GPIO1 11 +#define R8A7742_CLK_GPIO0 12 +#define R8A7742_CLK_RCAN1 15 +#define R8A7742_CLK_RCAN0 16 +#define R8A7742_CLK_QSPI_MOD 17 +#define R8A7742_CLK_IICDVFS 26 +#define R8A7742_CLK_I2C3 28 +#define R8A7742_CLK_I2C2 29 +#define R8A7742_CLK_I2C1 30 +#define R8A7742_CLK_I2C0 31 + +/* MSTP10 */ +#define R8A7742_CLK_SSI_ALL 5 +#define R8A7742_CLK_SSI9 6 +#define R8A7742_CLK_SSI8 7 +#define R8A7742_CLK_SSI7 8 +#define R8A7742_CLK_SSI6 9 +#define R8A7742_CLK_SSI5 10 +#define R8A7742_CLK_SSI4 11 +#define R8A7742_CLK_SSI3 12 +#define R8A7742_CLK_SSI2 13 +#define R8A7742_CLK_SSI1 14 +#define R8A7742_CLK_SSI0 15 +#define R8A7742_CLK_SCU_ALL 17 +#define R8A7742_CLK_SCU_DVC1 18 +#define R8A7742_CLK_SCU_DVC0 19 +#define R8A7742_CLK_SCU_CTU1_MIX1 20 +#define R8A7742_CLK_SCU_CTU0_MIX0 21 +#define R8A7742_CLK_SCU_SRC9 22 +#define R8A7742_CLK_SCU_SRC8 23 +#define R8A7742_CLK_SCU_SRC7 24 +#define R8A7742_CLK_SCU_SRC6 25 +#define R8A7742_CLK_SCU_SRC5 26 +#define R8A7742_CLK_SCU_SRC4 27 +#define R8A7742_CLK_SCU_SRC3 28 +#define R8A7742_CLK_SCU_SRC2 29 +#define R8A7742_CLK_SCU_SRC1 30 +#define R8A7742_CLK_SCU_SRC0 31 + +#endif /* __DT_BINDINGS_CLOCK_R8A7742_H__ */ From e28e80389a2753033e4c0c7dfaea3ab8e6792439 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 28 Aug 2020 16:41:30 +0100 Subject: [PATCH 0878/1149] clk: shmobile: Document r8a7742 CPG clock support Document r8a7742 CPG clock support. The clock driver architecture has changed quite dramatically over time, there is nothing we can backport from mainline for this, hence the new patch. Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- .../devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt index 631cd38792af..198d1da3f7a6 100644 --- a/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt +++ b/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt @@ -8,6 +8,7 @@ CPG Module Stop (MSTP) Clocks. Required Properties: - compatible: Must be one of + - "renesas,r8a7742-cpg-clocks" for the r8a7742 CPG - "renesas,r8a7743-cpg-clocks" for the r8a7743 CPG - "renesas,r8a7744-cpg-clocks" for the r8a7744 CPG - "renesas,r8a7745-cpg-clocks" for the r8a7745 CPG From c1a062115ecfba01752ac0256eefae59f0b60423 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 28 Aug 2020 16:41:31 +0100 Subject: [PATCH 0879/1149] clk: shmobile: Document r8a7742 MSTP clock support Document r8a7742 MSTP clock support. The clock driver architecture has changed quite dramatically over time, there is nothing we can backport from mainline for this, hence the new patch. Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- .../devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt index 1f64680fb108..3787cb252b44 100644 --- a/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt +++ b/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt @@ -13,6 +13,7 @@ Required Properties: - "renesas,r7s72100-mstp-clocks" for R7S72100 (RZ) MSTP gate clocks - "renesas,r8a73a4-mstp-clocks" for R8A73A4 (R-Mobile APE6) MSTP gate clocks - "renesas,r8a7740-mstp-clocks" for R8A7740 (R-Mobile A1) MSTP gate clocks + - "renesas,r8a7742-mstp-clocks" for R8A7742 (RZ/G1H) MSTP gate clocks - "renesas,r8a7743-mstp-clocks" for R8A7743 (RZ/G1M) MSTP gate clocks - "renesas,r8a7744-mstp-clocks" for R8A7744 (RZ/G1N) MSTP gate clocks - "renesas,r8a7745-mstp-clocks" for R8A7745 (RZ/G1E) MSTP gate clocks From beb4f568d605465945ed9e291bee936b780cd6e3 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 28 Aug 2020 16:41:32 +0100 Subject: [PATCH 0880/1149] clk: shmobile: Document r8a7742 CPG DIV6 clock support Document r8a7742 CPG DIV6 clock support. The clock driver architecture has changed quite dramatically over time, there is nothing we can backport from mainline for this, hence the new patch. Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- .../devicetree/bindings/clock/renesas,cpg-div6-clocks.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt index 7b05affc93f1..c60b174e3350 100644 --- a/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt +++ b/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt @@ -9,6 +9,7 @@ Required Properties: - compatible: Must be one of the following - "renesas,r8a73a4-div6-clock" for R8A73A4 (R-Mobile APE6) DIV6 clocks - "renesas,r8a7740-div6-clock" for R8A7740 (R-Mobile A1) DIV6 clocks + - "renesas,r8a7742-div6-clock" for R8A7742 (RZ/G1H) DIV6 clocks - "renesas,r8a7743-div6-clock" for R8A7743 (RZ/G1M) DIV6 clocks - "renesas,r8a7744-div6-clock" for R8A7744 (RZ/G1N) DIV6 clocks - "renesas,r8a7745-div6-clock" for R8A7745 (RZ/G1E) DIV6 clocks From 965eb5c2a4ad914163daa54c7af029bdd7816d9a Mon Sep 17 00:00:00 2001 From: Biju Das Date: Fri, 28 Aug 2020 16:41:33 +0100 Subject: [PATCH 0881/1149] clk: shmobile: Compile clk-rcar-gen2.c when using the r8a7742 This patch makes sure clk-rcar-gen2,c gets compiled when CONFIG_ARCH_R8A7742 is selected, similarly to what done by commit: 7bac4ad3e40f ("CIP: Build essential clock driver for Renesas RZ/G1 platforms") Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/clk/shmobile/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/clk/shmobile/Makefile b/drivers/clk/shmobile/Makefile index 6badac598707..2f9fb407aa32 100644 --- a/drivers/clk/shmobile/Makefile +++ b/drivers/clk/shmobile/Makefile @@ -2,6 +2,7 @@ obj-$(CONFIG_ARCH_EMEV2) += clk-emev2.o obj-$(CONFIG_ARCH_R7S72100) += clk-rz.o obj-$(CONFIG_ARCH_R8A73A4) += clk-r8a73a4.o obj-$(CONFIG_ARCH_R8A7740) += clk-r8a7740.o +obj-$(CONFIG_ARCH_R8A7742) += clk-rcar-gen2.o obj-$(CONFIG_ARCH_R8A7743) += clk-rcar-gen2.o obj-$(CONFIG_ARCH_R8A7744) += clk-rcar-gen2.o obj-$(CONFIG_ARCH_R8A7745) += clk-rcar-gen2.o From f06fe4a41709561ee6343f169f2f898273aae895 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 28 Aug 2020 16:41:34 +0100 Subject: [PATCH 0882/1149] ARM: shmobile: r8a7742: Basic SoC support commit 135e7a156ae2c1a7a1f0c1d44bf2b3daece04bbf upstream. Add minimal support for the RZ/G1H (R8A7742) SoC. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1587678050-23468-10-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: removed compatible string renesas,r8a7742-cpg-mssr, added config option for rz/g1h] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- arch/arm/mach-shmobile/pm-rcar-gen2.c | 2 ++ arch/arm/mach-shmobile/setup-rcar-gen2.c | 1 + 2 files changed, 3 insertions(+) diff --git a/arch/arm/mach-shmobile/pm-rcar-gen2.c b/arch/arm/mach-shmobile/pm-rcar-gen2.c index dd1c9e08f3ea..c0c52458d9c9 100644 --- a/arch/arm/mach-shmobile/pm-rcar-gen2.c +++ b/arch/arm/mach-shmobile/pm-rcar-gen2.c @@ -97,6 +97,8 @@ void __init rcar_gen2_pm_init(void) syscier = 0x013111ef; else if (of_machine_is_compatible("renesas,r8a7791")) syscier = 0x00111003; + else if (of_machine_is_compatible("renesas,r8a7742")) + syscier = 0x013111ef; else if (of_machine_is_compatible("renesas,r8a7743")) syscier = 0x00101003; else if (of_machine_is_compatible("renesas,r8a7744")) diff --git a/arch/arm/mach-shmobile/setup-rcar-gen2.c b/arch/arm/mach-shmobile/setup-rcar-gen2.c index 50c57c8c4f40..bd9985459651 100644 --- a/arch/arm/mach-shmobile/setup-rcar-gen2.c +++ b/arch/arm/mach-shmobile/setup-rcar-gen2.c @@ -207,6 +207,7 @@ DT_MACHINE_START(RCAR_GEN2_DT, "Generic R-Car Gen2 (Flattened Device Tree)") MACHINE_END static const char * const rz_g1_boards_compat_dt[] __initconst = { + "renesas,r8a7742", "renesas,r8a7743", "renesas,r8a7744", "renesas,r8a7745", From 43eb2cc8d648c316a4257f1b3ca76ee857fb23f2 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 28 Aug 2020 16:41:35 +0100 Subject: [PATCH 0883/1149] soc: renesas: Add Renesas R8A7742 config option commit cdc8abe763c99a6c2b854d7096eaf1ea21017a42 upstream. Add configuration option for the RZ/G1H (R8A77420) SoC. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1588197415-13747-2-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: Moved config option from soc/renesas/Kconfig to here] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- arch/arm/mach-shmobile/Kconfig | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index 79b66a1ce96b..a51df53f0914 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig @@ -64,6 +64,11 @@ config ARCH_R8A7740 select ARCH_RMOBILE select RENESAS_INTC_IRQPIN +config ARCH_R8A7742 + bool "RZ/G1H (R8A77420)" + select ARCH_RCAR_GEN2 + select ARM_ERRATA_798181 if SMP + config ARCH_R8A7743 bool "RZ/G1M (R8A77430)" select ARCH_RCAR_GEN2 From 0299bee904c72583be99973d8b4e87dff15c1b90 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 28 Aug 2020 16:41:36 +0100 Subject: [PATCH 0884/1149] ARM: debug-ll: Add support for r8a7742 commit 96866b1a1d32318b6bbc321a762bf79db1f4686e upstream. Enable low-level debugging support for RZ/G1H (R8A7742). RZ/G1H uses SCIFA2 for the debug console. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1588197415-13747-5-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- arch/arm/Kconfig.debug | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index f647c067d930..7df076789a3a 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -846,6 +846,13 @@ choice Say Y here if you want kernel low-level debugging support via SCIF4 on Renesas RZ/G1E (R8A7745). + config DEBUG_RCAR_GEN2_SCIFA2 + bool "Kernel low-level debugging messages via SCIFA2 on R8A7742" + depends on ARCH_R8A7742 + help + Say Y here if you want kernel low-level debugging support + via SCIFA2 on Renesas RZ/G1H (R8A7742). + config DEBUG_RMOBILE_SCIFA0 bool "Kernel low-level debugging messages via SCIFA0 on R8A73A4" depends on ARCH_R8A73A4 @@ -1351,6 +1358,7 @@ config DEBUG_LL_INCLUDE default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF1 default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF2 default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF4 + default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIFA2 default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA0 default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA1 default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA4 @@ -1448,6 +1456,7 @@ config DEBUG_UART_PHYS default 0xe4007000 if DEBUG_HIP04_UART default 0xe6c40000 if DEBUG_RMOBILE_SCIFA0 default 0xe6c50000 if DEBUG_RMOBILE_SCIFA1 + default 0xe6c60000 if DEBUG_RCAR_GEN2_SCIFA2 default 0xe6c80000 if DEBUG_RMOBILE_SCIFA4 default 0xe6e58000 if DEBUG_RCAR_GEN2_SCIF2 default 0xe6e60000 if DEBUG_RCAR_GEN2_SCIF0 @@ -1487,6 +1496,7 @@ config DEBUG_UART_PHYS DEBUG_RCAR_GEN1_SCIF0 || DEBUG_RCAR_GEN1_SCIF2 || \ DEBUG_RCAR_GEN2_SCIF0 || DEBUG_RCAR_GEN2_SCIF1 || \ DEBUG_RCAR_GEN2_SCIF2 || DEBUG_RCAR_GEN2_SCIF4 || \ + DEBUG_RCAR_GEN2_SCIFA2 || \ DEBUG_RMOBILE_SCIFA0 || DEBUG_RMOBILE_SCIFA1 || \ DEBUG_RMOBILE_SCIFA4 || DEBUG_S3C24XX_UART || \ DEBUG_BCM63XX_UART || DEBUG_ASM9260_UART || \ From eaf9ba1edd2e69ea34cf8c5a3d0aedfef6821087 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 28 Aug 2020 16:41:37 +0100 Subject: [PATCH 0885/1149] ARM: shmobile: defconfig: Enable r8a7742 SoC commit 1a90c5ba48c43aeaeccebcd3e092888b670a4bab upstream. Enable recently added r8a7742 (RZ/G1H) SoC. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1588197415-13747-3-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- arch/arm/configs/shmobile_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/shmobile_defconfig b/arch/arm/configs/shmobile_defconfig index 151fad5c0b8d..03040b696689 100644 --- a/arch/arm/configs/shmobile_defconfig +++ b/arch/arm/configs/shmobile_defconfig @@ -14,6 +14,7 @@ CONFIG_ARCH_EMEV2=y CONFIG_ARCH_R7S72100=y CONFIG_ARCH_R8A73A4=y CONFIG_ARCH_R8A7740=y +CONFIG_ARCH_R8A7742=y CONFIG_ARCH_R8A7743=y CONFIG_ARCH_R8A7744=y CONFIG_ARCH_R8A7745=y From e65d1b98c70c6485cf9f80acdc77efcf8eae5e20 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 28 Aug 2020 16:41:38 +0100 Subject: [PATCH 0886/1149] ARM: multi_v7_defconfig: Enable r8a7742 SoC commit 44b6141ebe936808fc59b386e3e259bef6c9bba6 upstream. Enable recently added r8a7742 (RZ/G1H) SoC. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1588197415-13747-4-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig index f969bb231cf6..74a69583b75b 100644 --- a/arch/arm/configs/multi_v7_defconfig +++ b/arch/arm/configs/multi_v7_defconfig @@ -80,6 +80,7 @@ CONFIG_ARCH_EMEV2=y CONFIG_ARCH_R7S72100=y CONFIG_ARCH_R8A73A4=y CONFIG_ARCH_R8A7740=y +CONFIG_ARCH_R8A7742=y CONFIG_ARCH_R8A7743=y CONFIG_ARCH_R8A7744=y CONFIG_ARCH_R8A7745=y From 57a8f6f7b0ff60c7dd7587398b748b1a3c1e0312 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 28 Aug 2020 16:41:39 +0100 Subject: [PATCH 0887/1149] dt-bindings: serial: renesas,scifa: Document r8a7742 bindings commit 0280a04ed9dbdaaae552b79b7a704625bd8e27cf upstream. RZ/G1H (R8A7742) SoC also has the R-Car gen2 compatible SCIFA ports, so document the SoC specific bindings. Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Geert Uytterhoeven Acked-by: Rob Herring Signed-off-by: Lad Prabhakar Signed-off-by: Rob Herring [biju: Patched text version of bindings file] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/serial/renesas,sci-serial.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt index d2db8565d413..c57622ef52eb 100644 --- a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt +++ b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt @@ -9,6 +9,7 @@ Required properties: - "renesas,scifb-r8a73a4" for R8A73A4 (R-Mobile APE6) SCIFB compatible UART. - "renesas,scifa-r8a7740" for R8A7740 (R-Mobile A1) SCIFA compatible UART. - "renesas,scifb-r8a7740" for R8A7740 (R-Mobile A1) SCIFB compatible UART. + - "renesas,scifa-r8a7742" for R8A7742 (RZ/G1H) SCIFA compatible UART. - "renesas,scif-r8a7743" for R8A7743 (RZ/G1M) SCIF compatible UART. - "renesas,scifa-r8a7743" for R8A7743 (RZ/G1M) SCIFA compatible UART. - "renesas,scifb-r8a7743" for R8A7743 (RZ/G1M) SCIFB compatible UART. From 7e427fa262608df1858a9638fc2fdbae18708b52 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 28 Aug 2020 16:41:40 +0100 Subject: [PATCH 0888/1149] dt-bindings: serial: renesas,scif: Document r8a7742 bindings commit 8908a822663f6958f56174120de383ff955874be upstream. RZ/G1H (R8A7742) SoC also has the R-Car gen2 compatible SCIF ports, so document the SoC specific bindings. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Geert Uytterhoeven Signed-off-by: Rob Herring [biju: Patched text version of bindings file] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/serial/renesas,sci-serial.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt index c57622ef52eb..14768b504d13 100644 --- a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt +++ b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt @@ -9,6 +9,7 @@ Required properties: - "renesas,scifb-r8a73a4" for R8A73A4 (R-Mobile APE6) SCIFB compatible UART. - "renesas,scifa-r8a7740" for R8A7740 (R-Mobile A1) SCIFA compatible UART. - "renesas,scifb-r8a7740" for R8A7740 (R-Mobile A1) SCIFB compatible UART. + - "renesas,scif-r8a7742" for R8A7742 (RZ/G1H) SCIF compatible UART. - "renesas,scifa-r8a7742" for R8A7742 (RZ/G1H) SCIFA compatible UART. - "renesas,scif-r8a7743" for R8A7743 (RZ/G1M) SCIF compatible UART. - "renesas,scifa-r8a7743" for R8A7743 (RZ/G1M) SCIFA compatible UART. From 628add9421a2b3c3676750dc711007464087f1f4 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 28 Aug 2020 16:41:41 +0100 Subject: [PATCH 0889/1149] dt-bindings: serial: renesas,scifb: Document r8a7742 bindings commit 3cf1601ab00ce55820e6130611f536b326563a7e upstream. RZ/G1H (R8A7742) SoC also has the R-Car gen2 compatible SCIFB ports, so document the SoC specific bindings. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Geert Uytterhoeven Signed-off-by: Rob Herring [biju: Patched text version of bindings file] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/serial/renesas,sci-serial.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt index 14768b504d13..dff8cb1a2980 100644 --- a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt +++ b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt @@ -11,6 +11,7 @@ Required properties: - "renesas,scifb-r8a7740" for R8A7740 (R-Mobile A1) SCIFB compatible UART. - "renesas,scif-r8a7742" for R8A7742 (RZ/G1H) SCIF compatible UART. - "renesas,scifa-r8a7742" for R8A7742 (RZ/G1H) SCIFA compatible UART. + - "renesas,scifb-r8a7742" for R8A7742 (RZ/G1H) SCIFB compatible UART. - "renesas,scif-r8a7743" for R8A7743 (RZ/G1M) SCIF compatible UART. - "renesas,scifa-r8a7743" for R8A7743 (RZ/G1M) SCIFA compatible UART. - "renesas,scifb-r8a7743" for R8A7743 (RZ/G1M) SCIFB compatible UART. From b5d3781015c817c890811655b1215f8b6e89ca57 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 28 Aug 2020 16:41:42 +0100 Subject: [PATCH 0890/1149] dt-bindings: serial: renesas,hscif: Document r8a7742 bindings commit 65994c09bc66d7241be2f7d6eb3b43f894ba2db0 upstream. RZ/G1H (R8A7742) SoC also has the R-Car gen2 compatible HSCIF ports, so document the SoC specific bindings. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Geert Uytterhoeven Signed-off-by: Rob Herring [biju: Patched text version of bindings file] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/serial/renesas,sci-serial.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt index dff8cb1a2980..05bb154d6243 100644 --- a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt +++ b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt @@ -12,6 +12,7 @@ Required properties: - "renesas,scif-r8a7742" for R8A7742 (RZ/G1H) SCIF compatible UART. - "renesas,scifa-r8a7742" for R8A7742 (RZ/G1H) SCIFA compatible UART. - "renesas,scifb-r8a7742" for R8A7742 (RZ/G1H) SCIFB compatible UART. + - "renesas,hscif-r8a7742" for R8A7742 (RZ/G1H) HSCIF compatible UART. - "renesas,scif-r8a7743" for R8A7743 (RZ/G1M) SCIF compatible UART. - "renesas,scifa-r8a7743" for R8A7743 (RZ/G1M) SCIFA compatible UART. - "renesas,scifb-r8a7743" for R8A7743 (RZ/G1M) SCIFB compatible UART. From ea8913317952470b49248e1a5a96aac029e1444f Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 28 Aug 2020 16:41:43 +0100 Subject: [PATCH 0891/1149] dt-bindings: mmc: renesas,mmcif: Document r8a7742 DT bindings commit 194f9b21ad64740eb9675703037fe42113cea65c upstream. Add support for r8a7742 SoC. Renesas RZ/G1H (R8A7742) MMCIF is identical to the R-Car Gen2 family. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/1588794695-27852-2-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Ulf Hansson [biju: removed interrupt related changes] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/mmc/renesas,mmcif.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/mmc/renesas,mmcif.txt b/Documentation/devicetree/bindings/mmc/renesas,mmcif.txt index ccbcd765a6ec..6aeb67f5131d 100644 --- a/Documentation/devicetree/bindings/mmc/renesas,mmcif.txt +++ b/Documentation/devicetree/bindings/mmc/renesas,mmcif.txt @@ -9,6 +9,7 @@ Required properties: - compatible: should be "renesas,mmcif-", "renesas,sh-mmcif" as a fallback. Examples with are: - "renesas,mmcif-r8a7740" for the MMCIF found in r8a7740 SoCs + - "renesas,mmcif-r8a7742" for the MMCIF found in r8a7742 SoCs - "renesas,mmcif-r8a7743" for the MMCIF found in r8a7743 SoCs - "renesas,mmcif-r8a7744" for the MMCIF found in r8a7744 SoCs - "renesas,mmcif-r8a7745" for the MMCIF found in r8a7745 SoCs From a16af33d9db8d6eda0fa20ec7c38ca1ee803b627 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 28 Aug 2020 16:41:44 +0100 Subject: [PATCH 0892/1149] dt-bindings: pinctrl: sh-pfc: Document r8a7742 PFC support commit baf674bf717f8224f33e453e1df92a96c4d6ce48 upstream. Document PFC support for the RZ/G1H (R8A7742) SoC. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Acked-by: Rob Herring Link: https://lore.kernel.org/r/1588542414-14826-2-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- .../devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt index f2008d0e5fd2..90c9bf8beca2 100644 --- a/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt @@ -13,6 +13,7 @@ Required Properties: - "renesas,pfc-emev2": for EMEV2 (EMMA Mobile EV2) compatible pin-controller. - "renesas,pfc-r8a73a4": for R8A73A4 (R-Mobile APE6) compatible pin-controller. - "renesas,pfc-r8a7740": for R8A7740 (R-Mobile A1) compatible pin-controller. + - "renesas,pfc-r8a7742": for R8A7742 (RZ/G1H) compatible pin-controller. - "renesas,pfc-r8a7743": for R8A7743 (RZ/G1M) compatible pin-controller. - "renesas,pfc-r8a7744": for R8A7744 (RZ/G1N) compatible pin-controller. - "renesas,pfc-r8a7745": for R8A7745 (RZ/G1E) compatible pin-controller. From 5b00c6675eedac280762c8d606163d7e12127b3e Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Fri, 28 Aug 2020 16:41:45 +0100 Subject: [PATCH 0893/1149] pinctrl: sh-pfc: r8a7790: Use PINMUX_SINGLE() instead of raw PINMUX_DATA() commit 01af9ecbd7bd7d688c54d73a7fa8f7e10ab29d8c upstream. Signed-off-by: Geert Uytterhoeven Acked-by: Kuninori Morimoto Acked-by: Laurent Pinchart Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/pinctrl/sh-pfc/pfc-r8a7790.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c index d9924b0d53b7..1acad99d6466 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c @@ -806,15 +806,15 @@ enum { static const u16 pinmux_data[] = { PINMUX_DATA_GP_ALL(), /* PINMUX_DATA(GP_M_N_DATA, GP_M_N_FN...), */ - PINMUX_DATA(VI1_DATA7_VI1_B7_MARK, FN_VI1_DATA7_VI1_B7), - PINMUX_DATA(USB0_PWEN_MARK, FN_USB0_PWEN), - PINMUX_DATA(USB0_OVC_VBUS_MARK, FN_USB0_OVC_VBUS), - PINMUX_DATA(USB2_PWEN_MARK, FN_USB2_PWEN), - PINMUX_DATA(USB2_OVC_MARK, FN_USB2_OVC), - PINMUX_DATA(AVS1_MARK, FN_AVS1), - PINMUX_DATA(AVS2_MARK, FN_AVS2), - PINMUX_DATA(DU_DOTCLKIN0_MARK, FN_DU_DOTCLKIN0), - PINMUX_DATA(DU_DOTCLKIN2_MARK, FN_DU_DOTCLKIN2), + PINMUX_SINGLE(VI1_DATA7_VI1_B7), + PINMUX_SINGLE(USB0_PWEN), + PINMUX_SINGLE(USB0_OVC_VBUS), + PINMUX_SINGLE(USB2_PWEN), + PINMUX_SINGLE(USB2_OVC), + PINMUX_SINGLE(AVS1), + PINMUX_SINGLE(AVS2), + PINMUX_SINGLE(DU_DOTCLKIN0), + PINMUX_SINGLE(DU_DOTCLKIN2), PINMUX_IPSR_DATA(IP0_2_0, D0), PINMUX_IPSR_MSEL(IP0_2_0, MSIOF3_SCK_B, SEL_SOF3_1), From 2f756b5a2e334a5127260769659c4fb2e134836f Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Fri, 28 Aug 2020 16:41:46 +0100 Subject: [PATCH 0894/1149] pinctrl: sh-pfc: r8a7790: Add SCIF_CLK support commit 53ec9ccd1c62b644d81674e013b1800dd88ec92b upstream. Add pins, groups, and a function for SCIF_CLK, which is the external clock source for the Baud Rate Generator for External Clock (BRG) on (H)SCIF. Signed-off-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Acked-by: Linus Walleij Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/pinctrl/sh-pfc/pfc-r8a7790.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c index 1acad99d6466..0602ae4ec039 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c @@ -3236,6 +3236,21 @@ static const unsigned int scifb2_data_c_pins[] = { static const unsigned int scifb2_data_c_mux[] = { SCIFB2_RXD_C_MARK, SCIFB2_TXD_C_MARK, }; +/* - SCIF Clock ------------------------------------------------------------- */ +static const unsigned int scif_clk_pins[] = { + /* SCIF_CLK */ + RCAR_GP_PIN(4, 26), +}; +static const unsigned int scif_clk_mux[] = { + SCIF_CLK_MARK, +}; +static const unsigned int scif_clk_b_pins[] = { + /* SCIF_CLK */ + RCAR_GP_PIN(5, 4), +}; +static const unsigned int scif_clk_b_mux[] = { + SCIF_CLK_B_MARK, +}; /* - SDHI0 ------------------------------------------------------------------ */ static const unsigned int sdhi0_data1_pins[] = { /* D0 */ @@ -4139,6 +4154,8 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(scifb2_clk_b), SH_PFC_PIN_GROUP(scifb2_ctrl_b), SH_PFC_PIN_GROUP(scifb2_data_c), + SH_PFC_PIN_GROUP(scif_clk), + SH_PFC_PIN_GROUP(scif_clk_b), SH_PFC_PIN_GROUP(sdhi0_data1), SH_PFC_PIN_GROUP(sdhi0_data4), SH_PFC_PIN_GROUP(sdhi0_ctrl), @@ -4555,6 +4572,11 @@ static const char * const scifb2_groups[] = { "scifb2_data_c", }; +static const char * const scif_clk_groups[] = { + "scif_clk", + "scif_clk_b", +}; + static const char * const sdhi0_groups[] = { "sdhi0_data1", "sdhi0_data4", @@ -4729,6 +4751,7 @@ static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(scifb0), SH_PFC_FUNCTION(scifb1), SH_PFC_FUNCTION(scifb2), + SH_PFC_FUNCTION(scif_clk), SH_PFC_FUNCTION(sdhi0), SH_PFC_FUNCTION(sdhi1), SH_PFC_FUNCTION(sdhi2), From 3454a40b450f222dc53090050506754d59cd6f0b Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Fri, 28 Aug 2020 16:41:47 +0100 Subject: [PATCH 0895/1149] pinctrl: sh-pfc: r8a7790: Add missing TX_ER pin to avb_mii group commit 66e9fe1ec73929a9f7326856699d262bab8e9fb0 upstream. The pin controller drivers for all R-Car Gen2 SoCs have entries for the EtherAVB TX_ER pins in their EtherAVB MII groups, except on R-Car H2. Add the missing pin to restore consistency. Note that technically TX_ER is an optional signal in the MII bus, and thus could have its own group, but this is currently not supported by any R-Car Gen2 pin controller driver. Fixes: 19ef697d1eb7be06 ("sh-pfc: r8a7790: add EtherAVB pin groups") Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/pinctrl/sh-pfc/pfc-r8a7790.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c index 0602ae4ec039..a790e913e6bb 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c @@ -1848,8 +1848,8 @@ static const unsigned int avb_mii_pins[] = { RCAR_GP_PIN(2, 2), RCAR_GP_PIN(2, 7), RCAR_GP_PIN(2, 8), RCAR_GP_PIN(2, 9), - RCAR_GP_PIN(2, 10), RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 10), - RCAR_GP_PIN(3, 12), + RCAR_GP_PIN(2, 10), RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), + RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 12), }; static const unsigned int avb_mii_mux[] = { AVB_TXD0_MARK, AVB_TXD1_MARK, AVB_TXD2_MARK, @@ -1859,8 +1859,8 @@ static const unsigned int avb_mii_mux[] = { AVB_RXD3_MARK, AVB_RX_ER_MARK, AVB_RX_CLK_MARK, AVB_RX_DV_MARK, - AVB_CRS_MARK, AVB_TX_EN_MARK, AVB_TX_CLK_MARK, - AVB_COL_MARK, + AVB_CRS_MARK, AVB_TX_EN_MARK, AVB_TX_ER_MARK, + AVB_TX_CLK_MARK, AVB_COL_MARK, }; static const unsigned int avb_gmii_pins[] = { RCAR_GP_PIN(0, 8), RCAR_GP_PIN(0, 9), RCAR_GP_PIN(0, 10), From af2d94ef0445e96c38756c5493513d590671b27e Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 28 Aug 2020 16:41:48 +0100 Subject: [PATCH 0896/1149] pinctrl: sh-pfc: r8a7790: Add r8a7742 PFC support commit 4ecc7ff82ecfdf44997ed2a1016945fc8f6fca3e upstream. Renesas RZ/G1H (R8A7742) is pin compatible with R-Car H2 (R8A7790), however it doesn't have several automotive specific peripherals. Add automotive-specific pin groups/functions along with common pin groups/functions for supporting both r8a7790 and r8a7742 SoC. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1588542414-14826-3-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: removed voltage switching, tdsel related changes] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- drivers/pinctrl/sh-pfc/Kconfig | 5 + drivers/pinctrl/sh-pfc/Makefile | 1 + drivers/pinctrl/sh-pfc/core.c | 6 + drivers/pinctrl/sh-pfc/core.h | 1 + drivers/pinctrl/sh-pfc/pfc-r8a7790.c | 743 ++++++++++++++------------- 5 files changed, 404 insertions(+), 352 deletions(-) diff --git a/drivers/pinctrl/sh-pfc/Kconfig b/drivers/pinctrl/sh-pfc/Kconfig index eef770b6acc6..f4a2a9f708a4 100644 --- a/drivers/pinctrl/sh-pfc/Kconfig +++ b/drivers/pinctrl/sh-pfc/Kconfig @@ -35,6 +35,11 @@ config PINCTRL_PFC_R8A7740 depends on ARCH_R8A7740 select PINCTRL_SH_PFC +config PINCTRL_PFC_R8A7742 + def_bool y + depends on ARCH_R8A7742 + select PINCTRL_SH_PFC + config PINCTRL_PFC_R8A7743 def_bool y depends on ARCH_R8A7743 diff --git a/drivers/pinctrl/sh-pfc/Makefile b/drivers/pinctrl/sh-pfc/Makefile index 5310c07daaa2..39180441e538 100644 --- a/drivers/pinctrl/sh-pfc/Makefile +++ b/drivers/pinctrl/sh-pfc/Makefile @@ -6,6 +6,7 @@ obj-$(CONFIG_PINCTRL_SH_PFC) += sh-pfc.o obj-$(CONFIG_PINCTRL_PFC_EMEV2) += pfc-emev2.o obj-$(CONFIG_PINCTRL_PFC_R8A73A4) += pfc-r8a73a4.o obj-$(CONFIG_PINCTRL_PFC_R8A7740) += pfc-r8a7740.o +obj-$(CONFIG_PINCTRL_PFC_R8A7742) += pfc-r8a7790.o obj-$(CONFIG_PINCTRL_PFC_R8A7743) += pfc-r8a7791.o obj-$(CONFIG_PINCTRL_PFC_R8A7744) += pfc-r8a7791.o obj-$(CONFIG_PINCTRL_PFC_R8A7745) += pfc-r8a7794.o diff --git a/drivers/pinctrl/sh-pfc/core.c b/drivers/pinctrl/sh-pfc/core.c index 6827a398ed0f..0fd6833b8259 100644 --- a/drivers/pinctrl/sh-pfc/core.c +++ b/drivers/pinctrl/sh-pfc/core.c @@ -453,6 +453,12 @@ static const struct of_device_id sh_pfc_of_table[] = { .data = &r8a7740_pinmux_info, }, #endif +#ifdef CONFIG_PINCTRL_PFC_R8A7742 + { + .compatible = "renesas,pfc-r8a7742", + .data = &r8a7742_pinmux_info, + }, +#endif #ifdef CONFIG_PINCTRL_PFC_R8A7743 { .compatible = "renesas,pfc-r8a7743", diff --git a/drivers/pinctrl/sh-pfc/core.h b/drivers/pinctrl/sh-pfc/core.h index 5675ecf3bc94..d67d2fb8888a 100644 --- a/drivers/pinctrl/sh-pfc/core.h +++ b/drivers/pinctrl/sh-pfc/core.h @@ -69,6 +69,7 @@ int sh_pfc_config_mux(struct sh_pfc *pfc, unsigned mark, int pinmux_type); extern const struct sh_pfc_soc_info emev2_pinmux_info; extern const struct sh_pfc_soc_info r8a73a4_pinmux_info; extern const struct sh_pfc_soc_info r8a7740_pinmux_info; +extern const struct sh_pfc_soc_info r8a7742_pinmux_info; extern const struct sh_pfc_soc_info r8a7743_pinmux_info; extern const struct sh_pfc_soc_info r8a7744_pinmux_info; extern const struct sh_pfc_soc_info r8a7745_pinmux_info; diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c index a790e913e6bb..00b64c5ec866 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c @@ -3957,297 +3957,304 @@ static const unsigned int vin3_clk_mux[] = { VI3_CLK_MARK, }; -static const struct sh_pfc_pin_group pinmux_groups[] = { - SH_PFC_PIN_GROUP(audio_clk_a), - SH_PFC_PIN_GROUP(audio_clk_b), - SH_PFC_PIN_GROUP(audio_clk_c), - SH_PFC_PIN_GROUP(audio_clkout), - SH_PFC_PIN_GROUP(audio_clkout_b), - SH_PFC_PIN_GROUP(audio_clkout_c), - SH_PFC_PIN_GROUP(audio_clkout_d), - SH_PFC_PIN_GROUP(avb_link), - SH_PFC_PIN_GROUP(avb_magic), - SH_PFC_PIN_GROUP(avb_phy_int), - SH_PFC_PIN_GROUP(avb_mdio), - SH_PFC_PIN_GROUP(avb_mii), - SH_PFC_PIN_GROUP(avb_gmii), - SH_PFC_PIN_GROUP(du_rgb666), - SH_PFC_PIN_GROUP(du_rgb888), - SH_PFC_PIN_GROUP(du_clk_out_0), - SH_PFC_PIN_GROUP(du_clk_out_1), - SH_PFC_PIN_GROUP(du_sync_0), - SH_PFC_PIN_GROUP(du_sync_1), - SH_PFC_PIN_GROUP(du_cde), - SH_PFC_PIN_GROUP(du0_clk_in), - SH_PFC_PIN_GROUP(du1_clk_in), - SH_PFC_PIN_GROUP(du2_clk_in), - SH_PFC_PIN_GROUP(eth_link), - SH_PFC_PIN_GROUP(eth_magic), - SH_PFC_PIN_GROUP(eth_mdio), - SH_PFC_PIN_GROUP(eth_rmii), - SH_PFC_PIN_GROUP(hscif0_data), - SH_PFC_PIN_GROUP(hscif0_clk), - SH_PFC_PIN_GROUP(hscif0_ctrl), - SH_PFC_PIN_GROUP(hscif0_data_b), - SH_PFC_PIN_GROUP(hscif0_ctrl_b), - SH_PFC_PIN_GROUP(hscif0_data_c), - SH_PFC_PIN_GROUP(hscif0_ctrl_c), - SH_PFC_PIN_GROUP(hscif0_data_d), - SH_PFC_PIN_GROUP(hscif0_ctrl_d), - SH_PFC_PIN_GROUP(hscif0_data_e), - SH_PFC_PIN_GROUP(hscif0_ctrl_e), - SH_PFC_PIN_GROUP(hscif0_data_f), - SH_PFC_PIN_GROUP(hscif0_ctrl_f), - SH_PFC_PIN_GROUP(hscif1_data), - SH_PFC_PIN_GROUP(hscif1_clk), - SH_PFC_PIN_GROUP(hscif1_ctrl), - SH_PFC_PIN_GROUP(hscif1_data_b), - SH_PFC_PIN_GROUP(hscif1_clk_b), - SH_PFC_PIN_GROUP(hscif1_ctrl_b), - SH_PFC_PIN_GROUP(i2c0), - SH_PFC_PIN_GROUP(i2c1), - SH_PFC_PIN_GROUP(i2c1_b), - SH_PFC_PIN_GROUP(i2c1_c), - SH_PFC_PIN_GROUP(i2c2), - SH_PFC_PIN_GROUP(i2c2_b), - SH_PFC_PIN_GROUP(i2c2_c), - SH_PFC_PIN_GROUP(i2c2_d), - SH_PFC_PIN_GROUP(i2c2_e), - SH_PFC_PIN_GROUP(i2c3), - SH_PFC_PIN_GROUP(iic0), - SH_PFC_PIN_GROUP(iic1), - SH_PFC_PIN_GROUP(iic1_b), - SH_PFC_PIN_GROUP(iic1_c), - SH_PFC_PIN_GROUP(iic2), - SH_PFC_PIN_GROUP(iic2_b), - SH_PFC_PIN_GROUP(iic2_c), - SH_PFC_PIN_GROUP(iic2_d), - SH_PFC_PIN_GROUP(iic2_e), - SH_PFC_PIN_GROUP(iic3), - SH_PFC_PIN_GROUP(intc_irq0), - SH_PFC_PIN_GROUP(intc_irq1), - SH_PFC_PIN_GROUP(intc_irq2), - SH_PFC_PIN_GROUP(intc_irq3), - SH_PFC_PIN_GROUP(mlb_3pin), - SH_PFC_PIN_GROUP(mmc0_data1), - SH_PFC_PIN_GROUP(mmc0_data4), - SH_PFC_PIN_GROUP(mmc0_data8), - SH_PFC_PIN_GROUP(mmc0_ctrl), - SH_PFC_PIN_GROUP(mmc1_data1), - SH_PFC_PIN_GROUP(mmc1_data4), - SH_PFC_PIN_GROUP(mmc1_data8), - SH_PFC_PIN_GROUP(mmc1_ctrl), - SH_PFC_PIN_GROUP(msiof0_clk), - SH_PFC_PIN_GROUP(msiof0_sync), - SH_PFC_PIN_GROUP(msiof0_ss1), - SH_PFC_PIN_GROUP(msiof0_ss2), - SH_PFC_PIN_GROUP(msiof0_rx), - SH_PFC_PIN_GROUP(msiof0_tx), - SH_PFC_PIN_GROUP(msiof0_clk_b), - SH_PFC_PIN_GROUP(msiof0_ss1_b), - SH_PFC_PIN_GROUP(msiof0_ss2_b), - SH_PFC_PIN_GROUP(msiof0_rx_b), - SH_PFC_PIN_GROUP(msiof0_tx_b), - SH_PFC_PIN_GROUP(msiof1_clk), - SH_PFC_PIN_GROUP(msiof1_sync), - SH_PFC_PIN_GROUP(msiof1_ss1), - SH_PFC_PIN_GROUP(msiof1_ss2), - SH_PFC_PIN_GROUP(msiof1_rx), - SH_PFC_PIN_GROUP(msiof1_tx), - SH_PFC_PIN_GROUP(msiof1_clk_b), - SH_PFC_PIN_GROUP(msiof1_ss1_b), - SH_PFC_PIN_GROUP(msiof1_ss2_b), - SH_PFC_PIN_GROUP(msiof1_rx_b), - SH_PFC_PIN_GROUP(msiof1_tx_b), - SH_PFC_PIN_GROUP(msiof2_clk), - SH_PFC_PIN_GROUP(msiof2_sync), - SH_PFC_PIN_GROUP(msiof2_ss1), - SH_PFC_PIN_GROUP(msiof2_ss2), - SH_PFC_PIN_GROUP(msiof2_rx), - SH_PFC_PIN_GROUP(msiof2_tx), - SH_PFC_PIN_GROUP(msiof3_clk), - SH_PFC_PIN_GROUP(msiof3_sync), - SH_PFC_PIN_GROUP(msiof3_ss1), - SH_PFC_PIN_GROUP(msiof3_ss2), - SH_PFC_PIN_GROUP(msiof3_rx), - SH_PFC_PIN_GROUP(msiof3_tx), - SH_PFC_PIN_GROUP(msiof3_clk_b), - SH_PFC_PIN_GROUP(msiof3_sync_b), - SH_PFC_PIN_GROUP(msiof3_rx_b), - SH_PFC_PIN_GROUP(msiof3_tx_b), - SH_PFC_PIN_GROUP(pwm0), - SH_PFC_PIN_GROUP(pwm0_b), - SH_PFC_PIN_GROUP(pwm1), - SH_PFC_PIN_GROUP(pwm1_b), - SH_PFC_PIN_GROUP(pwm2), - SH_PFC_PIN_GROUP(pwm3), - SH_PFC_PIN_GROUP(pwm4), - SH_PFC_PIN_GROUP(pwm5), - SH_PFC_PIN_GROUP(pwm6), - SH_PFC_PIN_GROUP(qspi_ctrl), - SH_PFC_PIN_GROUP(qspi_data2), - SH_PFC_PIN_GROUP(qspi_data4), - SH_PFC_PIN_GROUP(scif0_data), - SH_PFC_PIN_GROUP(scif0_clk), - SH_PFC_PIN_GROUP(scif0_ctrl), - SH_PFC_PIN_GROUP(scif0_data_b), - SH_PFC_PIN_GROUP(scif1_data), - SH_PFC_PIN_GROUP(scif1_clk), - SH_PFC_PIN_GROUP(scif1_ctrl), - SH_PFC_PIN_GROUP(scif1_data_b), - SH_PFC_PIN_GROUP(scif1_data_c), - SH_PFC_PIN_GROUP(scif1_data_d), - SH_PFC_PIN_GROUP(scif1_clk_d), - SH_PFC_PIN_GROUP(scif1_data_e), - SH_PFC_PIN_GROUP(scif1_clk_e), - SH_PFC_PIN_GROUP(scif2_data), - SH_PFC_PIN_GROUP(scif2_clk), - SH_PFC_PIN_GROUP(scif2_data_b), - SH_PFC_PIN_GROUP(scifa0_data), - SH_PFC_PIN_GROUP(scifa0_clk), - SH_PFC_PIN_GROUP(scifa0_ctrl), - SH_PFC_PIN_GROUP(scifa0_data_b), - SH_PFC_PIN_GROUP(scifa0_clk_b), - SH_PFC_PIN_GROUP(scifa0_ctrl_b), - SH_PFC_PIN_GROUP(scifa1_data), - SH_PFC_PIN_GROUP(scifa1_clk), - SH_PFC_PIN_GROUP(scifa1_ctrl), - SH_PFC_PIN_GROUP(scifa1_data_b), - SH_PFC_PIN_GROUP(scifa1_clk_b), - SH_PFC_PIN_GROUP(scifa1_ctrl_b), - SH_PFC_PIN_GROUP(scifa1_data_c), - SH_PFC_PIN_GROUP(scifa1_clk_c), - SH_PFC_PIN_GROUP(scifa1_ctrl_c), - SH_PFC_PIN_GROUP(scifa1_data_d), - SH_PFC_PIN_GROUP(scifa1_clk_d), - SH_PFC_PIN_GROUP(scifa1_ctrl_d), - SH_PFC_PIN_GROUP(scifa2_data), - SH_PFC_PIN_GROUP(scifa2_clk), - SH_PFC_PIN_GROUP(scifa2_ctrl), - SH_PFC_PIN_GROUP(scifa2_data_b), - SH_PFC_PIN_GROUP(scifa2_data_c), - SH_PFC_PIN_GROUP(scifa2_clk_c), - SH_PFC_PIN_GROUP(scifb0_data), - SH_PFC_PIN_GROUP(scifb0_clk), - SH_PFC_PIN_GROUP(scifb0_ctrl), - SH_PFC_PIN_GROUP(scifb0_data_b), - SH_PFC_PIN_GROUP(scifb0_clk_b), - SH_PFC_PIN_GROUP(scifb0_ctrl_b), - SH_PFC_PIN_GROUP(scifb0_data_c), - SH_PFC_PIN_GROUP(scifb1_data), - SH_PFC_PIN_GROUP(scifb1_clk), - SH_PFC_PIN_GROUP(scifb1_ctrl), - SH_PFC_PIN_GROUP(scifb1_data_b), - SH_PFC_PIN_GROUP(scifb1_clk_b), - SH_PFC_PIN_GROUP(scifb1_ctrl_b), - SH_PFC_PIN_GROUP(scifb1_data_c), - SH_PFC_PIN_GROUP(scifb1_data_d), - SH_PFC_PIN_GROUP(scifb1_data_e), - SH_PFC_PIN_GROUP(scifb1_clk_e), - SH_PFC_PIN_GROUP(scifb1_data_f), - SH_PFC_PIN_GROUP(scifb1_data_g), - SH_PFC_PIN_GROUP(scifb1_clk_g), - SH_PFC_PIN_GROUP(scifb2_data), - SH_PFC_PIN_GROUP(scifb2_clk), - SH_PFC_PIN_GROUP(scifb2_ctrl), - SH_PFC_PIN_GROUP(scifb2_data_b), - SH_PFC_PIN_GROUP(scifb2_clk_b), - SH_PFC_PIN_GROUP(scifb2_ctrl_b), - SH_PFC_PIN_GROUP(scifb2_data_c), - SH_PFC_PIN_GROUP(scif_clk), - SH_PFC_PIN_GROUP(scif_clk_b), - SH_PFC_PIN_GROUP(sdhi0_data1), - SH_PFC_PIN_GROUP(sdhi0_data4), - SH_PFC_PIN_GROUP(sdhi0_ctrl), - SH_PFC_PIN_GROUP(sdhi0_cd), - SH_PFC_PIN_GROUP(sdhi0_wp), - SH_PFC_PIN_GROUP(sdhi1_data1), - SH_PFC_PIN_GROUP(sdhi1_data4), - SH_PFC_PIN_GROUP(sdhi1_ctrl), - SH_PFC_PIN_GROUP(sdhi1_cd), - SH_PFC_PIN_GROUP(sdhi1_wp), - SH_PFC_PIN_GROUP(sdhi2_data1), - SH_PFC_PIN_GROUP(sdhi2_data4), - SH_PFC_PIN_GROUP(sdhi2_ctrl), - SH_PFC_PIN_GROUP(sdhi2_cd), - SH_PFC_PIN_GROUP(sdhi2_wp), - SH_PFC_PIN_GROUP(sdhi3_data1), - SH_PFC_PIN_GROUP(sdhi3_data4), - SH_PFC_PIN_GROUP(sdhi3_ctrl), - SH_PFC_PIN_GROUP(sdhi3_cd), - SH_PFC_PIN_GROUP(sdhi3_wp), - SH_PFC_PIN_GROUP(ssi0_data), - SH_PFC_PIN_GROUP(ssi0129_ctrl), - SH_PFC_PIN_GROUP(ssi1_data), - SH_PFC_PIN_GROUP(ssi1_ctrl), - SH_PFC_PIN_GROUP(ssi2_data), - SH_PFC_PIN_GROUP(ssi2_ctrl), - SH_PFC_PIN_GROUP(ssi3_data), - SH_PFC_PIN_GROUP(ssi34_ctrl), - SH_PFC_PIN_GROUP(ssi4_data), - SH_PFC_PIN_GROUP(ssi4_ctrl), - SH_PFC_PIN_GROUP(ssi5), - SH_PFC_PIN_GROUP(ssi5_b), - SH_PFC_PIN_GROUP(ssi5_c), - SH_PFC_PIN_GROUP(ssi6), - SH_PFC_PIN_GROUP(ssi6_b), - SH_PFC_PIN_GROUP(ssi7_data), - SH_PFC_PIN_GROUP(ssi7_b_data), - SH_PFC_PIN_GROUP(ssi7_c_data), - SH_PFC_PIN_GROUP(ssi78_ctrl), - SH_PFC_PIN_GROUP(ssi78_b_ctrl), - SH_PFC_PIN_GROUP(ssi78_c_ctrl), - SH_PFC_PIN_GROUP(ssi8_data), - SH_PFC_PIN_GROUP(ssi8_b_data), - SH_PFC_PIN_GROUP(ssi8_c_data), - SH_PFC_PIN_GROUP(ssi9_data), - SH_PFC_PIN_GROUP(ssi9_ctrl), - SH_PFC_PIN_GROUP(tpu0_to0), - SH_PFC_PIN_GROUP(tpu0_to1), - SH_PFC_PIN_GROUP(tpu0_to2), - SH_PFC_PIN_GROUP(tpu0_to3), - SH_PFC_PIN_GROUP(usb0), - SH_PFC_PIN_GROUP(usb0_ovc_vbus), - SH_PFC_PIN_GROUP(usb1), - SH_PFC_PIN_GROUP(usb2), - VIN_DATA_PIN_GROUP(vin0_data, 24), - VIN_DATA_PIN_GROUP(vin0_data, 20), - SH_PFC_PIN_GROUP(vin0_data18), - VIN_DATA_PIN_GROUP(vin0_data, 16), - VIN_DATA_PIN_GROUP(vin0_data, 12), - VIN_DATA_PIN_GROUP(vin0_data, 10), - VIN_DATA_PIN_GROUP(vin0_data, 8), - VIN_DATA_PIN_GROUP(vin0_data, 4), - SH_PFC_PIN_GROUP(vin0_sync), - SH_PFC_PIN_GROUP(vin0_field), - SH_PFC_PIN_GROUP(vin0_clkenb), - SH_PFC_PIN_GROUP(vin0_clk), - VIN_DATA_PIN_GROUP(vin1_data, 24), - VIN_DATA_PIN_GROUP(vin1_data, 20), - SH_PFC_PIN_GROUP(vin1_data18), - VIN_DATA_PIN_GROUP(vin1_data, 16), - VIN_DATA_PIN_GROUP(vin1_data, 12), - VIN_DATA_PIN_GROUP(vin1_data, 10), - VIN_DATA_PIN_GROUP(vin1_data, 8), - VIN_DATA_PIN_GROUP(vin1_data, 4), - SH_PFC_PIN_GROUP(vin1_sync), - SH_PFC_PIN_GROUP(vin1_field), - SH_PFC_PIN_GROUP(vin1_clkenb), - SH_PFC_PIN_GROUP(vin1_clk), - VIN_DATA_PIN_GROUP(vin2_data, 24), - SH_PFC_PIN_GROUP(vin2_data18), - VIN_DATA_PIN_GROUP(vin2_data, 16), - VIN_DATA_PIN_GROUP(vin2_data, 8), - VIN_DATA_PIN_GROUP(vin2_data, 4), - SH_PFC_PIN_GROUP(vin2_sync), - SH_PFC_PIN_GROUP(vin2_field), - SH_PFC_PIN_GROUP(vin2_clkenb), - SH_PFC_PIN_GROUP(vin2_clk), - SH_PFC_PIN_GROUP(vin3_data8), - SH_PFC_PIN_GROUP(vin3_sync), - SH_PFC_PIN_GROUP(vin3_field), - SH_PFC_PIN_GROUP(vin3_clkenb), - SH_PFC_PIN_GROUP(vin3_clk), +static const struct { + struct sh_pfc_pin_group common[289]; + struct sh_pfc_pin_group automotive[1]; +} pinmux_groups = { + .common = { + SH_PFC_PIN_GROUP(audio_clk_a), + SH_PFC_PIN_GROUP(audio_clk_b), + SH_PFC_PIN_GROUP(audio_clk_c), + SH_PFC_PIN_GROUP(audio_clkout), + SH_PFC_PIN_GROUP(audio_clkout_b), + SH_PFC_PIN_GROUP(audio_clkout_c), + SH_PFC_PIN_GROUP(audio_clkout_d), + SH_PFC_PIN_GROUP(avb_link), + SH_PFC_PIN_GROUP(avb_magic), + SH_PFC_PIN_GROUP(avb_phy_int), + SH_PFC_PIN_GROUP(avb_mdio), + SH_PFC_PIN_GROUP(avb_mii), + SH_PFC_PIN_GROUP(avb_gmii), + SH_PFC_PIN_GROUP(du_rgb666), + SH_PFC_PIN_GROUP(du_rgb888), + SH_PFC_PIN_GROUP(du_clk_out_0), + SH_PFC_PIN_GROUP(du_clk_out_1), + SH_PFC_PIN_GROUP(du_sync_0), + SH_PFC_PIN_GROUP(du_sync_1), + SH_PFC_PIN_GROUP(du_cde), + SH_PFC_PIN_GROUP(du0_clk_in), + SH_PFC_PIN_GROUP(du1_clk_in), + SH_PFC_PIN_GROUP(du2_clk_in), + SH_PFC_PIN_GROUP(eth_link), + SH_PFC_PIN_GROUP(eth_magic), + SH_PFC_PIN_GROUP(eth_mdio), + SH_PFC_PIN_GROUP(eth_rmii), + SH_PFC_PIN_GROUP(hscif0_data), + SH_PFC_PIN_GROUP(hscif0_clk), + SH_PFC_PIN_GROUP(hscif0_ctrl), + SH_PFC_PIN_GROUP(hscif0_data_b), + SH_PFC_PIN_GROUP(hscif0_ctrl_b), + SH_PFC_PIN_GROUP(hscif0_data_c), + SH_PFC_PIN_GROUP(hscif0_ctrl_c), + SH_PFC_PIN_GROUP(hscif0_data_d), + SH_PFC_PIN_GROUP(hscif0_ctrl_d), + SH_PFC_PIN_GROUP(hscif0_data_e), + SH_PFC_PIN_GROUP(hscif0_ctrl_e), + SH_PFC_PIN_GROUP(hscif0_data_f), + SH_PFC_PIN_GROUP(hscif0_ctrl_f), + SH_PFC_PIN_GROUP(hscif1_data), + SH_PFC_PIN_GROUP(hscif1_clk), + SH_PFC_PIN_GROUP(hscif1_ctrl), + SH_PFC_PIN_GROUP(hscif1_data_b), + SH_PFC_PIN_GROUP(hscif1_clk_b), + SH_PFC_PIN_GROUP(hscif1_ctrl_b), + SH_PFC_PIN_GROUP(i2c0), + SH_PFC_PIN_GROUP(i2c1), + SH_PFC_PIN_GROUP(i2c1_b), + SH_PFC_PIN_GROUP(i2c1_c), + SH_PFC_PIN_GROUP(i2c2), + SH_PFC_PIN_GROUP(i2c2_b), + SH_PFC_PIN_GROUP(i2c2_c), + SH_PFC_PIN_GROUP(i2c2_d), + SH_PFC_PIN_GROUP(i2c2_e), + SH_PFC_PIN_GROUP(i2c3), + SH_PFC_PIN_GROUP(iic0), + SH_PFC_PIN_GROUP(iic1), + SH_PFC_PIN_GROUP(iic1_b), + SH_PFC_PIN_GROUP(iic1_c), + SH_PFC_PIN_GROUP(iic2), + SH_PFC_PIN_GROUP(iic2_b), + SH_PFC_PIN_GROUP(iic2_c), + SH_PFC_PIN_GROUP(iic2_d), + SH_PFC_PIN_GROUP(iic2_e), + SH_PFC_PIN_GROUP(iic3), + SH_PFC_PIN_GROUP(intc_irq0), + SH_PFC_PIN_GROUP(intc_irq1), + SH_PFC_PIN_GROUP(intc_irq2), + SH_PFC_PIN_GROUP(intc_irq3), + SH_PFC_PIN_GROUP(mmc0_data1), + SH_PFC_PIN_GROUP(mmc0_data4), + SH_PFC_PIN_GROUP(mmc0_data8), + SH_PFC_PIN_GROUP(mmc0_ctrl), + SH_PFC_PIN_GROUP(mmc1_data1), + SH_PFC_PIN_GROUP(mmc1_data4), + SH_PFC_PIN_GROUP(mmc1_data8), + SH_PFC_PIN_GROUP(mmc1_ctrl), + SH_PFC_PIN_GROUP(msiof0_clk), + SH_PFC_PIN_GROUP(msiof0_sync), + SH_PFC_PIN_GROUP(msiof0_ss1), + SH_PFC_PIN_GROUP(msiof0_ss2), + SH_PFC_PIN_GROUP(msiof0_rx), + SH_PFC_PIN_GROUP(msiof0_tx), + SH_PFC_PIN_GROUP(msiof0_clk_b), + SH_PFC_PIN_GROUP(msiof0_ss1_b), + SH_PFC_PIN_GROUP(msiof0_ss2_b), + SH_PFC_PIN_GROUP(msiof0_rx_b), + SH_PFC_PIN_GROUP(msiof0_tx_b), + SH_PFC_PIN_GROUP(msiof1_clk), + SH_PFC_PIN_GROUP(msiof1_sync), + SH_PFC_PIN_GROUP(msiof1_ss1), + SH_PFC_PIN_GROUP(msiof1_ss2), + SH_PFC_PIN_GROUP(msiof1_rx), + SH_PFC_PIN_GROUP(msiof1_tx), + SH_PFC_PIN_GROUP(msiof1_clk_b), + SH_PFC_PIN_GROUP(msiof1_ss1_b), + SH_PFC_PIN_GROUP(msiof1_ss2_b), + SH_PFC_PIN_GROUP(msiof1_rx_b), + SH_PFC_PIN_GROUP(msiof1_tx_b), + SH_PFC_PIN_GROUP(msiof2_clk), + SH_PFC_PIN_GROUP(msiof2_sync), + SH_PFC_PIN_GROUP(msiof2_ss1), + SH_PFC_PIN_GROUP(msiof2_ss2), + SH_PFC_PIN_GROUP(msiof2_rx), + SH_PFC_PIN_GROUP(msiof2_tx), + SH_PFC_PIN_GROUP(msiof3_clk), + SH_PFC_PIN_GROUP(msiof3_sync), + SH_PFC_PIN_GROUP(msiof3_ss1), + SH_PFC_PIN_GROUP(msiof3_ss2), + SH_PFC_PIN_GROUP(msiof3_rx), + SH_PFC_PIN_GROUP(msiof3_tx), + SH_PFC_PIN_GROUP(msiof3_clk_b), + SH_PFC_PIN_GROUP(msiof3_sync_b), + SH_PFC_PIN_GROUP(msiof3_rx_b), + SH_PFC_PIN_GROUP(msiof3_tx_b), + SH_PFC_PIN_GROUP(pwm0), + SH_PFC_PIN_GROUP(pwm0_b), + SH_PFC_PIN_GROUP(pwm1), + SH_PFC_PIN_GROUP(pwm1_b), + SH_PFC_PIN_GROUP(pwm2), + SH_PFC_PIN_GROUP(pwm3), + SH_PFC_PIN_GROUP(pwm4), + SH_PFC_PIN_GROUP(pwm5), + SH_PFC_PIN_GROUP(pwm6), + SH_PFC_PIN_GROUP(qspi_ctrl), + SH_PFC_PIN_GROUP(qspi_data2), + SH_PFC_PIN_GROUP(qspi_data4), + SH_PFC_PIN_GROUP(scif0_data), + SH_PFC_PIN_GROUP(scif0_clk), + SH_PFC_PIN_GROUP(scif0_ctrl), + SH_PFC_PIN_GROUP(scif0_data_b), + SH_PFC_PIN_GROUP(scif1_data), + SH_PFC_PIN_GROUP(scif1_clk), + SH_PFC_PIN_GROUP(scif1_ctrl), + SH_PFC_PIN_GROUP(scif1_data_b), + SH_PFC_PIN_GROUP(scif1_data_c), + SH_PFC_PIN_GROUP(scif1_data_d), + SH_PFC_PIN_GROUP(scif1_clk_d), + SH_PFC_PIN_GROUP(scif1_data_e), + SH_PFC_PIN_GROUP(scif1_clk_e), + SH_PFC_PIN_GROUP(scif2_data), + SH_PFC_PIN_GROUP(scif2_clk), + SH_PFC_PIN_GROUP(scif2_data_b), + SH_PFC_PIN_GROUP(scifa0_data), + SH_PFC_PIN_GROUP(scifa0_clk), + SH_PFC_PIN_GROUP(scifa0_ctrl), + SH_PFC_PIN_GROUP(scifa0_data_b), + SH_PFC_PIN_GROUP(scifa0_clk_b), + SH_PFC_PIN_GROUP(scifa0_ctrl_b), + SH_PFC_PIN_GROUP(scifa1_data), + SH_PFC_PIN_GROUP(scifa1_clk), + SH_PFC_PIN_GROUP(scifa1_ctrl), + SH_PFC_PIN_GROUP(scifa1_data_b), + SH_PFC_PIN_GROUP(scifa1_clk_b), + SH_PFC_PIN_GROUP(scifa1_ctrl_b), + SH_PFC_PIN_GROUP(scifa1_data_c), + SH_PFC_PIN_GROUP(scifa1_clk_c), + SH_PFC_PIN_GROUP(scifa1_ctrl_c), + SH_PFC_PIN_GROUP(scifa1_data_d), + SH_PFC_PIN_GROUP(scifa1_clk_d), + SH_PFC_PIN_GROUP(scifa1_ctrl_d), + SH_PFC_PIN_GROUP(scifa2_data), + SH_PFC_PIN_GROUP(scifa2_clk), + SH_PFC_PIN_GROUP(scifa2_ctrl), + SH_PFC_PIN_GROUP(scifa2_data_b), + SH_PFC_PIN_GROUP(scifa2_data_c), + SH_PFC_PIN_GROUP(scifa2_clk_c), + SH_PFC_PIN_GROUP(scifb0_data), + SH_PFC_PIN_GROUP(scifb0_clk), + SH_PFC_PIN_GROUP(scifb0_ctrl), + SH_PFC_PIN_GROUP(scifb0_data_b), + SH_PFC_PIN_GROUP(scifb0_clk_b), + SH_PFC_PIN_GROUP(scifb0_ctrl_b), + SH_PFC_PIN_GROUP(scifb0_data_c), + SH_PFC_PIN_GROUP(scifb1_data), + SH_PFC_PIN_GROUP(scifb1_clk), + SH_PFC_PIN_GROUP(scifb1_ctrl), + SH_PFC_PIN_GROUP(scifb1_data_b), + SH_PFC_PIN_GROUP(scifb1_clk_b), + SH_PFC_PIN_GROUP(scifb1_ctrl_b), + SH_PFC_PIN_GROUP(scifb1_data_c), + SH_PFC_PIN_GROUP(scifb1_data_d), + SH_PFC_PIN_GROUP(scifb1_data_e), + SH_PFC_PIN_GROUP(scifb1_clk_e), + SH_PFC_PIN_GROUP(scifb1_data_f), + SH_PFC_PIN_GROUP(scifb1_data_g), + SH_PFC_PIN_GROUP(scifb1_clk_g), + SH_PFC_PIN_GROUP(scifb2_data), + SH_PFC_PIN_GROUP(scifb2_clk), + SH_PFC_PIN_GROUP(scifb2_ctrl), + SH_PFC_PIN_GROUP(scifb2_data_b), + SH_PFC_PIN_GROUP(scifb2_clk_b), + SH_PFC_PIN_GROUP(scifb2_ctrl_b), + SH_PFC_PIN_GROUP(scifb2_data_c), + SH_PFC_PIN_GROUP(scif_clk), + SH_PFC_PIN_GROUP(scif_clk_b), + SH_PFC_PIN_GROUP(sdhi0_data1), + SH_PFC_PIN_GROUP(sdhi0_data4), + SH_PFC_PIN_GROUP(sdhi0_ctrl), + SH_PFC_PIN_GROUP(sdhi0_cd), + SH_PFC_PIN_GROUP(sdhi0_wp), + SH_PFC_PIN_GROUP(sdhi1_data1), + SH_PFC_PIN_GROUP(sdhi1_data4), + SH_PFC_PIN_GROUP(sdhi1_ctrl), + SH_PFC_PIN_GROUP(sdhi1_cd), + SH_PFC_PIN_GROUP(sdhi1_wp), + SH_PFC_PIN_GROUP(sdhi2_data1), + SH_PFC_PIN_GROUP(sdhi2_data4), + SH_PFC_PIN_GROUP(sdhi2_ctrl), + SH_PFC_PIN_GROUP(sdhi2_cd), + SH_PFC_PIN_GROUP(sdhi2_wp), + SH_PFC_PIN_GROUP(sdhi3_data1), + SH_PFC_PIN_GROUP(sdhi3_data4), + SH_PFC_PIN_GROUP(sdhi3_ctrl), + SH_PFC_PIN_GROUP(sdhi3_cd), + SH_PFC_PIN_GROUP(sdhi3_wp), + SH_PFC_PIN_GROUP(ssi0_data), + SH_PFC_PIN_GROUP(ssi0129_ctrl), + SH_PFC_PIN_GROUP(ssi1_data), + SH_PFC_PIN_GROUP(ssi1_ctrl), + SH_PFC_PIN_GROUP(ssi2_data), + SH_PFC_PIN_GROUP(ssi2_ctrl), + SH_PFC_PIN_GROUP(ssi3_data), + SH_PFC_PIN_GROUP(ssi34_ctrl), + SH_PFC_PIN_GROUP(ssi4_data), + SH_PFC_PIN_GROUP(ssi4_ctrl), + SH_PFC_PIN_GROUP(ssi5), + SH_PFC_PIN_GROUP(ssi5_b), + SH_PFC_PIN_GROUP(ssi5_c), + SH_PFC_PIN_GROUP(ssi6), + SH_PFC_PIN_GROUP(ssi6_b), + SH_PFC_PIN_GROUP(ssi7_data), + SH_PFC_PIN_GROUP(ssi7_b_data), + SH_PFC_PIN_GROUP(ssi7_c_data), + SH_PFC_PIN_GROUP(ssi78_ctrl), + SH_PFC_PIN_GROUP(ssi78_b_ctrl), + SH_PFC_PIN_GROUP(ssi78_c_ctrl), + SH_PFC_PIN_GROUP(ssi8_data), + SH_PFC_PIN_GROUP(ssi8_b_data), + SH_PFC_PIN_GROUP(ssi8_c_data), + SH_PFC_PIN_GROUP(ssi9_data), + SH_PFC_PIN_GROUP(ssi9_ctrl), + SH_PFC_PIN_GROUP(tpu0_to0), + SH_PFC_PIN_GROUP(tpu0_to1), + SH_PFC_PIN_GROUP(tpu0_to2), + SH_PFC_PIN_GROUP(tpu0_to3), + SH_PFC_PIN_GROUP(usb0), + SH_PFC_PIN_GROUP(usb0_ovc_vbus), + SH_PFC_PIN_GROUP(usb1), + SH_PFC_PIN_GROUP(usb2), + VIN_DATA_PIN_GROUP(vin0_data, 24), + VIN_DATA_PIN_GROUP(vin0_data, 20), + SH_PFC_PIN_GROUP(vin0_data18), + VIN_DATA_PIN_GROUP(vin0_data, 16), + VIN_DATA_PIN_GROUP(vin0_data, 12), + VIN_DATA_PIN_GROUP(vin0_data, 10), + VIN_DATA_PIN_GROUP(vin0_data, 8), + VIN_DATA_PIN_GROUP(vin0_data, 4), + SH_PFC_PIN_GROUP(vin0_sync), + SH_PFC_PIN_GROUP(vin0_field), + SH_PFC_PIN_GROUP(vin0_clkenb), + SH_PFC_PIN_GROUP(vin0_clk), + VIN_DATA_PIN_GROUP(vin1_data, 24), + VIN_DATA_PIN_GROUP(vin1_data, 20), + SH_PFC_PIN_GROUP(vin1_data18), + VIN_DATA_PIN_GROUP(vin1_data, 16), + VIN_DATA_PIN_GROUP(vin1_data, 12), + VIN_DATA_PIN_GROUP(vin1_data, 10), + VIN_DATA_PIN_GROUP(vin1_data, 8), + VIN_DATA_PIN_GROUP(vin1_data, 4), + SH_PFC_PIN_GROUP(vin1_sync), + SH_PFC_PIN_GROUP(vin1_field), + SH_PFC_PIN_GROUP(vin1_clkenb), + SH_PFC_PIN_GROUP(vin1_clk), + VIN_DATA_PIN_GROUP(vin2_data, 24), + SH_PFC_PIN_GROUP(vin2_data18), + VIN_DATA_PIN_GROUP(vin2_data, 16), + VIN_DATA_PIN_GROUP(vin2_data, 8), + VIN_DATA_PIN_GROUP(vin2_data, 4), + SH_PFC_PIN_GROUP(vin2_sync), + SH_PFC_PIN_GROUP(vin2_field), + SH_PFC_PIN_GROUP(vin2_clkenb), + SH_PFC_PIN_GROUP(vin2_clk), + SH_PFC_PIN_GROUP(vin3_data8), + SH_PFC_PIN_GROUP(vin3_sync), + SH_PFC_PIN_GROUP(vin3_field), + SH_PFC_PIN_GROUP(vin3_clkenb), + SH_PFC_PIN_GROUP(vin3_clk), + }, + .automotive = { + SH_PFC_PIN_GROUP(mlb_3pin), + } }; static const char * const audio_clk_groups[] = { @@ -4708,63 +4715,70 @@ static const char * const vin3_groups[] = { "vin3_clk", }; -static const struct sh_pfc_function pinmux_functions[] = { - SH_PFC_FUNCTION(audio_clk), - SH_PFC_FUNCTION(avb), - SH_PFC_FUNCTION(du), - SH_PFC_FUNCTION(du0), - SH_PFC_FUNCTION(du1), - SH_PFC_FUNCTION(du2), - SH_PFC_FUNCTION(eth), - SH_PFC_FUNCTION(hscif0), - SH_PFC_FUNCTION(hscif1), - SH_PFC_FUNCTION(i2c0), - SH_PFC_FUNCTION(i2c1), - SH_PFC_FUNCTION(i2c2), - SH_PFC_FUNCTION(i2c3), - SH_PFC_FUNCTION(iic0), - SH_PFC_FUNCTION(iic1), - SH_PFC_FUNCTION(iic2), - SH_PFC_FUNCTION(iic3), - SH_PFC_FUNCTION(intc), - SH_PFC_FUNCTION(mlb), - SH_PFC_FUNCTION(mmc0), - SH_PFC_FUNCTION(mmc1), - SH_PFC_FUNCTION(msiof0), - SH_PFC_FUNCTION(msiof1), - SH_PFC_FUNCTION(msiof2), - SH_PFC_FUNCTION(msiof3), - SH_PFC_FUNCTION(pwm0), - SH_PFC_FUNCTION(pwm1), - SH_PFC_FUNCTION(pwm2), - SH_PFC_FUNCTION(pwm3), - SH_PFC_FUNCTION(pwm4), - SH_PFC_FUNCTION(pwm5), - SH_PFC_FUNCTION(pwm6), - SH_PFC_FUNCTION(qspi), - SH_PFC_FUNCTION(scif0), - SH_PFC_FUNCTION(scif1), - SH_PFC_FUNCTION(scif2), - SH_PFC_FUNCTION(scifa0), - SH_PFC_FUNCTION(scifa1), - SH_PFC_FUNCTION(scifa2), - SH_PFC_FUNCTION(scifb0), - SH_PFC_FUNCTION(scifb1), - SH_PFC_FUNCTION(scifb2), - SH_PFC_FUNCTION(scif_clk), - SH_PFC_FUNCTION(sdhi0), - SH_PFC_FUNCTION(sdhi1), - SH_PFC_FUNCTION(sdhi2), - SH_PFC_FUNCTION(sdhi3), - SH_PFC_FUNCTION(ssi), - SH_PFC_FUNCTION(tpu0), - SH_PFC_FUNCTION(usb0), - SH_PFC_FUNCTION(usb1), - SH_PFC_FUNCTION(usb2), - SH_PFC_FUNCTION(vin0), - SH_PFC_FUNCTION(vin1), - SH_PFC_FUNCTION(vin2), - SH_PFC_FUNCTION(vin3), +static const struct { + struct sh_pfc_function common[55]; + struct sh_pfc_function automotive[1]; +} pinmux_functions = { + .common = { + SH_PFC_FUNCTION(audio_clk), + SH_PFC_FUNCTION(avb), + SH_PFC_FUNCTION(du), + SH_PFC_FUNCTION(du0), + SH_PFC_FUNCTION(du1), + SH_PFC_FUNCTION(du2), + SH_PFC_FUNCTION(eth), + SH_PFC_FUNCTION(hscif0), + SH_PFC_FUNCTION(hscif1), + SH_PFC_FUNCTION(i2c0), + SH_PFC_FUNCTION(i2c1), + SH_PFC_FUNCTION(i2c2), + SH_PFC_FUNCTION(i2c3), + SH_PFC_FUNCTION(iic0), + SH_PFC_FUNCTION(iic1), + SH_PFC_FUNCTION(iic2), + SH_PFC_FUNCTION(iic3), + SH_PFC_FUNCTION(intc), + SH_PFC_FUNCTION(mmc0), + SH_PFC_FUNCTION(mmc1), + SH_PFC_FUNCTION(msiof0), + SH_PFC_FUNCTION(msiof1), + SH_PFC_FUNCTION(msiof2), + SH_PFC_FUNCTION(msiof3), + SH_PFC_FUNCTION(pwm0), + SH_PFC_FUNCTION(pwm1), + SH_PFC_FUNCTION(pwm2), + SH_PFC_FUNCTION(pwm3), + SH_PFC_FUNCTION(pwm4), + SH_PFC_FUNCTION(pwm5), + SH_PFC_FUNCTION(pwm6), + SH_PFC_FUNCTION(qspi), + SH_PFC_FUNCTION(scif0), + SH_PFC_FUNCTION(scif1), + SH_PFC_FUNCTION(scif2), + SH_PFC_FUNCTION(scifa0), + SH_PFC_FUNCTION(scifa1), + SH_PFC_FUNCTION(scifa2), + SH_PFC_FUNCTION(scifb0), + SH_PFC_FUNCTION(scifb1), + SH_PFC_FUNCTION(scifb2), + SH_PFC_FUNCTION(scif_clk), + SH_PFC_FUNCTION(sdhi0), + SH_PFC_FUNCTION(sdhi1), + SH_PFC_FUNCTION(sdhi2), + SH_PFC_FUNCTION(sdhi3), + SH_PFC_FUNCTION(ssi), + SH_PFC_FUNCTION(tpu0), + SH_PFC_FUNCTION(usb0), + SH_PFC_FUNCTION(usb1), + SH_PFC_FUNCTION(usb2), + SH_PFC_FUNCTION(vin0), + SH_PFC_FUNCTION(vin1), + SH_PFC_FUNCTION(vin2), + SH_PFC_FUNCTION(vin3), + }, + .automotive = { + SH_PFC_FUNCTION(mlb), + } }; static const struct pinmux_cfg_reg pinmux_config_regs[] = { @@ -5707,6 +5721,28 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { { }, }; +#ifdef CONFIG_PINCTRL_PFC_R8A7742 +const struct sh_pfc_soc_info r8a7742_pinmux_info = { + .name = "r8a77420_pfc", + .unlock_reg = 0xe6060000, /* PMMR */ + + .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, + + .pins = pinmux_pins, + .nr_pins = ARRAY_SIZE(pinmux_pins), + .groups = pinmux_groups.common, + .nr_groups = ARRAY_SIZE(pinmux_groups.common), + .functions = pinmux_functions.common, + .nr_functions = ARRAY_SIZE(pinmux_functions.common), + + .cfg_regs = pinmux_config_regs, + + .pinmux_data = pinmux_data, + .pinmux_data_size = ARRAY_SIZE(pinmux_data), +}; +#endif + +#ifdef CONFIG_PINCTRL_PFC_R8A7790 const struct sh_pfc_soc_info r8a7790_pinmux_info = { .name = "r8a77900_pfc", .unlock_reg = 0xe6060000, /* PMMR */ @@ -5715,13 +5751,16 @@ const struct sh_pfc_soc_info r8a7790_pinmux_info = { .pins = pinmux_pins, .nr_pins = ARRAY_SIZE(pinmux_pins), - .groups = pinmux_groups, - .nr_groups = ARRAY_SIZE(pinmux_groups), - .functions = pinmux_functions, - .nr_functions = ARRAY_SIZE(pinmux_functions), + .groups = pinmux_groups.common, + .nr_groups = ARRAY_SIZE(pinmux_groups.common) + + ARRAY_SIZE(pinmux_groups.automotive), + .functions = pinmux_functions.common, + .nr_functions = ARRAY_SIZE(pinmux_functions.common) + + ARRAY_SIZE(pinmux_functions.automotive), .cfg_regs = pinmux_config_regs, .pinmux_data = pinmux_data, .pinmux_data_size = ARRAY_SIZE(pinmux_data), }; +#endif From 0a6bb63f5647360f9cd9df30766f96d19c5a07fa Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 28 Aug 2020 16:41:49 +0100 Subject: [PATCH 0897/1149] ARM: dts: r8a7742: Initial SoC device tree commit eb4cdda7a30b3f9894fd5a58e0201fa57861183f upstream. The initial R8A7742 SoC device tree including CPU[0-8], PMU, PFC, CPG, RST, SYSC, ICRAM[0-2], SCIFA2, MMC1, DMAC[0-1], GIC, PRR, timer and the required clock descriptions. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1588542414-14826-7-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: reworked on clock, removed sysc, prr device nodes] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a7742.dtsi | 769 +++++++++++++++++++++++++++++++++ 1 file changed, 769 insertions(+) create mode 100644 arch/arm/boot/dts/r8a7742.dtsi diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi new file mode 100644 index 000000000000..af2ea73f9557 --- /dev/null +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -0,0 +1,769 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Device Tree Source for the r8a7742 SoC + * + * Copyright (C) 2020 Renesas Electronics Corp. + */ + +#include +#include +#include + +/ { + compatible = "renesas,r8a7742"; + #address-cells = <2>; + #size-cells = <2>; + + clocks { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + /* Special CPG clocks */ + cpg_clocks: cpg_clocks@e6150000 { + compatible = "renesas,r8a7742-cpg-clocks", + "renesas,rcar-gen2-cpg-clocks"; + reg = <0 0xe6150000 0 0x1000>; + clocks = <&extal_clk &usb_extal_clk>; + #clock-cells = <1>; + clock-output-names = "main", "pll0", "pll1", "pll3", + "lb", "qspi", "sdh", "sd0", "sd1", + "z", "rcan"; + #power-domain-cells = <0>; + }; + + /* Variable factor clocks */ + sd2_clk: sd2_clk@e6150078 { + compatible = "renesas,r8a7742-div6-clock", "renesas,cpg-div6-clock"; + reg = <0 0xe6150078 0 4>; + clocks = <&pll1_div2_clk>; + #clock-cells = <0>; + clock-output-names = "sd2"; + }; + sd3_clk: sd3_clk@e615026c { + compatible = "renesas,r8a7742-div6-clock", "renesas,cpg-div6-clock"; + reg = <0 0xe615026c 0 4>; + clocks = <&pll1_div2_clk>; + #clock-cells = <0>; + clock-output-names = "sd3"; + }; + mmc0_clk: mmc0_clk@e6150240 { + compatible = "renesas,r8a7742-div6-clock", "renesas,cpg-div6-clock"; + reg = <0 0xe6150240 0 4>; + clocks = <&pll1_div2_clk>; + #clock-cells = <0>; + clock-output-names = "mmc0"; + }; + mmc1_clk: mmc1_clk@e6150244 { + compatible = "renesas,r8a7742-div6-clock", "renesas,cpg-div6-clock"; + reg = <0 0xe6150244 0 4>; + clocks = <&pll1_div2_clk>; + #clock-cells = <0>; + clock-output-names = "mmc1"; + }; + ssp_clk: ssp_clk@e6150248 { + compatible = "renesas,r8a7742-div6-clock", "renesas,cpg-div6-clock"; + reg = <0 0xe6150248 0 4>; + clocks = <&pll1_div2_clk>; + #clock-cells = <0>; + clock-output-names = "ssp"; + }; + ssprs_clk: ssprs_clk@e615024c { + compatible = "renesas,r8a7742-div6-clock", "renesas,cpg-div6-clock"; + reg = <0 0xe615024c 0 4>; + clocks = <&pll1_div2_clk>; + #clock-cells = <0>; + clock-output-names = "ssprs"; + }; + + /* Fixed factor clocks */ + pll1_div2_clk: pll1_div2_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7742_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; + clock-output-names = "pll1_div2"; + }; + z2_clk: z2_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7742_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; + clock-output-names = "z2"; + }; + zg_clk: zg_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7742_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <3>; + clock-mult = <1>; + clock-output-names = "zg"; + }; + zx_clk: zx_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7742_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <3>; + clock-mult = <1>; + clock-output-names = "zx"; + }; + zs_clk: zs_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7742_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <6>; + clock-mult = <1>; + clock-output-names = "zs"; + }; + hp_clk: hp_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7742_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <12>; + clock-mult = <1>; + clock-output-names = "hp"; + }; + i_clk: i_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7742_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; + clock-output-names = "i"; + }; + b_clk: b_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7742_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <12>; + clock-mult = <1>; + clock-output-names = "b"; + }; + p_clk: p_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7742_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <24>; + clock-mult = <1>; + clock-output-names = "p"; + }; + cl_clk: cl_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7742_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <48>; + clock-mult = <1>; + clock-output-names = "cl"; + }; + m2_clk: m2_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7742_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <8>; + clock-mult = <1>; + clock-output-names = "m2"; + }; + imp_clk: imp_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7742_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <4>; + clock-mult = <1>; + clock-output-names = "imp"; + }; + rclk_clk: rclk_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7742_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <(48 * 1024)>; + clock-mult = <1>; + clock-output-names = "rclk"; + }; + oscclk_clk: oscclk_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7742_CLK_PLL1>; + #clock-cells = <0>; + clock-div = <(12 * 1024)>; + clock-mult = <1>; + clock-output-names = "oscclk"; + }; + zb3_clk: zb3_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7742_CLK_PLL3>; + #clock-cells = <0>; + clock-div = <4>; + clock-mult = <1>; + clock-output-names = "zb3"; + }; + zb3d2_clk: zb3d2_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7742_CLK_PLL3>; + #clock-cells = <0>; + clock-div = <8>; + clock-mult = <1>; + clock-output-names = "zb3d2"; + }; + ddr_clk: ddr_clk { + compatible = "fixed-factor-clock"; + clocks = <&cpg_clocks R8A7742_CLK_PLL3>; + #clock-cells = <0>; + clock-div = <8>; + clock-mult = <1>; + clock-output-names = "ddr"; + }; + mp_clk: mp_clk { + compatible = "fixed-factor-clock"; + clocks = <&pll1_div2_clk>; + #clock-cells = <0>; + clock-div = <15>; + clock-mult = <1>; + clock-output-names = "mp"; + }; + cp_clk: cp_clk { + compatible = "fixed-factor-clock"; + clocks = <&extal_clk>; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; + clock-output-names = "cp"; + }; + + /* Gate clocks */ + mstp0_clks: mstp0_clks@e6150130 { + compatible = "renesas,r8a7742-mstp-clocks", "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150130 0 4>, <0 0xe6150030 0 4>; + clocks = <&mp_clk>; + #clock-cells = <1>; + clock-indices = ; + clock-output-names = "msiof0"; + }; + mstp1_clks: mstp1_clks@e6150134 { + compatible = "renesas,r8a7742-mstp-clocks", "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>; + clocks = <&zs_clk>, <&zs_clk>, <&zs_clk>, <&zs_clk>, + <&p_clk>, <&zg_clk>, <&zs_clk>, <&zs_clk>, + <&zs_clk>, <&zs_clk>, <&p_clk>, <&p_clk>, + <&rclk_clk>, <&cp_clk>, <&zs_clk>, <&zs_clk>, + <&zs_clk>, <&zs_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7742_CLK_VCP1 R8A7742_CLK_VCP0 + R8A7742_CLK_VPC1 R8A7742_CLK_VPC0 + R8A7742_CLK_TMU1 R8A7742_CLK_3DG + R8A7742_CLK_2DDMAC R8A7742_CLK_FDP1_2 + R8A7742_CLK_FDP1_1 R8A7742_CLK_FDP1_0 + R8A7742_CLK_TMU3 R8A7742_CLK_TMU2 + R8A7742_CLK_CMT0 R8A7742_CLK_TMU0 + R8A7742_CLK_VSP1_DU1 R8A7742_CLK_VSP1_DU0 + R8A7742_CLK_VSP1_R R8A7742_CLK_VSP1_S + >; + clock-output-names = + "vcp1", "vcp0", "vpc1", "vpc0", "tmu1", + "3dg", "2ddmac", "fdp1-2", "fdp1-1", "fdp1-0", + "tmu3", "tmu2", "cmt0", "tmu0", "vsp1-du1", + "vsp1-du0", "vspr", "vsps"; + }; + mstp2_clks: mstp2_clks@e6150138 { + compatible = "renesas,r8a7742-mstp-clocks", "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>; + clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>, + <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>, <&zs_clk>, + <&zs_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7742_CLK_SCIFA2 R8A7742_CLK_SCIFA1 R8A7742_CLK_SCIFA0 + R8A7742_CLK_MSIOF2 R8A7742_CLK_SCIFB0 R8A7742_CLK_SCIFB1 + R8A7742_CLK_MSIOF1 R8A7742_CLK_MSIOF3 R8A7742_CLK_SCIFB2 + R8A7742_CLK_SYS_DMAC1 R8A7742_CLK_SYS_DMAC0 + >; + clock-output-names = + "scifa2", "scifa1", "scifa0", "msiof2", "scifb0", + "scifb1", "msiof1", "msiof3", "scifb2", + "sys-dmac1", "sys-dmac0"; + }; + mstp3_clks: mstp3_clks@e615013c { + compatible = "renesas,r8a7742-mstp-clocks", "renesas,cpg-mstp-clocks"; + reg = <0 0xe615013c 0 4>, <0 0xe6150048 0 4>; + clocks = <&hp_clk>, <&cp_clk>, <&mmc1_clk>, <&p_clk>, <&sd3_clk>, + <&sd2_clk>, <&cpg_clocks R8A7742_CLK_SD1>, <&cpg_clocks R8A7742_CLK_SD0>, <&mmc0_clk>, + <&hp_clk>, <&mp_clk>, <&hp_clk>, <&mp_clk>, <&rclk_clk>, + <&hp_clk>, <&hp_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7742_CLK_IIC2 R8A7742_CLK_TPU0 R8A7742_CLK_MMCIF1 R8A7742_CLK_SCIF2 R8A7742_CLK_SDHI3 + R8A7742_CLK_SDHI2 R8A7742_CLK_SDHI1 R8A7742_CLK_SDHI0 R8A7742_CLK_MMCIF0 + R8A7742_CLK_IIC0 R8A7742_CLK_PCIEC R8A7742_CLK_IIC1 R8A7742_CLK_SSUSB R8A7742_CLK_CMT1 + R8A7742_CLK_USBDMAC0 R8A7742_CLK_USBDMAC1 + >; + clock-output-names = + "iic2", "tpu0", "mmcif1", "scif2", "sdhi3", + "sdhi2", "sdhi1", "sdhi0", "mmcif0", + "iic0", "pciec", "iic1", "ssusb", "cmt1", + "usbdmac0", "usbdmac1"; + }; + mstp4_clks: mstp4_clks@e6150140 { + compatible = "renesas,r8a7742-mstp-clocks", "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>; + clocks = <&cp_clk>, <&rclk_clk>, <&zs_clk>; + #clock-cells = <1>; + clock-indices = ; + clock-output-names = "irqc", "rwdt", "intc-sys"; + }; + mstp5_clks: mstp5_clks@e6150144 { + compatible = "renesas,r8a7742-mstp-clocks", "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150144 0 4>, <0 0xe615003c 0 4>; + clocks = <&hp_clk>, <&hp_clk>, + <&extal_clk>, <&p_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7742_CLK_AUDIO_DMAC0 R8A7742_CLK_AUDIO_DMAC1 + R8A7742_CLK_THERMAL R8A7742_CLK_PWM + >; + clock-output-names = "audmac0", "audmac1", + "thermal", "pwm"; + }; + mstp7_clks: mstp7_clks@e615014c { + compatible = "renesas,r8a7742-mstp-clocks", "renesas,cpg-mstp-clocks"; + reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>; + clocks = <&mp_clk>, <&hp_clk>, <&zs_clk>, <&zs_clk>, <&p_clk>, + <&p_clk>, <&zx_clk>, <&zx_clk>, <&zx_clk>, <&zx_clk>, + <&zx_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7742_CLK_EHCI R8A7742_CLK_HSUSB R8A7742_CLK_HSCIF1 + R8A7742_CLK_HSCIF0 R8A7742_CLK_SCIF1 R8A7742_CLK_SCIF0 + R8A7742_CLK_DU2 R8A7742_CLK_DU1 R8A7742_CLK_DU0 + R8A7742_CLK_LVDS1 R8A7742_CLK_LVDS0 + >; + clock-output-names = + "ehci", "hsusb", "hscif1", "hscif0", "scif1", + "scif0", "du2", "du1", "du0", "lvds1", "lvds0"; + }; + mstp8_clks: mstp8_clks@e6150990 { + compatible = "renesas,r8a7742-mstp-clocks", "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>; + clocks = <&zx_clk>, <&zg_clk>, <&zg_clk>, <&zg_clk>, + <&zg_clk>, <&hp_clk>, <&p_clk>, <&zs_clk>, + <&zs_clk>, <&zg_clk>, <&hp_clk>, <&p_clk>, <&zs_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7742_CLK_R_GP2D R8A7742_CLK_VIN3 R8A7742_CLK_VIN2 + R8A7742_CLK_VIN1 R8A7742_CLK_VIN0 + R8A7742_CLK_ETHERAVB R8A7742_CLK_ETHER + R8A7742_CLK_SATA1 R8A7742_CLK_SATA0 + R8A7742_CLK_IMR_X2_1 R8A7742_CLK_IMR_X2_0 + R8A7742_CLK_IMR_LSX2_1 R8A7742_CLK_IMR_LSX2_0 + >; + clock-output-names = + "r-gp2d", "vin3", "vin2", "vin1", "vin0", + "etheravb", "ether", "sata1", "sata0", + "imr-x2-1", "imr-x2-0", "imr-lsx2-1", "imr-lsx2-0"; + }; + mstp9_clks: mstp9_clks@e6150994 { + compatible = "renesas,r8a7742-mstp-clocks", "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150994 0 4>, <0 0xe61509a4 0 4>; + clocks = <&cp_clk>, <&cp_clk>, <&cp_clk>, + <&cp_clk>, <&cp_clk>, <&cp_clk>, + <&p_clk>, <&p_clk>, <&cpg_clocks R8A7742_CLK_QSPI>, <&cp_clk>, + <&hp_clk>, <&hp_clk>, <&hp_clk>, <&hp_clk>; + #clock-cells = <1>; + clock-indices = < + R8A7742_CLK_GPIO5 R8A7742_CLK_GPIO4 R8A7742_CLK_GPIO3 + R8A7742_CLK_GPIO2 R8A7742_CLK_GPIO1 R8A7742_CLK_GPIO0 + R8A7742_CLK_RCAN1 R8A7742_CLK_RCAN0 R8A7742_CLK_QSPI_MOD R8A7742_CLK_IICDVFS + R8A7742_CLK_I2C3 R8A7742_CLK_I2C2 R8A7742_CLK_I2C1 R8A7742_CLK_I2C0 + >; + clock-output-names = + "gpio5", "gpio4", "gpio3", "gpio2", "gpio1", "gpio0", + "rcan1", "rcan0", "qspi_mod", "iic3", + "i2c3", "i2c2", "i2c1", "i2c0"; + }; + mstp10_clks: mstp10_clks@e6150998 { + compatible = "renesas,r8a7742-mstp-clocks", "renesas,cpg-mstp-clocks"; + reg = <0 0xe6150998 0 4>, <0 0xe61509a8 0 4>; + clocks = <&p_clk>, + <&mstp10_clks R8A7742_CLK_SSI_ALL>, <&mstp10_clks R8A7742_CLK_SSI_ALL>, + <&mstp10_clks R8A7742_CLK_SSI_ALL>, <&mstp10_clks R8A7742_CLK_SSI_ALL>, + <&mstp10_clks R8A7742_CLK_SSI_ALL>, <&mstp10_clks R8A7742_CLK_SSI_ALL>, + <&mstp10_clks R8A7742_CLK_SSI_ALL>, <&mstp10_clks R8A7742_CLK_SSI_ALL>, + <&mstp10_clks R8A7742_CLK_SSI_ALL>, <&mstp10_clks R8A7742_CLK_SSI_ALL>, + <&p_clk>, + <&mstp10_clks R8A7742_CLK_SCU_ALL>, <&mstp10_clks R8A7742_CLK_SCU_ALL>, + <&mstp10_clks R8A7742_CLK_SCU_ALL>, <&mstp10_clks R8A7742_CLK_SCU_ALL>, + <&mstp10_clks R8A7742_CLK_SCU_ALL>, <&mstp10_clks R8A7742_CLK_SCU_ALL>, + <&mstp10_clks R8A7742_CLK_SCU_ALL>, <&mstp10_clks R8A7742_CLK_SCU_ALL>, + <&mstp10_clks R8A7742_CLK_SCU_ALL>, <&mstp10_clks R8A7742_CLK_SCU_ALL>, + <&mstp10_clks R8A7742_CLK_SCU_ALL>, <&mstp10_clks R8A7742_CLK_SCU_ALL>, + <&mstp10_clks R8A7742_CLK_SCU_ALL>, <&mstp10_clks R8A7742_CLK_SCU_ALL>; + + #clock-cells = <1>; + clock-indices = < + R8A7742_CLK_SSI_ALL + R8A7742_CLK_SSI9 R8A7742_CLK_SSI8 R8A7742_CLK_SSI7 R8A7742_CLK_SSI6 R8A7742_CLK_SSI5 + R8A7742_CLK_SSI4 R8A7742_CLK_SSI3 R8A7742_CLK_SSI2 R8A7742_CLK_SSI1 R8A7742_CLK_SSI0 + R8A7742_CLK_SCU_ALL + R8A7742_CLK_SCU_DVC1 R8A7742_CLK_SCU_DVC0 + R8A7742_CLK_SCU_CTU1_MIX1 R8A7742_CLK_SCU_CTU0_MIX0 + R8A7742_CLK_SCU_SRC9 R8A7742_CLK_SCU_SRC8 R8A7742_CLK_SCU_SRC7 R8A7742_CLK_SCU_SRC6 R8A7742_CLK_SCU_SRC5 + R8A7742_CLK_SCU_SRC4 R8A7742_CLK_SCU_SRC3 R8A7742_CLK_SCU_SRC2 R8A7742_CLK_SCU_SRC1 R8A7742_CLK_SCU_SRC0 + >; + clock-output-names = + "ssi-all", + "ssi9", "ssi8", "ssi7", "ssi6", "ssi5", + "ssi4", "ssi3", "ssi2", "ssi1", "ssi0", + "scu-all", + "scu-dvc1", "scu-dvc0", + "scu-ctu1-mix1", "scu-ctu0-mix0", + "scu-src9", "scu-src8", "scu-src7", "scu-src6", "scu-src5", + "scu-src4", "scu-src3", "scu-src2", "scu-src1", "scu-src0"; + }; + }; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu0: cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a15"; + reg = <0>; + clock-frequency = <1400000000>; + clocks = <&cpg_clocks R8A7742_CLK_Z>; + power-domains = <&cpg_clocks>; + next-level-cache = <&L2_CA15>; + capacity-dmips-mhz = <1024>; + voltage-tolerance = <1>; /* 1% */ + clock-latency = <300000>; /* 300 us */ + + /* kHz - uV - OPPs unknown yet */ + operating-points = <1400000 1000000>, + <1225000 1000000>, + <1050000 1000000>, + < 875000 1000000>, + < 700000 1000000>, + < 350000 1000000>; + }; + + cpu1: cpu@1 { + device_type = "cpu"; + compatible = "arm,cortex-a15"; + reg = <1>; + clock-frequency = <1400000000>; + clocks = <&cpg_clocks R8A7742_CLK_Z>; + power-domains = <&cpg_clocks>; + next-level-cache = <&L2_CA15>; + capacity-dmips-mhz = <1024>; + voltage-tolerance = <1>; /* 1% */ + clock-latency = <300000>; /* 300 us */ + + /* kHz - uV - OPPs unknown yet */ + operating-points = <1400000 1000000>, + <1225000 1000000>, + <1050000 1000000>, + < 875000 1000000>, + < 700000 1000000>, + < 350000 1000000>; + }; + + cpu2: cpu@2 { + device_type = "cpu"; + compatible = "arm,cortex-a15"; + reg = <2>; + clock-frequency = <1400000000>; + clocks = <&cpg_clocks R8A7742_CLK_Z>; + power-domains = <&cpg_clocks>; + next-level-cache = <&L2_CA15>; + capacity-dmips-mhz = <1024>; + voltage-tolerance = <1>; /* 1% */ + clock-latency = <300000>; /* 300 us */ + + /* kHz - uV - OPPs unknown yet */ + operating-points = <1400000 1000000>, + <1225000 1000000>, + <1050000 1000000>, + < 875000 1000000>, + < 700000 1000000>, + < 350000 1000000>; + }; + + cpu3: cpu@3 { + device_type = "cpu"; + compatible = "arm,cortex-a15"; + reg = <3>; + clock-frequency = <1400000000>; + clocks = <&cpg_clocks R8A7742_CLK_Z>; + power-domains = <&cpg_clocks>; + next-level-cache = <&L2_CA15>; + capacity-dmips-mhz = <1024>; + voltage-tolerance = <1>; /* 1% */ + clock-latency = <300000>; /* 300 us */ + + /* kHz - uV - OPPs unknown yet */ + operating-points = <1400000 1000000>, + <1225000 1000000>, + <1050000 1000000>, + < 875000 1000000>, + < 700000 1000000>, + < 350000 1000000>; + }; + + cpu4: cpu@100 { + device_type = "cpu"; + compatible = "arm,cortex-a7"; + reg = <0x100>; + clock-frequency = <780000000>; + clocks = <&cpg_clocks R8A7742_CLK_Z2>; + power-domains = <&cpg_clocks>; + next-level-cache = <&L2_CA7>; + }; + + cpu5: cpu@101 { + device_type = "cpu"; + compatible = "arm,cortex-a7"; + reg = <0x101>; + clock-frequency = <780000000>; + clocks = <&cpg_clocks R8A7742_CLK_Z2>; + power-domains = <&cpg_clocks>; + next-level-cache = <&L2_CA7>; + }; + + cpu6: cpu@102 { + device_type = "cpu"; + compatible = "arm,cortex-a7"; + reg = <0x102>; + clock-frequency = <780000000>; + clocks = <&cpg_clocks R8A7742_CLK_Z2>; + power-domains = <&cpg_clocks>; + next-level-cache = <&L2_CA7>; + }; + + cpu7: cpu@103 { + device_type = "cpu"; + compatible = "arm,cortex-a7"; + reg = <0x103>; + clock-frequency = <780000000>; + clocks = <&cpg_clocks R8A7742_CLK_Z2>; + power-domains = <&cpg_clocks>; + next-level-cache = <&L2_CA7>; + }; + + L2_CA15: cache-controller-0 { + compatible = "cache"; + power-domains = <&cpg_clocks>; + cache-unified; + cache-level = <2>; + }; + + L2_CA7: cache-controller-1 { + compatible = "cache"; + power-domains = <&cpg_clocks>; + cache-unified; + cache-level = <2>; + }; + }; + + /* External root clock */ + extal_clk: extal { + compatible = "fixed-clock"; + #clock-cells = <0>; + /* This value must be overridden by the board. */ + clock-frequency = <0>; + }; + + pmu-0 { + compatible = "arm,cortex-a15-pmu"; + interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, + <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, + <&gic GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>, + <&gic GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; + interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; + }; + + pmu-1 { + compatible = "arm,cortex-a7-pmu"; + interrupts-extended = <&gic GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>, + <&gic GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>, + <&gic GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>, + <&gic GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; + interrupt-affinity = <&cpu4>, <&cpu5>, <&cpu6>, <&cpu7>; + }; + + /* External SCIF clock */ + scif_clk: scif { + compatible = "fixed-clock"; + #clock-cells = <0>; + /* This value must be overridden by the board. */ + clock-frequency = <0>; + }; + + soc { + compatible = "simple-bus"; + interrupt-parent = <&gic>; + + #address-cells = <2>; + #size-cells = <2>; + ranges; + + pfc: pin-controller@e6060000 { + compatible = "renesas,pfc-r8a7742"; + reg = <0 0xe6060000 0 0x250>; + }; + + rst: reset-controller@e6160000 { + compatible = "renesas,r8a7742-rst"; + reg = <0 0xe6160000 0 0x0100>; + }; + + icram0: sram@e63a0000 { + compatible = "mmio-sram"; + reg = <0 0xe63a0000 0 0x12000>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0xe63a0000 0x12000>; + }; + + icram1: sram@e63c0000 { + compatible = "mmio-sram"; + reg = <0 0xe63c0000 0 0x1000>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0xe63c0000 0x1000>; + + smp-sram@0 { + compatible = "renesas,smp-sram"; + reg = <0 0x100>; + }; + }; + + icram2: sram@e6300000 { + compatible = "mmio-sram"; + reg = <0 0xe6300000 0 0x40000>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0xe6300000 0x40000>; + }; + + dmac0: dma-controller@e6700000 { + compatible = "renesas,dmac-r8a7742", + "renesas,rcar-dmac"; + reg = <0 0xe6700000 0 0x20000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + interrupt-names = "error", + "ch0", "ch1", "ch2", "ch3", + "ch4", "ch5", "ch6", "ch7", + "ch8", "ch9", "ch10", "ch11", + "ch12", "ch13", "ch14"; + clocks = <&mstp2_clks R8A7742_CLK_SYS_DMAC0>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <15>; + }; + + dmac1: dma-controller@e6720000 { + compatible = "renesas,dmac-r8a7742", + "renesas,rcar-dmac"; + reg = <0 0xe6720000 0 0x20000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + interrupt-names = "error", + "ch0", "ch1", "ch2", "ch3", + "ch4", "ch5", "ch6", "ch7", + "ch8", "ch9", "ch10", "ch11", + "ch12", "ch13", "ch14"; + clocks = <&mstp2_clks R8A7742_CLK_SYS_DMAC1>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <15>; + }; + + scifa2: serial@e6c60000 { + compatible = "renesas,scifa-r8a7742", + "renesas,rcar-gen2-scifa", "renesas,scifa"; + reg = <0 0xe6c60000 0 0x40>; + interrupts = ; + clocks = <&mstp2_clks R8A7742_CLK_SCIFA2>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x27>, <&dmac0 0x28>, + <&dmac1 0x27>, <&dmac1 0x28>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + mmcif1: mmc@ee220000 { + compatible = "renesas,mmcif-r8a7742", + "renesas,sh-mmcif"; + reg = <0 0xee220000 0 0x80>; + interrupts = ; + clocks = <&mstp3_clks R8A7742_CLK_MMCIF1>; + dmas = <&dmac0 0xe1>, <&dmac0 0xe2>, + <&dmac1 0xe1>, <&dmac1 0xe2>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + reg-io-width = <4>; + status = "disabled"; + max-frequency = <97500000>; + }; + + gic: interrupt-controller@f1001000 { + compatible = "arm,gic-400"; + #interrupt-cells = <3>; + #address-cells = <0>; + interrupt-controller; + reg = <0 0xf1001000 0 0x1000>, <0 0xf1002000 0 0x2000>, + <0 0xf1004000 0 0x2000>, <0 0xf1006000 0 0x2000>; + interrupts = ; + clocks = <&mstp4_clks R8A7742_CLK_INTC_SYS>; + clock-names = "clk"; + power-domains = <&cpg_clocks>; + }; + }; + + timer { + compatible = "arm,armv7-timer"; + interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, + <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, + <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, + <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; + }; + + /* External USB clock - can be overridden by the board */ + usb_extal_clk: usb_extal { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <48000000>; + }; +}; From 267a12b3a1d19c7b9adf1f5b2f36ea2d333582a5 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 28 Aug 2020 16:41:50 +0100 Subject: [PATCH 0898/1149] dt-bindings: gpio: renesas, rcar-gpio: Add r8a7742 (RZ/G1H) support commit 39c7c93de02c2c0c150ff41f33068c201b964050 upstream. Renesas RZ/G1H (R8A7742) SoC GPIO blocks are identical to the R-Car Gen2 family. Add support for its GPIO controllers. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Geert Uytterhoeven Acked-by: Rob Herring Signed-off-by: Rob Herring [biju: Patched text version of bindings file] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt index 52fa8e4d8353..74e2897013c8 100644 --- a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt +++ b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt @@ -3,6 +3,7 @@ Required Properties: - compatible: should contain one or more of the following: + - "renesas,gpio-r8a7742": for R8A7742 (RZ/G1H) compatible GPIO controller. - "renesas,gpio-r8a7743": for R8A7743 (RZ/G1M) compatible GPIO controller. - "renesas,gpio-r8a7744": for R8A7744 (RZ/G1N) compatible GPIO controller. - "renesas,gpio-r8a7745": for R8A7745 (RZ/G1E) compatible GPIO controller. From e0e05def5fb334c3f49c6a9b20edef7217877a20 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 28 Aug 2020 16:41:51 +0100 Subject: [PATCH 0899/1149] ARM: dts: r8a7742: Add GPIO nodes commit 7fc3b53a7bd6ebfffd22a75f57175b80fa3df834 Describe GPIO blocks in the R8A7742 device tree. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1588794695-27852-10-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: removed resets and updated clocks, power-domain properties] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a7742.dtsi | 84 ++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index af2ea73f9557..9e26313e09e1 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -606,6 +606,90 @@ #size-cells = <2>; ranges; + gpio0: gpio@e6050000 { + compatible = "renesas,gpio-r8a7742", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6050000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 0 32>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7742_CLK_GPIO0>; + power-domains = <&cpg_clocks>; + }; + + gpio1: gpio@e6051000 { + compatible = "renesas,gpio-r8a7742", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6051000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 32 30>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7742_CLK_GPIO1>; + power-domains = <&cpg_clocks>; + }; + + gpio2: gpio@e6052000 { + compatible = "renesas,gpio-r8a7742", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6052000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 64 30>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7742_CLK_GPIO2>; + power-domains = <&cpg_clocks>; + }; + + gpio3: gpio@e6053000 { + compatible = "renesas,gpio-r8a7742", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6053000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 96 32>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7742_CLK_GPIO3>; + power-domains = <&cpg_clocks>; + }; + + gpio4: gpio@e6054000 { + compatible = "renesas,gpio-r8a7742", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6054000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 128 32>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7742_CLK_GPIO4>; + power-domains = <&cpg_clocks>; + }; + + gpio5: gpio@e6055000 { + compatible = "renesas,gpio-r8a7742", + "renesas,rcar-gen2-gpio"; + reg = <0 0xe6055000 0 0x50>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + gpio-ranges = <&pfc 0 160 32>; + #interrupt-cells = <2>; + interrupt-controller; + clocks = <&mstp9_clks R8A7742_CLK_GPIO5>; + power-domains = <&cpg_clocks>; + }; + pfc: pin-controller@e6060000 { compatible = "renesas,pfc-r8a7742"; reg = <0 0xe6060000 0 0x250>; From 4d198d0d84f677a9edd944dbf2fce9b974fb13bd Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 28 Aug 2020 16:41:52 +0100 Subject: [PATCH 0900/1149] dt-bindings: arm: renesas: Document iW-RainboW-G21M-Qseven-RZG1H SoM commit 844beed47182903212d8230ac6d729be1287733e upstream. Document the iW-RainboW-G21M-Qseven-RZG1H device tree bindings, listing it as a supported system on module. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Acked-by: Rob Herring Link: https://lore.kernel.org/r/1588542414-14826-8-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: Patched text version of bindings file] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/arm/shmobile.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt index 1f894d9a2d0f..0afd43e6764d 100644 --- a/Documentation/devicetree/bindings/arm/shmobile.txt +++ b/Documentation/devicetree/bindings/arm/shmobile.txt @@ -61,6 +61,8 @@ Boards: compatible = "iwave,g22d", "iwave,g22m", "renesas,r8a7745" - iWave Systems RZ/G1E SODIMM System On Module (iW-RainboW-G22M-SM) compatible = "iwave,g22m", "renesas,r8a7745" + - iWave Systems RZ/G1H Qseven System On Module (iW-RainboW-G21M-Qseven) + compatible = "iwave,g21m", "renesas,r8a7742" - iWave Systems RZ/G1M Qseven Development Platform (iW-RainboW-G20D-Qseven) compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7743" - iWave Systems RZ/G1M Qseven System On Module (iW-RainboW-G20M-Qseven) From df3144e958fe4e4094873966de8bae7fc163bac6 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 28 Aug 2020 16:41:53 +0100 Subject: [PATCH 0901/1149] ARM: dts: r8a7742-iwg21m: Add iWave RZ/G1H Qseven SOM commit 269785eaba09172c5189e30d2202084586aeabdd upstream. Add support for iWave RZ/G1H Qseven System On Module. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1588542414-14826-10-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a7742-iwg21m.dtsi | 53 +++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 arch/arm/boot/dts/r8a7742-iwg21m.dtsi diff --git a/arch/arm/boot/dts/r8a7742-iwg21m.dtsi b/arch/arm/boot/dts/r8a7742-iwg21m.dtsi new file mode 100644 index 000000000000..85aff429d408 --- /dev/null +++ b/arch/arm/boot/dts/r8a7742-iwg21m.dtsi @@ -0,0 +1,53 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Device Tree Source for the iWave RZ/G1H Qseven SOM + * + * Copyright (C) 2020 Renesas Electronics Corp. + */ + +#include "r8a7742.dtsi" +#include + +/ { + compatible = "iwave,g21m", "renesas,r8a7742"; + + memory@40000000 { + device_type = "memory"; + reg = <0 0x40000000 0 0x40000000>; + }; + + memory@200000000 { + device_type = "memory"; + reg = <2 0x00000000 0 0x40000000>; + }; + + reg_3p3v: 3p3v { + compatible = "regulator-fixed"; + regulator-name = "3P3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-boot-on; + }; +}; + +&extal_clk { + clock-frequency = <20000000>; +}; + +&pfc { + mmc1_pins: mmc1 { + groups = "mmc1_data4", "mmc1_ctrl"; + function = "mmc1"; + }; +}; + +&mmcif1 { + pinctrl-0 = <&mmc1_pins>; + pinctrl-names = "default"; + + vmmc-supply = <®_3p3v>; + bus-width = <4>; + non-removable; + status = "okay"; +}; From 9385ff65b238021b566b8ca166bba03ae110c3f7 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 28 Aug 2020 16:41:54 +0100 Subject: [PATCH 0902/1149] dt-bindings: arm: renesas: Document iW-RainboW-G21D-Qseven-RZG1H board commit 0b5832238d369a71f90a221d17b92761595c8067 upsream. Document the iW-RainboW-G21D-Qseven-RZG1H device tree bindings, listing it as a supported board. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Acked-by: Rob Herring Link: https://lore.kernel.org/r/1588542414-14826-9-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: Patched text version of bindings file] Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/arm/shmobile.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt index 0afd43e6764d..066eabf49d57 100644 --- a/Documentation/devicetree/bindings/arm/shmobile.txt +++ b/Documentation/devicetree/bindings/arm/shmobile.txt @@ -61,6 +61,8 @@ Boards: compatible = "iwave,g22d", "iwave,g22m", "renesas,r8a7745" - iWave Systems RZ/G1E SODIMM System On Module (iW-RainboW-G22M-SM) compatible = "iwave,g22m", "renesas,r8a7745" + - iWave Systems RZ/G1H Qseven Development Platform (iW-RainboW-G21D-Qseven) + compatible = "iwave,g21d", "iwave,g21m", "renesas,r8a7742" - iWave Systems RZ/G1H Qseven System On Module (iW-RainboW-G21M-Qseven) compatible = "iwave,g21m", "renesas,r8a7742" - iWave Systems RZ/G1M Qseven Development Platform (iW-RainboW-G20D-Qseven) From 1b7be081ee9da964a1e1ef4726166d3fec921558 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 28 Aug 2020 16:41:55 +0100 Subject: [PATCH 0903/1149] ARM: dts: r8a7742-iwg21d-q7: Add iWave G21D-Q7 board based on RZ/G1H commit 48ad3c4a334ad1e583f5159f43c3623ecaffc9f9 upstream. Add support for iWave RainboW-G21D-Qseven board based on RZ/G1H. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1588542414-14826-11-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven Signed-off-by: Biju Das Signed-off-by: Pavel Machek --- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/r8a7742-iwg21d-q7.dts | 37 +++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 arch/arm/boot/dts/r8a7742-iwg21d-q7.dts diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index f279346925a7..09d505aa0d3d 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -546,6 +546,7 @@ dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += \ r7s72100-genmai.dtb \ r8a73a4-ape6evm.dtb \ r8a7740-armadillo800eva.dtb \ + r8a7742-iwg21d-q7.dtb \ r8a7743-iwg20d-q7.dtb \ r8a7743-iwg20d-q7-dbcm-ca.dtb \ r8a7744-iwg20d-q7.dtb \ diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts new file mode 100644 index 000000000000..1f5c35c66d91 --- /dev/null +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts @@ -0,0 +1,37 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Device Tree Source for the iWave-RZ/G1H Qseven board + * + * Copyright (C) 2020 Renesas Electronics Corp. + */ + +/dts-v1/; +#include "r8a7742-iwg21m.dtsi" + +/ { + model = "iWave Systems RainboW-G21D-Qseven board based on RZ/G1H"; + compatible = "iwave,g21d", "iwave,g21m", "renesas,r8a7742"; + + aliases { + serial2 = &scifa2; + }; + + chosen { + bootargs = "ignore_loglevel root=/dev/mmcblk0p1 rw rootwait"; + stdout-path = "serial2:115200n8"; + }; +}; + +&pfc { + scifa2_pins: scifa2 { + groups = "scifa2_data_c"; + function = "scifa2"; + }; +}; + +&scifa2 { + pinctrl-0 = <&scifa2_pins>; + pinctrl-names = "default"; + + status = "okay"; +}; From 7b8fb0f379a6ffde2e17fd6adc6fe5d8eccea923 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Tue, 1 Sep 2020 12:41:05 +0100 Subject: [PATCH 0904/1149] dt-bindings: irqchip: renesas-irqc: Document r8a7742 bindings commit a658d9bcd262421e7e63f4f3693e7e60b18422f3 upstream. Document SoC specific bindings for RZ/G1H (r8a7742) SoC. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Geert Uytterhoeven Signed-off-by: Rob Herring [biju: Patched text version of bindings file] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- .../devicetree/bindings/interrupt-controller/renesas,irqc.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt b/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt index eea4c7b6a09e..9ab84cb471f6 100644 --- a/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt +++ b/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt @@ -5,6 +5,7 @@ Required properties: - compatible: has to be "renesas,irqc-", "renesas,irqc" as fallback. Examples with soctypes are: - "renesas,irqc-r8a73a4" (R-Mobile APE6) + - "renesas,irqc-r8a7742" (RZ/G1H) - "renesas,irqc-r8a7743" (RZ/G1M) - "renesas,irqc-r8a7744" (RZ/G1N) - "renesas,irqc-r8a7745" (RZ/G1E) From b3b1e599a947e64ed17a9749e8a9295e208ab18b Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Tue, 1 Sep 2020 12:41:06 +0100 Subject: [PATCH 0905/1149] ARM: dts: r8a7742: Add IRQC support commit a31a8c9cbc0762b096e0b176ba481a60e54db5bf upstream. Describe the IRQC interrupt controller in the r8a7742 device tree. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Acked-by: Marc Zyngier Link: https://lore.kernel.org/r/1588794695-27852-4-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: changed clocks and power-domains properties, removed resets property] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index 9e26313e09e1..d128fa1d4847 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -700,6 +700,19 @@ reg = <0 0xe6160000 0 0x0100>; }; + irqc: interrupt-controller@e61c0000 { + compatible = "renesas,irqc-r8a7742", "renesas,irqc"; + #interrupt-cells = <2>; + interrupt-controller; + reg = <0 0xe61c0000 0 0x200>; + interrupts = , + , + , + ; + clocks = <&mstp4_clks R8A7742_CLK_IRQC>; + power-domains = <&cpg_clocks>; + }; + icram0: sram@e63a0000 { compatible = "mmio-sram"; reg = <0 0xe63a0000 0 0x12000>; From c75349c84c114fae217a6f49a78d386cb20d340f Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Tue, 1 Sep 2020 12:41:07 +0100 Subject: [PATCH 0906/1149] dt-bindings: i2c: renesas, i2c: Document r8a7742 support commit 315148547563856f48907633cf89da4dd680f72a upstream. Document i2c controller for RZ/G1H (R8A7742) SoC, which is compatible with R-Car Gen2 SoC family. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Signed-off-by: Rob Herring [biju: Patched the changes from renamed file] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/i2c/i2c-rcar.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/i2c/i2c-rcar.txt b/Documentation/devicetree/bindings/i2c/i2c-rcar.txt index 0d1aa9e4c292..3587816115db 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-rcar.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-rcar.txt @@ -2,6 +2,7 @@ I2C for R-Car platforms Required properties: - compatible: + "renesas,i2c-r8a7742" if the device is a part of a R8A7742 SoC. "renesas,i2c-r8a7743" if the device is a part of a R8A7743 SoC. "renesas,i2c-r8a7744" if the device is a part of a R8A7744 SoC. "renesas,i2c-r8a7745" if the device is a part of a R8A7745 SoC. From da0985fef974515032cb7573cf34244532d8049f Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Tue, 1 Sep 2020 12:41:08 +0100 Subject: [PATCH 0907/1149] dt-bindings: i2c: renesas, iic: Document r8a7742 support commit 90f90af71876914f03e4740e263c4738b703fa89 upstream. Document IIC controller for RZ/G1H (R8A7742) SoC, which is compatible with R-Car Gen2 SoC family. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Signed-off-by: Rob Herring [biju: Pacthed the changes from renamed file] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt b/Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt index f4727c6ea01e..348d87c5cd06 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt @@ -4,6 +4,7 @@ Required properties: - compatible : - "renesas,iic-r8a73a4" (R-Mobile APE6) - "renesas,iic-r8a7740" (R-Mobile A1) + - "renesas,iic-r8a7742" (RZ/G1H) - "renesas,iic-r8a7743" (RZ/G1M) - "renesas,iic-r8a7744" (RZ/G1N) - "renesas,iic-r8a7745" (RZ/G1E) From e8b27a287376460a1fb56204e743cd6a80a72b28 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Tue, 1 Sep 2020 12:41:09 +0100 Subject: [PATCH 0908/1149] ARM: dts: r8a7742: Add I2C and IIC support commit 9af42b81cfc7f48d5384fc6a6c382dc716b45563 upstream. Add the I2C[0-3] and IIC[0-3] device nodes to the R8A7742 device tree. Automatic transmission for PMIC control is not available on IIC3 hence compatible strings "renesas,rcar-gen2-iic" and "renesas,rmobile-iic" are not added to iic3 node. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1589555337-5498-4-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: changed clocks and power-domains properties, removed resets, i2c-scl-internal-delay-ns properties] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 110 +++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index d128fa1d4847..6693a54367aa 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -742,6 +742,116 @@ ranges = <0 0 0xe6300000 0x40000>; }; + i2c0: i2c@e6508000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a7742", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6508000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A7742_CLK_I2C0>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + i2c1: i2c@e6518000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a7742", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6518000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A7742_CLK_I2C1>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + i2c2: i2c@e6530000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a7742", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6530000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A7742_CLK_I2C2>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + i2c3: i2c@e6540000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,i2c-r8a7742", + "renesas,rcar-gen2-i2c"; + reg = <0 0xe6540000 0 0x40>; + interrupts = ; + clocks = <&mstp9_clks R8A7742_CLK_I2C3>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + iic0: i2c@e6500000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,iic-r8a7742", + "renesas,rcar-gen2-iic", + "renesas,rmobile-iic"; + reg = <0 0xe6500000 0 0x425>; + interrupts = ; + clocks = <&mstp3_clks R8A7742_CLK_IIC0>; + dmas = <&dmac0 0x61>, <&dmac0 0x62>, + <&dmac1 0x61>, <&dmac1 0x62>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + iic1: i2c@e6510000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,iic-r8a7742", + "renesas,rcar-gen2-iic", + "renesas,rmobile-iic"; + reg = <0 0xe6510000 0 0x425>; + interrupts = ; + clocks = <&mstp3_clks R8A7742_CLK_IIC1>; + dmas = <&dmac0 0x65>, <&dmac0 0x66>, + <&dmac1 0x65>, <&dmac1 0x66>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + iic2: i2c@e6520000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,iic-r8a7742", + "renesas,rcar-gen2-iic", + "renesas,rmobile-iic"; + reg = <0 0xe6520000 0 0x425>; + interrupts = ; + clocks = <&mstp3_clks R8A7742_CLK_IIC2>; + dmas = <&dmac0 0x69>, <&dmac0 0x6a>, + <&dmac1 0x69>, <&dmac1 0x6a>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + iic3: i2c@e60b0000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,iic-r8a7742"; + reg = <0 0xe60b0000 0 0x425>; + interrupts = ; + clocks = <&mstp9_clks R8A7742_CLK_IICDVFS>; + dmas = <&dmac0 0x77>, <&dmac0 0x78>, + <&dmac1 0x77>, <&dmac1 0x78>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + dmac0: dma-controller@e6700000 { compatible = "renesas,dmac-r8a7742", "renesas,rcar-dmac"; From c24374ad0c59161c0a7a1bcfc46b7b1d0d672d69 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Tue, 1 Sep 2020 12:41:10 +0100 Subject: [PATCH 0909/1149] dt-bindings: net: renesas, ravb: Add support for r8a7742 SoC commit 9c95312aad21bf5c6f23a5158d1cd7f42d4560e2 upstream. Document RZ/G1H (R8A7742) SoC bindings. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Signed-off-by: Rob Herring Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/net/renesas,ravb.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/net/renesas,ravb.txt b/Documentation/devicetree/bindings/net/renesas,ravb.txt index 0a8e8df01f4b..132d6c72c4d3 100644 --- a/Documentation/devicetree/bindings/net/renesas,ravb.txt +++ b/Documentation/devicetree/bindings/net/renesas,ravb.txt @@ -5,6 +5,7 @@ interface contains. Required properties: - compatible: Must contain one or more of the following: + - "renesas,etheravb-r8a7742" for the R8A7742 SoC. - "renesas,etheravb-r8a7743" for the R8A7743 SoC. - "renesas,etheravb-r8a7744" for the R8A7744 SoC. - "renesas,etheravb-r8a7745" for the R8A7745 SoC. From 16340b9e1c83fdd09f5bda4551b0f8e67a858bc9 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Tue, 1 Sep 2020 12:41:11 +0100 Subject: [PATCH 0910/1149] ARM: dts: r8a7742: Add Ethernet AVB support commit 9451f394e9cfb30e5a9b66f1022ef7f91717548b upstream. Add Ethernet AVB support for R8A7742 SoC. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Wolfram Sang Link: https://lore.kernel.org/r/1589555337-5498-13-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: changed clocks and power-domains properties, removed resets property] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index 6693a54367aa..3f72658ba96d 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -916,6 +916,18 @@ dma-channels = <15>; }; + avb: ethernet@e6800000 { + compatible = "renesas,etheravb-r8a7742", + "renesas,etheravb-rcar-gen2"; + reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>; + interrupts = ; + clocks = <&mstp8_clks R8A7742_CLK_ETHERAVB>; + power-domains = <&cpg_clocks>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + scifa2: serial@e6c60000 { compatible = "renesas,scifa-r8a7742", "renesas,rcar-gen2-scifa", "renesas,scifa"; From 36dd8ba98e0c9ba81cd264bfd65936cc93b92b57 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Tue, 1 Sep 2020 12:41:12 +0100 Subject: [PATCH 0911/1149] ARM: dts: r8a7742-iwg21d-q7: Enable Ethernet AVB commit 8a8c81aa605cec4a086bd46a9b9214b9671f8f42 upstream. Enable Ethernet AVB on iWave RZ/G1H carrier board. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1590420129-7531-4-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742-iwg21d-q7.dts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts index 1f5c35c66d91..8ce82ad3d946 100644 --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts @@ -14,6 +14,7 @@ aliases { serial2 = &scifa2; + ethernet0 = &avb; }; chosen { @@ -22,7 +23,27 @@ }; }; +&avb { + pinctrl-0 = <&avb_pins>; + pinctrl-names = "default"; + + phy-handle = <&phy3>; + phy-mode = "gmii"; + renesas,no-ether-link; + status = "okay"; + + phy3: ethernet-phy@3 { + reg = <3>; + micrel,led-mode = <1>; + }; +}; + &pfc { + avb_pins: avb { + groups = "avb_mdio", "avb_gmii"; + function = "avb"; + }; + scifa2_pins: scifa2 { groups = "scifa2_data_c"; function = "scifa2"; From 59a1123d864a3d0e7fe7238d1816c26bf7a7e8db Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Tue, 1 Sep 2020 12:41:13 +0100 Subject: [PATCH 0912/1149] dt-bindings: power: renesas,apmu: Document r8a7742 support commit a08790960382c24d92af43a34626ed0f3899d299 upstream. Document APMU and SMP enable method for RZ/G1H (also known as r8a7742) SoC. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Signed-off-by: Rob Herring [biju: Patched text version of bindings file] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/power/renesas,apmu.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/power/renesas,apmu.txt b/Documentation/devicetree/bindings/power/renesas,apmu.txt index 21157fb60f36..8ffb21e20bc4 100644 --- a/Documentation/devicetree/bindings/power/renesas,apmu.txt +++ b/Documentation/devicetree/bindings/power/renesas,apmu.txt @@ -7,6 +7,7 @@ Required properties: - compatible: Should be "renesas,-apmu", "renesas,apmu" as fallback. Examples with soctypes are: + - "renesas,r8a7742-apmu" (RZ/G1H) - "renesas,r8a7743-apmu" (RZ/G1M) - "renesas,r8a7744-apmu" (RZ/G1N) - "renesas,r8a7745-apmu" (RZ/G1E) From 7248d18ede9908db7400cf50a80f8f3aec226095 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Tue, 1 Sep 2020 12:41:14 +0100 Subject: [PATCH 0913/1149] ARM: dts: r8a7742: Add APMU nodes commit 57e7dad22bdb4bffa158d32a2e9d5b7145ab1e85 upstream. Add DT nodes for the Advanced Power Management Units (APMU), and use the enable-method to point out that the APMU should be used for SMP support. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Wolfram Sang Link: https://lore.kernel.org/r/1589555337-5498-16-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index 3f72658ba96d..1db3682a1deb 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -424,6 +424,7 @@ cpus { #address-cells = <1>; #size-cells = <0>; + enable-method = "renesas,apmu"; cpu0: cpu@0 { device_type = "cpu"; @@ -695,6 +696,18 @@ reg = <0 0xe6060000 0 0x250>; }; + apmu@e6151000 { + compatible = "renesas,r8a7742-apmu", "renesas,apmu"; + reg = <0 0xe6151000 0 0x188>; + cpus = <&cpu4 &cpu5 &cpu6 &cpu7>; + }; + + apmu@e6152000 { + compatible = "renesas,r8a7742-apmu", "renesas,apmu"; + reg = <0 0xe6152000 0 0x188>; + cpus = <&cpu0 &cpu1 &cpu2 &cpu3>; + }; + rst: reset-controller@e6160000 { compatible = "renesas,r8a7742-rst"; reg = <0 0xe6160000 0 0x0100>; From 95a2886eae4a1462df11a0c7a68c2eaacd109091 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 2 Sep 2020 08:50:31 +0100 Subject: [PATCH 0914/1149] dt-bindings: mmc: renesas,sdhi: Document r8a7742 support From: Lad Prabhakar commit 1f8153ee031d0d4756daa985788bf0a960e588a6 upstream. Document SDHI controller for RZ/G1H (R8A7742) SoC, which is compatible with R-Car Gen2 SoC family. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/1589555337-5498-5-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Ulf Hansson [biju: Ported the changes from renamed bindings file renesas,sdhi.txt to here] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/mmc/tmio_mmc.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/mmc/tmio_mmc.txt b/Documentation/devicetree/bindings/mmc/tmio_mmc.txt index 94bb00b0f4ef..874ffc99d798 100644 --- a/Documentation/devicetree/bindings/mmc/tmio_mmc.txt +++ b/Documentation/devicetree/bindings/mmc/tmio_mmc.txt @@ -15,6 +15,7 @@ Required properties: "renesas,sdhi-sh73a0" - SDHI IP on SH73A0 SoC "renesas,sdhi-r8a73a4" - SDHI IP on R8A73A4 SoC "renesas,sdhi-r8a7740" - SDHI IP on R8A7740 SoC + "renesas,sdhi-r8a7742" - SDHI IP on R8A7742 SoC "renesas,sdhi-r8a7743" - SDHI IP on R8A7743 SoC "renesas,sdhi-r8a7744" - SDHI IP on R8A7744 SoC "renesas,sdhi-r8a7745" - SDHI IP on R8A7745 SoC From 2b4458a5c3f901faaf94337047b8c03dfadc315a Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 2 Sep 2020 08:50:32 +0100 Subject: [PATCH 0915/1149] ARM: dts: r8a7742: Add SDHI nodes From: Lad Prabhakar commit 3ab2ea5fd1ce3c61d67d7b737c361bec2ec6441f upstream. Add the SDHI device nodes to the R8A7742 device tree. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Wolfram Sang Link: https://lore.kernel.org/r/1589555337-5498-7-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: changed clocks and power-domains properties, removed resets property] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 56 ++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index 1db3682a1deb..70dcd59b36ca 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -955,6 +955,62 @@ status = "disabled"; }; + sdhi0: sd@ee100000 { + compatible = "renesas,sdhi-r8a7742", + "renesas,rcar-gen2-sdhi"; + reg = <0 0xee100000 0 0x328>; + interrupts = ; + clocks = <&mstp3_clks R8A7742_CLK_SDHI0>; + dmas = <&dmac0 0xcd>, <&dmac0 0xce>, + <&dmac1 0xcd>, <&dmac1 0xce>; + dma-names = "tx", "rx", "tx", "rx"; + max-frequency = <195000000>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + sdhi1: sd@ee120000 { + compatible = "renesas,sdhi-r8a7742", + "renesas,rcar-gen2-sdhi"; + reg = <0 0xee120000 0 0x328>; + interrupts = ; + clocks = <&mstp3_clks R8A7742_CLK_SDHI1>; + dmas = <&dmac0 0xc9>, <&dmac0 0xca>, + <&dmac1 0xc9>, <&dmac1 0xca>; + dma-names = "tx", "rx", "tx", "rx"; + max-frequency = <195000000>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + sdhi2: sd@ee140000 { + compatible = "renesas,sdhi-r8a7742", + "renesas,rcar-gen2-sdhi"; + reg = <0 0xee140000 0 0x100>; + interrupts = ; + clocks = <&mstp3_clks R8A7742_CLK_SDHI2>; + dmas = <&dmac0 0xc1>, <&dmac0 0xc2>, + <&dmac1 0xc1>, <&dmac1 0xc2>; + dma-names = "tx", "rx", "tx", "rx"; + max-frequency = <97500000>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + sdhi3: sd@ee160000 { + compatible = "renesas,sdhi-r8a7742", + "renesas,rcar-gen2-sdhi"; + reg = <0 0xee160000 0 0x100>; + interrupts = ; + clocks = <&mstp3_clks R8A7742_CLK_SDHI3>; + dmas = <&dmac0 0xd3>, <&dmac0 0xd4>, + <&dmac1 0xd3>, <&dmac1 0xd4>; + dma-names = "tx", "rx", "tx", "rx"; + max-frequency = <97500000>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + mmcif1: mmc@ee220000 { compatible = "renesas,mmcif-r8a7742", "renesas,sh-mmcif"; From 7ae922bcff683a7aca581267b7e9b33442dd146b Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 2 Sep 2020 08:50:33 +0100 Subject: [PATCH 0916/1149] ARM: dts: r8a7742: Add MMC0 node From: Lad Prabhakar commit 9493c8c34cb4b683917a0d2e82cc5df859b1e5a4 upstream. Describe MMC0 device node in the R8A7742 device tree. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Wolfram Sang Link: https://lore.kernel.org/r/1589555337-5498-8-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: changed clocks and power-domains properties, removed resets property] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index 70dcd59b36ca..f4d571b4a4db 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -1011,6 +1011,21 @@ status = "disabled"; }; + mmcif0: mmc@ee200000 { + compatible = "renesas,mmcif-r8a7742", + "renesas,sh-mmcif"; + reg = <0 0xee200000 0 0x80>; + interrupts = ; + clocks = <&mstp3_clks R8A7742_CLK_MMCIF0>; + dmas = <&dmac0 0xd1>, <&dmac0 0xd2>, + <&dmac1 0xd1>, <&dmac1 0xd2>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + reg-io-width = <4>; + status = "disabled"; + max-frequency = <97500000>; + }; + mmcif1: mmc@ee220000 { compatible = "renesas,mmcif-r8a7742", "renesas,sh-mmcif"; From f945d95ca10cb125fe5b8cb53539bcedc30a53a1 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 2 Sep 2020 08:50:34 +0100 Subject: [PATCH 0917/1149] ARM: dts: r8a7742-iwg21d-q7: Enable SDHI2 controller From: Lad Prabhakar commit b3850cd90edc0baad2ec47293f4ec3c929de6f76 upstream. Enable the SDHI2 controller on iWave RZ/G1H carrier board. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1590420129-7531-3-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: removed sd-uhs-sdr50 property, since voltage switching is not supported in 4.4 kernel] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742-iwg21d-q7.dts | 39 +++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts index 8ce82ad3d946..82abbb758046 100644 --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts @@ -21,6 +21,28 @@ bootargs = "ignore_loglevel root=/dev/mmcblk0p1 rw rootwait"; stdout-path = "serial2:115200n8"; }; + + vcc_sdhi2: regulator-vcc-sdhi2 { + compatible = "regulator-fixed"; + + regulator-name = "SDHI2 Vcc"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + + gpio = <&gpio1 27 GPIO_ACTIVE_LOW>; + }; + + vccq_sdhi2: regulator-vccq-sdhi2 { + compatible = "regulator-gpio"; + + regulator-name = "SDHI2 VccQ"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + + gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; + gpios-states = <1>; + states = <3300000 1>, <1800000 0>; + }; }; &avb { @@ -48,6 +70,12 @@ groups = "scifa2_data_c"; function = "scifa2"; }; + + sdhi2_pins: sd2 { + groups = "sdhi2_data4", "sdhi2_ctrl"; + function = "sdhi2"; + power-source = <3300>; + }; }; &scifa2 { @@ -56,3 +84,14 @@ status = "okay"; }; + +&sdhi2 { + pinctrl-0 = <&sdhi2_pins>; + pinctrl-names = "default"; + + vmmc-supply = <&vcc_sdhi2>; + vqmmc-supply = <&vccq_sdhi2>; + cd-gpios = <&gpio3 22 GPIO_ACTIVE_LOW>; + wp-gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>; + status = "okay"; +}; From 7209bdbab759891c1fa5596e24268c5a5ddd5d2a Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 2 Sep 2020 08:50:35 +0100 Subject: [PATCH 0918/1149] ARM: dts: renesas: Fix SD Card/eMMC interface device node names From: Yoshihiro Shimoda commit d8293670ae46e84973c974ea5745527e90a8afbb upstream. Fix the device node names as "mmc@". Fixes: 66474697923c ("ARM: dts: r7s72100: add sdhi to device tree") Fixes: a49f76cddaee ("ARM: dts: r7s9210: Add SDHI support") Fixes: 43304a5f5106 ("ARM: shmobile: r8a73a4: tidyup DT node naming") Fixes: 7d907894bfe3 ("ARM: shmobile: r8a7740: tidyup DT node naming") Fixes: 3ab2ea5fd1ce ("ARM: dts: r8a7742: Add SDHI nodes") Fixes: 63ce8a617b51 ("ARM: dts: r8a7743: Add SDHI controllers") Fixes: b591e323b271 ("ARM: dts: r8a7744: Add SDHI nodes") Fixes: d83010f87ab3 ("ARM: dts: r8a7744: Initial SoC device tree") Fixes: 7079131ef9b9 ("ARM: dts: r8a7745: Add SDHI controllers") Fixes: 0485da788028 ("ARM: dts: r8a77470: Add SDHI1 support") Fixes: 15aa5a95e820 ("ARM: dts: r8a77470: Add SDHI0 support") Fixes: f068cc816015 ("ARM: dts: r8a77470: Add SDHI2 support") Fixes: 14e1d9147d96 ("ARM: shmobile: r8a7778: tidyup DT node naming") Fixes: 2624705ceb7b ("ARM: shmobile: r8a7779: tidyup DT node naming") Fixes: b718aa448378 ("ARM: shmobile: r8a7790: tidyup DT node naming") Fixes: b7ed8a0dd4f1 ("ARM: shmobile: Add SDHI devices to r8a7791 DTSI") Fixes: ce01b14ecf19 ("ARM: dts: r8a7792: add SDHI support") Fixes: fc9ee228f500 ("ARM: dts: r8a7793: Add SDHI controllers") Fixes: b8e8ea127d00 ("ARM: shmobile: r8a7794: add SDHI DT support") Fixes: 33f6be3bf6b7 ("ARM: shmobile: sh73a0: tidyup DT node naming") Signed-off-by: Yoshihiro Shimoda Link: https://lore.kernel.org/r/1594382936-14114-1-git-send-email-yoshihiro.shimoda.uh@renesas.com Signed-off-by: Geert Uytterhoeven [biju: Ported the changes only for RZG1[HMNEC] SoC's] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 8 ++++---- arch/arm/boot/dts/r8a7743.dtsi | 6 +++--- arch/arm/boot/dts/r8a7744.dtsi | 6 +++--- arch/arm/boot/dts/r8a7745.dtsi | 6 +++--- arch/arm/boot/dts/r8a77470.dtsi | 6 +++--- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index f4d571b4a4db..fd4da0d6269e 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -955,7 +955,7 @@ status = "disabled"; }; - sdhi0: sd@ee100000 { + sdhi0: mmc@ee100000 { compatible = "renesas,sdhi-r8a7742", "renesas,rcar-gen2-sdhi"; reg = <0 0xee100000 0 0x328>; @@ -969,7 +969,7 @@ status = "disabled"; }; - sdhi1: sd@ee120000 { + sdhi1: mmc@ee120000 { compatible = "renesas,sdhi-r8a7742", "renesas,rcar-gen2-sdhi"; reg = <0 0xee120000 0 0x328>; @@ -983,7 +983,7 @@ status = "disabled"; }; - sdhi2: sd@ee140000 { + sdhi2: mmc@ee140000 { compatible = "renesas,sdhi-r8a7742", "renesas,rcar-gen2-sdhi"; reg = <0 0xee140000 0 0x100>; @@ -997,7 +997,7 @@ status = "disabled"; }; - sdhi3: sd@ee160000 { + sdhi3: mmc@ee160000 { compatible = "renesas,sdhi-r8a7742", "renesas,rcar-gen2-sdhi"; reg = <0 0xee160000 0 0x100>; diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 9ea92a367e86..aff5ebbdb4bd 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -902,7 +902,7 @@ status = "disabled"; }; - sdhi0: sd@ee100000 { + sdhi0: mmc@ee100000 { compatible = "renesas,sdhi-r8a7743"; reg = <0 0xee100000 0 0x328>; interrupts = ; @@ -915,7 +915,7 @@ status = "disabled"; }; - sdhi1: sd@ee140000 { + sdhi1: mmc@ee140000 { compatible = "renesas,sdhi-r8a7743"; reg = <0 0xee140000 0 0x100>; interrupts = ; @@ -928,7 +928,7 @@ status = "disabled"; }; - sdhi2: sd@ee160000 { + sdhi2: mmc@ee160000 { compatible = "renesas,sdhi-r8a7743"; reg = <0 0xee160000 0 0x100>; interrupts = ; diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index 9e1885ce4948..079f46f17049 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -1360,7 +1360,7 @@ }; }; - sdhi0: sd@ee100000 { + sdhi0: mmc@ee100000 { compatible = "renesas,sdhi-r8a7744"; reg = <0 0xee100000 0 0x328>; interrupts = ; @@ -1373,7 +1373,7 @@ status = "disabled"; }; - sdhi1: sd@ee140000 { + sdhi1: mmc@ee140000 { compatible = "renesas,sdhi-r8a7744"; reg = <0 0xee140000 0 0x100>; interrupts = ; @@ -1386,7 +1386,7 @@ status = "disabled"; }; - sdhi2: sd@ee160000 { + sdhi2: mmc@ee160000 { compatible = "renesas,sdhi-r8a7744"; reg = <0 0xee160000 0 0x100>; interrupts = ; diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 54b556b34663..5f603d9eafea 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -1211,7 +1211,7 @@ }; }; - sdhi0: sd@ee100000 { + sdhi0: mmc@ee100000 { compatible = "renesas,sdhi-r8a7745"; reg = <0 0xee100000 0 0x328>; interrupts = ; @@ -1224,7 +1224,7 @@ status = "disabled"; }; - sdhi1: sd@ee140000 { + sdhi1: mmc@ee140000 { compatible = "renesas,sdhi-r8a7745"; reg = <0 0xee140000 0 0x100>; interrupts = ; @@ -1237,7 +1237,7 @@ status = "disabled"; }; - sdhi2: sd@ee160000 { + sdhi2: mmc@ee160000 { compatible = "renesas,sdhi-r8a7745"; reg = <0 0xee160000 0 0x100>; interrupts = ; diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi index dc345754ce61..1057bff76cc8 100644 --- a/arch/arm/boot/dts/r8a77470.dtsi +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -664,7 +664,7 @@ status = "disabled"; }; - sdhi0: sd@ee100000 { + sdhi0: mmc@ee100000 { compatible = "renesas,sdhi-r8a77470", "renesas,rcar-gen2-sdhi"; reg = <0 0xee100000 0 0x328>; @@ -678,7 +678,7 @@ status = "disabled"; }; - sdhi1: sd@ee300000 { + sdhi1: mmc@ee300000 { compatible = "renesas,sdhi-mmc-r8a77470"; reg = <0 0xee300000 0 0x2000>; interrupts = ; @@ -688,7 +688,7 @@ status = "disabled"; }; - sdhi2: sd@ee160000 { + sdhi2: mmc@ee160000 { compatible = "renesas,sdhi-r8a77470", "renesas,rcar-gen2-sdhi"; reg = <0 0xee160000 0 0x328>; From 1f6c3faf925c5ed72b791a813dd3ddba5eedadeb Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Wed, 2 Sep 2020 17:05:06 +0100 Subject: [PATCH 0919/1149] dt-bindings: watchdog: renesas,wdt: Document r8a7742 support commit 06c3b7a60b4b248ed12229ea39399be0501532de upstream. RZ/G1H (R8A7742) watchdog implementation is compatible with R-Car Gen2, therefore add relevant documentation. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Reviewed-by: Guenter Roeck Signed-off-by: Rob Herring [biju: Patched text version of bindings file] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/watchdog/renesas-wdt.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/watchdog/renesas-wdt.txt b/Documentation/devicetree/bindings/watchdog/renesas-wdt.txt index 050bcf0e3e00..0541781344af 100644 --- a/Documentation/devicetree/bindings/watchdog/renesas-wdt.txt +++ b/Documentation/devicetree/bindings/watchdog/renesas-wdt.txt @@ -5,6 +5,7 @@ Required properties: fallback compatible string when compatible with the generic version. Examples with soctypes are: + - "renesas,r8a7742-wdt" (RZ/G1H) - "renesas,r8a7743-wdt" (RZ/G1M) - "renesas,r8a7744-wdt" (RZ/G1N) - "renesas,r8a7745-wdt" (RZ/G1E) From bd91210ec04d18af76caf93fa4c90e379b08d29f Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Wed, 2 Sep 2020 17:05:07 +0100 Subject: [PATCH 0920/1149] ARM: dts: r8a7742: Add RWDT node commit 72d1a34e3cedbb48513db50bb651c5ccf53e5a27 upstream. Add a device node for the Watchdog Timer (RWDT) controller on the Renesas RZ/G1H (r8a7742) SoC. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Wolfram Sang Link: https://lore.kernel.org/r/1590172641-1556-1-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: changed clocks and power-domain properties, removed resets property] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index fd4da0d6269e..50f70b358bce 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -607,6 +607,16 @@ #size-cells = <2>; ranges; + rwdt: watchdog@e6020000 { + compatible = "renesas,r8a7742-wdt", + "renesas,rcar-gen2-wdt"; + reg = <0 0xe6020000 0 0x0c>; + interrupts = ; + clocks = <&mstp4_clks R8A7742_CLK_RWDT>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + gpio0: gpio@e6050000 { compatible = "renesas,gpio-r8a7742", "renesas,rcar-gen2-gpio"; From f2c1d30dfd9b826cd0dfa5ac7ab88469fe7f80fc Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Wed, 2 Sep 2020 17:05:09 +0100 Subject: [PATCH 0921/1149] ARM: dts: r8a7742-iwg21d-q7: Add RWDT support commit 5a07fe33b8d4db72f825de90f8361a6a8680ba5f upstream. Enable RWDT and use 60 seconds as default timeout. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1590420129-7531-5-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742-iwg21d-q7.dts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts index 82abbb758046..3197aa5852f9 100644 --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts @@ -78,6 +78,11 @@ }; }; +&rwdt { + timeout-sec = <60>; + status = "okay"; +}; + &scifa2 { pinctrl-0 = <&scifa2_pins>; pinctrl-names = "default"; From b51f2c7b610d3b2e4154762e3231cc5e88a204b7 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Wed, 2 Sep 2020 17:05:11 +0100 Subject: [PATCH 0922/1149] dt-bindings: thermal: rcar-thermal: Add device tree support for r8a7742 commit fafcc40fd5261db9de1cef34f9a0694bad507504 upstream. Add thermal sensor support for r8a7742 SoC. The Renesas RZ/G1H (r8a7742) thermal sensor module is identical to the R-Car Gen2 family. No driver change is needed due to the fallback compatible value "renesas,rcar-gen2-thermal". Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Geert Uytterhoeven Signed-off-by: Rob Herring [biju: Patched text version of bindings file] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/thermal/rcar-thermal.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/thermal/rcar-thermal.txt b/Documentation/devicetree/bindings/thermal/rcar-thermal.txt index 1e0f8377a949..0772137fa6cc 100644 --- a/Documentation/devicetree/bindings/thermal/rcar-thermal.txt +++ b/Documentation/devicetree/bindings/thermal/rcar-thermal.txt @@ -6,6 +6,7 @@ Required properties: "renesas,rcar-thermal" (without thermal-zone) as fallback. Examples with soctypes are: - "renesas,thermal-r8a73a4" (R-Mobile APE6) + - "renesas,thermal-r8a7742" (RZ/G1H) - "renesas,thermal-r8a7743" (RZ/G1M) - "renesas,thermal-r8a7744" (RZ/G1N) - "renesas,thermal-r8a7779" (R-Car H1) From a82d57c9a08e20c1d513716103dc17716647a6d7 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Wed, 2 Sep 2020 17:05:12 +0100 Subject: [PATCH 0923/1149] ARM: dts: r8a7742: Add thermal device to DT commit 937c9ebddc09284dc947afaae52c76d05ee1dcfd upstream. This patch instantiates the thermal sensor module with thermal-zone support. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1590614320-30160-3-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: changed clocks and power-domain properties, removed resets property] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index 50f70b358bce..97bedc13f702 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -736,6 +736,16 @@ power-domains = <&cpg_clocks>; }; + thermal: thermal@e61f0000 { + compatible = "renesas,thermal-r8a7742", + "renesas,rcar-gen2-thermal"; + reg = <0 0xe61f0000 0 0x10>, <0 0xe61f0100 0 0x38>; + interrupts = ; + clocks = <&mstp5_clks R8A7742_CLK_THERMAL>; + power-domains = <&cpg_clocks>; + #thermal-sensor-cells = <0>; + }; + icram0: sram@e63a0000 { compatible = "mmio-sram"; reg = <0 0xe63a0000 0 0x12000>; @@ -1065,6 +1075,25 @@ }; }; + thermal-zones { + cpu_thermal: cpu-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + + thermal-sensors = <&thermal>; + + trips { + cpu-crit { + temperature = <95000>; + hysteresis = <0>; + type = "critical"; + }; + }; + cooling-maps { + }; + }; + }; + timer { compatible = "arm,armv7-timer"; interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, From 7fa2d5282d025a0b92e09de1533ec475b9858888 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Wed, 2 Sep 2020 17:05:14 +0100 Subject: [PATCH 0924/1149] ARM: dts: r8a7742: Add CMT SoC specific support commit 5818cc37e7fc72d9f2da255d9648c5f2e1a33b22 upstream. Add CMT[01] support to r8a7742 SoC DT. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1590614320-30160-5-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: changed clocks and power-domain properties, removed resets property, added renesas,channel-mask property] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 36 ++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index 97bedc13f702..ada98d3fe290 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -1073,6 +1073,42 @@ clock-names = "clk"; power-domains = <&cpg_clocks>; }; + + cmt0: timer@ffca0000 { + compatible = "renesas,cmt-48-r8a7742", + "renesas,cmt-48-gen2"; + reg = <0 0xffca0000 0 0x1004>; + interrupts = , + ; + clocks = <&mstp1_clks R8A7742_CLK_CMT0>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + + renesas,channels-mask = <0x60>; + + status = "disabled"; + }; + + cmt1: timer@e6130000 { + compatible = "renesas,cmt-48-r8a7742", + "renesas,cmt-48-gen2"; + reg = <0 0xe6130000 0 0x1004>; + interrupts = , + , + , + , + , + , + , + ; + clocks = <&mstp3_clks R8A7742_CLK_CMT1>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + + renesas,channels-mask = <0xff>; + + status = "disabled"; + }; }; thermal-zones { From e03bd786ee779e0409af558584224bc17c5059f9 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Wed, 2 Sep 2020 17:05:15 +0100 Subject: [PATCH 0925/1149] spi: renesas,sh-msiof: Add r8a7742 support commit 6383b118efafff8cce8fc8fa5b7e893a523b698f upstream. Document RZ/G1H (R8A7742) SoC bindings. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/1591736054-568-2-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Mark Brown [biju: Patched text version of bindings file] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/spi/sh-msiof.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/spi/sh-msiof.txt b/Documentation/devicetree/bindings/spi/sh-msiof.txt index 7a20ec6a595e..80aa70517dd2 100644 --- a/Documentation/devicetree/bindings/spi/sh-msiof.txt +++ b/Documentation/devicetree/bindings/spi/sh-msiof.txt @@ -1,7 +1,8 @@ Renesas MSIOF spi controller Required properties: -- compatible : "renesas,msiof-r8a7743" (RZ/G1M) +- compatible : "renesas,msiof-r8a7742" (RZ/G1H) + "renesas,msiof-r8a7743" (RZ/G1M) "renesas,msiof-r8a7745" (RZ/G1E) "renesas,msiof-r8a7790" (R-Car H2) "renesas,msiof-r8a7791" (R-Car M2-W) From e1a7f679f9ca54eb8757f932a69407372551a6ae Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Wed, 2 Sep 2020 17:05:16 +0100 Subject: [PATCH 0926/1149] ARM: dts: r8a7742: Add MSIOF[0123] support commit 4b0ee283de6c525478c98d3b3d15a4aed7d96de6 upstream. Add the DT nodes needed by MSIOF[0123] interfaces to the SoC dtsi. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1591736054-568-3-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: changed clocks and power-domain properties, removed resets property] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 60 ++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index ada98d3fe290..694b20354575 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -975,6 +975,66 @@ status = "disabled"; }; + msiof0: spi@e6e20000 { + compatible = "renesas,msiof-r8a7742", + "renesas,rcar-gen2-msiof"; + reg = <0 0xe6e20000 0 0x0064>; + interrupts = ; + clocks = <&mstp0_clks R8A7742_CLK_MSIOF0>; + dmas = <&dmac0 0x51>, <&dmac0 0x52>, + <&dmac1 0x51>, <&dmac1 0x52>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + msiof1: spi@e6e10000 { + compatible = "renesas,msiof-r8a7742", + "renesas,rcar-gen2-msiof"; + reg = <0 0xe6e10000 0 0x0064>; + interrupts = ; + clocks = <&mstp2_clks R8A7742_CLK_MSIOF1>; + dmas = <&dmac0 0x55>, <&dmac0 0x56>, + <&dmac1 0x55>, <&dmac1 0x56>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + msiof2: spi@e6e00000 { + compatible = "renesas,msiof-r8a7742", + "renesas,rcar-gen2-msiof"; + reg = <0 0xe6e00000 0 0x0064>; + interrupts = ; + clocks = <&mstp2_clks R8A7742_CLK_MSIOF2>; + dmas = <&dmac0 0x41>, <&dmac0 0x42>, + <&dmac1 0x41>, <&dmac1 0x42>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + msiof3: spi@e6c90000 { + compatible = "renesas,msiof-r8a7742", + "renesas,rcar-gen2-msiof"; + reg = <0 0xe6c90000 0 0x0064>; + interrupts = ; + clocks = <&mstp2_clks R8A7742_CLK_MSIOF3>; + dmas = <&dmac0 0x45>, <&dmac0 0x46>, + <&dmac1 0x45>, <&dmac1 0x46>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + sdhi0: mmc@ee100000 { compatible = "renesas,sdhi-r8a7742", "renesas,rcar-gen2-sdhi"; From 7e400df3a0d54049ed6b76c2fff100dcf29c636d Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Wed, 2 Sep 2020 17:05:17 +0100 Subject: [PATCH 0927/1149] ARM: dts: r8a7742-iwg21d-q7: Enable cmt0 commit 4304d880a1c3676f21e60dc3bb919ff6e7d10ebf upstream. Enable cmt0 support on r8a7742-iwg21d-q7 board. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/20200806183152.11809-2-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: Ported the patch from linux next] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742-iwg21d-q7.dts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts index 3197aa5852f9..1c7e58d47d73 100644 --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts @@ -60,6 +60,10 @@ }; }; +&cmt0 { + status = "okay"; +}; + &pfc { avb_pins: avb { groups = "avb_mdio", "avb_gmii"; From f0bd59538e18d625913fa15881bf63ce5b4b7e58 Mon Sep 17 00:00:00 2001 From: Rob Herring Date: Fri, 4 Sep 2020 07:59:01 +0100 Subject: [PATCH 0928/1149] of: Add missing exports of node name compare functions commit 173ee3962959a1985a109f81539a403b5cd07ae7 upstream. Commit f42b0e18f2e5 ("of: add node name compare helper functions") failed to add the module exports to of_node_name_eq() and of_node_name_prefix(). Add them now. Fixes: f42b0e18f2e5 ("of: add node name compare helper functions") Signed-off-by: Rob Herring [PL: Fixes eeaa48eee492d ("drm: rcar-du: Support panels connected directly to the DPAD outputs")] Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek --- drivers/of/base.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/of/base.c b/drivers/of/base.c index b02f4b272e5b..4e6af7c6c792 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -67,6 +67,7 @@ bool of_node_name_eq(const struct device_node *np, const char *name) return (strlen(name) == len) && (strncmp(node_name, name, len) == 0); } +EXPORT_SYMBOL(of_node_name_eq); bool of_node_name_prefix(const struct device_node *np, const char *prefix) { @@ -75,6 +76,7 @@ bool of_node_name_prefix(const struct device_node *np, const char *prefix) return strncmp(kbasename(np->full_name), prefix, strlen(prefix)) == 0; } +EXPORT_SYMBOL(of_node_name_prefix); int of_n_addr_cells(struct device_node *np) { From 64825fe7c4c9120d1a3afe91936b29d3d24927db Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 4 Sep 2020 08:40:57 +0100 Subject: [PATCH 0929/1149] gpio: rcar: Avoid NULL pointer access in gpio_rcar_set_multiple() gpiochip_get_data() expects the controller probe to call gpiochip_add_data() before using it, where as the rcar-gpio driver probe has gpiochip_add() call thus resulting in NULL pointer access. Avoid this case by using gpio_to_priv() call. Fixes: 6e52cced1aa58 ("gpio: rcar: Implement gpiochip.set_multiple()") Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek --- drivers/gpio/gpio-rcar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-rcar.c b/drivers/gpio/gpio-rcar.c index e829f11aca8f..2778dcd96ae7 100644 --- a/drivers/gpio/gpio-rcar.c +++ b/drivers/gpio/gpio-rcar.c @@ -352,7 +352,7 @@ static void gpio_rcar_set(struct gpio_chip *chip, unsigned offset, int value) static void gpio_rcar_set_multiple(struct gpio_chip *chip, unsigned long *mask, unsigned long *bits) { - struct gpio_rcar_priv *p = gpiochip_get_data(chip); + struct gpio_rcar_priv *p = gpio_to_priv(chip); unsigned long flags; u32 val, bankmask; From e0c253001a05694089fb7ae3d69eb5609bad9c67 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Thu, 3 Sep 2020 15:42:58 +0100 Subject: [PATCH 0930/1149] dt-bindings: net: renesas,ether: Document R8A7742 SoC commit 75d728ed2b1e48b9801b6856147bbe26c28f3143 upstream. Document RZ/G1H (R8A7742) SoC bindings. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Signed-off-by: Rob Herring [PL: Patched text version of bindings file] Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek --- Documentation/devicetree/bindings/net/sh_eth.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/net/sh_eth.txt b/Documentation/devicetree/bindings/net/sh_eth.txt index 0115c85a2425..ead74a50ca02 100644 --- a/Documentation/devicetree/bindings/net/sh_eth.txt +++ b/Documentation/devicetree/bindings/net/sh_eth.txt @@ -5,6 +5,7 @@ interface contains. Required properties: - compatible: "renesas,gether-r8a7740" if the device is a part of R8A7740 SoC. + "renesas,ether-r8a7742" if the device is a part of R8A7742 SoC. "renesas,ether-r8a7743" if the device is a part of R8A7743 SoC. "renesas,ether-r8a7745" if the device is a part of R8A7745 SoC. "renesas,ether-r8a7778" if the device is a part of R8A7778 SoC. From 1f717a8177719472e173e1fe51fcf6e80cde701e Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Thu, 3 Sep 2020 15:42:59 +0100 Subject: [PATCH 0931/1149] sh_eth: Add compatible string for R8A7742 SoC Add "renesas,ether-r8a7742" to compatible list of sh_eth driver. Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek --- drivers/net/ethernet/renesas/sh_eth.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c index 15866e372b8c..ecccf5220fd4 100644 --- a/drivers/net/ethernet/renesas/sh_eth.c +++ b/drivers/net/ethernet/renesas/sh_eth.c @@ -3065,6 +3065,7 @@ static struct sh_eth_plat_data *sh_eth_parse_dt(struct device *dev) static const struct of_device_id sh_eth_match_table[] = { { .compatible = "renesas,gether-r8a7740", .data = &r8a7740_data }, + { .compatible = "renesas,ether-r8a7742", .data = &r8a779x_data }, { .compatible = "renesas,ether-r8a7743", .data = &r8a779x_data }, { .compatible = "renesas,ether-r8a7745", .data = &r8a779x_data }, { .compatible = "renesas,ether-r8a7778", .data = &r8a777x_data }, From c55ed04febbf1550458b03955a4088391de03d3f Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Thu, 3 Sep 2020 15:43:00 +0100 Subject: [PATCH 0932/1149] ARM: dts: r8a7742: Add Ether support commit 8cbef867e1c56ce57b942b751a033585f70b0547 upstream. Define the generic R8A7742 part of the Ether device node. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Wolfram Sang Link: https://lore.kernel.org/r/1589555337-5498-14-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [PL: changed clocks and power-domains properties, removed resets property, dropped renesas,rcar-gen2-ether] Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a7742.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index 694b20354575..2ebeccbda558 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -1121,6 +1121,18 @@ max-frequency = <97500000>; }; + ether: ethernet@ee700000 { + compatible = "renesas,ether-r8a7742"; + reg = <0 0xee700000 0 0x400>; + interrupts = ; + clocks = <&mstp8_clks R8A7742_CLK_ETHER>; + power-domains = <&cpg_clocks>; + phy-mode = "rmii"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + gic: interrupt-controller@f1001000 { compatible = "arm,gic-400"; #interrupt-cells = <3>; From 5626512584286efa449579d3c3d80de5ae4b90de Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Thu, 3 Sep 2020 15:43:01 +0100 Subject: [PATCH 0933/1149] ARM: dts: r8a7742: Drop undocumented compatible string from scifa2 node "renesas,rcar-gen2-scifa" compatible string was accidentally added as per upstream commit, fix this by dropping this string. Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a7742.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index 2ebeccbda558..cc452e243446 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -963,7 +963,7 @@ scifa2: serial@e6c60000 { compatible = "renesas,scifa-r8a7742", - "renesas,rcar-gen2-scifa", "renesas,scifa"; + "renesas,scifa"; reg = <0 0xe6c60000 0 0x40>; interrupts = ; clocks = <&mstp2_clks R8A7742_CLK_SCIFA2>; From 82aa3373c75d3d8f210fba7cc7dee09b68dd4535 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Thu, 3 Sep 2020 15:43:02 +0100 Subject: [PATCH 0934/1149] ARM: dts: r8a7742: Add [H]SCIF{A|B} support commit b2cb7d8d5f0c63615e38bfae2d632faf33aa8601 upstream. Describe [H]SCIF{A|B} ports in the R8A7742 device tree. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1588794695-27852-8-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [PL: changed clocks and power-domains properties, removed resets property] Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek --- arch/arm/boot/dts/r8a7742.dtsi | 145 +++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index cc452e243446..32ed4138dc1b 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -961,6 +961,34 @@ status = "disabled"; }; + scifa0: serial@e6c40000 { + compatible = "renesas,scifa-r8a7742", + "renesas,scifa"; + reg = <0 0xe6c40000 0 0x40>; + interrupts = ; + clocks = <&mstp2_clks R8A7742_CLK_SCIFA0>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x21>, <&dmac0 0x22>, + <&dmac1 0x21>, <&dmac1 0x22>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifa1: serial@e6c50000 { + compatible = "renesas,scifa-r8a7742", + "renesas,scifa"; + reg = <0 0xe6c50000 0 0x40>; + interrupts = ; + clocks = <&mstp2_clks R8A7742_CLK_SCIFA1>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x25>, <&dmac0 0x26>, + <&dmac1 0x25>, <&dmac1 0x26>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + scifa2: serial@e6c60000 { compatible = "renesas,scifa-r8a7742", "renesas,scifa"; @@ -1035,6 +1063,123 @@ status = "disabled"; }; + scifb0: serial@e6c20000 { + compatible = "renesas,scifb-r8a7742", + "renesas,scifb"; + reg = <0 0xe6c20000 0 0x100>; + interrupts = ; + clocks = <&mstp2_clks R8A7742_CLK_SCIFB0>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x3d>, <&dmac0 0x3e>, + <&dmac1 0x3d>, <&dmac1 0x3e>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifb1: serial@e6c30000 { + compatible = "renesas,scifb-r8a7742", + "renesas,scifb"; + reg = <0 0xe6c30000 0 0x100>; + interrupts = ; + clocks = <&mstp2_clks R8A7742_CLK_SCIFB1>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x19>, <&dmac0 0x1a>, + <&dmac1 0x19>, <&dmac1 0x1a>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scifb2: serial@e6ce0000 { + compatible = "renesas,scifb-r8a7742", + "renesas,scifb"; + reg = <0 0xe6ce0000 0 0x100>; + interrupts = ; + clocks = <&mstp2_clks R8A7742_CLK_SCIFB2>; + clock-names = "sci_ick"; + dmas = <&dmac0 0x1d>, <&dmac0 0x1e>, + <&dmac1 0x1d>, <&dmac1 0x1e>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scif0: serial@e6e60000 { + compatible = "renesas,scif-r8a7742", + "renesas,scif"; + reg = <0 0xe6e60000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A7742_CLK_SCIF0>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x29>, <&dmac0 0x2a>, + <&dmac1 0x29>, <&dmac1 0x2a>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scif1: serial@e6e68000 { + compatible = "renesas,scif-r8a7742", + "renesas,scif"; + reg = <0 0xe6e68000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A7742_CLK_SCIF1>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x2d>, <&dmac0 0x2e>, + <&dmac1 0x2d>, <&dmac1 0x2e>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + scif2: serial@e6e56000 { + compatible = "renesas,scif-r8a7742", + "renesas,scif"; + reg = <0 0xe6e56000 0 0x40>; + interrupts = ; + clocks = <&mstp7_clks R8A7742_CLK_SCIF2>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x2b>, <&dmac0 0x2c>, + <&dmac1 0x2b>, <&dmac1 0x2c>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + hscif0: serial@e62c0000 { + compatible = "renesas,hscif-r8a7742", + "renesas,hscif"; + reg = <0 0xe62c0000 0 0x60>; + interrupts = ; + clocks = <&mstp7_clks R8A7742_CLK_HSCIF0>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x39>, <&dmac0 0x3a>, + <&dmac1 0x39>, <&dmac1 0x3a>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + hscif1: serial@e62c8000 { + compatible = "renesas,hscif-r8a7742", + "renesas,hscif"; + reg = <0 0xe62c8000 0 0x60>; + interrupts = ; + clocks = <&mstp7_clks R8A7742_CLK_HSCIF1>, + <&zs_clk>, <&scif_clk>; + clock-names = "sci_ick", "brg_int", "scif_clk"; + dmas = <&dmac0 0x4d>, <&dmac0 0x4e>, + <&dmac1 0x4d>, <&dmac1 0x4e>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + sdhi0: mmc@ee100000 { compatible = "renesas,sdhi-r8a7742", "renesas,rcar-gen2-sdhi"; From b075261ef294360f3b54c947fe7c6301c35fd91f Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Thu, 3 Sep 2020 15:43:03 +0100 Subject: [PATCH 0935/1149] ARM: dts: r8a7742-iwg21d-q7-dbcm-ca: Add device tree for camera DB commit 91cebe35d1f5a335ef3de80027a34d9fd04a7ae9 upstream. Add support for the camera daughter board which is connected to iWave's RZ/G1H Qseven carrier board. Also enable ttySC[0135] and ethernet1 interfaces. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1591552659-21314-1-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek --- arch/arm/boot/dts/Makefile | 1 + .../boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts | 96 +++++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 09d505aa0d3d..0bc7ae92cdf7 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -547,6 +547,7 @@ dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += \ r8a73a4-ape6evm.dtb \ r8a7740-armadillo800eva.dtb \ r8a7742-iwg21d-q7.dtb \ + r8a7742-iwg21d-q7-dbcm-ca.dtb \ r8a7743-iwg20d-q7.dtb \ r8a7743-iwg20d-q7-dbcm-ca.dtb \ r8a7744-iwg20d-q7.dtb \ diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts b/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts new file mode 100644 index 000000000000..951820dfdf1c --- /dev/null +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts @@ -0,0 +1,96 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Device Tree Source for the iWave-RZ/G1H Qseven board development + * platform with camera daughter board + * + * Copyright (C) 2020 Renesas Electronics Corp. + */ + +#include "r8a7742-iwg21d-q7.dts" + +/ { + model = "iWave Systems RZ/G1H Qseven development platform with camera add-on"; + compatible = "iwave,g21d", "iwave,g21m", "renesas,r8a7742"; + + aliases { + serial0 = &scif0; + serial1 = &scif1; + serial3 = &scifb1; + serial5 = &hscif0; + ethernet1 = ðer; + }; +}; + +&avb { + /* Pins shared with VIN0, keep status disabled */ + status = "disabled"; +}; + +ðer { + pinctrl-0 = <ðer_pins>; + pinctrl-names = "default"; + + phy-handle = <&phy1>; + renesas,ether-link-active-low; + status = "okay"; + + phy1: ethernet-phy@1 { + reg = <1>; + micrel,led-mode = <1>; + }; +}; + +&hscif0 { + pinctrl-0 = <&hscif0_pins>; + pinctrl-names = "default"; + uart-has-rtscts; + status = "okay"; +}; + +&pfc { + ether_pins: ether { + groups = "eth_mdio", "eth_rmii"; + function = "eth"; + }; + + hscif0_pins: hscif0 { + groups = "hscif0_data", "hscif0_ctrl"; + function = "hscif0"; + }; + + scif0_pins: scif0 { + groups = "scif0_data"; + function = "scif0"; + }; + + scif1_pins: scif1 { + groups = "scif1_data"; + function = "scif1"; + }; + + scifb1_pins: scifb1 { + groups = "scifb1_data"; + function = "scifb1"; + }; +}; + +&scif0 { + pinctrl-0 = <&scif0_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&scif1 { + pinctrl-0 = <&scif1_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&scifb1 { + pinctrl-0 = <&scifb1_pins>; + pinctrl-names = "default"; + status = "okay"; + + rts-gpios = <&gpio4 21 GPIO_ACTIVE_LOW>; + cts-gpios = <&gpio4 17 GPIO_ACTIVE_LOW>; +}; From 04100cf24bc6c17503e562e662e3105a2dd46297 Mon Sep 17 00:00:00 2001 From: Viresh Kumar Date: Wed, 9 Sep 2020 12:42:23 +0800 Subject: [PATCH 0936/1149] PM / OPP: Parse clock-latency and voltage-tolerance for v1 bindings V2 bindings have better support for clock-latency and voltage-tolerance and doesn't need special care. To use callbacks, like dev_pm_opp_get_max_{transition|volt}_latency(), irrespective of the bindings, the core needs to know clock-latency/voltage-tolerance for the earlier bindings. This patch reads clock-latency/voltage-tolerance from the device node, irrespective of the bindings (to keep it simple) and use them only for V1 bindings. Signed-off-by: Viresh Kumar Reviewed-by: Stephen Boyd Signed-off-by: Rafael J. Wysocki Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/base/power/opp/core.c | 20 ++++++++++++++++++++ drivers/base/power/opp/opp.h | 6 ++++++ 2 files changed, 26 insertions(+) diff --git a/drivers/base/power/opp/core.c b/drivers/base/power/opp/core.c index 1e0a2ddf7332..f983d5d30fa9 100644 --- a/drivers/base/power/opp/core.c +++ b/drivers/base/power/opp/core.c @@ -505,6 +505,7 @@ static struct device_opp *_add_device_opp(struct device *dev) { struct device_opp *dev_opp; struct device_list_opp *list_dev; + struct device_node *np; /* Check for existing list for 'dev' first */ dev_opp = _find_device_opp(dev); @@ -527,6 +528,21 @@ static struct device_opp *_add_device_opp(struct device *dev) return NULL; } + /* + * Only required for backward compatibility with v1 bindings, but isn't + * harmful for other cases. And so we do it unconditionally. + */ + np = of_node_get(dev->of_node); + if (np) { + u32 val; + + if (!of_property_read_u32(np, "clock-latency", &val)) + dev_opp->clock_latency_ns_max = val; + of_property_read_u32(np, "voltage-tolerance", + &dev_opp->voltage_tolerance_v1); + of_node_put(np); + } + srcu_init_notifier_head(&dev_opp->srcu_head); INIT_LIST_HEAD(&dev_opp->opp_list); @@ -759,6 +775,7 @@ static int _opp_add_v1(struct device *dev, unsigned long freq, long u_volt, { struct device_opp *dev_opp; struct dev_pm_opp *new_opp; + unsigned long tol; int ret; /* Hold our list modification lock here */ @@ -772,7 +789,10 @@ static int _opp_add_v1(struct device *dev, unsigned long freq, long u_volt, /* populate the opp table */ new_opp->rate = freq; + tol = u_volt * dev_opp->voltage_tolerance_v1 / 100; new_opp->u_volt = u_volt; + new_opp->u_volt_min = u_volt - tol; + new_opp->u_volt_max = u_volt + tol; new_opp->available = true; new_opp->dynamic = dynamic; diff --git a/drivers/base/power/opp/opp.h b/drivers/base/power/opp/opp.h index 690638ef36ee..7f0d7c8bfef0 100644 --- a/drivers/base/power/opp/opp.h +++ b/drivers/base/power/opp/opp.h @@ -135,6 +135,8 @@ struct device_list_opp { * @dentry: debugfs dentry pointer of the real device directory (not links). * @dentry_name: Name of the real dentry. * + * @voltage_tolerance_v1: In percentage, for v1 bindings only. + * * This is an internal data structure maintaining the link to opps attached to * a device. This structure is not meant to be shared to users as it is * meant for book keeping and private to OPP library. @@ -153,6 +155,10 @@ struct device_opp { struct device_node *np; unsigned long clock_latency_ns_max; + + /* For backward compatibility with v1 bindings */ + unsigned int voltage_tolerance_v1; + bool shared_opp; struct dev_pm_opp *suspend_opp; From 3959823659d527c557cb17db745b35df3711955e Mon Sep 17 00:00:00 2001 From: Dave Gerlach Date: Wed, 9 Sep 2020 12:42:24 +0800 Subject: [PATCH 0937/1149] PM / OPP: Expose _of_get_opp_desc_node as dev_pm_opp API commit 0764c604c8128f17fd740ff8b1701d0a1301eb7e upstream. Rename _of_get_opp_desc_node to dev_pm_opp_of_get_opp_desc_node and add it to include/linux/pm_opp.h to allow other drivers, such as platform OPP and cpufreq drivers, to make use of it. Acked-by: Viresh Kumar Signed-off-by: Dave Gerlach Signed-off-by: Rafael J. Wysocki [wens@csie.org: backported to pre-OF-move files] Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/base/power/opp/core.c | 5 +++-- drivers/base/power/opp/cpu.c | 4 ++-- include/linux/pm_opp.h | 6 ++++++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/base/power/opp/core.c b/drivers/base/power/opp/core.c index f983d5d30fa9..c41bf5f1a038 100644 --- a/drivers/base/power/opp/core.c +++ b/drivers/base/power/opp/core.c @@ -1488,7 +1488,7 @@ void dev_pm_opp_of_remove_table(struct device *dev) EXPORT_SYMBOL_GPL(dev_pm_opp_of_remove_table); /* Returns opp descriptor node for a device, caller must do of_node_put() */ -struct device_node *_of_get_opp_desc_node(struct device *dev) +struct device_node *dev_pm_opp_of_get_opp_desc_node(struct device *dev) { /* * TODO: Support for multiple OPP tables. @@ -1499,6 +1499,7 @@ struct device_node *_of_get_opp_desc_node(struct device *dev) return of_parse_phandle(dev->of_node, "operating-points-v2", 0); } +EXPORT_SYMBOL_GPL(dev_pm_opp_of_get_opp_desc_node); /* Initializes OPP tables based on new bindings */ static int _of_add_opp_table_v2(struct device *dev, struct device_node *opp_np) @@ -1627,7 +1628,7 @@ int dev_pm_opp_of_add_table(struct device *dev) * OPPs have two version of bindings now. The older one is deprecated, * try for the new binding first. */ - opp_np = _of_get_opp_desc_node(dev); + opp_np = dev_pm_opp_of_get_opp_desc_node(dev); if (!opp_np) { /* * Try old-deprecated bindings for backward compatibility with diff --git a/drivers/base/power/opp/cpu.c b/drivers/base/power/opp/cpu.c index a0db8b3575f3..29c5b42eff34 100644 --- a/drivers/base/power/opp/cpu.c +++ b/drivers/base/power/opp/cpu.c @@ -227,7 +227,7 @@ int dev_pm_opp_of_get_sharing_cpus(struct device *cpu_dev, cpumask_var_t cpumask int cpu, ret = 0; /* Get OPP descriptor node */ - np = _of_get_opp_desc_node(cpu_dev); + np = dev_pm_opp_of_get_opp_desc_node(cpu_dev); if (!np) { dev_dbg(cpu_dev, "%s: Couldn't find cpu_dev node.\n", __func__); return -ENOENT; @@ -252,7 +252,7 @@ int dev_pm_opp_of_get_sharing_cpus(struct device *cpu_dev, cpumask_var_t cpumask } /* Get OPP descriptor node */ - tmp_np = _of_get_opp_desc_node(tcpu_dev); + tmp_np = dev_pm_opp_of_get_opp_desc_node(tcpu_dev); if (!tmp_np) { dev_err(tcpu_dev, "%s: Couldn't find tcpu_dev node.\n", __func__); diff --git a/include/linux/pm_opp.h b/include/linux/pm_opp.h index 95403d2ccaf5..4a8f5b33d702 100644 --- a/include/linux/pm_opp.h +++ b/include/linux/pm_opp.h @@ -160,6 +160,7 @@ int dev_pm_opp_of_cpumask_add_table(cpumask_var_t cpumask); void dev_pm_opp_of_cpumask_remove_table(cpumask_var_t cpumask); int dev_pm_opp_of_get_sharing_cpus(struct device *cpu_dev, cpumask_var_t cpumask); int dev_pm_opp_set_sharing_cpus(struct device *cpu_dev, cpumask_var_t cpumask); +struct device_node *dev_pm_opp_of_get_opp_desc_node(struct device *dev); #else static inline int dev_pm_opp_of_add_table(struct device *dev) { @@ -188,6 +189,11 @@ static inline int dev_pm_opp_set_sharing_cpus(struct device *cpu_dev, cpumask_va { return -ENOSYS; } + +static inline struct device_node *dev_pm_opp_of_get_opp_desc_node(struct device *dev) +{ + return NULL; +} #endif #endif /* __LINUX_OPP_H__ */ From 557418941c5a1dff6a7a75f762c11ceb573bdfc7 Mon Sep 17 00:00:00 2001 From: Dave Gerlach Date: Wed, 9 Sep 2020 12:42:25 +0800 Subject: [PATCH 0938/1149] Documentation: dt: add bindings for ti-cpufreq commit 953a0f18337406ab041252ce5a62db5d173bee5f upstream. Add the device tree bindings document for the TI CPUFreq/OPP driver on AM33xx, AM43xx, DRA7xx, and AM57xx SoCs. The operating-points-v2 binding allows us to provide an opp-supported-hw property for each OPP to define when it is available. This driver is responsible for reading and parsing registers to determine which OPPs can be selectively enabled based on the specific SoC in use by matching against the opp-supported-hw data. Acked-by: Viresh Kumar Signed-off-by: Dave Gerlach Acked-by: Rob Herring Signed-off-by: Rafael J. Wysocki Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- .../bindings/cpufreq/ti-cpufreq.txt | 128 ++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 Documentation/devicetree/bindings/cpufreq/ti-cpufreq.txt diff --git a/Documentation/devicetree/bindings/cpufreq/ti-cpufreq.txt b/Documentation/devicetree/bindings/cpufreq/ti-cpufreq.txt new file mode 100644 index 000000000000..ba0e15ad5bd9 --- /dev/null +++ b/Documentation/devicetree/bindings/cpufreq/ti-cpufreq.txt @@ -0,0 +1,128 @@ +TI CPUFreq and OPP bindings +================================ + +Certain TI SoCs, like those in the am335x, am437x, am57xx, and dra7xx +families support different OPPs depending on the silicon variant in use. +The ti-cpufreq driver can use revision and an efuse value from the SoC to +provide the OPP framework with supported hardware information. This is +used to determine which OPPs from the operating-points-v2 table get enabled +when it is parsed by the OPP framework. + +Required properties: +-------------------- +In 'cpus' nodes: +- operating-points-v2: Phandle to the operating-points-v2 table to use. + +In 'operating-points-v2' table: +- compatible: Should be + - 'operating-points-v2-ti-cpu' for am335x, am43xx, and dra7xx/am57xx SoCs +- syscon: A phandle pointing to a syscon node representing the control module + register space of the SoC. + +Optional properties: +-------------------- +For each opp entry in 'operating-points-v2' table: +- opp-supported-hw: Two bitfields indicating: + 1. Which revision of the SoC the OPP is supported by + 2. Which eFuse bits indicate this OPP is available + + A bitwise AND is performed against these values and if any bit + matches, the OPP gets enabled. + +Example: +-------- + +/* From arch/arm/boot/dts/am33xx.dtsi */ +cpus { + #address-cells = <1>; + #size-cells = <0>; + cpu@0 { + compatible = "arm,cortex-a8"; + device_type = "cpu"; + reg = <0>; + + operating-points-v2 = <&cpu0_opp_table>; + + clocks = <&dpll_mpu_ck>; + clock-names = "cpu"; + + clock-latency = <300000>; /* From omap-cpufreq driver */ + }; +}; + +/* + * cpu0 has different OPPs depending on SoC revision and some on revisions + * 0x2 and 0x4 have eFuse bits that indicate if they are available or not + */ +cpu0_opp_table: opp-table { + compatible = "operating-points-v2-ti-cpu"; + syscon = <&scm_conf>; + + /* + * The three following nodes are marked with opp-suspend + * because they can not be enabled simultaneously on a + * single SoC. + */ + opp50@300000000 { + opp-hz = /bits/ 64 <300000000>; + opp-microvolt = <950000 931000 969000>; + opp-supported-hw = <0x06 0x0010>; + opp-suspend; + }; + + opp100@275000000 { + opp-hz = /bits/ 64 <275000000>; + opp-microvolt = <1100000 1078000 1122000>; + opp-supported-hw = <0x01 0x00FF>; + opp-suspend; + }; + + opp100@300000000 { + opp-hz = /bits/ 64 <300000000>; + opp-microvolt = <1100000 1078000 1122000>; + opp-supported-hw = <0x06 0x0020>; + opp-suspend; + }; + + opp100@500000000 { + opp-hz = /bits/ 64 <500000000>; + opp-microvolt = <1100000 1078000 1122000>; + opp-supported-hw = <0x01 0xFFFF>; + }; + + opp100@600000000 { + opp-hz = /bits/ 64 <600000000>; + opp-microvolt = <1100000 1078000 1122000>; + opp-supported-hw = <0x06 0x0040>; + }; + + opp120@600000000 { + opp-hz = /bits/ 64 <600000000>; + opp-microvolt = <1200000 1176000 1224000>; + opp-supported-hw = <0x01 0xFFFF>; + }; + + opp120@720000000 { + opp-hz = /bits/ 64 <720000000>; + opp-microvolt = <1200000 1176000 1224000>; + opp-supported-hw = <0x06 0x0080>; + }; + + oppturbo@720000000 { + opp-hz = /bits/ 64 <720000000>; + opp-microvolt = <1260000 1234800 1285200>; + opp-supported-hw = <0x01 0xFFFF>; + }; + + oppturbo@800000000 { + opp-hz = /bits/ 64 <800000000>; + opp-microvolt = <1260000 1234800 1285200>; + opp-supported-hw = <0x06 0x0100>; + }; + + oppnitro@1000000000 { + opp-hz = /bits/ 64 <1000000000>; + opp-microvolt = <1325000 1298500 1351500>; + opp-supported-hw = <0x04 0x0200>; + }; +}; From d856d3f81d80f5aa336acb55575ab242fc3ca0b4 Mon Sep 17 00:00:00 2001 From: Dave Gerlach Date: Wed, 9 Sep 2020 12:42:26 +0800 Subject: [PATCH 0939/1149] cpufreq: ti: Add cpufreq driver to determine available OPPs at runtime commit e13cf046cd70894393a1085ca39da7ef751353fb upstream. Some TI SoCs, like those in the AM335x, AM437x, DRA7x, and AM57x families, have different OPPs available for the MPU depending on which specific variant of the SoC is in use. This can be determined through use of the revision and an eFuse register present in the silicon. Introduce a ti-cpufreq driver that can read the aformentioned values and provide them as version matching data to the opp framework. Through this the opp-supported-hw dt binding that is part of the operating-points-v2 table can be used to indicate availability of OPPs for each device. This driver also creates the "cpufreq-dt" platform_device after passing the version matching data to the OPP framework so that the cpufreq-dt handles the actual cpufreq implementation. Even without the necessary data to pass the version matching data the driver will still create this device to maintain backwards compatibility with operating-points v1 tables. Acked-by: Viresh Kumar Signed-off-by: Dave Gerlach Signed-off-by: Rafael J. Wysocki Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/cpufreq/Kconfig.arm | 11 ++ drivers/cpufreq/Makefile | 1 + drivers/cpufreq/ti-cpufreq.c | 272 +++++++++++++++++++++++++++++++++++ 3 files changed, 284 insertions(+) create mode 100644 drivers/cpufreq/ti-cpufreq.c diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm index eed1e073d96d..6b834112d857 100644 --- a/drivers/cpufreq/Kconfig.arm +++ b/drivers/cpufreq/Kconfig.arm @@ -231,6 +231,17 @@ config ARM_TEGRA124_CPUFREQ help This adds the CPUFreq driver support for Tegra124 SOCs. +config ARM_TI_CPUFREQ + bool "Texas Instruments CPUFreq support" + depends on ARCH_OMAP2PLUS + help + This driver enables valid OPPs on the running platform based on + values contained within the SoC in use. Enable this in order to + use the cpufreq-dt driver on all Texas Instruments platforms that + provide dt based operating-points-v2 tables with opp-supported-hw + data provided. Required for cpufreq support on AM335x, AM437x, + DRA7x, and AM57x platforms. + config ARM_PXA2xx_CPUFREQ tristate "Intel PXA2xx CPUfreq driver" depends on PXA27x || PXA25x diff --git a/drivers/cpufreq/Makefile b/drivers/cpufreq/Makefile index c0af1a1281c8..6e889596d9a1 100644 --- a/drivers/cpufreq/Makefile +++ b/drivers/cpufreq/Makefile @@ -75,6 +75,7 @@ obj-$(CONFIG_ARM_SCPI_CPUFREQ) += scpi-cpufreq.o obj-$(CONFIG_ARM_SPEAR_CPUFREQ) += spear-cpufreq.o obj-$(CONFIG_ARM_TEGRA20_CPUFREQ) += tegra20-cpufreq.o obj-$(CONFIG_ARM_TEGRA124_CPUFREQ) += tegra124-cpufreq.o +obj-$(CONFIG_ARM_TI_CPUFREQ) += ti-cpufreq.o obj-$(CONFIG_ARM_VEXPRESS_SPC_CPUFREQ) += vexpress-spc-cpufreq.o obj-$(CONFIG_ACPI_CPPC_CPUFREQ) += cppc_cpufreq.o diff --git a/drivers/cpufreq/ti-cpufreq.c b/drivers/cpufreq/ti-cpufreq.c new file mode 100644 index 000000000000..7ff7ae3c3911 --- /dev/null +++ b/drivers/cpufreq/ti-cpufreq.c @@ -0,0 +1,272 @@ +/* + * TI CPUFreq/OPP hw-supported driver + * + * Copyright (C) 2016-2017 Texas Instruments, Inc. + * Dave Gerlach + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * 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. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define REVISION_MASK 0xF +#define REVISION_SHIFT 28 + +#define AM33XX_800M_ARM_MPU_MAX_FREQ 0x1E2F +#define AM43XX_600M_ARM_MPU_MAX_FREQ 0xFFA + +#define DRA7_EFUSE_HAS_OD_MPU_OPP 11 +#define DRA7_EFUSE_HAS_HIGH_MPU_OPP 15 +#define DRA7_EFUSE_HAS_ALL_MPU_OPP 23 + +#define DRA7_EFUSE_NOM_MPU_OPP BIT(0) +#define DRA7_EFUSE_OD_MPU_OPP BIT(1) +#define DRA7_EFUSE_HIGH_MPU_OPP BIT(2) + +#define VERSION_COUNT 2 + +struct ti_cpufreq_data; + +struct ti_cpufreq_soc_data { + unsigned long (*efuse_xlate)(struct ti_cpufreq_data *opp_data, + unsigned long efuse); + unsigned long efuse_fallback; + unsigned long efuse_offset; + unsigned long efuse_mask; + unsigned long efuse_shift; + unsigned long rev_offset; +}; + +struct ti_cpufreq_data { + struct device *cpu_dev; + struct device_node *opp_node; + struct regmap *syscon; + const struct ti_cpufreq_soc_data *soc_data; +}; + +static unsigned long amx3_efuse_xlate(struct ti_cpufreq_data *opp_data, + unsigned long efuse) +{ + if (!efuse) + efuse = opp_data->soc_data->efuse_fallback; + /* AM335x and AM437x use "OPP disable" bits, so invert */ + return ~efuse; +} + +static unsigned long dra7_efuse_xlate(struct ti_cpufreq_data *opp_data, + unsigned long efuse) +{ + unsigned long calculated_efuse = DRA7_EFUSE_NOM_MPU_OPP; + + /* + * The efuse on dra7 and am57 parts contains a specific + * value indicating the highest available OPP. + */ + + switch (efuse) { + case DRA7_EFUSE_HAS_ALL_MPU_OPP: + case DRA7_EFUSE_HAS_HIGH_MPU_OPP: + calculated_efuse |= DRA7_EFUSE_HIGH_MPU_OPP; + case DRA7_EFUSE_HAS_OD_MPU_OPP: + calculated_efuse |= DRA7_EFUSE_OD_MPU_OPP; + } + + return calculated_efuse; +} + +static struct ti_cpufreq_soc_data am3x_soc_data = { + .efuse_xlate = amx3_efuse_xlate, + .efuse_fallback = AM33XX_800M_ARM_MPU_MAX_FREQ, + .efuse_offset = 0x07fc, + .efuse_mask = 0x1fff, + .rev_offset = 0x600, +}; + +static struct ti_cpufreq_soc_data am4x_soc_data = { + .efuse_xlate = amx3_efuse_xlate, + .efuse_fallback = AM43XX_600M_ARM_MPU_MAX_FREQ, + .efuse_offset = 0x0610, + .efuse_mask = 0x3f, + .rev_offset = 0x600, +}; + +static struct ti_cpufreq_soc_data dra7_soc_data = { + .efuse_xlate = dra7_efuse_xlate, + .efuse_offset = 0x020c, + .efuse_mask = 0xf80000, + .efuse_shift = 19, + .rev_offset = 0x204, +}; + +/** + * ti_cpufreq_get_efuse() - Parse and return efuse value present on SoC + * @opp_data: pointer to ti_cpufreq_data context + * @efuse_value: Set to the value parsed from efuse + * + * Returns error code if efuse not read properly. + */ +static int ti_cpufreq_get_efuse(struct ti_cpufreq_data *opp_data, + u32 *efuse_value) +{ + struct device *dev = opp_data->cpu_dev; + u32 efuse; + int ret; + + ret = regmap_read(opp_data->syscon, opp_data->soc_data->efuse_offset, + &efuse); + if (ret) { + dev_err(dev, + "Failed to read the efuse value from syscon: %d\n", + ret); + return ret; + } + + efuse = (efuse & opp_data->soc_data->efuse_mask); + efuse >>= opp_data->soc_data->efuse_shift; + + *efuse_value = opp_data->soc_data->efuse_xlate(opp_data, efuse); + + return 0; +} + +/** + * ti_cpufreq_get_rev() - Parse and return rev value present on SoC + * @opp_data: pointer to ti_cpufreq_data context + * @revision_value: Set to the value parsed from revision register + * + * Returns error code if revision not read properly. + */ +static int ti_cpufreq_get_rev(struct ti_cpufreq_data *opp_data, + u32 *revision_value) +{ + struct device *dev = opp_data->cpu_dev; + u32 revision; + int ret; + + ret = regmap_read(opp_data->syscon, opp_data->soc_data->rev_offset, + &revision); + if (ret) { + dev_err(dev, + "Failed to read the revision number from syscon: %d\n", + ret); + return ret; + } + + *revision_value = BIT((revision >> REVISION_SHIFT) & REVISION_MASK); + + return 0; +} + +static int ti_cpufreq_setup_syscon_register(struct ti_cpufreq_data *opp_data) +{ + struct device *dev = opp_data->cpu_dev; + struct device_node *np = opp_data->opp_node; + + opp_data->syscon = syscon_regmap_lookup_by_phandle(np, + "syscon"); + if (IS_ERR(opp_data->syscon)) { + dev_err(dev, + "\"syscon\" is missing, cannot use OPPv2 table.\n"); + return PTR_ERR(opp_data->syscon); + } + + return 0; +} + +static const struct of_device_id ti_cpufreq_of_match[] = { + { .compatible = "ti,am33xx", .data = &am3x_soc_data, }, + { .compatible = "ti,am4372", .data = &am4x_soc_data, }, + { .compatible = "ti,dra7", .data = &dra7_soc_data }, + {}, +}; + +static int ti_cpufreq_init(void) +{ + u32 version[VERSION_COUNT]; + struct device_node *np; + const struct of_device_id *match; + struct ti_cpufreq_data *opp_data; + int ret; + + np = of_find_node_by_path("/"); + match = of_match_node(ti_cpufreq_of_match, np); + if (!match) + return -ENODEV; + + opp_data = kzalloc(sizeof(*opp_data), GFP_KERNEL); + if (!opp_data) + return -ENOMEM; + + opp_data->soc_data = match->data; + + opp_data->cpu_dev = get_cpu_device(0); + if (!opp_data->cpu_dev) { + pr_err("%s: Failed to get device for CPU0\n", __func__); + return -ENODEV; + } + + opp_data->opp_node = dev_pm_opp_of_get_opp_desc_node(opp_data->cpu_dev); + if (!opp_data->opp_node) { + dev_info(opp_data->cpu_dev, + "OPP-v2 not supported, cpufreq-dt will attempt to use legacy tables.\n"); + goto register_cpufreq_dt; + } + + ret = ti_cpufreq_setup_syscon_register(opp_data); + if (ret) + goto fail_put_node; + + /* + * OPPs determine whether or not they are supported based on + * two metrics: + * 0 - SoC Revision + * 1 - eFuse value + */ + ret = ti_cpufreq_get_rev(opp_data, &version[0]); + if (ret) + goto fail_put_node; + + ret = ti_cpufreq_get_efuse(opp_data, &version[1]); + if (ret) + goto fail_put_node; + + of_node_put(opp_data->opp_node); + + ret = PTR_ERR_OR_ZERO(dev_pm_opp_set_supported_hw(opp_data->cpu_dev, + version, VERSION_COUNT)); + if (ret) { + dev_err(opp_data->cpu_dev, + "Failed to set supported hardware\n"); + goto fail_put_node; + } + +register_cpufreq_dt: + platform_device_register_simple("cpufreq-dt", -1, NULL, 0); + + return 0; + +fail_put_node: + of_node_put(opp_data->opp_node); + + return ret; +} +module_init(ti_cpufreq_init); + +MODULE_DESCRIPTION("TI CPUFreq/OPP hw-supported driver"); +MODULE_AUTHOR("Dave Gerlach "); +MODULE_LICENSE("GPL v2"); From 1619d3097f76cf60eec8f69ec292c42dbe80c0a4 Mon Sep 17 00:00:00 2001 From: Christophe Jaillet Date: Wed, 9 Sep 2020 12:42:27 +0800 Subject: [PATCH 0940/1149] cpufreq: ti: Fix 'of_node_put' being called twice in error handling path commit 9a6e91d08e7707baa2f824257342ca7efcb199bc upstream. If 'dev_pm_opp_set_supported_hw()' fails, 'opp_data->opp_node' refcount will be decremented 2 times. One, just a few lines above, and another one in the error handling path. Fix it by simply moving the 'of_node_put' call of the normal path. Signed-off-by: Christophe JAILLET Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/cpufreq/ti-cpufreq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/cpufreq/ti-cpufreq.c b/drivers/cpufreq/ti-cpufreq.c index 7ff7ae3c3911..1c63e96cba1f 100644 --- a/drivers/cpufreq/ti-cpufreq.c +++ b/drivers/cpufreq/ti-cpufreq.c @@ -245,8 +245,6 @@ static int ti_cpufreq_init(void) if (ret) goto fail_put_node; - of_node_put(opp_data->opp_node); - ret = PTR_ERR_OR_ZERO(dev_pm_opp_set_supported_hw(opp_data->cpu_dev, version, VERSION_COUNT)); if (ret) { @@ -255,6 +253,8 @@ static int ti_cpufreq_init(void) goto fail_put_node; } + of_node_put(opp_data->opp_node); + register_cpufreq_dt: platform_device_register_simple("cpufreq-dt", -1, NULL, 0); From e336f6a317e55c770ec69f21b24674e81870c51b Mon Sep 17 00:00:00 2001 From: Zumeng Chen Date: Wed, 9 Sep 2020 12:42:28 +0800 Subject: [PATCH 0941/1149] cpufreq: ti-cpufreq: kfree opp_data when failure commit 05829d9431df1bf6de98679fbcfbad282c1c55a4 upstream. memory leakage was found by kmemleak. opp_data needs to be freed when failure, including fail_put_node. unreferenced object 0xccdd4c40 (size 64): comm "swapper", pid 1, jiffies 4294938465 (age 888.520s) hex dump (first 32 bytes): 00 7c 00 c1 98 69 d8 ce 00 24 03 ce 00 24 03 ce .|...i...$...$.. 20 35 23 c1 00 00 00 00 00 00 00 00 00 00 00 00 5#............. backtrace: [] kmem_cache_alloc_trace+0x2c4/0x3cc [] ti_cpufreq_probe+0x6c/0x334 [] platform_drv_probe+0x60/0xc0 [] driver_probe_device+0x218/0x2c4 [] __device_attach_driver+0xa8/0xdc [] bus_for_each_drv+0x70/0xa4 [] __device_attach+0xc0/0x124 [] device_initial_probe+0x1c/0x20 [] bus_probe_device+0x94/0x9c [] device_add+0x404/0x590 [] platform_device_add+0x11c/0x230 [] platform_device_register_full+0x10c/0x128 [] ti_cpufreq_init+0x44/0x50 [] do_one_initcall+0x54/0x180 [] kernel_init_freeable+0x270/0x33c [] kernel_init+0x18/0x124 Signed-off-by: Zumeng Chen Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/cpufreq/ti-cpufreq.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/cpufreq/ti-cpufreq.c b/drivers/cpufreq/ti-cpufreq.c index 1c63e96cba1f..36627b2b256f 100644 --- a/drivers/cpufreq/ti-cpufreq.c +++ b/drivers/cpufreq/ti-cpufreq.c @@ -217,7 +217,8 @@ static int ti_cpufreq_init(void) opp_data->cpu_dev = get_cpu_device(0); if (!opp_data->cpu_dev) { pr_err("%s: Failed to get device for CPU0\n", __func__); - return -ENODEV; + ret = ENODEV; + goto free_opp_data; } opp_data->opp_node = dev_pm_opp_of_get_opp_desc_node(opp_data->cpu_dev); @@ -262,6 +263,8 @@ static int ti_cpufreq_init(void) fail_put_node: of_node_put(opp_data->opp_node); +free_opp_data: + kfree(opp_data); return ret; } From 782219eb3213736883e46dce6d300023a160c144 Mon Sep 17 00:00:00 2001 From: Zumeng Chen Date: Wed, 9 Sep 2020 12:42:29 +0800 Subject: [PATCH 0942/1149] cpufreq: ti-cpufreq: add missing of_node_put() commit 248aefdcc3a7e0cfbd014946b4dead63e750e71b upstream. call of_node_put to release the refcount of np. Signed-off-by: Zumeng Chen Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/cpufreq/ti-cpufreq.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/cpufreq/ti-cpufreq.c b/drivers/cpufreq/ti-cpufreq.c index 36627b2b256f..afbe9db29992 100644 --- a/drivers/cpufreq/ti-cpufreq.c +++ b/drivers/cpufreq/ti-cpufreq.c @@ -205,6 +205,7 @@ static int ti_cpufreq_init(void) np = of_find_node_by_path("/"); match = of_match_node(ti_cpufreq_of_match, np); + of_node_put(np); if (!match) return -ENODEV; From b262fa5af0e07878052cb9b3021f0a6f2c6537cf Mon Sep 17 00:00:00 2001 From: Suman Anna Date: Wed, 9 Sep 2020 12:42:30 +0800 Subject: [PATCH 0943/1149] cpufreq: ti-cpufreq: Fix an incorrect error return value commit e5d295b06d69a1924665a16a4987be475addd00f upstream. Commit 05829d9431df ("cpufreq: ti-cpufreq: kfree opp_data when failure") has fixed a memory leak in the failure path, however the patch returned a positive value on get_cpu_device() failure instead of the previous negative value. Fix this incorrect error return value properly. Fixes: 05829d9431df ("cpufreq: ti-cpufreq: kfree opp_data when failure") Cc: 4.14+ # v4.14+ Signed-off-by: Suman Anna Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki [wens@csie.org: Fix commit reference format in commit log] Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/cpufreq/ti-cpufreq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/cpufreq/ti-cpufreq.c b/drivers/cpufreq/ti-cpufreq.c index afbe9db29992..59777685114d 100644 --- a/drivers/cpufreq/ti-cpufreq.c +++ b/drivers/cpufreq/ti-cpufreq.c @@ -218,7 +218,7 @@ static int ti_cpufreq_init(void) opp_data->cpu_dev = get_cpu_device(0); if (!opp_data->cpu_dev) { pr_err("%s: Failed to get device for CPU0\n", __func__); - ret = ENODEV; + ret = -ENODEV; goto free_opp_data; } From abce188ca0430076a77a5b78bbd7aeaaf5c0623f Mon Sep 17 00:00:00 2001 From: Dave Gerlach Date: Wed, 9 Sep 2020 12:42:31 +0800 Subject: [PATCH 0944/1149] cpufreq: dt: Don't use generic platdev driver for ti-cpufreq platforms commit 051bd84bb45bc994b7d762467f60b3bd0c7aa6bc upstream. Some TI platforms, specifically those in the am33xx, am43xx, dra7xx, and am57xx families of SoCs can make use of the ti-cpufreq driver to selectively enable OPPs based on the exact configuration in use. The ti-cpufreq is given the responsibility of creating the cpufreq-dt platform device when the driver is in use so drop am33xx and dra7xx from the cpufreq-dt-platdev driver so it is not created twice. Acked-by: Viresh Kumar Signed-off-by: Dave Gerlach Signed-off-by: Rafael J. Wysocki [wens@csie.org: Backport to pre generic platdev driver] Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/mach-omap2/pm.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c index 3d876bde8c85..88cb34c608ab 100644 --- a/arch/arm/mach-omap2/pm.c +++ b/arch/arm/mach-omap2/pm.c @@ -281,6 +281,9 @@ static inline void omap_init_cpufreq(void) if (!of_have_populated_dt()) devinfo.name = "omap-cpufreq"; + else if (of_machine_is_compatible("ti,am33xx") || + of_machine_is_compatible("ti,dra7")) + return; else devinfo.name = "cpufreq-dt"; platform_device_register_full(&devinfo); From 6cbe6bfacf16391a86232b6933c3c2529ad637dd Mon Sep 17 00:00:00 2001 From: Dave Gerlach Date: Wed, 9 Sep 2020 12:42:32 +0800 Subject: [PATCH 0945/1149] ARM: omap2plus_defconfig: Enable support for ti-cpufreq commit 69c8ab148006a2ec7ac1a1f08945e95febc1c132 upstream. AM335x, AM437x, DRA7xx, and AM57xx platforms all now depend on ti-cpufreq driver to enable proper OPPs for use with cpufreq, so enable the same. Signed-off-by: Dave Gerlach Reviewed-by: Lukasz Majewski Signed-off-by: Tony Lindgren Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/configs/omap2plus_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/omap2plus_defconfig b/arch/arm/configs/omap2plus_defconfig index 09ebd37e01e0..c6eec207dcbd 100644 --- a/arch/arm/configs/omap2plus_defconfig +++ b/arch/arm/configs/omap2plus_defconfig @@ -69,6 +69,7 @@ CONFIG_CPU_FREQ_GOV_POWERSAVE=y CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y CONFIG_CPUFREQ_DT=y +CONFIG_ARM_TI_CPUFREQ=y # CONFIG_ARM_OMAP2PLUS_CPUFREQ is not set CONFIG_CPU_IDLE=y CONFIG_BINFMT_MISC=y From 5edc509cbcb05ee77fe825d9e443647c49b278ff Mon Sep 17 00:00:00 2001 From: Dave Gerlach Date: Wed, 9 Sep 2020 12:42:33 +0800 Subject: [PATCH 0946/1149] ARM: dts: am33xx: Add updated operating-points-v2 table for cpu commit 72ac40fcb164a3d8fbd1ff13647abe67df26ced5 upstream. After the ti-cpufreq driver has been added, we can now drop the operating-points table present in am33xx.dtsi for the cpu and add an operating-points-v2 table with all OPPs available for all silicon revisions. Also add necessary data for use by ti-cpufreq to selectively enable the appropriate OPPs at runtime as part of the operating-points table. Information from AM335x Data Manual, SPRS717i, Revised December 2015, Table 5-7. Signed-off-by: Dave Gerlach Reviewed-by: Lukasz Majewski Acked-by: Viresh Kumar Signed-off-by: Tony Lindgren Signed-off-by: Chen-Yu Tsai (Moxa) Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/am33xx.dtsi | 87 +++++++++++++++++++++++++++++------ 1 file changed, 74 insertions(+), 13 deletions(-) diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi index 4b40e6d401a0..c256718d7580 100644 --- a/arch/arm/boot/dts/am33xx.dtsi +++ b/arch/arm/boot/dts/am33xx.dtsi @@ -45,19 +45,7 @@ device_type = "cpu"; reg = <0>; - /* - * To consider voltage drop between PMIC and SoC, - * tolerance value is reduced to 2% from 4% and - * voltage value is increased as a precaution. - */ - operating-points = < - /* kHz uV */ - 720000 1285000 - 600000 1225000 - 500000 1125000 - 275000 1125000 - >; - voltage-tolerance = <2>; /* 2 percentage */ + operating-points-v2 = <&cpu0_opp_table>; clocks = <&dpll_mpu_ck>; clock-names = "cpu"; @@ -66,6 +54,79 @@ }; }; + cpu0_opp_table: opp-table { + compatible = "operating-points-v2-ti-cpu"; + syscon = <&scm_conf>; + + /* + * The three following nodes are marked with opp-suspend + * because the can not be enabled simultaneously on a + * single SoC. + */ + opp50@300000000 { + opp-hz = /bits/ 64 <300000000>; + opp-microvolt = <950000 931000 969000>; + opp-supported-hw = <0x06 0x0010>; + opp-suspend; + }; + + opp100@275000000 { + opp-hz = /bits/ 64 <275000000>; + opp-microvolt = <1100000 1078000 1122000>; + opp-supported-hw = <0x01 0x00FF>; + opp-suspend; + }; + + opp100@300000000 { + opp-hz = /bits/ 64 <300000000>; + opp-microvolt = <1100000 1078000 1122000>; + opp-supported-hw = <0x06 0x0020>; + opp-suspend; + }; + + opp100@500000000 { + opp-hz = /bits/ 64 <500000000>; + opp-microvolt = <1100000 1078000 1122000>; + opp-supported-hw = <0x01 0xFFFF>; + }; + + opp100@600000000 { + opp-hz = /bits/ 64 <600000000>; + opp-microvolt = <1100000 1078000 1122000>; + opp-supported-hw = <0x06 0x0040>; + }; + + opp120@600000000 { + opp-hz = /bits/ 64 <600000000>; + opp-microvolt = <1200000 1176000 1224000>; + opp-supported-hw = <0x01 0xFFFF>; + }; + + opp120@720000000 { + opp-hz = /bits/ 64 <720000000>; + opp-microvolt = <1200000 1176000 1224000>; + opp-supported-hw = <0x06 0x0080>; + }; + + oppturbo@720000000 { + opp-hz = /bits/ 64 <720000000>; + opp-microvolt = <1260000 1234800 1285200>; + opp-supported-hw = <0x01 0xFFFF>; + }; + + oppturbo@800000000 { + opp-hz = /bits/ 64 <800000000>; + opp-microvolt = <1260000 1234800 1285200>; + opp-supported-hw = <0x06 0x0100>; + }; + + oppnitro@1000000000 { + opp-hz = /bits/ 64 <1000000000>; + opp-microvolt = <1325000 1298500 1351500>; + opp-supported-hw = <0x04 0x0200>; + }; + }; + pmu { compatible = "arm,cortex-a8-pmu"; interrupts = <3>; From c9f71781108017f6e3fc8d3326cf24bb234b5399 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Fri, 11 Sep 2020 20:08:08 +0900 Subject: [PATCH 0947/1149] CIP: Bump version suffix to -cip49 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 1aade6e57a04..a60ae535ba0a 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip48 +-cip49 From 40c4067600d8c1a31f1a4f5a9ae65c216ce099ab Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 11 Sep 2020 13:31:58 +0100 Subject: [PATCH 0948/1149] dt-bindings: ASoC: renesas,rsnd: Add r8a7742 support commit b6f10d3f2e6dfccf58c54e81c8af586b66a80ce4 upstream. Document RZ/G1H (R8A7742) SoC bindings. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Geert Uytterhoeven Acked-by: Rob Herring Link: https://lore.kernel.org/r/1590526904-13855-2-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Mark Brown Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/sound/renesas,rsnd.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/sound/renesas,rsnd.txt b/Documentation/devicetree/bindings/sound/renesas,rsnd.txt index 23656d187f3a..bf07aa156a6a 100644 --- a/Documentation/devicetree/bindings/sound/renesas,rsnd.txt +++ b/Documentation/devicetree/bindings/sound/renesas,rsnd.txt @@ -6,6 +6,7 @@ Required properties: "renesas,rcar_sound-gen2" if generation2 (or RZ/G1) "renesas,rcar_sound-gen3" if generation3 Examples with soctypes are: + - "renesas,rcar_sound-r8a7742" (RZ/G1H) - "renesas,rcar_sound-r8a7743" (RZ/G1M) - "renesas,rcar_sound-r8a7744" (RZ/G1N) - "renesas,rcar_sound-r8a7745" (RZ/G1E) From c672fd634d532df1355e38557d3e550e15c42e0c Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 11 Sep 2020 13:31:59 +0100 Subject: [PATCH 0949/1149] ARM: dts: r8a7742: Add audio support commit 3816124fd0408ec98773409732035f8f8425ff50 upstream. Add sound support for the RZ/G1H SoC (a.k.a. R8A7742). This work is based on similar work done on the R8A7744 SoC. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Acked-by: Kuninori Morimoto Link: https://lore.kernel.org/r/1590526904-13855-3-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: changed clocks and power-domain properties, removed resets property] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 272 +++++++++++++++++++++++++++++++++ 1 file changed, 272 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index 32ed4138dc1b..e37f65655479 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -14,6 +14,27 @@ #address-cells = <2>; #size-cells = <2>; + /* + * The external audio clocks are configured as 0 Hz fixed frequency + * clocks by default. + * Boards that provide audio clocks should override them. + */ + audio_clk_a: audio_clk_a { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <0>; + }; + audio_clk_b: audio_clk_b { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <0>; + }; + audio_clk_c: audio_clk_c { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <0>; + }; + clocks { #address-cells = <2>; #size-cells = <2>; @@ -1180,6 +1201,257 @@ status = "disabled"; }; + rcar_sound: sound@ec500000 { + /* + * #sound-dai-cells is required + * + * Single DAI : #sound-dai-cells = <0>; <&rcar_sound>; + * Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>; + */ + compatible = "renesas,rcar_sound-r8a7742", + "renesas,rcar_sound-gen2"; + reg = <0 0xec500000 0 0x1000>, /* SCU */ + <0 0xec5a0000 0 0x100>, /* ADG */ + <0 0xec540000 0 0x1000>, /* SSIU */ + <0 0xec541000 0 0x280>, /* SSI */ + <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/ + reg-names = "scu", "adg", "ssiu", "ssi", "audmapp"; + + clocks = <&mstp10_clks R8A7742_CLK_SSI_ALL>, + <&mstp10_clks R8A7742_CLK_SSI9>, <&mstp10_clks R8A7742_CLK_SSI8>, + <&mstp10_clks R8A7742_CLK_SSI7>, <&mstp10_clks R8A7742_CLK_SSI6>, + <&mstp10_clks R8A7742_CLK_SSI5>, <&mstp10_clks R8A7742_CLK_SSI4>, + <&mstp10_clks R8A7742_CLK_SSI3>, <&mstp10_clks R8A7742_CLK_SSI2>, + <&mstp10_clks R8A7742_CLK_SSI1>, <&mstp10_clks R8A7742_CLK_SSI0>, + <&mstp10_clks R8A7742_CLK_SCU_SRC9>, <&mstp10_clks R8A7742_CLK_SCU_SRC8>, + <&mstp10_clks R8A7742_CLK_SCU_SRC7>, <&mstp10_clks R8A7742_CLK_SCU_SRC6>, + <&mstp10_clks R8A7742_CLK_SCU_SRC5>, <&mstp10_clks R8A7742_CLK_SCU_SRC4>, + <&mstp10_clks R8A7742_CLK_SCU_SRC3>, <&mstp10_clks R8A7742_CLK_SCU_SRC2>, + <&mstp10_clks R8A7742_CLK_SCU_SRC1>, <&mstp10_clks R8A7742_CLK_SCU_SRC0>, + <&mstp10_clks R8A7742_CLK_SCU_CTU0_MIX0>, <&mstp10_clks R8A7742_CLK_SCU_CTU1_MIX1>, + <&mstp10_clks R8A7742_CLK_SCU_CTU0_MIX0>, <&mstp10_clks R8A7742_CLK_SCU_CTU1_MIX1>, + <&mstp10_clks R8A7742_CLK_SCU_DVC0>, <&mstp10_clks R8A7742_CLK_SCU_DVC1>, + <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, + <&m2_clk>; + clock-names = "ssi-all", + "ssi.9", "ssi.8", "ssi.7", "ssi.6", + "ssi.5", "ssi.4", "ssi.3", "ssi.2", + "ssi.1", "ssi.0", + "src.9", "src.8", "src.7", "src.6", + "src.5", "src.4", "src.3", "src.2", + "src.1", "src.0", + "ctu.0", "ctu.1", + "mix.0", "mix.1", + "dvc.0", "dvc.1", + "clk_a", "clk_b", "clk_c", "clk_i"; + power-domains = <&cpg_clocks>; + + status = "disabled"; + + rcar_sound,dvc { + dvc0: dvc-0 { + dmas = <&audma1 0xbc>; + dma-names = "tx"; + }; + dvc1: dvc-1 { + dmas = <&audma1 0xbe>; + dma-names = "tx"; + }; + }; + + rcar_sound,mix { + mix0: mix-0 { }; + mix1: mix-1 { }; + }; + + rcar_sound,ctu { + ctu00: ctu-0 { }; + ctu01: ctu-1 { }; + ctu02: ctu-2 { }; + ctu03: ctu-3 { }; + ctu10: ctu-4 { }; + ctu11: ctu-5 { }; + ctu12: ctu-6 { }; + ctu13: ctu-7 { }; + }; + + rcar_sound,src { + src0: src-0 { + interrupts = ; + dmas = <&audma0 0x85>, <&audma1 0x9a>; + dma-names = "rx", "tx"; + }; + src1: src-1 { + interrupts = ; + dmas = <&audma0 0x87>, <&audma1 0x9c>; + dma-names = "rx", "tx"; + }; + src2: src-2 { + interrupts = ; + dmas = <&audma0 0x89>, <&audma1 0x9e>; + dma-names = "rx", "tx"; + }; + src3: src-3 { + interrupts = ; + dmas = <&audma0 0x8b>, <&audma1 0xa0>; + dma-names = "rx", "tx"; + }; + src4: src-4 { + interrupts = ; + dmas = <&audma0 0x8d>, <&audma1 0xb0>; + dma-names = "rx", "tx"; + }; + src5: src-5 { + interrupts = ; + dmas = <&audma0 0x8f>, <&audma1 0xb2>; + dma-names = "rx", "tx"; + }; + src6: src-6 { + interrupts = ; + dmas = <&audma0 0x91>, <&audma1 0xb4>; + dma-names = "rx", "tx"; + }; + src7: src-7 { + interrupts = ; + dmas = <&audma0 0x93>, <&audma1 0xb6>; + dma-names = "rx", "tx"; + }; + src8: src-8 { + interrupts = ; + dmas = <&audma0 0x95>, <&audma1 0xb8>; + dma-names = "rx", "tx"; + }; + src9: src-9 { + interrupts = ; + dmas = <&audma0 0x97>, <&audma1 0xba>; + dma-names = "rx", "tx"; + }; + }; + + rcar_sound,ssi { + ssi0: ssi-0 { + interrupts = ; + dmas = <&audma0 0x01>, <&audma1 0x02>, + <&audma0 0x15>, <&audma1 0x16>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi1: ssi-1 { + interrupts = ; + dmas = <&audma0 0x03>, <&audma1 0x04>, + <&audma0 0x49>, <&audma1 0x4a>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi2: ssi-2 { + interrupts = ; + dmas = <&audma0 0x05>, <&audma1 0x06>, + <&audma0 0x63>, <&audma1 0x64>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi3: ssi-3 { + interrupts = ; + dmas = <&audma0 0x07>, <&audma1 0x08>, + <&audma0 0x6f>, <&audma1 0x70>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi4: ssi-4 { + interrupts = ; + dmas = <&audma0 0x09>, <&audma1 0x0a>, + <&audma0 0x71>, <&audma1 0x72>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi5: ssi-5 { + interrupts = ; + dmas = <&audma0 0x0b>, <&audma1 0x0c>, + <&audma0 0x73>, <&audma1 0x74>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi6: ssi-6 { + interrupts = ; + dmas = <&audma0 0x0d>, <&audma1 0x0e>, + <&audma0 0x75>, <&audma1 0x76>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi7: ssi-7 { + interrupts = ; + dmas = <&audma0 0x0f>, <&audma1 0x10>, + <&audma0 0x79>, <&audma1 0x7a>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi8: ssi-8 { + interrupts = ; + dmas = <&audma0 0x11>, <&audma1 0x12>, + <&audma0 0x7b>, <&audma1 0x7c>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi9: ssi-9 { + interrupts = ; + dmas = <&audma0 0x13>, <&audma1 0x14>, + <&audma0 0x7d>, <&audma1 0x7e>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + }; + }; + + audma0: dma-controller@ec700000 { + compatible = "renesas,dmac-r8a7742", + "renesas,rcar-dmac"; + reg = <0 0xec700000 0 0x10000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + ; + interrupt-names = "error", + "ch0", "ch1", "ch2", "ch3", + "ch4", "ch5", "ch6", "ch7", + "ch8", "ch9", "ch10", "ch11", + "ch12"; + clocks = <&mstp5_clks R8A7742_CLK_AUDIO_DMAC0>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <13>; + }; + + audma1: dma-controller@ec720000 { + compatible = "renesas,dmac-r8a7742", + "renesas,rcar-dmac"; + reg = <0 0xec720000 0 0x10000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + ; + interrupt-names = "error", + "ch0", "ch1", "ch2", "ch3", + "ch4", "ch5", "ch6", "ch7", + "ch8", "ch9", "ch10", "ch11", + "ch12"; + clocks = <&mstp5_clks R8A7742_CLK_AUDIO_DMAC1>; + clock-names = "fck"; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <13>; + }; + sdhi0: mmc@ee100000 { compatible = "renesas,sdhi-r8a7742", "renesas,rcar-gen2-sdhi"; From 6b80592f6027a1c2b77ff88ceb78bbc724e3c80d Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 11 Sep 2020 13:32:00 +0100 Subject: [PATCH 0950/1149] ARM: dts: r8a7742-iwg21d-q7: Enable SGTL5000 audio codec commit 436765010f266a2afd6c9afd15233225448a3e8d upstream. This patch enables SGTL5000 audio codec on the carrier board. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1590611013-26029-3-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742-iwg21d-q7.dts | 37 +++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts index 1c7e58d47d73..8085e1651493 100644 --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts @@ -22,6 +22,20 @@ stdout-path = "serial2:115200n8"; }; + audio_clock: audio_clock { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <26000000>; + }; + + reg_1p5v: 1p5v { + compatible = "regulator-fixed"; + regulator-name = "1P5V"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + }; + vcc_sdhi2: regulator-vcc-sdhi2 { compatible = "regulator-fixed"; @@ -60,6 +74,24 @@ }; }; +&i2c2 { + pinctrl-0 = <&i2c2_pins>; + pinctrl-names = "default"; + + status = "okay"; + clock-frequency = <400000>; + + sgtl5000: codec@a { + compatible = "fsl,sgtl5000"; + #sound-dai-cells = <0>; + reg = <0x0a>; + clocks = <&audio_clock>; + VDDA-supply = <®_3p3v>; + VDDIO-supply = <®_3p3v>; + VDDD-supply = <®_1p5v>; + }; +}; + &cmt0 { status = "okay"; }; @@ -70,6 +102,11 @@ function = "avb"; }; + i2c2_pins: i2c2 { + groups = "i2c2_b"; + function = "i2c2"; + }; + scifa2_pins: scifa2 { groups = "scifa2_data_c"; function = "scifa2"; From 7fbde5d0c4d5dea16f271b0bc28f08f3af9041a6 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 11 Sep 2020 13:32:01 +0100 Subject: [PATCH 0951/1149] ARM: dts: r8a7742-iwg21d-q7: Sound DMA support via DVC on DTS commit fc3a1b2763d44ed471169e1dff2c8ce0fb352c1c upstream. Enable sound with DMA support on carrier board. DMA transfer uses DVC DMA DMApp [MEM] -> [SRC] -> [DVC] -> [SSIU] -> [SSI] DMA DMApp [MEM] <- [DVC] <- [SRC] <- [SSIU] <- [SSI] Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1590611013-26029-4-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742-iwg21d-q7.dts | 63 +++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts index 8085e1651493..428c494d88a3 100644 --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts @@ -5,6 +5,29 @@ * Copyright (C) 2020 Renesas Electronics Corp. */ +/* + * SSI-SGTL5000 + * + * This command is required when Playback/Capture + * + * amixer set "DVC Out" 100% + * amixer set "DVC In" 100% + * + * You can use Mute + * + * amixer set "DVC Out Mute" on + * amixer set "DVC In Mute" on + * + * You can use Volume Ramp + * + * amixer set "DVC Out Ramp Up Rate" "0.125 dB/64 steps" + * amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps" + * amixer set "DVC Out Ramp" on + * aplay xxx.wav & + * amixer set "DVC Out" 80% // Volume Down + * amixer set "DVC Out" 100% // Volume Up + */ + /dts-v1/; #include "r8a7742-iwg21m.dtsi" @@ -36,6 +59,21 @@ regulator-always-on; }; + rsnd_sgtl5000: sound { + compatible = "simple-audio-card"; + simple-audio-card,format = "i2s"; + simple-audio-card,bitclock-master = <&sndcodec>; + simple-audio-card,frame-master = <&sndcodec>; + + sndcpu: simple-audio-card,cpu { + sound-dai = <&rcar_sound>; + }; + + sndcodec: simple-audio-card,codec { + sound-dai = <&sgtl5000>; + }; + }; + vcc_sdhi2: regulator-vcc-sdhi2 { compatible = "regulator-fixed"; @@ -117,6 +155,27 @@ function = "sdhi2"; power-source = <3300>; }; + + sound_pins: sound { + groups = "ssi34_ctrl", "ssi3_data", "ssi4_data"; + function = "ssi"; + }; +}; + +&rcar_sound { + pinctrl-0 = <&sound_pins>; + pinctrl-names = "default"; + status = "okay"; + + /* Single DAI */ + #sound-dai-cells = <0>; + + rcar_sound,dai { + dai0 { + playback = <&ssi4 &src4 &dvc1>; + capture = <&ssi3 &src3 &dvc0>; + }; + }; }; &rwdt { @@ -141,3 +200,7 @@ wp-gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>; status = "okay"; }; + +&ssi4 { + shared-pin; +}; From 0d001f02e45c2a5c4574b185b854531aa9a99171 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Tue, 22 Sep 2020 09:29:31 +0200 Subject: [PATCH 0952/1149] Revert "ravb: Fixed to be able to unload modules" commit 77972b55fb9d35d4a6b0abca99abffaa4ec6a85b upstream. This reverts commit 1838d6c62f57836639bd3d83e7855e0ee4f6defc. This commit moved the ravb_mdio_init() call (and thus the of_mdiobus_register() call) from the ravb_probe() to the ravb_open() call. This causes a regression during system resume (s2idle/s2ram), as new PHY devices cannot be bound while suspended. During boot, the Micrel PHY is detected like this: Micrel KSZ9031 Gigabit PHY e6800000.ethernet-ffffffff:00: attached PHY driver [Micrel KSZ9031 Gigabit PHY] (mii_bus:phy_addr=e6800000.ethernet-ffffffff:00, irq=228) ravb e6800000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off During system suspend, (A) defer_all_probes is set to true, and (B) usermodehelper_disabled is set to UMH_DISABLED, to avoid drivers being probed while suspended. A. If CONFIG_MODULES=n, phy_device_register() calling device_add() merely adds the device, but does not probe it yet, as really_probe() returns early due to defer_all_probes being set: dpm_resume+0x128/0x4f8 device_resume+0xcc/0x1b0 dpm_run_callback+0x74/0x340 ravb_resume+0x190/0x1b8 ravb_open+0x84/0x770 of_mdiobus_register+0x1e0/0x468 of_mdiobus_register_phy+0x1b8/0x250 of_mdiobus_phy_device_register+0x178/0x1e8 phy_device_register+0x114/0x1b8 device_add+0x3d4/0x798 bus_probe_device+0x98/0xa0 device_initial_probe+0x10/0x18 __device_attach+0xe4/0x140 bus_for_each_drv+0x64/0xc8 __device_attach_driver+0xb8/0xe0 driver_probe_device.part.11+0xc4/0xd8 really_probe+0x32c/0x3b8 Later, phy_attach_direct() notices no PHY driver has been bound, and falls back to the Generic PHY, leading to degraded operation: Generic PHY e6800000.ethernet-ffffffff:00: attached PHY driver [Generic PHY] (mii_bus:phy_addr=e6800000.ethernet-ffffffff:00, irq=POLL) ravb e6800000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off B. If CONFIG_MODULES=y, request_module() returns early with -EBUSY due to UMH_DISABLED, and MDIO initialization fails completely: mdio_bus e6800000.ethernet-ffffffff:00: error -16 loading PHY driver module for ID 0x00221622 ravb e6800000.ethernet eth0: failed to initialize MDIO PM: dpm_run_callback(): ravb_resume+0x0/0x1b8 returns -16 PM: Device e6800000.ethernet failed to resume: error -16 Ignoring -EBUSY in phy_request_driver_module(), like was done for -ENOENT in commit 21e194425abd65b5 ("net: phy: fix issue with loading PHY driver w/o initramfs"), would makes it fall back to the Generic PHY, like in the CONFIG_MODULES=n case. Signed-off-by: Geert Uytterhoeven Cc: stable@vger.kernel.org Reviewed-by: Sergei Shtylyov Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman Signed-off-by: Nobuhiro Iwamatsu --- drivers/net/ethernet/renesas/ravb_main.c | 110 +++++++++++------------ 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c index f6041718f7f1..a7925ba366f7 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -1214,64 +1214,12 @@ static const struct ethtool_ops ravb_ethtool_ops = { .get_ts_info = ravb_get_ts_info, }; -/* MDIO bus init function */ -static int ravb_mdio_init(struct ravb_private *priv) -{ - struct platform_device *pdev = priv->pdev; - struct device *dev = &pdev->dev; - int error; - - /* Bitbang init */ - priv->mdiobb.ops = &bb_ops; - - /* MII controller setting */ - priv->mii_bus = alloc_mdio_bitbang(&priv->mdiobb); - if (!priv->mii_bus) - return -ENOMEM; - - /* Hook up MII support for ethtool */ - priv->mii_bus->name = "ravb_mii"; - priv->mii_bus->parent = dev; - snprintf(priv->mii_bus->id, MII_BUS_ID_SIZE, "%s-%x", - pdev->name, pdev->id); - - /* Register MDIO bus */ - error = of_mdiobus_register(priv->mii_bus, dev->of_node); - if (error) - goto out_free_bus; - - return 0; - -out_free_bus: - free_mdio_bitbang(priv->mii_bus); - return error; -} - -/* MDIO bus release function */ -static int ravb_mdio_release(struct ravb_private *priv) -{ - /* Unregister mdio bus */ - mdiobus_unregister(priv->mii_bus); - - /* Free bitbang info */ - free_mdio_bitbang(priv->mii_bus); - - return 0; -} - /* Network device open function for Ethernet AVB */ static int ravb_open(struct net_device *ndev) { struct ravb_private *priv = netdev_priv(ndev); int error; - /* MDIO bus init */ - error = ravb_mdio_init(priv); - if (error) { - netdev_err(ndev, "failed to initialize MDIO\n"); - return error; - } - napi_enable(&priv->napi[RAVB_BE]); napi_enable(&priv->napi[RAVB_NC]); @@ -1320,7 +1268,6 @@ static int ravb_open(struct net_device *ndev) out_napi_off: napi_disable(&priv->napi[RAVB_NC]); napi_disable(&priv->napi[RAVB_BE]); - ravb_mdio_release(priv); return error; } @@ -1614,8 +1561,6 @@ static int ravb_close(struct net_device *ndev) ravb_ring_free(ndev, RAVB_BE); ravb_ring_free(ndev, RAVB_NC); - ravb_mdio_release(priv); - return 0; } @@ -1719,6 +1664,51 @@ static const struct net_device_ops ravb_netdev_ops = { .ndo_change_mtu = eth_change_mtu, }; +/* MDIO bus init function */ +static int ravb_mdio_init(struct ravb_private *priv) +{ + struct platform_device *pdev = priv->pdev; + struct device *dev = &pdev->dev; + int error; + + /* Bitbang init */ + priv->mdiobb.ops = &bb_ops; + + /* MII controller setting */ + priv->mii_bus = alloc_mdio_bitbang(&priv->mdiobb); + if (!priv->mii_bus) + return -ENOMEM; + + /* Hook up MII support for ethtool */ + priv->mii_bus->name = "ravb_mii"; + priv->mii_bus->parent = dev; + snprintf(priv->mii_bus->id, MII_BUS_ID_SIZE, "%s-%x", + pdev->name, pdev->id); + + /* Register MDIO bus */ + error = of_mdiobus_register(priv->mii_bus, dev->of_node); + if (error) + goto out_free_bus; + + return 0; + +out_free_bus: + free_mdio_bitbang(priv->mii_bus); + return error; +} + +/* MDIO bus release function */ +static int ravb_mdio_release(struct ravb_private *priv) +{ + /* Unregister mdio bus */ + mdiobus_unregister(priv->mii_bus); + + /* Free bitbang info */ + free_mdio_bitbang(priv->mii_bus); + + return 0; +} + static const struct of_device_id ravb_match_table[] = { { .compatible = "renesas,etheravb-r8a7790", .data = (void *)RCAR_GEN2 }, { .compatible = "renesas,etheravb-r8a7794", .data = (void *)RCAR_GEN2 }, @@ -1859,6 +1849,13 @@ static int ravb_probe(struct platform_device *pdev) eth_hw_addr_random(ndev); } + /* MDIO bus init */ + error = ravb_mdio_init(priv); + if (error) { + dev_err(&pdev->dev, "failed to initialize MDIO\n"); + goto out_dma_free; + } + netif_napi_add(ndev, &priv->napi[RAVB_BE], ravb_poll, 64); netif_napi_add(ndev, &priv->napi[RAVB_NC], ravb_poll, 64); @@ -1878,6 +1875,8 @@ static int ravb_probe(struct platform_device *pdev) out_napi_del: netif_napi_del(&priv->napi[RAVB_NC]); netif_napi_del(&priv->napi[RAVB_BE]); + ravb_mdio_release(priv); +out_dma_free: dma_free_coherent(ndev->dev.parent, priv->desc_bat_size, priv->desc_bat, priv->desc_bat_dma); out_release: @@ -1902,6 +1901,7 @@ static int ravb_remove(struct platform_device *pdev) unregister_netdev(ndev); netif_napi_del(&priv->napi[RAVB_NC]); netif_napi_del(&priv->napi[RAVB_BE]); + ravb_mdio_release(priv); pm_runtime_disable(&pdev->dev); free_netdev(ndev); platform_set_drvdata(pdev, NULL); From e21f6a3128beb731449030d76249db60d380b8dd Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Sun, 11 Oct 2020 07:13:16 +0900 Subject: [PATCH 0953/1149] CIP: Bump version suffix to -cip50 after merge from stable with ravb fix Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index a60ae535ba0a..816ff0aeb9e3 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip49 +-cip50 From e9b9fea4a95a8704cf1b61a4917f6869abfb94a6 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 6 Nov 2020 09:51:44 +0000 Subject: [PATCH 0954/1149] dt-bindings: PCI: pci-rcar-gen2: Add device tree support for r8a7742 commit c6233c504974f131445a21891de725d1ac4d116c upstream. Add internal PCI bridge support for r8a7742 SoC. The Renesas RZ/G1H (R8A7742) internal PCI bridge is identical to the R-Car Gen2 family. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Geert Uytterhoeven Signed-off-by: Rob Herring Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt b/Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt index 8ea3ec0c535a..7857d87646cf 100644 --- a/Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt +++ b/Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt @@ -6,7 +6,8 @@ AHB. There is one bridge instance per USB port connected to the internal OHCI and EHCI controllers. Required properties: -- compatible: "renesas,pci-r8a7743" for the R8A7743 SoC; +- compatible: "renesas,pci-r8a7742" for the R8A7742 SoC; + "renesas,pci-r8a7743" for the R8A7743 SoC; "renesas,pci-r8a7744" for the R8A7744 SoC; "renesas,pci-r8a7745" for the R8A7745 SoC; "renesas,pci-r8a7790" for the R8A7790 SoC; From f7305b488be9e3048f0ee30bb7a83d6041728d7f Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 6 Nov 2020 09:51:45 +0000 Subject: [PATCH 0955/1149] ARM: dts: r8a7742: Add PCIe Controller device node commit ebe5f898b60b341bd223d835dd3d7d77a5b38979 upstream. Add a device node for the PCIe controller on the Renesas RZ/G1H (r8a7742) SoC. Signed-off-by: Lad Prabhakar Reviewed-by: Chris Paterson Link: https://lore.kernel.org/r/20200810174156.30880-3-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [PL: changed clocks and power-domain properties, removed resets property] Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index e37f65655479..0268c46d8f59 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -594,6 +594,13 @@ clock-frequency = <0>; }; + /* External PCIe clock - can be overridden by the board */ + pcie_bus_clk: pcie_bus { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <0>; + }; + pmu-0 { compatible = "arm,cortex-a15-pmu"; interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, @@ -1563,6 +1570,33 @@ power-domains = <&cpg_clocks>; }; + pciec: pcie@fe000000 { + compatible = "renesas,pcie-r8a7742", + "renesas,pcie-rcar-gen2"; + reg = <0 0xfe000000 0 0x80000>; + #address-cells = <3>; + #size-cells = <2>; + bus-range = <0x00 0xff>; + device_type = "pci"; + ranges = <0x01000000 0 0x00000000 0 0xfe100000 0 0x00100000>, + <0x02000000 0 0xfe200000 0 0xfe200000 0 0x00200000>, + <0x02000000 0 0x30000000 0 0x30000000 0 0x08000000>, + <0x42000000 0 0x38000000 0 0x38000000 0 0x08000000>; + /* Map all possible DDR as inbound ranges */ + dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 0 0x80000000>, + <0x43000000 1 0x80000000 1 0x80000000 0 0x80000000>; + interrupts = , + , + ; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 0>; + interrupt-map = <0 0 0 0 &gic GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&mstp3_clks R8A7742_CLK_PCIEC>, <&pcie_bus_clk>; + clock-names = "pcie", "pcie_bus"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + cmt0: timer@ffca0000 { compatible = "renesas,cmt-48-r8a7742", "renesas,cmt-48-gen2"; From 03735d69b47940bd0409d132460cc8b512b77da4 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 6 Nov 2020 09:51:46 +0000 Subject: [PATCH 0956/1149] ARM: dts: r8a7742-iwg21d-q7: Enable PCIe Controller commit a0be3c32b15675e9f9dc0d3dc4e0361c019b93d8 upstream. Enable PCIe Controller and set PCIe bus clock frequency. Signed-off-by: Lad Prabhakar Reviewed-by: Chris Paterson Link: https://lore.kernel.org/r/20200825162718.5838-2-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [PL: Manually applied changes] Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742-iwg21d-q7.dts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts index 428c494d88a3..858d206514e0 100644 --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts @@ -134,6 +134,18 @@ status = "okay"; }; +&pcie_bus_clk { + clock-frequency = <100000000>; +}; + +&pciec { + /* SW2[6] determines which connector is activated + * ON = PCIe X4 (connector-J7) + * OFF = mini-PCIe (connector-J26) + */ + status = "okay"; +}; + &pfc { avb_pins: avb { groups = "avb_mdio", "avb_gmii"; From 535702ac642f450beb6409b795084d8c7bbe9df9 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Fri, 6 Nov 2020 09:51:47 +0000 Subject: [PATCH 0957/1149] ata: sata_rcar: add gen[23] fallback compatibility strings commit 6ac1d1532c888b030acb3b4ac82425448cb15198 upstream. Add fallback compatibility string for R-Car Gen 2 and 3. In the case of Renesas R-Car hardware we know that there are generations of SoCs, e.g. Gen 1 and 2. But beyond that its not clear what the relationship between IP blocks might be. For example, I believe that r8a7790 is older than r8a7791 but that doesn't imply that the latter is a descendant of the former or vice versa. We can, however, by examining the documentation and behaviour of the hardware at run-time observe that the current driver implementation appears to be compatible with the IP blocks on SoCs within a given generation. For the above reasons and convenience when enabling new SoCs a per-generation fallback compatibility string scheme being adopted for drivers for Renesas SoCs. Signed-off-by: Simon Horman Acked-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven Acked-by: Rob Herring Signed-off-by: Tejun Heo [PL: Dropped R-Car Gen3 support] Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/ata/sata_rcar.txt | 13 ++++++++++--- drivers/ata/sata_rcar.c | 4 ++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/ata/sata_rcar.txt b/Documentation/devicetree/bindings/ata/sata_rcar.txt index 2493a5a31655..ee0a4b6d615f 100644 --- a/Documentation/devicetree/bindings/ata/sata_rcar.txt +++ b/Documentation/devicetree/bindings/ata/sata_rcar.txt @@ -1,13 +1,20 @@ * Renesas R-Car SATA Required properties: -- compatible : should contain one of the following: +- compatible : should contain one or more of the following: - "renesas,sata-r8a7779" for R-Car H1 - ("renesas,rcar-sata" is deprecated) - "renesas,sata-r8a7790-es1" for R-Car H2 ES1 - "renesas,sata-r8a7790" for R-Car H2 other than ES1 - "renesas,sata-r8a7791" for R-Car M2-W - "renesas,sata-r8a7793" for R-Car M2-N + - "renesas,rcar-gen2-sata" for a generic R-Car Gen2 compatible device + - "renesas,rcar-sata" is deprecated + + When compatible with the generic version nodes + must list the SoC-specific version corresponding + to the platform first followed by the generic + version. + - reg : address and length of the SATA registers; - interrupts : must consist of one interrupt specifier. - clocks : must contain a reference to the functional clock. @@ -15,7 +22,7 @@ Required properties: Example: sata0: sata@ee300000 { - compatible = "renesas,sata-r8a7791"; + compatible = "renesas,sata-r8a7791", "renesas,rcar-gen2-sata"; reg = <0 0xee300000 0 0x2000>; interrupt-parent = <&gic>; interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>; diff --git a/drivers/ata/sata_rcar.c b/drivers/ata/sata_rcar.c index 4199f7a39be0..a3fee38a3635 100644 --- a/drivers/ata/sata_rcar.c +++ b/drivers/ata/sata_rcar.c @@ -856,6 +856,10 @@ static struct of_device_id sata_rcar_match[] = { .compatible = "renesas,sata-r8a7793", .data = (void *)RCAR_GEN2_SATA }, + { + .compatible = "renesas,rcar-gen2-sata", + .data = (void *)RCAR_GEN2_SATA + }, { }, }; MODULE_DEVICE_TABLE(of, sata_rcar_match); From 801948ee34b219dae5fd9c94f00728ca1f4d3565 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Fri, 6 Nov 2020 09:51:48 +0000 Subject: [PATCH 0958/1149] ata: sata_rcar: Fix DMA boundary mask commit df9c590986fdb6db9d5636d6cd93bc919c01b451 upstream. Before commit 9495b7e92f716ab2 ("driver core: platform: Initialize dma_parms for platform devices"), the R-Car SATA device didn't have DMA parameters. Hence the DMA boundary mask supplied by its driver was silently ignored, as __scsi_init_queue() doesn't check the return value of dma_set_seg_boundary(), and the default value of 0xffffffff was used. Now the device has gained DMA parameters, the driver-supplied value is used, and the following warning is printed on Salvator-XS: DMA-API: sata_rcar ee300000.sata: mapping sg segment across boundary [start=0x00000000ffffe000] [end=0x00000000ffffefff] [boundary=0x000000001ffffffe] WARNING: CPU: 5 PID: 38 at kernel/dma/debug.c:1233 debug_dma_map_sg+0x298/0x300 (the range of start/end values depend on whether IOMMU support is enabled or not) The issue here is that SATA_RCAR_DMA_BOUNDARY doesn't have bit 0 set, so any typical end value, which is odd, will trigger the check. Fix this by increasing the DMA boundary value by 1. This also fixes the following WRITE DMA EXT timeout issue: # dd if=/dev/urandom of=/mnt/de1/file1-1024M bs=1M count=1024 ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen ata1.00: failed command: WRITE DMA EXT ata1.00: cmd 35/00:00:00:e6:0c/00:0a:00:00:00/e0 tag 0 dma 1310720 out res 40/00:01:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout) ata1.00: status: { DRDY } as seen by Shimoda-san since commit 429120f3df2dba2b ("block: fix splitting segments on boundary masks"). Fixes: 8bfbeed58665dbbf ("sata_rcar: correct 'sata_rcar_sht'") Fixes: 9495b7e92f716ab2 ("driver core: platform: Initialize dma_parms for platform devices") Fixes: 429120f3df2dba2b ("block: fix splitting segments on boundary masks") Signed-off-by: Geert Uytterhoeven Tested-by: Lad Prabhakar Tested-by: Yoshihiro Shimoda Reviewed-by: Christoph Hellwig Reviewed-by: Greg Kroah-Hartman Reviewed-by: Sergei Shtylyov Reviewed-by: Ulf Hansson Cc: stable Signed-off-by: Jens Axboe Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/ata/sata_rcar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/ata/sata_rcar.c b/drivers/ata/sata_rcar.c index a3fee38a3635..8f43669ca29e 100644 --- a/drivers/ata/sata_rcar.c +++ b/drivers/ata/sata_rcar.c @@ -122,7 +122,7 @@ /* Descriptor table word 0 bit (when DTA32M = 1) */ #define SATA_RCAR_DTEND BIT(0) -#define SATA_RCAR_DMA_BOUNDARY 0x1FFFFFFEUL +#define SATA_RCAR_DMA_BOUNDARY 0x1FFFFFFFUL /* Gen2 Physical Layer Control Registers */ #define RCAR_GEN2_PHY_CTL1_REG 0x1704 From 92667d992c5f07feda80d61e776ab1e42399ec86 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 6 Nov 2020 09:51:49 +0000 Subject: [PATCH 0959/1149] dt-bindings: ata: renesas,rcar-sata: Add r8a7742 support commit 33e70291d1ded119313ac1c20346a1f9f3b3b66f upstream. Document SATA support for the RZ/G1H, which is compatible with R-Car Gen2 SoC family. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Signed-off-by: Rob Herring [PL: Manually applied changes to text version of binding file] Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/ata/sata_rcar.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/ata/sata_rcar.txt b/Documentation/devicetree/bindings/ata/sata_rcar.txt index ee0a4b6d615f..2c3a2eba0258 100644 --- a/Documentation/devicetree/bindings/ata/sata_rcar.txt +++ b/Documentation/devicetree/bindings/ata/sata_rcar.txt @@ -2,6 +2,7 @@ Required properties: - compatible : should contain one or more of the following: + - "renesas,sata-r8a7742" for RZ/G1H - "renesas,sata-r8a7779" for R-Car H1 - "renesas,sata-r8a7790-es1" for R-Car H2 ES1 - "renesas,sata-r8a7790" for R-Car H2 other than ES1 From 6484da5ebdfd6a6637caec08e2ad812fc80209fe Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 6 Nov 2020 09:51:50 +0000 Subject: [PATCH 0960/1149] ARM: dts: r8a7742: Add SATA nodes commit b9884a16398161bea177f48ddc05884741a8b944 upstream. Add the SATA device nodes to the R8A7742 device tree. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Wolfram Sang Link: https://lore.kernel.org/r/1589555337-5498-10-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [PL: changed clocks and power-domain properties, removed resets property] Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index 0268c46d8f59..ae7c8cbf9f79 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -1557,6 +1557,26 @@ status = "disabled"; }; + sata0: sata@ee300000 { + compatible = "renesas,sata-r8a7742", + "renesas,rcar-gen2-sata"; + reg = <0 0xee300000 0 0x200000>; + interrupts = ; + clocks = <&mstp8_clks R8A7742_CLK_SATA0>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + sata1: sata@ee500000 { + compatible = "renesas,sata-r8a7742", + "renesas,rcar-gen2-sata"; + reg = <0 0xee500000 0 0x200000>; + interrupts = ; + clocks = <&mstp8_clks R8A7742_CLK_SATA1>; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + gic: interrupt-controller@f1001000 { compatible = "arm,gic-400"; #interrupt-cells = <3>; From 40c228ac16f0e3ba463b64447d4885a42c7f81ab Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Fri, 6 Nov 2020 09:51:51 +0000 Subject: [PATCH 0961/1149] ARM: dts: r8a7742: Add VSP support commit a937909702e00d98eac5b91b31a7f2ae112f47bf upstream. Add VSP support to R8A7742 (RZ/G1H) SoC dtsi. Signed-off-by: Lad Prabhakar Reviewed-by: Chris Paterson Link: https://lore.kernel.org/r/20200911080929.15058-1-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [PL: dropped resets property. changed clocks and power-domains properties. added vsp device configuration] Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 55 ++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index ae7c8cbf9f79..eff54f7ed812 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -1617,6 +1617,61 @@ status = "disabled"; }; + vsp@fe920000 { + compatible = "renesas,vsp1"; + reg = <0 0xfe920000 0 0x8000>; + interrupts = ; + clocks = <&mstp1_clks R8A7742_CLK_VSP1_R>; + power-domains = <&cpg_clocks>; + + renesas,has-sru; + renesas,#rpf = <5>; + renesas,#uds = <1>; + renesas,#wpf = <4>; + }; + + vsp@fe928000 { + compatible = "renesas,vsp1"; + reg = <0 0xfe928000 0 0x8000>; + interrupts = ; + clocks = <&mstp1_clks R8A7742_CLK_VSP1_S>; + power-domains = <&cpg_clocks>; + + renesas,has-lut; + renesas,has-sru; + renesas,#rpf = <5>; + renesas,#uds = <3>; + renesas,#wpf = <4>; + }; + + vsp@fe930000 { + compatible = "renesas,vsp1"; + reg = <0 0xfe930000 0 0x8000>; + interrupts = ; + clocks = <&mstp1_clks R8A7742_CLK_VSP1_DU0>; + power-domains = <&cpg_clocks>; + + renesas,has-lif; + renesas,has-lut; + renesas,#rpf = <4>; + renesas,#uds = <1>; + renesas,#wpf = <4>; + }; + + vsp@fe938000 { + compatible = "renesas,vsp1"; + reg = <0 0xfe938000 0 0x8000>; + interrupts = ; + clocks = <&mstp1_clks R8A7742_CLK_VSP1_DU1>; + power-domains = <&cpg_clocks>; + + renesas,has-lif; + renesas,has-lut; + renesas,#rpf = <4>; + renesas,#uds = <1>; + renesas,#wpf = <4>; + }; + cmt0: timer@ffca0000 { compatible = "renesas,cmt-48-r8a7742", "renesas,cmt-48-gen2"; From bac8921c5fdb312a63f0abbb292924ffc3e8a549 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Mon, 9 Nov 2020 15:49:58 +0000 Subject: [PATCH 0962/1149] ARM: dts: r8a7742-iwg21m: Sort the nodes alphabetically commit be571bec2cfdb7aaa096d547aa8a1559a0c0cc90 upstream. Sort the DT nodes alphabetically so that its easier to maintain. Signed-off-by: Lad Prabhakar Reviewed-by: Chris Paterson Link: https://lore.kernel.org/r/20200816193316.7641-2-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742-iwg21m.dtsi | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/arch/arm/boot/dts/r8a7742-iwg21m.dtsi b/arch/arm/boot/dts/r8a7742-iwg21m.dtsi index 85aff429d408..6e8df79bea94 100644 --- a/arch/arm/boot/dts/r8a7742-iwg21m.dtsi +++ b/arch/arm/boot/dts/r8a7742-iwg21m.dtsi @@ -35,13 +35,6 @@ clock-frequency = <20000000>; }; -&pfc { - mmc1_pins: mmc1 { - groups = "mmc1_data4", "mmc1_ctrl"; - function = "mmc1"; - }; -}; - &mmcif1 { pinctrl-0 = <&mmc1_pins>; pinctrl-names = "default"; @@ -51,3 +44,10 @@ non-removable; status = "okay"; }; + +&pfc { + mmc1_pins: mmc1 { + groups = "mmc1_data4", "mmc1_ctrl"; + function = "mmc1"; + }; +}; From ad83570318484394aeb1b96480bcf244faf45bd9 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Mon, 9 Nov 2020 15:49:59 +0000 Subject: [PATCH 0963/1149] ARM: dts: r8a7742-iwg21m: Add RTC support commit c0ed2ee793f1f5c15d88c0dd458504b7b2aa9d6a upstream. Enable BQ32000 RTC which is connected to I2C0 on the iWave RainboW-G21M-q7 SOM. Signed-off-by: Lad Prabhakar Reviewed-by: Chris Paterson Link: https://lore.kernel.org/r/20200816193316.7641-3-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742-iwg21m.dtsi | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742-iwg21m.dtsi b/arch/arm/boot/dts/r8a7742-iwg21m.dtsi index 6e8df79bea94..0f26807f92b8 100644 --- a/arch/arm/boot/dts/r8a7742-iwg21m.dtsi +++ b/arch/arm/boot/dts/r8a7742-iwg21m.dtsi @@ -35,6 +35,21 @@ clock-frequency = <20000000>; }; +&i2c0 { + pinctrl-0 = <&i2c0_pins>; + pinctrl-names = "default"; + + status = "okay"; + clock-frequency = <400000>; + + rtc@68 { + compatible = "ti,bq32000"; + reg = <0x68>; + interrupt-parent = <&gpio1>; + interrupts = <1 IRQ_TYPE_EDGE_FALLING>; + }; +}; + &mmcif1 { pinctrl-0 = <&mmc1_pins>; pinctrl-names = "default"; @@ -46,6 +61,11 @@ }; &pfc { + i2c0_pins: i2c0 { + groups = "i2c0"; + function = "i2c0"; + }; + mmc1_pins: mmc1 { groups = "mmc1_data4", "mmc1_ctrl"; function = "mmc1"; From ad00669d18340a33eafd5e8ba60cb4aa6571cbba Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Mon, 9 Nov 2020 15:50:00 +0000 Subject: [PATCH 0964/1149] spi: renesas,rspi: Add r8a7742 to the compatible list commit 08f9793efd3decae75e60bfec2e6068f2d4180df upstream. Document RZ/G1H (R8A7742) SoC specific bindings. The R8A7742 qspi module is identical to R-Car Gen2 family. No driver change is needed due to the fallback compatible value "renesas,qspi". Signed-off-by: Lad Prabhakar Reviewed-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/20200812150048.27721-2-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Mark Brown [PL: Patched text version of bindings file] Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/spi/spi-rspi.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/spi/spi-rspi.txt b/Documentation/devicetree/bindings/spi/spi-rspi.txt index 2f1a3dc069e7..6a30a2112b8e 100644 --- a/Documentation/devicetree/bindings/spi/spi-rspi.txt +++ b/Documentation/devicetree/bindings/spi/spi-rspi.txt @@ -11,6 +11,7 @@ Required properties: Examples with soctypes are: - "renesas,rspi-sh7757" (SH) - "renesas,rspi-r7s72100" (RZ/A1H) + - "renesas,qspi-r8a7742" (RZ/G1H) - "renesas,qspi-r8a7743" (RZ/G1M) - "renesas,qspi-r8a7744" (RZ/G1N) - "renesas,qspi-r8a7745" (RZ/G1E) From f861f17ad8ea8af7437f4a0078cbe73dfc54d2af Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Mon, 9 Nov 2020 15:50:01 +0000 Subject: [PATCH 0965/1149] ARM: dts: r8a7742: Add QSPI support commit afdac0bfbd49e46f7046c7f4bad6daa4a3ebf6fc upstream. Add QSPI DT node to R8A7742 SoC dtsi. Signed-off-by: Lad Prabhakar Reviewed-by: Chris Paterson Link: https://lore.kernel.org/r/20200812150048.27721-3-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [PL: changed clocks and power-domain properties, removed resets property] Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index eff54f7ed812..a8ce139e9fc5 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -989,6 +989,21 @@ status = "disabled"; }; + qspi: spi@e6b10000 { + compatible = "renesas,qspi-r8a7742", "renesas,qspi"; + reg = <0 0xe6b10000 0 0x2c>; + interrupts = ; + clocks = <&mstp9_clks R8A7742_CLK_QSPI_MOD>; + dmas = <&dmac0 0x17>, <&dmac0 0x18>, + <&dmac1 0x17>, <&dmac1 0x18>; + dma-names = "tx", "rx", "tx", "rx"; + power-domains = <&cpg_clocks>; + num-cs = <1>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + scifa0: serial@e6c40000 { compatible = "renesas,scifa-r8a7742", "renesas,scifa"; From 76969caaab9c57f67cbff4d6cc12953a9c0ef066 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Mon, 9 Nov 2020 15:50:02 +0000 Subject: [PATCH 0966/1149] ARM: dts: r8a7742-iwg21m: Add SPI NOR support commit fc7f54fb13b807c556770a69468188947981a400 upstream. Add support for the SPI NOR device used to boot up the system to the System on Module DT. Signed-off-by: Lad Prabhakar Reviewed-by: Chris Paterson Link: https://lore.kernel.org/r/20200825085435.8744-1-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742-iwg21m.dtsi | 51 +++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742-iwg21m.dtsi b/arch/arm/boot/dts/r8a7742-iwg21m.dtsi index 0f26807f92b8..5621c9ed698f 100644 --- a/arch/arm/boot/dts/r8a7742-iwg21m.dtsi +++ b/arch/arm/boot/dts/r8a7742-iwg21m.dtsi @@ -35,6 +35,16 @@ clock-frequency = <20000000>; }; +&gpio0 { + /* GP0_18 set low to select QSPI. Doing so will disable VIN2 */ + qspi_en { + gpio-hog; + gpios = <18 GPIO_ACTIVE_HIGH>; + output-low; + line-name = "QSPI_EN"; + }; +}; + &i2c0 { pinctrl-0 = <&i2c0_pins>; pinctrl-names = "default"; @@ -70,4 +80,45 @@ groups = "mmc1_data4", "mmc1_ctrl"; function = "mmc1"; }; + + qspi_pins: qspi { + groups = "qspi_ctrl", "qspi_data2"; + function = "qspi"; + }; +}; + +&qspi { + pinctrl-0 = <&qspi_pins>; + pinctrl-names = "default"; + + status = "okay"; + + flash: flash@0 { + compatible = "sst,sst25vf016b", "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <50000000>; + m25p,fast-read; + spi-cpol; + spi-cpha; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "bootloader"; + reg = <0x00000000 0x000c0000>; + read-only; + }; + partition@c0000 { + label = "env"; + reg = <0x000c0000 0x00002000>; + }; + partition@c2000 { + label = "user"; + reg = <0x000c2000 0x0013e000>; + }; + }; + }; }; From e059c8de75d688655f1715a045c827c1fb6eba50 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Mon, 9 Nov 2020 15:50:03 +0000 Subject: [PATCH 0967/1149] spi: sh-msiof: Avoid writing to registers from spi_master.setup() commit 7ff0b53c4051145d1cf992d2f60987e6447eed4f upstream. The spi_master.setup() callback must not change configuration registers, as that could corrupt I/O that is in progress for other SPI slaves. The only exception is the configuration of the native chip select polarity in SPI master mode, as a wrong chip select polarity will cause havoc during all future transfers to any other SPI slave. Hence stop writing to registers in sh_msiof_spi_setup(), unless it is the first call for a controller using a native chip select, or unless native chip select polarity has changed (note that you'll loose anyway if I/O is in progress). Even then, only do what is strictly necessary, instead of calling sh_msiof_spi_set_pin_regs(). Signed-off-by: Geert Uytterhoeven Signed-off-by: Mark Brown [PL: Manually applied the changes, dropped check for slave] Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- drivers/spi/spi-sh-msiof.c | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/drivers/spi/spi-sh-msiof.c b/drivers/spi/spi-sh-msiof.c index 8c25dbcaae4d..13aa354aa2e9 100644 --- a/drivers/spi/spi-sh-msiof.c +++ b/drivers/spi/spi-sh-msiof.c @@ -54,6 +54,8 @@ struct sh_msiof_spi_priv { void *rx_dma_page; dma_addr_t tx_dma_addr; dma_addr_t rx_dma_addr; + bool native_cs_inited; + bool native_cs_high; }; #define TMDR1 0x00 /* Transmit Mode Register 1 */ @@ -522,8 +524,7 @@ static int sh_msiof_spi_setup(struct spi_device *spi) { struct device_node *np = spi->master->dev.of_node; struct sh_msiof_spi_priv *p = spi_master_get_devdata(spi->master); - - pm_runtime_get_sync(&p->pdev->dev); + u32 clr, set, tmp; if (!np) { /* @@ -533,19 +534,28 @@ static int sh_msiof_spi_setup(struct spi_device *spi) spi->cs_gpio = (uintptr_t)spi->controller_data; } - /* Configure pins before deasserting CS */ - sh_msiof_spi_set_pin_regs(p, !!(spi->mode & SPI_CPOL), - !!(spi->mode & SPI_CPHA), - !!(spi->mode & SPI_3WIRE), - !!(spi->mode & SPI_LSB_FIRST), - !!(spi->mode & SPI_CS_HIGH)); - - if (spi->cs_gpio >= 0) + if (spi->cs_gpio >= 0) { gpio_set_value(spi->cs_gpio, !(spi->mode & SPI_CS_HIGH)); + return 0; + } + if (p->native_cs_inited && + (p->native_cs_high == !!(spi->mode & SPI_CS_HIGH))) + return 0; + /* Configure native chip select mode/polarity early */ + clr = MDR1_SYNCMD_MASK; + set = MDR1_TRMD | TMDR1_PCON | MDR1_SYNCMD_SPI; + if (spi->mode & SPI_CS_HIGH) + clr |= BIT(MDR1_SYNCAC_SHIFT); + else + set |= BIT(MDR1_SYNCAC_SHIFT); + pm_runtime_get_sync(&p->pdev->dev); + tmp = sh_msiof_read(p, TMDR1) & ~clr; + sh_msiof_write(p, TMDR1, tmp | set); pm_runtime_put(&p->pdev->dev); - + p->native_cs_high = spi->mode & SPI_CS_HIGH; + p->native_cs_inited = true; return 0; } From 8380f3dc89075bc418b05cafac4db2700c169505 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Mon, 9 Nov 2020 15:50:04 +0000 Subject: [PATCH 0968/1149] spi: sh-msiof: Implement cs-gpios configuration commit b8761434bdec32fa46a644c26a12d16a9b0f58d8 upstream. The current support for GPIO chip selects assumes the GPIOs have been configured by platform code or the boot loader. This includes pinmux setup and GPIO direction. Hence it does not work as expected when just described in DT using the "cs-gpios" property. Fix this by: 1. using devm_gpiod_get_index() to request the GPIO, and thus configure pinmux, if needed, 2. configuring the GPIO direction is the spi_master.setup() callback. Use gpio_is_valid() instead of a check on positive numbers. Note that when using GPIO chip selects, at least one native chip select must be left unused, as that native chip select will be driven anyway, and (global) native chip select polarity must be taken into account. Signed-off-by: Geert Uytterhoeven Signed-off-by: Mark Brown [PL: Manually applied the changes, dropped multiple slave support] Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- drivers/spi/spi-sh-msiof.c | 62 +++++++++++++++++++++++++++++++++++--- 1 file changed, 57 insertions(+), 5 deletions(-) diff --git a/drivers/spi/spi-sh-msiof.c b/drivers/spi/spi-sh-msiof.c index 13aa354aa2e9..2c8690cd0058 100644 --- a/drivers/spi/spi-sh-msiof.c +++ b/drivers/spi/spi-sh-msiof.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -58,6 +59,8 @@ struct sh_msiof_spi_priv { bool native_cs_high; }; +#define MAX_SS 3 /* Maximum number of native chip selects */ + #define TMDR1 0x00 /* Transmit Mode Register 1 */ #define TMDR2 0x04 /* Transmit Mode Register 2 */ #define TMDR3 0x08 /* Transmit Mode Register 3 */ @@ -534,8 +537,8 @@ static int sh_msiof_spi_setup(struct spi_device *spi) spi->cs_gpio = (uintptr_t)spi->controller_data; } - if (spi->cs_gpio >= 0) { - gpio_set_value(spi->cs_gpio, !(spi->mode & SPI_CS_HIGH)); + if (gpio_is_valid(spi->cs_gpio)) { + gpio_direction_output(spi->cs_gpio, !(spi->mode & SPI_CS_HIGH)); return 0; } @@ -564,13 +567,18 @@ static int sh_msiof_prepare_message(struct spi_master *master, { struct sh_msiof_spi_priv *p = spi_master_get_devdata(master); const struct spi_device *spi = msg->spi; + u32 cs_high; + + if (gpio_is_valid(spi->cs_gpio)) + cs_high = p->native_cs_high; + else + cs_high = !!(spi->mode & SPI_CS_HIGH); /* Configure pins before asserting CS */ sh_msiof_spi_set_pin_regs(p, !!(spi->mode & SPI_CPOL), !!(spi->mode & SPI_CPHA), !!(spi->mode & SPI_3WIRE), - !!(spi->mode & SPI_LSB_FIRST), - !!(spi->mode & SPI_CS_HIGH)); + !!(spi->mode & SPI_LSB_FIRST), cs_high); return 0; } @@ -1030,6 +1038,45 @@ static struct sh_msiof_spi_info *sh_msiof_spi_parse_dt(struct device *dev) } #endif +static int sh_msiof_get_cs_gpios(struct sh_msiof_spi_priv *p) +{ + struct device *dev = &p->pdev->dev; + unsigned int used_ss_mask = 0; + unsigned int cs_gpios = 0; + unsigned int num_cs, i; + int ret; + + ret = gpiod_count(dev, "cs"); + if (ret <= 0) + return 0; + + num_cs = max_t(unsigned int, ret, p->master->num_chipselect); + for (i = 0; i < num_cs; i++) { + struct gpio_desc *gpiod; + + gpiod = devm_gpiod_get_index(dev, "cs", i, GPIOD_ASIS); + if (!IS_ERR(gpiod)) { + cs_gpios++; + continue; + } + + if (PTR_ERR(gpiod) != -ENOENT) + return PTR_ERR(gpiod); + + if (i >= MAX_SS) { + dev_err(dev, "Invalid native chip select %d\n", i); + return -EINVAL; + } + used_ss_mask |= BIT(i); + } + used_ss_mask = ffz(used_ss_mask); + if (cs_gpios && used_ss_mask >= MAX_SS) { + dev_err(dev, "No unused native chip select available\n"); + return -EINVAL; + } + return 0; +} + static struct dma_chan *sh_msiof_request_dma_chan(struct device *dev, enum dma_transfer_direction dir, unsigned int id, dma_addr_t port_addr) { @@ -1241,13 +1288,18 @@ static int sh_msiof_spi_probe(struct platform_device *pdev) if (p->info->rx_fifo_override) p->rx_fifo_size = p->info->rx_fifo_override; + /* Setup GPIO chip selects */ + master->num_chipselect = p->info->num_chipselect; + ret = sh_msiof_get_cs_gpios(p); + if (ret) + goto err1; + /* init master code */ master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH; master->mode_bits |= SPI_LSB_FIRST | SPI_3WIRE; master->flags = p->chipdata->master_flags; master->bus_num = pdev->id; master->dev.of_node = pdev->dev.of_node; - master->num_chipselect = p->info->num_chipselect; master->setup = sh_msiof_spi_setup; master->prepare_message = sh_msiof_prepare_message; master->bits_per_word_mask = SPI_BPW_RANGE_MASK(8, 32); From e936009adfbc1d29a0be7d9f696f89591c98a61e Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Mon, 9 Nov 2020 15:50:05 +0000 Subject: [PATCH 0969/1149] ARM: dts: r8a7742-iwg21d-q7: Add SPI NOR support commit 8368ca1540f0ff5bf4cfe92b1ea7fc8045f61d50 upstream. Add support for the SPI NOR device which is connected to MSIOF0 interface on the iWave RainboW-G21d-q7 board. Signed-off-by: Lad Prabhakar Reviewed-by: Chris Paterson Link: https://lore.kernel.org/r/20200907155541.2011-2-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [PL: Manually applied the changes] Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742-iwg21d-q7.dts | 31 +++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts index 858d206514e0..728664e901fc 100644 --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts @@ -134,6 +134,32 @@ status = "okay"; }; +&msiof0 { + pinctrl-0 = <&msiof0_pins>; + pinctrl-names = "default"; + cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>; + + status = "okay"; + + flash1: flash@0 { + compatible = "sst,sst25vf016b", "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <50000000>; + m25p,fast-read; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "user"; + reg = <0x00000000 0x00200000>; + }; + }; + }; +}; + &pcie_bus_clk { clock-frequency = <100000000>; }; @@ -157,6 +183,11 @@ function = "i2c2"; }; + msiof0_pins: msiof0 { + groups = "msiof0_clk", "msiof0_sync", "msiof0_tx", "msiof0_rx"; + function = "msiof0"; + }; + scifa2_pins: scifa2 { groups = "scifa2_data_c"; function = "scifa2"; From 43c7c68d8fbb9ad5197da05b497fcac493c2fd97 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Mon, 9 Nov 2020 15:50:06 +0000 Subject: [PATCH 0970/1149] pinctrl: sh-pfc: r8a7790: Add CAN pins, groups and functions commit bbf369d4e59a248ed715041267951f5cd051b317 upstream. Add pins, groups and functions for the CAN{0,1} interface. Signed-off-by: Lad Prabhakar Reviewed-by: Chris Paterson Link: https://lore.kernel.org/r/20200825095448.13093-1-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [PL: Manually applied the changes] Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- drivers/pinctrl/sh-pfc/pfc-r8a7790.c | 112 ++++++++++++++++++++++++++- 1 file changed, 110 insertions(+), 2 deletions(-) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c index 00b64c5ec866..d87f9dbbb302 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c @@ -1890,6 +1890,86 @@ static const unsigned int avb_gmii_mux[] = { AVB_TX_EN_MARK, AVB_TX_ER_MARK, AVB_TX_CLK_MARK, AVB_COL_MARK, }; +/* - CAN0 ----------------------------------------------------------------- */ +static const unsigned int can0_data_pins[] = { + /* CAN0 RX */ + RCAR_GP_PIN(1, 17), + /* CAN0 TX */ + RCAR_GP_PIN(1, 19), +}; +static const unsigned int can0_data_mux[] = { + CAN0_RX_MARK, + CAN0_TX_MARK, +}; +static const unsigned int can0_data_b_pins[] = { + /* CAN0 RXB */ + RCAR_GP_PIN(4, 5), + /* CAN0 TXB */ + RCAR_GP_PIN(4, 4), +}; +static const unsigned int can0_data_b_mux[] = { + CAN0_RX_B_MARK, + CAN0_TX_B_MARK, +}; +static const unsigned int can0_data_c_pins[] = { + /* CAN0 RXC */ + RCAR_GP_PIN(4, 26), + /* CAN0 TXC */ + RCAR_GP_PIN(4, 23), +}; +static const unsigned int can0_data_c_mux[] = { + CAN0_RX_C_MARK, + CAN0_TX_C_MARK, +}; +static const unsigned int can0_data_d_pins[] = { + /* CAN0 RXD */ + RCAR_GP_PIN(4, 26), + /* CAN0 TXD */ + RCAR_GP_PIN(4, 18), +}; +static const unsigned int can0_data_d_mux[] = { + CAN0_RX_D_MARK, + CAN0_TX_D_MARK, +}; +/* - CAN1 ----------------------------------------------------------------- */ +static const unsigned int can1_data_pins[] = { + /* CAN1 RX */ + RCAR_GP_PIN(1, 22), + /* CAN1 TX */ + RCAR_GP_PIN(1, 18), +}; +static const unsigned int can1_data_mux[] = { + CAN1_RX_MARK, + CAN1_TX_MARK, +}; +static const unsigned int can1_data_b_pins[] = { + /* CAN1 RXB */ + RCAR_GP_PIN(4, 7), + /* CAN1 TXB */ + RCAR_GP_PIN(4, 6), +}; +static const unsigned int can1_data_b_mux[] = { + CAN1_RX_B_MARK, + CAN1_TX_B_MARK, +}; +/* - CAN Clock -------------------------------------------------------------- */ +static const unsigned int can_clk_pins[] = { + /* CLK */ + RCAR_GP_PIN(1, 21), +}; + +static const unsigned int can_clk_mux[] = { + CAN_CLK_MARK, +}; + +static const unsigned int can_clk_b_pins[] = { + /* CLK */ + RCAR_GP_PIN(4, 3), +}; + +static const unsigned int can_clk_b_mux[] = { + CAN_CLK_B_MARK, +}; /* - DU RGB ----------------------------------------------------------------- */ static const unsigned int du_rgb666_pins[] = { /* R[7:2], G[7:2], B[7:2] */ @@ -3958,7 +4038,7 @@ static const unsigned int vin3_clk_mux[] = { }; static const struct { - struct sh_pfc_pin_group common[289]; + struct sh_pfc_pin_group common[297]; struct sh_pfc_pin_group automotive[1]; } pinmux_groups = { .common = { @@ -3975,6 +4055,14 @@ static const struct { SH_PFC_PIN_GROUP(avb_mdio), SH_PFC_PIN_GROUP(avb_mii), SH_PFC_PIN_GROUP(avb_gmii), + SH_PFC_PIN_GROUP(can0_data), + SH_PFC_PIN_GROUP(can0_data_b), + SH_PFC_PIN_GROUP(can0_data_c), + SH_PFC_PIN_GROUP(can0_data_d), + SH_PFC_PIN_GROUP(can1_data), + SH_PFC_PIN_GROUP(can1_data_b), + SH_PFC_PIN_GROUP(can_clk), + SH_PFC_PIN_GROUP(can_clk_b), SH_PFC_PIN_GROUP(du_rgb666), SH_PFC_PIN_GROUP(du_rgb888), SH_PFC_PIN_GROUP(du_clk_out_0), @@ -4276,6 +4364,23 @@ static const char * const avb_groups[] = { "avb_gmii", }; +static const char * const can0_groups[] = { + "can0_data", + "can0_data_b", + "can0_data_c", + "can0_data_d", +}; + +static const char * const can1_groups[] = { + "can1_data", + "can1_data_b", +}; + +static const char * const can_clk_groups[] = { + "can_clk", + "can_clk_b", +}; + static const char * const du_groups[] = { "du_rgb666", "du_rgb888", @@ -4716,13 +4821,16 @@ static const char * const vin3_groups[] = { }; static const struct { - struct sh_pfc_function common[55]; + struct sh_pfc_function common[58]; struct sh_pfc_function automotive[1]; } pinmux_functions = { .common = { SH_PFC_FUNCTION(audio_clk), SH_PFC_FUNCTION(avb), SH_PFC_FUNCTION(du), + SH_PFC_FUNCTION(can0), + SH_PFC_FUNCTION(can1), + SH_PFC_FUNCTION(can_clk), SH_PFC_FUNCTION(du0), SH_PFC_FUNCTION(du1), SH_PFC_FUNCTION(du2), From 385ea15d8afcf3602e06fd381e2029157dd4a208 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Mon, 9 Nov 2020 15:50:07 +0000 Subject: [PATCH 0971/1149] dt-bindings: can: rcar_can: Add r8a7742 support commit df73446a2882a4336cad473d8eb9d895e49f092b upstream. Document RZ/G1H (r8a7742) SoC specific bindings. The R8A7742 CAN module is identical to R-Car Gen2 family. No driver change is needed due to the fallback compatible value "renesas,rcar-gen2-can". Signed-off-by: Lad Prabhakar Reviewed-by: Chris Paterson Link: https://lore.kernel.org/r/20200816190732.6905-3-prabhakar.mahadev-lad.rj@bp.renesas.com Reviewed-by: Geert Uytterhoeven Acked-by: Rob Herring Signed-off-by: Marc Kleine-Budde Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/net/can/rcar_can.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/net/can/rcar_can.txt b/Documentation/devicetree/bindings/net/can/rcar_can.txt index fbad4d514a41..1a179e578541 100644 --- a/Documentation/devicetree/bindings/net/can/rcar_can.txt +++ b/Documentation/devicetree/bindings/net/can/rcar_can.txt @@ -2,7 +2,8 @@ Renesas R-Car CAN controller Device Tree Bindings ------------------------------------------------- Required properties: -- compatible: "renesas,can-r8a7743" if CAN controller is a part of R8A7743 SoC. +- compatible: "renesas,can-r8a7742" if CAN controller is a part of R8A7742 SoC. + "renesas,can-r8a7743" if CAN controller is a part of R8A7743 SoC. "renesas,can-r8a7744" if CAN controller is a part of R8A7744 SoC. "renesas,can-r8a7745" if CAN controller is a part of R8A7745 SoC. "renesas,can-r8a7778" if CAN controller is a part of R8A7778 SoC. From 869d5ad53a618825e06517093bce754360f0dced Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Mon, 9 Nov 2020 15:50:08 +0000 Subject: [PATCH 0972/1149] ARM: dts: r8a7742: Add CAN support commit 5a81ade1dd284a25c25b7582e94e33e5690c3da5 upstream. Add the definitions for can0 and can1 to the r8a7742 SoC dtsi. Signed-off-by: Lad Prabhakar Reviewed-by: Chris Paterson Link: https://lore.kernel.org/r/20200816190732.6905-4-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [PL: dropped resets property. changed clocks and power-domains properties.] Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index a8ce139e9fc5..af6888521595 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -35,6 +35,14 @@ clock-frequency = <0>; }; + /* External CAN clock */ + can_clk: can { + compatible = "fixed-clock"; + #clock-cells = <0>; + /* This value must be overridden by the board. */ + clock-frequency = <0>; + }; + clocks { #address-cells = <2>; #size-cells = <2>; @@ -1106,6 +1114,30 @@ status = "disabled"; }; + can0: can@e6e80000 { + compatible = "renesas,can-r8a7742", + "renesas,rcar-gen2-can"; + reg = <0 0xe6e80000 0 0x1000>; + interrupts = ; + clocks = <&mstp9_clks R8A7742_CLK_RCAN0>, + <&cpg_clocks R8A7742_CLK_RCAN>, <&can_clk>; + clock-names = "clkp1", "clkp2", "can_clk"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + + can1: can@e6e88000 { + compatible = "renesas,can-r8a7742", + "renesas,rcar-gen2-can"; + reg = <0 0xe6e88000 0 0x1000>; + interrupts = ; + clocks = <&mstp9_clks R8A7742_CLK_RCAN1>, + <&cpg_clocks R8A7742_CLK_RCAN>, <&can_clk>; + clock-names = "clkp1", "clkp2", "can_clk"; + power-domains = <&cpg_clocks>; + status = "disabled"; + }; + scifb0: serial@e6c20000 { compatible = "renesas,scifb-r8a7742", "renesas,scifb"; From 62e766b517b0133133c011a176bf2db6b6192a5c Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Mon, 9 Nov 2020 15:50:09 +0000 Subject: [PATCH 0973/1149] ARM: dts: r8a7742-iwg21d-q7: Add can1 support to carrier board commit 68ee7720a01cf20e1de20a2e770b6568db18c253 upstream. This patch enables CAN1 interface exposed through connector J20 on the carrier board. Signed-off-by: Lad Prabhakar Reviewed-by: Chris Paterson Link: https://lore.kernel.org/r/20200907155541.2011-3-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [PL: Manually applied the changes] Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742-iwg21d-q7.dts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts index 728664e901fc..4adcf97ae7c4 100644 --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts @@ -130,10 +130,26 @@ }; }; +&can1 { + pinctrl-0 = <&can1_pins>; + pinctrl-names = "default"; + + status = "okay"; +}; + &cmt0 { status = "okay"; }; +&gpio1 { + can-trx-en-gpio{ + gpio-hog; + gpios = <28 GPIO_ACTIVE_HIGH>; + output-low; + line-name = "can-trx-en-gpio"; + }; +}; + &msiof0 { pinctrl-0 = <&msiof0_pins>; pinctrl-names = "default"; @@ -178,6 +194,11 @@ function = "avb"; }; + can1_pins: can1 { + groups = "can1_data_b"; + function = "can1"; + }; + i2c2_pins: i2c2 { groups = "i2c2_b"; function = "i2c2"; From e34d7d7b707247ddf0eabb9ddb6b5b0a8203c849 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Mon, 9 Nov 2020 15:50:10 +0000 Subject: [PATCH 0974/1149] ARM: dts: r8a7742-iwg21d-q7-dbcm-ca: Add can0 support to camera DB commit 9d8827b27b758ecb4fda3da812c77c316b3a5548 upstream. This patch enables CAN0 interface exposed through connector J4 on the camera DB. Signed-off-by: Lad Prabhakar Reviewed-by: Chris Paterson Link: https://lore.kernel.org/r/20200911083615.17377-1-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts b/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts index 951820dfdf1c..629fa0819111 100644 --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts @@ -26,6 +26,12 @@ status = "disabled"; }; +&can0 { + pinctrl-0 = <&can0_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + ðer { pinctrl-0 = <ðer_pins>; pinctrl-names = "default"; @@ -48,6 +54,11 @@ }; &pfc { + can0_pins: can0 { + groups = "can0_data_d"; + function = "can0"; + }; + ether_pins: ether { groups = "eth_mdio", "eth_rmii"; function = "eth"; From 04f552ca6df60e64be34e8e83388b0a8347fe88d Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Mon, 9 Nov 2020 15:50:11 +0000 Subject: [PATCH 0975/1149] ARM: dts: r8a7742: Add IPMMU DT nodes commit 78aa219022f636f2adda9eb12be0a04b6907a4e0 upstream. Add the five IPMMU instances found in the r8a7742 to DT with a disabled status. Signed-off-by: Lad Prabhakar Reviewed-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/20200825141805.27105-3-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Joerg Roedel [PL: Dropped SoC specific compatible string] Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 43 ++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index af6888521595..d326602bee3f 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -782,6 +782,49 @@ #thermal-sensor-cells = <0>; }; + ipmmu_sy0: iommu@e6280000 { + compatible = "renesas,ipmmu-vmsa"; + reg = <0 0xe6280000 0 0x1000>; + interrupts = , + ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ipmmu_sy1: iommu@e6290000 { + compatible = "renesas,ipmmu-vmsa"; + reg = <0 0xe6290000 0 0x1000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ipmmu_ds: iommu@e6740000 { + compatible = "renesas,ipmmu-vmsa"; + reg = <0 0xe6740000 0 0x1000>; + interrupts = , + ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ipmmu_mp: iommu@ec680000 { + compatible = "renesas,ipmmu-vmsa"; + reg = <0 0xec680000 0 0x1000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ipmmu_mx: iommu@fe951000 { + compatible = "renesas,ipmmu-vmsa"; + reg = <0 0xfe951000 0 0x1000>; + interrupts = , + ; + #iommu-cells = <1>; + status = "disabled"; + }; + icram0: sram@e63a0000 { compatible = "mmio-sram"; reg = <0 0xe63a0000 0 0x12000>; From c47314d1a4fafc496bb1f62c31f287c88372a4c1 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Fri, 13 Nov 2020 16:15:49 +0900 Subject: [PATCH 0976/1149] CIP: Bump version suffix to -cip51 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 816ff0aeb9e3..ce6d14982ddb 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip50 +-cip51 From 49b58c42081b1e3e362be28f630be072259215e0 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Tue, 24 Nov 2020 17:09:24 +0000 Subject: [PATCH 0977/1149] dt-bindings: phy: rcar-gen2: Add r8a7742 support commit 9184450a95f6f446dc435cad9c5409c06373eaf1 upstream. Add USB PHY support for r8a7742 SoC. Renesas RZ/G1H (R8A7742) USB PHY is identical to the R-Car Gen2 family. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Geert Uytterhoeven Signed-off-by: Rob Herring Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt b/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt index 35c51d8bcd56..7b1672fb360f 100644 --- a/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt +++ b/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt @@ -4,7 +4,8 @@ This file provides information on what the device node for the R-Car generation 2 USB PHY contains. Required properties: -- compatible: "renesas,usb-phy-r8a7743" if the device is a part of R8A7743 SoC. +- compatible: "renesas,usb-phy-r8a7742" if the device is a part of R8A7742 SoC. + "renesas,usb-phy-r8a7743" if the device is a part of R8A7743 SoC. "renesas,usb-phy-r8a7744" if the device is a part of R8A7744 SoC. "renesas,usb-phy-r8a7745" if the device is a part of R8A7745 SoC. "renesas,usb-phy-r8a77470" if the device is a part of R8A77470 SoC. From 0a018156b255e3cc7bc0946cf0734807fc95abcf Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Tue, 24 Nov 2020 17:09:25 +0000 Subject: [PATCH 0978/1149] ARM: dts: r8a7742: Add USB 2.0 host support commit 4bb19c91d38e36b81e92de3d9b4e61d9b8928b54 upstream. Describe internal PCI bridge devices, USB phy device and link PCI USB devices to USB phy. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1590356277-19993-7-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: changed clocks and power-domain properties, removed resets property] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 111 +++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index d326602bee3f..b25b719fbd2b 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -964,6 +964,27 @@ status = "disabled"; }; + usbphy: usb-phy@e6590100 { + compatible = "renesas,usb-phy-r8a7742", + "renesas,rcar-gen2-usb-phy"; + reg = <0 0xe6590100 0 0x100>; + #address-cells = <1>; + #size-cells = <0>; + clocks = <&mstp7_clks R8A7742_CLK_HSUSB>; + clock-names = "usbhs"; + power-domains = <&cpg_clocks>; + status = "disabled"; + + usb0: usb-channel@0 { + reg = <0>; + #phy-cells = <1>; + }; + usb2: usb-channel@2 { + reg = <2>; + #phy-cells = <1>; + }; + }; + dmac0: dma-controller@e6700000 { compatible = "renesas,dmac-r8a7742", "renesas,rcar-dmac"; @@ -1549,6 +1570,96 @@ dma-channels = <13>; }; + pci0: pci@ee090000 { + compatible = "renesas,pci-r8a7742", + "renesas,pci-rcar-gen2"; + device_type = "pci"; + reg = <0 0xee090000 0 0xc00>, + <0 0xee080000 0 0x1100>; + interrupts = ; + clocks = <&mstp7_clks R8A7742_CLK_EHCI>; + power-domains = <&cpg_clocks>; + status = "disabled"; + + bus-range = <0 0>; + #address-cells = <3>; + #size-cells = <2>; + #interrupt-cells = <1>; + ranges = <0x02000000 0 0xee080000 0 0xee080000 0 0x00010000>; + interrupt-map-mask = <0xf800 0 0 0x7>; + interrupt-map = <0x0000 0 0 1 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>, + <0x0800 0 0 1 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>, + <0x1000 0 0 2 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; + + usb@1,0 { + reg = <0x800 0 0 0 0>; + phys = <&usb0 0>; + phy-names = "usb"; + }; + + usb@2,0 { + reg = <0x1000 0 0 0 0>; + phys = <&usb0 0>; + phy-names = "usb"; + }; + }; + + pci1: pci@ee0b0000 { + compatible = "renesas,pci-r8a7742", + "renesas,pci-rcar-gen2"; + device_type = "pci"; + reg = <0 0xee0b0000 0 0xc00>, + <0 0xee0a0000 0 0x1100>; + interrupts = ; + clocks = <&mstp7_clks R8A7742_CLK_EHCI>; + power-domains = <&cpg_clocks>; + status = "disabled"; + + bus-range = <1 1>; + #address-cells = <3>; + #size-cells = <2>; + #interrupt-cells = <1>; + ranges = <0x02000000 0 0xee0a0000 0 0xee0a0000 0 0x00010000>; + interrupt-map-mask = <0xf800 0 0 0x7>; + interrupt-map = <0x0000 0 0 1 &gic GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>, + <0x0800 0 0 1 &gic GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>, + <0x1000 0 0 2 &gic GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; + }; + + pci2: pci@ee0d0000 { + compatible = "renesas,pci-r8a7742", + "renesas,pci-rcar-gen2"; + device_type = "pci"; + clocks = <&mstp7_clks R8A7742_CLK_EHCI>; + power-domains = <&cpg_clocks>; + reg = <0 0xee0d0000 0 0xc00>, + <0 0xee0c0000 0 0x1100>; + interrupts = ; + status = "disabled"; + + bus-range = <2 2>; + #address-cells = <3>; + #size-cells = <2>; + #interrupt-cells = <1>; + ranges = <0x02000000 0 0xee0c0000 0 0xee0c0000 0 0x00010000>; + interrupt-map-mask = <0xf800 0 0 0x7>; + interrupt-map = <0x0000 0 0 1 &gic GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>, + <0x0800 0 0 1 &gic GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>, + <0x1000 0 0 2 &gic GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; + + usb@1,0 { + reg = <0x20800 0 0 0 0>; + phys = <&usb2 0>; + phy-names = "usb"; + }; + + usb@2,0 { + reg = <0x21000 0 0 0 0>; + phys = <&usb2 0>; + phy-names = "usb"; + }; + }; + sdhi0: mmc@ee100000 { compatible = "renesas,sdhi-r8a7742", "renesas,rcar-gen2-sdhi"; From e879baa7b38420bb9086033da57f74bc438d03cc Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Tue, 24 Nov 2020 17:09:26 +0000 Subject: [PATCH 0979/1149] dt-bindings: usb: renesas,usbhs: Add support for r8a7742 commit c092e1356b378e8567f9d6404ac27b57a4f47ae6 upstream. Document support for RZ/G1H (R8A7742) SoC. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Geert Uytterhoeven Signed-off-by: Rob Herring [biju: Patched text version of bindings file] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/usb/renesas_usbhs.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/usb/renesas_usbhs.txt b/Documentation/devicetree/bindings/usb/renesas_usbhs.txt index 5a26deea5b97..d0516953b9d2 100644 --- a/Documentation/devicetree/bindings/usb/renesas_usbhs.txt +++ b/Documentation/devicetree/bindings/usb/renesas_usbhs.txt @@ -3,6 +3,7 @@ Renesas Electronics USBHS driver Required properties: - compatible: Must contain one or more of the following: + - "renesas,usbhs-r8a7742" for r8a7742 (RZ/G1H) compatible device - "renesas,usbhs-r8a7743" for r8a7743 (RZ/G1M) compatible device - "renesas,usbhs-r8a7744" for r8a7744 (RZ/G1N) compatible device - "renesas,usbhs-r8a7745" for r8a7745 (RZ/G1E) compatible device From f48dcb0672c5b37e81ade67dffa2dfb48d5d5e9a Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Tue, 24 Nov 2020 17:09:27 +0000 Subject: [PATCH 0980/1149] ARM: dts: r8a7742: Add USB-DMAC and HSUSB device nodes commit b8618745829de50563470cd1e58c7ea10d6481b6 upstream. Add USB DMAC and HSUSB device nodes on RZ/G1H SoC dtsi. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1590356277-19993-8-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: changed clocks and power-domain properties, removed resets property] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 42 ++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index b25b719fbd2b..5c516e17ca54 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -964,6 +964,22 @@ status = "disabled"; }; + hsusb: usb@e6590000 { + compatible = "renesas,usbhs-r8a7742", + "renesas,rcar-gen2-usbhs"; + reg = <0 0xe6590000 0 0x100>; + interrupts = ; + clocks = <&mstp7_clks R8A7742_CLK_HSUSB>; + dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, + <&usb_dmac1 0>, <&usb_dmac1 1>; + dma-names = "ch0", "ch1", "ch2", "ch3"; + power-domains = <&cpg_clocks>; + renesas,buswait = <4>; + phys = <&usb0 1>; + phy-names = "usb"; + status = "disabled"; + }; + usbphy: usb-phy@e6590100 { compatible = "renesas,usb-phy-r8a7742", "renesas,rcar-gen2-usb-phy"; @@ -985,6 +1001,32 @@ }; }; + usb_dmac0: dma-controller@e65a0000 { + compatible = "renesas,r8a7742-usb-dmac", + "renesas,usb-dmac"; + reg = <0 0xe65a0000 0 0x100>; + interrupts = , + ; + interrupt-names = "ch0", "ch1"; + clocks = <&mstp3_clks R8A7742_CLK_USBDMAC0>; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <2>; + }; + + usb_dmac1: dma-controller@e65b0000 { + compatible = "renesas,r8a7742-usb-dmac", + "renesas,usb-dmac"; + reg = <0 0xe65b0000 0 0x100>; + interrupts = , + ; + interrupt-names = "ch0", "ch1"; + clocks = <&mstp3_clks R8A7742_CLK_USBDMAC1>; + power-domains = <&cpg_clocks>; + #dma-cells = <1>; + dma-channels = <2>; + }; + dmac0: dma-controller@e6700000 { compatible = "renesas,dmac-r8a7742", "renesas,rcar-dmac"; From 87ae17d1f6ef14456100902e1be6c78f24ee2cd1 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Tue, 24 Nov 2020 17:09:28 +0000 Subject: [PATCH 0981/1149] dt-bindings: usb: usb-xhci: Document r8a7742 support commit 935796968ff8b69cb0c9f18c427899ebafd83509 upstream. Document r8a7742 xhci support. The driver will use the fallback compatible string "renesas,rcar-gen2-xhci", therefore no driver change is needed. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Geert Uytterhoeven Signed-off-by: Rob Herring Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/usb/usb-xhci.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/usb/usb-xhci.txt b/Documentation/devicetree/bindings/usb/usb-xhci.txt index bf5192b7348e..2cd959287fe9 100644 --- a/Documentation/devicetree/bindings/usb/usb-xhci.txt +++ b/Documentation/devicetree/bindings/usb/usb-xhci.txt @@ -3,8 +3,8 @@ USB xHCI controllers Required properties: - compatible: should be one of "generic-xhci", "marvell,armada-375-xhci", "marvell,armada-380-xhci", - "renesas,xhci-r8a7790", "renesas,xhci-r8a7791", "renesas,xhci-r8a7743", - "renesas,xhci-r8a7744" + "renesas,xhci-r8a7790", "renesas,xhci-r8a7791", "renesas,xhci-r8a7742" + "renesas,xhci-r8a7743", "renesas,xhci-r8a7744" (deprecated: "xhci-platform"). - reg: should contain address and length of the standard XHCI register set for the device. From 55b7aac3de4850c48d4ca1486619f8742d8bd4c6 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 24 Nov 2020 17:09:29 +0000 Subject: [PATCH 0982/1149] usb: host: xhci-plat: Add r8a7742 support This patch adds xhci r8a7742 driver support. There are lot of changes between upstream and 4.4 kernel and we cannot cleanly backport the changes from upstream. This patch is similar to commit d09ccbb73386 ("usb: host: xhci-plat: Add r8a7743 support") present in cip kernel. Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- drivers/usb/host/xhci-plat.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c index 26e0cd535deb..46e69e2db1fa 100644 --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c @@ -54,6 +54,7 @@ static int xhci_plat_setup(struct usb_hcd *hcd) if (of_device_is_compatible(of_node, "renesas,xhci-r8a7790") || of_device_is_compatible(of_node, "renesas,xhci-r8a7791") || + of_device_is_compatible(of_node, "renesas,xhci-r8a7742") || of_device_is_compatible(of_node, "renesas,xhci-r8a7743") || of_device_is_compatible(of_node, "renesas,xhci-r8a7744")) { ret = xhci_rcar_init_quirk(hcd); @@ -70,6 +71,7 @@ static int xhci_plat_start(struct usb_hcd *hcd) if (of_device_is_compatible(of_node, "renesas,xhci-r8a7790") || of_device_is_compatible(of_node, "renesas,xhci-r8a7791") || + of_device_is_compatible(of_node, "renesas,xhci-r8a7742") || of_device_is_compatible(of_node, "renesas,xhci-r8a7743") || of_device_is_compatible(of_node, "renesas,xhci-r8a7744")) xhci_rcar_start(hcd); @@ -271,6 +273,7 @@ static const struct of_device_id usb_xhci_of_match[] = { { .compatible = "xhci-platform" }, { .compatible = "marvell,armada-375-xhci"}, { .compatible = "marvell,armada-380-xhci"}, + { .compatible = "renesas,xhci-r8a7742"}, { .compatible = "renesas,xhci-r8a7743"}, { .compatible = "renesas,xhci-r8a7744"}, { .compatible = "renesas,xhci-r8a7790"}, From 1d9659b0e44882b48d8f35e2d26db34b84aee3d9 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Tue, 24 Nov 2020 17:09:30 +0000 Subject: [PATCH 0983/1149] ARM: dts: r8a7742: Add XHCI support commit ab586be87ed2cc94701b1ae70956ae1fad6ae992 upstream. Add XHCI support to R8A7742 SoC DT. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/1590356277-19993-9-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: changed clocks and power-domain properties, removed resets property] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index 5c516e17ca54..0da46a2edddd 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -1612,6 +1612,18 @@ dma-channels = <13>; }; + xhci: usb@ee000000 { + compatible = "renesas,xhci-r8a7742", + "renesas,rcar-gen2-xhci"; + reg = <0 0xee000000 0 0xc00>; + interrupts = ; + clocks = <&mstp3_clks R8A7742_CLK_SSUSB>; + power-domains = <&cpg_clocks>; + phys = <&usb2 1>; + phy-names = "usb"; + status = "disabled"; + }; + pci0: pci@ee090000 { compatible = "renesas,pci-r8a7742", "renesas,pci-rcar-gen2"; From c185bcf971ea15c7a13dc54daf35f76266aedd8a Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Tue, 24 Nov 2020 17:09:31 +0000 Subject: [PATCH 0984/1149] pinctrl: sh-pfc: r8a7790: Add USB1 PWEN pin and group commit 417e24986935f6bd6afa38010cc981cf4d7a7bef upstream. Add USB1 PWEN pin and group for USB1 interface. Signed-off-by: Lad Prabhakar Reviewed-by: Biju Das Link: https://lore.kernel.org/r/1595005225-11519-2-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: updated pin group common index] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- drivers/pinctrl/sh-pfc/pfc-r8a7790.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c index d87f9dbbb302..f85bd1623d46 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c @@ -3710,6 +3710,13 @@ static const unsigned int usb1_pins[] = { static const unsigned int usb1_mux[] = { USB1_PWEN_MARK, USB1_OVC_MARK, }; +static const unsigned int usb1_pwen_pins[] = { + /* PWEN */ + RCAR_GP_PIN(5, 20), +}; +static const unsigned int usb1_pwen_mux[] = { + USB1_PWEN_MARK, +}; /* - USB2 ------------------------------------------------------------------- */ static const unsigned int usb2_pins[] = { /* PWEN, OVC */ @@ -4038,7 +4045,7 @@ static const unsigned int vin3_clk_mux[] = { }; static const struct { - struct sh_pfc_pin_group common[297]; + struct sh_pfc_pin_group common[298]; struct sh_pfc_pin_group automotive[1]; } pinmux_groups = { .common = { @@ -4300,6 +4307,7 @@ static const struct { SH_PFC_PIN_GROUP(usb0), SH_PFC_PIN_GROUP(usb0_ovc_vbus), SH_PFC_PIN_GROUP(usb1), + SH_PFC_PIN_GROUP(usb1_pwen), SH_PFC_PIN_GROUP(usb2), VIN_DATA_PIN_GROUP(vin0_data, 24), VIN_DATA_PIN_GROUP(vin0_data, 20), @@ -4764,6 +4772,7 @@ static const char * const usb0_groups[] = { static const char * const usb1_groups[] = { "usb1", + "usb1_pwen", }; static const char * const usb2_groups[] = { From af594e49e03a801bae104304dc6234284317aea5 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Tue, 24 Nov 2020 17:09:32 +0000 Subject: [PATCH 0985/1149] ARM: dts: r8a7742-iwg21d-q7: Enable HSUSB, USB2.0 and xHCI commit eb302bb9c7ab9bbf8358b97b5f8b1c363af48239 upstream. Enable support for HSUSB, USB2.0 and xHCI on iWave RZ/G1H carrier board. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Biju Das Link: https://lore.kernel.org/r/1595005225-11519-3-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [biju: sorted the nodes as per mainline] Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742-iwg21d-q7.dts | 42 +++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts index 4adcf97ae7c4..958edef2004c 100644 --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts @@ -150,6 +150,12 @@ }; }; +&hsusb { + pinctrl-0 = <&usb0_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + &msiof0 { pinctrl-0 = <&msiof0_pins>; pinctrl-names = "default"; @@ -176,6 +182,24 @@ }; }; +&pci0 { + pinctrl-0 = <&usb0_pins>; + pinctrl-names = "default"; + /* Disable hsusb to enable USB2.0 host mode support on J2 */ + /* status = "okay"; */ +}; + +&pci1 { + pinctrl-0 = <&usb1_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&pci2 { + /* Disable xhci to enable USB2.0 host mode support on J23 bottom port */ + /* status = "okay"; */ +}; + &pcie_bus_clk { clock-frequency = <100000000>; }; @@ -224,6 +248,16 @@ groups = "ssi34_ctrl", "ssi3_data", "ssi4_data"; function = "ssi"; }; + + usb0_pins: usb0 { + groups = "usb0"; + function = "usb0"; + }; + + usb1_pins: usb1 { + groups = "usb1_pwen"; + function = "usb1"; + }; }; &rcar_sound { @@ -268,3 +302,11 @@ &ssi4 { shared-pin; }; + +&usbphy { + status = "okay"; +}; + +&xhci { + status = "okay"; +}; From d7466739b72e93ea0f1d3040f02aa5eb19599b9c Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Tue, 24 Nov 2020 17:40:36 +0000 Subject: [PATCH 0986/1149] dt-bindings: PCI: rcar: Add device tree support for r8a7742 commit d16d538ff49145b153976bd8e124116d369db266 upstream. Add support for r8a7742. The Renesas RZ/G1H (R8A7742) PCIe controller is identical to the R-Car Gen2 family. Link: https://lore.kernel.org/r/20200810174156.30880-2-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Lad Prabhakar Signed-off-by: Lorenzo Pieralisi Reviewed-by: Chris Paterson Reviewed-by: Geert Uytterhoeven Reviewed-by: Yoshihiro Shimoda Acked-by: Rob Herring Signed-off-by: Biju Das Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/pci/rcar-pci.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/pci/rcar-pci.txt b/Documentation/devicetree/bindings/pci/rcar-pci.txt index bedfdc122543..8a3d8b5be515 100644 --- a/Documentation/devicetree/bindings/pci/rcar-pci.txt +++ b/Documentation/devicetree/bindings/pci/rcar-pci.txt @@ -1,7 +1,8 @@ * Renesas R-Car PCIe interface Required properties: -compatible: "renesas,pcie-r8a7743" for the R8A7743 SoC; +compatible: "renesas,pcie-r8a7742" for the R8A7742 SoC; + "renesas,pcie-r8a7743" for the R8A7743 SoC; "renesas,pcie-r8a7779" for the R8A7779 SoC; "renesas,pcie-r8a7790" for the R8A7790 SoC; "renesas,pcie-r8a7791" for the R8A7791 SoC; From e8683e2955f33ae023ce1acac140d3d6dc5c289c Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Tue, 1 Dec 2020 08:39:28 +0000 Subject: [PATCH 0987/1149] base: soc: Early register bus when needed commit 1da1b3628df34a2a5e38b70c8551770aadce969d upstream. If soc_device_register() is called before soc_bus_register(), it crashes with a NULL pointer dereference. soc_bus_register() is already a core_initcall(), but drivers/base/ is entered later than e.g. drivers/pinctrl/ and drivers/soc/. Hence there are several subsystems that may need to know SoC revision information, while it's not so easy to initialize the SoC bus even earlier using an initcall. To fix this, let soc_device_register() register the bus early if that hasn't happened yet. Signed-off-by: Geert Uytterhoeven Acked-by: Arnd Bergmann Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- drivers/base/soc.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/base/soc.c b/drivers/base/soc.c index 84242e6b2897..c9fd0ee2ba50 100644 --- a/drivers/base/soc.c +++ b/drivers/base/soc.c @@ -114,6 +114,12 @@ struct soc_device *soc_device_register(struct soc_device_attribute *soc_dev_attr struct soc_device *soc_dev; int ret; + if (!soc_bus_type.p) { + ret = bus_register(&soc_bus_type); + if (ret) + goto out1; + } + soc_dev = kzalloc(sizeof(*soc_dev), GFP_KERNEL); if (!soc_dev) { ret = -ENOMEM; @@ -159,6 +165,9 @@ EXPORT_SYMBOL_GPL(soc_device_unregister); static int __init soc_bus_register(void) { + if (soc_bus_type.p) + return 0; + return bus_register(&soc_bus_type); } core_initcall(soc_bus_register); From db64746e8fd21de688ac74b7f1e52f9ffe42c4cd Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Tue, 1 Dec 2020 08:39:29 +0000 Subject: [PATCH 0988/1149] dt-bindings: arm: renesas: Convert 'renesas,prr' to json-schema commit 09f156d97e530c2ac631620f7b29508ff5cc4e6f upstream. Convert Renesas Product Register bindings documentation to json-schema. Signed-off-by: Simon Horman Reviewed-by: Rob Herring Link: https://lore.kernel.org/r/20190908120528.9392-1-horms+renesas@verge.net.au Signed-off-by: Geert Uytterhoeven [PL: Initially in upstream commit 5384f45cd9714287f198771bfb057eda799af9a8 ("ARM: shmobile: Document DT bindings for Product Register" added DT documentation later this was moved into separate file (renesas,prr.txt) in commit 74791d15fd7c405511e3cc097c2f043171ecbdb0 ("dt-bindings: arm: renesas: Move 'renesas,prr' binding to its own doc") and finally this was converted into json-schema so using the same commit to backport] Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- .../devicetree/bindings/arm/renesas,prr.yaml | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Documentation/devicetree/bindings/arm/renesas,prr.yaml diff --git a/Documentation/devicetree/bindings/arm/renesas,prr.yaml b/Documentation/devicetree/bindings/arm/renesas,prr.yaml new file mode 100644 index 000000000000..1f80767da38b --- /dev/null +++ b/Documentation/devicetree/bindings/arm/renesas,prr.yaml @@ -0,0 +1,37 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/arm/renesas,prr.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Renesas Product Register + +maintainers: + - Geert Uytterhoeven + - Magnus Damm + +description: | + Most Renesas ARM SoCs have a Product Register or Boundary Scan ID + Register that allows to retrieve SoC product and revision information. + If present, a device node for this register should be added. + +properties: + compatible: + enum: + - renesas,prr + - renesas,bsid + reg: + maxItems: 1 + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + prr: chipid@ff000044 { + compatible = "renesas,prr"; + reg = <0xff000044 4>; + }; From 4d782a3fb76383738daa60c3afbe4c8885f0a83b Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Tue, 1 Dec 2020 08:39:30 +0000 Subject: [PATCH 0989/1149] soc: renesas: Identify SoC and register with the SoC bus commit 8d6799a9ba23acd675f3243580ee6f1756fb4381 upstream. Identify the SoC type and revision, and register this information with the SoC bus, so it is available under /sys/devices/soc0/, and can be checked where needed using soc_device_match(). Identification is done using the Product Register or Common Chip Code Register, as declared in DT (PRR only for now), or using a hardcoded fallback if missing. Example: Detected Renesas R-Car Gen2 r8a7791 ES1.0 ... # cat /sys/devices/soc0/{machine,family,soc_id,revision} Koelsch R-Car Gen2 r8a7791 ES1.0 Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman [PL: Dropped references to other platforms apart from RZ/G1{ME}, dropped SOC_BUS config option from arm64, enabled SOC_BUS config option for ARCH_R8A7743 and ARCH_R8A7745] Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/mach-shmobile/Kconfig | 2 + drivers/soc/renesas/Makefile | 2 + drivers/soc/renesas/renesas-soc.c | 123 ++++++++++++++++++++++++++++++ 3 files changed, 127 insertions(+) create mode 100644 drivers/soc/renesas/renesas-soc.c diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index a51df53f0914..3f1e27b76d59 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig @@ -72,6 +72,7 @@ config ARCH_R8A7742 config ARCH_R8A7743 bool "RZ/G1M (R8A77430)" select ARCH_RCAR_GEN2 + select SOC_BUS config ARCH_R8A7744 bool "RZ/G1N (R8A77440)" @@ -81,6 +82,7 @@ config ARCH_R8A7744 config ARCH_R8A7745 bool "RZ/G1E (R8A77450)" select ARCH_RCAR_GEN2 + select SOC_BUS config ARCH_R8A77470 bool "RZ/G1C (R8A77470)" diff --git a/drivers/soc/renesas/Makefile b/drivers/soc/renesas/Makefile index 87517569af13..77e8f953f4c8 100644 --- a/drivers/soc/renesas/Makefile +++ b/drivers/soc/renesas/Makefile @@ -1 +1,3 @@ obj-$(CONFIG_ARCH_RCAR_GEN2) += rcar-rst.o + +obj-$(CONFIG_SOC_BUS) += renesas-soc.o diff --git a/drivers/soc/renesas/renesas-soc.c b/drivers/soc/renesas/renesas-soc.c new file mode 100644 index 000000000000..e36b51a52dfc --- /dev/null +++ b/drivers/soc/renesas/renesas-soc.c @@ -0,0 +1,123 @@ +/* + * Renesas SoC Identification + * + * Copyright (C) 2014-2016 Glider bvba + * + * 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; version 2 of the License. + * + * 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. + */ + +#include +#include +#include +#include +#include +#include + +struct renesas_family { + const char name[16]; + u32 reg; /* CCCR or PRR, if not in DT */ +}; + +static const struct renesas_family fam_rzg __initconst __maybe_unused = { + .name = "RZ/G", + .reg = 0xff000044, /* PRR (Product Register) */ +}; + +struct renesas_soc { + const struct renesas_family *family; + u8 id; +}; + +static const struct renesas_soc soc_rz_g1m __initconst __maybe_unused = { + .family = &fam_rzg, + .id = 0x47, +}; + +static const struct renesas_soc soc_rz_g1e __initconst __maybe_unused = { + .family = &fam_rzg, + .id = 0x4c, +}; + +static const struct of_device_id renesas_socs[] __initconst = { +#ifdef CONFIG_ARCH_R8A7743 + { .compatible = "renesas,r8a7743", .data = &soc_rz_g1m }, +#endif +#ifdef CONFIG_ARCH_R8A7745 + { .compatible = "renesas,r8a7745", .data = &soc_rz_g1e }, +#endif + { /* sentinel */ } +}; + +static int __init renesas_soc_init(void) +{ + struct soc_device_attribute *soc_dev_attr; + const struct renesas_family *family; + const struct of_device_id *match; + const struct renesas_soc *soc; + void __iomem *chipid = NULL; + struct soc_device *soc_dev; + struct device_node *np; + unsigned int product; + + match = of_match_node(renesas_socs, of_root); + if (!match) + return -ENODEV; + + soc = match->data; + family = soc->family; + + /* Try PRR first, then hardcoded fallback */ + np = of_find_compatible_node(NULL, NULL, "renesas,prr"); + if (np) { + chipid = of_iomap(np, 0); + of_node_put(np); + } else if (soc->id) { + chipid = ioremap(family->reg, 4); + } + if (chipid) { + product = readl(chipid); + iounmap(chipid); + if (soc->id && ((product >> 8) & 0xff) != soc->id) { + pr_warn("SoC mismatch (product = 0x%x)\n", product); + return -ENODEV; + } + } + + soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL); + if (!soc_dev_attr) + return -ENOMEM; + + np = of_find_node_by_path("/"); + of_property_read_string(np, "model", &soc_dev_attr->machine); + of_node_put(np); + + soc_dev_attr->family = kstrdup_const(family->name, GFP_KERNEL); + soc_dev_attr->soc_id = kstrdup_const(strchr(match->compatible, ',') + 1, + GFP_KERNEL); + if (chipid) + soc_dev_attr->revision = kasprintf(GFP_KERNEL, "ES%u.%u", + ((product >> 4) & 0x0f) + 1, + product & 0xf); + + pr_info("Detected Renesas %s %s %s\n", soc_dev_attr->family, + soc_dev_attr->soc_id, soc_dev_attr->revision ?: ""); + + soc_dev = soc_device_register(soc_dev_attr); + if (IS_ERR(soc_dev)) { + kfree(soc_dev_attr->revision); + kfree_const(soc_dev_attr->soc_id); + kfree_const(soc_dev_attr->family); + kfree(soc_dev_attr); + return PTR_ERR(soc_dev); + } + + return 0; +} +core_initcall(renesas_soc_init); From b9d71a58991741ca6e416dbd695e5221560bf168 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Tue, 1 Dec 2020 08:39:31 +0000 Subject: [PATCH 0990/1149] ARM: dts: r8a7743: Add device node for PRR commit 11d4407e939e74e89a29df88b1557b59ece9e9f9 upstream. Add a device node for the Product Register, which provides SoC product and revision information. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman [PL: sorted the node] Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7743.dtsi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index aff5ebbdb4bd..73b8f7f341f4 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -1781,6 +1781,11 @@ status = "disabled"; }; + prr: chipid@ff000044 { + compatible = "renesas,prr"; + reg = <0 0xff000044 0 4>; + }; + cmt0: timer@ffca0000 { compatible = "renesas,cmt-48-r8a7743", "renesas,cmt-48-gen2"; From eb18016d3cea2dae036b6a1a168a362cc85c4b8d Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Tue, 1 Dec 2020 08:39:32 +0000 Subject: [PATCH 0991/1149] ARM: dts: r8a7745: Add device node for PRR commit 8916c7b58319fa27eae25c0c9b9a4cd68b9b30bd upstream. Add a device node for the Product Register, which provides SoC product and revision information. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman [PL: sorted the node as per address] Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7745.dtsi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi index 5f603d9eafea..58bf2e52523e 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -1356,6 +1356,11 @@ }; }; + prr: chipid@ff000044 { + compatible = "renesas,prr"; + reg = <0 0xff000044 0 4>; + }; + cmt0: timer@ffca0000 { compatible = "renesas,cmt-48-r8a7745", "renesas,cmt-48-gen2"; From dd6ffabd7706e422e44a1f4351526bf609b4e8d3 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Tue, 1 Dec 2020 08:39:33 +0000 Subject: [PATCH 0992/1149] soc: renesas: Identify RZ/G1N commit cd59de80dd34dd2d1a3ca97d7a6e712c048b135a upstream. Add support for identifying the RZ/G1N (r8a7744) SoC. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman [PL: Enabled SOC_BUS config for RZ/G1N] Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/mach-shmobile/Kconfig | 1 + drivers/soc/renesas/renesas-soc.c | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index 3f1e27b76d59..8b84eb630dee 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig @@ -78,6 +78,7 @@ config ARCH_R8A7744 bool "RZ/G1N (R8A77440)" select ARCH_RCAR_GEN2 select ARM_ERRATA_798181 if SMP + select SOC_BUS config ARCH_R8A7745 bool "RZ/G1E (R8A77450)" diff --git a/drivers/soc/renesas/renesas-soc.c b/drivers/soc/renesas/renesas-soc.c index e36b51a52dfc..2cf62855cc45 100644 --- a/drivers/soc/renesas/renesas-soc.c +++ b/drivers/soc/renesas/renesas-soc.c @@ -40,6 +40,11 @@ static const struct renesas_soc soc_rz_g1m __initconst __maybe_unused = { .id = 0x47, }; +static const struct renesas_soc soc_rz_g1n __initconst __maybe_unused = { + .family = &fam_rzg, + .id = 0x4b, +}; + static const struct renesas_soc soc_rz_g1e __initconst __maybe_unused = { .family = &fam_rzg, .id = 0x4c, @@ -49,6 +54,9 @@ static const struct of_device_id renesas_socs[] __initconst = { #ifdef CONFIG_ARCH_R8A7743 { .compatible = "renesas,r8a7743", .data = &soc_rz_g1m }, #endif +#ifdef CONFIG_ARCH_R8A7744 + { .compatible = "renesas,r8a7744", .data = &soc_rz_g1n }, +#endif #ifdef CONFIG_ARCH_R8A7745 { .compatible = "renesas,r8a7745", .data = &soc_rz_g1e }, #endif From 6fe7f51465dca3ea676757465490bae49e064fde Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Tue, 1 Dec 2020 08:39:34 +0000 Subject: [PATCH 0993/1149] ARM: dts: r8a7744: Add device node for PRR Add a device node for the Product Register, which provides SoC product and revision information. PRR node is added as part of upstream commit d83010f87ab31 ("ARM: dts: r8a7744: Initial SoC device tree") as this commit includes initial SoC DTSI PRR node cannot be individually backported hence this new commit. Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7744.dtsi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index 079f46f17049..312c9aae8a10 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi @@ -1526,6 +1526,11 @@ }; }; + prr: chipid@ff000044 { + compatible = "renesas,prr"; + reg = <0 0xff000044 0 4>; + }; + cmt0: timer@ffca0000 { compatible = "renesas,cmt-48-r8a7744", "renesas,cmt-48-gen2"; From 5afec76eb42e9414664ef61bff64396c8608194c Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Tue, 1 Dec 2020 08:39:35 +0000 Subject: [PATCH 0994/1149] soc: renesas: Identify RZ/G1H commit 8848e1b14231a40ed66229fb3ee98519b32f2ae7 upstream. Add support for identifying the RZ/G1H (r8a7742) SoC. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman [PL: manually applied the changes, enabled SOC_BUS config for RZ/G1N] Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/mach-shmobile/Kconfig | 1 + drivers/soc/renesas/renesas-soc.c | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index 8b84eb630dee..6812b3e19ba3 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig @@ -68,6 +68,7 @@ config ARCH_R8A7742 bool "RZ/G1H (R8A77420)" select ARCH_RCAR_GEN2 select ARM_ERRATA_798181 if SMP + select SOC_BUS config ARCH_R8A7743 bool "RZ/G1M (R8A77430)" diff --git a/drivers/soc/renesas/renesas-soc.c b/drivers/soc/renesas/renesas-soc.c index 2cf62855cc45..eaa540bfc9bd 100644 --- a/drivers/soc/renesas/renesas-soc.c +++ b/drivers/soc/renesas/renesas-soc.c @@ -35,6 +35,11 @@ struct renesas_soc { u8 id; }; +static const struct renesas_soc soc_rz_g1h __initconst __maybe_unused = { + .family = &fam_rzg, + .id = 0x45, +}; + static const struct renesas_soc soc_rz_g1m __initconst __maybe_unused = { .family = &fam_rzg, .id = 0x47, @@ -51,6 +56,9 @@ static const struct renesas_soc soc_rz_g1e __initconst __maybe_unused = { }; static const struct of_device_id renesas_socs[] __initconst = { +#ifdef CONFIG_ARCH_R8A7742 + { .compatible = "renesas,r8a7742", .data = &soc_rz_g1h }, +#endif #ifdef CONFIG_ARCH_R8A7743 { .compatible = "renesas,r8a7743", .data = &soc_rz_g1m }, #endif From 58cb5bd6ac7de7a5fb361e5088b50b7ee4dbb4b4 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Tue, 1 Dec 2020 08:39:36 +0000 Subject: [PATCH 0995/1149] ARM: dts: r8a7742: Add device node for PRR Add a device node for the Product Register, which provides SoC product and revision information. PRR node is added as part of upstream commit eb4cdda7a30b3 ("ARM: dts: r8a7742: Initial SoC device tree") as this commit includes initial SoC DTSI PRR node cannot be individually backported hence this new commit. Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index 0da46a2edddd..2ad6f965ccbd 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -1927,6 +1927,11 @@ renesas,#wpf = <4>; }; + prr: chipid@ff000044 { + compatible = "renesas,prr"; + reg = <0 0xff000044 0 4>; + }; + cmt0: timer@ffca0000 { compatible = "renesas,cmt-48-r8a7742", "renesas,cmt-48-gen2"; From 4528d1f7728813a6d4ead2940d147f5b28ce093a Mon Sep 17 00:00:00 2001 From: Biju Das Date: Tue, 1 Dec 2020 08:39:37 +0000 Subject: [PATCH 0996/1149] soc: renesas: Identify RZ/G1C commit 1daf13ba10378cad9ea4f5f26b83dd36c36dcdc0 upstream. Add support for identifying the RZ/G1C (r8a77470) SoC. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman [PL: manually applied the changes, replaced fam_rzg1 to fam_rzg, enabled SOC_BUS config for RZ/G1C] Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/mach-shmobile/Kconfig | 1 + drivers/soc/renesas/renesas-soc.c | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index 6812b3e19ba3..017d03d3e4e5 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig @@ -89,6 +89,7 @@ config ARCH_R8A7745 config ARCH_R8A77470 bool "RZ/G1C (R8A77470)" select ARCH_RCAR_GEN2 + select SOC_BUS config ARCH_R8A7778 bool "R-Car M1A (R8A77781)" diff --git a/drivers/soc/renesas/renesas-soc.c b/drivers/soc/renesas/renesas-soc.c index eaa540bfc9bd..a267c7637003 100644 --- a/drivers/soc/renesas/renesas-soc.c +++ b/drivers/soc/renesas/renesas-soc.c @@ -55,6 +55,11 @@ static const struct renesas_soc soc_rz_g1e __initconst __maybe_unused = { .id = 0x4c, }; +static const struct renesas_soc soc_rz_g1c __initconst __maybe_unused = { + .family = &fam_rzg, + .id = 0x53, +}; + static const struct of_device_id renesas_socs[] __initconst = { #ifdef CONFIG_ARCH_R8A7742 { .compatible = "renesas,r8a7742", .data = &soc_rz_g1h }, @@ -67,6 +72,9 @@ static const struct of_device_id renesas_socs[] __initconst = { #endif #ifdef CONFIG_ARCH_R8A7745 { .compatible = "renesas,r8a7745", .data = &soc_rz_g1e }, +#endif +#ifdef CONFIG_ARCH_R8A77470 + { .compatible = "renesas,r8a77470", .data = &soc_rz_g1c }, #endif { /* sentinel */ } }; From 1d9a9094c01054b624cd936e8b130a2c27e38c49 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Tue, 1 Dec 2020 08:39:38 +0000 Subject: [PATCH 0997/1149] ARM: dts: r8a77470: Add device node for PRR Add a device node for the Product Register, which provides SoC product and revision information. PRR node is added as part of upstream commit 6929dfc591804 ("ARM: dts: r8a77470: Initial SoC device tree") as this commit includes initial SoC DTSI PRR node cannot be individually backported hence this new commit. Signed-off-by: Lad Prabhakar Signed-off-by: Pavel Machek Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a77470.dtsi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi index 1057bff76cc8..3bf1a458593b 100644 --- a/arch/arm/boot/dts/r8a77470.dtsi +++ b/arch/arm/boot/dts/r8a77470.dtsi @@ -715,6 +715,11 @@ power-domains = <&cpg_clocks>; }; + prr: chipid@ff000044 { + compatible = "renesas,prr"; + reg = <0 0xff000044 0 4>; + }; + cmt0: timer@ffca0000 { compatible = "renesas,cmt-48-r8a77470", "renesas,cmt-48-gen2"; From 3fecc3c2a2819c00d436c98534c751793ccbc2ee Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Sat, 12 Dec 2020 20:19:54 +0900 Subject: [PATCH 0998/1149] CIP: Bump version suffix to -cip52 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index ce6d14982ddb..eed45872b6e8 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip51 +-cip52 From 4490d27a976fb4ef09aa7a5ab410a347bb7e2329 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Sat, 9 Jan 2021 11:13:07 +0900 Subject: [PATCH 0999/1149] CIP: Bump version suffix to -cip53 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index eed45872b6e8..4f68b66e7eb4 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip52 +-cip53 From 7e49992a5a94a5f5523dce3d9f38bfc6d5b44826 Mon Sep 17 00:00:00 2001 From: Biju Das Date: Wed, 13 Jan 2021 16:00:54 +0000 Subject: [PATCH 1000/1149] pinctrl: renesas: r8a7790: Optimize pinctrl image size for R8A7742 commit 529b8eecb5c3b61cc53a21b72a12304a03e83c9f upstream. This driver supports both RZ/G1H and R-Car H2 SoCs. Optimize pinctrl image size for RZ/G1H, when support for R-Car H2 (R8A7790) is not enabled. Signed-off-by: Biju Das Link: https://lore.kernel.org/r/20201019124258.4574-6-biju.das.jz@bp.renesas.com Signed-off-by: Geert Uytterhoeven [PL: manually applied the changes] Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- drivers/pinctrl/sh-pfc/pfc-r8a7790.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c index f85bd1623d46..62e3664ff227 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c @@ -2412,6 +2412,8 @@ static const unsigned int intc_irq3_pins[] = { static const unsigned int intc_irq3_mux[] = { IRQ3_MARK, }; + +#ifdef CONFIG_PINCTRL_PFC_R8A7790 /* - MLB+ ------------------------------------------------------------------- */ static const unsigned int mlb_3pin_pins[] = { RCAR_GP_PIN(4, 0), RCAR_GP_PIN(4, 1), RCAR_GP_PIN(4, 2), @@ -2419,6 +2421,8 @@ static const unsigned int mlb_3pin_pins[] = { static const unsigned int mlb_3pin_mux[] = { MLB_CLK_MARK, MLB_SIG_MARK, MLB_DAT_MARK, }; +#endif /* CONFIG_PINCTRL_PFC_R8A7790 */ + /* - MMCIF0 ----------------------------------------------------------------- */ static const unsigned int mmc0_data1_pins[] = { /* D[0] */ @@ -4046,7 +4050,9 @@ static const unsigned int vin3_clk_mux[] = { static const struct { struct sh_pfc_pin_group common[298]; +#ifdef CONFIG_PINCTRL_PFC_R8A7790 struct sh_pfc_pin_group automotive[1]; +#endif } pinmux_groups = { .common = { SH_PFC_PIN_GROUP(audio_clk_a), @@ -4348,9 +4354,11 @@ static const struct { SH_PFC_PIN_GROUP(vin3_clkenb), SH_PFC_PIN_GROUP(vin3_clk), }, +#ifdef CONFIG_PINCTRL_PFC_R8A7790 .automotive = { SH_PFC_PIN_GROUP(mlb_3pin), } +#endif /* CONFIG_PINCTRL_PFC_R8A7790 */ }; static const char * const audio_clk_groups[] = { @@ -4494,9 +4502,11 @@ static const char * const intc_groups[] = { "intc_irq3", }; +#ifdef CONFIG_PINCTRL_PFC_R8A7790 static const char * const mlb_groups[] = { "mlb_3pin", }; +#endif /* CONFIG_PINCTRL_PFC_R8A7790 */ static const char * const mmc0_groups[] = { "mmc0_data1", @@ -4831,7 +4841,9 @@ static const char * const vin3_groups[] = { static const struct { struct sh_pfc_function common[58]; +#ifdef CONFIG_PINCTRL_PFC_R8A7790 struct sh_pfc_function automotive[1]; +#endif } pinmux_functions = { .common = { SH_PFC_FUNCTION(audio_clk), @@ -4893,9 +4905,11 @@ static const struct { SH_PFC_FUNCTION(vin2), SH_PFC_FUNCTION(vin3), }, +#ifdef CONFIG_PINCTRL_PFC_R8A7790 .automotive = { SH_PFC_FUNCTION(mlb), } +#endif /* CONFIG_PINCTRL_PFC_R8A7790 */ }; static const struct pinmux_cfg_reg pinmux_config_regs[] = { From ef17d73d1571a11d17a261f5fa176d507460d670 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Wed, 13 Jan 2021 16:00:55 +0000 Subject: [PATCH 1001/1149] display: renesas,du: Document the r8a7742 bindings commit c3415d91832cf47bf54973ef5415caeaba5249c6 upstream. Document the RZ/G1H (R8A7742) SoC in the R-Car DU bindings. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Laurent Pinchart Acked-by: Rob Herring Signed-off-by: Laurent Pinchart [PL: Manually applied the changes, dropped Port3 column changes] Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/display/renesas,du.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/display/renesas,du.txt b/Documentation/devicetree/bindings/display/renesas,du.txt index 96cc0805da56..d2f8a74c6718 100644 --- a/Documentation/devicetree/bindings/display/renesas,du.txt +++ b/Documentation/devicetree/bindings/display/renesas,du.txt @@ -3,6 +3,7 @@ Required Properties: - compatible: must be one of the following. + - "renesas,du-r8a7742" for R8A7742 (RZ/G1H) compatible DU - "renesas,du-r8a7743" for R8A7743 (RZ/G1M) compatible DU - "renesas,du-r8a7744" for R8A7744 (RZ/G1N) compatible DU - "renesas,du-r8a7745" for R8A7745 (RZ/G1E) compatible DU @@ -46,6 +47,7 @@ corresponding to each DU output. Port 0 Port1 Port2 ----------------------------------------------------------------------------- + R8A7742 (RZ/G1H) DPAD 0 LVDS 0 LVDS 1 R8A7743 (RZ/G1M) DPAD 0 LVDS 0 - R8A7744 (RZ/G1N) DPAD 0 LVDS 0 - R8A7745 (RZ/G1E) DPAD 0 DPAD 1 - From f59b92f62a9f882a8a52960a1326fb7d6c5089c4 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Wed, 13 Jan 2021 16:00:56 +0000 Subject: [PATCH 1002/1149] drm: rcar-du: Add r8a7742 support commit 9edf73fece3d27e6fb5a764b732eca94c941838e upstream. Add display support for the r8a7742 (RZ/G1H). The RZ/G1H shares a common, compatible configuration with the r8a7790 (R-Car H2) so that device info structure is reused, the only difference being TCON is unsupported on RZ/G1H (Currently unsupported by the driver). Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Laurent Pinchart Signed-off-by: Laurent Pinchart [PL:LVDS lanes 1 and 3 are switched in ES1 hardware (R8A7790) due to which RCAR_DU_QUIRK_LVDS_LANES quirk was introduced, this quirk is not valid on R8A7742 SoC so instead added new device info structure for R8A7742 SoC; fixed typo in commit message direct->display] Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- drivers/gpu/drm/rcar-du/rcar_du_drv.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c index edb9c3f0b862..586bc28b641e 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c @@ -35,6 +35,32 @@ * Device Information */ +static const struct rcar_du_device_info rcar_du_r8a7742_info = { + .features = RCAR_DU_FEATURE_CRTC_IRQ_CLOCK + | RCAR_DU_FEATURE_EXT_CTRL_REGS, + .quirks = RCAR_DU_QUIRK_ALIGN_128B, + .num_crtcs = 3, + .routes = { + /* R8A7742 has one RGB output and two LVDS outputs. */ + [RCAR_DU_OUTPUT_DPAD0] = { + .possible_crtcs = BIT(2) | BIT(1) | BIT(0), + .encoder_type = DRM_MODE_ENCODER_NONE, + .port = 0, + }, + [RCAR_DU_OUTPUT_LVDS0] = { + .possible_crtcs = BIT(0), + .encoder_type = DRM_MODE_ENCODER_LVDS, + .port = 1, + }, + [RCAR_DU_OUTPUT_LVDS1] = { + .possible_crtcs = BIT(2) | BIT(1), + .encoder_type = DRM_MODE_ENCODER_LVDS, + .port = 2, + }, + }, + .num_lvds = 2, +}; + static const struct rcar_du_device_info rzg1_du_r8a7743_info = { .features = RCAR_DU_FEATURE_CRTC_IRQ_CLOCK | RCAR_DU_FEATURE_EXT_CTRL_REGS, @@ -174,6 +200,7 @@ static const struct rcar_du_device_info rcar_du_r8a7794_info = { }; static const struct of_device_id rcar_du_of_table[] = { + { .compatible = "renesas,du-r8a7742", .data = &rcar_du_r8a7742_info }, { .compatible = "renesas,du-r8a7743", .data = &rzg1_du_r8a7743_info }, { .compatible = "renesas,du-r8a7744", .data = &rzg1_du_r8a7743_info }, { .compatible = "renesas,du-r8a7745", .data = &rzg1_du_r8a7745_info }, From 73a266776a5413625f438471633869d054a41387 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Wed, 13 Jan 2021 16:00:57 +0000 Subject: [PATCH 1003/1149] ARM: dts: r8a7742: Add DU support commit 6a62f64305c65e78db290c0ca153759b6b9ca130 upstream. Add a Display Unit (DU) node to r8a7742 SoC DT. Boards that want to enable the DU need to specify the output topology. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Laurent Pinchart Link: https://lore.kernel.org/r/20200807174954.14448-6-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [PL: changed clocks and reg property, added reg-names property, dropped resets, reset-names properties] Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 39 ++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index 2ad6f965ccbd..d4087bacd6f2 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -1927,6 +1927,45 @@ renesas,#wpf = <4>; }; + du: display@feb00000 { + compatible = "renesas,du-r8a7742"; + reg = <0 0xfeb00000 0 0x70000>, + <0 0xfeb90000 0 0x1c>, + <0 0xfeb94000 0 0x1c>; + reg-names = "du", "lvds.0", "lvds.1"; + interrupts = , + , + ; + clocks = <&mstp7_clks R8A7742_CLK_DU0>, + <&mstp7_clks R8A7742_CLK_DU1>, + <&mstp7_clks R8A7742_CLK_DU2>, + <&mstp7_clks R8A7742_CLK_LVDS0>, + <&mstp7_clks R8A7742_CLK_LVDS1>; + clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1"; + status = "disabled"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + du_out_rgb: endpoint { + }; + }; + port@1 { + reg = <1>; + du_out_lvds0: endpoint { + }; + }; + port@2 { + reg = <2>; + du_out_lvds1: endpoint { + }; + }; + }; + }; + prr: chipid@ff000044 { compatible = "renesas,prr"; reg = <0 0xff000044 0 4>; From 669dd602ee85e46fbf51614ddd1ecdd6927e16bc Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Wed, 13 Jan 2021 16:00:58 +0000 Subject: [PATCH 1004/1149] dt-bindings: pwm: renesas,tpu-pwm: Document r8a7742 support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit 6a78dfb8facadef74bdf5af5ed84f6c722299fbb upstream. Document r8a7742 specific compatible strings. No driver change is needed as the fallback compatible string "renesas,tpu" activates the right code in the driver. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Geert Uytterhoeven Acked-by: Rob Herring Acked-by: Uwe Kleine-König Signed-off-by: Thierry Reding [PL:Patched text version of bindings file] Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt b/Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt index 90e0a0a3ae71..1613243d88aa 100644 --- a/Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt +++ b/Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt @@ -5,6 +5,7 @@ Required Properties: - compatible: should be one of the following. - "renesas,tpu-r8a73a4": for R8A77A4 (R-Mobile APE6) compatible PWM controller. - "renesas,tpu-r8a7740": for R8A7740 (R-Mobile A1) compatible PWM controller. + - "renesas,tpu-r8a7742": for R8A7742 (RZ/G1H) compatible PWM controller. - "renesas,tpu-r8a7743": for R8A7743 (RZ/G1M) compatible PWM controller. - "renesas,tpu-r8a7745": for R8A7745 (RZ/G1E) compatible PWM controller. - "renesas,tpu-r8a7790": for R8A7790 (R-Car H2) compatible PWM controller. From d6fb1e66b3321d4e1b41b8a305d8746e22f4803e Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Wed, 13 Jan 2021 16:00:59 +0000 Subject: [PATCH 1005/1149] ARM: dts: r8a7742: Add TPU support commit 02b24822953571d3ef83029e53bcd011d39dcb39 upstream. Add TPU support to R8A7742 SoC DT. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/20200806183152.11809-6-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [PL:changed clocks and power-domain properties, removed resets property] Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index d4087bacd6f2..755136f88b01 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -742,6 +742,16 @@ reg = <0 0xe6060000 0 0x250>; }; + tpu: pwm@e60f0000 { + compatible = "renesas,tpu-r8a7742", "renesas,tpu"; + reg = <0 0xe60f0000 0 0x148>; + interrupts = ; + clocks = <&mstp3_clks R8A7742_CLK_TPU0>; + power-domains = <&cpg_clocks>; + #pwm-cells = <3>; + status = "disabled"; + }; + apmu@e6151000 { compatible = "renesas,r8a7742-apmu", "renesas,apmu"; reg = <0 0xe6151000 0 0x188>; From 28b929a82c3d4cb090a0c8fe984c46aa4a1da477 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Wed, 13 Jan 2021 16:01:00 +0000 Subject: [PATCH 1006/1149] dt-bindings: pwm: renesas,pwm-rcar: Add r8a7742 support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit 3b1954cd57bf7648417c593d60eac1ec661ad514 upstream. Document RZ/G1H (R8A7742) SoC bindings. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Acked-by: Uwe Kleine-König Reviewed-by: Geert Uytterhoeven Reviewed-by: Yoshihiro Shimoda Acked-by: Rob Herring Signed-off-by: Thierry Reding [PL:Patched text version of bindings file] Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- Documentation/devicetree/bindings/pwm/renesas,pwm-rcar.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/pwm/renesas,pwm-rcar.txt b/Documentation/devicetree/bindings/pwm/renesas,pwm-rcar.txt index 4493fc5771a9..e47a8d2495e8 100644 --- a/Documentation/devicetree/bindings/pwm/renesas,pwm-rcar.txt +++ b/Documentation/devicetree/bindings/pwm/renesas,pwm-rcar.txt @@ -2,6 +2,7 @@ Required Properties: - compatible: should be "renesas,pwm-rcar" and one of the following. + - "renesas,pwm-r8a7742": for RZ/G1H - "renesas,pwm-r8a7743": for RZ/G1M - "renesas,pwm-r8a7745": for RZ/G1E - "renesas,pwm-r8a7778": for R-Car M1A From 1e118c921059d6e0d14f848afa5e7143705b18ac Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Wed, 13 Jan 2021 16:01:01 +0000 Subject: [PATCH 1007/1149] ARM: dts: r8a7742: Add PWM SoC support commit b4a43810f596b55cb29b37ce4212ac7319661fb7 upstream. Add the definitions for pwm[0123456] to the SoC .dtsi. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Link: https://lore.kernel.org/r/20200806183152.11809-4-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [PL:changed clocks and power-domain properties, removed resets property] Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742.dtsi | 63 ++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi index 755136f88b01..ba2ddff1eff6 100644 --- a/arch/arm/boot/dts/r8a7742.dtsi +++ b/arch/arm/boot/dts/r8a7742.dtsi @@ -1371,6 +1371,69 @@ status = "disabled"; }; + pwm0: pwm@e6e30000 { + compatible = "renesas,pwm-r8a7742", "renesas,pwm-rcar"; + reg = <0 0xe6e30000 0 0x8>; + clocks = <&mstp5_clks R8A7742_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm1: pwm@e6e31000 { + compatible = "renesas,pwm-r8a7742", "renesas,pwm-rcar"; + reg = <0 0xe6e31000 0 0x8>; + clocks = <&mstp5_clks R8A7742_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm2: pwm@e6e32000 { + compatible = "renesas,pwm-r8a7742", "renesas,pwm-rcar"; + reg = <0 0xe6e32000 0 0x8>; + clocks = <&mstp5_clks R8A7742_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm3: pwm@e6e33000 { + compatible = "renesas,pwm-r8a7742", "renesas,pwm-rcar"; + reg = <0 0xe6e33000 0 0x8>; + clocks = <&mstp5_clks R8A7742_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm4: pwm@e6e34000 { + compatible = "renesas,pwm-r8a7742", "renesas,pwm-rcar"; + reg = <0 0xe6e34000 0 0x8>; + clocks = <&mstp5_clks R8A7742_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm5: pwm@e6e35000 { + compatible = "renesas,pwm-r8a7742", "renesas,pwm-rcar"; + reg = <0 0xe6e35000 0 0x8>; + clocks = <&mstp5_clks R8A7742_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm6: pwm@e6e36000 { + compatible = "renesas,pwm-r8a7742", "renesas,pwm-rcar"; + reg = <0 0xe6e36000 0 0x8>; + clocks = <&mstp5_clks R8A7742_CLK_PWM>; + power-domains = <&cpg_clocks>; + #pwm-cells = <2>; + status = "disabled"; + }; + rcar_sound: sound@ec500000 { /* * #sound-dai-cells is required From 5fa136ab4d246b23565633a275a0ff510bf18545 Mon Sep 17 00:00:00 2001 From: Lad Prabhakar Date: Wed, 13 Jan 2021 16:01:02 +0000 Subject: [PATCH 1008/1149] ARM: dts: r8a7742-iwg21d-q7: Add LCD support commit 9b533dc8f340f5e9e7f2ed610510b2191d5e447c upstream. The iwg21d comes with a 7" capacitive touch screen, therefore add support for it. Signed-off-by: Lad Prabhakar Reviewed-by: Marian-Cristian Rotariu Reviewed-by: Laurent Pinchart Link: https://lore.kernel.org/r/20200929140502.16017-1-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Geert Uytterhoeven [PL: remove the LVDS decoder as there is no driver for it; add panel timings to panel node since the LVDS driver reads them off the panel DT node; dropped power-supply property from panel node; dropped vcc_3v3_tft1 node; dropped vcc-supply property from touch node] Signed-off-by: Lad Prabhakar Signed-off-by: Nobuhiro Iwamatsu --- arch/arm/boot/dts/r8a7742-iwg21d-q7.dts | 73 +++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts index 958edef2004c..e876ba63c8c3 100644 --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts @@ -51,6 +51,41 @@ clock-frequency = <26000000>; }; + lcd_backlight: backlight { + compatible = "pwm-backlight"; + pwms = <&tpu 2 5000000 0>; + brightness-levels = <0 4 8 16 32 64 128 255>; + pinctrl-0 = <&backlight_pins>; + pinctrl-names = "default"; + default-brightness-level = <7>; + enable-gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>; + }; + + panel { + compatible = "edt,etm0700g0dh6"; + backlight = <&lcd_backlight>; + + port { + panel_in: endpoint { + remote-endpoint = <&du_out_lvds0>; + }; + }; + + panel-timing { + clock-frequency = <33260>; + hactive = <800>; + vactive = <480>; + + hfront-porch = <40>; + hback-porch = <88>; + hsync-len = <128>; + + vback-porch = <33>; + vfront-porch = <10>; + vsync-len = <2>; + }; + }; + reg_1p5v: 1p5v { compatible = "regulator-fixed"; regulator-name = "1P5V"; @@ -128,6 +163,15 @@ VDDIO-supply = <®_3p3v>; VDDD-supply = <®_1p5v>; }; + + touch: touchpanel@38 { + compatible = "edt,edt-ft5406"; + reg = <0x38>; + interrupt-parent = <&gpio0>; + interrupts = <24 IRQ_TYPE_EDGE_FALLING>; + /* GP1_29 is also shared with audio codec reset pin */ + reset-gpios = <&gpio1 29 GPIO_ACTIVE_LOW>; + }; }; &can1 { @@ -141,6 +185,26 @@ status = "okay"; }; +&du { + status = "okay"; + + ports { + port@1 { + endpoint { + remote-endpoint = <&panel_in>; + }; + }; + }; +}; + +&gpio0 { + touch-interrupt { + gpio-hog; + gpios = <24 GPIO_ACTIVE_LOW>; + input; + }; +}; + &gpio1 { can-trx-en-gpio{ gpio-hog; @@ -218,6 +282,11 @@ function = "avb"; }; + backlight_pins: backlight { + groups = "tpu0_to2"; + function = "tpu0"; + }; + can1_pins: can1 { groups = "can1_data_b"; function = "can1"; @@ -303,6 +372,10 @@ shared-pin; }; +&tpu { + status = "okay"; +}; + &usbphy { status = "okay"; }; From 7d472e4a11d6a2fb1c492b02c7d7dacd3297bbf4 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Fri, 12 Feb 2021 22:35:43 +0900 Subject: [PATCH 1009/1149] CIP: Bump version suffix to -cip54 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 4f68b66e7eb4..82c1ba0a8ab3 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip53 +-cip54 From 6e6d3d9215b2a3fe3d9ba56bc5295e1626969616 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Mon, 22 Mar 2021 07:03:54 +0900 Subject: [PATCH 1010/1149] CIP: Bump version suffix to -cip55 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 82c1ba0a8ab3..f59bf14a28ca 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip54 +-cip55 From cd5f211fda95e43a37ce2bf1d58486233641da9b Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Tue, 13 Apr 2021 10:50:35 +0900 Subject: [PATCH 1011/1149] CIP: Bump version suffix to -cip56 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index f59bf14a28ca..414552bf3cd4 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip55 +-cip56 From 999b74443ca356daa3b0238d7ff676f19728abed Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Fri, 14 May 2021 08:47:48 +0900 Subject: [PATCH 1012/1149] CIP: Bump version suffix to -cip57 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 414552bf3cd4..3c60b55c801d 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip56 +-cip57 From 91a8e96603d53c19b112388602066978c42cdc97 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Mon, 14 Jun 2021 20:26:12 +0900 Subject: [PATCH 1013/1149] CIP: Bump version suffix to -cip58 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 3c60b55c801d..7754368d91c4 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip57 +-cip58 From c55ad377e5140d299ac5f6e436642e9734534748 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Thu, 8 Jul 2021 18:34:48 +0900 Subject: [PATCH 1014/1149] CIP: Bump version suffix to -cip59 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 7754368d91c4..121e28c0daf4 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip58 +-cip59 From 6012d2c32efa70a548d6e59b763c39bb0d38f2e0 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Tue, 3 Aug 2021 09:17:11 +0900 Subject: [PATCH 1015/1149] CIP: Bump version suffix to -cip60 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 121e28c0daf4..2944693505e3 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip59 +-cip60 From 4efaeea21a7699c04fddc3381cd86c6e37676d20 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Tue, 17 Aug 2021 21:44:51 +0900 Subject: [PATCH 1016/1149] CIP: Bump version suffix to -cip61 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 2944693505e3..41f916a94ac2 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip60 +-cip61 From 823da4b312f214a4d0f750f9cb6157dcd47769fb Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Fri, 10 Sep 2021 16:10:32 +0900 Subject: [PATCH 1017/1149] CIP: Bump version suffix to -cip62 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 41f916a94ac2..15c8c3592843 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip61 +-cip62 From 18016d4e60e0ab15de4683f6caf64b6289612ac6 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Mon, 4 Oct 2021 09:56:08 +0900 Subject: [PATCH 1018/1149] CIP: Bump version suffix to -cip63 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 15c8c3592843..db9761cd9cc4 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip62 +-cip63 From 18599fbc73711361d2880d2051b2e1f15bcebc10 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Sat, 9 Oct 2021 16:45:41 +0900 Subject: [PATCH 1019/1149] CIP: Bump version suffix to -cip64 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index db9761cd9cc4..effd3be5baec 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip63 +-cip64 From 65ed894ba1119b9887f389d31fca58f662162de0 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Fri, 12 Nov 2021 13:47:53 +0900 Subject: [PATCH 1020/1149] CIP: Bump version suffix to -cip65 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index effd3be5baec..409056dad0d3 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip64 +-cip65 From f8a9792915e8ad9f417a6431735e953e944713c7 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Sun, 12 Dec 2021 17:08:39 +0900 Subject: [PATCH 1021/1149] CIP: Bump version suffix to -cip66 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 409056dad0d3..1131b8ea27de 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip65 +-cip66 From e113342a55e6846ad90c659a1b44d16f604e4b36 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Fri, 14 Jan 2022 21:30:39 +0900 Subject: [PATCH 1022/1149] CIP: Bump version suffix to -cip67 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 1131b8ea27de..850644b0e2e9 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip66 +-cip67 From ea2b25643aed790866a050f9605bbe7b845b8f31 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Mon, 14 Feb 2022 09:26:03 +0900 Subject: [PATCH 1023/1149] CIP: Bump version suffix to -cip68 after merge from stable Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 850644b0e2e9..9b4635eb6fd2 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip67 +-cip68 From da0f7c751d03f616fab477b32e4e185b379fa5c1 Mon Sep 17 00:00:00 2001 From: Florian Westphal Date: Thu, 3 Feb 2022 13:32:54 +0100 Subject: [PATCH 1024/1149] netfilter: nat: remove l4 protocol port rovers commit 6ed5943f8735e2b778d92ea4d9805c0a1d89bc2b upstream. This is a leftover from days where single-cpu systems were common: Store last port used to resolve a clash to use it as a starting point when the next conflict needs to be resolved. When we have parallel attempt to connect to same address:port pair, its likely that both cores end up computing the same "available" port, as both use same starting port, and newly used ports won't become visible to other cores until the conntrack gets confirmed later. One of the cores then has to drop the packet at insertion time because the chosen new tuple turns out to be in use after all. Lets simplify this: remove port rover and use a pseudo-random starting point. Note that this doesn't make netfilter default to 'fully random' mode; the 'rover' was only used if NAT could not reuse source port as-is. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso Signed-off-by: Greg Kroah-Hartman --- include/net/netfilter/nf_nat_l4proto.h | 2 +- net/netfilter/nf_nat_proto_common.c | 7 ++----- net/netfilter/nf_nat_proto_dccp.c | 5 +---- net/netfilter/nf_nat_proto_sctp.c | 5 +---- net/netfilter/nf_nat_proto_tcp.c | 5 +---- net/netfilter/nf_nat_proto_udp.c | 5 +---- net/netfilter/nf_nat_proto_udplite.c | 5 +---- 7 files changed, 8 insertions(+), 26 deletions(-) diff --git a/include/net/netfilter/nf_nat_l4proto.h b/include/net/netfilter/nf_nat_l4proto.h index 12f4cc841b6e..630f0f5c3fa3 100644 --- a/include/net/netfilter/nf_nat_l4proto.h +++ b/include/net/netfilter/nf_nat_l4proto.h @@ -64,7 +64,7 @@ void nf_nat_l4proto_unique_tuple(const struct nf_nat_l3proto *l3proto, struct nf_conntrack_tuple *tuple, const struct nf_nat_range *range, enum nf_nat_manip_type maniptype, - const struct nf_conn *ct, u16 *rover); + const struct nf_conn *ct); int nf_nat_l4proto_nlattr_to_range(struct nlattr *tb[], struct nf_nat_range *range); diff --git a/net/netfilter/nf_nat_proto_common.c b/net/netfilter/nf_nat_proto_common.c index 7d7466dbf663..ac57e47aded2 100644 --- a/net/netfilter/nf_nat_proto_common.c +++ b/net/netfilter/nf_nat_proto_common.c @@ -38,8 +38,7 @@ void nf_nat_l4proto_unique_tuple(const struct nf_nat_l3proto *l3proto, struct nf_conntrack_tuple *tuple, const struct nf_nat_range *range, enum nf_nat_manip_type maniptype, - const struct nf_conn *ct, - u16 *rover) + const struct nf_conn *ct) { unsigned int range_size, min, max, i; __be16 *portptr; @@ -84,15 +83,13 @@ void nf_nat_l4proto_unique_tuple(const struct nf_nat_l3proto *l3proto, } else if (range->flags & NF_NAT_RANGE_PROTO_RANDOM_FULLY) { off = prandom_u32(); } else { - off = *rover; + off = prandom_u32(); } for (i = 0; ; ++off) { *portptr = htons(min + off % range_size); if (++i != range_size && nf_nat_used_tuple(tuple, ct)) continue; - if (!(range->flags & NF_NAT_RANGE_PROTO_RANDOM_ALL)) - *rover = off; return; } } diff --git a/net/netfilter/nf_nat_proto_dccp.c b/net/netfilter/nf_nat_proto_dccp.c index 15c47b246d0d..e7d27c083393 100644 --- a/net/netfilter/nf_nat_proto_dccp.c +++ b/net/netfilter/nf_nat_proto_dccp.c @@ -20,8 +20,6 @@ #include #include -static u_int16_t dccp_port_rover; - static void dccp_unique_tuple(const struct nf_nat_l3proto *l3proto, struct nf_conntrack_tuple *tuple, @@ -29,8 +27,7 @@ dccp_unique_tuple(const struct nf_nat_l3proto *l3proto, enum nf_nat_manip_type maniptype, const struct nf_conn *ct) { - nf_nat_l4proto_unique_tuple(l3proto, tuple, range, maniptype, ct, - &dccp_port_rover); + nf_nat_l4proto_unique_tuple(l3proto, tuple, range, maniptype, ct); } static bool diff --git a/net/netfilter/nf_nat_proto_sctp.c b/net/netfilter/nf_nat_proto_sctp.c index cbc7ade1487b..b839373716e8 100644 --- a/net/netfilter/nf_nat_proto_sctp.c +++ b/net/netfilter/nf_nat_proto_sctp.c @@ -14,8 +14,6 @@ #include -static u_int16_t nf_sctp_port_rover; - static void sctp_unique_tuple(const struct nf_nat_l3proto *l3proto, struct nf_conntrack_tuple *tuple, @@ -23,8 +21,7 @@ sctp_unique_tuple(const struct nf_nat_l3proto *l3proto, enum nf_nat_manip_type maniptype, const struct nf_conn *ct) { - nf_nat_l4proto_unique_tuple(l3proto, tuple, range, maniptype, ct, - &nf_sctp_port_rover); + nf_nat_l4proto_unique_tuple(l3proto, tuple, range, maniptype, ct); } static bool diff --git a/net/netfilter/nf_nat_proto_tcp.c b/net/netfilter/nf_nat_proto_tcp.c index 4f8820fc5148..882e79c6df73 100644 --- a/net/netfilter/nf_nat_proto_tcp.c +++ b/net/netfilter/nf_nat_proto_tcp.c @@ -18,8 +18,6 @@ #include #include -static u16 tcp_port_rover; - static void tcp_unique_tuple(const struct nf_nat_l3proto *l3proto, struct nf_conntrack_tuple *tuple, @@ -27,8 +25,7 @@ tcp_unique_tuple(const struct nf_nat_l3proto *l3proto, enum nf_nat_manip_type maniptype, const struct nf_conn *ct) { - nf_nat_l4proto_unique_tuple(l3proto, tuple, range, maniptype, ct, - &tcp_port_rover); + nf_nat_l4proto_unique_tuple(l3proto, tuple, range, maniptype, ct); } static bool diff --git a/net/netfilter/nf_nat_proto_udp.c b/net/netfilter/nf_nat_proto_udp.c index b1e627227b6e..ed91bdd8857c 100644 --- a/net/netfilter/nf_nat_proto_udp.c +++ b/net/netfilter/nf_nat_proto_udp.c @@ -17,8 +17,6 @@ #include #include -static u16 udp_port_rover; - static void udp_unique_tuple(const struct nf_nat_l3proto *l3proto, struct nf_conntrack_tuple *tuple, @@ -26,8 +24,7 @@ udp_unique_tuple(const struct nf_nat_l3proto *l3proto, enum nf_nat_manip_type maniptype, const struct nf_conn *ct) { - nf_nat_l4proto_unique_tuple(l3proto, tuple, range, maniptype, ct, - &udp_port_rover); + nf_nat_l4proto_unique_tuple(l3proto, tuple, range, maniptype, ct); } static bool diff --git a/net/netfilter/nf_nat_proto_udplite.c b/net/netfilter/nf_nat_proto_udplite.c index 58340c97bd83..8be265378de9 100644 --- a/net/netfilter/nf_nat_proto_udplite.c +++ b/net/netfilter/nf_nat_proto_udplite.c @@ -17,8 +17,6 @@ #include #include -static u16 udplite_port_rover; - static void udplite_unique_tuple(const struct nf_nat_l3proto *l3proto, struct nf_conntrack_tuple *tuple, @@ -26,8 +24,7 @@ udplite_unique_tuple(const struct nf_nat_l3proto *l3proto, enum nf_nat_manip_type maniptype, const struct nf_conn *ct) { - nf_nat_l4proto_unique_tuple(l3proto, tuple, range, maniptype, ct, - &udplite_port_rover); + nf_nat_l4proto_unique_tuple(l3proto, tuple, range, maniptype, ct); } static bool From f087d4da136695e7986e8bbe7c1f9786f582264f Mon Sep 17 00:00:00 2001 From: Georgi Valkov Date: Tue, 1 Feb 2022 08:16:18 +0100 Subject: [PATCH 1025/1149] ipheth: fix EOVERFLOW in ipheth_rcvbulk_callback commit 63e4b45c82ed1bde979da7052229a4229ce9cabf upstream. When rx_buf is allocated we need to account for IPHETH_IP_ALIGN, which reduces the usable size by 2 bytes. Otherwise we have 1512 bytes usable instead of 1514, and if we receive more than 1512 bytes, ipheth_rcvbulk_callback is called with status -EOVERFLOW, after which the driver malfunctiones and all communication stops. Resolves ipheth 2-1:4.2: ipheth_rcvbulk_callback: urb status: -75 Fixes: f33d9e2b48a3 ("usbnet: ipheth: fix connectivity with iOS 14") Signed-off-by: Georgi Valkov Tested-by: Jan Kiszka Link: https://lore.kernel.org/all/B60B8A4B-92A0-49B3-805D-809A2433B46C@abv.bg/ Link: https://lore.kernel.org/all/24851bd2769434a5fc24730dce8e8a984c5a4505.1643699778.git.jan.kiszka@siemens.com/ Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman --- drivers/net/usb/ipheth.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/usb/ipheth.c b/drivers/net/usb/ipheth.c index 0cf5324d493e..52ed3da64f01 100644 --- a/drivers/net/usb/ipheth.c +++ b/drivers/net/usb/ipheth.c @@ -173,7 +173,7 @@ static int ipheth_alloc_urbs(struct ipheth_device *iphone) if (tx_buf == NULL) goto free_rx_urb; - rx_buf = usb_alloc_coherent(iphone->udev, IPHETH_BUF_SIZE, + rx_buf = usb_alloc_coherent(iphone->udev, IPHETH_BUF_SIZE + IPHETH_IP_ALIGN, GFP_KERNEL, &rx_urb->transfer_dma); if (rx_buf == NULL) goto free_tx_buf; @@ -198,7 +198,7 @@ static int ipheth_alloc_urbs(struct ipheth_device *iphone) static void ipheth_free_urbs(struct ipheth_device *iphone) { - usb_free_coherent(iphone->udev, IPHETH_BUF_SIZE, iphone->rx_buf, + usb_free_coherent(iphone->udev, IPHETH_BUF_SIZE + IPHETH_IP_ALIGN, iphone->rx_buf, iphone->rx_urb->transfer_dma); usb_free_coherent(iphone->udev, IPHETH_BUF_SIZE, iphone->tx_buf, iphone->tx_urb->transfer_dma); @@ -371,7 +371,7 @@ static int ipheth_rx_submit(struct ipheth_device *dev, gfp_t mem_flags) usb_fill_bulk_urb(dev->rx_urb, udev, usb_rcvbulkpipe(udev, dev->bulk_in), - dev->rx_buf, IPHETH_BUF_SIZE, + dev->rx_buf, IPHETH_BUF_SIZE + IPHETH_IP_ALIGN, ipheth_rcvbulk_callback, dev); dev->rx_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; From 475a52697f521802834ee52afb1d2219e9e22ee4 Mon Sep 17 00:00:00 2001 From: Raju Rangoju Date: Thu, 27 Jan 2022 11:32:22 +0530 Subject: [PATCH 1026/1149] net: amd-xgbe: ensure to reset the tx_timer_active flag commit 7674b7b559b683478c3832527c59bceb169e701d upstream. Ensure to reset the tx_timer_active flag in xgbe_stop(), otherwise a port restart may result in tx timeout due to uncleared flag. Fixes: c635eaacbf77 ("amd-xgbe: Remove Tx coalescing") Co-developed-by: Sudheesh Mavila Signed-off-by: Sudheesh Mavila Signed-off-by: Raju Rangoju Acked-by: Tom Lendacky Link: https://lore.kernel.org/r/20220127060222.453371-1-Raju.Rangoju@amd.com Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c index 23fc244eb8a4..a292fa0e887e 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c @@ -494,7 +494,9 @@ static void xgbe_stop_timers(struct xgbe_prv_data *pdata) if (!channel->tx_ring) break; + /* Deactivate the Tx timer */ del_timer_sync(&channel->tx_timer); + channel->tx_timer_active = 0; } } From 9bf0b2cf782c03adeee198134706670ca157d44e Mon Sep 17 00:00:00 2001 From: Shyam Sundar S K Date: Thu, 27 Jan 2022 14:50:03 +0530 Subject: [PATCH 1027/1149] net: amd-xgbe: Fix skb data length underflow commit 5aac9108a180fc06e28d4e7fb00247ce603b72ee upstream. There will be BUG_ON() triggered in include/linux/skbuff.h leading to intermittent kernel panic, when the skb length underflow is detected. Fix this by dropping the packet if such length underflows are seen because of inconsistencies in the hardware descriptors. Fixes: 622c36f143fc ("amd-xgbe: Fix jumbo MTU processing on newer hardware") Suggested-by: Tom Lendacky Signed-off-by: Shyam Sundar S K Acked-by: Tom Lendacky Link: https://lore.kernel.org/r/20220127092003.2812745-1-Shyam-sundar.S-k@amd.com Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c index a292fa0e887e..2050c157eb74 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c @@ -1976,6 +1976,14 @@ static int xgbe_rx_poll(struct xgbe_channel *channel, int budget) buf2_len = xgbe_rx_buf2_len(rdata, packet, len); len += buf2_len; + if (buf2_len > rdata->rx.buf.dma_len) { + /* Hardware inconsistency within the descriptors + * that has resulted in a length underflow. + */ + error = 1; + goto skip_data; + } + if (!skb) { skb = xgbe_create_skb(pdata, napi, rdata, buf1_len); @@ -2005,8 +2013,10 @@ static int xgbe_rx_poll(struct xgbe_channel *channel, int budget) if (!last || context_next) goto read_again; - if (!skb) + if (!skb || error) { + dev_kfree_skb(skb); goto next_packet; + } /* Be sure we don't exceed the configured MTU */ max_len = netdev->mtu + ETH_HLEN; From d707a4f8965d1b7e5193b4b6f13de2a9f03f4257 Mon Sep 17 00:00:00 2001 From: Eric Dumazet Date: Mon, 31 Jan 2022 17:21:06 -0800 Subject: [PATCH 1028/1149] rtnetlink: make sure to refresh master_dev/m_ops in __rtnl_newlink() commit c6f6f2444bdbe0079e41914a35081530d0409963 upstream. While looking at one unrelated syzbot bug, I found the replay logic in __rtnl_newlink() to potentially trigger use-after-free. It is better to clear master_dev and m_ops inside the loop, in case we have to replay it. Fixes: ba7d49b1f0f8 ("rtnetlink: provide api for getting and setting slave info") Signed-off-by: Eric Dumazet Cc: Jiri Pirko Link: https://lore.kernel.org/r/20220201012106.216495-1-eric.dumazet@gmail.com Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman --- net/core/rtnetlink.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index 7d6fe9ba9a24..6176e5ba5aa0 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c @@ -2198,9 +2198,9 @@ static int rtnl_newlink(struct sk_buff *skb, struct nlmsghdr *nlh) { struct net *net = sock_net(skb->sk); const struct rtnl_link_ops *ops; - const struct rtnl_link_ops *m_ops = NULL; + const struct rtnl_link_ops *m_ops; struct net_device *dev; - struct net_device *master_dev = NULL; + struct net_device *master_dev; struct ifinfomsg *ifm; char kind[MODULE_NAME_LEN]; char ifname[IFNAMSIZ]; @@ -2231,6 +2231,8 @@ static int rtnl_newlink(struct sk_buff *skb, struct nlmsghdr *nlh) dev = NULL; } + master_dev = NULL; + m_ops = NULL; if (dev) { master_dev = netdev_master_upper_dev_get(dev); if (master_dev) From 43d394cd9463e81e037647ee79eb49d06c7ea21b Mon Sep 17 00:00:00 2001 From: Eric Dumazet Date: Mon, 31 Jan 2022 18:23:58 -0800 Subject: [PATCH 1029/1149] af_packet: fix data-race in packet_setsockopt / packet_setsockopt commit e42e70ad6ae2ae511a6143d2e8da929366e58bd9 upstream. When packet_setsockopt( PACKET_FANOUT_DATA ) reads po->fanout, no lock is held, meaning that another thread can change po->fanout. Given that po->fanout can only be set once during the socket lifetime (it is only cleared from fanout_release()), we can use READ_ONCE()/WRITE_ONCE() to document the race. BUG: KCSAN: data-race in packet_setsockopt / packet_setsockopt write to 0xffff88813ae8e300 of 8 bytes by task 14653 on cpu 0: fanout_add net/packet/af_packet.c:1791 [inline] packet_setsockopt+0x22fe/0x24a0 net/packet/af_packet.c:3931 __sys_setsockopt+0x209/0x2a0 net/socket.c:2180 __do_sys_setsockopt net/socket.c:2191 [inline] __se_sys_setsockopt net/socket.c:2188 [inline] __x64_sys_setsockopt+0x62/0x70 net/socket.c:2188 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x44/0xd0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x44/0xae read to 0xffff88813ae8e300 of 8 bytes by task 14654 on cpu 1: packet_setsockopt+0x691/0x24a0 net/packet/af_packet.c:3935 __sys_setsockopt+0x209/0x2a0 net/socket.c:2180 __do_sys_setsockopt net/socket.c:2191 [inline] __se_sys_setsockopt net/socket.c:2188 [inline] __x64_sys_setsockopt+0x62/0x70 net/socket.c:2188 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x44/0xd0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x44/0xae value changed: 0x0000000000000000 -> 0xffff888106f8c000 Reported by Kernel Concurrency Sanitizer on: CPU: 1 PID: 14654 Comm: syz-executor.3 Not tainted 5.16.0-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Fixes: 47dceb8ecdc1 ("packet: add classic BPF fanout mode") Signed-off-by: Eric Dumazet Cc: Willem de Bruijn Reported-by: syzbot Link: https://lore.kernel.org/r/20220201022358.330621-1-eric.dumazet@gmail.com Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman --- net/packet/af_packet.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index 9208bc179302..ef9edd70160c 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -1723,7 +1723,10 @@ static int fanout_add(struct sock *sk, u16 id, u16 type_flags) err = -ENOSPC; if (atomic_read(&match->sk_ref) < PACKET_FANOUT_MAX) { __dev_remove_pack(&po->prot_hook); - po->fanout = match; + + /* Paired with packet_setsockopt(PACKET_FANOUT_DATA) */ + WRITE_ONCE(po->fanout, match); + po->rollover = rollover; rollover = NULL; atomic_inc(&match->sk_ref); @@ -3795,7 +3798,8 @@ packet_setsockopt(struct socket *sock, int level, int optname, char __user *optv } case PACKET_FANOUT_DATA: { - if (!po->fanout) + /* Paired with the WRITE_ONCE() in fanout_add() */ + if (!READ_ONCE(po->fanout)) return -EINVAL; return fanout_set_data(po, optval, optlen); From 86ad5e66a4c50aa415e9c3e0ba5cc8bd023708d2 Mon Sep 17 00:00:00 2001 From: Mark Brown Date: Mon, 24 Jan 2022 15:32:51 +0000 Subject: [PATCH 1030/1149] ASoC: ops: Reject out of bounds values in snd_soc_put_volsw() commit 817f7c9335ec01e0f5e8caffc4f1dcd5e458a4c0 upstream. We don't currently validate that the values being set are within the range we advertised to userspace as being valid, do so and reject any values that are out of range. Signed-off-by: Mark Brown Cc: stable@vger.kernel.org Link: https://lore.kernel.org/r/20220124153253.3548853-2-broonie@kernel.org Signed-off-by: Mark Brown Signed-off-by: Greg Kroah-Hartman --- sound/soc/soc-ops.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/sound/soc/soc-ops.c b/sound/soc/soc-ops.c index acacbce2a821..24bc54657c3e 100644 --- a/sound/soc/soc-ops.c +++ b/sound/soc/soc-ops.c @@ -327,13 +327,27 @@ int snd_soc_put_volsw(struct snd_kcontrol *kcontrol, if (sign_bit) mask = BIT(sign_bit + 1) - 1; - val = ((ucontrol->value.integer.value[0] + min) & mask); + val = ucontrol->value.integer.value[0]; + if (mc->platform_max && val > mc->platform_max) + return -EINVAL; + if (val > max - min) + return -EINVAL; + if (val < 0) + return -EINVAL; + val = (val + min) & mask; if (invert) val = max - val; val_mask = mask << shift; val = val << shift; if (snd_soc_volsw_is_stereo(mc)) { - val2 = ((ucontrol->value.integer.value[1] + min) & mask); + val2 = ucontrol->value.integer.value[1]; + if (mc->platform_max && val2 > mc->platform_max) + return -EINVAL; + if (val2 > max - min) + return -EINVAL; + if (val2 < 0) + return -EINVAL; + val2 = (val2 + min) & mask; if (invert) val2 = max - val2; if (reg == reg2) { From 7a78bde1faa42e0057350378baf518a04b3bae58 Mon Sep 17 00:00:00 2001 From: Mark Brown Date: Mon, 24 Jan 2022 15:32:52 +0000 Subject: [PATCH 1031/1149] ASoC: ops: Reject out of bounds values in snd_soc_put_volsw_sx() commit 4f1e50d6a9cf9c1b8c859d449b5031cacfa8404e upstream. We don't currently validate that the values being set are within the range we advertised to userspace as being valid, do so and reject any values that are out of range. Signed-off-by: Mark Brown Cc: stable@vger.kernel.org Link: https://lore.kernel.org/r/20220124153253.3548853-3-broonie@kernel.org Signed-off-by: Mark Brown Signed-off-by: Greg Kroah-Hartman --- sound/soc/soc-ops.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sound/soc/soc-ops.c b/sound/soc/soc-ops.c index 24bc54657c3e..4b9ef6509799 100644 --- a/sound/soc/soc-ops.c +++ b/sound/soc/soc-ops.c @@ -441,8 +441,15 @@ int snd_soc_put_volsw_sx(struct snd_kcontrol *kcontrol, int err = 0; unsigned int val, val_mask, val2 = 0; + val = ucontrol->value.integer.value[0]; + if (mc->platform_max && val > mc->platform_max) + return -EINVAL; + if (val > max - min) + return -EINVAL; + if (val < 0) + return -EINVAL; val_mask = mask << shift; - val = (ucontrol->value.integer.value[0] + min) & mask; + val = (val + min) & mask; val = val << shift; err = snd_soc_component_update_bits(component, reg, val_mask, val); From 46057f6ddfddc634a16f0885b1e9b8c50f1605ed Mon Sep 17 00:00:00 2001 From: Mark Brown Date: Mon, 24 Jan 2022 15:32:53 +0000 Subject: [PATCH 1032/1149] ASoC: ops: Reject out of bounds values in snd_soc_put_xr_sx() commit 4cf28e9ae6e2e11a044be1bcbcfa1b0d8675fe4d upstream. We don't currently validate that the values being set are within the range we advertised to userspace as being valid, do so and reject any values that are out of range. Signed-off-by: Mark Brown Cc: stable@vger.kernel.org Link: https://lore.kernel.org/r/20220124153253.3548853-4-broonie@kernel.org Signed-off-by: Mark Brown Signed-off-by: Greg Kroah-Hartman --- sound/soc/soc-ops.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sound/soc/soc-ops.c b/sound/soc/soc-ops.c index 4b9ef6509799..15fa965a647e 100644 --- a/sound/soc/soc-ops.c +++ b/sound/soc/soc-ops.c @@ -915,6 +915,8 @@ int snd_soc_put_xr_sx(struct snd_kcontrol *kcontrol, unsigned int i, regval, regmask; int err; + if (val < mc->min || val > mc->max) + return -EINVAL; if (invert) val = max - val; val &= mask; From 13803fe4506839021b47b60cbf1b7c0ba6da2de9 Mon Sep 17 00:00:00 2001 From: Benjamin Gaignard Date: Mon, 31 Jan 2022 15:17:08 +0100 Subject: [PATCH 1033/1149] spi: mediatek: Avoid NULL pointer crash in interrupt commit f83a96e5f033fbbd21764705cb9c04234b96218e upstream. In some case, like after a transfer timeout, master->cur_msg pointer is NULL which led to a kernel crash when trying to use master->cur_msg->spi. mtk_spi_can_dma(), pointed by master->can_dma, doesn't use this parameter avoid the problem by setting NULL as second parameter. Fixes: a568231f46322 ("spi: mediatek: Add spi bus for Mediatek MT8173") Signed-off-by: Benjamin Gaignard Link: https://lore.kernel.org/r/20220131141708.888710-1-benjamin.gaignard@collabora.com Signed-off-by: Mark Brown Signed-off-by: Greg Kroah-Hartman --- drivers/spi/spi-mt65xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/spi/spi-mt65xx.c b/drivers/spi/spi-mt65xx.c index 7840067062a8..59b5f4f41975 100644 --- a/drivers/spi/spi-mt65xx.c +++ b/drivers/spi/spi-mt65xx.c @@ -429,7 +429,7 @@ static irqreturn_t mtk_spi_interrupt(int irq, void *dev_id) else mdata->state = MTK_SPI_IDLE; - if (!master->can_dma(master, master->cur_msg->spi, trans)) { + if (!master->can_dma(master, NULL, trans)) { if (trans->rx_buf) { if (mdata->xfer_len % 4) cnt = mdata->xfer_len / 4 + 1; From 7a4f007f2a66c5416ede5388c0dbf93b12017a7b Mon Sep 17 00:00:00 2001 From: Miquel Raynal Date: Tue, 25 Jan 2022 13:14:25 +0100 Subject: [PATCH 1034/1149] net: ieee802154: Return meaningful error codes from the netlink helpers commit 79c37ca73a6e9a33f7b2b7783ba6af07a448c8a9 upstream. Returning -1 does not indicate anything useful. Use a standard and meaningful error code instead. Fixes: a26c5fd7622d ("nl802154: add support for security layer") Signed-off-by: Miquel Raynal Acked-by: Alexander Aring Link: https://lore.kernel.org/r/20220125121426.848337-6-miquel.raynal@bootlin.com Signed-off-by: Stefan Schmidt Signed-off-by: Greg Kroah-Hartman --- net/ieee802154/nl802154.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/net/ieee802154/nl802154.c b/net/ieee802154/nl802154.c index b2ff2f7329c3..770073e40a2d 100644 --- a/net/ieee802154/nl802154.c +++ b/net/ieee802154/nl802154.c @@ -1423,7 +1423,7 @@ static int nl802154_send_key(struct sk_buff *msg, u32 cmd, u32 portid, hdr = nl802154hdr_put(msg, portid, seq, flags, cmd); if (!hdr) - return -1; + return -ENOBUFS; if (nla_put_u32(msg, NL802154_ATTR_IFINDEX, dev->ifindex)) goto nla_put_failure; @@ -1614,7 +1614,7 @@ static int nl802154_send_device(struct sk_buff *msg, u32 cmd, u32 portid, hdr = nl802154hdr_put(msg, portid, seq, flags, cmd); if (!hdr) - return -1; + return -ENOBUFS; if (nla_put_u32(msg, NL802154_ATTR_IFINDEX, dev->ifindex)) goto nla_put_failure; @@ -1792,7 +1792,7 @@ static int nl802154_send_devkey(struct sk_buff *msg, u32 cmd, u32 portid, hdr = nl802154hdr_put(msg, portid, seq, flags, cmd); if (!hdr) - return -1; + return -ENOBUFS; if (nla_put_u32(msg, NL802154_ATTR_IFINDEX, dev->ifindex)) goto nla_put_failure; @@ -1969,7 +1969,7 @@ static int nl802154_send_seclevel(struct sk_buff *msg, u32 cmd, u32 portid, hdr = nl802154hdr_put(msg, portid, seq, flags, cmd); if (!hdr) - return -1; + return -ENOBUFS; if (nla_put_u32(msg, NL802154_ATTR_IFINDEX, dev->ifindex)) goto nla_put_failure; From 36d49aec4c2fd7274898b18834888d1eaf077648 Mon Sep 17 00:00:00 2001 From: Miaoqian Lin Date: Thu, 27 Jan 2022 13:13:34 +0000 Subject: [PATCH 1035/1149] ASoC: fsl: Add missing error handling in pcm030_fabric_probe commit fb25621da5702c104ce0a48de5b174ced09e5b4e upstream. Add the missing platform_device_put() and platform_device_del() before return from pcm030_fabric_probe in the error handling case. Fixes: c912fa913446 ("ASoC: fsl: register the wm9712-codec") Signed-off-by: Miaoqian Lin Link: https://lore.kernel.org/r/20220127131336.30214-1-linmq006@gmail.com Signed-off-by: Mark Brown Signed-off-by: Greg Kroah-Hartman --- sound/soc/fsl/pcm030-audio-fabric.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/sound/soc/fsl/pcm030-audio-fabric.c b/sound/soc/fsl/pcm030-audio-fabric.c index ec731223cab3..72d454899484 100644 --- a/sound/soc/fsl/pcm030-audio-fabric.c +++ b/sound/soc/fsl/pcm030-audio-fabric.c @@ -90,16 +90,21 @@ static int pcm030_fabric_probe(struct platform_device *op) dev_err(&op->dev, "platform_device_alloc() failed\n"); ret = platform_device_add(pdata->codec_device); - if (ret) + if (ret) { dev_err(&op->dev, "platform_device_add() failed: %d\n", ret); + platform_device_put(pdata->codec_device); + } ret = snd_soc_register_card(card); - if (ret) + if (ret) { dev_err(&op->dev, "snd_soc_register_card() failed: %d\n", ret); + platform_device_del(pdata->codec_device); + platform_device_put(pdata->codec_device); + } platform_set_drvdata(op, pdata); - return ret; + } static int pcm030_fabric_remove(struct platform_device *op) From 6df50fb492a9f5e439ae51c33890fb7c8448b688 Mon Sep 17 00:00:00 2001 From: John Meneghini Date: Mon, 24 Jan 2022 09:51:10 -0500 Subject: [PATCH 1036/1149] scsi: bnx2fc: Make bnx2fc_recv_frame() mp safe commit 936bd03405fc83ba039d42bc93ffd4b88418f1d3 upstream. Running tests with a debug kernel shows that bnx2fc_recv_frame() is modifying the per_cpu lport stats counters in a non-mpsafe way. Just boot a debug kernel and run the bnx2fc driver with the hardware enabled. [ 1391.699147] BUG: using smp_processor_id() in preemptible [00000000] code: bnx2fc_ [ 1391.699160] caller is bnx2fc_recv_frame+0xbf9/0x1760 [bnx2fc] [ 1391.699174] CPU: 2 PID: 4355 Comm: bnx2fc_l2_threa Kdump: loaded Tainted: G B [ 1391.699180] Hardware name: HP ProLiant DL120 G7, BIOS J01 07/01/2013 [ 1391.699183] Call Trace: [ 1391.699188] dump_stack_lvl+0x57/0x7d [ 1391.699198] check_preemption_disabled+0xc8/0xd0 [ 1391.699205] bnx2fc_recv_frame+0xbf9/0x1760 [bnx2fc] [ 1391.699215] ? do_raw_spin_trylock+0xb5/0x180 [ 1391.699221] ? bnx2fc_npiv_create_vports.isra.0+0x4e0/0x4e0 [bnx2fc] [ 1391.699229] ? bnx2fc_l2_rcv_thread+0xb7/0x3a0 [bnx2fc] [ 1391.699240] bnx2fc_l2_rcv_thread+0x1af/0x3a0 [bnx2fc] [ 1391.699250] ? bnx2fc_ulp_init+0xc0/0xc0 [bnx2fc] [ 1391.699258] kthread+0x364/0x420 [ 1391.699263] ? _raw_spin_unlock_irq+0x24/0x50 [ 1391.699268] ? set_kthread_struct+0x100/0x100 [ 1391.699273] ret_from_fork+0x22/0x30 Restore the old get_cpu/put_cpu code with some modifications to reduce the size of the critical section. Link: https://lore.kernel.org/r/20220124145110.442335-1-jmeneghi@redhat.com Fixes: d576a5e80cd0 ("bnx2fc: Improve stats update mechanism") Tested-by: Guangwu Zhang Acked-by: Saurav Kashyap Signed-off-by: John Meneghini Signed-off-by: Martin K. Petersen Signed-off-by: Greg Kroah-Hartman --- drivers/scsi/bnx2fc/bnx2fc_fcoe.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/drivers/scsi/bnx2fc/bnx2fc_fcoe.c b/drivers/scsi/bnx2fc/bnx2fc_fcoe.c index 66f7f89aa0ee..54400efc2079 100644 --- a/drivers/scsi/bnx2fc/bnx2fc_fcoe.c +++ b/drivers/scsi/bnx2fc/bnx2fc_fcoe.c @@ -492,7 +492,8 @@ static int bnx2fc_l2_rcv_thread(void *arg) static void bnx2fc_recv_frame(struct sk_buff *skb) { - u32 fr_len; + u64 crc_err; + u32 fr_len, fr_crc; struct fc_lport *lport; struct fcoe_rcv_info *fr; struct fc_stats *stats; @@ -524,6 +525,11 @@ static void bnx2fc_recv_frame(struct sk_buff *skb) skb_pull(skb, sizeof(struct fcoe_hdr)); fr_len = skb->len - sizeof(struct fcoe_crc_eof); + stats = per_cpu_ptr(lport->stats, get_cpu()); + stats->RxFrames++; + stats->RxWords += fr_len / FCOE_WORD_TO_BYTE; + put_cpu(); + fp = (struct fc_frame *)skb; fc_frame_init(fp); fr_dev(fp) = lport; @@ -575,16 +581,15 @@ static void bnx2fc_recv_frame(struct sk_buff *skb) return; } - stats = per_cpu_ptr(lport->stats, smp_processor_id()); - stats->RxFrames++; - stats->RxWords += fr_len / FCOE_WORD_TO_BYTE; + fr_crc = le32_to_cpu(fr_crc(fp)); - if (le32_to_cpu(fr_crc(fp)) != - ~crc32(~0, skb->data, fr_len)) { - if (stats->InvalidCRCCount < 5) + if (unlikely(fr_crc != ~crc32(~0, skb->data, fr_len))) { + stats = per_cpu_ptr(lport->stats, get_cpu()); + crc_err = (stats->InvalidCRCCount++); + put_cpu(); + if (crc_err < 5) printk(KERN_WARNING PFX "dropping frame with " "CRC error\n"); - stats->InvalidCRCCount++; kfree_skb(skb); return; } From c8bcf72f5285d430942ffd2647bc574b9dbe15f8 Mon Sep 17 00:00:00 2001 From: Dai Ngo Date: Wed, 26 Jan 2022 13:13:38 -0800 Subject: [PATCH 1037/1149] nfsd: nfsd4_setclientid_confirm mistakenly expires confirmed client. commit ab451ea952fe9d7afefae55ddb28943a148247fe upstream. From RFC 7530 Section 16.34.5: o The server has not recorded an unconfirmed { v, x, c, *, * } and has recorded a confirmed { v, x, c, *, s }. If the principals of the record and of SETCLIENTID_CONFIRM do not match, the server returns NFS4ERR_CLID_INUSE without removing any relevant leased client state, and without changing recorded callback and callback_ident values for client { x }. The current code intends to do what the spec describes above but it forgot to set 'old' to NULL resulting to the confirmed client to be expired. Fixes: 2b63482185e6 ("nfsd: fix clid_inuse on mount with security change") Signed-off-by: Dai Ngo Signed-off-by: Chuck Lever Reviewed-by: Bruce Fields Signed-off-by: Greg Kroah-Hartman --- fs/nfsd/nfs4state.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 5ee62045150c..50bcfcf1ba7b 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -3198,8 +3198,10 @@ nfsd4_setclientid_confirm(struct svc_rqst *rqstp, status = nfserr_clid_inuse; if (client_has_state(old) && !same_creds(&unconf->cl_cred, - &old->cl_cred)) + &old->cl_cred)) { + old = NULL; goto out; + } status = mark_client_expired_locked(old); if (status) { old = NULL; From 46814fef44ac41b08134d48dc208628c82750f25 Mon Sep 17 00:00:00 2001 From: Sergey Shtylyov Date: Mon, 24 Jan 2022 21:55:02 +0300 Subject: [PATCH 1038/1149] EDAC/altera: Fix deferred probing commit 279eb8575fdaa92c314a54c0d583c65e26229107 upstream. The driver overrides the error codes returned by platform_get_irq() to -ENODEV for some strange reason, so if it returns -EPROBE_DEFER, the driver will fail the probe permanently instead of the deferred probing. Switch to propagating the proper error codes to platform driver code upwards. [ bp: Massage commit message. ] Fixes: 71bcada88b0f ("edac: altera: Add Altera SDRAM EDAC support") Signed-off-by: Sergey Shtylyov Signed-off-by: Borislav Petkov Acked-by: Dinh Nguyen Cc: Link: https://lore.kernel.org/r/20220124185503.6720-2-s.shtylyov@omp.ru Signed-off-by: Greg Kroah-Hartman --- drivers/edac/altera_edac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/edac/altera_edac.c b/drivers/edac/altera_edac.c index 929640981d8a..e1a81e4f7403 100644 --- a/drivers/edac/altera_edac.c +++ b/drivers/edac/altera_edac.c @@ -352,7 +352,7 @@ static int altr_sdram_probe(struct platform_device *pdev) if (irq < 0) { edac_printk(KERN_ERR, EDAC_MC, "No irq %d in DT\n", irq); - return -ENODEV; + return irq; } /* Arria10 has a 2nd IRQ */ From e97d057aef4b6bcc97e102bf00a971e8d68037d5 Mon Sep 17 00:00:00 2001 From: Sergey Shtylyov Date: Mon, 24 Jan 2022 21:55:03 +0300 Subject: [PATCH 1039/1149] EDAC/xgene: Fix deferred probing commit dfd0dfb9a7cc04acf93435b440dd34c2ca7b4424 upstream. The driver overrides error codes returned by platform_get_irq_optional() to -EINVAL for some strange reason, so if it returns -EPROBE_DEFER, the driver will fail the probe permanently instead of the deferred probing. Switch to propagating the proper error codes to platform driver code upwards. [ bp: Massage commit message. ] Fixes: 0d4429301c4a ("EDAC: Add APM X-Gene SoC EDAC driver") Signed-off-by: Sergey Shtylyov Signed-off-by: Borislav Petkov Cc: Link: https://lore.kernel.org/r/20220124185503.6720-3-s.shtylyov@omp.ru Signed-off-by: Greg Kroah-Hartman --- drivers/edac/xgene_edac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/edac/xgene_edac.c b/drivers/edac/xgene_edac.c index 41f876414a18..d9f0971d8464 100644 --- a/drivers/edac/xgene_edac.c +++ b/drivers/edac/xgene_edac.c @@ -1868,7 +1868,7 @@ static int xgene_edac_probe(struct platform_device *pdev) irq = platform_get_irq(pdev, i); if (irq < 0) { dev_err(&pdev->dev, "No IRQ resource\n"); - rc = -EINVAL; + rc = irq; goto out_err; } rc = devm_request_irq(&pdev->dev, irq, From ecf34f8f6c6d967773516da7dfa9a943bc6d8f34 Mon Sep 17 00:00:00 2001 From: Ritesh Harjani Date: Mon, 17 Jan 2022 17:41:47 +0530 Subject: [PATCH 1040/1149] ext4: fix error handling in ext4_restore_inline_data() commit 897026aaa73eb2517dfea8d147f20ddb0b813044 upstream. While running "./check -I 200 generic/475" it sometimes gives below kernel BUG(). Ideally we should not call ext4_write_inline_data() if ext4_create_inline_data() has failed. [73131.453234] kernel BUG at fs/ext4/inline.c:223! 212 static void ext4_write_inline_data(struct inode *inode, struct ext4_iloc *iloc, 213 void *buffer, loff_t pos, unsigned int len) 214 { <...> 223 BUG_ON(!EXT4_I(inode)->i_inline_off); 224 BUG_ON(pos + len > EXT4_I(inode)->i_inline_size); This patch handles the error and prints out a emergency msg saying potential data loss for the given inode (since we couldn't restore the original inline_data due to some previous error). [ 9571.070313] EXT4-fs (dm-0): error restoring inline_data for inode -- potential data loss! (inode 1703982, error -30) Reported-by: Eric Whitney Signed-off-by: Ritesh Harjani Reviewed-by: Jan Kara Link: https://lore.kernel.org/r/9f4cd7dfd54fa58ff27270881823d94ddf78dd07.1642416995.git.riteshh@linux.ibm.com Signed-off-by: Theodore Ts'o Cc: stable@kernel.org Signed-off-by: Greg Kroah-Hartman --- fs/ext4/inline.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c index 6f5e292e86f7..a493d2f3bad5 100644 --- a/fs/ext4/inline.c +++ b/fs/ext4/inline.c @@ -1123,7 +1123,15 @@ static void ext4_restore_inline_data(handle_t *handle, struct inode *inode, struct ext4_iloc *iloc, void *buf, int inline_size) { - ext4_create_inline_data(handle, inode, inline_size); + int ret; + + ret = ext4_create_inline_data(handle, inode, inline_size); + if (ret) { + ext4_msg(inode->i_sb, KERN_EMERG, + "error restoring inline_data for inode -- potential data loss! (inode %lu, error %d)", + inode->i_ino, ret); + return; + } ext4_write_inline_data(inode, iloc, buf, 0, inline_size); ext4_set_inode_state(inode, EXT4_STATE_MAY_INLINE_DATA); } From a7841982622594475c87d82372d03c2cd9a4786c Mon Sep 17 00:00:00 2001 From: Pavankumar Kondeti Date: Sat, 22 Jan 2022 08:33:22 +0530 Subject: [PATCH 1041/1149] usb: gadget: f_sourcesink: Fix isoc transfer for USB_SPEED_SUPER_PLUS Commit 904edf8aeb459697129be5fde847e2a502f41fd9 upstream. Currently when gadget enumerates in super speed plus, the isoc endpoint request buffer size is not calculated correctly. Fix this by checking the gadget speed against USB_SPEED_SUPER_PLUS and update the request buffer size. Fixes: 90c4d05780d4 ("usb: fix various gadgets null ptr deref on 10gbps cabling.") Cc: stable Signed-off-by: Pavankumar Kondeti Link: https://lore.kernel.org/r/1642820602-20619-1-git-send-email-quic_pkondeti@quicinc.com Signed-off-by: Greg Kroah-Hartman Signed-off-by: Pavel Machek --- drivers/usb/gadget/function/f_sourcesink.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/usb/gadget/function/f_sourcesink.c b/drivers/usb/gadget/function/f_sourcesink.c index d7d095781be1..0b6996e956fa 100644 --- a/drivers/usb/gadget/function/f_sourcesink.c +++ b/drivers/usb/gadget/function/f_sourcesink.c @@ -594,6 +594,7 @@ static int source_sink_start_ep(struct f_sourcesink *ss, bool is_in, for (i = 0; i < 8; i++) { if (is_iso) { switch (speed) { + case USB_SPEED_SUPER_PLUS: case USB_SPEED_SUPER: size = ss->isoc_maxpacket * (ss->isoc_mult + 1) * From f86b87424a132623dd8d15801c578b2d5e351060 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 27 Jan 2022 08:16:38 +0100 Subject: [PATCH 1042/1149] moxart: fix potential use-after-free on remove path commit bd2db32e7c3e35bd4d9b8bbff689434a50893546 upstream. It was reported that the mmc host structure could be accessed after it was freed in moxart_remove(), so fix this by saving the base register of the device and using it instead of the pointer dereference. Cc: Ulf Hansson Cc: Xiyu Yang Cc: Xin Xiong Cc: Xin Tan Cc: Tony Lindgren Cc: Yang Li Cc: linux-mmc@vger.kernel.org Cc: stable Reported-by: whitehat002 Signed-off-by: Greg Kroah-Hartman Link: https://lore.kernel.org/r/20220127071638.4057899-1-gregkh@linuxfoundation.org Signed-off-by: Ulf Hansson Signed-off-by: Greg Kroah-Hartman --- drivers/mmc/host/moxart-mmc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mmc/host/moxart-mmc.c b/drivers/mmc/host/moxart-mmc.c index 41a5493cb68d..a5b03fb7656d 100644 --- a/drivers/mmc/host/moxart-mmc.c +++ b/drivers/mmc/host/moxart-mmc.c @@ -698,12 +698,12 @@ static int moxart_remove(struct platform_device *pdev) if (!IS_ERR(host->dma_chan_rx)) dma_release_channel(host->dma_chan_rx); mmc_remove_host(mmc); - mmc_free_host(mmc); writel(0, host->base + REG_INTERRUPT_MASK); writel(0, host->base + REG_POWER_CONTROL); writel(readl(host->base + REG_CLOCK_CONTROL) | CLK_OFF, host->base + REG_CLOCK_CONTROL); + mmc_free_host(mmc); } return 0; } From 5385b4231e31a64bee1c2a636eb68e2b5461f005 Mon Sep 17 00:00:00 2001 From: Jon Maloy Date: Sat, 5 Feb 2022 14:11:18 -0500 Subject: [PATCH 1043/1149] tipc: improve size validations for received domain records commit 9aa422ad326634b76309e8ff342c246800621216 upstream. The function tipc_mon_rcv() allows a node to receive and process domain_record structs from peer nodes to track their views of the network topology. This patch verifies that the number of members in a received domain record does not exceed the limit defined by MAX_MON_DOMAIN, something that may otherwise lead to a stack overflow. tipc_mon_rcv() is called from the function tipc_link_proto_rcv(), where we are reading a 32 bit message data length field into a uint16. To avert any risk of bit overflow, we add an extra sanity check for this in that function. We cannot see that happen with the current code, but future designers being unaware of this risk, may introduce it by allowing delivery of very large (> 64k) sk buffers from the bearer layer. This potential problem was identified by Eric Dumazet. This fixes CVE-2022-0435 Reported-by: Samuel Page Reported-by: Eric Dumazet Fixes: 35c55c9877f8 ("tipc: add neighbor monitoring framework") Signed-off-by: Jon Maloy Reviewed-by: Xin Long Reviewed-by: Samuel Page Reviewed-by: Eric Dumazet Signed-off-by: Linus Torvalds Signed-off-by: Greg Kroah-Hartman [Tweaked patch to apply; perhaps it would have been better to backport prerequisite] Signed-off-by: Pavel Machek --- net/tipc/link.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/net/tipc/link.c b/net/tipc/link.c index 0080699b7cd1..6e4ade6cc653 100644 --- a/net/tipc/link.c +++ b/net/tipc/link.c @@ -1223,10 +1223,14 @@ static int tipc_link_proto_rcv(struct tipc_link *l, struct sk_buff *skb, u16 peers_tol = msg_link_tolerance(hdr); u16 peers_prio = msg_linkprio(hdr); u16 rcv_nxt = l->rcv_nxt; + u32 dlen = msg_data_sz(hdr); int mtyp = msg_type(hdr); char *if_name; int rc = 0; + if (dlen > U16_MAX) + goto exit; + if (tipc_link_is_blocked(l) || !xmitq) goto exit; From 6d46b2a0c475b831094eefd18e4c7fca6f591f14 Mon Sep 17 00:00:00 2001 From: Daniel Borkmann Date: Tue, 11 May 2021 22:35:17 +0200 Subject: [PATCH 1044/1149] bpf: Add kconfig knob for disabling unpriv bpf by default commit 08389d888287c3823f80b0216766b71e17f0aba5 upstream. Add a kconfig knob which allows for unprivileged bpf to be disabled by default. If set, the knob sets /proc/sys/kernel/unprivileged_bpf_disabled to value of 2. This still allows a transition of 2 -> {0,1} through an admin. Similarly, this also still keeps 1 -> {1} behavior intact, so that once set to permanently disabled, it cannot be undone aside from a reboot. We've also added extra2 with max of 2 for the procfs handler, so that an admin still has a chance to toggle between 0 <-> 2. Either way, as an additional alternative, applications can make use of CAP_BPF that we added a while ago. Signed-off-by: Daniel Borkmann Signed-off-by: Alexei Starovoitov Link: https://lore.kernel.org/bpf/74ec548079189e4e4dffaeb42b8987bb3c852eee.1620765074.git.daniel@iogearbox.net [fllinden@amazon.com: backported to 4.9] Signed-off-by: Frank van der Linden Signed-off-by: Greg Kroah-Hartman Signed-off-by: Pavel Machek --- Documentation/sysctl/kernel.txt | 21 +++++++++++++++++++++ init/Kconfig | 10 ++++++++++ kernel/bpf/syscall.c | 3 ++- kernel/sysctl.c | 29 +++++++++++++++++++++++++---- 4 files changed, 58 insertions(+), 5 deletions(-) diff --git a/Documentation/sysctl/kernel.txt b/Documentation/sysctl/kernel.txt index be61d53e997f..5f5db861ce4f 100644 --- a/Documentation/sysctl/kernel.txt +++ b/Documentation/sysctl/kernel.txt @@ -84,6 +84,7 @@ show up in /proc/sys/kernel: - sysctl_writes_strict - tainted - threads-max +- unprivileged_bpf_disabled - unknown_nmi_panic - watchdog - watchdog_thresh @@ -904,6 +905,26 @@ available RAM pages threads-max is reduced accordingly. ============================================================== +unprivileged_bpf_disabled: + +Writing 1 to this entry will disable unprivileged calls to bpf(); +once disabled, calling bpf() without CAP_SYS_ADMIN will return +-EPERM. Once set to 1, this can't be cleared from the running kernel +anymore. + +Writing 2 to this entry will also disable unprivileged calls to bpf(), +however, an admin can still change this setting later on, if needed, by +writing 0 or 1 to this entry. + +If BPF_UNPRIV_DEFAULT_OFF is enabled in the kernel config, then this +entry will default to 2 instead of 0. + + 0 - Unprivileged calls to bpf() are enabled + 1 - Unprivileged calls to bpf() are disabled without recovery + 2 - Unprivileged calls to bpf() are disabled + +============================================================== + unknown_nmi_panic: The value in this file affects behavior of handling NMI. When the diff --git a/init/Kconfig b/init/Kconfig index 9200c0ef2f1f..8f19b4eee201 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -1616,6 +1616,16 @@ config ADVISE_SYSCALLS applications use these syscalls, you can disable this option to save space. +config BPF_UNPRIV_DEFAULT_OFF + bool "Disable unprivileged BPF by default" + depends on BPF_SYSCALL + help + Disables unprivileged BPF by default by setting the corresponding + /proc/sys/kernel/unprivileged_bpf_disabled knob to 2. An admin can + still reenable it by setting it to 0 later on, or permanently + disable it by setting it to 1 (from which no other transition to + 0 is possible anymore). + config USERFAULTFD bool "Enable userfaultfd() system call" select ANON_INODES diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c index 01431ef8cf07..3e7dc17aefbb 100644 --- a/kernel/bpf/syscall.c +++ b/kernel/bpf/syscall.c @@ -18,7 +18,8 @@ #include #include -int sysctl_unprivileged_bpf_disabled __read_mostly; +int sysctl_unprivileged_bpf_disabled __read_mostly = + IS_BUILTIN(CONFIG_BPF_UNPRIV_DEFAULT_OFF) ? 2 : 0; static LIST_HEAD(bpf_map_types); diff --git a/kernel/sysctl.c b/kernel/sysctl.c index ecbb1b764a82..144d7970fcfc 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -218,6 +218,28 @@ static int sysrq_sysctl_handler(struct ctl_table *table, int write, #endif +#ifdef CONFIG_BPF_SYSCALL +static int bpf_unpriv_handler(struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) +{ + int ret, unpriv_enable = *(int *)table->data; + bool locked_state = unpriv_enable == 1; + struct ctl_table tmp = *table; + + if (write && !capable(CAP_SYS_ADMIN)) + return -EPERM; + + tmp.data = &unpriv_enable; + ret = proc_dointvec_minmax(&tmp, write, buffer, lenp, ppos); + if (write && !ret) { + if (locked_state && unpriv_enable != 1) + return -EPERM; + *(int *)table->data = unpriv_enable; + } + return ret; +} +#endif + static struct ctl_table kern_table[]; static struct ctl_table vm_table[]; static struct ctl_table fs_table[]; @@ -1172,10 +1194,9 @@ static struct ctl_table kern_table[] = { .data = &sysctl_unprivileged_bpf_disabled, .maxlen = sizeof(sysctl_unprivileged_bpf_disabled), .mode = 0644, - /* only handle a transition from default "0" to "1" */ - .proc_handler = proc_dointvec_minmax, - .extra1 = &one, - .extra2 = &one, + .proc_handler = bpf_unpriv_handler, + .extra1 = &zero, + .extra2 = &two, }, #endif { } From 3b040cd676a76b4ed087850e5ecfc3c6d63fbd97 Mon Sep 17 00:00:00 2001 From: Xiaoke Wang Date: Sat, 15 Jan 2022 09:11:11 +0800 Subject: [PATCH 1045/1149] integrity: check the return value of audit_log_start() commit 83230351c523b04ff8a029a4bdf97d881ecb96fc upstream. audit_log_start() returns audit_buffer pointer on success or NULL on error, so it is better to check the return value of it. Fixes: 3323eec921ef ("integrity: IMA as an integrity service provider") Signed-off-by: Xiaoke Wang Cc: Reviewed-by: Paul Moore Signed-off-by: Mimi Zohar Signed-off-by: Greg Kroah-Hartman --- security/integrity/integrity_audit.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/security/integrity/integrity_audit.c b/security/integrity/integrity_audit.c index 90987d15b6fe..6c415667ba67 100644 --- a/security/integrity/integrity_audit.c +++ b/security/integrity/integrity_audit.c @@ -39,6 +39,8 @@ void integrity_audit_msg(int audit_msgno, struct inode *inode, return; ab = audit_log_start(current->audit_context, GFP_KERNEL, audit_msgno); + if (!ab) + return; audit_log_format(ab, "pid=%d uid=%u auid=%u ses=%u", task_pid_nr(current), from_kuid(&init_user_ns, current_cred()->uid), From a30466907792662ecc63fea1c46de239bc424aa4 Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Tue, 25 Jan 2022 17:46:23 -0500 Subject: [PATCH 1046/1149] ima: Remove ima_policy file before directory commit f7333b9572d0559e00352a926c92f29f061b4569 upstream. The removal of ima_dir currently fails since ima_policy still exists, so remove the ima_policy file before removing the directory. Fixes: 4af4662fa4a9 ("integrity: IMA policy") Signed-off-by: Stefan Berger Cc: Acked-by: Christian Brauner Signed-off-by: Mimi Zohar Signed-off-by: Greg Kroah-Hartman --- security/integrity/ima/ima_fs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/security/integrity/ima/ima_fs.c b/security/integrity/ima/ima_fs.c index 30aced99bc55..8af394719e6c 100644 --- a/security/integrity/ima/ima_fs.c +++ b/security/integrity/ima/ima_fs.c @@ -391,11 +391,11 @@ int __init ima_fs_init(void) return 0; out: + securityfs_remove(ima_policy); securityfs_remove(violations); securityfs_remove(runtime_measurements_count); securityfs_remove(ascii_runtime_measurements); securityfs_remove(binary_runtime_measurements); securityfs_remove(ima_dir); - securityfs_remove(ima_policy); return -1; } From 6aa102df0875186b081d4fb6550e0cac75ce2238 Mon Sep 17 00:00:00 2001 From: Chuck Lever Date: Tue, 25 Jan 2022 16:36:22 -0500 Subject: [PATCH 1047/1149] NFSD: Clamp WRITE offsets commit 6260d9a56ab352b54891ec66ab0eced57d55abc6 upstream. Ensure that a client cannot specify a WRITE range that falls in a byte range outside what the kernel's internal types (such as loff_t, which is signed) can represent. The kiocb iterators, invoked in nfsd_vfs_write(), should properly limit write operations to within the underlying file system's s_maxbytes. Cc: stable@vger.kernel.org Signed-off-by: Chuck Lever Signed-off-by: Greg Kroah-Hartman --- fs/nfsd/nfs3proc.c | 5 +++++ fs/nfsd/nfs4proc.c | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/fs/nfsd/nfs3proc.c b/fs/nfsd/nfs3proc.c index 91146f025769..a94c7a030d63 100644 --- a/fs/nfsd/nfs3proc.c +++ b/fs/nfsd/nfs3proc.c @@ -190,6 +190,11 @@ nfsd3_proc_write(struct svc_rqst *rqstp, struct nfsd3_writeargs *argp, (unsigned long long) argp->offset, argp->stable? " stable" : ""); + resp->status = nfserr_fbig; + if (argp->offset > (u64)OFFSET_MAX || + argp->offset + argp->len > (u64)OFFSET_MAX) + return rpc_success; + fh_copy(&resp->fh, &argp->fh); resp->committed = argp->stable; nfserr = nfsd_write(rqstp, &resp->fh, NULL, diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c index c67064d94096..2e128d38c818 100644 --- a/fs/nfsd/nfs4proc.c +++ b/fs/nfsd/nfs4proc.c @@ -983,8 +983,9 @@ nfsd4_write(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, unsigned long cnt; int nvecs; - if (write->wr_offset >= OFFSET_MAX) - return nfserr_inval; + if (write->wr_offset > (u64)OFFSET_MAX || + write->wr_offset + write->wr_buflen > (u64)OFFSET_MAX) + return nfserr_fbig; status = nfs4_preprocess_stateid_op(rqstp, cstate, stateid, WR_STATE, &filp, NULL); From 0ba428f7229f4275060e792da5e3db9b7f982460 Mon Sep 17 00:00:00 2001 From: Guillaume Bertholon Date: Fri, 11 Feb 2022 14:33:01 +0100 Subject: [PATCH 1048/1149] Revert "net: axienet: Wait for PhyRstCmplt after core reset" This reverts commit 9f1a3c13342b4d96b9baa337ec5fb7d453828709. The upstream commit b400c2f4f4c5 ("net: axienet: Wait for PhyRstCmplt after core reset") add new instructions in the `__axienet_device_reset` function to wait until PhyRstCmplt bit is set, and return a non zero-exit value if this exceeds a timeout. However, its backported version in 4.9 (commit 9f1a3c13342b ("net: axienet: Wait for PhyRstCmplt after core reset")) insert these instructions in `axienet_dma_bd_init` instead. Unlike upstream, the version of `__axienet_device_reset` currently present in branch stable/linux-4.9.y does not return an integer for error codes. Therefore fixing the backport cannot be as simple as moving the inserted instructions in the right place, and we simply revert it instead. Fixes: 9f1a3c13342b ("net: axienet: Wait for PhyRstCmplt after core reset") Signed-off-by: Guillaume Bertholon Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c index d7c583fedbe7..c15283af2bae 100644 --- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c +++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c @@ -278,16 +278,6 @@ static int axienet_dma_bd_init(struct net_device *ndev) axienet_dma_out32(lp, XAXIDMA_TX_CR_OFFSET, cr | XAXIDMA_CR_RUNSTOP_MASK); - /* Wait for PhyRstCmplt bit to be set, indicating the PHY reset has finished */ - ret = read_poll_timeout(axienet_ior, value, - value & XAE_INT_PHYRSTCMPLT_MASK, - DELAY_OF_ONE_MILLISEC, 50000, false, lp, - XAE_IS_OFFSET); - if (ret) { - dev_err(lp->dev, "%s: timeout waiting for PhyRstCmplt\n", __func__); - return ret; - } - return 0; out: axienet_dma_bd_release(ndev); From ea26a483d6ef6c59695b6d8f22e65607d746bfeb Mon Sep 17 00:00:00 2001 From: Olga Kornievskaia Date: Mon, 29 Nov 2021 15:33:56 -0500 Subject: [PATCH 1049/1149] NFSv4 only print the label when its queried [ Upstream commit 2c52c8376db7160a1dd8a681c61c9258405ef143 ] When the bitmask of the attributes doesn't include the security label, don't bother printing it. Since the label might not be null terminated, adjust the printing format accordingly. Signed-off-by: Olga Kornievskaia Signed-off-by: Anna Schumaker Signed-off-by: Sasha Levin --- fs/nfs/nfs4xdr.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c index 28c1b765e444..567b32eecc76 100644 --- a/fs/nfs/nfs4xdr.c +++ b/fs/nfs/nfs4xdr.c @@ -4172,10 +4172,11 @@ static int decode_attr_security_label(struct xdr_stream *xdr, uint32_t *bitmap, } else printk(KERN_WARNING "%s: label too long (%u)!\n", __func__, len); + if (label && label->label) + dprintk("%s: label=%.*s, len=%d, PI=%d, LFS=%d\n", + __func__, label->len, (char *)label->label, + label->len, label->pi, label->lfs); } - if (label && label->label) - dprintk("%s: label=%s, len=%d, PI=%d, LFS=%d\n", __func__, - (char *)label->label, label->len, label->pi, label->lfs); return status; out_overflow: From 8a8419da369ea4edfcab9a151c095b2bd4fdeaec Mon Sep 17 00:00:00 2001 From: Xiaoke Wang Date: Fri, 17 Dec 2021 01:01:33 +0800 Subject: [PATCH 1050/1149] nfs: nfs4clinet: check the return value of kstrdup() [ Upstream commit fbd2057e5329d3502a27491190237b6be52a1cb6 ] kstrdup() returns NULL when some internal memory errors happen, it is better to check the return value of it so to catch the memory error in time. Signed-off-by: Xiaoke Wang Signed-off-by: Anna Schumaker Signed-off-by: Sasha Levin --- fs/nfs/nfs4client.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fs/nfs/nfs4client.c b/fs/nfs/nfs4client.c index 92895f41d9a0..85e61756f3d1 100644 --- a/fs/nfs/nfs4client.c +++ b/fs/nfs/nfs4client.c @@ -1218,8 +1218,11 @@ int nfs4_update_server(struct nfs_server *server, const char *hostname, goto out; } - if (server->nfs_client->cl_hostname == NULL) + if (server->nfs_client->cl_hostname == NULL) { server->nfs_client->cl_hostname = kstrdup(hostname, GFP_KERNEL); + if (server->nfs_client->cl_hostname == NULL) + return -ENOMEM; + } nfs_server_insert_lists(server); error = nfs_probe_destination(server); From e5a6ab45d9109d2f39e622cc5a62c80ca5bd8ed9 Mon Sep 17 00:00:00 2001 From: Olga Kornievskaia Date: Thu, 9 Dec 2021 14:53:29 -0500 Subject: [PATCH 1051/1149] NFSv4 remove zero number of fs_locations entries error check [ Upstream commit 90e12a3191040bd3854d3e236c35921e4e92a044 ] Remove the check for the zero length fs_locations reply in the xdr decoding, and instead check for that in the migration code. Signed-off-by: Olga Kornievskaia Signed-off-by: Anna Schumaker Signed-off-by: Sasha Levin --- fs/nfs/nfs4state.c | 3 +++ fs/nfs/nfs4xdr.c | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c index ef3ed2b1fd27..e4773510eb9a 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c @@ -1945,6 +1945,9 @@ static int nfs4_try_migration(struct nfs_server *server, struct rpc_cred *cred) } result = -NFS4ERR_NXIO; + if (!locations->nlocations) + goto out; + if (!(locations->fattr.valid & NFS_ATTR_FATTR_V4_LOCATIONS)) { dprintk("<-- %s: No fs_locations data, migration skipped\n", __func__); diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c index 567b32eecc76..f80d2ef507a5 100644 --- a/fs/nfs/nfs4xdr.c +++ b/fs/nfs/nfs4xdr.c @@ -3628,8 +3628,6 @@ static int decode_attr_fs_locations(struct xdr_stream *xdr, uint32_t *bitmap, st if (unlikely(!p)) goto out_overflow; n = be32_to_cpup(p); - if (n <= 0) - goto out_eio; for (res->nlocations = 0; res->nlocations < n; res->nlocations++) { u32 m; struct nfs4_fs_location *loc; From e3b5dbfdc613aba27c28230460a1d1c000dde344 Mon Sep 17 00:00:00 2001 From: ZouMingzhe Date: Tue, 11 Jan 2022 13:47:42 +0800 Subject: [PATCH 1052/1149] scsi: target: iscsi: Make sure the np under each tpg is unique [ Upstream commit a861790afaa8b6369eee8a88c5d5d73f5799c0c6 ] iscsit_tpg_check_network_portal() has nested for_each loops and is supposed to return true when a match is found. However, the tpg loop will still continue after existing the tpg_np loop. If this tpg_np is not the last the match value will be changed. Break the outer loop after finding a match and make sure the np under each tpg is unique. Link: https://lore.kernel.org/r/20220111054742.19582-1-mingzhe.zou@easystack.cn Signed-off-by: ZouMingzhe Reviewed-by: Mike Christie Signed-off-by: Martin K. Petersen Signed-off-by: Sasha Levin --- drivers/target/iscsi/iscsi_target_tpg.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/target/iscsi/iscsi_target_tpg.c b/drivers/target/iscsi/iscsi_target_tpg.c index 761b065a40bb..b2a76ecb5789 100644 --- a/drivers/target/iscsi/iscsi_target_tpg.c +++ b/drivers/target/iscsi/iscsi_target_tpg.c @@ -452,6 +452,9 @@ static bool iscsit_tpg_check_network_portal( break; } spin_unlock(&tpg->tpg_np_lock); + + if (match) + break; } spin_unlock(&tiqn->tiqn_tpg_lock); From 8dc468e998e337db83e6f8d2e59bf3255586cd00 Mon Sep 17 00:00:00 2001 From: Amelie Delaunay Date: Tue, 7 Dec 2021 14:01:01 +0100 Subject: [PATCH 1053/1149] usb: dwc2: gadget: don't try to disable ep0 in dwc2_hsotg_suspend [ Upstream commit ac55d163855924aa5af9f1560977da8f346963c8 ] Calling dwc2_hsotg_ep_disable on ep0 (in/out) will lead to the following logs before returning -EINVAL: dwc2 49000000.usb-otg: dwc2_hsotg_ep_disable: called for ep0 dwc2 49000000.usb-otg: dwc2_hsotg_ep_disable: called for ep0 To avoid these two logs while suspending, start disabling the endpoint from the index 1, as done in dwc2_hsotg_udc_stop: /* all endpoints should be shutdown */ for (ep = 1; ep < hsotg->num_of_eps; ep++) { if (hsotg->eps_in[ep]) dwc2_hsotg_ep_disable_lock(&hsotg->eps_in[ep]->ep); if (hsotg->eps_out[ep]) dwc2_hsotg_ep_disable_lock(&hsotg->eps_out[ep]->ep); } Acked-by: Minas Harutyunyan Signed-off-by: Amelie Delaunay Link: https://lore.kernel.org/r/20211207130101.270314-1-amelie.delaunay@foss.st.com Signed-off-by: Greg Kroah-Hartman Signed-off-by: Sasha Levin --- drivers/usb/dwc2/gadget.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c index ab5cde515b1d..bee05975eef5 100644 --- a/drivers/usb/dwc2/gadget.c +++ b/drivers/usb/dwc2/gadget.c @@ -3688,7 +3688,7 @@ int dwc2_hsotg_suspend(struct dwc2_hsotg *hsotg) hsotg->gadget.speed = USB_SPEED_UNKNOWN; spin_unlock_irqrestore(&hsotg->lock, flags); - for (ep = 0; ep < hsotg->num_of_eps; ep++) { + for (ep = 1; ep < hsotg->num_of_eps; ep++) { if (hsotg->eps_in[ep]) dwc2_hsotg_ep_disable(&hsotg->eps_in[ep]->ep); if (hsotg->eps_out[ep]) From a629c8a3192bbc555699246d3df80db49a3eddb0 Mon Sep 17 00:00:00 2001 From: Fabio Estevam Date: Mon, 27 Dec 2021 13:14:02 -0300 Subject: [PATCH 1054/1149] ARM: dts: imx23-evk: Remove MX23_PAD_SSP1_DETECT from hog group commit 42c9b28e6862d16db82a56f5667cf4d1f6658cf6 upstream. Currently, SD card fails to mount due to the following pinctrl error: [ 11.170000] imx23-pinctrl 80018000.pinctrl: pin SSP1_DETECT already requested by 80018000.pinctrl; cannot claim for 80010000.spi [ 11.180000] imx23-pinctrl 80018000.pinctrl: pin-65 (80010000.spi) status -22 [ 11.190000] imx23-pinctrl 80018000.pinctrl: could not request pin 65 (SSP1_DETECT) from group mmc0-pins-fixup.0 on device 80018000.pinctrl [ 11.200000] mxs-mmc 80010000.spi: Error applying setting, reverse things back Fix it by removing the MX23_PAD_SSP1_DETECT pin from the hog group as it is already been used by the mmc0-pins-fixup pinctrl group. With this change the rootfs can be mounted and the imx23-evk board can boot successfully. Cc: Fixes: bc3875f1a61e ("ARM: dts: mxs: modify mx23/mx28 dts files to use pinctrl headers") Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo Signed-off-by: Greg Kroah-Hartman --- arch/arm/boot/dts/imx23-evk.dts | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/arm/boot/dts/imx23-evk.dts b/arch/arm/boot/dts/imx23-evk.dts index 57e29977ba06..acaa3a7c2fc6 100644 --- a/arch/arm/boot/dts/imx23-evk.dts +++ b/arch/arm/boot/dts/imx23-evk.dts @@ -48,7 +48,6 @@ MX23_PAD_LCD_RESET__GPIO_1_18 MX23_PAD_PWM3__GPIO_1_29 MX23_PAD_PWM4__GPIO_1_30 - MX23_PAD_SSP1_DETECT__SSP1_DETECT >; fsl,drive-strength = ; fsl,voltage = ; From 084819979e55c4dff58f0092c0c29512705ebcd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= Date: Tue, 18 Jan 2022 19:13:37 +0100 Subject: [PATCH 1055/1149] staging: fbtft: Fix error path in fbtft_driver_module_init() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [ Upstream commit 426aca16e903b387a0b0001d62207a745c67cfd3 ] If registering the platform driver fails, the function must not return without undoing the spi driver registration first. Fixes: c296d5f9957c ("staging: fbtft: core support") Signed-off-by: Uwe Kleine-König Link: https://lore.kernel.org/r/20220118181338.207943-1-u.kleine-koenig@pengutronix.de Signed-off-by: Greg Kroah-Hartman Signed-off-by: Sasha Levin --- drivers/staging/fbtft/fbtft.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h index 3ccdec94fee7..ad499b04ed9f 100644 --- a/drivers/staging/fbtft/fbtft.h +++ b/drivers/staging/fbtft/fbtft.h @@ -350,7 +350,10 @@ static int __init fbtft_driver_module_init(void) \ ret = spi_register_driver(&fbtft_driver_spi_driver); \ if (ret < 0) \ return ret; \ - return platform_driver_register(&fbtft_driver_platform_driver); \ + ret = platform_driver_register(&fbtft_driver_platform_driver); \ + if (ret < 0) \ + spi_unregister_driver(&fbtft_driver_spi_driver); \ + return ret; \ } \ \ static void __exit fbtft_driver_module_exit(void) \ From 89b4633602e5fc098dc829b4832ac914c38c66ad Mon Sep 17 00:00:00 2001 From: Fabio Estevam Date: Sun, 19 Dec 2021 19:42:15 -0300 Subject: [PATCH 1056/1149] ARM: dts: imx6qdl-udoo: Properly describe the SD card detect [ Upstream commit 993d66140f8d1c1853a3b58b77b43b681eb64dee ] GPIO7_IO00 is used as SD card detect. Properly describe this in the devicetree. Fixes: 40cdaa542cf0 ("ARM: dts: imx6q-udoo: Add initial board support") Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo Signed-off-by: Sasha Levin --- arch/arm/boot/dts/imx6qdl-udoo.dtsi | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/imx6qdl-udoo.dtsi b/arch/arm/boot/dts/imx6qdl-udoo.dtsi index 061e6a00b255..de65c3ec9ba6 100644 --- a/arch/arm/boot/dts/imx6qdl-udoo.dtsi +++ b/arch/arm/boot/dts/imx6qdl-udoo.dtsi @@ -9,6 +9,8 @@ * */ +#include + / { chosen { stdout-path = &uart2; @@ -107,6 +109,7 @@ MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059 + MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x1b0b0 >; }; }; @@ -129,6 +132,6 @@ &usdhc3 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usdhc3>; - non-removable; + cd-gpios = <&gpio7 0 GPIO_ACTIVE_LOW>; status = "okay"; }; From 8176796e0286dcbd94ff55b0b608b6763a85a94d Mon Sep 17 00:00:00 2001 From: Mahesh Bandewar Date: Mon, 7 Feb 2022 14:29:01 -0800 Subject: [PATCH 1057/1149] bonding: pair enable_port with slave_arr_updates [ Upstream commit 23de0d7b6f0e3f9a6283a882594c479949da1120 ] When 803.2ad mode enables a participating port, it should update the slave-array. I have observed that the member links are participating and are part of the active aggregator while the traffic is egressing via only one member link (in a case where two links are participating). Via kprobes I discovered that slave-arr has only one link added while the other participating link wasn't part of the slave-arr. I couldn't see what caused that situation but the simple code-walk through provided me hints that the enable_port wasn't always associated with the slave-array update. Fixes: ee6377147409 ("bonding: Simplify the xmit function for modes that use xmit_hash") Signed-off-by: Mahesh Bandewar Acked-by: Jay Vosburgh Link: https://lore.kernel.org/r/20220207222901.1795287-1-maheshb@google.com Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin --- drivers/net/bonding/bond_3ad.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c index 22ebdf4d8cc4..38b488a729f5 100644 --- a/drivers/net/bonding/bond_3ad.c +++ b/drivers/net/bonding/bond_3ad.c @@ -939,8 +939,8 @@ static void ad_mux_machine(struct port *port, bool *update_slave_arr) if (port->aggregator && port->aggregator->is_active && !__port_is_enabled(port)) { - __enable_port(port); + *update_slave_arr = true; } } break; @@ -1686,6 +1686,7 @@ static void ad_agg_selection_logic(struct aggregator *agg, port = port->next_port_in_aggregator) { __enable_port(port); } + *update_slave_arr = true; } } From 0de6a060816abba4f130fbdf3eea3da72530eccb Mon Sep 17 00:00:00 2001 From: Eric Dumazet Date: Mon, 7 Feb 2022 21:34:51 -0800 Subject: [PATCH 1058/1149] ipmr,ip6mr: acquire RTNL before calling ip[6]mr_free_table() on failure path [ Upstream commit 5611a00697c8ecc5aad04392bea629e9d6a20463 ] ip[6]mr_free_table() can only be called under RTNL lock. RTNL: assertion failed at net/core/dev.c (10367) WARNING: CPU: 1 PID: 5890 at net/core/dev.c:10367 unregister_netdevice_many+0x1246/0x1850 net/core/dev.c:10367 Modules linked in: CPU: 1 PID: 5890 Comm: syz-executor.2 Not tainted 5.16.0-syzkaller-11627-g422ee58dc0ef #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 RIP: 0010:unregister_netdevice_many+0x1246/0x1850 net/core/dev.c:10367 Code: 0f 85 9b ee ff ff e8 69 07 4b fa ba 7f 28 00 00 48 c7 c6 00 90 ae 8a 48 c7 c7 40 90 ae 8a c6 05 6d b1 51 06 01 e8 8c 90 d8 01 <0f> 0b e9 70 ee ff ff e8 3e 07 4b fa 4c 89 e7 e8 86 2a 59 fa e9 ee RSP: 0018:ffffc900046ff6e0 EFLAGS: 00010286 RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000 RDX: ffff888050f51d00 RSI: ffffffff815fa008 RDI: fffff520008dfece RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000 R10: ffffffff815f3d6e R11: 0000000000000000 R12: 00000000fffffff4 R13: dffffc0000000000 R14: ffffc900046ff750 R15: ffff88807b7dc000 FS: 00007f4ab736e700(0000) GS:ffff8880b9d00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fee0b4f8990 CR3: 000000001e7d2000 CR4: 00000000003506e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: mroute_clean_tables+0x244/0xb40 net/ipv6/ip6mr.c:1509 ip6mr_free_table net/ipv6/ip6mr.c:389 [inline] ip6mr_rules_init net/ipv6/ip6mr.c:246 [inline] ip6mr_net_init net/ipv6/ip6mr.c:1306 [inline] ip6mr_net_init+0x3f0/0x4e0 net/ipv6/ip6mr.c:1298 ops_init+0xaf/0x470 net/core/net_namespace.c:140 setup_net+0x54f/0xbb0 net/core/net_namespace.c:331 copy_net_ns+0x318/0x760 net/core/net_namespace.c:475 create_new_namespaces+0x3f6/0xb20 kernel/nsproxy.c:110 copy_namespaces+0x391/0x450 kernel/nsproxy.c:178 copy_process+0x2e0c/0x7300 kernel/fork.c:2167 kernel_clone+0xe7/0xab0 kernel/fork.c:2555 __do_sys_clone+0xc8/0x110 kernel/fork.c:2672 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x44/0xae RIP: 0033:0x7f4ab89f9059 Code: Unable to access opcode bytes at RIP 0x7f4ab89f902f. RSP: 002b:00007f4ab736e118 EFLAGS: 00000206 ORIG_RAX: 0000000000000038 RAX: ffffffffffffffda RBX: 00007f4ab8b0bf60 RCX: 00007f4ab89f9059 RDX: 0000000020000280 RSI: 0000000020000270 RDI: 0000000040200000 RBP: 00007f4ab8a5308d R08: 0000000020000300 R09: 0000000020000300 R10: 00000000200002c0 R11: 0000000000000206 R12: 0000000000000000 R13: 00007ffc3977cc1f R14: 00007f4ab736e300 R15: 0000000000022000 Fixes: f243e5a7859a ("ipmr,ip6mr: call ip6mr_free_table() on failure path") Signed-off-by: Eric Dumazet Cc: Cong Wang Reported-by: syzbot Link: https://lore.kernel.org/r/20220208053451.2885398-1-eric.dumazet@gmail.com Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin --- net/ipv4/ipmr.c | 2 ++ net/ipv6/ip6mr.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c index 1cb865fcc91b..c4c2815b4f9b 100644 --- a/net/ipv4/ipmr.c +++ b/net/ipv4/ipmr.c @@ -266,7 +266,9 @@ static int __net_init ipmr_rules_init(struct net *net) return 0; err2: + rtnl_lock(); ipmr_free_table(mrt); + rtnl_unlock(); err1: fib_rules_unregister(ops); return err; diff --git a/net/ipv6/ip6mr.c b/net/ipv6/ip6mr.c index 20812e8b24dd..1ba6f7df5a73 100644 --- a/net/ipv6/ip6mr.c +++ b/net/ipv6/ip6mr.c @@ -251,7 +251,9 @@ static int __net_init ip6mr_rules_init(struct net *net) return 0; err2: + rtnl_lock(); ip6mr_free_table(mrt); + rtnl_unlock(); err1: fib_rules_unregister(ops); return err; From e410676af66e026b8534bd52d1197f4752815848 Mon Sep 17 00:00:00 2001 From: Antoine Tenart Date: Mon, 7 Feb 2022 18:13:19 +0100 Subject: [PATCH 1059/1149] net: fix a memleak when uncloning an skb dst and its metadata [ Upstream commit 9eeabdf17fa0ab75381045c867c370f4cc75a613 ] When uncloning an skb dst and its associated metadata, a new dst+metadata is allocated and later replaces the old one in the skb. This is helpful to have a non-shared dst+metadata attached to a specific skb. The issue is the uncloned dst+metadata is initialized with a refcount of 1, which is increased to 2 before attaching it to the skb. When tun_dst_unclone returns, the dst+metadata is only referenced from a single place (the skb) while its refcount is 2. Its refcount will never drop to 0 (when the skb is consumed), leading to a memory leak. Fix this by removing the call to dst_hold in tun_dst_unclone, as the dst+metadata refcount is already 1. Fixes: fc4099f17240 ("openvswitch: Fix egress tunnel info.") Cc: Pravin B Shelar Reported-by: Vlad Buslov Tested-by: Vlad Buslov Signed-off-by: Antoine Tenart Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- include/net/dst_metadata.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/net/dst_metadata.h b/include/net/dst_metadata.h index 4cee368cb91c..4303a28aa2dd 100644 --- a/include/net/dst_metadata.h +++ b/include/net/dst_metadata.h @@ -97,7 +97,6 @@ static inline struct metadata_dst *tun_dst_unclone(struct sk_buff *skb) memcpy(&new_md->u.tun_info, &md_dst->u.tun_info, sizeof(struct ip_tunnel_info) + md_size); skb_dst_drop(skb); - dst_hold(&new_md->dst); skb_dst_set(skb, &new_md->dst); return new_md; } From 7c250f6f6bed4fa287f391439282b7d843543500 Mon Sep 17 00:00:00 2001 From: Jon Maloy Date: Tue, 8 Feb 2022 22:22:37 -0500 Subject: [PATCH 1060/1149] tipc: rate limit warning for received illegal binding update [ Upstream commit c7223d687758462826a20e9735305d55bb874c70 ] It would be easy to craft a message containing an illegal binding table update operation. This is handled correctly by the code, but the corresponding warning printout is not rate limited as is should be. We fix this now. Fixes: b97bf3fd8f6a ("[TIPC] Initial merge") Signed-off-by: Jon Maloy Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- net/tipc/name_distr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/tipc/name_distr.c b/net/tipc/name_distr.c index b57675f81ceb..81ca1d5980c1 100644 --- a/net/tipc/name_distr.c +++ b/net/tipc/name_distr.c @@ -329,7 +329,7 @@ static bool tipc_update_nametbl(struct net *net, struct distr_item *i, return true; } } else { - pr_warn("Unrecognized name table message received\n"); + pr_warn_ratelimited("Unknown name table message received\n"); } return false; } From fca8d5fada98defcc56889823a044f1190ec8d09 Mon Sep 17 00:00:00 2001 From: Jakob Koschel Date: Thu, 27 Jan 2022 15:44:04 +0100 Subject: [PATCH 1061/1149] vt_ioctl: fix array_index_nospec in vt_setactivate commit 61cc70d9e8ef5b042d4ed87994d20100ec8896d9 upstream. array_index_nospec ensures that an out-of-bounds value is set to zero on the transient path. Decreasing the value by one afterwards causes a transient integer underflow. vsa.console should be decreased first and then sanitized with array_index_nospec. Kasper Acknowledgements: Jakob Koschel, Brian Johannesmeyer, Kaveh Razavi, Herbert Bos, Cristiano Giuffrida from the VUSec group at VU Amsterdam. Co-developed-by: Brian Johannesmeyer Signed-off-by: Brian Johannesmeyer Signed-off-by: Jakob Koschel Link: https://lore.kernel.org/r/20220127144406.3589293-1-jakobkoschel@gmail.com Cc: stable Signed-off-by: Greg Kroah-Hartman --- drivers/tty/vt/vt_ioctl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/tty/vt/vt_ioctl.c b/drivers/tty/vt/vt_ioctl.c index 97475bb46f84..231b1f59552c 100644 --- a/drivers/tty/vt/vt_ioctl.c +++ b/drivers/tty/vt/vt_ioctl.c @@ -718,9 +718,9 @@ int vt_ioctl(struct tty_struct *tty, if (vsa.console == 0 || vsa.console > MAX_NR_CONSOLES) ret = -ENXIO; else { - vsa.console = array_index_nospec(vsa.console, - MAX_NR_CONSOLES + 1); vsa.console--; + vsa.console = array_index_nospec(vsa.console, + MAX_NR_CONSOLES); console_lock(); ret = vc_allocate(vsa.console); if (ret == 0) { From 1707d90a148372fd25b18bd3fb32588a05e2ce9c Mon Sep 17 00:00:00 2001 From: Jakob Koschel Date: Thu, 27 Jan 2022 15:44:05 +0100 Subject: [PATCH 1062/1149] vt_ioctl: add array_index_nospec to VT_ACTIVATE commit 28cb138f559f8c1a1395f5564f86b8bbee83631b upstream. in vt_setactivate an almost identical code path has been patched with array_index_nospec. In the VT_ACTIVATE path the user input is from a system call argument instead of a usercopy. For consistency both code paths should have the same mitigations applied. Kasper Acknowledgements: Jakob Koschel, Brian Johannesmeyer, Kaveh Razavi, Herbert Bos, Cristiano Giuffrida from the VUSec group at VU Amsterdam. Co-developed-by: Brian Johannesmeyer Signed-off-by: Brian Johannesmeyer Signed-off-by: Jakob Koschel Link: https://lore.kernel.org/r/20220127144406.3589293-2-jakobkoschel@gmail.com Cc: stable Signed-off-by: Greg Kroah-Hartman --- drivers/tty/vt/vt_ioctl.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/tty/vt/vt_ioctl.c b/drivers/tty/vt/vt_ioctl.c index 231b1f59552c..295b20d8692c 100644 --- a/drivers/tty/vt/vt_ioctl.c +++ b/drivers/tty/vt/vt_ioctl.c @@ -694,6 +694,7 @@ int vt_ioctl(struct tty_struct *tty, ret = -ENXIO; else { arg--; + arg = array_index_nospec(arg, MAX_NR_CONSOLES); console_lock(); ret = vc_allocate(arg); console_unlock(); From 09c7ca6400807e3f8451080dae3b59289ebcd508 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?TATSUKAWA=20KOSUKE=20=28=E7=AB=8B=E5=B7=9D=20=E6=B1=9F?= =?UTF-8?q?=E4=BB=8B=29?= Date: Wed, 26 Jan 2022 23:35:02 +0000 Subject: [PATCH 1063/1149] n_tty: wake up poll(POLLRDNORM) on receiving data commit c816b2e65b0e86b95011418cad334f0524fc33b8 upstream. The poll man page says POLLRDNORM is equivalent to POLLIN when used as an event. $ man poll POLLRDNORM Equivalent to POLLIN. However, in n_tty driver, POLLRDNORM does not return until timeout even if there is terminal input, whereas POLLIN returns. The following test program works until kernel-3.17, but the test stops in poll() after commit 57087d515441 ("tty: Fix spurious poll() wakeups"). [Steps to run test program] $ cc -o test-pollrdnorm test-pollrdnorm.c $ ./test-pollrdnorm foo <-- Type in something from the terminal followed by [RET]. The string should be echoed back. ------------------------< test-pollrdnorm.c >------------------------ #include #include #include #include void main(void) { int n; unsigned char buf[8]; struct pollfd fds[1] = {{ 0, POLLRDNORM, 0 }}; n = poll(fds, 1, -1); if (n < 0) perror("poll"); n = read(0, buf, 8); if (n < 0) perror("read"); if (n > 0) write(1, buf, n); } ------------------------------------------------------------------------ The attached patch fixes this problem. Many calls to wake_up_interruptible_poll() in the kernel source code already specify "POLLIN | POLLRDNORM". Fixes: 57087d515441 ("tty: Fix spurious poll() wakeups") Cc: stable@vger.kernel.org Signed-off-by: Kosuke Tatsukawa Link: https://lore.kernel.org/r/TYCPR01MB81901C0F932203D30E452B3EA5209@TYCPR01MB8190.jpnprd01.prod.outlook.com Signed-off-by: Greg Kroah-Hartman --- drivers/tty/n_tty.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c index b74de014cef1..f584de719f5a 100644 --- a/drivers/tty/n_tty.c +++ b/drivers/tty/n_tty.c @@ -1406,7 +1406,7 @@ n_tty_receive_char_special(struct tty_struct *tty, unsigned char c) put_tty_queue(c, ldata); smp_store_release(&ldata->canon_head, ldata->read_head); kill_fasync(&tty->fasync, SIGIO, POLL_IN); - wake_up_interruptible_poll(&tty->read_wait, POLLIN); + wake_up_interruptible_poll(&tty->read_wait, POLLIN | POLLRDNORM); return 0; } } @@ -1690,7 +1690,7 @@ static void __receive_buf(struct tty_struct *tty, const unsigned char *cp, if ((read_cnt(ldata) >= ldata->minimum_to_wake) || L_EXTPROC(tty)) { kill_fasync(&tty->fasync, SIGIO, POLL_IN); - wake_up_interruptible_poll(&tty->read_wait, POLLIN); + wake_up_interruptible_poll(&tty->read_wait, POLLIN | POLLRDNORM); } } From 5f859c3901798ee6e23b79d70bfcf15d35acb76a Mon Sep 17 00:00:00 2001 From: Udipto Goswami Date: Mon, 7 Feb 2022 09:55:58 +0530 Subject: [PATCH 1064/1149] usb: dwc3: gadget: Prevent core from processing stale TRBs commit 117b4e96c7f362eb6459543883fc07f77662472c upstream. With CPU re-ordering on write instructions, there might be a chance that the HWO is set before the TRB is updated with the new mapped buffer address. And in the case where core is processing a list of TRBs it is possible that it fetched the TRBs when the HWO is set but before the buffer address is updated. Prevent this by adding a memory barrier before the HWO is updated to ensure that the core always process the updated TRBs. Fixes: f6bafc6a1c9d ("usb: dwc3: convert TRBs into bitshifts") Cc: stable Reviewed-by: Pavankumar Kondeti Signed-off-by: Udipto Goswami Link: https://lore.kernel.org/r/1644207958-18287-1-git-send-email-quic_ugoswami@quicinc.com Signed-off-by: Greg Kroah-Hartman --- drivers/usb/dwc3/gadget.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 34ac8d71d7c8..2b9a9a5bca9e 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -874,6 +874,19 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep, if (usb_endpoint_xfer_bulk(dep->endpoint.desc) && dep->stream_capable) trb->ctrl |= DWC3_TRB_CTRL_SID_SOFN(req->request.stream_id); + /* + * As per data book 4.2.3.2TRB Control Bit Rules section + * + * The controller autonomously checks the HWO field of a TRB to determine if the + * entire TRB is valid. Therefore, software must ensure that the rest of the TRB + * is valid before setting the HWO field to '1'. In most systems, this means that + * software must update the fourth DWORD of a TRB last. + * + * However there is a possibility of CPU re-ordering here which can cause + * controller to observe the HWO bit set prematurely. + * Add a write memory barrier to prevent CPU re-ordering. + */ + wmb(); trb->ctrl |= DWC3_TRB_CTRL_HWO; trace_dwc3_prepare_trb(dep, trb); From 1aa0a528693e1722a7a12881f40e7a3a4f1b0c73 Mon Sep 17 00:00:00 2001 From: Szymon Heidrich Date: Mon, 24 Jan 2022 12:14:00 +0100 Subject: [PATCH 1065/1149] USB: gadget: validate interface OS descriptor requests commit 75e5b4849b81e19e9efe1654b30d7f3151c33c2c upstream. Stall the control endpoint in case provided index exceeds array size of MAX_CONFIG_INTERFACES or when the retrieved function pointer is null. Signed-off-by: Szymon Heidrich Cc: stable@kernel.org Signed-off-by: Greg Kroah-Hartman --- drivers/usb/gadget/composite.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c index 580ba69f1e4a..d0734acb5e49 100644 --- a/drivers/usb/gadget/composite.c +++ b/drivers/usb/gadget/composite.c @@ -1776,6 +1776,9 @@ composite_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl) if (w_index != 0x5 || (w_value >> 8)) break; interface = w_value & 0xFF; + if (interface >= MAX_CONFIG_INTERFACES || + !os_desc_cfg->interface[interface]) + break; buf[6] = w_index; if (w_length == 0x0A) { count = count_ext_prop(os_desc_cfg, From e267b88f1cb2f62ec0cce04476454b7ff3113a57 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 9 Feb 2022 16:37:53 +0100 Subject: [PATCH 1066/1149] usb: gadget: rndis: check size of RNDIS_MSG_SET command commit 38ea1eac7d88072bbffb630e2b3db83ca649b826 upstream. Check the size of the RNDIS_MSG_SET command given to us before attempting to respond to an invalid message size. Reported-by: Szymon Heidrich Cc: stable@kernel.org Tested-by: Szymon Heidrich Signed-off-by: Greg Kroah-Hartman --- drivers/usb/gadget/function/rndis.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/usb/gadget/function/rndis.c b/drivers/usb/gadget/function/rndis.c index 2582db38d6a6..527bfa811694 100644 --- a/drivers/usb/gadget/function/rndis.c +++ b/drivers/usb/gadget/function/rndis.c @@ -642,14 +642,17 @@ static int rndis_set_response(struct rndis_params *params, rndis_set_cmplt_type *resp; rndis_resp_t *r; + BufLength = le32_to_cpu(buf->InformationBufferLength); + BufOffset = le32_to_cpu(buf->InformationBufferOffset); + if ((BufLength > RNDIS_MAX_TOTAL_SIZE) || + (BufOffset + 8 >= RNDIS_MAX_TOTAL_SIZE)) + return -EINVAL; + r = rndis_add_response(params, sizeof(rndis_set_cmplt_type)); if (!r) return -ENOMEM; resp = (rndis_set_cmplt_type *)r->buf; - BufLength = le32_to_cpu(buf->InformationBufferLength); - BufOffset = le32_to_cpu(buf->InformationBufferOffset); - #ifdef VERBOSE_DEBUG pr_debug("%s: Length: %d\n", __func__, BufLength); pr_debug("%s: Offset: %d\n", __func__, BufOffset); From 778afcbab0f0bb43336426c5984b995ca52b0f20 Mon Sep 17 00:00:00 2001 From: Cameron Williams Date: Tue, 1 Feb 2022 10:12:51 +0000 Subject: [PATCH 1067/1149] USB: serial: ftdi_sio: add support for Brainboxes US-159/235/320 commit fbb9b194e15a63c56c5664e76ccd0e85c6100cea upstream. This patch adds support for the Brainboxes US-159, US-235 and US-320 USB-to-Serial devices. Signed-off-by: Cameron Williams Cc: stable@vger.kernel.org Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- drivers/usb/serial/ftdi_sio.c | 3 +++ drivers/usb/serial/ftdi_sio_ids.h | 3 +++ 2 files changed, 6 insertions(+) diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c index c31cb9a97165..b251168eaeb4 100644 --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c @@ -964,6 +964,7 @@ static const struct usb_device_id id_table_combined[] = { { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_VX_023_PID) }, { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_VX_034_PID) }, { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_101_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_159_PID) }, { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_160_1_PID) }, { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_160_2_PID) }, { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_160_3_PID) }, @@ -972,12 +973,14 @@ static const struct usb_device_id id_table_combined[] = { { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_160_6_PID) }, { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_160_7_PID) }, { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_160_8_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_235_PID) }, { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_257_PID) }, { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_279_1_PID) }, { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_279_2_PID) }, { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_279_3_PID) }, { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_279_4_PID) }, { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_313_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_320_PID) }, { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_324_PID) }, { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_346_1_PID) }, { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_346_2_PID) }, diff --git a/drivers/usb/serial/ftdi_sio_ids.h b/drivers/usb/serial/ftdi_sio_ids.h index 3b7cea8df446..006e92d26bab 100644 --- a/drivers/usb/serial/ftdi_sio_ids.h +++ b/drivers/usb/serial/ftdi_sio_ids.h @@ -1505,6 +1505,9 @@ #define BRAINBOXES_VX_023_PID 0x1003 /* VX-023 ExpressCard 1 Port RS422/485 */ #define BRAINBOXES_VX_034_PID 0x1004 /* VX-034 ExpressCard 2 Port RS422/485 */ #define BRAINBOXES_US_101_PID 0x1011 /* US-101 1xRS232 */ +#define BRAINBOXES_US_159_PID 0x1021 /* US-159 1xRS232 */ +#define BRAINBOXES_US_235_PID 0x1017 /* US-235 1xRS232 */ +#define BRAINBOXES_US_320_PID 0x1019 /* US-320 1xRS422/485 */ #define BRAINBOXES_US_324_PID 0x1013 /* US-324 1xRS422/485 1Mbaud */ #define BRAINBOXES_US_606_1_PID 0x2001 /* US-606 6 Port RS232 Serial Port 1 and 2 */ #define BRAINBOXES_US_606_2_PID 0x2002 /* US-606 6 Port RS232 Serial Port 3 and 4 */ From 6177eeee77dbdf987ebff16be9ceedffcd69a57b Mon Sep 17 00:00:00 2001 From: Pawel Dembicki Date: Tue, 11 Jan 2022 23:12:05 +0100 Subject: [PATCH 1068/1149] USB: serial: option: add ZTE MF286D modem commit d48384c7ed6c8fe4727eaa0f3048f62afd1cd715 upstream. Modem from ZTE MF286D is an Qualcomm MDM9250 based 3G/4G modem. T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=5000 MxCh= 0 D: Ver= 3.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs= 1 P: Vendor=19d2 ProdID=1485 Rev=52.87 S: Manufacturer=ZTE,Incorporated S: Product=ZTE Technologies MSM S: SerialNumber=MF286DZTED000000 C:* #Ifs= 7 Cfg#= 1 Atr=80 MxPwr=896mA A: FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=06 Prot=00 I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=ff Driver=rndis_host E: Ad=82(I) Atr=03(Int.) MxPS= 8 Ivl=32ms I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host E: Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms E: Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option E: Ad=83(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option E: Ad=85(I) Atr=03(Int.) MxPS= 10 Ivl=32ms E: Ad=84(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms E: Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option E: Ad=87(I) Atr=03(Int.) MxPS= 10 Ivl=32ms E: Ad=86(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms E: Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms I:* If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan E: Ad=88(I) Atr=03(Int.) MxPS= 8 Ivl=32ms E: Ad=8e(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms E: Ad=0f(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms I:* If#= 6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=usbfs E: Ad=05(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms E: Ad=89(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms Signed-off-by: Pawel Dembicki Cc: stable@vger.kernel.org Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- drivers/usb/serial/option.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c index 9479abb9eaaa..4c3ff0706554 100644 --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c @@ -1625,6 +1625,8 @@ static const struct usb_device_id option_ids[] = { .driver_info = RSVD(2) }, { USB_DEVICE_INTERFACE_CLASS(ZTE_VENDOR_ID, 0x1476, 0xff) }, /* GosunCn ZTE WeLink ME3630 (ECM/NCM mode) */ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1481, 0xff, 0x00, 0x00) }, /* ZTE MF871A */ + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1485, 0xff, 0xff, 0xff), /* ZTE MF286D */ + .driver_info = RSVD(5) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1533, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1534, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1535, 0xff, 0xff, 0xff) }, From fa3fe5ad443cffb5d85f95e2cc80a76452334e58 Mon Sep 17 00:00:00 2001 From: Stephan Brunner Date: Sat, 8 Jan 2022 13:00:20 +0100 Subject: [PATCH 1069/1149] USB: serial: ch341: add support for GW Instek USB2.0-Serial devices commit fa77ce201f7f2d823b07753575122d1ae5597fbe upstream. Programmable lab power supplies made by GW Instek, such as the GPP-2323, have a USB port exposing a serial port to control the device. Stringing the supplied Windows driver, references to the ch341 chip are found. Binding the existing ch341 driver to the VID/PID of the GPP-2323 ("GW Instek USB2.0-Serial" as per the USB product name) works out of the box, communication and control is now possible. This patch should work with any GPP series power supply due to similarities in the product line. Signed-off-by: Stephan Brunner Link: https://lore.kernel.org/r/4a47b864-0816-6f6a-efee-aa20e74bcdc6@stephan-brunner.net Cc: stable@vger.kernel.org Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- drivers/usb/serial/ch341.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/usb/serial/ch341.c b/drivers/usb/serial/ch341.c index 2cff9c40f28a..5c3ecc04a1ca 100644 --- a/drivers/usb/serial/ch341.c +++ b/drivers/usb/serial/ch341.c @@ -74,6 +74,7 @@ static const struct usb_device_id id_table[] = { { USB_DEVICE(0x1a86, 0x5523) }, { USB_DEVICE(0x1a86, 0x7522) }, { USB_DEVICE(0x1a86, 0x7523) }, + { USB_DEVICE(0x2184, 0x0057) }, { USB_DEVICE(0x4348, 0x5523) }, { USB_DEVICE(0x9986, 0x7523) }, { }, From ac4b74deebbe54312f854b49f746f33f893518f0 Mon Sep 17 00:00:00 2001 From: Johan Hovold Date: Tue, 1 Feb 2022 11:42:52 +0100 Subject: [PATCH 1070/1149] USB: serial: cp210x: add NCR Retail IO box id commit b50f8f09c622297d3cf46e332e17ba8adedec9af upstream. Add the device id for NCR's Retail IO box (CP2105) used in NCR FastLane SelfServ Checkout - R6C: https://www.ncr.com/product-catalog/ncr-fastlane-selfserv-checkout-r6c Reported-by: Scott Russell Cc: stable@vger.kernel.org Reviewed-by: Greg Kroah-Hartman Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- drivers/usb/serial/cp210x.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c index 0fbdfea7ec2c..635a53e1031b 100644 --- a/drivers/usb/serial/cp210x.c +++ b/drivers/usb/serial/cp210x.c @@ -48,6 +48,7 @@ static void cp210x_release(struct usb_serial *); static void cp210x_dtr_rts(struct usb_serial_port *p, int on); static const struct usb_device_id id_table[] = { + { USB_DEVICE(0x0404, 0x034C) }, /* NCR Retail IO Box */ { USB_DEVICE(0x045B, 0x0053) }, /* Renesas RX610 RX-Stick */ { USB_DEVICE(0x0471, 0x066A) }, /* AKTAKOM ACE-1001 cable */ { USB_DEVICE(0x0489, 0xE000) }, /* Pirelli Broadband S.p.A, DP-L10 SIP/GSM Mobile */ From d248b1c7548ecb14d4dc67fc1839c2627ce6fb6f Mon Sep 17 00:00:00 2001 From: Johan Hovold Date: Tue, 1 Feb 2022 11:42:53 +0100 Subject: [PATCH 1071/1149] USB: serial: cp210x: add CPI Bulk Coin Recycler id commit 6ca0c6283340d819bf9c7d8e76be33c9fbd903ab upstream. Add the device id for the Crane Payment Innovation / Money Controls Bulk Coin Recycler: https://www.cranepi.com/en/system/files/Support/OM_BCR_EN_V1-04_0.pdf Reported-by: Scott Russell Cc: stable@vger.kernel.org Reviewed-by: Greg Kroah-Hartman Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- drivers/usb/serial/cp210x.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c index 635a53e1031b..120d38798e4d 100644 --- a/drivers/usb/serial/cp210x.c +++ b/drivers/usb/serial/cp210x.c @@ -66,6 +66,7 @@ static const struct usb_device_id id_table[] = { { USB_DEVICE(0x0FCF, 0x1004) }, /* Dynastream ANT2USB */ { USB_DEVICE(0x0FCF, 0x1006) }, /* Dynastream ANT development board */ { USB_DEVICE(0x0FDE, 0xCA05) }, /* OWL Wireless Electricity Monitor CM-160 */ + { USB_DEVICE(0x106F, 0x0003) }, /* CPI / Money Controls Bulk Coin Recycler */ { USB_DEVICE(0x10A6, 0xAA26) }, /* Knock-off DCU-11 cable */ { USB_DEVICE(0x10AB, 0x10C5) }, /* Siemens MC60 Cable */ { USB_DEVICE(0x10B5, 0xAC70) }, /* Nokia CA-42 USB */ From 38f8851bbda505e518ed81d4e62f209a5a19f686 Mon Sep 17 00:00:00 2001 From: Armin Wolf Date: Thu, 21 Oct 2021 21:05:31 +0200 Subject: [PATCH 1072/1149] hwmon: (dell-smm) Speed up setting of fan speed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit c0d79987a0d82671bff374c07f2201f9bdf4aaa2 upstream. When setting the fan speed, i8k_set_fan() calls i8k_get_fan_status(), causing an unnecessary SMM call since from the two users of this function, only i8k_ioctl_unlocked() needs to know the new fan status while dell_smm_write() ignores the new fan status. Since SMM calls can be very slow while also making error reporting difficult for dell_smm_write(), remove the function call from i8k_set_fan() and call it separately in i8k_ioctl_unlocked(). Tested on a Dell Inspiron 3505. Signed-off-by: Armin Wolf Reviewed-by: Pali Rohár Link: https://lore.kernel.org/r/20211021190531.17379-6-W_Armin@gmx.de Signed-off-by: Guenter Roeck Signed-off-by: Greg Kroah-Hartman --- drivers/hwmon/dell-smm-hwmon.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/hwmon/dell-smm-hwmon.c b/drivers/hwmon/dell-smm-hwmon.c index da8465cf26cb..d818d42aa3ab 100644 --- a/drivers/hwmon/dell-smm-hwmon.c +++ b/drivers/hwmon/dell-smm-hwmon.c @@ -271,7 +271,7 @@ static int i8k_get_fan_nominal_speed(int fan, int speed) } /* - * Set the fan speed (off, low, high). Returns the new fan status. + * Set the fan speed (off, low, high, ...). */ static int i8k_set_fan(int fan, int speed) { @@ -280,7 +280,7 @@ static int i8k_set_fan(int fan, int speed) speed = (speed < 0) ? 0 : ((speed > i8k_fan_max) ? i8k_fan_max : speed); regs.ebx = (fan & 0xff) | (speed << 8); - return i8k_smm(®s) ? : i8k_get_fan_status(fan); + return i8k_smm(®s); } static int i8k_get_temp_type(int sensor) @@ -394,7 +394,7 @@ static int i8k_ioctl_unlocked(struct file *fp, unsigned int cmd, unsigned long arg) { int val = 0; - int speed; + int speed, err; unsigned char buff[16]; int __user *argp = (int __user *)arg; @@ -451,7 +451,11 @@ i8k_ioctl_unlocked(struct file *fp, unsigned int cmd, unsigned long arg) if (copy_from_user(&speed, argp + 1, sizeof(int))) return -EFAULT; - val = i8k_set_fan(val, speed); + err = i8k_set_fan(val, speed); + if (err < 0) + return err; + + val = i8k_get_fan_status(val); break; default: From 6c2347af096352856731ce77699d468267b1fbb7 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Fri, 28 Jul 2017 15:18:00 +0200 Subject: [PATCH 1073/1149] HID: wacom: add USB_HID dependency commit 9d14201c7444bbdf89413e88d91b73150c3de38b upstream. The driver has gained a compile-time dependency that we should express in Kconfig to avoid this link error: drivers/hid/wacom_sys.o: In function `wacom_parse_and_register': wacom_sys.c:(.text+0x2eec): undefined reference to `usb_hid_driver' Fixes: 09dc28acaec7 ("HID: wacom: Improve generic name generation") Signed-off-by: Arnd Bergmann Signed-off-by: Jiri Kosina Cc: Jason Self Signed-off-by: Greg Kroah-Hartman --- drivers/hid/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig index fdbb7b8d347c..07627f7cc9bc 100644 --- a/drivers/hid/Kconfig +++ b/drivers/hid/Kconfig @@ -827,7 +827,7 @@ config THRUSTMASTER_FF config HID_WACOM tristate "Wacom Intuos/Graphire tablet support (USB)" - depends on HID + depends on USB_HID select POWER_SUPPLY select NEW_LEDS select LEDS_CLASS From bc406f17d840083a5ff2c01a1f227fc645410d9a Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Thu, 17 Mar 2022 13:02:23 +0100 Subject: [PATCH 1074/1149] Merge patches from 4.9.302. Signed-off-by: Pavel Machek --- localversion-st | 1 + 1 file changed, 1 insertion(+) create mode 100644 localversion-st diff --git a/localversion-st b/localversion-st new file mode 100644 index 000000000000..ab33e034ca6c --- /dev/null +++ b/localversion-st @@ -0,0 +1 @@ +-st2 \ No newline at end of file From c02b2c32b8e7a92b51c9aa6da0975e53c4bac32d Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 3 Feb 2022 12:54:16 +0100 Subject: [PATCH 1075/1149] drm/edid: Always set RGB444 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit ecbd4912a693b862e25cba0a6990a8c95b00721e upstream. In order to fill the drm_display_info structure each time an EDID is read, the code currently will call drm_add_display_info with the parsed EDID. drm_add_display_info will then call drm_reset_display_info to reset all the fields to 0, and then set them to the proper value depending on the EDID. In the color_formats case, we will thus report that we don't support any color format, and then fill it back with RGB444 plus the additional formats described in the EDID Feature Support byte. However, since that byte only contains format-related bits since the 1.4 specification, this doesn't happen if the EDID is following an earlier specification. In turn, it means that for one of these EDID, we end up with color_formats set to 0. The EDID 1.3 specification never really specifies what it means by RGB exactly, but since both HDMI and DVI will use RGB444, it's fairly safe to assume it's supposed to be RGB444. Let's move the addition of RGB444 to color_formats earlier in drm_add_display_info() so that it's always set for a digital display. Fixes: da05a5a71ad8 ("drm: parse color format support for digital displays") Cc: Ville Syrjälä Reported-by: Matthias Reichl Signed-off-by: Maxime Ripard Reviewed-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20220203115416.1137308-1-maxime@cerno.tech Signed-off-by: Greg Kroah-Hartman Signed-off-by: Pavel Machek --- drivers/gpu/drm/drm_edid.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index b439e2f8ee00..4c360bcdaeda 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c @@ -3736,6 +3736,8 @@ static void drm_add_display_info(struct edid *edid, if (!(edid->input & DRM_EDID_INPUT_DIGITAL)) return; + info->color_formats |= DRM_COLOR_FORMAT_RGB444; + /* Get data from CEA blocks if present */ edid_ext = drm_find_cea_extension(edid); if (edid_ext) { @@ -3784,7 +3786,6 @@ static void drm_add_display_info(struct edid *edid, DRM_DEBUG("%s: Assigning EDID-1.4 digital sink color depth as %d bpc.\n", connector->name, info->bpc); - info->color_formats |= DRM_COLOR_FORMAT_RGB444; if (edid->features & DRM_EDID_FEATURE_RGB_YCRCB444) info->color_formats |= DRM_COLOR_FORMAT_YCRCB444; if (edid->features & DRM_EDID_FEATURE_RGB_YCRCB422) From d3690221063b41d77e33f37cea1cdff989d1827f Mon Sep 17 00:00:00 2001 From: Nathan Chancellor Date: Wed, 2 Feb 2022 16:05:16 -0700 Subject: [PATCH 1076/1149] Makefile.extrawarn: Move -Wunaligned-access to W=1 commit 1cf5f151d25fcca94689efd91afa0253621fb33a upstream. -Wunaligned-access is a new warning in clang that is default enabled for arm and arm64 under certain circumstances within the clang frontend (see LLVM commit below). On v5.17-rc2, an ARCH=arm allmodconfig build shows 1284 total/70 unique instances of this warning (most of the instances are in header files), which is quite noisy. To keep a normal build green through CONFIG_WERROR, only show this warning with W=1, which will allow automated build systems to catch new instances of the warning so that the total number can be driven down to zero eventually since catching unaligned accesses at compile time would be generally useful. Cc: stable@vger.kernel.org Link: https://github.com/llvm/llvm-project/commit/35737df4dcd28534bd3090157c224c19b501278a Link: https://github.com/ClangBuiltLinux/linux/issues/1569 Link: https://github.com/ClangBuiltLinux/linux/issues/1576 Signed-off-by: Nathan Chancellor Reviewed-by: Nick Desaulniers Signed-off-by: Masahiro Yamada [nathan: Fix conflict due to lack of afe956c577b2d] Signed-off-by: Nathan Chancellor Signed-off-by: Greg Kroah-Hartman --- scripts/Makefile.extrawarn | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn index 11096b2fa5cb..b1b545ef8091 100644 --- a/scripts/Makefile.extrawarn +++ b/scripts/Makefile.extrawarn @@ -68,5 +68,6 @@ KBUILD_CFLAGS += $(call cc-disable-warning, sign-compare) KBUILD_CFLAGS += $(call cc-disable-warning, format-zero-length) KBUILD_CFLAGS += $(call cc-disable-warning, uninitialized) KBUILD_CFLAGS += $(call cc-disable-warning, pointer-to-enum-cast) +KBUILD_CFLAGS += $(call cc-disable-warning, unaligned-access) endif endif From e15f4029a2a0049c77337be7fd089989ebba750c Mon Sep 17 00:00:00 2001 From: Jann Horn Date: Wed, 26 Jan 2022 14:14:52 +0100 Subject: [PATCH 1077/1149] net: usb: ax88179_178a: Fix out-of-bounds accesses in RX fixup commit 57bc3d3ae8c14df3ceb4e17d26ddf9eeab304581 upstream. ax88179_rx_fixup() contains several out-of-bounds accesses that can be triggered by a malicious (or defective) USB device, in particular: - The metadata array (hdr_off..hdr_off+2*pkt_cnt) can be out of bounds, causing OOB reads and (on big-endian systems) OOB endianness flips. - A packet can overlap the metadata array, causing a later OOB endianness flip to corrupt data used by a cloned SKB that has already been handed off into the network stack. - A packet SKB can be constructed whose tail is far beyond its end, causing out-of-bounds heap data to be considered part of the SKB's data. I have tested that this can be used by a malicious USB device to send a bogus ICMPv6 Echo Request and receive an ICMPv6 Echo Reply in response that contains random kernel heap data. It's probably also possible to get OOB writes from this on a little-endian system somehow - maybe by triggering skb_cow() via IP options processing -, but I haven't tested that. Fixes: e2ca90c276e1 ("ax88179_178a: ASIX AX88179_178A USB 3.0/2.0 to gigabit ethernet adapter driver") Cc: stable@kernel.org Signed-off-by: Jann Horn Signed-off-by: Greg Kroah-Hartman --- drivers/net/usb/ax88179_178a.c | 68 +++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 29 deletions(-) diff --git a/drivers/net/usb/ax88179_178a.c b/drivers/net/usb/ax88179_178a.c index 53cef8cd1aad..5a2716360613 100644 --- a/drivers/net/usb/ax88179_178a.c +++ b/drivers/net/usb/ax88179_178a.c @@ -1369,59 +1369,69 @@ static int ax88179_rx_fixup(struct usbnet *dev, struct sk_buff *skb) u16 hdr_off; u32 *pkt_hdr; - /* This check is no longer done by usbnet */ - if (skb->len < dev->net->hard_header_len) + /* At the end of the SKB, there's a header telling us how many packets + * are bundled into this buffer and where we can find an array of + * per-packet metadata (which contains elements encoded into u16). + */ + if (skb->len < 4) return 0; - skb_trim(skb, skb->len - 4); memcpy(&rx_hdr, skb_tail_pointer(skb), 4); le32_to_cpus(&rx_hdr); - pkt_cnt = (u16)rx_hdr; hdr_off = (u16)(rx_hdr >> 16); + + if (pkt_cnt == 0) + return 0; + + /* Make sure that the bounds of the metadata array are inside the SKB + * (and in front of the counter at the end). + */ + if (pkt_cnt * 2 + hdr_off > skb->len) + return 0; pkt_hdr = (u32 *)(skb->data + hdr_off); - while (pkt_cnt--) { + /* Packets must not overlap the metadata array */ + skb_trim(skb, hdr_off); + + for (; ; pkt_cnt--, pkt_hdr++) { u16 pkt_len; le32_to_cpus(pkt_hdr); pkt_len = (*pkt_hdr >> 16) & 0x1fff; - /* Check CRC or runt packet */ - if ((*pkt_hdr & AX_RXHDR_CRC_ERR) || - (*pkt_hdr & AX_RXHDR_DROP_ERR)) { - skb_pull(skb, (pkt_len + 7) & 0xFFF8); - pkt_hdr++; - continue; - } - - if (pkt_cnt == 0) { - skb->len = pkt_len; - /* Skip IP alignment pseudo header */ - skb_pull(skb, 2); - skb_set_tail_pointer(skb, skb->len); - skb->truesize = pkt_len + sizeof(struct sk_buff); - ax88179_rx_checksum(skb, pkt_hdr); - return 1; - } + if (pkt_len > skb->len) + return 0; - ax_skb = skb_clone(skb, GFP_ATOMIC); - if (ax_skb) { + /* Check CRC or runt packet */ + if (((*pkt_hdr & (AX_RXHDR_CRC_ERR | AX_RXHDR_DROP_ERR)) == 0) && + pkt_len >= 2 + ETH_HLEN) { + bool last = (pkt_cnt == 0); + + if (last) { + ax_skb = skb; + } else { + ax_skb = skb_clone(skb, GFP_ATOMIC); + if (!ax_skb) + return 0; + } ax_skb->len = pkt_len; /* Skip IP alignment pseudo header */ skb_pull(ax_skb, 2); skb_set_tail_pointer(ax_skb, ax_skb->len); ax_skb->truesize = pkt_len + sizeof(struct sk_buff); ax88179_rx_checksum(ax_skb, pkt_hdr); + + if (last) + return 1; + usbnet_skb_return(dev, ax_skb); - } else { - return 0; } - skb_pull(skb, (pkt_len + 7) & 0xFFF8); - pkt_hdr++; + /* Trim this packet away from the SKB */ + if (!skb_pull(skb, (pkt_len + 7) & 0xFFF8)) + return 0; } - return 1; } static struct sk_buff * From 037f2d51c15b4998ed19bf4a542f4b049d6a4f97 Mon Sep 17 00:00:00 2001 From: Randy Dunlap Date: Mon, 14 Feb 2022 10:00:19 -0800 Subject: [PATCH 1078/1149] serial: parisc: GSC: fix build when IOSAPIC is not set commit 6e8793674bb0d1135ca0e5c9f7e16fecbf815926 upstream. There is a build error when using a kernel .config file from 'kernel test robot' for a different build problem: hppa64-linux-ld: drivers/tty/serial/8250/8250_gsc.o: in function `.LC3': (.data.rel.ro+0x18): undefined reference to `iosapic_serial_irq' when: CONFIG_GSC=y CONFIG_SERIO_GSCPS2=y CONFIG_SERIAL_8250_GSC=y CONFIG_PCI is not set and hence PCI_LBA is not set. IOSAPIC depends on PCI_LBA, so IOSAPIC is not set/enabled. Make the use of iosapic_serial_irq() conditional to fix the build error. Signed-off-by: Randy Dunlap Reported-by: kernel test robot Cc: "James E.J. Bottomley" Cc: Helge Deller Cc: linux-parisc@vger.kernel.org Cc: Greg Kroah-Hartman Cc: linux-serial@vger.kernel.org Cc: Jiri Slaby Cc: Johan Hovold Suggested-by: Helge Deller Signed-off-by: Helge Deller Cc: stable@vger.kernel.org Signed-off-by: Helge Deller Signed-off-by: Greg Kroah-Hartman --- drivers/tty/serial/8250/8250_gsc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/tty/serial/8250/8250_gsc.c b/drivers/tty/serial/8250/8250_gsc.c index 2e3ea1a70d7b..2ef2871722b7 100644 --- a/drivers/tty/serial/8250/8250_gsc.c +++ b/drivers/tty/serial/8250/8250_gsc.c @@ -30,7 +30,7 @@ static int __init serial_init_chip(struct parisc_device *dev) unsigned long address; int err; -#ifdef CONFIG_64BIT +#if defined(CONFIG_64BIT) && defined(CONFIG_IOSAPIC) if (!dev->irq && (dev->id.sversion == 0xad)) dev->irq = iosapic_serial_irq(dev); #endif From ca156cb4166f163dd7a894f5e67fd4076e11538e Mon Sep 17 00:00:00 2001 From: John David Anglin Date: Wed, 26 Jan 2022 20:39:05 +0000 Subject: [PATCH 1079/1149] parisc: Fix data TLB miss in sba_unmap_sg commit b7d6f44a0fa716a82969725516dc0b16bc7cd514 upstream. Rolf Eike Beer reported the following bug: [1274934.746891] Bad Address (null pointer deref?): Code=15 (Data TLB miss fault) at addr 0000004140000018 [1274934.746891] CPU: 3 PID: 5549 Comm: cmake Not tainted 5.15.4-gentoo-parisc64 #4 [1274934.746891] Hardware name: 9000/785/C8000 [1274934.746891] [1274934.746891] YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI [1274934.746891] PSW: 00001000000001001111111000001110 Not tainted [1274934.746891] r00-03 000000ff0804fe0e 0000000040bc9bc0 00000000406760e4 0000004140000000 [1274934.746891] r04-07 0000000040b693c0 0000004140000000 000000004a2b08b0 0000000000000001 [1274934.746891] r08-11 0000000041f98810 0000000000000000 000000004a0a7000 0000000000000001 [1274934.746891] r12-15 0000000040bddbc0 0000000040c0cbc0 0000000040bddbc0 0000000040bddbc0 [1274934.746891] r16-19 0000000040bde3c0 0000000040bddbc0 0000000040bde3c0 0000000000000007 [1274934.746891] r20-23 0000000000000006 000000004a368950 0000000000000000 0000000000000001 [1274934.746891] r24-27 0000000000001fff 000000000800000e 000000004a1710f0 0000000040b693c0 [1274934.746891] r28-31 0000000000000001 0000000041f988b0 0000000041f98840 000000004a171118 [1274934.746891] sr00-03 00000000066e5800 0000000000000000 0000000000000000 00000000066e5800 [1274934.746891] sr04-07 0000000000000000 0000000000000000 0000000000000000 0000000000000000 [1274934.746891] [1274934.746891] IASQ: 0000000000000000 0000000000000000 IAOQ: 00000000406760e8 00000000406760ec [1274934.746891] IIR: 48780030 ISR: 0000000000000000 IOR: 0000004140000018 [1274934.746891] CPU: 3 CR30: 00000040e3a9c000 CR31: ffffffffffffffff [1274934.746891] ORIG_R28: 0000000040acdd58 [1274934.746891] IAOQ[0]: sba_unmap_sg+0xb0/0x118 [1274934.746891] IAOQ[1]: sba_unmap_sg+0xb4/0x118 [1274934.746891] RP(r2): sba_unmap_sg+0xac/0x118 [1274934.746891] Backtrace: [1274934.746891] [<00000000402740cc>] dma_unmap_sg_attrs+0x6c/0x70 [1274934.746891] [<000000004074d6bc>] scsi_dma_unmap+0x54/0x60 [1274934.746891] [<00000000407a3488>] mptscsih_io_done+0x150/0xd70 [1274934.746891] [<0000000040798600>] mpt_interrupt+0x168/0xa68 [1274934.746891] [<0000000040255a48>] __handle_irq_event_percpu+0xc8/0x278 [1274934.746891] [<0000000040255c34>] handle_irq_event_percpu+0x3c/0xd8 [1274934.746891] [<000000004025ecb4>] handle_percpu_irq+0xb4/0xf0 [1274934.746891] [<00000000402548e0>] generic_handle_irq+0x50/0x70 [1274934.746891] [<000000004019a254>] call_on_stack+0x18/0x24 [1274934.746891] [1274934.746891] Kernel panic - not syncing: Bad Address (null pointer deref?) The bug is caused by overrunning the sglist and incorrectly testing sg_dma_len(sglist) before nents. Normally this doesn't cause a crash, but in this case sglist crossed a page boundary. This occurs in the following code: while (sg_dma_len(sglist) && nents--) { The fix is simply to test nents first and move the decrement of nents into the loop. Reported-by: Rolf Eike Beer Signed-off-by: John David Anglin Cc: stable@vger.kernel.org Signed-off-by: Helge Deller Signed-off-by: Greg Kroah-Hartman --- drivers/parisc/sba_iommu.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/parisc/sba_iommu.c b/drivers/parisc/sba_iommu.c index b854de39c7ff..02a45be166e8 100644 --- a/drivers/parisc/sba_iommu.c +++ b/drivers/parisc/sba_iommu.c @@ -1051,7 +1051,7 @@ sba_unmap_sg(struct device *dev, struct scatterlist *sglist, int nents, spin_unlock_irqrestore(&ioc->res_lock, flags); #endif - while (sg_dma_len(sglist) && nents--) { + while (nents && sg_dma_len(sglist)) { sba_unmap_single(dev, sg_dma_address(sglist), sg_dma_len(sglist), direction); #ifdef SBA_COLLECT_STATS @@ -1059,6 +1059,7 @@ sba_unmap_sg(struct device *dev, struct scatterlist *sglist, int nents, ioc->usingle_calls--; /* kluge since call is unmap_sg() */ #endif ++sglist; + nents--; } DBG_RUN_SG("%s() DONE (nents %d)\n", __func__, nents); From 85dec77198d0c0abb5559d8c1bdcedd1279fb0e0 Mon Sep 17 00:00:00 2001 From: John David Anglin Date: Thu, 27 Jan 2022 22:33:41 +0000 Subject: [PATCH 1080/1149] parisc: Fix sglist access in ccio-dma.c commit d7da660cab47183cded65e11b64497d0f56c6edf upstream. This patch implements the same bug fix to ccio-dma.c as to sba_iommu.c. It ensures that only the allocated entries of the sglist are accessed. Signed-off-by: John David Anglin Cc: stable@vger.kernel.org Signed-off-by: Helge Deller Signed-off-by: Greg Kroah-Hartman --- drivers/parisc/ccio-dma.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/parisc/ccio-dma.c b/drivers/parisc/ccio-dma.c index cc3708ea8084..5d7072287e6d 100644 --- a/drivers/parisc/ccio-dma.c +++ b/drivers/parisc/ccio-dma.c @@ -998,7 +998,7 @@ ccio_unmap_sg(struct device *dev, struct scatterlist *sglist, int nents, ioc->usg_calls++; #endif - while(sg_dma_len(sglist) && nents--) { + while (nents && sg_dma_len(sglist)) { #ifdef CCIO_COLLECT_STATS ioc->usg_pages += sg_dma_len(sglist) >> PAGE_SHIFT; @@ -1006,6 +1006,7 @@ ccio_unmap_sg(struct device *dev, struct scatterlist *sglist, int nents, ccio_unmap_single(dev, sg_dma_address(sglist), sg_dma_len(sglist), direction); ++sglist; + nents--; } DBG_RUN_SG("%s() DONE (nents %d)\n", __func__, nents); From ca393662a6a7278ca0ab9beb4ef1a58687f6c67c Mon Sep 17 00:00:00 2001 From: Yang Xu Date: Thu, 27 Jan 2022 17:11:35 +0800 Subject: [PATCH 1081/1149] selftests/zram: Skip max_comp_streams interface on newer kernel [ Upstream commit fc4eb486a59d70bd35cf1209f0e68c2d8b979193 ] Since commit 43209ea2d17a ("zram: remove max_comp_streams internals"), zram has switched to per-cpu streams. Even kernel still keep this interface for some reasons, but writing to max_comp_stream doesn't take any effect. So skip it on newer kernel ie 4.7. The code that comparing kernel version is from xfstests testsuite ext4/053. Signed-off-by: Yang Xu Signed-off-by: Shuah Khan Signed-off-by: Sasha Levin --- tools/testing/selftests/zram/zram_lib.sh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tools/testing/selftests/zram/zram_lib.sh b/tools/testing/selftests/zram/zram_lib.sh index 9e73a4fb9b0a..2c1d1c567f85 100755 --- a/tools/testing/selftests/zram/zram_lib.sh +++ b/tools/testing/selftests/zram/zram_lib.sh @@ -20,6 +20,9 @@ dev_mounted=-1 # Kselftest framework requirement - SKIP code is 4. ksft_skip=4 +kernel_version=`uname -r | cut -d'.' -f1,2` +kernel_major=${kernel_version%.*} +kernel_minor=${kernel_version#*.} trap INT @@ -34,6 +37,20 @@ check_prereqs() fi } +kernel_gte() +{ + major=${1%.*} + minor=${1#*.} + + if [ $kernel_major -gt $major ]; then + return 0 + elif [[ $kernel_major -eq $major && $kernel_minor -ge $minor ]]; then + return 0 + fi + + return 1 +} + zram_cleanup() { echo "zram cleanup" @@ -95,6 +112,13 @@ zram_max_streams() { echo "set max_comp_streams to zram device(s)" + kernel_gte 4.7 + if [ $? -eq 0 ]; then + echo "The device attribute max_comp_streams was"\ + "deprecated in 4.7" + return 0 + fi + local i=0 for max_s in $zram_max_streams; do local sys_path="/sys/block/zram${i}/max_comp_streams" From 69557dfdd91bd101ed9cbf4f91b756782a875692 Mon Sep 17 00:00:00 2001 From: Yang Xu Date: Thu, 27 Jan 2022 17:11:36 +0800 Subject: [PATCH 1082/1149] selftests/zram01.sh: Fix compression ratio calculation [ Upstream commit d18da7ec3719559d6e74937266d0416e6c7e0b31 ] zram01 uses `free -m` to measure zram memory usage. The results are no sense because they are polluted by all running processes on the system. We Should only calculate the free memory delta for the current process. So use the third field of /sys/block/zram/mm_stat to measure memory usage instead. The file is available since kernel 4.1. orig_data_size(first): uncompressed size of data stored in this disk. compr_data_size(second): compressed size of data stored in this disk mem_used_total(third): the amount of memory allocated for this disk Also remove useless zram cleanup call in zram_fill_fs and so we don't need to cleanup zram twice if fails. Signed-off-by: Yang Xu Signed-off-by: Shuah Khan Signed-off-by: Sasha Levin --- tools/testing/selftests/zram/zram01.sh | 30 +++++++------------------- 1 file changed, 8 insertions(+), 22 deletions(-) diff --git a/tools/testing/selftests/zram/zram01.sh b/tools/testing/selftests/zram/zram01.sh index b9566a6478a9..ac6e4ddd2604 100755 --- a/tools/testing/selftests/zram/zram01.sh +++ b/tools/testing/selftests/zram/zram01.sh @@ -42,8 +42,6 @@ zram_algs="lzo" zram_fill_fs() { - local mem_free0=$(free -m | awk 'NR==2 {print $4}') - for i in $(seq 0 $(($dev_num - 1))); do echo "fill zram$i..." local b=0 @@ -54,29 +52,17 @@ zram_fill_fs() b=$(($b + 1)) done echo "zram$i can be filled with '$b' KB" - done - local mem_free1=$(free -m | awk 'NR==2 {print $4}') - local used_mem=$(($mem_free0 - $mem_free1)) + local mem_used_total=`awk '{print $3}' "/sys/block/zram$i/mm_stat"` + local v=$((100 * 1024 * $b / $mem_used_total)) + if [ "$v" -lt 100 ]; then + echo "FAIL compression ratio: 0.$v:1" + ERR_CODE=-1 + return + fi - local total_size=0 - for sm in $zram_sizes; do - local s=$(echo $sm | sed 's/M//') - total_size=$(($total_size + $s)) + echo "zram compression ratio: $(echo "scale=2; $v / 100 " | bc):1: OK" done - - echo "zram used ${used_mem}M, zram disk sizes ${total_size}M" - - local v=$((100 * $total_size / $used_mem)) - - if [ "$v" -lt 100 ]; then - echo "FAIL compression ratio: 0.$v:1" - ERR_CODE=-1 - zram_cleanup - return - fi - - echo "zram compression ratio: $(echo "scale=2; $v / 100 " | bc):1: OK" } check_prereqs From 5307e946afb2b30063bbadedc50d872ed7ecc074 Mon Sep 17 00:00:00 2001 From: Yang Xu Date: Thu, 27 Jan 2022 17:11:37 +0800 Subject: [PATCH 1083/1149] selftests/zram: Adapt the situation that /dev/zram0 is being used [ Upstream commit 01dabed20573804750af5c7bf8d1598a6bf7bf6e ] If zram-generator package is installed and works, then we can not remove zram module because zram swap is being used. This case needs a clean zram environment, change this test by using hot_add/hot_remove interface. So even zram device is being used, we still can add zram device and remove them in cleanup. The two interface was introduced since kernel commit 6566d1a32bf7("zram: add dynamic device add/remove functionality") in v4.2-rc1. If kernel supports these two interface, we use hot_add/hot_remove to slove this problem, if not, just check whether zram is being used or built in, then skip it on old kernel. Signed-off-by: Yang Xu Signed-off-by: Shuah Khan Signed-off-by: Sasha Levin --- tools/testing/selftests/zram/zram.sh | 15 +--- tools/testing/selftests/zram/zram01.sh | 3 +- tools/testing/selftests/zram/zram02.sh | 1 - tools/testing/selftests/zram/zram_lib.sh | 110 +++++++++++++---------- 4 files changed, 66 insertions(+), 63 deletions(-) diff --git a/tools/testing/selftests/zram/zram.sh b/tools/testing/selftests/zram/zram.sh index 9399c4aeaa26..d4652e295ff8 100755 --- a/tools/testing/selftests/zram/zram.sh +++ b/tools/testing/selftests/zram/zram.sh @@ -1,9 +1,6 @@ #!/bin/bash TCID="zram.sh" -# Kselftest framework requirement - SKIP code is 4. -ksft_skip=4 - . ./zram_lib.sh run_zram () { @@ -17,14 +14,4 @@ echo "" check_prereqs -# check zram module exists -MODULE_PATH=/lib/modules/`uname -r`/kernel/drivers/block/zram/zram.ko -if [ -f $MODULE_PATH ]; then - run_zram -elif [ -b /dev/zram0 ]; then - run_zram -else - echo "$TCID : No zram.ko module or /dev/zram0 device file not found" - echo "$TCID : CONFIG_ZRAM is not set" - exit $ksft_skip -fi +run_zram diff --git a/tools/testing/selftests/zram/zram01.sh b/tools/testing/selftests/zram/zram01.sh index ac6e4ddd2604..8abc9965089d 100755 --- a/tools/testing/selftests/zram/zram01.sh +++ b/tools/testing/selftests/zram/zram01.sh @@ -42,7 +42,7 @@ zram_algs="lzo" zram_fill_fs() { - for i in $(seq 0 $(($dev_num - 1))); do + for i in $(seq $dev_start $dev_end); do echo "fill zram$i..." local b=0 while [ true ]; do @@ -76,7 +76,6 @@ zram_mount zram_fill_fs zram_cleanup -zram_unload if [ $ERR_CODE -ne 0 ]; then echo "$TCID : [FAIL]" diff --git a/tools/testing/selftests/zram/zram02.sh b/tools/testing/selftests/zram/zram02.sh index 74569b883737..3768cfd2e5f8 100755 --- a/tools/testing/selftests/zram/zram02.sh +++ b/tools/testing/selftests/zram/zram02.sh @@ -45,7 +45,6 @@ zram_set_memlimit zram_makeswap zram_swapoff zram_cleanup -zram_unload if [ $ERR_CODE -ne 0 ]; then echo "$TCID : [FAIL]" diff --git a/tools/testing/selftests/zram/zram_lib.sh b/tools/testing/selftests/zram/zram_lib.sh index 2c1d1c567f85..130d193cbd72 100755 --- a/tools/testing/selftests/zram/zram_lib.sh +++ b/tools/testing/selftests/zram/zram_lib.sh @@ -14,10 +14,12 @@ # Author: Alexey Kodanev # Modified: Naresh Kamboju -MODULE=0 dev_makeswap=-1 dev_mounted=-1 - +dev_start=0 +dev_end=-1 +module_load=-1 +sys_control=-1 # Kselftest framework requirement - SKIP code is 4. ksft_skip=4 kernel_version=`uname -r | cut -d'.' -f1,2` @@ -55,57 +57,72 @@ zram_cleanup() { echo "zram cleanup" local i= - for i in $(seq 0 $dev_makeswap); do + for i in $(seq $dev_start $dev_makeswap); do swapoff /dev/zram$i done - for i in $(seq 0 $dev_mounted); do + for i in $(seq $dev_start $dev_mounted); do umount /dev/zram$i done - for i in $(seq 0 $(($dev_num - 1))); do + for i in $(seq $dev_start $dev_end); do echo 1 > /sys/block/zram${i}/reset rm -rf zram$i done -} + if [ $sys_control -eq 1 ]; then + for i in $(seq $dev_start $dev_end); do + echo $i > /sys/class/zram-control/hot_remove + done + fi -zram_unload() -{ - if [ $MODULE -ne 0 ] ; then - echo "zram rmmod zram" + if [ $module_load -eq 1 ]; then rmmod zram > /dev/null 2>&1 fi } zram_load() { - # check zram module exists - MODULE_PATH=/lib/modules/`uname -r`/kernel/drivers/block/zram/zram.ko - if [ -f $MODULE_PATH ]; then - MODULE=1 - echo "create '$dev_num' zram device(s)" - modprobe zram num_devices=$dev_num - if [ $? -ne 0 ]; then - echo "failed to insert zram module" - exit 1 - fi - - dev_num_created=$(ls /dev/zram* | wc -w) + echo "create '$dev_num' zram device(s)" + + # zram module loaded, new kernel + if [ -d "/sys/class/zram-control" ]; then + echo "zram modules already loaded, kernel supports" \ + "zram-control interface" + dev_start=$(ls /dev/zram* | wc -w) + dev_end=$(($dev_start + $dev_num - 1)) + sys_control=1 + + for i in $(seq $dev_start $dev_end); do + cat /sys/class/zram-control/hot_add > /dev/null + done + + echo "all zram devices (/dev/zram$dev_start~$dev_end" \ + "successfully created" + return 0 + fi - if [ "$dev_num_created" -ne "$dev_num" ]; then - echo "unexpected num of devices: $dev_num_created" - ERR_CODE=-1 + # detect old kernel or built-in + modprobe zram num_devices=$dev_num + if [ ! -d "/sys/class/zram-control" ]; then + if grep -q '^zram' /proc/modules; then + rmmod zram > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "zram module is being used on old kernel" \ + "without zram-control interface" + exit $ksft_skip + fi else - echo "zram load module successful" + echo "test needs CONFIG_ZRAM=m on old kernel without" \ + "zram-control interface" + exit $ksft_skip fi - elif [ -b /dev/zram0 ]; then - echo "/dev/zram0 device file found: OK" - else - echo "ERROR: No zram.ko module or no /dev/zram0 device found" - echo "$TCID : CONFIG_ZRAM is not set" - exit 1 + modprobe zram num_devices=$dev_num fi + + module_load=1 + dev_end=$(($dev_num - 1)) + echo "all zram devices (/dev/zram0~$dev_end) successfully created" } zram_max_streams() @@ -119,7 +136,7 @@ zram_max_streams() return 0 fi - local i=0 + local i=$dev_start for max_s in $zram_max_streams; do local sys_path="/sys/block/zram${i}/max_comp_streams" echo $max_s > $sys_path || \ @@ -131,7 +148,7 @@ zram_max_streams() echo "FAIL can't set max_streams '$max_s', get $max_stream" i=$(($i + 1)) - echo "$sys_path = '$max_streams' ($i/$dev_num)" + echo "$sys_path = '$max_streams'" done echo "zram max streams: OK" @@ -141,15 +158,16 @@ zram_compress_alg() { echo "test that we can set compression algorithm" - local algs=$(cat /sys/block/zram0/comp_algorithm) + local i=$dev_start + local algs=$(cat /sys/block/zram${i}/comp_algorithm) echo "supported algs: $algs" - local i=0 + for alg in $zram_algs; do local sys_path="/sys/block/zram${i}/comp_algorithm" echo "$alg" > $sys_path || \ echo "FAIL can't set '$alg' to $sys_path" i=$(($i + 1)) - echo "$sys_path = '$alg' ($i/$dev_num)" + echo "$sys_path = '$alg'" done echo "zram set compression algorithm: OK" @@ -158,14 +176,14 @@ zram_compress_alg() zram_set_disksizes() { echo "set disk size to zram device(s)" - local i=0 + local i=$dev_start for ds in $zram_sizes; do local sys_path="/sys/block/zram${i}/disksize" echo "$ds" > $sys_path || \ echo "FAIL can't set '$ds' to $sys_path" i=$(($i + 1)) - echo "$sys_path = '$ds' ($i/$dev_num)" + echo "$sys_path = '$ds'" done echo "zram set disksizes: OK" @@ -175,14 +193,14 @@ zram_set_memlimit() { echo "set memory limit to zram device(s)" - local i=0 + local i=$dev_start for ds in $zram_mem_limits; do local sys_path="/sys/block/zram${i}/mem_limit" echo "$ds" > $sys_path || \ echo "FAIL can't set '$ds' to $sys_path" i=$(($i + 1)) - echo "$sys_path = '$ds' ($i/$dev_num)" + echo "$sys_path = '$ds'" done echo "zram set memory limit: OK" @@ -191,8 +209,8 @@ zram_set_memlimit() zram_makeswap() { echo "make swap with zram device(s)" - local i=0 - for i in $(seq 0 $(($dev_num - 1))); do + local i=$dev_start + for i in $(seq $dev_start $dev_end); do mkswap /dev/zram$i > err.log 2>&1 if [ $? -ne 0 ]; then cat err.log @@ -215,7 +233,7 @@ zram_makeswap() zram_swapoff() { local i= - for i in $(seq 0 $dev_makeswap); do + for i in $(seq $dev_start $dev_end); do swapoff /dev/zram$i > err.log 2>&1 if [ $? -ne 0 ]; then cat err.log @@ -229,7 +247,7 @@ zram_swapoff() zram_makefs() { - local i=0 + local i=$dev_start for fs in $zram_filesystems; do # if requested fs not supported default it to ext2 which mkfs.$fs > /dev/null 2>&1 || fs=ext2 @@ -248,7 +266,7 @@ zram_makefs() zram_mount() { local i=0 - for i in $(seq 0 $(($dev_num - 1))); do + for i in $(seq $dev_start $dev_end); do echo "mount /dev/zram$i" mkdir zram$i mount /dev/zram$i zram$i > /dev/null || \ From e2493544866772247a1f9fb1c35de2e45ab47243 Mon Sep 17 00:00:00 2001 From: Duoming Zhou Date: Fri, 28 Jan 2022 12:47:15 +0800 Subject: [PATCH 1084/1149] ax25: improve the incomplete fix to avoid UAF and NPD bugs [ Upstream commit 4e0f718daf97d47cf7dec122da1be970f145c809 ] The previous commit 1ade48d0c27d ("ax25: NPD bug when detaching AX25 device") introduce lock_sock() into ax25_kill_by_device to prevent NPD bug. But the concurrency NPD or UAF bug will occur, when lock_sock() or release_sock() dereferences the ax25_cb->sock. The NULL pointer dereference bug can be shown as below: ax25_kill_by_device() | ax25_release() | ax25_destroy_socket() | ax25_cb_del() ... | ... | ax25->sk=NULL; lock_sock(s->sk); //(1) | s->ax25_dev = NULL; | ... release_sock(s->sk); //(2) | ... | The root cause is that the sock is set to null before dereference site (1) or (2). Therefore, this patch extracts the ax25_cb->sock in advance, and uses ax25_list_lock to protect it, which can synchronize with ax25_cb_del() and ensure the value of sock is not null before dereference sites. The concurrency UAF bug can be shown as below: ax25_kill_by_device() | ax25_release() | ax25_destroy_socket() ... | ... | sock_put(sk); //FREE lock_sock(s->sk); //(1) | s->ax25_dev = NULL; | ... release_sock(s->sk); //(2) | ... | The root cause is that the sock is released before dereference site (1) or (2). Therefore, this patch uses sock_hold() to increase the refcount of sock and uses ax25_list_lock to protect it, which can synchronize with ax25_cb_del() in ax25_destroy_socket() and ensure the sock wil not be released before dereference sites. Signed-off-by: Duoming Zhou Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- net/ax25/af_ax25.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c index f4c8567e91b3..c4ef1be59cb1 100644 --- a/net/ax25/af_ax25.c +++ b/net/ax25/af_ax25.c @@ -80,6 +80,7 @@ static void ax25_kill_by_device(struct net_device *dev) { ax25_dev *ax25_dev; ax25_cb *s; + struct sock *sk; if ((ax25_dev = ax25_dev_ax25dev(dev)) == NULL) return; @@ -88,13 +89,15 @@ static void ax25_kill_by_device(struct net_device *dev) again: ax25_for_each(s, &ax25_list) { if (s->ax25_dev == ax25_dev) { + sk = s->sk; + sock_hold(sk); spin_unlock_bh(&ax25_list_lock); - lock_sock(s->sk); + lock_sock(sk); s->ax25_dev = NULL; - release_sock(s->sk); + release_sock(sk); ax25_disconnect(s, ENETUNREACH); spin_lock_bh(&ax25_list_lock); - + sock_put(sk); /* The entry could have been deleted from the * list meanwhile and thus the next pointer is * no longer valid. Play it safe and restart From b205512f37f521bb2e9aa50848c1fb89840eed8e Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Sun, 30 Jan 2022 08:53:16 -0800 Subject: [PATCH 1085/1149] quota: make dquot_quota_sync return errors from ->sync_fs [ Upstream commit dd5532a4994bfda0386eb2286ec00758cee08444 ] Strangely, dquot_quota_sync ignores the return code from the ->sync_fs call, which means that quotacalls like Q_SYNC never see the error. This doesn't seem right, so fix that. Signed-off-by: Darrick J. Wong Reviewed-by: Jan Kara Reviewed-by: Christoph Hellwig Acked-by: Christian Brauner Signed-off-by: Sasha Levin --- fs/quota/dquot.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c index b7d5e254792c..1bb72c4f3187 100644 --- a/fs/quota/dquot.c +++ b/fs/quota/dquot.c @@ -669,9 +669,14 @@ int dquot_quota_sync(struct super_block *sb, int type) /* This is not very clever (and fast) but currently I don't know about * any other simple way of getting quota data to disk and we must get * them there for userspace to be visible... */ - if (sb->s_op->sync_fs) - sb->s_op->sync_fs(sb, 1); - sync_blockdev(sb->s_bdev); + if (sb->s_op->sync_fs) { + ret = sb->s_op->sync_fs(sb, 1); + if (ret) + return ret; + } + ret = sync_blockdev(sb->s_bdev); + if (ret) + return ret; /* * Now when everything is written we can discard the pagecache so From a5a129926f62bb2340aee433c53468fdd096f379 Mon Sep 17 00:00:00 2001 From: Nicholas Bishop Date: Fri, 11 Feb 2022 14:57:39 -0500 Subject: [PATCH 1086/1149] drm/radeon: Fix backlight control on iMac 12,1 commit 364438fd629f7611a84c8e6d7de91659300f1502 upstream. The iMac 12,1 does not use the gmux driver for backlight, so the radeon backlight device is needed to set the brightness. Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1838 Signed-off-by: Nicholas Bishop Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org Signed-off-by: Greg Kroah-Hartman --- drivers/gpu/drm/radeon/atombios_encoders.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c index 8e86cf7da614..845a6d54f45b 100644 --- a/drivers/gpu/drm/radeon/atombios_encoders.c +++ b/drivers/gpu/drm/radeon/atombios_encoders.c @@ -192,7 +192,8 @@ void radeon_atom_backlight_init(struct radeon_encoder *radeon_encoder, * so don't register a backlight device */ if ((rdev->pdev->subsystem_vendor == PCI_VENDOR_ID_APPLE) && - (rdev->pdev->device == 0x6741)) + (rdev->pdev->device == 0x6741) && + !dmi_match(DMI_PRODUCT_NAME, "iMac12,1")) return; if (!radeon_encoder->enc_priv) From 4e9d3e9892e3f96626f1d94451870e2325e8373e Mon Sep 17 00:00:00 2001 From: Guillaume Nault Date: Mon, 10 Jan 2022 14:43:06 +0100 Subject: [PATCH 1087/1149] xfrm: Don't accidentally set RTO_ONLINK in decode_session4() commit 23e7b1bfed61e301853b5e35472820d919498278 upstream. Similar to commit 94e2238969e8 ("xfrm4: strip ECN bits from tos field"), clear the ECN bits from iph->tos when setting ->flowi4_tos. This ensures that the last bit of ->flowi4_tos is cleared, so ip_route_output_key_hash() isn't going to restrict the scope of the route lookup. Use ~INET_ECN_MASK instead of IPTOS_RT_MASK, because we have no reason to clear the high order bits. Found by code inspection, compile tested only. Fixes: 4da3089f2b58 ("[IPSEC]: Use TOS when doing tunnel lookups") Signed-off-by: Guillaume Nault Signed-off-by: Jakub Kicinski [sudip: manually backport to previous location] Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- net/ipv4/xfrm4_policy.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net/ipv4/xfrm4_policy.c b/net/ipv4/xfrm4_policy.c index d9758ecdcba6..87dd2694bd5e 100644 --- a/net/ipv4/xfrm4_policy.c +++ b/net/ipv4/xfrm4_policy.c @@ -16,6 +16,7 @@ #include #include #include +#include static struct xfrm_policy_afinfo xfrm4_policy_afinfo; @@ -123,7 +124,7 @@ _decode_session4(struct sk_buff *skb, struct flowi *fl, int reverse) fl4->flowi4_proto = iph->protocol; fl4->daddr = reverse ? iph->saddr : iph->daddr; fl4->saddr = reverse ? iph->daddr : iph->saddr; - fl4->flowi4_tos = iph->tos; + fl4->flowi4_tos = iph->tos & ~INET_ECN_MASK; if (!ip_is_fragment(iph)) { switch (iph->protocol) { From 09965cb6bf22ba6c8fb778f339053032b7233554 Mon Sep 17 00:00:00 2001 From: "Eric W. Biederman" Date: Mon, 3 Jan 2022 11:32:36 -0600 Subject: [PATCH 1088/1149] taskstats: Cleanup the use of task->exit_code commit 1b5a42d9c85f0e731f01c8d1129001fd8531a8a0 upstream. In the function bacct_add_task the code reading task->exit_code was introduced in commit f3cef7a99469 ("[PATCH] csa: basic accounting over taskstats"), and it is not entirely clear what the taskstats interface is trying to return as only returning the exit_code of the first task in a process doesn't make a lot of sense. As best as I can figure the intent is to return task->exit_code after a task exits. The field is returned with per task fields, so the exit_code of the entire process is not wanted. Only the value of the first task is returned so this is not a useful way to get the per task ptrace stop code. The ordinary case of returning this value is returning after a task exits, which also precludes use for getting a ptrace value. It is common to for the first task of a process to also be the last task of a process so this field may have done something reasonable by accident in testing. Make ac_exitcode a reliable per task value by always returning it for every exited task. Setting ac_exitcode in a sensible mannter makes it possible to continue to provide this value going forward. Cc: Balbir Singh Fixes: f3cef7a99469 ("[PATCH] csa: basic accounting over taskstats") Link: https://lkml.kernel.org/r/20220103213312.9144-5-ebiederm@xmission.com Signed-off-by: "Eric W. Biederman" [sudip: adjust context] Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman --- kernel/tsacct.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/kernel/tsacct.c b/kernel/tsacct.c index 975cb49e32bf..2478ba0d91a0 100644 --- a/kernel/tsacct.c +++ b/kernel/tsacct.c @@ -44,11 +44,10 @@ void bacct_add_tsk(struct user_namespace *user_ns, /* Convert to seconds for btime */ do_div(delta, USEC_PER_SEC); stats->ac_btime = get_seconds() - delta; - if (thread_group_leader(tsk)) { + if (tsk->flags & PF_EXITING) stats->ac_exitcode = tsk->exit_code; - if (tsk->flags & PF_FORKNOEXEC) - stats->ac_flag |= AFORK; - } + if (thread_group_leader(tsk) && (tsk->flags & PF_FORKNOEXEC)) + stats->ac_flag |= AFORK; if (tsk->flags & PF_SUPERPRIV) stats->ac_flag |= ASU; if (tsk->flags & PF_DUMPCORE) From a42b52da6af1997260ed1a8c58362a05ca75ee3e Mon Sep 17 00:00:00 2001 From: Eric Dumazet Date: Thu, 10 Feb 2022 09:13:31 -0800 Subject: [PATCH 1089/1149] drop_monitor: fix data-race in dropmon_net_event / trace_napi_poll_hit commit dcd54265c8bc14bd023815e36e2d5f9d66ee1fee upstream. trace_napi_poll_hit() is reading stat->dev while another thread can write on it from dropmon_net_event() Use READ_ONCE()/WRITE_ONCE() here, RCU rules are properly enforced already, we only have to take care of load/store tearing. BUG: KCSAN: data-race in dropmon_net_event / trace_napi_poll_hit write to 0xffff88816f3ab9c0 of 8 bytes by task 20260 on cpu 1: dropmon_net_event+0xb8/0x2b0 net/core/drop_monitor.c:1579 notifier_call_chain kernel/notifier.c:84 [inline] raw_notifier_call_chain+0x53/0xb0 kernel/notifier.c:392 call_netdevice_notifiers_info net/core/dev.c:1919 [inline] call_netdevice_notifiers_extack net/core/dev.c:1931 [inline] call_netdevice_notifiers net/core/dev.c:1945 [inline] unregister_netdevice_many+0x867/0xfb0 net/core/dev.c:10415 ip_tunnel_delete_nets+0x24a/0x280 net/ipv4/ip_tunnel.c:1123 vti_exit_batch_net+0x2a/0x30 net/ipv4/ip_vti.c:515 ops_exit_list net/core/net_namespace.c:173 [inline] cleanup_net+0x4dc/0x8d0 net/core/net_namespace.c:597 process_one_work+0x3f6/0x960 kernel/workqueue.c:2307 worker_thread+0x616/0xa70 kernel/workqueue.c:2454 kthread+0x1bf/0x1e0 kernel/kthread.c:377 ret_from_fork+0x1f/0x30 read to 0xffff88816f3ab9c0 of 8 bytes by interrupt on cpu 0: trace_napi_poll_hit+0x89/0x1c0 net/core/drop_monitor.c:292 trace_napi_poll include/trace/events/napi.h:14 [inline] __napi_poll+0x36b/0x3f0 net/core/dev.c:6366 napi_poll net/core/dev.c:6432 [inline] net_rx_action+0x29e/0x650 net/core/dev.c:6519 __do_softirq+0x158/0x2de kernel/softirq.c:558 do_softirq+0xb1/0xf0 kernel/softirq.c:459 __local_bh_enable_ip+0x68/0x70 kernel/softirq.c:383 __raw_spin_unlock_bh include/linux/spinlock_api_smp.h:167 [inline] _raw_spin_unlock_bh+0x33/0x40 kernel/locking/spinlock.c:210 spin_unlock_bh include/linux/spinlock.h:394 [inline] ptr_ring_consume_bh include/linux/ptr_ring.h:367 [inline] wg_packet_decrypt_worker+0x73c/0x780 drivers/net/wireguard/receive.c:506 process_one_work+0x3f6/0x960 kernel/workqueue.c:2307 worker_thread+0x616/0xa70 kernel/workqueue.c:2454 kthread+0x1bf/0x1e0 kernel/kthread.c:377 ret_from_fork+0x1f/0x30 value changed: 0xffff88815883e000 -> 0x0000000000000000 Reported by Kernel Concurrency Sanitizer on: CPU: 0 PID: 26435 Comm: kworker/0:1 Not tainted 5.17.0-rc1-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Workqueue: wg-crypt-wg2 wg_packet_decrypt_worker Fixes: 4ea7e38696c7 ("dropmon: add ability to detect when hardware dropsrxpackets") Signed-off-by: Eric Dumazet Cc: Neil Horman Reported-by: syzbot Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- net/core/drop_monitor.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/net/core/drop_monitor.c b/net/core/drop_monitor.c index 9bcc6fdade3e..8d71ce5030d4 100644 --- a/net/core/drop_monitor.c +++ b/net/core/drop_monitor.c @@ -223,13 +223,17 @@ static void trace_napi_poll_hit(void *ignore, struct napi_struct *napi) rcu_read_lock(); list_for_each_entry_rcu(new_stat, &hw_stats_list, list) { + struct net_device *dev; + /* * only add a note to our monitor buffer if: * 1) this is the dev we received on * 2) its after the last_rx delta * 3) our rx_dropped count has gone up */ - if ((new_stat->dev == napi->dev) && + /* Paired with WRITE_ONCE() in dropmon_net_event() */ + dev = READ_ONCE(new_stat->dev); + if ((dev == napi->dev) && (time_after(jiffies, new_stat->last_rx + dm_hw_check_delta)) && (napi->dev->stats.rx_dropped != new_stat->last_drop_val)) { trace_drop_common(NULL, NULL); @@ -344,7 +348,10 @@ static int dropmon_net_event(struct notifier_block *ev_block, mutex_lock(&trace_state_mutex); list_for_each_entry_safe(new_stat, tmp, &hw_stats_list, list) { if (new_stat->dev == dev) { - new_stat->dev = NULL; + + /* Paired with READ_ONCE() in trace_napi_poll_hit() */ + WRITE_ONCE(new_stat->dev, NULL); + if (trace_state == TRACE_OFF) { list_del_rcu(&new_stat->list); kfree_rcu(new_stat, rcu); From 488fad1e01dfdfeddd49e5837fbf9316bae33424 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Mon, 14 Feb 2022 11:00:19 +0100 Subject: [PATCH 1090/1149] ALSA: hda: Fix regression on forced probe mask option commit 6317f7449348a897483a2b4841f7a9190745c81b upstream. The forced probe mask via probe_mask 0x100 bit doesn't work any longer as expected since the bus init code was moved and it's clearing the codec_mask value that was set beforehand. This patch fixes the long-time regression by moving the check_probe_mask() call. Fixes: a41d122449be ("ALSA: hda - Embed bus into controller object") Reported-by: dmummenschanz@web.de Cc: Link: https://lore.kernel.org/r/trinity-f018660b-95c9-442b-a2a8-c92a56eb07ed-1644345967148@3c-app-webde-bap22 Link: https://lore.kernel.org/r/20220214100020.8870-1-tiwai@suse.de Signed-off-by: Takashi Iwai Signed-off-by: Greg Kroah-Hartman --- sound/pci/hda/hda_intel.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 8dd6cf0b8939..f173e2be67a1 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -1624,8 +1624,6 @@ static int azx_create(struct snd_card *card, struct pci_dev *pci, assign_position_fix(chip, check_position_fix(chip, position_fix[dev])); - check_probe_mask(chip, dev); - chip->single_cmd = single_cmd; azx_check_snoop_available(chip); @@ -1654,6 +1652,8 @@ static int azx_create(struct snd_card *card, struct pci_dev *pci, chip->bus.needs_damn_long_delay = 1; } + check_probe_mask(chip, dev); + err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops); if (err < 0) { dev_err(card->dev, "Error creating device [card]!\n"); From e48b5be2909d9a09795cf370018e6f20ce707a42 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Mon, 14 Feb 2022 11:00:20 +0100 Subject: [PATCH 1091/1149] ALSA: hda: Fix missing codec probe on Shenker Dock 15 commit dd8e5b161d7fb9cefa1f1d6e35a39b9e1563c8d3 upstream. By some unknown reason, BIOS on Shenker Dock 15 doesn't set up the codec mask properly for the onboard audio. Let's set the forced codec mask to enable the codec discovery. Reported-by: dmummenschanz@web.de Cc: Link: https://lore.kernel.org/r/trinity-f018660b-95c9-442b-a2a8-c92a56eb07ed-1644345967148@3c-app-webde-bap22 Link: https://lore.kernel.org/r/20220214100020.8870-2-tiwai@suse.de Signed-off-by: Takashi Iwai Signed-off-by: Greg Kroah-Hartman --- sound/pci/hda/hda_intel.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index f173e2be67a1..90e8fd71f708 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -1459,6 +1459,7 @@ static struct snd_pci_quirk probe_mask_list[] = { /* forced codec slots */ SND_PCI_QUIRK(0x1043, 0x1262, "ASUS W5Fm", 0x103), SND_PCI_QUIRK(0x1046, 0x1262, "ASUS W5F", 0x103), + SND_PCI_QUIRK(0x1558, 0x0351, "Schenker Dock 15", 0x105), /* WinFast VP200 H (Teradici) user reported broken communication */ SND_PCI_QUIRK(0x3a21, 0x040d, "WinFast VP200 H", 0x101), {} From 28fababe6d61a58a8b57603723aefa77fdadb411 Mon Sep 17 00:00:00 2001 From: Mark Brown Date: Tue, 1 Feb 2022 15:56:26 +0000 Subject: [PATCH 1092/1149] ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw() commit 564778d7b1ea465f9487eedeece7527a033549c5 upstream. When writing out a stereo control we discard the change notification from the first channel, meaning that events are only generated based on changes to the second channel. Ensure that we report a change if either channel has changed. Signed-off-by: Mark Brown Cc: stable@vger.kernel.org Link: https://lore.kernel.org/r/20220201155629.120510-2-broonie@kernel.org Signed-off-by: Mark Brown Signed-off-by: Greg Kroah-Hartman --- sound/soc/soc-ops.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/sound/soc/soc-ops.c b/sound/soc/soc-ops.c index 15fa965a647e..9202cfcd075d 100644 --- a/sound/soc/soc-ops.c +++ b/sound/soc/soc-ops.c @@ -319,7 +319,7 @@ int snd_soc_put_volsw(struct snd_kcontrol *kcontrol, unsigned int sign_bit = mc->sign_bit; unsigned int mask = (1 << fls(max)) - 1; unsigned int invert = mc->invert; - int err; + int err, ret; bool type_2r = false; unsigned int val2 = 0; unsigned int val, val_mask; @@ -361,12 +361,18 @@ int snd_soc_put_volsw(struct snd_kcontrol *kcontrol, err = snd_soc_component_update_bits(component, reg, val_mask, val); if (err < 0) return err; + ret = err; - if (type_2r) + if (type_2r) { err = snd_soc_component_update_bits(component, reg2, val_mask, - val2); + val2); + /* Don't discard any error code or drop change flag */ + if (ret == 0 || err < 0) { + ret = err; + } + } - return err; + return ret; } EXPORT_SYMBOL_GPL(snd_soc_put_volsw); From 8f29266ba5fc79f2f0dccdfc4ee226b87d0c1789 Mon Sep 17 00:00:00 2001 From: Mark Brown Date: Tue, 1 Feb 2022 15:56:28 +0000 Subject: [PATCH 1093/1149] ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw_range() commit 650204ded3703b5817bd4b6a77fa47d333c4f902 upstream. When writing out a stereo control we discard the change notification from the first channel, meaning that events are only generated based on changes to the second channel. Ensure that we report a change if either channel has changed. Signed-off-by: Mark Brown Cc: stable@vger.kernel.org Link: https://lore.kernel.org/r/20220201155629.120510-4-broonie@kernel.org Signed-off-by: Mark Brown Signed-off-by: Greg Kroah-Hartman --- sound/soc/soc-ops.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/sound/soc/soc-ops.c b/sound/soc/soc-ops.c index 9202cfcd075d..d62bb0aadb82 100644 --- a/sound/soc/soc-ops.c +++ b/sound/soc/soc-ops.c @@ -528,7 +528,7 @@ int snd_soc_put_volsw_range(struct snd_kcontrol *kcontrol, unsigned int mask = (1 << fls(max)) - 1; unsigned int invert = mc->invert; unsigned int val, val_mask; - int ret; + int err, ret; if (invert) val = (max - ucontrol->value.integer.value[0]) & mask; @@ -537,9 +537,10 @@ int snd_soc_put_volsw_range(struct snd_kcontrol *kcontrol, val_mask = mask << shift; val = val << shift; - ret = snd_soc_component_update_bits(component, reg, val_mask, val); - if (ret < 0) - return ret; + err = snd_soc_component_update_bits(component, reg, val_mask, val); + if (err < 0) + return err; + ret = err; if (snd_soc_volsw_is_stereo(mc)) { if (invert) @@ -549,8 +550,12 @@ int snd_soc_put_volsw_range(struct snd_kcontrol *kcontrol, val_mask = mask << shift; val = val << shift; - ret = snd_soc_component_update_bits(component, rreg, val_mask, + err = snd_soc_component_update_bits(component, rreg, val_mask, val); + /* Don't discard any error code or drop change flag */ + if (ret == 0 || err < 0) { + ret = err; + } } return ret; From 38654404797f9cedf7f5def6fcb871b8cb499526 Mon Sep 17 00:00:00 2001 From: Eliav Farber Date: Thu, 13 Jan 2022 10:06:19 +0000 Subject: [PATCH 1094/1149] EDAC: Fix calculation of returned address and next offset in edac_align_ptr() commit f8efca92ae509c25e0a4bd5d0a86decea4f0c41e upstream. Do alignment logic properly and use the "ptr" local variable for calculating the remainder of the alignment. This became an issue because struct edac_mc_layer has a size that is not zero modulo eight, and the next offset that was prepared for the private data was unaligned, causing an alignment exception. The patch in Fixes: which broke this actually wanted to "what we actually care about is the alignment of the actual pointer that's about to be returned." But it didn't check that alignment. Use the correct variable "ptr" for that. [ bp: Massage commit message. ] Fixes: 8447c4d15e35 ("edac: Do alignment logic properly in edac_align_ptr()") Signed-off-by: Eliav Farber Signed-off-by: Borislav Petkov Cc: Link: https://lore.kernel.org/r/20220113100622.12783-2-farbere@amazon.com Signed-off-by: Greg Kroah-Hartman --- drivers/edac/edac_mc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c index dc68394da682..d6a94cf2501e 100644 --- a/drivers/edac/edac_mc.c +++ b/drivers/edac/edac_mc.c @@ -199,7 +199,7 @@ void *edac_align_ptr(void **p, unsigned size, int n_elems) else return (char *)ptr; - r = (unsigned long)p % align; + r = (unsigned long)ptr % align; if (r == 0) return (char *)ptr; From 104b57a4f6bdd6a8c2479f61df72389623aa7c41 Mon Sep 17 00:00:00 2001 From: Jim Mattson Date: Wed, 2 Feb 2022 17:48:13 -0800 Subject: [PATCH 1095/1149] KVM: x86/pmu: Use AMD64_RAW_EVENT_MASK for PERF_TYPE_RAW [ Upstream commit 710c476514313c74045c41c0571bb5178fd16e3d ] AMD's event select is 3 nybbles, with the high nybble in bits 35:32 of a PerfEvtSeln MSR. Don't mask off the high nybble when configuring a RAW perf event. Fixes: ca724305a2b0 ("KVM: x86/vPMU: Implement AMD vPMU code for KVM") Signed-off-by: Jim Mattson Message-Id: <20220203014813.2130559-2-jmattson@google.com> Reviewed-by: David Dunn Signed-off-by: Paolo Bonzini Signed-off-by: Sasha Levin --- arch/x86/kvm/pmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kvm/pmu.c b/arch/x86/kvm/pmu.c index f21d4df282fa..845b88eb734b 100644 --- a/arch/x86/kvm/pmu.c +++ b/arch/x86/kvm/pmu.c @@ -164,7 +164,7 @@ void reprogram_gp_counter(struct kvm_pmc *pmc, u64 eventsel) } if (type == PERF_TYPE_RAW) - config = eventsel & X86_RAW_EVENT_MASK; + config = eventsel & AMD64_RAW_EVENT_MASK; pmc_reprogram_counter(pmc, type, config, !(eventsel & ARCH_PERFMON_EVENTSEL_USR), From f90c6a4ca63428cefc23d18df52500e9f03a8928 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20B=C3=B6sz=C3=B6rm=C3=A9nyi?= Date: Fri, 4 Feb 2022 13:57:50 +0100 Subject: [PATCH 1096/1149] ata: libata-core: Disable TRIM on M88V29 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [ Upstream commit c8ea23d5fa59f28302d4e3370c75d9c308e64410 ] This device is a CF card, or possibly an SSD in CF form factor. It supports NCQ and high speed DMA. While it also advertises TRIM support, I/O errors are reported when the discard mount option fstrim is used. TRIM also fails when disabling NCQ and not just as an NCQ command. TRIM must be disabled for this device. Signed-off-by: Zoltán Böszörményi Signed-off-by: Damien Le Moal Signed-off-by: Sasha Levin --- drivers/ata/libata-core.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 6144383ec8bc..a4b589d03642 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c @@ -4308,6 +4308,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = { /* devices that don't properly handle TRIM commands */ { "SuperSSpeed S238*", NULL, ATA_HORKAGE_NOTRIM, }, + { "M88V29*", NULL, ATA_HORKAGE_NOTRIM, }, /* * As defined, the DRAT (Deterministic Read After Trim) and RZAT From f78208aabf8c78696bdce08531377ad2ca053948 Mon Sep 17 00:00:00 2001 From: JaeSang Yoo Date: Wed, 9 Feb 2022 04:54:22 +0900 Subject: [PATCH 1097/1149] tracing: Fix tp_printk option related with tp_printk_stop_on_boot [ Upstream commit 3203ce39ac0b2a57a84382ec184c7d4a0bede175 ] The kernel parameter "tp_printk_stop_on_boot" starts with "tp_printk" which is the same as another kernel parameter "tp_printk". If "tp_printk" setup is called before the "tp_printk_stop_on_boot", it will override the latter and keep it from being set. This is similar to other kernel parameter issues, such as: Commit 745a600cf1a6 ("um: console: Ignore console= option") or init/do_mounts.c:45 (setup function of "ro" kernel param) Fix it by checking for a "_" right after the "tp_printk" and if that exists do not process the parameter. Link: https://lkml.kernel.org/r/20220208195421.969326-1-jsyoo5b@gmail.com Signed-off-by: JaeSang Yoo [ Fixed up change log and added space after if condition ] Signed-off-by: Steven Rostedt (Google) Signed-off-by: Sasha Levin --- kernel/trace/trace.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index bc8b1fdbf1bb..2aab54366ea1 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -234,6 +234,10 @@ __setup("trace_clock=", set_trace_boot_clock); static int __init set_tracepoint_printk(char *str) { + /* Ignore the "tp_printk_stop_on_boot" param */ + if (*str == '_') + return 0; + if ((strcmp(str, "=0") != 0 && strcmp(str, "=off") != 0)) tracepoint_printk = 1; return 1; From b7790e078ad503abf4ce27f71544dbbc676377a7 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Fri, 18 Mar 2022 13:35:31 +0100 Subject: [PATCH 1098/1149] Merged changes from 4.9.303. --- localversion-st | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-st b/localversion-st index ab33e034ca6c..66837fc60916 100644 --- a/localversion-st +++ b/localversion-st @@ -1 +1 @@ --st2 \ No newline at end of file +-st3 \ No newline at end of file From 5eba64e135f07625a2eb0d789944f956c6b36268 Mon Sep 17 00:00:00 2001 From: david regan Date: Wed, 26 Jan 2022 23:43:44 +0100 Subject: [PATCH 1099/1149] mtd: rawnand: brcmnand: Fixed incorrect sub-page ECC status commit 36415a7964711822e63695ea67fede63979054d9 upstream. The brcmnand driver contains a bug in which if a page (example 2k byte) is read from the parallel/ONFI NAND and within that page a subpage (512 byte) has correctable errors which is followed by a subpage with uncorrectable errors, the page read will return the wrong status of correctable (as opposed to the actual status of uncorrectable.) The bug is in function brcmnand_read_by_pio where there is a check for uncorrectable bits which will be preempted if a previous status for correctable bits is detected. The fix is to stop checking for bad bits only if we already have a bad bits status. Fixes: 27c5b17cd1b1 ("mtd: nand: add NAND driver "library" for Broadcom STB NAND controller") Signed-off-by: david regan Reviewed-by: Florian Fainelli Signed-off-by: Miquel Raynal Link: https://lore.kernel.org/linux-mtd/trinity-478e0c09-9134-40e8-8f8c-31c371225eda-1643237024774@3c-app-mailcom-lxa02 [florian: make patch apply to 4.14, file was renamed] Signed-off-by: Florian Fainelli Signed-off-by: Greg Kroah-Hartman --- drivers/mtd/nand/brcmnand/brcmnand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mtd/nand/brcmnand/brcmnand.c b/drivers/mtd/nand/brcmnand/brcmnand.c index 8278158715c1..ab9b2a913411 100644 --- a/drivers/mtd/nand/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/brcmnand/brcmnand.c @@ -1460,7 +1460,7 @@ static int brcmnand_read_by_pio(struct mtd_info *mtd, struct nand_chip *chip, mtd->oobsize / trans, host->hwcfg.sector_size_1k); - if (!ret) { + if (ret != -EBADMSG) { *err_addr = brcmnand_read_reg(ctrl, BRCMNAND_UNCORR_ADDR) | ((u64)(brcmnand_read_reg(ctrl, From c0c7641102cd6b51686e933159d1855cec755b58 Mon Sep 17 00:00:00 2001 From: Helge Deller Date: Fri, 18 Feb 2022 09:25:20 +0100 Subject: [PATCH 1100/1149] parisc/unaligned: Fix fldd and fstd unaligned handlers on 32-bit kernel commit dd2288f4a020d693360e3e8d72f8b9d9c25f5ef6 upstream. Usually the kernel provides fixup routines to emulate the fldd and fstd floating-point instructions if they load or store 8-byte from/to a not natuarally aligned memory location. On a 32-bit kernel I noticed that those unaligned handlers didn't worked and instead the application got a SEGV. While checking the code I found two problems: First, the OPCODE_FLDD_L and OPCODE_FSTD_L cases were ifdef'ed out by the CONFIG_PA20 option, and as such those weren't built on a pure 32-bit kernel. This is now fixed by moving the CONFIG_PA20 #ifdef to prevent the compilation of OPCODE_LDD_L and OPCODE_FSTD_L only, and handling the fldd and fstd instructions. The second problem are two bugs in the 32-bit inline assembly code, where the wrong registers where used. The calculation of the natural alignment used %2 (vall) instead of %3 (ior), and the first word was stored back to address %1 (valh) instead of %3 (ior). Signed-off-by: Helge Deller Cc: stable@vger.kernel.org Signed-off-by: Greg Kroah-Hartman --- arch/parisc/kernel/unaligned.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/parisc/kernel/unaligned.c b/arch/parisc/kernel/unaligned.c index 8d49614d600d..c57550399b42 100644 --- a/arch/parisc/kernel/unaligned.c +++ b/arch/parisc/kernel/unaligned.c @@ -411,7 +411,7 @@ static int emulate_std(struct pt_regs *regs, int frreg, int flop) __asm__ __volatile__ ( " mtsp %4, %%sr1\n" " zdep %2, 29, 2, %%r19\n" -" dep %%r0, 31, 2, %2\n" +" dep %%r0, 31, 2, %3\n" " mtsar %%r19\n" " zvdepi -2, 32, %%r19\n" "1: ldw 0(%%sr1,%3),%%r20\n" @@ -423,7 +423,7 @@ static int emulate_std(struct pt_regs *regs, int frreg, int flop) " andcm %%r21, %%r19, %%r21\n" " or %1, %%r20, %1\n" " or %2, %%r21, %2\n" -"3: stw %1,0(%%sr1,%1)\n" +"3: stw %1,0(%%sr1,%3)\n" "4: stw %%r1,4(%%sr1,%3)\n" "5: stw %2,8(%%sr1,%3)\n" " copy %%r0, %0\n" @@ -611,7 +611,6 @@ void handle_unaligned(struct pt_regs *regs) ret = ERR_NOTHANDLED; /* "undefined", but lets kill them. */ break; } -#ifdef CONFIG_PA20 switch (regs->iir & OPCODE2_MASK) { case OPCODE_FLDD_L: @@ -622,14 +621,15 @@ void handle_unaligned(struct pt_regs *regs) flop=1; ret = emulate_std(regs, R2(regs->iir),1); break; +#ifdef CONFIG_PA20 case OPCODE_LDD_L: ret = emulate_ldd(regs, R2(regs->iir),0); break; case OPCODE_STD_L: ret = emulate_std(regs, R2(regs->iir),0); break; - } #endif + } switch (regs->iir & OPCODE3_MASK) { case OPCODE_FLDW_L: From 6f1c3d4668759229f0cfc3b91814e6699a46c473 Mon Sep 17 00:00:00 2001 From: Helge Deller Date: Fri, 18 Feb 2022 23:40:14 +0100 Subject: [PATCH 1101/1149] parisc/unaligned: Fix ldw() and stw() unalignment handlers commit a97279836867b1cb50a3d4f0b1bf60e0abe6d46c upstream. Fix 3 bugs: a) emulate_stw() doesn't return the error code value, so faulting instructions are not reported and aborted. b) Tell emulate_ldw() to handle fldw_l as floating point instruction c) Tell emulate_ldw() to handle ldw_m as integer instruction Signed-off-by: Helge Deller Cc: stable@vger.kernel.org Signed-off-by: Greg Kroah-Hartman --- arch/parisc/kernel/unaligned.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/parisc/kernel/unaligned.c b/arch/parisc/kernel/unaligned.c index c57550399b42..cbfbba4bbee6 100644 --- a/arch/parisc/kernel/unaligned.c +++ b/arch/parisc/kernel/unaligned.c @@ -354,7 +354,7 @@ static int emulate_stw(struct pt_regs *regs, int frreg, int flop) : "r" (val), "r" (regs->ior), "r" (regs->isr) : "r19", "r20", "r21", "r22", "r1", FIXUP_BRANCH_CLOBBER ); - return 0; + return ret; } static int emulate_std(struct pt_regs *regs, int frreg, int flop) { @@ -634,10 +634,10 @@ void handle_unaligned(struct pt_regs *regs) { case OPCODE_FLDW_L: flop=1; - ret = emulate_ldw(regs, R2(regs->iir),0); + ret = emulate_ldw(regs, R2(regs->iir), 1); break; case OPCODE_LDW_M: - ret = emulate_ldw(regs, R2(regs->iir),1); + ret = emulate_ldw(regs, R2(regs->iir), 0); break; case OPCODE_FSTW_L: From 4707c3da5b2be325268e6cd0ff8601392f474034 Mon Sep 17 00:00:00 2001 From: Oliver Neukum Date: Thu, 17 Feb 2022 14:10:44 +0100 Subject: [PATCH 1102/1149] sr9700: sanity check for packet length commit e9da0b56fe27206b49f39805f7dcda8a89379062 upstream. A malicious device can leak heap data to user space providing bogus frame lengths. Introduce a sanity check. Signed-off-by: Oliver Neukum Reviewed-by: Grant Grundler Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- drivers/net/usb/sr9700.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/usb/sr9700.c b/drivers/net/usb/sr9700.c index aadfe1d1c37e..f4c4df01874c 100644 --- a/drivers/net/usb/sr9700.c +++ b/drivers/net/usb/sr9700.c @@ -409,7 +409,7 @@ static int sr9700_rx_fixup(struct usbnet *dev, struct sk_buff *skb) /* ignore the CRC length */ len = (skb->data[1] | (skb->data[2] << 8)) - 4; - if (len > ETH_FRAME_LEN) + if (len > ETH_FRAME_LEN || len > skb->len) return 0; /* the last packet of current skb */ From 925f10a0799f64f780bc34324f27f6cd3421f344 Mon Sep 17 00:00:00 2001 From: Oliver Neukum Date: Mon, 14 Feb 2022 15:08:18 +0100 Subject: [PATCH 1103/1149] USB: zaurus: support another broken Zaurus commit 6605cc67ca18b9d583eb96e18a20f5f4e726103c upstream. This SL-6000 says Direct Line, not Ethernet v2: added Reporter and Link Signed-off-by: Oliver Neukum Reported-by: Ross Maynard Link: https://bugzilla.kernel.org/show_bug.cgi?id=215361 Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- drivers/net/usb/cdc_ether.c | 12 ++++++++++++ drivers/net/usb/zaurus.c | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c index 3707aab2423b..72411f0de54f 100644 --- a/drivers/net/usb/cdc_ether.c +++ b/drivers/net/usb/cdc_ether.c @@ -486,6 +486,11 @@ static const struct usb_device_id products[] = { .bInterfaceSubClass = USB_CDC_SUBCLASS_ETHERNET, \ .bInterfaceProtocol = USB_CDC_PROTO_NONE +#define ZAURUS_FAKE_INTERFACE \ + .bInterfaceClass = USB_CLASS_COMM, \ + .bInterfaceSubClass = USB_CDC_SUBCLASS_MDLM, \ + .bInterfaceProtocol = USB_CDC_PROTO_NONE + /* SA-1100 based Sharp Zaurus ("collie"), or compatible; * wire-incompatible with true CDC Ethernet implementations. * (And, it seems, needlessly so...) @@ -539,6 +544,13 @@ static const struct usb_device_id products[] = { .idProduct = 0x9032, /* SL-6000 */ ZAURUS_MASTER_INTERFACE, .driver_info = 0, +}, { + .match_flags = USB_DEVICE_ID_MATCH_INT_INFO + | USB_DEVICE_ID_MATCH_DEVICE, + .idVendor = 0x04DD, + .idProduct = 0x9032, /* SL-6000 */ + ZAURUS_FAKE_INTERFACE, + .driver_info = 0, }, { .match_flags = USB_DEVICE_ID_MATCH_INT_INFO | USB_DEVICE_ID_MATCH_DEVICE, diff --git a/drivers/net/usb/zaurus.c b/drivers/net/usb/zaurus.c index 6aaa6eb9df72..3d126761044f 100644 --- a/drivers/net/usb/zaurus.c +++ b/drivers/net/usb/zaurus.c @@ -268,6 +268,11 @@ static const struct usb_device_id products [] = { .bInterfaceSubClass = USB_CDC_SUBCLASS_ETHERNET, \ .bInterfaceProtocol = USB_CDC_PROTO_NONE +#define ZAURUS_FAKE_INTERFACE \ + .bInterfaceClass = USB_CLASS_COMM, \ + .bInterfaceSubClass = USB_CDC_SUBCLASS_MDLM, \ + .bInterfaceProtocol = USB_CDC_PROTO_NONE + /* SA-1100 based Sharp Zaurus ("collie"), or compatible. */ { .match_flags = USB_DEVICE_ID_MATCH_INT_INFO @@ -325,6 +330,13 @@ static const struct usb_device_id products [] = { .idProduct = 0x9032, /* SL-6000 */ ZAURUS_MASTER_INTERFACE, .driver_info = ZAURUS_PXA_INFO, +}, { + .match_flags = USB_DEVICE_ID_MATCH_INT_INFO + | USB_DEVICE_ID_MATCH_DEVICE, + .idVendor = 0x04DD, + .idProduct = 0x9032, /* SL-6000 */ + ZAURUS_FAKE_INTERFACE, + .driver_info = (unsigned long)&bogus_mdlm_info, }, { .match_flags = USB_DEVICE_ID_MATCH_INT_INFO | USB_DEVICE_ID_MATCH_DEVICE, From ef1251dd5e75e43849b9dbd1302c1e1a904f071f Mon Sep 17 00:00:00 2001 From: Tao Liu Date: Fri, 18 Feb 2022 22:35:24 +0800 Subject: [PATCH 1104/1149] gso: do not skip outer ip header in case of ipip and net_failover commit cc20cced0598d9a5ff91ae4ab147b3b5e99ee819 upstream. We encounter a tcp drop issue in our cloud environment. Packet GROed in host forwards to a VM virtio_net nic with net_failover enabled. VM acts as a IPVS LB with ipip encapsulation. The full path like: host gro -> vm virtio_net rx -> net_failover rx -> ipvs fullnat -> ipip encap -> net_failover tx -> virtio_net tx When net_failover transmits a ipip pkt (gso_type = 0x0103, which means SKB_GSO_TCPV4, SKB_GSO_DODGY and SKB_GSO_IPXIP4), there is no gso did because it supports TSO and GSO_IPXIP4. But network_header points to inner ip header. Call Trace: tcp4_gso_segment ------> return NULL inet_gso_segment ------> inner iph, network_header points to ipip_gso_segment inet_gso_segment ------> outer iph skb_mac_gso_segment Afterwards virtio_net transmits the pkt, only inner ip header is modified. And the outer one just keeps unchanged. The pkt will be dropped in remote host. Call Trace: inet_gso_segment ------> inner iph, outer iph is skipped skb_mac_gso_segment __skb_gso_segment validate_xmit_skb validate_xmit_skb_list sch_direct_xmit __qdisc_run __dev_queue_xmit ------> virtio_net dev_hard_start_xmit __dev_queue_xmit ------> net_failover ip_finish_output2 ip_output iptunnel_xmit ip_tunnel_xmit ipip_tunnel_xmit ------> ipip dev_hard_start_xmit __dev_queue_xmit ip_finish_output2 ip_output ip_forward ip_rcv __netif_receive_skb_one_core netif_receive_skb_internal napi_gro_receive receive_buf virtnet_poll net_rx_action The root cause of this issue is specific with the rare combination of SKB_GSO_DODGY and a tunnel device that adds an SKB_GSO_ tunnel option. SKB_GSO_DODGY is set from external virtio_net. We need to reset network header when callbacks.gso_segment() returns NULL. This patch also includes ipv6_gso_segment(), considering SIT, etc. Fixes: cb32f511a70b ("ipip: add GSO/TSO support") Signed-off-by: Tao Liu Reviewed-by: Willem de Bruijn Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- net/ipv4/af_inet.c | 5 ++++- net/ipv6/ip6_offload.c | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c index 48d2ae83e268..5dba54e3bf68 100644 --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c @@ -1257,8 +1257,11 @@ static struct sk_buff *inet_gso_segment(struct sk_buff *skb, udpfrag = proto == IPPROTO_UDP && !skb->encapsulation; ops = rcu_dereference(inet_offloads[proto]); - if (likely(ops && ops->callbacks.gso_segment)) + if (likely(ops && ops->callbacks.gso_segment)) { segs = ops->callbacks.gso_segment(skb, features); + if (!segs) + skb->network_header = skb_mac_header(skb) + nhoff - skb->head; + } if (IS_ERR_OR_NULL(segs)) goto out; diff --git a/net/ipv6/ip6_offload.c b/net/ipv6/ip6_offload.c index 244b9fec9d4d..e84d89626163 100644 --- a/net/ipv6/ip6_offload.c +++ b/net/ipv6/ip6_offload.c @@ -109,6 +109,8 @@ static struct sk_buff *ipv6_gso_segment(struct sk_buff *skb, if (likely(ops && ops->callbacks.gso_segment)) { skb_reset_transport_header(skb); segs = ops->callbacks.gso_segment(skb, features); + if (!segs) + skb->network_header = skb_mac_header(skb) + nhoff - skb->head; } if (IS_ERR(segs)) From f02680beb01668fe545d76091a03aaf79a1d0f8f Mon Sep 17 00:00:00 2001 From: Paul Blakey Date: Wed, 23 Feb 2022 18:34:16 +0200 Subject: [PATCH 1105/1149] openvswitch: Fix setting ipv6 fields causing hw csum failure commit d9b5ae5c1b241b91480aa30408be12fe91af834a upstream. Ipv6 ttl, label and tos fields are modified without first pulling/pushing the ipv6 header, which would have updated the hw csum (if available). This might cause csum validation when sending the packet to the stack, as can be seen in the trace below. Fix this by updating skb->csum if available. Trace resulted by ipv6 ttl dec and then sending packet to conntrack [actions: set(ipv6(hlimit=63)),ct(zone=99)]: [295241.900063] s_pf0vf2: hw csum failure [295241.923191] Call Trace: [295241.925728] [295241.927836] dump_stack+0x5c/0x80 [295241.931240] __skb_checksum_complete+0xac/0xc0 [295241.935778] nf_conntrack_tcp_packet+0x398/0xba0 [nf_conntrack] [295241.953030] nf_conntrack_in+0x498/0x5e0 [nf_conntrack] [295241.958344] __ovs_ct_lookup+0xac/0x860 [openvswitch] [295241.968532] ovs_ct_execute+0x4a7/0x7c0 [openvswitch] [295241.979167] do_execute_actions+0x54a/0xaa0 [openvswitch] [295242.001482] ovs_execute_actions+0x48/0x100 [openvswitch] [295242.006966] ovs_dp_process_packet+0x96/0x1d0 [openvswitch] [295242.012626] ovs_vport_receive+0x6c/0xc0 [openvswitch] [295242.028763] netdev_frame_hook+0xc0/0x180 [openvswitch] [295242.034074] __netif_receive_skb_core+0x2ca/0xcb0 [295242.047498] netif_receive_skb_internal+0x3e/0xc0 [295242.052291] napi_gro_receive+0xba/0xe0 [295242.056231] mlx5e_handle_rx_cqe_mpwrq_rep+0x12b/0x250 [mlx5_core] [295242.062513] mlx5e_poll_rx_cq+0xa0f/0xa30 [mlx5_core] [295242.067669] mlx5e_napi_poll+0xe1/0x6b0 [mlx5_core] [295242.077958] net_rx_action+0x149/0x3b0 [295242.086762] __do_softirq+0xd7/0x2d6 [295242.090427] irq_exit+0xf7/0x100 [295242.093748] do_IRQ+0x7f/0xd0 [295242.096806] common_interrupt+0xf/0xf [295242.100559] [295242.102750] RIP: 0033:0x7f9022e88cbd [295242.125246] RSP: 002b:00007f9022282b20 EFLAGS: 00000246 ORIG_RAX: ffffffffffffffda [295242.132900] RAX: 0000000000000005 RBX: 0000000000000010 RCX: 0000000000000000 [295242.140120] RDX: 00007f9022282ba8 RSI: 00007f9022282a30 RDI: 00007f9014005c30 [295242.147337] RBP: 00007f9014014d60 R08: 0000000000000020 R09: 00007f90254a8340 [295242.154557] R10: 00007f9022282a28 R11: 0000000000000246 R12: 0000000000000000 [295242.161775] R13: 00007f902308c000 R14: 000000000000002b R15: 00007f9022b71f40 Fixes: 3fdbd1ce11e5 ("openvswitch: add ipv6 'set' action") Signed-off-by: Paul Blakey Link: https://lore.kernel.org/r/20220223163416.24096-1-paulb@nvidia.com Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman --- include/net/checksum.h | 5 +++++ net/openvswitch/actions.c | 46 ++++++++++++++++++++++++++++++++------- 2 files changed, 43 insertions(+), 8 deletions(-) diff --git a/include/net/checksum.h b/include/net/checksum.h index 9fcaedf994ee..b354fb7cd052 100644 --- a/include/net/checksum.h +++ b/include/net/checksum.h @@ -138,6 +138,11 @@ static inline void csum_replace2(__sum16 *sum, __be16 old, __be16 new) *sum = ~csum16_add(csum16_sub(~(*sum), old), new); } +static inline void csum_replace(__wsum *csum, __wsum old, __wsum new) +{ + *csum = csum_add(csum_sub(*csum, old), new); +} + struct sk_buff; void inet_proto_csum_replace4(__sum16 *sum, struct sk_buff *skb, __be32 from, __be32 to, bool pseudohdr); diff --git a/net/openvswitch/actions.c b/net/openvswitch/actions.c index b8f2ee52e64e..663ef3b67ad7 100644 --- a/net/openvswitch/actions.c +++ b/net/openvswitch/actions.c @@ -375,12 +375,43 @@ static void set_ipv6_addr(struct sk_buff *skb, u8 l4_proto, memcpy(addr, new_addr, sizeof(__be32[4])); } -static void set_ipv6_fl(struct ipv6hdr *nh, u32 fl, u32 mask) +static void set_ipv6_dsfield(struct sk_buff *skb, struct ipv6hdr *nh, u8 ipv6_tclass, u8 mask) { + u8 old_ipv6_tclass = ipv6_get_dsfield(nh); + + ipv6_tclass = OVS_MASKED(old_ipv6_tclass, ipv6_tclass, mask); + + if (skb->ip_summed == CHECKSUM_COMPLETE) + csum_replace(&skb->csum, (__force __wsum)(old_ipv6_tclass << 12), + (__force __wsum)(ipv6_tclass << 12)); + + ipv6_change_dsfield(nh, ~mask, ipv6_tclass); +} + +static void set_ipv6_fl(struct sk_buff *skb, struct ipv6hdr *nh, u32 fl, u32 mask) +{ + u32 ofl; + + ofl = nh->flow_lbl[0] << 16 | nh->flow_lbl[1] << 8 | nh->flow_lbl[2]; + fl = OVS_MASKED(ofl, fl, mask); + /* Bits 21-24 are always unmasked, so this retains their values. */ - OVS_SET_MASKED(nh->flow_lbl[0], (u8)(fl >> 16), (u8)(mask >> 16)); - OVS_SET_MASKED(nh->flow_lbl[1], (u8)(fl >> 8), (u8)(mask >> 8)); - OVS_SET_MASKED(nh->flow_lbl[2], (u8)fl, (u8)mask); + nh->flow_lbl[0] = (u8)(fl >> 16); + nh->flow_lbl[1] = (u8)(fl >> 8); + nh->flow_lbl[2] = (u8)fl; + + if (skb->ip_summed == CHECKSUM_COMPLETE) + csum_replace(&skb->csum, (__force __wsum)htonl(ofl), (__force __wsum)htonl(fl)); +} + +static void set_ipv6_ttl(struct sk_buff *skb, struct ipv6hdr *nh, u8 new_ttl, u8 mask) +{ + new_ttl = OVS_MASKED(nh->hop_limit, new_ttl, mask); + + if (skb->ip_summed == CHECKSUM_COMPLETE) + csum_replace(&skb->csum, (__force __wsum)(nh->hop_limit << 8), + (__force __wsum)(new_ttl << 8)); + nh->hop_limit = new_ttl; } static void set_ip_ttl(struct sk_buff *skb, struct iphdr *nh, u8 new_ttl, @@ -498,18 +529,17 @@ static int set_ipv6(struct sk_buff *skb, struct sw_flow_key *flow_key, } } if (mask->ipv6_tclass) { - ipv6_change_dsfield(nh, ~mask->ipv6_tclass, key->ipv6_tclass); + set_ipv6_dsfield(skb, nh, key->ipv6_tclass, mask->ipv6_tclass); flow_key->ip.tos = ipv6_get_dsfield(nh); } if (mask->ipv6_label) { - set_ipv6_fl(nh, ntohl(key->ipv6_label), + set_ipv6_fl(skb, nh, ntohl(key->ipv6_label), ntohl(mask->ipv6_label)); flow_key->ipv6.label = *(__be32 *)nh & htonl(IPV6_FLOWINFO_FLOWLABEL); } if (mask->ipv6_hlimit) { - OVS_SET_MASKED(nh->hop_limit, key->ipv6_hlimit, - mask->ipv6_hlimit); + set_ipv6_ttl(skb, nh, key->ipv6_hlimit, mask->ipv6_hlimit); flow_key->ip.ttl = nh->hop_limit; } return 0; From a268b246a265ded48a264242dd2ccc9ed1c53711 Mon Sep 17 00:00:00 2001 From: ChenXiaoSong Date: Tue, 15 Feb 2022 15:10:30 +0800 Subject: [PATCH 1106/1149] configfs: fix a race in configfs_{,un}register_subsystem() [ Upstream commit 84ec758fb2daa236026506868c8796b0500c047d ] When configfs_register_subsystem() or configfs_unregister_subsystem() is executing link_group() or unlink_group(), it is possible that two processes add or delete list concurrently. Some unfortunate interleavings of them can cause kernel panic. One of cases is: A --> B --> C --> D A <-- B <-- C <-- D delete list_head *B | delete list_head *C --------------------------------|----------------------------------- configfs_unregister_subsystem | configfs_unregister_subsystem unlink_group | unlink_group unlink_obj | unlink_obj list_del_init | list_del_init __list_del_entry | __list_del_entry __list_del | __list_del // next == C | next->prev = prev | | next->prev = prev prev->next = next | | // prev == B | prev->next = next Fix this by adding mutex when calling link_group() or unlink_group(), but parent configfs_subsystem is NULL when config_item is root. So I create a mutex configfs_subsystem_mutex. Fixes: 7063fbf22611 ("[PATCH] configfs: User-driven configuration filesystem") Signed-off-by: ChenXiaoSong Signed-off-by: Laibin Qiu Signed-off-by: Christoph Hellwig Signed-off-by: Sasha Levin --- fs/configfs/dir.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c index 8e709b641b55..a41c030fd962 100644 --- a/fs/configfs/dir.c +++ b/fs/configfs/dir.c @@ -50,6 +50,14 @@ DECLARE_RWSEM(configfs_rename_sem); */ DEFINE_SPINLOCK(configfs_dirent_lock); +/* + * All of link_obj/unlink_obj/link_group/unlink_group require that + * subsys->su_mutex is held. + * But parent configfs_subsystem is NULL when config_item is root. + * Use this mutex when config_item is root. + */ +static DEFINE_MUTEX(configfs_subsystem_mutex); + static void configfs_d_iput(struct dentry * dentry, struct inode * inode) { @@ -1760,7 +1768,9 @@ int configfs_register_subsystem(struct configfs_subsystem *subsys) group->cg_item.ci_name = group->cg_item.ci_namebuf; sd = root->d_fsdata; + mutex_lock(&configfs_subsystem_mutex); link_group(to_config_group(sd->s_element), group); + mutex_unlock(&configfs_subsystem_mutex); mutex_lock_nested(&d_inode(root)->i_mutex, I_MUTEX_PARENT); @@ -1785,7 +1795,9 @@ int configfs_register_subsystem(struct configfs_subsystem *subsys) mutex_unlock(&d_inode(root)->i_mutex); if (err) { + mutex_lock(&configfs_subsystem_mutex); unlink_group(group); + mutex_unlock(&configfs_subsystem_mutex); configfs_release_fs(); } @@ -1824,7 +1836,9 @@ void configfs_unregister_subsystem(struct configfs_subsystem *subsys) dput(dentry); + mutex_lock(&configfs_subsystem_mutex); unlink_group(group); + mutex_unlock(&configfs_subsystem_mutex); configfs_release_fs(); } From 6f37a2d83c03027100b203f6fa2eb9f2452bfd2c Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Tue, 15 Feb 2022 13:05:11 -0800 Subject: [PATCH 1107/1149] RDMA/ib_srp: Fix a deadlock [ Upstream commit 081bdc9fe05bb23248f5effb6f811da3da4b8252 ] Remove the flush_workqueue(system_long_wq) call since flushing system_long_wq is deadlock-prone and since that call is redundant with a preceding cancel_work_sync() Link: https://lore.kernel.org/r/20220215210511.28303-3-bvanassche@acm.org Fixes: ef6c49d87c34 ("IB/srp: Eliminate state SRP_TARGET_DEAD") Reported-by: syzbot+831661966588c802aae9@syzkaller.appspotmail.com Signed-off-by: Bart Van Assche Reviewed-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe Signed-off-by: Sasha Levin --- drivers/infiniband/ulp/srp/ib_srp.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c index 3b4188efc283..e0274d57e516 100644 --- a/drivers/infiniband/ulp/srp/ib_srp.c +++ b/drivers/infiniband/ulp/srp/ib_srp.c @@ -3576,9 +3576,11 @@ static void srp_remove_one(struct ib_device *device, void *client_data) spin_unlock(&host->target_lock); /* - * Wait for tl_err and target port removal tasks. + * srp_queue_remove_work() queues a call to + * srp_remove_target(). The latter function cancels + * target->tl_err_work so waiting for the remove works to + * finish is sufficient. */ - flush_workqueue(system_long_wq); flush_workqueue(srp_remove_wq); kfree(host); From 3cc154d9dcba676832714581fd5976707f8bdced Mon Sep 17 00:00:00 2001 From: Christophe JAILLET Date: Sat, 29 Jan 2022 09:32:47 +0100 Subject: [PATCH 1108/1149] iio: adc: men_z188_adc: Fix a resource leak in an error handling path commit e0a2e37f303828d030a83f33ffe14b36cb88d563 upstream. If iio_device_register() fails, a previous ioremap() is left unbalanced. Update the error handling path and add the missing iounmap() call, as already done in the remove function. Fixes: 74aeac4da66f ("iio: adc: Add MEN 16z188 ADC driver") Signed-off-by: Christophe JAILLET Link: https://lore.kernel.org/r/320fc777863880247c2aff4a9d1a54ba69abf080.1643445149.git.christophe.jaillet@wanadoo.fr Cc: Signed-off-by: Jonathan Cameron Signed-off-by: Greg Kroah-Hartman --- drivers/iio/adc/men_z188_adc.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/iio/adc/men_z188_adc.c b/drivers/iio/adc/men_z188_adc.c index d095efe1ba14..1d429134b1ef 100644 --- a/drivers/iio/adc/men_z188_adc.c +++ b/drivers/iio/adc/men_z188_adc.c @@ -107,6 +107,7 @@ static int men_z188_probe(struct mcb_device *dev, struct z188_adc *adc; struct iio_dev *indio_dev; struct resource *mem; + int ret; indio_dev = devm_iio_device_alloc(&dev->dev, sizeof(struct z188_adc)); if (!indio_dev) @@ -133,8 +134,14 @@ static int men_z188_probe(struct mcb_device *dev, adc->mem = mem; mcb_set_drvdata(dev, indio_dev); - return iio_device_register(indio_dev); + ret = iio_device_register(indio_dev); + if (ret) + goto err_unmap; + + return 0; +err_unmap: + iounmap(adc->base); err: mcb_release_mem(mem); return -ENXIO; From 37c443e0c39318f084f72d3570733afea0508587 Mon Sep 17 00:00:00 2001 From: Sergey Shtylyov Date: Sat, 19 Feb 2022 20:44:43 +0300 Subject: [PATCH 1109/1149] ata: pata_hpt37x: disable primary channel on HPT371 commit 8d093e02e898b24c58788b0289e3202317a96d2a upstream. The HPT371 chip physically has only one channel, the secondary one, however the primary channel registers do exist! Thus we have to manually disable the non-existing channel if the BIOS hasn't done this already. Similarly to the pata_hpt3x2n driver, always disable the primary channel. Fixes: 669a5db411d8 ("[libata] Add a bunch of PATA drivers.") Cc: stable@vger.kernel.org Signed-off-by: Sergey Shtylyov Signed-off-by: Damien Le Moal Signed-off-by: Greg Kroah-Hartman --- drivers/ata/pata_hpt37x.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/ata/pata_hpt37x.c b/drivers/ata/pata_hpt37x.c index 3ba843f5cdc0..821fc1f2324c 100644 --- a/drivers/ata/pata_hpt37x.c +++ b/drivers/ata/pata_hpt37x.c @@ -919,6 +919,20 @@ static int hpt37x_init_one(struct pci_dev *dev, const struct pci_device_id *id) irqmask &= ~0x10; pci_write_config_byte(dev, 0x5a, irqmask); + /* + * HPT371 chips physically have only one channel, the secondary one, + * but the primary channel registers do exist! Go figure... + * So, we manually disable the non-existing channel here + * (if the BIOS hasn't done this already). + */ + if (dev->device == PCI_DEVICE_ID_TTI_HPT371) { + u8 mcr1; + + pci_read_config_byte(dev, 0x50, &mcr1); + mcr1 &= ~0x04; + pci_write_config_byte(dev, 0x50, mcr1); + } + /* * default to pci clock. make sure MA15/16 are set to output * to prevent drives having problems with 40-pin cables. Needed From 6e2a9a90b1780bfa0489130779aedbd1637c6e89 Mon Sep 17 00:00:00 2001 From: Dmytro Bagrii Date: Thu, 10 Feb 2022 18:41:37 +0200 Subject: [PATCH 1110/1149] Revert "USB: serial: ch341: add new Product ID for CH341A" commit 198a7ebd5fa17b4d0be8cb70240ee1be885175c0 upstream. This reverts commit 46ee4abb10a07bd8f8ce910ee6b4ae6a947d7f63. CH341 has Product ID 0x5512 in EPP/MEM mode which is used for I2C/SPI/GPIO interfaces. In asynchronous serial interface mode CH341 has PID 0x5523 which is already in the table. Mode is selected by corresponding jumper setting. Signed-off-by: Dmytro Bagrii Link: https://lore.kernel.org/r/20220210164137.4376-1-dimich.dmb@gmail.com Link: https://lore.kernel.org/r/YJ0OCS/sh+1ifD/q@hovoldconsulting.com Cc: stable@vger.kernel.org Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- drivers/usb/serial/ch341.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/usb/serial/ch341.c b/drivers/usb/serial/ch341.c index 5c3ecc04a1ca..6d72a3e9352e 100644 --- a/drivers/usb/serial/ch341.c +++ b/drivers/usb/serial/ch341.c @@ -70,7 +70,6 @@ static const struct usb_device_id id_table[] = { - { USB_DEVICE(0x1a86, 0x5512) }, { USB_DEVICE(0x1a86, 0x5523) }, { USB_DEVICE(0x1a86, 0x7522) }, { USB_DEVICE(0x1a86, 0x7523) }, From 39a72e456ba61391ecdd36374793188d07530d67 Mon Sep 17 00:00:00 2001 From: Szymon Heidrich Date: Mon, 21 Feb 2022 13:24:56 +0100 Subject: [PATCH 1111/1149] USB: gadget: validate endpoint index for xilinx udc commit 7f14c7227f342d9932f9b918893c8814f86d2a0d upstream. Assure that host may not manipulate the index to point past endpoint array. Signed-off-by: Szymon Heidrich Cc: stable Signed-off-by: Greg Kroah-Hartman --- drivers/usb/gadget/udc/udc-xilinx.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/usb/gadget/udc/udc-xilinx.c b/drivers/usb/gadget/udc/udc-xilinx.c index 1cbb0ac6b182..b3168725b8a9 100644 --- a/drivers/usb/gadget/udc/udc-xilinx.c +++ b/drivers/usb/gadget/udc/udc-xilinx.c @@ -1622,6 +1622,8 @@ static void xudc_getstatus(struct xusb_udc *udc) break; case USB_RECIP_ENDPOINT: epnum = udc->setup.wIndex & USB_ENDPOINT_NUMBER_MASK; + if (epnum >= XUSB_MAX_ENDPOINTS) + goto stall; target_ep = &udc->ep[epnum]; epcfgreg = udc->read_fn(udc->addr + target_ep->offset); halt = epcfgreg & XUSB_EP_CFG_STALL_MASK; @@ -1689,6 +1691,10 @@ static void xudc_set_clear_feature(struct xusb_udc *udc) case USB_RECIP_ENDPOINT: if (!udc->setup.wValue) { endpoint = udc->setup.wIndex & USB_ENDPOINT_NUMBER_MASK; + if (endpoint >= XUSB_MAX_ENDPOINTS) { + xudc_ep0_stall(udc); + return; + } target_ep = &udc->ep[endpoint]; outinbit = udc->setup.wIndex & USB_ENDPOINT_DIR_MASK; outinbit = outinbit >> 7; From b1e7d369abbb5bacd2c2a28cac613e774c52b744 Mon Sep 17 00:00:00 2001 From: "Steven Rostedt (Google)" Date: Fri, 25 Feb 2022 15:34:26 -0500 Subject: [PATCH 1112/1149] tracefs: Set the group ownership in apply_options() not parse_options() commit 851e99ebeec3f4a672bb5010cf1ece095acee447 upstream. Al Viro brought it to my attention that the dentries may not be filled when the parse_options() is called, causing the call to set_gid() to possibly crash. It should only be called if parse_options() succeeds totally anyway. He suggested the logical place to do the update is in apply_options(). Link: https://lore.kernel.org/all/20220225165219.737025658@goodmis.org/ Link: https://lkml.kernel.org/r/20220225153426.1c4cab6b@gandalf.local.home Cc: stable@vger.kernel.org Acked-by: Al Viro Reported-by: Al Viro Fixes: 48b27b6b5191 ("tracefs: Set all files to the same group ownership as the mount option") Signed-off-by: Steven Rostedt (Google) Signed-off-by: Greg Kroah-Hartman --- fs/tracefs/inode.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fs/tracefs/inode.c b/fs/tracefs/inode.c index 2914220e975c..7c24260793b7 100644 --- a/fs/tracefs/inode.c +++ b/fs/tracefs/inode.c @@ -265,7 +265,6 @@ static int tracefs_parse_options(char *data, struct tracefs_mount_opts *opts) if (!gid_valid(gid)) return -EINVAL; opts->gid = gid; - set_gid(tracefs_mount->mnt_root, gid); break; case Opt_mode: if (match_octal(&args[0], &option)) @@ -292,7 +291,9 @@ static int tracefs_apply_options(struct super_block *sb) inode->i_mode |= opts->mode; inode->i_uid = opts->uid; - inode->i_gid = opts->gid; + + /* Set all the group ids to the mount option */ + set_gid(sb->s_root, opts->gid); return 0; } From f9564d8c6e3001b43993d76b139576f7f35b720a Mon Sep 17 00:00:00 2001 From: Slark Xiao Date: Mon, 14 Feb 2022 10:14:01 +0800 Subject: [PATCH 1113/1149] USB: serial: option: add support for DW5829e commit 6ecb3f0b18b320320460a42e40d6fb603f6ded96 upstream. Dell DW5829e same as DW5821e except CAT level. DW5821e supports CAT16 but DW5829e supports CAT9. There are 2 types product of DW5829e: normal and eSIM. So we will add 2 PID for DW5829e. And for each PID, it support MBIM or RMNET. Let's see test evidence as below: DW5829e MBIM mode: T: Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 4 Spd=5000 MxCh= 0 D: Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 2 P: Vendor=413c ProdID=81e6 Rev=03.18 S: Manufacturer=Dell Inc. S: Product=DW5829e Snapdragon X20 LTE S: SerialNumber=0123456789ABCDEF C: #Ifs= 7 Cfg#= 2 Atr=a0 MxPwr=896mA I: If#=0x0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim I: If#=0x1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option I: If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option I: If#=0x6 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none) DW5829e RMNET mode: T: Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 5 Spd=5000 MxCh= 0 D: Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 1 P: Vendor=413c ProdID=81e6 Rev=03.18 S: Manufacturer=Dell Inc. S: Product=DW5829e Snapdragon X20 LTE S: SerialNumber=0123456789ABCDEF C: #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA I: If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan I: If#=0x1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option I: If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option DW5829e-eSIM MBIM mode: T: Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 6 Spd=5000 MxCh= 0 D: Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 2 P: Vendor=413c ProdID=81e4 Rev=03.18 S: Manufacturer=Dell Inc. S: Product=DW5829e-eSIM Snapdragon X20 LTE S: SerialNumber=0123456789ABCDEF C: #Ifs= 7 Cfg#= 2 Atr=a0 MxPwr=896mA I: If#=0x0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim I: If#=0x1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option I: If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option I: If#=0x6 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none) DW5829e-eSIM RMNET mode: T: Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 7 Spd=5000 MxCh= 0 D: Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 1 P: Vendor=413c ProdID=81e4 Rev=03.18 S: Manufacturer=Dell Inc. S: Product=DW5829e-eSIM Snapdragon X20 LTE S: SerialNumber=0123456789ABCDEF C: #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA I: If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan I: If#=0x1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option I: If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option BTW, the interface 0x6 of MBIM mode is GNSS port, which not same as NMEA port. So it's banned from serial option driver. The remaining interfaces 0x2-0x5 are: MODEM, MODEM, NMEA, DIAG. Signed-off-by: Slark Xiao Link: https://lore.kernel.org/r/20220214021401.6264-1-slark_xiao@163.com [ johan: drop unnecessary reservation of interface 1 ] Cc: stable@vger.kernel.org Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- drivers/usb/serial/option.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c index 4c3ff0706554..fd76b0360d33 100644 --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c @@ -201,6 +201,8 @@ static void option_instat_callback(struct urb *urb); #define DELL_PRODUCT_5821E 0x81d7 #define DELL_PRODUCT_5821E_ESIM 0x81e0 +#define DELL_PRODUCT_5829E_ESIM 0x81e4 +#define DELL_PRODUCT_5829E 0x81e6 #define KYOCERA_VENDOR_ID 0x0c88 #define KYOCERA_PRODUCT_KPC650 0x17da @@ -1058,6 +1060,10 @@ static const struct usb_device_id option_ids[] = { .driver_info = RSVD(0) | RSVD(1) | RSVD(6) }, { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5821E_ESIM), .driver_info = RSVD(0) | RSVD(1) | RSVD(6) }, + { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5829E), + .driver_info = RSVD(0) | RSVD(6) }, + { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5829E_ESIM), + .driver_info = RSVD(0) | RSVD(6) }, { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) }, /* ADU-E100, ADU-310 */ { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_500A) }, { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_620UW) }, From d89907f8e0be459cb4e597c19813a303972108a8 Mon Sep 17 00:00:00 2001 From: Daniele Palmas Date: Fri, 18 Feb 2022 14:45:52 +0100 Subject: [PATCH 1114/1149] USB: serial: option: add Telit LE910R1 compositions commit cfc4442c642d568014474b6718ccf65dc7ca6099 upstream. Add support for the following Telit LE910R1 compositions: 0x701a: rndis, tty, tty, tty 0x701b: ecm, tty, tty, tty 0x9201: tty Signed-off-by: Daniele Palmas Link: https://lore.kernel.org/r/20220218134552.4051-1-dnlplm@gmail.com Cc: stable@vger.kernel.org Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- drivers/usb/serial/option.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c index fd76b0360d33..c5d0d9e2bff2 100644 --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c @@ -1255,10 +1255,16 @@ static const struct usb_device_id option_ids[] = { .driver_info = NCTRL(2) }, { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x7011, 0xff), /* Telit LE910-S1 (ECM) */ .driver_info = NCTRL(2) }, + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x701a, 0xff), /* Telit LE910R1 (RNDIS) */ + .driver_info = NCTRL(2) }, + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x701b, 0xff), /* Telit LE910R1 (ECM) */ + .driver_info = NCTRL(2) }, { USB_DEVICE(TELIT_VENDOR_ID, 0x9010), /* Telit SBL FN980 flashing device */ .driver_info = NCTRL(0) | ZLP }, { USB_DEVICE(TELIT_VENDOR_ID, 0x9200), /* Telit LE910S1 flashing device */ .driver_info = NCTRL(0) | ZLP }, + { USB_DEVICE(TELIT_VENDOR_ID, 0x9201), /* Telit LE910R1 flashing device */ + .driver_info = NCTRL(0) | ZLP }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622, 0xff, 0xff, 0xff) }, /* ZTE WCDMA products */ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0002, 0xff, 0xff, 0xff), .driver_info = RSVD(1) }, From 98a7573002e8205ac1c9cc54043a6bde5e058647 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 18 Feb 2022 18:32:45 +0100 Subject: [PATCH 1115/1149] usb: dwc3: gadget: Let the interrupt handler disable bottom halves. commit 84918a89d6efaff075de570b55642b6f4ceeac6d upstream. The interrupt service routine registered for the gadget is a primary handler which mask the interrupt source and a threaded handler which handles the source of the interrupt. Since the threaded handler is voluntary threaded, the IRQ-core does not disable bottom halves before invoke the handler like it does for the forced-threaded handler. Due to changes in networking it became visible that a network gadget's completions handler may schedule a softirq which remains unprocessed. The gadget's completion handler is usually invoked either in hard-IRQ or soft-IRQ context. In this context it is enough to just raise the softirq because the softirq itself will be handled once that context is left. In the case of the voluntary threaded handler, there is nothing that will process pending softirqs. Which means it remain queued until another random interrupt (on this CPU) fires and handles it on its exit path or another thread locks and unlocks a lock with the bh suffix. Worst case is that the CPU goes idle and the NOHZ complains about unhandled softirqs. Disable bottom halves before acquiring the lock (and disabling interrupts) and enable them after dropping the lock. This ensures that any pending softirqs will handled right away. Link: https://lkml.kernel.org/r/c2a64979-73d1-2c22-e048-c275c9f81558@samsung.com Fixes: e5f68b4a3e7b0 ("Revert "usb: dwc3: gadget: remove unnecessary _irqsave()"") Cc: stable Reported-by: Marek Szyprowski Tested-by: Marek Szyprowski Signed-off-by: Sebastian Andrzej Siewior Link: https://lore.kernel.org/r/Yg/YPejVQH3KkRVd@linutronix.de Signed-off-by: Greg Kroah-Hartman --- drivers/usb/dwc3/gadget.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 2b9a9a5bca9e..2f6b57fcc3d8 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -2737,12 +2737,14 @@ static irqreturn_t dwc3_thread_interrupt(int irq, void *_dwc) irqreturn_t ret = IRQ_NONE; int i; + local_bh_disable(); spin_lock_irqsave(&dwc->lock, flags); for (i = 0; i < dwc->num_event_buffers; i++) ret |= dwc3_process_event_buf(dwc, i); spin_unlock_irqrestore(&dwc->lock, flags); + local_bh_enable(); return ret; } From c751a8bf86b55b7a4f103aeac6b73476f896542e Mon Sep 17 00:00:00 2001 From: Hongyu Xie Date: Tue, 15 Feb 2022 14:33:20 +0200 Subject: [PATCH 1116/1149] xhci: Prevent futile URB re-submissions due to incorrect return value. commit 243a1dd7ba48c120986dd9e66fee74bcb7751034 upstream. The -ENODEV return value from xhci_check_args() is incorrectly changed to -EINVAL in a couple places before propagated further. xhci_check_args() returns 4 types of value, -ENODEV, -EINVAL, 1 and 0. xhci_urb_enqueue and xhci_check_streams_endpoint return -EINVAL if the return value of xhci_check_args <= 0. This causes problems for example r8152_submit_rx, calling usb_submit_urb in drivers/net/usb/r8152.c. r8152_submit_rx will never get -ENODEV after submiting an urb when xHC is halted because xhci_urb_enqueue returns -EINVAL in the very beginning. [commit message and header edit -Mathias] Fixes: 203a86613fb3 ("xhci: Avoid NULL pointer deref when host dies.") Cc: stable@vger.kernel.org Signed-off-by: Hongyu Xie Signed-off-by: Mathias Nyman Link: https://lore.kernel.org/r/20220215123320.1253947-3-mathias.nyman@linux.intel.com Signed-off-by: Greg Kroah-Hartman --- drivers/usb/host/xhci.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index bd010f8caf87..e5a639b0f04c 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c @@ -1390,9 +1390,12 @@ int xhci_urb_enqueue(struct usb_hcd *hcd, struct urb *urb, gfp_t mem_flags) struct urb_priv *urb_priv; int size, i; - if (!urb || xhci_check_args(hcd, urb->dev, urb->ep, - true, true, __func__) <= 0) + if (!urb) return -EINVAL; + ret = xhci_check_args(hcd, urb->dev, urb->ep, + true, true, __func__); + if (ret <= 0) + return ret ? ret : -EINVAL; slot_id = urb->dev->slot_id; ep_index = xhci_get_endpoint_index(&urb->ep->desc); @@ -3053,7 +3056,7 @@ static int xhci_check_streams_endpoint(struct xhci_hcd *xhci, return -EINVAL; ret = xhci_check_args(xhci_to_hcd(xhci), udev, ep, 1, true, __func__); if (ret <= 0) - return -EINVAL; + return ret ? ret : -EINVAL; if (usb_ss_max_streams(&ep->ss_ep_comp) == 0) { xhci_warn(xhci, "WARN: SuperSpeed Endpoint Companion" " descriptor for ep 0x%x does not support streams\n", From e97db20cb6372a71420694acac648bfca8417276 Mon Sep 17 00:00:00 2001 From: "daniel.starke@siemens.com" Date: Thu, 17 Feb 2022 23:31:17 -0800 Subject: [PATCH 1117/1149] tty: n_gsm: fix encoding of control signal octet bit DV commit 737b0ef3be6b319d6c1fd64193d1603311969326 upstream. n_gsm is based on the 3GPP 07.010 and its newer version is the 3GPP 27.010. See https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=1516 The changes from 07.010 to 27.010 are non-functional. Therefore, I refer to the newer 27.010 here. Chapter 5.4.6.3.7 describes the encoding of the control signal octet used by the MSC (modem status command). The same encoding is also used in convergence layer type 2 as described in chapter 5.5.2. Table 7 and 24 both require the DV (data valid) bit to be set 1 for outgoing control signal octets sent by the DTE (data terminal equipment), i.e. for the initiator side. Currently, the DV bit is only set if CD (carrier detect) is on, regardless of the side. This patch fixes this behavior by setting the DV bit on the initiator side unconditionally. Fixes: e1eaea46bb40 ("tty: n_gsm line discipline") Cc: stable@vger.kernel.org Signed-off-by: Daniel Starke Link: https://lore.kernel.org/r/20220218073123.2121-1-daniel.starke@siemens.com Signed-off-by: Greg Kroah-Hartman --- drivers/tty/n_gsm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c index d2ff11d524c0..6262524690f9 100644 --- a/drivers/tty/n_gsm.c +++ b/drivers/tty/n_gsm.c @@ -444,7 +444,7 @@ static u8 gsm_encode_modem(const struct gsm_dlci *dlci) modembits |= MDM_RTR; if (dlci->modem_tx & TIOCM_RI) modembits |= MDM_IC; - if (dlci->modem_tx & TIOCM_CD) + if (dlci->modem_tx & TIOCM_CD || dlci->gsm->initiator) modembits |= MDM_DV; return modembits; } From bdd77ce72f5ba4b2d34b1062d8ab45df73c2c665 Mon Sep 17 00:00:00 2001 From: "daniel.starke@siemens.com" Date: Thu, 17 Feb 2022 23:31:19 -0800 Subject: [PATCH 1118/1149] tty: n_gsm: fix proper link termination after failed open commit e3b7468f082d106459e86e8dc6fb9bdd65553433 upstream. Trying to open a DLCI by sending a SABM frame may fail with a timeout. The link is closed on the initiator side without informing the responder about this event. The responder assumes the link is open after sending a UA frame to answer the SABM frame. The link gets stuck in a half open state. This patch fixes this by initiating the proper link termination procedure after link setup timeout instead of silently closing it down. Fixes: e1eaea46bb40 ("tty: n_gsm line discipline") Cc: stable@vger.kernel.org Signed-off-by: Daniel Starke Link: https://lore.kernel.org/r/20220218073123.2121-3-daniel.starke@siemens.com Signed-off-by: Greg Kroah-Hartman --- drivers/tty/n_gsm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c index 6262524690f9..ff58c5453b24 100644 --- a/drivers/tty/n_gsm.c +++ b/drivers/tty/n_gsm.c @@ -1506,7 +1506,7 @@ static void gsm_dlci_t1(unsigned long data) dlci->mode = DLCI_MODE_ADM; gsm_dlci_open(dlci); } else { - gsm_dlci_close(dlci); + gsm_dlci_begin_close(dlci); /* prevent half open link */ } break; From 950f5723f764c0cff9ae9bd144afaa18fd7eba74 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Sat, 26 Feb 2022 14:33:24 +0800 Subject: [PATCH 1119/1149] fget: clarify and improve __fget_files() implementation commit e386dfc56f837da66d00a078e5314bc8382fab83 upstream. Commit 054aa8d439b9 ("fget: check that the fd still exists after getting a ref to it") fixed a race with getting a reference to a file just as it was being closed. It was a fairly minimal patch, and I didn't think re-checking the file pointer lookup would be a measurable overhead, since it was all right there and cached. But I was wrong, as pointed out by the kernel test robot. The 'poll2' case of the will-it-scale.per_thread_ops benchmark regressed quite noticeably. Admittedly it seems to be a very artificial test: doing "poll()" system calls on regular files in a very tight loop in multiple threads. That means that basically all the time is spent just looking up file descriptors without ever doing anything useful with them (not that doing 'poll()' on a regular file is useful to begin with). And as a result it shows the extra "re-check fd" cost as a sore thumb. Happily, the regression is fixable by just writing the code to loook up the fd to be better and clearer. There's still a cost to verify the file pointer, but now it's basically in the noise even for that benchmark that does nothing else - and the code is more understandable and has better comments too. [ Side note: this patch is also a classic case of one that looks very messy with the default greedy Myers diff - it's much more legible with either the patience of histogram diff algorithm ] Link: https://lore.kernel.org/lkml/20211210053743.GA36420@xsang-OptiPlex-9020/ Link: https://lore.kernel.org/lkml/20211213083154.GA20853@linux.intel.com/ Reported-by: kernel test robot Tested-by: Carel Si Cc: Jann Horn Cc: Miklos Szeredi Signed-off-by: Linus Torvalds Signed-off-by: Baokun Li Signed-off-by: Greg Kroah-Hartman --- fs/file.c | 73 +++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 57 insertions(+), 16 deletions(-) diff --git a/fs/file.c b/fs/file.c index 0ed602e1fbd2..3ab8eefa7077 100644 --- a/fs/file.c +++ b/fs/file.c @@ -691,28 +691,69 @@ void do_close_on_exec(struct files_struct *files) spin_unlock(&files->file_lock); } -static struct file *__fget(unsigned int fd, fmode_t mask, unsigned int refs) +static inline struct file *__fget_files_rcu(struct files_struct *files, + unsigned int fd, fmode_t mask, unsigned int refs) { - struct files_struct *files = current->files; - struct file *file; + for (;;) { + struct file *file; + struct fdtable *fdt = rcu_dereference_raw(files->fdt); + struct file __rcu **fdentry; - rcu_read_lock(); -loop: - file = fcheck_files(files, fd); - if (file) { - /* File object ref couldn't be taken. - * dup2() atomicity guarantee is the reason - * we loop to catch the new file (or NULL pointer) + if (unlikely(fd >= fdt->max_fds)) + return NULL; + + fdentry = fdt->fd + array_index_nospec(fd, fdt->max_fds); + file = rcu_dereference_raw(*fdentry); + if (unlikely(!file)) + return NULL; + + if (unlikely(file->f_mode & mask)) + return NULL; + + /* + * Ok, we have a file pointer. However, because we do + * this all locklessly under RCU, we may be racing with + * that file being closed. + * + * Such a race can take two forms: + * + * (a) the file ref already went down to zero, + * and get_file_rcu_many() fails. Just try + * again: + */ + if (unlikely(!get_file_rcu_many(file, refs))) + continue; + + /* + * (b) the file table entry has changed under us. + * Note that we don't need to re-check the 'fdt->fd' + * pointer having changed, because it always goes + * hand-in-hand with 'fdt'. + * + * If so, we need to put our refs and try again. */ - if (file->f_mode & mask) - file = NULL; - else if (!get_file_rcu_many(file, refs)) - goto loop; - else if (__fcheck_files(files, fd) != file) { + if (unlikely(rcu_dereference_raw(files->fdt) != fdt) || + unlikely(rcu_dereference_raw(*fdentry) != file)) { fput_many(file, refs); - goto loop; + continue; } + + /* + * Ok, we have a ref to the file, and checked that it + * still exists. + */ + return file; } +} + + +static struct file *__fget(unsigned int fd, fmode_t mask, unsigned int refs) +{ + struct files_struct *files = current->files; + struct file *file; + + rcu_read_lock(); + file = __fget_files_rcu(files, fd, mask, refs); rcu_read_unlock(); return file; From 82bdcca41236948036e581a58945cbe1927f1e5b Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Fri, 18 Mar 2022 14:20:22 +0100 Subject: [PATCH 1120/1149] Update with patches from 4.9.304. Signed-off-by: Pavel Machek --- localversion-st | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-st b/localversion-st index 66837fc60916..d6698fd73a46 100644 --- a/localversion-st +++ b/localversion-st @@ -1 +1 @@ --st3 \ No newline at end of file +-st4 \ No newline at end of file From b2e153706d4a8dede44657b5a710a275328e965a Mon Sep 17 00:00:00 2001 From: Benjamin Beichler Date: Tue, 11 Jan 2022 22:13:26 +0000 Subject: [PATCH 1121/1149] mac80211_hwsim: report NOACK frames in tx_status [ Upstream commit 42a79960ffa50bfe9e0bf5d6280be89bf563a5dd ] Add IEEE80211_TX_STAT_NOACK_TRANSMITTED to tx_status flags to have proper statistics for non-acked frames. Signed-off-by: Benjamin Beichler Link: https://lore.kernel.org/r/20220111221327.1499881-1-benjamin.beichler@uni-rostock.de Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin --- drivers/net/wireless/mac80211_hwsim.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c index 8d8010b0c254..7db00f663bb6 100644 --- a/drivers/net/wireless/mac80211_hwsim.c +++ b/drivers/net/wireless/mac80211_hwsim.c @@ -2779,6 +2779,10 @@ static int hwsim_tx_info_frame_received_nl(struct sk_buff *skb_2, } txi->flags |= IEEE80211_TX_STAT_ACK; } + + if (hwsim_flags & HWSIM_TX_CTL_NO_ACK) + txi->flags |= IEEE80211_TX_STAT_NOACK_TRANSMITTED; + ieee80211_tx_status_irqsafe(data2->hw, skb); return 0; out: From 7b81faddccc995b3ccabc32fab59e9195bfbe697 Mon Sep 17 00:00:00 2001 From: JaeMan Park Date: Thu, 13 Jan 2022 15:02:35 +0900 Subject: [PATCH 1122/1149] mac80211_hwsim: initialize ieee80211_tx_info at hw_scan_work [ Upstream commit cacfddf82baf1470e5741edeecb187260868f195 ] In mac80211_hwsim, the probe_req frame is created and sent while scanning. It is sent with ieee80211_tx_info which is not initialized. Uninitialized ieee80211_tx_info can cause problems when using mac80211_hwsim with wmediumd. wmediumd checks the tx_rates field of ieee80211_tx_info and doesn't relay probe_req frame to other clients even if it is a broadcasting message. Call ieee80211_tx_prepare_skb() to initialize ieee80211_tx_info for the probe_req that is created by hw_scan_work in mac80211_hwsim. Signed-off-by: JaeMan Park Link: https://lore.kernel.org/r/20220113060235.546107-1-jaeman@google.com [fix memory leak] Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin --- drivers/net/wireless/mac80211_hwsim.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c index 7db00f663bb6..2775e2b294db 100644 --- a/drivers/net/wireless/mac80211_hwsim.c +++ b/drivers/net/wireless/mac80211_hwsim.c @@ -1899,6 +1899,15 @@ static void hw_scan_work(struct work_struct *work) memcpy(skb_put(probe, req->ie_len), req->ie, req->ie_len); + if (!ieee80211_tx_prepare_skb(hwsim->hw, + hwsim->hw_scan_vif, + probe, + hwsim->tmp_chan->band, + NULL)) { + kfree_skb(probe); + continue; + } + local_bh_disable(); mac80211_hwsim_tx_frame(hwsim->hw, probe, hwsim->tmp_chan); From 04c2a2166f21b0e08f849ddcac3863de78c813bf Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 23 Feb 2018 22:42:31 +0100 Subject: [PATCH 1123/1149] i2c: bcm2835: Avoid clock stretching timeouts [ Upstream commit 9495b9b31abe525ebd93da58de2c88b9f66d3a0e ] The CLKT register contains at poweron 0x40, which at our typical 100kHz bus rate means .64ms. But there is no specified limit to how long devices should be able to stretch the clocks, so just disable the timeout. We still have a timeout wrapping the entire transfer. Signed-off-by: Eric Anholt Signed-off-by: Stefan Wahren BugLink: https://github.com/raspberrypi/linux/issues/3064 Signed-off-by: Wolfram Sang Signed-off-by: Sasha Levin --- drivers/i2c/busses/i2c-bcm2835.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/i2c/busses/i2c-bcm2835.c b/drivers/i2c/busses/i2c-bcm2835.c index 3032b89ac60b..d0a8308ea8ed 100644 --- a/drivers/i2c/busses/i2c-bcm2835.c +++ b/drivers/i2c/busses/i2c-bcm2835.c @@ -28,6 +28,11 @@ #define BCM2835_I2C_FIFO 0x10 #define BCM2835_I2C_DIV 0x14 #define BCM2835_I2C_DEL 0x18 +/* + * 16-bit field for the number of SCL cycles to wait after rising SCL + * before deciding the slave is not responding. 0 disables the + * timeout detection. + */ #define BCM2835_I2C_CLKT 0x1c #define BCM2835_I2C_C_READ BIT(0) @@ -294,6 +299,12 @@ static int bcm2835_i2c_probe(struct platform_device *pdev) adap->dev.parent = &pdev->dev; adap->dev.of_node = pdev->dev.of_node; + /* + * Disable the hardware clock stretching timeout. SMBUS + * specifies a limit for how long the device can stretch the + * clock, but core I2C doesn't. + */ + bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_CLKT, 0); bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C, 0); ret = i2c_add_adapter(adap); From 48deed983d3b3766082755640a3aa6c3b4b4d037 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= Date: Tue, 8 Feb 2022 09:59:16 -0800 Subject: [PATCH 1124/1149] Input: clear BTN_RIGHT/MIDDLE on buttonpads MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [ Upstream commit 37ef4c19b4c659926ce65a7ac709ceaefb211c40 ] Buttonpads are expected to map the INPUT_PROP_BUTTONPAD property bit and the BTN_LEFT key bit. As explained in the specification, where a device has a button type value of 0 (click-pad) or 1 (pressure-pad) there should not be discrete buttons: https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/touchpad-windows-precision-touchpad-collection#device-capabilities-feature-report However, some drivers map the BTN_RIGHT and/or BTN_MIDDLE key bits even though the device is a buttonpad and therefore does not have those buttons. This behavior has forced userspace applications like libinput to implement different workarounds and quirks to detect buttonpads and offer to the user the right set of features and configuration options. For more information: https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/726 In order to avoid this issue clear the BTN_RIGHT and BTN_MIDDLE key bits when the input device is register if the INPUT_PROP_BUTTONPAD property bit is set. Notice that this change will not affect udev because it does not check for buttons. See systemd/src/udev/udev-builtin-input_id.c. List of known affected hardware: - Chuwi AeroBook Plus - Chuwi Gemibook - Framework Laptop - GPD Win Max - Huawei MateBook 2020 - Prestigio Smartbook 141 C2 - Purism Librem 14v1 - StarLite Mk II - AMI firmware - StarLite Mk II - Coreboot firmware - StarLite Mk III - AMI firmware - StarLite Mk III - Coreboot firmware - StarLabTop Mk IV - AMI firmware - StarLabTop Mk IV - Coreboot firmware - StarBook Mk V Acked-by: Peter Hutterer Acked-by: Benjamin Tissoires Acked-by: Jiri Kosina Signed-off-by: José Expósito Link: https://lore.kernel.org/r/20220208174806.17183-1-jose.exposito89@gmail.com Signed-off-by: Dmitry Torokhov Signed-off-by: Sasha Levin --- drivers/input/input.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/input/input.c b/drivers/input/input.c index 6d9f58a446fa..283bb0459fe7 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c @@ -2113,6 +2113,12 @@ int input_register_device(struct input_dev *dev) /* KEY_RESERVED is not supposed to be transmitted to userspace. */ __clear_bit(KEY_RESERVED, dev->keybit); + /* Buttonpads should not map BTN_RIGHT and/or BTN_MIDDLE. */ + if (test_bit(INPUT_PROP_BUTTONPAD, dev->propbit)) { + __clear_bit(BTN_RIGHT, dev->keybit); + __clear_bit(BTN_MIDDLE, dev->keybit); + } + /* Make sure that bitmasks not mentioned in dev->evbit are clean. */ input_cleanse_bitmasks(dev); From 9178ea87e922fc89393a55a3816a9d46c19f2cb8 Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Fri, 11 Feb 2022 02:59:15 +1000 Subject: [PATCH 1125/1149] cifs: fix double free race when mount fails in cifs_get_root() [ Upstream commit 3d6cc9898efdfb062efb74dc18cfc700e082f5d5 ] When cifs_get_root() fails during cifs_smb3_do_mount() we call deactivate_locked_super() which eventually will call delayed_free() which will free the context. In this situation we should not proceed to enter the out: section in cifs_smb3_do_mount() and free the same resources a second time. [Thu Feb 10 12:59:06 2022] BUG: KASAN: use-after-free in rcu_cblist_dequeue+0x32/0x60 [Thu Feb 10 12:59:06 2022] Read of size 8 at addr ffff888364f4d110 by task swapper/1/0 [Thu Feb 10 12:59:06 2022] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G OE 5.17.0-rc3+ #4 [Thu Feb 10 12:59:06 2022] Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS Hyper-V UEFI Release v4.0 12/17/2019 [Thu Feb 10 12:59:06 2022] Call Trace: [Thu Feb 10 12:59:06 2022] [Thu Feb 10 12:59:06 2022] dump_stack_lvl+0x5d/0x78 [Thu Feb 10 12:59:06 2022] print_address_description.constprop.0+0x24/0x150 [Thu Feb 10 12:59:06 2022] ? rcu_cblist_dequeue+0x32/0x60 [Thu Feb 10 12:59:06 2022] kasan_report.cold+0x7d/0x117 [Thu Feb 10 12:59:06 2022] ? rcu_cblist_dequeue+0x32/0x60 [Thu Feb 10 12:59:06 2022] __asan_load8+0x86/0xa0 [Thu Feb 10 12:59:06 2022] rcu_cblist_dequeue+0x32/0x60 [Thu Feb 10 12:59:06 2022] rcu_core+0x547/0xca0 [Thu Feb 10 12:59:06 2022] ? call_rcu+0x3c0/0x3c0 [Thu Feb 10 12:59:06 2022] ? __this_cpu_preempt_check+0x13/0x20 [Thu Feb 10 12:59:06 2022] ? lock_is_held_type+0xea/0x140 [Thu Feb 10 12:59:06 2022] rcu_core_si+0xe/0x10 [Thu Feb 10 12:59:06 2022] __do_softirq+0x1d4/0x67b [Thu Feb 10 12:59:06 2022] __irq_exit_rcu+0x100/0x150 [Thu Feb 10 12:59:06 2022] irq_exit_rcu+0xe/0x30 [Thu Feb 10 12:59:06 2022] sysvec_hyperv_stimer0+0x9d/0xc0 ... [Thu Feb 10 12:59:07 2022] Freed by task 58179: [Thu Feb 10 12:59:07 2022] kasan_save_stack+0x26/0x50 [Thu Feb 10 12:59:07 2022] kasan_set_track+0x25/0x30 [Thu Feb 10 12:59:07 2022] kasan_set_free_info+0x24/0x40 [Thu Feb 10 12:59:07 2022] ____kasan_slab_free+0x137/0x170 [Thu Feb 10 12:59:07 2022] __kasan_slab_free+0x12/0x20 [Thu Feb 10 12:59:07 2022] slab_free_freelist_hook+0xb3/0x1d0 [Thu Feb 10 12:59:07 2022] kfree+0xcd/0x520 [Thu Feb 10 12:59:07 2022] cifs_smb3_do_mount+0x149/0xbe0 [cifs] [Thu Feb 10 12:59:07 2022] smb3_get_tree+0x1a0/0x2e0 [cifs] [Thu Feb 10 12:59:07 2022] vfs_get_tree+0x52/0x140 [Thu Feb 10 12:59:07 2022] path_mount+0x635/0x10c0 [Thu Feb 10 12:59:07 2022] __x64_sys_mount+0x1bf/0x210 [Thu Feb 10 12:59:07 2022] do_syscall_64+0x5c/0xc0 [Thu Feb 10 12:59:07 2022] entry_SYSCALL_64_after_hwframe+0x44/0xae [Thu Feb 10 12:59:07 2022] Last potentially related work creation: [Thu Feb 10 12:59:07 2022] kasan_save_stack+0x26/0x50 [Thu Feb 10 12:59:07 2022] __kasan_record_aux_stack+0xb6/0xc0 [Thu Feb 10 12:59:07 2022] kasan_record_aux_stack_noalloc+0xb/0x10 [Thu Feb 10 12:59:07 2022] call_rcu+0x76/0x3c0 [Thu Feb 10 12:59:07 2022] cifs_umount+0xce/0xe0 [cifs] [Thu Feb 10 12:59:07 2022] cifs_kill_sb+0xc8/0xe0 [cifs] [Thu Feb 10 12:59:07 2022] deactivate_locked_super+0x5d/0xd0 [Thu Feb 10 12:59:07 2022] cifs_smb3_do_mount+0xab9/0xbe0 [cifs] [Thu Feb 10 12:59:07 2022] smb3_get_tree+0x1a0/0x2e0 [cifs] [Thu Feb 10 12:59:07 2022] vfs_get_tree+0x52/0x140 [Thu Feb 10 12:59:07 2022] path_mount+0x635/0x10c0 [Thu Feb 10 12:59:07 2022] __x64_sys_mount+0x1bf/0x210 [Thu Feb 10 12:59:07 2022] do_syscall_64+0x5c/0xc0 [Thu Feb 10 12:59:07 2022] entry_SYSCALL_64_after_hwframe+0x44/0xae Reported-by: Shyam Prasad N Reviewed-by: Shyam Prasad N Signed-off-by: Ronnie Sahlberg Signed-off-by: Steve French Signed-off-by: Sasha Levin --- fs/cifs/cifsfs.c | 1 + 1 file changed, 1 insertion(+) diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c index 5666eb49bbbd..3baf210f5995 100644 --- a/fs/cifs/cifsfs.c +++ b/fs/cifs/cifsfs.c @@ -745,6 +745,7 @@ cifs_do_mount(struct file_system_type *fs_type, out_super: deactivate_locked_super(sb); + return root; out: cifs_cleanup_volume_info(volume_info); return root; From e26c309475b9d5c3b294ca3ce3863f3a6bdcbb97 Mon Sep 17 00:00:00 2001 From: Yongzhi Liu Date: Sat, 15 Jan 2022 21:34:56 -0800 Subject: [PATCH 1126/1149] dmaengine: shdma: Fix runtime PM imbalance on error [ Upstream commit 455896c53d5b803733ddd84e1bf8a430644439b6 ] pm_runtime_get_() increments the runtime PM usage counter even when it returns an error code, thus a matching decrement is needed on the error handling path to keep the counter balanced. Signed-off-by: Yongzhi Liu Link: https://lore.kernel.org/r/1642311296-87020-1-git-send-email-lyz_cs@pku.edu.cn Signed-off-by: Vinod Koul Signed-off-by: Sasha Levin --- drivers/dma/sh/shdma-base.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/dma/sh/shdma-base.c b/drivers/dma/sh/shdma-base.c index 10fcabad80f3..687286f20512 100644 --- a/drivers/dma/sh/shdma-base.c +++ b/drivers/dma/sh/shdma-base.c @@ -118,8 +118,10 @@ static dma_cookie_t shdma_tx_submit(struct dma_async_tx_descriptor *tx) ret = pm_runtime_get(schan->dev); spin_unlock_irq(&schan->chan_lock); - if (ret < 0) + if (ret < 0) { dev_err(schan->dev, "%s(): GET = %d\n", __func__, ret); + pm_runtime_put(schan->dev); + } pm_runtime_barrier(schan->dev); From b91859ffa758ec9dd71e00ffdcc4a5fab0d8fc82 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Sat, 12 Feb 2022 20:47:07 +0100 Subject: [PATCH 1127/1149] i2c: qup: allow COMPILE_TEST [ Upstream commit 5de717974005fcad2502281e9f82e139ca91f4bb ] Driver builds fine with COMPILE_TEST. Enable it for wider test coverage and easier maintenance. Signed-off-by: Wolfram Sang Signed-off-by: Sasha Levin --- drivers/i2c/busses/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig index 7b0aa82ea38b..51f3eeec2102 100644 --- a/drivers/i2c/busses/Kconfig +++ b/drivers/i2c/busses/Kconfig @@ -778,7 +778,7 @@ config I2C_PXA_SLAVE config I2C_QUP tristate "Qualcomm QUP based I2C controller" - depends on ARCH_QCOM + depends on ARCH_QCOM || COMPILE_TEST help If you say yes to this option, support will be included for the built-in I2C interface on the Qualcomm SoCs. From dd747d7d0d28fed32a37e294696ac230fa1faf73 Mon Sep 17 00:00:00 2001 From: Hangyu Hua Date: Sat, 1 Jan 2022 01:21:37 +0800 Subject: [PATCH 1128/1149] usb: gadget: don't release an existing dev->buf commit 89f3594d0de58e8a57d92d497dea9fee3d4b9cda upstream. dev->buf does not need to be released if it already exists before executing dev_config. Acked-by: Alan Stern Signed-off-by: Hangyu Hua Link: https://lore.kernel.org/r/20211231172138.7993-2-hbh25y@gmail.com Signed-off-by: Greg Kroah-Hartman --- drivers/usb/gadget/legacy/inode.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/usb/gadget/legacy/inode.c b/drivers/usb/gadget/legacy/inode.c index f2b4fdd1f49d..8d144c74792e 100644 --- a/drivers/usb/gadget/legacy/inode.c +++ b/drivers/usb/gadget/legacy/inode.c @@ -1851,8 +1851,9 @@ dev_config (struct file *fd, const char __user *buf, size_t len, loff_t *ptr) spin_lock_irq (&dev->lock); value = -EINVAL; if (dev->buf) { + spin_unlock_irq(&dev->lock); kfree(kbuf); - goto fail; + return value; } dev->buf = kbuf; From 5e612c9b1f86a1d758f2927c4ffef83c0af0c676 Mon Sep 17 00:00:00 2001 From: Hangyu Hua Date: Sat, 1 Jan 2022 01:21:38 +0800 Subject: [PATCH 1129/1149] usb: gadget: clear related members when goto fail commit 501e38a5531efbd77d5c73c0ba838a889bfc1d74 upstream. dev->config and dev->hs_config and dev->dev need to be cleaned if dev_config fails to avoid UAF. Acked-by: Alan Stern Signed-off-by: Hangyu Hua Link: https://lore.kernel.org/r/20211231172138.7993-3-hbh25y@gmail.com Signed-off-by: Greg Kroah-Hartman --- drivers/usb/gadget/legacy/inode.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/usb/gadget/legacy/inode.c b/drivers/usb/gadget/legacy/inode.c index 8d144c74792e..a069150d97f3 100644 --- a/drivers/usb/gadget/legacy/inode.c +++ b/drivers/usb/gadget/legacy/inode.c @@ -1901,8 +1901,8 @@ dev_config (struct file *fd, const char __user *buf, size_t len, loff_t *ptr) value = usb_gadget_probe_driver(&gadgetfs_driver); if (value != 0) { - kfree (dev->buf); - dev->buf = NULL; + spin_lock_irq(&dev->lock); + goto fail; } else { /* at this point "good" hardware has for the first time * let the USB the host see us. alternatively, if users @@ -1918,6 +1918,9 @@ dev_config (struct file *fd, const char __user *buf, size_t len, loff_t *ptr) return value; fail: + dev->config = NULL; + dev->hs_config = NULL; + dev->dev = NULL; spin_unlock_irq (&dev->lock); pr_debug ("%s: %s fail %Zd, %p\n", shortname, __func__, value, dev); kfree (dev->buf); From 74603e6bb0638e76c618059e1474bdd1827ccf8d Mon Sep 17 00:00:00 2001 From: Sergey Shtylyov Date: Sat, 19 Feb 2022 23:04:29 +0300 Subject: [PATCH 1130/1149] ata: pata_hpt37x: fix PCI clock detection [ Upstream commit 5f6b0f2d037c8864f20ff15311c695f65eb09db5 ] The f_CNT register (at the PCI config. address 0x78) is 16-bit, not 8-bit! The bug was there from the very start... :-( Signed-off-by: Sergey Shtylyov Fixes: 669a5db411d8 ("[libata] Add a bunch of PATA drivers.") Cc: stable@vger.kernel.org Signed-off-by: Damien Le Moal Signed-off-by: Sasha Levin --- drivers/ata/pata_hpt37x.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/ata/pata_hpt37x.c b/drivers/ata/pata_hpt37x.c index 821fc1f2324c..44cc02afaa8b 100644 --- a/drivers/ata/pata_hpt37x.c +++ b/drivers/ata/pata_hpt37x.c @@ -964,14 +964,14 @@ static int hpt37x_init_one(struct pci_dev *dev, const struct pci_device_id *id) if ((freq >> 12) != 0xABCDE) { int i; - u8 sr; + u16 sr; u32 total = 0; pr_warn("BIOS has not set timing clocks\n"); /* This is the process the HPT371 BIOS is reported to use */ for (i = 0; i < 128; i++) { - pci_read_config_byte(dev, 0x78, &sr); + pci_read_config_word(dev, 0x78, &sr); total += sr & 0x1FF; udelay(15); } From e41846dbe6f49d305c1a8fc229c5deabd66e3e24 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Tue, 15 Feb 2022 14:06:45 +0100 Subject: [PATCH 1131/1149] ASoC: ops: Shift tested values in snd_soc_put_volsw() by +min commit 9bdd10d57a8807dba0003af0325191f3cec0f11c upstream. While the $val/$val2 values passed in from userspace are always >= 0 integers, the limits of the control can be signed integers and the $min can be non-zero and less than zero. To correctly validate $val/$val2 against platform_max, add the $min offset to val first. Fixes: 817f7c9335ec0 ("ASoC: ops: Reject out of bounds values in snd_soc_put_volsw()") Signed-off-by: Marek Vasut Cc: Mark Brown Cc: stable@vger.kernel.org Link: https://lore.kernel.org/r/20220215130645.164025-1-marex@denx.de Signed-off-by: Mark Brown Signed-off-by: Greg Kroah-Hartman --- sound/soc/soc-ops.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sound/soc/soc-ops.c b/sound/soc/soc-ops.c index d62bb0aadb82..098149bdf2e9 100644 --- a/sound/soc/soc-ops.c +++ b/sound/soc/soc-ops.c @@ -328,7 +328,7 @@ int snd_soc_put_volsw(struct snd_kcontrol *kcontrol, mask = BIT(sign_bit + 1) - 1; val = ucontrol->value.integer.value[0]; - if (mc->platform_max && val > mc->platform_max) + if (mc->platform_max && ((int)val + min) > mc->platform_max) return -EINVAL; if (val > max - min) return -EINVAL; @@ -341,7 +341,7 @@ int snd_soc_put_volsw(struct snd_kcontrol *kcontrol, val = val << shift; if (snd_soc_volsw_is_stereo(mc)) { val2 = ucontrol->value.integer.value[1]; - if (mc->platform_max && val2 > mc->platform_max) + if (mc->platform_max && ((int)val2 + min) > mc->platform_max) return -EINVAL; if (val2 > max - min) return -EINVAL; From 7dc406d484a8906b1e60560170e4b1da176f5c64 Mon Sep 17 00:00:00 2001 From: Jiri Bohac Date: Wed, 19 Jan 2022 10:22:53 +0100 Subject: [PATCH 1132/1149] xfrm: fix MTU regression commit 6596a0229541270fb8d38d989f91b78838e5e9da upstream. Commit 749439bfac6e1a2932c582e2699f91d329658196 ("ipv6: fix udpv6 sendmsg crash caused by too small MTU") breaks PMTU for xfrm. A Packet Too Big ICMPv6 message received in response to an ESP packet will prevent all further communication through the tunnel if the reported MTU minus the ESP overhead is smaller than 1280. E.g. in a case of a tunnel-mode ESP with sha256/aes the overhead is 92 bytes. Receiving a PTB with MTU of 1371 or less will result in all further packets in the tunnel dropped. A ping through the tunnel fails with "ping: sendmsg: Invalid argument". Apparently the MTU on the xfrm route is smaller than 1280 and fails the check inside ip6_setup_cork() added by 749439bf. We found this by debugging USGv6/ipv6ready failures. Failing tests are: "Phase-2 Interoperability Test Scenario IPsec" / 5.3.11 and 5.4.11 (Tunnel Mode: Fragmentation). Commit b515d2637276a3810d6595e10ab02c13bfd0b63a ("xfrm: xfrm_state_mtu should return at least 1280 for ipv6") attempted to fix this but caused another regression in TCP MSS calculations and had to be reverted. The patch below fixes the situation by dropping the MTU check and instead checking for the underflows described in the 749439bf commit message. Signed-off-by: Jiri Bohac Fixes: 749439bfac6e ("ipv6: fix udpv6 sendmsg crash caused by too small MTU") Signed-off-by: Steffen Klassert Signed-off-by: Greg Kroah-Hartman --- net/ipv6/ip6_output.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index 1e2b8d33d303..e6b82bd56c1b 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -1258,8 +1258,6 @@ static int ip6_setup_cork(struct sock *sk, struct inet_cork_full *cork, if (np->frag_size) mtu = np->frag_size; } - if (mtu < IPV6_MIN_MTU) - return -EINVAL; cork->base.fragsize = mtu; if (dst_allfrag(rt->dst.path)) cork->base.flags |= IPCORK_ALLFRAG; @@ -1307,8 +1305,6 @@ static int __ip6_append_data(struct sock *sk, fragheaderlen = sizeof(struct ipv6hdr) + rt->rt6i_nfheader_len + (opt ? opt->opt_nflen : 0); - maxfraglen = ((mtu - fragheaderlen) & ~7) + fragheaderlen - - sizeof(struct frag_hdr); headersize = sizeof(struct ipv6hdr) + (opt ? opt->opt_flen + opt->opt_nflen : 0) + @@ -1316,6 +1312,13 @@ static int __ip6_append_data(struct sock *sk, sizeof(struct frag_hdr) : 0) + rt->rt6i_nfheader_len; + if (mtu < fragheaderlen || + ((mtu - fragheaderlen) & ~7) + fragheaderlen < sizeof(struct frag_hdr)) + goto emsgsize; + + maxfraglen = ((mtu - fragheaderlen) & ~7) + fragheaderlen - + sizeof(struct frag_hdr); + /* as per RFC 7112 section 5, the entire IPv6 Header Chain must fit * the first fragment */ From 779f60d014920d0304b33d744f89815efc882da4 Mon Sep 17 00:00:00 2001 From: Florian Westphal Date: Fri, 25 Feb 2022 14:02:41 +0100 Subject: [PATCH 1133/1149] netfilter: nf_queue: don't assume sk is full socket commit 747670fd9a2d1b7774030dba65ca022ba442ce71 upstream. There is no guarantee that state->sk refers to a full socket. If refcount transitions to 0, sock_put calls sk_free which then ends up with garbage fields. I'd like to thank Oleksandr Natalenko and Jiri Benc for considerable debug work and pointing out state->sk oddities. Fixes: ca6fb0651883 ("tcp: attach SYNACK messages to request sockets instead of listener") Tested-by: Oleksandr Natalenko Signed-off-by: Florian Westphal Signed-off-by: Greg Kroah-Hartman --- net/netfilter/nf_queue.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/net/netfilter/nf_queue.c b/net/netfilter/nf_queue.c index b19ad20a705c..4b60783a6e1c 100644 --- a/net/netfilter/nf_queue.c +++ b/net/netfilter/nf_queue.c @@ -44,6 +44,15 @@ void nf_unregister_queue_handler(struct net *net) } EXPORT_SYMBOL(nf_unregister_queue_handler); +static void nf_queue_sock_put(struct sock *sk) +{ +#ifdef CONFIG_INET + sock_gen_put(sk); +#else + sock_put(sk); +#endif +} + void nf_queue_entry_release_refs(struct nf_queue_entry *entry) { struct nf_hook_state *state = &entry->state; @@ -54,7 +63,7 @@ void nf_queue_entry_release_refs(struct nf_queue_entry *entry) if (state->out) dev_put(state->out); if (state->sk) - sock_put(state->sk); + nf_queue_sock_put(state->sk); #if IS_ENABLED(CONFIG_BRIDGE_NETFILTER) if (entry->skb->nf_bridge) { struct net_device *physdev; From 0bf4da4ac8cd83dec90fa0f14cb4d14dff348c90 Mon Sep 17 00:00:00 2001 From: Florian Westphal Date: Mon, 28 Feb 2022 06:22:22 +0100 Subject: [PATCH 1134/1149] netfilter: nf_queue: fix possible use-after-free commit c3873070247d9e3c7a6b0cf9bf9b45e8018427b1 upstream. Eric Dumazet says: The sock_hold() side seems suspect, because there is no guarantee that sk_refcnt is not already 0. On failure, we cannot queue the packet and need to indicate an error. The packet will be dropped by the caller. v2: split skb prefetch hunk into separate change Fixes: 271b72c7fa82c ("udp: RCU handling for Unicast packets.") Reported-by: Eric Dumazet Reviewed-by: Eric Dumazet Signed-off-by: Florian Westphal Signed-off-by: Greg Kroah-Hartman --- include/net/netfilter/nf_queue.h | 2 +- net/netfilter/nf_queue.c | 12 ++++++++++-- net/netfilter/nfnetlink_queue.c | 12 +++++++++--- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/include/net/netfilter/nf_queue.h b/include/net/netfilter/nf_queue.h index 0dbce55437f2..fd0546b7566d 100644 --- a/include/net/netfilter/nf_queue.h +++ b/include/net/netfilter/nf_queue.h @@ -32,7 +32,7 @@ void nf_register_queue_handler(struct net *net, const struct nf_queue_handler *q void nf_unregister_queue_handler(struct net *net); void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict); -void nf_queue_entry_get_refs(struct nf_queue_entry *entry); +bool nf_queue_entry_get_refs(struct nf_queue_entry *entry); void nf_queue_entry_release_refs(struct nf_queue_entry *entry); static inline void init_hashrandom(u32 *jhash_initval) diff --git a/net/netfilter/nf_queue.c b/net/netfilter/nf_queue.c index 4b60783a6e1c..dccd5520293f 100644 --- a/net/netfilter/nf_queue.c +++ b/net/netfilter/nf_queue.c @@ -80,10 +80,13 @@ void nf_queue_entry_release_refs(struct nf_queue_entry *entry) EXPORT_SYMBOL_GPL(nf_queue_entry_release_refs); /* Bump dev refs so they don't vanish while packet is out */ -void nf_queue_entry_get_refs(struct nf_queue_entry *entry) +bool nf_queue_entry_get_refs(struct nf_queue_entry *entry) { struct nf_hook_state *state = &entry->state; + if (state->sk && !atomic_inc_not_zero(&state->sk->sk_refcnt)) + return false; + if (state->in) dev_hold(state->in); if (state->out) @@ -102,6 +105,7 @@ void nf_queue_entry_get_refs(struct nf_queue_entry *entry) dev_hold(physdev); } #endif + return true; } EXPORT_SYMBOL_GPL(nf_queue_entry_get_refs); @@ -155,7 +159,11 @@ int nf_queue(struct sk_buff *skb, .size = sizeof(*entry) + afinfo->route_key_size, }; - nf_queue_entry_get_refs(entry); + if (!nf_queue_entry_get_refs(entry)) { + kfree(entry); + return -ENOTCONN; + } + skb_dst_force(skb); afinfo->saveroute(skb, entry); status = qh->outfn(entry, queuenum); diff --git a/net/netfilter/nfnetlink_queue.c b/net/netfilter/nfnetlink_queue.c index ebce25080f7f..33142140f204 100644 --- a/net/netfilter/nfnetlink_queue.c +++ b/net/netfilter/nfnetlink_queue.c @@ -612,9 +612,15 @@ static struct nf_queue_entry * nf_queue_entry_dup(struct nf_queue_entry *e) { struct nf_queue_entry *entry = kmemdup(e, e->size, GFP_ATOMIC); - if (entry) - nf_queue_entry_get_refs(entry); - return entry; + + if (!entry) + return NULL; + + if (nf_queue_entry_get_refs(entry)) + return entry; + + kfree(entry); + return NULL; } #if IS_ENABLED(CONFIG_BRIDGE_NETFILTER) From 1554e9fe623d53b4a701eb5aec1bc0707487bae3 Mon Sep 17 00:00:00 2001 From: Vladimir Oltean Date: Thu, 24 Feb 2022 18:01:54 +0200 Subject: [PATCH 1135/1149] net: dcb: flush lingering app table entries for unregistered devices commit 91b0383fef06f20b847fa9e4f0e3054ead0b1a1b upstream. If I'm not mistaken (and I don't think I am), the way in which the dcbnl_ops work is that drivers call dcb_ieee_setapp() and this populates the application table with dynamically allocated struct dcb_app_type entries that are kept in the module-global dcb_app_list. However, nobody keeps exact track of these entries, and although dcb_ieee_delapp() is supposed to remove them, nobody does so when the interface goes away (example: driver unbinds from device). So the dcb_app_list will contain lingering entries with an ifindex that no longer matches any device in dcb_app_lookup(). Reclaim the lost memory by listening for the NETDEV_UNREGISTER event and flushing the app table entries of interfaces that are now gone. In fact something like this used to be done as part of the initial commit (blamed below), but it was done in dcbnl_exit() -> dcb_flushapp(), essentially at module_exit time. That became dead code after commit 7a6b6f515f77 ("DCB: fix kconfig option") which essentially merged "tristate config DCB" and "bool config DCBNL" into a single "bool config DCB", so net/dcb/dcbnl.c could not be built as a module anymore. Commit 36b9ad8084bd ("net/dcb: make dcbnl.c explicitly non-modular") recognized this and deleted dcbnl_exit() and dcb_flushapp() altogether, leaving us with the version we have today. Since flushing application table entries can and should be done as soon as the netdevice disappears, fundamentally the commit that is to blame is the one that introduced the design of this API. Fixes: 9ab933ab2cc8 ("dcbnl: add appliction tlv handlers") Signed-off-by: Vladimir Oltean Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- net/dcb/dcbnl.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/net/dcb/dcbnl.c b/net/dcb/dcbnl.c index 426c30f9fdb0..f4b339aa25c4 100644 --- a/net/dcb/dcbnl.c +++ b/net/dcb/dcbnl.c @@ -1937,10 +1937,54 @@ int dcb_ieee_delapp(struct net_device *dev, struct dcb_app *del) } EXPORT_SYMBOL(dcb_ieee_delapp); +static void dcbnl_flush_dev(struct net_device *dev) +{ + struct dcb_app_type *itr, *tmp; + + spin_lock(&dcb_lock); + + list_for_each_entry_safe(itr, tmp, &dcb_app_list, list) { + if (itr->ifindex == dev->ifindex) { + list_del(&itr->list); + kfree(itr); + } + } + + spin_unlock(&dcb_lock); +} + +static int dcbnl_netdevice_event(struct notifier_block *nb, + unsigned long event, void *ptr) +{ + struct net_device *dev = netdev_notifier_info_to_dev(ptr); + + switch (event) { + case NETDEV_UNREGISTER: + if (!dev->dcbnl_ops) + return NOTIFY_DONE; + + dcbnl_flush_dev(dev); + + return NOTIFY_OK; + default: + return NOTIFY_DONE; + } +} + +static struct notifier_block dcbnl_nb __read_mostly = { + .notifier_call = dcbnl_netdevice_event, +}; + static int __init dcbnl_init(void) { + int err; + INIT_LIST_HEAD(&dcb_app_list); + err = register_netdevice_notifier(&dcbnl_nb); + if (err) + return err; + rtnl_register(PF_UNSPEC, RTM_GETDCB, dcb_doit, NULL, NULL); rtnl_register(PF_UNSPEC, RTM_SETDCB, dcb_doit, NULL, NULL); From 58dbf32402b49d507c615aabbba931f5446d53d3 Mon Sep 17 00:00:00 2001 From: Nicolas Escande Date: Mon, 14 Feb 2022 18:32:14 +0100 Subject: [PATCH 1136/1149] mac80211: fix forwarded mesh frames AC & queue selection commit 859ae7018316daa4adbc496012dcbbb458d7e510 upstream. There are two problems with the current code that have been highlighted with the AQL feature that is now enbaled by default. First problem is in ieee80211_rx_h_mesh_fwding(), ieee80211_select_queue_80211() is used on received packets to choose the sending AC queue of the forwarding packet although this function should only be called on TX packet (it uses ieee80211_tx_info). This ends with forwarded mesh packets been sent on unrelated random AC queue. To fix that, AC queue can directly be infered from skb->priority which has been extracted from QOS info (see ieee80211_parse_qos()). Second problem is the value of queue_mapping set on forwarded mesh frames via skb_set_queue_mapping() is not the AC of the packet but a hardware queue index. This may or may not work depending on AC to HW queue mapping which is driver specific. Both of these issues lead to improper AC selection while forwarding mesh packets but more importantly due to improper airtime accounting (which is done on a per STA, per AC basis) caused traffic stall with the introduction of AQL. Fixes: cf44012810cc ("mac80211: fix unnecessary frame drops in mesh fwding") Fixes: d3c1597b8d1b ("mac80211: fix forwarded mesh frame queue mapping") Co-developed-by: Remi Pommarel Signed-off-by: Remi Pommarel Signed-off-by: Nicolas Escande Link: https://lore.kernel.org/r/20220214173214.368862-1-nico.escande@gmail.com Signed-off-by: Johannes Berg Signed-off-by: Greg Kroah-Hartman --- net/mac80211/rx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 688d7b5b7139..93719335d638 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c @@ -2436,13 +2436,13 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx) ether_addr_equal(sdata->vif.addr, hdr->addr3)) return RX_CONTINUE; - ac = ieee80211_select_queue_80211(sdata, skb, hdr); + ac = ieee802_1d_to_ac[skb->priority]; q = sdata->vif.hw_queue[ac]; if (ieee80211_queue_stopped(&local->hw, q)) { IEEE80211_IFSTA_MESH_CTR_INC(ifmsh, dropped_frames_congestion); return RX_DROP_MONITOR; } - skb_set_queue_mapping(skb, q); + skb_set_queue_mapping(skb, ac); if (!--mesh_hdr->ttl) { if (!is_multicast_ether_addr(hdr->addr1)) From 71802bdad3068e523270858bd5126dbcb192e938 Mon Sep 17 00:00:00 2001 From: Randy Dunlap Date: Wed, 23 Feb 2022 19:35:36 -0800 Subject: [PATCH 1137/1149] net: stmmac: fix return value of __setup handler commit e01b042e580f1fbf4fd8da467442451da00c7a90 upstream. __setup() handlers should return 1 on success, i.e., the parameter has been handled. A return of 0 causes the "option=value" string to be added to init's environment strings, polluting it. Fixes: 47dd7a540b8a ("net: add support for STMicroelectronics Ethernet controllers.") Fixes: f3240e2811f0 ("stmmac: remove warning when compile as built-in (V2)") Signed-off-by: Randy Dunlap Reported-by: Igor Zhbanov Link: lore.kernel.org/r/64644a2f-4a20-bab3-1e15-3b2cdd0defe3@omprussia.ru Cc: Giuseppe Cavallaro Cc: Alexandre Torgue Cc: Jose Abreu Link: https://lore.kernel.org/r/20220224033536.25056-1-rdunlap@infradead.org Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index d9462ee91a4b..76d956de23ac 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -3165,7 +3165,7 @@ static int __init stmmac_cmdline_opt(char *str) char *opt; if (!str || !*str) - return -EINVAL; + return 1; while ((opt = strsep(&str, ",")) != NULL) { if (!strncmp(opt, "debug:", 6)) { if (kstrtoint(opt + 6, 0, &debug)) @@ -3202,11 +3202,11 @@ static int __init stmmac_cmdline_opt(char *str) goto err; } } - return 0; + return 1; err: pr_err("%s: ERROR broken module parameter conversion", __func__); - return -EINVAL; + return 1; } __setup("stmmaceth=", stmmac_cmdline_opt); From c2569cf3f2b51d50e9219ce3fa5717dc65380b88 Mon Sep 17 00:00:00 2001 From: Randy Dunlap Date: Wed, 23 Feb 2022 19:35:28 -0800 Subject: [PATCH 1138/1149] net: sxgbe: fix return value of __setup handler commit 50e06ddceeea263f57fe92baa677c638ecd65bb6 upstream. __setup() handlers should return 1 on success, i.e., the parameter has been handled. A return of 0 causes the "option=value" string to be added to init's environment strings, polluting it. Fixes: acc18c147b22 ("net: sxgbe: add EEE(Energy Efficient Ethernet) for Samsung sxgbe") Fixes: 1edb9ca69e8a ("net: sxgbe: add basic framework for Samsung 10Gb ethernet driver") Signed-off-by: Randy Dunlap Reported-by: Igor Zhbanov Link: lore.kernel.org/r/64644a2f-4a20-bab3-1e15-3b2cdd0defe3@omprussia.ru Cc: Siva Reddy Cc: Girish K S Cc: Byungho An Link: https://lore.kernel.org/r/20220224033528.24640-1-rdunlap@infradead.org Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c b/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c index 56cdc01c5847..895154550608 100644 --- a/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c +++ b/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c @@ -2313,18 +2313,18 @@ static int __init sxgbe_cmdline_opt(char *str) char *opt; if (!str || !*str) - return -EINVAL; + return 1; while ((opt = strsep(&str, ",")) != NULL) { if (!strncmp(opt, "eee_timer:", 10)) { if (kstrtoint(opt + 10, 0, &eee_timer)) goto err; } } - return 0; + return 1; err: pr_err("%s: ERROR broken module parameter conversion\n", __func__); - return -EINVAL; + return 1; } __setup("sxgbeeth=", sxgbe_cmdline_opt); From d51bed21ec4637b5652767388c59e583ebd97037 Mon Sep 17 00:00:00 2001 From: Zheyu Ma Date: Wed, 2 Mar 2022 20:24:23 +0800 Subject: [PATCH 1139/1149] net: arcnet: com20020: Fix null-ptr-deref in com20020pci_probe() commit bd6f1fd5d33dfe5d1b4f2502d3694a7cc13f166d upstream. During driver initialization, the pointer of card info, i.e. the variable 'ci' is required. However, the definition of 'com20020pci_id_table' reveals that this field is empty for some devices, which will cause null pointer dereference when initializing these devices. The following log reveals it: [ 3.973806] KASAN: null-ptr-deref in range [0x0000000000000028-0x000000000000002f] [ 3.973819] RIP: 0010:com20020pci_probe+0x18d/0x13e0 [com20020_pci] [ 3.975181] Call Trace: [ 3.976208] local_pci_probe+0x13f/0x210 [ 3.977248] pci_device_probe+0x34c/0x6d0 [ 3.977255] ? pci_uevent+0x470/0x470 [ 3.978265] really_probe+0x24c/0x8d0 [ 3.978273] __driver_probe_device+0x1b3/0x280 [ 3.979288] driver_probe_device+0x50/0x370 Fix this by checking whether the 'ci' is a null pointer first. Fixes: 8c14f9c70327 ("ARCNET: add com20020 PCI IDs with metadata") Signed-off-by: Zheyu Ma Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- drivers/net/arcnet/com20020-pci.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/arcnet/com20020-pci.c b/drivers/net/arcnet/com20020-pci.c index 239de38fbd6a..1c9fff038569 100644 --- a/drivers/net/arcnet/com20020-pci.c +++ b/drivers/net/arcnet/com20020-pci.c @@ -115,6 +115,9 @@ static int com20020pci_probe(struct pci_dev *pdev, return -ENOMEM; ci = (struct com20020_pci_card_info *)id->driver_data; + if (!ci) + return -EINVAL; + priv->ci = ci; mm = &ci->misc_map; From 7c2fc44ca309beef9159d870de78a6f8b373245d Mon Sep 17 00:00:00 2001 From: Vincent Mailhol Date: Tue, 15 Feb 2022 08:48:14 +0900 Subject: [PATCH 1140/1149] can: gs_usb: change active_channels's type from atomic_t to u8 commit 035b0fcf02707d3c9c2890dc1484b11aa5335eb1 upstream. The driver uses an atomic_t variable: gs_usb:active_channels to keep track of the number of opened channels in order to only allocate memory for the URBs when this count changes from zero to one. However, the driver does not decrement the counter when an error occurs in gs_can_open(). This issue is fixed by changing the type from atomic_t to u8 and by simplifying the logic accordingly. It is safe to use an u8 here because the network stack big kernel lock (a.k.a. rtnl_mutex) is being hold. For details, please refer to [1]. [1] https://lore.kernel.org/linux-can/CAMZ6Rq+sHpiw34ijPsmp7vbUpDtJwvVtdV7CvRZJsLixjAFfrg@mail.gmail.com/T/#t Fixes: d08e973a77d1 ("can: gs_usb: Added support for the GS_USB CAN devices") Link: https://lore.kernel.org/all/20220214234814.1321599-1-mailhol.vincent@wanadoo.fr Signed-off-by: Vincent Mailhol Signed-off-by: Marc Kleine-Budde Signed-off-by: Greg Kroah-Hartman --- drivers/net/can/usb/gs_usb.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/net/can/usb/gs_usb.c b/drivers/net/can/usb/gs_usb.c index c2ce98929e03..0df08c63f0fd 100644 --- a/drivers/net/can/usb/gs_usb.c +++ b/drivers/net/can/usb/gs_usb.c @@ -174,8 +174,8 @@ struct gs_can { struct gs_usb { struct gs_can *canch[GS_MAX_INTF]; struct usb_anchor rx_submitted; - atomic_t active_channels; struct usb_device *udev; + u8 active_channels; }; /* 'allocate' a tx context. @@ -572,7 +572,7 @@ static int gs_can_open(struct net_device *netdev) if (rc) return rc; - if (atomic_add_return(1, &parent->active_channels) == 1) { + if (!parent->active_channels) { for (i = 0; i < GS_MAX_RX_URBS; i++) { struct urb *urb; u8 *buf; @@ -675,6 +675,7 @@ static int gs_can_open(struct net_device *netdev) dev->can.state = CAN_STATE_ERROR_ACTIVE; + parent->active_channels++; if (!(dev->can.ctrlmode & CAN_CTRLMODE_LISTENONLY)) netif_start_queue(netdev); @@ -690,7 +691,8 @@ static int gs_can_close(struct net_device *netdev) netif_stop_queue(netdev); /* Stop polling */ - if (atomic_dec_and_test(&parent->active_channels)) + parent->active_channels--; + if (!parent->active_channels) usb_kill_anchored_urbs(&parent->rx_submitted); /* Stop sending URBs */ @@ -904,8 +906,6 @@ static int gs_usb_probe(struct usb_interface *intf, const struct usb_device_id * return -ENOMEM; init_usb_anchor(&dev->rx_submitted); - atomic_set(&dev->active_channels, 0); - usb_set_intfdata(intf, dev); dev->udev = interface_to_usbdev(intf); From 11f3505ff0af15b5005d709c4fba883d67906ee7 Mon Sep 17 00:00:00 2001 From: Randy Dunlap Date: Wed, 23 Feb 2022 20:46:35 +0100 Subject: [PATCH 1141/1149] ARM: 9182/1: mmu: fix returns from early_param() and __setup() functions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit 7b83299e5b9385943a857d59e15cba270df20d7e upstream. early_param() handlers should return 0 on success. __setup() handlers should return 1 on success, i.e., the parameter has been handled. A return of 0 would cause the "option=value" string to be added to init's environment strings, polluting it. ../arch/arm/mm/mmu.c: In function 'test_early_cachepolicy': ../arch/arm/mm/mmu.c:215:1: error: no return statement in function returning non-void [-Werror=return-type] ../arch/arm/mm/mmu.c: In function 'test_noalign_setup': ../arch/arm/mm/mmu.c:221:1: error: no return statement in function returning non-void [-Werror=return-type] Fixes: b849a60e0903 ("ARM: make cr_alignment read-only #ifndef CONFIG_CPU_CP15") Signed-off-by: Randy Dunlap Reported-by: Igor Zhbanov Cc: Uwe Kleine-König Cc: linux-arm-kernel@lists.infradead.org Cc: patches@armlinux.org.uk Signed-off-by: Russell King (Oracle) Signed-off-by: Greg Kroah-Hartman --- arch/arm/mm/mmu.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index aead23f15213..a3f05c0e979d 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c @@ -228,12 +228,14 @@ early_param("ecc", early_ecc); static int __init early_cachepolicy(char *p) { pr_warn("cachepolicy kernel parameter not supported without cp15\n"); + return 0; } early_param("cachepolicy", early_cachepolicy); static int __init noalign_setup(char *__unused) { pr_warn("noalign kernel parameter not supported without cp15\n"); + return 1; } __setup("noalign", noalign_setup); From ddb6023efb7d451eb749b9084162c8369f1cb1fd Mon Sep 17 00:00:00 2001 From: Jia-Ju Bai Date: Fri, 25 Feb 2022 04:37:27 -0800 Subject: [PATCH 1142/1149] net: chelsio: cxgb3: check the return value of pci_find_capability() [ Upstream commit 767b9825ed1765894e569a3d698749d40d83762a ] The function pci_find_capability() in t3_prep_adapter() can fail, so its return value should be checked. Fixes: 4d22de3e6cc4 ("Add support for the latest 1G/10G Chelsio adapter, T3") Reported-by: TOTE Robot Signed-off-by: Jia-Ju Bai Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/ethernet/chelsio/cxgb3/t3_hw.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/ethernet/chelsio/cxgb3/t3_hw.c b/drivers/net/ethernet/chelsio/cxgb3/t3_hw.c index a22768c94200..666b982a7bd7 100644 --- a/drivers/net/ethernet/chelsio/cxgb3/t3_hw.c +++ b/drivers/net/ethernet/chelsio/cxgb3/t3_hw.c @@ -3643,6 +3643,8 @@ int t3_prep_adapter(struct adapter *adapter, const struct adapter_info *ai, MAC_STATS_ACCUM_SECS : (MAC_STATS_ACCUM_SECS * 10); adapter->params.pci.vpd_cap_addr = pci_find_capability(adapter->pdev, PCI_CAP_ID_VPD); + if (!adapter->params.pci.vpd_cap_addr) + return -ENODEV; ret = get_vpd_params(adapter, &adapter->params.vpd); if (ret < 0) return ret; From 47f2c199a36006741469bf1b182bf61b1f1df4e9 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 28 Feb 2022 23:39:38 -0800 Subject: [PATCH 1143/1149] Input: elan_i2c - move regulator_[en|dis]able() out of elan_[en|dis]able_power() commit 81a36d8ce554b82b0a08e2b95d0bd44fcbff339b upstream. elan_disable_power() is called conditionally on suspend, where as elan_enable_power() is always called on resume. This leads to an imbalance in the regulator's enable count. Move the regulator_[en|dis]able() calls out of elan_[en|dis]able_power() in preparation of fixing this. No functional changes intended. Signed-off-by: Hans de Goede Link: https://lore.kernel.org/r/20220131135436.29638-1-hdegoede@redhat.com [dtor: consolidate elan_[en|dis]able() into elan_set_power()] Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman --- drivers/input/mouse/elan_i2c_core.c | 62 ++++++++++------------------- 1 file changed, 22 insertions(+), 40 deletions(-) diff --git a/drivers/input/mouse/elan_i2c_core.c b/drivers/input/mouse/elan_i2c_core.c index 16f5d5660053..e33edacc5b8d 100644 --- a/drivers/input/mouse/elan_i2c_core.c +++ b/drivers/input/mouse/elan_i2c_core.c @@ -132,55 +132,21 @@ static int elan_get_fwinfo(u8 iap_version, u16 *validpage_count, return 0; } -static int elan_enable_power(struct elan_tp_data *data) +static int elan_set_power(struct elan_tp_data *data, bool on) { int repeat = ETP_RETRY_COUNT; int error; - error = regulator_enable(data->vcc); - if (error) { - dev_err(&data->client->dev, - "failed to enable regulator: %d\n", error); - return error; - } - do { - error = data->ops->power_control(data->client, true); + error = data->ops->power_control(data->client, on); if (error >= 0) return 0; msleep(30); } while (--repeat > 0); - dev_err(&data->client->dev, "failed to enable power: %d\n", error); - return error; -} - -static int elan_disable_power(struct elan_tp_data *data) -{ - int repeat = ETP_RETRY_COUNT; - int error; - - do { - error = data->ops->power_control(data->client, false); - if (!error) { - error = regulator_disable(data->vcc); - if (error) { - dev_err(&data->client->dev, - "failed to disable regulator: %d\n", - error); - /* Attempt to power the chip back up */ - data->ops->power_control(data->client, true); - break; - } - - return 0; - } - - msleep(30); - } while (--repeat > 0); - - dev_err(&data->client->dev, "failed to disable power: %d\n", error); + dev_err(&data->client->dev, "failed to set power %s: %d\n", + on ? "on" : "off", error); return error; } @@ -1195,9 +1161,19 @@ static int __maybe_unused elan_suspend(struct device *dev) /* Enable wake from IRQ */ data->irq_wake = (enable_irq_wake(client->irq) == 0); } else { - ret = elan_disable_power(data); + ret = elan_set_power(data, false); + if (ret) + goto err; + + ret = regulator_disable(data->vcc); + if (ret) { + dev_err(dev, "error %d disabling regulator\n", ret); + /* Attempt to power the chip back up */ + elan_set_power(data, true); + } } +err: mutex_unlock(&data->sysfs_mutex); return ret; } @@ -1213,7 +1189,13 @@ static int __maybe_unused elan_resume(struct device *dev) data->irq_wake = false; } - error = elan_enable_power(data); + error = regulator_enable(data->vcc); + if (error) { + dev_err(dev, "error %d enabling regulator\n", error); + goto err; + } + + error = elan_set_power(data, true); if (error) { dev_err(dev, "power up when resuming failed: %d\n", error); goto err; From 0efb25474c0d65db3e8aed44b92a7d6038050485 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 28 Feb 2022 23:39:50 -0800 Subject: [PATCH 1144/1149] Input: elan_i2c - fix regulator enable count imbalance after suspend/resume commit 04b7762e37c95d9b965d16bb0e18dbd1fa2e2861 upstream. Before these changes elan_suspend() would only disable the regulator when device_may_wakeup() returns false; whereas elan_resume() would unconditionally enable it, leading to an enable count imbalance when device_may_wakeup() returns true. This triggers the "WARN_ON(regulator->enable_count)" in regulator_put() when the elan_i2c driver gets unbound, this happens e.g. with the hot-plugable dock with Elan I2C touchpad for the Asus TF103C 2-in-1. Fix this by making the regulator_enable() call also be conditional on device_may_wakeup() returning false. Signed-off-by: Hans de Goede Link: https://lore.kernel.org/r/20220131135436.29638-2-hdegoede@redhat.com Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman --- drivers/input/mouse/elan_i2c_core.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/input/mouse/elan_i2c_core.c b/drivers/input/mouse/elan_i2c_core.c index e33edacc5b8d..44015e6bd6a0 100644 --- a/drivers/input/mouse/elan_i2c_core.c +++ b/drivers/input/mouse/elan_i2c_core.c @@ -1184,17 +1184,17 @@ static int __maybe_unused elan_resume(struct device *dev) struct elan_tp_data *data = i2c_get_clientdata(client); int error; - if (device_may_wakeup(dev) && data->irq_wake) { + if (!device_may_wakeup(dev)) { + error = regulator_enable(data->vcc); + if (error) { + dev_err(dev, "error %d enabling regulator\n", error); + goto err; + } + } else if (data->irq_wake) { disable_irq_wake(client->irq); data->irq_wake = false; } - error = regulator_enable(data->vcc); - if (error) { - dev_err(dev, "error %d enabling regulator\n", error); - goto err; - } - error = elan_set_power(data, true); if (error) { dev_err(dev, "power up when resuming failed: %d\n", error); From 40a5e67ecaebe25a1be056fb9578f94a49e47c40 Mon Sep 17 00:00:00 2001 From: William Mahon Date: Thu, 3 Mar 2022 18:26:22 -0800 Subject: [PATCH 1145/1149] HID: add mapping for KEY_ALL_APPLICATIONS commit 327b89f0acc4c20a06ed59e4d9af7f6d804dc2e2 upstream. This patch adds a new key definition for KEY_ALL_APPLICATIONS and aliases KEY_DASHBOARD to it. It also maps the 0x0c/0x2a2 usage code to KEY_ALL_APPLICATIONS. Signed-off-by: William Mahon Acked-by: Benjamin Tissoires Link: https://lore.kernel.org/r/20220303035618.1.I3a7746ad05d270161a18334ae06e3b6db1a1d339@changeid Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman --- drivers/hid/hid-debug.c | 4 +++- drivers/hid/hid-input.c | 2 ++ include/uapi/linux/input-event-codes.h | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/hid/hid-debug.c b/drivers/hid/hid-debug.c index 3cafa1d28fed..07dea71d41fc 100644 --- a/drivers/hid/hid-debug.c +++ b/drivers/hid/hid-debug.c @@ -833,7 +833,9 @@ static const char *keys[KEY_MAX + 1] = { [KEY_F22] = "F22", [KEY_F23] = "F23", [KEY_F24] = "F24", [KEY_PLAYCD] = "PlayCD", [KEY_PAUSECD] = "PauseCD", [KEY_PROG3] = "Prog3", - [KEY_PROG4] = "Prog4", [KEY_SUSPEND] = "Suspend", + [KEY_PROG4] = "Prog4", + [KEY_ALL_APPLICATIONS] = "AllApplications", + [KEY_SUSPEND] = "Suspend", [KEY_CLOSE] = "Close", [KEY_PLAY] = "Play", [KEY_FASTFORWARD] = "FastForward", [KEY_BASSBOOST] = "BassBoost", [KEY_PRINT] = "Print", [KEY_HP] = "HP", diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c index c033d12070c3..2f56c5f3c92b 100644 --- a/drivers/hid/hid-input.c +++ b/drivers/hid/hid-input.c @@ -910,6 +910,8 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel case 0x28b: map_key_clear(KEY_FORWARDMAIL); break; case 0x28c: map_key_clear(KEY_SEND); break; + case 0x2a2: map_key_clear(KEY_ALL_APPLICATIONS); break; + case 0x2c7: map_key_clear(KEY_KBDINPUTASSIST_PREV); break; case 0x2c8: map_key_clear(KEY_KBDINPUTASSIST_NEXT); break; case 0x2c9: map_key_clear(KEY_KBDINPUTASSIST_PREVGROUP); break; diff --git a/include/uapi/linux/input-event-codes.h b/include/uapi/linux/input-event-codes.h index 9e07bf4259e1..6e11f29d2195 100644 --- a/include/uapi/linux/input-event-codes.h +++ b/include/uapi/linux/input-event-codes.h @@ -277,7 +277,8 @@ #define KEY_PAUSECD 201 #define KEY_PROG3 202 #define KEY_PROG4 203 -#define KEY_DASHBOARD 204 /* AL Dashboard */ +#define KEY_ALL_APPLICATIONS 204 /* AC Desktop Show All Applications */ +#define KEY_DASHBOARD KEY_ALL_APPLICATIONS #define KEY_SUSPEND 205 #define KEY_CLOSE 206 /* AC Close */ #define KEY_PLAY 207 From dc357c20e1dffaeff9ab3bb2a6cc80d546e203c6 Mon Sep 17 00:00:00 2001 From: Vladimir Oltean Date: Wed, 2 Mar 2022 21:39:39 +0200 Subject: [PATCH 1146/1149] net: dcb: disable softirqs in dcbnl_flush_dev() commit 10b6bb62ae1a49ee818fc479cf57b8900176773e upstream. Ido Schimmel points out that since commit 52cff74eef5d ("dcbnl : Disable software interrupts before taking dcb_lock"), the DCB API can be called by drivers from softirq context. One such in-tree example is the chelsio cxgb4 driver: dcb_rpl -> cxgb4_dcb_handle_fw_update -> dcb_ieee_setapp If the firmware for this driver happened to send an event which resulted in a call to dcb_ieee_setapp() at the exact same time as another DCB-enabled interface was unregistering on the same CPU, the softirq would deadlock, because the interrupted process was already holding the dcb_lock in dcbnl_flush_dev(). Fix this unlikely event by using spin_lock_bh() in dcbnl_flush_dev() as in the rest of the dcbnl code. Fixes: 91b0383fef06 ("net: dcb: flush lingering app table entries for unregistered devices") Reported-by: Ido Schimmel Signed-off-by: Vladimir Oltean Link: https://lore.kernel.org/r/20220302193939.1368823-1-vladimir.oltean@nxp.com Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman --- net/dcb/dcbnl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/dcb/dcbnl.c b/net/dcb/dcbnl.c index f4b339aa25c4..75dd45210316 100644 --- a/net/dcb/dcbnl.c +++ b/net/dcb/dcbnl.c @@ -1941,7 +1941,7 @@ static void dcbnl_flush_dev(struct net_device *dev) { struct dcb_app_type *itr, *tmp; - spin_lock(&dcb_lock); + spin_lock_bh(&dcb_lock); list_for_each_entry_safe(itr, tmp, &dcb_app_list, list) { if (itr->ifindex == dev->ifindex) { @@ -1950,7 +1950,7 @@ static void dcbnl_flush_dev(struct net_device *dev) } } - spin_unlock(&dcb_lock); + spin_unlock_bh(&dcb_lock); } static int dcbnl_netdevice_event(struct notifier_block *nb, From 69e3f3cfaa908b885b4257cb648c06c1cde3034d Mon Sep 17 00:00:00 2001 From: Huang Pei Date: Tue, 23 Nov 2021 19:07:48 +0800 Subject: [PATCH 1147/1149] hamradio: fix macro redefine warning commit 16517829f2e02f096fb5ea9083d160381127faf3 upstream. MIPS/IA64 define END as assembly function ending, which conflict with END definition in mkiss.c, just undef it at first Reported-by: lkp@intel.com Signed-off-by: Huang Pei Signed-off-by: David S. Miller Cc: Guenter Roeck Signed-off-by: Greg Kroah-Hartman --- drivers/net/hamradio/mkiss.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/hamradio/mkiss.c b/drivers/net/hamradio/mkiss.c index 8249da1db53d..2d0090fb26f5 100644 --- a/drivers/net/hamradio/mkiss.c +++ b/drivers/net/hamradio/mkiss.c @@ -41,6 +41,8 @@ #define AX_MTU 236 +/* some arch define END as assembly function ending, just undef it */ +#undef END /* SLIP/KISS protocol characters. */ #define END 0300 /* indicates end of frame */ #define ESC 0333 /* indicates byte stuffing */ From 9edcb6435ce2ed46eded2b38296b3dc1dc014eb5 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Fri, 18 Mar 2022 21:53:45 +0100 Subject: [PATCH 1148/1149] Merge changes from 4.9.305. Signed-off-by: Pavel Machek --- localversion-st | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-st b/localversion-st index d6698fd73a46..580cdefadcc3 100644 --- a/localversion-st +++ b/localversion-st @@ -1 +1 @@ --st4 \ No newline at end of file +-st5 \ No newline at end of file From 20a82a3d747c0e408aad2987930f4e89217fcba0 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Mon, 4 Apr 2022 13:18:30 +0900 Subject: [PATCH 1149/1149] CIP: Bump version suffix to -cip69 after merge from cip/linux-4.4.y-st tree Signed-off-by: Nobuhiro Iwamatsu --- localversion-cip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-cip b/localversion-cip index 9b4635eb6fd2..625394e9ac2f 100644 --- a/localversion-cip +++ b/localversion-cip @@ -1 +1 @@ --cip68 +-cip69